hiddifypanel 9.0.0.dev81__py3-none-any.whl → 9.0.0.dev82__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
hiddifypanel/VERSION CHANGED
@@ -1 +1 @@
1
- 9.0.0.dev81
1
+ 9.0.0.dev82
hiddifypanel/VERSION.py CHANGED
@@ -1,3 +1,3 @@
1
- __version__='9.0.0.dev81'
1
+ __version__='9.0.0.dev82'
2
2
  from datetime import datetime
3
3
  __release_date__= datetime.strptime('2024-03-02','%Y-%m-%d')
hiddifypanel/base.py CHANGED
@@ -99,21 +99,21 @@ def create_app(*args, cli=False, **config):
99
99
 
100
100
  # app.config['BABEL_TRANSLATION_DIRECTORIES'] = '/workspace/Hiddify-Server/hiddify-panel/src/translations.i18n'
101
101
 
102
- from flask_wtf.csrf import CSRFProtect
103
-
104
- csrf = CSRFProtect(app)
105
-
106
- @app.before_request
107
- def check_csrf():
108
- if "/admin/user/" in request.base_url:
109
- return
110
- if "/admin/domain/" in request.base_url:
111
- return
112
- if "/admin/actions/" in request.base_url:
113
- return
114
- if "/api/" in request.base_url:
115
- return
116
- csrf.protect()
102
+ # from flask_wtf.csrf import CSRFProtect
103
+
104
+ # csrf = CSRFProtect(app)
105
+
106
+ # @app.before_request
107
+ # def check_csrf():
108
+ # if "/admin/user/" in request.base_url:
109
+ # return
110
+ # if "/admin/domain/" in request.base_url:
111
+ # return
112
+ # if "/admin/actions/" in request.base_url:
113
+ # return
114
+ # if "/api/" in request.base_url:
115
+ # return
116
+ # csrf.protect()
117
117
 
118
118
  app.jinja_env.globals['get_locale'] = get_locale
119
119
 
@@ -77,11 +77,11 @@ class User(BaseAccount):
77
77
  max_ips = db.Column(db.Integer, default=1000, nullable=False)
78
78
  details = db.relationship('UserDetail', cascade="all,delete", backref='user', lazy='dynamic',)
79
79
  enable = db.Column(db.Boolean, default=True, nullable=False)
80
- ed25519_private_key = db.Column(db.String(500))
81
- ed25519_public_key = db.Column(db.String(100))
82
- wg_pk = db.Column(db.String(50))
83
- wg_pub = db.Column(db.String(50))
84
- wg_psk = db.Column(db.String(50))
80
+ ed25519_private_key = db.Column(db.String(500), default="")
81
+ ed25519_public_key = db.Column(db.String(100), default="")
82
+ wg_pk = db.Column(db.String(50), default="")
83
+ wg_pub = db.Column(db.String(50), default="")
84
+ wg_psk = db.Column(db.String(50), default="")
85
85
 
86
86
  @property
87
87
  def role(self) -> Role | None:
@@ -26,6 +26,8 @@ from flask import current_app
26
26
 
27
27
 
28
28
  class DomainAdmin(AdminLTEModelView):
29
+ edit_modal = False
30
+ create_modal = False
29
31
  column_hide_backrefs = False
30
32
 
31
33
  list_template = 'model/domain_list.html'
@@ -18,22 +18,20 @@ from hiddifypanel.drivers import user_driver
18
18
  from hiddifypanel.panel import hiddify, custom_widgets
19
19
  from hiddifypanel.auth import login_required
20
20
  from hiddifypanel import hutils
21
- from flask_admin.form import SecureForm
22
21
 
23
22
 
24
23
  class UserAdmin(AdminLTEModelView):
25
- form_base_class = SecureForm
26
24
 
27
- column_sortable_list = ["name", "current_usage", 'mode', "remaining_days", "comment", 'last_online', "uuid", 'remaining_days']
25
+ column_sortable_list = ["enable", "name", "current_usage", 'mode', "remaining_days", "comment", 'last_online', "uuid", 'remaining_days']
28
26
  column_searchable_list = [("uuid"), "name"]
