import hashlib import sys import argparse try: import netifaces except ImportError: print "Unable to import netifaces module. Please install it: 'pip install netifaces'" sys.exit(-1) blacklist = [ # # This hash corresponds to MAC address 0c5b8f279a64. # It is used by every single Huawei E5573 USB modem, so its presence isn't an indicator # of badness. #"7485a1eaffbf7259ef9a526bdb2532ac44f1ee4f00f32698087ca38e5401e728", # # Likewise, this hash corresponds to a widely used MAC - 001e101f0000. It is used by the # Huawei HWD12 LTE modem. # "4141e7564b673386fb2161df2fc320ac2b8af3539e04c02e547e03ec75e75099", # # And finally, this one is the default VMWare MAC address of 005056c00008. #"77c552f5d18c184f2fdd9034b329336bc21cf2f36ee09ea78986074bf812be0e", "5dd1682dec791fd29daa23a386de98939c5bd1bcd2b3dc32713433a94e0127a0", "d9935b495b2e5c4a6126c978af7dd24403650eb818c09d85542a8be4d276f44b", "d68a7035ea82c598ae1cb6eb235ecb88c52c0f97dd9e7f2460ae40f51447f777", "757121c022fa70ff91598a63f3ad09769992036f980bb2b0c761e31770511f1f", "58fec2002e0fdac1ae29b6b31ff58bd19f7fcf6a507c9e5a448664bb2a78075d", "6c280beaf29b8c8ac7b42a217edffcd5b77401dbd8933057097a7710a7451d6a", "8d15ae35d707d79f56f262281c68617bee9763f2817987e90600c4d4d2bbab79", "596571b81ec07dc140be0ff5fcd3ed00daf596a9028ea4f66ccf49aaaff345de", "e1c6a42ef5ae137b92ca75e794773aab4d2e47579a82321f6e1a230c9c560723", "41a83770fadca71f3bfd37b89bfd117f7b5ebcefc65efbac91b66373211d18bd", "5385b1df7a10a42fb3a18098b10bdd03862921c555227d1ec29d184a0abac44f", "690689301a640e5201298b73b37de34f9769c7c3f000b0d873b4ebeccb1f6458", "0b9e4f3dfad35be9278c67e6ef39999f0ace9b92406d26affaecd811980189fd", "7df7340179e350e09c72d7d67af094c60c2c7e8feefce754be7ae1af8a2b3447", "ac7c4a27c312777eeb5b4edf722ad1a1d0535b5869b2211591bfd8c79568e0e2", "3404ad1d99e0c3dad3eea6157e803b88fdb55370df39b4c5cc4169565f6f70e9", "b30ac5cda2991b01a2995dbb22faf336b8528f37f9b4ba3baaf391a155cb2581", "c063d285d1fe2181d94973dad87ca7bd63344c888cae90be5c78a02ebd9a2778", "89070cd69d47f80b7e61a5e388b11bc1c3efdd71069e8fc0a47ed3acb43aff06", "ec101b405b8420c2d1bc72aaf626e033b3d961b4464d6b6efa6316c53e490349", "083efee14eb3da6a0d5e3a838ff54d9ebf9bd432a6c8b2cdbb802eaadc173093", "8e89e7631799074e983b087a9c82ce6012929ecc0c7d7dd6ee44ab938ee25652", "b372ed654fb8fc553de72e69af7b5bea1c5f0efc8c1ea0e62db0d0bdb49bb5da", "b75c2024064f792cd1c6f25ba111318225e9bb6d16f562d0196aa35e70983fcc", "c8ec358146f7e09f1688b3e060411e656a4619227987f36f91647bdf1f5634bc", "27c0cabe5070311539742230fdc21f24346f421c92a1fbdd8d0f846b8b9d9017", "2d886bcfea60e76378364d6ea428a7efa313beb36716c03cb09aec9520da440e", "f19141a44a2494cd434d17025bc56db3226a444431503ee63d5fee04bb122478", "d65035b00df98a6a87634cc6c71c1198872c09a0a5b6045adae0853ee4afa594", "621486bc420478e600083101e4102b07d685471721703b2547311265599b3a01", "9b9c9a6f2add3daf63d160329e911725c18cf7e33660c9fe703cba22d90aca80", "07a4681e68723feb814c6c79d900fc54b68dce5a1db534ac76e1a3cc5f169bc2", "fce156ab735dc0f9bf08feccbe39e17869a108410e79d8784ace06a2e2b1e6c4", "8779bc6bc40e4acc83cb4fa682b9e766938ae18e5075ea4ad3e92b246d538b97", "02eb991113643ccff8ab25108cab8e56bdf148f83f29c37af74027653634edfc", "56f8c897c0e8268459cd4b5f484fcc44435e4ce12c2c7aff6b632bb65dee2d1f", "132eb70320492ac0357f011d476729a97d8541488c713ed82db20b5549a6a7a7", "a26e4d1277744d926ceabdbdd83a9f95d9546c8876c9483acb00cf451fa34a9e", "30441e8a34b18080f18431d7f23e34dfb9072c5adf9d28359bda933f6aeddc08", "dee136782ba2b9dd6c051e7b840420871d49e1848a6bb36864e4a0899438d855", "41a5ce7ed1f74335468662623f27e09a67d5e7c9c23fb6b97b9fd2776d01998b", "858032c1f2f5b618cd6af046f78467a878409a89c43c16ef5d71be90cd37cd70", "635537a84811855724b087bc53f0e0a95c55b8339616188529240dfbdc4e88e3", "301fd4709251e4b005fbae00006717cb6349c084182a5968b5d38e2289e43525", "53cfb12637d119b58fc1f6a6a6a65a362f132b61457f9810369958983206e9a4", "b79edbcf04db1e03520f765689054f49b4a6d2bd0fb6c49d48ddad5035443368", "edd8d4c2d563b2e2ce4a04f58d2e29535d16716cd7d8080c57af2cfdbde4b506", "b19d9dd6c29c0cd8ce8ae67cbe308fbff0863c0e7bfd053f410801fc39322b19", "c497c205f58a9c7055df41ef9962057b6d48d49735e7a8faba4c4853d35d78f9", "dd037cb5a6af638d126de82b91bb3e269a06c3fbac2f7bf1fcd32b551433938f", "2889d5e9ebf6d49a04847c640a5552be8af3e6192d70c23150b2e76430b9a1b3", "aa0cb877e7d290c5de107517259ece2527fab6c718795cb37eae627314d6fb4b", "92819c0dd26e13187a635af4c5191e4a7679887a41b893de6d59e76dc4e2185c", "e0cc0e5b41f17b0c23c1abd2278446b1cc23fd65d63a82d971e1ae16b81f4816", "0cd1dd5a57996b681d8dfaae002da443065762261020e4af6bf4ac8c23470aae", "7e0a9ec122a00afea71ac6c7ff542eb39ca363265d9aa936229035c5c82e196a", "964bc1f44bf2b13032a729bf82d649e8563a29742d585388fd54d934cfc048c0", "b5120500716fdacc437edc0871d46bcc2d59c427fb1523515320fc82d528a6a3", "55e0a5e2f3570aaa57c6e13e1c95eb9986880fe864afb9a80c29a7a7d377d363", "c93eb1ef206f8d69be03f9f8aab0aa2857b3e80393a580972fd75c7de0d19c93", "9ccb29ff90a648d750261ef16703f9612f0d42cbf8cc36434fa8316e1e272f2d", "72085f4c921c24a5a7c86235e8d76bfe3fac34ade90666782051cb701ffe4da0", "a6fff26074fe415aa470936f3124a4239584d8815f95360b7e9dbf410af7b8fc", "4c675f45b0f6e9c9c949ccac9edacef190c45e87ff9f63a425fb118dcc5dcfef", "b91664d847de45a96c7a7539f7ad836e0d5bdeee996f255c00d87ac035e68bea", "4ff6edb8d033bb38b846fbc16f6b565ba3eb7c52e624f503567b3323d3fa0548", "a0309bc3cef519937a4d9d754ae77abf9d8669599a0c3c9a975b7f586b9e205b", "874cd1da70beefcc6e12a7d490a257d096d938eccf887734d12ad759d68b9484", "4cf9690d986284446758e6ac1c3c8f214ca2087904e68b6a6545e5e40cc96674", "2957550913df600a9158ba5e40bc330e21a8999200f39d5d43ddc68d91e95db9", "004bbc054401cd1292c9c756198a838ffbe0b5b7650864f23768f6d56f33eeb0", "8a70552d0a1ecf8969587eb351e179c7ce8c598c6f2f72f5c753240170b28444", "92631e2c4a863f4e23bfc3c954b3629da6feff8dd7269d40c67a08eb2bedc26b", "25645ed60796b03a9da5ff8067a9eb178b63d25f4bd8845d8b1136bbdbecf4ed", "e209c390d6d2055d977fc70c0939b3d9e457ae590b5acddaac1e0a8103164fb7", "f5dc36758ab42d6515399fd52eabbdf3ec80948a63b53345067421c00a57e9b3", "d0d9140c97daccf521cf5e730ca7ef5cfa49ba9e984fd6f5be51518820f38e76", "703bf1af40f3f0ddcc97256e3778018483c156e89d6ee4a8f2818f9685d95b4f", "c6616f901084c5f18647d558748d7f819c0e8138c2132af7c2d6b603b03233fc", "7c9acacf8514cb2f0a0869e2bb91d12aa8a28b1499beed578782def78f64704c", "22bd290c90958be69a8d90b527a3682f3090688393cf2ee4a6a14bb9f4940687", "7e19ea2c08f76bb4b5914cc2e3a8badb4ad110fffca942b4189ebeafbbda1fab", "a3a41de497c12b3a04bd65600889b5185f4b0a1314e10ff7d35d2048919be842", "3d3921cb6dcf3c97a5f86a2ad205e429c43073e0f729fc26828227a75850c10c", "efd2375fc2388f3c13eb83a726e9e4aa407773be6fa7a19d090c2e8a106eb744", "b5a09afea610cb5073baef139509e66c3a65b7596cf913a0a5d5d82f01212440", "5ccea50cefa02724a0d62610d8380cdcc007f76f7a10fdfbb2dec981c367f0fc", "a0acd7ca7234a5981d38c7406c4ec619eb0ccc5ccd36a92c36e5a0d14e131b0e", "2bcad20be1ef5fff7a8ac3ea676e26f999a95ed099181ed2f721711e47fbad62", "5290557b0bbae2e9890d68f130142be2b67f14509ad897568967531052d6d681", "ff3234f1ff2ccd1623bd9defc7ae2d0c9fe32f2de1a4e54a662b91923c42f597", "4334ca314fb72922d64dec0f79cf032e1c8b13d6b386fde25320b501783da9cc", "a1fa543d436cc75563a836a5b7078744e64dcfbeb2362c5e5671c03eb5dc53db", "00a69426021d512eccf0c842a3b0da134f6932dd1223e84997f3a94ed6367940", "989114feb2d83dc8a8b19e1d6622d8b909c059eb9668b88961ffc7b715ed6c6b", "cf964834595eb3caa1f21e6133db50984bb6d9f9796acdae2d86ef75b48096cc", "5f2a78fad19dfa15de389a2a530817909b9502f60e20c181e6a8163e24765c78", "3218d55fb73f9f17fcfb44cc021e689ec689e1f8af411863b90b0f70e01fb463", "a1c00fa7df6b4452592872d8a9e4a98d30f978263a28020f1f07de20a63c1b3a", "ba9f1ef767ff596a9cab817319ba449fd082cb04c39d4b802ecfa2921e563aae", "ef8bd8bfea7db8e911c9e827150f6b6a9dec9c75c6be0cf720c9f36e27294a8e", "00bea5a2bea127ca04413355796353795d88d3a4f3d932de2a057daa1608a3ac", "2d9f73eabda900746472e15e3c2879af7fefbb68550cf3a26d7605b15c951455", "782e4698dc5600f203bc7661a4b10fb528bbb736b859304c9c8cbc09b6e165ae", "1715bd41d868ed80d43df010dbaf761b74a5e4f3c851406ea7c651731640284c", "f806932c07c6e7bde7af68be8c565cee3673322dab765800636b1fad5f198d29", "67127f3b78c7cc6fe3d0c4268ac46b1740e3539b4142592177a91a87f2d5552d", "cde4927aaf7c96803ac31a128a347a097675d6f587cf961407f2acc543b06f32", "cdb11f78f3b930b6c9437b2d685ccad26138f81f809f264f87f6b4daa8c5a0fa", "d79e5476a96dc8da06796aa7fbc700bb13871a0615f6d1125db0a349a6abc127", "68885e231bf985ff2f7dfaec10fcd47105f8091ef0f2bbb19e96f50ad165c29f", "3034e89b2314f8fed3436ef353f63d24604db3a666d8bd355d320696ec530827", "d5bc1f7f305a2597be7f4fba027b932d3a9a34b96d2698b1383d24b51b03a6e5", "582ed822ae663b94da3a007ebbfb00c1974aef8d852240709faf9e50e297bb8a", "15d80e3f51800e026bf7c926efd8154e12d09466451fa11f00f4776acd9b1dc6", "022de94170959d416301a3d4fbac00e48c3510a5656f24e33ab059294d316664", "c4d9f869457e0c4fdc21edc495ea319db5bcc942b97f976b8500bc6f56567539", "8ff5e95b4e3d8ed49a3ce8afcbe3e79b805b35eaa2e0875354fff112ce3c6160", "aa7c3f2c1375915be568122c4e679278000b841f6918a98d83a20aab091955b2", "cde5d9a781e56f37351be146a4389a975a9838f0fe13710f3501202e8ca2fb7a", "1cd5c36941558a4793100e4ffb55b9db3817156ebae12a8117d6aaf79097e4d3", "f80516e4f863a34bc06c191d9699162644689b12636ee547763d8b1410bd9b82", "5fee2602318459fb708ed3cc302d16400a28dc84049a784e06dfad6359d031cb", "159f3237ee4d969ed661ec21a00d3dc2796880188c94bb0786ea0c1808859950", "eb5e526940eacc8b946875e409dc6ebd25801c74d4b4c2eb2fb8b4a0de5aee1f", "e5ac953e0cdac05f3281397c04e64320f3e0a63b909b8a5f98d174743601dcfb", "fe70ca083b33ebdaa007b6c8f5d24db16293348f872422b6fea5a276fcb39ea2", "d379318891aeefdf110238158ef658d832fed9a7acef5c6021f05ea3a07afedb", "b5f424ca5a13b37bedcf38ed39b116f82034f3838e947f45b6b532325e325127", "d0add1b908f5ffeab4a9a1d7c027639bd5d1d003606d5c713c8321c75102ff92", "a5342860d6c3552ae2f869fbdc6fe50ca653278c0a149a60d64cdfeb666d8bd0", "b417ae3934dc4b92c5af6d593132882c2d599dade433d5fe195d59aad53cd804", "268822a49ea3cb4770238675ef88623f86365ee935123d36485096e9e84fb28b", "9a8feaf45995e9c0d92158327d349faa45eced5d63768892066cc208f89b7b52", "89d1009b77482e8aa0885f84fd224ff47534096f51cdf19f9a098cdeb7e282b7", "112baf10f19bc457456fb9799ca2ad050aeb4ba44522b68bbf9aaf6e347ce09e", "1dcb248929b933b4efc5ad7b284f4a00422d70ceff800e844e3581a128a44e81", "4e37295a40cc06acbc3ebfe2a493adb13f644a63e45b92958120224d842c4eba", "c487ed498e9db52ae0d43f6fa91976b86887b78d56da2084d2cb17807d7cc2fc", "91a0ef315804db95b259bab0d68725f80d7e37c712952c7af8180fd8d0a8719d", "2fd4e0b58a672e082df0ef9668b41dd21de2db0807bbc73d9d9a6195a508e7b2", "6771f3a05c3e20788d7854f3a5b04b367030d177df3d00a1ae792b584f60f0b4", "965a1f000eba768b36f16ca09dda81ec37324cdd79e93c1127c417f278545b69", "cac295f50b46616cfd1ee4142e29286ecc12e4e596bd763413fba7b6f709dfa9", "4e2aaf0706adae944e4ec7b0c01e4654ac5c8bdd75d34e5d7fb16d4a5930f0cc", "e13e5d78669625bbd2e1335a29a33e0de8c83bab7098876807d4b1f211bc382d", "9a782cfbf179b678fcbe8e8c46e271725cb6248c20e9a15f2b4b07d2038fee6c", "7bed8b30567b715c6cd334710b161e30ccdf7fe2ff7068f4b3df6435372175a4", "f00f6b67deb9feda9a3d993473ea478693ecddada9fe03c8aed91f3a36fe74ff", "3629af3da39491c6f2f28f1505d1ccae79f1a128ed571176a82b8b03841f6eca", "680adfca99a8599afd247f68036a1e06e041178ac5b9f7fdf2ef1529720372c4", "217c457bcc46cfe1120285f76bf9e1021b42a40a6e53cf390e9680faa0dc0488", "9e1e981036c588613e87c65ff80a96610830e21c521c98bab7418eb78ee226fa", "37225271c238a41e5d314eb17ab72422459a837a7ce83ac6b2059a74b1992b0a", "f62632459bd618a3eee81fbbcfaef0c23544c30cb2e659f45fab704a1f912841", "c45cbcc4fd522596afe8be37af0714a7d304884344b9c1912416f5dce85c35de", "1793fc721aa50842fe6cd42b01c3e34872de48012a66113f82437d2b2c136f24", "798203edf5733b2104eae396c82e2a018aabd24a73973768b157e6af00411ded", "792a2a4fb5e2aa495c30e4c144756dfbb729bc0caa7eb24960d1bd5b898f1f36", "4394587630fa6a1d5a7aec2a38e8b3a35e3155dda4fc7f2309525078e7bb6933", "9d6d53628db00f3129d63d7b68cbf9274045d6487a965c380c99144eea5d6821", "216337d1c06e7a077c7dd16d22f2335059bda99a9f61a0b8b32ba4d2f1df5a0c", "33ba25939cd5b3edfacfec8245f9a0347a596475ab4b50f082c994f25c733ceb", "ae6ed034ab67e09922637cc7ed4913734e083267ec1a511f127fb15f1fbf55c3", "388f504871d9a882c0666fd5b2a0846937c3dcc31c95a8fbe6cfd64c6fafeea0", "5ef328232dc58c85f16985e9fd86490e80c8d785ba35c964c81d98b160b12229", "5e0c439fd25a2919bdede3cd9a3e3830316d5d073365d814a5cf135a3e198249", "9fc5b5a3eb9eb53840f3efc7c6d2af5453a0ec6db13cb42b85a20b59b284bf5e", "eab5d900743bea8e8fdbe75dd09d1d118bb2dcddde9c0fc7c74ab18204a600fb", "48cf58616950563c6573813a17331920b6b5b4dee241ac6233d3ac76297d9bf3", "c8034d4b7b76934f32e0212424c3ca73af733892258b6389fbd7b980685133f9", "b3ed4eb6df8857c2abfec37691e2b62c808363b0de9fa30f7b93501642462c48", "bf9b30f0e7d500571469d0ab42a1723109ef26ef56ae1b1b87718b53bc89442b", "cc6ecac7968a9b91982ac6039b2711e3802fca33fc67efe906aa557be7d266ce", "f7a39d053c6dbcb8a72c3236ac276f172c275d88b0dbcc208546b97bf5b6ebca", "ea88f012652bab5d8b8c60f96ae80bbabb2bebdee1c5b01b28d64fc899cfcc10", "eedda7f05271e9ce8b200daaedacd47a2da423f8715378bf728915336a7fec42", "403fddd2570c9933960d501e81d33fe31af706142e0f398d1a5e233eea4e9749", "f7d1ce0d0045fcaf53ebace8cf630f6c433466f571a5cf25d5cbc7f4d9050cf5", "5032176abe0db8d55d7a48cf604793367999e38c048e0010962ed183a7f86e82", "62f50b9db1baf12ea3b53e5c67698b43f24f8e1c79a2ae66ee0d59c6a2907302", "4e990f11bf148f2b3f1173c942ab6eaced9f5ca66b59232e497be6eeb15b1410", "810058a1786b4dc30d5976d5dc66c034b53ca846fda1562be4217ef4aeb1fb8b", "591117501cbbbfa17c3d9a244b14b49b53a41a642a8c2e47ef179554c6cd17de", "cb3beac45adc78880986b7a76bd39f11faa7e16b5d61ab721417a9772f56078f", "bade40702ae4dfd6dd1cf42fd95c44ee83dd6b9c475b17671ef5cdff1b61abc4", "6199106b4cca43273a83351cba12ba7fef6f4b25bda2cb9b7e66432bece1ac47", "953dbadaa7aab0de81cd2bf99823dea9e9191524118d3e5729bc7449e05bf122", "bf5b6f00bf86bb0fc13323d83aeafff65e781f99b0a5a582572af43f71a7937d", "392191cb91e4a0fd91a1571a5319be95cc408dd4d02d3dd34855f7ed0352d492", "6a2a2dc08b81b9262b380d4ec962f87da1fff3f2e24e4d8c18d1512cf9132ec3", "6aa7f39573ab5370ca793ecf9abfab074eb1815076b7177b3cd435211ce3813a", "26338eb9a47fcd13c7851bc44e3105f7f550143bc798832c664f762954b845d1", "e5f19f8c73a6bc306e8f44032d9a49d35a7e0c51993162bd6069873631cd2779", "054c7c84518059f2fab01acf5eb6dab0d5954645d8bd66340cbb3d9aecab20a5", "7d14ecf03f9d281717bf5905ed778d4dd4d774d85746e852d85154269afc6d9a", "537a8ae15f4534dd0a475c2bf46ae4a50c50a5ffa4a5761b816e2cd68f5ac596", "e3b8170436c31635f8f6ef431c0ef115be18ebfa54121ca1cf6b2aca5392676b", "c29db8d74868af0da79d40c73d0949e9fba79c5c0b189daf0b5ee57777e68b8f", "8ab4b04a46a3cbbbd8381344bba15779f803456b93e65a69a4113e1957fbe4b2", "d350461354d4a5db2a494e650f9914d7d3138e01f924c5661c6ccf9680bd56a7", "7cc9be2d3bd5494908df3a590a71b5abdef1541ac9bd822b0ee3fd6d83ce9f1e", "16583503b00fd3b64169732373b8bbce618e607574aa637bc396980dacb4fda1", "3af033b6f346b101ac21871b009316e10346174d31321044826318b7dec99535", "35736b5ba18f0966a8eb4fc652357f6e24bede3ffaeb1845027185e0bb0a1b45", "5dd1682dec791fd29daa23a386de98939c5bd1bcd2b3dc32713433a94e0127a0", "8915def97877f6d2eb5466a7750995f68924bad75154f486e87b16f7f0632c88", "959d69d189187a5f1597ee3ab68421199ed591bfee1cd530973315414c8312cf", "9e0f62d9fa8b5cc3990947168595e86efa83ab55ce350c0865ee333def283fc3", "5d05f3829702511518625e992aaf87a93137d8aa284c07168321b06179c8c836", "d4d5224ebb45c09c67ee2afb92ec3444d5a3735d1613536d3102e700979cc1b6", "170886450af8d80fbdf1592df708a42d5ddd599a815b170cc4db728ef4b325d6", "0d4d7ae087c593a28c9f3a686e159feb734d3cde0ae03359cc75777bbdcfb9ba", "c1a96fc23f74e7f47770010f02c06979cb04a8428e60a0477b8cf340e4d33644", "0a6d0a6c68039ca74e4b490628a5c1e496f9a298940b3d0e1d2ebb01fb48bed5", "25c89a0a831fa2be723bbd4b7f7da459449a699469e797572193e00d19a66abb", "df969692b2712140a7fec2293025ca298a1df0e2c02d4eac46cc5686822c4ed6", "9e57b7e76ab9fe6b048969c2afebd3ae1d87db2cbacfc5023df841592626ca86", "1226a3babfb148e9d14be50885e9cbabb1c5e1b25e149036927c92a524efeacd", "b6f82e864904fd18bb3b0f8f809cdbe260acf8255c10aadbd7e1382a2f3a6101", "4b7047af32575b0cf134cc9c607d777db2dc05a309f3d8ae2722566031ddb32e", "627b68418a0dce42692a1e881761f8e6dc9b1be367fd62c35cda1340945ef4d3", "687d13078ed0ed60ad9ba309128f2a8eb159f54166dddadb5b36fec4ef415bec", "64fe1d39300343be698710fb06ed3ae1995935d73c98328abc598278fd320368", "35e38038294458396c25c7832278570d3803c4f5e5aa44a4d9e38b2a5345cda7", "84397dce4659ddd4e28448f521316ce03a05cb2c84055083a80ad323a31ae8fa", "c70eeed1cde973a65df47f8cc9be0ae77a819e74ebea60bc67dfae1745d1f860", "e7bbed1ace32cdee5726e50e32155cab4e84a232f144e6efe07707baa9b4efff", "f70ee5f32c22f5d6cf3c6811dfc02e1424e4efce1162b9de9f2fd0e09a135291", "4fd1fca1894086364ca1d6c91bbe2133ffb90567f389feeb35fe6934a62f11cd", "0e49c6eb5793c628a00c2edf6d632538a695a168c24116604926528c1a8370d7", "b7caf56339837c5520cc395305f9d1629bc71d03ff708a31e3bd7cd891c5f282", "ef90d86c3444d267835889bdcf03a82ea7b34bc8ee07a14542f9d23c67d18352", "e845fa6f46ab70bf21ff82d49648c734631e6f38eb0d5a7464c378b9ece397b1", "02c852b4190f00dbc5a0e392204436ad41ffdb1ef6f61f83e9eb9c36f2ba3e3b", "c556cda3e46db5a05a3c6f67a5fb8de506cf9708fa7bfd35c37b3504e820314d", "b57dd2b85fb9f5a48b85632608ec9ea0a82f3e1a30383c7e0a301f18cebf9a43", "cdc850b8295fd8e1c81acc5373ed789b39b13de05e3164515d587a0a6219fd95", "a27eeeee0af04384ee7d47896891644d8ae6d4ce3017ef8a69ca8678398e4347", "7667f7c4ca099cf0444e7c618f8d391122c5daa8dd9a2fb50216858bfb8fbe8e", "16bfcad51deee5ba14ae025ea21b800bb17723c8abe744f65ab5e68696b1abbd", "2fcc634c3c25304b18674a6b3a75cc7c9a4c1a0ef6b71e40d8dfb6d10aeb8df6", "f2d71cca37b355588f3accd03d0dbce3880ce4abf40fcfbdcde4225650f54d56", "d1f3996b844e5d95a574009fea7d9f57a7d08c77ebe853aba1517542927f1eff", "3ada596dc55dea6f04b44ace1ad7f2fa831cb1896fb2dd71583eea90af885019", "11ec1961e701b6162ee6772c1816d97bacf724d46ac0ee4033ff8495e4e7ed08", "ed439ffd401fb6b89119795d408537c42f478ffb4b691b884ea28a55250061a8", "1b8a4f1c40280a63c826764f604d400b0ee7b49c2633a66c93c3b995488e1f1d", "a34d65423bfd4728b8c8f4e66d029bd150b7090aaa7a0c25f2fa12fc112b4697", "c4850621dd9f75e802ce4afca4c2bf177cadd8ff233699847b828be267906642", "32bfed50f6356d9924d338b97b71bb27b03df5e64fe9c91ac82ff39d1aaf96b0", "51546a29f615a1519164865d486e6c57f8cd5dc8c519f3f96e347814ccad3daf", "f181159dc3b95f1c372f2c3151308b90d447444c68fbe1763feacecbde4d8ddd", "250878ac7380a8d799fa73895d50735400a44f1ae633bea2095c3bb71d601d78", "870f32660a9ccf4878d503c8f24277915f4a432dfa0f0ad401129b601102d797", "cb3210f04f70b37c9cdb239e62ad28ea400a34c4cc90e591cc1fedbefef5a766", "85b0a04a391b0be29cf1adde16d3c2757ac65fd5ff43a8ae7eef31b60f8e831a", "0074a4e68a6b307853f16601299bd7b7dfaebe26b2eb6a2cc4f8e20e496030f8", "c030724851c8a4e789541a1f246ed80185b1e440bce0a5276aeba1e7e1bd8c69", "588f362533bff54e1015fff98e18f7fd5726a89e694ba529a5a1c0566bab3eb9", "4c1825fded2e5c8bd8ac52b1713e598e775ba11abd32dcc393a44008a3ac0c01", "540d226e8e6e4db09762a395412a948c1824238c0786e65c802b5490b975fb5f", "36d0199ffda9613a6a179800487d4f9fe4afc95374fa47c4206bb08da9a2c010", "6df74df095d182400180bd8ae1acb4dd2d35cb3773a7fe90953da1e695bb1f11", "e6f1fb2cb1b30c535dbf7785cf3ba8a1dc08cc5c4f8be28a661ebf86f01340eb", "5ea87ef72ea228e1809e1f3c740f647eb847b13f4efbfe372f48bfdcd7914a82", "78b5099b70a40a463a7efdd3b10330d4f2bb728253a3ae40111fe871d3796cf6", "e2e24ea7ba99b903fc0402f7423632ffb6d91ec4798a2eea25c47e35600b20f7", "2d9f86dd16cdeddb5316a857601c2aa1db60205e8811de32a9ecfe2d96805efa", "a173a0b7e50f5bf7feb2054b92947dff6fe862f7a9d9aef5151f52513edc7983", "455a5de3bf1fbd44316957d057f3ca703b3bfea85e1d98d40dac24cce8a2b1ca", "3932a07c7bf3d98fea2ad44398c946ba59df3015282e568953cb889aa24aaaf2", "a01c318ef8247f3e9cd271bc085b9e004669bcef47830d03a344e130b06e139c", "4f13d70d91a9c38132d82d6d36e5dff15c4403abbe7e38d6b16b69867c94dafb", "a8353dbd20020698914e265e3b89b6afd895bdc1ea5b656e8b35a77cfc0674ff", "dc1766ea58dbaa8d4bb9f8c0f4ffd4874ea1080e8ee76755fd9514019a1470b9", "bf2f70c339d33d4164a1e48a42e97fc5bbda1392ad8603e3bab6f7d664c3c861", "fe6c398a378334f911947820ebf57f5e3e350f80b0d93badc6770c741d828bc8", "fff632acb439a94df07a17c7b4c4f362da2876fd7084b968c2a3e441d6837735", "e6f029453031e5d011d9217bafb3c66992431e3bfd99006db908a9c110f658b3", "1768b5f0635d152704648852ca25524e86bd864b4bcd06d93f9c5dfea29d2306", "89b902997f547f374e3f34280e9cd5ab36037a28d345f4e2316c4b23aabd8cbe", "bb9217204ce0e63562217af7fe7d90fca9032515315a78129471610c9eee8100", "68395d88ccdbf1a8940bba0a0ed4f04877d7e3ad1dd5975618f0f5d29f3fb385", "c0ec77659b56bd843c7ee0134b5a0cb4c3a293123232af0b9123c6f361bcb66b", "785b9515b13231d853cb7e7132b1498ca2c7a59779fd23e6cc8830622cd26c31", "05c96e3080e924a4d80aeadd6c18aeb372fd1ac11a4ff5174ca7f6a2a1139941", "57cf3fff5a75f3c7996116390828c677cb7fae3568f17a854cd61d6c2204feac", "d679ad37b0a5e570d951b71e5ded07f89017a7707f5d38867be8e4f68d63928f", "4eafd0f94fa829e7d5a09cadc426a086114ba7aa347e3defca5e863825446714", "7a5007a80c84d0fe498199cabd7402c69f007d625d81b04ba401da5793e13e4c", "77d1130bae12163d2bc00ea6554837a064542eee6ebea897688a6847f07cc9e5", "dee8c5835321d21744cb236ce4fe90931ea0f7a5fcd325adc490fe9159b457b8", "9ca09607272ede9ddf10b365c04d8c6e19d61affcf3c94154c06d64cae0212ab", "5308c64895439d390dce60fe63252d19d7edd115b99ab614e1d352c4dd03338c", "ef9c66eaa05c4f5d1744c60a4e7000b108843407831de23e041d002f1f4e35cd", "895a103fabcc5ce62e614e58de5b3a46b276f3f322d9eea616506d6461b3c79e", "4347310c93d33816174c418029d1eaaead01af194e75e391026f760bf11384b9", "5643e5b18e30a31950c7eed006b66a3f4c33bd6509916e69d13d17586cd0964d", "81236fa6f47dc5efa60d3f14e7f8d92f2c28fcc26a0b1ef1f208aa43f5b87579", "78e723e827610f4e609f8b323814b819fa9f843c4536ea945b434bf6a695aa62", "685c6f61cd29c1f3a83372dcbca11177adbfac5942a56607db7453a8513281cd", "69306071ddf222f6065fbbb06578f047a7a57c24743b9a4d2c4fdaa51bf03166", "afb3194d4ee33b640554069bf19d543e4c96891fa52af6492a5bd6698e93402b", "88ef3c7dd927260c7fea615c570b98d028b612427635823d162219ac265430cd", "70a01172256fe87de831268de309fa4a227d669a1e41770875573a1fb4dbcce3", "84c605edb264a32580cf496fb0d19e3eb2cf5175574001df1ea06f921ede6ba0", "47ddc10882108c5f36419a0b21f526797834b6b58042800dac15eaee08faca99", "b3dbd365ecc06c3156cc31518419288020fce8852cba2137a2746a4baf564f9b", "146f34f223e0cd949e0a07a3e1cf424aff7a46fd80aae4af19fbd0fbb491de32", "4280c1f5dc76cdc8e30f880edd5f9fdc4377716402db1adc963f25f269d024c8", "da1661f53106e396db1df08558fa18658fa479b444a47f3dca0fde287b292e52", "2c762f0dcd429bbc2dbc46d93b88ad12acc4dbfcd68907a68e50f8a0869bf767", "691a4e629e4a6684f664dc7f363b009c8793cf7953ed2abc0dfff056fd17bc7c", "008625ca13dc39284d5071014c613cf4abe7acbbd16c087302e18c816fe60dd4", "500ee0600bc20f1586d12713c736b92e5151fa6450f9b8891f279aa6a4947fd2", "2beeaeef9831010b298f3fcb75e28245fccba0bffba8a610bcbf6ccb4a762105", "ffcb558403f9ab8189dafbfee256ec13651de6d4529240b01b0a620f00be7e48", "8c13c5e9f8a8f9aa011920d9426a496cbc617a0464b7e9c51ebbb36680bca3e2", "18bd4aee0a36442d49c5e676e8c46390b9c5241fefa2ab875959467b18392998", "31bc424a66cc1d100792147fff2dbc15183178d0587121869e7fd624e9c6267f", "26323b732fb578e7860cbb42cd2b18277c19f9d83e334e07b9092761a530038f", "ae66b0f838a1eb049724c3b202b8b8713a1d69d25d42b4247d6de7ca06d5ecbb", "19889231255d326ac8e6aac3456e436e5eb159eede46afca19fd68a17f66db0a", "1299f2327ebc458f0e94794b1ccaa81594474cfb5753fca6c50896c8281054e1", "37b45c6e2c8992e9762f648fd3715ba7f51dacd77bc5ef94365b55ce7de154a3", "429a767231292da6675718928a3b72d7a0d2d384814e15a1a27137bdd83f2b5c", "2f6dad53f6b6a44e73ba382f2a601411eaf1988647f536fa91e9bdc17ca3b426", "b5aeb5553afd87256cb9c2a7742d7a0d987f3e23410bb8c9d26efcfefcc8dff2", "b736adcf6efe460f097d85a34b72cbde3e48f3d5e3227ce1d3110d5bebdbe0e7", "e856b5d151022797113f84d55dfe6a1c59b2436a0536b6d04c63d1331a9e25fd", "59f194a3ce1f665d0bb6cb4210b0dffc3d72a90f639c6ae7834d95d856972232", "c229b964ef901cc4a4151ae98e8bfa03384d5ba178009a919ed3d7f7a0a66cc3", "abee72fb6671cbc393e874f3d080ef31fce4b2d86351d1829d45c9c48be742b1", "7afe1374b7f867fff34dd4a7c8c690f849129d9ce26f0903bb9504e026cb2a3b", "bcc8566769a98e95840b891b6350a46f495cc40bc52649516359a162f2100d2f", "4519cb27d7c0ed92ee2eb42bb7a83105213f0f4d0de9f32653a46d829b45c45f", "62a692dc2794b2d612c2dbc65b038b42c17300cc2340194361823ca9282d9626", "59a7b1e65224de16b7d6d787fc4086788f95477868782fcf175aa78885db1f25", "63f246eed299f42d23cce9ee01a050d3b5ffb4e3d7476a0ede69a47e29e62ec7", "0393ecb2210f0d2d68ea2e60721c0257e7d2e98c57ef53e2f7f74205f53c2890", "78a11d3a50490e287d7c3ef79398b8d89dd344bf6cf354c27916eff3bad08d37", "36d2fd8da00cc925c5ab6f3454d3a9077c8ca8a982c3dd78897fbb1a47622cb5", "1358ce5cddbd3ed287f156079c43da7c6ce407bec9ef07a947832efa45acf36f", "026a29c9fbaaa2d091e41f6e153d34c36cefa69b2f64d58b4c74f6dc927129ed", "030a1a4ec3369ddad395745365c087b680414a56352b934ee79654f56f5780e0", "4ee187e401ce446283cdb3616e2b7f8777cdc217e322707246b4a53c78d4e401", "5c41797dda887321c276273504d6e7d7c7232e23eb44e2fbed6d6654cbbc8032", "7abc3b61968c7647dc20c99acfc64b6ab1c7f61e762ceb58d81bf9dbe1e096f2", "791067f4e014d71ef158d14fba12dc87c252e6d2ba776e3e4b452a73a7bc5a64", "03bc0578c33e393b54f614070a47f808175ff28aa434bbd6f47610ae9749b790", "3331c13694bc7ab824dfbacaa1edfc4b26a5bc5925b84ff8a82cba28e184a73b", "ed6de954a67f13ba745456d3e09a4441645c3d6d42b4d2901e964b7854ca6645", "8fc52ba86e696100d5c4d03a0048298729d8af35d37a5a2a869805e9f22569a7", "01b5a419bd30fba91755c65f933f673b62ce8cc7be0470531c2c7d5a4e904dbb", "bbfdb929a788713a3d6961049575124712da5748b7e48ddd3f19bf1bac4f58d1", "5754afefe2cbe0f8085227819e231aef4c5932af6759c53999c7b1a0687f6319", "9ec9dea46a9bab5969fc5e4721063d9525d04fba999e713c6775c46b0f1450b5", "5200308bd24bbc275ab648156896e7a97483dc3c4c7d3d3b8c82c436a37257f1", "385d990c1da73f36d15ae50b6da72102d123fdb51dc337e587b4cb78aa7f64a1", "5b0187a3452c85f4f9bcefce044c9143d89b57fd11e3a0b198a761b87b9ed629", "23214ce33ee7c9284b93dea89b4d1df963c3cab8a484c4e0814a0432f003ed3f", "32854fa962bda2dba8fe1cd325a83d8e152ad4e46e5aab2dd9fc0a491337f84f", "842fb855ea32c9b5dd35fbb51d5f396a381643badbefbae02c948dd9adddb083", "222f3a5cd882b17fe9a676b1ed8b09f92f19e4fbe97a7e345ca6e38f890d5f9b", "b2f32bdb4d31dd97265ef8ba06f2578c3649e9cbd12f12ff6e66c3edbe43c68e", "bd5ead4abb195e08601e7386911c357a7c4de040515de44a36f02c495011bfd0", "95824cc4850b5380ea1194655090ff2b6409f35f06c4a5d47e252048d4dd5727", "1cd725d18022f65cc856a70a86df88d55e9a2bdf2399618ac10addc6d5144d9e", "e9d86b3a3654aad196b07c22db6c1fe5cb07cc77f1e2a02799a6946d5d945ee0", "351b18a0eab773aea76e24ea21c94c173446d85bb7325089bf04915245600b43", "31ff84009e20886c8d20b3a45155f152877ebd604b3ca579a89b016a16b57b01", "16e54c1c2fd9c3d600f16cd7f9688bc394f8c464dfebfa8d83953b74893f8c88", "302315944c7f04dde21c0c9e2447b240518a9e9e5872fdfe2d2409b82a2bccf7", "db6a27c102600d7eee4314d58096a4f2d84fb1959d97e862d4bd1098cd8d1efd", "2f39e862389c74e8e68637d7267aed44a6e8981ac197a1c087be5edcb5051c4f", "84b92c07ff61a6edb9f9d5231df9abe85575397205a1765b958b84f50dffb72c", "fa70a8d0b31b62764a8613345873d7e70e5ed7c8d4131bd71723d9c49ebab518", "8c2825c1b3a977fd1a0486656f8e0cd8e7cdc5b5266d049b71847769fb6be4f2", "591c0714e737f732a18d919a77a43aba6cf7b65ff6247f915737e8aade413381", "ca2d23d71b7b3a9a254d1d6a93e7611891198238fb3d30bfb7f6b53c51f819fc", "dc022c6787f772b6d1d8984a4511ef0436bc5e269646f2fd442a6efe66c0374f", "32d3a9c28d4923dd87f511ee1d3da98ef6dda371954dd3e8f6f6a9466d8f7b9a", "5635027a8d84a5f088efeac387c4a7dc3a6ba65193256f17c2e677cc151c93d3", "0393ecb2210f0d2d68ea2e60721c0257e7d2e98c57ef53e2f7f74205f53c2890", "78a11d3a50490e287d7c3ef79398b8d89dd344bf6cf354c27916eff3bad08d37", "f3a5d3c9d75dcadb854a44b54813c39c82c98ccf8188e8dd94f94d2ab405f04b", "22f062fb8e910cdd404a2f338b3de0c32141968a19cfac6ad6a0ac0ac35ff061", "2cc27d139e16a241c88e7348789ce32aa2ef5b8d3c6bf21e506ec1de5191afff", "89e24c219d94c784d221aed1e539abbc37b1bd1846fbbeb023f6779920faf6dc", "11e0d5e65925405157c042f9f48a95fb0d97bf1a39f7e1cb5746972a64f1dd60", "6182bfe03bff0e7d0c91fab05bebad2fcbf55c1a506c89111b47bc5f6ec795c9", "1058d1e113458d5ce9b37907bda53653f48bf5210bc2db841af6113055ac9ab5", "6c479b019d4f04ada8470a857115c5fa0a54d7952c893cfc488cc4cfb60633c9", "f5e863784e88696247e6b2079b6d28cc5f500c0f7d954dfe8bfe3dce0e966a77", "f663319162a1a2534ba6befa9a75ef3b9d848e70ed1ab66c988a876fc6145bac", "afa5e4a41933bb5caccceff33d2211e4f9075a06b4a1339fb808b21f585f2e25", "7caf753f1db29b655c95e4dcdda004c1bb2f80cfd7f4077be4d160f725359787", "1d2631262a0e0c273c699b42bc338e4fddc5d7325b1c232e84ff9e00c6de4cb7", "a4fcf2c89df35eae7bcbe52f986752e07b0c948926fdfeb7884c134e06232d62", "db6094cbb2b7e4b32301cf5ae8616092339292182b0d0ffa77dc874f99c63c14", "7700ea163f9b0caea6673c8e493d15f8cf4f62420c57c447c0863e2804013e72", "1e0433e8a17247762fd1c700c281e775638d68820587be427b4d84fed5c639da", "13c3a4e733ce742fea340fb33a4d04315b750ab84c14abf2cd99294038e0ec1f", "a52eda53477cef2a8a10b85d4e550697cded2cfedf4134e00854e06ec178a17c", "14bbf2730f8647dd2a1230d2f9e2d456b5bcc2ab79524d3dba95fc555249845c", "0d61ae919ce82319b2035dbc394deaef822beed95ffede1b7473e89996329097", "9cce52ee80c3a5c1b8157b4d8a85ea3c52b8d0c7b77c0d131e39660d05e86af6", "ab1b1fd82df4e4616cb2944a135634215b77e78b3ffab9b32c56111d02b7097a", "eb2eb52791cd54b930b145b5b04c59f4ec9170a5015e6c31a52087fb30eb4a3b", "e13622e1a76df25f63bf808add1eec46c5633ecfab9b69dca1efb62b0cc844a4", "a01d1b665457259ce20e020380d5ce8daf3f8efc4593a3e6e6285c47b3e8fb40", "ec874f4172761dd7ee5bde4048ca77c8c1919e11ba57bcb4c0a89a1d49b754de", "909c3e5564ce9e57d2e7ebdd912d72e66ab8edcd21c276b6b850bacdd6787d49", "5ad4ecbfef1ea662ac3524cde56bec98e422d1f26c1e1eadbbeb5a3b82972943", "61514bd2ddaabe29590a0cc8eda7bb7a547154e24615a8fe24d4606769570bc7", "5751f15c4e601e8f01ee3aca75a0d8eda94c0b2ae8147944d1dd1d31c7beb3aa", "a523b553b78dafc41dcd458b56a8943b5b3dd8fc4fff4d418bf09a5e8cc589a2", "f51dc1e112dabb77825bf86a91a47536e644d08edfb0516f4b394c1af1588634", "1fc0520553b0bbb67d84104c91a8c97ac1f0d3e1b0dd637276ac78c065dc61b2", "da11812139962bf4766a910b376195b6df0ced9f9bfa4a28d059657d438ab5d5", "599bd6db23c3786b8c8619c818da41113045601147dc3e013478e0b66d7a1a1e", "826c1d33f26c033bf515903eae3afe3b67fb5da4cc0c436e19245c49e741c50c", "6ebc783724d661fa47a75f6e7b6dca3ea03d47f79c1c4dd65dad1c2e62f12602", "bd34e226cfd6e44d431e5446e783fc044fb64eb71cc58fcfb7602ab53e136f0e", "f5751c502b79f342903e97887460d454eb13da32ee0ae219dc98e49e2cf892e4", "38e1824014f282320517bab737f46be51f5bcaaf58b6ea7f8dbeb0f9b111562c", "f386877f09dda7afcd290784b5fdd26874c4251bc1c4359c4fd4544c3e64b7c0", "779525ad895186982854b4f299e4e9d31b28c4c496148e5157fe08076e1f7caf", "3ef4bde13a094f60b25a4f61359e33b4d432dfbc3a834da7df0b2363d90f55a8", "824d9302d6bf678b35a5480dc6d7908b922f59ff4216688f395abc6b7301f074", "dc793ea1bf7963613f909d277ba598550d64b8253fc597bbb3d1997b6f055523", "8d02dd709948a1c522d5edaa4b4fa87acb715995e86043438beee2f4498fd289", "ea43bd91bde710c7198d2ffa5defb0477d1a4df326c0ee8c4f7b9fe43f0b51bd", "fd3b3dc3e2ddf9436d376ae58639718d0678f58000cf8cfd9544667b40f976e6", "9b25e1fb8def5f1d05e0a8f832fbcc74d0f86697b8139ac6e53af94813a9937a", "3e0fbd1e26ae6a57434f3ae6cadbbb526472e7b75a36bb00b945164f88b72b9e", "2c88a6f4de4db6a5f6fb8dcf19b2a72809c66b7c052f5da4d4f7128d4db00b55", "fe7cf119c97966f9cd4c52edf8361200700754044e25700ef2e155132581f460", "b4d460f5f1a98bd741ba300511793ce0ca66580a8df0d4f3a7cce2dc2ee112e2", "5875e5729f7b0018db6867598c7ab408c0c388aba4e10b8206078424706ad782", "06dc7d4a292c4300622237b101471649229c8e3ad4fa5e9df8281bd00767a7f5", "a7ace7401d8f2c3ec9d48fba39837f30c99bf2701365310dd6b30d915c179f7f", "45bb6d57fc4765c2d90eb74864b928821a2ab07f2c312bfebe4d328400bf2676", "0b673a25275c487b9990db4fe6b7d9a26d78199be4f9df5c2236116fa6dd9531", "7515b5ab4bbbf81bd33cb6bbea273bb848046e5c34cdc1088756b7f8ad71d2dc", "0a376fa6d108051350c911d1d1d96a4ba6acec5a8c58569b42c792197444d379", "4a510f4a37db02830186543367ce058f74cb3e55cc5728c5c386f9fa52b98c91", "073faa5e1aefa0b0a8adf2a5a87be7e84a91ec371585651afc5507c64ab33cf2", "05e35b636a7b7f6ca8297be6e8b4132c5ab9339cd91219354b7e94a6be9399f4", "4bfb668010fcd318c906424d27447e5a6aabbd767cb6ccd61f72c68c43a87bd5", "268dd84a2acefeb9534973eab718beee11f9f634f8d1974f07b3107133ebb752", "880ebe929407a8c212fab91a848b04cfdb9de43048db50987e77e769e44578ae", "224d35769809521e68ae77e847a9e19e69c01596fa314f2d059c8df332129d87", "d9b2f183586097674e6483e7026f25b2a8906d9b5ad093650d90e2c5ce45f08f", "51da88107a4cf88949c4c66f3c14f375b5deb4971cf92d5a4c9c888cec575c2d", "00337416e5a626c668f75f4fb798e515d7766c36ee0815a626b8445bd10b6d99", "9f39c15d7caa44fc4e7358d7baff6041cfe78a8de5246909b0a02de5f3ef2855", "1ff2a0550f408c282fa5e1bea9e59c4eddef2ed94909799ad4a5fc67eaae3eef", "e889fd5319c91438fc8c092a7bbfdb99d685f064fe59435fa5453d4075362e6b", "bd79e69eba27c4e8884e472e3933e486ce33542bfd91edf77bb006b4d77fa595", "48d579640b3e6546dc46814d996a8ec9b0cbdf60cf373f5d78337e3553def4e9", "8c6afcc9221443ee34177580b42c310153b49fd1dab35a18ead953b6cfa8802d", "378c4e0f9cd56f7662ac29a88e2e4d64cdd1a7ed404ef15ec5daf0057d902831", "f98763452b4b0df7bb68aae0702a4df571e0c7c55c15c1ee953cdeb124374a50", "029e80c5f1b5c84b4d3b24a0591924a6bbe605f5d8f80ce2e73f1a264d1734b1", "659c8e3adaa91673fb08b116accba1219cb0955e50938b963f34873f10783f29", "46a2fbaf173955d8d3da231623f76acd3043c6f2d703b3feec9a4e08db8c83f5", "f1f4bf36e38caa06b667a62653336f1624f739611e953d5ab5ad8795fb79b30b", "ea4d1896e283dc407c4a70328a95fa1a4fdf579c8de1b5f1ecbe889339a67f61", "26d9eb0e9beb97fbb0bcb9a1b20650d8c5098043f3b5fdf032b79a4544e70a14", "13817d7e617c5a45c708fb50c1e255e9662544de3f67e4d2188c64e38b7538e1", "182052e61b20112afc34839d192bf629a919a47c722f420cc28ddbd3338b2169", "049614187bfcdb521f24672314ec265f7dc3b8de55f7822c4881a46dfd21668f", "bd1ffd0c3daf231f6a39c0e7168556a53b0028257c5ffdb72790ae333ee21faf", "5018bb007cfc13f0d3e18d1d5b7038b53c12a27bbf49891048962e99306024c6", "ec8f9ff62e10f11982f2e7c92bd505b3f6d1172a0128a4f660d5b775e19ef709", "4d4d9a616d91ca0c99fd5dc5e28611261514cc38ac30b68a41efed8ff76c2244", "9774aef5c76392710abc88e8623802fe7ba81b197d786335bd12f4931feb96ba", "9d470175271b22dece9f4b932a223a928c6b59bfe3545f66753fea7f37a7fd23", "fba50fbbd0f0eee624e04543fddad7d7046063ba7c18aad65e44ba14bb07859e", "6624aabd50ba5fb3ab096efe48f0eecae9b8bf3b9055d370ba18cc2e7651941c", "9da049dee62b4326707a6670b71a39279d198c0619676b4f8427fc91f9793b7d", "6d21f693b5f7421c8b2290e5d74337e6242d9972b8412698dc4ed600b3ea502e", "5abf3f880f162208f3140f5934952cf684ea4de69b40121e1a415d6d2927960f", "4c76a822c7211d44c6a927f868f80559dab4ba1fba92537303e99177ff93015c", "b705bdb4ed1ade14a217789fa82156d6c45938e97861a0df6b099e362baea0f9", "46df9098e14a1565395e2e59662f36b612ae5bc7251e7696b42afc413bc4a360", "10ad6c331d4a7c31082dbcf291412a4c403d791cde1c0287337b4f92e872b957", "0a55798fdca50da231a2ad30ab833ba3dc030a83d7f02bc3101e8cb23bc551f3", "a9db2489816d185f37621bce03fa7079caf7afcc186e7740e157f8c7c81a373f", "1624b6abe9b2134f407c223fd56b86f8f618afa95ed8bce5633f8654bff63ea6", "97407002d57dd171164aaf441c348f9c610815e2bac43ce1ae5bbc648287f5ec", "60985365c46e01e178d713dcac5163330f6c98f79e3b2d356f3290438625c489", "13c5a6652e2c25690c8a4a8af47a3a5097042034e9aec281c4c7b205e34300be", "355376ddffec2e9d6076f7b97ecf3e2e3757064c61e21fd99efb7b88c6623ba8", "c9b4f3c6c7fd3454e0a10f80cb75419c8a92200c5fe87088d035f6ecd70f14e3", "a4820c47671aaa7016a59ed9aba67268ce21194fd18ed0a86ecae5d4fabac139", "64eee12d2a243138417297a4b3e8fe3d5eb749e2dffc216e8ec1989b76ea5965", "c40ca9214cf013814e7c664a4dec6e8a3c63319e5191fa47882d6f284b26ccb3", "bb8bcae64ee5249137771845ea9ba1c94b73ee2c2afc0fcd8cbc0e648a68e760", "a75e93493c2c411afece7b821e904f906a1338127e42465c19dd288ba61e6b0e", "4bbbb0b0efbfe34dbde55c3fb4c83bdc2594ebe88d3691321cc84a2d17d3c550", "239551f69985289482ddbb046537151709c4e8324718a1c3c1b9ad52251f730a", "4f06f9ed9493c27d580a709a7eb55599bf3cf551ec7780816eb38568424f5eb8", "3d669a8566729a7e6baf079c0f53f3443e4ba4ce66801fc854348b457272d993", "f9b5bd0e06bfdf384d450ffefa8761aa7f488c00f1d64a67f1df6e481ce460e2", "64422bb8c7307eb569c207e4f713ce4f6577d97700bb5402286582b139705ee0", "bb321f48cc1fba5653ad3a2603734cd0c5d656e8147c972b1572b47f1206237f", "ee80e8b4a1084232669e70460b8998fbcb2fb587fae13124403dbc64218ca6f6", "adee2cab9585d46b8d40d83c7e9474f3f6fd7553bbbaba727008f3a08f6c31f0", "f1f4c8280c7837de76de8457e34afd25f6f0199a5097f7889b530b632700bdfd", "7e36e5dac8a1d05fe1e75c950a856d93b4f6977a179672dcb0da6df9e42b9374", "1359d4917c5ec0d2e6f5ae23a0efa4ed062df13e84dd24dd35c3a8e9149ef404", "32b9b178b6899adc5fe436cd779246842b44b5d5787cd4164a488188b12c7b51", "ea040924c8c90079b86e0e9a8269189f283935b05b3d71ede705dfed7385ddd4", "3239912767914a70eb1ede49ae7bc7cf092c7a6f3f5e48121b35359f84fcc11e", "ef878ac06a95e5f6d9176299edc36670c125865d094574a5d648c7b8189e6080", "e674c767fcc14819fb8a209de21a43262d6f9f3adfd81a00e9b4c3a767dc3ed3", "5b221f7270d2df8c4d6fdb1e3496a5d023e5ee69514a2bd7b71b43ffdd86098b", "50cb60172c448882cca1e7f13f1abef5cecf7d34619c1e942e461ad1c8119dd1", "0b229d982d44bd890161ff177ea95bf10a3464e74d75f5a52be8f9a3aa002a39", "717b1740cc8ddf79e144110fda483780ecb0cc2d18bd584b951e6454da40cd56", "3b6448c391e0a65e47ed1e2546b2e741c33b95f5168998b9ee898d415021f678", "aa6766f8c1cd1816bac9442466d3647cdc859add0cdb405058b44be06548fed5", "09758221aa1fcfaa886126b3d65f71c4ba470c1571283a1111c66bcfef472963", "5e5c7959affcbf4906344dadd0d0acbb6547a4d26b6087ff85aa754c6c89570a", "1eeb861e0a9182ed66368591a99ff0fbc40cff3a31b63e561f688ad6a4ee2510", "88ee03c92952fef209d035d435982c55b73700cc9907e106ee116b2258f866a6", "0b6765fffd5257abd54e474ab5729958ca275aee109f758efe2c557861e889e3", "a894273d041e50b1888f68f827a7906dfc35119cc4c60bedc3805818fbe2eeb6", "2b50ebcb4c0e41b45a4570817c3e7d5d97a053b7944cc1325051d92bdffdb0cd", "0ac8cb4c3a16ddbe419a51cb8deb80e718d5231187e940851d8b2a30da9ef7c3", "5efa78324a50d236eb030f2936039b3c98a82770148722d4fff3cdf3810b1c18", "8e2d850e78174e47eaeb7d220751cc62e1bb9a606afe009c140bea0ed7ad840f", "30dc1ddbfbefe225b9ec71b1a34fdb17ab598470094662c95eb193b78a8de6e5", "c052a3115482c4478d254d979730208498d7dccb777489fae11ec89abb66a342", "f70a7ebfe4a769fe9389b728bc89e31e569bd551ed3101438af440f1ce5b2afd", "02660f98aa2aad9de02eb94943d912c575a850382329e1e05b0ab328c60d618f", "2ffb006d09909db84e14bef72fc0cd3ad5035fff04539e4bad0396a3b3ced247", "ad86ee6d0829c7e622f673b41b3a9709dbb3b9ba7ab09db23099fbd86ebe16f8", "2c94ed7de8e0a9246905aee7f119f0f1ec513573dc8d902063415ffe246efc45", "efa5028803dc8be04170bc8a20f533ab12cd4ee326cfe6425d3ed8a763b92168", "0c5dd7f1c8b921b7d98054da55ffb4680ad2a582bd69dac805568a536096e487", "3a3f80a5746a0f06d453ab02d484ed3d0d59d6becf9f999423293ce2a235ae48", "484028fa596610cda51030b35ed1cd7e8974b2ad3042742a4db7f06d02554407", "8b38f9028aca82a1196d9d9262917c970a08e5eefe60a8446d19dcb6fedc68b1", "e1a5c2a4e18cc138f7a8b9722e2de19984eb0a0fff749abf054344eef932246f", "72dc09ff232367ed1e08b67bc9c3c07c4ace2fbd6fb642c92682e444b0cfd6f2", "82e62ab4121b08759939551fa634ceebebd5939e28c39725d7edf934d8cd7b66", "9fe0ebf0a8e3eec9763475a2d82e6d952531f71681cb687807c25a130ebbc562", "2a128bd41dbe48182d328feacd1700f8d63b84bbed1f086f0b376d4566e19c4e", "a5e3339575960a02cc0bd3b653128151975d194d4e61cad66f515388bf598ff3", "81c306d2a4feb1cfa21969ac98c67a862ce46492e6bd66b80ecaf87b5aecc959", "083a1b3f7c73743af7c66d7d2d80c1d7d9d363040e9c8a60658d4bae76270844", "a0e268fb8643a75790b915f584e0336c7eaf9e44ae5b03e47bbfe582ad8dbaaf", "9679a750a3864f7788d3474b101335ff3c01555b000a138b6972d82634143676", "c27d3cf932377e88589f473ee506d508f9b0ab58c7e5e6740d6e4f5541cb1532", "441eae7498d313918d63c9baab5fb1f08865ab2d02a46d195fc34d5f35cdc476", "f0980810ea2b88657675614d21252297178d5a89cca1a696ca2dcfec437b21a7", "a9eb1f18a422bd295a0a141ded2c226ce1e52ebd4eb499198524b248525fff04", "95bfc47343b1ae6fb31a22ee53fb85a93a9a797303f75f4de6144e91716bddc8", "ecad45aad172503598b9406fa025f97b302bb82efe8368ff95e538a344db9ec3", "1d665660b2210b72d2eec8c8047c92802fbe9028747e65823059b581879a9359", "d680cfe2797f686bb666aaaa458235285f77ed8a687e684811bfae56452b0474", "a51dd34dbd33e0d08fb34f379f64eae32b97a93f1d675421b08f49c946d9a604", "70eede2265d8dfcdb6d9145af8da4a9376c635d511855590f2231e3161a41349", "a0cb561cd2159b0c6801b119b67884048ca86a4a99bf508fa2cfd57a095cd96e", "dfdf544dd5b58c004e0bcea7c4fb70ceff7d1f5dfb18b50814efb624d9caca92", "e617d6dc9e80a41f80c82ef1953164d46788ade6b1b5dd6e7462230a63a30930", "113765529c8ea070c2d5b7591e591fca35bb71c6eea38a59e87e02b66fd5b9d5", "c3648296972938559ec57266fabea7d0c02fc42257efdb99e2b70adfa8bd31e1", "4a5db66e7eee7567a78142fb8dd22a576237cd3f0e5ebf8669f8fd46b7a4fe97", "6ae1f08d44b6ad38b06a5b728fed7d79b0ff07724eddc3df889027f1f513fb94", "5abbd02552b409312bcd3c04df7d7ec5b7a4a2f292d33b390dfd2b9c477be2b0", "a7feb27cd137bb02c88c7261c4bd585f9483a07d54f170c06681f129d44ef160", "c89f78ceb18de04b0a2b68508ea2a643ac40e4570e724cdf196e0210b3f7a891", "1fc123d0e6bc22ae860e1880d4010d768edbe2e9ef86ebb533cb64a38e854821", "57c3120632853dafcb55746873e2f50de0e16a685bb3f926b040e8f451790589", "b8300069a596fe0f0fa2ba5c07697aa16ce6ececfe47a1ccb1f734fd82cce4a1", "2efe27b21e06285f31561be657ee40f399fa20b2d745bb434a1c4d943130e35b", "aab15551715cdc5995b71f85d2cbe265dd55dea47686c7bcfb9e36e29553a93f", "9947269fd914490318c08918728fb7e41abaf769c13e33c16c4cb868d47b7216", "6efc96e235e69993437d0dfceb42e78912ba9b98a0d0edda28ce022368dde434", "bcd35d0b0a94d63636999928a48c30aa545cd88bfdfc59a46e8f9d95c305b7d4", "3b3b930f65159cb18798106c47d5d831f2929fdb0f525dcdcc4f006a7a271682", "36fe0c328e85b30c478cdde440e415774d68b83082f6351c96c2f1c4af14079d", "132132cbca1221c61d7a367b3ca6bbd71687c2fe365787ceef07cc71135ab498", "300ab02a65c3cc418581fc156508e1e2ba29f4af0e49b385b3b73a95e0316a9e", "732cfac42108bb419bea8d5b3cde2a0721f4f7051e069513ecdf8cb3b938b6df", "b0faf9d2bc4f047fe500e6e20ad3edf949107e8b89bfa61f3f1678962a207662", "29dc13d052c57997966c9cb9d33ad5043063df50816430a013b70f078fac005d", "64c66d061b6bdacc47540bf6bc01325c6e6e9da3ed7a914cbe471fc457bfccc3", "ce249598f240a730a5c13e0922976bae0709d170c1e5df7f1fafff74570bcffe", "a72529e797d856d65ff6aa6a88453f6f567ceaabdcefa9ac3f45e048f5d87538", "7b7c67434457f30c582c8ff9a62651d8d0229b50760d107fca18a6cb040ceb38", "6db89cb05e17429803d10300865e8be635312e8e443531581ced3d4c857ab0b2", "19a11d38c14894ae06c61cbf27d7f2c31d57a5c4347ca0e770da4553dc2e51cc", "5d9b5750d884d94ac9d683ddcf818c5b434472fe480c1e870113450afd9e0630", "7bca9b562ded9bae147c85b88c6b06af480056ab22e124c47df03d2170a9a3d1", "88dab3de981fe2a7b8971c609e14408f972100ad5f70f4c49616a5d4a574f05c", "c71aa09d65a030be2d573f545d6cc8e01abe6e6e3506d35342d0c40ae7e80931", "58fa7a3f8031c39c606877b19de95ca4abead7ea6fe2bbef1c6fde3c3f3aec30", "653e747f42cec69d74e5e15038d831f1eb9f792f45846de9f38c5857939950ff", "07e0dab3af726f71c47728aa0353d3677a8c4975d7bb44e1797b21b1112c43db", "fb5bbd2b310f9e8142964abb9cd04b2e37fd0cc538cf77bd2a997bf3457fef44", "559f5dd360cda1cc1cdbede6f6dfb0fd462ef2d0f9ee8205312fcdf13e305fef", "a6d7b430971264071f1fa858eb65233f95c00fd235f9578f76baaa93e3a60358", "bea0396e82d92a10f4a3e18edd0acc2e33e4a2b4ab373c52bcdef5b1b4dbecd6", "3c1ed8609e3801864f8e3e2291c766d9cddcb78b3fda13f230b6e087146daa3c", "b77af4aa86335bd02d437a3ba06aecfe540e969078862678796ab8de21431b99", "56143032254f57fc6d082ea21cba8f32c2412adc33a36d9d936a2065f8c19bd0", "c36d7eb0928ed816879d74c0cbbe0293cbadcdc2cf1f21acc8fe095aa440ee88", "7d4c3ab8f0546f3994eb2da7a8bcf62885f67e5493276779705e03b180a1bc2f", "1c0cafb4f4ec4955b20dae78b8d35efaa54f711c2cdf9cc853f7e0eb86795d69", "bacfcd5d64bfa5ff4dc78a36bb4d66d1c1b5903ae32b963b35ceac5ff975966c", "35487665d7d60dbf7ed566deef6868d26b0840cf492c57271573be630d475dce", "c4f4fa227864167ed15292b69f76ba974ea1afced9dc90a61a8b6cdcf640aa10", "bb22c1ec1a8f038d227843c7ce17e27c06c7597afa0e650ec56c9fa501317d32", "71cd72425725e7bdb1084364af2ff2c7f92fa22d8b896e437e4edf4dea9db05f" ] def parseMACString(toParse): hexmac = toParse.replace(":", "") hexmac = hexmac.replace("-", "") hexmac = hexmac.strip() if len(hexmac) != 12: raise Exception(("Malformed MAC address '%s': expected format 11:22:33:44:55:66, 11-22-33-44-55-66, or 112233445566" % hexmac)) return hexmac.decode('hex') def main(): print "SHADOWHAMMER MAC address checking tool from Countercept" print "Countercept: https://github.com/countercept and https://twitter.com/countercept" print "Kaspersky's analysis: https://securelist.com/operation-shadowhammer/89992" print "Contains hashes taken from Kaspersky's checking tool (thanks Kaspersky!)" print "Returns non-zero if at least one MAC address specified is targetted by SHADOWHAMMER" parser = argparse.ArgumentParser(description='Check if MAC addresses are targetted by SHADOWHAMMER attack.') parser.add_argument('--mac-addresses', type=str, nargs='+', help='Specify mac to test (eg 005056c00008)') parser.add_argument('--mac-addresses-filename', type=str, help='Specify newline-delimited text file containing MAC addresses to check') args = parser.parse_args() hostmacs = [] if args.mac_addresses != None: # User supplied a list of MAC addresses for hexmac in args.mac_addresses: hostmacs.append(parseMACString(hexmac)) elif args.mac_addresses_filename != None: # Open the file and parse the hashes with open(args.mac_addresses_filename, 'r') as f: for hexmac in f: if hexmac == '': continue hostmacs.append(parseMACString(hexmac)) else: # User did not specify any MAC addresses so just get them from the current system for interface in netifaces.interfaces(): for mac in netifaces.ifaddresses(interface)[netifaces.AF_LINK]: if mac['addr'] == '': continue hostmacs.append(parseMACString(mac['addr'])) print "Checking %d addresses.." % len(hostmacs) affectedAddresses = [] checkCount = 0 for hostmac in hostmacs: m = hashlib.sha256() for n in range(0, 10000): m.update("\xad\x12\xf4\x19") m.update(hostmac) if m.hexdigest() in blacklist: affectedAddresses.append(hostmac) print m.hexdigest() checkCount=checkCount+1 if checkCount % 100 == 0 and checkCount > 0: print '.. checked %d of %d hashes (found %d matches so far)' % (checkCount, len(hostmacs), len(affectedAddresses)) if len(affectedAddresses) == 0: print "No affected MACs detected (checked %d)" % len(hostmacs) sys.exit(0) else: print "Specified MAC addresses are targeted by SHADOWHAMMER!" print "Please notify Kaspersky via shadowhammer@kaspersky.com" for affectedAddress in affectedAddresses: print "MAC address %s is affected" % str(affectedAddress).encode('hex') sys.exit(1) main()