Q29udGVudC1sYW5ndWFnZTogY3MKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMgpCb2R5Oi0tLS0tLS0tLS1jcy0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9ImNzIgotLT48IS0tI3NldCB2YXI9IkNIQVJBQ1RFUl9FTkNPRElORyIgdmFsdWU9IklTTy04ODU5LTIiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJTbHW+YmEgbmVu7SBkb3N0dXBu4SEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBTZXJ2ZXIgZG/oYXNu7CBuZW35vmUgenByYWNvdmF0IFbhuSBwb75hZGF2ZWsKICAgIGt2+WxpIPpkcr5i7CBuZWJvIGthcGFjaXRu7W0gcHJvYmzpbfltLgogICAgWmt1c3RlIHRvLCBwcm9z7W0sIHBvemTsamkuCgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1jcy0tCgpDb250ZW50LWxhbmd1YWdlOiBkZQpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkJvZHk6LS0tLS0tLS0tLWRlLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0iZGUiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJadWdyaWZmIG5pY2h0IG0mb3VtbDtnbGljaCEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBEZXIgU2VydmVyIGlzdCBkZXJ6ZWl0IG5pY2h0IGluIGRlciBMYWdlIGRpZSBBbmZyYWdlCiAgICB6dSBiZWFyYmVpdGVuLiBFbnR3ZWRlciBpc3QgZGVyIFNlcnZlciBkZXJ6ZWl0ICZ1dW1sO2Jlcmxhc3RldAogICAgb2RlciB3ZWdlbiBXYXJ0dW5nc2FyYmVpdGVuIG5pY2h0IHZlcmYmdXVtbDtnYmFyLgogICAgQml0dGUgdmVyc3VjaGVuIFNpZSBlcyBzcCZhdW1sO3RlciB3aWVkZXIuIAogICAgCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLWRlLS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IGVuCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEKQm9keTotLS0tLS0tLS0tZW4tLQo8IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iU2VydmljZSB1bmF2YWlsYWJsZSEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBUaGUgc2VydmVyIGlzIHRlbXBvcmFyaWx5IHVuYWJsZSB0byBzZXJ2aWNlIHlvdXIKICAgIHJlcXVlc3QgZHVlIHRvIG1haW50ZW5hbmNlIGRvd250aW1lIG9yIGNhcGFjaXR5CiAgICBwcm9ibGVtcy4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4gCgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1lbi0tCgpDb250ZW50LWxhbmd1YWdlOiBlcwpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkJvZHk6LS0tLS0tLS0tLWVzLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0iZXMiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSImaWV4Y2w7U2VydmljaW8gbm8gZGlzcG9uaWJsZSEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCglFbCBzZXJ2aWRvciBubyBwdWVkZSBhdGVuZGVyIHN1IHNvbGljaXR1ZCBwb3IKCWVsIG1vbWVudG8gZGViaWRvIGEgcHJvYmxlbWFzIGRlIG1hbnRlbmltaWVudG8KCW8gZGUgY2FwYWNpZGFkLgoKCUxlIHNvbGljaXRhbW9zIHF1ZSBwb3IgZmF2b3IgcmVwaXRhIGxhIG9wZXJhY2kmb2FjdXRlO24KCW0mYWFjdXRlO3MgdGFyZGUuCgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1lcy0tCgpDb250ZW50LWxhbmd1YWdlOiBmcgpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkJvZHk6LS0tLS0tLS0tLWZyLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0iZnIiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJTZXJ2aWNlIGluYWNjZXNzaWJsZSEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBFbiByYWlzb24gZGUgdHJhdmF1eCBkZSBtYWludGVuYW5jZSBvdSBkZSBwcm9ibCZlZ3JhdmU7bWVzCiAgICBkZSBjYXBhY2l0JmVhY3V0ZTsgbGUgc2VydmV1ciBuJ2VzdCBwYXMgZW4gbWVzdXJlIGRlIHImZWFjdXRlO3BvbmRyZQogICAgJmFncmF2ZTsgdm90cmUgcmVxdSZlY2lyYzt0ZSBwb3VyIGwnaW5zdGFudC4gVmV1aWxsZXogciZlYWN1dGU7ZXNzYXllcgogICAgIHBsdXMgdGFyZC4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLWZyLS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IGdhCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEKQm9keTotLS0tLS0tLS0tZ2EtLQo8IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iU2VpcmJoJmlhY3V0ZTtzIGRvJnVhY3V0ZTtzJmFhY3V0ZTtpZHRlISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIE4maWFjdXRlO2wgYW4gZnJlYXN0YWxhJmlhY3V0ZTsgc2VvIGluIGFubiBkbyBjaHVpZCAKICAgIGlhcnJhdGFpcyBhIGwmaWFjdXRlO29uYWRoIGFnIGFuIGFtIHNlbywgdG9pc2MgCiAgICBjJm9hY3V0ZTt0aCZhYWN1dGU7YmgmYWFjdXRlO2lsIG4mb2FjdXRlOyBmaGFpZGhiZWFubmEgY3VtYXMuCiAgICBEJmVhY3V0ZTthbiBpYXJyYWNodCBlaWxlIG4maWFjdXRlO29zIGQmZWFjdXRlO2FuYSZpYWN1dGU7LCBsZSBkbyB0aG9pbC4KPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0tZ2EtLQoKQ29udGVudC1sYW5ndWFnZTogaXQKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS0tLS1pdC0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9Iml0IgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iU2Vydml6aW8gbm9uIGRpc3BvbmliaWxlISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIElsIHNlcnZlciBpbiBxdWVzdG8gbW9tZW50byBub24gJmVncmF2ZTsgaW4gZ3JhZG8gZGkKICAgIHNvZGRpc2ZhcmUgbGEgcmljaGllc3RhIHBlciBtb3RpdmkgZGkgbWFudXRlbnppb25lCiAgICBvIGRpIHNvdnJhY2NhcmljbyBkZWwgc2lzdGVtYS4KICAgIFBlciBmYXZvcmUsIHJpcHJvdmEgcGkmdWdyYXZlOyB0YXJkaS4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLWl0LS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IGphCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy0yMDIyLUpQCkJvZHk6LS0tLS0tLS0tLWphLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0iamEiCi0tPjwhLS0jc2V0IHZhcj0iQ0hBUkFDVEVSX0VOQ09ESU5HIiB2YWx1ZT0iaXNvLTIwMjItanAiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJTZXJ2aWNlIHVuYXZhaWxhYmxlISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIBskQiVhJXMlRiVKJXMlOSRHRGQ7X0NmJCshIiU1ITwlUCROPWhNfUc9Tk8kTkxkQmokTiQ/JGEhIhsoQgogICAgGyRCOD06XyVqJS8lKCU5JUgkSzF+JDgkayQzJEgkLCRHJC0kXiQ7JHMhIxsoQgogICAgGyRCOGUkWyRJOkZFWSQqO24kNzI8JDUkJCEjGyhCCgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1qYS0tCgpDb250ZW50LWxhbmd1YWdlOiBrbwpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1FVUMtS1IKQm9keTotLS0tLS0tLS0ta28tLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJrbyIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IrytuvG9uiDAz73Dwd/B9iEiCi0tPjwhLS0jc2V0IHZhcj0iQ0hBUkFDVEVSX0VOQ09ESU5HIiB2YWx1ZT0iRVVDLUtSIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgsPy4riDA2773wMyzqiC/67euILmuwaa3ziC8rbn2sKEgwOG9w7W/vsggv+TDu8C7IMOzuK7H0iC89iC++L3AtM+02S4KICAgILOqwd+/oSC02b3DIL3DtbXH2MHWvcOx4iC52bb4tM+02S4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLWtvLS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IG5sCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEKQm9keTotLS0tLS0tLS0tbmwtLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJubCIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IkRpZW5zdCBuaWV0IGJlc2NoaWtiYWFyISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIERlIHNlcnZlciBrYW4gdGlqZGVsaWprIHV3IHZyYWFnIG5pZXQgdmVyd2Vya2VuCiAgICBkb29yIG9uZGVyaG91ZCBvZiBwcm9ibGVtZW4gbWV0IGRlIGNhcGFjaXRlaXQgdmFuIGRlIHNlcnZlci4KICAgIEdlbGlldmUgbGF0ZXIgbm9nIGVlbnMgb3BuaWV1dyB0ZSBwcm9iZXJlbi4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLW5sLS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IHBsCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTIKQm9keTotLS0tLS0tLS0tcGwtLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJwbCIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IlNlcndpcyBuaWVkb3N06nBueSEiCi0tPjwhLS0jc2V0IHZhcj0iQ0hBUkFDVEVSX0VOQ09ESU5HIiB2YWx1ZT0iSVNPLTg4NTktMiIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIFNlcndlciBuaWUgbW+/ZSB6cmVhbGl6b3dh5iB0d29qZWdvIL+xZGFuaWEKICAgIHplIHd6Z2zqZHUgbmEga29uc2Vyd2FjauogbHViIHpieXQgZHW/ZSBvYmNpsb9lbmllLgogICAgUHJvc2lteSBzcHLzYm93YeYgcPO8bmllai4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLXBsLS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IHB0LWJyCkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEKQm9keTotLS0tLS0tcHQtYnItLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJwdC1iciIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IlNlcnZpJmNjZWRpbDtvIGluZGlzcG9uJmlhY3V0ZTt2ZWwhIgotLT48IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS90b3AuaHRtbCIgLS0+CgogICAgTyBzZXJ2aWRvciBlc3QmYWFjdXRlOyB0ZW1wb3JhcmlhbWVudGUgZm9yYSBkZSBzZXJ2aSZjY2VkaWw7bwogICAgcGFyYSBtYW51dGFuJmNjZWRpbDsmYXRpbGRlO28gb3UgZGV2aWRvIGEgcHJvYmxlbWFzIGRlIGNhcGFjaWRhZGUuCiAgICBQb3IgZmF2b3IgdGVudGUgYWNlc3NhciBtYWlzIHRhcmRlLgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tcHQtYnItLQoKQ29udGVudC1sYW5ndWFnZTogcm8KQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQpCb2R5Oi0tLS0tLS0tLS1yby0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9InJvIgotLT48IS0tI3NldCB2YXI9IlRJVExFIiB2YWx1ZT0iU2VydmljaXUgaW5kaXNwb25pYmlsISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIFNlcnZlcnVsIG51IHBvYXRlLCB0ZW1wb3Jhciwgc2EgcmFzcHVuZGEgY2VyZXJpaQogICAgZHVtbmVhdm9hc3RyYSBkYXRvcml0YSBpbnRyZXRpbmVyaWkgYWNlc3R1aWEgc2F1IGEKICAgIHVub3IgcHJvYmxlbWUgZGUgY2FwYWNpdGF0ZS4gVmEgcnVnYW0gaW5jZXJjYXRpIG1haSB0YXJ6aXUuCgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS1yby0tCgpDb250ZW50LWxhbmd1YWdlOiBzcgpDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS01CkJvZHk6LS0tLS0tLS0tLXNyLS0KPCEtLSNzZXQgdmFyPSJDT05URU5UX0xBTkdVQUdFIiB2YWx1ZT0ic3IiCi0tPjwhLS0jc2V0IHZhcj0iQ0hBUkFDVEVSX0VOQ09ESU5HIiB2YWx1ZT0iSVNPLTg4NTktNSIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IsPh2+PT0CD41SDd1dTe4eLj393QISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIMHV4NLV4CDi4NXd4+Ld3iDd2PjVIOMg3N7T4/vd3uHi2CDU0CDj4dvj1tgg0tDoCiAgICDX0OXi1dIg397o4t4g+NUg19Di0t7g1d0g19He0yDe1ODW0NLQ+tAg2NvYINjc0CDd1dTe0t750N0KICAgINrQ39Dm2OLV4i4gvN7b2NzeIN/e2uPo0Pji1SDf3t3e0t4g2tDh3dj41S4KCjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL2JvdHRvbS5odG1sIiAtLT4KLS0tLS0tLS0tLXNyLS0KCkNvbnRlbnQtbGFuZ3VhZ2U6IHN2CkNvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEKQm9keTotLS0tLS0tLS0tc3YtLQo8IS0tI3NldCB2YXI9IkNPTlRFTlRfTEFOR1VBR0UiIHZhbHVlPSJzdiIKLS0+PCEtLSNzZXQgdmFyPSJUSVRMRSIgdmFsdWU9IlRqJmF1bWw7bnN0ZW4gZWogdGlsbGcmYXVtbDtuZ2xpZyEiCi0tPjwhLS0jaW5jbHVkZSB2aXJ0dWFsPSJpbmNsdWRlL3RvcC5odG1sIiAtLT4KCiAgICBTZXJ2ZXJuICZhdW1sO3IgZiZvdW1sO3IgdGlsbGYmYXVtbDtsbGV0IG9mJm91bWw7cm0mb3VtbDtnZW4gYXR0CiAgICB1dGYmb3VtbDtyYSBkaW4gZiZvdW1sO3JmciZhcmluZztnYW4gcCZhcmluZzsgZ3J1bmQgYXYgdW5kZXJoJmFyaW5nO2xsCiAgICBlbGxlciBrYXBhY2l0ZXRzYmVnciZhdW1sO25zbmluZ2FyLiBWJmF1bWw7bmxpZ2VuIGYmb3VtbDtycyZvdW1sO2sKICAgIGlnZW4gc2VuYXJlLgoKPCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvYm90dG9tLmh0bWwiIC0tPgotLS0tLS0tLS0tc3YtLQoKQ29udGVudC1sYW5ndWFnZTogdHIKQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktOQpCb2R5Oi0tLS0tLS0tLS10ci0tCjwhLS0jc2V0IHZhcj0iQ09OVEVOVF9MQU5HVUFHRSIgdmFsdWU9InRyIgotLT48IS0tI3NldCB2YXI9IkNIQVJBQ1RFUl9FTkNPRElORyIgdmFsdWU9IklTTy04ODU5LTkiCi0tPjwhLS0jc2V0IHZhcj0iVElUTEUiIHZhbHVlPSJTZXJ2aWNlIHVuYXZhaWxhYmxlISIKLS0+PCEtLSNpbmNsdWRlIHZpcnR1YWw9ImluY2x1ZGUvdG9wLmh0bWwiIC0tPgoKICAgIFN1bnVjdSwga2VuZGkgaedpbmRla2kg52UmIzM1MTtpdGxpIHNvcnVubGFyZGFuIPZ0/HL8LAogICAgYmlyIHP8cmVsaSYjMjg3O2luZSB0YWxlcGxlcmluaXplIGNldmFwIHZlcmVtZXllY2VrLgogICAgTPx0ZmVuIGRhaGEgc29ucmEgdGVrcmFyIGRlbmV5aW4uCgo8IS0tI2luY2x1ZGUgdmlydHVhbD0iaW5jbHVkZS9ib3R0b20uaHRtbCIgLS0+Ci0tLS0tLS0tLS10ci0tCg==