29
- column_list = ["name", "UserLinks", "current_usage", "remaining_days", "comment", 'last_online', 'mode', 'admin', "uuid"]
27
+ column_list = ["enable", "name", "UserLinks", "current_usage", "remaining_days", "comment", 'last_online', 'mode', 'admin', "uuid"]
30
28
  form_extra_fields = {
31
29
  'reset_days': SwitchField(_("Reset package days")),
32
30
  'reset_usage': SwitchField(_("Reset package usage")),
33
31
  # 'disable_user': SwitchField(_("Disable User"))
34
32
  }
35
33
  list_template = 'model/user_list.html'
36
-
34
+ column_editable_list = ["comment", "usage_limit", "package_days"]
37
35
  form_columns = ["name", "comment", "usage_limit", "reset_usage", "package_days", "reset_days", "mode", "uuid", "enable",]
38
36
  # form_excluded_columns = ['current_usage', 'monthly', 'telegram_id', 'last_online', 'expiry_time', 'last_reset_time', 'current_usage_GB',
39
37
  # 'start_date', 'added_by', 'admin', 'details', 'max_ips', 'ed25519_private_key', 'ed25519_public_key', 'username', 'password']
@@ -132,12 +130,12 @@ class UserAdmin(AdminLTEModelView):
132
130
  extra = f'<button class="btn hbtn bg-h-grey btn-xs disabled"><i class="fa-solid fa-paper-plane"></i></button> '
133
131
 
134
132
  link = ''
135
- if model.is_active:
136
- link = '<i class="fa-solid fa-circle-check text-success"></i> '
137
- elif len(model.ips):
138
- link = '<i class="fa-solid fa-users-slash text-danger" title="{_("Too many Connected IPs")}"></i>'
139
- else:
140
- link = '<i class="fa-solid fa-circle-xmark text-danger"></i> '
133
+ # if model.is_active:
134
+ # link = '<i class="fa-solid fa-circle-check text-success"></i> '
135
+ # elif len(model.ips):
136
+ # link = '<i class="fa-solid fa-users-slash text-danger" title="{_("Too many Connected IPs")}"></i>'
137
+ # else:
138
+ # link = '<i class="fa-solid fa-circle-xmark text-danger"></i> '
141
139
 
142
140
  href = f'{hiddify.get_account_panel_link(model, request.host, is_https=True)}#{hutils.encode.url_encode(model.name)}'
143
141
 
@@ -251,13 +249,13 @@ class UserAdmin(AdminLTEModelView):
251
249
  hutils.flask.flash(('<div id="show-modal-donation"></div>'), ' d-none')
252
250
  if not re.match("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", model.uuid):
253
251
  raise ValidationError('Invalid UUID e.g.,' + str(uuid.uuid4()))
254
- if form.reset_usage.data:
252
+ if hasattr(form, 'reset_usage') and form.reset_usage.data:
255
253
  model.current_usage_GB = 0
256
254
  # if model.telegram_id and model.telegram_id != '0' and not re.match(r"^[1-9]\d*$", model.telegram_id):
257
255
  # raise ValidationError('Invalid Telegram ID')
258
256
  # if form.disable_user.data:
259
257
  # model.mode=UserMode.disable
260
- if form.reset_days.data:
258
+ if hasattr(form, 'reset_days') and form.reset_days.data:
261
259
  model.start_date = None
262
260
  model.package_days = min(model.package_days, 10000)
263
261
  old_user = User.by_id(model.id)
@@ -1,8 +1,13 @@
1
1
  from flask_admin.contrib.sqla import ModelView
2
2
  from hiddifypanel import auth
3
+ from flask_admin.form import SecureForm
3
4
 
4
5
 
5
6
  class AdminLTEModelView(ModelView):
7
+ form_base_class = SecureForm
8
+ edit_modal = False
9
+ create_modal = False
10
+
6
11
  list_template = 'hiddify-flask-admin/list.html'
7
12
  create_template = 'flask-admin/model/create.html'
