ok github.com/google/syzkaller/dashboard/app (cached) ? github.com/google/syzkaller/dashboard/dashapi [no test files] ? github.com/google/syzkaller/pkg/debugtracer [no test files] ? github.com/google/syzkaller/pkg/gce [no test files] ? github.com/google/syzkaller/pkg/gcs [no test files] ? github.com/google/syzkaller/pkg/hash [no test files] ok github.com/google/syzkaller/executor 6.141s ok github.com/google/syzkaller/pkg/asset (cached) ok github.com/google/syzkaller/pkg/ast 1.491s ok github.com/google/syzkaller/pkg/auth (cached) ? github.com/google/syzkaller/pkg/html/pages [no test files] ? github.com/google/syzkaller/pkg/ifuzz/iset [no test files] ? github.com/google/syzkaller/pkg/ifuzz/powerpc [no test files] ? github.com/google/syzkaller/pkg/ifuzz/powerpc/generated [no test files] ? github.com/google/syzkaller/pkg/ifuzz/x86 [no test files] ? github.com/google/syzkaller/pkg/ifuzz/x86/gen [no test files] ? github.com/google/syzkaller/pkg/ifuzz/x86/generated [no test files] ? github.com/google/syzkaller/pkg/ipc/ipcconfig [no test files] ? github.com/google/syzkaller/pkg/kcidb [no test files] ? github.com/google/syzkaller/pkg/report/crash [no test files] ? github.com/google/syzkaller/pkg/rpctype [no test files] ? github.com/google/syzkaller/pkg/signal [no test files] ? github.com/google/syzkaller/pkg/stats/syzbotstats [no test files] ? github.com/google/syzkaller/pkg/testutil [no test files] ? github.com/google/syzkaller/pkg/tools [no test files] ok github.com/google/syzkaller/pkg/bisect 27.339s ok github.com/google/syzkaller/pkg/bisect/minimize (cached) ok github.com/google/syzkaller/pkg/build 12.141s ok github.com/google/syzkaller/pkg/compiler 9.353s ok github.com/google/syzkaller/pkg/config (cached) ok github.com/google/syzkaller/pkg/cover 23.705s ok github.com/google/syzkaller/pkg/cover/backend 1.383s --- FAIL: TestGenerate (25.97s) --- FAIL: TestGenerate/fuchsia/amd64 (0.18s) testutil.go:33: seed=1702917266470431851 testutil.go:33: seed=1702917266648088569 --- FAIL: TestGenerate/fuchsia/amd64/0 (0.38s) csource_test.go:150: opts: {Threaded:false Repeat:true RepeatTimes:0 Procs:0 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:false Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(0x0, 0x0, 0x0, &(0x7f00000100c0)={&(0x7f0000000000)={{}, {0xffffffff, 0x0, {0x4, 0xffffffffffffffff}}}, &(0x7f0000000040), &(0x7f0000000080), &(0x7f0000010080)={{0x0, 0x0, 0x0, 0x0}}, 0x28, 0x2, 0x10000, 0x4}, &(0x7f0000010100), &(0x7f0000010140)) (fail_nth: 1) r3 = zx_deadline_after(0x5) (async) zx_channel_call$fuchsia_io_DirectoryAdminLink(r2, 0x0, r3, &(0x7f0000020240)={&(0x7f0000010180)={{}, {0x3, 0xffffffffffffffff}, 0xffffffff, {0x1b3}}, &(0x7f00000101c0), &(0x7f0000010200), &(0x7f0000020200), 0x34, 0x1, 0x10000}, &(0x7f0000020280), &(0x7f00000202c0)) (rerun: 4) zx_channel_call(r2, 0x0, r3, &(0x7f00000213c0)={&(0x7f0000020300)="6b3c1256279544bb32d36243afcbfda5cd1a1759ba09b008c97e2be49ab10adda6d88f529de7b04ad9b0fdd96d3184196e8e6975312bf6a2c53df14551fa4b32627dd679eef9c59f190ca4036814372cf510d02917535f1f02da97f6d1601f3e89e10a621b4e82ba76d41a2f87249736cd35a2432bf368daf43f60387c27f9177614c2f4d4fd31ddd5e08d63429d663ee14a1932bf8f4df70369f3c2a75197422ed0022be80fd87b79db2a43499a48bdcd91246573303a4508e17cf020c64c577b8bb0926c4bde1560a77446497e5bafec8429a311719384f637c4a008c3ddd62610dbb1d4c2dd8f1bd73e7f3657fcf24dbb896a145b28f34098f9d40199c5b72003c4e08eab96aec066bf2d97c2661f4cd91c59cd4f9e4f5617cfd6ada6e04953cc4c7be1c3f10de31e155dd174e99f4136cae08e308b3c22b5d1dd66b379703429b4d5dfa60ec7d1aa50043c92c1a949b3d940f604d1f44ebdd3c3e4ab647c7e66f1211eec2712e0e4b70cb1a2c1c6c3b4e29a1042834acc26e99b38f6075bbea108bf124c3b1cc4275227bd0167110d69972d46b2dbd6b18314d2ea664ac2f4e4490ab3223eb08178f92e0c17bf861894997cd092fe07c06c5e0db444085a138c638d6eb7889a1996340ea460991f75cd1aba0bcae8f9779587f6df761f75373199146daba4848ac8a2a9b099ae5a54ed617ecb56326627016ea3d6d077f90474dbf037689bd7724a1cef3626e6e196748c050f91c662fda495b67e5aa3b016dc3bccb2d7a9733eca7c7bdd8847540d273b9c8c29335ebdd7715ee4f57dfe5c6a0f3d584398c0ea55375bd2c31b6c74e9f4eeb859c8977063125cdf72532de65c0a00d53bc003c8b101838ee151319695c0ac2acef5f1910bc952bebc7f689f52067f81c18c5dfac90057cdbd0f75e928163aeb09ef0159b66da4210834ca8ee3e285270b51f5e256867ce622923fd3c40e615e1342418a196fcb8e2b56486722f7b5ca524c75dbdb9be6314b7ad590b5cf8f80d7927dda79ceb1369d780f3338c1efb83ca7bdda05f8ca9445b500c0506359a4baa2a8ee7e8b4afb48dbdc2a56194a8da4d1ac425245b83e1e8e448a29da4e2071aea3b8ef3a3cb5827e616d4707f851eea6260972eade34da0a8f34407f4d3e455ba0aa026a853ebb5e6d64e9d8105e69b84e36fb57a8b6e0e7cbb9e5d524988036d958e32a38f5977b3c7038c983994f0888fe3091aa1f45919f0602b5d750738b171b9787af296f2ba5fee311a16f1cdcd810a6689ac7a75bc19e693395b00cfdaf13cca6670a472d449e9efef6e0f9d1c1abaabaaa37e2b27d7d6723d98af800a0b2b5196b284a9e11a5c5e62c4d862522254225216d4ff21afd49bd07f74e9d189bc576d3dd39a739779875e2dcbcf356a52ca08cb29eae8579ca6608a194135941eed7e330de08a9e5095b177ce26b2321e7ac9862bacef371c4d2e9dc8bab9118a15ff9fc4679a1d0eeb64806a80cc739edfddf9d4fa2f42f870212c23ae81ebc9168c955535041c1ce54edf8e3cae6684dab1b1eed16b25bc667a36691d0e050a49f2d782ed9ec3f94d50c8d3358a82375d3605fdb7912b1fc3ed9155fb1052c93e61005c2f6a87c42cf68aff9e6c9e19813653770c439cc397f9ecba27a99b082054d8f44a5b82baea68bd849cde7044a27792a26b3a12d938cb650a8914124be069a1d8a0f98d98768f9144afcc851b338a84d797c35a7657111fa4278b62eee95e3ddedb8916d03c93ec884ac97e29b1d4490ecae90628ed261ebcbbd4d0c12d1c295e6683d685c508d14f289f5b0c86bbd05c31edb6ef46aba2abe24f53c90b33ac3b8033616687a9d3b2900876cb4879145771c0957a07d371f9826e641089e347c155fd62cf176bb4f6af7c223b45cfd0e0a5410922527f9a89a8bb864f497a763fac941097410f448373d1232955cdd4c067364151ae3f57e3bd611975eb189e3de3de659b8f58fc7bc86bb7717711aea0f512ae8fb8f0dad0b9a91cb4b1d512095de2923a54add0883f1b194082abb2d77105e9d00d23e0c0e2226cb2f831d10a66223d9f717260558318f72b66926e0ae2a169b8f5fb86d9f611760d9626218791f7a18b807e12dd61b895d96885c8a39ae56faa0987a4bc634bf638902288cbe304d2e6085b35bbd8c69f7c7bc08a54764e5a58c36da8514923cabca339408a4d4c4a05520b84150e1493861b1208ab6d2007fd47071ecd8419c4de38764caecb093a2cc8259f413efcb13e19451d22b9bd8a192f9184f62c438b1fa988cdc16b43a19ed3ca3dc13bdada0118cf96132ee3a06db5eec80f4c956b3928f5923c5a74352cc62ea9e8a0310ff953d4fd886d26d6e5ccbb8c9afda424ce0e0c66e3b5112f93de988f178f103de77663c3f37483aef8a49b06ed86442553336a2ea076350f3730d607164b7459b9e90e3f98ab8132018d02c86b65d5e2358c66ee8d657a6586af70eb2536942b0733f99d3dcb2ebb49857d384a870cb0b62e318a130f1d905a12c71c319ad380a8b022d4e3f5f5ee1bb17d55becffb128fd61d993b5e03d6d0d864b2481dde4f0e472800e84d97b2a12661bfbb9070f37cd458f0d43474003491239f6987024386a281851797d1322752e6e24b160fcdde4a429383a690435f1200d0ad95874011db89d4ffaf2232e84a767620009fa3e534c50b2656805a380799a16817b350a3b23d4d03fcfffe4cf048283c47144189dc9b965375cff5ee4171a23c172fef7a8ddefd1c24be338203691227c3056f7761eca36087851aeff7f91e8aceb96d7b21082a95d6b796ad7688b9c48754fa34d2873c1377012cc16a798e80c71d5759572b17e3a013fa2e878a5194ce5358ecec5602fb206d590ff765f57755904d4361e118fb18f8fdad8df387fe63f79678ea913d3b1633955f8e11c2d8d7c716791234188bdcb7bccccc6f3eb85993ebe53478bf92dfff23331f394f2164264a6c029d0c8bb9a41e09cc35eff2a58d4ad3b92b4d682c7ac73a728892bb11b57c39aed49709c200e916bcba5229d16043e34b1c04223be93784e3de8b74349425cf073d7068565e7d914f26573581dc919919feec181d371cc6629f895728f8526acef9ce50110fd9257fc677de7fa23f98f35ba0686fc65d074c412a5e02ad067836f80fc24437e2d0decff85b1029e28660b344851a0be45cdc10716a05974e5e09d00f994a4de6e97cf7148c34ebeb5565be0eccf4dfa7c8b70691d0a4fc4adf40a049777ecf560daafe437bbb8af380ad90819f3018202e738519d372bdb17f771a29d8bc58451262567d38beb9fc92e000c18df6324e6c4da794754c849b2fded1b67ac18b48a8b05773d62e24ec78ad9cb00b9959fe20c0d8778ad636260af68e1f336e0a9678b7c84752a624355257380fe51d98e1c17b6f026ff8206e9b1b4c0451c9ee8a5de6a38a2bf52810fa17f811a4dc56931ec4de8fee47c553441aaf1683f94f5e6fad54eaaf66e6d6acbd627d64e0545efb2650741d65bfb41b12d84b5f8a92ae978db2612aeda6823b3d422e56429e7fea6a7028001e70cda4c3bdc741750858e4a4f44cb87e47112ae9a0338569402c386b1f232bac1456793462da338b3851bb31d93e64d61473bcbbf400d0fc99bf5e06b989122518f61498d8265846c6b596b73d49a1386cf28406b33d90e9d919af9bf0e74456061343ce07f46191f050c5f69f4c62d895617775e1cce6e82a9b300ea5ced9667b784e59b687c8f487077c2458d6db726cbf009c33c92576f35a149a7aa11f29ccad57967fc3ec9cda65ae30ba175bf3e405a303caeed440ed21a99735c4fe524f8423971473db48fa505f44a4d1356b82a90c7f581732feb089c0e8301ffc54d3207571447c4f75d96b0ba5887a558da9a2ff2726fa8748c2179276193695bf03658978bdaa74b4c02fbf00c1a5a9eca009e7a3bfd5d48881cecb743e5b65b0c0b1e024b80044853265ac0ee2fd92ddebbd59c4d4cb3a09d83f9dfc5c274111ec8caab4cbc65518ef6a8e2e0f14993c17af66d7dd5d30643b2391b728975f3886bb0c64065c87eec0c28696a07d1c30416b7901dcd4f94139c917dc986ff15f1364b227cf594ba63e28362e52117a5469fc15dedb45c7e124b58b014e2c498933ec362ab60c758dbc15cc7b17b36fd9265f9d5857fdba2edb36a355c52f53d09f03e474ca45a06f9995d1f10b0be3233eb831b047200d35472b2137bc2fb77b819daf9a8e9b853d952931993f92c6209a3587ad812989d857aae67aa7e87275fc34be4b3b78b475c3200e35f0453bcdd00d8d718a5286cb47dee49d90afed7f4fe42496ba33cf13d6f17c105eddb25c876d6f52a21cf098d42d9bfc72f0535281f6c022103455dcb87fcd505d7714e79417c9fcd32208e388c9d50e561f231a09cc73149f2ec248bd1fc885f3e1059659b1a4ac978bb5c81b093da5b9dc293096ba9fdbec00502192e4fae10afd3605c2c020a628a055d5659c3effb76446834a8e84edf5239c9ea6cb6cb85aef64b68bc7e2f96856f65e976ba1bd525c1965ec7a2d954cc99fba8fa13d329227f7f9321689c631a12dcb0ac99487bfe4725e9b7d01e8481024943cc35f7a0e87a2142a9229d353b4128897a9b3bc4a4ebc82dde1cbf7616dc6544e05db908203ec568b9f48893a0fc9a1a77cb7340afe977b51f3a4a1e555ab811b9723996ed60b70184c538cbded327fada7d9ac205b32958cfceeb3cee192da03efd31476c88dfd05812df72c977d17f44ae5d696f336185d2d90779747d6d91347da96b40ffbd323f16022ea63a744077893f6e16991d65849d65cbcdc10f83db70810935cba04ede08f74a7261a286130e147184c0f12827d74fc6c8db9354fe3ca3e0440a06e32b156623b3587c7b23872954faa27eb71882bf945f035b7212df2523a7e8c5ac1658bfa6a460ad973977dc59283871b6de43e492f8d476bf340f7f6a92a38dc4ab15bdd3e0ff15959c7c49da65810e60060ccefefd931ce9e5424cb6faa27e2e26b3a23f52b9ca19ae15ba0bfe5e47b5a700402deda7f5337897dc23fee11c62383a3fbd1f28ae2ac4ccedfc926418d0db7d6e228331ac7a8df31193ee68bcccb04aa7fdd48c9ea74ea5a8b0ce94e7a31c3dc596fd10d30380280e61bd2c11625ea9f1ada2e031eb807d57b36a17f3bc748881a56a9877e358388f2d493c61943c79c8879ad74e515c9b38b10f6bf4c0bbe129fa8fcf2c2a82e913ece2d33a33a5c7a581e7571420f14f2105d376aba2aa5c5f5810d7e34e78abe76865540719d2634b384fbb840c05ec3bc2e53af13056141680aba67adbe6e8888b2d88959eb9e9a56f98552bd083230af6aefbd835adf9f50f0daae9814c6702f7d0b1e9cade35a3536d627d92a301177277910045d0ff086ed84e61c42c823fdd8b7ef1691d44645b40ca57a1ccc013da6a24cbd43257bfc0bf696c7a60bb6dd677b3a7c2f378b3a963abbb2715c9b7b57fb7959ae970c1bed93ad07e0507aec8ee94fca097a4d06693972a4bcff368bd4b34e1309ca8c847075af2eb5dba14441321197881ad535f7892935261f2fb94e17394316327b5b6a0c7778d4f8ee2a539ee3b4cd39b53f371614e71d9e053832044590c0cad4019fe55e8489e9aba620490a8eab8ac8b069284185bd7b819fe0183ba8bb7382e19f95f3f607d87f6718d8689d0394d5e88e14e2c8deafb590d4c1fb1bd7608af6e4a2baa2a0c27044f00b5df034b131da8688a250c08", &(0x7f0000021300)=[r0, r0, r1, r0, r1, r1], &(0x7f0000021340)=""/61, &(0x7f0000021380)=[0x0, 0x0, 0x0], 0x1000, 0x6, 0x3d, 0x3}, &(0x7f0000021400), &(0x7f0000021440)) zx_channel_call$fuchsia_cobalt_LoggerLogMemoryUsage(r5, 0x0, r3, &(0x7f0000031540)={&(0x7f0000021480)={{}, 0x2, 0x2, {0x9, 0xffffffffffffffff}, 0x2, {'\x00'}}, &(0x7f00000214c0), &(0x7f0000021500), &(0x7f0000031500), 0x38, 0x0, 0x10000}, &(0x7f0000031580), &(0x7f00000315c0)) zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(r2, 0x0, r3, &(0x7f00000416c0)={&(0x7f0000031600)={{}, {0x0, 0x100000001, {0xc1, 0xffffffffffffffff}}, {{'*[#,)&,-[)}'}}}, &(0x7f0000031640)={{0x0, r5}}, &(0x7f0000031680), &(0x7f0000041680)={{0x0, 0x0, 0x0, 0x0}}, 0x38, 0x2, 0x10000, 0x4}, &(0x7f0000041700), &(0x7f0000041740)) r8 = zx_deadline_after(0x104d) zx_channel_create(0x0, &(0x7f0000041880)=0x0, &(0x7f00000418c0)) zx_exception_get_thread(r5, &(0x7f0000041900)=0x0) zx_channel_call_etc(r7, 0x7, r8, &(0x7f0000041bc0)={&(0x7f0000041780)="fa2f4069c5f54d2479f84d1d733a52f59f0a68709466e6633a6318f6057fbfc9f048b09bfbb63905dc824745b16247ee570e79af77fde73be0865356841b8997c55e4c9b792e2cd8c5ac578960ab6b2d804cd89eb8f0de2151a1693b6498d61abedbd5db7cae8b09f94c6d942cb31051524961cc82c4940af1ab9ceeba52716eb25b870eafbb41d9a1562e9670df00384aa9554b70f9a166834150f2e37215e413ba1238a181d4f7435843b6bb56fa8861d8688001d39d9e2b189f67e80533118964299763f586828c693cc9712a9c2552dc30e57225212f5a50efe56da99a32824c4c", &(0x7f0000041a80)=[r9, r10, 0x0, r1, r6, r0, r4, 0x0, 0x0], &(0x7f0000041ac0)=""/154, &(0x7f0000041b80)=[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], 0xe3, 0x9, 0x9a, 0x8}, &(0x7f0000041c00), &(0x7f0000041c40)) syz_execute_func(&(0x7f0000000000)="c4e1d9d29e91000000c48171fd844800000020c4a17f7044ba340ef30faed6c46279a75d03c4c2fd9642a72e66430f38f55900420f34c4e1782b42c0c4426592242c") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffe000/0x1000)=nil, 0x1000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[11] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_one(void) { intptr_t res = 0; *(uint64_t*)0x200100c0 = 0x20000000; *(uint32_t*)0x20000000 = 0; memset((void*)0x20000004, 0, 3); *(uint8_t*)0x20000007 = 1; *(uint64_t*)0x20000008 = 0x4fcfbc1100000000; *(uint32_t*)0x20000010 = -1; *(uint32_t*)0x20000014 = 0; *(uint64_t*)0x20000018 = 4; *(uint64_t*)0x20000020 = -1; *(uint64_t*)0x200100c8 = 0x20000040; *(uint32_t*)0x20000040 = 0; *(uint32_t*)0x20000044 = 0; *(uint64_t*)0x200100d0 = 0x20000080; *(uint64_t*)0x200100d8 = 0x20010080; *(uint32_t*)0x200100e0 = 0x28; *(uint32_t*)0x200100e4 = 2; *(uint32_t*)0x200100e8 = 0x10000; *(uint32_t*)0x200100ec = 4; inject_fault(1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/0, /*args=*/0x200100c0, /*actual_bytes=*/0x20010100, /*actual_handles=*/0x20010140); if (res == ZX_OK) { r[0] = *(uint32_t*)0x20010080; r[1] = *(uint32_t*)0x20010088; r[2] = *(uint32_t*)0x2001008c; } res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/5); if (res == ZX_OK) r[3] = res; *(uint64_t*)0x20020240 = 0x20010180; *(uint32_t*)0x20010180 = 0; memset((void*)0x20010184, 0, 3); *(uint8_t*)0x20010187 = 1; *(uint64_t*)0x20010188 = 0x1b8a5e6400000000; *(uint64_t*)0x20010190 = 3; *(uint64_t*)0x20010198 = -1; *(uint32_t*)0x200101a0 = -1; *(uint64_t*)0x200101a4 = 0x1b3; *(uint64_t*)0x200101ac = 0; *(uint64_t*)0x20020248 = 0x200101c0; *(uint32_t*)0x200101c0 = 0; *(uint64_t*)0x20020250 = 0x20010200; *(uint64_t*)0x20020258 = 0x20020200; *(uint32_t*)0x20020260 = 0x34; *(uint32_t*)0x20020264 = 1; *(uint32_t*)0x20020268 = 0x10000; *(uint32_t*)0x2002026c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); } } *(uint64_t*)0x200213c0 = 0x20020300; memcpy((void*)0x20020300, "\x6b\x3c\x12\x56\x27\x95\x44\xbb\x32\xd3\x62\x43\xaf\xcb\xfd\xa5\xcd\x1a\x17\x59\xba\x09\xb0\x08\xc9\x7e\x2b\xe4\x9a\xb1\x0a\xdd\xa6\xd8\x8f\x52\x9d\xe7\xb0\x4a\xd9\xb0\xfd\xd9\x6d\x31\x84\x19\x6e\x8e\x69\x75\x31\x2b\xf6\xa2\xc5\x3d\xf1\x45\x51\xfa\x4b\x32\x62\x7d\xd6\x79\xee\xf9\xc5\x9f\x19\x0c\xa4\x03\x68\x14\x37\x2c\xf5\x10\xd0\x29\x17\x53\x5f\x1f\x02\xda\x97\xf6\xd1\x60\x1f\x3e\x89\xe1\x0a\x62\x1b\x4e\x82\xba\x76\xd4\x1a\x2f\x87\x24\x97\x36\xcd\x35\xa2\x43\x2b\xf3\x68\xda\xf4\x3f\x60\x38\x7c\x27\xf9\x17\x76\x14\xc2\xf4\xd4\xfd\x31\xdd\xd5\xe0\x8d\x63\x42\x9d\x66\x3e\xe1\x4a\x19\x32\xbf\x8f\x4d\xf7\x03\x69\xf3\xc2\xa7\x51\x97\x42\x2e\xd0\x02\x2b\xe8\x0f\xd8\x7b\x79\xdb\x2a\x43\x49\x9a\x48\xbd\xcd\x91\x24\x65\x73\x30\x3a\x45\x08\xe1\x7c\xf0\x20\xc6\x4c\x57\x7b\x8b\xb0\x92\x6c\x4b\xde\x15\x60\xa7\x74\x46\x49\x7e\x5b\xaf\xec\x84\x29\xa3\x11\x71\x93\x84\xf6\x37\xc4\xa0\x08\xc3\xdd\xd6\x26\x10\xdb\xb1\xd4\xc2\xdd\x8f\x1b\xd7\x3e\x7f\x36\x57\xfc\xf2\x4d\xbb\x89\x6a\x14\x5b\x28\xf3\x40\x98\xf9\xd4\x01\x99\xc5\xb7\x20\x03\xc4\xe0\x8e\xab\x96\xae\xc0\x66\xbf\x2d\x97\xc2\x66\x1f\x4c\xd9\x1c\x59\xcd\x4f\x9e\x4f\x56\x17\xcf\xd6\xad\xa6\xe0\x49\x53\xcc\x4c\x7b\xe1\xc3\xf1\x0d\xe3\x1e\x15\x5d\xd1\x74\xe9\x9f\x41\x36\xca\xe0\x8e\x30\x8b\x3c\x22\xb5\xd1\xdd\x66\xb3\x79\x70\x34\x29\xb4\xd5\xdf\xa6\x0e\xc7\xd1\xaa\x50\x04\x3c\x92\xc1\xa9\x49\xb3\xd9\x40\xf6\x04\xd1\xf4\x4e\xbd\xd3\xc3\xe4\xab\x64\x7c\x7e\x66\xf1\x21\x1e\xec\x27\x12\xe0\xe4\xb7\x0c\xb1\xa2\xc1\xc6\xc3\xb4\xe2\x9a\x10\x42\x83\x4a\xcc\x26\xe9\x9b\x38\xf6\x07\x5b\xbe\xa1\x08\xbf\x12\x4c\x3b\x1c\xc4\x27\x52\x27\xbd\x01\x67\x11\x0d\x69\x97\x2d\x46\xb2\xdb\xd6\xb1\x83\x14\xd2\xea\x66\x4a\xc2\xf4\xe4\x49\x0a\xb3\x22\x3e\xb0\x81\x78\xf9\x2e\x0c\x17\xbf\x86\x18\x94\x99\x7c\xd0\x92\xfe\x07\xc0\x6c\x5e\x0d\xb4\x44\x08\x5a\x13\x8c\x63\x8d\x6e\xb7\x88\x9a\x19\x96\x34\x0e\xa4\x60\x99\x1f\x75\xcd\x1a\xba\x0b\xca\xe8\xf9\x77\x95\x87\xf6\xdf\x76\x1f\x75\x37\x31\x99\x14\x6d\xab\xa4\x84\x8a\xc8\xa2\xa9\xb0\x99\xae\x5a\x54\xed\x61\x7e\xcb\x56\x32\x66\x27\x01\x6e\xa3\xd6\xd0\x77\xf9\x04\x74\xdb\xf0\x37\x68\x9b\xd7\x72\x4a\x1c\xef\x36\x26\xe6\xe1\x96\x74\x8c\x05\x0f\x91\xc6\x62\xfd\xa4\x95\xb6\x7e\x5a\xa3\xb0\x16\xdc\x3b\xcc\xb2\xd7\xa9\x73\x3e\xca\x7c\x7b\xdd\x88\x47\x54\x0d\x27\x3b\x9c\x8c\x29\x33\x5e\xbd\xd7\x71\x5e\xe4\xf5\x7d\xfe\x5c\x6a\x0f\x3d\x58\x43\x98\xc0\xea\x55\x37\x5b\xd2\xc3\x1b\x6c\x74\xe9\xf4\xee\xb8\x59\xc8\x97\x70\x63\x12\x5c\xdf\x72\x53\x2d\xe6\x5c\x0a\x00\xd5\x3b\xc0\x03\xc8\xb1\x01\x83\x8e\xe1\x51\x31\x96\x95\xc0\xac\x2a\xce\xf5\xf1\x91\x0b\xc9\x52\xbe\xbc\x7f\x68\x9f\x52\x06\x7f\x81\xc1\x8c\x5d\xfa\xc9\x00\x57\xcd\xbd\x0f\x75\xe9\x28\x16\x3a\xeb\x09\xef\x01\x59\xb6\x6d\xa4\x21\x08\x34\xca\x8e\xe3\xe2\x85\x27\x0b\x51\xf5\xe2\x56\x86\x7c\xe6\x22\x92\x3f\xd3\xc4\x0e\x61\x5e\x13\x42\x41\x8a\x19\x6f\xcb\x8e\x2b\x56\x48\x67\x22\xf7\xb5\xca\x52\x4c\x75\xdb\xdb\x9b\xe6\x31\x4b\x7a\xd5\x90\xb5\xcf\x8f\x80\xd7\x92\x7d\xda\x79\xce\xb1\x36\x9d\x78\x0f\x33\x38\xc1\xef\xb8\x3c\xa7\xbd\xda\x05\xf8\xca\x94\x45\xb5\x00\xc0\x50\x63\x59\xa4\xba\xa2\xa8\xee\x7e\x8b\x4a\xfb\x48\xdb\xdc\x2a\x56\x19\x4a\x8d\xa4\xd1\xac\x42\x52\x45\xb8\x3e\x1e\x8e\x44\x8a\x29\xda\x4e\x20\x71\xae\xa3\xb8\xef\x3a\x3c\xb5\x82\x7e\x61\x6d\x47\x07\xf8\x51\xee\xa6\x26\x09\x72\xea\xde\x34\xda\x0a\x8f\x34\x40\x7f\x4d\x3e\x45\x5b\xa0\xaa\x02\x6a\x85\x3e\xbb\x5e\x6d\x64\xe9\xd8\x10\x5e\x69\xb8\x4e\x36\xfb\x57\xa8\xb6\xe0\xe7\xcb\xb9\xe5\xd5\x24\x98\x80\x36\xd9\x58\xe3\x2a\x38\xf5\x97\x7b\x3c\x70\x38\xc9\x83\x99\x4f\x08\x88\xfe\x30\x91\xaa\x1f\x45\x91\x9f\x06\x02\xb5\xd7\x50\x73\x8b\x17\x1b\x97\x87\xaf\x29\x6f\x2b\xa5\xfe\xe3\x11\xa1\x6f\x1c\xdc\xd8\x10\xa6\x68\x9a\xc7\xa7\x5b\xc1\x9e\x69\x33\x95\xb0\x0c\xfd\xaf\x13\xcc\xa6\x67\x0a\x47\x2d\x44\x9e\x9e\xfe\xf6\xe0\xf9\xd1\xc1\xab\xaa\xba\xaa\x37\xe2\xb2\x7d\x7d\x67\x23\xd9\x8a\xf8\x00\xa0\xb2\xb5\x19\x6b\x28\x4a\x9e\x11\xa5\xc5\xe6\x2c\x4d\x86\x25\x22\x25\x42\x25\x21\x6d\x4f\xf2\x1a\xfd\x49\xbd\x07\xf7\x4e\x9d\x18\x9b\xc5\x76\xd3\xdd\x39\xa7\x39\x77\x98\x75\xe2\xdc\xbc\xf3\x56\xa5\x2c\xa0\x8c\xb2\x9e\xae\x85\x79\xca\x66\x08\xa1\x94\x13\x59\x41\xee\xd7\xe3\x30\xde\x08\xa9\xe5\x09\x5b\x17\x7c\xe2\x6b\x23\x21\xe7\xac\x98\x62\xba\xce\xf3\x71\xc4\xd2\xe9\xdc\x8b\xab\x91\x18\xa1\x5f\xf9\xfc\x46\x79\xa1\xd0\xee\xb6\x48\x06\xa8\x0c\xc7\x39\xed\xfd\xdf\x9d\x4f\xa2\xf4\x2f\x87\x02\x12\xc2\x3a\xe8\x1e\xbc\x91\x68\xc9\x55\x53\x50\x41\xc1\xce\x54\xed\xf8\xe3\xca\xe6\x68\x4d\xab\x1b\x1e\xed\x16\xb2\x5b\xc6\x67\xa3\x66\x91\xd0\xe0\x50\xa4\x9f\x2d\x78\x2e\xd9\xec\x3f\x94\xd5\x0c\x8d\x33\x58\xa8\x23\x75\xd3\x60\x5f\xdb\x79\x12\xb1\xfc\x3e\xd9\x15\x5f\xb1\x05\x2c\x93\xe6\x10\x05\xc2\xf6\xa8\x7c\x42\xcf\x68\xaf\xf9\xe6\xc9\xe1\x98\x13\x65\x37\x70\xc4\x39\xcc\x39\x7f\x9e\xcb\xa2\x7a\x99\xb0\x82\x05\x4d\x8f\x44\xa5\xb8\x2b\xae\xa6\x8b\xd8\x49\xcd\xe7\x04\x4a\x27\x79\x2a\x26\xb3\xa1\x2d\x93\x8c\xb6\x50\xa8\x91\x41\x24\xbe\x06\x9a\x1d\x8a\x0f\x98\xd9\x87\x68\xf9\x14\x4a\xfc\xc8\x51\xb3\x38\xa8\x4d\x79\x7c\x35\xa7\x65\x71\x11\xfa\x42\x78\xb6\x2e\xee\x95\xe3\xdd\xed\xb8\x91\x6d\x03\xc9\x3e\xc8\x84\xac\x97\xe2\x9b\x1d\x44\x90\xec\xae\x90\x62\x8e\xd2\x61\xeb\xcb\xbd\x4d\x0c\x12\xd1\xc2\x95\xe6\x68\x3d\x68\x5c\x50\x8d\x14\xf2\x89\xf5\xb0\xc8\x6b\xbd\x05\xc3\x1e\xdb\x6e\xf4\x6a\xba\x2a\xbe\x24\xf5\x3c\x90\xb3\x3a\xc3\xb8\x03\x36\x16\x68\x7a\x9d\x3b\x29\x00\x87\x6c\xb4\x87\x91\x45\x77\x1c\x09\x57\xa0\x7d\x37\x1f\x98\x26\xe6\x41\x08\x9e\x34\x7c\x15\x5f\xd6\x2c\xf1\x76\xbb\x4f\x6a\xf7\xc2\x23\xb4\x5c\xfd\x0e\x0a\x54\x10\x92\x25\x27\xf9\xa8\x9a\x8b\xb8\x64\xf4\x97\xa7\x63\xfa\xc9\x41\x09\x74\x10\xf4\x48\x37\x3d\x12\x32\x95\x5c\xdd\x4c\x06\x73\x64\x15\x1a\xe3\xf5\x7e\x3b\xd6\x11\x97\x5e\xb1\x89\xe3\xde\x3d\xe6\x59\xb8\xf5\x8f\xc7\xbc\x86\xbb\x77\x17\x71\x1a\xea\x0f\x51\x2a\xe8\xfb\x8f\x0d\xad\x0b\x9a\x91\xcb\x4b\x1d\x51\x20\x95\xde\x29\x23\xa5\x4a\xdd\x08\x83\xf1\xb1\x94\x08\x2a\xbb\x2d\x77\x10\x5e\x9d\x00\xd2\x3e\x0c\x0e\x22\x26\xcb\x2f\x83\x1d\x10\xa6\x62\x23\xd9\xf7\x17\x26\x05\x58\x31\x8f\x72\xb6\x69\x26\xe0\xae\x2a\x16\x9b\x8f\x5f\xb8\x6d\x9f\x61\x17\x60\xd9\x62\x62\x18\x79\x1f\x7a\x18\xb8\x07\xe1\x2d\xd6\x1b\x89\x5d\x96\x88\x5c\x8a\x39\xae\x56\xfa\xa0\x98\x7a\x4b\xc6\x34\xbf\x63\x89\x02\x28\x8c\xbe\x30\x4d\x2e\x60\x85\xb3\x5b\xbd\x8c\x69\xf7\xc7\xbc\x08\xa5\x47\x64\xe5\xa5\x8c\x36\xda\x85\x14\x92\x3c\xab\xca\x33\x94\x08\xa4\xd4\xc4\xa0\x55\x20\xb8\x41\x50\xe1\x49\x38\x61\xb1\x20\x8a\xb6\xd2\x00\x7f\xd4\x70\x71\xec\xd8\x41\x9c\x4d\xe3\x87\x64\xca\xec\xb0\x93\xa2\xcc\x82\x59\xf4\x13\xef\xcb\x13\xe1\x94\x51\xd2\x2b\x9b\xd8\xa1\x92\xf9\x18\x4f\x62\xc4\x38\xb1\xfa\x98\x8c\xdc\x16\xb4\x3a\x19\xed\x3c\xa3\xdc\x13\xbd\xad\xa0\x11\x8c\xf9\x61\x32\xee\x3a\x06\xdb\x5e\xec\x80\xf4\xc9\x56\xb3\x92\x8f\x59\x23\xc5\xa7\x43\x52\xcc\x62\xea\x9e\x8a\x03\x10\xff\x95\x3d\x4f\xd8\x86\xd2\x6d\x6e\x5c\xcb\xb8\xc9\xaf\xda\x42\x4c\xe0\xe0\xc6\x6e\x3b\x51\x12\xf9\x3d\xe9\x88\xf1\x78\xf1\x03\xde\x77\x66\x3c\x3f\x37\x48\x3a\xef\x8a\x49\xb0\x6e\xd8\x64\x42\x55\x33\x36\xa2\xea\x07\x63\x50\xf3\x73\x0d\x60\x71\x64\xb7\x45\x9b\x9e\x90\xe3\xf9\x8a\xb8\x13\x20\x18\xd0\x2c\x86\xb6\x5d\x5e\x23\x58\xc6\x6e\xe8\xd6\x57\xa6\x58\x6a\xf7\x0e\xb2\x53\x69\x42\xb0\x73\x3f\x99\xd3\xdc\xb2\xeb\xb4\x98\x57\xd3\x84\xa8\x70\xcb\x0b\x62\xe3\x18\xa1\x30\xf1\xd9\x05\xa1\x2c\x71\xc3\x19\xad\x38\x0a\x8b\x02\x2d\x4e\x3f\x5f\x5e\xe1\xbb\x17\xd5\x5b\xec\xff\xb1\x28\xfd\x61\xd9\x93\xb5\xe0\x3d\x6d\x0d\x86\x4b\x24\x81\xdd\xe4\xf0\xe4\x72\x80\x0e\x84\xd9\x7b\x2a\x12\x66\x1b\xfb\xb9\x07\x0f\x37\xcd\x45\x8f\x0d\x43\x47\x40\x03\x49\x12\x39\xf6\x98\x70\x24\x38\x6a\x28\x18\x51\x79\x7d\x13\x22\x75\x2e\x6e\x24\xb1\x60\xfc\xdd\xe4\xa4\x29\x38\x3a\x69\x04\x35\xf1\x20\x0d\x0a\xd9\x58\x74\x01\x1d\xb8\x9d\x4f\xfa\xf2\x23\x2e\x84\xa7\x67\x62\x00\x09\xfa\x3e\x53\x4c\x50\xb2\x65\x68\x05\xa3\x80\x79\x9a\x16\x81\x7b\x35\x0a\x3b\x23\xd4\xd0\x3f\xcf\xff\xe4\xcf\x04\x82\x83\xc4\x71\x44\x18\x9d\xc9\xb9\x65\x37\x5c\xff\x5e\xe4\x17\x1a\x23\xc1\x72\xfe\xf7\xa8\xdd\xef\xd1\xc2\x4b\xe3\x38\x20\x36\x91\x22\x7c\x30\x56\xf7\x76\x1e\xca\x36\x08\x78\x51\xae\xff\x7f\x91\xe8\xac\xeb\x96\xd7\xb2\x10\x82\xa9\x5d\x6b\x79\x6a\xd7\x68\x8b\x9c\x48\x75\x4f\xa3\x4d\x28\x73\xc1\x37\x70\x12\xcc\x16\xa7\x98\xe8\x0c\x71\xd5\x75\x95\x72\xb1\x7e\x3a\x01\x3f\xa2\xe8\x78\xa5\x19\x4c\xe5\x35\x8e\xce\xc5\x60\x2f\xb2\x06\xd5\x90\xff\x76\x5f\x57\x75\x59\x04\xd4\x36\x1e\x11\x8f\xb1\x8f\x8f\xda\xd8\xdf\x38\x7f\xe6\x3f\x79\x67\x8e\xa9\x13\xd3\xb1\x63\x39\x55\xf8\xe1\x1c\x2d\x8d\x7c\x71\x67\x91\x23\x41\x88\xbd\xcb\x7b\xcc\xcc\xc6\xf3\xeb\x85\x99\x3e\xbe\x53\x47\x8b\xf9\x2d\xff\xf2\x33\x31\xf3\x94\xf2\x16\x42\x64\xa6\xc0\x29\xd0\xc8\xbb\x9a\x41\xe0\x9c\xc3\x5e\xff\x2a\x58\xd4\xad\x3b\x92\xb4\xd6\x82\xc7\xac\x73\xa7\x28\x89\x2b\xb1\x1b\x57\xc3\x9a\xed\x49\x70\x9c\x20\x0e\x91\x6b\xcb\xa5\x22\x9d\x16\x04\x3e\x34\xb1\xc0\x42\x23\xbe\x93\x78\x4e\x3d\xe8\xb7\x43\x49\x42\x5c\xf0\x73\xd7\x06\x85\x65\xe7\xd9\x14\xf2\x65\x73\x58\x1d\xc9\x19\x91\x9f\xee\xc1\x81\xd3\x71\xcc\x66\x29\xf8\x95\x72\x8f\x85\x26\xac\xef\x9c\xe5\x01\x10\xfd\x92\x57\xfc\x67\x7d\xe7\xfa\x23\xf9\x8f\x35\xba\x06\x86\xfc\x65\xd0\x74\xc4\x12\xa5\xe0\x2a\xd0\x67\x83\x6f\x80\xfc\x24\x43\x7e\x2d\x0d\xec\xff\x85\xb1\x02\x9e\x28\x66\x0b\x34\x48\x51\xa0\xbe\x45\xcd\xc1\x07\x16\xa0\x59\x74\xe5\xe0\x9d\x00\xf9\x94\xa4\xde\x6e\x97\xcf\x71\x48\xc3\x4e\xbe\xb5\x56\x5b\xe0\xec\xcf\x4d\xfa\x7c\x8b\x70\x69\x1d\x0a\x4f\xc4\xad\xf4\x0a\x04\x97\x77\xec\xf5\x60\xda\xaf\xe4\x37\xbb\xb8\xaf\x38\x0a\xd9\x08\x19\xf3\x01\x82\x02\xe7\x38\x51\x9d\x37\x2b\xdb\x17\xf7\x71\xa2\x9d\x8b\xc5\x84\x51\x26\x25\x67\xd3\x8b\xeb\x9f\xc9\x2e\x00\x0c\x18\xdf\x63\x24\xe6\xc4\xda\x79\x47\x54\xc8\x49\xb2\xfd\xed\x1b\x67\xac\x18\xb4\x8a\x8b\x05\x77\x3d\x62\xe2\x4e\xc7\x8a\xd9\xcb\x00\xb9\x95\x9f\xe2\x0c\x0d\x87\x78\xad\x63\x62\x60\xaf\x68\xe1\xf3\x36\xe0\xa9\x67\x8b\x7c\x84\x75\x2a\x62\x43\x55\x25\x73\x80\xfe\x51\xd9\x8e\x1c\x17\xb6\xf0\x26\xff\x82\x06\xe9\xb1\xb4\xc0\x45\x1c\x9e\xe8\xa5\xde\x6a\x38\xa2\xbf\x52\x81\x0f\xa1\x7f\x81\x1a\x4d\xc5\x69\x31\xec\x4d\xe8\xfe\xe4\x7c\x55\x34\x41\xaa\xf1\x68\x3f\x94\xf5\xe6\xfa\xd5\x4e\xaa\xf6\x6e\x6d\x6a\xcb\xd6\x27\xd6\x4e\x05\x45\xef\xb2\x65\x07\x41\xd6\x5b\xfb\x41\xb1\x2d\x84\xb5\xf8\xa9\x2a\xe9\x78\xdb\x26\x12\xae\xda\x68\x23\xb3\xd4\x22\xe5\x64\x29\xe7\xfe\xa6\xa7\x02\x80\x01\xe7\x0c\xda\x4c\x3b\xdc\x74\x17\x50\x85\x8e\x4a\x4f\x44\xcb\x87\xe4\x71\x12\xae\x9a\x03\x38\x56\x94\x02\xc3\x86\xb1\xf2\x32\xba\xc1\x45\x67\x93\x46\x2d\xa3\x38\xb3\x85\x1b\xb3\x1d\x93\xe6\x4d\x61\x47\x3b\xcb\xbf\x40\x0d\x0f\xc9\x9b\xf5\xe0\x6b\x98\x91\x22\x51\x8f\x61\x49\x8d\x82\x65\x84\x6c\x6b\x59\x6b\x73\xd4\x9a\x13\x86\xcf\x28\x40\x6b\x33\xd9\x0e\x9d\x91\x9a\xf9\xbf\x0e\x74\x45\x60\x61\x34\x3c\xe0\x7f\x46\x19\x1f\x05\x0c\x5f\x69\xf4\xc6\x2d\x89\x56\x17\x77\x5e\x1c\xce\x6e\x82\xa9\xb3\x00\xea\x5c\xed\x96\x67\xb7\x84\xe5\x9b\x68\x7c\x8f\x48\x70\x77\xc2\x45\x8d\x6d\xb7\x26\xcb\xf0\x09\xc3\x3c\x92\x57\x6f\x35\xa1\x49\xa7\xaa\x11\xf2\x9c\xca\xd5\x79\x67\xfc\x3e\xc9\xcd\xa6\x5a\xe3\x0b\xa1\x75\xbf\x3e\x40\x5a\x30\x3c\xae\xed\x44\x0e\xd2\x1a\x99\x73\x5c\x4f\xe5\x24\xf8\x42\x39\x71\x47\x3d\xb4\x8f\xa5\x05\xf4\x4a\x4d\x13\x56\xb8\x2a\x90\xc7\xf5\x81\x73\x2f\xeb\x08\x9c\x0e\x83\x01\xff\xc5\x4d\x32\x07\x57\x14\x47\xc4\xf7\x5d\x96\xb0\xba\x58\x87\xa5\x58\xda\x9a\x2f\xf2\x72\x6f\xa8\x74\x8c\x21\x79\x27\x61\x93\x69\x5b\xf0\x36\x58\x97\x8b\xda\xa7\x4b\x4c\x02\xfb\xf0\x0c\x1a\x5a\x9e\xca\x00\x9e\x7a\x3b\xfd\x5d\x48\x88\x1c\xec\xb7\x43\xe5\xb6\x5b\x0c\x0b\x1e\x02\x4b\x80\x04\x48\x53\x26\x5a\xc0\xee\x2f\xd9\x2d\xde\xbb\xd5\x9c\x4d\x4c\xb3\xa0\x9d\x83\xf9\xdf\xc5\xc2\x74\x11\x1e\xc8\xca\xab\x4c\xbc\x65\x51\x8e\xf6\xa8\xe2\xe0\xf1\x49\x93\xc1\x7a\xf6\x6d\x7d\xd5\xd3\x06\x43\xb2\x39\x1b\x72\x89\x75\xf3\x88\x6b\xb0\xc6\x40\x65\xc8\x7e\xec\x0c\x28\x69\x6a\x07\xd1\xc3\x04\x16\xb7\x90\x1d\xcd\x4f\x94\x13\x9c\x91\x7d\xc9\x86\xff\x15\xf1\x36\x4b\x22\x7c\xf5\x94\xba\x63\xe2\x83\x62\xe5\x21\x17\xa5\x46\x9f\xc1\x5d\xed\xb4\x5c\x7e\x12\x4b\x58\xb0\x14\xe2\xc4\x98\x93\x3e\xc3\x62\xab\x60\xc7\x58\xdb\xc1\x5c\xc7\xb1\x7b\x36\xfd\x92\x65\xf9\xd5\x85\x7f\xdb\xa2\xed\xb3\x6a\x35\x5c\x52\xf5\x3d\x09\xf0\x3e\x47\x4c\xa4\x5a\x06\xf9\x99\x5d\x1f\x10\xb0\xbe\x32\x33\xeb\x83\x1b\x04\x72\x00\xd3\x54\x72\xb2\x13\x7b\xc2\xfb\x77\xb8\x19\xda\xf9\xa8\xe9\xb8\x53\xd9\x52\x93\x19\x93\xf9\x2c\x62\x09\xa3\x58\x7a\xd8\x12\x98\x9d\x85\x7a\xae\x67\xaa\x7e\x87\x27\x5f\xc3\x4b\xe4\xb3\xb7\x8b\x47\x5c\x32\x00\xe3\x5f\x04\x53\xbc\xdd\x00\xd8\xd7\x18\xa5\x28\x6c\xb4\x7d\xee\x49\xd9\x0a\xfe\xd7\xf4\xfe\x42\x49\x6b\xa3\x3c\xf1\x3d\x6f\x17\xc1\x05\xed\xdb\x25\xc8\x76\xd6\xf5\x2a\x21\xcf\x09\x8d\x42\xd9\xbf\xc7\x2f\x05\x35\x28\x1f\x6c\x02\x21\x03\x45\x5d\xcb\x87\xfc\xd5\x05\xd7\x71\x4e\x79\x41\x7c\x9f\xcd\x32\x20\x8e\x38\x8c\x9d\x50\xe5\x61\xf2\x31\xa0\x9c\xc7\x31\x49\xf2\xec\x24\x8b\xd1\xfc\x88\x5f\x3e\x10\x59\x65\x9b\x1a\x4a\xc9\x78\xbb\x5c\x81\xb0\x93\xda\x5b\x9d\xc2\x93\x09\x6b\xa9\xfd\xbe\xc0\x05\x02\x19\x2e\x4f\xae\x10\xaf\xd3\x60\x5c\x2c\x02\x0a\x62\x8a\x05\x5d\x56\x59\xc3\xef\xfb\x76\x44\x68\x34\xa8\xe8\x4e\xdf\x52\x39\xc9\xea\x6c\xb6\xcb\x85\xae\xf6\x4b\x68\xbc\x7e\x2f\x96\x85\x6f\x65\xe9\x76\xba\x1b\xd5\x25\xc1\x96\x5e\xc7\xa2\xd9\x54\xcc\x99\xfb\xa8\xfa\x13\xd3\x29\x22\x7f\x7f\x93\x21\x68\x9c\x63\x1a\x12\xdc\xb0\xac\x99\x48\x7b\xfe\x47\x25\xe9\xb7\xd0\x1e\x84\x81\x02\x49\x43\xcc\x35\xf7\xa0\xe8\x7a\x21\x42\xa9\x22\x9d\x35\x3b\x41\x28\x89\x7a\x9b\x3b\xc4\xa4\xeb\xc8\x2d\xde\x1c\xbf\x76\x16\xdc\x65\x44\xe0\x5d\xb9\x08\x20\x3e\xc5\x68\xb9\xf4\x88\x93\xa0\xfc\x9a\x1a\x77\xcb\x73\x40\xaf\xe9\x77\xb5\x1f\x3a\x4a\x1e\x55\x5a\xb8\x11\xb9\x72\x39\x96\xed\x60\xb7\x01\x84\xc5\x38\xcb\xde\xd3\x27\xfa\xda\x7d\x9a\xc2\x05\xb3\x29\x58\xcf\xce\xeb\x3c\xee\x19\x2d\xa0\x3e\xfd\x31\x47\x6c\x88\xdf\xd0\x58\x12\xdf\x72\xc9\x77\xd1\x7f\x44\xae\x5d\x69\x6f\x33\x61\x85\xd2\xd9\x07\x79\x74\x7d\x6d\x91\x34\x7d\xa9\x6b\x40\xff\xbd\x32\x3f\x16\x02\x2e\xa6\x3a\x74\x40\x77\x89\x3f\x6e\x16\x99\x1d\x65\x84\x9d\x65\xcb\xcd\xc1\x0f\x83\xdb\x70\x81\x09\x35\xcb\xa0\x4e\xde\x08\xf7\x4a\x72\x61\xa2\x86\x13\x0e\x14\x71\x84\xc0\xf1\x28\x27\xd7\x4f\xc6\xc8\xdb\x93\x54\xfe\x3c\xa3\xe0\x44\x0a\x06\xe3\x2b\x15\x66\x23\xb3\x58\x7c\x7b\x23\x87\x29\x54\xfa\xa2\x7e\xb7\x18\x82\xbf\x94\x5f\x03\x5b\x72\x12\xdf\x25\x23\xa7\xe8\xc5\xac\x16\x58\xbf\xa6\xa4\x60\xad\x97\x39\x77\xdc\x59\x28\x38\x71\xb6\xde\x43\xe4\x92\xf8\xd4\x76\xbf\x34\x0f\x7f\x6a\x92\xa3\x8d\xc4\xab\x15\xbd\xd3\xe0\xff\x15\x95\x9c\x7c\x49\xda\x65\x81\x0e\x60\x06\x0c\xce\xfe\xfd\x93\x1c\xe9\xe5\x42\x4c\xb6\xfa\xa2\x7e\x2e\x26\xb3\xa2\x3f\x52\xb9\xca\x19\xae\x15\xba\x0b\xfe\x5e\x47\xb5\xa7\x00\x40\x2d\xed\xa7\xf5\x33\x78\x97\xdc\x23\xfe\xe1\x1c\x62\x38\x3a\x3f\xbd\x1f\x28\xae\x2a\xc4\xcc\xed\xfc\x92\x64\x18\xd0\xdb\x7d\x6e\x22\x83\x31\xac\x7a\x8d\xf3\x11\x93\xee\x68\xbc\xcc\xb0\x4a\xa7\xfd\xd4\x8c\x9e\xa7\x4e\xa5\xa8\xb0\xce\x94\xe7\xa3\x1c\x3d\xc5\x96\xfd\x10\xd3\x03\x80\x28\x0e\x61\xbd\x2c\x11\x62\x5e\xa9\xf1\xad\xa2\xe0\x31\xeb\x80\x7d\x57\xb3\x6a\x17\xf3\xbc\x74\x88\x81\xa5\x6a\x98\x77\xe3\x58\x38\x8f\x2d\x49\x3c\x61\x94\x3c\x79\xc8\x87\x9a\xd7\x4e\x51\x5c\x9b\x38\xb1\x0f\x6b\xf4\xc0\xbb\xe1\x29\xfa\x8f\xcf\x2c\x2a\x82\xe9\x13\xec\xe2\xd3\x3a\x33\xa5\xc7\xa5\x81\xe7\x57\x14\x20\xf1\x4f\x21\x05\xd3\x76\xab\xa2\xaa\x5c\x5f\x58\x10\xd7\xe3\x4e\x78\xab\xe7\x68\x65\x54\x07\x19\xd2\x63\x4b\x38\x4f\xbb\x84\x0c\x05\xec\x3b\xc2\xe5\x3a\xf1\x30\x56\x14\x16\x80\xab\xa6\x7a\xdb\xe6\xe8\x88\x8b\x2d\x88\x95\x9e\xb9\xe9\xa5\x6f\x98\x55\x2b\xd0\x83\x23\x0a\xf6\xae\xfb\xd8\x35\xad\xf9\xf5\x0f\x0d\xaa\xe9\x81\x4c\x67\x02\xf7\xd0\xb1\xe9\xca\xde\x35\xa3\x53\x6d\x62\x7d\x92\xa3\x01\x17\x72\x77\x91\x00\x45\xd0\xff\x08\x6e\xd8\x4e\x61\xc4\x2c\x82\x3f\xdd\x8b\x7e\xf1\x69\x1d\x44\x64\x5b\x40\xca\x57\xa1\xcc\xc0\x13\xda\x6a\x24\xcb\xd4\x32\x57\xbf\xc0\xbf\x69\x6c\x7a\x60\xbb\x6d\xd6\x77\xb3\xa7\xc2\xf3\x78\xb3\xa9\x63\xab\xbb\x27\x15\xc9\xb7\xb5\x7f\xb7\x95\x9a\xe9\x70\xc1\xbe\xd9\x3a\xd0\x7e\x05\x07\xae\xc8\xee\x94\xfc\xa0\x97\xa4\xd0\x66\x93\x97\x2a\x4b\xcf\xf3\x68\xbd\x4b\x34\xe1\x30\x9c\xa8\xc8\x47\x07\x5a\xf2\xeb\x5d\xba\x14\x44\x13\x21\x19\x78\x81\xad\x53\x5f\x78\x92\x93\x52\x61\xf2\xfb\x94\xe1\x73\x94\x31\x63\x27\xb5\xb6\xa0\xc7\x77\x8d\x4f\x8e\xe2\xa5\x39\xee\x3b\x4c\xd3\x9b\x53\xf3\x71\x61\x4e\x71\xd9\xe0\x53\x83\x20\x44\x59\x0c\x0c\xad\x40\x19\xfe\x55\xe8\x48\x9e\x9a\xba\x62\x04\x90\xa8\xea\xb8\xac\x8b\x06\x92\x84\x18\x5b\xd7\xb8\x19\xfe\x01\x83\xba\x8b\xb7\x38\x2e\x19\xf9\x5f\x3f\x60\x7d\x87\xf6\x71\x8d\x86\x89\xd0\x39\x4d\x5e\x88\xe1\x4e\x2c\x8d\xea\xfb\x59\x0d\x4c\x1f\xb1\xbd\x76\x08\xaf\x6e\x4a\x2b\xaa\x2a\x0c\x27\x04\x4f\x00\xb5\xdf\x03\x4b\x13\x1d\xa8\x68\x8a\x25\x0c\x08", 4096); *(uint64_t*)0x200213c8 = 0x20021300; *(uint32_t*)0x20021300 = r[0]; *(uint32_t*)0x20021304 = r[0]; *(uint32_t*)0x20021308 = r[1]; *(uint32_t*)0x2002130c = r[0]; *(uint32_t*)0x20021310 = r[1]; *(uint32_t*)0x20021314 = r[1]; *(uint64_t*)0x200213d0 = 0x20021340; *(uint64_t*)0x200213d8 = 0x20021380; *(uint32_t*)0x200213e0 = 0x1000; *(uint32_t*)0x200213e4 = 6; *(uint32_t*)0x200213e8 = 0x3d; *(uint32_t*)0x200213ec = 3; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200213c0, /*actual_bytes=*/0x20021400, /*actual_handles=*/0x20021440); if (res == ZX_OK) { r[4] = *(uint32_t*)0x20021380; r[5] = *(uint32_t*)0x20021384; r[6] = *(uint32_t*)0x20021388; } *(uint64_t*)0x20031540 = 0x20021480; *(uint32_t*)0x20021480 = 0; memset((void*)0x20021484, 0, 3); *(uint8_t*)0x20021487 = 1; *(uint64_t*)0x20021488 = 0x66c69d1b00000000; *(uint32_t*)0x20021490 = 2; *(uint32_t*)0x20021494 = 2; *(uint64_t*)0x20021498 = 9; *(uint64_t*)0x200214a0 = -1; *(uint64_t*)0x200214a8 = 2; memset((void*)0x200214b0, 0, 1); *(uint64_t*)0x20031548 = 0x200214c0; *(uint64_t*)0x20031550 = 0x20021500; *(uint64_t*)0x20031558 = 0x20031500; *(uint32_t*)0x20031560 = 0x38; *(uint32_t*)0x20031564 = 0; *(uint32_t*)0x20031568 = 0x10000; *(uint32_t*)0x2003156c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[5], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20031540, /*actual_bytes=*/0x20031580, /*actual_handles=*/0x200315c0); *(uint64_t*)0x200416c0 = 0x20031600; *(uint32_t*)0x20031600 = 0; memset((void*)0x20031604, 0, 3); *(uint8_t*)0x20031607 = 1; *(uint64_t*)0x20031608 = 0x4fcfbc1100000000; *(uint32_t*)0x20031610 = 0; *(uint32_t*)0x20031614 = 1; *(uint64_t*)0x20031618 = 0xc1; *(uint64_t*)0x20031620 = -1; memcpy((void*)0x20031628, "*[#,)&,-[)}", 11); *(uint64_t*)0x200416c8 = 0x20031640; *(uint32_t*)0x20031640 = 0; *(uint32_t*)0x20031644 = r[5]; *(uint64_t*)0x200416d0 = 0x20031680; *(uint64_t*)0x200416d8 = 0x20041680; *(uint32_t*)0x200416e0 = 0x38; *(uint32_t*)0x200416e4 = 2; *(uint32_t*)0x200416e8 = 0x10000; *(uint32_t*)0x200416ec = 4; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200416c0, /*actual_bytes=*/0x20041700, /*actual_handles=*/0x20041740); if (res == ZX_OK) r[7] = *(uint32_t*)0x2004168c; res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/0x104d); if (res == ZX_OK) r[8] = res; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t))CAST(zx_channel_create))(/*options=*/0, /*out0=*/0x20041880, /*out1=*/0x200418c0); if (res == ZX_OK) r[9] = *(uint32_t*)0x20041880; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t))CAST(zx_exception_get_thread))(/*handle=*/r[5], /*out=*/0x20041900); if (res == ZX_OK) r[10] = *(uint32_t*)0x20041900; *(uint64_t*)0x20041bc0 = 0x20041780; memcpy((void*)0x20041780, "\xfa\x2f\x40\x69\xc5\xf5\x4d\x24\x79\xf8\x4d\x1d\x73\x3a\x52\xf5\x9f\x0a\x68\x70\x94\x66\xe6\x63\x3a\x63\x18\xf6\x05\x7f\xbf\xc9\xf0\x48\xb0\x9b\xfb\xb6\x39\x05\xdc\x82\x47\x45\xb1\x62\x47\xee\x57\x0e\x79\xaf\x77\xfd\xe7\x3b\xe0\x86\x53\x56\x84\x1b\x89\x97\xc5\x5e\x4c\x9b\x79\x2e\x2c\xd8\xc5\xac\x57\x89\x60\xab\x6b\x2d\x80\x4c\xd8\x9e\xb8\xf0\xde\x21\x51\xa1\x69\x3b\x64\x98\xd6\x1a\xbe\xdb\xd5\xdb\x7c\xae\x8b\x09\xf9\x4c\x6d\x94\x2c\xb3\x10\x51\x52\x49\x61\xcc\x82\xc4\x94\x0a\xf1\xab\x9c\xee\xba\x52\x71\x6e\xb2\x5b\x87\x0e\xaf\xbb\x41\xd9\xa1\x56\x2e\x96\x70\xdf\x00\x38\x4a\xa9\x55\x4b\x70\xf9\xa1\x66\x83\x41\x50\xf2\xe3\x72\x15\xe4\x13\xba\x12\x38\xa1\x81\xd4\xf7\x43\x58\x43\xb6\xbb\x56\xfa\x88\x61\xd8\x68\x80\x01\xd3\x9d\x9e\x2b\x18\x9f\x67\xe8\x05\x33\x11\x89\x64\x29\x97\x63\xf5\x86\x82\x8c\x69\x3c\xc9\x71\x2a\x9c\x25\x52\xdc\x30\xe5\x72\x25\x21\x2f\x5a\x50\xef\xe5\x6d\xa9\x9a\x32\x82\x4c\x4c", 227); *(uint64_t*)0x20041bc8 = 0x20041a80; *(uint32_t*)0x20041a80 = r[9]; *(uint32_t*)0x20041a84 = r[10]; *(uint32_t*)0x20041a88 = 0; *(uint32_t*)0x20041a8c = r[1]; *(uint32_t*)0x20041a90 = r[6]; *(uint32_t*)0x20041a94 = r[0]; *(uint32_t*)0x20041a98 = r[4]; *(uint32_t*)0x20041a9c = 0; *(uint32_t*)0x20041aa0 = 0; *(uint64_t*)0x20041bd0 = 0x20041ac0; *(uint64_t*)0x20041bd8 = 0x20041b80; *(uint32_t*)0x20041be0 = 0xe3; *(uint32_t*)0x20041be4 = 9; *(uint32_t*)0x20041be8 = 0x9a; *(uint32_t*)0x20041bec = 8; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); memcpy((void*)0x20000000, "\xc4\xe1\xd9\xd2\x9e\x91\x00\x00\x00\xc4\x81\x71\xfd\x84\x48\x00\x00\x00\x20\xc4\xa1\x7f\x70\x44\xba\x34\x0e\xf3\x0f\xae\xd6\xc4\x62\x79\xa7\x5d\x03\xc4\xc2\xfd\x96\x42\xa7\x2e\x66\x43\x0f\x38\xf5\x59\x00\x42\x0f\x34\xc4\xe1\x78\x2b\x42\xc0\xc4\x42\x65\x92\x24\x2c", 66); syz_execute_func(/*text=*/0x20000000); syz_future_time(/*when=*/1); syz_job_default(); syz_mmap(/*addr=*/0x20ffe000, /*len=*/0x1000); syz_process_self(); syz_thread_self(); syz_vmar_root_self(); } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :282:75: error: use of undeclared identifier 'zx_channel_call_etc' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor3869201555 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/12 (0.37s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:0 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:true Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(0x0, 0x0, 0x0, &(0x7f00000100c0)={&(0x7f0000000000)={{}, {0xffffffff, 0x0, {0x4, 0xffffffffffffffff}}}, &(0x7f0000000040), &(0x7f0000000080), &(0x7f0000010080)={{0x0, 0x0, 0x0, 0x0}}, 0x28, 0x2, 0x10000, 0x4}, &(0x7f0000010100), &(0x7f0000010140)) (fail_nth: 1) r3 = zx_deadline_after(0x5) (async) zx_channel_call$fuchsia_io_DirectoryAdminLink(r2, 0x0, r3, &(0x7f0000020240)={&(0x7f0000010180)={{}, {0x3, 0xffffffffffffffff}, 0xffffffff, {0x1b3}}, &(0x7f00000101c0), &(0x7f0000010200), &(0x7f0000020200), 0x34, 0x1, 0x10000}, &(0x7f0000020280), &(0x7f00000202c0)) (rerun: 4) zx_channel_call(r2, 0x0, r3, &(0x7f00000213c0)={&(0x7f0000020300)="6b3c1256279544bb32d36243afcbfda5cd1a1759ba09b008c97e2be49ab10adda6d88f529de7b04ad9b0fdd96d3184196e8e6975312bf6a2c53df14551fa4b32627dd679eef9c59f190ca4036814372cf510d02917535f1f02da97f6d1601f3e89e10a621b4e82ba76d41a2f87249736cd35a2432bf368daf43f60387c27f9177614c2f4d4fd31ddd5e08d63429d663ee14a1932bf8f4df70369f3c2a75197422ed0022be80fd87b79db2a43499a48bdcd91246573303a4508e17cf020c64c577b8bb0926c4bde1560a77446497e5bafec8429a311719384f637c4a008c3ddd62610dbb1d4c2dd8f1bd73e7f3657fcf24dbb896a145b28f34098f9d40199c5b72003c4e08eab96aec066bf2d97c2661f4cd91c59cd4f9e4f5617cfd6ada6e04953cc4c7be1c3f10de31e155dd174e99f4136cae08e308b3c22b5d1dd66b379703429b4d5dfa60ec7d1aa50043c92c1a949b3d940f604d1f44ebdd3c3e4ab647c7e66f1211eec2712e0e4b70cb1a2c1c6c3b4e29a1042834acc26e99b38f6075bbea108bf124c3b1cc4275227bd0167110d69972d46b2dbd6b18314d2ea664ac2f4e4490ab3223eb08178f92e0c17bf861894997cd092fe07c06c5e0db444085a138c638d6eb7889a1996340ea460991f75cd1aba0bcae8f9779587f6df761f75373199146daba4848ac8a2a9b099ae5a54ed617ecb56326627016ea3d6d077f90474dbf037689bd7724a1cef3626e6e196748c050f91c662fda495b67e5aa3b016dc3bccb2d7a9733eca7c7bdd8847540d273b9c8c29335ebdd7715ee4f57dfe5c6a0f3d584398c0ea55375bd2c31b6c74e9f4eeb859c8977063125cdf72532de65c0a00d53bc003c8b101838ee151319695c0ac2acef5f1910bc952bebc7f689f52067f81c18c5dfac90057cdbd0f75e928163aeb09ef0159b66da4210834ca8ee3e285270b51f5e256867ce622923fd3c40e615e1342418a196fcb8e2b56486722f7b5ca524c75dbdb9be6314b7ad590b5cf8f80d7927dda79ceb1369d780f3338c1efb83ca7bdda05f8ca9445b500c0506359a4baa2a8ee7e8b4afb48dbdc2a56194a8da4d1ac425245b83e1e8e448a29da4e2071aea3b8ef3a3cb5827e616d4707f851eea6260972eade34da0a8f34407f4d3e455ba0aa026a853ebb5e6d64e9d8105e69b84e36fb57a8b6e0e7cbb9e5d524988036d958e32a38f5977b3c7038c983994f0888fe3091aa1f45919f0602b5d750738b171b9787af296f2ba5fee311a16f1cdcd810a6689ac7a75bc19e693395b00cfdaf13cca6670a472d449e9efef6e0f9d1c1abaabaaa37e2b27d7d6723d98af800a0b2b5196b284a9e11a5c5e62c4d862522254225216d4ff21afd49bd07f74e9d189bc576d3dd39a739779875e2dcbcf356a52ca08cb29eae8579ca6608a194135941eed7e330de08a9e5095b177ce26b2321e7ac9862bacef371c4d2e9dc8bab9118a15ff9fc4679a1d0eeb64806a80cc739edfddf9d4fa2f42f870212c23ae81ebc9168c955535041c1ce54edf8e3cae6684dab1b1eed16b25bc667a36691d0e050a49f2d782ed9ec3f94d50c8d3358a82375d3605fdb7912b1fc3ed9155fb1052c93e61005c2f6a87c42cf68aff9e6c9e19813653770c439cc397f9ecba27a99b082054d8f44a5b82baea68bd849cde7044a27792a26b3a12d938cb650a8914124be069a1d8a0f98d98768f9144afcc851b338a84d797c35a7657111fa4278b62eee95e3ddedb8916d03c93ec884ac97e29b1d4490ecae90628ed261ebcbbd4d0c12d1c295e6683d685c508d14f289f5b0c86bbd05c31edb6ef46aba2abe24f53c90b33ac3b8033616687a9d3b2900876cb4879145771c0957a07d371f9826e641089e347c155fd62cf176bb4f6af7c223b45cfd0e0a5410922527f9a89a8bb864f497a763fac941097410f448373d1232955cdd4c067364151ae3f57e3bd611975eb189e3de3de659b8f58fc7bc86bb7717711aea0f512ae8fb8f0dad0b9a91cb4b1d512095de2923a54add0883f1b194082abb2d77105e9d00d23e0c0e2226cb2f831d10a66223d9f717260558318f72b66926e0ae2a169b8f5fb86d9f611760d9626218791f7a18b807e12dd61b895d96885c8a39ae56faa0987a4bc634bf638902288cbe304d2e6085b35bbd8c69f7c7bc08a54764e5a58c36da8514923cabca339408a4d4c4a05520b84150e1493861b1208ab6d2007fd47071ecd8419c4de38764caecb093a2cc8259f413efcb13e19451d22b9bd8a192f9184f62c438b1fa988cdc16b43a19ed3ca3dc13bdada0118cf96132ee3a06db5eec80f4c956b3928f5923c5a74352cc62ea9e8a0310ff953d4fd886d26d6e5ccbb8c9afda424ce0e0c66e3b5112f93de988f178f103de77663c3f37483aef8a49b06ed86442553336a2ea076350f3730d607164b7459b9e90e3f98ab8132018d02c86b65d5e2358c66ee8d657a6586af70eb2536942b0733f99d3dcb2ebb49857d384a870cb0b62e318a130f1d905a12c71c319ad380a8b022d4e3f5f5ee1bb17d55becffb128fd61d993b5e03d6d0d864b2481dde4f0e472800e84d97b2a12661bfbb9070f37cd458f0d43474003491239f6987024386a281851797d1322752e6e24b160fcdde4a429383a690435f1200d0ad95874011db89d4ffaf2232e84a767620009fa3e534c50b2656805a380799a16817b350a3b23d4d03fcfffe4cf048283c47144189dc9b965375cff5ee4171a23c172fef7a8ddefd1c24be338203691227c3056f7761eca36087851aeff7f91e8aceb96d7b21082a95d6b796ad7688b9c48754fa34d2873c1377012cc16a798e80c71d5759572b17e3a013fa2e878a5194ce5358ecec5602fb206d590ff765f57755904d4361e118fb18f8fdad8df387fe63f79678ea913d3b1633955f8e11c2d8d7c716791234188bdcb7bccccc6f3eb85993ebe53478bf92dfff23331f394f2164264a6c029d0c8bb9a41e09cc35eff2a58d4ad3b92b4d682c7ac73a728892bb11b57c39aed49709c200e916bcba5229d16043e34b1c04223be93784e3de8b74349425cf073d7068565e7d914f26573581dc919919feec181d371cc6629f895728f8526acef9ce50110fd9257fc677de7fa23f98f35ba0686fc65d074c412a5e02ad067836f80fc24437e2d0decff85b1029e28660b344851a0be45cdc10716a05974e5e09d00f994a4de6e97cf7148c34ebeb5565be0eccf4dfa7c8b70691d0a4fc4adf40a049777ecf560daafe437bbb8af380ad90819f3018202e738519d372bdb17f771a29d8bc58451262567d38beb9fc92e000c18df6324e6c4da794754c849b2fded1b67ac18b48a8b05773d62e24ec78ad9cb00b9959fe20c0d8778ad636260af68e1f336e0a9678b7c84752a624355257380fe51d98e1c17b6f026ff8206e9b1b4c0451c9ee8a5de6a38a2bf52810fa17f811a4dc56931ec4de8fee47c553441aaf1683f94f5e6fad54eaaf66e6d6acbd627d64e0545efb2650741d65bfb41b12d84b5f8a92ae978db2612aeda6823b3d422e56429e7fea6a7028001e70cda4c3bdc741750858e4a4f44cb87e47112ae9a0338569402c386b1f232bac1456793462da338b3851bb31d93e64d61473bcbbf400d0fc99bf5e06b989122518f61498d8265846c6b596b73d49a1386cf28406b33d90e9d919af9bf0e74456061343ce07f46191f050c5f69f4c62d895617775e1cce6e82a9b300ea5ced9667b784e59b687c8f487077c2458d6db726cbf009c33c92576f35a149a7aa11f29ccad57967fc3ec9cda65ae30ba175bf3e405a303caeed440ed21a99735c4fe524f8423971473db48fa505f44a4d1356b82a90c7f581732feb089c0e8301ffc54d3207571447c4f75d96b0ba5887a558da9a2ff2726fa8748c2179276193695bf03658978bdaa74b4c02fbf00c1a5a9eca009e7a3bfd5d48881cecb743e5b65b0c0b1e024b80044853265ac0ee2fd92ddebbd59c4d4cb3a09d83f9dfc5c274111ec8caab4cbc65518ef6a8e2e0f14993c17af66d7dd5d30643b2391b728975f3886bb0c64065c87eec0c28696a07d1c30416b7901dcd4f94139c917dc986ff15f1364b227cf594ba63e28362e52117a5469fc15dedb45c7e124b58b014e2c498933ec362ab60c758dbc15cc7b17b36fd9265f9d5857fdba2edb36a355c52f53d09f03e474ca45a06f9995d1f10b0be3233eb831b047200d35472b2137bc2fb77b819daf9a8e9b853d952931993f92c6209a3587ad812989d857aae67aa7e87275fc34be4b3b78b475c3200e35f0453bcdd00d8d718a5286cb47dee49d90afed7f4fe42496ba33cf13d6f17c105eddb25c876d6f52a21cf098d42d9bfc72f0535281f6c022103455dcb87fcd505d7714e79417c9fcd32208e388c9d50e561f231a09cc73149f2ec248bd1fc885f3e1059659b1a4ac978bb5c81b093da5b9dc293096ba9fdbec00502192e4fae10afd3605c2c020a628a055d5659c3effb76446834a8e84edf5239c9ea6cb6cb85aef64b68bc7e2f96856f65e976ba1bd525c1965ec7a2d954cc99fba8fa13d329227f7f9321689c631a12dcb0ac99487bfe4725e9b7d01e8481024943cc35f7a0e87a2142a9229d353b4128897a9b3bc4a4ebc82dde1cbf7616dc6544e05db908203ec568b9f48893a0fc9a1a77cb7340afe977b51f3a4a1e555ab811b9723996ed60b70184c538cbded327fada7d9ac205b32958cfceeb3cee192da03efd31476c88dfd05812df72c977d17f44ae5d696f336185d2d90779747d6d91347da96b40ffbd323f16022ea63a744077893f6e16991d65849d65cbcdc10f83db70810935cba04ede08f74a7261a286130e147184c0f12827d74fc6c8db9354fe3ca3e0440a06e32b156623b3587c7b23872954faa27eb71882bf945f035b7212df2523a7e8c5ac1658bfa6a460ad973977dc59283871b6de43e492f8d476bf340f7f6a92a38dc4ab15bdd3e0ff15959c7c49da65810e60060ccefefd931ce9e5424cb6faa27e2e26b3a23f52b9ca19ae15ba0bfe5e47b5a700402deda7f5337897dc23fee11c62383a3fbd1f28ae2ac4ccedfc926418d0db7d6e228331ac7a8df31193ee68bcccb04aa7fdd48c9ea74ea5a8b0ce94e7a31c3dc596fd10d30380280e61bd2c11625ea9f1ada2e031eb807d57b36a17f3bc748881a56a9877e358388f2d493c61943c79c8879ad74e515c9b38b10f6bf4c0bbe129fa8fcf2c2a82e913ece2d33a33a5c7a581e7571420f14f2105d376aba2aa5c5f5810d7e34e78abe76865540719d2634b384fbb840c05ec3bc2e53af13056141680aba67adbe6e8888b2d88959eb9e9a56f98552bd083230af6aefbd835adf9f50f0daae9814c6702f7d0b1e9cade35a3536d627d92a301177277910045d0ff086ed84e61c42c823fdd8b7ef1691d44645b40ca57a1ccc013da6a24cbd43257bfc0bf696c7a60bb6dd677b3a7c2f378b3a963abbb2715c9b7b57fb7959ae970c1bed93ad07e0507aec8ee94fca097a4d06693972a4bcff368bd4b34e1309ca8c847075af2eb5dba14441321197881ad535f7892935261f2fb94e17394316327b5b6a0c7778d4f8ee2a539ee3b4cd39b53f371614e71d9e053832044590c0cad4019fe55e8489e9aba620490a8eab8ac8b069284185bd7b819fe0183ba8bb7382e19f95f3f607d87f6718d8689d0394d5e88e14e2c8deafb590d4c1fb1bd7608af6e4a2baa2a0c27044f00b5df034b131da8688a250c08", &(0x7f0000021300)=[r0, r0, r1, r0, r1, r1], &(0x7f0000021340)=""/61, &(0x7f0000021380)=[0x0, 0x0, 0x0], 0x1000, 0x6, 0x3d, 0x3}, &(0x7f0000021400), &(0x7f0000021440)) zx_channel_call$fuchsia_cobalt_LoggerLogMemoryUsage(r5, 0x0, r3, &(0x7f0000031540)={&(0x7f0000021480)={{}, 0x2, 0x2, {0x9, 0xffffffffffffffff}, 0x2, {'\x00'}}, &(0x7f00000214c0), &(0x7f0000021500), &(0x7f0000031500), 0x38, 0x0, 0x10000}, &(0x7f0000031580), &(0x7f00000315c0)) zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(r2, 0x0, r3, &(0x7f00000416c0)={&(0x7f0000031600)={{}, {0x0, 0x100000001, {0xc1, 0xffffffffffffffff}}, {{'*[#,)&,-[)}'}}}, &(0x7f0000031640)={{0x0, r5}}, &(0x7f0000031680), &(0x7f0000041680)={{0x0, 0x0, 0x0, 0x0}}, 0x38, 0x2, 0x10000, 0x4}, &(0x7f0000041700), &(0x7f0000041740)) r8 = zx_deadline_after(0x104d) zx_channel_create(0x0, &(0x7f0000041880)=0x0, &(0x7f00000418c0)) zx_exception_get_thread(r5, &(0x7f0000041900)=0x0) zx_channel_call_etc(r7, 0x7, r8, &(0x7f0000041bc0)={&(0x7f0000041780)="fa2f4069c5f54d2479f84d1d733a52f59f0a68709466e6633a6318f6057fbfc9f048b09bfbb63905dc824745b16247ee570e79af77fde73be0865356841b8997c55e4c9b792e2cd8c5ac578960ab6b2d804cd89eb8f0de2151a1693b6498d61abedbd5db7cae8b09f94c6d942cb31051524961cc82c4940af1ab9ceeba52716eb25b870eafbb41d9a1562e9670df00384aa9554b70f9a166834150f2e37215e413ba1238a181d4f7435843b6bb56fa8861d8688001d39d9e2b189f67e80533118964299763f586828c693cc9712a9c2552dc30e57225212f5a50efe56da99a32824c4c", &(0x7f0000041a80)=[r9, r10, 0x0, r1, r6, r0, r4, 0x0, 0x0], &(0x7f0000041ac0)=""/154, &(0x7f0000041b80)=[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], 0xe3, 0x9, 0x9a, 0x8}, &(0x7f0000041c00), &(0x7f0000041c40)) syz_execute_func(&(0x7f0000000000)="c4e1d9d29e91000000c48171fd844800000020c4a17f7044ba340ef30faed6c46279a75d03c4c2fd9642a72e66430f38f55900420f34c4e1782b42c0c4426592242c") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffe000/0x1000)=nil, 0x1000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { if (write(1, "executing program\n", sizeof("executing program\n") - 1)) { } int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 50); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[11] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: *(uint64_t*)0x200100c0 = 0x20000000; *(uint32_t*)0x20000000 = 0; memset((void*)0x20000004, 0, 3); *(uint8_t*)0x20000007 = 1; *(uint64_t*)0x20000008 = 0x4fcfbc1100000000; *(uint32_t*)0x20000010 = -1; *(uint32_t*)0x20000014 = 0; *(uint64_t*)0x20000018 = 4; *(uint64_t*)0x20000020 = -1; *(uint64_t*)0x200100c8 = 0x20000040; *(uint32_t*)0x20000040 = 0; *(uint32_t*)0x20000044 = 0; *(uint64_t*)0x200100d0 = 0x20000080; *(uint64_t*)0x200100d8 = 0x20010080; *(uint32_t*)0x200100e0 = 0x28; *(uint32_t*)0x200100e4 = 2; *(uint32_t*)0x200100e8 = 0x10000; *(uint32_t*)0x200100ec = 4; inject_fault(1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/0, /*args=*/0x200100c0, /*actual_bytes=*/0x20010100, /*actual_handles=*/0x20010140); if (res == ZX_OK) { r[0] = *(uint32_t*)0x20010080; r[1] = *(uint32_t*)0x20010088; r[2] = *(uint32_t*)0x2001008c; } break; case 1: res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/5); if (res == ZX_OK) r[3] = res; break; case 2: *(uint64_t*)0x20020240 = 0x20010180; *(uint32_t*)0x20010180 = 0; memset((void*)0x20010184, 0, 3); *(uint8_t*)0x20010187 = 1; *(uint64_t*)0x20010188 = 0x1b8a5e6400000000; *(uint64_t*)0x20010190 = 3; *(uint64_t*)0x20010198 = -1; *(uint32_t*)0x200101a0 = -1; *(uint64_t*)0x200101a4 = 0x1b3; *(uint64_t*)0x200101ac = 0; *(uint64_t*)0x20020248 = 0x200101c0; *(uint32_t*)0x200101c0 = 0; *(uint64_t*)0x20020250 = 0x20010200; *(uint64_t*)0x20020258 = 0x20020200; *(uint32_t*)0x20020260 = 0x34; *(uint32_t*)0x20020264 = 1; *(uint32_t*)0x20020268 = 0x10000; *(uint32_t*)0x2002026c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); } } break; case 3: *(uint64_t*)0x200213c0 = 0x20020300; memcpy((void*)0x20020300, "\x6b\x3c\x12\x56\x27\x95\x44\xbb\x32\xd3\x62\x43\xaf\xcb\xfd\xa5\xcd\x1a\x17\x59\xba\x09\xb0\x08\xc9\x7e\x2b\xe4\x9a\xb1\x0a\xdd\xa6\xd8\x8f\x52\x9d\xe7\xb0\x4a\xd9\xb0\xfd\xd9\x6d\x31\x84\x19\x6e\x8e\x69\x75\x31\x2b\xf6\xa2\xc5\x3d\xf1\x45\x51\xfa\x4b\x32\x62\x7d\xd6\x79\xee\xf9\xc5\x9f\x19\x0c\xa4\x03\x68\x14\x37\x2c\xf5\x10\xd0\x29\x17\x53\x5f\x1f\x02\xda\x97\xf6\xd1\x60\x1f\x3e\x89\xe1\x0a\x62\x1b\x4e\x82\xba\x76\xd4\x1a\x2f\x87\x24\x97\x36\xcd\x35\xa2\x43\x2b\xf3\x68\xda\xf4\x3f\x60\x38\x7c\x27\xf9\x17\x76\x14\xc2\xf4\xd4\xfd\x31\xdd\xd5\xe0\x8d\x63\x42\x9d\x66\x3e\xe1\x4a\x19\x32\xbf\x8f\x4d\xf7\x03\x69\xf3\xc2\xa7\x51\x97\x42\x2e\xd0\x02\x2b\xe8\x0f\xd8\x7b\x79\xdb\x2a\x43\x49\x9a\x48\xbd\xcd\x91\x24\x65\x73\x30\x3a\x45\x08\xe1\x7c\xf0\x20\xc6\x4c\x57\x7b\x8b\xb0\x92\x6c\x4b\xde\x15\x60\xa7\x74\x46\x49\x7e\x5b\xaf\xec\x84\x29\xa3\x11\x71\x93\x84\xf6\x37\xc4\xa0\x08\xc3\xdd\xd6\x26\x10\xdb\xb1\xd4\xc2\xdd\x8f\x1b\xd7\x3e\x7f\x36\x57\xfc\xf2\x4d\xbb\x89\x6a\x14\x5b\x28\xf3\x40\x98\xf9\xd4\x01\x99\xc5\xb7\x20\x03\xc4\xe0\x8e\xab\x96\xae\xc0\x66\xbf\x2d\x97\xc2\x66\x1f\x4c\xd9\x1c\x59\xcd\x4f\x9e\x4f\x56\x17\xcf\xd6\xad\xa6\xe0\x49\x53\xcc\x4c\x7b\xe1\xc3\xf1\x0d\xe3\x1e\x15\x5d\xd1\x74\xe9\x9f\x41\x36\xca\xe0\x8e\x30\x8b\x3c\x22\xb5\xd1\xdd\x66\xb3\x79\x70\x34\x29\xb4\xd5\xdf\xa6\x0e\xc7\xd1\xaa\x50\x04\x3c\x92\xc1\xa9\x49\xb3\xd9\x40\xf6\x04\xd1\xf4\x4e\xbd\xd3\xc3\xe4\xab\x64\x7c\x7e\x66\xf1\x21\x1e\xec\x27\x12\xe0\xe4\xb7\x0c\xb1\xa2\xc1\xc6\xc3\xb4\xe2\x9a\x10\x42\x83\x4a\xcc\x26\xe9\x9b\x38\xf6\x07\x5b\xbe\xa1\x08\xbf\x12\x4c\x3b\x1c\xc4\x27\x52\x27\xbd\x01\x67\x11\x0d\x69\x97\x2d\x46\xb2\xdb\xd6\xb1\x83\x14\xd2\xea\x66\x4a\xc2\xf4\xe4\x49\x0a\xb3\x22\x3e\xb0\x81\x78\xf9\x2e\x0c\x17\xbf\x86\x18\x94\x99\x7c\xd0\x92\xfe\x07\xc0\x6c\x5e\x0d\xb4\x44\x08\x5a\x13\x8c\x63\x8d\x6e\xb7\x88\x9a\x19\x96\x34\x0e\xa4\x60\x99\x1f\x75\xcd\x1a\xba\x0b\xca\xe8\xf9\x77\x95\x87\xf6\xdf\x76\x1f\x75\x37\x31\x99\x14\x6d\xab\xa4\x84\x8a\xc8\xa2\xa9\xb0\x99\xae\x5a\x54\xed\x61\x7e\xcb\x56\x32\x66\x27\x01\x6e\xa3\xd6\xd0\x77\xf9\x04\x74\xdb\xf0\x37\x68\x9b\xd7\x72\x4a\x1c\xef\x36\x26\xe6\xe1\x96\x74\x8c\x05\x0f\x91\xc6\x62\xfd\xa4\x95\xb6\x7e\x5a\xa3\xb0\x16\xdc\x3b\xcc\xb2\xd7\xa9\x73\x3e\xca\x7c\x7b\xdd\x88\x47\x54\x0d\x27\x3b\x9c\x8c\x29\x33\x5e\xbd\xd7\x71\x5e\xe4\xf5\x7d\xfe\x5c\x6a\x0f\x3d\x58\x43\x98\xc0\xea\x55\x37\x5b\xd2\xc3\x1b\x6c\x74\xe9\xf4\xee\xb8\x59\xc8\x97\x70\x63\x12\x5c\xdf\x72\x53\x2d\xe6\x5c\x0a\x00\xd5\x3b\xc0\x03\xc8\xb1\x01\x83\x8e\xe1\x51\x31\x96\x95\xc0\xac\x2a\xce\xf5\xf1\x91\x0b\xc9\x52\xbe\xbc\x7f\x68\x9f\x52\x06\x7f\x81\xc1\x8c\x5d\xfa\xc9\x00\x57\xcd\xbd\x0f\x75\xe9\x28\x16\x3a\xeb\x09\xef\x01\x59\xb6\x6d\xa4\x21\x08\x34\xca\x8e\xe3\xe2\x85\x27\x0b\x51\xf5\xe2\x56\x86\x7c\xe6\x22\x92\x3f\xd3\xc4\x0e\x61\x5e\x13\x42\x41\x8a\x19\x6f\xcb\x8e\x2b\x56\x48\x67\x22\xf7\xb5\xca\x52\x4c\x75\xdb\xdb\x9b\xe6\x31\x4b\x7a\xd5\x90\xb5\xcf\x8f\x80\xd7\x92\x7d\xda\x79\xce\xb1\x36\x9d\x78\x0f\x33\x38\xc1\xef\xb8\x3c\xa7\xbd\xda\x05\xf8\xca\x94\x45\xb5\x00\xc0\x50\x63\x59\xa4\xba\xa2\xa8\xee\x7e\x8b\x4a\xfb\x48\xdb\xdc\x2a\x56\x19\x4a\x8d\xa4\xd1\xac\x42\x52\x45\xb8\x3e\x1e\x8e\x44\x8a\x29\xda\x4e\x20\x71\xae\xa3\xb8\xef\x3a\x3c\xb5\x82\x7e\x61\x6d\x47\x07\xf8\x51\xee\xa6\x26\x09\x72\xea\xde\x34\xda\x0a\x8f\x34\x40\x7f\x4d\x3e\x45\x5b\xa0\xaa\x02\x6a\x85\x3e\xbb\x5e\x6d\x64\xe9\xd8\x10\x5e\x69\xb8\x4e\x36\xfb\x57\xa8\xb6\xe0\xe7\xcb\xb9\xe5\xd5\x24\x98\x80\x36\xd9\x58\xe3\x2a\x38\xf5\x97\x7b\x3c\x70\x38\xc9\x83\x99\x4f\x08\x88\xfe\x30\x91\xaa\x1f\x45\x91\x9f\x06\x02\xb5\xd7\x50\x73\x8b\x17\x1b\x97\x87\xaf\x29\x6f\x2b\xa5\xfe\xe3\x11\xa1\x6f\x1c\xdc\xd8\x10\xa6\x68\x9a\xc7\xa7\x5b\xc1\x9e\x69\x33\x95\xb0\x0c\xfd\xaf\x13\xcc\xa6\x67\x0a\x47\x2d\x44\x9e\x9e\xfe\xf6\xe0\xf9\xd1\xc1\xab\xaa\xba\xaa\x37\xe2\xb2\x7d\x7d\x67\x23\xd9\x8a\xf8\x00\xa0\xb2\xb5\x19\x6b\x28\x4a\x9e\x11\xa5\xc5\xe6\x2c\x4d\x86\x25\x22\x25\x42\x25\x21\x6d\x4f\xf2\x1a\xfd\x49\xbd\x07\xf7\x4e\x9d\x18\x9b\xc5\x76\xd3\xdd\x39\xa7\x39\x77\x98\x75\xe2\xdc\xbc\xf3\x56\xa5\x2c\xa0\x8c\xb2\x9e\xae\x85\x79\xca\x66\x08\xa1\x94\x13\x59\x41\xee\xd7\xe3\x30\xde\x08\xa9\xe5\x09\x5b\x17\x7c\xe2\x6b\x23\x21\xe7\xac\x98\x62\xba\xce\xf3\x71\xc4\xd2\xe9\xdc\x8b\xab\x91\x18\xa1\x5f\xf9\xfc\x46\x79\xa1\xd0\xee\xb6\x48\x06\xa8\x0c\xc7\x39\xed\xfd\xdf\x9d\x4f\xa2\xf4\x2f\x87\x02\x12\xc2\x3a\xe8\x1e\xbc\x91\x68\xc9\x55\x53\x50\x41\xc1\xce\x54\xed\xf8\xe3\xca\xe6\x68\x4d\xab\x1b\x1e\xed\x16\xb2\x5b\xc6\x67\xa3\x66\x91\xd0\xe0\x50\xa4\x9f\x2d\x78\x2e\xd9\xec\x3f\x94\xd5\x0c\x8d\x33\x58\xa8\x23\x75\xd3\x60\x5f\xdb\x79\x12\xb1\xfc\x3e\xd9\x15\x5f\xb1\x05\x2c\x93\xe6\x10\x05\xc2\xf6\xa8\x7c\x42\xcf\x68\xaf\xf9\xe6\xc9\xe1\x98\x13\x65\x37\x70\xc4\x39\xcc\x39\x7f\x9e\xcb\xa2\x7a\x99\xb0\x82\x05\x4d\x8f\x44\xa5\xb8\x2b\xae\xa6\x8b\xd8\x49\xcd\xe7\x04\x4a\x27\x79\x2a\x26\xb3\xa1\x2d\x93\x8c\xb6\x50\xa8\x91\x41\x24\xbe\x06\x9a\x1d\x8a\x0f\x98\xd9\x87\x68\xf9\x14\x4a\xfc\xc8\x51\xb3\x38\xa8\x4d\x79\x7c\x35\xa7\x65\x71\x11\xfa\x42\x78\xb6\x2e\xee\x95\xe3\xdd\xed\xb8\x91\x6d\x03\xc9\x3e\xc8\x84\xac\x97\xe2\x9b\x1d\x44\x90\xec\xae\x90\x62\x8e\xd2\x61\xeb\xcb\xbd\x4d\x0c\x12\xd1\xc2\x95\xe6\x68\x3d\x68\x5c\x50\x8d\x14\xf2\x89\xf5\xb0\xc8\x6b\xbd\x05\xc3\x1e\xdb\x6e\xf4\x6a\xba\x2a\xbe\x24\xf5\x3c\x90\xb3\x3a\xc3\xb8\x03\x36\x16\x68\x7a\x9d\x3b\x29\x00\x87\x6c\xb4\x87\x91\x45\x77\x1c\x09\x57\xa0\x7d\x37\x1f\x98\x26\xe6\x41\x08\x9e\x34\x7c\x15\x5f\xd6\x2c\xf1\x76\xbb\x4f\x6a\xf7\xc2\x23\xb4\x5c\xfd\x0e\x0a\x54\x10\x92\x25\x27\xf9\xa8\x9a\x8b\xb8\x64\xf4\x97\xa7\x63\xfa\xc9\x41\x09\x74\x10\xf4\x48\x37\x3d\x12\x32\x95\x5c\xdd\x4c\x06\x73\x64\x15\x1a\xe3\xf5\x7e\x3b\xd6\x11\x97\x5e\xb1\x89\xe3\xde\x3d\xe6\x59\xb8\xf5\x8f\xc7\xbc\x86\xbb\x77\x17\x71\x1a\xea\x0f\x51\x2a\xe8\xfb\x8f\x0d\xad\x0b\x9a\x91\xcb\x4b\x1d\x51\x20\x95\xde\x29\x23\xa5\x4a\xdd\x08\x83\xf1\xb1\x94\x08\x2a\xbb\x2d\x77\x10\x5e\x9d\x00\xd2\x3e\x0c\x0e\x22\x26\xcb\x2f\x83\x1d\x10\xa6\x62\x23\xd9\xf7\x17\x26\x05\x58\x31\x8f\x72\xb6\x69\x26\xe0\xae\x2a\x16\x9b\x8f\x5f\xb8\x6d\x9f\x61\x17\x60\xd9\x62\x62\x18\x79\x1f\x7a\x18\xb8\x07\xe1\x2d\xd6\x1b\x89\x5d\x96\x88\x5c\x8a\x39\xae\x56\xfa\xa0\x98\x7a\x4b\xc6\x34\xbf\x63\x89\x02\x28\x8c\xbe\x30\x4d\x2e\x60\x85\xb3\x5b\xbd\x8c\x69\xf7\xc7\xbc\x08\xa5\x47\x64\xe5\xa5\x8c\x36\xda\x85\x14\x92\x3c\xab\xca\x33\x94\x08\xa4\xd4\xc4\xa0\x55\x20\xb8\x41\x50\xe1\x49\x38\x61\xb1\x20\x8a\xb6\xd2\x00\x7f\xd4\x70\x71\xec\xd8\x41\x9c\x4d\xe3\x87\x64\xca\xec\xb0\x93\xa2\xcc\x82\x59\xf4\x13\xef\xcb\x13\xe1\x94\x51\xd2\x2b\x9b\xd8\xa1\x92\xf9\x18\x4f\x62\xc4\x38\xb1\xfa\x98\x8c\xdc\x16\xb4\x3a\x19\xed\x3c\xa3\xdc\x13\xbd\xad\xa0\x11\x8c\xf9\x61\x32\xee\x3a\x06\xdb\x5e\xec\x80\xf4\xc9\x56\xb3\x92\x8f\x59\x23\xc5\xa7\x43\x52\xcc\x62\xea\x9e\x8a\x03\x10\xff\x95\x3d\x4f\xd8\x86\xd2\x6d\x6e\x5c\xcb\xb8\xc9\xaf\xda\x42\x4c\xe0\xe0\xc6\x6e\x3b\x51\x12\xf9\x3d\xe9\x88\xf1\x78\xf1\x03\xde\x77\x66\x3c\x3f\x37\x48\x3a\xef\x8a\x49\xb0\x6e\xd8\x64\x42\x55\x33\x36\xa2\xea\x07\x63\x50\xf3\x73\x0d\x60\x71\x64\xb7\x45\x9b\x9e\x90\xe3\xf9\x8a\xb8\x13\x20\x18\xd0\x2c\x86\xb6\x5d\x5e\x23\x58\xc6\x6e\xe8\xd6\x57\xa6\x58\x6a\xf7\x0e\xb2\x53\x69\x42\xb0\x73\x3f\x99\xd3\xdc\xb2\xeb\xb4\x98\x57\xd3\x84\xa8\x70\xcb\x0b\x62\xe3\x18\xa1\x30\xf1\xd9\x05\xa1\x2c\x71\xc3\x19\xad\x38\x0a\x8b\x02\x2d\x4e\x3f\x5f\x5e\xe1\xbb\x17\xd5\x5b\xec\xff\xb1\x28\xfd\x61\xd9\x93\xb5\xe0\x3d\x6d\x0d\x86\x4b\x24\x81\xdd\xe4\xf0\xe4\x72\x80\x0e\x84\xd9\x7b\x2a\x12\x66\x1b\xfb\xb9\x07\x0f\x37\xcd\x45\x8f\x0d\x43\x47\x40\x03\x49\x12\x39\xf6\x98\x70\x24\x38\x6a\x28\x18\x51\x79\x7d\x13\x22\x75\x2e\x6e\x24\xb1\x60\xfc\xdd\xe4\xa4\x29\x38\x3a\x69\x04\x35\xf1\x20\x0d\x0a\xd9\x58\x74\x01\x1d\xb8\x9d\x4f\xfa\xf2\x23\x2e\x84\xa7\x67\x62\x00\x09\xfa\x3e\x53\x4c\x50\xb2\x65\x68\x05\xa3\x80\x79\x9a\x16\x81\x7b\x35\x0a\x3b\x23\xd4\xd0\x3f\xcf\xff\xe4\xcf\x04\x82\x83\xc4\x71\x44\x18\x9d\xc9\xb9\x65\x37\x5c\xff\x5e\xe4\x17\x1a\x23\xc1\x72\xfe\xf7\xa8\xdd\xef\xd1\xc2\x4b\xe3\x38\x20\x36\x91\x22\x7c\x30\x56\xf7\x76\x1e\xca\x36\x08\x78\x51\xae\xff\x7f\x91\xe8\xac\xeb\x96\xd7\xb2\x10\x82\xa9\x5d\x6b\x79\x6a\xd7\x68\x8b\x9c\x48\x75\x4f\xa3\x4d\x28\x73\xc1\x37\x70\x12\xcc\x16\xa7\x98\xe8\x0c\x71\xd5\x75\x95\x72\xb1\x7e\x3a\x01\x3f\xa2\xe8\x78\xa5\x19\x4c\xe5\x35\x8e\xce\xc5\x60\x2f\xb2\x06\xd5\x90\xff\x76\x5f\x57\x75\x59\x04\xd4\x36\x1e\x11\x8f\xb1\x8f\x8f\xda\xd8\xdf\x38\x7f\xe6\x3f\x79\x67\x8e\xa9\x13\xd3\xb1\x63\x39\x55\xf8\xe1\x1c\x2d\x8d\x7c\x71\x67\x91\x23\x41\x88\xbd\xcb\x7b\xcc\xcc\xc6\xf3\xeb\x85\x99\x3e\xbe\x53\x47\x8b\xf9\x2d\xff\xf2\x33\x31\xf3\x94\xf2\x16\x42\x64\xa6\xc0\x29\xd0\xc8\xbb\x9a\x41\xe0\x9c\xc3\x5e\xff\x2a\x58\xd4\xad\x3b\x92\xb4\xd6\x82\xc7\xac\x73\xa7\x28\x89\x2b\xb1\x1b\x57\xc3\x9a\xed\x49\x70\x9c\x20\x0e\x91\x6b\xcb\xa5\x22\x9d\x16\x04\x3e\x34\xb1\xc0\x42\x23\xbe\x93\x78\x4e\x3d\xe8\xb7\x43\x49\x42\x5c\xf0\x73\xd7\x06\x85\x65\xe7\xd9\x14\xf2\x65\x73\x58\x1d\xc9\x19\x91\x9f\xee\xc1\x81\xd3\x71\xcc\x66\x29\xf8\x95\x72\x8f\x85\x26\xac\xef\x9c\xe5\x01\x10\xfd\x92\x57\xfc\x67\x7d\xe7\xfa\x23\xf9\x8f\x35\xba\x06\x86\xfc\x65\xd0\x74\xc4\x12\xa5\xe0\x2a\xd0\x67\x83\x6f\x80\xfc\x24\x43\x7e\x2d\x0d\xec\xff\x85\xb1\x02\x9e\x28\x66\x0b\x34\x48\x51\xa0\xbe\x45\xcd\xc1\x07\x16\xa0\x59\x74\xe5\xe0\x9d\x00\xf9\x94\xa4\xde\x6e\x97\xcf\x71\x48\xc3\x4e\xbe\xb5\x56\x5b\xe0\xec\xcf\x4d\xfa\x7c\x8b\x70\x69\x1d\x0a\x4f\xc4\xad\xf4\x0a\x04\x97\x77\xec\xf5\x60\xda\xaf\xe4\x37\xbb\xb8\xaf\x38\x0a\xd9\x08\x19\xf3\x01\x82\x02\xe7\x38\x51\x9d\x37\x2b\xdb\x17\xf7\x71\xa2\x9d\x8b\xc5\x84\x51\x26\x25\x67\xd3\x8b\xeb\x9f\xc9\x2e\x00\x0c\x18\xdf\x63\x24\xe6\xc4\xda\x79\x47\x54\xc8\x49\xb2\xfd\xed\x1b\x67\xac\x18\xb4\x8a\x8b\x05\x77\x3d\x62\xe2\x4e\xc7\x8a\xd9\xcb\x00\xb9\x95\x9f\xe2\x0c\x0d\x87\x78\xad\x63\x62\x60\xaf\x68\xe1\xf3\x36\xe0\xa9\x67\x8b\x7c\x84\x75\x2a\x62\x43\x55\x25\x73\x80\xfe\x51\xd9\x8e\x1c\x17\xb6\xf0\x26\xff\x82\x06\xe9\xb1\xb4\xc0\x45\x1c\x9e\xe8\xa5\xde\x6a\x38\xa2\xbf\x52\x81\x0f\xa1\x7f\x81\x1a\x4d\xc5\x69\x31\xec\x4d\xe8\xfe\xe4\x7c\x55\x34\x41\xaa\xf1\x68\x3f\x94\xf5\xe6\xfa\xd5\x4e\xaa\xf6\x6e\x6d\x6a\xcb\xd6\x27\xd6\x4e\x05\x45\xef\xb2\x65\x07\x41\xd6\x5b\xfb\x41\xb1\x2d\x84\xb5\xf8\xa9\x2a\xe9\x78\xdb\x26\x12\xae\xda\x68\x23\xb3\xd4\x22\xe5\x64\x29\xe7\xfe\xa6\xa7\x02\x80\x01\xe7\x0c\xda\x4c\x3b\xdc\x74\x17\x50\x85\x8e\x4a\x4f\x44\xcb\x87\xe4\x71\x12\xae\x9a\x03\x38\x56\x94\x02\xc3\x86\xb1\xf2\x32\xba\xc1\x45\x67\x93\x46\x2d\xa3\x38\xb3\x85\x1b\xb3\x1d\x93\xe6\x4d\x61\x47\x3b\xcb\xbf\x40\x0d\x0f\xc9\x9b\xf5\xe0\x6b\x98\x91\x22\x51\x8f\x61\x49\x8d\x82\x65\x84\x6c\x6b\x59\x6b\x73\xd4\x9a\x13\x86\xcf\x28\x40\x6b\x33\xd9\x0e\x9d\x91\x9a\xf9\xbf\x0e\x74\x45\x60\x61\x34\x3c\xe0\x7f\x46\x19\x1f\x05\x0c\x5f\x69\xf4\xc6\x2d\x89\x56\x17\x77\x5e\x1c\xce\x6e\x82\xa9\xb3\x00\xea\x5c\xed\x96\x67\xb7\x84\xe5\x9b\x68\x7c\x8f\x48\x70\x77\xc2\x45\x8d\x6d\xb7\x26\xcb\xf0\x09\xc3\x3c\x92\x57\x6f\x35\xa1\x49\xa7\xaa\x11\xf2\x9c\xca\xd5\x79\x67\xfc\x3e\xc9\xcd\xa6\x5a\xe3\x0b\xa1\x75\xbf\x3e\x40\x5a\x30\x3c\xae\xed\x44\x0e\xd2\x1a\x99\x73\x5c\x4f\xe5\x24\xf8\x42\x39\x71\x47\x3d\xb4\x8f\xa5\x05\xf4\x4a\x4d\x13\x56\xb8\x2a\x90\xc7\xf5\x81\x73\x2f\xeb\x08\x9c\x0e\x83\x01\xff\xc5\x4d\x32\x07\x57\x14\x47\xc4\xf7\x5d\x96\xb0\xba\x58\x87\xa5\x58\xda\x9a\x2f\xf2\x72\x6f\xa8\x74\x8c\x21\x79\x27\x61\x93\x69\x5b\xf0\x36\x58\x97\x8b\xda\xa7\x4b\x4c\x02\xfb\xf0\x0c\x1a\x5a\x9e\xca\x00\x9e\x7a\x3b\xfd\x5d\x48\x88\x1c\xec\xb7\x43\xe5\xb6\x5b\x0c\x0b\x1e\x02\x4b\x80\x04\x48\x53\x26\x5a\xc0\xee\x2f\xd9\x2d\xde\xbb\xd5\x9c\x4d\x4c\xb3\xa0\x9d\x83\xf9\xdf\xc5\xc2\x74\x11\x1e\xc8\xca\xab\x4c\xbc\x65\x51\x8e\xf6\xa8\xe2\xe0\xf1\x49\x93\xc1\x7a\xf6\x6d\x7d\xd5\xd3\x06\x43\xb2\x39\x1b\x72\x89\x75\xf3\x88\x6b\xb0\xc6\x40\x65\xc8\x7e\xec\x0c\x28\x69\x6a\x07\xd1\xc3\x04\x16\xb7\x90\x1d\xcd\x4f\x94\x13\x9c\x91\x7d\xc9\x86\xff\x15\xf1\x36\x4b\x22\x7c\xf5\x94\xba\x63\xe2\x83\x62\xe5\x21\x17\xa5\x46\x9f\xc1\x5d\xed\xb4\x5c\x7e\x12\x4b\x58\xb0\x14\xe2\xc4\x98\x93\x3e\xc3\x62\xab\x60\xc7\x58\xdb\xc1\x5c\xc7\xb1\x7b\x36\xfd\x92\x65\xf9\xd5\x85\x7f\xdb\xa2\xed\xb3\x6a\x35\x5c\x52\xf5\x3d\x09\xf0\x3e\x47\x4c\xa4\x5a\x06\xf9\x99\x5d\x1f\x10\xb0\xbe\x32\x33\xeb\x83\x1b\x04\x72\x00\xd3\x54\x72\xb2\x13\x7b\xc2\xfb\x77\xb8\x19\xda\xf9\xa8\xe9\xb8\x53\xd9\x52\x93\x19\x93\xf9\x2c\x62\x09\xa3\x58\x7a\xd8\x12\x98\x9d\x85\x7a\xae\x67\xaa\x7e\x87\x27\x5f\xc3\x4b\xe4\xb3\xb7\x8b\x47\x5c\x32\x00\xe3\x5f\x04\x53\xbc\xdd\x00\xd8\xd7\x18\xa5\x28\x6c\xb4\x7d\xee\x49\xd9\x0a\xfe\xd7\xf4\xfe\x42\x49\x6b\xa3\x3c\xf1\x3d\x6f\x17\xc1\x05\xed\xdb\x25\xc8\x76\xd6\xf5\x2a\x21\xcf\x09\x8d\x42\xd9\xbf\xc7\x2f\x05\x35\x28\x1f\x6c\x02\x21\x03\x45\x5d\xcb\x87\xfc\xd5\x05\xd7\x71\x4e\x79\x41\x7c\x9f\xcd\x32\x20\x8e\x38\x8c\x9d\x50\xe5\x61\xf2\x31\xa0\x9c\xc7\x31\x49\xf2\xec\x24\x8b\xd1\xfc\x88\x5f\x3e\x10\x59\x65\x9b\x1a\x4a\xc9\x78\xbb\x5c\x81\xb0\x93\xda\x5b\x9d\xc2\x93\x09\x6b\xa9\xfd\xbe\xc0\x05\x02\x19\x2e\x4f\xae\x10\xaf\xd3\x60\x5c\x2c\x02\x0a\x62\x8a\x05\x5d\x56\x59\xc3\xef\xfb\x76\x44\x68\x34\xa8\xe8\x4e\xdf\x52\x39\xc9\xea\x6c\xb6\xcb\x85\xae\xf6\x4b\x68\xbc\x7e\x2f\x96\x85\x6f\x65\xe9\x76\xba\x1b\xd5\x25\xc1\x96\x5e\xc7\xa2\xd9\x54\xcc\x99\xfb\xa8\xfa\x13\xd3\x29\x22\x7f\x7f\x93\x21\x68\x9c\x63\x1a\x12\xdc\xb0\xac\x99\x48\x7b\xfe\x47\x25\xe9\xb7\xd0\x1e\x84\x81\x02\x49\x43\xcc\x35\xf7\xa0\xe8\x7a\x21\x42\xa9\x22\x9d\x35\x3b\x41\x28\x89\x7a\x9b\x3b\xc4\xa4\xeb\xc8\x2d\xde\x1c\xbf\x76\x16\xdc\x65\x44\xe0\x5d\xb9\x08\x20\x3e\xc5\x68\xb9\xf4\x88\x93\xa0\xfc\x9a\x1a\x77\xcb\x73\x40\xaf\xe9\x77\xb5\x1f\x3a\x4a\x1e\x55\x5a\xb8\x11\xb9\x72\x39\x96\xed\x60\xb7\x01\x84\xc5\x38\xcb\xde\xd3\x27\xfa\xda\x7d\x9a\xc2\x05\xb3\x29\x58\xcf\xce\xeb\x3c\xee\x19\x2d\xa0\x3e\xfd\x31\x47\x6c\x88\xdf\xd0\x58\x12\xdf\x72\xc9\x77\xd1\x7f\x44\xae\x5d\x69\x6f\x33\x61\x85\xd2\xd9\x07\x79\x74\x7d\x6d\x91\x34\x7d\xa9\x6b\x40\xff\xbd\x32\x3f\x16\x02\x2e\xa6\x3a\x74\x40\x77\x89\x3f\x6e\x16\x99\x1d\x65\x84\x9d\x65\xcb\xcd\xc1\x0f\x83\xdb\x70\x81\x09\x35\xcb\xa0\x4e\xde\x08\xf7\x4a\x72\x61\xa2\x86\x13\x0e\x14\x71\x84\xc0\xf1\x28\x27\xd7\x4f\xc6\xc8\xdb\x93\x54\xfe\x3c\xa3\xe0\x44\x0a\x06\xe3\x2b\x15\x66\x23\xb3\x58\x7c\x7b\x23\x87\x29\x54\xfa\xa2\x7e\xb7\x18\x82\xbf\x94\x5f\x03\x5b\x72\x12\xdf\x25\x23\xa7\xe8\xc5\xac\x16\x58\xbf\xa6\xa4\x60\xad\x97\x39\x77\xdc\x59\x28\x38\x71\xb6\xde\x43\xe4\x92\xf8\xd4\x76\xbf\x34\x0f\x7f\x6a\x92\xa3\x8d\xc4\xab\x15\xbd\xd3\xe0\xff\x15\x95\x9c\x7c\x49\xda\x65\x81\x0e\x60\x06\x0c\xce\xfe\xfd\x93\x1c\xe9\xe5\x42\x4c\xb6\xfa\xa2\x7e\x2e\x26\xb3\xa2\x3f\x52\xb9\xca\x19\xae\x15\xba\x0b\xfe\x5e\x47\xb5\xa7\x00\x40\x2d\xed\xa7\xf5\x33\x78\x97\xdc\x23\xfe\xe1\x1c\x62\x38\x3a\x3f\xbd\x1f\x28\xae\x2a\xc4\xcc\xed\xfc\x92\x64\x18\xd0\xdb\x7d\x6e\x22\x83\x31\xac\x7a\x8d\xf3\x11\x93\xee\x68\xbc\xcc\xb0\x4a\xa7\xfd\xd4\x8c\x9e\xa7\x4e\xa5\xa8\xb0\xce\x94\xe7\xa3\x1c\x3d\xc5\x96\xfd\x10\xd3\x03\x80\x28\x0e\x61\xbd\x2c\x11\x62\x5e\xa9\xf1\xad\xa2\xe0\x31\xeb\x80\x7d\x57\xb3\x6a\x17\xf3\xbc\x74\x88\x81\xa5\x6a\x98\x77\xe3\x58\x38\x8f\x2d\x49\x3c\x61\x94\x3c\x79\xc8\x87\x9a\xd7\x4e\x51\x5c\x9b\x38\xb1\x0f\x6b\xf4\xc0\xbb\xe1\x29\xfa\x8f\xcf\x2c\x2a\x82\xe9\x13\xec\xe2\xd3\x3a\x33\xa5\xc7\xa5\x81\xe7\x57\x14\x20\xf1\x4f\x21\x05\xd3\x76\xab\xa2\xaa\x5c\x5f\x58\x10\xd7\xe3\x4e\x78\xab\xe7\x68\x65\x54\x07\x19\xd2\x63\x4b\x38\x4f\xbb\x84\x0c\x05\xec\x3b\xc2\xe5\x3a\xf1\x30\x56\x14\x16\x80\xab\xa6\x7a\xdb\xe6\xe8\x88\x8b\x2d\x88\x95\x9e\xb9\xe9\xa5\x6f\x98\x55\x2b\xd0\x83\x23\x0a\xf6\xae\xfb\xd8\x35\xad\xf9\xf5\x0f\x0d\xaa\xe9\x81\x4c\x67\x02\xf7\xd0\xb1\xe9\xca\xde\x35\xa3\x53\x6d\x62\x7d\x92\xa3\x01\x17\x72\x77\x91\x00\x45\xd0\xff\x08\x6e\xd8\x4e\x61\xc4\x2c\x82\x3f\xdd\x8b\x7e\xf1\x69\x1d\x44\x64\x5b\x40\xca\x57\xa1\xcc\xc0\x13\xda\x6a\x24\xcb\xd4\x32\x57\xbf\xc0\xbf\x69\x6c\x7a\x60\xbb\x6d\xd6\x77\xb3\xa7\xc2\xf3\x78\xb3\xa9\x63\xab\xbb\x27\x15\xc9\xb7\xb5\x7f\xb7\x95\x9a\xe9\x70\xc1\xbe\xd9\x3a\xd0\x7e\x05\x07\xae\xc8\xee\x94\xfc\xa0\x97\xa4\xd0\x66\x93\x97\x2a\x4b\xcf\xf3\x68\xbd\x4b\x34\xe1\x30\x9c\xa8\xc8\x47\x07\x5a\xf2\xeb\x5d\xba\x14\x44\x13\x21\x19\x78\x81\xad\x53\x5f\x78\x92\x93\x52\x61\xf2\xfb\x94\xe1\x73\x94\x31\x63\x27\xb5\xb6\xa0\xc7\x77\x8d\x4f\x8e\xe2\xa5\x39\xee\x3b\x4c\xd3\x9b\x53\xf3\x71\x61\x4e\x71\xd9\xe0\x53\x83\x20\x44\x59\x0c\x0c\xad\x40\x19\xfe\x55\xe8\x48\x9e\x9a\xba\x62\x04\x90\xa8\xea\xb8\xac\x8b\x06\x92\x84\x18\x5b\xd7\xb8\x19\xfe\x01\x83\xba\x8b\xb7\x38\x2e\x19\xf9\x5f\x3f\x60\x7d\x87\xf6\x71\x8d\x86\x89\xd0\x39\x4d\x5e\x88\xe1\x4e\x2c\x8d\xea\xfb\x59\x0d\x4c\x1f\xb1\xbd\x76\x08\xaf\x6e\x4a\x2b\xaa\x2a\x0c\x27\x04\x4f\x00\xb5\xdf\x03\x4b\x13\x1d\xa8\x68\x8a\x25\x0c\x08", 4096); *(uint64_t*)0x200213c8 = 0x20021300; *(uint32_t*)0x20021300 = r[0]; *(uint32_t*)0x20021304 = r[0]; *(uint32_t*)0x20021308 = r[1]; *(uint32_t*)0x2002130c = r[0]; *(uint32_t*)0x20021310 = r[1]; *(uint32_t*)0x20021314 = r[1]; *(uint64_t*)0x200213d0 = 0x20021340; *(uint64_t*)0x200213d8 = 0x20021380; *(uint32_t*)0x200213e0 = 0x1000; *(uint32_t*)0x200213e4 = 6; *(uint32_t*)0x200213e8 = 0x3d; *(uint32_t*)0x200213ec = 3; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200213c0, /*actual_bytes=*/0x20021400, /*actual_handles=*/0x20021440); if (res == ZX_OK) { r[4] = *(uint32_t*)0x20021380; r[5] = *(uint32_t*)0x20021384; r[6] = *(uint32_t*)0x20021388; } break; case 4: *(uint64_t*)0x20031540 = 0x20021480; *(uint32_t*)0x20021480 = 0; memset((void*)0x20021484, 0, 3); *(uint8_t*)0x20021487 = 1; *(uint64_t*)0x20021488 = 0x66c69d1b00000000; *(uint32_t*)0x20021490 = 2; *(uint32_t*)0x20021494 = 2; *(uint64_t*)0x20021498 = 9; *(uint64_t*)0x200214a0 = -1; *(uint64_t*)0x200214a8 = 2; memset((void*)0x200214b0, 0, 1); *(uint64_t*)0x20031548 = 0x200214c0; *(uint64_t*)0x20031550 = 0x20021500; *(uint64_t*)0x20031558 = 0x20031500; *(uint32_t*)0x20031560 = 0x38; *(uint32_t*)0x20031564 = 0; *(uint32_t*)0x20031568 = 0x10000; *(uint32_t*)0x2003156c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[5], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20031540, /*actual_bytes=*/0x20031580, /*actual_handles=*/0x200315c0); break; case 5: *(uint64_t*)0x200416c0 = 0x20031600; *(uint32_t*)0x20031600 = 0; memset((void*)0x20031604, 0, 3); *(uint8_t*)0x20031607 = 1; *(uint64_t*)0x20031608 = 0x4fcfbc1100000000; *(uint32_t*)0x20031610 = 0; *(uint32_t*)0x20031614 = 1; *(uint64_t*)0x20031618 = 0xc1; *(uint64_t*)0x20031620 = -1; memcpy((void*)0x20031628, "*[#,)&,-[)}", 11); *(uint64_t*)0x200416c8 = 0x20031640; *(uint32_t*)0x20031640 = 0; *(uint32_t*)0x20031644 = r[5]; *(uint64_t*)0x200416d0 = 0x20031680; *(uint64_t*)0x200416d8 = 0x20041680; *(uint32_t*)0x200416e0 = 0x38; *(uint32_t*)0x200416e4 = 2; *(uint32_t*)0x200416e8 = 0x10000; *(uint32_t*)0x200416ec = 4; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200416c0, /*actual_bytes=*/0x20041700, /*actual_handles=*/0x20041740); if (res == ZX_OK) r[7] = *(uint32_t*)0x2004168c; break; case 6: res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/0x104d); if (res == ZX_OK) r[8] = res; break; case 7: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t))CAST(zx_channel_create))(/*options=*/0, /*out0=*/0x20041880, /*out1=*/0x200418c0); if (res == ZX_OK) r[9] = *(uint32_t*)0x20041880; break; case 8: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t))CAST(zx_exception_get_thread))(/*handle=*/r[5], /*out=*/0x20041900); if (res == ZX_OK) r[10] = *(uint32_t*)0x20041900; break; case 9: *(uint64_t*)0x20041bc0 = 0x20041780; memcpy((void*)0x20041780, "\xfa\x2f\x40\x69\xc5\xf5\x4d\x24\x79\xf8\x4d\x1d\x73\x3a\x52\xf5\x9f\x0a\x68\x70\x94\x66\xe6\x63\x3a\x63\x18\xf6\x05\x7f\xbf\xc9\xf0\x48\xb0\x9b\xfb\xb6\x39\x05\xdc\x82\x47\x45\xb1\x62\x47\xee\x57\x0e\x79\xaf\x77\xfd\xe7\x3b\xe0\x86\x53\x56\x84\x1b\x89\x97\xc5\x5e\x4c\x9b\x79\x2e\x2c\xd8\xc5\xac\x57\x89\x60\xab\x6b\x2d\x80\x4c\xd8\x9e\xb8\xf0\xde\x21\x51\xa1\x69\x3b\x64\x98\xd6\x1a\xbe\xdb\xd5\xdb\x7c\xae\x8b\x09\xf9\x4c\x6d\x94\x2c\xb3\x10\x51\x52\x49\x61\xcc\x82\xc4\x94\x0a\xf1\xab\x9c\xee\xba\x52\x71\x6e\xb2\x5b\x87\x0e\xaf\xbb\x41\xd9\xa1\x56\x2e\x96\x70\xdf\x00\x38\x4a\xa9\x55\x4b\x70\xf9\xa1\x66\x83\x41\x50\xf2\xe3\x72\x15\xe4\x13\xba\x12\x38\xa1\x81\xd4\xf7\x43\x58\x43\xb6\xbb\x56\xfa\x88\x61\xd8\x68\x80\x01\xd3\x9d\x9e\x2b\x18\x9f\x67\xe8\x05\x33\x11\x89\x64\x29\x97\x63\xf5\x86\x82\x8c\x69\x3c\xc9\x71\x2a\x9c\x25\x52\xdc\x30\xe5\x72\x25\x21\x2f\x5a\x50\xef\xe5\x6d\xa9\x9a\x32\x82\x4c\x4c", 227); *(uint64_t*)0x20041bc8 = 0x20041a80; *(uint32_t*)0x20041a80 = r[9]; *(uint32_t*)0x20041a84 = r[10]; *(uint32_t*)0x20041a88 = 0; *(uint32_t*)0x20041a8c = r[1]; *(uint32_t*)0x20041a90 = r[6]; *(uint32_t*)0x20041a94 = r[0]; *(uint32_t*)0x20041a98 = r[4]; *(uint32_t*)0x20041a9c = 0; *(uint32_t*)0x20041aa0 = 0; *(uint64_t*)0x20041bd0 = 0x20041ac0; *(uint64_t*)0x20041bd8 = 0x20041b80; *(uint32_t*)0x20041be0 = 0xe3; *(uint32_t*)0x20041be4 = 9; *(uint32_t*)0x20041be8 = 0x9a; *(uint32_t*)0x20041bec = 8; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); break; case 10: memcpy((void*)0x20000000, "\xc4\xe1\xd9\xd2\x9e\x91\x00\x00\x00\xc4\x81\x71\xfd\x84\x48\x00\x00\x00\x20\xc4\xa1\x7f\x70\x44\xba\x34\x0e\xf3\x0f\xae\xd6\xc4\x62\x79\xa7\x5d\x03\xc4\xc2\xfd\x96\x42\xa7\x2e\x66\x43\x0f\x38\xf5\x59\x00\x42\x0f\x34\xc4\xe1\x78\x2b\x42\xc0\xc4\x42\x65\x92\x24\x2c", 66); syz_execute_func(/*text=*/0x20000000); break; case 11: syz_future_time(/*when=*/1); break; case 12: syz_job_default(); break; case 13: syz_mmap(/*addr=*/0x20ffe000, /*len=*/0x1000); break; case 14: syz_process_self(); break; case 15: syz_thread_self(); break; case 16: syz_vmar_root_self(); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :435:75: error: use of undeclared identifier 'zx_channel_call_etc' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor2305670267 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/13 (0.80s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:0 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:false Trace:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(0x0, 0x0, 0x0, &(0x7f00000100c0)={&(0x7f0000000000)={{}, {0xffffffff, 0x0, {0x4, 0xffffffffffffffff}}}, &(0x7f0000000040), &(0x7f0000000080), &(0x7f0000010080)={{0x0, 0x0, 0x0, 0x0}}, 0x28, 0x2, 0x10000, 0x4}, &(0x7f0000010100), &(0x7f0000010140)) (fail_nth: 1) r3 = zx_deadline_after(0x5) (async) zx_channel_call$fuchsia_io_DirectoryAdminLink(r2, 0x0, r3, &(0x7f0000020240)={&(0x7f0000010180)={{}, {0x3, 0xffffffffffffffff}, 0xffffffff, {0x1b3}}, &(0x7f00000101c0), &(0x7f0000010200), &(0x7f0000020200), 0x34, 0x1, 0x10000}, &(0x7f0000020280), &(0x7f00000202c0)) (rerun: 4) zx_channel_call(r2, 0x0, r3, &(0x7f00000213c0)={&(0x7f0000020300)="6b3c1256279544bb32d36243afcbfda5cd1a1759ba09b008c97e2be49ab10adda6d88f529de7b04ad9b0fdd96d3184196e8e6975312bf6a2c53df14551fa4b32627dd679eef9c59f190ca4036814372cf510d02917535f1f02da97f6d1601f3e89e10a621b4e82ba76d41a2f87249736cd35a2432bf368daf43f60387c27f9177614c2f4d4fd31ddd5e08d63429d663ee14a1932bf8f4df70369f3c2a75197422ed0022be80fd87b79db2a43499a48bdcd91246573303a4508e17cf020c64c577b8bb0926c4bde1560a77446497e5bafec8429a311719384f637c4a008c3ddd62610dbb1d4c2dd8f1bd73e7f3657fcf24dbb896a145b28f34098f9d40199c5b72003c4e08eab96aec066bf2d97c2661f4cd91c59cd4f9e4f5617cfd6ada6e04953cc4c7be1c3f10de31e155dd174e99f4136cae08e308b3c22b5d1dd66b379703429b4d5dfa60ec7d1aa50043c92c1a949b3d940f604d1f44ebdd3c3e4ab647c7e66f1211eec2712e0e4b70cb1a2c1c6c3b4e29a1042834acc26e99b38f6075bbea108bf124c3b1cc4275227bd0167110d69972d46b2dbd6b18314d2ea664ac2f4e4490ab3223eb08178f92e0c17bf861894997cd092fe07c06c5e0db444085a138c638d6eb7889a1996340ea460991f75cd1aba0bcae8f9779587f6df761f75373199146daba4848ac8a2a9b099ae5a54ed617ecb56326627016ea3d6d077f90474dbf037689bd7724a1cef3626e6e196748c050f91c662fda495b67e5aa3b016dc3bccb2d7a9733eca7c7bdd8847540d273b9c8c29335ebdd7715ee4f57dfe5c6a0f3d584398c0ea55375bd2c31b6c74e9f4eeb859c8977063125cdf72532de65c0a00d53bc003c8b101838ee151319695c0ac2acef5f1910bc952bebc7f689f52067f81c18c5dfac90057cdbd0f75e928163aeb09ef0159b66da4210834ca8ee3e285270b51f5e256867ce622923fd3c40e615e1342418a196fcb8e2b56486722f7b5ca524c75dbdb9be6314b7ad590b5cf8f80d7927dda79ceb1369d780f3338c1efb83ca7bdda05f8ca9445b500c0506359a4baa2a8ee7e8b4afb48dbdc2a56194a8da4d1ac425245b83e1e8e448a29da4e2071aea3b8ef3a3cb5827e616d4707f851eea6260972eade34da0a8f34407f4d3e455ba0aa026a853ebb5e6d64e9d8105e69b84e36fb57a8b6e0e7cbb9e5d524988036d958e32a38f5977b3c7038c983994f0888fe3091aa1f45919f0602b5d750738b171b9787af296f2ba5fee311a16f1cdcd810a6689ac7a75bc19e693395b00cfdaf13cca6670a472d449e9efef6e0f9d1c1abaabaaa37e2b27d7d6723d98af800a0b2b5196b284a9e11a5c5e62c4d862522254225216d4ff21afd49bd07f74e9d189bc576d3dd39a739779875e2dcbcf356a52ca08cb29eae8579ca6608a194135941eed7e330de08a9e5095b177ce26b2321e7ac9862bacef371c4d2e9dc8bab9118a15ff9fc4679a1d0eeb64806a80cc739edfddf9d4fa2f42f870212c23ae81ebc9168c955535041c1ce54edf8e3cae6684dab1b1eed16b25bc667a36691d0e050a49f2d782ed9ec3f94d50c8d3358a82375d3605fdb7912b1fc3ed9155fb1052c93e61005c2f6a87c42cf68aff9e6c9e19813653770c439cc397f9ecba27a99b082054d8f44a5b82baea68bd849cde7044a27792a26b3a12d938cb650a8914124be069a1d8a0f98d98768f9144afcc851b338a84d797c35a7657111fa4278b62eee95e3ddedb8916d03c93ec884ac97e29b1d4490ecae90628ed261ebcbbd4d0c12d1c295e6683d685c508d14f289f5b0c86bbd05c31edb6ef46aba2abe24f53c90b33ac3b8033616687a9d3b2900876cb4879145771c0957a07d371f9826e641089e347c155fd62cf176bb4f6af7c223b45cfd0e0a5410922527f9a89a8bb864f497a763fac941097410f448373d1232955cdd4c067364151ae3f57e3bd611975eb189e3de3de659b8f58fc7bc86bb7717711aea0f512ae8fb8f0dad0b9a91cb4b1d512095de2923a54add0883f1b194082abb2d77105e9d00d23e0c0e2226cb2f831d10a66223d9f717260558318f72b66926e0ae2a169b8f5fb86d9f611760d9626218791f7a18b807e12dd61b895d96885c8a39ae56faa0987a4bc634bf638902288cbe304d2e6085b35bbd8c69f7c7bc08a54764e5a58c36da8514923cabca339408a4d4c4a05520b84150e1493861b1208ab6d2007fd47071ecd8419c4de38764caecb093a2cc8259f413efcb13e19451d22b9bd8a192f9184f62c438b1fa988cdc16b43a19ed3ca3dc13bdada0118cf96132ee3a06db5eec80f4c956b3928f5923c5a74352cc62ea9e8a0310ff953d4fd886d26d6e5ccbb8c9afda424ce0e0c66e3b5112f93de988f178f103de77663c3f37483aef8a49b06ed86442553336a2ea076350f3730d607164b7459b9e90e3f98ab8132018d02c86b65d5e2358c66ee8d657a6586af70eb2536942b0733f99d3dcb2ebb49857d384a870cb0b62e318a130f1d905a12c71c319ad380a8b022d4e3f5f5ee1bb17d55becffb128fd61d993b5e03d6d0d864b2481dde4f0e472800e84d97b2a12661bfbb9070f37cd458f0d43474003491239f6987024386a281851797d1322752e6e24b160fcdde4a429383a690435f1200d0ad95874011db89d4ffaf2232e84a767620009fa3e534c50b2656805a380799a16817b350a3b23d4d03fcfffe4cf048283c47144189dc9b965375cff5ee4171a23c172fef7a8ddefd1c24be338203691227c3056f7761eca36087851aeff7f91e8aceb96d7b21082a95d6b796ad7688b9c48754fa34d2873c1377012cc16a798e80c71d5759572b17e3a013fa2e878a5194ce5358ecec5602fb206d590ff765f57755904d4361e118fb18f8fdad8df387fe63f79678ea913d3b1633955f8e11c2d8d7c716791234188bdcb7bccccc6f3eb85993ebe53478bf92dfff23331f394f2164264a6c029d0c8bb9a41e09cc35eff2a58d4ad3b92b4d682c7ac73a728892bb11b57c39aed49709c200e916bcba5229d16043e34b1c04223be93784e3de8b74349425cf073d7068565e7d914f26573581dc919919feec181d371cc6629f895728f8526acef9ce50110fd9257fc677de7fa23f98f35ba0686fc65d074c412a5e02ad067836f80fc24437e2d0decff85b1029e28660b344851a0be45cdc10716a05974e5e09d00f994a4de6e97cf7148c34ebeb5565be0eccf4dfa7c8b70691d0a4fc4adf40a049777ecf560daafe437bbb8af380ad90819f3018202e738519d372bdb17f771a29d8bc58451262567d38beb9fc92e000c18df6324e6c4da794754c849b2fded1b67ac18b48a8b05773d62e24ec78ad9cb00b9959fe20c0d8778ad636260af68e1f336e0a9678b7c84752a624355257380fe51d98e1c17b6f026ff8206e9b1b4c0451c9ee8a5de6a38a2bf52810fa17f811a4dc56931ec4de8fee47c553441aaf1683f94f5e6fad54eaaf66e6d6acbd627d64e0545efb2650741d65bfb41b12d84b5f8a92ae978db2612aeda6823b3d422e56429e7fea6a7028001e70cda4c3bdc741750858e4a4f44cb87e47112ae9a0338569402c386b1f232bac1456793462da338b3851bb31d93e64d61473bcbbf400d0fc99bf5e06b989122518f61498d8265846c6b596b73d49a1386cf28406b33d90e9d919af9bf0e74456061343ce07f46191f050c5f69f4c62d895617775e1cce6e82a9b300ea5ced9667b784e59b687c8f487077c2458d6db726cbf009c33c92576f35a149a7aa11f29ccad57967fc3ec9cda65ae30ba175bf3e405a303caeed440ed21a99735c4fe524f8423971473db48fa505f44a4d1356b82a90c7f581732feb089c0e8301ffc54d3207571447c4f75d96b0ba5887a558da9a2ff2726fa8748c2179276193695bf03658978bdaa74b4c02fbf00c1a5a9eca009e7a3bfd5d48881cecb743e5b65b0c0b1e024b80044853265ac0ee2fd92ddebbd59c4d4cb3a09d83f9dfc5c274111ec8caab4cbc65518ef6a8e2e0f14993c17af66d7dd5d30643b2391b728975f3886bb0c64065c87eec0c28696a07d1c30416b7901dcd4f94139c917dc986ff15f1364b227cf594ba63e28362e52117a5469fc15dedb45c7e124b58b014e2c498933ec362ab60c758dbc15cc7b17b36fd9265f9d5857fdba2edb36a355c52f53d09f03e474ca45a06f9995d1f10b0be3233eb831b047200d35472b2137bc2fb77b819daf9a8e9b853d952931993f92c6209a3587ad812989d857aae67aa7e87275fc34be4b3b78b475c3200e35f0453bcdd00d8d718a5286cb47dee49d90afed7f4fe42496ba33cf13d6f17c105eddb25c876d6f52a21cf098d42d9bfc72f0535281f6c022103455dcb87fcd505d7714e79417c9fcd32208e388c9d50e561f231a09cc73149f2ec248bd1fc885f3e1059659b1a4ac978bb5c81b093da5b9dc293096ba9fdbec00502192e4fae10afd3605c2c020a628a055d5659c3effb76446834a8e84edf5239c9ea6cb6cb85aef64b68bc7e2f96856f65e976ba1bd525c1965ec7a2d954cc99fba8fa13d329227f7f9321689c631a12dcb0ac99487bfe4725e9b7d01e8481024943cc35f7a0e87a2142a9229d353b4128897a9b3bc4a4ebc82dde1cbf7616dc6544e05db908203ec568b9f48893a0fc9a1a77cb7340afe977b51f3a4a1e555ab811b9723996ed60b70184c538cbded327fada7d9ac205b32958cfceeb3cee192da03efd31476c88dfd05812df72c977d17f44ae5d696f336185d2d90779747d6d91347da96b40ffbd323f16022ea63a744077893f6e16991d65849d65cbcdc10f83db70810935cba04ede08f74a7261a286130e147184c0f12827d74fc6c8db9354fe3ca3e0440a06e32b156623b3587c7b23872954faa27eb71882bf945f035b7212df2523a7e8c5ac1658bfa6a460ad973977dc59283871b6de43e492f8d476bf340f7f6a92a38dc4ab15bdd3e0ff15959c7c49da65810e60060ccefefd931ce9e5424cb6faa27e2e26b3a23f52b9ca19ae15ba0bfe5e47b5a700402deda7f5337897dc23fee11c62383a3fbd1f28ae2ac4ccedfc926418d0db7d6e228331ac7a8df31193ee68bcccb04aa7fdd48c9ea74ea5a8b0ce94e7a31c3dc596fd10d30380280e61bd2c11625ea9f1ada2e031eb807d57b36a17f3bc748881a56a9877e358388f2d493c61943c79c8879ad74e515c9b38b10f6bf4c0bbe129fa8fcf2c2a82e913ece2d33a33a5c7a581e7571420f14f2105d376aba2aa5c5f5810d7e34e78abe76865540719d2634b384fbb840c05ec3bc2e53af13056141680aba67adbe6e8888b2d88959eb9e9a56f98552bd083230af6aefbd835adf9f50f0daae9814c6702f7d0b1e9cade35a3536d627d92a301177277910045d0ff086ed84e61c42c823fdd8b7ef1691d44645b40ca57a1ccc013da6a24cbd43257bfc0bf696c7a60bb6dd677b3a7c2f378b3a963abbb2715c9b7b57fb7959ae970c1bed93ad07e0507aec8ee94fca097a4d06693972a4bcff368bd4b34e1309ca8c847075af2eb5dba14441321197881ad535f7892935261f2fb94e17394316327b5b6a0c7778d4f8ee2a539ee3b4cd39b53f371614e71d9e053832044590c0cad4019fe55e8489e9aba620490a8eab8ac8b069284185bd7b819fe0183ba8bb7382e19f95f3f607d87f6718d8689d0394d5e88e14e2c8deafb590d4c1fb1bd7608af6e4a2baa2a0c27044f00b5df034b131da8688a250c08", &(0x7f0000021300)=[r0, r0, r1, r0, r1, r1], &(0x7f0000021340)=""/61, &(0x7f0000021380)=[0x0, 0x0, 0x0], 0x1000, 0x6, 0x3d, 0x3}, &(0x7f0000021400), &(0x7f0000021440)) zx_channel_call$fuchsia_cobalt_LoggerLogMemoryUsage(r5, 0x0, r3, &(0x7f0000031540)={&(0x7f0000021480)={{}, 0x2, 0x2, {0x9, 0xffffffffffffffff}, 0x2, {'\x00'}}, &(0x7f00000214c0), &(0x7f0000021500), &(0x7f0000031500), 0x38, 0x0, 0x10000}, &(0x7f0000031580), &(0x7f00000315c0)) zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(r2, 0x0, r3, &(0x7f00000416c0)={&(0x7f0000031600)={{}, {0x0, 0x100000001, {0xc1, 0xffffffffffffffff}}, {{'*[#,)&,-[)}'}}}, &(0x7f0000031640)={{0x0, r5}}, &(0x7f0000031680), &(0x7f0000041680)={{0x0, 0x0, 0x0, 0x0}}, 0x38, 0x2, 0x10000, 0x4}, &(0x7f0000041700), &(0x7f0000041740)) r8 = zx_deadline_after(0x104d) zx_channel_create(0x0, &(0x7f0000041880)=0x0, &(0x7f00000418c0)) zx_exception_get_thread(r5, &(0x7f0000041900)=0x0) zx_channel_call_etc(r7, 0x7, r8, &(0x7f0000041bc0)={&(0x7f0000041780)="fa2f4069c5f54d2479f84d1d733a52f59f0a68709466e6633a6318f6057fbfc9f048b09bfbb63905dc824745b16247ee570e79af77fde73be0865356841b8997c55e4c9b792e2cd8c5ac578960ab6b2d804cd89eb8f0de2151a1693b6498d61abedbd5db7cae8b09f94c6d942cb31051524961cc82c4940af1ab9ceeba52716eb25b870eafbb41d9a1562e9670df00384aa9554b70f9a166834150f2e37215e413ba1238a181d4f7435843b6bb56fa8861d8688001d39d9e2b189f67e80533118964299763f586828c693cc9712a9c2552dc30e57225212f5a50efe56da99a32824c4c", &(0x7f0000041a80)=[r9, r10, 0x0, r1, r6, r0, r4, 0x0, 0x0], &(0x7f0000041ac0)=""/154, &(0x7f0000041b80)=[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], 0xe3, 0x9, 0x9a, 0x8}, &(0x7f0000041c00), &(0x7f0000041c40)) syz_execute_func(&(0x7f0000000000)="c4e1d9d29e91000000c48171fd844800000020c4a17f7044ba340ef30faed6c46279a75d03c4c2fd9642a72e66430f38f55900420f34c4e1782b42c0c4426592242c") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffe000/0x1000)=nil, 0x1000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { fprintf(stderr, "### start\n"); int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 50); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[11] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: *(uint64_t*)0x200100c0 = 0x20000000; *(uint32_t*)0x20000000 = 0; memset((void*)0x20000004, 0, 3); *(uint8_t*)0x20000007 = 1; *(uint64_t*)0x20000008 = 0x4fcfbc1100000000; *(uint32_t*)0x20000010 = -1; *(uint32_t*)0x20000014 = 0; *(uint64_t*)0x20000018 = 4; *(uint64_t*)0x20000020 = -1; *(uint64_t*)0x200100c8 = 0x20000040; *(uint32_t*)0x20000040 = 0; *(uint32_t*)0x20000044 = 0; *(uint64_t*)0x200100d0 = 0x20000080; *(uint64_t*)0x200100d8 = 0x20010080; *(uint32_t*)0x200100e0 = 0x28; *(uint32_t*)0x200100e4 = 2; *(uint32_t*)0x200100e8 = 0x10000; *(uint32_t*)0x200100ec = 4; inject_fault(1); res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/0, /*args=*/0x200100c0, /*actual_bytes=*/0x20010100, /*actual_handles=*/0x20010140); fprintf(stderr, "### call=0 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); if (res == ZX_OK) { r[0] = *(uint32_t*)0x20010080; r[1] = *(uint32_t*)0x20010088; r[2] = *(uint32_t*)0x2001008c; } break; case 1: res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/5); fprintf(stderr, "### call=1 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); if (res == ZX_OK) r[3] = res; break; case 2: *(uint64_t*)0x20020240 = 0x20010180; *(uint32_t*)0x20010180 = 0; memset((void*)0x20010184, 0, 3); *(uint8_t*)0x20010187 = 1; *(uint64_t*)0x20010188 = 0x1b8a5e6400000000; *(uint64_t*)0x20010190 = 3; *(uint64_t*)0x20010198 = -1; *(uint32_t*)0x200101a0 = -1; *(uint64_t*)0x200101a4 = 0x1b3; *(uint64_t*)0x200101ac = 0; *(uint64_t*)0x20020248 = 0x200101c0; *(uint32_t*)0x200101c0 = 0; *(uint64_t*)0x20020250 = 0x20010200; *(uint64_t*)0x20020258 = 0x20020200; *(uint32_t*)0x20020260 = 0x34; *(uint32_t*)0x20020264 = 1; *(uint32_t*)0x20020268 = 0x10000; *(uint32_t*)0x2002026c = 0; res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); fprintf(stderr, "### call=2 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); } } break; case 3: *(uint64_t*)0x200213c0 = 0x20020300; memcpy((void*)0x20020300, "\x6b\x3c\x12\x56\x27\x95\x44\xbb\x32\xd3\x62\x43\xaf\xcb\xfd\xa5\xcd\x1a\x17\x59\xba\x09\xb0\x08\xc9\x7e\x2b\xe4\x9a\xb1\x0a\xdd\xa6\xd8\x8f\x52\x9d\xe7\xb0\x4a\xd9\xb0\xfd\xd9\x6d\x31\x84\x19\x6e\x8e\x69\x75\x31\x2b\xf6\xa2\xc5\x3d\xf1\x45\x51\xfa\x4b\x32\x62\x7d\xd6\x79\xee\xf9\xc5\x9f\x19\x0c\xa4\x03\x68\x14\x37\x2c\xf5\x10\xd0\x29\x17\x53\x5f\x1f\x02\xda\x97\xf6\xd1\x60\x1f\x3e\x89\xe1\x0a\x62\x1b\x4e\x82\xba\x76\xd4\x1a\x2f\x87\x24\x97\x36\xcd\x35\xa2\x43\x2b\xf3\x68\xda\xf4\x3f\x60\x38\x7c\x27\xf9\x17\x76\x14\xc2\xf4\xd4\xfd\x31\xdd\xd5\xe0\x8d\x63\x42\x9d\x66\x3e\xe1\x4a\x19\x32\xbf\x8f\x4d\xf7\x03\x69\xf3\xc2\xa7\x51\x97\x42\x2e\xd0\x02\x2b\xe8\x0f\xd8\x7b\x79\xdb\x2a\x43\x49\x9a\x48\xbd\xcd\x91\x24\x65\x73\x30\x3a\x45\x08\xe1\x7c\xf0\x20\xc6\x4c\x57\x7b\x8b\xb0\x92\x6c\x4b\xde\x15\x60\xa7\x74\x46\x49\x7e\x5b\xaf\xec\x84\x29\xa3\x11\x71\x93\x84\xf6\x37\xc4\xa0\x08\xc3\xdd\xd6\x26\x10\xdb\xb1\xd4\xc2\xdd\x8f\x1b\xd7\x3e\x7f\x36\x57\xfc\xf2\x4d\xbb\x89\x6a\x14\x5b\x28\xf3\x40\x98\xf9\xd4\x01\x99\xc5\xb7\x20\x03\xc4\xe0\x8e\xab\x96\xae\xc0\x66\xbf\x2d\x97\xc2\x66\x1f\x4c\xd9\x1c\x59\xcd\x4f\x9e\x4f\x56\x17\xcf\xd6\xad\xa6\xe0\x49\x53\xcc\x4c\x7b\xe1\xc3\xf1\x0d\xe3\x1e\x15\x5d\xd1\x74\xe9\x9f\x41\x36\xca\xe0\x8e\x30\x8b\x3c\x22\xb5\xd1\xdd\x66\xb3\x79\x70\x34\x29\xb4\xd5\xdf\xa6\x0e\xc7\xd1\xaa\x50\x04\x3c\x92\xc1\xa9\x49\xb3\xd9\x40\xf6\x04\xd1\xf4\x4e\xbd\xd3\xc3\xe4\xab\x64\x7c\x7e\x66\xf1\x21\x1e\xec\x27\x12\xe0\xe4\xb7\x0c\xb1\xa2\xc1\xc6\xc3\xb4\xe2\x9a\x10\x42\x83\x4a\xcc\x26\xe9\x9b\x38\xf6\x07\x5b\xbe\xa1\x08\xbf\x12\x4c\x3b\x1c\xc4\x27\x52\x27\xbd\x01\x67\x11\x0d\x69\x97\x2d\x46\xb2\xdb\xd6\xb1\x83\x14\xd2\xea\x66\x4a\xc2\xf4\xe4\x49\x0a\xb3\x22\x3e\xb0\x81\x78\xf9\x2e\x0c\x17\xbf\x86\x18\x94\x99\x7c\xd0\x92\xfe\x07\xc0\x6c\x5e\x0d\xb4\x44\x08\x5a\x13\x8c\x63\x8d\x6e\xb7\x88\x9a\x19\x96\x34\x0e\xa4\x60\x99\x1f\x75\xcd\x1a\xba\x0b\xca\xe8\xf9\x77\x95\x87\xf6\xdf\x76\x1f\x75\x37\x31\x99\x14\x6d\xab\xa4\x84\x8a\xc8\xa2\xa9\xb0\x99\xae\x5a\x54\xed\x61\x7e\xcb\x56\x32\x66\x27\x01\x6e\xa3\xd6\xd0\x77\xf9\x04\x74\xdb\xf0\x37\x68\x9b\xd7\x72\x4a\x1c\xef\x36\x26\xe6\xe1\x96\x74\x8c\x05\x0f\x91\xc6\x62\xfd\xa4\x95\xb6\x7e\x5a\xa3\xb0\x16\xdc\x3b\xcc\xb2\xd7\xa9\x73\x3e\xca\x7c\x7b\xdd\x88\x47\x54\x0d\x27\x3b\x9c\x8c\x29\x33\x5e\xbd\xd7\x71\x5e\xe4\xf5\x7d\xfe\x5c\x6a\x0f\x3d\x58\x43\x98\xc0\xea\x55\x37\x5b\xd2\xc3\x1b\x6c\x74\xe9\xf4\xee\xb8\x59\xc8\x97\x70\x63\x12\x5c\xdf\x72\x53\x2d\xe6\x5c\x0a\x00\xd5\x3b\xc0\x03\xc8\xb1\x01\x83\x8e\xe1\x51\x31\x96\x95\xc0\xac\x2a\xce\xf5\xf1\x91\x0b\xc9\x52\xbe\xbc\x7f\x68\x9f\x52\x06\x7f\x81\xc1\x8c\x5d\xfa\xc9\x00\x57\xcd\xbd\x0f\x75\xe9\x28\x16\x3a\xeb\x09\xef\x01\x59\xb6\x6d\xa4\x21\x08\x34\xca\x8e\xe3\xe2\x85\x27\x0b\x51\xf5\xe2\x56\x86\x7c\xe6\x22\x92\x3f\xd3\xc4\x0e\x61\x5e\x13\x42\x41\x8a\x19\x6f\xcb\x8e\x2b\x56\x48\x67\x22\xf7\xb5\xca\x52\x4c\x75\xdb\xdb\x9b\xe6\x31\x4b\x7a\xd5\x90\xb5\xcf\x8f\x80\xd7\x92\x7d\xda\x79\xce\xb1\x36\x9d\x78\x0f\x33\x38\xc1\xef\xb8\x3c\xa7\xbd\xda\x05\xf8\xca\x94\x45\xb5\x00\xc0\x50\x63\x59\xa4\xba\xa2\xa8\xee\x7e\x8b\x4a\xfb\x48\xdb\xdc\x2a\x56\x19\x4a\x8d\xa4\xd1\xac\x42\x52\x45\xb8\x3e\x1e\x8e\x44\x8a\x29\xda\x4e\x20\x71\xae\xa3\xb8\xef\x3a\x3c\xb5\x82\x7e\x61\x6d\x47\x07\xf8\x51\xee\xa6\x26\x09\x72\xea\xde\x34\xda\x0a\x8f\x34\x40\x7f\x4d\x3e\x45\x5b\xa0\xaa\x02\x6a\x85\x3e\xbb\x5e\x6d\x64\xe9\xd8\x10\x5e\x69\xb8\x4e\x36\xfb\x57\xa8\xb6\xe0\xe7\xcb\xb9\xe5\xd5\x24\x98\x80\x36\xd9\x58\xe3\x2a\x38\xf5\x97\x7b\x3c\x70\x38\xc9\x83\x99\x4f\x08\x88\xfe\x30\x91\xaa\x1f\x45\x91\x9f\x06\x02\xb5\xd7\x50\x73\x8b\x17\x1b\x97\x87\xaf\x29\x6f\x2b\xa5\xfe\xe3\x11\xa1\x6f\x1c\xdc\xd8\x10\xa6\x68\x9a\xc7\xa7\x5b\xc1\x9e\x69\x33\x95\xb0\x0c\xfd\xaf\x13\xcc\xa6\x67\x0a\x47\x2d\x44\x9e\x9e\xfe\xf6\xe0\xf9\xd1\xc1\xab\xaa\xba\xaa\x37\xe2\xb2\x7d\x7d\x67\x23\xd9\x8a\xf8\x00\xa0\xb2\xb5\x19\x6b\x28\x4a\x9e\x11\xa5\xc5\xe6\x2c\x4d\x86\x25\x22\x25\x42\x25\x21\x6d\x4f\xf2\x1a\xfd\x49\xbd\x07\xf7\x4e\x9d\x18\x9b\xc5\x76\xd3\xdd\x39\xa7\x39\x77\x98\x75\xe2\xdc\xbc\xf3\x56\xa5\x2c\xa0\x8c\xb2\x9e\xae\x85\x79\xca\x66\x08\xa1\x94\x13\x59\x41\xee\xd7\xe3\x30\xde\x08\xa9\xe5\x09\x5b\x17\x7c\xe2\x6b\x23\x21\xe7\xac\x98\x62\xba\xce\xf3\x71\xc4\xd2\xe9\xdc\x8b\xab\x91\x18\xa1\x5f\xf9\xfc\x46\x79\xa1\xd0\xee\xb6\x48\x06\xa8\x0c\xc7\x39\xed\xfd\xdf\x9d\x4f\xa2\xf4\x2f\x87\x02\x12\xc2\x3a\xe8\x1e\xbc\x91\x68\xc9\x55\x53\x50\x41\xc1\xce\x54\xed\xf8\xe3\xca\xe6\x68\x4d\xab\x1b\x1e\xed\x16\xb2\x5b\xc6\x67\xa3\x66\x91\xd0\xe0\x50\xa4\x9f\x2d\x78\x2e\xd9\xec\x3f\x94\xd5\x0c\x8d\x33\x58\xa8\x23\x75\xd3\x60\x5f\xdb\x79\x12\xb1\xfc\x3e\xd9\x15\x5f\xb1\x05\x2c\x93\xe6\x10\x05\xc2\xf6\xa8\x7c\x42\xcf\x68\xaf\xf9\xe6\xc9\xe1\x98\x13\x65\x37\x70\xc4\x39\xcc\x39\x7f\x9e\xcb\xa2\x7a\x99\xb0\x82\x05\x4d\x8f\x44\xa5\xb8\x2b\xae\xa6\x8b\xd8\x49\xcd\xe7\x04\x4a\x27\x79\x2a\x26\xb3\xa1\x2d\x93\x8c\xb6\x50\xa8\x91\x41\x24\xbe\x06\x9a\x1d\x8a\x0f\x98\xd9\x87\x68\xf9\x14\x4a\xfc\xc8\x51\xb3\x38\xa8\x4d\x79\x7c\x35\xa7\x65\x71\x11\xfa\x42\x78\xb6\x2e\xee\x95\xe3\xdd\xed\xb8\x91\x6d\x03\xc9\x3e\xc8\x84\xac\x97\xe2\x9b\x1d\x44\x90\xec\xae\x90\x62\x8e\xd2\x61\xeb\xcb\xbd\x4d\x0c\x12\xd1\xc2\x95\xe6\x68\x3d\x68\x5c\x50\x8d\x14\xf2\x89\xf5\xb0\xc8\x6b\xbd\x05\xc3\x1e\xdb\x6e\xf4\x6a\xba\x2a\xbe\x24\xf5\x3c\x90\xb3\x3a\xc3\xb8\x03\x36\x16\x68\x7a\x9d\x3b\x29\x00\x87\x6c\xb4\x87\x91\x45\x77\x1c\x09\x57\xa0\x7d\x37\x1f\x98\x26\xe6\x41\x08\x9e\x34\x7c\x15\x5f\xd6\x2c\xf1\x76\xbb\x4f\x6a\xf7\xc2\x23\xb4\x5c\xfd\x0e\x0a\x54\x10\x92\x25\x27\xf9\xa8\x9a\x8b\xb8\x64\xf4\x97\xa7\x63\xfa\xc9\x41\x09\x74\x10\xf4\x48\x37\x3d\x12\x32\x95\x5c\xdd\x4c\x06\x73\x64\x15\x1a\xe3\xf5\x7e\x3b\xd6\x11\x97\x5e\xb1\x89\xe3\xde\x3d\xe6\x59\xb8\xf5\x8f\xc7\xbc\x86\xbb\x77\x17\x71\x1a\xea\x0f\x51\x2a\xe8\xfb\x8f\x0d\xad\x0b\x9a\x91\xcb\x4b\x1d\x51\x20\x95\xde\x29\x23\xa5\x4a\xdd\x08\x83\xf1\xb1\x94\x08\x2a\xbb\x2d\x77\x10\x5e\x9d\x00\xd2\x3e\x0c\x0e\x22\x26\xcb\x2f\x83\x1d\x10\xa6\x62\x23\xd9\xf7\x17\x26\x05\x58\x31\x8f\x72\xb6\x69\x26\xe0\xae\x2a\x16\x9b\x8f\x5f\xb8\x6d\x9f\x61\x17\x60\xd9\x62\x62\x18\x79\x1f\x7a\x18\xb8\x07\xe1\x2d\xd6\x1b\x89\x5d\x96\x88\x5c\x8a\x39\xae\x56\xfa\xa0\x98\x7a\x4b\xc6\x34\xbf\x63\x89\x02\x28\x8c\xbe\x30\x4d\x2e\x60\x85\xb3\x5b\xbd\x8c\x69\xf7\xc7\xbc\x08\xa5\x47\x64\xe5\xa5\x8c\x36\xda\x85\x14\x92\x3c\xab\xca\x33\x94\x08\xa4\xd4\xc4\xa0\x55\x20\xb8\x41\x50\xe1\x49\x38\x61\xb1\x20\x8a\xb6\xd2\x00\x7f\xd4\x70\x71\xec\xd8\x41\x9c\x4d\xe3\x87\x64\xca\xec\xb0\x93\xa2\xcc\x82\x59\xf4\x13\xef\xcb\x13\xe1\x94\x51\xd2\x2b\x9b\xd8\xa1\x92\xf9\x18\x4f\x62\xc4\x38\xb1\xfa\x98\x8c\xdc\x16\xb4\x3a\x19\xed\x3c\xa3\xdc\x13\xbd\xad\xa0\x11\x8c\xf9\x61\x32\xee\x3a\x06\xdb\x5e\xec\x80\xf4\xc9\x56\xb3\x92\x8f\x59\x23\xc5\xa7\x43\x52\xcc\x62\xea\x9e\x8a\x03\x10\xff\x95\x3d\x4f\xd8\x86\xd2\x6d\x6e\x5c\xcb\xb8\xc9\xaf\xda\x42\x4c\xe0\xe0\xc6\x6e\x3b\x51\x12\xf9\x3d\xe9\x88\xf1\x78\xf1\x03\xde\x77\x66\x3c\x3f\x37\x48\x3a\xef\x8a\x49\xb0\x6e\xd8\x64\x42\x55\x33\x36\xa2\xea\x07\x63\x50\xf3\x73\x0d\x60\x71\x64\xb7\x45\x9b\x9e\x90\xe3\xf9\x8a\xb8\x13\x20\x18\xd0\x2c\x86\xb6\x5d\x5e\x23\x58\xc6\x6e\xe8\xd6\x57\xa6\x58\x6a\xf7\x0e\xb2\x53\x69\x42\xb0\x73\x3f\x99\xd3\xdc\xb2\xeb\xb4\x98\x57\xd3\x84\xa8\x70\xcb\x0b\x62\xe3\x18\xa1\x30\xf1\xd9\x05\xa1\x2c\x71\xc3\x19\xad\x38\x0a\x8b\x02\x2d\x4e\x3f\x5f\x5e\xe1\xbb\x17\xd5\x5b\xec\xff\xb1\x28\xfd\x61\xd9\x93\xb5\xe0\x3d\x6d\x0d\x86\x4b\x24\x81\xdd\xe4\xf0\xe4\x72\x80\x0e\x84\xd9\x7b\x2a\x12\x66\x1b\xfb\xb9\x07\x0f\x37\xcd\x45\x8f\x0d\x43\x47\x40\x03\x49\x12\x39\xf6\x98\x70\x24\x38\x6a\x28\x18\x51\x79\x7d\x13\x22\x75\x2e\x6e\x24\xb1\x60\xfc\xdd\xe4\xa4\x29\x38\x3a\x69\x04\x35\xf1\x20\x0d\x0a\xd9\x58\x74\x01\x1d\xb8\x9d\x4f\xfa\xf2\x23\x2e\x84\xa7\x67\x62\x00\x09\xfa\x3e\x53\x4c\x50\xb2\x65\x68\x05\xa3\x80\x79\x9a\x16\x81\x7b\x35\x0a\x3b\x23\xd4\xd0\x3f\xcf\xff\xe4\xcf\x04\x82\x83\xc4\x71\x44\x18\x9d\xc9\xb9\x65\x37\x5c\xff\x5e\xe4\x17\x1a\x23\xc1\x72\xfe\xf7\xa8\xdd\xef\xd1\xc2\x4b\xe3\x38\x20\x36\x91\x22\x7c\x30\x56\xf7\x76\x1e\xca\x36\x08\x78\x51\xae\xff\x7f\x91\xe8\xac\xeb\x96\xd7\xb2\x10\x82\xa9\x5d\x6b\x79\x6a\xd7\x68\x8b\x9c\x48\x75\x4f\xa3\x4d\x28\x73\xc1\x37\x70\x12\xcc\x16\xa7\x98\xe8\x0c\x71\xd5\x75\x95\x72\xb1\x7e\x3a\x01\x3f\xa2\xe8\x78\xa5\x19\x4c\xe5\x35\x8e\xce\xc5\x60\x2f\xb2\x06\xd5\x90\xff\x76\x5f\x57\x75\x59\x04\xd4\x36\x1e\x11\x8f\xb1\x8f\x8f\xda\xd8\xdf\x38\x7f\xe6\x3f\x79\x67\x8e\xa9\x13\xd3\xb1\x63\x39\x55\xf8\xe1\x1c\x2d\x8d\x7c\x71\x67\x91\x23\x41\x88\xbd\xcb\x7b\xcc\xcc\xc6\xf3\xeb\x85\x99\x3e\xbe\x53\x47\x8b\xf9\x2d\xff\xf2\x33\x31\xf3\x94\xf2\x16\x42\x64\xa6\xc0\x29\xd0\xc8\xbb\x9a\x41\xe0\x9c\xc3\x5e\xff\x2a\x58\xd4\xad\x3b\x92\xb4\xd6\x82\xc7\xac\x73\xa7\x28\x89\x2b\xb1\x1b\x57\xc3\x9a\xed\x49\x70\x9c\x20\x0e\x91\x6b\xcb\xa5\x22\x9d\x16\x04\x3e\x34\xb1\xc0\x42\x23\xbe\x93\x78\x4e\x3d\xe8\xb7\x43\x49\x42\x5c\xf0\x73\xd7\x06\x85\x65\xe7\xd9\x14\xf2\x65\x73\x58\x1d\xc9\x19\x91\x9f\xee\xc1\x81\xd3\x71\xcc\x66\x29\xf8\x95\x72\x8f\x85\x26\xac\xef\x9c\xe5\x01\x10\xfd\x92\x57\xfc\x67\x7d\xe7\xfa\x23\xf9\x8f\x35\xba\x06\x86\xfc\x65\xd0\x74\xc4\x12\xa5\xe0\x2a\xd0\x67\x83\x6f\x80\xfc\x24\x43\x7e\x2d\x0d\xec\xff\x85\xb1\x02\x9e\x28\x66\x0b\x34\x48\x51\xa0\xbe\x45\xcd\xc1\x07\x16\xa0\x59\x74\xe5\xe0\x9d\x00\xf9\x94\xa4\xde\x6e\x97\xcf\x71\x48\xc3\x4e\xbe\xb5\x56\x5b\xe0\xec\xcf\x4d\xfa\x7c\x8b\x70\x69\x1d\x0a\x4f\xc4\xad\xf4\x0a\x04\x97\x77\xec\xf5\x60\xda\xaf\xe4\x37\xbb\xb8\xaf\x38\x0a\xd9\x08\x19\xf3\x01\x82\x02\xe7\x38\x51\x9d\x37\x2b\xdb\x17\xf7\x71\xa2\x9d\x8b\xc5\x84\x51\x26\x25\x67\xd3\x8b\xeb\x9f\xc9\x2e\x00\x0c\x18\xdf\x63\x24\xe6\xc4\xda\x79\x47\x54\xc8\x49\xb2\xfd\xed\x1b\x67\xac\x18\xb4\x8a\x8b\x05\x77\x3d\x62\xe2\x4e\xc7\x8a\xd9\xcb\x00\xb9\x95\x9f\xe2\x0c\x0d\x87\x78\xad\x63\x62\x60\xaf\x68\xe1\xf3\x36\xe0\xa9\x67\x8b\x7c\x84\x75\x2a\x62\x43\x55\x25\x73\x80\xfe\x51\xd9\x8e\x1c\x17\xb6\xf0\x26\xff\x82\x06\xe9\xb1\xb4\xc0\x45\x1c\x9e\xe8\xa5\xde\x6a\x38\xa2\xbf\x52\x81\x0f\xa1\x7f\x81\x1a\x4d\xc5\x69\x31\xec\x4d\xe8\xfe\xe4\x7c\x55\x34\x41\xaa\xf1\x68\x3f\x94\xf5\xe6\xfa\xd5\x4e\xaa\xf6\x6e\x6d\x6a\xcb\xd6\x27\xd6\x4e\x05\x45\xef\xb2\x65\x07\x41\xd6\x5b\xfb\x41\xb1\x2d\x84\xb5\xf8\xa9\x2a\xe9\x78\xdb\x26\x12\xae\xda\x68\x23\xb3\xd4\x22\xe5\x64\x29\xe7\xfe\xa6\xa7\x02\x80\x01\xe7\x0c\xda\x4c\x3b\xdc\x74\x17\x50\x85\x8e\x4a\x4f\x44\xcb\x87\xe4\x71\x12\xae\x9a\x03\x38\x56\x94\x02\xc3\x86\xb1\xf2\x32\xba\xc1\x45\x67\x93\x46\x2d\xa3\x38\xb3\x85\x1b\xb3\x1d\x93\xe6\x4d\x61\x47\x3b\xcb\xbf\x40\x0d\x0f\xc9\x9b\xf5\xe0\x6b\x98\x91\x22\x51\x8f\x61\x49\x8d\x82\x65\x84\x6c\x6b\x59\x6b\x73\xd4\x9a\x13\x86\xcf\x28\x40\x6b\x33\xd9\x0e\x9d\x91\x9a\xf9\xbf\x0e\x74\x45\x60\x61\x34\x3c\xe0\x7f\x46\x19\x1f\x05\x0c\x5f\x69\xf4\xc6\x2d\x89\x56\x17\x77\x5e\x1c\xce\x6e\x82\xa9\xb3\x00\xea\x5c\xed\x96\x67\xb7\x84\xe5\x9b\x68\x7c\x8f\x48\x70\x77\xc2\x45\x8d\x6d\xb7\x26\xcb\xf0\x09\xc3\x3c\x92\x57\x6f\x35\xa1\x49\xa7\xaa\x11\xf2\x9c\xca\xd5\x79\x67\xfc\x3e\xc9\xcd\xa6\x5a\xe3\x0b\xa1\x75\xbf\x3e\x40\x5a\x30\x3c\xae\xed\x44\x0e\xd2\x1a\x99\x73\x5c\x4f\xe5\x24\xf8\x42\x39\x71\x47\x3d\xb4\x8f\xa5\x05\xf4\x4a\x4d\x13\x56\xb8\x2a\x90\xc7\xf5\x81\x73\x2f\xeb\x08\x9c\x0e\x83\x01\xff\xc5\x4d\x32\x07\x57\x14\x47\xc4\xf7\x5d\x96\xb0\xba\x58\x87\xa5\x58\xda\x9a\x2f\xf2\x72\x6f\xa8\x74\x8c\x21\x79\x27\x61\x93\x69\x5b\xf0\x36\x58\x97\x8b\xda\xa7\x4b\x4c\x02\xfb\xf0\x0c\x1a\x5a\x9e\xca\x00\x9e\x7a\x3b\xfd\x5d\x48\x88\x1c\xec\xb7\x43\xe5\xb6\x5b\x0c\x0b\x1e\x02\x4b\x80\x04\x48\x53\x26\x5a\xc0\xee\x2f\xd9\x2d\xde\xbb\xd5\x9c\x4d\x4c\xb3\xa0\x9d\x83\xf9\xdf\xc5\xc2\x74\x11\x1e\xc8\xca\xab\x4c\xbc\x65\x51\x8e\xf6\xa8\xe2\xe0\xf1\x49\x93\xc1\x7a\xf6\x6d\x7d\xd5\xd3\x06\x43\xb2\x39\x1b\x72\x89\x75\xf3\x88\x6b\xb0\xc6\x40\x65\xc8\x7e\xec\x0c\x28\x69\x6a\x07\xd1\xc3\x04\x16\xb7\x90\x1d\xcd\x4f\x94\x13\x9c\x91\x7d\xc9\x86\xff\x15\xf1\x36\x4b\x22\x7c\xf5\x94\xba\x63\xe2\x83\x62\xe5\x21\x17\xa5\x46\x9f\xc1\x5d\xed\xb4\x5c\x7e\x12\x4b\x58\xb0\x14\xe2\xc4\x98\x93\x3e\xc3\x62\xab\x60\xc7\x58\xdb\xc1\x5c\xc7\xb1\x7b\x36\xfd\x92\x65\xf9\xd5\x85\x7f\xdb\xa2\xed\xb3\x6a\x35\x5c\x52\xf5\x3d\x09\xf0\x3e\x47\x4c\xa4\x5a\x06\xf9\x99\x5d\x1f\x10\xb0\xbe\x32\x33\xeb\x83\x1b\x04\x72\x00\xd3\x54\x72\xb2\x13\x7b\xc2\xfb\x77\xb8\x19\xda\xf9\xa8\xe9\xb8\x53\xd9\x52\x93\x19\x93\xf9\x2c\x62\x09\xa3\x58\x7a\xd8\x12\x98\x9d\x85\x7a\xae\x67\xaa\x7e\x87\x27\x5f\xc3\x4b\xe4\xb3\xb7\x8b\x47\x5c\x32\x00\xe3\x5f\x04\x53\xbc\xdd\x00\xd8\xd7\x18\xa5\x28\x6c\xb4\x7d\xee\x49\xd9\x0a\xfe\xd7\xf4\xfe\x42\x49\x6b\xa3\x3c\xf1\x3d\x6f\x17\xc1\x05\xed\xdb\x25\xc8\x76\xd6\xf5\x2a\x21\xcf\x09\x8d\x42\xd9\xbf\xc7\x2f\x05\x35\x28\x1f\x6c\x02\x21\x03\x45\x5d\xcb\x87\xfc\xd5\x05\xd7\x71\x4e\x79\x41\x7c\x9f\xcd\x32\x20\x8e\x38\x8c\x9d\x50\xe5\x61\xf2\x31\xa0\x9c\xc7\x31\x49\xf2\xec\x24\x8b\xd1\xfc\x88\x5f\x3e\x10\x59\x65\x9b\x1a\x4a\xc9\x78\xbb\x5c\x81\xb0\x93\xda\x5b\x9d\xc2\x93\x09\x6b\xa9\xfd\xbe\xc0\x05\x02\x19\x2e\x4f\xae\x10\xaf\xd3\x60\x5c\x2c\x02\x0a\x62\x8a\x05\x5d\x56\x59\xc3\xef\xfb\x76\x44\x68\x34\xa8\xe8\x4e\xdf\x52\x39\xc9\xea\x6c\xb6\xcb\x85\xae\xf6\x4b\x68\xbc\x7e\x2f\x96\x85\x6f\x65\xe9\x76\xba\x1b\xd5\x25\xc1\x96\x5e\xc7\xa2\xd9\x54\xcc\x99\xfb\xa8\xfa\x13\xd3\x29\x22\x7f\x7f\x93\x21\x68\x9c\x63\x1a\x12\xdc\xb0\xac\x99\x48\x7b\xfe\x47\x25\xe9\xb7\xd0\x1e\x84\x81\x02\x49\x43\xcc\x35\xf7\xa0\xe8\x7a\x21\x42\xa9\x22\x9d\x35\x3b\x41\x28\x89\x7a\x9b\x3b\xc4\xa4\xeb\xc8\x2d\xde\x1c\xbf\x76\x16\xdc\x65\x44\xe0\x5d\xb9\x08\x20\x3e\xc5\x68\xb9\xf4\x88\x93\xa0\xfc\x9a\x1a\x77\xcb\x73\x40\xaf\xe9\x77\xb5\x1f\x3a\x4a\x1e\x55\x5a\xb8\x11\xb9\x72\x39\x96\xed\x60\xb7\x01\x84\xc5\x38\xcb\xde\xd3\x27\xfa\xda\x7d\x9a\xc2\x05\xb3\x29\x58\xcf\xce\xeb\x3c\xee\x19\x2d\xa0\x3e\xfd\x31\x47\x6c\x88\xdf\xd0\x58\x12\xdf\x72\xc9\x77\xd1\x7f\x44\xae\x5d\x69\x6f\x33\x61\x85\xd2\xd9\x07\x79\x74\x7d\x6d\x91\x34\x7d\xa9\x6b\x40\xff\xbd\x32\x3f\x16\x02\x2e\xa6\x3a\x74\x40\x77\x89\x3f\x6e\x16\x99\x1d\x65\x84\x9d\x65\xcb\xcd\xc1\x0f\x83\xdb\x70\x81\x09\x35\xcb\xa0\x4e\xde\x08\xf7\x4a\x72\x61\xa2\x86\x13\x0e\x14\x71\x84\xc0\xf1\x28\x27\xd7\x4f\xc6\xc8\xdb\x93\x54\xfe\x3c\xa3\xe0\x44\x0a\x06\xe3\x2b\x15\x66\x23\xb3\x58\x7c\x7b\x23\x87\x29\x54\xfa\xa2\x7e\xb7\x18\x82\xbf\x94\x5f\x03\x5b\x72\x12\xdf\x25\x23\xa7\xe8\xc5\xac\x16\x58\xbf\xa6\xa4\x60\xad\x97\x39\x77\xdc\x59\x28\x38\x71\xb6\xde\x43\xe4\x92\xf8\xd4\x76\xbf\x34\x0f\x7f\x6a\x92\xa3\x8d\xc4\xab\x15\xbd\xd3\xe0\xff\x15\x95\x9c\x7c\x49\xda\x65\x81\x0e\x60\x06\x0c\xce\xfe\xfd\x93\x1c\xe9\xe5\x42\x4c\xb6\xfa\xa2\x7e\x2e\x26\xb3\xa2\x3f\x52\xb9\xca\x19\xae\x15\xba\x0b\xfe\x5e\x47\xb5\xa7\x00\x40\x2d\xed\xa7\xf5\x33\x78\x97\xdc\x23\xfe\xe1\x1c\x62\x38\x3a\x3f\xbd\x1f\x28\xae\x2a\xc4\xcc\xed\xfc\x92\x64\x18\xd0\xdb\x7d\x6e\x22\x83\x31\xac\x7a\x8d\xf3\x11\x93\xee\x68\xbc\xcc\xb0\x4a\xa7\xfd\xd4\x8c\x9e\xa7\x4e\xa5\xa8\xb0\xce\x94\xe7\xa3\x1c\x3d\xc5\x96\xfd\x10\xd3\x03\x80\x28\x0e\x61\xbd\x2c\x11\x62\x5e\xa9\xf1\xad\xa2\xe0\x31\xeb\x80\x7d\x57\xb3\x6a\x17\xf3\xbc\x74\x88\x81\xa5\x6a\x98\x77\xe3\x58\x38\x8f\x2d\x49\x3c\x61\x94\x3c\x79\xc8\x87\x9a\xd7\x4e\x51\x5c\x9b\x38\xb1\x0f\x6b\xf4\xc0\xbb\xe1\x29\xfa\x8f\xcf\x2c\x2a\x82\xe9\x13\xec\xe2\xd3\x3a\x33\xa5\xc7\xa5\x81\xe7\x57\x14\x20\xf1\x4f\x21\x05\xd3\x76\xab\xa2\xaa\x5c\x5f\x58\x10\xd7\xe3\x4e\x78\xab\xe7\x68\x65\x54\x07\x19\xd2\x63\x4b\x38\x4f\xbb\x84\x0c\x05\xec\x3b\xc2\xe5\x3a\xf1\x30\x56\x14\x16\x80\xab\xa6\x7a\xdb\xe6\xe8\x88\x8b\x2d\x88\x95\x9e\xb9\xe9\xa5\x6f\x98\x55\x2b\xd0\x83\x23\x0a\xf6\xae\xfb\xd8\x35\xad\xf9\xf5\x0f\x0d\xaa\xe9\x81\x4c\x67\x02\xf7\xd0\xb1\xe9\xca\xde\x35\xa3\x53\x6d\x62\x7d\x92\xa3\x01\x17\x72\x77\x91\x00\x45\xd0\xff\x08\x6e\xd8\x4e\x61\xc4\x2c\x82\x3f\xdd\x8b\x7e\xf1\x69\x1d\x44\x64\x5b\x40\xca\x57\xa1\xcc\xc0\x13\xda\x6a\x24\xcb\xd4\x32\x57\xbf\xc0\xbf\x69\x6c\x7a\x60\xbb\x6d\xd6\x77\xb3\xa7\xc2\xf3\x78\xb3\xa9\x63\xab\xbb\x27\x15\xc9\xb7\xb5\x7f\xb7\x95\x9a\xe9\x70\xc1\xbe\xd9\x3a\xd0\x7e\x05\x07\xae\xc8\xee\x94\xfc\xa0\x97\xa4\xd0\x66\x93\x97\x2a\x4b\xcf\xf3\x68\xbd\x4b\x34\xe1\x30\x9c\xa8\xc8\x47\x07\x5a\xf2\xeb\x5d\xba\x14\x44\x13\x21\x19\x78\x81\xad\x53\x5f\x78\x92\x93\x52\x61\xf2\xfb\x94\xe1\x73\x94\x31\x63\x27\xb5\xb6\xa0\xc7\x77\x8d\x4f\x8e\xe2\xa5\x39\xee\x3b\x4c\xd3\x9b\x53\xf3\x71\x61\x4e\x71\xd9\xe0\x53\x83\x20\x44\x59\x0c\x0c\xad\x40\x19\xfe\x55\xe8\x48\x9e\x9a\xba\x62\x04\x90\xa8\xea\xb8\xac\x8b\x06\x92\x84\x18\x5b\xd7\xb8\x19\xfe\x01\x83\xba\x8b\xb7\x38\x2e\x19\xf9\x5f\x3f\x60\x7d\x87\xf6\x71\x8d\x86\x89\xd0\x39\x4d\x5e\x88\xe1\x4e\x2c\x8d\xea\xfb\x59\x0d\x4c\x1f\xb1\xbd\x76\x08\xaf\x6e\x4a\x2b\xaa\x2a\x0c\x27\x04\x4f\x00\xb5\xdf\x03\x4b\x13\x1d\xa8\x68\x8a\x25\x0c\x08", 4096); *(uint64_t*)0x200213c8 = 0x20021300; *(uint32_t*)0x20021300 = r[0]; *(uint32_t*)0x20021304 = r[0]; *(uint32_t*)0x20021308 = r[1]; *(uint32_t*)0x2002130c = r[0]; *(uint32_t*)0x20021310 = r[1]; *(uint32_t*)0x20021314 = r[1]; *(uint64_t*)0x200213d0 = 0x20021340; *(uint64_t*)0x200213d8 = 0x20021380; *(uint32_t*)0x200213e0 = 0x1000; *(uint32_t*)0x200213e4 = 6; *(uint32_t*)0x200213e8 = 0x3d; *(uint32_t*)0x200213ec = 3; res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200213c0, /*actual_bytes=*/0x20021400, /*actual_handles=*/0x20021440); fprintf(stderr, "### call=3 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); if (res == ZX_OK) { r[4] = *(uint32_t*)0x20021380; r[5] = *(uint32_t*)0x20021384; r[6] = *(uint32_t*)0x20021388; } break; case 4: *(uint64_t*)0x20031540 = 0x20021480; *(uint32_t*)0x20021480 = 0; memset((void*)0x20021484, 0, 3); *(uint8_t*)0x20021487 = 1; *(uint64_t*)0x20021488 = 0x66c69d1b00000000; *(uint32_t*)0x20021490 = 2; *(uint32_t*)0x20021494 = 2; *(uint64_t*)0x20021498 = 9; *(uint64_t*)0x200214a0 = -1; *(uint64_t*)0x200214a8 = 2; memset((void*)0x200214b0, 0, 1); *(uint64_t*)0x20031548 = 0x200214c0; *(uint64_t*)0x20031550 = 0x20021500; *(uint64_t*)0x20031558 = 0x20031500; *(uint32_t*)0x20031560 = 0x38; *(uint32_t*)0x20031564 = 0; *(uint32_t*)0x20031568 = 0x10000; *(uint32_t*)0x2003156c = 0; res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[5], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20031540, /*actual_bytes=*/0x20031580, /*actual_handles=*/0x200315c0); fprintf(stderr, "### call=4 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); break; case 5: *(uint64_t*)0x200416c0 = 0x20031600; *(uint32_t*)0x20031600 = 0; memset((void*)0x20031604, 0, 3); *(uint8_t*)0x20031607 = 1; *(uint64_t*)0x20031608 = 0x4fcfbc1100000000; *(uint32_t*)0x20031610 = 0; *(uint32_t*)0x20031614 = 1; *(uint64_t*)0x20031618 = 0xc1; *(uint64_t*)0x20031620 = -1; memcpy((void*)0x20031628, "*[#,)&,-[)}", 11); *(uint64_t*)0x200416c8 = 0x20031640; *(uint32_t*)0x20031640 = 0; *(uint32_t*)0x20031644 = r[5]; *(uint64_t*)0x200416d0 = 0x20031680; *(uint64_t*)0x200416d8 = 0x20041680; *(uint32_t*)0x200416e0 = 0x38; *(uint32_t*)0x200416e4 = 2; *(uint32_t*)0x200416e8 = 0x10000; *(uint32_t*)0x200416ec = 4; res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200416c0, /*actual_bytes=*/0x20041700, /*actual_handles=*/0x20041740); fprintf(stderr, "### call=5 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); if (res == ZX_OK) r[7] = *(uint32_t*)0x2004168c; break; case 6: res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/0x104d); fprintf(stderr, "### call=6 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); if (res == ZX_OK) r[8] = res; break; case 7: res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t))CAST(zx_channel_create))(/*options=*/0, /*out0=*/0x20041880, /*out1=*/0x200418c0); fprintf(stderr, "### call=7 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); if (res == ZX_OK) r[9] = *(uint32_t*)0x20041880; break; case 8: res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t,intptr_t))CAST(zx_exception_get_thread))(/*handle=*/r[5], /*out=*/0x20041900); fprintf(stderr, "### call=8 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); if (res == ZX_OK) r[10] = *(uint32_t*)0x20041900; break; case 9: *(uint64_t*)0x20041bc0 = 0x20041780; memcpy((void*)0x20041780, "\xfa\x2f\x40\x69\xc5\xf5\x4d\x24\x79\xf8\x4d\x1d\x73\x3a\x52\xf5\x9f\x0a\x68\x70\x94\x66\xe6\x63\x3a\x63\x18\xf6\x05\x7f\xbf\xc9\xf0\x48\xb0\x9b\xfb\xb6\x39\x05\xdc\x82\x47\x45\xb1\x62\x47\xee\x57\x0e\x79\xaf\x77\xfd\xe7\x3b\xe0\x86\x53\x56\x84\x1b\x89\x97\xc5\x5e\x4c\x9b\x79\x2e\x2c\xd8\xc5\xac\x57\x89\x60\xab\x6b\x2d\x80\x4c\xd8\x9e\xb8\xf0\xde\x21\x51\xa1\x69\x3b\x64\x98\xd6\x1a\xbe\xdb\xd5\xdb\x7c\xae\x8b\x09\xf9\x4c\x6d\x94\x2c\xb3\x10\x51\x52\x49\x61\xcc\x82\xc4\x94\x0a\xf1\xab\x9c\xee\xba\x52\x71\x6e\xb2\x5b\x87\x0e\xaf\xbb\x41\xd9\xa1\x56\x2e\x96\x70\xdf\x00\x38\x4a\xa9\x55\x4b\x70\xf9\xa1\x66\x83\x41\x50\xf2\xe3\x72\x15\xe4\x13\xba\x12\x38\xa1\x81\xd4\xf7\x43\x58\x43\xb6\xbb\x56\xfa\x88\x61\xd8\x68\x80\x01\xd3\x9d\x9e\x2b\x18\x9f\x67\xe8\x05\x33\x11\x89\x64\x29\x97\x63\xf5\x86\x82\x8c\x69\x3c\xc9\x71\x2a\x9c\x25\x52\xdc\x30\xe5\x72\x25\x21\x2f\x5a\x50\xef\xe5\x6d\xa9\x9a\x32\x82\x4c\x4c", 227); *(uint64_t*)0x20041bc8 = 0x20041a80; *(uint32_t*)0x20041a80 = r[9]; *(uint32_t*)0x20041a84 = r[10]; *(uint32_t*)0x20041a88 = 0; *(uint32_t*)0x20041a8c = r[1]; *(uint32_t*)0x20041a90 = r[6]; *(uint32_t*)0x20041a94 = r[0]; *(uint32_t*)0x20041a98 = r[4]; *(uint32_t*)0x20041a9c = 0; *(uint32_t*)0x20041aa0 = 0; *(uint64_t*)0x20041bd0 = 0x20041ac0; *(uint64_t*)0x20041bd8 = 0x20041b80; *(uint32_t*)0x20041be0 = 0xe3; *(uint32_t*)0x20041be4 = 9; *(uint32_t*)0x20041be8 = 0x9a; *(uint32_t*)0x20041bec = 8; res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); fprintf(stderr, "### call=9 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); break; case 10: memcpy((void*)0x20000000, "\xc4\xe1\xd9\xd2\x9e\x91\x00\x00\x00\xc4\x81\x71\xfd\x84\x48\x00\x00\x00\x20\xc4\xa1\x7f\x70\x44\xba\x34\x0e\xf3\x0f\xae\xd6\xc4\x62\x79\xa7\x5d\x03\xc4\xc2\xfd\x96\x42\xa7\x2e\x66\x43\x0f\x38\xf5\x59\x00\x42\x0f\x34\xc4\xe1\x78\x2b\x42\xc0\xc4\x42\x65\x92\x24\x2c", 66); res = -1; errno = EFAULT; res = syz_execute_func(/*text=*/0x20000000); fprintf(stderr, "### call=10 errno=%u\n", res == -1 ? errno : 0); break; case 11: res = -1; errno = EFAULT; res = syz_future_time(/*when=*/1); fprintf(stderr, "### call=11 errno=%u\n", res == -1 ? errno : 0); break; case 12: res = -1; errno = EFAULT; res = syz_job_default(); fprintf(stderr, "### call=12 errno=%u\n", res == -1 ? errno : 0); break; case 13: res = -1; errno = EFAULT; res = syz_mmap(/*addr=*/0x20ffe000, /*len=*/0x1000); fprintf(stderr, "### call=13 errno=%u\n", res == -1 ? errno : 0); break; case 14: res = -1; errno = EFAULT; res = syz_process_self(); fprintf(stderr, "### call=14 errno=%u\n", res == -1 ? errno : 0); break; case 15: res = -1; errno = EFAULT; res = syz_thread_self(); fprintf(stderr, "### call=15 errno=%u\n", res == -1 ? errno : 0); break; case 16: res = -1; errno = EFAULT; res = syz_vmar_root_self(); fprintf(stderr, "### call=16 errno=%u\n", res == -1 ? errno : 0); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :456:81: error: use of undeclared identifier 'zx_channel_call_etc' res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor973952565 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/14 (0.83s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:2 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:true Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(0x0, 0x0, 0x0, &(0x7f00000100c0)={&(0x7f0000000000)={{}, {0xffffffff, 0x0, {0x4, 0xffffffffffffffff}}}, &(0x7f0000000040), &(0x7f0000000080), &(0x7f0000010080)={{0x0, 0x0, 0x0, 0x0}}, 0x28, 0x2, 0x10000, 0x4}, &(0x7f0000010100), &(0x7f0000010140)) (fail_nth: 1) r3 = zx_deadline_after(0x5) (async) zx_channel_call$fuchsia_io_DirectoryAdminLink(r2, 0x0, r3, &(0x7f0000020240)={&(0x7f0000010180)={{}, {0x3, 0xffffffffffffffff}, 0xffffffff, {0x1b3}}, &(0x7f00000101c0), &(0x7f0000010200), &(0x7f0000020200), 0x34, 0x1, 0x10000}, &(0x7f0000020280), &(0x7f00000202c0)) (rerun: 4) zx_channel_call(r2, 0x0, r3, &(0x7f00000213c0)={&(0x7f0000020300)="6b3c1256279544bb32d36243afcbfda5cd1a1759ba09b008c97e2be49ab10adda6d88f529de7b04ad9b0fdd96d3184196e8e6975312bf6a2c53df14551fa4b32627dd679eef9c59f190ca4036814372cf510d02917535f1f02da97f6d1601f3e89e10a621b4e82ba76d41a2f87249736cd35a2432bf368daf43f60387c27f9177614c2f4d4fd31ddd5e08d63429d663ee14a1932bf8f4df70369f3c2a75197422ed0022be80fd87b79db2a43499a48bdcd91246573303a4508e17cf020c64c577b8bb0926c4bde1560a77446497e5bafec8429a311719384f637c4a008c3ddd62610dbb1d4c2dd8f1bd73e7f3657fcf24dbb896a145b28f34098f9d40199c5b72003c4e08eab96aec066bf2d97c2661f4cd91c59cd4f9e4f5617cfd6ada6e04953cc4c7be1c3f10de31e155dd174e99f4136cae08e308b3c22b5d1dd66b379703429b4d5dfa60ec7d1aa50043c92c1a949b3d940f604d1f44ebdd3c3e4ab647c7e66f1211eec2712e0e4b70cb1a2c1c6c3b4e29a1042834acc26e99b38f6075bbea108bf124c3b1cc4275227bd0167110d69972d46b2dbd6b18314d2ea664ac2f4e4490ab3223eb08178f92e0c17bf861894997cd092fe07c06c5e0db444085a138c638d6eb7889a1996340ea460991f75cd1aba0bcae8f9779587f6df761f75373199146daba4848ac8a2a9b099ae5a54ed617ecb56326627016ea3d6d077f90474dbf037689bd7724a1cef3626e6e196748c050f91c662fda495b67e5aa3b016dc3bccb2d7a9733eca7c7bdd8847540d273b9c8c29335ebdd7715ee4f57dfe5c6a0f3d584398c0ea55375bd2c31b6c74e9f4eeb859c8977063125cdf72532de65c0a00d53bc003c8b101838ee151319695c0ac2acef5f1910bc952bebc7f689f52067f81c18c5dfac90057cdbd0f75e928163aeb09ef0159b66da4210834ca8ee3e285270b51f5e256867ce622923fd3c40e615e1342418a196fcb8e2b56486722f7b5ca524c75dbdb9be6314b7ad590b5cf8f80d7927dda79ceb1369d780f3338c1efb83ca7bdda05f8ca9445b500c0506359a4baa2a8ee7e8b4afb48dbdc2a56194a8da4d1ac425245b83e1e8e448a29da4e2071aea3b8ef3a3cb5827e616d4707f851eea6260972eade34da0a8f34407f4d3e455ba0aa026a853ebb5e6d64e9d8105e69b84e36fb57a8b6e0e7cbb9e5d524988036d958e32a38f5977b3c7038c983994f0888fe3091aa1f45919f0602b5d750738b171b9787af296f2ba5fee311a16f1cdcd810a6689ac7a75bc19e693395b00cfdaf13cca6670a472d449e9efef6e0f9d1c1abaabaaa37e2b27d7d6723d98af800a0b2b5196b284a9e11a5c5e62c4d862522254225216d4ff21afd49bd07f74e9d189bc576d3dd39a739779875e2dcbcf356a52ca08cb29eae8579ca6608a194135941eed7e330de08a9e5095b177ce26b2321e7ac9862bacef371c4d2e9dc8bab9118a15ff9fc4679a1d0eeb64806a80cc739edfddf9d4fa2f42f870212c23ae81ebc9168c955535041c1ce54edf8e3cae6684dab1b1eed16b25bc667a36691d0e050a49f2d782ed9ec3f94d50c8d3358a82375d3605fdb7912b1fc3ed9155fb1052c93e61005c2f6a87c42cf68aff9e6c9e19813653770c439cc397f9ecba27a99b082054d8f44a5b82baea68bd849cde7044a27792a26b3a12d938cb650a8914124be069a1d8a0f98d98768f9144afcc851b338a84d797c35a7657111fa4278b62eee95e3ddedb8916d03c93ec884ac97e29b1d4490ecae90628ed261ebcbbd4d0c12d1c295e6683d685c508d14f289f5b0c86bbd05c31edb6ef46aba2abe24f53c90b33ac3b8033616687a9d3b2900876cb4879145771c0957a07d371f9826e641089e347c155fd62cf176bb4f6af7c223b45cfd0e0a5410922527f9a89a8bb864f497a763fac941097410f448373d1232955cdd4c067364151ae3f57e3bd611975eb189e3de3de659b8f58fc7bc86bb7717711aea0f512ae8fb8f0dad0b9a91cb4b1d512095de2923a54add0883f1b194082abb2d77105e9d00d23e0c0e2226cb2f831d10a66223d9f717260558318f72b66926e0ae2a169b8f5fb86d9f611760d9626218791f7a18b807e12dd61b895d96885c8a39ae56faa0987a4bc634bf638902288cbe304d2e6085b35bbd8c69f7c7bc08a54764e5a58c36da8514923cabca339408a4d4c4a05520b84150e1493861b1208ab6d2007fd47071ecd8419c4de38764caecb093a2cc8259f413efcb13e19451d22b9bd8a192f9184f62c438b1fa988cdc16b43a19ed3ca3dc13bdada0118cf96132ee3a06db5eec80f4c956b3928f5923c5a74352cc62ea9e8a0310ff953d4fd886d26d6e5ccbb8c9afda424ce0e0c66e3b5112f93de988f178f103de77663c3f37483aef8a49b06ed86442553336a2ea076350f3730d607164b7459b9e90e3f98ab8132018d02c86b65d5e2358c66ee8d657a6586af70eb2536942b0733f99d3dcb2ebb49857d384a870cb0b62e318a130f1d905a12c71c319ad380a8b022d4e3f5f5ee1bb17d55becffb128fd61d993b5e03d6d0d864b2481dde4f0e472800e84d97b2a12661bfbb9070f37cd458f0d43474003491239f6987024386a281851797d1322752e6e24b160fcdde4a429383a690435f1200d0ad95874011db89d4ffaf2232e84a767620009fa3e534c50b2656805a380799a16817b350a3b23d4d03fcfffe4cf048283c47144189dc9b965375cff5ee4171a23c172fef7a8ddefd1c24be338203691227c3056f7761eca36087851aeff7f91e8aceb96d7b21082a95d6b796ad7688b9c48754fa34d2873c1377012cc16a798e80c71d5759572b17e3a013fa2e878a5194ce5358ecec5602fb206d590ff765f57755904d4361e118fb18f8fdad8df387fe63f79678ea913d3b1633955f8e11c2d8d7c716791234188bdcb7bccccc6f3eb85993ebe53478bf92dfff23331f394f2164264a6c029d0c8bb9a41e09cc35eff2a58d4ad3b92b4d682c7ac73a728892bb11b57c39aed49709c200e916bcba5229d16043e34b1c04223be93784e3de8b74349425cf073d7068565e7d914f26573581dc919919feec181d371cc6629f895728f8526acef9ce50110fd9257fc677de7fa23f98f35ba0686fc65d074c412a5e02ad067836f80fc24437e2d0decff85b1029e28660b344851a0be45cdc10716a05974e5e09d00f994a4de6e97cf7148c34ebeb5565be0eccf4dfa7c8b70691d0a4fc4adf40a049777ecf560daafe437bbb8af380ad90819f3018202e738519d372bdb17f771a29d8bc58451262567d38beb9fc92e000c18df6324e6c4da794754c849b2fded1b67ac18b48a8b05773d62e24ec78ad9cb00b9959fe20c0d8778ad636260af68e1f336e0a9678b7c84752a624355257380fe51d98e1c17b6f026ff8206e9b1b4c0451c9ee8a5de6a38a2bf52810fa17f811a4dc56931ec4de8fee47c553441aaf1683f94f5e6fad54eaaf66e6d6acbd627d64e0545efb2650741d65bfb41b12d84b5f8a92ae978db2612aeda6823b3d422e56429e7fea6a7028001e70cda4c3bdc741750858e4a4f44cb87e47112ae9a0338569402c386b1f232bac1456793462da338b3851bb31d93e64d61473bcbbf400d0fc99bf5e06b989122518f61498d8265846c6b596b73d49a1386cf28406b33d90e9d919af9bf0e74456061343ce07f46191f050c5f69f4c62d895617775e1cce6e82a9b300ea5ced9667b784e59b687c8f487077c2458d6db726cbf009c33c92576f35a149a7aa11f29ccad57967fc3ec9cda65ae30ba175bf3e405a303caeed440ed21a99735c4fe524f8423971473db48fa505f44a4d1356b82a90c7f581732feb089c0e8301ffc54d3207571447c4f75d96b0ba5887a558da9a2ff2726fa8748c2179276193695bf03658978bdaa74b4c02fbf00c1a5a9eca009e7a3bfd5d48881cecb743e5b65b0c0b1e024b80044853265ac0ee2fd92ddebbd59c4d4cb3a09d83f9dfc5c274111ec8caab4cbc65518ef6a8e2e0f14993c17af66d7dd5d30643b2391b728975f3886bb0c64065c87eec0c28696a07d1c30416b7901dcd4f94139c917dc986ff15f1364b227cf594ba63e28362e52117a5469fc15dedb45c7e124b58b014e2c498933ec362ab60c758dbc15cc7b17b36fd9265f9d5857fdba2edb36a355c52f53d09f03e474ca45a06f9995d1f10b0be3233eb831b047200d35472b2137bc2fb77b819daf9a8e9b853d952931993f92c6209a3587ad812989d857aae67aa7e87275fc34be4b3b78b475c3200e35f0453bcdd00d8d718a5286cb47dee49d90afed7f4fe42496ba33cf13d6f17c105eddb25c876d6f52a21cf098d42d9bfc72f0535281f6c022103455dcb87fcd505d7714e79417c9fcd32208e388c9d50e561f231a09cc73149f2ec248bd1fc885f3e1059659b1a4ac978bb5c81b093da5b9dc293096ba9fdbec00502192e4fae10afd3605c2c020a628a055d5659c3effb76446834a8e84edf5239c9ea6cb6cb85aef64b68bc7e2f96856f65e976ba1bd525c1965ec7a2d954cc99fba8fa13d329227f7f9321689c631a12dcb0ac99487bfe4725e9b7d01e8481024943cc35f7a0e87a2142a9229d353b4128897a9b3bc4a4ebc82dde1cbf7616dc6544e05db908203ec568b9f48893a0fc9a1a77cb7340afe977b51f3a4a1e555ab811b9723996ed60b70184c538cbded327fada7d9ac205b32958cfceeb3cee192da03efd31476c88dfd05812df72c977d17f44ae5d696f336185d2d90779747d6d91347da96b40ffbd323f16022ea63a744077893f6e16991d65849d65cbcdc10f83db70810935cba04ede08f74a7261a286130e147184c0f12827d74fc6c8db9354fe3ca3e0440a06e32b156623b3587c7b23872954faa27eb71882bf945f035b7212df2523a7e8c5ac1658bfa6a460ad973977dc59283871b6de43e492f8d476bf340f7f6a92a38dc4ab15bdd3e0ff15959c7c49da65810e60060ccefefd931ce9e5424cb6faa27e2e26b3a23f52b9ca19ae15ba0bfe5e47b5a700402deda7f5337897dc23fee11c62383a3fbd1f28ae2ac4ccedfc926418d0db7d6e228331ac7a8df31193ee68bcccb04aa7fdd48c9ea74ea5a8b0ce94e7a31c3dc596fd10d30380280e61bd2c11625ea9f1ada2e031eb807d57b36a17f3bc748881a56a9877e358388f2d493c61943c79c8879ad74e515c9b38b10f6bf4c0bbe129fa8fcf2c2a82e913ece2d33a33a5c7a581e7571420f14f2105d376aba2aa5c5f5810d7e34e78abe76865540719d2634b384fbb840c05ec3bc2e53af13056141680aba67adbe6e8888b2d88959eb9e9a56f98552bd083230af6aefbd835adf9f50f0daae9814c6702f7d0b1e9cade35a3536d627d92a301177277910045d0ff086ed84e61c42c823fdd8b7ef1691d44645b40ca57a1ccc013da6a24cbd43257bfc0bf696c7a60bb6dd677b3a7c2f378b3a963abbb2715c9b7b57fb7959ae970c1bed93ad07e0507aec8ee94fca097a4d06693972a4bcff368bd4b34e1309ca8c847075af2eb5dba14441321197881ad535f7892935261f2fb94e17394316327b5b6a0c7778d4f8ee2a539ee3b4cd39b53f371614e71d9e053832044590c0cad4019fe55e8489e9aba620490a8eab8ac8b069284185bd7b819fe0183ba8bb7382e19f95f3f607d87f6718d8689d0394d5e88e14e2c8deafb590d4c1fb1bd7608af6e4a2baa2a0c27044f00b5df034b131da8688a250c08", &(0x7f0000021300)=[r0, r0, r1, r0, r1, r1], &(0x7f0000021340)=""/61, &(0x7f0000021380)=[0x0, 0x0, 0x0], 0x1000, 0x6, 0x3d, 0x3}, &(0x7f0000021400), &(0x7f0000021440)) zx_channel_call$fuchsia_cobalt_LoggerLogMemoryUsage(r5, 0x0, r3, &(0x7f0000031540)={&(0x7f0000021480)={{}, 0x2, 0x2, {0x9, 0xffffffffffffffff}, 0x2, {'\x00'}}, &(0x7f00000214c0), &(0x7f0000021500), &(0x7f0000031500), 0x38, 0x0, 0x10000}, &(0x7f0000031580), &(0x7f00000315c0)) zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(r2, 0x0, r3, &(0x7f00000416c0)={&(0x7f0000031600)={{}, {0x0, 0x100000001, {0xc1, 0xffffffffffffffff}}, {{'*[#,)&,-[)}'}}}, &(0x7f0000031640)={{0x0, r5}}, &(0x7f0000031680), &(0x7f0000041680)={{0x0, 0x0, 0x0, 0x0}}, 0x38, 0x2, 0x10000, 0x4}, &(0x7f0000041700), &(0x7f0000041740)) r8 = zx_deadline_after(0x104d) zx_channel_create(0x0, &(0x7f0000041880)=0x0, &(0x7f00000418c0)) zx_exception_get_thread(r5, &(0x7f0000041900)=0x0) zx_channel_call_etc(r7, 0x7, r8, &(0x7f0000041bc0)={&(0x7f0000041780)="fa2f4069c5f54d2479f84d1d733a52f59f0a68709466e6633a6318f6057fbfc9f048b09bfbb63905dc824745b16247ee570e79af77fde73be0865356841b8997c55e4c9b792e2cd8c5ac578960ab6b2d804cd89eb8f0de2151a1693b6498d61abedbd5db7cae8b09f94c6d942cb31051524961cc82c4940af1ab9ceeba52716eb25b870eafbb41d9a1562e9670df00384aa9554b70f9a166834150f2e37215e413ba1238a181d4f7435843b6bb56fa8861d8688001d39d9e2b189f67e80533118964299763f586828c693cc9712a9c2552dc30e57225212f5a50efe56da99a32824c4c", &(0x7f0000041a80)=[r9, r10, 0x0, r1, r6, r0, r4, 0x0, 0x0], &(0x7f0000041ac0)=""/154, &(0x7f0000041b80)=[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], 0xe3, 0x9, 0x9a, 0x8}, &(0x7f0000041c00), &(0x7f0000041c40)) syz_execute_func(&(0x7f0000000000)="c4e1d9d29e91000000c48171fd844800000020c4a17f7044ba340ef30faed6c46279a75d03c4c2fd9642a72e66430f38f55900420f34c4e1782b42c0c4426592242c") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffe000/0x1000)=nil, 0x1000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static unsigned long long procid; static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { if (write(1, "executing program\n", sizeof("executing program\n") - 1)) { } int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 50); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[11] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: *(uint64_t*)0x200100c0 = 0x20000000; *(uint32_t*)0x20000000 = 0; memset((void*)0x20000004, 0, 3); *(uint8_t*)0x20000007 = 1; *(uint64_t*)0x20000008 = 0x4fcfbc1100000000; *(uint32_t*)0x20000010 = -1; *(uint32_t*)0x20000014 = 0; *(uint64_t*)0x20000018 = 4; *(uint64_t*)0x20000020 = -1; *(uint64_t*)0x200100c8 = 0x20000040; *(uint32_t*)0x20000040 = 0; *(uint32_t*)0x20000044 = 0; *(uint64_t*)0x200100d0 = 0x20000080; *(uint64_t*)0x200100d8 = 0x20010080; *(uint32_t*)0x200100e0 = 0x28; *(uint32_t*)0x200100e4 = 2; *(uint32_t*)0x200100e8 = 0x10000; *(uint32_t*)0x200100ec = 4; inject_fault(1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/0, /*args=*/0x200100c0, /*actual_bytes=*/0x20010100, /*actual_handles=*/0x20010140); if (res == ZX_OK) { r[0] = *(uint32_t*)0x20010080; r[1] = *(uint32_t*)0x20010088; r[2] = *(uint32_t*)0x2001008c; } break; case 1: res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/5); if (res == ZX_OK) r[3] = res; break; case 2: *(uint64_t*)0x20020240 = 0x20010180; *(uint32_t*)0x20010180 = 0; memset((void*)0x20010184, 0, 3); *(uint8_t*)0x20010187 = 1; *(uint64_t*)0x20010188 = 0x1b8a5e6400000000; *(uint64_t*)0x20010190 = 3; *(uint64_t*)0x20010198 = -1; *(uint32_t*)0x200101a0 = -1; *(uint64_t*)0x200101a4 = 0x1b3; *(uint64_t*)0x200101ac = 0; *(uint64_t*)0x20020248 = 0x200101c0; *(uint32_t*)0x200101c0 = 0; *(uint64_t*)0x20020250 = 0x20010200; *(uint64_t*)0x20020258 = 0x20020200; *(uint32_t*)0x20020260 = 0x34; *(uint32_t*)0x20020264 = 1; *(uint32_t*)0x20020268 = 0x10000; *(uint32_t*)0x2002026c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); } } break; case 3: *(uint64_t*)0x200213c0 = 0x20020300; memcpy((void*)0x20020300, "\x6b\x3c\x12\x56\x27\x95\x44\xbb\x32\xd3\x62\x43\xaf\xcb\xfd\xa5\xcd\x1a\x17\x59\xba\x09\xb0\x08\xc9\x7e\x2b\xe4\x9a\xb1\x0a\xdd\xa6\xd8\x8f\x52\x9d\xe7\xb0\x4a\xd9\xb0\xfd\xd9\x6d\x31\x84\x19\x6e\x8e\x69\x75\x31\x2b\xf6\xa2\xc5\x3d\xf1\x45\x51\xfa\x4b\x32\x62\x7d\xd6\x79\xee\xf9\xc5\x9f\x19\x0c\xa4\x03\x68\x14\x37\x2c\xf5\x10\xd0\x29\x17\x53\x5f\x1f\x02\xda\x97\xf6\xd1\x60\x1f\x3e\x89\xe1\x0a\x62\x1b\x4e\x82\xba\x76\xd4\x1a\x2f\x87\x24\x97\x36\xcd\x35\xa2\x43\x2b\xf3\x68\xda\xf4\x3f\x60\x38\x7c\x27\xf9\x17\x76\x14\xc2\xf4\xd4\xfd\x31\xdd\xd5\xe0\x8d\x63\x42\x9d\x66\x3e\xe1\x4a\x19\x32\xbf\x8f\x4d\xf7\x03\x69\xf3\xc2\xa7\x51\x97\x42\x2e\xd0\x02\x2b\xe8\x0f\xd8\x7b\x79\xdb\x2a\x43\x49\x9a\x48\xbd\xcd\x91\x24\x65\x73\x30\x3a\x45\x08\xe1\x7c\xf0\x20\xc6\x4c\x57\x7b\x8b\xb0\x92\x6c\x4b\xde\x15\x60\xa7\x74\x46\x49\x7e\x5b\xaf\xec\x84\x29\xa3\x11\x71\x93\x84\xf6\x37\xc4\xa0\x08\xc3\xdd\xd6\x26\x10\xdb\xb1\xd4\xc2\xdd\x8f\x1b\xd7\x3e\x7f\x36\x57\xfc\xf2\x4d\xbb\x89\x6a\x14\x5b\x28\xf3\x40\x98\xf9\xd4\x01\x99\xc5\xb7\x20\x03\xc4\xe0\x8e\xab\x96\xae\xc0\x66\xbf\x2d\x97\xc2\x66\x1f\x4c\xd9\x1c\x59\xcd\x4f\x9e\x4f\x56\x17\xcf\xd6\xad\xa6\xe0\x49\x53\xcc\x4c\x7b\xe1\xc3\xf1\x0d\xe3\x1e\x15\x5d\xd1\x74\xe9\x9f\x41\x36\xca\xe0\x8e\x30\x8b\x3c\x22\xb5\xd1\xdd\x66\xb3\x79\x70\x34\x29\xb4\xd5\xdf\xa6\x0e\xc7\xd1\xaa\x50\x04\x3c\x92\xc1\xa9\x49\xb3\xd9\x40\xf6\x04\xd1\xf4\x4e\xbd\xd3\xc3\xe4\xab\x64\x7c\x7e\x66\xf1\x21\x1e\xec\x27\x12\xe0\xe4\xb7\x0c\xb1\xa2\xc1\xc6\xc3\xb4\xe2\x9a\x10\x42\x83\x4a\xcc\x26\xe9\x9b\x38\xf6\x07\x5b\xbe\xa1\x08\xbf\x12\x4c\x3b\x1c\xc4\x27\x52\x27\xbd\x01\x67\x11\x0d\x69\x97\x2d\x46\xb2\xdb\xd6\xb1\x83\x14\xd2\xea\x66\x4a\xc2\xf4\xe4\x49\x0a\xb3\x22\x3e\xb0\x81\x78\xf9\x2e\x0c\x17\xbf\x86\x18\x94\x99\x7c\xd0\x92\xfe\x07\xc0\x6c\x5e\x0d\xb4\x44\x08\x5a\x13\x8c\x63\x8d\x6e\xb7\x88\x9a\x19\x96\x34\x0e\xa4\x60\x99\x1f\x75\xcd\x1a\xba\x0b\xca\xe8\xf9\x77\x95\x87\xf6\xdf\x76\x1f\x75\x37\x31\x99\x14\x6d\xab\xa4\x84\x8a\xc8\xa2\xa9\xb0\x99\xae\x5a\x54\xed\x61\x7e\xcb\x56\x32\x66\x27\x01\x6e\xa3\xd6\xd0\x77\xf9\x04\x74\xdb\xf0\x37\x68\x9b\xd7\x72\x4a\x1c\xef\x36\x26\xe6\xe1\x96\x74\x8c\x05\x0f\x91\xc6\x62\xfd\xa4\x95\xb6\x7e\x5a\xa3\xb0\x16\xdc\x3b\xcc\xb2\xd7\xa9\x73\x3e\xca\x7c\x7b\xdd\x88\x47\x54\x0d\x27\x3b\x9c\x8c\x29\x33\x5e\xbd\xd7\x71\x5e\xe4\xf5\x7d\xfe\x5c\x6a\x0f\x3d\x58\x43\x98\xc0\xea\x55\x37\x5b\xd2\xc3\x1b\x6c\x74\xe9\xf4\xee\xb8\x59\xc8\x97\x70\x63\x12\x5c\xdf\x72\x53\x2d\xe6\x5c\x0a\x00\xd5\x3b\xc0\x03\xc8\xb1\x01\x83\x8e\xe1\x51\x31\x96\x95\xc0\xac\x2a\xce\xf5\xf1\x91\x0b\xc9\x52\xbe\xbc\x7f\x68\x9f\x52\x06\x7f\x81\xc1\x8c\x5d\xfa\xc9\x00\x57\xcd\xbd\x0f\x75\xe9\x28\x16\x3a\xeb\x09\xef\x01\x59\xb6\x6d\xa4\x21\x08\x34\xca\x8e\xe3\xe2\x85\x27\x0b\x51\xf5\xe2\x56\x86\x7c\xe6\x22\x92\x3f\xd3\xc4\x0e\x61\x5e\x13\x42\x41\x8a\x19\x6f\xcb\x8e\x2b\x56\x48\x67\x22\xf7\xb5\xca\x52\x4c\x75\xdb\xdb\x9b\xe6\x31\x4b\x7a\xd5\x90\xb5\xcf\x8f\x80\xd7\x92\x7d\xda\x79\xce\xb1\x36\x9d\x78\x0f\x33\x38\xc1\xef\xb8\x3c\xa7\xbd\xda\x05\xf8\xca\x94\x45\xb5\x00\xc0\x50\x63\x59\xa4\xba\xa2\xa8\xee\x7e\x8b\x4a\xfb\x48\xdb\xdc\x2a\x56\x19\x4a\x8d\xa4\xd1\xac\x42\x52\x45\xb8\x3e\x1e\x8e\x44\x8a\x29\xda\x4e\x20\x71\xae\xa3\xb8\xef\x3a\x3c\xb5\x82\x7e\x61\x6d\x47\x07\xf8\x51\xee\xa6\x26\x09\x72\xea\xde\x34\xda\x0a\x8f\x34\x40\x7f\x4d\x3e\x45\x5b\xa0\xaa\x02\x6a\x85\x3e\xbb\x5e\x6d\x64\xe9\xd8\x10\x5e\x69\xb8\x4e\x36\xfb\x57\xa8\xb6\xe0\xe7\xcb\xb9\xe5\xd5\x24\x98\x80\x36\xd9\x58\xe3\x2a\x38\xf5\x97\x7b\x3c\x70\x38\xc9\x83\x99\x4f\x08\x88\xfe\x30\x91\xaa\x1f\x45\x91\x9f\x06\x02\xb5\xd7\x50\x73\x8b\x17\x1b\x97\x87\xaf\x29\x6f\x2b\xa5\xfe\xe3\x11\xa1\x6f\x1c\xdc\xd8\x10\xa6\x68\x9a\xc7\xa7\x5b\xc1\x9e\x69\x33\x95\xb0\x0c\xfd\xaf\x13\xcc\xa6\x67\x0a\x47\x2d\x44\x9e\x9e\xfe\xf6\xe0\xf9\xd1\xc1\xab\xaa\xba\xaa\x37\xe2\xb2\x7d\x7d\x67\x23\xd9\x8a\xf8\x00\xa0\xb2\xb5\x19\x6b\x28\x4a\x9e\x11\xa5\xc5\xe6\x2c\x4d\x86\x25\x22\x25\x42\x25\x21\x6d\x4f\xf2\x1a\xfd\x49\xbd\x07\xf7\x4e\x9d\x18\x9b\xc5\x76\xd3\xdd\x39\xa7\x39\x77\x98\x75\xe2\xdc\xbc\xf3\x56\xa5\x2c\xa0\x8c\xb2\x9e\xae\x85\x79\xca\x66\x08\xa1\x94\x13\x59\x41\xee\xd7\xe3\x30\xde\x08\xa9\xe5\x09\x5b\x17\x7c\xe2\x6b\x23\x21\xe7\xac\x98\x62\xba\xce\xf3\x71\xc4\xd2\xe9\xdc\x8b\xab\x91\x18\xa1\x5f\xf9\xfc\x46\x79\xa1\xd0\xee\xb6\x48\x06\xa8\x0c\xc7\x39\xed\xfd\xdf\x9d\x4f\xa2\xf4\x2f\x87\x02\x12\xc2\x3a\xe8\x1e\xbc\x91\x68\xc9\x55\x53\x50\x41\xc1\xce\x54\xed\xf8\xe3\xca\xe6\x68\x4d\xab\x1b\x1e\xed\x16\xb2\x5b\xc6\x67\xa3\x66\x91\xd0\xe0\x50\xa4\x9f\x2d\x78\x2e\xd9\xec\x3f\x94\xd5\x0c\x8d\x33\x58\xa8\x23\x75\xd3\x60\x5f\xdb\x79\x12\xb1\xfc\x3e\xd9\x15\x5f\xb1\x05\x2c\x93\xe6\x10\x05\xc2\xf6\xa8\x7c\x42\xcf\x68\xaf\xf9\xe6\xc9\xe1\x98\x13\x65\x37\x70\xc4\x39\xcc\x39\x7f\x9e\xcb\xa2\x7a\x99\xb0\x82\x05\x4d\x8f\x44\xa5\xb8\x2b\xae\xa6\x8b\xd8\x49\xcd\xe7\x04\x4a\x27\x79\x2a\x26\xb3\xa1\x2d\x93\x8c\xb6\x50\xa8\x91\x41\x24\xbe\x06\x9a\x1d\x8a\x0f\x98\xd9\x87\x68\xf9\x14\x4a\xfc\xc8\x51\xb3\x38\xa8\x4d\x79\x7c\x35\xa7\x65\x71\x11\xfa\x42\x78\xb6\x2e\xee\x95\xe3\xdd\xed\xb8\x91\x6d\x03\xc9\x3e\xc8\x84\xac\x97\xe2\x9b\x1d\x44\x90\xec\xae\x90\x62\x8e\xd2\x61\xeb\xcb\xbd\x4d\x0c\x12\xd1\xc2\x95\xe6\x68\x3d\x68\x5c\x50\x8d\x14\xf2\x89\xf5\xb0\xc8\x6b\xbd\x05\xc3\x1e\xdb\x6e\xf4\x6a\xba\x2a\xbe\x24\xf5\x3c\x90\xb3\x3a\xc3\xb8\x03\x36\x16\x68\x7a\x9d\x3b\x29\x00\x87\x6c\xb4\x87\x91\x45\x77\x1c\x09\x57\xa0\x7d\x37\x1f\x98\x26\xe6\x41\x08\x9e\x34\x7c\x15\x5f\xd6\x2c\xf1\x76\xbb\x4f\x6a\xf7\xc2\x23\xb4\x5c\xfd\x0e\x0a\x54\x10\x92\x25\x27\xf9\xa8\x9a\x8b\xb8\x64\xf4\x97\xa7\x63\xfa\xc9\x41\x09\x74\x10\xf4\x48\x37\x3d\x12\x32\x95\x5c\xdd\x4c\x06\x73\x64\x15\x1a\xe3\xf5\x7e\x3b\xd6\x11\x97\x5e\xb1\x89\xe3\xde\x3d\xe6\x59\xb8\xf5\x8f\xc7\xbc\x86\xbb\x77\x17\x71\x1a\xea\x0f\x51\x2a\xe8\xfb\x8f\x0d\xad\x0b\x9a\x91\xcb\x4b\x1d\x51\x20\x95\xde\x29\x23\xa5\x4a\xdd\x08\x83\xf1\xb1\x94\x08\x2a\xbb\x2d\x77\x10\x5e\x9d\x00\xd2\x3e\x0c\x0e\x22\x26\xcb\x2f\x83\x1d\x10\xa6\x62\x23\xd9\xf7\x17\x26\x05\x58\x31\x8f\x72\xb6\x69\x26\xe0\xae\x2a\x16\x9b\x8f\x5f\xb8\x6d\x9f\x61\x17\x60\xd9\x62\x62\x18\x79\x1f\x7a\x18\xb8\x07\xe1\x2d\xd6\x1b\x89\x5d\x96\x88\x5c\x8a\x39\xae\x56\xfa\xa0\x98\x7a\x4b\xc6\x34\xbf\x63\x89\x02\x28\x8c\xbe\x30\x4d\x2e\x60\x85\xb3\x5b\xbd\x8c\x69\xf7\xc7\xbc\x08\xa5\x47\x64\xe5\xa5\x8c\x36\xda\x85\x14\x92\x3c\xab\xca\x33\x94\x08\xa4\xd4\xc4\xa0\x55\x20\xb8\x41\x50\xe1\x49\x38\x61\xb1\x20\x8a\xb6\xd2\x00\x7f\xd4\x70\x71\xec\xd8\x41\x9c\x4d\xe3\x87\x64\xca\xec\xb0\x93\xa2\xcc\x82\x59\xf4\x13\xef\xcb\x13\xe1\x94\x51\xd2\x2b\x9b\xd8\xa1\x92\xf9\x18\x4f\x62\xc4\x38\xb1\xfa\x98\x8c\xdc\x16\xb4\x3a\x19\xed\x3c\xa3\xdc\x13\xbd\xad\xa0\x11\x8c\xf9\x61\x32\xee\x3a\x06\xdb\x5e\xec\x80\xf4\xc9\x56\xb3\x92\x8f\x59\x23\xc5\xa7\x43\x52\xcc\x62\xea\x9e\x8a\x03\x10\xff\x95\x3d\x4f\xd8\x86\xd2\x6d\x6e\x5c\xcb\xb8\xc9\xaf\xda\x42\x4c\xe0\xe0\xc6\x6e\x3b\x51\x12\xf9\x3d\xe9\x88\xf1\x78\xf1\x03\xde\x77\x66\x3c\x3f\x37\x48\x3a\xef\x8a\x49\xb0\x6e\xd8\x64\x42\x55\x33\x36\xa2\xea\x07\x63\x50\xf3\x73\x0d\x60\x71\x64\xb7\x45\x9b\x9e\x90\xe3\xf9\x8a\xb8\x13\x20\x18\xd0\x2c\x86\xb6\x5d\x5e\x23\x58\xc6\x6e\xe8\xd6\x57\xa6\x58\x6a\xf7\x0e\xb2\x53\x69\x42\xb0\x73\x3f\x99\xd3\xdc\xb2\xeb\xb4\x98\x57\xd3\x84\xa8\x70\xcb\x0b\x62\xe3\x18\xa1\x30\xf1\xd9\x05\xa1\x2c\x71\xc3\x19\xad\x38\x0a\x8b\x02\x2d\x4e\x3f\x5f\x5e\xe1\xbb\x17\xd5\x5b\xec\xff\xb1\x28\xfd\x61\xd9\x93\xb5\xe0\x3d\x6d\x0d\x86\x4b\x24\x81\xdd\xe4\xf0\xe4\x72\x80\x0e\x84\xd9\x7b\x2a\x12\x66\x1b\xfb\xb9\x07\x0f\x37\xcd\x45\x8f\x0d\x43\x47\x40\x03\x49\x12\x39\xf6\x98\x70\x24\x38\x6a\x28\x18\x51\x79\x7d\x13\x22\x75\x2e\x6e\x24\xb1\x60\xfc\xdd\xe4\xa4\x29\x38\x3a\x69\x04\x35\xf1\x20\x0d\x0a\xd9\x58\x74\x01\x1d\xb8\x9d\x4f\xfa\xf2\x23\x2e\x84\xa7\x67\x62\x00\x09\xfa\x3e\x53\x4c\x50\xb2\x65\x68\x05\xa3\x80\x79\x9a\x16\x81\x7b\x35\x0a\x3b\x23\xd4\xd0\x3f\xcf\xff\xe4\xcf\x04\x82\x83\xc4\x71\x44\x18\x9d\xc9\xb9\x65\x37\x5c\xff\x5e\xe4\x17\x1a\x23\xc1\x72\xfe\xf7\xa8\xdd\xef\xd1\xc2\x4b\xe3\x38\x20\x36\x91\x22\x7c\x30\x56\xf7\x76\x1e\xca\x36\x08\x78\x51\xae\xff\x7f\x91\xe8\xac\xeb\x96\xd7\xb2\x10\x82\xa9\x5d\x6b\x79\x6a\xd7\x68\x8b\x9c\x48\x75\x4f\xa3\x4d\x28\x73\xc1\x37\x70\x12\xcc\x16\xa7\x98\xe8\x0c\x71\xd5\x75\x95\x72\xb1\x7e\x3a\x01\x3f\xa2\xe8\x78\xa5\x19\x4c\xe5\x35\x8e\xce\xc5\x60\x2f\xb2\x06\xd5\x90\xff\x76\x5f\x57\x75\x59\x04\xd4\x36\x1e\x11\x8f\xb1\x8f\x8f\xda\xd8\xdf\x38\x7f\xe6\x3f\x79\x67\x8e\xa9\x13\xd3\xb1\x63\x39\x55\xf8\xe1\x1c\x2d\x8d\x7c\x71\x67\x91\x23\x41\x88\xbd\xcb\x7b\xcc\xcc\xc6\xf3\xeb\x85\x99\x3e\xbe\x53\x47\x8b\xf9\x2d\xff\xf2\x33\x31\xf3\x94\xf2\x16\x42\x64\xa6\xc0\x29\xd0\xc8\xbb\x9a\x41\xe0\x9c\xc3\x5e\xff\x2a\x58\xd4\xad\x3b\x92\xb4\xd6\x82\xc7\xac\x73\xa7\x28\x89\x2b\xb1\x1b\x57\xc3\x9a\xed\x49\x70\x9c\x20\x0e\x91\x6b\xcb\xa5\x22\x9d\x16\x04\x3e\x34\xb1\xc0\x42\x23\xbe\x93\x78\x4e\x3d\xe8\xb7\x43\x49\x42\x5c\xf0\x73\xd7\x06\x85\x65\xe7\xd9\x14\xf2\x65\x73\x58\x1d\xc9\x19\x91\x9f\xee\xc1\x81\xd3\x71\xcc\x66\x29\xf8\x95\x72\x8f\x85\x26\xac\xef\x9c\xe5\x01\x10\xfd\x92\x57\xfc\x67\x7d\xe7\xfa\x23\xf9\x8f\x35\xba\x06\x86\xfc\x65\xd0\x74\xc4\x12\xa5\xe0\x2a\xd0\x67\x83\x6f\x80\xfc\x24\x43\x7e\x2d\x0d\xec\xff\x85\xb1\x02\x9e\x28\x66\x0b\x34\x48\x51\xa0\xbe\x45\xcd\xc1\x07\x16\xa0\x59\x74\xe5\xe0\x9d\x00\xf9\x94\xa4\xde\x6e\x97\xcf\x71\x48\xc3\x4e\xbe\xb5\x56\x5b\xe0\xec\xcf\x4d\xfa\x7c\x8b\x70\x69\x1d\x0a\x4f\xc4\xad\xf4\x0a\x04\x97\x77\xec\xf5\x60\xda\xaf\xe4\x37\xbb\xb8\xaf\x38\x0a\xd9\x08\x19\xf3\x01\x82\x02\xe7\x38\x51\x9d\x37\x2b\xdb\x17\xf7\x71\xa2\x9d\x8b\xc5\x84\x51\x26\x25\x67\xd3\x8b\xeb\x9f\xc9\x2e\x00\x0c\x18\xdf\x63\x24\xe6\xc4\xda\x79\x47\x54\xc8\x49\xb2\xfd\xed\x1b\x67\xac\x18\xb4\x8a\x8b\x05\x77\x3d\x62\xe2\x4e\xc7\x8a\xd9\xcb\x00\xb9\x95\x9f\xe2\x0c\x0d\x87\x78\xad\x63\x62\x60\xaf\x68\xe1\xf3\x36\xe0\xa9\x67\x8b\x7c\x84\x75\x2a\x62\x43\x55\x25\x73\x80\xfe\x51\xd9\x8e\x1c\x17\xb6\xf0\x26\xff\x82\x06\xe9\xb1\xb4\xc0\x45\x1c\x9e\xe8\xa5\xde\x6a\x38\xa2\xbf\x52\x81\x0f\xa1\x7f\x81\x1a\x4d\xc5\x69\x31\xec\x4d\xe8\xfe\xe4\x7c\x55\x34\x41\xaa\xf1\x68\x3f\x94\xf5\xe6\xfa\xd5\x4e\xaa\xf6\x6e\x6d\x6a\xcb\xd6\x27\xd6\x4e\x05\x45\xef\xb2\x65\x07\x41\xd6\x5b\xfb\x41\xb1\x2d\x84\xb5\xf8\xa9\x2a\xe9\x78\xdb\x26\x12\xae\xda\x68\x23\xb3\xd4\x22\xe5\x64\x29\xe7\xfe\xa6\xa7\x02\x80\x01\xe7\x0c\xda\x4c\x3b\xdc\x74\x17\x50\x85\x8e\x4a\x4f\x44\xcb\x87\xe4\x71\x12\xae\x9a\x03\x38\x56\x94\x02\xc3\x86\xb1\xf2\x32\xba\xc1\x45\x67\x93\x46\x2d\xa3\x38\xb3\x85\x1b\xb3\x1d\x93\xe6\x4d\x61\x47\x3b\xcb\xbf\x40\x0d\x0f\xc9\x9b\xf5\xe0\x6b\x98\x91\x22\x51\x8f\x61\x49\x8d\x82\x65\x84\x6c\x6b\x59\x6b\x73\xd4\x9a\x13\x86\xcf\x28\x40\x6b\x33\xd9\x0e\x9d\x91\x9a\xf9\xbf\x0e\x74\x45\x60\x61\x34\x3c\xe0\x7f\x46\x19\x1f\x05\x0c\x5f\x69\xf4\xc6\x2d\x89\x56\x17\x77\x5e\x1c\xce\x6e\x82\xa9\xb3\x00\xea\x5c\xed\x96\x67\xb7\x84\xe5\x9b\x68\x7c\x8f\x48\x70\x77\xc2\x45\x8d\x6d\xb7\x26\xcb\xf0\x09\xc3\x3c\x92\x57\x6f\x35\xa1\x49\xa7\xaa\x11\xf2\x9c\xca\xd5\x79\x67\xfc\x3e\xc9\xcd\xa6\x5a\xe3\x0b\xa1\x75\xbf\x3e\x40\x5a\x30\x3c\xae\xed\x44\x0e\xd2\x1a\x99\x73\x5c\x4f\xe5\x24\xf8\x42\x39\x71\x47\x3d\xb4\x8f\xa5\x05\xf4\x4a\x4d\x13\x56\xb8\x2a\x90\xc7\xf5\x81\x73\x2f\xeb\x08\x9c\x0e\x83\x01\xff\xc5\x4d\x32\x07\x57\x14\x47\xc4\xf7\x5d\x96\xb0\xba\x58\x87\xa5\x58\xda\x9a\x2f\xf2\x72\x6f\xa8\x74\x8c\x21\x79\x27\x61\x93\x69\x5b\xf0\x36\x58\x97\x8b\xda\xa7\x4b\x4c\x02\xfb\xf0\x0c\x1a\x5a\x9e\xca\x00\x9e\x7a\x3b\xfd\x5d\x48\x88\x1c\xec\xb7\x43\xe5\xb6\x5b\x0c\x0b\x1e\x02\x4b\x80\x04\x48\x53\x26\x5a\xc0\xee\x2f\xd9\x2d\xde\xbb\xd5\x9c\x4d\x4c\xb3\xa0\x9d\x83\xf9\xdf\xc5\xc2\x74\x11\x1e\xc8\xca\xab\x4c\xbc\x65\x51\x8e\xf6\xa8\xe2\xe0\xf1\x49\x93\xc1\x7a\xf6\x6d\x7d\xd5\xd3\x06\x43\xb2\x39\x1b\x72\x89\x75\xf3\x88\x6b\xb0\xc6\x40\x65\xc8\x7e\xec\x0c\x28\x69\x6a\x07\xd1\xc3\x04\x16\xb7\x90\x1d\xcd\x4f\x94\x13\x9c\x91\x7d\xc9\x86\xff\x15\xf1\x36\x4b\x22\x7c\xf5\x94\xba\x63\xe2\x83\x62\xe5\x21\x17\xa5\x46\x9f\xc1\x5d\xed\xb4\x5c\x7e\x12\x4b\x58\xb0\x14\xe2\xc4\x98\x93\x3e\xc3\x62\xab\x60\xc7\x58\xdb\xc1\x5c\xc7\xb1\x7b\x36\xfd\x92\x65\xf9\xd5\x85\x7f\xdb\xa2\xed\xb3\x6a\x35\x5c\x52\xf5\x3d\x09\xf0\x3e\x47\x4c\xa4\x5a\x06\xf9\x99\x5d\x1f\x10\xb0\xbe\x32\x33\xeb\x83\x1b\x04\x72\x00\xd3\x54\x72\xb2\x13\x7b\xc2\xfb\x77\xb8\x19\xda\xf9\xa8\xe9\xb8\x53\xd9\x52\x93\x19\x93\xf9\x2c\x62\x09\xa3\x58\x7a\xd8\x12\x98\x9d\x85\x7a\xae\x67\xaa\x7e\x87\x27\x5f\xc3\x4b\xe4\xb3\xb7\x8b\x47\x5c\x32\x00\xe3\x5f\x04\x53\xbc\xdd\x00\xd8\xd7\x18\xa5\x28\x6c\xb4\x7d\xee\x49\xd9\x0a\xfe\xd7\xf4\xfe\x42\x49\x6b\xa3\x3c\xf1\x3d\x6f\x17\xc1\x05\xed\xdb\x25\xc8\x76\xd6\xf5\x2a\x21\xcf\x09\x8d\x42\xd9\xbf\xc7\x2f\x05\x35\x28\x1f\x6c\x02\x21\x03\x45\x5d\xcb\x87\xfc\xd5\x05\xd7\x71\x4e\x79\x41\x7c\x9f\xcd\x32\x20\x8e\x38\x8c\x9d\x50\xe5\x61\xf2\x31\xa0\x9c\xc7\x31\x49\xf2\xec\x24\x8b\xd1\xfc\x88\x5f\x3e\x10\x59\x65\x9b\x1a\x4a\xc9\x78\xbb\x5c\x81\xb0\x93\xda\x5b\x9d\xc2\x93\x09\x6b\xa9\xfd\xbe\xc0\x05\x02\x19\x2e\x4f\xae\x10\xaf\xd3\x60\x5c\x2c\x02\x0a\x62\x8a\x05\x5d\x56\x59\xc3\xef\xfb\x76\x44\x68\x34\xa8\xe8\x4e\xdf\x52\x39\xc9\xea\x6c\xb6\xcb\x85\xae\xf6\x4b\x68\xbc\x7e\x2f\x96\x85\x6f\x65\xe9\x76\xba\x1b\xd5\x25\xc1\x96\x5e\xc7\xa2\xd9\x54\xcc\x99\xfb\xa8\xfa\x13\xd3\x29\x22\x7f\x7f\x93\x21\x68\x9c\x63\x1a\x12\xdc\xb0\xac\x99\x48\x7b\xfe\x47\x25\xe9\xb7\xd0\x1e\x84\x81\x02\x49\x43\xcc\x35\xf7\xa0\xe8\x7a\x21\x42\xa9\x22\x9d\x35\x3b\x41\x28\x89\x7a\x9b\x3b\xc4\xa4\xeb\xc8\x2d\xde\x1c\xbf\x76\x16\xdc\x65\x44\xe0\x5d\xb9\x08\x20\x3e\xc5\x68\xb9\xf4\x88\x93\xa0\xfc\x9a\x1a\x77\xcb\x73\x40\xaf\xe9\x77\xb5\x1f\x3a\x4a\x1e\x55\x5a\xb8\x11\xb9\x72\x39\x96\xed\x60\xb7\x01\x84\xc5\x38\xcb\xde\xd3\x27\xfa\xda\x7d\x9a\xc2\x05\xb3\x29\x58\xcf\xce\xeb\x3c\xee\x19\x2d\xa0\x3e\xfd\x31\x47\x6c\x88\xdf\xd0\x58\x12\xdf\x72\xc9\x77\xd1\x7f\x44\xae\x5d\x69\x6f\x33\x61\x85\xd2\xd9\x07\x79\x74\x7d\x6d\x91\x34\x7d\xa9\x6b\x40\xff\xbd\x32\x3f\x16\x02\x2e\xa6\x3a\x74\x40\x77\x89\x3f\x6e\x16\x99\x1d\x65\x84\x9d\x65\xcb\xcd\xc1\x0f\x83\xdb\x70\x81\x09\x35\xcb\xa0\x4e\xde\x08\xf7\x4a\x72\x61\xa2\x86\x13\x0e\x14\x71\x84\xc0\xf1\x28\x27\xd7\x4f\xc6\xc8\xdb\x93\x54\xfe\x3c\xa3\xe0\x44\x0a\x06\xe3\x2b\x15\x66\x23\xb3\x58\x7c\x7b\x23\x87\x29\x54\xfa\xa2\x7e\xb7\x18\x82\xbf\x94\x5f\x03\x5b\x72\x12\xdf\x25\x23\xa7\xe8\xc5\xac\x16\x58\xbf\xa6\xa4\x60\xad\x97\x39\x77\xdc\x59\x28\x38\x71\xb6\xde\x43\xe4\x92\xf8\xd4\x76\xbf\x34\x0f\x7f\x6a\x92\xa3\x8d\xc4\xab\x15\xbd\xd3\xe0\xff\x15\x95\x9c\x7c\x49\xda\x65\x81\x0e\x60\x06\x0c\xce\xfe\xfd\x93\x1c\xe9\xe5\x42\x4c\xb6\xfa\xa2\x7e\x2e\x26\xb3\xa2\x3f\x52\xb9\xca\x19\xae\x15\xba\x0b\xfe\x5e\x47\xb5\xa7\x00\x40\x2d\xed\xa7\xf5\x33\x78\x97\xdc\x23\xfe\xe1\x1c\x62\x38\x3a\x3f\xbd\x1f\x28\xae\x2a\xc4\xcc\xed\xfc\x92\x64\x18\xd0\xdb\x7d\x6e\x22\x83\x31\xac\x7a\x8d\xf3\x11\x93\xee\x68\xbc\xcc\xb0\x4a\xa7\xfd\xd4\x8c\x9e\xa7\x4e\xa5\xa8\xb0\xce\x94\xe7\xa3\x1c\x3d\xc5\x96\xfd\x10\xd3\x03\x80\x28\x0e\x61\xbd\x2c\x11\x62\x5e\xa9\xf1\xad\xa2\xe0\x31\xeb\x80\x7d\x57\xb3\x6a\x17\xf3\xbc\x74\x88\x81\xa5\x6a\x98\x77\xe3\x58\x38\x8f\x2d\x49\x3c\x61\x94\x3c\x79\xc8\x87\x9a\xd7\x4e\x51\x5c\x9b\x38\xb1\x0f\x6b\xf4\xc0\xbb\xe1\x29\xfa\x8f\xcf\x2c\x2a\x82\xe9\x13\xec\xe2\xd3\x3a\x33\xa5\xc7\xa5\x81\xe7\x57\x14\x20\xf1\x4f\x21\x05\xd3\x76\xab\xa2\xaa\x5c\x5f\x58\x10\xd7\xe3\x4e\x78\xab\xe7\x68\x65\x54\x07\x19\xd2\x63\x4b\x38\x4f\xbb\x84\x0c\x05\xec\x3b\xc2\xe5\x3a\xf1\x30\x56\x14\x16\x80\xab\xa6\x7a\xdb\xe6\xe8\x88\x8b\x2d\x88\x95\x9e\xb9\xe9\xa5\x6f\x98\x55\x2b\xd0\x83\x23\x0a\xf6\xae\xfb\xd8\x35\xad\xf9\xf5\x0f\x0d\xaa\xe9\x81\x4c\x67\x02\xf7\xd0\xb1\xe9\xca\xde\x35\xa3\x53\x6d\x62\x7d\x92\xa3\x01\x17\x72\x77\x91\x00\x45\xd0\xff\x08\x6e\xd8\x4e\x61\xc4\x2c\x82\x3f\xdd\x8b\x7e\xf1\x69\x1d\x44\x64\x5b\x40\xca\x57\xa1\xcc\xc0\x13\xda\x6a\x24\xcb\xd4\x32\x57\xbf\xc0\xbf\x69\x6c\x7a\x60\xbb\x6d\xd6\x77\xb3\xa7\xc2\xf3\x78\xb3\xa9\x63\xab\xbb\x27\x15\xc9\xb7\xb5\x7f\xb7\x95\x9a\xe9\x70\xc1\xbe\xd9\x3a\xd0\x7e\x05\x07\xae\xc8\xee\x94\xfc\xa0\x97\xa4\xd0\x66\x93\x97\x2a\x4b\xcf\xf3\x68\xbd\x4b\x34\xe1\x30\x9c\xa8\xc8\x47\x07\x5a\xf2\xeb\x5d\xba\x14\x44\x13\x21\x19\x78\x81\xad\x53\x5f\x78\x92\x93\x52\x61\xf2\xfb\x94\xe1\x73\x94\x31\x63\x27\xb5\xb6\xa0\xc7\x77\x8d\x4f\x8e\xe2\xa5\x39\xee\x3b\x4c\xd3\x9b\x53\xf3\x71\x61\x4e\x71\xd9\xe0\x53\x83\x20\x44\x59\x0c\x0c\xad\x40\x19\xfe\x55\xe8\x48\x9e\x9a\xba\x62\x04\x90\xa8\xea\xb8\xac\x8b\x06\x92\x84\x18\x5b\xd7\xb8\x19\xfe\x01\x83\xba\x8b\xb7\x38\x2e\x19\xf9\x5f\x3f\x60\x7d\x87\xf6\x71\x8d\x86\x89\xd0\x39\x4d\x5e\x88\xe1\x4e\x2c\x8d\xea\xfb\x59\x0d\x4c\x1f\xb1\xbd\x76\x08\xaf\x6e\x4a\x2b\xaa\x2a\x0c\x27\x04\x4f\x00\xb5\xdf\x03\x4b\x13\x1d\xa8\x68\x8a\x25\x0c\x08", 4096); *(uint64_t*)0x200213c8 = 0x20021300; *(uint32_t*)0x20021300 = r[0]; *(uint32_t*)0x20021304 = r[0]; *(uint32_t*)0x20021308 = r[1]; *(uint32_t*)0x2002130c = r[0]; *(uint32_t*)0x20021310 = r[1]; *(uint32_t*)0x20021314 = r[1]; *(uint64_t*)0x200213d0 = 0x20021340; *(uint64_t*)0x200213d8 = 0x20021380; *(uint32_t*)0x200213e0 = 0x1000; *(uint32_t*)0x200213e4 = 6; *(uint32_t*)0x200213e8 = 0x3d; *(uint32_t*)0x200213ec = 3; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200213c0, /*actual_bytes=*/0x20021400, /*actual_handles=*/0x20021440); if (res == ZX_OK) { r[4] = *(uint32_t*)0x20021380; r[5] = *(uint32_t*)0x20021384; r[6] = *(uint32_t*)0x20021388; } break; case 4: *(uint64_t*)0x20031540 = 0x20021480; *(uint32_t*)0x20021480 = 0; memset((void*)0x20021484, 0, 3); *(uint8_t*)0x20021487 = 1; *(uint64_t*)0x20021488 = 0x66c69d1b00000000; *(uint32_t*)0x20021490 = 2; *(uint32_t*)0x20021494 = 2; *(uint64_t*)0x20021498 = 9; *(uint64_t*)0x200214a0 = -1; *(uint64_t*)0x200214a8 = 2; memset((void*)0x200214b0, 0, 1); *(uint64_t*)0x20031548 = 0x200214c0; *(uint64_t*)0x20031550 = 0x20021500; *(uint64_t*)0x20031558 = 0x20031500; *(uint32_t*)0x20031560 = 0x38; *(uint32_t*)0x20031564 = 0; *(uint32_t*)0x20031568 = 0x10000; *(uint32_t*)0x2003156c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[5], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20031540, /*actual_bytes=*/0x20031580, /*actual_handles=*/0x200315c0); break; case 5: *(uint64_t*)0x200416c0 = 0x20031600; *(uint32_t*)0x20031600 = 0; memset((void*)0x20031604, 0, 3); *(uint8_t*)0x20031607 = 1; *(uint64_t*)0x20031608 = 0x4fcfbc1100000000; *(uint32_t*)0x20031610 = 0; *(uint32_t*)0x20031614 = 1; *(uint64_t*)0x20031618 = 0xc1; *(uint64_t*)0x20031620 = -1; memcpy((void*)0x20031628, "*[#,)&,-[)}", 11); *(uint64_t*)0x200416c8 = 0x20031640; *(uint32_t*)0x20031640 = 0; *(uint32_t*)0x20031644 = r[5]; *(uint64_t*)0x200416d0 = 0x20031680; *(uint64_t*)0x200416d8 = 0x20041680; *(uint32_t*)0x200416e0 = 0x38; *(uint32_t*)0x200416e4 = 2; *(uint32_t*)0x200416e8 = 0x10000; *(uint32_t*)0x200416ec = 4; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200416c0, /*actual_bytes=*/0x20041700, /*actual_handles=*/0x20041740); if (res == ZX_OK) r[7] = *(uint32_t*)0x2004168c; break; case 6: res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/0x104d); if (res == ZX_OK) r[8] = res; break; case 7: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t))CAST(zx_channel_create))(/*options=*/0, /*out0=*/0x20041880, /*out1=*/0x200418c0); if (res == ZX_OK) r[9] = *(uint32_t*)0x20041880; break; case 8: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t))CAST(zx_exception_get_thread))(/*handle=*/r[5], /*out=*/0x20041900); if (res == ZX_OK) r[10] = *(uint32_t*)0x20041900; break; case 9: *(uint64_t*)0x20041bc0 = 0x20041780; memcpy((void*)0x20041780, "\xfa\x2f\x40\x69\xc5\xf5\x4d\x24\x79\xf8\x4d\x1d\x73\x3a\x52\xf5\x9f\x0a\x68\x70\x94\x66\xe6\x63\x3a\x63\x18\xf6\x05\x7f\xbf\xc9\xf0\x48\xb0\x9b\xfb\xb6\x39\x05\xdc\x82\x47\x45\xb1\x62\x47\xee\x57\x0e\x79\xaf\x77\xfd\xe7\x3b\xe0\x86\x53\x56\x84\x1b\x89\x97\xc5\x5e\x4c\x9b\x79\x2e\x2c\xd8\xc5\xac\x57\x89\x60\xab\x6b\x2d\x80\x4c\xd8\x9e\xb8\xf0\xde\x21\x51\xa1\x69\x3b\x64\x98\xd6\x1a\xbe\xdb\xd5\xdb\x7c\xae\x8b\x09\xf9\x4c\x6d\x94\x2c\xb3\x10\x51\x52\x49\x61\xcc\x82\xc4\x94\x0a\xf1\xab\x9c\xee\xba\x52\x71\x6e\xb2\x5b\x87\x0e\xaf\xbb\x41\xd9\xa1\x56\x2e\x96\x70\xdf\x00\x38\x4a\xa9\x55\x4b\x70\xf9\xa1\x66\x83\x41\x50\xf2\xe3\x72\x15\xe4\x13\xba\x12\x38\xa1\x81\xd4\xf7\x43\x58\x43\xb6\xbb\x56\xfa\x88\x61\xd8\x68\x80\x01\xd3\x9d\x9e\x2b\x18\x9f\x67\xe8\x05\x33\x11\x89\x64\x29\x97\x63\xf5\x86\x82\x8c\x69\x3c\xc9\x71\x2a\x9c\x25\x52\xdc\x30\xe5\x72\x25\x21\x2f\x5a\x50\xef\xe5\x6d\xa9\x9a\x32\x82\x4c\x4c", 227); *(uint64_t*)0x20041bc8 = 0x20041a80; *(uint32_t*)0x20041a80 = r[9]; *(uint32_t*)0x20041a84 = r[10]; *(uint32_t*)0x20041a88 = 0; *(uint32_t*)0x20041a8c = r[1]; *(uint32_t*)0x20041a90 = r[6]; *(uint32_t*)0x20041a94 = r[0]; *(uint32_t*)0x20041a98 = r[4]; *(uint32_t*)0x20041a9c = 0; *(uint32_t*)0x20041aa0 = 0; *(uint64_t*)0x20041bd0 = 0x20041ac0; *(uint64_t*)0x20041bd8 = 0x20041b80; *(uint32_t*)0x20041be0 = 0xe3; *(uint32_t*)0x20041be4 = 9; *(uint32_t*)0x20041be8 = 0x9a; *(uint32_t*)0x20041bec = 8; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); break; case 10: memcpy((void*)0x20000000, "\xc4\xe1\xd9\xd2\x9e\x91\x00\x00\x00\xc4\x81\x71\xfd\x84\x48\x00\x00\x00\x20\xc4\xa1\x7f\x70\x44\xba\x34\x0e\xf3\x0f\xae\xd6\xc4\x62\x79\xa7\x5d\x03\xc4\xc2\xfd\x96\x42\xa7\x2e\x66\x43\x0f\x38\xf5\x59\x00\x42\x0f\x34\xc4\xe1\x78\x2b\x42\xc0\xc4\x42\x65\x92\x24\x2c", 66); syz_execute_func(/*text=*/0x20000000); break; case 11: syz_future_time(/*when=*/1); break; case 12: syz_job_default(); break; case 13: syz_mmap(/*addr=*/0x20ffe000, /*len=*/0x1000); break; case 14: syz_process_self(); break; case 15: syz_thread_self(); break; case 16: syz_vmar_root_self(); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); for (procid = 0; procid < 2; procid++) { if (fork() == 0) { use_temporary_dir(); do_sandbox_none(); } } sleep(1000000); return 0; } :437:75: error: use of undeclared identifier 'zx_channel_call_etc' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor385234594 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/8 (0.40s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:0 Slowdown:1 Sandbox:none SandboxArg:-9223372036854775808 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:false Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(0x0, 0x0, 0x0, &(0x7f00000100c0)={&(0x7f0000000000)={{}, {0xffffffff, 0x0, {0x4, 0xffffffffffffffff}}}, &(0x7f0000000040), &(0x7f0000000080), &(0x7f0000010080)={{0x0, 0x0, 0x0, 0x0}}, 0x28, 0x2, 0x10000, 0x4}, &(0x7f0000010100), &(0x7f0000010140)) (fail_nth: 1) r3 = zx_deadline_after(0x5) (async) zx_channel_call$fuchsia_io_DirectoryAdminLink(r2, 0x0, r3, &(0x7f0000020240)={&(0x7f0000010180)={{}, {0x3, 0xffffffffffffffff}, 0xffffffff, {0x1b3}}, &(0x7f00000101c0), &(0x7f0000010200), &(0x7f0000020200), 0x34, 0x1, 0x10000}, &(0x7f0000020280), &(0x7f00000202c0)) (rerun: 4) zx_channel_call(r2, 0x0, r3, &(0x7f00000213c0)={&(0x7f0000020300)="6b3c1256279544bb32d36243afcbfda5cd1a1759ba09b008c97e2be49ab10adda6d88f529de7b04ad9b0fdd96d3184196e8e6975312bf6a2c53df14551fa4b32627dd679eef9c59f190ca4036814372cf510d02917535f1f02da97f6d1601f3e89e10a621b4e82ba76d41a2f87249736cd35a2432bf368daf43f60387c27f9177614c2f4d4fd31ddd5e08d63429d663ee14a1932bf8f4df70369f3c2a75197422ed0022be80fd87b79db2a43499a48bdcd91246573303a4508e17cf020c64c577b8bb0926c4bde1560a77446497e5bafec8429a311719384f637c4a008c3ddd62610dbb1d4c2dd8f1bd73e7f3657fcf24dbb896a145b28f34098f9d40199c5b72003c4e08eab96aec066bf2d97c2661f4cd91c59cd4f9e4f5617cfd6ada6e04953cc4c7be1c3f10de31e155dd174e99f4136cae08e308b3c22b5d1dd66b379703429b4d5dfa60ec7d1aa50043c92c1a949b3d940f604d1f44ebdd3c3e4ab647c7e66f1211eec2712e0e4b70cb1a2c1c6c3b4e29a1042834acc26e99b38f6075bbea108bf124c3b1cc4275227bd0167110d69972d46b2dbd6b18314d2ea664ac2f4e4490ab3223eb08178f92e0c17bf861894997cd092fe07c06c5e0db444085a138c638d6eb7889a1996340ea460991f75cd1aba0bcae8f9779587f6df761f75373199146daba4848ac8a2a9b099ae5a54ed617ecb56326627016ea3d6d077f90474dbf037689bd7724a1cef3626e6e196748c050f91c662fda495b67e5aa3b016dc3bccb2d7a9733eca7c7bdd8847540d273b9c8c29335ebdd7715ee4f57dfe5c6a0f3d584398c0ea55375bd2c31b6c74e9f4eeb859c8977063125cdf72532de65c0a00d53bc003c8b101838ee151319695c0ac2acef5f1910bc952bebc7f689f52067f81c18c5dfac90057cdbd0f75e928163aeb09ef0159b66da4210834ca8ee3e285270b51f5e256867ce622923fd3c40e615e1342418a196fcb8e2b56486722f7b5ca524c75dbdb9be6314b7ad590b5cf8f80d7927dda79ceb1369d780f3338c1efb83ca7bdda05f8ca9445b500c0506359a4baa2a8ee7e8b4afb48dbdc2a56194a8da4d1ac425245b83e1e8e448a29da4e2071aea3b8ef3a3cb5827e616d4707f851eea6260972eade34da0a8f34407f4d3e455ba0aa026a853ebb5e6d64e9d8105e69b84e36fb57a8b6e0e7cbb9e5d524988036d958e32a38f5977b3c7038c983994f0888fe3091aa1f45919f0602b5d750738b171b9787af296f2ba5fee311a16f1cdcd810a6689ac7a75bc19e693395b00cfdaf13cca6670a472d449e9efef6e0f9d1c1abaabaaa37e2b27d7d6723d98af800a0b2b5196b284a9e11a5c5e62c4d862522254225216d4ff21afd49bd07f74e9d189bc576d3dd39a739779875e2dcbcf356a52ca08cb29eae8579ca6608a194135941eed7e330de08a9e5095b177ce26b2321e7ac9862bacef371c4d2e9dc8bab9118a15ff9fc4679a1d0eeb64806a80cc739edfddf9d4fa2f42f870212c23ae81ebc9168c955535041c1ce54edf8e3cae6684dab1b1eed16b25bc667a36691d0e050a49f2d782ed9ec3f94d50c8d3358a82375d3605fdb7912b1fc3ed9155fb1052c93e61005c2f6a87c42cf68aff9e6c9e19813653770c439cc397f9ecba27a99b082054d8f44a5b82baea68bd849cde7044a27792a26b3a12d938cb650a8914124be069a1d8a0f98d98768f9144afcc851b338a84d797c35a7657111fa4278b62eee95e3ddedb8916d03c93ec884ac97e29b1d4490ecae90628ed261ebcbbd4d0c12d1c295e6683d685c508d14f289f5b0c86bbd05c31edb6ef46aba2abe24f53c90b33ac3b8033616687a9d3b2900876cb4879145771c0957a07d371f9826e641089e347c155fd62cf176bb4f6af7c223b45cfd0e0a5410922527f9a89a8bb864f497a763fac941097410f448373d1232955cdd4c067364151ae3f57e3bd611975eb189e3de3de659b8f58fc7bc86bb7717711aea0f512ae8fb8f0dad0b9a91cb4b1d512095de2923a54add0883f1b194082abb2d77105e9d00d23e0c0e2226cb2f831d10a66223d9f717260558318f72b66926e0ae2a169b8f5fb86d9f611760d9626218791f7a18b807e12dd61b895d96885c8a39ae56faa0987a4bc634bf638902288cbe304d2e6085b35bbd8c69f7c7bc08a54764e5a58c36da8514923cabca339408a4d4c4a05520b84150e1493861b1208ab6d2007fd47071ecd8419c4de38764caecb093a2cc8259f413efcb13e19451d22b9bd8a192f9184f62c438b1fa988cdc16b43a19ed3ca3dc13bdada0118cf96132ee3a06db5eec80f4c956b3928f5923c5a74352cc62ea9e8a0310ff953d4fd886d26d6e5ccbb8c9afda424ce0e0c66e3b5112f93de988f178f103de77663c3f37483aef8a49b06ed86442553336a2ea076350f3730d607164b7459b9e90e3f98ab8132018d02c86b65d5e2358c66ee8d657a6586af70eb2536942b0733f99d3dcb2ebb49857d384a870cb0b62e318a130f1d905a12c71c319ad380a8b022d4e3f5f5ee1bb17d55becffb128fd61d993b5e03d6d0d864b2481dde4f0e472800e84d97b2a12661bfbb9070f37cd458f0d43474003491239f6987024386a281851797d1322752e6e24b160fcdde4a429383a690435f1200d0ad95874011db89d4ffaf2232e84a767620009fa3e534c50b2656805a380799a16817b350a3b23d4d03fcfffe4cf048283c47144189dc9b965375cff5ee4171a23c172fef7a8ddefd1c24be338203691227c3056f7761eca36087851aeff7f91e8aceb96d7b21082a95d6b796ad7688b9c48754fa34d2873c1377012cc16a798e80c71d5759572b17e3a013fa2e878a5194ce5358ecec5602fb206d590ff765f57755904d4361e118fb18f8fdad8df387fe63f79678ea913d3b1633955f8e11c2d8d7c716791234188bdcb7bccccc6f3eb85993ebe53478bf92dfff23331f394f2164264a6c029d0c8bb9a41e09cc35eff2a58d4ad3b92b4d682c7ac73a728892bb11b57c39aed49709c200e916bcba5229d16043e34b1c04223be93784e3de8b74349425cf073d7068565e7d914f26573581dc919919feec181d371cc6629f895728f8526acef9ce50110fd9257fc677de7fa23f98f35ba0686fc65d074c412a5e02ad067836f80fc24437e2d0decff85b1029e28660b344851a0be45cdc10716a05974e5e09d00f994a4de6e97cf7148c34ebeb5565be0eccf4dfa7c8b70691d0a4fc4adf40a049777ecf560daafe437bbb8af380ad90819f3018202e738519d372bdb17f771a29d8bc58451262567d38beb9fc92e000c18df6324e6c4da794754c849b2fded1b67ac18b48a8b05773d62e24ec78ad9cb00b9959fe20c0d8778ad636260af68e1f336e0a9678b7c84752a624355257380fe51d98e1c17b6f026ff8206e9b1b4c0451c9ee8a5de6a38a2bf52810fa17f811a4dc56931ec4de8fee47c553441aaf1683f94f5e6fad54eaaf66e6d6acbd627d64e0545efb2650741d65bfb41b12d84b5f8a92ae978db2612aeda6823b3d422e56429e7fea6a7028001e70cda4c3bdc741750858e4a4f44cb87e47112ae9a0338569402c386b1f232bac1456793462da338b3851bb31d93e64d61473bcbbf400d0fc99bf5e06b989122518f61498d8265846c6b596b73d49a1386cf28406b33d90e9d919af9bf0e74456061343ce07f46191f050c5f69f4c62d895617775e1cce6e82a9b300ea5ced9667b784e59b687c8f487077c2458d6db726cbf009c33c92576f35a149a7aa11f29ccad57967fc3ec9cda65ae30ba175bf3e405a303caeed440ed21a99735c4fe524f8423971473db48fa505f44a4d1356b82a90c7f581732feb089c0e8301ffc54d3207571447c4f75d96b0ba5887a558da9a2ff2726fa8748c2179276193695bf03658978bdaa74b4c02fbf00c1a5a9eca009e7a3bfd5d48881cecb743e5b65b0c0b1e024b80044853265ac0ee2fd92ddebbd59c4d4cb3a09d83f9dfc5c274111ec8caab4cbc65518ef6a8e2e0f14993c17af66d7dd5d30643b2391b728975f3886bb0c64065c87eec0c28696a07d1c30416b7901dcd4f94139c917dc986ff15f1364b227cf594ba63e28362e52117a5469fc15dedb45c7e124b58b014e2c498933ec362ab60c758dbc15cc7b17b36fd9265f9d5857fdba2edb36a355c52f53d09f03e474ca45a06f9995d1f10b0be3233eb831b047200d35472b2137bc2fb77b819daf9a8e9b853d952931993f92c6209a3587ad812989d857aae67aa7e87275fc34be4b3b78b475c3200e35f0453bcdd00d8d718a5286cb47dee49d90afed7f4fe42496ba33cf13d6f17c105eddb25c876d6f52a21cf098d42d9bfc72f0535281f6c022103455dcb87fcd505d7714e79417c9fcd32208e388c9d50e561f231a09cc73149f2ec248bd1fc885f3e1059659b1a4ac978bb5c81b093da5b9dc293096ba9fdbec00502192e4fae10afd3605c2c020a628a055d5659c3effb76446834a8e84edf5239c9ea6cb6cb85aef64b68bc7e2f96856f65e976ba1bd525c1965ec7a2d954cc99fba8fa13d329227f7f9321689c631a12dcb0ac99487bfe4725e9b7d01e8481024943cc35f7a0e87a2142a9229d353b4128897a9b3bc4a4ebc82dde1cbf7616dc6544e05db908203ec568b9f48893a0fc9a1a77cb7340afe977b51f3a4a1e555ab811b9723996ed60b70184c538cbded327fada7d9ac205b32958cfceeb3cee192da03efd31476c88dfd05812df72c977d17f44ae5d696f336185d2d90779747d6d91347da96b40ffbd323f16022ea63a744077893f6e16991d65849d65cbcdc10f83db70810935cba04ede08f74a7261a286130e147184c0f12827d74fc6c8db9354fe3ca3e0440a06e32b156623b3587c7b23872954faa27eb71882bf945f035b7212df2523a7e8c5ac1658bfa6a460ad973977dc59283871b6de43e492f8d476bf340f7f6a92a38dc4ab15bdd3e0ff15959c7c49da65810e60060ccefefd931ce9e5424cb6faa27e2e26b3a23f52b9ca19ae15ba0bfe5e47b5a700402deda7f5337897dc23fee11c62383a3fbd1f28ae2ac4ccedfc926418d0db7d6e228331ac7a8df31193ee68bcccb04aa7fdd48c9ea74ea5a8b0ce94e7a31c3dc596fd10d30380280e61bd2c11625ea9f1ada2e031eb807d57b36a17f3bc748881a56a9877e358388f2d493c61943c79c8879ad74e515c9b38b10f6bf4c0bbe129fa8fcf2c2a82e913ece2d33a33a5c7a581e7571420f14f2105d376aba2aa5c5f5810d7e34e78abe76865540719d2634b384fbb840c05ec3bc2e53af13056141680aba67adbe6e8888b2d88959eb9e9a56f98552bd083230af6aefbd835adf9f50f0daae9814c6702f7d0b1e9cade35a3536d627d92a301177277910045d0ff086ed84e61c42c823fdd8b7ef1691d44645b40ca57a1ccc013da6a24cbd43257bfc0bf696c7a60bb6dd677b3a7c2f378b3a963abbb2715c9b7b57fb7959ae970c1bed93ad07e0507aec8ee94fca097a4d06693972a4bcff368bd4b34e1309ca8c847075af2eb5dba14441321197881ad535f7892935261f2fb94e17394316327b5b6a0c7778d4f8ee2a539ee3b4cd39b53f371614e71d9e053832044590c0cad4019fe55e8489e9aba620490a8eab8ac8b069284185bd7b819fe0183ba8bb7382e19f95f3f607d87f6718d8689d0394d5e88e14e2c8deafb590d4c1fb1bd7608af6e4a2baa2a0c27044f00b5df034b131da8688a250c08", &(0x7f0000021300)=[r0, r0, r1, r0, r1, r1], &(0x7f0000021340)=""/61, &(0x7f0000021380)=[0x0, 0x0, 0x0], 0x1000, 0x6, 0x3d, 0x3}, &(0x7f0000021400), &(0x7f0000021440)) zx_channel_call$fuchsia_cobalt_LoggerLogMemoryUsage(r5, 0x0, r3, &(0x7f0000031540)={&(0x7f0000021480)={{}, 0x2, 0x2, {0x9, 0xffffffffffffffff}, 0x2, {'\x00'}}, &(0x7f00000214c0), &(0x7f0000021500), &(0x7f0000031500), 0x38, 0x0, 0x10000}, &(0x7f0000031580), &(0x7f00000315c0)) zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(r2, 0x0, r3, &(0x7f00000416c0)={&(0x7f0000031600)={{}, {0x0, 0x100000001, {0xc1, 0xffffffffffffffff}}, {{'*[#,)&,-[)}'}}}, &(0x7f0000031640)={{0x0, r5}}, &(0x7f0000031680), &(0x7f0000041680)={{0x0, 0x0, 0x0, 0x0}}, 0x38, 0x2, 0x10000, 0x4}, &(0x7f0000041700), &(0x7f0000041740)) r8 = zx_deadline_after(0x104d) zx_channel_create(0x0, &(0x7f0000041880)=0x0, &(0x7f00000418c0)) zx_exception_get_thread(r5, &(0x7f0000041900)=0x0) zx_channel_call_etc(r7, 0x7, r8, &(0x7f0000041bc0)={&(0x7f0000041780)="fa2f4069c5f54d2479f84d1d733a52f59f0a68709466e6633a6318f6057fbfc9f048b09bfbb63905dc824745b16247ee570e79af77fde73be0865356841b8997c55e4c9b792e2cd8c5ac578960ab6b2d804cd89eb8f0de2151a1693b6498d61abedbd5db7cae8b09f94c6d942cb31051524961cc82c4940af1ab9ceeba52716eb25b870eafbb41d9a1562e9670df00384aa9554b70f9a166834150f2e37215e413ba1238a181d4f7435843b6bb56fa8861d8688001d39d9e2b189f67e80533118964299763f586828c693cc9712a9c2552dc30e57225212f5a50efe56da99a32824c4c", &(0x7f0000041a80)=[r9, r10, 0x0, r1, r6, r0, r4, 0x0, 0x0], &(0x7f0000041ac0)=""/154, &(0x7f0000041b80)=[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], 0xe3, 0x9, 0x9a, 0x8}, &(0x7f0000041c00), &(0x7f0000041c40)) syz_execute_func(&(0x7f0000000000)="c4e1d9d29e91000000c48171fd844800000020c4a17f7044ba340ef30faed6c46279a75d03c4c2fd9642a72e66430f38f55900420f34c4e1782b42c0c4426592242c") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffe000/0x1000)=nil, 0x1000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 50); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[11] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: *(uint64_t*)0x200100c0 = 0x20000000; *(uint32_t*)0x20000000 = 0; memset((void*)0x20000004, 0, 3); *(uint8_t*)0x20000007 = 1; *(uint64_t*)0x20000008 = 0x4fcfbc1100000000; *(uint32_t*)0x20000010 = -1; *(uint32_t*)0x20000014 = 0; *(uint64_t*)0x20000018 = 4; *(uint64_t*)0x20000020 = -1; *(uint64_t*)0x200100c8 = 0x20000040; *(uint32_t*)0x20000040 = 0; *(uint32_t*)0x20000044 = 0; *(uint64_t*)0x200100d0 = 0x20000080; *(uint64_t*)0x200100d8 = 0x20010080; *(uint32_t*)0x200100e0 = 0x28; *(uint32_t*)0x200100e4 = 2; *(uint32_t*)0x200100e8 = 0x10000; *(uint32_t*)0x200100ec = 4; inject_fault(1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/0, /*args=*/0x200100c0, /*actual_bytes=*/0x20010100, /*actual_handles=*/0x20010140); if (res == ZX_OK) { r[0] = *(uint32_t*)0x20010080; r[1] = *(uint32_t*)0x20010088; r[2] = *(uint32_t*)0x2001008c; } break; case 1: res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/5); if (res == ZX_OK) r[3] = res; break; case 2: *(uint64_t*)0x20020240 = 0x20010180; *(uint32_t*)0x20010180 = 0; memset((void*)0x20010184, 0, 3); *(uint8_t*)0x20010187 = 1; *(uint64_t*)0x20010188 = 0x1b8a5e6400000000; *(uint64_t*)0x20010190 = 3; *(uint64_t*)0x20010198 = -1; *(uint32_t*)0x200101a0 = -1; *(uint64_t*)0x200101a4 = 0x1b3; *(uint64_t*)0x200101ac = 0; *(uint64_t*)0x20020248 = 0x200101c0; *(uint32_t*)0x200101c0 = 0; *(uint64_t*)0x20020250 = 0x20010200; *(uint64_t*)0x20020258 = 0x20020200; *(uint32_t*)0x20020260 = 0x34; *(uint32_t*)0x20020264 = 1; *(uint32_t*)0x20020268 = 0x10000; *(uint32_t*)0x2002026c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); } } break; case 3: *(uint64_t*)0x200213c0 = 0x20020300; memcpy((void*)0x20020300, "\x6b\x3c\x12\x56\x27\x95\x44\xbb\x32\xd3\x62\x43\xaf\xcb\xfd\xa5\xcd\x1a\x17\x59\xba\x09\xb0\x08\xc9\x7e\x2b\xe4\x9a\xb1\x0a\xdd\xa6\xd8\x8f\x52\x9d\xe7\xb0\x4a\xd9\xb0\xfd\xd9\x6d\x31\x84\x19\x6e\x8e\x69\x75\x31\x2b\xf6\xa2\xc5\x3d\xf1\x45\x51\xfa\x4b\x32\x62\x7d\xd6\x79\xee\xf9\xc5\x9f\x19\x0c\xa4\x03\x68\x14\x37\x2c\xf5\x10\xd0\x29\x17\x53\x5f\x1f\x02\xda\x97\xf6\xd1\x60\x1f\x3e\x89\xe1\x0a\x62\x1b\x4e\x82\xba\x76\xd4\x1a\x2f\x87\x24\x97\x36\xcd\x35\xa2\x43\x2b\xf3\x68\xda\xf4\x3f\x60\x38\x7c\x27\xf9\x17\x76\x14\xc2\xf4\xd4\xfd\x31\xdd\xd5\xe0\x8d\x63\x42\x9d\x66\x3e\xe1\x4a\x19\x32\xbf\x8f\x4d\xf7\x03\x69\xf3\xc2\xa7\x51\x97\x42\x2e\xd0\x02\x2b\xe8\x0f\xd8\x7b\x79\xdb\x2a\x43\x49\x9a\x48\xbd\xcd\x91\x24\x65\x73\x30\x3a\x45\x08\xe1\x7c\xf0\x20\xc6\x4c\x57\x7b\x8b\xb0\x92\x6c\x4b\xde\x15\x60\xa7\x74\x46\x49\x7e\x5b\xaf\xec\x84\x29\xa3\x11\x71\x93\x84\xf6\x37\xc4\xa0\x08\xc3\xdd\xd6\x26\x10\xdb\xb1\xd4\xc2\xdd\x8f\x1b\xd7\x3e\x7f\x36\x57\xfc\xf2\x4d\xbb\x89\x6a\x14\x5b\x28\xf3\x40\x98\xf9\xd4\x01\x99\xc5\xb7\x20\x03\xc4\xe0\x8e\xab\x96\xae\xc0\x66\xbf\x2d\x97\xc2\x66\x1f\x4c\xd9\x1c\x59\xcd\x4f\x9e\x4f\x56\x17\xcf\xd6\xad\xa6\xe0\x49\x53\xcc\x4c\x7b\xe1\xc3\xf1\x0d\xe3\x1e\x15\x5d\xd1\x74\xe9\x9f\x41\x36\xca\xe0\x8e\x30\x8b\x3c\x22\xb5\xd1\xdd\x66\xb3\x79\x70\x34\x29\xb4\xd5\xdf\xa6\x0e\xc7\xd1\xaa\x50\x04\x3c\x92\xc1\xa9\x49\xb3\xd9\x40\xf6\x04\xd1\xf4\x4e\xbd\xd3\xc3\xe4\xab\x64\x7c\x7e\x66\xf1\x21\x1e\xec\x27\x12\xe0\xe4\xb7\x0c\xb1\xa2\xc1\xc6\xc3\xb4\xe2\x9a\x10\x42\x83\x4a\xcc\x26\xe9\x9b\x38\xf6\x07\x5b\xbe\xa1\x08\xbf\x12\x4c\x3b\x1c\xc4\x27\x52\x27\xbd\x01\x67\x11\x0d\x69\x97\x2d\x46\xb2\xdb\xd6\xb1\x83\x14\xd2\xea\x66\x4a\xc2\xf4\xe4\x49\x0a\xb3\x22\x3e\xb0\x81\x78\xf9\x2e\x0c\x17\xbf\x86\x18\x94\x99\x7c\xd0\x92\xfe\x07\xc0\x6c\x5e\x0d\xb4\x44\x08\x5a\x13\x8c\x63\x8d\x6e\xb7\x88\x9a\x19\x96\x34\x0e\xa4\x60\x99\x1f\x75\xcd\x1a\xba\x0b\xca\xe8\xf9\x77\x95\x87\xf6\xdf\x76\x1f\x75\x37\x31\x99\x14\x6d\xab\xa4\x84\x8a\xc8\xa2\xa9\xb0\x99\xae\x5a\x54\xed\x61\x7e\xcb\x56\x32\x66\x27\x01\x6e\xa3\xd6\xd0\x77\xf9\x04\x74\xdb\xf0\x37\x68\x9b\xd7\x72\x4a\x1c\xef\x36\x26\xe6\xe1\x96\x74\x8c\x05\x0f\x91\xc6\x62\xfd\xa4\x95\xb6\x7e\x5a\xa3\xb0\x16\xdc\x3b\xcc\xb2\xd7\xa9\x73\x3e\xca\x7c\x7b\xdd\x88\x47\x54\x0d\x27\x3b\x9c\x8c\x29\x33\x5e\xbd\xd7\x71\x5e\xe4\xf5\x7d\xfe\x5c\x6a\x0f\x3d\x58\x43\x98\xc0\xea\x55\x37\x5b\xd2\xc3\x1b\x6c\x74\xe9\xf4\xee\xb8\x59\xc8\x97\x70\x63\x12\x5c\xdf\x72\x53\x2d\xe6\x5c\x0a\x00\xd5\x3b\xc0\x03\xc8\xb1\x01\x83\x8e\xe1\x51\x31\x96\x95\xc0\xac\x2a\xce\xf5\xf1\x91\x0b\xc9\x52\xbe\xbc\x7f\x68\x9f\x52\x06\x7f\x81\xc1\x8c\x5d\xfa\xc9\x00\x57\xcd\xbd\x0f\x75\xe9\x28\x16\x3a\xeb\x09\xef\x01\x59\xb6\x6d\xa4\x21\x08\x34\xca\x8e\xe3\xe2\x85\x27\x0b\x51\xf5\xe2\x56\x86\x7c\xe6\x22\x92\x3f\xd3\xc4\x0e\x61\x5e\x13\x42\x41\x8a\x19\x6f\xcb\x8e\x2b\x56\x48\x67\x22\xf7\xb5\xca\x52\x4c\x75\xdb\xdb\x9b\xe6\x31\x4b\x7a\xd5\x90\xb5\xcf\x8f\x80\xd7\x92\x7d\xda\x79\xce\xb1\x36\x9d\x78\x0f\x33\x38\xc1\xef\xb8\x3c\xa7\xbd\xda\x05\xf8\xca\x94\x45\xb5\x00\xc0\x50\x63\x59\xa4\xba\xa2\xa8\xee\x7e\x8b\x4a\xfb\x48\xdb\xdc\x2a\x56\x19\x4a\x8d\xa4\xd1\xac\x42\x52\x45\xb8\x3e\x1e\x8e\x44\x8a\x29\xda\x4e\x20\x71\xae\xa3\xb8\xef\x3a\x3c\xb5\x82\x7e\x61\x6d\x47\x07\xf8\x51\xee\xa6\x26\x09\x72\xea\xde\x34\xda\x0a\x8f\x34\x40\x7f\x4d\x3e\x45\x5b\xa0\xaa\x02\x6a\x85\x3e\xbb\x5e\x6d\x64\xe9\xd8\x10\x5e\x69\xb8\x4e\x36\xfb\x57\xa8\xb6\xe0\xe7\xcb\xb9\xe5\xd5\x24\x98\x80\x36\xd9\x58\xe3\x2a\x38\xf5\x97\x7b\x3c\x70\x38\xc9\x83\x99\x4f\x08\x88\xfe\x30\x91\xaa\x1f\x45\x91\x9f\x06\x02\xb5\xd7\x50\x73\x8b\x17\x1b\x97\x87\xaf\x29\x6f\x2b\xa5\xfe\xe3\x11\xa1\x6f\x1c\xdc\xd8\x10\xa6\x68\x9a\xc7\xa7\x5b\xc1\x9e\x69\x33\x95\xb0\x0c\xfd\xaf\x13\xcc\xa6\x67\x0a\x47\x2d\x44\x9e\x9e\xfe\xf6\xe0\xf9\xd1\xc1\xab\xaa\xba\xaa\x37\xe2\xb2\x7d\x7d\x67\x23\xd9\x8a\xf8\x00\xa0\xb2\xb5\x19\x6b\x28\x4a\x9e\x11\xa5\xc5\xe6\x2c\x4d\x86\x25\x22\x25\x42\x25\x21\x6d\x4f\xf2\x1a\xfd\x49\xbd\x07\xf7\x4e\x9d\x18\x9b\xc5\x76\xd3\xdd\x39\xa7\x39\x77\x98\x75\xe2\xdc\xbc\xf3\x56\xa5\x2c\xa0\x8c\xb2\x9e\xae\x85\x79\xca\x66\x08\xa1\x94\x13\x59\x41\xee\xd7\xe3\x30\xde\x08\xa9\xe5\x09\x5b\x17\x7c\xe2\x6b\x23\x21\xe7\xac\x98\x62\xba\xce\xf3\x71\xc4\xd2\xe9\xdc\x8b\xab\x91\x18\xa1\x5f\xf9\xfc\x46\x79\xa1\xd0\xee\xb6\x48\x06\xa8\x0c\xc7\x39\xed\xfd\xdf\x9d\x4f\xa2\xf4\x2f\x87\x02\x12\xc2\x3a\xe8\x1e\xbc\x91\x68\xc9\x55\x53\x50\x41\xc1\xce\x54\xed\xf8\xe3\xca\xe6\x68\x4d\xab\x1b\x1e\xed\x16\xb2\x5b\xc6\x67\xa3\x66\x91\xd0\xe0\x50\xa4\x9f\x2d\x78\x2e\xd9\xec\x3f\x94\xd5\x0c\x8d\x33\x58\xa8\x23\x75\xd3\x60\x5f\xdb\x79\x12\xb1\xfc\x3e\xd9\x15\x5f\xb1\x05\x2c\x93\xe6\x10\x05\xc2\xf6\xa8\x7c\x42\xcf\x68\xaf\xf9\xe6\xc9\xe1\x98\x13\x65\x37\x70\xc4\x39\xcc\x39\x7f\x9e\xcb\xa2\x7a\x99\xb0\x82\x05\x4d\x8f\x44\xa5\xb8\x2b\xae\xa6\x8b\xd8\x49\xcd\xe7\x04\x4a\x27\x79\x2a\x26\xb3\xa1\x2d\x93\x8c\xb6\x50\xa8\x91\x41\x24\xbe\x06\x9a\x1d\x8a\x0f\x98\xd9\x87\x68\xf9\x14\x4a\xfc\xc8\x51\xb3\x38\xa8\x4d\x79\x7c\x35\xa7\x65\x71\x11\xfa\x42\x78\xb6\x2e\xee\x95\xe3\xdd\xed\xb8\x91\x6d\x03\xc9\x3e\xc8\x84\xac\x97\xe2\x9b\x1d\x44\x90\xec\xae\x90\x62\x8e\xd2\x61\xeb\xcb\xbd\x4d\x0c\x12\xd1\xc2\x95\xe6\x68\x3d\x68\x5c\x50\x8d\x14\xf2\x89\xf5\xb0\xc8\x6b\xbd\x05\xc3\x1e\xdb\x6e\xf4\x6a\xba\x2a\xbe\x24\xf5\x3c\x90\xb3\x3a\xc3\xb8\x03\x36\x16\x68\x7a\x9d\x3b\x29\x00\x87\x6c\xb4\x87\x91\x45\x77\x1c\x09\x57\xa0\x7d\x37\x1f\x98\x26\xe6\x41\x08\x9e\x34\x7c\x15\x5f\xd6\x2c\xf1\x76\xbb\x4f\x6a\xf7\xc2\x23\xb4\x5c\xfd\x0e\x0a\x54\x10\x92\x25\x27\xf9\xa8\x9a\x8b\xb8\x64\xf4\x97\xa7\x63\xfa\xc9\x41\x09\x74\x10\xf4\x48\x37\x3d\x12\x32\x95\x5c\xdd\x4c\x06\x73\x64\x15\x1a\xe3\xf5\x7e\x3b\xd6\x11\x97\x5e\xb1\x89\xe3\xde\x3d\xe6\x59\xb8\xf5\x8f\xc7\xbc\x86\xbb\x77\x17\x71\x1a\xea\x0f\x51\x2a\xe8\xfb\x8f\x0d\xad\x0b\x9a\x91\xcb\x4b\x1d\x51\x20\x95\xde\x29\x23\xa5\x4a\xdd\x08\x83\xf1\xb1\x94\x08\x2a\xbb\x2d\x77\x10\x5e\x9d\x00\xd2\x3e\x0c\x0e\x22\x26\xcb\x2f\x83\x1d\x10\xa6\x62\x23\xd9\xf7\x17\x26\x05\x58\x31\x8f\x72\xb6\x69\x26\xe0\xae\x2a\x16\x9b\x8f\x5f\xb8\x6d\x9f\x61\x17\x60\xd9\x62\x62\x18\x79\x1f\x7a\x18\xb8\x07\xe1\x2d\xd6\x1b\x89\x5d\x96\x88\x5c\x8a\x39\xae\x56\xfa\xa0\x98\x7a\x4b\xc6\x34\xbf\x63\x89\x02\x28\x8c\xbe\x30\x4d\x2e\x60\x85\xb3\x5b\xbd\x8c\x69\xf7\xc7\xbc\x08\xa5\x47\x64\xe5\xa5\x8c\x36\xda\x85\x14\x92\x3c\xab\xca\x33\x94\x08\xa4\xd4\xc4\xa0\x55\x20\xb8\x41\x50\xe1\x49\x38\x61\xb1\x20\x8a\xb6\xd2\x00\x7f\xd4\x70\x71\xec\xd8\x41\x9c\x4d\xe3\x87\x64\xca\xec\xb0\x93\xa2\xcc\x82\x59\xf4\x13\xef\xcb\x13\xe1\x94\x51\xd2\x2b\x9b\xd8\xa1\x92\xf9\x18\x4f\x62\xc4\x38\xb1\xfa\x98\x8c\xdc\x16\xb4\x3a\x19\xed\x3c\xa3\xdc\x13\xbd\xad\xa0\x11\x8c\xf9\x61\x32\xee\x3a\x06\xdb\x5e\xec\x80\xf4\xc9\x56\xb3\x92\x8f\x59\x23\xc5\xa7\x43\x52\xcc\x62\xea\x9e\x8a\x03\x10\xff\x95\x3d\x4f\xd8\x86\xd2\x6d\x6e\x5c\xcb\xb8\xc9\xaf\xda\x42\x4c\xe0\xe0\xc6\x6e\x3b\x51\x12\xf9\x3d\xe9\x88\xf1\x78\xf1\x03\xde\x77\x66\x3c\x3f\x37\x48\x3a\xef\x8a\x49\xb0\x6e\xd8\x64\x42\x55\x33\x36\xa2\xea\x07\x63\x50\xf3\x73\x0d\x60\x71\x64\xb7\x45\x9b\x9e\x90\xe3\xf9\x8a\xb8\x13\x20\x18\xd0\x2c\x86\xb6\x5d\x5e\x23\x58\xc6\x6e\xe8\xd6\x57\xa6\x58\x6a\xf7\x0e\xb2\x53\x69\x42\xb0\x73\x3f\x99\xd3\xdc\xb2\xeb\xb4\x98\x57\xd3\x84\xa8\x70\xcb\x0b\x62\xe3\x18\xa1\x30\xf1\xd9\x05\xa1\x2c\x71\xc3\x19\xad\x38\x0a\x8b\x02\x2d\x4e\x3f\x5f\x5e\xe1\xbb\x17\xd5\x5b\xec\xff\xb1\x28\xfd\x61\xd9\x93\xb5\xe0\x3d\x6d\x0d\x86\x4b\x24\x81\xdd\xe4\xf0\xe4\x72\x80\x0e\x84\xd9\x7b\x2a\x12\x66\x1b\xfb\xb9\x07\x0f\x37\xcd\x45\x8f\x0d\x43\x47\x40\x03\x49\x12\x39\xf6\x98\x70\x24\x38\x6a\x28\x18\x51\x79\x7d\x13\x22\x75\x2e\x6e\x24\xb1\x60\xfc\xdd\xe4\xa4\x29\x38\x3a\x69\x04\x35\xf1\x20\x0d\x0a\xd9\x58\x74\x01\x1d\xb8\x9d\x4f\xfa\xf2\x23\x2e\x84\xa7\x67\x62\x00\x09\xfa\x3e\x53\x4c\x50\xb2\x65\x68\x05\xa3\x80\x79\x9a\x16\x81\x7b\x35\x0a\x3b\x23\xd4\xd0\x3f\xcf\xff\xe4\xcf\x04\x82\x83\xc4\x71\x44\x18\x9d\xc9\xb9\x65\x37\x5c\xff\x5e\xe4\x17\x1a\x23\xc1\x72\xfe\xf7\xa8\xdd\xef\xd1\xc2\x4b\xe3\x38\x20\x36\x91\x22\x7c\x30\x56\xf7\x76\x1e\xca\x36\x08\x78\x51\xae\xff\x7f\x91\xe8\xac\xeb\x96\xd7\xb2\x10\x82\xa9\x5d\x6b\x79\x6a\xd7\x68\x8b\x9c\x48\x75\x4f\xa3\x4d\x28\x73\xc1\x37\x70\x12\xcc\x16\xa7\x98\xe8\x0c\x71\xd5\x75\x95\x72\xb1\x7e\x3a\x01\x3f\xa2\xe8\x78\xa5\x19\x4c\xe5\x35\x8e\xce\xc5\x60\x2f\xb2\x06\xd5\x90\xff\x76\x5f\x57\x75\x59\x04\xd4\x36\x1e\x11\x8f\xb1\x8f\x8f\xda\xd8\xdf\x38\x7f\xe6\x3f\x79\x67\x8e\xa9\x13\xd3\xb1\x63\x39\x55\xf8\xe1\x1c\x2d\x8d\x7c\x71\x67\x91\x23\x41\x88\xbd\xcb\x7b\xcc\xcc\xc6\xf3\xeb\x85\x99\x3e\xbe\x53\x47\x8b\xf9\x2d\xff\xf2\x33\x31\xf3\x94\xf2\x16\x42\x64\xa6\xc0\x29\xd0\xc8\xbb\x9a\x41\xe0\x9c\xc3\x5e\xff\x2a\x58\xd4\xad\x3b\x92\xb4\xd6\x82\xc7\xac\x73\xa7\x28\x89\x2b\xb1\x1b\x57\xc3\x9a\xed\x49\x70\x9c\x20\x0e\x91\x6b\xcb\xa5\x22\x9d\x16\x04\x3e\x34\xb1\xc0\x42\x23\xbe\x93\x78\x4e\x3d\xe8\xb7\x43\x49\x42\x5c\xf0\x73\xd7\x06\x85\x65\xe7\xd9\x14\xf2\x65\x73\x58\x1d\xc9\x19\x91\x9f\xee\xc1\x81\xd3\x71\xcc\x66\x29\xf8\x95\x72\x8f\x85\x26\xac\xef\x9c\xe5\x01\x10\xfd\x92\x57\xfc\x67\x7d\xe7\xfa\x23\xf9\x8f\x35\xba\x06\x86\xfc\x65\xd0\x74\xc4\x12\xa5\xe0\x2a\xd0\x67\x83\x6f\x80\xfc\x24\x43\x7e\x2d\x0d\xec\xff\x85\xb1\x02\x9e\x28\x66\x0b\x34\x48\x51\xa0\xbe\x45\xcd\xc1\x07\x16\xa0\x59\x74\xe5\xe0\x9d\x00\xf9\x94\xa4\xde\x6e\x97\xcf\x71\x48\xc3\x4e\xbe\xb5\x56\x5b\xe0\xec\xcf\x4d\xfa\x7c\x8b\x70\x69\x1d\x0a\x4f\xc4\xad\xf4\x0a\x04\x97\x77\xec\xf5\x60\xda\xaf\xe4\x37\xbb\xb8\xaf\x38\x0a\xd9\x08\x19\xf3\x01\x82\x02\xe7\x38\x51\x9d\x37\x2b\xdb\x17\xf7\x71\xa2\x9d\x8b\xc5\x84\x51\x26\x25\x67\xd3\x8b\xeb\x9f\xc9\x2e\x00\x0c\x18\xdf\x63\x24\xe6\xc4\xda\x79\x47\x54\xc8\x49\xb2\xfd\xed\x1b\x67\xac\x18\xb4\x8a\x8b\x05\x77\x3d\x62\xe2\x4e\xc7\x8a\xd9\xcb\x00\xb9\x95\x9f\xe2\x0c\x0d\x87\x78\xad\x63\x62\x60\xaf\x68\xe1\xf3\x36\xe0\xa9\x67\x8b\x7c\x84\x75\x2a\x62\x43\x55\x25\x73\x80\xfe\x51\xd9\x8e\x1c\x17\xb6\xf0\x26\xff\x82\x06\xe9\xb1\xb4\xc0\x45\x1c\x9e\xe8\xa5\xde\x6a\x38\xa2\xbf\x52\x81\x0f\xa1\x7f\x81\x1a\x4d\xc5\x69\x31\xec\x4d\xe8\xfe\xe4\x7c\x55\x34\x41\xaa\xf1\x68\x3f\x94\xf5\xe6\xfa\xd5\x4e\xaa\xf6\x6e\x6d\x6a\xcb\xd6\x27\xd6\x4e\x05\x45\xef\xb2\x65\x07\x41\xd6\x5b\xfb\x41\xb1\x2d\x84\xb5\xf8\xa9\x2a\xe9\x78\xdb\x26\x12\xae\xda\x68\x23\xb3\xd4\x22\xe5\x64\x29\xe7\xfe\xa6\xa7\x02\x80\x01\xe7\x0c\xda\x4c\x3b\xdc\x74\x17\x50\x85\x8e\x4a\x4f\x44\xcb\x87\xe4\x71\x12\xae\x9a\x03\x38\x56\x94\x02\xc3\x86\xb1\xf2\x32\xba\xc1\x45\x67\x93\x46\x2d\xa3\x38\xb3\x85\x1b\xb3\x1d\x93\xe6\x4d\x61\x47\x3b\xcb\xbf\x40\x0d\x0f\xc9\x9b\xf5\xe0\x6b\x98\x91\x22\x51\x8f\x61\x49\x8d\x82\x65\x84\x6c\x6b\x59\x6b\x73\xd4\x9a\x13\x86\xcf\x28\x40\x6b\x33\xd9\x0e\x9d\x91\x9a\xf9\xbf\x0e\x74\x45\x60\x61\x34\x3c\xe0\x7f\x46\x19\x1f\x05\x0c\x5f\x69\xf4\xc6\x2d\x89\x56\x17\x77\x5e\x1c\xce\x6e\x82\xa9\xb3\x00\xea\x5c\xed\x96\x67\xb7\x84\xe5\x9b\x68\x7c\x8f\x48\x70\x77\xc2\x45\x8d\x6d\xb7\x26\xcb\xf0\x09\xc3\x3c\x92\x57\x6f\x35\xa1\x49\xa7\xaa\x11\xf2\x9c\xca\xd5\x79\x67\xfc\x3e\xc9\xcd\xa6\x5a\xe3\x0b\xa1\x75\xbf\x3e\x40\x5a\x30\x3c\xae\xed\x44\x0e\xd2\x1a\x99\x73\x5c\x4f\xe5\x24\xf8\x42\x39\x71\x47\x3d\xb4\x8f\xa5\x05\xf4\x4a\x4d\x13\x56\xb8\x2a\x90\xc7\xf5\x81\x73\x2f\xeb\x08\x9c\x0e\x83\x01\xff\xc5\x4d\x32\x07\x57\x14\x47\xc4\xf7\x5d\x96\xb0\xba\x58\x87\xa5\x58\xda\x9a\x2f\xf2\x72\x6f\xa8\x74\x8c\x21\x79\x27\x61\x93\x69\x5b\xf0\x36\x58\x97\x8b\xda\xa7\x4b\x4c\x02\xfb\xf0\x0c\x1a\x5a\x9e\xca\x00\x9e\x7a\x3b\xfd\x5d\x48\x88\x1c\xec\xb7\x43\xe5\xb6\x5b\x0c\x0b\x1e\x02\x4b\x80\x04\x48\x53\x26\x5a\xc0\xee\x2f\xd9\x2d\xde\xbb\xd5\x9c\x4d\x4c\xb3\xa0\x9d\x83\xf9\xdf\xc5\xc2\x74\x11\x1e\xc8\xca\xab\x4c\xbc\x65\x51\x8e\xf6\xa8\xe2\xe0\xf1\x49\x93\xc1\x7a\xf6\x6d\x7d\xd5\xd3\x06\x43\xb2\x39\x1b\x72\x89\x75\xf3\x88\x6b\xb0\xc6\x40\x65\xc8\x7e\xec\x0c\x28\x69\x6a\x07\xd1\xc3\x04\x16\xb7\x90\x1d\xcd\x4f\x94\x13\x9c\x91\x7d\xc9\x86\xff\x15\xf1\x36\x4b\x22\x7c\xf5\x94\xba\x63\xe2\x83\x62\xe5\x21\x17\xa5\x46\x9f\xc1\x5d\xed\xb4\x5c\x7e\x12\x4b\x58\xb0\x14\xe2\xc4\x98\x93\x3e\xc3\x62\xab\x60\xc7\x58\xdb\xc1\x5c\xc7\xb1\x7b\x36\xfd\x92\x65\xf9\xd5\x85\x7f\xdb\xa2\xed\xb3\x6a\x35\x5c\x52\xf5\x3d\x09\xf0\x3e\x47\x4c\xa4\x5a\x06\xf9\x99\x5d\x1f\x10\xb0\xbe\x32\x33\xeb\x83\x1b\x04\x72\x00\xd3\x54\x72\xb2\x13\x7b\xc2\xfb\x77\xb8\x19\xda\xf9\xa8\xe9\xb8\x53\xd9\x52\x93\x19\x93\xf9\x2c\x62\x09\xa3\x58\x7a\xd8\x12\x98\x9d\x85\x7a\xae\x67\xaa\x7e\x87\x27\x5f\xc3\x4b\xe4\xb3\xb7\x8b\x47\x5c\x32\x00\xe3\x5f\x04\x53\xbc\xdd\x00\xd8\xd7\x18\xa5\x28\x6c\xb4\x7d\xee\x49\xd9\x0a\xfe\xd7\xf4\xfe\x42\x49\x6b\xa3\x3c\xf1\x3d\x6f\x17\xc1\x05\xed\xdb\x25\xc8\x76\xd6\xf5\x2a\x21\xcf\x09\x8d\x42\xd9\xbf\xc7\x2f\x05\x35\x28\x1f\x6c\x02\x21\x03\x45\x5d\xcb\x87\xfc\xd5\x05\xd7\x71\x4e\x79\x41\x7c\x9f\xcd\x32\x20\x8e\x38\x8c\x9d\x50\xe5\x61\xf2\x31\xa0\x9c\xc7\x31\x49\xf2\xec\x24\x8b\xd1\xfc\x88\x5f\x3e\x10\x59\x65\x9b\x1a\x4a\xc9\x78\xbb\x5c\x81\xb0\x93\xda\x5b\x9d\xc2\x93\x09\x6b\xa9\xfd\xbe\xc0\x05\x02\x19\x2e\x4f\xae\x10\xaf\xd3\x60\x5c\x2c\x02\x0a\x62\x8a\x05\x5d\x56\x59\xc3\xef\xfb\x76\x44\x68\x34\xa8\xe8\x4e\xdf\x52\x39\xc9\xea\x6c\xb6\xcb\x85\xae\xf6\x4b\x68\xbc\x7e\x2f\x96\x85\x6f\x65\xe9\x76\xba\x1b\xd5\x25\xc1\x96\x5e\xc7\xa2\xd9\x54\xcc\x99\xfb\xa8\xfa\x13\xd3\x29\x22\x7f\x7f\x93\x21\x68\x9c\x63\x1a\x12\xdc\xb0\xac\x99\x48\x7b\xfe\x47\x25\xe9\xb7\xd0\x1e\x84\x81\x02\x49\x43\xcc\x35\xf7\xa0\xe8\x7a\x21\x42\xa9\x22\x9d\x35\x3b\x41\x28\x89\x7a\x9b\x3b\xc4\xa4\xeb\xc8\x2d\xde\x1c\xbf\x76\x16\xdc\x65\x44\xe0\x5d\xb9\x08\x20\x3e\xc5\x68\xb9\xf4\x88\x93\xa0\xfc\x9a\x1a\x77\xcb\x73\x40\xaf\xe9\x77\xb5\x1f\x3a\x4a\x1e\x55\x5a\xb8\x11\xb9\x72\x39\x96\xed\x60\xb7\x01\x84\xc5\x38\xcb\xde\xd3\x27\xfa\xda\x7d\x9a\xc2\x05\xb3\x29\x58\xcf\xce\xeb\x3c\xee\x19\x2d\xa0\x3e\xfd\x31\x47\x6c\x88\xdf\xd0\x58\x12\xdf\x72\xc9\x77\xd1\x7f\x44\xae\x5d\x69\x6f\x33\x61\x85\xd2\xd9\x07\x79\x74\x7d\x6d\x91\x34\x7d\xa9\x6b\x40\xff\xbd\x32\x3f\x16\x02\x2e\xa6\x3a\x74\x40\x77\x89\x3f\x6e\x16\x99\x1d\x65\x84\x9d\x65\xcb\xcd\xc1\x0f\x83\xdb\x70\x81\x09\x35\xcb\xa0\x4e\xde\x08\xf7\x4a\x72\x61\xa2\x86\x13\x0e\x14\x71\x84\xc0\xf1\x28\x27\xd7\x4f\xc6\xc8\xdb\x93\x54\xfe\x3c\xa3\xe0\x44\x0a\x06\xe3\x2b\x15\x66\x23\xb3\x58\x7c\x7b\x23\x87\x29\x54\xfa\xa2\x7e\xb7\x18\x82\xbf\x94\x5f\x03\x5b\x72\x12\xdf\x25\x23\xa7\xe8\xc5\xac\x16\x58\xbf\xa6\xa4\x60\xad\x97\x39\x77\xdc\x59\x28\x38\x71\xb6\xde\x43\xe4\x92\xf8\xd4\x76\xbf\x34\x0f\x7f\x6a\x92\xa3\x8d\xc4\xab\x15\xbd\xd3\xe0\xff\x15\x95\x9c\x7c\x49\xda\x65\x81\x0e\x60\x06\x0c\xce\xfe\xfd\x93\x1c\xe9\xe5\x42\x4c\xb6\xfa\xa2\x7e\x2e\x26\xb3\xa2\x3f\x52\xb9\xca\x19\xae\x15\xba\x0b\xfe\x5e\x47\xb5\xa7\x00\x40\x2d\xed\xa7\xf5\x33\x78\x97\xdc\x23\xfe\xe1\x1c\x62\x38\x3a\x3f\xbd\x1f\x28\xae\x2a\xc4\xcc\xed\xfc\x92\x64\x18\xd0\xdb\x7d\x6e\x22\x83\x31\xac\x7a\x8d\xf3\x11\x93\xee\x68\xbc\xcc\xb0\x4a\xa7\xfd\xd4\x8c\x9e\xa7\x4e\xa5\xa8\xb0\xce\x94\xe7\xa3\x1c\x3d\xc5\x96\xfd\x10\xd3\x03\x80\x28\x0e\x61\xbd\x2c\x11\x62\x5e\xa9\xf1\xad\xa2\xe0\x31\xeb\x80\x7d\x57\xb3\x6a\x17\xf3\xbc\x74\x88\x81\xa5\x6a\x98\x77\xe3\x58\x38\x8f\x2d\x49\x3c\x61\x94\x3c\x79\xc8\x87\x9a\xd7\x4e\x51\x5c\x9b\x38\xb1\x0f\x6b\xf4\xc0\xbb\xe1\x29\xfa\x8f\xcf\x2c\x2a\x82\xe9\x13\xec\xe2\xd3\x3a\x33\xa5\xc7\xa5\x81\xe7\x57\x14\x20\xf1\x4f\x21\x05\xd3\x76\xab\xa2\xaa\x5c\x5f\x58\x10\xd7\xe3\x4e\x78\xab\xe7\x68\x65\x54\x07\x19\xd2\x63\x4b\x38\x4f\xbb\x84\x0c\x05\xec\x3b\xc2\xe5\x3a\xf1\x30\x56\x14\x16\x80\xab\xa6\x7a\xdb\xe6\xe8\x88\x8b\x2d\x88\x95\x9e\xb9\xe9\xa5\x6f\x98\x55\x2b\xd0\x83\x23\x0a\xf6\xae\xfb\xd8\x35\xad\xf9\xf5\x0f\x0d\xaa\xe9\x81\x4c\x67\x02\xf7\xd0\xb1\xe9\xca\xde\x35\xa3\x53\x6d\x62\x7d\x92\xa3\x01\x17\x72\x77\x91\x00\x45\xd0\xff\x08\x6e\xd8\x4e\x61\xc4\x2c\x82\x3f\xdd\x8b\x7e\xf1\x69\x1d\x44\x64\x5b\x40\xca\x57\xa1\xcc\xc0\x13\xda\x6a\x24\xcb\xd4\x32\x57\xbf\xc0\xbf\x69\x6c\x7a\x60\xbb\x6d\xd6\x77\xb3\xa7\xc2\xf3\x78\xb3\xa9\x63\xab\xbb\x27\x15\xc9\xb7\xb5\x7f\xb7\x95\x9a\xe9\x70\xc1\xbe\xd9\x3a\xd0\x7e\x05\x07\xae\xc8\xee\x94\xfc\xa0\x97\xa4\xd0\x66\x93\x97\x2a\x4b\xcf\xf3\x68\xbd\x4b\x34\xe1\x30\x9c\xa8\xc8\x47\x07\x5a\xf2\xeb\x5d\xba\x14\x44\x13\x21\x19\x78\x81\xad\x53\x5f\x78\x92\x93\x52\x61\xf2\xfb\x94\xe1\x73\x94\x31\x63\x27\xb5\xb6\xa0\xc7\x77\x8d\x4f\x8e\xe2\xa5\x39\xee\x3b\x4c\xd3\x9b\x53\xf3\x71\x61\x4e\x71\xd9\xe0\x53\x83\x20\x44\x59\x0c\x0c\xad\x40\x19\xfe\x55\xe8\x48\x9e\x9a\xba\x62\x04\x90\xa8\xea\xb8\xac\x8b\x06\x92\x84\x18\x5b\xd7\xb8\x19\xfe\x01\x83\xba\x8b\xb7\x38\x2e\x19\xf9\x5f\x3f\x60\x7d\x87\xf6\x71\x8d\x86\x89\xd0\x39\x4d\x5e\x88\xe1\x4e\x2c\x8d\xea\xfb\x59\x0d\x4c\x1f\xb1\xbd\x76\x08\xaf\x6e\x4a\x2b\xaa\x2a\x0c\x27\x04\x4f\x00\xb5\xdf\x03\x4b\x13\x1d\xa8\x68\x8a\x25\x0c\x08", 4096); *(uint64_t*)0x200213c8 = 0x20021300; *(uint32_t*)0x20021300 = r[0]; *(uint32_t*)0x20021304 = r[0]; *(uint32_t*)0x20021308 = r[1]; *(uint32_t*)0x2002130c = r[0]; *(uint32_t*)0x20021310 = r[1]; *(uint32_t*)0x20021314 = r[1]; *(uint64_t*)0x200213d0 = 0x20021340; *(uint64_t*)0x200213d8 = 0x20021380; *(uint32_t*)0x200213e0 = 0x1000; *(uint32_t*)0x200213e4 = 6; *(uint32_t*)0x200213e8 = 0x3d; *(uint32_t*)0x200213ec = 3; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200213c0, /*actual_bytes=*/0x20021400, /*actual_handles=*/0x20021440); if (res == ZX_OK) { r[4] = *(uint32_t*)0x20021380; r[5] = *(uint32_t*)0x20021384; r[6] = *(uint32_t*)0x20021388; } break; case 4: *(uint64_t*)0x20031540 = 0x20021480; *(uint32_t*)0x20021480 = 0; memset((void*)0x20021484, 0, 3); *(uint8_t*)0x20021487 = 1; *(uint64_t*)0x20021488 = 0x66c69d1b00000000; *(uint32_t*)0x20021490 = 2; *(uint32_t*)0x20021494 = 2; *(uint64_t*)0x20021498 = 9; *(uint64_t*)0x200214a0 = -1; *(uint64_t*)0x200214a8 = 2; memset((void*)0x200214b0, 0, 1); *(uint64_t*)0x20031548 = 0x200214c0; *(uint64_t*)0x20031550 = 0x20021500; *(uint64_t*)0x20031558 = 0x20031500; *(uint32_t*)0x20031560 = 0x38; *(uint32_t*)0x20031564 = 0; *(uint32_t*)0x20031568 = 0x10000; *(uint32_t*)0x2003156c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[5], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20031540, /*actual_bytes=*/0x20031580, /*actual_handles=*/0x200315c0); break; case 5: *(uint64_t*)0x200416c0 = 0x20031600; *(uint32_t*)0x20031600 = 0; memset((void*)0x20031604, 0, 3); *(uint8_t*)0x20031607 = 1; *(uint64_t*)0x20031608 = 0x4fcfbc1100000000; *(uint32_t*)0x20031610 = 0; *(uint32_t*)0x20031614 = 1; *(uint64_t*)0x20031618 = 0xc1; *(uint64_t*)0x20031620 = -1; memcpy((void*)0x20031628, "*[#,)&,-[)}", 11); *(uint64_t*)0x200416c8 = 0x20031640; *(uint32_t*)0x20031640 = 0; *(uint32_t*)0x20031644 = r[5]; *(uint64_t*)0x200416d0 = 0x20031680; *(uint64_t*)0x200416d8 = 0x20041680; *(uint32_t*)0x200416e0 = 0x38; *(uint32_t*)0x200416e4 = 2; *(uint32_t*)0x200416e8 = 0x10000; *(uint32_t*)0x200416ec = 4; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200416c0, /*actual_bytes=*/0x20041700, /*actual_handles=*/0x20041740); if (res == ZX_OK) r[7] = *(uint32_t*)0x2004168c; break; case 6: res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/0x104d); if (res == ZX_OK) r[8] = res; break; case 7: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t))CAST(zx_channel_create))(/*options=*/0, /*out0=*/0x20041880, /*out1=*/0x200418c0); if (res == ZX_OK) r[9] = *(uint32_t*)0x20041880; break; case 8: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t))CAST(zx_exception_get_thread))(/*handle=*/r[5], /*out=*/0x20041900); if (res == ZX_OK) r[10] = *(uint32_t*)0x20041900; break; case 9: *(uint64_t*)0x20041bc0 = 0x20041780; memcpy((void*)0x20041780, "\xfa\x2f\x40\x69\xc5\xf5\x4d\x24\x79\xf8\x4d\x1d\x73\x3a\x52\xf5\x9f\x0a\x68\x70\x94\x66\xe6\x63\x3a\x63\x18\xf6\x05\x7f\xbf\xc9\xf0\x48\xb0\x9b\xfb\xb6\x39\x05\xdc\x82\x47\x45\xb1\x62\x47\xee\x57\x0e\x79\xaf\x77\xfd\xe7\x3b\xe0\x86\x53\x56\x84\x1b\x89\x97\xc5\x5e\x4c\x9b\x79\x2e\x2c\xd8\xc5\xac\x57\x89\x60\xab\x6b\x2d\x80\x4c\xd8\x9e\xb8\xf0\xde\x21\x51\xa1\x69\x3b\x64\x98\xd6\x1a\xbe\xdb\xd5\xdb\x7c\xae\x8b\x09\xf9\x4c\x6d\x94\x2c\xb3\x10\x51\x52\x49\x61\xcc\x82\xc4\x94\x0a\xf1\xab\x9c\xee\xba\x52\x71\x6e\xb2\x5b\x87\x0e\xaf\xbb\x41\xd9\xa1\x56\x2e\x96\x70\xdf\x00\x38\x4a\xa9\x55\x4b\x70\xf9\xa1\x66\x83\x41\x50\xf2\xe3\x72\x15\xe4\x13\xba\x12\x38\xa1\x81\xd4\xf7\x43\x58\x43\xb6\xbb\x56\xfa\x88\x61\xd8\x68\x80\x01\xd3\x9d\x9e\x2b\x18\x9f\x67\xe8\x05\x33\x11\x89\x64\x29\x97\x63\xf5\x86\x82\x8c\x69\x3c\xc9\x71\x2a\x9c\x25\x52\xdc\x30\xe5\x72\x25\x21\x2f\x5a\x50\xef\xe5\x6d\xa9\x9a\x32\x82\x4c\x4c", 227); *(uint64_t*)0x20041bc8 = 0x20041a80; *(uint32_t*)0x20041a80 = r[9]; *(uint32_t*)0x20041a84 = r[10]; *(uint32_t*)0x20041a88 = 0; *(uint32_t*)0x20041a8c = r[1]; *(uint32_t*)0x20041a90 = r[6]; *(uint32_t*)0x20041a94 = r[0]; *(uint32_t*)0x20041a98 = r[4]; *(uint32_t*)0x20041a9c = 0; *(uint32_t*)0x20041aa0 = 0; *(uint64_t*)0x20041bd0 = 0x20041ac0; *(uint64_t*)0x20041bd8 = 0x20041b80; *(uint32_t*)0x20041be0 = 0xe3; *(uint32_t*)0x20041be4 = 9; *(uint32_t*)0x20041be8 = 0x9a; *(uint32_t*)0x20041bec = 8; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); break; case 10: memcpy((void*)0x20000000, "\xc4\xe1\xd9\xd2\x9e\x91\x00\x00\x00\xc4\x81\x71\xfd\x84\x48\x00\x00\x00\x20\xc4\xa1\x7f\x70\x44\xba\x34\x0e\xf3\x0f\xae\xd6\xc4\x62\x79\xa7\x5d\x03\xc4\xc2\xfd\x96\x42\xa7\x2e\x66\x43\x0f\x38\xf5\x59\x00\x42\x0f\x34\xc4\xe1\x78\x2b\x42\xc0\xc4\x42\x65\x92\x24\x2c", 66); syz_execute_func(/*text=*/0x20000000); break; case 11: syz_future_time(/*when=*/1); break; case 12: syz_job_default(); break; case 13: syz_mmap(/*addr=*/0x20ffe000, /*len=*/0x1000); break; case 14: syz_process_self(); break; case 15: syz_thread_self(); break; case 16: syz_vmar_root_self(); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :433:75: error: use of undeclared identifier 'zx_channel_call_etc' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor2535903282 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/7 (0.42s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:0 Slowdown:1 Sandbox: SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:false Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(0x0, 0x0, 0x0, &(0x7f00000100c0)={&(0x7f0000000000)={{}, {0xffffffff, 0x0, {0x4, 0xffffffffffffffff}}}, &(0x7f0000000040), &(0x7f0000000080), &(0x7f0000010080)={{0x0, 0x0, 0x0, 0x0}}, 0x28, 0x2, 0x10000, 0x4}, &(0x7f0000010100), &(0x7f0000010140)) (fail_nth: 1) r3 = zx_deadline_after(0x5) (async) zx_channel_call$fuchsia_io_DirectoryAdminLink(r2, 0x0, r3, &(0x7f0000020240)={&(0x7f0000010180)={{}, {0x3, 0xffffffffffffffff}, 0xffffffff, {0x1b3}}, &(0x7f00000101c0), &(0x7f0000010200), &(0x7f0000020200), 0x34, 0x1, 0x10000}, &(0x7f0000020280), &(0x7f00000202c0)) (rerun: 4) zx_channel_call(r2, 0x0, r3, &(0x7f00000213c0)={&(0x7f0000020300)="6b3c1256279544bb32d36243afcbfda5cd1a1759ba09b008c97e2be49ab10adda6d88f529de7b04ad9b0fdd96d3184196e8e6975312bf6a2c53df14551fa4b32627dd679eef9c59f190ca4036814372cf510d02917535f1f02da97f6d1601f3e89e10a621b4e82ba76d41a2f87249736cd35a2432bf368daf43f60387c27f9177614c2f4d4fd31ddd5e08d63429d663ee14a1932bf8f4df70369f3c2a75197422ed0022be80fd87b79db2a43499a48bdcd91246573303a4508e17cf020c64c577b8bb0926c4bde1560a77446497e5bafec8429a311719384f637c4a008c3ddd62610dbb1d4c2dd8f1bd73e7f3657fcf24dbb896a145b28f34098f9d40199c5b72003c4e08eab96aec066bf2d97c2661f4cd91c59cd4f9e4f5617cfd6ada6e04953cc4c7be1c3f10de31e155dd174e99f4136cae08e308b3c22b5d1dd66b379703429b4d5dfa60ec7d1aa50043c92c1a949b3d940f604d1f44ebdd3c3e4ab647c7e66f1211eec2712e0e4b70cb1a2c1c6c3b4e29a1042834acc26e99b38f6075bbea108bf124c3b1cc4275227bd0167110d69972d46b2dbd6b18314d2ea664ac2f4e4490ab3223eb08178f92e0c17bf861894997cd092fe07c06c5e0db444085a138c638d6eb7889a1996340ea460991f75cd1aba0bcae8f9779587f6df761f75373199146daba4848ac8a2a9b099ae5a54ed617ecb56326627016ea3d6d077f90474dbf037689bd7724a1cef3626e6e196748c050f91c662fda495b67e5aa3b016dc3bccb2d7a9733eca7c7bdd8847540d273b9c8c29335ebdd7715ee4f57dfe5c6a0f3d584398c0ea55375bd2c31b6c74e9f4eeb859c8977063125cdf72532de65c0a00d53bc003c8b101838ee151319695c0ac2acef5f1910bc952bebc7f689f52067f81c18c5dfac90057cdbd0f75e928163aeb09ef0159b66da4210834ca8ee3e285270b51f5e256867ce622923fd3c40e615e1342418a196fcb8e2b56486722f7b5ca524c75dbdb9be6314b7ad590b5cf8f80d7927dda79ceb1369d780f3338c1efb83ca7bdda05f8ca9445b500c0506359a4baa2a8ee7e8b4afb48dbdc2a56194a8da4d1ac425245b83e1e8e448a29da4e2071aea3b8ef3a3cb5827e616d4707f851eea6260972eade34da0a8f34407f4d3e455ba0aa026a853ebb5e6d64e9d8105e69b84e36fb57a8b6e0e7cbb9e5d524988036d958e32a38f5977b3c7038c983994f0888fe3091aa1f45919f0602b5d750738b171b9787af296f2ba5fee311a16f1cdcd810a6689ac7a75bc19e693395b00cfdaf13cca6670a472d449e9efef6e0f9d1c1abaabaaa37e2b27d7d6723d98af800a0b2b5196b284a9e11a5c5e62c4d862522254225216d4ff21afd49bd07f74e9d189bc576d3dd39a739779875e2dcbcf356a52ca08cb29eae8579ca6608a194135941eed7e330de08a9e5095b177ce26b2321e7ac9862bacef371c4d2e9dc8bab9118a15ff9fc4679a1d0eeb64806a80cc739edfddf9d4fa2f42f870212c23ae81ebc9168c955535041c1ce54edf8e3cae6684dab1b1eed16b25bc667a36691d0e050a49f2d782ed9ec3f94d50c8d3358a82375d3605fdb7912b1fc3ed9155fb1052c93e61005c2f6a87c42cf68aff9e6c9e19813653770c439cc397f9ecba27a99b082054d8f44a5b82baea68bd849cde7044a27792a26b3a12d938cb650a8914124be069a1d8a0f98d98768f9144afcc851b338a84d797c35a7657111fa4278b62eee95e3ddedb8916d03c93ec884ac97e29b1d4490ecae90628ed261ebcbbd4d0c12d1c295e6683d685c508d14f289f5b0c86bbd05c31edb6ef46aba2abe24f53c90b33ac3b8033616687a9d3b2900876cb4879145771c0957a07d371f9826e641089e347c155fd62cf176bb4f6af7c223b45cfd0e0a5410922527f9a89a8bb864f497a763fac941097410f448373d1232955cdd4c067364151ae3f57e3bd611975eb189e3de3de659b8f58fc7bc86bb7717711aea0f512ae8fb8f0dad0b9a91cb4b1d512095de2923a54add0883f1b194082abb2d77105e9d00d23e0c0e2226cb2f831d10a66223d9f717260558318f72b66926e0ae2a169b8f5fb86d9f611760d9626218791f7a18b807e12dd61b895d96885c8a39ae56faa0987a4bc634bf638902288cbe304d2e6085b35bbd8c69f7c7bc08a54764e5a58c36da8514923cabca339408a4d4c4a05520b84150e1493861b1208ab6d2007fd47071ecd8419c4de38764caecb093a2cc8259f413efcb13e19451d22b9bd8a192f9184f62c438b1fa988cdc16b43a19ed3ca3dc13bdada0118cf96132ee3a06db5eec80f4c956b3928f5923c5a74352cc62ea9e8a0310ff953d4fd886d26d6e5ccbb8c9afda424ce0e0c66e3b5112f93de988f178f103de77663c3f37483aef8a49b06ed86442553336a2ea076350f3730d607164b7459b9e90e3f98ab8132018d02c86b65d5e2358c66ee8d657a6586af70eb2536942b0733f99d3dcb2ebb49857d384a870cb0b62e318a130f1d905a12c71c319ad380a8b022d4e3f5f5ee1bb17d55becffb128fd61d993b5e03d6d0d864b2481dde4f0e472800e84d97b2a12661bfbb9070f37cd458f0d43474003491239f6987024386a281851797d1322752e6e24b160fcdde4a429383a690435f1200d0ad95874011db89d4ffaf2232e84a767620009fa3e534c50b2656805a380799a16817b350a3b23d4d03fcfffe4cf048283c47144189dc9b965375cff5ee4171a23c172fef7a8ddefd1c24be338203691227c3056f7761eca36087851aeff7f91e8aceb96d7b21082a95d6b796ad7688b9c48754fa34d2873c1377012cc16a798e80c71d5759572b17e3a013fa2e878a5194ce5358ecec5602fb206d590ff765f57755904d4361e118fb18f8fdad8df387fe63f79678ea913d3b1633955f8e11c2d8d7c716791234188bdcb7bccccc6f3eb85993ebe53478bf92dfff23331f394f2164264a6c029d0c8bb9a41e09cc35eff2a58d4ad3b92b4d682c7ac73a728892bb11b57c39aed49709c200e916bcba5229d16043e34b1c04223be93784e3de8b74349425cf073d7068565e7d914f26573581dc919919feec181d371cc6629f895728f8526acef9ce50110fd9257fc677de7fa23f98f35ba0686fc65d074c412a5e02ad067836f80fc24437e2d0decff85b1029e28660b344851a0be45cdc10716a05974e5e09d00f994a4de6e97cf7148c34ebeb5565be0eccf4dfa7c8b70691d0a4fc4adf40a049777ecf560daafe437bbb8af380ad90819f3018202e738519d372bdb17f771a29d8bc58451262567d38beb9fc92e000c18df6324e6c4da794754c849b2fded1b67ac18b48a8b05773d62e24ec78ad9cb00b9959fe20c0d8778ad636260af68e1f336e0a9678b7c84752a624355257380fe51d98e1c17b6f026ff8206e9b1b4c0451c9ee8a5de6a38a2bf52810fa17f811a4dc56931ec4de8fee47c553441aaf1683f94f5e6fad54eaaf66e6d6acbd627d64e0545efb2650741d65bfb41b12d84b5f8a92ae978db2612aeda6823b3d422e56429e7fea6a7028001e70cda4c3bdc741750858e4a4f44cb87e47112ae9a0338569402c386b1f232bac1456793462da338b3851bb31d93e64d61473bcbbf400d0fc99bf5e06b989122518f61498d8265846c6b596b73d49a1386cf28406b33d90e9d919af9bf0e74456061343ce07f46191f050c5f69f4c62d895617775e1cce6e82a9b300ea5ced9667b784e59b687c8f487077c2458d6db726cbf009c33c92576f35a149a7aa11f29ccad57967fc3ec9cda65ae30ba175bf3e405a303caeed440ed21a99735c4fe524f8423971473db48fa505f44a4d1356b82a90c7f581732feb089c0e8301ffc54d3207571447c4f75d96b0ba5887a558da9a2ff2726fa8748c2179276193695bf03658978bdaa74b4c02fbf00c1a5a9eca009e7a3bfd5d48881cecb743e5b65b0c0b1e024b80044853265ac0ee2fd92ddebbd59c4d4cb3a09d83f9dfc5c274111ec8caab4cbc65518ef6a8e2e0f14993c17af66d7dd5d30643b2391b728975f3886bb0c64065c87eec0c28696a07d1c30416b7901dcd4f94139c917dc986ff15f1364b227cf594ba63e28362e52117a5469fc15dedb45c7e124b58b014e2c498933ec362ab60c758dbc15cc7b17b36fd9265f9d5857fdba2edb36a355c52f53d09f03e474ca45a06f9995d1f10b0be3233eb831b047200d35472b2137bc2fb77b819daf9a8e9b853d952931993f92c6209a3587ad812989d857aae67aa7e87275fc34be4b3b78b475c3200e35f0453bcdd00d8d718a5286cb47dee49d90afed7f4fe42496ba33cf13d6f17c105eddb25c876d6f52a21cf098d42d9bfc72f0535281f6c022103455dcb87fcd505d7714e79417c9fcd32208e388c9d50e561f231a09cc73149f2ec248bd1fc885f3e1059659b1a4ac978bb5c81b093da5b9dc293096ba9fdbec00502192e4fae10afd3605c2c020a628a055d5659c3effb76446834a8e84edf5239c9ea6cb6cb85aef64b68bc7e2f96856f65e976ba1bd525c1965ec7a2d954cc99fba8fa13d329227f7f9321689c631a12dcb0ac99487bfe4725e9b7d01e8481024943cc35f7a0e87a2142a9229d353b4128897a9b3bc4a4ebc82dde1cbf7616dc6544e05db908203ec568b9f48893a0fc9a1a77cb7340afe977b51f3a4a1e555ab811b9723996ed60b70184c538cbded327fada7d9ac205b32958cfceeb3cee192da03efd31476c88dfd05812df72c977d17f44ae5d696f336185d2d90779747d6d91347da96b40ffbd323f16022ea63a744077893f6e16991d65849d65cbcdc10f83db70810935cba04ede08f74a7261a286130e147184c0f12827d74fc6c8db9354fe3ca3e0440a06e32b156623b3587c7b23872954faa27eb71882bf945f035b7212df2523a7e8c5ac1658bfa6a460ad973977dc59283871b6de43e492f8d476bf340f7f6a92a38dc4ab15bdd3e0ff15959c7c49da65810e60060ccefefd931ce9e5424cb6faa27e2e26b3a23f52b9ca19ae15ba0bfe5e47b5a700402deda7f5337897dc23fee11c62383a3fbd1f28ae2ac4ccedfc926418d0db7d6e228331ac7a8df31193ee68bcccb04aa7fdd48c9ea74ea5a8b0ce94e7a31c3dc596fd10d30380280e61bd2c11625ea9f1ada2e031eb807d57b36a17f3bc748881a56a9877e358388f2d493c61943c79c8879ad74e515c9b38b10f6bf4c0bbe129fa8fcf2c2a82e913ece2d33a33a5c7a581e7571420f14f2105d376aba2aa5c5f5810d7e34e78abe76865540719d2634b384fbb840c05ec3bc2e53af13056141680aba67adbe6e8888b2d88959eb9e9a56f98552bd083230af6aefbd835adf9f50f0daae9814c6702f7d0b1e9cade35a3536d627d92a301177277910045d0ff086ed84e61c42c823fdd8b7ef1691d44645b40ca57a1ccc013da6a24cbd43257bfc0bf696c7a60bb6dd677b3a7c2f378b3a963abbb2715c9b7b57fb7959ae970c1bed93ad07e0507aec8ee94fca097a4d06693972a4bcff368bd4b34e1309ca8c847075af2eb5dba14441321197881ad535f7892935261f2fb94e17394316327b5b6a0c7778d4f8ee2a539ee3b4cd39b53f371614e71d9e053832044590c0cad4019fe55e8489e9aba620490a8eab8ac8b069284185bd7b819fe0183ba8bb7382e19f95f3f607d87f6718d8689d0394d5e88e14e2c8deafb590d4c1fb1bd7608af6e4a2baa2a0c27044f00b5df034b131da8688a250c08", &(0x7f0000021300)=[r0, r0, r1, r0, r1, r1], &(0x7f0000021340)=""/61, &(0x7f0000021380)=[0x0, 0x0, 0x0], 0x1000, 0x6, 0x3d, 0x3}, &(0x7f0000021400), &(0x7f0000021440)) zx_channel_call$fuchsia_cobalt_LoggerLogMemoryUsage(r5, 0x0, r3, &(0x7f0000031540)={&(0x7f0000021480)={{}, 0x2, 0x2, {0x9, 0xffffffffffffffff}, 0x2, {'\x00'}}, &(0x7f00000214c0), &(0x7f0000021500), &(0x7f0000031500), 0x38, 0x0, 0x10000}, &(0x7f0000031580), &(0x7f00000315c0)) zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(r2, 0x0, r3, &(0x7f00000416c0)={&(0x7f0000031600)={{}, {0x0, 0x100000001, {0xc1, 0xffffffffffffffff}}, {{'*[#,)&,-[)}'}}}, &(0x7f0000031640)={{0x0, r5}}, &(0x7f0000031680), &(0x7f0000041680)={{0x0, 0x0, 0x0, 0x0}}, 0x38, 0x2, 0x10000, 0x4}, &(0x7f0000041700), &(0x7f0000041740)) r8 = zx_deadline_after(0x104d) zx_channel_create(0x0, &(0x7f0000041880)=0x0, &(0x7f00000418c0)) zx_exception_get_thread(r5, &(0x7f0000041900)=0x0) zx_channel_call_etc(r7, 0x7, r8, &(0x7f0000041bc0)={&(0x7f0000041780)="fa2f4069c5f54d2479f84d1d733a52f59f0a68709466e6633a6318f6057fbfc9f048b09bfbb63905dc824745b16247ee570e79af77fde73be0865356841b8997c55e4c9b792e2cd8c5ac578960ab6b2d804cd89eb8f0de2151a1693b6498d61abedbd5db7cae8b09f94c6d942cb31051524961cc82c4940af1ab9ceeba52716eb25b870eafbb41d9a1562e9670df00384aa9554b70f9a166834150f2e37215e413ba1238a181d4f7435843b6bb56fa8861d8688001d39d9e2b189f67e80533118964299763f586828c693cc9712a9c2552dc30e57225212f5a50efe56da99a32824c4c", &(0x7f0000041a80)=[r9, r10, 0x0, r1, r6, r0, r4, 0x0, 0x0], &(0x7f0000041ac0)=""/154, &(0x7f0000041b80)=[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], 0xe3, 0x9, 0x9a, 0x8}, &(0x7f0000041c00), &(0x7f0000041c40)) syz_execute_func(&(0x7f0000000000)="c4e1d9d29e91000000c48171fd844800000020c4a17f7044ba340ef30faed6c46279a75d03c4c2fd9642a72e66430f38f55900420f34c4e1782b42c0c4426592242c") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffe000/0x1000)=nil, 0x1000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 50); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[11] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: *(uint64_t*)0x200100c0 = 0x20000000; *(uint32_t*)0x20000000 = 0; memset((void*)0x20000004, 0, 3); *(uint8_t*)0x20000007 = 1; *(uint64_t*)0x20000008 = 0x4fcfbc1100000000; *(uint32_t*)0x20000010 = -1; *(uint32_t*)0x20000014 = 0; *(uint64_t*)0x20000018 = 4; *(uint64_t*)0x20000020 = -1; *(uint64_t*)0x200100c8 = 0x20000040; *(uint32_t*)0x20000040 = 0; *(uint32_t*)0x20000044 = 0; *(uint64_t*)0x200100d0 = 0x20000080; *(uint64_t*)0x200100d8 = 0x20010080; *(uint32_t*)0x200100e0 = 0x28; *(uint32_t*)0x200100e4 = 2; *(uint32_t*)0x200100e8 = 0x10000; *(uint32_t*)0x200100ec = 4; inject_fault(1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/0, /*args=*/0x200100c0, /*actual_bytes=*/0x20010100, /*actual_handles=*/0x20010140); if (res == ZX_OK) { r[0] = *(uint32_t*)0x20010080; r[1] = *(uint32_t*)0x20010088; r[2] = *(uint32_t*)0x2001008c; } break; case 1: res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/5); if (res == ZX_OK) r[3] = res; break; case 2: *(uint64_t*)0x20020240 = 0x20010180; *(uint32_t*)0x20010180 = 0; memset((void*)0x20010184, 0, 3); *(uint8_t*)0x20010187 = 1; *(uint64_t*)0x20010188 = 0x1b8a5e6400000000; *(uint64_t*)0x20010190 = 3; *(uint64_t*)0x20010198 = -1; *(uint32_t*)0x200101a0 = -1; *(uint64_t*)0x200101a4 = 0x1b3; *(uint64_t*)0x200101ac = 0; *(uint64_t*)0x20020248 = 0x200101c0; *(uint32_t*)0x200101c0 = 0; *(uint64_t*)0x20020250 = 0x20010200; *(uint64_t*)0x20020258 = 0x20020200; *(uint32_t*)0x20020260 = 0x34; *(uint32_t*)0x20020264 = 1; *(uint32_t*)0x20020268 = 0x10000; *(uint32_t*)0x2002026c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); } } break; case 3: *(uint64_t*)0x200213c0 = 0x20020300; memcpy((void*)0x20020300, "\x6b\x3c\x12\x56\x27\x95\x44\xbb\x32\xd3\x62\x43\xaf\xcb\xfd\xa5\xcd\x1a\x17\x59\xba\x09\xb0\x08\xc9\x7e\x2b\xe4\x9a\xb1\x0a\xdd\xa6\xd8\x8f\x52\x9d\xe7\xb0\x4a\xd9\xb0\xfd\xd9\x6d\x31\x84\x19\x6e\x8e\x69\x75\x31\x2b\xf6\xa2\xc5\x3d\xf1\x45\x51\xfa\x4b\x32\x62\x7d\xd6\x79\xee\xf9\xc5\x9f\x19\x0c\xa4\x03\x68\x14\x37\x2c\xf5\x10\xd0\x29\x17\x53\x5f\x1f\x02\xda\x97\xf6\xd1\x60\x1f\x3e\x89\xe1\x0a\x62\x1b\x4e\x82\xba\x76\xd4\x1a\x2f\x87\x24\x97\x36\xcd\x35\xa2\x43\x2b\xf3\x68\xda\xf4\x3f\x60\x38\x7c\x27\xf9\x17\x76\x14\xc2\xf4\xd4\xfd\x31\xdd\xd5\xe0\x8d\x63\x42\x9d\x66\x3e\xe1\x4a\x19\x32\xbf\x8f\x4d\xf7\x03\x69\xf3\xc2\xa7\x51\x97\x42\x2e\xd0\x02\x2b\xe8\x0f\xd8\x7b\x79\xdb\x2a\x43\x49\x9a\x48\xbd\xcd\x91\x24\x65\x73\x30\x3a\x45\x08\xe1\x7c\xf0\x20\xc6\x4c\x57\x7b\x8b\xb0\x92\x6c\x4b\xde\x15\x60\xa7\x74\x46\x49\x7e\x5b\xaf\xec\x84\x29\xa3\x11\x71\x93\x84\xf6\x37\xc4\xa0\x08\xc3\xdd\xd6\x26\x10\xdb\xb1\xd4\xc2\xdd\x8f\x1b\xd7\x3e\x7f\x36\x57\xfc\xf2\x4d\xbb\x89\x6a\x14\x5b\x28\xf3\x40\x98\xf9\xd4\x01\x99\xc5\xb7\x20\x03\xc4\xe0\x8e\xab\x96\xae\xc0\x66\xbf\x2d\x97\xc2\x66\x1f\x4c\xd9\x1c\x59\xcd\x4f\x9e\x4f\x56\x17\xcf\xd6\xad\xa6\xe0\x49\x53\xcc\x4c\x7b\xe1\xc3\xf1\x0d\xe3\x1e\x15\x5d\xd1\x74\xe9\x9f\x41\x36\xca\xe0\x8e\x30\x8b\x3c\x22\xb5\xd1\xdd\x66\xb3\x79\x70\x34\x29\xb4\xd5\xdf\xa6\x0e\xc7\xd1\xaa\x50\x04\x3c\x92\xc1\xa9\x49\xb3\xd9\x40\xf6\x04\xd1\xf4\x4e\xbd\xd3\xc3\xe4\xab\x64\x7c\x7e\x66\xf1\x21\x1e\xec\x27\x12\xe0\xe4\xb7\x0c\xb1\xa2\xc1\xc6\xc3\xb4\xe2\x9a\x10\x42\x83\x4a\xcc\x26\xe9\x9b\x38\xf6\x07\x5b\xbe\xa1\x08\xbf\x12\x4c\x3b\x1c\xc4\x27\x52\x27\xbd\x01\x67\x11\x0d\x69\x97\x2d\x46\xb2\xdb\xd6\xb1\x83\x14\xd2\xea\x66\x4a\xc2\xf4\xe4\x49\x0a\xb3\x22\x3e\xb0\x81\x78\xf9\x2e\x0c\x17\xbf\x86\x18\x94\x99\x7c\xd0\x92\xfe\x07\xc0\x6c\x5e\x0d\xb4\x44\x08\x5a\x13\x8c\x63\x8d\x6e\xb7\x88\x9a\x19\x96\x34\x0e\xa4\x60\x99\x1f\x75\xcd\x1a\xba\x0b\xca\xe8\xf9\x77\x95\x87\xf6\xdf\x76\x1f\x75\x37\x31\x99\x14\x6d\xab\xa4\x84\x8a\xc8\xa2\xa9\xb0\x99\xae\x5a\x54\xed\x61\x7e\xcb\x56\x32\x66\x27\x01\x6e\xa3\xd6\xd0\x77\xf9\x04\x74\xdb\xf0\x37\x68\x9b\xd7\x72\x4a\x1c\xef\x36\x26\xe6\xe1\x96\x74\x8c\x05\x0f\x91\xc6\x62\xfd\xa4\x95\xb6\x7e\x5a\xa3\xb0\x16\xdc\x3b\xcc\xb2\xd7\xa9\x73\x3e\xca\x7c\x7b\xdd\x88\x47\x54\x0d\x27\x3b\x9c\x8c\x29\x33\x5e\xbd\xd7\x71\x5e\xe4\xf5\x7d\xfe\x5c\x6a\x0f\x3d\x58\x43\x98\xc0\xea\x55\x37\x5b\xd2\xc3\x1b\x6c\x74\xe9\xf4\xee\xb8\x59\xc8\x97\x70\x63\x12\x5c\xdf\x72\x53\x2d\xe6\x5c\x0a\x00\xd5\x3b\xc0\x03\xc8\xb1\x01\x83\x8e\xe1\x51\x31\x96\x95\xc0\xac\x2a\xce\xf5\xf1\x91\x0b\xc9\x52\xbe\xbc\x7f\x68\x9f\x52\x06\x7f\x81\xc1\x8c\x5d\xfa\xc9\x00\x57\xcd\xbd\x0f\x75\xe9\x28\x16\x3a\xeb\x09\xef\x01\x59\xb6\x6d\xa4\x21\x08\x34\xca\x8e\xe3\xe2\x85\x27\x0b\x51\xf5\xe2\x56\x86\x7c\xe6\x22\x92\x3f\xd3\xc4\x0e\x61\x5e\x13\x42\x41\x8a\x19\x6f\xcb\x8e\x2b\x56\x48\x67\x22\xf7\xb5\xca\x52\x4c\x75\xdb\xdb\x9b\xe6\x31\x4b\x7a\xd5\x90\xb5\xcf\x8f\x80\xd7\x92\x7d\xda\x79\xce\xb1\x36\x9d\x78\x0f\x33\x38\xc1\xef\xb8\x3c\xa7\xbd\xda\x05\xf8\xca\x94\x45\xb5\x00\xc0\x50\x63\x59\xa4\xba\xa2\xa8\xee\x7e\x8b\x4a\xfb\x48\xdb\xdc\x2a\x56\x19\x4a\x8d\xa4\xd1\xac\x42\x52\x45\xb8\x3e\x1e\x8e\x44\x8a\x29\xda\x4e\x20\x71\xae\xa3\xb8\xef\x3a\x3c\xb5\x82\x7e\x61\x6d\x47\x07\xf8\x51\xee\xa6\x26\x09\x72\xea\xde\x34\xda\x0a\x8f\x34\x40\x7f\x4d\x3e\x45\x5b\xa0\xaa\x02\x6a\x85\x3e\xbb\x5e\x6d\x64\xe9\xd8\x10\x5e\x69\xb8\x4e\x36\xfb\x57\xa8\xb6\xe0\xe7\xcb\xb9\xe5\xd5\x24\x98\x80\x36\xd9\x58\xe3\x2a\x38\xf5\x97\x7b\x3c\x70\x38\xc9\x83\x99\x4f\x08\x88\xfe\x30\x91\xaa\x1f\x45\x91\x9f\x06\x02\xb5\xd7\x50\x73\x8b\x17\x1b\x97\x87\xaf\x29\x6f\x2b\xa5\xfe\xe3\x11\xa1\x6f\x1c\xdc\xd8\x10\xa6\x68\x9a\xc7\xa7\x5b\xc1\x9e\x69\x33\x95\xb0\x0c\xfd\xaf\x13\xcc\xa6\x67\x0a\x47\x2d\x44\x9e\x9e\xfe\xf6\xe0\xf9\xd1\xc1\xab\xaa\xba\xaa\x37\xe2\xb2\x7d\x7d\x67\x23\xd9\x8a\xf8\x00\xa0\xb2\xb5\x19\x6b\x28\x4a\x9e\x11\xa5\xc5\xe6\x2c\x4d\x86\x25\x22\x25\x42\x25\x21\x6d\x4f\xf2\x1a\xfd\x49\xbd\x07\xf7\x4e\x9d\x18\x9b\xc5\x76\xd3\xdd\x39\xa7\x39\x77\x98\x75\xe2\xdc\xbc\xf3\x56\xa5\x2c\xa0\x8c\xb2\x9e\xae\x85\x79\xca\x66\x08\xa1\x94\x13\x59\x41\xee\xd7\xe3\x30\xde\x08\xa9\xe5\x09\x5b\x17\x7c\xe2\x6b\x23\x21\xe7\xac\x98\x62\xba\xce\xf3\x71\xc4\xd2\xe9\xdc\x8b\xab\x91\x18\xa1\x5f\xf9\xfc\x46\x79\xa1\xd0\xee\xb6\x48\x06\xa8\x0c\xc7\x39\xed\xfd\xdf\x9d\x4f\xa2\xf4\x2f\x87\x02\x12\xc2\x3a\xe8\x1e\xbc\x91\x68\xc9\x55\x53\x50\x41\xc1\xce\x54\xed\xf8\xe3\xca\xe6\x68\x4d\xab\x1b\x1e\xed\x16\xb2\x5b\xc6\x67\xa3\x66\x91\xd0\xe0\x50\xa4\x9f\x2d\x78\x2e\xd9\xec\x3f\x94\xd5\x0c\x8d\x33\x58\xa8\x23\x75\xd3\x60\x5f\xdb\x79\x12\xb1\xfc\x3e\xd9\x15\x5f\xb1\x05\x2c\x93\xe6\x10\x05\xc2\xf6\xa8\x7c\x42\xcf\x68\xaf\xf9\xe6\xc9\xe1\x98\x13\x65\x37\x70\xc4\x39\xcc\x39\x7f\x9e\xcb\xa2\x7a\x99\xb0\x82\x05\x4d\x8f\x44\xa5\xb8\x2b\xae\xa6\x8b\xd8\x49\xcd\xe7\x04\x4a\x27\x79\x2a\x26\xb3\xa1\x2d\x93\x8c\xb6\x50\xa8\x91\x41\x24\xbe\x06\x9a\x1d\x8a\x0f\x98\xd9\x87\x68\xf9\x14\x4a\xfc\xc8\x51\xb3\x38\xa8\x4d\x79\x7c\x35\xa7\x65\x71\x11\xfa\x42\x78\xb6\x2e\xee\x95\xe3\xdd\xed\xb8\x91\x6d\x03\xc9\x3e\xc8\x84\xac\x97\xe2\x9b\x1d\x44\x90\xec\xae\x90\x62\x8e\xd2\x61\xeb\xcb\xbd\x4d\x0c\x12\xd1\xc2\x95\xe6\x68\x3d\x68\x5c\x50\x8d\x14\xf2\x89\xf5\xb0\xc8\x6b\xbd\x05\xc3\x1e\xdb\x6e\xf4\x6a\xba\x2a\xbe\x24\xf5\x3c\x90\xb3\x3a\xc3\xb8\x03\x36\x16\x68\x7a\x9d\x3b\x29\x00\x87\x6c\xb4\x87\x91\x45\x77\x1c\x09\x57\xa0\x7d\x37\x1f\x98\x26\xe6\x41\x08\x9e\x34\x7c\x15\x5f\xd6\x2c\xf1\x76\xbb\x4f\x6a\xf7\xc2\x23\xb4\x5c\xfd\x0e\x0a\x54\x10\x92\x25\x27\xf9\xa8\x9a\x8b\xb8\x64\xf4\x97\xa7\x63\xfa\xc9\x41\x09\x74\x10\xf4\x48\x37\x3d\x12\x32\x95\x5c\xdd\x4c\x06\x73\x64\x15\x1a\xe3\xf5\x7e\x3b\xd6\x11\x97\x5e\xb1\x89\xe3\xde\x3d\xe6\x59\xb8\xf5\x8f\xc7\xbc\x86\xbb\x77\x17\x71\x1a\xea\x0f\x51\x2a\xe8\xfb\x8f\x0d\xad\x0b\x9a\x91\xcb\x4b\x1d\x51\x20\x95\xde\x29\x23\xa5\x4a\xdd\x08\x83\xf1\xb1\x94\x08\x2a\xbb\x2d\x77\x10\x5e\x9d\x00\xd2\x3e\x0c\x0e\x22\x26\xcb\x2f\x83\x1d\x10\xa6\x62\x23\xd9\xf7\x17\x26\x05\x58\x31\x8f\x72\xb6\x69\x26\xe0\xae\x2a\x16\x9b\x8f\x5f\xb8\x6d\x9f\x61\x17\x60\xd9\x62\x62\x18\x79\x1f\x7a\x18\xb8\x07\xe1\x2d\xd6\x1b\x89\x5d\x96\x88\x5c\x8a\x39\xae\x56\xfa\xa0\x98\x7a\x4b\xc6\x34\xbf\x63\x89\x02\x28\x8c\xbe\x30\x4d\x2e\x60\x85\xb3\x5b\xbd\x8c\x69\xf7\xc7\xbc\x08\xa5\x47\x64\xe5\xa5\x8c\x36\xda\x85\x14\x92\x3c\xab\xca\x33\x94\x08\xa4\xd4\xc4\xa0\x55\x20\xb8\x41\x50\xe1\x49\x38\x61\xb1\x20\x8a\xb6\xd2\x00\x7f\xd4\x70\x71\xec\xd8\x41\x9c\x4d\xe3\x87\x64\xca\xec\xb0\x93\xa2\xcc\x82\x59\xf4\x13\xef\xcb\x13\xe1\x94\x51\xd2\x2b\x9b\xd8\xa1\x92\xf9\x18\x4f\x62\xc4\x38\xb1\xfa\x98\x8c\xdc\x16\xb4\x3a\x19\xed\x3c\xa3\xdc\x13\xbd\xad\xa0\x11\x8c\xf9\x61\x32\xee\x3a\x06\xdb\x5e\xec\x80\xf4\xc9\x56\xb3\x92\x8f\x59\x23\xc5\xa7\x43\x52\xcc\x62\xea\x9e\x8a\x03\x10\xff\x95\x3d\x4f\xd8\x86\xd2\x6d\x6e\x5c\xcb\xb8\xc9\xaf\xda\x42\x4c\xe0\xe0\xc6\x6e\x3b\x51\x12\xf9\x3d\xe9\x88\xf1\x78\xf1\x03\xde\x77\x66\x3c\x3f\x37\x48\x3a\xef\x8a\x49\xb0\x6e\xd8\x64\x42\x55\x33\x36\xa2\xea\x07\x63\x50\xf3\x73\x0d\x60\x71\x64\xb7\x45\x9b\x9e\x90\xe3\xf9\x8a\xb8\x13\x20\x18\xd0\x2c\x86\xb6\x5d\x5e\x23\x58\xc6\x6e\xe8\xd6\x57\xa6\x58\x6a\xf7\x0e\xb2\x53\x69\x42\xb0\x73\x3f\x99\xd3\xdc\xb2\xeb\xb4\x98\x57\xd3\x84\xa8\x70\xcb\x0b\x62\xe3\x18\xa1\x30\xf1\xd9\x05\xa1\x2c\x71\xc3\x19\xad\x38\x0a\x8b\x02\x2d\x4e\x3f\x5f\x5e\xe1\xbb\x17\xd5\x5b\xec\xff\xb1\x28\xfd\x61\xd9\x93\xb5\xe0\x3d\x6d\x0d\x86\x4b\x24\x81\xdd\xe4\xf0\xe4\x72\x80\x0e\x84\xd9\x7b\x2a\x12\x66\x1b\xfb\xb9\x07\x0f\x37\xcd\x45\x8f\x0d\x43\x47\x40\x03\x49\x12\x39\xf6\x98\x70\x24\x38\x6a\x28\x18\x51\x79\x7d\x13\x22\x75\x2e\x6e\x24\xb1\x60\xfc\xdd\xe4\xa4\x29\x38\x3a\x69\x04\x35\xf1\x20\x0d\x0a\xd9\x58\x74\x01\x1d\xb8\x9d\x4f\xfa\xf2\x23\x2e\x84\xa7\x67\x62\x00\x09\xfa\x3e\x53\x4c\x50\xb2\x65\x68\x05\xa3\x80\x79\x9a\x16\x81\x7b\x35\x0a\x3b\x23\xd4\xd0\x3f\xcf\xff\xe4\xcf\x04\x82\x83\xc4\x71\x44\x18\x9d\xc9\xb9\x65\x37\x5c\xff\x5e\xe4\x17\x1a\x23\xc1\x72\xfe\xf7\xa8\xdd\xef\xd1\xc2\x4b\xe3\x38\x20\x36\x91\x22\x7c\x30\x56\xf7\x76\x1e\xca\x36\x08\x78\x51\xae\xff\x7f\x91\xe8\xac\xeb\x96\xd7\xb2\x10\x82\xa9\x5d\x6b\x79\x6a\xd7\x68\x8b\x9c\x48\x75\x4f\xa3\x4d\x28\x73\xc1\x37\x70\x12\xcc\x16\xa7\x98\xe8\x0c\x71\xd5\x75\x95\x72\xb1\x7e\x3a\x01\x3f\xa2\xe8\x78\xa5\x19\x4c\xe5\x35\x8e\xce\xc5\x60\x2f\xb2\x06\xd5\x90\xff\x76\x5f\x57\x75\x59\x04\xd4\x36\x1e\x11\x8f\xb1\x8f\x8f\xda\xd8\xdf\x38\x7f\xe6\x3f\x79\x67\x8e\xa9\x13\xd3\xb1\x63\x39\x55\xf8\xe1\x1c\x2d\x8d\x7c\x71\x67\x91\x23\x41\x88\xbd\xcb\x7b\xcc\xcc\xc6\xf3\xeb\x85\x99\x3e\xbe\x53\x47\x8b\xf9\x2d\xff\xf2\x33\x31\xf3\x94\xf2\x16\x42\x64\xa6\xc0\x29\xd0\xc8\xbb\x9a\x41\xe0\x9c\xc3\x5e\xff\x2a\x58\xd4\xad\x3b\x92\xb4\xd6\x82\xc7\xac\x73\xa7\x28\x89\x2b\xb1\x1b\x57\xc3\x9a\xed\x49\x70\x9c\x20\x0e\x91\x6b\xcb\xa5\x22\x9d\x16\x04\x3e\x34\xb1\xc0\x42\x23\xbe\x93\x78\x4e\x3d\xe8\xb7\x43\x49\x42\x5c\xf0\x73\xd7\x06\x85\x65\xe7\xd9\x14\xf2\x65\x73\x58\x1d\xc9\x19\x91\x9f\xee\xc1\x81\xd3\x71\xcc\x66\x29\xf8\x95\x72\x8f\x85\x26\xac\xef\x9c\xe5\x01\x10\xfd\x92\x57\xfc\x67\x7d\xe7\xfa\x23\xf9\x8f\x35\xba\x06\x86\xfc\x65\xd0\x74\xc4\x12\xa5\xe0\x2a\xd0\x67\x83\x6f\x80\xfc\x24\x43\x7e\x2d\x0d\xec\xff\x85\xb1\x02\x9e\x28\x66\x0b\x34\x48\x51\xa0\xbe\x45\xcd\xc1\x07\x16\xa0\x59\x74\xe5\xe0\x9d\x00\xf9\x94\xa4\xde\x6e\x97\xcf\x71\x48\xc3\x4e\xbe\xb5\x56\x5b\xe0\xec\xcf\x4d\xfa\x7c\x8b\x70\x69\x1d\x0a\x4f\xc4\xad\xf4\x0a\x04\x97\x77\xec\xf5\x60\xda\xaf\xe4\x37\xbb\xb8\xaf\x38\x0a\xd9\x08\x19\xf3\x01\x82\x02\xe7\x38\x51\x9d\x37\x2b\xdb\x17\xf7\x71\xa2\x9d\x8b\xc5\x84\x51\x26\x25\x67\xd3\x8b\xeb\x9f\xc9\x2e\x00\x0c\x18\xdf\x63\x24\xe6\xc4\xda\x79\x47\x54\xc8\x49\xb2\xfd\xed\x1b\x67\xac\x18\xb4\x8a\x8b\x05\x77\x3d\x62\xe2\x4e\xc7\x8a\xd9\xcb\x00\xb9\x95\x9f\xe2\x0c\x0d\x87\x78\xad\x63\x62\x60\xaf\x68\xe1\xf3\x36\xe0\xa9\x67\x8b\x7c\x84\x75\x2a\x62\x43\x55\x25\x73\x80\xfe\x51\xd9\x8e\x1c\x17\xb6\xf0\x26\xff\x82\x06\xe9\xb1\xb4\xc0\x45\x1c\x9e\xe8\xa5\xde\x6a\x38\xa2\xbf\x52\x81\x0f\xa1\x7f\x81\x1a\x4d\xc5\x69\x31\xec\x4d\xe8\xfe\xe4\x7c\x55\x34\x41\xaa\xf1\x68\x3f\x94\xf5\xe6\xfa\xd5\x4e\xaa\xf6\x6e\x6d\x6a\xcb\xd6\x27\xd6\x4e\x05\x45\xef\xb2\x65\x07\x41\xd6\x5b\xfb\x41\xb1\x2d\x84\xb5\xf8\xa9\x2a\xe9\x78\xdb\x26\x12\xae\xda\x68\x23\xb3\xd4\x22\xe5\x64\x29\xe7\xfe\xa6\xa7\x02\x80\x01\xe7\x0c\xda\x4c\x3b\xdc\x74\x17\x50\x85\x8e\x4a\x4f\x44\xcb\x87\xe4\x71\x12\xae\x9a\x03\x38\x56\x94\x02\xc3\x86\xb1\xf2\x32\xba\xc1\x45\x67\x93\x46\x2d\xa3\x38\xb3\x85\x1b\xb3\x1d\x93\xe6\x4d\x61\x47\x3b\xcb\xbf\x40\x0d\x0f\xc9\x9b\xf5\xe0\x6b\x98\x91\x22\x51\x8f\x61\x49\x8d\x82\x65\x84\x6c\x6b\x59\x6b\x73\xd4\x9a\x13\x86\xcf\x28\x40\x6b\x33\xd9\x0e\x9d\x91\x9a\xf9\xbf\x0e\x74\x45\x60\x61\x34\x3c\xe0\x7f\x46\x19\x1f\x05\x0c\x5f\x69\xf4\xc6\x2d\x89\x56\x17\x77\x5e\x1c\xce\x6e\x82\xa9\xb3\x00\xea\x5c\xed\x96\x67\xb7\x84\xe5\x9b\x68\x7c\x8f\x48\x70\x77\xc2\x45\x8d\x6d\xb7\x26\xcb\xf0\x09\xc3\x3c\x92\x57\x6f\x35\xa1\x49\xa7\xaa\x11\xf2\x9c\xca\xd5\x79\x67\xfc\x3e\xc9\xcd\xa6\x5a\xe3\x0b\xa1\x75\xbf\x3e\x40\x5a\x30\x3c\xae\xed\x44\x0e\xd2\x1a\x99\x73\x5c\x4f\xe5\x24\xf8\x42\x39\x71\x47\x3d\xb4\x8f\xa5\x05\xf4\x4a\x4d\x13\x56\xb8\x2a\x90\xc7\xf5\x81\x73\x2f\xeb\x08\x9c\x0e\x83\x01\xff\xc5\x4d\x32\x07\x57\x14\x47\xc4\xf7\x5d\x96\xb0\xba\x58\x87\xa5\x58\xda\x9a\x2f\xf2\x72\x6f\xa8\x74\x8c\x21\x79\x27\x61\x93\x69\x5b\xf0\x36\x58\x97\x8b\xda\xa7\x4b\x4c\x02\xfb\xf0\x0c\x1a\x5a\x9e\xca\x00\x9e\x7a\x3b\xfd\x5d\x48\x88\x1c\xec\xb7\x43\xe5\xb6\x5b\x0c\x0b\x1e\x02\x4b\x80\x04\x48\x53\x26\x5a\xc0\xee\x2f\xd9\x2d\xde\xbb\xd5\x9c\x4d\x4c\xb3\xa0\x9d\x83\xf9\xdf\xc5\xc2\x74\x11\x1e\xc8\xca\xab\x4c\xbc\x65\x51\x8e\xf6\xa8\xe2\xe0\xf1\x49\x93\xc1\x7a\xf6\x6d\x7d\xd5\xd3\x06\x43\xb2\x39\x1b\x72\x89\x75\xf3\x88\x6b\xb0\xc6\x40\x65\xc8\x7e\xec\x0c\x28\x69\x6a\x07\xd1\xc3\x04\x16\xb7\x90\x1d\xcd\x4f\x94\x13\x9c\x91\x7d\xc9\x86\xff\x15\xf1\x36\x4b\x22\x7c\xf5\x94\xba\x63\xe2\x83\x62\xe5\x21\x17\xa5\x46\x9f\xc1\x5d\xed\xb4\x5c\x7e\x12\x4b\x58\xb0\x14\xe2\xc4\x98\x93\x3e\xc3\x62\xab\x60\xc7\x58\xdb\xc1\x5c\xc7\xb1\x7b\x36\xfd\x92\x65\xf9\xd5\x85\x7f\xdb\xa2\xed\xb3\x6a\x35\x5c\x52\xf5\x3d\x09\xf0\x3e\x47\x4c\xa4\x5a\x06\xf9\x99\x5d\x1f\x10\xb0\xbe\x32\x33\xeb\x83\x1b\x04\x72\x00\xd3\x54\x72\xb2\x13\x7b\xc2\xfb\x77\xb8\x19\xda\xf9\xa8\xe9\xb8\x53\xd9\x52\x93\x19\x93\xf9\x2c\x62\x09\xa3\x58\x7a\xd8\x12\x98\x9d\x85\x7a\xae\x67\xaa\x7e\x87\x27\x5f\xc3\x4b\xe4\xb3\xb7\x8b\x47\x5c\x32\x00\xe3\x5f\x04\x53\xbc\xdd\x00\xd8\xd7\x18\xa5\x28\x6c\xb4\x7d\xee\x49\xd9\x0a\xfe\xd7\xf4\xfe\x42\x49\x6b\xa3\x3c\xf1\x3d\x6f\x17\xc1\x05\xed\xdb\x25\xc8\x76\xd6\xf5\x2a\x21\xcf\x09\x8d\x42\xd9\xbf\xc7\x2f\x05\x35\x28\x1f\x6c\x02\x21\x03\x45\x5d\xcb\x87\xfc\xd5\x05\xd7\x71\x4e\x79\x41\x7c\x9f\xcd\x32\x20\x8e\x38\x8c\x9d\x50\xe5\x61\xf2\x31\xa0\x9c\xc7\x31\x49\xf2\xec\x24\x8b\xd1\xfc\x88\x5f\x3e\x10\x59\x65\x9b\x1a\x4a\xc9\x78\xbb\x5c\x81\xb0\x93\xda\x5b\x9d\xc2\x93\x09\x6b\xa9\xfd\xbe\xc0\x05\x02\x19\x2e\x4f\xae\x10\xaf\xd3\x60\x5c\x2c\x02\x0a\x62\x8a\x05\x5d\x56\x59\xc3\xef\xfb\x76\x44\x68\x34\xa8\xe8\x4e\xdf\x52\x39\xc9\xea\x6c\xb6\xcb\x85\xae\xf6\x4b\x68\xbc\x7e\x2f\x96\x85\x6f\x65\xe9\x76\xba\x1b\xd5\x25\xc1\x96\x5e\xc7\xa2\xd9\x54\xcc\x99\xfb\xa8\xfa\x13\xd3\x29\x22\x7f\x7f\x93\x21\x68\x9c\x63\x1a\x12\xdc\xb0\xac\x99\x48\x7b\xfe\x47\x25\xe9\xb7\xd0\x1e\x84\x81\x02\x49\x43\xcc\x35\xf7\xa0\xe8\x7a\x21\x42\xa9\x22\x9d\x35\x3b\x41\x28\x89\x7a\x9b\x3b\xc4\xa4\xeb\xc8\x2d\xde\x1c\xbf\x76\x16\xdc\x65\x44\xe0\x5d\xb9\x08\x20\x3e\xc5\x68\xb9\xf4\x88\x93\xa0\xfc\x9a\x1a\x77\xcb\x73\x40\xaf\xe9\x77\xb5\x1f\x3a\x4a\x1e\x55\x5a\xb8\x11\xb9\x72\x39\x96\xed\x60\xb7\x01\x84\xc5\x38\xcb\xde\xd3\x27\xfa\xda\x7d\x9a\xc2\x05\xb3\x29\x58\xcf\xce\xeb\x3c\xee\x19\x2d\xa0\x3e\xfd\x31\x47\x6c\x88\xdf\xd0\x58\x12\xdf\x72\xc9\x77\xd1\x7f\x44\xae\x5d\x69\x6f\x33\x61\x85\xd2\xd9\x07\x79\x74\x7d\x6d\x91\x34\x7d\xa9\x6b\x40\xff\xbd\x32\x3f\x16\x02\x2e\xa6\x3a\x74\x40\x77\x89\x3f\x6e\x16\x99\x1d\x65\x84\x9d\x65\xcb\xcd\xc1\x0f\x83\xdb\x70\x81\x09\x35\xcb\xa0\x4e\xde\x08\xf7\x4a\x72\x61\xa2\x86\x13\x0e\x14\x71\x84\xc0\xf1\x28\x27\xd7\x4f\xc6\xc8\xdb\x93\x54\xfe\x3c\xa3\xe0\x44\x0a\x06\xe3\x2b\x15\x66\x23\xb3\x58\x7c\x7b\x23\x87\x29\x54\xfa\xa2\x7e\xb7\x18\x82\xbf\x94\x5f\x03\x5b\x72\x12\xdf\x25\x23\xa7\xe8\xc5\xac\x16\x58\xbf\xa6\xa4\x60\xad\x97\x39\x77\xdc\x59\x28\x38\x71\xb6\xde\x43\xe4\x92\xf8\xd4\x76\xbf\x34\x0f\x7f\x6a\x92\xa3\x8d\xc4\xab\x15\xbd\xd3\xe0\xff\x15\x95\x9c\x7c\x49\xda\x65\x81\x0e\x60\x06\x0c\xce\xfe\xfd\x93\x1c\xe9\xe5\x42\x4c\xb6\xfa\xa2\x7e\x2e\x26\xb3\xa2\x3f\x52\xb9\xca\x19\xae\x15\xba\x0b\xfe\x5e\x47\xb5\xa7\x00\x40\x2d\xed\xa7\xf5\x33\x78\x97\xdc\x23\xfe\xe1\x1c\x62\x38\x3a\x3f\xbd\x1f\x28\xae\x2a\xc4\xcc\xed\xfc\x92\x64\x18\xd0\xdb\x7d\x6e\x22\x83\x31\xac\x7a\x8d\xf3\x11\x93\xee\x68\xbc\xcc\xb0\x4a\xa7\xfd\xd4\x8c\x9e\xa7\x4e\xa5\xa8\xb0\xce\x94\xe7\xa3\x1c\x3d\xc5\x96\xfd\x10\xd3\x03\x80\x28\x0e\x61\xbd\x2c\x11\x62\x5e\xa9\xf1\xad\xa2\xe0\x31\xeb\x80\x7d\x57\xb3\x6a\x17\xf3\xbc\x74\x88\x81\xa5\x6a\x98\x77\xe3\x58\x38\x8f\x2d\x49\x3c\x61\x94\x3c\x79\xc8\x87\x9a\xd7\x4e\x51\x5c\x9b\x38\xb1\x0f\x6b\xf4\xc0\xbb\xe1\x29\xfa\x8f\xcf\x2c\x2a\x82\xe9\x13\xec\xe2\xd3\x3a\x33\xa5\xc7\xa5\x81\xe7\x57\x14\x20\xf1\x4f\x21\x05\xd3\x76\xab\xa2\xaa\x5c\x5f\x58\x10\xd7\xe3\x4e\x78\xab\xe7\x68\x65\x54\x07\x19\xd2\x63\x4b\x38\x4f\xbb\x84\x0c\x05\xec\x3b\xc2\xe5\x3a\xf1\x30\x56\x14\x16\x80\xab\xa6\x7a\xdb\xe6\xe8\x88\x8b\x2d\x88\x95\x9e\xb9\xe9\xa5\x6f\x98\x55\x2b\xd0\x83\x23\x0a\xf6\xae\xfb\xd8\x35\xad\xf9\xf5\x0f\x0d\xaa\xe9\x81\x4c\x67\x02\xf7\xd0\xb1\xe9\xca\xde\x35\xa3\x53\x6d\x62\x7d\x92\xa3\x01\x17\x72\x77\x91\x00\x45\xd0\xff\x08\x6e\xd8\x4e\x61\xc4\x2c\x82\x3f\xdd\x8b\x7e\xf1\x69\x1d\x44\x64\x5b\x40\xca\x57\xa1\xcc\xc0\x13\xda\x6a\x24\xcb\xd4\x32\x57\xbf\xc0\xbf\x69\x6c\x7a\x60\xbb\x6d\xd6\x77\xb3\xa7\xc2\xf3\x78\xb3\xa9\x63\xab\xbb\x27\x15\xc9\xb7\xb5\x7f\xb7\x95\x9a\xe9\x70\xc1\xbe\xd9\x3a\xd0\x7e\x05\x07\xae\xc8\xee\x94\xfc\xa0\x97\xa4\xd0\x66\x93\x97\x2a\x4b\xcf\xf3\x68\xbd\x4b\x34\xe1\x30\x9c\xa8\xc8\x47\x07\x5a\xf2\xeb\x5d\xba\x14\x44\x13\x21\x19\x78\x81\xad\x53\x5f\x78\x92\x93\x52\x61\xf2\xfb\x94\xe1\x73\x94\x31\x63\x27\xb5\xb6\xa0\xc7\x77\x8d\x4f\x8e\xe2\xa5\x39\xee\x3b\x4c\xd3\x9b\x53\xf3\x71\x61\x4e\x71\xd9\xe0\x53\x83\x20\x44\x59\x0c\x0c\xad\x40\x19\xfe\x55\xe8\x48\x9e\x9a\xba\x62\x04\x90\xa8\xea\xb8\xac\x8b\x06\x92\x84\x18\x5b\xd7\xb8\x19\xfe\x01\x83\xba\x8b\xb7\x38\x2e\x19\xf9\x5f\x3f\x60\x7d\x87\xf6\x71\x8d\x86\x89\xd0\x39\x4d\x5e\x88\xe1\x4e\x2c\x8d\xea\xfb\x59\x0d\x4c\x1f\xb1\xbd\x76\x08\xaf\x6e\x4a\x2b\xaa\x2a\x0c\x27\x04\x4f\x00\xb5\xdf\x03\x4b\x13\x1d\xa8\x68\x8a\x25\x0c\x08", 4096); *(uint64_t*)0x200213c8 = 0x20021300; *(uint32_t*)0x20021300 = r[0]; *(uint32_t*)0x20021304 = r[0]; *(uint32_t*)0x20021308 = r[1]; *(uint32_t*)0x2002130c = r[0]; *(uint32_t*)0x20021310 = r[1]; *(uint32_t*)0x20021314 = r[1]; *(uint64_t*)0x200213d0 = 0x20021340; *(uint64_t*)0x200213d8 = 0x20021380; *(uint32_t*)0x200213e0 = 0x1000; *(uint32_t*)0x200213e4 = 6; *(uint32_t*)0x200213e8 = 0x3d; *(uint32_t*)0x200213ec = 3; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200213c0, /*actual_bytes=*/0x20021400, /*actual_handles=*/0x20021440); if (res == ZX_OK) { r[4] = *(uint32_t*)0x20021380; r[5] = *(uint32_t*)0x20021384; r[6] = *(uint32_t*)0x20021388; } break; case 4: *(uint64_t*)0x20031540 = 0x20021480; *(uint32_t*)0x20021480 = 0; memset((void*)0x20021484, 0, 3); *(uint8_t*)0x20021487 = 1; *(uint64_t*)0x20021488 = 0x66c69d1b00000000; *(uint32_t*)0x20021490 = 2; *(uint32_t*)0x20021494 = 2; *(uint64_t*)0x20021498 = 9; *(uint64_t*)0x200214a0 = -1; *(uint64_t*)0x200214a8 = 2; memset((void*)0x200214b0, 0, 1); *(uint64_t*)0x20031548 = 0x200214c0; *(uint64_t*)0x20031550 = 0x20021500; *(uint64_t*)0x20031558 = 0x20031500; *(uint32_t*)0x20031560 = 0x38; *(uint32_t*)0x20031564 = 0; *(uint32_t*)0x20031568 = 0x10000; *(uint32_t*)0x2003156c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[5], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20031540, /*actual_bytes=*/0x20031580, /*actual_handles=*/0x200315c0); break; case 5: *(uint64_t*)0x200416c0 = 0x20031600; *(uint32_t*)0x20031600 = 0; memset((void*)0x20031604, 0, 3); *(uint8_t*)0x20031607 = 1; *(uint64_t*)0x20031608 = 0x4fcfbc1100000000; *(uint32_t*)0x20031610 = 0; *(uint32_t*)0x20031614 = 1; *(uint64_t*)0x20031618 = 0xc1; *(uint64_t*)0x20031620 = -1; memcpy((void*)0x20031628, "*[#,)&,-[)}", 11); *(uint64_t*)0x200416c8 = 0x20031640; *(uint32_t*)0x20031640 = 0; *(uint32_t*)0x20031644 = r[5]; *(uint64_t*)0x200416d0 = 0x20031680; *(uint64_t*)0x200416d8 = 0x20041680; *(uint32_t*)0x200416e0 = 0x38; *(uint32_t*)0x200416e4 = 2; *(uint32_t*)0x200416e8 = 0x10000; *(uint32_t*)0x200416ec = 4; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200416c0, /*actual_bytes=*/0x20041700, /*actual_handles=*/0x20041740); if (res == ZX_OK) r[7] = *(uint32_t*)0x2004168c; break; case 6: res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/0x104d); if (res == ZX_OK) r[8] = res; break; case 7: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t))CAST(zx_channel_create))(/*options=*/0, /*out0=*/0x20041880, /*out1=*/0x200418c0); if (res == ZX_OK) r[9] = *(uint32_t*)0x20041880; break; case 8: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t))CAST(zx_exception_get_thread))(/*handle=*/r[5], /*out=*/0x20041900); if (res == ZX_OK) r[10] = *(uint32_t*)0x20041900; break; case 9: *(uint64_t*)0x20041bc0 = 0x20041780; memcpy((void*)0x20041780, "\xfa\x2f\x40\x69\xc5\xf5\x4d\x24\x79\xf8\x4d\x1d\x73\x3a\x52\xf5\x9f\x0a\x68\x70\x94\x66\xe6\x63\x3a\x63\x18\xf6\x05\x7f\xbf\xc9\xf0\x48\xb0\x9b\xfb\xb6\x39\x05\xdc\x82\x47\x45\xb1\x62\x47\xee\x57\x0e\x79\xaf\x77\xfd\xe7\x3b\xe0\x86\x53\x56\x84\x1b\x89\x97\xc5\x5e\x4c\x9b\x79\x2e\x2c\xd8\xc5\xac\x57\x89\x60\xab\x6b\x2d\x80\x4c\xd8\x9e\xb8\xf0\xde\x21\x51\xa1\x69\x3b\x64\x98\xd6\x1a\xbe\xdb\xd5\xdb\x7c\xae\x8b\x09\xf9\x4c\x6d\x94\x2c\xb3\x10\x51\x52\x49\x61\xcc\x82\xc4\x94\x0a\xf1\xab\x9c\xee\xba\x52\x71\x6e\xb2\x5b\x87\x0e\xaf\xbb\x41\xd9\xa1\x56\x2e\x96\x70\xdf\x00\x38\x4a\xa9\x55\x4b\x70\xf9\xa1\x66\x83\x41\x50\xf2\xe3\x72\x15\xe4\x13\xba\x12\x38\xa1\x81\xd4\xf7\x43\x58\x43\xb6\xbb\x56\xfa\x88\x61\xd8\x68\x80\x01\xd3\x9d\x9e\x2b\x18\x9f\x67\xe8\x05\x33\x11\x89\x64\x29\x97\x63\xf5\x86\x82\x8c\x69\x3c\xc9\x71\x2a\x9c\x25\x52\xdc\x30\xe5\x72\x25\x21\x2f\x5a\x50\xef\xe5\x6d\xa9\x9a\x32\x82\x4c\x4c", 227); *(uint64_t*)0x20041bc8 = 0x20041a80; *(uint32_t*)0x20041a80 = r[9]; *(uint32_t*)0x20041a84 = r[10]; *(uint32_t*)0x20041a88 = 0; *(uint32_t*)0x20041a8c = r[1]; *(uint32_t*)0x20041a90 = r[6]; *(uint32_t*)0x20041a94 = r[0]; *(uint32_t*)0x20041a98 = r[4]; *(uint32_t*)0x20041a9c = 0; *(uint32_t*)0x20041aa0 = 0; *(uint64_t*)0x20041bd0 = 0x20041ac0; *(uint64_t*)0x20041bd8 = 0x20041b80; *(uint32_t*)0x20041be0 = 0xe3; *(uint32_t*)0x20041be4 = 9; *(uint32_t*)0x20041be8 = 0x9a; *(uint32_t*)0x20041bec = 8; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); break; case 10: memcpy((void*)0x20000000, "\xc4\xe1\xd9\xd2\x9e\x91\x00\x00\x00\xc4\x81\x71\xfd\x84\x48\x00\x00\x00\x20\xc4\xa1\x7f\x70\x44\xba\x34\x0e\xf3\x0f\xae\xd6\xc4\x62\x79\xa7\x5d\x03\xc4\xc2\xfd\x96\x42\xa7\x2e\x66\x43\x0f\x38\xf5\x59\x00\x42\x0f\x34\xc4\xe1\x78\x2b\x42\xc0\xc4\x42\x65\x92\x24\x2c", 66); syz_execute_func(/*text=*/0x20000000); break; case 11: syz_future_time(/*when=*/1); break; case 12: syz_job_default(); break; case 13: syz_mmap(/*addr=*/0x20ffe000, /*len=*/0x1000); break; case 14: syz_process_self(); break; case 15: syz_thread_self(); break; case 16: syz_vmar_root_self(); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); loop(); return 0; } :427:75: error: use of undeclared identifier 'zx_channel_call_etc' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor2134882045 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/10 (0.44s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:0 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:false HandleSegv:false Repro:false Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(0x0, 0x0, 0x0, &(0x7f00000100c0)={&(0x7f0000000000)={{}, {0xffffffff, 0x0, {0x4, 0xffffffffffffffff}}}, &(0x7f0000000040), &(0x7f0000000080), &(0x7f0000010080)={{0x0, 0x0, 0x0, 0x0}}, 0x28, 0x2, 0x10000, 0x4}, &(0x7f0000010100), &(0x7f0000010140)) (fail_nth: 1) r3 = zx_deadline_after(0x5) (async) zx_channel_call$fuchsia_io_DirectoryAdminLink(r2, 0x0, r3, &(0x7f0000020240)={&(0x7f0000010180)={{}, {0x3, 0xffffffffffffffff}, 0xffffffff, {0x1b3}}, &(0x7f00000101c0), &(0x7f0000010200), &(0x7f0000020200), 0x34, 0x1, 0x10000}, &(0x7f0000020280), &(0x7f00000202c0)) (rerun: 4) zx_channel_call(r2, 0x0, r3, &(0x7f00000213c0)={&(0x7f0000020300)="6b3c1256279544bb32d36243afcbfda5cd1a1759ba09b008c97e2be49ab10adda6d88f529de7b04ad9b0fdd96d3184196e8e6975312bf6a2c53df14551fa4b32627dd679eef9c59f190ca4036814372cf510d02917535f1f02da97f6d1601f3e89e10a621b4e82ba76d41a2f87249736cd35a2432bf368daf43f60387c27f9177614c2f4d4fd31ddd5e08d63429d663ee14a1932bf8f4df70369f3c2a75197422ed0022be80fd87b79db2a43499a48bdcd91246573303a4508e17cf020c64c577b8bb0926c4bde1560a77446497e5bafec8429a311719384f637c4a008c3ddd62610dbb1d4c2dd8f1bd73e7f3657fcf24dbb896a145b28f34098f9d40199c5b72003c4e08eab96aec066bf2d97c2661f4cd91c59cd4f9e4f5617cfd6ada6e04953cc4c7be1c3f10de31e155dd174e99f4136cae08e308b3c22b5d1dd66b379703429b4d5dfa60ec7d1aa50043c92c1a949b3d940f604d1f44ebdd3c3e4ab647c7e66f1211eec2712e0e4b70cb1a2c1c6c3b4e29a1042834acc26e99b38f6075bbea108bf124c3b1cc4275227bd0167110d69972d46b2dbd6b18314d2ea664ac2f4e4490ab3223eb08178f92e0c17bf861894997cd092fe07c06c5e0db444085a138c638d6eb7889a1996340ea460991f75cd1aba0bcae8f9779587f6df761f75373199146daba4848ac8a2a9b099ae5a54ed617ecb56326627016ea3d6d077f90474dbf037689bd7724a1cef3626e6e196748c050f91c662fda495b67e5aa3b016dc3bccb2d7a9733eca7c7bdd8847540d273b9c8c29335ebdd7715ee4f57dfe5c6a0f3d584398c0ea55375bd2c31b6c74e9f4eeb859c8977063125cdf72532de65c0a00d53bc003c8b101838ee151319695c0ac2acef5f1910bc952bebc7f689f52067f81c18c5dfac90057cdbd0f75e928163aeb09ef0159b66da4210834ca8ee3e285270b51f5e256867ce622923fd3c40e615e1342418a196fcb8e2b56486722f7b5ca524c75dbdb9be6314b7ad590b5cf8f80d7927dda79ceb1369d780f3338c1efb83ca7bdda05f8ca9445b500c0506359a4baa2a8ee7e8b4afb48dbdc2a56194a8da4d1ac425245b83e1e8e448a29da4e2071aea3b8ef3a3cb5827e616d4707f851eea6260972eade34da0a8f34407f4d3e455ba0aa026a853ebb5e6d64e9d8105e69b84e36fb57a8b6e0e7cbb9e5d524988036d958e32a38f5977b3c7038c983994f0888fe3091aa1f45919f0602b5d750738b171b9787af296f2ba5fee311a16f1cdcd810a6689ac7a75bc19e693395b00cfdaf13cca6670a472d449e9efef6e0f9d1c1abaabaaa37e2b27d7d6723d98af800a0b2b5196b284a9e11a5c5e62c4d862522254225216d4ff21afd49bd07f74e9d189bc576d3dd39a739779875e2dcbcf356a52ca08cb29eae8579ca6608a194135941eed7e330de08a9e5095b177ce26b2321e7ac9862bacef371c4d2e9dc8bab9118a15ff9fc4679a1d0eeb64806a80cc739edfddf9d4fa2f42f870212c23ae81ebc9168c955535041c1ce54edf8e3cae6684dab1b1eed16b25bc667a36691d0e050a49f2d782ed9ec3f94d50c8d3358a82375d3605fdb7912b1fc3ed9155fb1052c93e61005c2f6a87c42cf68aff9e6c9e19813653770c439cc397f9ecba27a99b082054d8f44a5b82baea68bd849cde7044a27792a26b3a12d938cb650a8914124be069a1d8a0f98d98768f9144afcc851b338a84d797c35a7657111fa4278b62eee95e3ddedb8916d03c93ec884ac97e29b1d4490ecae90628ed261ebcbbd4d0c12d1c295e6683d685c508d14f289f5b0c86bbd05c31edb6ef46aba2abe24f53c90b33ac3b8033616687a9d3b2900876cb4879145771c0957a07d371f9826e641089e347c155fd62cf176bb4f6af7c223b45cfd0e0a5410922527f9a89a8bb864f497a763fac941097410f448373d1232955cdd4c067364151ae3f57e3bd611975eb189e3de3de659b8f58fc7bc86bb7717711aea0f512ae8fb8f0dad0b9a91cb4b1d512095de2923a54add0883f1b194082abb2d77105e9d00d23e0c0e2226cb2f831d10a66223d9f717260558318f72b66926e0ae2a169b8f5fb86d9f611760d9626218791f7a18b807e12dd61b895d96885c8a39ae56faa0987a4bc634bf638902288cbe304d2e6085b35bbd8c69f7c7bc08a54764e5a58c36da8514923cabca339408a4d4c4a05520b84150e1493861b1208ab6d2007fd47071ecd8419c4de38764caecb093a2cc8259f413efcb13e19451d22b9bd8a192f9184f62c438b1fa988cdc16b43a19ed3ca3dc13bdada0118cf96132ee3a06db5eec80f4c956b3928f5923c5a74352cc62ea9e8a0310ff953d4fd886d26d6e5ccbb8c9afda424ce0e0c66e3b5112f93de988f178f103de77663c3f37483aef8a49b06ed86442553336a2ea076350f3730d607164b7459b9e90e3f98ab8132018d02c86b65d5e2358c66ee8d657a6586af70eb2536942b0733f99d3dcb2ebb49857d384a870cb0b62e318a130f1d905a12c71c319ad380a8b022d4e3f5f5ee1bb17d55becffb128fd61d993b5e03d6d0d864b2481dde4f0e472800e84d97b2a12661bfbb9070f37cd458f0d43474003491239f6987024386a281851797d1322752e6e24b160fcdde4a429383a690435f1200d0ad95874011db89d4ffaf2232e84a767620009fa3e534c50b2656805a380799a16817b350a3b23d4d03fcfffe4cf048283c47144189dc9b965375cff5ee4171a23c172fef7a8ddefd1c24be338203691227c3056f7761eca36087851aeff7f91e8aceb96d7b21082a95d6b796ad7688b9c48754fa34d2873c1377012cc16a798e80c71d5759572b17e3a013fa2e878a5194ce5358ecec5602fb206d590ff765f57755904d4361e118fb18f8fdad8df387fe63f79678ea913d3b1633955f8e11c2d8d7c716791234188bdcb7bccccc6f3eb85993ebe53478bf92dfff23331f394f2164264a6c029d0c8bb9a41e09cc35eff2a58d4ad3b92b4d682c7ac73a728892bb11b57c39aed49709c200e916bcba5229d16043e34b1c04223be93784e3de8b74349425cf073d7068565e7d914f26573581dc919919feec181d371cc6629f895728f8526acef9ce50110fd9257fc677de7fa23f98f35ba0686fc65d074c412a5e02ad067836f80fc24437e2d0decff85b1029e28660b344851a0be45cdc10716a05974e5e09d00f994a4de6e97cf7148c34ebeb5565be0eccf4dfa7c8b70691d0a4fc4adf40a049777ecf560daafe437bbb8af380ad90819f3018202e738519d372bdb17f771a29d8bc58451262567d38beb9fc92e000c18df6324e6c4da794754c849b2fded1b67ac18b48a8b05773d62e24ec78ad9cb00b9959fe20c0d8778ad636260af68e1f336e0a9678b7c84752a624355257380fe51d98e1c17b6f026ff8206e9b1b4c0451c9ee8a5de6a38a2bf52810fa17f811a4dc56931ec4de8fee47c553441aaf1683f94f5e6fad54eaaf66e6d6acbd627d64e0545efb2650741d65bfb41b12d84b5f8a92ae978db2612aeda6823b3d422e56429e7fea6a7028001e70cda4c3bdc741750858e4a4f44cb87e47112ae9a0338569402c386b1f232bac1456793462da338b3851bb31d93e64d61473bcbbf400d0fc99bf5e06b989122518f61498d8265846c6b596b73d49a1386cf28406b33d90e9d919af9bf0e74456061343ce07f46191f050c5f69f4c62d895617775e1cce6e82a9b300ea5ced9667b784e59b687c8f487077c2458d6db726cbf009c33c92576f35a149a7aa11f29ccad57967fc3ec9cda65ae30ba175bf3e405a303caeed440ed21a99735c4fe524f8423971473db48fa505f44a4d1356b82a90c7f581732feb089c0e8301ffc54d3207571447c4f75d96b0ba5887a558da9a2ff2726fa8748c2179276193695bf03658978bdaa74b4c02fbf00c1a5a9eca009e7a3bfd5d48881cecb743e5b65b0c0b1e024b80044853265ac0ee2fd92ddebbd59c4d4cb3a09d83f9dfc5c274111ec8caab4cbc65518ef6a8e2e0f14993c17af66d7dd5d30643b2391b728975f3886bb0c64065c87eec0c28696a07d1c30416b7901dcd4f94139c917dc986ff15f1364b227cf594ba63e28362e52117a5469fc15dedb45c7e124b58b014e2c498933ec362ab60c758dbc15cc7b17b36fd9265f9d5857fdba2edb36a355c52f53d09f03e474ca45a06f9995d1f10b0be3233eb831b047200d35472b2137bc2fb77b819daf9a8e9b853d952931993f92c6209a3587ad812989d857aae67aa7e87275fc34be4b3b78b475c3200e35f0453bcdd00d8d718a5286cb47dee49d90afed7f4fe42496ba33cf13d6f17c105eddb25c876d6f52a21cf098d42d9bfc72f0535281f6c022103455dcb87fcd505d7714e79417c9fcd32208e388c9d50e561f231a09cc73149f2ec248bd1fc885f3e1059659b1a4ac978bb5c81b093da5b9dc293096ba9fdbec00502192e4fae10afd3605c2c020a628a055d5659c3effb76446834a8e84edf5239c9ea6cb6cb85aef64b68bc7e2f96856f65e976ba1bd525c1965ec7a2d954cc99fba8fa13d329227f7f9321689c631a12dcb0ac99487bfe4725e9b7d01e8481024943cc35f7a0e87a2142a9229d353b4128897a9b3bc4a4ebc82dde1cbf7616dc6544e05db908203ec568b9f48893a0fc9a1a77cb7340afe977b51f3a4a1e555ab811b9723996ed60b70184c538cbded327fada7d9ac205b32958cfceeb3cee192da03efd31476c88dfd05812df72c977d17f44ae5d696f336185d2d90779747d6d91347da96b40ffbd323f16022ea63a744077893f6e16991d65849d65cbcdc10f83db70810935cba04ede08f74a7261a286130e147184c0f12827d74fc6c8db9354fe3ca3e0440a06e32b156623b3587c7b23872954faa27eb71882bf945f035b7212df2523a7e8c5ac1658bfa6a460ad973977dc59283871b6de43e492f8d476bf340f7f6a92a38dc4ab15bdd3e0ff15959c7c49da65810e60060ccefefd931ce9e5424cb6faa27e2e26b3a23f52b9ca19ae15ba0bfe5e47b5a700402deda7f5337897dc23fee11c62383a3fbd1f28ae2ac4ccedfc926418d0db7d6e228331ac7a8df31193ee68bcccb04aa7fdd48c9ea74ea5a8b0ce94e7a31c3dc596fd10d30380280e61bd2c11625ea9f1ada2e031eb807d57b36a17f3bc748881a56a9877e358388f2d493c61943c79c8879ad74e515c9b38b10f6bf4c0bbe129fa8fcf2c2a82e913ece2d33a33a5c7a581e7571420f14f2105d376aba2aa5c5f5810d7e34e78abe76865540719d2634b384fbb840c05ec3bc2e53af13056141680aba67adbe6e8888b2d88959eb9e9a56f98552bd083230af6aefbd835adf9f50f0daae9814c6702f7d0b1e9cade35a3536d627d92a301177277910045d0ff086ed84e61c42c823fdd8b7ef1691d44645b40ca57a1ccc013da6a24cbd43257bfc0bf696c7a60bb6dd677b3a7c2f378b3a963abbb2715c9b7b57fb7959ae970c1bed93ad07e0507aec8ee94fca097a4d06693972a4bcff368bd4b34e1309ca8c847075af2eb5dba14441321197881ad535f7892935261f2fb94e17394316327b5b6a0c7778d4f8ee2a539ee3b4cd39b53f371614e71d9e053832044590c0cad4019fe55e8489e9aba620490a8eab8ac8b069284185bd7b819fe0183ba8bb7382e19f95f3f607d87f6718d8689d0394d5e88e14e2c8deafb590d4c1fb1bd7608af6e4a2baa2a0c27044f00b5df034b131da8688a250c08", &(0x7f0000021300)=[r0, r0, r1, r0, r1, r1], &(0x7f0000021340)=""/61, &(0x7f0000021380)=[0x0, 0x0, 0x0], 0x1000, 0x6, 0x3d, 0x3}, &(0x7f0000021400), &(0x7f0000021440)) zx_channel_call$fuchsia_cobalt_LoggerLogMemoryUsage(r5, 0x0, r3, &(0x7f0000031540)={&(0x7f0000021480)={{}, 0x2, 0x2, {0x9, 0xffffffffffffffff}, 0x2, {'\x00'}}, &(0x7f00000214c0), &(0x7f0000021500), &(0x7f0000031500), 0x38, 0x0, 0x10000}, &(0x7f0000031580), &(0x7f00000315c0)) zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(r2, 0x0, r3, &(0x7f00000416c0)={&(0x7f0000031600)={{}, {0x0, 0x100000001, {0xc1, 0xffffffffffffffff}}, {{'*[#,)&,-[)}'}}}, &(0x7f0000031640)={{0x0, r5}}, &(0x7f0000031680), &(0x7f0000041680)={{0x0, 0x0, 0x0, 0x0}}, 0x38, 0x2, 0x10000, 0x4}, &(0x7f0000041700), &(0x7f0000041740)) r8 = zx_deadline_after(0x104d) zx_channel_create(0x0, &(0x7f0000041880)=0x0, &(0x7f00000418c0)) zx_exception_get_thread(r5, &(0x7f0000041900)=0x0) zx_channel_call_etc(r7, 0x7, r8, &(0x7f0000041bc0)={&(0x7f0000041780)="fa2f4069c5f54d2479f84d1d733a52f59f0a68709466e6633a6318f6057fbfc9f048b09bfbb63905dc824745b16247ee570e79af77fde73be0865356841b8997c55e4c9b792e2cd8c5ac578960ab6b2d804cd89eb8f0de2151a1693b6498d61abedbd5db7cae8b09f94c6d942cb31051524961cc82c4940af1ab9ceeba52716eb25b870eafbb41d9a1562e9670df00384aa9554b70f9a166834150f2e37215e413ba1238a181d4f7435843b6bb56fa8861d8688001d39d9e2b189f67e80533118964299763f586828c693cc9712a9c2552dc30e57225212f5a50efe56da99a32824c4c", &(0x7f0000041a80)=[r9, r10, 0x0, r1, r6, r0, r4, 0x0, 0x0], &(0x7f0000041ac0)=""/154, &(0x7f0000041b80)=[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], 0xe3, 0x9, 0x9a, 0x8}, &(0x7f0000041c00), &(0x7f0000041c40)) syz_execute_func(&(0x7f0000000000)="c4e1d9d29e91000000c48171fd844800000020c4a17f7044ba340ef30faed6c46279a75d03c4c2fd9642a72e66430f38f55900420f34c4e1782b42c0c4426592242c") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffe000/0x1000)=nil, 0x1000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 50); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[11] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: *(uint64_t*)0x200100c0 = 0x20000000; *(uint32_t*)0x20000000 = 0; memset((void*)0x20000004, 0, 3); *(uint8_t*)0x20000007 = 1; *(uint64_t*)0x20000008 = 0x4fcfbc1100000000; *(uint32_t*)0x20000010 = -1; *(uint32_t*)0x20000014 = 0; *(uint64_t*)0x20000018 = 4; *(uint64_t*)0x20000020 = -1; *(uint64_t*)0x200100c8 = 0x20000040; *(uint32_t*)0x20000040 = 0; *(uint32_t*)0x20000044 = 0; *(uint64_t*)0x200100d0 = 0x20000080; *(uint64_t*)0x200100d8 = 0x20010080; *(uint32_t*)0x200100e0 = 0x28; *(uint32_t*)0x200100e4 = 2; *(uint32_t*)0x200100e8 = 0x10000; *(uint32_t*)0x200100ec = 4; inject_fault(1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/0, /*args=*/0x200100c0, /*actual_bytes=*/0x20010100, /*actual_handles=*/0x20010140); if (res == ZX_OK) { r[0] = *(uint32_t*)0x20010080; r[1] = *(uint32_t*)0x20010088; r[2] = *(uint32_t*)0x2001008c; } break; case 1: res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/5); if (res == ZX_OK) r[3] = res; break; case 2: *(uint64_t*)0x20020240 = 0x20010180; *(uint32_t*)0x20010180 = 0; memset((void*)0x20010184, 0, 3); *(uint8_t*)0x20010187 = 1; *(uint64_t*)0x20010188 = 0x1b8a5e6400000000; *(uint64_t*)0x20010190 = 3; *(uint64_t*)0x20010198 = -1; *(uint32_t*)0x200101a0 = -1; *(uint64_t*)0x200101a4 = 0x1b3; *(uint64_t*)0x200101ac = 0; *(uint64_t*)0x20020248 = 0x200101c0; *(uint32_t*)0x200101c0 = 0; *(uint64_t*)0x20020250 = 0x20010200; *(uint64_t*)0x20020258 = 0x20020200; *(uint32_t*)0x20020260 = 0x34; *(uint32_t*)0x20020264 = 1; *(uint32_t*)0x20020268 = 0x10000; *(uint32_t*)0x2002026c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); } } break; case 3: *(uint64_t*)0x200213c0 = 0x20020300; memcpy((void*)0x20020300, "\x6b\x3c\x12\x56\x27\x95\x44\xbb\x32\xd3\x62\x43\xaf\xcb\xfd\xa5\xcd\x1a\x17\x59\xba\x09\xb0\x08\xc9\x7e\x2b\xe4\x9a\xb1\x0a\xdd\xa6\xd8\x8f\x52\x9d\xe7\xb0\x4a\xd9\xb0\xfd\xd9\x6d\x31\x84\x19\x6e\x8e\x69\x75\x31\x2b\xf6\xa2\xc5\x3d\xf1\x45\x51\xfa\x4b\x32\x62\x7d\xd6\x79\xee\xf9\xc5\x9f\x19\x0c\xa4\x03\x68\x14\x37\x2c\xf5\x10\xd0\x29\x17\x53\x5f\x1f\x02\xda\x97\xf6\xd1\x60\x1f\x3e\x89\xe1\x0a\x62\x1b\x4e\x82\xba\x76\xd4\x1a\x2f\x87\x24\x97\x36\xcd\x35\xa2\x43\x2b\xf3\x68\xda\xf4\x3f\x60\x38\x7c\x27\xf9\x17\x76\x14\xc2\xf4\xd4\xfd\x31\xdd\xd5\xe0\x8d\x63\x42\x9d\x66\x3e\xe1\x4a\x19\x32\xbf\x8f\x4d\xf7\x03\x69\xf3\xc2\xa7\x51\x97\x42\x2e\xd0\x02\x2b\xe8\x0f\xd8\x7b\x79\xdb\x2a\x43\x49\x9a\x48\xbd\xcd\x91\x24\x65\x73\x30\x3a\x45\x08\xe1\x7c\xf0\x20\xc6\x4c\x57\x7b\x8b\xb0\x92\x6c\x4b\xde\x15\x60\xa7\x74\x46\x49\x7e\x5b\xaf\xec\x84\x29\xa3\x11\x71\x93\x84\xf6\x37\xc4\xa0\x08\xc3\xdd\xd6\x26\x10\xdb\xb1\xd4\xc2\xdd\x8f\x1b\xd7\x3e\x7f\x36\x57\xfc\xf2\x4d\xbb\x89\x6a\x14\x5b\x28\xf3\x40\x98\xf9\xd4\x01\x99\xc5\xb7\x20\x03\xc4\xe0\x8e\xab\x96\xae\xc0\x66\xbf\x2d\x97\xc2\x66\x1f\x4c\xd9\x1c\x59\xcd\x4f\x9e\x4f\x56\x17\xcf\xd6\xad\xa6\xe0\x49\x53\xcc\x4c\x7b\xe1\xc3\xf1\x0d\xe3\x1e\x15\x5d\xd1\x74\xe9\x9f\x41\x36\xca\xe0\x8e\x30\x8b\x3c\x22\xb5\xd1\xdd\x66\xb3\x79\x70\x34\x29\xb4\xd5\xdf\xa6\x0e\xc7\xd1\xaa\x50\x04\x3c\x92\xc1\xa9\x49\xb3\xd9\x40\xf6\x04\xd1\xf4\x4e\xbd\xd3\xc3\xe4\xab\x64\x7c\x7e\x66\xf1\x21\x1e\xec\x27\x12\xe0\xe4\xb7\x0c\xb1\xa2\xc1\xc6\xc3\xb4\xe2\x9a\x10\x42\x83\x4a\xcc\x26\xe9\x9b\x38\xf6\x07\x5b\xbe\xa1\x08\xbf\x12\x4c\x3b\x1c\xc4\x27\x52\x27\xbd\x01\x67\x11\x0d\x69\x97\x2d\x46\xb2\xdb\xd6\xb1\x83\x14\xd2\xea\x66\x4a\xc2\xf4\xe4\x49\x0a\xb3\x22\x3e\xb0\x81\x78\xf9\x2e\x0c\x17\xbf\x86\x18\x94\x99\x7c\xd0\x92\xfe\x07\xc0\x6c\x5e\x0d\xb4\x44\x08\x5a\x13\x8c\x63\x8d\x6e\xb7\x88\x9a\x19\x96\x34\x0e\xa4\x60\x99\x1f\x75\xcd\x1a\xba\x0b\xca\xe8\xf9\x77\x95\x87\xf6\xdf\x76\x1f\x75\x37\x31\x99\x14\x6d\xab\xa4\x84\x8a\xc8\xa2\xa9\xb0\x99\xae\x5a\x54\xed\x61\x7e\xcb\x56\x32\x66\x27\x01\x6e\xa3\xd6\xd0\x77\xf9\x04\x74\xdb\xf0\x37\x68\x9b\xd7\x72\x4a\x1c\xef\x36\x26\xe6\xe1\x96\x74\x8c\x05\x0f\x91\xc6\x62\xfd\xa4\x95\xb6\x7e\x5a\xa3\xb0\x16\xdc\x3b\xcc\xb2\xd7\xa9\x73\x3e\xca\x7c\x7b\xdd\x88\x47\x54\x0d\x27\x3b\x9c\x8c\x29\x33\x5e\xbd\xd7\x71\x5e\xe4\xf5\x7d\xfe\x5c\x6a\x0f\x3d\x58\x43\x98\xc0\xea\x55\x37\x5b\xd2\xc3\x1b\x6c\x74\xe9\xf4\xee\xb8\x59\xc8\x97\x70\x63\x12\x5c\xdf\x72\x53\x2d\xe6\x5c\x0a\x00\xd5\x3b\xc0\x03\xc8\xb1\x01\x83\x8e\xe1\x51\x31\x96\x95\xc0\xac\x2a\xce\xf5\xf1\x91\x0b\xc9\x52\xbe\xbc\x7f\x68\x9f\x52\x06\x7f\x81\xc1\x8c\x5d\xfa\xc9\x00\x57\xcd\xbd\x0f\x75\xe9\x28\x16\x3a\xeb\x09\xef\x01\x59\xb6\x6d\xa4\x21\x08\x34\xca\x8e\xe3\xe2\x85\x27\x0b\x51\xf5\xe2\x56\x86\x7c\xe6\x22\x92\x3f\xd3\xc4\x0e\x61\x5e\x13\x42\x41\x8a\x19\x6f\xcb\x8e\x2b\x56\x48\x67\x22\xf7\xb5\xca\x52\x4c\x75\xdb\xdb\x9b\xe6\x31\x4b\x7a\xd5\x90\xb5\xcf\x8f\x80\xd7\x92\x7d\xda\x79\xce\xb1\x36\x9d\x78\x0f\x33\x38\xc1\xef\xb8\x3c\xa7\xbd\xda\x05\xf8\xca\x94\x45\xb5\x00\xc0\x50\x63\x59\xa4\xba\xa2\xa8\xee\x7e\x8b\x4a\xfb\x48\xdb\xdc\x2a\x56\x19\x4a\x8d\xa4\xd1\xac\x42\x52\x45\xb8\x3e\x1e\x8e\x44\x8a\x29\xda\x4e\x20\x71\xae\xa3\xb8\xef\x3a\x3c\xb5\x82\x7e\x61\x6d\x47\x07\xf8\x51\xee\xa6\x26\x09\x72\xea\xde\x34\xda\x0a\x8f\x34\x40\x7f\x4d\x3e\x45\x5b\xa0\xaa\x02\x6a\x85\x3e\xbb\x5e\x6d\x64\xe9\xd8\x10\x5e\x69\xb8\x4e\x36\xfb\x57\xa8\xb6\xe0\xe7\xcb\xb9\xe5\xd5\x24\x98\x80\x36\xd9\x58\xe3\x2a\x38\xf5\x97\x7b\x3c\x70\x38\xc9\x83\x99\x4f\x08\x88\xfe\x30\x91\xaa\x1f\x45\x91\x9f\x06\x02\xb5\xd7\x50\x73\x8b\x17\x1b\x97\x87\xaf\x29\x6f\x2b\xa5\xfe\xe3\x11\xa1\x6f\x1c\xdc\xd8\x10\xa6\x68\x9a\xc7\xa7\x5b\xc1\x9e\x69\x33\x95\xb0\x0c\xfd\xaf\x13\xcc\xa6\x67\x0a\x47\x2d\x44\x9e\x9e\xfe\xf6\xe0\xf9\xd1\xc1\xab\xaa\xba\xaa\x37\xe2\xb2\x7d\x7d\x67\x23\xd9\x8a\xf8\x00\xa0\xb2\xb5\x19\x6b\x28\x4a\x9e\x11\xa5\xc5\xe6\x2c\x4d\x86\x25\x22\x25\x42\x25\x21\x6d\x4f\xf2\x1a\xfd\x49\xbd\x07\xf7\x4e\x9d\x18\x9b\xc5\x76\xd3\xdd\x39\xa7\x39\x77\x98\x75\xe2\xdc\xbc\xf3\x56\xa5\x2c\xa0\x8c\xb2\x9e\xae\x85\x79\xca\x66\x08\xa1\x94\x13\x59\x41\xee\xd7\xe3\x30\xde\x08\xa9\xe5\x09\x5b\x17\x7c\xe2\x6b\x23\x21\xe7\xac\x98\x62\xba\xce\xf3\x71\xc4\xd2\xe9\xdc\x8b\xab\x91\x18\xa1\x5f\xf9\xfc\x46\x79\xa1\xd0\xee\xb6\x48\x06\xa8\x0c\xc7\x39\xed\xfd\xdf\x9d\x4f\xa2\xf4\x2f\x87\x02\x12\xc2\x3a\xe8\x1e\xbc\x91\x68\xc9\x55\x53\x50\x41\xc1\xce\x54\xed\xf8\xe3\xca\xe6\x68\x4d\xab\x1b\x1e\xed\x16\xb2\x5b\xc6\x67\xa3\x66\x91\xd0\xe0\x50\xa4\x9f\x2d\x78\x2e\xd9\xec\x3f\x94\xd5\x0c\x8d\x33\x58\xa8\x23\x75\xd3\x60\x5f\xdb\x79\x12\xb1\xfc\x3e\xd9\x15\x5f\xb1\x05\x2c\x93\xe6\x10\x05\xc2\xf6\xa8\x7c\x42\xcf\x68\xaf\xf9\xe6\xc9\xe1\x98\x13\x65\x37\x70\xc4\x39\xcc\x39\x7f\x9e\xcb\xa2\x7a\x99\xb0\x82\x05\x4d\x8f\x44\xa5\xb8\x2b\xae\xa6\x8b\xd8\x49\xcd\xe7\x04\x4a\x27\x79\x2a\x26\xb3\xa1\x2d\x93\x8c\xb6\x50\xa8\x91\x41\x24\xbe\x06\x9a\x1d\x8a\x0f\x98\xd9\x87\x68\xf9\x14\x4a\xfc\xc8\x51\xb3\x38\xa8\x4d\x79\x7c\x35\xa7\x65\x71\x11\xfa\x42\x78\xb6\x2e\xee\x95\xe3\xdd\xed\xb8\x91\x6d\x03\xc9\x3e\xc8\x84\xac\x97\xe2\x9b\x1d\x44\x90\xec\xae\x90\x62\x8e\xd2\x61\xeb\xcb\xbd\x4d\x0c\x12\xd1\xc2\x95\xe6\x68\x3d\x68\x5c\x50\x8d\x14\xf2\x89\xf5\xb0\xc8\x6b\xbd\x05\xc3\x1e\xdb\x6e\xf4\x6a\xba\x2a\xbe\x24\xf5\x3c\x90\xb3\x3a\xc3\xb8\x03\x36\x16\x68\x7a\x9d\x3b\x29\x00\x87\x6c\xb4\x87\x91\x45\x77\x1c\x09\x57\xa0\x7d\x37\x1f\x98\x26\xe6\x41\x08\x9e\x34\x7c\x15\x5f\xd6\x2c\xf1\x76\xbb\x4f\x6a\xf7\xc2\x23\xb4\x5c\xfd\x0e\x0a\x54\x10\x92\x25\x27\xf9\xa8\x9a\x8b\xb8\x64\xf4\x97\xa7\x63\xfa\xc9\x41\x09\x74\x10\xf4\x48\x37\x3d\x12\x32\x95\x5c\xdd\x4c\x06\x73\x64\x15\x1a\xe3\xf5\x7e\x3b\xd6\x11\x97\x5e\xb1\x89\xe3\xde\x3d\xe6\x59\xb8\xf5\x8f\xc7\xbc\x86\xbb\x77\x17\x71\x1a\xea\x0f\x51\x2a\xe8\xfb\x8f\x0d\xad\x0b\x9a\x91\xcb\x4b\x1d\x51\x20\x95\xde\x29\x23\xa5\x4a\xdd\x08\x83\xf1\xb1\x94\x08\x2a\xbb\x2d\x77\x10\x5e\x9d\x00\xd2\x3e\x0c\x0e\x22\x26\xcb\x2f\x83\x1d\x10\xa6\x62\x23\xd9\xf7\x17\x26\x05\x58\x31\x8f\x72\xb6\x69\x26\xe0\xae\x2a\x16\x9b\x8f\x5f\xb8\x6d\x9f\x61\x17\x60\xd9\x62\x62\x18\x79\x1f\x7a\x18\xb8\x07\xe1\x2d\xd6\x1b\x89\x5d\x96\x88\x5c\x8a\x39\xae\x56\xfa\xa0\x98\x7a\x4b\xc6\x34\xbf\x63\x89\x02\x28\x8c\xbe\x30\x4d\x2e\x60\x85\xb3\x5b\xbd\x8c\x69\xf7\xc7\xbc\x08\xa5\x47\x64\xe5\xa5\x8c\x36\xda\x85\x14\x92\x3c\xab\xca\x33\x94\x08\xa4\xd4\xc4\xa0\x55\x20\xb8\x41\x50\xe1\x49\x38\x61\xb1\x20\x8a\xb6\xd2\x00\x7f\xd4\x70\x71\xec\xd8\x41\x9c\x4d\xe3\x87\x64\xca\xec\xb0\x93\xa2\xcc\x82\x59\xf4\x13\xef\xcb\x13\xe1\x94\x51\xd2\x2b\x9b\xd8\xa1\x92\xf9\x18\x4f\x62\xc4\x38\xb1\xfa\x98\x8c\xdc\x16\xb4\x3a\x19\xed\x3c\xa3\xdc\x13\xbd\xad\xa0\x11\x8c\xf9\x61\x32\xee\x3a\x06\xdb\x5e\xec\x80\xf4\xc9\x56\xb3\x92\x8f\x59\x23\xc5\xa7\x43\x52\xcc\x62\xea\x9e\x8a\x03\x10\xff\x95\x3d\x4f\xd8\x86\xd2\x6d\x6e\x5c\xcb\xb8\xc9\xaf\xda\x42\x4c\xe0\xe0\xc6\x6e\x3b\x51\x12\xf9\x3d\xe9\x88\xf1\x78\xf1\x03\xde\x77\x66\x3c\x3f\x37\x48\x3a\xef\x8a\x49\xb0\x6e\xd8\x64\x42\x55\x33\x36\xa2\xea\x07\x63\x50\xf3\x73\x0d\x60\x71\x64\xb7\x45\x9b\x9e\x90\xe3\xf9\x8a\xb8\x13\x20\x18\xd0\x2c\x86\xb6\x5d\x5e\x23\x58\xc6\x6e\xe8\xd6\x57\xa6\x58\x6a\xf7\x0e\xb2\x53\x69\x42\xb0\x73\x3f\x99\xd3\xdc\xb2\xeb\xb4\x98\x57\xd3\x84\xa8\x70\xcb\x0b\x62\xe3\x18\xa1\x30\xf1\xd9\x05\xa1\x2c\x71\xc3\x19\xad\x38\x0a\x8b\x02\x2d\x4e\x3f\x5f\x5e\xe1\xbb\x17\xd5\x5b\xec\xff\xb1\x28\xfd\x61\xd9\x93\xb5\xe0\x3d\x6d\x0d\x86\x4b\x24\x81\xdd\xe4\xf0\xe4\x72\x80\x0e\x84\xd9\x7b\x2a\x12\x66\x1b\xfb\xb9\x07\x0f\x37\xcd\x45\x8f\x0d\x43\x47\x40\x03\x49\x12\x39\xf6\x98\x70\x24\x38\x6a\x28\x18\x51\x79\x7d\x13\x22\x75\x2e\x6e\x24\xb1\x60\xfc\xdd\xe4\xa4\x29\x38\x3a\x69\x04\x35\xf1\x20\x0d\x0a\xd9\x58\x74\x01\x1d\xb8\x9d\x4f\xfa\xf2\x23\x2e\x84\xa7\x67\x62\x00\x09\xfa\x3e\x53\x4c\x50\xb2\x65\x68\x05\xa3\x80\x79\x9a\x16\x81\x7b\x35\x0a\x3b\x23\xd4\xd0\x3f\xcf\xff\xe4\xcf\x04\x82\x83\xc4\x71\x44\x18\x9d\xc9\xb9\x65\x37\x5c\xff\x5e\xe4\x17\x1a\x23\xc1\x72\xfe\xf7\xa8\xdd\xef\xd1\xc2\x4b\xe3\x38\x20\x36\x91\x22\x7c\x30\x56\xf7\x76\x1e\xca\x36\x08\x78\x51\xae\xff\x7f\x91\xe8\xac\xeb\x96\xd7\xb2\x10\x82\xa9\x5d\x6b\x79\x6a\xd7\x68\x8b\x9c\x48\x75\x4f\xa3\x4d\x28\x73\xc1\x37\x70\x12\xcc\x16\xa7\x98\xe8\x0c\x71\xd5\x75\x95\x72\xb1\x7e\x3a\x01\x3f\xa2\xe8\x78\xa5\x19\x4c\xe5\x35\x8e\xce\xc5\x60\x2f\xb2\x06\xd5\x90\xff\x76\x5f\x57\x75\x59\x04\xd4\x36\x1e\x11\x8f\xb1\x8f\x8f\xda\xd8\xdf\x38\x7f\xe6\x3f\x79\x67\x8e\xa9\x13\xd3\xb1\x63\x39\x55\xf8\xe1\x1c\x2d\x8d\x7c\x71\x67\x91\x23\x41\x88\xbd\xcb\x7b\xcc\xcc\xc6\xf3\xeb\x85\x99\x3e\xbe\x53\x47\x8b\xf9\x2d\xff\xf2\x33\x31\xf3\x94\xf2\x16\x42\x64\xa6\xc0\x29\xd0\xc8\xbb\x9a\x41\xe0\x9c\xc3\x5e\xff\x2a\x58\xd4\xad\x3b\x92\xb4\xd6\x82\xc7\xac\x73\xa7\x28\x89\x2b\xb1\x1b\x57\xc3\x9a\xed\x49\x70\x9c\x20\x0e\x91\x6b\xcb\xa5\x22\x9d\x16\x04\x3e\x34\xb1\xc0\x42\x23\xbe\x93\x78\x4e\x3d\xe8\xb7\x43\x49\x42\x5c\xf0\x73\xd7\x06\x85\x65\xe7\xd9\x14\xf2\x65\x73\x58\x1d\xc9\x19\x91\x9f\xee\xc1\x81\xd3\x71\xcc\x66\x29\xf8\x95\x72\x8f\x85\x26\xac\xef\x9c\xe5\x01\x10\xfd\x92\x57\xfc\x67\x7d\xe7\xfa\x23\xf9\x8f\x35\xba\x06\x86\xfc\x65\xd0\x74\xc4\x12\xa5\xe0\x2a\xd0\x67\x83\x6f\x80\xfc\x24\x43\x7e\x2d\x0d\xec\xff\x85\xb1\x02\x9e\x28\x66\x0b\x34\x48\x51\xa0\xbe\x45\xcd\xc1\x07\x16\xa0\x59\x74\xe5\xe0\x9d\x00\xf9\x94\xa4\xde\x6e\x97\xcf\x71\x48\xc3\x4e\xbe\xb5\x56\x5b\xe0\xec\xcf\x4d\xfa\x7c\x8b\x70\x69\x1d\x0a\x4f\xc4\xad\xf4\x0a\x04\x97\x77\xec\xf5\x60\xda\xaf\xe4\x37\xbb\xb8\xaf\x38\x0a\xd9\x08\x19\xf3\x01\x82\x02\xe7\x38\x51\x9d\x37\x2b\xdb\x17\xf7\x71\xa2\x9d\x8b\xc5\x84\x51\x26\x25\x67\xd3\x8b\xeb\x9f\xc9\x2e\x00\x0c\x18\xdf\x63\x24\xe6\xc4\xda\x79\x47\x54\xc8\x49\xb2\xfd\xed\x1b\x67\xac\x18\xb4\x8a\x8b\x05\x77\x3d\x62\xe2\x4e\xc7\x8a\xd9\xcb\x00\xb9\x95\x9f\xe2\x0c\x0d\x87\x78\xad\x63\x62\x60\xaf\x68\xe1\xf3\x36\xe0\xa9\x67\x8b\x7c\x84\x75\x2a\x62\x43\x55\x25\x73\x80\xfe\x51\xd9\x8e\x1c\x17\xb6\xf0\x26\xff\x82\x06\xe9\xb1\xb4\xc0\x45\x1c\x9e\xe8\xa5\xde\x6a\x38\xa2\xbf\x52\x81\x0f\xa1\x7f\x81\x1a\x4d\xc5\x69\x31\xec\x4d\xe8\xfe\xe4\x7c\x55\x34\x41\xaa\xf1\x68\x3f\x94\xf5\xe6\xfa\xd5\x4e\xaa\xf6\x6e\x6d\x6a\xcb\xd6\x27\xd6\x4e\x05\x45\xef\xb2\x65\x07\x41\xd6\x5b\xfb\x41\xb1\x2d\x84\xb5\xf8\xa9\x2a\xe9\x78\xdb\x26\x12\xae\xda\x68\x23\xb3\xd4\x22\xe5\x64\x29\xe7\xfe\xa6\xa7\x02\x80\x01\xe7\x0c\xda\x4c\x3b\xdc\x74\x17\x50\x85\x8e\x4a\x4f\x44\xcb\x87\xe4\x71\x12\xae\x9a\x03\x38\x56\x94\x02\xc3\x86\xb1\xf2\x32\xba\xc1\x45\x67\x93\x46\x2d\xa3\x38\xb3\x85\x1b\xb3\x1d\x93\xe6\x4d\x61\x47\x3b\xcb\xbf\x40\x0d\x0f\xc9\x9b\xf5\xe0\x6b\x98\x91\x22\x51\x8f\x61\x49\x8d\x82\x65\x84\x6c\x6b\x59\x6b\x73\xd4\x9a\x13\x86\xcf\x28\x40\x6b\x33\xd9\x0e\x9d\x91\x9a\xf9\xbf\x0e\x74\x45\x60\x61\x34\x3c\xe0\x7f\x46\x19\x1f\x05\x0c\x5f\x69\xf4\xc6\x2d\x89\x56\x17\x77\x5e\x1c\xce\x6e\x82\xa9\xb3\x00\xea\x5c\xed\x96\x67\xb7\x84\xe5\x9b\x68\x7c\x8f\x48\x70\x77\xc2\x45\x8d\x6d\xb7\x26\xcb\xf0\x09\xc3\x3c\x92\x57\x6f\x35\xa1\x49\xa7\xaa\x11\xf2\x9c\xca\xd5\x79\x67\xfc\x3e\xc9\xcd\xa6\x5a\xe3\x0b\xa1\x75\xbf\x3e\x40\x5a\x30\x3c\xae\xed\x44\x0e\xd2\x1a\x99\x73\x5c\x4f\xe5\x24\xf8\x42\x39\x71\x47\x3d\xb4\x8f\xa5\x05\xf4\x4a\x4d\x13\x56\xb8\x2a\x90\xc7\xf5\x81\x73\x2f\xeb\x08\x9c\x0e\x83\x01\xff\xc5\x4d\x32\x07\x57\x14\x47\xc4\xf7\x5d\x96\xb0\xba\x58\x87\xa5\x58\xda\x9a\x2f\xf2\x72\x6f\xa8\x74\x8c\x21\x79\x27\x61\x93\x69\x5b\xf0\x36\x58\x97\x8b\xda\xa7\x4b\x4c\x02\xfb\xf0\x0c\x1a\x5a\x9e\xca\x00\x9e\x7a\x3b\xfd\x5d\x48\x88\x1c\xec\xb7\x43\xe5\xb6\x5b\x0c\x0b\x1e\x02\x4b\x80\x04\x48\x53\x26\x5a\xc0\xee\x2f\xd9\x2d\xde\xbb\xd5\x9c\x4d\x4c\xb3\xa0\x9d\x83\xf9\xdf\xc5\xc2\x74\x11\x1e\xc8\xca\xab\x4c\xbc\x65\x51\x8e\xf6\xa8\xe2\xe0\xf1\x49\x93\xc1\x7a\xf6\x6d\x7d\xd5\xd3\x06\x43\xb2\x39\x1b\x72\x89\x75\xf3\x88\x6b\xb0\xc6\x40\x65\xc8\x7e\xec\x0c\x28\x69\x6a\x07\xd1\xc3\x04\x16\xb7\x90\x1d\xcd\x4f\x94\x13\x9c\x91\x7d\xc9\x86\xff\x15\xf1\x36\x4b\x22\x7c\xf5\x94\xba\x63\xe2\x83\x62\xe5\x21\x17\xa5\x46\x9f\xc1\x5d\xed\xb4\x5c\x7e\x12\x4b\x58\xb0\x14\xe2\xc4\x98\x93\x3e\xc3\x62\xab\x60\xc7\x58\xdb\xc1\x5c\xc7\xb1\x7b\x36\xfd\x92\x65\xf9\xd5\x85\x7f\xdb\xa2\xed\xb3\x6a\x35\x5c\x52\xf5\x3d\x09\xf0\x3e\x47\x4c\xa4\x5a\x06\xf9\x99\x5d\x1f\x10\xb0\xbe\x32\x33\xeb\x83\x1b\x04\x72\x00\xd3\x54\x72\xb2\x13\x7b\xc2\xfb\x77\xb8\x19\xda\xf9\xa8\xe9\xb8\x53\xd9\x52\x93\x19\x93\xf9\x2c\x62\x09\xa3\x58\x7a\xd8\x12\x98\x9d\x85\x7a\xae\x67\xaa\x7e\x87\x27\x5f\xc3\x4b\xe4\xb3\xb7\x8b\x47\x5c\x32\x00\xe3\x5f\x04\x53\xbc\xdd\x00\xd8\xd7\x18\xa5\x28\x6c\xb4\x7d\xee\x49\xd9\x0a\xfe\xd7\xf4\xfe\x42\x49\x6b\xa3\x3c\xf1\x3d\x6f\x17\xc1\x05\xed\xdb\x25\xc8\x76\xd6\xf5\x2a\x21\xcf\x09\x8d\x42\xd9\xbf\xc7\x2f\x05\x35\x28\x1f\x6c\x02\x21\x03\x45\x5d\xcb\x87\xfc\xd5\x05\xd7\x71\x4e\x79\x41\x7c\x9f\xcd\x32\x20\x8e\x38\x8c\x9d\x50\xe5\x61\xf2\x31\xa0\x9c\xc7\x31\x49\xf2\xec\x24\x8b\xd1\xfc\x88\x5f\x3e\x10\x59\x65\x9b\x1a\x4a\xc9\x78\xbb\x5c\x81\xb0\x93\xda\x5b\x9d\xc2\x93\x09\x6b\xa9\xfd\xbe\xc0\x05\x02\x19\x2e\x4f\xae\x10\xaf\xd3\x60\x5c\x2c\x02\x0a\x62\x8a\x05\x5d\x56\x59\xc3\xef\xfb\x76\x44\x68\x34\xa8\xe8\x4e\xdf\x52\x39\xc9\xea\x6c\xb6\xcb\x85\xae\xf6\x4b\x68\xbc\x7e\x2f\x96\x85\x6f\x65\xe9\x76\xba\x1b\xd5\x25\xc1\x96\x5e\xc7\xa2\xd9\x54\xcc\x99\xfb\xa8\xfa\x13\xd3\x29\x22\x7f\x7f\x93\x21\x68\x9c\x63\x1a\x12\xdc\xb0\xac\x99\x48\x7b\xfe\x47\x25\xe9\xb7\xd0\x1e\x84\x81\x02\x49\x43\xcc\x35\xf7\xa0\xe8\x7a\x21\x42\xa9\x22\x9d\x35\x3b\x41\x28\x89\x7a\x9b\x3b\xc4\xa4\xeb\xc8\x2d\xde\x1c\xbf\x76\x16\xdc\x65\x44\xe0\x5d\xb9\x08\x20\x3e\xc5\x68\xb9\xf4\x88\x93\xa0\xfc\x9a\x1a\x77\xcb\x73\x40\xaf\xe9\x77\xb5\x1f\x3a\x4a\x1e\x55\x5a\xb8\x11\xb9\x72\x39\x96\xed\x60\xb7\x01\x84\xc5\x38\xcb\xde\xd3\x27\xfa\xda\x7d\x9a\xc2\x05\xb3\x29\x58\xcf\xce\xeb\x3c\xee\x19\x2d\xa0\x3e\xfd\x31\x47\x6c\x88\xdf\xd0\x58\x12\xdf\x72\xc9\x77\xd1\x7f\x44\xae\x5d\x69\x6f\x33\x61\x85\xd2\xd9\x07\x79\x74\x7d\x6d\x91\x34\x7d\xa9\x6b\x40\xff\xbd\x32\x3f\x16\x02\x2e\xa6\x3a\x74\x40\x77\x89\x3f\x6e\x16\x99\x1d\x65\x84\x9d\x65\xcb\xcd\xc1\x0f\x83\xdb\x70\x81\x09\x35\xcb\xa0\x4e\xde\x08\xf7\x4a\x72\x61\xa2\x86\x13\x0e\x14\x71\x84\xc0\xf1\x28\x27\xd7\x4f\xc6\xc8\xdb\x93\x54\xfe\x3c\xa3\xe0\x44\x0a\x06\xe3\x2b\x15\x66\x23\xb3\x58\x7c\x7b\x23\x87\x29\x54\xfa\xa2\x7e\xb7\x18\x82\xbf\x94\x5f\x03\x5b\x72\x12\xdf\x25\x23\xa7\xe8\xc5\xac\x16\x58\xbf\xa6\xa4\x60\xad\x97\x39\x77\xdc\x59\x28\x38\x71\xb6\xde\x43\xe4\x92\xf8\xd4\x76\xbf\x34\x0f\x7f\x6a\x92\xa3\x8d\xc4\xab\x15\xbd\xd3\xe0\xff\x15\x95\x9c\x7c\x49\xda\x65\x81\x0e\x60\x06\x0c\xce\xfe\xfd\x93\x1c\xe9\xe5\x42\x4c\xb6\xfa\xa2\x7e\x2e\x26\xb3\xa2\x3f\x52\xb9\xca\x19\xae\x15\xba\x0b\xfe\x5e\x47\xb5\xa7\x00\x40\x2d\xed\xa7\xf5\x33\x78\x97\xdc\x23\xfe\xe1\x1c\x62\x38\x3a\x3f\xbd\x1f\x28\xae\x2a\xc4\xcc\xed\xfc\x92\x64\x18\xd0\xdb\x7d\x6e\x22\x83\x31\xac\x7a\x8d\xf3\x11\x93\xee\x68\xbc\xcc\xb0\x4a\xa7\xfd\xd4\x8c\x9e\xa7\x4e\xa5\xa8\xb0\xce\x94\xe7\xa3\x1c\x3d\xc5\x96\xfd\x10\xd3\x03\x80\x28\x0e\x61\xbd\x2c\x11\x62\x5e\xa9\xf1\xad\xa2\xe0\x31\xeb\x80\x7d\x57\xb3\x6a\x17\xf3\xbc\x74\x88\x81\xa5\x6a\x98\x77\xe3\x58\x38\x8f\x2d\x49\x3c\x61\x94\x3c\x79\xc8\x87\x9a\xd7\x4e\x51\x5c\x9b\x38\xb1\x0f\x6b\xf4\xc0\xbb\xe1\x29\xfa\x8f\xcf\x2c\x2a\x82\xe9\x13\xec\xe2\xd3\x3a\x33\xa5\xc7\xa5\x81\xe7\x57\x14\x20\xf1\x4f\x21\x05\xd3\x76\xab\xa2\xaa\x5c\x5f\x58\x10\xd7\xe3\x4e\x78\xab\xe7\x68\x65\x54\x07\x19\xd2\x63\x4b\x38\x4f\xbb\x84\x0c\x05\xec\x3b\xc2\xe5\x3a\xf1\x30\x56\x14\x16\x80\xab\xa6\x7a\xdb\xe6\xe8\x88\x8b\x2d\x88\x95\x9e\xb9\xe9\xa5\x6f\x98\x55\x2b\xd0\x83\x23\x0a\xf6\xae\xfb\xd8\x35\xad\xf9\xf5\x0f\x0d\xaa\xe9\x81\x4c\x67\x02\xf7\xd0\xb1\xe9\xca\xde\x35\xa3\x53\x6d\x62\x7d\x92\xa3\x01\x17\x72\x77\x91\x00\x45\xd0\xff\x08\x6e\xd8\x4e\x61\xc4\x2c\x82\x3f\xdd\x8b\x7e\xf1\x69\x1d\x44\x64\x5b\x40\xca\x57\xa1\xcc\xc0\x13\xda\x6a\x24\xcb\xd4\x32\x57\xbf\xc0\xbf\x69\x6c\x7a\x60\xbb\x6d\xd6\x77\xb3\xa7\xc2\xf3\x78\xb3\xa9\x63\xab\xbb\x27\x15\xc9\xb7\xb5\x7f\xb7\x95\x9a\xe9\x70\xc1\xbe\xd9\x3a\xd0\x7e\x05\x07\xae\xc8\xee\x94\xfc\xa0\x97\xa4\xd0\x66\x93\x97\x2a\x4b\xcf\xf3\x68\xbd\x4b\x34\xe1\x30\x9c\xa8\xc8\x47\x07\x5a\xf2\xeb\x5d\xba\x14\x44\x13\x21\x19\x78\x81\xad\x53\x5f\x78\x92\x93\x52\x61\xf2\xfb\x94\xe1\x73\x94\x31\x63\x27\xb5\xb6\xa0\xc7\x77\x8d\x4f\x8e\xe2\xa5\x39\xee\x3b\x4c\xd3\x9b\x53\xf3\x71\x61\x4e\x71\xd9\xe0\x53\x83\x20\x44\x59\x0c\x0c\xad\x40\x19\xfe\x55\xe8\x48\x9e\x9a\xba\x62\x04\x90\xa8\xea\xb8\xac\x8b\x06\x92\x84\x18\x5b\xd7\xb8\x19\xfe\x01\x83\xba\x8b\xb7\x38\x2e\x19\xf9\x5f\x3f\x60\x7d\x87\xf6\x71\x8d\x86\x89\xd0\x39\x4d\x5e\x88\xe1\x4e\x2c\x8d\xea\xfb\x59\x0d\x4c\x1f\xb1\xbd\x76\x08\xaf\x6e\x4a\x2b\xaa\x2a\x0c\x27\x04\x4f\x00\xb5\xdf\x03\x4b\x13\x1d\xa8\x68\x8a\x25\x0c\x08", 4096); *(uint64_t*)0x200213c8 = 0x20021300; *(uint32_t*)0x20021300 = r[0]; *(uint32_t*)0x20021304 = r[0]; *(uint32_t*)0x20021308 = r[1]; *(uint32_t*)0x2002130c = r[0]; *(uint32_t*)0x20021310 = r[1]; *(uint32_t*)0x20021314 = r[1]; *(uint64_t*)0x200213d0 = 0x20021340; *(uint64_t*)0x200213d8 = 0x20021380; *(uint32_t*)0x200213e0 = 0x1000; *(uint32_t*)0x200213e4 = 6; *(uint32_t*)0x200213e8 = 0x3d; *(uint32_t*)0x200213ec = 3; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200213c0, /*actual_bytes=*/0x20021400, /*actual_handles=*/0x20021440); if (res == ZX_OK) { r[4] = *(uint32_t*)0x20021380; r[5] = *(uint32_t*)0x20021384; r[6] = *(uint32_t*)0x20021388; } break; case 4: *(uint64_t*)0x20031540 = 0x20021480; *(uint32_t*)0x20021480 = 0; memset((void*)0x20021484, 0, 3); *(uint8_t*)0x20021487 = 1; *(uint64_t*)0x20021488 = 0x66c69d1b00000000; *(uint32_t*)0x20021490 = 2; *(uint32_t*)0x20021494 = 2; *(uint64_t*)0x20021498 = 9; *(uint64_t*)0x200214a0 = -1; *(uint64_t*)0x200214a8 = 2; memset((void*)0x200214b0, 0, 1); *(uint64_t*)0x20031548 = 0x200214c0; *(uint64_t*)0x20031550 = 0x20021500; *(uint64_t*)0x20031558 = 0x20031500; *(uint32_t*)0x20031560 = 0x38; *(uint32_t*)0x20031564 = 0; *(uint32_t*)0x20031568 = 0x10000; *(uint32_t*)0x2003156c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[5], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20031540, /*actual_bytes=*/0x20031580, /*actual_handles=*/0x200315c0); break; case 5: *(uint64_t*)0x200416c0 = 0x20031600; *(uint32_t*)0x20031600 = 0; memset((void*)0x20031604, 0, 3); *(uint8_t*)0x20031607 = 1; *(uint64_t*)0x20031608 = 0x4fcfbc1100000000; *(uint32_t*)0x20031610 = 0; *(uint32_t*)0x20031614 = 1; *(uint64_t*)0x20031618 = 0xc1; *(uint64_t*)0x20031620 = -1; memcpy((void*)0x20031628, "*[#,)&,-[)}", 11); *(uint64_t*)0x200416c8 = 0x20031640; *(uint32_t*)0x20031640 = 0; *(uint32_t*)0x20031644 = r[5]; *(uint64_t*)0x200416d0 = 0x20031680; *(uint64_t*)0x200416d8 = 0x20041680; *(uint32_t*)0x200416e0 = 0x38; *(uint32_t*)0x200416e4 = 2; *(uint32_t*)0x200416e8 = 0x10000; *(uint32_t*)0x200416ec = 4; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200416c0, /*actual_bytes=*/0x20041700, /*actual_handles=*/0x20041740); if (res == ZX_OK) r[7] = *(uint32_t*)0x2004168c; break; case 6: res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/0x104d); if (res == ZX_OK) r[8] = res; break; case 7: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t))CAST(zx_channel_create))(/*options=*/0, /*out0=*/0x20041880, /*out1=*/0x200418c0); if (res == ZX_OK) r[9] = *(uint32_t*)0x20041880; break; case 8: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t))CAST(zx_exception_get_thread))(/*handle=*/r[5], /*out=*/0x20041900); if (res == ZX_OK) r[10] = *(uint32_t*)0x20041900; break; case 9: *(uint64_t*)0x20041bc0 = 0x20041780; memcpy((void*)0x20041780, "\xfa\x2f\x40\x69\xc5\xf5\x4d\x24\x79\xf8\x4d\x1d\x73\x3a\x52\xf5\x9f\x0a\x68\x70\x94\x66\xe6\x63\x3a\x63\x18\xf6\x05\x7f\xbf\xc9\xf0\x48\xb0\x9b\xfb\xb6\x39\x05\xdc\x82\x47\x45\xb1\x62\x47\xee\x57\x0e\x79\xaf\x77\xfd\xe7\x3b\xe0\x86\x53\x56\x84\x1b\x89\x97\xc5\x5e\x4c\x9b\x79\x2e\x2c\xd8\xc5\xac\x57\x89\x60\xab\x6b\x2d\x80\x4c\xd8\x9e\xb8\xf0\xde\x21\x51\xa1\x69\x3b\x64\x98\xd6\x1a\xbe\xdb\xd5\xdb\x7c\xae\x8b\x09\xf9\x4c\x6d\x94\x2c\xb3\x10\x51\x52\x49\x61\xcc\x82\xc4\x94\x0a\xf1\xab\x9c\xee\xba\x52\x71\x6e\xb2\x5b\x87\x0e\xaf\xbb\x41\xd9\xa1\x56\x2e\x96\x70\xdf\x00\x38\x4a\xa9\x55\x4b\x70\xf9\xa1\x66\x83\x41\x50\xf2\xe3\x72\x15\xe4\x13\xba\x12\x38\xa1\x81\xd4\xf7\x43\x58\x43\xb6\xbb\x56\xfa\x88\x61\xd8\x68\x80\x01\xd3\x9d\x9e\x2b\x18\x9f\x67\xe8\x05\x33\x11\x89\x64\x29\x97\x63\xf5\x86\x82\x8c\x69\x3c\xc9\x71\x2a\x9c\x25\x52\xdc\x30\xe5\x72\x25\x21\x2f\x5a\x50\xef\xe5\x6d\xa9\x9a\x32\x82\x4c\x4c", 227); *(uint64_t*)0x20041bc8 = 0x20041a80; *(uint32_t*)0x20041a80 = r[9]; *(uint32_t*)0x20041a84 = r[10]; *(uint32_t*)0x20041a88 = 0; *(uint32_t*)0x20041a8c = r[1]; *(uint32_t*)0x20041a90 = r[6]; *(uint32_t*)0x20041a94 = r[0]; *(uint32_t*)0x20041a98 = r[4]; *(uint32_t*)0x20041a9c = 0; *(uint32_t*)0x20041aa0 = 0; *(uint64_t*)0x20041bd0 = 0x20041ac0; *(uint64_t*)0x20041bd8 = 0x20041b80; *(uint32_t*)0x20041be0 = 0xe3; *(uint32_t*)0x20041be4 = 9; *(uint32_t*)0x20041be8 = 0x9a; *(uint32_t*)0x20041bec = 8; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); break; case 10: memcpy((void*)0x20000000, "\xc4\xe1\xd9\xd2\x9e\x91\x00\x00\x00\xc4\x81\x71\xfd\x84\x48\x00\x00\x00\x20\xc4\xa1\x7f\x70\x44\xba\x34\x0e\xf3\x0f\xae\xd6\xc4\x62\x79\xa7\x5d\x03\xc4\xc2\xfd\x96\x42\xa7\x2e\x66\x43\x0f\x38\xf5\x59\x00\x42\x0f\x34\xc4\xe1\x78\x2b\x42\xc0\xc4\x42\x65\x92\x24\x2c", 66); syz_execute_func(/*text=*/0x20000000); break; case 11: syz_future_time(/*when=*/1); break; case 12: syz_job_default(); break; case 13: syz_mmap(/*addr=*/0x20ffe000, /*len=*/0x1000); break; case 14: syz_process_self(); break; case 15: syz_thread_self(); break; case 16: syz_vmar_root_self(); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); do_sandbox_none(); return 0; } :421:75: error: use of undeclared identifier 'zx_channel_call_etc' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor2787301916 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/9 (0.49s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:0 Slowdown:1 Sandbox:none SandboxArg:9223372036854775807 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:false Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(0x0, 0x0, 0x0, &(0x7f00000100c0)={&(0x7f0000000000)={{}, {0xffffffff, 0x0, {0x4, 0xffffffffffffffff}}}, &(0x7f0000000040), &(0x7f0000000080), &(0x7f0000010080)={{0x0, 0x0, 0x0, 0x0}}, 0x28, 0x2, 0x10000, 0x4}, &(0x7f0000010100), &(0x7f0000010140)) (fail_nth: 1) r3 = zx_deadline_after(0x5) (async) zx_channel_call$fuchsia_io_DirectoryAdminLink(r2, 0x0, r3, &(0x7f0000020240)={&(0x7f0000010180)={{}, {0x3, 0xffffffffffffffff}, 0xffffffff, {0x1b3}}, &(0x7f00000101c0), &(0x7f0000010200), &(0x7f0000020200), 0x34, 0x1, 0x10000}, &(0x7f0000020280), &(0x7f00000202c0)) (rerun: 4) zx_channel_call(r2, 0x0, r3, &(0x7f00000213c0)={&(0x7f0000020300)="6b3c1256279544bb32d36243afcbfda5cd1a1759ba09b008c97e2be49ab10adda6d88f529de7b04ad9b0fdd96d3184196e8e6975312bf6a2c53df14551fa4b32627dd679eef9c59f190ca4036814372cf510d02917535f1f02da97f6d1601f3e89e10a621b4e82ba76d41a2f87249736cd35a2432bf368daf43f60387c27f9177614c2f4d4fd31ddd5e08d63429d663ee14a1932bf8f4df70369f3c2a75197422ed0022be80fd87b79db2a43499a48bdcd91246573303a4508e17cf020c64c577b8bb0926c4bde1560a77446497e5bafec8429a311719384f637c4a008c3ddd62610dbb1d4c2dd8f1bd73e7f3657fcf24dbb896a145b28f34098f9d40199c5b72003c4e08eab96aec066bf2d97c2661f4cd91c59cd4f9e4f5617cfd6ada6e04953cc4c7be1c3f10de31e155dd174e99f4136cae08e308b3c22b5d1dd66b379703429b4d5dfa60ec7d1aa50043c92c1a949b3d940f604d1f44ebdd3c3e4ab647c7e66f1211eec2712e0e4b70cb1a2c1c6c3b4e29a1042834acc26e99b38f6075bbea108bf124c3b1cc4275227bd0167110d69972d46b2dbd6b18314d2ea664ac2f4e4490ab3223eb08178f92e0c17bf861894997cd092fe07c06c5e0db444085a138c638d6eb7889a1996340ea460991f75cd1aba0bcae8f9779587f6df761f75373199146daba4848ac8a2a9b099ae5a54ed617ecb56326627016ea3d6d077f90474dbf037689bd7724a1cef3626e6e196748c050f91c662fda495b67e5aa3b016dc3bccb2d7a9733eca7c7bdd8847540d273b9c8c29335ebdd7715ee4f57dfe5c6a0f3d584398c0ea55375bd2c31b6c74e9f4eeb859c8977063125cdf72532de65c0a00d53bc003c8b101838ee151319695c0ac2acef5f1910bc952bebc7f689f52067f81c18c5dfac90057cdbd0f75e928163aeb09ef0159b66da4210834ca8ee3e285270b51f5e256867ce622923fd3c40e615e1342418a196fcb8e2b56486722f7b5ca524c75dbdb9be6314b7ad590b5cf8f80d7927dda79ceb1369d780f3338c1efb83ca7bdda05f8ca9445b500c0506359a4baa2a8ee7e8b4afb48dbdc2a56194a8da4d1ac425245b83e1e8e448a29da4e2071aea3b8ef3a3cb5827e616d4707f851eea6260972eade34da0a8f34407f4d3e455ba0aa026a853ebb5e6d64e9d8105e69b84e36fb57a8b6e0e7cbb9e5d524988036d958e32a38f5977b3c7038c983994f0888fe3091aa1f45919f0602b5d750738b171b9787af296f2ba5fee311a16f1cdcd810a6689ac7a75bc19e693395b00cfdaf13cca6670a472d449e9efef6e0f9d1c1abaabaaa37e2b27d7d6723d98af800a0b2b5196b284a9e11a5c5e62c4d862522254225216d4ff21afd49bd07f74e9d189bc576d3dd39a739779875e2dcbcf356a52ca08cb29eae8579ca6608a194135941eed7e330de08a9e5095b177ce26b2321e7ac9862bacef371c4d2e9dc8bab9118a15ff9fc4679a1d0eeb64806a80cc739edfddf9d4fa2f42f870212c23ae81ebc9168c955535041c1ce54edf8e3cae6684dab1b1eed16b25bc667a36691d0e050a49f2d782ed9ec3f94d50c8d3358a82375d3605fdb7912b1fc3ed9155fb1052c93e61005c2f6a87c42cf68aff9e6c9e19813653770c439cc397f9ecba27a99b082054d8f44a5b82baea68bd849cde7044a27792a26b3a12d938cb650a8914124be069a1d8a0f98d98768f9144afcc851b338a84d797c35a7657111fa4278b62eee95e3ddedb8916d03c93ec884ac97e29b1d4490ecae90628ed261ebcbbd4d0c12d1c295e6683d685c508d14f289f5b0c86bbd05c31edb6ef46aba2abe24f53c90b33ac3b8033616687a9d3b2900876cb4879145771c0957a07d371f9826e641089e347c155fd62cf176bb4f6af7c223b45cfd0e0a5410922527f9a89a8bb864f497a763fac941097410f448373d1232955cdd4c067364151ae3f57e3bd611975eb189e3de3de659b8f58fc7bc86bb7717711aea0f512ae8fb8f0dad0b9a91cb4b1d512095de2923a54add0883f1b194082abb2d77105e9d00d23e0c0e2226cb2f831d10a66223d9f717260558318f72b66926e0ae2a169b8f5fb86d9f611760d9626218791f7a18b807e12dd61b895d96885c8a39ae56faa0987a4bc634bf638902288cbe304d2e6085b35bbd8c69f7c7bc08a54764e5a58c36da8514923cabca339408a4d4c4a05520b84150e1493861b1208ab6d2007fd47071ecd8419c4de38764caecb093a2cc8259f413efcb13e19451d22b9bd8a192f9184f62c438b1fa988cdc16b43a19ed3ca3dc13bdada0118cf96132ee3a06db5eec80f4c956b3928f5923c5a74352cc62ea9e8a0310ff953d4fd886d26d6e5ccbb8c9afda424ce0e0c66e3b5112f93de988f178f103de77663c3f37483aef8a49b06ed86442553336a2ea076350f3730d607164b7459b9e90e3f98ab8132018d02c86b65d5e2358c66ee8d657a6586af70eb2536942b0733f99d3dcb2ebb49857d384a870cb0b62e318a130f1d905a12c71c319ad380a8b022d4e3f5f5ee1bb17d55becffb128fd61d993b5e03d6d0d864b2481dde4f0e472800e84d97b2a12661bfbb9070f37cd458f0d43474003491239f6987024386a281851797d1322752e6e24b160fcdde4a429383a690435f1200d0ad95874011db89d4ffaf2232e84a767620009fa3e534c50b2656805a380799a16817b350a3b23d4d03fcfffe4cf048283c47144189dc9b965375cff5ee4171a23c172fef7a8ddefd1c24be338203691227c3056f7761eca36087851aeff7f91e8aceb96d7b21082a95d6b796ad7688b9c48754fa34d2873c1377012cc16a798e80c71d5759572b17e3a013fa2e878a5194ce5358ecec5602fb206d590ff765f57755904d4361e118fb18f8fdad8df387fe63f79678ea913d3b1633955f8e11c2d8d7c716791234188bdcb7bccccc6f3eb85993ebe53478bf92dfff23331f394f2164264a6c029d0c8bb9a41e09cc35eff2a58d4ad3b92b4d682c7ac73a728892bb11b57c39aed49709c200e916bcba5229d16043e34b1c04223be93784e3de8b74349425cf073d7068565e7d914f26573581dc919919feec181d371cc6629f895728f8526acef9ce50110fd9257fc677de7fa23f98f35ba0686fc65d074c412a5e02ad067836f80fc24437e2d0decff85b1029e28660b344851a0be45cdc10716a05974e5e09d00f994a4de6e97cf7148c34ebeb5565be0eccf4dfa7c8b70691d0a4fc4adf40a049777ecf560daafe437bbb8af380ad90819f3018202e738519d372bdb17f771a29d8bc58451262567d38beb9fc92e000c18df6324e6c4da794754c849b2fded1b67ac18b48a8b05773d62e24ec78ad9cb00b9959fe20c0d8778ad636260af68e1f336e0a9678b7c84752a624355257380fe51d98e1c17b6f026ff8206e9b1b4c0451c9ee8a5de6a38a2bf52810fa17f811a4dc56931ec4de8fee47c553441aaf1683f94f5e6fad54eaaf66e6d6acbd627d64e0545efb2650741d65bfb41b12d84b5f8a92ae978db2612aeda6823b3d422e56429e7fea6a7028001e70cda4c3bdc741750858e4a4f44cb87e47112ae9a0338569402c386b1f232bac1456793462da338b3851bb31d93e64d61473bcbbf400d0fc99bf5e06b989122518f61498d8265846c6b596b73d49a1386cf28406b33d90e9d919af9bf0e74456061343ce07f46191f050c5f69f4c62d895617775e1cce6e82a9b300ea5ced9667b784e59b687c8f487077c2458d6db726cbf009c33c92576f35a149a7aa11f29ccad57967fc3ec9cda65ae30ba175bf3e405a303caeed440ed21a99735c4fe524f8423971473db48fa505f44a4d1356b82a90c7f581732feb089c0e8301ffc54d3207571447c4f75d96b0ba5887a558da9a2ff2726fa8748c2179276193695bf03658978bdaa74b4c02fbf00c1a5a9eca009e7a3bfd5d48881cecb743e5b65b0c0b1e024b80044853265ac0ee2fd92ddebbd59c4d4cb3a09d83f9dfc5c274111ec8caab4cbc65518ef6a8e2e0f14993c17af66d7dd5d30643b2391b728975f3886bb0c64065c87eec0c28696a07d1c30416b7901dcd4f94139c917dc986ff15f1364b227cf594ba63e28362e52117a5469fc15dedb45c7e124b58b014e2c498933ec362ab60c758dbc15cc7b17b36fd9265f9d5857fdba2edb36a355c52f53d09f03e474ca45a06f9995d1f10b0be3233eb831b047200d35472b2137bc2fb77b819daf9a8e9b853d952931993f92c6209a3587ad812989d857aae67aa7e87275fc34be4b3b78b475c3200e35f0453bcdd00d8d718a5286cb47dee49d90afed7f4fe42496ba33cf13d6f17c105eddb25c876d6f52a21cf098d42d9bfc72f0535281f6c022103455dcb87fcd505d7714e79417c9fcd32208e388c9d50e561f231a09cc73149f2ec248bd1fc885f3e1059659b1a4ac978bb5c81b093da5b9dc293096ba9fdbec00502192e4fae10afd3605c2c020a628a055d5659c3effb76446834a8e84edf5239c9ea6cb6cb85aef64b68bc7e2f96856f65e976ba1bd525c1965ec7a2d954cc99fba8fa13d329227f7f9321689c631a12dcb0ac99487bfe4725e9b7d01e8481024943cc35f7a0e87a2142a9229d353b4128897a9b3bc4a4ebc82dde1cbf7616dc6544e05db908203ec568b9f48893a0fc9a1a77cb7340afe977b51f3a4a1e555ab811b9723996ed60b70184c538cbded327fada7d9ac205b32958cfceeb3cee192da03efd31476c88dfd05812df72c977d17f44ae5d696f336185d2d90779747d6d91347da96b40ffbd323f16022ea63a744077893f6e16991d65849d65cbcdc10f83db70810935cba04ede08f74a7261a286130e147184c0f12827d74fc6c8db9354fe3ca3e0440a06e32b156623b3587c7b23872954faa27eb71882bf945f035b7212df2523a7e8c5ac1658bfa6a460ad973977dc59283871b6de43e492f8d476bf340f7f6a92a38dc4ab15bdd3e0ff15959c7c49da65810e60060ccefefd931ce9e5424cb6faa27e2e26b3a23f52b9ca19ae15ba0bfe5e47b5a700402deda7f5337897dc23fee11c62383a3fbd1f28ae2ac4ccedfc926418d0db7d6e228331ac7a8df31193ee68bcccb04aa7fdd48c9ea74ea5a8b0ce94e7a31c3dc596fd10d30380280e61bd2c11625ea9f1ada2e031eb807d57b36a17f3bc748881a56a9877e358388f2d493c61943c79c8879ad74e515c9b38b10f6bf4c0bbe129fa8fcf2c2a82e913ece2d33a33a5c7a581e7571420f14f2105d376aba2aa5c5f5810d7e34e78abe76865540719d2634b384fbb840c05ec3bc2e53af13056141680aba67adbe6e8888b2d88959eb9e9a56f98552bd083230af6aefbd835adf9f50f0daae9814c6702f7d0b1e9cade35a3536d627d92a301177277910045d0ff086ed84e61c42c823fdd8b7ef1691d44645b40ca57a1ccc013da6a24cbd43257bfc0bf696c7a60bb6dd677b3a7c2f378b3a963abbb2715c9b7b57fb7959ae970c1bed93ad07e0507aec8ee94fca097a4d06693972a4bcff368bd4b34e1309ca8c847075af2eb5dba14441321197881ad535f7892935261f2fb94e17394316327b5b6a0c7778d4f8ee2a539ee3b4cd39b53f371614e71d9e053832044590c0cad4019fe55e8489e9aba620490a8eab8ac8b069284185bd7b819fe0183ba8bb7382e19f95f3f607d87f6718d8689d0394d5e88e14e2c8deafb590d4c1fb1bd7608af6e4a2baa2a0c27044f00b5df034b131da8688a250c08", &(0x7f0000021300)=[r0, r0, r1, r0, r1, r1], &(0x7f0000021340)=""/61, &(0x7f0000021380)=[0x0, 0x0, 0x0], 0x1000, 0x6, 0x3d, 0x3}, &(0x7f0000021400), &(0x7f0000021440)) zx_channel_call$fuchsia_cobalt_LoggerLogMemoryUsage(r5, 0x0, r3, &(0x7f0000031540)={&(0x7f0000021480)={{}, 0x2, 0x2, {0x9, 0xffffffffffffffff}, 0x2, {'\x00'}}, &(0x7f00000214c0), &(0x7f0000021500), &(0x7f0000031500), 0x38, 0x0, 0x10000}, &(0x7f0000031580), &(0x7f00000315c0)) zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(r2, 0x0, r3, &(0x7f00000416c0)={&(0x7f0000031600)={{}, {0x0, 0x100000001, {0xc1, 0xffffffffffffffff}}, {{'*[#,)&,-[)}'}}}, &(0x7f0000031640)={{0x0, r5}}, &(0x7f0000031680), &(0x7f0000041680)={{0x0, 0x0, 0x0, 0x0}}, 0x38, 0x2, 0x10000, 0x4}, &(0x7f0000041700), &(0x7f0000041740)) r8 = zx_deadline_after(0x104d) zx_channel_create(0x0, &(0x7f0000041880)=0x0, &(0x7f00000418c0)) zx_exception_get_thread(r5, &(0x7f0000041900)=0x0) zx_channel_call_etc(r7, 0x7, r8, &(0x7f0000041bc0)={&(0x7f0000041780)="fa2f4069c5f54d2479f84d1d733a52f59f0a68709466e6633a6318f6057fbfc9f048b09bfbb63905dc824745b16247ee570e79af77fde73be0865356841b8997c55e4c9b792e2cd8c5ac578960ab6b2d804cd89eb8f0de2151a1693b6498d61abedbd5db7cae8b09f94c6d942cb31051524961cc82c4940af1ab9ceeba52716eb25b870eafbb41d9a1562e9670df00384aa9554b70f9a166834150f2e37215e413ba1238a181d4f7435843b6bb56fa8861d8688001d39d9e2b189f67e80533118964299763f586828c693cc9712a9c2552dc30e57225212f5a50efe56da99a32824c4c", &(0x7f0000041a80)=[r9, r10, 0x0, r1, r6, r0, r4, 0x0, 0x0], &(0x7f0000041ac0)=""/154, &(0x7f0000041b80)=[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], 0xe3, 0x9, 0x9a, 0x8}, &(0x7f0000041c00), &(0x7f0000041c40)) syz_execute_func(&(0x7f0000000000)="c4e1d9d29e91000000c48171fd844800000020c4a17f7044ba340ef30faed6c46279a75d03c4c2fd9642a72e66430f38f55900420f34c4e1782b42c0c4426592242c") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffe000/0x1000)=nil, 0x1000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 50); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[11] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: *(uint64_t*)0x200100c0 = 0x20000000; *(uint32_t*)0x20000000 = 0; memset((void*)0x20000004, 0, 3); *(uint8_t*)0x20000007 = 1; *(uint64_t*)0x20000008 = 0x4fcfbc1100000000; *(uint32_t*)0x20000010 = -1; *(uint32_t*)0x20000014 = 0; *(uint64_t*)0x20000018 = 4; *(uint64_t*)0x20000020 = -1; *(uint64_t*)0x200100c8 = 0x20000040; *(uint32_t*)0x20000040 = 0; *(uint32_t*)0x20000044 = 0; *(uint64_t*)0x200100d0 = 0x20000080; *(uint64_t*)0x200100d8 = 0x20010080; *(uint32_t*)0x200100e0 = 0x28; *(uint32_t*)0x200100e4 = 2; *(uint32_t*)0x200100e8 = 0x10000; *(uint32_t*)0x200100ec = 4; inject_fault(1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/0, /*args=*/0x200100c0, /*actual_bytes=*/0x20010100, /*actual_handles=*/0x20010140); if (res == ZX_OK) { r[0] = *(uint32_t*)0x20010080; r[1] = *(uint32_t*)0x20010088; r[2] = *(uint32_t*)0x2001008c; } break; case 1: res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/5); if (res == ZX_OK) r[3] = res; break; case 2: *(uint64_t*)0x20020240 = 0x20010180; *(uint32_t*)0x20010180 = 0; memset((void*)0x20010184, 0, 3); *(uint8_t*)0x20010187 = 1; *(uint64_t*)0x20010188 = 0x1b8a5e6400000000; *(uint64_t*)0x20010190 = 3; *(uint64_t*)0x20010198 = -1; *(uint32_t*)0x200101a0 = -1; *(uint64_t*)0x200101a4 = 0x1b3; *(uint64_t*)0x200101ac = 0; *(uint64_t*)0x20020248 = 0x200101c0; *(uint32_t*)0x200101c0 = 0; *(uint64_t*)0x20020250 = 0x20010200; *(uint64_t*)0x20020258 = 0x20020200; *(uint32_t*)0x20020260 = 0x34; *(uint32_t*)0x20020264 = 1; *(uint32_t*)0x20020268 = 0x10000; *(uint32_t*)0x2002026c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); } } break; case 3: *(uint64_t*)0x200213c0 = 0x20020300; memcpy((void*)0x20020300, "\x6b\x3c\x12\x56\x27\x95\x44\xbb\x32\xd3\x62\x43\xaf\xcb\xfd\xa5\xcd\x1a\x17\x59\xba\x09\xb0\x08\xc9\x7e\x2b\xe4\x9a\xb1\x0a\xdd\xa6\xd8\x8f\x52\x9d\xe7\xb0\x4a\xd9\xb0\xfd\xd9\x6d\x31\x84\x19\x6e\x8e\x69\x75\x31\x2b\xf6\xa2\xc5\x3d\xf1\x45\x51\xfa\x4b\x32\x62\x7d\xd6\x79\xee\xf9\xc5\x9f\x19\x0c\xa4\x03\x68\x14\x37\x2c\xf5\x10\xd0\x29\x17\x53\x5f\x1f\x02\xda\x97\xf6\xd1\x60\x1f\x3e\x89\xe1\x0a\x62\x1b\x4e\x82\xba\x76\xd4\x1a\x2f\x87\x24\x97\x36\xcd\x35\xa2\x43\x2b\xf3\x68\xda\xf4\x3f\x60\x38\x7c\x27\xf9\x17\x76\x14\xc2\xf4\xd4\xfd\x31\xdd\xd5\xe0\x8d\x63\x42\x9d\x66\x3e\xe1\x4a\x19\x32\xbf\x8f\x4d\xf7\x03\x69\xf3\xc2\xa7\x51\x97\x42\x2e\xd0\x02\x2b\xe8\x0f\xd8\x7b\x79\xdb\x2a\x43\x49\x9a\x48\xbd\xcd\x91\x24\x65\x73\x30\x3a\x45\x08\xe1\x7c\xf0\x20\xc6\x4c\x57\x7b\x8b\xb0\x92\x6c\x4b\xde\x15\x60\xa7\x74\x46\x49\x7e\x5b\xaf\xec\x84\x29\xa3\x11\x71\x93\x84\xf6\x37\xc4\xa0\x08\xc3\xdd\xd6\x26\x10\xdb\xb1\xd4\xc2\xdd\x8f\x1b\xd7\x3e\x7f\x36\x57\xfc\xf2\x4d\xbb\x89\x6a\x14\x5b\x28\xf3\x40\x98\xf9\xd4\x01\x99\xc5\xb7\x20\x03\xc4\xe0\x8e\xab\x96\xae\xc0\x66\xbf\x2d\x97\xc2\x66\x1f\x4c\xd9\x1c\x59\xcd\x4f\x9e\x4f\x56\x17\xcf\xd6\xad\xa6\xe0\x49\x53\xcc\x4c\x7b\xe1\xc3\xf1\x0d\xe3\x1e\x15\x5d\xd1\x74\xe9\x9f\x41\x36\xca\xe0\x8e\x30\x8b\x3c\x22\xb5\xd1\xdd\x66\xb3\x79\x70\x34\x29\xb4\xd5\xdf\xa6\x0e\xc7\xd1\xaa\x50\x04\x3c\x92\xc1\xa9\x49\xb3\xd9\x40\xf6\x04\xd1\xf4\x4e\xbd\xd3\xc3\xe4\xab\x64\x7c\x7e\x66\xf1\x21\x1e\xec\x27\x12\xe0\xe4\xb7\x0c\xb1\xa2\xc1\xc6\xc3\xb4\xe2\x9a\x10\x42\x83\x4a\xcc\x26\xe9\x9b\x38\xf6\x07\x5b\xbe\xa1\x08\xbf\x12\x4c\x3b\x1c\xc4\x27\x52\x27\xbd\x01\x67\x11\x0d\x69\x97\x2d\x46\xb2\xdb\xd6\xb1\x83\x14\xd2\xea\x66\x4a\xc2\xf4\xe4\x49\x0a\xb3\x22\x3e\xb0\x81\x78\xf9\x2e\x0c\x17\xbf\x86\x18\x94\x99\x7c\xd0\x92\xfe\x07\xc0\x6c\x5e\x0d\xb4\x44\x08\x5a\x13\x8c\x63\x8d\x6e\xb7\x88\x9a\x19\x96\x34\x0e\xa4\x60\x99\x1f\x75\xcd\x1a\xba\x0b\xca\xe8\xf9\x77\x95\x87\xf6\xdf\x76\x1f\x75\x37\x31\x99\x14\x6d\xab\xa4\x84\x8a\xc8\xa2\xa9\xb0\x99\xae\x5a\x54\xed\x61\x7e\xcb\x56\x32\x66\x27\x01\x6e\xa3\xd6\xd0\x77\xf9\x04\x74\xdb\xf0\x37\x68\x9b\xd7\x72\x4a\x1c\xef\x36\x26\xe6\xe1\x96\x74\x8c\x05\x0f\x91\xc6\x62\xfd\xa4\x95\xb6\x7e\x5a\xa3\xb0\x16\xdc\x3b\xcc\xb2\xd7\xa9\x73\x3e\xca\x7c\x7b\xdd\x88\x47\x54\x0d\x27\x3b\x9c\x8c\x29\x33\x5e\xbd\xd7\x71\x5e\xe4\xf5\x7d\xfe\x5c\x6a\x0f\x3d\x58\x43\x98\xc0\xea\x55\x37\x5b\xd2\xc3\x1b\x6c\x74\xe9\xf4\xee\xb8\x59\xc8\x97\x70\x63\x12\x5c\xdf\x72\x53\x2d\xe6\x5c\x0a\x00\xd5\x3b\xc0\x03\xc8\xb1\x01\x83\x8e\xe1\x51\x31\x96\x95\xc0\xac\x2a\xce\xf5\xf1\x91\x0b\xc9\x52\xbe\xbc\x7f\x68\x9f\x52\x06\x7f\x81\xc1\x8c\x5d\xfa\xc9\x00\x57\xcd\xbd\x0f\x75\xe9\x28\x16\x3a\xeb\x09\xef\x01\x59\xb6\x6d\xa4\x21\x08\x34\xca\x8e\xe3\xe2\x85\x27\x0b\x51\xf5\xe2\x56\x86\x7c\xe6\x22\x92\x3f\xd3\xc4\x0e\x61\x5e\x13\x42\x41\x8a\x19\x6f\xcb\x8e\x2b\x56\x48\x67\x22\xf7\xb5\xca\x52\x4c\x75\xdb\xdb\x9b\xe6\x31\x4b\x7a\xd5\x90\xb5\xcf\x8f\x80\xd7\x92\x7d\xda\x79\xce\xb1\x36\x9d\x78\x0f\x33\x38\xc1\xef\xb8\x3c\xa7\xbd\xda\x05\xf8\xca\x94\x45\xb5\x00\xc0\x50\x63\x59\xa4\xba\xa2\xa8\xee\x7e\x8b\x4a\xfb\x48\xdb\xdc\x2a\x56\x19\x4a\x8d\xa4\xd1\xac\x42\x52\x45\xb8\x3e\x1e\x8e\x44\x8a\x29\xda\x4e\x20\x71\xae\xa3\xb8\xef\x3a\x3c\xb5\x82\x7e\x61\x6d\x47\x07\xf8\x51\xee\xa6\x26\x09\x72\xea\xde\x34\xda\x0a\x8f\x34\x40\x7f\x4d\x3e\x45\x5b\xa0\xaa\x02\x6a\x85\x3e\xbb\x5e\x6d\x64\xe9\xd8\x10\x5e\x69\xb8\x4e\x36\xfb\x57\xa8\xb6\xe0\xe7\xcb\xb9\xe5\xd5\x24\x98\x80\x36\xd9\x58\xe3\x2a\x38\xf5\x97\x7b\x3c\x70\x38\xc9\x83\x99\x4f\x08\x88\xfe\x30\x91\xaa\x1f\x45\x91\x9f\x06\x02\xb5\xd7\x50\x73\x8b\x17\x1b\x97\x87\xaf\x29\x6f\x2b\xa5\xfe\xe3\x11\xa1\x6f\x1c\xdc\xd8\x10\xa6\x68\x9a\xc7\xa7\x5b\xc1\x9e\x69\x33\x95\xb0\x0c\xfd\xaf\x13\xcc\xa6\x67\x0a\x47\x2d\x44\x9e\x9e\xfe\xf6\xe0\xf9\xd1\xc1\xab\xaa\xba\xaa\x37\xe2\xb2\x7d\x7d\x67\x23\xd9\x8a\xf8\x00\xa0\xb2\xb5\x19\x6b\x28\x4a\x9e\x11\xa5\xc5\xe6\x2c\x4d\x86\x25\x22\x25\x42\x25\x21\x6d\x4f\xf2\x1a\xfd\x49\xbd\x07\xf7\x4e\x9d\x18\x9b\xc5\x76\xd3\xdd\x39\xa7\x39\x77\x98\x75\xe2\xdc\xbc\xf3\x56\xa5\x2c\xa0\x8c\xb2\x9e\xae\x85\x79\xca\x66\x08\xa1\x94\x13\x59\x41\xee\xd7\xe3\x30\xde\x08\xa9\xe5\x09\x5b\x17\x7c\xe2\x6b\x23\x21\xe7\xac\x98\x62\xba\xce\xf3\x71\xc4\xd2\xe9\xdc\x8b\xab\x91\x18\xa1\x5f\xf9\xfc\x46\x79\xa1\xd0\xee\xb6\x48\x06\xa8\x0c\xc7\x39\xed\xfd\xdf\x9d\x4f\xa2\xf4\x2f\x87\x02\x12\xc2\x3a\xe8\x1e\xbc\x91\x68\xc9\x55\x53\x50\x41\xc1\xce\x54\xed\xf8\xe3\xca\xe6\x68\x4d\xab\x1b\x1e\xed\x16\xb2\x5b\xc6\x67\xa3\x66\x91\xd0\xe0\x50\xa4\x9f\x2d\x78\x2e\xd9\xec\x3f\x94\xd5\x0c\x8d\x33\x58\xa8\x23\x75\xd3\x60\x5f\xdb\x79\x12\xb1\xfc\x3e\xd9\x15\x5f\xb1\x05\x2c\x93\xe6\x10\x05\xc2\xf6\xa8\x7c\x42\xcf\x68\xaf\xf9\xe6\xc9\xe1\x98\x13\x65\x37\x70\xc4\x39\xcc\x39\x7f\x9e\xcb\xa2\x7a\x99\xb0\x82\x05\x4d\x8f\x44\xa5\xb8\x2b\xae\xa6\x8b\xd8\x49\xcd\xe7\x04\x4a\x27\x79\x2a\x26\xb3\xa1\x2d\x93\x8c\xb6\x50\xa8\x91\x41\x24\xbe\x06\x9a\x1d\x8a\x0f\x98\xd9\x87\x68\xf9\x14\x4a\xfc\xc8\x51\xb3\x38\xa8\x4d\x79\x7c\x35\xa7\x65\x71\x11\xfa\x42\x78\xb6\x2e\xee\x95\xe3\xdd\xed\xb8\x91\x6d\x03\xc9\x3e\xc8\x84\xac\x97\xe2\x9b\x1d\x44\x90\xec\xae\x90\x62\x8e\xd2\x61\xeb\xcb\xbd\x4d\x0c\x12\xd1\xc2\x95\xe6\x68\x3d\x68\x5c\x50\x8d\x14\xf2\x89\xf5\xb0\xc8\x6b\xbd\x05\xc3\x1e\xdb\x6e\xf4\x6a\xba\x2a\xbe\x24\xf5\x3c\x90\xb3\x3a\xc3\xb8\x03\x36\x16\x68\x7a\x9d\x3b\x29\x00\x87\x6c\xb4\x87\x91\x45\x77\x1c\x09\x57\xa0\x7d\x37\x1f\x98\x26\xe6\x41\x08\x9e\x34\x7c\x15\x5f\xd6\x2c\xf1\x76\xbb\x4f\x6a\xf7\xc2\x23\xb4\x5c\xfd\x0e\x0a\x54\x10\x92\x25\x27\xf9\xa8\x9a\x8b\xb8\x64\xf4\x97\xa7\x63\xfa\xc9\x41\x09\x74\x10\xf4\x48\x37\x3d\x12\x32\x95\x5c\xdd\x4c\x06\x73\x64\x15\x1a\xe3\xf5\x7e\x3b\xd6\x11\x97\x5e\xb1\x89\xe3\xde\x3d\xe6\x59\xb8\xf5\x8f\xc7\xbc\x86\xbb\x77\x17\x71\x1a\xea\x0f\x51\x2a\xe8\xfb\x8f\x0d\xad\x0b\x9a\x91\xcb\x4b\x1d\x51\x20\x95\xde\x29\x23\xa5\x4a\xdd\x08\x83\xf1\xb1\x94\x08\x2a\xbb\x2d\x77\x10\x5e\x9d\x00\xd2\x3e\x0c\x0e\x22\x26\xcb\x2f\x83\x1d\x10\xa6\x62\x23\xd9\xf7\x17\x26\x05\x58\x31\x8f\x72\xb6\x69\x26\xe0\xae\x2a\x16\x9b\x8f\x5f\xb8\x6d\x9f\x61\x17\x60\xd9\x62\x62\x18\x79\x1f\x7a\x18\xb8\x07\xe1\x2d\xd6\x1b\x89\x5d\x96\x88\x5c\x8a\x39\xae\x56\xfa\xa0\x98\x7a\x4b\xc6\x34\xbf\x63\x89\x02\x28\x8c\xbe\x30\x4d\x2e\x60\x85\xb3\x5b\xbd\x8c\x69\xf7\xc7\xbc\x08\xa5\x47\x64\xe5\xa5\x8c\x36\xda\x85\x14\x92\x3c\xab\xca\x33\x94\x08\xa4\xd4\xc4\xa0\x55\x20\xb8\x41\x50\xe1\x49\x38\x61\xb1\x20\x8a\xb6\xd2\x00\x7f\xd4\x70\x71\xec\xd8\x41\x9c\x4d\xe3\x87\x64\xca\xec\xb0\x93\xa2\xcc\x82\x59\xf4\x13\xef\xcb\x13\xe1\x94\x51\xd2\x2b\x9b\xd8\xa1\x92\xf9\x18\x4f\x62\xc4\x38\xb1\xfa\x98\x8c\xdc\x16\xb4\x3a\x19\xed\x3c\xa3\xdc\x13\xbd\xad\xa0\x11\x8c\xf9\x61\x32\xee\x3a\x06\xdb\x5e\xec\x80\xf4\xc9\x56\xb3\x92\x8f\x59\x23\xc5\xa7\x43\x52\xcc\x62\xea\x9e\x8a\x03\x10\xff\x95\x3d\x4f\xd8\x86\xd2\x6d\x6e\x5c\xcb\xb8\xc9\xaf\xda\x42\x4c\xe0\xe0\xc6\x6e\x3b\x51\x12\xf9\x3d\xe9\x88\xf1\x78\xf1\x03\xde\x77\x66\x3c\x3f\x37\x48\x3a\xef\x8a\x49\xb0\x6e\xd8\x64\x42\x55\x33\x36\xa2\xea\x07\x63\x50\xf3\x73\x0d\x60\x71\x64\xb7\x45\x9b\x9e\x90\xe3\xf9\x8a\xb8\x13\x20\x18\xd0\x2c\x86\xb6\x5d\x5e\x23\x58\xc6\x6e\xe8\xd6\x57\xa6\x58\x6a\xf7\x0e\xb2\x53\x69\x42\xb0\x73\x3f\x99\xd3\xdc\xb2\xeb\xb4\x98\x57\xd3\x84\xa8\x70\xcb\x0b\x62\xe3\x18\xa1\x30\xf1\xd9\x05\xa1\x2c\x71\xc3\x19\xad\x38\x0a\x8b\x02\x2d\x4e\x3f\x5f\x5e\xe1\xbb\x17\xd5\x5b\xec\xff\xb1\x28\xfd\x61\xd9\x93\xb5\xe0\x3d\x6d\x0d\x86\x4b\x24\x81\xdd\xe4\xf0\xe4\x72\x80\x0e\x84\xd9\x7b\x2a\x12\x66\x1b\xfb\xb9\x07\x0f\x37\xcd\x45\x8f\x0d\x43\x47\x40\x03\x49\x12\x39\xf6\x98\x70\x24\x38\x6a\x28\x18\x51\x79\x7d\x13\x22\x75\x2e\x6e\x24\xb1\x60\xfc\xdd\xe4\xa4\x29\x38\x3a\x69\x04\x35\xf1\x20\x0d\x0a\xd9\x58\x74\x01\x1d\xb8\x9d\x4f\xfa\xf2\x23\x2e\x84\xa7\x67\x62\x00\x09\xfa\x3e\x53\x4c\x50\xb2\x65\x68\x05\xa3\x80\x79\x9a\x16\x81\x7b\x35\x0a\x3b\x23\xd4\xd0\x3f\xcf\xff\xe4\xcf\x04\x82\x83\xc4\x71\x44\x18\x9d\xc9\xb9\x65\x37\x5c\xff\x5e\xe4\x17\x1a\x23\xc1\x72\xfe\xf7\xa8\xdd\xef\xd1\xc2\x4b\xe3\x38\x20\x36\x91\x22\x7c\x30\x56\xf7\x76\x1e\xca\x36\x08\x78\x51\xae\xff\x7f\x91\xe8\xac\xeb\x96\xd7\xb2\x10\x82\xa9\x5d\x6b\x79\x6a\xd7\x68\x8b\x9c\x48\x75\x4f\xa3\x4d\x28\x73\xc1\x37\x70\x12\xcc\x16\xa7\x98\xe8\x0c\x71\xd5\x75\x95\x72\xb1\x7e\x3a\x01\x3f\xa2\xe8\x78\xa5\x19\x4c\xe5\x35\x8e\xce\xc5\x60\x2f\xb2\x06\xd5\x90\xff\x76\x5f\x57\x75\x59\x04\xd4\x36\x1e\x11\x8f\xb1\x8f\x8f\xda\xd8\xdf\x38\x7f\xe6\x3f\x79\x67\x8e\xa9\x13\xd3\xb1\x63\x39\x55\xf8\xe1\x1c\x2d\x8d\x7c\x71\x67\x91\x23\x41\x88\xbd\xcb\x7b\xcc\xcc\xc6\xf3\xeb\x85\x99\x3e\xbe\x53\x47\x8b\xf9\x2d\xff\xf2\x33\x31\xf3\x94\xf2\x16\x42\x64\xa6\xc0\x29\xd0\xc8\xbb\x9a\x41\xe0\x9c\xc3\x5e\xff\x2a\x58\xd4\xad\x3b\x92\xb4\xd6\x82\xc7\xac\x73\xa7\x28\x89\x2b\xb1\x1b\x57\xc3\x9a\xed\x49\x70\x9c\x20\x0e\x91\x6b\xcb\xa5\x22\x9d\x16\x04\x3e\x34\xb1\xc0\x42\x23\xbe\x93\x78\x4e\x3d\xe8\xb7\x43\x49\x42\x5c\xf0\x73\xd7\x06\x85\x65\xe7\xd9\x14\xf2\x65\x73\x58\x1d\xc9\x19\x91\x9f\xee\xc1\x81\xd3\x71\xcc\x66\x29\xf8\x95\x72\x8f\x85\x26\xac\xef\x9c\xe5\x01\x10\xfd\x92\x57\xfc\x67\x7d\xe7\xfa\x23\xf9\x8f\x35\xba\x06\x86\xfc\x65\xd0\x74\xc4\x12\xa5\xe0\x2a\xd0\x67\x83\x6f\x80\xfc\x24\x43\x7e\x2d\x0d\xec\xff\x85\xb1\x02\x9e\x28\x66\x0b\x34\x48\x51\xa0\xbe\x45\xcd\xc1\x07\x16\xa0\x59\x74\xe5\xe0\x9d\x00\xf9\x94\xa4\xde\x6e\x97\xcf\x71\x48\xc3\x4e\xbe\xb5\x56\x5b\xe0\xec\xcf\x4d\xfa\x7c\x8b\x70\x69\x1d\x0a\x4f\xc4\xad\xf4\x0a\x04\x97\x77\xec\xf5\x60\xda\xaf\xe4\x37\xbb\xb8\xaf\x38\x0a\xd9\x08\x19\xf3\x01\x82\x02\xe7\x38\x51\x9d\x37\x2b\xdb\x17\xf7\x71\xa2\x9d\x8b\xc5\x84\x51\x26\x25\x67\xd3\x8b\xeb\x9f\xc9\x2e\x00\x0c\x18\xdf\x63\x24\xe6\xc4\xda\x79\x47\x54\xc8\x49\xb2\xfd\xed\x1b\x67\xac\x18\xb4\x8a\x8b\x05\x77\x3d\x62\xe2\x4e\xc7\x8a\xd9\xcb\x00\xb9\x95\x9f\xe2\x0c\x0d\x87\x78\xad\x63\x62\x60\xaf\x68\xe1\xf3\x36\xe0\xa9\x67\x8b\x7c\x84\x75\x2a\x62\x43\x55\x25\x73\x80\xfe\x51\xd9\x8e\x1c\x17\xb6\xf0\x26\xff\x82\x06\xe9\xb1\xb4\xc0\x45\x1c\x9e\xe8\xa5\xde\x6a\x38\xa2\xbf\x52\x81\x0f\xa1\x7f\x81\x1a\x4d\xc5\x69\x31\xec\x4d\xe8\xfe\xe4\x7c\x55\x34\x41\xaa\xf1\x68\x3f\x94\xf5\xe6\xfa\xd5\x4e\xaa\xf6\x6e\x6d\x6a\xcb\xd6\x27\xd6\x4e\x05\x45\xef\xb2\x65\x07\x41\xd6\x5b\xfb\x41\xb1\x2d\x84\xb5\xf8\xa9\x2a\xe9\x78\xdb\x26\x12\xae\xda\x68\x23\xb3\xd4\x22\xe5\x64\x29\xe7\xfe\xa6\xa7\x02\x80\x01\xe7\x0c\xda\x4c\x3b\xdc\x74\x17\x50\x85\x8e\x4a\x4f\x44\xcb\x87\xe4\x71\x12\xae\x9a\x03\x38\x56\x94\x02\xc3\x86\xb1\xf2\x32\xba\xc1\x45\x67\x93\x46\x2d\xa3\x38\xb3\x85\x1b\xb3\x1d\x93\xe6\x4d\x61\x47\x3b\xcb\xbf\x40\x0d\x0f\xc9\x9b\xf5\xe0\x6b\x98\x91\x22\x51\x8f\x61\x49\x8d\x82\x65\x84\x6c\x6b\x59\x6b\x73\xd4\x9a\x13\x86\xcf\x28\x40\x6b\x33\xd9\x0e\x9d\x91\x9a\xf9\xbf\x0e\x74\x45\x60\x61\x34\x3c\xe0\x7f\x46\x19\x1f\x05\x0c\x5f\x69\xf4\xc6\x2d\x89\x56\x17\x77\x5e\x1c\xce\x6e\x82\xa9\xb3\x00\xea\x5c\xed\x96\x67\xb7\x84\xe5\x9b\x68\x7c\x8f\x48\x70\x77\xc2\x45\x8d\x6d\xb7\x26\xcb\xf0\x09\xc3\x3c\x92\x57\x6f\x35\xa1\x49\xa7\xaa\x11\xf2\x9c\xca\xd5\x79\x67\xfc\x3e\xc9\xcd\xa6\x5a\xe3\x0b\xa1\x75\xbf\x3e\x40\x5a\x30\x3c\xae\xed\x44\x0e\xd2\x1a\x99\x73\x5c\x4f\xe5\x24\xf8\x42\x39\x71\x47\x3d\xb4\x8f\xa5\x05\xf4\x4a\x4d\x13\x56\xb8\x2a\x90\xc7\xf5\x81\x73\x2f\xeb\x08\x9c\x0e\x83\x01\xff\xc5\x4d\x32\x07\x57\x14\x47\xc4\xf7\x5d\x96\xb0\xba\x58\x87\xa5\x58\xda\x9a\x2f\xf2\x72\x6f\xa8\x74\x8c\x21\x79\x27\x61\x93\x69\x5b\xf0\x36\x58\x97\x8b\xda\xa7\x4b\x4c\x02\xfb\xf0\x0c\x1a\x5a\x9e\xca\x00\x9e\x7a\x3b\xfd\x5d\x48\x88\x1c\xec\xb7\x43\xe5\xb6\x5b\x0c\x0b\x1e\x02\x4b\x80\x04\x48\x53\x26\x5a\xc0\xee\x2f\xd9\x2d\xde\xbb\xd5\x9c\x4d\x4c\xb3\xa0\x9d\x83\xf9\xdf\xc5\xc2\x74\x11\x1e\xc8\xca\xab\x4c\xbc\x65\x51\x8e\xf6\xa8\xe2\xe0\xf1\x49\x93\xc1\x7a\xf6\x6d\x7d\xd5\xd3\x06\x43\xb2\x39\x1b\x72\x89\x75\xf3\x88\x6b\xb0\xc6\x40\x65\xc8\x7e\xec\x0c\x28\x69\x6a\x07\xd1\xc3\x04\x16\xb7\x90\x1d\xcd\x4f\x94\x13\x9c\x91\x7d\xc9\x86\xff\x15\xf1\x36\x4b\x22\x7c\xf5\x94\xba\x63\xe2\x83\x62\xe5\x21\x17\xa5\x46\x9f\xc1\x5d\xed\xb4\x5c\x7e\x12\x4b\x58\xb0\x14\xe2\xc4\x98\x93\x3e\xc3\x62\xab\x60\xc7\x58\xdb\xc1\x5c\xc7\xb1\x7b\x36\xfd\x92\x65\xf9\xd5\x85\x7f\xdb\xa2\xed\xb3\x6a\x35\x5c\x52\xf5\x3d\x09\xf0\x3e\x47\x4c\xa4\x5a\x06\xf9\x99\x5d\x1f\x10\xb0\xbe\x32\x33\xeb\x83\x1b\x04\x72\x00\xd3\x54\x72\xb2\x13\x7b\xc2\xfb\x77\xb8\x19\xda\xf9\xa8\xe9\xb8\x53\xd9\x52\x93\x19\x93\xf9\x2c\x62\x09\xa3\x58\x7a\xd8\x12\x98\x9d\x85\x7a\xae\x67\xaa\x7e\x87\x27\x5f\xc3\x4b\xe4\xb3\xb7\x8b\x47\x5c\x32\x00\xe3\x5f\x04\x53\xbc\xdd\x00\xd8\xd7\x18\xa5\x28\x6c\xb4\x7d\xee\x49\xd9\x0a\xfe\xd7\xf4\xfe\x42\x49\x6b\xa3\x3c\xf1\x3d\x6f\x17\xc1\x05\xed\xdb\x25\xc8\x76\xd6\xf5\x2a\x21\xcf\x09\x8d\x42\xd9\xbf\xc7\x2f\x05\x35\x28\x1f\x6c\x02\x21\x03\x45\x5d\xcb\x87\xfc\xd5\x05\xd7\x71\x4e\x79\x41\x7c\x9f\xcd\x32\x20\x8e\x38\x8c\x9d\x50\xe5\x61\xf2\x31\xa0\x9c\xc7\x31\x49\xf2\xec\x24\x8b\xd1\xfc\x88\x5f\x3e\x10\x59\x65\x9b\x1a\x4a\xc9\x78\xbb\x5c\x81\xb0\x93\xda\x5b\x9d\xc2\x93\x09\x6b\xa9\xfd\xbe\xc0\x05\x02\x19\x2e\x4f\xae\x10\xaf\xd3\x60\x5c\x2c\x02\x0a\x62\x8a\x05\x5d\x56\x59\xc3\xef\xfb\x76\x44\x68\x34\xa8\xe8\x4e\xdf\x52\x39\xc9\xea\x6c\xb6\xcb\x85\xae\xf6\x4b\x68\xbc\x7e\x2f\x96\x85\x6f\x65\xe9\x76\xba\x1b\xd5\x25\xc1\x96\x5e\xc7\xa2\xd9\x54\xcc\x99\xfb\xa8\xfa\x13\xd3\x29\x22\x7f\x7f\x93\x21\x68\x9c\x63\x1a\x12\xdc\xb0\xac\x99\x48\x7b\xfe\x47\x25\xe9\xb7\xd0\x1e\x84\x81\x02\x49\x43\xcc\x35\xf7\xa0\xe8\x7a\x21\x42\xa9\x22\x9d\x35\x3b\x41\x28\x89\x7a\x9b\x3b\xc4\xa4\xeb\xc8\x2d\xde\x1c\xbf\x76\x16\xdc\x65\x44\xe0\x5d\xb9\x08\x20\x3e\xc5\x68\xb9\xf4\x88\x93\xa0\xfc\x9a\x1a\x77\xcb\x73\x40\xaf\xe9\x77\xb5\x1f\x3a\x4a\x1e\x55\x5a\xb8\x11\xb9\x72\x39\x96\xed\x60\xb7\x01\x84\xc5\x38\xcb\xde\xd3\x27\xfa\xda\x7d\x9a\xc2\x05\xb3\x29\x58\xcf\xce\xeb\x3c\xee\x19\x2d\xa0\x3e\xfd\x31\x47\x6c\x88\xdf\xd0\x58\x12\xdf\x72\xc9\x77\xd1\x7f\x44\xae\x5d\x69\x6f\x33\x61\x85\xd2\xd9\x07\x79\x74\x7d\x6d\x91\x34\x7d\xa9\x6b\x40\xff\xbd\x32\x3f\x16\x02\x2e\xa6\x3a\x74\x40\x77\x89\x3f\x6e\x16\x99\x1d\x65\x84\x9d\x65\xcb\xcd\xc1\x0f\x83\xdb\x70\x81\x09\x35\xcb\xa0\x4e\xde\x08\xf7\x4a\x72\x61\xa2\x86\x13\x0e\x14\x71\x84\xc0\xf1\x28\x27\xd7\x4f\xc6\xc8\xdb\x93\x54\xfe\x3c\xa3\xe0\x44\x0a\x06\xe3\x2b\x15\x66\x23\xb3\x58\x7c\x7b\x23\x87\x29\x54\xfa\xa2\x7e\xb7\x18\x82\xbf\x94\x5f\x03\x5b\x72\x12\xdf\x25\x23\xa7\xe8\xc5\xac\x16\x58\xbf\xa6\xa4\x60\xad\x97\x39\x77\xdc\x59\x28\x38\x71\xb6\xde\x43\xe4\x92\xf8\xd4\x76\xbf\x34\x0f\x7f\x6a\x92\xa3\x8d\xc4\xab\x15\xbd\xd3\xe0\xff\x15\x95\x9c\x7c\x49\xda\x65\x81\x0e\x60\x06\x0c\xce\xfe\xfd\x93\x1c\xe9\xe5\x42\x4c\xb6\xfa\xa2\x7e\x2e\x26\xb3\xa2\x3f\x52\xb9\xca\x19\xae\x15\xba\x0b\xfe\x5e\x47\xb5\xa7\x00\x40\x2d\xed\xa7\xf5\x33\x78\x97\xdc\x23\xfe\xe1\x1c\x62\x38\x3a\x3f\xbd\x1f\x28\xae\x2a\xc4\xcc\xed\xfc\x92\x64\x18\xd0\xdb\x7d\x6e\x22\x83\x31\xac\x7a\x8d\xf3\x11\x93\xee\x68\xbc\xcc\xb0\x4a\xa7\xfd\xd4\x8c\x9e\xa7\x4e\xa5\xa8\xb0\xce\x94\xe7\xa3\x1c\x3d\xc5\x96\xfd\x10\xd3\x03\x80\x28\x0e\x61\xbd\x2c\x11\x62\x5e\xa9\xf1\xad\xa2\xe0\x31\xeb\x80\x7d\x57\xb3\x6a\x17\xf3\xbc\x74\x88\x81\xa5\x6a\x98\x77\xe3\x58\x38\x8f\x2d\x49\x3c\x61\x94\x3c\x79\xc8\x87\x9a\xd7\x4e\x51\x5c\x9b\x38\xb1\x0f\x6b\xf4\xc0\xbb\xe1\x29\xfa\x8f\xcf\x2c\x2a\x82\xe9\x13\xec\xe2\xd3\x3a\x33\xa5\xc7\xa5\x81\xe7\x57\x14\x20\xf1\x4f\x21\x05\xd3\x76\xab\xa2\xaa\x5c\x5f\x58\x10\xd7\xe3\x4e\x78\xab\xe7\x68\x65\x54\x07\x19\xd2\x63\x4b\x38\x4f\xbb\x84\x0c\x05\xec\x3b\xc2\xe5\x3a\xf1\x30\x56\x14\x16\x80\xab\xa6\x7a\xdb\xe6\xe8\x88\x8b\x2d\x88\x95\x9e\xb9\xe9\xa5\x6f\x98\x55\x2b\xd0\x83\x23\x0a\xf6\xae\xfb\xd8\x35\xad\xf9\xf5\x0f\x0d\xaa\xe9\x81\x4c\x67\x02\xf7\xd0\xb1\xe9\xca\xde\x35\xa3\x53\x6d\x62\x7d\x92\xa3\x01\x17\x72\x77\x91\x00\x45\xd0\xff\x08\x6e\xd8\x4e\x61\xc4\x2c\x82\x3f\xdd\x8b\x7e\xf1\x69\x1d\x44\x64\x5b\x40\xca\x57\xa1\xcc\xc0\x13\xda\x6a\x24\xcb\xd4\x32\x57\xbf\xc0\xbf\x69\x6c\x7a\x60\xbb\x6d\xd6\x77\xb3\xa7\xc2\xf3\x78\xb3\xa9\x63\xab\xbb\x27\x15\xc9\xb7\xb5\x7f\xb7\x95\x9a\xe9\x70\xc1\xbe\xd9\x3a\xd0\x7e\x05\x07\xae\xc8\xee\x94\xfc\xa0\x97\xa4\xd0\x66\x93\x97\x2a\x4b\xcf\xf3\x68\xbd\x4b\x34\xe1\x30\x9c\xa8\xc8\x47\x07\x5a\xf2\xeb\x5d\xba\x14\x44\x13\x21\x19\x78\x81\xad\x53\x5f\x78\x92\x93\x52\x61\xf2\xfb\x94\xe1\x73\x94\x31\x63\x27\xb5\xb6\xa0\xc7\x77\x8d\x4f\x8e\xe2\xa5\x39\xee\x3b\x4c\xd3\x9b\x53\xf3\x71\x61\x4e\x71\xd9\xe0\x53\x83\x20\x44\x59\x0c\x0c\xad\x40\x19\xfe\x55\xe8\x48\x9e\x9a\xba\x62\x04\x90\xa8\xea\xb8\xac\x8b\x06\x92\x84\x18\x5b\xd7\xb8\x19\xfe\x01\x83\xba\x8b\xb7\x38\x2e\x19\xf9\x5f\x3f\x60\x7d\x87\xf6\x71\x8d\x86\x89\xd0\x39\x4d\x5e\x88\xe1\x4e\x2c\x8d\xea\xfb\x59\x0d\x4c\x1f\xb1\xbd\x76\x08\xaf\x6e\x4a\x2b\xaa\x2a\x0c\x27\x04\x4f\x00\xb5\xdf\x03\x4b\x13\x1d\xa8\x68\x8a\x25\x0c\x08", 4096); *(uint64_t*)0x200213c8 = 0x20021300; *(uint32_t*)0x20021300 = r[0]; *(uint32_t*)0x20021304 = r[0]; *(uint32_t*)0x20021308 = r[1]; *(uint32_t*)0x2002130c = r[0]; *(uint32_t*)0x20021310 = r[1]; *(uint32_t*)0x20021314 = r[1]; *(uint64_t*)0x200213d0 = 0x20021340; *(uint64_t*)0x200213d8 = 0x20021380; *(uint32_t*)0x200213e0 = 0x1000; *(uint32_t*)0x200213e4 = 6; *(uint32_t*)0x200213e8 = 0x3d; *(uint32_t*)0x200213ec = 3; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200213c0, /*actual_bytes=*/0x20021400, /*actual_handles=*/0x20021440); if (res == ZX_OK) { r[4] = *(uint32_t*)0x20021380; r[5] = *(uint32_t*)0x20021384; r[6] = *(uint32_t*)0x20021388; } break; case 4: *(uint64_t*)0x20031540 = 0x20021480; *(uint32_t*)0x20021480 = 0; memset((void*)0x20021484, 0, 3); *(uint8_t*)0x20021487 = 1; *(uint64_t*)0x20021488 = 0x66c69d1b00000000; *(uint32_t*)0x20021490 = 2; *(uint32_t*)0x20021494 = 2; *(uint64_t*)0x20021498 = 9; *(uint64_t*)0x200214a0 = -1; *(uint64_t*)0x200214a8 = 2; memset((void*)0x200214b0, 0, 1); *(uint64_t*)0x20031548 = 0x200214c0; *(uint64_t*)0x20031550 = 0x20021500; *(uint64_t*)0x20031558 = 0x20031500; *(uint32_t*)0x20031560 = 0x38; *(uint32_t*)0x20031564 = 0; *(uint32_t*)0x20031568 = 0x10000; *(uint32_t*)0x2003156c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[5], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20031540, /*actual_bytes=*/0x20031580, /*actual_handles=*/0x200315c0); break; case 5: *(uint64_t*)0x200416c0 = 0x20031600; *(uint32_t*)0x20031600 = 0; memset((void*)0x20031604, 0, 3); *(uint8_t*)0x20031607 = 1; *(uint64_t*)0x20031608 = 0x4fcfbc1100000000; *(uint32_t*)0x20031610 = 0; *(uint32_t*)0x20031614 = 1; *(uint64_t*)0x20031618 = 0xc1; *(uint64_t*)0x20031620 = -1; memcpy((void*)0x20031628, "*[#,)&,-[)}", 11); *(uint64_t*)0x200416c8 = 0x20031640; *(uint32_t*)0x20031640 = 0; *(uint32_t*)0x20031644 = r[5]; *(uint64_t*)0x200416d0 = 0x20031680; *(uint64_t*)0x200416d8 = 0x20041680; *(uint32_t*)0x200416e0 = 0x38; *(uint32_t*)0x200416e4 = 2; *(uint32_t*)0x200416e8 = 0x10000; *(uint32_t*)0x200416ec = 4; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200416c0, /*actual_bytes=*/0x20041700, /*actual_handles=*/0x20041740); if (res == ZX_OK) r[7] = *(uint32_t*)0x2004168c; break; case 6: res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/0x104d); if (res == ZX_OK) r[8] = res; break; case 7: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t))CAST(zx_channel_create))(/*options=*/0, /*out0=*/0x20041880, /*out1=*/0x200418c0); if (res == ZX_OK) r[9] = *(uint32_t*)0x20041880; break; case 8: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t))CAST(zx_exception_get_thread))(/*handle=*/r[5], /*out=*/0x20041900); if (res == ZX_OK) r[10] = *(uint32_t*)0x20041900; break; case 9: *(uint64_t*)0x20041bc0 = 0x20041780; memcpy((void*)0x20041780, "\xfa\x2f\x40\x69\xc5\xf5\x4d\x24\x79\xf8\x4d\x1d\x73\x3a\x52\xf5\x9f\x0a\x68\x70\x94\x66\xe6\x63\x3a\x63\x18\xf6\x05\x7f\xbf\xc9\xf0\x48\xb0\x9b\xfb\xb6\x39\x05\xdc\x82\x47\x45\xb1\x62\x47\xee\x57\x0e\x79\xaf\x77\xfd\xe7\x3b\xe0\x86\x53\x56\x84\x1b\x89\x97\xc5\x5e\x4c\x9b\x79\x2e\x2c\xd8\xc5\xac\x57\x89\x60\xab\x6b\x2d\x80\x4c\xd8\x9e\xb8\xf0\xde\x21\x51\xa1\x69\x3b\x64\x98\xd6\x1a\xbe\xdb\xd5\xdb\x7c\xae\x8b\x09\xf9\x4c\x6d\x94\x2c\xb3\x10\x51\x52\x49\x61\xcc\x82\xc4\x94\x0a\xf1\xab\x9c\xee\xba\x52\x71\x6e\xb2\x5b\x87\x0e\xaf\xbb\x41\xd9\xa1\x56\x2e\x96\x70\xdf\x00\x38\x4a\xa9\x55\x4b\x70\xf9\xa1\x66\x83\x41\x50\xf2\xe3\x72\x15\xe4\x13\xba\x12\x38\xa1\x81\xd4\xf7\x43\x58\x43\xb6\xbb\x56\xfa\x88\x61\xd8\x68\x80\x01\xd3\x9d\x9e\x2b\x18\x9f\x67\xe8\x05\x33\x11\x89\x64\x29\x97\x63\xf5\x86\x82\x8c\x69\x3c\xc9\x71\x2a\x9c\x25\x52\xdc\x30\xe5\x72\x25\x21\x2f\x5a\x50\xef\xe5\x6d\xa9\x9a\x32\x82\x4c\x4c", 227); *(uint64_t*)0x20041bc8 = 0x20041a80; *(uint32_t*)0x20041a80 = r[9]; *(uint32_t*)0x20041a84 = r[10]; *(uint32_t*)0x20041a88 = 0; *(uint32_t*)0x20041a8c = r[1]; *(uint32_t*)0x20041a90 = r[6]; *(uint32_t*)0x20041a94 = r[0]; *(uint32_t*)0x20041a98 = r[4]; *(uint32_t*)0x20041a9c = 0; *(uint32_t*)0x20041aa0 = 0; *(uint64_t*)0x20041bd0 = 0x20041ac0; *(uint64_t*)0x20041bd8 = 0x20041b80; *(uint32_t*)0x20041be0 = 0xe3; *(uint32_t*)0x20041be4 = 9; *(uint32_t*)0x20041be8 = 0x9a; *(uint32_t*)0x20041bec = 8; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); break; case 10: memcpy((void*)0x20000000, "\xc4\xe1\xd9\xd2\x9e\x91\x00\x00\x00\xc4\x81\x71\xfd\x84\x48\x00\x00\x00\x20\xc4\xa1\x7f\x70\x44\xba\x34\x0e\xf3\x0f\xae\xd6\xc4\x62\x79\xa7\x5d\x03\xc4\xc2\xfd\x96\x42\xa7\x2e\x66\x43\x0f\x38\xf5\x59\x00\x42\x0f\x34\xc4\xe1\x78\x2b\x42\xc0\xc4\x42\x65\x92\x24\x2c", 66); syz_execute_func(/*text=*/0x20000000); break; case 11: syz_future_time(/*when=*/1); break; case 12: syz_job_default(); break; case 13: syz_mmap(/*addr=*/0x20ffe000, /*len=*/0x1000); break; case 14: syz_process_self(); break; case 15: syz_thread_self(); break; case 16: syz_vmar_root_self(); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :433:75: error: use of undeclared identifier 'zx_channel_call_etc' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor26745423 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/6 (0.51s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:0 Slowdown:10 Sandbox:none SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:false Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(0x0, 0x0, 0x0, &(0x7f00000100c0)={&(0x7f0000000000)={{}, {0xffffffff, 0x0, {0x4, 0xffffffffffffffff}}}, &(0x7f0000000040), &(0x7f0000000080), &(0x7f0000010080)={{0x0, 0x0, 0x0, 0x0}}, 0x28, 0x2, 0x10000, 0x4}, &(0x7f0000010100), &(0x7f0000010140)) (fail_nth: 1) r3 = zx_deadline_after(0x5) (async) zx_channel_call$fuchsia_io_DirectoryAdminLink(r2, 0x0, r3, &(0x7f0000020240)={&(0x7f0000010180)={{}, {0x3, 0xffffffffffffffff}, 0xffffffff, {0x1b3}}, &(0x7f00000101c0), &(0x7f0000010200), &(0x7f0000020200), 0x34, 0x1, 0x10000}, &(0x7f0000020280), &(0x7f00000202c0)) (rerun: 4) zx_channel_call(r2, 0x0, r3, &(0x7f00000213c0)={&(0x7f0000020300)="6b3c1256279544bb32d36243afcbfda5cd1a1759ba09b008c97e2be49ab10adda6d88f529de7b04ad9b0fdd96d3184196e8e6975312bf6a2c53df14551fa4b32627dd679eef9c59f190ca4036814372cf510d02917535f1f02da97f6d1601f3e89e10a621b4e82ba76d41a2f87249736cd35a2432bf368daf43f60387c27f9177614c2f4d4fd31ddd5e08d63429d663ee14a1932bf8f4df70369f3c2a75197422ed0022be80fd87b79db2a43499a48bdcd91246573303a4508e17cf020c64c577b8bb0926c4bde1560a77446497e5bafec8429a311719384f637c4a008c3ddd62610dbb1d4c2dd8f1bd73e7f3657fcf24dbb896a145b28f34098f9d40199c5b72003c4e08eab96aec066bf2d97c2661f4cd91c59cd4f9e4f5617cfd6ada6e04953cc4c7be1c3f10de31e155dd174e99f4136cae08e308b3c22b5d1dd66b379703429b4d5dfa60ec7d1aa50043c92c1a949b3d940f604d1f44ebdd3c3e4ab647c7e66f1211eec2712e0e4b70cb1a2c1c6c3b4e29a1042834acc26e99b38f6075bbea108bf124c3b1cc4275227bd0167110d69972d46b2dbd6b18314d2ea664ac2f4e4490ab3223eb08178f92e0c17bf861894997cd092fe07c06c5e0db444085a138c638d6eb7889a1996340ea460991f75cd1aba0bcae8f9779587f6df761f75373199146daba4848ac8a2a9b099ae5a54ed617ecb56326627016ea3d6d077f90474dbf037689bd7724a1cef3626e6e196748c050f91c662fda495b67e5aa3b016dc3bccb2d7a9733eca7c7bdd8847540d273b9c8c29335ebdd7715ee4f57dfe5c6a0f3d584398c0ea55375bd2c31b6c74e9f4eeb859c8977063125cdf72532de65c0a00d53bc003c8b101838ee151319695c0ac2acef5f1910bc952bebc7f689f52067f81c18c5dfac90057cdbd0f75e928163aeb09ef0159b66da4210834ca8ee3e285270b51f5e256867ce622923fd3c40e615e1342418a196fcb8e2b56486722f7b5ca524c75dbdb9be6314b7ad590b5cf8f80d7927dda79ceb1369d780f3338c1efb83ca7bdda05f8ca9445b500c0506359a4baa2a8ee7e8b4afb48dbdc2a56194a8da4d1ac425245b83e1e8e448a29da4e2071aea3b8ef3a3cb5827e616d4707f851eea6260972eade34da0a8f34407f4d3e455ba0aa026a853ebb5e6d64e9d8105e69b84e36fb57a8b6e0e7cbb9e5d524988036d958e32a38f5977b3c7038c983994f0888fe3091aa1f45919f0602b5d750738b171b9787af296f2ba5fee311a16f1cdcd810a6689ac7a75bc19e693395b00cfdaf13cca6670a472d449e9efef6e0f9d1c1abaabaaa37e2b27d7d6723d98af800a0b2b5196b284a9e11a5c5e62c4d862522254225216d4ff21afd49bd07f74e9d189bc576d3dd39a739779875e2dcbcf356a52ca08cb29eae8579ca6608a194135941eed7e330de08a9e5095b177ce26b2321e7ac9862bacef371c4d2e9dc8bab9118a15ff9fc4679a1d0eeb64806a80cc739edfddf9d4fa2f42f870212c23ae81ebc9168c955535041c1ce54edf8e3cae6684dab1b1eed16b25bc667a36691d0e050a49f2d782ed9ec3f94d50c8d3358a82375d3605fdb7912b1fc3ed9155fb1052c93e61005c2f6a87c42cf68aff9e6c9e19813653770c439cc397f9ecba27a99b082054d8f44a5b82baea68bd849cde7044a27792a26b3a12d938cb650a8914124be069a1d8a0f98d98768f9144afcc851b338a84d797c35a7657111fa4278b62eee95e3ddedb8916d03c93ec884ac97e29b1d4490ecae90628ed261ebcbbd4d0c12d1c295e6683d685c508d14f289f5b0c86bbd05c31edb6ef46aba2abe24f53c90b33ac3b8033616687a9d3b2900876cb4879145771c0957a07d371f9826e641089e347c155fd62cf176bb4f6af7c223b45cfd0e0a5410922527f9a89a8bb864f497a763fac941097410f448373d1232955cdd4c067364151ae3f57e3bd611975eb189e3de3de659b8f58fc7bc86bb7717711aea0f512ae8fb8f0dad0b9a91cb4b1d512095de2923a54add0883f1b194082abb2d77105e9d00d23e0c0e2226cb2f831d10a66223d9f717260558318f72b66926e0ae2a169b8f5fb86d9f611760d9626218791f7a18b807e12dd61b895d96885c8a39ae56faa0987a4bc634bf638902288cbe304d2e6085b35bbd8c69f7c7bc08a54764e5a58c36da8514923cabca339408a4d4c4a05520b84150e1493861b1208ab6d2007fd47071ecd8419c4de38764caecb093a2cc8259f413efcb13e19451d22b9bd8a192f9184f62c438b1fa988cdc16b43a19ed3ca3dc13bdada0118cf96132ee3a06db5eec80f4c956b3928f5923c5a74352cc62ea9e8a0310ff953d4fd886d26d6e5ccbb8c9afda424ce0e0c66e3b5112f93de988f178f103de77663c3f37483aef8a49b06ed86442553336a2ea076350f3730d607164b7459b9e90e3f98ab8132018d02c86b65d5e2358c66ee8d657a6586af70eb2536942b0733f99d3dcb2ebb49857d384a870cb0b62e318a130f1d905a12c71c319ad380a8b022d4e3f5f5ee1bb17d55becffb128fd61d993b5e03d6d0d864b2481dde4f0e472800e84d97b2a12661bfbb9070f37cd458f0d43474003491239f6987024386a281851797d1322752e6e24b160fcdde4a429383a690435f1200d0ad95874011db89d4ffaf2232e84a767620009fa3e534c50b2656805a380799a16817b350a3b23d4d03fcfffe4cf048283c47144189dc9b965375cff5ee4171a23c172fef7a8ddefd1c24be338203691227c3056f7761eca36087851aeff7f91e8aceb96d7b21082a95d6b796ad7688b9c48754fa34d2873c1377012cc16a798e80c71d5759572b17e3a013fa2e878a5194ce5358ecec5602fb206d590ff765f57755904d4361e118fb18f8fdad8df387fe63f79678ea913d3b1633955f8e11c2d8d7c716791234188bdcb7bccccc6f3eb85993ebe53478bf92dfff23331f394f2164264a6c029d0c8bb9a41e09cc35eff2a58d4ad3b92b4d682c7ac73a728892bb11b57c39aed49709c200e916bcba5229d16043e34b1c04223be93784e3de8b74349425cf073d7068565e7d914f26573581dc919919feec181d371cc6629f895728f8526acef9ce50110fd9257fc677de7fa23f98f35ba0686fc65d074c412a5e02ad067836f80fc24437e2d0decff85b1029e28660b344851a0be45cdc10716a05974e5e09d00f994a4de6e97cf7148c34ebeb5565be0eccf4dfa7c8b70691d0a4fc4adf40a049777ecf560daafe437bbb8af380ad90819f3018202e738519d372bdb17f771a29d8bc58451262567d38beb9fc92e000c18df6324e6c4da794754c849b2fded1b67ac18b48a8b05773d62e24ec78ad9cb00b9959fe20c0d8778ad636260af68e1f336e0a9678b7c84752a624355257380fe51d98e1c17b6f026ff8206e9b1b4c0451c9ee8a5de6a38a2bf52810fa17f811a4dc56931ec4de8fee47c553441aaf1683f94f5e6fad54eaaf66e6d6acbd627d64e0545efb2650741d65bfb41b12d84b5f8a92ae978db2612aeda6823b3d422e56429e7fea6a7028001e70cda4c3bdc741750858e4a4f44cb87e47112ae9a0338569402c386b1f232bac1456793462da338b3851bb31d93e64d61473bcbbf400d0fc99bf5e06b989122518f61498d8265846c6b596b73d49a1386cf28406b33d90e9d919af9bf0e74456061343ce07f46191f050c5f69f4c62d895617775e1cce6e82a9b300ea5ced9667b784e59b687c8f487077c2458d6db726cbf009c33c92576f35a149a7aa11f29ccad57967fc3ec9cda65ae30ba175bf3e405a303caeed440ed21a99735c4fe524f8423971473db48fa505f44a4d1356b82a90c7f581732feb089c0e8301ffc54d3207571447c4f75d96b0ba5887a558da9a2ff2726fa8748c2179276193695bf03658978bdaa74b4c02fbf00c1a5a9eca009e7a3bfd5d48881cecb743e5b65b0c0b1e024b80044853265ac0ee2fd92ddebbd59c4d4cb3a09d83f9dfc5c274111ec8caab4cbc65518ef6a8e2e0f14993c17af66d7dd5d30643b2391b728975f3886bb0c64065c87eec0c28696a07d1c30416b7901dcd4f94139c917dc986ff15f1364b227cf594ba63e28362e52117a5469fc15dedb45c7e124b58b014e2c498933ec362ab60c758dbc15cc7b17b36fd9265f9d5857fdba2edb36a355c52f53d09f03e474ca45a06f9995d1f10b0be3233eb831b047200d35472b2137bc2fb77b819daf9a8e9b853d952931993f92c6209a3587ad812989d857aae67aa7e87275fc34be4b3b78b475c3200e35f0453bcdd00d8d718a5286cb47dee49d90afed7f4fe42496ba33cf13d6f17c105eddb25c876d6f52a21cf098d42d9bfc72f0535281f6c022103455dcb87fcd505d7714e79417c9fcd32208e388c9d50e561f231a09cc73149f2ec248bd1fc885f3e1059659b1a4ac978bb5c81b093da5b9dc293096ba9fdbec00502192e4fae10afd3605c2c020a628a055d5659c3effb76446834a8e84edf5239c9ea6cb6cb85aef64b68bc7e2f96856f65e976ba1bd525c1965ec7a2d954cc99fba8fa13d329227f7f9321689c631a12dcb0ac99487bfe4725e9b7d01e8481024943cc35f7a0e87a2142a9229d353b4128897a9b3bc4a4ebc82dde1cbf7616dc6544e05db908203ec568b9f48893a0fc9a1a77cb7340afe977b51f3a4a1e555ab811b9723996ed60b70184c538cbded327fada7d9ac205b32958cfceeb3cee192da03efd31476c88dfd05812df72c977d17f44ae5d696f336185d2d90779747d6d91347da96b40ffbd323f16022ea63a744077893f6e16991d65849d65cbcdc10f83db70810935cba04ede08f74a7261a286130e147184c0f12827d74fc6c8db9354fe3ca3e0440a06e32b156623b3587c7b23872954faa27eb71882bf945f035b7212df2523a7e8c5ac1658bfa6a460ad973977dc59283871b6de43e492f8d476bf340f7f6a92a38dc4ab15bdd3e0ff15959c7c49da65810e60060ccefefd931ce9e5424cb6faa27e2e26b3a23f52b9ca19ae15ba0bfe5e47b5a700402deda7f5337897dc23fee11c62383a3fbd1f28ae2ac4ccedfc926418d0db7d6e228331ac7a8df31193ee68bcccb04aa7fdd48c9ea74ea5a8b0ce94e7a31c3dc596fd10d30380280e61bd2c11625ea9f1ada2e031eb807d57b36a17f3bc748881a56a9877e358388f2d493c61943c79c8879ad74e515c9b38b10f6bf4c0bbe129fa8fcf2c2a82e913ece2d33a33a5c7a581e7571420f14f2105d376aba2aa5c5f5810d7e34e78abe76865540719d2634b384fbb840c05ec3bc2e53af13056141680aba67adbe6e8888b2d88959eb9e9a56f98552bd083230af6aefbd835adf9f50f0daae9814c6702f7d0b1e9cade35a3536d627d92a301177277910045d0ff086ed84e61c42c823fdd8b7ef1691d44645b40ca57a1ccc013da6a24cbd43257bfc0bf696c7a60bb6dd677b3a7c2f378b3a963abbb2715c9b7b57fb7959ae970c1bed93ad07e0507aec8ee94fca097a4d06693972a4bcff368bd4b34e1309ca8c847075af2eb5dba14441321197881ad535f7892935261f2fb94e17394316327b5b6a0c7778d4f8ee2a539ee3b4cd39b53f371614e71d9e053832044590c0cad4019fe55e8489e9aba620490a8eab8ac8b069284185bd7b819fe0183ba8bb7382e19f95f3f607d87f6718d8689d0394d5e88e14e2c8deafb590d4c1fb1bd7608af6e4a2baa2a0c27044f00b5df034b131da8688a250c08", &(0x7f0000021300)=[r0, r0, r1, r0, r1, r1], &(0x7f0000021340)=""/61, &(0x7f0000021380)=[0x0, 0x0, 0x0], 0x1000, 0x6, 0x3d, 0x3}, &(0x7f0000021400), &(0x7f0000021440)) zx_channel_call$fuchsia_cobalt_LoggerLogMemoryUsage(r5, 0x0, r3, &(0x7f0000031540)={&(0x7f0000021480)={{}, 0x2, 0x2, {0x9, 0xffffffffffffffff}, 0x2, {'\x00'}}, &(0x7f00000214c0), &(0x7f0000021500), &(0x7f0000031500), 0x38, 0x0, 0x10000}, &(0x7f0000031580), &(0x7f00000315c0)) zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(r2, 0x0, r3, &(0x7f00000416c0)={&(0x7f0000031600)={{}, {0x0, 0x100000001, {0xc1, 0xffffffffffffffff}}, {{'*[#,)&,-[)}'}}}, &(0x7f0000031640)={{0x0, r5}}, &(0x7f0000031680), &(0x7f0000041680)={{0x0, 0x0, 0x0, 0x0}}, 0x38, 0x2, 0x10000, 0x4}, &(0x7f0000041700), &(0x7f0000041740)) r8 = zx_deadline_after(0x104d) zx_channel_create(0x0, &(0x7f0000041880)=0x0, &(0x7f00000418c0)) zx_exception_get_thread(r5, &(0x7f0000041900)=0x0) zx_channel_call_etc(r7, 0x7, r8, &(0x7f0000041bc0)={&(0x7f0000041780)="fa2f4069c5f54d2479f84d1d733a52f59f0a68709466e6633a6318f6057fbfc9f048b09bfbb63905dc824745b16247ee570e79af77fde73be0865356841b8997c55e4c9b792e2cd8c5ac578960ab6b2d804cd89eb8f0de2151a1693b6498d61abedbd5db7cae8b09f94c6d942cb31051524961cc82c4940af1ab9ceeba52716eb25b870eafbb41d9a1562e9670df00384aa9554b70f9a166834150f2e37215e413ba1238a181d4f7435843b6bb56fa8861d8688001d39d9e2b189f67e80533118964299763f586828c693cc9712a9c2552dc30e57225212f5a50efe56da99a32824c4c", &(0x7f0000041a80)=[r9, r10, 0x0, r1, r6, r0, r4, 0x0, 0x0], &(0x7f0000041ac0)=""/154, &(0x7f0000041b80)=[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], 0xe3, 0x9, 0x9a, 0x8}, &(0x7f0000041c00), &(0x7f0000041c40)) syz_execute_func(&(0x7f0000000000)="c4e1d9d29e91000000c48171fd844800000020c4a17f7044ba340ef30faed6c46279a75d03c4c2fd9642a72e66430f38f55900420f34c4e1782b42c0c4426592242c") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffe000/0x1000)=nil, 0x1000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 500); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[11] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: *(uint64_t*)0x200100c0 = 0x20000000; *(uint32_t*)0x20000000 = 0; memset((void*)0x20000004, 0, 3); *(uint8_t*)0x20000007 = 1; *(uint64_t*)0x20000008 = 0x4fcfbc1100000000; *(uint32_t*)0x20000010 = -1; *(uint32_t*)0x20000014 = 0; *(uint64_t*)0x20000018 = 4; *(uint64_t*)0x20000020 = -1; *(uint64_t*)0x200100c8 = 0x20000040; *(uint32_t*)0x20000040 = 0; *(uint32_t*)0x20000044 = 0; *(uint64_t*)0x200100d0 = 0x20000080; *(uint64_t*)0x200100d8 = 0x20010080; *(uint32_t*)0x200100e0 = 0x28; *(uint32_t*)0x200100e4 = 2; *(uint32_t*)0x200100e8 = 0x10000; *(uint32_t*)0x200100ec = 4; inject_fault(1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/0, /*args=*/0x200100c0, /*actual_bytes=*/0x20010100, /*actual_handles=*/0x20010140); if (res == ZX_OK) { r[0] = *(uint32_t*)0x20010080; r[1] = *(uint32_t*)0x20010088; r[2] = *(uint32_t*)0x2001008c; } break; case 1: res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/5); if (res == ZX_OK) r[3] = res; break; case 2: *(uint64_t*)0x20020240 = 0x20010180; *(uint32_t*)0x20010180 = 0; memset((void*)0x20010184, 0, 3); *(uint8_t*)0x20010187 = 1; *(uint64_t*)0x20010188 = 0x1b8a5e6400000000; *(uint64_t*)0x20010190 = 3; *(uint64_t*)0x20010198 = -1; *(uint32_t*)0x200101a0 = -1; *(uint64_t*)0x200101a4 = 0x1b3; *(uint64_t*)0x200101ac = 0; *(uint64_t*)0x20020248 = 0x200101c0; *(uint32_t*)0x200101c0 = 0; *(uint64_t*)0x20020250 = 0x20010200; *(uint64_t*)0x20020258 = 0x20020200; *(uint32_t*)0x20020260 = 0x34; *(uint32_t*)0x20020264 = 1; *(uint32_t*)0x20020268 = 0x10000; *(uint32_t*)0x2002026c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); } } break; case 3: *(uint64_t*)0x200213c0 = 0x20020300; memcpy((void*)0x20020300, "\x6b\x3c\x12\x56\x27\x95\x44\xbb\x32\xd3\x62\x43\xaf\xcb\xfd\xa5\xcd\x1a\x17\x59\xba\x09\xb0\x08\xc9\x7e\x2b\xe4\x9a\xb1\x0a\xdd\xa6\xd8\x8f\x52\x9d\xe7\xb0\x4a\xd9\xb0\xfd\xd9\x6d\x31\x84\x19\x6e\x8e\x69\x75\x31\x2b\xf6\xa2\xc5\x3d\xf1\x45\x51\xfa\x4b\x32\x62\x7d\xd6\x79\xee\xf9\xc5\x9f\x19\x0c\xa4\x03\x68\x14\x37\x2c\xf5\x10\xd0\x29\x17\x53\x5f\x1f\x02\xda\x97\xf6\xd1\x60\x1f\x3e\x89\xe1\x0a\x62\x1b\x4e\x82\xba\x76\xd4\x1a\x2f\x87\x24\x97\x36\xcd\x35\xa2\x43\x2b\xf3\x68\xda\xf4\x3f\x60\x38\x7c\x27\xf9\x17\x76\x14\xc2\xf4\xd4\xfd\x31\xdd\xd5\xe0\x8d\x63\x42\x9d\x66\x3e\xe1\x4a\x19\x32\xbf\x8f\x4d\xf7\x03\x69\xf3\xc2\xa7\x51\x97\x42\x2e\xd0\x02\x2b\xe8\x0f\xd8\x7b\x79\xdb\x2a\x43\x49\x9a\x48\xbd\xcd\x91\x24\x65\x73\x30\x3a\x45\x08\xe1\x7c\xf0\x20\xc6\x4c\x57\x7b\x8b\xb0\x92\x6c\x4b\xde\x15\x60\xa7\x74\x46\x49\x7e\x5b\xaf\xec\x84\x29\xa3\x11\x71\x93\x84\xf6\x37\xc4\xa0\x08\xc3\xdd\xd6\x26\x10\xdb\xb1\xd4\xc2\xdd\x8f\x1b\xd7\x3e\x7f\x36\x57\xfc\xf2\x4d\xbb\x89\x6a\x14\x5b\x28\xf3\x40\x98\xf9\xd4\x01\x99\xc5\xb7\x20\x03\xc4\xe0\x8e\xab\x96\xae\xc0\x66\xbf\x2d\x97\xc2\x66\x1f\x4c\xd9\x1c\x59\xcd\x4f\x9e\x4f\x56\x17\xcf\xd6\xad\xa6\xe0\x49\x53\xcc\x4c\x7b\xe1\xc3\xf1\x0d\xe3\x1e\x15\x5d\xd1\x74\xe9\x9f\x41\x36\xca\xe0\x8e\x30\x8b\x3c\x22\xb5\xd1\xdd\x66\xb3\x79\x70\x34\x29\xb4\xd5\xdf\xa6\x0e\xc7\xd1\xaa\x50\x04\x3c\x92\xc1\xa9\x49\xb3\xd9\x40\xf6\x04\xd1\xf4\x4e\xbd\xd3\xc3\xe4\xab\x64\x7c\x7e\x66\xf1\x21\x1e\xec\x27\x12\xe0\xe4\xb7\x0c\xb1\xa2\xc1\xc6\xc3\xb4\xe2\x9a\x10\x42\x83\x4a\xcc\x26\xe9\x9b\x38\xf6\x07\x5b\xbe\xa1\x08\xbf\x12\x4c\x3b\x1c\xc4\x27\x52\x27\xbd\x01\x67\x11\x0d\x69\x97\x2d\x46\xb2\xdb\xd6\xb1\x83\x14\xd2\xea\x66\x4a\xc2\xf4\xe4\x49\x0a\xb3\x22\x3e\xb0\x81\x78\xf9\x2e\x0c\x17\xbf\x86\x18\x94\x99\x7c\xd0\x92\xfe\x07\xc0\x6c\x5e\x0d\xb4\x44\x08\x5a\x13\x8c\x63\x8d\x6e\xb7\x88\x9a\x19\x96\x34\x0e\xa4\x60\x99\x1f\x75\xcd\x1a\xba\x0b\xca\xe8\xf9\x77\x95\x87\xf6\xdf\x76\x1f\x75\x37\x31\x99\x14\x6d\xab\xa4\x84\x8a\xc8\xa2\xa9\xb0\x99\xae\x5a\x54\xed\x61\x7e\xcb\x56\x32\x66\x27\x01\x6e\xa3\xd6\xd0\x77\xf9\x04\x74\xdb\xf0\x37\x68\x9b\xd7\x72\x4a\x1c\xef\x36\x26\xe6\xe1\x96\x74\x8c\x05\x0f\x91\xc6\x62\xfd\xa4\x95\xb6\x7e\x5a\xa3\xb0\x16\xdc\x3b\xcc\xb2\xd7\xa9\x73\x3e\xca\x7c\x7b\xdd\x88\x47\x54\x0d\x27\x3b\x9c\x8c\x29\x33\x5e\xbd\xd7\x71\x5e\xe4\xf5\x7d\xfe\x5c\x6a\x0f\x3d\x58\x43\x98\xc0\xea\x55\x37\x5b\xd2\xc3\x1b\x6c\x74\xe9\xf4\xee\xb8\x59\xc8\x97\x70\x63\x12\x5c\xdf\x72\x53\x2d\xe6\x5c\x0a\x00\xd5\x3b\xc0\x03\xc8\xb1\x01\x83\x8e\xe1\x51\x31\x96\x95\xc0\xac\x2a\xce\xf5\xf1\x91\x0b\xc9\x52\xbe\xbc\x7f\x68\x9f\x52\x06\x7f\x81\xc1\x8c\x5d\xfa\xc9\x00\x57\xcd\xbd\x0f\x75\xe9\x28\x16\x3a\xeb\x09\xef\x01\x59\xb6\x6d\xa4\x21\x08\x34\xca\x8e\xe3\xe2\x85\x27\x0b\x51\xf5\xe2\x56\x86\x7c\xe6\x22\x92\x3f\xd3\xc4\x0e\x61\x5e\x13\x42\x41\x8a\x19\x6f\xcb\x8e\x2b\x56\x48\x67\x22\xf7\xb5\xca\x52\x4c\x75\xdb\xdb\x9b\xe6\x31\x4b\x7a\xd5\x90\xb5\xcf\x8f\x80\xd7\x92\x7d\xda\x79\xce\xb1\x36\x9d\x78\x0f\x33\x38\xc1\xef\xb8\x3c\xa7\xbd\xda\x05\xf8\xca\x94\x45\xb5\x00\xc0\x50\x63\x59\xa4\xba\xa2\xa8\xee\x7e\x8b\x4a\xfb\x48\xdb\xdc\x2a\x56\x19\x4a\x8d\xa4\xd1\xac\x42\x52\x45\xb8\x3e\x1e\x8e\x44\x8a\x29\xda\x4e\x20\x71\xae\xa3\xb8\xef\x3a\x3c\xb5\x82\x7e\x61\x6d\x47\x07\xf8\x51\xee\xa6\x26\x09\x72\xea\xde\x34\xda\x0a\x8f\x34\x40\x7f\x4d\x3e\x45\x5b\xa0\xaa\x02\x6a\x85\x3e\xbb\x5e\x6d\x64\xe9\xd8\x10\x5e\x69\xb8\x4e\x36\xfb\x57\xa8\xb6\xe0\xe7\xcb\xb9\xe5\xd5\x24\x98\x80\x36\xd9\x58\xe3\x2a\x38\xf5\x97\x7b\x3c\x70\x38\xc9\x83\x99\x4f\x08\x88\xfe\x30\x91\xaa\x1f\x45\x91\x9f\x06\x02\xb5\xd7\x50\x73\x8b\x17\x1b\x97\x87\xaf\x29\x6f\x2b\xa5\xfe\xe3\x11\xa1\x6f\x1c\xdc\xd8\x10\xa6\x68\x9a\xc7\xa7\x5b\xc1\x9e\x69\x33\x95\xb0\x0c\xfd\xaf\x13\xcc\xa6\x67\x0a\x47\x2d\x44\x9e\x9e\xfe\xf6\xe0\xf9\xd1\xc1\xab\xaa\xba\xaa\x37\xe2\xb2\x7d\x7d\x67\x23\xd9\x8a\xf8\x00\xa0\xb2\xb5\x19\x6b\x28\x4a\x9e\x11\xa5\xc5\xe6\x2c\x4d\x86\x25\x22\x25\x42\x25\x21\x6d\x4f\xf2\x1a\xfd\x49\xbd\x07\xf7\x4e\x9d\x18\x9b\xc5\x76\xd3\xdd\x39\xa7\x39\x77\x98\x75\xe2\xdc\xbc\xf3\x56\xa5\x2c\xa0\x8c\xb2\x9e\xae\x85\x79\xca\x66\x08\xa1\x94\x13\x59\x41\xee\xd7\xe3\x30\xde\x08\xa9\xe5\x09\x5b\x17\x7c\xe2\x6b\x23\x21\xe7\xac\x98\x62\xba\xce\xf3\x71\xc4\xd2\xe9\xdc\x8b\xab\x91\x18\xa1\x5f\xf9\xfc\x46\x79\xa1\xd0\xee\xb6\x48\x06\xa8\x0c\xc7\x39\xed\xfd\xdf\x9d\x4f\xa2\xf4\x2f\x87\x02\x12\xc2\x3a\xe8\x1e\xbc\x91\x68\xc9\x55\x53\x50\x41\xc1\xce\x54\xed\xf8\xe3\xca\xe6\x68\x4d\xab\x1b\x1e\xed\x16\xb2\x5b\xc6\x67\xa3\x66\x91\xd0\xe0\x50\xa4\x9f\x2d\x78\x2e\xd9\xec\x3f\x94\xd5\x0c\x8d\x33\x58\xa8\x23\x75\xd3\x60\x5f\xdb\x79\x12\xb1\xfc\x3e\xd9\x15\x5f\xb1\x05\x2c\x93\xe6\x10\x05\xc2\xf6\xa8\x7c\x42\xcf\x68\xaf\xf9\xe6\xc9\xe1\x98\x13\x65\x37\x70\xc4\x39\xcc\x39\x7f\x9e\xcb\xa2\x7a\x99\xb0\x82\x05\x4d\x8f\x44\xa5\xb8\x2b\xae\xa6\x8b\xd8\x49\xcd\xe7\x04\x4a\x27\x79\x2a\x26\xb3\xa1\x2d\x93\x8c\xb6\x50\xa8\x91\x41\x24\xbe\x06\x9a\x1d\x8a\x0f\x98\xd9\x87\x68\xf9\x14\x4a\xfc\xc8\x51\xb3\x38\xa8\x4d\x79\x7c\x35\xa7\x65\x71\x11\xfa\x42\x78\xb6\x2e\xee\x95\xe3\xdd\xed\xb8\x91\x6d\x03\xc9\x3e\xc8\x84\xac\x97\xe2\x9b\x1d\x44\x90\xec\xae\x90\x62\x8e\xd2\x61\xeb\xcb\xbd\x4d\x0c\x12\xd1\xc2\x95\xe6\x68\x3d\x68\x5c\x50\x8d\x14\xf2\x89\xf5\xb0\xc8\x6b\xbd\x05\xc3\x1e\xdb\x6e\xf4\x6a\xba\x2a\xbe\x24\xf5\x3c\x90\xb3\x3a\xc3\xb8\x03\x36\x16\x68\x7a\x9d\x3b\x29\x00\x87\x6c\xb4\x87\x91\x45\x77\x1c\x09\x57\xa0\x7d\x37\x1f\x98\x26\xe6\x41\x08\x9e\x34\x7c\x15\x5f\xd6\x2c\xf1\x76\xbb\x4f\x6a\xf7\xc2\x23\xb4\x5c\xfd\x0e\x0a\x54\x10\x92\x25\x27\xf9\xa8\x9a\x8b\xb8\x64\xf4\x97\xa7\x63\xfa\xc9\x41\x09\x74\x10\xf4\x48\x37\x3d\x12\x32\x95\x5c\xdd\x4c\x06\x73\x64\x15\x1a\xe3\xf5\x7e\x3b\xd6\x11\x97\x5e\xb1\x89\xe3\xde\x3d\xe6\x59\xb8\xf5\x8f\xc7\xbc\x86\xbb\x77\x17\x71\x1a\xea\x0f\x51\x2a\xe8\xfb\x8f\x0d\xad\x0b\x9a\x91\xcb\x4b\x1d\x51\x20\x95\xde\x29\x23\xa5\x4a\xdd\x08\x83\xf1\xb1\x94\x08\x2a\xbb\x2d\x77\x10\x5e\x9d\x00\xd2\x3e\x0c\x0e\x22\x26\xcb\x2f\x83\x1d\x10\xa6\x62\x23\xd9\xf7\x17\x26\x05\x58\x31\x8f\x72\xb6\x69\x26\xe0\xae\x2a\x16\x9b\x8f\x5f\xb8\x6d\x9f\x61\x17\x60\xd9\x62\x62\x18\x79\x1f\x7a\x18\xb8\x07\xe1\x2d\xd6\x1b\x89\x5d\x96\x88\x5c\x8a\x39\xae\x56\xfa\xa0\x98\x7a\x4b\xc6\x34\xbf\x63\x89\x02\x28\x8c\xbe\x30\x4d\x2e\x60\x85\xb3\x5b\xbd\x8c\x69\xf7\xc7\xbc\x08\xa5\x47\x64\xe5\xa5\x8c\x36\xda\x85\x14\x92\x3c\xab\xca\x33\x94\x08\xa4\xd4\xc4\xa0\x55\x20\xb8\x41\x50\xe1\x49\x38\x61\xb1\x20\x8a\xb6\xd2\x00\x7f\xd4\x70\x71\xec\xd8\x41\x9c\x4d\xe3\x87\x64\xca\xec\xb0\x93\xa2\xcc\x82\x59\xf4\x13\xef\xcb\x13\xe1\x94\x51\xd2\x2b\x9b\xd8\xa1\x92\xf9\x18\x4f\x62\xc4\x38\xb1\xfa\x98\x8c\xdc\x16\xb4\x3a\x19\xed\x3c\xa3\xdc\x13\xbd\xad\xa0\x11\x8c\xf9\x61\x32\xee\x3a\x06\xdb\x5e\xec\x80\xf4\xc9\x56\xb3\x92\x8f\x59\x23\xc5\xa7\x43\x52\xcc\x62\xea\x9e\x8a\x03\x10\xff\x95\x3d\x4f\xd8\x86\xd2\x6d\x6e\x5c\xcb\xb8\xc9\xaf\xda\x42\x4c\xe0\xe0\xc6\x6e\x3b\x51\x12\xf9\x3d\xe9\x88\xf1\x78\xf1\x03\xde\x77\x66\x3c\x3f\x37\x48\x3a\xef\x8a\x49\xb0\x6e\xd8\x64\x42\x55\x33\x36\xa2\xea\x07\x63\x50\xf3\x73\x0d\x60\x71\x64\xb7\x45\x9b\x9e\x90\xe3\xf9\x8a\xb8\x13\x20\x18\xd0\x2c\x86\xb6\x5d\x5e\x23\x58\xc6\x6e\xe8\xd6\x57\xa6\x58\x6a\xf7\x0e\xb2\x53\x69\x42\xb0\x73\x3f\x99\xd3\xdc\xb2\xeb\xb4\x98\x57\xd3\x84\xa8\x70\xcb\x0b\x62\xe3\x18\xa1\x30\xf1\xd9\x05\xa1\x2c\x71\xc3\x19\xad\x38\x0a\x8b\x02\x2d\x4e\x3f\x5f\x5e\xe1\xbb\x17\xd5\x5b\xec\xff\xb1\x28\xfd\x61\xd9\x93\xb5\xe0\x3d\x6d\x0d\x86\x4b\x24\x81\xdd\xe4\xf0\xe4\x72\x80\x0e\x84\xd9\x7b\x2a\x12\x66\x1b\xfb\xb9\x07\x0f\x37\xcd\x45\x8f\x0d\x43\x47\x40\x03\x49\x12\x39\xf6\x98\x70\x24\x38\x6a\x28\x18\x51\x79\x7d\x13\x22\x75\x2e\x6e\x24\xb1\x60\xfc\xdd\xe4\xa4\x29\x38\x3a\x69\x04\x35\xf1\x20\x0d\x0a\xd9\x58\x74\x01\x1d\xb8\x9d\x4f\xfa\xf2\x23\x2e\x84\xa7\x67\x62\x00\x09\xfa\x3e\x53\x4c\x50\xb2\x65\x68\x05\xa3\x80\x79\x9a\x16\x81\x7b\x35\x0a\x3b\x23\xd4\xd0\x3f\xcf\xff\xe4\xcf\x04\x82\x83\xc4\x71\x44\x18\x9d\xc9\xb9\x65\x37\x5c\xff\x5e\xe4\x17\x1a\x23\xc1\x72\xfe\xf7\xa8\xdd\xef\xd1\xc2\x4b\xe3\x38\x20\x36\x91\x22\x7c\x30\x56\xf7\x76\x1e\xca\x36\x08\x78\x51\xae\xff\x7f\x91\xe8\xac\xeb\x96\xd7\xb2\x10\x82\xa9\x5d\x6b\x79\x6a\xd7\x68\x8b\x9c\x48\x75\x4f\xa3\x4d\x28\x73\xc1\x37\x70\x12\xcc\x16\xa7\x98\xe8\x0c\x71\xd5\x75\x95\x72\xb1\x7e\x3a\x01\x3f\xa2\xe8\x78\xa5\x19\x4c\xe5\x35\x8e\xce\xc5\x60\x2f\xb2\x06\xd5\x90\xff\x76\x5f\x57\x75\x59\x04\xd4\x36\x1e\x11\x8f\xb1\x8f\x8f\xda\xd8\xdf\x38\x7f\xe6\x3f\x79\x67\x8e\xa9\x13\xd3\xb1\x63\x39\x55\xf8\xe1\x1c\x2d\x8d\x7c\x71\x67\x91\x23\x41\x88\xbd\xcb\x7b\xcc\xcc\xc6\xf3\xeb\x85\x99\x3e\xbe\x53\x47\x8b\xf9\x2d\xff\xf2\x33\x31\xf3\x94\xf2\x16\x42\x64\xa6\xc0\x29\xd0\xc8\xbb\x9a\x41\xe0\x9c\xc3\x5e\xff\x2a\x58\xd4\xad\x3b\x92\xb4\xd6\x82\xc7\xac\x73\xa7\x28\x89\x2b\xb1\x1b\x57\xc3\x9a\xed\x49\x70\x9c\x20\x0e\x91\x6b\xcb\xa5\x22\x9d\x16\x04\x3e\x34\xb1\xc0\x42\x23\xbe\x93\x78\x4e\x3d\xe8\xb7\x43\x49\x42\x5c\xf0\x73\xd7\x06\x85\x65\xe7\xd9\x14\xf2\x65\x73\x58\x1d\xc9\x19\x91\x9f\xee\xc1\x81\xd3\x71\xcc\x66\x29\xf8\x95\x72\x8f\x85\x26\xac\xef\x9c\xe5\x01\x10\xfd\x92\x57\xfc\x67\x7d\xe7\xfa\x23\xf9\x8f\x35\xba\x06\x86\xfc\x65\xd0\x74\xc4\x12\xa5\xe0\x2a\xd0\x67\x83\x6f\x80\xfc\x24\x43\x7e\x2d\x0d\xec\xff\x85\xb1\x02\x9e\x28\x66\x0b\x34\x48\x51\xa0\xbe\x45\xcd\xc1\x07\x16\xa0\x59\x74\xe5\xe0\x9d\x00\xf9\x94\xa4\xde\x6e\x97\xcf\x71\x48\xc3\x4e\xbe\xb5\x56\x5b\xe0\xec\xcf\x4d\xfa\x7c\x8b\x70\x69\x1d\x0a\x4f\xc4\xad\xf4\x0a\x04\x97\x77\xec\xf5\x60\xda\xaf\xe4\x37\xbb\xb8\xaf\x38\x0a\xd9\x08\x19\xf3\x01\x82\x02\xe7\x38\x51\x9d\x37\x2b\xdb\x17\xf7\x71\xa2\x9d\x8b\xc5\x84\x51\x26\x25\x67\xd3\x8b\xeb\x9f\xc9\x2e\x00\x0c\x18\xdf\x63\x24\xe6\xc4\xda\x79\x47\x54\xc8\x49\xb2\xfd\xed\x1b\x67\xac\x18\xb4\x8a\x8b\x05\x77\x3d\x62\xe2\x4e\xc7\x8a\xd9\xcb\x00\xb9\x95\x9f\xe2\x0c\x0d\x87\x78\xad\x63\x62\x60\xaf\x68\xe1\xf3\x36\xe0\xa9\x67\x8b\x7c\x84\x75\x2a\x62\x43\x55\x25\x73\x80\xfe\x51\xd9\x8e\x1c\x17\xb6\xf0\x26\xff\x82\x06\xe9\xb1\xb4\xc0\x45\x1c\x9e\xe8\xa5\xde\x6a\x38\xa2\xbf\x52\x81\x0f\xa1\x7f\x81\x1a\x4d\xc5\x69\x31\xec\x4d\xe8\xfe\xe4\x7c\x55\x34\x41\xaa\xf1\x68\x3f\x94\xf5\xe6\xfa\xd5\x4e\xaa\xf6\x6e\x6d\x6a\xcb\xd6\x27\xd6\x4e\x05\x45\xef\xb2\x65\x07\x41\xd6\x5b\xfb\x41\xb1\x2d\x84\xb5\xf8\xa9\x2a\xe9\x78\xdb\x26\x12\xae\xda\x68\x23\xb3\xd4\x22\xe5\x64\x29\xe7\xfe\xa6\xa7\x02\x80\x01\xe7\x0c\xda\x4c\x3b\xdc\x74\x17\x50\x85\x8e\x4a\x4f\x44\xcb\x87\xe4\x71\x12\xae\x9a\x03\x38\x56\x94\x02\xc3\x86\xb1\xf2\x32\xba\xc1\x45\x67\x93\x46\x2d\xa3\x38\xb3\x85\x1b\xb3\x1d\x93\xe6\x4d\x61\x47\x3b\xcb\xbf\x40\x0d\x0f\xc9\x9b\xf5\xe0\x6b\x98\x91\x22\x51\x8f\x61\x49\x8d\x82\x65\x84\x6c\x6b\x59\x6b\x73\xd4\x9a\x13\x86\xcf\x28\x40\x6b\x33\xd9\x0e\x9d\x91\x9a\xf9\xbf\x0e\x74\x45\x60\x61\x34\x3c\xe0\x7f\x46\x19\x1f\x05\x0c\x5f\x69\xf4\xc6\x2d\x89\x56\x17\x77\x5e\x1c\xce\x6e\x82\xa9\xb3\x00\xea\x5c\xed\x96\x67\xb7\x84\xe5\x9b\x68\x7c\x8f\x48\x70\x77\xc2\x45\x8d\x6d\xb7\x26\xcb\xf0\x09\xc3\x3c\x92\x57\x6f\x35\xa1\x49\xa7\xaa\x11\xf2\x9c\xca\xd5\x79\x67\xfc\x3e\xc9\xcd\xa6\x5a\xe3\x0b\xa1\x75\xbf\x3e\x40\x5a\x30\x3c\xae\xed\x44\x0e\xd2\x1a\x99\x73\x5c\x4f\xe5\x24\xf8\x42\x39\x71\x47\x3d\xb4\x8f\xa5\x05\xf4\x4a\x4d\x13\x56\xb8\x2a\x90\xc7\xf5\x81\x73\x2f\xeb\x08\x9c\x0e\x83\x01\xff\xc5\x4d\x32\x07\x57\x14\x47\xc4\xf7\x5d\x96\xb0\xba\x58\x87\xa5\x58\xda\x9a\x2f\xf2\x72\x6f\xa8\x74\x8c\x21\x79\x27\x61\x93\x69\x5b\xf0\x36\x58\x97\x8b\xda\xa7\x4b\x4c\x02\xfb\xf0\x0c\x1a\x5a\x9e\xca\x00\x9e\x7a\x3b\xfd\x5d\x48\x88\x1c\xec\xb7\x43\xe5\xb6\x5b\x0c\x0b\x1e\x02\x4b\x80\x04\x48\x53\x26\x5a\xc0\xee\x2f\xd9\x2d\xde\xbb\xd5\x9c\x4d\x4c\xb3\xa0\x9d\x83\xf9\xdf\xc5\xc2\x74\x11\x1e\xc8\xca\xab\x4c\xbc\x65\x51\x8e\xf6\xa8\xe2\xe0\xf1\x49\x93\xc1\x7a\xf6\x6d\x7d\xd5\xd3\x06\x43\xb2\x39\x1b\x72\x89\x75\xf3\x88\x6b\xb0\xc6\x40\x65\xc8\x7e\xec\x0c\x28\x69\x6a\x07\xd1\xc3\x04\x16\xb7\x90\x1d\xcd\x4f\x94\x13\x9c\x91\x7d\xc9\x86\xff\x15\xf1\x36\x4b\x22\x7c\xf5\x94\xba\x63\xe2\x83\x62\xe5\x21\x17\xa5\x46\x9f\xc1\x5d\xed\xb4\x5c\x7e\x12\x4b\x58\xb0\x14\xe2\xc4\x98\x93\x3e\xc3\x62\xab\x60\xc7\x58\xdb\xc1\x5c\xc7\xb1\x7b\x36\xfd\x92\x65\xf9\xd5\x85\x7f\xdb\xa2\xed\xb3\x6a\x35\x5c\x52\xf5\x3d\x09\xf0\x3e\x47\x4c\xa4\x5a\x06\xf9\x99\x5d\x1f\x10\xb0\xbe\x32\x33\xeb\x83\x1b\x04\x72\x00\xd3\x54\x72\xb2\x13\x7b\xc2\xfb\x77\xb8\x19\xda\xf9\xa8\xe9\xb8\x53\xd9\x52\x93\x19\x93\xf9\x2c\x62\x09\xa3\x58\x7a\xd8\x12\x98\x9d\x85\x7a\xae\x67\xaa\x7e\x87\x27\x5f\xc3\x4b\xe4\xb3\xb7\x8b\x47\x5c\x32\x00\xe3\x5f\x04\x53\xbc\xdd\x00\xd8\xd7\x18\xa5\x28\x6c\xb4\x7d\xee\x49\xd9\x0a\xfe\xd7\xf4\xfe\x42\x49\x6b\xa3\x3c\xf1\x3d\x6f\x17\xc1\x05\xed\xdb\x25\xc8\x76\xd6\xf5\x2a\x21\xcf\x09\x8d\x42\xd9\xbf\xc7\x2f\x05\x35\x28\x1f\x6c\x02\x21\x03\x45\x5d\xcb\x87\xfc\xd5\x05\xd7\x71\x4e\x79\x41\x7c\x9f\xcd\x32\x20\x8e\x38\x8c\x9d\x50\xe5\x61\xf2\x31\xa0\x9c\xc7\x31\x49\xf2\xec\x24\x8b\xd1\xfc\x88\x5f\x3e\x10\x59\x65\x9b\x1a\x4a\xc9\x78\xbb\x5c\x81\xb0\x93\xda\x5b\x9d\xc2\x93\x09\x6b\xa9\xfd\xbe\xc0\x05\x02\x19\x2e\x4f\xae\x10\xaf\xd3\x60\x5c\x2c\x02\x0a\x62\x8a\x05\x5d\x56\x59\xc3\xef\xfb\x76\x44\x68\x34\xa8\xe8\x4e\xdf\x52\x39\xc9\xea\x6c\xb6\xcb\x85\xae\xf6\x4b\x68\xbc\x7e\x2f\x96\x85\x6f\x65\xe9\x76\xba\x1b\xd5\x25\xc1\x96\x5e\xc7\xa2\xd9\x54\xcc\x99\xfb\xa8\xfa\x13\xd3\x29\x22\x7f\x7f\x93\x21\x68\x9c\x63\x1a\x12\xdc\xb0\xac\x99\x48\x7b\xfe\x47\x25\xe9\xb7\xd0\x1e\x84\x81\x02\x49\x43\xcc\x35\xf7\xa0\xe8\x7a\x21\x42\xa9\x22\x9d\x35\x3b\x41\x28\x89\x7a\x9b\x3b\xc4\xa4\xeb\xc8\x2d\xde\x1c\xbf\x76\x16\xdc\x65\x44\xe0\x5d\xb9\x08\x20\x3e\xc5\x68\xb9\xf4\x88\x93\xa0\xfc\x9a\x1a\x77\xcb\x73\x40\xaf\xe9\x77\xb5\x1f\x3a\x4a\x1e\x55\x5a\xb8\x11\xb9\x72\x39\x96\xed\x60\xb7\x01\x84\xc5\x38\xcb\xde\xd3\x27\xfa\xda\x7d\x9a\xc2\x05\xb3\x29\x58\xcf\xce\xeb\x3c\xee\x19\x2d\xa0\x3e\xfd\x31\x47\x6c\x88\xdf\xd0\x58\x12\xdf\x72\xc9\x77\xd1\x7f\x44\xae\x5d\x69\x6f\x33\x61\x85\xd2\xd9\x07\x79\x74\x7d\x6d\x91\x34\x7d\xa9\x6b\x40\xff\xbd\x32\x3f\x16\x02\x2e\xa6\x3a\x74\x40\x77\x89\x3f\x6e\x16\x99\x1d\x65\x84\x9d\x65\xcb\xcd\xc1\x0f\x83\xdb\x70\x81\x09\x35\xcb\xa0\x4e\xde\x08\xf7\x4a\x72\x61\xa2\x86\x13\x0e\x14\x71\x84\xc0\xf1\x28\x27\xd7\x4f\xc6\xc8\xdb\x93\x54\xfe\x3c\xa3\xe0\x44\x0a\x06\xe3\x2b\x15\x66\x23\xb3\x58\x7c\x7b\x23\x87\x29\x54\xfa\xa2\x7e\xb7\x18\x82\xbf\x94\x5f\x03\x5b\x72\x12\xdf\x25\x23\xa7\xe8\xc5\xac\x16\x58\xbf\xa6\xa4\x60\xad\x97\x39\x77\xdc\x59\x28\x38\x71\xb6\xde\x43\xe4\x92\xf8\xd4\x76\xbf\x34\x0f\x7f\x6a\x92\xa3\x8d\xc4\xab\x15\xbd\xd3\xe0\xff\x15\x95\x9c\x7c\x49\xda\x65\x81\x0e\x60\x06\x0c\xce\xfe\xfd\x93\x1c\xe9\xe5\x42\x4c\xb6\xfa\xa2\x7e\x2e\x26\xb3\xa2\x3f\x52\xb9\xca\x19\xae\x15\xba\x0b\xfe\x5e\x47\xb5\xa7\x00\x40\x2d\xed\xa7\xf5\x33\x78\x97\xdc\x23\xfe\xe1\x1c\x62\x38\x3a\x3f\xbd\x1f\x28\xae\x2a\xc4\xcc\xed\xfc\x92\x64\x18\xd0\xdb\x7d\x6e\x22\x83\x31\xac\x7a\x8d\xf3\x11\x93\xee\x68\xbc\xcc\xb0\x4a\xa7\xfd\xd4\x8c\x9e\xa7\x4e\xa5\xa8\xb0\xce\x94\xe7\xa3\x1c\x3d\xc5\x96\xfd\x10\xd3\x03\x80\x28\x0e\x61\xbd\x2c\x11\x62\x5e\xa9\xf1\xad\xa2\xe0\x31\xeb\x80\x7d\x57\xb3\x6a\x17\xf3\xbc\x74\x88\x81\xa5\x6a\x98\x77\xe3\x58\x38\x8f\x2d\x49\x3c\x61\x94\x3c\x79\xc8\x87\x9a\xd7\x4e\x51\x5c\x9b\x38\xb1\x0f\x6b\xf4\xc0\xbb\xe1\x29\xfa\x8f\xcf\x2c\x2a\x82\xe9\x13\xec\xe2\xd3\x3a\x33\xa5\xc7\xa5\x81\xe7\x57\x14\x20\xf1\x4f\x21\x05\xd3\x76\xab\xa2\xaa\x5c\x5f\x58\x10\xd7\xe3\x4e\x78\xab\xe7\x68\x65\x54\x07\x19\xd2\x63\x4b\x38\x4f\xbb\x84\x0c\x05\xec\x3b\xc2\xe5\x3a\xf1\x30\x56\x14\x16\x80\xab\xa6\x7a\xdb\xe6\xe8\x88\x8b\x2d\x88\x95\x9e\xb9\xe9\xa5\x6f\x98\x55\x2b\xd0\x83\x23\x0a\xf6\xae\xfb\xd8\x35\xad\xf9\xf5\x0f\x0d\xaa\xe9\x81\x4c\x67\x02\xf7\xd0\xb1\xe9\xca\xde\x35\xa3\x53\x6d\x62\x7d\x92\xa3\x01\x17\x72\x77\x91\x00\x45\xd0\xff\x08\x6e\xd8\x4e\x61\xc4\x2c\x82\x3f\xdd\x8b\x7e\xf1\x69\x1d\x44\x64\x5b\x40\xca\x57\xa1\xcc\xc0\x13\xda\x6a\x24\xcb\xd4\x32\x57\xbf\xc0\xbf\x69\x6c\x7a\x60\xbb\x6d\xd6\x77\xb3\xa7\xc2\xf3\x78\xb3\xa9\x63\xab\xbb\x27\x15\xc9\xb7\xb5\x7f\xb7\x95\x9a\xe9\x70\xc1\xbe\xd9\x3a\xd0\x7e\x05\x07\xae\xc8\xee\x94\xfc\xa0\x97\xa4\xd0\x66\x93\x97\x2a\x4b\xcf\xf3\x68\xbd\x4b\x34\xe1\x30\x9c\xa8\xc8\x47\x07\x5a\xf2\xeb\x5d\xba\x14\x44\x13\x21\x19\x78\x81\xad\x53\x5f\x78\x92\x93\x52\x61\xf2\xfb\x94\xe1\x73\x94\x31\x63\x27\xb5\xb6\xa0\xc7\x77\x8d\x4f\x8e\xe2\xa5\x39\xee\x3b\x4c\xd3\x9b\x53\xf3\x71\x61\x4e\x71\xd9\xe0\x53\x83\x20\x44\x59\x0c\x0c\xad\x40\x19\xfe\x55\xe8\x48\x9e\x9a\xba\x62\x04\x90\xa8\xea\xb8\xac\x8b\x06\x92\x84\x18\x5b\xd7\xb8\x19\xfe\x01\x83\xba\x8b\xb7\x38\x2e\x19\xf9\x5f\x3f\x60\x7d\x87\xf6\x71\x8d\x86\x89\xd0\x39\x4d\x5e\x88\xe1\x4e\x2c\x8d\xea\xfb\x59\x0d\x4c\x1f\xb1\xbd\x76\x08\xaf\x6e\x4a\x2b\xaa\x2a\x0c\x27\x04\x4f\x00\xb5\xdf\x03\x4b\x13\x1d\xa8\x68\x8a\x25\x0c\x08", 4096); *(uint64_t*)0x200213c8 = 0x20021300; *(uint32_t*)0x20021300 = r[0]; *(uint32_t*)0x20021304 = r[0]; *(uint32_t*)0x20021308 = r[1]; *(uint32_t*)0x2002130c = r[0]; *(uint32_t*)0x20021310 = r[1]; *(uint32_t*)0x20021314 = r[1]; *(uint64_t*)0x200213d0 = 0x20021340; *(uint64_t*)0x200213d8 = 0x20021380; *(uint32_t*)0x200213e0 = 0x1000; *(uint32_t*)0x200213e4 = 6; *(uint32_t*)0x200213e8 = 0x3d; *(uint32_t*)0x200213ec = 3; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200213c0, /*actual_bytes=*/0x20021400, /*actual_handles=*/0x20021440); if (res == ZX_OK) { r[4] = *(uint32_t*)0x20021380; r[5] = *(uint32_t*)0x20021384; r[6] = *(uint32_t*)0x20021388; } break; case 4: *(uint64_t*)0x20031540 = 0x20021480; *(uint32_t*)0x20021480 = 0; memset((void*)0x20021484, 0, 3); *(uint8_t*)0x20021487 = 1; *(uint64_t*)0x20021488 = 0x66c69d1b00000000; *(uint32_t*)0x20021490 = 2; *(uint32_t*)0x20021494 = 2; *(uint64_t*)0x20021498 = 9; *(uint64_t*)0x200214a0 = -1; *(uint64_t*)0x200214a8 = 2; memset((void*)0x200214b0, 0, 1); *(uint64_t*)0x20031548 = 0x200214c0; *(uint64_t*)0x20031550 = 0x20021500; *(uint64_t*)0x20031558 = 0x20031500; *(uint32_t*)0x20031560 = 0x38; *(uint32_t*)0x20031564 = 0; *(uint32_t*)0x20031568 = 0x10000; *(uint32_t*)0x2003156c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[5], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20031540, /*actual_bytes=*/0x20031580, /*actual_handles=*/0x200315c0); break; case 5: *(uint64_t*)0x200416c0 = 0x20031600; *(uint32_t*)0x20031600 = 0; memset((void*)0x20031604, 0, 3); *(uint8_t*)0x20031607 = 1; *(uint64_t*)0x20031608 = 0x4fcfbc1100000000; *(uint32_t*)0x20031610 = 0; *(uint32_t*)0x20031614 = 1; *(uint64_t*)0x20031618 = 0xc1; *(uint64_t*)0x20031620 = -1; memcpy((void*)0x20031628, "*[#,)&,-[)}", 11); *(uint64_t*)0x200416c8 = 0x20031640; *(uint32_t*)0x20031640 = 0; *(uint32_t*)0x20031644 = r[5]; *(uint64_t*)0x200416d0 = 0x20031680; *(uint64_t*)0x200416d8 = 0x20041680; *(uint32_t*)0x200416e0 = 0x38; *(uint32_t*)0x200416e4 = 2; *(uint32_t*)0x200416e8 = 0x10000; *(uint32_t*)0x200416ec = 4; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200416c0, /*actual_bytes=*/0x20041700, /*actual_handles=*/0x20041740); if (res == ZX_OK) r[7] = *(uint32_t*)0x2004168c; break; case 6: res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/0x104d); if (res == ZX_OK) r[8] = res; break; case 7: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t))CAST(zx_channel_create))(/*options=*/0, /*out0=*/0x20041880, /*out1=*/0x200418c0); if (res == ZX_OK) r[9] = *(uint32_t*)0x20041880; break; case 8: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t))CAST(zx_exception_get_thread))(/*handle=*/r[5], /*out=*/0x20041900); if (res == ZX_OK) r[10] = *(uint32_t*)0x20041900; break; case 9: *(uint64_t*)0x20041bc0 = 0x20041780; memcpy((void*)0x20041780, "\xfa\x2f\x40\x69\xc5\xf5\x4d\x24\x79\xf8\x4d\x1d\x73\x3a\x52\xf5\x9f\x0a\x68\x70\x94\x66\xe6\x63\x3a\x63\x18\xf6\x05\x7f\xbf\xc9\xf0\x48\xb0\x9b\xfb\xb6\x39\x05\xdc\x82\x47\x45\xb1\x62\x47\xee\x57\x0e\x79\xaf\x77\xfd\xe7\x3b\xe0\x86\x53\x56\x84\x1b\x89\x97\xc5\x5e\x4c\x9b\x79\x2e\x2c\xd8\xc5\xac\x57\x89\x60\xab\x6b\x2d\x80\x4c\xd8\x9e\xb8\xf0\xde\x21\x51\xa1\x69\x3b\x64\x98\xd6\x1a\xbe\xdb\xd5\xdb\x7c\xae\x8b\x09\xf9\x4c\x6d\x94\x2c\xb3\x10\x51\x52\x49\x61\xcc\x82\xc4\x94\x0a\xf1\xab\x9c\xee\xba\x52\x71\x6e\xb2\x5b\x87\x0e\xaf\xbb\x41\xd9\xa1\x56\x2e\x96\x70\xdf\x00\x38\x4a\xa9\x55\x4b\x70\xf9\xa1\x66\x83\x41\x50\xf2\xe3\x72\x15\xe4\x13\xba\x12\x38\xa1\x81\xd4\xf7\x43\x58\x43\xb6\xbb\x56\xfa\x88\x61\xd8\x68\x80\x01\xd3\x9d\x9e\x2b\x18\x9f\x67\xe8\x05\x33\x11\x89\x64\x29\x97\x63\xf5\x86\x82\x8c\x69\x3c\xc9\x71\x2a\x9c\x25\x52\xdc\x30\xe5\x72\x25\x21\x2f\x5a\x50\xef\xe5\x6d\xa9\x9a\x32\x82\x4c\x4c", 227); *(uint64_t*)0x20041bc8 = 0x20041a80; *(uint32_t*)0x20041a80 = r[9]; *(uint32_t*)0x20041a84 = r[10]; *(uint32_t*)0x20041a88 = 0; *(uint32_t*)0x20041a8c = r[1]; *(uint32_t*)0x20041a90 = r[6]; *(uint32_t*)0x20041a94 = r[0]; *(uint32_t*)0x20041a98 = r[4]; *(uint32_t*)0x20041a9c = 0; *(uint32_t*)0x20041aa0 = 0; *(uint64_t*)0x20041bd0 = 0x20041ac0; *(uint64_t*)0x20041bd8 = 0x20041b80; *(uint32_t*)0x20041be0 = 0xe3; *(uint32_t*)0x20041be4 = 9; *(uint32_t*)0x20041be8 = 0x9a; *(uint32_t*)0x20041bec = 8; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); break; case 10: memcpy((void*)0x20000000, "\xc4\xe1\xd9\xd2\x9e\x91\x00\x00\x00\xc4\x81\x71\xfd\x84\x48\x00\x00\x00\x20\xc4\xa1\x7f\x70\x44\xba\x34\x0e\xf3\x0f\xae\xd6\xc4\x62\x79\xa7\x5d\x03\xc4\xc2\xfd\x96\x42\xa7\x2e\x66\x43\x0f\x38\xf5\x59\x00\x42\x0f\x34\xc4\xe1\x78\x2b\x42\xc0\xc4\x42\x65\x92\x24\x2c", 66); syz_execute_func(/*text=*/0x20000000); break; case 11: syz_future_time(/*when=*/1); break; case 12: syz_job_default(); break; case 13: syz_mmap(/*addr=*/0x20ffe000, /*len=*/0x1000); break; case 14: syz_process_self(); break; case 15: syz_thread_self(); break; case 16: syz_vmar_root_self(); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :433:75: error: use of undeclared identifier 'zx_channel_call_etc' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor2291162862 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/4 (0.48s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:1 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:false Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(0x0, 0x0, 0x0, &(0x7f00000100c0)={&(0x7f0000000000)={{}, {0xffffffff, 0x0, {0x4, 0xffffffffffffffff}}}, &(0x7f0000000040), &(0x7f0000000080), &(0x7f0000010080)={{0x0, 0x0, 0x0, 0x0}}, 0x28, 0x2, 0x10000, 0x4}, &(0x7f0000010100), &(0x7f0000010140)) (fail_nth: 1) r3 = zx_deadline_after(0x5) (async) zx_channel_call$fuchsia_io_DirectoryAdminLink(r2, 0x0, r3, &(0x7f0000020240)={&(0x7f0000010180)={{}, {0x3, 0xffffffffffffffff}, 0xffffffff, {0x1b3}}, &(0x7f00000101c0), &(0x7f0000010200), &(0x7f0000020200), 0x34, 0x1, 0x10000}, &(0x7f0000020280), &(0x7f00000202c0)) (rerun: 4) zx_channel_call(r2, 0x0, r3, &(0x7f00000213c0)={&(0x7f0000020300)="6b3c1256279544bb32d36243afcbfda5cd1a1759ba09b008c97e2be49ab10adda6d88f529de7b04ad9b0fdd96d3184196e8e6975312bf6a2c53df14551fa4b32627dd679eef9c59f190ca4036814372cf510d02917535f1f02da97f6d1601f3e89e10a621b4e82ba76d41a2f87249736cd35a2432bf368daf43f60387c27f9177614c2f4d4fd31ddd5e08d63429d663ee14a1932bf8f4df70369f3c2a75197422ed0022be80fd87b79db2a43499a48bdcd91246573303a4508e17cf020c64c577b8bb0926c4bde1560a77446497e5bafec8429a311719384f637c4a008c3ddd62610dbb1d4c2dd8f1bd73e7f3657fcf24dbb896a145b28f34098f9d40199c5b72003c4e08eab96aec066bf2d97c2661f4cd91c59cd4f9e4f5617cfd6ada6e04953cc4c7be1c3f10de31e155dd174e99f4136cae08e308b3c22b5d1dd66b379703429b4d5dfa60ec7d1aa50043c92c1a949b3d940f604d1f44ebdd3c3e4ab647c7e66f1211eec2712e0e4b70cb1a2c1c6c3b4e29a1042834acc26e99b38f6075bbea108bf124c3b1cc4275227bd0167110d69972d46b2dbd6b18314d2ea664ac2f4e4490ab3223eb08178f92e0c17bf861894997cd092fe07c06c5e0db444085a138c638d6eb7889a1996340ea460991f75cd1aba0bcae8f9779587f6df761f75373199146daba4848ac8a2a9b099ae5a54ed617ecb56326627016ea3d6d077f90474dbf037689bd7724a1cef3626e6e196748c050f91c662fda495b67e5aa3b016dc3bccb2d7a9733eca7c7bdd8847540d273b9c8c29335ebdd7715ee4f57dfe5c6a0f3d584398c0ea55375bd2c31b6c74e9f4eeb859c8977063125cdf72532de65c0a00d53bc003c8b101838ee151319695c0ac2acef5f1910bc952bebc7f689f52067f81c18c5dfac90057cdbd0f75e928163aeb09ef0159b66da4210834ca8ee3e285270b51f5e256867ce622923fd3c40e615e1342418a196fcb8e2b56486722f7b5ca524c75dbdb9be6314b7ad590b5cf8f80d7927dda79ceb1369d780f3338c1efb83ca7bdda05f8ca9445b500c0506359a4baa2a8ee7e8b4afb48dbdc2a56194a8da4d1ac425245b83e1e8e448a29da4e2071aea3b8ef3a3cb5827e616d4707f851eea6260972eade34da0a8f34407f4d3e455ba0aa026a853ebb5e6d64e9d8105e69b84e36fb57a8b6e0e7cbb9e5d524988036d958e32a38f5977b3c7038c983994f0888fe3091aa1f45919f0602b5d750738b171b9787af296f2ba5fee311a16f1cdcd810a6689ac7a75bc19e693395b00cfdaf13cca6670a472d449e9efef6e0f9d1c1abaabaaa37e2b27d7d6723d98af800a0b2b5196b284a9e11a5c5e62c4d862522254225216d4ff21afd49bd07f74e9d189bc576d3dd39a739779875e2dcbcf356a52ca08cb29eae8579ca6608a194135941eed7e330de08a9e5095b177ce26b2321e7ac9862bacef371c4d2e9dc8bab9118a15ff9fc4679a1d0eeb64806a80cc739edfddf9d4fa2f42f870212c23ae81ebc9168c955535041c1ce54edf8e3cae6684dab1b1eed16b25bc667a36691d0e050a49f2d782ed9ec3f94d50c8d3358a82375d3605fdb7912b1fc3ed9155fb1052c93e61005c2f6a87c42cf68aff9e6c9e19813653770c439cc397f9ecba27a99b082054d8f44a5b82baea68bd849cde7044a27792a26b3a12d938cb650a8914124be069a1d8a0f98d98768f9144afcc851b338a84d797c35a7657111fa4278b62eee95e3ddedb8916d03c93ec884ac97e29b1d4490ecae90628ed261ebcbbd4d0c12d1c295e6683d685c508d14f289f5b0c86bbd05c31edb6ef46aba2abe24f53c90b33ac3b8033616687a9d3b2900876cb4879145771c0957a07d371f9826e641089e347c155fd62cf176bb4f6af7c223b45cfd0e0a5410922527f9a89a8bb864f497a763fac941097410f448373d1232955cdd4c067364151ae3f57e3bd611975eb189e3de3de659b8f58fc7bc86bb7717711aea0f512ae8fb8f0dad0b9a91cb4b1d512095de2923a54add0883f1b194082abb2d77105e9d00d23e0c0e2226cb2f831d10a66223d9f717260558318f72b66926e0ae2a169b8f5fb86d9f611760d9626218791f7a18b807e12dd61b895d96885c8a39ae56faa0987a4bc634bf638902288cbe304d2e6085b35bbd8c69f7c7bc08a54764e5a58c36da8514923cabca339408a4d4c4a05520b84150e1493861b1208ab6d2007fd47071ecd8419c4de38764caecb093a2cc8259f413efcb13e19451d22b9bd8a192f9184f62c438b1fa988cdc16b43a19ed3ca3dc13bdada0118cf96132ee3a06db5eec80f4c956b3928f5923c5a74352cc62ea9e8a0310ff953d4fd886d26d6e5ccbb8c9afda424ce0e0c66e3b5112f93de988f178f103de77663c3f37483aef8a49b06ed86442553336a2ea076350f3730d607164b7459b9e90e3f98ab8132018d02c86b65d5e2358c66ee8d657a6586af70eb2536942b0733f99d3dcb2ebb49857d384a870cb0b62e318a130f1d905a12c71c319ad380a8b022d4e3f5f5ee1bb17d55becffb128fd61d993b5e03d6d0d864b2481dde4f0e472800e84d97b2a12661bfbb9070f37cd458f0d43474003491239f6987024386a281851797d1322752e6e24b160fcdde4a429383a690435f1200d0ad95874011db89d4ffaf2232e84a767620009fa3e534c50b2656805a380799a16817b350a3b23d4d03fcfffe4cf048283c47144189dc9b965375cff5ee4171a23c172fef7a8ddefd1c24be338203691227c3056f7761eca36087851aeff7f91e8aceb96d7b21082a95d6b796ad7688b9c48754fa34d2873c1377012cc16a798e80c71d5759572b17e3a013fa2e878a5194ce5358ecec5602fb206d590ff765f57755904d4361e118fb18f8fdad8df387fe63f79678ea913d3b1633955f8e11c2d8d7c716791234188bdcb7bccccc6f3eb85993ebe53478bf92dfff23331f394f2164264a6c029d0c8bb9a41e09cc35eff2a58d4ad3b92b4d682c7ac73a728892bb11b57c39aed49709c200e916bcba5229d16043e34b1c04223be93784e3de8b74349425cf073d7068565e7d914f26573581dc919919feec181d371cc6629f895728f8526acef9ce50110fd9257fc677de7fa23f98f35ba0686fc65d074c412a5e02ad067836f80fc24437e2d0decff85b1029e28660b344851a0be45cdc10716a05974e5e09d00f994a4de6e97cf7148c34ebeb5565be0eccf4dfa7c8b70691d0a4fc4adf40a049777ecf560daafe437bbb8af380ad90819f3018202e738519d372bdb17f771a29d8bc58451262567d38beb9fc92e000c18df6324e6c4da794754c849b2fded1b67ac18b48a8b05773d62e24ec78ad9cb00b9959fe20c0d8778ad636260af68e1f336e0a9678b7c84752a624355257380fe51d98e1c17b6f026ff8206e9b1b4c0451c9ee8a5de6a38a2bf52810fa17f811a4dc56931ec4de8fee47c553441aaf1683f94f5e6fad54eaaf66e6d6acbd627d64e0545efb2650741d65bfb41b12d84b5f8a92ae978db2612aeda6823b3d422e56429e7fea6a7028001e70cda4c3bdc741750858e4a4f44cb87e47112ae9a0338569402c386b1f232bac1456793462da338b3851bb31d93e64d61473bcbbf400d0fc99bf5e06b989122518f61498d8265846c6b596b73d49a1386cf28406b33d90e9d919af9bf0e74456061343ce07f46191f050c5f69f4c62d895617775e1cce6e82a9b300ea5ced9667b784e59b687c8f487077c2458d6db726cbf009c33c92576f35a149a7aa11f29ccad57967fc3ec9cda65ae30ba175bf3e405a303caeed440ed21a99735c4fe524f8423971473db48fa505f44a4d1356b82a90c7f581732feb089c0e8301ffc54d3207571447c4f75d96b0ba5887a558da9a2ff2726fa8748c2179276193695bf03658978bdaa74b4c02fbf00c1a5a9eca009e7a3bfd5d48881cecb743e5b65b0c0b1e024b80044853265ac0ee2fd92ddebbd59c4d4cb3a09d83f9dfc5c274111ec8caab4cbc65518ef6a8e2e0f14993c17af66d7dd5d30643b2391b728975f3886bb0c64065c87eec0c28696a07d1c30416b7901dcd4f94139c917dc986ff15f1364b227cf594ba63e28362e52117a5469fc15dedb45c7e124b58b014e2c498933ec362ab60c758dbc15cc7b17b36fd9265f9d5857fdba2edb36a355c52f53d09f03e474ca45a06f9995d1f10b0be3233eb831b047200d35472b2137bc2fb77b819daf9a8e9b853d952931993f92c6209a3587ad812989d857aae67aa7e87275fc34be4b3b78b475c3200e35f0453bcdd00d8d718a5286cb47dee49d90afed7f4fe42496ba33cf13d6f17c105eddb25c876d6f52a21cf098d42d9bfc72f0535281f6c022103455dcb87fcd505d7714e79417c9fcd32208e388c9d50e561f231a09cc73149f2ec248bd1fc885f3e1059659b1a4ac978bb5c81b093da5b9dc293096ba9fdbec00502192e4fae10afd3605c2c020a628a055d5659c3effb76446834a8e84edf5239c9ea6cb6cb85aef64b68bc7e2f96856f65e976ba1bd525c1965ec7a2d954cc99fba8fa13d329227f7f9321689c631a12dcb0ac99487bfe4725e9b7d01e8481024943cc35f7a0e87a2142a9229d353b4128897a9b3bc4a4ebc82dde1cbf7616dc6544e05db908203ec568b9f48893a0fc9a1a77cb7340afe977b51f3a4a1e555ab811b9723996ed60b70184c538cbded327fada7d9ac205b32958cfceeb3cee192da03efd31476c88dfd05812df72c977d17f44ae5d696f336185d2d90779747d6d91347da96b40ffbd323f16022ea63a744077893f6e16991d65849d65cbcdc10f83db70810935cba04ede08f74a7261a286130e147184c0f12827d74fc6c8db9354fe3ca3e0440a06e32b156623b3587c7b23872954faa27eb71882bf945f035b7212df2523a7e8c5ac1658bfa6a460ad973977dc59283871b6de43e492f8d476bf340f7f6a92a38dc4ab15bdd3e0ff15959c7c49da65810e60060ccefefd931ce9e5424cb6faa27e2e26b3a23f52b9ca19ae15ba0bfe5e47b5a700402deda7f5337897dc23fee11c62383a3fbd1f28ae2ac4ccedfc926418d0db7d6e228331ac7a8df31193ee68bcccb04aa7fdd48c9ea74ea5a8b0ce94e7a31c3dc596fd10d30380280e61bd2c11625ea9f1ada2e031eb807d57b36a17f3bc748881a56a9877e358388f2d493c61943c79c8879ad74e515c9b38b10f6bf4c0bbe129fa8fcf2c2a82e913ece2d33a33a5c7a581e7571420f14f2105d376aba2aa5c5f5810d7e34e78abe76865540719d2634b384fbb840c05ec3bc2e53af13056141680aba67adbe6e8888b2d88959eb9e9a56f98552bd083230af6aefbd835adf9f50f0daae9814c6702f7d0b1e9cade35a3536d627d92a301177277910045d0ff086ed84e61c42c823fdd8b7ef1691d44645b40ca57a1ccc013da6a24cbd43257bfc0bf696c7a60bb6dd677b3a7c2f378b3a963abbb2715c9b7b57fb7959ae970c1bed93ad07e0507aec8ee94fca097a4d06693972a4bcff368bd4b34e1309ca8c847075af2eb5dba14441321197881ad535f7892935261f2fb94e17394316327b5b6a0c7778d4f8ee2a539ee3b4cd39b53f371614e71d9e053832044590c0cad4019fe55e8489e9aba620490a8eab8ac8b069284185bd7b819fe0183ba8bb7382e19f95f3f607d87f6718d8689d0394d5e88e14e2c8deafb590d4c1fb1bd7608af6e4a2baa2a0c27044f00b5df034b131da8688a250c08", &(0x7f0000021300)=[r0, r0, r1, r0, r1, r1], &(0x7f0000021340)=""/61, &(0x7f0000021380)=[0x0, 0x0, 0x0], 0x1000, 0x6, 0x3d, 0x3}, &(0x7f0000021400), &(0x7f0000021440)) zx_channel_call$fuchsia_cobalt_LoggerLogMemoryUsage(r5, 0x0, r3, &(0x7f0000031540)={&(0x7f0000021480)={{}, 0x2, 0x2, {0x9, 0xffffffffffffffff}, 0x2, {'\x00'}}, &(0x7f00000214c0), &(0x7f0000021500), &(0x7f0000031500), 0x38, 0x0, 0x10000}, &(0x7f0000031580), &(0x7f00000315c0)) zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting(r2, 0x0, r3, &(0x7f00000416c0)={&(0x7f0000031600)={{}, {0x0, 0x100000001, {0xc1, 0xffffffffffffffff}}, {{'*[#,)&,-[)}'}}}, &(0x7f0000031640)={{0x0, r5}}, &(0x7f0000031680), &(0x7f0000041680)={{0x0, 0x0, 0x0, 0x0}}, 0x38, 0x2, 0x10000, 0x4}, &(0x7f0000041700), &(0x7f0000041740)) r8 = zx_deadline_after(0x104d) zx_channel_create(0x0, &(0x7f0000041880)=0x0, &(0x7f00000418c0)) zx_exception_get_thread(r5, &(0x7f0000041900)=0x0) zx_channel_call_etc(r7, 0x7, r8, &(0x7f0000041bc0)={&(0x7f0000041780)="fa2f4069c5f54d2479f84d1d733a52f59f0a68709466e6633a6318f6057fbfc9f048b09bfbb63905dc824745b16247ee570e79af77fde73be0865356841b8997c55e4c9b792e2cd8c5ac578960ab6b2d804cd89eb8f0de2151a1693b6498d61abedbd5db7cae8b09f94c6d942cb31051524961cc82c4940af1ab9ceeba52716eb25b870eafbb41d9a1562e9670df00384aa9554b70f9a166834150f2e37215e413ba1238a181d4f7435843b6bb56fa8861d8688001d39d9e2b189f67e80533118964299763f586828c693cc9712a9c2552dc30e57225212f5a50efe56da99a32824c4c", &(0x7f0000041a80)=[r9, r10, 0x0, r1, r6, r0, r4, 0x0, 0x0], &(0x7f0000041ac0)=""/154, &(0x7f0000041b80)=[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], 0xe3, 0x9, 0x9a, 0x8}, &(0x7f0000041c00), &(0x7f0000041c40)) syz_execute_func(&(0x7f0000000000)="c4e1d9d29e91000000c48171fd844800000020c4a17f7044ba340ef30faed6c46279a75d03c4c2fd9642a72e66430f38f55900420f34c4e1782b42c0c4426592242c") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffe000/0x1000)=nil, 0x1000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 50); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[11] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: *(uint64_t*)0x200100c0 = 0x20000000; *(uint32_t*)0x20000000 = 0; memset((void*)0x20000004, 0, 3); *(uint8_t*)0x20000007 = 1; *(uint64_t*)0x20000008 = 0x4fcfbc1100000000; *(uint32_t*)0x20000010 = -1; *(uint32_t*)0x20000014 = 0; *(uint64_t*)0x20000018 = 4; *(uint64_t*)0x20000020 = -1; *(uint64_t*)0x200100c8 = 0x20000040; *(uint32_t*)0x20000040 = 0; *(uint32_t*)0x20000044 = 0; *(uint64_t*)0x200100d0 = 0x20000080; *(uint64_t*)0x200100d8 = 0x20010080; *(uint32_t*)0x200100e0 = 0x28; *(uint32_t*)0x200100e4 = 2; *(uint32_t*)0x200100e8 = 0x10000; *(uint32_t*)0x200100ec = 4; inject_fault(1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/0, /*args=*/0x200100c0, /*actual_bytes=*/0x20010100, /*actual_handles=*/0x20010140); if (res == ZX_OK) { r[0] = *(uint32_t*)0x20010080; r[1] = *(uint32_t*)0x20010088; r[2] = *(uint32_t*)0x2001008c; } break; case 1: res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/5); if (res == ZX_OK) r[3] = res; break; case 2: *(uint64_t*)0x20020240 = 0x20010180; *(uint32_t*)0x20010180 = 0; memset((void*)0x20010184, 0, 3); *(uint8_t*)0x20010187 = 1; *(uint64_t*)0x20010188 = 0x1b8a5e6400000000; *(uint64_t*)0x20010190 = 3; *(uint64_t*)0x20010198 = -1; *(uint32_t*)0x200101a0 = -1; *(uint64_t*)0x200101a4 = 0x1b3; *(uint64_t*)0x200101ac = 0; *(uint64_t*)0x20020248 = 0x200101c0; *(uint32_t*)0x200101c0 = 0; *(uint64_t*)0x20020250 = 0x20010200; *(uint64_t*)0x20020258 = 0x20020200; *(uint32_t*)0x20020260 = 0x34; *(uint32_t*)0x20020264 = 1; *(uint32_t*)0x20020268 = 0x10000; *(uint32_t*)0x2002026c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20020240, /*actual_bytes=*/0x20020280, /*actual_handles=*/0x200202c0); } } break; case 3: *(uint64_t*)0x200213c0 = 0x20020300; memcpy((void*)0x20020300, "\x6b\x3c\x12\x56\x27\x95\x44\xbb\x32\xd3\x62\x43\xaf\xcb\xfd\xa5\xcd\x1a\x17\x59\xba\x09\xb0\x08\xc9\x7e\x2b\xe4\x9a\xb1\x0a\xdd\xa6\xd8\x8f\x52\x9d\xe7\xb0\x4a\xd9\xb0\xfd\xd9\x6d\x31\x84\x19\x6e\x8e\x69\x75\x31\x2b\xf6\xa2\xc5\x3d\xf1\x45\x51\xfa\x4b\x32\x62\x7d\xd6\x79\xee\xf9\xc5\x9f\x19\x0c\xa4\x03\x68\x14\x37\x2c\xf5\x10\xd0\x29\x17\x53\x5f\x1f\x02\xda\x97\xf6\xd1\x60\x1f\x3e\x89\xe1\x0a\x62\x1b\x4e\x82\xba\x76\xd4\x1a\x2f\x87\x24\x97\x36\xcd\x35\xa2\x43\x2b\xf3\x68\xda\xf4\x3f\x60\x38\x7c\x27\xf9\x17\x76\x14\xc2\xf4\xd4\xfd\x31\xdd\xd5\xe0\x8d\x63\x42\x9d\x66\x3e\xe1\x4a\x19\x32\xbf\x8f\x4d\xf7\x03\x69\xf3\xc2\xa7\x51\x97\x42\x2e\xd0\x02\x2b\xe8\x0f\xd8\x7b\x79\xdb\x2a\x43\x49\x9a\x48\xbd\xcd\x91\x24\x65\x73\x30\x3a\x45\x08\xe1\x7c\xf0\x20\xc6\x4c\x57\x7b\x8b\xb0\x92\x6c\x4b\xde\x15\x60\xa7\x74\x46\x49\x7e\x5b\xaf\xec\x84\x29\xa3\x11\x71\x93\x84\xf6\x37\xc4\xa0\x08\xc3\xdd\xd6\x26\x10\xdb\xb1\xd4\xc2\xdd\x8f\x1b\xd7\x3e\x7f\x36\x57\xfc\xf2\x4d\xbb\x89\x6a\x14\x5b\x28\xf3\x40\x98\xf9\xd4\x01\x99\xc5\xb7\x20\x03\xc4\xe0\x8e\xab\x96\xae\xc0\x66\xbf\x2d\x97\xc2\x66\x1f\x4c\xd9\x1c\x59\xcd\x4f\x9e\x4f\x56\x17\xcf\xd6\xad\xa6\xe0\x49\x53\xcc\x4c\x7b\xe1\xc3\xf1\x0d\xe3\x1e\x15\x5d\xd1\x74\xe9\x9f\x41\x36\xca\xe0\x8e\x30\x8b\x3c\x22\xb5\xd1\xdd\x66\xb3\x79\x70\x34\x29\xb4\xd5\xdf\xa6\x0e\xc7\xd1\xaa\x50\x04\x3c\x92\xc1\xa9\x49\xb3\xd9\x40\xf6\x04\xd1\xf4\x4e\xbd\xd3\xc3\xe4\xab\x64\x7c\x7e\x66\xf1\x21\x1e\xec\x27\x12\xe0\xe4\xb7\x0c\xb1\xa2\xc1\xc6\xc3\xb4\xe2\x9a\x10\x42\x83\x4a\xcc\x26\xe9\x9b\x38\xf6\x07\x5b\xbe\xa1\x08\xbf\x12\x4c\x3b\x1c\xc4\x27\x52\x27\xbd\x01\x67\x11\x0d\x69\x97\x2d\x46\xb2\xdb\xd6\xb1\x83\x14\xd2\xea\x66\x4a\xc2\xf4\xe4\x49\x0a\xb3\x22\x3e\xb0\x81\x78\xf9\x2e\x0c\x17\xbf\x86\x18\x94\x99\x7c\xd0\x92\xfe\x07\xc0\x6c\x5e\x0d\xb4\x44\x08\x5a\x13\x8c\x63\x8d\x6e\xb7\x88\x9a\x19\x96\x34\x0e\xa4\x60\x99\x1f\x75\xcd\x1a\xba\x0b\xca\xe8\xf9\x77\x95\x87\xf6\xdf\x76\x1f\x75\x37\x31\x99\x14\x6d\xab\xa4\x84\x8a\xc8\xa2\xa9\xb0\x99\xae\x5a\x54\xed\x61\x7e\xcb\x56\x32\x66\x27\x01\x6e\xa3\xd6\xd0\x77\xf9\x04\x74\xdb\xf0\x37\x68\x9b\xd7\x72\x4a\x1c\xef\x36\x26\xe6\xe1\x96\x74\x8c\x05\x0f\x91\xc6\x62\xfd\xa4\x95\xb6\x7e\x5a\xa3\xb0\x16\xdc\x3b\xcc\xb2\xd7\xa9\x73\x3e\xca\x7c\x7b\xdd\x88\x47\x54\x0d\x27\x3b\x9c\x8c\x29\x33\x5e\xbd\xd7\x71\x5e\xe4\xf5\x7d\xfe\x5c\x6a\x0f\x3d\x58\x43\x98\xc0\xea\x55\x37\x5b\xd2\xc3\x1b\x6c\x74\xe9\xf4\xee\xb8\x59\xc8\x97\x70\x63\x12\x5c\xdf\x72\x53\x2d\xe6\x5c\x0a\x00\xd5\x3b\xc0\x03\xc8\xb1\x01\x83\x8e\xe1\x51\x31\x96\x95\xc0\xac\x2a\xce\xf5\xf1\x91\x0b\xc9\x52\xbe\xbc\x7f\x68\x9f\x52\x06\x7f\x81\xc1\x8c\x5d\xfa\xc9\x00\x57\xcd\xbd\x0f\x75\xe9\x28\x16\x3a\xeb\x09\xef\x01\x59\xb6\x6d\xa4\x21\x08\x34\xca\x8e\xe3\xe2\x85\x27\x0b\x51\xf5\xe2\x56\x86\x7c\xe6\x22\x92\x3f\xd3\xc4\x0e\x61\x5e\x13\x42\x41\x8a\x19\x6f\xcb\x8e\x2b\x56\x48\x67\x22\xf7\xb5\xca\x52\x4c\x75\xdb\xdb\x9b\xe6\x31\x4b\x7a\xd5\x90\xb5\xcf\x8f\x80\xd7\x92\x7d\xda\x79\xce\xb1\x36\x9d\x78\x0f\x33\x38\xc1\xef\xb8\x3c\xa7\xbd\xda\x05\xf8\xca\x94\x45\xb5\x00\xc0\x50\x63\x59\xa4\xba\xa2\xa8\xee\x7e\x8b\x4a\xfb\x48\xdb\xdc\x2a\x56\x19\x4a\x8d\xa4\xd1\xac\x42\x52\x45\xb8\x3e\x1e\x8e\x44\x8a\x29\xda\x4e\x20\x71\xae\xa3\xb8\xef\x3a\x3c\xb5\x82\x7e\x61\x6d\x47\x07\xf8\x51\xee\xa6\x26\x09\x72\xea\xde\x34\xda\x0a\x8f\x34\x40\x7f\x4d\x3e\x45\x5b\xa0\xaa\x02\x6a\x85\x3e\xbb\x5e\x6d\x64\xe9\xd8\x10\x5e\x69\xb8\x4e\x36\xfb\x57\xa8\xb6\xe0\xe7\xcb\xb9\xe5\xd5\x24\x98\x80\x36\xd9\x58\xe3\x2a\x38\xf5\x97\x7b\x3c\x70\x38\xc9\x83\x99\x4f\x08\x88\xfe\x30\x91\xaa\x1f\x45\x91\x9f\x06\x02\xb5\xd7\x50\x73\x8b\x17\x1b\x97\x87\xaf\x29\x6f\x2b\xa5\xfe\xe3\x11\xa1\x6f\x1c\xdc\xd8\x10\xa6\x68\x9a\xc7\xa7\x5b\xc1\x9e\x69\x33\x95\xb0\x0c\xfd\xaf\x13\xcc\xa6\x67\x0a\x47\x2d\x44\x9e\x9e\xfe\xf6\xe0\xf9\xd1\xc1\xab\xaa\xba\xaa\x37\xe2\xb2\x7d\x7d\x67\x23\xd9\x8a\xf8\x00\xa0\xb2\xb5\x19\x6b\x28\x4a\x9e\x11\xa5\xc5\xe6\x2c\x4d\x86\x25\x22\x25\x42\x25\x21\x6d\x4f\xf2\x1a\xfd\x49\xbd\x07\xf7\x4e\x9d\x18\x9b\xc5\x76\xd3\xdd\x39\xa7\x39\x77\x98\x75\xe2\xdc\xbc\xf3\x56\xa5\x2c\xa0\x8c\xb2\x9e\xae\x85\x79\xca\x66\x08\xa1\x94\x13\x59\x41\xee\xd7\xe3\x30\xde\x08\xa9\xe5\x09\x5b\x17\x7c\xe2\x6b\x23\x21\xe7\xac\x98\x62\xba\xce\xf3\x71\xc4\xd2\xe9\xdc\x8b\xab\x91\x18\xa1\x5f\xf9\xfc\x46\x79\xa1\xd0\xee\xb6\x48\x06\xa8\x0c\xc7\x39\xed\xfd\xdf\x9d\x4f\xa2\xf4\x2f\x87\x02\x12\xc2\x3a\xe8\x1e\xbc\x91\x68\xc9\x55\x53\x50\x41\xc1\xce\x54\xed\xf8\xe3\xca\xe6\x68\x4d\xab\x1b\x1e\xed\x16\xb2\x5b\xc6\x67\xa3\x66\x91\xd0\xe0\x50\xa4\x9f\x2d\x78\x2e\xd9\xec\x3f\x94\xd5\x0c\x8d\x33\x58\xa8\x23\x75\xd3\x60\x5f\xdb\x79\x12\xb1\xfc\x3e\xd9\x15\x5f\xb1\x05\x2c\x93\xe6\x10\x05\xc2\xf6\xa8\x7c\x42\xcf\x68\xaf\xf9\xe6\xc9\xe1\x98\x13\x65\x37\x70\xc4\x39\xcc\x39\x7f\x9e\xcb\xa2\x7a\x99\xb0\x82\x05\x4d\x8f\x44\xa5\xb8\x2b\xae\xa6\x8b\xd8\x49\xcd\xe7\x04\x4a\x27\x79\x2a\x26\xb3\xa1\x2d\x93\x8c\xb6\x50\xa8\x91\x41\x24\xbe\x06\x9a\x1d\x8a\x0f\x98\xd9\x87\x68\xf9\x14\x4a\xfc\xc8\x51\xb3\x38\xa8\x4d\x79\x7c\x35\xa7\x65\x71\x11\xfa\x42\x78\xb6\x2e\xee\x95\xe3\xdd\xed\xb8\x91\x6d\x03\xc9\x3e\xc8\x84\xac\x97\xe2\x9b\x1d\x44\x90\xec\xae\x90\x62\x8e\xd2\x61\xeb\xcb\xbd\x4d\x0c\x12\xd1\xc2\x95\xe6\x68\x3d\x68\x5c\x50\x8d\x14\xf2\x89\xf5\xb0\xc8\x6b\xbd\x05\xc3\x1e\xdb\x6e\xf4\x6a\xba\x2a\xbe\x24\xf5\x3c\x90\xb3\x3a\xc3\xb8\x03\x36\x16\x68\x7a\x9d\x3b\x29\x00\x87\x6c\xb4\x87\x91\x45\x77\x1c\x09\x57\xa0\x7d\x37\x1f\x98\x26\xe6\x41\x08\x9e\x34\x7c\x15\x5f\xd6\x2c\xf1\x76\xbb\x4f\x6a\xf7\xc2\x23\xb4\x5c\xfd\x0e\x0a\x54\x10\x92\x25\x27\xf9\xa8\x9a\x8b\xb8\x64\xf4\x97\xa7\x63\xfa\xc9\x41\x09\x74\x10\xf4\x48\x37\x3d\x12\x32\x95\x5c\xdd\x4c\x06\x73\x64\x15\x1a\xe3\xf5\x7e\x3b\xd6\x11\x97\x5e\xb1\x89\xe3\xde\x3d\xe6\x59\xb8\xf5\x8f\xc7\xbc\x86\xbb\x77\x17\x71\x1a\xea\x0f\x51\x2a\xe8\xfb\x8f\x0d\xad\x0b\x9a\x91\xcb\x4b\x1d\x51\x20\x95\xde\x29\x23\xa5\x4a\xdd\x08\x83\xf1\xb1\x94\x08\x2a\xbb\x2d\x77\x10\x5e\x9d\x00\xd2\x3e\x0c\x0e\x22\x26\xcb\x2f\x83\x1d\x10\xa6\x62\x23\xd9\xf7\x17\x26\x05\x58\x31\x8f\x72\xb6\x69\x26\xe0\xae\x2a\x16\x9b\x8f\x5f\xb8\x6d\x9f\x61\x17\x60\xd9\x62\x62\x18\x79\x1f\x7a\x18\xb8\x07\xe1\x2d\xd6\x1b\x89\x5d\x96\x88\x5c\x8a\x39\xae\x56\xfa\xa0\x98\x7a\x4b\xc6\x34\xbf\x63\x89\x02\x28\x8c\xbe\x30\x4d\x2e\x60\x85\xb3\x5b\xbd\x8c\x69\xf7\xc7\xbc\x08\xa5\x47\x64\xe5\xa5\x8c\x36\xda\x85\x14\x92\x3c\xab\xca\x33\x94\x08\xa4\xd4\xc4\xa0\x55\x20\xb8\x41\x50\xe1\x49\x38\x61\xb1\x20\x8a\xb6\xd2\x00\x7f\xd4\x70\x71\xec\xd8\x41\x9c\x4d\xe3\x87\x64\xca\xec\xb0\x93\xa2\xcc\x82\x59\xf4\x13\xef\xcb\x13\xe1\x94\x51\xd2\x2b\x9b\xd8\xa1\x92\xf9\x18\x4f\x62\xc4\x38\xb1\xfa\x98\x8c\xdc\x16\xb4\x3a\x19\xed\x3c\xa3\xdc\x13\xbd\xad\xa0\x11\x8c\xf9\x61\x32\xee\x3a\x06\xdb\x5e\xec\x80\xf4\xc9\x56\xb3\x92\x8f\x59\x23\xc5\xa7\x43\x52\xcc\x62\xea\x9e\x8a\x03\x10\xff\x95\x3d\x4f\xd8\x86\xd2\x6d\x6e\x5c\xcb\xb8\xc9\xaf\xda\x42\x4c\xe0\xe0\xc6\x6e\x3b\x51\x12\xf9\x3d\xe9\x88\xf1\x78\xf1\x03\xde\x77\x66\x3c\x3f\x37\x48\x3a\xef\x8a\x49\xb0\x6e\xd8\x64\x42\x55\x33\x36\xa2\xea\x07\x63\x50\xf3\x73\x0d\x60\x71\x64\xb7\x45\x9b\x9e\x90\xe3\xf9\x8a\xb8\x13\x20\x18\xd0\x2c\x86\xb6\x5d\x5e\x23\x58\xc6\x6e\xe8\xd6\x57\xa6\x58\x6a\xf7\x0e\xb2\x53\x69\x42\xb0\x73\x3f\x99\xd3\xdc\xb2\xeb\xb4\x98\x57\xd3\x84\xa8\x70\xcb\x0b\x62\xe3\x18\xa1\x30\xf1\xd9\x05\xa1\x2c\x71\xc3\x19\xad\x38\x0a\x8b\x02\x2d\x4e\x3f\x5f\x5e\xe1\xbb\x17\xd5\x5b\xec\xff\xb1\x28\xfd\x61\xd9\x93\xb5\xe0\x3d\x6d\x0d\x86\x4b\x24\x81\xdd\xe4\xf0\xe4\x72\x80\x0e\x84\xd9\x7b\x2a\x12\x66\x1b\xfb\xb9\x07\x0f\x37\xcd\x45\x8f\x0d\x43\x47\x40\x03\x49\x12\x39\xf6\x98\x70\x24\x38\x6a\x28\x18\x51\x79\x7d\x13\x22\x75\x2e\x6e\x24\xb1\x60\xfc\xdd\xe4\xa4\x29\x38\x3a\x69\x04\x35\xf1\x20\x0d\x0a\xd9\x58\x74\x01\x1d\xb8\x9d\x4f\xfa\xf2\x23\x2e\x84\xa7\x67\x62\x00\x09\xfa\x3e\x53\x4c\x50\xb2\x65\x68\x05\xa3\x80\x79\x9a\x16\x81\x7b\x35\x0a\x3b\x23\xd4\xd0\x3f\xcf\xff\xe4\xcf\x04\x82\x83\xc4\x71\x44\x18\x9d\xc9\xb9\x65\x37\x5c\xff\x5e\xe4\x17\x1a\x23\xc1\x72\xfe\xf7\xa8\xdd\xef\xd1\xc2\x4b\xe3\x38\x20\x36\x91\x22\x7c\x30\x56\xf7\x76\x1e\xca\x36\x08\x78\x51\xae\xff\x7f\x91\xe8\xac\xeb\x96\xd7\xb2\x10\x82\xa9\x5d\x6b\x79\x6a\xd7\x68\x8b\x9c\x48\x75\x4f\xa3\x4d\x28\x73\xc1\x37\x70\x12\xcc\x16\xa7\x98\xe8\x0c\x71\xd5\x75\x95\x72\xb1\x7e\x3a\x01\x3f\xa2\xe8\x78\xa5\x19\x4c\xe5\x35\x8e\xce\xc5\x60\x2f\xb2\x06\xd5\x90\xff\x76\x5f\x57\x75\x59\x04\xd4\x36\x1e\x11\x8f\xb1\x8f\x8f\xda\xd8\xdf\x38\x7f\xe6\x3f\x79\x67\x8e\xa9\x13\xd3\xb1\x63\x39\x55\xf8\xe1\x1c\x2d\x8d\x7c\x71\x67\x91\x23\x41\x88\xbd\xcb\x7b\xcc\xcc\xc6\xf3\xeb\x85\x99\x3e\xbe\x53\x47\x8b\xf9\x2d\xff\xf2\x33\x31\xf3\x94\xf2\x16\x42\x64\xa6\xc0\x29\xd0\xc8\xbb\x9a\x41\xe0\x9c\xc3\x5e\xff\x2a\x58\xd4\xad\x3b\x92\xb4\xd6\x82\xc7\xac\x73\xa7\x28\x89\x2b\xb1\x1b\x57\xc3\x9a\xed\x49\x70\x9c\x20\x0e\x91\x6b\xcb\xa5\x22\x9d\x16\x04\x3e\x34\xb1\xc0\x42\x23\xbe\x93\x78\x4e\x3d\xe8\xb7\x43\x49\x42\x5c\xf0\x73\xd7\x06\x85\x65\xe7\xd9\x14\xf2\x65\x73\x58\x1d\xc9\x19\x91\x9f\xee\xc1\x81\xd3\x71\xcc\x66\x29\xf8\x95\x72\x8f\x85\x26\xac\xef\x9c\xe5\x01\x10\xfd\x92\x57\xfc\x67\x7d\xe7\xfa\x23\xf9\x8f\x35\xba\x06\x86\xfc\x65\xd0\x74\xc4\x12\xa5\xe0\x2a\xd0\x67\x83\x6f\x80\xfc\x24\x43\x7e\x2d\x0d\xec\xff\x85\xb1\x02\x9e\x28\x66\x0b\x34\x48\x51\xa0\xbe\x45\xcd\xc1\x07\x16\xa0\x59\x74\xe5\xe0\x9d\x00\xf9\x94\xa4\xde\x6e\x97\xcf\x71\x48\xc3\x4e\xbe\xb5\x56\x5b\xe0\xec\xcf\x4d\xfa\x7c\x8b\x70\x69\x1d\x0a\x4f\xc4\xad\xf4\x0a\x04\x97\x77\xec\xf5\x60\xda\xaf\xe4\x37\xbb\xb8\xaf\x38\x0a\xd9\x08\x19\xf3\x01\x82\x02\xe7\x38\x51\x9d\x37\x2b\xdb\x17\xf7\x71\xa2\x9d\x8b\xc5\x84\x51\x26\x25\x67\xd3\x8b\xeb\x9f\xc9\x2e\x00\x0c\x18\xdf\x63\x24\xe6\xc4\xda\x79\x47\x54\xc8\x49\xb2\xfd\xed\x1b\x67\xac\x18\xb4\x8a\x8b\x05\x77\x3d\x62\xe2\x4e\xc7\x8a\xd9\xcb\x00\xb9\x95\x9f\xe2\x0c\x0d\x87\x78\xad\x63\x62\x60\xaf\x68\xe1\xf3\x36\xe0\xa9\x67\x8b\x7c\x84\x75\x2a\x62\x43\x55\x25\x73\x80\xfe\x51\xd9\x8e\x1c\x17\xb6\xf0\x26\xff\x82\x06\xe9\xb1\xb4\xc0\x45\x1c\x9e\xe8\xa5\xde\x6a\x38\xa2\xbf\x52\x81\x0f\xa1\x7f\x81\x1a\x4d\xc5\x69\x31\xec\x4d\xe8\xfe\xe4\x7c\x55\x34\x41\xaa\xf1\x68\x3f\x94\xf5\xe6\xfa\xd5\x4e\xaa\xf6\x6e\x6d\x6a\xcb\xd6\x27\xd6\x4e\x05\x45\xef\xb2\x65\x07\x41\xd6\x5b\xfb\x41\xb1\x2d\x84\xb5\xf8\xa9\x2a\xe9\x78\xdb\x26\x12\xae\xda\x68\x23\xb3\xd4\x22\xe5\x64\x29\xe7\xfe\xa6\xa7\x02\x80\x01\xe7\x0c\xda\x4c\x3b\xdc\x74\x17\x50\x85\x8e\x4a\x4f\x44\xcb\x87\xe4\x71\x12\xae\x9a\x03\x38\x56\x94\x02\xc3\x86\xb1\xf2\x32\xba\xc1\x45\x67\x93\x46\x2d\xa3\x38\xb3\x85\x1b\xb3\x1d\x93\xe6\x4d\x61\x47\x3b\xcb\xbf\x40\x0d\x0f\xc9\x9b\xf5\xe0\x6b\x98\x91\x22\x51\x8f\x61\x49\x8d\x82\x65\x84\x6c\x6b\x59\x6b\x73\xd4\x9a\x13\x86\xcf\x28\x40\x6b\x33\xd9\x0e\x9d\x91\x9a\xf9\xbf\x0e\x74\x45\x60\x61\x34\x3c\xe0\x7f\x46\x19\x1f\x05\x0c\x5f\x69\xf4\xc6\x2d\x89\x56\x17\x77\x5e\x1c\xce\x6e\x82\xa9\xb3\x00\xea\x5c\xed\x96\x67\xb7\x84\xe5\x9b\x68\x7c\x8f\x48\x70\x77\xc2\x45\x8d\x6d\xb7\x26\xcb\xf0\x09\xc3\x3c\x92\x57\x6f\x35\xa1\x49\xa7\xaa\x11\xf2\x9c\xca\xd5\x79\x67\xfc\x3e\xc9\xcd\xa6\x5a\xe3\x0b\xa1\x75\xbf\x3e\x40\x5a\x30\x3c\xae\xed\x44\x0e\xd2\x1a\x99\x73\x5c\x4f\xe5\x24\xf8\x42\x39\x71\x47\x3d\xb4\x8f\xa5\x05\xf4\x4a\x4d\x13\x56\xb8\x2a\x90\xc7\xf5\x81\x73\x2f\xeb\x08\x9c\x0e\x83\x01\xff\xc5\x4d\x32\x07\x57\x14\x47\xc4\xf7\x5d\x96\xb0\xba\x58\x87\xa5\x58\xda\x9a\x2f\xf2\x72\x6f\xa8\x74\x8c\x21\x79\x27\x61\x93\x69\x5b\xf0\x36\x58\x97\x8b\xda\xa7\x4b\x4c\x02\xfb\xf0\x0c\x1a\x5a\x9e\xca\x00\x9e\x7a\x3b\xfd\x5d\x48\x88\x1c\xec\xb7\x43\xe5\xb6\x5b\x0c\x0b\x1e\x02\x4b\x80\x04\x48\x53\x26\x5a\xc0\xee\x2f\xd9\x2d\xde\xbb\xd5\x9c\x4d\x4c\xb3\xa0\x9d\x83\xf9\xdf\xc5\xc2\x74\x11\x1e\xc8\xca\xab\x4c\xbc\x65\x51\x8e\xf6\xa8\xe2\xe0\xf1\x49\x93\xc1\x7a\xf6\x6d\x7d\xd5\xd3\x06\x43\xb2\x39\x1b\x72\x89\x75\xf3\x88\x6b\xb0\xc6\x40\x65\xc8\x7e\xec\x0c\x28\x69\x6a\x07\xd1\xc3\x04\x16\xb7\x90\x1d\xcd\x4f\x94\x13\x9c\x91\x7d\xc9\x86\xff\x15\xf1\x36\x4b\x22\x7c\xf5\x94\xba\x63\xe2\x83\x62\xe5\x21\x17\xa5\x46\x9f\xc1\x5d\xed\xb4\x5c\x7e\x12\x4b\x58\xb0\x14\xe2\xc4\x98\x93\x3e\xc3\x62\xab\x60\xc7\x58\xdb\xc1\x5c\xc7\xb1\x7b\x36\xfd\x92\x65\xf9\xd5\x85\x7f\xdb\xa2\xed\xb3\x6a\x35\x5c\x52\xf5\x3d\x09\xf0\x3e\x47\x4c\xa4\x5a\x06\xf9\x99\x5d\x1f\x10\xb0\xbe\x32\x33\xeb\x83\x1b\x04\x72\x00\xd3\x54\x72\xb2\x13\x7b\xc2\xfb\x77\xb8\x19\xda\xf9\xa8\xe9\xb8\x53\xd9\x52\x93\x19\x93\xf9\x2c\x62\x09\xa3\x58\x7a\xd8\x12\x98\x9d\x85\x7a\xae\x67\xaa\x7e\x87\x27\x5f\xc3\x4b\xe4\xb3\xb7\x8b\x47\x5c\x32\x00\xe3\x5f\x04\x53\xbc\xdd\x00\xd8\xd7\x18\xa5\x28\x6c\xb4\x7d\xee\x49\xd9\x0a\xfe\xd7\xf4\xfe\x42\x49\x6b\xa3\x3c\xf1\x3d\x6f\x17\xc1\x05\xed\xdb\x25\xc8\x76\xd6\xf5\x2a\x21\xcf\x09\x8d\x42\xd9\xbf\xc7\x2f\x05\x35\x28\x1f\x6c\x02\x21\x03\x45\x5d\xcb\x87\xfc\xd5\x05\xd7\x71\x4e\x79\x41\x7c\x9f\xcd\x32\x20\x8e\x38\x8c\x9d\x50\xe5\x61\xf2\x31\xa0\x9c\xc7\x31\x49\xf2\xec\x24\x8b\xd1\xfc\x88\x5f\x3e\x10\x59\x65\x9b\x1a\x4a\xc9\x78\xbb\x5c\x81\xb0\x93\xda\x5b\x9d\xc2\x93\x09\x6b\xa9\xfd\xbe\xc0\x05\x02\x19\x2e\x4f\xae\x10\xaf\xd3\x60\x5c\x2c\x02\x0a\x62\x8a\x05\x5d\x56\x59\xc3\xef\xfb\x76\x44\x68\x34\xa8\xe8\x4e\xdf\x52\x39\xc9\xea\x6c\xb6\xcb\x85\xae\xf6\x4b\x68\xbc\x7e\x2f\x96\x85\x6f\x65\xe9\x76\xba\x1b\xd5\x25\xc1\x96\x5e\xc7\xa2\xd9\x54\xcc\x99\xfb\xa8\xfa\x13\xd3\x29\x22\x7f\x7f\x93\x21\x68\x9c\x63\x1a\x12\xdc\xb0\xac\x99\x48\x7b\xfe\x47\x25\xe9\xb7\xd0\x1e\x84\x81\x02\x49\x43\xcc\x35\xf7\xa0\xe8\x7a\x21\x42\xa9\x22\x9d\x35\x3b\x41\x28\x89\x7a\x9b\x3b\xc4\xa4\xeb\xc8\x2d\xde\x1c\xbf\x76\x16\xdc\x65\x44\xe0\x5d\xb9\x08\x20\x3e\xc5\x68\xb9\xf4\x88\x93\xa0\xfc\x9a\x1a\x77\xcb\x73\x40\xaf\xe9\x77\xb5\x1f\x3a\x4a\x1e\x55\x5a\xb8\x11\xb9\x72\x39\x96\xed\x60\xb7\x01\x84\xc5\x38\xcb\xde\xd3\x27\xfa\xda\x7d\x9a\xc2\x05\xb3\x29\x58\xcf\xce\xeb\x3c\xee\x19\x2d\xa0\x3e\xfd\x31\x47\x6c\x88\xdf\xd0\x58\x12\xdf\x72\xc9\x77\xd1\x7f\x44\xae\x5d\x69\x6f\x33\x61\x85\xd2\xd9\x07\x79\x74\x7d\x6d\x91\x34\x7d\xa9\x6b\x40\xff\xbd\x32\x3f\x16\x02\x2e\xa6\x3a\x74\x40\x77\x89\x3f\x6e\x16\x99\x1d\x65\x84\x9d\x65\xcb\xcd\xc1\x0f\x83\xdb\x70\x81\x09\x35\xcb\xa0\x4e\xde\x08\xf7\x4a\x72\x61\xa2\x86\x13\x0e\x14\x71\x84\xc0\xf1\x28\x27\xd7\x4f\xc6\xc8\xdb\x93\x54\xfe\x3c\xa3\xe0\x44\x0a\x06\xe3\x2b\x15\x66\x23\xb3\x58\x7c\x7b\x23\x87\x29\x54\xfa\xa2\x7e\xb7\x18\x82\xbf\x94\x5f\x03\x5b\x72\x12\xdf\x25\x23\xa7\xe8\xc5\xac\x16\x58\xbf\xa6\xa4\x60\xad\x97\x39\x77\xdc\x59\x28\x38\x71\xb6\xde\x43\xe4\x92\xf8\xd4\x76\xbf\x34\x0f\x7f\x6a\x92\xa3\x8d\xc4\xab\x15\xbd\xd3\xe0\xff\x15\x95\x9c\x7c\x49\xda\x65\x81\x0e\x60\x06\x0c\xce\xfe\xfd\x93\x1c\xe9\xe5\x42\x4c\xb6\xfa\xa2\x7e\x2e\x26\xb3\xa2\x3f\x52\xb9\xca\x19\xae\x15\xba\x0b\xfe\x5e\x47\xb5\xa7\x00\x40\x2d\xed\xa7\xf5\x33\x78\x97\xdc\x23\xfe\xe1\x1c\x62\x38\x3a\x3f\xbd\x1f\x28\xae\x2a\xc4\xcc\xed\xfc\x92\x64\x18\xd0\xdb\x7d\x6e\x22\x83\x31\xac\x7a\x8d\xf3\x11\x93\xee\x68\xbc\xcc\xb0\x4a\xa7\xfd\xd4\x8c\x9e\xa7\x4e\xa5\xa8\xb0\xce\x94\xe7\xa3\x1c\x3d\xc5\x96\xfd\x10\xd3\x03\x80\x28\x0e\x61\xbd\x2c\x11\x62\x5e\xa9\xf1\xad\xa2\xe0\x31\xeb\x80\x7d\x57\xb3\x6a\x17\xf3\xbc\x74\x88\x81\xa5\x6a\x98\x77\xe3\x58\x38\x8f\x2d\x49\x3c\x61\x94\x3c\x79\xc8\x87\x9a\xd7\x4e\x51\x5c\x9b\x38\xb1\x0f\x6b\xf4\xc0\xbb\xe1\x29\xfa\x8f\xcf\x2c\x2a\x82\xe9\x13\xec\xe2\xd3\x3a\x33\xa5\xc7\xa5\x81\xe7\x57\x14\x20\xf1\x4f\x21\x05\xd3\x76\xab\xa2\xaa\x5c\x5f\x58\x10\xd7\xe3\x4e\x78\xab\xe7\x68\x65\x54\x07\x19\xd2\x63\x4b\x38\x4f\xbb\x84\x0c\x05\xec\x3b\xc2\xe5\x3a\xf1\x30\x56\x14\x16\x80\xab\xa6\x7a\xdb\xe6\xe8\x88\x8b\x2d\x88\x95\x9e\xb9\xe9\xa5\x6f\x98\x55\x2b\xd0\x83\x23\x0a\xf6\xae\xfb\xd8\x35\xad\xf9\xf5\x0f\x0d\xaa\xe9\x81\x4c\x67\x02\xf7\xd0\xb1\xe9\xca\xde\x35\xa3\x53\x6d\x62\x7d\x92\xa3\x01\x17\x72\x77\x91\x00\x45\xd0\xff\x08\x6e\xd8\x4e\x61\xc4\x2c\x82\x3f\xdd\x8b\x7e\xf1\x69\x1d\x44\x64\x5b\x40\xca\x57\xa1\xcc\xc0\x13\xda\x6a\x24\xcb\xd4\x32\x57\xbf\xc0\xbf\x69\x6c\x7a\x60\xbb\x6d\xd6\x77\xb3\xa7\xc2\xf3\x78\xb3\xa9\x63\xab\xbb\x27\x15\xc9\xb7\xb5\x7f\xb7\x95\x9a\xe9\x70\xc1\xbe\xd9\x3a\xd0\x7e\x05\x07\xae\xc8\xee\x94\xfc\xa0\x97\xa4\xd0\x66\x93\x97\x2a\x4b\xcf\xf3\x68\xbd\x4b\x34\xe1\x30\x9c\xa8\xc8\x47\x07\x5a\xf2\xeb\x5d\xba\x14\x44\x13\x21\x19\x78\x81\xad\x53\x5f\x78\x92\x93\x52\x61\xf2\xfb\x94\xe1\x73\x94\x31\x63\x27\xb5\xb6\xa0\xc7\x77\x8d\x4f\x8e\xe2\xa5\x39\xee\x3b\x4c\xd3\x9b\x53\xf3\x71\x61\x4e\x71\xd9\xe0\x53\x83\x20\x44\x59\x0c\x0c\xad\x40\x19\xfe\x55\xe8\x48\x9e\x9a\xba\x62\x04\x90\xa8\xea\xb8\xac\x8b\x06\x92\x84\x18\x5b\xd7\xb8\x19\xfe\x01\x83\xba\x8b\xb7\x38\x2e\x19\xf9\x5f\x3f\x60\x7d\x87\xf6\x71\x8d\x86\x89\xd0\x39\x4d\x5e\x88\xe1\x4e\x2c\x8d\xea\xfb\x59\x0d\x4c\x1f\xb1\xbd\x76\x08\xaf\x6e\x4a\x2b\xaa\x2a\x0c\x27\x04\x4f\x00\xb5\xdf\x03\x4b\x13\x1d\xa8\x68\x8a\x25\x0c\x08", 4096); *(uint64_t*)0x200213c8 = 0x20021300; *(uint32_t*)0x20021300 = r[0]; *(uint32_t*)0x20021304 = r[0]; *(uint32_t*)0x20021308 = r[1]; *(uint32_t*)0x2002130c = r[0]; *(uint32_t*)0x20021310 = r[1]; *(uint32_t*)0x20021314 = r[1]; *(uint64_t*)0x200213d0 = 0x20021340; *(uint64_t*)0x200213d8 = 0x20021380; *(uint32_t*)0x200213e0 = 0x1000; *(uint32_t*)0x200213e4 = 6; *(uint32_t*)0x200213e8 = 0x3d; *(uint32_t*)0x200213ec = 3; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200213c0, /*actual_bytes=*/0x20021400, /*actual_handles=*/0x20021440); if (res == ZX_OK) { r[4] = *(uint32_t*)0x20021380; r[5] = *(uint32_t*)0x20021384; r[6] = *(uint32_t*)0x20021388; } break; case 4: *(uint64_t*)0x20031540 = 0x20021480; *(uint32_t*)0x20021480 = 0; memset((void*)0x20021484, 0, 3); *(uint8_t*)0x20021487 = 1; *(uint64_t*)0x20021488 = 0x66c69d1b00000000; *(uint32_t*)0x20021490 = 2; *(uint32_t*)0x20021494 = 2; *(uint64_t*)0x20021498 = 9; *(uint64_t*)0x200214a0 = -1; *(uint64_t*)0x200214a8 = 2; memset((void*)0x200214b0, 0, 1); *(uint64_t*)0x20031548 = 0x200214c0; *(uint64_t*)0x20031550 = 0x20021500; *(uint64_t*)0x20031558 = 0x20031500; *(uint32_t*)0x20031560 = 0x38; *(uint32_t*)0x20031564 = 0; *(uint32_t*)0x20031568 = 0x10000; *(uint32_t*)0x2003156c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[5], /*options=*/0, /*deadline=*/r[3], /*args=*/0x20031540, /*actual_bytes=*/0x20031580, /*actual_handles=*/0x200315c0); break; case 5: *(uint64_t*)0x200416c0 = 0x20031600; *(uint32_t*)0x20031600 = 0; memset((void*)0x20031604, 0, 3); *(uint8_t*)0x20031607 = 1; *(uint64_t*)0x20031608 = 0x4fcfbc1100000000; *(uint32_t*)0x20031610 = 0; *(uint32_t*)0x20031614 = 1; *(uint64_t*)0x20031618 = 0xc1; *(uint64_t*)0x20031620 = -1; memcpy((void*)0x20031628, "*[#,)&,-[)}", 11); *(uint64_t*)0x200416c8 = 0x20031640; *(uint32_t*)0x20031640 = 0; *(uint32_t*)0x20031644 = r[5]; *(uint64_t*)0x200416d0 = 0x20031680; *(uint64_t*)0x200416d8 = 0x20041680; *(uint32_t*)0x200416e0 = 0x38; *(uint32_t*)0x200416e4 = 2; *(uint32_t*)0x200416e8 = 0x10000; *(uint32_t*)0x200416ec = 4; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[3], /*args=*/0x200416c0, /*actual_bytes=*/0x20041700, /*actual_handles=*/0x20041740); if (res == ZX_OK) r[7] = *(uint32_t*)0x2004168c; break; case 6: res = -1; res = ((intptr_t(*)(intptr_t))CAST(zx_deadline_after))(/*nanoseconds=*/0x104d); if (res == ZX_OK) r[8] = res; break; case 7: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t))CAST(zx_channel_create))(/*options=*/0, /*out0=*/0x20041880, /*out1=*/0x200418c0); if (res == ZX_OK) r[9] = *(uint32_t*)0x20041880; break; case 8: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t))CAST(zx_exception_get_thread))(/*handle=*/r[5], /*out=*/0x20041900); if (res == ZX_OK) r[10] = *(uint32_t*)0x20041900; break; case 9: *(uint64_t*)0x20041bc0 = 0x20041780; memcpy((void*)0x20041780, "\xfa\x2f\x40\x69\xc5\xf5\x4d\x24\x79\xf8\x4d\x1d\x73\x3a\x52\xf5\x9f\x0a\x68\x70\x94\x66\xe6\x63\x3a\x63\x18\xf6\x05\x7f\xbf\xc9\xf0\x48\xb0\x9b\xfb\xb6\x39\x05\xdc\x82\x47\x45\xb1\x62\x47\xee\x57\x0e\x79\xaf\x77\xfd\xe7\x3b\xe0\x86\x53\x56\x84\x1b\x89\x97\xc5\x5e\x4c\x9b\x79\x2e\x2c\xd8\xc5\xac\x57\x89\x60\xab\x6b\x2d\x80\x4c\xd8\x9e\xb8\xf0\xde\x21\x51\xa1\x69\x3b\x64\x98\xd6\x1a\xbe\xdb\xd5\xdb\x7c\xae\x8b\x09\xf9\x4c\x6d\x94\x2c\xb3\x10\x51\x52\x49\x61\xcc\x82\xc4\x94\x0a\xf1\xab\x9c\xee\xba\x52\x71\x6e\xb2\x5b\x87\x0e\xaf\xbb\x41\xd9\xa1\x56\x2e\x96\x70\xdf\x00\x38\x4a\xa9\x55\x4b\x70\xf9\xa1\x66\x83\x41\x50\xf2\xe3\x72\x15\xe4\x13\xba\x12\x38\xa1\x81\xd4\xf7\x43\x58\x43\xb6\xbb\x56\xfa\x88\x61\xd8\x68\x80\x01\xd3\x9d\x9e\x2b\x18\x9f\x67\xe8\x05\x33\x11\x89\x64\x29\x97\x63\xf5\x86\x82\x8c\x69\x3c\xc9\x71\x2a\x9c\x25\x52\xdc\x30\xe5\x72\x25\x21\x2f\x5a\x50\xef\xe5\x6d\xa9\x9a\x32\x82\x4c\x4c", 227); *(uint64_t*)0x20041bc8 = 0x20041a80; *(uint32_t*)0x20041a80 = r[9]; *(uint32_t*)0x20041a84 = r[10]; *(uint32_t*)0x20041a88 = 0; *(uint32_t*)0x20041a8c = r[1]; *(uint32_t*)0x20041a90 = r[6]; *(uint32_t*)0x20041a94 = r[0]; *(uint32_t*)0x20041a98 = r[4]; *(uint32_t*)0x20041a9c = 0; *(uint32_t*)0x20041aa0 = 0; *(uint64_t*)0x20041bd0 = 0x20041ac0; *(uint64_t*)0x20041bd8 = 0x20041b80; *(uint32_t*)0x20041be0 = 0xe3; *(uint32_t*)0x20041be4 = 9; *(uint32_t*)0x20041be8 = 0x9a; *(uint32_t*)0x20041bec = 8; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); break; case 10: memcpy((void*)0x20000000, "\xc4\xe1\xd9\xd2\x9e\x91\x00\x00\x00\xc4\x81\x71\xfd\x84\x48\x00\x00\x00\x20\xc4\xa1\x7f\x70\x44\xba\x34\x0e\xf3\x0f\xae\xd6\xc4\x62\x79\xa7\x5d\x03\xc4\xc2\xfd\x96\x42\xa7\x2e\x66\x43\x0f\x38\xf5\x59\x00\x42\x0f\x34\xc4\xe1\x78\x2b\x42\xc0\xc4\x42\x65\x92\x24\x2c", 66); syz_execute_func(/*text=*/0x20000000); break; case 11: syz_future_time(/*when=*/1); break; case 12: syz_job_default(); break; case 13: syz_mmap(/*addr=*/0x20ffe000, /*len=*/0x1000); break; case 14: syz_process_self(); break; case 15: syz_thread_self(); break; case 16: syz_vmar_root_self(); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :433:75: error: use of undeclared identifier 'zx_channel_call_etc' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call_etc))(/*handle=*/r[7], /*options=*/7, /*deadline=*/r[8], /*args=*/0x20041bc0, /*actual_bytes=*/0x20041c00, /*actual_handles=*/0x20041c40); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor3979624225 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/5 (0.50s) csource_test.go:148: --- FAIL: TestGenerate/fuchsia/amd64/2 (0.51s) csource_test.go:148: --- FAIL: TestGenerate/fuchsia/amd64/3 (0.56s) csource_test.go:148: --- FAIL: TestGenerate/fuchsia/amd64/1 (0.55s) csource_test.go:148: FAIL FAIL github.com/google/syzkaller/pkg/csource 34.176s ok github.com/google/syzkaller/pkg/db (cached) ok github.com/google/syzkaller/pkg/email (cached) ok github.com/google/syzkaller/pkg/email/lore (cached) ok github.com/google/syzkaller/pkg/host 26.418s ok github.com/google/syzkaller/pkg/html (cached) ok github.com/google/syzkaller/pkg/ifuzz (cached) ok github.com/google/syzkaller/pkg/image 4.759s ok github.com/google/syzkaller/pkg/instance 6.412s ok github.com/google/syzkaller/pkg/ipc 28.471s ok github.com/google/syzkaller/pkg/kconfig (cached) ok github.com/google/syzkaller/pkg/kd (cached) ok github.com/google/syzkaller/pkg/log (cached) ok github.com/google/syzkaller/pkg/mgrconfig 8.140s ok github.com/google/syzkaller/pkg/osutil (cached) ok github.com/google/syzkaller/pkg/report 18.763s ok github.com/google/syzkaller/pkg/repro 8.711s ok github.com/google/syzkaller/pkg/runtest 100.655s ok github.com/google/syzkaller/pkg/serializer (cached) ok github.com/google/syzkaller/pkg/stats (cached) ok github.com/google/syzkaller/pkg/subsystem (cached) ok github.com/google/syzkaller/pkg/subsystem/linux (cached) ok github.com/google/syzkaller/pkg/subsystem/lists (cached) ok github.com/google/syzkaller/pkg/symbolizer (cached) ok github.com/google/syzkaller/pkg/tool (cached) ok github.com/google/syzkaller/pkg/vcs (cached) ? github.com/google/syzkaller/sys [no test files] ? github.com/google/syzkaller/sys/akaros [no test files] ? github.com/google/syzkaller/sys/akaros/gen [no test files] ? github.com/google/syzkaller/sys/darwin [no test files] ? github.com/google/syzkaller/sys/darwin/gen [no test files] ? github.com/google/syzkaller/sys/freebsd [no test files] ? github.com/google/syzkaller/sys/freebsd/gen [no test files] ? github.com/google/syzkaller/sys/fuchsia [no test files] ? github.com/google/syzkaller/sys/fuchsia/fidlgen [no test files] ? github.com/google/syzkaller/sys/fuchsia/gen [no test files] ? github.com/google/syzkaller/sys/fuchsia/layout [no test files] ok github.com/google/syzkaller/prog 19.094s ok github.com/google/syzkaller/prog/test (cached) ? github.com/google/syzkaller/sys/linux/gen [no test files] ? github.com/google/syzkaller/sys/netbsd/gen [no test files] ? github.com/google/syzkaller/sys/openbsd/gen [no test files] ? github.com/google/syzkaller/sys/syz-extract [no test files] ? github.com/google/syzkaller/sys/syz-sysgen [no test files] ? github.com/google/syzkaller/sys/targets [no test files] ? github.com/google/syzkaller/sys/test [no test files] ? github.com/google/syzkaller/sys/test/gen [no test files] ? github.com/google/syzkaller/sys/trusty [no test files] ? github.com/google/syzkaller/sys/trusty/gen [no test files] ? github.com/google/syzkaller/sys/windows [no test files] ? github.com/google/syzkaller/sys/windows/gen [no test files] ? github.com/google/syzkaller/syz-runner [no test files] ? github.com/google/syzkaller/tools/syz-benchcmp [no test files] ? github.com/google/syzkaller/tools/syz-bisect [no test files] ? github.com/google/syzkaller/tools/syz-build [no test files] ? github.com/google/syzkaller/tools/syz-check [no test files] ? github.com/google/syzkaller/tools/syz-cover [no test files] ? github.com/google/syzkaller/tools/syz-crush [no test files] ? github.com/google/syzkaller/tools/syz-db [no test files] ? github.com/google/syzkaller/tools/syz-execprog [no test files] ? github.com/google/syzkaller/tools/syz-expand [no test files] ? github.com/google/syzkaller/tools/syz-fillreports [no test files] ? github.com/google/syzkaller/tools/syz-fmt [no test files] ? github.com/google/syzkaller/tools/syz-hubtool [no test files] ? github.com/google/syzkaller/tools/syz-imagegen [no test files] ? github.com/google/syzkaller/tools/syz-kcidb [no test files] ? github.com/google/syzkaller/tools/syz-lore [no test files] ? github.com/google/syzkaller/tools/syz-make [no test files] ? github.com/google/syzkaller/tools/syz-minconfig [no test files] ? github.com/google/syzkaller/tools/syz-mutate [no test files] ? github.com/google/syzkaller/tools/syz-prog2c [no test files] ? github.com/google/syzkaller/tools/syz-query-subsystems [no test files] ? github.com/google/syzkaller/tools/syz-reporter [no test files] ? github.com/google/syzkaller/tools/syz-repro [no test files] ? github.com/google/syzkaller/tools/syz-reprolist [no test files] ? github.com/google/syzkaller/tools/syz-runtest [no test files] ? github.com/google/syzkaller/tools/syz-showprio [no test files] ? github.com/google/syzkaller/tools/syz-stress [no test files] ? github.com/google/syzkaller/tools/syz-symbolize [no test files] ? github.com/google/syzkaller/tools/syz-testbed [no test files] ? github.com/google/syzkaller/tools/syz-testbuild [no test files] ok github.com/google/syzkaller/sys/linux 0.285s ok github.com/google/syzkaller/sys/netbsd (cached) ok github.com/google/syzkaller/sys/openbsd (cached) ? github.com/google/syzkaller/tools/syz-trace2syz [no test files] ? github.com/google/syzkaller/tools/syz-tty [no test files] ? github.com/google/syzkaller/tools/syz-upgrade [no test files] ? github.com/google/syzkaller/tools/syz-usbgen [no test files] ok github.com/google/syzkaller/syz-ci 3.578s ok github.com/google/syzkaller/syz-fuzzer 0.679s ok github.com/google/syzkaller/syz-hub 0.047s ok github.com/google/syzkaller/syz-hub/state 0.082s ok github.com/google/syzkaller/syz-manager 4.345s ok github.com/google/syzkaller/syz-verifier 3.532s ok github.com/google/syzkaller/tools/syz-kconf (cached) ok github.com/google/syzkaller/tools/syz-linter (cached) ok github.com/google/syzkaller/tools/syz-trace2syz/parser 0.017s ok github.com/google/syzkaller/tools/syz-trace2syz/proggen 0.421s ? github.com/google/syzkaller/vm/adb [no test files] ? github.com/google/syzkaller/vm/bhyve [no test files] ? github.com/google/syzkaller/vm/cuttlefish [no test files] ? github.com/google/syzkaller/vm/gce [no test files] ? github.com/google/syzkaller/vm/gvisor [no test files] ? github.com/google/syzkaller/vm/kvm [no test files] ? github.com/google/syzkaller/vm/odroid [no test files] ? github.com/google/syzkaller/vm/proxyapp/mocks [no test files] ? github.com/google/syzkaller/vm/proxyapp/proxyrpc [no test files] ? github.com/google/syzkaller/vm/qemu [no test files] ? github.com/google/syzkaller/vm/starnix [no test files] ? github.com/google/syzkaller/vm/vmm [no test files] ? github.com/google/syzkaller/vm/vmware [no test files] ok github.com/google/syzkaller/vm 11.143s ok github.com/google/syzkaller/vm/isolated 3.138s ok github.com/google/syzkaller/vm/proxyapp 5.546s ok github.com/google/syzkaller/vm/vmimpl 3.131s FAIL