$(echo Ck91dGRvb3IgSG9tZSBQcm9qZWN0czogRGVja3MsIFBhdGlvcywgYW5kIExhbmRzY2FwaW5nIEJhc2ljcwoKPGhyPgoKCjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtbGFyZ2UiPgo8aW1nIHNyYz0iaHR0cHM6Ly9ibG9nZmFucy5vcmcvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDIvZG9vci1sb2NrLXRvb2xzLmpwZyIgYWx0PSJPdXRkb29yIEhvbWUgUHJvamVjdHM6IERlY2tzLCBQYXRpb3MsIGFuZCBMYW5kc2NhcGluZyBCYXNpY3MiIGxvYWRpbmc9ImxhenkiPgo8ZmlnY2FwdGlvbj5PdXRkb29yIEhvbWUgUHJvamVjdHM6IERlY2tzLCBQYXRpb3MsIGFuZCBMYW5kc2NhcGluZyBCYXNpY3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+CjxoMj5BUFAgTWV0aG9kIEludHJvZHVjdGlvbjwvaDI+PGRpdiBjbGFzcz0idGxkci1ib3giPjxwPjxzdHJvbmc+VEw7RFI8L3N0cm9uZz48L3A+PHVsPjxsaT7ij7HvuI8gUmVhZGluZyBUaW1lOiA4IG1pbjwvbGk+PGxpPvCfm6DvuI8gU2tpbGw6IEJlZ2lubmVyPC9saT48bGk+8J+SsCBTYXZpbmdzOiAwLUsveXI8L2xpPjwvdWw+PC9kaXY+Cgo8c3Ryb25nPjxzdHJvbmcgY2xhc3M9ImFwcC1tZXRob2QiPjxzcGFuIGNsYXNzPSJhcHAtdGFnIGFwcC1hZ3JlZSI+QUdSRUU8L3NwYW4+PC9zdHJvbmc+IFlvdXIgYmFja3lhcmQgc2l0cyB1bnVzZWQuIFRoZSBmcm9udCB5YXJkIGxvb2tzIHRpcmVkLiBZb3UndmUgdGhvdWdodCBhYm91dCBhIGRlY2ssIG1heWJlIGEgcGF0aW8sIHBlcmhhcHMgc29tZSBsYW5kc2NhcGluZywgYnV0IHdoZXJlIGRvIHlvdSBzdGFydD8gT3V0ZG9vciBwcm9qZWN0cyBmZWVsIG92ZXJ3aGVsbWluZyDigJQgcGVybWl0cywgbWF0ZXJpYWxzLCB3ZWF0aGVyIGNvbnNpZGVyYXRpb25zLCBtYWludGVuYW5jZS4gU28geW91IHB1dCBpdCBvZmYsIHllYXIgYWZ0ZXIgeWVhciwgbWlzc2luZyBvdXQgb24gb3V0ZG9vciBsaXZpbmcgc3BhY2UuCgo8c3Ryb25nPltQUk9NSVNFOjwvc3Ryb25nPiBBZnRlciBjb21wbGV0aW5nIGRvemVucyBvZiBvdXRkb29yIHByb2plY3RzLCBJJ3ZlIGxlYXJuZWQgdGhhdCB0cmFuc2Zvcm1pbmcgeW91ciBvdXRkb29yIHNwYWNlIGRvZXNuJ3QgcmVxdWlyZSBhIGh1Z2UgYnVkZ2V0IG9yIHByb2Zlc3Npb25hbCBza2lsbHMuIEl0IHJlcXVpcmVzIHVuZGVyc3RhbmRpbmcgeW91ciBvcHRpb25zLCBjaG9vc2luZyB0aGUgcmlnaHQgbWF0ZXJpYWxzLCBhbmQgZXhlY3V0aW5nIGluIHRoZSByaWdodCBvcmRlci4gVGhpcyBndWlkZSBjb3ZlcnMgdGhlIG1vc3QgcG9wdWxhciBvdXRkb29yIGltcHJvdmVtZW50cyB3aXRoIHJlYWxpc3RpYyBjb3N0cyBhbmQgRElZIGFzc2Vzc21lbnRzLgoKPHN0cm9uZz48c3Ryb25nIGNsYXNzPSJhcHAtbWV0aG9kIj48c3BhbiBjbGFzcz0iYXBwLXRhZyBhcHAtcHJldmlldyI+UFJFVklFVzwvc3Bhbj48L3N0cm9uZz4gV2UnbGwgY292ZXIgZGVja3MsIHBhdGlvcywgbGFuZHNjYXBpbmcgYmFzaWNzLCBvdXRkb29yIGxpZ2h0aW5nLCBhbmQgbWFpbnRlbmFuY2UuIFlvdSdsbCBsZWFybiB3aGF0IHlvdSBjYW4gZG8geW91cnNlbGYsIHdoYXQgdG8gaGlyZSBvdXQsIGFuZCBob3cgdG8gY3JlYXRlIG91dGRvb3Igc3BhY2UgeW91J2xsIGFjdHVhbGx5IHVzZS4KCjxocj4KCjxoMj5QbGFubmluZyBZb3VyIE91dGRvb3IgU3BhY2U8L2gyPgoKQmVmb3JlIGJ1aWxkaW5nIGFueXRoaW5nLCB0aGluayBhYm91dCBob3cgeW91J2xsIHVzZSB0aGUgc3BhY2UuCgo8aDM+UXVlc3Rpb25zIHRvIEFzazwvaDM+CgotIDxzdHJvbmc+SG93IHdpbGwgeW91IHVzZSBpdD88L3N0cm9uZz4gRGluaW5nLCBsb3VuZ2luZywgZW50ZXJ0YWluaW5nLCBjb29raW5nPwotIDxzdHJvbmc+SG93IG1hbnkgcGVvcGxlPzwvc3Ryb25nPiBGYW1pbHkgb2YgNCBvciBwYXJ0aWVzIG9mIDIwPwotIDxzdHJvbmc+U3VuL3NoYWRlPzwvc3Ryb25nPiBXaGVyZSBkb2VzIHRoZSBzdW4gaGl0PyBXaGVuIGRvIHlvdSBuZWVkIHNoYWRlPwotIDxzdHJvbmc+UHJpdmFjeT88L3N0cm9uZz4gV2hhdCBjYW4gbmVpZ2hib3JzIHNlZT8KLSA8c3Ryb25nPkJ1ZGdldD88L3N0cm9uZz4gSG93IG11Y2ggY2FuIHlvdSByZWFsaXN0aWNhbGx5IHNwZW5kPwotIDxzdHJvbmc+RElZIG9yIGhpcmU/PC9zdHJvbmc+IFdoYXQgc2tpbGxzIGRvIHlvdSBoYXZlPwoKPGgzPlpvbmVzIHRvIENvbnNpZGVyPC9oMz4KCjxzdHJvbmc+RGluaW5nIHpvbmU6PC9zdHJvbmc+IFRhYmxlLCBjaGFpcnMsIGdyaWxsIGFjY2Vzcwo8c3Ryb25nPkxvdW5nZSB6b25lOjwvc3Ryb25nPiBTZWF0aW5nLCBmaXJlIHBpdCwgY29udmVyc2F0aW9uIGFyZWEKPHN0cm9uZz5Db29raW5nIHpvbmU6PC9zdHJvbmc+IEdyaWxsLCBwcmVwIHNwYWNlLCBzdG9yYWdlCjxzdHJvbmc+UGxheSB6b25lOjwvc3Ryb25nPiBLaWRzLCBwZXRzLCBhY3Rpdml0aWVzCgo8aHI+Cgo8aDI+UHJvamVjdCAjMTogRGVjayBCdWlsZGluZzwvaDI+CgpEZWNrcyBleHRlbmQgbGl2aW5nIHNwYWNlIG91dGRvb3JzLiBIZXJlJ3Mgd2hhdCB5b3UgbmVlZCB0byBrbm93LgoKPGgzPkRlY2sgTWF0ZXJpYWxzPC9oMz4KCnwgTWF0ZXJpYWwgfCBDb3N0L1NRRlQgfCBMaWZlc3BhbiB8IE1haW50ZW5hbmNlIHwKfC0tLS0tLS0tLS18LS0tLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfAp8IFByZXNzdXJlLXRyZWF0ZWQgd29vZCB8ICQxNS0yNSB8IDE1LTIwIHllYXJzIHwgQW5udWFsIHN0YWluaW5nIHwKfCBDZWRhci9yZWR3b29kIHwgJDI1LTM1IHwgMjAtMjUgeWVhcnMgfCBBbm51YWwgc3RhaW5pbmcgfAp8IENvbXBvc2l0ZSB8ICQzNS01MCB8IDI1LTUwIHllYXJzIHwgTWluaW1hbCB8CnwgUFZDIHwgJDQwLTYwIHwgNTArIHllYXJzIHwgTm9uZSB8Cgo8c3Ryb25nPlJlY29tbWVuZGF0aW9uOjwvc3Ryb25nPiBQcmVzc3VyZS10cmVhdGVkIGZvciBidWRnZXQsIGNvbXBvc2l0ZSBmb3IgbG93IG1haW50ZW5hbmNlLgoKPGgzPkRJWSB2cy4gUHJvZmVzc2lvbmFsPC9oMz4KCjxzdHJvbmc+RElZLWFwcHJvcHJpYXRlOjwvc3Ryb25nPgotIEdyb3VuZC1sZXZlbCBkZWNrcyB1bmRlciAyMDAgc3EgZnQKLSBTaW1wbGUgcmVjdGFuZ3VsYXIgZGVzaWducwotIElmIHlvdSBoYXZlIGNhcnBlbnRyeSBleHBlcmllbmNlCgo8c3Ryb25nPkhpcmUgYSBwcm9mZXNzaW9uYWw6PC9zdHJvbmc+Ci0gTXVsdGktbGV2ZWwgZGVja3MKLSBEZWNrcyBvdmVyIDQgZmVldCBvZmYgZ3JvdW5kCi0gQ29tcGxleCBkZXNpZ25zCi0gQW55IGRlY2sgcmVxdWlyaW5nIHBlcm1pdHMKCjxoMz5QZXJtaXQgUmVxdWlyZW1lbnRzPC9oMz4KCk1vc3QgbXVuaWNpcGFsaXRpZXMgcmVxdWlyZSBwZXJtaXRzIGZvciBkZWNrczoKLSBBdHRhY2hlZCB0byBob3VzZTogQWx3YXlzIHJlcXVpcmVzIHBlcm1pdAotIEdyb3VuZC1sZXZlbDogT2Z0ZW4gZXhlbXB0LCBjaGVjayBsb2NhbGx5Ci0gSGVpZ2h0IG92ZXIgMzAiOiBVc3VhbGx5IHJlcXVpcmVzIHJhaWxpbmcKLSBCdWlsdCBvbiBwb3N0czogRW5naW5lZXJpbmcgbWF5IGJlIHJlcXVpcmVkCgo8aDM+S2V5IEJ1aWxkaW5nIFRpcHM8L2gzPgoKMS4gPHN0cm9uZz5Gb290aW5ncyBiZWxvdyBmcm9zdCBsaW5lPC9zdHJvbmc+CjIuIDxzdHJvbmc+UHJvcGVyIGZsYXNoaW5nIHdoZXJlIGRlY2sgbWVldHMgaG91c2U8L3N0cm9uZz4KMy4gPHN0cm9uZz5Db3JyZWN0IGpvaXN0IHNwYWNpbmcgKDE2IiBmb3IgZGVjayBib2FyZHMpPC9zdHJvbmc+CjQuIDxzdHJvbmc+R2FsdmFuaXplZCBvciBzdGFpbmxlc3MgaGFyZHdhcmU8L3N0cm9uZz4KNS4gPHN0cm9uZz5Qcm9wZXIgZHJhaW5hZ2UgYmV0d2VlbiBib2FyZHM8L3N0cm9uZz4KCgoKPGhyPgoKPGgyPlByb2plY3QgIzI6IFBhdGlvIEluc3RhbGxhdGlvbjwvaDI+CgpQYXRpb3M6IGdyb3VuZC1sZXZlbCwgc29saWQgc3VyZmFjZXMgZm9yIG91dGRvb3IgbGl2aW5nLgoKPGgzPlBhdGlvIE1hdGVyaWFsczwvaDM+Cgo8c3Ryb25nPkNvbmNyZXRlOjwvc3Ryb25nPgotIENvc3Q6ICQ2LTE1L3NxZnQKLSBEdXJhYmxlLCB2ZXJzYXRpbGUKLSBDYW4gYmUgc3RhbXBlZCwgY29sb3JlZCwgb3Igc3RhaW5lZAoKPHN0cm9uZz5QYXZlcnM6PC9zdHJvbmc+Ci0gQ29zdDogJDEwLTI1L3NxZnQKLSBNYW55IHN0eWxlcyBhbmQgY29sb3JzCi0gRElZLWZyaWVuZGx5Ci0gRWFzeSByZXBhaXJzIChyZXBsYWNlIGluZGl2aWR1YWwgcGF2ZXJzKQoKPHN0cm9uZz5GbGFnc3RvbmU6PC9zdHJvbmc+Ci0gQ29zdDogJDE1LTMwL3NxZnQKLSBOYXR1cmFsIGxvb2sKLSBJcnJlZ3VsYXIgc2hhcGVzIHJlcXVpcmUgc2tpbGwKLSBQcm9mZXNzaW9uYWwgaW5zdGFsbGF0aW9uIHJlY29tbWVuZGVkCgo8c3Ryb25nPkdyYXZlbDo8L3N0cm9uZz4KLSBDb3N0OiAkMi01L3NxZnQKLSBTaW1wbGVzdCBvcHRpb24KLSBHb29kIGZvciB3YWxrd2F5cywgbm90IGRpbmluZyBhcmVhcwotIFJlcXVpcmVzIGVkZ2luZyBhbmQgYmFzZQoKPGgzPkRJWSBQYXRpbyBTdGVwczwvaDM+CgoxLiA8c3Ryb25nPk1hcmsgdGhlIGFyZWE8L3N0cm9uZz4gKHNwcmF5IHBhaW50LCBzdGFrZXMpCjIuIDxzdHJvbmc+RXhjYXZhdGUgNi04Ijwvc3Ryb25nPiBkZWVwCjMuIDxzdHJvbmc+QWRkIGdyYXZlbCBiYXNlPC9zdHJvbmc+ICg0LTYiKSBhbmQgY29tcGFjdAo0LiA8c3Ryb25nPkFkZCBzYW5kIGxheWVyPC9zdHJvbmc+ICgxIikgYW5kIGxldmVsCjUuIDxzdHJvbmc+SW5zdGFsbCBwYXZlcnM8L3N0cm9uZz4gc3RhcnRpbmcgZnJvbSBjb3JuZXIKNi4gPHN0cm9uZz5DdXQgcGF2ZXJzPC9zdHJvbmc+IGFzIG5lZWRlZCAocmVudCBwYXZlciBzYXcpCjcuIDxzdHJvbmc+QWRkIGVkZ2UgcmVzdHJhaW50czwvc3Ryb25nPgo4LiA8c3Ryb25nPlNwcmVhZCBwb2x5bWVyaWMgc2FuZDwvc3Ryb25nPiBvdmVyIHN1cmZhY2UKOS4gPHN0cm9uZz5Db21wYWN0IGFuZCBzd2VlcDwvc3Ryb25nPgoKPGgzPkRyYWluYWdlPC9oMz4KClBhdGlvcyBzaG91bGQgc2xvcGUgYXdheSBmcm9tIGhvdXNlOiAxIiBwZXIgNCBmZWV0IG1pbmltdW0uCgo8aHI+Cgo8aDI+UHJvamVjdCAjMzogQmFzaWMgTGFuZHNjYXBpbmc8L2gyPgoKWW91ciB5YXJkJ3MgZm91bmRhdGlvbi4gU3RhcnQgaGVyZSBiZWZvcmUgZGVja3MgYW5kIHBhdGlvcy4KCgoKPGgzPkxhd24gQ2FyZSBCYXNpY3M8L2gzPgoKPHN0cm9uZz5JbXByb3ZpbmcgZXhpc3RpbmcgbGF3bjo8L3N0cm9uZz4KLSBBZXJhdGUgaW4gc3ByaW5nIG9yIGZhbGwKLSBPdmVyc2VlZCB0aGluIGFyZWFzCi0gRmVydGlsaXplIDMtNCB0aW1lcyBwZXIgeWVhcgotIFdhdGVyIGRlZXBseSwgaW5mcmVxdWVudGx5Ci0gTW93IGF0IDMtNCIgaGVpZ2h0Cgo8c3Ryb25nPlJlcGxhY2luZyBsYXduOjwvc3Ryb25nPgotIEtpbGwgZXhpc3RpbmcgZ3Jhc3MgKGhlcmJpY2lkZSBvciBjb3ZlcikKLSBBZGQgdG9wc29pbCBpZiBuZWVkZWQKLSBTZWVkIG9yIHNvZAotIFdhdGVyIGZyZXF1ZW50bHkgZm9yIGZpcnN0IG1vbnRoCgo8aDM+UGxhbnQgU2VsZWN0aW9uPC9oMz4KCjxzdHJvbmc+VHJlZXM6PC9zdHJvbmc+Ci0gQ29uc2lkZXIgbWF0dXJlIHNpemUKLSBBdm9pZCBwbGFudGluZyBuZWFyIHV0aWxpdHkgbGluZXMKLSBOYXRpdmUgc3BlY2llcyBhZGFwdCBiZXR0ZXIKLSBQcm92aWRlIHNoYWRlIGluIDEwLTIwIHllYXJzCgo8c3Ryb25nPlNocnViczo8L3N0cm9uZz4KLSBGb3VuZGF0aW9uIHBsYW50aW5ncwotIFByaXZhY3kgc2NyZWVucwotIExvdyBtYWludGVuYW5jZSBvcHRpb25zOiBib3h3b29kLCBqdW5pcGVyCgo8c3Ryb25nPlBlcmVubmlhbHM6PC9zdHJvbmc+Ci0gUmV0dXJuIGV2ZXJ5IHllYXIKLSBQbGFuIGZvciBjb250aW51b3VzIGJsb29tCi0gTmF0aXZlIHBsYW50cyBzdXBwb3J0IHBvbGxpbmF0b3JzCgo8aDM+TXVsY2hpbmc8L2gzPgoKLSBBcHBseSAyLTMiIGRlcHRoCi0gS2VlcCBtdWxjaCBhd2F5IGZyb20gcGxhbnQgc3RlbXMKLSBSZWZyZXNoIGFubnVhbGx5Ci0gQ29zdDogJDMtNSBwZXIgYmFnLCAkMzAtNTAgcGVyIGN1YmljIHlhcmQgKGJ1bGspCgo8aHI+Cgo8aDI+UHJvamVjdCAjNDogT3V0ZG9vciBMaWdodGluZzwvaDI+CgpFeHRlbmRzIG91dGRvb3IgdXNhYmlsaXR5IGFuZCBhZGRzIHNlY3VyaXR5LgoKPGgzPkxpZ2h0aW5nIFR5cGVzPC9oMz4KCjxzdHJvbmc+UGF0aCBsaWdodHM6PC9zdHJvbmc+IEd1aWRlIHdhbGtpbmcsIGFkZCBhbWJpYW5jZQo8c3Ryb25nPlNwb3RsaWdodHM6PC9zdHJvbmc+IEhpZ2hsaWdodCB0cmVlcywgYXJjaGl0ZWN0dXJlCjxzdHJvbmc+RGVjayBsaWdodHM6PC9zdHJvbmc+IFNhZmV0eSBhbmQgYXRtb3NwaGVyZQo8c3Ryb25nPlN0cmluZyBsaWdodHM6PC9zdHJvbmc+IENhc3VhbCwgZmVzdGl2ZSBmZWVsCjxzdHJvbmc+U2VjdXJpdHkgbGlnaHRzOjwvc3Ryb25nPiBNb3Rpb24tc2Vuc29yLCBicmlnaHQKCjxoMz5JbnN0YWxsYXRpb24gT3B0aW9uczwvaDM+Cgo8c3Ryb25nPlNvbGFyOjwvc3Ryb25nPiBObyB3aXJpbmcsIGVhc3kgaW5zdGFsbGF0aW9uLCBtb2RlcmF0ZSBvdXRwdXQKPHN0cm9uZz5Mb3ctdm9sdGFnZTo8L3N0cm9uZz4gU2FmZSBESVksIHByb2Zlc3Npb25hbCBsb29rLCB0cmFuc2Zvcm1lciBuZWVkZWQKPHN0cm9uZz5MaW5lLXZvbHRhZ2U6PC9zdHJvbmc+IFJlcXVpcmVzIGVsZWN0cmljaWFuLCBwZXJtYW5lbnQsIGJyaWdodAoKPGgzPkRJWSBMb3ctVm9sdGFnZSBMaWdodGluZzwvaDM+CgoxLiBQbGFuIGxpZ2h0IGxvY2F0aW9ucwoyLiBJbnN0YWxsIHRyYW5zZm9ybWVyIChwbHVnIGludG8gR0ZDSSBvdXRsZXQpCjMuIFJ1biBsb3ctdm9sdGFnZSBjYWJsZQo0LiBDb25uZWN0IGZpeHR1cmVzCjUuIEJ1cnkgY2FibGUgNiIgZGVlcCBvciBoaWRlIGluIGxhbmRzY2FwaW5nCgo8c3Ryb25nPkNvc3Q6PC9zdHJvbmc+ICQ1MC0xMDAgcGVyIGZpeHR1cmUsICQ1MC0xNTAgZm9yIHRyYW5zZm9ybWVyLgoKPGhyPgoKPGgyPlByb2plY3QgIzU6IEZlbmNpbmc8L2gyPgoKUHJpdmFjeSwgc2VjdXJpdHksIGFuZCBwcm9wZXJ0eSBkZWZpbml0aW9uLgoKPGgzPkZlbmNlIE1hdGVyaWFsczwvaDM+Cgp8IE1hdGVyaWFsIHwgQ29zdC9MRiB8IExpZmVzcGFuIHwgTWFpbnRlbmFuY2UgfAp8LS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfAp8IFdvb2QgKHByZXNzdXJlLXRyZWF0ZWQpIHwgJDE1LTI1IHwgMTUtMjAgeWVhcnMgfCBTdGFpbiBldmVyeSAyLTMgeWVhcnMgfAp8IENlZGFyIHwgJDIwLTM1IHwgMjAtMjUgeWVhcnMgfCBTdGFpbiBldmVyeSAyLTMgeWVhcnMgfAp8IFZpbnlsIHwgJDI1LTQwIHwgMzArIHllYXJzIHwgTm9uZSB8CnwgQWx1bWludW0gfCAkMjUtNTAgfCA1MCsgeWVhcnMgfCBOb25lIHwKfCBDaGFpbiBsaW5rIHwgJDEwLTIwIHwgMzArIHllYXJzIHwgTm9uZSB8Cgo8aDM+RElZIHZzLiBQcm9mZXNzaW9uYWw8L2gzPgoKPHN0cm9uZz5ESVktYXBwcm9wcmlhdGU6PC9zdHJvbmc+Ci0gTGV2ZWwgZ3JvdW5kCi0gU3RyYWlnaHQgcnVucwotIFdvb2QgZmVuY2luZwotIEV4cGVyaWVuY2Ugd2l0aCBwb3N0cwoKPHN0cm9uZz5IaXJlIGEgcHJvZmVzc2lvbmFsOjwvc3Ryb25nPgotIFNsb3BlZCB0ZXJyYWluCi0gR2F0ZXMgcmVxdWlyZWQKLSBDb21wbGV4IGxheW91dHMKLSBWaW55bCBvciBhbHVtaW51bSAocmVxdWlyZXMgcHJlY2lzZSBpbnN0YWxsYXRpb24pCgo8aDM+S2V5IENvbnNpZGVyYXRpb25zPC9oMz4KCi0gPHN0cm9uZz5DYWxsIGJlZm9yZSB5b3UgZGlnPC9zdHJvbmc+ICg4MTEgZm9yIHV0aWxpdHkgbWFya2luZykKLSA8c3Ryb25nPkNoZWNrIHByb3BlcnR5IGxpbmVzPC9zdHJvbmc+Ci0gPHN0cm9uZz5SZXZpZXcgSE9BIHJ1bGVzPC9zdHJvbmc+Ci0gPHN0cm9uZz5QZXJtaXQgcmVxdWlyZWQgaW4gbW9zdCBhcmVhczwvc3Ryb25nPgotIDxzdHJvbmc+U2V0IHBvc3RzIGluIGNvbmNyZXRlPC9zdHJvbmc+ICgxLzMgb2YgcG9zdCBsZW5ndGgpCgoKCjxocj4KCjxoMj5Qcm9qZWN0ICM2OiBGaXJlIFBpdHMgYW5kIE91dGRvb3IgS2l0Y2hlbnM8L2gyPgoKVGhlIHBvcHVsYXIgb3V0ZG9vciBhbWVuaXRpZXMuCgoKCjxoMz5GaXJlIFBpdHM8L2gzPgoKPHN0cm9uZz5Qb3J0YWJsZTo8L3N0cm9uZz4gJDEwMC01MDAsIG1vdmUgYW55d2hlcmUKPHN0cm9uZz5TdG9uZS9tYXNvbnJ5Ojwvc3Ryb25nPiAkNTAwLTIsMDAwLCBwZXJtYW5lbnQgZmVhdHVyZQo8c3Ryb25nPkdhczo8L3N0cm9uZz4gJDUwMC0zLDAwMCwgbm8gc21va2UsIGluc3RhbnQgb24KCjxzdHJvbmc+RElZIG9wdGlvbjo8L3N0cm9uZz4gRmlyZSBwaXQga2l0ICgkMzAwLTUwMCkgaW5jbHVkZXMgbWF0ZXJpYWxzIGFuZCBpbnN0cnVjdGlvbnMuCgo8aDM+T3V0ZG9vciBLaXRjaGVuczwvaDM+Cgo8c3Ryb25nPkJhc2ljOjwvc3Ryb25nPiBHcmlsbCArIHByZXAgc3VyZmFjZSAoJDUwMC0yLDAwMCkKPHN0cm9uZz5NaWQtcmFuZ2U6PC9zdHJvbmc+IEdyaWxsICsgc2luayArIHN0b3JhZ2UgKCQzLDAwMC04LDAwMCkKPHN0cm9uZz5GdWxsIGtpdGNoZW46PC9zdHJvbmc+IEdyaWxsICsgc2luayArIHN0b3JhZ2UgKyByZWZyaWdlcmF0b3IgKyBwaXp6YSBvdmVuICgkMTAsMDAwKykKCjxzdHJvbmc+Q29uc2lkZXJhdGlvbnM6PC9zdHJvbmc+Ci0gR2FzIGxpbmUgZm9yIGdyaWxsCi0gV2F0ZXIgbGluZSBmb3Igc2luawotIEVsZWN0cmljYWwgZm9yIHJlZnJpZ2VyYXRvcgotIFdlYXRoZXIgcHJvdGVjdGlvbgoKPGhyPgoKPGgyPk1haW50ZW5hbmNlIFJlcXVpcmVtZW50czwvaDI+CgpPdXRkb29yIHByb2plY3RzIG5lZWQgb25nb2luZyBjYXJlLgoKPGgzPkRlY2sgTWFpbnRlbmFuY2U8L2gzPgoKLSA8c3Ryb25nPkFubnVhbDo8L3N0cm9uZz4gQ2xlYW4sIGNoZWNrIGZvciByb3QsIHN0YWluL3BhaW50Ci0gPHN0cm9uZz5ZZWFybHk6PC9zdHJvbmc+IFRpZ2h0ZW4gbG9vc2UgYm9hcmRzLCBjaGVjayByYWlsaW5ncwotIDxzdHJvbmc+Q29tcG9zaXRlOjwvc3Ryb25nPiBXYXNoIHdpdGggc29hcCBhbmQgd2F0ZXIKCjxoMz5QYXRpbyBNYWludGVuYW5jZTwvaDM+CgotIDxzdHJvbmc+UGF2ZXJzOjwvc3Ryb25nPiBSZXNhbmQgam9pbnRzIGV2ZXJ5IDItMyB5ZWFycwotIDxzdHJvbmc+Q29uY3JldGU6PC9zdHJvbmc+IFNlYWwgZXZlcnkgMy01IHllYXJzCi0gPHN0cm9uZz5BbGw6PC9zdHJvbmc+IFN3ZWVwIHJlZ3VsYXJseSwgYWRkcmVzcyBzZXR0bGluZwoKPGgzPkxhbmRzY2FwZSBNYWludGVuYW5jZTwvaDM+CgotIDxzdHJvbmc+V2Vla2x5Ojwvc3Ryb25nPiBNb3csIHdhdGVyIGFzIG5lZWRlZAotIDxzdHJvbmc+TW9udGhseTo8L3N0cm9uZz4gV2VlZCwgdHJpbQotIDxzdHJvbmc+U2Vhc29uYWxseTo8L3N0cm9uZz4gTXVsY2gsIGZlcnRpbGl6ZSwgcHJ1bmUKLSA8c3Ryb25nPkFubnVhbGx5Ojwvc3Ryb25nPiBBZXJhdGUsIG92ZXJzZWVkCgo8aHI+Cgo8aDI+QnVkZ2V0IFJlYWxpdHkgQ2hlY2s8L2gyPgoKfCBQcm9qZWN0IHwgRElZIENvc3QgfCBQcm8gQ29zdCB8IFRpbWUgfAp8LS0tLS0tLS0tfC0tLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS18CnwgRGVjayAoMjAwIHNxIGZ0KSB8ICQzLDAwMC01LDAwMCB8ICQ4LDAwMC0xNSwwMDAgfCAyLTQgd2Vla3MgfAp8IFBhdGlvICgyMDAgc3EgZnQpIHwgJDEsNTAwLTMsMDAwIHwgJDQsMDAwLTgsMDAwIHwgMS0yIHdlZWtzIHwKfCBGZW5jaW5nICgxMDAgTEYpIHwgJDEsNTAwLTIsNTAwIHwgJDMsMDAwLTUsMDAwIHwgMS0yIHdlZWtzIHwKfCBMYW5kc2NhcGUgb3ZlcmhhdWwgfCAkNTAwLTIsMDAwIHwgJDIsMDAwLTEwLDAwMCB8IDEtNCB3ZWVrcyB8CnwgT3V0ZG9vciBsaWdodGluZyB8ICQyMDAtNTAwIHwgJDUwMC0yLDAwMCB8IDEtMiBkYXlzIHwKCjxocj4KCjxoMj5GQVE8L2gyPgoKPHN0cm9uZz5ROiBEbyBJIG5lZWQgYSBwZXJtaXQgZm9yIGEgZGVjaz88L3N0cm9uZz4KQTogTW9zdCBhdHRhY2hlZCBkZWNrcyByZXF1aXJlIHBlcm1pdHMuIENoZWNrIHdpdGggeW91ciBidWlsZGluZyBkZXBhcnRtZW50LiBHcm91bmQtbGV2ZWwgZGVja3Mgb2Z0ZW4gZG9uJ3QuCgo8c3Ryb25nPlE6IEhvdyBsb25nIGRvZXMgYSBkZWNrIGxhc3Q/PC9zdHJvbmc+CkE6IFByZXNzdXJlLXRyZWF0ZWQ6IDE1LTIwIHllYXJzLiBDb21wb3NpdGU6IDI1LTUwIHllYXJzIHdpdGggbWluaW1hbCBtYWludGVuYW5jZS4KCjxzdHJvbmc+UTogQ2FuIEkgYnVpbGQgYSBwYXRpbyBvdmVyIGV4aXN0aW5nIGNvbmNyZXRlPzwvc3Ryb25nPgpBOiBZZXMsIGJ1dCBjaGVjayBmb3IgY3JhY2tzIGFuZCBkcmFpbmFnZSBpc3N1ZXMuIFBhdmVycyBjYW4gYmUgaW5zdGFsbGVkIG92ZXIgc291bmQgY29uY3JldGUuCgo8c3Ryb25nPlE6IFdoYXQncyB0aGUgYmVzdCBsb3ctbWFpbnRlbmFuY2UgbGFuZHNjYXBpbmc/PC9zdHJvbmc+CkE6IE5hdGl2ZSBwbGFudHMsIHNocnVicyBpbnN0ZWFkIG9mIGxhd24sIGhhcmRzY2FwaW5nLCBhbmQgbXVsY2ggaW5zdGVhZCBvZiBncmFzcy4KCjxzdHJvbmc+UTogU2hvdWxkIEkgaGlyZSBhIGNvbnRyYWN0b3Igb3IgRElZPzwvc3Ryb25nPgpBOiBESVkgaWY6IHNraWxsZWQsIHNpbXBsZSBwcm9qZWN0LCBoYXZlIHRpbWUuIEhpcmUgaWY6IGNvbXBsZXggZGVzaWduLCBwZXJtaXRzIHJlcXVpcmVkLCB0aWdodCB0aW1lbGluZS4KCjxocj4KCjxoMj5GaW5hbCBUaG91Z2h0czwvaDI+CgpPdXRkb29yIHByb2plY3RzIGV4dGVuZCB5b3VyIGxpdmluZyBzcGFjZSBhbmQgaW5jcmVhc2UgaG9tZSB2YWx1ZS4gU3RhcnQgd2l0aCBhIGNsZWFyIHBsYW46IGhvdyB3aWxsIHlvdSB1c2UgdGhlIHNwYWNlPyBXaGF0J3MgeW91ciBidWRnZXQ/IFdoYXQgY2FuIHlvdSBkbyB5b3Vyc2VsZj8KCkRlY2tzIGFuZCBwYXRpb3MgY3JlYXRlIHVzYWJsZSBvdXRkb29yIHJvb21zLiBMYW5kc2NhcGluZyBwcm92aWRlcyBiZWF1dHkgYW5kIHByaXZhY3kuIExpZ2h0aW5nIGFkZHMgc2FmZXR5IGFuZCBleHRlbmRzIHVzYWJpbGl0eSBpbnRvIGV2ZW5pbmcgaG91cnMuCgpCZWdpbiB3aXRoIHRoZSBwcm9qZWN0IHRoYXQgZ2l2ZXMgeW91IHRoZSBtb3N0IHZhbHVlIGZvciB5b3VyIGxpZmVzdHlsZS4gQnVpbGQgZnJvbSB0aGVyZS4KCk5lZWQgdG9vbHMgZm9yIG91dGRvb3IgcHJvamVjdHM/IE91ciBbaGFuZCB0b29scyBndWlkZV0oL2hhbmQtdG9vbHMvYmVnaW5uZXJzKSBjb3ZlcnMgZXNzZW50aWFscy4KCkltcHJvdmluZyB5b3VyIGhvbWUgaW5zaWRlIHRvbz8gT3VyIFtob21lIGVuZXJneSBndWlkZV0oL2hvbWUtaW1wcm92ZW1lbnQvaG9tZS1lbmVyZ3ktZWZmaWNpZW5jeSkgaGVscHMgcmVkdWNlIGNvc3RzLgoKUGxhbm5pbmcgbWFqb3IgaW1wcm92ZW1lbnRzPyBPdXIgW2tpdGNoZW4gcmVub3ZhdGlvbiBndWlkZV0oL2hvbWUtaW1wcm92ZW1lbnQva2l0Y2hlbi1yZW5vdmF0aW9uKSBhZGRyZXNzZXMgaW5kb29yIHByb2plY3RzLgoKPGhyPgoKPHN0cm9uZz5Zb3VyIG91dGRvb3Igc3BhY2UgaXMgYW4gZXh0ZW5zaW9uIG9mIHlvdXIgaG9tZS4gQ3JlYXRlIHNvbWV0aGluZyB5b3UnbGwgdXNlIGFuZCBlbmpveS48L3N0cm9uZz48aHI+PGhyPjxoMj5Db21tb24gTWlzdGFrZXMgdG8gQXZvaWQ8L2gyPjx1bD48bGk+PHN0cm9uZz5Ta2lwcGluZyBwcmVwYXJhdGlvbjo8L3N0cm9uZz4gTmV2ZXIgc3RhcnQgd2l0aG91dCBtZWFzdXJpbmcgdHdpY2UuPC9saT48bGk+PHN0cm9uZz5Vc2luZyB3cm9uZyBtYXRlcmlhbHM6PC9zdHJvbmc+IEFsd2F5cyBjaGVjayBtYW51ZmFjdHVyZXIgcmVjb21tZW5kYXRpb25zLjwvbGk+PGxpPjxzdHJvbmc+SWdub3Jpbmcgc2FmZXR5Ojwvc3Ryb25nPiBQUEUgaXMgbm9uLW5lZ290aWFibGUuPC9saT48bGk+PHN0cm9uZz5SdXNoaW5nOjwvc3Ryb25nPiBRdWFsaXR5IHRha2VzIHRpbWUuPC9saT48L3VsPjxocj48aDI+UHJvamVjdCBDaGVja2xpc3Q8L2gyPjx1bD48bGk+4piQIEdhdGhlciBhbGwgdG9vbHM8L2xpPjxsaT7imJAgTWVhc3VyZSB0d2ljZSwgY3V0IG9uY2U8L2xpPjxsaT7imJAgQ2xlYXIgd29yayBhcmVhPC9saT48bGk+4piQIFdlYXIgc2FmZXR5IGdlYXI8L2xpPjxsaT7imJAgRm9sbG93IGNvZGVzPC9saT48bGk+4piQIEluc3BlY3QgZmluaXNoZWQgd29yazwvbGk+PC91bD48aHI+PGgyPlJlYWwtV29ybGQgQXBwbGljYXRpb24gRXhhbXBsZXM8L2gyPgo8cD5VbmRlcnN0YW5kaW5nIGhvdyB0aGVzZSBza2lsbHMgYXBwbHkgaW4gcmVhbCBzaXR1YXRpb25zIGhlbHBzIHlvdSBtYWtlIGJldHRlciBkZWNpc2lvbnM6PC9wPgo8dWw+CjxsaT48c3Ryb25nPkZpcnN0LXRpbWUgaG9tZW93bmVyOjwvc3Ryb25nPiBTdGFydCB3aXRoIHNpbXBsZSByZXBhaXJzIGJlZm9yZSB0YWNrbGluZyBtYWpvciBwcm9qZWN0cy48L2xpPgo8bGk+PHN0cm9uZz5TZWFzb25lZCBESVllcjo8L3N0cm9uZz4gRm9jdXMgb24gaGlnaC1pbXBhY3QgaW1wcm92ZW1lbnRzIHRoYXQgYWRkIHZhbHVlIHRvIHlvdXIgcHJvcGVydHkuPC9saT4KPGxpPjxzdHJvbmc+UmVudGFsIHByb3BlcnR5IG93bmVyOjwvc3Ryb25nPiBQcmlvcml0aXplIGxvdy1jb3N0IHVwZ3JhZGVzIHRoYXQgYXR0cmFjdCBxdWFsaXR5IHRlbmFudHMuPC9saT4KPGxpPjxzdHJvbmc+TWFpbnRlbmFuY2UgcHJvZmVzc2lvbmFsOjwvc3Ryb25nPiBVc2UgdGhlc2UgdGVjaG5pcXVlcyB0byB3b3JrIG1vcmUgZWZmaWNpZW50bHkuPC9saT4KPC91bD4KCjxoMj5Db3N0LVNhdmluZyBUaXBzPC9oMj4KPHVsPgo8bGk+QnV5IG1hdGVyaWFscyBkdXJpbmcgc2FsZXMgZXZlbnRzIChNZW1vcmlhbCBEYXksIEJsYWNrIEZyaWRheSwgSmFudWFyeSBjbGVhcmFuY2UpPC9saT4KPGxpPkNvbXBhcmUgcHJpY2VzIGFjcm9zcyBhdCBsZWFzdCAzIHN1cHBsaWVycyBiZWZvcmUgcHVyY2hhc2luZzwvbGk+CjxsaT5Db25zaWRlciBxdWFsaXR5IHVzZWQgdG9vbHMgZm9yIG9uZS10aW1lIHByb2plY3RzPC9saT4KPGxpPkJvcnJvdyBzcGVjaWFsaXplZCB0b29scyBpbnN0ZWFkIG9mIGJ1eWluZyBmb3Igc2luZ2xlIHVzZTwvbGk+CjxsaT5EbyBwcmVwYXJhdG9yeSB3b3JrIHlvdXJzZWxmIHRvIHJlZHVjZSBsYWJvciBjb3N0czwvbGk+CjwvdWw+Cgo8aDI+V2hlbiB0byBDYWxsIGEgUHJvZmVzc2lvbmFsPC9oMj4KPHA+S25vdyB5b3VyIGxpbWl0cy4gQ2FsbCBhIGxpY2Vuc2VkIHByb2Zlc3Npb25hbCBmb3I6PC9wPgo8dWw+CjxsaT5FbGVjdHJpY2FsIHdvcmsgYmV5b25kIHNpbXBsZSBvdXRsZXQgcmVwbGFjZW1lbnQ8L2xpPgo8bGk+UGx1bWJpbmcgaW52b2x2aW5nIG1haW4gbGluZXMgb3IgZ2FzIGxpbmVzPC9saT4KPGxpPlN0cnVjdHVyYWwgY2hhbmdlcyB0byBsb2FkLWJlYXJpbmcgd2FsbHM8L2xpPgo8bGk+SFZBQyBzeXN0ZW0gaW5zdGFsbGF0aW9uIG9yIG1ham9yIHJlcGFpcnM8L2xpPgo8bGk+UHJvamVjdHMgcmVxdWlyaW5nIHBlcm1pdHM8L2xpPgo8L3VsPgoKPGgyPk1haW50ZW5hbmNlIFNjaGVkdWxlPC9oMj4KPHA+S2VlcCB5b3VyIGhvbWUgaW4gdG9wIGNvbmRpdGlvbiB3aXRoIHJlZ3VsYXIgbWFpbnRlbmFuY2U6PC9wPgo8dWw+CjxsaT48c3Ryb25nPk1vbnRobHk6PC9zdHJvbmc+IENoZWNrIHNtb2tlIGRldGVjdG9ycywgdGVzdCBnYXJhZ2UgZG9vcjwvbGk+CjxsaT48c3Ryb25nPlF1YXJ0ZXJseTo8L3N0cm9uZz4gQ2xlYW4gZ3V0dGVycywgaW5zcGVjdCBjYXVsa2luZywgY2hlY2sgd2F0ZXIgZmlsdGVyczwvbGk+CjxsaT48c3Ryb25nPlNlbWktYW5udWFsbHk6PC9zdHJvbmc+IFNlcnZpY2UgSFZBQywgY2xlYW4gZHJ5ZXIgdmVudCwgY2hlY2sgcm9vZmluZzwvbGk+CjxsaT48c3Ryb25nPkFubnVhbGx5Ojwvc3Ryb25nPiBJbnNwZWN0IGZvdW5kYXRpb24sIHByZXNzdXJlIHdhc2ggZXh0ZXJpb3IsIHNlcnZpY2Ugd2F0ZXIgaGVhdGVyPC9saT4KPC91bD48ZGl2IGNsYXNzPSJhdXRob3ItYm94Ij48aDM+QWJvdXQgdGhlIEF1dGhvcjwvaDM+PHA+QkFSUSBCbG9nRmFucyB0ZWFtIOKAlCBob21lIGltcHJvdmVtZW50IGV4cGVydHMuPC9wPjwvZGl2Pjxocj48aDM+UmVsYXRlZCBBcnRpY2xlczwvaDM+PHVsPjxsaT48YSBocmVmPSIvaGFuZC10b29scy8iPkhhbmQgVG9vbHM8L2E+PC9saT48bGk+PGEgaHJlZj0iL2hvbWUtaW1wcm92ZW1lbnQvIj5Ib21lIEltcHJvdmVtZW50PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9kaXktZm9yLWJlZ2lubmVycy8iPkRJWSBCZWdpbm5lcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iL2hvbWUtaW1wcm92ZW1lbnQvaW5kb29yLXByb2plY3RzLyI+SW5kb29yIFByb2plY3RzPC9hPjwvbGk+PC91bD48aDI+QmVnaW5uZXIgVGlwcyBhbmQgVHJpY2tzPC9oMj4KPHA+U3RhcnRpbmcgeW91ciBESVkgam91cm5leT8gSGVyZSBhcmUgZXNzZW50aWFsIHRpcHMgZnJvbSBleHBlcmllbmNlZCBob21lb3duZXJzOjwvcD4KPHVsPgo8bGk+PHN0cm9uZz5TdGFydCBzbWFsbDo8L3N0cm9uZz4gQmVnaW4gd2l0aCBzaW1wbGUgcHJvamVjdHMgbGlrZSBjaGFuZ2luZyBvdXRsZXQgY292ZXJzIG9yIHBhaW50aW5nIGEgcm9vbS48L2xpPgo8bGk+PHN0cm9uZz5JbnZlc3QgaW4gcXVhbGl0eSB0b29sczo8L3N0cm9uZz4gQ2hlYXAgdG9vbHMgYnJlYWsgcXVpY2tseSBhbmQgY29zdCBtb3JlIGluIHRoZSBsb25nIHJ1bi48L2xpPgo8bGk+PHN0cm9uZz5XYXRjaCB0dXRvcmlhbHM6PC9zdHJvbmc+IFlvdVR1YmUgYW5kIGJsb2dzIG9mZmVyIGZyZWUgdHJhaW5pbmcgb24gdmlydHVhbGx5IGFueSBza2lsbC48L2xpPgo8bGk+PHN0cm9uZz5Kb2luIGNvbW11bml0eSBncm91cHM6PC9zdHJvbmc+IExvY2FsIERJWSBGYWNlYm9vayBncm91cHMgYW5kIHN1YnJlZGRpdHMgYXJlIGdyZWF0IGZvciBhZHZpY2UuPC9saT4KPGxpPjxzdHJvbmc+S2VlcCBhIHRvb2wgam91cm5hbDo8L3N0cm9uZz4gTm90ZSB3aGF0IHdvcmtzLCB3aGF0IGRvZXMgbm90LCBhbmQgbGVzc29ucyBsZWFybmVkLjwvbGk+CjxsaT48c3Ryb25nPlRha2UgcGhvdG9zOjwvc3Ryb25nPiBEb2N1bWVudCB5b3VyIHByb2Nlc3MgZm9yIGZ1dHVyZSByZWZlcmVuY2UgYW5kIHRvIGhlbHAgb3RoZXJzLjwvbGk+CjxsaT48c3Ryb25nPkFjY2VwdCBpbXBlcmZlY3Rpb25zOjwvc3Ryb25nPiBZb3VyIGZpcnN0IHByb2plY3Qgd2lsbCBub3QgYmUgcGVyZmVjdCwgYW5kIHRoYXQgaXMgb2theS48L2xpPgo8bGk+PHN0cm9uZz5QbGFuIGZvciBtaXN0YWtlczo8L3N0cm9uZz4gQnVkZ2V0IDEwLTIwJSBleHRyYSBmb3IgbWF0ZXJpYWxzIGFuZCB0aW1lIG92ZXJydW5zLjwvbGk+CjxsaT48c3Ryb25nPldvcmsgc2FmZWx5Ojwvc3Ryb25nPiBOZXZlciBza2lwIHNhZmV0eSBnZWFyLCBldmVuIGZvciBxdWljayBqb2JzLjwvbGk+CjxsaT48c3Ryb25nPkFzayBmb3IgaGVscDo8L3N0cm9uZz4gV2hlbiBpbiBkb3VidCwgY29uc3VsdCBhIHByb2Zlc3Npb25hbCBiZWZvcmUgY2F1c2luZyBkYW1hZ2UuPC9saT4KPC91bD4KCjxoMj5BZHZhbmNlZCBUZWNobmlxdWVzPC9oMj4KPHA+T25jZSB5b3UgaGF2ZSBtYXN0ZXJlZCB0aGUgYmFzaWNzLCB0aGVzZSBhZHZhbmNlZCB0ZWNobmlxdWVzIHdpbGwgZWxldmF0ZSB5b3VyIHByb2plY3RzOjwvcD4KPHVsPgo8bGk+PHN0cm9uZz5QcmVjaXNpb24gbWVhc3VyZW1lbnRzOjwvc3Ryb25nPiBVc2UgZGlnaXRhbCBsYXNlciBtZWFzdXJlcyBmb3IgYWNjdXJhY3kuPC9saT4KPGxpPjxzdHJvbmc+RmluaXNoIGNhcnBlbnRyeTo8L3N0cm9uZz4gTGVhcm4gcHJvcGVyIHNhbmRpbmcsIHN0YWluaW5nLCBhbmQgc2VhbGluZyB0ZWNobmlxdWVzLjwvbGk+CjxsaT48c3Ryb25nPlRpbGUgd29yazo8L3N0cm9uZz4gU3RhcnQgd2l0aCBiYWNrc3BsYXNoZXMgYmVmb3JlIHRhY2tsaW5nIGZsb29ycy48L2xpPgo8bGk+PHN0cm9uZz5FbGVjdHJpY2FsIGJhc2ljczo8L3N0cm9uZz4gVW5kZXJzdGFuZCBjaXJjdWl0cyBiZWZvcmUgYXR0ZW1wdGluZyBhbnkgZWxlY3RyaWNhbCB3b3JrLjwvbGk+CjxsaT48c3Ryb25nPlBsdW1iaW5nIHJlcGFpcnM6PC9zdHJvbmc+IExlYXJuIHRvIGZpeCBsZWFrcyBiZWZvcmUgYXR0ZW1wdGluZyBtYWpvciBwbHVtYmluZyBwcm9qZWN0cy48L2xpPgo8L3VsPgoKPGgyPlRvb2xzIGFuZCBNYXRlcmlhbHMgR3VpZGU8L2gyPgo8cD5IYXZpbmcgdGhlIHJpZ2h0IHRvb2xzIG1ha2VzIGFueSBwcm9qZWN0IGVhc2llci4gSGVyZSBpcyB3aGF0IGV2ZXJ5IGhvbWVvd25lciBzaG91bGQgb3duOjwvcD4KPHVsPgo8bGk+PHN0cm9uZz5Fc3NlbnRpYWwgaGFuZCB0b29sczo8L3N0cm9uZz4gSGFtbWVyLCBzY3Jld2RyaXZlcnMsIHRhcGUgbWVhc3VyZSwgbGV2ZWwsIHBsaWVycywgYWRqdXN0YWJsZSB3cmVuY2guPC9saT4KPGxpPjxzdHJvbmc+UG93ZXIgdG9vbHM6PC9zdHJvbmc+IENvcmRsZXNzIGRyaWxsLCBjaXJjdWxhciBzYXcsIGppZ3Nhdywgb3JiaXRhbCBzYW5kZXIuPC9saT4KPGxpPjxzdHJvbmc+U2FmZXR5IGVxdWlwbWVudDo8L3N0cm9uZz4gU2FmZXR5IGdsYXNzZXMsIHdvcmsgZ2xvdmVzLCBkdXN0IG1hc2ssIGhlYXJpbmcgcHJvdGVjdGlvbi48L2xpPgo8bGk+PHN0cm9uZz5NZWFzdXJpbmcgdG9vbHM6PC9zdHJvbmc+IFRhcGUgbWVhc3VyZSwgbGFzZXIgbGV2ZWwsIHNwZWVkIHNxdWFyZSwgY29tYmluYXRpb24gc3F1YXJlLjwvbGk+CjxsaT48c3Ryb25nPk9yZ2FuaXphdGlvbjo8L3N0cm9uZz4gVG9vbCBib3gsIHBlZ2JvYXJkLCB3YWxsIG9yZ2FuaXplcnMsIHBvcnRhYmxlIHdvcmtiZW5jaC48L2xpPgo8L3VsPjxoMj5Ucm91Ymxlc2hvb3RpbmcgQ29tbW9uIFByb2JsZW1zPC9oMj4KPHA+RXZlcnkgRElZIHByb2plY3QgZW5jb3VudGVycyBpc3N1ZXMuIEhlcmUgYXJlIHNvbHV0aW9ucyB0byBjb21tb24gcHJvYmxlbXM6PC9wPgo8dWw+CjxsaT48c3Ryb25nPlBhaW50IGRyaXBzIGFuZCBydW5zOjwvc3Ryb25nPiBTYW5kIHNtb290aCBhZnRlciBkcnlpbmcsIGFwcGx5IGFkZGl0aW9uYWwgY29hdC48L2xpPgo8bGk+PHN0cm9uZz5VbmV2ZW4gY2F1bGsgbGluZXM6PC9zdHJvbmc+IFVzZSBwYWludGVyIHRhcGUsIGFwcGx5IHN0ZWFkeSBwcmVzc3VyZSwgc21vb3RoIHdpdGggd2V0IGZpbmdlci48L2xpPgo8bGk+PHN0cm9uZz5TdHJpcHBlZCBzY3Jld3M6PC9zdHJvbmc+IFVzZSBhIHJ1YmJlciBiYW5kIG9yIHNjcmV3IGV4dHJhY3RvciBraXQuPC9saT4KPGxpPjxzdHJvbmc+Q3JhY2tlZCB0aWxlczo8L3N0cm9uZz4gUmVwbGFjZSBpbW1lZGlhdGVseSB0byBwcmV2ZW50IHdhdGVyIGRhbWFnZS48L2xpPgo8bGk+PHN0cm9uZz5TcXVlYWt5IGZsb29yczo8L3N0cm9uZz4gTG9jYXRlIGpvaXN0cywgc2VjdXJlIHdpdGggc2NyZXdzIHRocm91Z2ggc3ViZmxvb3IuPC9saT4KPGxpPjxzdHJvbmc+U3R1Y2sgZG9vcnM6PC9zdHJvbmc+IFNhbmQgaGluZ2UgcGlucyBvciBpbnN0YWxsIHdlYXRoZXIgc3RyaXBwaW5nLjwvbGk+CjxsaT48c3Ryb25nPkRyYWZ0eSB3aW5kb3dzOjwvc3Ryb25nPiBBcHBseSBmb2FtIHdlYXRoZXJzdHJpcHBpbmcgb3IgY2F1bGsgZ2Fwcy48L2xpPgo8bGk+PHN0cm9uZz5DbG9nZ2VkIGRyYWluczo8L3N0cm9uZz4gVXNlIGJha2luZyBzb2RhIGFuZCB2aW5lZ2FyIGJlZm9yZSByZXNvcnRpbmcgdG8gY2hlbWljYWxzLjwvbGk+CjwvdWw+Cgo8aDI+U2Vhc29uYWwgTWFpbnRlbmFuY2UgR3VpZGU8L2gyPgo8cD5LZWVwIHlvdXIgaG9tZSBpbiB0b3AgY29uZGl0aW9uIHllYXItcm91bmQgd2l0aCB0aGVzZSBzZWFzb25hbCB0YXNrczo8L3A+Cjx1bD4KPGxpPjxzdHJvbmc+U3ByaW5nOjwvc3Ryb25nPiBDbGVhbiBndXR0ZXJzLCBpbnNwZWN0IHJvb2YsIHNlcnZpY2UgQUMgdW5pdC48L2xpPgo8bGk+PHN0cm9uZz5TdW1tZXI6PC9zdHJvbmc+IENoZWNrIG91dGRvb3IgZmF1Y2V0cywgc2VhbCBkZWNrcywgcG93ZXIgd2FzaCBzaWRpbmcuPC9saT4KPGxpPjxzdHJvbmc+RmFsbDo8L3N0cm9uZz4gQ2xlYW4gZ3V0dGVycyBhZ2Fpbiwgc2VydmljZSBoZWF0aW5nIHN5c3RlbSwgc2VhbCB3aW5kb3dzLjwvbGk+CjxsaT48c3Ryb25nPldpbnRlcjo8L3N0cm9uZz4gQ2hlY2sgZm9yIGljZSBkYW1zLCB0ZXN0IHNtb2tlIGRldGVjdG9ycywgaW5zdWxhdGUgcGlwZXMuPC9saT4KPC91bD4KCjxoMj5FbnZpcm9ubWVudGFsIENvbnNpZGVyYXRpb25zPC9oMj4KPHA+TW9kZXJuIERJWWVycyBzaG91bGQgY29uc2lkZXIgZW52aXJvbm1lbnRhbCBpbXBhY3Q6PC9wPgo8dWw+CjxsaT5Vc2UgZWNvLWZyaWVuZGx5IG1hdGVyaWFscyB3aGVuIGF2YWlsYWJsZTwvbGk+CjxsaT5Qcm9wZXJseSBkaXNwb3NlIG9mIGhhemFyZG91cyBtYXRlcmlhbHM8L2xpPgo8bGk+Q2hvb3NlIGVuZXJneS1lZmZpY2llbnQgdXBncmFkZXM8L2xpPgo8bGk+UmVkdWNlIHdhc3RlIGJ5IHBsYW5uaW5nIGNhcmVmdWxseTwvbGk+CjxsaT5Db25zaWRlciBzdXN0YWluYWJsZSBtYXRlcmlhbHMgbGlrZSBiYW1ib28gb3IgcmVjeWNsZWQgY29udGVudDwvbGk+CjwvdWw+PGgyPlByb2Zlc3Npb25hbCBUaXBzIGZvciBTdWNjZXNzPC9oMj4KCjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtbGFyZ2UiPgo8aW1nIHNyYz0iaHR0cHM6Ly9ibG9nZmFucy5vcmcvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDIvYmF0dGVyeS0zLndlYnAiIGFsdD0iYmF0dGVyeS0zLndlYnAiIGNsYXNzPSJ3cC1pbWFnZS03NjQiIGxvYWRpbmc9ImxhenkiIC8+CjwvZmlndXJlPgoKCjxwPlRha2UgeW91ciBESVkgcHJvamVjdHMgdG8gdGhlIG5leHQgbGV2ZWwgd2l0aCB0aGVzZSBleHBlcnQgcmVjb21tZW5kYXRpb25zOjwvcD4KPHVsPgo8bGk+QWx3YXlzIHJlYWQgbWFudWZhY3R1cmVyIGluc3RydWN0aW9ucyBjb21wbGV0ZWx5IGJlZm9yZSBzdGFydGluZyBhbnkgcHJvamVjdC48L2xpPgo8bGk+SW52ZXN0IGluIHF1YWxpdHkgdG9vbHMgdGhhdCB3aWxsIGxhc3QgZm9yIHllYXJzIG9mIHJlZ3VsYXIgdXNlLjwvbGk+CjxsaT5UYWtlIHlvdXIgdGltZSB0byBsZWFybiBwcm9wZXIgdGVjaG5pcXVlcyBiZWZvcmUgYXR0ZW1wdGluZyBjb21wbGV4IHdvcmsuPC9saT4KPGxpPkRvY3VtZW50IHlvdXIgcHJvY2VzcyB3aXRoIHBob3RvcyBmb3IgZnV0dXJlIHJlZmVyZW5jZS48L2xpPgo8bGk+Sm9pbiBvbmxpbmUgRElZIGNvbW11bml0aWVzIGZvciBhZHZpY2UgYW5kIGVuY291cmFnZW1lbnQuPC9saT4KPGxpPk5ldmVyIHNraXAgc2FmZXR5IHByZWNhdXRpb25zIHJlZ2FyZGxlc3Mgb2YgaG93IHNpbXBsZSB0aGUgdGFzayBzZWVtcy48L2xpPgo8bGk+QnVkZ2V0IGV4dHJhIHRpbWUgYW5kIG1vbmV5IGZvciB1bmV4cGVjdGVkIGlzc3Vlcy48L2xpPgo8bGk+QXNrIGZvciBoZWxwIHdoZW4gcHJvamVjdHMgZXhjZWVkIHlvdXIgY3VycmVudCBza2lsbCBsZXZlbC48L2xpPgo8L3VsPgoKPGgyPktleSBUYWtlYXdheXM8L2gyPgoKPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+CjxpbWcgc3JjPSJodHRwczovL2Jsb2dmYW5zLm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wMi9iYXR0ZXJ5LTMuanBnIiBhbHQ9IkJhdHRlcnkgc3RvcmFnZSBjYXNlIiBjbGFzcz0id3AtaW1hZ2UtNzY1IiBsb2FkaW5nPSJsYXp5IiAvPgo8L2ZpZ3VyZT4KCgo8dWw+CjxsaT5TdGFydCB3aXRoIHByb3BlciBwbGFubmluZyBhbmQgcmVzZWFyY2ggYmVmb3JlIGFueSBwcm9qZWN0IGJlZ2lucy48L2xpPgo8bGk+SW52ZXN0IGluIHF1YWxpdHkgdG9vbHMgdGhhdCB3aWxsIGxhc3QgZm9yIHllYXJzLjwvbGk+CjxsaT5OZXZlciBza2lwIHNhZmV0eSBwcmVjYXV0aW9ucyByZWdhcmRsZXNzIG9mIHByb2plY3Qgc2l6ZS48L2xpPgo8bGk+VGFrZSB5b3VyIHRpbWUgdG8gbGVhcm4gcHJvcGVyIHRlY2huaXF1ZXMgYmVmb3JlIGF0dGVtcHRpbmcgY29tcGxleCB3b3JrLjwvbGk+CjxsaT5Eb2N1bWVudCB5b3VyIHByb2Nlc3MgZm9yIGZ1dHVyZSByZWZlcmVuY2UgYW5kIGltcHJvdmVtZW50LjwvbGk+CjxsaT5TZWVrIHByb2Zlc3Npb25hbCBoZWxwIHdoZW4gcHJvamVjdHMgZXhjZWVkIHlvdXIgc2tpbGwgbGV2ZWwuPC9saT4KPGxpPkVuam95IHRoZSBwcm9jZXNzIG9mIGxlYXJuaW5nIGFuZCBpbXByb3ZpbmcgeW91ciBob21lLjwvbGk+CjwvdWw+PC9zdHJvbmc+PC9zdHJvbmc+ | base64 -d)