8
13
  edit_template = 'flask-admin/model/edit.html'
@@ -15,6 +15,7 @@ from flask import current_app
15
15
 
16
16
 
17
17
  class ProxyDetailsAdmin(AdminLTEModelView):
18
+
18
19
  column_hide_backrefs = True
19
20
  can_create = False
20
21
  form_excluded_columns = ['child']
@@ -38,9 +39,9 @@ class ProxyDetailsAdmin(AdminLTEModelView):
38
39
  self.session.commit()
39
40
  flash(_('%(count)s records were successfully enabled.', count=count), 'success')
40
41
  hiddify.get_available_proxies.invalidate_all()
41
- # column_editable_list = ['name', 'enable']
42
+ column_editable_list = ['name']
42
43
  # list_template = 'model/domain_list.html'
43
- # edit_modal = True
44
+
44
45
  # form_overrides = {'work_with': Select2Field}
45
46
 
46
47
  def after_model_change(self, form, model, is_created):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hiddifypanel
3
- Version: 9.0.0.dev81
3
+ Version: 9.0.0.dev82
4
4
  Summary: hiddifypanel multi proxy panel
5
5
  Home-page: https://github.com/hiddify/hiddify-manager/
6
6
  Author: hiddify
@@ -1,10 +1,10 @@
1
1
  hiddifypanel/Events.py,sha256=AlnRdjVul0jP-NCT4-zoaQgowoOo-JhdQB4ytetAFKA,723
2
- hiddifypanel/VERSION,sha256=yzUdPUi3eoZ5wEOTJpCvUmIc7yv64EB6inuzGS-GHp4,12
3
- hiddifypanel/VERSION.py,sha256=zQ9HTGfGtXW9VP55B6P_fNYivEWH_-ADZzJ5lJE2yt8,117
2
+ hiddifypanel/VERSION,sha256=OcdWkgnYiuVmMHguYb78o5rPxWVwsdOcfJh3SPVk_CQ,12
3
+ hiddifypanel/VERSION.py,sha256=DJQRWjuC6qRiQq0btVqORFlw3-Z6NqGBsrUk9Rceu1E,117
4
4
  hiddifypanel/__init__.py,sha256=aLukp3ORszdcH4G9J-MlxhjHN6yFlOuOE6mm-L3aG_g,266
5
5
  hiddifypanel/__main__.py,sha256=IVchnXpK6bm8T3N--mN17HBQNLMeLAjyP7iwzULexB4,218
6
6
  hiddifypanel/auth.py,sha256=ouAFprxAfsbeuC-YFGkMyA1Z4dtWzixv8DqB7nQXrtA,6640
7
- hiddifypanel/base.py,sha256=ORsITg_lh3GQfU-4Gq8YAFUgKOWlKBAnMtX_6a0a1UU,4681
7
+ hiddifypanel/base.py,sha256=GB6YpYSd-gCWkhB0DGmaFQ3PtQHS-c1__t6aMv10SlU,4671
8
8
  hiddifypanel/cache.py,sha256=PrdYVvRRhamSMI1jFe6c7xcJEFsVsWbgXWkhDaMKaZM,1484
9
9
  hiddifypanel/database.py,sha256=Nao3PTjzRPZNJp60rZ3dufddtbdXPj6MQy_QDZcOpGc,262
10
10
  hiddifypanel/drivers/abstract_driver.py,sha256=cK4AN1nj1zRnj4bNzcpNZOg7oHWj1I_hz_drvKN6TUE,175
@@ -39,7 +39,7 @@ hiddifypanel/models/proxy.py,sha256=pTIvNq5XGu8aKD5LiycYXNAm-oE1H8QpYbBBJBYZVYU,
39
39
  hiddifypanel/models/report.py,sha256=LLRw5hSu_LLjPyHsQ-_tCeXfCxSWq2f7rhv-NkMIg4U,1001
40
40
  hiddifypanel/models/role.py,sha256=V93_AhOcgbIiAaRYUaNIWKsKZ704ANl0hq-uAJFQCUo,269
