Files
bark-with-voice-clone/bark/__pycache__/generation.cpython-38.pyc

149 lines
16 KiB
Plaintext
Raw Normal View History

2023-04-09 13:21:02 -04:00
U
<00>p0d<30>e<00>
@s<>ddlZddlZddlZddlZddlZddlZddlmZddlZddl Z ddl
Z ddl m Z ddlZddlmmZddlZddlmZddlmZmZddlmZmZej<1C><1D>r<>eejd<08>r<>eejjd <09>r<>ej<1C> <20>r<>ej!ejjj"ej#d
<EFBFBD>Z"nej$d d <09><00>Z"ia%d Z&d Z'dZ(d Z)dZ*dZ+dZ,dZ-dZ.e <09>/e0<65>Z1ej2<6A>3ej2<6A>4e5<65><01>Z6ej2<6A>7ej2<6A>8d<14>d<15>Z9ej2<6A>7e<02>:de9<65>dd<18>Z;ej<e;dd<1A>dZ=ej><3E>?dej2<6A>7e=d<1D><02>ej><3E>?dej2<6A>7e=d<1F><02>ej><3E>?d ej2<6A>7e=d!<21><02>d"<22>Z@d#d$<24>ZAd%d&<26>ZBd'ZCd(d)<29>ZDd*d+<2B>ZEGd,d-<2D>d-<2D>ZFej<1C><1D><00>r$dejGjjH_IdejGjJ_Iej$d.d/<2F><00>ZKd0d1<64>ZLdZd2d3<64>ZMd[d5d6<64>ZNd7d8<64>ZOd\d:d;<3B>ZPd]d<d=<3D>ZQd^d>d?<3F>ZRd@dA<64>ZSdBdC<64>ZTdDdE<64>ZUdFZVdZWdGZXdHZYd_dKdL<64>ZZe)fdMdN<64>Z[dOZ\dPZ]d`dSdT<64>Z^dadVdW<64>Z_dbdXdY<64>Z`dS)c<>N)<01> EncodecModel)<01>softmax)<01> BertTokenizer<65>)<02> GPTConfig<69>GPT)<02>FineGPT<50> FineGPTConfig<69>amp<6D>autocast<73><01>dtypeccs
dVdS<00>N<>rrr<00>)/Users/georg/code/bark/bark/generation.pyr s<02>g33333<33>H@i'<00><00><00>Ki<>])Z brylcreamzes-womanz man-narrator<6F>~z.cache<68>XDG_CACHE_HOMEZsunoZbark_v0T)<01>exist_okz3http://s3.amazonaws.com/suno-public/bark/models/v0/ZSUNO_TEXT_MODEL_PATHztext.ptZSUNO_COARSE_MODEL_PATHz coarse.ptZSUNO_FINE_MODEL_PATHzfine.pt<70><03>text<78>coarse<73>finecCs t<00><01>}|<01>|<00>d<01><01>|<01><04>S)Nzutf-8)<05>hashlib<69>md5<64>update<74>encode<64> hexdigest)<02>s<>mrrr<00> _compute_md5Nsr#cCs tt|<00>}tj<03>t|<01>d<01><02>S)Nz.pt)r#<00>REMOTE_MODEL_PATHS<48>os<6F>path<74>join<69> CACHE_DIR)<02>
model_typeZ
model_namerrr<00>_get_ckpt_pathTs r*zs3\:\/\/(.+?)\/cCs(t<00>t|<00><02>d<01>}t<00>td|<00>}||fS)Nr<00>)<05>re<72>search<63>S3_BUCKET_PATH_RE<52>group<75>sub)Z s3_filepathZ bucket_nameZrel_s3_filepathrrr<00>_parse_s3_filepath\sr1c Cs<>tj|dd<02>}t|j<03>dd<04><02>}d}tj|ddd<07>}t|d<08><02>.}|<02>|<04>D]}|<05>t|<07><01>|<06> |<07>qJW5QRX|<05>
<EFBFBD>|dkr<>|j |kr<>t d <09><01>dS)
NT)<01>streamzcontent-lengthrrZiB)<03>total<61>unitZ
unit_scale<EFBFBD>wbzERROR, something went wrong) <0A>requests<74>get<65>int<6E>headers<72>tqdm<64>openZ iter_contentr<00>len<65>write<74>close<73>n<>
ValueError)Z from_s3_pathZ to_local_path<74>responseZtotal_size_in_bytes<65>
block_size<EFBFBD> progress_bar<61>file<6C>datarrr<00> _downloadbs rFc@s&eZdZd dd<03>Zdd<05>Zdd<07>ZdS)
<EFBFBD>InferenceContextFcCs||_d|_dSr)<02>_chosen_cudnn_benchmark<72>_cudnn_benchmark)<02>self<6C> benchmarkrrr<00>__init__qszInferenceContext.__init__cCstjjj|_|jtjj_dSr)<06>torch<63>backends<64>cudnnrKrIrH)rJrrr<00> __enter__vs zInferenceContext.__enter__cCs|jtjj_dSr)rIrMrNrOrK)rJ<00>exc_type<70> exc_value<75> exc_tracebackrrr<00>__exit__zszInferenceContext.__exit__N)F)<06>__name__<5F>
__module__<EFBFBD> __qualname__rLrPrTrrrrrGps
rGc csVt<00><00>Ft<01><02><00>2t<01><03><00>t<04><00> dVW5QRXW5QRXW5QRXW5QRXdSr)rGrMZinference_modeZno_gradr rrrr<00>_inference_mode<64>s$rXcCs"tj<01><02>rtj<01><03>tj<01><04>dSr)rM<00>cuda<64> is_availableZ empty_cacheZ synchronizerrrr<00>_clear_cuda_cache<68>s

