fy dZddlZ ddlmZdgZejdejejzejzZ dZ exse Zy#e$rdZYMwxYw)zJSON token scanner N) make_scannerrz)(-?(?:0|[1-9]\d*))(\.\d+)?([eE][-+]?\d+)?c Z |j |j|j tj|j |j |j |j|j|j|j f dfd}|S)Nc ||}|dk(r ||dzS|dk(r||dzf S|dk(r ||dzfS|dk(r|||dzdk(rd|dzfS|dk(r|||dzd k(rd |dzfS|d k(r|||d zd k(rd|d zfS ||}|I|j\}}}|s|r||xsdz|xsdz}n|}||jfS|dk(r|||dzdk(r d|dzfS|dk(r|||dzdk(r d|dzfS|dk(r|||dzdk(r d|dzfSt|#t$r t|dwxYw)N"{[nnullttrueTffalseFNNaNIInfinity- z -Infinity) IndexError StopIterationgroupsend)stringidxnextcharmintegerfracexpres _scan_once match_numbermemo object_hookobject_pairs_hook parse_arrayparse_constant parse_float parse_int parse_object parse_stringstricts #/usr/lib/python3.12/json/scanner.pyr'z#py_make_scanner.._scan_onces /c{H s?a8 8 _q 16K):DB B _a0*= = _C!G!4!>q= _C!G!4!>q= _C!G!4!?#'> !  % =!" GT3s!'TZR"8CI2"FG(<  _C!G!4!=!%(#'1 1 _C!G!4 !B!*-sQw6 6 _C!G!4 !C!+.a7 7$ $A /$$ . /s D??Ecb ||jS#jwxYw)N)clear)rr r'r)s r3 scan_oncez"py_make_scanner..scan_onceAs% fc* JJLDJJLs.) r0r,r1 NUMBER_REmatchr2r.r/r-r*r+r))contextr6r'r(r)r*r+r,r-r.r/r0r1r2s @@@@@@@@@@@@r3py_make_scannerr:s''L%%K''L??L ^^F%%K!!I++N%%K11 <rGst 4   BJJ0ZZ",,* - 8t0 GNsAAA