41
41
  hiddifypanel/models/usage.py,sha256=_5qC0s6lqKPI3tm7T15Fhyyn-X51DLD_FesPY9O-keA,4361
42
- hiddifypanel/models/user.py,sha256=8yTTraNvqnj-8EtGnGaFh2PDS-jtsCcgcYzTxar_fqE,12888
42
+ hiddifypanel/models/user.py,sha256=FOsLXVYLTRhyMNxYcX9t-oMhErU-PesQQAd9i3Mhgd0,12948
43
43
  hiddifypanel/models/utils.py,sha256=YY6j0d3wiHql2Wo8LJckIEC6n0xl9ASlDbJDglWOtn4,867
44
44
  hiddifypanel/panel/__init__.py,sha256=YDC8OatzZ2PoGrOARauce7OimcFsbTEvIq8AcNl1_-s,180
45
45
  hiddifypanel/panel/admin_2.py,sha256=23fKDbYlME0hNUALU76JZZbL9L4lWrHtFZ1IO6h_Zjo,989
@@ -59,15 +59,15 @@ hiddifypanel/panel/admin/AdminstratorAdmin.py,sha256=UhTnScTaWC_25QhymvZzqeqr1t1
59
59
  hiddifypanel/panel/admin/Backup.py,sha256=dp74st7OBw_j3hH-4K4tf9EyP4qGuALaJ5pTcC-SWt8,3670
60
60
  hiddifypanel/panel/admin/ConfigAdmin.py,sha256=0hnLY-8BxrpVnrAcQaedWjHnRUq1X_Styi_ZCZ2ivds,2876
61
61
  hiddifypanel/panel/admin/Dashboard.py,sha256=i-k6bK9mTViN1iApMGR4AqwPr3pO14QXf4Lu6fe_Q9Q,4468
62
- hiddifypanel/panel/admin/DomainAdmin.py,sha256=HInqgLYJdEFE3OiGwsHP9oKjBHCTHLwQ9mOyNK4OnYw,14574
62
+ hiddifypanel/panel/admin/DomainAdmin.py,sha256=RlKHAjWFEJIhFp3fxp6w-99-1xpPBXEu5VjWFokqHv4,14622
63
63
  hiddifypanel/panel/admin/NodeAdmin.py,sha256=utJsYrZiK3hA1q3R0GMsEX03u-mxywsMr9z89_1bXjE,2995
64
64
  hiddifypanel/panel/admin/ProxyAdmin.py,sha256=7aCQ-MGpUn6-aK-KGXpUj-Vjmr5ABeckbMLvlCTZves,5051
65
65
  hiddifypanel/panel/admin/QuickSetup.py,sha256=fkBNdSQhwUMZcslnymCGkwIbCYu2xJAvAQWPTM9XYW0,7733
66
66
  hiddifypanel/panel/admin/SettingAdmin.py,sha256=v7YQSgiuBvKv3-CYlTpZff25W3UOgytLZrzItcV50sk,16283
67
67
  hiddifypanel/panel/admin/Terminal.py,sha256=fjLVLspXYHOwZGyMU_KbytWe1zf-m6KbmvBPEDps45w,1737
68
- hiddifypanel/panel/admin/UserAdmin.py,sha256=xvbgQ1of3OIOLjIUCQ-V1F9a16oneYjrDDBS6UbNFcY,16763
68
+ hiddifypanel/panel/admin/UserAdmin.py,sha256=Apu0PyvNuXuaIHTAnyw4kbfkNI0UidblR3HihjPfIJ8,16856
69
69
  hiddifypanel/panel/admin/__init__.py,sha256=hb0A2HuK_nBZRCNPumwahXX-25FMxODKYlNbk2ItF08,3015
70
- hiddifypanel/panel/admin/adminlte.py,sha256=bT8-1ksRBFOXfTBFeXArsfF8TAomW_M8eVIurkBQBHI,672
70
+ hiddifypanel/panel/admin/adminlte.py,sha256=ciWu8ouZYoQhRrJHuF7Kr1FDP-sxHKa0sKcJ5HqxABk,794
71
71
  hiddifypanel/panel/admin/commercial_info.py,sha256=_fBJcR6zTlMs5Wx4NQJYxq5LvMHY8qfoh73-eCNJyb8,278
