# Name: smd_prefalizer v0.20 # Type: Admin/Client side plugin # Add, remove, or edit TXP prefs with ease # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjE0OiJzbWRfcHJlZmFsaXplciI7czo2OiJhdXRob3IiO3M6 MTE6IlN0ZWYgRGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3RlZmRh d3Nvbi5jb20vIjtzOjc6InZlcnNpb24iO3M6NDoiMC4yMCI7czoxMToiZGVzY3JpcHRpb24i O3M6NDA6IkFkZCwgcmVtb3ZlLCBvciBlZGl0IFRYUCBwcmVmcyB3aXRoIGVhc2UiO3M6NDoi aGVscCI7czoxNzQ3NjoiPGRpdiBpZD0ic21kX2hlbHAiPgoKCTxoMT5zbWRfcHJlZmFsaXpl cjwvaDE+CgoJPHA+V2l0aCB0aGUgYWR2ZW50IG9mIHBlci11c2VyIHByZWZlcmVuY2VzLCB5 b3VyIHByZWZzIHRhYmxlIGNvdWxkIGJlY29tZSByYXRoZXIgbGFyZ2UuIEtlZXAgaXQgdW5k ZXIgY29udHJvbCB3aXRoIHRoaXMgcGx1Z2luLiBBbHNvIHVzZWZ1bCBpZiB5b3UgaGF2ZSB1 bmluc3RhbGxlZCBwbHVnaW5zIHlvdSBubyBsb25nZXIgdXNlIHRoYXQgaGF2ZSBsZWZ0IHBy ZWZzIGJlaGluZC48L3A+CgoJPGgyPkZlYXR1cmVzPC9oMj4KCgk8dWw+CgkJPGxpPkFkZCwg ZWRpdCBvciByZW1vdmUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gcHJlZmVyZW5j ZXMgc2V0IGluIHlvdXIgZGF0YWJhc2U8L2xpPgoJCTxsaT5GaWx0ZXIgcHJlZnMgYnkgbmFt ZSAvIHZhbHVlIC8gdXNlciAvIHR5cGUgdG8gaGVscCBmaW5kIHRoZSBvbmVzIHlvdSB3YW50 PC9saT4KCQk8bGk+Q3JlYXRlIHJlZ3VsYXIgb3IgaGlkZGVuIHByZWZzLCBmb3IgYWxsIG9y IHNwZWNpZmljIHVzZXJzPC9saT4KCQk8bGk+Q3JlYXRlLCBkaXNwbGF5IG9yIGRlbGV0ZSBw cmVmcyBmcm9tIHlvdXIgcHVibGljIHNpdGU8L2xpPgoJPC91bD4KCgk8aDI+QXV0aG9yIC8g Y3JlZGl0czwvaDI+CgoJPHA+V3JpdHRlbiBieSA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nv bi5jb20vY29udGFjdCI+U3RlZiBEYXdzb248L2E+LjwvcD4KCgk8aDI+SW5zdGFsbGF0aW9u IC8gdW5pbnN0YWxsYXRpb248L2gyPgoKCTxwPkRvd25sb2FkIHRoZSBwbHVnaW4gZnJvbSBl aXRoZXIgPGEgaHJlZj0iaHR0cDovL3RleHRwYXR0ZXJuLm9yZy9wbHVnaW5zLzExMjkvc21k X3ByZWZhbGl6ZXIiPnRleHRwYXR0ZXJuLm9yZzwvYT4sIG9yIHRoZSA8YSBocmVmPSJodHRw Oi8vc3RlZmRhd3Nvbi5jb20vc3ciPnNvZnR3YXJlIHBhZ2U8L2E+LCBwYXN0ZSB0aGUgY29k ZSBpbnRvIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBBZG1pbiAtJmd0OyBQ bHVnaW5zIHBhbmUsIGluc3RhbGwgYW5kIGVuYWJsZSB0aGUgcGx1Z2luLiBWaXNpdCB0aGUg PGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP2lk PTMyMjcyIj5mb3J1bSB0aHJlYWQ8L2E+IGZvciBtb3JlIGluZm8gb3IgdG8gcmVwb3J0IG9u IHRoZSBzdWNjZXNzIG9yIG90aGVyd2lzZSBvZiB0aGUgcGx1Z2luLjwvcD4KCgk8cD5UbyB1 bmluc3RhbGwsIGRlbGV0ZSBmcm9tIHRoZSBBZG1pbiAtJmd0OyBQbHVnaW5zIHBhZ2UuPC9w PgoKCTxoMj5Vc2FnZSAmIzgyMTI7IGFkbWluIHNpZGU8L2gyPgoKCTxwPlZpc2l0IHRoZSBB ZG1pbiA9Jmd0OyBQcmVmYWxpemVyIHBhZ2UgdG8gc2VlIGEgbGlzdCBvZiBhbGwgZGVmaW5l ZCBwcmVmZXJlbmNlcyBpbiB5b3VyIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGRh dGFiYXNlLjwvcD4KCgk8cD5FYWNoIHJvdyBoYXMgYWN0aW9ucyBpbiB0aGUgbGFzdCBjb2x1 bW4gdGhhdCBhbGxvdyB5b3UgdG8gZWRpdCBvciBkZWxldGUgYW55IHByZWZlcmVuY2UuIFNv bWUgKHN5c3RlbSkgcHJlZnMgY2Fubm90IGJlIGRlbGV0ZWQgYmVjYXVzZSB0aGF0IHdvdWxk IHBvdGVudGlhbGx5IGh1cnQgeW91ciBzaXRlOyB0aGUgcGx1Z2luIHRyaWVzIHRvIGxpbWl0 IHlvdSB0byBvbmx5IGJlaW5nIGFibGUgdG8gZGVsZXRlIHBlci11c2VyIG9yIHBsdWdpbiBw cmVmcywgYnV0IHlvdSBzaG91bGQgc3RpbGwgZXhlcmNpc2UgY2F1dGlvbi48L3A+CgoJPHA+ VGhlIGNvbHVtbnMgYXJlIGFzIGZvbGxvd3M6PC9wPgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xh c3M9ImF0bm0iPk5hbWU8L3NwYW4+IDogVGhlIG5hbWUgb2YgdGhlIHByZWZlcmVuY2U8L2xp PgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+VmFsdWU8L3NwYW4+IDogVGhlIHN0b3JlZCBj b250ZW50cyBvZiB0aGUgcHJlZmVyZW5jZTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5t Ij5WaXNpYmlsaXR5PC9zcGFuPiA6IFdoZXRoZXIgdGhlIHByZWZlcmVuY2UgYXBwZWFycyBv biB0aGUgPGVtPkJhc2ljIFByZWZzPC9lbT4gb3IgPGVtPkFkdmFuY2VkIFByZWZzPC9lbT4g c3VidGFiLiBJZiBpdCBkb2VzIG5vdCBhcHBlYXIgYW55d2hlcmUgYXQgYWxsLCBpdCBpcyA8 ZW0+SGlkZGVuPC9lbT4gYW5kIGlzIHVzdWFsbHkgdXNlZCBieSA8c3BhbiBjbGFzcz0iY2Fw cyI+VFhQPC9zcGFuPiBvciBhIHBsdWdpbiB0byBrZWVwIHRyYWNrIG9mIHRoaW5nczwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5FdmVudDwvc3Bhbj4gOiBUaGUgZXZlbnQgKG9y IGFkbWluLXNpZGUgdGFiKSB0byB3aGljaCB0aGlzIHByZWYgaXMgYXNzb2NpYXRlZC4gVXNl ZnVsIGZvciBncm91cGluZyBwcmVmIHZhbHVlcyB0b2dldGhlciBvbi1zY3JlZW48L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXRubSI+SW5wdXQgY29udHJvbDwvc3Bhbj4gOiBJZiB0aGUg cHJlZmVyZW5jZSBpcyByZW5kZXJlZCBvbi1zY3JlZW4gdGhlbiB0aGlzIGdvdmVybnMgd2hp Y2ggVUkgd2lkZ2V0IGlzIGRyYXduIG9yIGhvdyB0aGUgY29udHJvbCB3aWxsIGJlaGF2ZS4g Q29tbW9uIGVudHJpZXMgaW4gdGhpcyBjb2x1bW4gYXJlOgoJPHVsPgoJCTxsaT48c3BhbiBj bGFzcz0iYXRubSI+dGV4dF9pbnB1dDwvc3Bhbj4gOiAoZGVmYXVsdCkgQSBzdGFuZGFyZCB0 ZXh0IGJveDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5jdXN0b21fc2V0PC9zcGFu PiA6IEEgY3VzdG9tIGZpZWxkPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmRhdGVm b3JtYXRzPC9zcGFuPiA6IFNvbWUga2luZCBvZiBkYXRlIGZvcm1hdHRpbmcgc3RyaW5nPC9s aT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnllc25vcmFkaW88L3NwYW4+IDogQSB5ZXMg b3Igbm8gcmFkaW8gYnV0dG9uIHNldDwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdG5tIj5Vc2VyPC9zcGFuPiA6IExvZ2luIG5hbWUgdG8gd2hvbSB0aGUgcHJlZmVy ZW5jZSBiZWxvbmdzPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPlBvc2l0aW9uPC9z cGFuPiA6IFdoZW4gbGlzdGluZyBwcmVmZXJlbmNlcyBvbi1zY3JlZW4sIHRoZSBwb3NpdGlv biBkaWN0YXRlcyB0aGVpciBvcmRlci4gTG93ZXN0IG51bWJlcmVkIHZhbHVlcyBhcmUgZGlz cGxheWVkIGZpcnN0LiBJdCBpcyBjb21tb24gcHJhY3RpY2UgdG8gYXNzaWduIHBvc2l0aW9u cyBpbiBpbmNyZW1lbnRzIG9mIDEwIG9yIDIwIHNvIHRoZXJlIGlzIHJvb20gdG8gZWFzaWx5 IGluc2VydCB2YWx1ZXMgbGF0ZXI8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+QWN0 aW9uczwvc3Bhbj4gOiBBY3Rpb25zIHRvIHBlcmZvcm0gb24gZWFjaCBwcmVmZXJlbmNlOgoJ PHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+W0VkaXRdPC9zcGFuPiA6IEVkaXQgdGhl IHZhcmlvdXMgZGV0YWlscyBvZiB0aGUgcHJlZmVyZW5jZS4gSW5wdXQgY29udHJvbHMgYXBw ZWFyIGlubGluZSBmb3IgeW91IHRvIGFsdGVyIHRoZSB2YWx1ZXMuIFdoZW4geW91IGFyZSBk b25lLCBjbGljayA8ZW0+U2F2ZTwvZW0+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0i PltEZWxldGVdPC9zcGFuPiA6IFBlcm1hbmVudGx5IHJlbW92ZSB0aGUgcHJlZmVyZW5jZSB2 YWx1ZSBmcm9tIHlvdXIgZGF0YWJhc2UuIFlvdSB3aWxsIGhhdmUgYSBjaGFuY2UgdG8gY29u ZmlybSB5b3VyIGludGVudGlvbnMuIEJlIGNhcmVmdWwhPC9saT4KCTwvdWw+PC9saT4KCTwv dWw+CgoJPHA+VXNlIHRoZSBzZWFyY2ggZmVhdHVyZSB0byBsaW1pdCB0aGUgbGlzdCB0byB0 aGUgbWF0Y2hlZCBpdGVtcy4gV2hlbiBzZWFyY2hpbmcgYnkgPGNvZGU+VmlzaWJpbGl0eTwv Y29kZT4geW91IGNhbiBlaXRoZXIgdXNlIDxjb2RlPmJhc2ljPC9jb2RlPiwgPGNvZGU+YWR2 YW5jZWQ8L2NvZGU+IG9yIDxjb2RlPmhpZGRlbjwvY29kZT4sIG9yIHVzZSB0aGVpciBudW1l cmljIGNvdW50ZXJwYXJ0cyAwLCAxIG9yIDIgcmVzcGVjdGl2ZWx5LjwvcD4KCgk8cD5DbGlj ayA8ZW0+TmV3IHByZWY8L2VtPiB0byBhZGQgYSBwcmVmZXJlbmNlIHZhbHVlIHRvIHRoZSBk YXRhYmFzZS4gQSByb3cgb2YgaW5wdXQgY29udHJvbHMgd2lsbCBzbGlkZSBkb3duIGFsbG93 aW5nIHlvdSB0byBlbnRlciB5b3VyIGRlc2lyZWQgdmFsdWVzLiBDbGljayA8ZW0+QWRkPC9l bT4gdG8gY29tbWl0IHRoZSBuZXcgcHJlZmVyZW5jZS48L3A+CgoJPGgzPk5vdGVzPC9oMz4K Cgk8dWw+CgkJPGxpPklmIHlvdSB0cnkgdG8gZWRpdCBhIHByZWZlcmVuY2UgYW5kIHJlbmFt ZSBpdCB0byB0aGF0IG9mIGFuIGV4aXN0aW5nIHByZWZlcmVuY2Ugb3duZWQgYnkgc29tZW9u ZSBlbHNlLCB0aGUgcGx1Z2luIHdpbGwgd2FybiB5b3UgYW5kIHlvdXIgZWRpdCB3aWxsIGJl IHJldmVydGVkIHRvIGl0cyBvcmlnaW5hbCBzdGF0ZTwvbGk+CgkJPGxpPklmIHlvdSB0cnkg dG8gY3JlYXRlIGEgcHJlZmVyZW5jZSB2YWx1ZSB0aGF0IHdvdWxkIGNsb2JiZXIgYW4gZXhp c3Rpbmcgc2V0dGluZywgdGhlIHBsdWdpbiB3aWxsIHdhcm4geW91LiBJZiB5b3UgY2xpY2sg PGVtPk5ldyBwcmVmPC9lbT4gYWdhaW4gdGhvdWdoLCB5b3VyIG1vc3QgcmVjZW50bHkgZW50 ZXJlZCB2YWx1ZXMgd2lsbCBzdGlsbCBiZSBhdmFpbGFibGUuIFRoZSBuYW1lIGFuZCB1c2Vy IHdpbGwgYmUgcmVzZXQsIGhvd2V2ZXI8L2xpPgoJCTxsaT5JZiB5b3UgcmVhbGx5LCByZWFs bHksIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGFuZCB3YW50IHRvIGRlbGV0ZSBhICYjODIx Njtwcm90ZWN0ZWQmIzgyMTc7IHByZWYgc2V0dGluZyAoZS5nLiA8Y29kZT5ydm1fY3NzX2Rp cjwvY29kZT4gaXMgb25lIHN1Y2ggZW50cnkpIHRoZW4gc2ltcGx5IGFkZCA8Y29kZT4mYW1w O2V4cG9zZT1hbGw8L2NvZGU+IHRvIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFu Pi4gVGhlIGRlbGV0ZSBidXR0b24gd2lsbCBiZWNvbWUgYXZhaWxhYmxlIGZvciBhbGwgcHJl ZiBzZXR0aW5ncy4gQmUgY2FyZWZ1bCEgQXMgYSBwcmVjYXV0aW9uLCB3aGVuIHlvdSBjaGFu Z2UgcGFnZSBvciBhbHRlciB0aGUgc2VhcmNoL3NvcnQgY3JpdGVyaWEgdGhlIHBsdWdpbiB3 aWxsIHJldmVydCB0byAmIzgyMTY7c2FmZSYjODIxNzsgbW9kZSBhbmQgeW91IHdpbGwgaGF2 ZSB0byBhZGQgPGNvZGU+JmFtcDtleHBvc2U9YWxsPC9jb2RlPiB0byB0aGUgPHNwYW4gY2xh c3M9ImNhcHMiPlVSTDwvc3Bhbj4gYWdhaW4gdG8gbm90aWZ5IHRoZSBwbHVnaW4gb2YgeW91 ciBpbnRlbnRpb25zPC9saT4KCTwvdWw+CgoJPGgyPlVzYWdlICYjODIxMjsgdGFnczwvaDI+ CgoJPGgzPjxjb2RlPiZsdDt0eHA6c21kX3ByZWZfc2V0IC8mZ3Q7PC9jb2RlPjwvaDM+CgoJ PHA+U2V0IGEgcHJlZmVyZW5jZSB2YWx1ZS4gQXR0cmlidXRlczo8L3A+CgoJPHVsPgoJCTxs aT48c3BhbiBjbGFzcz0iYXRubSI+bmFtZTwvc3Bhbj4gOiB0aGUgbmFtZSBvZiB0aGUgcHJl ZmVyZW5jZSB5b3Ugd2lzaCB0byBzZXQuIElmIGl0IGV4aXN0cyBpdCB3aWxsIGJlIHVwZGF0 ZWQsIGlmIGl0IGRvZXNuJiM4MjE3O3QgZXhpc3QgaXQgd2lsbCBiZSBjcmVhdGVkLiA8ZW0+ Tm90ZSB0aGF0IHlvdSBjYW5ub3QgY3JlYXRlIG9yIHVwZGF0ZSBhIHByZWZlcmVuY2Ugd2l0 aCB0aGUgc2FtZSBuYW1lIGFzIG9uZSBvZiB0aGUgc3lzdGVtIHByZWZlcmVuY2VzPC9lbT4g JiM4MjEyOyB1c2UgdGhlIGFkbWluIGludGVyZmFjZSBmb3IgdGhhdDwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdG5tIj52YWx1ZTwvc3Bhbj4gOiB0aGUgdmFsdWUgdG8gYXNzaWduIHRv IHRoZSBuYW1lZCBwcmVmZXJlbmNlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmV2 ZW50PC9zcGFuPjxzdXAgY2xhc3M9ImZvb3Rub3RlIj48YSBocmVmPSIjZm4xOTY4NjMxNjQ0 YzI5MjhkMmExYjM1Ij4xPC9hPjwvc3VwPiA6IGEgZ3JvdXAgdG8gd2hpY2ggeW91IHdpc2gg dG8gYXNzaWduIHlvdXIgcHJlZmVyZW5jZS4gSXQgY291bGQgYmUgdGhlIGV2ZW50IG9mIGFu IGFkbWluLXNpZGUgdGFiIChlLmcuICYjODIxNjtmaWxlJiM4MjE3Oykgb3IgYW4gZW50cnkg b2YgeW91ciBvd24gY2hvb3NpbmcuIEl0IGlzIHJlY29tbWVuZGVkIHlvdSBzdGF5IGF3YXkg ZnJvbSB0aGUgbmFtZSBvZiBleGlzdGluZyBldmVudHMgdW5sZXNzIHlvdSBrbm93IHdoYXQg eW91JiM4MjE3O3JlIGRvaW5nISBZb3UgY2FuIGxlYXZlIHRoaXMgYmxhbmssIGJ1dCBpdCYj ODIxNztzIGFkdmlzYWJsZSB0byBzZXQgaXQgdG8gc29tZXRoaW5nPC9saT4KCQk8bGk+PHNw YW4gY2xhc3M9ImF0bm0iPnZpc2liaWxpdHk8L3NwYW4+PHN1cCBjbGFzcz0iZm9vdG5vdGUi PjxhIGhyZWY9IiNmbjE5Njg2MzE2NDRjMjkyOGQyYTFiMzUiPjE8L2E+PC9zdXA+IDogb25l IG9mIDxjb2RlPmJhc2ljPC9jb2RlPiwgPGNvZGU+YWR2YW5jZWQ8L2NvZGU+IG9yIDxjb2Rl PmhpZGRlbjwvY29kZT4uIERlZmF1bHQ6IDxjb2RlPmhpZGRlbjwvY29kZT4uIElmIHlvdSBz ZXQgaXQgdG8gYmFzaWMgb3IgYWR2YW5jZWQsIHlvdXIgcHJlZmVyZW5jZSB2YWx1ZSB3aWxs IGFwcGVhciBvbiB0aGUgcmVsZXZhbnQgYmFzaWMvYWR2YW5jZWQgUHJlZmVyZW5jZXMgcGFn ZTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5pbnB1dF9jdHJsPC9zcGFuPjxzdXAg Y2xhc3M9ImZvb3Rub3RlIj48YSBocmVmPSIjZm4xOTY4NjMxNjQ0YzI5MjhkMmExYjM1Ij4x PC9hPjwvc3VwPiA6IHRoZSB0eXBlIG9mIGlucHV0IGNvbnRyb2wgeW91ciBwcmVmZXJlbmNl IHJlcXVpcmVzLiA8Y29kZT50ZXh0X2lucHV0PC9jb2RlPiBpcyB0aGUgZGVmYXVsdCBidXQg eW91IGNhbiBzZXQgdGhpcyB0byB3aGF0ZXZlciBtYWtlcyBzZW5zZSBmb3IgeW91ciBhcHAg KGUuZy4gPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gdXNlcyA8Y29kZT55ZXNub3Jh ZGlvPC9jb2RlPiBmb3IgeWVzL25vIHJhZGlvIGNob2ljZXMpPC9saT4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0bm0iPnBvc2l0aW9uPC9zcGFuPjxzdXAgY2xhc3M9ImZvb3Rub3RlIj48YSBo cmVmPSIjZm4xOTY4NjMxNjQ0YzI5MjhkMmExYjM1Ij4xPC9hPjwvc3VwPiA6IHRoZSBwb3Np dGlvbiAob3JkZXIpIHlvdSB3YW50IHlvdXIgcHJlZiB0byBhcHBlYXIgaW4uIFRha2VzIGFu IGludGVnZXIgdmFsdWUgYW5kIHRoZSBwcmVmcyB3aWxsIGJlIGRpc3BsYXllZCBpbiBhc2Nl bmRpbmcgb3JkZXIsIGdyb3VwZWQgYnkgPGNvZGU+ZXZlbnQ8L2NvZGU+PC9saT4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0bm0iPnByaXZhdGU8L3NwYW4+PHN1cCBjbGFzcz0iZm9vdG5vdGUi PjxhIGhyZWY9IiNmbjE5Njg2MzE2NDRjMjkyOGQyYTFiMzUiPjE8L2E+PC9zdXA+IDogYnkg ZGVmYXVsdCB0aGlzIGlzIDAgd2hpY2ggbWVhbnMgdGhlIHByZWZlcmVuY2UgaXMgYXZhaWxh YmxlIHRvIGV2ZXJ5b25lLiBJZiB5b3Ugc2V0IHRoaXMgdG8gMSB0aGVuIHRoZSBwbHVnaW4g d2lsbCBhdHRlbXB0IHRvIG1ha2UgYSBwcml2YXRlIChwZXItdXNlcikgcHJlZmVyZW5jZS4g SWYgeW91JiM4MjE3O3JlIG5vdCBsb2dnZWQgaW4gaXQgd29uJiM4MjE3O3QgaGF2ZSBhbnkg ZWZmZWN0IGFuZCB0aGUgcHJlZmVyZW5jZSB3aWxsIDxzdHJvbmc+bm90PC9zdHJvbmc+IGJl IGNyZWF0ZWQ8L2xpPgoJPC91bD4KCgk8cCBpZD0iZm4xOTY4NjMxNjQ0YzI5MjhkMmExYjM1 IiBjbGFzcz0iZm9vdG5vdGUiPjxzdXA+MTwvc3VwPiBOb3RlIHRoYXQgdGhlc2UgYXR0cmli dXRlcyBjYW4gb25seSBiZSBzZXQgd2hlbiB0aGUgcHJlZmVyZW5jZSBpcyBjcmVhdGVkIGZv ciB0aGUgZmlyc3QgdGltZS4gT25jZSB0aGUgcHJlZiBpcyBtYWRlLCB0aGVzZSBhdHRyaWJ1 dGVzIHdpbGwgYmUgaWdub3JlZCBhbmQgeW91IGNhbiBvbmx5IHVwZGF0ZSB0aGUgPGNvZGU+ dmFsdWU8L2NvZGU+IG9mIHRoZSBwcmVmLjwvcD4KCgk8cD5UaGUgdGFnIHdvcmtzIHdpdGgg PGNvZGU+Jmx0O3R4cDplbHNlIC8mZ3Q7PC9jb2RlPiBzbyB5b3UgY2FuLCBmb3IgZXhhbXBs ZSwgcmVwb3J0IHRoZSBzdWNjZXNzIG9yIGZhaWx1cmUgb2YgdGhlIHNldCBvcGVyYXRpb24u PC9wPgoKCTxoMz48Y29kZT4mbHQ7dHhwOnNtZF9wcmVmX2dldCAvJmd0OzwvY29kZT48L2gz PgoKCTxwPlJldHJpZXZlIG9uZSBvciBtb3JlIHByZWZlcmVuY2UgdmFsdWVzLiBBdHRyaWJ1 dGVzOjwvcD4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5uYW1lPC9zcGFuPiA6 IGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgcHJlZmVyZW5jZSBuYW1lcyB0byByZXRyaWV2 ZTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj52YWx1ZTwvc3Bhbj4gOiBhIGxpc3Qg b2YgcHJlZmVyZW5jZSB2YWx1ZXMgdG8gZXh0cmFjdC4gVXNlZnVsIGlmIHVzaW5nIG9uZSA8 Y29kZT5uYW1lPC9jb2RlPiB0byBjaGVjayBpZiB0aGUgcHJlZmVyZW5jZSBpcyBzZXQgdG8g dGhpcyBwYXJ0aWN1bGFyIHZhbHVlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmV2 ZW50PC9zcGFuPiA6IGEgbGlzdCBvZiBwcmVmZXJlbmNlIGV2ZW50cyB0byByZXRyaWV2ZTwv bGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj52aXNpYmlsaXR5PC9zcGFuPiA6IG9uZSBv ZiBlaXRoZXIgPGNvZGU+YmFzaWM8L2NvZGU+LCA8Y29kZT5hZHZhbmNlZDwvY29kZT4gb3Ig PGNvZGU+aGlkZGVuPC9jb2RlPiB0byByZXRyaWV2ZSB0aGF0IHR5cGUgb2YgcHJlZmVyZW5j ZTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5pbnB1dF9jdHJsPC9zcGFuPiA6IGZp bHRlciBieSB0aGlzIGxpc3Qgb2YgaW5wdXQgY29udHJvbHM8L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXRubSI+cG9zaXRpb248L3NwYW4+IDogb25seSBzaG93IHByZWZlcmVuY2VzIHRo YXQgYXJlIHNldCB0byBhcHBlYXIgYXQgdGhpcyBsaXN0IG9mIHBvc2l0aW9ucyBpbiB0aGUg dGFibGU8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+YXV0aG9yPC9zcGFuPiA6IGxp c3Qgb2YgYXV0aG9yIChsb2dpbikgbmFtZXMgZnJvbSB3aGljaCB5b3Ugd2lzaCB0byByZXRy aWV2ZSAocGVyLXVzZXIpIHByZWZlcmVuY2VzLiBJZiB5b3Ugc3BlY2lmeSB0aGUgc3BlY2lh bCB2YWx1ZSA8Y29kZT5TTURfUFJFRl9MT0dHRURfSU48L2NvZGU+IHRoZW4gdGhlIGN1cnJl bnQgbG9nZ2VkIGluIHVzZXImIzgyMTc7cyBuYW1lIChpZiBhdmFpbGFibGUpIHdpbGwgYmUg Y29uc2lkZXJlZC4gWW91IGNhbiB1c2UgdGhpcyB0byB5b3VyIGFkdmFudGFnZSB0byBvbmx5 IGRpc3BsYXkgYSB1c2VyJiM4MjE3O3MgcHJlZmVyZW5jZXMgd2hlbiB0aGV5JiM4MjE3O3Jl IGxvZ2dlZCBpbiBhbmQgdmlzaXQgdGhlIHB1YmxpYyBzaXRlPC9saT4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0bm0iPnNvcnQ8L3NwYW4+IDogb3JkZXIgdGhlIHJldHVybmVkIHByZWZzIGJ5 IHRoZXNlIGNvbHVtbnMgYW5kIHNvcnQgZGlyZWN0aW9ucy4gRGVmYXVsdDogPGNvZGU+bmFt ZSBhc2M8L2NvZGU+LiBDaG9vc2UgZnJvbToKCTx1bD4KCQk8bGk+PHN0cm9uZz5uYW1lPC9z dHJvbmc+IDogcHJlZiBuYW1lPC9saT4KCQk8bGk+PHN0cm9uZz52YWw8L3N0cm9uZz4gOiBw cmVmIHZhbHVlLiA8ZW0+PHNwYW4gY2xhc3M9ImNhcHMiPk5PVEU8L3NwYW4+OiBpdCYjODIx NztzIDxjb2RlPnZhbDwvY29kZT4gbm90IDxjb2RlPnZhbHVlPC9jb2RlPjwvZW0+PC9saT4K CQk8bGk+PHN0cm9uZz5ldmVudDwvc3Ryb25nPiA6IHByZWYgZXZlbnQgZ3JvdXA8L2xpPgoJ CTxsaT48c3Ryb25nPnR5cGU8L3N0cm9uZz4gOiBwcmVmIHR5cGUgKHZpc2liaWxpdHkpPC9s aT4KCQk8bGk+PHN0cm9uZz5odG1sPC9zdHJvbmc+IDogaW5wdXQgY29udHJvbDwvbGk+CgkJ PGxpPjxzdHJvbmc+cG9zaXRpb248L3N0cm9uZz4gOiBsaXN0IHBvc2l0aW9uPC9saT4KCQk8 bGk+PHN0cm9uZz51c2VyX25hbWU8L3N0cm9uZz4gOiBwcmVmIG93bmVyJiM4MjE3O3MgbG9n aW4gbmFtZTwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5mb3Jt PC9zcGFuPiA6IHVzZSB0aGlzIGZvcm0gdG8gZGlzcGxheSBlYWNoIHByZWZlcmVuY2UgdmFs dWUuIElmIHVuc2V0LCB0aGUgY29udGFpbmVyIHdpbGwgYmUgdXNlZC4gSWYgYm90aCBhcmUg ZW1wdHkgdGhlIHBsdWdpbiB3aWxsIGRpc3BsYXkgbm90aGluZy4gTm90ZSB0aGF0IGlmIHlv dSB1c2UgdGhlIHRhZyBhcyBhIHNlbGYtY2xvc2luZyB0YWcsIDxlbT50aGUgdmFsdWUocykg d2lsbCBiZSBkaXNwbGF5ZWQ8L2VtPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj53 cmFwdGFnPC9zcGFuPiA6IHRoZSAoWClIVE1MIHRhZyAod2l0aG91dCA8Y29kZT4mbHQ7Jmd0 OzwvY29kZT4gYnJhY2tldHMpIGluIHdoaWNoIHRvIHdyYXAgdGhlIGRpc3BsYXllZCBsaXN0 IG9mIHByZWZlcmVuY2VzPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmJyZWFrPC9z cGFuPiA6IHRoZSAoWClIVE1MIHRhZyAod2l0aG91dCA8Y29kZT4mbHQ7Jmd0OzwvY29kZT4g YnJhY2tldHMpIGluIHdoaWNoIHRvIHdyYXAgZWFjaCBwcmVmZXJlbmNlPC9saT4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0bm0iPmNsYXNzPC9zcGFuPiA6IHRoZSA8c3BhbiBjbGFzcz0iY2Fw cyI+Q1NTPC9zcGFuPiBjbGFzcyBuYW1lIHRvIGFwcGx5IHRvIHRoZSB3cmFwdGFnPC9saT4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmh0bWxfaWQ8L3NwYW4+IDogdGhlIDxzcGFuIGNs YXNzPSJjYXBzIj5IVE1MPC9zcGFuPiA8c3BhbiBjbGFzcz0iY2FwcyI+RE9NPC9zcGFuPiBu b2RlIElEIHRvIGFwcGx5IHRvIHRoZSB3cmFwdGFnPC9saT4KCTwvdWw+CgoJPHA+VGhlIHRh ZyB3b3JrcyB3aXRoIDxjb2RlPiZsdDt0eHA6ZWxzZSAvJmd0OzwvY29kZT4gc28geW91IGNh biwgZm9yIGV4YW1wbGUsIGRldGVjdCBpZiBhIHByZWZlcmVuY2UgZXhpc3RzIG9yIGhhcyBh IGNlcnRhaW4gdmFsdWUgYW5kIHRoZW4gdXBkYXRlIG9yIGNyZWF0ZSBpdCBpZiBpdCBkb2Vz biYjODIxNzt0IG1hdGNoLjwvcD4KCgk8aDQ+UmVwbGFjZW1lbnQgdmFyaWFibGVzPC9oND4K Cgk8cD5JbiB5b3VyIGNvbnRhaW5lciBvciBmb3JtIHlvdSBtYXkgdXNlIHRoZSBmb2xsb3dp bmcgcmVwbGFjZW1lbnQgdmFyaWFibGVzIHRvIGRpc3BsYXkgdGhlIHZhcmlvdXMgdmFsdWVz IGZyb20gZWFjaCByZXR1cm5lZCBwcmVmZXJlbmNlOjwvcD4KCgk8dWw+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG5tIj57c21kX3ByZWZfbmFtZX08L3NwYW4+IDogdGhlIHByZWZlcmVuY2Ug bmFtZTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX3ByZWZfdmFsdWV9PC9z cGFuPiA6IHRoZSBwcmVmZXJlbmNlIHZhbHVlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 bm0iPntzbWRfcHJlZl9ldmVudH08L3NwYW4+IDogdGhlIGV2ZW50IHRvIHdoaWNoIHRoZSBw cmVmIGJlbG9uZ3M8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e3NtZF9wcmVmX3Zp c2liaWxpdHl9PC9zcGFuPiA6IHRoZSBudW1lcmljIHByZWZlcmVuY2UgZmxhdm91ciAoMCA9 IGJhc2ljOyAxPWFkdmFuY2VkOyAyPWhpZGRlbik8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXRubSI+e3NtZF9wcmVmX2lucHV0X2N0cmx9PC9zcGFuPiA6IHRoZSBodG1sIGlucHV0IGNv bnRyb2wgdHlwZSBhc3NpZ25lZCB0byB0aGUgcHJlZjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNz PSJhdG5tIj57c21kX3ByZWZfcG9zaXRpb259PC9zcGFuPiA6IHRoZSBvcmRlciAvIHBvc2l0 aW9uIG9mIHRoZSBjdXJyZW50IHByZWY8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ e3NtZF9wcmVmX2F1dGhvcn08L3NwYW4+IDogdGhlIG93bmVyIChhdXRob3IgbG9naW4gbmFt ZSkgb2YgdGhlIHByZWZlcmVuY2UuIFdpbGwgYmUgZW1wdHkgZm9yIGdsb2JhbCBwcmVmczwv bGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX3ByZWZfdG90YWx9PC9zcGFuPiA6 IHRoZSB0b3RhbCBudW1iZXIgb2YgcHJlZmVyZW5jZSB2YWx1ZXMgdGhhdCBtYXRjaGVkIHRo ZSBjcml0ZXJpYTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX3ByZWZfaW5k ZXh9PC9zcGFuPiA6IHRoZSBjdXJyZW50IHByZWYgY291bnQgdmFsdWUsIGNvdW50aW5nIGZy b20gMDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX3ByZWZfY291bnRlcn08 L3NwYW4+IDogdGhlIGN1cnJlbnQgcHJlZiBjb3VudCB2YWx1ZSwgY291bnRpbmcgZnJvbSAx PC9saT4KCTwvdWw+CgoJPGgzPjxjb2RlPiZsdDt0eHA6c21kX3ByZWZfZGVsZXRlIC8mZ3Q7 PC9jb2RlPjwvaDM+CgoJPHA+UmVtb3ZlIG9uZSBvciBtb3JlIHByZWZlcmVuY2UgdmFsdWVz LiBZb3UgbWF5IG5vdCByZW1vdmUgYSBzeXN0ZW0gcHJlZmVyZW5jZSB1c2luZyB0aGlzIHRh ZzogeW91IGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IHVzZSB0aGUgYWRtaW4gaW50ZXJmYWNl IGFuZCBpbmRpY2F0ZSB0aGF0IHlvdSBrbm93IHdoYXQgeW91JiM4MjE3O3JlIGRvaW5nIHdp dGggdGhlIDxjb2RlPmV4cG9zZTwvY29kZT4gPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bh bj4gdmFyaWFibGUuPC9wPgoKCTxwPlRhZyBhdHRyaWJ1dGVzOjwvcD4KCgk8dWw+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdG5tIj5uYW1lPC9zcGFuPiA6IGEgY29tbWEgc2VwYXJhdGVkIGxp c3Qgb2YgcHJlZmVyZW5jZSBuYW1lcyB0byByZW1vdmU8L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRubSI+ZXZlbnQ8L3NwYW4+IDogYSBsaXN0IG9mIHByZWZlcmVuY2UgZXZlbnRzIHRv IHJlbW92ZTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5hdXRob3I8L3NwYW4+IDog cmVtb3ZlIHByZWZzIGJlbG9uZ2luZyB0byB0aGlzIGxpc3Qgb2YgYXV0aG9yIChsb2dpbikg bmFtZXMuIElmIHlvdSBzcGVjaWZ5IHRoZSBzcGVjaWFsIHZhbHVlIDxjb2RlPlNNRF9QUkVG X0xPR0dFRF9JTjwvY29kZT4gdGhlbiB0aGUgY3VycmVudCBsb2dnZWQgaW4gdXNlciYjODIx NztzIG5hbWUgKGlmIGF2YWlsYWJsZSkgd2lsbCBiZSBjb25zaWRlcmVkPC9saT4KCTwvdWw+ CgoJPHA+VGhlIHRhZyBzdXBwb3J0cyA8Y29kZT4mbHQ7dHhwOmVsc2UgLyZndDs8L2NvZGU+ IHNvIHlvdSBjYW4gaW5kaWNhdGUgdGhlIHN1Y2Nlc3Mgb3Igb3RoZXJ3aXNlIG9mIHRoZSBk ZWxldGUgb3BlcmF0aW9uIG9uIGVhY2ggcHJlZmVyZW5jZS4gSW5zaWRlIHlvdXIgY29udGFp bmVyIHlvdSBjYW4gdXNlIGFueSBvZiB0aGUgcmVwbGFjZW1lbnQgdmFyaWFibGVzIGFzIGdp dmVuIGZvciB0aGUgPGNvZGU+Jmx0O3R4cDpzbWRfcHJlZl9nZXQmZ3Q7PC9jb2RlPiB0YWcu IFRoZXJlIGlzIG9uZSBhZGRpdGlvbmFsIHJlcGxhY2VtZW50OiA8Y29kZT57c21kX3ByZWZf ZGVsX3Jlc3VsdH08L2NvZGU+IGlzIGEgbnVtZXJpYyB2YWx1ZSBpbmRpY2F0aW5nIHRoZSBv dXRjb21lIG9mIHRoZSBkZWxldGUsIGFzIGZvbGxvd3M6PC9wPgoKCTx1bD4KCQk8bGk+PHN0 cm9uZz4tMTwvc3Ryb25nPjogZGlzYWxsb3dlZCAoaXQmIzgyMTc7cyBhIHN5c3RlbSBwcmVm KTwvbGk+CgkJPGxpPjxzdHJvbmc+MDwvc3Ryb25nPjogZmFpbGVkIChmb3Igc29tZSBvdGhl ciByZWFzb24pPC9saT4KCQk8bGk+PHN0cm9uZz4xPC9zdHJvbmc+OiBzdWNjZXNzZnVsbHkg ZGVsZXRlZDwvbGk+Cgk8L3VsPgoKCTxoMj5FeGFtcGxlczwvaDI+CgoJPGgzIGlkPSJlZzEi PkV4YW1wbGUgMTogbGlzdCBvZiBwcmVmZXJlbmNlcyBieSBldmVudDwvaDM+Cgo8cHJlIGNs YXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9wcmVmX2dldCBl dmVudD0mcXVvdDtteV9ldmVudCZxdW90OwogICAgIHdyYXB0YWc9JnF1b3Q7dWwmcXVvdDsg YnJlYWs9JnF1b3Q7bGkmcXVvdDsmZ3Q7CiAgIHtzbWRfcHJlZl92YWx1ZX0KJmx0Oy90eHA6 c21kX3ByZWZfZ2V0Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPGgzIGlkPSJlZzIiPkV4YW1wbGUg Mjogc2V0IHByZWYgaWYgaXQgZG9lc24mIzgyMTc7dCBleGlzdDsgZGlzcGxheSBvdGhlcndp c2U8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4 cDpzbWRfcHJlZl9nZXQgbmFtZT0mcXVvdDtrZXJtaXQmcXVvdDsmZ3Q7CiAgQ3VycmVudCBz ZXR0aW5nIG9mIHtzbWRfcHJlZl9uYW1lfSBpcyB7c21kX3ByZWZfdmFsdWV9CiZsdDt0eHA6 ZWxzZSAvJmd0OwogICAmbHQ7dHhwOnNtZF9wcmVmX3NldCBuYW1lPSZxdW90O2tlcm1pdCZx dW90OyB2YWx1ZT0mcXVvdDthIGZyb2cmcXVvdDsKICAgICBldmVudD0mcXVvdDttdXBwZXRz JnF1b3Q7IC8mZ3Q7CiZsdDsvdHhwOnNtZF9wcmVmX2dldCZndDsKPC9jb2RlPjwvcHJlPgoK CTxoMyBpZD0iZWczIj5FeGFtcGxlIDM6IHNldCBwZXItdXNlciBwcmVmIGlmIGxvZ2dlZCBp bjwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhw OnNtZF9wcmVmX3NldCBuYW1lPSZxdW90O2xpc3Rfb3JkZXImcXVvdDsKICAgICB2YWx1ZT0m cXVvdDthc2MmcXVvdDsgZXZlbnQ9JnF1b3Q7Y29udHJvbF9zeXMmcXVvdDsgcHJpdmF0ZT0m cXVvdDsxJnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5JZiB0aGUgdXNlciBpcyBs b2dnZWQgaW4sIHRoZSA8Y29kZT5saXN0X29yZGVyPC9jb2RlPiB3aWxsIGJlIHNldC4gSWYg dGhleSBhcmUgbm90IGxvZ2dlZCBpbiwgbm90aGluZyB3aWxsIGhhcHBlbi4gVGhpcyBjb3Vs ZCBiZSB3cmFwcGVkIGluIGEgPGNvZGU+Jmx0O3R4cDpydm1faWZfcHJpdmlsZWdlZCZndDs8 L2NvZGU+IGNhbGwuIEl0IGNvdWxkIGFsc28gYmUgd3JhcGVwZCBpbiBhbiBzbWRfcHJlZl9n ZXQgc28gaXQgd2FzIGNyZWF0ZWQgb25seSBpZiBpdCBkaWRuJiM4MjE3O3QgZXhpc3QuPC9w PgoKCTxoMyBpZD0iZWc0Ij5FeGFtcGxlIDQ6IHRvZ2dsZSBwZXItdXNlciBwcmVmPC9oMz4K CjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3By ZWZfZ2V0IG5hbWU9JnF1b3Q7bGlzdF9vcmRlciZxdW90OwogICAgIGF1dGhvcj0mcXVvdDtT TURfUFJFRl9MT0dHRURfSU4mcXVvdDsmZ3Q7CiAgICZsdDt0eHA6dmFyaWFibGUgbmFtZT0m cXVvdDt0aGVfb3JkZXImcXVvdDsmZ3Q7e3NtZF9wcmVmX3ZhbHVlfSZsdDsvdHhwOnZhcmlh YmxlJmd0OwogICAmbHQ7dHhwOmlmX3ZhcmlhYmxlIG5hbWU9JnF1b3Q7dGhlX29yZGVyJnF1 b3Q7IHZhbHVlPSZxdW90O2FzYyZxdW90OyZndDsKICAgICAgJmx0O3R4cDpzbWRfcHJlZl9z ZXQgbmFtZT0mcXVvdDtsaXN0X29yZGVyJnF1b3Q7IHZhbHVlPSZxdW90O2Rlc2MmcXVvdDsg LyZndDsKICAgJmx0O3R4cDplbHNlIC8mZ3Q7CiAgICAgICZsdDt0eHA6c21kX3ByZWZfc2V0 IG5hbWU9JnF1b3Q7bGlzdF9vcmRlciZxdW90OyB2YWx1ZT0mcXVvdDthc2MmcXVvdDsgLyZn dDsKICAgJmx0Oy90eHA6aWZfdmFyaWFibGUmZ3Q7CiZsdDsvdHhwOnNtZF9wcmVmX2dldCZn dDsKPC9jb2RlPjwvcHJlPgoKCTxwPklmIHRoZSB1c2VyIGlzIGxvZ2dlZCBpbiBhbmQgdGhl IDxjb2RlPmxpc3Rfb3JkZXI8L2NvZGU+IGlzIDxjb2RlPmFzYzwvY29kZT4sIHN3YXAgaXQg dG8gPGNvZGU+ZGVzYzwvY29kZT4sIGFuZCB2aWNlLXZlcnNhLiBJZiB0aGUgdXNlciYjODIx NztzIG5vdCBsb2dnZWQgaW4sIG5vdGhpbmcgaGFwcGVucy48L3A+CgoJPGgyIGlkPSJjaGFu Z2Vsb2ciPkNoYW5nZWxvZzwvaDI+CgoJPHVsPgoJCTxsaT4wNiBOb3YgMDkgfCAwLjEwIHwg SW5pdGlhbCByZWxlYXNlPC9saT4KCQk8bGk+MDcgTm92IDA5IHwgMC4xMSB8IEFkZGVkIGhl YWRpbmcgcm93IGFib3ZlIHJvdyBiZWluZyBlZGl0ZWQgKHRoYW5rcyBVbGkpPC9saT4KCQk8 bGk+MTMgTm92IDA5IHwgMC4xMiB8IEFkZGVkIDxjb2RlPmV4cG9zZTwvY29kZT4gPHNwYW4g Y2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gb3ZlcnJpZGUgcGFyYW1ldGVyPC9saT4KCQk8bGk+ MjcgSnVuIDEwIHwgMC4yMCB8IEFkZGVkIDxjb2RlPnNtZF9wcmVmX2dldDwvY29kZT4sIDxj b2RlPnNtZF9wcmVmX3NldDwvY29kZT4gYW5kIDxjb2RlPnNtZF9wcmVmX2RlbGV0ZTwvY29k ZT4gOyBmaXhlZCBwYWdlYnkgdHlwbyAodGhhbmtzIHNwZWVrZSkgOyBwcmVmIHR5cGVzICZn dDsgMiBub3cgY29uc2lkZXJlZCBIaWRkZW4gOyByZW1vdmVkIHVudXNlZCBjb2RlPC9saT4K CTwvdWw+Cgo8L2Rpdj4KPCEtLSAqKiogQkVHSU4gUExVR0lOIENTUyAqKiogLS0+CjxzdHls ZSB0eXBlPSJ0ZXh0L2NzcyI+CiNzbWRfaGVscCB7IGxpbmUtaGVpZ2h0OjEuNSA7fQojc21k X2hlbHAgY29kZSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQ6IDEwNSUvMTMwJSAiQ291cmll ciBOZXciLCBjb3VyaWVyLCBtb25vc3BhY2U7IGJhY2tncm91bmQtY29sb3I6ICNGRkZGQ0M7 fQojc21kX2hlbHAgY29kZS5ibG9jayB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgYm9yZGVyOjFw eCBkb3R0ZWQgIzk5OTsgYmFja2dyb3VuZC1jb2xvcjogI2YwZTY4YzsgZGlzcGxheTpibG9j azsgbWFyZ2luOjEwcHggMTBweCAyMHB4OyBwYWRkaW5nOjEwcHg7IH0KI3NtZF9oZWxwIGgx IHsgY29sb3I6ICMzNjk7IGZvbnQ6IDIwcHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgbWFyZ2lu OiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KI3NtZF9oZWxwIGgyIHsgYm9yZGVyLWJvdHRv bTogMXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOjEwcHggMCAwOyBjb2xvcjogIzM2OTsgZm9u dDogMTdweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyB9CiNzbWRfaGVscCBoMyB7IGNvbG9yOiAj Mjc1Njg1OyBmb250OiBib2xkIDEycHggQXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFj aW5nOiAxcHg7IG1hcmdpbjogMTBweCAwIDA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsg dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CiNzbWRfaGVscCBoNCB7IGZvbnQ6IGJvbGQg MTFweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAx MHB4IDAgMCA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfQojc21kX2hlbHAgLmF0bm0g eyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojMzNkOyB9CiNzbWRfaGVscCAubWFuZCB7IGJh Y2tncm91bmQ6I2VlZTsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgfQojc21kX2hlbHAgdGFi bGUge3dpZHRoOjkwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctYm90dG9tOjFlbTt9 CiNzbWRfaGVscCB0ZCwgI3NtZF9oZWxwIHRoIHtib3JkZXI6MXB4IHNvbGlkICM5OTk7IHBh ZGRpbmc6LjVlbSAwO30KI3NtZF9oZWxwIHVsIHsgbGlzdC1zdHlsZS10eXBlOnNxdWFyZTsg fQojc21kX2hlbHAgLmltcG9ydGFudCB7Y29sb3I6cmVkO30KI3NtZF9oZWxwIGxpIHsgbWFy Z2luOjVweCAyMHB4IDVweCAzMHB4OyB9CiNzbWRfaGVscCAuYnJlYWsgeyBtYXJnaW4tdG9w OjVweDsgfQo8L3N0eWxlPgo8IS0tICoqKiBFTkQgUExVR0lOIENTUyAqKiogLS0+CiI7czo0 OiJjb2RlIjtzOjIyMjg4OiJpZiAoQHR4cGludGVyZmFjZSA9PSAnYWRtaW4nKSB7DQoJZ2xv YmFsICRzbWRfcHJlZmFsaXplcl9ldmVudCwgJHNtZF9wcmVmYWxpemVyX3ByaXZzLCAkc21k X3ByZWZhbGl6ZXJfdHlwZXM7DQoNCgkkc21kX3ByZWZhbGl6ZXJfZXZlbnQgPSAnc21kX3By ZWZhbGl6ZXInOw0KCSRzbWRfcHJlZmFsaXplcl9wcml2cyA9ICcxJzsNCgkkc21kX3ByZWZh bGl6ZXJfdHlwZXMgPSBhcnJheSgwID0+ICdiYXNpYycsIDEgPT4gJ2FkdmFuY2VkJywgMiA9 PiAnaGlkZGVuJyk7DQoNCglhZGRfcHJpdnMoJHNtZF9wcmVmYWxpemVyX2V2ZW50LCAkc21k X3ByZWZhbGl6ZXJfcHJpdnMpOw0KCXJlZ2lzdGVyX3RhYigiYWRtaW4iLCAkc21kX3ByZWZh bGl6ZXJfZXZlbnQsIHNtZF9wcmVmYWxpemVyX2dUeHQoJ3RhYl9uYW1lJykpOw0KCXJlZ2lz dGVyX2NhbGxiYWNrKCdzbWRfcHJlZmFsaXplcicsICRzbWRfcHJlZmFsaXplcl9ldmVudCk7 DQp9DQoNCmZ1bmN0aW9uIHNtZF9wcmVmYWxpemVyKCRldmVudCwgJHN0ZXApIHsNCglpZigh JHN0ZXAgb3IgIWluX2FycmF5KCRzdGVwLCBhcnJheSgNCgkJCSdzbWRfcHJlZmFsaXplcl9z YXZlJywNCgkJCSdzbWRfcHJlZmFsaXplcl9kZWxldGUnLA0KCQkJJ3NtZF9wcmVmYWxpemVy X2NoYW5nZV9wYWdlYnknLA0KCQkpKSkgew0KCQlzbWRfcHJlZmFsaXplcl9saXN0KCcnKTsN Cgl9IGVsc2UgJHN0ZXAoKTsNCn0NCg0KLy8gTGlzdCB0aGUgY2hvc2VuIHByZWZzDQpmdW5j dGlvbiBzbWRfcHJlZmFsaXplcl9saXN0KCRtc2c9JycpIHsNCglnbG9iYWwgJHNtZF9wcmVm YWxpemVyX2V2ZW50LCAkc21kX3ByZWZhbGl6ZXJfdHlwZXM7DQoNCglwYWdldG9wKHNtZF9w cmVmYWxpemVyX2dUeHQoJ3RhYl9uYW1lJyksICRtc2cpOw0KCWV4dHJhY3QoZ3BzYShhcnJh eSgnc3RlcCcsICdwYWdlJywgJ3NvcnQnLCAnZGlyJywgJ2NyaXQnLCAnc2VhcmNoX21ldGhv ZCcsICduYW1lJywgJ3ZhbHVlJywgJ3R5cGUnLCAncHJlZl9ldmVudCcsICdodG1sJywgJ3Vz ZXJfbmFtZScsICdwb3NpdGlvbicsICdleHBvc2UnKSkpOw0KCSRtc2cgPSAoJG1zZykgPyAk bXNnIDogZ3BzKCdtc2cnKTsNCg0KCS8vIEhhbmRsZSBwYWdpbmcgLyBzb3J0aW5nDQoJJHBh Z2VieSA9IChncHMoJ3F0eScpKSA/IGdwcygncXR5JykgOiAoKGNzKCdzbWRfcHJlZmFsaXpl cl9wYWdlYnknKSkgPyBjcygnc21kX3ByZWZhbGl6ZXJfcGFnZWJ5JykgOiAyNSk7DQoJJGRp ciA9ICgkZGlyID09ICdkZXNjJykgPyAnZGVzYycgOiAnYXNjJzsNCglzd2l0Y2ggKCRzb3J0 KSB7DQoJCWNhc2UgJ3ZhbHVlJzoNCgkJCSRzb3J0X3NxbCA9ICd2YWwgJy4kZGlyLicsIG5h bWUgYXNjJzsNCgkJCWJyZWFrOw0KCQljYXNlICd0eXBlJzoNCgkJCSRzb3J0X3NxbCA9ICd0 eXBlICcuJGRpci4nLCBuYW1lIGFzYyc7DQoJCQlicmVhazsNCgkJY2FzZSAnZXZlbnQnOg0K CQkJJHNvcnRfc3FsID0gJ2V2ZW50ICcuJGRpci4nLCBuYW1lIGFzYyc7DQoJCQlicmVhazsN CgkJY2FzZSAnaHRtbCc6DQoJCQkkc29ydF9zcWwgPSAnaHRtbCAnLiRkaXIuJywgbmFtZSBh c2MnOw0KCQkJYnJlYWs7DQoJCWNhc2UgJ3VzZXInOg0KCQkJJHNvcnRfc3FsID0gJ3VzZXJf bmFtZSAnLiRkaXIuJywgbmFtZSBhc2MnOw0KCQkJYnJlYWs7DQoJCWNhc2UgJ3Bvc2l0aW9u JzoNCgkJCSRzb3J0X3NxbCA9ICdwb3NpdGlvbiAnLiRkaXIuJywgbmFtZSBhc2MnOw0KCQkJ YnJlYWs7DQoJCWNhc2UgJ25hbWUnOg0KCQlkZWZhdWx0Og0KCQkJJHNvcnQgPSAnbmFtZSc7 DQoJCQkkc29ydF9zcWwgPSAnbmFtZSAnLiRkaXI7DQoJCQlicmVhazsNCgl9DQoJJHN3aXRj aF9kaXIgPSAoJGRpciA9PSAnZGVzYycpID8gJ2FzYycgOiAnZGVzYyc7DQoJJGNyaXRlcmlh ID0gMTsNCg0KCWlmICgkc2VhcmNoX21ldGhvZCAmJiAkY3JpdCAhPT0gZmFsc2UpIHsNCgkJ JGNyaXRfZXNjYXBlZCA9IGRvU2xhc2goJGNyaXQpOw0KCQkkY3JpdHNxbCA9IGFycmF5KA0K CQkJJ25hbWUnID0+ICJuYW1lIGxpa2UgJyUkY3JpdF9lc2NhcGVkJSciLA0KCQkJJ3ZhbHVl JyA9PiAidmFsIGxpa2UgJyUkY3JpdF9lc2NhcGVkJSciLA0KCQkJJ3R5cGUnID0+ICJ0eXBl ID0gIiAuICgoaXNfbnVtZXJpYygkY3JpdF9lc2NhcGVkKSkgPyAiJGNyaXRfZXNjYXBlZCIg OiAoKCgkY3JpdF9udW1iZXIgPSBhcnJheV9zZWFyY2goc3RydG9sb3dlcigkY3JpdF9lc2Nh cGVkKSwgJHNtZF9wcmVmYWxpemVyX3R5cGVzKSkgIT09IGZhbHNlKSA/ICRjcml0X251bWJl ciA6IDApKSwNCgkJCSdldmVudCcgPT4gImV2ZW50IGxpa2UgJyUkY3JpdF9lc2NhcGVkJSci LA0KCQkJJ2h0bWwnID0+ICJodG1sIGxpa2UgJyUkY3JpdF9lc2NhcGVkJSciLA0KCQkJJ3Vz ZXInID0+ICJ1c2VyX25hbWUgbGlrZSAnJSRjcml0X2VzY2FwZWQlJyIsDQoJCQkncG9zaXRp b24nID0+ICJwb3NpdGlvbiA9ICckY3JpdF9lc2NhcGVkJyIsDQoJCSk7DQoNCgkJaWYgKGFy cmF5X2tleV9leGlzdHMoJHNlYXJjaF9tZXRob2QsICRjcml0c3FsKSkgew0KCQkJJGNyaXRl cmlhID0gJGNyaXRzcWxbJHNlYXJjaF9tZXRob2RdOw0KCQkJJGxpbWl0ID0gMTAwMDsNCgkJ fSBlbHNlIHsNCgkJCSRzZWFyY2hfbWV0aG9kID0gJyc7DQoJCQkkY3JpdCA9ICcnOw0KCQl9 DQoJfSBlbHNlIHsNCgkJJHNlYXJjaF9tZXRob2QgPSAnJzsNCgkJJGNyaXQgPSAnJzsNCgl9 DQoJJHRvdGFsID0gc2FmZV9jb3VudCgndHhwX3ByZWZzJywgIiRjcml0ZXJpYSIpOw0KCSRs aW1pdCA9IG1heChAJHBhZ2VieSwgMTUpOw0KCWxpc3QoJHBhZ2UsICRvZmZzZXQsICRudW1Q YWdlcykgPSBwYWdlcigkdG90YWwsICRsaW1pdCwgJHBhZ2UpOw0KDQoJJHFzID0gYXJyYXko DQoJCSJldmVudCIgPT4gJHNtZF9wcmVmYWxpemVyX2V2ZW50LA0KCQkicGFnZSIgPT4gJHBh Z2UsDQoJCSJzb3J0IiA9PiAkc29ydCwNCgkJImRpciIgPT4gJGRpciwNCgkJImNyaXQiID0+ ICRjcml0LA0KCQkic2VhcmNoX21ldGhvZCIgPT4gJHNlYXJjaF9tZXRob2QsDQoJCSJleHBv c2UiID0+ICRleHBvc2UsDQoJKTsNCg0KCS8vIExpc3QgdGhlIGRlc2lyZWQgcHJlZnMNCgkk dGhlUHJlZnMgPSBzYWZlX3Jvd3MoJyonLCAndHhwX3ByZWZzJywgIiRjcml0ZXJpYSBvcmRl ciBieSAkc29ydF9zcWwgbGltaXQgJG9mZnNldCwgJGxpbWl0Iik7DQoJJGF1dGhvcl9saXN0 ID0gc2FmZV9jb2x1bW4oJ25hbWUnLCAndHhwX3VzZXJzJywgJzEgPSAxJyk7DQoJZWNobyBz bWRfcHJlZmFsaXplcl9zZWFyY2hfZm9ybSgkY3JpdCwgJHNlYXJjaF9tZXRob2QpOw0KCSRl ZGl0Rm9jdXMgPSAoJHN0ZXAgPT0gJ2VkaXQnKSA/ICdqUXVlcnkoZnVuY3Rpb24oKSB7IGpR dWVyeSgiI3NtZF9wcmVmYWxpemVyX3ZhbHVlIHRleHRhcmVhIikuZm9jdXMoKTsgfSk7Jzog Jyc7DQoNCgkvLyBBbnkgZWRpdHMgdG8gYW4gZW50cnkgYXJlIGNvcGllZCB0byB0aGlzIGhp ZGRlbiBmb3JtIGFuZCB0aGVuIHN1Ym1pdHRlZA0KCWVjaG8gPDw8RU9DDQo8c2NyaXB0IHR5 cGU9InRleHQvamF2YXNjcmlwdCI+DQpmdW5jdGlvbiBzbWRfcHJlZmFsaXplcl9zYXZlKCkg ew0KCXZhciBzdHlwZSA9IGpRdWVyeSgiI3NtZF9wcmVmYWxpemVyX2VkaXRlZCAjc21kX3By ZWZhbGl6ZXJfdHlwZSBvcHRpb246c2VsZWN0ZWQiKS52YWwoKTsNCgl2YXIgdXR5cGUgPSBq UXVlcnkoIiNzbWRfcHJlZmFsaXplcl9lZGl0ZWQgI3NtZF9wcmVmYWxpemVyX3VzZXJfbmFt ZSBvcHRpb246c2VsZWN0ZWQiKS52YWwoKTsNCglqUXVlcnkoIiNzbWRfcHJlZmFsaXplcl9p bnB1dCBpbnB1dFtuYW1lPSduZXduYW1lJ10iKS52YWwoalF1ZXJ5KCIjc21kX3ByZWZhbGl6 ZXJfZWRpdGVkICNzbWRfcHJlZmFsaXplcl9uYW1lIGlucHV0IikudmFsKCkpOw0KCWpRdWVy eSgiI3NtZF9wcmVmYWxpemVyX2lucHV0IGlucHV0W25hbWU9J3ZhbHVlJ10iKS52YWwoalF1 ZXJ5KCIjc21kX3ByZWZhbGl6ZXJfZWRpdGVkICNzbWRfcHJlZmFsaXplcl92YWx1ZSB0ZXh0 YXJlYSIpLnZhbCgpKTsNCglqUXVlcnkoIiNzbWRfcHJlZmFsaXplcl9pbnB1dCAjc21kX3By ZWZhbGl6ZXJfbmV3X3R5cGUgb3B0aW9uOmVxKCIrc3R5cGUrIikiKS5hdHRyKCdzZWxlY3Rl ZCcsICdzZWxlY3RlZCcpOw0KCWpRdWVyeSgiI3NtZF9wcmVmYWxpemVyX2lucHV0IGlucHV0 W25hbWU9J3ByZWZfZXZlbnQnXSIpLnZhbChqUXVlcnkoIiNzbWRfcHJlZmFsaXplcl9lZGl0 ZWQgI3NtZF9wcmVmYWxpemVyX2V2ZW50IGlucHV0IikudmFsKCkpOw0KCWpRdWVyeSgiI3Nt ZF9wcmVmYWxpemVyX2lucHV0IGlucHV0W25hbWU9J2h0bWwnXSIpLnZhbChqUXVlcnkoIiNz bWRfcHJlZmFsaXplcl9lZGl0ZWQgI3NtZF9wcmVmYWxpemVyX2h0bWwgaW5wdXQiKS52YWwo KSk7DQoJalF1ZXJ5KCIjc21kX3ByZWZhbGl6ZXJfaW5wdXQgI3NtZF9wcmVmYWxpemVyX25l d3VzZXIgb3B0aW9uW3ZhbHVlPSciK3V0eXBlKyInXSIpLmF0dHIoJ3NlbGVjdGVkJywgJ3Nl bGVjdGVkJyk7DQoJalF1ZXJ5KCIjc21kX3ByZWZhbGl6ZXJfaW5wdXQgaW5wdXRbbmFtZT0n cG9zaXRpb24nXSIpLnZhbChqUXVlcnkoIiNzbWRfcHJlZmFsaXplcl9lZGl0ZWQgI3NtZF9w cmVmYWxpemVyX3Bvc2l0aW9uIGlucHV0IikudmFsKCkpOw0KCWpRdWVyeSgiZm9ybVtuYW1l PSdzbWRfcHJlZmFsaXplcl9pbnB1dCddIikudHJpZ2dlcigic3VibWl0Iik7DQp9DQpmdW5j dGlvbiBzbWRfcHJlZmFsaXplcl90b2dnbGVuZXcoKSB7DQoJYm94ID0galF1ZXJ5KCJmb3Jt W25hbWU9J3NtZF9wcmVmYWxpemVyX2lucHV0J10iKTsNCglpZiAoYm94LmNzcygiZGlzcGxh eSIpID09ICJub25lIikgew0KCQlib3guc2xpZGVEb3duKCdmYXN0Jyk7DQoJfSBlbHNlIHsN CgkJYm94LnNsaWRlVXAoJ2Zhc3QnKTsNCgl9DQoJalF1ZXJ5KCcjc21kX3ByZWZhbGl6ZXJf bmV3IC5zbWRfZm9jdXMnKS5mb2N1cygpOw0KCXJldHVybiBmYWxzZTsNCn0NCnskZWRpdEZv Y3VzfQ0KPC9zY3JpcHQ+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KLnNtZF9oaWRkZW4g ew0KCWRpc3BsYXk6bm9uZTsNCn0NCiNzbWRfcHJlZmFsaXplcl9sb25nZm9ybSAjbGlzdCB0 ci5kYXRhOmhvdmVyIHsNCgliYWNrZ3JvdW5kOiNlN2U3ZTc7DQp9DQo8L3N0eWxlPg0KRU9D Ow0KDQoJJG5ld2J0biA9ICc8YSBjbGFzcz0ibmF2bGluayIgaHJlZj0iIyIgb25jbGljaz0i cmV0dXJuIHNtZF9wcmVmYWxpemVyX3RvZ2dsZW5ldygpOyI+Jy5zbWRfcHJlZmFsaXplcl9n VHh0KCduZXcnKS4nPC9hPic7DQoJJGhlYWRpbmdzID0gYXNzSGVhZCgnbmFtZScsJ3ZhbHVl Jywgc21kX3ByZWZhbGl6ZXJfZ1R4dCgndmlzaWJpbGl0eScpLCBzbWRfcHJlZmFsaXplcl9n VHh0KCdldmVudCcpLCBzbWRfcHJlZmFsaXplcl9nVHh0KCdodG1sJyksIHNtZF9wcmVmYWxp emVyX2dUeHQoJ3VzZXInKSwgc21kX3ByZWZhbGl6ZXJfZ1R4dCgncG9zaXRpb24nKSwgc21k X3ByZWZhbGl6ZXJfZ1R4dCgnYWN0aW9ucycpKTsNCgllY2hvICc8Zm9ybSBtZXRob2Q9InBv c3QiIG5hbWU9InNtZF9wcmVmYWxpemVyX2lucHV0IiBjbGFzcz0ic21kX2hpZGRlbiIgYWN0 aW9uPSInLmpvaW5fcXMoJHFzKS4nIj4nOw0KCWVjaG8gc0lucHV0KCdzbWRfcHJlZmFsaXpl cl9zYXZlJyk7DQoJZWNobyBoSW5wdXQoJ25hbWUnLCgoJHN0ZXA9PSdlZGl0JykgPyAkbmFt ZSA6ICcnKSk7DQoJZWNobyBoSW5wdXQoJ3VzZXJfbmFtZScsKCgkc3RlcD09J2VkaXQnKSA/ ICR1c2VyX25hbWUgOiAnJykpOw0KCWVjaG8gc3RhcnRUYWJsZSgnc21kX3ByZWZhbGl6ZXJf bmV3JywgJycsICcnLCA4KTsNCgllY2hvIHRyKCRoZWFkaW5ncyk7DQoJZWNobyAnPHRyIGlk PSJzbWRfcHJlZmFsaXplcl9pbnB1dCI+JzsNCgllY2hvIHRkKGZJbnB1dCgndGV4dCcsICdu ZXduYW1lJywgKCgkc3RlcD09J2VkaXQnKSA/ICRuYW1lIDogJycpLCAnc21kX2ZvY3VzJykp DQoJICAgIC50ZChmSW5wdXQoJ3RleHQnLCAndmFsdWUnLCAoKCRzdGVwPT0nZWRpdCcpID8g JHZhbHVlIDogJycpKSkNCgkgICAgLnRkKHNlbGVjdElucHV0KCd0eXBlJywgJHNtZF9wcmVm YWxpemVyX3R5cGVzLCAoKCRzdGVwPT0nZWRpdCcpID8gJHR5cGUgOiAyKSwgZmFsc2UsICcn LCAnc21kX3ByZWZhbGl6ZXJfbmV3X3R5cGUnKSkNCgkgICAgLnRkKGZJbnB1dCgndGV4dCcs ICdwcmVmX2V2ZW50JywgKCgkc3RlcD09J2VkaXQnKSA/ICRwcmVmX2V2ZW50IDogJycpKSkN CgkgICAgLnRkKGZJbnB1dCgndGV4dCcsICdodG1sJywgKCgkc3RlcD09J2VkaXQnKSA/ICRo dG1sIDogJ3RleHRfaW5wdXQnKSkpDQoJICAgIC50ZChzZWxlY3RJbnB1dCgnbmV3dXNlcics ICRhdXRob3JfbGlzdCwgKCgkc3RlcD09J2VkaXQnKSA/ICR1c2VyX25hbWUgOiAnJyksIHRy dWUsICcnLCAnc21kX3ByZWZhbGl6ZXJfbmV3dXNlcicpKQ0KCSAgICAudGQoZklucHV0KCd0 ZXh0JywgJ3Bvc2l0aW9uJywgKCgkc3RlcD09J2VkaXQnKSA/ICRwb3NpdGlvbiA6ICcwJykp KQ0KCSAgICAudGQoZklucHV0KCdzdWJtaXQnLCAnJywgZ1R4dCgnYWRkJyksICdzbWFsbGVy Ym94JykpOw0KCWVjaG8gJzwvdHI+JzsNCgllY2hvIGVuZFRhYmxlKCk7DQoJZWNobyAnPC9m b3JtPic7DQoNCgkvLyBUaGUgbWFpbiBsaXN0DQoJZWNobyAnPGZvcm0gbWV0aG9kPSJwb3N0 IiBuYW1lPSJsb25nZm9ybSIgaWQ9InNtZF9wcmVmYWxpemVyX2xvbmdmb3JtIiBhY3Rpb249 Iicuam9pbl9xcygkcXMpLiciPic7DQoJZWNobyBzdGFydFRhYmxlKCdsaXN0JywnJywnJyw4 KTsNCgllY2hvIHRyKHRkYSgkbmV3YnRuLCAnIGNvbHNwYW49IjgiJykpOw0KCWVjaG8gdHIo DQoJCWNvbHVtbl9oZWFkKCduYW1lJywgJ25hbWUnLCAnc21kX3ByZWZhbGl6ZXInLCB0cnVl LCAkc3dpdGNoX2RpciwgJGNyaXQsICRzZWFyY2hfbWV0aG9kLCAoJ25hbWUnID09ICRzb3J0 KSA/ICRkaXIgOiAnJykuDQoJCWNvbHVtbl9oZWFkKCd2YWx1ZScsICd2YWx1ZScsICdzbWRf cHJlZmFsaXplcicsIHRydWUsICRzd2l0Y2hfZGlyLCAkY3JpdCwgJHNlYXJjaF9tZXRob2Qs ICgndmFsdWUnID09ICRzb3J0KSA/ICRkaXIgOiAnJykuDQoJCWNvbHVtbl9oZWFkKHNtZF9w cmVmYWxpemVyX2dUeHQoJ3Zpc2liaWxpdHknKSwgJ3R5cGUnLCAnc21kX3ByZWZhbGl6ZXIn LCB0cnVlLCAkc3dpdGNoX2RpciwgJGNyaXQsICRzZWFyY2hfbWV0aG9kLCAoJ3R5cGUnID09 ICRzb3J0KSA/ICRkaXIgOiAnJykuDQoJCWNvbHVtbl9oZWFkKHNtZF9wcmVmYWxpemVyX2dU eHQoJ2V2ZW50JyksICdldmVudCcsICdzbWRfcHJlZmFsaXplcicsIHRydWUsICRzd2l0Y2hf ZGlyLCAkY3JpdCwgJHNlYXJjaF9tZXRob2QsICgnZXZlbnQnID09ICRzb3J0KSA/ICRkaXIg OiAnJykuDQoJCWNvbHVtbl9oZWFkKHNtZF9wcmVmYWxpemVyX2dUeHQoJ2h0bWwnKSwgJ2h0 bWwnLCAnc21kX3ByZWZhbGl6ZXInLCB0cnVlLCAkc3dpdGNoX2RpciwgJGNyaXQsICRzZWFy Y2hfbWV0aG9kLCAoJ2h0bWwnID09ICRzb3J0KSA/ICRkaXIgOiAnJykuDQoJCWNvbHVtbl9o ZWFkKHNtZF9wcmVmYWxpemVyX2dUeHQoJ3VzZXInKSwgJ3VzZXInLCAnc21kX3ByZWZhbGl6 ZXInLCB0cnVlLCAkc3dpdGNoX2RpciwgJGNyaXQsICRzZWFyY2hfbWV0aG9kLCAoJ3VzZXIn ID09ICRzb3J0KSA/ICRkaXIgOiAnJykuDQoJCWNvbHVtbl9oZWFkKHNtZF9wcmVmYWxpemVy X2dUeHQoJ3Bvc2l0aW9uJyksICdwb3NpdGlvbicsICdzbWRfcHJlZmFsaXplcicsIHRydWUs ICRzd2l0Y2hfZGlyLCAkY3JpdCwgJHNlYXJjaF9tZXRob2QsICgncG9zaXRpb24nID09ICRz b3J0KSA/ICRkaXIgOiAnJykuDQoJCWNvbHVtbl9oZWFkKHNtZF9wcmVmYWxpemVyX2dUeHQo J2FjdGlvbnMnKSwgJ2FjdGlvbnMnLCAnc21kX3ByZWZhbGl6ZXInLCBmYWxzZSkNCgkpOw0K DQoJZm9yZWFjaCAoJHRoZVByZWZzIGFzICRwcmVmX3Jvdykgew0KCQkkcHJlZl9yb3dbJ3R5 cGUnXSA9ICgkcHJlZl9yb3dbJ3R5cGUnXSA+IDIpID8gMiA6ICRwcmVmX3Jvd1sndHlwZSdd Ow0KCQlpZiAoJHN0ZXAgPT0gJ2VkaXQnICYmICRwcmVmX3Jvd1snbmFtZSddID09ICRuYW1l ICYmICRwcmVmX3Jvd1sndXNlcl9uYW1lJ10gPT0gJHVzZXJfbmFtZSkgew0KCQkJJGJ0blNh dmUgPSBmSW5wdXQoJ2J1dHRvbicsICcnLCBnVHh0KCdTYXZlJyksICdwdWJsaXNoJywgJycs ICdzbWRfcHJlZmFsaXplcl9zYXZlKCknKTsNCgkJCWVjaG8gdHIoJGhlYWRpbmdzKTsNCgkJ CWVjaG8gdHIoDQoJCQkJdGQoZklucHV0KCd0ZXh0JywgJ25hbWUnLCAkcHJlZl9yb3dbJ25h bWUnXSksIDcwLCAnJywgJ3NtZF9wcmVmYWxpemVyX25hbWUnKQ0KCQkJCS50ZCh0ZXh0X2Fy ZWEoJ3ZhbHVlJywgJzgwJywgJzIyMCcsICRwcmVmX3Jvd1sndmFsJ10pLCAyMjAsICcnLCAn c21kX3ByZWZhbGl6ZXJfdmFsdWUnKQ0KCQkJCS50ZChzZWxlY3RJbnB1dCgndHlwZScsICRz bWRfcHJlZmFsaXplcl90eXBlcywgJHByZWZfcm93Wyd0eXBlJ10pLCA2MCwgJycsICdzbWRf cHJlZmFsaXplcl90eXBlJykNCgkJCQkudGQoZklucHV0KCd0ZXh0JywgJ3ByZWZfZXZlbnQn LCAkcHJlZl9yb3dbJ2V2ZW50J10pLCA2MCwgJycsICdzbWRfcHJlZmFsaXplcl9ldmVudCcp DQoJCQkJLnRkKGZJbnB1dCgndGV4dCcsICdodG1sJywgJHByZWZfcm93WydodG1sJ10pLCA2 MCwgJycsICdzbWRfcHJlZmFsaXplcl9odG1sJykNCgkJCQkudGQoc2VsZWN0SW5wdXQoJ3Vz ZXJfbmFtZScsICRhdXRob3JfbGlzdCwgJHByZWZfcm93Wyd1c2VyX25hbWUnXSwgdHJ1ZSks IDgwLCAnJywgJ3NtZF9wcmVmYWxpemVyX3VzZXJfbmFtZScpDQoJCQkJLnRkKGZJbnB1dCgn dGV4dCcsICdwb3NpdGlvbicsICRwcmVmX3Jvd1sncG9zaXRpb24nXSksIDIwLCAnJywgJ3Nt ZF9wcmVmYWxpemVyX3Bvc2l0aW9uJykNCgkJCQkudGQoJGJ0blNhdmUpDQoJCQksICcgaWQ9 InNtZF9wcmVmYWxpemVyX2VkaXRlZCInKTsNCgkJfSBlbHNlIHsNCgkJCSRidG5FZGl0ID0g JzxhIGhyZWY9Iicuam9pbl9xcygkcXMpLicmIzM4O3N0ZXA9ZWRpdCYjMzg7bmFtZT0nLiRw cmVmX3Jvd1snbmFtZSddLicmIzM4O3VzZXJfbmFtZT0nLiRwcmVmX3Jvd1sndXNlcl9uYW1l J10uJyI+WycgLiBnVHh0KCdlZGl0JykgLiAnXTwvYT4nOw0KCQkJJGJ0bkRlbCA9IHNtZF9w cmVmYWxpemVyX2Nhbl9hbHRlcigkcHJlZl9yb3dbJ25hbWUnXSkgPyAnPGEgaHJlZj0iJy5q b2luX3FzKCRxcykuJyYjMzg7c3RlcD1zbWRfcHJlZmFsaXplcl9kZWxldGUmIzM4O25hbWU9 Jy4kcHJlZl9yb3dbJ25hbWUnXS4nJiMzODt1c2VyX25hbWU9Jy4kcHJlZl9yb3dbJ3VzZXJf bmFtZSddLiciIG9uY2xpY2s9InJldHVybiBjb25maXJtKFwnJy5zbWRfcHJlZmFsaXplcl9n VHh0KCdkZWxldGVfY29uZmlybScsIGFycmF5KCJ7bmFtZX0iID0+ICRwcmVmX3Jvd1snbmFt ZSddLCAie3VzZXJfbmFtZX0iID0+ICgoJHByZWZfcm93Wyd1c2VyX25hbWUnXT09JycpID8g c21kX3ByZWZhbGl6ZXJfZ1R4dCgnYWxsX3VzZXJzJykgOiAkcHJlZl9yb3dbJ3VzZXJfbmFt ZSddICkgKSkuJ1wnKTsiPlsnIC4gZ1R4dCgnZGVsZXRlJykgLiAnXTwvYT4nIDogJyc7DQoJ CQllY2hvIHRyKA0KCQkJCXRkKCRwcmVmX3Jvd1snbmFtZSddLDcwKQ0KCQkJCS50ZCgkcHJl Zl9yb3dbJ3ZhbCddLCAyMjApDQoJCQkJLnRkKHVjZmlyc3QoJHNtZF9wcmVmYWxpemVyX3R5 cGVzWyRwcmVmX3Jvd1sndHlwZSddXSkpDQoJCQkJLnRkKCRwcmVmX3Jvd1snZXZlbnQnXSkN CgkJCQkudGQoJHByZWZfcm93WydodG1sJ10pDQoJCQkJLnRkKCRwcmVmX3Jvd1sndXNlcl9u YW1lJ10pDQoJCQkJLnRkKCRwcmVmX3Jvd1sncG9zaXRpb24nXSkNCgkJCQkudGQoJGJ0bkVk aXQuJyAnLiRidG5EZWwsIDEwMCkNCgkJCSwgJyBjbGFzcz0iZGF0YSInKTsNCgkJfQ0KCX0N Cg0KCWVjaG8gZW5kVGFibGUoKTsNCgllY2hvICc8L2Zvcm0+JzsNCgllY2hvIG4ubmF2X2Zv cm0oJHNtZF9wcmVmYWxpemVyX2V2ZW50LCAkcGFnZSwgJG51bVBhZ2VzLCAkc29ydCwgJGRp ciwgJGNyaXQsICRzZWFyY2hfbWV0aG9kKTsNCgllY2hvIG4ucGFnZWJ5X2Zvcm0oJHNtZF9w cmVmYWxpemVyX2V2ZW50LCAkcGFnZWJ5KTsNCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KZnVuY3Rpb24g c21kX3ByZWZhbGl6ZXJfc2VhcmNoX2Zvcm0oJGNyaXQsICRtZXRob2QpIHsNCgkkbWV0aG9k cyA9CWFycmF5KA0KCQknbmFtZScgICAgID0+IGdUeHQoJ25hbWUnKSwNCgkJJ3ZhbHVlJyAg ICA9PiBnVHh0KCd2YWx1ZScpLA0KCQkndHlwZScgICAgID0+IHNtZF9wcmVmYWxpemVyX2dU eHQoJ3Zpc2liaWxpdHknKSwNCgkJJ2V2ZW50JyAgICA9PiBzbWRfcHJlZmFsaXplcl9nVHh0 KCdldmVudCcpLA0KCQknaHRtbCcgICAgID0+IHNtZF9wcmVmYWxpemVyX2dUeHQoJ2h0bWwn KSwNCgkJJ3VzZXInICAgICA9PiBzbWRfcHJlZmFsaXplcl9nVHh0KCd1c2VyJyksDQoJCSdw b3NpdGlvbicgPT4gc21kX3ByZWZhbGl6ZXJfZ1R4dCgncG9zaXRpb24nKSwNCgkpOw0KDQoJ cmV0dXJuIHNlYXJjaF9mb3JtKCdzbWRfcHJlZmFsaXplcicsICdzbWRfcHJlZmFsaXplcl9s aXN0JywgJGNyaXQsICRtZXRob2RzLCAkbWV0aG9kLCAnbmFtZScpOw0KfQ0KDQovLyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQpmdW5jdGlvbiBzbWRfcHJlZmFsaXplcl9jaGFuZ2VfcGFnZWJ5KCkgew0KCXNldGNv b2tpZSgnc21kX3ByZWZhbGl6ZXJfcGFnZWJ5JywgZ3BzKCdxdHknKSk7DQoJc21kX3ByZWZh bGl6ZXJfbGlzdCgnJyk7DQp9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmZ1bmN0aW9uIHNtZF9wcmVmYWxp emVyX2Nhbl9hbHRlcigkbmFtZSwgJGV4cG9zZT0nJykgew0KCSRvdmVycmlkZSA9ICgkZXhw b3NlPT0nYWxsJykgPyAkZXhwb3NlIDogZ3BzKCdleHBvc2UnKTsNCglpZiAoJG92ZXJyaWRl ID09ICdhbGwnKSB7DQoJCXJldHVybiB0cnVlOw0KCX0NCgkkcHJvdGVjdGVkX2V2ZW50cyA9 IGFycmF5KCdhZG1pbicsICdjb21tZW50cycsICdjc3MnLCAnY3VzdG9tJywgJ2Rpc2N1c3Mn LCAnZmVlZHMnLCAncHVibGlzaCcpOw0KCSRyb3cgPSBzYWZlX3JvdygnKicsICd0eHBfcHJl ZnMnLCAibmFtZT0nJG5hbWUnIik7DQoJaWYgKCRyb3cpIHsNCgkJcmV0dXJuIChpbl9hcnJh eSgkcm93WydldmVudCddLCAkcHJvdGVjdGVkX2V2ZW50cykgJiYgZW1wdHkoJHJvd1sndXNl cl9uYW1lJ10pKSA/IGZhbHNlIDogdHJ1ZTsNCgl9IGVsc2Ugew0KCQlyZXR1cm4gdHJ1ZTsN Cgl9DQp9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCmZ1bmN0aW9uIHNtZF9wcmVmYWxpemVyX3NhdmUoJG1z Zz0nJykgew0KCWdsb2JhbCAkc21kX3ByZWZhbGl6ZXJfZXZlbnQ7DQoNCglleHRyYWN0KGRv U2xhc2gocHNhKGFycmF5KCduYW1lJywgJ25ld25hbWUnLCAndmFsdWUnLCAndHlwZScsICdw cmVmX2V2ZW50JywgJ2h0bWwnLCAndXNlcl9uYW1lJywgJ25ld3VzZXInLCAncG9zaXRpb24n KSkpKTsNCgkkcmV0ID0gZmFsc2U7DQoJJG1zZyA9ICcnOw0KDQoJLy8gU3RhdGUgbWFjaGlu ZS1lc3F1ZSBkZWNpc2lvbiB0cmVlDQoJJGV4aXN0cyA9IHNhZmVfcm93KCduYW1lLCB1c2Vy X25hbWUnLCAndHhwX3ByZWZzJywgIm5hbWUgPSAnJG5ld25hbWUnIEFORCB1c2VyX25hbWUg PSAnJG5ld3VzZXInIik7DQoJaWYgKGVtcHR5KCRuYW1lKSkgew0KCQkvLyBJbnNlcnQgbmV3 DQoJCWlmICgkZXhpc3RzKSB7DQoJCQkkbXNnID0gYXJyYXkoc21kX3ByZWZhbGl6ZXJfZ1R4 dCgnZXhpc3RfYWxyZWFkeScsIGFycmF5KCJ7bmFtZX0iID0+ICRuZXduYW1lKSksIEVfV0FS TklORyk7DQoJCQkkX1BPU1RbJ3N0ZXAnXSA9ICdlZGl0JzsNCgkJfSBlbHNlIHsNCgkJCSRy ZXQgPSBzYWZlX2luc2VydCgndHhwX3ByZWZzJywgInByZWZzX2lkPTEsIG5hbWU9JyRuZXdu YW1lJywgdmFsPSckdmFsdWUnLCB0eXBlPSckdHlwZScsIGV2ZW50PSckcHJlZl9ldmVudCcs IGh0bWw9JyRodG1sJywgcG9zaXRpb249JyRwb3NpdGlvbicsIHVzZXJfbmFtZT0nJG5ld3Vz ZXInIik7DQoJCQlpZiAoJHJldCA9PT0gZmFsc2UpIHsNCgkJCQkkbXNnID0gc21kX3ByZWZh bGl6ZXJfZ1R4dCgnY3JlYXRlX2ZhaWxlZCcsIGFycmF5KCJ7bmFtZX0iID0+ICRuZXduYW1l KSk7DQoJCQl9IGVsc2Ugew0KCQkJCSRtc2cgPSBzbWRfcHJlZmFsaXplcl9nVHh0KCdjcmVh dGVfb2snLCBhcnJheSgie25hbWV9IiA9PiAkbmV3bmFtZSkpOw0KCQkJfQ0KCQl9DQoNCgl9 IGVsc2UgaWYgKCRuYW1lID09ICRuZXduYW1lKSB7DQoJCS8vIFVwZGF0ZQ0KCQlpZiAoJHVz ZXJfbmFtZSA9PSAkbmV3dXNlcikgew0KCQkJLy8gRGlyZWN0IHVwZGF0ZQ0KCQkJaWYgKCRl eGlzdHMpIHsNCgkJCQkkcmV0ID0gc2FmZV91cGRhdGUoJ3R4cF9wcmVmcycsICJuYW1lPSck bmV3bmFtZScsIHZhbD0nJHZhbHVlJywgdHlwZT0nJHR5cGUnLCBldmVudD0nJHByZWZfZXZl bnQnLCBodG1sPSckaHRtbCcsIHBvc2l0aW9uPSckcG9zaXRpb24nIiwgIm5hbWU9JyRuYW1l JyBBTkQgdXNlcl9uYW1lPSckdXNlcl9uYW1lJyIpOw0KCQkJCWlmICgkcmV0ID09PSBmYWxz ZSkgew0KCQkJCQkkbXNnID0gc21kX3ByZWZhbGl6ZXJfZ1R4dCgnc2F2ZV9mYWlsZWQnLCBh cnJheSgie25hbWV9IiA9PiAkbmV3bmFtZSkpOw0KCQkJCX0gZWxzZSB7DQoJCQkJCSRtc2cg PSBzbWRfcHJlZmFsaXplcl9nVHh0KCdzYXZlX29rJywgYXJyYXkoIntuYW1lfSIgPT4gJG5l d25hbWUpKTsNCgkJCQl9DQoJCQl9IGVsc2Ugew0KCQkJCSRtc2cgPSBzbWRfcHJlZmFsaXpl cl9nVHh0KCdleGlzdF9ub3QnLCBhcnJheSgie25hbWV9IiA9PiAkbmFtZSkpOw0KCQkJfQ0K CQl9IGVsc2Ugew0KCQkJLy8gUmVuYW1lZCB1c2VyDQoJCQlpZiAoJGV4aXN0cykgew0KCQkJ CSRtc2cgPSBhcnJheShzbWRfcHJlZmFsaXplcl9nVHh0KCdleGlzdF9hbHJlYWR5JywgYXJy YXkoIntuYW1lfSIgPT4gJG5ld25hbWUpKSwgRV9XQVJOSU5HKTsNCgkJCQkkX1BPU1RbJ3N0 ZXAnXSA9ICdlZGl0JzsNCgkJCQkkX1BPU1RbJ25hbWUnXSA9ICRuYW1lOw0KCQkJCSRfUE9T VFsndXNlcl9uYW1lJ10gPSAkdXNlcl9uYW1lOw0KCQkJfSBlbHNlIHsNCgkJCQkkcmV0ID0g c2FmZV91cGRhdGUoJ3R4cF9wcmVmcycsICJuYW1lPSckbmV3bmFtZScsIHZhbD0nJHZhbHVl JywgdHlwZT0nJHR5cGUnLCBldmVudD0nJHByZWZfZXZlbnQnLCBodG1sPSckaHRtbCcsIHBv c2l0aW9uPSckcG9zaXRpb24nLCB1c2VyX25hbWU9JyRuZXd1c2VyJyIsICJuYW1lPSckbmFt ZScgQU5EIHVzZXJfbmFtZT0nJHVzZXJfbmFtZSciKTsNCgkJCQlpZiAoJHJldCA9PT0gZmFs c2UpIHsNCgkJCQkJJG1zZyA9IHNtZF9wcmVmYWxpemVyX2dUeHQoJ3NhdmVfZmFpbGVkJywg YXJyYXkoIntuYW1lfSIgPT4gJG5ld25hbWUpKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQkkbXNn ID0gc21kX3ByZWZhbGl6ZXJfZ1R4dCgnc2F2ZV9vaycsIGFycmF5KCJ7bmFtZX0iID0+ICRu ZXduYW1lKSk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoNCgl9IGVsc2Ugew0KCQkvLyBVcGRhdGUg YW5kIHJlbmFtZQ0KCQlpZiAoJHVzZXJfbmFtZSA9PSAkbmV3dXNlcikgew0KCQkJLy8gUmVu YW1lZCB1cGRhdGUNCgkJCWlmICgkZXhpc3RzKSB7DQoJCQkJJG1zZyA9IHNtZF9wcmVmYWxp emVyX2dUeHQoJ2V4aXN0X2FscmVhZHknLCBhcnJheSgie25hbWV9IiA9PiAkbmV3bmFtZSkp Ow0KCQkJfSBlbHNlIHsNCgkJCQkkcmV0ID0gc2FmZV91cGRhdGUoJ3R4cF9wcmVmcycsICJu YW1lPSckbmV3bmFtZScsIHZhbD0nJHZhbHVlJywgdHlwZT0nJHR5cGUnLCBldmVudD0nJHBy ZWZfZXZlbnQnLCBodG1sPSckaHRtbCcsIHBvc2l0aW9uPSckcG9zaXRpb24nIiwgIm5hbWU9 JyRuYW1lJyBBTkQgdXNlcl9uYW1lPSckdXNlcl9uYW1lJyIpOw0KCQkJCWlmICgkcmV0ID09 PSBmYWxzZSkgew0KCQkJCQkkbXNnID0gc21kX3ByZWZhbGl6ZXJfZ1R4dCgnc2F2ZV9mYWls ZWQnLCBhcnJheSgie25hbWV9IiA9PiAkbmV3bmFtZSkpOw0KCQkJCX0gZWxzZSB7DQoJCQkJ CSRtc2cgPSBzbWRfcHJlZmFsaXplcl9nVHh0KCdzYXZlX29rJywgYXJyYXkoIntuYW1lfSIg PT4gJG5ld25hbWUpKTsNCgkJCQl9DQoJCQl9DQoJCX0gZWxzZSB7DQoJCQkvLyBSZW5hbWVk IHVwZGF0ZSBhbmQgdXNlcg0KCQkJaWYgKCRleGlzdHMpIHsNCgkJCQkkbXNnID0gYXJyYXko c21kX3ByZWZhbGl6ZXJfZ1R4dCgnZXhpc3RfYWxyZWFkeScsIGFycmF5KCJ7bmFtZX0iID0+ ICRuZXduYW1lKSksIEVfV0FSTklORyk7DQoJCQkJJF9QT1NUWydzdGVwJ10gPSAnZWRpdCc7 DQoJCQkJJF9QT1NUWyduYW1lJ10gPSAkbmFtZTsNCgkJCQkkX1BPU1RbJ3VzZXJfbmFtZSdd ID0gJHVzZXJfbmFtZTsNCgkJCX0gZWxzZSB7DQoJCQkJJHJldCA9IHNhZmVfdXBkYXRlKCd0 eHBfcHJlZnMnLCAibmFtZT0nJG5ld25hbWUnLCB2YWw9JyR2YWx1ZScsIHR5cGU9JyR0eXBl JywgZXZlbnQ9JyRwcmVmX2V2ZW50JywgaHRtbD0nJGh0bWwnLCBwb3NpdGlvbj0nJHBvc2l0 aW9uJywgdXNlcl9uYW1lPSckbmV3dXNlciciLCAibmFtZT0nJG5hbWUnIEFORCB1c2VyX25h bWU9JyR1c2VyX25hbWUnIik7DQoJCQkJaWYgKCRyZXQgPT09IGZhbHNlKSB7DQoJCQkJCSRt c2cgPSBzbWRfcHJlZmFsaXplcl9nVHh0KCdzYXZlX2ZhaWxlZCcsIGFycmF5KCJ7bmFtZX0i ID0+ICRuZXduYW1lKSk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJJG1zZyA9IHNtZF9wcmVmYWxp emVyX2dUeHQoJ3NhdmVfb2snLCBhcnJheSgie25hbWV9IiA9PiAkbmV3bmFtZSkpOw0KCQkJ CX0NCgkJCX0NCgkJfQ0KICAgfQ0KDQoJc21kX3ByZWZhbGl6ZXJfbGlzdCgkbXNnKTsNCn0N Cg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KZnVuY3Rpb24gc21kX3ByZWZhbGl6ZXJfZGVsZXRlKCRtc2c9Jycp IHsNCglnbG9iYWwgJHNtZF9wcmVmYWxpemVyX2V2ZW50Ow0KDQoJZXh0cmFjdChkb1NsYXNo KGdwc2EoYXJyYXkoJ25hbWUnLCAndXNlcl9uYW1lJywgJ2V4cG9zZScpKSkpOw0KCSRyZXQg PSBmYWxzZTsNCgkkcnMgPSBzYWZlX3JvdygnKicsICd0eHBfcHJlZnMnLCAibmFtZSA9ICck bmFtZScgQU5EIHVzZXJfbmFtZSA9ICckdXNlcl9uYW1lJyIpOw0KCWlmICgkcnMgJiYgc21k X3ByZWZhbGl6ZXJfY2FuX2FsdGVyKCRuYW1lLCAkZXhwb3NlKSkgew0KCQlleHRyYWN0KCRy cyk7DQoJCSRyZXQgPSBzYWZlX2RlbGV0ZSgndHhwX3ByZWZzJywgIm5hbWUgPSAnJG5hbWUn IEFORCB1c2VyX25hbWU9JyR1c2VyX25hbWUnIik7DQoJfQ0KCWlmICgkcmV0ID09PSBmYWxz ZSkgew0KCQlzbWRfcHJlZmFsaXplcl9saXN0KHNtZF9wcmVmYWxpemVyX2dUeHQoJ2RlbGV0 ZV9mYWlsZWQnLCBhcnJheSgie25hbWV9IiA9PiAkbmFtZSkpKTsNCgl9IGVsc2Ugew0KCQlz bWRfcHJlZmFsaXplcl9saXN0KHNtZF9wcmVmYWxpemVyX2dUeHQoJ2RlbGV0ZV9vaycsIGFy cmF5KCJ7bmFtZX0iID0+ICRuYW1lKSkpOw0KCX0NCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQpmdW5jdGlvbiBzbWRfcHJlZmFsaXplcl9nZXRfdHlwZSgkdHlwZSwgJGRm bHQ9JycpIHsNCgkkcHJlZlR5cGUgPSAkZGZsdDsNCg0KCXN3aXRjaCAoJHR5cGUpIHsNCgkJ Y2FzZSAnMCc6DQoJCWNhc2UgJ2Jhc2ljJzoNCgkJCSRwcmVmVHlwZSA9IFBSRUZfQkFTSUM7 DQoJCQlicmVhazsNCgkJY2FzZSAnMSc6DQoJCWNhc2UgJ2FkdmFuY2VkJzoNCgkJCSRwcmVm VHlwZSA9IFBSRUZfQURWQU5DRUQ7DQoJCQlicmVhazsNCgkJY2FzZSAnMic6DQoJCWNhc2Ug J2hpZGRlbic6DQoJCQkkcHJlZlR5cGUgPSBQUkVGX0hJRERFTjsNCgkJCWJyZWFrOw0KCX0N Cg0KCXJldHVybiAkcHJlZlR5cGU7DQp9DQoNCi8vKioqKioqKioqKioqDQovLyBQVUJMSUMg VEFHUw0KLy8qKioqKioqKioqKioNCmZ1bmN0aW9uIHNtZF9wcmVmX2dldCgkYXR0cywgJHRo aW5nID0gTlVMTCkgew0KDQoJZXh0cmFjdChsQXR0cyhhcnJheSgNCgkJJ25hbWUnICAgICAg ID0+ICcnLA0KCQkndmFsdWUnICAgICAgPT4gJycsDQoJCSd2aXNpYmlsaXR5JyA9PiAnJywN CgkJJ2V2ZW50JyAgICAgID0+ICcnLA0KCQknaW5wdXRfY3RybCcgPT4gJycsDQoJCSdwb3Np dGlvbicgICA9PiAnJywNCgkJJ2F1dGhvcicgICAgID0+ICcnLA0KCQknZm9ybScgICAgICAg PT4gJycsDQoJCSdzb3J0JyAgICAgICA9PiAnbmFtZSBhc2MnLA0KCQknd3JhcHRhZycgICAg PT4gJycsDQoJCSdicmVhaycgICAgICA9PiAnJywNCgkJJ2NsYXNzJyAgICAgID0+ICcnLA0K CQknaHRtbF9pZCcgICAgPT4gJycsDQoJCSdkZWJ1ZycgICAgICA9PiAwLA0KCSksJGF0dHMp KTsNCg0KCSRhdHRlbXB0X2NvbnRlbnQgPSBpc3NldCgkYXR0c1snZm9ybSddKSB8fCAkdGhp bmc7DQoJJGNvbnRlbnQgPSAoZW1wdHkoJGZvcm0pKSA/ICR0aGluZyA6IGZldGNoX2Zvcm0o JGZvcm0pOw0KCSRhdXRob3JzID0gZG9fbGlzdCgkYXV0aG9yKTsNCglpZiAoKCRwb3MgPSBh cnJheV9zZWFyY2goJ1NNRF9QUkVGX0xPR0dFRF9JTicsICRhdXRob3JzKSkgIT09IGZhbHNl KSB7DQoJCS8vIExlYXZlIFNNRF9QUkVGX0xPR0dFRF9JTiBpbiB0aGUgYXJyYXkgc28gdGhl IHRhZyByZXR1cm5zIG5vdGhpbmcgaWYgeW91J3ZlIHRyaWVkDQoJCS8vIHRvIGZpbmQgYSBz cGVjaWZpYyB1c2VyIChvdGhlcndpc2UgaXQgd291bGQgcmV0dXJuIGFsbCB1bmFzc2lnbmVk IGVudHJpZXMpDQoJCSRhdXRob3JJbmZvID0gaXNfbG9nZ2VkX2luKCk7DQoJCWlmIChpc3Nl dCgkYXV0aG9ySW5mb1snbmFtZSddKSkgew0KCQkJJGF1dGhvcnNbXSA9ICRhdXRob3JJbmZv WyduYW1lJ107DQoJCX0NCgl9DQoJJGF1dGhvciA9IGpvaW4oJywnLCAkYXV0aG9ycyk7DQoN CgkkdmlzaWJpbGl0eSA9IHNtZF9wcmVmYWxpemVyX2dldF90eXBlKCR2aXNpYmlsaXR5KTsN CgkkY3JpdCA9IGFycmF5KCk7DQoJJGNvbG1hcCA9IGFycmF5KA0KCQknbmFtZScgICAgICAg PT4gJ25hbWUnLA0KCQkndmFsdWUnICAgICAgPT4gJ3ZhbCcsDQoJCSd2aXNpYmlsaXR5JyA9 PiAndHlwZScsDQoJCSdldmVudCcgICAgICA9PiAnZXZlbnQnLA0KCQknaW5wdXRfY3RybCcg PT4gJ2h0bWwnLA0KCQkncG9zaXRpb24nICAgPT4gJ3Bvc2l0aW9uJywNCgkJJ2F1dGhvcicg ICAgID0+ICd1c2VyX25hbWUnLA0KCSk7DQoNCglmb3JlYWNoICgkY29sbWFwIGFzICRrZXkg PT4gJGNvbCkgew0KCQlpZiAoJCRrZXkgIT09ICcnKSB7DQoJCQkkY3JpdFska2V5XSA9ICIk Y29sIElOICgnIiAuIGpvaW4oIicsJyIsIGRvX2xpc3QoZG9TbGFzaCgkJGtleSkpKSAuICIn KSI7DQoJCX0NCgl9DQoNCgkkb3JkZXJieSA9ICgkc29ydCkgPyAnIE9SREVSIEJZICcuZG9T bGFzaCgkc29ydCkgOiAnJzsNCg0KCSRvdXQgPSAnJzsNCgkkcnMgPSBhcnJheSgpOw0KCWlm ICgkY3JpdCkgew0KCQkkcnMgPSBzYWZlX3Jvd3MoJyonLCAndHhwX3ByZWZzJywgam9pbign IEFORCAnLCAkY3JpdCkgLiAkb3JkZXJieSwgJGRlYnVnKTsNCgkJJHRvdGFsID0gY291bnQo JHJzKTsNCgkJJGN0ciA9IDA7DQoJCWlmICgkcnMpIHsNCgkJCSRyZXBsYWNlbWVudHMgPSBh cnJheSgpOw0KCQkJJGNvbnRlbnQgPSAoJGNvbnRlbnQpID8gJGNvbnRlbnQgOiAoKCRhdHRl bXB0X2NvbnRlbnQpID8gJycgOiAne3NtZF9wcmVmX3ZhbHVlfScpOw0KCQkJZm9yZWFjaCAo JHJzIGFzICRyb3cpIHsNCgkJCQlmb3JlYWNoICgkY29sbWFwIGFzICRrZXkgPT4gJGNvbCkg ew0KCQkJCQkkcmVwbGFjZW1lbnRzWyd7c21kX3ByZWZfJy4ka2V5Lid9J10gPSAkcm93WyRj b2xdOw0KCQkJCX0NCgkJCQkkcmVwbGFjZW1lbnRzWyd7c21kX3ByZWZfdG90YWx9J10gPSAk dG90YWw7DQoJCQkJJHJlcGxhY2VtZW50c1sne3NtZF9wcmVmX2luZGV4fSddID0gJGN0cjsN CgkJCQkkcmVwbGFjZW1lbnRzWyd7c21kX3ByZWZfY291bnR9J10gPSAkY3RyKzE7DQoJCQkJ JG91dFtdID0gcGFyc2UoRXZhbEVsc2Uoc3RydHIoJGNvbnRlbnQsICRyZXBsYWNlbWVudHMp LCAxKSk7DQoJCQkJJGN0cisrOw0KCQkJCWlmICgkZGVidWcgPiAxKSB7DQoJCQkJCWVjaG8g JysrIFJFUExBQ0VNRU5UUyArKyc7DQoJCQkJCWRtcCgkcmVwbGFjZW1lbnRzKTsNCgkJCQl9 DQoJCQl9DQoJCQlyZXR1cm4gZG93cmFwKCRvdXQsICR3cmFwdGFnLCAkYnJlYWssICRjbGFz cywgJycsICcnLCAnJywgJGh0bWxfaWQpOw0KCQl9DQoJfQ0KCXJldHVybiBwYXJzZShFdmFs RWxzZSgkY29udGVudCwgMCkpOw0KfQ0KDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N CmZ1bmN0aW9uIHNtZF9wcmVmX3NldCgkYXR0cywgJHRoaW5nID0gTlVMTCkgew0KCWdsb2Jh bCAkdHhwX3VzZXI7DQoNCglleHRyYWN0KGxBdHRzKGFycmF5KA0KCQknbmFtZScgICAgICAg PT4gJycsDQoJCSd2YWx1ZScgICAgICA9PiAnJywNCgkJJ3Zpc2liaWxpdHknID0+ICcnLA0K CQknZXZlbnQnICAgICAgPT4gJycsDQoJCSdpbnB1dF9jdHJsJyA9PiAndGV4dF9pbnB1dCcs DQoJCSdwb3NpdGlvbicgICA9PiAnJywNCgkJJ3ByaXZhdGUnICAgID0+IDAsDQoJCSdkZWJ1 ZycgICAgICA9PiAwLA0KCSksJGF0dHMpKTsNCg0KCSR2aXNpYmlsaXR5ID0gc21kX3ByZWZh bGl6ZXJfZ2V0X3R5cGUoJHZpc2liaWxpdHksIDIpOw0KCWlmICgkcHJpdmF0ZSkgew0KCQkk c2NvcGUgPSBQUkVGX1BSSVZBVEU7DQoJCSRpbGkgPSBpc19sb2dnZWRfaW4oKTsNCgkJaWYg KCRpbGkpIHsNCgkJCSR0eHBfdXNlciA9ICRpbGlbJ25hbWUnXTsNCgkJfQ0KCX0gZWxzZSB7 DQoJCSRzY29wZSA9IFBSRUZfR0xPQkFMOw0KCX0NCg0KCSRyZXQgPSBmYWxzZTsNCglpZiAo c21kX3ByZWZhbGl6ZXJfY2FuX2FsdGVyKCRuYW1lKSkgew0KCQkkcmV0ID0gc2V0X3ByZWYo JG5hbWUsICR2YWx1ZSwgJGV2ZW50LCAkdmlzaWJpbGl0eSwgJGlucHV0X2N0cmwsICRwb3Np dGlvbiwgJHNjb3BlKTsNCgl9DQoJaWYgKCRkZWJ1Zykgew0KCQllY2hvICcrKyBTRVQgUkVT VUxUIEZPUiAnIC4gJG5hbWUgLiAnOiAnIC4oKCRyZXQpID8gJ1NVQ0NFU1MnIDogJ0ZBSUwn KS4gJyArKyc7DQoJfQ0KCXJldHVybiBwYXJzZShFdmFsRWxzZSgkdGhpbmcsICRyZXQpKTsN Cn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpmdW5jdGlvbiBzbWRfcHJlZl9k ZWxldGUoJGF0dHMsICR0aGluZyA9IE5VTEwpIHsNCg0KCWV4dHJhY3QobEF0dHMoYXJyYXko DQoJCSduYW1lJyAgID0+ICcnLA0KCQknZXZlbnQnICA9PiAnJywNCgkJJ2F1dGhvcicgPT4g JycsDQoJCSdkZWJ1ZycgID0+ICcnLA0KCSksJGF0dHMpKTsNCg0KCSRhdXRob3JzID0gZG9f bGlzdCgkYXV0aG9yKTsNCglpZiAoKCRwb3MgPSBhcnJheV9zZWFyY2goJ1NNRF9QUkVGX0xP R0dFRF9JTicsICRhdXRob3JzKSkgIT09IGZhbHNlKSB7DQoJCSRhdXRob3JJbmZvID0gaXNf bG9nZ2VkX2luKCk7DQoJCWlmIChpc3NldCgkYXV0aG9ySW5mb1snbmFtZSddKSkgew0KCQkJ JGF1dGhvcnNbXSA9ICRhdXRob3JJbmZvWyduYW1lJ107DQoJCX0NCgl9DQoJJGF1dGhvciA9 IGpvaW4oJywnLCAkYXV0aG9ycyk7DQoNCgkkY3JpdCA9IGFycmF5KCk7DQoJJGNvbG1hcCA9 IGFycmF5KA0KCQknbmFtZScgICA9PiAnbmFtZScsDQoJCSdldmVudCcgID0+ICdldmVudCcs DQoJCSdhdXRob3InID0+ICd1c2VyX25hbWUnLA0KCSk7DQoNCglmb3JlYWNoICgkY29sbWFw IGFzICRrZXkgPT4gJGNvbCkgew0KCQlpZiAoJCRrZXkgIT09ICcnKSB7DQoJCQkkY3JpdFsk a2V5XSA9ICIkY29sIElOICgnIiAuIGpvaW4oIicsJyIsIGRvX2xpc3QoZG9TbGFzaCgkJGtl eSkpKSAuICInKSI7DQoJCX0NCgl9DQoNCgkkb3V0ID0gYXJyYXkoKTsNCglpZiAoJGNyaXQp IHsNCgkJJHJzID0gc2FmZV9yb3dzKCcqJywgJ3R4cF9wcmVmcycsIGpvaW4oJyBBTkQgJywg JGNyaXQpLCAkZGVidWcpOw0KCQkkdG90YWwgPSBjb3VudCgkcnMpOw0KCQkkcmVwbGFjZW1l bnRzID0gYXJyYXkoKTsNCgkJJGN0ciA9IDA7DQoJCWZvcmVhY2ggKCRycyBhcyAkcm93KSB7 DQoJCQkkcmVwbGFjZW1lbnRzWyd7c21kX3ByZWZfbmFtZX0nXSA9ICRyb3dbJ25hbWUnXTsN CgkJCSRyZXBsYWNlbWVudHNbJ3tzbWRfcHJlZl92YWx1ZX0nXSA9ICRyb3dbJ3ZhbCddOw0K CQkJJHJlcGxhY2VtZW50c1sne3NtZF9wcmVmX3Zpc2liaWxpdHl9J10gPSAkcm93Wyd0eXBl J107DQoJCQkkcmVwbGFjZW1lbnRzWyd7c21kX3ByZWZfZXZlbnR9J10gPSAkcm93WydldmVu dCddOw0KCQkJJHJlcGxhY2VtZW50c1sne3NtZF9wcmVmX2lucHV0X2N0cmx9J10gPSAkcm93 WydodG1sJ107DQoJCQkkcmVwbGFjZW1lbnRzWyd7c21kX3ByZWZfcG9zaXRpb259J10gPSAk cm93Wydwb3NpdGlvbiddOw0KCQkJJHJlcGxhY2VtZW50c1sne3NtZF9wcmVmX2F1dGhvcn0n XSA9ICRyb3dbJ3VzZXJfbmFtZSddOw0KCQkJJHJlcGxhY2VtZW50c1sne3NtZF9wcmVmX3Rv dGFsfSddID0gJHRvdGFsOw0KCQkJJHJlcGxhY2VtZW50c1sne3NtZF9wcmVmX2luZGV4fSdd ID0gJGN0cjsNCgkJCSRyZXBsYWNlbWVudHNbJ3tzbWRfcHJlZl9jb3VudH0nXSA9ICRjdHIr MTsNCgkJCWlmIChzbWRfcHJlZmFsaXplcl9jYW5fYWx0ZXIoJHJvd1snbmFtZSddKSkgew0K CQkJCSRyZXQgPSBzYWZlX2RlbGV0ZSgndHhwX3ByZWZzJywgIm5hbWUgPSAnIiAuIGRvU2xh c2goJHJvd1snbmFtZSddKSAuICInIEFORCB1c2VyX25hbWU9JyIgLiBkb1NsYXNoKCRyb3db J3VzZXJfbmFtZSddKSAuICInIiwgJGRlYnVnKTsNCgkJCQkkcmV0Q29kZSA9ICRyZXQ7DQoJ CQl9IGVsc2Ugew0KCQkJCSRyZXQgPSAwOw0KCQkJCSRyZXRDb2RlID0gLTE7DQoJCQl9DQoN CgkJCSRyZXBsYWNlbWVudHNbJ3tzbWRfcHJlZl9kZWxfcmVzdWx0fSddID0gJHJldENvZGU7 DQoNCgkJCWlmICgkZGVidWcgPiAxKSB7DQoJCQkJZWNobyAnKysgUkVQTEFDRU1FTlRTICsr JzsNCgkJCQlkbXAoJHJlcGxhY2VtZW50cyk7DQoJCQl9DQoNCgkJCSRvdXRbXSA9IHBhcnNl KEV2YWxFbHNlKHN0cnRyKCR0aGluZywgJHJlcGxhY2VtZW50cyksICRyZXQpKTsNCg0KCQkJ aWYgKCRkZWJ1ZyA+IDIpIHsNCgkJCQlkbXAoJysrIERFTEVURSBSRVNVTFQgRk9SICcuJHJv d1snbmFtZSddLic6ICcgLiAoKCRyZXRDb2RlPT0xKSA/ICdTVUNDRVNTJyA6ICggKCRyZXRD b2RlPT0tMSkgPyAnRElTQUxMT1dFRCcgOiAnRkFJTCcpICkgLicgKysnKTsNCgkJCX0NCgkJ CSRjdHIrKzsNCgkJfQ0KCX0NCglyZXR1cm4gam9pbihuLCAkb3V0KTsNCn0NCg0KLy8gLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyBQbHVnaW4tc3BlY2lmaWMgcmVwbGFjZW1lbnQg c3RyaW5ncyAtIGxvY2FsaXNlIGFzIHJlcXVpcmVkDQpmdW5jdGlvbiBzbWRfcHJlZmFsaXpl cl9nVHh0KCR3aGF0LCAkYXR0cyA9IGFycmF5KCkpIHsNCgkkbGFuZyA9IGFycmF5KA0KCQkn YWN0aW9ucycgPT4gJ0FjdGlvbnMnLA0KCQknYWxsX3VzZXJzJyA9PiAnYWxsIHVzZXJzJywN CgkJJ2NyZWF0ZV9mYWlsZWQnID0+ICdQcmVmIHtuYW1lfSBOT1QgY3JlYXRlZCcsDQoJCSdj cmVhdGVfb2snID0+ICdQcmVmIHtuYW1lfSBjcmVhdGVkJywNCgkJJ2RlbGV0ZV9jb25maXJt JyA9PiAnUmVhbGx5IGRlbGV0ZSBwcmVmIHtuYW1lfSAoe3VzZXJfbmFtZX0pPycsDQoJCSdk ZWxldGVfZmFpbGVkJyA9PiAnUHJlZiB7bmFtZX0gTk9UIGRlbGV0ZWQnLA0KCQknZGVsZXRl X29rJyA9PiAnUHJlZiB7bmFtZX0gZGVsZXRlZCcsDQoJCSdleGlzdF9hbHJlYWR5JyA9PiAn UHJlZiB7bmFtZX0gYWxyZWFkeSBleGlzdHMuIENob29zZSBhbm90aGVyIG5hbWUvdXNlcics DQoJCSdleGlzdF9ub3QnID0+ICdDYW5ub3QgdXBkYXRlOiBwcmVmIHtuYW1lfSBkb2VzIG5v dCBleGlzdCcsDQoJCSdldmVudCcgPT4gJ0V2ZW50JywNCgkJJ2h0bWwnID0+ICdJbnB1dCBj b250cm9sJywNCgkJJ25ldycgPT4gJ05ldyBwcmVmJywNCgkJJ3Bvc2l0aW9uJyA9PiAnUG9z aXRpb24nLA0KCQknc2F2ZV9mYWlsZWQnID0+ICdQcmVmIHtuYW1lfSBOT1Qgc2F2ZWQnLA0K CQknc2F2ZV9vaycgPT4gJ1ByZWYge25hbWV9IHNhdmVkJywNCgkJJ3RhYl9uYW1lJyA9PiAn UHJlZmFsaXplcicsDQoJCSd1c2VyJyA9PiAnVXNlcicsDQoJCSd2aXNpYmlsaXR5JyA9PiAn VmlzaWJpbGl0eScsDQoJKTsNCglyZXR1cm4gc3RydHIoJGxhbmdbJHdoYXRdLCAkYXR0cyk7 DQp9IjtzOjQ6InR5cGUiO3M6MToiMSI7czo1OiJmbGFncyI7czoxOiIwIjtzOjU6Im9yZGVy IjtzOjE6IjUiO3M6MzoibWQ1IjtzOjMyOiJkZmNjZTg0MTRjMzc3YTQxNGZhZjAxYzhmMjNj Y2VmYSI7fQ==