242c243c244c245c246c247c248c249c24ac24bc24cc24dc24ec24fc250c251c252c253c254c255c256c257c258c259c25ac25bc25cc25dc25ec25fc260c261c262c263c264c265c266c267c268c269c26ac26bc26cc26dc26ec26fc270c271c272c273c274c275c276c277c278c279c27ac27bc27cc27dc27ec27fc280c281c282c283c284c285c286c287c288c289c28ac28bc28cc28dc28ec28fc290c291c292c293c294c295c296c297c298c299c29ac29bc29cc29dc29ec29fc2a0c2a1c2a2c2a3c2a4c2a5c2a6c2a7c2a8c2a9c2aac2abc2acc2adc2aec2afc2b0c2b1c2b2c2b3c2b4c2b5c2b6c2b7c2b8c2b9c2bac2bbc2bcc2bdc2bec2bfc2c0c2c1c2c2c2c3c2c4c2c5c2c6c2c7c2c8c2c9c2cac2cbc2ccc2cdc2cec2cfc2d0c2d1c2d2c2d3c2d4c2d5c2d6c2d7c2d8c2d9c2dac2dbc2dcc2ddc2dec2dfc2e0c2e1c2e2c2e3c2e4c2e5c2e6c2e7c2e8c2e9c2eac2ebc2ecc2edc2eec2efc2f0c2f1c2f2c2f3c2f4c2f5c2f6c2f7c2f8c2f9c2fac2fbc2fcc2fdc2fec2ffc200c301c302c303c304c305c306c307c308c309c30ac30bc30cc30dc30ec30fc310c311c312c313c314c315c316c317c318c319c31ac31bc31cc31dc31ec31fc320c321c322c323c324c325c326c327c328c329c32ac32bc32cc32dc32ec32fc330c331c332c333c334c335c336c337c338c339c33ac33bc33cc33dc33ec33fc340c341c342c343c344c345c346c347c348c349c34ac34bc34cc34dc34ec34fc350c351c352c353c354c355c356c357c358c359c35ac35bc35cc35dc35ec35fc360c361c362c363c364c365c366c367c368c369c36ac36bc36cc36dc36ec36fc370c371c372c373c374c375c376c377c378c379c37ac37bc37cc37dc37ec37fc380c381c382c383c384c385c386c387c388c389c38ac38bc38cc38dc38ec38fc390c391c392c393c394c395c396c397c398c399c39ac39bc39cc39dc39ec39fc3a0c3a1c3a2c3a3c3a4c3a5c3a6c3a7c3a8c3a9c3aac3abc3acc3adc3aec3afc3b0c3b1c3b2c3b3c3b4c3b5c3b6c3b7c3b8c3b9c3bac3bbc3bcc3bdc3bec3bfc3c0c3c1c3c2c3c3c3c4c3c5c3c6c3c7c3c8c3c9c3cac3cbc3ccc3cdc3cec3cfc3d0c3d1c3d2c3d3c3d4c3d5c3d6c3d7c3d8c3d9c3dac3dbc3dcc3ddc3dec3dfc3e0c3e1c3e2c3e3c3e4c3e5c3e6c3e7c3e8c3e9c3eac3ebc3ecc3edc3eec3efc3f0c3f1c3f2c3f3c3f4c3f5c3f6c3f7c3f8c3f9c3fac3fbc3fcc3fdc3fec3ffc300c401c402c403c404c405c406c407c408c409c40ac40bc40cc40dc40ec40fc410c411c412c413c414c415c416c417c418c419c41ac41bc41cc41dc41ec41fc420c421c422c423c424c425c426c427c428c429c42ac42bc42cc42dc42ec42fc430c431c432c433c434c435c436c437c438c439c43ac43bc43cc43dc43ec43fc440c441c442c443c444c445c446c447c448c449c44ac44bc44cc44dc44ec44fc450c451c452c453c454c455c456c457c458c459c45ac45bc45cc45dc45ec45fc460c461c462c463c464c465c466c467c468c469c46ac46bc46cc46dc46ec46fc470c471c472c473c474c475c476c477c478c479c47ac47bc47cc47dc47ec47fc480c481c482c483c484c485c486c487c488c489c48ac48bc48cc48dc48ec48fc490c491c492c493c494c495c496c497c498c499c49ac49bc49cc49dc49ec49fc4a0c4a1c4a2c4a3c4a4c4a5c4a6c4a7c4a8c4a9c4aac4abc4acc4adc4aec4afc4b0c4b1c4b2c4b3c4b4c4b5c4b6c4b7c4b8c4b9c4bac4bbc4bcc4bdc4bec4bfc4c0c4c1c4c2c4c3c4c4c4c5c4c6c4c7c4c8c4c9c4cac4cbc4ccc4cdc4cec4cfc4d0c4d1c4d2c4d3c4d4c4d5c4d6c4d7c4d8c4d9c4dac4dbc4dcc4ddc4dec4dfc4e0c4e1c4e2c4e3c4e4c4e5c4e6c4e7c4e8c4e9c4eac4ebc4ecc4edc4eec4efc4f0c4f1c4f2c4f3c4f4c4f5c4f6c4f7c4f8c4f9c4fac4fbc4fcc4fdc4fec4ffc400c501c502c503c504c505c506c507c508c509c50ac50bc50cc50dc50ec50fc510c511c512c513c514c515c516c517c518c519c51ac51bc51cc51dc51ec51fc520c521c522c523c524c525c526c527c528c529c52ac52bc52cc52dc52ec52fc530c531c532c533c534c535c536c537c538c539c53ac53bc53cc53dc53ec53fc540c541c542c543c544c545c546c547c548c549c54ac54bc54cc54dc54ec54fc550c551c552c553c554c555c556c557c558c559c55ac55bc55cc55dc55ec55fc560c561c562c563c564c565c566c567c568c569c56ac56bc56cc56dc56ec56fc570c571c572c573c574c575c576c577c578c579c57ac57bc57cc57dc57ec57fc580c581c582c583c584c585c586c587c588c589c58ac58bc58cc58dc58ec58fc590c591c592c593c594c595c596c597c598c599c59ac59bc59cc59dc59ec59fc5a0c5a1c5a2c5a3c5a4c5a5c5a6c5a7c5a8c5a9c5aac5abc5acc5adc5aec5afc5b0c5b1c5b2c5b3c5b4c5b5c5b6c5b7c5b8c5b9c5bac5bbc5bcc5bdc5bec5bfc5c0c5c1c5c2c5c3c5c4c5c5c5c6c5c7c5c8c5c9c5cac5cbc5ccc5cdc5cec5cfc5d0c5d1c5d2c5d3c5d4c5d5c5d6c5d7c5d8c5d9c5dac5dbc5dcc5ddc5dec5dfc5e0c5e1c5e2c5e3c5e4c5e5c5e6c5e7c5e8c5e9c5eac5ebc5ecc5edc5eec5efc5f0c5f1c5f2c5f3c5f4c5f5c5f6c5f7c5f8c5f9c5fac5fbc5fcc5fdc5fec5ffc500c601c602c603c604c605c606c607c608c609c60ac60bc60cc60dc60ec60fc610c611c612c613c614c615c616c617c618c619c61ac61bc61cc61dc61ec61fc620c621c622c623c624c625c626c627c628c629c62ac62bc62cc62dc62ec62fc630c631c632c633c634c635c636c637c638c639c63ac63bc63cc63dc63ec63fc640c641c642c643c644c645c646c647c648c649c64ac64bc64cc64dc64ec64fc650c651c652c653c654c655c656c657c658c659c65ac65bc65cc65dc65ec65fc660c661c662c663c664c665c666c667c668c669c66ac66bc66cc66dc66ec66fc670c671c672c673c674c675c676c677c678c679c67ac67bc67cc67dc67ec67fc680c681c682c683c684c685c686c687c688c689c68ac68bc68cc68dc68ec68fc690c691c692c693c694c695c696c697c698c699c69ac69bc69cc69dc69ec69fc6a0c6a1c6a2c6a3c6a4c6a5c6a6c6a7c6a8c6a9c6aac6abc6acc6adc6aec6afc6b0c6b1c6b2c6b3c6b4c6b5c6b6c6b7c6b8c6b9c6bac6bbc6bcc6bdc6bec6bfc6c0c6c1c6c2c6c3c6c4c6c5c6c6c6c7c6c8c6c9c6cac6cbc6ccc6cdc6cec6cfc6d0c6d1c6d2c6d3c6d4c6d5c6d6c6d7c6d8c6d9c6dac6dbc6dcc6ddc6dec6dfc6e0c6e1c6e2c6e3c6e4c6e5c6e6c6e7c6e8c6e9c6eac6ebc6ecc6edc6eec6efc6f0c6f1c6f2c6f3c6f4c6f5c6f6c6f7c6f8c6f9c6fac6fbc6fcc6fdc6fec6ffc600c701c702c703c704c705c706c707c708c709c70ac70bc70cc70dc70ec70fc710c711c712c713c714c715c716c717c718c719c71ac71bc71cc71dc71ec71fc720c721c722c723c724c725c726c727c728c729c72ac72bc72cc72dc72ec72fc730c731c732c733c734c735c736c737c738c739c73ac73bc73cc73dc73ec73fc740c741c742c743c744c745c746c747c748c749c74ac74bc74cc74dc74ec74fc750c751c752c753c754c755c756c757c758c759c75ac75bc75cc75dc75ec75fc760c761c762c763c764c765c766c767c768c769c76ac76bc76cc76dc76ec76fc770c771c772c773c774c775c776c777c778c779c77ac77bc77cc77dc77ec77fc780c781c782c783c784c785c786c787c788c789c78ac78bc78cc78dc78ec78fc790c791c792c793c794c795c796c797c798c799c79ac79bc79cc79dc79ec79fc7a0c7a1c7a2c7a3c7a4c7a5c7a6c7a7c7a8c7a9c7aac7abc7acc7adc7aec7afc7b0c7b1c7b2c7b3c7b4c7b5c7b6c7b7c7b8c7b9c7bac7bbc7bcc7bdc7bec7bfc7c0c7c1c7c2c7c3c7c4c7c5c7c6c7c7c7c8c7c9c7cac7cbc7ccc7cdc7cec7cfc7d0c7d1c7d2c7d3c7d4c7d5c7d6c7d7c7d8c7d9c7dac7dbc7dcc7ddc7dec7dfc7e0c7e1c7e2c7e3c7e4c7e5c7e6c7e7c7e8c7e9c7eac7ebc7ecc7edc7eec7efc7f0c7f1c7f2c7f3c7f4c7f5c7f6c7f7c7f8c7f9c7fac7fbc7fcc7fdc7fec7ffc700c801c802c803c804c805c806c807c808c809c80ac80bc80cc80dc80ec80fc810c811c812c813c814c815c816c817c818c819c81ac81bc81cc81dc81ec81fc820c821c822c823c824c825c826c827c828c829c82ac82bc82cc82dc82ec82fc830c831c832c833c834c835c836c837c838c839c83ac83bc83cc83dc83ec83fc840c841c842c843c844c845c846c847c848c849c84ac84bc84cc84dc84ec84fc850c851c852c853c854c855c856c857c858c859c85ac85bc85cc85dc85ec85fc860c861c862c863c864c865c866c867c868c869c86ac86bc86cc86dc86ec86fc870c871c872c873c874c875c876c877c878c879c87ac87bc87cc87dc87ec87fc880c881c882c883c884c885c886c887c888c889c88ac88bc88cc88dc88ec88fc890c891c892c893c894c895c896c897c898c899c89ac89bc89cc89dc89ec89fc8a0c8a1c8a2c8a3c8a4c8a5c8a6c8a7c8a8c8a9c8aac8abc8acc8adc8aec8afc8b0c8b1c8b2c8b3c8b4c8b5c8b6c8b7c8b8c8b9c8bac8bbc8bcc8bdc8bec8bfc8c0c8c1c8c2c8c3c8c4c8c5c8c6c8c7c8c8c8c9c8cac8cbc8ccc8cdc8cec8cfc8d0c8d1c8d2c8d3c8d4c8d5c8d6c8d7c8d8c8d9c8dac8dbc8dcc8ddc8dec8dfc8e0c8e1c8e2c8e3c8e4c8e5c8e6c8e7c8e8c8e9c8eac8ebc8ecc8edc8eec8efc8f0c8f1c8f2c8f3c8f4c8f5c8f6c8f7c8f8c8f9c8fac8fbc8fcc8fdc8fec8ffc800c901c902c903c904c905c906c907c908c909c90ac90bc90cc90dc90ec90fc910c911c912c913c914c915c916c917c918c919c91ac91bc91cc91dc91ec91fc920c921c922c923c924c925c926c927c928c929c92ac92bc92cc92dc92ec92fc930c931c932c933c934c935c936c937c938c939c93ac93bc93cc93dc93ec93fc940c941c942c943c944c945c946c947c948c949c94ac94bc94cc94dc94ec94fc950c951c952c953c954c955c956c957c958c959c95ac95bc95cc95dc95ec95fc960c961c962c963c964c965c966c967c968c969c96ac96bc96cc96dc96ec96fc970c971c972c973c974c975c976c977c978c979c97ac97bc97cc97dc97ec97fc980c981c982c983c984c985c986c987c988c989c98ac98bc98cc98dc98ec98fc990c991c992c993c994c995c996c997c998c999c99ac99bc99cc99dc99ec99fc9a0c9a1c9a2c9a3c9a4c9a5c9a6c9a7c9a8c9a9c9aac9abc9acc9adc9aec9afc9b0c9b1c9b2c9b3c9b4c9b5c9b6c9b7c9b8c9b9c9bac9bbc9bcc9bdc9bec9bfc9c0c9c1c9c2c9c3c9c4c9c5c9c6c9c7c9c8c9c9c9cac9cbc9ccc9cdc9cec9cfc9d0c9d1c9d2c9d3c9d4c9d5c9d6c9d7c9d8c9d9c9dac9dbc9dcc9ddc9dec9dfc9e0c9e1c9e2c9e3c9e4c9e5c9e6c9e7c9e8c9e9c9eac9ebc9ecc9edc9eec9efc9f0c9f1c9f2c9f3c9f4c9f5c9f6c9f7c9f8c9f9c9fac9fbc9fcc9fdc9fec9ffc900ca01ca02ca03ca04ca05ca06ca07ca08ca09ca0aca0bca0cca0dca0eca0fca10ca11ca12ca13ca14ca15ca16ca17ca18ca19ca1aca1bca1cca1dca1eca1fca20ca21ca22ca23ca24ca25ca26ca27ca28ca29ca2aca2bca2cca2dca2eca2fca30ca31ca32ca33ca34ca35ca36ca37ca38ca39ca3aca3bca3cca3dca3eca3fca40ca41ca42ca43ca44ca45ca46ca47ca48ca49ca4aca4bca4cca4dca4eca4fca50ca51ca52ca53ca54ca55ca56ca57ca58ca59ca5aca5bca5cca5dca5eca5fca60ca61ca62ca63ca64ca65ca66ca67ca68ca69ca6aca6bca6cca6dca6eca6fca70ca71ca72ca73ca74ca75ca76ca77ca78ca79ca7aca7bca7cca7dca7eca7fca80ca81ca82ca83ca84ca85ca86ca87ca88ca89ca8aca8bca8cca8dca8eca8fca90ca91ca92ca93ca94ca95ca96ca97ca98ca99ca9aca9bca9cca9dca9eca9fcaa0caa1caa2caa3caa4caa5caa6caa7caa8caa9caaacaabcaaccaadcaaecaafcab0cab1cab2cab3cab4cab5cab6cab7cab8cab9cabacabbcabccabdcabecabfcac0cac1cac2cac3cac4cac5cac6cac7cac8cac9cacacacbcacccacdcacecacfcad0cad1cad2cad3cad4cad5cad6cad7cad8cad9cadacadbcadccaddcadecadfcae0cae1cae2cae3cae4cae5cae6cae7cae8cae9caeacaebcaeccaedcaeecaefcaf0caf1caf2caf3caf4caf5caf6caf7caf8caf9cafacafbcafccafdcafecaffca00cb01cb02cb03cb04cb05cb06cb07cb08cb09cb0acb0bcb0ccb0dcb0ecb0fcb10cb11cb12cb13cb14cb15cb16cb17cb18cb19cb1acb1bcb1ccb1dcb1ecb1fcb20cb21cb22cb23cb24cb25cb26cb27cb28cb29cb2acb2bcb2ccb2dcb2ecb2fcb30cb31cb32cb33cb34cb35cb36cb37cb38cb39cb3acb3bcb3ccb3dcb3ecb3fcb40cb41cb42cb43cb44cb45cb46cb47cb48cb49cb4acb4bcb4ccb4dcb4ecb4fcb50cb51cb52cb53cb54cb55cb56cb57cb58cb59cb5acb5bcb5ccb5dcb5ecb5fcb60cb61cb62cb63cb64cb65cb66cb67cb68cb69cb6acb6bcb6ccb6dcb6ecb6fcb70cb71cb72cb73cb74cb75cb76cb77cb78cb79cb7acb7bcb7ccb7dcb7ecb7fcb80cb81cb82cb83cb84cb85cb86cb87cb88cb89cb8acb8bcb8ccb8dcb8ecb8fcb90cb91cb92cb93cb94cb95cb96cb97cb98cb99cb9acb9bcb9ccb9dcb9ecb9fcba0cba1cba2cba3cba4cba5cba6cba7cba8cba9cbaacbabcbaccbadcbaecbafcbb0cbb1cbb2cbb3cbb4cbb5cbb6cbb7cbb8cbb9cbbacbbbcbbccbbdcbbecbbfcbc0cbc1cbc2cbc3cbc4cbc5cbc6cbc7cbc8cbc9cbcacbcbcbcccbcdcbcecbcfcbd0cbd1cbd2cbd3cbd4cbd5cbd6cbd7cbd8cbd9cbdacbdbcbdccbddcbdecbdfcbe0cbe1cbe2cbe3cbe4cbe5cbe6cbe7cbe8cbe9cbeacbebcbeccbedcbeecbefcbf0cbf1cbf2cbf3cbf4cbf5cbf6cbf7cbf8cbf9cbfacbfbcbfccbfdcbfecbffcb00cc01cc02cc03cc04cc05cc06cc07cc08cc09cc0acc0bcc0ccc0dcc0ecc0fcc10cc11cc12cc13cc14cc15cc16cc17cc18cc19cc1acc1bcc1ccc1dcc1ecc1fcc20cc21cc22cc23cc24cc25cc26cc27cc28cc29cc2acc2bcc2ccc2dcc2ecc2fcc30cc31cc32cc33cc34cc35cc36cc37cc38cc39cc3acc3bcc3ccc3dcc3ecc3fcc40cc41cc42cc43cc44cc45cc46cc47cc48cc49cc4acc4bcc4ccc4dcc4ecc4fcc50cc51cc52cc53cc54cc55cc56cc57cc58cc59cc5acc5bcc5ccc5dcc5ecc5fcc60cc61cc62cc63cc64cc65cc66cc67cc68cc69cc6acc6bcc6ccc6dcc6ecc6fcc70cc71cc72cc73cc74cc75cc76cc77cc78cc79cc7acc7bcc7ccc7dcc7ecc7fcc80cc81cc82cc83cc84cc85cc86cc87cc88cc89cc8acc8bcc8ccc8dcc8ecc8fcc90cc91cc92cc93cc94cc95cc96cc97cc98cc99cc9acc9bcc9ccc9dcc9ecc9fcca0cca1cca2cca3cca4cca5cca6cca7cca8cca9ccaaccabccacccadccaeccafccb0ccb1ccb2ccb3ccb4ccb5ccb6ccb7ccb8ccb9ccbaccbbccbcccbdccbeccbfccc0ccc1ccc2ccc3ccc4ccc5ccc6ccc7ccc8ccc9cccacccbcccccccdcccecccfccd0ccd1ccd2ccd3ccd4ccd5ccd6ccd7ccd8ccd9ccdaccdbccdcccddccdeccdfcce0cce1cce2cce3cce4cce5cce6cce7cce8cce9cceaccebccecccedcceeccefccf0ccf1ccf2ccf3ccf4ccf5ccf6ccf7ccf8ccf9ccfaccfbccfcccfdccfeccffcc00cd01cd02cd03cd04cd05cd06cd07cd08cd09cd0acd0bcd0ccd0dcd0ecd0fcd10cd11cd12cd13cd14cd15cd16cd17cd18cd19cd1acd1bcd1ccd1dcd1ecd1fcd20cd21cd22cd23cd24cd25cd26cd27cd28cd29cd2acd2bcd2ccd2dcd2ecd2fcd30cd31cd32cd33cd34cd35cd36cd37cd38cd39cd3acd3bcd3ccd3dcd3ecd3fcd40cd41cd42cd43cd44cd45cd46cd47cd48cd49cd4acd4bcd4ccd4dcd4ecd4fcd50cd51cd52cd53cd54cd55cd56cd57cd58cd59cd5acd5bcd5ccd5dcd5ecd5fcd60cd61cd62cd63cd64cd65cd66cd67cd68cd69cd6acd6bcd6ccd6dcd6ecd6fcd70cd71cd72cd73cd74cd75cd76cd77cd78cd79cd7acd7bcd7ccd7dcd7ecd7fcd80cd81cd82cd83cd84cd85cd86cd87cd88cd89cd8acd8bcd8ccd8dcd8ecd8fcd90cd91cd92cd93cd94cd95cd96cd97cd98cd99cd9acd9bcd9ccd9dcd9ecd9fcda0cda1cda2cda3cda4cda5cda6cda7cda8cda9cdaacdabcdaccdadcdaecdafcdb0cdb1cdb2cdb3cdb4cdb5cdb6cdb7cdb8cdb9cdbacdbbcdbccdbdcdbecdbfcdc0cdc1cdc2cdc3cdc4cdc5cdc6cdc7cdc8cdc9cdcacdcbcdcccdcdcdcecdcfcdd0cdd1cdd2cdd3cdd4cdd5cdd6cdd7cdd8cdd9cddacddbcddccdddcddecddfcde0cde1cde2cde3cde4cde5cde6cde7cde8cde9cdeacdebcdeccdedcdeecdefcdf0cdf1cdf2cdf3cdf4cdf5cdf6cdf7cdf8cdf9cdfacdfbcdfccdfdcdfecdffcd00ce01ce02ce03ce04ce05ce06ce07ce08ce09ce0ace0bce0cce0dce0ece0fce10ce11ce12ce13ce14ce15ce16ce17ce18ce19ce1ace1bce1cce1dce1ece1fce20ce21ce22ce23ce24ce25ce26ce27ce28ce29ce2ace2bce2cce2dce2ece2fce30ce31ce32ce33ce34ce35ce36ce37ce38ce39ce3ace3bce3cce3dce3ece3fce40ce41ce42ce43ce44ce45ce46ce47ce48ce49ce4ace4bce4cce4dce4ece4fce50ce51ce52ce53ce54ce55ce56ce57ce58ce59ce5ace5bce5cce5dce5ece5fce60ce61ce62ce63ce64ce65ce66ce67ce68ce69ce6ace6bce6cce6dce6ece6fce70ce71ce72ce73ce74ce75ce76ce77ce78ce79ce7ace7bce7cce7dce7ece7fce80ce81ce82ce83ce84ce85ce86ce87ce88ce89ce8ace8bce8cce8dce8ece8fce90ce91ce92ce93ce94ce95ce96ce97ce98ce99ce9ace9bce9cce9dce9ece9fcea0cea1cea2cea3cea4cea5cea6cea7cea8cea9ceaaceabceacceadceaeceafceb0ceb1ceb2ceb3ceb4ceb5ceb6ceb7ceb8ceb9cebacebbcebccebdcebecebfcec0cec1cec2cec3cec4cec5cec6cec7cec8cec9cecacecbcecccecdcecececfced0ced1ced2ced3ced4ced5ced6ced7ced8ced9cedacedbcedcceddcedecedfcee0cee1cee2cee3cee4cee5cee6cee7cee8cee9ceeaceebceecceedceeeceefcef0cef1cef2cef3cef4cef5cef6cef7cef8cef9cefacefbcefccefdcefeceffce00cf01cf02cf03cf04cf05cf06cf07cf08cf09cf0acf0bcf0ccf0dcf0ecf0fcf10cf11cf12cf13cf14cf15cf16cf17cf18cf19cf1acf1bcf1ccf1dcf1ecf1fcf20cf21cf22cf23cf24cf25cf26cf27cf28cf29cf2acf2bcf2ccf2dcf2ecf2fcf30cf31cf32cf33cf34cf35cf36cf37cf38cf39cf3acf3bcf3ccf3dcf3ecf3fcf40cf41cf42cf43cf44cf45cf46cf47cf48cf49cf4acf4bcf4ccf4dcf4ecf4fcf50cf51cf52cf53cf54cf55cf56cf57cf58cf59cf5acf5bcf5ccf5dcf5ecf5fcf60cf61cf62cf63cf64cf65cf66cf67cf68cf69cf6acf6bcf6ccf6dcf6ecf6fcf70cf71cf72cf73cf74cf75cf76cf77cf78cf79cf7acf7bcf7ccf7dcf7ecf7fcf80cf81cf82cf83cf84cf85cf86cf87cf88cf89cf8acf8bcf8ccf8dcf8ecf8fcf90cf91cf92cf93cf94cf95cf96cf97cf98cf99cf9acf9bcf9ccf9dcf9ecf9fcfa0cfa1cfa2cfa3cfa4cfa5cfa6cfa7cfa8cfa9cfaacfabcfaccfadcfaecfafcfb0cfb1cfb2cfb3cfb4cfb5cfb6cfb7cfb8cfb9cfbacfbbcfbccfbdcfbecfbfcfc0cfc1cfc2cfc3cfc4cfc5cfc6cfc7cfc8cfc9cfcacfcbcfcccfcdcfcecfcfcfd0cfd1cfd2cfd3cfd4cfd5cfd6cfd7cfd8cfd9cfdacfdbcfdccfddcfdecfdfcfe0cfe1cfe2cfe3cfe4cfe5cfe6cfe7cfe8cfe9cfeacfebcfeccfedcfeecfefcff0cff1cff2cff3cff4cff5cff6cff7cff8cff9cffacffbcffccffdcffecfffcf00d001d002d003d004d005d006d007d008d009d00ad00bd00cd00dd00ed00fd010d011d012d013d014d015d016d017d018d019d01ad01bd01cd01dd01ed01fd020d021d022d023d024d025d026d027d028d029d02ad02bd02cd02dd02ed02fd030d031d032d033d034d035d036d037d038d039d03ad03bd03cd03dd03ed03fd040d041d042d043d044d045d046d047d048d049d04ad04bd04cd04dd04ed04fd050d051d052d053d054d055d056d057d058d059d05ad05bd05cd05dd05ed05fd060d061d062d063d064d065d066d067d068d069d06ad06bd06cd06dd06ed06fd070d071d072d073d074d075d076d077d078d079d07ad07bd07cd07dd07ed07fd080d081d082d083d084d085d086d087d088d089d08ad08bd08cd08dd08ed08fd090d091d092d093d094d095d096d097d098d099d09ad09bd09cd09dd09ed09fd0a0d0a1d0a2d0a3d0a4d0a5d0a6d0a7d0a8d0a9d0aad0abd0acd0add0aed0afd0b0d0b1d0b2d0b3d0b4d0b5d0b6d0b7d0b8d0b9d0bad0bbd0bcd0bdd0bed0bfd0c0d0c1d0c2d0c3d0c4d0c5d0c6d0c7d0c8d0c9d0cad0cbd0ccd0cdd0ced0cfd0d0d0d1d0d2d0d3d0d4d0d5d0d6d0d7d0d8d0d9d0dad0dbd0dcd0ddd0ded0dfd0e0d0e1d0e2d0e3d0e4d0e5d0e6d0e7d0e8d0e9d0ead0ebd0ecd0edd0eed0efd0f0d0f1d0f2d0f3d0f4d0f5d0f6d0f7d0f8d0f9d0fad0fbd0fcd0fdd0fed0ffd000d101d102d103d104d105d106d107d108d109d10ad10bd10cd10dd10ed10fd110d111d112d113d114d115d116d117d118d119d11ad11bd11cd11dd11ed11fd120d121d122d123d124d125d126d127d128d129d12ad12bd12cd12dd12ed12fd130d131d132d133d134d135d136d137d138d139d13ad13bd13cd13dd13ed13fd140d141d142d143d144d145d146d147d148d149d14ad14bd14cd14dd14ed14fd150d151d152d153d154d155d156d157d158d159d15ad15bd15cd15dd15ed15fd160d161d162d163d164d165d166d167d168d169d16ad16bd16cd16dd16ed16fd170d171d172d173d174d175d176d177d178d179d17ad17bd17cd17dd17ed17fd180d181d182d183d184d185d186d187d188d189d18ad18bd18cd18dd18ed18fd190d191d192d193d194d195d196d197d198d199d19ad19bd19cd19dd19ed19fd1a0d1a1d1a2d1a3d1a4d1a5d1a6d1a7d1a8d1a9d1aad1abd1acd1add1aed1afd1b0d1b1d1b2d1b3d1b4d1b5d1b6d1b7d1b8d1b9d1bad1bbd1bcd1bdd1bed1bfd1c0d1c1d1c2d1c3d1c4d1c5d1c6d1c7d1c8d1c9d1cad1cbd1ccd1cdd1ced1cfd1d0d1d1d1d2d1d3d1d4d1d5d1d6d1d7d1d8d1d9d1dad1dbd1dcd1ddd1ded1dfd1e0d1e1d1e2d1e3d1e4d1e5d1e6d1e7d1e8d1e9d1ead1ebd1ecd1edd1eed1efd1f0d1f1d1f2d1f3d1f4d1f5d1f6d1f7d1f8d1f9d1fad1fbd1fcd1fdd1fed1ffd100d201d202d203d204d205d206d207d208d209d20ad20bd20cd20dd20ed20fd210d211d212d213d214d215d216d217d218d219d21ad21bd21cd21dd21ed21fd220d221d222d223d224d225d226d227d228d229d22ad22bd22cd22dd22ed22fd230d231d232d233d234d235d236d237d238d239d23ad23bd23cd23dd23ed23fd240d241d242d243d244d245d246d247d248d249d24ad24bd24cd24dd24ed24fd250d251d252d253d254d255d256d257d258d259d25ad25bd25cd25dd25ed25fd260d261d262d263d264d265d266d267d268d269d26ad26bd26cd26dd26ed26fd270d271d272d273d274d275d276d277d278d279d27ad27bd27cd27dd27ed27fd280d281d282d283d284d285d286d287d288d289d28ad28bd28cd28dd28ed28fd290d291d292d293d294d295d296d297d298d299d29ad29bd29cd29dd29ed29fd2a0d2a1d2a2d2a3d2a4d2a5d2a6d2a7d2a8d2a9d2aad2abd2acd2add2aed2afd2b0d2b1d2b2d2b3d2b4d2b5d2b6d2b7d2b8d2b9d2bad2bbd2bcd2bdd2bed2bfd2c0d2c1d2c2d2c3d2c4d2c5d2c6d2c7d2c8d2c9d2cad2cbd2ccd2cdd2ced2cfd2d0d2d1d2d2d2d3d2d4d2d5d2d6d2d7d2d8d2d9d2dad2dbd2dcd2ddd2ded2dfd2e0d2e1d2e2d2e3d2e4d2e5d2e6d2e7d2e8d2e9d2ead2ebd2ecd2edd2eed2efd2f0d2f1d2f2d2f3d2f4d2f5d2f6d2f7d2f8d2f9d2fad2fbd2fcd2fdd2fed2ffd200d301d302d303d304d305d306d307d308d309d30ad30bd30cd30dd30ed30fd310d311d312d313d314d315d316d317d318d319d31ad31bd31cd31dd31ed31fd320d321d322d323d324d325d326d327d328d329d32ad32bd32cd32dd32ed32fd330d331d332d333d334d335d336d337d338d339d33ad33bd33cd33dd33ed33fd340d341d342d343d344d345d346d347d348d349d34ad34bd34cd34dd34ed34fd350d351d352d353d354d355d356d357d358d359d35ad35bd35cd35dd35ed35fd360d361d362d363d364d365d366d367d368d369d36ad36bd36cd36dd36ed36fd370d371d372d373d374d375d376d377d378d379d37ad37bd37cd37dd37ed37fd380d381d382d383d384d385d386d387d388d389d38ad38bd38cd38dd38ed38fd390d391d392d393d394d395d396d397d398d399d39ad39bd39cd39dd39ed39fd3a0d3a1d3a2d3a3d3a4d3a5d3a6d3a7d3a8d3a9d3aad3abd3acd3add3aed3afd3b0d3b1d3b2d3b3d3b4d3b5d3b6d3b7d3b8d3b9d3bad3bbd3bcd3bdd3bed3bfd3c0d3c1d3c2d3c3d3c4d3c5d3c6d3c7d3c8d3c9d3cad3cbd3ccd3cdd3ced3cfd3d0d3d1d3d2d3d3d3d4d3d5d3d6d3d7d3d8d3d9d3dad3dbd3dcd3ddd3ded3dfd3e0d3e1d3e2d3e3d3e4d3e5d3e6d3e7d3e8d3e9d3ead3ebd3ecd3edd3eed3efd3f0d3f1d3f2d3f3d3f4d3f5d3f6d3f7d3f8d3f9d3fad3fbd3fcd3fdd3fed3ffd300d401d402d403d404d405d406d407d408d409d40ad40bd40cd40dd40ed40fd410d411d412d413d414d415d416d417d418d419d41ad41bd41cd41dd41ed41fd420d421d422d423d424d425d426d427d428d429d42ad42bd42cd42dd42ed42fd430d431d432d433d434d435d436d437d438d439d43ad43bd43cd43dd43ed43fd440d441d442d443d444d445d446d447d448d449d44ad44bd44cd44dd44ed44fd450d451d452d453d454d455d456d457d458d459d45ad45bd45cd45dd45ed45fd460d461d462d463d464d465d466d467d468d469d46ad46bd46cd46dd46ed46fd470d471d472d473d474d475d476d477d478d479d47ad47bd47cd47dd47ed47fd480d481d482d483d484d485d486d487d488d489d48ad48bd48cd48dd48ed48fd490d491d492d493d494d495d496d497d498d499d49ad49bd49cd49dd49ed49fd4a0d4a1d4a2d4a3d4a4d4a5d4a6d4a7d4a8d4a9d4aad4abd4acd4add4aed4afd4b0d4b1d4b2d4b3d4b4d4b5d4b6d4b7d4b8d4b9d4bad4bbd4bcd4bdd4bed4bfd4c0d4c1d4c2d4c3d4c4d4c5d4c6d4c7d4c8d4c9d4cad4cbd4ccd4cdd4ced4cfd4d0d4d1d4d2d4d3d4d4d4d5d4d6d4d7d4d8d4d9d4dad4dbd4dcd4ddd4ded4dfd4e0d4e1d4e2d4e3d4e4d4e5d4e6d4e7d4e8d4e9d4ead4ebd4ecd4edd4eed4efd4f0d4f1d4f2d4f3d4f4d4f5d4f6d4f7d4f8d4f9d4fad4fbd4fcd4fdd4fed4ffd400d501d502d503d504d505d506d507d508d509d50ad50bd50cd50dd50ed50fd510d511d512d513d514d515d516d517d518d519d51ad51bd51cd51dd51ed51fd520d521d522d523d524d525d526d527d528d529d52ad52bd52cd52dd52ed52fd530d531d532d533d534d535d536d537d538d539d53ad53bd53cd53dd53ed53fd540d541d542d543d544d545d546d547d548d549d54ad54bd54cd54dd54ed54fd550d551d552d553d554d555d556d557d558d559d55ad55bd55cd55dd55ed55fd560d561d562d563d564d565d566d567d568d569d56ad56bd56cd56dd56ed56fd570d571d572d573d574d575d576d577d578d579d57ad57bd57cd57dd57ed57fd580d581d582d583d584d585d586d587d588d589d58ad58bd58cd58dd58ed58fd590d591d592d593d594d595d596d597d598d599d59ad59bd59cd59dd59ed59fd5a0d5a1d5a2d5a3d5a4d5a5d5a6d5a7d5a8d5a9d5aad5abd5acd5add5aed5afd5b0d5b1d5b2d5b3d5b4d5b5d5b6d5b7d5b8d5b9d5bad5bbd5bcd5bdd5bed5bfd5c0d5c1d5c2d5c3d5c4d5c5d5c6d5c7d5c8d5c9d5cad5cbd5ccd5cdd5ced5cfd5d0d5d1d5d2d5d3d5d4d5d5d5d6d5d7d5d8d5d9d5dad5dbd5dcd5ddd5ded5dfd5e0d5e1d5e2d5e3d5e4d5e5d5e6d5e7d5e8d5e9d5ead5ebd5ecd5edd5eed5efd5f0d5f1d5f2d5f3d5f4d5f5d5f6d5f7d5f8d5f9d5fad5fbd5fcd5fdd5fed5ffd500d601d602d603d604d605d606d607d608d609d60ad60bd60cd60dd60ed60fd610d611d612d613d614d615d616d617d618d619d61ad61bd61cd61dd61ed61fd620d621d622d623d624d625d626d627d628d629d62ad62bd62cd62dd62ed62fd630d631d632d633d634d635d636d637d638d639d63ad63bd63cd63dd63ed63fd640d641d642d643d644d645d646d647d648d649d64ad64bd64cd64dd64ed64fd650d651d652d653d654d655d656d657d658d659d65ad65bd65cd65dd65ed65fd660d661d662d663d664d665d666d667d668d669d66ad66bd66cd66dd66ed66fd670d671d672d673d674d675d676d677d678d679d67ad67bd67cd67dd67ed67fd680d681d682d683d684d685d686d687d688d689d68ad68bd68cd68dd68ed68fd690d691d692d693d694d695d696d697d698d699d69ad69bd69cd69dd69ed69fd6a0d6a1d6a2d6a3d6a4d6a5d6a6d6a7d6a8d6a9d6aad6abd6acd6add6aed6afd6b0d6b1d6b2d6b3d6b4d6b5d6b6d6b7d6b8d6b9d6bad6bbd6bcd6bdd6bed6bfd6c0d6c1d6c2d6c3d6c4d6c5d6c6d6c7d6c8d6c9d6cad6cbd6ccd6cdd6ced6cfd6d0d6d1d6d2d6d3d6d4d6d5d6d6d6d7d6d8d6d9d6dad6dbd6dcd6ddd6ded6dfd6e0d6e1d6e2d6e3d6e4d6e5d6e6d6e7d6e8d6e9d6ead6ebd6ecd6edd6eed6efd6f0d6f1d6f2d6f3d6f4d6f5d6f6d6f7d6f8d6f9d6fad6fbd6fcd6fdd6fed6ffd600d701d702d703d704d705d706d707d708d709d70ad70bd70cd70dd70ed70fd710d711d712d713d714d715d716d717d718d719d71ad71bd71cd71dd71ed71fd720d721d722d723d724d725d726d727d728d729d72ad72bd72cd72dd72ed72fd730d731d732d733d734d735d736d737d738d739d73ad73bd73cd73dd73ed73fd740d741d742d743d744d745d746d747d748d749d74ad74bd74cd74dd74ed74fd750d751d752d753d754d755d756d757d758d759d75ad75bd75cd75dd75ed75fd760d761d762d763d764d765d766d767d768d769d76ad76bd76cd76dd76ed76fd770d771d772d773d774d775d776d777d778d779d77ad77bd77cd77dd77ed77fd780d781d782d783d784d785d786d787d788d789d78ad78bd78cd78dd78ed78fd790d791d792d793d794d795d796d797d798d799d79ad79bd79cd79dd79ed79fd7a0d7a1d7a2d7a3d7a4d7a5d7a6d7a7d7a8d7a9d7aad7abd7acd7add7aed7afd7b0d7b1d7b2d7b3d7b4d7b5d7b6d7b7d7b8d7b9d7bad7bbd7bcd7bdd7bed7bfd7c0d7c1d7c2d7c3d7c4d7c5d7c6d7c7d7c8d7c9d7cad7cbd7ccd7cdd7ced7cfd7d0d7d1d7d2d7d3d7d4d7d5d7d6d7d7d7d8d7d9d7dad7dbd7dcd7ddd7ded7dfd7e0d7e1d7e2d7e3d7e4d7e5d7e6d7e7d7e8d7e9d7ead7ebd7ecd7edd7eed7efd7f0d7f1d7f2d7f3d7f4d7f5d7f6d7f7d7f8d7f9d7fad7fbd7fcd7fdd7fed7ffd700d801d802d803d804d805d806d807d808d809d80ad80bd80cd80dd80ed80fd810d811d812d813d814d815d816d817d818d819d81ad81bd81cd81dd81ed81fd820d821d822d823d824d825d826d827d828d829d82ad82bd82cd82dd82ed82fd830d831d832d833d834d835d836d837d838d839d83ad83bd83cd83dd83ed83fd840d841d842d843d844d845d846d847d848d849d84ad84bd84cd84dd84ed84fd850d851d852d853d854d855d856d857d858d859d85ad85bd85cd85dd85ed85fd860d861d862d863d864d865d866d867d868d869d86ad86bd86cd86dd86ed86fd870d871d872d873d874d875d876d877d878d879d87ad87bd87cd87dd87ed87fd880d881d882d883d884d885d886d887d888d889d88ad88bd88cd88dd88ed88fd890d891d892d893d894d895d896d897d898d899d89ad89bd89cd89dd89ed89fd8a0d8a1d8a2d8a3d8a4d8a5d8a6d8a7d8a8d8a9d8aad8abd8acd8add8aed8afd8b0d8b1d8b2d8b3d8b4d8b5d8b6d8b7d8b8d8b9d8bad8bbd8bcd8bdd8bed8bfd8c0d8c1d8c2d8c3d8c4d8c5d8c6d8c7d8c8d8c9d8cad8cbd8ccd8cdd8ced8cfd8d0d8d1d8d2d8d3d8d4d8d5d8d6d8d7d8d8d8d9d8dad8dbd8dcd8ddd8ded8dfd8e0d8e1d8e2d8e3d8e4d8e5d8e6d8e7d8e8d8e9d8ead8ebd8ecd8edd8eed8efd8f0d8f1d8f2d8f3d8f4d8f5d8f6d8f7d8f8d8f9d8fad8fbd8fcd8fdd8fed8ffd800d901d902d903d904d905d906d907d908d909d90ad90bd90cd90dd90ed90fd910d911d912d913d914d915d916d917d918d919d91ad91bd91cd91dd91ed91fd920d921d922d923d924d925d926d927d928d929d92ad92bd92cd92dd92ed92fd930d931d932d933d934d935d936d937d938d939d93ad93bd93cd93dd93ed93fd940d941d942d943d944d945d946d947d948d949d94ad94bd94cd94dd94ed94fd950d951d952d953d954d955d956d957d958d959d95ad95bd95cd95dd95ed95fd960d961d962d963d964d965d966d967d968d969d96ad96bd96cd96dd96ed96fd970d971d972d973d974d975d976d977d978d979d97ad97bd97cd97dd97ed97fd980d981d982d983d984d985d986d987d988d989d98ad98bd98cd98dd98ed98fd990d991d992d993d994d995d996d997d998d999d99ad99bd99cd99dd99ed99fd9a0d9a1d9a2d9a3d9a4d9a5d9a6d9a7d9a8d9a9d9aad9abd9acd9add9aed9afd9b0d9b1d9b2d9b3d9b4d9b5d9b6d9b7d9b8d9b9d9bad9bbd9bcd9bdd9bed9bfd9c0d9c1d9c2d9c3d9c4d9c5d9c6d9c7d9c8d9c9d9cad9cbd9ccd9cdd9ced9cfd9d0d9d1d9d2d9d3d9d4d9d5d9d6d9d7d9d8d9d9d9dad9dbd9dcd9ddd9ded9dfd9e0d9e1d9e2d9e3d9e4d9e5d9e6d9e7d9e8d9e9d9ead9ebd9ecd9edd9eed9efd9f0d9f1d9f2d9f3d9f4d9f5d9f6d9f7d9f8d9f9d9fad9fbd9fcd9fdd9fed9ffd900da01da02da03da04da05da06da07da08da09da0ada0bda0cda0dda0eda0fda10da11da12da13da14da15da16da17da18da19da1ada1bda1cda1dda1eda1fda20da21da22da23da24da25da26da27da28da29da2ada2bda2cda2dda2eda2fda30da31da32da33da34da35da36da37da38da39da3ada3bda3cda3dda3eda3fda40da41da42da43da44da45da46da47da48da49da4ada4bda4cda4dda4eda4fda50da51da52da53da54da55da56da57da58da59da5ada5bda5cda5dda5eda5fda60da61da62da63da64da65da66da67da68da69da6ada6bda6cda6dda6eda6fda70da71da72da73da74da75da76da77da78da79da7ada7bda7cda7dda7eda7fda80da81da82da83da84da85da86da87da88da89da8ada8bda8cda8dda8eda8fda90da91da92da93da94da95da96da97da98da99da9ada9bda9cda9dda9eda9fdaa0daa1daa2daa3daa4daa5daa6daa7daa8daa9daaadaabdaacdaaddaaedaafdab0dab1dab2dab3dab4dab5dab6dab7dab8dab9dabadabbdabcdabddabedabfdac0dac1dac2dac3dac4dac5dac6dac7dac8dac9dacadacbdaccdacddacedacfdad0dad1dad2dad3dad4dad5dad6dad7dad8dad9dadadadbdadcdadddadedadfdae0dae1dae2dae3dae4dae5dae6dae7dae8dae9daeadaebdaecdaeddaeedaefdaf0daf1daf2daf3daf4daf5daf6daf7daf8daf9dafadafbdafcdafddafedaffda00db01db02db03db04db05db06db07db08db09db0adb0bdb0cdb0ddb0edb0fdb10db11db12db13db14db15db16db17db18db19db1adb1bdb1cdb1ddb1edb1fdb20db21db22db23db24db25db26db27db28db29db2adb2bdb2cdb2ddb2edb2fdb30db31db32db33db34db35db36db37db38db39db3adb3bdb3cdb3ddb3edb3fdb40db41db42db43db44db45db46db47db48db49db4adb4bdb4cdb4ddb4edb4fdb50db51db52db53db54db55db56db57db58db59db5adb5bdb5cdb5ddb5edb5fdb60db61db62db63db64db65db66db67db68db69db6adb6bdb6cdb6ddb6edb6fdb70db71db72db73db74db75db76db77db78db79db7adb7bdb7cdb7ddb7edb7fdb80db81db82db83db84db85db86db87db88db89db8adb8bdb8cdb8ddb8edb8fdb90db91db92db93db94db95db96db97db98db99db9adb9bdb9cdb9ddb9edb9fdba0dba1dba2dba3dba4dba5dba6dba7dba8dba9dbaadbabdbacdbaddbaedbafdbb0dbb1dbb2dbb3dbb4dbb5dbb6dbb7dbb8dbb9dbbadbbbdbbcdbbddbbedbbfdbc0dbc1dbc2dbc3dbc4dbc5dbc6dbc7dbc8dbc9dbcadbcbdbccdbcddbcedbcfdbd0dbd1dbd2dbd3dbd4dbd5dbd6dbd7dbd8dbd9dbdadbdbdbdcdbdddbdedbdfdbe0dbe1dbe2dbe3dbe4dbe5dbe6dbe7dbe8dbe9dbeadbebdbecdbeddbeedbefdbf0dbf1dbf2dbf3dbf4dbf5dbf6dbf7dbf8dbf9dbfadbfbdbfcdbfddbfedbffdb00dc01dc02dc03dc04dc05dc06dc07dc08dc09dc0adc0bdc0cdc0ddc0edc0fdc10dc11dc12dc13dc14dc15dc16dc17dc18dc19dc1adc1bdc1cdc1ddc1edc1fdc20dc21dc22dc23dc24dc25dc26dc27dc28dc29dc2adc2bdc2cdc2ddc2edc2fdc30dc31dc32dc33dc34dc35dc36dc37dc38dc39dc3adc3bdc3cdc3ddc3edc3fdc40dc41dc42dc43dc44dc45dc46dc47dc48dc49dc4adc4bdc4cdc4ddc4edc4fdc50dc51dc52dc53dc54dc55dc56dc57dc58dc59dc5adc5bdc5cdc5ddc5edc5fdc60dc61dc62dc63dc64dc65dc66dc67dc68dc69dc6adc6bdc6cdc6ddc6edc6fdc70dc71dc72dc73dc74dc75dc76dc77dc78dc79dc7adc7bdc7cdc7ddc7edc7fdc80dc81dc82dc83dc84dc85dc86dc87dc88dc89dc8adc8bdc8cdc8ddc8edc8fdc90dc91dc92dc93dc94dc95dc96dc97dc98dc99dc9adc9bdc9cdc9ddc9edc9fdca0dca1dca2dca3dca4dca5dca6dca7dca8dca9dcaadcabdcacdcaddcaedcafdcb0dcb1dcb2dcb3dcb4dcb5dcb6dcb7dcb8dcb9dcbadcbbdcbcdcbddcbedcbfdcc0dcc1dcc2dcc3dcc4dcc5dcc6dcc7dcc8dcc9dccadccbdcccdccddccedccfdcd0dcd1dcd2dcd3dcd4dcd5dcd6dcd7dcd8dcd9dcdadcdbdcdcdcdddcdedcdfdce0dce1dce2dce3dce4dce5dce6dce7dce8dce9dceadcebdcecdceddceedcefdcf0dcf1dcf2dcf3dcf4dcf5dcf6dcf7dcf8dcf9dcfadcfbdcfcdcfddcfedcffdc00dd01dd02dd03dd04dd05dd06dd07dd08dd09dd0add0bdd0cdd0ddd0edd0fdd10dd11dd12dd13dd14dd15dd16dd17dd18dd19dd1add1bdd1cdd1ddd1edd1fdd20dd21dd22dd23dd24dd25dd26dd27dd28dd29dd2add2bdd2cdd2ddd2edd2fdd30dd31dd32dd33dd34dd35dd36dd37dd38dd39dd3add3bdd3cdd3ddd3edd3fdd40dd41dd42dd43dd44dd45dd46dd47dd48dd49dd4add4bdd4cdd4ddd4edd4fdd50dd51dd52dd53dd54dd55dd56dd57dd58dd59dd5add5bdd5cdd5ddd5edd5fdd60dd61dd62dd63dd64dd65dd66dd67dd68dd69dd6add6bdd6cdd6ddd6edd6fdd70dd71dd72dd73dd74dd75dd76dd77dd78dd79dd7add7bdd7cdd7ddd7edd7fdd80dd81dd82dd83dd84dd85dd86dd87dd88dd89dd8add8bdd8cdd8ddd8edd8fdd90dd91dd92dd93dd94dd95dd96dd97dd98dd99dd9add9bdd9cdd9ddd9edd9fdda0dda1dda2dda3dda4dda5dda6dda7dda8dda9ddaaddabddacddadddaeddafddb0ddb1ddb2ddb3ddb4ddb5ddb6ddb7ddb8ddb9ddbaddbbddbcddbdddbeddbfddc0ddc1ddc2ddc3ddc4ddc5ddc6ddc7ddc8ddc9ddcaddcbddccddcdddceddcfddd0ddd1ddd2ddd3ddd4ddd5ddd6ddd7ddd8ddd9dddadddbdddcdddddddedddfdde0dde1dde2dde3dde4dde5dde6dde7dde8dde9ddeaddebddecddedddeeddefddf0ddf1ddf2ddf3ddf4ddf5ddf6ddf7ddf8ddf9ddfaddfbddfcddfdddfeddffdd00de01de02de03de04de05de06de07de08de09de0ade0bde0cde0dde0ede0fde10de11de12de13de14de15de16de17de18de19de1ade1bde1cde1dde1ede1fde20de21de22de23de24de25de26de27de28de29de2ade2bde2cde2dde2ede2fde30de31de32de33de34de35de36de37de38de39de3ade3bde3cde3dde3ede3fde40de41de42de43de44de45de46de47de48de49de4ade4bde4cde4dde4ede4fde50de51de52de53de54de55de56de57de58de59de5ade5bde5cde5dde5ede5fde60de61de62de63de64de65de66de67de68de69de6ade6bde6cde6dde6ede6fde70de71de72de73de74de75de76de77de78de79de7ade7bde7cde7dde7ede7fde80de81de82de83de84de85de86de87de88de89de8ade8bde8cde8dde8ede8fde90de91de92de93de94de95de96de97de98de99de9ade9bde9cde9dde9ede9fdea0dea1dea2dea3dea4dea5dea6dea7dea8dea9deaadeabdeacdeaddeaedeafdeb0deb1deb2deb3deb4deb5deb6deb7deb8deb9debadebbdebcdebddebedebfdec0dec1dec2dec3dec4dec5dec6dec7dec8dec9decadecbdeccdecddecedecfded0ded1ded2ded3ded4ded5ded6ded7ded8ded9dedadedbdedcdedddedededfdee0dee1dee2dee3dee4dee5dee6dee7dee8dee9deeadeebdeecdeeddeeedeefdef0def1def2def3def4def5def6def7def8def9defadefbdefcdefddefedeffde00df01df02df03df04df05df06df07df08df09df0adf0bdf0cdf0ddf0edf0fdf10df11df12df13df14df15df16df17df18df19df1adf1bdf1cdf1ddf1edf1fdf20df21df22df23df24df25df26df27df28df29df2adf2bdf2cdf2ddf2edf2fdf30df31df32df33df34df35df36df37df38df39df3adf3bdf3cdf3ddf3edf3fdf40df41df42df43df44df45df46df47df48df49df4adf4bdf4cdf4ddf4edf4fdf50df51df52df53df54df55df56df57df58df59df5adf5bdf5cdf5ddf5edf5fdf60df61df62df63df64df65df66df67df68df69df6adf6bdf6cdf6ddf6edf6fdf70df71df72df73df74df75df76df77df78df79df7adf7bdf7cdf7ddf7edf7fdf80df81df82df83df84df85df86df87df88df89df8adf8bdf8cdf8ddf8edf8fdf90df91df92df93df94df95df96df97df98df99df9adf9bdf9cdf9ddf9edf9fdfa0dfa1dfa2dfa3dfa4dfa5dfa6dfa7dfa8dfa9dfaadfabdfacdfaddfaedfafdfb0dfb1dfb2dfb3dfb4dfb5dfb6dfb7dfb8dfb9dfbadfbbdfbcdfbddfbedfbfdfc0dfc1dfc2dfc3dfc4dfc5dfc6dfc7dfc8dfc9dfcadfcbdfccdfcddfcedfcfdfd0dfd1dfd2dfd3dfd4dfd5dfd6dfd7dfd8dfd9dfdadfdbdfdcdfdddfdedfdfdfe0dfe1dfe2dfe3dfe4dfe5dfe6dfe7dfe8dfe9dfeadfebdfecdfeddfeedfefdff0dff1dff2dff3dff4dff5dff6dff7dff8dff9dffadffbdffcdffddffedfffdf00e001e002e003e004e005e006e007e008e009e00ae00be00ce00de00ee00fe010e011e012e013e014e015e016e017e018e019e01ae01be01ce01de01ee01fe020e021e022e023e024e025e026e027e028e029e02ae02be02ce02de02ee02fe030e031e032e033e034e035e036e037e038e039e03ae03be03ce03de03ee03fe040e041e042e043e044e045e046e047e048e049e04ae04be04ce04de04ee04fe050e051e052e053e054e055e056e057e058e059e05ae05be05ce05de05ee05fe060e061e062e063e064e065e066e067e068e069e06ae06be06ce06de06ee06fe070e071e072e073e074e075e076e077e078e079e07ae07be07ce07de07ee07fe080e081e082e083e084e085e086e087e088e089e08ae08be08ce08de08ee08fe090e091e092e093e094e095e096e097e098e099e09ae09be09ce09de09ee09fe0a0e0a1e0a2e0a3e0a4e0a5e0a6e0a7e0a8e0a9e0aae0abe0ace0ade0aee0afe0b0e0b1e0b2e0b3e0b4e0b5e0b6e0b7e0b8e0b9e0bae0bbe0bce0bde0bee0bfe0c0e0c1e0c2e0c3e0c4e0c5e0c6e0c7e0c8e0c9e0cae0cbe0cce0cde0cee0cfe0d0e0d1e0d2e0d3e0d4e0d5e0d6e0d7e0d8e0d9e0dae0dbe0dce0dde0dee0dfe0e0e0e1e0e2e0e3e0e4e0e5e0e6e0e7e0e8e0e9e0eae0ebe0ece0ede0eee0efe0f0e0f1e0f2e0f3e0f4e0f5e0f6e0f7e0f8e0f9e0fae0fbe0fce0fde0fee0ffe000e101e102e103e104e105e106e107e108e109e10ae10be10ce10de10ee10fe110e111e112e113e114e115e116e117e118e119e11ae11be11ce11de11ee11fe120e121e122e123e124e125e126e127e128e129e12ae12be12ce12de12ee12fe130e131e132e133e134e135e136e137e138e139e13ae13be13ce13de13ee13fe140e141e142e143e144e145e146e147e148e149e14ae14be14ce14de14ee14fe150e151e152e153e154e155e156e157e158e159e15ae15be15ce15de15ee15fe160e161e162e163e164e165e166e167e168e169e16ae16be16ce16de16ee16fe170e171e172e173e174e175e176e177e178e179e17ae17be17ce17de17ee17fe180e181e182e183e184e185e186e187e188e189e18ae18be18ce18de18ee18fe190e191e192e193e194e195e196e197e198e199e19ae19be19ce19de19ee19fe1a0e1a1e1a2e1a3e1a4e1a5e1a6e1a7e1a8e1a9e1aae1abe1ace1ade1aee1afe1b0e1b1e1b2e1b3e1b4e1b5e1b6e1b7e1b8e1b9e1bae1bbe1bce1bde1bee1bfe1c0e1c1e1c2e1c3e1c4e1c5e1c6e1c7e1c8e1c9e1cae1cbe1cce1cde1cee1cfe1d0e1d1e1d2e1d3e1d4e1d5e1d6e1d7e1d8e1d9e1dae1dbe1dce1dde1dee1dfe1e0e1e1e1e2e1e3e1e4e1e5e1e6e1e7e1e8e1e9e1eae1ebe1ece1ede1eee1efe1f0e1f1e1f2e1f3e1f4e1f5e1f6e1f7e1f8e1f9e1fae1fbe1fce1fde1fee1ffe100e201e202e203e204e205e206e207e208e209e20ae20be20ce20de20ee20fe210e211e212e213e214e215e216e217e218e219e21ae21be21ce21de21ee21fe220e221e222e223e224e225e226e227e228e229e22ae22be22ce22de22ee22fe230e231e232e233e234e235e236e237e238e239e23ae23be23ce23de23ee23fe240e241e242e243e244e245e246e247e248e249e24ae24be24ce24de24ee24fe250e251e252e253e254e255e256e257e258e259e25ae25be25ce25de25ee25fe260e261e262e263e264e265e266e267e268e269e26ae26be26ce26de26ee26fe270e271e272e273e274e275e276e277e278e279e27ae27be27ce27de27ee27fe280e281e282e283e284e285e286e287e288e289e28ae28be28ce28de28ee28fe290e291e292e293e294e295e296e297e298e299e29ae29be29ce29de29ee29fe2a0e2a1e2a2e2a3e2a4e2a5e2a6e2a7e2a8e2a9e2aae2abe2ace2ade2aee2afe2b0e2b1e2b2e2b3e2b4e2b5e2b6e2b7e2b8e2b9e2bae2bbe2bce2bde2bee2bfe2c0e2c1e2c2e2c3e2c4e2c5e2c6e2c7e2c8e2c9e2cae2cbe2cce2cde2cee2cfe2d0e2d1e2d2e2d3e2d4e2d5e2d6e2d7e2d8e2d9e2dae2dbe2dce2dde2dee2dfe2e0e2e1e2e2e2e3e2e4e2e5e2e6e2e7e2e8e2e9e2eae2ebe2ece2ede2eee2efe2f0e2f1e2f2e2f3e2f4e2f5e2f6e2f7e2f8e2f9e2fae2fbe2fce2fde2fee2ffe200e301e302e303e304e305e306e307e308e309e30ae30be30ce30de30ee30fe310e311e312e313e314e315e316e317e318e319e31ae31be31ce31de31ee31fe320e321e322e323e324e325e326e327e328e329e32ae32be32ce32de32ee32fe330e331e332e333e334e335e336e337e338e339e33ae33be33ce33de33ee33fe340e341e342e343e344e345e346e347e348e349e34ae34be34ce34de34ee34fe350e351e352e353e354e355e356e357e358e359e35ae35be35ce35de35ee35fe360e361e362e363e364e365e366e367e368e369e36ae36be36ce36de36ee36fe370e371e372e373e374e375e376e377e378e379e37ae37be37ce37de37ee37fe380e381e382e383e384e385e386e387e388e389e38ae38be38ce38de38ee38fe390e391e392e393e394e395e396e397e398e399e39ae39be39ce39de39ee39fe3a0e3a1e3a2e3a3e3a4e3a5e3a6e3a7e3a8e3a9e3aae3abe3ace3ade3aee3afe3b0e3b1e3b2e3b3e3b4e3b5e3b6e3b7e3b8e3b9e3bae3bbe3bce3bde3bee3bfe3c0e3c1e3c2e3c3e3c4e3c5e3c6e3c7e3c8e3c9e3cae3cbe3cce3cde3cee3cfe3d0e3d1e3d2e3d3e3d4e3d5e3d6e3d7e3d8e3d9e3dae3dbe3dce3dde3dee3dfe3e0e3e1e3e2e3e3e3e4e3e5e3e6e3e7e3e8e3e9e3eae3ebe3ece3ede3eee3efe3f0e3f1e3f2e3f3e3f4e3f5e3f6e3f7e3f8e3f9e3fae3fbe3fce3fde3fee3ffe300e401e402e403e404e405e406e407e408e409e40ae40be40ce40de40ee40fe410e411e412e413e414e415e416e417e418e419e41ae41be41ce41de41ee41fe420e421e422e423e424e425e426e427e428e429e42ae42be42ce42de42ee42fe430e431e432e433e434e435e436e437e438e439e43ae43be43ce43de43ee43fe440e441e442e443e444e445e446e447e448e449e44ae44be44ce44de44ee44fe450e451e452e453e454e455e456e457e458e459e45ae45be45ce45de45ee45fe460e461e462e463e464e465e466e467e468e469e46ae46be46ce46de46ee46fe470e471e472e473e474e475e476e477e478e479e47ae47be47ce47de47ee47fe480e481e482e483e484e485e486e487e488e489e48ae48be48ce48de48ee48fe490e491e492e493e494e495e496e497e498e499e49ae49be49ce49de49ee49fe4a0e4a1e4a2e4a3e4a4e4a5e4a6e4a7e4a8e4a9e4aae4abe4ace4ade4aee4afe4b0e4b1e4b2e4b3e4b4e4b5e4b6e4b7e4b8e4b9e4bae4bbe4bce4bde4bee4bfe4c0e4c1e4c2e4c3e4c4e4c5e4c6e4c7e4c8e4c9e4cae4cbe4cce4cde4cee4cfe4d0e4d1e4d2e4d3e4d4e4d5e4d6e4d7e4d8e4d9e4dae4dbe4dce4dde4dee4dfe4e0e4e1e4e2e4e3e4e4e4e5e4e6e4e7e4e8e4e9e4eae4ebe4ece4ede4eee4efe4f0e4f1e4f2e4f3e4f4e4f5e4f6e4f7e4f8e4f9e4fae4fbe4fce4fde4fee4ffe400e501e502e503e504e505e506e507e508e509e50ae50be50ce50de50ee50fe510e511e512e513e514e515e516e517e518e519e51ae51be51ce51de51ee51fe520e521e522e523e524e525e526e527e528e529e52ae52be52ce52de52ee52fe530e531e532e533e534e535e536e537e538e539e53ae53be53ce53de53ee53fe540e541e542e543e544e545e546e547e548e549e54ae54be54ce54de54ee54fe550e551e552e553e554e555e556e557e558e559e55ae55be55ce55de55ee55fe560e561e562e563e564e565e566e567e568e569e56ae56be56ce56de56ee56fe570e571e572e573e574e575e576e577e578e579e57ae57be57ce57de57ee57fe580e581e582e583e584e585e586e587e588e589e58ae58be58ce58de58ee58fe590e591e592e593e594e595e596e597e598e599e59ae59be59ce59de59ee59fe5a0e5a1e5a2e5a3e5a4e5a5e5a6e5a7e5a8e5a9e5aae5abe5ace5ade5aee5afe5b0e5b1e5b2e5b3e5b4e5b5e5b6e5b7e5b8e5b9e5bae5bbe5bce5bde5bee5bfe5c0e5c1e5c2e5c3e5c4e5c5e5c6e5c7e5c8e5c9e5cae5cbe5cce5cde5cee5cfe5d0e5d1e5d2e5d3e5d4e5d5e5d6e5d7e5d8e5d9e5dae5dbe5dce5dde5dee5dfe5e0e5e1e5e2e5e3e5e4e5e5e5e6e5e7e5e8e5e9e5eae5ebe5ece5ede5eee5efe5f0e5f1e5f2e5f3e5f4e5f5e5f6e5f7e5f8e5f9e5fae5fbe5fce5fde5fee5ffe500e601e602e603e604e605e606e607e608e609e60ae60be60ce60de60ee60fe610e611e612e613e614e615e616e617e618e619e61ae61be61ce61de61ee61fe620e621e622e623e624e625e626e627e628e629e62ae62be62ce62de62ee62fe630e631e632e633e634e635e636e637e638e639e63ae63be63ce63de63ee63fe640e641e642e643e644e645e646e647e648e649e64ae64be64ce64de64ee64fe650e651e652e653e654e655e656e657e658e659e65ae65be65ce65de65ee65fe660e661e662e663e664e665e666e667e668e669e66ae66be66ce66de66ee66fe670e671e672e673e674e675e676e677e678e679e67ae67be67ce67de67ee67fe680e681e682e683e684e685e686e687e688e689e68ae68be68ce68de68ee68fe690e691e692e693e694e695e696e697e698e699e69ae69be69ce69de69ee69fe6a0e6a1e6a2e6a3e6a4e6a5e6a6e6a7e6a8e6a9e6aae6abe6ace6ade6aee6afe6b0e6b1e6b2e6b3e6b4e6b5e6b6e6b7e6b8e6b9e6bae6bbe6bce6bde6bee6bfe6c0e6c1e6c2e6c3e6c4e6c5e6c6e6c7e6c8e6c9e6cae6cbe6cce6cde6cee6cfe6d0e6d1e6d2e6d3e6d4e6d5e6d6e6d7e6d8e6d9e6dae6dbe6dce6dde6dee6dfe6e0e6e1e6e2e6e3e6e4e6e5e6e6e6e7e6e8e6e9e6eae6ebe6ece6ede6eee6efe6f0e6f1e6f2e6f3e6f4e6f5e6f6e6f7e6f8e6f9e6fae6fbe6fce6fde6fee6ffe600e701e702e703e704e705e706e707e708e709e70ae70be70ce70de70ee70fe710e711e712e713e714e715e716e717e718e719e71ae71be71ce71de71ee71fe720e721e722e723e724e725e726e727e728e729e72ae72be72ce72de72ee72fe730e731e732e733e734e735e736e737e738e739e73ae73be73ce73de73ee73fe740e741e742e743e744e745e746e747e748e749e74ae74be74ce74de74ee74fe750e751e752e753e754e755e756e757e758e759e75ae75be75ce75de75ee75fe760e761e762e763e764e765e766e767e768e769e76ae76be76ce76de76ee76fe770e771e772e773e774e775e776e777e778e779e77ae77be77ce77de77ee77fe780e781e782e783e784e785e786e787e788e789e78ae78be78ce78de78ee78fe790e791e792e793e794e795e796e797e798e799e79ae79be79ce79de79ee79fe7a0e7a1e7a2e7a3e7a4e7a5e7a6e7a7e7a8e7a9e7aae7abe7ace7ade7aee7afe7b0e7b1e7b2e7b3e7b4e7b5e7b6e7b7e7b8e7b9e7bae7bbe7bce7bde7bee7bfe7c0e7c1e7c2e7c3e7c4e7c5e7c6e7c7e7c8e7c9e7cae7cbe7cce7cde7cee7cfe7d0e7d1e7d2e7d3e7d4e7d5e7d6e7d7e7d8e7d9e7dae7dbe7dce7dde7dee7dfe7e0e7e1e7e2e7e3e7e4e7e5e7e6e7e7e7e8e7e9e7eae7ebe7ece7ede7eee7efe7f0e7f1e7f2e7f3e7f4e7f5e7f6e7f7e7f8e7f9e7fae7fbe7fce7fde7fee7ffe700e801e802e803e804e805e806e807e808e809e80ae80be80ce80de80ee80fe810e811e812e813e814e815e816e817e818e819e81ae81be81ce81de81ee81fe820e821e822e823e824e825e826e827e828e829e82ae82be82ce82de82ee82fe830e831e832e833e834e835e836e837e838e839e83ae83be83ce83de83ee83fe840e841e842e843e844e845e846e847e848e849e84ae84be84ce84de84ee84fe850e851e852e853e854e855e856e857e858e859e85ae85be85ce85de85ee85fe860e861e862e863e864e865e866e867e868e869e86ae86be86ce86de86ee86fe870e871e872e873e874e875e876e877e878e879e87ae87be87ce87de87ee87fe880e881e882e883e884e885e886e887e888e889e88ae88be88ce88de88ee88fe890e891e892e893e894e895e896e897e898e899e89ae89be89ce89de89ee89fe8a0e8a1e8a2e8a3e8a4e8a5e8a6e8a7e8a8e8a9e8aae8abe8ace8ade8aee8afe8b0e8b1e8b2e8b3e8b4e8b5e8b6e8b7e8b8e8b9e8bae8bbe8bce8bde8bee8bfe8c0e8c1e8c2e8c3e8c4e8c5e8c6e8c7e8c8e8c9e8cae8cbe8cce8cde8cee8cfe8d0e8d1e8d2e8d3e8d4e8d5e8d6e8d7e8d8e8d9e8dae8dbe8dce8dde8dee8dfe8e0e8e1e8e2e8e3e8e4e8e5e8e6e8e7e8e8e8e9e8eae8ebe8ece8ede8eee8efe8f0e8f1e8f2e8f3e8f4e8f5e8f6e8f7e8f8e8f9e8fae8fbe8fce8fde8fee8ffe800e901e902e903e904e905e906e907e908e909e90ae90be90ce90de90ee90fe910e911e912e913e914e915e916e917e918e919e91ae91be91ce91de91ee91fe920e921e922e923e924e925e926e927e928e929e92ae92be92ce92de92ee92fe930e931e932e933e934e935e936e937e938e939e93ae93be93ce93de93ee93fe940e941e942e943e944e945e946e947e948e949e94ae94be94ce94de94ee94fe950e951e952e953e954e955e956e957e958e959e95ae95be95ce95de95ee95fe960e961e962e963e964e965e966e967e968e969e96ae96be96ce96de96ee96fe970e971e972e973e974e975e976e977e978e979e97ae97be97ce97de97ee97fe980e981e982e983e984e985e986e987e988e989e98ae98be98ce98de98ee98fe990e991e992e993e994e995e996e997e998e999e99ae99be99ce99de99ee99fe9a0e9a1e9a2e9a3e9a4e9a5e9a6e9a7e9a8e9a9e9aae9abe9ace9ade9aee9afe9b0e9b1e9b2e9b3e9b4e9b5e9b6e9b7e9b8e9b9e9bae9bbe9bce9bde9bee9bfe9c0e9c1e9c2e9c3e9c4e9c5e9c6e9c7e9c8e9c9e9cae9cbe9cce9cde9cee9cfe9d0e9d1e9d2e9d3e9d4e9d5e9d6e9d7e9d8e9d9e9dae9dbe9dce9dde9dee9dfe9e0e9e1e9e2e9e3e9e4e9e5e9e6e9e7e9e8e9e9e9eae9ebe9ece9ede9eee9efe9f0e9f1e9f2e9f3e9f4e9f5e9f6e9f7e9f8e9f9e9fae9fbe9fce9fde9fee9ffe900ea01ea02ea03ea04ea05ea06ea07ea08ea09ea0aea0bea0cea0dea0eea0fea10ea11ea12ea13ea14ea15ea16ea17ea18ea19ea1aea1bea1cea1dea1eea1fea20ea21ea22ea23ea24ea25ea26ea27ea28ea29ea2aea2bea2cea2dea2eea2fea30ea31ea32ea33ea34ea35ea36ea37ea38ea39ea3aea3bea3cea3dea3eea3fea40ea41ea42ea43ea44ea45ea46ea47ea48ea49ea4aea4bea4cea4dea4eea4fea50ea51ea52ea53ea54ea55ea56ea57ea58ea59ea5aea5bea5cea5dea5eea5fea60ea61ea62ea63ea64ea65ea66ea67ea68ea69ea6aea6bea6cea6dea6eea6fea70ea71ea72ea73ea74ea75ea76ea77ea78ea79ea7aea7bea7cea7dea7eea7fea80ea81ea82ea83ea84ea85ea86ea87ea88ea89ea8aea8bea8cea8dea8eea8fea90ea91ea92ea93ea94ea95ea96ea97ea98ea99ea9aea9bea9cea9dea9eea9feaa0eaa1eaa2eaa3eaa4eaa5eaa6eaa7eaa8eaa9eaaaeaabeaaceaadeaaeeaafeab0eab1eab2eab3eab4eab5eab6eab7eab8eab9eabaeabbeabceabdeabeeabfeac0eac1eac2eac3eac4eac5eac6eac7eac8eac9eacaeacbeacceacdeaceeacfead0ead1ead2ead3ead4ead5ead6ead7ead8ead9eadaeadbeadceaddeadeeadfeae0eae1eae2eae3eae4eae5eae6eae7eae8eae9eaeaeaebeaeceaedeaeeeaefeaf0eaf1eaf2eaf3eaf4eaf5eaf6eaf7eaf8eaf9eafaeafbeafceafdeafeeaffea00eb01eb02eb03eb04eb05eb06eb07eb08eb09eb0aeb0beb0ceb0deb0eeb0feb10eb11eb12eb13eb14eb15eb16eb17eb18eb19eb1aeb1beb1ceb1deb1eeb1feb20eb21eb22eb23eb24eb25eb26eb27eb28eb29eb2aeb2beb2ceb2deb2eeb2feb30eb31eb32eb33eb34eb35eb36eb37eb38eb39eb3aeb3beb3ceb3deb3eeb3feb40eb41eb42eb43eb44eb45eb46eb47eb48eb49eb4aeb4beb4ceb4deb4eeb4feb50eb51eb52eb53eb54eb55eb56eb57eb58eb59eb5aeb5beb5ceb5deb5eeb5feb60eb61eb62eb63eb64eb65eb66eb67eb68eb69eb6aeb6beb6ceb6deb6eeb6feb70eb71eb72eb73eb74eb75eb76eb77eb78eb79eb7aeb7beb7ceb7deb7eeb7feb80eb81eb82eb83eb84eb85eb86eb87eb88eb89eb8aeb8beb8ceb8deb8eeb8feb90eb91eb92eb93eb94eb95eb96eb97eb98eb99eb9aeb9beb9ceb9deb9eeb9feba0eba1eba2eba3eba4eba5eba6eba7eba8eba9ebaaebabebacebadebaeebafebb0ebb1ebb2ebb3ebb4ebb5ebb6ebb7ebb8ebb9ebbaebbbebbcebbdebbeebbfebc0ebc1ebc2ebc3ebc4ebc5ebc6ebc7ebc8ebc9ebcaebcbebccebcdebceebcfebd0ebd1ebd2ebd3ebd4ebd5ebd6ebd7ebd8ebd9ebdaebdbebdcebddebdeebdfebe0ebe1ebe2ebe3ebe4ebe5ebe6ebe7ebe8ebe9ebeaebebebecebedebeeebefebf0ebf1ebf2ebf3ebf4ebf5ebf6ebf7ebf8ebf9ebfaebfbebfcebfdebfeebffeb00ec01ec02ec03ec04ec05ec06ec07ec08ec09ec0aec0bec0cec0dec0eec0fec10ec11ec12ec13ec14ec15ec16ec17ec18ec19ec1aec1bec1cec1dec1eec1fec20ec21ec22ec23ec24ec25ec26ec27ec28ec29ec2aec2bec2cec2dec2eec2fec30ec31ec32ec33ec34ec35ec36ec37ec38ec39ec3aec3bec3cec3dec3eec3fec40ec41ec42ec43ec44ec45ec46ec47ec48ec49ec4aec4bec4cec4dec4eec4fec50ec51ec52ec53ec54ec55ec56ec57ec58ec59ec5aec5bec5cec5dec5eec5fec60ec61ec62ec63ec64ec65ec66ec67ec68ec69ec6aec6bec6cec6dec6eec6fec70ec71ec72ec73ec74ec75ec76ec77ec78ec79ec7aec7bec7cec7dec7eec7fec80ec81ec82ec83ec84ec85ec86ec87ec88ec89ec8aec8bec8cec8dec8eec8fec90ec91ec92ec93ec94ec95ec96ec97ec98ec99ec9aec9bec9cec9dec9eec9feca0eca1eca2eca3eca4eca5eca6eca7eca8eca9ecaaecabecacecadecaeecafecb0ecb1ecb2ecb3ecb4ecb5ecb6ecb7ecb8ecb9ecbaecbbecbcecbdecbeecbfecc0ecc1ecc2ecc3ecc4ecc5ecc6ecc7ecc8ecc9eccaeccbeccceccdecceeccfecd0ecd1ecd2ecd3ecd4ecd5ecd6ecd7ecd8ecd9ecdaecdbecdcecddecdeecdfece0ece1ece2ece3ece4ece5ece6ece7ece8ece9eceaecebecececedeceeecefecf0ecf1ecf2ecf3ecf4ecf5ecf6ecf7ecf8ecf9ecfaecfbecfcecfdecfeecffec00ed01ed02ed03ed04ed05ed06ed07ed08ed09ed0aed0bed0ced0ded0eed0fed10ed11ed12ed13ed14ed15ed16ed17ed18ed19ed1aed1bed1ced1ded1eed1fed20ed21ed22ed23ed24ed25ed26ed27ed28ed29ed2aed2bed2ced2ded2eed2fed30ed31ed32ed33ed34ed35ed36ed37ed38ed39ed3aed3bed3ced3ded3eed3fed40ed41ed42ed43ed44ed45ed46ed47ed48ed49ed4aed4bed4ced4ded4eed4fed50ed51ed52ed53ed54ed55ed56ed57ed58ed59ed5aed5bed5ced5ded5eed5fed60ed61ed62ed63ed64ed65ed66ed67ed68ed69ed6aed6bed6ced6ded6eed6fed70ed71ed72ed73ed74ed75ed76ed77ed78ed79ed7aed7bed7ced7ded7eed7fed80ed81ed82ed83ed84ed85ed86ed87ed88ed89ed8aed8bed8ced8ded8eed8fed90ed91ed92ed93ed94ed95ed96ed97ed98ed99ed9aed9bed9ced9ded9eed9feda0eda1eda2eda3eda4eda5eda6eda7eda8eda9edaaedabedacedadedaeedafedb0edb1edb2edb3edb4edb5edb6edb7edb8edb9edbaedbbedbcedbdedbeedbfedc0edc1edc2edc3edc4edc5edc6edc7edc8edc9edcaedcbedccedcdedceedcfedd0edd1edd2edd3edd4edd5edd6edd7edd8edd9eddaeddbeddcedddeddeeddfede0ede1ede2ede3ede4ede5ede6ede7ede8ede9edeaedebedecedededeeedefedf0edf1edf2edf3edf4edf5edf6edf7edf8edf9edfaedfbedfcedfdedfeedffed00ee01ee02ee03ee04ee05ee06ee07ee08ee09ee0aee0bee0cee0dee0eee0fee10ee11ee12ee13ee14ee15ee16ee17ee18ee19ee1aee1bee1cee1dee1eee1fee20ee21ee22ee23ee24ee25ee26ee27ee28ee29ee2aee2bee2cee2dee2eee2fee30ee31ee32ee33ee34ee35ee36ee37ee38ee39ee3aee3bee3cee3dee3eee3fee40ee41ee42ee43ee44ee45ee46ee47ee48ee49ee4aee4bee4cee4dee4eee4fee50ee51ee52ee53ee54ee55ee56ee57ee58ee59ee5aee5bee5cee5dee5eee5fee60ee61ee62ee63ee64ee65ee66ee67ee68ee69ee6aee6bee6cee6dee6eee6fee70ee71ee72ee73ee74ee75ee76ee77ee78ee79ee7aee7bee7cee7dee7eee7fee80ee81ee82ee83ee84ee85ee86ee87ee88ee89ee8aee8bee8cee8dee8eee8fee90ee91ee92ee93ee94ee95ee96ee97ee98ee99ee9aee9bee9cee9dee9eee9feea0eea1eea2eea3eea4eea5eea6eea7eea8eea9eeaaeeabeeaceeadeeaeeeafeeb0eeb1eeb2eeb3eeb4eeb5eeb6eeb7eeb8eeb9eebaeebbeebceebdeebeeebfeec0eec1eec2eec3eec4eec5eec6eec7eec8eec9eecaeecbeecceecdeeceeecfeed0eed1eed2eed3eed4eed5eed6eed7eed8eed9eedaeedbeedceeddeedeeedfeee0eee1eee2eee3eee4eee5eee6eee7eee8eee9eeeaeeebeeeceeedeeeeeeefeef0eef1eef2eef3eef4eef5eef6eef7eef8eef9eefaeefbeefceefdeefeeeffee00ef01ef02ef03ef04ef05ef06ef07ef08ef09ef0aef0bef0cef0def0eef0fef10ef11ef12ef13ef14ef15ef16ef17ef18ef19ef1aef1bef1cef1def1eef1fef20ef21ef22ef23ef24ef25ef26ef27ef28ef29ef2aef2bef2cef2def2eef2fef30ef31ef32ef33ef34ef35ef36ef37ef38ef39ef3aef3bef3cef3def3eef3fef40ef41ef42ef43ef44ef45ef46ef47ef48ef49ef4aef4bef4cef4def4eef4fef50ef51ef52ef53ef54ef55ef56ef57ef58ef59ef5aef5bef5cef5def5eef5fef60ef61ef62ef63ef64ef65ef66ef67ef68ef69ef6aef6bef6cef6def6eef6fef70ef71ef72ef73ef74ef75ef76ef77ef78ef79ef7aef7bef7cef7def7eef7fef80ef81ef82ef83ef84ef85ef86ef87ef88ef89ef8aef8bef8cef8def8eef8fef90ef91ef92ef93ef94ef95ef96ef97ef98ef99ef9aef9bef9cef9def9eef9fefa0efa1efa2efa3efa4efa5efa6efa7efa8efa9efaaefabefacefadefaeefafefb0efb1efb2efb3efb4efb5efb6efb7efb8efb9efbaefbbefbcefbdefbeefbfefc0efc1efc2efc3efc4efc5efc6efc7efc8efc9efcaefcbefccefcdefceefcfefd0efd1efd2efd3efd4efd5efd6efd7efd8efd9efdaefdbefdcefddefdeefdfefe0efe1efe2efe3efe4efe5efe6efe7efe8efe9efeaefebefecefedefeeefefeff0eff1eff2eff3eff4eff5eff6eff7eff8eff9effaeffbeffceffdeffeefffef00f001f002f003f004f005f006f007f008f009f00af00bf00cf00df00ef00ff010f011f012f013f014f015f016f017f018f019f01af01bf01cf01df01ef01ff020f021f022f023f024f025f026f027f028f029f02af02bf02cf02df02ef02ff030f031f032f033f034f035f036f037f038f039f03af03bf03cf03df03ef03ff040f041f042f043f044f045f046f047f048f049f04af04bf04cf04df04ef04ff050f051f052f053f054f055f056f057f058f059f05af05bf05cf05df05ef05ff060f061f062f063f064f065f066f067f068f069f06af06bf06cf06df06ef06ff070f071f072f073f074f075f076f077f078f079f07af07bf07cf07df07ef07ff080f081f082f083f084f085f086f087f088f089f08af08bf08cf08df08ef08ff090f091f092f093f094f095f096f097f098f099f09af09bf09cf09df09ef09ff0a0f0a1f0a2f0a3f0a4f0a5f0a6f0a7f0a8f0a9f0aaf0abf0acf0adf0aef0aff0b0f0b1f0b2f0b3f0b4f0b5f0b6f0b7f0b8f0b9f0baf0bbf0bcf0bdf0bef0bff0c0f0c1f0c2f0c3f0c4f0c5f0c6f0c7f0c8f0c9f0caf0cbf0ccf0cdf0cef0cff0d0f0d1f0d2f0d3f0d4f0d5f0d6f0d7f0d8f0d9f0daf0dbf0dcf0ddf0def0dff0e0f0e1f0e2f0e3f0e4f0e5f0e6f0e7f0e8f0e9f0eaf0ebf0ecf0edf0eef0eff0f0f0f1f0f2f0f3f0f4f0f5f0f6f0f7f0f8f0f9f0faf0fbf0fcf0fdf0fef0fff000f101f102f103f104f105f106f107f108f109f10af10bf10cf10df10ef10ff110f111f112f113f114f115f116f117f118f119f11af11bf11cf11df11ef11ff120f121f122f123f124f125f126f127f128f129f12af12bf12cf12df12ef12ff130f131f132f133f134f135f136f137f138f139f13af13bf13cf13df13ef13ff140f141f142f143f144f145f146f147f148f149f14af14bf14cf14df14ef14ff150f151f152f153f154f155f156f157f158f159f15af15bf15cf15df15ef15ff160f161f162f163f164f165f166f167f168f169f16af16bf16cf16df16ef16ff170f171f172f173f174f175f176f177f178f179f17af17bf17cf17df17ef17ff180f181f182f183f184f185f186f187f188f189f18af18bf18cf18df18ef18ff190f191f192f193f194f195f196f197f198f199f19af19bf19cf19df19ef19ff1a0f1a1f1a2f1a3f1a4f1a5f1a6f1a7f1a8f1a9f1aaf1abf1acf1adf1aef1aff1b0f1b1f1b2f1b3f1b4f1b5f1b6f1b7f1b8f1b9f1baf1bbf1bcf1bdf1bef1bff1c0f1c1f1c2f1c3f1c4f1c5f1c6f1c7f1c8f1c9f1caf1cbf1ccf1cdf1cef1cff1d0f1d1f1d2f1d3f1d4f1d5f1d6f1d7f1d8f1d9f1daf1dbf1dcf1ddf1def1dff1e0f1e1f1e2f1e3f1e4f1e5f1e6f1e7f1e8f1e9f1eaf1ebf1ecf1edf1eef1eff1f0f1f1f1f2f1f3f1f4f1f5f1f6f1f7f1f8f1f9f1faf1fbf1fcf1fdf1fef1fff100f201f202f203f204f205f206f207f208f209f20af20bf20cf20df20ef20ff210f211f212f213f214f215f216f217f218f219f21af21bf21cf21df21ef21ff220f221f222f223f224f225f226f227f228f229f22af22bf22cf22df22ef22ff230f231f232f233f234f235f236f237f238f239f23af23bf23cf23df23ef23ff240f241f242f243f244f245f246f247f248f249f24af24bf24cf24df24ef24ff250f251f252f253f254f255f256f257f258f259f25af25bf25cf25df25ef25ff260f261f262f263f264f265f266f267f268f269f26af26bf26cf26df26ef26ff270f271f272f273f274f275f276f277f278f279f27af27bf27cf27df27ef27ff280f281f282f283f284f285f286f287f288f289f28af28bf28cf28df28ef28ff290f291f292f293f294f295f296f297f298f299f29af29bf29cf29df29ef29ff2a0f2a1f2a2f2a3f2a4f2a5f2a6f2a7f2a8f2a9f2aaf2abf2acf2adf2aef2aff2b0f2b1f2b2f2b3f2b4f2b5f2b6f2b7f2b8f2b9f2baf2bbf2bcf2bdf2bef2bff2c0f2c1f2c2f2c3f2c4f2c5f2c6f2c7f2c8f2c9f2caf2cbf2ccf2cdf2cef2cff2d0f2d1f2d2f2d3f2d4f2d5f2d6f2d7f2d8f2d9f2daf2dbf2dcf2ddf2def2dff2e0f2e1f2e2f2e3f2e4f2e5f2e6f2e7f2e8f2e9f2eaf2ebf2ecf2edf2eef2eff2f0f2f1f2f2f2f3f2f4f2f5f2f6f2f7f2f8f2f9f2faf2fbf2fcf2fdf2fef2fff200f301f302f303f304f305f306f307f308f309f30af30bf30cf30df30ef30ff310f311f312f313f314f315f316f317f318f319f31af31bf31cf31df31ef31ff320f321f322f323f324f325f326f327f328f329f32af32bf32cf32df32ef32ff330f331f332f333f334f335f336f337f338f339f33af33bf33cf33df33ef33ff340f341f342f343f344f345f346f347f348f349f34af34bf34cf34df34ef34ff350f351f352f353f354f355f356f357f358f359f35af35bf35cf35df35ef35ff360f361f362f363f364f365f366f367f368f369f36af36bf36cf36df36ef36ff370f371f372f373f374f375f376f377f378f379f37af37bf37cf37df37ef37ff380f381f382f383f384f385f386f387f388f389f38af38bf38cf38df38ef38ff390f391f392f393f394f395f396f397f398f399f39af39bf39cf39df39ef39ff3a0f3a1f3a2f3a3f3a4f3a5f3a6f3a7f3a8f3a9f3aaf3abf3acf3adf3aef3aff3b0f3b1f3b2f3b3f3b4f3b5f3b6f3b7f3b8f3b9f3baf3bbf3bcf3bdf3bef3bff3c0f3c1f3c2f3c3f3c4f3c5f3c6f3c7f3c8f3c9f3caf3cbf3ccf3cdf3cef3cff3d0f3d1f3d2f3d3f3d4f3d5f3d6f3d7f3d8f3d9f3daf3dbf3dcf3ddf3def3dff3e0f3e1f3e2f3e3f3e4f3e5f3e6f3e7f3e8f3e9f3eaf3ebf3ecf3edf3eef3eff3f0f3f1f3f2f3f3f3f4f3f5f3f6f3f7f3f8f3f9f3faf3fbf3fcf3fdf3fef3fff300f401f402f403f404f405f406f407f408f409f40af40bf40cf40df40ef40ff410f411f412f413f414f415f416f417f418f419f41af41bf41cf41df41ef41ff420f421f422f423f424f425f426f427f428f429f42af42bf42cf42df42ef42ff430f431f432f433f434f435f436f437f438f439f43af43bf43cf43df43ef43ff440f441f442f443f444f445f446f447f448f449f44af44bf44cf44df44ef44ff450f451f452f453f454f455f456f457f458f459f45af45bf45cf45df45ef45ff460f461f462f463f464f465f466f467f468f469f46af46bf46cf46df46ef46ff470f471f472f473f474f475f476f477f478f479f47af47bf47cf47df47ef47ff480f481f482f483f484f485f486f487f488f489f48af48bf48cf48df48ef48ff490f491f492f493f494f495f496f497f498f499f49af49bf49cf49df49ef49ff4a0f4a1f4a2f4a3f4a4f4a5f4a6f4a7f4a8f4a9f4aaf4abf4acf4adf4aef4aff4b0f4b1f4b2f4b3f4b4f4b5f4b6f4b7f4b8f4b9f4baf4bbf4bcf4bdf4bef4bff4c0f4c1f4c2f4c3f4c4f4c5f4c6f4c7f4c8f4c9f4caf4cbf4ccf4cdf4cef4cff4d0f4d1f4d2f4d3f4d4f4d5f4d6f4d7f4d8f4d9f4daf4dbf4dcf4ddf4def4dff4e0f4e1f4e2f4e3f4e4f4e5f4e6f4e7f4e8f4e9f4eaf4ebf4ecf4edf4eef4eff4f0f4f1f4f2f4f3f4f4f4f5f4f6f4f7f4f8f4f9f4faf4fbf4fcf4fdf4fef4fff400f501f502f503f504f505f506f507f508f509f50af50bf50cf50df50ef50ff510f511f512f513f514f515f516f517f518f519f51af51bf51cf51df51ef51ff520f521f522f523f524f525f526f527f528f529f52af52bf52cf52df52ef52ff530f531f532f533f534f535f536f537f538f539f53af53bf53cf53df53ef53ff540f541f542f543f544f545f546f547f548f549f54af54bf54cf54df54ef54ff550f551f552f553f554f555f556f557f558f559f55af55bf55cf55df55ef55ff560f561f562f563f564f565f566f567f568f569f56af56bf56cf56df56ef56ff570f571f572f573f574f575f576f577f578f579f57af57bf57cf57df57ef57ff580f581f582f583f584f585f586f587f588f589f58af58bf58cf58df58ef58ff590f591f592f593f594f595f596f597f598f599f59af59bf59cf59df59ef59ff5a0f5a1f5a2f5a3f5a4f5a5f5a6f5a7f5a8f5a9f5aaf5abf5acf5adf5aef5aff5b0f5b1f5b2f5b3f5b4f5b5f5b6f5b7f5b8f5b9f5baf5bbf5bcf5bdf5bef5bff5c0f5c1f5c2f5c3f5c4f5c5f5c6f5c7f5c8f5c9f5caf5cbf5ccf5cdf5cef5cff5d0f5d1f5d2f5d3f5d4f5d5f5d6f5d7f5d8f5d9f5daf5dbf5dcf5ddf5def5dff5e0f5e1f5e2f5e3f5e4f5e5f5e6f5e7f5e8f5e9f5eaf5ebf5ecf5edf5eef5eff5f0f5f1f5f2f5f3f5f4f5f5f5f6f5f7f5f8f5f9f5faf5fbf5fcf5fdf5fef5fff500f601f602f603f604f605f606f607f608f609f60af60bf60cf60df60ef60ff610f611f612f613f614f615f616f617f618f619f61af61bf61cf61df61ef61ff620f621f622f623f624f625f626f627f628f629f62af62bf62cf62df62ef62ff630f631f632f633f634f635f636f637f638f639f63af63bf63cf63df63ef63ff640f641f642f643f644f645f646f647f648f649f64af64bf64cf64df64ef64ff650f651f652f653f654f655f656f657f658f659f65af65bf65cf65df65ef65ff660f661f662f663f664f665f666f667f668f669f66af66bf66cf66df66ef66ff670f671f672f673f674f675f676f677f678f679f67af67bf67cf67df67ef67ff680f681f682f683f684f685f686f687f688f689f68af68bf68cf68df68ef68ff690f691f692f693f694f695f696f697f698f699f69af69bf69cf69df69ef69ff6a0f6a1f6a2f6a3f6a4f6a5f6a6f6a7f6a8f6a9f6aaf6abf6acf6adf6aef6aff6b0f6b1f6b2f6b3f6b4f6b5f6b6f6b7f6b8f6b9f6baf6bbf6bcf6bdf6bef6bff6c0f6c1f6c2f6c3f6c4f6c5f6c6f6c7f6c8f6c9f6caf6cbf6ccf6cdf6cef6cff6d0f6d1f6d2f6d3f6d4f6d5f6d6f6d7f6d8f6d9f6daf6dbf6dcf6ddf6def6dff6e0f6e1f6e2f6e3f6e4f6e5f6e6f6e7f6e8f6e9f6eaf6ebf6ecf6edf6eef6eff6f0f6f1f6f2f6f3f6f4f6f5f6f6f6f7f6f8f6f9f6faf6fbf6fcf6fdf6fef6fff600f701f702f703f704f705f706f707f708f709f70af70bf70cf70df70ef70ff710f711f712f713f714f715f716f717f718f719f71af71bf71cf71df71ef71ff720f721f722f723f724f725f726f727f728f729f72af72bf72cf72df72ef72ff730f731f732f733f734f735f736f737f738f739f73af73bf73cf73df73ef73ff740f741f742f743f744f745f746f747f748f749f74af74bf74cf74df74ef74ff750f751f752f753f754f755f756f757f758f759f75af75bf75cf75df75ef75ff760f761f762f763f764f765f766f767f768f769f76af76bf76cf76df76ef76ff770f771f772f773f774f775f776f777f778f779f77af77bf77cf77df77ef77ff780f781f782f783f784f785f786f787f788f789f78af78bf78cf78df78ef78ff790f791f792f793f794f795f796f797f798f799f79af79bf79cf79df79ef79ff7a0f7a1f7a2f7a3f7a4f7a5f7a6f7a7f7a8f7a9f7aaf7abf7acf7adf7aef7aff7b0f7b1f7b2f7b3f7b4f7b5f7b6f7b7f7b8f7b9f7baf7bbf7bcf7bdf7bef7bff7c0f7c1f7c2f7c3f7c4f7c5f7c6f7c7f7c8f7c9f7caf7cbf7ccf7cdf7cef7cff7d0f7d1f7d2f7d3f7d4f7d5f7d6f7d7f7d8f7d9f7daf7dbf7dcf7ddf7def7dff7e0f7e1f7e2f7e3f7e4f7e5f7e6f7e7f7e8f7e9f7eaf7ebf7ecf7edf7eef7eff7f0f7f1f7f2f7f3f7f4f7f5f7f6f7f7f7f8f7f9f7faf7fbf7fcf7fdf7fef7fff700f801f802f803f804f805f806f807f808f809f80af80bf80cf80df80ef80ff810f811f812f813f814f815f816f817f818f819f81af81bf81cf81df81ef81ff820f821f822f823f824f825f826f827f828f829f82af82bf82cf82df82ef82ff830f831f832f833f834f835f836f837f838f839f83af83bf83cf83df83ef83ff840f841f842f843f844f845f846f847f848f849f84af84bf84cf84df84ef84ff850f851f852f853f854f855f856f857f858f859f85af85bf85cf85df85ef85ff860f861f862f863f864f865f866f867f868f869f86af86bf86cf86df86ef86ff870f871f872f873f874f875f876f877f878f879f87af87bf87cf87df87ef87ff880f881f882f883f884f885f886f887f888f889f88af88bf88cf88df88ef88ff890f891f892f893f894f895f896f897f898f899f89af89bf89cf89df89ef89ff8a0f8a1f8a2f8a3f8a4f8a5f8a6f8a7f8a8f8a9f8aaf8abf8acf8adf8aef8aff8b0f8b1f8b2f8b3f8b4f8b5f8b6f8b7f8b8f8b9f8baf8bbf8bcf8bdf8bef8bff8c0f8c1f8c2f8c3f8c4f8c5f8c6f8c7f8c8f8c9f8caf8cbf8ccf8cdf8cef8cff8d0f8d1f8d2f8d3f8d4f8d5f8d6f8d7f8d8f8d9f8daf8dbf8dcf8ddf8def8dff8e0f8e1f8e2f8e3f8e4f8e5f8e6f8e7f8e8f8e9f8eaf8ebf8ecf8edf8eef8eff8f0f8f1f8f2f8f3f8f4f8f5f8f6f8f7f8f8f8f9f8faf8fbf8fcf8fdf8fef8fff800f901f902f903f904f905f906f907f908f909f90af90bf90cf90df90ef90ff910f911f912f913f914f915f916f917f918f919f91af91bf91cf91df91ef91ff920f921f922f923f924f925f926f927f928f929f92af92bf92cf92df92ef92ff930f931f932f933f934f935f936f937f938f939f93af93bf93cf93df93ef93ff940f941f942f943f944f945f946f947f948f949f94af94bf94cf94df94ef94ff950f951f952f953f954f955f956f957f958f959f95af95bf95cf95df95ef95ff960f961f962f963f964f965f966f967f968f969f96af96bf96cf96df96ef96ff970f971f972f973f974f975f976f977f978f979f97af97bf97cf97df97ef97ff980f981f982f983f984f985f986f987f988f989f98af98bf98cf98df98ef98ff990f991f992f993f994f995f996f997f998f999f99af99bf99cf99df99ef99ff9a0f9a1f9a2f9a3f9a4f9a5f9a6f9a7f9a8f9a9f9aaf9abf9acf9adf9aef9aff9b0f9b1f9b2f9b3f9b4f9b5f9b6f9b7f9b8f9b9f9baf9bbf9bcf9bdf9bef9bff9c0f9c1f9c2f9c3f9c4f9c5f9c6f9c7f9c8f9c9f9caf9cbf9ccf9cdf9cef9cff9d0f9d1f9d2f9d3f9d4f9d5f9d6f9d7f9d8f9d9f9daf9dbf9dcf9ddf9def9dff9e0f9e1f9e2f9e3f9e4f9e5f9e6f9e7f9e8f9e9f9eaf9ebf9ecf9edf9eef9eff9f0f9f1f9f2f9f3f9f4f9f5f9f6f9f7f9f8f9f9f9faf9fbf9fcf9fdf9fef9fff900fa01fa02fa03fa04fa05fa06fa07fa08fa09fa0afa0bfa0cfa0dfa0efa0ffa10fa11fa12fa13fa14fa15fa16fa17fa18fa19fa1afa1bfa1cfa1dfa1efa1ffa20fa21fa22fa23fa24fa25fa26fa27fa28fa29fa2afa2bfa2cfa2dfa2efa2ffa30fa31fa32fa33fa34fa35fa36fa37fa38fa39fa3afa3bfa3cfa3dfa3efa3ffa40fa41fa42fa43fa44fa45fa46fa47fa48fa49fa4afa4bfa4cfa4dfa4efa4ffa50fa51fa52fa53fa54fa55fa56fa57fa58fa59fa5afa5bfa5cfa5dfa5efa5ffa60fa61fa62fa63fa64fa65fa66fa67fa68fa69fa6afa6bfa6cfa6dfa6efa6ffa70fa71fa72fa73fa74fa75fa76fa77fa78fa79fa7afa7bfa7cfa7dfa7efa7ffa80fa81fa82fa83fa84fa85fa86fa87fa88fa89fa8afa8bfa8cfa8dfa8efa8ffa90fa91fa92fa93fa94fa95fa96fa97fa98fa99fa9afa9bfa9cfa9dfa9efa9ffaa0faa1faa2faa3faa4faa5faa6faa7faa8faa9faaafaabfaacfaadfaaefaaffab0fab1fab2fab3fab4fab5fab6fab7fab8fab9fabafabbfabcfabdfabefabffac0fac1fac2fac3fac4fac5fac6fac7fac8fac9facafacbfaccfacdfacefacffad0fad1fad2fad3fad4fad5fad6fad7fad8fad9fadafadbfadcfaddfadefadffae0fae1fae2fae3fae4fae5fae6fae7fae8fae9faeafaebfaecfaedfaeefaeffaf0faf1faf2faf3faf4faf5faf6faf7faf8faf9fafafafbfafcfafdfafefafffa00fb01fb02fb03fb04fb05fb06fb07fb08fb09fb0afb0bfb0cfb0dfb0efb0ffb10fb11fb12fb13fb14fb15fb16fb17fb18fb19fb1afb1bfb1cfb1dfb1efb1ffb20fb21fb22fb23fb24fb25fb26fb27fb28fb29fb2afb2bfb2cfb2dfb2efb2ffb30fb31fb32fb33fb34fb35fb36fb37fb38fb39fb3afb3bfb3cfb3dfb3efb3ffb40fb41fb42fb43fb44fb45fb46fb47fb48fb49fb4afb4bfb4cfb4dfb4efb4ffb50fb51fb52fb53fb54fb55fb56fb57fb58fb59fb5afb5bfb5cfb5dfb5efb5ffb60fb61fb62fb63fb64fb65fb66fb67fb68fb69fb6afb6bfb6cfb6dfb6efb6ffb70fb71fb72fb73fb74fb75fb76fb77fb78fb79fb7afb7bfb7cfb7dfb7efb7ffb80fb81fb82fb83fb84fb85fb86fb87fb88fb89fb8afb8bfb8cfb8dfb8efb8ffb90fb91fb92fb93fb94fb95fb96fb97fb98fb99fb9afb9bfb9cfb9dfb9efb9ffba0fba1fba2fba3fba4fba5fba6fba7fba8fba9fbaafbabfbacfbadfbaefbaffbb0fbb1fbb2fbb3fbb4fbb5fbb6fbb7fbb8fbb9fbbafbbbfbbcfbbdfbbefbbffbc0fbc1fbc2fbc3fbc4fbc5fbc6fbc7fbc8fbc9fbcafbcbfbccfbcdfbcefbcffbd0fbd1fbd2fbd3fbd4fbd5fbd6fbd7fbd8fbd9fbdafbdbfbdcfbddfbdefbdffbe0fbe1fbe2fbe3fbe4fbe5fbe6fbe7fbe8fbe9fbeafbebfbecfbedfbeefbeffbf0fbf1fbf2fbf3fbf4fbf5fbf6fbf7fbf8fbf9fbfafbfbfbfcfbfdfbfefbfffb00fc01fc02fc03fc04fc05fc06fc07fc08fc09fc0afc0bfc0cfc0dfc0efc0ffc10fc11fc12fc13fc14fc15fc16fc17fc18fc19fc1afc1bfc1cfc1dfc1efc1ffc20fc21fc22fc23fc24fc25fc26fc27fc28fc29fc2afc2bfc2cfc2dfc2efc2ffc30fc31fc32fc33fc34fc35fc36fc37fc38fc39fc3afc3bfc3cfc3dfc3efc3ffc40fc41fc42fc43fc44fc45fc46fc47fc48fc49fc4afc4bfc4cfc4dfc4efc4ffc50fc51fc52fc53fc54fc55fc56fc57fc58fc59fc5afc5bfc5cfc5dfc5efc5ffc60fc61fc62fc63fc64fc65fc66fc67fc68fc69fc6afc6bfc6cfc6dfc6efc6ffc70fc71fc72fc73fc74fc75fc76fc77fc78fc79fc7afc7bfc7cfc7dfc7efc7ffc80fc81fc82fc83fc84fc85fc86fc87fc88fc89fc8afc8bfc8cfc8dfc8efc8ffc90fc91fc92fc93fc94fc95fc96fc97fc98fc99fc9afc9bfc9cfc9dfc9efc9ffca0fca1fca2fca3fca4fca5fca6fca7fca8fca9fcaafcabfcacfcadfcaefcaffcb0fcb1fcb2fcb3fcb4fcb5fcb6fcb7fcb8fcb9fcbafcbbfcbcfcbdfcbefcbffcc0fcc1fcc2fcc3fcc4fcc5fcc6fcc7fcc8fcc9fccafccbfcccfccdfccefccffcd0fcd1fcd2fcd3fcd4fcd5fcd6fcd7fcd8fcd9fcdafcdbfcdcfcddfcdefcdffce0fce1fce2fce3fce4fce5fce6fce7fce8fce9fceafcebfcecfcedfceefceffcf0fcf1fcf2fcf3fcf4fcf5fcf6fcf7fcf8fcf9fcfafcfbfcfcfcfdfcfefcfffc00fd01fd02fd03fd04fd05fd06fd07fd08fd09fd0afd0bfd0cfd0dfd0efd0ffd10fd11fd12fd13fd14fd15fd16fd17fd18fd19fd1afd1bfd1cfd1dfd1efd1ffd20fd21fd22fd23fd24fd25fd26fd27fd28fd29fd2afd2bfd2cfd2dfd2efd2ffd30fd31fd32fd33fd34fd35fd36fd37fd38fd39fd3afd3bfd3cfd3dfd3efd3ffd40fd41fd42fd43fd44fd45fd46fd47fd48fd49fd4afd4bfd4cfd4dfd4efd4ffd50fd51fd52fd53fd54fd55fd56fd57fd58fd59fd5afd5bfd5cfd5dfd5efd5ffd60fd61fd62fd63fd64fd65fd66fd67fd68fd69fd6afd6bfd6cfd6dfd6efd6ffd70fd71fd72fd73fd74fd75fd76fd77fd78fd79fd7afd7bfd7cfd7dfd7efd7ffd80fd81fd82fd83fd84fd85fd86fd87fd88fd89fd8afd8bfd8cfd8dfd8efd8ffd90fd91fd92fd93fd94fd95fd96fd97fd98fd99fd9afd9bfd9cfd9dfd9efd9ffda0fda1fda2fda3fda4fda5fda6fda7fda8fda9fdaafdabfdacfdadfdaefdaffdb0fdb1fdb2fdb3fdb4fdb5fdb6fdb7fdb8fdb9fdbafdbbfdbcfdbdfdbefdbffdc0fdc1fdc2fdc3fdc4fdc5fdc6fdc7fdc8fdc9fdcafdcbfdccfdcdfdcefdcffdd0fdd1fdd2fdd3fdd4fdd5fdd6fdd7fdd8fdd9fddafddbfddcfdddfddefddffde0fde1fde2fde3fde4fde5fde6fde7fde8fde9fdeafdebfdecfdedfdeefdeffdf0fdf1fdf2fdf3fdf4fdf5fdf6fdf7fdf8fdf9fdfafdfbfdfcfdfdfdfefdfffd00fe01fe02fe03fe04fe05fe06fe07fe08fe09fe0afe0bfe0cfe0dfe0efe0ffe10fe11fe12fe13fe14fe15fe16fe17fe18fe19fe1afe1bfe1cfe1dfe1efe1ffe20fe21fe22fe23fe24fe25fe26fe27fe28fe29fe2afe2bfe2cfe2dfe2efe2ffe30fe31fe32fe33fe34fe35fe36fe37fe38fe39fe3afe3bfe3cfe3dfe3efe3ffe40fe41fe42fe43fe44fe45fe46fe47fe48fe49fe4afe4bfe4cfe4dfe4efe4ffe50fe51fe52fe53fe54fe55fe56fe57fe58fe59fe5afe5bfe5cfe5dfe5efe5ffe60fe61fe62fe63fe64fe65fe66fe67fe68fe69fe6afe6bfe6cfe6dfe6efe6ffe70fe71fe72fe73fe74fe75fe76fe77fe78fe79fe7afe7bfe7cfe7dfe7efe7ffe80fe81fe82fe83fe84fe85fe86fe87fe88fe89fe8afe8bfe8cfe8dfe8efe8ffe90fe91fe92fe93fe94fe95fe96fe97fe98fe99fe9afe9bfe9cfe9dfe9efe9ffea0fea1fea2fea3fea4fea5fea6fea7fea8fea9feaafeabfeacfeadfeaefeaffeb0feb1feb2feb3feb4feb5feb6feb7feb8feb9febafebbfebcfebdfebefebffec0fec1fec2fec3fec4fec5fec6fec7fec8fec9fecafecbfeccfecdfecefecffed0fed1fed2fed3fed4fed5fed6fed7fed8fed9fedafedbfedcfeddfedefedffee0fee1fee2fee3fee4fee5fee6fee7fee8fee9feeafeebfeecfeedfeeefeeffef0fef1fef2fef3fef4fef5fef6fef7fef8fef9fefafefbfefcfefdfefefefffe00ff01ff02ff03ff04ff05ff06ff07ff08ff09ff0aff0bff0cff0dff0eff0fff10ff11ff12ff13ff14ff15ff16ff17ff18ff19ff1aff1bff1cff1dff1eff1fff20ff21ff22ff23ff24ff25ff26ff27ff28ff29ff2aff2bff2cff2dff2eff2fff30ff31ff32ff33ff34ff35ff36ff37ff38ff39ff3aff3bff3cff3dff3eff3fff40ff21ff22ff23ff24ff25ff26ff27ff28ff29ff2aff2bff2cff2dff2eff2fff30ff31ff32ff33ff34ff35ff36ff37ff38ff39ff3aff5bff5cff5dff5eff5fff60ff61ff62ff63ff64ff65ff66ff67ff68ff69ff6aff6bff6cff6dff6eff6fff70ff71ff72ff73ff74ff75ff76ff77ff78ff79ff7aff7bff7cff7dff7eff7fff80ff81ff82ff83ff84ff85ff86ff87ff88ff89ff8aff8bff8cff8dff8eff8fff90ff91ff92ff93ff94ff95ff96ff97ff98ff99ff9aff9bff9cff9dff9eff9fffa0ffa1ffa2ffa3ffa4ffa5ffa6ffa7ffa8ffa9ffaaffabffacffadffaeffafffb0ffb1ffb2ffb3ffb4ffb5ffb6ffb7ffb8ffb9ffbaffbbffbcffbdffbeffbfffc0ffc1ffc2ffc3ffc4ffc5ffc6ffc7ffc8ffc9ffcaffcbffccffcdffceffcfffd0ffd1ffd2ffd3ffd4ffd5ffd6ffd7ffd8ffd9ffdaffdbffdcffddffdeffdfffe0ffe1ffe2ffe3ffe4ffe5ffe6ffe7ffe8ffe9ffeaffebffecffedffeeffeffff0fff1fff2fff3fff4fff5fff6fff7fff8fff9fffafffbfffcfffdfffeffffff", 0x20000, 0x88000}, {&(0x7f0000045700)="46494c453000050000000000000000000100010040000100a0010000000800000000000000000000040000000000000008000000000000000000000000000000100000006000000000001800000000004800000018000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000300000006800000000001800000002004a00000018000100050000000000050080052e00c88dd60180052e00c88dd60180052e00c88dd60180052e00c88dd60100d800000000000000d80000000000000600000000000000040324004d00460054000000000000008000000048000000010040000000010000000000000000004a000000000000004000000000000000005802000000000000300200000000000030020000000000114b080000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000000008000000000000100000000000000010000000000000001101040000000000ffffffff00000000", 0x1a0, 0xff800}, {&(0x7f0000045900)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0xff9e0}, {&(0x7f0000045a00)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0xffbe0}, {&(0x7f0000045b00)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0xffde0}, {&(0x7f0000045c00)="000000000000000000000000000000000000000000000000000000000000080046494c4530000500000000000000000001000100400001006001000000080000000000000000000003000000010000000200000000000000000000000000000010000000600000000000180000000000480000001800000080052e00c88dd60180052e00c88dd60180052e00c88dd60180052e00c88dd60106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050080052e00c88dd60180052e00c88dd60180052e00c88dd60180052e00c88dd601002000000000000000200000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000030000000000000040000000000000000020000000000000002000000000000000200000000000002104ff0100000000ffffffff00000000", 0x180, 0xfffe0}, {&(0x7f0000045e00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1001e0}, {&(0x7f0000045f00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1003e0}, {&(0x7f0000046000)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1005e0}, {&(0x7f0000046100)="000000000000000000000000000000000000000000000000000000000000020046494c4530000500000000000000000002000100400001006001000000080000000000000000000003000000020000000200000000000000000000000000000010000000600000000000180000000000480000001800000080052e00c88dd60180052e00c88dd60180052e00c88dd60180052e00c88dd60106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050080052e00c88dd60180052e00c88dd60180052e00c88dd60180052e00c88dd601000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000007f0000000000000040000000000000000000040000000000000004000000000000000400000000002280000302000000ffffffff00000000", 0x180, 0x1007e0}, {&(0x7f0000046300)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1009e0}, {&(0x7f0000046400)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x100be0}, {&(0x7f0000046500)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x100de0}, {&(0x7f0000046600)="000000000000000000000000000000000000000000000000000000000000020046494c453000050000000000000000000300010040000100e801000000080000000000000000000006000000030000000200000000000000000000000000000010000000480000000000180000000000300000001800000080052e00c88dd60180052e00c88dd60180052e00c88dd60180052e00c88dd60106000000000000000000000000000000300000006800000000001800000001005000000018000100050000000000050080052e00c88dd60180052e00c88dd60180052e00c88dd60180052e00c88dd6010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff00000000000000000000000000000000000000000000000000000200", 0x220, 0x100fe0}, {&(0x7f0000046900)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1013e0}, {&(0x7f0000046a00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1015e0}, {&(0x7f0000046b00)="0000000000000000000000000000000000000000000000000000000000000200ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x40020, 0x1017e0}, {&(0x7f0000086c00)="eb52904e5446532020202000080100000000000000f8000000000000000000000000000080008000ff030000000000000800000000000000ff010000000000000100000002000000a3b8b20fcf7aa836000000000e1fbe717cac22c0740b56b40ebb0700cd105eebf032e4cd16cd19ebfe54686973206973206e6f74206120626f6f7461626c65206469736b2e20506c6561736520696e73657274206120626f6f7461626c6520666c6f70707920616e640d0a707265737320616e79206b657920746f2074727920616761696e202e2e2e200d0a00"/224, 0xe0, 0x1ff800}, {&(0x7f0000086d00)="00000000000000000000000000000000000000000000000000000000000055aa", 0x20, 0x1ff9e0}], 0x0, &(0x7f0000086e00)) 02:15:45 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) socket$inet6(0xa, 0x80003, 0x6e) r1 = openat$hwrng(0xffffffffffffff9c, &(0x7f0000000080), 0x435000, 0x0) sendmsg$DEVLINK_CMD_TRAP_GROUP_SET(r1, &(0x7f00000002c0)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f0000000280)={&(0x7f0000000100)={0x158, 0x0, 0x8, 0x70bd26, 0x25dfdbfd, {}, [{@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5}}]}, 0x158}, 0x1, 0x0, 0x0, 0x4044000}, 0x20040001) open(&(0x7f0000000300)='./file0\x00', 0x161801, 0x80) r2 = socket$nl_generic(0x10, 0x3, 0x10) r3 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r4 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r4, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r2, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r3, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r5}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) 02:15:45 executing program 1: connect$inet6(0xffffffffffffffff, &(0x7f00000000c0)={0xa, 0x0, 0x0, @loopback}, 0x1c) setsockopt$inet6_IPV6_XFRM_POLICY(0xffffffffffffffff, 0x29, 0x23, &(0x7f0000000680)={{{@in6=@initdev={0xfe, 0x88, '\x00', 0x1, 0x0}, @in6=@mcast2, 0x4e21, 0x0, 0x0, 0x0, 0xa}, {0x0, 0x0, 0x400, 0x80000000}, {0x8001}, 0x0, 0x0, 0x1, 0x0, 0x0, 0x2}, {{@in6=@rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', 0x4d3, 0x3c}, 0x0, @in=@dev={0xac, 0x14, 0x14, 0x1}, 0x0, 0x0, 0x0, 0x24}}, 0xe8) sendmmsg(0xffffffffffffffff, &(0x7f0000000480), 0x2e9, 0x1f4) socketpair$unix(0x1, 0x2, 0x0, &(0x7f00000000c0)={0xffffffffffffffff}) sendmmsg(0xffffffffffffffff, &(0x7f0000000480), 0x2e9, 0x1f4) connect$inet6(0xffffffffffffffff, &(0x7f0000000000)={0xa, 0x4e21, 0x20, @local, 0x9}, 0x1c) close(r0) r1 = socket(0x200000100000011, 0x3, 0x5) ioctl$sock_SIOCGIFINDEX(r0, 0x8933, &(0x7f0000000140)={'veth1\x00', 0x0}) bind$packet(r1, &(0x7f0000000200)={0x11, 0x0, r2, 0x1, 0x0, 0x6, @local}, 0x14) mkdir(&(0x7f0000000140)='./file0\x00', 0x197) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) clone(0x1000000, &(0x7f0000000380)="bb662a7102fa7e07ef7561bb3b26835687ae8b795cc76dd76a2d1097b10d9576a468", &(0x7f00000003c0), &(0x7f0000000400), &(0x7f0000000440)="149cffdee7c483094b5c91c29ebe3ce018778d5ec6e9c563024a98e0a9244b1403507d60babf27465827711377d0eabcfeba") exit_group(0x0) socket(0x25, 0x3, 0x8) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) gettid() mount(&(0x7f0000000480)=ANY=[@ANYBLOB="3a4cd69db207fece15140dec41e7bcf1e230def3a51d7a65090f4521ee11a5af32546b1156a553ef62dff37d6503cac61a7d1623f1c3d426ea98949e43c89f8fde013646ce47cbd33c4b6f6aa344265c0576bc28dd0d3adfdc2543829aefee90a93e2bf44b5252b4db187c729458ecc17498a33d52f75c3b616398fd49d97c13f1de4332387155cce4016f6364c39b03203639bf6e1ef010222d78de8784fc19437a871eafd5d84dddeb4acf883a29df20d3874e8796ce59844210092e00f3993f1da3ed2a8e0000177b27ebfc57f075f2ad3a070f71aae561ea9f48b2e6e63380aabd5ac189f64b5e82a35e459ea347798f92342afdf5ade298400a384468ee26102046a2c781efb3487c4a939e0efb6afafa976b5d23b8136b0611035c04206803699677bca75372c7bbd4e44f589bfba2af01b4056d996d366996b8d465c71fc4aed919da45499567e0786c57d2e3653797e9b13c86a3789b2fdf54fd37214fcef32de3f5b9f6ac25344f582d5c2d9f1d0f8a332e25a3497c5d1236987b0c5955ed05caadbb4b0e101141853cf717b98d9c3785f10d80c4e088bcf4804df486a95ae47c70d5fc1ba28e5a5fd8e7aa1b06f859480bc50e0ddbfa550f6cae7d3e9ee1a8b389368c0d2558f0e0814bc852596bf573c58f6fbeab456cc4a1832a09e443d8c88035ad10782ab506cea3bff37aa398ac5cb2420270719a52"], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) 02:15:45 executing program 3: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) exit_group(0x80000001) clock_gettime(0x0, 0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x12, 0x0, @thr={&(0x7f00000004c0)="dc58f5ca47458e73f54a60fdf06c8ea136cdebc0e531eda607aa9970657eb326b635567983f6390be1864419f011bd43", &(0x7f0000000540)="872aa7653d79b32a26040c0aa08fcb53d6a58301cdcb6f728fc9ccfcfb66b1790a7ff5747f3e1b169b523b2d9f7be7aa0d5e13295200107c81d75e335b6cafc5bebda5c8a8966e8b76ffae24c15cc127753242bd370b8fe6aa898abdd8cebef0f675d0ea24a1931a8116dc37f31c3538135178533e9031abe6a553c5f672b0e18de329f9"}}, &(0x7f00000003c0)) mkdir(&(0x7f0000000100)='./bus\x00', 0x1) perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0x9, 0x9}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) timer_settime(0x0, 0x0, &(0x7f00000002c0)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) timer_settime(0x0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x3938700}}, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f00000001c0)=ANY=[@ANYBLOB="00108a24"], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) open(&(0x7f0000000000)='./bus\x00', 0x141042, 0x0) clone(0x20000000, &(0x7f00000016c0), &(0x7f0000000080), &(0x7f0000002900), &(0x7f0000002a80)) pselect6(0x40, &(0x7f0000000200)={0x7, 0x2, 0xa101, 0x5, 0x224b, 0x1ff, 0x200, 0xfffffffffffffff7}, &(0x7f0000000240)={0xb84, 0x5b, 0x0, 0x401, 0x400, 0x1, 0xfffffffffffffb7e, 0x1860}, &(0x7f0000000340)={0x948b, 0x9, 0x8, 0x5, 0x7fffffff, 0xdefffffe, 0x8001, 0x5}, &(0x7f0000000380), &(0x7f0000000500)={&(0x7f0000000440)={[0x8]}, 0x8}) 02:15:45 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x607a01, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:46 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) socket$inet6(0xa, 0x80003, 0x6e) r1 = openat$hwrng(0xffffffffffffff9c, &(0x7f0000000080), 0x435000, 0x0) sendmsg$DEVLINK_CMD_TRAP_GROUP_SET(r1, &(0x7f00000002c0)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f0000000280)={&(0x7f0000000100)={0x158, 0x0, 0x8, 0x70bd26, 0x25dfdbfd, {}, [{@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5}}]}, 0x158}, 0x1, 0x0, 0x0, 0x4044000}, 0x20040001) open(&(0x7f0000000300)='./file0\x00', 0x161801, 0x80) r2 = socket$nl_generic(0x10, 0x3, 0x10) r3 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r4 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r4, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r2, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r3, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r5}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 497.073001] ceph: device name is missing path (no : separator in :LÖ²þÎìAç¼ñâ0Þó¥ze E!2TkV¥Sïbßó}eÊÆ}#ñÃÔ&ꘔžCÈŸÞ6FÎGËÓ+ôKRR´Û|r”XìÁt˜£=R÷\;ac˜ýIÙ|ñÞC28qUÌäocdÛ 69¿nð"-xÞ‡„üCz‡¯ÕØMÝëJψ:)ß Ó‡N‡–ÎY„B .) 02:15:46 executing program 3: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) clock_gettime(0x0, 0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x12, 0x0, @thr={&(0x7f00000004c0)="dc58f5ca47458e73f54a60fdf06c8ea136cdebc0e531eda607aa9970657eb326b635567983f6390be1864419f011bd43", &(0x7f0000000540)="872aa7653d79b32a26040c0aa08fcb53d6a58301cdcb6f728fc9ccfcfb66b1790a7ff5747f3e1b169b523b2d9f7be7aa0d5e13295200107c81d75e335b6cafc5bebda5c8a8966e8b76ffae24c15cc127753242bd370b8fe6aa898abdd8cebef0f675d0ea24a1931a8116dc37f31c3538135178533e9031abe6a553c5f672b0e18de329f9"}}, &(0x7f00000003c0)=0x0) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) timer_settime(0x0, 0x0, &(0x7f00000002c0)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) timer_settime(0x0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x3938700}}, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB='c:U:'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) clock_gettime(0x0, &(0x7f0000000100)={0x0, 0x0}) timer_settime(r0, 0x1, &(0x7f00000001c0)={{}, {r1, r2+60000000}}, &(0x7f0000000280)) open(&(0x7f0000000000)='./bus\x00', 0x141042, 0x0) clone(0x20000000, &(0x7f00000016c0), &(0x7f0000000080), &(0x7f0000002900), &(0x7f0000002a80)) pselect6(0x40, &(0x7f0000000200)={0x7, 0x2, 0xa101, 0x5, 0x224b, 0x1ff, 0x200, 0xfffffffffffffff7}, &(0x7f0000000240)={0xb84, 0x5b, 0x0, 0x401, 0x400, 0x1, 0x1, 0x6}, &(0x7f0000000340)={0x948b, 0x9, 0x8, 0x5, 0x7fffffff, 0xdf000000, 0x8001, 0x5}, &(0x7f0000000380), &(0x7f0000000500)={&(0x7f0000000440)={[0x8]}, 0x8}) [ 497.156053] ntfs: volume version 3.1. 02:15:46 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) mount(&(0x7f0000000000)=@md0, &(0x7f0000000080)='./file0\x00', &(0x7f0000000100)='ubifs\x00', 0x21030a5, &(0x7f0000000180)=',/\x00') clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB=':'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) 02:15:46 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) socket$inet6(0xa, 0x80003, 0x6e) r1 = openat$hwrng(0xffffffffffffff9c, &(0x7f0000000080), 0x435000, 0x0) sendmsg$DEVLINK_CMD_TRAP_GROUP_SET(r1, &(0x7f00000002c0)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f0000000280)={&(0x7f0000000100)={0x158, 0x0, 0x8, 0x70bd26, 0x25dfdbfd, {}, [{@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5}}]}, 0x158}, 0x1, 0x0, 0x0, 0x4044000}, 0x20040001) open(&(0x7f0000000300)='./file0\x00', 0x161801, 0x80) r2 = socket$nl_generic(0x10, 0x3, 0x10) r3 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) socket$nl_generic(0x10, 0x3, 0x10) sendmsg$NL80211_CMD_FRAME(r2, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r3, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 497.267439] libceph: resolve 'c' (ret=-3): failed 02:15:46 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x607b00, 0x7ffffe, 0x4002011, r1, 0x0) [ 497.295718] libceph: parse_ips bad ip 'c:U' 02:15:46 executing program 3: pselect6(0x40, &(0x7f00000001c0)={0x1ff, 0x23c, 0x402, 0x2, 0x7fffffff, 0x3, 0x4, 0x1000}, &(0x7f0000000280)={0x800, 0x5be, 0x6, 0x99, 0x5, 0x3, 0xe2a, 0x20}, &(0x7f0000000400)={0x1ff, 0x10000, 0x800, 0x6, 0x6, 0xfb, 0x7fffffff, 0x800}, &(0x7f0000000480)={0x77359400}, &(0x7f0000000740)={&(0x7f0000000700)={[0xfffffffffffffff7]}, 0xfffffffffffffeb9}) mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) clock_gettime(0x0, 0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x12, 0x0, @thr={&(0x7f00000004c0)="dc58f5ca47458e73f54a60fdf06c8ea136cdebc0e531eda607aa9970657eb326b635567983f6390be1864419f011bd43", &(0x7f0000000540)="872aa7653d79b32a26040c0aa08fcb53d6a58301cdcb6f728fc9ccfcfb66b1790a7ff5747f3e1b169b523b2d9f7be7aa0d5e13295200107c81d75e335b6cafc5bebda5c8a8966e8b76ffae24c15cc127753242bd370b8fe6aa898abdd8cebef0f675d0ea24a1931a8116dc37f31c3538135178533e9031abe6a553c5f672b0e18de329f9"}}, &(0x7f00000003c0)=0x0) r1 = perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffffffffffffffb, 0x4008, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp, 0x0, 0x0, 0x0, 0x0, 0x1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) perf_event_open(&(0x7f0000000680)={0x2, 0x80, 0x1, 0x6c, 0x8a, 0x5, 0x0, 0x0, 0x11a80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x4, @perf_bp={&(0x7f0000000040), 0x2}, 0x800, 0x4, 0x81, 0x3, 0xfffffffffffffc01, 0x0, 0x6, 0x0, 0x9000, 0x0, 0x8}, 0xffffffffffffffff, 0xe, r1, 0x3) timer_settime(r0, 0x0, &(0x7f00000002c0)={{0x0, 0x3938700}, {0x0, 0x1c9c380}}, 0x0) timer_settime(0x0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x3938700}}, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000100)='cpuset\x00', 0x0, 0x0) r2 = open(&(0x7f0000000000)='./bus\x00', 0x141042, 0x0) r3 = creat(&(0x7f00000000c0)='./file0\x00', 0x0) write$binfmt_script(r3, &(0x7f00000002c0)=ANY=[@ANYBLOB="230275964c0e4d1a14750dd2544f96c8b5b62d6092608636c7d825b43245e955b642d9a3f1b2c95d8a3b0a3da597a1000195914376666e9261f15763419c960358"], 0x141) close(r3) pselect6(0x40, &(0x7f0000000080)={0x8, 0x3f, 0xbe, 0x0, 0x1, 0xca, 0x3f, 0x7f}, &(0x7f0000000780)={0x10001, 0x3, 0x3, 0x6, 0x9, 0x4, 0x6, 0x200}, &(0x7f0000000840)={0x200, 0x8, 0x28, 0x80, 0x3ff, 0x1, 0xf02}, &(0x7f00000008c0), &(0x7f0000000940)={&(0x7f0000000900)={[0x100000000]}, 0x8}) perf_event_open$cgroup(&(0x7f0000000600)={0x3, 0x80, 0xb1, 0x8, 0x80, 0x40, 0x0, 0x100000001, 0x4900, 0xb, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x4f5afd36, 0x3, @perf_config_ext={0x283f}, 0x40012, 0x4, 0x4, 0x1e, 0x3, 0x8, 0x4, 0x0, 0xffff, 0x0, 0x7}, r2, 0xa, r3, 0xa) timer_settime(r0, 0x1, &(0x7f00000007c0), &(0x7f0000000800)) pselect6(0x40, &(0x7f0000000200)={0x7, 0x2, 0xa101, 0x5, 0x224b, 0x1ff, 0x200, 0xfffffffffffffff7}, &(0x7f0000000240)={0xb84, 0x5b, 0x0, 0x401, 0x400, 0x1, 0x1, 0x6}, &(0x7f0000000340)={0x948b, 0x9, 0x8, 0x5, 0x7fffffff, 0xdf000000, 0x8001, 0x5}, &(0x7f0000000380), &(0x7f0000000500)={&(0x7f0000000440)={[0x8]}, 0x8}) 02:15:46 executing program 5: r0 = syz_open_procfs(0x0, &(0x7f0000000140)='net/mcfilter\x00') preadv(0xffffffffffffffff, 0x0, 0x0, 0x4000000, 0x0) sendto$inet6(r0, &(0x7f0000000140)="e012d16a8678d6f6", 0x8, 0x1040, &(0x7f0000000180)={0xa, 0x0, 0x8, @private2={0xfc, 0x2, '\x00', 0x1}, 0x3f}, 0x1c) r1 = getpid() sched_setscheduler(r1, 0x5, &(0x7f0000000380)) perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x82, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r2 = syz_open_procfs(0x0, &(0x7f0000000140)='net/mcfilter\x00') getpid() openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000002c0)='memory.events\x00', 0x7a05, 0x1700) syz_mount_image$squashfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x20000000000001f4, 0x1, &(0x7f0000000080)=[{&(0x7f0000010000)="6873717307000000911d675f004000000100000003000e00e0000200040000001201000000000000f801000000000000ac01000000000000e0010000000000007f000000000000001f0100000000000076010000000000009a010000000000001a73797a6b616c6c6572203a200020438c01200000009835a1e521433345949e001d0200ed0100000100911d675f40012b0100644c002a7d00032d6e001a040f000300ff277c005901006d08264c00000e2f746d702f73797a2d696d61676567656e3431393737363339322f66696c6530b5000129750102c40b7d00294d00074d0009297d000529f5010a2da402e6177e04bc002add00065d0160de0328232cdc006d0dff410000291f000100c027ed0007dc04651f545d1a085c001100004800130100a100034d00204c00090200040066696c65304000015002b2013104d404f7050200088003032e636f6c647e590201f9069e4001ec080131d60005273100322a3100331100000b00136000a1001fdc0011000069010000000000001a001200c1007edd0020dd0040dd009edd00d6de001201bc001100007e0100000000000008805cf90100535f0100a2010000000000001b001e00000600786174747231060000c401274d0032274d00321100000d001200c100024d00244c00110000b4010000000000000100000000000000d101", 0x1f2}], 0x0, &(0x7f00000001c0)=ANY=[]) r3 = open(&(0x7f00000001c0)='./file1\x00', 0x4840, 0x110) accept$inet6(r3, &(0x7f0000000200)={0xa, 0x0, 0x0, @loopback}, &(0x7f0000000240)=0x1c) r4 = socket$phonet_pipe(0x23, 0x5, 0x2) connect$phonet_pipe(r4, &(0x7f0000000080)={0x23, 0x0, 0x1}, 0x10) ioctl$FS_IOC_GETVERSION(r4, 0x80087601, &(0x7f0000000280)) chdir(&(0x7f0000000040)='./file0\x00') open(&(0x7f00000000c0)='./file1\x00', 0x0, 0x0) creat(&(0x7f0000000340)='./file1\x00', 0x18) getsockopt$IP6T_SO_GET_ENTRIES(r2, 0x29, 0x41, &(0x7f00000003c0)={'mangle\x00', 0xf6, "629de8916891c1382e2959f1aa619028d920385ca51f7659ce91555388376dc7aa305ac748c666b059e4edad962de9674c99f92d5ba2ca19ed5e52850aeb453ccd09443e105428f2bc5ac87bc7819ca9d629df6655541cd7ac7bc44b0f79b011225cee7d51aaaf905f9b9b1f1310da43a26ccacce253628427b0f8fbf8120c45042c89af51d886fafa4838cf5ce56ca63cbe92dac10e359c3e828a21cad4f19e1d575530a6cf066c1aa03644e468f25ca96c1a051b615c12761b33986a14dd163ba93a895418d7d4c3f193d5a03d694acf5344d76e32a2387f5c72f5e53547d117c44006cf2bda7a9c81b90e9e9508f0ae553930a9d7"}, &(0x7f0000000300)=0x11a) 02:15:46 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) clone(0x4000000, &(0x7f00000004c0)="2d6899d430c0243ed61ddf324ca915da5303cff00e26a5110dc4e4dfe24539a2a17357da29ced63aa3c0caf11276794da8eb784cdd26f7ec4c6cd5dfcd962c5e400e3fa0f465cea2b6d8c95dfa1bb24e5db8338a0aac91b8530c49b1e73a16d10f13f99a41d6bed4657a371abf081ccec7cc5b2948c76aa8676449c5cee993ecf1041c6ef4f49309cb06fd27c650c3c7265d91327a0d4389eaacd59c61e2c68c0edbadf8e4994153c7a9941d9a2c432f2dcf292139c9fedb4f4e52fa5571b6e9a9a96d759d48d434b2a83aefad2e26d4917a428ddb999899d8b2b818321eda5eba59bfbfeda8ae3e26d79a90b83a591e2a35f7ae97e1a984be0faa4ce4265bf48b24e9be43a2c268b60845477cc82a93b03e26ac4c646e2ef4b02af0e213ff1d2a9a23db3d072ade27bc66609939185c65a63072e6c87ed707c20145b2a28200752f3222dfb01e8f85999c5066c3f3b7dd2467f8c47879fe9cb687bdfecf51e7979c242a3bc6d2b6853e1b25e170304de0d5f0c509937675388637568bcbd478f3be44b787bcc52236ad5b8da3f4a8a00857de8ecfa61662cb569d3e100eb7d229a3c69177d0fe3a56ec774b93a549c2b88be61bf0ee02871a4a2a2aaca77e03ced912ddc0dbfeb440cf84aa75d6eb36502bf2735ff42e88567b82f3345301bcc50c5cf30bed5008bbbd76c9a46393b3b71e963c1e5726ffaf1dcf0955322223387539ca062d4cfdfaf956649ccf62b9fd86f819b66c5d9c2acc3e540650a848b341cde927c86f258a90e97074fa8bf856ee7981cda5285ac7dfff997700dea613936cf40382df3a7e6ad894661dc077f71cbba785ca8c30f5d893a0b1b43e202076f998b9e9b74f1c7ce9d46713a9a4ea668d3250e0d7e07a6a1dfe6b1b12d1c138af1994dfce1a3503784acc05187c646b0b22de7ea9118f0b8c2923d052e9ae47f7d3f49d48cc3a94b3985ac25c158a5c2ed13d09895146a09d5e86aa7758d6b12628f2afc367015164e932c97545d029035aa42b8365188995539409c3dd3b6c9ae668f3fef98e54a34844f71a271a563fd7004e763bb59059d7ac6bf0a28e65167ad65faaeea8443a6a35996150f36196739405099c4b4cf4abd552b90c626afc95628ba00f4565bbeb822d253ac3f5cea983c06247d842a81c8e4e58465116ae67297be44e326170b7d4d01e09db0b4103d6ac079e4929b6bcbac1124b9be0dafe49483243393a1f1068dc47ef5f472345fc2717ab00466ccbe86731d43f0e41ca397bbeff9ce1cbb63783777878f1aa96e212b7d5dc36482aec4f068eac968eead3fc0e2eab2c5cf3ed1788300e163fbc4c6d9ce483c252b167abaaf3b1ae87699710c00e8f62c67fcfb7f7572ec6772fbb6824fcee39a7f0b40741680415e18a16694eb912741739473caacb3419fb698d7e55c9502c92b456fbca44cbe1e7b7a7fe89cd282cdcec7cf52ea82e75800668d8e6c538d26fe712b39d2f29053f574e92b9496bd0f76a82c189093855de5b8a9013f78bc759ef3e84e9ea4720e9da96d4c81d054e0c4d7f22021065e752ccbe4f7b946c026ac5e9f6f4567e15d5483122aa0198a08d538c1d7b0fd193fa916ba7e45d0f778e26611124fa302c304a0d6b4da23ceab7e0c5735f87c3b88f0f7062d686de9c7b42b6162a8b0be4e6ae18c24c363fb4caae48acc6feaa673e13b55f2d03063ecd0ea72b38a9a707aef9a503bdb9606c96bac51150945a3ee1d8496ff03b79ac60319ae288b88fdee00b0f898259ff668374f5cd83a5d40f37bf09c07bdec59e9d3a0a9a2558122bedf007d64b8f5e03c4ec77b31154a1fab225c13150d06dc58a6396f34e0459549d72b52c40e8179cbba2b087f96d592c5fe383d1f7d2d301238b73459ec476d33c464e888aa24b2f109de759ac034187f8e9280d0f7dad5e26b8b96fc590757b62292c693e23d8a76ca05e4b46e7b81588694d3bbef64e8c4c63a5462add7acd295d1c0cb72ac3ca621153864be8f0ffd6b40b70b325e4e406452f1ebab19d7120b88a54b008e74f535013d51f05964de8bd5a1f61965ff67185705af862df8566885be7a3663e264f36eaee1b98f0ca4caa21bdafbd00cd377e21f6e590a39c091b53086f8d1d446298b4125a00aa3a74c21ec75f5f90489170c4fb5b2f3c62fa0abc17ee260b21928a5292ca336f52e8395ea4bbce51b0b52c9821a7c30328634a35813fdf323345591a8e4b7ccad18359dbda282e21be8d70a9f2effd823ab7764dd18a0a46ea3a6ac81d10d2de723dc9c5a352dacedde36699b19d78e5293f9fe8b1da37aa894ba3aee718f306f682cb01122e76f5478e7e54fb7a70edf76cd6fb06842ac645f6ce242e4f63325829b3ed300343f21dbaa0963d719308d9d96c88d38db874f1328668322e1f99f03ede0805e81d0a52153d46072c9e1a6b9619df0420f936ec49fea2eb6acaf6d916d12f4045b2ddcc4cb1470fe84bc421155a166e5feba7b7aefdf2807ea94933ab797d298e4d29988719aedf9d66e591e88d856bfd9f145bf6da1c8bf906977a76af6aea1bf565d83039b68a3b713a1d4b8d3c1b5d1c3ae76a7b3de9b60101e500adb926bcb98c9265df3ba246da5aaadd93e35d332795a533823d2d98c40cb9fac036c8b050a8e3254404ed7623fecb6244a01033b0dd93ca5b19aa063e72974e00d1388147fd34ece196fceb7248a36837f742fb4513b1e93f064d69d39d4cdbefa7f3d9572be9d06a13c2f2c6366e9e773b77d24e7302baa1fa4241b21a00c3027998513b179aaaebf52dc2a49bfb1a6a484629c1c477f273898defe4b3a2d5e3549efa6f86824fef45cdc9e4981f3633dde76b087d40dea03893f7d94b9ad520caca9344d0aefdde1bad321c1a69eb36ce2e31769d7de89aefcee433b3cd4e42ade6015d9685e0673515edd88bfe02d2970d50591cb50f1a27d1222c3c87c86c4becd95dea72668b7223795a9d0b0054b528b3d9fdef2a19f296a3f114cf6dfb5a42bcc46f2715f77e995dd42707c4b7d825efbb723a6d77d7cf21e575e604c1e95bde856093c0637cc06d0a67d6e184811018b37b428e0770e279b543ccfd43121f711c04a0229332f64beb0e54c328c132fd1f41665499872495d1397338631b8d51a12c5669545397bb26db59a0acb354d0fbc5623d58d20e21c89a1dc61c7c77bd1e0852f5476f03fedddc2079d1ead9c9c1b47d50741d9430fc3cc1d32463e12a5d2537e174dea92700b225075ef458830836023465104acccb0d5848f43cb64b3cc8b2bb2fa21b6cff9f49e72d47cee0374adf8483529fdfe4b2a2d03213dcc02e266966572a101de74d51e1dfdbabd881159870580cf0ccc28d49857d7e4376dd718409d9f98ffc8982fd5cf26658e2d01f66013282789ff54f9db62fa1f41a5494a274230213415c03c07441dc4677196dcb0efd4c33c26fef67839baa3dcaa546e022caa9b6bcd360205fe0a1454707c237235fc0caba58a50914f9f17182a60266aa5987fe47939c9cb8d8744f3d2f35f7b282fe59d62ebe295971e4359cce30b244d455bd80696c0355be5e78bdd1d0f292fc94d8d79b29b81020c4c331f4aa85e76436105b666bdb390e9c36309d5fe0d9dbb71f5b4101762781f645939aa2e0ed2a93d3ef67c727c3903b65770fb3bb2644bd92001fa2752d3ccc423d66ba99cfc9501c847704e9d5ae197ee53d6e04099eea22e968822372aba96fefa82f12778b053f0ce72c797f53acb0b9145a5a1ff8a7ddc3b057d03f0ad967b5785600cd364770512bf352704d3cf24d3709a3bd9bf5253f7de3cc2dbf2eb6a4618cd3578121c58d607befbb38c45e16c79470fa14604da8d1a3cd1bba235e09b62ed72fa2f91d9fe15f6ac1ed1ee02df5e170de8228a8e3bc7aa15da13453d49ec3f55a2f436c633d049faddb82fde91711bfb9b4b6ce73c335694767ddcf94c171f285c4f2dfc4e6efece1d153c2e3735aff1e6e88cbe194daa33f549ceed75cf4c8342c737246369ba222dbd5c74159fce039c038b49c89858e434007f8848062a9029548bc6fdd401b4618169503f1e40b0eec5e8118c139d70e398f44db0a754f78e74712229c8e8a8166032c7726aa637887d6d20a1a40746dbb0af7ec82c6158ac21314dd63fa3ffe87d8ba9fff58db8420d6275503cdc4848329fc2074a070fae7ab120d8dcfc5ab086a0637b9fafc2c6371ed881ba9006d3a7c3a3b884c9d4af3a45dd72acf00c08213052e291d3009b21a9813ee7f159962e13935c1975594e0956905e77deee239e8ab6d4169d2f2a66206dc52a5873a58184ca22ff83489636b73a2d3e3954ae8ac24d656f99552468ead376aef04e6d343d668e6d90558a56ccf5f7e30927cb4a4da1e0c54a64b338549a00460f51407107195720b41b48f7db81d088dda4ca2b8c4c95472f5a5976e1f579995503c0bdc478aae77cb6f44fcbae7839c72e6aa6fbfe13aeb4e2a3007a3532412b50b78ac97c71a06988e0b5bc53ad2410304a92181079f3eec5a485413337fd8277ccbc91621599927a5d43c5a9f59eda3729e010e3a8f78a90fe50a957b8fb0427055775aae67cc718831a37ed5b494295419ea364f95e36c95f1d1680e2efb0e0a99eac87e8529ea6750236bc40641ef62d6552f703f6555f18906d4e7e9b4abae11ef8c0df915c053146bf066584261c0feb72f1436a0f349eab1134545a0ff4f6e46b6db052e29374b642e8e97d4b0f105b370cb4a56b887814e508cd91f8d34b0077879e201aed58ea0e987a5a30ed09704fa89a731c5f56b5df17b5272d4412a724d863b47f8b997773306478677228fcdbfbae5ad953af810de4ec227dcc78299461cd603207a9da24dd9efc73590e13feef0c3fa4058c6bff74fbf6085430ca1a5016a484082a204c4f1739b1e409260cc070564a7130356551bd830fbdc01e2dd19afdef19157f72d31091a31a97481ee8059cb44f95f04ad98152802e45e11d6b815ab6e2ea905aecb086dfa96e35489c8d661ad0b3d78786f91cac6738cd276a310af5f3d9d9c1361b7ae5fb31917274608f64124c501f40b1058af9b3c39f2b861d4eae7ed48883e14456081627475e0f83537db52e4771d0eac6e13d33fe932629feb991ceb533809c702c71c5c74bae3b4f45438947d3c2c2cde66e8e4a62982dbbb2861df00c45fe8bdbcee4f48a480d1993f4844af9df54c6d4a656636a594eb063ba7c86f5c7f55a3906b5db753707d4e53ffe7435139e4db3ca153d560fb05aed0d67edc00dc99ad28fcd16bfa745fedd8f1c25c5d87c4d7291cdaeb7a7ed0d4ec10bd3dd9b84a16a64bc0c41805fd092199fa4b5144be25aa550b490887f2595054243e80da182dab06e01875f70206b683bd392ea330eac55ff975e362fd0682489817d15d343d64749b0d051cbabf45473217a311f91eb52b73c58e127a7e73c843d6a89f39adc8857289889bce69dcb95556b7392350fa6b2bf2fb0ae39c88febea87e5efd0f446902b02897b890759ff1d23cecb57513b7a96a6ed0a40808c029fbd57e8eecdd1d18f8ddca7624a6d9752446655e372c03a52a4ed2a908e4a376d34672a63e72fed53180fc4c728789f854487c0c895497e4d699551e53ddf4e96fe8f548b472419bdc7c91c0fa1a2ec7f92f73b0dbd79a4958a7416d18854f24c8a4e4fee667f6db94d028140accfcef0c00009512993f91dc9b1b2577a7c4e6d43a18794f07e944fc0c03c84a1f0f4c74fee0605c3a4dabe282be3885a8bb48aeadc9", &(0x7f0000000000), &(0x7f0000000080), &(0x7f0000000100)="017a470a110ad89eb4ef0159103e4752b5bce40d4c163d746421bd43a2933719f41f5a5773dd7775dcecd0") preadv(0xffffffffffffffff, &(0x7f0000000340)=[{&(0x7f0000000200)=""/83, 0x53}, {&(0x7f0000000280)=""/76, 0x4c}], 0x2, 0x2d4, 0x7) mount(&(0x7f0000000480)=ANY=[@ANYBLOB=':'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) timer_create(0x3, &(0x7f0000000180)={0x0, 0x41}, &(0x7f00000001c0)) [ 497.368236] libceph: parse_ips bad ip '' 02:15:46 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) socket$inet6(0xa, 0x80003, 0x6e) r1 = openat$hwrng(0xffffffffffffff9c, &(0x7f0000000080), 0x435000, 0x0) sendmsg$DEVLINK_CMD_TRAP_GROUP_SET(r1, &(0x7f00000002c0)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f0000000280)={&(0x7f0000000100)={0x158, 0x0, 0x8, 0x70bd26, 0x25dfdbfd, {}, [{@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5}}]}, 0x158}, 0x1, 0x0, 0x0, 0x4044000}, 0x20040001) open(&(0x7f0000000300)='./file0\x00', 0x161801, 0x80) r2 = socket$nl_generic(0x10, 0x3, 0x10) r3 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) socket$nl_generic(0x10, 0x3, 0x10) sendmsg$NL80211_CMD_FRAME(r2, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r3, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 497.463199] new mount options do not match the existing superblock, will be ignored 02:15:46 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = dup(r1) sendfile(r2, r0, 0x0, 0x4000000000000081) r3 = open(&(0x7f0000000080)='./file0\x00', 0x800, 0x1) r4 = socket$kcm(0x10, 0x2, 0x10) r5 = syz_genetlink_get_family_id$ipvs(&(0x7f00000001c0), 0xffffffffffffffff) sendmsg$IPVS_CMD_NEW_DAEMON(r4, &(0x7f00000002c0)={0x0, 0x0, &(0x7f0000000280)={&(0x7f0000000300)={0x50, r5, 0x1, 0x0, 0x0, {}, [@IPVS_CMD_ATTR_DAEMON={0x3c, 0x3, 0x0, 0x1, [@IPVS_DAEMON_ATTR_STATE={0x8, 0x1, 0x1}, @IPVS_DAEMON_ATTR_MCAST_IFN={0x14, 0x2, 'vcan0\x00'}, @IPVS_DAEMON_ATTR_SYNC_ID={0x8}, @IPVS_DAEMON_ATTR_MCAST_GROUP6={0x14, 0x6, @mcast2}]}]}, 0x50}}, 0x0) sendmsg$IPVS_CMD_SET_SERVICE(r3, &(0x7f0000000300)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x200108}, 0xc, &(0x7f00000002c0)={&(0x7f0000000640)={0x18c, r5, 0x100, 0x70bd26, 0x25dfdbfd, {}, [@IPVS_CMD_ATTR_SERVICE={0x70, 0x1, 0x0, 0x1, [@IPVS_SVC_ATTR_PORT={0x6, 0x4, 0x4e24}, @IPVS_SVC_ATTR_PE_NAME={0x8}, @IPVS_SVC_ATTR_PE_NAME={0x8}, @IPVS_SVC_ATTR_PE_NAME={0x8}, @IPVS_SVC_ATTR_ADDR={0x14, 0x3, @ipv4=@local}, @IPVS_SVC_ATTR_ADDR={0x14, 0x3, @ipv4=@empty}, @IPVS_SVC_ATTR_PE_NAME={0x8}, @IPVS_SVC_ATTR_ADDR={0x14, 0x3, @ipv4=@remote}, @IPVS_SVC_ATTR_SCHED_NAME={0x8, 0x6, 'sed\x00'}]}, @IPVS_CMD_ATTR_DEST={0xc, 0x2, 0x0, 0x1, [@IPVS_DEST_ATTR_ACTIVE_CONNS={0x8, 0x7, 0xfffffffa}]}, @IPVS_CMD_ATTR_TIMEOUT_UDP={0x8, 0x6, 0x8}, @IPVS_CMD_ATTR_TIMEOUT_TCP_FIN={0x8, 0x5, 0x1}, @IPVS_CMD_ATTR_TIMEOUT_TCP={0x8, 0x4, 0x20}, @IPVS_CMD_ATTR_DEST={0x14, 0x2, 0x0, 0x1, [@IPVS_DEST_ATTR_U_THRESH={0x8, 0x5, 0x10000}, @IPVS_DEST_ATTR_TUN_TYPE={0x5, 0xd, 0x1}]}, @IPVS_CMD_ATTR_DAEMON={0x84, 0x3, 0x0, 0x1, [@IPVS_DAEMON_ATTR_MCAST_GROUP={0x8, 0x5, @rand_addr=0x64010101}, @IPVS_DAEMON_ATTR_MCAST_TTL={0x5, 0x8, 0xd2}, @IPVS_DAEMON_ATTR_MCAST_PORT={0x6, 0x7, 0x4e24}, @IPVS_DAEMON_ATTR_MCAST_TTL={0x5, 0x8, 0x6}, @IPVS_DAEMON_ATTR_MCAST_PORT={0x6, 0x7, 0x4e24}, @IPVS_DAEMON_ATTR_MCAST_TTL={0x5}, @IPVS_DAEMON_ATTR_MCAST_GROUP6={0x14, 0x6, @dev={0xfe, 0x80, '\x00', 0x1a}}, @IPVS_DAEMON_ATTR_MCAST_IFN={0x14, 0x2, 'veth0\x00'}, @IPVS_DAEMON_ATTR_MCAST_GROUP6={0x14, 0x6, @mcast1}, @IPVS_DAEMON_ATTR_MCAST_IFN={0x14, 0x2, 'bridge0\x00'}]}, @IPVS_CMD_ATTR_DAEMON={0x18, 0x3, 0x0, 0x1, [@IPVS_DAEMON_ATTR_MCAST_IFN={0x14, 0x2, 'ipvlan1\x00'}]}, @IPVS_CMD_ATTR_SERVICE={0x28, 0x1, 0x0, 0x1, [@IPVS_SVC_ATTR_AF={0x6, 0x1, 0xa}, @IPVS_SVC_ATTR_PE_NAME={0x8}, @IPVS_SVC_ATTR_PROTOCOL={0x6, 0x2, 0x16}, @IPVS_SVC_ATTR_FLAGS={0xc, 0x7, {0x5, 0x24}}]}, @IPVS_CMD_ATTR_SERVICE={0xc, 0x1, 0x0, 0x1, [@IPVS_SVC_ATTR_SCHED_NAME={0x7, 0x6, 'dh\x00'}]}]}, 0x18c}, 0x1, 0x0, 0x0, 0x4000}, 0x80) clock_gettime(0x0, &(0x7f0000002c80)={0x0, 0x0}) ppoll(&(0x7f0000002c40)=[{r3, 0x4000}, {r0, 0xa680}, {0xffffffffffffffff, 0x601a}, {0xffffffffffffffff, 0x300}, {r0, 0x89}], 0x5, &(0x7f0000002cc0)={r6, r7+10000000}, &(0x7f0000002d00)={[0x4]}, 0x8) r8 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$SIOCX25GCALLUSERDATA(r0, 0x89e4, &(0x7f0000000580)={0x10, "875df919d9aa16de06c75256085cd17b36f03282395814056070c7f23bd9c643123c5ee0c75c142301238d120b773b64093920b2ac9b8b90cb74bebebcd1cf491848ce161e08c39f46db9abbb6ca288dfbb4dff69a3021361b444cc40f9aa45124ff6af898790d4322278d4a9f2f8bfc42752bbcc37e7ea55245162651e1bac0"}) r9 = syz_genetlink_get_family_id$batadv(&(0x7f00000000c0), 0xffffffffffffffff) ioctl$ifreq_SIOCGIFINDEX_batadv_mesh(0xffffffffffffffff, 0x8933, &(0x7f0000000480)={'batadv0\x00', 0x0}) sendmsg$BATADV_CMD_GET_MCAST_FLAGS(r8, &(0x7f0000000540)={0x0, 0x0, &(0x7f0000000500)={&(0x7f00000004c0)={0x1c, r9, 0x1643a3a6fd511339, 0x0, 0x0, {0xa}, [@BATADV_ATTR_MESH_IFINDEX={0x8, 0x3, r10}]}, 0x1c}, 0x1, 0x1000000000000000}, 0x0) sendmsg$BATADV_CMD_GET_MCAST_FLAGS(r2, &(0x7f0000000440)={&(0x7f0000000380)={0x10, 0x0, 0x0, 0x80000}, 0xc, &(0x7f0000000400)={&(0x7f00000003c0)={0x3c, r9, 0x400, 0x70bd29, 0x25dfdbff, {}, [@BATADV_ATTR_ISOLATION_MASK={0x8, 0x2c, 0x4}, @BATADV_ATTR_FRAGMENTATION_ENABLED={0x5, 0x30, 0x1}, @BATADV_ATTR_DISTRIBUTED_ARP_TABLE_ENABLED={0x5, 0x2f, 0x1}, @BATADV_ATTR_HOP_PENALTY={0x5}, @BATADV_ATTR_AP_ISOLATION_ENABLED={0x5}]}, 0x3c}, 0x1, 0x0, 0x0, 0x20000000}, 0x400c8d4) ioctl$F2FS_IOC_MOVE_RANGE(r3, 0xc020f509, &(0x7f0000000100)={r3, 0x1, 0x6, 0xfef8}) sendmsg$DEVLINK_CMD_PORT_UNSPLIT(r11, &(0x7f0000000200)={&(0x7f0000000140)={0x10, 0x0, 0x0, 0x2000}, 0xc, &(0x7f0000000180)={&(0x7f0000000800)={0xfc, 0x0, 0x10, 0x70bd29, 0x25dfdbfe, {}, [{{@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x8}}}, {{@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x8, 0x3, 0x2}}}, {{@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x8, 0x3, 0x2}}}, {{@pci={{0x8}, {0x11}}, {0x8, 0x3, 0x2}}}, {{@pci={{0x8}, {0x11}}, {0x8, 0x3, 0x2}}}, {{@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x8, 0x3, 0x2}}}]}, 0xfc}, 0x1, 0x0, 0x0, 0x40004}, 0x4008) 02:15:46 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x607b01, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:46 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mkdir(&(0x7f0000000080)='./file0\x00', 0xe0) mount(&(0x7f00000000c0)=ANY=[@ANYRESHEX], &(0x7f0000000100)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) r0 = gettid() prctl$PR_SET_PTRACER(0x59616d61, r0) ptrace$setopts(0x4206, r0, 0x0, 0x0) tkill(r0, 0x27) unlink(&(0x7f0000000000)='\x00') [ 497.514453] libceph: parse_ips bad ip '' 02:15:46 executing program 3: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x200031c03fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) getsockopt$sock_cred(0xffffffffffffffff, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r0) syz_mount_image$msdos(&(0x7f00000001c0), &(0x7f0000000280)='./bus\x00', 0xffffffffffffbef7, 0x4, &(0x7f0000000900)=[{&(0x7f0000000680)="59c6b3a79078545f9c3b0d61f63b78acbba0140d090c0cc0b27ea20bd92559adeb27962a53986002804741296532db06ec4aaada579aca44527e62bb004b00f80e4b3b147c59cf6eb531b350101a66fd5a59846034de0f807fc44afe1963c69dd510333f4dcb45bea80dbbdee620c6dd33f33b83bb61c0ae540558d1bc50cc6cd2b4c85b2ef2d5b7e09a15e45bd1a89602144c43a2f6b542139ad53fd1c4fd798262cb014c31b36af286ffe5d6924b8a2df1dadd8d6cb5d6f510227c28022c4183ab3069457e", 0xc6, 0xfff}, {&(0x7f0000000780)="ba0575ada5763fe67c23ad33581e9859b7696bd30d9c72020654c47e8ba795d40acece68c8d94fe344d06adc2f14835325349ddd80fe8c92b51f45cfc6a36aea7a5585da072cbc44ae1603995532fbf1514515cdcc15672e35aba2e0ac0b5f59683c5aa4f76dd0cbe38d62b72bb43f8e32bd582c4539e1b3e555", 0x7a}, {&(0x7f0000000800)="540aed23a3015bae74da08f6cae21e7a2557d191af429d34657b15d70233ed0f7bee6a8e27af31c6ad16ebfbeda85e76d194a05aea648d224e74be6960ee518a63c6b56c0021cee8dfcdf7dd85aa45b209f29357d7dc9900969ec8366c9847dc148fa46b40b24554e56418f4bcbb65a634b2cf9635159439", 0x78, 0x7}, {&(0x7f0000000880)="97fbd12876d055be74daa87911cdaeabb3c940ee96ac0de4f9e0897f71f68ab301f18b8835c7728a2717b83b4efbc64aeb7f9e4954bb5ea61178c6e37127c8a67abb", 0x42}], 0x800008, &(0x7f0000000980)=ANY=[@ANYBLOB='dots,nodots,nodots,quiet,nodots,code`age=775,dots,nodots,dots,euid=', @ANYRESDEC=r0, @ANYBLOB=',\x00']) exit_group(0x0) clock_gettime(0x0, 0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x12, 0x0, @thr={&(0x7f00000004c0)="dc58f5ca47458e73f54a60fdf06c8ea136cdebc0e531eda607aa9970657eb326b635567983f6390be1864419f011bd43", &(0x7f0000000540)="872aa7653d79b32a26040c0aa08fcb53d6a58301cdcb6f728fc9ccfcfb66b1790a7ff5747f3e1b169b523b2d9f7be7aa0d5e13295200107c81d75e335b6cafc5bebda5c8a8966e8b76ffae24c15cc127753242bd370b8fe6aa898abdd8cebef0f675d0ea24a1931a8116dc37f31c3538135178533e9031abe6a553c5f672b0e18de329f9"}}, &(0x7f00000003c0)) r1 = perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) timer_settime(0x0, 0x0, &(0x7f00000002c0)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) timer_settime(0x0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x3938700}}, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB='c:U:'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) open(&(0x7f0000000000)='./bus\x00', 0x141042, 0x0) r2 = gettid() prctl$PR_SET_PTRACER(0x59616d61, r2) ptrace$setopts(0xffffffffffffffff, r2, 0x7, 0x64) perf_event_open(&(0x7f0000000600)={0x3, 0x80, 0x1, 0x40, 0x76, 0x5, 0x0, 0xffffffffffffffe1, 0x400, 0x8, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x70000, 0x0, @perf_bp={&(0x7f0000000100), 0x8}, 0x820, 0x3121, 0x3, 0x3, 0x296d, 0x6, 0x101, 0x0, 0xab1b, 0x0, 0x77f8}, r2, 0x7, r1, 0x0) clone(0x20000000, &(0x7f00000016c0), &(0x7f0000000080), &(0x7f0000002900), &(0x7f0000002a80)) pselect6(0x40, &(0x7f0000000200)={0x7, 0x2, 0xa101, 0x5, 0x224b, 0x1ff, 0x200, 0xfffffffffffffff7}, &(0x7f0000000240)={0xb82, 0x5b, 0x0, 0x401, 0x400, 0x1, 0x1, 0x6}, &(0x7f0000000340)={0x948b, 0x9, 0x8, 0x5, 0x7fffffff, 0xdf000000, 0x8001, 0x5}, &(0x7f0000000380), &(0x7f0000000500)={&(0x7f0000000440)={[0x8]}, 0x8}) 02:15:46 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) socket$inet6(0xa, 0x80003, 0x6e) r1 = openat$hwrng(0xffffffffffffff9c, &(0x7f0000000080), 0x435000, 0x0) sendmsg$DEVLINK_CMD_TRAP_GROUP_SET(r1, &(0x7f00000002c0)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f0000000280)={&(0x7f0000000100)={0x158, 0x0, 0x8, 0x70bd26, 0x25dfdbfd, {}, [{@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5}}]}, 0x158}, 0x1, 0x0, 0x0, 0x4044000}, 0x20040001) open(&(0x7f0000000300)='./file0\x00', 0x161801, 0x80) r2 = socket$nl_generic(0x10, 0x3, 0x10) r3 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) socket$nl_generic(0x10, 0x3, 0x10) sendmsg$NL80211_CMD_FRAME(r2, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r3, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 497.649667] ceph: device name is missing path (no : separator in 0xffffffffffffffff) 02:15:46 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) mmap(&(0x7f0000800000/0x800000)=nil, 0x800000, 0x4000000, 0x80810, 0xffffffffffffffff, 0xba42e000) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB=':'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) socket$inet(0x2, 0x80000, 0x3d) clone(0x8080, &(0x7f0000000180)="8ae7e9e3507198d950d2470a51ec91f403de4ed96562088368737e9384bc25febe46ea85b6305594fb6b2c2789d3847aa064a4d3500e152048c508b4da018830ff67618c9ce8469e6352e8533db978740236fb4c0971d43e17c093e2c7d95480d2806b87061f42ddaa00dd8657ad0dfc1048e3424efa44cdffbe9b47fa6adb2251a1", &(0x7f0000000000), &(0x7f0000000080), &(0x7f0000000240)="acc32d359861589e2c9cce3c7595be94a8ef5fced35230f752f13272e55bea427fe3bbc525083de83c5e9c3a8ef4272befc058ba63ab211313af124e0ad9a80b44470d1b1188ee9aad56928f80012d19dfa68a3577302b4c8ca09c2709f9b8970812b91118bc4c09c6c982158fa9b608fcbcc70ca07b63d9bfa3962dd1db92bec3a994a2796cacf96922774ce545921fdb258057c2163ae5c0782f95fe6711311693e20fba9bea") 02:15:46 executing program 3: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) clock_gettime(0x0, 0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x12, 0x0, @thr={&(0x7f00000004c0)="dc58f5ca47458e73f54a60fdf06c8ea136cdebc0e531eda607aa9970657eb326b635567983f6390be1864419f011bd43", &(0x7f0000000540)="872aa7653d79b32a26040c0aa08fcb53d6a58301cdcb6f728fc9ccfcfb66b1790a7ff5747f3e1b169b523b2d9f7be7aa0d5e13295200107c81d75e335b6cafc5bebda5c8a8966e8b76ffae24c15cc127753242bd370b8fe6aa898abdd8cebef0f675d0ea24a1931a8116dc37f31c3538135178533e9031abe6a553c5f672b0e18de329f9"}}, &(0x7f00000003c0)=0x0) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) timer_settime(0x0, 0x0, &(0x7f00000002c0)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) timer_settime(0x0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x3938700}}, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000100)=ANY=[@ANYRESOCT=r0, @ANYRESDEC=r0], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) open(&(0x7f0000000000)='./bus\x00', 0x141042, 0x0) clone(0x20000000, &(0x7f00000016c0), &(0x7f0000000080), &(0x7f0000002900), &(0x7f0000002a80)) pselect6(0x40, &(0x7f0000000200)={0x7, 0x2, 0xa101, 0x5, 0x224b, 0x1ff, 0x200, 0xfffffffffdfffff7}, &(0x7f0000000240)={0xb84, 0x5b, 0x0, 0x401, 0x400, 0x1, 0x1, 0x6}, &(0x7f0000000340)={0x948b, 0x9, 0x8, 0x5, 0x7fffffff, 0xdf000000, 0x8001, 0x5}, &(0x7f0000000380), &(0x7f0000000500)={&(0x7f0000000440)={[0x8]}, 0x8}) [ 497.695866] IPVS: Error connecting to the multicast addr 02:15:46 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) socket$inet6(0xa, 0x80003, 0x6e) r1 = openat$hwrng(0xffffffffffffff9c, &(0x7f0000000080), 0x435000, 0x0) sendmsg$DEVLINK_CMD_TRAP_GROUP_SET(r1, &(0x7f00000002c0)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f0000000280)={&(0x7f0000000100)={0x158, 0x0, 0x8, 0x70bd26, 0x25dfdbfd, {}, [{@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5}}]}, 0x158}, 0x1, 0x0, 0x0, 0x4044000}, 0x20040001) open(&(0x7f0000000300)='./file0\x00', 0x161801, 0x80) r2 = socket$nl_generic(0x10, 0x3, 0x10) r3 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(0xffffffffffffffff, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r2, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r3, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r4}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:46 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x607c00, 0x7ffffe, 0x4002011, r1, 0x0) [ 497.826968] libceph: parse_ips bad ip '' [ 497.862481] ceph: device name is missing path (no : separator in 0000000000000000000000000000000000000000000) [ 497.927285] IPVS: Error connecting to the multicast addr [ 498.373070] kauditd_printk_skb: 11213 callbacks suppressed [ 498.373082] audit: type=1800 audit(1623032147.314:11260): pid=3931 uid=0 auid=4294967295 ses=4294967295 subj==unconfined op=collect_data cause=failed(directio) comm="syz-executor.5" name="file1" dev="sda1" ino=15021 res=0 [ 498.418730] SQUASHFS error: lzo decompression failed, data probably corrupt [ 498.426665] SQUASHFS error: squashfs_read_data failed to read block 0x60 [ 498.456802] SQUASHFS error: Unable to read fragment cache entry [60] [ 498.469228] SQUASHFS error: Unable to read page, block 60, size 1f [ 498.476738] SQUASHFS error: Unable to read fragment cache entry [60] [ 498.490578] SQUASHFS error: Unable to read page, block 60, size 1f [ 498.504269] audit: type=1800 audit(1623032147.444:11261): pid=3931 uid=0 auid=4294967295 ses=4294967295 subj==unconfined op=collect_data cause=failed comm="syz-executor.5" name="file1" dev="loop5" ino=5 res=0 02:15:48 executing program 3: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) clock_gettime(0x0, 0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x12, 0x0, @thr={&(0x7f00000004c0)="dc58f5ca47458e73f54a60fdf06c8ea136cdebc0e531eda607aa9970657eb326b635567983f6390be1864419f011bd43", &(0x7f0000000540)="872aa7653d79b32a26040c0aa08fcb53d6a58301cdcb6f728fc9ccfcfb66b1790a7ff5747f3e1b169b523b2d9f7be7aa0d5e13295200107c81d75e335b6cafc5bebda5c8a8966e8b76ffae24c15cc127753242bd370b8fe6aa898abdd8cebef0f675d0ea24a1931a8116dc37f31c3538135178533e9031abe6a553c5f672b0e18de329f9"}}, &(0x7f00000003c0)) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) timer_settime(0x0, 0x0, &(0x7f00000002c0)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) timer_settime(0x0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x3938700}}, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB='c:U:'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) mount(&(0x7f0000000100)=@md0, &(0x7f00000001c0)='./bus\x00', &(0x7f0000000280)='nilfs2\x00', 0x0, &(0x7f0000000400)='ceph\x00') open(&(0x7f0000000000)='./bus\x00', 0x141042, 0x0) clone(0x20000000, &(0x7f00000016c0), &(0x7f0000000080), &(0x7f0000002900), &(0x7f0000002a80)) pselect6(0x40, &(0x7f0000000200)={0x7, 0x2, 0xa101, 0x5, 0x224b, 0x1ff, 0x200, 0xfffffffffffffff7}, &(0x7f0000000240)={0xb84, 0x5b, 0x0, 0x401, 0x400, 0x1, 0x1, 0x6}, &(0x7f0000000340)={0x948b, 0x9, 0x8, 0x5, 0x7fffffff, 0xdf000000, 0x8001, 0x5}, &(0x7f0000000380), &(0x7f0000000500)={&(0x7f0000000440)={[0x8]}, 0x8}) 02:15:48 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000000)=ANY=[@ANYBLOB="f80400000000000000"], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) 02:15:48 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) socket$inet6(0xa, 0x80003, 0x6e) r1 = openat$hwrng(0xffffffffffffff9c, &(0x7f0000000080), 0x435000, 0x0) sendmsg$DEVLINK_CMD_TRAP_GROUP_SET(r1, &(0x7f00000002c0)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f0000000280)={&(0x7f0000000100)={0x158, 0x0, 0x8, 0x70bd26, 0x25dfdbfd, {}, [{@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5}}]}, 0x158}, 0x1, 0x0, 0x0, 0x4044000}, 0x20040001) open(&(0x7f0000000300)='./file0\x00', 0x161801, 0x80) r2 = socket$nl_generic(0x10, 0x3, 0x10) r3 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(0xffffffffffffffff, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r2, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r3, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r4}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:48 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x607c01, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:48 executing program 4: r0 = creat(&(0x7f0000000280)='./file0\x00', 0x3) close(r0) r1 = syz_genetlink_get_family_id$devlink(0x0, 0xffffffffffffffff) sendmsg$DEVLINK_CMD_TRAP_SET(0xffffffffffffffff, &(0x7f0000000400)={0x0, 0x0, &(0x7f00000002c0)={&(0x7f0000000880)=ANY=[@ANYBLOB="00000000931ced148b234e7cc12d0337226bffa5acfad2c4576a20a03afa042b38c36e9e7300eb5b3aebbdb40f5130604d05c2d7472ec690e922b4347f00e2290cbe9f588ca97eb21985756e92a36fdcc093a4f3ab128b69b57d75a0ed32cf357d359940dbde5322f7f82d4a5c4e744a5f1d4611fdf9e3a0d274b28167630b4304ac104aa70d227a769496c9d3dc7e0e39df4a4e60f9d6774fe93489296563bd3244912adf93989efb59fffc100d69440b1930ba9c3814456b9d543d7983a2b751aeb6091457392140a2aed61ddfe02bfab4ed212e74e508001c49bf496854abd49dae314a1ea7802ff1365f28235795ba9a2d89882a9e6450dfb9fd29c4971e1c81c5df711ee4f0acadbc654f1bb79d4cf43ac3310e02b3c79e0bf56cc335a9efc6", @ANYRES16=r1], 0x14}}, 0x0) r2 = syz_genetlink_get_family_id$devlink(&(0x7f0000000640), r0) sendmsg$DEVLINK_CMD_SB_GET(0xffffffffffffffff, &(0x7f0000000840)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x4000000}, 0xc, &(0x7f0000000800)={&(0x7f00000007c0)={0x3c, r2, 0x2, 0x70bd2d, 0x25dfdbff, {}, [{@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x8, 0xb, 0x5}}]}, 0x3c}}, 0x14000) r3 = syz_genetlink_get_family_id$devlink(&(0x7f00000005c0), r0) sendmsg$DEVLINK_CMD_SB_OCC_SNAPSHOT(r0, &(0x7f0000000180)={&(0x7f0000000600)={0x10, 0x0, 0x0, 0x40000000}, 0xc, &(0x7f0000000140)={&(0x7f00000009c0)={0x8c, r3, 0x1, 0x70bd25, 0x25dfdbff, {}, [{@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x8, 0xb, 0x1000000}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x8, 0xb, 0x20000008}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0x8, 0xb, 0xd9}}]}, 0x8c}, 0x1, 0x0, 0x0, 0x20000000}, 0x4000080) r4 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r5 = socket(0x21, 0x6, 0x3) write$binfmt_misc(r4, &(0x7f0000000680)={'syz1', "94fd0578b17d94dfccbbf9c76c0559f5f6613535da281e6c9a9c74475a21cc77688f5ee32172c91e9188853a95f9af2b0acd8d6e5ab98cd593ef839df889523d114bbcbea846cd482473eb429e78971d48db361326939d82bb0c639d6627126116c32f9c2431758c5df11103a52b798c02ac35be9ea221a6608478613727687c71eb0b83b793defbfd0668c73a16595e1d5379947b650f64ffe8e4ee256a96c0498117d3b2d34a31972e2cc0b33d22d99afb63b2797e641f71df8e7e72bb0b670da77f0725912dcb819e50c6704c133c9e25b6c9c91d67b276518cda1a1b685380774dd6d68db8134422781ee5ef"}, 0xf2) mount$9p_xen(&(0x7f0000000080), &(0x7f00000000c0)='./file0\x00', &(0x7f0000000440), 0x2080, &(0x7f0000000480)=ANY=[@ANYBLOB="74727ec14d92f0a59a5206ea401ea1d4616e73f1393da7463c4d13a88e80e1e4b6af039b656e2c63616368653d6d6d61702c63616368653d667363e9d504616368652c4a6363e11122f12bbe08a62c807d925748135417f24887a455a6068646d23fe186184606364f862d524e68e3c9a4700a"]) ioctl$sock_SIOCGIFINDEX_80211(0xffffffffffffffff, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(0xffffffffffffffff, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, 0x0, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r6}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) sendmsg$NL80211_CMD_SET_CQM(0xffffffffffffffff, &(0x7f0000000d80)={&(0x7f0000000b00), 0xc, &(0x7f0000000d40)={&(0x7f0000000b40)={0x1d8, 0x0, 0x400, 0x70bd25, 0x25dfdbfc, {{}, {@void, @val={0xc, 0x99, {0x4, 0x66}}}}, [@NL80211_ATTR_CQM={0x2c, 0x5e, 0x0, 0x1, [@NL80211_ATTR_CQM_RSSI_HYST={0x8, 0x2, 0xffffff26}, @NL80211_ATTR_CQM_TXE_INTVL={0x8, 0x7, 0x3a3}, @NL80211_ATTR_CQM_RSSI_LEVEL={0x8, 0x9, 0x8000}, @NL80211_ATTR_CQM_TXE_INTVL={0x8, 0x7, 0x513}, @NL80211_ATTR_CQM_TXE_PKTS={0x8, 0x6, 0x6}]}, @NL80211_ATTR_CQM={0x3c, 0x5e, 0x0, 0x1, [@NL80211_ATTR_CQM_RSSI_LEVEL={0x8, 0x9, 0x5}, @NL80211_ATTR_CQM_TXE_INTVL={0x8, 0x7, 0x3f5}, @NL80211_ATTR_CQM_RSSI_HYST={0x8, 0x2, 0xffff0001}, @NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT={0x8, 0x3, 0x2}, @NL80211_ATTR_CQM_RSSI_LEVEL={0x8, 0x9, 0xe330000}, @NL80211_ATTR_CQM_TXE_PKTS={0x8, 0x6, 0x5}, @NL80211_ATTR_CQM_TXE_PKTS={0x8, 0x6, 0xff}]}, @NL80211_ATTR_CQM={0x2c, 0x5e, 0x0, 0x1, [@NL80211_ATTR_CQM_RSSI_LEVEL={0x8, 0x9, 0x9}, @NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT={0x8, 0x3, 0x8}, @NL80211_ATTR_CQM_RSSI_LEVEL={0x8, 0x9, 0x5}, @NL80211_ATTR_CQM_TXE_INTVL={0x8, 0x7, 0x237}, @NL80211_ATTR_CQM_TXE_INTVL={0x8, 0x7, 0x3d9}]}, @NL80211_ATTR_CQM={0x28, 0x5e, 0x0, 0x1, [@NL80211_ATTR_CQM_TXE_INTVL={0x8, 0x7, 0x8e}, @NL80211_ATTR_CQM_TXE_INTVL={0x8, 0x7, 0x193}, @NL80211_ATTR_CQM_RSSI_THOLD={0x14, 0x1, [0x3, 0x1, 0x7fff, 0x1]}]}, @NL80211_ATTR_CQM={0x80, 0x5e, 0x0, 0x1, [@NL80211_ATTR_CQM_RSSI_THOLD={0x2c, 0x1, [0x7, 0x2962, 0x80000001, 0x1, 0x3, 0x1, 0x1f, 0x0, 0x3, 0x6]}, @NL80211_ATTR_CQM_RSSI_THOLD={0x10, 0x1, [0x7, 0x7, 0x9]}, @NL80211_ATTR_CQM_RSSI_THOLD={0x28, 0x1, [0xffffffff, 0x2, 0x8, 0x5, 0x3, 0x749, 0x6, 0x4, 0x7fffffff]}, @NL80211_ATTR_CQM_RSSI_THOLD={0x18, 0x1, [0x8001, 0x80000001, 0x8, 0x1000, 0x3]}]}, @NL80211_ATTR_CQM={0x20, 0x5e, 0x0, 0x1, [@NL80211_ATTR_CQM_TXE_PKTS={0x8, 0x6, 0x3}, @NL80211_ATTR_CQM_RSSI_LEVEL={0x8, 0x9, 0x80000001}, @NL80211_ATTR_CQM_TXE_INTVL={0x8, 0x7, 0x2b0}, @NL80211_ATTR_CQM_RSSI_THOLD={0x4}]}, @NL80211_ATTR_CQM={0x5c, 0x5e, 0x0, 0x1, [@NL80211_ATTR_CQM_TXE_INTVL={0x8, 0x7, 0x1e4}, @NL80211_ATTR_CQM_RSSI_THOLD={0x1c, 0x1, [0x200, 0x500000, 0x7, 0x100, 0x7f, 0xb26]}, @NL80211_ATTR_CQM_RSSI_THOLD={0x18, 0x1, [0xfffffffa, 0x5, 0x9, 0x800, 0xd25]}, @NL80211_ATTR_CQM_TXE_INTVL={0x8, 0x7, 0x55f}, @NL80211_ATTR_CQM_RSSI_LEVEL={0x8}, @NL80211_ATTR_CQM_RSSI_THOLD={0xc, 0x1, [0x8, 0x1000]}]}]}, 0x1d8}, 0x1, 0x0, 0x0, 0x4000081}, 0x40) connect$inet(r5, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) syz_mount_image$befs(&(0x7f00000001c0), &(0x7f0000000200)='./file0\x00', 0x100, 0xaaaaaaaaaaaabbf, &(0x7f0000000400)=[{&(0x7f0000000240)="d75c4e356ad3e839a24ab258e1a07c3c18b0ccc870979d5403d9ec003a60823bf5cbcf88ff205eb79912d21f46e9b21a8418c444070c4c00cfb308837925a814f1b454f8d9504b4e08b401b2941859ea867d7dc7e22405c81913a0cf1d90988083554756bd9af016973018400d8f791bdc320d75a4fafcd79109ee6198d65b05de78403a17b8f115f42e631e6bd69a0541b2952fb9c46c2627f88b407905ee795d5018ff04b6e7bcca00527ece458e3c595ad2f6", 0xb4, 0x100}, {&(0x7f0000000300)="1cab18a51353bd99b73fa9b8cf22d00c769efc9f07932d917196f54bc637cd9c3502520d76e176b380fb9b94cb4fffc56b09651490a58fd7c56858256b259dad5be0645f47bcc8248b3d24616ae6fa221e28bfb8f981607008d7234c221add11d644c6c7269ba2a1b0f34706748d05f44d8eb4680549ad51dd045649413a9151e4c3d5d31f054dfad90d0fd98dcaec9d3c62e15810d27a2b6feb362f8cd40ee12a85ecd118ae533a6d2f03f936be148542ae333faf7ba32e788e5ffc53315b50638d7d0db59b73f0df02", 0xca, 0x9}], 0x1001, &(0x7f0000000500)={[{'syz\x00'}, {'access=client'}, {'&,{{)&+/+'}, {'\x01\x19\xcb\xb4Qe\x94w'}], [{@smackfsfloor={'smackfsfloor', 0x3d, '%^'}}, {@audit}, {@smackfsfloor={'smackfsfloor', 0x3d, 'trans=xen,'}}, {@smackfsfloor={'smackfsfloor', 0x3d, 'w&'}}, {@subj_type={'subj_type', 0x3d, '^:/&/'}}, {@appraise}, {@fscontext={'fscontext', 0x3d, 'user_u'}}]}) r7 = dup(r5) syz_genetlink_get_family_id$ethtool(&(0x7f0000000780), r0) sendfile(r7, r4, 0x0, 0x4000000000000081) 02:15:48 executing program 5: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800007, 0x12, r0, 0x0) preadv(r0, &(0x7f0000000280), 0x18, 0xd9f, 0x0) syz_mount_image$vfat(&(0x7f00000000c0), &(0x7f0000000100)='./file2\x00', 0x0, 0x2, &(0x7f0000000300)=[{&(0x7f0000000000)="eb3c906d6b66732e66617400028001000240000004f801", 0x17}, {0x0, 0x0, 0x612}], 0x0, &(0x7f0000000140)=ANY=[@ANYBLOB="301300"/13]) r1 = creat(&(0x7f0000000280)='./file0\x00', 0x3) close(r1) r2 = accept$phonet_pipe(r1, &(0x7f00000001c0), &(0x7f0000000200)=0x10) accept4(r2, &(0x7f0000000340)=@rc, &(0x7f0000000240)=0x80, 0x800) r3 = openat$full(0xffffffffffffff9c, &(0x7f0000000080), 0x400000, 0x0) renameat2(r1, &(0x7f0000000040)='./file2\x00', r3, &(0x7f0000000180)='./file2\x00', 0x4) r4 = socket$inet6(0xa, 0x3, 0x7) connect$inet6(r4, &(0x7f00000000c0)={0xa, 0x0, 0x0, @loopback}, 0x1c) setsockopt$inet6_IPV6_XFRM_POLICY(r4, 0x29, 0x23, &(0x7f0000000340)={{{@in=@dev={0xac, 0x14, 0x14, 0x18}, @in6=@mcast2, 0x0, 0x0, 0x0, 0x0, 0xa}, {}, {}, 0x0, 0x0, 0x1}, {{@in=@private, 0x0, 0x33}, 0x0, @in=@dev, 0x0, 0x0, 0x0, 0x24}}, 0xe8) sendmmsg(r4, &(0x7f0000000480), 0x2e9, 0x1f4) close(r4) 02:15:48 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB=':'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) [ 499.484684] ceph: device name is missing path (no : separator in ø) [ 499.504990] libceph: resolve 'c' (ret=-3): failed 02:15:48 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) socket$inet6(0xa, 0x80003, 0x6e) r1 = openat$hwrng(0xffffffffffffff9c, &(0x7f0000000080), 0x435000, 0x0) sendmsg$DEVLINK_CMD_TRAP_GROUP_SET(r1, &(0x7f00000002c0)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f0000000280)={&(0x7f0000000100)={0x158, 0x0, 0x8, 0x70bd26, 0x25dfdbfd, {}, [{@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5}}]}, 0x158}, 0x1, 0x0, 0x0, 0x4044000}, 0x20040001) open(&(0x7f0000000300)='./file0\x00', 0x161801, 0x80) r2 = socket$nl_generic(0x10, 0x3, 0x10) r3 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(0xffffffffffffffff, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r2, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r3, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r4}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 499.533680] libceph: parse_ips bad ip 'c:U' 02:15:48 executing program 3: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) clock_gettime(0x0, 0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x12, 0x0, @thr={&(0x7f00000004c0)="dc58f5ca47458e73f54a60fdf06c8ea136cdebc0e531eda607aa9970657eb326b635567983f6390be1864419f011bd43", &(0x7f0000000540)="872aa7653d79b32a26040c0aa08fcb53d6a58301cdcb6f728fc9ccfcfb66b1790a7ff5747f3e1b169b523b2d9f7be7aa0d5e13295200107c81d75e335b6cafc5bebda5c8a8966e8b76ffae24c15cc127753242bd370b8fe6aa898abdd8cebef0f675d0ea24a1931a8116dc37f31c3538135178533e9031abe6a553c5f672b0e18de329f9"}}, &(0x7f00000003c0)) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) timer_settime(0x0, 0x0, &(0x7f00000002c0)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) timer_settime(0x0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x3938700}}, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB='c:U:'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) open(&(0x7f0000000000)='./bus\x00', 0x141042, 0x0) r0 = creat(&(0x7f00000000c0)='./file0\x00', 0x0) write$binfmt_script(r0, &(0x7f00000002c0)=ANY=[@ANYBLOB="230275964c0e4d1a14750ded544f96c8b5b62d6092608636c7d825b43245e955b642d9a3f1b2c95d8a3b0a3da597a1000195914376666e92611fe2862102f15763419c960358"], 0x141) close(r0) perf_event_open(&(0x7f0000000680)={0x5, 0x80, 0xfe, 0x6, 0x1, 0x81, 0x0, 0xc677, 0xa020, 0x5, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x2, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x8001, 0x0, @perf_bp={&(0x7f0000000100), 0x4}, 0x1800, 0x2, 0x4, 0xc, 0x7, 0x4, 0x0, 0x0, 0x1, 0x0, 0x4}, 0x0, 0x6, r0, 0x2) clone(0x20000000, &(0x7f00000016c0), &(0x7f0000000080), &(0x7f0000002900), &(0x7f0000002a80)) pselect6(0x40, &(0x7f0000000200)={0x7, 0x2, 0x3, 0x2, 0x224b, 0x1ff, 0x200, 0xfffffffffffffff7}, &(0x7f0000000240)={0xb84, 0x5b, 0x0, 0x401, 0x400, 0x1, 0x1, 0x6}, &(0x7f0000000340)={0x948b, 0x9, 0x8, 0x5, 0x7fffffff, 0xdf000000, 0x8001, 0x5}, &(0x7f0000000380), &(0x7f0000000500)={&(0x7f0000000440)={[0x8]}, 0x8}) [ 499.565809] FAT-fs (loop5): Unrecognized mount option "0" or missing value 02:15:48 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x607d00, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:48 executing program 1: clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000180)=ANY=[@ANYBLOB="3820bc74838a605e327084f4623d26407d764b20a6b0fc41cc82d8e8d31bfac08a10e421ec6c942c1e75ca02f94c6cb98d94a45041a6cce09fb0acaf0b82d89c41574df2d183d95e9f49a6be7a2e9ba666823b2c4b7f6aa55da93c78c58a4538ccceab3c6bc21077da0dc6781e"], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) clone(0x80064200, &(0x7f0000000200)="c1030f73bfce049820d10633e50bb37e4a77128347ecf10e4b365cad9d5936a4f32fbafed5755f22af0dfbcc49d1d5d642901d80f23374cb1f4f5a7b0b31e97ae63a2ced3d6efa350e0fd89f0cb2c62769d02b1cde2526d9fab99abee1a3081c48196e675f9b134d4a406f6adcc86b94170b623f8e1f08632498", &(0x7f0000000000), &(0x7f0000000080), &(0x7f0000000340)="6580c8d16d7a43f8738e0f93b8cffd77793a8656877743b203345fbc97e7940ab0b9f57f4d3d3732170cc015eece1d3d5a593d6394ed402b1088cb256fca1332dfb1952c6e0119b652b8e45113f24cc8cd4c26a5ebfc1fbf765d860275cdca36bd6d8255f28795a8b0ec9ac69e6b7836a1f3db6d01520b930f5aa3f75be18a2d424ca28a6014e8fc2df03f37722c32604094931aad5e4b019ada7a4efc79bf6ff2264ed38cc503e5d342f8f17dffb21e2c1c93efad85fb7da16706a2b9536b3de05a49e34c28cf2bfd9ff9637b799eab4e260612a7b41b1757390bfa974a1929fe222d843446121cdc6428eb6cee66545a2c46115d6fd43e24") 02:15:48 executing program 3: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) clock_gettime(0x0, 0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x12, 0x0, @thr={&(0x7f00000004c0)="dc58f5ca47458e73f54a60fdf06c8ea136cdebc0e531eda607aa9970657eb326b635567983f6390be1864419f011bd43", &(0x7f0000000540)="872aa7653d79b32a26040c0aa08fcb53d6a58301cdcb6f728fc9ccfcfb66b1790a7ff5747f3e1b169b523b2d9f7be7aa0d5e13295200107c81d75e335b6cafc5bebda5c8a8966e8b76ffae24c15cc127753242bd370b8fe6aa898abdd8cebef0f675d0ea24a1931a8116dc37f31c3538135178533e9031abe6a553c5f672b0e18de329f9"}}, &(0x7f00000003c0)) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) timer_settime(0x0, 0x0, &(0x7f00000002c0)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) timer_settime(0x0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x3938700}}, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB='c:U:'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) open(&(0x7f0000000000)='./bus\x00', 0x141042, 0x0) clone(0x20000000, &(0x7f00000016c0), &(0x7f0000000080), &(0x7f0000002900), &(0x7f0000002a80)) pselect6(0x40, &(0x7f0000000200)={0x7, 0x2, 0x1ff, 0x5, 0x224b, 0x1ff, 0x200, 0xfffffffffffffff7}, &(0x7f0000000240)={0xb84, 0x5b, 0x0, 0x401, 0x400, 0x1, 0x1, 0x6}, &(0x7f0000000340)={0x948b, 0x9, 0x8, 0x5, 0x7fffffff, 0xdf000000, 0x8001, 0x5}, &(0x7f0000000380), &(0x7f0000000500)={&(0x7f0000000440)={[0x8]}, 0x8}) [ 499.663045] libceph: parse_ips bad ip '' [ 499.674368] libceph: resolve 'c' (ret=-3): failed [ 499.699195] libceph: parse_ips bad ip 'c:U' [ 499.704244] FAT-fs (loop5): Unrecognized mount option "0" or missing value 02:15:48 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) socket$inet6(0xa, 0x80003, 0x6e) r1 = openat$hwrng(0xffffffffffffff9c, &(0x7f0000000080), 0x435000, 0x0) sendmsg$DEVLINK_CMD_TRAP_GROUP_SET(r1, &(0x7f00000002c0)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f0000000280)={&(0x7f0000000100)={0x158, 0x0, 0x8, 0x70bd26, 0x25dfdbfd, {}, [{@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5}}]}, 0x158}, 0x1, 0x0, 0x0, 0x4044000}, 0x20040001) open(&(0x7f0000000300)='./file0\x00', 0x161801, 0x80) r2 = socket$nl_generic(0x10, 0x3, 0x10) r3 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r3, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r2, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, 0x0, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r4}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:48 executing program 5: perf_event_open(&(0x7f0000000180)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x511, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0, 0x2}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x400}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) pread64(0xffffffffffffffff, &(0x7f0000e3e000)=""/8, 0xffd8, 0x105400) openat$urandom(0xffffffffffffff9c, &(0x7f0000000040), 0x20102, 0x0) r0 = openat$ttyS3(0xffffffffffffff9c, &(0x7f0000000640), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000600)=0x14) ioctl$TIOCSETD(r0, 0x5423, &(0x7f00000000c0)=0x14) ioctl$TIOCVHANGUP(0xffffffffffffffff, 0x5437, 0x0) fcntl$addseals(0xffffffffffffffff, 0x409, 0x0) socket(0x0, 0x2, 0x0) sendmmsg(0xffffffffffffffff, &(0x7f0000000480), 0x2e9, 0x1f4) r1 = socket$inet6(0xa, 0x3, 0x7) connect$inet6(r1, &(0x7f00000000c0)={0xa, 0x0, 0x0, @loopback}, 0x1c) setsockopt$inet6_IPV6_XFRM_POLICY(r1, 0x29, 0x23, &(0x7f0000000340)={{{@in=@dev={0xac, 0x14, 0x14, 0x18}, @in6=@mcast2, 0x0, 0x0, 0x0, 0x0, 0xa}, {}, {}, 0x0, 0x0, 0x1}, {{@in=@private, 0x0, 0x33}, 0x0, @in=@loopback, 0x0, 0x4, 0x0, 0x24}}, 0xe8) sendmmsg(r1, &(0x7f0000000480), 0x2e9, 0x1f4) sendfile(0xffffffffffffffff, r1, &(0x7f0000000140)=0x688, 0x0) r2 = socket$inet_udp(0x2, 0x2, 0x0) bind$inet(r2, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) openat$ttyS3(0xffffffffffffff9c, &(0x7f0000000640), 0x200400, 0x0) r3 = openat$ttyS3(0xffffffffffffff9c, &(0x7f0000000640), 0x0, 0x0) ioctl$TIOCVHANGUP(r3, 0x5437, 0x0) 02:15:48 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) r0 = socket$nl_xfrm(0x10, 0x3, 0x6) bind$netlink(r0, &(0x7f0000000080)={0x10, 0x0, 0x0, 0x1}, 0xc) mount(&(0x7f0000000080)=ANY=[@ANYRESHEX=r0], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000000)='vfat\x00', 0x10004, 0x0) 02:15:48 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) socket$inet6(0xa, 0x80003, 0x6e) r1 = openat$hwrng(0xffffffffffffff9c, &(0x7f0000000080), 0x435000, 0x0) sendmsg$DEVLINK_CMD_TRAP_GROUP_SET(r1, &(0x7f00000002c0)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f0000000280)={&(0x7f0000000100)={0x158, 0x0, 0x8, 0x70bd26, 0x25dfdbfd, {}, [{@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5}}]}, 0x158}, 0x1, 0x0, 0x0, 0x4044000}, 0x20040001) open(&(0x7f0000000300)='./file0\x00', 0x161801, 0x80) r2 = socket$nl_generic(0x10, 0x3, 0x10) r3 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r3, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r2, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, 0x0, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r4}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 499.870353] libceph: resolve 'c' (ret=-3): failed [ 499.904831] libceph: parse_ips bad ip 'c:U' 02:15:49 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[], &(0x7f0000000000)='./file0\x00', &(0x7f0000000040)='xfs\x00', 0x0, 0x0) 02:15:49 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x607d01, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:49 executing program 3: clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) clock_gettime(0x0, 0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x12, 0x0, @thr={&(0x7f00000004c0)="dc58f5ca47458e73f54a60fdf06c8ea136cdebc0e531eda607aa9970657eb326b635567983f6390be1864419f011bd43", &(0x7f0000000540)="872aa7653d79b32a26040c0aa08fcb53d6a58301cdcb6f728fc9ccfcfb66b1790a7ff5747f3e1b169b523b2d9f7be7aa0d5e13295200107c81d75e335b6cafc5bebda5c8a8966e8b76ffae24c15cc127753242bd370b8fe6aa898abdd8cebef0f675d0ea24a1931a8116dc37f31c3538135178533e9031abe6a553c5f672b0e18de329f9"}}, &(0x7f00000003c0)=0x0) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) timer_settime(0x0, 0x0, &(0x7f00000002c0)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) timer_settime(0x0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x3938700}}, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000840)=ANY=[@ANYBLOB="7992bb9321a9bdb41ce7f5a29785d47e1222bf5fa87956ff3636bdefcd1b28b88382144f13be1da328db281d6dbc3910a9f5b3792f"], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) open(&(0x7f0000000000)='./bus\x00', 0x341042, 0xa) clock_gettime(0x0, &(0x7f0000000700)={0x0, 0x0}) timer_settime(r0, 0x1, &(0x7f0000000740)={{r1, r2+10000000}, {0x0, 0x3938700}}, &(0x7f0000000780)) timer_create(0x4, &(0x7f00000009c0)={0x0, 0x12, 0x4, @tid=0xffffffffffffffff}, &(0x7f0000000a00)) timer_create(0x2, &(0x7f0000000280)={0x0, 0xf, 0x1, @thr={&(0x7f00000001c0)="1c378233de372324b3b8ba6587000d85d3ba33a65dd682bf91", &(0x7f0000000600)="8992c0d453153c66468fcfc909aa1f8d6eb2b30268f62bf2cdb6fc410ba8fa233ba7c8303ee0ec8b83a2096fd184f0cd1b789a4f5d79654dd11ed1a225d43c0f53acd3d4a7a2682deb77182d0c3fcbbaf6f74947561fea8d7282bc170b278f5fdd442fa1894819dd937206f76093fda3c15e1eb729c3dd27644555450030a7d0cf271a0ba72c9aced3270601ca15b033b040978285401cd30f003e048e42bfb7f58a672f75190e432534e924"}}, &(0x7f0000000400)=0x0) timer_settime(r3, 0x0, &(0x7f0000000480)={{0x0, 0x3938700}}, &(0x7f00000006c0)) clone(0x20000000, &(0x7f00000016c0), &(0x7f0000000080), &(0x7f0000002900), &(0x7f0000002a80)) timer_create(0x0, &(0x7f00000007c0)={0x0, 0x20}, &(0x7f0000000800)) timer_settime(0x0, 0x1, &(0x7f0000000ac0), &(0x7f0000000b00)) pselect6(0x40, &(0x7f0000000200)={0x7, 0x2, 0xa101, 0x5, 0x224b, 0x1ff, 0x200, 0xfffffffffffffff7}, &(0x7f0000000240)={0xb84, 0x5b, 0x0, 0x401, 0x400, 0x1, 0x1, 0x6}, &(0x7f0000000340)={0x948b, 0x9, 0x8, 0x5, 0x7fffffff, 0xdf000000, 0x8001, 0x5}, &(0x7f0000000380), &(0x7f0000000500)={&(0x7f0000000440)={[0x8]}, 0x8}) 02:15:49 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) socket$inet6(0xa, 0x80003, 0x6e) r1 = openat$hwrng(0xffffffffffffff9c, &(0x7f0000000080), 0x435000, 0x0) sendmsg$DEVLINK_CMD_TRAP_GROUP_SET(r1, &(0x7f00000002c0)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f0000000280)={&(0x7f0000000100)={0x158, 0x0, 0x8, 0x70bd26, 0x25dfdbfd, {}, [{@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5}}]}, 0x158}, 0x1, 0x0, 0x0, 0x4044000}, 0x20040001) open(&(0x7f0000000300)='./file0\x00', 0x161801, 0x80) r2 = socket$nl_generic(0x10, 0x3, 0x10) r3 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r3, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r2, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, 0x0, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r4}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:49 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @rand_addr=0x64010102}, 0x10) r2 = dup(r1) sendfile(r2, r0, 0x0, 0x4000000000000081) 02:15:49 executing program 5: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) clock_gettime(0x0, &(0x7f0000000700)) timer_create(0x0, &(0x7f0000000300)={0x0, 0x12, 0x0, @thr={&(0x7f00000004c0)="dc58f5ca47458e73f54a60fdf06c8ea136cdebc0e531eda607aa9970657eb326b635567983f6390be1864419f011bd43a63340f692788e99250f495a0bb0fe", &(0x7f0000000540)="872aa7653d79b32a26040c0aa08fcb53d6a58301cdcb6f728fc9ccfcfb66b1790a7ff5747f3e1b169b523b2d9f7be7aa0d5e13295200107c81d75e335b6cafc5bebda5c8a8966e8b76ffae24c15cc127753242bd370b8fe6aa898abdd8cebef0f675d0ea24a1931a8116dc37f31c3538135178533e9031abe6a553c5f672b0e18de329f9"}}, &(0x7f00000003c0)) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) timer_settime(0x0, 0x0, &(0x7f00000002c0)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) timer_create(0x0, &(0x7f00000001c0)={0x0, 0x15, 0x2}, &(0x7f0000000400)=0x0) timer_settime(r0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x3938700}}, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB='[d::]:'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) pselect6(0x40, &(0x7f0000000100)={0x0, 0x4, 0x0, 0x8, 0x10000, 0x0, 0x6ab, 0xc}, &(0x7f0000000280)={0x7f, 0x5, 0x0, 0x5, 0x0, 0x10007, 0x8, 0xd}, 0x0, 0x0, &(0x7f0000002a00)={0x0}) open(&(0x7f0000000000)='./bus\x00', 0x141042, 0x0) clone(0x20000000, &(0x7f00000016c0), &(0x7f0000000080), &(0x7f0000002900), &(0x7f0000002a80)) clone(0xc002400, &(0x7f0000000600)="e221f8ad57afb7d6eb92d224279147307ed15ddb2be8dab6df313c029c995f3a9c436caeb5a719c86e9459775c1383a6a0d0562e62abae2e7170b174002e39ad4e02cbe37b5e105f18415297374fdaf50bb56d7e453ebeb26667f5c1f00c3b21264b056e6873e990734f1c652cf99b5cfd47ab15fc6be6a43d6073da009b0945edbac884610eadc1aa0931870b568996e94b02af31f4c4c5740c1517cb0ffbad51a195c45314fe94a4cddfdb264491b3ecec103e0a0d2efc0b91", &(0x7f0000000200), &(0x7f0000000240), &(0x7f0000000740)="4e82232ae173d224263b1f5c4e43ab21863aa1cdd18cc4aa670ef10be107f0ce048e7b84398cb5ba8dae57c4a78266f4d000415c567d0ea51840272ca244135f3e8c373c400425eb858549e910f966ae2c999edf5f985503366500a10fe8808c6930053f8b10d3a899cc8018de1847311d3996614ca35222d1ede0c50431c05cd0ce0f813390c4e272ffdc9b43034e3dd414135d043e65b991da655cb9ecec2644298ab1ddeb2697026f7a9de8eec10bc1a21327fc009552c09726b2cf946c831f44b50331c811f6f99a6e3c3f90a1efcbd592556bcf6616dd625c2913920d1e134a4d2755e4ca67f698aa0b4bf7c87e53187cd7e0cdbaf20541bf7d4220a43f165b162ea75245dee9d87fe7828703deadf39de0866fc7fe7ab7ffa4a7dfce9732bb73fdeff1eda86cbea97af6c22934fbd2e928bbf7902d49104a635f8782d6fcdf98d4874a943d3e42fb988ddff3c683e2e50682f86e613944d46eba92e4aa0c0f9b337767117e90a0184fd94657bdfc147d82ec813392f296b796da12180585c23e8af181542b40fa715fa838ed2dfad6a9f5c8b8feb1ffea4aae4b9add081ff60dc1b4b4f53ba524ad89834b331ca5168666ddc6c6dc7734ac7c39814dfca8050ec1dca4195dc155f19d0fe2171323f09be365dc773f67694ce23c6dca4e3ecea175d0cadfc62e1fb5f461636c032ac8b8cb6c94a37dce5e8d6bfb5732eaa59e1eeb4054b74b66555e25aa3cbc003c5e072b2b1238ea1c4a4c5ae71e9148cb67bc2242941d88a983e986affd6965807dbd222fe3b6b21d79d4c14505bdd6859d67ad7bd0f625d216ef258aa31935c2e8efd7df95799149d098fb22147d4249a70cc67a541d959d58a122b165b46be5aedd6dc03b11798c82abf956c9145b4c7898b70ea23bc040495a5f194106e806c71f9407ff266c6b682713a3bc972bb93212eafaeea4843748d35aa8b24809a1bed56c5a0ab82ca1a6c5bc7204d79c4daa551277b16f60a8f84c8a9580b36b353e665a652fc7ea4ba11af5ced03fe8e23272ce7429bfe93e430590e58aaa9e62522ba5b4358371a0947b6fe04d89b12cb57a95b7922ba6ec49fb7659bd63f48cb8c61aebd6a678e28c082db917c0dc44f16139f43c0831858a868cea890e5c1d5ebc27f1a8aafaeb05adfc19bd1c7cb0cda41306fa4bad4bc7841fb80e8311ee0275477b35c3fc66929432462ee23091d81697292574626ac9b71b8325f22a36e68792364153974d9dfd480280fde62658accd5eade37d3736fca2bb7ffd102e35a054af9fd085d08aadb9e79b1703c89f9ba7df9c3d65af6601b4f297821b0d9f3994e26950ddc80bb78eed8c5c55193cf14cd36b8848ccb9f59f02cac1d4b1cb2c4294aa4361f6608e279cad86382d73c857dcb95a07e5bc00c32dbcfd39be8b283b8773dbbfd389f1502ac293ca946f13e059aa7128954d1dffba136a2ec7b31b585c7e6fa2da98c635f8a7b90cf99b79a2bf053467cdd32a1710d02ae3cce0d5c7156b7c709bd16cc2f9b5d74c2abed48df1d16ed91aa1f90f6085c04644689910a8aa771a0bd9328077ebf828b00cedb69b32802951c4b73e6f022e1f8e990441a9610f90acb7239f39146ebd92f208c92753c9fc1a3623ac456be57d64e47adbb1146000f70bf842a7795583ae95e31b25a5c4a39cc0af375c01d1daebb7777a3d582d8735476224c870d9cbc21a65b3e900feed356a2e69f4a2f74203f6a9b287e5e414ca78b34b6817260e4c49823be4d06b83ab51c0a768a3968dff4d08d0570326c6700cd0a47fc5e7b66bd17522292bf81308a7e4990273cc35886adc6deb11d613cf5b0a900392b0b7d91dc69209cbde189b27235bb6ab12ef4a5ff6ded186f07f09e8c8f9e74fb80d163faf4af1d554bbb3a061524da4543a9e566488c375430f6e9510d95de936edfbbffd50a3d3506463064f8c3ddbdf85e07627d98c42aa62b55af270552fde7311f0d2f87eb293941a32430e2848718b1c4f1afa72d24eb402c7333c6962e8954b09f881d5fcc1abc77c2bb1502a8b438623dd5e50e8a12b3530f3f5653f3163b2024ea0a0b1ba9850ed63e64abb9a0fb249ad9cf43c974b8a33b230e9f1881e9aafc408606b631c4bc61a6fca66285443ec9e32dab5553c0d580aa84380a65e2d9bf4e76c9568d52d71c1c23b02e0f555a566588b7908c11ebf36d2265fc8e5717ab6b0d9735aa2ccc4fa0c5ac5666182065f5a3d4c2cd578294ec0093ce3406313b7d2982c8ed63c0aacf6b5e48977993e7a37bdcd952845a5f18c14e06ee9aab136be32349ed95d8b95cbedc718fea0171759ce13762bfd293c4734f7e7d9205a19e7dfc0aa7835e07102418013ab53e7b8e864fb232f6687f53dc300949c4af0dc0ccce0ac6855fbd793c22aa82dfde51aa02c4d17cd85fafca29c49533b5074da7890d111f3f0ed6f63f8935fc0fcb744f802b041664f748d9dfbb8792c02ba13d4f0be39b181aedff89ccf6fed03158b751dc06c5a284309c1e920ead6e92708c3d89e58f1fdbd8f67a9155a9215a41631409a1c9e1d90968a3315cea20fbb58505889673e2b4d282a741ea1ccdc1b2d3e95be88251b8010632480d3b3ab0541442aa9cfd72639d1b7649fcae38d6be30fd6bef3ffe20cae2cbb9d9bf5490f60a462b6e09dd0293ff4ffe016f753871f22d008486d34671b995d9d7ff21b67aa2125ad2b11522085f2f347e732381739eb6dd040b361fed95852f98e29eb0332a9bdb9b7d7d0c8d942e1173b32f2ae789f810ff01afe66d5347df817a4ecfb35bd747cb17bd3d4863a7e7cce33b1784e66ba3b34c74de25ec593d70771b1ceafc2ab95455b999382b6e56c43957b1db585a63e723b79b5eb495a8465baf6fc976071de6c34d653f459ec746471f9c68559ac7aca8e21f0b2f5a7db780d946444b6e2fa326c8c8076e045ce2580ecbc574d8df0d5f172dd7d121cfd3d3c7ba0248daaf8dad3ec35f0dbca4cd4179f4a381bfa7fe5dd3031e114370afdf77f815350a43e932071a3cfea2f9c92f19aaf68ec1d6b77ff5d06fc6653c8c687710a37f8952bab15312f74765ec3ff02f87bc1e76d5182a43ba1e18e2ed6874a45f0e9d117fca67cbd0df48e3ddb712768653af07653e1fc7cc154ed235000e5e4296dabd420e84da69431c3fb96f7b8bc045504d1eba8aea50f1cbb326556ee8eca5f2e2765b469a7bfe59f45a6825a5969b714becec5abe38ed046b779098d855829816652a7c8375048ad7303b163a0109dc3ad89abf12ed2f691a23fb0b4e5d43f162abd6dba7c9154aa89079c75c4d85d4666246182e1191d7198befb273bff91470bc6a157a051d61ae28cea40510616414d16530317f5f7d9fbb422be3ea70d10ba5371e29ac0988b29929d139c95b393eac1dcb1b1072e02fffd3ea2acf3ffc17684aaa24c86317084f594a3a39e49cdb61e50c695429298f63276aa0739c0ec913d29a9dd0c59452df9ba15b529ffbf900bfb88896c3ab02cd8d0ba36c8099ca657f0b226bcb554ce3947546c044b3db31c8d1cb4c12d8e607b88132066257ab2fcfdfacf2a020f0219978e05c8b6cdfe6718156881173799d4d06d5e8b1375cd75a59574bcd1b25ef2acfc3cfdf8ab90566da62e0c84c6a68ba89d5fd6cd12405f047fc6b50d740e7073622d333afa525e85bb9dda56e78190794d44749b08dcab7ffa1663d003dedb547645f08537867e011b0c8b9a309e4746e03de9678820ba4b29560b4fe34e5f251c85c400ba8a84e193d34cb54067a29f3278e14c958d1d2e683127e774d1257e2b5e04408db14b761c80ca984e6dc1310f44c72cf3c691f23dfc851d5ce5ca4a16f43f55ba6c761a59dabf2191502bf13997087aa4fe242b6c2c5956694cbec96b6a9fb527081d564eb82222091c95c1b95ea4fce1685f31bf4c29388c525f7d818ee24e92cc35a0389cb1b931e68963dd7fef9acdc9a4e4d6235d1055130afb38d3987b8ac8ae712257c9a9f5025fd89125a9a9cccb79a3133a60cf805c9d4464a2b4da9efde80ea98fe3703fda645f012d8c62625f06c82d7a827a9b8d04ebd2b7fb8859d7a1576389e6aa877ce869d9cf6e71eb8a2e46386b54380e344fabe7f0daac1511ccac79fc4d9cf223fe130bf0c4db2b77f83f5e2427f73e470317640ad528b3b9efa00f824f997f33cc4db92bf04c4c5353a3166e56e47ada580283165a097a0a19940932f35f1811078888be02500f0ddd59b419734b4b23ed3f8dcf4a9b6465dad5dd735b5c56678b60765e6a602bacb3bfa3d4ea93a7feb0386558a771b300b926c701dec22ebfc90a84ba4fcedfcff6de7e45f5f6e62aa19e19077faf2ad8c42d6e425d0d3c2de4c53201dd3421e1b86098df0d1d782f4ab3449571e75ce9599558d568ee30fbe5b165cac72f8d9bfbe3ded391f2725872f365cae35960c9781b30ae92ba146f5d72495dca7055ce7d36cb1f5a99087a29e4a6d7c71a0241f8d47545f01bdf9adced0abdbeecec74154b722f09c1aa629660413f2bbf2d89fdb3dc397a0e79cec1505cd8a6de045f39eab7725252785b874392aab027d3ca546eafa2098782c22138406c7ee229345542eb1482d7ad7737240e4dbfbcda94ef712d01cfb3b2eec31fb76e1be02982934306055acf2d7be5b7bf7b9ff7127723d03f6d6c38016930c07d2d849b3744f3f6224d1f3aa7f909e0ffc40f0a3b56ea50b83e668646121bda35228123ad4e04315ac799c75afaf74f2fd1b6043d3e380619bb02163a0df10412e992534fbc1b19e1820df5419078664047195afcc23c337f8f8cc3d9fcbc50725564b12305ae4e3e8dbee7cd1e6b9645e1d954380440a08e94c9509b6752ba0a4f8094e67be50b0fd51570777cdf418fbf975dead582bfdb56a0489c0ec2988ecda18d1e33522a2d5eb3169c7eb99307576100b6a6b69c739d1cdacf60c46112011c9cb201108dd904da18bbd26d08281a1893f4f5e0cf3e38b174faab8b4215d328eb34d2d34e9554f90dfbb505272a8d97ce9a1923a2c5569eda02f9c89fe2afc8eb4a651a3a3e9652e712596cb3d7d836fea551d9fc2915ac374caf82929f01151f1819af9e6a2b89b2aa3452a9aa80bee6898823e2a4b524f02ee65b6ead9932e1b1f0fedbdb034ea915eb46565dba5b455408e2e31bc0443bb40b9afd218f16f92af2a0ba79758573ed7a9bd557f1048e8ae8331d919c9bfa15b1e49e972216fa36f165d87f9bb2417fe61a97507c37dd7e40113ee078c4456c5d2d440c57ee25f8e5b860936d4812a10e01276271270257974f83d8c018c785faf003f1d2c7b7ce33dd82bcce362554f8446b39da1b1edeabd686d3ca1fb9b298bf77c5e60705070a4153fe48fa5bd7900ccc82409255743186af870f6372dcbc066100d06b9c2dd303da1518a81735893c5b4993d79bb59fd3c9dc471dd5a93491ac2055bb6033fb93c411abec59af83d490df5ebeefb3088adca039df3ba06d530918c660e7691dcc2ae7ff85516b139d1ae94d914459d5c13e49483c501346abc384e255938a47fe05303afbec34beeb99c23199514f144359f9dffccc860955d1f7d915b2dc8e198de42a63f6f50d01136f4d2753396ef87e9381b1ec4f70ea2c80e2d0869a9959f3c0ee6d05d6e4c36d8b25b1ebe7341938ef1f30220f5d5e737dc6224a0706e58e1197a7e6e6f19035e4ca2700bb0fd36b17851ed28ca6b34fbbb96e029ac3b6e65be83b973692d94f375d43f2da8ac91ca99e90966a99299a9a") 02:15:49 executing program 1: mkdir(&(0x7f0000000080)='./file0\x00', 0x8) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB=':'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) 02:15:49 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) socket$inet6(0xa, 0x80003, 0x6e) r1 = openat$hwrng(0xffffffffffffff9c, &(0x7f0000000080), 0x435000, 0x0) sendmsg$DEVLINK_CMD_TRAP_GROUP_SET(r1, &(0x7f00000002c0)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f0000000280)={&(0x7f0000000100)={0x158, 0x0, 0x8, 0x70bd26, 0x25dfdbfd, {}, [{@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5}}]}, 0x158}, 0x1, 0x0, 0x0, 0x4044000}, 0x20040001) open(&(0x7f0000000300)='./file0\x00', 0x161801, 0x80) r2 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r3 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r3, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(0xffffffffffffffff, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r2, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r4}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:49 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x3, 0x3, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = dup(r1) sendfile(r2, r0, 0x0, 0x4000000000000081) r3 = socket$inet_udp(0x2, 0x2, 0x0) ioctl$sock_bt_cmtp_CMTPGETCONNINFO(r0, 0x800443d3, &(0x7f0000001240)={@none, 0x1, 0xffff, 0x10000}) sendmsg$sock(r3, &(0x7f0000001200)={&(0x7f0000000080)=@in6={0xa, 0x4e21, 0x1, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', 0xd799}, 0x80, &(0x7f00000011c0)=[{&(0x7f0000000100)="8d63d39b7959e5ea5aca9a32db1afebd209994dcca1b1f2b06ecb0c8444a9395d37acc5556280d595d17f0fa19edbbedb8347d0851cd9be08306a1808eca9097a0fd3aff524051900f6a5b64afe90ca85ae90e83f91c79a49e42d1969858b2c260c195396eacc8d7edca9bd0f0a2d8005d9bc6feeef797384dfb59886c7057f818d812ba2df406c7bf9e1897fc765668d9218a3f9e2940862fb589d989a201f53392d2bdb1ff8fd507879e5694138797e9aefb7f815c81ef5ef6cb9e93aa8a96e24baf1313325f1ebfa8704dc78d73b13f8c7c2dd95dd7646f4a3c22da1fc25fb42e6b793cf0bd412968b03fd9031e4ae5ad9e7c7562266edeb3531e19e615300ab2ddf97fdfb4f7178a2a2501844b9442d1be67a4a3c7691a267cb30ab52489615bd82dcc696a4d21cfac06d73740bb5edec1d4db2110f5844a28de7da1c09247ebdeb923239a8f1af274871278ad409a960701a971cb81f22ea143a0a4aa6ce1b9769ea231f344a2b21498c876afac0b631b9381b6efcec509273577405c2e21cae775309d31d0546aef77c0a5406028491f7677db2ad7e7f2580cd145d0067d1f604aa8c1945fb347f33ca533f22c14759012e52885f535d7c7ace29147e0d8f9b8b817cefc5aae97259d5975c837d605e7563e3011f625664047e4651f789ce6c30618389a62120276a6918dd6b7344a453bd70ef39af99e838a1c6e07c376459e5b5a2297142a47b7ddeeeacf20f22ad0829cbb51d08472085746e54af9a4fe67896b94af1b43fa36a494c7c2778093506bb09dd60d752cb31537ca638be98716e3d7ebdb82e015fa73bd5a28d8d505b74bc706cfad7ba4523ef312e03ba46e32805b8f5c264c8d617c5d9e61ca06759540b9c25dfa31537a59e25b0b8326d7b871bc8f0f4ce6b6034122322d14629ed23843cb7db5d6f6ea7d41503de15e634872b6c96c3a42425707f5ddee2af08ba35a66216532a185dd8c9458f552eeaaaefebeadff73bfd0a8b84fba91a57b9ef7a6afae064a550820920eb16de010e8bf154b44f8d0953dfe3dbd3acef9992726612f59beca189bdc004892820a490707f73a67e3fb2297f4179da306f17172c520b8dc12f60af6e54a877980b26ca23de3b4fcda1178f4bfd0e5ba968985212b40e642f81f667f1d10c3572776a5eb0c8c5c6ede0075266c8c195614493988048c45fd59b93633331359d28a328ab2ff372b7bfde638a6ca53c33fa7230c63d5d62422f8764dc8416b328228c326dea362aa230f7ec9dd5a519123176a61e8ab9493cd8494970f9580e2e3c575004058f55cdd5b98a74b7efdf6ef91d8776565f1e4824a5f68e486f8aca049cfe3662a468c596607e4b61da602440400b6093e2fb4ae7cc57ce7061ff8abe9b36f62142744e17f5bb4447fe0384e1296292f5f37f1761cdfc3ed49cf828d414c18fa72ce22c3b972110bd881333bbe977fd919ed1fbf5c18d3ea44d6a9e583dfea292bdceeb536c08e2f943fbf4fb056b853f87b14c6f3ff78b93ca336053233704927447981a50b22dd26ae9d9a0f5cc0eb27e49a5009d89ef8b088fb21198b8ed7e45fafdd118301ee1022fd29f27d5c5b349cf37d4c815940fe10390d394b2173ec406bd33d3b71836cd633f4f9a856764a5300813185aa7cf3921bf4ae01f178cc827f6e4f65a9918252db0abb9a7ab88c1ffc2b8ad73cfa8a720fd62a3646aae6c08140a997edca61e4970e6a4f4579a7e308e953985b5e0fff010ec72bd86e7bfabfc4fb637c8028295226c04b52429a57f3c19756519fc2c131753070f972a216005db05e221bf43fac70b831d8bc54d8f088f65bf7ef976dda298eac412dd8d89b1f331ce97ba293913b8afe7ee2d0db8bf5008cc8aec2a2f02d30c03f776944c00c97883d76f6fade04fecc5b96aa579e384bbda7fedd6f4120a55863c8e2614b7d4b2b7092104e2b01128bfd53f79c3bc1d31b7ae638989b7edb5f1f9a3ee999cd8ec5761810e3cacf97be6c4db4d38364f2a4ba8e94302d5b6a9f946303a7c2df81a6ac16090ce8303ee789f605127fd8288699dda5dc24663d454d7aefb79afa12c37d074e4db1b6f937991b810ae279b6f6602e369366bfd1912ee9dc520718671c76b6b0a0231978291383020ec74458927211010b0c189bc08caa38f6344f5a3ea2cf9cb8b0c34da8d65f6486994bbd1943a813a1dff6409c980202e0325790da1115959ab1df2a44b6805d8d8717e4af03ef9b9b3f7aeefa60920a14bc0b50b5d0478ffaf103c45af09faf5abadcec5a7586457888205117c6cd65cd1a57ab5dc8808011aa00b824327db50221a8961e15b469b934aee1fdb52930e6527282614b0e26f8e84cd593b3181653b08ccd067eb3bc46e8fd03070794912e54286f1581e13d32cb3cb72b8bbb479ef8cbb7209e5d9f052d01bbccbf6d55b5ef915c2974a9ffa30517e399a08116e334e67c6b037b17875bea011baa855cecde20b4287acc05698760682808793cdcd3389e12996948cc95d11a69a1df06827c17a90224f564dc16c7b2167818c93522bf2697392c41ac8fdbf99352bd1fe5c642e3aae4a48caaaf4a46851540e60bca86efeb39211597a8790a02b3327a1c51827a61302c18eec1ffc6403dfae9fed65361a1549308c0702173becc92b6b0b86b3b0e766ac5f2e8405129d31ba5565510b2a34c60ed5a3b38adf9520b56502154c4809ab848fbf5beac5fdf8504bbdb52fe4a0f0db01726180d140b1c5dd65f47150a7c74ad9b4be7c95e9eb2eb3066a0e517135f507e5270951af36e1d921b43f627b3afabca06408db920b70a9076c2acd610ac429b21e0760333df6bafb1c3abf384135fe257f2a96e685f59df50d1c56fb60efd32c4f200fc8b0b21febb55df4b29a37630fcd4b9a360a6f1865aa59d42dfc9d18943530d009068cf632f3582a49e8779f362891392afd3c8025e7d3943d91a37f26a81dc756ef292ee2431a365a1e9c238b020a21e86b6404261aa15ed73313825065dc052ea75f11e4d31920371f14bb983bec94a1d30194ffc75847eb6890ca5e828dcea2bd6fbd8ade5ebc4b8e2fa9f3a657d637ab098dd680604c87035538776e3b90cf1ea9ac0c72b07cf929e08a11aea73fdb4ba7617b34ba28b91c2ec35bb9cfe902b0380068712fdae979371fa7e0a94c898a8703f3bb2620cdc1d69e079e73d42e2509d5c03f923f8e436a52ae7f673291c49321c3c7eca29a6415a48e05afab003fa8dad08c0e64650f340c86f7c1d8cb8d3a919ca73757ea8c8a8a432b7a07811b55be117b6ce11ecde6cd6a026ecae82a74c044aaca08620b60ed4dd64a4be180bbfa62313a5b410de83bf53d2a9e4eeabcf6527c2433dcfe9b65809cb8a43fe8c38bd590aac39e3d70e4eecb974396ab4ab14dd74c8cb30b29dda957c521c073d15df92df2068224234bbef2faef22b12e1c55e9dd125e6cd79a31845673095f4cde95fe26834f5892415873c24f607dae8711429cd5c629b5f78c38ea83f906a6b2f82ee5918f657b4d5750dc5d2abd15ad5173ab5490f85eeac332b04e7d3eef99293ff32fdc425185e9f25471dc8e60c79af01433306954ecb43f40b7e46792092635289469d53dca52fa9b99963ee2af44dedd7f9a6a0729338059610fad665c55dc09a292d5492afe4bf71c12f1b46d2a3c48cdfbe2e7a8db7172a208eed57fdc8f59f259a7f9865c786d30c1d71eb1077e8825bc30d1148b154cf35f010aa8bba060e6de04619b22cc26feaeaf0139262f64c8b02b46151a2fab905a13a17da4960186652a9a60063a80f01f0d03f735ccc23f9825a359e3ccba41de4bd0005f70102730fa8062ac4ba63ede7d6372e9474d0db662dae2a73478e0f6cf9f835a2a72d3f4ead55e2378dd8c66fa9ba68a4076d10a202fc9dfe51f8f1a9a7a907bb02ff6d2b0a242911b18f7e986bcb619898c8a23218ad8e425832380763a7d3a5b7d0d6d20f3768b5b6f2bf39bd90d3de06dd1a088a8897422e39e49de3f4b2064b9c6f8d179bf19ecdce2eb96b15a077c0cd774696340c9722025311cd7849ccc7bd7116635961842a41466ac109947c921f4566f4c878c0c237d606ab1ff3d05d2fd34f03d681c4cee088089a2974fe3084b63588eb4c6acd3b80a046d12b493108396a6f8b02788ea93baced3e6186eae6381c617e83640766270db0766387018133d806198871e6b093c9b42327c83b3ed25cc5000ff54efe627a1f94903840aeb3b3747b9be3e780f8c3170dd6aa6a735df1eb88ea5f89a9e00385894d47c5709052d6beebccac4323038a6d08a48d28e53ba5ad3d6e79e1257365552b4400cdbd2c562d34cb664f3a13efd4bbfc721432713188faf65ef6832aa5ec13c2381ed471bd5ffda40701e4b6f7b90bedbc95acf47cc4cf1da2b5a11db2fda9a0aabd919c5ff5d331de3fca3a1e46284a0ffac306642e9d568fa988bf8a536de605d8bd98439af722795b9ac430a06de1a757d574c2970f865bdfda5e6e6087359959b10bc838cf0bdb8e6a9ce61974efd610c667e4fc421aa2af372904eb0657260f80b8b5c7450a37148499f8c0ee4b0a5d4441e94ecadc401ba0a3733fde2ed7a81f1876772dd26439e8528db2f78785cbb06814c61d969ced2233daf25737c2d1c50797ecec936e8a9ab042f9e61a6bbef2ea8775fbb771ca28e10490640aa700378e41cf71f8d266c9fbaa94e9a014dc33eada81a17c5976bc330b2576632ab162e0c714bf87cf24662de50d911a2f48c0d76d5a5d4f9cf9aa8c5ffe750eec2ac0b619a6d680ad214d0de8139641684df0a949ee372c6416462de1f1ebdf1be6ccd23dcce454484fe345505e3173c420e14721dadc265c5ef87eb9e3a7b87e16e5ed10b335dc548a9845730fd7470210a0483fd4cff20e2f9f38152fe53cac482729c145816d5be819f832986798776b7675802e8707410e1a2fb9eb904c7bddad48176a1399bdc8243bcde83d0eb38ddea804c2e2fa0de5d92f24b8fc298fbf361ff3173eac3fd79910713c79411efbee27851b50f3fa96984a27a580e89b9e96f90310e6e1680593dc042c59a0497a5cfc8e51c5c0f635e0e8903bcd2a4ec890a866766488fc5239d441e2cfe1d687a34e69b1734831af27ebb63355568ac09a979559270a93c0fd35f968a30236d265666357144f62d294b2631457970e257947d77eb99e7b9e2935029dee5ef44e58fe5a38c3434acb7a883163216a9298919fa61f7fe4284114ef37c5d0634d2a0b62b2dfd1d892f6a74a431daf820494acff3d1306ae31d869be7e3e7af537704f8b585e9c1016e4a8a44ca07e6c713403b90f78510163dcd34bd026cd38a351526fdf26f16e789727929b541ed6686598a6e0d3cebd887882c04899a8d23a56271a1c3531e15c76009efb78949f519eb3a4eecb2588087e30900a15f18a45dfdf8048ceed26fd08a9071be35a30486893d374bb242af9de886e9b87c253f6fe30a56e840c00751f8514c7981a92b29c8e3b3a5545e2d3cb5f6ae49d4dc0157daa220c901198d4bba101c65d724a026d60a735d54fe7b52bce3f464db46c73421054c878fa121438d2355b79001810562f1f121abf9267b0f95f96c27d51b2536ffff9046e1cddd3cd74eeadd3bc8d0ee0250888607ef9df04905ed95e18d0f43ef6ed753f6ac577064ab06a1e96db04438c583db2e460fa29f8037e14428d537b2594eb9fad5f5b5b8c2e77df4b4e893f6223140345f811dd9aa1739c21e709add87ab0c6dced28b0", 0x1000}, {&(0x7f0000001100)="d5541a6180e8609da28dc9766f333663110b0bc81333d275d3679622aee97c9b616c67f227f7ea5b68aaef2143", 0x2d}, {&(0x7f0000001140)="f20dbe2610979656b63210d30dac2797b052122c1e23bcad314bd80f2ff75140da388da1c313578a4940786b1586106485e95fac77ae33f272799e6898a62e20febbc55f6aeff9fb95451c96145e7a1477033403ea76ca2c01", 0x59}], 0x3}, 0x40000059) 02:15:49 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x607e00, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:49 executing program 3: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) clock_gettime(0x0, 0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x12, 0x0, @thr={&(0x7f00000004c0)="dc58f5ca47458e73f54a60fdf06c8ea136cdebc0e531eda607aa9970657eb326b635567983f6390be1864419f011bd43", &(0x7f0000000540)="872aa7653d79b32a26040c0aa08fcb53d6a58301cdcb6f728fc9ccfcfb66b1790a7ff5747f3e1b169b523b2d9f7be7aa0d5e13295200107c81d75e335b6cafc5bebda5c8a8966e8b76ffae24c15cc127753242bd370b8fe6aa898abdd8cebef0f675d0ea24a1931a8116dc37f31c3538135178533e9031abe6a553c5f672b0e18de329f9"}}, &(0x7f00000003c0)) perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x41c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) timer_settime(0x0, 0x0, &(0x7f00000002c0)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) timer_settime(0x0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x3938700}}, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000100)=ANY=[@ANYBLOB='\x00\x00\x00\x00\x00\x00\x00'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) open(&(0x7f0000000000)='./bus\x00', 0x141042, 0x0) clone(0x20000000, &(0x7f00000016c0), &(0x7f0000000080), &(0x7f0000002900), &(0x7f0000002a80)) pselect6(0x40, &(0x7f0000000200)={0x7, 0x2, 0xa101, 0x5, 0x224b, 0x1ff, 0x200, 0xfffffffffffffff7}, &(0x7f0000000240)={0xb84, 0x5b, 0x0, 0x401, 0x400, 0x1, 0x1, 0x6}, &(0x7f0000000340)={0x948b, 0x9, 0x8, 0x5, 0x7fffffff, 0xdf000000, 0x8001, 0x5}, &(0x7f0000000380), &(0x7f0000000500)={&(0x7f0000000440)={[0x8]}, 0x8}) pselect6(0x40, &(0x7f0000000280)={0x1, 0xd187, 0x1, 0x80000000, 0x32fe, 0xffffffffffff7fff, 0xffffffff, 0x9}, &(0x7f0000000400)={0x7fffffff, 0x6, 0x8, 0x81, 0x3, 0x0, 0x480000000000, 0x9}, &(0x7f0000000480)={0x2, 0x3, 0x6, 0x4, 0x3ff, 0x10001, 0x4, 0x7}, &(0x7f00000006c0), &(0x7f0000000740)={&(0x7f0000000700)={[0x4]}, 0x8}) wait4(0x0, &(0x7f00000001c0), 0x2, &(0x7f0000000600)) 02:15:49 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) syz_mount_image$tmpfs(&(0x7f0000000000), &(0x7f0000000080)='./file0\x00', 0x5, 0x5, &(0x7f0000000400)=[{&(0x7f0000000180)="2781794a385997b6e6bbcb3f7316edfa7e7d33d0fcd35a11771ffe363af784fc69c80ab4f53bbba4ced38146c8485325a5549dd3ffb8b9aeba4a4afeb901631c9a2e2240bdfde39b01acb57c075c031013cd5f07f30749b811664c8f1696d1b2b2f2874e8e31ebe109cbefd90e3b82ddc0c204a4791de84ee485bc42d6e6d2a5ff3649334d93582f872e0c7a28311be7d2d057760f4eeea7043e59223c140b64235375c6405341fa38f96f07d2e4d11a4fb9bf131864c89a20273d28955982dd17872be9feb50384cba0042b95a205fefc5945e700122e0bfa285522bb685fea939753cea08733", 0xe7, 0x2}, {&(0x7f0000000340)="01a242de768835ea81d63f3e2200e0ad4c4b584e1374e078f78703a90ed1e59f00d6a8a200b3ab13e797c07bc409986ace9d4ba1ab2922b6223a72bb86dc40a5a7641a85b4acb7a1d3f92afc53ae4e7e5f827f25e0330aca8a60491d2d31f49032a02564f01ec52e21ec65b2e94a8d2a7cc56e438be3326d4e2618ad06db379d7d81da84ef0549590f3b46f7a30971bc1baa71d5fd78607e0a", 0x99, 0x2}, {&(0x7f0000000100), 0x0, 0x3}, {&(0x7f00000004c0)="3649fc3dc8b283b6aeab6dc5f0063c2fcd23f17a0be67937d189fc86ade93d52c703d893afc7bed135131a035c2949df1dd7f3dd8f337627ac28968426501c7708fe84247a50ec016aa6494a19c982dad6b9e0b43afc64aa5c0d7408ace73a3f80bd0369ece10f6faa91d8d2f82bdd0347e9305a3fe63cf7def743b15cd90db299722c3bce603cf51f285fe7f8991222cf4759eda9c610b398bb58d24f929a83feca605b046c494302f00896b1bd5441e0a3b664e1453c9ff1313f7a4657adb4b34a49280eed2096b87859229faf29775ce408a831f25d617a24fa43a21487b78d7fc54617e340d2bc9ae74ae438e54004fddd0ec83d6c51c5e2c0ff0ea9fc30192cc4767cdebfa452849ebb4bb559984cd24aa8f345bae0babfbf3b24f7fa4479853557c79afc1008833bef0dfb786f3da80da48289d5f95312d4dc0801a367c86cbc789ad1095dfa5128ccce5a9eafcf3786b330f4791d1c52781aa18fd9d0c97ebe1f0e5c3879b6c131c77d72278e817bf6fcd8f3b4f341c5e092920c4342cce2095898687b967abc0fcadd46d7c3b51d3ecd40f9f5defb1e24b92cdf9a2551db418242cc827812834eef251e3322b6917a19cfcf89e345a432e70c39f23fc2b6e3f587e125eaec3c898e8ebb3725ab3b4df236dfd2c0978f20fc22535a3d5ff4a4836d3b8bc83017709cefcc363ed9c8f181cdf323e57a20b46dfe90f08713fe28da61768ceab14762e6df42b3c6ba7a76e2a3aed250d6f3aa02ac6a7a87ba3938fd923dd2e45c802d02c6082a67939f9de25ea2d19a8e895dc0df1245d27f78ef04478bfb9214fe83aad980612172f49f9b7e3dc07060877b9e6868c2d5f9cc744f66b3ab28c88a176920debfa6f4bbf8c90587940a02b347deb1bbc5ef91590ea5c497c4e9065bc83cbcdceb6119bfbf998b0f9028bf1040351bf9bddfc23a41b81e2cfb5f8444683e82afba70de31907c7fa777df86868bfad75f5eb4dfbafa66fbdf3f34741e772b13ea3d3a29f31123dbc4d904e12feee6679b6ed198d8761c5373d5f2e8f676189535762a84b9e14e4a7dee248388e9c02f894f35083923f6ed173726d582b7652a53d2d02bca63091f9e157d1bf1c2a83d8cf6661103a385cfc4448bc8301549b1d5e2d76cc2e169f0f09f4c0957c3d0174dbfb7e758e6b5c69e758e3475d342f9c5534acf5c86b742b4ddc074d5fd9253d6b07b4e376b1c793de213f5fe42c754c1010fa744746794209466e787c53c611a23382b2913c06301989c8d3ea354da292a02989efd902f999018fcdb37d13e5f43b3ced637596a946c8a79e7dd0e8fb9a98c1748ee71ad984a17b1fd5f0acd5b8084ef9c509ed8b7202da0b74e096dfeeddf2fd5b7d35aafd280f955b00a37562c0a1c324caa8b575b54c0f0facc2c3f5f23eed6a5b7154851d0100dafa3f82f5ac705c63b241bccf600a7d2780ede62ac06c68353f3c677fa7dcb086ac39f1d9395870ebfeaeb458801baa57f506475b2a2a15ff6da64a284db1ae92c389d0c1241cc11454ea57bb8cf6379f3b29c4d8c987fd8d9b4a8ea83efafe8e2d2d3e94c6648f836e82dce9e8f08d6bbddd4079c6bf5c5190eca4c8db9079f01ee31cf49bb48e04207a56604f0e6158a8c448b82b6d8c90c7163359c2626ebfe82661ffba97b87a2451b2a2ba5167f8510519f81b5a86d71b6972b05cd11f5854577528ea2598b98542558c012a2c9677fe98d02743fe86555266cc222e1e795ffc432ee7f383d7b7b6a1e98d8dbc2926ce723b846cadccbd7b91c801a65012616c5e91f215e308ec3e311a8d615794b3252b3a039f89543bacb92ab7c8733cc4f6e3c178cc0c0ea4ed205ab6e9b42337daedd57bc8898329bafc5496a31a98be7ecd2464a7a187b4a4d39946cd29102c26d133697faad5f90cc93a03c574d3a223cec8294d2a3cfc7cbe0115972664e0d26a5b97731ab015687434cba80ca7ff969cb6dae6f994ae9d20ed756e91de9b3c314a6b67e294a32f745b30e48aae6a1d90443690fbe7ed310d8c4d09bfa2df748ba69cb06023ee4f9f8eaa07b1312d8e6021acfec1389ebf3793ffacc54bcd907796136e7cdf32c74b9bea79a6705c8990cc52d9e52a8c957be095061843c6f29ef35861d36cdaa15fa3795b41293d0cc2ad6861c0236366c26a7fa014210b6cf6f76366a4ca23c5c2d295ad47484198ed2378fd649341b72ecc04c33d53c3a4d5c1b4661789444fda485a4c44c4d6ad4dae874efd442bef30a190a5b2b75b7264bf6352120cf91939f0aa5798134fbf1c8da3c5e36d27b5cc294470ecf5b1885e9f249182596953ec55edc61dc2aee2aba3a4086f096ed9b0f45065fff1be46e1c6d0f0d6673ae8b57eaf140155686bfd65573c7c378efaeb01416873b5d82ee669cc342e97327be94c873b97ecd01e19420b2c33deb6cb39888f27737f0e7df836e10940622543781334799cd42eea85134aa1629d5999379aaa5bd24f349531bc39df7abc40bfff3e4303b5f07a38e2599b00dc07ce9d440a04d153923e56f4de07ff48db8ce6271f3b8ef878888085e11cfc202a1c7941c40cb233bf36da6904777783c9f5a88340fa134c9d5016c3cdb5483ddf3fe63967d606756b9348d8c20b251bbacfcda73247f0b82413aa1466c5465b0e4b3a23b751f1fc5b486ae9202d3d1a1f19e0d083f1c7bda1eca559c75b20a0273689aea34f91f945ad8cb8277c2d9b88c46b2e47a76b0eae607b6b467e72789b0c1e820c3bc8342d7c399f56d5020275445824eec6c63c25e9a6e71fa6f6612b03e08cfed3ad9078cf3a69b0c525dc59372b0ff5208bcf7305ab24d32dda9deeff5620ed71c65838005024f08b3d3605bcdde4687f34fa3c5cd4e9785d25c757fd4e4c3c4802a69574f5df8f1a0b34ca476e2bee01b6127120ae7891ccd927e79ac47a26bbf0cac6190016a95f99db52e158153c4da3228038d7a6bbee6ca2006f718928570267038fff0a2c2f88b518708f99a2b3173fa26855f64133db587f11822816d26c21b3811aa187cd7a107ec40e1cb954994a3de4258e622d81c06bd638acd5573f2b8146c2671e2d72b9e46710d208ff8466cff2eb2b3f666971b767f50cceed5a225a20d52adea8807f71a4360f2c53d3db73ec98c7331cb86f3a2b0071796fa3bbfdae48361bb1394fda7ef0466ab4e1703f5b6aee0dc9242f4b32e81f506b107d7db9e761f5d3f441d8d7b4c4c001732bb0940db58c3cf764c50097df25d0f2fad26b433ea5ac8bbcf9d3d68ac367dfff76a39e47eaab4dd9eb9580e6ab15852520ef28e5599b1d4b5d2b02d7bea058d4f9b0ae13614ac22734ec28f2cf981ff267257a93d09b5928f2c05ebfdc2c0d02d13c7248a53cfb8083a5c4999e8406a97df95d240e408cb6e555489153a5cae4aa34170bce83fd942cf815c2196b984881184d3a05e9a15bc6045989a6f893cc7b981a801c566b41e9caa078a81f64fffa18dbbd3664721431851f2754cfa57e3604353bf024f38ecabbd7fd512e402f23ded5b8e47036c7791b0b9463311d55a893081f914c515086642d93860cae371dcc13825a3b54bce3a6513fb6bb69ceedf9153de0785c9f5de759b1009835a097fa33649a8e4f7cb91d3586a5ec0d18d4795262e5ac1da6c0da50c55e710848beb10d4f0d0087a7110695761726e4f82acc13fc0334290c3aa35be04974f880e549d5ae9e9e80d7d402c08171f4925c5f4c0ee2e10652b116311c9af7dec2a287d71bf152a061b5d7e1c1b2ab549687da1c71fee0e7786441a9df7f5d547090fdaa5ab05b585f5085851d520fcc9e288158cf0918629bb1bb379d81d0a95f975c6aa236bf951b73c27964433bcf4f0758401f2cf101ccf135b3ad25f9c0e168ff50a5cd096a357242c8c88151fa788e13496d47e67630a2adb1c7e0eba25c9eac7afa164d03f635c7973636831a637e3a08e742f8b3bd1c24e8b3202d10ddb3efb323f3d660f7ce3383f68604d463b98d30b1768142fd79a7b99eaee649a80ac72caf6e141eebe815b120cb7a4ff147a4299f1b08313fc2d9f925f5e137a462a2123e09c0078601d3ef682bf1cc90a924e30f61db960355d87be1f65274ef64c7928ab49f6cc35c84eccbdff2d7de4946161ef6aca08a5d5b58d87cc82089b776f2f1db8a0e22c59f44718e1fa6296a41abcdbc0b2d7f944cae77dcea2fbf055dfbecaf94718b8e8219e769adedbc30d3ceb34763ab259f29970302c74268bd00b5641d6d7db8a2567e5500cbc4a58bad166c6441070e626a588ae1fcea32f9a65083732187d1f6a6f74b6ed97f6ed836b70b067ca855e000681fee45f80a5d9705b62db76ad7ee91340017efc28f13b814ff1418d9efb27a0b8147b45503878852e9a5e6c81a7684a35e01eff3af50adcf3c30ba657f624c4344a6c828870f03b7bbf9566cee13793b38dca14af6825bc7501e821c96d3e93da068b4277d38a3685799f01b12bc630df287e26f9dc3de1a057050ad038436e5a22a510b208d0a53652bf724479b53e0deff93ad18a4838aef051fb30a6d68fb34cb0308371eb4274a6c4a9bf543a70d2ff9d17c8c0e415ceedda5e722a1bf9ea4ef4870804417efc015f7d5610d80fb49be576dda32d972a454f4d5e1fa5c35eda2654c55a335f7d6c7bca05783e777aa9aae9b12c4426559abe5bd398d3e34891c083916bb42d8fdbaab882c285974ab5bad94ff629da622a72f746c0da24e5a09e8c13b8e746dd2088e4e4c327b329cd3422ce316d0f59ac02c276ab8284c8439a43c924bdba7d57944a0ab37098279d7c12ba6b117fb0aa4bd0389130c3c6b55fd8f0ed6457fbb268f79eada67dfc3a54d27e0fa6954ded8eced84ba6601acd8d19a7a54e08d88199f4c85293557a12c6a4252c4b6a96e7d5d26f7219479d6b027480fbac6c194bf0c95c4de5cc127269793b16bf1c38925f24de1cdcf8903826ec0d143a0cc117e4a6933b78e7b7ea7b716c9c65a26d66cb67222bc56696801ded1254135db5e3e53179b813ecdc40d589ea6a75ef3a3d1e53c3494326f5494ca6d9060b03f04fe1d713bcba715ae2709c479ea79f6205165c12745bf6c77729e1642001801b39024d826b27c074f25de8e5cd8a4d0c2230f8cb0b69b062499cd851689775478cc57fe2e01bf63ab6db90314c8f2e6ae52219a80bbaf2960cfcfcb893dc6ce18b21f84f21a471c544b288ca2c6fb4493c4007f3c64e5e927780a50bf695d52fac5910754195dc4039cdc70eb18242cce328f0ebed17c89fe6954f151667c6292b4da4b4a705ccd56880b1dda6b8216e026dba369ae0bfd39eb5e04dc54c4596d794104fa54cbb210e5e1fc84bf6da64c721b5ded6aad3095cfa2d7a3c419cf42dd910e1d76ad35590bbee785a8dc14d06df15d74f47c6398c7059fad6ace996fee7dda7fdba162693601566be1cd9f1caad54012fb5a4c04e6a78a0881da4a1c2826c6ceb830f91adee068592b82cc56a86606d272f869b9a472343182c07b988ec35710983e35a0c334d04968eed1005e89918b5c46488fb3a6cfce57a1f09159ea5dc2ea205a751e54cf3e26d3f97538367b82a468a1163d1c540b2724dd4d12125ca1b7a782cc79a4ed77906ef82316ed0bcf7c65e1fdb7c96ebcc6b009a602e33a45b853e661cf94fba2695187074fc8635e46bcb813541719e41fdb3d4d6fa0c67dd18dcfa277033eff35b9a3224a66d5cf6066788ae2805c51753ce5cfdbbea08722b24e6d001205ac6a6d884ca004882", 0x1000, 0x3}, {&(0x7f0000000280)="ea24c7a70d3ecf3b62bc1c5a39a206ac70baf2e57cf522c5fa84f64a4e4c7f6e29a1cbddf0d671418f7a176c8e3cc0d615062b8b0b6c2aa5983251", 0x3b, 0x100}], 0x80, &(0x7f00000014c0)={[{@gid}, {@nr_blocks={'nr_blocks', 0x3d, [0x37, 0x30, 0x39]}}, {@huge_advise}, {@huge_advise}, {@huge_advise}], [{@permit_directio}]}) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) exit_group(0x1) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB=':'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) [ 500.736075] libceph: parse_ips bad ip '' 02:15:49 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = dup(r1) sendfile(r2, r0, 0x0, 0x4000000000000081) r3 = socket$nl_xfrm(0x10, 0x3, 0x6) bind$netlink(r3, &(0x7f0000000080)={0x10, 0x0, 0x0, 0x1}, 0xc) r4 = getpgrp(0x0) fcntl$setown(r3, 0x8, r4) ioctl$TIOCGPGRP(r0, 0x540f, &(0x7f00000000c0)=0x0) syz_open_procfs(r5, &(0x7f0000000100)='wchan\x00') 02:15:49 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) socket$inet6(0xa, 0x80003, 0x6e) r1 = openat$hwrng(0xffffffffffffff9c, &(0x7f0000000080), 0x435000, 0x0) sendmsg$DEVLINK_CMD_TRAP_GROUP_SET(r1, &(0x7f00000002c0)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f0000000280)={&(0x7f0000000100)={0x158, 0x0, 0x8, 0x70bd26, 0x25dfdbfd, {}, [{@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5}}]}, 0x158}, 0x1, 0x0, 0x0, 0x4044000}, 0x20040001) open(&(0x7f0000000300)='./file0\x00', 0x161801, 0x80) r2 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r3 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r3, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(0xffffffffffffffff, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r2, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r4}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 500.814739] libceph: connect [d::]:6789 error -101 [ 500.833334] libceph: mon0 [d::]:6789 connect error [ 500.860545] ceph: No mds server is up or the cluster is laggy [ 500.876683] libceph: connect [d::]:6789 error -101 02:15:49 executing program 3: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) clock_gettime(0x0, 0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x12, 0x0, @thr={&(0x7f00000004c0)="dc58f5ca47458e73f54a60fdf06c8ea136cdebc0e531eda607aa9970657eb326b635567983f6390be1864419f011bd43", &(0x7f0000000540)="872aa7653d79b32a26040c0aa08fcb53d6a58301cdcb6f728fc9ccfcfb66b1790a7ff5747f3e1b169b523b2d9f7be7aa0d5e13295200107c81d75e335b6cafc5bebda5c8a8966e8b76ffae24c15cc127753242bd370b8fe6aa898abdd8cebef0f675d0ea24a1931a8116dc37f31c3538135178533e9031abe6a553c5f672b0e18de329f9"}}, &(0x7f00000003c0)) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) timer_settime(0x0, 0x0, &(0x7f00000002c0)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) timer_settime(0x0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x3938700}}, 0x0) sendmsg$inet(0xffffffffffffffff, 0x0, 0x40) r0 = socket$kcm(0x29, 0x5, 0x0) perf_event_open(&(0x7f0000000180)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x203}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) sendmsg$kcm(0xffffffffffffffff, &(0x7f0000001c80)={0x0, 0x0, 0x0}, 0x9010) r1 = socket$kcm(0xa, 0x802, 0x88) sendmsg$kcm(r1, 0x0, 0x8000) sendmsg$kcm(r0, 0x0, 0x0) setsockopt$sock_attach_bpf(0xffffffffffffffff, 0x107, 0x12, &(0x7f00000000c0), 0x4) sendmsg$inet(0xffffffffffffffff, 0x0, 0x20000000) ioctl$PERF_EVENT_IOC_SET_FILTER(r0, 0x8b26, &(0x7f0000000040)='wlan1\x00') clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB='c:U:'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) [ 500.917561] libceph: mon0 [d::]:6789 connect error 02:15:49 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) socket$inet6(0xa, 0x80003, 0x6e) r1 = openat$hwrng(0xffffffffffffff9c, &(0x7f0000000080), 0x435000, 0x0) sendmsg$DEVLINK_CMD_TRAP_GROUP_SET(r1, &(0x7f00000002c0)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f0000000280)={&(0x7f0000000100)={0x158, 0x0, 0x8, 0x70bd26, 0x25dfdbfd, {}, [{@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5}}]}, 0x158}, 0x1, 0x0, 0x0, 0x4044000}, 0x20040001) open(&(0x7f0000000300)='./file0\x00', 0x161801, 0x80) r2 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r3 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r3, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(0xffffffffffffffff, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r2, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r4}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:49 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x607e01, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:49 executing program 5: socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$sock_SIOCGIFINDEX(r0, 0x8933, &(0x7f0000000080)={'bridge_slave_1\x00', 0x0}) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r2, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000100)={&(0x7f0000000140)=@newlink={0x40, 0x10, 0x401, 0x0, 0x0, {0x0, 0x0, 0x0, r1}, [@IFLA_LINKINFO={0x20, 0x12, 0x0, 0x1, @bond_slave={{0xf}, {0xc, 0x5, 0x0, 0x1, @IFLA_BOND_SLAVE_QUEUE_ID={0x6}}}}]}, 0x40}}, 0x0) ioctl$TIOCGSID(0xffffffffffffffff, 0x5429, &(0x7f0000000040)=0x0) setsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000000180)={r3, 0x0, 0xffffffffffffffff}, 0xc) [ 501.033118] tmpfs: No value for mount option 'permit_directio' [ 501.075123] libceph: resolve 'c' (ret=-3): failed 02:15:50 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) clone(0x0, &(0x7f0000000000)="6a7cd1334a6df562887899a106d3e0eabb7c6f4cb693caff7f6f04caec3033cbdcc1c89fec", &(0x7f0000000080), &(0x7f0000000100), &(0x7f0000000180)="47b150b0d8ee0114fb6baee37bfad6e5bd7ad63e5e4e1c4a6219b1e3969377a4916d4ba8da55301034bd0c9d0df547ef14ddedd2b53bab547acd7c2a85c98b468c351baef1d246a0567637b7475a1fb284eda6d71f3bcb0b7c1f1636c28cd004d26eb4ef88c6f571c009e1e2a24635a97bf806d6437cf0f8ee8353") r0 = socket$nl_netfilter(0x10, 0x3, 0xc) mount(&(0x7f0000000200)=@sg0, &(0x7f0000000240)='./file0\x00', &(0x7f0000000280)='coda\x00', 0x214010, &(0x7f0000000340)='(*]^#\x00') mount(&(0x7f0000000400)=ANY=[@ANYBLOB="37ca1e073aa29e652cb583ad39cb560c8dbc19cb6fe98b49ea45dd2b0a76e76eb170380a2848269fa88ddf9b9d46b6186ad8b8dc252127f3fffa0e2e02668556c39290cfc0d2b9085b393cf6b41726e9f515a382455cff5364e1c905753c76fd4f6767945d9b04eb83625605e163f56e30af0c9450d52acb28f92575ee646794e1fafdbe105ac9181139a8084c2d6772efc9a4f531744b", @ANYRES32=r0], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) 02:15:50 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) socket$inet6(0xa, 0x80003, 0x6e) r1 = openat$hwrng(0xffffffffffffff9c, &(0x7f0000000080), 0x435000, 0x0) sendmsg$DEVLINK_CMD_TRAP_GROUP_SET(r1, &(0x7f00000002c0)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f0000000280)={&(0x7f0000000100)={0x158, 0x0, 0x8, 0x70bd26, 0x25dfdbfd, {}, [{@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5, 0x83, 0x1}}, {@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, {0xd}, {0x5}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5, 0x83, 0x1}}, {@pci={{0x8}, {0x11}}, {0xd}, {0x5}}]}, 0x158}, 0x1, 0x0, 0x0, 0x4044000}, 0x20040001) r2 = socket$nl_generic(0x10, 0x3, 0x10) r3 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r4 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r4, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r2, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r3, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r5}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 501.095882] libceph: parse_ips bad ip 'c:U' 02:15:50 executing program 3: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) r0 = syz_mount_image$sysv(&(0x7f0000000280), &(0x7f0000000400)='./bus\x00', 0x4, 0x1, &(0x7f0000000800)=[{&(0x7f0000000780)="adca8a85e89b9a060ee6d1793e983408bcb8e8e5a1c6f29f919c13b93f9389cf2668eaaf6464d3964584994d5ff5b69dc540b223bcd8fcc1195d888b8227d36f487a5b54081a973b850e5dce464423c21ad1f1d258583b3ab26745cbe094cd16", 0x60, 0x99}], 0x10000, &(0x7f0000000c80)=ANY=[@ANYBLOB='ceph\x00,uid>', @ANYRESDEC=0xee01, @ANYBLOB=',subj_user=.:,smackfsfloor=\',permit_directio,measure,uid>', @ANYRESDEC=0xee01, @ANYBLOB=',defcontext=system_u,dont_measure,permit_directio,euid>', @ANYRESDEC=0xee00, @ANYBLOB="01e200fbf9d4526b1ca61c595b5581619e2939841c2b53a113473ce2d03dade76b91f919672c26854e3095222bf70bf82ae96c1ce3943c4c7cb67332ab861d8d46cb10e8f86401c97f0900e93f8162d07d7f20a3f2a39a4b093558a9683c0dafbaeb4a8f22038eb25b0eec3ac313bdf58f9670fc12c4cc237ac61e580775f7afa8193a2bcf7c82a363b41365ef866ba9e5cff35d55d00e1f405cf297abf4b34eaad84b"]) openat(r0, &(0x7f0000000900)='./bus\x00', 0x8000, 0x2) clone(0x3040800, &(0x7f0000000600)="72bb320e5ad58fe040ebb28fffadba48083eefe5a2e9e0de638e75a98b1458ff2033262dd9e90b515487deb511d2d93868352bc29b752b93225e5d748a78f54be68d051bd2970214ebf12afa430664b5469dd25317df0ab4f8e232cdcb605cadf476a527ef4d12601b18646744d66f4bf07c82cf9b592dd98e4ce1944580f7984064f18243952894732806b8fcaaf70ccf616b491fa0c38eba471df355c9977d0af2faf1f30a5ee4878416b0961819797ea010ecd55463fe2357dbcb3cc6ddbe5d60f9a5fe3b7f5ba06fd167cbc273deb12e4610d59e1d79b23dd5d06483cfdc0dac81582408", &(0x7f0000000100), &(0x7f00000001c0), &(0x7f0000000700)="ecb0593d2188bc85b012bddc0a149a5b6505f5630f94899c1db99241c1450764bb18aa6682459c66be368dd3e62b6b2b06bf67765e28fd7ab029273bc7f2f214a711a2db710a4669b35df8da4f922b6312f65fa360b6ca4c02d099cdf986652c70af9b5f41e6483478d89cd1fae2e4fc888f01aa98c3") exit_group(0x0) clone(0x40001080, &(0x7f0000000940)="348d52d36224472b32b45ff25f792d3131ec5a7dcbe19bcb6381d1fc19578f4d687c12e59574fb364a4ab2d7b3523d5cbdefe8148f827728b1d7", &(0x7f0000000980), &(0x7f00000009c0), &(0x7f0000000a00)="b045e9628574b281328603f3ba135d357b3a79f4d89b0cbe80b204ce73a7e2c53693b1ffaa6a8eccd68a1e304d37b7ea754f38923092c381fd21eea79961ffec0e2cbda4a3e78f1746b8c54cd08bea3395b3e8ec1a27d96943116a31374adb7fcfdafcb8f3e74dc9c1d7b8297335cb645e16a2d3c98a59a88c5da6f881be06456a17172436c60f2e0ce8059422afc481c435476d374cd268d241649c535cbe94ccf8ec8eac9e34b99574a227a011a0493c4ea1b9ee992c6ebd66ef39587892e2b2a3ff843fe0410f55556f3b1bad87be2b173ea2ed2ec82a3d8f4149e98f") clock_gettime(0x0, 0x0) preadv(0xffffffffffffffff, &(0x7f0000000b80)=[{&(0x7f0000000b00)=""/99, 0x63}], 0x1, 0x0, 0x400) clock_gettime(0x5, &(0x7f0000000c40)) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) timer_settime(0x0, 0x0, &(0x7f00000002c0)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) timer_settime(0x0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x3938700}}, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB='c:U:'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) syz_mount_image$vfat(&(0x7f0000000300), &(0x7f00000003c0)='./file0\x00', 0x1f, 0x2, &(0x7f00000004c0)=[{&(0x7f0000000e00)="36399e44c3c38a14b9333ea77965dd68dfb231b2db9535da193734475fbba4b1cb3ba0d71fdbb2f0056e366d23de1a732958a229681833fa95ef260651eae1e9e2ed93cfcd31d9bd3a497cda7f6d7eb0c854947ac2e5c3f8c145a00d34935c05c2910db04826fa6bb2daef1fffcde23fa6db488cfe50dcd4544431405f218b95938c012540d7e61ac4d0698e4c60974781db217c106eb40d9899ed80fe770e1eb68bc452fea4f54b07d00e664bf9cbb7b4704375ea1d18f9a074492d0aff289a9879e9e9503ea4767155f042632d738b75f205e1f8a0fffabed847e28e4fe32ffb7b810c6c3418d6ff2114edefb0", 0xee, 0x7}, {&(0x7f0000000f00)="60e443c2f72a3e5756ddbfac30f6099937c8b2193d50ae8786fc47ce7749f49932ffa5c240f26abfb707cb97a7dd6e411ddf1e69976af4ba52ec05935235e60805a32053ddfc538f72879785c58c05d6118ae34cfa6b8b9ed5ccbc121981add3f0139e8ea88e536515e90c9a4ffd7550aa9f8100d7736f566893b609ce4e67913b121212d29551278e61c6e69af9160d21337abdffd82c3a3474f6b13aa85b81955848b8ed0aeeaa78b4385ac917034c4e1c9c782a9307e72a9e936ce621e67df6afee75f13d2b49df3517346ae47621713ba53f6b8532266e00f11ac097d228d1a075f4f176933507c8bf94ab4aae4a35adaeb4aa23d60491dd968a", 0xfc, 0x81}], 0x400, &(0x7f0000000540)={[{@shortname_mixed}, {@shortname_winnt}, {@utf8}], [{@seclabel}, {@fscontext={'fscontext', 0x3d, 'user_u'}}, {@hash}, {@subj_type={'subj_type', 0x3d, '^!{:/'}}, {@dont_measure}, {@appraise}, {@context={'context', 0x3d, 'staff_u'}}, {@obj_role={'obj_role', 0x3d, '['}}, {@appraise}]}) open(&(0x7f0000000000)='./bus\x00', 0x141042, 0x0) clone(0x20000000, &(0x7f00000016c0), &(0x7f0000000080), &(0x7f0000002900), &(0x7f0000002a80)) timer_settime(0x0, 0x1, &(0x7f0000000bc0)={{0x77359400}, {0x77359400}}, &(0x7f0000000c00)) pselect6(0x40, &(0x7f0000000200)={0x7, 0x2, 0xa101, 0x5, 0x224b, 0x1ff, 0x200, 0xfffffffffffffff7}, &(0x7f0000000240)={0xb84, 0x5b, 0x0, 0x401, 0x400, 0x1, 0x1, 0x6}, &(0x7f0000000340)={0x948b, 0x9, 0x8, 0x5, 0x7fffffff, 0xdf000000, 0x8001, 0x5}, &(0x7f0000000380), &(0x7f0000000500)={&(0x7f0000000440)={[0x8]}, 0x8}) [ 501.149043] netlink: 'syz-executor.5': attribute type 5 has an invalid length. 02:15:50 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x607f00, 0x7ffffe, 0x4002011, r1, 0x0) [ 501.212874] netlink: 'syz-executor.5': attribute type 5 has an invalid length. 02:15:50 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) socket$inet6(0xa, 0x80003, 0x6e) openat$hwrng(0xffffffffffffff9c, &(0x7f0000000080), 0x435000, 0x0) r1 = socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r3 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r3, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r1, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r2, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r4}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 501.293548] ceph: device name is missing path (no : separator in 7Ê:¢že,µƒ­9ËV ¼Ëoé‹IêEÝ+ [ 501.293548] vçn±p8 [ 501.293548] (H&Ÿ¨ß›F¶jظÜ%!'óÿú.f…VÃ’ÏÀÒ¹[9<ö´&éõ£‚E\ÿSdáÉu0x0}) pselect6(0x40, &(0x7f00000000c0), 0x0, &(0x7f0000000140)={0x1ff}, &(0x7f0000000200)={0x0, r3+30000000}, 0x0) 02:15:50 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) r0 = creat(&(0x7f00000000c0)='./file0\x00', 0x0) write$binfmt_script(r0, &(0x7f00000002c0)=ANY=[@ANYBLOB="230275964c0e4d1a14750ded544f96c8b5b62d6092608636c7d825b43245e955b642d9a3f1b2c95d8a3b0a3da597a1000195914376666e92611fe2862102f15763419c960358"], 0x141) close(r0) sendto$inet(r0, &(0x7f0000000000)="718469e70d33c9059c74f2c807a22ba4fb244168370d9647b0c00c125f0dc2c5278129ceb1897b90a63ba70591e5db2783ff", 0x32, 0x4040000, &(0x7f0000000080)={0x2, 0x4e22, @initdev={0xac, 0x1e, 0x0, 0x0}}, 0x10) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB=':'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) [ 501.375002] IPVS: ftp: loaded support on port[0] = 21 [ 501.383315] libceph: resolve 'c' (ret=-3): failed [ 501.414199] libceph: parse_ips bad ip 'c:U' 02:15:50 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) socket$inet6(0xa, 0x80003, 0x6e) r1 = socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r3 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r3, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r1, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r2, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r4}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 501.485738] libceph: parse_ips bad ip '' 02:15:50 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x607f01, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:50 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000000)=ANY=[@ANYRESDEC=0x0], &(0x7f00000000c0)='./file1\x00', &(0x7f0000000080)='ceph\x00', 0x2020009, 0x0) 02:15:50 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) chmod(&(0x7f0000000040)='./file0\x00', 0x20) r1 = socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r3 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r3, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r1, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r2, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r4}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:50 executing program 3: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x4) clock_gettime(0x0, 0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x12, 0x0, @thr={&(0x7f00000004c0)="dc58f5ca47458e73f54a60fdf06c8ea136cdebc0e531eda607aa9970657eb326b635567983f6390be1864419f011bd43", &(0x7f0000000540)="872aa7653d79b32a26040c0aa08fcb53d6a58301cdcb6f728fc9ccfcfb66b1790a7ff5747f3e1b169b523b2d9f7be7aa0d5e13295200107c81d75e335b6cafc5bebda5c8a8966e8b76ffae24c15cc127753242bd370b8fe6aa898abdd8cebef0f675d0ea24a1931a8116dc37f31c3538135178533e9031abe6a553c5f672b0e18de329f9"}}, &(0x7f00000003c0)) perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp, 0x28f2d, 0x1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) timer_settime(0x0, 0x0, &(0x7f00000002c0)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) timer_settime(0x0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x3938700}}, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB='c:U:'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) open(&(0x7f0000000000)='./bus\x00', 0x141042, 0x0) mount$bpf(0x0, &(0x7f0000000680)='./bus\x00', &(0x7f00000006c0), 0x800, &(0x7f0000000700)={[{@mode={'mode', 0x3d, 0x7}}], [{@obj_type={'obj_type', 0x3d, 'ceph\x00'}}, {@hash}, {@dont_appraise}, {@subj_role={'subj_role', 0x3d, '+}'}}, {@uid_eq={'uid', 0x3d, 0xee00}}]}) clone(0x20000000, &(0x7f00000016c0), &(0x7f0000000080), &(0x7f0000002900), &(0x7f0000002a80)) pselect6(0x40, &(0x7f0000000200)={0x7, 0x2, 0xa101, 0x5, 0x224b, 0x1ff, 0x200, 0xfffffffffffffff7}, &(0x7f0000000240)={0xb84, 0x5b, 0x0, 0x401, 0x400, 0x1, 0x8c00000000000, 0x6}, &(0x7f0000000340)={0x948b, 0x9, 0x8, 0x5, 0x7fffffff, 0xdf000000, 0x8001, 0x5}, &(0x7f0000000380), &(0x7f0000000500)={&(0x7f0000000440)={[0x8]}, 0x8}) pselect6(0x40, &(0x7f0000000100)={0xe006, 0x31176e87, 0xbb, 0x7, 0x81, 0x9, 0x9, 0x7f}, &(0x7f0000000600)={0x7, 0x80000000, 0x3, 0xfffffffffffff001, 0x77, 0xfffffffffffffff7, 0xff, 0x6}, &(0x7f0000000280)={0x8, 0x7, 0x38, 0x100, 0x8, 0x7, 0x7c, 0x4}, &(0x7f0000000400)={0x77359400}, &(0x7f0000000640)={&(0x7f0000000780)={[0x5]}, 0x8}) 02:15:50 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) 02:15:50 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608100, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:50 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f00000006c0), 0x0, 0xd9f, 0xda79) r1 = socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r3 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r3, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r1, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r2, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r4}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:50 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) r1 = socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r3 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r3, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r1, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r2, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r4}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:50 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) newfstatat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', &(0x7f0000000180), 0x1000) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x12e023fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) [ 501.931423] libceph: resolve 'c' (ret=-3): failed [ 501.950560] libceph: parse_ips bad ip 'c:U' 02:15:51 executing program 3: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) clock_gettime(0x0, 0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x12, 0x0, @thr={&(0x7f00000004c0)="dc58f5ca47458e73f54a60fdf06c8ea136cdebc0e531eda607aa9970657eb326b635567983f6390be1864419f011bd43", &(0x7f0000000540)="872aa7653d79b32a26040c0aa08fcb53d6a58301cdcb6f728fc9ccfcfb66b1790a7ff5747f3e1b169b523b2d9f7be7aa0d5e13295200107c81d75e335b6cafc5bebda5c8a8966e8b76ffae24c15cc127753242bd370b8fe6aa898abdd8cebef0f675d0ea24a1931a8116dc37f31c3538135178533e9031abe6a553c5f672b0e18de329f9"}}, &(0x7f00000003c0)) clone(0x180000, &(0x7f0000000600)="8750aa8f9973ba2368c3d46fa4ffe3d92f6f66f2dc66a0f9e13c1f892d9f4535c3cb8a649384899147b554888d2f2dfa392f73e228a51f8b74355fb637ca5af20576eb930304fa77038fc39de719c8a8b5ce2577676e0257a452514c293ba905a912b2b973a93a9bbb71dca9134ceca71c7a4335da5c10b441ea1ba046bd3fe19f9cb491a8a2c7f7bbd887a5e56487aedcbe0ebc1c436ccef84de3e169f35a31fd561cd1cfb6320d1fab0f89c7b927596f6e9322adc1d3110156f7c476315e3f9f8063cbca581f14180addb427656d53213bdda3901ff5733fbdfd06f644aede0c3602230368b9836ea7a6be17c52670f3e644492408b72d4377de52cc44360155f58a1a335b2ae166d3db2f1530b042f759487d24ca26f074b1a2c7724bc3e5cfdfcdab633a6b6ccbae8b2642701d0df58ecd636f1809424a7cd427b288498cece3d5e1266cd0370cbd7618e779cce5108f3a4dc34320c3e1e795edb303361f8dfad79b04c2c196e9d91adba75364259298568ca284f0187dd4a8a343577c4dcc9711ac4353bd737da6fb589872dd1cd41c939759a6e857e22c856cf997681c2cf8a4e6662b2fd11456cda6d53542a4ccb37d78efcff97956c2d631d8db69bb7bbfcaf982738dccf07753d5ce409c8f0fba0793571bd48c178bcad33be4276bc90b2f506fe92351e08cf1ea9968ad59b030bc83a862d3ba70216ace07daaa899c59c3842b27a37791f6ee5c32ab0ca51fb286606dba4ba3d3936618376a51e2fe0d34da8881acf16515a90940713a55600f83c423d43d337990e69ae5027f327e91c8115a59bdf7936da6ad4dc988f63d147384550cd14f2c895b46429e525435bb1ed3c17d678887b6573aec96dc668ff3edb402a4bca2d20862477aec8827f11dfce9112b1638ced15c36d37151b57c40793a5263de31a9dc5c3223f265e293c0b0979c531dece7a5c96c85c23f1deb52700b546983d32465a2f7e17e3bebb77e6cf122296ab4ea326be97dc5828635bef5a5569328ceb60c1799930e223b2cc44caf361e1390649f31b038c3920329d8c74b94dcb71b9fc36e5adef49aaab0cc018c3ada70f36580ab32872f331af72f7b7145fe39a5ce89ba648d90ebac25827e50b98ccf63aeb1488e7ea5be721edbb0c4f97df5ebae631b9f4dee50478c6333872ddc57acda204efd600c737218c2dbec191186006e72bf72f284cbddebc82ea7e080ee372307b87077f3e149ad7e38429de76ddb3a2a7dc986b07cac455c9f50ee6d1187505e2fa5b798fa7eb6bf816b021b6e60b4a3f90ebf1cfd3e9851229fa6239aeaef1ff544acf0d87571cd0e73dbbc17ffd47d927d70bce1cc18c3ee74cd15ff6dad3e41494a45a4ce830d0b0f751342e78993d6ae41f9124f1e466b38f91306a574b165b00c702bf658bf5ca5551e76f5bcea0b2a47a0dfbefccdbe2d77c4aecc726c6a43902198665e2d45f15b3353c6b53cb1830df1eaaed9c229fee4d2ca291d225e88a42a20fa672d16d56c8e18e7ef79848372a510877d4d2c20ad1dced578a04db507fa48007748e7dbe90097c8cd45ee56d70a950fcbdb460614bd8918f65ccff21efe29ea9071299b622b24c1cb8920f0dbc8d5df57e259c1c44ad9d2f0e333bd3bc005ddbcc921c2242ba18b1837f914a737ca780f7ed0dbc4bf1201ce5a5147d848133b520cd678ac7872c6744a6637e3fe450e3190a1cff042459eb52bb87f144d2270c00577f0198ab8d2751085bb36d36d96eb7ff71d3a8c4b11b9e5caa91f92af8e909781bd9cd745af82d1e488a37152beb70856f8f9730b5d9a865791ed86beca116cd91396fb98d23114644bc2cb0c50e5cb1e671ac5e83ef921262e4890781f6dce687f910ca1813534bcf197c6664cbeb3dd4cf47f1e7d862029bc4605a93a604598c1fd65386e99e6fa2ca9a1a5f8cd79d422b65af4fd48797776860b258d3f474d8c044d6357a2b1c15c8209ab4f6d0fc2e227318fd27213189e95993bf3bb07a6523eb93587350b8280ac8b079241ef504e9f7cd87bab673459201ba9e33aeb6beaec4bc080748dcd43cba325fe0481b3b6f89ab095ce2dbbdd2ac448f28d6ad33fb65d1d7fc933f53e2f91f968cd5f56665e2a110931a4b53d54305123556ceaf938a9edffb4b3f489c61dd148e0b33728e036c235cf771591797be7c48bc57b32b41072e0db2d03c74dcf53d78dffe1a72996684511725eaf9167998f5df1da947a5cad72d2cfcf67285ae09666d807619398b215339ae4c861c2bdbe0c1a59336b6a74da68924b715d25c4a5081f731085ab32aadb032a8a4d42080326126a2f560a21a939f9fc846770b9ff506846325fce76807a003a6587a304127c83e52e7040197e4cf7968a43a621b940e828546f0c8eae2883c18a7bf58b7fda29cb3a4f3644a5c09abe0b64b62b75be81f17fa87564b7dd437feb42f48eb6702d1c15e21d5c7b1fee1d96a600a49fd5e62b97898f300d63fcf030ff356eb531ee227b91ffb52a402bb95d751ea961a12648afb94aabbb5905faccd1d9592454b62be4a053fd378035aff88fbe8918552d956b74faaf280b93ac1714703f13dc05effa31e169de56972e9482fefd840f550e1521c56d66579c79effad8e8702ee795a339d94735e618238839b48075c6631352a676c80f61bf2339f81cf0d511e1320a0b1d7e63bf3f4fed555a92eecf447984f43f481acb5f284515df9026ceb8e8d73e0050acb536f1d12cedf0c2c65acfd9ad8fbe9f9f75b3dd90ede081fed9a925baa87b289422b06a2c21ee58f8ae4b819543338c1f381044178a446abd0c0df6cc0ccd06689ea002f5ed44fbc6320f444771f0cf8f388db32fe1f360a77b386950bf176619e67d9dbb07c7b0a5823dc1f76a7b61917484da781f01e34d0c1134fb79cb1f482748c570f7d85da5076d247f50e9cc643b13dabdd7b11682286c4cc99179785b00d1dca80ed80c73326b4d2543ea9a820bd583c5d42253f1fa4e47be0ec5221a4c26400dcb20c923650f76dafc0e17adfba99d0321790c3a4295c7631956a33c648671084bf37ed4f3895ca174638fd61deee154efeaf0dfa9d9f4e1a2b11aea9ac7519ff576f6ffd51a7b70f11583479afe5394eaabfcdd1f8d3a4422692632ebe611035492e9a072e92ed0ec53562cbfadfeac3525146a62dea18bb6ed6d861bbd78b4d08994d3033e6dc5438c4707a30427a5f9ffc17eab61808560f03cc626c3d159519a3348cfd0a876df6d3feada70f9924686a2d970bd8cf83c103cfb4f80e990a495c0643f8bb9aa6031a863c8138abafeae488ac11d4f41dbcc09bb81d2b9da627686fdadc0f6dcfa9fdc754b30d01117c30afb95aefd4dda6d2ac53c684aa26e36c3793aaa08916aca1f271418f81966f0757f4f4ab0cad8338e4c5df4385c8d39ce39d0ae09c212426236e97c9be1475fcf83c3edbb3d0a52b92705b271df5174f945eebffab94f0808b7648ac1298866a4de95795355b827fc9b6b223807145f7260f07134b10c31cae55624df2df329a4cad37cf54c4f5012967bac02583e23f459e4e7d3e0d4d1b8cdae60d25844f7574cbbdb7d6d15ef427df974301595bcc61b4e850f0f43008fb27a0353be3ad2990df2f58b51f10802629a449d1a809e7e5124f152d02cc92f740c939773d40e52cd723558c57767994704ca0878fef9747b9a0664c031aa5b414834029bcec21d02351710b5f461b8c2f2e9ebd7d9c8698d3857a667c83cff9e4a16e169a35283d08a6ea6825c89134670d988f0f1c4957ded74c901b3a497ca6038b1100ea4bcf7a61c779b3b8b9d6208c524a9ba54d202ef1112fe28a5d5c4fc88774502a466f494357e097e712255dda4978d4a518a0aee0b535063cfd5f84508265981219ab5f5b8d54e08b06d2f6cc72c2a2172fe97542f1d69b0de272f845c00f2432f039e32d8c87591efbc53940000c8ce3bf72c66374b6f839937dc7c4c091ac1929ae5a888c9327969337b998b06a75023730bf721c677a44834c10f99f1d33f9409e12fc67d09bd99504a31844868fc69e1560bdffa9b52bf6e3d4b2c6f0278bf7720dd1b8bc5b16d708104198e5335020bedd3de8df023344b9233eb7b325e7ba1d94ac54fe27704384f1f33a785fe64b6c25c441906b305eddb59fa94879e3a4e579a3cb5a5cdbc5f199c1a13148795a16ab79cf9723a1801e993d9d73c6dc55068b0ec5eed6c526a112d462ae67cc61ea09e9cc7e8d39e98376ed6befe7dbfd1d9549ed62c83f21c32ec7e64b3934f5b6a63ff7ae8906ae657ab07a97489f0f5c1850f6d28bb69062de2f63c52663c74f15d2c91187e9aa620dd5629892e72198ca6ba8c03967f34a2feb4541d7934f28a57dd3ad663444f899f78b9fad1f5ee4787ec6d15c8b7deaf6d12f130f633ededc802a651db7667ffab04dc8d6054b69d31884d108b943c67b17b4105be3edac5a5ed2acec64120eb8457d8c926ce0ffde25e2f7ff82596e5d7d106fcd0dcccc6cb9d957baca67944e3b6a77c94513129f8b40a916e4d4cf1a66172928013b6e95efffde74f28fea84e9eb5e1d7a498d782c852edd3f2dbf3d27fb0b004d65288bf5653262a6cf1b5280fb0ce38ff96a80e441e2472e6e40811f6c6b0c2133dbe4d1ea089d01bbc7c6a9e8e725750460187db9ab6732dcdee1cd0b064c85cf3e4d3980e95cd902e02b5593b3ef6cc310926dc351089a0ef84c575e374dbb87d0898f90af0d36b787aaa240ed53f13e9e7432c2b4286d173bb50cca2da6ccf8d4376a5551ef4efe6620c6e04345ffad220c69177384197c9fcffaccdabc857811cd47df7d0a9c271b8b4bb9602975823834e6f1fa438f9bcb9768bff29ed99da061fa8d6d4c72ce6a67ec8a44590dabdfc8d49a75215fdf1abc82b1fa4e575a73d08f2505c50dc8a981d1664ea52f8339304e9c5ae55c0aa02c2ddf1ebe3e2926bb510b875211e850fdf4eb10f2ca6af9c4d0e39cb2b62bb10e9cf94af33eec1f3ec284bd1295fc13d03a57e65ea116bd8fb03c36d46303459967eb21508f9bbfd9e804dd5cf741760c7f40c1d2919c4a4d131867be838a25c49e03fb704156ccfa5eec508ae22d85d5a83746134ad92d2a76e268ee2ef9e64f80fd8a2259a7e4ce7bd14bbac6d281fc2fa402ccb62911253e4ce1187fa1cc95948c06b71d4eb304d57a9f5d3e7b8a7522836fb1de2e327d760818e50de646f6d09d8103689e37b61894682e887825b313086d11edbe062f38dbd9e8ba5dc54b870f89b797ec886fe349b82c87dfc9dafa5b87ff89b12d9c55503dbf18c443c145e1b23292cbed9802fb88cf075ab2f5a9aa617baf3e074cae58fb19bb8045de1e54a82ebf96d7b3ae38ae672a4a69ec7904b28016518baa8f6b9b91e7651689f7637fe78a1fac9d7f9ea139644d982f74c5f8abaa0d03dc6f16d21c8ab68e9e078a511f37ba184fb2558b0e7d9edca6bf9af78b79bbd7b14c41237ef932ae95421333774716ce0f047f7f7a99f6b0903868230f36b9c0528827388e9795c45ef725e0989bf4764ab61799ba2b6fcd2229587b737a2dd120c83683396c36b7d1d369d11b49bea7b21e25054f9c8580f947cde1824207126a78ccbcd545c42d327d40af2a0ab1f570849abb28e7208e8c3bda558954b9f8e17766cdc1a9279fb4a7c5081d679b8e656bd26ad9e6245f9f7aa61b37b4cb00d489fd3f085ac2e22ba5ac393b194faff1da0b957dd825e8326862bdb5ca9f5fac4e135a0e3634f6ecae634319ea8a2", &(0x7f0000000100), &(0x7f00000001c0), &(0x7f0000000280)="96a80e6f7e036189f7") perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) timer_settime(0x0, 0x0, &(0x7f00000002c0)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) timer_settime(0x0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x3938700}}, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB='c:E8'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) open(&(0x7f0000000000)='./bus\x00', 0x141042, 0x0) clone(0x20000000, &(0x7f00000016c0), &(0x7f0000000080), &(0x7f0000002900), &(0x7f0000002a80)) timer_create(0x3, &(0x7f0000000400)={0x0, 0x3e, 0x2}, &(0x7f0000001600)=0x0) timer_settime(r0, 0x1, &(0x7f0000001640)={{}, {0x0, 0x3938700}}, &(0x7f0000001680)) pselect6(0x40, &(0x7f0000000200)={0x7, 0x2, 0xa101, 0x5, 0x224b, 0x1ff, 0x200, 0xfffffffffffffff7}, &(0x7f0000000240)={0xb84, 0x5b, 0x0, 0x401, 0x400, 0x1, 0x1, 0x6}, &(0x7f0000000340)={0x948b, 0x9, 0x8, 0x5, 0x7fffffff, 0xdf000000, 0x8001, 0x5}, &(0x7f0000000380), &(0x7f0000000500)={&(0x7f0000000440)={[0x8]}, 0x8}) 02:15:51 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608101, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:51 executing program 2: openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:51 executing program 5: perf_event_open(&(0x7f0000000180)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41ba, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) mkdir(&(0x7f00000000c0)='./file0\x00', 0x0) mount$bpf(0x0, &(0x7f0000000540)='./file0\x00', &(0x7f0000000580), 0x0, 0x0) r0 = open(0x0, 0x100, 0x110) preadv(0xffffffffffffffff, &(0x7f00000017c0), 0x375, 0x0, 0x0) perf_event_open(&(0x7f0000000440)={0x0, 0x70, 0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x4, 0x0, 0x101, 0x1, 0xd09}, 0x0, 0x5, 0xffffffffffffffff, 0x0) mount$overlay(0x0, &(0x7f0000000200)='./file0\x00', &(0x7f0000000500), 0x0, &(0x7f00000007c0)=ANY=[@ANYBLOB="6c6f776572643a66696c65300000000007f49b4a09d8b7"]) setxattr$trusted_overlay_origin(&(0x7f0000000380)='./file1\x00', &(0x7f00000003c0), 0x0, 0x0, 0x1) mkdir(&(0x7f0000000ac0)='./file1\x00', 0x118) statx(0xffffffffffffff9c, &(0x7f0000000100)='./file0\x00', 0x0, 0x1, &(0x7f0000000640)={0x0, 0x0, 0x0, 0x0, 0x0}) mmap$perf(&(0x7f0000ffc000/0x3000)=nil, 0x3000, 0x8, 0x110, r0, 0x33) mkdir(&(0x7f0000000140)='./bus\x00', 0x0) mount$overlay(0x0, &(0x7f0000000040)='./bus\x00', &(0x7f0000000080), 0x0, &(0x7f0000000400)=ANY=[@ANYBLOB='upperdir=./bus,workdir=./file1,lowerdir=./file0']) lsetxattr$security_capability(&(0x7f0000000000)='./bus/file0\x00', &(0x7f0000000180), 0x0, 0x0, 0x0) mount$overlay(0x0, &(0x7f00000002c0)='./bus\x00', &(0x7f0000000300), 0x0, &(0x7f0000000740)=ANY=[@ANYBLOB="80f9839bbbe1fbe46344271bdc72479cb6508b9bd750b26bffb3ad858292a600d8b3ff51b5c09f3bff70be43081a91dc507bafad3c2fd944374ad309000000d795c748e67d7d75b30529221171e2e4fd071edcde88ef92ad759300000000"]) rmdir(&(0x7f0000000340)='./bus/file0\x00') acct(0x0) rename(&(0x7f00000005c0)='./file1\x00', &(0x7f0000000600)='./file1\x00') getsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000000a40)={0x0, 0x0, 0x0}, &(0x7f0000000a80)=0xc) setxattr$system_posix_acl(&(0x7f0000000280)='./bus/file0\x00', &(0x7f00000004c0)='system.posix_acl_default\x00', &(0x7f0000000b00)={{}, {0x1, 0x2}, [{0x2, 0x1}, {0x2, 0x2, r1}, {0x2, 0x4}, {0x2, 0x2}, {0x2, 0x1}, {0x2, 0x3}], {0x4, 0x4}, [{0x8, 0x6, r2}], {0x10, 0x3}, {0x20, 0x1}}, 0x5c, 0x2) 02:15:51 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clock_gettime(0x0, &(0x7f0000000000)={0x0, 0x0}) timer_settime(0x0, 0x0, &(0x7f0000000080)={{0x77359400}, {r0, r1+60000000}}, &(0x7f0000000100)) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB=':'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) 02:15:51 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = dup(r1) sendfile(r2, r0, 0x0, 0x4000000000000081) connect$inet6(0xffffffffffffffff, &(0x7f00000000c0)={0xa, 0x0, 0x0, @loopback}, 0x1c) setsockopt$inet6_IPV6_XFRM_POLICY(0xffffffffffffffff, 0x29, 0x23, &(0x7f0000000340)={{{@in=@dev={0xac, 0x14, 0x14, 0x18}, @in6=@mcast2, 0x0, 0x0, 0x0, 0x0, 0xa}, {}, {}, 0x0, 0x0, 0x1}, {{@in=@private, 0x0, 0x33}, 0x0, @in=@dev, 0x0, 0x0, 0x0, 0x24}}, 0xe8) sendmmsg(0xffffffffffffffff, &(0x7f0000000480), 0x2e9, 0x1f4) ioctl$BTRFS_IOC_INO_LOOKUP_USER(r1, 0xd000943e, &(0x7f0000000080)={0x0, 0x0, "0a9778174c7373bfa7f05e0d653a4f13d30b139c9348965eba04e27fa7f83ab284b252197950c349866f0d0387c3764624fd151fb6ec05e17ec8a060176e9a58eabad453ad31d6970afb07474c7d84c868d5cd7dbe438dacda96d99fda7a3a2741301c347b4bcbac55c6cea2c3b70a237025966681d3ee5f423b09b781f8dc34f41fe6a58994530a543e227c11c7eb6d764d88f5ed5f8d18b3b9d577717345fd436b78448fab54f734a249cd56a58e533fd3f299e262a38952fa55df0877814cbe09a6eaa107f05207ce4bdfa4b53889f351043ff23a96c602bff3f072fd97189a252233e7220d360917ea96431515ed0aa7315df0a258e5cfaaca01562bc626", "dc437c8c5c78b01fd8310acbabcd5bb88aaa6ea09ebeb09da931215b9c53af5401c383bceec93bad089b59381fe8579967a0b4f30c18c759c9b6b4aee6395386dfa02e76fea81f82cf6a9ca932230b822c832ed67da1f9cce13d38a5809c179cf2dd54726b81e8b45720e2e0cab85fbbeffded551811e98faf8bb13e9bf62b76a4e240fb606e8392287c584d0a178bbeb3a047842fb0224da51b9fd9f43f210e56cd051ff13ce4462379c6186893f45a74453fdac46acbc5cb354f178683875e702d00d0a5bc2b7ac3571e702faa30096538bbbc342575f97576f51058e7eb3c39bc4b8f15315cc9f7553528e2035b8436f78ab90377573bd0fddf60593c8e5f9e72fd9411db46f611bf4be51ca1efe969b5edb2e8eab05aebd427f13044ea1977b91245f373ced219a36d887619390a308df7be2f22365e0f3ddd0c99da6a020687c8a60425b75d620a991988efd50bef7add6e8728958298116a09b4c99c23cea0f7ee7d6e0006321b8c4c798bafb4303b73b22d6f63685c505a94647d0b783540c036dc871eec167302f862990c4b2c90e7217a280fe3aa9716b138c5ecde6ce576df8f2ab7699a23a06841c90c9ecc9a5ab1f9881584209eb4ee5a98b029d5c011eb2f8b396e8882407388ab19eee0431b6013e0c5e2fbbc3352654f90d693fa8cc6107248f10a3d626387a56fe029994a6443ce06d43b6a9b336c4d7ba013e24b82eda6c02591768b329f2c2e2841011587e70b3026fe894098a32547da8b71a540bab73690ffa00cb0e482492a0cb150d947b366be45163a86229c3c6cf1539b2dc7460ccca12453cb17410cc7f3a8e0ae76aff0b9b48dd0bfadc640b24e6b0639e638476db3a3dc15d60f8226cd3c4195ad2e0baa375476289f28e0b177b3f7627c691d6b04b5897a7dbb167318e933cc4fa3e1e8a3cb22e831b61febeb5b06e5ca9aabde4d464049d4444818629bbbf48088f798a6d2c920045966ff7b200cc632e23c6da5037e7fa7b954a026c31529fd191ae8f93ac1dc69b422bed0203f7bcf9672ed5e53093e6af00d4376da7ebc7733c0ee0daa1756a2a8b3c6ad2fb83ca127152a4e028303c760a7f0e653bc10ecb86b8b5ae08d11b6278b9f5641d1bb431285f47d1cfa7042d32ead13472ed96630b0ac07f5b16597cfbe82e75841650aa47d5e147b3e1c897e2072647c0c9fa41e82dcca8184ac08a6a0aa39f03df189bca50178ff72ec609db0aa673c1eef2497933341da940d5ac129f9e0e08235087b00244da5dded42d832103f6f712784b2c72ca8e2c22254e7bd1dfae18f38f2070143f33ce5abd706c10e65c9c98e0d601c43f0b850f412716716b9598a3962808e2ab4321e42acb40e973aefd33a36964b99be0098e3fcb33289e0e6faf2b11c05315cfb32237576ff4f4eb742b9a4de7a1c857505420356cf7a29edba0de62e9c5b11ae12591fae47806008e0b2c4b7ac36c902f0dd9c77897db0f73fec9b2627f30e9a5415bdcf156be271a1e59b08f481b0b06f5fbfd2aac2a7a00e3f4caf22bbe96958390a06b0e81c31bc84341178b9c9afaeaa6a051e3454b0fef9456544145255b424d837cee2ab4f7724fcbae3a48bb9981611a8773b1c0c7dd8a65a2892d44e8a798fa3ec35ab30b9c9e86f39463b872b00897e452464db9d396e917f6951fcadd96460aeb0c6db8f06e8e2c0b5d1c4fb927218b8107a6c03b0c755cdd0e7cdce270495983553faee37676e2ac57e2b5bbe6b8c66854a325250a353024f4f477a159e12264a7314b349969204a8fc7fe363da9461ebaa559d0d5450bdc862c6beda864b6e3115e4e23a96dec7432ddacf17b286adc3a16dce13940124523948819897f118b041c6213c05b60e202ecf77bdc9e08ee68c22ed707b0ef653d5baefd950cd16219d265c85720d9d306500bffbe2becd5d17d56d5eac493bc6bb4cb2750b12f6048711c0ebb2b0f19ef5e0676a4b64d625237d0abb3682ae60c0852adae940558a824ae6e40956072f8786b322494e26d38dec96c36e66ce4dc179a4b47ea9f1a9a1707a4258f16e49ead5a8b67f040be8a103cc19c38ee439b543b05c2f22c21f4d985b27475a880faa7bda29e92d8e7815d52ff7b26893776a5c189d969e9da6f5bc59d7036a80ab32116acffd5b2f212b024da65097d5f8e5e12abb6a9ca3c7b474e3ab6d7094ad81b3bad14bee62288b9f1e45ba24087b764c1d7bccc01de7b274a704aadf9ae252d22b7d4bc97bf8973bb9d2580be76b1c60f3ec33c92fdc9ecedc924ff52b7cc9dafcf22f1f473f0f573442b30e68aede7859dfa9293e2d66f7873115597f05c9ac2a4fed948fa7fcc6fd5c11d9a4ff3949f6253a61cfb997c562a6c42b045e112fe4eaad9403fd2a908932932b12f098e0bfbd29f93742044a71cad5e71f97fc6f240fba9ddd4559a069bfa79c05c19f9ff981ed4ee6b6381828c9d3a6326ff34d59c204a65edf2ccb70028270ec5d5e35f56accd56339a9cf9f1867ecaeceff965ca11cdbc3018192f6c86882d4d1a7dfebce2fac0cf6fcbb093588114da6bce0739dd323ac1d34b724ab003b407b7a4fdabf66e323b52279d785b3e5ea86a7d10a89073246681a05c44a58ac2fea2acce7c9907114ee0c4a844f645db4e3ea00c4cd8195b4da323bdb30e20cbe8d4287b4833e9e515c24f291ca207b519689ae900c6557ecdf9b340b1b3239abb94d4b45c1400545d06e1d03021320fad2cfb007c005c8475cdb8436deb5ba7ed919000835b7c4b5a0238616fb40315b77f158dba17cf6574e1872a81d1410addbe3afe42f21b0a264571a8b1c70983bfaa1070945e5c3730a3343d45f4c8207f3f41d2743035a31e12a12af7a598a9f74e311583eb9f3a8f0263f930d7f353a6f48a44bda4a0d856471fbd44ebad6ccbfa750966bd33a94adf9c9d4ccc36d4a02ea6d3ca3c09643fab590df6c05894aebf65579c3ecf55c398b52708aee475d55e2bf6fa127a4d83b2474dcc8b5d95861fc949be525c09340f159f0d5e63a5699c515bb2e69255d694e16e649a076ba3f41fd590072a0c6dcfc43374cee28f7c7e3a7295ccd823f9f544338b5fbcd1cfd8c78c8908bbcfddc0b27ef5c0dfa8c1733c29d3b8934a5e52ab71785d3e03747b415f33854fe04c5f858c9c90aa8e03af04b3885caba24bd469fa4bd76941677880dffd2c4b1589f2b54769df614987444972c44a6b57d0bcf96e9988a50e11923d907d5d806575b72b34543a56b7a3755a2cf8138f036ad3a980a68f49fcc37df6cb305782853de05dbbb7cebbf976b5ea0d183bab9f1ccc62292a873f6dc3d50442f404a1f756fc5269262dcf2e6a821ebbf4598502f06082a6bd8769c155deb3f618c7deba55ace1b3c444b89aaff41e763cb9132b690fbfa8f79e633e1127939b38f511642912073c1e784e1f2358f1bbcc0e49556e956d3c8eb32d8af9e99ee30308f14ea59a4198e91612bb747ca734259029faa0a27907654bac1de7717f78f1ed03e0fd72006e8f992926e79cf699932d6a65b28b78a22e9455c3f6ae880589edcb79abff251bad6f7224e63c2cdcf40d70981c6bc2e578abdf0e767254b58320ced11588f06749e53092afa1a2b0ebf998ea77be288af857401e36c9031434b778f3e4e20e3b61e79a27ab0e7c49cd5b61a8caaf990f82b1526ba397368e6b7472ec425109a81df2a7aead15b7888339b7b009f8175a0ebec7b67caba792a7938414056469b37ea0db10c5d013619ac9903501756a369f61b1749524fd753360625dfb059d0c653e63136cc7fb6dc73259410f82100e0c671cecde88a08dea9b541cfe13cc75db732902d925d099058d568500fcd80e1436ab98cb4dc6659681a95df9b6417665d8f105ba48dd326f8432da75ded074f89704cd1af7629690bd39c82576ceed611123c24221112dc26211c56ee022b06b6a4141fdadc8b5e5afcd5e68dedac8a65854a081a29c286e167b1d33c10a68b487e8a51de100e6463bd9d539fd3ab52ba2e553cd3b7c8b60e069c4d85edc4a12db28f1903bee69661860ebab8ff702eee40ad9affd19fac8c6cc43994bbf9330c2f0c940dab634d603af2d67353c7b9465667b3bc6c89fb62696eef7bee50042c89dae8ebcab53b92d4ece255f3121f55b6b382a7f3215a0df0f7f2a6d2ec79394ac36e8610aff726929b03d61fb362bcb85777efd44a4e77f9e547d70ca79fd45448ed18d1bf950d437bc21f2b0ac42ccd15b9ce9b3f31ea9ad026db95f4914c917022d4dd4063770e86bfc7d1aeeed36b628160ca32e94ea02986d82a35da09e9c2dabd1041426b3b0b75fa0791bc68e15c5be94e1ee560f9a6e00d1e6401442763c11f12b8e0571f7689f442f9a01ddaec042048a9403a0a18c60a29f59497166dbf2453106693c6a05c3fd6a89b984f00f2dcd18d266d6a08d576e656faecdf2715bf4a29d2b97a7e1dc89a309887155a06ae39ba22e7eee26db8fb034c2e4739d343edb0d573f1a7bc0f5fa46e7dce048acfaf668bf2ad6197dbe6eb3d357b71ecf510d9d8a23bb41d024154cba3b43494cafe99e292a2933a854cc09f4e381f213269ffc386b93a3b8d734491ac8560a5ef4feb6b2f11939318c29400e043166709a5ef7638107a817fac5c47787dc73ca18abab4880c1f7fe0c8b17460a2384b0b69a9db9f8f6f0bc29f88ec0d99175538c7a09a18d38b1b427ae9d427226e103750a787fff6d942442484c1905482074ef338b12484c7d476fc9282116aab9c7a4ab1b413d78c7032f90006a7d33a90d037303687af1c8f5f6add5e3fad6edacf672fe722435196c22371bb7f36e7423f81d00b396b4eba2e6f26781711663816bd9d1de084418141644ebd7b83840d8b0ca4bfdb0f3f2caad300d2210de70748b646c711006719964b14da7ee31570be95bc6545667449d9fc7460fbb04941402e4cfa1d8478068e4d0506f5b5ecdc8ebb64612cf5a8b529dd77701b866e4c6fa48a7d3f1bf3e8862ae1e9b793c6be5a2a00fc66300220546b2596913bec4e4d5082e1462310f59e942a6e2db71a282056b720d584d64718693f5c4055863027f75caedd9396aa464c3f15a23cdb3dac77829122cf1cb5d838b6d152017656e58e56b0bfaa438fa624eb66ed73eb0c66ad33ff553d5d659a67d30af06aaef8a0127a9c7293241796f02746409c095829ee4c90e1c9235eb42724b5e2e3f70755f862282ab0f442fd2710445204168781c0fdd727f94b4cab36f8e5d4e842a9619c7337857c6b7f03526f992122ffc3d8d5dcb4321ad6de00ed4500b9a6f8d5bae76876e0c4833de30995fb7555b6f87afa5033e8fff23102919a334e2f892fca3f91d853d4b2b815ce4cf53e1f103dfbd62f7c2ba1b3cece"}) r4 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r4, 0x0, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(0xffffffffffffffff, 0xd000943d, &(0x7f0000049180)={0x0, [{}, {}, {0x0}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, 0x0}], 0x0, "dc66b42d73a84c"}) r7 = perf_event_open(&(0x7f0000000840)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xff7fffffffffffff, 0xffffffffffffffff, 0x0) ioctl$BTRFS_IOC_INO_LOOKUP_USER(r7, 0xd000943e, &(0x7f00000018c0)={0x0, 0x0, "91abfaf5318dc23defc34dab2142bcd3e63103791af6057d4ba5752ff38a7158af5fce3907d2cb435b40f7ef0b5e67fad61865732c92dd0e7ae2f69e5effd0bb0ec6cd15da631f0c0771377bf8df190eb5f3bf4e3388707c4e460c3c5c7507d403e66519abb4d8a7362681a945d9c7a2a8194c91e3b847ed652e6135598b4ac14e9b70fd57823e6e234e3cd5445cb8a01c2ae2ed58177baac5ce989d2cf3f90c34b3bfe1f82cea05f6574f21dbdf64f02146f77f0bc666a57310144053c03bba38c09d1b8e7635135395795bcb82073981a197283f77c7f3214ef5c80cb17cc9c3c0a914e3a4ac1ff05b3ca4cb4e15a98253f76e324f23989c96367c8bfa078e", "00289ceed27210401f58b825e1d085419dee697ac4767b249f4a125c0e8161bd7070d80e467ebf8eedd5c0d6516b43c7d4e4110b94f800f014068aaec0edec5a80c772fb3aade77a357af3f53eaf75c990434536bf8cbc111ebc2156f6d97aa59cb3a7474079a12da90f78e227e79da607412374af85c3accbf96127662362fc42f89b12b7406ba707f77006862ef6336bdfe0e032a2bcf9b58f3af3d2af826a083509a4398c3f3305421245b67c0b86266e41e62a5627af863e8215cfc6e85b52cb944274fb45e9e72b0b8fa4502d8ac5b9ddd793a12a1b0a27644d652506fbdbfa7f4fb171ce915b86e98109ff78a314a7f21be5d62219df436f08c00309c52d584d30024b672ee01b20eef31f289aaddb01252522cd73858a3a95cb34a38e2e48e8a4fd409fdcb5e590ad65e8e6b1b22afd084ffea1e0aea4fe1c51c6e54b3358580a2cdb72cc67d9c37f4598770aa3d7f9944d027e40ce2e379587e9a96bfb1d05822682d968336178f43d27dcf4c093b92592e5efd0213380d09187b5d6add90c67d0ef7db2b72a605cfd7f89d529d4d5a98c9a36090506c72c154dfb0b0ecffeede8a4da38f294a848a8c66fd09e91a586f37f997c907a49e6489ce22432da47e81c51d8d1f55f0625bee8127a3f0a1282a7a35d7b437376cddd3fc02ae148f84cfae1de006066df056a8f08f354f37529157f096bbd4e7ff6b6bcbe599b4092f7123c2643f5bea75f2906fb88d1f4bef2a31260a882a056db26b4bc432824111579ba9b293f089274166ccbcbcda610dbc54b3668e966625a702691fa9556d71cf9aa3b45abfdb9a89ea4be537e837bf1a7c312ef5861e1529a4b02783340c6cc065d439d99865419650c2b47596597c9f9a1a678b245bd86769ee44c6599a2ffa35174dca6e20ad13bd54e89bbbfe5a060d0e091b841d82049ead90a9d9bd0105773146b83f9fc06db8a178c4e5306bd79a4b6f9f413eb9e21236b0b8445d8e50094ad428b085c71cde542e965564ff66ddffea4ca56866d4920e55473da1ccac2134a6472b37afdfbd4732c09c2292beeb7db938f9a5ab1b4edf911285e97afb654b30faed0943573c143e5c7dc26bc4e3aecac8277d4772512624d53653633eee8fc48d48e2ffb2b543f82fd06fba4b6a4d6a550a356f79a1d68a7c54cf5c14c94dd91eed2e86b59e8c9a6a28772bcf21bc31a891b0579aca76aecabccb37d3c0ff2f20a7950d471c2e5af533466eceed4d1c828d31b1f4d099a59904109950a987e5b5d43f2236e5c50977762a1f1fe44312381a5ff5b98202182e213c9127cd29d486a7cc01eb9c1f57de2962f1d12d6b4e29abb8e83ef85f613a954d62c3f520de95a6c0828c6fe182b9f3d6b6acbef65cf760cd9eef883bcf0c372bd1fe6ea92b5ce2bb384edd3f50e294984a864f81d506b3adf8f4af6e082fb08af11cfc9efcd2737e3037723be98a2cee58a2f50d14389f8b6dcd256e675bf0ec4430e270be10c899d9360388da15865e7ded64c633fbb4b5b0d3beb7f21caf552f68694a4370c30a9c186a211bc9a3b760a4056009be06dc99e27184164e6347f85f9185eb8d9307b2f80a82f3be06abe568f9cb77492605476892e060ed36549e0a689fd11d1ba48328c19d467ffa01dcfe0400067c2bf9d62490056e5ee4e7f9a9b398add203a4e9dff56749f055d0571d58fc1f5aa4bcf5b69bb3928bea962367b56744e69eed5f4901bcd4f78411ecfcee5cbc02e18f37ec7ab4b7dc5423d0ebb40cc0bb280dd15c4470c77afa9131df0c67c4bf7a74bfc6ec6de92a9f959dc1c7964a0496741bb1a61832fd601c528b685c2e3e113d60427e32f42de7ab4e51edd925c4be66983c1153f4bcb0f0532230ccbd53892f7e7b3458d007b752fa9f120b0d6f3354856e2af1889e4f32140ad612834d167e25dae80b43a1b32ea2d5ff465ae6b74a33c5f6afe09410df1cebfe6c5e130aea8a042e2f583a1179dad3f8be48b02c25c7fcbc8b00314cf0900847c2f4eb527b1e24ff4c09ab4f5616a63bed2ef3aab2af74b13a6f96d600b71b55f5313f925b4fa456a421f6bb9da4180c781cc6efa20411d4f6a8d5c2495500a4d1e9c22850e23fe2b745d9082d628684c412803213b61da1742c3df66333b52ed634db0b1db7636e5caef8b79bb90f08e0fe7c8b8c505be6444c029d9176bb2d15cfe5cd8eb304010742c83ac2e047bc36f1c50e93b9d033f0fcf8049e580d484ac096825d561067e0503bd882eec1db5c29900eb17e4baa953b649001d94a20e701b11d3c5924dc23114919305f0099c2f506cb46a59816c18560800bc1a7d3037efa62150759245e0bd180650fff5cbc7d16bce4108d9cf834ee888f574f9a3cba0d65dd0976b4be97bf966c5909529b33b7e5ee8378460b15bd62a00a2c06359b25c034952108c788d2dece6048a14172d44745534a375a6238a2a0f6ade373c142dc371a96f235e3ef2a6043bd9085ef0566ab79a3cd29274feae51b76969b404e8a184856131fd30115e00cf75dccb8387ff4fdbccaa85d04c90ea901fb284b93297132fc0f78c026a8b0f93c2261fc5ed31cd7b4b0d5fed6ea17bfcea46839d34436803484ebcd411bd57a0c0a18f5f89463a9aa913f6b5acd1a61fb39a01b9404ce886ab983bfdb0a2dc3a0d06afba83528edff4d0f1071556bcbb76cc7f106343b9913db1aff7d1bde6dbf7108d83d60fa5128ad291abcd1d39740cc0a1006462b5f44d66d0ffc31832e795aa79bed61eb4b24783d4cd6f1aa772f1bd5e85a260bc97b8389acc8dc1585f962611c426ff40a9bd0e95b99a1ebaa6ea50f648dbec15971698f8473a28d84ef6c3c33ed789423c722027720dfca789b808561318084c078efd6d47695f18b4753b58eeaf1398cf98082a6a911cd0b52ec8f0c4a83bfa94450fcaf18927d26a57a17ef3b353d8307f2b84e927ffdc1ae0e0c2414afb54cba6c06bf06f44cae4482c6f87be70a4431b8b119c3b44f9aa8e23ee401065bc717f7302812e676196adc281c9720652a6eaef5965d6c80e8e0b69050c926e83cff069fd75b3435b387ee5e8cffa9fe0bcd14d802f40b63dbb5fa419f5a9ac71ac908fd54f34fb0a5629ce5aa2eb7b466f9ea11d19ffe1acd4f606c68b919cb1017478976661740bb10f200dca3a0dba3d03d18fa3cd4adbd590ce15b8e67774d3ef9dccadc0eb1eb071b22161161cf4ee679ae7e1d02f9dd1f1c163999ca721ad875c9b21d9d38c3cb26b44d4710040d1683f5844716902d918cfedb4f2f965a85c1195575777215bca46f53538fe709d0aeb32541c9891b1a293b5abb624fd4854dd6976902b3bb6223ed119ac0295919e3934699ec0fc334dfd31572843f5067418bc23fb3b136e8759a6763f5f40891b05434f1219f88048327bb4608535129e76f2c3f1e55cd0b42b2ef23d5fe9cfdc50566b172f40467e02831d1362a2290b8e2191ed9857fe5cef03a33ce3461bbf86448220da1bbdf12b889befd401f208da9ecdbcdb1bb9dba5c049de207ba6d26680adbc1e2f827d8e31700df39ff7efb3c86061b325d2e51d52ecc88b89ffa5804899cbf95f2a7112b285c4cb114254379aaafa0217327c6b803ab8515968305c290a3c81467dfa10f1e7342d98f80a030ce605c9c999ff2a9314b433a222b6f1cb2f76111d0babc08ed1214d95873602336d7df4e7887465d28c34f8616f687c50777237b5f3bf7852e921f909238e0b809dc8b775716ea5ece16ac0128e0e9f834e40ccf14237771d4fb13af48599e6f6cd76e5845021c7252e0739b6b43d236019c2cdff3cb1776d79ed922a908f4740c5b0e1138972ee89428db8a5bdb51c2a5dd6e742e5214a301308f955c58ec20873e98271c97f72f4faa1417aebe1613f7496cb6a2723e1b152b761ef6c0fd0dc33f11856ae67665e2c10eeb070456fe309179e6e8576ff13fb9839371a8e7bd07d95d55089f9cbb59e010b3bafe372519a8ba7d70d3842f712d66a53cee1c8c28b7f4832559e07db2bf5ef6b9cc999a6d930e09f596715e2798c290691c0839f8b1b95c18fbecd21a5ed163cfd221de4039d1ac6d949d8ff6f3456a5e9cb039d294bfe73675f044dc3ea61ca7263e750f207ca908d415c5adedad0696ea0a4f6dac56128bb882dac564e22d7fe71cc3b1265089626e4d772db5304810b92a79af045fe84227b8390197c8324c8c9c4b1df86ad146186a345b18583be1ad6713f2698ea56ca3fc8c07073488270cad2121a8ce202bafbfb265580d7531961d425305af29c1e5352d3efb1a130ccbc663cf363315ed5b0ea83728eb218bbfe6701d0a16f9cca7579a250dfde54f7a0d3fdf058b09241b58167a47202fd4389813f0d76a761b3b3f88bd5325211253561767fa9afcab0e4d078e91f94e75a4f92fa088c56b28477ba02aa051528ab12091c6b857bbf32a17153e571ff599134bcc7de06b44c4245ca12b8c08dbfd646f50edaaa917c6d7851eb81f1825ad4756fcd55bcd06490b7d4710f127cf320606bd46debe36dd37c17fecea4e3a90d01a539b8064d900a8cb664a7d4b574e987e21f0d27faf1439acd6cb11286a6b2d44a627a96fb1f83077284b0729712cdb959bf7ff38a2c8d415d1872aa67ce1b56c19f88ff10322481202a2e8e368c913cc2ede8fe5a2f4d95c0ccc182dc32c013fc2becd577bad1c33a2c112a3470cdd829c4d8b8e455be15a58caa4934a4e3baa847e772c97912b3a97c09e5ededdfa5c9f6d6d8e0ce8494644b433621be20f512956798005d311642fc88d7d0052cca329b11a7fbdc28838bb69ae43c30b727e286b140d505b9fe561054f0acaf3c0385565286dec185843cdce923135ca09f08808e22dde61b75547de0715c1e236e1b48fe355b2acba59a4efd38180eb3a3fff7ef02ad722ba19ebcece5e0e1cb2be5a8d6d3cd26dae28b2698fe7a9e3fed250b6a0b9a625147e7915613ddf80999243c6944268960e062515f80dc05b271b03385e11b46b5bbeeb36694816540e891d30590953716fcf3fc7d330f421e39d6b232e6827cabd026da4844a6a5fb84c5dcb29aead8417409ecb194e84f463f17505cc20eae9487d515fff2cca56fb6ccc3d3c97583740ddafefce139074fb3caf950c874ff21d66854fde467ee7b863205f899f6d50e1c9ab58b3bef8c0393cc033d8043c551a226db96793934d08b24d3de61d316ba3a66fb8356eef038be4393ccfae792747e0f110f3b3439920115882a3dec8dcaebee3d9d7558b76db56824d554e8e0a286a845531361c421bcbf6a7c6bc2e0149cf4832deb3e721587f2c4af8b200f6ca4f544e626bd51e434fcffb6fb8808daa2336982d86db16d796779f83aa9b64134517163dc73fc661d451e1f"}) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(0xffffffffffffffff, 0xd000943d, &(0x7f0000049180)={0x0, [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, r8}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, r6}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, r8}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, r8}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0}], 0x0, "dc66b42d73a84c"}) ioctl$BTRFS_IOC_GET_SUBVOL_INFO(0xffffffffffffffff, 0x81f8943c, &(0x7f0000059b80)={0x0}) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(0xffffffffffffffff, 0xd000943d, &(0x7f000005bd80)={0xffff, [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {r10}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, r9}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {r11}], 0x1e, "44f6551c3cb0fc"}) ioctl$BTRFS_IOC_TREE_SEARCH(0xffffffffffffffff, 0xd0009411, &(0x7f0000000100)={{r5, 0x2, 0x2, 0x6, 0x0, 0x0, 0x0, 0x3, 0x7, 0x9, 0x762733a6, 0x0, 0x7, 0x6, 0x80000000}}) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r4, 0xd000943d, &(0x7f0000054980)={0x1, [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {r11}], 0x2, "6788ba71fb54ce"}) ioctl$BTRFS_IOC_INO_LOOKUP_USER(0xffffffffffffffff, 0xd000943e, &(0x7f0000001080)={r3, r11, "2a59b864e4d0542f6a832dd276906bfa579a621f8cb50f1afa861c66badb2a17a624d6d2cde9bddf2b4c5f891c55f23ef78abd00ce948c68d544924f36be4667bfeecb98d49141e851de10e43d8a5cc1d77ea4c2626a01d35a4dd99ed222f7039bf4fb3af98edae97aa5439f22eba87170de30172d89a8fef4b6b3dda65a75acd7686b30fb3e47f0fd845ba9746ca71482548045ecd74d36ad0fb4c3e28dd2b96577d73e96dd384b180929174a5ff6d15333f893fa574f099bcac246fcd8626d19e82c93807aff0d7971861b72d4523b549df0a4f3ce012741de7e49d85c8b97da9d81ef8d4fa5b0655cfdc398805be43b8dd78122fddefb6cddc2c1a7dd5c50", "cc52e4a9925ee2241ff8aa829d065a0a366c5e61218f4eec72a7e261f0cf8e9b984b89343e88dbee2d4d9858bb34e4d46d09de8afa701baeeb7d283658081d794bc012d9de0ecdde23a1b3266008dd6175e3606d28556bf3b80323976b478c84a9dde906e1d5eb6a61bb65fd363cdf2803db5b0989b51ec15be5a756408f7a9c692c640944afe8e2871367f0850c60f33eb80f094ffb1a0a85bfd3005ccb7f8ec737efdb64e281ca5c8cafb3e71bee5a6dbfbf70735e3baf1e563f825c02ef6861c973442632885417d05b0e56823e0862e959394b5308b67ca794d872ff849ef5bbc43bbca63882421d686f1eff4e7d53edf1c01f3b3b897d0f0d8f4bdb746eaf5a1ad2c10edf0cf5e79bc623fd011c2cd6767a5b86897d5ddcb752b02e106f82b9c2e5d427b1821b0f2915fe07ada1bde8f1e0eadc1e6c5e7670114eb860505cd0f447be0acc5da9ea0cbd16a63259261c48d37d054d9b80c23a1050bac14245463890d7ac823e6a486e1eee06a9ac105fec030167f251253ce57ca45a12b2f6ec993a34d514a7deb1d8e64dca4d7b6afeb8cdde884137184559ceb073d8f8c8cffaf75a2d0cff480f1c95d8da7041f13139c336b2bc209d7e84b34edb172854fb9aa9ea19a2dbd109feb0f23b330796ea727138dce565fb724608e5bfed6e03a1304a36d0aeb22ae84fa95ac67fca8bcc09fbe9cb5afb64d0f021d495d68d1331253dd8286452d3dd05dee27fd4086807a9246e8cd12608ce4908e00c2a959da6d583f3cd0ca4f0322ef3a74d1eb46251baea26b2a6fa5a779ac0ef9c889c2e0d8da14647dae104ded2554cdb8fe17259aeefb49bcd8e0487475d277ca9ffac0bc6db315f2a6c932a44d717aac4f7aea3a8591f2698f5e54da95fed7da141f89a932b8cdc551f9fbd94a1b1882e80bbd57793ab4f83002507e730ee6b44993c7dd797dbac6765d9cb6cbad78dd44ddc283c224cc621c4026ca688dc655f191eda381a98221c1ddb027cbaef2e041b04af05235e09dbfec078603f406dd79c34faf3b72021be6d796262cb1445b32b2612aa804551db3472fee9ab74da5447017ba86dde6b96b6881483d73dc2f0444dd3a1999c14d783a9125f62e1d2e735d2db4bd057f7e0e9f764dca08b1e148c7ef6e020d7fc83884c840ba0f22cec1470278c76905e34e818c3e6b9c03e1adc8920ceacdc82d057f1126e1e30c14a3f3c8d2c70fe94a8c275a04d6a5b2999d5d522862261badd87484b7df505281a46b071897c81d1a9b4040e62a8669b1e5e2ae97b7e07aa48b49610cfe35911d98a50af1c369e78ac2dea31c5fed621c46ab68450549d2847e72713dcbc7498cf1a9414b914cfcf048b0c718a958e861270780bde39828b74415ac17f201502e1fa089de939f973b1b9af995ead0a8ee8419aedc7d23f6259d7b3d231123fed3e7bfb200a04ae515023438e93c286e51b46793a3edf1f9a8c33350cc7d2b355eb4440e87d8cb23eefa98da7c3519d14d97d1f444c84ac3d5ddb5b3d6cc160788c182daf4017f086afad719b2e666772f677e079227642eb5a99b908e5bb4f97cc2d0daf5da7d541d4a335f6f1519d04cab246e6b29bfccfbab191bfa82d7785be367caaa67aef6d5fcdba763e254224dc7c976a5baf2e27cc042b9fcf5244ef374c6cb78bc2c5e18c4d9269651cbfe8f34be4ff9fd0d16c06b1b5318fed7a802171767c5f82b4c795db126ceaf367398f7ebd3c6dd83b68c5e9d9b6d078122fc80a0a0c366a16d8aa13ffef6231a943839ccf803194887d73d6c196c94d184e2724bf7284a37ea6c732a31f8c08a0143b1aa4384357cad016538fea167027e6fe3920b154d7023cb86736b1c6b701b771eff4450cdb958d3db021ede704bf74b10d7713fb6da66baad63ebd09810713a4b32bd72f8669cbba21ac5b47a340bcb9f8f289e700e2d8a1e2ae3ce0237e3fdb1901af49f9bcadc57db69459d323843a9c8e92b60993ddb8b2166d5f334c8b113d2d5dcb7d7672f6ac52c61731512f384ca324e1ec0e6310e4c812588f905ecbc16c3a64674496397e5f008796de092730d9116f9d647a2f7c51039cea161456f693fd9ec03d924fde278f61f01c827f40ef46b8efaae51ccaf73b5e3613308ef2f4868b3e155e8c4124cfd2bb4383ced34cecb6d00c35ab5d088694a06eddb9dda910c721ccc68eef467fdc01a16f2ecf2e5d4d1227ce5b23c41a7fa5f739567745ffebd662767e1328b5d2dbb9e2b2798dde7e054f4647ec49809bf192a7b64cfa3fe63bcf00425ea970d0486f458f9fd435dcded8b9effeaf3f1ece885b0233323169069b6e0bd7ee750f937969841b017e3bfc38ac56522579e6f7e7fd0159e0db166346f0b913f0832ec0acd9a43fec6e75bb04251f6848812c7ea348a619c6c69b23d768fdc9edadcea8275c8cd970cae13aa919396f755151249ba8bc6e168bac6c6d1f2bc03bfa311370d44ad3a13a778d2d9d600a5566b4a415f8fe17aa4af6e71676e94869c68da3264a7cfaaa7f485120a2ab1eaa89eb92a336ceb3d3ebbc873c13e7608f98730f218f4e2f5a08927be861a2a05b3073443a31edeb0b9c36887aecb835d9949292d4bf4460847b6901ae0d897e028ae77c1f3d7f81fabe730782c21d088313cdb33fb9cc76be7fe265e29732e57e3679705caa5f33d7178da6aeee0d7fe9c6b045b4879522e587096b4353d64288b52d114bea5978610d5ad089755c78400d7ea66b990b796ddc48bdcef1c7f7d1f90536d3508ccf171cf4de87be47cbc490246c3a5d4099a3adc67dfc784aab06ced14ce703768d88bac49de76e96f003ce2475a9d5444a00cc943f4926d2422d9b2e7d9f821278316cb7ee00244ab2d06c9706d34d45a23c8c36044b275bb15ac2561e01f20ce9350ee78de75a210b1f3220c99bcb66a7c4438921026c8f39642b8289247786e22cf8c8d00e383fc930bd218fc6ba71dd32c48be06d96b7af7038cba5c263b238e70fba7f603a4fad4dd4452affee10cb6db08f7f3c2e20258f17b43c91f897758685a0ae2c708678655a371ae08a798e912529b4750a11d199686ca77f0afeda21d05e6ce1c266fef85b91e7f3fd64e656df13a917d162a6f8dbfe104e22e506b8541718bd114f7068a242747b63f06004f3facc9876bcf70be25eacc83d9073ca0cb461ec0850392116624ab56c1f780cc4b6fc493ec1bc6aeac50c72ab2f25251730db30023ac2c55c5bdb5643c1fee6a628bb131f8d9234fceb3b4e7a670c68d8af0d6c48f0495f296a7e7b8dcc7db3164990a621c9965d7156bb7158397c3270aff7402e2ccb34953ef35e6f4b271ca486f66e6e42942fe5623688c5d21c2728aba25757df2076fedbf2f03f5e5cb83061da220c59fa373866e960cea2e4b72a38cc93248eafbd0227d5cbe028f17e19018910ce11e2a9d99f724cce76852ac7ada4a12d3feb662bfb4167c36b83568bd20d7a6b406989dfd8b024737f5ea5c9e6966c34dae5bac58f3dca1a98a3859bb9faaff0f6cda6e1139f1edb96c878929aa8bba5f6a5bebb2813345e5f75fad378f7b5c24ad8ee4e27ae350ee5808667954072a6b601c9e89031a57e259d026ed4feccf7f90cbcca922f2be312d91adb85af7a5beb5122586926988f130bb92f56ab86b7f4f61731755281f21b553777b430ff3d11cd6482e70091b6a23a49c7b0f81d13705a666312dd7571e77c93d492861bb8211201c7eb3684ce680fa85e2df7c9b2093ae3cd1ddce4fc29936b9fbd49344318792c570102b4c7756627414c3a38235df3db408c4b4d51c355ea46e910c2509741a0ca68662dbdaba949b5a81b3b58ddb02331d1bea419fb5392100b3348c9198d3dcf09d79f353fed0e344923c48c5969fd6e01203661901f29264ae56a36685c28defcf42a976928eda14610b2cd778f0e2a63a71e32398146583f5aba1cc142347f351bac99f53b5f9a10ac11d54daedcc8f9df548a84ddf11986920f1b6861aeff3e0d921c4417cc15a81e263752f733810531632802dd186d9042b3d6f0160c7a7b2abfa06a2819ed74fe6fc0f97bb8298e5aabc0dbc85179a2e1fa57d535b6c13e6921376fce22bb90a6a6a84a550fec023ab0ebdad1e7586c9a3fb9fb68634e4b996ab079ddaab430636afdd975eb8313735aee44a8d7d6388d6864ee91881933ebbb9879e0f9703d577e04e4c7260200f12bffdad3d2f557ff721a7954afff23c1fe0276b483f4eb2e40a2c350c6a4b86aa54119f7184600dd48533c176c2443cd015e530e382baf5ab37b191235c75148c3a11c93ef9a46e83df2b8ddbb0a6bca6a8ab58f0d1965b9c5fa854b210c30598e2bf79a0546307de1ecba07746b05c4f9ed2e0979aa14368206e90f43c29e5ce929e4bca967be63c41cdd10b35b953990c39efdb190654605fdafde653428b039a420f18fae2de7a525c1c364485b34d8d05dde3726786ed9f463910049f16a4d33108aa9a86b0a0192f96dad78129ac9c3f694003d03f35234b01399d8a1cc8b8605b0545fe530a07cca3ef8d383a429fd288e7088ce56a0d8bf54f49bf7a95ca2140db48bf7580fa016e68f113884c0940e8331ffec20b17b545d22ccdb08be2795e153413d1f72581bf0a8c8a76d321ba8403864803900a5461757f970901fc4b43d55223b71aa4bbdb9dd9e2e7e066e4a664998b681411ba2dc0f8dc80fe366dd48a0194cad83de88c31a2ae4cf8ecd1906cf4f6af5093b56b775758c3c268a0c572fc3907e6deb6211ee3fb6c9f45251d15ef07771303bacec3a1602b46cc944e455f1ea1f62c63fe45e9b4fd4492edf808ba05b3ebcf2d49e8b5d28afbf5cae4ff7beb8888a425612913e578386914adda051c6914253892defb3aa75c3cca10e02917fb7c9424abd8e1503606df6af1e9dc95d54f09af88268862d2f6405c579081269c9ad750e7516320418e0cc7036c845319d005af526d2914ce9709a65f6db9d9a2cdaade4b7ab6d6546b83704409684a4a81d4cce0773bc3b015b76c47f1771f2e89eee37cf318be52b2898a4adad937aba768f13e3bcdd90597ee0421c5ba197289bba6f51db334fc612591a613c8b478c4f472f4e67d3958a11a8c5314cd02cb2484652c2dcb9438e9b79994583df1d44fa87fd98d93f87796a11e6416ba4d8b563e91968f6a6e16d3e215852fdbbabb01ae71161f08ef5de0041c9e5c6bb1d3c2b76f9480a9121219ced6528f90cf53a8e735199d42f9b40ad6a4df3445eb48aae1f643d8885ec3b3861c9529f68d785b57921aff1b6c53c048de73ecdcbb0027ab25d5dcbc3bb0500c2e3fda0808142bd11070ebe079d514cf1571adf34503330fac8a39fe52c16ac672f6633df90ec608bc17e904d3af0cdbee859"}) [ 502.197523] ceph: device name is missing path (no : separator in c:E8) 02:15:51 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 502.281606] libceph: parse_ips bad ip '' 02:15:51 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x1, &(0x7f0000000000)={{0x0, 0x3938700}, {0x0, 0x3938700}}, &(0x7f0000000080)) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000180)=ANY=[@ANYBLOB="3a06e9f37a40d51f9ec3e5a74d24c02ee10c1fc38095fcda2e69f7550077a38973bcaac9ef4e82c3ee761aebedf7cac97805c29eb6b3890a9653df706d64777edd8a8cd5cffd58c6c443ced6da17efb0f7ccac3a2320c15d3f52a709c717ab6231224d82933b1904a59aad9cb750ac8a5cf051145f9da17761e9c2101c6438d25db5443be0f9e12973c9c4c14905"], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) [ 502.369594] ieee802154 phy0 wpan0: encryption failed: -22 [ 502.375298] ieee802154 phy1 wpan1: encryption failed: -22 02:15:51 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608200, 0x7ffffe, 0x4002011, r1, 0x0) [ 502.427149] overlayfs: unrecognized mount option "€ùƒ›»áûäcD'ÜrGœ¶P‹›×P²kÿ³­…‚’¦" or missing value 02:15:51 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(0x0, 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 502.512174] overlayfs: unrecognized mount option "lowerd:file0" or missing value [ 502.529037] ceph: device name is missing path (no : separator in :éóz@ÕžÃå§M$À.á À•üÚ.i÷U) 02:15:51 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x1, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) r0 = socket$nl_xfrm(0x10, 0x3, 0x6) bind$netlink(r0, &(0x7f0000000080)={0x10, 0x0, 0x0, 0x1}, 0xc) mount(&(0x7f0000000000)=ANY=[@ANYRESDEC=r0], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) [ 502.556488] overlayfs: filesystem on './bus' not supported as upperdir [ 502.606885] overlayfs: unrecognized mount option "€ùƒ›»áûäcD'ÜrGœ¶P‹›×P²kÿ³­…‚’¦" or missing value 02:15:51 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(0x0, 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:51 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608201, 0x7ffffe, 0x4002011, r1, 0x0) [ 502.707440] wlan1: No active IBSS STAs - trying to scan for other IBSS networks with same SSID (merge) 02:15:51 executing program 5: sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000400)={&(0x7f0000000040)={0x10, 0x0, 0x0, 0x100}, 0xc, &(0x7f0000000280)={&(0x7f0000000340)=@ipv6_getaddr={0x84, 0x16, 0x800, 0x70bd29, 0x25dfdbfc, {0xa, 0x80, 0x0, 0xff}, [@IFA_LOCAL={0x14, 0x2, @local}, @IFA_FLAGS={0x8, 0x8, 0x408}, @IFA_LOCAL={0x14, 0x2, @mcast1}, @IFA_LOCAL={0x14, 0x2, @private0}, @IFA_CACHEINFO={0x14, 0x6, {0x8001, 0xff, 0x3a4361ba, 0x10000}}, @IFA_ADDRESS={0x14, 0x1, @mcast2}]}, 0x84}, 0x1, 0x0, 0x0, 0x4040000}, 0x0) r0 = creat(&(0x7f00000000c0)='./file0\x00', 0x108) write$binfmt_script(r0, &(0x7f00000002c0)=ANY=[@ANYBLOB="230275964c0e4d1a14750ded544f96c8b5b62d6092608636c7d825b43245e955b642d9a3f1b2c95d8a3b0a3da597a1000195914376666e92611fe2862102f15763419c960358"], 0x141) bpf$PROG_LOAD(0x5, &(0x7f0000000200)={0x15, 0x7, &(0x7f0000000080)=@raw=[@func={0x85, 0x0, 0x1, 0x0, 0x2}, @ldst={0x2, 0x0, 0x0, 0xb, 0x21ef12c27b81f9d, 0x2, 0x4}, @ldst={0x2, 0x2, 0x3, 0x3, 0x7, 0x10, 0xfffffffffffffffc}, @btf_id={0x18, 0xa, 0x3, 0x0, 0x3}, @map_val={0x18, 0xb, 0x2, 0x0, r0, 0x0, 0x0, 0x0, 0x9}], &(0x7f0000003ff6)='GPL\x00', 0x5, 0xc3, &(0x7f0000000100)=""/195, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, &(0x7f0000000000), 0x8, 0x10, &(0x7f0000000000), 0x10}, 0x78) 02:15:51 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) r2 = dup(r1) mmap(&(0x7f0000ffa000/0x3000)=nil, 0x3000, 0x3000000, 0x810, r1, 0xd4392000) sendfile(r2, r0, 0x0, 0x4000000000000081) 02:15:51 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB="04"], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) syz_open_procfs(0xffffffffffffffff, &(0x7f0000000000)='limits\x00') 02:15:51 executing program 3: socket$inet_tcp(0x2, 0x1, 0x0) perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1, 0x88554, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9db0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x1006, 0x0, 0x2, 0x3}, 0x0, 0xffffefffffffffff, 0xffffffffffffffff, 0x0) bpf$BPF_BTF_LOAD(0x12, &(0x7f0000000040)={&(0x7f0000000640)=ANY=[], 0x0, 0x27}, 0x20) mount(&(0x7f0000000380)=@sr0, &(0x7f0000000580)='./file0\x00', 0x0, 0x204096, &(0x7f0000000600)='/dev/\xfec\xff\x00') r0 = socket$inet6_tcp(0xa, 0x1, 0x0) r1 = fcntl$dupfd(0xffffffffffffffff, 0x0, r0) setsockopt$IPT_SO_SET_REPLACE(0xffffffffffffffff, 0x4000000000000, 0x40, &(0x7f0000000040)=@raw={'raw\x00', 0x2, 0x3, 0x248, 0x0, 0xd0, 0x0, 0x0, 0xd0, 0x1b0, 0x1b0, 0x1b0, 0x1b0, 0x1b0, 0x3, 0x0, {[{{@ip={@local, @dev, 0x0, 0x0, '\x00', 'veth1_to_bond\x00'}, 0x0, 0x70, 0xd0}, @common=@CLUSTERIP={0x60, 'CLUSTERIP\x00', 0x0, {0x3, @dev}}}, {{@uncond, 0x0, 0x98, 0xe0, 0x0, {}, [@inet=@rpfilter={{0x28}}]}, @unspec=@CT0={0x48, 'CT\x00', 0x0, {0x0, 0x0, 0x0, 0x0, 'snmp_trap\x00'}}}], {{'\x00', 0x0, 0x70, 0x98}, {0x28, '\x00', 0x4}}}}, 0x2a8) r2 = syz_mount_image$msdos(&(0x7f00000000c0), &(0x7f0000000000)='./file0\x00', 0xffc00004, 0x2, &(0x7f0000000100)=[{&(0x7f0000000040)="040800090000ff01e66174000404090a0200027400f8", 0x16}, {&(0x7f00000004c0)="dbed7d4cac17", 0x6, 0x1f}], 0x0, &(0x7f0000000900)=ANY=[@ANYBLOB="e195418922000082520d147cf24c514100003a637c78e0ebca"]) r3 = openat$autofs(0xffffffffffffff9c, &(0x7f0000000540), 0x2000, 0x0) bpf$BPF_GET_PROG_INFO(0xf, &(0x7f0000000280)={0xffffffffffffffff, 0xc0, &(0x7f0000000180)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ""/16, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000000080)={0x3}, 0x0, 0x0, &(0x7f00000000c0)={0xffffffff, 0x2, 0x0, 0xb6f}, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000000140)=0x8}}, 0x10) r5 = openat$null(0xffffffffffffff9c, &(0x7f0000000540), 0x604a02, 0x0) bpf$PROG_LOAD(0x5, &(0x7f0000000d80)={0x0, 0x0, 0x0, &(0x7f0000000500)='syzkaller\x00', 0x7fffffff, 0xe7, &(0x7f0000000c80)=""/231, 0x41000, 0x1, '\x00', 0x0, 0xe, r5, 0x8, &(0x7f0000000580)={0x0, 0x1}, 0x8, 0x10, &(0x7f00000006c0)={0x5, 0x0, 0x3, 0x2}, 0x10, r4}, 0x78) r6 = openat$bsg(0xffffffffffffff9c, 0x0, 0x191040, 0x0) bpf$PROG_LOAD(0x5, &(0x7f0000000840)={0xcd230da84e53376a, 0x5, &(0x7f0000000300)=ANY=[@ANYBLOB="1d42feff64dd09db00feffffff182a00002709000000801a93e8642a3ab41fa656954e0771e63b88f490b6307ffd6e6be1c669966bf873617ce725d8073af7d4a9ea0c86d9e37d9db6cf03dc36c64b9be53d0503a8040300e694df5faca369341402745496c204b28f9e12ef", @ANYRES32, @ANYBLOB="00000000040000003c96040010000000"], 0x0, 0x200, 0x3c, &(0x7f0000000780)=""/60, 0x0, 0x4, '\x00', 0x0, 0x22, r6, 0x8, &(0x7f00000007c0)={0x6, 0x5}, 0x8, 0x10, &(0x7f0000000800)={0x1, 0x0, 0x1}, 0x10, r4}, 0x78) bpf$PROG_LOAD(0x5, &(0x7f0000000740)={0x0, 0x10, &(0x7f0000000440)=@raw=[@alu={0x7, 0x1, 0x0, 0x1, 0xa, 0x8, 0xfffffffffffffffc}, @call={0x85, 0x0, 0x0, 0x68}, @map_val={0x18, 0x2, 0x2, 0x0, r1, 0x0, 0x0, 0x0, 0x3}, @map_val={0x18, 0x6, 0x2, 0x0, r1, 0x0, 0x0, 0x0, 0x7}, @map={0x18, 0x4, 0x1, 0x0, r1}, @map_val={0x18, 0x6, 0x2, 0x0, r1, 0x0, 0x0, 0x0, 0x4}, @alu={0x4, 0x1, 0xc, 0xb, 0x3, 0x6, 0x1}, @map={0x18, 0x6, 0x1, 0x0, r1}, @func={0x85, 0x0, 0x1, 0x0, 0x3}, @initr0={0x18, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0xb62}], &(0x7f0000000500)='GPL\x00', 0x7, 0x0, 0x0, 0x41100, 0x3, '\x00', 0x0, 0x15, r3, 0x8, &(0x7f00000005c0)={0x4, 0x5}, 0x8, 0x10, &(0x7f0000000700)={0x2, 0x3, 0x6, 0x81}, 0x10, r4}, 0x78) link(&(0x7f0000000300)='./file0\x00', &(0x7f0000000340)='./file0\x00') socket$nl_route(0x10, 0x3, 0x0) mount$overlay(0x0, &(0x7f00000003c0)='./file0\x00', &(0x7f0000000400), 0x80010, &(0x7f0000000640)={[{@metacopy_on}, {@xino_off}, {@metacopy_off}, {@xino_auto}, {@upperdir={'upperdir', 0x3d, './file0'}}, {@workdir={'workdir', 0x3d, './file0'}}, {@nfs_export_on}, {@nfs_export_on}], [{@context={'context', 0x3d, 'staff_u'}}, {@dont_hash}, {@dont_hash}, {@appraise}, {@seclabel}, {@obj_role={'obj_role', 0x3d, '-.'}}]}) openat$vcs(0xffffffffffffff9c, 0x0, 0x80000, 0x0) open_by_handle_at(r2, &(0x7f0000000240)=ANY=[@ANYBLOB="1400000072"], 0x0) [ 502.778657] ceph: device name is missing path (no : separator in 00000000000000000003) 02:15:51 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(0x0, 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:51 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = creat(&(0x7f00000000c0)='./file0\x00', 0x0) write$binfmt_script(r1, &(0x7f00000002c0)=ANY=[@ANYBLOB="230275964c0e4d1a14750ded544f96c8b5b62d6092608636c7d825b43245e955b642d9a3f1b2c95d8a3b0a3da597a1000195914376666e92611fe2862102f15763419c960358"], 0x141) close(r1) openat(r1, &(0x7f0000000080)='./file0\x00', 0x103000, 0x0) syz_mount_image$v7(&(0x7f0000000100), &(0x7f0000000140)='./file0\x00', 0x80000000, 0x3, &(0x7f0000000240)=[{&(0x7f0000000180)="9a64a2b6b7e6429c5ae7530a5447d836fe26ab2c6817c8796cf49686604d48b4019a3236af6905bb2bbe81366f6351ecfaad4969e0a785448fb9378aa589890958", 0x41, 0x8}, {&(0x7f0000000200)="53fbe57b71adfc789c4331040d758e898760", 0x12, 0x7ff}, {&(0x7f0000000340)="d3aa19c03aa87b79900c13a69e2920aeb58149a493e52ea05746362d81f1b69719aaa968a81b453b962fb0f7c7e9babd2c0891f882d7e325b8beaee10767be7b5c4edf0721bad63d8a2e811df095ed721e7bc686c17b1223137db57a5b7639171fae0b7b6758c665e8b6bd85d2cb7a23265f4195a4ce334ae3ffca0db6f7fefabfa67eea25b3df538453e21c76b8c42c0a82be1d5cf334901b316af9d0deb2a204a5a5a2110aece05223a2dae87dd81e701da766f1d0df3102463da0ffc54576d303f0a840a1a06ff4b2d799fb917e43bbafe39cd30e8e84caa9809755573dc57651f93211", 0xe5, 0x54}], 0x1000, &(0x7f0000000440)={[{}, {']'}, {'{!'}, {'-$%'}, {'!-'}, {}], [{@dont_hash}, {@smackfsroot}]}) r2 = socket(0x2, 0x803, 0xff) connect$inet(r2, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r3 = dup(r2) sendfile(r3, r0, 0x0, 0x4000000000000081) 02:15:51 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000180)=ANY=[@ANYBLOB="3a51eec02878541e54b16c76e5abae2fbe021b1209495bae84796e01d36a1c3e7f713b17f08e99599de6e79321642ff2f61fe48887e2d357903a01e322ef3002eae486193f7fbf547754456f9cb637fab916096b7601d5276daacf6e27bb610f955d594e343694479cdc01a0c61dc1a2015cae8490ee0583033b6dc20a60d3997ed6f1d9cbd4552c7513fbf977d26a40d812ea64466b7416e735ca81a2738044fedd3969e8f42b2fde1d4375a71e72ff948590f11bb279f79958bf86d984af119d3284638875fbcce88a75d7b901dde67cd20ddd4aa36ac41faf27d428201b5307e5ca9ba76428af3a927d371923a7db5c7957120d0b9d3546abdd651baa81492de8b11515623eedd4c255a1edfb9e673990337f2d6a5ced09adb9e8e5965c4fd5997429a71dc9ce613da5e9e0d05d0f236b0f"], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) [ 502.980539] ceph: device name is missing path (no : separator in ) 02:15:52 executing program 3: syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x40000, 0x17, &(0x7f0000000200)=[{&(0x7f0000010000)="2000000080000000060000006a0000000f000000000000000100000001000000004000000040000020000000d5f4655fd6f4655f0100ffff53ef010001000000d5f4655f000000000000000001000000000000000b0000000001000028020000028401001b0000000000000000000000000000000000000073797a6b616c6c6572000000000000002f746d702f73797a2d696d61676567656e37373731383437373000"/192, 0xc0, 0x400}, {&(0x7f0000010100)="0000000000000000000000002446d29025514b1c8845339908ad0491010000000c00000000000000d5f4655f00"/64, 0x40, 0x4e0}, {&(0x7f0000010200)="00000000000000000000000000000000000000000000000000000000200020000100000000000000000000000000000000000000000000002e00000000000000", 0x40, 0x540}, {&(0x7f0000010300)="0000000000000000000000000000000000000000010400"/32, 0x20, 0x640}, {&(0x7f0000010400)="0200000003000000040000006a000f000300040000000000000000000f00bc0f", 0x20, 0x800}, {&(0x7f0000010500)="ffff3f00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000d5f4655fd5f4655fd5f4655f00"/4128, 0x1020, 0x1000}, {&(0x7f0000011600)="ed41000000080000d5f4655fd5f4655fd5f4655f00000000000004000400000000000000050000000800"/64, 0x40, 0x2100}, {&(0x7f0000011700)="20000000500753ed500753ed00000000d5f4655f00"/32, 0x20, 0x2180}, {&(0x7f0000011800)="c041000000380000d5f4655fd5f4655fd5f4655f00000000000002001c0000000000000000000000090000000a0000000b0000000c0000000d0000000e0000000f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000d5f4655f000000000000000000000000000002ea00"/192, 0xc0, 0x2a00}, {&(0x7f0000011900)="ed4100003c000000d5f4655fd5f4655fd5f4655f0000000000000200000000000000001003000000020000000d0000001000050166696c65300000000e0000002800050766696c6531000000000000000000000000000000000000000000000000000000e978bfbe00000000000000000000000000000000000000000000000020000000500753ed500753ed500753edd5f4655f500753ed0000000000000000000002ea04070000000000000000000000000000646174610000000000000000", 0xc0, 0x2b00}, {&(0x7f0000011a00)="ed8100001a040000d5f4655fd5f4655fd5f4655f0000000000000100040000000000000001000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fd4e152d00000000000000000000000000000000000000000000000020000000500753ed500753ed500753edd5f4655f500753ed0000000000000000", 0xa0, 0x2c00}, {&(0x7f0000011b00)="ffa1000026000000d5f4655fd5f4655fd5f4655f00000000000001000000000000000000010000002f746d702f73797a2d696d61676567656e3737373138343737302f66696c65302f66696c653000000000000000000000000000000000000000000000e528a92800000000000000000000000000000000000000000000000020000000500753ed500753ed500753edd5f4655f500753ed0000000000000000", 0xa0, 0x2d00}, {&(0x7f0000011c00)="ed8100000a000000d5f4655fd5f4655fd5f4655f000000000000010000000000000000100100000073797a6b616c6c657273000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000027bb2f1900000000000000000000000000000000000000000000000020000000500753ed500753ed500753edd5f4655f500753ed0000000000000000000002ea040700000000000000000000000000006461746106015400000000000600000000000000786174747231000006014c000000000006000000000000007861747472320000000000000000000078617474723200007861747472310000ed81000028230000d5f4655fd5f4655fd5f4655f00000000000002001400000000000000010000001100000012000000130000001400000015000000000000000000000000000000000000000000000000000000000000000000000000000000000000005a56e87200000000000000000000000000000000000000000000000020000000500753ed500753ed500753edd5f4655f500753ed0000000000000000", 0x1a0, 0x2e00}, {&(0x7f0000011e00)="ed81000064000000d5f4655fd5f4655fd5f4655f000000000000010000000000000000100100000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c71163c9a00000000000000000000000000000000000000000000000020000000500753ed500753ed500753edd5f4655f500753ed0000000000000000000002ea040734000000000028000000000000006461746100000000000000000000000000000000000000000000000000000000000000006c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273", 0x100, 0x3000}, {&(0x7f0000011f00)="020000000c0001022e000000020000000c0002022e2e00000b00000014000a026c6f73742b666f756e6400000c0000001000050266696c65300000000f0000001000050166696c6531000000100000001000050166696c6532000000100000001000050166696c6533000000110000009407090166696c652e636f6c64000000", 0x80, 0x4000}, {&(0x7f0000012000)="0b0000000c0001022e000000020000000c0002022e2e000000000000e8070000", 0x20, 0x4800}, {&(0x7f0000012100)='\x00\x00\x00\x00\x00\b\x00'/32, 0x20, 0x5000}, {&(0x7f0000012200)='\x00\x00\x00\x00\x00\b\x00'/32, 0x20, 0x5800}, {&(0x7f0000012300)='\x00\x00\x00\x00\x00\b\x00'/32, 0x20, 0x6000}, {&(0x7f0000012400)='\x00\x00\x00\x00\x00\b\x00'/32, 0x20, 0x6800}, {&(0x7f0000012500)='\x00\x00\x00\x00\x00\b\x00'/32, 0x20, 0x7000}, {&(0x7f0000012600)='\x00\x00\x00\x00\x00\b\x00'/32, 0x20, 0x7800}, {&(0x7f0000012700)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkal\x00\x00\x00\x00\x00\x00', 0x420, 0x8000}], 0x0, &(0x7f0000012c00)) umount2(&(0x7f0000000040)='./file0\x00', 0xc) rename(&(0x7f0000000080)='./file0\x00', &(0x7f00000000c0)='./file0\x00') 02:15:52 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608300, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:52 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(0xffffffffffffffff, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r2}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 503.170771] ceph: device name is missing path (no : separator in :QîÀ(xTT±lvå«®/¾ I[®„ynÓj>q;ðŽ™Yæç“!d/òö䈇âÓW:ã"ï0êä†?¿TwTEoœ¶7ú¹ kvÕ'mªÏn'»a•]YN46”GœÜ ÆÁ¢\®„îƒ;m [ 503.170771] `Ó™~ÖñÙËÔU,uûùwÒj@ØêdFktç5Ê¢s€DþÝ9ièô+/ÞCu§rÿ”…ñ²y÷™X¿†Ù„¯2„cˆuûÌèŠu×¹Ýæ|ÒÝJ£jį'Ô( SåÊ›§d(¯:’}7#§Û\yW 5F«ÝeªI-è±b>íÔÂU¡íûžg93-j\í ­¹èå–\OÕ™t)§ÉÎa=¥éàÐ]#k) 02:15:52 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0xa, 0x80a, 0x0) setsockopt$ARPT_SO_SET_REPLACE(r1, 0x0, 0x60, &(0x7f0000000700)={'filter\x00', 0x7, 0x4, 0x3b8, 0xe8, 0x0, 0xe8, 0x2d0, 0x2d0, 0x2d0, 0x4, &(0x7f0000000000), {[{{@arp={@rand_addr=0x64010100, @dev={0xac, 0x14, 0x14, 0x34}, 0xffffffff, 0x0, 0xa, 0xb, {@empty, {[0x0, 0xff, 0x0, 0x0, 0x0, 0xff]}}, {@empty, {[0xff, 0xff, 0xff, 0xff]}}, 0xfff9, 0x401, 0x9, 0x1, 0xfffd, 0x9, 'geneve1\x00', 'bond_slave_0\x00', {0xff}, {0xff}, 0x0, 0x4bf25a07ea037e49}, 0xc0, 0xe8}, @unspec=@NFQUEUE0={0x28, 'NFQUEUE\x00', 0x0, {0x400}}}, {{@uncond, 0xc0, 0x100}, @unspec=@RATEEST={0x40, 'RATEEST\x00', 0x0, {'syz1\x00', 0x75, 0x7f, {0x8001}}}}, {{@uncond, 0xc0, 0xe8}, @unspec=@NFQUEUE0={0x28}}], {{'\x00', 0xc0, 0xe8}, {0x28}}}}, 0x408) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f0000000300)={'bond0\x00', 0x0}) r3 = open(&(0x7f0000000040)='./file0\x00', 0x24000, 0x1b) sendmsg$nl_route(r3, &(0x7f0000000140)={0x0, 0x0, &(0x7f00000006c0)={&(0x7f0000000180)=ANY=[@ANYBLOB="3c0000001000010400"/20, @ANYRES32=r2, @ANYRESDEC=r0], 0x3c}, 0x1, 0x0, 0x0, 0x200440c5}, 0x0) 02:15:52 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(0xffffffffffffffff, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r2}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:52 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(0xffffffffffffffff, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r2}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:52 executing program 5: mkdir(&(0x7f0000000280)='./file0\x00', 0x0) pipe2$9p(&(0x7f00000001c0)={0xffffffffffffffff, 0xffffffffffffffff}, 0x0) write$P9_RVERSION(r0, &(0x7f0000000180)=ANY=[@ANYBLOB="1500000065ffff018000739fe46e44dab515d7ab30"], 0x15) r1 = dup(r0) write$FUSE_BMAP(r1, &(0x7f0000000100)={0x18}, 0x18) write$FUSE_NOTIFY_RETRIEVE(r1, &(0x7f00000000c0)={0x14c}, 0x137) r2 = openat(0xffffffffffffffff, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r2, 0x0) r3 = creat(&(0x7f0000000280)='./file0\x00', 0x3) symlink(&(0x7f00000002c0)='./file0\x00', &(0x7f0000000300)='./file0\x00') close(r3) write$P9_RWSTAT(r3, &(0x7f0000000240)={0x7, 0x7f, 0x2}, 0x7) preadv(r2, &(0x7f0000000280), 0x18, 0xd9f, 0x0) r4 = socket$inet6(0xa, 0x3, 0x7) connect$inet6(r4, &(0x7f00000000c0)={0xa, 0x0, 0x0, @loopback}, 0x1c) setsockopt$inet6_IPV6_XFRM_POLICY(r4, 0x29, 0x23, &(0x7f0000000340)={{{@in=@dev={0xac, 0x14, 0x14, 0x18}, @in6=@mcast2, 0x0, 0x0, 0x0, 0x0, 0xa}, {}, {}, 0x0, 0x0, 0x1}, {{@in=@private, 0x0, 0x33}, 0x0, @in=@dev, 0x0, 0x0, 0x0, 0x24}}, 0xe8) mount$9p_fd(0x0, &(0x7f0000000200)='./file0\x00', &(0x7f0000000140), 0x0, &(0x7f0000000480)=ANY=[@ANYBLOB='trans=fd,rfdno=', @ANYRESDEC, @ANYBLOB=',wfdno=', @ANYRESHEX=r0]) umount2(&(0x7f0000000040)='./file0\x00', 0x3) write$P9_RCREATE(0xffffffffffffffff, &(0x7f0000000080)={0x18, 0x73, 0x2, {{0x4, 0x0, 0x1}, 0xffff}}, 0x18) mount(&(0x7f0000000440)=ANY=[@ANYBLOB="2f646576bf102f6e756c6c723000"], &(0x7f0000000380)='./file0\x00', &(0x7f00000003c0)='ntfs\x00', 0x2260414, &(0x7f0000000400)='\x00') 02:15:52 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', 0x101000, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = dup(r1) sendfile(r2, r0, 0x0, 0x4000000000000081) 02:15:52 executing program 1: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000340)=@nbd={'/dev/nbd', 0x0}, &(0x7f0000000380)='./file0\x00', &(0x7f00000003c0)='tmpfs\x00', 0x4, &(0x7f0000000400)='ceph\x00') clone(0x8000000, &(0x7f0000000180)="23a1e0946ccdf7895354113a5496dd24ce4f540dcc4748393de0c7b96341c572ab5d19a0440a65ef45cd37cb41510dc54ecaeaf87c04184ee7473f37abca437b0b419d029eec3266312fef159f068f796f2348b57e85fbfac9e0891b9a0ba85f1db434995d625a80320a", &(0x7f0000000080), &(0x7f0000000100), &(0x7f0000000200)="59a89eb03b9d56d37d69415055c560c8afb056d045c3ba8cb43d3a41e72575642d63e7d242ddc4cfaf3a44d73b4bcb4a7209bfb54b4716eacc011324c789b33b3ff72c28aabbc0b48a97778403194ac157bc493ee00bdc1a93ce20caa9a450c931472aa779d7ea4ba9f337d3130a0ff229dd483fe1bea3316413ae73cd331e89ef91ca70db8c465b5637b986e46dbb502be3f45d49e88bbee63777c0e6115f943fc5d2265a036da161a691d383766c866cbd28ed3bf45f68ad682fd6e79decc9a84502ed53a228f44a765f0cb78a95c8610abd68a12f77be2e5853bd400dd338ee4b79695964ae8290bf7f63d75a32d7f4cb03516b") exit_group(0x0) timer_create(0x0, &(0x7f0000000300)={0x0, 0x0, 0x0, @thr={0x0, 0x0}}, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000000)=ANY=[@ANYRESDEC], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) 02:15:52 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608301, 0x7ffffe, 0x4002011, r1, 0x0) [ 503.650815] 9pnet: Insufficient options for proto=fd [ 503.656763] tmpfs: No value for mount option 'ceph' 02:15:52 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, 0x0) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 503.723427] 9pnet: Insufficient options for proto=fd [ 503.751861] ceph: device name is missing path (no : separator in 18446744073709551615) [ 503.769710] tmpfs: No value for mount option 'ceph' 02:15:52 executing program 5: r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='cgroup.controllers\x00', 0x275a, 0x0) write$binfmt_script(r0, &(0x7f0000000040)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r0, 0x0) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000080)='cgroup.controllers\x00', 0xb00000000065808, 0x0) openat$cgroup_ro(r0, &(0x7f00000000c0)='cpuacct.usage_percpu_sys\x00', 0x0, 0x0) socketpair$tipc(0x1e, 0x2, 0x0, &(0x7f0000000040)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$TUNSETLINK(r2, 0x8912, 0x400308) r3 = socket$nl_generic(0x10, 0x3, 0x10) r4 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000800), 0xffffffffffffffff) sendmsg$NL80211_CMD_NEW_INTERFACE(0xffffffffffffffff, &(0x7f0000000240)={0x0, 0x0, &(0x7f0000000200)={&(0x7f0000000000)=ANY=[@ANYBLOB='$\x00\x00\x00', @ANYRES16=r4, @ANYBLOB="0100000000000000000002000000080002000f000000080003"], 0x24}}, 0x0) sendfile(r3, r1, 0x0, 0x100000002) 02:15:52 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = dup(r1) sendfile(r2, r0, 0x0, 0x4000000000000081) quotactl(0x5, &(0x7f0000000180)='./file0\x00', 0xee01, &(0x7f00000001c0)="4ab2214d99d4153c19833515b3cfae40a075ed8149bab6b8ea453863f75a4b7569333afd15b2ff41f46165ce2d56b64d45d0aebd6e8c6f9318cd856a620b09c9a43057d0c6308fe98f34b11892ef2f44a909e8960e9fa6610326f34e02979923388ea9fcfbfd28bfd1af1532") r3 = socket$l2tp6(0xa, 0x2, 0x73) connect$inet6(r3, &(0x7f0000000240)={0xa, 0x4e24, 0x7f, @loopback, 0x2}, 0x1c) r4 = creat(&(0x7f0000000280)='./file0\x00', 0x3) close(r4) sendmsg$nl_route_sched(r4, &(0x7f0000000140)={&(0x7f0000000080)={0x10, 0x0, 0x0, 0x80}, 0xc, &(0x7f0000000100)={&(0x7f00000000c0)=@newqdisc={0x2c, 0x24, 0x0, 0x70bd2c, 0x25dfdbff, {0x0, 0x0, 0x0, 0x0, {0xffff, 0x10}, {0x5, 0x4}, {0xffe0, 0x8}}, [@TCA_RATE={0x6, 0x5, {0x0, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x4000000}, 0x4008000) 02:15:52 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, 0x0) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:52 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608400, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:52 executing program 1: sendmsg$kcm(0xffffffffffffffff, 0x0, 0x0) r0 = socket$kcm(0xa, 0x5, 0x0) socket$kcm(0x29, 0x0, 0x0) perf_event_open(&(0x7f0000000180)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x203, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) getpid() perf_event_open(0x0, 0x0, 0x0, 0xffffffffffffffff, 0x0) r1 = bpf$PROG_LOAD(0x5, &(0x7f0000000080)={0x5, 0x3, &(0x7f00000019c0)=ANY=[], &(0x7f0000000000)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, &(0x7f0000000000), 0x8, 0x10, &(0x7f0000000000)={0x0, 0x3}, 0x10}, 0x78) bpf$BPF_TASK_FD_QUERY(0x14, 0x0, 0x0) sendmsg(r0, &(0x7f0000000400)={&(0x7f0000000140)=@in6={0xa, 0x0, 0x0, @loopback={0x8dffffff00000000, 0x7ffff000}}, 0x80, &(0x7f0000000080)=[{&(0x7f0000000000)="be", 0x1}], 0x1}, 0x4040060) sendmsg(r1, &(0x7f0000000100)={0x0, 0x0, &(0x7f0000000a40)=[{0x0}, {&(0x7f0000000700)}, {0x0}, {0x0}, {0x0}], 0x5, 0x0, 0x1490}, 0x0) 02:15:52 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, 0x0) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 503.993199] audit: type=1804 audit(1623032152.934:11262): pid=4479 uid=0 auid=4294967295 ses=4294967295 subj==unconfined op=invalid_pcr cause=open_writers comm="syz-executor.5" name="/root/syzkaller-testdir684226176/syzkaller.8Mc0q7/35/cgroup.controllers" dev="sda1" ino=14202 res=1 02:15:53 executing program 2: socket$nl_generic(0x10, 0x3, 0x10) r0 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(0xffffffffffffffff, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r0, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r2}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:53 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608401, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:53 executing program 2: socket$nl_generic(0x10, 0x3, 0x10) r0 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(0xffffffffffffffff, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r0, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r2}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:53 executing program 1: r0 = perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, @perf_bp, 0x0, 0x0, 0x0, 0x8}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r1 = syz_open_dev$tty1(0xc, 0x4, 0x4) ioctl$TCSETS2(0xffffffffffffffff, 0x402c542b, &(0x7f00000003c0)={0x46e3, 0x5f3, 0x0, 0x85ab, 0x0, "ec4b2cf4dd291ac55a0cde0c254d6c6cb5a8c4"}) r2 = msgget(0x0, 0x204) msgctl$IPC_STAT(r2, 0x2, &(0x7f0000000000)=""/46) preadv(0xffffffffffffffff, &(0x7f0000000280), 0x18, 0xd9f, 0x0) ioctl$TIOCL_PASTESEL(r1, 0x541c, &(0x7f0000000100)) r3 = syz_open_dev$dri(&(0x7f0000000000), 0x0, 0x40) ioctl$DRM_IOCTL_MARK_BUFS(r3, 0x40206417, &(0x7f0000000100)) dup3(r0, r3, 0x80000) sync() 02:15:53 executing program 2: socket$nl_generic(0x10, 0x3, 0x10) r0 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(0xffffffffffffffff, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r0, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r2}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:53 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608500, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:53 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000000)={'wlan1\x00'}) sendmsg$NL80211_CMD_FRAME(r0, 0x0, 0x0) 02:15:53 executing program 5: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r0, 0x6, 0x80000000000002, &(0x7f0000000300)=0x80, 0x4) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0xffffffffffffffb5, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) setsockopt$sock_int(r0, 0x1, 0x21, &(0x7f00000003c0), 0x4) write$binfmt_elf64(r0, &(0x7f0000000100)=ANY=[], 0x2bcf) shutdown(r0, 0x1) io_setup(0x0, 0x0) io_submit(0x0, 0x0, 0x0) ioctl$sock_SIOCGIFVLAN_SET_VLAN_FLAG_CMD(0xffffffffffffffff, 0x8982, 0x0) r1 = socket$inet6(0xa, 0x3, 0x7) connect$inet6(r1, &(0x7f00000000c0)={0xa, 0x0, 0x0, @loopback}, 0x1c) setsockopt$inet6_IPV6_XFRM_POLICY(r1, 0x29, 0x23, &(0x7f0000000340)={{{@in=@dev={0xac, 0x14, 0x14, 0x18}, @in6=@mcast2, 0x0, 0x0, 0x0, 0x0, 0xa}, {}, {}, 0x0, 0x0, 0x1}, {{@in=@private, 0x0, 0x33}, 0x0, @in=@dev, 0x0, 0x0, 0x0, 0x24}}, 0xe8) sendmmsg(r1, &(0x7f0000000480), 0x2e9, 0x1f4) recvmsg(r1, &(0x7f0000001440)={0x0, 0x0, &(0x7f00000015c0)=[{&(0x7f0000001600)=""/4096, 0x1000}], 0x1, 0x0, 0x0, 0x7115}, 0x1000) 02:15:53 executing program 3: r0 = perf_event_open(&(0x7f0000000040)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x511, 0x40000, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x8024}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) perf_event_open(0x0, 0xffffffffffffffff, 0x0, 0xffffffffffffffff, 0x2) getsockopt$IP6T_SO_GET_REVISION_TARGET(0xffffffffffffffff, 0x29, 0x45, &(0x7f00000001c0)={'ah\x00'}, 0x0) ioctl$PERF_EVENT_IOC_PERIOD(r0, 0x40082404, &(0x7f00000000c0)) r1 = openat$loop_ctrl(0xffffffffffffff9c, &(0x7f0000000100), 0x0, 0x0) ioctl$LOOP_CTL_REMOVE(r1, 0x4c81, 0x0) r2 = ioctl$LOOP_CTL_GET_FREE(r1, 0x4c82) r3 = openat(0xffffffffffffff9c, 0x0, 0x0, 0x0) openat$binder_debug(0xffffffffffffff9c, &(0x7f0000000000)='/sys/kernel/debug/binder/failed_transaction_log\x00', 0x0, 0x0) ioctl$LOOP_CTL_GET_FREE(0xffffffffffffffff, 0x4c82) ioctl$LOOP_CTL_ADD(r1, 0x4c80, r2) ioctl$LOOP_CTL_ADD(0xffffffffffffffff, 0x4c80, 0x0) prctl$PR_SET_MM_MAP(0x23, 0xe, &(0x7f0000000140)={&(0x7f0000ffa000/0x3000)=nil, &(0x7f0000ffb000/0x2000)=nil, &(0x7f0000ffc000/0x4000)=nil, &(0x7f0000ff9000/0x7000)=nil, &(0x7f0000ffc000/0x1000)=nil, &(0x7f0000ffb000/0x3000)=nil, &(0x7f0000ffc000/0x2000)=nil, &(0x7f0000ffb000/0x4000)=nil, &(0x7f0000ffb000/0x4000)=nil, &(0x7f0000ffa000/0x1000)=nil, &(0x7f0000400000/0xc00000)=nil, &(0x7f00000002c0)="fb3a574cba3b1dc96d546de441a643b9139400c759ae9ffc6629c851b78410a654303b2d0fd5979124b5461202f88087967cb318b51ea8a6d2445a8e038d02b8352bf374d3ddc12dfd52ce1e4ad1817f22581d16f19a54a954d80f14e28dd956faf75225da85d72a133a786a3eeccca7845bb6d96e4d449799099b0960b35a9d63831df5b55f59215f21ffc2be66984bb42f6fc3123d84b9d54f68c663423494627538e038fc123fbdf6d9240da7d743a127b10642b284055d8c67f466de4e1de62f99cb1d801a3ab9076be984246e8b74e4b1ca15e7f75943", 0xd9}, 0x68) ioctl$LOOP_CTL_ADD(r1, 0x4c80, 0x0) r4 = ioctl$LOOP_CTL_GET_FREE(r1, 0x4c82) ioctl$LOOP_CTL_REMOVE(r3, 0x4c81, r4) r5 = creat(&(0x7f0000000280)='./file0\x00', 0x3) close(r5) r6 = ioctl$LOOP_CTL_GET_FREE(r3, 0x4c82) ioctl$LOOP_CTL_ADD(r5, 0x4c80, r6) 02:15:53 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000000)={'wlan1\x00'}) sendmsg$NL80211_CMD_FRAME(r0, 0x0, 0x0) 02:15:53 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608501, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:53 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000000)={'wlan1\x00'}) sendmsg$NL80211_CMD_FRAME(r0, 0x0, 0x0) 02:15:53 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = accept$netrom(0xffffffffffffffff, &(0x7f0000000080)={{0x3, @bcast}, [@rose, @bcast, @null, @default, @rose, @default, @null, @netrom]}, &(0x7f0000000100)=0x48) r3 = socket$nl_xfrm(0x10, 0x3, 0x6) bind$netlink(r3, &(0x7f0000000080)={0x10, 0x0, 0x0, 0x1}, 0xc) r4 = socket$nl_xfrm(0x10, 0x3, 0x6) bind$netlink(r4, &(0x7f0000000080)={0x10, 0x0, 0x0, 0x1}, 0xc) ppoll(&(0x7f0000000140)=[{r0, 0x50}, {r0, 0x4019}, {r2, 0x8200}, {r3, 0x1300}, {r1, 0x8409}, {r4, 0x82}, {r1, 0x400}], 0x7, &(0x7f0000000180)={0x0, 0x989680}, &(0x7f00000001c0)={[0x2]}, 0x8) r5 = socket$nl_xfrm(0x10, 0x3, 0x6) bind$netlink(r5, &(0x7f0000000080)={0x10, 0x0, 0x0, 0x1}, 0xc) socketpair$unix(0x1, 0x2, 0x0, &(0x7f00000000c0)={0xffffffffffffffff}) close(r6) r7 = socket(0x200000100000011, 0x3, 0x0) ioctl$sock_SIOCGIFINDEX(r6, 0x8933, &(0x7f0000000140)={'veth1\x00', 0x0}) bind$packet(r7, &(0x7f0000000200)={0x11, 0x0, r8, 0x1, 0x0, 0x6, @local}, 0x14) sendmmsg$inet(r5, &(0x7f0000001080)=[{{0x0, 0x0, &(0x7f0000000580)=[{&(0x7f0000000200)="84060f0291f70db78d9e78df3212828ee5aa581543fe4c9fa1d2543379a8897cf6e29653998d77cd6bf1c0b76d8f1aae92d3e9d44bf56728416c52d7f92148bc8a149d4530e69b73f9b313d0367b9c8c8abfd12eb637790ba4b2183aee51924fb7fe31093b02d88acfa44dd76177e0c4bc0d99c068d865e501740daf544b0fa403dbb00ad54bc881b88698b01a8c59eca07d39669af9832ae3308920ccb63ad502d972050088e6d68f606ee05a76f7d5d5b4e77e7d58ab184aef6d2e16667a019c8c9a32558fe7cc0287990d276e9e7ddf5b3139", 0xd4}, {&(0x7f0000000300)="d528c25c82421f0a3b847e463d736a2e46375443e47a209abc1df1e98ac1c610ec68b536c4ae6fb29d419a8adeef503093931f2036d2d91257a9a6ef81772d568331871d86f98bd8e5660cdc9a14927abdee443e35032ed34ab1fbd6955357abd0386865f88b0b927dea22b2d3d71b0bd93811da2d0cbf1e529a693502028280cd032c4af58891493020f3dae52d3467305995b7864c6d72f9fb171b47df2bba8c54f74d17510f897ef3b8b683d9e1ac05ff687dd8aa4e78a4583ed5a72bdcb2240b39a935bb8f5ff77c56f4ab40a5a0987b5d85e2fe84339c54bfd0d9e84b44f0948a065ee37d4cb6b38d0d2d00df7c8b744ce9364058f9ad6601", 0xfb}, {&(0x7f0000000400)="bcc8579703d70902835314f94e610d4d7753dbd4be2a191cb951d0a1cecd175390facbebfb3ecab24c846fc8848d690fabe59d0f0a51af547187e5eb3246ff23c5315e8af5f20a428c84", 0x4a}, {&(0x7f0000000480)="787b8c7f8591fbab7e3fe896ad723b0cae64b8e7d87a9d1bd15c6e93cc2384832740772d306b7a3adad53d8291275ccf7527ecd922d9171e7c6e48ae93a258aa6bc6fa", 0x43}, {&(0x7f0000000500)="6b7b0c7d080b202fda79081ee3", 0xd}, {&(0x7f0000000540)="02aec8312fd5ea68", 0x8}], 0x6, &(0x7f0000000600)=ANY=[@ANYBLOB="1c000000000000000000000008000000", @ANYRES32=r8, @ANYBLOB="64010100ac1414aa00000000110000000000000000000000010000000000000000000000640000000000000800000000070000000713ceac1414aaac1414bb0a010102ac1414bb891797e0000002ac1414bb64010100ac1414aaac14141a8608736c410a50d3441cf640000000c7000000020000000200006707c0000001000000078606ffffffff00000000"], 0xa0}}, {{0x0, 0x0, &(0x7f0000000980)=[{&(0x7f00000006c0)="25b50260825e3cd53fefff2d880c2d1822be56f3670222a4168623689bbecf3279c2856857fc497385b070ec00d5e6440fb801a87a017b6c6fe7a8b9ddeaf50c74f1a87199fd930462635a6c259788a1066becfd1edd840a9dd7703ef5be3ab6dfd1e454c4f44006b37fe3b93e8bed2f33dc0cc19236a153ffd947c08994eaab90b4dc8d24fda0532532434653924a31345cc45954bb1b1bc17df41d2aae3c4aca1b4be1e610f71270fea56a6ec4802c62247c62db7ac736a7b0693c7ce1cd179ea9e8f1c110e8e3724b4809e771d9f7a23239bdbd209fe9e8713638d1fae9134ae625e45cb21b9435faa37723b5c4", 0xef}, {&(0x7f00000007c0)="3f3845522ed1dffc4c2f01f7f08cc0be9f2511b9a981782ea2144a7e55bbd46b0ed163dfa8bf1081124a3d888cfc527f80f48ba241683d5ba3213773e84449b932fbf1971eeb0a73c5e7ba5eebc0a7d61a833f174cda38243120701077dc2c", 0x5f}, {&(0x7f0000000840)="3abab5ea1c3e25c5b62c91abd46a2436d027fc5010fab8a58051607263f67ec780d1b3c8f371ffcacf17490f5ddc5bb706478636ac7599234d368ebf9f7e05d681dd81e0c1e90c0de49b53d17fc1a2577d05", 0x52}, {&(0x7f00000008c0)="cc4d5f4a9dd6d7bc3dd8fac527b2ac4d83a79ba362641dd943c903361c8c", 0x1e}, {&(0x7f0000000900)="55b18fb027a04974637574fd3f60af426e31201d1908a77724a104276c33f6b857", 0x21}, {&(0x7f0000000940)="c1ee23ffb9ec720542e598", 0xb}], 0x6}}, {{&(0x7f0000000a00)={0x2, 0x4e21, @private=0xa010102}, 0x10, &(0x7f0000000ec0)=[{&(0x7f0000000a40)="16e182df7790a3a79f8bf97fa062007f449b1948d84fdbb4", 0x18}, {&(0x7f0000000a80)="c915ac5361cb98e7e48c3ade626fc85d51dd3ef134a867c58e", 0x19}, {&(0x7f0000000ac0)="2c6800d92714e149217f11f87c71f147224560871a118dce3bff9d922f3397b17690f4d91c6badd1e445b4692b5d8c39f3cb12d6346254644f84da35e85ed6c3ca443878645dff9fb65b58c85f85d6b882b3f61e552e770d424202b047ef9fd315", 0x61}, {&(0x7f0000000b40)="1b5531a46c3d5a3d6cbec134020fba228e0b421d8553b6a8a1919cee052d662b313ce626909298f9e6045b39d7708c6249e1df46795cb8542601887215516493f389c2", 0x43}, {&(0x7f0000000bc0)="4d646cd0785c20422db0ead68168ed558c0a6fe1a0fc6918b3e33deab449cb33e3704bee3efb4ce1fe4743a8dcf0952fb48a6ad138a18c8a11d7428987d3da76e6cd530695707b9d9b305002e7a63d", 0x4f}, {&(0x7f0000000c40)}, {&(0x7f0000000c80)="ecf9f7a5c301c801f3b593c9c605c7449190fe47fd265616d839ae40cf98a283abf0a4be8f292f5c0b24f7d408a00097765a36a176ec67a8365ee09734e91fe92e7a5b096e7a559ac74c93ce9368e4506de2b54fac3e4b185e8b76032fe2e3c4ed055cec1b4f759f87851e6fd5c59a295a89ffff2169e10c5e361712c462a38fe8315220b5da348b947ef8b6ad2768126ea2cd21d72afb0bfd70a0ef75559d0ba3c00e1c02fb6d2e15d438fb365afc8366f3f5124d9f006d5d173cce0e07c34d7e796b61fafd4a211e3ec412c9e269a6c7af1566368bd98e17aee90c27394e245b88d4e31f9df538", 0xe8}, {&(0x7f0000000d80)="7928eddf4636e0ed3a544573aaa5ece21e5ef2f40abcddae94538709b3f2682c981538fa3aee2ede8f2509861307740162562a864cef", 0x36}, {&(0x7f0000000dc0)="b45d351e2eef1b301f4628462a4a7c9e3d308c2fdb50bf111de1f0dc4b2918506b8b98ba0901f7c77bc023fd4c9e42b95b4cb847ce70b3595d92a7467cd6e38f76c1209539dd9c6f80a0d32ae73365e4062ddc43da8723b19e095d4ba0ea7dd91b8d16b2f0a3eb813d21eedc82b4442955182e98da18582d9f0cfd2cdcb2db4685352a9bc258c8684ffa2b558e57b72c7131727a7058d7e94226f9d09848d7392ea3d1a5da9a717a3bcdc8f7508e338df0054067a672f56db35b7f58abf51541977271001fa946e3f22c9588fccb15362d007c3bb1e9d0", 0xd7}], 0x9}}, {{&(0x7f0000000f80)={0x2, 0x4e20, @initdev={0xac, 0x1e, 0x1, 0x0}}, 0x10, &(0x7f0000001040)=[{&(0x7f0000000fc0)="290971a147f43607f6d8f7a406e1c2cd10becfdf3b5871ad45688298d1e76e1a5c3a26b45ea4a59af17fc9d2b55c53e0c7b8600a52378d6423766157e8c549a06d733ff77e1676d544a90ff6434306ba244dacfc623a7a5e24d638d67b1de0b5cdd7f9cfe71e6c0722237f1b8cf1f50e3589e868d25c2c519fa1d4a6d78cf4", 0x7f}], 0x1}}], 0x4, 0x4000000) r9 = dup(r1) sendfile(r9, r0, 0x0, 0x4000000000000081) sendmsg$IPCTNL_MSG_TIMEOUT_GET(0xffffffffffffffff, &(0x7f0000001200)={&(0x7f0000000c40)={0x10, 0x0, 0x0, 0x20000}, 0xc, &(0x7f00000011c0)={&(0x7f0000001180)={0x34, 0x1, 0x8, 0x801, 0x0, 0x0, {0x7, 0x0, 0x7}, [@CTA_TIMEOUT_L3PROTO={0x6, 0x2, 0x1, 0x0, 0x6003}, @CTA_TIMEOUT_L3PROTO={0x6, 0x2, 0x1, 0x0, 0x6007}, @CTA_TIMEOUT_L4PROTO={0x5, 0x3, 0x3a}, @CTA_TIMEOUT_L4PROTO={0x5, 0x3, 0x6}]}, 0x34}, 0x1, 0x0, 0x0, 0x40000}, 0x1815) 02:15:54 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608600, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:54 executing program 3: r0 = perf_event_open(&(0x7f0000000700)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r1 = socket$inet6(0xa, 0x3, 0x6) setsockopt$inet6_IPV6_FLOWLABEL_MGR(r1, 0x29, 0x20, &(0x7f0000000000)={@mcast1, 0x0, 0x0, 0x2, 0x1, 0x1f, 0x0, 0x400000000}, 0x20) sendmsg$key(0xffffffffffffffff, &(0x7f0000000480)={0x0, 0x0, &(0x7f0000000440)={&(0x7f0000000140)={0x2, 0x14, 0x6, 0x7, 0x15, 0x0, 0x70bd25, 0x25dfdbfc, [@sadb_sa={0x2, 0x1, 0x4d6, 0x2, 0x4, 0xa4, 0x3}, @sadb_x_nat_t_type={0x1, 0x14, 0x9}, @sadb_ident={0x2, 0xb, 0x200, 0x0, 0x7}, @sadb_x_sa2={0x2, 0x13, 0x5, 0x0, 0x0, 0x70bd29, 0x3502}, @sadb_spirange={0x2, 0x10, 0x4d5, 0x4d2}, @sadb_sa={0x2, 0x1, 0x4d2, 0x5, 0x7, 0x2f, 0x2, 0x80000000}, @sadb_x_nat_t_type={0x1, 0x14, 0x81}, @sadb_x_kmaddress={0x7, 0x19, 0x0, @in6={0xa, 0x4e20, 0x10001, @mcast2, 0x8}, @in={0x2, 0x4e20, @private=0xa010102}}]}, 0xa8}}, 0x0) r2 = syz_open_procfs(0x0, &(0x7f00000004c0)='net/ip6_flowlabel\x00') ioctl$F2FS_IOC_RELEASE_VOLATILE_WRITE(r2, 0xf504, 0x0) sendfile(r1, r2, &(0x7f0000000240)=0x202, 0x4000000000dc) syz_mount_image$btrfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x0, 0x1, &(0x7f0000000200)=[{&(0x7f0000000240)="90e42e8500000000000000000000000000000000000000000000000000000000f90cac8b044b4fa88bee4b8d3da88dc2000001000000000001000000000000005f42485266535f4d07000000000000000000500000000000001010000000000000000000000000000000000000000000000000010000000000d00000000000000600000000000000010000000000000000100000001000000010000000100000610000000400000000000000000000000000000000000000000000004503000000000000000000000001", 0xca, 0x10000}], 0x0, &(0x7f0000000080)=ANY=[@ANYRES16=r0, @ANYRES64, @ANYRES64=r2, @ANYRES16]) getsockopt$inet6_IPV6_XFRM_POLICY(r1, 0x29, 0x23, &(0x7f0000000340)={{{@in=@remote, @in6=@empty}}, {{@in=@local}, 0x0, @in=@empty}}, &(0x7f0000000040)=0xe8) r3 = socket$inet6(0xa, 0x3, 0x7) connect$inet6(r3, &(0x7f00000000c0)={0xa, 0x0, 0x0, @loopback}, 0x1c) setsockopt$inet6_IPV6_XFRM_POLICY(r3, 0x29, 0x23, &(0x7f0000000340)={{{@in=@dev={0xac, 0x14, 0x14, 0x18}, @in6=@mcast2, 0x0, 0x0, 0x0, 0x0, 0xa}, {}, {}, 0x0, 0x0, 0x1}, {{@in=@private, 0x0, 0x33}, 0x0, @in=@dev, 0x0, 0x0, 0x0, 0x24}}, 0xe8) sendmmsg(r3, &(0x7f0000000480), 0x2e9, 0x1f4) ioctl$FS_IOC_FSSETXATTR(r3, 0x401c5820, &(0x7f00000000c0)={0x1ff, 0x2, 0x401, 0x3f, 0x2}) 02:15:54 executing program 1: r0 = perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, @perf_bp, 0x0, 0x0, 0x0, 0x8}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r1 = syz_open_dev$tty1(0xc, 0x4, 0x4) ioctl$TCSETS2(0xffffffffffffffff, 0x402c542b, &(0x7f00000003c0)={0x46e3, 0x5f3, 0x0, 0x85ab, 0x0, "ec4b2cf4dd291ac55a0cde0c254d6c6cb5a8c4"}) r2 = msgget(0x0, 0x204) msgctl$IPC_STAT(r2, 0x2, &(0x7f0000000000)=""/46) preadv(0xffffffffffffffff, &(0x7f0000000280), 0x18, 0xd9f, 0x0) ioctl$TIOCL_PASTESEL(r1, 0x541c, &(0x7f0000000100)) r3 = syz_open_dev$dri(&(0x7f0000000000), 0x0, 0x40) ioctl$DRM_IOCTL_MARK_BUFS(r3, 0x40206417, &(0x7f0000000100)) dup3(r0, r3, 0x80000) sync() 02:15:54 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000000)={'wlan1\x00'}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, 0x0}, 0x0) 02:15:54 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000000)={'wlan1\x00'}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, 0x0}, 0x0) 02:15:54 executing program 3: perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffffffffffffffd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, @perf_config_ext={0x7ff, 0x200}, 0x0, 0x3, 0x0, 0x0, 0x400, 0x1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = socket$kcm(0xa, 0x2, 0x73) sendmsg(r0, &(0x7f0000000800)={&(0x7f00000000c0)=@nl=@unspec, 0x80, 0x0, 0x0, &(0x7f0000000040)=ANY=[@ANYBLOB="1800000000000000b42374e295ca00"/30], 0x18}, 0x0) bpf$MAP_CREATE(0x0, 0x0, 0x0) socket$kcm(0x11, 0x0, 0x300) recvmsg$kcm(0xffffffffffffffff, 0x0, 0x20000140) recvmsg$kcm(0xffffffffffffffff, 0x0, 0x0) socket$kcm(0x2, 0x0, 0x2) socketpair(0x27, 0x0, 0x0, 0x0) sendmsg$inet(0xffffffffffffffff, &(0x7f0000000780)={&(0x7f0000000240)={0x2, 0x0, @multicast1}, 0x10, 0x0, 0x0, &(0x7f0000001f40)=ANY=[@ANYBLOB], 0xd0}, 0x0) sendmsg$kcm(0xffffffffffffffff, 0x0, 0x4000040) sendmsg$inet(0xffffffffffffffff, &(0x7f0000000780)={0x0, 0x0, 0x0}, 0x0) sendmsg$inet(0xffffffffffffffff, 0x0, 0x0) 02:15:54 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608601, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:54 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000000)={'wlan1\x00'}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, 0x0}, 0x0) 02:15:54 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x22c22, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = dup(r1) sendfile(r2, r0, 0x0, 0x4000000000000081) 02:15:54 executing program 5: r0 = perf_event_open(&(0x7f0000000080)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x317d}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r1 = perf_event_open(&(0x7f000025c000)={0x400000001, 0x80, 0x2005, 0x0, 0x0, 0x0, 0x0, 0x1, 0xa8094, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x0, 0x0, 0x100, 0x1, 0x0, 0x10000}, 0x0, 0x5, 0xffffffffffffffff, 0x0) r2 = perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x40, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={&(0x7f0000000000), 0xb}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfff, 0x0, 0x0, 0xfffffffe}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) mmap(&(0x7f0000ffd000/0x3000)=nil, 0x3000, 0x0, 0x11, r2, 0x0) ioctl$PERF_EVENT_IOC_SET_OUTPUT(r1, 0x2405, r2) fcntl$setflags(r1, 0x2, 0x0) ioctl$PERF_EVENT_IOC_RESET(r0, 0x2403, 0x0) perf_event_open(&(0x7f000001d000)={0x1, 0x70}, 0x0, 0x0, 0xffffffffffffffff, 0x0) r3 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r3, &(0x7f0000000040)={0x2, 0x4e23, @multicast1}, 0x10) r4 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) sendto$inet(r3, 0x0, 0x10b, 0x200007fe, &(0x7f0000000100)={0x2, 0x10004e23, @dev={0xac, 0x14, 0x14, 0xa}}, 0x10) socket$inet(0x2, 0x1, 0x40) r5 = socket$inet6(0xa, 0x3, 0x7) connect$inet6(r5, &(0x7f00000000c0)={0xa, 0x0, 0x0, @loopback}, 0x1c) setsockopt$inet6_IPV6_XFRM_POLICY(r5, 0x29, 0x23, &(0x7f0000000340)={{{@in=@dev={0xac, 0x14, 0x14, 0x18}, @in6=@mcast2, 0x0, 0x0, 0x0, 0x0, 0xa}, {}, {}, 0x0, 0x0, 0x1}, {{@in=@private, 0x0, 0x33}, 0x0, @in=@dev, 0x0, 0x0, 0x0, 0x24}}, 0xe8) sendmmsg(r5, &(0x7f0000000480), 0x2e9, 0x1f4) readahead(r5, 0x4, 0xcc) connect$inet6(r4, &(0x7f0000000140)={0xa, 0x4e23, 0x5c, @local, 0x5}, 0x1c) sendto$inet(r3, &(0x7f0000d7cfcb), 0xffffffffffffffef, 0x0, 0x0, 0x53) 02:15:54 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = dup(r1) r3 = openat$null(0xffffffffffffff9c, &(0x7f00000000c0), 0x103000, 0x0) sendto$inet(r3, &(0x7f0000000100)="0b2b5fa66bc0107f01e7c9278cc8ff76e6019a7d9bdcff3acc3299f913193fc3c753ef8309db7541f0f79edc61a0cafcf3aa8daa", 0x34, 0x20000000, &(0x7f0000000140)={0x2, 0x4e21, @broadcast}, 0x10) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000080)={'wlan0\x00'}) sendfile(r2, r0, 0x0, 0x4000000000000081) 02:15:54 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000000)={'wlan1\x00'}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={0x0}}, 0x0) 02:15:54 executing program 1: bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x0, 0x4, &(0x7f00000004c0)=ANY=[@ANYBLOB="d0c8151801005300000002000000fd00000c04850000006d00002895fb979834c82daac686078df214628faf5d3fa826d2c1adb19432dbbde450eeb68f17fbbcc87c226a87590a0f3c0852a06896eed064fef21989cdefc087cb64583f3067cfedf91a3950c564027364b95eedce5774b57ff215466fc263504154fa5672b251fdd58cad9c1a65b80b830215a1ca76980b93f0494cf08e390a6a89bdcf13fba64e79b83da22550"], 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x11, 0x4, &(0x7f00000002c0)=ANY=[], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f00000000c0)={&(0x7f0000000300)='lock_acquire\x00', r0}, 0x10) r1 = syz_init_net_socket$bt_l2cap(0x1f, 0x1, 0x3) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000480)={&(0x7f0000000440)='thermal_power_devfreq_get_power\x00', r0}, 0x10) bind$bt_l2cap(r1, &(0x7f0000000000), 0xe) r2 = socket$inet6(0xa, 0x3, 0x7) r3 = socket$inet6(0xa, 0x800, 0x7) connect$inet6(r3, &(0x7f00000000c0)={0xa, 0x0, 0x0, @loopback}, 0x1c) setsockopt$inet6_IPV6_XFRM_POLICY(r3, 0x29, 0x23, &(0x7f0000000340)={{{@in=@dev={0xac, 0x14, 0x14, 0x18}, @in6=@rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', 0x80, 0x0, 0x4e23, 0x0, 0xa}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5}, {}, 0x0, 0x2}, {{@in=@local, 0x0, 0x3c}, 0x0, @in=@dev, 0x0, 0x0, 0x0, 0x24}}, 0xe8) sendmmsg(r3, &(0x7f0000000480), 0x2e9, 0x1f4) r4 = syz_open_dev$audion(&(0x7f0000000180), 0x1, 0x10000) connect$inet6(r4, &(0x7f0000000280)={0xa, 0x0, 0x8, @loopback}, 0x14) setsockopt$inet6_IPV6_XFRM_POLICY(r2, 0x29, 0x23, &(0x7f0000000340)={{{@in=@dev={0xac, 0x14, 0x14, 0x18}, @in6=@mcast2, 0x0, 0x0, 0x0, 0x0, 0xa}, {}, {}, 0x0, 0x0, 0x1}, {{@in=@private, 0x0, 0x33}, 0x0, @in=@dev, 0x0, 0x0, 0x0, 0x24}}, 0xe8) bind$bt_l2cap(r1, &(0x7f00000001c0)={0x1f, 0x34, @fixed={'\xaa\xaa\xaa\xaa\xaa', 0x10}, 0xb97e, 0x1}, 0xe) sendmmsg(r2, &(0x7f0000000480), 0x2e9, 0x1f4) pwritev2(r2, &(0x7f0000000140)=[{&(0x7f0000000040)="de2546b2ada3cba181b5743e9e0ef0d4fb1796f6bf8b581e64d08af089e70c18b8670a44ac55ecfbe0c77662e07e9120", 0x30}, {&(0x7f0000000080)="5fee03f6459d4b9ae7e0d0b3a81e2c502c511ef85ff9e6ac1f3e590158846b0e437778115b04706e86ee1f07cc", 0x2d}], 0x2, 0x20, 0x3, 0x19) 02:15:54 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608700, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:54 executing program 3: mkdir(&(0x7f0000000440)='./file1/../file0\x00', 0x6) fsetxattr$trusted_overlay_redirect(0xffffffffffffffff, 0x0, &(0x7f0000000480)='./file1\x00', 0x8, 0x0) mount(0x0, 0x0, &(0x7f0000000080)='binder\x00', 0x27c844, 0x0) r0 = syz_open_procfs(0x0, &(0x7f0000000240)='syscall\x00') mkdirat(r0, &(0x7f0000000200)='./file1/../file0\x00', 0x0) mkdir(&(0x7f00000001c0)='./file0\x00', 0x0) mkdir(&(0x7f00000009c0)='./file1\x00', 0x0) r1 = perf_event_open(&(0x7f0000000180)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) socket$inet(0x10, 0x80002, 0x0) socket$inet(0x10, 0x4, 0x14000000) tee(r1, 0xffffffffffffffff, 0x7, 0x0) setxattr$system_posix_acl(&(0x7f0000000580)='./file1\x00', &(0x7f00000005c0)='system.posix_acl_access\x00', 0x0, 0x5c, 0x0) mount(&(0x7f0000000280)=@nullb, &(0x7f0000000340)='./file1\x00', &(0x7f0000000380)='nsfs\x00', 0xa0800, 0x0) mount$overlay(0x40000d, &(0x7f0000000000)='./file0\x00', &(0x7f00000000c0), 0xa000000, &(0x7f0000000100)={[{@upperdir={'upperdir', 0x3d, './file0'}}, {@lowerdir={'lowerdir', 0x3d, './file0'}}, {@workdir={'workdir', 0x3d, './file1'}, 0x5c}], [], 0xf603000000000000}) open(&(0x7f0000000140)='./file0\x00', 0x22000, 0x67c7950aa6854403) lchown(&(0x7f0000000040)='./file1/../file0\x00', 0xffffffffffffffff, 0xee01) mount(0x0, &(0x7f0000000180)='./file0\x00', &(0x7f0000000240)='cgroup2\x00', 0x0, 0x0) 02:15:54 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000000)={'wlan1\x00'}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={0x0}}, 0x0) 02:15:55 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000080)={0x2, 0x0, @local}, 0x10) r2 = dup(r1) sendfile(r2, r0, 0x0, 0x4000000000000081) 02:15:55 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000000)={'wlan1\x00'}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={0x0}}, 0x0) 02:15:55 executing program 1: r0 = perf_event_open(&(0x7f0000000180)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20000000}, 0x0, 0x0, 0xffffffffffffffff, 0x0) r1 = getpgrp(0x0) prctl$PR_SET_PTRACER(0x59616d61, r1) wait4(r1, &(0x7f0000000040), 0x2, &(0x7f0000000200)) gettid() ptrace$setopts(0x4200, r1, 0x0, 0x40) ioctl$PERF_EVENT_IOC_RESET(r0, 0x2403, 0x0) clone(0x100, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) unshare(0x24000000) r2 = syz_init_net_socket$bt_hci(0x1f, 0x3, 0x1) ptrace$setregs(0x2, r1, 0x7, &(0x7f00000002c0)="a42bd677f59b625369b77d0299543ca8b0813d4f583aac8e9cc475b065a7fbc9bc8893e629a1b5e9c1adf2b04451f6c2d183051a72027afe97cd4eee5ebc902f095cc2bf2a100063b58d223ededcc5f6ac069170f736adea16efcdf7572745554aee89705c5ca67e2217c92e37a6d2d79586e850ce69ad1146d382c042bb16684920228fc51b301dc106c19583bb2ba8855e845033c019c3ecc5e2b2eb07d81f5ebf78a000da537b5cce06c3a1246994c72a6b83f0c4f8e242b6d019aeafa634abc9e67b7720c5dc30105d81dbb357") clone(0x40100000, &(0x7f0000000100)="de279fe1377da07d950c52876e7bf03a0ada164900c0b77fa108bdba6c049bb2e23cb0b64149eaeba8c25f4c18ace8d90bf17729e41d5fec4f81efa0a914aa0d767461afc505ffea89f77458df5543bb85f0cb2dfa97afd02ba2f62a301353cd78dfb3c4a695a8742d0421b65357c2abc20c629def", &(0x7f00000003c0), &(0x7f0000000400), &(0x7f0000000440)) socket$inet6_tcp(0xa, 0x1, 0x0) bind(r2, &(0x7f0000000080)=@ieee802154={0x24, @short={0x2, 0x0, 0x555c}}, 0x80) r3 = gettid() clone(0x6cb2e100, 0x0, 0x0, 0x0, 0x0) ptrace(0x10, r3) tkill(r3, 0x24) ptrace$cont(0x1f, r1, 0x1f, 0x100000000) wait4(0x0, 0x0, 0x0, 0x0) 02:15:55 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608701, 0x7ffffe, 0x4002011, r1, 0x0) [ 506.324322] overlayfs: fs on './file0' does not support file handles, falling back to index=off,nfs_export=off. 02:15:55 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, 0x0, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r2}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 506.551342] IPVS: ftp: loaded support on port[0] = 21 [ 506.663322] IPVS: ftp: loaded support on port[0] = 21 02:15:55 executing program 5: pipe(&(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) r2 = socket$packet(0x11, 0x3, 0x300) setsockopt$packet_fanout(r2, 0x107, 0x12, &(0x7f0000000000)={0x0, 0x8000}, 0x4) r3 = socket$nl_xfrm(0x10, 0x3, 0x6) bind$netlink(r3, &(0x7f0000000080)={0x10, 0x0, 0x0, 0x1}, 0xc) setsockopt$SO_ATTACH_FILTER(r3, 0x1, 0x1a, &(0x7f0000000080)={0x1, &(0x7f0000000340)=[{0x6, 0x0, 0x0, 0x67d}]}, 0x10) r4 = socket$inet_udp(0x2, 0x2, 0x0) fcntl$setpipe(r0, 0x407, 0x0) socket$key(0xf, 0x3, 0x2) write$binfmt_misc(r1, &(0x7f0000000140)=ANY=[], 0x4240a2a0) bind$inet(r4, &(0x7f00000001c0)={0x2, 0x0, @dev={0xac, 0x14, 0x14, 0x29}}, 0x10) connect$inet(r4, &(0x7f0000000040)={0x2, 0x0, @multicast1}, 0x10) splice(r0, 0x0, r4, 0x0, 0x2fffe, 0x0) 02:15:55 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, 0x0, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r2}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:55 executing program 3: r0 = socket$netlink(0x10, 0x3, 0x0) r1 = socket(0x10, 0x803, 0x0) sendmsg$NBD_CMD_DISCONNECT(r1, &(0x7f00000001c0)={0x0, 0x0, &(0x7f0000000180)={0x0}}, 0x0) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)=0x14) sendmsg$nl_route(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000380)=ANY=[@ANYBLOB="3c00000010000d0700000000ff03000000000010", @ANYRES32=r2, @ANYBLOB="004e7c7c5b8a00001c0012000c000100626f6e64000000060c000200080006"], 0x3c}}, 0x0) sendmsg$nl_route(0xffffffffffffffff, 0x0, 0x0) r3 = socket(0x1, 0x803, 0x0) getsockname$packet(r3, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000180)=0x14) r5 = socket(0x10, 0x3, 0x0) r6 = creat(&(0x7f0000000280)='./file0\x00', 0x3) close(r6) r7 = creat(&(0x7f00000000c0)='./file0\x00', 0x0) write$binfmt_script(r7, &(0x7f00000002c0)=ANY=[@ANYBLOB="230275964c0e4d1a14750ded544f96c8b5b62d6092608636c7d825b43245e955b642d9a3f1b2c95d8a3b0a3da597a1000195914376666e92611fe2862102f15763419c960358"], 0x141) close(r7) getsockopt$inet_IP_XFRM_POLICY(r7, 0x0, 0x11, &(0x7f0000000240)={{{@in=@broadcast, @in6=@ipv4={""/10, ""/2, @private}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, {{@in=@multicast2}, 0x0, @in6=@mcast1}}, &(0x7f0000000340)=0xe8) sendmsg$nl_route_sched(r5, &(0x7f0000000480)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x80000000}, 0xc, &(0x7f0000000440)={&(0x7f00000003c0)=@gettfilter={0x44, 0x2e, 0x400, 0x70bd2c, 0x25dfdbfe, {0x0, 0x0, 0x0, r8, {0xffe0, 0x3}, {0xb, 0xffff}, {0x1}}, [{0x8, 0xb, 0xfff}, {0x8, 0xb, 0xff}, {0x8, 0xb, 0x8}, {0x8, 0xb, 0x1ff80000}]}, 0x44}, 0x1, 0x0, 0x0, 0x40a5}, 0x0) sendmsg$nl_route(r5, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=@newlink={0x48, 0x10, 0x401, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x20, 0x12, 0x0, 0x1, @ip6gretap={{0xe}, {0xc, 0x2, 0x0, 0x1, [@IFLA_GRE_LINK={0x8, 0x1, r4}]}}}, @IFLA_MASTER={0x8, 0xa, r4}]}, 0x48}}, 0x0) 02:15:55 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608800, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:55 executing program 4: read$alg(0xffffffffffffffff, &(0x7f0000000100)=""/11, 0xb) r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x25e000, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) dup(r1) r2 = socket$nl_xfrm(0x10, 0x3, 0x6) bind$netlink(r2, &(0x7f0000000080)={0x10, 0x0, 0x0, 0x1}, 0xc) r3 = syz_open_dev$binderN(&(0x7f00000000c0), 0x0, 0x802) sendfile(r3, r0, 0x0, 0x4000000000000081) r4 = socket$inet_sctp(0x2, 0x4, 0x84) getsockopt$EBT_SO_GET_INIT_ENTRIES(r4, 0x0, 0x83, &(0x7f00000001c0)={'broute\x00', 0x0, 0x3, 0x4f, [0x2, 0x0, 0x1000, 0x6, 0x0, 0x100000000], 0x0, &(0x7f0000000100), &(0x7f0000000140)=""/79}, &(0x7f0000000240)=0x78) 02:15:55 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, 0x0, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r2}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 506.985844] netlink: 'syz-executor.3': attribute type 6 has an invalid length. 02:15:56 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = socket$l2tp(0x2, 0x2, 0x73) r3 = dup(r2) getpeername$packet(r0, &(0x7f0000000080)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000000c0)=0x14) sendfile(r3, r0, 0x0, 0xfb) [ 507.210059] bond3: no link monitoring support for ip6gretap1 02:15:56 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608801, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:56 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x0, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 507.305939] bond3: Enslaving ip6gretap1 as an active interface with an up link [ 507.454063] netlink: 'syz-executor.3': attribute type 6 has an invalid length. 02:15:58 executing program 1: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket$inet_udplite(0x2, 0x2, 0x88) ioctl$F2FS_IOC_GARBAGE_COLLECT(r1, 0x4004f506, &(0x7f0000000040)) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f0000000280), 0x18, 0xd9f, 0x0) syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x0, 0x3, &(0x7f0000000200)=[{&(0x7f00000002c0)="2000000040000000030000002d0000000f0000000000000002000000020000000080000000800000200000002bc4645f2bc4645f0100ffff53ef", 0x3a, 0x400}, {&(0x7f0000010400)="020000001200000022", 0x9, 0x1000}, {0x0, 0x0, 0x22100}], 0x0, &(0x7f00000000c0)={[{@journal_async_commit}]}) 02:15:58 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x0, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:58 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) openat(0xffffffffffffffff, &(0x7f0000000080)='./file0\x00', 0x0, 0x8b) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = dup(r1) r3 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r3, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r4) r5 = geteuid() syz_mount_image$f2fs(&(0x7f00000000c0), &(0x7f0000000100)='./file0\x00', 0x7ff, 0x1, &(0x7f0000001140)=[{&(0x7f0000000140)="e7f3ef7d12d8bb58e3a0ccfaadebe1ba1d4ee13c4b53e029dc7cc26d31b5a89239d1411d1caebca86835722aa249362fe9764cd5e592fe546b068c843aae95e6fb15c745774a40e73107f8fabcc73dd89c578b831e174eafda24a42fb13b9ca4f4fe2ded143a8bbd2b9563adfe176207978ccba2aded87c2b3672f5054c37312dbeb1167ed8e83d4150bcc2fe02e07d076d72341c46a37bdb1340fc60ecb4d56eddfc825e0a76d5c4f415051cc0a39a413cf4b23f5b8b627823b787f56a7f729820e29979a48e8e1fb72d995dd0808ea9d81d4b07e3450c54a2850fc9e620fb5efd4a448cafe6cfbfc79894ed05239fbe2b78dd7687858f9bdec4b36989cd54eb760619a77d9a71c0d76808fd94609eb51e52d4a37d61f0f37b5782ec8dbada14d253aa12ae4728c6342a10aa5669bc5350568cdedbb8bb629aa8b82086517a1fe425a5e1c5ee1189d7aa7de8159f3681dc62c6b37aa24b03eacbf0bb8bbad1abc94c250d915ddb6bc1bad0e4d5de2a904254650714c066147ca9e75fdc8532ddecfbfccc9db48fd14a050b4412d5ba7bd942fcd0bcced5f4ab0eb60e5e4a431f662522720977d108bd5ada5ccd36e902591acb79b2be0783b13e226f620f2eae468072c64688ad1c9d9641992e1ada515b162011b52688096279da51ca5356afae940b38edd925434b8a04d4109f9fe37f4ca406b8fe455065bf0740d367e3d9f5f567e065a42da2349241e099283573609ea25efdf6b3e79ecec35c941f5dc4e2634a8515be295002a5e57f167eb56aa1a95ae43605a9841f2dd93a3b948b47dc2fca9aed59d931b92fe2f028eb3d40ea915f8fd4ce6723dbbb87b18a7dddb5c0d443e44f20307510aa66cf69976ca689dd00da3b93eba327e88dec3f6f01c7b454263ff2df56f96baf540bf33f73da32aa4a45ec730b304a0258b63d71357bd84d9a6174bb31e6742aaa82822bd408982e5703f6f4658342f055fe06978638e537ec1f126e80b0e9ec1e03d58288a77af0ab51aec2a3e39f829b9dd05f3889126184f8f9e267d8b63577ed32375ac411e2b051ec59b4388447fae198f5fe7deff1aabe7d9ec339757adbc7f47da920ceb834c36bd82c5169bc87ac501bb056660a1846ed8c066b15282c93ed12c925d23d7b2dca2212dbd5127fcb9011dda2a4f6360acb05c5611ca40ade5ddb42a6c0a9a652207ce5b8067c997cbd7dc6b346f448dd2a569f3e8be4a91c122932fc08a587b1563023bbdca396f48a33bc3f0a23efbf11646a1fcd3892e455ebc2521e313301e8be31e1a223dfea5d7d5f67ffe89c1023fe0cd2eab7ea7e55640311de9ef11513bfcf2cb264d6363d53d7ad54bd3be851d250274e23d53bcc2127c88d4a3ef0df88830d6ac14bea991860759367cd39062ea3ede89ac6be639acb01cc0f3241b7cfe702e77c43d6378546c0e93464c9c9cd5261936e94c82882084788bb6b5d6c7522746797da4dd7132bffb1417e7b4c18f4b9e7ab55a5c73a6d0b7c861bcd7d758578e4ff89e6f743b277c9dd765906ef755e65e9f6905b30055cff58fcff0910563b2013f4de4641a548ac289a1bf64e1f1a4a485d3294f2f12751f95346c3de4e3e0d5f314d3b6fee256f432a9d6f8f903651b212bd733f9e5de8551825c4cae8893d9662de78d1339e81e8dc205bc1ffeb118523f8c59abe39f95f6870ee8b21e88e627974ec2319c3f6228330355434efc719344fdd9a0a617a6587778c4d75781fdc1004aacdf8ec2cb37a31c03681eebcbecd3f2a1ce2932fedada9bc115eede04151042f9906a34f6670b70cf9b65b3d91fed6020b9ddeef30385bce3f40a551e95cab6faebaed7f64ca8dcbfd360c6075abafd06fba96e05c932d4deffc843c83392604ffb37f6d017f15bfd55e4bae5cdccc2e4207d46a8a2f52b2bb27f9a660db8f9659ade54eaa076a8dcc49dba60bebe95bef7263f0d0fc05e412af78d6d1f4ad4e455957316a4040d2da39636639f32e600495b052da60f4cf726b7548d17da2df50e243441e6fe32b8a3c053d4874c0a9cb77f448283afc9d3189f667ab01e1668c4df52e422c92d77dc9adcd378e9bae2f1f12697dd3d970690001836e1dbe7389c904955a14a8dbe66d42b0b2b065e06d10071d5fb562e0021824128ca92aac7984d27bbbfdd1a7b8e439a5dabfa66822aae532407b9476cc1668c013d82c39d9b8e29c1b289a3e1e669ed9372518dc97773837be65aa164efaa0cdbc6044b830d54e0ebd95a94be1cdd52f03319cc0c0017f8eaf4336e596e835b7e22304517512e108cf53f920051cbb683b38f4119ea136a0ba0773efb040b1637049c2fc77ef23a57f5c381ed8dc87242c87bbd7bb50c5dd5d37bdb668432e52f020ea62227c6f9dc92377d434d0c16f4f61d8e2e4add19c410d690381b56c192216bb025f04142cd234214abc5bd43eb4ed96d467b39fee8188f06115bbd70d0e84ba0b8c448e55941b4369009f61c3961b90fe11e7a169ad8fd963c47faae91381293723fb91efe9701134dffd29b936756eb55aa38e31e43cdc5cc99172ac2f4fabd981f69107c570b0e8bbbbed81f453a5c6343b23481392b4e7a396866ae94bcfe6c57393ebb1f025d0983da76f9aeb8a61aad3f53bbc5741baaadfbe2670076125c76350e60f664020abf225d7a6c8351fef540221412b122870ba7ea4b4d69892cc8c209b6b47c36125bcb1271f201a22b71edf70489c9a180b6d190a5d528cbb9b2acdc75c62e79304a3e17b2fcc4f3c69f6e6e9cd2bd6230c3e87323acef83280d9fc8b93ab9b354d5d5b68050b72aa74c304f518d82843ea3522a633622bec2dcee50a2ec26bcaaa792200f02cf4cea14ca758c688dac5c485e8334148eae1d0653bcfc990ab639fc9ace35dd42af4bf1833ca2ae61d42bed654d4bb17ebfb035fd1c05e87045a26776eba2abaedcaf8a4501edbaee119e8cd3f4b9fb2d73f9f38c08d5cbc6e9b44f647391b5f3c2cf6cc80f3a124d027f8cc402408c587f3e68d5fb1398e0f0aaee47598d6267f83d0aca5915193dd1c4704b239afd2f20ec8c1e02d59eb59308f0f83b5c9dda32009f4c3ef01056e025bc68a6d8753e85af8051d8d05e1e88be5e08c1c4bea135ccd1ab96d1a83588e8b4a5bd3ae241db44f5b0fa63dc64beb4fc796b27b2ee096d3b77aa683179b4b85fec0dbb1c807ea899878844150e6f12071595f3dff49d73ce39c4231ec78c40dc8cc1221da8f173b00ea607c4e6d0fa695e527952a3bcf8fb1f17cdd32943d18fbd2cf0a18e68a08c34505fe5c20c99e830509b251ec43ae933e53594ee82a15fd746d4ee4b67a1f7709e42a2f07f1a94a80d55730a0e91730927e0d3610231aefdf6aba4486502898bc7a73b269b015128576a9678ae2a774bf43ee05ead8ac118094e871f0017a71a46b12027c88c82486b68d55a92649ec09f3b00ec30cd7056a7cf189b478a3ade075df26e5f6300326154911c5833eed30c9e4579c835ba4070c23ad1feac01df0b8c35ab3f470a122029bd343fd08518c50d15feebca5ce6c5b9903b1ad12f452d5fe4678b1083725dffbdbeacf095918b120eb68f26e398ba6b1caaad5020abaf8a5297f7d67ef43fbee7116f91e21eaa78c5261694e2dc81ff69d5ccc997c3d95187877e18a7453d7da7cc35b4d1dc86dee16a01afec139487bee4e0a02939d6d15b51982a3380e648a33a357b6b6cfd07cf4f4cc87817dc22e4212814e43006c1eb899bfecb7c33d4ee54945786c52e7508105288679f7308e85628e3289350dcaf26001400adbbb5fc64ce8a5da80801a032c6546076026695485386f0a7966b01eaa07f31e4e85cc2db6bb4534a181aaaf5edec270373eead115bc008e9e6a57e3623b77d13ced22a330f09775bf524ca066faf922dad1e59de20cbee87ed64c3a807dbc297436394c33cba1d6d363eb5c58d48782a4bd33d426d2c426e62e9319775ed2ea55c790d52777efbb77c58c0da7fac7b3c2e22ffc3556442dc8286dc84db120d4e0333ed72430840422c0acb3c3fde05b40159fe2674cf3b59219bec517c09c48107737b5b57afdaed5df599e89174b7f5a204f094aee6891274c1eda049b526cb912ec5a11a2334fbfddaea2e5b2abcf76cd46256f4218bd725133815aa3bb9b73a9926ad9012170dc9e5ca31c860ec4681aa016406c6fafceaabf1204c5afd6dcc7671a4d9c79018876acd041b4f7c28908da527ddf5401af1544046f73f147e6e0a665b3cd20bfd28c7032bc0e5d0876156f12b4bb624be0d154c9293f2f8fd958278eb42bf8c8ec2ed50f37678326a675cfedb4e779825ca28ac15288d7ada7eddf095765b004f0ca862facd2f2e9e68974a0bff795e0744b203ff2189be9c66ec563f93db7c07ea9885c84e37f9d307946f0744724e6ea11171564cc35063b3be17aa160a61c66c2f527b775fa17fec241e28ac785b8a78b08c91be1069f6b38a1560269005348a3ae703342b92a7cafb04926bb2e70d4d846169470270fa7514a0980bc5fd12b5067d39c5964f4d3ef87d064eba4ceedf2537635cfbe1d38f24e437e07232f803bafa3de8c572da90b1979ab9bdf796d973f36803e6cbaffd7fe1397f64ba6e8ffa6493ce5ede888657608f3e64665cd9d7ee0440c1928c3c5ebac0b5a85f2dbfae4812e7f369fb642bcbcb71326623f9c4d7f173a75c1bc629376a90a1c1b140751e99015091eec82cee4b567e45e7f48ade86b14b42fc7192ca591476d4532b0eb973afb4b76bbabfca770a82626a6cad418ca411cf3c369c58acc162e084ac56d6ff9ec4ed9c37f00085d65978c3af9dc7c869a604fef8f97795a7a82fd7e2388a0c3d3a4c9718b24d6bc5686d88bb67bec316427996dbb76e479aabf5141818c0a0474cb67154733a1568461f1eaea158f9438a1756c1ba54d5b629a8aae3780dc8d813f083d780b9931d6a84a7b9f05a43f30e9004095652b2beedb9f470c4a14e93c0de388460d6d65a0b3bdf82c7100ece88161921ad04f1a156712f42a409b6642d0714363dc2c186b0a44ad8b0ce946de5613672d6cfa492024aee8dc6c9f341f0d0eca86c51155fd0bbb30581bc16d916cffff82f872a1d627c6daff7b69f6b81d2a35262bd15103935e26978a14c66a8b24cee32ab0c3797112557bda1b705d67b36983578a6235a87abac586bff8c199f6c79278676e1d7a8846b129894f797456c954305760e06af738ae638ac96fcd6b3846ff1e14641705820402f0dfa0f15812a4bbeb2bae81a96258a6e0d6398b06a306c1d5120c90c8c4e011dd059e509047bdfe2014d11b3205a6f09ccd84109a40eede0df24229e0fe1a0f48f6f85b65aff0de8bd64a5fb0679d22de85104ba534c25f9e19c581df1e6ff01d5a51dd655129fb453abee445155790865b2450097391b74a333b9a8a804d3eeb65ae0bff2e70970896289982461812fcdd90c9fcd6c8aa6d07a1a3e4aad6a148b74b79e555658bec68f83bf56459dfbf760fe0d0f020d2373be6f66f490b18a8940cfa41778b9fd1c3f9eba0aea2fae145f61f24260d09f0848e50cc821cbf26d4f1e0767986872ddf526be9c0f499849df3a94b6ff609d1aede35adb814359e8604d6790724ee7fc63a9acdc0562cdd41eca4b4c1e83f780149a6cc6edfc890dd15134e75b31f1f4aa998cbc2a15c986765ee302fef2758aa97ce99659e47c460625d922575b59a54791aa5976a0640ad1e91b92126d55826959ba141e3972743507760fc6863b6127bc76cc", 0x1000, 0x80000001}], 0x840002, &(0x7f0000001280)=ANY=[@ANYBLOB="1d00000000338a000100e4dd5e", @ANYRESHEX=0xee01, @ANYBLOB=',background_gc=off,pcr=00000000000000000061,smackfsfloor=,fscontext=user_u,fowner=', @ANYRESDEC=0xee00, @ANYBLOB=',context=staff_u,fowner<', @ANYRESDEC=r4, @ANYBLOB=',context=unconfined_u,fowner>', @ANYRESDEC=r5, @ANYBLOB=',\x00']) r6 = socket$xdp(0x2c, 0x3, 0x0) setsockopt$sock_void(r6, 0x1, 0x0, 0x0, 0x0) sendfile(r2, r0, 0x0, 0x4000000000000081) 02:15:58 executing program 3: syz_mount_image$hfsplus(&(0x7f0000000480), &(0x7f00000004c0)='./file0\x00', 0x0, 0x0, &(0x7f0000000600), 0x8808, &(0x7f0000000640)={[{@force}]}) setxattr$incfs_id(&(0x7f0000000000)='./file0\x00', &(0x7f0000000040), &(0x7f0000000080)={'0000000000000000000000000000000', 0x33}, 0x20, 0x2) 02:15:58 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608900, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:58 executing program 5: r0 = socket$inet_udp(0x2, 0x2, 0x0) sendmsg$L2TP_CMD_TUNNEL_CREATE(0xffffffffffffffff, &(0x7f0000000440)={&(0x7f00000002c0)={0x10, 0x0, 0x0, 0x40000}, 0xc, &(0x7f0000000400)={&(0x7f0000000500)=ANY=[@ANYBLOB="d4e077cc65229776ddcb7a831f3707f9564e025199e032f24082fadae4e8e66ca9595db3e81dd6f79147966fb6780b3f486f330ed580b7922ec6eceac011f0e316bfe5a1153ac9fb246cdab2eea8437783424b1cc34349310dd6bf375ac46b16cf75fdf3db3b1ef2bdd83633b3d81425c7ca7618119fbcc61f9561a98aff4d6c9a484dbbcb692a195150a1fad22cda1de518048be3f31e7af0c4fb7e2e9d3857334944bc1fc271490912b702b391dcd7e31ce3ae67e97c7b9c3c02c78f", @ANYRES16=0x0], 0x20}, 0x1, 0x0, 0x0, 0x40}, 0x40000) sendmsg$TIPC_CMD_GET_MAX_PORTS(0xffffffffffffffff, 0x0, 0x0) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x81}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) setsockopt$IP_VS_SO_SET_ADD(r0, 0x0, 0x482, &(0x7f0000000000)={0x11, @remote, 0x0, 0x1100, 'lblcr\x00'}, 0x2c) getsockopt$inet_sctp6_SCTP_PEER_ADDR_THLDS(0xffffffffffffffff, 0x84, 0x1f, 0x0, &(0x7f0000000640)) pipe(&(0x7f0000000080)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$KVM_GET_XSAVE(r1, 0x9000aea4, &(0x7f0000001680)) vmsplice(r2, &(0x7f00000000c0)=[{&(0x7f0000000180)="77690addcfbe1fbb66ec", 0xff3b}], 0x1, 0x1) socketpair$unix(0x1, 0x7, 0x0, &(0x7f00000001c0)) close(r2) fsetxattr$security_evm(r0, &(0x7f0000000480), &(0x7f00000004c0)=@v2={0x5, 0x1, 0x2, 0x4, 0x36, "46bf7eb297a7ecc0f92aa739eadf1f2c2226300ab0c71966e9023e1e244f7b0b4c1353724221c954b7e5e6175db6ad222b3cb12f67af"}, 0x3f, 0x0) r3 = socket$inet6(0xa, 0x2, 0x0) connect$inet6(r3, &(0x7f0000000300)={0xa, 0x0, 0x0, @dev, 0x6}, 0x1c) ioctl$KVM_TRANSLATE(0xffffffffffffffff, 0xc018ae85, &(0x7f0000000200)={0x4000, 0x0, 0x9, 0x3f}) ioctl$SIOCX25GDTEFACILITIES(0xffffffffffffffff, 0x89ea, &(0x7f0000000100)) write$binfmt_script(0xffffffffffffffff, 0x0, 0xad) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000380)={&(0x7f0000000040)={0x10, 0x0, 0x0, 0x80}, 0xc, &(0x7f0000000340)={&(0x7f0000000240)=ANY=[@ANYBLOB="140000003a00f8fcbd804d47368f7d443411f857df00022cbd7000ffdbdf250a000000"], 0x14}, 0x1, 0x0, 0x0, 0x4001}, 0x0) splice(r1, 0x0, r2, 0x0, 0x100000002, 0x0) bpf$BPF_BTF_LOAD(0x12, 0x0, 0x0) 02:15:58 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x0, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) [ 509.714536] EXT4-fs (loop1): can't mount with journal_checksum, fs mounted w/o journal 02:15:58 executing program 3: r0 = getgid() perf_event_open(&(0x7f0000000000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0x7f}, 0x0, 0x0, 0x0, 0x7, 0x0, 0x1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) perf_event_open(&(0x7f0000000440)={0x1, 0x80, 0x7, 0xe0, 0x6, 0x0, 0x0, 0x0, 0x210c4, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x2, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x7fffffff, 0x4, @perf_config_ext, 0x81, 0x6, 0x5, 0x0, 0x2, 0x39fc, 0x8, 0x0, 0x20, 0x0, 0x3}, 0xffffffffffffffff, 0x0, 0xffffffffffffffff, 0x1) setreuid(0xee00, 0x0) setreuid(0x0, 0x0) r1 = geteuid() r2 = perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) fstat(r2, &(0x7f0000000280)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) lsetxattr$system_posix_acl(&(0x7f0000000400)='./file0\x00', &(0x7f0000000440)='system.posix_acl_access\x00', &(0x7f0000002600)=ANY=[@ANYBLOB="00000000010001000000000002000200", @ANYRES32=0x0, @ANYBLOB="02000000", @ANYRES32=0x0, @ANYBLOB="02000100", @ANYRES32=0x0, @ANYBLOB="02000000", @ANYRES32=0x0, @ANYBLOB="040002000000000008000300", @ANYRES32=r3, @ANYBLOB="10000100000000002000000000000000"], 0x4c, 0x1) statx(0xffffffffffffff9c, &(0x7f0000000080)='./file0\x00', 0x0, 0x800, &(0x7f00000002c0)={0x0, 0x0, 0x0, 0x0, 0x0}) msgctl$IPC_SET(0xffffffffffffffff, 0x1, &(0x7f00000000c0)={{0x2, r1, r3, r4, r0, 0x0, 0x5}, 0x0, 0x0, 0xffff, 0x72efa5d7, 0x4, 0x81, 0x3, 0xed, 0x8001, 0xff}) r5 = openat$fb0(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) ioctl$FBIOPUT_VSCREENINFO(r5, 0x4601, &(0x7f0000000200)={0x3c0, 0x8, 0x0, 0x0, 0x8000000, 0x0, 0x8, 0x0, {}, {}, {}, {}, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0xffffffff}) syz_open_procfs$namespace(0xffffffffffffffff, &(0x7f0000000180)='ns/user\x00') 02:15:58 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608901, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:58 executing program 1: clock_gettime(0x0, &(0x7f0000000040)={0x0, 0x0}) ioctl$vim2m_VIDIOC_DQBUF(0xffffffffffffffff, 0xc0585611, &(0x7f0000000080)={0x3, 0x3, 0x4, 0x1001, 0x9, {r0, r1/1000+60000}, {0x5, 0xc, 0x0, 0x3, 0x8f, 0x35, "8f2884aa"}, 0x3, 0x0, @offset=0x6, 0x7, 0x0, 0xffffffffffffffff}) ioctl$FS_IOC_FSGETXATTR(r2, 0x801c581f, &(0x7f0000000140)={0x0, 0x3, 0xfffffffc, 0x2, 0xfffff98a}) r3 = creat(&(0x7f00000000c0)='./file0\x00', 0x0) write$binfmt_script(r3, &(0x7f00000002c0)=ANY=[@ANYBLOB="230275964c0e4d1a14750ded544f96c8b5b62d6092608636c7d825b43245e955b642d9a3f1b2c95d8a3b0a3da597a1000195914376666e92611fe2862102f15763419c960358"], 0x141) close(r3) setsockopt$inet_tcp_TCP_FASTOPEN_KEY(r3, 0x6, 0x21, &(0x7f0000000180)="d63741289a83933fd00680b34202e416", 0x10) syz_mount_image$f2fs(&(0x7f0000000000), &(0x7f0000000100)='./mnt\x00', 0x0, 0x2, &(0x7f0000000200)=[{&(0x7f0000010000)="1020f5f201000e0209000000030000000c000000090000000100000001000000000000000040000000000000180000001f0000000200000002000000020000000100000018000000000200000002000000060000000a0000000e000000100000030000000100000002", 0x69, 0x400}, {0x0, 0x0, 0x200021}], 0x0, &(0x7f0000000240)=ANY=[@ANYBLOB="736d6163402c0000ff0f0000000000000000000019"]) ioctl$KVM_CREATE_VM(r3, 0xae01, 0x0) 02:15:59 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00'}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:59 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608a00, 0x7ffffe, 0x4002011, r1, 0x0) [ 510.185231] f2fs_msg: 2 callbacks suppressed [ 510.185246] F2FS-fs (loop1): Magic Mismatch, valid(0xf2f52010) - read(0x0) 02:15:59 executing program 5: listen(0xffffffffffffffff, 0x2) r0 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000040), 0xffffffffffffffff) sendmsg$NL80211_CMD_UNEXPECTED_FRAME(0xffffffffffffffff, &(0x7f00000002c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x20000000}, 0xc, &(0x7f00000000c0)={&(0x7f0000000080)={0x1c, r0, 0x2, 0x70bd27, 0x25dfdbfb, {{}, {@val={0x8}, @void}}, ["", "", "", "", "", ""]}, 0x1c}, 0x1, 0x0, 0x0, 0x4}, 0x0) r1 = socket$inet_udp(0x2, 0x2, 0x0) setsockopt$EBT_SO_SET_ENTRIES(r1, 0x0, 0x80, &(0x7f0000000240)=@filter={'filter\x00', 0xe, 0x1, 0x130, [0x3ffffffffffffff, 0x0, 0x0, 0x20000160], 0x0, 0x0, &(0x7f0000000100)=ANY=[@ANYBLOB="0000000000002a7b000000000000000000000000030000000000000000000000ecffffff00000000ffffffff0000970900000000000000000012c31aa8b556307b0000160900000000000000000000000000000000000000ffffffff0000157a2dfc28251174e7588f4ab8c554c40000000000000000000000000000000000000000000000ffffff7f000000000000000000000000000000feffffff010000001900000009000000000000000000105ff4aa4a079e8d000000006c6f0000000000000000000000000001000000000000000000000000100000fa000000000000000000000000a85f00cc99b4d1000000000005000010aaaaaaaaaa0000020000000001000000010070000000a000000041554449540000000000088b00"/304]}, 0x1a8) r2 = socket$inet6(0xa, 0x3, 0x7) connect$inet6(r2, &(0x7f00000000c0)={0xa, 0x0, 0x0, @loopback}, 0x1c) sendmsg$NL80211_CMD_NEW_KEY(0xffffffffffffffff, &(0x7f0000000880)={&(0x7f00000006c0)={0x10, 0x0, 0x0, 0x40000}, 0xc, &(0x7f0000000840)={&(0x7f0000000700)=ANY=[@ANYBLOB='\x00\x00\x00\x00', @ANYRES16=r0, @ANYBLOB="02002abd7000fbdbdf250b00000008000300", @ANYRES32=0x0, @ANYBLOB="0c009900030000001d0000000c006e80040002000400020004000b009800508024000880040002000400020004000200040001000400010004000200040001000400010011000100f9a68f40cada214e83a3fdf70100000005000900010000000800030001ac0f0018000880040001000400010004000200040001000400010004000500110001000e2a85e543b06fed1f6644756b0000000000050011000100d80d6a57dc1a8404ce81d5f62c0000000a000600080211000001000004000b001100070097a7cbab197870271f7e3cdec60000000800090005ac0f0010006e800400020004000200a6fe0100"], 0x10c}, 0x1, 0x0, 0x0, 0x11}, 0x14) setsockopt$inet6_IPV6_XFRM_POLICY(r2, 0x29, 0x23, &(0x7f0000000340)={{{@in=@dev={0xac, 0x14, 0x14, 0x18}, @in6=@mcast2, 0x0, 0x0, 0x0, 0x0, 0xa}, {}, {}, 0x0, 0x0, 0x1}, {{@in=@private, 0x0, 0x33}, 0x0, @in=@dev, 0x0, 0x0, 0x0, 0x24}}, 0xe8) sendmmsg(r2, &(0x7f0000000480), 0x2e9, 0x1f4) r3 = openat$nvme_fabrics(0xffffffffffffff9c, &(0x7f00000004c0), 0x400800, 0x0) r4 = socket$nl_generic(0x10, 0x3, 0x10) r5 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r6 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r6, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r4, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r5, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r7}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) sendmsg$NL80211_CMD_SET_QOS_MAP(r3, &(0x7f0000000680)={&(0x7f0000000500)={0x10, 0x0, 0x0, 0x80000000}, 0xc, &(0x7f0000000640)={&(0x7f0000000540)={0x100, r5, 0x2, 0x70bd2c, 0x25dfdbfe, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_QOS_MAP={0x2e, 0xc7, {[{0xff, 0x7}, {0x9}, {0xff, 0x3}, {0x7}, {0xb5, 0x6}, {0x7, 0x1}, {0x4, 0x1}, {0x4}, {0x3f, 0x7}, {0x6}, {0x3, 0x3}, {0x3}, {0x9, 0x4}, {0x7, 0x1}, {0x7, 0x7}, {0x80, 0x7}, {0x1, 0x1}], "3d5fa7e40f150963"}}, @NL80211_ATTR_QOS_MAP={0x2a, 0xc7, {[{0x7f, 0x1}, {0x4, 0x6}, {0x1, 0x2}, {0x1, 0x1}, {0x0, 0x5}, {0x2, 0x3}, {0x9, 0x3}, {0x7f, 0x2}, {0x9, 0x6}, {0x1, 0x3}, {0x9, 0x4}, {0x5, 0x2}, {0x94, 0x3}, {0x7, 0x5}, {0x2, 0x5}], "0e665b788977c7aa"}}, @NL80211_ATTR_QOS_MAP={0x1c, 0xc7, {[{0xf0, 0x2}, {0x6}, {0x33, 0x4}, {0x2, 0x2}, {0x4, 0x1}, {0x0, 0x5}, {0x33, 0x2}, {0x1, 0x3}], "2c3290915a148fd6"}}, @NL80211_ATTR_QOS_MAP={0x32, 0xc7, {[{0x4c, 0x5}, {0x7f, 0x3}, {0x81, 0x5}, {0x7f, 0x6}, {0xa3, 0x7}, {0x25, 0x6}, {0x0, 0x7}, {0xf9, 0x6}, {0x0, 0x6}, {0x5, 0x5}, {0x5, 0x2}, {0x79, 0x6}, {0x9, 0x2}, {0x20, 0x1}, {0xbb, 0x3}, {0x69, 0x6}, {0x81, 0x6}, {0x0, 0x7}, {0xde, 0x6}], "ff01dc3148e61bf9"}}, @NL80211_ATTR_QOS_MAP={0x36, 0xc7, {[{0x1f, 0x4}, {0x1}, {}, {0x7, 0x3}, {0x20, 0x4}, {0x6, 0x1}, {0x80, 0x4}, {0x0, 0x1}, {0x6, 0x4}, {0x40, 0x4}, {0x1f, 0x2}, {0xfe, 0x6}, {0x20, 0x2}, {0xe6}, {0x26}, {0x6, 0x5}, {0x4, 0x6}, {0x5}, {0xdb, 0x6}, {0x1, 0x4}, {0x85, 0x3}], "3e3549c9e7b9a03b"}}]}, 0x100}, 0x1, 0x0, 0x0, 0x8090}, 0x80) splice(r2, &(0x7f0000000440)=0x81, r1, &(0x7f0000000480)=0x1, 0x2, 0x0) r8 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000340), 0xffffffffffffffff) sendmsg$NL80211_CMD_STOP_NAN(0xffffffffffffffff, &(0x7f0000000400)={&(0x7f00000008c0)={0x10, 0x0, 0x0, 0x10}, 0xc, &(0x7f00000003c0)={&(0x7f0000000380)={0x28, r8, 0x100, 0x70bd28, 0x25dfdbfb, {{}, {@val={0x8}, @val={0xc, 0x99, {0x2, 0x6d}}}}, ["", ""]}, 0x28}, 0x1, 0x0, 0x0, 0x24044000}, 0x20000004) 02:15:59 executing program 4: r0 = syz_open_dev$vcsa(&(0x7f0000000140), 0x9, 0x1093c0) sendmsg$RDMA_NLDEV_CMD_RES_GET(r0, &(0x7f0000000240)={&(0x7f0000000180)={0x10, 0x0, 0x0, 0x40000000}, 0xc, &(0x7f0000000200)={&(0x7f00000001c0)={0x20, 0x1409, 0x200, 0x70bd2a, 0x25dfdbfd, "", [@RDMA_NLDEV_ATTR_DEV_INDEX={0x8, 0x1, 0x1}, @RDMA_NLDEV_ATTR_DEV_INDEX={0x8}]}, 0x20}, 0x1, 0x0, 0x0, 0x10000010}, 0x40000) r1 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r2 = socket(0xb, 0x3, 0x8) connect$inet(r2, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) setxattr(&(0x7f0000000080)='./file0\x00', &(0x7f00000000c0)=@random={'btrfs.', '(}$\\$\x00'}, &(0x7f0000000100)='!/\x00', 0x3, 0x3) r3 = dup(r2) sendfile(r3, r1, 0x0, 0x4000000000000081) 02:15:59 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00'}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:59 executing program 5: perf_event_open(&(0x7f0000001340)={0x1, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x78, 0x400, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x40208, 0x0, 0x0, 0x0, 0x2, 0x0, 0x4000}, 0x0, 0xfdffffffffffffff, 0xffffffffffffffff, 0x0) r0 = socket$inet6(0xa, 0x3, 0x6) connect$inet6(r0, &(0x7f00000000c0)={0xa, 0x0, 0x0, @loopback}, 0x1c) setsockopt$inet6_IPV6_XFRM_POLICY(r0, 0x29, 0x23, &(0x7f0000000100)={{{@in=@empty, @in6=@private1, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0xffffffffffffffff}, {0x0, 0x0, 0x1}, {}, 0x0, 0x1, 0x1, 0x0, 0x0, 0x2}, {{@in=@private=0xa010102, 0x1, 0x32}, 0x0, @in=@broadcast, 0x0, 0x0, 0x0, 0x4, 0x0, 0xfffffffd}}, 0xe8) sendmmsg(r0, &(0x7f0000000480), 0x2e9, 0x0) getsockopt$inet_IP_XFRM_POLICY(0xffffffffffffffff, 0x0, 0x11, &(0x7f0000000200)={{{@in=@dev, @in6}}, {{@in6=@remote}, 0x0, @in6=@loopback}}, &(0x7f0000000000)=0xe8) ioctl$FITHAW(0xffffffffffffffff, 0xc0045878) write$P9_RVERSION(0xffffffffffffffff, 0x0, 0x15) dup(0xffffffffffffffff) r1 = socket$bt_bnep(0x1f, 0x3, 0x4) r2 = socket$nl_xfrm(0x10, 0x3, 0x6) bind$netlink(r2, &(0x7f0000000080)={0x10, 0x0, 0x0, 0x1}, 0xc) sendfile(r1, r2, &(0x7f0000000040)=0x55, 0x2) mount$9p_fd(0x0, &(0x7f00000002c0)='./file0\x00', &(0x7f0000000280), 0x0, &(0x7f00000003c0)=ANY=[@ANYBLOB='trans=fd,rfdno=', @ANYRESHEX, @ANYBLOB="6c7766646e6f3de9dd93fccd31fd85b1e7f65782aa0920e1497dce9fa6636147b22ff5c6fc8ca86eec0000000000007b2ca54600", @ANYRESHEX, @ANYBLOB="e24dce958eda9c6334fd1a97c8abc629b4986ec0b4487644bd5ee653295581d530caaefcb2566bbeb547868c5dfbe2640f26f1c7e44c594845b7e45fb973e36f3f75e84113ccff538df3d4b353d656598d2efa57a2cf6c55d4ec0059f6fc"]) ioctl$BTRFS_IOC_GET_SUBVOL_INFO(0xffffffffffffffff, 0x81f8943c, &(0x7f0000000540)) sendmsg$IPCTNL_MSG_CT_NEW(0xffffffffffffffff, &(0x7f0000000500)={&(0x7f0000000380), 0xc, &(0x7f00000004c0)={&(0x7f00000003c0)=ANY=[@ANYBLOB], 0x74}}, 0x0) [ 510.316318] F2FS-fs (loop1): Can't find valid F2FS filesystem in 2th superblock 02:15:59 executing program 1: r0 = bpf$MAP_CREATE(0x0, &(0x7f0000000040)={0x9, 0x1, 0x80, 0x400}, 0x40) bpf$MAP_UPDATE_BATCH(0x1a, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000001680), &(0x7f0000001540), 0x1, r0}, 0x38) r1 = openat$ubi_ctrl(0xffffffffffffff9c, &(0x7f00000019c0), 0x101000, 0x0) bpf$MAP_LOOKUP_BATCH(0x18, &(0x7f0000001a00)={&(0x7f00000017c0)="14b428087e7b7ac06a18568266db230ff36248eedc384d0a55a39ff8fbe6665f656f1ce7aeedc0bbc85e7d8edecb27996e5177f7d4536c0f7dd4cde1d4f5b0bb5e686def3c4caa0a58b5a9f332bd09b39ece708f6ca7208f4ba3ea9e3ccf1a8ff8f2f0d648e4d9b3b670143d5c02e6ccfbd0637cf66034e363198f2d12e6355e78f9e77909919bd3c91b92ad6b78fc16fca4de67465883b18e5f007fa47368e5fa231c46fb68f01b3cdef01b4b18652e774b41c88ca9992886e8c57e21ff61bc99db8299cd53bc409cb4c4b53ff6a94b18213b89ce9acdf81976f94d043ba589b14e5a62569604a62e3c477658d94b3831d4c4", &(0x7f00000018c0)=""/22, &(0x7f0000001900)="ee97f9bfd07841153b64498aae8bb272e2f383e4a53efbf72610d8ec70172d9000a8c73b562e0004dddef9c2c8ee68c2e09692106e31f7e91a18c8ad6a3f8cbdd4a7cf77f7df5b111fda4a4cdc571ab285f0c1f67b007064d74621d912bcc1b0cc5f870b539441f0c3", &(0x7f0000001980)="897f0355f0f11ab70749049c9d6409", 0x434, r1, 0x4}, 0x38) perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0x0, 0xffffffffffffffff, 0x0) r2 = openat$dlm_plock(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) sendmsg$kcm(r2, &(0x7f0000001780)={&(0x7f0000000200)=@xdp={0x2c, 0x6, 0x0, 0x36}, 0x80, &(0x7f0000001540)=[{&(0x7f00000002c0)="2e543844bb4c1f1c2bce50375995e3861dace464504526a271d8e588f49a3c42d7484886b5961b54a4d24c6694a8df26d12b825d467b21ee19318047be0e67c688b0473cafac62569bf693f39ba1c53e442da4226547cd942f7cb3bb6d823688d30e3600dd9f7edc4b6c1892144fe98745", 0x71}, {&(0x7f0000000340)="81af7b09bf7e324bb6e70abff4abef4c4de73d626c2091d82398074b48a2e52f22a51653d39338c9f186d2855ea3e69824fa2db71256d24ad37c4e13b7e7332b75bc2ae7039b0cc7813388c614922fcce0eec32314e93abe98ad27c3fb5f6d6b8c85ca1050e35cb06777b62632ff9bb414688faae2bec6439b3056a7b764dbf0b526446348b8bc772d0795", 0x8b}, {&(0x7f0000000400)="1ba7c93fe08b010b60c70ea69e8ba611374bd9ec3f65f7879ef7315fc6da1485be4b65bf1a15706b44a97a83a2764a7752", 0x31}, {&(0x7f0000000440)="f122407c6d89d41b8d34f12c871ba042c1a5d5456892b0e99f75c515cfc518561bd66e8236f29561ef02cdbb657b2ceca9c0af9ed2bc565cabab23c858a6db863d4f4de9640239aaf62fba5b4ff8a0c3c0c9323da964b5cbb12efc7f8dbd2d02d55b1f533398905bb452c6766273231227d3c5cc23084f4d1f779192d073a2ea930e57c1dfb8ce0bd095dbee867aaa1de3f493f50bea1be16e45b5d28d1be10046b62464276ac1b3c04084ed2dda0a4c9ecfd33ac00797ee0d3f71092b70e7e4b25e166480690de4238f9a7a76655c8c5d868be33b50b6fe0e15899d3400beb993e90ad64deb5f46b713b8aad365e8a877063c5e833f5262ee22ee13970344a83c8468d55ff613889b487be28f2eb7ecc4b3f112bf7e0da6b75ea64a78b172e2bddae9fcf564415f5acec9fd598b12377247a5bfb98f8878e70daeb220b5c1528f1b999426c656939f83f36b4f0d3cf6dae2229950f9aa18d0c75b3cb89674c1b1dafab38467721d9239df43bb3d6990587152b346cf3a5699f8806a99c7baf0a756507887918a86d6f385c892ad1320c7de7b6f53f407b7921517857a072a2627a372c541c1d125a062f1a41edb021f63b2d7b53c4a02c8fe09e26a1c508020a072630b04b18e69746be357a24f6a149cc5b5e8af54e65cf8db76cda6eb228773612298aabd843ec522a7b96915ee81dda7d34594e598860ab37225155febb2b9c7ea990eebb6088820228ac8ac6bd4521e432f18fa27693052ad57d34455fc500c6bae89ed86a37c1190c1f242f1536ebee54ac3030be0ea01e000493278519c6acf43b6ebef4e53fc936dfe8675dc67ff86dd3ea14af809e9fb450895fb2d191a5e8f232414384dc1f4e25859d93567861f624635501292574eaf09d4938567c7f388a5db31295867b4e5e6c5b464b056f52234deee3531f9bcdd6e6e33507014c8df718c9efde74c71677e1acbeaef59e01c2af68d83549de27f624cddd87a82050b4dcca6b61bc58044de3f63a7f3653f871354feaee105fdb3cb443afe23f38694a17d5fb6f1d3cafc485008067c07572d82c59ef3847af435d44b163438010cfaaf569959c68fa0a00020ac8a828c02aba0a6dac347fa2a4efaaf901e326883c49826df4bf9cacd23bd30d0b282dcefa6ff40eb94b906afc4c1b0fb843c78953236224ac2f3a2abb36631dbef58d9c95282094ddd7041102a70422eb161d0d4e5d3512ae54085cc8a74bf82bfe10a2d1d0e30cbcb97f40c6d93ca3b960f518314c78894aae15b55a83b1b0b06cd0c86ad182d5418370719d49ba718447f49ea1ce98a718db924650cebab640e3392ae18d91ca56ec542892afef2dc7cc4e90d65839d131fbc33e19dbccbdd3649cc364cda882340af9b30190c98300afd43dec6189edad4a166ce9060df6502dd9e62d989a835f2cc0958440472772fa9eecd98ef53eb3e55751e1311d76a79e70fb74845b11e9862a8fabcf180404dfde597065c2f0f4e2f2a51cd9d64c32ce3e85132187f82d8276f97730edfb74414a4749964837fb0b661bf18d9b031d92c10be2918cfa8557666c8c11251e494b64372d83d3912d6fe93ccd8d6db1781d0a5ffede0fbbb5a38eddd9fcfc9bbd2cb4cb9b60a94d447dd27b5feaf851daa55f49b4618d2687facc15c9edbb36ca8709c503d99077ca715ca74175a10848043062629bd34827b77b46a6da1e6d97e299122d13ded55f330ba25e183d7274303e44c539ad4afa6770be3ea724f5144fe3d55db270bb27ba7638016dec1fde060f26612a506d40bce5e443cfe9430d516a57ed46627a61d3f3d70d65ecf5d66898a0bf78f7cd740dc37f5805feeafe5fced1a0515ec683a5ee3ecd8fc542734b23c6cab5b5bddf1542dde1d11d863e71f697df2b0783674abf16ce0c416e6334b6bd1f65f0376032aab969463efe56adb380b6d7fb2286ee41607c8e1bfdc6720b8ee137e18fd5ad029e1c68767fa4ae953699813c046b42405119acf9f7c3eaebbf3b8f7f6298d4d8cec77afab0a5a22ea27d26862955c225774c2d0b6a2c48239eed347e7e4ede925f5e45a89c2e55017ecfa7ae819c301433fde2d23a6ba8956af300208b9ece73c27b9acbf6d369487f913db2f7f9001ccb31e067d551e5084eb6d097c24e982c0381cbef7057c2a4b0e4f9d16938d30336a30e763a36368c5be57f10b966c60c9676fc93a4c225096ef8e95a39c9374bdd5b14c3c25f9b13239f58d382c17d68efcf9702c5f25779103854935307f5822be3efc76da40868243069be66a027d043671523b4690221903c14a4a42cc7949bfa76bce69cd799281501e9e4a8b16dfd3f849210cd94cb8bf4a428e662c8522f67f2b4b93dd323b86811796986d23bc781f7a87e491e32254573c76a7e0ee0da5c628e184366ae0143fa110b80bc3ea198714b54a5907f4112c0c5abde280b5fdccc0710a928a5005ccf6354252b1dee30ea8e9f67206420dbac5d75097139c3bd63eca69c32b30cd11e644af2b515d6b8fd17326c6baa1c28474862339b4f6d8932c427748835174cc8420920b429aa10c17c0e1ccf58a97fb4546fec72685abeb46f07e50069de98a634449139f57a747019d812336070e60013fb4d37b57a4dbba6e0dc017dea4a88b1d41ffdd9c5fbcd32c4cf1e50457aa2e4103a940eedb9440afa2cf1a2d11923d218a1e046eca1e961bb365ba9498963c87d9a86e03b7cf4d7155bf15b9631aa61f7fbb59634008578e32b347af2e36f94d0b445f909c3c3660ba2ffcb419b45bb379d18c85a109b60d4b5f6f754e94f2ca7f9d21cbb3fa46f01d6b12f608904409b48e0b627c8433babbf4e5f3e8188d3cea6757c278b3ae2528a42df9fa04b0ef649d230014ea8248258bad520235747ca1d183c61f3c457438a800a974096b59730d5ea9db321cef27c8606f4cefb49de4934e8179cf30bd7b6b22a4bb9a04fe32e5034e3e57aab42612d7ffb0c4b9e2d54ae05375aec557bcd2a8217418dc25293694b47363d2c0eb370c262d41bf1fab723248cc47207690b4b6a45c48b5c5ad6372a85da4cf8dd1f36509bca636dab5fedbda20165bbb146598f38926cf689eaf376bfd28fbac96cd50183ead50d69ed7de17a23c7f32ceb8368bb5ca1d645088489501ef787cf1dd49007563fe9d7ff31b4b2d0dd71fdac4f2f0c66d323c55967cf4c3fc1c53c96923d1404b1eab353ab102e1a7cfc798ed306b75ffaf25aa0e23cfe2f33a92b60bc78151367a57cf53abc9c63ccb067f906cc192a3462c8764bc9c4d34f18fcd409d12d58163293bf4c35c769ba32681b219653c4225f7ef9571328f22b8262f81ad2f5e8171549546823f247c2213775242a4119709690e27a84be24721eb1d76736aa6e99e005fdd2d6c47a0a54a086e8980f2b162512aed0dd455e3070243853f4ea0a18eb48cd4e91e93a4944dded8904e941feb7fed5556832221b4dddf4b6ca6548b65833c1a06db46b896086daeabf4c0c9cb92d67c743dd47669cb23b4bd8e35e40b210d9077232a429f1a4c0b0a5a93b38589bb8461e56ac3288b8494598b8703f40ce5c49933c4116e7212de2387ece76b9d668f9ef10a3936027be09c5fa26f4dba690a9ec00c1854f5c2b2bfe035ade9f3295bd84dd27c491766ee05bb55846dc5caa9306f9694240ffadf36a5a2198a18b747563fe0a9565f1b67a6017ec97f0f5e4758eae53d47e0cb5c7ba7330f70d6f2b9469629a7c5489f24a445da8613aa3a91edc88727bb5a931d1fe7741142120ebe87089e638fcd1369ded570a74f46e4796e86a385a1826d6529fbe8a4a0c19a902227753e58bb60b5d741134e02c1c9cda8cb31e77870af876de1be31b18fbad0ce7a3e1878814079d4d93680e9760409c54184f5ecf97fda591ad7eba9b9848039d5c8fad0710eb115c700c98d3b88975e82fcc57f3df01c88e3b1576c92bc1c2f975cbfbe043f63f761343cbe097544a7402d896b04bbb26c5229bfd39d43b29f9faf849545d20bb33544344a69e645a6055aaa9b24dc59dfcc2888c1c35b469ef36cb2e7ed781eb177f0c0c5c052684a38e6af71ef4c4bd31b012eef2a1d81163add20cffeeb93decddead6740299e820dd3f5ad44d80ce636e820b39b0ff62d3bfc79b7899a3030f569d83b7e06d11afda4428a117f2ccf1a18969e3fdc56abfea95cacd0041a95887c5af935071dcf47a49851d00da25ae9d81db710e872198a1253d396e622f213ca5d31106de73d151ae46381f0cafac78b99d1136311dd1a258cf7307fbf28f9bb65a0368e6e9ecc795d48ae499e00a9e6ec487b90de1a80a3b0a25f885cc3dc6e17daa8adc2f8754ff2c82bb2eb57b82b00cf9486e9827bb697558fb97840a13735e0e12dbbd6cae24f9fe250dd6546e9cabe06ed482a10c9833520b935e467cf1c94a788f57a6205da25f9cc9ca59d5e5b5e2b50f15a54711cb2edcfe9aa758b4ee85834bc422353321591b1ab73147ac8a1919b01eb558a1d0c1433dec73bbb56e67d443f65c4cf2088b269d1d6d20ef3f0f2c65d10fba7faa1a578252d4de397a5fc873441913bf13c782d80c2c998ed30ebef4eb4f9ee69e0f0f5b2e7356fecc7f1a1d63aa1b2ceae67b4060a66250c7040cff4f0db79aab176eacea06a6edbdfb68cd29881a0c60f6595a8ba119e5b273ac6b095140bd218a86421df14f7e8ad124938aa4c681c2052e6f63e820d1fa694797b3c378ec77408a487c58e381476d49d4b2a0670a391d4691293178de0ef656266909ec4b2c0ad9365a4660f7705479d4cca26d649c1253d411895be3baf50c4b88cd622c3df645cc3fedada1d65d370f73187dedd216d9f3b3cd3355eeb2b0bd45cf2a7e977e79d64e1b848c43288d6420746ff2641e86d13aaefc47c1a42c3e233d277b60e01d01b48c793d4b4435b1095f7ab19e9eef14b412f7cd3c2c37e9d6f1fb10bef280b0b4da177ff2d5989725c87ee9baeb9fddbe9d0562287d7e8cf11371a69584998e4fb733f608b7711eaf2941e04bb30a3b9e9b8000d1bbc0c38d041dd4c9713802b31366b97912f5795f73aad5ca2264bbe0ab831aef9968462c3bda03cb30775d90908e03f30137cb691571bf14965d29f4e51280a28dae57b664f9368d31093920c4e7d2d167dd401330afb0d600a4c940e8a5358f29526b8cd6ed779a84982011d87ac99e35c13bc2ddcc9eaef9250b47c2adaaab1ecbdf272e81f336cdbe6dfdd7308164019e6e19e3e4147cbc8c402aaca8207cb20d10153d1ca3546fb1e517a790b5924a3373d4538ad9cb0db9d76b9a723f1ff0535b56406145d06b9d79bc1cc7d642bf67fc0c1c351c79da0d37f1fc76a1990c95b75c7e6a4fbafe197c416a4273c9fcc164e94e157a31cc11a6fb70a67305351d422e59a8fc0a93356d107cd50a60aa2f14ec90c3319c5c49342f4c9249b83807e0c8ee6a48e4d98d833f47aa5f99f9b6cbf03768c4ea3680d7f402f15507fff086c920a01cd683333720abc2d08c0b5ac7efc0616a2cd69b94ea4aaaaa468dd2d6a163edd14b5c42b2ba80673006a3cced105358bf7cb8f3fc0832ba6532e5dd750f4bca43df294191543b43e507e4f37e8f9e38cb008d6ed79f66b54f77ca280778063f002f55f2d6969ba41884e696c9c282a1a8b5b843c37e638b5baaae85bc41467fc8c010c9f9b5093c489c570fc663d43e335caa5f5146ef72b689037cadbb269adc8af3a05b537688c9da1660b62bbc70ce6e41cf441b3db21427e63af4a200c9766a4ecdc63", 0x1000}, {&(0x7f0000001440)="1c74af61691990b478ae9a7f970083a012698840616d7b182242d0d0e1e46bc951f50df2da937d8152474a73c1044a9c2cd0886b7ef61ee0e4973b4c08f37f90a0c790eafb01b00ebcfd0ced1c2b0aca48c4cded7dc0d953adb64d95eb840f423bd4bf7225a4c39b803b008336e4dab46c96ef9e918ea5713efe406849c9636ad666aa1369a710aeeda2c53367676bbf672b64ca9e388d4b60c19c68fac774986b7550a4b4817b70510c41f33cf3bc12341d7522390affa3c3d4de865abe93d19917bda589a0dd51eb1e51c11bc52a3e767582636f4f5d765010b085d288", 0xde}], 0x5, &(0x7f00000015c0)=[{0x88, 0x103, 0x1, "3daf80ba7057bd73675f3486fc53e1036e6fbbbf3445e5b6a1f483cda947414262950b593bdd21a965c6702dedba32863641637de8cc08e9490125be42b6c3164fefa84f85591b5183bac137793134de0e8a662b873cf8e7d6ff5f4ec1fca5b2aa03125bafe3f19bb2cf959070b8f053ddf5e97b"}, {0x28, 0x115, 0x4, "724a908ab4a9abc6bc52cb010b4851e818133477b089d354"}, {0xb8, 0x17b, 0x9, "73a9dd1721d6373d2494737f1cd8e2c6a44e2f18ca7aea0da572190049a2babaf35e902616376d9c4267bd7d70ec46276f95f66f52149e098565e6fff6ef0e9945451a447f376705d0047bbcc5ad6b5d52dc0e7e26fe2a7c3ddd6f890e02ee98cc0af6a5d8bedda76ac243bfc1290f8f894e1157d81d3a54a7707ade2e407ab55c7f5aaa54e0deb329d0e3014e1e10a3095462b860279aa5388fe67803d3c4fc6ad287f1f0c8"}, {0x50, 0x109, 0x4, "81cd1e5e4e2920c265876e059fa731f60cf7b466e88215e14ef07824925305cc6049091f5370ebdd798a8d1b5c2c178833a21635e8422b75f67dfba1d4af2d"}], 0x1b8}, 0x884) lsetxattr$security_evm(&(0x7f0000001a40)='./file0\x00', &(0x7f0000001a80), &(0x7f0000001ac0)=@ng={0x4, 0x9, "5a240b06ef0fe03c0efeca72936138008ccf0a"}, 0x15, 0x2) bpf$MAP_GET_NEXT_KEY(0x4, &(0x7f0000000000)={r0, &(0x7f0000000080)='a', &(0x7f0000000180)=""/71}, 0x20) bpf$MAP_DELETE_ELEM(0x3, 0x0, 0x0) 02:15:59 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = dup(r1) sendfile(r2, r0, 0x0, 0x4000000000000081) r3 = socket$inet_icmp_raw(0x2, 0x3, 0x1) r4 = creat(&(0x7f00000000c0)='./file0\x00', 0x0) write$binfmt_script(r4, &(0x7f00000002c0)=ANY=[@ANYBLOB="230275964c0e4d1a14750ded544f96c8b5b62d60928636c7d825b43245e955b642d9a3f1b2c65d8a3b0a3da50000000095914376666e92611fe2862102f15763419c960358"], 0x141) close(r2) r5 = socket$l2tp(0x2, 0x2, 0x73) r6 = creat(&(0x7f0000000280)='./file0\x00', 0x3) close(r6) getsockopt$TIPC_IMPORTANCE(r6, 0x10f, 0x7f, &(0x7f0000000440), &(0x7f0000000480)=0x4) setsockopt$IPT_SO_SET_REPLACE(r5, 0x0, 0x40, &(0x7f0000000980)=@nat={'nat\x00', 0x1b, 0x5, 0x450, 0x0, 0x1f0, 0xffffffff, 0x1f0, 0x298, 0x3b8, 0x3b8, 0xffffffff, 0x3b8, 0x3b8, 0x5, &(0x7f00000004c0), {[{{@ip={@remote, @local, 0xffffff00, 0x0, 'hsr0\x00', 'veth1_vlan\x00', {}, {0xff}, 0x73, 0x3, 0x40}, 0x0, 0xc8, 0xf0, 0x0, {}, [@common=@inet=@hashlimit1={{0x58}, {'gre0\x00', {0x1e, 0x10001, 0x4, 0xf5d, 0x1, 0x37, 0x8, 0x18, 0x8}, {0x7ff}}}]}, @common=@unspec=@NFQUEUE2={0x28, 'NFQUEUE\x00', 0x2, {0x0, 0x7, 0x1}}}, {{@uncond, 0x0, 0xc8, 0x100, 0x0, {}, [@common=@inet=@udplite={{0x30}, {[0x4e22, 0x5], [0x4e20, 0x4e21], 0x3}}, @common=@icmp={{0x28}, {0xc, "dd04"}}]}, @NETMAP={0x38, 'NETMAP\x00', 0x0, {0x1, {0x2, @loopback, @rand_addr=0x64010100, @gre_key=0x3, @icmp_id=0x67}}}}, {{@ip={@remote, @private=0xa010100, 0xffffffff, 0x0, 'veth0_to_bridge\x00', 'wg1\x00', {}, {0xff}, 0x73, 0x0, 0xc09644166b1572bb}, 0x0, 0x70, 0xa8}, @SNAT0={0x38, 'SNAT\x00', 0x0, {0x1, {0x1, @empty, @remote, @icmp_id=0x64, @gre_key=0x5}}}}, {{@uncond, 0x0, 0xe8, 0x120, 0x0, {}, [@common=@osf={{0x50}, {'syz0\x00', 0x0, 0x5}}, @common=@icmp={{0x28}, {0xb, "a3e0", 0x1}}]}, @SNAT0={0x38, 'SNAT\x00', 0x0, {0x1, {0x10, @local, @empty, @gre_key=0x400, @icmp_id=0x66}}}}], {{'\x00', 0x0, 0x70, 0x98}, {0x28}}}}, 0x4b0) preadv(r3, &(0x7f00000003c0)=[{&(0x7f0000000080)=""/178, 0xb2}, {&(0x7f0000000140)=""/204, 0xcc}, {&(0x7f0000000240)=""/18, 0x12}, {&(0x7f0000000280)=""/15, 0xf}, {&(0x7f00000002c0)=""/215, 0xd7}], 0x5, 0x401, 0x4) 02:15:59 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608a01, 0x7ffffe, 0x4002011, r1, 0x0) [ 510.316367] F2FS-fs (loop1): Unrecognized mount option "smac@" or missing value [ 510.316493] F2FS-fs (loop1): Magic Mismatch, valid(0xf2f52010) - read(0x0) [ 510.316503] F2FS-fs (loop1): Can't find valid F2FS filesystem in 2th superblock 02:15:59 executing program 5: r0 = socket$inet6_sctp(0xa, 0x5, 0x84) bind$inet6(r0, &(0x7f0000000000)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) setsockopt$inet_sctp6_SCTP_PR_SUPPORTED(r0, 0x84, 0x71, &(0x7f00000000c0), 0x8) sendto$inet6(r0, &(0x7f0000847fff)='X', 0x1, 0x4004000, &(0x7f000005ffe4)={0xa, 0x4e23, 0x0, @mcast2}, 0x1c) r1 = socket$inet6(0xa, 0x3, 0x7) connect$inet6(r1, &(0x7f00000000c0)={0xa, 0x0, 0x0, @loopback}, 0x1c) setsockopt$inet6_IPV6_XFRM_POLICY(r1, 0x29, 0x23, &(0x7f0000000340)={{{@in=@dev={0xac, 0x14, 0x14, 0x18}, @in6=@mcast2, 0x0, 0x0, 0x0, 0x0, 0xa}, {}, {}, 0x0, 0x0, 0x1}, {{@in=@private, 0x0, 0x33}, 0x0, @in=@dev, 0x0, 0x0, 0x0, 0x24}}, 0xe8) sendmmsg(r1, &(0x7f0000000480), 0x2e9, 0x1f4) setsockopt$inet_sctp6_SCTP_MAX_BURST(r1, 0x84, 0x14, &(0x7f0000000040)=@int=0x6, 0x4) 02:15:59 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00'}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random=0x994}]]}, 0x40}}, 0x0) 02:15:59 executing program 1: r0 = perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp, 0x0, 0x0, 0xffffffff, 0x0, 0x0, 0x2}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$sock_inet_udp_SIOCINQ(0xffffffffffffffff, 0x541b, &(0x7f0000000080)) perf_event_open(0x0, 0x0, 0x10, 0xffffffffffffffff, 0x9) unshare(0x8000400) r1 = mq_open(&(0x7f0000000000)='m$\x00', 0x6e93ebbbcc0884ee, 0x0, 0x0) perf_event_open(&(0x7f0000000180)={0x1000000002, 0x70, 0x0, 0x1, 0xfd, 0x7, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7fdd, 0x5, 0x0, 0x884a, 0x100000008200000, 0x0, 0x6, 0x400000000800000, 0xde9}, 0x0, 0xffffffff, 0xffffffffffffffff, 0x8) unshare(0x8000600) membarrier(0x20, 0x0) bpf$BPF_BTF_LOAD(0x12, &(0x7f0000000200)={&(0x7f00000007c0)=ANY=[@ANYRES16], &(0x7f0000000500)=""/226, 0x34, 0xe2, 0x1}, 0x20) syz_open_procfs$namespace(0xffffffffffffffff, &(0x7f0000000040)='ns/pid_for_children\x00') setns(0xffffffffffffffff, 0x0) clone(0x0, &(0x7f0000001d40)="01ca0c6de207244a498b50c776267d2177371775dcbc8d5bd9aebc9ec5672e0cb9e069bd7015a7d7aafeae9791ca6390c1edd5f03dd3e0109b252b1366dd13c3e7f2aa337ee0eef81ea925dcce984b270f670ffb7f61fa8b40c695a425d2b478bce904727b4bbc03dcf7f6a25fe2be65b51992938418fbf5", &(0x7f0000000280), &(0x7f0000001d00), &(0x7f0000000500)) r2 = mq_open(&(0x7f00000002c0)='\\\xf7\xa0\xcc\x16H-o\x0073\xb3\x1a\x8eiz\xdd06P\xd4\x88\x00s\xefu\xdfa\x01y\xde\xc26\xaa\x04\xe9F\x87y\xba\a\x00\x00\x00\x00\x00\x00\x005\x98U\xb4\x9b\x88\x9b\xb5\xe4\x9b5\x8ey:oz\xf5\'f\xd6\xfe\x93\xca\x06r\xac\x1b\x8a\x87\xcafw\xd5\"\x0f\xb7|\xb6\x13\xb3\xdb\x91\x04\xd1j\xa1\xcal\xc7jt\xe7\xbdK\xdcR&u{\x03\xf8[\x01\x03$Wl@\xc1\xc8e\\s\x9f\xc1\xa6\x8d\xf5\xe2\xbc\xb6\xe5\xedF\xc8(\x9eH\xeau\xe7\x85\xeb]d\x97\xcd#;\x10\xb9\x182\xcf^1v|\x1cA\x9dFF\xcd\x88?%', 0x841, 0x0, 0x0) preadv(0xffffffffffffffff, &(0x7f0000001c80)=[{&(0x7f0000000840)=""/81, 0x51}, {&(0x7f00000008c0)=""/4096, 0x1000}, {&(0x7f0000000640)=""/34, 0x22}, {&(0x7f00000018c0)=""/62, 0x3e}, {&(0x7f0000001900)=""/192, 0xc0}, {&(0x7f00000019c0)=""/232, 0xe8}, {&(0x7f0000001ac0)=""/206, 0xce}, {&(0x7f0000001bc0)=""/149, 0x95}], 0x8, 0x7, 0x0) ioctl$KVM_ENABLE_CAP_CPU(0xffffffffffffffff, 0x4068aea3, &(0x7f0000000400)={0x7b, 0x0, [0x4, 0x0, 0x400000000000000, 0x5]}) mq_getsetattr(r1, &(0x7f0000000240)={0x0, 0x3, 0x6, 0x2}, &(0x7f0000000600)) clone(0x400, &(0x7f0000000680)="6afe53065f5920a6d2fffa9686ec6717015b9da2a40ecc8ee0c91b96c55c707cb4dd955f1a8f6d4938455579be2d8763db2e0a288822406687a2e8d3ce7c1df0589e62b94b015b1c6a1997cbc12e7f38d7a86939417e0e0857b983d3bb17", &(0x7f00000000c0), &(0x7f0000000700), &(0x7f0000000740)="846c717f9b93ee6c4bf331d154dd359341f1847847e63caff049cc255302d837824334d16474ad8991309430f00ddfd82778767d2bc39e0b793d07bf0235cf85182b24460c591cf31c4797afa76fcc8d03ee998fd17eb07eeb5cf30d353eb08f3e1d3fbf5d487e84aa6a432c37b19c10cef229ede349b26e7d4760") clone(0x7ffe, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) dup(r0) mq_getsetattr(r2, &(0x7f00000004c0)={0x800, 0x3fe, 0x101, 0x2}, 0x0) [ 510.316528] F2FS-fs (loop1): Unrecognized mount option "smac@" or missing value 02:15:59 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608b00, 0x7ffffe, 0x4002011, r1, 0x0) 02:15:59 executing program 3: getdents(0xffffffffffffffff, 0x0, 0x0) r0 = perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x9, 0x0, 0x0, 0x0, 0x0, 0x41c2, 0x2010, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={&(0x7f0000000040), 0x1}, 0x2c, 0x0, 0x0, 0x8, 0x800000000, 0x0, 0x20, 0x0, 0x8, 0x0, 0x7}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = getpid() sched_setscheduler(r2, 0x5, &(0x7f00000001c0)) r3 = socket$inet6(0xa, 0x3, 0x7) connect$inet6(r3, &(0x7f00000000c0)={0xa, 0x0, 0x0, @loopback}, 0x1c) setsockopt$inet6_IPV6_XFRM_POLICY(r3, 0x29, 0x23, &(0x7f0000000340)={{{@in=@dev={0xac, 0x14, 0x14, 0x18}, @in6=@mcast2, 0x0, 0x0, 0x0, 0x0, 0xa}, {}, {}, 0x0, 0x0, 0x1}, {{@in=@private, 0x0, 0x33}, 0x0, @in=@dev, 0x0, 0x0, 0x0, 0x24}}, 0xe8) sendmmsg(r3, &(0x7f0000000480), 0x2e9, 0x1f4) pwritev(r3, 0x0, 0x0, 0xa33, 0x1) sendmmsg(0xffffffffffffffff, &(0x7f0000000100)=[{{&(0x7f0000000200)=@nfc_llcp={0x27, 0x1, 0x2, 0x5, 0x1, 0x7f, "a81d43c1ef8e3614408e94baa5a4cdc920af13c2c7da5cef10f41592c6c3dbc31e9addaf77c74847dfa847513056c4837817ba64bd493c793a5233baa58bf0", 0x27}, 0x80, &(0x7f0000000080)=[{&(0x7f0000000280)="28058764489b0fc3cd85fe88d1ce8e4e76976e2e3ceed4758f99b7ff77424c88f81a646897fb4e26e2d2d22bacbb8e7f3a8fe211f38f2cfc61d7b2f1ad4dab707a5f3981d6bac3d900d11eb979e31af152a183699e8db11c650a14258d4659ab4e55d5eb51426b1e9d3a68dc7d383353de3431affddafc12d8e6c8916f28c33517d1", 0x82}, {&(0x7f0000000440)="79e50b9c1fcbff5ccdc2da2da835cc32d0b7087a57e117d0a1c6f00965010823759e68e0f457ba024e87e7c4244f6163f8df2d11f7b2d23ce7650f5931c89ebe006ee3c92b63310ea9b571fe28519eb5acf6100353b2364abd4d6e71a1620351792b02f94eaefb8cafc17e85586d28fd258a2a4837013c5815cf63ab6a04e16b81cf", 0x82}, {&(0x7f0000000500)="2a49b0d34576e8d78b823d26661a293f483a3eddd1212aabd33ec05cf039492679e3a6cdc605f904f482df83af8dff628e47f75d977a96927ecef5b721f39b01ca5750b41a424836363172f196a37bac3d4201e8ebdfeb48ebafe22f2cd57f4247e7d804144203434a7a229448d4e3f9c5c7aebd0eab994881c6e71365c46d059f222d1950a6e388b02b9783aec7cac91fa174f550e5922c3d65485eeba668e6484762c67261116ad476a28050110c98633f93216da82b2ad5d61e353b7b884f28e097d2578fbecc3fe8e914c7fa99f191f58ddc312cf4058e5f925b4efae57373", 0xe1}], 0x3}}], 0x1, 0x805) r4 = openat$vicodec0(0xffffffffffffff9c, &(0x7f0000000600), 0x2, 0x0) ioctl$F2FS_IOC_PRECACHE_EXTENTS(r4, 0xf50f, 0x0) setsockopt$SO_BINDTODEVICE(r1, 0x1, 0x19, &(0x7f0000000140)='wlan0\x00', 0x10) connect$inet(r1, &(0x7f0000000180)={0x2, 0x0, @multicast2}, 0x10) sendmmsg(r1, &(0x7f0000007fc0), 0x400000000000070, 0x1e00) ioctl$PERF_EVENT_IOC_PERIOD(r0, 0x40082404, &(0x7f0000000000)=0x24b) connect$inet(r1, &(0x7f0000000380)={0x2, 0x4e24, @rand_addr=0x64010101}, 0x10) 02:15:59 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x38, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}]]}, 0x38}}, 0x0) 02:15:59 executing program 5: perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c45, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffffffffffffffd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x0, 0x0, 0x0, 0x0, 0xffffffff}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = socket$kcm(0xa, 0x5, 0x0) r1 = openat$nvram(0xffffffffffffff9c, &(0x7f0000000000), 0x8400, 0x0) sendmsg$kcm(r1, &(0x7f0000000200)={&(0x7f0000000040)=@ethernet={0x306, @link_local={0x1, 0x80, 0xc2, 0x0, 0x0, 0x1}}, 0x80, &(0x7f00000000c0)=[{&(0x7f0000000180)="16e5a0f653c20f83ebc95069838da29cea3c88aaf1427a2726d71a3e861ccf2651784f4b2255ebe289406bc7aeeacb6c5cb14fd47028709dde29e999617ba886558e65aa", 0x44}], 0x1, &(0x7f0000000740)=[{0x78, 0x10a, 0x2, "8359b751efcf6936477f07026f5b2a75c95df18f38c227186cb0c10f3f4b1608a1261ff4f98b4aca18c3937f14e79ecc4dab6b33c07773796a7bce0c1e5c2b66fbcdc81d57fb35177d4cc8f086a851f4f3a8f8dd4b7450c078492544e27bc6b426c3"}, {0xf0, 0x11, 0x3, "e6ea3c751d4aed448132bff11919642af52eeaeb492046e8346e692ee8731cf9ad827011502ca00ff085cae33cf2d155157a38f4e5dcc058ae9503d7e38526feeb42cc6d3c2dcda8df22b3049d12b471dba83872155437defc98f332039aaca5d1990a89b5c99bd3d13b6d60ae2cfd8ea41ea491eab8d8795b056be6c539519be0e193cc3538de2b0107014b8ea5787386bce4757bb49fab2c064aeea47a1a7325a066c4b4b559ae4f2c17d6ac751f25fa706b98d5f262ba61ae567ae9f12e0a44f427e2a5ba2c36441ca8029e5786e63d3d3deff58a29ccbb641a65"}, {0x50, 0x105, 0x0, "ac49011e3ec7ff3a4be2372dae8bc8282bb1e2d73990183b8e7cda28a6b3920a30b0cae8a54f99602c74db4d895af2eb51b3390198d67c7bd5270934"}, {0x80, 0x104, 0x8, "2627d3b06823845350d91e921173a284a1b4b032e71450a80f3533bf848ad5d49ca3396375092de858d4711b5d9a50f6a70636107d231417325f82ff409ea9d144dec929171717b8a5b019838faf145f78ffa0423b9a0d382db8bf2e35dbfb37e662a1bd7b918a908ef363"}, {0x30, 0x3a, 0x7, "cbd3ca15710861baaff2133f0dfda815c28aa24c5ea79b297653eef1ea"}, {0x58, 0x101, 0x7fff, "3896e5b0a019d6b051d831792b54a6e2fbd1eb37b8018fc493cc55a032679469e05d53955f9be42b4f0409288d9b186b558547073dbb3e62a378e8bab8647309efa641da"}, {0x40, 0xff, 0x2, "3c14b2be122ce0405c7a1ad7055e1f112bac7a03514b87f383359b0dfb336ff154559136b8ef185a58b9"}, {0x30, 0x6, 0x0, "cdc7f993aeaec9776c6725a0d9ac5d0e48c0801f4eb27f4b3345"}, {0x40, 0x100, 0x2, "3e670f5d387947b76daacd914460d877ab872968e446c009095a9250514a54b6bc748ff214ed106ec438b2df"}], 0x370}, 0x44000) sendmsg(r0, &(0x7f00000006c0)={&(0x7f0000001280)=@in={0x2, 0x0, @rand_addr=0x640100ff}, 0x80, &(0x7f0000000700)=[{&(0x7f0000000440)="c4", 0x1}], 0x1, &(0x7f0000000380)=[{0x18, 0x84, 0x0, "c6d6"}], 0x18, 0x3e8}, 0xfc) sendmsg(0xffffffffffffffff, 0x0, 0x0) 02:15:59 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x38, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}]]}, 0x38}}, 0x0) 02:15:59 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = dup(r1) sendfile(r2, r0, 0x0, 0x4000000000000081) r3 = creat(&(0x7f0000000280)='./file0\x00', 0x3) close(r3) socketpair$unix(0x1, 0x2, 0x0, &(0x7f00000000c0)={0xffffffffffffffff}) close(r4) r5 = socket(0x200000100000011, 0x3, 0x0) ioctl$sock_SIOCGIFINDEX(r4, 0x8933, &(0x7f0000000140)={'veth1\x00', 0x0}) bind$packet(r5, &(0x7f0000000200)={0x11, 0x0, r6, 0x1, 0x0, 0x6, @local}, 0x14) sendmsg$nl_route_sched(r3, &(0x7f00000002c0)={&(0x7f0000000240)={0x10, 0x0, 0x0, 0x10000}, 0xc, &(0x7f0000000280)={&(0x7f0000000600)=@newtfilter={0x26dc, 0x2c, 0x300, 0x70bd27, 0x25dfdbfe, {0x0, 0x0, 0x0, 0x0, {0x7fea, 0xa}, {0xb, 0xf}, {0x8, 0x5}}, [@filter_kind_options=@f_cgroup={{0xb}, {0x26ac, 0x2, [@TCA_CGROUP_POLICE={0x860, 0x2, [@TCA_POLICE_RATE64={0xc, 0x8, 0xff}, @TCA_POLICE_TBF={0x3c, 0x1, {0x3, 0x2000000c, 0x1, 0x7, 0x2, {0x80, 0x1, 0x80, 0x0, 0x2, 0x3}, {0xfa, 0x2, 0x1, 0x8, 0x1, 0x1483}, 0x2, 0x7, 0x89ec}}, @TCA_POLICE_PEAKRATE64={0xc, 0x9, 0x4}, @TCA_POLICE_RATE={0x404, 0x2, [0x76, 0x4, 0x5, 0x1, 0x9, 0x8000, 0x1, 0x2, 0xa5, 0x400, 0xfff, 0x8, 0xf3c, 0x0, 0x0, 0x400, 0xffff, 0xb2f3, 0x47a5, 0x48, 0x8, 0x8001, 0xf224, 0x7, 0xfffff001, 0xc7, 0x0, 0x80, 0x3f, 0x4, 0x800, 0x900, 0x8, 0x3, 0x62ed530a, 0x800, 0x5, 0x7e09fa2c, 0x1000, 0x7fffffff, 0x98d, 0x40, 0x400, 0x200, 0x3ff, 0xfff, 0x2, 0x0, 0x8, 0x3f, 0x6, 0x0, 0x6, 0x4, 0x8, 0x2, 0x4, 0x2, 0x9, 0x3, 0xfc, 0x7ff, 0xd5, 0xa04e, 0x8, 0xfffffffe, 0x3, 0x1ff, 0x12a, 0xfc, 0x5, 0x4, 0x20, 0x9, 0x6, 0x1b54, 0xff, 0x400, 0xdb1f, 0x1, 0x401, 0xa7b, 0xef6, 0x910, 0x5, 0x2, 0x10001, 0x6, 0x80, 0x8, 0x7fff, 0x7, 0x2, 0x7fffffff, 0x7, 0x1, 0x4, 0x0, 0x4, 0x3, 0x80000001, 0x101, 0xac, 0x40, 0x7fffffff, 0x2, 0x6, 0x1, 0x401, 0x10000, 0x1, 0x61c1, 0x8, 0x4fb, 0x20, 0xfffff0f0, 0x2, 0x8, 0xffffffff, 0xc00000, 0x0, 0xffffffff, 0x9, 0x4, 0xff, 0x7, 0x3, 0x7, 0x0, 0x6, 0x7, 0x0, 0x10001, 0x1, 0x10000, 0x7fff, 0x6, 0x9, 0x1f, 0x1f25, 0x100, 0xfa0a, 0x5, 0xffff, 0x20, 0x401, 0x2, 0x6, 0xfff, 0x7, 0x0, 0x4, 0x69, 0x3ff, 0x5, 0x8, 0x80, 0xccd, 0x5dbf, 0x5, 0x4f5, 0x41, 0x0, 0x6, 0x3, 0x5, 0x6, 0x5, 0x7, 0x7, 0xfffffffd, 0x2, 0x74, 0x6, 0xc96, 0x10001, 0x7, 0x1f, 0xffff0001, 0x400, 0x7ff, 0x200, 0xffff, 0x101, 0x200, 0x1, 0xffffffff, 0xfe54, 0xffffff01, 0x9, 0x7ff, 0xfffffffd, 0x0, 0x80000001, 0x6, 0x4, 0x9, 0x212a, 0x8, 0x8000, 0x9, 0x3f, 0x5, 0xab, 0x80000000, 0x80000001, 0x6, 0x8, 0xffffffff, 0xffff, 0x10000, 0x10000, 0x800, 0x313d, 0x9, 0x0, 0x81, 0x5, 0x10001, 0x1, 0x200000, 0x9, 0x376d, 0xfffffff9, 0x8, 0x0, 0x7ff, 0x80000001, 0x7ff, 0x1, 0x5, 0x40, 0x88, 0x7, 0x2, 0x3, 0xe68, 0x3, 0x3, 0x1, 0xc9, 0x7ff, 0xfff, 0x10000, 0xfb, 0x8, 0x8, 0xff, 0x7, 0x1, 0xe2, 0x3, 0x3, 0x7, 0x0, 0x3]}, @TCA_POLICE_PEAKRATE={0x404, 0x3, [0x9d, 0x2, 0x400, 0x9, 0x9, 0x80000001, 0x6b2b51fb, 0x6ea3, 0x9, 0x1, 0x8, 0x7fffffff, 0x6000, 0x100, 0x9, 0x80000000, 0x0, 0x8, 0x40b1, 0x400, 0x2806e04c, 0xffffffc0, 0x9d2, 0x5, 0x1, 0x22df94c4, 0x0, 0x8, 0x80000001, 0x80000001, 0x80, 0x8, 0x80000001, 0x7, 0x4, 0x3ff, 0x5, 0xfff, 0x7f, 0x90000, 0x101, 0x10000, 0x0, 0x9, 0xe6, 0x2, 0x0, 0x8, 0x20, 0x20, 0xffff8000, 0x7fffffff, 0x1f, 0x50f, 0x384, 0x20, 0x1bae, 0xfff, 0x3b3, 0x200, 0x400, 0xfff, 0xfffffff8, 0x7fffffff, 0x7, 0x4, 0x8, 0x4727, 0x2, 0x9, 0x7f, 0x0, 0x6, 0x7, 0x6, 0x0, 0xfffffffd, 0xe, 0x9, 0x5, 0x6, 0x7f, 0xdcf, 0x51, 0xfffffffc, 0x9, 0x101, 0x2, 0x4, 0x6, 0x9, 0x10000, 0x8000, 0xfffff6d1, 0x5, 0x7, 0x2, 0x9, 0x3f, 0x2, 0xfffffffc, 0x2, 0x0, 0x4, 0x3d6fba9c, 0x2, 0xffffffff, 0x4, 0x7, 0x63, 0x6, 0x9, 0xfffffe01, 0x2, 0x6, 0x50, 0x1, 0x1e, 0x3, 0xfffff800, 0x5e6c, 0x10001, 0x7fff, 0x15, 0x80000001, 0x8, 0x7, 0xffffffff, 0x401, 0x9, 0x5, 0x20, 0x1e, 0x200, 0x0, 0x5b13, 0x4, 0x5, 0x6, 0x1, 0x80000001, 0xff, 0x100, 0x7, 0x7, 0x5, 0x4, 0x9, 0x964, 0x9, 0x8, 0x1, 0x3, 0x24, 0x6, 0x1, 0x3f, 0x8da0ad50, 0x3, 0x4, 0x4, 0x7, 0x3, 0x5, 0x6, 0x5, 0x1000, 0x6, 0x3d, 0x0, 0x8, 0x38, 0xb493, 0xfff, 0x966, 0x8, 0x7, 0x7, 0x1, 0x10000000, 0xd28, 0x1c, 0x6, 0x3, 0x20, 0xbdb4, 0x7fff, 0x2, 0x4, 0x2518, 0x790, 0x40, 0x8c, 0x5, 0x2, 0x7fff, 0x20, 0x1, 0x7, 0x50f, 0x65, 0x9, 0x6, 0x6, 0x3, 0x5, 0x5, 0xfffffffc, 0xe4, 0x27, 0x0, 0x5, 0x2, 0x0, 0x5, 0x1, 0x1, 0xef0, 0x69, 0x9, 0x3, 0x800, 0x100, 0x2, 0x2c40000, 0xe1, 0x6, 0xffffffff, 0x401, 0xbc4a, 0x1f, 0x62, 0x101, 0xffffffff, 0x24000, 0x7, 0x7, 0x0, 0xa0a6, 0x0, 0x4, 0x2, 0x1ff, 0xe05, 0x1, 0x0, 0x2, 0x6, 0xffffff4e, 0x2, 0x80, 0x4, 0x7, 0x401, 0xd5b9]}]}, @TCA_CGROUP_POLICE={0x410, 0x2, [@TCA_POLICE_AVRATE={0x8, 0x4, 0x2}, @TCA_POLICE_RATE={0x404, 0x2, [0x1, 0x4, 0x2, 0xc3, 0x1, 0x2, 0x6, 0x81, 0x6, 0x100, 0x6bae, 0x401, 0x1, 0x0, 0x1, 0x8, 0x8, 0x80, 0x5, 0x101, 0x8, 0x1000, 0x18, 0x800, 0x8, 0x8, 0x9, 0x200, 0xffffffff, 0x26, 0x3f, 0xfffffffa, 0x6, 0x4, 0x762, 0xbee, 0x7, 0x7, 0x9, 0x11, 0x0, 0x4, 0x2, 0x7, 0x52f, 0x7ff, 0x8, 0x4, 0x8001, 0x88e, 0x7, 0x4, 0x8, 0x2, 0xc889, 0x81, 0xffffffff, 0x26, 0x6, 0xffffffe1, 0x2, 0x10001, 0x3, 0x6, 0x80, 0x10000, 0xffff, 0x1000, 0x6, 0x9, 0x5, 0xb4, 0x1ff, 0x9, 0x9, 0x8, 0x1, 0x1, 0x6, 0x1, 0xe0c0, 0x0, 0x6, 0x7, 0x3e7a081b, 0x658b, 0x1ff, 0x43, 0x3ff, 0x80, 0x80, 0x33546fb6, 0x3a2, 0x20, 0x4, 0x8, 0x2a7a, 0xb9, 0x6, 0x4, 0x800, 0x5, 0x8, 0x401, 0x3, 0xffff, 0x0, 0x5, 0xc1, 0xfffffffe, 0x80000001, 0x9, 0x7, 0x7f, 0x5, 0xe8, 0x1, 0x26b7, 0x3, 0x26, 0x0, 0xfbc, 0x0, 0xfff, 0xef35, 0x8, 0x21, 0x10000, 0x7, 0x10001, 0xa0, 0xffff, 0xdf, 0x7, 0x3d7, 0x7, 0x8, 0xff, 0xff, 0x5, 0x4, 0x3, 0x7, 0xae76, 0x9d0, 0x9, 0x5, 0x1, 0x3, 0x8, 0x6, 0x5, 0x5644, 0x8, 0x80, 0x55, 0xf47d, 0x9, 0x2, 0x3, 0x9, 0x0, 0x2cd, 0xb2, 0x8, 0x2, 0x5, 0x7661, 0xfff, 0x7ff, 0x6, 0x7, 0xb03, 0x4b20, 0x3ff, 0x9, 0xffff, 0xff, 0x9, 0x0, 0x3, 0x6, 0x9, 0x7bce, 0x5, 0x34cec892, 0x5, 0xec, 0x3, 0x1, 0x4, 0x7f, 0x3ff, 0xfffffe01, 0xffff, 0x74da, 0x4, 0x10000, 0x1, 0xfffffffa, 0x400, 0x1, 0x40000000, 0x10000, 0x81, 0x1000, 0x7, 0x400, 0xfffffffa, 0x5, 0x8001, 0x0, 0x0, 0x51, 0x1, 0x8c0d, 0x2e2, 0x1, 0x4, 0x8, 0x2, 0x6, 0xff, 0x7fff, 0x7, 0x9, 0x25b, 0x6, 0x7, 0x9, 0x3f, 0xed, 0x9, 0x8001, 0x5, 0x7, 0x8, 0x1, 0x736, 0x40, 0xff, 0x3, 0x3, 0x4, 0xc1, 0x6, 0x2, 0x4c17e3f0, 0x3, 0x1, 0x3, 0x80000001, 0x7, 0x7, 0x8, 0x81]}]}, @TCA_CGROUP_EMATCHES={0x7c, 0x3, 0x0, 0x1, [@TCA_EMATCH_TREE_LIST={0x78, 0x2, 0x0, 0x1, [@TCF_EM_CMP={0x18, 0x3, 0x0, 0x0, {{0x3ff, 0x1, 0x1}, {0x3f, 0x4, 0x7ff, 0x2, 0xf}}}, @TCF_EM_U32={0x1c, 0x3, 0x0, 0x0, {{0x4, 0x3, 0x80}, {0x3579, 0x7, 0x8, 0x6}}}, @TCF_EM_CMP={0x18, 0x1, 0x0, 0x0, {{0x2, 0x1, 0x2}, {0x80, 0x80000001, 0x9, 0x0, 0xb, 0x1, 0x1e8a9f961d4d5311}}}, @TCF_EM_IPSET={0x10, 0x1, 0x0, 0x0, {{0xc26, 0x8, 0x7}, {0x1, 0x6, 0x4}}}, @TCF_EM_CMP={0x18, 0x3, 0x0, 0x0, {{0x6, 0x1, 0x7}, {0x7, 0x8000, 0x8, 0x0, 0x6, 0x2}}}]}]}, @TCA_CGROUP_EMATCHES={0x1e4, 0x3, 0x0, 0x1, [@TCA_EMATCH_TREE_HDR={0x8, 0x1, {0x3}}, @TCA_EMATCH_TREE_LIST={0x1d8, 0x2, 0x0, 0x1, [@TCF_EM_IPSET={0x10, 0x3, 0x0, 0x0, {{0x6be7, 0x8, 0xfff}, {0x1, 0x4, 0x1}}}, @TCF_EM_IPT={0x7c, 0x2, 0x0, 0x0, {{0x4, 0x9, 0xff}, [@TCA_EM_IPT_HOOK={0x8, 0x1, 0x1}, @TCA_EM_IPT_MATCH_DATA={0x5d, 0x5, "84ecfc0b95540414622d4e72c0ee2c147b862260c56b7ceada5b37e6745185a594350afe3a6f266e267306f82ba5ad8ad4f6b79e03f3323b0a1a1f9d35c3dbc2f5be35f8ff9b23bb1295e7f2a49c2431233ff81a751f904dc3"}, @TCA_EM_IPT_MATCH_REVISION={0x5}]}}, @TCF_EM_IPSET={0x10, 0x2, 0x0, 0x0, {{0x9, 0x8, 0x4}, {0x2, 0x1, 0x4}}}, @TCF_EM_CMP={0x18, 0x2, 0x0, 0x0, {{0x81, 0x1, 0x1}, {0x10f, 0x800, 0x156a, 0x0, 0x4}}}, @TCF_EM_U32={0x1c, 0x1, 0x0, 0x0, {{0x5, 0x3, 0x3}, {0x7fff, 0x1, 0x8, 0x4}}}, @TCF_EM_U32={0x1c, 0x1, 0x0, 0x0, {{0xffff, 0x3, 0x5}, {0x2, 0x80, 0xfffffffd, 0x7}}}, @TCF_EM_U32={0x1c, 0x1, 0x0, 0x0, {{0x1ff, 0x3, 0x8000}, {0x0, 0x6, 0x20, 0x8}}}, @TCF_EM_CONTAINER={0xbc, 0x3, 0x0, 0x0, {{0x1, 0x0, 0x200}, "fe05b026f683b38edef96a3a5bb991b9e45ee34cf534f1858eae38fbc40d1bdd77757258c1db2ab486ade6a579bba065c06b58fbf55634a4bf3e4e97c3274db86d92c62c8678792e5249524ded241a3c1b53549870aba78e955cef1924ef5a0cee1fa7b26bdc6db0302adac54bf9731be357ef024f97af457afa266b39c88ffd4793ce994496215b543acec66d38190ef5bfa77d3f90aa96f8464fe896928eb71f64fab269482dcbcb769be1e912"}}, @TCF_EM_IPSET={0x10, 0x2, 0x0, 0x0, {{0x81, 0x8, 0x101}, {0xffffffffffffffff, 0x5, 0x2}}}]}]}, @TCA_CGROUP_POLICE={0x10, 0x2, [@TCA_POLICE_PEAKRATE64={0xc, 0x9, 0x2}]}, @TCA_CGROUP_ACT={0x1568, 0x1, [@m_simple={0x84, 0x5, 0x0, 0x0, {{0xb}, {0x2c, 0x2, 0x0, 0x1, [@TCA_DEF_DATA={0x26, 0x3, '/proc/sys/net/ipv4/vs/sloppy_sctp\x00'}]}, {0x2e, 0x6, "c473c8c2146d6a4446b31367dd746943a2bbf374f05cbc7ffd35ce383e84dca8420b33426d06c2478a03"}, {0xc}, {0xc, 0x8, {0x0, 0x2}}}}, @m_connmark={0x78, 0x2, 0x0, 0x0, {{0xd}, {0x3c, 0x2, 0x0, 0x1, [@TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x0, 0x4, 0x8, 0x1, 0x1ff}, 0x1f}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x51a, 0x22784f0a, 0x6, 0x10000, 0x3}}}]}, {0xf, 0x6, "e319e0ac4f0a4693da77f3"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x2, 0x2}}}}, @m_nat={0xb4, 0x2, 0x0, 0x0, {{0x8}, {0x54, 0x2, 0x0, 0x1, [@TCA_NAT_PARMS={0x28, 0x1, {{0x100, 0x2, 0x5, 0x55da, 0xe0}, @local, @loopback}}, @TCA_NAT_PARMS={0x28, 0x1, {{0x28, 0x0, 0x0, 0x2, 0x4}, @rand_addr=0x64010102, @private=0xa010102, 0xffffff00, 0x1}}]}, {0x3a, 0x6, "a8f393bbbf6a26ed8c4e9adec707fb10bcbdc84bd8c17e98b0b50c5a0b104c8be110789c9f468f20bb2c760101eacfc42e7a5735c999"}, {0xc, 0x7, {0x1, 0x1}}, {0xc, 0x8, {0x1, 0x2}}}}, @m_skbedit={0x10c, 0x11, 0x0, 0x0, {{0xc}, {0x7c, 0x2, 0x0, 0x1, [@TCA_SKBEDIT_PRIORITY={0x8, 0x3, {0x7, 0xf}}, @TCA_SKBEDIT_MARK={0x8, 0x5, 0x80000001}, @TCA_SKBEDIT_PARMS={0x18, 0x2, {0x1, 0x0, 0x8, 0x8, 0xffff}}, @TCA_SKBEDIT_PRIORITY={0x8, 0x3, {0x8016, 0x1}}, @TCA_SKBEDIT_PARMS={0x18, 0x2, {0x8, 0x7, 0xffffffffffffffff, 0x6, 0x6}}, @TCA_SKBEDIT_PRIORITY={0x8, 0x3, {0x0, 0x3}}, @TCA_SKBEDIT_MARK={0x8, 0x5, 0x1}, @TCA_SKBEDIT_PRIORITY={0x8, 0x3, {0xfff1, 0xe}}, @TCA_SKBEDIT_PARMS={0x18, 0x2, {0xffffffff, 0xce, 0x20000000, 0x9, 0x7fbe}}]}, {0x65, 0x6, "fdff061e39556ac304226ac3ef84ac1a84cbd5f74cd1ee39e8034d1b80ce4e163ae42a4a75bca28b3007d14de0460ad76ff45d317a9d3ba8012effecb64bc5bea91f2a241b891c7a4a8f0da156047c00142841cab2b801c3ece11dde0dec3bc6ea"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x2, 0x3}}}}, @m_gact={0x1090, 0x13, 0x0, 0x0, {{0x9}, {0x64, 0x2, 0x0, 0x1, [@TCA_GACT_PARMS={0x18, 0x2, {0x3ff, 0x6, 0xffffffffffffffff, 0x1f, 0x233ed5e9}}, @TCA_GACT_PROB={0xc, 0x3, {0x2, 0x720, 0xfffffffffffffffe}}, @TCA_GACT_PROB={0xc, 0x3, {0x2, 0x140f, 0x6}}, @TCA_GACT_PARMS={0x18, 0x2, {0x9, 0x0, 0x7, 0xffffffff, 0x7}}, @TCA_GACT_PARMS={0x18, 0x2, {0x7, 0x81, 0x2000000d, 0x4, 0x6}}]}, {0x1004, 0x6, "17090fd9f72718b78ef4252a3595a9df817e144518b06a24fb42528a1d5d14ccc7d9d5a7da7b67c45bcefc2da8bf1d64d86631fc1d1bd265b036da018fbb5bd87d15bf71009083d808bcccdf32528887c14ff2fe1f44af3124e6317953fe505a189ef51ac633067c5859dba712405ee19cfa23367523a69d33c9351f9c1a27f1c2855ea7239033a14aa6a8d1ae70ae6157b6ec549c3aaad04c4b9e811778866760d921c2c0120cf363d60b87de024401752cdbc9cdab060a104e5281302870f14ec3b7a6eb6ea4f8d41136a5ad99f373eae44662b2407ffb3b35e6ebba7d3d53be621fb20be009096e7a7d54bb9b3a95fdb15b0b7c6d2aee0badab00c6f0daec5dec9439ca2d3d524e5f1db7f322809c585a92a1f7f85400c00c05bdef2e520add8084327e6e1b2d281dac1579a2092e5193aecdf4ab69a1ad5f1c17ae770e339fbc917b72dabe5e96b80827e2d5c633487273f1eb9ecb2cda37bbb9957e184730e07a161aa9612a7cb3f4d2d0587a516e41e0c0cd7f35ca683976bab4ff7c25cb0af783dc64d2db8e6494c2ff1d627317b65d269d8df7e802f5c14268483aba0b63f0709cfcec9ab1f306b31765011d5e32fe791fda48269811b09fa33d48ed0cda687611b0f71dfb25489e8430b4daf992f82bf7f48109716751ad3bf569c2d6316cc999c1665f1d931d40c9ea3841a434f9733d02f8e23e03569fe5bc9043b62bebc6422a44f5e9e78485afec7a015b94188e0b343284e508a5a5338e8c5d475c7a3d8cf2b197ddb05e32b4b3ce86ed085306b693427618b54240dbf1edb1644255368276b32125dfe134cb7624d7ff5756c5b42c9be5220764fbec27f6de3c574c6a1903565a20ff61f14e3e5d99c5442592c784cd5c6ccf3e122fe424422a44e8ba3b3444909865671f79d164558cfc07159faeca82126866247e5bf5e089d7275db72165ffa4cfd4f495f1cffb09fe6210b44c2d1081e36d5ab167c019bc544dc5ac2657a08073b8c3e0021ee5e83010de9ab84e2ae63144e5b9ac21765f58391cbb2a96cbb01939001dea57c079c28608044491b2aabc1434b85051991ac5f7b9864af55bb8498b34a12abd067091f5b972493455433b68b5ad20dec9c4123a04fcb02c07961bae533e260177418ebe2d7e0cededcdc49c18b0f2078de80dba5fe6bf9db0f19509fedc1586ea63c04dd1a4ac65beced0e0a725a56281c3939121f3f27fe9453fbe581e6dc34e39cef843636d04166625bd5020a1493a1a4a76a400e2b2f67a19e5b7b5391276d5d812dc66a5d6f1efb57d1697880503121d7879f05d0c603a1a9048fa458e3d52fdc813fb834d3f3760886972ae38ffdb84147db91576aac375b53db22bb82f5b9c151a45e1f0bfdaf62d6cc25c27eaefe0b3ec426c94dc8f7bf444021b20392cbc7fd6a9b31299c0715ca14858a4632469322204f0de43a6b16f2c9ab96eb0cc193e1794ce718d6c69e92f72ea17cae0d90707696966307a8cdaede662fad75bbc3e32f87eba9d6fe7c9e948a8e8d8a9ad5758efe46b0b81ea046603e933abc2e280f861dfa2dbb44734efbb6c593c164e868ffce8a14ea653559093a0a6bd16dc219d56267765f2eae5f1e6aacb0babb30c85361404e1c7c4587204ee2837426e512c384258caabbd5ac0a9a2ea77b82b0f945319c7fbd1d1e9488cbb60045b69e32ca68b432f679f167d6ff023ca949e68e11752dd6d3f9851d7a8d048fe440116dc018772e37a0188e421d76ee2744357514f897289254115a73d26b2b4e7f6f6529a0cefa645f5a0729ff7fca910541936f80eb3b7689465f2931853ae61877ae76f32005f26130b21935ad32a051adeeb3deb6ff101252cc93191cffffaf0b7a2bfb8944d61bf71939908d8592f94d8fa5c8f496ab7a8e7e6d3a069619b2fb65b9d809716c8951ebcb755824e70b99c0642573a5a253f7cd6197872c9ce0b07f9d9303de48a0e0903b071696bd051e01e4d822d0d80a03e2417e8220d9969e18a912402d1a564dd08640b7c1144fccd37ecd5f34960b5bb36d6308d4d3705fcb341b9d896cbb1780feeef3d2397ec8ad61e2575886f25f734eb333f5c998de2cb4e1b684493fde97279f20a6249bba617beb37eecfd5fb93d1e344d43bb8620bdf6257b623ea257ad30422ac4d15f6fe6b0a76d29c1d63d9ab72d344ea7d86815ba454eea17f0fed8a0cc182f32760433fde5ddc4d5dc51bd4d4c8a2ec61b3524cd2eab49e82e91ef26597cbee0aeddf90e539423c9550374afb9410515ae6b82ad6f280adc134a2f3e78038dcbce52ba4c7bc43ec738c2b87625064f67aed030d5b4e5a7c30e6eeec0304353a3d61371633f61b77064fbef66aa49c4280e83d99c08209df44a8a87cc00c1cbbaf1c2d06ffd2f83bbaacae0f197b63ef3c5f42f178fb1a79195a476a32f6da49cbe95f89be2077ee921410caf95ad5400b989e1fd958a67735416dedfb63eea0fa51219e053fc3008eb6fed60a1294dd09ae7df5a177d29a9582063e008ab056eca1b74d7bd214c3328ebe4699046852db48c1671f3d6d4c9d754ad8bdaf8c9ed0fba7f6798b38e8269c8a7a8e8ca5c31495205bb6fc957c55dc17395bb2ffe721d6c84ad40b8d08bfed6cf16d80d64b5d6017806fdfada1969c8a36cab6351592fe563916026909f4206dd489227641546b5c1ed4ddbeb51d35956134a500b69469a0e1b44a5e6cdf0d79f7f90303e445a78d229f78cc277e2f894f83e0378590008df68e672d745dc315e2735625cfb714d5f510713f819da66823574e526f88fcb378651e9d6e60d6bbdef16f93bb0a3b76f29d9c7918df325f17e18007da5e0d7d7632ba30b08b1782ec702c3d754f030a43de225a294e5f4d3f8ddb26e4a9ed2d4b44d61dede658ff6936e56e30b6b7d5c2db053edfdac38dad3a7b4de72b88bab3be67b46fac00b3fe0ca369156d0db089ad0dc468b6bdb4199b34b1317d76011b9395bc6b77f9bdfa7e2ffea8493db62aa28a2f773e2ab0612409cdfc425bcb1207327bbb057047fd1a1fa0a2ac1449fa9df4a3e819d1aa6a960c15adb197ab2a7ca11b1c8a391a7a29d7816269e6a673dc68e8e145fdffdf9fc4f10ec21538726be1b55187a57a84e39441927c583b54f91f04eeb900c6fd72ac32e2a4e2c99db1645da30db93dda83bc34dd5c9bfa1ec6bf9ade555fc2cee33699c12c3151bae8b9137f688e38b9cc7dc288c28b974df84c898559338452f88ce7ec816c0a0a16c65e14c5fc5e56baf1ba6333fcde96366f5f27383dc32260112f2a1a164193e342f3d0e3fb9e76f80fbb497fb998841c64eee9a119febf61fb4463769e9bb5c9701e431fa583ce2c3001caeffb6ba283763051fd8e27be853e86eb5a007b220cb75d6205fc6149659c6c994503b2da4f648f09204048f5aca6be71ae441ac385c6dcca74944c38f74bcf2a42d1f35227022d70f89162662d19beb34922317a7f597198cea2ef5d6066004e7ed9a5a85209835bfe01ec354b18a9e480d28141676228f90f16d5402ff8fd874e01019e6b70197ad8a31a627f8472c9370d8dbe59251c69dbcf47cbc1f71adf68a953f133b4d081aef1ddbcaa04036299408225b525b0e7486f25f7b91e5c9ef157612a7b4657ebbb3e2fb5a51d51435ff76543b4d3ddc00df40cb481f3dc29659108ef206c6bc31343137ff70fea0946fd3fcb3e4d256a0133f67edb9f60837670d269e813a96ca25cd511995314abb81d46b088915426aaece76e93e37f4da33fc346273b8738258399abb4a3738811ffb77141f3c43b19e44e559915bc1b8f6ecdb7c14a2f938838ade76db88d4ca043ed86e7d37d956aa69be0962bc207f0ff5ce404aed0afc37f1413572e5242aa39ebaceacdc498cc360f0654ebcb5608dadd1f360b5a32dab9817b4c4596af1ee93b7e4f869c93a3f31d4439f0e6dcbfdd715a1732066257cbaee780b2f5ecf4a11bcfe2e90668271976b150eba68fbac4a58b44ba1479e80f6ca8a3ebf0f181baf5228ed8f95594e908a361d9eabddf5a063bf35fa2231fc0b2fffb1bc4f86ac74bf1a833ebd4515bfcefedc988ac84ee4b3817c7c28ead8596ff0bb38bf1ff807af93036387f5900b3900353b6589886a38d1fe7c88c546e0f577fc31d8953f4c3b6991b1c7b23b3fa81bb6fecf341ba83c3e620ed754518a3a040dd8922ba1b249737df9d4f391bf6ca176f736d480bf670fd18356b239255111f1d172c086c2159ab5200d69c24c879afb3c7a7465d143b1169c6e4e9152bbbad036d699a139e52e612d5ded716e278b71b7fe971123b52806cf7853516594a5df8b4300ee157f0b398dac51547190f4d810174c69a496dc96635046a135ec1da0ac027524c060ced6db32390cd4f9c9191634f02835960a2a843c208bf5b7827d4a311bb5d086f511fb97de2679c74e715fb2d91ceb87fa678b58ac62f08a6e3f12c21fd1713f05dd8af0aedd38d400d58528d5960aaf63f8811e3ad88b668ad649706400dda6850eda7c6706122914b4bec832a6ce3f41304de3fce3733f191a56933e08185c2110b9aeeb94b877f4fb160ffa39c750cbad13c4fac1e2d902d2c1b2b8a8ecc8f12413ee0480af0f9048e5aba5bdbb24895328a365a35d07d2d234be9970dde562ed594e0d9277ac4c1692efcd867db6f9d05a65e0774fe40214468102d6e9923360e02622bc0f6ef662000a53f6bc56c9f84389e34295a703dafd3abaeb237343b8e0f013a7919a3bd9550c9022f6b4c0837a08ddd12389bd2383082283e0198e73f4bf7b515f395791eb162ff3cb72fa157821149914f1d37ecf2efdebd8e9b68bce0eca44ce059828a70e6f6929258ba6242870a5a7c312c0e59d4485e8329cf28edb6dcb62c2842881276605639cdb80300b79733512dbd1034474a666e8c37fed93f8bbb2711bb2a41fe222bb99d89d38a3874403a8332cbb350801e85b532e34095405fae30e3d374a3b23e0bec66dadd935e576270bc1217beaf2f824b63b1adbdfa54c79bed0a169d942ad1b4770c5ae9f97cc7bba25a9bd907fcff034f3a44ef79fe4f05bfa4b1a02c23ef963b6b6925f480d215fc7d4c091150b560cea06ad4c2fca30a3405471a08c2ed48ae0272e8266624c6a72b0eeaec9072416eee0677a4cf9affa74211b19463808205deb4711e1e60518e3d5ec054472d6ab87c2c975852a09cae4951c97a282b5801adb14b0ff30eba6452b1c3230c9f8fc66d85e34459e70dc28f4d5c5791bf25c212faf666383e43fcf599ddc368b59aed7180f31f23b83833a84dd615f2e60504fd799f5e94520b02e74c3f05361c076638ee781c018037db85491cb12b14c53d54d6fe1e06c84b958ae9c4b18c966cda1ea15df470f8adbca8a5322b8313955041e16bf52e565931464df71f19ece2b011fb042570fc077d035a3f758cf9a9e48b79e0fd979e6c31cad03c2ee8b2f1e77a4bb130e579e6a45737a7e4c3a95a9348e6c50a9379c02d7feeee27d7290c2e32e35c1f913af62fc617d742b8001f47154c1dfca31fcc340f624f203d86c6800830e03214fdd6718ee28e2c19b3ccfef10a60c0b2d2ee4c71f5007bb15c56e600aefbb429a6bc4fb52bb3e28e48a7b776fb63058ce5c9360311759a693a96550e1ab01c59cdb762be58991a7a9856e26f92ca946e40e01526881c93949e4ec1e5da2ddc3eede49573de32d1a79ec679b8cfe8c28832bc462559916b4454d3ee2b1ba3b44a2f0ac3b7f14a1afb5a5e7feac63881459ea5cdf0efe"}, {0xc}, {0xc, 0x8, {0x1, 0x3}}}}, @m_mirred={0xfc, 0x11, 0x0, 0x0, {{0xb}, {0x44, 0x2, 0x0, 0x1, [@TCA_MIRRED_PARMS={0x20, 0x2, {{0x3f, 0x6c3, 0x0, 0xbac, 0x9}, 0x1}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x8f1e, 0x2, 0x1, 0xffff0000, 0x1ff}, 0x4, r6}}]}, {0x8d, 0x6, "cc9f40b1ca96f712bac63a48ed885124ce22265df889766c54b8ad3189cca3b46bed0d3dad57ccd528d04422b6e5ba004a34d1cb54ea3215987f0b9ef01b956c23c8018138e273a34ca8866adf43cab43203f9334e67cb24028ffcdfbe88cb04af2ce91786bf811f1ba4f5b38179cf5c2a730520724281fabfd33162cbd4e3ce903fd70bbaf3433a11"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x3, 0x2}}}}, @m_sample={0x11c, 0x12, 0x0, 0x0, {{0xb}, {0x54, 0x2, 0x0, 0x1, [@TCA_SAMPLE_PARMS={0x18, 0x2, {0x10001, 0x3, 0xffffffffffffffff, 0x89, 0x7}}, @TCA_SAMPLE_PARMS={0x18, 0x2, {0x6, 0x2fde0d33, 0x1, 0x80000000}}, @TCA_SAMPLE_PARMS={0x18, 0x2, {0x4, 0x2, 0x7, 0x1, 0x6}}, @TCA_SAMPLE_RATE={0x8, 0x3, 0x800}]}, {0x9d, 0x6, "e490b6fd110e18924bfe3d50b5a8165b2c1d2727bf2b531bb7b55ff72c4a2ed39da944277329c522982ff31a9a5fb2ad2391e9fa85e73ce473805db46560a0b50d49914c7a43963dc1adf62405fb6168088967d2bef78d88fe87c77eca2533cf151a6d5e8a51c8d6bc64c432754a8c03bf352c9bd6b22e2a48d6b1b5f936b6d1dac01cb7445a1c92dec40a1a842b03d3117f8517944ebcc71e"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x5, 0x2}}}}]}, @TCA_CGROUP_EMATCHES={0x260, 0x3, 0x0, 0x1, [@TCA_EMATCH_TREE_HDR={0x8, 0x1, {0x68b}}, @TCA_EMATCH_TREE_LIST={0x64, 0x2, 0x0, 0x1, [@TCF_EM_META={0x60, 0x2, 0x0, 0x0, {{0x3}, [@TCA_EM_META_HDR={0xc, 0x1, {{0xf139, 0x7}, {0x800, 0x20}}}, @TCA_EM_META_RVALUE={0x1c, 0x3, [@TCF_META_TYPE_VAR="f79c59", @TCF_META_TYPE_INT=0x1, @TCF_META_TYPE_INT, @TCF_META_TYPE_INT=0x4, @TCF_META_TYPE_VAR="ac07564f3d956d6d3f"]}, @TCA_EM_META_LVALUE={0x14, 0x2, [@TCF_META_TYPE_INT=0x8, @TCF_META_TYPE_INT=0x4, @TCF_META_TYPE_INT=0x3, @TCF_META_TYPE_INT=0x7]}, @TCA_EM_META_HDR={0xc, 0x1, {{0xffff, 0xe6}, {0x9e75, 0x5, 0x2}}}, @TCA_EM_META_LVALUE={0xb, 0x2, [@TCF_META_TYPE_VAR="31234653017fd7"]}]}}]}, @TCA_EMATCH_TREE_LIST={0x20, 0x2, 0x0, 0x1, [@TCF_EM_IPT={0x1c, 0x2, 0x0, 0x0, {{0x7ff, 0x9, 0x3}, [@TCA_EM_IPT_NFPROTO={0x5, 0x4, 0x5}, @TCA_EM_IPT_HOOK={0x8, 0x1, 0x4}]}}]}, @TCA_EMATCH_TREE_LIST={0x1d0, 0x2, 0x0, 0x1, [@TCF_EM_IPT={0x124, 0x2, 0x0, 0x0, {{0xa41, 0x9, 0x8}, [@TCA_EM_IPT_MATCH_NAME={0xb}, @TCA_EM_IPT_NFPROTO={0x5, 0x4, 0x5}, @TCA_EM_IPT_MATCH_REVISION={0x5, 0x3, 0x20}, @TCA_EM_IPT_NFPROTO={0x5, 0x4, 0xc}, @TCA_EM_IPT_MATCH_DATA={0xcb, 0x5, "efb7c7602938c2b4012e29ac90bb3f38f11883886ecb5e52620706653e87520a63c75c0b013eb3ab904ddadcb435a4acf818f3961b0aa64aea3314c74b497a4d196dca0abf09b054d7ec6385a1ec526f196227758dded3b731f71d9f8594f849e41a7ba8be59bae1d811497dd066c55e4c20023b70557062a91ac9d8172666513b228639da49228e4584081705db2d17e9e6bc806926127d0b7c9862a5603aacad26bf7765f07da7597142a330e705d5d4ffb6a3454e6dfa7035f3dcd389d5f8e30e85f150a815"}, @TCA_EM_IPT_MATCH_REVISION={0x5, 0x3, 0x2}, @TCA_EM_IPT_MATCH_NAME={0xb}, @TCA_EM_IPT_MATCH_REVISION={0x5, 0x3, 0x5}, @TCA_EM_IPT_MATCH_NAME={0xb}]}}, @TCF_EM_U32={0x1c, 0x2, 0x0, 0x0, {{0x24c, 0x3, 0x7}, {0xff, 0xa0, 0xffff, 0x7f}}}, @TCF_EM_IPSET={0x10, 0x3, 0x0, 0x0, {{0x4eb, 0x8, 0x8}, {0xffffffffffffffff, 0x2}}}, @TCF_EM_IPSET={0x10, 0x1, 0x0, 0x0, {{0x310, 0x8, 0xc000}, {0x1, 0x6, 0x6}}}, @TCF_EM_META={0x54, 0x2, 0x0, 0x0, {{0x0, 0x4, 0x800}, [@TCA_EM_META_LVALUE={0x5, 0x2, [@TCF_META_TYPE_VAR="c1"]}, @TCA_EM_META_HDR={0xc, 0x1, {{0x2, 0x0, 0x2}, {0x7, 0x7}}}, @TCA_EM_META_RVALUE={0x13, 0x3, [@TCF_META_TYPE_VAR="6997c5", @TCF_META_TYPE_VAR="e6effd63e6aae97b", @TCF_META_TYPE_INT=0x2]}, @TCA_EM_META_RVALUE={0x1f, 0x3, [@TCF_META_TYPE_INT=0xa, @TCF_META_TYPE_VAR="bda62a364181644e9f", @TCF_META_TYPE_VAR="a1f4", @TCF_META_TYPE_INT=0x8, @TCF_META_TYPE_INT=0x2, @TCF_META_TYPE_INT=0x1]}]}}, @TCF_EM_NBYTE={0x18, 0x1, 0x0, 0x0, {{0x100, 0x2, 0x100}, {0x0, 0x6, 0x1, "2cfab132d347"}}}]}]}]}}]}, 0x26dc}, 0x1, 0x0, 0x0, 0x24000001}, 0x80) getsockopt$inet6_IPV6_XFRM_POLICY(r1, 0x29, 0x23, &(0x7f0000000140)={{{@in6=@remote, @in6=@empty, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, {{@in6=@loopback}, 0x0, @in6=@private0}}, &(0x7f0000000500)=0xe8) sendmsg$nl_route(r1, &(0x7f00000005c0)={&(0x7f0000000080)={0x10, 0x0, 0x0, 0x10}, 0xc, &(0x7f0000000580)={&(0x7f0000000540)=@dellinkprop={0x30, 0x6d, 0x300, 0x70bd26, 0x25dfdbfc, {0x0, 0x0, 0x0, r7, 0x20008, 0xc}, [@IFLA_EXT_MASK={0x8, 0x1d, 0x800}, @IFLA_GSO_MAX_SIZE={0x8, 0x29, 0xfb2a}]}, 0x30}, 0x1, 0x0, 0x0, 0x20040084}, 0x8000) r8 = openat$ipvs(0xffffffffffffff9c, &(0x7f00000000c0)='/proc/sys/net/ipv4/vs/sloppy_sctp\x00', 0x2, 0x0) ioctl$IMGETCOUNT(r8, 0x80044943, &(0x7f0000000100)) 02:15:59 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608b01, 0x7ffffe, 0x4002011, r1, 0x0) 02:16:00 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x38, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}]]}, 0x38}}, 0x0) 02:16:00 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x38, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params]}, 0x38}}, 0x0) 02:16:00 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608c00, 0x7ffffe, 0x4002011, r1, 0x0) 02:16:00 executing program 1: r0 = perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp, 0x0, 0x0, 0xffffffff, 0x0, 0x0, 0x2}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$sock_inet_udp_SIOCINQ(0xffffffffffffffff, 0x541b, &(0x7f0000000080)) perf_event_open(0x0, 0x0, 0x10, 0xffffffffffffffff, 0x9) unshare(0x8000400) r1 = mq_open(&(0x7f0000000000)='m$\x00', 0x6e93ebbbcc0884ee, 0x0, 0x0) perf_event_open(&(0x7f0000000180)={0x1000000002, 0x70, 0x0, 0x1, 0xfd, 0x7, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7fdd, 0x5, 0x0, 0x884a, 0x100000008200000, 0x0, 0x6, 0x400000000800000, 0xde9}, 0x0, 0xffffffff, 0xffffffffffffffff, 0x8) unshare(0x8000600) membarrier(0x20, 0x0) bpf$BPF_BTF_LOAD(0x12, &(0x7f0000000200)={&(0x7f00000007c0)=ANY=[@ANYRES16], &(0x7f0000000500)=""/226, 0x34, 0xe2, 0x1}, 0x20) syz_open_procfs$namespace(0xffffffffffffffff, &(0x7f0000000040)='ns/pid_for_children\x00') setns(0xffffffffffffffff, 0x0) clone(0x0, &(0x7f0000001d40)="01ca0c6de207244a498b50c776267d2177371775dcbc8d5bd9aebc9ec5672e0cb9e069bd7015a7d7aafeae9791ca6390c1edd5f03dd3e0109b252b1366dd13c3e7f2aa337ee0eef81ea925dcce984b270f670ffb7f61fa8b40c695a425d2b478bce904727b4bbc03dcf7f6a25fe2be65b51992938418fbf5", &(0x7f0000000280), &(0x7f0000001d00), &(0x7f0000000500)) r2 = mq_open(&(0x7f00000002c0)='\\\xf7\xa0\xcc\x16H-o\x0073\xb3\x1a\x8eiz\xdd06P\xd4\x88\x00s\xefu\xdfa\x01y\xde\xc26\xaa\x04\xe9F\x87y\xba\a\x00\x00\x00\x00\x00\x00\x005\x98U\xb4\x9b\x88\x9b\xb5\xe4\x9b5\x8ey:oz\xf5\'f\xd6\xfe\x93\xca\x06r\xac\x1b\x8a\x87\xcafw\xd5\"\x0f\xb7|\xb6\x13\xb3\xdb\x91\x04\xd1j\xa1\xcal\xc7jt\xe7\xbdK\xdcR&u{\x03\xf8[\x01\x03$Wl@\xc1\xc8e\\s\x9f\xc1\xa6\x8d\xf5\xe2\xbc\xb6\xe5\xedF\xc8(\x9eH\xeau\xe7\x85\xeb]d\x97\xcd#;\x10\xb9\x182\xcf^1v|\x1cA\x9dFF\xcd\x88?%', 0x841, 0x0, 0x0) preadv(0xffffffffffffffff, &(0x7f0000001c80)=[{&(0x7f0000000840)=""/81, 0x51}, {&(0x7f00000008c0)=""/4096, 0x1000}, {&(0x7f0000000640)=""/34, 0x22}, {&(0x7f00000018c0)=""/62, 0x3e}, {&(0x7f0000001900)=""/192, 0xc0}, {&(0x7f00000019c0)=""/232, 0xe8}, {&(0x7f0000001ac0)=""/206, 0xce}, {&(0x7f0000001bc0)=""/149, 0x95}], 0x8, 0x7, 0x0) ioctl$KVM_ENABLE_CAP_CPU(0xffffffffffffffff, 0x4068aea3, &(0x7f0000000400)={0x7b, 0x0, [0x4, 0x0, 0x400000000000000, 0x5]}) mq_getsetattr(r1, &(0x7f0000000240)={0x0, 0x3, 0x6, 0x2}, &(0x7f0000000600)) clone(0x400, &(0x7f0000000680)="6afe53065f5920a6d2fffa9686ec6717015b9da2a40ecc8ee0c91b96c55c707cb4dd955f1a8f6d4938455579be2d8763db2e0a288822406687a2e8d3ce7c1df0589e62b94b015b1c6a1997cbc12e7f38d7a86939417e0e0857b983d3bb17", &(0x7f00000000c0), &(0x7f0000000700), &(0x7f0000000740)="846c717f9b93ee6c4bf331d154dd359341f1847847e63caff049cc255302d837824334d16474ad8991309430f00ddfd82778767d2bc39e0b793d07bf0235cf85182b24460c591cf31c4797afa76fcc8d03ee998fd17eb07eeb5cf30d353eb08f3e1d3fbf5d487e84aa6a432c37b19c10cef229ede349b26e7d4760") clone(0x7ffe, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) dup(r0) mq_getsetattr(r2, &(0x7f00000004c0)={0x800, 0x3fe, 0x101, 0x2}, 0x0) 02:16:00 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x38, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params]}, 0x38}}, 0x0) 02:16:00 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608c01, 0x7ffffe, 0x4002011, r1, 0x0) 02:16:00 executing program 3: perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41bf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) unshare(0x20000) ioctl$TIOCGSID(0xffffffffffffffff, 0x5429, &(0x7f0000000040)) fork() ioctl$sock_FIOGETOWN(0xffffffffffffffff, 0x8903, &(0x7f0000000080)=0x0) r1 = syz_open_procfs$namespace(r0, &(0x7f0000000000)='ns/mnt\x00') r2 = syz_open_procfs(0x0, &(0x7f0000000240)='clear_refs\x00') writev(r2, &(0x7f0000000440)=[{&(0x7f0000000180)='1', 0x1}], 0x1) syz_kvm_setup_cpu$x86(r2, 0xffffffffffffffff, &(0x7f00005e8000/0x18000)=nil, &(0x7f0000000140)=[@text32={0x20, 0x0}], 0x1, 0x0, &(0x7f0000000200), 0x0) setns(r2, 0x80) setns(r1, 0x0) fcntl$lock(0xffffffffffffffff, 0x6, &(0x7f0000000280)={0x1, 0x4, 0x20, 0xe82}) 02:16:00 executing program 4: r0 = signalfd4(0xffffffffffffffff, &(0x7f0000000080)={[0x4]}, 0x8, 0x80800) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f00000000c0)={'geneve0\x00'}) sendmsg$nl_route(r0, &(0x7f00000002c0)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x20000}, 0xc, &(0x7f0000000280)={&(0x7f0000000200)=@mpls_delroute={0x6c, 0x19, 0x8, 0x70bd2b, 0x25dfdbfd, {0x1c, 0x80, 0x14, 0x74, 0xfe, 0x3, 0x0, 0x8, 0x2800}, [@RTA_TTL_PROPAGATE={0x5, 0x1a, 0x19}, @RTA_TTL_PROPAGATE={0x5, 0x1a, 0x7}, @RTA_VIA={0x14, 0x12, {0x29, "cae4b8a841bd1ac6f3ff614328d2"}}, @RTA_OIF={0x8}, @RTA_VIA={0x14, 0x12, {0x23, "fbfb50aefb2eaf8585f6ea003961"}}, @RTA_OIF={0x8}, @RTA_TTL_PROPAGATE={0x5, 0x1a, 0x4}]}, 0x6c}, 0x1, 0x0, 0x0, 0x24000015}, 0x8051) r1 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r2 = socket(0x2, 0x803, 0xff) ioctl$sock_ipv6_tunnel_SIOCGET6RD(r0, 0x89f8, &(0x7f0000000300)={'ip6tnl0\x00', &(0x7f0000000180)={'ip6tnl0\x00', 0x0, 0x29, 0xf0, 0xad, 0x283, 0x10, @mcast2, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', 0x700, 0x7, 0x4, 0x5}}) sendmsg$nl_route_sched(r1, &(0x7f00000003c0)={&(0x7f0000000140)={0x10, 0x0, 0x0, 0x1}, 0xc, &(0x7f0000000380)={&(0x7f0000000340)=@deltfilter={0x2c, 0x2d, 0x0, 0x70bd29, 0x25dfdbfc, {0x0, 0x0, 0x0, r3, {0x8, 0xfff2}, {0xfff2, 0x3}, {0xc, 0xe}}, [@TCA_RATE={0x6, 0x5, {0x3, 0x9}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x40000}, 0x4008851) connect$inet(r2, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r4 = dup(r2) sendfile(r4, r1, 0x0, 0x4000000000000081) 02:16:00 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x38, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params]}, 0x38}}, 0x0) 02:16:00 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608d00, 0x7ffffe, 0x4002011, r1, 0x0) 02:16:00 executing program 5: mkdir(&(0x7f00000004c0)='./file0\x00', 0x0) syz_mount_image$reiserfs(0x0, &(0x7f0000000080)='./file1\x00', 0x0, 0x0, 0x0, 0x0, 0x0) getsockopt$sock_cred(0xffffffffffffffff, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r0) mount$overlay(0x0, &(0x7f0000000840)='./file0\x00', &(0x7f0000000880), 0x100000, &(0x7f0000000ac0)={[{@nfs_export_off}, {@index_off}, {@nfs_export_off}, {@nfs_export_on}, {@xino_off}, {@lowerdir={'lowerdir', 0x3d, './file1'}}, {@redirect_dir={'redirect_dir', 0x3d, './file1'}}], [{@fowner_eq={'fowner', 0x3d, 0xffffffffffffffff}}, {@smackfsroot={'smackfsroot', 0x3d, '\xa5+{/}-%'}}, {@uid_lt={'uid<', 0xffffffffffffffff}}, {@fowner_gt={'fowner>', 0xee01}}, {@obj_user={'obj_user', 0x3d, 'obj_role'}}, {@appraise}, {@mask={'mask', 0x3d, 'MAY_EXEC'}}, {@euid_eq={'euid', 0x3d, r0}}, {@obj_type={'obj_type', 0x3d, 'upperdir'}}, {@fsname={'fsname', 0x3d, '@\''}}]}) openat$cgroup_ro(0xffffffffffffffff, &(0x7f0000000540)='rdma.current\x00', 0x0, 0x0) perf_event_open(&(0x7f0000000180)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x20100}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) setxattr$system_posix_acl(&(0x7f0000000580)='./file1\x00', &(0x7f00000005c0)='system.posix_acl_default\x00', &(0x7f0000000c40)=ANY=[@ANYBLOB="02000000010000000000000002000000", @ANYRES32=0x0, @ANYBLOB="02000000", @ANYRES32=0x0, @ANYBLOB="040000000000040008000000", @ANYRES32=0x0, @ANYBLOB='\b\x00\x00\x00', @ANYRES32=0x0, @ANYBLOB='\b\x00\x00\x00', @ANYRES32=0x0, @ANYBLOB='\b\x00\x00\x00', @ANYRES32=0x0, @ANYBLOB='\b\x00\x00\x00', @ANYRES32=0x0, @ANYBLOB="100000000000000020"], 0x5c, 0x0) r1 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r1, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r2) r3 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r3, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r4) syz_mount_image$iso9660(&(0x7f0000000680), &(0x7f00000006c0)='./file0\x00', 0x20, 0x1, &(0x7f0000000800)=[{&(0x7f0000000700)="d3701c5af85c303a4d1664c52182427d1169fd88e98ee55b29a557851571fa7c9488efb2054a6590d239096c4a769327ac3ce38178f1a4c664ea9a8d732ba9d8af39e114ab1e945b541427d677a6e96a74fc1ee27c6bef3c688ccb17694b5dc39e3e8c00b5f9fa273f6ca31243f4c7a8867e33775c1e3d25d327e3be09603a155c7b8999b63fc5780eb0586b20a7165d65005d5ee9f180ca746329a43d975336be7bbad83e94e5e686c31d245d2741f7cf9adb1cd5dfbce1e50beac52aefd3864d8dec31fc850b6e763c855a66e17e9cb180e91bff80e64fdfe47e7ca81b79f37d0d8a68d13621", 0xe7, 0x1}], 0x8, &(0x7f0000000980)=ANY=[@ANYBLOB='check=relaxed,norock,utf8,check=relaxed,mode=0x0000000000000009,fowner<', @ANYRESDEC=r2, @ANYBLOB=',fowner>', @ANYRESDEC=r4, @ANYBLOB="2c736d61636b66837472616e736d7574653d2c6f626a5f757365723d687567653d6164766973652c6f626a5f726f6c653d6367726f757032002c657569643e4e67e6002540a1615f53c62f07da2595bacae4be3ffa57d39b112c2cdf6c19c228582f3842cd96880e8d8a455275ea56561edda982b577e8ac3c", @ANYRESDEC, @ANYBLOB=',hash,\x00']) r5 = openat$dlm_control(0xffffffffffffff9c, &(0x7f0000000500), 0x208021, 0x0) perf_event_open(&(0x7f0000000600)={0x5, 0x80, 0x3f, 0x5, 0x20, 0x2, 0x0, 0x7, 0x10000, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x7ff, 0x4, @perf_bp={&(0x7f00000000c0), 0x8}, 0x0, 0x1ff, 0xfff, 0x5, 0xfffffffffffffffc, 0x4, 0x1, 0x0, 0x7, 0x0, 0xb48d}, 0xffffffffffffffff, 0x10, r5, 0xe) syz_mount_image$tmpfs(&(0x7f0000000040), &(0x7f0000000140)='./file1\x00', 0xffff, 0x2, &(0x7f0000000200)=[{&(0x7f0000000cc0)="b3cf42204c406be83179d796d7011bef78a05a99b2ac9cc19a71bd112bfdd0374b80fb697c87110fa52d5ca82d897663ab3fbd73390e81f44b5e6dde5785d76e09853b4aef04ba63d7ddc72f4201fb672c372ca9fb786b4b741913ca84d8976fe58fc2eed3d60306e74346e416511599131d7e996a0f612f2ada754612aed601ae9ae004e50c49a87c710f921d907103d24f870645e1a127fa994140f34c555c43d4bb54615b819c18ef897efcf66f75345c6dd70c713684f951f3e5f209e6e5323a61519679afd2d267312615f3b91810409a30db794202d8d27dabde3405027c3cca0c1c9e2847ad95f99a0d4e83f670d6962d30569b2f76f9ddd60eb489921b4b9e006d6f48a14b91a3a38026d47614cbe65ad9f2f0856cc128ebf55001bb31b43b67d1df655cf0d04cb949116071f4c71185fa0a7b7472093642f184e516a6c80a903d4e808956060e60f29693d5161f47c5ed3c6361ff00531b1e33ecf7a32158ee8de39880031b5d4b6169893889bb3f13c7044f2e5a8e2542b50189cd9aa2e21266bfb09397bf4456a46644359c92c53008ef34d74394dd65186498aebf10b22a7f2e9b598b6ea330e63426a02a0bc5ec9d3b0d80c654033c3c0e234fb690d687ae12cf569624fe6de944546dd8b66ffc5e92ad1ec326bcc25dcde3d17269fab2a8d6c3f96cdf34b0c6acfbff952aea938388064de8864256a8560f0315be891578649cb422c31669401ec0babf5ab2ad5ea5e88f58b93b7035c487acedbf5210c2bd38b18f751bbb3c479a5572ed28ca59e6cc76cbb409fe98061ec1fdf40f104db86517b7f82143c54d8fb292911d47795c9bd18e50b5f0569f8246a558409405582595dad6972b1d39226597fdbb0a9b2aa532f1c12c884931a1d4b88525bb9bd814f55bb63653cb2c65340d58161c20e7b4fcf2059d9bdb7cd44dbbd7dcb534c2520cb40bc41f6713ccc4e5ebb9ada2ea7a10739f3927097ea40c30edfa98c2a041f5c30d381a8d52a8376c342a40971041fa310c6b111cbf450208b9ba5509a83a2a90d2b8d953ced1b521f970409349febd93ad1f27fd1c083fd3507f4bef04251e3c71053e4d17cc436082969687afe8950516a909732703f3f420ab49270d77baf78adf5164eedc98ed88ef2e8a04c011830c20f9ef424916923cf94569812e790cc44e164d1bfc8f9894213f67e9e7dc1094cf2ff84fe0abfd30918ab6c1fde76232f435162a1696118cb21986f6de915603c28d7b1ef55319d2648ce9018795033d7b769aa9a3959cca0a1fc6164d87fe91f928d7b1430bfd17e9546aa1710a02006590326f52ea6d039cc9f19724510c0826e352530a6fe63dda47913b6a7d2bd1ea9b9192b62dc76f01c29c12cf9c83e950ed1c172042d94f47900047a4d9b975620f7760f5e194cee9c3443e807dbf6d38d03eeb7c91c5d324ef6e2fa38a2c37de055c24bd334a983d1d87fc84ec7240ad414d716682d4370a45a857067eba0483924dc794dca9641d0adbd52c3ae0b44d3c1e48bf4e01e83b98054dfe2cf0b8bde6a5eb41de417ccf7dce6fce16004e1bf76d5c1f114e21a99aa3039d099f27fe104db809a005b0deef309f5156a09da329fa9dd70456649c75d6bfa86d0672befed416746741419dbe73b678524a0c3c147cb96ba189abdb58d72c2d04801fd5be766763d59c1b5f63b00672ff5bb8f1bb2fb4b5f743ad97a222162cff28a434441c75b8a26da1477672366e5b3f585933cd32676fb2ec2a9c9bb1072a53b93c1b1a814c2d9bef6b6778b44396de57113e8b4badb0b971831e85964a3588838c9fe40bb0627c7f80c6d9e8401629655fe8830030ed20453100bdc9f148faab5a3a94f5a8d3b7fe78a155ea52378a2515a05293c99d9564b926b215ffbc0d998da00bf0fee0487128cfe1030b92da10e0ba02ae2a152fc1c8be81f38e0b87058d680e39a08094e4b7314a8c99a31f4930713751abfec1b1f906fda85948e07fee0818d635c48d4692267996d02c79276bad411d2c06a33b870640a12f841699228a2f79490335abea4241bf083e994f4fcd0e571261052ea61525adedd4324fee07e5464bc783f5c61d9900a78302ea31af6212c9d275d22e3177f9cc7199bacff4dd70c8033abd0cf0b2e83806bc4ce214cd5d8c49458443d609e9bf469743e744addd351ab3563a75b5a9e8573daf67dff2ef7b96a057c7110243666ce71401f07a3a2df75c2107ce128c6674314a997752b4388222fe8f78e8f9c30baced348d0047755e6b7f28fd653392be2a456acc8c8782c4b36c6196fe858d37c9b8153cdfbfe175ad6cde50bb06e0014c3546dada75bc74b89e296088500b53a7a3dc7e39cc2d5562debbd5dc2ae23afc2ebc0d51d82537adc8de987378c3c1e4360e119982fc6e8373b855760fb830d3319090e64f8b9724df468e46dec9a865975f9c8518f71812e41ed6b576048d72d679e8a5bc4ba12b206a9ddc416eaef5c0e905c5d67a0a141290a1e7f04b167dd6ce4bae481152ae1516e31de0ecb826910b587c30322964a4e7f4dc7be91bfe88fe17f863d578c84bf95d8be2a910fb71f38355ab91e838e8cd3947709fa5c44148ce23e2a9e0e486bda27f1ab7b92e6e66b3f89ee1d3728e66072d2c90a163be2cbfd8aef72ecfef9dad93af681b42b7e44fd83ceafe4334333a7f3f9bb69d29a0993c0fad01badf6c9c19ac4fdbaca770dbd082497372303f7f4ada879678bd432e110369c3b91b056eeadbe6f0d48acec7fe4fb86da8d597bf9b7f0b9dd1c5f111bfc3972b2f4c323a49041b4035609a9fc986d01f7cdc10911bdf81e8f1960996ed3016b8c90ceb1b7e0ebfe40d61df91bfda81d8e7be47e434ad6de7d6606e2a23f2dd1e459b19d143177462afa060fec5f74b47fd995757a3251f8508755e1aaf8e9238570aba0da1ca501b6aed8fe45e442a596e8e68925d3365abfa2c2156961e7e07ba6619453313e238609436253eebe6e49df077708bb82173061083331085e72657b5646ff0ed7327e54b02d99d0ec9ab850a6453577c06a5cba997d73e53d38a560b45357ee5ab83ca9e1a1bd36a070922c2ad7f287f218125451ec28f08046c7202a928780de63484ac4a44758761d542e1186aa17d9a11353f575b4f80136cda096c964429b6d555e701d0d1a13845980e9ced41290567757c3b741585fb88bea63c99e12732298cce1443621b85789784e1c7466149bc13c96f3069e4122ea1c656ba5df76e521de47207ac1f616191fef08fe0fb4748944030464e508f702644289e366ccd851d6711e332a6a7a41c76e16f83a558c2f2e3d535a1aae65679d92c45d4cbe25a6ce331e62d1028921a4b0800357e2a600e2fe0e46e503e94f9b3d49450777147041268ff6442ae4cca3faa41ebd90872b0e463fb3d728791f67e67f035008c0117be2dec83d03b0b7323458da61d8b70c4126d3dfd7d4aeb90df652c99e03950ef8cf8166070db76fad80ad65509af49f2b06c23f26db631c4e08fac1a0999dcc81a8e2f97397f57a10e44ebd5e0df54fef6803ddf7ea2f32404aab59a9004b20ee5570cf75ef96db8fd25867369beabe7d0fc2546ccde3f949df2cba32c511d46e2916e7f2252bb043886f23a689540170ef532cb444b90adc4383994fc3b7ca82fe0facd1f6f0b4d37d5447db855be1b27feff14485f70b008925f7e438a6524d17594102382ce15c0be60f342b3b8bbdb0e55d90a2f6e2e331c4b17aae1da006f2ea5dbba973b2e510b77ba6ffd79bc622c188ef67a0656854c4c0b3bf5735f3fc8c13f67cbf61f5f11c5239bac872e3815c40a02d7f6728c6978a18956ec04fb38ab29e461e8db0850f0e5bb53406073bf099c4797332c5f48fbc4c8309595f58a0a32bb183b3b2933e72820af64865ff2cc826bc4d562e643c2d18163aaf3181254a8e687c5b6d283d335bb112af72ca7e614fbca6b7062269e945a9e4258321472ada7a12121ad0894493d3d875d9e3de0ee928f2dc570cfcb1bf13deb2719dfc7d3048ae39e4ab17a639a63b0f8e4a3f580c8a72db289d0b76bb0e2e18d2f6a611a9ac1f7f591d0d8c0c7ff9e2f9301de78225224946c7b1b586295d19c2ee3ba753a6cc06c1fc3fd465ef2751a31b67cf56a2bbe8057ef42e387f51be1ce465ebe359a977d38f4d0f264fee75734756a6b25be45d04ba5e59105f5186b5f1f42d43395f1417a8c9ef6cbe9651be4dfa6fc67795b9caf9da06856025852c972244b4b936273d6a034d5cd3ae079f8f0c77dba4c0fb9a21968e8b522c623b44b769dbe7637f9a774eadf5df128bd605610d1f2d117a41bfe1db36f0b01b6f0430757f072c4447a397ba844a491f3c55506df63d86601b159229de21a06a2ebcdd51a6ee9303b095ca5abfb453be1a757be4575f8afe849004b0a684c71964ff19b537936602bd8104321295bc9b18955b02df9da5594e85d730512e54680c0028001cbdd565d1a5eb584eda2ace09260aeffc0cb1985a55958f982da9ba4fa2b839b657678f5569b6cfa39461042dfcd5ba71ea64ba00f9772137dc923b9ccc9858deef3d3058eac982844beb1f479b5f94d03a1c3255ec6a449d8a5e9d4498abb6094a3a7aca826571065d0bebb7fe1011ac651eae7bf23ac6fca40992042ba2f2f49b06c6fca683d03943c50ff3878567874b4e9c4632015733549f623f50c7ff433daad1ff40be3d907af6c7476f9df4fee249f238d75fd44d9d939867ed088c2f89e148f349882434c47a16595b75040df444c177fcb2d260fa63854f3fbffa5cd3aae816c1c35071c92449d3e3605971ee5a7c25277a59ec06cb4fbc6fb0258ce1afb029c7ca7b1439942e4bda1f01390f8a2c62ce579a6c1d8c9c6bf5933b389a46a64361fbcf25c33d37f48efac4c43932802c50e061ddc1ad33fad40e8f568159bdd70e7583a131bf9b7baab42a7df13873f81aa04fbbd155adfd7342a33b9c40ee3e95c0d023b4dc01b8ac67f268c5224fe9cea0ade0580b18c02dea037b55dcf22dc9015106eb298ce95ac2555ed8e80b814b0f942f9ada7b01e7a4d890e66f563510216e05d9b64da039c08e76d8f775cbd95733adb5f0136e79a452ae3519776c4c14aca7eba523177454d420f0858b7a99c803865136b55b10b540fb7173ef48b69ab8a17386398aa03cdf177e4dfca7f8acfa4131d4934e0458df609e22921fcce1fea42515f7951cddb6531351cad5cbf198acc493c2eb292bb5ffdc033ab22d19175ecfdb9711d7d9fa9ab398db364822a253fcec92370e3432683a4be0113092f3079a5cc5c945d6ee2d0beaa833be4ed6a20599bbab93aad0d843670a29d362ef19d6af6ed408633eaffd349b33c41568fddd6f2ba470e62e49c04477a9a09e4442415c3915a5d85bfdd00fedeba4ea492da916b65971b3a1448c1940f64add83e00aba1216517c8512bd18c5429f54bef86466fae65befd9c8b153b1f8314a6d90a991a8118e8b50b7cce3857997130150b18da94eba67596f37b77221fe6a01574b512a3cd0784c9c3a0dba114a0dde1d30d5c59a42af801cc2404d4d66363d6537f92c02ec0957c1aa906b697f912f8c37bd8dd49da8fd40345c45045df0266d16eaed1e503d39ba449d7b27750f8a11b2451ad6d1c236ce45abaf9d0998a46b8836b0759767a610b2a671178b9a7ef9c2da1925896b63dfdcbc14600e2963004633d585baa4d3d0626fc9c8717ddf0c96730b5477439bd8f6a3780d3f934b3c2b1563baaf35aa577c507", 0x1000, 0x8}, {&(0x7f0000000280)="5570d14353eed479de6ec61389b7add3482511d9c21927d00015b969a895545b8a78558f4b81153ab575b036f8863c4662f974e4e589eeaf13d8098ef2ab5abb261d5fb8206a694cf114e7ae829fc8a4e6704111fb632573348cd3192999c21c66301e1a919230b9042ca42b803a7c38e85ff6ad1165904481c16a4a9e3e3655b6795a73eb79cdb21fcb78e2c491b216ad4f23971c9edc5bfc6eedc61768793dc360dd3a128bb2e23e631c22da0fd97ebdfcb13b0e9a51c4243a849f3e9d6401b84c4de66d8444354c63df97a3e941fca7f35f34fbe77219791e061a6d62794091efeb17094bfe39d21f6e198dc9ee83d84d33e61de5f61c", 0xf8, 0x1}], 0x0, &(0x7f0000000380)={[{@uid={'uid', 0x3d, 0xee00}}, {@huge_always}, {@huge_within_size}, {@huge_advise}, {@huge_within_size}, {@huge_always}], [{@dont_appraise}, {@appraise}, {@fowner_lt={'fowner<', 0xffffffffffffffff}}, {@mask={'mask', 0x3d, '^MAY_READ'}}, {@subj_type={'subj_type', 0x3d, '\x9e&%-!(,$'}}, {@smackfstransmute={'smackfstransmute', 0x3d, 'upperdir'}}, {@obj_user={'obj_user', 0x3d, '-\x17])'}}, {@obj_role={'obj_role', 0x3d, 'cgroup2\x00'}}]}) mount$overlay(0x40000d, &(0x7f0000000000)='./file0\x00', &(0x7f0000000480), 0x0, &(0x7f0000000100)={[{@upperdir={'upperdir', 0x3d, './file0'}}, {@lowerdir={'lowerdir', 0x3d, './file0'}}, {@workdir={'workdir', 0x3d, './file1'}, 0x5c}], [], 0xf603000000000000}) mount(0x0, &(0x7f0000000180)='./file0\x00', &(0x7f0000000240)='cgroup2\x00', 0x0, 0x0) 02:16:00 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x40, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0x9b2}, @NL80211_ATTR_CHANNEL_WIDTH={0x8, 0x9f, 0x5}], @chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random}]]}, 0x40}}, 0x0) 02:16:00 executing program 1: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f00000005c0)={&(0x7f0000000500)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f0000000580)={&(0x7f0000000540)=@bridge_getvlan={0x38, 0x72, 0x100, 0x70bd26, 0x25dfdbfe, {}, [@BRIDGE_VLANDB_DUMP_FLAGS={0x8, 0x1, 0x1}, @BRIDGE_VLANDB_DUMP_FLAGS={0x8}, @BRIDGE_VLANDB_DUMP_FLAGS={0x8, 0x1, 0x1}, @BRIDGE_VLANDB_DUMP_FLAGS={0x8}]}, 0x38}, 0x1, 0x0, 0x0, 0x44}, 0x10) r1 = socket$alg(0x26, 0x5, 0x0) ioctl$sock_bt_bnep_BNEPCONNADD(0xffffffffffffffff, 0x400442c8, &(0x7f0000000040)={r1, 0xb9, 0x9, "d9a8eacc2854dd451789fc7fc31df9f04ab2e78ec61add7e676b141ff405f1f583acc8f9b05d6cdf98136982196ceb3d614369aa82b493d36c90ee284fdabf736def4d476e14258ce0c59d53d326da064ec5622e6387a339b13f1c5c93d5a6f5e8ed011d66af74b98512f6974d50f2eb37ae708a0ba9a5e0350d756677ca4f"}) ioctl$sock_SIOCGIFINDEX(r0, 0x8933, &(0x7f0000000000)={'wg2\x00', 0x0}) r3 = creat(&(0x7f0000000280)='./file0\x00', 0x3) close(r3) r4 = creat(&(0x7f00000000c0)='./file0\x00', 0x0) write$binfmt_script(r4, &(0x7f00000002c0)=ANY=[@ANYBLOB="230275964c0e4d1a14750ded544f96c8b5b62d6092608636c7d825b43245e955b642d9a3f1b2c95d8a3b1c3da597a1000195914376666e92611fe2862102f15763419c960358"], 0x141) close(r4) r5 = creat(&(0x7f00000000c0)='./file0\x00', 0x0) write$binfmt_script(r5, &(0x7f00000002c0)=ANY=[@ANYBLOB="230275964c0e4d1a14750ded544f96c8b5b62d6092608636c7d825b43245e955b642d9a3f1b2c95d8a3b0a3da597a1000195914376666e92611fe2862102f15763419c960358"], 0x141) close(r5) sendmsg$nl_route(r4, &(0x7f0000000740)={&(0x7f0000000600)={0x10, 0x0, 0x0, 0x30220080}, 0xc, &(0x7f0000000700)={&(0x7f0000000640)=@bridge_getlink={0x90, 0x12, 0x300, 0x70bd2c, 0x25dfdbfc, {0x7, 0x0, 0x0, r2, 0x45310, 0x5}, [@IFLA_NET_NS_FD={0x8, 0x1c, r5}, @IFLA_GSO_MAX_SEGS={0x8, 0x28, 0x8eae}, @IFLA_TXQLEN={0x8, 0xd, 0x5}, @IFLA_IFALIASn={0x4}, @IFLA_PORT_SELF={0x54, 0x19, 0x0, 0x1, [@IFLA_PORT_INSTANCE_UUID={0x14, 0x4, "3b9a26bb35c73ccaa5fdac8205013c6d"}, @IFLA_PORT_REQUEST={0x5, 0x6, 0x1}, @IFLA_PORT_REQUEST={0x5, 0x6, 0x53}, @IFLA_PORT_INSTANCE_UUID={0x14, 0x4, "dac1056daa5d82e0e62d9df0dd05b5a8"}, @IFLA_PORT_REQUEST={0x5, 0x6, 0x5}, @IFLA_PORT_VF={0x8, 0x1, 0xffff}, @IFLA_PORT_PROFILE={0x8, 0x2, '\'-,\x00'}]}]}, 0x90}, 0x1, 0x0, 0x0, 0x840}, 0x20000841) sendmsg$nl_route(0xffffffffffffffff, &(0x7f00000004c0)={&(0x7f0000000340)={0x10, 0x0, 0x0, 0x40000000}, 0xc, &(0x7f0000000480)={&(0x7f0000000880)=ANY=[@ANYBLOB="cc0000001e00000127bd7000fcdbdf2507000000", @ANYRES32=0x0, @ANYBLOB="810100001000040090003480140035006272696467655f736c6176655f30000014003500776731000000000000000000000000001400350076657468315f766c616e0000000000001400350064756d6d7930000000000000000000001400350076657468305f766c616e000000000000140035006261746164765f736c6176655f310000140035007465616d30000000000000000000000008000a00", @ANYRES32=r2, @ANYBLOB="1400140069fc5b784cbff7ea587b7a4a482cde70ffee09a2dbbc384cddfaea49a0f71fb9edbec54a5ecab6fa4d2c9372fd23b8a9fdf68b8c7815631d6e476ff2e4a52a18790c1e66"], 0xcc}, 0x1, 0x0, 0x0, 0x84}, 0x0) r6 = socket$nl_xfrm(0x10, 0x3, 0x6) bind$netlink(r6, &(0x7f0000000080)={0x10, 0x0, 0x0, 0x1}, 0xc) ioctl$FS_IOC_FSGETXATTR(r6, 0x801c581f, &(0x7f0000000780)={0xc, 0x6, 0x80000001, 0x4}) sendmsg$MPTCP_PM_CMD_ADD_ADDR(r3, &(0x7f0000000300)={&(0x7f0000000180)={0x10, 0x0, 0x0, 0x8}, 0xc, &(0x7f00000002c0)={&(0x7f00000007c0)={0x98, 0x0, 0x800, 0x70bd25, 0x25dfdbfe, {}, [@MPTCP_PM_ATTR_ADDR={0x2c, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_PORT={0x6, 0x5, 0x4e20}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0xa}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x5}, @MPTCP_PM_ADDR_ATTR_ADDR4={0x8, 0x3, @broadcast}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0xf}]}, @MPTCP_PM_ATTR_ADDR={0x4}, @MPTCP_PM_ATTR_ADDR={0xc, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR4={0x8, 0x3, @rand_addr=0x64010101}]}, @MPTCP_PM_ATTR_ADDR={0x24, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR4={0x8, 0x3, @rand_addr=0x64010101}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0xa}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_SUBFLOWS={0x8, 0x3, 0x5}, @MPTCP_PM_ATTR_ADDR={0xc, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_PORT={0x6, 0x5, 0x4e21}]}, @MPTCP_PM_ATTR_SUBFLOWS={0x8, 0x3, 0x5}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8, 0x2, 0x7}]}, 0x98}, 0x1, 0x0, 0x0, 0x40000050}, 0x4000840) sendmsg$nl_route(r0, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000001140)={&(0x7f0000000100)=@newlink={0x5c, 0x10, 0x503, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x34, 0x12, 0x0, 0x1, @macvlan={{0xc}, {0x24, 0x2, 0x0, 0x1, [@IFLA_MACVLAN_MODE={0x8, 0x1, 0x10}, @IFLA_MACVLAN_MACADDR_DATA={0x10, 0x5, 0x0, 0x1, [{0xa, 0x4, @dev}]}, @IFLA_MACVLAN_MACADDR_MODE={0x8, 0x3, 0x3}]}}}, @IFLA_LINK={0x8, 0x5, r2}]}, 0x5c}}, 0x0) 02:16:00 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608d01, 0x7ffffe, 0x4002011, r1, 0x0) 02:16:00 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x30, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random}]]}, 0x30}}, 0x0) 02:16:00 executing program 5: mkdir(&(0x7f0000000400)='./file0\x00', 0x0) mkdir(&(0x7f0000000240)='./file1\x00', 0x104) mount(0x0, &(0x7f0000000140)='./file0\x00', &(0x7f0000000000)='configfs\x00', 0x0, 0x0) mount$overlay(0x0, &(0x7f0000000200)='./file0\x00', &(0x7f00000000c0), 0x0, &(0x7f0000000480)=ANY=[@ANYBLOB='lowerdir=.:file0']) mkdir(&(0x7f00000002c0)='./file1\x00', 0x0) creat(&(0x7f0000000180)='./bus/file0\x00', 0x0) mount$9p_rdma(&(0x7f0000000300), &(0x7f0000000340)='./file2\x00', &(0x7f0000000380), 0xe34d707cb5ba1bd2, &(0x7f00000004c0)={'trans=rdma,', {'port', 0x3d, 0x4e21}, 0x2c, {[{@sq={'sq', 0x3d, 0x7ff}}], [{@permit_directio}, {@dont_measure}, {@measure}, {@pcr={'pcr', 0x3d, 0x3b}}, {@fowner_lt={'fowner<', 0xee01}}, {@func={'func', 0x3d, 'FIRMWARE_CHECK'}}, {@euid_eq={'euid', 0x3d, 0xffffffffffffffff}}]}}) mount$overlay(0x0, &(0x7f0000000040)='./bus\x00', &(0x7f0000000080), 0x0, &(0x7f0000000280)=ANY=[@ANYBLOB='upperdir=./bus,workdir=./file1,lowerdir=./file0']) r0 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x180000c, 0x11, r0, 0x97f73000) preadv(r0, &(0x7f0000000280), 0x18, 0xd9f, 0x0) syz_mount_image$tmpfs(0x0, 0x0, 0x0, 0x0, 0x0, 0x80000, 0x0) chdir(&(0x7f00000001c0)='./bus\x00') rename(&(0x7f0000000100)='./bus/file0\x00', &(0x7f0000000440)='./file0\x00') 02:16:01 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x28, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params]}, 0x28}}, 0x0) 02:16:01 executing program 1: bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000480)={0x11, 0x3, &(0x7f0000000240)=ANY=[@ANYBLOB="18000000000063a500000000020000009500000000"], &(0x7f0000000280)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) pipe(&(0x7f0000000000)) unshare(0x40000600) socket$inet6_sctp(0xa, 0x5, 0x84) ioctl$BTRFS_IOC_INO_LOOKUP_USER(0xffffffffffffffff, 0xd000943e, 0x0) 02:16:01 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x28, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params]}, 0x28}}, 0x0) 02:16:01 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x1f, 0x1, 0xff) ioctl$F2FS_IOC_RESERVE_COMPRESS_BLOCKS(r1, 0x8008f513, &(0x7f0000000080)) ioctl$PPPIOCSCOMPRESS(r0, 0x4010744d) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = dup(r1) r3 = bpf$BPF_PROG_WITH_BTFID_LOAD(0x5, &(0x7f0000000240)=@bpf_ext={0x1c, 0x5, &(0x7f00000000c0)=@framed={{0x18, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x6}, [@alu={0x7, 0x0, 0x1, 0x0, 0x7, 0x0, 0xbf38b3829466395b}, @generic={0x5, 0x1, 0xa, 0x9, 0x40}]}, &(0x7f0000000100)='syzkaller\x00', 0x8000, 0x54, &(0x7f0000000140)=""/84, 0x40f00, 0x1, '\x00', 0x0, 0x0, r0, 0x8, &(0x7f00000001c0)={0x4, 0x5}, 0x8, 0x10, &(0x7f0000000200)={0x0, 0xa, 0x8, 0x9}, 0x10, 0x9be8, r0}, 0x78) fcntl$F_GET_FILE_RW_HINT(r3, 0x40d, &(0x7f00000002c0)) sendfile(r2, r0, 0x0, 0x4000000000000081) r4 = bpf$OBJ_GET_MAP(0x7, &(0x7f0000000340)={&(0x7f0000000300)='./file0\x00'}, 0x10) sendfile(r1, r4, 0x0, 0x0) 02:16:01 executing program 3: socket$inet6_tcp(0xa, 0x1, 0x0) mount(&(0x7f0000000200)=@sg0, 0x0, &(0x7f0000000280)='mqueue\x00', 0x2800, 0x0) getsockopt$sock_cred(0xffffffffffffffff, 0x1, 0x11, 0x0, &(0x7f0000000080)) perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = socket$nl_xfrm(0x10, 0x3, 0x6) bind$netlink(r0, &(0x7f0000000080)={0x10, 0x0, 0x0, 0x1}, 0xc) ioctl$TIOCGSID(0xffffffffffffffff, 0x5429, &(0x7f00000000c0)=0x0) setsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000000140)={r1, 0xee01, 0xee01}, 0xc) syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000040)='./file0\x00', 0x83600, 0x5, &(0x7f0000000540)=[{&(0x7f0000010000)="20000000000200001900000060014c0014000c00000000000000000004000000000002000020000020000000ddf4655fddf4655f0100ffff53ef010001000000ddf4655f000000000000000001000000000000000b0000000001000008000000d24200001203", 0x66, 0x400}, {&(0x7f0000000300)="0000000000000000cc4371bd6a7c893f280045010040", 0x16, 0x4e0}, {0x0}, {&(0x7f0000010400)="0a0054cc04b3545cf2", 0x9, 0x800}, {&(0x7f0000010e00)="ed41000000040000ddf4655fddf4655fddf4655f000000000000040020", 0x1d, 0x1500}], 0x81, &(0x7f0000000180)) socket$inet6(0xa, 0xa, 0x0) connect$inet6(0xffffffffffffffff, &(0x7f0000000240)={0xa, 0x0, 0xfffffff8, @remote, 0x5}, 0x1c) sendmsg$TIPC_NL_PEER_REMOVE(0xffffffffffffffff, &(0x7f00000001c0)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x880}, 0x8) mkdir(&(0x7f00000002c0)='./file0\x00', 0xc8) 02:16:01 executing program 5: prlimit64(0x0, 0xe, &(0x7f0000000280)={0x9, 0x8d}, 0x0) r0 = getpid() lgetxattr(&(0x7f0000000180)='./bus\x00', &(0x7f00000002c0)=ANY=[@ANYBLOB="5e493635836d7636eb692959dbfb3f14afbfaae640a78ced33b1208f7b4eb97685b60ea3c45283bc3d57c3a894e35a4f489a484d381848896da5a26d32ec7034d4d8602fb14bfabdfea59955589236a907645374194fffb47dbf050c570559fa7a50f7d30a81a6cc6716e2be4f816e649d024c3af5e414f6b18301b9b82ee523ef8fcc375563a1f237a6b69f937ea9aa5f52ea56fdf417fa753fb542671ea2a00c8985dbdfd8fbe3fd5afa77158f45389e"], 0x0, 0x0) sched_setattr(r0, &(0x7f0000000480)={0x38, 0x2, 0x0, 0x0, 0x5}, 0x0) r1 = socket$key(0xf, 0x3, 0x2) recvmmsg(r1, &(0x7f0000000680)=[{{0x0, 0x0, 0x0}, 0x8001}], 0x1, 0x2, 0x0) pipe(&(0x7f0000000240)={0xffffffffffffffff, 0xffffffffffffffff}) fcntl$setpipe(r2, 0x407, 0x0) write(r3, &(0x7f0000000340), 0x41395527) vmsplice(r2, &(0x7f0000000000)=[{&(0x7f0000000500), 0x3528a9c0}], 0x1, 0x0) sched_setattr(0x0, &(0x7f00000001c0)={0x38, 0x1, 0x0, 0x0, 0x3}, 0x0) r4 = open(&(0x7f0000000040)='./bus\x00', 0x141042, 0x0) write$UHID_INPUT(r4, &(0x7f0000000980), 0x10a9) r5 = creat(&(0x7f0000000140)='./bus\x00', 0x0) fcntl$setstatus(r5, 0x4, 0x46000) lseek(r5, 0x4200, 0x1) r6 = creat(&(0x7f0000000200)='./bus\x00', 0x0) io_setup(0x1ff, &(0x7f00000004c0)=0x0) io_submit(r7, 0x1, &(0x7f0000000540)=[&(0x7f00000000c0)={0x0, 0x0, 0x0, 0x1, 0x0, r6, &(0x7f0000000000), 0x10000}]) r8 = open(&(0x7f0000000080)='./bus\x00', 0x0, 0x0) sendfile(r5, r8, 0x0, 0x8400fffffffb) sendfile(r4, r4, &(0x7f0000000380), 0x8080ffffff7e) 02:16:01 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608e00, 0x7ffffe, 0x4002011, r1, 0x0) 02:16:01 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x28, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params]}, 0x28}}, 0x0) [ 512.399959] IPVS: ftp: loaded support on port[0] = 21 02:16:01 executing program 2 (fault-call:4 fault-nth:0): r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x30, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random}]]}, 0x30}}, 0x0) 02:16:01 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608e01, 0x7ffffe, 0x4002011, r1, 0x0) [ 512.504034] FAULT_INJECTION: forcing a failure. [ 512.504034] name failslab, interval 1, probability 0, space 0, times 0 02:16:01 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x11, 0x800, 0xff) r2 = creat(&(0x7f0000000280)='./file0\x00', 0x3) stat(&(0x7f0000000040)='./file0\x00', &(0x7f00000000c0)) close(r2) connect$inet(r2, &(0x7f0000000080)={0x2, 0x0, @remote}, 0x10) r3 = dup(r1) sendfile(r3, r0, 0x0, 0x4000000000000081) [ 512.599677] audit: type=1804 audit(1623032161.545:11263): pid=5016 uid=0 auid=4294967295 ses=4294967295 subj==unconfined op=invalid_pcr cause=open_writers comm="syz-executor.5" name="/root/syzkaller-testdir684226176/syzkaller.8Mc0q7/46/bus" dev="sda1" ino=14282 res=1 [ 512.610192] CPU: 1 PID: 5010 Comm: syz-executor.2 Not tainted 4.19.193-syzkaller #0 [ 512.631380] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 [ 512.640750] Call Trace: [ 512.643365] dump_stack+0x1fc/0x2ef [ 512.647300] should_fail.cold+0xa/0xf [ 512.651208] ? setup_fault_attr+0x200/0x200 [ 512.655849] ? lock_acquire+0x170/0x3c0 [ 512.659973] __should_failslab+0x115/0x180 [ 512.664775] should_failslab+0x5/0x10 [ 512.668922] kmem_cache_alloc_node+0x245/0x3b0 [ 512.673578] __alloc_skb+0x71/0x560 [ 512.677547] netlink_sendmsg+0x9ee/0xc40 [ 512.682154] ? aa_af_perm+0x230/0x230 [ 512.686056] ? nlmsg_notify+0x1a0/0x1a0 [ 512.690041] ? kernel_recvmsg+0x220/0x220 [ 512.695093] ? nlmsg_notify+0x1a0/0x1a0 [ 512.699324] sock_sendmsg+0xc3/0x120 [ 512.703240] ___sys_sendmsg+0x7bb/0x8e0 [ 512.709340] ? check_preemption_disabled+0x41/0x280 [ 512.714373] ? copy_msghdr_from_user+0x440/0x440 [ 512.719444] ? __fget+0x32f/0x510 [ 512.722918] ? lock_downgrade+0x720/0x720 [ 512.727342] ? check_preemption_disabled+0x41/0x280 [ 512.732641] ? check_preemption_disabled+0x41/0x280 [ 512.738041] ? __fget+0x356/0x510 [ 512.741689] ? do_dup2+0x450/0x450 [ 512.745345] ? lock_downgrade+0x720/0x720 [ 512.750296] ? vfs_write+0x3d7/0x540 [ 512.754510] ? __fdget+0x1d0/0x230 [ 512.758980] __x64_sys_sendmsg+0x132/0x220 [ 512.763285] ? __sys_sendmsg+0x1b0/0x1b0 [ 512.767830] ? vfs_write+0x393/0x540 [ 512.771660] ? entry_SYSCALL_64_after_hwframe+0x3e/0xbe [ 512.777063] ? trace_hardirqs_off_caller+0x6e/0x210 [ 512.782102] ? do_syscall_64+0x21/0x620 [ 512.786234] do_syscall_64+0xf9/0x620 [ 512.790078] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 512.795839] RIP: 0033:0x4665d9 [ 512.799219] Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 [ 512.818438] RSP: 002b:00007f918256b188 EFLAGS: 00000246 ORIG_RAX: 000000000000002e [ 512.826873] RAX: ffffffffffffffda RBX: 000000000056bf80 RCX: 00000000004665d9 [ 512.834161] RDX: 0000000000000000 RSI: 0000000020000040 RDI: 0000000000000003 [ 512.842342] RBP: 00007f918256b1d0 R08: 0000000000000000 R09: 0000000000000000 02:16:01 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608f00, 0x7ffffe, 0x4002011, r1, 0x0) [ 512.850972] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001 [ 512.858621] R13: 00007fffe9ff783f R14: 00007f918256b300 R15: 0000000000022000 02:16:01 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = dup(r1) sendfile(r2, r0, 0x0, 0x4000000000000081) setsockopt$netrom_NETROM_T1(r1, 0x103, 0x1, &(0x7f0000000080)=0x79c9, 0x4) [ 513.209604] IPVS: ftp: loaded support on port[0] = 21 02:16:02 executing program 1: r0 = socket$alg(0x26, 0x5, 0x0) perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0x0, 0xffffffffffffffff, 0x0) bind$alg(r0, &(0x7f0000000000)={0x26, 'skcipher\x00', 0x0, 0x0, 'cbc(des3_ede)\x00'}, 0x58) setsockopt$ALG_SET_KEY(r0, 0x117, 0x1, &(0x7f0000c18000)="ad56b6c5820fae9d6dcd3292ea54c7beef915d564c90c200", 0x18) r1 = accept4(r0, 0x0, 0x0, 0x0) sendmmsg$alg(r1, &(0x7f0000000540)=[{0x0, 0x0, &(0x7f00000002c0)=[{&(0x7f00000000c0)="e4e32dd2b696733552eca3e954943a18709f72fbd259a936c67ebe806ab21823f4a0c47bff45323c2b30982dfc67b46cc9a5a07c33fc", 0x36}, {&(0x7f0000000100)="3a10bd003aba0c7026336b", 0xb}], 0x2, &(0x7f0000000600)=ANY=[@ANYBLOB="300000000000000017e2ffff010000001800000045f43a1e02f4596a8034a9ab3e39597e422ffab456dd963a0000000018000000000000001701000004000000060000000000000018000000000000001701000003000000010000000000000089fd429aef16c6e3ecaa8a7924080d67c0aeacf26eafe13745000339282c7069b54787448793609bd8299d69fc465829b711ce28eb8f7d62fcca7ebd067fbe96bd1685f6aaa8486ecc079a82e301d8d54c2b2049864859b9f6baee178f979555e70bfbcd97b1ae5ca5c6187cc0aae02045592e7c4f566e03a639360000000000000000e9896fde074cacb2fb62fb3c18903b46abef9df6d8d78e6fbdb9e5c5ace1e845cc49844ea5a6fe806a5066856e4d9dbed2273d47acee83ca2a99f63b6ed7dbc44de72d35841d2f459785093fda12a7297d265d7ab41ca657440fed79a5ba6bfb393338ae9ab39779eb754c0c5533b8b93bbdb48c3e18914f7cfc71cb29f75b46d9e0748a6f4cdc45d613f0c1f5985850563b37eb62887085a1"], 0x60}], 0x1, 0x8001) recvmsg(r1, &(0x7f0000001e80)={0x0, 0x0, &(0x7f0000001e00)=[{&(0x7f0000001c80)=""/103, 0xf380}], 0x1}, 0x0) 02:16:02 executing program 3: r0 = perf_event_open(&(0x7f0000000040)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) perf_event_open(0x0, 0x0, 0x0, 0xffffffffffffffff, 0x0) ioctl$PERF_EVENT_IOC_PERIOD(r0, 0x40082404, &(0x7f0000000000)=0x5) r1 = syz_open_procfs(0x0, &(0x7f00000000c0)='net/nf_conntrack_expect\x00') sendmmsg$inet(0xffffffffffffffff, &(0x7f0000001ac0)=[{{0x0, 0x0, &(0x7f00000003c0)=[{0x0}], 0x1, 0x0, 0x0, 0xa6ff8034}}], 0x1, 0x0) preadv(r1, &(0x7f00000017c0), 0x156, 0x0, 0x0) 02:16:02 executing program 2 (fault-call:4 fault-nth:1): r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x30, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random}]]}, 0x30}}, 0x0) 02:16:02 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x608f01, 0x7ffffe, 0x4002011, r1, 0x0) 02:16:02 executing program 5: r0 = socket$kcm(0x2, 0xa, 0x2) r1 = perf_event_open(&(0x7f0000000180)={0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x203, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x0, 0x0, @perf_bp={0x0, 0x2}}, 0x0, 0x0, 0xffffffffffffffff, 0x0) sendmsg$kcm(r0, 0x0, 0x0) openat$cgroup_ro(0xffffffffffffffff, &(0x7f00000000c0)='cpuacct.usage_percpu_user\x00', 0x0, 0x0) r2 = signalfd4(r1, &(0x7f0000000040)={[0xfffffffffffeffff]}, 0x8, 0x80000) sendmsg$IPCTNL_MSG_CT_NEW(r2, &(0x7f0000000340)={&(0x7f0000000200)={0x10, 0x0, 0x0, 0x20000}, 0xc, &(0x7f0000000300)={&(0x7f0000000240)=ANY=[@ANYBLOB="0ca60000000000000000030002060012cd0000939a26d4e85628fdc6ad"], 0x2c}, 0x1, 0x0, 0x0, 0x820}, 0x20000000) perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x12060, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7}, 0x0, 0xbfffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$SIOCSIFHWADDR(r0, 0x8923, &(0x7f0000000180)={'syzkaller1\x00', @link_local}) r3 = openat$tun(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TUNSETIFF(0xffffffffffffffff, 0x400454ca, 0x0) ioctl$TUNSETIFF(r3, 0x400454ca, &(0x7f0000000000)={'vlan1\x00'}) r4 = openat$tun(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) sendmsg(r0, &(0x7f0000002340)={&(0x7f0000000280)=@ax25={{0x3, @default, 0x8}, [@netrom={0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x0, 0x0}, @rose={0xbb, 0xbb, 0xbb, 0x1, 0x0}, @default, @remote={0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x3}, @null, @bcast, @bcast, @bcast]}, 0x80, &(0x7f0000002300)=[{0x0}, {0x0}], 0x2}, 0x0) ioctl$PERF_EVENT_IOC_REFRESH(0xffffffffffffffff, 0x2402, 0x0) connect$inet6(0xffffffffffffffff, &(0x7f0000000400)={0xa, 0x4e24, 0x2, @ipv4={'\x00', '\xff\xff', @empty}, 0x80000001}, 0x1c) ioctl$TUNSETIFF(r4, 0x400454ca, &(0x7f00000000c0)={'syzkaller1\x00'}) r5 = gettid() prctl$PR_SET_PTRACER(0x59616d61, r5) ptrace$setopts(0x4206, r5, 0x0, 0x0) perf_event_open(&(0x7f0000000380)={0x2, 0x80, 0x7f, 0x20, 0x8, 0x2, 0x0, 0x7, 0x41002, 0x8, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x2, 0x0, @perf_config_ext={0xfffffffffffffffc, 0x8001}, 0x2, 0x6, 0x7f, 0x8, 0x7, 0x7fffffff, 0x8, 0x0, 0x2, 0x0, 0x7}, r5, 0x9, 0xffffffffffffffff, 0x4) [ 513.493612] FAULT_INJECTION: forcing a failure. [ 513.493612] name failslab, interval 1, probability 0, space 0, times 0 02:16:02 executing program 4: mmap$snddsp_control(&(0x7f0000ffd000/0x2000)=nil, 0x1000, 0x2, 0x2011, 0xffffffffffffffff, 0x83000000) r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = dup(r1) sendfile(r2, r0, 0x0, 0x4000000000000081) [ 513.592780] CPU: 1 PID: 5089 Comm: syz-executor.2 Not tainted 4.19.193-syzkaller #0 [ 513.600706] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 [ 513.610261] Call Trace: [ 513.612889] dump_stack+0x1fc/0x2ef [ 513.616724] should_fail.cold+0xa/0xf [ 513.620664] ? setup_fault_attr+0x200/0x200 [ 513.625095] ? lock_acquire+0x170/0x3c0 [ 513.629101] __should_failslab+0x115/0x180 [ 513.633445] should_failslab+0x5/0x10 [ 513.638050] kmem_cache_alloc_node_trace+0x244/0x3b0 [ 513.643173] __kmalloc_node_track_caller+0x38/0x70 [ 513.648223] __alloc_skb+0xae/0x560 [ 513.652394] netlink_sendmsg+0x9ee/0xc40 [ 513.656521] ? aa_af_perm+0x230/0x230 [ 513.660426] ? nlmsg_notify+0x1a0/0x1a0 [ 513.664427] ? kernel_recvmsg+0x220/0x220 [ 513.668961] ? nlmsg_notify+0x1a0/0x1a0 [ 513.673446] sock_sendmsg+0xc3/0x120 [ 513.677209] ___sys_sendmsg+0x7bb/0x8e0 [ 513.681195] ? check_preemption_disabled+0x41/0x280 [ 513.686313] ? copy_msghdr_from_user+0x440/0x440 [ 513.691177] ? __fget+0x32f/0x510 [ 513.694659] ? lock_downgrade+0x720/0x720 [ 513.698825] ? check_preemption_disabled+0x41/0x280 [ 513.703864] ? check_preemption_disabled+0x41/0x280 [ 513.708996] ? __fget+0x356/0x510 [ 513.712671] ? do_dup2+0x450/0x450 [ 513.716313] ? lock_downgrade+0x720/0x720 [ 513.720566] ? vfs_write+0x3d7/0x540 [ 513.724392] ? __fdget+0x1d0/0x230 [ 513.727955] __x64_sys_sendmsg+0x132/0x220 [ 513.732239] ? __sys_sendmsg+0x1b0/0x1b0 [ 513.736316] ? vfs_write+0x393/0x540 [ 513.740068] ? entry_SYSCALL_64_after_hwframe+0x3e/0xbe [ 513.746111] ? trace_hardirqs_off_caller+0x6e/0x210 [ 513.753513] ? do_syscall_64+0x21/0x620 [ 513.757518] do_syscall_64+0xf9/0x620 [ 513.761523] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 513.766822] RIP: 0033:0x4665d9 [ 513.770036] Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 02:16:02 executing program 1: pipe(&(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) vmsplice(r0, &(0x7f0000000000)=[{&(0x7f0000000500), 0x3528a9c0}], 0x1, 0x0) r2 = openat(r0, 0x0, 0x139c00, 0x0) perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r3 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r3, 0x6, 0x80000000000002, &(0x7f0000000300)=0x80, 0x4) bind$inet(r3, &(0x7f0000000000)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r3, 0x0, 0xffffffffffffffb5, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) setsockopt$sock_int(r3, 0x1, 0x8, &(0x7f00000003c0), 0x4) prctl$PR_SET_MM_EXE_FILE(0x23, 0xd, 0xffffffffffffffff) r4 = openat(r1, &(0x7f00000000c0)='./file0\x00', 0x101000, 0x220) dup3(r4, r0, 0x0) ioctl$PERF_EVENT_IOC_SET_OUTPUT(r1, 0x2405, r2) write$binfmt_elf64(r3, &(0x7f0000000100)=ANY=[], 0x2bcf) shutdown(r3, 0x1) recvmsg(r3, &(0x7f0000001440)={0x0, 0xa, &(0x7f00000015c0)=[{&(0x7f0000001600)=""/4096, 0xf99e}], 0x2c, 0x0, 0xff96ce4aaaa47475, 0x7115}, 0x1100) perf_event_open(&(0x7f0000000040)={0x2, 0x80, 0x7f, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x0, 0x10000000000000, 0x0, 0x2}, 0xffffffffffffffff, 0x0, 0xffffffffffffffff, 0x0) semctl$SETALL(0x0, 0x0, 0x11, &(0x7f0000000000)) [ 513.789246] RSP: 002b:00007f918256b188 EFLAGS: 00000246 ORIG_RAX: 000000000000002e [ 513.796971] RAX: ffffffffffffffda RBX: 000000000056bf80 RCX: 00000000004665d9 [ 513.804612] RDX: 0000000000000000 RSI: 0000000020000040 RDI: 0000000000000003 [ 513.811988] RBP: 00007f918256b1d0 R08: 0000000000000000 R09: 0000000000000000 [ 513.819370] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001 [ 513.826827] R13: 00007fffe9ff783f R14: 00007f918256b300 R15: 0000000000022000 [ 513.952837] : renamed from syzkaller1 02:16:02 executing program 3: r0 = socket(0x11, 0x800000003, 0x0) bind(r0, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) open(&(0x7f0000000140)='./file0\x00', 0x0, 0x82) r1 = creat(&(0x7f0000000280)='./file0\x00', 0x3) close(r1) getsockname$packet(r1, &(0x7f0000000180)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000000)=0x14) r3 = socket(0x11, 0x800000003, 0x0) bind(r3, &(0x7f0000000080)=@ll={0x11, 0x0, r2, 0x1, 0x0, 0x6, @random="f7e2ab960f62"}, 0x80) getsockname$packet(r3, &(0x7f0000000340)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000240)=0x14) sendmsg$nl_route(r3, &(0x7f0000000600)={&(0x7f0000000300)={0x10, 0x0, 0x0, 0x80}, 0xc, &(0x7f00000005c0)={&(0x7f0000000540)=@ipv4_delrule={0x54, 0x21, 0x100, 0x70bd28, 0x25dfdbfe, {0x2, 0x34, 0x0, 0x40, 0x1, 0x0, 0x0, 0x6, 0xfb9dab355bbf6c0c}, [@FRA_TUN_ID={0xc, 0xc, 0x1, 0x0, 0x10001}, @FRA_GENERIC_POLICY=@FRA_IP_PROTO={0x5, 0x16, 0x67}, @FRA_TUN_ID={0xc, 0xc, 0x1, 0x0, 0x9}, @FRA_GENERIC_POLICY=@FRA_SUPPRESS_IFGROUP={0x8, 0xd, 0x4}, @FRA_SRC={0x8, 0x2, @multicast2}, @FRA_FLOW={0x8, 0xb, 0xfff}]}, 0x54}, 0x1, 0x0, 0x0, 0x8001}, 0x20000101) r5 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000100)={&(0x7f0000000380)=@newqdisc={0x78, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, r4, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_sfq={{0x8}, {0x4c, 0x2, {{}, 0x396b}}}]}, 0x78}}, 0x0) r6 = accept$unix(r3, &(0x7f00000001c0), &(0x7f00000002c0)=0x6e) write$binfmt_script(r6, &(0x7f0000000400)={'#! ', './file0', [{0x20, ','}, {}, {0x20, '\x00'}, {0x20, 'sfq\x00'}, {0x20, '-'}, {0x20, 'sfq\x00'}], 0xa, "7738c0da51650db32c743130626bc62e5e8e55fdff83d433363273c221b2dfcefd73fa8b8982ffbf2f3e3e113acf6439f775957dfe682a18050ea6d5f8496c5f4d86813955a244fa6144f53da3d1b4773c505a8c37d01cb9417d12120f26c0d07ed95589e2f30e1c157729a1124d8f794969de6d4962a2217d7936c99d5602a1bfb6110892fb47cb0ec43cbc6a3f6f3c77097bf52d968e263c28a3fd004761cfba9c5e222c20cd56d926f95da0eea7ca5991c46e8688e317364529c901681868716658b0e8ce634524818fc8b5d43752205c1af3c097a6d823ab5cf23931b0ef467a07847294aa2e04bac0e600"}, 0x109) sendmsg$nl_route(r1, &(0x7f0000000700)={&(0x7f0000000640)={0x10, 0x0, 0x0, 0x4000000}, 0xc, &(0x7f00000006c0)={&(0x7f0000000680)=@RTM_GETMDB={0x18, 0x56, 0x4, 0x70bd27, 0x25dfdbfb, {0x7, r4}, ["", "", "", "", "", "", "", "", ""]}, 0x18}, 0x1, 0x0, 0x0, 0x40050}, 0x884) [ 514.109768] audit: type=1804 audit(1623032163.056:11264): pid=5118 uid=0 auid=4294967295 ses=4294967295 subj==unconfined op=invalid_pcr cause=ToMToU comm="syz-executor.3" name="/root/syzkaller-testdir885069002/syzkaller.8JaTrr/970/file0" dev="sda1" ino=13920 res=1 02:16:03 executing program 3: r0 = creat(&(0x7f0000000000)='./file0\x00', 0x1a0) ioctl$sock_ipv4_tunnel_SIOCGETTUNNEL(0xffffffffffffffff, 0x89f0, &(0x7f0000000440)={'tunl0\x00', &(0x7f0000000380)={'gretap0\x00', 0x0, 0x20, 0x10, 0x17cd, 0xffffffff, {{0x1e, 0x4, 0x0, 0x2e, 0x78, 0x64, 0x0, 0x5, 0x4, 0x0, @local, @private=0xa010102, {[@noop, @timestamp_addr={0x44, 0x2c, 0xd8, 0x1, 0xc, [{@rand_addr=0x64010102, 0x7}, {@rand_addr=0x64010100, 0x200}, {@empty, 0x13db}, {@rand_addr=0x64010101, 0xffffffff}, {@dev={0xac, 0x14, 0x14, 0x17}, 0x20}]}, @cipso={0x86, 0x35, 0x0, [{0x2, 0xe, "47aa7714f8199b14a8a9ec89"}, {0x6, 0x10, "89a5cc5e5fa8e0edc830915680ae"}, {0x7, 0x4, "fe7a"}, {0x1, 0x2}, {0x1, 0x6, "9746ef74"}, {0x6, 0x5, "cbb672"}]}, @end]}}}}}) sendmsg$nl_route_sched(r0, &(0x7f0000000500)={&(0x7f0000000040)={0x10, 0x0, 0x0, 0x200000}, 0xc, &(0x7f00000004c0)={&(0x7f0000000480)=@gettclass={0x24, 0x2a, 0x4, 0x70bd27, 0x25dfdbfb, {0x0, 0x0, 0x0, r1, {0xb, 0x6}, {0xe, 0xf}, {0x1, 0xe}}, ["", "", "", ""]}, 0x24}, 0x1, 0x0, 0x0, 0x40408d0}, 0x44884) r2 = socket$inet_udplite(0x2, 0x2, 0x88) setsockopt$IPT_SO_SET_REPLACE(r2, 0x0, 0x40, &(0x7f0000000a80)=ANY=[@ANYBLOB="726177000000000000000000000000000000000000000000000000000000000008f80000030000003003000098020000000000000000000000000000000000009802000098020400980700009802000098020000030080000000000000000000ffffffffe00000010000000000000000e4000000010000000000bd00000000007465616d5f736c6176655f310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001080200000000000000000000000000000000000000005001686173686c696d6974000000000000000000000000008800000000000002726f73653000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000fefa000000000000ecff0008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffffffffffff00000000030000000700000000000000000000000000000048004354000001000000000000000000000000000000000000000000000000000000000000010000c997b8c70000000000000000000000000000000000000040000000000000000000000000010000000000000000004000000000f1ffee0000e9ffffffffffffff0000000000000000000000000000000000000000000000000000002000000000000005000000000004000000000a0000000100000000000070009000000000000000000000000000000000000000010020004e4f545241434b0000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007000980000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000feffffff00"/908], 0x1) perf_event_open(&(0x7f0000000280)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x250, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0x0, 0xffffffffffffffff, 0x0) r3 = socket$inet(0x2, 0x1, 0x0) bind$inet(r3, &(0x7f0000000200)={0x2, 0x4e23, @dev}, 0x10) sendto$inet(r3, 0x0, 0xfffffffffffffc6d, 0x20000800, &(0x7f0000000240)={0x2, 0x4e23, @local}, 0x10) setsockopt$SO_BINDTODEVICE(r3, 0x1, 0x19, &(0x7f0000000080)='veth0_macvtap\x00', 0x10) sendto$inet(r3, &(0x7f0000000000), 0xfffffffffffffccf, 0x240, 0x0, 0xffffffffffffff37) [ 514.218424] : renamed from syzkaller1 02:16:03 executing program 2 (fault-call:4 fault-nth:2): r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x30, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random}]]}, 0x30}}, 0x0) 02:16:03 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) ioctl$F2FS_IOC_GET_PIN_FILE(r1, 0x8004f50e, &(0x7f0000000080)) r2 = dup(r1) sendfile(r2, r0, 0x0, 0x4000000000000081) 02:16:03 executing program 1: r0 = socket$inet6_tcp(0xa, 0x1, 0x0) sendmsg$inet6(r0, &(0x7f0000004f00)={&(0x7f0000002900)={0xa, 0x0, 0x0, @initdev={0xfe, 0x88, '\x00', 0x0, 0x0}, 0x6}, 0x1c, 0x0}, 0x24044450) setsockopt$inet6_tcp_TLS_TX(r0, 0x6, 0x1, &(0x7f0000000000)=@gcm_128={{0x304}, "003276dd511f7559", "39e01930362da69c9bae650000000033", "6c1172f4", "47f8616944f57a9c"}, 0x28) sendmmsg$inet6(r0, &(0x7f0000002800)=[{{0x0, 0x0, 0x0}}], 0x1, 0x200090c5) [ 514.355043] FAULT_INJECTION: forcing a failure. [ 514.355043] name failslab, interval 1, probability 0, space 0, times 0 [ 514.399996] CPU: 0 PID: 5136 Comm: syz-executor.2 Not tainted 4.19.193-syzkaller #0 [ 514.407840] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 [ 514.417296] Call Trace: [ 514.420076] dump_stack+0x1fc/0x2ef [ 514.423731] should_fail.cold+0xa/0xf [ 514.427556] ? setup_fault_attr+0x200/0x200 [ 514.431897] ? lock_downgrade+0x720/0x720 [ 514.436061] ? check_preemption_disabled+0x41/0x280 [ 514.441096] __should_failslab+0x115/0x180 [ 514.445348] should_failslab+0x5/0x10 [ 514.449161] kmem_cache_alloc+0x3f/0x370 [ 514.453239] skb_clone+0x151/0x3d0 [ 514.456793] netlink_deliver_tap+0x955/0xb00 [ 514.461249] netlink_unicast+0x545/0x690 [ 514.465450] ? netlink_sendskb+0x110/0x110 [ 514.469700] ? _copy_from_iter_full+0x229/0x7c0 [ 514.474383] ? __phys_addr_symbol+0x2c/0x70 [ 514.478722] ? __check_object_size+0x17b/0x3e0 [ 514.483318] netlink_sendmsg+0x6bb/0xc40 [ 514.487396] ? aa_af_perm+0x230/0x230 [ 514.491204] ? nlmsg_notify+0x1a0/0x1a0 [ 514.495194] ? kernel_recvmsg+0x220/0x220 [ 514.499371] ? nlmsg_notify+0x1a0/0x1a0 [ 514.503354] sock_sendmsg+0xc3/0x120 [ 514.507207] ___sys_sendmsg+0x7bb/0x8e0 [ 514.511331] ? check_preemption_disabled+0x41/0x280 [ 514.516542] ? copy_msghdr_from_user+0x440/0x440 [ 514.521401] ? __fget+0x32f/0x510 [ 514.524967] ? lock_downgrade+0x720/0x720 [ 514.529154] ? check_preemption_disabled+0x41/0x280 [ 514.534189] ? check_preemption_disabled+0x41/0x280 [ 514.539252] ? __fget+0x356/0x510 [ 514.542747] ? do_dup2+0x450/0x450 [ 514.546301] ? lock_downgrade+0x720/0x720 02:16:03 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x609000, 0x7ffffe, 0x4002011, r1, 0x0) [ 514.550652] ? vfs_write+0x3d7/0x540 [ 514.554385] ? __fdget+0x1d0/0x230 [ 514.557956] __x64_sys_sendmsg+0x132/0x220 [ 514.562204] ? __sys_sendmsg+0x1b0/0x1b0 [ 514.566370] ? vfs_write+0x393/0x540 [ 514.570110] ? entry_SYSCALL_64_after_hwframe+0x3e/0xbe [ 514.575513] ? trace_hardirqs_off_caller+0x6e/0x210 [ 514.580543] ? do_syscall_64+0x21/0x620 [ 514.584532] do_syscall_64+0xf9/0x620 [ 514.588356] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 514.593640] RIP: 0033:0x4665d9 02:16:03 executing program 1: r0 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r0, &(0x7f0000000040)={0xa, 0x4e22, 0x0, @loopback}, 0x1c) listen(r0, 0x0) r1 = socket$inet6_tcp(0xa, 0x1, 0x0) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000000c0)='cpuacct.usage_percpu_user\x00', 0x275a, 0x0) r3 = openat$cuse(0xffffffffffffff9c, &(0x7f0000000100), 0x2, 0x0) write$binfmt_script(r3, &(0x7f0000000080)=ANY=[], 0x8) mmap(&(0x7f0000000000/0x3000)=nil, 0x3000, 0x1, 0x10012, r2, 0x0) setsockopt$sock_int(r1, 0x1, 0x8, &(0x7f0000000140), 0x4) setsockopt$inet6_tcp_int(r1, 0x6, 0xa, &(0x7f0000000000), 0x4) sendto$inet6(r1, 0x0, 0x0, 0x20000015, &(0x7f000031e000)={0xa, 0x4e22, 0x0, @empty}, 0x1c) [ 514.596925] Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 [ 514.615920] RSP: 002b:00007f918256b188 EFLAGS: 00000246 ORIG_RAX: 000000000000002e [ 514.623727] RAX: ffffffffffffffda RBX: 000000000056bf80 RCX: 00000000004665d9 [ 514.631243] RDX: 0000000000000000 RSI: 0000000020000040 RDI: 0000000000000003 [ 514.638697] RBP: 00007f918256b1d0 R08: 0000000000000000 R09: 0000000000000000 [ 514.646064] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001 [ 514.653370] R13: 00007fffe9ff783f R14: 00007f918256b300 R15: 0000000000022000 02:16:03 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x609001, 0x7ffffe, 0x4002011, r1, 0x0) 02:16:03 executing program 2 (fault-call:4 fault-nth:3): r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x30, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random}]]}, 0x30}}, 0x0) 02:16:03 executing program 5: chdir(0x0) open(&(0x7f0000000000)='./bus\x00', 0x141042, 0x0) perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = creat(&(0x7f0000000240)='./bus\x00', 0x0) fallocate(r0, 0x0, 0x0, 0x8020001) 02:16:03 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = dup(r1) sendfile(r2, r0, 0x0, 0x4000000000000081) ioctl$sock_ipv6_tunnel_SIOCADDTUNNEL(r0, 0x89f1, &(0x7f0000000140)={'ip6gre0\x00', &(0x7f00000000c0)={'syztnl1\x00', 0x0, 0x4, 0x2, 0x81, 0x10000, 0x8, @remote, @remote, 0x8, 0x8000, 0x0, 0x8001}}) ioctl$ifreq_SIOCGIFINDEX_wireguard(r0, 0x8933, &(0x7f0000000240)={'wg1\x00', 0x0}) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000400)={&(0x7f0000000080)={0x10, 0x0, 0x0, 0x20041008}, 0xc, &(0x7f00000003c0)={&(0x7f0000000480)=ANY=[@ANYBLOB="24010000120002002cbd7000fbdbdf2507000000", @ANYRES32=r3, @ANYBLOB="003000000002000008000a00", @ANYRES32=r4, @ANYBLOB="140003006e6574706369300000000000000000001c0012800e0001006970366772657461700000000800028004001200a4003480140035006272696467655f736c6176655f310000140035006d6163766c616e310000000000000000140035006d6163766c616e310000000000000000140035006d6163736563300000000000000000001400350076657468315f746f5f6272696467650014003500766c616e30000000000000000000000014003500697036746e6c30000000000000000000140035006e72300000000000000000000000000018003480140035000000000000000000000000000000000008000a00", @ANYRES32=0x0, @ANYBLOB="080029008b1000008ee697f6bf059aba8bb48b2869b5d9ce0c0bbf151f8033dde0b9b20dcc9ec7262487dbe4dde48a05d96e53087743916f3e7e9d77cd7c000000000000f68684e9840809e14ddf0b2af6fb49055b72fb23892a36684348bedd34bb1e1320003eb7e22335792de77ee1d39bed870be7a45101e9798e982d24cd4a658af05ce02638716b9bd1df24212c563f94dd5af5a7b87d425f288def07c0b416bfc9a545042100de7c39e2adb19396ca94a893e2988c781c501b2ad21b217480a8b275d07676e20508452a48f9d36324f8921a33c520d4b666bc1d59a561dd22e1"], 0x124}, 0x1, 0x0, 0x0, 0x8000}, 0x4000) [ 514.905887] FAULT_INJECTION: forcing a failure. [ 514.905887] name failslab, interval 1, probability 0, space 0, times 0 [ 515.000992] CPU: 0 PID: 5165 Comm: syz-executor.2 Not tainted 4.19.193-syzkaller #0 [ 515.008961] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 [ 515.018335] Call Trace: [ 515.020954] dump_stack+0x1fc/0x2ef [ 515.024602] should_fail.cold+0xa/0xf [ 515.028421] ? setup_fault_attr+0x200/0x200 [ 515.032843] ? lock_acquire+0x170/0x3c0 [ 515.036839] __should_failslab+0x115/0x180 [ 515.041217] should_failslab+0x5/0x10 [ 515.045154] kmem_cache_alloc_node+0x245/0x3b0 [ 515.049760] __alloc_skb+0x71/0x560 [ 515.053491] netlink_ack+0x27d/0xae0 [ 515.057307] ? __radix_tree_lookup+0x216/0x370 [ 515.062003] ? netlink_sendmsg+0xc40/0xc40 [ 515.066272] netlink_rcv_skb+0x353/0x440 [ 515.070468] ? genl_family_rcv_msg+0xc40/0xc40 [ 515.075163] ? netlink_ack+0xae0/0xae0 [ 515.079109] ? genl_rcv+0x15/0x40 [ 515.082585] genl_rcv+0x24/0x40 [ 515.085874] netlink_unicast+0x4d5/0x690 [ 515.089952] ? netlink_sendskb+0x110/0x110 [ 515.094199] ? _copy_from_iter_full+0x229/0x7c0 [ 515.098881] ? __phys_addr_symbol+0x2c/0x70 [ 515.103491] ? __check_object_size+0x17b/0x3e0 [ 515.108120] netlink_sendmsg+0x6bb/0xc40 [ 515.112379] ? aa_af_perm+0x230/0x230 [ 515.116197] ? nlmsg_notify+0x1a0/0x1a0 [ 515.120186] ? kernel_recvmsg+0x220/0x220 [ 515.124444] ? nlmsg_notify+0x1a0/0x1a0 [ 515.128436] sock_sendmsg+0xc3/0x120 [ 515.132192] ___sys_sendmsg+0x7bb/0x8e0 [ 515.136179] ? check_preemption_disabled+0x41/0x280 [ 515.141209] ? copy_msghdr_from_user+0x440/0x440 [ 515.145977] ? __fget+0x32f/0x510 02:16:04 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x609100, 0x7ffffe, 0x4002011, r1, 0x0) [ 515.149447] ? lock_downgrade+0x720/0x720 [ 515.153695] ? check_preemption_disabled+0x41/0x280 [ 515.158727] ? check_preemption_disabled+0x41/0x280 [ 515.163761] ? __fget+0x356/0x510 [ 515.167229] ? do_dup2+0x450/0x450 [ 515.170782] ? lock_downgrade+0x720/0x720 [ 515.175029] ? vfs_write+0x3d7/0x540 [ 515.178756] ? __fdget+0x1d0/0x230 [ 515.182406] __x64_sys_sendmsg+0x132/0x220 [ 515.186644] ? __sys_sendmsg+0x1b0/0x1b0 [ 515.190740] ? vfs_write+0x393/0x540 [ 515.194506] ? entry_SYSCALL_64_after_hwframe+0x3e/0xbe 02:16:04 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x0, 0x4, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r2 = dup(r1) sendfile(r2, r0, 0x0, 0x4000000000000081) [ 515.199885] ? trace_hardirqs_off_caller+0x6e/0x210 [ 515.205087] ? do_syscall_64+0x21/0x620 [ 515.209077] do_syscall_64+0xf9/0x620 [ 515.212913] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 515.218126] RIP: 0033:0x4665d9 [ 515.221325] Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 [ 515.240679] RSP: 002b:00007f918256b188 EFLAGS: 00000246 ORIG_RAX: 000000000000002e 02:16:04 executing program 3: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$NFT_BATCH(r0, &(0x7f0000003e00)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000100)=ANY=[@ANYBLOB="140000001000010000000000000000000000000a20000000000a01010000ff0000090b00000005a792d6eeca551e7a300000000040000000160a01000000000000000000010000000900010073797a30000000000900020073797a3000000000100003800800014000000000080002400000000030000000163aa0cd347a15f1d8000000000000000900b2414239c1256502007b797a320000000009000100309073797a300000000004000380140000001000010000000000000000000000d9fc2917044338a6069c2b18064e60c929b0c6f1c23b00a41495a5fe0429a311e0019a253bc18a144026a727066ca40772f0872cf6fb5995dc0de78540080e517ee66ff4d079bc9fdc5f2eaedbb2f0ceec1bb6f66a229a8b501e95e91c8cee77cac9fe89ebcb64a6773bc807abc53b248999214dd83aa7f820b999edfaf326a421ed620cb3d084c821ee9531af866db6a48a42d972f7e852f387bf62475fe6b4deb59db69e199c4797be"], 0xb8}}, 0x0) sendmsg$NFQNL_MSG_VERDICT(r0, &(0x7f00000000c0)={&(0x7f0000000040)={0x10, 0x0, 0x0, 0x800}, 0xc, &(0x7f0000000080)={&(0x7f0000000600)={0x5b8, 0x1, 0x3, 0x5, 0x0, 0x0, {0xc, 0x0, 0xa}, [@NFQA_EXP={0x14, 0xf, 0x0, 0x1, [@CTA_EXPECT_ID={0x8, 0x5, 0x1, 0x0, 0x7fff}, @CTA_EXPECT_FLAGS={0x8}]}, @NFQA_EXP={0x130, 0xf, 0x0, 0x1, [@CTA_EXPECT_CLASS={0x8, 0x9, 0x1, 0x0, 0xfffffffa}, @CTA_EXPECT_ZONE={0x6, 0x7, 0x1, 0x0, 0x2}, @CTA_EXPECT_ID={0x8, 0x5, 0x1, 0x0, 0x10000}, @CTA_EXPECT_TUPLE={0x9c, 0x2, 0x0, 0x1, [@CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x2}, @CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x2}, @CTA_TUPLE_PROTO={0xc, 0x2, 0x0, 0x1, {0x5, 0x1, 0x21}}, @CTA_TUPLE_IP={0x14, 0x1, 0x0, 0x1, @ipv4={{0x8, 0x1, @private=0xa010100}, {0x8, 0x2, @private=0xa010102}}}, @CTA_TUPLE_IP={0x14, 0x1, 0x0, 0x1, @ipv4={{0x8, 0x1, @local}, {0x8, 0x2, @remote}}}, @CTA_TUPLE_IP={0x2c, 0x1, 0x0, 0x1, @ipv6={{0x14, 0x3, @initdev={0xfe, 0x88, '\x00', 0x1, 0x0}}, {0x14, 0x4, @mcast2}}}, @CTA_TUPLE_IP={0x14, 0x1, 0x0, 0x1, @ipv4={{0x8, 0x1, @rand_addr=0x64010100}, {0x8, 0x2, @empty}}}, @CTA_TUPLE_IP={0x14, 0x1, 0x0, 0x1, @ipv4={{0x8, 0x1, @dev={0xac, 0x14, 0x14, 0x1a}}, {0x8, 0x2, @loopback}}}]}, @CTA_EXPECT_ID={0x8, 0x5, 0x1, 0x0, 0x92ce}, @CTA_EXPECT_MASTER={0x60, 0x1, 0x0, 0x1, [@CTA_TUPLE_IP={0x2c, 0x1, 0x0, 0x1, @ipv6={{0x14, 0x3, @private0={0xfc, 0x0, '\x00', 0x1}}, {0x14, 0x4, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02'}}}, @CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x4}, @CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x2}, @CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x1}, @CTA_TUPLE_PROTO={0xc, 0x2, 0x0, 0x1, {0x5, 0x1, 0x84}}, @CTA_TUPLE_PROTO={0xc, 0x2, 0x0, 0x1, {0x5, 0x1, 0x11}}]}, @CTA_EXPECT_HELP_NAME={0xf, 0x6, 'tftp-20000\x00'}]}, @NFQA_VLAN={0x14, 0x13, 0x0, 0x1, [@NFQA_VLAN_TCI={0x6, 0x2, 0x1, 0x0, 0x2}, @NFQA_VLAN_PROTO={0x6, 0x1, 0x1, 0x0, 0x88a8}]}, @NFQA_MARK={0x8, 0x3, 0x1, 0x0, 0x5}, @NFQA_PAYLOAD={0xf4, 0xa, "464e693672670c2f98a480e6f7e89ed6947560f3f1b5c3f4fe17c88af34cf7af4b488b28db0d4aa660be50fe23fb03e0cdd90037da8a0ba8ca22675339d537e5fa639519f291bf4559ca57cdc9563339728896ab6eb3b9c9f768b264ab632e0fc95543a393878f3709a62fbd3d17e18d679df0494f78133362fa4c6cfba7321bf0fa815f1569459e3614f7e437d989af140dbc297d6c450d12b6d31492ed77dd0bc6793b1068f1ab2952ea6e2849f8efd7e2eb13236b39e5246bcbbf1072a9fb0254aaede7ed7d556e6649f0c02667ece072aae1eef4ca8d6576d416767a460ae9d5fcf5bc9e4eab27bde357d66b4d3c"}, @NFQA_VLAN={0x14, 0x13, 0x0, 0x1, [@NFQA_VLAN_TCI={0x6, 0x2, 0x1, 0x0, 0x20}, @NFQA_VLAN_TCI={0x6, 0x2, 0x1, 0x0, 0x44c}]}, @NFQA_EXP={0x13c, 0xf, 0x0, 0x1, [@CTA_EXPECT_FN={0x8, 0xb, 'sip\x00'}, @CTA_EXPECT_HELP_NAME={0xb, 0x6, 'amanda\x00'}, @CTA_EXPECT_NAT={0x124, 0xa, 0x0, 0x1, [@CTA_EXPECT_NAT_DIR={0x8}, @CTA_EXPECT_NAT_TUPLE={0x54, 0x2, 0x0, 0x1, [@CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x4}, @CTA_TUPLE_PROTO={0xc, 0x2, 0x0, 0x1, {0x5, 0x1, 0x2f}}, @CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x1}, @CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x1}, @CTA_TUPLE_IP={0x2c, 0x1, 0x0, 0x1, @ipv6={{0x14, 0x3, @mcast2}, {0x14, 0x4, @dev={0xfe, 0x80, '\x00', 0x27}}}}]}, @CTA_EXPECT_NAT_TUPLE={0x4}, @CTA_EXPECT_NAT_TUPLE={0xb0, 0x2, 0x0, 0x1, [@CTA_TUPLE_IP={0x2c, 0x1, 0x0, 0x1, @ipv6={{0x14, 0x3, @mcast2}, {0x14, 0x4, @dev={0xfe, 0x80, '\x00', 0x11}}}}, @CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x1}, @CTA_TUPLE_IP={0x2c, 0x1, 0x0, 0x1, @ipv6={{0x14, 0x3, @private0={0xfc, 0x0, '\x00', 0x1}}, {0x14, 0x4, @local}}}, @CTA_TUPLE_IP={0x14, 0x1, 0x0, 0x1, @ipv4={{0x8, 0x1, @rand_addr=0x64010102}, {0x8, 0x2, @dev={0xac, 0x14, 0x14, 0x25}}}}, @CTA_TUPLE_IP={0x14, 0x1, 0x0, 0x1, @ipv4={{0x8, 0x1, @remote}, {0x8, 0x2, @private=0xa010102}}}, @CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x1}, @CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x4}, @CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x3}, @CTA_TUPLE_PROTO={0xc, 0x2, 0x0, 0x1, {0x5, 0x1, 0x86}}]}, @CTA_EXPECT_NAT_DIR={0x8}, @CTA_EXPECT_NAT_DIR={0x8}]}]}, @NFQA_EXP={0x200, 0xf, 0x0, 0x1, [@CTA_EXPECT_ZONE={0x6, 0x7, 0x1, 0x0, 0x1}, @CTA_EXPECT_CLASS={0x8, 0x9, 0x1, 0x0, 0x3}, @CTA_EXPECT_FN={0xa, 0xb, 'Q.931\x00'}, @CTA_EXPECT_NAT={0x114, 0xa, 0x0, 0x1, [@CTA_EXPECT_NAT_DIR={0x8, 0x1, 0x1, 0x0, 0x1}, @CTA_EXPECT_NAT_TUPLE={0x60, 0x2, 0x0, 0x1, [@CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x4}, @CTA_TUPLE_IP={0x2c, 0x1, 0x0, 0x1, @ipv6={{0x14, 0x3, @initdev={0xfe, 0x88, '\x00', 0x1, 0x0}}, {0x14, 0x4, @rand_addr=' \x01\x00'}}}, @CTA_TUPLE_PROTO={0xc, 0x2, 0x0, 0x1, {0x5, 0x1, 0x1}}, @CTA_TUPLE_IP={0x14, 0x1, 0x0, 0x1, @ipv4={{0x8, 0x1, @broadcast}, {0x8, 0x2, @initdev={0xac, 0x1e, 0x1, 0x0}}}}, @CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x4}]}, @CTA_EXPECT_NAT_TUPLE={0x88, 0x2, 0x0, 0x1, [@CTA_TUPLE_PROTO={0xc, 0x2, 0x0, 0x1, {0x5, 0x1, 0x21}}, @CTA_TUPLE_IP={0x2c, 0x1, 0x0, 0x1, @ipv6={{0x14, 0x3, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02'}, {0x14, 0x4, @dev={0xfe, 0x80, '\x00', 0x31}}}}, @CTA_TUPLE_PROTO={0xc, 0x2, 0x0, 0x1, {0x5, 0x1, 0x1}}, @CTA_TUPLE_IP={0x2c, 0x1, 0x0, 0x1, @ipv6={{0x14, 0x3, @mcast1}, {0x14, 0x4, @empty}}}, @CTA_TUPLE_PROTO={0xc, 0x2, 0x0, 0x1, {0x5, 0x1, 0x1}}, @CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x2}]}, @CTA_EXPECT_NAT_DIR={0x8, 0x1, 0x1, 0x0, 0x1}, @CTA_EXPECT_NAT_TUPLE={0x10, 0x2, 0x0, 0x1, [@CTA_TUPLE_PROTO={0xc, 0x2, 0x0, 0x1, {0x5}}]}, @CTA_EXPECT_NAT_DIR={0x8, 0x1, 0x1, 0x0, 0x1}]}, @CTA_EXPECT_TUPLE={0x5c, 0x2, 0x0, 0x1, [@CTA_TUPLE_IP={0x14, 0x1, 0x0, 0x1, @ipv4={{0x8, 0x1, @multicast2}, {0x8, 0x2, @rand_addr=0x64010100}}}, @CTA_TUPLE_IP={0x14, 0x1, 0x0, 0x1, @ipv4={{0x8, 0x1, @remote}, {0x8, 0x2, @initdev={0xac, 0x1e, 0x1, 0x0}}}}, @CTA_TUPLE_ZONE={0x6}, @CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x4}, @CTA_TUPLE_IP={0x14, 0x1, 0x0, 0x1, @ipv4={{0x8, 0x1, @multicast2}, {0x8, 0x2, @rand_addr=0x64010102}}}, @CTA_TUPLE_PROTO={0xc, 0x2, 0x0, 0x1, {0x5, 0x1, 0x21}}]}, @CTA_EXPECT_FN={0xa, 0xb, 'Q.931\x00'}, @CTA_EXPECT_NAT={0x64, 0xa, 0x0, 0x1, [@CTA_EXPECT_NAT_DIR={0x8}, @CTA_EXPECT_NAT_DIR={0x8}, @CTA_EXPECT_NAT_DIR={0x8, 0x1, 0x1, 0x0, 0x1}, @CTA_EXPECT_NAT_DIR={0x8, 0x1, 0x1, 0x0, 0x1}, @CTA_EXPECT_NAT_TUPLE={0x30, 0x2, 0x0, 0x1, [@CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x1}, @CTA_TUPLE_ZONE={0x6}, @CTA_TUPLE_IP={0x14, 0x1, 0x0, 0x1, @ipv4={{0x8, 0x1, @initdev={0xac, 0x1e, 0x0, 0x0}}, {0x8, 0x2, @initdev={0xac, 0x1e, 0x1, 0x0}}}}, @CTA_TUPLE_ZONE={0x6, 0x3, 0x1, 0x0, 0x4}]}, @CTA_EXPECT_NAT_DIR={0x8, 0x1, 0x1, 0x0, 0x1}, @CTA_EXPECT_NAT_DIR={0x8}]}]}]}, 0x5b8}, 0x1, 0x0, 0x0, 0x4080}, 0x8844) [ 515.248400] RAX: ffffffffffffffda RBX: 000000000056bf80 RCX: 00000000004665d9 [ 515.255776] RDX: 0000000000000000 RSI: 0000000020000040 RDI: 0000000000000003 [ 515.263058] RBP: 00007f918256b1d0 R08: 0000000000000000 R09: 0000000000000000 [ 515.270340] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001 [ 515.277649] R13: 00007fffe9ff783f R14: 00007f918256b300 R15: 0000000000022000 02:16:04 executing program 5: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket$inet_udplite(0x2, 0x2, 0x88) ioctl$ifreq_SIOCGIFINDEX_batadv_hard(r1, 0x8933, &(0x7f0000002d00)={'batadv_slave_1\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000040)=ANY=[@ANYBLOB="5800000000000002080000", @ANYRES32=r2, @ANYBLOB="0800040000000000140006009c85ffff01000000000000000000000008000200ac1414001400030076657468305f766c616e0000000000000800010000000000"], 0x58}}, 0x0) [ 515.382160] netlink: 12 bytes leftover after parsing attributes in process `syz-executor.3'. [ 515.407791] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.3'. 02:16:04 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = socket(0x2, 0x803, 0xff) connect$inet(r1, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000180)={&(0x7f0000000080)={0x10, 0x0, 0x0, 0x20000000}, 0xc, &(0x7f0000000140)={&(0x7f00000000c0)=@ipv6_newaddrlabel={0x78, 0x48, 0x2, 0x70bd25, 0x25dfdbfe, {0xa, 0x0, 0x80, 0x0, 0x0, 0xffff}, [@IFAL_LABEL={0x8, 0x2, 0x4}, @IFAL_ADDRESS={0x14, 0x1, @initdev={0xfe, 0x88, '\x00', 0x0, 0x0}}, @IFAL_LABEL={0x8, 0x2, 0x5}, @IFAL_ADDRESS={0x14, 0x1, @rand_addr=' \x01\x00'}, @IFAL_LABEL={0x8, 0x2, 0xe}, @IFAL_LABEL={0x8, 0x2, 0x2}, @IFAL_ADDRESS={0x14, 0x1, @mcast1}]}, 0x78}, 0x1, 0x0, 0x0, 0x2000c0d5}, 0x10) r2 = dup(r1) sendfile(r2, r0, 0x0, 0x4000000000000081) 02:16:04 executing program 3: r0 = syz_genetlink_get_family_id$nl802154(&(0x7f0000000080), 0xffffffffffffffff) sendmsg$NL802154_CMD_SET_BACKOFF_EXPONENT(0xffffffffffffffff, &(0x7f0000000180)={&(0x7f0000000040)={0x10, 0x0, 0x0, 0x200000}, 0xc, &(0x7f0000000140)={&(0x7f00000000c0)={0x20, r0, 0x100, 0x70bd26, 0x25dfdbfd, {}, [@NL802154_ATTR_WPAN_DEV={0xc, 0x6, 0x300000003}]}, 0x20}, 0x1, 0x0, 0x0, 0x8080}, 0x40000) r1 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r1, 0x0) preadv(r1, &(0x7f0000000280), 0x18, 0xd9f, 0x0) bpf$PROG_LOAD(0x5, &(0x7f00000054c0)={0xe, 0x16, &(0x7f0000000380)=ANY=[@ANYBLOB="61124c00000000006113500000000000bf2000000000000007000000080000003d0301000000000095000000000000006926000000000000bf67000000000000140600000fff07006706000002000000270600000ee60000bf2500000000000073350000000000006507000002001000070700004c0000001f75000000000000bf54000000000000070400004400f9f0ad32010000000000950000000000000005000000000000009500000000000000debfa255e44e4cc39f211fb04d7f202e6a536618f63a3fbd86bde99b679b4e6d24b8125690361eec3b181dcfd7c2fb2d1f8975b579a085bee32d414c1f3ab987a9de6185ae8021f48a33b9b35fe817e98beb9cefe7f40fd6f0ea3affbdaaa897c70fb01d270a7b00d36fb5ab8fa92ac014a106e3e4decc68652503ca54fcef437d96c8a05d59ddcc8abf09cd77e93e940207b03189c5d4661e43df6f1f036c8d85a2ad7615a021f8cbe507ef94845562668be443c2ba9b6548fb9f33315366e9ae9ce3175d1b532226b63b460d68808a67529637bf7f6731ad0cf1718bae3c8b9d2f89050cb496fe791381af6fab290900000000000000d640a5fde1f7d5eaa97cd25523fbd77300000000000000d67559b0c848aa3e7091f33e2dfc351e903ce85488fb25691249545bcf877011847df184bae6d3f5d0c016ec0706e5bbd04d27ec5769ecac581d5b2fcb494d8c2df1929398ec5c3675ed16c28dc646a695eed7f50c531a612d5677b5e949f21757d312f5089602c4e89ee42c13bdcfb74601ec2ec65f38f64189f1fa"], &(0x7f0000000100)='GPL\x00'}, 0x48) [ 515.453137] netlink: 12 bytes leftover after parsing attributes in process `syz-executor.3'. 02:16:04 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x609101, 0x7ffffe, 0x4002011, r1, 0x0) 02:16:04 executing program 5: perf_event_open(&(0x7f0000000100)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = getpid() sched_setscheduler(r0, 0x5, &(0x7f00000001c0)) syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x200000, 0x8, &(0x7f0000000200)=[{&(0x7f0000010000)="200000000002000019000000900100000f000000000000000200000006000000000008000080000020000000dbf4655fdbf4655f0100ffff53ef010001000000daf4655f000000000000000001000000000000000b0000000004000008000000d2c200001203", 0x66, 0x400}, {&(0x7f0000010100)="00000000000000000000000082e36724c6f34caa846ed2e527703378010040", 0x1f, 0x4e0}, {&(0x7f0000000080)="03", 0x1, 0x640}, {&(0x7f0000000040)="02000000030000000400000019000f000300040000000000000000000f002e69", 0x20, 0x1000}, {&(0x7f0000010500)="7f000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x1002, 0x2000}, {&(0x7f0000012600)="ed41000010000000daf4655fdbf4655fdbf4655f00000000000004008000000000000800050000000af301000400000000000000000000000900000010", 0x3d, 0x4400}, {&(0x7f0000012800)="8081000000180000daf4655fdaf4655fdaf4655f00000000000001008000000010000800000000000af301000400000000000000000000000200000030", 0x3d, 0x4800}, {&(0x7f0000013900)="111fc0d901000000803a0900803a09000000000006", 0x15, 0x30000}], 0x0, &(0x7f00000000c0)=ANY=[]) r1 = creat(&(0x7f0000000140)='./file0/file1\x00', 0x0) write$cgroup_type(r1, &(0x7f00000009c0), 0xd4ba0ff) fstat(0xffffffffffffffff, &(0x7f0000000000)={0x0, 0x0, 0x0, 0x0, 0x0}) setresuid(0xee01, 0x0, 0x0) ioctl$NS_GET_OWNER_UID(0xffffffffffffffff, 0xb704, &(0x7f00000008c0)=0x0) r4 = syz_mount_image$romfs(&(0x7f00000005c0), 0x0, 0x0, 0x2, &(0x7f0000000880)=[{&(0x7f0000000680)="e586d7f1c45fb9eb220ebbde257b2b307ab1b690d882407419571e28eff13b1e35092afc0923151fe2338cf5f4460f3d32e3ee5ffe7db8a242417dfb22d51d83016b755f0512b9dcb755bf71b2f5aab32a5776d599593ea179e2614071ac61dad725d1ce23cf72a8e3cfc1d334301ba7e09b542ef21ca25add12ff4777a06590499d9b0de616980066e90a0ad2a9bddcf38159c41f7d46efd73769fba2b3cf82ad399e946dcc19e687f01648e70b2cf59ec4cd2fd7d1cc22f525c94959744ecc6065406ec43c58946a42e53895a753dcf2f8f59fa89975bf", 0xd8}, {&(0x7f0000000780)="8742a5f41d0e44be7adb8f657192abe4f426f400699b5644e0538f15f9feaea2b1b48ff1b602fc44a65252ee9c303b1b76c2ecb4f19dcfda4ee40d0bbf275f12c63e71f6ef97eba93a0168b2ef63ad957a70fee86e097658f1f20ebe0e3d445e6d9429090461d11b2bd80a5cc659ff30e3ee446d4477ecf0dc0ce30d4acca5bfdf8566d318a62db4e936f4c45b5e3f7cad278687f5387ad1cca10ea21a50ad5240a98f3be05d735834a9db001cc0d5b9db82d10753856265bc62303665e1b954569ad4614dcef65b3dd3244752e99a2768", 0xd1}], 0x400, &(0x7f0000000900)={[{'ext4\x00'}, {'K'}, {'wg0\x00'}, {'wg0\x00'}, {'ext4\x00'}, {':]'}, {'ext4\x00'}], [{@euid_gt={'euid>', r2}}, {@euid_eq={'euid', 0x3d, r3}}, {@fsmagic={'fsmagic', 0x3d, 0x4}}, {@fscontext={'fscontext', 0x3d, 'staff_u'}}, {@func={'func', 0x3d, 'POLICY_CHECK'}}]}) ioctl$BTRFS_IOC_GET_SUBVOL_INFO(r4, 0x81f8943c, &(0x7f00000002c0)) openat$zero(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) ioctl$sock_SIOCSIFVLAN_DEL_VLAN_CMD(0xffffffffffffffff, 0x8983, &(0x7f0000000280)={0x1, 'wg0\x00', {}, 0x3ff}) 02:16:04 executing program 3: mkdir(&(0x7f0000000240)='./file1\x00', 0x0) mkdir(&(0x7f0000000040)='./bus\x00', 0x0) r0 = creat(&(0x7f00000000c0)='./bus/file1\x00', 0x0) mkdir(&(0x7f0000000080)='./file0\x00', 0x0) mount$overlay(0x400002, &(0x7f0000000000)='./bus\x00', &(0x7f0000000100), 0x0, &(0x7f00000003c0)=ANY=[@ANYBLOB='upperdir=./file1,lowerdir=./bus,workdir=./file0,metacopy=on']) lsetxattr$security_capability(&(0x7f0000000140)='./bus/file1\x00', &(0x7f0000000180), &(0x7f0000000280)=@v3, 0x18, 0x0) link(&(0x7f00000001c0)='./bus/file1\x00', &(0x7f00000002c0)='./bus/file0\x00') perf_event_open(&(0x7f0000000300)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0x4, 0x5}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) rename(&(0x7f0000000200)='./bus/file0\x00', &(0x7f0000000380)='./bus\x00') write$binfmt_aout(r0, &(0x7f0000000780)=ANY=[@ANYRES16], 0x20) acct(&(0x7f0000000440)='./bus/file0\x00') [ 515.945100] EXT4-fs (loop5): mounted filesystem without journal. Opts: ,errors=continue [ 516.034782] overlayfs: upperdir is in-use as upperdir/workdir of another mount, mount with '-o index=off' to override exclusive upperdir protection. [ 516.095208] Process accounting resumed [ 516.110795] syz-executor.3 (5211) used greatest stack depth: 22560 bytes left [ 516.144097] Process accounting resumed 02:16:05 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x30, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random}]]}, 0x30}}, 0x0) 02:16:05 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x609200, 0x7ffffe, 0x4002011, r1, 0x0) 02:16:05 executing program 4: r0 = creat(&(0x7f00000000c0)='./file0\x00', 0x0) write$binfmt_script(r0, &(0x7f00000002c0)=ANY=[@ANYBLOB="230275964c0e4d1a14750ded544f96c8b5b62d6092608636c7d825b43245e955b642d9a3f1b2c95d8a3b0a3da597a1000195914376666e92611fe2862102f15763419c960358"], 0x141) close(r0) ioctl$VIDIOC_TRY_ENCODER_CMD(r0, 0xc028564e, &(0x7f0000000080)={0x3, 0x0, [0x1, 0x5, 0x80, 0x1, 0x200, 0xeb, 0xfffffffc, 0x6]}) r1 = openat(0xffffffffffffff9c, &(0x7f0000000100)='/proc/self/exe\x00', 0x0, 0x0) r2 = socket(0x2, 0x803, 0xff) connect$inet(r2, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r3 = dup(r2) sendfile(r3, r1, 0x0, 0x4000000000000081) 02:16:05 executing program 1: r0 = perf_event_open(&(0x7f0000000040)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x8) r1 = getpid() sched_setscheduler(r1, 0x5, &(0x7f0000000380)) r2 = socket(0x21, 0x1, 0x1) setsockopt$inet_sctp6_SCTP_ENABLE_STREAM_RESET(r2, 0x84, 0x76, &(0x7f0000000140)={0x0, 0x3}, 0x8) ioctl$PERF_EVENT_IOC_SET_FILTER(r0, 0x40082406, &(0x7f0000000000)='/dev/kvm\x00') r3 = openat$kvm(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) r4 = ioctl$KVM_CREATE_VM(r3, 0xae01, 0x0) r5 = ioctl$KVM_CREATE_VCPU(r4, 0xae41, 0x0) ioctl$BTRFS_IOC_GET_SUPPORTED_FEATURES(r5, 0x80489439, 0x0) getsockopt$inet_sctp_SCTP_MAX_BURST(0xffffffffffffffff, 0x84, 0x71, &(0x7f0000000000)=@assoc_value={0x0}, &(0x7f0000000040)=0x17) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(0xffffffffffffffff, 0x84, 0x74, &(0x7f0000000280)={r6, 0x0, 0x20}, &(0x7f0000000400)=0x18) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(0xffffffffffffffff, 0x84, 0x73, &(0x7f0000001800)={r6, 0x5, 0x10, 0x2, 0xfd0}, &(0x7f0000001840)=0x18) r7 = creat(&(0x7f00000000c0)='./file0\x00', 0x0) write$binfmt_script(r7, &(0x7f00000002c0)=ANY=[@ANYBLOB="230275964c0e4d1a14750ded544796c8ffffffff92608636c7d825b43245e955b642d9a3f1b2c95d8a3b0a3da597a1000195914376666e92611fe2862102f15763419c960358f38b60fa47d8cfd507c336870a5eea90bf816d8d4940f2a86a8bb5266a5ea93e6ebef9a597414bb4a72eb8a5d9943057888c96eafaafcb8fb2156e2be6b26fc5ef9e9a37661e5f4ccc5e241f040f19f47a6567f6fe10605eb0043ce46b8acde81bcf59b9aad5aa4a6f3cf96a482494617f9288"], 0x141) close(r7) syz_kvm_setup_cpu$x86(r7, r5, &(0x7f0000fe4000/0x18000)=nil, &(0x7f0000000040)=[@textreal={0x8, &(0x7f0000000440)="66b8000000000f23d80f21f86635800000300f23f866b9800000c00f326635000800000f30d9e5f30f589c0f00662e660f645df4642e2e0f01ef670f6e4c1c0bbaf80c66b8f48fc48a66efbafc0c66edbaf80c66b8f8abd28066efbafc0cb80000ef0f07", 0x64}], 0x1, 0x0, 0x0, 0x0) fcntl$setstatus(0xffffffffffffffff, 0x4, 0x44000) syz_kvm_setup_cpu$x86(0xffffffffffffffff, 0xffffffffffffffff, &(0x7f0000fe8000/0x18000)=nil, &(0x7f0000000100)=[@text16={0x10, 0x0}], 0x1, 0x47, 0x0, 0x0) ioctl$KVM_RUN(r5, 0xae80, 0x0) 02:16:05 executing program 3: mkdir(&(0x7f0000000240)='./file1\x00', 0x0) mkdir(&(0x7f0000000040)='./bus\x00', 0x0) r0 = creat(&(0x7f00000000c0)='./bus/file1\x00', 0x0) mkdir(&(0x7f0000000080)='./file0\x00', 0x0) mount$overlay(0x400002, &(0x7f0000000000)='./bus\x00', &(0x7f0000000100), 0x0, &(0x7f00000003c0)=ANY=[@ANYBLOB='upperdir=./file1,lowerdir=./bus,workdir=./file0,metacopy=on']) lsetxattr$security_capability(&(0x7f0000000140)='./bus/file1\x00', &(0x7f0000000180), &(0x7f0000000280)=@v3, 0x18, 0x0) link(&(0x7f00000001c0)='./bus/file1\x00', &(0x7f00000002c0)='./bus/file0\x00') perf_event_open(&(0x7f0000000300)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0x4, 0x5}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) rename(&(0x7f0000000200)='./bus/file0\x00', &(0x7f0000000380)='./bus\x00') write$binfmt_aout(r0, &(0x7f0000000780)=ANY=[@ANYRES16], 0x20) acct(&(0x7f0000000440)='./bus/file0\x00') 02:16:05 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000fc0)={&(0x7f0000000240)={0x30, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random}]]}, 0x30}}, 0x0) 02:16:05 executing program 0: syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='huge=always']) chdir(&(0x7f0000000380)='./bus\x00') r0 = creat(&(0x7f0000000400)='./bus\x00', 0x0) r1 = open(&(0x7f0000000200)='./bus\x00', 0x10103e, 0x0) pwritev(r0, &(0x7f0000000140)=[{&(0x7f0000000440)='\r', 0x1}], 0x1, 0x3800000, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x609201, 0x7ffffe, 0x4002011, r1, 0x0) 02:16:05 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x2, &(0x7f0000000fc0)={&(0x7f0000000240)={0x30, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random}]]}, 0x30}}, 0x0) 02:16:05 executing program 2: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000380), 0xffffffffffffffff) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000000)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000040)={0x0, 0x3, &(0x7f0000000fc0)={&(0x7f0000000240)={0x30, r1, 0x1, 0x0, 0x0, {{0x2}, {@val={0x8, 0x3, r3}, @val={0xc}}}, [@chandef_params=[@NL80211_ATTR_WIPHY_FREQ={0x8, 0x26, @random}]]}, 0x30}}, 0x0) 02:16:05 executing program 4: socketpair(0xb, 0x0, 0x8, &(0x7f0000000080)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$BTRFS_IOC_FS_INFO(r0, 0x8400941f, &(0x7f00000000c0)) open(&(0x7f00000004c0)='./file0\x00', 0x4002, 0x20) r1 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r2 = socket(0x2, 0x803, 0xff) r3 = socket$nl_xfrm(0x10, 0x3, 0x6) bind$netlink(r3, &(0x7f0000000080)={0x10, 0x0, 0x0, 0x1}, 0xc) r4 = socket$inet6(0xa, 0x3, 0x7) connect$inet6(r4, &(0x7f00000000c0)={0xa, 0x0, 0x0, @loopback}, 0x1c) setsockopt$inet6_IPV6_XFRM_POLICY(r4, 0x29, 0x23, &(0x7f0000000340)={{{@in=@dev={0xac, 0x14, 0x14, 0x18}, @in6=@mcast2, 0x0, 0x0, 0x0, 0x0, 0xa}, {}, {}, 0x0, 0x0, 0x1}, {{@in=@private, 0x0, 0x33}, 0x0, @in=@dev, 0x0, 0x0, 0x0, 0x24}}, 0xe8) sendmmsg(r4, &(0x7f0000000480), 0x2e9, 0x1f4) sendfile(r3, r4, &(0x7f0000000500)=0x9df, 0xb9b) connect$inet(r2, &(0x7f0000000040)={0x2, 0x0, @local}, 0x10) r5 = dup(r2) sendfile(r5, r1, 0x0, 0x4000000000000081) [ 516.830930] Process accounting resumed [ 516.941863] ================================================================== [ 516.949681] BUG: KASAN: use-after-free in skb_queue_tail+0x11a/0x140 [ 516.956188] Write of size 8 at addr ffff888000101080 by task syz-executor.4/5261 [ 516.963722] [ 516.965374] CPU: 0 PID: 5261 Comm: syz-executor.4 Not tainted 4.19.193-syzkaller #0 [ 516.973346] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 [ 516.982907] Call Trace: [ 516.985512] dump_stack+0x1fc/0x2ef [ 516.989245] print_address_description.cold+0x54/0x219 [ 516.994714] kasan_report_error.cold+0x8a/0x1b9 [ 516.999484] ? skb_queue_tail+0x11a/0x140 [ 517.003749] __asan_report_store8_noabort+0x88/0x90 [ 517.008781] ? skb_queue_tail+0x11a/0x140 [ 517.012952] skb_queue_tail+0x11a/0x140 [ 517.016940] netlink_broadcast_filtered+0x74b/0xbc0 [ 517.021975] netlink_broadcast+0x35/0x40 [ 517.026226] xfrm_send_acquire+0x81b/0xac0 [ 517.030481] ? xfrm_get_policy+0xad0/0xad0 [ 517.034727] ? lock_acquire+0x170/0x3c0 [ 517.038712] ? km_state_expired+0xc0/0xc0 [ 517.042972] ? check_preemption_disabled+0x41/0x280 [ 517.048181] km_query+0xc5/0x210 [ 517.051558] xfrm_state_find+0x1d21/0x2d90 [ 517.055805] ? xfrm_state_afinfo_get_rcu+0xe0/0xe0 [ 517.060736] ? check_preemption_disabled+0x41/0x280 [ 517.065772] ? __lock_acquire+0x6de/0x3ff0 [ 517.070005] xfrm_tmpl_resolve+0x2f3/0xc20 [ 517.074237] ? xfrm_net_init+0x990/0x990 [ 517.078659] ? ip6_pol_route_lookup+0xe10/0xe10 [ 517.083317] ? xfrm_sk_policy_lookup+0x4cd/0x690 [ 517.088157] xfrm_resolve_and_create_bundle+0xd8/0x3e0 [ 517.093421] ? xfrm_tmpl_resolve+0xc20/0xc20 [ 517.097819] ? xfrm_sk_policy_lookup+0x4f4/0x690 [ 517.102577] ? xfrm_selector_match+0xf60/0xf60 [ 517.107332] ? check_preemption_disabled+0x41/0x280 [ 517.112342] ? __local_bh_enable_ip+0x159/0x270 [ 517.116998] ? xfrm_expand_policies+0x418/0x5e0 [ 517.121673] xfrm_lookup_with_ifid+0x232/0x1c40 [ 517.126411] ? xfrm_expand_policies+0x5e0/0x5e0 [ 517.131072] ? ip6_flush_pending_frames+0xc0/0xc0 [ 517.135908] ? mark_held_locks+0xf0/0xf0 [ 517.139958] ? check_preemption_disabled+0x41/0x280 [ 517.144973] xfrm_lookup_route+0x36/0x1e0 [ 517.149108] ip6_dst_lookup_flow+0x159/0x1d0 [ 517.153504] ? ip6_dst_lookup+0x60/0x60 [ 517.157558] ? check_preemption_disabled+0x41/0x280 [ 517.162648] ? check_preemption_disabled+0x41/0x280 [ 517.167657] rawv6_sendmsg+0xc65/0x36a0 [ 517.171710] ? compat_rawv6_setsockopt+0x140/0x140 [ 517.176800] ? aa_profile_af_perm+0x2e0/0x2e0 [ 517.181281] ? _raw_spin_unlock+0x29/0x40 [ 517.185417] ? wp_page_copy+0x1203/0x2c40 [ 517.189587] ? rw_copy_check_uvector+0x27c/0x340 [ 517.194516] ? aa_af_perm+0x230/0x230 [ 517.198348] ? kernel_recvmsg+0x220/0x220 [ 517.202504] inet_sendmsg+0x132/0x5a0 [ 517.206293] ? security_socket_sendmsg+0x83/0xb0 [ 517.211338] ? inet_recvmsg+0x5c0/0x5c0 [ 517.215297] sock_sendmsg+0xc3/0x120 [ 517.219012] ___sys_sendmsg+0x3b3/0x8e0 [ 517.222974] ? copy_msghdr_from_user+0x440/0x440 [ 517.227740] ? up_read+0x17/0x110 [ 517.231278] ? __do_page_fault+0x180/0xd60 [ 517.235510] ? trace_hardirqs_on_thunk+0x1a/0x1c [ 517.240253] ? lockdep_hardirqs_on+0x3a8/0x5c0 [ 517.244821] ? trace_hardirqs_on_thunk+0x1a/0x1c [ 517.249742] ? __do_page_fault+0x180/0xd60 [ 517.253975] ? retint_kernel+0x2d/0x2d [ 517.257859] __sys_sendmmsg+0x195/0x470 [ 517.261839] ? __ia32_sys_sendmsg+0x220/0x220 [ 517.266428] ? aa_sk_perm+0x534/0x930 [ 517.270333] ? ipv6_setsockopt+0x7f/0x160 [ 517.274473] ? __se_sys_futex+0x28f/0x3b0 [ 517.278697] ? __se_sys_futex+0x298/0x3b0 [ 517.282833] ? do_futex+0x1880/0x1880 [ 517.286654] ? entry_SYSCALL_64_after_hwframe+0x3e/0xbe [ 517.292006] __x64_sys_sendmmsg+0x99/0x100 [ 517.296962] ? lockdep_hardirqs_on+0x3a8/0x5c0 [ 517.301620] do_syscall_64+0xf9/0x620 [ 517.305420] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 517.310684] RIP: 0033:0x4665d9 [ 517.313897] Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 [ 517.333219] RSP: 002b:00007efd88fae188 EFLAGS: 00000246 ORIG_RAX: 0000000000000133 [ 517.341436] RAX: ffffffffffffffda RBX: 000000000056bf80 RCX: 00000000004665d9 [ 517.348877] RDX: 00000000000002e9 RSI: 0000000020000480 RDI: 0000000000000006 [ 517.356330] RBP: 00000000004bfcb9 R08: 0000000000000000 R09: 0000000000000000 [ 517.364666] R10: 00000000000001f4 R11: 0000000000000246 R12: 000000000056bf80 [ 517.372014] R13: 00007ffd057548df R14: 00007efd88fae300 R15: 0000000000022000 [ 517.379982] [ 517.381603] Allocated by task 5261: [ 517.385220] kmem_cache_alloc+0x122/0x370 [ 517.389367] skb_clone+0x151/0x3d0 [ 517.392915] netlink_deliver_tap+0x955/0xb00 [ 517.397322] netlink_broadcast_filtered+0x73c/0xbc0 [ 517.402518] netlink_broadcast+0x35/0x40 [ 517.406576] xfrm_send_acquire+0x81b/0xac0 [ 517.410795] km_query+0xc5/0x210 [ 517.414235] xfrm_state_find+0x1d21/0x2d90 [ 517.418566] xfrm_tmpl_resolve+0x2f3/0xc20 [ 517.422894] xfrm_resolve_and_create_bundle+0xd8/0x3e0 [ 517.428164] xfrm_lookup_with_ifid+0x232/0x1c40 [ 517.432836] xfrm_lookup_route+0x36/0x1e0 [ 517.436998] ip6_dst_lookup_flow+0x159/0x1d0 [ 517.441747] rawv6_sendmsg+0xc65/0x36a0 [ 517.445723] inet_sendmsg+0x132/0x5a0 [ 517.449525] sock_sendmsg+0xc3/0x120 [ 517.453592] ___sys_sendmsg+0x3b3/0x8e0 [ 517.457643] __sys_sendmmsg+0x195/0x470 [ 517.461621] __x64_sys_sendmmsg+0x99/0x100 [ 517.466027] do_syscall_64+0xf9/0x620 [ 517.469815] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 517.475001] [ 517.476615] Freed by task 5261: [ 517.479881] kmem_cache_free+0x7f/0x260 [ 517.483880] kfree_skbmem+0xc1/0x140 [ 517.487578] consume_skb+0x120/0x3d0 [ 517.491329] nlmon_xmit+0xdb/0x120 [ 517.494962] dev_hard_start_xmit+0x1a8/0x920 [ 517.499387] __dev_queue_xmit+0x269d/0x2e00 [ 517.503789] netlink_deliver_tap+0x8fb/0xb00 [ 517.508204] netlink_broadcast_filtered+0x73c/0xbc0 [ 517.513401] netlink_broadcast+0x35/0x40 [ 517.517457] xfrm_send_acquire+0x81b/0xac0 [ 517.521687] km_query+0xc5/0x210 [ 517.525165] xfrm_state_find+0x1d21/0x2d90 [ 517.529599] xfrm_tmpl_resolve+0x2f3/0xc20 [ 517.533838] xfrm_resolve_and_create_bundle+0xd8/0x3e0 [ 517.539109] xfrm_lookup_with_ifid+0x232/0x1c40 [ 517.543766] xfrm_lookup_route+0x36/0x1e0 [ 517.547900] ip6_dst_lookup_flow+0x159/0x1d0 [ 517.552295] rawv6_sendmsg+0xc65/0x36a0 [ 517.556400] inet_sendmsg+0x132/0x5a0 [ 517.560343] sock_sendmsg+0xc3/0x120 [ 517.564053] ___sys_sendmsg+0x3b3/0x8e0 [ 517.568216] __sys_sendmmsg+0x195/0x470 [ 517.572358] __x64_sys_sendmmsg+0x99/0x100 [ 517.576687] do_syscall_64+0xf9/0x620 [ 517.580479] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 517.585656] [ 517.587284] The buggy address belongs to the object at ffff888000101080 [ 517.587284] which belongs to the cache skbuff_head_cache of size 232 [ 517.600536] The buggy address is located 0 bytes inside of [ 517.600536] 232-byte region [ffff888000101080, ffff888000101168) [ 517.612308] The buggy address belongs to the page: [ 517.617312] page:ffffea0000004040 count:1 mapcount:0 mapping:ffff8880b5b95d80 index:0x0 [ 517.625524] flags: 0x7ff00000000100(slab) [ 517.629664] raw: 007ff00000000100 ffffea0002bcb448 ffffea0002a11a08 ffff8880b5b95d80 [ 517.637533] raw: 0000000000000000 ffff888000101080 000000010000000c 0000000000000000 [ 517.645624] page dumped because: kasan: bad access detected [ 517.651661] [ 517.653274] Memory state around the buggy address: [ 517.658642] ffff888000100f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 517.666003] ffff888000101000: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc [ 517.673563] >ffff888000101080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb [ 517.681255] ^ [ 517.684606] ffff888000101100: fb fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc [ 517.692149] ffff888000101180: fc fc fc fc fc fc fc fc 00 00 00 00 00 00 00 00 [ 517.699700] ================================================================== [ 517.707053] Disabling lock debugging due to kernel taint [ 517.712582] Kernel panic - not syncing: panic_on_warn set ... [ 517.712582] [ 517.719957] CPU: 0 PID: 5261 Comm: syz-executor.4 Tainted: G B 4.19.193-syzkaller #0 [ 517.729234] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 [ 517.739364] Call Trace: [ 517.742135] dump_stack+0x1fc/0x2ef [ 517.746263] panic+0x26a/0x50e [ 517.749443] ? __warn_printk+0xf3/0xf3 [ 517.753331] ? lock_downgrade+0x720/0x720 [ 517.757845] ? print_shadow_for_address+0xb8/0x114 [ 517.762942] ? trace_hardirqs_off+0x64/0x200 [ 517.767781] kasan_end_report+0x43/0x49 [ 517.771925] kasan_report_error.cold+0xa7/0x1b9 [ 517.776757] ? skb_queue_tail+0x11a/0x140 [ 517.781058] __asan_report_store8_noabort+0x88/0x90 [ 517.786453] ? skb_queue_tail+0x11a/0x140 [ 517.790604] skb_queue_tail+0x11a/0x140 [ 517.794572] netlink_broadcast_filtered+0x74b/0xbc0 [ 517.800718] netlink_broadcast+0x35/0x40 [ 517.805031] xfrm_send_acquire+0x81b/0xac0 [ 517.809380] ? xfrm_get_policy+0xad0/0xad0 [ 517.813980] ? lock_acquire+0x170/0x3c0 [ 517.818577] ? km_state_expired+0xc0/0xc0 [ 517.822980] ? check_preemption_disabled+0x41/0x280 [ 517.828003] km_query+0xc5/0x210 [ 517.831359] xfrm_state_find+0x1d21/0x2d90 [ 517.835603] ? xfrm_state_afinfo_get_rcu+0xe0/0xe0 [ 517.840521] ? check_preemption_disabled+0x41/0x280 [ 517.845527] ? __lock_acquire+0x6de/0x3ff0 [ 517.849753] xfrm_tmpl_resolve+0x2f3/0xc20 [ 517.854399] ? xfrm_net_init+0x990/0x990 [ 517.858621] ? ip6_pol_route_lookup+0xe10/0xe10 [ 517.863382] ? xfrm_sk_policy_lookup+0x4cd/0x690 [ 517.868232] xfrm_resolve_and_create_bundle+0xd8/0x3e0 [ 517.873601] ? xfrm_tmpl_resolve+0xc20/0xc20 [ 517.878019] ? xfrm_sk_policy_lookup+0x4f4/0x690 [ 517.882952] ? xfrm_selector_match+0xf60/0xf60 [ 517.887548] ? check_preemption_disabled+0x41/0x280 [ 517.892725] ? __local_bh_enable_ip+0x159/0x270 [ 517.897553] ? xfrm_expand_policies+0x418/0x5e0 [ 517.902325] xfrm_lookup_with_ifid+0x232/0x1c40 [ 517.907188] ? xfrm_expand_policies+0x5e0/0x5e0 [ 517.911844] ? ip6_flush_pending_frames+0xc0/0xc0 [ 517.916762] ? mark_held_locks+0xf0/0xf0 [ 517.920816] ? check_preemption_disabled+0x41/0x280 [ 517.925845] xfrm_lookup_route+0x36/0x1e0 [ 517.930603] ip6_dst_lookup_flow+0x159/0x1d0 [ 517.935088] ? ip6_dst_lookup+0x60/0x60 [ 517.939058] ? check_preemption_disabled+0x41/0x280 [ 517.944073] ? check_preemption_disabled+0x41/0x280 [ 517.949384] rawv6_sendmsg+0xc65/0x36a0 [ 517.953382] ? compat_rawv6_setsockopt+0x140/0x140 [ 517.958323] ? aa_profile_af_perm+0x2e0/0x2e0 [ 517.962809] ? _raw_spin_unlock+0x29/0x40 [ 517.966959] ? wp_page_copy+0x1203/0x2c40 [ 517.971117] ? rw_copy_check_uvector+0x27c/0x340 [ 517.975959] ? aa_af_perm+0x230/0x230 [ 517.979774] ? kernel_recvmsg+0x220/0x220 [ 517.983923] inet_sendmsg+0x132/0x5a0 [ 517.987815] ? security_socket_sendmsg+0x83/0xb0 [ 517.992555] ? inet_recvmsg+0x5c0/0x5c0 [ 517.996526] sock_sendmsg+0xc3/0x120 [ 518.000249] ___sys_sendmsg+0x3b3/0x8e0 [ 518.004249] ? copy_msghdr_from_user+0x440/0x440 [ 518.009104] ? up_read+0x17/0x110 [ 518.012548] ? __do_page_fault+0x180/0xd60 [ 518.016783] ? trace_hardirqs_on_thunk+0x1a/0x1c [ 518.021615] ? lockdep_hardirqs_on+0x3a8/0x5c0 [ 518.026186] ? trace_hardirqs_on_thunk+0x1a/0x1c [ 518.030930] ? __do_page_fault+0x180/0xd60 [ 518.035161] ? retint_kernel+0x2d/0x2d [ 518.039135] __sys_sendmmsg+0x195/0x470 [ 518.043096] ? __ia32_sys_sendmsg+0x220/0x220 [ 518.047677] ? aa_sk_perm+0x534/0x930 [ 518.051468] ? ipv6_setsockopt+0x7f/0x160 [ 518.055784] ? __se_sys_futex+0x28f/0x3b0 [ 518.059928] ? __se_sys_futex+0x298/0x3b0 [ 518.064279] ? do_futex+0x1880/0x1880 [ 518.068080] ? entry_SYSCALL_64_after_hwframe+0x3e/0xbe [ 518.073461] __x64_sys_sendmmsg+0x99/0x100 [ 518.077701] ? lockdep_hardirqs_on+0x3a8/0x5c0 [ 518.082390] do_syscall_64+0xf9/0x620 [ 518.086174] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 518.091353] RIP: 0033:0x4665d9 [ 518.094531] Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 [ 518.113973] RSP: 002b:00007efd88fae188 EFLAGS: 00000246 ORIG_RAX: 0000000000000133 [ 518.121839] RAX: ffffffffffffffda RBX: 000000000056bf80 RCX: 00000000004665d9 [ 518.129265] RDX: 00000000000002e9 RSI: 0000000020000480 RDI: 0000000000000006 [ 518.136520] RBP: 00000000004bfcb9 R08: 0000000000000000 R09: 0000000000000000 [ 518.143783] R10: 00000000000001f4 R11: 0000000000000246 R12: 000000000056bf80 [ 518.151056] R13: 00007ffd057548df R14: 00007efd88fae300 R15: 0000000000022000 [ 518.158430] Kernel Offset: disabled [ 518.162076] Rebooting in 86400 seconds..