72
72
  hiddifypanel/panel/admin/fix_flaskadmin_babel.py,sha256=B823REEdbPxevLV0h1B1u4FwmWWIMmfZBV3T9Linrb8,936
73
73
  hiddifypanel/panel/admin/websocket.py,sha256=QZCYo1xJ-aahrRBWX5OM8rJP7I7LtgbB2tD9LDkI_iA,117
@@ -115,7 +115,7 @@ hiddifypanel/panel/admin/templates/model/admin_list.html,sha256=lpjiAl7kR5xb0fLp
115
115
  hiddifypanel/panel/admin/templates/model/domain_list.html,sha256=rrPYKISPXcwYreMp2MrJb-sEL9-6dCZF_dk6ejObrm8,414
116
116
  hiddifypanel/panel/admin/templates/model/user_list.html,sha256=n46ymDd1FwYclN0MKmsjGEw9BBOI-jd0PMQjTy3aNSo,4898
117
117
  hiddifypanel/panel/commercial/ParentDomainAdmin.py,sha256=n3X7_PuQBr2zlP6K5A0EHmtRdI9Vy49YORim_9L2QFA,4886
118
- hiddifypanel/panel/commercial/ProxyDetailsAdmin.py,sha256=Zn7l2iq6sTwct8z17VNYkHJTknQr-c0QXQECbBElvCo,2456
118
+ hiddifypanel/panel/commercial/ProxyDetailsAdmin.py,sha256=udED-XV2j4vdJJTR4Avit_Bf1FKycxucZ75copn3R38,2422
119
119
  hiddifypanel/panel/commercial/__init__.py,sha256=YF5r5nSOCMof9NTPRtWbkHbRXfSBroOdwvyjdMCqXbo,2245
120
120
  hiddifypanel/panel/commercial/restapi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
121
121
  hiddifypanel/panel/commercial/restapi/v1/__init__.py,sha256=YYdI5ayZ9wnCh2eOTs03xsJf8lCNmde0GRfHmkYz40w,1207
@@ -793,24 +793,24 @@ hiddifypanel/templates/redirect.html,sha256=K9x_O4P96vEkqBhOXIhoGrWw1KIqd2bL0BjI
793
793
  hiddifypanel/templates/static.html,sha256=jp6q4wtx-k2A_cjqJoNiMS7Ee30arE45qI3ev4d5ky4,165
794
794
  hiddifypanel/templates/hiddify-flask-admin/actions.html,sha256=2NeITe2e-lPKCk_o511tCIqVtrPu8LYHE1wTCtrFUrI,1331
795
795
  hiddifypanel/templates/hiddify-flask-admin/list.html,sha256=MBGrTqZpzNLe4sZy0RozvXNr8seFUQc2C6v88BJtNWc,11095
796
- hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=_KORJNEiUOed0UOc8IybgFk3yS_ASPMy1KENthP_AEM,71156
796
+ hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=cwcxsaP1njYDZhbfQCvCFJvXyJz4fpS3mjkAj-OG_ps,71156
797
797
  hiddifypanel/translations/en/LC_MESSAGES/messages.po,sha256=O80EYdJM-6wn2OMDkOfN4GLe6Af1a-pnuvRF6xRdHIk,74211
798
- hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=up7e2mbHy85Z9f5dgAgnOtJDS1giaBk7sdjLhg8J7fs,93652
798
+ hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=eQ1AxvkTwn6gjGEdnN7I85Q5tGN2sjRwia4BB2E_e0A,93652
799
799
  hiddifypanel/translations/fa/LC_MESSAGES/messages.po,sha256=WTVL-OX_ZqSk9dCs7QDa7vIO0ftx2z7O8sb2lxI1YlA,97596
