@name py3-repoze-who-3.0.0
@version 8
@comment pkgpath=www/py-repoze-who ftp=yes
@arch powerpc,macppc
+DESC
@sha HldU3+h/1tR1GrXHE8jph2VjxRWs5AGEOxIDoZpGRuU=
@size 344
@pkgpath www/py-repoze-who,python3
@depend devel/py-zopeinterface:py3-zopeinterface-*:py3-zopeinterface-7.2
@depend lang/python/3,-main:python->=3.12,<3.13:python-3.12.9
@depend www/py-webob:py3-webob-*:py3-webob-1.8.7p4
@cwd /usr/local
lib/python3.12/site-packages/repoze/
lib/python3.12/site-packages/repoze.who-3.0.0-py3.12-nspkg.pth
@sha Hrr0B9pKKVXyGfsx2+ryja/yLVaLujFQ6ZsosBFbxTQ=
@size 1590
@ts 1744328077
lib/python3.12/site-packages/repoze.who-3.0.0.dist-info/
lib/python3.12/site-packages/repoze.who-3.0.0.dist-info/LICENSE.txt
@sha QU48zYp1hpbDpHCKMeNlB/HEd1f901odVpvkMIUUgzg=
@size 1791
@ts 1744328077
lib/python3.12/site-packages/repoze.who-3.0.0.dist-info/METADATA
@sha yLkeq1eDnt0kwJ5AB0Zxvehh58smjB9VHAmKO//AXBo=
@size 28850
@ts 1744328077
lib/python3.12/site-packages/repoze.who-3.0.0.dist-info/RECORD
@sha aaGBSEoKZtdaxSi1tUTJ4t8DXsEyi72ioLNDi8EJ+ss=
@size 3336
@ts 1744328077
lib/python3.12/site-packages/repoze.who-3.0.0.dist-info/WHEEL
@sha PZUExdf71Ui/so67QXpySuHtCi3+J3wvF4ORK6k/S8U=
@size 91
@ts 1744328077
lib/python3.12/site-packages/repoze.who-3.0.0.dist-info/entry_points.txt
@sha E3MuYnIsOZ7c8oJT3jEX8CGAoMI4/oQtIMkYYLHri2c=
@size 258
@ts 1744328077
lib/python3.12/site-packages/repoze.who-3.0.0.dist-info/namespace_packages.txt
@sha TuEDjQrFQdrTvfqygxJAPMAvDdMX/lepNaVjdzSMGzg=
@size 37
@ts 1744328077
lib/python3.12/site-packages/repoze.who-3.0.0.dist-info/top_level.txt
@sha J8ri7gY0fmS54HZ0sfQdE8/0DKDv5DgmMLQB5DODOpc=
@size 7
@ts 1744328077
lib/python3.12/site-packages/repoze/who/
lib/python3.12/site-packages/repoze/who/__pycache__/
lib/python3.12/site-packages/repoze/who/__pycache__/_auth_tkt.cpython-312.opt-1.pyc
@sha j8flj1sf9WGIOTwS2I7FI4ExlUPPuObzAQDn/RhVW1A=
@size 9519
@ts 1744328077
lib/python3.12/site-packages/repoze/who/__pycache__/_auth_tkt.cpython-312.pyc
@sha j8flj1sf9WGIOTwS2I7FI4ExlUPPuObzAQDn/RhVW1A=
@size 9519
@ts 1744328077
lib/python3.12/site-packages/repoze/who/__pycache__/_helpers.cpython-312.opt-1.pyc
@sha uCXkYPKQBN8wRW+oPwcHZuy+aw3oTKnfUqBdvowW9U8=
@size 2946
@ts 1744328078
lib/python3.12/site-packages/repoze/who/__pycache__/_helpers.cpython-312.pyc
@sha uCXkYPKQBN8wRW+oPwcHZuy+aw3oTKnfUqBdvowW9U8=
@size 2946
@ts 1744328077
lib/python3.12/site-packages/repoze/who/__pycache__/api.cpython-312.opt-1.pyc
@sha RqmWl5EhVOyMOAJA6AS3oJUbPzAwb+UmXqLyyDXn1a4=
@size 13426
@ts 1744328078
lib/python3.12/site-packages/repoze/who/__pycache__/api.cpython-312.pyc
@sha RqmWl5EhVOyMOAJA6AS3oJUbPzAwb+UmXqLyyDXn1a4=
@size 13426
@ts 1744328078
lib/python3.12/site-packages/repoze/who/__pycache__/classifiers.cpython-312.opt-1.pyc
@sha V4SXxu6382Tg/TyBU0cd7A6P2zRObpZnUgAICSeQfIc=
@size 2412
@ts 1744328078
lib/python3.12/site-packages/repoze/who/__pycache__/classifiers.cpython-312.pyc
@sha V4SXxu6382Tg/TyBU0cd7A6P2zRObpZnUgAICSeQfIc=
@size 2412
@ts 1744328078
lib/python3.12/site-packages/repoze/who/__pycache__/config.cpython-312.opt-1.pyc
@sha BRta1QR4MRkT0AC/ZrVUtMwLG1vH3FrkBZ3dd6/exUU=
@size 8800
@ts 1744328078
lib/python3.12/site-packages/repoze/who/__pycache__/config.cpython-312.pyc
@sha BRta1QR4MRkT0AC/ZrVUtMwLG1vH3FrkBZ3dd6/exUU=
@size 8800
@ts 1744328078
lib/python3.12/site-packages/repoze/who/__pycache__/interfaces.cpython-312.opt-1.pyc
@sha +ualKvYcjwMeSyYl2YEgK9XOIXv3LkoBtXPPgFp3MeU=
@size 12288
@ts 1744328078
lib/python3.12/site-packages/repoze/who/__pycache__/interfaces.cpython-312.pyc
@sha +ualKvYcjwMeSyYl2YEgK9XOIXv3LkoBtXPPgFp3MeU=
@size 12288
@ts 1744328078
lib/python3.12/site-packages/repoze/who/__pycache__/middleware.cpython-312.opt-1.pyc
@sha qPek6kEi53shJXoBlgvROhTCG1kPlytcCQSYDbybl+4=
@size 9677
@ts 1744328078
lib/python3.12/site-packages/repoze/who/__pycache__/middleware.cpython-312.pyc
@sha qPek6kEi53shJXoBlgvROhTCG1kPlytcCQSYDbybl+4=
@size 9677
@ts 1744328078
lib/python3.12/site-packages/repoze/who/__pycache__/restrict.cpython-312.opt-1.pyc
@sha gJxfln7jExDnbGYRosmwcP6UZR3uSD3WSR2gvJAiIH0=
@size 2016
@ts 1744328078
lib/python3.12/site-packages/repoze/who/__pycache__/restrict.cpython-312.pyc
@sha gJxfln7jExDnbGYRosmwcP6UZR3uSD3WSR2gvJAiIH0=
@size 2016
@ts 1744328078
lib/python3.12/site-packages/repoze/who/__pycache__/utils.cpython-312.opt-1.pyc
@sha gMXBvVbuFotsUSvfaz7y2lNm5fe7WVXaCOQifwCX85Y=
@size 517
@ts 1744328078
lib/python3.12/site-packages/repoze/who/__pycache__/utils.cpython-312.pyc
@sha gMXBvVbuFotsUSvfaz7y2lNm5fe7WVXaCOQifwCX85Y=
@size 517
@ts 1744328078
lib/python3.12/site-packages/repoze/who/_auth_tkt.py
@sha JwewNkuW+YIrkLr0vZM8a29GTSUdp9k8lkHi3HbWtoY=
@size 8611
@ts 1744328077
lib/python3.12/site-packages/repoze/who/_helpers.py
@sha ETBctKCfrLs+KfVhhSMBeosTbc43i9tb3ZV4auvzO4E=
@size 1444
@ts 1744328077
lib/python3.12/site-packages/repoze/who/api.py
@sha 59iAAAwQGLV/Qs7PxpNiaIKm3/AjalIgG9dmKbwHqec=
@size 14462
@ts 1744328077
lib/python3.12/site-packages/repoze/who/classifiers.py
@sha wD3XsosYJ3ZNZTN9ILAgWaW+QSRnpjO3WaFu3LniCsg=
@size 2134
@ts 1744328077
lib/python3.12/site-packages/repoze/who/config.py
@sha DjYIORa7UH4nHq6bu4jDasAcAaYMIdAKrrfSh7zQqlY=
@size 7529
@ts 1744328077
lib/python3.12/site-packages/repoze/who/interfaces.py
@sha X3Fx5m+bIgVwb7gFl6bZ9A0L+Q5BXKJLQc5PoLZYF38=
@size 9848
@ts 1744328077
lib/python3.12/site-packages/repoze/who/middleware.py
@sha I7RjHDj/b52rkouVEpMDwBsidnxI14t+xg5/hPlYACw=
@size 9784
@ts 1744328077
lib/python3.12/site-packages/repoze/who/plugins/
lib/python3.12/site-packages/repoze/who/plugins/__pycache__/
lib/python3.12/site-packages/repoze/who/plugins/__pycache__/auth_tkt.cpython-312.opt-1.pyc
@sha LrAEhlyyR/5G7atzW8yR7KtGodbcbrJ2lf2ESVOsUHw=
@size 10517
@ts 1744328078
lib/python3.12/site-packages/repoze/who/plugins/__pycache__/auth_tkt.cpython-312.pyc
@sha LrAEhlyyR/5G7atzW8yR7KtGodbcbrJ2lf2ESVOsUHw=
@size 10517
@ts 1744328078
lib/python3.12/site-packages/repoze/who/plugins/__pycache__/basicauth.cpython-312.opt-1.pyc
@sha oYzkGzoC6oaKd4dpfn1NOR1uTzJHW6Za6ki4QeVoAYo=
@size 3273
@ts 1744328078
lib/python3.12/site-packages/repoze/who/plugins/__pycache__/basicauth.cpython-312.pyc
@sha oYzkGzoC6oaKd4dpfn1NOR1uTzJHW6Za6ki4QeVoAYo=
@size 3273
@ts 1744328078
lib/python3.12/site-packages/repoze/who/plugins/__pycache__/htpasswd.cpython-312.opt-1.pyc
@sha k0WgBgM8evLM0kJ9hjrRUnWDaoZDuOqBU087pju/zfM=
@size 5596
@ts 1744328078
lib/python3.12/site-packages/repoze/who/plugins/__pycache__/htpasswd.cpython-312.pyc
@sha k0WgBgM8evLM0kJ9hjrRUnWDaoZDuOqBU087pju/zfM=
@size 5596
@ts 1744328078
lib/python3.12/site-packages/repoze/who/plugins/__pycache__/redirector.cpython-312.opt-1.pyc
@sha 2tuvV+GDgKymwhtv6poC8O5p8Int+t4i1zmq1xOmqoQ=
@size 3317
@ts 1744328078
lib/python3.12/site-packages/repoze/who/plugins/__pycache__/redirector.cpython-312.pyc
@sha 2tuvV+GDgKymwhtv6poC8O5p8Int+t4i1zmq1xOmqoQ=
@size 3317
@ts 1744328078
lib/python3.12/site-packages/repoze/who/plugins/__pycache__/sql.cpython-312.opt-1.pyc
@sha E4bidd/q3boL3nYKucpujxwWtmgCT1mj2TIWGKT8YdE=
@size 5210
@ts 1744328078
lib/python3.12/site-packages/repoze/who/plugins/__pycache__/sql.cpython-312.pyc
@sha E4bidd/q3boL3nYKucpujxwWtmgCT1mj2TIWGKT8YdE=
@size 5210
@ts 1744328078
lib/python3.12/site-packages/repoze/who/plugins/auth_tkt.py
@sha OZ7PbyCDT+0nj9nzE7kDrPqMZ6yas/PHGB7K6m+tQIc=
@size 9651
@ts 1744328077
lib/python3.12/site-packages/repoze/who/plugins/basicauth.py
@sha c+YBCpwvYU7FZf1AXpE+YOE9WGPswxxKoY6ixJrCAxA=
@size 2258
@ts 1744328077
lib/python3.12/site-packages/repoze/who/plugins/htpasswd.py
@sha CFfyFUyq1NrLUoPJvvFjQodTYzFNMYXb6WjQuVSKs98=
@size 3730
@ts 1744328077
lib/python3.12/site-packages/repoze/who/plugins/redirector.py
@sha MIEhnmYIkAt7lMoGAV/qS8DDHGbmSnqvQasjp7za1bo=
@size 3157
@ts 1744328077
lib/python3.12/site-packages/repoze/who/plugins/sql.py
@sha GsjXOMtmnmOmygMexsoeFRyVJDVoxHQkqo8S1SP1hzc=
@size 4251
@ts 1744328077
lib/python3.12/site-packages/repoze/who/plugins/tests/
lib/python3.12/site-packages/repoze/who/plugins/tests/__init__.py
@sha nH3LrDEcAitnx5UrI9s8iB2tGDWAQLCMg/4I9F3SLKw=
@size 9
@ts 1744328077
lib/python3.12/site-packages/repoze/who/plugins/tests/__pycache__/
lib/python3.12/site-packages/repoze/who/plugins/tests/__pycache__/__init__.cpython-312.opt-1.pyc
@sha +sEhlmdWp+4h59yBfty240teyRV1c0Y7LW/ESwUwc9w=
@size 173
@ts 1744328078
lib/python3.12/site-packages/repoze/who/plugins/tests/__pycache__/__init__.cpython-312.pyc
@sha +sEhlmdWp+4h59yBfty240teyRV1c0Y7LW/ESwUwc9w=
@size 173
@ts 1744328078
lib/python3.12/site-packages/repoze/who/plugins/tests/__pycache__/test_authtkt.cpython-312.opt-1.pyc
@sha 0NIh3/qsQV+xQrJbGNlnQpzJeTZ8+8o0xE2HFXcXlEk=
@size 40306
@ts 1744328079
lib/python3.12/site-packages/repoze/who/plugins/tests/__pycache__/test_authtkt.cpython-312.pyc
@sha 0NIh3/qsQV+xQrJbGNlnQpzJeTZ8+8o0xE2HFXcXlEk=
@size 40306
@ts 1744328079
lib/python3.12/site-packages/repoze/who/plugins/tests/__pycache__/test_basicauth.cpython-312.opt-1.pyc
@sha y2EHzkQFeto1hwN2iuyCWzdU1v2Y+DuQ/gbNQ2LEFxk=
@size 8779
@ts 1744328079
lib/python3.12/site-packages/repoze/who/plugins/tests/__pycache__/test_basicauth.cpython-312.pyc
@sha y2EHzkQFeto1hwN2iuyCWzdU1v2Y+DuQ/gbNQ2LEFxk=
@size 8779
@ts 1744328079
lib/python3.12/site-packages/repoze/who/plugins/tests/__pycache__/test_htpasswd.cpython-312.opt-1.pyc
@sha wfeCjLZieqmNlGw3QaQ4nYgoObhyncwpHrOWSThyx88=
@size 10564
@ts 1744328079
lib/python3.12/site-packages/repoze/who/plugins/tests/__pycache__/test_htpasswd.cpython-312.pyc
@sha wfeCjLZieqmNlGw3QaQ4nYgoObhyncwpHrOWSThyx88=
@size 10564
@ts 1744328079
lib/python3.12/site-packages/repoze/who/plugins/tests/__pycache__/test_redirector.cpython-312.opt-1.pyc
@sha GpvqB0//1JoE5dHNrKtalsmgcarq2Hrsfh79eL5lkCc=
@size 21123
@ts 1744328079
lib/python3.12/site-packages/repoze/who/plugins/tests/__pycache__/test_redirector.cpython-312.pyc
@sha GpvqB0//1JoE5dHNrKtalsmgcarq2Hrsfh79eL5lkCc=
@size 21123
@ts 1744328079
lib/python3.12/site-packages/repoze/who/plugins/tests/__pycache__/test_sql.cpython-312.opt-1.pyc
@sha F867VtjyDHn04FWWf/97XvUcVEKb2KkULAgXvApFiLM=
@size 15937
@ts 1744328079
lib/python3.12/site-packages/repoze/who/plugins/tests/__pycache__/test_sql.cpython-312.pyc
@sha F867VtjyDHn04FWWf/97XvUcVEKb2KkULAgXvApFiLM=
@size 15937
@ts 1744328079
lib/python3.12/site-packages/repoze/who/plugins/tests/fixtures/
lib/python3.12/site-packages/repoze/who/plugins/tests/fixtures/__init__.py
@sha T2pBxhni8Nb8SOr5+8nKMXKTZYiMJt+Md1DPTFce6Pw=
@size 20
@ts 1744328077
lib/python3.12/site-packages/repoze/who/plugins/tests/fixtures/__pycache__/
lib/python3.12/site-packages/repoze/who/plugins/tests/fixtures/__pycache__/__init__.cpython-312.opt-1.pyc
@sha bhCT0L8HznYT5eiTdSz6eIZhjaerp72H7ZCHjb5tMlU=
@size 182
@ts 1744328079
lib/python3.12/site-packages/repoze/who/plugins/tests/fixtures/__pycache__/__init__.cpython-312.pyc
@sha bhCT0L8HznYT5eiTdSz6eIZhjaerp72H7ZCHjb5tMlU=
@size 182
@ts 1744328079
lib/python3.12/site-packages/repoze/who/plugins/tests/fixtures/test.htpasswd
@sha +p0uirOMsyqca+0UCSZy33rJWhPSl13a/hakn2cteRY=
@size 20
@ts 1744328077
lib/python3.12/site-packages/repoze/who/plugins/tests/test_authtkt.py
@sha 17+Jp3WfezpvTKq5IfBqArWKvf/is/XDdA1XxfZ0R7Q=
@size 33478
@ts 1744328077
lib/python3.12/site-packages/repoze/who/plugins/tests/test_basicauth.py
@sha b5deT0pbOpK0i7FyvktAW/iKw28MvNtAwRbW8WUw6Vc=
@size 5134
@ts 1744328077
lib/python3.12/site-packages/repoze/who/plugins/tests/test_htpasswd.py
@sha HI/98tVCx9w8lx7IgHuflhEIoQQu8SxjxrIsvqHXno4=
@size 6218
@ts 1744328077
lib/python3.12/site-packages/repoze/who/plugins/tests/test_redirector.py
@sha ENPgN9WVmgcMErh70z14wt6GywRsqofpk3Eyt+rkkcY=
@size 15370
@ts 1744328077
lib/python3.12/site-packages/repoze/who/plugins/tests/test_sql.py
@sha CajSOHRdIMg6y2hsJQkjXFUh6GGFOjj6dmFlVkcVMwg=
@size 9427
@ts 1744328077
lib/python3.12/site-packages/repoze/who/restrict.py
@sha DAbrmO+gAukqRtBg1LBa0/C73tMi9HQafI7qI3LwLps=
@size 1112
@ts 1744328077
lib/python3.12/site-packages/repoze/who/tests/
lib/python3.12/site-packages/repoze/who/tests/__init__.py
@sha nH3LrDEcAitnx5UrI9s8iB2tGDWAQLCMg/4I9F3SLKw=
@size 9
@ts 1744328077
lib/python3.12/site-packages/repoze/who/tests/__pycache__/
lib/python3.12/site-packages/repoze/who/tests/__pycache__/__init__.cpython-312.opt-1.pyc
@sha 6VaB0J6SuyNNxVJO7Kc9gMZ91XpJKexonfyADvr84Es=
@size 165
@ts 1744328079
lib/python3.12/site-packages/repoze/who/tests/__pycache__/__init__.cpython-312.pyc
@sha 6VaB0J6SuyNNxVJO7Kc9gMZ91XpJKexonfyADvr84Es=
@size 165
@ts 1744328079
lib/python3.12/site-packages/repoze/who/tests/__pycache__/test__auth_tkt.cpython-312.opt-1.pyc
@sha 2zp/HsUjFCSyKRQk6qgclASjiXjJJsoYV9M/QsuiUKM=
@size 19202
@ts 1744328080
lib/python3.12/site-packages/repoze/who/tests/__pycache__/test__auth_tkt.cpython-312.pyc
@sha 2zp/HsUjFCSyKRQk6qgclASjiXjJJsoYV9M/QsuiUKM=
@size 19202
@ts 1744328080
lib/python3.12/site-packages/repoze/who/tests/__pycache__/test__helpers.cpython-312.opt-1.pyc
@sha QyRsp1mOxVrHBduHZF8v4fDVuE5IOL6BTNUXzzXiROk=
@size 7834
@ts 1744328080
lib/python3.12/site-packages/repoze/who/tests/__pycache__/test__helpers.cpython-312.pyc
@sha QyRsp1mOxVrHBduHZF8v4fDVuE5IOL6BTNUXzzXiROk=
@size 7834
@ts 1744328080
lib/python3.12/site-packages/repoze/who/tests/__pycache__/test_api.cpython-312.opt-1.pyc
@sha yqMOVofyp/BA6QS+/XKEs25oz1kvCnAucgZKZM0zo1w=
@size 66427
@ts 1744328080
lib/python3.12/site-packages/repoze/who/tests/__pycache__/test_api.cpython-312.pyc
@sha yqMOVofyp/BA6QS+/XKEs25oz1kvCnAucgZKZM0zo1w=
@size 66427
@ts 1744328080
lib/python3.12/site-packages/repoze/who/tests/__pycache__/test_classifiers.cpython-312.opt-1.pyc
@sha AAUXTH89jb0GadB2qZ5Bn+GQwI3u7nCS8IeBf4BHvM4=
@size 7389
@ts 1744328081
lib/python3.12/site-packages/repoze/who/tests/__pycache__/test_classifiers.cpython-312.pyc
@sha AAUXTH89jb0GadB2qZ5Bn+GQwI3u7nCS8IeBf4BHvM4=
@size 7389
@ts 1744328080
lib/python3.12/site-packages/repoze/who/tests/__pycache__/test_config.cpython-312.opt-1.pyc
@sha uS5rKJRuU8psT3hYSv0k+3IoLm9D1bfn8EY2IZLaiUo=
@size 33884
@ts 1744328081
lib/python3.12/site-packages/repoze/who/tests/__pycache__/test_config.cpython-312.pyc
@sha uS5rKJRuU8psT3hYSv0k+3IoLm9D1bfn8EY2IZLaiUo=
@size 33884
@ts 1744328081
lib/python3.12/site-packages/repoze/who/tests/__pycache__/test_middleware.cpython-312.opt-1.pyc
@sha NwzX1GXtogsgTjSPiVnKSIMjSl4i7Fa7eapMgs7EpYI=
@size 36599
@ts 1744328081
lib/python3.12/site-packages/repoze/who/tests/__pycache__/test_middleware.cpython-312.pyc
@sha NwzX1GXtogsgTjSPiVnKSIMjSl4i7Fa7eapMgs7EpYI=
@size 36599
@ts 1744328081
lib/python3.12/site-packages/repoze/who/tests/__pycache__/test_restrict.cpython-312.opt-1.pyc
@sha Zvq3rmxWhpXrkI/KzYvt+aQV9PRFFuAtzRiYo7UzTJU=
@size 11150
@ts 1744328081
lib/python3.12/site-packages/repoze/who/tests/__pycache__/test_restrict.cpython-312.pyc
@sha o6ty+uAqAD+AKbAoUVwb5O9n+Xu5098CNrLgBzvEKnw=
@size 11168
@ts 1744328081
lib/python3.12/site-packages/repoze/who/tests/test__auth_tkt.py
@sha gwnL70QFRI9uNUnErr0Iv8JDk15oJfAI29H8YUl2ULw=
@size 12286
@ts 1744328077
lib/python3.12/site-packages/repoze/who/tests/test__helpers.py
@sha STDDRcEyU7tYcIpbd44qjWmxlkEIr8qxGOtUJlb0xUA=
@size 4862
@ts 1744328077
lib/python3.12/site-packages/repoze/who/tests/test_api.py
@sha 9dPQiEXJ0n++RmsfL2YZjWL1da7eFinuuiOJMd8cXjg=
@size 50500
@ts 1744328077
lib/python3.12/site-packages/repoze/who/tests/test_classifiers.py
@sha i1KfTD9mXI2gPxPMIot48e3KykiNlutYhMr/bBx4JSQ=
@size 4160
@ts 1744328077
lib/python3.12/site-packages/repoze/who/tests/test_config.py
@sha fyE2OF6iuHYz894gWNDct0PlVIH3VW+9SzJrso0loSQ=
@size 21393
@ts 1744328077
lib/python3.12/site-packages/repoze/who/tests/test_middleware.py
@sha 8+q0+/XmFA+WG91KE5ffT2/zqFelhGNGlJzJwECK22w=
@size 29313
@ts 1744328077
lib/python3.12/site-packages/repoze/who/tests/test_restrict.py
@sha ubmlsEc9KY1+pb1E/pgouGOMqSfOTWQNgQwb3/BQH5Q=
@size 5256
@ts 1744328077
lib/python3.12/site-packages/repoze/who/utils.py
@sha 9A3GsWPwl+kkaAf7Ng3+2eMHyhsFsOvonlTD5nALfCc=
@size 214
@ts 1744328077
