Ci8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClNvZnR3YXJlIExpY2Vuc2UgZm9yIFRoZSBGcmF1bmhvZmVyIEZESyBBQUMgQ29kZWMgTGlicmFyeSBmb3IgQW5kcm9pZAoKqSBDb3B5cmlnaHQgIDE5OTUgLSAyMDEzIEZyYXVuaG9mZXItR2VzZWxsc2NoYWZ0IHp1ciBG9nJkZXJ1bmcgZGVyIGFuZ2V3YW5kdGVuIEZvcnNjaHVuZyBlLlYuCiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KCiAxLiAgICBJTlRST0RVQ1RJT04KVGhlIEZyYXVuaG9mZXIgRkRLIEFBQyBDb2RlYyBMaWJyYXJ5IGZvciBBbmRyb2lkICgiRkRLIEFBQyBDb2RlYyIpIGlzIHNvZnR3YXJlIHRoYXQgaW1wbGVtZW50cwp0aGUgTVBFRyBBZHZhbmNlZCBBdWRpbyBDb2RpbmcgKCJBQUMiKSBlbmNvZGluZyBhbmQgZGVjb2Rpbmcgc2NoZW1lIGZvciBkaWdpdGFsIGF1ZGlvLgpUaGlzIEZESyBBQUMgQ29kZWMgc29mdHdhcmUgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBhIHdpZGUgdmFyaWV0eSBvZiBBbmRyb2lkIGRldmljZXMuCgpBQUMncyBIRS1BQUMgYW5kIEhFLUFBQyB2MiB2ZXJzaW9ucyBhcmUgcmVnYXJkZWQgYXMgdG9kYXkncyBtb3N0IGVmZmljaWVudCBnZW5lcmFsIHBlcmNlcHR1YWwKYXVkaW8gY29kZWNzLiBBQUMtRUxEIGlzIGNvbnNpZGVyZWQgdGhlIGJlc3QtcGVyZm9ybWluZyBmdWxsLWJhbmR3aWR0aCBjb21tdW5pY2F0aW9ucyBjb2RlYyBieQppbmRlcGVuZGVudCBzdHVkaWVzIGFuZCBpcyB3aWRlbHkgZGVwbG95ZWQuIEFBQyBoYXMgYmVlbiBzdGFuZGFyZGl6ZWQgYnkgSVNPIGFuZCBJRUMgYXMgcGFydApvZiB0aGUgTVBFRyBzcGVjaWZpY2F0aW9ucy4KClBhdGVudCBsaWNlbnNlcyBmb3IgbmVjZXNzYXJ5IHBhdGVudCBjbGFpbXMgZm9yIHRoZSBGREsgQUFDIENvZGVjIChpbmNsdWRpbmcgdGhvc2Ugb2YgRnJhdW5ob2ZlcikKbWF5IGJlIG9idGFpbmVkIHRocm91Z2ggVmlhIExpY2Vuc2luZyAod3d3LnZpYWxpY2Vuc2luZy5jb20pIG9yIHRocm91Z2ggdGhlIHJlc3BlY3RpdmUgcGF0ZW50IG93bmVycwppbmRpdmlkdWFsbHkgZm9yIHRoZSBwdXJwb3NlIG9mIGVuY29kaW5nIG9yIGRlY29kaW5nIGJpdCBzdHJlYW1zIGluIHByb2R1Y3RzIHRoYXQgYXJlIGNvbXBsaWFudCB3aXRoCnRoZSBJU08vSUVDIE1QRUcgYXVkaW8gc3RhbmRhcmRzLiBQbGVhc2Ugbm90ZSB0aGF0IG1vc3QgbWFudWZhY3R1cmVycyBvZiBBbmRyb2lkIGRldmljZXMgYWxyZWFkeSBsaWNlbnNlCnRoZXNlIHBhdGVudCBjbGFpbXMgdGhyb3VnaCBWaWEgTGljZW5zaW5nIG9yIGRpcmVjdGx5IGZyb20gdGhlIHBhdGVudCBvd25lcnMsIGFuZCB0aGVyZWZvcmUgRkRLIEFBQyBDb2RlYwpzb2Z0d2FyZSBtYXkgYWxyZWFkeSBiZSBjb3ZlcmVkIHVuZGVyIHRob3NlIHBhdGVudCBsaWNlbnNlcyB3aGVuIGl0IGlzIHVzZWQgZm9yIHRob3NlIGxpY2Vuc2VkIHB1cnBvc2VzIG9ubHkuCgpDb21tZXJjaWFsbHktbGljZW5zZWQgQUFDIHNvZnR3YXJlIGxpYnJhcmllcywgaW5jbHVkaW5nIGZsb2F0aW5nLXBvaW50IHZlcnNpb25zIHdpdGggZW5oYW5jZWQgc291bmQgcXVhbGl0eSwKYXJlIGFsc28gYXZhaWxhYmxlIGZyb20gRnJhdW5ob2Zlci4gVXNlcnMgYXJlIGVuY291cmFnZWQgdG8gY2hlY2sgdGhlIEZyYXVuaG9mZXIgd2Vic2l0ZSBmb3IgYWRkaXRpb25hbAphcHBsaWNhdGlvbnMgaW5mb3JtYXRpb24gYW5kIGRvY3VtZW50YXRpb24uCgoyLiAgICBDT1BZUklHSFQgTElDRU5TRQoKUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCB3aXRob3V0CnBheW1lbnQgb2YgY29weXJpZ2h0IGxpY2Vuc2UgZmVlcyBwcm92aWRlZCB0aGF0IHlvdSBzYXRpc2Z5IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKCllvdSBtdXN0IHJldGFpbiB0aGUgY29tcGxldGUgdGV4dCBvZiB0aGlzIHNvZnR3YXJlIGxpY2Vuc2UgaW4gcmVkaXN0cmlidXRpb25zIG9mIHRoZSBGREsgQUFDIENvZGVjIG9yCnlvdXIgbW9kaWZpY2F0aW9ucyB0aGVyZXRvIGluIHNvdXJjZSBjb2RlIGZvcm0uCgpZb3UgbXVzdCByZXRhaW4gdGhlIGNvbXBsZXRlIHRleHQgb2YgdGhpcyBzb2Z0d2FyZSBsaWNlbnNlIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKcHJvdmlkZWQgd2l0aCByZWRpc3RyaWJ1dGlvbnMgb2YgdGhlIEZESyBBQUMgQ29kZWMgb3IgeW91ciBtb2RpZmljYXRpb25zIHRoZXJldG8gaW4gYmluYXJ5IGZvcm0uCllvdSBtdXN0IG1ha2UgYXZhaWxhYmxlIGZyZWUgb2YgY2hhcmdlIGNvcGllcyBvZiB0aGUgY29tcGxldGUgc291cmNlIGNvZGUgb2YgdGhlIEZESyBBQUMgQ29kZWMgYW5kIHlvdXIKbW9kaWZpY2F0aW9ucyB0aGVyZXRvIHRvIHJlY2lwaWVudHMgb2YgY29waWVzIGluIGJpbmFyeSBmb3JtLgoKVGhlIG5hbWUgb2YgRnJhdW5ob2ZlciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIGxpYnJhcnkgd2l0aG91dApwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpZb3UgbWF5IG5vdCBjaGFyZ2UgY29weXJpZ2h0IGxpY2Vuc2UgZmVlcyBmb3IgYW55b25lIHRvIHVzZSwgY29weSBvciBkaXN0cmlidXRlIHRoZSBGREsgQUFDIENvZGVjCnNvZnR3YXJlIG9yIHlvdXIgbW9kaWZpY2F0aW9ucyB0aGVyZXRvLgoKWW91ciBtb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgRkRLIEFBQyBDb2RlYyBtdXN0IGNhcnJ5IHByb21pbmVudCBub3RpY2VzIHN0YXRpbmcgdGhhdCB5b3UgY2hhbmdlZCB0aGUgc29mdHdhcmUKYW5kIHRoZSBkYXRlIG9mIGFueSBjaGFuZ2UuIEZvciBtb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgRkRLIEFBQyBDb2RlYywgdGhlIHRlcm0KIkZyYXVuaG9mZXIgRkRLIEFBQyBDb2RlYyBMaWJyYXJ5IGZvciBBbmRyb2lkIiBtdXN0IGJlIHJlcGxhY2VkIGJ5IHRoZSB0ZXJtCiJUaGlyZC1QYXJ0eSBNb2RpZmllZCBWZXJzaW9uIG9mIHRoZSBGcmF1bmhvZmVyIEZESyBBQUMgQ29kZWMgTGlicmFyeSBmb3IgQW5kcm9pZC4iCgozLiAgICBOTyBQQVRFTlQgTElDRU5TRQoKTk8gRVhQUkVTUyBPUiBJTVBMSUVEIExJQ0VOU0VTIFRPIEFOWSBQQVRFTlQgQ0xBSU1TLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSBwYXRlbnRzIG9mIEZyYXVuaG9mZXIsCkFSRSBHUkFOVEVEIEJZIFRISVMgU09GVFdBUkUgTElDRU5TRS4gRnJhdW5ob2ZlciBwcm92aWRlcyBubyB3YXJyYW50eSBvZiBwYXRlbnQgbm9uLWluZnJpbmdlbWVudCB3aXRoCnJlc3BlY3QgdG8gdGhpcyBzb2Z0d2FyZS4KCllvdSBtYXkgdXNlIHRoaXMgRkRLIEFBQyBDb2RlYyBzb2Z0d2FyZSBvciBtb2RpZmljYXRpb25zIHRoZXJldG8gb25seSBmb3IgcHVycG9zZXMgdGhhdCBhcmUgYXV0aG9yaXplZApieSBhcHByb3ByaWF0ZSBwYXRlbnQgbGljZW5zZXMuCgo0LiAgICBESVNDTEFJTUVSCgpUaGlzIEZESyBBQUMgQ29kZWMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYnkgRnJhdW5ob2ZlciBvbiBiZWhhbGYgb2YgdGhlIGNvcHlyaWdodCBob2xkZXJzIGFuZCBjb250cmlidXRvcnMKIkFTIElTIiBhbmQgV0lUSE9VVCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIGltcGxpZWQgd2FycmFudGllcwpvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgpDT05UUklCVVRPUlMgQkUgTElBQkxFIGZvciBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgaW5jaWRlbnRhbCwgc3BlY2lhbCwgZXhlbXBsYXJ5LCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMsCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gcHJvY3VyZW1lbnQgb2Ygc3Vic3RpdHV0ZSBnb29kcyBvciBzZXJ2aWNlczsgbG9zcyBvZiB1c2UsIGRhdGEsIG9yIHByb2ZpdHMsCm9yIGJ1c2luZXNzIGludGVycnVwdGlvbiwgaG93ZXZlciBjYXVzZWQgYW5kIG9uIGFueSB0aGVvcnkgb2YgbGlhYmlsaXR5LCB3aGV0aGVyIGluIGNvbnRyYWN0LCBzdHJpY3QKbGlhYmlsaXR5LCBvciB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGFyaXNpbmcgaW4gYW55IHdheSBvdXQgb2YgdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLCBldmVuIGlmCmFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlLgoKNS4gICAgQ09OVEFDVCBJTkZPUk1BVElPTgoKRnJhdW5ob2ZlciBJbnN0aXR1dGUgZm9yIEludGVncmF0ZWQgQ2lyY3VpdHMgSUlTCkF0dGVudGlvbjogQXVkaW8gYW5kIE11bHRpbWVkaWEgRGVwYXJ0bWVudHMgLSBGREsgQUFDIExMCkFtIFdvbGZzbWFudGVsIDMzCjkxMDU4IEVybGFuZ2VuLCBHZXJtYW55Cgp3d3cuaWlzLmZyYXVuaG9mZXIuZGUvYW1tCmFtbS1pbmZvQGlpcy5mcmF1bmhvZmVyLmRlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgovKiEKICBcZmlsZQogIFxicmllZiAgRGVmaW5pdGlvbiBvZiBjb25zdGFudCB0YWJsZXMKICAgCgogIFRoaXMgbW9kdWxlIGNvbnRhaW5zIG1vc3Qgb2YgdGhlIGNvbnN0YW50IGRhdGEgdGhhdCBjYW4gYmUgc3RvcmVkIGluIFJPTS4KKi8KCiNpbmNsdWRlICJzYnJfcm9tLmgiCiNpbmNsdWRlICJnZW5lcmljU3Rkcy5oIgoKLy9AewovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKICAgVGFibGUgT3ZlcnZpZXc6CgogbyBlbnZlbG9wZSBsZXZlbCwgICAxLjUgZEI6CiAgICAxYSkgIHZfSHVmZl9lbnZlbG9wZUxldmVsQzEwVFsxMjFdCiAgICAxYikgIHZfSHVmZl9lbnZlbG9wZUxldmVsTDEwVFsxMjFdCiAgICAyYSkgIHZfSHVmZl9lbnZlbG9wZUxldmVsQzEwRlsxMjFdCiAgICAyYikgIHZfSHVmZl9lbnZlbG9wZUxldmVsTDEwRlsxMjFdCgogbyBlbnZlbG9wZSBiYWxhbmNlLCAxLjUgZEI6CiAgICAzYSkgIGJvb2tTYnJFbnZCYWxhbmNlQzEwVFs0OV0KICAgIDNiKSAgYm9va1NickVudkJhbGFuY2VMMTBUWzQ5XQogICAgNGEpICBib29rU2JyRW52QmFsYW5jZUMxMEZbNDldCiAgICA0YikgIGJvb2tTYnJFbnZCYWxhbmNlTDEwRls0OV0KCiBvIGVudmVsb3BlIGxldmVsLCAgIDMuMCBkQjoKICAgIDVhKSAgdl9IdWZmX2VudmVsb3BlTGV2ZWxDMTFUWzYzXQogICAgNWIpICB2X0h1ZmZfZW52ZWxvcGVMZXZlbEwxMVRbNjNdCiAgICA2YSkgIHZfSHVmZl9lbnZlbG9wZUxldmVsQzExRls2M10KICAgIDZiKSAgdl9IdWZmX2VudmVsb3BlTGV2ZWxDMTFGWzYzXQoKIG8gZW52ZWxvcGUgYmFsYW5jZSwgMy4wIGRCOgogICAgN2EpICBib29rU2JyRW52QmFsYW5jZUMxMVRbMjVdCiAgICA3YikgIGJvb2tTYnJFbnZCYWxhbmNlTDExVFsyNV0KICAgIDhhKSAgYm9va1NickVudkJhbGFuY2VDMTFGWzI1XQogICAgOGIpICBib29rU2JyRW52QmFsYW5jZUwxMUZbMjVdCgogbyBub2lzZSBsZXZlbCwgICAgICAzLjAgZEI6CiAgICA5YSkgIHZfSHVmZl9Ob2lzZUxldmVsQzExVFs2M10KICAgIDliKSAgdl9IdWZmX05vaXNlTGV2ZWxMMTFUWzYzXQogICAgLSApICh2X0h1ZmZfZW52ZWxvcGVMZXZlbEMxMUZbNjNdIGlzIHVzZWQgZm9yIGZyZXEgZGlyKQogICAgLSApICh2X0h1ZmZfZW52ZWxvcGVMZXZlbEwxMUZbNjNdIGlzIHVzZWQgZm9yIGZyZXEgZGlyKQoKIG8gbm9pc2UgYmFsYW5jZSwgICAgMy4wIGRCOgogICAxMGEpICBib29rU2JyTm9pc2VCYWxhbmNlQzExVFsyNV0KICAgMTBiKSAgYm9va1Nick5vaXNlQmFsYW5jZUwxMVRbMjVdCiAgICAtICkgKGJvb2tTYnJFbnZCYWxhbmNlQzExRlsyNV0gaXMgdXNlZCBmb3IgZnJlcSBkaXIpCiAgICAtICkgKGJvb2tTYnJFbnZCYWxhbmNlTDExRlsyNV0gaXMgdXNlZCBmb3IgZnJlcSBkaXIpCgoKICAoMS41IGRCIGlzIG5ldmVyIHVzZWQgZm9yIG5vaXNlKQoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qIHRhYmxlICAgICAgIDogZW52ZWxvcGUgbGV2ZWwsIDEuNSBkQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKiB0aGVvciByYW5nZSA6IFstNTgsNThdLCBDT0RFX0JPT0tfU0NGX0xBViAgID0gNTggICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogaW1wbGVtIHJhbmdlOiBbLTYwLDYwXSwgQ09ERV9CT09LX1NDRl9MQVYxMCA9IDYwICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qIHJhdyBzdGF0cyAgIDogZW52ZWxvcGVMZXZlbF8wMCAoeWVzLCB3cm9uZyBzdWZmaXggaW4gbmFtZSkgIEtLIDAxLTAzLTA5ICAgICAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qIGRpcmVjdGlvbjogdGltZQogICBjb250ZW50cyA6IGNvZGV3b3JkcwogICByYXcgdGFibGU6IEh1ZmZDb2RlM0MyRklYLm0vZW52ZWxvcGVMZXZlbF8wMFRfY0YubWF0L3ZfbkNoZXhfY0YKICAgYnVpbHQgYnkgOiBGSCAwMS0wNy0wNSAqLwoKY29uc3QgSU5UIHZfSHVmZl9lbnZlbG9wZUxldmVsQzEwVFsxMjFdID0KewogIDB4MDAwM0ZGRDYsIDB4MDAwM0ZGRDcsIDB4MDAwM0ZGRDgsIDB4MDAwM0ZGRDksIDB4MDAwM0ZGREEsIDB4MDAwM0ZGREIsIDB4MDAwN0ZGQjgsIDB4MDAwN0ZGQjksCiAgMHgwMDA3RkZCQSwgMHgwMDA3RkZCQiwgMHgwMDA3RkZCQywgMHgwMDA3RkZCRCwgMHgwMDA3RkZCRSwgMHgwMDA3RkZCRiwgMHgwMDA3RkZDMCwgMHgwMDA3RkZDMSwKICAweDAwMDdGRkMyLCAweDAwMDdGRkMzLCAweDAwMDdGRkM0LCAweDAwMDdGRkM1LCAweDAwMDdGRkM2LCAweDAwMDdGRkM3LCAweDAwMDdGRkM4LCAweDAwMDdGRkM5LAogIDB4MDAwN0ZGQ0EsIDB4MDAwN0ZGQ0IsIDB4MDAwN0ZGQ0MsIDB4MDAwN0ZGQ0QsIDB4MDAwN0ZGQ0UsIDB4MDAwN0ZGQ0YsIDB4MDAwN0ZGRDAsIDB4MDAwN0ZGRDEsCiAgMHgwMDA3RkZEMiwgMHgwMDA3RkZEMywgMHgwMDAxRkZFNiwgMHgwMDAzRkZENCwgMHgwMDAwRkZGMCwgMHgwMDAxRkZFOSwgMHgwMDAzRkZENSwgMHgwMDAxRkZFNywKICAweDAwMDBGRkYxLCAweDAwMDBGRkVDLCAweDAwMDBGRkVELCAweDAwMDBGRkVFLCAweDAwMDA3RkY0LCAweDAwMDAzRkY5LCAweDAwMDAzRkY3LCAweDAwMDAxRkZBLAogIDB4MDAwMDFGRjksIDB4MDAwMDBGRkIsIDB4MDAwMDA3RkMsIDB4MDAwMDAzRkMsIDB4MDAwMDAxRkQsIDB4MDAwMDAwRkQsIDB4MDAwMDAwN0QsIDB4MDAwMDAwM0QsCiAgMHgwMDAwMDAxRCwgMHgwMDAwMDAwRCwgMHgwMDAwMDAwNSwgMHgwMDAwMDAwMSwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwNCwgMHgwMDAwMDAwQywgMHgwMDAwMDAxQywKICAweDAwMDAwMDNDLCAweDAwMDAwMDdDLCAweDAwMDAwMEZDLCAweDAwMDAwMUZDLCAweDAwMDAwM0ZELCAweDAwMDAwRkZBLCAweDAwMDAxRkY4LCAweDAwMDAzRkY2LAogIDB4MDAwMDNGRjgsIDB4MDAwMDdGRjUsIDB4MDAwMEZGRUYsIDB4MDAwMUZGRTgsIDB4MDAwMEZGRjIsIDB4MDAwN0ZGRDQsIDB4MDAwN0ZGRDUsIDB4MDAwN0ZGRDYsCiAgMHgwMDA3RkZENywgMHgwMDA3RkZEOCwgMHgwMDA3RkZEOSwgMHgwMDA3RkZEQSwgMHgwMDA3RkZEQiwgMHgwMDA3RkZEQywgMHgwMDA3RkZERCwgMHgwMDA3RkZERSwKICAweDAwMDdGRkRGLCAweDAwMDdGRkUwLCAweDAwMDdGRkUxLCAweDAwMDdGRkUyLCAweDAwMDdGRkUzLCAweDAwMDdGRkU0LCAweDAwMDdGRkU1LCAweDAwMDdGRkU2LAogIDB4MDAwN0ZGRTcsIDB4MDAwN0ZGRTgsIDB4MDAwN0ZGRTksIDB4MDAwN0ZGRUEsIDB4MDAwN0ZGRUIsIDB4MDAwN0ZGRUMsIDB4MDAwN0ZGRUQsIDB4MDAwN0ZGRUUsCiAgMHgwMDA3RkZFRiwgMHgwMDA3RkZGMCwgMHgwMDA3RkZGMSwgMHgwMDA3RkZGMiwgMHgwMDA3RkZGMywgMHgwMDA3RkZGNCwgMHgwMDA3RkZGNSwgMHgwMDA3RkZGNiwKICAweDAwMDdGRkY3LCAweDAwMDdGRkY4LCAweDAwMDdGRkY5LCAweDAwMDdGRkZBLCAweDAwMDdGRkZCLCAweDAwMDdGRkZDLCAweDAwMDdGRkZELCAweDAwMDdGRkZFLAogIDB4MDAwN0ZGRkYKfTsKCgovKiBkaXJlY3Rpb246IHRpbWUKICAgY29udGVudHMgOiBjb2Rld29yZCBsZW5ndGhzCiAgIHJhdyB0YWJsZTogSHVmZkNvZGUzQzJGSVgubS9lbnZlbG9wZUxldmVsXzAwVF9jRi5tYXQvdl9uTGhleF9jRgogICBidWlsdCBieSA6IEZIIDAxLTA3LTA1ICovCgpjb25zdCBVQ0hBUiB2X0h1ZmZfZW52ZWxvcGVMZXZlbEwxMFRbMTIxXSA9CnsKICAweDEyLCAweDEyLCAweDEyLCAweDEyLCAweDEyLCAweDEyLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLAogIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsCiAgMHgxMywgMHgxMywgMHgxMSwgMHgxMiwgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMSwgMHgxMCwgMHgxMCwgMHgxMCwgMHgxMCwgMHgwRiwgMHgwRSwgMHgwRSwgMHgwRCwKICAweDBELCAweDBDLCAweDBCLCAweDBBLCAweDA5LCAweDA4LCAweDA3LCAweDA2LCAweDA1LCAweDA0LCAweDAzLCAweDAyLCAweDAyLCAweDAzLCAweDA0LCAweDA1LAogIDB4MDYsIDB4MDcsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEMsIDB4MEQsIDB4MEUsIDB4MEUsIDB4MEYsIDB4MTAsIDB4MTEsIDB4MTAsIDB4MTMsIDB4MTMsIDB4MTMsCiAgMHgxMywgMHgxMywgMHgxMywgMHgxMywgMHgxMywgMHgxMywgMHgxMywgMHgxMywgMHgxMywgMHgxMywgMHgxMywgMHgxMywgMHgxMywgMHgxMywgMHgxMywgMHgxMywKICAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLAogIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMKfTsKCgovKiBkaXJlY3Rpb246IGZyZXEKICAgY29udGVudHMgOiBjb2Rld29yZHMKICAgcmF3IHRhYmxlOiBIdWZmQ29kZTNDMkZJWC5tL2VudmVsb3BlTGV2ZWxfMDBGX2NGLm1hdC92X25DaGV4X2NGCiAgIGJ1aWx0IGJ5IDogRkggMDEtMDctMDUgKi8KCmNvbnN0IElOVCB2X0h1ZmZfZW52ZWxvcGVMZXZlbEMxMEZbMTIxXSA9CnsKICAweDAwMDdGRkU3LCAweDAwMDdGRkU4LCAweDAwMEZGRkQyLCAweDAwMEZGRkQzLCAweDAwMEZGRkQ0LCAweDAwMEZGRkQ1LCAweDAwMEZGRkQ2LCAweDAwMEZGRkQ3LAogIDB4MDAwRkZGRDgsIDB4MDAwN0ZGREEsIDB4MDAwRkZGRDksIDB4MDAwRkZGREEsIDB4MDAwRkZGREIsIDB4MDAwRkZGREMsIDB4MDAwN0ZGREIsIDB4MDAwRkZGREQsCiAgMHgwMDA3RkZEQywgMHgwMDA3RkZERCwgMHgwMDBGRkZERSwgMHgwMDAzRkZFNCwgMHgwMDBGRkZERiwgMHgwMDBGRkZFMCwgMHgwMDBGRkZFMSwgMHgwMDA3RkZERSwKICAweDAwMEZGRkUyLCAweDAwMEZGRkUzLCAweDAwMEZGRkU0LCAweDAwMDdGRkRGLCAweDAwMEZGRkU1LCAweDAwMDdGRkUwLCAweDAwMDNGRkU4LCAweDAwMDdGRkUxLAogIDB4MDAwM0ZGRTAsIDB4MDAwM0ZGRTksIDB4MDAwMUZGRUYsIDB4MDAwM0ZGRTUsIDB4MDAwMUZGRUMsIDB4MDAwMUZGRUQsIDB4MDAwMUZGRUUsIDB4MDAwMEZGRjQsCiAgMHgwMDAwRkZGMywgMHgwMDAwRkZGMCwgMHgwMDAwN0ZGNywgMHgwMDAwN0ZGNiwgMHgwMDAwM0ZGQSwgMHgwMDAwMUZGQSwgMHgwMDAwMUZGOSwgMHgwMDAwMEZGQSwKICAweDAwMDAwRkY4LCAweDAwMDAwN0Y5LCAweDAwMDAwM0ZCLCAweDAwMDAwMUZDLCAweDAwMDAwMUZBLCAweDAwMDAwMEZCLCAweDAwMDAwMDdDLCAweDAwMDAwMDNDLAogIDB4MDAwMDAwMUMsIDB4MDAwMDAwMEMsIDB4MDAwMDAwMDUsIDB4MDAwMDAwMDEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDQsIDB4MDAwMDAwMEQsIDB4MDAwMDAwMUQsCiAgMHgwMDAwMDAzRCwgMHgwMDAwMDBGQSwgMHgwMDAwMDBGQywgMHgwMDAwMDFGQiwgMHgwMDAwMDNGQSwgMHgwMDAwMDdGOCwgMHgwMDAwMDdGQSwgMHgwMDAwMDdGQiwKICAweDAwMDAwRkY5LCAweDAwMDAwRkZCLCAweDAwMDAxRkY4LCAweDAwMDAxRkZCLCAweDAwMDAzRkY4LCAweDAwMDAzRkY5LCAweDAwMDBGRkYxLCAweDAwMDBGRkYyLAogIDB4MDAwMUZGRUEsIDB4MDAwMUZGRUIsIDB4MDAwM0ZGRTEsIDB4MDAwM0ZGRTIsIDB4MDAwM0ZGRUEsIDB4MDAwM0ZGRTMsIDB4MDAwM0ZGRTYsIDB4MDAwM0ZGRTcsCiAgMHgwMDAzRkZFQiwgMHgwMDBGRkZFNiwgMHgwMDA3RkZFMiwgMHgwMDBGRkZFNywgMHgwMDBGRkZFOCwgMHgwMDBGRkZFOSwgMHgwMDBGRkZFQSwgMHgwMDBGRkZFQiwKICAweDAwMEZGRkVDLCAweDAwMDdGRkUzLCAweDAwMEZGRkVELCAweDAwMEZGRkVFLCAweDAwMEZGRkVGLCAweDAwMEZGRkYwLCAweDAwMDdGRkU0LCAweDAwMEZGRkYxLAogIDB4MDAwM0ZGRUMsIDB4MDAwRkZGRjIsIDB4MDAwRkZGRjMsIDB4MDAwN0ZGRTUsIDB4MDAwN0ZGRTYsIDB4MDAwRkZGRjQsIDB4MDAwRkZGRjUsIDB4MDAwRkZGRjYsCiAgMHgwMDBGRkZGNywgMHgwMDBGRkZGOCwgMHgwMDBGRkZGOSwgMHgwMDBGRkZGQSwgMHgwMDBGRkZGQiwgMHgwMDBGRkZGQywgMHgwMDBGRkZGRCwgMHgwMDBGRkZGRSwKICAweDAwMEZGRkZGCn07CgoKLyogZGlyZWN0aW9uOiBmcmVxCiAgIGNvbnRlbnRzIDogY29kZXdvcmQgbGVuZ3RocwogICByYXcgdGFibGU6IEh1ZmZDb2RlM0MyRklYLm0vZW52ZWxvcGVMZXZlbF8wMEZfY0YubWF0L3ZfbkxoZXhfY0YKICAgYnVpbHQgYnkgOiBGSCAwMS0wNy0wNSAqLwoKY29uc3QgVUNIQVIgdl9IdWZmX2VudmVsb3BlTGV2ZWxMMTBGWzEyMV0gPQp7CiAgMHgxMywgMHgxMywgMHgxNCwgMHgxNCwgMHgxNCwgMHgxNCwgMHgxNCwgMHgxNCwgMHgxNCwgMHgxMywgMHgxNCwgMHgxNCwgMHgxNCwgMHgxNCwgMHgxMywgMHgxNCwKICAweDEzLCAweDEzLCAweDE0LCAweDEyLCAweDE0LCAweDE0LCAweDE0LCAweDEzLCAweDE0LCAweDE0LCAweDE0LCAweDEzLCAweDE0LCAweDEzLCAweDEyLCAweDEzLAogIDB4MTIsIDB4MTIsIDB4MTEsIDB4MTIsIDB4MTEsIDB4MTEsIDB4MTEsIDB4MTAsIDB4MTAsIDB4MTAsIDB4MEYsIDB4MEYsIDB4MEUsIDB4MEQsIDB4MEQsIDB4MEMsCiAgMHgwQywgMHgwQiwgMHgwQSwgMHgwOSwgMHgwOSwgMHgwOCwgMHgwNywgMHgwNiwgMHgwNSwgMHgwNCwgMHgwMywgMHgwMiwgMHgwMiwgMHgwMywgMHgwNCwgMHgwNSwKICAweDA2LCAweDA4LCAweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDBCLCAweDBCLCAweDBDLCAweDBDLCAweDBELCAweDBELCAweDBFLCAweDBFLCAweDEwLCAweDEwLAogIDB4MTEsIDB4MTEsIDB4MTIsIDB4MTIsIDB4MTIsIDB4MTIsIDB4MTIsIDB4MTIsIDB4MTIsIDB4MTQsIDB4MTMsIDB4MTQsIDB4MTQsIDB4MTQsIDB4MTQsIDB4MTQsCiAgMHgxNCwgMHgxMywgMHgxNCwgMHgxNCwgMHgxNCwgMHgxNCwgMHgxMywgMHgxNCwgMHgxMiwgMHgxNCwgMHgxNCwgMHgxMywgMHgxMywgMHgxNCwgMHgxNCwgMHgxNCwKICAweDE0LCAweDE0LCAweDE0LCAweDE0LCAweDE0LCAweDE0LCAweDE0LCAweDE0LCAweDE0Cn07CgoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qIHRhYmxlICAgICAgIDogZW52ZWxvcGUgYmFsYW5jZSwgMS41IGRCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKiB0aGVvciByYW5nZSA6IFstNDgsNDhdLCBDT0RFX0JPT0tfU0NGX0xBViA9IDQ4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogaW1wbGVtIHJhbmdlOiBzYW1lIGJ1dCBtYXBwZWQgdG8gWy0yNCwyNF0sIENPREVfQk9PS19TQ0ZfTEFWX0JBTEFOQ0UxMCA9IDI0ICovCi8qIHJhdyBzdGF0cyAgIDogZW52ZWxvcGVQYW5fMDAgKHllcywgd3Jvbmcgc3VmZml4IGluIG5hbWUpICBLSyAwMS0wMy0wOSAgICAgICAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qIGRpcmVjdGlvbjogdGltZQogICBjb250ZW50cyA6IGNvZGV3b3JkcwogICByYXcgdGFibGU6IEh1ZmZDb2RlM0MubS9lbnZlbG9wZVBhbl8wMFQubWF0L3ZfbkJoZXgKICAgYnVpbHQgYnkgOiBGSCAwMS0wNS0xNSAqLwoKY29uc3QgSU5UIGJvb2tTYnJFbnZCYWxhbmNlQzEwVFs0OV0gPQp7CiAgMHgwMDAwRkZFNCwgMHgwMDAwRkZFNSwgMHgwMDAwRkZFNiwgMHgwMDAwRkZFNywgMHgwMDAwRkZFOCwgMHgwMDAwRkZFOSwgMHgwMDAwRkZFQSwgMHgwMDAwRkZFQiwKICAweDAwMDBGRkVDLCAweDAwMDBGRkVELCAweDAwMDBGRkVFLCAweDAwMDBGRkVGLCAweDAwMDBGRkYwLCAweDAwMDBGRkYxLCAweDAwMDBGRkYyLCAweDAwMDBGRkYzLAogIDB4MDAwMEZGRjQsIDB4MDAwMEZGRTIsIDB4MDAwMDBGRkMsIDB4MDAwMDA3RkMsIDB4MDAwMDAxRkUsIDB4MDAwMDAwN0UsIDB4MDAwMDAwMUUsIDB4MDAwMDAwMDYsCiAgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMiwgMHgwMDAwMDAwRSwgMHgwMDAwMDAzRSwgMHgwMDAwMDBGRSwgMHgwMDAwMDdGRCwgMHgwMDAwMEZGRCwgMHgwMDAwN0ZGMCwKICAweDAwMDBGRkUzLCAweDAwMDBGRkY1LCAweDAwMDBGRkY2LCAweDAwMDBGRkY3LCAweDAwMDBGRkY4LCAweDAwMDBGRkY5LCAweDAwMDBGRkZBLCAweDAwMDFGRkY2LAogIDB4MDAwMUZGRjcsIDB4MDAwMUZGRjgsIDB4MDAwMUZGRjksIDB4MDAwMUZGRkEsIDB4MDAwMUZGRkIsIDB4MDAwMUZGRkMsIDB4MDAwMUZGRkQsIDB4MDAwMUZGRkUsCiAgMHgwMDAxRkZGRgp9OwoKCi8qIGRpcmVjdGlvbjogdGltZQogICBjb250ZW50cyA6IGNvZGV3b3JkIGxlbmd0aHMKICAgcmF3IHRhYmxlOiBIdWZmQ29kZTNDLm0vZW52ZWxvcGVQYW5fMDBULm1hdC92X25MaGV4CiAgIGJ1aWx0IGJ5IDogRkggMDEtMDUtMTUgKi8KCmNvbnN0IFVDSEFSIGJvb2tTYnJFbnZCYWxhbmNlTDEwVFs0OV0gPQp7CiAgMHgxMCwgMHgxMCwgMHgxMCwgMHgxMCwgMHgxMCwgMHgxMCwgMHgxMCwgMHgxMCwgMHgxMCwgMHgxMCwgMHgxMCwgMHgxMCwgMHgxMCwgMHgxMCwgMHgxMCwgMHgxMCwKICAweDEwLCAweDEwLCAweDBDLCAweDBCLCAweDA5LCAweDA3LCAweDA1LCAweDAzLCAweDAxLCAweDAyLCAweDA0LCAweDA2LCAweDA4LCAweDBCLCAweDBDLCAweDBGLAogIDB4MTAsIDB4MTAsIDB4MTAsIDB4MTAsIDB4MTAsIDB4MTAsIDB4MTAsIDB4MTEsIDB4MTEsIDB4MTEsIDB4MTEsIDB4MTEsIDB4MTEsIDB4MTEsIDB4MTEsIDB4MTEsCiAgMHgxMQp9OwoKCi8qIGRpcmVjdGlvbjogZnJlcQogICBjb250ZW50cyA6IGNvZGV3b3JkcwogICByYXcgdGFibGU6IEh1ZmZDb2RlM0MubS9lbnZlbG9wZVBhbl8wMEYubWF0L3ZfbkJoZXgKICAgYnVpbHQgYnkgOiBGSCAwMS0wNS0xNSAqLwoKY29uc3QgSU5UIGJvb2tTYnJFbnZCYWxhbmNlQzEwRls0OV0gPQp7CiAgMHgwMDAzRkZFMiwgMHgwMDAzRkZFMywgMHgwMDAzRkZFNCwgMHgwMDAzRkZFNSwgMHgwMDAzRkZFNiwgMHgwMDAzRkZFNywgMHgwMDAzRkZFOCwgMHgwMDAzRkZFOSwKICAweDAwMDNGRkVBLCAweDAwMDNGRkVCLCAweDAwMDNGRkVDLCAweDAwMDNGRkVELCAweDAwMDNGRkVFLCAweDAwMDNGRkVGLCAweDAwMDNGRkYwLCAweDAwMDBGRkY3LAogIDB4MDAwMUZGRjAsIDB4MDAwMDNGRkMsIDB4MDAwMDA3RkUsIDB4MDAwMDA3RkMsIDB4MDAwMDAwRkUsIDB4MDAwMDAwN0UsIDB4MDAwMDAwMEUsIDB4MDAwMDAwMDIsCiAgMHgwMDAwMDAwMCwgMHgwMDAwMDAwNiwgMHgwMDAwMDAxRSwgMHgwMDAwMDAzRSwgMHgwMDAwMDFGRSwgMHgwMDAwMDdGRCwgMHgwMDAwMEZGRSwgMHgwMDAwN0ZGQSwKICAweDAwMDBGRkY2LCAweDAwMDNGRkYxLCAweDAwMDNGRkYyLCAweDAwMDNGRkYzLCAweDAwMDNGRkY0LCAweDAwMDNGRkY1LCAweDAwMDNGRkY2LCAweDAwMDNGRkY3LAogIDB4MDAwM0ZGRjgsIDB4MDAwM0ZGRjksIDB4MDAwM0ZGRkEsIDB4MDAwM0ZGRkIsIDB4MDAwM0ZGRkMsIDB4MDAwM0ZGRkQsIDB4MDAwM0ZGRkUsIDB4MDAwN0ZGRkUsCiAgMHgwMDA3RkZGRgp9OwoKCi8qIGRpcmVjdGlvbjogZnJlcQogICBjb250ZW50cyA6IGNvZGV3b3JkIGxlbmd0aHMKICAgcmF3IHRhYmxlOiBIdWZmQ29kZTNDLm0vZW52ZWxvcGVQYW5fMDBGLm1hdC92X25MaGV4CiAgIGJ1aWx0IGJ5IDogRkggMDEtMDUtMTUgKi8KCmNvbnN0IFVDSEFSIGJvb2tTYnJFbnZCYWxhbmNlTDEwRls0OV0gPQp7CiAgMHgxMiwgMHgxMiwgMHgxMiwgMHgxMiwgMHgxMiwgMHgxMiwgMHgxMiwgMHgxMiwgMHgxMiwgMHgxMiwgMHgxMiwgMHgxMiwgMHgxMiwgMHgxMiwgMHgxMiwgMHgxMCwKICAweDExLCAweDBFLCAweDBCLCAweDBCLCAweDA4LCAweDA3LCAweDA0LCAweDAyLCAweDAxLCAweDAzLCAweDA1LCAweDA2LCAweDA5LCAweDBCLCAweDBDLCAweDBGLAogIDB4MTAsIDB4MTIsIDB4MTIsIDB4MTIsIDB4MTIsIDB4MTIsIDB4MTIsIDB4MTIsIDB4MTIsIDB4MTIsIDB4MTIsIDB4MTIsIDB4MTIsIDB4MTIsIDB4MTIsIDB4MTMsCiAgMHgxMwp9OwoKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiB0YWJsZSAgICAgICA6IGVudmVsb3BlIGxldmVsLCAzLjAgZEIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogdGhlb3IgcmFuZ2UgOiBbLTI5LDI5XSwgQ09ERV9CT09LX1NDRl9MQVYgICA9IDI5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qIGltcGxlbSByYW5nZTogWy0zMSwzMV0sIENPREVfQk9PS19TQ0ZfTEFWMTEgPSAzMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKiByYXcgc3RhdHMgICA6IGVudmVsb3BlTGV2ZWxfMTEgIEtLIDAwLTAyLTAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgovKiBkaXJlY3Rpb246IHRpbWUKICAgY29udGVudHMgOiBjb2Rld29yZHMKICAgcmF3IHRhYmxlOiBIdWZmQ29kZTIubQogICBidWlsdCBieSA6IEZIIDAwLTAyLTA0ICovCgpjb25zdCBJTlQgdl9IdWZmX2VudmVsb3BlTGV2ZWxDMTFUWzYzXSA9IHsKICAweDAwMDNGRkVELCAweDAwMDNGRkVFLCAweDAwMDdGRkRFLCAweDAwMDdGRkRGLCAweDAwMDdGRkUwLCAweDAwMDdGRkUxLCAweDAwMDdGRkUyLCAweDAwMDdGRkUzLAogIDB4MDAwN0ZGRTQsIDB4MDAwN0ZGRTUsIDB4MDAwN0ZGRTYsIDB4MDAwN0ZGRTcsIDB4MDAwN0ZGRTgsIDB4MDAwN0ZGRTksIDB4MDAwN0ZGRUEsIDB4MDAwN0ZGRUIsCiAgMHgwMDA3RkZFQywgMHgwMDAxRkZGNCwgMHgwMDAwRkZGNywgMHgwMDAwRkZGOSwgMHgwMDAwRkZGOCwgMHgwMDAwM0ZGQiwgMHgwMDAwM0ZGQSwgMHgwMDAwM0ZGOCwKICAweDAwMDAxRkZBLCAweDAwMDAwRkZDLCAweDAwMDAwN0ZDLCAweDAwMDAwMEZFLCAweDAwMDAwMDNFLCAweDAwMDAwMDBFLCAweDAwMDAwMDAyLCAweDAwMDAwMDAwLAogIDB4MDAwMDAwMDYsIDB4MDAwMDAwMUUsIDB4MDAwMDAwN0UsIDB4MDAwMDAxRkUsIDB4MDAwMDA3RkQsIDB4MDAwMDFGRkIsIDB4MDAwMDNGRjksIDB4MDAwMDNGRkMsCiAgMHgwMDAwN0ZGQSwgMHgwMDAwRkZGNiwgMHgwMDAxRkZGNSwgMHgwMDAzRkZFQywgMHgwMDA3RkZFRCwgMHgwMDA3RkZFRSwgMHgwMDA3RkZFRiwgMHgwMDA3RkZGMCwKICAweDAwMDdGRkYxLCAweDAwMDdGRkYyLCAweDAwMDdGRkYzLCAweDAwMDdGRkY0LCAweDAwMDdGRkY1LCAweDAwMDdGRkY2LCAweDAwMDdGRkY3LCAweDAwMDdGRkY4LAogIDB4MDAwN0ZGRjksIDB4MDAwN0ZGRkEsIDB4MDAwN0ZGRkIsIDB4MDAwN0ZGRkMsIDB4MDAwN0ZGRkQsIDB4MDAwN0ZGRkUsIDB4MDAwN0ZGRkYKfTsKCgovKiBkaXJlY3Rpb246IHRpbWUKICAgY29udGVudHMgOiBjb2Rld29yZCBsZW5ndGhzCiAgIHJhdyB0YWJsZTogSHVmZkNvZGUyLm0KICAgYnVpbHQgYnkgOiBGSCAwMC0wMi0wNCAqLwoKY29uc3QgVUNIQVIgdl9IdWZmX2VudmVsb3BlTGV2ZWxMMTFUWzYzXSA9IHsKICAweDEyLCAweDEyLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLAogIDB4MTMsIDB4MTEsIDB4MTAsIDB4MTAsIDB4MTAsIDB4MEUsIDB4MEUsIDB4MEUsIDB4MEQsIDB4MEMsIDB4MEIsIDB4MDgsIDB4MDYsIDB4MDQsIDB4MDIsIDB4MDEsCiAgMHgwMywgMHgwNSwgMHgwNywgMHgwOSwgMHgwQiwgMHgwRCwgMHgwRSwgMHgwRSwgMHgwRiwgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxMywgMHgxMywgMHgxMywKICAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzLCAweDEzCn07CgoKLyogZGlyZWN0aW9uOiBmcmVxCiAgIGNvbnRlbnRzIDogY29kZXdvcmRzCiAgIHJhdyB0YWJsZTogSHVmZkNvZGUyLm0KICAgYnVpbHQgYnkgOiBGSCAwMC0wMi0wNCAqLwoKY29uc3QgSU5UIHZfSHVmZl9lbnZlbG9wZUxldmVsQzExRls2M10gPSB7CiAgMHgwMDBGRkZGMCwgMHgwMDBGRkZGMSwgMHgwMDBGRkZGMiwgMHgwMDBGRkZGMywgMHgwMDBGRkZGNCwgMHgwMDBGRkZGNSwgMHgwMDBGRkZGNiwgMHgwMDAzRkZGMywKICAweDAwMDdGRkY1LCAweDAwMDdGRkVFLCAweDAwMDdGRkVGLCAweDAwMDdGRkY2LCAweDAwMDNGRkY0LCAweDAwMDNGRkYyLCAweDAwMEZGRkY3LCAweDAwMDdGRkYwLAogIDB4MDAwMUZGRjUsIDB4MDAwM0ZGRjAsIDB4MDAwMUZGRjQsIDB4MDAwMEZGRjcsIDB4MDAwMEZGRjYsIDB4MDAwMDdGRjgsIDB4MDAwMDNGRkIsIDB4MDAwMDBGRkQsCiAgMHgwMDAwMDdGRCwgMHgwMDAwMDNGRCwgMHgwMDAwMDFGRCwgMHgwMDAwMDBGRCwgMHgwMDAwMDAzRSwgMHgwMDAwMDAwRSwgMHgwMDAwMDAwMiwgMHgwMDAwMDAwMCwKICAweDAwMDAwMDA2LCAweDAwMDAwMDFFLCAweDAwMDAwMEZDLCAweDAwMDAwMUZDLCAweDAwMDAwM0ZDLCAweDAwMDAwN0ZDLCAweDAwMDAwRkZDLCAweDAwMDAxRkZDLAogIDB4MDAwMDNGRkEsIDB4MDAwMDdGRjksIDB4MDAwMDdGRkEsIDB4MDAwMEZGRjgsIDB4MDAwMEZGRjksIDB4MDAwMUZGRjYsIDB4MDAwMUZGRjcsIDB4MDAwM0ZGRjUsCiAgMHgwMDAzRkZGNiwgMHgwMDAzRkZGMSwgMHgwMDBGRkZGOCwgMHgwMDA3RkZGMSwgMHgwMDA3RkZGMiwgMHgwMDA3RkZGMywgMHgwMDBGRkZGOSwgMHgwMDA3RkZGNywKICAweDAwMDdGRkY0LCAweDAwMEZGRkZBLCAweDAwMEZGRkZCLCAweDAwMEZGRkZDLCAweDAwMEZGRkZELCAweDAwMEZGRkZFLCAweDAwMEZGRkZGCn07CgoKLyogZGlyZWN0aW9uOiBmcmVxCiAgIGNvbnRlbnRzIDogY29kZXdvcmQgbGVuZ3RocwogICByYXcgdGFibGU6IEh1ZmZDb2RlMi5tCiAgIGJ1aWx0IGJ5IDogRkggMDAtMDItMDQgKi8KCmNvbnN0IFVDSEFSIHZfSHVmZl9lbnZlbG9wZUxldmVsTDExRls2M10gPSB7CiAgMHgxNCwgMHgxNCwgMHgxNCwgMHgxNCwgMHgxNCwgMHgxNCwgMHgxNCwgMHgxMiwgMHgxMywgMHgxMywgMHgxMywgMHgxMywgMHgxMiwgMHgxMiwgMHgxNCwgMHgxMywKICAweDExLCAweDEyLCAweDExLCAweDEwLCAweDEwLCAweDBGLCAweDBFLCAweDBDLCAweDBCLCAweDBBLCAweDA5LCAweDA4LCAweDA2LCAweDA0LCAweDAyLCAweDAxLAogIDB4MDMsIDB4MDUsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MEMsIDB4MEQsIDB4MEUsIDB4MEYsIDB4MEYsIDB4MTAsIDB4MTAsIDB4MTEsIDB4MTEsIDB4MTIsCiAgMHgxMiwgMHgxMiwgMHgxNCwgMHgxMywgMHgxMywgMHgxMywgMHgxNCwgMHgxMywgMHgxMywgMHgxNCwgMHgxNCwgMHgxNCwgMHgxNCwgMHgxNCwgMHgxNAp9OwoKCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogdGFibGUgICAgICAgOiBlbnZlbG9wZSBiYWxhbmNlLCAzLjAgZEIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qIHRoZW9yIHJhbmdlIDogWy0yNCwyNF0sIENPREVfQk9PS19TQ0ZfTEFWID0gMjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKiBpbXBsZW0gcmFuZ2U6IHNhbWUgYnV0IG1hcHBlZCB0byBbLTEyLDEyXSwgQ09ERV9CT09LX1NDRl9MQVZfQkFMQU5DRTExID0gMTIgKi8KLyogcmF3IHN0YXRzICAgOiBlbnZlbG9wZUJhbGFuY2VfMTEgIEtLIDAwLTAyLTAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLyogZGlyZWN0aW9uOiB0aW1lCiAgIGNvbnRlbnRzIDogY29kZXdvcmRzCiAgIHJhdyB0YWJsZTogSHVmZkNvZGUzQy5tL2VudmVsb3BlQmFsYW5jZV8xMVQubWF0L3ZfbkJoZXgKICAgYnVpbHQgYnkgOiBGSCAwMS0wNS0xNSAqLwoKY29uc3QgSU5UIGJvb2tTYnJFbnZCYWxhbmNlQzExVFsyNV0gPQp7CiAgMHgwMDAwMUZGMiwgMHgwMDAwMUZGMywgMHgwMDAwMUZGNCwgMHgwMDAwMUZGNSwgMHgwMDAwMUZGNiwgMHgwMDAwMUZGNywgMHgwMDAwMUZGOCwgMHgwMDAwMEZGOCwKICAweDAwMDAwMEZFLCAweDAwMDAwMDdFLCAweDAwMDAwMDBFLCAweDAwMDAwMDA2LCAweDAwMDAwMDAwLCAweDAwMDAwMDAyLCAweDAwMDAwMDFFLCAweDAwMDAwMDNFLAogIDB4MDAwMDAxRkUsIDB4MDAwMDFGRjksIDB4MDAwMDFGRkEsIDB4MDAwMDFGRkIsIDB4MDAwMDFGRkMsIDB4MDAwMDFGRkQsIDB4MDAwMDFGRkUsIDB4MDAwMDNGRkUsCiAgMHgwMDAwM0ZGRgp9OwoKCi8qIGRpcmVjdGlvbjogdGltZQogICBjb250ZW50cyA6IGNvZGV3b3JkIGxlbmd0aHMKICAgcmF3IHRhYmxlOiBIdWZmQ29kZTNDLm0vZW52ZWxvcGVCYWxhbmNlXzExVC5tYXQvdl9uTGhleAogICBidWlsdCBieSA6IEZIIDAxLTA1LTE1ICovCgpjb25zdCBVQ0hBUiBib29rU2JyRW52QmFsYW5jZUwxMVRbMjVdID0KewogIDB4MEQsIDB4MEQsIDB4MEQsIDB4MEQsIDB4MEQsIDB4MEQsIDB4MEQsIDB4MEMsIDB4MDgsIDB4MDcsIDB4MDQsIDB4MDMsIDB4MDEsIDB4MDIsIDB4MDUsIDB4MDYsCiAgMHgwOSwgMHgwRCwgMHgwRCwgMHgwRCwgMHgwRCwgMHgwRCwgMHgwRCwgMHgwRSwgMHgwRQp9OwoKCi8qIGRpcmVjdGlvbjogZnJlcQogICBjb250ZW50cyA6IGNvZGV3b3JkcwogICByYXcgdGFibGU6IEh1ZmZDb2RlM0MubS9lbnZlbG9wZUJhbGFuY2VfMTFGLm1hdC92X25CaGV4CiAgIGJ1aWx0IGJ5IDogRkggMDEtMDUtMTUgKi8KCmNvbnN0IElOVCBib29rU2JyRW52QmFsYW5jZUMxMUZbMjVdID0KewogIDB4MDAwMDFGRjcsIDB4MDAwMDFGRjgsIDB4MDAwMDFGRjksIDB4MDAwMDFGRkEsIDB4MDAwMDFGRkIsIDB4MDAwMDNGRjgsIDB4MDAwMDNGRjksIDB4MDAwMDA3RkMsCiAgMHgwMDAwMDBGRSwgMHgwMDAwMDA3RSwgMHgwMDAwMDAwRSwgMHgwMDAwMDAwMiwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwNiwgMHgwMDAwMDAxRSwgMHgwMDAwMDAzRSwKICAweDAwMDAwMUZFLCAweDAwMDAwRkZBLCAweDAwMDAxRkY2LCAweDAwMDAzRkZBLCAweDAwMDAzRkZCLCAweDAwMDAzRkZDLCAweDAwMDAzRkZELCAweDAwMDAzRkZFLAogIDB4MDAwMDNGRkYKfTsKCgovKiBkaXJlY3Rpb246IGZyZXEKICAgY29udGVudHMgOiBjb2Rld29yZCBsZW5ndGhzCiAgIHJhdyB0YWJsZTogSHVmZkNvZGUzQy5tL2VudmVsb3BlQmFsYW5jZV8xMUYubWF0L3ZfbkxoZXgKICAgYnVpbHQgYnkgOiBGSCAwMS0wNS0xNSAqLwoKY29uc3QgVUNIQVIgYm9va1NickVudkJhbGFuY2VMMTFGWzI1XSA9CnsKICAweDBELCAweDBELCAweDBELCAweDBELCAweDBELCAweDBFLCAweDBFLCAweDBCLCAweDA4LCAweDA3LCAweDA0LCAweDAyLCAweDAxLCAweDAzLCAweDA1LCAweDA2LAogIDB4MDksIDB4MEMsIDB4MEQsIDB4MEUsIDB4MEUsIDB4MEUsIDB4MEUsIDB4MEUsIDB4MEUKfTsKCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogdGFibGUgICAgICAgOiBub2lzZSBsZXZlbCwgMy4wIGRCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qIHRoZW9yIHJhbmdlIDogWy0yOSwyOV0sIENPREVfQk9PS19TQ0ZfTEFWICAgPSAyOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKiBpbXBsZW0gcmFuZ2U6IFstMzEsMzFdLCBDT0RFX0JPT0tfU0NGX0xBVjExID0gMzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogcmF3IHN0YXRzICAgOiBub2lzZUxldmVsXzExICBLSyAwMC0wMi0wMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLyogZGlyZWN0aW9uOiB0aW1lCiAgIGNvbnRlbnRzIDogY29kZXdvcmRzCiAgIHJhdyB0YWJsZTogSHVmZkNvZGUyLm0KICAgYnVpbHQgYnkgOiBGSCAwMC0wMi0wNCAqLwoKY29uc3QgSU5UIHZfSHVmZl9Ob2lzZUxldmVsQzExVFs2M10gPSB7CiAgMHgwMDAwMUZDRSwgMHgwMDAwMUZDRiwgMHgwMDAwMUZEMCwgMHgwMDAwMUZEMSwgMHgwMDAwMUZEMiwgMHgwMDAwMUZEMywgMHgwMDAwMUZENCwgMHgwMDAwMUZENSwKICAweDAwMDAxRkQ2LCAweDAwMDAxRkQ3LCAweDAwMDAxRkQ4LCAweDAwMDAxRkQ5LCAweDAwMDAxRkRBLCAweDAwMDAxRkRCLCAweDAwMDAxRkRDLCAweDAwMDAxRkRELAogIDB4MDAwMDFGREUsIDB4MDAwMDFGREYsIDB4MDAwMDFGRTAsIDB4MDAwMDFGRTEsIDB4MDAwMDFGRTIsIDB4MDAwMDFGRTMsIDB4MDAwMDFGRTQsIDB4MDAwMDFGRTUsCiAgMHgwMDAwMUZFNiwgMHgwMDAwMUZFNywgMHgwMDAwMDdGMiwgMHgwMDAwMDBGRCwgMHgwMDAwMDAzRSwgMHgwMDAwMDAwRSwgMHgwMDAwMDAwNiwgMHgwMDAwMDAwMCwKICAweDAwMDAwMDAyLCAweDAwMDAwMDFFLCAweDAwMDAwMEZDLCAweDAwMDAwM0Y4LCAweDAwMDAxRkNDLCAweDAwMDAxRkU4LCAweDAwMDAxRkU5LCAweDAwMDAxRkVBLAogIDB4MDAwMDFGRUIsIDB4MDAwMDFGRUMsIDB4MDAwMDFGQ0QsIDB4MDAwMDFGRUQsIDB4MDAwMDFGRUUsIDB4MDAwMDFGRUYsIDB4MDAwMDFGRjAsIDB4MDAwMDFGRjEsCiAgMHgwMDAwMUZGMiwgMHgwMDAwMUZGMywgMHgwMDAwMUZGNCwgMHgwMDAwMUZGNSwgMHgwMDAwMUZGNiwgMHgwMDAwMUZGNywgMHgwMDAwMUZGOCwgMHgwMDAwMUZGOSwKICAweDAwMDAxRkZBLCAweDAwMDAxRkZCLCAweDAwMDAxRkZDLCAweDAwMDAxRkZELCAweDAwMDAxRkZFLCAweDAwMDAzRkZFLCAweDAwMDAzRkZGCn07CgoKLyogZGlyZWN0aW9uOiB0aW1lCiAgIGNvbnRlbnRzIDogY29kZXdvcmQgbGVuZ3RocwogICByYXcgdGFibGU6IEh1ZmZDb2RlMi5tCiAgIGJ1aWx0IGJ5IDogRkggMDAtMDItMDQgKi8KCmNvbnN0IFVDSEFSIHZfSHVmZl9Ob2lzZUxldmVsTDExVFs2M10gPSB7CiAgMHgwMDAwMDAwRCwgMHgwMDAwMDAwRCwgMHgwMDAwMDAwRCwgMHgwMDAwMDAwRCwgMHgwMDAwMDAwRCwgMHgwMDAwMDAwRCwgMHgwMDAwMDAwRCwgMHgwMDAwMDAwRCwKICAweDAwMDAwMDBELCAweDAwMDAwMDBELCAweDAwMDAwMDBELCAweDAwMDAwMDBELCAweDAwMDAwMDBELCAweDAwMDAwMDBELCAweDAwMDAwMDBELCAweDAwMDAwMDBELAogIDB4MDAwMDAwMEQsIDB4MDAwMDAwMEQsIDB4MDAwMDAwMEQsIDB4MDAwMDAwMEQsIDB4MDAwMDAwMEQsIDB4MDAwMDAwMEQsIDB4MDAwMDAwMEQsIDB4MDAwMDAwMEQsCiAgMHgwMDAwMDAwRCwgMHgwMDAwMDAwRCwgMHgwMDAwMDAwQiwgMHgwMDAwMDAwOCwgMHgwMDAwMDAwNiwgMHgwMDAwMDAwNCwgMHgwMDAwMDAwMywgMHgwMDAwMDAwMSwKICAweDAwMDAwMDAyLCAweDAwMDAwMDA1LCAweDAwMDAwMDA4LCAweDAwMDAwMDBBLCAweDAwMDAwMDBELCAweDAwMDAwMDBELCAweDAwMDAwMDBELCAweDAwMDAwMDBELAogIDB4MDAwMDAwMEQsIDB4MDAwMDAwMEQsIDB4MDAwMDAwMEQsIDB4MDAwMDAwMEQsIDB4MDAwMDAwMEQsIDB4MDAwMDAwMEQsIDB4MDAwMDAwMEQsIDB4MDAwMDAwMEQsCiAgMHgwMDAwMDAwRCwgMHgwMDAwMDAwRCwgMHgwMDAwMDAwRCwgMHgwMDAwMDAwRCwgMHgwMDAwMDAwRCwgMHgwMDAwMDAwRCwgMHgwMDAwMDAwRCwgMHgwMDAwMDAwRCwKICAweDAwMDAwMDBELCAweDAwMDAwMDBELCAweDAwMDAwMDBELCAweDAwMDAwMDBELCAweDAwMDAwMDBELCAweDAwMDAwMDBFLCAweDAwMDAwMDBFCn07CgoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qIHRhYmxlICAgICAgIDogbm9pc2UgYmFsYW5jZSwgMy4wIGRCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKiB0aGVvciByYW5nZSA6IFstMjQsMjRdLCBDT0RFX0JPT0tfU0NGX0xBViA9IDI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogaW1wbGVtIHJhbmdlOiBzYW1lIGJ1dCBtYXBwZWQgdG8gWy0xMiwxMl0sIENPREVfQk9PS19TQ0ZfTEFWX0JBTEFOQ0UxMSA9IDEyICovCi8qIHJhdyBzdGF0cyAgIDogbm9pc2VCYWxhbmNlXzExICBLSyAwMC0wMi0wMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qIGRpcmVjdGlvbjogdGltZQogICBjb250ZW50cyA6IGNvZGV3b3JkcwogICByYXcgdGFibGU6IEh1ZmZDb2RlM0MubS9ub2lzZUJhbGFuY2VfMTEubWF0L3ZfbkJoZXgKICAgYnVpbHQgYnkgOiBGSCAwMS0wNS0xNSAqLwoKY29uc3QgSU5UIGJvb2tTYnJOb2lzZUJhbGFuY2VDMTFUWzI1XSA9CnsKICAweDAwMDAwMEVDLCAweDAwMDAwMEVELCAweDAwMDAwMEVFLCAweDAwMDAwMEVGLCAweDAwMDAwMEYwLCAweDAwMDAwMEYxLCAweDAwMDAwMEYyLCAweDAwMDAwMEYzLAogIDB4MDAwMDAwRjQsIDB4MDAwMDAwRjUsIDB4MDAwMDAwMUMsIDB4MDAwMDAwMDIsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDYsIDB4MDAwMDAwM0EsIDB4MDAwMDAwRjYsCiAgMHgwMDAwMDBGNywgMHgwMDAwMDBGOCwgMHgwMDAwMDBGOSwgMHgwMDAwMDBGQSwgMHgwMDAwMDBGQiwgMHgwMDAwMDBGQywgMHgwMDAwMDBGRCwgMHgwMDAwMDBGRSwKICAweDAwMDAwMEZGCn07CgoKLyogZGlyZWN0aW9uOiB0aW1lCiAgIGNvbnRlbnRzIDogY29kZXdvcmQgbGVuZ3RocwogICByYXcgdGFibGU6IEh1ZmZDb2RlM0MubS9ub2lzZUJhbGFuY2VfMTEubWF0L3ZfbkxoZXgKICAgYnVpbHQgYnkgOiBGSCAwMS0wNS0xNSAqLwoKY29uc3QgVUNIQVIgYm9va1Nick5vaXNlQmFsYW5jZUwxMVRbMjVdID0KewogIDB4MDgsIDB4MDgsIDB4MDgsIDB4MDgsIDB4MDgsIDB4MDgsIDB4MDgsIDB4MDgsIDB4MDgsIDB4MDgsIDB4MDUsIDB4MDIsIDB4MDEsIDB4MDMsIDB4MDYsIDB4MDgsCiAgMHgwOCwgMHgwOCwgMHgwOCwgMHgwOCwgMHgwOCwgMHgwOCwgMHgwOCwgMHgwOCwgMHgwOAp9OwoKLyoKICAgdHVuaW5nVGFibGUKKi8KY29uc3Qgc2JyVHVuaW5nVGFibGVfdCBzYnJUdW5pbmdUYWJsZVtdID0KewogIC8qIFNvbWUgb2YgdGhlIGxvdyBiaXRyYXRlcyBhcmUgY29tbWVudGVkIG91dCBoZXJlLCB0aGlzIGlzIGJlY2F1c2UgdGhlCiAgICAgZW5jb2RlciBjb3VsZCBsb3NlIGZyYW1lcyBhdCB0aG9zZSBiaXRyYXRlcyBhbmQgdGhyb3cgYW4gZXJyb3IgYmVjYXVzZQogICAgIGl0IGhhcyBpbnN1ZmZpY2llbnQgYml0cyB0byBlbmNvZGUgZm9yIHNvbWUgdGVzdCBpdGVtcy4KICAqLwoKICAvKioqIEhFLUFBQyBzZWN0aW9uICoqKi8KICAvKiAgICAgICAgICAgICAgICAgICAgICAgIHNmLHNmc3Asc2Ysc2ZzcCxubmIsbmZvLHNhbWwsU00sRlMqLwoKICAvKioqIG1vbm8gKioqLwoKICAvKiA4LzE2IGtIeiBkdWFsIHJhdGUgKi8KICB7IENPREVDX0FBQywgICA4MDAwLCAxMDAwMCwgICA4MDAwLCAxLCAgNywgNiwgMTEsMTAsIDEsIDAsIDYsIFNCUl9NT05PLCAzIH0sCiAgeyBDT0RFQ19BQUMsICAxMDAwMCwgMTIwMDAsICAgODAwMCwgMSwgMTEsIDcsIDEzLDEyLCAxLCAwLCA2LCBTQlJfTU9OTywgMyB9LAogIHsgQ09ERUNfQUFDLCAgMTIwMDAsIDE2MDAxLCAgIDgwMDAsIDEsIDE0LDEwLCAxMywxMywgMSwgMCwgNiwgU0JSX01PTk8sIDMgfSwKICB7IENPREVDX0FBQywgIDE2MDAwLCAyNDAwMCwgICA4MDAwLCAxLCAxNCwxMCwgMTQsMTQsIDIsIDAsIDMsIFNCUl9NT05PLCAyIH0sIC8qIHBsYWNlYm8gKi8KICB7IENPREVDX0FBQywgIDI0MDAwLCAzMjAwMCwgICA4MDAwLCAxLCAxNCwxMCwgMTQsMTQsIDIsIDAsIDMsIFNCUl9NT05PLCAyIH0sIC8qIHBsYWNlYm8gKi8KICB7IENPREVDX0FBQywgIDMyMDAwLCA0ODAwMSwgICA4MDAwLCAxLCAxNCwxMSwgMTUsMTUsIDIsIDAsIDMsIFNCUl9NT05PLCAyIH0sIC8qIHBsYWNlYm8gKi8gLyogYml0cmF0ZXMgaGlnaGVyIHRoYW4gNDgwMDAgbm90IHN1cHBvcnRlZCBieSBBQUMgY29yZSAqLwoKICAvKiAxMS8yMiBrSHogZHVhbCByYXRlICovCiAgeyBDT0RFQ19BQUMsICAgODAwMCwgMTAwMDAsICAxMTAyNSwgMSwgIDUsIDQsICA2LCA2LCAxLCAwLCA2LCBTQlJfTU9OTywgMyB9LAogIHsgQ09ERUNfQUFDLCAgMTAwMDAsIDEyMDAwLCAgMTEwMjUsIDEsICA4LCA1LCAxMiwgOSwgMSwgMCwgNiwgU0JSX01PTk8sIDMgfSwKICB7IENPREVDX0FBQywgIDEyMDAwLCAxNjAwMCwgIDExMDI1LCAxLCAxMiwgOCwgMTMsIDgsIDEsIDAsIDYsIFNCUl9NT05PLCAzIH0sCiAgeyBDT0RFQ19BQUMsICAxNjAwMCwgMjAwMDAsICAxMTAyNSwgMSwgMTIsIDgsIDEzLCA4LCAxLCAwLCA2LCBTQlJfTU9OTywgMyB9LCAvKiBhdCBzdWNoICJoaWdoIiBiaXRyYXRlcyBpdCdzIGJldHRlciB0byB1cHNhbXBsZSB0aGUgaW5wdXQgKi8KICB7IENPREVDX0FBQywgIDIwMDAwLCAyNDAwMSwgIDExMDI1LCAxLCAxMywgOSwgMTMsIDgsIDEsIDAsIDYsIFNCUl9NT05PLCAzIH0sIC8qIHNpZ25hbCBieSBhIGZhY3RvciBvZiAyIGJlZm9yZSBzZW5kaW5nIGl0IGludG8gdGhlIGVuY29kZXIgKi8KICB7IENPREVDX0FBQywgIDI0MDAwLCAzMjAwMCwgIDExMDI1LCAxLCAxNCwxMCwgMTQsIDksIDIsIDAsIDMsIFNCUl9NT05PLCAyIH0sIC8qIHBsYWNlYm8gKi8KICB7IENPREVDX0FBQywgIDMyMDAwLCA0ODAwMCwgIDExMDI1LCAxLCAxNSwxMSwgMTUsMTAsIDIsIDAsIDMsIFNCUl9NT05PLCAyIH0sIC8qIHBsYWNlYm8gKi8KICB7IENPREVDX0FBQywgIDQ4MDAwLCA2NDAwMSwgIDExMDI1LCAxLCAxNSwxMSwgMTUsMTAsIDIsIDAsIDMsIFNCUl9NT05PLCAxIH0sIC8qIHBsYWNlYm8gKi8KCiAgLyogMTIvMjQga0h6IGR1YWwgcmF0ZSAqLwogIHsgQ09ERUNfQUFDLCAgIDgwMDAsIDEwMDAwLCAgMTIwMDAsIDEsICA0LCAzLCAgNiwgNiwgMSwgMCwgNiwgU0JSX01PTk8sIDMgfSwgLyogbm9taW5hbDogIDgga2JpdC9zICovCiAgeyBDT0RFQ19BQUMsICAxMDAwMCwgMTIwMDAsICAxMjAwMCwgMSwgIDcsIDQsIDExLCA4LCAxLCAwLCA2LCBTQlJfTU9OTywgMyB9LCAvKiBub21pbmFsOiAxMCBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDEyMDAwLCAxNjAwMCwgIDEyMDAwLCAxLCAxMSwgNywgMTIsIDgsIDEsIDAsIDYsIFNCUl9NT05PLCAzIH0sIC8qIG5vbWluYWw6IDEyIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgMTYwMDAsIDIwMDAwLCAgMTIwMDAsIDEsIDExLCA3LCAxMiwgOCwgMSwgMCwgNiwgU0JSX01PTk8sIDMgfSwgLyogbm9taW5hbDogMTYga2JpdC9zICovIC8qIGF0IHN1Y2ggImhpZ2giIGJpdHJhdGVzIGl0J3MgYmV0dGVyIHRvIHVwc2FtcGxlIHRoZSBpbnB1dCAqLwogIHsgQ09ERUNfQUFDLCAgMjAwMDAsIDI0MDAxLCAgMTIwMDAsIDEsIDEyLCA4LCAxMiwgOCwgMSwgMCwgNiwgU0JSX01PTk8sIDMgfSwgLyogbm9taW5hbDogMjAga2JpdC9zICovIC8qIHNpZ25hbCBieSBhIGZhY3RvciBvZiAyIGJlZm9yZSBzZW5kaW5nIGl0IGludG8gdGhlIGVuY29kZXIgKi8KICB7IENPREVDX0FBQywgIDI0MDAwLCAzMjAwMCwgIDEyMDAwLCAxLCAxMywgOSwgMTMsIDksIDIsIDAsIDMsIFNCUl9NT05PLCAyIH0sIC8qIHBsYWNlYm8gKi8KICB7IENPREVDX0FBQywgIDMyMDAwLCA0ODAwMCwgIDEyMDAwLCAxLCAxNCwxMCwgMTQsMTAsIDIsIDAsIDMsIFNCUl9NT05PLCAyIH0sIC8qIHBsYWNlYm8gKi8KICB7IENPREVDX0FBQywgIDQ4MDAwLCA2NDAwMSwgIDEyMDAwLCAxLCAxNCwxMSwgMTUsMTEsIDIsIDAsIDMsIFNCUl9NT05PLCAxIH0sIC8qIHBsYWNlYm8gKi8KCiAgLyogMTYvMzIga0h6IGR1YWwgcmF0ZSAqLwogIHsgQ09ERUNfQUFDLCAgIDgwMDAsIDEwMDAwLCAgMTYwMDAsIDEsICAxLCAxLCAwLCAwLCAgMSwgMCwgNiwgU0JSX01PTk8sIDMgfSwgLyogbm9taW5hbDogIDgga2JpdC9zICovCiAgeyBDT0RFQ19BQUMsICAxMDAwMCwgMTIwMDAsICAxNjAwMCwgMSwgIDIsIDEsIDYsIDAsICAxLCAwLCA2LCBTQlJfTU9OTywgMyB9LCAvKiBub21pbmFsOiAxMCBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDEyMDAwLCAxNjAwMCwgIDE2MDAwLCAxLCAgNCwgMiwgNiwgMCwgIDEsIDAsIDYsIFNCUl9NT05PLCAzIH0sIC8qIG5vbWluYWw6IDEyIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgMTYwMDAsIDE4MDAwLCAgMTYwMDAsIDEsICA0LCAyLCA4LCAzLCAgMSwgMCwgNiwgU0JSX01PTk8sIDMgfSwgLyogbm9taW5hbDogMTYga2JpdC9zICovCiAgeyBDT0RFQ19BQUMsICAxODAwMCwgMjIwMDAsICAxNjAwMCwgMSwgIDYsIDUsMTEsIDcsICAyLCAwLCA2LCBTQlJfTU9OTywgMiB9LCAvKiBub21pbmFsOiAyMCBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDIyMDAwLCAyODAwMCwgIDE2MDAwLCAxLCAxMCwgOSwxMiwgOCwgIDIsIDAsIDYsIFNCUl9NT05PLCAyIH0sIC8qIG5vbWluYWw6IDI0IGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgMjgwMDAsIDM2MDAwLCAgMTYwMDAsIDEsIDEyLDEyLDEzLDEzLCAgMiwgMCwgMywgU0JSX01PTk8sIDIgfSwgLyogbm9taW5hbDogMzIga2JpdC9zICovCiAgeyBDT0RFQ19BQUMsICAzNjAwMCwgNDQwMDAsICAxNjAwMCwgMSwgMTQsMTQsMTMsMTMsICAyLCAwLCAzLCBTQlJfTU9OTywgMSB9LCAvKiBub21pbmFsOiA0MCBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDQ0MDAwLCA2NDAwMSwgIDE2MDAwLCAxLCAxNCwxNCwxMywxMywgIDIsIDAsIDMsIFNCUl9NT05PLCAxIH0sIC8qIG5vbWluYWw6IDQ4IGtiaXQvcyAqLwoKICAvKiAyMi4wNS80NC4xIGtIeiBkdWFsIHJhdGUgKi8KICAvKiB7IENPREVDX0FBQywgICA4MDAwLCAxMTM2OSwgIDIyMDUwLCAxLCAgMSwgMSwgMSwgMSwgIDEsIDAsIDYsIFNCUl9NT05PLCAzIH0sICovIC8qIG5vbWluYWw6ICA4IGtiaXQvcyAqLyAgIC8qIGVuY29kZXIgY2FuIG5vdCB3b3JrIHN0YWJsZSBhdCB0aGlzIGV4dHJlbWVseSBsb3cgYml0cmF0ZSAqLwogIHsgQ09ERUNfQUFDLCAgMTEzNjksIDE2MDAwLCAgMjIwNTAsIDEsICAzLCAxLCA0LCA0LCAgMSwgMCwgNiwgU0JSX01PTk8sIDMgfSwgLyogbm9taW5hbDogMTIga2JpdC9zICovCiAgeyBDT0RFQ19BQUMsICAxNjAwMCwgMTgwMDAsICAyMjA1MCwgMSwgIDMsIDEsIDUsIDQsICAxLCAwLCA2LCBTQlJfTU9OTywgMyB9LCAvKiBub21pbmFsOiAxNiBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDE4MDAwLCAyMjAwMCwgIDIyMDUwLCAxLCAgNCwgNCwgOCwgNSwgIDIsIDAsIDYsIFNCUl9NT05PLCAyIH0sIC8qIG5vbWluYWw6IDIwIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgMjIwMDAsIDI4MDAwLCAgMjIwNTAsIDEsICA3LCA2LCA4LCA2LCAgMiwgMCwgNiwgU0JSX01PTk8sIDIgfSwgLyogbm9taW5hbDogMjQga2JpdC9zICovCiAgeyBDT0RFQ19BQUMsICAyODAwMCwgMzYwMDAsICAyMjA1MCwgMSwgMTAsMTAsIDksIDksICAyLCAwLCAzLCBTQlJfTU9OTywgMiB9LCAvKiBub21pbmFsOiAzMiBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDM2MDAwLCA0NDAwMCwgIDIyMDUwLCAxLCAxMSwxMSwxMCwxMCwgIDIsIDAsIDMsIFNCUl9NT05PLCAxIH0sIC8qIG5vbWluYWw6IDQwIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgNDQwMDAsIDY0MDAxLCAgMjIwNTAsIDEsIDEzLDEzLDEyLDEyLCAgMiwgMCwgMywgU0JSX01PTk8sIDEgfSwgLyogbm9taW5hbDogNDgga2JpdC9zICovCgogIC8qIDI0LzQ4IGtIeiBkdWFsIHJhdGUgKi8KICAvKiB7IENPREVDX0FBQywgICA4MDAwLCAxMjAwMCwgIDI0MDAwLCAxLCAgMSwgMSwgMSwgMSwgIDEsIDAsIDYsIFNCUl9NT05PLCAzIH0sICovIC8qIG5vbWluYWw6ICA4IGtiaXQvcyAqLyAgIC8qIGVuY29kZXIgY2FuIG5vdCB3b3JrIHN0YWJsZSBhdCB0aGlzIGV4dHJlbWVseSBsb3cgYml0cmF0ZSAqLwogIHsgQ09ERUNfQUFDLCAgMTIwMDAsIDE2MDAwLCAgMjQwMDAsIDEsICAzLCAxLCA0LCA0LCAgMSwgMCwgNiwgU0JSX01PTk8sIDMgfSwgLyogbm9taW5hbDogMTIga2JpdC9zICovCiAgeyBDT0RFQ19BQUMsICAxNjAwMCwgMTgwMDAsICAyNDAwMCwgMSwgIDMsIDEsIDUsIDQsICAxLCAwLCA2LCBTQlJfTU9OTywgMyB9LCAvKiBub21pbmFsOiAxNiBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDE4MDAwLCAyMjAwMCwgIDI0MDAwLCAxLCAgNCwgMywgOCwgNSwgIDIsIDAsIDYsIFNCUl9NT05PLCAyIH0sIC8qIG5vbWluYWw6IDIwIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgMjIwMDAsIDI4MDAwLCAgMjQwMDAsIDEsICA3LCA2LCA4LCA2LCAgMiwgMCwgNiwgU0JSX01PTk8sIDIgfSwgLyogbm9taW5hbDogMjQga2JpdC9zICovCiAgeyBDT0RFQ19BQUMsICAyODAwMCwgMzYwMDAsICAyNDAwMCwgMSwgMTAsMTAsIDksIDksICAyLCAwLCAzLCBTQlJfTU9OTywgMiB9LCAvKiBub21pbmFsOiAzMiBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDM2MDAwLCA0NDAwMCwgIDI0MDAwLCAxLCAxMSwxMSwxMCwxMCwgIDIsIDAsIDMsIFNCUl9NT05PLCAxIH0sIC8qIG5vbWluYWw6IDQwIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgNDQwMDAsIDY0MDAxLCAgMjQwMDAsIDEsIDEzLDEzLDExLDExLCAgMiwgMCwgMywgU0JSX01PTk8sIDEgfSwgLyogbm9taW5hbDogNDgga2JpdC9zICovCgogIC8qIDMyLzY0IGtIeiBkdWFsIHJhdGUgKi8gIC8qIHBsYWNlYm8gc2V0dGluZ3MgKi8KICB7IENPREVDX0FBQywgICAyNDAwMCwgMzYwMDAsIDMyMDAwLCAxLCAgNCwgNCwgNCwgNCwgIDIsIDAsIDMsIFNCUl9NT05PLCAzIH0sIC8qIGxvd2VzdCByYW5nZSAgKi8KICB7IENPREVDX0FBQywgICAzNjAwMCwgNjAwMDAsIDMyMDAwLCAxLCAgNywgNywgNiwgNiwgIDIsIDAsIDMsIFNCUl9NT05PLCAyIH0sIC8qIGxvd2VzdCByYW5nZSAqLwogIHsgQ09ERUNfQUFDLCAgIDYwMDAwLCA3MjAwMCwgMzIwMDAsIDEsICA5LCA5LCA4LCA4LCAgMiwgMCwgMywgU0JSX01PTk8sIDEgfSwgLyogbG93IHJhbmdlICovCiAgeyBDT0RFQ19BQUMsICAgNzIwMDAsMTAwMDAwLCAzMjAwMCwgMSwgMTEsMTEsMTAsMTAsICAyLCAwLCAzLCBTQlJfTU9OTywgMSB9LCAvKiBTQlIgc3dlZXQgc3BvdCAqLwogIHsgQ09ERUNfQUFDLCAgMTAwMDAwLDE2MDAwMSwgMzIwMDAsIDEsIDEzLDEzLDExLDExLCAgMiwgMCwgMywgU0JSX01PTk8sIDEgfSwgLyogYmFja3dhcmRzIGNvbXBhdGlibGUgKi8KCiAgLyogNDQuMS84OC4yIGtIeiBkdWFsIHJhdGUgKi8gIC8qIHBsYWNlYm8gc2V0dGluZ3MgKi8KICB7IENPREVDX0FBQywgICAyNDAwMCwgMzYwMDAsIDQ0MTAwLCAxLCAgNCwgNCwgNCwgNCwgIDIsIDAsIDMsIFNCUl9NT05PLCAzIH0sIC8qIGxvd2VzdCByYW5nZSAobXVsdGljaGFubmVsIHJlYXIpICovCiAgeyBDT0RFQ19BQUMsICAgMzYwMDAsIDYwMDAwLCA0NDEwMCwgMSwgIDcsIDcsIDYsIDYsICAyLCAwLCAzLCBTQlJfTU9OTywgMiB9LCAvKiBsb3dlc3QgcmFuZ2UgKG11bHRpY2hhbm5lbCByZWFyKSAqLwogIHsgQ09ERUNfQUFDLCAgIDYwMDAwLCA3MjAwMCwgNDQxMDAsIDEsICA5LCA5LCA4LCA4LCAgMiwgMCwgMywgU0JSX01PTk8sIDEgfSwgLyogbG93IHJhbmdlICovCiAgeyBDT0RFQ19BQUMsICAgNzIwMDAsMTAwMDAwLCA0NDEwMCwgMSwgMTEsMTEsMTAsMTAsICAyLCAwLCAzLCBTQlJfTU9OTywgMSB9LCAvKiBTQlIgc3dlZXQgc3BvdCAqLwogIHsgQ09ERUNfQUFDLCAgMTAwMDAwLDE2MDAwMSwgNDQxMDAsIDEsIDEzLDEzLDExLDExLCAgMiwgMCwgMywgU0JSX01PTk8sIDEgfSwgLyogYmFja3dhcmRzIGNvbXBhdGlibGUgKi8KCiAgLyogNDgvOTYga0h6IGR1YWwgcmF0ZSAqLyAgLyogbm90IHlldCBmaW5hbGx5IHR1bmVkICovCiAgeyBDT0RFQ19BQUMsICAgMzIwMDAsIDM2MDAwLCA0ODAwMCwgMSwgIDQsIDQsIDksIDksICAyLCAwLCAzLCBTQlJfTU9OTywgMyB9LCAvKiBsb3dlc3QgcmFuZ2UgKG11bHRpY2hhbm5lbCByZWFyKSAqLwogIHsgQ09ERUNfQUFDLCAgIDM2MDAwLCA2MDAwMCwgNDgwMDAsIDEsICA3LCA3LDEwLDEwLCAgMiwgMCwgMywgU0JSX01PTk8sIDIgfSwgLyogbm9taW5hbDogNDAgKi8KICB7IENPREVDX0FBQywgICA2MDAwMCwgNzIwMDAsIDQ4MDAwLCAxLCAgOSwgOSwxMCwxMCwgIDIsIDAsIDMsIFNCUl9NT05PLCAxIH0sIC8qIG5vbWluYWw6IDY0ICovCiAgeyBDT0RFQ19BQUMsICAgNzIwMDAsMTAwMDAwLCA0ODAwMCwgMSwgMTEsMTEsMTEsMTEsICAyLCAwLCAzLCBTQlJfTU9OTywgMSB9LCAvKiBub21pbmFsOiA4MCAqLwogIHsgQ09ERUNfQUFDLCAgMTAwMDAwLDE2MDAwMSwgNDgwMDAsIDEsIDEzLDEzLDExLDExLCAgMiwgMCwgMywgU0JSX01PTk8sIDEgfSwgLyogbm9taW5hbDogMTI4ICovCgogIC8qKiogc3RlcmVvICoqKi8KICAvKiAwOC8xNiBrSHogZHVhbCByYXRlICovCiAgeyBDT0RFQ19BQUMsICAxNjAwMCwgMjQwMDAsICAgODAwMCwgMiwgIDYsIDYsICA5LCA3LCAxLCAwLC0zLCBTQlJfU1dJVENIX0xSQywgMyB9LCAvKiBub21pbmFsOiAyMCBrYml0L3MgKi8gLyogcGxhY2VibyAqLwogIHsgQ09ERUNfQUFDLCAgMjQwMDAsIDI4MDAwLCAgIDgwMDAsIDIsICA5LCA5LCAxMSwgOSwgMSwgMCwtMywgU0JSX1NXSVRDSF9MUkMsIDMgfSwgLyogbm9taW5hbDogMjQga2JpdC9zICovCiAgeyBDT0RFQ19BQUMsICAyODAwMCwgMzYwMDAsICAgODAwMCwgMiwgMTEsIDksIDExLCA5LCAyLCAwLC0zLCBTQlJfU1dJVENIX0xSQywgMiB9LCAvKiBub21pbmFsOiAzMiBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDM2MDAwLCA0NDAwMCwgICA4MDAwLCAyLCAxMywxMSwgMTMsMTEsIDIsIDAsLTMsIFNCUl9TV0lUQ0hfTFJDLCAyIH0sIC8qIG5vbWluYWw6IDQwIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgNDQwMDAsIDUyMDAwLCAgIDgwMDAsIDIsIDE0LDEyLCAxMywxMiwgMiwgMCwtMywgU0JSX1NXSVRDSF9MUkMsIDIgfSwgLyogbm9taW5hbDogNDgga2JpdC9zICovCiAgeyBDT0RFQ19BQUMsICA1MjAwMCwgNjAwMDAsICAgODAwMCwgMiwgMTQsMTQsIDEzLDEzLCAzLCAwLC0zLCBTQlJfU1dJVENIX0xSQywgMSB9LCAvKiBub21pbmFsOiA1NiBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDYwMDAwLCA3NjAwMCwgICA4MDAwLCAyLCAxNCwxNCwgMTMsMTMsIDMsIDAsLTMsIFNCUl9MRUZUX1JJR0hULCAxIH0sIC8qIG5vbWluYWw6IDY0IGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgNzYwMDAsMTI4MDAxLCAgIDgwMDAsIDIsIDE0LDE0LCAxMywxMywgMywgMCwtMywgU0JSX0xFRlRfUklHSFQsIDEgfSwgLyogbm9taW5hbDogODAga2JpdC9zICovCgogIC8qIDExLzIyIGtIeiBkdWFsIHJhdGUgKi8KICB7IENPREVDX0FBQywgIDE2MDAwLCAyNDAwMCwgIDExMDI1LCAyLCAgNywgNSwgOSwgNywgIDEsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMyB9LCAvKiBub21pbmFsOiAyMCBrYml0L3MgKi8gLyogcGxhY2VibyAqLwogIHsgQ09ERUNfQUFDLCAgMjQwMDAsIDI4MDAwLCAgMTEwMjUsIDIsIDEwLCA4LDEwLCA4LCAgMSwgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAzIH0sIC8qIG5vbWluYWw6IDI0IGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgMjgwMDAsIDM2MDAwLCAgMTEwMjUsIDIsIDEyLCA4LDEyLCA4LCAgMiwgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAyIH0sIC8qIG5vbWluYWw6IDMyIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgMzYwMDAsIDQ0MDAwLCAgMTEwMjUsIDIsIDEzLCA5LDEzLCA5LCAgMiwgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAyIH0sIC8qIG5vbWluYWw6IDQwIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgNDQwMDAsIDUyMDAwLCAgMTEwMjUsIDIsIDE0LDExLDEzLDExLCAgMiwgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAyIH0sIC8qIG5vbWluYWw6IDQ4IGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgNTIwMDAsIDYwMDAwLCAgMTEwMjUsIDIsIDE1LDE1LDEzLDEzLCAgMywgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAxIH0sIC8qIG5vbWluYWw6IDU2IGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgNjAwMDAsIDc2MDAwLCAgMTEwMjUsIDIsIDE1LDE1LDEzLDEzLCAgMywgMCwgLTMsIFNCUl9MRUZUX1JJR0hULCAxIH0sIC8qIG5vbWluYWw6IDY0IGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgNzYwMDAsMTI4MDAxLCAgMTEwMjUsIDIsIDE1LDE1LDEzLDEzLCAgMywgMCwgLTMsIFNCUl9MRUZUX1JJR0hULCAxIH0sIC8qIG5vbWluYWw6IDgwIGtiaXQvcyAqLwoKICAvKiAxMi8yNCBrSHogZHVhbCByYXRlICovCiAgeyBDT0RFQ19BQUMsICAxNjAwMCwgMjQwMDAsICAxMjAwMCwgMiwgIDYsIDQsIDksIDcsICAxLCAwLCAtMywgU0JSX1NXSVRDSF9MUkMsIDMgfSwgLyogbm9taW5hbDogMjAga2JpdC9zICovIC8qIHBsYWNlYm8gKi8KICB7IENPREVDX0FBQywgIDI0MDAwLCAyODAwMCwgIDEyMDAwLCAyLCAgOSwgNywxMCwgOCwgIDEsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMyB9LCAvKiBub21pbmFsOiAyNCBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDI4MDAwLCAzNjAwMCwgIDEyMDAwLCAyLCAxMSwgNywxMiwgOCwgIDIsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMiB9LCAvKiBub21pbmFsOiAzMiBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDM2MDAwLCA0NDAwMCwgIDEyMDAwLCAyLCAxMiwgOSwxMiwgOSwgIDIsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMiB9LCAvKiBub21pbmFsOiA0MCBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDQ0MDAwLCA1MjAwMCwgIDEyMDAwLCAyLCAxMywxMiwxMywxMiwgIDIsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMiB9LCAvKiBub21pbmFsOiA0OCBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDUyMDAwLCA2MDAwMCwgIDEyMDAwLCAyLCAxNCwxNCwxMywxMywgIDMsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMSB9LCAvKiBub21pbmFsOiA1NiBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDYwMDAwLCA3NjAwMCwgIDEyMDAwLCAyLCAxNCwxNCwxMywxMywgIDMsIDAsIC0zLCBTQlJfTEVGVF9SSUdIVCwgMSB9LCAvKiBub21pbmFsOiA2NCBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDc2MDAwLDEyODAwMSwgIDEyMDAwLCAyLCAxNCwxNCwxMywxMywgIDMsIDAsIC0zLCBTQlJfTEVGVF9SSUdIVCwgMSB9LCAvKiBub21pbmFsOiA4MCBrYml0L3MgKi8KCiAgLyogMTYvMzIga0h6IGR1YWwgcmF0ZSAqLwogIHsgQ09ERUNfQUFDLCAgMTYwMDAsIDI0MDAwLCAgMTYwMDAsIDIsICA0LCAyLCAxLCAwLCAgMSwgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAzIH0sIC8qIG5vbWluYWw6IDIwIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgMjQwMDAsIDI4MDAwLCAgMTYwMDAsIDIsICA4LCA3LDEwLCA4LCAgMSwgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAzIH0sIC8qIG5vbWluYWw6IDI0IGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgMjgwMDAsIDM2MDAwLCAgMTYwMDAsIDIsIDEwLCA5LDEyLDExLCAgMiwgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAyIH0sIC8qIG5vbWluYWw6IDMyIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgMzYwMDAsIDQ0MDAwLCAgMTYwMDAsIDIsIDEzLDEzLDEzLDEzLCAgMiwgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAyIH0sIC8qIG5vbWluYWw6IDQwIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgNDQwMDAsIDUyMDAwLCAgMTYwMDAsIDIsIDE0LDE0LDEzLDEzLCAgMiwgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAyIH0sIC8qIG5vbWluYWw6IDQ4IGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgNTIwMDAsIDYwMDAwLCAgMTYwMDAsIDIsIDE0LDE0LDEzLDEzLCAgMywgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAxIH0sIC8qIG5vbWluYWw6IDU2IGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgNjAwMDAsIDc2MDAwLCAgMTYwMDAsIDIsIDE0LDE0LDEzLDEzLCAgMywgMCwgLTMsIFNCUl9MRUZUX1JJR0hULCAxIH0sIC8qIG5vbWluYWw6IDY0IGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgNzYwMDAsMTI4MDAxLCAgMTYwMDAsIDIsIDE0LDE0LDEzLDEzLCAgMywgMCwgLTMsIFNCUl9MRUZUX1JJR0hULCAxIH0sIC8qIG5vbWluYWw6IDgwIGtiaXQvcyAqLwoKICAvKiAyMi4wNS80NC4xIGtIeiBkdWFsIHJhdGUgKi8KICB7IENPREVDX0FBQywgIDE2MDAwLCAyNDAwMCwgIDIyMDUwLCAyLCAgMiwgMSwgMSwgMCwgIDEsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMyB9LCAvKiBub21pbmFsOiAyMCBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDI0MDAwLCAyODAwMCwgIDIyMDUwLCAyLCAgNSwgNCwgNiwgNSwgIDEsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMyB9LCAvKiBub21pbmFsOiAyNCBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDI4MDAwLCAzMjAwMCwgIDIyMDUwLCAyLCAgNSwgNCwgOCwgNywgIDIsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMiB9LCAvKiBub21pbmFsOiAyOCBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDMyMDAwLCAzNjAwMCwgIDIyMDUwLCAyLCAgNywgNiwgOCwgNywgIDIsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMiB9LCAvKiBub21pbmFsOiAzMiBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDM2MDAwLCA0NDAwMCwgIDIyMDUwLCAyLCAxMCwxMCwgOSwgOSwgIDIsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMiB9LCAvKiBub21pbmFsOiA0MCBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDQ0MDAwLCA1MjAwMCwgIDIyMDUwLCAyLCAxMiwxMiwgOSwgOSwgIDMsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMiB9LCAvKiBub21pbmFsOiA0OCBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDUyMDAwLCA2MDAwMCwgIDIyMDUwLCAyLCAxMywxMywxMCwxMCwgIDMsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMSB9LCAvKiBub21pbmFsOiA1NiBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDYwMDAwLCA3NjAwMCwgIDIyMDUwLCAyLCAxNCwxNCwxMiwxMiwgIDMsIDAsIC0zLCBTQlJfTEVGVF9SSUdIVCwgMSB9LCAvKiBub21pbmFsOiA2NCBrYml0L3MgKi8KICB7IENPREVDX0FBQywgIDc2MDAwLDEyODAwMSwgIDIyMDUwLCAyLCAxNCwxNCwxMiwxMiwgIDMsIDAsIC0zLCBTQlJfTEVGVF9SSUdIVCwgMSB9LCAvKiBub21pbmFsOiA4MCBrYml0L3MgKi8KCiAgLyogMjQvNDgga0h6IGR1YWwgcmF0ZSAqLwogIHsgQ09ERUNfQUFDLCAgMTYwMDAsIDI0MDAwLCAgMjQwMDAsIDIsICAyLCAxLCAxLCAwLCAgMSwgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAzIH0sIC8qIG5vbWluYWw6IDIwIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgMjQwMDAsIDI4MDAwLCAgMjQwMDAsIDIsICA1LCA1LCA2LCA2LCAgMSwgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAzIH0sIC8qIG5vbWluYWw6IDI0IGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgMjgwMDAsIDM2MDAwLCAgMjQwMDAsIDIsICA3LCA2LCA4LCA3LCAgMiwgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAyIH0sIC8qIG5vbWluYWw6IDMyIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgMzYwMDAsIDQ0MDAwLCAgMjQwMDAsIDIsIDEwLDEwLCA5LCA5LCAgMiwgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAyIH0sIC8qIG5vbWluYWw6IDQwIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgNDQwMDAsIDUyMDAwLCAgMjQwMDAsIDIsIDEyLDEyLCA5LCA5LCAgMywgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAyIH0sIC8qIG5vbWluYWw6IDQ4IGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgNTIwMDAsIDYwMDAwLCAgMjQwMDAsIDIsIDEzLDEzLDEwLDEwLCAgMywgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAxIH0sIC8qIG5vbWluYWw6IDU2IGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgNjAwMDAsIDc2MDAwLCAgMjQwMDAsIDIsIDE0LDE0LDEyLDEyLCAgMywgMCwgLTMsIFNCUl9MRUZUX1JJR0hULCAxIH0sIC8qIG5vbWluYWw6IDY0IGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDLCAgNzYwMDAsMTI4MDAxLCAgMjQwMDAsIDIsIDE0LDE0LDEyLDEyLCAgMywgMCwgLTMsIFNCUl9MRUZUX1JJR0hULCAxIH0sIC8qIG5vbWluYWw6IDgwIGtiaXQvcyAqLwoKICAvKiAzMi82NCBrSHogZHVhbCByYXRlICovICAvKiBwbGFjZWJvIHNldHRpbmdzICovCiAgeyBDT0RFQ19BQUMsICAgMzIwMDAsIDYwMDAwLCAzMjAwMCwgMiwgIDQsIDQsIDQsIDQsICAyLCAwLCAtMywgU0JSX1NXSVRDSF9MUkMsIDMgfSwgLyogbG93ZXN0IHJhbmdlIChtdWx0aWNoYW5uZWwgcmVhcikgKi8KICB7IENPREVDX0FBQywgICA2MDAwMCwgODAwMDAsIDMyMDAwLCAyLCAgNywgNywgNiwgNiwgIDMsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMiB9LCAvKiBsb3dlc3QgcmFuZ2UgKG11bHRpY2hhbm5lbCByZWFyKSAqLwogIHsgQ09ERUNfQUFDLCAgIDgwMDAwLDExMjAwMCwgMzIwMDAsIDIsICA5LCA5LCA4LCA4LCAgMywgMCwgLTMsIFNCUl9MRUZUX1JJR0hULCAxIH0sIC8qIGxvdyByYW5nZSAqLwogIHsgQ09ERUNfQUFDLCAgMTEyMDAwLDE0NDAwMCwgMzIwMDAsIDIsIDExLDExLDEwLDEwLCAgMywgMCwgLTMsIFNCUl9MRUZUX1JJR0hULCAxIH0sIC8qIFNCUiBzd2VldCBzcG90ICovCiAgeyBDT0RFQ19BQUMsICAxNDQwMDAsMjU2MDAxLCAzMjAwMCwgMiwgMTMsMTMsMTEsMTEsICAzLCAwLCAtMywgU0JSX0xFRlRfUklHSFQsIDEgfSwgLyogYmFja3dhcmRzIGNvbXBhdGlibGUgKi8KCiAgLyogNDQuMS84OC4yIGtIeiBkdWFsIHJhdGUgKi8gIC8qIHBsYWNlYm8gc2V0dGluZ3MgKi8KICB7IENPREVDX0FBQywgICAzMjAwMCwgNjAwMDAsIDQ0MTAwLCAyLCAgNCwgNCwgNCwgNCwgIDIsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMyB9LCAvKiBsb3dlc3QgcmFuZ2UgKG11bHRpY2hhbm5lbCByZWFyKSAqLwogIHsgQ09ERUNfQUFDLCAgIDYwMDAwLCA4MDAwMCwgNDQxMDAsIDIsICA3LCA3LCA2LCA2LCAgMywgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAyIH0sIC8qIGxvd2VzdCByYW5nZSAobXVsdGljaGFubmVsIHJlYXIpICovCiAgeyBDT0RFQ19BQUMsICAgODAwMDAsMTEyMDAwLCA0NDEwMCwgMiwgIDksIDksIDgsIDgsICAzLCAwLCAtMywgU0JSX0xFRlRfUklHSFQsIDEgfSwgLyogbG93IHJhbmdlICovCiAgeyBDT0RFQ19BQUMsICAxMTIwMDAsMTQ0MDAwLCA0NDEwMCwgMiwgMTEsMTEsMTAsMTAsICAzLCAwLCAtMywgU0JSX0xFRlRfUklHSFQsIDEgfSwgLyogU0JSIHN3ZWV0IHNwb3QgKi8KICB7IENPREVDX0FBQywgIDE0NDAwMCwyNTYwMDEsIDQ0MTAwLCAyLCAxMywxMywxMSwxMSwgIDMsIDAsIC0zLCBTQlJfTEVGVF9SSUdIVCwgMSB9LCAvKiBiYWNrd2FyZHMgY29tcGF0aWJsZSAqLwoKICAvKiA0OC85NiBrSHogZHVhbCByYXRlICovICAvKiBub3QgeWV0IGZpbmFsbHkgdHVuZWQgKi8KICB7IENPREVDX0FBQywgICAzNjAwMCwgNjAwMDAsIDQ4MDAwLCAyLCAgNCwgNCwgOSwgOSwgIDIsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMyB9LCAvKiBsb3dlc3QgcmFuZ2UgKG11bHRpY2hhbm5lbCByZWFyKSAqLwogIHsgQ09ERUNfQUFDLCAgIDYwMDAwLCA4MDAwMCwgNDgwMDAsIDIsICA3LCA3LCA5LCA5LCAgMywgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAyIH0sIC8qIG5vbWluYWw6IDY0ICovCiAgeyBDT0RFQ19BQUMsICAgODAwMDAsMTEyMDAwLCA0ODAwMCwgMiwgIDksIDksMTAsMTAsICAzLCAwLCAtMywgU0JSX0xFRlRfUklHSFQsIDEgfSwgLyogbm9taW5hbDogOTYgKi8KICB7IENPREVDX0FBQywgIDExMjAwMCwxNDQwMDAsIDQ4MDAwLCAyLCAxMSwxMSwxMSwxMSwgIDMsIDAsIC0zLCBTQlJfTEVGVF9SSUdIVCwgMSB9LCAvKiBub21pbmFsOiAxMjggKi8KICB7IENPREVDX0FBQywgIDE0NDAwMCwyNTYwMDEsIDQ4MDAwLCAyLCAxMywxMywxMSwxMSwgIDMsIDAsIC0zLCBTQlJfTEVGVF9SSUdIVCwgMSB9LCAvKiBub21pbmFsOiAxOTIgKi8KCgogIC8qKiBBQUMgTE9XIERFTEFZIFNFQ1RJT04gKiovCgogIC8qKiogbW9ubyAqKiovCiAgLyogMTYvMzIga0h6IGR1YWwgcmF0ZSBub3QgeWV0IHR1bmVkIC0+YWxiIGNvcGllZCBmcm9tIG5vbiBMRCB0YWJsZXMqLwogIHsgQ09ERUNfQUFDTEQsICAxNjAwMCwgMTgwMDAsICAxNjAwMCwgMSwgIDQsIDUsIDksIDcsICAxLCAwLCA2LCBTQlJfTU9OTywgMyB9LCAvKiBub21pbmFsOiAxNiBrYml0L3Mgd3JyOiB0dW5lZCAqLwogIHsgQ09ERUNfQUFDTEQsICAxODAwMCwgMjIwMDAsICAxNjAwMCwgMSwgIDcsIDcsMTIsMTIsICAxLCA2LCA5LCBTQlJfTU9OTywgMyB9LCAvKiBub21pbmFsOiAyMCBrYml0L3Mgd3JyOiB0dW5lZCAqLwogIHsgQ09ERUNfQUFDTEQsICAyMjAwMCwgMjgwMDAsICAxNjAwMCwgMSwgIDYsIDYsIDksIDksICAyLCAzLCA2LCBTQlJfTU9OTywgMyB9LCAvKiBub21pbmFsOiAyNCBrYml0L3Mgd3JyOiB0dW5lZCAqLwogIHsgQ09ERUNfQUFDTEQsICAyODAwMCwgMzYwMDAsICAxNjAwMCwgMSwgIDgsIDgsMTIsIDcsICAyLCA5LDEyLCBTQlJfTU9OTywgMyB9LCAvKiBqZ3I6IHNwZWNpYWwgKi8gLyogd3JyOiB0dW5lZCAqLwogIHsgQ09ERUNfQUFDTEQsICAzNjAwMCwgNDQwMDAsICAxNjAwMCwgMSwgMTAsMTQsMTIsMTMsICAyLCAwLCAzLCBTQlJfTU9OTywgMSB9LCAvKiBub21pbmFsOiA0MCBrYml0L3MgKi8KICB7IENPREVDX0FBQ0xELCAgNDQwMDAsIDY0MDAxLCAgMTYwMDAsIDEsIDExLDE0LDEzLDEzLCAgMiwgMCwgMywgU0JSX01PTk8sIDEgfSwgLyogbm9taW5hbDogNDgga2JpdC9zICovCgogIC8qIDIyLjA1LzQ0LjEga0h6IGR1YWwgcmF0ZSAqLwogIHsgQ09ERUNfQUFDTEQsICAxODAwMCwgMjIwMDAsICAyMjA1MCwgMSwgIDQsIDQsIDUsIDUsICAyLCAwLCA2LCBTQlJfTU9OTywgMyB9LCAvKiBub21pbmFsOiAyMCBrYml0L3MgKi8KICB7IENPREVDX0FBQ0xELCAgMjIwMDAsIDI4MDAwLCAgMjIwNTAsIDEsICA1LCA1LCA2LCA2LCAgMiwgMCwgNiwgU0JSX01PTk8sIDIgfSwgLyogbm9taW5hbDogMjQga2JpdC9zICovCiAgeyBDT0RFQ19BQUNMRCwgIDI4MDAwLCAzNjAwMCwgIDIyMDUwLCAxLCAgNywgOCwgOCwgOCwgIDIsIDAsIDMsIFNCUl9NT05PLCAyIH0sIC8qIG5vbWluYWw6IDMyIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDTEQsICAzNjAwMCwgNDQwMDAsICAyMjA1MCwgMSwgIDksIDksIDksIDksICAyLCAwLCAzLCBTQlJfTU9OTywgMSB9LCAvKiBub21pbmFsOiA0MCBrYml0L3MgKi8KICB7IENPREVDX0FBQ0xELCAgNDQwMDAsIDUyMDAwLCAgMjIwNTAsIDEsIDEyLDExLDExLDExLCAgMiwgMCwgMywgU0JSX01PTk8sIDEgfSwgLyogbm9taW5hbDogNDgga2JpdC9zICovCiAgeyBDT0RFQ19BQUNMRCwgIDUyMDAwLCA2NDAwMSwgIDIyMDUwLCAxLCAxMywxMSwxMSwxMCwgIDIsIDAsIDMsIFNCUl9NT05PLCAxIH0sIC8qIG5vbWluYWw6IDU2IGtiaXQvcyAqLwoKICAvKiAyNC80OCBrSHogZHVhbCByYXRlICovCiAgeyBDT0RFQ19BQUNMRCwgIDIwMDAwLCAyMjAwMCwgIDI0MDAwLCAxLCAgNCwgMSwgOCwgNCwgIDIsIDMsIDYsIFNCUl9NT05PLCAyIH0sIC8qIG5vbWluYWw6IDIwIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDTEQsICAyMjAwMCwgMjgwMDAsICAyNDAwMCwgMSwgIDMsIDgsIDgsIDcsICAyLCAwLCAzLCBTQlJfTU9OTywgMiB9LCAvKiBub21pbmFsOiAyNCBrYml0L3MgKi8KICB7IENPREVDX0FBQ0xELCAgMjgwMDAsIDM2MDAwLCAgMjQwMDAsIDEsICA0LCA4LCA4LCA3LCAgMiwgMCwgMywgU0JSX01PTk8sIDIgfSwgLyogbm9taW5hbDogMzIga2JpdC9zICovCiAgeyBDT0RFQ19BQUNMRCwgIDM2MDAwLCA1NjAwMCwgIDI0MDAwLCAxLCAgOCwgOSwgOSwgOSwgIDIsIDAsIDMsIFNCUl9NT05PLCAxIH0sIC8qIG5vbWluYWw6IDQwIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDTEQsICA1NjAwMCwgNjQwMDEsICAyNDAwMCwgMSwgMTMsMTEsMTEsMTAsICAyLCAwLCAzLCBTQlJfTU9OTywgMSB9LCAvKiBub21pbmFsOiA2NCBrYml0L3MgKi8KCiAgLyogMzIvNjQga0h6IGR1YWwgcmF0ZSAqLyAgLyogcGxhY2VibyBzZXR0aW5ncyAqLyAgLypqZ3I6IG5ldywgY29weSBmcm9tIENPREVDX0FBQyAqLwogIHsgQ09ERUNfQUFDTEQsICAyNDAwMCwgMzYwMDAsICAzMjAwMCwgMSwgIDQsIDQsIDQsIDQsICAyLCAwLCAzLCBTQlJfTU9OTywgMyB9LCAvKiBsb3dlc3QgcmFuZ2UgICovCiAgeyBDT0RFQ19BQUNMRCwgIDM2MDAwLCA2MDAwMCwgIDMyMDAwLCAxLCAgNywgNywgNiwgNiwgIDIsIDAsIDMsIFNCUl9NT05PLCAyIH0sIC8qIGxvd2VzdCByYW5nZSAqLwogIHsgQ09ERUNfQUFDTEQsICA2MDAwMCwgNzIwMDAsICAzMjAwMCwgMSwgIDksIDksIDgsIDgsICAyLCAwLCAzLCBTQlJfTU9OTywgMSB9LCAvKiBsb3cgcmFuZ2UgKi8KICB7IENPREVDX0FBQ0xELCAgNzIwMDAsMTAwMDAwLCAgMzIwMDAsIDEsIDExLDExLDEwLDEwLCAgMiwgMCwgMywgU0JSX01PTk8sIDEgfSwgLyogU0JSIHN3ZWV0IHNwb3QgKi8KICB7IENPREVDX0FBQ0xELCAxMDAwMDAsMTYwMDAxLCAgMzIwMDAsIDEsIDEzLDEzLDExLDExLCAgMiwgMCwgMywgU0JSX01PTk8sIDEgfSwgLyogYmFja3dhcmRzIGNvbXBhdGlibGUgKi8KCiAgLyogNDQvODgga0h6IGR1YWwgcmF0ZSAqLyAgLyogbm90IHlldCBmaW5hbGx5IHR1bmVkICovCiAgeyBDT0RFQ19BQUNMRCwgIDM2MDAwLCA2MDAwMCwgIDQ0MTAwLCAxLCAgOCwgNywgNiwgOSwgIDIsIDAsIDMsIFNCUl9NT05PLCAyIH0sIC8qIG5vbWluYWw6IDQwICovCiAgeyBDT0RFQ19BQUNMRCwgIDYwMDAwLCA3MjAwMCwgIDQ0MTAwLCAxLCAgOSwgOSwxMCwxMCwgIDIsIDAsIDMsIFNCUl9NT05PLCAxIH0sIC8qIG5vbWluYWw6IDY0ICovCiAgeyBDT0RFQ19BQUNMRCwgIDcyMDAwLDEwMDAwMCwgIDQ0MTAwLCAxLCAxMSwxMSwxMSwxMSwgIDIsIDAsIDMsIFNCUl9NT05PLCAxIH0sIC8qIG5vbWluYWw6IDgwICovCiAgeyBDT0RFQ19BQUNMRCwgMTAwMDAwLDE2MDAwMSwgIDQ0MTAwLCAxLCAxMywxMywxMSwxMSwgIDIsIDAsIDMsIFNCUl9NT05PLCAxIH0sIC8qIG5vbWluYWw6IDEyOCAqLwoKICAvKiA0OC85NiBrSHogZHVhbCByYXRlICovICAvKiAzMiBhbmQgNDBrYnBzIGxpbmUgdHVuZWQgZm9yIGR1YWwtcmF0ZSBTQlIgKi8KICB7IENPREVDX0FBQ0xELCAgMzYwMDAsIDYwMDAwLCAgNDgwMDAsIDEsICA4LCA3LCA2LCA5LCAgMiwgMCwgMywgU0JSX01PTk8sIDIgfSwgLyogbm9taW5hbDogNDAgKi8KICB7IENPREVDX0FBQ0xELCAgNjAwMDAsIDcyMDAwLCAgNDgwMDAsIDEsICA5LCA5LDEwLDEwLCAgMiwgMCwgMywgU0JSX01PTk8sIDEgfSwgLyogbm9taW5hbDogNjQgKi8KICB7IENPREVDX0FBQ0xELCAgNzIwMDAsMTAwMDAwLCAgNDgwMDAsIDEsIDExLDExLDExLDExLCAgMiwgMCwgMywgU0JSX01PTk8sIDEgfSwgLyogbm9taW5hbDogODAgKi8KICB7IENPREVDX0FBQ0xELCAxMDAwMDAsMTYwMDAxLCAgNDgwMDAsIDEsIDEzLDEzLDExLDExLCAgMiwgMCwgMywgU0JSX01PTk8sIDEgfSwgLyogbm9taW5hbDogMTI4ICovCgogIC8qKiogc3RlcmVvICoqKi8KICAvKiAxNi8zMiBrSHogZHVhbCByYXRlIG5vdCB5ZXQgdHVuZWQgLT5hbGIgY29waWVkIGZyb20gbm9uIExEIHRhYmxlcyovCiAgeyBDT0RFQ19BQUNMRCwgIDMyMDAwLCAzNjAwMCwgIDE2MDAwLCAyLCAxMCwgOSwxMiwxMSwgIDIsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMiB9LCAvKiBub21pbmFsOiAzMiBrYml0L3MgKi8KICB7IENPREVDX0FBQ0xELCAgMzYwMDAsIDQ0MDAwLCAgMTYwMDAsIDIsIDEzLDEzLDEzLDEzLCAgMiwgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAyIH0sIC8qIG5vbWluYWw6IDQwIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDTEQsICA0NDAwMCwgNTIwMDAsICAxNjAwMCwgMiwgMTAsIDksMTEsIDksICAyLCAwLCAtMywgU0JSX1NXSVRDSF9MUkMsIDIgfSwgLyogdHVuZTEyIG5vbWluYWw6IDQ4IGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDTEQsICA1MjAwMCwgNjAwMDAsICAxNjAwMCwgMiwgMTQsMTQsMTMsMTMsICAzLCAwLCAtMywgU0JSX1NXSVRDSF9MUkMsIDEgfSwgLyogbm9taW5hbDogNTYga2JpdC9zICovCiAgeyBDT0RFQ19BQUNMRCwgIDYwMDAwLCA3NjAwMCwgIDE2MDAwLCAyLCAxNCwxNCwxMywxMywgIDMsIDAsIC0zLCBTQlJfTEVGVF9SSUdIVCwgMSB9LCAvKiBub21pbmFsOiA2NCBrYml0L3MgKi8KICB7IENPREVDX0FBQ0xELCAgNzYwMDAsMTI4MDAxLCAgMTYwMDAsIDIsIDE0LDE0LDEzLDEzLCAgMywgMCwgLTMsIFNCUl9MRUZUX1JJR0hULCAxIH0sIC8qIG5vbWluYWw6IDgwIGtiaXQvcyAqLwoKICAvKiAyMi4wNS80NC4xIGtIeiBkdWFsIHJhdGUgKi8KICB7IENPREVDX0FBQ0xELCAgMzIwMDAsIDM2MDAwLCAgMjIwNTAsIDIsICA1LCA0LCA3LCA2LCAgMiwgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAyIH0sIC8qIG5vbWluYWw6IDMyIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDTEQsICAzNjAwMCwgNDQwMDAsICAyMjA1MCwgMiwgIDUsIDgsIDgsIDgsICAyLCAwLCAtMywgU0JSX1NXSVRDSF9MUkMsIDIgfSwgLyogbm9taW5hbDogNDAga2JpdC9zICovCiAgeyBDT0RFQ19BQUNMRCwgIDQ0MDAwLCA1MjAwMCwgIDIyMDUwLCAyLCAgNywxMCwgOCwgOCwgIDMsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMiB9LCAvKiBub21pbmFsOiA0OCBrYml0L3MgKi8KICB7IENPREVDX0FBQ0xELCAgNTIwMDAsIDYwMDAwLCAgMjIwNTAsIDIsICA5LDExLCA5LCA5LCAgMywgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAxIH0sIC8qIG5vbWluYWw6IDU2IGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDTEQsICA2MDAwMCwgNzYwMDAsICAyMjA1MCwgMiwgMTAsMTIsMTAsMTEsICAzLCAwLCAtMywgU0JSX0xFRlRfUklHSFQsIDEgfSwgLyogbm9taW5hbDogNjQga2JpdC9zICovCiAgeyBDT0RFQ19BQUNMRCwgIDc2MDAwLCA4MjAwMCwgIDIyMDUwLCAyLCAxMiwxMiwxMSwxMSwgIDMsIDAsIC0zLCBTQlJfTEVGVF9SSUdIVCwgMSB9LCAvKiBub21pbmFsOiA4MCBrYml0L3MgKi8KICB7IENPREVDX0FBQ0xELCAgODIwMDAsMTI4MDAxLCAgMjIwNTAsIDIsIDEzLDEyLDExLDExLCAgMywgMCwgLTMsIFNCUl9MRUZUX1JJR0hULCAxIH0sIC8qIG5vbWluYWw6IDgwIGtiaXQvcyAqLwoKICAvKiAyNC80OCBrSHogZHVhbCByYXRlICovCiAgeyBDT0RFQ19BQUNMRCwgIDMyMDAwLCAzNjAwMCwgIDI0MDAwLCAyLCAgNSwgNCwgNywgNiwgIDIsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMiB9LCAvKiBub21pbmFsOiAzMiBrYml0L3MgKi8KICB7IENPREVDX0FBQ0xELCAgMzYwMDAsIDQ0MDAwLCAgMjQwMDAsIDIsICA0LCA4LCA4LCA4LCAgMiwgMCwgLTMsIFNCUl9TV0lUQ0hfTFJDLCAyIH0sIC8qIG5vbWluYWw6IDQwIGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDTEQsICA0NDAwMCwgNTIwMDAsICAyNDAwMCwgMiwgIDYsMTAsIDgsIDgsICAzLCAwLCAtMywgU0JSX1NXSVRDSF9MUkMsIDIgfSwgLyogbm9taW5hbDogNDgga2JpdC9zICovCiAgeyBDT0RFQ19BQUNMRCwgIDUyMDAwLCA2MDAwMCwgIDI0MDAwLCAyLCAgOSwxMSwgOSwgOSwgIDMsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMSB9LCAvKiBub21pbmFsOiA1NiBrYml0L3MgKi8KICB7IENPREVDX0FBQ0xELCAgNjAwMDAsIDc2MDAwLCAgMjQwMDAsIDIsIDExLDEyLDEwLDExLCAgMywgMCwgLTMsIFNCUl9MRUZUX1JJR0hULCAxIH0sIC8qIG5vbWluYWw6IDY0IGtiaXQvcyAqLwogIHsgQ09ERUNfQUFDTEQsICA3NjAwMCwgODgwMDAsICAyNDAwMCwgMiwgMTIsMTMsMTEsMTEsICAzLCAwLCAtMywgU0JSX0xFRlRfUklHSFQsIDEgfSwgLyogbm9taW5hbDogODAga2JpdC9zICovCiAgeyBDT0RFQ19BQUNMRCwgIDg4MDAwLDEyODAwMSwgIDI0MDAwLCAyLCAxMywxMywxMSwxMSwgIDMsIDAsIC0zLCBTQlJfTEVGVF9SSUdIVCwgMSB9LCAvKiBub21pbmFsOiA5MiBrYml0L3MgKi8KCiAgLyogMzIvNjQga0h6IGR1YWwgcmF0ZSAqLyAgLyogcGxhY2VibyBzZXR0aW5ncyAqLyAvKmpncjogbmV3LCBjb3B5IGZyb20gQ09ERUNfQUFDICovCiAgeyBDT0RFQ19BQUNMRCwgIDYwMDAwLCA4MDAwMCwgIDMyMDAwLCAyLCAgNywgNywgNiwgNiwgIDMsIDAsIC0zLCBTQlJfU1dJVENIX0xSQywgMiB9LCAvKiBsb3dlc3QgcmFuZ2UgKG11bHRpY2hhbm5lbCByZWFyKSAqLwogIHsgQ09ERUNfQUFDTEQsICA4MDAwMCwxMTIwMDAsICAzMjAwMCwgMiwgIDksIDksIDgsIDgsICAzLCAwLCAtMywgU0JSX0xFRlRfUklHSFQsIDEgfSwgLyogbG93IHJhbmdlICovCiAgeyBDT0RFQ19BQUNMRCwgMTEyMDAwLDE0NDAwMCwgIDMyMDAwLCAyLCAxMSwxMSwxMCwxMCwgIDMsIDAsIC0zLCBTQlJfTEVGVF9SSUdIVCwgMSB9LCAvKiBTQlIgc3dlZXQgc3BvdCAqLwogIHsgQ09ERUNfQUFDTEQsIDE0NDAwMCwyNTYwMDEsICAzMjAwMCwgMiwgMTMsMTMsMTEsMTEsICAzLCAwLCAtMywgU0JSX0xFRlRfUklHSFQsIDEgfSwgLyogYmFja3dhcmRzIGNvbXBhdGlibGUgKi8KCiAgLyogNDQuMS84OC4yIGtIeiBkdWFsIHJhdGUgKi8gIC8qIHBsYWNlYm8gc2V0dGluZ3MgKi8gLyp3cnI6IG5ldywgY29weSBmcm9tIENPREVDX0FBQyAqLwogIHsgQ09ERUNfQUFDTEQsICA2MDAwMCwgODAwMDAsICA0NDEwMCwgMiwgIDcsIDcsIDYsIDYsICAzLCAwLCAtMywgU0JSX1NXSVRDSF9MUkMsIDIgfSwgLyogbG93ZXN0IHJhbmdlIChtdWx0aWNoYW5uZWwgcmVhcikgKi8KICB7IENPREVDX0FBQ0xELCAgODAwMDAsMTEyMDAwLCAgNDQxMDAsIDIsIDEwLDEwLCA4LCA4LCAgMywgMCwgLTMsIFNCUl9MRUZUX1JJR0hULCAxIH0sIC8qIGhsbSAxMS0wOC0yOSAqLwogIHsgQ09ERUNfQUFDTEQsIDExMjAwMCwxNDQwMDAsICA0NDEwMCwgMiwgMTIsMTIsMTAsMTAsICAzLCAwLCAtMywgU0JSX0xFRlRfUklHSFQsIDEgfSwgLyogaGxtIDExLTA4LTI5ICovCiAgeyBDT0RFQ19BQUNMRCwgMTQ0MDAwLDI1NjAwMSwgIDQ0MTAwLCAyLCAxMywxMywxMSwxMSwgIDMsIDAsIC0zLCBTQlJfTEVGVF9SSUdIVCwgMSB9LCAvKiBiYWNrd2FyZHMgY29tcGF0aWJsZSAqLwoKICAvKiA0OC85NiBrSHogZHVhbCByYXRlICovICAvKiBub3QgeWV0IGZpbmFsbHkgdHVuZWQgKi8gLyp3cnI6IG5ldywgY29weSBmcm9tIENPREVDX0FBQyAqLwogIHsgQ09ERUNfQUFDTEQsICA2MDAwMCwgODAwMDAsICA0ODAwMCwgMiwgIDcsIDcsMTAsMTAsICAyLCAwLCAtMywgU0JSX1NXSVRDSF9MUkMsIDIgfSwgLyogbm9taW5hbDogNjQgKi8KICB7IENPREVDX0FBQ0xELCAgODAwMDAsMTEyMDAwLCAgNDgwMDAsIDIsICA5LCA5LDEwLDEwLCAgMywgMCwgLTMsIFNCUl9MRUZUX1JJR0hULCAxIH0sIC8qIG5vbWluYWw6IDk2ICovCiAgeyBDT0RFQ19BQUNMRCwgMTEyMDAwLDE0NDAwMCwgIDQ4MDAwLCAyLCAxMSwxMSwxMSwxMSwgIDMsIDAsIC0zLCBTQlJfTEVGVF9SSUdIVCwgMSB9LCAvKiBub21pbmFsOiAxMjggKi8KICB7IENPREVDX0FBQ0xELCAxNDQwMDAsMTc2MDAwLCAgNDgwMDAsIDIsIDEyLDEyLDExLDExLCAgMywgMCwgLTMsIFNCUl9MRUZUX1JJR0hULCAxIH0sIC8qIGhsbSAwOS0xMC0xOSAqLwogIHsgQ09ERUNfQUFDTEQsIDE3NjAwMCwyNTYwMDEsICA0ODAwMCwgMiwgMTMsMTMsMTEsMTEsICAzLCAwLCAtMywgU0JSX0xFRlRfUklHSFQsIDEgfSwgLyogaGxtIDA5LTEwLTE5ICovCgp9OwoKY29uc3QgaW50IHNiclR1bmluZ1RhYmxlU2l6ZSA9IHNpemVvZihzYnJUdW5pbmdUYWJsZSkvc2l6ZW9mKHNiclR1bmluZ1RhYmxlWzBdKTsKCmNvbnN0IHBzVHVuaW5nVGFibGVfdCBwc1R1bmluZ1RhYmxlWzRdID0KewogIHsgIDgwMDAsICAyMjAwMCwgUFNFTkNfU1RFUkVPX0JBTkRTXzEwLCBQU0VOQ19ORU5WXzEsIEZMMkZYQ09OU1RfREJMKDMuMGYvNC4wZikgfSwKICB7IDIyMDAwLCAgMjgwMDAsIFBTRU5DX1NURVJFT19CQU5EU18yMCwgUFNFTkNfTkVOVl8xLCBGTDJGWENPTlNUX0RCTCgyLjBmLzQuMGYpIH0sCiAgeyAyODAwMCwgIDM2MDAwLCBQU0VOQ19TVEVSRU9fQkFORFNfMjAsIFBTRU5DX05FTlZfMiwgRkwyRlhDT05TVF9EQkwoMS41Zi80LjBmKSB9LAogIHsgMzYwMDAsIDE2MDAwMSwgUFNFTkNfU1RFUkVPX0JBTkRTXzIwLCBQU0VOQ19ORU5WXzQsIEZMMkZYQ09OU1RfREJMKDEuMWYvNC4wZikgfSwKfTsKCgovL0B9CgoKCg==