r[cCs8|dk r|gnt<00><01>}|D]}|tkrt|=qt<02>dSr)<03>models<6C>keysr[)<03> model_keyZ
model_keys<EFBFBD>krrr<00> clean_models<6C>s
r`rcCs(d|krt<00>d<02>|dkr$t}t}n*|dkr6t}t}n|dkrHt}t}nt<06><00>tj<08> |<00>svt
|<02>d<06><02>t t ||<00>t j||d<07>}|d}d |kr<>|d
|d <|d
|d <|d
=|f|d<00>}||<07>}|d } d }
t| <09><10><00>D],\} } | <0B>|
<EFBFBD>r<>| <09>| <0B>| | t|
<EFBFBD>d<00><q<>t| <09><15><00>t|<08><16><00><15><00>} tdd<0F>| D<00><01>} t|<08><16><00><15><00>t| <09><15><00>}tdd<0F>|D<00><01>}t| <0A>dk<03>r<>td| <0A><00><02><01>t|<0E>dk<03>r<>td|<0E><00><02><01>|j| dd<15>|<08><19>}|d<00><1A>}t
dt|dd<19><02>dt|d<1B><02>d<1C><05>|<08><1C>|<08>|<01>~~ t<1E>|dk<02>r$t<1F> d<1D>}||d<1E>S|S)NrYz>No GPU being used. Careful, Inference might be extremely slow!rrrz model not found, downloading...)Z map_location<6F>
model_argsZinput_vocab_sizeZ
vocab_sizeZoutput_vocab_size<7A>modelz
_orig_mod.cSsg|]}|<01>d<00>s|<01>qS<00>z
.attn.bias<61><01>endswith<74><02>.0r_rrr<00>
<listcomp><3E>s
z_load_model.<locals>.<listcomp>cSsg|]}|<01>d<00>s|<01>qSrcrdrfrrrrh<00>s
rzextra keys found: zmissing keys: F)<01>strictZ best_val_losszmodel loaded: g<00><>.Arz
M params, <20>z losszbert-base-multilingual-cased)rb<00> tokenizer)!<21>logger<65>warningrrr r<00>NotImplementedErrorr%r&<00>exists<74>printrFr$rM<00>load<61>list<73>items<6D>
startswith<EFBFBD>popr<<00>setr]<00>
state_dictr@Zload_state_dictZget_num_params<6D>item<65>round<6E>eval<61>tor[rZfrom_pretrained)<12> ckpt_path<74>devicer)Z ConfigClassZ
ModelClassZ
checkpointraZgptconfrbrwZunwanted_prefixr_<00>vZ
extra_keysZ missing_keysZn_paramsZval_lossrkrrr<00> _load_model<65>sd
   
 &


<02>rcCs.t<00><01>}|<01>d<01>|<01><03>|<01>|<00>t<05>|S)Ng@)rZencodec_model_24khzZset_target_bandwidthrzr{r[)r}rbrrr<00>_load_codec_model<65>s 

r<>FcCs<>tjt|d<01>}|dkrt<03><00>tj<05><06>dks.|s4d}nd}t|<05>d|<03><00>}|tksV|r<>|dkrft |<03>}t
|d<07>|||<05>}|t|<t|S)N)r)rr<00>cpurY<00>__<5F>r^) <0B>funcy<63>partialrrnrMrY<00> device_count<6E>strr\r*r`)r|<00>use_gpu<70> force_reloadr)Z _load_model_fr}r^rbrrr<00>
load_model<EFBFBD>s 

