From b06cb4606fff1d77b83afbd97b2c6abac71775e1 Mon Sep 17 00:00:00 2001 From: rayd1o Date: Fri, 13 Mar 2026 10:55:00 +0800 Subject: [PATCH] Fix: remove ignored files from tracking --- .env | 25 ------------------ .../app/__pycache__/__init__.cpython-311.pyc | Bin 161 -> 0 bytes backend/app/__pycache__/main.cpython-311.pyc | Bin 4595 -> 0 bytes .../app/api/__pycache__/main.cpython-311.pyc | Bin 1742 -> 0 bytes .../api/v1/__pycache__/alerts.cpython-311.pyc | Bin 7508 -> 0 bytes .../api/v1/__pycache__/auth.cpython-311.pyc | Bin 4442 -> 0 bytes .../v1/__pycache__/dashboard.cpython-311.pyc | Bin 9086 -> 0 bytes .../datasource_config.cpython-311.pyc | Bin 15975 -> 0 bytes .../__pycache__/datasources.cpython-311.pyc | Bin 9653 -> 0 bytes .../v1/__pycache__/settings.cpython-311.pyc | Bin 5280 -> 0 bytes .../api/v1/__pycache__/tasks.cpython-311.pyc | Bin 7112 -> 0 bytes .../api/v1/__pycache__/users.cpython-311.pyc | Bin 11054 -> 0 bytes .../v1/__pycache__/websocket.cpython-311.pyc | Bin 5235 -> 0 bytes .../core/__pycache__/cache.cpython-311.pyc | Bin 6594 -> 0 bytes .../core/__pycache__/config.cpython-311.pyc | Bin 2671 -> 0 bytes .../core/__pycache__/security.cpython-311.pyc | Bin 8563 -> 0 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 450 -> 0 bytes .../__pycache__/broadcaster.cpython-311.pyc | Bin 5150 -> 0 bytes .../__pycache__/manager.cpython-311.pyc | Bin 4309 -> 0 bytes .../db/__pycache__/session.cpython-311.pyc | Bin 2486 -> 0 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 630 -> 0 bytes .../models/__pycache__/alert.cpython-311.pyc | Bin 3560 -> 0 bytes .../collected_data.cpython-311.pyc | Bin 3865 -> 0 bytes .../__pycache__/datasource.cpython-311.pyc | Bin 2374 -> 0 bytes .../datasource_config.cpython-311.pyc | Bin 2186 -> 0 bytes .../__pycache__/gpu_cluster.cpython-311.pyc | Bin 2171 -> 0 bytes .../models/__pycache__/task.cpython-311.pyc | Bin 1735 -> 0 bytes .../models/__pycache__/user.cpython-311.pyc | Bin 2017 -> 0 bytes .../schemas/__pycache__/token.cpython-311.pyc | Bin 1314 -> 0 bytes .../schemas/__pycache__/user.cpython-311.pyc | Bin 2641 -> 0 bytes .../__pycache__/scheduler.cpython-311.pyc | Bin 7616 -> 0 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 2638 -> 0 bytes .../__pycache__/base.cpython-311.pyc | Bin 10160 -> 0 bytes .../__pycache__/cloudflare.cpython-311.pyc | Bin 8708 -> 0 bytes .../__pycache__/epoch_ai.cpython-311.pyc | Bin 6317 -> 0 bytes .../__pycache__/huggingface.cpython-311.pyc | Bin 7118 -> 0 bytes .../__pycache__/peeringdb.cpython-311.pyc | Bin 16721 -> 0 bytes .../__pycache__/registry.cpython-311.pyc | Bin 2679 -> 0 bytes .../__pycache__/telegeography.cpython-311.pyc | Bin 14337 -> 0 bytes .../__pycache__/top500.cpython-311.pyc | Bin 8738 -> 0 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 195 -> 0 bytes .../conftest.cpython-311-pytest-9.0.2.pyc | Bin 3442 -> 0 bytes .../test_api.cpython-311-pytest-9.0.2.pyc | Bin 16375 -> 0 bytes ...st_collectors.cpython-311-pytest-9.0.2.pyc | Bin 22183 -> 0 bytes .../test_models.cpython-311-pytest-9.0.2.pyc | Bin 23797 -> 0 bytes ...test_security.cpython-311-pytest-9.0.2.pyc | Bin 18921 -> 0 bytes 46 files changed, 25 deletions(-) delete mode 100644 .env delete mode 100644 backend/app/__pycache__/__init__.cpython-311.pyc delete mode 100644 backend/app/__pycache__/main.cpython-311.pyc delete mode 100644 backend/app/api/__pycache__/main.cpython-311.pyc delete mode 100644 backend/app/api/v1/__pycache__/alerts.cpython-311.pyc delete mode 100644 backend/app/api/v1/__pycache__/auth.cpython-311.pyc delete mode 100644 backend/app/api/v1/__pycache__/dashboard.cpython-311.pyc delete mode 100644 backend/app/api/v1/__pycache__/datasource_config.cpython-311.pyc delete mode 100644 backend/app/api/v1/__pycache__/datasources.cpython-311.pyc delete mode 100644 backend/app/api/v1/__pycache__/settings.cpython-311.pyc delete mode 100644 backend/app/api/v1/__pycache__/tasks.cpython-311.pyc delete mode 100644 backend/app/api/v1/__pycache__/users.cpython-311.pyc delete mode 100644 backend/app/api/v1/__pycache__/websocket.cpython-311.pyc delete mode 100644 backend/app/core/__pycache__/cache.cpython-311.pyc delete mode 100644 backend/app/core/__pycache__/config.cpython-311.pyc delete mode 100644 backend/app/core/__pycache__/security.cpython-311.pyc delete mode 100644 backend/app/core/websocket/__pycache__/__init__.cpython-311.pyc delete mode 100644 backend/app/core/websocket/__pycache__/broadcaster.cpython-311.pyc delete mode 100644 backend/app/core/websocket/__pycache__/manager.cpython-311.pyc delete mode 100644 backend/app/db/__pycache__/session.cpython-311.pyc delete mode 100644 backend/app/models/__pycache__/__init__.cpython-311.pyc delete mode 100644 backend/app/models/__pycache__/alert.cpython-311.pyc delete mode 100644 backend/app/models/__pycache__/collected_data.cpython-311.pyc delete mode 100644 backend/app/models/__pycache__/datasource.cpython-311.pyc delete mode 100644 backend/app/models/__pycache__/datasource_config.cpython-311.pyc delete mode 100644 backend/app/models/__pycache__/gpu_cluster.cpython-311.pyc delete mode 100644 backend/app/models/__pycache__/task.cpython-311.pyc delete mode 100644 backend/app/models/__pycache__/user.cpython-311.pyc delete mode 100644 backend/app/schemas/__pycache__/token.cpython-311.pyc delete mode 100644 backend/app/schemas/__pycache__/user.cpython-311.pyc delete mode 100644 backend/app/services/__pycache__/scheduler.cpython-311.pyc delete mode 100644 backend/app/services/collectors/__pycache__/__init__.cpython-311.pyc delete mode 100644 backend/app/services/collectors/__pycache__/base.cpython-311.pyc delete mode 100644 backend/app/services/collectors/__pycache__/cloudflare.cpython-311.pyc delete mode 100644 backend/app/services/collectors/__pycache__/epoch_ai.cpython-311.pyc delete mode 100644 backend/app/services/collectors/__pycache__/huggingface.cpython-311.pyc delete mode 100644 backend/app/services/collectors/__pycache__/peeringdb.cpython-311.pyc delete mode 100644 backend/app/services/collectors/__pycache__/registry.cpython-311.pyc delete mode 100644 backend/app/services/collectors/__pycache__/telegeography.cpython-311.pyc delete mode 100644 backend/app/services/collectors/__pycache__/top500.cpython-311.pyc delete mode 100644 backend/tests/__pycache__/__init__.cpython-311.pyc delete mode 100644 backend/tests/__pycache__/conftest.cpython-311-pytest-9.0.2.pyc delete mode 100644 backend/tests/__pycache__/test_api.cpython-311-pytest-9.0.2.pyc delete mode 100644 backend/tests/__pycache__/test_collectors.cpython-311-pytest-9.0.2.pyc delete mode 100644 backend/tests/__pycache__/test_models.cpython-311-pytest-9.0.2.pyc delete mode 100644 backend/tests/__pycache__/test_security.cpython-311-pytest-9.0.2.pyc diff --git a/.env b/.env deleted file mode 100644 index acfbf4f3..00000000 --- a/.env +++ /dev/null @@ -1,25 +0,0 @@ -# Database -POSTGRES_SERVER=localhost -POSTGRES_USER=postgres -POSTGRES_PASSWORD=postgres -POSTGRES_DB=planet_db -DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/planet_db - -# Redis -REDIS_SERVER=localhost -REDIS_PORT=6379 -REDIS_URL=redis://localhost:6379/0 - -# Security -SECRET_KEY=your-secret-key-change-in-production -ALGORITHM=HS256 -ACCESS_TOKEN_EXPIRE_MINUTES=15 -REFRESH_TOKEN_EXPIRE_DAYS=7 - -# API -API_V1_STR=/api/v1 -PROJECT_NAME="Intelligent Planet Plan" -VERSION=1.0.0 - -# CORS -CORS_ORIGINS=["http://localhost:3000", "http://localhost:8000"] diff --git a/backend/app/__pycache__/__init__.cpython-311.pyc b/backend/app/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 33194c8f3cc822f4f05dc57c656a24cc90a1fbb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmZ3^%ge<81lL7ZW`gL)AOZ#$p^VRLK*n^26oz01O-8?!3`I;p{%4TnFBAQY{M=Oi zqQpx5l+-f)oXouJ{JeDif}F&>)Dr!q#N_PMycGS!f&%^c_{_Y_lK6PNg34bUHo5sJ fr8%i~MXW$WK-LuV1BnmJjEsyQ7+^#ZGf)fw1l=WS diff --git a/backend/app/__pycache__/main.cpython-311.pyc b/backend/app/__pycache__/main.cpython-311.pyc deleted file mode 100644 index e53e5438f025013b8ddc5b34a195868bcc872828..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4595 zcmaJETW}NC_3lFtOY%z(8^;Een3o)E8Tyz)Xi`H=APv}!on)eZXx7@by=J9#?yhif zof#7|#9=5Uog^k94Q84c7!rp}(vmy8XXr4~NHTxQ(Ejk%bMH#BWT30N zXU{#4d+)jT+;fgD)z^CvJU@i4$P0k|n{>)gT?x56!y>eRL?ki_N-{BqAvmkBNiN1w zoKyIuBj%tuuQ-#gn2X{L#ht8+)luB3c#__jm*OtPm#mM~Q{1gIBpYLm$);En?bj*I zNq@{wagP#624g{rdzDbKCDxK`jkPj}Mb9A7cLIs^Qr!}V&{cTtC$>&v#0H5QWyQu5 z{1OnamRTs)#v+N6yc3U`=R4LSUNbdu`Km~ z8Ny{=^;dkPR#I#~f!6HYqhQB_bvxGRuD?(Bv4`qzSfjh~KHW~Sc?d^H zW2rDmMUh2|fq!-G2f2En;A>8D;`-`hMVBaV~hMAGPD-I zMd@f%kyA(1)L3*<5mJ&K9TC8>Qesq?oQx&~In^_H%yNse2Fpl{Plq4k96e=;W|&30 z0AK}vv&i)NPd}0Mw*TPW^1XMaAnWTe*6+^vo-m&}RO&sE@$E66+FRWVw9gNip$%tWJ~x#K zZOw+Z8jbfg_tv|xM07a9Tkd!~B_ySI-15ZZNtN6oz~5lRM}R{7oda<9J3#FFq*w84V`cRXV31z9 zH)u^v1zsgjAhdeFYDXiv?!rc&g^kp{;g9hpDx)Zmey0a zaVck0=_;w=_5yRCzYa{>@aJ|A@%-Xfxo_ueZg|`9z~C=>d$))CC)LDwxbI;2nZXw# zbeiXOQt3CZ_9P2LT??G0H>(8Gz{rrl01hYbkswXRj1-Ajr^L`YoHcR)&aPGV_PeicZ-RP^x#Oi_8r1)qcW?j`_sa1a^2!iK9| z2^Avy0nOrRKd^JhKhE8_p8xA?9^CfoXNA|lra1$KKL&+^6E38l*6?l7>s+4zTjGYEO-ov?w4lA|tXQ_W=)~hEMx|0F_yO@$16*<=i*#;4UCc zJEQdQ;FNe0#Hp1QPmb1d*c{F_**Ez7z_b1PhU16(4)x<*pu5(19;>R3`+&0_UX6q% z+vxwgQFB|iX|rv&+0<$_w-xIg#CjW)teMIel!_1oaE;Dok){zCBxt{yeyLMo(!$EF-VddgwO!n*w)TColRgD-Yvs*lY z;0P^{jCwQ)AC;l3>8UIcKMksQAAqV5Z4(LScZ3lIP;vk#a_lzvUDfTj&u;{`K+6QT zWrN!cZ^Ymu)E^?7EKjM%R^$;(Y`0vaP!Gd}z&z=-mU=zON~PVCP_c%I>sWy@m-w)p z7$ucAb`nk-NizzR+ETS9iNTos+p-#ou`rMXAT=tF*-o&bLamh6JykWjoxvK2kT?Qc zMay$L!I4yG`3Q#u8B#D|;*g|bw@F8L;Cdin;yZRaB+1XNAc!mB-w;6kj-*4YK@i3G zs?k=1oJuHZQ7V=Hmec+lU~zDw^d?fzw9lpX*4}gPvFn*9@e43Ai4ofG!5@ko!!Rc5 zGHTmx)Na%^6YVr=n~5GbYMY6EWz@FYXp>RfO!P~mwwY*`@t|g+PNTM&C~VX=6YVt~ z)QV0w19jK^z}V3H6CwX+mDhsUP?2>qp>wVxg3l`Wi33)a2~uv+k6aD2W2VQS^=veK zK`20rENUKine`#FzS(RDnN1sujcykU6S!EIz{SpT#UNt%ACUihiHs&7xid^_msNE(p09 zv?)usyy!%%yyFBI#U(rGQHgY0}$ZlT>t<8 diff --git a/backend/app/api/__pycache__/main.cpython-311.pyc b/backend/app/api/__pycache__/main.cpython-311.pyc deleted file mode 100644 index 23b54aea930f5e8f9701cbba3bae74db49afe768..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1742 zcmc(fJ#5oJ6vy8=juSf{rF@k{umK{J#$rO^OJb-fDk>BzBo0V1IX4*MBsx2MgaJm7 z7})60fr$^nP%&l9*wG+MR5u|pu?4|^n7F$%i7Nq8CQkP0-u>V2y}xCjUu7}|@bN77 z)|pcQzKEbd;v0+a?-hXOK!BhsxCkR8)=E`zV>srjSast#?rKM$%dL%XxVKXE<5}S;$V`R%ntPx?y$<~qBRD|6|wvWVS zBJ2*b^G__9xCn(^U&W_VKukY%{>+7X)3<3M#Z;^5-(>NoXH$=j6U(=}dXtvz#d5v2 z>38iLUcG$V_L*i?ZR&e0>Dj*T)G8j!mh083UG{CV zD5|i`9mi{0Ri|b7PQBKOo1!=6=L`x8(;C!Xa_%wJw<=ysGo>Rc4qYp4MohFKCZ~EP zX+mTf=Ad0`*m+8zyqt7SlfA@&f2xa(gxRxBQzFvM{sYjoh_mJ<+ce8J=L+L2v1EC^ z)o`ddgv_uSjUtbVcMi)ZlFq5dCFxFfmffiM!^lpuJk5wu)D$J0MJitm%R04kwMp!L zto8Qaz;~Vrzs7hslc$@m<q`&JIUzSq9n zcBDKL0?(Tn$m{BkP~H8a6daoij-Knr0Oh}df|MU(>dHw2l-g)D8RieImex+JnX(uT z0SABw#g>a<-fX9XvsZ)JYciu0LMedKFyr5DmJ4D2;OgN)tS^xk5 diff --git a/backend/app/api/v1/__pycache__/alerts.cpython-311.pyc b/backend/app/api/v1/__pycache__/alerts.cpython-311.pyc deleted file mode 100644 index c606af7aa5c718ac4cf22403225fe91f5c001df0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7508 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 NlucDxg{>IvzX7vE>9GI+ diff --git a/backend/app/api/v1/__pycache__/auth.cpython-311.pyc b/backend/app/api/v1/__pycache__/auth.cpython-311.pyc deleted file mode 100644 index 699cf5f026b3eb340a5281bfc4fbfbc1ee3143ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4442 zcmbssT~Axdb?%3+KQP9|#u%JXLq6RQoS-zTq#=lav!R=iEFarltEzkP9pI9CZFcT8 z2`tfCNz`VmNKGrG@Q??d(xA=5KIEZ4!$_8Tb)`s1Ri)<5QL-@VYsMybzjEEaF^Dk`!jxqOIouY$OIVf)>`ynCa8xpA-y%z zs)sXSJ(7tqo=0obqnRkfy;{2-%fuM&(>nCdOee#ew77mKb4Wj&Im{s*Vc|KL{e5i@ zDAR?z)_+zX?m`ql?tIz&9QO7-d`^S;V&i;D!O`a&NWtf{8D0rskJ5sDGoliF=xUsi zNgTLhX#W*)c#nQgX~i*ECH#Tz?gMp48g(db578dGdSLF6+8%cQDp7oRKTjNJSNjKc z9aUlzDB1Cbs!ejX*Hm?^V9k`1qU{~JH9B4>nwZ$`5xju&ieWcjo1DCrzMI1frdr6` zl3~hb(SVs9H;0PmT>mZEFzytHGLFA4V#B;zAUZJpL&j1*H-QZUCc#)V@m&*sJq9*S zH9u=4U3NG}ux#S2oXde+)-2q{c{{RABzT5kV{V(;GOfwE+nQ>a+l1gOHnX`RAvkYl ziv}3nvWST~vy@%fwg(oIsE{&Em!AR=_;pRvMUuSjql96$zU`;@I5rjvc>^y?DXlQ8 zQkw%{0HbB~0(i*w&cNQXifqa@uT1CaR}mcPhVKDc2}A2w6ip()&+ ztH7_I`MO?}YrOIgAeg@qzCcff-;4M76@Gn}rX8J)SLvRxB9!8$cZYAXG~$fsr5ark zUW$#Y-RI1f8W-)kp!dWTL2-4|*(+k!QyTzBYT(rO0~~h)r*0K+JPn+>jll6Xa3J+L z4LH6Aj=#n+<24K+@MoYlS`p{#dK>p@{Er?2jrCRkD;-VyczIXKQ~aQ@?n#w{P;W?Q z_grRoZ8r#gR9aebDFL%*XU2SM4Od#0UErNvs{y`qQsR8w&r0x_poE@@kThDymVY;q zzMdYQOsGn4f`(mQ)^TqF>$0l#CTgLVos*5Z-UKOVz*7wfa8q5xiL2u`Z?H*5;@8*G zN&-@X0&%X&ngOBPv6~$(u_cyCK-Ts*p}VZISL^L$v)3 z8Op~JRn}Zuz_t(HT~HxSWYxSaQp1yB+l}wy9L=HhvN?)8GuX_{74n$SfFm?p*ljeg zX3w2Do1GdPnwq?Jb9^+D9wGFE$Vn>TVqUeI8@x)Al;y2El?3V7Qlb-Xj223Hc&VzN)mHD0@!6 z^|~U`djz10T!Di@>1x%FnnHg{{V}!ai&uQ{(y-@!YP7DV|csG*UOzEvgEaE zKIp1T0#1XTHN^$VOJd2(Jw|$fMvhQ$jDq77oS@+60FsguJT&%L@R0Kqqlth8U6LmQ z6sK`v&?J*ckc*UXp$4u~&TjxXxA{j8VyANb)y;D6NI9I|45usMbm{uO?(bSnS+S#) z*l8=0s6>t(cmRYZsbx2Pq`*Th2ZMT}Mm>P<9j$nd#}!WDRSr_OFlM`TcxB16c)5L| z$X;ACMNL~ufTCHfBtY2)B115ft-!WsOU^3f3Xp#bpFy*ev%4*STetmCC3?Er?55G-0GGrZF_t`Ld!Vjh`m!c;E4F(^hN1-V#EecuoxoP+4UftYB|;5~Axcwe0n4^wILh%9G918q_q|=wsE8gsF6p zs;JSKc!a8NqdbW?|5u0$1;b>?-w7OgwQK<%>g){mT)>|^mtgUthA)#TkfR4@T!V{J z6*!KwP*=IJZ=r$m$GU~imm9lN>;09R^^voU97)yXA@O5EztYiP6#`T#0IM~+Ghh^|ECn;FJeBFG>H2DuYp-zaRi5Mes|Wy< zi`6L}D%W|x^HF-ex74}GfrgZI{Pa4lZJWmjE5`?`$V1lzux9Sy45O;fz=SGa6JcZ) Gum1rE;r?y_ diff --git a/backend/app/api/v1/__pycache__/dashboard.cpython-311.pyc b/backend/app/api/v1/__pycache__/dashboard.cpython-311.pyc deleted file mode 100644 index 974f474eaf97337d137ae541dc7f7f9665578bde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9086 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 I#vA5;0FF-(CjbBd diff --git a/backend/app/api/v1/__pycache__/datasource_config.cpython-311.pyc b/backend/app/api/v1/__pycache__/datasource_config.cpython-311.pyc deleted file mode 100644 index 6a93cbe32fb27b2535f7c1fdfe3ba76b01730065..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15975 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 K)l^J8=>Gw02Db75 diff --git a/backend/app/api/v1/__pycache__/datasources.cpython-311.pyc b/backend/app/api/v1/__pycache__/datasources.cpython-311.pyc deleted file mode 100644 index 15068795f099f5d355ff0934cdba39bd9aa55c8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9653 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 diff --git a/backend/app/api/v1/__pycache__/tasks.cpython-311.pyc b/backend/app/api/v1/__pycache__/tasks.cpython-311.pyc deleted file mode 100644 index a14444f5d18740e1bcf56ea0e494559ba9c0b270..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7112 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 diff --git a/backend/app/api/v1/__pycache__/users.cpython-311.pyc b/backend/app/api/v1/__pycache__/users.cpython-311.pyc deleted file mode 100644 index e965fc02593f90c9127f581141f4f00ba20bccee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11054 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 F_uuGsdsP4c diff --git a/backend/app/api/v1/__pycache__/websocket.cpython-311.pyc b/backend/app/api/v1/__pycache__/websocket.cpython-311.pyc deleted file mode 100644 index 01422a721bd0f96a6e9039dc4e97b67fb4fc9816..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5235 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 LwYtO}?#O=t?7p6z diff --git a/backend/app/core/__pycache__/security.cpython-311.pyc b/backend/app/core/__pycache__/security.cpython-311.pyc deleted file mode 100644 index fc8ad15a0399813e2a2fefcf189bf11bfce106bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8563 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 ScP|92h@vE`` diff --git a/backend/app/core/websocket/__pycache__/manager.cpython-311.pyc b/backend/app/core/websocket/__pycache__/manager.cpython-311.pyc deleted file mode 100644 index eb6685caefd7b58f268f3015543f41dc13a893bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4309 zcma)9O-vj|7OwuA>6z&nV8Fwlfr$abID~O*ykvJBPzcC!vP)LLCh|zD-e$VNgXeFn z8wg}9A=z44yBxSVhiJti@?tp$jy`4&E9KaOT4K}^lC`TyySItR!OCf0RnIij174-N z`qj^?s#jItd#|eg9u5Z)gyT!kGmioY{hJi(fv;swzl6+Fq@om38I{d4DTbzOiiMQR zaydT5=Y*7y^QC+YX~SpzIe*Ge^Fmh41yTW;XS2Z^n+nmqFDvE3sW5|BbO)*a$4C{Q zu?W3@-wCM*i?qlyD7>gwp;U_+&>}0W8hp&BT2*!tB|_VmKhu^M3+V@%5&y7|&ueKT zQ^?1EtK^kc4gZ()olkH!KbuJ#Hn*r5w)jbrG*Pk%#uin@(2Pt@gM7dph%j``Ff#d7 zJ?%<|j8H3_{t+@yk%nL|5ZQ+mr?QVxidQ*JPppuf?T1AWKIWwPN?Wh79xS`1ngW3|-)Qm2tvl%UKz~=C}mR-?F=lD-E$@_(z zmc+_dQq?w+*-ZXHA-|d|W|h2VB$pKcCa)%yVlkO6U@f_+E$bAlWX?foytrkHvYg3h z3|ZdpIk({PI0Ll}Q04vUC%h#NRBld^wA-Zdlq}2+xDsstx~^e4qo&Cw)PoN) zkKjN37UuskVqjxR%zmBgNxjPV2u$D$?o;%X`!mm=5?exR?)GgkIA+w91IF<7Y;0L# zZv)?3)9p&#Z=9)HTVkGpq!+FJl4`?f&k+2RT=REA?&FpN$X8i#<1qTBwO{cU%jw}={x z44{7x-{Xzh!lgQ#y9iIbd~; zR)!PRfG`~W0Rj1ukcK|h5R!&LERMoTJ(f&th5V;~0RmP`ED~}~*g$x)v0P#stjx8f zdTWwiXk~7L#{RnG9r=Cm42$lMiDoBQN3Z;#8EFNp39bowoy^=tJ4l*2UVQuVdBD%O zSD}|qoH*beiteda>>V>iVnu4DC|c6ku{3ccO&s1UOVgG#ZA#OX_D-w)+QFpNezS_0 z@U2Qmm(}t1!5y<>!iiNslEz_>Di2)RgzmQO&uO|2$Eau9iJN-_KfM>!9BA{_-}Y|M z+1AgZKU{yv1rWHVp9O-~>Fy2;BExkE2n`|3G3XxJeR~sq&fPllT|JLEE)jw55e7KvEyQo8_KKt7p>exH!H(>5Kzz zZP2?;0OY;dDhI{auU}UKHGtW=1f4jduX^8OUj{!Agn#f1P;h|REO?S6VI7lZyc z=vD_^WggJ$8Xj$g8zAn7vj@Ei;8N3x(hM9@- zrC`4c6%_F%lmpASpr~m@H@17vBkM9Jpu4^c+H2U$E%19Bq(`u zr_yMNOc<(x>;)^a_;Kv&QS53tHfqI2&DM(}K`-%&9-znK@R2xN7Dp^`#H>e((0qb% zbTdruym=+3$+8`k{$d3C}_z{yIsq(Dw9&ACKh^<0&f2)chc?stQ zB+X=q7jEs}1xF>^ddbnGnMgjN`*5O)Ao+HXCe5T(5T>gL$i6|7!!%8rNrV?h$>7bz zSs_`M?ZcX}j`L~AyMY)2Requ}j`ABW6S>O9zzOHPLhux@&$i9Jw5l1h`;w6Bt!ALr z9Q-=D(>i)|5{mB3)1HYoOmxiV=}F^P^sRh4Q?Px;RuLYOm;)XrR*A_8ihZQ1e+9ga zQp`BmhUsN+yw(v9kQOcQavCQuCm{Ki%qqQ_I;eg?h9NU*n*2}VZAYJ`@Lk}Nz0m&! z1T>UkD(H%duDn8_9r{&JWQTqgbk%%wte`&A8-GsCD>P(!W7T(q0VvOtA4uJgXAF2+ g!DTbpTMqVF!M+`T)yFXH=I}4TCYkm(5(>lr0L4PxSpWb4 diff --git a/backend/app/db/__pycache__/session.cpython-311.pyc b/backend/app/db/__pycache__/session.cpython-311.pyc deleted file mode 100644 index f72450dbe7966117bc8560793c3a7c536ceefdbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2486 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 a3T2O(!S`$s!_(kV;Rjs(@eM39y#E1Oo=pY- diff --git a/backend/app/models/__pycache__/collected_data.cpython-311.pyc b/backend/app/models/__pycache__/collected_data.cpython-311.pyc deleted file mode 100644 index 6c121a6fb4bccfe1a988d6198018059f9651dce6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3865 zcmb7G-ER}w6~F!-e~j(;D-ayVAt}Vb#-&hpQv$1!G?2|Ul}d`1*@w~Kxn>RHakw6* zB)h6yiHB6`gQHr)(r%?lt!U8lz#|WR*h>2c*sGDS=B1JP#G6;}#8c0iv7Ok0Djj>y z+~2*wd+x`a-?{S-p7#;BUdEpm{tc!7An0ALZsGMEC_E-I5r}M)?TW2v7wkoc;3zr; zXVE3Nif+MO^a!3JCvZ08I23QuC-}^=Q}GuALcm7s%B_lFpY{x~!F0LA{%nu{zI6#k8a->6}F`vGObQl<^pD z@K7nL1_%A=TA@e{&$6n~yObI3n;N<>oNM%(1cz)FoOVK8)Ga$?$1~^9syx^RHz&KE*kHYITbB&{ zXPzOp_q}Y#Gwz8U`onEqg0Ii@9>KG}&-M+n2aymsB9BKN4G#4V^?MJkc8C`~B5$P6 z8(QO#zsM1J(LV2g&o9>J`3FZDL_!>Sa)2fZ3Xi3Qk}7X7GKDqC~gmu2Yq=Lhc<}?Wz;RJgC}oslsx!Yy|rR5eaJR0^JgWy&@v6T7XJ8&s(=RgfQwgVPhOX&=-YZmY%! z91tbVNWH(Swz*CXFV0ECVy>SMU`P+#m=Iro1O}3=?JIH*O4ju?k?nx{e83LC{e%G6 z`BzM#uGOv3{6a5@F2YFZE&DIhZ*AGPwyPP3VK2xm2|n2bn5U5L%2dgh(Qo?gFSB2i ziZsil&8$o}vPwa{UsCU8*A+>nTK0~VyH8a)E3L0*&9q$39xNM|G`qfOaH7cQIupgM z#K0tGd-a!Kq;dvKm9#@EyRpBIHbX1$-&=f!5BR^B{^zV!Ld&hZ1~M_+jA|984(yl{ z8q6JIF#pG-FtlfXfurj1o&g@%Gr&%0M-S!&*aaB9_OKgp?+_%=?g8984iIyI@xAr< zUclTT>;vpQg#Ccc;}+|ne*m!mP&*Gea0mwh^M`NFNh4fW~|KL^u`YLmk- z>In1;_gJQvK03M=h_%R8e4(U*ezde!O3Q_uRw${UT{Z>I%_uXxUClt$VZa$qRe}@Q zr4=+#uV1F+94oA2H^Y-FRaA{_8qQongFsRwAXQ|LivmGt6r*X5!XXrL_WetYm4>ejvrBg@UhxjUFh(Lf`lJy zT+~mT?Sv4937@EG^{+Z3h$6j?QA9Dqk2aj&@SQlKL~n>uM8|qgk0ToE^*ezmY4rY;Qqbgttd1e}>$4&CdW@r}3 z6H|KX{L9qkA5xcFsVjQwN;7o@$r&V*xYx&KV8d23QYHI2W0)xz%Gq$JrQe%j zV#bES70M!nDg-@>-w1YRB}(jW84}@XtaM_qFwFH&iMd!aj2NojG}yEJ5hVC(|JQad zG@T3kvFYls_r0O*M9s6i_9E8wUTt}=>fWo>Yi&NdeXF)qTWVa`S*fq={p7jUao9)P zKN2u+&{UTp{sNKhOSMzAQ;q1(+4|X*Kc)Lq)x|bcFV!y9E;XihF4r%&0uy>*qWY_L zsw)uKq4;*bcB^))v9R-b{qt6EQV&j6uebdp@AL`mjat5zZ~S)WUj1Gx zG^vLst2Yi7ac5_%zSRn!)WauXY9O2FJLk~%9@#llKhyG$>;CcTBJg2yi8dFhE$*I# zl}2!-5nO4+UHt@B8XJS<%rs{97Mo+|TVv<-vGd=}d^i35%)icjf2O(iSu=XO6}_!T zZ&yEU$4|hbZZvM}$<5@2R`P-lHhxi$U#zaeK;Z-|ANW%N*{dINOr4Q{)d z!3)nnd+~=Bx2kiiZH~v9+2`Dgvn_5(=axDyN5Ty*d^XpowhlRD-J>pFBi14Cc(1X7 z3gc-t6J+!7G<@X;ilpSepv6r~8)gKX0x`8=O2CY7D{c?yvrx1`JqYLjtbAv-Ov`1+ z+YFB{D{8M{31w?W@>_1+QtMT=1aBfNwaLd#^6@@dY5xEJHkoJ+{`UtV Zw07LrZ8q4NciYU^_s% zP09lg)t*wV(t^gMK6OF#p^uaH!X*9xTe7ssPe^;}Tc_@cr=1(8shSQpc5NS@bINURSitQr==9iCPqYE+1l1VvmX9n^KoHO1^M??VL)VBLyPTMoENS$b zUNwqnRMlmqY-2=@@j@4MT|tuOF_(0us%jn!P&8jwkr%q6S!fX%9&^ny%G#nw&!dM{ zj`ZkKRV(8EMae|P?p~cA(-n5Vqi|G+5J-rOl1U*z5r{@XnUbl^K%bWk*1;E&=?xP6 zhtD5!aFf{pOV8l*hrqrCHr&I8`t5=jY@ZjA*P_Flkv=b?7z@!v4{2gOEB_t~*Re7n z#|~MEcQk{Y)8hL4OmufhLJR{3<2on_sh%(KgPMbqkp9mWhhC2aO=f9$FHal5Jlhk9 z&B4C&%lo%cTOX6@)02%kyFqCX)l61z;6IACIc^;oo+DabCegY7-dy5YT{i~ z^Ejz$>1C~GAQfrWwhU3sK(Vu0RZ*nd3fjg^ouiBd{JdaUlhH$u`uq$)LNY2zRmIxA z0IFr`>u&)y1gw$5E5L*WZMCdxXglps44BBcj|{Q94&Wo8@K{}|R=`J8>~#W6;~N8a z_U;Ej;Km@oA(nvi$B%?ef!xD`9QY{+k<(X~V;A;gA6=$C8hu4hLC{oL_GnE~5$M)!H8tlibMMZTg)8nXD?Qt>X*WL~ON_|8RQ^7u6U!^~G| z9xI9lsu-fUoZ8F-BX2*Fa&bx8G{z*G~tjRPVY*BW0!pTm!*$JB-YG>X7@b%{P z^-GU$Jh`zoX=e&frr>4@_0RmRrq{=8?v%rwa=BBm!C;y=XY!kyaG5nIaY`@Lh fCXU+&-DeVX{7(evw!`As^j$Ee^Fpu diff --git a/backend/app/models/__pycache__/datasource_config.cpython-311.pyc b/backend/app/models/__pycache__/datasource_config.cpython-311.pyc deleted file mode 100644 index d61e3a53559c9662797b57d39175349a57e387a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2186 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 Kf9;^^Z~AZkAt})S diff --git a/backend/app/models/__pycache__/task.cpython-311.pyc b/backend/app/models/__pycache__/task.cpython-311.pyc deleted file mode 100644 index cd7514be24eccd74d2174f55a3c7d36ccec9c254..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1735 zcma)6&ube;6rNqJR;#sFvMMQ7?b7&QTI*14B1!|bks%FkYdgL~?O}UZ);nWI@%~U| zS4nJo&>@Fh3JL@&D1{t~t6(2`%rS-h0V@zx?8(qmZZ7W0r@qn3GE!2=Xy?s)^F7|1 zdEXoTt|&5s@mKyuZ9az3-^{oe@u702f$}rLNJE&zyv5nP#@jJ1W(%5N$F;aEY9hz5 zn3b?4O&aKem9%9|<`9p*MmYW$VUfs(kmCquG_)z4xPyw)LH;Y(vWV%|TxX$bczX-B zi;4Ayc@^WK2x!B0Lg|*_lWNT-Vd7iIC%c4(;vJvXoZV2Ul1F}#3x%DAW3u(8;SqC~ zX0VJd^9{!?Ly*S7g?P+qF&+_t#4(TgiG(DBqn z^bhd#W29xV0@S6#)FpL{xp2lDQK|c|;Z=)#I8~=L+o1dU9@!5Sqv5+X$E3t2j=u)5 z42hHuNtU9Io zekkcWC3ULn2ead8OBX;M5_nfZG*Lgj{Cx4ZPlNO_e4Xm?50S>Cw0y>{wpGlrkd9#! zT@Phlhja~#>C?J?zhPKIMA3mCsCi^kRw&9UMrT2U3O3+;ZiAXcuVE@OpumK{P#G#f zeS&qv52sDnu3KbiWhgOSiaotfU6Xho!89?5M<{ivZo`%V4_9J)F~@xv%FqY!tXU{J z54$fA{RkF1$HdfyNP^orHee(saz?UQ8s$(2^(dG%#3NLISZN-tSy-t6b*T5Iha zo$p>Q2D#O4Znc+NZQkxH*(cw()&MC#U4ORT$p?zsRn(rMHrM)@+18b|)RsDnK|$>n z)E>ypwO;00bG@Jau=PcIslC*>70g}l&Ry?;%$9rEa&xm^__!^$AO67wg>tu0?iI>` zkdM-T{&e%%CS-j_TthiCB*+aQ3|GBgh z^-hI;1^{bw?66Q2TBA7D&-F#5`Vy2S}E3^P$zXRq+4s)0{IFna+Q&0p`R76u!Br~Lhc%~DK zuo+PzO zw1UVz%Owkh2H_c(>efPl?r1KV)lHJ)18Kfw71(@Rb4cODWOE9i2*a3;)jFd|smgzvUtv>HR>&`x+$f>ju;rl3=N%4r`TwR?buGd0~=>pl7JI+YLX{bxCcOX4{0V-;avuaaZIE^d-So*VZ%p8J};-PGyq`nte zsjLg@{Q20dbL#2Wn1j=b)08cM1DOTls_i}0Ma@}+<7KpBakyYpG7MEwqPn|A`v4v! zJAslzjCuMo=$ZhB`7}5<_yU3=E ziQ&lX)`yF0LBjc)J5Mt#B;doDhrO_YGX$i}HPEPcz8~}td;P;(PwM?+e*aiS^3fHq z*^l7^ZaUW+AXT+Alc;JCQ&rfyWH3IVs*g*WaiU48s>`C;5-BTI%AT-5&@pAtLV%dJ zOdW)Xsp$soXR8v0hljEo2%@^9Y6Vw^$VQl)G&ILm4SPYiRL!M`t%;Vs8pH~eK$J18 z2C-Jeo4n|_lnw&yB}YGji4HIlZxd$Jc?ge7`SjPw_LUzTL{pXCYGh+}H|s_7^=RIY z=F7Jmsh-M8b-p@Z`}X
  • 0mX?(E)OFEv$9P5G&*@?;~?U74untNGg1=i@KNH{9Kk zy-&TwWIZwICnn2x8`&$>iCVsv-?;kI_|N0JJzjRSo*nhGqvZ#Uc&3uCUawxSbw9uH z;>O0J7nkdC*^kTRJB@U2HC$cYlDza#Jw4>7hsyU_w#I5>TeDu@&3fNWA87WLpS=aP zGMB2oHB>`e*SyPe{j%&|miN$}w2xlL_G4b=em!&F&)hFhHGvJ3uAtgA4-M4OfR6@t z(XR9g{T6!_+k3P(yZ`95vacM8LU;Hr2jm?i<*6eihCbhzIpSctkhE@`UG{V?9>ko- zhGrBNiMiGc?pZ=Klc5#ht~1auu&oGpu`0rIkiU+j+ZK(s!$&`3+-Y3jqc2*i_$3_y w1^dr%egJYL@;u+*zVbe-H@E@sd_OoZg7zrf&BMX}Nh%|6+3LH0Q8gX?3$X40$N&HU diff --git a/backend/app/schemas/__pycache__/token.cpython-311.pyc b/backend/app/schemas/__pycache__/token.cpython-311.pyc deleted file mode 100644 index 3da9401f0ed073d6051afdc34f467a141e561062..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1314 zcmah}J8u&~5Z=36pC7UFB94$yED9(rq+A^-Nzi5Kw@Rf%p#7|#J3=GmH#*an zn;2K0z&InEaLpwi=@1QV-PJt3qbu8R4UcxHMs)ImaQd0>oS%Tw5gpVEvS8aj^Mq~7l5Kkd@40A~ZTo$Xxf8~SlSr=E zHuL=;VW=&(?FcI*4aZL;78G;UL8{G7qpsf*3#ywF{Cx<7qphGK1kbX zd(h5G%V{%h4q&9ss5;$naq_o;UYvXZ4~6Uh60b_YDWp3m%PQS3S>Fv9mqy$>lm;YL zQq1u|Js(x@&}D=bgmr{91T1>Aim-v8F1Lx+!ztjZ_!+>A?qWIJPxlA=S#d3GrL93L zD^=1)+8Dq{8{>U&i^U?J0P{bQ+yH5GBJGuU2an`9D!{^M3E-e^-WR1*C{aq@Jw02v z5&`4!Q-B#gck4K<8&+?u1lPgCRN0ayB-QbcA__rS2>YD*iPMen6EJ=)Ds}3-**n}6 zcE^u-FM14<;TuBY9{?jm)3l6i4QG2s9t~&vFH#%M_K``ol@XbTFO5r#Uf)v7hPFH+ b^KiOziP7s@s;p}pBQg&-6Qb7(D3zwa)LtlJ diff --git a/backend/app/schemas/__pycache__/user.cpython-311.pyc b/backend/app/schemas/__pycache__/user.cpython-311.pyc deleted file mode 100644 index bd1346e27db4250452e169211269ca80c766d1ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2641 zcmb_eK~LO96dv1SuXh*Nq>vVpLP&usTTxb3FC3yuC859pkdkuQLoKs20V`g6J2oU- zDkJrU-mbU3-bzLubby&+}&H&3x~hF~1BB z76_C-?i@LPtAzZ8FIPqH80Wu(@rE$M6qnRVl_+Sdu2NU4ss7sOR1Jlw zWQj2PGhsTXZ#6>R!IP9~PWlY+<#;aRGo{Z2U%qc#Uiu2)EB1{mNZ$bX2K#(PHuQ{? zOYbp!S&2<%hdgxZ9PRZ+==h%PmbEy)UL7M zueOWB(R#GL4^Ol%KDru|B8NgNmh%OGUUF2Rhbc_`O?wL}dk0TasuajF7?ot{)tr1Y z_M`wuiJ%nVh;lRK z(Ij6=70wJVq&x|)3NWcBOl~w#{%fKL)5_h)c_*;!TIlTZaxqJp?1ed%O6#FaGB^&7 zm~Q&Mo2Bqm9D;z<2I~MR3MZ$d#pe9M@=0;LMW>-2)9Loz2_Wv_!Pl?9Y|#m*$8@3% z9aoyK4(aQkuKOiMLMTQ^5qd4ZZSeFGdehnD2Aon!9nYl*rHLH534R@^?Os?J@#dKc z)aH}(z2ZGth*gIrqLSncx^@s+uD=C(wZphjlR9Q#r4XeL>4>ACRhFm))L&7F`3nWV%2YVYO+63{H+FX8qf zIM>RBY!J=y!bAsB0yvM50zoYc9Fz$wCb13S6L^AMfNso)w9R6)6fNy9wF`sMO0=@S z(k^wbnfCC#!{w9VnHI%*OlRP1U7xE{s_6GmNk5!n+raA zIdDj$j6LK%mn1izNv`+;JIH&no7@lPbrw4#;0Gh%0RJ_w|3exv?pk?3;Ob%{+-o@A zmee795B8Ytg-%W2e=o_sC2xNDm6Lb7yqzY|EBBD*?9zOce1g9bUqKg4M=%9=sws-n zCgZJiZIgSgbp4Z5S|6^bhN_I5l749Jonh-m*HuuJG3=RzgHh}`hCMs3f~L%zl72WC nJHytCu4}+l;MDX(^VJ!)UUXd_=dfo#9L%3#>%|Q&sjYtigOMfc diff --git a/backend/app/services/__pycache__/scheduler.cpython-311.pyc b/backend/app/services/__pycache__/scheduler.cpython-311.pyc deleted file mode 100644 index b4e49b24a836db69d40affcfd5c5a10d1a6263e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7616 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 diff --git a/backend/app/services/collectors/__pycache__/__init__.cpython-311.pyc b/backend/app/services/collectors/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 3c1d87e6e6f8b454d2c06eb97a2031b46f186afe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2638 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 A#Q*>R diff --git a/backend/app/services/collectors/__pycache__/cloudflare.cpython-311.pyc b/backend/app/services/collectors/__pycache__/cloudflare.cpython-311.pyc deleted file mode 100644 index 91cc5bda9c6479e9c59ef512c0dd03d398428b7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8708 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 I^{CVT0KpXz-T(jq diff --git a/backend/app/services/collectors/__pycache__/epoch_ai.cpython-311.pyc b/backend/app/services/collectors/__pycache__/epoch_ai.cpython-311.pyc deleted file mode 100644 index 2adaa303f6662326096bca6bd700a3ac8267a3d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6317 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 diff --git a/backend/app/services/collectors/__pycache__/huggingface.cpython-311.pyc b/backend/app/services/collectors/__pycache__/huggingface.cpython-311.pyc deleted file mode 100644 index 34a3ca0b8f99d330c851bf332a21e9d311650fac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7118 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 BE2;nh diff --git a/backend/app/services/collectors/__pycache__/registry.cpython-311.pyc b/backend/app/services/collectors/__pycache__/registry.cpython-311.pyc deleted file mode 100644 index b6657fb31c1662ef9df92842d39a3ad84795f9fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2679 zcmb7GOK;mo5MDk+Q8s1TvYj+9m$4B?a%?FNBSnBThbCwO6mWsYy{HF*Cf5#Q>d{@= zs09Pf!G|7l@GUBkgAPTSAb*B31lZuoKu^6Xa8EgPb}3S_c z%kvD!@-4%T1?k^xn}Qh1Ph8s%)$i-RTdP`LK?t+oSQIBa+R1S+PEV-yG;}lkKdR@GfXkpb6AHodG&zv!T1ZRLNF)ki;WTxk&_T)2C8t@dXIBA^4 z>Hfa!vZD^kj)81?*ap})GbF1g`;Nn2BSZWN;OqQk4Ks=CUh0fxIcE&u9}g!Iuzu*F z-!S44kHb0ehofdc7Gch`Y~S6+gKL?DZzov*NJ+itWDN#y(5|qHUcxA9yTVHdOw<^x zz)N&nOmnCWYP=w#ZtAa^}4JFHQAfqJPql6U% zWoH}4=VzrCwF)i~Yp3Mk?ULtKH*3|6Qr)wv*e|VF_9m`6C97U9QB1a78`DzaJ1xZ- zU99hfYBa&5ad`;yV$933qwfHDg}Ms5wfvj(T5o3Fj<_ZV>kqP(nll5-J4yTcmnE^!GsmpdSFfmB7Zfh}*7k8d88$Xk2`X{Xry+wH^ta80*hV-!rdO9eEsX8K6{|gwwBv^zN6;@ zHBTmhZ4a8tBE<6IWEseRap`mkaEEf-A^5`dgBJTD+qL>mLEz3%cCNwQfK2hc^W1>t zFF=YiGT_GCfj-yPZ*=qFKLBPX|OMA81xH1fT!o0@xazG-hr}k;*;!>b51?m#FcQsU^gKUO&+}N0-zYPO0 zTqIZje^NztdP;8)ocJvGQk+i4q`t2_hlEUG*8{|$zU6Pxm4Xxj!-^_QJ1(^?;=p2( zp5zK}DD%QFdeI%B*pETGIt*H$JIhqR1;SC&a$O{4?i^`)N1Hv=<`1;_mfzMEJKACp z_v0RO;Xqq>zueYtceL9<+&R)K1!1)?8LFnqipn&@5!0;HoGp)yHPifg%kp}hv}rmu z+cbII5#~ZD!QDwxY^0l}Rjt+l1-KU}=t^LB^qm{EJ&V!`_FvQ-G7iE-W`t!QVVN7s zYqgq3SS^wnARiF7EUMr%TV;ej^eZTeR|CHzc_EM&ju(rszT2PLx0_!F7xJBnLLe8R zx8>r|%=M=IJAR7;`9f0)bVdG0th-W8?Pz1B5=FmVatBtKC2I-GKG3FyMjV0ykio$pNN1C)z8H|t+c9B#(| diff --git a/backend/app/services/collectors/__pycache__/telegeography.cpython-311.pyc b/backend/app/services/collectors/__pycache__/telegeography.cpython-311.pyc deleted file mode 100644 index 286603276dcbff0e641b9d2ed40a2e150f623026..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14337 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 F|1ZSm02lxO diff --git a/backend/app/services/collectors/__pycache__/top500.cpython-311.pyc b/backend/app/services/collectors/__pycache__/top500.cpython-311.pyc deleted file mode 100644 index 64e2c9d3b4cf8b37254eb9895c25ab0efc3b783e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8738 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 OHy9)?z)%qjP!s@|Cp10) diff --git a/backend/tests/__pycache__/conftest.cpython-311-pytest-9.0.2.pyc b/backend/tests/__pycache__/conftest.cpython-311-pytest-9.0.2.pyc deleted file mode 100644 index 13444cdf25a6d276b90975b1aae35dd9e268f440..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3442 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 diff --git a/backend/tests/__pycache__/test_collectors.cpython-311-pytest-9.0.2.pyc b/backend/tests/__pycache__/test_collectors.cpython-311-pytest-9.0.2.pyc deleted file mode 100644 index d2ea36f73e9226bf0536cd9fbc0629464959296c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22183 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 bzY_9qRPB$0I|I1vjpQqmebYoCZi@c~oj0!B diff --git a/backend/tests/__pycache__/test_models.cpython-311-pytest-9.0.2.pyc b/backend/tests/__pycache__/test_models.cpython-311-pytest-9.0.2.pyc deleted file mode 100644 index a5d41df733a4aa9c77574d613367860cc03e2af1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23797 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 TB|>QNYVr-qp43PX_rw1Kb>y+# diff --git a/backend/tests/__pycache__/test_security.cpython-311-pytest-9.0.2.pyc b/backend/tests/__pycache__/test_security.cpython-311-pytest-9.0.2.pyc deleted file mode 100644 index b7c43710b90486de3df93a981cc7ec9e9ab7eff5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18921 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 L^v~PWvc2=)K=boA