feat:rapidfuzz and result by rtp_txt

This commit is contained in:
guorong.zheng 2024-09-04 15:47:04 +08:00
parent 53b4796e80
commit 2e57b4540f
7 changed files with 35851 additions and 36948 deletions

@ -25,6 +25,7 @@ opencc-python-reimplemented = "*"
fake-useragent = "*"
gunicorn = "*"
pillow = "*"
rapidfuzz = "*"
[requires]
python_version = "3.8"

433
Pipfile.lock generated

@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
"sha256": "0c043b448071382259f37d3dfaec5bb50bd0bb93647b8e0b6750eb1eceeda673"
"sha256": "c3bc89d92fe791d812a886ef856fc8313e40d40344b3ab2ddf89953e715c8da4"
},
"pipfile-spec": 6,
"requires": {
@ -180,11 +180,11 @@
},
"certifi": {
"hashes": [
"sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b",
"sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"
"sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8",
"sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"
],
"markers": "python_version >= '3.6'",
"version": "==2024.7.4"
"version": "==2024.8.30"
},
"cffi": {
"hashes": [
@ -576,11 +576,11 @@
},
"idna": {
"hashes": [
"sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc",
"sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"
"sha256:050b4e5baadcd44d760cedbd2b8e639f2ff89bbc7a5730fcc662954303377aac",
"sha256:d838c2c0ed6fced7693d5e8ab8e734d5f8fda53a039c0164afb0b82e771e3603"
],
"markers": "python_version >= '3.5'",
"version": "==3.7"
"markers": "python_version >= '3.6'",
"version": "==3.8"
},
"importlib-metadata": {
"hashes": [
@ -802,11 +802,11 @@
},
"pefile": {
"hashes": [
"sha256:82e6114004b3d6911c77c3953e3838654b04511b8b66e8583db70c65998017dc",
"sha256:da185cd2af68c08a6cd4481f7325ed600a88f6a813bad9dea07ab3ef73d8d8d6"
"sha256:3ff6c5d8b43e8c37bb6e6dd5085658d658a7a0bdcd20b6a07b1fcfc1c4e9d632",
"sha256:76f8b485dcd3b1bb8166f1128d395fa3d87af26360c2358fb75b80019b957c6f"
],
"markers": "sys_platform == 'win32'",
"version": "==2023.2.7"
"version": "==2024.8.26"
},
"pillow": {
"hashes": [
@ -954,6 +954,121 @@
"markers": "sys_platform == 'win32'",
"version": "==0.2.3"
},
"rapidfuzz": {
"hashes": [
"sha256:03126f9a040ff21d2a110610bfd6b93b79377ce8b4121edcb791d61b7df6eec5",
"sha256:048d55d36c02c6685a2b2741688503c3d15149694506655b6169dcfd3b6c2585",
"sha256:057bb03f39e285047d7e9412e01ecf31bb2d42b9466a5409d715d587460dd59b",
"sha256:0b1c2d504eddf97bc0f2eba422c8915576dbf025062ceaca2d68aecd66324ad9",
"sha256:0d1415a732ee75e74a90af12020b77a0b396b36c60afae1bde3208a78cd2c9fc",
"sha256:0e9125377fa3d21a8abd4fbdbcf1c27be73e8b1850f0b61b5b711364bf3b59db",
"sha256:110b6294396bc0a447648627479c9320f095c2034c0537f687592e0f58622638",
"sha256:111a20a3c090cf244d9406e60500b6c34b2375ba3a5009e2b38fd806fe38e337",
"sha256:13d8675a1fa7e2b19650ca7ef9a6ec01391d4bb12ab9e0793e8eb024538b4a34",
"sha256:18669bb6cdf7d40738526d37e550df09ba065b5a7560f3d802287988b6cb63cf",
"sha256:19c64d8ddb2940b42a4567b23f1681af77f50a5ff6c9b8e85daba079c210716e",
"sha256:1dc516ac6d32027be2b0196bedf6d977ac26debd09ca182376322ad620460feb",
"sha256:1de91e7fd7f525e10ea79a6e62c559d1b0278ec097ad83d9da378b6fab65a265",
"sha256:1ee2086f490cb501d86b7e386c1eb4e3a0ccbb0c99067089efaa8c79012c8952",
"sha256:1ef6a1a8f0b12f8722f595f15c62950c9a02d5abc64742561299ffd49f6c6944",
"sha256:1f1a33e84056b7892c721d84475d3bde49a145126bc4c6efe0d6d0d59cb31c29",
"sha256:22589c0b8ccc6c391ce7f776c93a8c92c96ab8d34e1a19f1bd2b12a235332632",
"sha256:2379e0b2578ad3ac7004f223251550f08bca873ff76c169b09410ec562ad78d8",
"sha256:268f8e1ca50fc61c0736f3fe9d47891424adf62d96ed30196f30f4bd8216b41f",
"sha256:3171653212218a162540a3c8eb8ae7d3dcc8548540b69eaecaf3b47c14d89c90",
"sha256:32532af1d70c6ec02ea5ac7ee2766dfff7c8ae8c761abfe8da9e527314e634e8",
"sha256:3445a35c4c8d288f2b2011eb61bce1227c633ce85a3154e727170f37c0266bb2",
"sha256:3492c7a42b7fa9f0051d7fcce9893e95ed91c97c9ec7fb64346f3e070dd318ed",
"sha256:35d3044cb635ca6b1b2b7b67b3597bd19f34f1753b129eb6d2ae04cf98cd3945",
"sha256:364587827d7cbd41afa0782adc2d2d19e3f07d355b0750a02a8e33ad27a9c368",
"sha256:3665b92e788578c3bb334bd5b5fa7ee1a84bafd68be438e3110861d1578c63a0",
"sha256:36dd6e820379c37a1ffefc8a52b648758e867cd9d78ee5b5dc0c9a6a10145378",
"sha256:3ed5adb752f4308fcc8f4fb6f8eb7aa4082f9d12676fda0a74fa5564242a8107",
"sha256:47e92c155a14f44511ea8ebcc6bc1535a1fe8d0a7d67ad3cc47ba61606df7bcf",
"sha256:4ff196996240db7075f62c7bc4506f40a3c80cd4ae3ab0e79ac6892283a90859",
"sha256:521c58c72ed8a612b25cda378ff10dee17e6deb4ee99a070b723519a345527b9",
"sha256:5551d68264c1bb6943f542da83a4dc8940ede52c5847ef158698799cc28d14f5",
"sha256:578302828dd97ee2ba507d2f71d62164e28d2fc7bc73aad0d2d1d2afc021a5d5",
"sha256:579d107102c0725f7c79b4e79f16d3cf4d7c9208f29c66b064fa1fd4641d5155",
"sha256:591908240f4085e2ade5b685c6e8346e2ed44932cffeaac2fb32ddac95b55c7f",
"sha256:5a93c9e60904cb76e7aefef67afffb8b37c4894f81415ed513db090f29d01101",
"sha256:5d1eff95362f993b0276fd3839aee48625b09aac8938bb0c23b40d219cba5dc5",
"sha256:5d5262383634626eb45c536017204b8163a03bc43bda880cf1bdd7885db9a163",
"sha256:5f8bf3f0d02935751d8660abda6044821a861f6229f7d359f98bcdcc7e66c39b",
"sha256:603f48f621272a448ff58bb556feb4371252a02156593303391f5c3281dfaeac",
"sha256:675b75412a943bb83f1f53e2e54fd18c80ef15ed642dc6eb0382d1949419d904",
"sha256:68bd888eafd07b09585dcc8bc2716c5ecdb7eed62827470664d25588982b2873",
"sha256:696a79018ef989bf1c9abd9005841cee18005ccad4748bad8a4c274c47b6241a",
"sha256:6c5b32875646cb7f60c193ade99b2e4b124f19583492115293cd00f6fb198b17",
"sha256:6f83221db5755b8f34222e40607d87f1176a8d5d4dbda4a55a0f0b67d588a69c",
"sha256:6fb76e5a21034f0307c51c5a2fc08856f698c53a4c593b17d291f7d6e9d09ca3",
"sha256:7abe2dbae81120a64bb4f8d3fcafe9122f328c9f86d7f327f174187a5af4ed86",
"sha256:7b702de95666a1f7d5c6b47eacadfe2d2794af3742d63d2134767d13e5d1c713",
"sha256:7c20c1474b068c4bd45bf2fd0ad548df284f74e9a14a68b06746c56e3aa8eb70",
"sha256:836f4d88b8bd0fff2ebe815dcaab8aa6c8d07d1d566a7e21dd137cf6fe11ed5b",
"sha256:8501000a5eb8037c4b56857724797fe5a8b01853c363de91c8d0d0ad56bef319",
"sha256:8772b745668260c5c4d069c678bbaa68812e6c69830f3771eaad521af7bc17f8",
"sha256:8b01153c7466d0bad48fba77a303d5a768e66f24b763853469f47220b3de4661",
"sha256:8d92c552c6b7577402afdd547dcf5d31ea6c8ae31ad03f78226e055cfa37f3c6",
"sha256:9030e7238c0df51aed5c9c5ed8eee2bdd47a2ae788e562c1454af2851c3d1906",
"sha256:90db86fa196eecf96cb6db09f1083912ea945c50c57188039392d810d0b784e1",
"sha256:948dcee7aaa1cd14358b2a7ef08bf0be42bf89049c3a906669874a715fc2c937",
"sha256:94baaeea0b4f8632a6da69348b1e741043eba18d4e3088d674d3f76586b6223d",
"sha256:953b3780765c8846866faf891ee4290f6a41a6dacf4fbcd3926f78c9de412ca6",
"sha256:95b8292383e717e10455f2c917df45032b611141e43d1adf70f71b1566136b11",
"sha256:965693c2e9efd425b0f059f5be50ef830129f82892fa1858e220e424d9d0160f",
"sha256:97f2ce529d2a70a60c290f6ab269a2bbf1d3b47b9724dccc84339b85f7afb044",
"sha256:9b6a5de507b9be6de688dae40143b656f7a93b10995fb8bd90deb555e7875c60",
"sha256:9dba13d86806fcf3fe9c9919f58575e0090eadfb89c058bde02bcc7ab24e4548",
"sha256:9dc86aa6b29d174713c5f4caac35ffb7f232e3e649113e8d13812b35ab078228",
"sha256:9dcd14cf4876f04b488f6e54a7abd3e9b31db5f5a6aba0ce90659917aaa8c088",
"sha256:a3b36e1c61b796ae1777f3e9e11fd39898b09d351c9384baf6e3b7e6191d8ced",
"sha256:a3c0783910911f4f24655826d007c9f4360f08107410952c01ee3df98c713eb2",
"sha256:a40184c67db8252593ec518e17fb8a6e86d7259dc9f2d6c0bf4ff4db8cf1ad4b",
"sha256:a4da514d13f4433e16960a17f05b67e0af30ac771719c9a9fb877e5004f74477",
"sha256:a8feac9006d5c9758438906f093befffc4290de75663dbb2098461df7c7d28dd",
"sha256:a93cd834b3c315ab437f0565ee3a2f42dd33768dc885ccbabf9710b131cf70d2",
"sha256:ae1a38bade755aa9dd95a81cda949e1bf9cd92b79341ccc5e2189c9e7bdfc5ec",
"sha256:b23806fbdd6b510ba9ac93bb72d503066263b0fba44b71b835be9f063a84025f",
"sha256:b4f86e09d3064dca0b014cd48688964036a904a2d28048f00c8f4640796d06a8",
"sha256:b997ff3b39d4cee9fb025d6c46b0a24bd67595ce5a5b652a97fb3a9d60beb651",
"sha256:be3a1fc3e2ab3bdf93dc0c83c00acca8afd2a80602297d96cf4a0ba028333cdf",
"sha256:c12d180b17a22d107c8747de9c68d0b9c1d15dcda5445ff9bf9f4ccfb67c3e16",
"sha256:c1318d42610c26dcd68bd3279a1bf9e3605377260867c9a8ed22eafc1bd93a7c",
"sha256:c33211cfff9aec425bb1bfedaf94afcf337063aa273754f22779d6dadebef4c2",
"sha256:c4eebf6c93af0ae866c22b403a84747580bb5c10f0d7b51c82a87f25405d4dcb",
"sha256:c4f28f1930b09a2c300357d8465b388cecb7e8b2f454a5d5425561710b7fd07f",
"sha256:ca66676c8ef6557f9b81c5b2b519097817a7c776a6599b8d6fcc3e16edd216fe",
"sha256:ccf68e30b80e903f2309f90a438dbd640dd98e878eeb5ad361a288051ee5b75c",
"sha256:cd9360e30041690912525a210e48a897b49b230768cc8af1c702e5395690464f",
"sha256:cfa74aac64c85898b93d9c80bb935a96bf64985e28d4ee0f1a3d1f3bf11a5106",
"sha256:d098ce6162eb5e48fceb0745455bc950af059df6113eec83e916c129fca11408",
"sha256:d1230e0f9026851a6a432beaa0ce575dda7b39fe689b576f99a0704fbb81fc9c",
"sha256:d4ba2318ef670ce505f42881a5d2af70f948124646947341a3c6ccb33cd70369",
"sha256:d4e049d5ad61448c9a020d1061eba20944c4887d720c4069724beb6ea1692507",
"sha256:d73ee2df41224c87336448d279b5b6a3a75f36e41dd3dcf538c0c9cce36360d8",
"sha256:d7df9c2194c7ec930b33c991c55dbd0c10951bd25800c0b7a7b571994ebbced5",
"sha256:d95751f505a301af1aaf086c19f34536056d6c8efa91b2240de532a3db57b543",
"sha256:dd5fa6e3c6e0333051c1f3a49f0807b3366f4131c8d6ac8c3e05fd0d0ce3755c",
"sha256:df596ddd3db38aa513d4c0995611267b3946e7cbe5a8761b50e9306dfec720ee",
"sha256:e2957fdad10bb83b1982b02deb3604a3f6911a5e545f518b59c741086f92d152",
"sha256:e3dcfbe7266e74a707173a12a7b355a531f2dcfbdb32f09468e664330da14874",
"sha256:e6d9db2fa4e9be171e9bb31cf2d2575574774966b43f5b951062bb2e67885852",
"sha256:e9012d86c6397edbc9da4ac0132de7f8ee9d6ce857f4194d5684c4ddbcdd1c5c",
"sha256:e9fbf659537d246086d0297628b3795dc3e4a384101ecc01e5791c827b8d7345",
"sha256:ecc24af7f905f3d6efb371a01680116ffea8d64e266618fb9ad1602a9b4f7934",
"sha256:ece45eb2af8b00f90d10f7419322e8804bd42fb1129026f9bfe712c37508b514",
"sha256:f1c7296534c1afb6f495aa95871f14ccdc197c6db42965854e483100df313030",
"sha256:f847fb0fbfb72482b1c05c59cbb275c58a55b73708a7f77a83f8035ee3c86497",
"sha256:fbda3dd68d8b28ccb20ffb6f756fefd9b5ba570a772bedd7643ed441f5793308",
"sha256:fc3e6081069eea61593f1d6839029da53d00c8c9b205c5534853eaa3f031085c",
"sha256:fcf79b686962d7bec458a0babc904cb4fa319808805e036b9d5a531ee6b9b835",
"sha256:fde81b1da9a947f931711febe2e2bee694e891f6d3e6aa6bc02c1884702aea19"
],
"index": "aliyun",
"markers": "python_version >= '3.8'",
"version": "==3.9.7"
},
"requests": {
"hashes": [
"sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760",
@ -965,20 +1080,20 @@
},
"selenium": {
"hashes": [
"sha256:128d099e66284437e7128d2279176ec7a06e6ec7426e167f5d34987166bd8f46",
"sha256:3a8d9f23dc636bd3840dd56f00c2739e32ec0c1e34a821dd553e15babef24477"
"sha256:42c23f60753d5415b261b236cecbd69bd4eb5271e1563915f546b443cb6b71c6",
"sha256:88281e5b5b90fe231868905d5ea745b9ee5e30db280b33498cc73fb0fa06d571"
],
"index": "aliyun",
"markers": "python_version >= '3.8'",
"version": "==4.23.1"
"version": "==4.24.0"
},
"setuptools": {
"hashes": [
"sha256:b208925fcb9f7af924ed2dc04708ea89791e24bde0d3020b27df0e116088b34e",
"sha256:d59a3e788ab7e012ab2c4baed1b376da6366883ee20d7a5fc426816e3d7b1193"
"sha256:2353af060c06388be1cecbf5953dcdb1f38362f87a2356c480b6b4d5fcfc8847",
"sha256:fc91b5f89e392ef5b77fe143b17e32f65d3024744fba66dc3afe07201684d766"
],
"markers": "python_version >= '3.8'",
"version": "==73.0.1"
"version": "==74.1.1"
},
"sgmllib3k": {
"hashes": [
@ -1079,107 +1194,201 @@
},
"yarl": {
"hashes": [
"sha256:008d3e808d03ef28542372d01057fd09168419cdc8f848efe2804f894ae03e51",
"sha256:03caa9507d3d3c83bca08650678e25364e1843b484f19986a527630ca376ecce",
"sha256:07574b007ee20e5c375a8fe4a0789fad26db905f9813be0f9fef5a68080de559",
"sha256:09efe4615ada057ba2d30df871d2f668af661e971dfeedf0c159927d48bbeff0",
"sha256:0d2454f0aef65ea81037759be5ca9947539667eecebca092733b2eb43c965a81",
"sha256:0e9d124c191d5b881060a9e5060627694c3bdd1fe24c5eecc8d5d7d0eb6faabc",
"sha256:18580f672e44ce1238b82f7fb87d727c4a131f3a9d33a5e0e82b793362bf18b4",
"sha256:1f23e4fe1e8794f74b6027d7cf19dc25f8b63af1483d91d595d4a07eca1fb26c",
"sha256:206a55215e6d05dbc6c98ce598a59e6fbd0c493e2de4ea6cc2f4934d5a18d130",
"sha256:23d32a2594cb5d565d358a92e151315d1b2268bc10f4610d098f96b147370136",
"sha256:26a1dc6285e03f3cc9e839a2da83bcbf31dcb0d004c72d0730e755b33466c30e",
"sha256:29e0f83f37610f173eb7e7b5562dd71467993495e568e708d99e9d1944f561ec",
"sha256:2b134fd795e2322b7684155b7855cc99409d10b2e408056db2b93b51a52accc7",
"sha256:2d47552b6e52c3319fede1b60b3de120fe83bde9b7bddad11a69fb0af7db32f1",
"sha256:357495293086c5b6d34ca9616a43d329317feab7917518bc97a08f9e55648455",
"sha256:35a2b9396879ce32754bd457d31a51ff0a9d426fd9e0e3c33394bf4b9036b099",
"sha256:3777ce5536d17989c91696db1d459574e9a9bd37660ea7ee4d3344579bb6f129",
"sha256:3986b6f41ad22988e53d5778f91855dc0399b043fc8946d4f2e68af22ee9ff10",
"sha256:44d8ffbb9c06e5a7f529f38f53eda23e50d1ed33c6c869e01481d3fafa6b8142",
"sha256:49a180c2e0743d5d6e0b4d1a9e5f633c62eca3f8a86ba5dd3c471060e352ca98",
"sha256:4aa9741085f635934f3a2583e16fcf62ba835719a8b2b28fb2917bb0537c1dfa",
"sha256:4b21516d181cd77ebd06ce160ef8cc2a5e9ad35fb1c5930882baff5ac865eee7",
"sha256:4b3c1ffe10069f655ea2d731808e76e0f452fc6c749bea04781daf18e6039525",
"sha256:4c7d56b293cc071e82532f70adcbd8b61909eec973ae9d2d1f9b233f3d943f2c",
"sha256:4e9035df8d0880b2f1c7f5031f33f69e071dfe72ee9310cfc76f7b605958ceb9",
"sha256:54525ae423d7b7a8ee81ba189f131054defdb122cde31ff17477951464c1691c",
"sha256:549d19c84c55d11687ddbd47eeb348a89df9cb30e1993f1b128f4685cd0ebbf8",
"sha256:54beabb809ffcacbd9d28ac57b0db46e42a6e341a030293fb3185c409e626b8b",
"sha256:566db86717cf8080b99b58b083b773a908ae40f06681e87e589a976faf8246bf",
"sha256:5a2e2433eb9344a163aced6a5f6c9222c0786e5a9e9cac2c89f0b28433f56e23",
"sha256:5aef935237d60a51a62b86249839b51345f47564208c6ee615ed2a40878dccdd",
"sha256:604f31d97fa493083ea21bd9b92c419012531c4e17ea6da0f65cacdcf5d0bd27",
"sha256:63b20738b5aac74e239622d2fe30df4fca4942a86e31bf47a81a0e94c14df94f",
"sha256:686a0c2f85f83463272ddffd4deb5e591c98aac1897d65e92319f729c320eece",
"sha256:6a962e04b8f91f8c4e5917e518d17958e3bdee71fd1d8b88cdce74dd0ebbf434",
"sha256:6ad6d10ed9b67a382b45f29ea028f92d25bc0bc1daf6c5b801b90b5aa70fb9ec",
"sha256:6f5cb257bc2ec58f437da2b37a8cd48f666db96d47b8a3115c29f316313654ff",
"sha256:6fe79f998a4052d79e1c30eeb7d6c1c1056ad33300f682465e1b4e9b5a188b78",
"sha256:7855426dfbddac81896b6e533ebefc0af2f132d4a47340cee6d22cac7190022d",
"sha256:7d5aaac37d19b2904bb9dfe12cdb08c8443e7ba7d2852894ad448d4b8f442863",
"sha256:801e9264d19643548651b9db361ce3287176671fb0117f96b5ac0ee1c3530d53",
"sha256:81eb57278deb6098a5b62e88ad8281b2ba09f2f1147c4767522353eaa6260b31",
"sha256:824d6c50492add5da9374875ce72db7a0733b29c2394890aef23d533106e2b15",
"sha256:8397a3817d7dcdd14bb266283cd1d6fc7264a48c186b986f32e86d86d35fbac5",
"sha256:848cd2a1df56ddbffeb375535fb62c9d1645dde33ca4d51341378b3f5954429b",
"sha256:84fc30f71689d7fc9168b92788abc977dc8cefa806909565fc2951d02f6b7d57",
"sha256:8619d6915b3b0b34420cf9b2bb6d81ef59d984cb0fde7544e9ece32b4b3043c3",
"sha256:8a854227cf581330ffa2c4824d96e52ee621dd571078a252c25e3a3b3d94a1b1",
"sha256:8be9e837ea9113676e5754b43b940b50cce76d9ed7d2461df1af39a8ee674d9f",
"sha256:928cecb0ef9d5a7946eb6ff58417ad2fe9375762382f1bf5c55e61645f2c43ad",
"sha256:957b4774373cf6f709359e5c8c4a0af9f6d7875db657adb0feaf8d6cb3c3964c",
"sha256:992f18e0ea248ee03b5a6e8b3b4738850ae7dbb172cc41c966462801cbf62cf7",
"sha256:9fc5fc1eeb029757349ad26bbc5880557389a03fa6ada41703db5e068881e5f2",
"sha256:a00862fb23195b6b8322f7d781b0dc1d82cb3bcac346d1e38689370cc1cc398b",
"sha256:a3a6ed1d525bfb91b3fc9b690c5a21bb52de28c018530ad85093cc488bee2dd2",
"sha256:a6327976c7c2f4ee6816eff196e25385ccc02cb81427952414a64811037bbc8b",
"sha256:a7409f968456111140c1c95301cadf071bd30a81cbd7ab829169fb9e3d72eae9",
"sha256:a825ec844298c791fd28ed14ed1bffc56a98d15b8c58a20e0e08c1f5f2bea1be",
"sha256:a8c1df72eb746f4136fe9a2e72b0c9dc1da1cbd23b5372f94b5820ff8ae30e0e",
"sha256:a9bd00dc3bc395a662900f33f74feb3e757429e545d831eef5bb280252631984",
"sha256:aa102d6d280a5455ad6a0f9e6d769989638718e938a6a0a2ff3f4a7ff8c62cc4",
"sha256:aaaea1e536f98754a6e5c56091baa1b6ce2f2700cc4a00b0d49eca8dea471074",
"sha256:ad4d7a90a92e528aadf4965d685c17dacff3df282db1121136c382dc0b6014d2",
"sha256:b8477c1ee4bd47c57d49621a062121c3023609f7a13b8a46953eb6c9716ca392",
"sha256:ba6f52cbc7809cd8d74604cce9c14868306ae4aa0282016b641c661f981a6e91",
"sha256:bac8d525a8dbc2a1507ec731d2867025d11ceadcb4dd421423a5d42c56818541",
"sha256:bef596fdaa8f26e3d66af846bbe77057237cb6e8efff8cd7cc8dff9a62278bbf",
"sha256:c0ec0ed476f77db9fb29bca17f0a8fcc7bc97ad4c6c1d8959c507decb22e8572",
"sha256:c38c9ddb6103ceae4e4498f9c08fac9b590c5c71b0370f98714768e22ac6fa66",
"sha256:c7224cab95645c7ab53791022ae77a4509472613e839dab722a72abe5a684575",
"sha256:c74018551e31269d56fab81a728f683667e7c28c04e807ba08f8c9e3bba32f14",
"sha256:ca06675212f94e7a610e85ca36948bb8fc023e458dd6c63ef71abfd482481aa5",
"sha256:d1d2532b340b692880261c15aee4dc94dd22ca5d61b9db9a8a361953d36410b1",
"sha256:d25039a474c4c72a5ad4b52495056f843a7ff07b632c1b92ea9043a3d9950f6e",
"sha256:d5ff2c858f5f6a42c2a8e751100f237c5e869cbde669a724f2062d4c4ef93551",
"sha256:d7d7f7de27b8944f1fee2c26a88b4dabc2409d2fea7a9ed3df79b67277644e17",
"sha256:d7eeb6d22331e2fd42fce928a81c697c9ee2d51400bd1a28803965883e13cead",
"sha256:d8a1c6c0be645c745a081c192e747c5de06e944a0d21245f4cf7c05e457c36e0",
"sha256:d8b889777de69897406c9fb0b76cdf2fd0f31267861ae7501d93003d55f54fbe",
"sha256:d9e09c9d74f4566e905a0b8fa668c58109f7624db96a2171f21747abc7524234",
"sha256:db8e58b9d79200c76956cefd14d5c90af54416ff5353c5bfd7cbe58818e26ef0",
"sha256:ddb2a5c08a4eaaba605340fdee8fc08e406c56617566d9643ad8bf6852778fc7",
"sha256:e0381b4ce23ff92f8170080c97678040fc5b08da85e9e292292aba67fdac6c34",
"sha256:e23a6d84d9d1738dbc6e38167776107e63307dfc8ad108e580548d1f2c587f42",
"sha256:e516dc8baf7b380e6c1c26792610230f37147bb754d6426462ab115a02944385",
"sha256:ea65804b5dc88dacd4a40279af0cdadcfe74b3e5b4c897aa0d81cf86927fee78",
"sha256:ec61d826d80fc293ed46c9dd26995921e3a82146feacd952ef0757236fc137be",
"sha256:ee04010f26d5102399bd17f8df8bc38dc7ccd7701dc77f4a68c5b8d733406958",
"sha256:f3bc6af6e2b8f92eced34ef6a96ffb248e863af20ef4fde9448cc8c9b858b749",
"sha256:f7d6b36dd2e029b6bcb8a13cf19664c7b8e19ab3a58e0fefbb5b8461447ed5ec"
"sha256:02ed46860d202173ba4290ecadbce14ec3fdf5427bd5ec60153e3d94536cde81",
"sha256:02fe9809b29a7dc4a27b769a43c556288d949205db54338871a122b64751e0f4",
"sha256:08359dbc3540fafa8972db45d3ef2d61370b4c24b8a028a4301bc5d076eee0e2",
"sha256:090dc73807594126dd760a07427a6fd2071b7ef830d61c2ef4c730c5207725d6",
"sha256:097a33638caf7f59863d338352a5618161580b9711934806033827d022836c0e",
"sha256:0a35b81b51a1c5b8c24400144a334391392216c3a0283be6c7bd62f5a12a8c4c",
"sha256:0c43ac5852c2eb0b1a995085304e2e74088272cc45a7f69f2532202cbb4c0999",
"sha256:0c9db466370e8bc3459912850494ad3401f3664ff3a56842f0d4514166f54c9f",
"sha256:0ffb9f1cad56c547aa127e2c315e666ee9838156c8a3b14f37ba545b0167aa5e",
"sha256:121bf7d647b3f6481ce1030350c1cc4c43e18758010732a449c71a1784ae793d",
"sha256:135fa8ce237f24acb0bb9bc6f1abf0b1e7b87ca8b1e8078fa1ea443de6df896b",
"sha256:15fb127bcc19065fd912391a43bc80114635f0062e0465765633ab5d0c7fc3a1",
"sha256:178f4ab054f3a5dc84c8091bd7395b6713aac83af893b62259d5eb3f5359ce7f",
"sha256:18097a9e50ea31c61fece83bac8f63263f0c0c16c439bf82ac729c23f3b170e3",
"sha256:1a562055b5ec6371c307320e8460d16675244e810b20f343371fc52797d23615",
"sha256:1bad2d84cbcae96e3b83540adeeb1e4b9483b05a375d41598a9d992acb5abfd3",
"sha256:1c722cd58bd5443b1dc68279e06107dbe1325a8b961dc4aff3afd7b90fa33d32",
"sha256:1ce892a75a2209cf4f7007de21c6f6d607f4b9406ac613a59ad02340f6e933e4",
"sha256:2126bcbc9ddf92556133c0af7e0f6471a8c55d118392a28f2e334ce22720d50e",
"sha256:21ef75d8a18fa47725b50fcb7ae6d23a51c71a7426cdf7097e52f9e12a995eb6",
"sha256:22b2db22f72e1cb8a552ae12dfb748167153c7cbf353c62781915b5328bf2561",
"sha256:22e922072eba34dff2e1684437742d2a2c0ea2d9493816d27b094784ae6ad3e1",
"sha256:29c5649214d443882e1756480a5d14be6fab7b2ed22fd686d74f2aeb2f3021ca",
"sha256:29ef0819184635016a5b7505b9b55c0cd7f2b5c1ffd207db1a92fe7477763412",
"sha256:2c8bae124def27090b4de32d8f2eb45c8016c69e6a3e470b63a433a88dd19498",
"sha256:2cd2405a48e0d52b3ee9d524ea566eaef7dc50c03a69e5eb47e110ee5e63d13e",
"sha256:2eabe786f15bd3ce6c26e625393c6e21d13f28c2d8a71ad00fd29bb351cc1ee0",
"sha256:2f3e89838acdaf5bbd69383c408d9e119b4e9efbe8a38fa40045b5c966f918e3",
"sha256:2f8282aaa3b87e342fe211edfbd662c5d4a4397628a4a77da58fbc1b0269555f",
"sha256:3089553548d9ab23152cecb5a71131caaa9e9b16d7fc8196057c374fdc53cc4b",
"sha256:30929a10be9a13026fd68377aba3223d633370abb93dadd3932754f3dcf4734a",
"sha256:31543a3692a24329a476ad1e3c5d3c615799e4b89c701ccd72c4ef48a6a3c043",
"sha256:3346e2f641fcf31cf32c5a394d625e0676aba6fadccc06d35435e475753ed05d",
"sha256:34929e50d5f1305d0fc1d125170fc1d77991cb5a70944dc3618063f1c5b287fa",
"sha256:3574834e4aaf24e24d12fa4fd53d0b0fd1d70b24a67bed81c44b284377e81d45",
"sha256:39deb5a67b591682e54d1b09b36e79cd608ca27bea1fefed3bcaaa0b05d2b25e",
"sha256:3ad8ea6ab27e27821739dfb94fab63284e3a52055e268f04529dc082fd0d59a2",
"sha256:3ba7c4b50cc0bb4caaa54554613ca13db47a24878a4fc1063e6303494fc67567",
"sha256:3bd26d242481c2c275f169817b3f2b16c59a6bf6a80891a24d257061125a5f1c",
"sha256:3d54e9880e781a490483200a74f6314fb6cf692a8197ccde93adf32bec95626b",
"sha256:3f6d8da51024d7ccdfb2a1dc7bc95327b7e2e395f49b9c01d45a0330c5137977",
"sha256:3f8c454cf7e4d3762515ed2b5a40cf2feaeb8a8ed1d121f131a6178e16015319",
"sha256:405e75bb94b87cc4167eef0e08d6a539f60633229f7043edc2e65c82ef80e874",
"sha256:42dd2b0746cd6ffac7bfc8b90b1901faec4bcb997cd0580c425a5acf3e8669a0",
"sha256:4511dd73b6aeda0cc39111839923f1545726d621813c9d13355824fba328dbcf",
"sha256:45992ff8d941a1901c35f2ed90a60cb5fee8705ffadff395db4a5fd164473542",
"sha256:4812c5161fe2b6102bd20ed9f691d288312e85e371586468a20294733f8352e9",
"sha256:497d5fd7dce44b5dcac648c830c99a673d30bc6cd9905b3e255c92c6dc01f537",
"sha256:49dd58b79b0fd04e880c90bc570fde68407cc516c58812f0321f5e74c131107c",
"sha256:4ac4aa2f2d8253b9a5455d5f0ed45687ea9715b78a563490ddf7954337974cb7",
"sha256:4b20687c8e02a37d47a5196d0ac36cedbaee11a7058504d4552b2bf23d6236c8",
"sha256:4b4a8dc0e0242b32a6398ec7755be1248f2379e875283089d5cdd13639cd8d75",
"sha256:50cbf73b6a4b62c3ad633e8920f2791adf485356ef37c9edbd5a1e7de8da2ddc",
"sha256:51476f19fe1296d3efe3770179548f5f4822e5c4ead9f5160ba156a6a9f5272c",
"sha256:51fd85ee1284781e9a85dd72c419d24383a079b05327944739378c500c5d7ac3",
"sha256:551c26789acd38c7b90a89a1f262291d9f9a6a677185a83b5781e2a2c4258aec",
"sha256:55b893f572a98c30aeec4e77b22a834b2bd26272e529e80cdc925e5120de1ade",
"sha256:5796358c3d6c72b108b570e20ab951463237ec473b6d204da21050feaaaf7dca",
"sha256:57fc49161af42c094f96cbd9f1a3f22860fa099c4b71a932e76f406f98de6478",
"sha256:5809f8a48c8dab91f708947d358271ef1890c3012d6c45719f49d04af2112057",
"sha256:583f48ab25b3906e3716479e8f700c4cc487e44d52766a4ea52b01cb7ea772d6",
"sha256:588d62a57c7a43b230557728ec9f252b3f81ad073cb5c0ef48d87cd3f8b6ace2",
"sha256:590437f092af08e71521cc302940ef897e969152434c825bb3fb8f308b63a8bb",
"sha256:5acf87068f0f015287656d6a8c793022f4357f05bb2ee5cd97016b62e30538b1",
"sha256:5bc63d99a7401ccebc70c29645854674581cca0339ae9bce5b5761cc4a5fd174",
"sha256:5d39ae58a67b64b470021d18a13529d0c58efc5bf057936ec4b29092d4061030",
"sha256:5dce59101d041c53d5e5efcbd9f3aa3c3d0aae7d444fe168ef7def6fc8f79e36",
"sha256:5f8005b0baa823779b957ad4dcb1f26c3b920138ab08911f65dddfb2aa0fb8ad",
"sha256:5fdc0f92d49ec210d91a1d4d687c72169ad8ebfe572bea7125f867c45d340420",
"sha256:5fe9aaa0dc86de813bb332939dbd999f4d6b8d06e795a8550531417e4f3d18bb",
"sha256:600f734296cb99db1af7e34c0dcf8ec9477072f72c4621677637fdc2273af120",
"sha256:610338fd37fd403e0b39b459bb7c93c738f207a180b5a3f7505e9121de287e2e",
"sha256:62223670042a219b8e6fbd2c7f35c456278dcd346d3aba3f2c01c9bdec28f37e",
"sha256:65c9bfc7cdfefe8fd3f515741ae046bdc0c85322db11c919931748b94f5a268d",
"sha256:6703deac7bb0dd8b3f0bc3cb6844dab4e74c85c70783ae89bd0b52286ebdc102",
"sha256:6b59c1780439f21d672e1a497a901ee1ee5ff593a7714e80d57ea19613a7b694",
"sha256:6f017242c6f0dbea30babbdeffe09a392e3b2cbf1bd3165f5848e1e75c78b53e",
"sha256:6f4f87a7c97ba77fdc764b893ae4083c74e5857904962a70025ade0cd42bdbaf",
"sha256:701e1134f55deb8635684781643a33d00b8b4b3262c69293a815f4a7ac5c73b6",
"sha256:70c9d03dccc8ea47cb4619d67437f46e50d5edcdab208c7417691f67a9c91c9e",
"sha256:71ff7a22355241f89e850afbc8858fb671ba7e2763af32ebbea158d23a84902a",
"sha256:73075e3e55cbc0a18f97fc5c24ccbaa0d704c9c6ea77d75c476e131b790b3944",
"sha256:7318736a8ee9de8217d590866dd716fa3c0895e684e2ec6152d945a4ab758043",
"sha256:74c4f2d8d7bd55d83b3f6dbd160195cc0de7929a28ded25c8400782e197baf76",
"sha256:75c70f9a3b04a4229269dbb69d94e65d5a535204c5bb39cc26aa8835a3d9720a",
"sha256:75fa24b3de38c23f5cf515b0ea61de2009a24df85dda1a3ea5f831faa8d2ea49",
"sha256:76fc26ee73726b7f31eab8b35d9af6cceedd64fb43ba462f4378dcae54ccfdb2",
"sha256:78b85423a5d056a294c502e47215102aef07c3c0cb48190a61f046675676af3b",
"sha256:7a2fcacc146d3a7f273b40d3054ba3629e90efd447db04470605efe613fc5d06",
"sha256:7c0d2bc2646ae2380bb91b9ddc2eb1e1fa6baef128499e817134d1d50c8b6c56",
"sha256:7c2bfa141ede91d3ce05437569960306c9fe3b36cf389641657ca6e935033401",
"sha256:7de1968a1c2690b86e32e91acf8ed2043c346293f9bbe1704b9f6a481b73bd11",
"sha256:7fdbe893ce549768af25b35c847e3e7dbf31525bd404ff2b48bda8903a17338b",
"sha256:811e7f8b10b1c3239b0a1c58e503d77817114d50b98a588424fe173699889a02",
"sha256:81fde88456d2cbe005e16aca78ef744f322b3b15184dfe41b5b04f97b46aa5be",
"sha256:824658893f68d1ab66f5b34f1837917063f09c584bcb86a11b36015937d8497c",
"sha256:83273ca458c85d7b026c770a86df6e36349e85100bd2cefe6d0ad7167a8f12a6",
"sha256:85daf0567ea4ebbf7570f4dfc21827f76b061cb011413774c80f358b6984a662",
"sha256:87406de3fe6b0bd47143ef84654cb8c6f82fe2177ce34fe13c87332a1c141ab1",
"sha256:8c91b71b0af1fb5454709e34b39e38c975faaa89c0cc8bb744d60300ca710fcd",
"sha256:8ffbd1832725ed626b8454069292c56eb365c2af91942a9be39068cd3c3cb7e0",
"sha256:9351e96cb9e67baa2aaa0103a568e64f972af0463682f498943d21739c9958e1",
"sha256:9448c56192461de61671f30d1d75f4fb661dd5e3c1ac58af7cbab1e452981718",
"sha256:986296e65b0312c1da168de4ec1bb054b4a7b0ec26e3f9e8dafc06bbb1385030",
"sha256:99f78f45c8b4c9824e1a37eb0a3ae63ad2dff66434d9620265a4256088be9cda",
"sha256:9c936cbfdbf2772cf662db836267b1fa8ee314ca5a22d6f0f6087872dacb7900",
"sha256:9ceab2b16043ae1953863ec240eb918ba1ac40d2aad55225141aac288c606442",
"sha256:9da64c23d5783140221356d229f21330c859388ffe5ca7c82a3a0b6491080d72",
"sha256:9ea3a8532ea9fc2eeb6fc3def0c341aaeab7625545844f9c0a15350c17f9f479",
"sha256:9f67c9703fe4bce9fce84df735bd5ef40ef955a991ead0589dfe8411b71b6f8d",
"sha256:9f912153a34698994f32cf683d966014b0dd99c73481302d6159bcb3a8303e84",
"sha256:9f972fc63a1d6165d1cff650a16a498b0087334f7f9cd7385860c086d009cd49",
"sha256:9ff648251604c3e1ccc82e56e19a38c40355e99435409d6dedd5a0fafc09b426",
"sha256:a2082f6e2a5585add5218ccb1e742d59e2a54b34a440c1cc29a5e54873383417",
"sha256:a3dd35ff37b8da139430e1e09a312669be7a19fe34997adbb7c13c0439627cfc",
"sha256:a44c0b83d1871e1e1859167a1804143f590f86ac4708380852dca4d8299d8594",
"sha256:a496dac98e24fb096b518d7a16a64992697c5c3906029f65bb38e849c64362b9",
"sha256:a54f7a63e48156a77a7c0333cefed29ceb004ab683d685a1192b341ac445cb73",
"sha256:a7a716aae4fcecadfe4648268d3c194315152715391f4af6fad50d502be122e9",
"sha256:a8299b6f27588c7c35a062118a2cb8c9aba478cf2e65bab1a564272346e6657e",
"sha256:a87a544a6d1357da881afc6e421cc37c1936ba29622b92118f1ea92580aa8cc2",
"sha256:a8fcc14e3f34b774d3accc31bd852292700bfc5d737e25046db2ae6e2c8e2011",
"sha256:b001379047de5e03224dc0592f1b0e60738857a9b992d9b636b5050500ecce23",
"sha256:b0c2fbb255093df76219125d3cfee0ef621e131d5e4845e2ba13f6b600a8607e",
"sha256:b1e0649ee7ac354a3e40ee849707140b14a2cd0cd2dc2062fe620458dfe465c8",
"sha256:b341a995673180ed81a1040228a59e0b47ee687e367b1a03d829fa3c0eb4607e",
"sha256:b345de5e725b82e9458dc1381d7e28fe7d7ef93491370461dc98283b9dda51e2",
"sha256:b3d373373908e687aa4c8b0666870b0cf65605254ba0819ed8d5af2fc0780496",
"sha256:b3d465f314ed746833ac75abe414f5c162be219f29070a807838f8bfb4afa056",
"sha256:b3dca0a4e192207f8bb4057725ff95e9a14d53a04728742f2b03692fc91b0a43",
"sha256:b4a567416bfb2a2b093aa64685aa7b6dfb593888784ef91b16fa6b985cceb951",
"sha256:b4c7c015dc813aa5fe15379f3540d178e3743c0f1cf9e4a4a8bff94bd2832a4d",
"sha256:b58e6ae930efff22717543e23fc4508d6f6a0c44311d367ae467497b252164e9",
"sha256:b79e031524259b51cdd1ea41f5053491ad3565b9cecd76389c9f705752d14283",
"sha256:bc5811c1906b38f2a203df1266c6dd11680ca85d610d6ee3701dde262a305520",
"sha256:bd91ccded75d080f13ed01a5f5796887916d2e8c0999cd68bcb58f89f9b1c29c",
"sha256:be441a73f9f49427906274008bd98384d8ca4655981735281c314fc7c145d256",
"sha256:bf04119684a0ea72362b7a81a703976bdbecf3cec15ce4ff8506079fb0bb13e8",
"sha256:c172190df54c3347cfc003f575c4e9e8e1697a965f6933884e17db8838e12f7a",
"sha256:c2501b230e89cad2361719860648f780197812d3be91c7ca6658a097a7e22fc4",
"sha256:c2b0e8868dc95b8aa619fa027ba2f19222900330d1dd4eb4246245b500cb7799",
"sha256:c2dc6e941bf53160b44858d1b24767a056cd83166b69fbdd3b2e401856d8932e",
"sha256:c5950226b128a1610f57c1f756fc611fdbdcb1e6b4497ccb05fce76a38915b07",
"sha256:c7315681798a0051d2e60e0c9e5c37e5c27d6211844e8ca9d1ee8564bda6241a",
"sha256:c810606719683f4ab92127712efe283674d6ed29a627374411c762852913c2dd",
"sha256:c8560ad7c02a458e005f9023bdf134310c4d49b7ae40a8b5ebebb929d02735bb",
"sha256:c885a81f6c89b0d45fc0dd88e005c77dd8ba1dac421466d0dbb9192ce6d34e1e",
"sha256:cb3d488f049db9522e3a0de50e07bac0c53565acd88a07bc9cf7182fd6890307",
"sha256:ccc37e4462f57aa3995f3a678a8b07ba20127a44af9066dadaa87943d22dd969",
"sha256:cce910a1510d60c7eff4bb263b28b9afdcc5f6b85c555e492cfe7548a09e2476",
"sha256:ce2af144a81883db914636bec646da4dcccfe9db05c2899e7afe90a3d817ffce",
"sha256:d070c3ab3a1b963c14692abe3e9956f62276a8f38799edd52e1cc87f1292ab7d",
"sha256:d1612ce50f23b94897b9ef5eb65b72398a9a83ea990b42825272590f3484dae3",
"sha256:d30f8f41771921661c6779b31ea6d88412bb9e71ffaea8de113b04fb574a72fd",
"sha256:d336601d9ff3dc3b12263739ab1add25bdd2345d675f59ad49f72d9a6ccbc865",
"sha256:d88d2efbbe92eba67b66f67ae10dfdb58a0e8838ac68288b82718beca6c33fb2",
"sha256:d99011d564f2b5cb4cf1012f9058e08d8d79674332474f7e940131f5952015df",
"sha256:da64bf985e4e79535e6470a15b4b5ee649e81809110681e3fddfadaca91f5ca9",
"sha256:db3dd602cbf6613dc1e4a6fbde7a1bee86948e5940086090bb505c2ab959bbdf",
"sha256:db9305328486539bb7182c15f1ad1ea95dae52245e93a049f2b1d6f04e63674d",
"sha256:de343d94f0b35f4ede2f0a65a5eb966d027b3b097b58425683f51114db101ecd",
"sha256:e052d83d62ecdd3488cf5fcb2ee0f5f566513e07c7ff97b9b87823d9edf0a4dd",
"sha256:e206df52f94d5694bd69faf16ac81c4d6c1199d75653205b1a639c94e9ab5ba4",
"sha256:e3d1be58e28825a14fb9561733de62fbe95c892febe7d7a9ebcde916c531d603",
"sha256:e4e9f7c7cdd98d6c3618ec117b2ed925d90b58bf8d491fc2c6b798825927982e",
"sha256:e52ac6b97c5997aefcea65d40bb0aac098a050d812a6fd6dc8f5c045b81990c4",
"sha256:e7311eb49dc5d2d4ffc0dbd1c1613bbd2d57b0a6afe7e8b92e83e1e0a36dae8d",
"sha256:e7314923a52aec499330449221494e4a7a98b6ff40d10bdee7d91e69955464cc",
"sha256:e7f6d79bd49649e8a54917baf2ab6dc00d54c9d0ec32d3b5a5bbe8fe8be1f81f",
"sha256:e89d76b2aa11287f038a37577528c5f62d9385020b795a011f60dfd1b217cf9f",
"sha256:ebd98e16ff9948e4d31514c937275017a122b765cb89961dd5d44ecd2cc18140",
"sha256:ebf051cfc058fc3100e8587dc13fc69ab6a88a4297c52221d87535f93a4a97d2",
"sha256:ee7c00a1979b3f23c8094dce6d9875453b3cb91b1153d9efaefa6773cf80cdb0",
"sha256:eff7500ee3ec2ab6b85a5f95ba78e1d7fd9429786a231ac3c1e0d724a9cb60fa",
"sha256:f0c35338dcce6ea8e65344aaab0984c04d7dd49f90b52255ee68d8dbaf21ae36",
"sha256:f161366ff1070e44ea8eea03dc4b4cdc1db03a301ff4f3c352d63a7911446983",
"sha256:f1d2a0c1c3725a725eb2b5ac6000333843d96c758f8e4c1c27a77998f5b53149",
"sha256:f50be9b1b709ffa763c602ff515db1f2486282fc98364c9ac84cece607ff7e88",
"sha256:f7442a9342aa04ea60b760a8f0d210e269f881eb0660a2000fa1f8cb89820931",
"sha256:f79e65f16413a95d9f7633802a2ee34730b3ba1dd0af82811b377057883c4fb7",
"sha256:f89ade31926b9931bbe29f5c62d4174057e532fb0c72e2e6abdd129fda6a60f3",
"sha256:fd9affa8c18198dfa5a19c63b29ef2a2f35b8efacaf0bdd3e58f974c0ab0108d",
"sha256:ff56e21379824f3e3c39a37083d5ab905168b9483b1c0c563dd92eb2db18b251",
"sha256:ffd9dd7eac5d36f53fccdf11e98730b7a628561c77f6c2a9e0909d2a304f34d1"
],
"markers": "python_version >= '3.7'",
"version": "==1.9.4"
"markers": "python_version >= '3.8'",
"version": "==1.9.8"
},
"zipp": {
"hashes": [
"sha256:0145e43d89664cfe1a2e533adc75adafed82fe2da404b4bbb6b026c0157bdb31",
"sha256:58da6168be89f0be59beb194da1250516fdaa062ccebd30127ac65d30045e10d"
"sha256:9960cd8967c8f85a56f920d5d507274e74f9ff813a0ab8889a5b5be2daf44064",
"sha256:c22b14cc4763c5a5b04134207736c107db42e9d3ef2d9779d465f5f1bcba572b"
],
"markers": "python_version >= '3.8'",
"version": "==3.20.0"
"version": "==3.20.1"
}
},
"develop": {}

@ -12,7 +12,6 @@ from utils.tools import (
get_ip_address,
convert_to_m3u,
get_result_file_content,
merge_objects,
)
from updates.subscribe import get_channels_by_subscribe_urls
from updates.multicast import get_channels_by_multicast
@ -26,7 +25,8 @@ from time import time
from flask import Flask, render_template_string
import sys
import shutil
from collections import defaultdict
# from collections import defaultdict
app = Flask(__name__)

File diff suppressed because it is too large Load Diff

@ -25,6 +25,7 @@ import urllib.parse as urlparse
from urllib.parse import parse_qs
import json
from collections import defaultdict
from .update_tmp import get_multicast_region_result_by_rtp_txt
async def get_channels_by_multicast(names, callback=None):
@ -41,7 +42,7 @@ async def get_channels_by_multicast(names, callback=None):
page_num = config.getint("Settings", "multicast_page_num")
if open_proxy:
proxy = await get_proxy(pageUrl, best=True, with_test=True)
start_time = time()
get_multicast_region_result_by_rtp_txt(callback=callback)
with open(
resource_path("updates/multicast/multicast_region_result.json"),
"r",
@ -60,7 +61,7 @@ async def get_channels_by_multicast(names, callback=None):
)
def process_channel_by_multicast(region, type):
nonlocal proxy, open_driver, page_num
nonlocal proxy, open_driver, page_num, start_time
name = f"{region}{type}"
info_list = []
try:
@ -167,6 +168,7 @@ async def get_channels_by_multicast(names, callback=None):
f"正在进行Tonkiang组播更新, {len(names)}个频道, 共{region_type_list_len}个地区",
0,
)
start_time = time()
with ThreadPoolExecutor(max_workers=3) as executor:
futures = {
executor.submit(process_channel_by_multicast, region, type): (

@ -5,10 +5,17 @@ sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../.
from updates.subscribe import get_channels_by_subscribe_urls
from driver.utils import get_soup_driver
from utils.config import resource_path
from utils.config import resource_path, config
from utils.channel import format_channel_name
from utils.tools import get_pbar_remaining
import json
import asyncio
# import asyncio
from requests import Session
from collections import defaultdict
import re
from time import time
from tqdm import tqdm
def get_region_urls_from_IPTV_Multicast_source():
@ -91,7 +98,61 @@ def get_multicast_region_type_result_txt():
f.write(content)
def get_multicast_region_result_by_rtp_txt(callback=None):
"""
Get multicast region result by rtp txt
"""
rtp_file_list = []
rtp_path = resource_path("updates/multicast/rtp")
config_region_list = set(config.get("Settings", "multicast_region_list").split(","))
for filename in os.listdir(rtp_path):
if filename.endswith(".txt") and "_" in filename:
name = filename.rsplit(".", 1)[0]
if (
name in config_region_list
or "all" in config_region_list
or "ALL" in config_region_list
or "全部" in config_region_list
):
rtp_file_list.append(filename)
rtp_file_list_len = len(rtp_file_list)
pbar = tqdm(total=rtp_file_list_len, desc="Loading local multicast rtp files")
if callback:
callback(
f"正在加载本地组播数据, 共{rtp_file_list_len}个文件",
0,
)
multicast_result = defaultdict(lambda: defaultdict(lambda: defaultdict(list)))
pattern = re.compile(r"^(.*?),(?!#genre#)(.*?)$")
start_time = time()
for filename in rtp_file_list:
region, type = filename.split("_")
with open(os.path.join(rtp_path, filename), "r", encoding="utf-8") as f:
for line in f:
matcher = pattern.match(line)
if matcher and len(matcher.groups()) == 2:
channel_name = format_channel_name(matcher.group(1).strip())
url = matcher.group(2).strip()
if url not in multicast_result[channel_name][region][type]:
multicast_result[channel_name][region][type].append(url)
pbar.update()
if callback:
callback(
f"正在加载{region}_{type}的组播数据, 剩余{rtp_file_list_len - pbar.n}个文件, 预计剩余时间: {get_pbar_remaining(n=pbar.n, total=pbar.total, start_time=start_time)}",
int((pbar.n / rtp_file_list_len) * 100),
)
with open(
resource_path("updates/multicast/multicast_region_result.json"),
"w",
encoding="utf-8",
) as f:
json.dump(multicast_result, f, ensure_ascii=False, indent=4)
pbar.close()
if __name__ == "__main__":
get_region_urls_from_IPTV_Multicast_source()
asyncio.run(get_multicast_region_result())
# asyncio.run(get_multicast_region_result())
get_multicast_region_type_result_txt()
# get_multicast_region_result_by_rtp_txt()

@ -10,6 +10,7 @@ from logging.handlers import RotatingFileHandler
from opencc import OpenCC
import asyncio
import base64
from rapidfuzz import process
log_dir = "output"
log_file = "result_new.log"
@ -82,53 +83,33 @@ def format_channel_name(name):
"""
if config.getboolean("Settings", "open_keep_all"):
return name
if "cctv" in name.lower():
name = re.sub(r"[\u4e00-\u9fa5]", "", name)
cc = OpenCC("t2s")
name = cc.convert(name)
sub_pattern = (
r"-|_|\((.*?)\)|\[(.*?)\]| |频道|标清|高清|HD|hd|超清|超高|超高清|中央|央视|台"
)
sub_pattern = r"-|_|\((.*?)\)|\(.*?)\|\[(.*?)\]| |频道|普清|标清|高清|HD|hd|超清|超高|超高清|中央|央视|台"
name = re.sub(sub_pattern, "", name)
replace_dict = {
"plus": "+",
"PLUS": "+",
"": "+",
"CCTV1综合": "CCTV1",
"CCTV2财经": "CCTV2",
"CCTV3综艺": "CCTV3",
"CCTV4国际": "CCTV4",
"CCTV4中文国际": "CCTV4",
"CCTV4欧洲": "CCTV4",
"CCTV5体育": "CCTV5",
"CCTV5+体育赛视": "CCTV5+",
"CCTV5+体育赛事": "CCTV5+",
"CCTV5+体育": "CCTV5+",
"CCTV6电影": "CCTV6",
"CCTV7军事": "CCTV7",
"CCTV7军农": "CCTV7",
"CCTV7农业": "CCTV7",
"CCTV7国防军事": "CCTV7",
"CCTV8电视剧": "CCTV8",
"CCTV9记录": "CCTV9",
"CCTV9纪录": "CCTV9",
"CCTV10科教": "CCTV10",
"CCTV11戏曲": "CCTV11",
"CCTV12社会与法": "CCTV12",
"CCTV13新闻": "CCTV13",
"CCTV新闻": "CCTV13",
"CCTV14少儿": "CCTV14",
"CCTV15音乐": "CCTV15",
"CCTV16奥林匹克": "CCTV16",
"CCTV17农业农村": "CCTV17",
"CCTV17农业": "CCTV17",
}
for old, new in replace_dict.items():
name = name.replace(old, new)
return name.lower()
def get_channel_name_matches(query=None, choices=None, threshold=80):
"""
Get channel name matches with rapidfuzz
"""
query = format_channel_name(query)
matches = process.extract(query, choices, limit=len(choices))
threshold = 100 if "cctv" in query else threshold
filtered_matches = [match for match in matches if match[1] >= threshold]
return filtered_matches
def channel_name_is_equal(name1, name2):
"""
Check if the channel name is equal
@ -137,20 +118,23 @@ def channel_name_is_equal(name1, name2):
return True
name1_format = format_channel_name(name1)
name2_format = format_channel_name(name2)
return name1_format == name2_format
matches = get_channel_name_matches(name1_format, [name2_format])
return len(matches) > 0
def get_channel_results_by_name(name, data):
"""
Get channel results from data by name
"""
format_name = format_channel_name(name)
cc = OpenCC("s2t")
name_s2t = cc.convert(format_name)
result1 = data.get(format_name, [])
result2 = data.get(name_s2t, [])
results = list(dict.fromkeys(result1 + result2))
return results
name_s2t = cc.convert(name)
data_keys = data.keys()
name_matches_set = set(
get_channel_name_matches(name, data_keys)
+ get_channel_name_matches(name_s2t, data_keys)
)
result = [item for name_match in name_matches_set for item in data[name_match[0]]]
return result
def get_element_child_text_list(element, child_name):
@ -200,10 +184,11 @@ def get_channel_multicast_name_region_type_result(result, names):
"""
name_region_type_result = {}
for name in names:
format_name = format_channel_name(name)
data = result.get(format_name)
if data:
name_region_type_result[format_name] = data
matches = get_channel_name_matches(name, result.keys())
for match in matches:
data = result.get(match)
if data and match not in name_region_type_result:
name_region_type_result[match] = data
return name_region_type_result