r<>cCsVtj<01><02>dks|sd}nd}t|<02>d}|tks4|rNt|d<05>t|<02>}|t|<t|S)Nrr<>rYZ__codecr<63>)rMrYr<>r<>r\r`r<>)r<>r<>r}r^rbrrr<00>load_codec_model<65>s  
r<>cCs@t|d|dd<03>}t|d|dd<03>}t|d|dd<03>}t|dd<06>}dS)NrT)r|r)r<>r<>rr)r<>r<>)r<>r<>)Ztext_ckpt_pathZcoarse_ckpt_pathZfine_ckpt_pathr<68><00>_rrr<00>preload_models<6C>s&<02><02><02>r<>cCs|j|dd<02>S)NF)Zadd_special_tokens)r)rkrrrr<00> _tokenize sr<>cCs
|<00>|<01>Sr)<01>decode)rkZenc_textrrr<00> _detokenizesr<>cCst<00>dd|<00><03><02>S)Nz\s+<2B> )r,r0<00>strip)rrrr<00>_normalize_whitespacesr<>i@'i;<3B>i?<3F><00>ffffff<66>?皙<><E79A99><EFBFBD><EFBFBD><EFBFBD>?c %
Cs<>t|t<01>st<02>t|<00>}t|<00><05><00>dks*t<02>|dk r<>|tks>t<02>t<07>t j
<EFBFBD> t dd|<01>d<05><02><04>d} t| tj <0A>r<>t| j<0E>dkr<>t| <0B>dkr<>| <0B><0F>dkr<>| <0B><10>tdks<>t<02>nd} t|dd<08>} |
dkr<>| d }
| d
} t<07>t| |<00><02>t}|r<>tj<17><18>dkr<>d nd }t|<0E>d k<04>rFtt|<0E>d t|<0E>dd<07>}td|<10>d<10><03>|dd <0A>}tj|dd t|<0E>ftdd<12>}| dk <09>r<>| <0B>tj<1E>} | dd<02>} tj| dd t| <0B>ftdd<12>} nt<07>tgd <00>} t<16> t<07>!|| t<07>t"g<01>g<03><01>tj<1E><01>d}|jddk<02>s<>t<02>t#<23><00><02><>|<11>$|<0F>}d}t%j%|dd<16>}d}d}t&|<12>D<00>]6}|
|dd<18>}|dddt<11>f}| <09>rnt<16>!||ddtgff<02>}|dk <09>r|j'}|<18>(<28>}|<18>)<29><00>*<2A><00>(tj+<2B><01>,<2C>}t<07>-|<18>ddd<19>}||}t<07>.t/|<1C><01>}||k}|dd<19><00>0<EFBFBD>|dd<02><d|d<tj1 |||<t<16> |<18>}|<18>$|<19><01>(|<1A>}|dk <09>rVt<16>2|t||<18>3d<19><01><02>\}} t4d<1B> |||dk<t5j/||dd<1C>}!tj6|!dd<1D>}"| <09>r<>|"tk<02>s<>|dk <09>r<>|!d|k<05>r<>|<13>7d|<00><00>qdtj8||"dfdd<1C>}|dt97}|dk <09>r<>||k<04>r<>|<13>7d|<00><00>qd||dk<02>r|<13>7d|<00><00>qd~~~!~"t<07>dt:td||<00><01>g<02>}#|#|k<04>r\|<13>7|#|<00>|#}<14>q*|<13>;<3B>|<11>)<29><00>*<2A><00>,<2C><00><<3C>dd<02>}$W5QRXt=d|$k<01><01>r<>t=|$tk<00><01>s<>t<02>t><3E>|$S)z#Generate semantic tokens from text.rN<>assets<74>prompts<74>.npzrr<00>r<>r)rbrkrYr<><00><00>dz(warning, text too long, lopping of last <20>%<25>constant)<02>constant_values<65>modei<00><><EFBFBD>i<00>)<02>disabler3T)Z merge_context<78><74><EFBFBD><EFBFBD><EFBFBD>F<EFBFBD>Inf<6E><01>dim<69>Z num_samples)?<3F>
isinstancer<EFBFBD><00>AssertionErrorr<72>r<r<><00>ALLOWED_PROMPTS<54>nprqr%r&r'<00>CUR_PATH<54>ndarray<61>shape<70>min<69>max<61>SEMANTIC_VOCAB_SIZEr<45><00>arrayr<79><00>TEXT_ENCODING_OFFSETrMrYr<>ryrp<00>pad<61>TEXT_PAD_TOKEN<45>astype<70>int64<36>SEMANTIC_PAD_TOKEN<45>
from_numpy<EFBFBD>hstack<63>SEMANTIC_INFER_TOKENrXr{r:<00>ranger}<00>type<70>detachr<68><00>float32<33>numpy<70>argsort<72>cumsumr<00>copy<70>inf<6E>topk<70>size<7A>float<61>F<> multinomialr<00>cat<61>SEMANTIC_RATE_HZr8r><00>squeeze<7A>allr[)%r<00>history_prompt<70>temp<6D>top_k<5F>top_pr<70><00>silentZ min_eos_pZmax_gen_duration_sZallow_early_stoprbZsemantic_historyZmodel_containerrkZ encoded_textr}<00>p<>xZ n_tot_stepsZpbarZ
pbar_stateZtot_generated_duration_sr?<00>logits<74>relevant_logits<74> logits_device<63> logits_dtype<70>sorted_indices<65> sorted_logits<74>cumulative_probs<62>sorted_indices_to_remover~r<><00>probs<62> item_nextZreq_pbar_state<74>outrrr<00>generate_text_semantics<> <16><02>
<EFBFBD> <0C>
<EFBFBD>
<EFBFBD><0E>  <02>
  <02><1E><02>

 <12>


<06><06>
<EFBFBD> 
& r<>cCsbt|j<01>dkst<02>|<00><03>}|dk rTtd|jd<00>D] }||dd<00>f||7<q2|<00>d<04>}|S)Nrrrr<>)r<r<>r<>r<>r<><00>ravel)<04>arrZ offset_sizer?Zflat_arrrrr<00>_flatten_codebooks<6B>s
r<>i/i/<00>v<00><c
- Cs4t|tj<02>rBt|j<04>dkrBt|<00>dkrB|<00><05>dkrB|<00><06>tdksFt<08>d|krZdks`nt<08>||dkspt<08>t t
t }
t t<01> ||
<00><01>} |dk <09>r0|tks<>t<08>t<01>tj<11>tdd|<01>d <09><02><04>} | d
} | d }t| tj<02><02>r<>t| j<04>dk<02>r<>t| <0A>dk<04>r<>| <0A><05>dk<05>r<>| <0A><06>tdk<01>r<>t|tj<02><02>r<>t|j<04>d k<02>r<>|jdt k<02>r<>|jd dk<05>r<>|<0E><05>dk<05>r<>|<0E><06>tdk<01>r<>t|jd t| <0A>d<01>t|
t d<01>k<02>s<>t<08>t|<0E>t}t<01>| t| <0A>t| <0A>d t t<01> t|<0E>|
<00><01>g<03>}t t||
<00><01>}| | d<06><00>tj<18>} || d<06><00>tj<18>}|dd<0E>}n tjgtjd<0F>} tjgtjd<0F>}| dk<08>rft|dd<11>} |<05>r<>tj<1C><1D>dk<04>r<>dnd}t tt<01> t|<00>|
t <00>t <00><01>}|dk<04>r<>|t dk<02>s<>t<08>t<01>| |g<02><01>tj<18>}|<0E>tj<18>}t| <0A>}t<1F><00><02><>t<1B> |<00>d<00>!|<11>}t<1B> |<13>d<00>!|<11>}t t<01>"||<00><01>}d}t#j#t$|<17>||d<14>D<00>]^}|t t||
<00><01>}|dd<06>t<01>d|| g<02>d<06>f}|dd<06>dd<15>f}t%<25>&|dd|jd fdt'<27>}t<1B>|t<1B>(t)g<01>d<00>!|<11>|dd<06>| d<06>fg<03>}t$|<08>D<00>]<5D>}||k<05>r<06>q<>|t dk}| |<1B>}tdt |<1C>t}td t |<1C>t}|dd||<1F>f} |dk <09>r| j*}!| <20>+<2B>}"| <20>,<2C><00>-<2D><00>+tj.<2E><01>/<2F>} t<01>0| <20>ddd <0A>}#| |#}$t<01>1t2|$<24><01>}%|%|k}&|&dd <0A><00>3<EFBFBD>|&dd<06><d|&d<tj4 | |#|&<t<1B> | <20>} | <20>!|!<21><01>+|"<22>} |dk <09>r<t<1B>5| t|| <20>6d <0A><01><02>\}'}t7d<18> | | |'d k<t%j2| |d d<19>}(tj8|(dd<1A>})|)|7})tj9||)dfdd<19>}tj9||)dfdd<19>}~~ ~(~)|d7}<18>q<>~<1B>qH~W5QRX|<16>,<2C><00>-<2D><00>/<2F><00>:<3A>t|<0E>d<06>}*~t|*<2A>|k<02>s<>t<08>|*<2A>;d t <0B>j<t}+t$dt <0B>D]"},|+|,dd<06>f|,t8<<00>qt=<3D>|+S)z1Generate coarse audio codes from semantic tokens.rrr<>r<>r<>Nr<4E>r<>r<>Zcoarse_1Zcoarse_2rr<><00><><EFBFBD><EFBFBD><EFBFBD>r rr<>rYr<>)r3r<>r<>r<>Fr<46>r<>r<>)>r<>r<>r<>r<r<>r<>r<>r<>r<><00>COARSE_RATE_HZr<5A><00>N_COARSE_CODEBOOKSr8<00>floorr<72>rqr%r&r'r<><00> CODEBOOK_SIZEryr<>r<><00>int32r<32>r<>rMrYr<>r<>rXr<>r{<00>ceilr:r<>r<>r<><00>COARSE_SEMANTIC_PAD_TOKEN<45>tensor<6F>COARSE_INFER_TOKENr}r<>r<>r<>r<>r<>r<>r<>rr<>r<>r<>r<>r<>r<>r<>r<><00>reshape<70>Tr[)-<2D>
x_semanticr<EFBFBD>r<>r<>r<>r<>r<>Zmax_coarse_historyZsliding_window_lenrbZsemantic_to_coarse_ratioZmax_semantic_historyZ x_historyZx_semantic_historyZx_coarse_historyZn_semantic_hist_providedZn_coarse_hist_providedr}Zn_stepsZx_coarseZbase_semantic_idxZ x_semantic_inZ x_coarse_inZn_window_stepsZn_stepr<70>Z semantic_idxZx_inZ is_major_stepr<70>Zlogit_start_idxZ logit_end_idxr<78>r<>r<>r<>r<>r<>r<>r~r<>r<>Zgen_coarse_arrZgen_coarse_audio_arrr?rrr<00>generate_coarse<73>s
<EFBFBD> <0C>
<EFBFBD>
<EFBFBD><0E> 
 <16>
