CkRlYyAyOCwgMjAwODogbGliYXJjaGl2ZSAyLjYuMCByZWxlYXNlZAoKRGVjIDI1LCAyMDA4OiBsaWJhcmNoaXZlIDIuNS45MDVhIHJlbGVhc2VkCgpEZWMgMTAsIDIwMDg6IGxpYmFyY2hpdmUgMi41LjkwNGEgcmVsZWFzZWQKCkRlYyAwNCwgMjAwODogbGliYXJjaGl2ZSAyLjUuOTAzYSByZWxlYXNlZApOb3YgMDksIDIwMDg6IGxpYmFyY2hpdmUgMi41LjkwMmEgcmVsZWFzZWQKTm92IDA4LCAyMDA4OiBsaWJhcmNoaXZlIDIuNS45MDFhIHJlbGVhc2VkCk5vdiAwOCwgMjAwODogU3RhcnQgb2YgcHJlLXJlbGVhc2UgdGVzdGluZyBmb3IgbGliYXJjaGl2ZSAyLjYKCk5vdiAwNywgMjAwODogUmVhZCBmaWx0ZXIgcmVmYWN0b3I6IFRoZSBkZWNvbXByZXNzaW9uIHJvdXRpbmVzIGp1c3QKCWNvbnN1bWUgYW5kIHByb2R1Y2UgYXJiaXRyYXJpbHktc2l6ZWQgYmxvY2tzLiAgVGhlIHJlYmxvY2tpbmcKCWZyb20gcmVhZF9zdXBwb3J0X2NvbXByZXNzaW9uX25vbmUoKSBoYXMgYmVlbiBwdWxsZWQgaW50byB0aGUKCXJlYWQgY29yZS4gIEFsc28sIHRoZSBkZWNvbXByZXNzaW9uIGJpZCBub3cgbWFrZXMgbXVsdGlwbGUKCXBhc3NlcyBhbmQgc3RhY2tzIHJlYWQgZmlsdGVycy4KT2N0IDIxLCAyMDA4OiBic2RjcGlvOiBOZXcgY29tbWFuZC1saW5lIHBhcnNlci4KT2N0IDE5LCAyMDA4OiBJbnRlcm5hbCByZWFkX2FoZWFkIGNoYW5nZTogc2hvcnQgcmVhZHMgYXJlIG5vdyBhbiBlcnJvcgpPY3QgMDYsIDIwMDg6IGJzZHRhcjogb3B0aW9uIHBhcnNlciBubyBsb25nZXIgdXNlcyBnZXRvcHRfbG9uZygpLAoJZ2l2ZXMgY29uc2lzdGVudCBvcHRpb24gcGFyc2luZyBvbiBhbGwgcGxhdGZvcm1zLgpTZXAgMTksIDIwMDg6IEphYWtrbyBIZWlub25lbjogc2hhciB1dGlsaXR5IGJ1aWx0IG9uIGxpYmFyY2hpdmUKU2VwIDE3LCAyMDA4OiBQZWRybyBHaWZmdW5pOiBiaXJ0aHRpbWUgc3VwcG9ydApTZXAgMTcsIDIwMDg6IE1pa2xvcyBWYWpuYTogbHptYSByZWFkZXIgYW5kIHRlc3QuICBOb3RlOiAgSSBzdGlsbCBoYXZlCglzb21lIGNvbmNlcm5zIGFib3V0IHRoZSBhdXRvLWRldGVjdGlvbiAoTFpNQSBmaWxlIGZvcm1hdAoJZG9lc24ndCBzdXBwb3J0IGF1dG8tZGV0ZWN0aW9uIHdlbGwpLCBzbyB0aGlzIGlzIG5vdCB5ZXQKCWVuYWJsZWQgdW5kZXIgYXJjaGl2ZV9yZWFkX3N1cHBvcnRfY29tcHJlc3Npb25fYWxsKCkuICBGb3IKCW5vdywgeW91IG11c3QgY2FsbCBhcmNoaXZlX3JlYWRfc3VwcG9ydF9jb21wcmVzc2lvbl9sem1hKCkgaWYKCXlvdSB3YW50IExaTUEgcmVhZCBzdXBwb3J0LgpTZXAgMTEsIDIwMDg6IEl2YWlsbyBQZXRyb3Y6IE1hbnkgZml4ZXMgdG8gV2luZG93cyBidWlsZCwgbmV3IHNvbHV0aW9uIGZpbGVzCkp1bCAyNiwgMjAwODogYXJjaGl2ZV9lbnRyeSBub3cgdHJhY2tzIHdoaWNoIHZhbHVlcyBoYXZlIG5vdCBiZWVuIHNldC4KCVRoaXMgaGVscHMgemlwIGV4dHJhY3Rpb24gKGZpbGUgc2l6ZSBpcyBvZnRlbiAidW5rbm93biIpIGFuZAoJdGltZSByZXN0b3JlcyAodGFyIHVzdWFsbHkgZG9lc24ndCBrbm93IGF0aW1lKS4KSnVsIDI2LCAyMDA4OiBKb2VyZyBTb25uZW5iZXJnZXI6IFBlcmZvcm1hbmNlIGltcHJvdmVtZW50cyB0byBzaGFyIHdyaXRlcgpKdWwgMjUsIDIwMDg6IEpvZXJnIFNvbm5lbmJlcmdlcjogbXRyZWUgd3JpdGUgc3VwcG9ydAoKSnVsIDAyLCAyMDA4OiBsaWJhcmNoaXZlIDIuNS41IHJlbGVhc2VkCgpKdWwgMDIsIDIwMDg6IGxpYmFyY2hpdmUgMi41LjViIHJlbGVhc2VkCkp1bCAwMSwgMjAwODogYnNkY3BpbyBpcyBiZWluZyB1c2VkIGJ5IGVub3VnaCBwZW9wbGUsIHdlIGNhbiBjYWxsIGl0IDEuMC4wIG5vdwpKdW4gMjAsIDIwMDg6IGJzZGNwaW86IElmIGEgLWwgbGluayBmYWlscyB3aXRoIEVYREVWLCBjb3B5IHRoZSBmaWxlIGluc3RlYWQKSnVuIDE5LCAyMDA4OiBic2RjcGlvOiBhZGRpdGlvbmFsIGxvbmcgb3B0aW9ucyBmb3IgYmV0dGVyIEdOVSBjcGlvIGNvbXBhdApKdW4gMTUsIDIwMDg6IE1hbnkgc21hbGwgcG9ydGFiaWxpdHkgYW5kIGJ1Z2ZpeGVzIHNpbmNlIDIuNS40Yi4KCk1heSAyNSwgMjAwODogbGliYXJjaGl2ZSAyLjUuNGIgcmVsZWFzZWQKTWF5IDIxLCAyMDA4OiBKb2VyZyBTb25uZW5iZXJnZXI6IGZpeCBic2R0YXIgaGFyZGxpbmsgaGFuZGxpbmcgZm9yIG5ld2MgZm9ybWF0CgpNYXkgMjEsIDIwMDg6IE1vcmUgcHJvZ3Jlc3Mgb24gV2luZG93cyBidWlsZGluZy4gIFRoYW5rcyB0byAiU2NvdHQiCiAgICAgICAgZm9yIHRoZSBXaW5kb3dzIG1ha2VmaWxlcywgdGhhbmtzIHRvIEtlZXMgWmVlbGVuYmVyZyBmb3IKICAgICAgICBjb2RlIGNvbnRyaWJ1dGlvbnMuCgpNYXkgMjEsIDIwMDg6IEZpeCBhIG51bWJlciBvZiBub24tZXhwbG9pdGFibGUgaW50ZWdlciBhbmQgYnVmZmVyIG92ZXJmbG93cywKICAgICAgICB0aGFua3MgdG8gRGF2aWQgUmVtYWhsIGF0IEFwcGxlIGZvciBwb2ludGluZyB0aGVzZSBvdXQuCgpNYXkgMjEsIDIwMDg6IENvbGluIFBlcmNpdmFsOiBTSUdJTkZPIG9yIFNJR1VTUjEgdG8gYnNkdGFyIHByaW50cyBwcm9ncmVzcyBpbmZvCgpNYXkgMTYsIDIwMDg6IGJzZHRhcidzIHRlc3QgaGFybmVzcyBubyBsb25nZXIgZGVwZW5kcyBvbiBmaWxlIG9yZGVyaW5nLgogICAgICAgIFRoaXMgd2FzIGNhdXNpbmcgc3B1cmlvdXMgdGVzdCBmYWlsdXJlcyBvbiBhIGxvdCBvZiBzeXN0ZW1zLgogICAgICAgIFRoYW5rcyB0byBCZXJuaGFyZCBSLiBMaW5rIGZvciB0aGUgZGlhZ25vc2lzLgoKTWF5IDE0LCAyMDA4OiBKb2VyZyBTb25uZW5iZXJnZXI6IC1zIHN1YnN0aXR1dGlvbiBzdXBwb3J0IGZvciBic2R0YXIKCk1heSAxMywgMjAwODogSm9lcmcgU29ubmVuYmVyZ2VyOiBNYW55IG10cmVlIGltcHJvdmVtZW50cwoKTWF5IDExLCAyMDA4OiBKb2VyZyBTb25uZW5iZXJnZXI6IGZpeCBoYXJkbGluayBleHRyYWN0aW9uIHdoZW4KCWhhcmRsaW5rcyBoYXZlIGRpZmZlcmVudCBwZXJtaXNzaW9ucyBmcm9tIG9yaWdpbmFsIGZpbGUKCkFwcmlsIDMwLCAyMDA4OiBQcmltYXJ5IGxpYmFyY2hpdmUgd29yayBoYXMgYmVlbiBtb3ZlZCBpbnRvIHRoZSBGcmVlQlNECglwcm9qZWN0J3MgUGVyZm9yY2UgcmVwb3NpdG9yeTogCWh0dHA6Ly9wZXJmb3JjZS5mcmVlYnNkLm9yZy8KCVRoZSBsaWJhcmNoaXZlIHByb2plY3QgY2FuIGJlIGJyb3dzZWQgYXQKICAgICAgICAvL2RlcG90L3VzZXIva2llbnR6bGUvbGliYXJjaGl2ZS1wb3J0YWJsZQogICAgICAgIERpcmVjdCBsaW5rOiBodHRwOi8vcHJldmlldy50aW55dXJsLmNvbS80Nm1kZ3IKCk1heSAwNCwgMjAwODogbGliYXJjaGl2ZSAyLjUuM2IgcmVsZWFzZWQKCSogbGliYXJjaGl2ZTogU2V2ZXJhbCBmaXhlcyB0byBsaW5rIHJlc29sdmVyIHRvIGFkZHJlc3MgYnNkY3BpbyBjcmFzaGVzCgkqIGJzZGNwaW86IC1wIGhhcmRsaW5rIGhhbmRsaW5nIGZpeGVzCgkqIHRhci9wYXg6IEVuc3VyZSB1c3RhciBkaXJuYW1lcyBlbmQgaW4gJy8nOyBiZSBtb3JlIGNhcmVmdWwgYWJvdXQKCSAgbWVhc3VyaW5nIGZpbGVuYW1lcyB3aGVuIGRlY2lkaW5nIHdoYXQgcGF0aG5hbWUgZmllbGRzIHRvIHVzZQoJKiBsaWJhcmNoaXZlOiBNYXJrIHdoaWNoIGVudHJ5IHN0cmluZ3MgYXJlIHNldDsgYmUgYWNjdXJhdGUgYWJvdXQKCSAgZGlzdGluZ3Vpc2hpbmcgZW1wdHkgc3RyaW5ncyAoIiIpIGZyb20gdW5zZXQgb25lcyAoTlVMTCkKCSogdGFyOiBEb24ndCBjcmFzaCByZWFkaW5nIGVudHJpZXMgd2l0aCBlbXB0eSBmaWxlbmFtZXMKCSogbGliYXJjaGl2ZV90ZXN0LCBic2R0YXJfdGVzdCwgYnNkY3Bpb190ZXN0OiAgQmV0dGVyIGRldGF1bHRzOgoJICBydW4gYWxsIHRlc3RzLCBkZWxldGUgdGVtcCBkaXJzLCBzdW1tYXJpemUgcmVwZWF0ZWQgZmFpbHVyZXMKCSogLW5vLXVuZGVmaW5lZCB0byBsaWJ0b29sIGZvciBDeWd3aW4KCSogbGliYXJjaGl2ZV90ZXN0OiBTa2lwIGxhcmdlIGZpbGUgdGVzdHMgb24gc3lzdGVtcyB3aXRoIDMyLWJpdCBvZmZfdAoJKiBpc285NjYwOiBEb24ndCBib3RoZXIgdHJ5aW5nIHRvIGZpbmQgdGhlIGJvZHkgb2YgYW4gZW1wdHkgZmlsZTsKCSAgdGhpcyB3b3JrcyBhcm91bmQgc3RyYW5nZSBiZWhhdmlvciBmcm9tIHNvbWUgSVNPOTY2MCB3cml0ZXJzCgkqIHRhcjogYWxsb3cgLXIgLVQgdG8gYmUgdXNlZCB0b2dldGhlcgoJKiB0YXI6IGFsbG93IC0tZm9ybWF0IHdpdGggLXIgb3IgLXUKCSogbGliYXJjaGl2ZTogRG9uJ3QgYnVpbGQgYXJjaGl2ZS5oCgpNYXkgMDQsIDIwMDg6IFNpbXBsaWZpZWQgYnVpbGRpbmc6IGFyY2hpdmUuaCBpcyBubyBsb25nZXIgY29uc3RydWN0ZWQKCVRoaXMgbWF5IHJlcXVpcmUgYWRkaXRpb25hbCAjaWYgY29uZGl0aW9uYWxzIG9uIHNvbWUgcGxhdGZvcm1zLgoKTWFyIDMwLCAyMDA4OiBsaWJhcmNoaXZlIDIuNS4xYiByZWxlYXNlZAoKTWFyIDE1LCAyMDA4OiBsaWJhcmNoaXZlIDIuNS4wYiByZWxlYXNlZApNYXIgMTUsIDIwMDg6IGJzZGNwaW8gbm93IHNlZW1zIHRvIGNvcnJlY3RseSB3cml0ZSBoYXJkbGlua3MgaW50byBuZXdjLAoJdXN0YXIsIGFuZCBvbGQgY3BpbyBhcmNoaXZlcy4gIEp1c3QgYSBsaXR0bGUgbW9yZSB0ZXN0aW5nIGJlZm9yZQoJYnNkY3BpbyAxLjAgYmVjb21lcyBhIHJlYWxpdHkuCk1hciAxNSwgMjAwODogSSB0aGluayB0aGUgbmV3IGxpbmtpZnkoKSBpbnRlcmZhY2UgaXMgZmluYWxseSBoYW5kbGluZwoJYWxsIGtub3duIGhhcmRsaW5rIHN0cmF0ZWdpZXMuCk1hciAxNSwgMjAwODogTXRyZWUgcmVhZCBmaXhlcyBmcm9tIEpvZXJnIFNvbm5lbmJlcmdlci4KTWFyIDE1LCAyMDA4OiBNYW55IG5ldyBic2R0YXIgYW5kIGJzZGNwaW8gb3B0aW9ucyBmcm9tIEpvZXJnIFNvbm5lbmJlcmdlci4KTWFyIDE1LCAyMDA4OiB0ZXN0IGhhcm5lc3NlcyBubyBsb25nZXIgcmVxdWlyZSB1dWRlY29kZTsgdGhleQoJbm93IGhhdmUgYnVpbHQtaW4gZGVjb2RpbmcgbG9naWMgdGhhdCBkZWNvZGVzIHRoZSByZWZlcmVuY2UKCWZpbGVzIGFzIHRoZXkgYXJlIG5lZWRlZC4KCk1hciAxNCwgMjAwODogbGliYXJjaGl2ZSAyLjQuMTQgcmVsZWFzZWQ7IGlkZW50aWNhbCB0byAyLjQuMTMgZXhjZXB0IGZvcgoJYSBwb2ludCBmaXggZm9yIGduYW1lL3VuYW1lIG1peHVwIGluIHBheCBmb3JtYXQgdGhhdCB3YXMgaW50cm9kdWNlZAoJd2l0aCB0aGUgVVRGLTggZml4ZXMuCgpGZWIgMjYsIDIwMDg6IGxpYmFyY2hpdmUgMi40LjEzIHJlbGVhc2VkCkZlYiAyNSwgMjAwODogSGFuZGxlIHBhdGgsIGxpbmtuYW1lLCBnbmFtZSwgb3IgdW5hbWUgdGhhdCBjYW4ndCBiZSBjb252ZXJ0ZWQKCXRvL2Zyb20gVVRGLTguICBJbXBsZW1lbnQgImhkcmNoYXJzZXQiIGF0dHJpYnV0ZSBmcm9tIFNVUy0yMDA4LgpGZWIgMjUsIDIwMDg6IEZpeCBuYW1lIGNsYXNoIG9uIE5ldEJTRC4KRmViIDE4LCAyMDA4OiBGaXggd3JpdGluZyBlbXB0eSAnYXInIGFyY2hpdmVzLCBwZXIgS2FpIFdhbmcKRmViIDE4LCAyMDA4OiBbYnNkdGFyXSBQZXJtaXQgYXBwZW5kaW5nIG9uIGJsb2NrIGRldmljZXMuCkZlYiAwOSwgMjAwODogTmV3ICJsaW5raWZ5IiByZXNvbHZlciB0byBoZWxwIHdpdGggbmV3YyBoYXJkbGluayB3cml0aW5nOwoJYnNkY3BpbyBzdGlsbCBuZWVkcyB0byBiZSBjb252ZXJ0ZWQgdG8gdXNlIHRoaXMuCkZlYiAwMiwgMjAwODogV2luZG93cyBjb21wYXRpYmlsaXR5IGZpeGVzIGZyb20gSXZhaWxvIFBldHJvdiwgS2VlcyBaZWVsZW5iZXJnCkphbiAzMCwgMjAwODogSWdub3JlIGhhcmRsaW5rIHNpemUgZm9yIG5vbi1QT1NJWCB0YXIgYXJjaGl2ZXMuCgpKYW4gMjIsIDIwMDg6IGxpYmFyY2hpdmUgMi40LjEyIHJlbGVhc2VkCkphbiAyMiwgMjAwODogRml4IGJhZCBwYWRkaW5nIHdoZW4gd3JpdGluZyBzeW1saW5rcyB0byBuZXdjIGNwaW8gYXJjaGl2ZXMuCkphbiAyMiwgMjAwODogVmVyaWZ5IGJzZGNwaW9fdGVzdCBieSBnZXR0aW5nIGl0IHRvIHdvcmsgYWdhaW5zdCBHTlUgY3BpbyAyLjkuCglic2RjcGlvX3Rlc3QgY29tcGxhaW5zIGFib3V0IG1pc3Npbmcgb3B0aW9ucyAoLXkgYW5kIC16KSwgZm9ybWF0CglvZiBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzICgtLXZlcnNpb24sIC0taGVscCksIGFuZCBhIG1pbm9yIGZvcm1hdHRpbmcKCWlzc3VlIGluIG9kYyBmb3JtYXQgb3V0cHV0LiAgQWZ0ZXIgdGhpcyB1cGRhdGUsIGJzZGNwaW9fdGVzdCB1bmNvdmVyZWQKCXNldmVyYWwgbW9yZSBjb3NtZXRpYyBpc3N1ZXMgaW4gYnNkY3BpbywgYWxsIG5vdyBmaXhlZC4KSmFuIDIyLCAyMDA4OiBFeHBlcmltZW50YWwgc3VwcG9ydCBmb3Igc2VsZi1leHRyYWN0aW5nIFppcCBhcmNoaXZlcy4KSmFuIDIyLCAyMDA4OiBFeHRlbmQgaGFyZGxpbmsgcmVzdG9yZSBzdHJhdGVneSB0byB3b3JrIGNvcnJlY3RseSB3aXRoCgloYXJkbGlua3MgZXh0cmFjdGVkIGZyb20gbmV3YyBjcGlvIGZpbGVzLiAgKFdoaWNoIHN0b3JlIHRoZSBib2R5Cglvbmx5IHdpdGggdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiBhIGxpbmsuKQoKRGVjIDMwLCAyMDA3OiBsaWJhcmNoaXZlIDIuNC4xMSByZWxlYXNlZApEZWMgMzAsIDIwMDc6IEZpeGVkIGEgY29tcGlsZSBlcnJvciBpbiBic2RjcGlvIG9uIHNvbWUgc3lzdGVtcy4KCkRlYyAyOSwgMjAwNzogbGliYXJjaGl2ZSAyLjQuMTAgcmVsZWFzZWQKRGVjIDI5LCAyMDA3OiBic2RjcGlvIDAuOS4wIGlzIHJlYWR5IGZvciB3aWRlciB1c2UuCkRlYyAyOSwgMjAwNzogQ29tcGxldGVkIGluaXRpYWwgdGVzdCBoYXJuZXNzIGZvciBic2RjcGlvLgoKRGVjIDIyLCAyMDA3OiBsaWJhcmNoaXZlIDIuNC45IHJlbGVhc2VkCkRlYyAyMiwgMjAwNzogSW1wbGVtZW50IHRoZSByZW1haW5pbmcgb3B0aW9ucyBmb3IgYnNkY3BpbzogIC1hLCAtcSwgLUwsIC1mLAoJcGF0dGVybiBzZWxlY3Rpb24gZm9yIC1pIGFuZCAtaXQuCgpEZWMgMTMsIDIwMDc6IGxpYmFyY2hpdmUgMi40LjggcmVsZWFzZWQKRGVjIDEzLCAyMDA3OiBnemlwIGFuZCBiemlwMiBjb21wcmVzc2lvbiBub3cgaGFuZGxlIHplcm8tYnl0ZSB3cml0ZXMgY29ycmVjdGx5LAoJVGhhbmtzIHRvIERhbWllbiBHb2xkaW5nIGZvciBicmluZ2luZyB0aGlzIHRvIG15IGF0dGVudGlvbi4KCkRlYyAxMiwgMjAwNzogbGliYXJjaGl2ZSAyLjQuNyByZWxlYXNlZAoKRGVjIDEwLCAyMDA3OiBsaWJhcmNoaXZlIDIuNC42IHJlbGVhc2VkCkRlYyAwOSwgMjAwNzogdGFyL3Rlc3QvdGVzdF9jb3B5LmMgdmVyaWZpZXMgInRhciAtYyB8IHRhciAteCIgY29weSBwaXBlbGluZQpEZWMgMDcsIDIwMDc6IEZpeCBhIGNvdXBsZSBvZiBtaW5vciBtZW1vcnkgbGVha3MuCgpEZWMgMDQsIDIwMDc6IGxpYmFyY2hpdmUgMi40LjUgcmVsZWFzZWQKRGVjIDA0LCAyMDA3OiBGaXggY3Bpby90ZXN0L3Rlc3Rfd3JpdGVfb2RjIGJ5IHNldHRpbmcgdGhlIHVtYXNrIGZpcnN0LgoKRGVjIDAzLCAyMDA3OiBsaWJhcmNoaXZlIDIuNC40IHJlbGVhc2VkCkRlYyAwMywgMjAwNzogTmV3IGNvbmZpZ3VyZSBvcHRpb25zIC0tZGlzYWJsZS14YXR0ciBhbmQgLS1kaXNhYmxlLWFjbCwKCXRoYW5rcyB0byBTYW11bGkgU3VvbWluZW4uCgpEZWMgMDMsIDIwMDc6IGxpYmFyY2hpdmUgMi40LjMgcmVsZWFzZWQKRGVjIDAzLCAyMDA3OiBUaGFua3MgdG8gTGFwbyBMdWNoaW5pIGZvciBzZW5kaW5nIG1lIGEgWklQIGZpbGUgdGhhdAoJbGliYXJjaGl2ZSBjb3VsZG4ndCBoYW5kbGUuICBGaXhlZCBhIGJ1ZyBpbiBoYW5kbGluZyBvZgoJImxlbmd0aCBhdCBlbmQiIGZsYWdzIGluIFpJUCBmaWxlcy4KRGVjIDAzLCAyMDA3OiBGaXhlZCBic2RjcGlvIC1oZWxwLCBic2R0YXIgLWhlbHAgdGVzdHMuCkRlYyAwMiwgMjAwNzogRmlyc3QgY3V0IGF0IHJlYWwgYnNkdGFyIHRlc3QgaGFybmVzcy4KCkRlYyAwMiwgMjAwNzogbGliYXJjaGl2ZSAyLjQuMiByZWxlYXNlZAoKRGVjIDAyLCAyMDA3OiBsaWJhcmNoaXZlIDIuNC4xIHJlbGVhc2VkCkRlYyAwMiwgMjAwNzogTWlub3IgZml4ZXMsIHJvdWdoIGN1dCBvZiBtZG9jLXRvLW1hbiBjb252ZXJzaW9uIGZvcgoJbWFuIHBhZ2VzLgoKT2N0IDMwLCAyMDA3OiBsaWJhcmNoaXZlIDIuNC4wIHJlbGVhc2VkCk9jdCAzMCwgMjAwNzogTWlub3IgY29tcGlsZSBmaXggdGhhbmtzIHRvIEpvZXJnIFNjaGlsbGluZy4KT2N0IDMwLCAyMDA3OiBPbmx5IHJ1biB0aGUgZm9ybWF0IGF1Y3Rpb24gb25jZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZQoJYXJjaGl2ZS4gIFRoaXMgaXMgc2ltcGxlciBhbmQgc3VwcG9ydHMgYmV0dGVyIGVycm9yIHJlY292ZXJ5LgpPY3QgMjksIDIwMDc6IFRlc3Qgc3VwcG9ydCBmb3IgdmVyeSBsYXJnZSBlbnRyaWVzIGluIHRhciBhcmNoaXZlczoKCWxpYmFyY2hpdmVfdGVzdCBub3cgZXhlcmNpc2VzIGVudHJpZXMgZnJvbSAyR0IgdXAgdG8gMVRCLgoKT2N0IDI3LCAyMDA3OiBsaWJhcmNoaXZlIDIuMy41IHJlbGVhc2VkCk9jdCAyNywgMjAwNzogQ29ycmVjdCBzb21lIHVubmVjZXNzYXJ5IGludGVybmFsIGRhdGEgY29weWluZyBpbiB0aGUKCSJjb21wcmVzc2lvbiBub25lIiByZWFkZXIgYW5kIHdyaXRlcjsgdGhpcyByZWR1Y2VzIHVzZXIgdGltZQoJYnkgdXAgdG8gMi8zIGluIHNvbWUgdGVzdHMuICAoVGhhbmtzIHRvIEphbiBQc290YSBmb3IKCXB1Ymxpc2hpbmcgaGlzIHBlcmZvcm1hbmNlIHRlc3QgcmVzdWx0cyB0byBHTlUgdGFyJ3MgYnVnLXRhcgoJbWFpbGluZyBsaXN0OyB0aG9zZSByZXN1bHRzIHBvaW50ZWQgbWUgdG93YXJkcyB0aGlzIHByb2JsZW0uKQpPY3QgMjcsIDIwMDc6IEZpeCBmb3Igc2tpcHBpbmcgYXJjaGl2ZSBlbnRyaWVzIHRoYXQgYXJlIGV4YWN0bHkKCWEgbXVsdGlwbGUgb2YgNEcgb24gMzItYml0IHBsYXRmb3Jtcy4KT2N0IDI1LCAyMDA3OiBGaXggZm9yIHJlYWRpbmcgdmVyeSBsYXJnZSAoPjhHKSB0YXIgYXJjaGl2ZXM7IHRoaXMgd2FzCglicm9rZW4gd2hlbiBJIHB1dCBpbiBzdXBwb3J0IGZvciBuZXcgR05VIHRhciBzcGFyc2UgZm9ybWF0cy4KT2N0IDIwLCAyMDA3OiBJbml0aWFsIHdvcmsgb24gbmV3IHBhdHRlcm4tbWF0Y2hpbmcgY29kZSBmb3IgY3BpbzsgSQoJaG9wZSB0aGlzIGV2ZW50dWFsbHkgcmVwbGFjZXMgdGhlIGNvZGUgY3VycmVudGx5IGluIGJzZHRhci4KCk9jdCAwOCwgMjAwNzogbGliYXJjaGl2ZSAyLjMuNCByZWxlYXNlZApPY3QgMDUsIDIwMDc6IENvbnRpbnVpbmcgd29yayBvbiBic2RjcGlvIHRlc3Qgc3VpdGUuCk9jdCAwNSwgMjAwNzogTmV3IGNwaW8uNSBtYW5wYWdlLCB1cGRhdGVzIHRvICJIaXN0b3J5IiBvZiBic2RjcGlvLjEgYW5kCglic2R0YXIuMSBtYW5wYWdlcy4KT2N0IDA1LCAyMDA3OiBGaXggemlwIHJlYWRlciB0byBpbW1lZGlhdGVseSByZXR1cm4gRU9GIGlmIHlvdSB0cnkKCXRvIHJlYWQgYm9keSBvZiBub24tcmVndWxhciBmaWxlLiAgSW4gcGFydGljdWxhciwgdGhpcyBmaXhlcwoJYnNkdGFyIGV4dHJhY3Rpb24gb2YgemlwIGFyY2hpdmVzLgoKU2VwIDMwLCAyMDA3OiBsaWJhcmNoaXZlIDIuMy4zIHJlbGVhc2VkClNlcCAyNiwgMjAwNzogUmV3b3JrIE1ha2VmaWxlLmFtIHNvIHRoYXQgdGhlIGVuYWJsZS9kaXNhYmxlIG9wdGlvbnMKCWFjdHVhbGx5IGRvIHRoZSByaWdodCB0aGluZ3MuClNlcCAyNiwgMjAwNzogY3Bpby1vZGMgYW5kIGNwaW8tbmV3YyBhcmNoaXZlcyBubyBsb25nZXIgd3JpdGUgYm9kaWVzCglmb3Igbm9uLXJlZ3VsYXIgZmlsZXMuClNlcCAyNiwgMjAwNzogVGVzdCBoYXJuZXNzIGZvciBic2RjcGlvIGlzIGluIHBsYWNlLCBuZWVkcyBtb3JlIHRlc3RzIHdyaXR0ZW4uCglUaGlzIGlzIG11Y2ggbmljZXIgdGhhbiB0aGUgcmFndGFnIGNvbGxlY3Rpb24gb2YgdGVzdCBzY3JpcHRzCgl0aGF0IGJzZHRhciBoYXMuCgpTZXAgMjAsIDIwMDc6IGxpYmFyY2hpdmUgMi4zLjIgcmVsZWFzZWQKU2VwIDIwLCAyMDA3OiBsaWJhcmNoaXZlIDIuMy4xIGJyb2tlIGJzZHRhciBiZWNhdXNlIHRoZSBhcmNoaXZlX3dyaXRlX2RhdGEoKQoJZml4IHdhcyBpbXBsZW1lbnRlZCBpbmNvcnJlY3RseS4KClNlcCAxNiwgMjAwNzogbGliYXJjaGl2ZSAyLjMuMSByZWxlYXNlZApTZXAgMTYsIDIwMDc6IE1hbnkgZml4ZXMgdG8gYnNkY3BpbyAwLjM6ICBoYW5kbGUgaGFyZGxpbmtzIHdpdGggLXAsIHJlY29nbml6ZQoJYmxvY2sgc2l6ZSBvbiB3cml0aW5nLCBmaXggYSBjb3VwbGUgb2Ygc2VnZmF1bHRzLgpTZXAgMTYsIDIwMDc6IEZpeGVkIHJldHVybiB2YWx1ZSBmcm9tIGFyY2hpdmVfd3JpdGVfZGF0YSgpIHdoZW4gdXNlZAoJd2l0aCBhcmNoaXZlX3dyaXRlX2Rpc2soKSB0byBtYXRjaCB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIKCWluc3RhbmNlcyBvZiB0aGlzIHNhbWUgZnVuY3Rpb24uClNlcCAxNSwgMjAwNzogQWRkIGFyY2hpdmVfZW50cnlfbGlua19yZXNvbHZlciwgYXJjaGl2ZV9lbnRyeV9zdHJtb2RlCgpTZXAgMTEsIDIwMDc6IGxpYmFyY2hpdmUgMi4yLjggcmVsZWFzZWQKU2VwIDA5LCAyMDA3OiBic2RjcGlvIDAuMiBzdXBwb3J0cyBtb3N0IChub3QgeWV0IGFsbCkgb2YgdGhlIG9sZCBQT1NJWCBzcGVjLgoKU2VwIDAxLCAyMDA3OiBsaWJhcmNoaXZlIDIuMi43IHJlbGVhc2VkCkF1ZyAzMSwgMjAwNzogU3VwcG9ydCBmb3IgcmVhZGluZyBtdHJlZSBmaWxlcywgaW5jbHVkaW5nIGFuIG10cmVlLjUgbWFucGFnZQoJKEEgbGl0dGxlIGV4cGVyaW1lbnRhbCBzdGlsbC4pCkF1ZyAxOCwgMjAwNzogUmVhZCBndGFyIDEuMTcgLS1wb3NpeCAtLXNwYXJzZSBlbnRyaWVzLgpBdWcgMTMsIDIwMDc6IFJlZmluZWQgc3VpZC9zZ2lkIHJlc3RvcmUgaGFuZGxpbmc7IGl0IGlzIG5vIGxvbmdlcgoJYW4gZXJyb3IgaWYgc3VpZC9zZ2lkIGJpdHMgYXJlIGRyb3BwZWQgd2hlbiB5b3UgcmVxdWVzdAoJcGVybSByZXN0b3JlIGJ1dCBkb24ndCByZXF1ZXN0IG93bmVyIHJlc3RvcmUuCkF1ZyAwNiwgMjAwNzogVXNlIC0tZW5hYmxlLWJzZGNwaW8gaWYgeW91IHdhbnQgdG8gdHJ5IGJzZGNwaW8KCkF1ZyAwNSwgMjAwNzogbGliYXJjaGl2ZSAyLjIuNiByZWxlYXNlZApBdWcgMDUsIDIwMDc6IE5ldyBjb25maWd1cmUgb3B0aW9uIC0tZGlzYWJsZS1ic2R0YXIsIHRoYW5rcyB0byBKb2VyZwoJU29ubmVuYmVyZ2VyLgpBdWcgMDUsIDIwMDc6IFNldmVyYWwgYnVnIGZpeGVzIGZyb20gRnJlZUJTRCBDVlMgcmVwby4KCkp1bCAxMywgMjAwNzogbGliYXJjaGl2ZSAyLjIuNSByZWxlYXNlZAoKSnVsIDEyLCAyMDA3OiBsaWJhcmNoaXZlIDIuMi40IHJlbGVhc2VkCkp1bCAxMiwgMjAwNzogVGhhbmtzIHRvIENvbGluIFBlcmNpdmFsJ3MgaGVscCBpbiBkaWFnbm9zaW5nIGFuZAoJZml4aW5nIHNldmVyYWwgY3JpdGljYWwgc2VjdXJpdHkgYnVncy4gIERldGFpbHMgYXZhaWxhYmxlIGF0CglodHRwOi8vc2VjdXJpdHkuZnJlZWJzZC5vcmcvYWR2aXNvcmllcy9GcmVlQlNELVNBLTA3OjA1LmxpYmFyY2hpdmUuYXNjCgpNYXkgMjYsIDIwMDc6IGxpYmFyY2hpdmUgMi4yLjMgcmVsZWFzZWQKTWF5IDI2LCAyMDA3OiBGaXggbWVtb3J5IGxlYWtzIGluIFpJUCByZWFkZXIgYW5kIHNoYXIgd3JpdGVyLCBhZGQgc29tZQoJbWlzc2luZyBzeXN0ZW0gaGVhZGVycyB0byBhcmNoaXZlX2VudHJ5LmgsIGRlYWQgY29kZSBjbGVhbnVwCglmcm9tIENvbGluIFBlcmNpdmFsLCBtb3JlIHRlc3RzIGZvciBnemlwL2J6aXAyLCBmaXggYW4KCUVPRiBhbm9tYWx5IGluIGJ6aXAyIGRlY29tcHJlc3Npb24uCgpNYXkgMTIsIDIwMDc6IGxpYmFyY2hpdmUgMi4yLjIgcmVsZWFzZWQKTWF5IDEyLCAyMDA3OiBGaXggYXJjaGl2ZV93cml0ZV9kaXNrIHBlcm1pc3Npb24gcmVzdG9yZSBieSBjbG9uaW5nCgllbnRyeSBwYXNzZWQgaW50byB3cml0ZV9oZWFkZXIgc28gdGhhdCBwZXJtaXNzaW9uIGluZm8gaXMKCXN0aWxsIGF2YWlsYWJsZSBhdCBmaW5pc2hfZW50cnkgdGltZS4gIChhcmNoaXZlX3JlYWRfZXh0cmFjdCgpCgl3b3JrZWQgb2theSBiZWNhdXNlIGl0IGhlbGQgb250byB0aGUgcGFzc2VkLWluIGVudHJ5LCBidXQKCWRpcmVjdCBjb25zdW1lcnMgb2YgYXJjaGl2ZV93cml0ZV9kaXNrIHdvdWxkIGJyZWFrKS4gIFRoaXMKCXJlcXVpcmVkIGZpeGluZyBhcmNoaXZlX2VudHJ5X2Nsb25lKCksIHdoaWNoIG5vdyB3b3JrcyBhbmQgaGFzCglhIHJlYXNvbmFibHkgY29tcGxldGUgdGVzdCBjYXNlLgpNYXkgMTAsIDIwMDc6IFNrZWxldGFsIGNwaW8gaW1wbGVtZW50YXRpb24uCgpNYXkgMDYsIDIwMDc6IGxpYmFyY2hpdmUgMi4yLjEgcmVsZWFzZWQKTWF5IDA2LCAyMDA3OiBGbGVzaCBvdXQgYSBsb3QgbW9yZSBvZiB0ZXN0X2VudHJ5LmMgc28gYXMgdG8gY2F0Y2gKCXByb2JsZW1zIHN1Y2ggYXMgdGhlIGRldmljZSBub2RlIGJyZWFrYWdlIGJlZm9yZSByZWxlYXNpbmcgPHNpZ2g+LgpNYXkgMDUsIDIwMDc6IEZpeCBhIGJhZCBidWcgaW50cm9kdWNlZCBpbiAyLjEuOSB0aGF0IGJyb2tlIGRldmljZQoJbm9kZSBlbnRyaWVzIGluIHRhciBhcmNoaXZlcy4KTWF5IDAzLCAyMDA3OiBNb3ZlICdzdHJ1Y3Qgc3RhdCcgb3V0IG9mIGFyY2hpdmVfZW50cnkgY29yZSBhcyB3ZWxsLgoJVGhpcyByZW1vdmVzIHNvbWUgcG9ydGFiaWxpdHkgaGVhZGFjaGVzIGFuZCBmaXhlcyBhIGJ1bmNoCglvZiBjb3JuZXIgY2FzZXMgdGhhdCBhcmlzZSB3aGVuIG1hbmlwdWxhdGluZyBhcmNoaXZlcyBvbgoJZGlzc2ltaWxhciBzeXN0ZW1zLgoKQXByIDMwLCAyMDA3OiBsaWJhcmNoaXZlIDIuMS4xMCByZWxlYXNlZApBcHIgMzEsIDIwMDc6IE1pbm9yIGNvZGUgY2xlYW51cC4KCkFwciAyNCwgMjAwNzogbGliYXJjaGl2ZSAyLjEuOSByZWxlYXNlZApBcHIgMjQsIDIwMDc6IEZpeCBzb21lIHJlY2VudGx5LWludHJvZHVjZWQgcHJvYmxlbXMgd2l0aCBsaWJyYXJpZXMKCShKdXN0IGxldCBhdXRvbWFrZSBoYW5kbGUgaXQgYW5kIGl0IGFsbCB3b3JrcyBtdWNoIGJldHRlci4pCglGaW5pc2ggaXNvbGF0aW5nIG1ham9yKCkvbWlub3IoKS9tYWtlZGV2KCkgaW4gYXJjaGl2ZV9lbnRyeS5jLgoKQXByIDIzLCAyMDA3OiBsaWJhcmNoaXZlIDIuMS44IHJlbGVhc2VkCkFwciAyMywgMjAwNzogTWlub3IgZml4ZXMgZm91bmQgZnJvbSBidWlsZGluZyBvbiBNYWNPUyBYCgpBcHIgMjIsIDIwMDc6IGxpYmFyY2hpdmUgMi4xLjcgcmVsZWFzZWQKQXByIDIyLCAyMDA3OiBFbGltaW5hdGVkIGFsbCB1c2VzIG9mICdzdHJ1Y3Qgc3RhdCcgZnJvbSB0aGUKCWZvcm1hdCByZWFkZXJzL3dyaXRlcnMuICBUaGlzIHNob3VsZCBpbXByb3ZlIHBvcnRhYmlsaXR5OwoJJ3N0cnVjdCBzdGF0JyBpcyBub3cgb25seSB1c2VkIGluIGFyY2hpdmVfZW50cnkgYW5kIGluCgljb2RlIHRoYXQgYWN0dWFsbHkgdG91Y2hlcyB0aGUgZGlzay4KCkFwciAxNywgMjAwNzogbGliYXJjaGl2ZSAyLjEuNiByZWxlYXNlZAoJTGliYXJjaGl2ZSBub3cgY29tcGlsZXMgYW5kIHBhc3NlcyBhbGwgdGVzdHMgb24gSW50ZXJpeC4KCkFwciAxNiwgMjAwNzogbGliYXJjaGl2ZSAyLjEuNSByZWxlYXNlZAoKQXByIDE1LCAyMDA3OiBsaWJhcmNoaXZlIDIuMWIyIHJlbGVhc2VkCkFwciAxNSwgMjAwNzogTmV3IGxpYmFyY2hpdmVfaW50ZXJuYWxzLjMgZG9jdW1lbnRhdGlvbiBvZiBpbnRlcm5hbCBBUElzLgoJTm90IGNvbXBsZXRlLCBidXQgc2hvdWxkIHByb3ZlIGhlbHBmdWwuCkFwciAxNSwgMjAwNzogRXhwZXJpbWVudGFsICJyZWFkX2NvbXByZXNzX3Byb2dyYW0iIGFuZCAid3JpdGVfY29tcHJlc3NfcHJvZ3JhbSIKCWZvciB1c2luZyBsaWJhcmNoaXZlIHdpdGggZXh0ZXJuYWwgY29tcHJlc3Npb24uICBOb3QgeWV0Cgl3ZWxsIHRlc3RlZCwgYW5kIGxpa2VseSBoYXMgcG9ydGFiaWxpdHkgaXNzdWVzLiAgRmVlZGJhY2sKCWFwcHJlY2lhdGVkLgoKQXByIDE0LCAyMDA3OiBsaWJhcmNoaXZlIDIuMC4zMSByZWxlYXNlZApBcHIgMTQsIDIwMDc6IE1vcmUgZml4ZXMgZm9yIEludGVyaXgsIG1vcmUgJ2FyJyB3b3JrCgpBcHIgMTQsIDIwMDc6IGxpYmFyY2hpdmUgMi4wLjMwIHJlbGVhc2VkCkFwciAxMywgMjAwNzogbGliYXJjaGl2ZSBub3cgZW5mb3JjZXMgdHJhaWxpbmcgJy8nIG9uIGRpcnMKCXdyaXR0ZW4gdG8gdGFyIGFyY2hpdmVzCgpBcHIgMTEsIDIwMDc6IGxpYmFyY2hpdmUgMi4wLjI5IHJlbGVhc2VkCkFwciAxMSwgMjAwNzogTWFrZSBpdCBlYXNpZXIgdG8gc3RhdGljYWxseSBjb25maWd1cmUgZm9yIGRpZmZlcmVudCBwbGF0Zm9ybXMuCkFwciAxMSwgMjAwNzogVXBkYXRlZCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGxpYnRvb2wKCkFwciAwNiwgMjAwNzogbGliYXJjaGl2ZSAyLjAuMjggcmVsZWFzZWQKQXByIDA2LCAyMDA3OiAnYXInIGZvcm1hdCByZWFkL3dyaXRlIHN1cHBvcnQgdGhhbmtzIHRvIEthaSBXYW5nLgoKQXByIDAxLCAyMDA3OiBsaWJhcmNoaXZlIDIuMC4yNyByZWxlYXNlZApNYXIgMzEsIDIwMDc6IFNldmVyYWwgbWlub3IgZml4ZXMgZnJvbSBDb2xpbiBQZXJjaXZhbCBhbmQgSm9lcmcgU29ubmVuYmVyZ2VyLgoKTWFyIDEyLCAyMDA3OiBsaWJhcmNoaXZlIDIuMC4yNSByZWxlYXNlZApNYXIgMTIsIDIwMDc6IEZpeCBicm9rZW4gLS11bmxpbmsgZmxhZy4KCk1hciAxMSwgMjAwNzogbGliYXJjaGl2ZSAyLjAuMjQgcmVsZWFzZWQKTWFyIDEwLCAyMDA3OiBDb3JyZWN0IGFuIEFDTCBibHVuZGVyIHRoYXQgY2F1c2VzIGFueSBBQ0wgd2l0aCBhbiBlbnRyeQogICAgdGhhdCByZWZlcnMgdG8gYSBub24tZXhpc3RlbnQgdXNlciBvciBncm91cCB0byBub3QgYmUgcmVzdG9yZWQgY29ycmVjdGx5LgogICAgVGhlIGZpeCBib3RoIG1ha2VzIHRoZSBwYXJzZXIgbW9yZSB0b2xlcmFudCAoc28gdGhhdCBhcmNoaXZlcyBjcmVhdGVkCiAgICB3aXRoIHRoZSBidWdneSBBQ0xzIGNhbiBiZSByZWFkIG5vdykgYW5kIGNvcnJlY3RzIHRoZSBBQ0wgZm9ybWF0dGVyLgpNYXIgMTAsIDIwMDc6IE1vcmUgd29yayBvbiB0ZXN0IHBvcnRhYmlsaXR5IHRvIExpbnV4LgoKTWFyIDEwLCAyMDA3OiBsaWJhcmNoaXZlIDIuMC4yMiByZWxlYXNlZApNYXIgMTAsIDIwMDc6IEhlYWRlciBjbGVhbnVwczsgYWRkZWQgbGludXgvZnMuaCwgcmVtb3ZlZAogICAgc29tZSB1bm5lY2Vzc2FyeSBoZWFkZXJzLCBhZGRlZCAjaW5jbHVkZSBndWFyZHMgaW4gYnNkdGFyLgogICAgSWYgeW91IHNlZSBhbnkgb2J2aW91cyBjb21waWxlIGZhaWx1cmVzIGZyb20gdGhpcywgbGV0IG1lIGtub3cuCk1hciAxMCwgMjAwNzogV29yayBvbiBic2R0YXIgdGVzdCBzY3JpcHRzOiBub3QgeWV0IHJvYnVzdCBlbm91Z2gKICAgIHRvIGVuYWJsZSBhcyBwYXJ0IG9mICJtYWtlIGNoZWNrIiwgYnV0IGdldHRpbmcgYmV0dGVyLgpNYXIgMTAsIDIwMDc6IGxpYmFyY2hpdmUgbm93IHJldHVybnMgQVJDSElWRV9GQUlMRUQgd2hlbgogICAgYSBoZWFkZXIgd3JpdGUgZmFpbHMgaW4gYSB3YXkgdGhhdCBvbmx5IGFmZmVjdHMgdGhpcyBpdGVtLgogICAgTGVzcyBiYWQgdGhhbiBBUkNISVZFX0ZBVEFMLCBidXQgd29yc2UgdGhhbiBBUkNISVZFX1dBUk4uCgpNYXIgMDcsIDIwMDc6IGxpYmFyY2hpdmUgMi4wLjIxIHJlbGVhc2VkCk1hciAwNywgMjAwNzogQWRkIHNvbWUgQUNMIHRlc3RzIChvbmx5IGZvciB0aGUgc3lzdGVtLWluZGVwZW5kZW50CiAgICBwb3J0aW9uIG9mIHRoZSBBQ0wgc3VwcG9ydCBmb3Igbm93KS4KTWFyIDA3LCAyMDA3OiB0YXIncyBhYmlsaXR5IHRvIHJlYWQgQUNMcyBvZmYgZGlzayBnb3QKICAgIHR1cm5lZCBvZmYgZm9yIEZyZWVCU0Q7IHJlLWVuYWJsZSBpdC4gIChBQ0wgcmVzdG9yZXMgYW5kCiAgICBsaWJhcmNoaXZlIHN1cHBvcnQgZm9yIHN0b3JpbmcvcmVhZGluZyBBQ0xzIGZyb20gcGF4CiAgICBhcmNoaXZlcyB3YXMgdW5hZmZlY3RlZC4pCgpNYXIgMDIsIDIwMDc6IGxpYmFyY2hpdmUgMi4wLjIwIHJlbGVhc2VkCk1hciAyLCAyMDA3OiAgSXQncyBub3QgcGVyZmVjdCwgYnV0IGl0J3MgcHJldHR5IGdvb2QuCiAgICBMaWJhcmNoaXZlIDIuMCBpcyBvZmZpY2lhbGx5IG91dCBvZiBiZXRhLgoKRmViIDI4LCAyMDA3OiBsaWJhcmNoaXZlIDIuMGIxNyByZWxlYXNlZApGZWIgMjcsIDIwMDc6IE1ha2UgdGhlIEdJRCByZXN0b3JlIGNoZWNrcyBtb3JlIHJvYnVzdCBieSBjaGVja2luZwogICAgd2hldGhlciB0aGUgY3VycmVudCB1c2VyIGhhcyB0b28gZmV3IG9yIHRvbyBtYW55IHByaXZpbGVnZXMuCgpGZWIgMjYsIDIwMDc6IGxpYmFyY2hpdmUgMi4wYjE1IHJlbGVhc2VkCkZlYiAyNiwgMjAwNzogRG9uJ3QgbG9zZSBzeW1saW5rcyB3aGVuIGV4dHJhY3RpbmcgZnJvbSBJU09zLgogICAgVGhhbmtzIHRvIERpZWdvICJGbGFtZWV5ZXMiIFBldHRlbvIgZm9yIHRlbGxpbmcgbWUgYWJvdXQgdGhlCiAgICBicm9rZW4gdGVzdGNhc2Ugb24gR2VudG9vIHRoYXQgKGZpbmFsbHkhKSBsZWQgbWUgdG8gdGhlIGNhdXNlCiAgICBvZiB0aGlzIGxvbmctc3RhbmRpbmcgYnVnLgoKRmViIDI2LCAyMDA3OiBsaWJhcmNoaXZlIDIuMGIxNCByZWxlYXNlZApGZWIgMjYsIDIwMDc6IEZpeCBhIGJyb2tlbiB0ZXN0IG9uIHBsYXRmb3JtcyB0aGF0IGxhY2sgbGNobW9kKCkuCgpGZWIgMjUsIDIwMDc6IGxpYmFyY2hpdmUgMi4wYjEzIHJlbGVhc2VkCkZlYiAyNSwgMjAwNzogRW1wdHkgYXJjaGl2ZXMgd2VyZSBiZWluZyB3cml0dGVuIGFzIGVtcHR5IGZpbGVzLAogICAgd2l0aG91dCBhIHByb3BlciBlbmQtb2YtYXJjaGl2ZSBtYXJrZXIuICBGaXhlZC4KCkZlYiAyMywgMjAwNzogbGliYXJjaGl2ZSAyLjBiMTIgcmVsZWFzZWQKRmViIDIyLCAyMDA3OiBCYXNpYyBzZWN1cml0eSBjaGVja3MgYWRkZWQ6IF9FWFRSQUNUX1NFQ1VSRV9OT0RPVERPVAogICAgYW5kIF9FWFRSQUNUX1NFQ1VSRV9TWU1MSU5LLiAgVGhlc2UgY2hlY2tzIHVzZWQgdG8gYmUgaW4gYnNkdGFyLAogICAgYnV0IHRoZXkgYmVsb25nIGRvd24gaW4gbGliYXJjaGl2ZSB3aGVyZSB0aGV5IGNhbiBiZSB1c2VkIGJ5CiAgICBvdGhlciB0b29scyBhbmQgd2hlcmUgdGhleSBjYW4gYmUgYmV0dGVyIG9wdGltaXplZC4KCkZlYiAxMSwgMjAwNzogbGliYXJjaGl2ZSAyLjBiMTEgcmVsZWFzZWQKRmViIDEwLCAyMDA3OiBGaXhlZCBhIGJ1bmNoIG9mIGVycm9ycyBpbiBsaWJhcmNoaXZlJ3MgaGFuZGxpbmcKICAgIG9mIEVYVFJBQ1RfUEVSTSBhbmQgRVhUUkFDVF9PV05FUiwgZXNwZWNpYWxseSByZWxhdGluZwogICAgdG8gU1VJRCBhbmQgU0dJRCBiaXRzLgoKSmFuIDMxLCAyMDA3OiBsaWJhcmNoaXZlIDIuMGI5IHJlbGVhc2VkCkphbiAzMSwgMjAwNzogQWRkZWQgcmVhZCBzdXBwb3J0IGZvciAiZW1wdHkiIGFyY2hpdmVzIGFzIGEKICAgIGRpc3RpbmN0IGFyY2hpdmUgZm9ybWF0LiAgQnNkdGFyIHVzZXMgdGhpcyB0byBoYW5kbGUsIGUuZy4sCiAgICAidG91Y2ggZm9vLnRhcjsgdGFyIC1yZiBmb28udGFyIgoKSmFuIDIyLCAyMDA3OiBsaWJhcmNoaXZlIDIuMGI2IHJlbGVhc2VkCkphbiAyMiwgMjAwNzogYXJjaGl2ZV93cml0ZV9kaXNrIEFQSSBpcyBub3cgaW4gcGxhY2UuICBJdCBwcm92aWRlcwogICAgYSBmaW5lci1ncmFpbmVkIGludGVyZmFjZSB0aGFuIGFyY2hpdmVfcmVhZF9leHRyYWN0LiAgSW4gcGFydGljdWxhciwKICAgIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBvYmplY3RzIG9uIGRpc2sgd2l0aG91dCBoYXZpbmcgYW4gYXJjaGl2ZQogICAgYXJvdW5kIChqdXN0IGZlZWQgaXQgYXJjaGl2ZV9lbnRyeSBvYmplY3RzIGRlc2NyaWJpbmcgd2hhdCB5b3UKICAgIHdhbnQgdG8gY3JlYXRlKSwgeW91IGNhbiBvdmVycmlkZSB0aGUgdW5hbWUvZ25hbWUtdG8tdWlkL2dpZCBsb29rdXBzCiAgICAobWluaXRhciB1c2VzIHRoaXMgdG8gYXZvaWQgZ2V0cHdYWFgoKSBhbmQgZ2V0Z3JYWFgoKSBibG9hdCkuCgpKYW4gMDksIDIwMDc6IGxpYmFyY2hpdmUgMi4wYTMgcmVsZWFzZWQKSmFuIDksIDIwMDc6IGFyY2hpdmVfZXh0cmFjdCBpcyBub3cgbXVjaCBiZXR0ZXI7IGl0IGhhbmRsZXMgdGhlCiAgICBtb3N0IGNvbW1vbiBjYXNlcyB3aXRoIGEgbWluaW1hbCBudW1iZXIgb2Ygc3lzdGVtIGNhbGxzLgogICAgU29tZSBmZWF0dXJlcyBzdGlsbCBuZWVkIGEgbG90IG9mIHRlc3RpbmcsIGVzcGVjaWFsbHkgY29ybmVyCiAgICBjYXNlcyBpbnZvbHZpbmcgb2JqZWN0cyB0aGF0IGFscmVhZHkgZXhpc3Qgb24gZGlzay4gICBJIGV4cGVjdAogICAgdGhlIG5leHQgcm91bmQgb2YgQVBJIG92ZXJoYXVsIHdpbGwgc2ltcGxpZnkgYnVpbGRpbmcgdGVzdCBjYXNlcy4KSmFuIDksIDIwMDc6IGEgbnVtYmVyIG9mIGZpeGVzIHRoYW5rcyB0byBDb2xpbiBQZXJjaXZhbCwgZXNwZWNpYWxseQogICAgY29ycmVjdGlvbnMgdG8gdGhlIHNraXAoKSBmcmFtZXdvcmsgYW5kIGhhbmRsaW5nIG9mIGxhcmdlIGZpbGVzLgpKYW4gOSwgMjAwNzogRml4ZXMgZm9yIGxhcmdlIElTT3MuICBUaGUgY29kZSBzaG91bGQgY29ycmVjdGx5IGhhbmRsZQogICAgdmVyeSBsYXJnZSBJU09zIHdpdGggZW50cmllcyB1cCB0byA0Ry4gICBUaGFua3MgdG8gUm9iZXJ0IFNjaXVrCiAgICBmb3IgcG9pbnRpbmcgb3V0IHRoZXNlIGlzc3Vlcy4KClNlcCAwNSwgMjAwNjogbGliYXJjaGl2ZSAxLjMuMSByZWxlYXNlZApTZXAgNSwgMjAwNjogQnVtcCB2ZXJzaW9uIHRvIDEuMyBmb3IgbmV3IEkvTyB3cmFwcGVycy4KU2VwIDQsIDIwMDY6IE5ldyBtZW1vcnkgYW5kIEZJTEUgcmVhZC93cml0ZSB3cmFwcGVycy4KU2VwIDQsIDIwMDY6IGxpYmFyY2hpdmUgdGVzdCBoYXJuZXNzIGlzIG5vdyBtaW5pbWFsbHkgZnVuY3Rpb25hbDsKICAgIGl0J3MgbG9jYXRlZCBhIGZldyBtaW5vciBidWdzIGluIGVycm9yLWhhbmRsaW5nIGxvZ2ljCgpBdWcgMTcsIDIwMDY6IGxpYmFyY2hpdmUgMS4yLjU0IHJlbGVhc2VkCkF1ZyAxNywgMjAwNjogT3V0bGluZSBBQkkgY2hhbmdlcyBmb3IgbGliYXJjaGl2ZSAyLjA7IHRoZXNlCiAgIGFyZSBwcm90ZWN0ZWQgYmVoaW5kICNpZmRlZidzIHVudGlsIEkgdGhpbmsgSSd2ZSBmb3VuZCBldmVyeXRoaW5nCiAgIHRoYXQgbmVlZHMgdG8gY2hhbmdlLgpBdWcgMTcsIDIwMDY6IEZpeCBlcnJvci1oYW5kbGluZyBpbiBhcmNoaXZlX3JlYWQvd3JpdGVfY2xvc2UoKQogICBUaGV5IHdlcmVuJ3QgcmV0dXJuaW5nIGFueSBlcnJvcnMgYmVmb3JlLgpBdWcgMTcsIDIwMDY6IEZpeCByZWN1cnNpdmUtYWRkIGxvZ2ljIHRvIG5vdCB0cmlnZ2VyIGlmIGl0J3Mgbm90IHNldAogICBGaXhlcyBhIGJ1ZyBhZGRpbmcgZmlsZXMgd2hlbiB3cml0aW5nIGFyY2hpdmUgdG8gcGlwZSBvciB3aGVuCiAgIHVzaW5nIGFyY2hpdmVfd3JpdGVfb3BlbigpIGRpcmVjdGx5LgpKdWwgMjAwNjogTmV3ICJza2lwIiBoYW5kbGluZyBpbXByb3ZlcyBwZXJmb3JtYW5jZSBleHRyYWN0aW5nCiAgIHNpbmdsZSBmaWxlcyBmcm9tIGxhcmdlIHVuY29tcHJlc3NlZCBhcmNoaXZlcy4KCk1hciAyMSwgMjAwNjogMS4yLjUyIHJlbGVhc2VkCk1hciAyMSwgMjAwNjogRml4IC1wIG9uIHBsYXRmb3JtcyB0aGF0IGRvbid0IGhhdmUgcGxhdGZvcm0tc3BlY2lmaWMKICAgZXh0ZW5kZWQgYXR0cmlidXRlIGNvZGUuCk1hciAyMCwgMjAwNjogQWRkIE5FV1MgZmlsZTsgZmlsbCBpbiBzb21lIG9sZGVyIGhpc3RvcnkgZnJvbSBvdGhlcgogICBmaWxlcy4gIEknbGwgdHJ5IHRvIGtlZXAgdGhpcyBmaWxlIHVwLXRvLWRhdGUgZnJvbSBub3cgb24uCgpPTERFUiBORVdTIFNVTU1BUklFUwoKTWFyIDE5LCAyMDA2OiBsaWJhcmNoaXZlIDEuMi41MSByZWxlYXNlZApNYXIgMTgsIDIwMDY6IE1hbnkgZml4ZXMgdG8gZXh0ZW5kZWQgYXR0cmlidXRlIHN1cHBvcnQsIGluY2x1ZGluZyBhIHJlZGVzaWduCiAgIG9mIHRoZSBzdG9yYWdlIGZvcm1hdCB0byBzaW1wbGlmeSBkZWJ1Z2dpbmcuCk1hciAxMiwgMjAwNjogUmVtb3ZlICd0cCcgc3VwcG9ydDsgaXQgd2FzIGEgZnVuIGlkZWEsIGJ1dCBub3Qgd29ydGgKICAgc3BlbmRpbmcgbXVjaCB0aW1lIG9uLgpNYXIgMTEsIDIwMDY6IEluY29ycG9yYXRlZCBKYWFra28gSGVpbm9uZW4ncyBzdGlsbC1leHBlcmltZW50YWwgc3VwcG9ydAogICBmb3IgZXh0ZW5kZWQgYXR0cmlidXRlcyAoQ3VycmVudGx5IExpbnV4LW9ubHkuKS4KTWFyIDExLCAyMDA2OiBSZW9yZ2FuaXplZCBkaXN0cmlidXRpb24gcGFja2FnZTogVGhlcmUgaXMgbm93IG9uZSB0YXIuZ3oKICAgZmlsZSB0aGF0IGJ1aWxkcyBib3RoIGxpYmFyY2hpdmUgYW5kIGJzZHRhci4KRmViIDEzLCAyMDA2OiBNaW5vciBidWcgZml4ZXM6IGNvcnJlY3RseSByZWFkIGNwaW8gZGV2aWNlIGVudHJpZXMsIHdyaXRlCiAgIFBheCBhdHRyaWJ1dGUgZW50cnkgbmFtZXMuCk5vdiA3LCAyMDA1OiBFeHBlcmltZW50YWwgJ3RwJyBmb3JtYXQgc3VwcG9ydCBpbiBsaWJhcmNoaXZlLiAgRmVlZGJhY2sKICAgYXBwcmVjaWF0ZWQ7IHRoaXMgaXMgbm90IGVuYWJsZWQgYnkgYXJjaGl2ZV9yZWFkX3N1cHBvcnRfZm9ybWF0X2FsbCgpCiAgIHlldCBhcyBJJ20gbm90IHF1aXRlIGNvbnRlbnQgd2l0aCB0aGUgZm9ybWF0IGRldGVjdGlvbiBoZXVyaXN0aWNzLgpOb3YgNywgMjAwNTogU29tZSBtb3JlIHBvcnRhYmlsaXR5IGltcHJvdmVtZW50cyB0aGFua3MgdG8gRGFyaW4gQnJvYWR5LAogICBtaW5vciBidWdmaXhlcy4KT2N0IDEyLCAyMDA1OiBVc2UgR05VIGxpYnRvb2wgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcyBvbiBtYW55IHN5c3RlbXMuCkF1ZyA5LCAyMDA1OiBDb3JyZWN0bHkgZGV0ZWN0IHRoYXQgTWFjT1MgWCBkb2VzIG5vdCBoYXZlIFBPU0lYIEFDTHMuCkFwciAxNywgMjAwNTogS2VlcyBaZWVsZW5iZXJnIGhhcyBwb3J0ZWQgbGliYXJjaGl2ZSBhbmQgYnNkdGFyIHRvIFdpbmRvd3M6CiAgIGh0dHA6Ly9nbnV3aW4zMi5zb3VyY2Vmb3JnZS5uZXQvCkFwciAxMSwgMjAwNTogRXh0ZW5kZWQgWmlwL1ppcDY0IHN1cHBvcnQgdGhhbmtzIHRvIERhbiBOZWxzb24uICAtTC8taAogICBmaXggZnJvbSBKYWFra28gSGVpbm9uZW4uCk1hciAxMiwgMjAwNTogYXJjaGl2ZV9yZWFkX2V4dHJhY3QgY2FuIG5vdyBoYW5kbGUgdmVyeSBsb25nCiAgIHBhdGhuYW1lcyAoSSd2ZSB0ZXN0ZWQgd2l0aCBwYXRobmFtZXMgdXAgdG8gMU1CKS4KTWFyIDEyLCAyMDA1OiBNYXJjdXMgR2VpZ2VyIGhhcyB3cml0dGVuIGFuIGFydGljbGUgYWJvdXQgbGliYXJjaGl2ZQogICBodHRwOi8veHNuaWwuYW50YmVhci5vcmcvMjAwNS8wMi8wNS9hcmNoaXZlLW1pdC1saWJhcmNoaXZlLXZlcmFyYmVpdGVuLwogICBpbmNsdWRpbmcgZXhhbXBsZXMgb2YgdXNpbmcgaXQgZnJvbSBPYmplY3RpdmUtQy4gIEhpcyBNb2luWAogICBodHRwOi8vbW9pbnguYW50YmVhci5vcmcvIGRlc2t0b3AgV2lraSB1c2VzCiAgIGxpYmFyY2hpdmUgZm9yIGFyY2hpdmluZyBhbmQgcmVzdG9yaW5nIFdpa2kgcGFnZXMuCkphbiAyMiwgMjAwNTogUHJlbGltaW5hcnkgWklQIGV4dHJhY3Rpb24gc3VwcG9ydCwKICAgIG5ldyBkaXJlY3Rvcnktd2Fsa2luZyBjb2RlIGZvciBic2R0YXIuCkphbiAxNiwgMjAwNTogSVNPOTY2MCBleHRyYWN0aW9uIGNvZGUgYWRkZWQ7IG1hbnBhZ2UgY29ycmVjdGlvbnMuCk1heSAyMiwgMjAwNDogTWFueSBndGFyLWNvbXBhdGlibGUgbG9uZyBvcHRpb25zIGhhdmUgYmVlbiBhZGRlZDsgYWxtb3N0CiAgICBhbGwgRnJlZUJTRCBwb3J0cyBleHRyYWN0IGNvcnJlY3RseSB3aXRoIGJzZHRhci4KTWF5IDE4LCAyMDA0OiBic2R0YXIgY2FuIHJlYWQgU29sYXJpcywgSFAtVVgsIFVuaXh3YXJlLCBzdGFyLCBndGFyLAogICAgYW5kIHBkdGFyIGFyY2hpdmVzLgo=