800
- hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=ZLFDeyomtsCdOsJowDHO_VH7D-mju0Q-jXKZf-IIJ_g,65570
800
+ hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=HnulOHJK-MJy_5GGxKqbta-6B70bPhhp1uSrdf9SzDs,65570
801
801
  hiddifypanel/translations/pt/LC_MESSAGES/messages.po,sha256=aj_gh4Nb15xvgdbag3ulTJhvWwPMwPGu6JBWPVpz9V4,71126
802
- hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=XQFNPUwZ7pOrwIytYa5_FLeWqkD5CHgx9vgLVuLRie0,89161
802
+ hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=o9X0AwEYbRu-7aAFQDXE4IhJa4eXgkkpZzsGSadp9Ig,89161
803
803
  hiddifypanel/translations/ru/LC_MESSAGES/messages.po,sha256=qnNzXr3DkvRuzZeNWNaoYp0FfjYU7hYSMRBTJd86rdc,95384
804
- hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=UMYGP8bDIJBymWRcfaqplwQy0OuqKl4jJZjDOmE6MSU,62340
804
+ hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=qx5dmKNCCCWdddMzIK1gy9zuN-8DzgNJk3P1I1Viunc,62340
805
805
  hiddifypanel/translations/zh/LC_MESSAGES/messages.po,sha256=QkvXSYMmKdx45HJ7NpYhZ3hKzfqS21C_4ZTHoozdyJA,66689
806
806
  hiddifypanel/translations.i18n/en.json,sha256=0wCVZfrWODOLcKhgrY0_8jrrayAG8pNUaAPBpKUTwo4,64616
807
807
  hiddifypanel/translations.i18n/fa.json,sha256=KtFpVOTlAYBMEtspY186sIcWkjcBX873E5nvJEEoozg,88016
808
808
  hiddifypanel/translations.i18n/pt.json,sha256=vSi598IyORfcRcd4Lv7xukDBBLRy82DFEkqeDSiG9yk,61732
809
809
  hiddifypanel/translations.i18n/ru.json,sha256=L1jV5J3jbeFW8vBYTJCrvod7gW5mTEZ4ca2c8w2nUOY,85921
810
810
  hiddifypanel/translations.i18n/zh.json,sha256=B4p3_Iq25sv7hHW1fL1A5qVdULPuKA1kg_RjXym5UV8,57739
811
- hiddifypanel-9.0.0.dev81.dist-info/LICENSE.md,sha256=oDrt-cUsyiDGnRPjEJh-3dH2ddAuK_bIVBD8ntkOtZw,19807
812
- hiddifypanel-9.0.0.dev81.dist-info/METADATA,sha256=jNrKZqeZwVdoNySraPkSn049T1zQPA_rak35GOdOsGg,3983
813
- hiddifypanel-9.0.0.dev81.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
814
- hiddifypanel-9.0.0.dev81.dist-info/entry_points.txt,sha256=Xzpqlh3nwBtZhoV9AANJykano056VJvYzaujxPztJaM,60
815
- hiddifypanel-9.0.0.dev81.dist-info/top_level.txt,sha256=rv-b3qFWUZQTBy0kyBfsr7L6tPpeO7AaQlLHXn-HI5M,13
816
- hiddifypanel-9.0.0.dev81.dist-info/RECORD,,
811
+ hiddifypanel-9.0.0.dev82.dist-info/LICENSE.md,sha256=oDrt-cUsyiDGnRPjEJh-3dH2ddAuK_bIVBD8ntkOtZw,19807
812
+ hiddifypanel-9.0.0.dev82.dist-info/METADATA,sha256=JJSqDU2sa81egdNp9KxtnWbRb0yJh8uI2dy0H6UTmBU,3983
813
+ hiddifypanel-9.0.0.dev82.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
814
+ hiddifypanel-9.0.0.dev82.dist-info/entry_points.txt,sha256=Xzpqlh3nwBtZhoV9AANJykano056VJvYzaujxPztJaM,60
815
+ hiddifypanel-9.0.0.dev82.dist-info/top_level.txt,sha256=rv-b3qFWUZQTBy0kyBfsr7L6tPpeO7AaQlLHXn-HI5M,13
816
+ hiddifypanel-9.0.0.dev82.dist-info/RECORD,,