<EFBFBD> <0C>
<EFBFBD>
<EFBFBD><0E>
<EFBFBD> <0C> <0C> <0C>
<EFBFBD> <0E>  <0C><02> <14><02>
 <02><02><02> 
"<02><14><02>
 <12><12>


    r<><00><00>?c s(t|tj<02>rft|j<04>dkrfd|jdkr8tdkrfnn*|jddkrf|<00><06>dkrf|<00><07>tdksjt <09>|dk r<>|t
ks~t <09>t<01> t j <0A>tdd|<01>d<07><02><04>d}t|tj<02>r<>t|j<04>dkr<>|jdtkr<>|jddkr<>|<06><06>dkr<>|<06><07>tdks<>t <09>nd}|jd}|dk<08>rt|dd <09>}|<03>r6tj<12><13>dk<04>r6d
nd }t<01>|t<01>t||jdf<02>tg<02><01>tj<17>} |dk <09>r<>|<06>tj<17>}t<01>|dd<04>d d<04>f<00>tj<17>| g<02>} |dd<04>d d<04>fjd}
nd}
d} | jdd k<00>rd | jd} t<01>| tjt| ftjd<0E>tg<02>} t<01>dtt<01>|jdd |
d<00><01>g<02>d} t<1B><00><01><>t<11>| j<1D><01>|<08>} tjt | <0C>|d<10>D<00>]F} t<01>| d| jdd g<02>}t<01>|
| d| jddg<02>}||}| ||d <00>dd<04>fd}t |t<05>D]<5D>}|||<11>}|dk<08>r|d|d<04>dt<08>f}t<11>!|d<11>}nF|ddd<04>dt<08>f|}t"j#|dd<12><02>t<11><18>fdd<14>t |d <0A>D<00><01>}||d|d<04>|f<~~<15>q<>t |t<05>D],}|d|d<04>|f| ||d |<00>|f<<00>qz~<11>qd| <09>$<24><00>%<25><00>&<26><00>'<27>j}~ W5QRX|dd<04>|
d<04>f}| dk<04>r|dd<04>d| <00>f}|jd|jdk<02>st <09>t(<28>|S)z2Generate full audio codes from coarse audio codes.rrrNr<4E>r<>r<>rr<>rYr<>i<00><><EFBFBD>rr i)r<>r<>r<>csg|]}tj<01>|dd<01><02>qS)rr<>)rMr<>)rgr?<00>r<>rrrh<00>s<02>z!generate_fine.<locals>.<listcomp>))r<>r<>r<>r<r<><00>N_FINE_CODEBOOKSr<53>r<>r<>r<>r<>rqr%r&r'r<>r<>rMrYr<><00>vstack<63>zerosr<73>r<>r<>r8r<>rXr<>r<>r{r:r<><00>argmaxr<78>rr<>r<>r<>r<>r[)<17> x_coarse_genr<6E>r<>r<>r<>rbZx_fine_historyZn_coarser}Zin_arrZ n_historyZn_remove_from_endZn_loopsr?Z start_idxZstart_fill_idxZrel_start_fill_idxZ in_buffer<65>nnr<6E>r<>Zcodebook_predsZ gen_fine_arrrr<>r<00> generate_fine>s<>
<EFBFBD> <0C><08><06>
 <0C>
