U3VtbWFyeTogTGlicmFyeSBwcm92aWRpbmcgWE1MIGFuZCBIVE1MIHN1cHBvcnQKTmFtZTogbGlieG1sMgpWZXJzaW9uOiBAVkVSU0lPTkAKUmVsZWFzZTogMQpMaWNlbnNlOiBNSVQKR3JvdXA6IERldmVsb3BtZW50L0xpYnJhcmllcwpTb3VyY2U6IGZ0cDovL3htbHNvZnQub3JnL2xpYnhtbDItJXt2ZXJzaW9ufS50YXIuZ3oKQnVpbGRSb290OiAle190bXBwYXRofS8le25hbWV9LSV7dmVyc2lvbn0tcm9vdApCdWlsZFJlcXVpcmVzOiBweXRob24gcHl0aG9uLWRldmVsIHpsaWItZGV2ZWwKVVJMOiBodHRwOi8veG1sc29mdC5vcmcvClByZWZpeDogJXtfcHJlZml4fQpEb2NkaXI6ICV7X2RvY2Rpcn0KCiVkZXNjcmlwdGlvbgpUaGlzIGxpYnJhcnkgYWxsb3dzIHRvIG1hbmlwdWxhdGUgWE1MIGZpbGVzLiBJdCBpbmNsdWRlcyBzdXBwb3J0IAp0byByZWFkLCBtb2RpZnkgYW5kIHdyaXRlIFhNTCBhbmQgSFRNTCBmaWxlcy4gVGhlcmUgaXMgRFREcyBzdXBwb3J0CnRoaXMgaW5jbHVkZXMgcGFyc2luZyBhbmQgdmFsaWRhdGlvbiBldmVuIHdpdGggY29tcGxleCBEdERzLCBlaXRoZXIKYXQgcGFyc2UgdGltZSBvciBsYXRlciBvbmNlIHRoZSBkb2N1bWVudCBoYXMgYmVlbiBtb2RpZmllZC4gVGhlIG91dHB1dApjYW4gYmUgYSBzaW1wbGUgU0FYIHN0cmVhbSBvciBhbmQgaW4tbWVtb3J5IERPTSBsaWtlIHJlcHJlc2VudGF0aW9ucy4KSW4gdGhpcyBjYXNlIG9uZSBjYW4gdXNlIHRoZSBidWlsdC1pbiBYUGF0aCBhbmQgWFBvaW50ZXIgaW1wbGVtZW50YXRpb24KdG8gc2VsZWN0IHN1Ym5vZGVzIG9yIHJhbmdlcy4gQSBmbGV4aWJsZSBJbnB1dC9PdXRwdXQgbWVjaGFuaXNtIGlzCmF2YWlsYWJsZSwgd2l0aCBleGlzdGluZyBIVFRQIGFuZCBGVFAgbW9kdWxlcyBhbmQgY29tYmluZWQgdG8gYW4KVVJJIGxpYnJhcnkuCgolcGFja2FnZSBkZXZlbApTdW1tYXJ5OiBMaWJyYXJpZXMsIGluY2x1ZGVzLCBldGMuIHRvIGRldmVsb3AgWE1MIGFuZCBIVE1MIGFwcGxpY2F0aW9ucwpHcm91cDogRGV2ZWxvcG1lbnQvTGlicmFyaWVzClJlcXVpcmVzOiBsaWJ4bWwyID0gJXt2ZXJzaW9ufQpSZXF1aXJlczogemxpYi1kZXZlbAoKJWRlc2NyaXB0aW9uIGRldmVsCkxpYnJhcmllcywgaW5jbHVkZSBmaWxlcywgZXRjIHlvdSBjYW4gdXNlIHRvIGRldmVsb3AgWE1MIGFwcGxpY2F0aW9ucy4KVGhpcyBsaWJyYXJ5IGFsbG93cyB0byBtYW5pcHVsYXRlIFhNTCBmaWxlcy4gSXQgaW5jbHVkZXMgc3VwcG9ydCAKdG8gcmVhZCwgbW9kaWZ5IGFuZCB3cml0ZSBYTUwgYW5kIEhUTUwgZmlsZXMuIFRoZXJlIGlzIERURHMgc3VwcG9ydAp0aGlzIGluY2x1ZGVzIHBhcnNpbmcgYW5kIHZhbGlkYXRpb24gZXZlbiB3aXRoIGNvbXBsZXggRHREcywgZWl0aGVyCmF0IHBhcnNlIHRpbWUgb3IgbGF0ZXIgb25jZSB0aGUgZG9jdW1lbnQgaGFzIGJlZW4gbW9kaWZpZWQuIFRoZSBvdXRwdXQKY2FuIGJlIGEgc2ltcGxlIFNBWCBzdHJlYW0gb3IgYW5kIGluLW1lbW9yeSBET00gbGlrZSByZXByZXNlbnRhdGlvbnMuCkluIHRoaXMgY2FzZSBvbmUgY2FuIHVzZSB0aGUgYnVpbHQtaW4gWFBhdGggYW5kIFhQb2ludGVyIGltcGxlbWVudGF0aW9uCnRvIHNlbGVjdCBzdWJub2RlcyBvciByYW5nZXMuIEEgZmxleGlibGUgSW5wdXQvT3V0cHV0IG1lY2hhbmlzbSBpcwphdmFpbGFibGUsIHdpdGggZXhpc3RpbmcgSFRUUCBhbmQgRlRQIG1vZHVsZXMgYW5kIGNvbWJpbmVkIHRvIGFuClVSSSBsaWJyYXJ5LgoKJXBhY2thZ2UgcHl0aG9uClN1bW1hcnk6IFB5dGhvbiBiaW5kaW5ncyBmb3IgdGhlIGxpYnhtbDIgbGlicmFyeQpHcm91cDogRGV2ZWxvcG1lbnQvTGlicmFyaWVzClJlcXVpcmVzOiBsaWJ4bWwyID0gJXt2ZXJzaW9ufQpSZXF1aXJlczogJXtfbGliZGlyfS9weXRob24lKGVjaG8gYHB5dGhvbiAtYyAiaW1wb3J0IHN5czsgcHJpbnQgc3lzLnZlcnNpb25bMDozXSJgKQoKJWRlc2NyaXB0aW9uIHB5dGhvbgpUaGUgbGlieG1sMi1weXRob24gcGFja2FnZSBjb250YWlucyBhIG1vZHVsZSB0aGF0IHBlcm1pdHMgYXBwbGljYXRpb25zCndyaXR0ZW4gaW4gdGhlIFB5dGhvbiBwcm9ncmFtbWluZyBsYW5ndWFnZSB0byB1c2UgdGhlIGludGVyZmFjZQpzdXBwbGllZCBieSB0aGUgbGlieG1sMiBsaWJyYXJ5IHRvIG1hbmlwdWxhdGUgWE1MIGZpbGVzLgoKVGhpcyBsaWJyYXJ5IGFsbG93cyB0byBtYW5pcHVsYXRlIFhNTCBmaWxlcy4gSXQgaW5jbHVkZXMgc3VwcG9ydCAKdG8gcmVhZCwgbW9kaWZ5IGFuZCB3cml0ZSBYTUwgYW5kIEhUTUwgZmlsZXMuIFRoZXJlIGlzIERURHMgc3VwcG9ydAp0aGlzIGluY2x1ZGVzIHBhcnNpbmcgYW5kIHZhbGlkYXRpb24gZXZlbiB3aXRoIGNvbXBsZXggRFREcywgZWl0aGVyCmF0IHBhcnNlIHRpbWUgb3IgbGF0ZXIgb25jZSB0aGUgZG9jdW1lbnQgaGFzIGJlZW4gbW9kaWZpZWQuCgolcHJlcAolc2V0dXAgLXEKCiVidWlsZAojCiMgdHJ5IHRvIHVzZSBjb21waWxlciBwcm9maWxpbmcsIGJhc2VkIG9uIEFyamFuIHZhbiBkZSBWZW4gPGFyamFudkByZWRoYXQuY29tPgojIGluaXRpYWwgdGVzdCBzcGVjLiBUaGlzIHJlYWxseSBkb2Vzbid0IHdvcmsgb2theSBmb3IgbW9zdCB0ZXN0cyBkb25lLgojCkdDQ19WRVJTSU9OPWBnY2MgLS12ZXJzaW9uIHwgZ3JlcCAiXmdjYyIgfCBhd2sgJ3sgcHJpbnQgJDMgfScgfCBzZWQgJ3MrXChbMC05XVwpXC5cKFswLTldXClcLi4qK1wxXDIrJ2AKaWYgWyAkR0NDX1ZFUlNJT04gLWdlIDM0IF0KdGhlbgogICAgUFJPRl9HRU49Jy1mcHJvZmlsZS1nZW5lcmF0ZScKICAgIFBST0ZfVVNFPSctZnByb2ZpbGUtdXNlJwpmaQoKaWYgWyAiJFBST0ZfR0VOIiAhPSAiIiBdCnRoZW4KICAgICMgRmlyc3QgZ2VuZXJhdGUgYSBwcm9maWxpbmcgdmVyc2lvbgogICAgQ0ZMQUdTPSIke1JQTV9PUFRfRkxBR1N9ICR7UFJPRl9HRU59IiAgJWNvbmZpZ3VyZQogICAgbWFrZQogICAgIyBSdW4gYSBmZXcgc2FtcGxpbmcKICAgIG1ha2UgZGJhMTAwMDAwLnhtbAogICAgLi94bWxsaW50IC0tbm9vdXQgIGRiYTEwMDAwMC54bWwKICAgIC4veG1sbGludCAtLXN0cmVhbSAgZGJhMTAwMDAwLnhtbAogICAgLi94bWxsaW50IC0tbm9vdXQgLS12YWxpZCB0ZXN0L3ZhbGlkL1JFQy14bWwtMTk5ODAyMTAueG1sCiAgICAuL3htbGxpbnQgLS1zdHJlYW0gLS12YWxpZCB0ZXN0L3ZhbGlkL1JFQy14bWwtMTk5ODAyMTAueG1sCiAgICAjIFRoZW4gZ2VuZXJhdGUgY29kZSBiYXNlZCBvbiBwcm9maWxlCiAgICBDRkxBR1M9IiR7UlBNX09QVF9GTEFHU30gJHtQUk9GX1VTRX0iICAlY29uZmlndXJlCiAgICBtYWtlCmVsc2UKICAgICVjb25maWd1cmUKICAgIG1ha2UKZmkKKGNkIGRvYy9leGFtcGxlcyA7IG1ha2UgY2xlYW4pCmd6aXAgLTkgQ2hhbmdlTG9nCgolaW5zdGFsbApybSAtZnIgJXtidWlsZHJvb3R9CgolbWFrZWluc3RhbGwKcm0gLWYgJFJQTV9CVUlMRF9ST09UJXtfbGliZGlyfS8qLmxhCgolY2xlYW4Kcm0gLWZyICV7YnVpbGRyb290fQoKJXBvc3QKL3NiaW4vbGRjb25maWcKCiVwb3N0dW4KL3NiaW4vbGRjb25maWcKCiVmaWxlcwolZGVmYXR0cigtLCByb290LCByb290KQoKJWRvYyBBVVRIT1JTIENoYW5nZUxvZy5neiBORVdTIFJFQURNRSBDb3B5cmlnaHQgVE9ETwolZG9jICV7X21hbmRpcn0vbWFuMS94bWxsaW50LjEqCiVkb2MgJXtfbWFuZGlyfS9tYW4xL3htbGNhdGFsb2cuMSoKJWRvYyAle19tYW5kaXJ9L21hbjMvbGlieG1sLjMqCgole19saWJkaXJ9L2xpYiouc28uKgole3ByZWZpeH0vYmluL3htbGxpbnQKJXtwcmVmaXh9L2Jpbi94bWxjYXRhbG9nCgolZmlsZXMgZGV2ZWwKJWRlZmF0dHIoLSwgcm9vdCwgcm9vdCkKCiVkb2MgJXtfbWFuZGlyfS9tYW4xL3htbDItY29uZmlnLjEqCiVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cuZ3ogTkVXUyBSRUFETUUgQ29weXJpZ2h0IFRPRE8KJWRvYyBkb2MvKi5odG1sIGRvYy9odG1sIGRvYy8qLmdpZiBkb2MvKi5wbmcKJWRvYyBkb2MvdHV0b3JpYWwgZG9jL2xpYnhtbDItYXBpLnhtbAolZG9jIGRvYy9leGFtcGxlcwoKJXtfbGliZGlyfS9saWIqLnNvCiV7X2xpYmRpcn0vKmEKJXtfbGliZGlyfS8qLnNoCiV7cHJlZml4fS9pbmNsdWRlLyoKJXtwcmVmaXh9L2Jpbi94bWwyLWNvbmZpZwole3ByZWZpeH0vc2hhcmUvYWNsb2NhbC9saWJ4bWwubTQKJXtfbGliZGlyfS9wa2djb25maWcvbGlieG1sLTIuMC5wYwolZmlsZXMgcHl0aG9uCiVkZWZhdHRyKC0sIHJvb3QsIHJvb3QpCgolZG9jIEFVVEhPUlMgQ2hhbmdlTG9nLmd6IE5FV1MgUkVBRE1FIENvcHlyaWdodAole19saWJkaXJ9L3B5dGhvbiovc2l0ZS1wYWNrYWdlcy9saWJ4bWwyLnB5CiV7X2xpYmRpcn0vcHl0aG9uKi9zaXRlLXBhY2thZ2VzL2Rydl9saWJ4bWwyLnB5CiV7X2xpYmRpcn0vcHl0aG9uKi9zaXRlLXBhY2thZ2VzL2xpYnhtbDJtb2QqCiVkb2MgcHl0aG9uL1RPRE8KJWRvYyBweXRob24vbGlieG1sMmNsYXNzLnR4dAolZG9jIHB5dGhvbi90ZXN0cy8qLnB5CiVkb2MgZG9jLyoucHkKJWRvYyBkb2MvcHl0aG9uLmh0bWwKCiVjaGFuZ2Vsb2cKKiBAUkVMREFURUAgRGFuaWVsIFZlaWxsYXJkIDx2ZWlsbGFyZEByZWRoYXQuY29tPgotIHVwc3RyZWFtIHJlbGVhc2UgQFZFUlNJT05AIHNlZSBodHRwOi8veG1sc29mdC5vcmcvbmV3cy5odG1sCgoqIFRodSBKYW4gIDIgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPHZlaWxsYXJkQHJlZGhhdC5jb20+Ci0gaW50ZWdyYXRlZCBkcnZfbGlieG1sMiB4bWwuc2F4IGRyaXZlciBmcm9tIFN06XBoYW5lIEJpZG91bAotIHByb3ZpZGVzIHRoZSBuZXcgWG1sVGV4dFJlYWRlciBpbnRlcmZhY2VzIGJhc2VkIG9uIEMjIFhNTCBBUElzCgoqIFdlZCBPY3QgMjMgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPHZlaWxsYXJkQHJlZGhhdC5jb20+Ci0gcmV2YW1wZWQgdGhlIHNwZWMgZmlsZSwgY2xlYW5lZCB1cCBzb21lIHJwbSBidWlsZGluZyBwcm9ibGVtcwoKKiBGcmkgT2N0ICA0IDIwMDIgSmVyZW15IEthdHogPGthdHpqQHJlZGhhdC5jb20+Ci0gYnVpbGQgd2l0aCAnbWFrZSBMSUJUT09MPS91c3IvYmluL2xpYnRvb2wnIHRvIHVzZSBzeXN0ZW0gbGlidG9vbAoKKiBXZWQgU2VwICA0IDIwMDIgRGFuaWVsIFZlaWxsYXJkIDx2ZWlsbGFyZEByZWRoYXQuY29tPgoKLSBsaWJyYXJ5IHBhdGhzIGZpeGVkIGZvciB4ODYtNjQKCiogRnJpIEZlYiAgMSAyMDAyIERhbmllbCBWZWlsbGFyZCA8dmVpbGxhcmRAcmVkaGF0LmNvbT4KCi0gQWRkZWQgdGhlIHB5dGhvbiBwYWNrYWdlCgoqIFN1biBOb3YgIDQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPHZlaWxsYXJkQHJlZGhhdC5jb20+CgotIGNsZWFuZWQgdXAgdGhlIHNwZWNmaWxlCi0gMi40LjcgYnJva2UgU0dNTCBjYXRhbG9ncyBiYWRseS4gdGhpcyBmaXhlcyBpdC4KCiogVGh1IEFwciAyNiAyMDAxIFRvc2hpbyBLdXJhdG9taSA8YmFkZ2VyQHBydHItMTMudWNzYy5lZHU+CgpbMi4zLjddCi0gQWRkZWQgbGlieG1sLm00IHRvIHRoZSBkaXN0cmlidXRpb24gZmlsZSBsaXN0Ci0gTW92ZWQgdGhlIG1hbiBwYWdlcyBmcm9tIC91c3IvbWFuIHRvIC91c3Ivc2hhcmUvbWFuIHRvIGNvbmZvcm0gdG8gRkhTMi4wCi0gTW92ZWQgcHJvZ3JhbW1lciBkb2N1bWVudGF0aW9uIGludG8gdGhlIGRldmVsIHBhY2thZ2UKCiogVGh1IFNlcCAyMyAxOTk5IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KCi0gY29ycmVjdGVkIHRoZSBzcGVjIGZpbGUgYWxwaGEgc3R1ZmYKLSBzd2l0Y2hlZCB0byB2ZXJzaW9uIDEuNy4xCi0gQWRkZWQgdmFsaWRhdGlvbiwgWFBhdGgsIG5hbm9odHRwLCByZW1vdmVkIG1lbW9yeSBsZWFrcwotIFJlbmFtZWQgQ0hBUiB0byB4bWxDaGFyCgoqIFdlZCBKdW4gIDIgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CgotIFN3aXRjaGVkIHRvIHZlcnNpb24gMS4xOiBTQVggZXh0ZW5zaW9ucywgYmV0dGVyIGVudGl0aWVzIHN1cHBvcnQsIGxvdHMgb2YKICBidWcgZml4ZXMuCgoqIFN1biBPY3QgIDQgMTk5OCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CgotIEFkZGVkIHhtbC1jb25maWcgdG8gdGhlIHBhY2thZ2UKCiogVGh1IFNlcCAyNCAxOTk4IE1pY2hhZWwgRnVsYnJpZ2h0IDxtc2ZAcmVkaGF0LmNvbT4KCi0gQnVpbHQgcmVsZWFzZSAwLjMwCgo=