<EFBFBD><0E> <16><02>
<EFBFBD> <0C> <0C> <0C>
<EFBFBD><0E> 

 <02><02><02><04>
 <02><02><16><02>.
 


<08><04><10>
<EFBFBD><02> 
r<>cCs<>|dkrt|d<02>}|r(tj<02><03>dkr(dnd}t<01>|<00>d}|<04>|<03>}|<04>dd<06>}|j<07>|<04>}|<01> |<05>}|<06>
<EFBFBD><00> <0B><00> <0C><00> <0A>}~~~|S)z:Turn quantized audio codes into audio array using encodec.N)r<>rrYr<>r)r<>rMrYr<>r<>r{<00> transposeZ quantizerr<72><00>decoderr<72>r<>r<>r<>)Z fine_tokensrbr<>r}r<>Zembr<62><00> audio_arrrrr<00> codec_decode<64>s

  
r<>)N)r)NTFr)TF)NNNT)
Nr<EFBFBD>NNTFr<46>NTN) Nr<4E>NNTFr<46>r<>N)Nr<4E>TTN)NT)a<>
contextlibrr%r,r6<00>sysZencodecrr<><00>loggingr<67>r<>Z scipy.specialrrMZtorch.nn.functionalr<6C>Z
functionalr<EFBFBD>r:<00> transformersrrbrrZ
model_finerr rYrZ<00>hasattrr
Zis_bf16_supportedr<64>r Zbfloat16<31>contextmanagerr\ZCONTEXT_WINDOW_SIZEr<45>r<>r<>r<>r<>r<><00> SAMPLE_RATEr<45><00> getLoggerrUrlr&<00>dirname<6D>abspath<74>__file__r<5F>r'<00>
expanduserZdefault_cache_dir<69>getenvr(<00>makedirsZREMOTE_BASE_URL<52>environr7r$r#r*r.r1rFrGrN<00>matmulZ
allow_tf32rOrXr[r`rr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rrrr<00><module>s<>   <08>
<EFBFBD> <0C><08>

<16>  


9


<00>
{
<00>
<00>
k