From 9aabb0d9db7923fb33b7463d9960da13822fde4e Mon Sep 17 00:00:00 2001 From: Concedo <39025047+LostRuins@users.noreply.github.com> Date: Sun, 2 Apr 2023 17:03:30 +0800 Subject: [PATCH] massive refactor completed, GPT-J integrated --- Makefile | 26 +- expose.cpp | 38 +- gptj_adapter.cpp | 21 +- llama_adapter.cpp | 11 +- llamacpp.dll | Bin 2990419 -> 3215106 bytes llamacpp_blas.dll | Bin 2994411 -> 3218586 bytes llamacpp_for_kobold.py | 8 +- llamaextra.cpp | 58 - llamaextra.h | 15 - model_adapter.cpp | 79 + model_adapter.h | 35 +- otherarch/ggml_v1.c | 5292 +++++++++++++-------------- otherarch/ggml_v1.h | 632 ++-- otherarch/gpt2.cpp | 854 ----- otherarch/gpt2_quantize.cpp | 323 -- otherarch/gptj_old.cpp | 682 ---- otherarch/gptj_v1.cpp | 682 ++++ otherarch/{gptj.cpp => gptj_v2.cpp} | 214 +- otherarch/otherarch.h | 47 +- otherarch/utils.cpp | 10 +- otherarch/utils.h | 6 +- 21 files changed, 3979 insertions(+), 5054 deletions(-) create mode 100644 model_adapter.cpp delete mode 100644 otherarch/gpt2.cpp delete mode 100644 otherarch/gpt2_quantize.cpp delete mode 100644 otherarch/gptj_old.cpp create mode 100644 otherarch/gptj_v1.cpp rename otherarch/{gptj.cpp => gptj_v2.cpp} (83%) diff --git a/Makefile b/Makefile index 4611f6881..17fac632e 100644 --- a/Makefile +++ b/Makefile @@ -206,7 +206,7 @@ endif BLAS_BUILD = ifeq ($(OS),Windows_NT) - BLAS_BUILD = $(CXX) $(CXXFLAGS) ggml_blas.o expose.o llama_adapter.o llamaextra.o common.o libopenblas.lib -shared -o llamacpp_blas.dll $(LDFLAGS) + BLAS_BUILD = $(CXX) $(CXXFLAGS) ggml_blas.o ggml_v1.o expose.o common.o llama_adapter.o gptj_adapter.o libopenblas.lib -shared -o llamacpp_blas.dll $(LDFLAGS) else BLAS_BUILD = @echo 'Your OS is $(OS) and does not appear to be Windows. If you want to use openblas, please link it manually with LLAMA_OPENBLAS=1' endif @@ -247,20 +247,17 @@ llama.o: llama.cpp llama.h common.o: examples/common.cpp examples/common.h $(CXX) $(CXXFLAGS) -c examples/common.cpp -o common.o -llamaextra.o: llamaextra.cpp llamaextra.h - $(CXX) $(CXXFLAGS) -c llamaextra.cpp -o llamaextra.o - expose.o: expose.cpp expose.h $(CXX) $(CXXFLAGS) -c expose.cpp -o expose.o llama_adapter.o: $(CXX) $(CXXFLAGS) -c llama_adapter.cpp -o llama_adapter.o - -gptj_adapter.o: ggml.o - $(CXX) $(CXXFLAGS) otherarch/gptj.cpp otherarch/utils.cpp ggml.o gptj_adapter.cpp -o gptj_adapter.o + +gptj_adapter.o: + $(CXX) $(CXXFLAGS) -c gptj_adapter.cpp -o gptj_adapter.o clean: - rm -vf *.o main quantize perplexity embedding main.exe quantize.exe llamacpp.dll llamacpp_blas.dll gpt2.exe gptj.exe + rm -vf *.o main quantize perplexity embedding main.exe quantize.exe llamacpp.dll llamacpp_blas.dll gptj.exe main: examples/main/main.cpp ggml.o llama.o common.o $(CXX) $(CXXFLAGS) examples/main/main.cpp ggml.o llama.o common.o -o main $(LDFLAGS) @@ -268,17 +265,10 @@ main: examples/main/main.cpp ggml.o llama.o common.o @echo '==== Run ./main -h for help. ====' @echo -gptj: ggml.o - $(CXX) $(CXXFLAGS) otherarch/gptj.cpp otherarch/utils.cpp ggml.o -o gptj $(LDFLAGS) +llamalib: ggml.o ggml_v1.o expose.o common.o llama_adapter.o gptj_adapter.o + $(CXX) $(CXXFLAGS) ggml.o ggml_v1.o expose.o common.o llama_adapter.o gptj_adapter.o -shared -o llamacpp.dll $(LDFLAGS) -gptjold: ggml_v1.o - $(CXX) $(CXXFLAGS) otherarch/gptj_old.cpp otherarch/utils.cpp ggml_v1.o -o gptj $(LDFLAGS) - - -llamalib: ggml.o expose.o llama_adapter.o llamaextra.o common.o - $(CXX) $(CXXFLAGS) expose.o ggml.o llama_adapter.o llamaextra.o common.o -shared -o llamacpp.dll $(LDFLAGS) - -llamalib_blas: ggml_blas.o expose.o llama_adapter.o llamaextra.o common.o +llamalib_blas: ggml_blas.o ggml_v1.o expose.o common.o llama_adapter.o gptj_adapter.o $(BLAS_BUILD) quantize: examples/quantize/quantize.cpp ggml.o llama.o diff --git a/expose.cpp b/expose.cpp index b436c9c30..29e06954e 100644 --- a/expose.cpp +++ b/expose.cpp @@ -7,11 +7,18 @@ //No dynamic memory allocation! Setup structs with FIXED (known) shapes and sizes for ALL output fields //Python will ALWAYS provide the memory, we just write to it. -#include "model_adapter.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + #include "expose.h" -#include "llamaextra.h" - - +#include "model_adapter.cpp" extern "C" { @@ -23,13 +30,28 @@ extern "C" { std::string model = inputs.model_filename; file_format = check_file_format(model.c_str()); - printf("\n---\nIdentified as LLAMA model: (ver %d)\nAttempting to Load...\n---\n", file_format); - - return llama_load_model(inputs, file_format); + + if(file_format==GPTJ1 || file_format==GPTJ2) + { + printf("\n---\nIdentified as GPT-J model: (ver %d)\nAttempting to Load...\n---\n", file_format); + return gptj_load_model(inputs, file_format); + } + else + { + printf("\n---\nIdentified as LLAMA model: (ver %d)\nAttempting to Load...\n---\n", file_format); + return llama_load_model(inputs, file_format); + } } generation_outputs generate(const generation_inputs inputs, generation_outputs &output) { - return llama_generate(inputs, output); + if (file_format == GPTJ1 || file_format == GPTJ2) + { + return gptj_generate(inputs, output); + } + else + { + return llama_generate(inputs, output); + } } } \ No newline at end of file diff --git a/gptj_adapter.cpp b/gptj_adapter.cpp index 1a42d4cbf..2a6ff5b6c 100644 --- a/gptj_adapter.cpp +++ b/gptj_adapter.cpp @@ -10,12 +10,17 @@ #include #include "model_adapter.h" #include "otherarch/otherarch.h" -#include "llamaextra.h" + +//concat source files into one file for compilation purposes +#include "otherarch/utils.cpp" +#include "otherarch/gptj_v1.cpp" +#include "otherarch/gptj_v2.cpp" //return val: 0=fail, 1=(original ggml, alpaca), 2=(ggmf), 3=(ggjt) static FileFormat file_format = FileFormat::FAIL; static gpt_vocab vocab; -static gptj_model model; +static gptj_model_v1 model_v1; +static gptj_model model_v2; static gpt_params params; static int n_past = 0; static int n_threads = 4; @@ -35,7 +40,7 @@ bool gptj_load_model(const load_model_inputs inputs, FileFormat in_file_format) n_batch = params.n_batch = inputs.batch_size; modelname = params.model = inputs.model_filename; - if (!gptj_model_load(params.model, model, vocab)) { + if (!legacy_gptj_model_load(params.model, model_v1, vocab)) { fprintf(stderr, "%s: failed to load model from '%s'\n", __func__, params.model.c_str()); return false; } @@ -46,7 +51,7 @@ bool gptj_load_model(const load_model_inputs inputs, FileFormat in_file_format) } // determine the required inference memory per token: - legacy_gptj_eval(model, params.n_threads, 0, { 0, 1, 2, 3 }, logits, mem_per_token); + legacy_gptj_eval(model_v1, params.n_threads, 0, { 0, 1, 2, 3 }, logits, mem_per_token); return true; } @@ -77,9 +82,9 @@ generation_outputs gptj_generate(const generation_inputs inputs, generation_outp std::vector embd_inp = ::gpt_tokenize(vocab, params.prompt); //truncate to front of the prompt if its too long - if (embd_inp.size() + params.n_predict > model.hparams.n_ctx) + if (embd_inp.size() + params.n_predict > model_v1.hparams.n_ctx) { - int offset = embd_inp.size() - model.hparams.n_ctx + params.n_predict; + int offset = embd_inp.size() - model_v1.hparams.n_ctx + params.n_predict; embd_inp = std::vector(embd_inp.begin() + offset, embd_inp.end()); } @@ -130,7 +135,7 @@ generation_outputs gptj_generate(const generation_inputs inputs, generation_outp timer_start(); double time1 = 0, time2 = 0; unsigned int embd_inp_size = embd_inp.size(); - const int n_vocab = model.hparams.n_vocab; + const int n_vocab = model_v1.hparams.n_vocab; printf("\n"); @@ -151,7 +156,7 @@ generation_outputs gptj_generate(const generation_inputs inputs, generation_outp printf("\rGenerating (%d / %d tokens)", (1 + params.n_predict - remaining_tokens), params.n_predict); } - if (!gptj_eval(model, params.n_threads, n_past, embd, logits, mem_per_token)) + if (!legacy_gptj_eval(model_v1, params.n_threads, n_past, embd, logits, mem_per_token)) { fprintf(stderr, "Failed to predict\n"); snprintf(output.text, sizeof(output.text), "%s", ""); diff --git a/llama_adapter.cpp b/llama_adapter.cpp index d9f9dac05..39f79395c 100644 --- a/llama_adapter.cpp +++ b/llama_adapter.cpp @@ -12,6 +12,9 @@ #include "ggml.h" #include "model_adapter.h" +//for easier compilation +#include "llamaextra.cpp" + //return val: 0=fail, 1=(original ggml, alpaca), 2=(ggmf), 3=(ggjt) static FileFormat file_format = FileFormat::FAIL; static llama_context_params ctx_params; @@ -109,7 +112,6 @@ generation_outputs llama_generate(const generation_inputs inputs, generation_out embd_inp = ::llama_tokenize(ctx, params.prompt, true); } - //params.n_predict = std::min(params.n_predict, params.n_ctx - (int) embd_inp.size()); //truncate to front of the prompt if its too long if (embd_inp.size() + params.n_predict > params.n_ctx) { @@ -124,11 +126,6 @@ generation_outputs llama_generate(const generation_inputs inputs, generation_out int last_n_size = params.repeat_last_n; last_n_tokens.resize(last_n_size); - //display usage - // std::string tst = " "; - // char * tst2 = (char*)tst.c_str(); - // gpt_print_usage(1,&tst2,params); - std::fill(last_n_tokens.begin(), last_n_tokens.end(), 0); n_past = 0; @@ -194,7 +191,7 @@ generation_outputs llama_generate(const generation_inputs inputs, generation_out { printf("\rGenerating (%d / %d tokens)", (1 + params.n_predict - remaining_tokens), params.n_predict); } - //printf("\nnp:%d embd:%d txt:%s",n_past,embd.size(),llama_token_to_str(ctx, embd[0])); + if (llama_eval(ctx, embd.data(), embdsize, n_past, params.n_threads)) { fprintf(stderr, "Failed to predict\n"); diff --git a/llamacpp.dll b/llamacpp.dll index 9936ef2cb82a4a906cd66333895417ba4cffc956..8a514f77681db5d17e547b3366482977829a055c 100644 GIT binary patch delta 837506 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

}IjebIfV+`qT!VWOb1gSI9odhhDH!kw zQiG@Aab!Af!d-UY6fiRlc92rshcA!kx?lnUTt_MyL&PJPz*|X#yYPOp7Wd#IB*cCA4(Y)|_z~&D zBe;RA!o|;-3|WqAKhKO54^jxupdnZ>k>$eq8!V!Rc(@7ACylrTGo+t`ZFn7NK9j-0 z+sPcNj)CG^`tgKAwo8g23(Ym6uHF0Q}7qW#Q7U7;we&2$3Cq7 z1*Ze&Z>oqo(kTZAGsMPic%yWVb)eXXdVi;V_%vz6eVAFwml`VZ7fM9VzFY^gW4I$3 zpdk$&NaoO)0qcn=XAfIQ4er80GDLl$j}&{5I$Vb}q@Ftb1q5*`nJ4SRXGn|5{Xam) z?8oC$b_@?D`8a=mKwM4=asIG?_y-x{U=J=Q-E6bSj z_!$ZD2yS}-r;mr62KOaZxDJmaebh1G`D7Jt!S_j~h6^D=jxXnY$j2zWlFZ;>2i`-f zaX$K4yhCg}gf~v*=E9HZ9r!ZI;eHUnF$c08Pr*r~5;x${WUbEy3ulti<@9wRkN@9N zD1VC)!AnW^A)Fg{J?Y~B2i`&QIlzSvkTU9f@Nv>beIJfIh||Z+Qt%Ms;s(5lG~h1G zuVAHR9au>kcF8azGc(+US%+}pF#8nbgYWn?D>{ak9L}|Z z+wg!&Rtq;^6|uS9rr{FOiTiLPak;CCBY2L;9LM>mpu=(*+<@C1&p>bu?n}yK9av6u zSqJ`w^xzI`l`dxq+eifi^ex|8@#h z6kPZZ5>m;7Pmy-qhufdbtZ@w%lR;dEv&eWlv*0c>xXsEzz*16(>+lMq;WoUUEZ|rN zwvr_o3a;EpT5u0`kOAC>FOp6?fUC%IJcNC+j7PBe6qZzW25%%KxC7^ra@>V)l1e;; zYe|Vb7G?(c(ndkd58drA!QNM;2VcX@WmHo%28aUPeS=8nO3d5U`1K?$6BNYO(;2;1KD+ z#Tl#?@$nR_B&~QF-btEp7q*iY+=HFO#eLXC%JCqBd{64>m|xHlWn_>Y2E3W{;Vx_^ z1Gop@B4QFVhJ|PH_-4BX&m[sh2ZZo|7th`X?hr0@Xtl1vXBhsYW-i$){(HEF`d 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

cw<-3~n<58$ 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

sS_Mn8rs*spMfY7BL2J(r)ajm&RaPxY57 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 UeEbf=?_m56Y3eZdf+-XKFF2u&q5uE@ delta 656967 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�|{}y5gJkhb@t&=t=5=7BjtMb|CMZ&1(=f#=yf}H#L}&7QJ>-KgYgl_ zD8%Qg@h_MOFO7sC_BOBqn3i=QvwHd=l7fL+31l5r;6Qe@xapYt1M*T%>?!+r>BY3K zz`j4`JFGC!7jPxp14T+^&tRKK1~ACw!`ywGAgNJ8{jcDdEz}1Cufe_x*#v=wSFk7= zkbBCJ6T?jm45W=H6yNL<=^7Wj4$Al#7z+F$w?DBqm9zd;Q4`0TcuGmd{}F{pkxH-~ zc2z`m!LG>D)~?9ko$(TZI?~U1mM_a$VSZNeB5QZQ>wxg88{1G%R0w9S2Dv%PX3Aj3A8U8P4 zfqiI*W5d9qaI7D3td*cvoz6Oo)UjXSK936#fVk*m`JmrMxCd30! zY8j}zg(MqAA|+W6*$fg=i;$3m4}@QO+K>{?VLX7#2j`xc5(4=FQuo~@;Tk&Vc*O1{ zZX1yD8$yTA^Yf3tc2u|7!Gnhhv#!`&3Enm@Z?ij_jSu|1FFjI$Wxx$VzbO&sh?+(n z+u0jxySx?#4x8v0ryqQp6`oIP!LuE9w!EW?$;u1H)amS<<0-1}DQvRm&Vkmn5}L>KvXw5enaf3eC;1wE;yV4`(z`YY5N7Qphhpqf4%+ zs9-@_*05tkl`L^~5hE&8(xu*xYWlJaENBL#oXP$nfbV3gIEtV%ZXh~V=!-3L^V!Rs zZ{b7iVtxWz7*d*rQpBLO)Dz{if@c{DR5s`^0~R29gc)F#L5{jTK{|4U@jvJIDX|$d=MAlRr$yNxpQot|! zXlPM@&l~c~eIMxLjKLede#7;1^~fd7di8-qNA3kwj5V13KFEfuKlHPT)n6v9MTRMS zEzvKCA(CwPKu@zER%E_sQZT%PU{PZM53nda^C1kTHc?SYXJ5jT>8apAE8r3lf7*h~xD zBU7-Qn+_*9*@39AewC{}xwG=ht55~?6qedOm>RZwkhfOu8kB5hYfS<{5jg`N6vyX< zb_JyKh7Y497l`*}>D#Cy0i33IWSPgTzLoo5zykaO1W|1DJPL^4LB=>K?u>?e6ARGmoPi-~-`nj^Y!i-(R(xb$-I&EB0xO6st-U14U)#eWb5v*gb`bm$g^h{m!m8a{PU;m^xPX0Kk zHuSAh-r*~Foj;vb+Fo*MVc^IMums9BHq3UvX?1Ph2y@FWt!K6O`h^ABh-`o>7i!IF z@3_K6ob(G~Kwx$1_T3%DI6^a{Q0uHcb0xx@U8wcfmR+%%-xO+fhAg_QB$njzwJP}! z=HgeO&&0>=q9L%dq9Yc{+YY^FuokaB8!_wBtLO4{cjxU2e#=Fp-#Jg}!JcpCN1JyR zX-z#-`Hs4GL|;)(z;A&y!Ghu|5MfZ$f>x>k-DE*=oIMQpk_A0d0on%Ym!<6tK|Mhh z*UJL03V|gw&w}!6z2&TJx1in%(3owC@B~18PwD08=}1W9SD_2Upb9x=${d~o!Rx)s z@%j%E=1QHWu`2Kz&a|h0q)MokNjgakxe%CWI3G z&V}2f&ERgWrS=vcTJO>7YU}WD&mOI1=3zyU_ucImb!Enya9 zPysq+N3^+PkJem!1rKNUXz`v;EWG)^^F0+`PT;R{%9AV5NZhF?kCZv;mFJMAJipi} zL@Lt6=L>jcV78|m=rd(LX+1!%D{wnwxEB>_0%)T3)ww#&t&cMq;7DGoXhBPB2e^Mtih3>&{oL4EYsS`*ECA;Qf0 zTDz;ovyi-K+6pr9$4ub!vy6IzHuSp_6GgqtN-?#5I>IdZTAQVPkDl_>KCPBEe!ShB zvrp@*{rkLq!~T8R&PeTtzoN_~`vLj{TJ!jREkXZ#1R@0yNB^%DO}~Kg0HQH9G15fy z<|rfVBgZB`e*>Fn&V&ea;Q?)icIIH5={Tqj(iWeIFvlF!9@o0!VgEs`w^sR5lPOX$ml^maD$ zt#7qnS{;!5>051_mVY|J?Dw7ar1sc_D0BUHT8j1p;`o029+Dduh%n>7*OD78{sLJS zv{8jItdi3P3(IA~Gi_|w)?R!5 z6}#E#kk+KptC%yytk#MoZyXPie31#`THDO&hqP{$-7`6R7_T{TP3$2J-!!gP**tkj z8(P_kO(i6JS-rBE_JdY8c^NK$3k5N7@)o@wg>95~ng-i0|mLYhoIW0e9)Qzai1#pq!u$B)}ZS?HkJ zG{}q}i3Av3Vj;UmBCqk=&8H4)&4+Ek1z_~z(K_e95SC>9#~HAG9>l1EjTh($l^K#v z%gvBY6?~?ZC&txH@Twi+nQ*Cv%{+4$ZM*x|2(xXm)?Hh;H_m*bSnH%c3dp;~+TgT) z8;RHe%FQ<{0i#Hmc_`~0mf??S$;2*5#Ph^Y@ceRpc3vzltfNSK5L?&zN9_ac>?yl> z{721`dSpG&<`B&v^9`Sm)RWIOKgM%AKKtI5-c_Y#oK-pkL?6Xr^q${0Mw`oyXbn5G zIROdyW3ox0ks|gOpR-ATb$x~m;^T~YC-|k(`6nXG3rDo3+Wp`M-K*Z6C99Er@JeKv zP?r~%r-Po=MOR4`x$ z=wF~cCj1st3;X0w=WdR8zGcA1g-!|*W-}d zWWIUumW8+a1NnCUEi}^!Oasb0%+Q2y@pvobn~iVh5^Uyqz8$AOWf$IRpTOI0zAeRD z?-SZ5jcW1j_l8Oga=l^ohpJ52*U)BGJE^tOQjbKKy-sRz+WiacW~25-O>@FYtwz-Q ztAR8ONOMnu@?5^P#oL;bnyY=RB+Z!n6ULzm95{FVA#(MMj$eA zTSrO_QZ~m(FH8VFE&uNptir(<`CS!o6_1zu4 zq5c=f{gJi{-1&yB2SA< z(O<-!Xu)Fx5b3uW_g=?Wu(&)w9sgtu1D?RP|P=(Q8)^J<*J>O-u< zSy#6Y4g|k3_q%9wLy^%U_7fyHa?|)V4Zm{*7D4BWj61bScxboVSfu^5HQL;{+sKSt z1Y?8UG>vC-`pf7>r)O*QhSqzGDv>eIeTh_G5?vTqcbR?m8lx)LAPDcT?lM>IH9A-R z0hR^dhwL&-_8JdVo@TwD-)Ro~${1F;w)MVXr@87YW1{xnmT0rl*Tyr|+Q5FGkB^^u z$Km_ecbF@_HhNV%_Bo5}2be6j?+&x{YvV4PeTUg?pYg4>b#t^?^&3P!$8I;=tl562lM$Y^_;OO+I)S# z(b|znV3q<_2k^jtBTst;lisKUMoVo99$r3RxT9P1+E>;pRbOkIg*^lU~`_0ZJ*RC`s`u=PLM`ygQN}937a5 zDGRA*nHs>u89p4t!(So%%j=@enum<>bzcP}kVS3bcjobVsCu3Q1oM#5#yN(-cmO#d zOF9DWzID+XiVqnBZ9VqD<{;PY;6_2*I`;4<#e45^WhVn`jg?jdX}-QN(u)0=ks?5c z5-#re#QayW;nli+7QF#3oSl)ira{Y-)CVWf|NKf`qt}?*j~MsbE`4m)JZh}5J+gX3 z;Zb8jr1sLM(HkE4*|ZAG+E%>3 zAv$2VBW+XOGl!ivM%m`B*|7e!F;%m5S!T9AYs~Zf{SIUkleW>iQse?&$;b4)U=%v6 zTL2gIv+>@>{19lNo>%j^zIxul=W6QtFrN+ee1^|gRYf9DxxgRlxh9{F^BJXd*kg7* zXZ&CrxOzkEdE+yi?b+q#&Wpy+l``H!y%xV?et5|^Z5#RKhS&dukZd0>*)Zy|QJ~qD zEiea{YIYp*KMf!8)n zxNfY`s=PFZBl&py%Od^N*IL@2vF&(e-MjW5B5frL%;#2H$-oOphsSwhxzgjay4t7*}$+r(Bictoas3GOs#?sGQBV5UuM|5SAWibJ?QQE{CXS~&#qEvOk7{fJY(2XY#Tl?o7?S; zDxY~7Hx2kZ|N3&AIoNK$Z{%y3QDL|Ze2=xlcG}Buu3{SRCJkXVolOP`VbDlFa&|rF z!yNM{5ErHmwN|olj~bt?s}<4y2xjv5jJ&UWG0WD~GPO$fKGpZXi-u{(@ipcM&;|fL zqLRI7Qd8h_A)VmLbH~RAolj3vcOcXSQZ&-|y-R=0qIb>zt7Pxh;mfta&g+jbJ9yHD z#0H&_Ku0^*3_3keu}U!yqa4&=0@i&&!?(7U86RbD7CQ?0Fct9X|3YH`paY}q3C%x& z;$h%^{dIWAb2gF0uendK#8n(+lX zas-MAmOO=mpIL6!i?+XO)0e|@W?yJ~dzm@7vb|ruhbF{PAjptX|L--mB4##qJ%Ny6 z&A7OxmbtF7y>kmZpi)NHM7QQ=z&I3;Z29KU|(i3rJjXUhknr{G> z@?IqPjG4gA!)c>K=otMs$Ackt&%@bVGwTj}&5`3J?F)H5g3e8kle*DGL0ozDTg#`r zA;tSavVA`KQUaY8syq3NnxwrKgh!yOG*sDw&dHKY%(>OI%>8%R>$Etyx>iI9wBI1C zGBabvd%5VkRn%({_L@rY=R(kV>~U~k#h&b$4RkbE3?w!mk3nY+=oK1c@eJJ&QSzA2 z7%frY`q2Q7&n!GQ>mQj*&jb7D=j>91<< zX?u5#`Bhc>0qw1Eapp3Iy@&0w+2&6Udu`jm*=DK3?$#2=#ck*pYabS=z4>UIxxAXa zk8QNa6xHl~wcY@T@)%xL~UJZNW#14-qLgA{{Vg9JtEfs z9naM7s}{iR?RzpY)|LB5HZ~fJFPY#Uk3gI@pW!hB-{wM}DHcBg(HFCVBwkqx5^!>% zha|fE0~&3Xeh`0lf_V1%vJ^u+B43hATy7t(Y58M{dERNSYm1&?#?-PmtK32|@S}KY zsoArZy-9@JLuOP-;|#yMb0snSd2?nh`-jbI?ty;AkniS(f31`B(u?14 zJSMNed#sYT)IM!IL=aqL-Wz9M(kh$xnud_?RLISN-2NcYk5>xr_FmPe^~9FL$VF!L zc>AOV*Ko-42#!w*6Zd=MZS$U}6x`#z1{?_V?5pOoc>4?Kt6+RPl5iW*$bF7>F|#qh zJkyz%L_CkDl2*89hsSDp*Slj_p?DFN)w(r(5U#Mr_ODgx&w>RPM#QOFT{M}pMo@^`l zf2_TCTvSQWHp=ucr_ZPeA`D5QiYO*j%qS}8Aeh#ibIuB87hMdCh+-^r&N+`c=bRNW zuIaG2W?j)$?$hTC24GpJI86T;p zQP!e{DKy$g`pAkVQj9P9yZe)Ai!U1D>dExVSE^9$_sLLJ8RbELp@$UvfSY@;?~ijA z4k1mDa>~X}h>R@?MDXnyym_xgZ-?s`B@XJ;olIT)q?#uG!?I2C(c5S4|CN0F_T&3! z?jK1h!4A`YKWQCnmOwoUN}br-Np!xTWM*q7Sxkkb1RX0IPs3ixW}jx`{uzjCQ|Pr z(h>W^69l(v1tmJqm_StmkZ0EfY7rm>I!r?%Zcv{dR6*RMPMAP50#H)d33Mhv8o~CA zw}cm!I?HY|M~iw$R{m=)8ngX4(Vao|F{9~7kW`-4A8knwk{osH$`rCIE3IN{N7Bx+ zQc0GcNKea3UD@_bt4XeG*g#9|YLb!JCH99Q1mNUN8^fUf)FxE&W;Oa-Mu$oRZJB>>dL1Us z$Q$1a_J4J_EDr9(^rC6uk~?eEi#CQ!l`Dj+Y4-8EAbx5ds97Kd2;dp}apL^3h&yOV ze~ObHA};qLuiEI%F7`Cqj5};UejVWB&O|$iw4+uS#*;SVQ-(XE!HH*+CR($uM{?R| zfjAex#$SydD1MI@(C*?_oPeebZ;fne&Fq^vCmw~!|4*!X6aD=noo##S|^gKeZ{?6<}iQ(LJPXL0qYbr;lG_j;BwT_j%} zGe^<#u2Q`+PEkgiv1f2Xw|YeU>4+l_ed-yp;d5E+P8|{Ta2GEK;w+OjY=Mycx=8`- zXe32-lUlHftu3p%NtJXgxUS_NGahocI05w&c4ba((x+{YG- zaTL-_uT3j@ONCgQ+Lp7ur6?oo7G-gbkubkcmM!^d+mBXkeU_-_5lu$l@-b z-=2YBSZRRK4mu20)nr*1CmrQ1&4jm%q?XPvOg2eL+Q0}SMT|rZTS829DM1Qs^cS|b zGMu-hflxy5RuSMV~y}LYq-lAuCj)+t>F-B*v%R?vxc>;VR>ulWexK_HpQye|LrfWfScCv zq&3`R4HsF%Dc10JYuL>imbZrf*3e`Pzdh3EzO;rnt>H;)xakq5gMDX7UiJW(J4?dX zCX^Wdmx<=h!ekBMtyxmZ-c%Md+yZ!dG7&#)VjR`safY))JJ;jj zbu9$w-2}Qh{v2lK(e2F%cud#1q9_QC#xLV)6ux4tK2w$Ge9}|&Sazk#nrOgm$usXd z#4$O-ijJLaS(9b{Y$;mD9+)WK94WlieNae9SR;Hk{F{{Fyj4Ijj;n_~*r2Q8Gk=Jh zuv(cAG6b2%&ylLLId$pe9BG^&5;a#E!0wyq;9Lwt5l@?o?hx@o^Q6Hdd_GSKVs}mC zJ|F!t!W#22wp(0>4$a577V&}$Fbq#IQPTxdb>BOJnJG(9WCpg`rU*g?_vO-bzZ<9t9LWIg z#cSw%ZX`q_g1e%+lj`z{4)|qONDcB{2TknL6vx+2+gvlz)D`gAps{X+ld0C~F<{3BAmPPa3*xIp4b4(bFtObDDe>G4qnJg<-OQ&@ChWlXU>?$Znw}?t` z9_(YHQER1+E>kPX;@*#VpCeWA7M)Lm=Q(c^yNLQJ_OR9KLAi=JR$bbdCBY)W{L#>Ewur`!mg&PVW zP+xaFAO;!cBhRX#KYiteJc%uI=J7aH9)1tl_q+g#h`%dVtsV$lY%6+a=m?8zC6c{N zWLhsZ(vQZEUh5?vegRrBe5gRv)=Nd4c2t0TAH`Z{9rf^l;hm?6&aaos7CGRFc88-g z>H@m584oh1d0Kbo9g#`fmaiz2{{|_-(Ex}ba!|u_tRa&V7{RUkP!kfh*i;*5bL##z%VKe~E5DWL_4Cgtg(X=;7CESq=@eNAY zW8_Z&hVw3f66~6kqcWQ%KX%4M%{HSkJu6E|ni3fyH|Fa%sthOTarisd`)im|1(z8M-9vd7g#c3UMkr<0<* z!!e#2H?j7sE>88+Q{}BveO6RYleS7loKJ|d@s1(ZlEqdm1pRu#L?^dO5e#9zZBl*_ z`ftM;+ex_nZBi+(ho$iyKs2iz-dKS$v~mH31iLRLs3*9Qi;4DblNJ=(hA3W)I9l`# zL_G2c7vE34TbGD?^6}19kQ8r7G?{3`b}87qrHG!hk5hefT*yDpaR2t>=82j~4B1kO zE^e1xf=>a88m{7L5_IEjUk{ezJ#*o=IkCjxQo@E)l}PpaiQz6#!xHQ+IKvt5z=Zo4 zOnL|UrQ>kkJES7)D4g{UX{&(G+bK0<(@W5col*sTe13?z3rp55@uS%;sa1gj`Gxi{ zpAAJb&Tw9PL^ZUicso5X&hL`kiys!sGdy%O*`$iIL2;k)YH$WPPp}(TT(*fz#|^#L zh-Nsa9x;)l1v95ZCNf*3;KCf~L02=JM}lbDpt#-pfd)02OUHy+JE-A6T?SP9L%_&HWrWkG9E!A+C zPz*c!9dSn}?NWxb=Rp&F+bvbd-2hO*$uVRL-6IwEl>rdmr~)uyJGp|+WH@&aO#CgD zq(2@qSrYe12A$))fUH(4PWpUEmubabsi;FOdsL_{=6Q|(Mta=+A;?Ke^4ekoZ08vrNvOEp9R@&PGcgfkAnq7mLdAVso0CJH<# zm2tG>7PcE%+N#~Cz35#IO3``us(p&u>}vw{=AdM1wp$pR;k|mgC=wiE_X(%9Rm<44 z$7D09R%l%3uy1h>U&oy`{8=mXb%r4&R}Sg}fF+IvwiX+jDs3NHjw&-?_<7c!*Wf zM!_bW<(h3K8hjl7f14K_KQ7f`h#OB}p$@2xPhh~a6>a&1)SNB%q-!Un$|7!m64s90 zj_{LGWS&BLcqd^F9(ofkI4La+z&?YpE%@?Wakb@<_pGpQTJUR&HJgZ->yXf2?f*v3N_?;3YHBTa^%-vHHY(MF}#EyDPV z@z>zoWAbJ=%RoP61CDLd)P`C&!}%#P;Cp?QUPp)Q5vu|<;$MsQGzG<23yngl3b4MH zdK4U4OFfs7h7G(LNX9S#C9Fo$DVqRM!ebnvQ`aq2kwqo_1&MU$Q02p2$@84lojJJD zgmcnuR^Ej=oR^9fTxOERGY38*e^jDfSp}{-(a;Bh>gAm`D>7{aV#V;U&Y2xXhq#dP zhyg<#bobE)-AU`fKZN$mz;Gl#PU6Ge3`K7H3sO~mIDXW>Al+r1oT>OlOxjJ(G)9Db zoh;WcN*RXO71|`CzBTl>h9+zHZMk)lVGVCu!;{u;p~)J4TWV#@8s4{t7p>tcYdFCgcC&`{)i85@X*R~a zz%6z|)A!Cey(m@IyW)q-O{tT<)&rSF-9-Q6U5QHFl05Wp-#T0B-NIHtuA+F%*o;Nb z@hMc}u2hjuy_CEyh3=pS)?1QgOXa&*q}9*3C0p9umxeOE#|_zX^Px1uRv&j+w)A-_ zjnM1m3$i6ukyhC1+n<&#N&iSsnSSUA*)r_4v`w!+enhsEcrR7c>*Ef}mVW^#St>fBr4%BZ+K2SZMc z$o4z8JymABF8ef}CNN%8*PYHVJ{t!XsH2{n@)aJy#fnr?lDe6dTAoPJ^Wx>iFkCo+ z)Qs8IbQMYc2lu=-K&(sYQm5e~an_tSXN#P{Z1HT0EyM5)Y|^T!elD#7+N82+2FJO~-qcm*t=Q0_R)cO;|>aV zf&6eA2457B==|-1)q5DO7gp7){5K2g6*YQH)4tgH98<|Ax(dh*5aj0NAh%E>S6(Cc z>Vlk4^G1fJR(cy}QH|W((|(ZwY)#%I*fOwJociYG9*xVTK;}fx(MZFUh}zgy_Y)BG zq?4dJFkM#kZpq4k1<03Z_Y{Vq?Edo$jP8w6aVED(%P;mu5%B=JKs?7OB{wfoWyKWD zgkU#&d^NklITM?t)C6mS)wHZaW*J&)?eWG&t>5kE5x3kbJ01O%A)p;iq;(>TfYJcRYa_|cvZay=HQzSI(ug3z3Z zC(-datNw-qk(Mj=d>&&p{QJGqb&nXXkF}5Bt3BD9a*2TmYQz- zn~wE~rJ5eRFl$3#A+skkHXcIjJ$VCG z)0h79wNo3N8GcXgvJKT7wMHlX0sM@k0HV!reg7>(IX;>`d%-Er)^e88aw_7TN-?D~ z+|Q@wTs1aZ&PF0DW!=P{U?vA6i*3S6-uer;wRp}eAIZqtTL>sB_c#T$d!)zUammRgjh8tEgwU7BL4 z9>7a7`xfk2qj}Ga%b7q3CNN5m}*W0_FMm?*eP#xSJ zYeA2&dQzObc{dhoaHq|QqiIi1xYTzmqQrNlYT_9G!`I55$F#CIufRGiru)UYN6DH` z#JTDO&%j+Av$(8le0C`zqKzL--3AIL4F!OuQzj0eA|-f<{I70((=IdO=^k|}ab*Z~ zFTpG7LTE_|?q26FDE&L7AsQv+E%^*(Hp-RB6 zUEdJWmEV#A=giy-# z&prwDPGr??HG8zs39t81cvOY-R0e2ajOX4Z3|DE(N*&A5s- zF@}trVe#sMf;;Yd3pa;y4h_j(jvKf`Ic3Du9^dm=n^}%dr}C#19jNlBjds-hH*@4q z?ycspIp{|MzE%RM1AZWYVbX^^U{V~)Q|5QFt^@wHhl-cx>sa}Fbh|VUXRq#(cM#v^ zTIH^IX&aZg(ZCJygY%$M#do|5-?gL$ajs(pQs`|N9?I_Ap>k#UCRXf@iW{8Dm)m$;VRr4 z!NV%NHG-;DVcGFJD5ff!amyXFvMTpw<#*8Os=Nxa+J<0QetA2U3{j)KLU`@MQQJ8t z!#K7D7R+*LTU<)0G4|6bTPzWdk3a;LSadtx2*F_B?``B%4FpeZqYBk9uNb+F;;QkI zv60(ykif`8>=$5a3^+cmEy$Vy1H@Ow6gp6$Wi)7R6{_tI0k?n#{jgO~71vNyTnwiL zg$F8B{Th{^`x=cm2;eg+7$_R@9nq!}?Y65>EEs6e;~I3~R_a)tJH<{^Qv)(n=V++| zbLPQ_Ku~I}LdBwl$_&g|K*LpN7BkH>XsMjI_(-(CbyJ~PdM?I2Rj^(K`(zSEI~B

OHNV&TB!rV$(1lKV_3uAOGPn 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�ys^Agi;IYZ_~NKj(Dk9PAq1Mc9Kc+y|# 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 z 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%0D4pD1L9}H##oKE?G9lWBIm) z{bamzC8^n{t``h1bHh0UE#1IfoKdxuEp=iMuu`%VMQ4_C2wto{Viq`fl`c}&&-CpGS^8G{0OOV}ak~T+)LjC6gSt(MfwmV5m_wn5L?b~we#t<1FE27YK+Xf?Jbvp&!LFO? zi+s+n99^y~gY#=3Dl@T*PAm_@AdQN{P*Dg|)=eGwi1qMp2R_NGsP~;bmBz$xbRz2& zqh1l}U2nHnC-v|$+R|vnZ$p2FF2+guqEpdfI=lwsmMK|Tn@fEmOWn&NR0}yYWj2sr z^b281XryeP?d+>;aGUf}f8+H9V+*b?xS`<26;{k-jad%-J;S+f>CaHmJ5&8cbt^)6 zh$^7aLp6WM5#6Bn@e}s?-@&UR{E3#rNZzQE;l1cj8!O<}l;KoDrr%2Bu|3OPIR0Nv zL(86r|JT#-x3wG&PQx(2{o84{1|>LI>ek{kA4M?_ooTp8D*xMQIFCiZTvbxE?P)ks z@_uP+8Wv0S1FA@hSik6b=uE?0UGbRHFx>`xjA^(Fp+?9NA%2pyEvI3lWJIT-WzR!r z8or5q&bU`~x%g@Lh)!&48cvsbu)IX;MW^A|XuX!x&?=CMA(a=c7@dY$PQ_zS!$cNw zrs1z^*zK>&jxi0_>+JHFX=vH=@L1FE%ya(pG_(j7M4u|)TTR1pI$5US(`OT0bQ%`2 zF6ZI@t7(WGe(ZAizfD6#QXSI2#cH^k!y&67zr{|&Y_5j=V^>3zuw*&ZMPsJnxsno{ zhS^vR(Nf%M$Rb<~rD)sJP$8HKaFA&T5W@i?vKlhWcfeAsbeZ^RxL7A1a~dwN0dpDx z@K6AbTMY#`RzoS)#xyLE3`|4IUJgN=;h>E(4f`TrRzqDbej0Ysi82jQZy4%DR>OLG zHN2g{~6U>bl^ZLf7f89W#TA3SE<3_g4n9ig0@_ZD#PUBG&_1GiLCHSd+iR z4P#Vjv*`DGupu?7Dn2=tYNORthn8v+vEFisR_N>>s#URtykyPVmBWs%fhh& z?ybRrGVIq&M8mLLlmcyrW&0+%>xcD6w1(|Q)#=y+7WiknapNcO6!JZ|dX?$T+fjBc zwf(w#+9wQ{=r$gpW!i&#ps<8kUzc|dO~h{yL2pojuzw_2VQ6OFR@1nAXu9!dzRXg- z1^ual0d_D7=dCy9|5>96Hx(#gkJfsy+fKzrt*TDQmk=K)j~BTlu=^f0^mBFy`pcPy{vl7ZONecIX+ugH{N2r|( zQPY+Rq#j7rT>hZMvH&TKs>MQen3xZ#@;|jtkO6K82lQs7a#|)vZii7FmfheAfZKv^ z{(Ibg*I-DVt_y8-IN^JvN{raJW~0sqpeVDvfFcnDWQ;IGUhwJJF%*al5h;KnvMHd4 zsA?QQco2&tvwUIbMtldheGw%O-!$oM(-T(np4KTx+Uu+CrvGACP@6xa3sNBCh9K?F zgYMu5%rl2z;noLepNacyoeIUIzysSZ_gP%(AUpNlxYS$i)W0CrZ%s;e;07{gA*TQy z!)VYSSEa_TQXZGuV5ijj9zA#e;I>gi?2a(|D?=l3!|egyn(!E#(lb)3L@3?Psxqs zSQ!CiNyvmc^{1FRyuMTi&K2z;G!8k=(0P5Ua81qheSxq#;bBoTKHgGE<++;Ie--{0 zqgRb)PLr9p+BAm2#Jw7}@VonaVeoO=7rigV#c<0^x*m49CeweC7j?OYrmTk%62}<` zwO;xB_+&k&iq@;%vgTMAp8f;agp89DgL`WcQI=|=fI|vi- zW@V{mZ}Z0nHLo**aY3ZS8Tanp#*NQOTG6yk4F9jp2-nGJ;0aSy>* zic+O|_e&7p9OP1OpI%R54FIl4{ChO2tLIGA^4n+ zZ@4hqC2KA`W(5M=5pi})biDovS*6Wi6#DyHg}5VJ*!+d3#k+1%A26gT!IBS}-SEas89fBaM21ADg9MSD6yI5u5Cua9R zxNE{~ARW(bRx@&-t0pm6@t5O%=ZWw)b5RIkFbCphAc`=eTp@bJI2MoMHw<#&b7ChX zXlw%UQm~_%^>WbD$JPD(x(BpbyOb8!lF+3T%?kvC9I^UB;nVS(-9;^`jkzxe=l8)K z_sy7ps?@G+vUaINEnEO{`TC2agO>5m5I*||M)1#{#gFSeCf+ZJxM%*~4(m5bv?F6& zZ)5uytmwE>8PMZejc@;XT>ss$b_evxux`biu!j}sCU}~^@RLI)Q*Gru(qlS08G~w6 z?}9Nh#6QsynT0uysnL?0jW5QKGkv}u44a$-P{k%^B_)Ig#;JlCap}XL+$D%=1SB#X z8s{`~$&xU>>mSu~knvQt=F; zeW=l8@zBp|tEE39%siJ{%$hZ*;6eoeYX2^d`Y(WwMBMNrDqVh7T;okRJq+;=>da*0 z3qxo;kXH5}zJE?c0%;TR-BQ^xSiQj9TN_FCaxhqHLUxQtY7)u=Q28<-wea*dkbm5 ztB2vg$`Z~vV{~u}HU^ia7{1WbgO(t3gCFhRtD?j64n)VpD`9@(6&CR8(ctQ(kH!$&t^|289R9=_Rxaw6ByUvZ^Nc9FHC?b~m&puAj zu~{WrW6G%C1zhQ9N>!u>AuU-?c4-^PL;wjd6~f5E9U((milx4JQ+HdIffV%-e}eKe z+f%}!W1K^Iq4F=oUxnWbFAKjDu0eA6BTlYDd{Z+P!Ck2-{8{)HEhj|%G5xc#aRY$0 zP?*d?cS3MYy~RYVs{()Wy%N{V<9m=Lg42{Mn@9b8W~6TGsevvJC4QRISh>HwabJIm zWxO!@0C-`1@@zA)v3VnW^OWgoht1o)tRD6`_KQHqRV)Y0J>O$YK^Rf5P`{I%-ZwTq zveye_9GOoSI8^L>i~^hI>-=5c#Q=^0P;ck2J4XKNcK(~k$bZ1H3p{v?0#oe#yN;1R z#?HSYHXl9jY^UeNrWagOV-)&}Wuf1b%779JS<&|)R?7+g zLuTii(Crlp zYDQD+`N%I|Rjfj3V4me>-U?$j;+7&$zng0Ybo{A8c+B988NnSmpK_l&f}5xPE8sy# zFByu2T8XrPT?X)~V3{Lx(05Fw1^5BJcn8dzfLmFsnfKf)N5EVt+n~N!h_C(!q!fY@ za`F*3ud%3By#^3GV$PN8EF08_9!KF7(}45q`9o89Ee$xyyU~3yYj#+BDL)8^Y0!2w zUHP2!8lpdgAr<#Og&>U$1$@d54`>wmcHlwa10LTm2xy4cYx05MLI8l5Bk5g`co3z= zdBz_o#P$byRK!uCt`Hj^uP83?i=P0(H9(EAaG{+M1Ov&#`tF4r4V*l%?#O8c`T*i> zQ1_%CMZe*$x5|Sx$@E~4>K~Pxs`ebmj$y-!tOm)#f}5+piAi3ro=sq({ZeSTDmg+D z#*`mr<)*8ry2Y0HD84zim8qu16?x4mf{lUQ@Tgq38W~rpS_(nYFM^3?{u>~I2c#dT zdj9!Hv%X;iLHjt)M!=zU9I$a5_=Wh5VT9#oL$R^wW0ji;+)!^KS!6CU)pv+s!{QU2 z;wTCTQrd;ma{CPhMY)x{di94BK|(ZF!F1npb?|il<|D?ppdH^%HKIj;{jqXcao5PW>GrqFHGU%>WFFkagVZu`Wk>bHWYz%vbdUsYqk0 zriX6HdIT^W-dL{c5kb5Feq?a!zo8aw8|Uma?pujY?J=&XHL|gj-@q4`)MYiXJP!!vPX~7pJ zxq4fVN!7xv8AbG}++YvFDs}S9u~@o0$ITA1Yqq*BuKR(sRz-4Ee<|Wjj6XO<^hDx} zu>h&R>YYT?oMJB?u;wTm8~DGnq0Avt_7rMm%aE!g_HB0 z{5cT6Ef@eNB+BbD%s}o$Pa=G%xWh*9(dxUP%rUxEe`hVQ4*zB}he}6wY)6(LHJbrm6T|eIeS+6=teW%8J)S#Dlh44R|2N6T- zfXdDyiR5y7AQxXTy%&?0a8s6xkk=1aKR*=rfsf)B_I905${mS?#-gLeKiVaDRffhOffoaK zAPxZNP&zU{DAQI%LhAqx;Oa}A=nD`2 zKzu_*aTm7-`ZN2-@s2`6BIl#5u@nBK?#;ce?nKlCHE76d62rlP36 zG~*1u^%K#TiePbpx^zoS>T)%=H_JHU{@R{|1VC672ne!f6!fJPcpTm-Buy|mQ@tLO zj1U^ojMxMfqle`+d8k4V-i4TD^It``;Vw5$jqx9fDnlfU=t5VGb99?nRp^&tXx3jG z)r5MWGDfK_MW}9=b+}DU$TJ9CiqV8NjN@-=LRt~ZX_3Da`NWzFdp?6=fv0d^pYz78 z&U%vEfv?m(Gl%CN$uF=?6N^k;bY8)tHLV z4@CqRX;-U3gDV(EY= zFPcfS)$9uhQnP-9t8>-uNR~!p=Rkk8^0a7aD42Zw&bPs$?lR!qmay~H>1_egYSD~1 zK(hcSI$)*v6{{AF!|%4VB6&|1T9E~{2r?3Nv^*kX_Xl2TVqbvuUlpSg9mi(!3w5Xh$RI?4)`)JkY?VlQMV0947?mgyZN{lYZ^80Mm585O zC4w!al}cpdqK`Tin2U;{HKK1^ZU_`;MEOyTsQz2U?6z(Sd69 zmwBQ_kgTSE%xLfUAH2SeW}O;UQ8}(U+cekVFSOb(@ke z3!HU)xV@ZFc%Xb2;M|v2m#zmNHbG_gRQ{6A(_ZXM)P!0_9BwZE(&KCPnC)|3#g(%^I$hv7-Z5a=l6yA-l&7s2Bc zqaC25*4=oN>yQV?&l(yzGczm0>4byYfB}zp0`^^+3M5cp1KdwAc)cPSpq9PQ3){`< z7T#;wX3TyR>x0+I+lQwO_$}`zqw-;X!6{)bAKL4WtLsKJlK^+n#<}DuW-jW|i;aFoD=mkdG41>w0Xc<*y;)@TB$I+J4&!2Ztb`&m>ek8f4D#{!^eB{8rf zdY!tv5bqW-HtJ{-w`hylF>p|WO2zcTRk58YEE~kJS>wtZNGZljIiNONj)nk2S7(c; zUXE9D408~Z~-?Uwp#v9#Plu?@2yM3Aywt3qtMho2A&Dvj2mi!pAhQJ`$(t_ zX3j1EJokVx=kX-b1oOeC)R686CL)=rOopu!Y)oOsHt{mdjqohM15Rc2`&oO}-CNA@ z2-R{Ri3f4B8!#4T-ba&I@+9c4KxDJ1E^}pS^j%P3~fXNOH?Zkc_P-1TRyrE*-Xmf*M$Gf^rpE zw_@k&JjOL1-!b1CjLJS}(#xxQpL%oT%@x^tSJ%$!!|lsD#H~vvE1sKR%-Kr<bGQ zthV?@*ydLZDDJHDiq|zfqb_#Ns6BN*;<#Xw%0eFz#$!^gCvj!q9;iL_2vb|@#V#zr zFCHSgBdZjs^?R(6Q97}l(Dx!2Q)7ulNrAh8h;ABkv9FzwRf=dA>1JSLVu8{5mYwty z>2KzJUpAByGaq*_i8kaH-h96{`B_W>OaqFn;=G^B--qf4_YexKH$gZr=4gLHLjCeu zQr20hkda&L`xUE|C+Alamu5Y6*5PDWl1_$vH!BaN8xMqm4;C3?_62b641I(@1OVPA z6RT4(5n3>N=slblJ4af;AR(^ET+WBkUMZ3;ZMZ3GE>dV`RbV@@{mjC|*Q{ zQ?6DI#fhYdS`K{4Y=qKXqs88RFCeEcEjI77?t&=q>{jl9_Ts>>wWT1v{aroCrZ?JCVXi>$iI$kN;>;NZOnLWWXq45Adax|oAdrNWr^7kmK1TyZpkr7T;R z6h}eh!eId7Cty8KRTp;|*A;hG~J zYNM2hy(t)n<2;Syj8qFv_+|iaGjD1pZy)bc7hDEG<_mGx=q~|jOpqKtglgWh=4O`W z)kY$p?Wz0|U0&}%TUyNS6`$H2+NYLYOtw$0g5D?k!MCd2D0HB5cy?lFFd8*_S%u__ zb?_LX=g??1u>#yn2M>sAka#q{!<>Zajd;DcL3zf7&C&4lb%*+hNUH!YfM;bVl%0YL zBpAd?F`%ff>3U}?8kONtej$cx^E?e_)RpOk6N&JshgzT=>fBH7W`{D)Mcj; z`Tjx@@u|hM^%o&zDp~>~qAoX@AT(JEtg@@vw~pP;1SIT6e08C>G%lc+*S8*X|B=XV zJOOksen2YAGp}6CpL|>#%?zxe3X*U!3Yh z=C8qT{)4>??D4vd*(j)_jAV|w*hE1g%EUMP!yXsq%tR>vb!y0&g2JIs8Mb1XoQgpx zqy0>_D_!)be2ZKpf&o72IAeRv-4R6E*>1jS{y{=tKfOjJx8~6{emE`@*=N0L0 zB#j>t0DL>Jy&5ny)2MtMdCu}PKnFU+sX8kJ9Aoh;1Wk}*8KmqaNU(9f)Smq#enwRZ zxa&h!H^aiRAD2ZI6NnA6JmzefXN+Rwu*06dJcA344mJZNz~uY8RqNOeRHKui`?IhG zvVV6oC$KK49UA8aI1swCv<7SJ>;S6lC%Sm|l@YW^VHTl-@9_HM^I*tG?vsuL15qzz zOHzrKPb%y2zX5&L^^HnIM#Vbk5T~j?1rMLm(ZJ>=pC=?`Q?*W0C6Z)A3NMXF0OPI1 zg1PW*(47cfBr=R53`GHRZaW9mwi!YC0R#^{riZo1o z-iR$({(ODA);+d|tR(!nPylQJdTKgq`+a?KE`VB&pOMz$%{*mP-NXTgmWfBY4;WQ1 z$gfAT7INe;4Hn=NAs6S#A%M}@e$bWbAUt+a!X8IVUSVIbEKdvgufF9lzk)~?Xes5v zPpG@LoM`tTHFlz*psAC<=T$O0)is=7IQ8JI4>dwUL#Iq;A*9Ln0r(sQ4Y{Ay-whIcZzDdpJIO_ ztXmYBaZB(5T=b~?AX)XxMl2o!x)wbP_EXPg)Q#SVx`F92hEA$n(YW+4GOLq4#_? zZI_xuF7mt`BAH>G_BEgf)^*y~L>rP=dn4frZQk=~+Ub_` ze#f*V>qR?@ye03S+dZlnnAjWdT&==GuzBCldex!4IetY^)h}h6jQ6@ERva8#W>y^R zT{gL>sj&(Lt^ii7U*9+kB&(|X*NP|%_w7>xHuB{n0oYzMkzR86GDF@6uW zK#9e^-zpByEbCKo@GLw9!H%iL)7U3HBZmMg6t7jF$ISAt3v>1qCgM6A9At2q`^>FS z*p2k`HtAsvj6G( zG@Gz7Z{7h+s{18H_vOBu(3cJWBxhzc-lF^P0e-RzS8J00PaUw>gNznEIEdrz|ImZK zEOdI%ssrE5Y1x4fBt>`NR3NRo>JD_h1y3_@6gvE0^ne{0$n`&F2rmB59oX_`=>URB zV9{(b1U*{ypaW8hp{Ax6^Nt1sT9WZNlf_*GpRiqGafBb07!$EghuIOqI=6d#+bK4t zK{=%TF-^;dDTvszx9lp+ze(A0$Z(k(PkSMT(kcqWPSkH3ua_`Ny*<7V`LV*2gJXfZ znJ1YLKg|~Y<62nVtbfAku)22I-{f(WDd~V({#V*F^Wit@_5CKsP~TB*c}pqv%{(Zg zWqqM9X6t>7g}vQx+}O#U?j>P-Z`L$5Qd&2vIJc{7rz5@}bR#e1*<2(*pXQS^{Hm@* zKu&frpIqF?lv4OiNO9kgeA>v}NECKrH|VRl%Ns~DCV&kd8`}=+k5fb@HL`viPYsy- z*Mth{?y;0+l(3;@+4ol<6&tbL#W`C&_aX&b%PM?9BKDS7;Wr!wLmqq@Z)uH*k(%rv zn81+|FtiK?3@%#}amEJRL%mR(UT-j71~Lwf;{ux2fm5yDPg8Jl&+E_|pSu^DT0 zMiVoVkYW0}+ny!mEAY#4Z*GsCsque-+X)ybLEUy8g85Ld3C;SAM8vkft##w!NZ04@1dbo$uw5BFhX>B5K6gFI8=gf@lBVlS86uEd>q~qZV0am zgGp9|?qo55J%?ZqRHNecG^!xyM&?+ApR#*3C=RS(x6t~EC>xzlK9QF4eHyjZx4f7KAMd&6Y-9~3_fu_MCGBlgUIy;Qri1QSiV7kY5~_<(A1# z^Gku{AC`|UhCAzJSR%SLQU;w=>@P_#_M4dn1M=OowjjlRdArL}1`Kh}{GBH- z4BH)SF)_@TOA_h?95&4(dEtN${tEO?N84 zgWm+2Kjq6hy%*19vb_6dA{rfJ4jSV>(?0~8*hh36YBT&?Iq;kyue1A9DpFh_FH|eS*%4_Au6b$nnM)e!Wq8Q4R_OPfsuM~(gQHlDt zT}r~e%OqQ#hpX-(L;-=Fg3yuj6h1E*i17HUN6G^-W$MxCq9pb6zMQ^XZ)bkXE6Qnb9_On2)>jVAL`_( zO#VqHcS7<%b@JUz{#Yl&NT2bnPW~g4-`2@pkbIv`p2*~dIvGZzj8Y_9;L!0*_aU8R zrR4$i(YS*%_?!PYwJ@Zw;H#Q>9AZV!M2}vS?83Y)Ms;E@JuLYg7S!vHPyW+uGiq|Y z>M@o~N4}C=*njAR)`3HW#7e@OC{dQWBIYDsI-QvjRg!REj2nIo8iOG{Y;T$ia0Y9LHJV z24``I=nPl>3-g^i107OJt|Px@{0$!}@6R~h_!^VE;(e}{^Rg<4Q2hMAnOQOOAEnRJ zNn!|~@K6P-IQQ^48-od|3+|%~NV%S+koY*UwwGZk{cDomW{J?kFj0YG04L7?$_N?*vsII(8KqqtOs9qcne3T;bVWbg$Z4)?C4IFDNgga^C`ZHic+$C0!% z<#M15MBp-o8YWIZm( z`C3alpWz^iGQHzxrY%VKh1z{{snUFWNlGaE0I#@gUrHtA%}#jBJRi_ZIgHW4)u~`Z=xfpH2f%j zV-}U-Srtq9>>sRG!^Wo}fv4I00jV=0kbEi&*KKim6C1tbx0rz*>A?0|bvX(S3!L>X z$|czNG!&2jMO|b=gtw(qXW$3S%T7Kj9#$tw3r}Y)r2UyqiE8UxE`^E{5m&YeSL6_n zsAmGoH<*byni!al;W0rF(B&ZdR&OlYX^!8k*8U+vj1}rV`~b>Bc?AeKj}8Tet2fJ<#xGcB6IU2>-FPw;EB>c^!{RfXrDj}$%_=6}XV>r} zEqx3W0=xp#sJ1*sVQnkx7_>$Lgivk5C;zFd1(709o8e4gpvI!19LHUKK1($vQ^$Fgb)zA=xB6w#H{l|qcIPh0=MH6|;Cuf-Y4TT|| zKysZYueJ=%FGVGomW04<9^Nr7@a^ZD-;+s08T4ZlEMyF=$ zRJ;BKx_*D1*re;9%aXE_r2GqHTr?V_fvCKds&b$R+guz3KpDjml{)_uZb7aB0`>&+ zK|)66*!n5dYH$>aBZvpV^UvN-^2j|7Mr0_Mymf)S4XGX zs(y{GZb|bscKsJ(>rc`3(f_vUXT~%?*RDPxw)#c7dVbs0Ht#kV)pa72ZLYat48Wb{2AjL0-IX{K3#%U2KF$svZtox{FU z58FLR!}+l6#y`@T}vl`{0hF)}R99Hb7?iJ5VU**X!!5mWL+ooI8;F5JBU zD^hac3467-l$Z<$0~D9?Nqgb7U6UlyW-AM?9PUSpAL^o}25w{Bpo@Y*wB4?dd$C<= z;TExPiYY;?2Y6@_nsHj^tFcCo_hR1x{hrGKL;;s^_s!gjDDzCcKZM1nqcP{&Oo+&u zPNYBh@6c5=r5#YG{T^!_x1?ZGY?{(36!qG0A~x!H+Gw*;^(lg(P?^{1BT?oN+uu)X zU9#|aeWz+hY#5q~CKBqg#Z%cIlA-bVTa=-!=!951nG-@=8L5o9r3VmtdQE!W&fY1V zeNj#qbV&M#kYkhPzMtDB&Hhm!&4^23|JUcorYCTPbj~83JpT5)_aP6Zy_L@1*|tu< z2ZiR@m}u&OkRJOOw4lBKE;cq*J-*H$Yp#`OSQ|BiM^*T!*?rt_VqNk5Mj z)ATmGY00pgrn<^O5Pgw?f$eZ*k3&MO`+$^XxSS|yqm-R|cMN5bY*TbBk}cK{l1g;{ z5lFI0dC5<0lXCG$kkU0G(w_(^TT=2198>;BN?Q6vxeZdDV9a?jgQT=0<}_cXNjVqh zWqTCkNf|@QC72Ox`ae?==btS|>02YDgg|JElxN=6CMmnv$x%wWkYZDE-w$n5a^jVY z+VBosep+&6OH#fJq4yt2`R^!Mf|Wf&$+g9rlKHR_!^c@1Dvn9Y88X}d8&bBSWWj2o zB&29tl>FgNS^w<$9_7jpB|VlY-$9B^%0-*oCZ+odFy-CD|1%{gwV2-4|2DtDl!s4< zA!X33Nx2_J+W$n!CH8!XV@kP}_@C$ZfqEe&)}FRV`P8H~nX<}Gjxy!lNUn5S3 z)oK-Kx*ViDV_2j=$DH3U+mlQ)>;Eb#yBKp`0c%+WHJIcSm7Oouq+EPmr0HWa+QlhTC9Qcn(z^rtOS3MEhK_`gxoieJBvH|Eg0rl3Y#Yyuf+ zwy1QEi8OsoQjVqf&VRMIg@Rz7vg3L)h&bnO*?Xp@w$+sRR;d=e=(B_H^KINh8<{Qff+Ws1r&;k#37A@42l7B{BbaEHuGRkCO6Aq}Ze!{!QDYtQi4Pb||36 zjEJUGs{(kC1>GSf`5>8pnAR!h%cWgsrMoOvr?m9pI<)f!{SasUu&7SSH(x6E8^)Y5 zn4|?YnB%16b7+=2<%3s8T86HU0~ni-hT?<_uVF~C9GuT$v zqd2ICYlV;{Z4u3Wpm`e9vWw+b^pJiYn;UHHK)N%Biy>n=1SHHGc29#qwKA?8&(5bW@GZp(U z7T$nl|I_-Q;Rn3Fcs}|72L2JH@Zh=L{lUd*{&W}!d3r z_{+f6EjjOLfna^bJApL(MYdJ2-H=I(`dYPO>UOwR735>Di093vH2S1j8EvSGhXe+jux-WyVlV)vg>c-~VJLf=lTf5FHBZLCxBt&*3?4SDmYsH8#~c7@GHI+ z<^5_@Z^g_k%sXTm)tm6m|GOHFCN7kmfG0S~9EoPv+Dg1}ODCc6djT01yq)T&t2reO zNW_lCXhD6>1b=V=Y6vUvKIwvAFj7FJhIxsYa)?!Y2VeERe7K!&Qi<6#dWg6KwCcml6S? z`A3k9SN6W5HPKwBDmN#Z?Hf5EdC%(8&}zJes?GkqV=7TdN@&X_p?E+_k74~w^=qVO z!m7|4TUe!#xI4pjKE*1?%bwWo2E!d(;bW0fq;XwQ1YFMnuF+mQo&J6c?B8ngc;LJq z@HJPOAlJ0flvhznwfGlw^}0huLC?F;VtDY`?Rb?S%EV4L;bs1m7v#f}I9Rto^H9t*(9s1pIuZ@UHn1U9QFs6yjVs25UYh$7|s z?u<0lqMZV}9cwju$mtg8=}|P~+}?};>TYA)y2l6dj?rTUY$El$iNA|b?4YVg6|Rt> z+u*rgpLLsz3nD+DLgsRLrBHG*S~gqtr6&YEC73BXGM2=TD2a64Hq4Q0%{lLe*}S>>}k~+fhUdy;GEcLHPYtx z)(DI_R(-dHIuQh(h|bFvL(uhD0B(t$mj39pY*Bv$ol+0=s(RF&pbn28`m18Ig0Mb2C=y^i6DAwKEmbU>|2^wcd^~U z2P2`2ZbDsDL!IBF4zPO{n5s)zDvj6$(%wUT^#>$y<(S6fsJZo+*jh!j1lchS3($uTU@v3yrDmB;f4=T~AFG2zr2i{~aXVr3r&#kfV1;FG z@D6?41N41xfI>IT5?S%-ewt(|`$6zd2UFqTMn_6&3f5SxfVC8T_;ELXw4*#jq%)91 zB|eOP1k!f%`)?1)_n-Maq`!Z~@89b0AM^V<{e3yVuhQS&;`gQc`)mCEhW`Gn#UIb< z9}n^Sqx>Fqx{GM6vQ2Bc4w+aUsV6WefjyI)_aujU>Zo(TX>h%m@DJp{5f0(##IZ0} zs35vSUHKSS`V;o`VM|xbNjt3OnqotQAyB307fa&8TRIKws>Q>xt z19i;5lR9{eSD|(FkL!WL+23>gSA=S`+hcgC-P;xfy5?FTQ0PGv3%$cXKScg~CskY1 zs79TFTH!ZClUV?GRS++1+U~dhk&+bl)*?nI zV{pwQ;LXZ~?~nNoQpkv?j}X~(Y7FG3n=+HJTSF>&4u5d>IOPIq_C$Y1P`+H6YEhd< zW;QYtBn{}Q(_ZCJY*5>=m&H+K<;oIxh3If`fwbEo3e<};K=@LyNW^=l=Uu37%a5x; z33Mt&%bawP9aP}eAXJM2!~h#?hFfMHEcRcV@Nn}Sx8-;hrUQS533207!i3Oc1z+ab zeufR=XNZk2l6mHs;6ir;8E$EBEvWp>ML_lYdnihl$gF|gfwo4|%an7T zbsPTuWo;xJ+tX0-I}!!9Kjnodw5K6G3u8SEoA8_e98W`;?YPf24rZie`4Q_A z=GR_^j02julhfeoJ%Y(qh|G$+!As;kQ+y0@GZC0%5(9w(Zz7aI5{6VGrTYFY;$V2S zfQfN1{OuVm6wq#^ZqnWG5!xl|#xpp5#r?l2zoybVhi*aiFRaR{LKh6H`f_A@aaku_ zW;1-uv;hHIBemrFWV#nJN4pok0OHfXT{f*83CGy5OU*@D%8s~H#BNSjla7&-sz!aE zY_(able+jAmC}{_7&%?kamUEXRNL^&Wq2#O6PyC^Sh`M zPLQu zl7J$|;HaHR5rcoWJkeH0I5aY!4vpMM@gE}-pGKZQ-4F3wj8?2P4SRZFlTlgIqC7GY z2!KIZ62gqn7oB7c)Xt1di&{ccfB$D-k9x5_-rG5j1x z=$v@N&q^A8Hq!7T#-8iom;QD6KTJPx;DaE32Z5t}?Z~&@o44Pnnv8>{V*lkZ1Pyny z5CmS&S=tUX8d-F3)SFT3ntT&a`xW_yYY)d)kc-1TS)pQ`8ErR5kMzDRH%Gok;So2- zHoP347e&W5tLy{gg3FJd2YKnUrr2(djgN5^r#Dc%2&!Rvj0l1Zt=36m1kOjZ>XD}* zc>)O0z#sSBfFJ&p#VmxhX~fvp3Z(Gxuc@6Qwh%c4cS6u6M6@IFs9`M8Le!ta*L~vr zYi&4`&uZbOR2|+#Rt^L=;mYA_LR1sL!dD6Zl~3ku)7P;A442?#c$~b(Sa(MmmcZrW z?kK7sP~)endywm-?Q_3XxnR7sM-he=6k!k{;%oL8qw9=wQ-(lOH)d}E|Lifwrd)tudk~^^r)j)%^b&!oYEcPyDvY`5m`hUA zG^{f|CL9|^Gxjq^Wq>eP*S8;oGYusXdvMW8G`wHUbYLt(AsdE(Xs|&n6A@8-Rb6RQwUn1JX8I6|@og`HaKrxEK%{H2MyR2!tU5 z!5@LZsOTC5f}O8I>`P5E031^*xZHgbY~nGU5IP>g&cLWV*MXu*H@8*Yu2CAY|5BB^ z5To*2jHh&=z<1c8A7cA%(H$AAAvM@oSRl!p@uU<`(*)EE2b7R8Ild}tj%lOjV5xa# zT+I&V#uc1?@p;NYJuRlmY1n&2;uF3?r?6W{$pwO2u!m=PSk-#B;B2T;R| zN}pYGA8QuW{pjK#>TY{lVNfVwEbwm(29*NmOb3HNGFKD{&blTtlB?B`e&`PHVN`H? zC^w+LEl2V~0oH(%>S%YCvnqPxbjLF0-m9xR>?Hj;jLB$JPO+=*(@b!muDg?UcM2)8 zTU6a?oZGKXs%F_$_xhTEmY&qcqE+y)#WdQf1_G2ouvVk5F^ET|;ynVU0b2k;USn_^ zsyP$sE?v<A)^I-XW!W!5(4njrHd}ya~rV;?6YzyrZ31h z*KMaUg@L_Nc3rG}Z)@eG>IG>2ygeYIEHE!?AqIp(+0hXYIq7Mgi9}HlSO7wf-;Esc zJjRNx9i`Pv7og*G1G2R(%V(B~1HT`njC$>w<4Yj!QvJD3L0Cu^0It`c4_96j3vVra zcM*;*>a^Pj03_)4esmoNE7QcovI(a;yRoaIZXv2Ej|zqW?1)kcFlwoc!7X#$kzBQZ zP;4eVHd!0~93x5r_bGw9%!a$u4p=%ICpMRts`sQOVoP%cf}g}$JV*`U;mLgULySsi zd2s|$Sv!q1p;n`&{+Y|8T`#hNT%8;5I#O^c7Lq{5bPZKKBoM`(x>faS8-hC?Lh}fL zU|nv5D2WBJ=h-%qfQc@hOE*ricntNf263tl;rLhxZ?+Age>{YHM#xJ(89UDu>ZlK? z%|du!e7CAQ+Xj&z4F1wXjTqa75JYj@w6K7{HiVr^ST`&UMvVYkQ3%s1j>&3Q%@Y!cT zy|mmkfY<>cxDyGffq6{II1kzUX+3iWe$#h2q*H%a4C}}0M!fyL8jjxbUkoyKHHgfBhwvF5nBKOG2LLZW9 zj7BcSM(&+#$>Atp5{ukJ){{cI%(k(cV572={41zj*$TP*D02Odf!xcd1G)V@Bgnmb zA-)DOW}eDBfk5fxD0VL}%OTy~Cj>cn+sLghYB{cN*(p)Vy@(W>a!=H>ML7$1--+GW zD0Zi4>|W@t$94AU5z@7bMebUS9E3qz<9b#r1)heNac} z#RV{z2QtDOut3^o2n(Ll#h=tYeKW8PWHjh9KckHDF)2p>pbyto=K_W{i0LRv5u2E$ z{`3K?a`4@v{UDO8CfKR8i$zl}Ln@YgvElv<*R8LBHabL`gSc*y%s48X-wRacy35}T zpdtfk8+IA;={UeK7R^kktY>)SRmt#@BMdw|0p~3uVq)n`pyei@7g?S?U=OepS?V3I z4c)e+98@nRl0iz;;x$nNBNcAufQ8J!;}xu!cxQBIopVUb>t8$`OzMfjI0f8s7-y0?NRQ(T(0dj{h~oe@l}lhCuzW3?siF>Kn`hz_t1QbMfpNZuF$5oK)lGnL5n#}E9FS;ZjEO`yJ%(r_ zxz+Dqlk8CS*4S_+kW^YwQEWwp)kkn630-rjxfx_mGO9xWu$0qH-O=YzGoBNQ9+|=G zpoRy@1;>C50Dv}5MssQm+qewphT3>>E$daI9_^Fw zLjR{>!)k-H8#6dWl}m)xmE5TVsl#|eZsMFE$P!=K+t1@9uk||3iQ^0OOJ>CZSKWet(b;e zf&Mg>n5}ZB$L6-8#|i&7_wVqel@41`Z>pV9Z>mo8$bmPNqbvnXQ=KR`a3b1MY3O~> z)D{6#r-_)r{Qsnf%>UylV{RIY`TyBZ02MFZJi0X2!D)pSU9sRTAP!ilzd+YFx{j z%%Vh|Oc)mu#+iUYE!B3i`Wa4EF~iaavXtG7An9>=#46K>t|BvY?$sEKTSq8~MrCP;Pz!P+U7qT<&KyVT)D$FrN`YP+0IvND)J8h+DG=veo>5QMVq3L*ufnac1!FPFIH>KTkt3SRyA1 z`u34AfvdxH!QQ)ErzS294#S7*)Kh}D?{b~u8rLB>f0v5~@oC-;n2C4Z+TICg{Vxn< zv$&sOCWY?74;j>yWzrun^eKT)RK~m$?6%w0?TR<1qIv8bV;f#m8$+(E)rh`uP`jMN zs2v7Vp1?x~G31H%y+WPbH(0&fb!yt0*(Cl3^(tiEf?(}#m&bMfcfpQ(T)mV0zv~dp z-QzmX^<-*r!XDR6t}W*V8}_*V;u?Hzu=H0~rYq~*;Qhb4u20+cURyzp;F%tPWjDs^6{#V3wY({Gb&2;_Tclsxh{3>crdu* zH&?c6)q}yVdqKsW4+IDAb)DlXeK0s_udBQ3)CYq8y{=KNBMX9?_PUB)e_IgD-RHXW zw7ZtXv{sge8TJ))LEEK_##7j?2l;}}?Q;!Idaq~4;O2dO$#i+10`4 zQOoti{NSPeu9ICW<_EhUz}T103l2Wu8tS@qWU%spYhsVYzY|Mw9LrY89kpZxO&ZkH zzX#hLboD-dq zP~!$%j8k)Cfv+KS2!ed?@>HYxS7_{Zn^g+mLtXF(6~1sP9AJg|(2bBCs$`tq6EK~6 zcrhkTfc~o+n(z%wbsO9b!{3u3w}hMYMjI(D;{Q#88JtXh1k#aD8iZSft*xXa+Q#~~gxBxcu*V)nAEY%Xu~yF`q0_4?l^u5`3= z=+?C!a2nS0RFvV-NjfT;0nib@Eyma_1p;i43#S_Qr&RRv&Z?|&*v(U=;>t-4olcTW zb4t?NsShk+h^aR;)qDq~Xv)D#f~S&xk5kf}mD#u%v=Zm)|(`H>we@DLMrKFP?MJ4sJ}&M>5ZSYT04%*F+M9iTo_V zC!ua+CWb-b6LinT2S2m<$(sw0j&~F*QV!~7_a5q>%5AON;2Oy>@ zB+csr53hi6G0QnhvtA7wtUQWWY|;sek0(@H`;ln8)eb#oTjFY`n_@8kkcrw1j#>&w zW?4h_s`c-Zxi$BC@tRo`&V!rPji+L~Y-Fm-*rr1(n}%ji6D}T`#+)6*B2bv5DyF5= zF_pg^be&Oy9nzs2#R>;75~5zn8m2dcoP!T+qb;!Ahz=o^|Lej;M(5Y{Wn9Pr>l{jP z5|Fpk*s0L-z+B?~YlhR68TX&V;Ea^hG0-h^mr(L+zD>44U3&`UgO*zVP71U`cOV5U zbn!QQCFxDI{Z-9d3B(7}T=-OkOR|8~b6SUR-|c2YT1rzwL?#%d9P9BPrGdZ#2^Qiv zr_Ee`(s}bk1{<*|Yk_uQR!R6&6MT+)0wr$fbeL3n+i6tc&Nb@cN;_U`GyU8?maRvH zX=r8vK=B`@HoxY<8)eo~6E<`H@{XU7HO=eW;>lUb21fI>vT+OzP5pVJftW$yx?ub5AA5?g=ejlsG;u_`?feyL#^_E!6|ZgWiLFH z)nHU{Bkl3unC-#cUr*k5xW659aeJ4#Si|g&Q01PSuRM7NXJ$sil+Qv{gej-helos# z^S0~9@;*M9eDa8_zUBaZ3EQYTh$034;rR$wzdRWmBKZ3p<_t(h-#Ly()h;M_U>6Rh z3=z*lWL*8J#n`OP&V;Ig_y1(wbwd_3@v@{I*!=xNjJJ}xq;Phb{JKsJj4bYUz=va#TJoE~@5U?HIXhdvMm7rdISyX(VqnnkBFKB*2Pawh-^_0O z5f0ndFJ(hbe>sj#id!^=AherRv2F)TB;NaM^5*TF*&dG9vsMEAT0REr|0CSAe<^<# z*#G@rkd-{NOVrb;0C`Pokek%OUt>|XTH?M0wTb)d0;MI}{0RYBz%^u=7={Tw2yU{s zIN&?TYK&Cn9ncjpo5(ZZ1k*&qxJ2IL?+gvzw@luvewtV9q4yHz&&<|r-B;t=WtXpB3Ijo0e#SQ;mQ{9NwVa<#Qy z0eZ!O;rVJ19JYxkAQENlLB^sW*EP-w$_0_6;K_x^rh*tiXmreksy+CvCIPhG?K~|a zw)|UMdE?x#JLEDMJ;9d15T6jZb!srnkI%5)p9xice9HgF+MB@FctrohxzF>AEL=C1 zOM>La5)x~IAR+|84YBXkR(q`_QG1Yt-dR8g&YBw{;c5{cx)Bvo=n8Erj=Y9>HZG9#L`}h zceF4xiN0u>g}nyEZ;GLzXu;O#Q>IimqBgYGTOM6+QPRaGX}DGRTkwHRRMx(DWwM^w zc9!5MP~UY2h$K=myVLS(O3y(z=%TSio|5b)mbpI|RfPJ!D@%<3|6^Do3bWT!60<%k z$Q@P~K~T3guE2>g#BM1TWQNO_mpIHxaMbCsG-%WG2^O@dGz~5BQgB)yOe(4M9t}h_ z=zx#N6De-f%aOFmJL zJQ3xz3`i)aS#S~!e_5mdqB7p7RUGUGgNZrgm1K{)k8rZ!*rSeBMG`cgqd%b~@lr8SJcb4^Y|1_{ zzknH`B2;}m+94&;1g|_f%zghxu{w-f3@FKqF;pI`=y(!=HerdkvzGV-21%1Rq;q~( z$3avn<}MThP>A|!pxaH;miC};h$=RCMA zJgp+8a{B>{s}CsX5!y& zt`7{9S_3%GnwTmdg0QYx`@$fP7glM9cem`UX>o6hl+^^a;(;aITnPCL^#G=5Dtndh2(9^)H-(??m0QESZ(G9V=3?2B{HTo15&YB ztd3p?S}JDkLQmsK39F;Zmy}TSYwbxn?Iw6Y=-V+y)( z?WIYy3!2u_y)CqylHL=2k6N_ETiiMlcFS`v9S80218^2EV@$>q+s0Hk9^b`{Mz;aH zt~QA#$!n$_s*}{5_ISlX4LDL*_CsHdZS43+O#&6ePAMkBy2KB%xSRT&@HIHEmE`n)JYkUklnOkp?zDqLZvN}zRa|WTr zQ!^Em`VRov8vla|whg}A`jV7H2zvi-o=qW8(qYI4%3sS+!_*_#Zv(;8=t#8tXm$mN zrdjmHXFOhLPn$?{CS0aOJ(l)X(jrJrOen9a-(I9?kU5HI$CzuuNuEiAFv!A&pqwwE z1jYhN<%j~>{s#N3@a}j@_+fQ@ZFE8xFr1)`4`MzEMUjjK+LmbMHiL9G#snmGO4Ngi zDpN_MtYs%RH?CWR9FC`4j7vcYO9N`s`Fvik)>y>SyCS7Mbww!|kZcn$qyAOvT_w>g zhj9VvRR`OXL+TBcV-7gYtw_WQ6{uD@vcME-1&&g;%)xy0Hfm`?-|W2olB+#BulVpo z26U9qtcwyHm8V;G{gZ;e7k??%@Eo$xOe;)vi{7%lD#&H4rXuuk%8>*|y;9Ui;XQK1 z$AhZ3)n6Y#4lpWE-6b6<`U1HA`1Vx2DTTp0hBGZ~_n|LbZLsi0)87W7kH>SC{Ag3( z!anXc0WKTXO!=XvzQx5C!+N*)N};fO;z|#^6ac0YY2aliVfupz^&_su@Sq=Yg(D{f zzzx=Tay3od%aV;I4-tpICJ`F9{{czgpj97-G3zn>?W~Y6n#Lf(G?f2Btnkw#fJs4Q z^|}=O)(P#FyvnBAQK$}sY;d&s}EVI=Mg!!{rch6Rj(nmG= za2R_aJ@qF+56xA#^XV*W)Bh}gO6-YxlWeU>bi^PkIk6H)Dk+aHSw@(M8zOGz5-&&F zb&x1-0U0OAWvk&D89cOv7`=&*EfZEQtSxrd;|S{MCz5*+2DKk`*l*NaXKIxP&5kOK z7#O!e8LAeKltD>HglUF9g|eL!-S05Rt`{D^0pKHzGKQ6$?q*3Q6`W*cuKfWIVTE;6BKmlpY;AXyD)3^|oE<%rK9M&y}E!Q-jPM>61B6_(6 zrCG*_Aq1s~GV@r*MY_4N)hy#4R*GS~fm1kG>2wvKp$De(logCB-Zzc!y$kiMna1;2 z#_QzT{>0dlEaW6GvP)EYg*<~1!J{^n6|w|~m=pt=S89JyMUp8Z8r2j+cWnkEnu%N# z<~tKPO`@%IC{UQlHQJhmTq`HCbIzsxl)}zAj(lY2^ub(Aw{vR6q*=%XYoeZ0|3?cf zYX~vdM1GEh4t5X0h1nae61_FfJ_Qgqjv%gf(a_FiHPn{ZsO$q*1mv| zg?!>W3p4C}x~&|y$M!4N1+?N!w3Mb36c%zkw+RdRJhB$h6g*eRR?R}L6}87gPUiGn z3wa2N3dUZlIzfIcZW)W0X{3U8_@TD`E+(|R#&{7q>?kP2DEbLTd>2(~spkaQfCn<-5}MMk-d z6-AOL3Q;$QmqPL9HHQn4eP9m9&Cu9p;<1N|R*w;fXho>gB<*8qMF}iQcaS>WDWi77 zT325c6l|;jXh(0A@H*`n}{$UC0SFSgio4W_3P-|;xwGV;W z{4rL}Lof?~Wm`NDTMYMis0VLA(w>-Dy@26ag@GG3XEHn=pS(xAALKfy5eLcJ6Qe=h zl=c)nzk5xs11uMw)euvflcbNKYM&I4$Gkgj4FF_g-VgWR1@XNo2m&D8qN_MFsA z{aF#+D+Io@+!W+K`L-3;-F^k;>&(b|KyPGI`7HL3Dg(41m&#E{=%JOQhR8W)2-D(@sX6%*8db(Sdwp8ZRR@AsC% z@Z0pdCPWdGE5w?DptjPd&$=hmk+9sI|1H4;CTi`8m;M!~+G}ddbp}!-VXwlSzK5Io zn#GiKBdEQbpuYYy?*#QT+~G-fWd{mG%{~l!!!+#N)ux_{f2UN8Wp5#sR)=ZoX`Zfu z{0S5TkSOVF^;SX5=E@S&=?>apVs8lj>>hf%q z27+!8MD(Q?AZVRw2R+sy1ZkaVBZ8p4bz4bAn5{nO3S7)L_2G5S-G8O*FKFbdSsya~ zomXGuGUJ?+h?sLveMA=GQXhU_zbu1*F!7kl!Wh>h{66 z8Q-(t`*Vk0jSk@*W8`#smC?`nON`u7mdE({Ijb~~I~k-xmw0-dJlyYzFKugjsRsVU z-^9r^<$b<>ykYnvzp7{{x`6GU`lU@g)ijl ziotJT3%Q=W(%{D%w2GbJk0g3mA;+Vfv*r zZP>RMc${}^DfjSeOdx!3%i{Z5%29sa`uFH8{<@{y)o;yPE!;ng_iQD1_Dj&eHy`5% zTgfA&i*I;DYx%Q6Jzyuqh!5idf2-X`-FcMnYArV?Po^-i{}5)Xoc7>-#%n&at$a;d@DCr{PA*fz4nvZQ z`dfreBmY;Lf7~nnT|2o-!43rLt-%_-;NoAzV+`f_|x`s6S?q9Uw*r-T$H!!AbSVDBpXLjVA!6zrlSTTxrYGd(1uXyB_G{E zt|C2t!B=&VD-=720AhL>Y+d$F0XZh%9DKoVc91JeD_=N`9pzI}i5Qc9- zEt~?dB$;|7tb0$_2s+_`gIE-b6PV^wB_UF51o=MgLbFlvA~HGq}=+^KevTT3yo9%&3$6K5rw`dH~wtNPaD2q4|o!-^ox z-ZTK5!4j>yeiP|jc*I9_ms6#Ie>(r}E*~=#TLU{GWqlp)(RDdAIn8>?FZMt(Wgqc! zJ>{*^{3p(zd&*xLq@B;4gL=#H2JcKVJMP`?+}=knE=hZScb@Jm*UBf|xbIXxk&76l zE5AAehscQr>6?3e;83}TwCkz!*ibo1mImDB^+w7wQ!1f%$}u+Fg_ci6QyQPd#@JJ& zPjQc?tFKlCPGi-|6|VVjkv~ZD|4IHrn%@U`a52qaiu^A%q7meOsQKf`f1CVBrTR(U z>{Iz?Y4Q_i$S8TcB(1x{FD1!0yvJQfzJ6H2_aw^?q?y;8tH;Pk4bm^!&S7Ka3|TsN zjz>(C%~FNMyxBx~o45N%pbuZPaFYCK<+7LHe~#fE5`b3rR@bBd%wg(l4406>B%q4z zs7KZFoG+Usmkhf3lK`n35echPMS%6A4qD9lrAe|qX#H6YMR|u(QAc^Q&^c+cyj3o+ z^EkEJ+mX-Je)D+UY4RB9-dyLlY4XnoDgPX9Pm|-NqqCjo)8xwrDRdTJH(l;o!7&Sb z#^f7~+JXCSU*Zx!^5?J z#Muoybj-a@*3MD`vA_8m?G;O~owgfC23mL#o7|+Z7f7q(&h{xpV;Kku)hK@ z1a{EWz?K*g;5Hvs@r|M@38ZX<**p4xvCO;NX_FgNpGDZV7Csnx;Td{=x49$GfnC&X zzIdMq8Ry)^+0Vo3FpNRntb2fkhkYTJ_pgF@(EBqmzRhAmfcE@C4yo`K8V6^8?LiEx z%w~R8oQS`&hF`T}a~itt2&}f>DQ@B4eE~J~>IMJl3%NnyZcKXIFn-61B82a8(xEr(npd=&z6p!(>M$2R_ICbWD`0qyg+ z)pkAyKZsS6xSu6Qq_hP(%F76e^@P`Lz5;q#tQP!G9bP$uaY?N}!O{Yip`BUqi3I%# z`*?B!4FvJtPgj4nDw0Ao&v_Vm2!-e{79>O)`>hDrHoNfaHlMl;=8CCFDE1tao&8kA zVBr^M$umt+6gTyS&u59)PSg8OKKx5LN_v^jzxz@yD=B~SlV8e_()nln&6jdHX~Q#K zcDCHUe5Yrq!nCV1{m?Edd#kAlYXq2Rg46&L?Z)cQ_|nE!Xph=*&B84UG8WKfqnNe49`WEN#*YPj$p`z5T<_tB=q-OKpf_c zsN<0DU-g=!J{ql2Z629<)d<@AuM=(!Z+CTFzT8lFJ6qCuEvMiP?k=C){y$n`Yj zX1Gf*@&eFrd%I7hzEnPo#d7YZfjSrjOktOE$_y}7HE%@Vcqyrvpj77BzA z>ul(Z+1U#~2u~~fQMi$uNL~gsr?jbR)a~=U$5M3u7cKnKQn@y{1((Sc>in&sW}<3i zXlTq2WVbo}0yPOUeV{khzkz{E*Vr5iv$4a9g%4YXQSSu{ue%(I32v|DayN4KE|(*u zCqFtLF30HDHx(lkQ&l$QEHCr5+{m|%_8E1S5BpkvE_FS_`>#UhU+@fHxk`?eem>1_ zu99ol-*g%ksJeP{1j*qV#Jd}oMk?{xG=yY%mBANS9DxsQ-;tWM9TjCFFxdFhyu&wg zqhbSo_VLO-eC5QAJK0CB+`Vz)M#i-&jeh1EzmeBV(@*g(-^w3LWlr&Z-^y0$%1LLw z?_|3{>U)CETP@F&&K&2Z*I-7m@;Gm`My@H1KhD$EKoNI8&iAg78%dVq+`R_v`#}~j zwN|cL=wucOKA$P=F1iX+=cvpq-hD0R;E#{x);VySd5l+DhdB3-aqBv{l79vQ2biiI zA5|N_Z0|9ix(+EVIL3FclgCT0qt2-Ha$ldoBm1cwvekb&YqrS!THd$p=UcbQwWP`W zovv+iVS{A&k-yn4ua>g+^6!3-t4iT#`K2G^{?g$yyxtCc&ppG3?vN)+MbGdDJLK}x z(9`_-PC1@;+KDl`=`!+Q4remFE@Qy&m=d!Z;rkW7K!+`P5@_32EwjzU-J> zw|24!Gud_``>p~IGa+>$;0aUOKU(dGiqnuj|6TvCvz`~sLf`&&oiD9>rmqJ)?L?A4 z#eJ&776O)jZJZemjy8(T(4$^MaLyz`JOLjb<@%KTI|w?EeA@|nZCrOm%jsn5VBU*w zyn=GeUp*72uV@(ZcVHs|lh<#PsU%WCI=ld{Pm z^*ZAG@svDYmQEaU_Wx1-R+7pdaOS@tSMruREppb$mS-5G9SfZqSLGZ@x;&3>`bF*} zO`GS;cSCOMEp2!37Qdp*xWhT}SGlx78atEEyDzt_9zWC9Yw8Io(*_B);|UqJLR$J} zK+$4r*zgQ0hXM%4$$Q=H0+$#5O%9Wu+IhX-nubc~ilcNn%|1X^9v8l@-b+U2Q zC5KA2ZQS$#?N+hz<`3lZRquU{s%$k4KY^N@VVcpJ`i;)U%LGLQH_a%3VUBpw0^^Y0 zi}>;fav94;go=mOAf$_sXwVP`R3&XSUDP@xjQ*I7V=ktHZ*l6Z-=bqo?L|J+YQn@n=}7QxuhZ&`!1M=zmdyXs*S+_>Lf-JdrF}Ep$fwZuv;5mlpDi`zL5t= zC)4;(Z=f9Nr8z%-i^*|H+QwjvLsMT!FtYWKnRj*1&I4HJi~H5eSxVy!s9SGjEMVXv0?~<3?Z^X zV7>q>SfhlrxVHfz$pO~BCy>61kKFX#q3u9FljdI`yGVV`V7n1a1j}G7KWw;2d?!F| z+9`HvLohFFP%6qH@H8+etqUw4=i_zpK7x*Z9n6;)l&Vs{ar~q~X(2aTAM6Z}lpskO zID*$!lnU~V<-xp$ob_HA%nue&Dzz;)8)UV{=)GlDu8C|BXsseb*FOVvL3_=4u zp*HsC3NYYclc?xuD#nTo=P^dbj+C9pjml+7>Sf_8{gps+_xdaC$TbyGQsmWN1@k$D zlsfW2cup5mZp$f4g87!hN{y7B#H~AY?g#D?{d@iYrMpLue^_@3sJU(g9$ z{r|^J3H|>{=#I|7|DBuS4*kC)@P8RU1!bShzym!;|L@$~Z5Zy*x*utEsG{x`)?G<= zpLW;6FX-+z-5n1%g(}}CI-r~GHrL&{x?53qOX%){ZW_U>x_eT0*X!;Q-Tgv$$LsDV zy4y~78+Eg!h}vIW2l(mktFBrCcXaoH?jF|NZMwTecR$hHZo1oCcdP4e8Qt~M-B(?7 z`du(L?omt$HX*>;Hy^25dzJ6ITKE^mlo$zaRxzdOkY)>my>d!fQ)6S{@k%Z%2I+2d zn|_!W*;qJ$wxCM*6~=^2-7W<5VuX%ohG42l>SeVXu#a~rQYJ-H#(g2tj(wsS=R?ap z??D}w@#cbH-n+OGRPZXkFWGQ8$bh9VlTuS+vzKaAY5mGw~ZxW<5DBYHr znY9v0x_^d;xN`ptn_xreQ+w>mwy+}wDZ@=bv$roG-c+h$M%*&N${(gS05&dwZCH?b zKwFE`Vo_oYQX32ZC`73vwYKnuA<8{tD{Qy7_k|j-vZa;9Iis|)%OJIct)MJ$5-of} zS>=h;!or7_Q|6XQgcYPixyrx=$jg1no`ervd5lAnWNV57ewk3EbwLEiV}Yu2qP@!O z<`$k33Y`raOF|V_i3HGST+~I=!_={gS5kPqy*Dgvg%d1%S$UI6kf@)mC_=M=V&M$|Sy?G*;prWWV? zFeS@SC_FWoEORhEbxE|F%cchNp%s-r#eZz$gJUID+gY-aTB!4}2Thn3%jI#9-kQbKslj3=BaXPHW@2TSsFQS{TYQ1)QCRBVGcg{R!Cdd>>CavlSHP=wh&@KeR=UJinVYPfQZU3w9sr1 zstPKfR#AEuI+Fr!!HO?rYco4jg88i~O6!Wfu%r0dcUH&5axHf^M&6#Scbf+{MB&0N zo7iv{Hd(?P;x=z;Y~fw2Dp68H3!hz8DQ$c;IoQjPglT{5lgYvSKvkt=k&6H|!8YJR z>P+MyiycJ3?^Tt+!krU+PTjP;#^EV9;E30uGR0J5PS`30UGeT_!aYtUj zl}q;6iwL*PBU>G8#$jlcSkth&&8HinrB_p`lt3_q!PI#1A|o)&4*;?o=eOWxB9t;x zoP{@yK-((cf=`K1f{On(F<4ubw}E7WV=Pt|jn^gy^B*FV*zkD>%z;fP_6vBZ%0(pF zPN?6(1VgunvY`aEv0*?j5vjB*A11KGR+^wvA}lBfPEJ9qZP7VYFw`Ul+_{k$5#CGS zha;7Wg~m<@_R7?3zj3LtgC_*@H<3!9ITlhtK7!nrVHOwGyXB32d8O(K79Qc5P+ci+ zu1E64K?GQ1Xi*wjjf}PMoz;~DsUDPR4W$UV#cC)`B*1&rP^txoSbeah;ZlEq>Dd@x^MLs?qxV|*q$l*8dqkjaeOa-uEk*?LD)82ZdPW6>9|*m1%9 zlbTAD#TS@193~XXIyH6~LcL6BOQ>udv5%Yb12vW6QJ(>dGL8v422Y|*c|1CwEocw? zIEAzwFQ!woZ$XFg>})2W@pj{+vBBIgO6f1vweU})&{4%en@1@Xq-bdGC}k_bzo@0O zkuJpZ>$Q~Ha`c#BUaYoKMfQcKX>Fxjsnf|+UYOs;LF{hxFLgv!OSBocC!_JzR!UT^ zO~PZdf#>o8PU%)@L~^{|V|`!C!si0jR0|kWb>LtCFN2P6VeCxDIDB3sUL;y6V@hd6 zjl~6i+~y&`iH}w)O0^pCkip)(Mm)AV-0<9`y38e}s6Bp>C*0=w#KZ$K*jKD=aZakMFhk+14Ll8(bWCVnUp_xZ z3HN{YDGJmOc_=gTkj;4i(_nrkMyXQ}tl5q05yfpTfTWAmLo=#j;kC)FZsFbQDJ3GS zi`52O<1kA8A}$fN8!ICQaW}svS}c-BT+PI7XN5p|bv-3nUOY0G2gfQsh~A`FB}$e6 z*b%EVB*HIZ6&ty!^--hYo~^I6kRmL+WCNvo;eo@c?zV`~r8^}O-Aw}}sbC}+fmWu5 zKL)Vd4U}S?B2d;2M%N2bfLNK+Ui)yH?;z}p#&M~Ajz;*@ZS#W=r?Q>ID&m8moSiYf_iBKWC_h1Y1T zJdog8;*}CoB@2&jEt~K?y-}PM)ANHb~_y{CaZ?8_HRDp%#icC6pvD#v>NDc}_W$?zPkx%(NgAtp&6l zAC)xN0#c8=b9|ub%R)3;v|*~gd}=#uyNFF!$pzi!dO*+e!ZLtYj%cXO-R3~h!^1Jr zkCS3|la&A$aZ`;wOkge1M5J2ky;PrrBR$nq?i{RcCL>jh3y{J!1Z8=JQ3`j_c?&y+ z$TAgDu}}+t(gH=kyBaqpDg&i9)%ci1<%%?>DsR(LsaW<7PJ+|<1B##MF!l`-hsc(~ z5nA4SGt8GS17e-OdU?8x-l?(o@dXSq3LmPC!jF^&|HyQ(8!e#--Am;#u0d>fOQoKi z3{U-5%5`Z~WnQW^X7QaW^O5Afs^mPWpuZ&?n=6Q zH9)7QyGwL;ns9R`oL1k|-@BmovChH#WGAJre7sXI_wKBGERVMM@}Zs4|F~;&OBbc2 zysBfcGq#H|M)K=g3Z(=iX!ll5V*@KmD75PgaU+0wJ%CC~VhWR=NeX4Ae+CUB8ROmVNwAn)9{#|Uo@(%1*H8a0th?=Wx0~)>)!p^af}NpLl=%j! zo5{I%s?yO=qE11mJDlM~MRtYf@#h$M#Z;xa6tItvNmUvd*6`h_%0lVPF5WgxDORY- zY;Q7A&7LjR`&^xz{7RZqIX^bM(G;?d3r*dEKS@I$bdv z2J_H#B}`7)>CNMo=P!!y{^`nC(`MXgkh{@Q4av`cPggogd;EC(bmi9~qYJ^ndCLdG z!g|S2O|kO|`8w;(P{v~KOb@>EbEQY4qu!*&wSAI_eUFLJr@AE%kZw9UgKxZVfu>wv zXttc%Xoc$8?cTTr+Ri)Lly1_ndVH%*8756$$wR(ShD!dQ^I2agDbnUG++X<%-@-EIUOwxdDtd6F=HOLSR5`km1arAUVuux!FyluCI549^%DPIMl^N-$4 zOdB8NgMaQ<)V(KF+U*0fYJsid4PI6nNjS_^3+noUDFeu7P)p&(1lS9)r9>2pFda^b z_M%&pj4O%UlK05%2Rm5ptfi5&6!gW(2^wWGvrg~K4jwsE2{N56g}5^}5nHT!J|Es= zrc$zf(o^Kw5%fL6(hemz#V&)734*?JJwyklYfyidt&UuZcn%{&Nvg*my+Ad4qIUVg z+bgFCEg0h?2Iz#iAs;_AQ>hYjWRq5@z=*4l$QZ67VP3Oc8}tAzbF=kK>R+>GyX>2I z4Tn;`Xy%_p5Nh&?8c-IZva{WP@?j1oG;l6L=<YySeB?PIIWIN?ve!J!P7 zY(;ARuPT|c8BA`iLFQ87E1gFr_#|7!SCUv@C1 z{ebV31_+%dAa%5(Un!*k=^-EyrZg;_1Gy$ZLjj_lY3x%GRxfF6>dQ7cB>_ljDj;K% z2I8Zk@J~$Yp868ij1|WxmM_7Csmb9SNS_q}BnKq4`B%#^460s@|GpgK)`Hcz{|cp;^t>t$TcL!Muh#*U z*>VB3@zwEvP^0M{liYpPU6yK9(Fc1T{@}*HUxUsKj%uNkscss4Zm0tyX z_hA6B;bqRVw{G>`GX7wNQn}_%P(s_Pro{~K#4M=CJoa^-n2{7SZ5eOAQYjf+8&_QE zb=sPmVRdzW_wBOZ<*6%`TE1nU;s}X@m1@louT*OL-hCoIueajT*GhTcAGFW!Tk*)R z6?4$)Z)Mutrnc%v2OE>>+eUXmbFRf+B)gZPq<~365b+d zv8SQiT51jb2{I#_Fhy4L7kbmpW&C zt28he+|IM#DQ<(`qgf)eJ_)|O*;-T)?ejR9nAR%g{Zh2=Mfm=CjZ(|+OYOT0zGtje zBFiiDJUj$iH6FGCWp?gZ`y#A(>Op>EEgD*{FP+ua!Or2=V6I5>MH3L+fHbwwUHDwH z0crj?M+AS4?|~bT=1uL}itpkZmBOltQB)ab@3g(;CrREv@(;Q{az_qb<}IxOKuMua>g6eHO+uW>w-Cx zNHH9CZ3Bg4ED=}+bVI_|Slzr>H#jdK+l$sN?@vq&}JS|u-c8-Ec2)dvJ|9gD*_X%c_3NvRrg1|rN^ zp+0v&yJe7n9#os^gpZnb?R&hzW)xJfnL-o|8)+gsj~AT8P(iIeBJXG;98{pfE(r6S zdBcNT<+oLfr$*1^M>k_aml4c=+pHv|v^@-b=$UmHlw79!a%vr~WahpcZxg11S9jjx z7za%Y)q`X5rV~9=q*I+H?GAHyS8h6y*ym59nuIxmKW$Va;$MC*{!6=v-)Pi_1lsBZ zd_N?B;ZW##FiD#c)vxe4i?Hz(KF>>SRn|-8Z}8(=F~z?53pZ_3wgpuBg)U9TjrC~C z%r?3JI#66ZVgALLy-o2pNCmF*JKL2w>EtzD?gwR)RN|WRryrDW4N_7zAHP%iQo4JE z=XWY4rDIo|VNPY7EVa1AzuBYAF>K^fdzIR;8%0-4^FeeLkhrlnAh4rp!>7Vs7^FZ` z%sSnBV!R}@(J!3|_(VPPGheq?nPJ$#BljtRAlPD`Qq}N1AHPqDg0p3xVu5pRpVA#p z<^8D2yHD}{`%wpMr}%>XN@;1pDZXnzRx390KldwPlGiC7d_a75JD@ZTop{n4(_9=P zL26bX7Z!888cuzIw{x%?Hvu20dRPLoEtL0qWAle zRBR{#Gf%Q8vmVATXwYi{3hSrF;yw*}R6xaSjmiNh{fWY60rg0Hwgz1+phI#gjL)aB zm@2>?&iiS|!?O5RVzKl4p>?#-h63u5d>IW|NkGGM6DXiT%>r5~7y2A2fkpQ*%A^N+ zOF+#o0o8bEqVZyhs+LMhU2Kf`EEz z-A5X3|2$COHq~%j3n((7NjyTsjTTTX>%c9cvshMuJ^4{IWaBYjC=)FHeUx&GMyHXw z0v{CRZ2<))pdfWvK#iva)KeEXYPdTDRI7`?U8v!%cprC)hHDd0O*u9Pu{3#d4mL#5-Vv1l$Lz*>F){u2qKI={)}rH_Ke-!dt;o>qEX zgqqI_D2@$k1-(s+vsXYp?R=?*`<;M>ZgPQO#tCTgT-=AjqhTJlfpC=Y;i_nrH5=aGTp``^>lP$6(Y02gnP*1YIBV$PRFANiMixjw*1=M&` zKnvv3J*45DcprDYL1S@y9x#}guOTlxjNOo6afS%>RD(fU=%)e-zb3_Y0&46opjt73 zQauf~iGZSbHQe$VZZ!e*R3Lv1H!u$r*?Hw9STxH5?5WQ8h?c|nFoQ>CfyJLOM9R`G z;-T6h);Jx;j66^ep<4RL$O)wvJTnRF) z;`ZZ;rNt`Dst>HCk(gqkV>mEH+pDCn3HDM0TGL?VrTbD2#(`BaqWlrK2v2ad`9po( zijg6LEJ47aQR>u_{IBCmHN$cqdP1odM0AUSE)92z;_fNh1!2oZD*4o5t@x)Wlp>LR zJhlm8zNq~1``^Y7!teIsJ5DI8q+bW{t|ygUQl$aB$SLJh>B?$8{gjd_)#%UjpH?nN zz54N+rb@s>n z##v>k;iB;}NpcI!X?C0JWl}d&lyv9YPcA%t1hbayvrXRoT)x))6 zA5Xog)ClZB1qDOe&+1Z9UvSXv2?{W_2mkRRhP*v`@IpVqUMB71m48y&=ELAl?OxuQ z`jb-KAQkVB3{LC$=ubEh4bE5m0D7*PR>PF6>JG^(vh#brrZf^ z|KD{+}@wN@*iY)do!UKN+wPo#fxfbCAet}%u^7LPndL=7qkswzp zCPbn`HYC?oh57Yglq$gUyP;H*wzt#dTCp(ia06rSHazu)QZq2Bok;UTxo#@N&)raJ z6~jiD_vA`KjcCJ5-NZn8URzD5K85(0n@VSIYz9&Dm-Kf2bW@QH@+IcYuijF=Fbv@R zZz~zn>T*2nj&eY{UzV$PFfU$Mme;w9@%@0Ze9&EGxpb_I2sh;8zum!HeP?McczS6q z_KkVB0u>^i7oRTPGu8% zsR0eMfS)%)yKfNTyOz%I$I1?a6ugn&dZLssp07En04z^Np1^S(TzF<@@+==Oe(RYM z&YM0}3N{*xyLzm4Tz?3w?p5`{F2yS+0uyF+3u5LJBHwDFL3`D*-EDl-Fya`q?R95m)&y>p2@b!Gr`YW*NVJ8M6aUwfw1ZNxk0O)A`(o3}@Zq9ye! zMfM~$u%(vN3L&*@)v|(j{uA3O3U1(2z<=O?X74A3*(R(@{^dmWsyEu(DQ|KuanZXb z$|9cReBVpXE<~8AW(tvItBsfQ8h>F=L-1PO`!D2ddeirlL*ZTgf`9dwlF;bNw7f}m z+mV}82sqSoR*ZP{*zjBk`DKaS6}{B(RT4ZbxujUJ$^ z<){67Xx?f%lZpvM;p!^rw7zWajNj;|%!H(#RwZJu+*er!h&C z1I|@)KJK;B&DS>xqYK!5GWo{WN(H?9ru?JSsMwL9qE}L1(O47XqEW*LL^h&9!bXI_ z)DyMGFh2E-QY-4a(H{J|I)35*!hbWA@UqqK7s5`*ufJAm@-45GvQqXa&i+xVM_qbH zr-V+Yorv;5y0JQ)hYN^Kfq#@r)kEJ!ZH`GUarbn{f3W1>E&UX;$mK<;z2nV7=B2Tyqp!I#qYHeBkT$j2!_JIY@uh}FLZe~C}& zXo8?EeV3@Ytc4&heW$yuxu7n6r@JhHXUi**g;3KWhE}8xo*FoL3+N#lw znd(LUpa5HE$ma8ntVwiPRT6gToVSurCFC6y+LL&=yGCUcF0#hA)mGnX>*=Fz;Drma zZwyYpvmm=^SmRu1Vg_9Q(3CIsXWfdpYG76aj%Xp5D(K*FhEqGNU!4J2fT#t^{SPeH z=%OWdcj|jAm+Hb-6=GWri+P8_EH*kORpYt+lK+8czs?$&JyYJ}`58Z1m@Svm;`t{< z*bOPE5pQ0UeO2IZJYGV_q}wzx9pHTeSOed9ivChf@4(juuyXk+9GUQ+{MOAE6=mEv zR!7*u>zG+Nzu6cL6GGf1UaJ@zX;{eD6hr+e)`*7{XFUpdQ?N$g$)6Nu_5E-^l1Sj! zwmjO*$`&}(RwFQS0#c|`oN>QpI)+)p@O#`w!&o_`rIf@l zIJq&{1sLQ7t6JahjiBta9LBwhak;U$ptW3T}Sv$^5BoF{Q-W&d-%0c;TKB@#OU7V0E!IG;pp&_Nsu`zR(nG{ zJ9jRrI?bj_l6;ISf_O?vX7;~Q0-w?6lIaj98&bxHe_N8hlzOecrYs^RWHS71~a>KsSKY|iB;fn7S>K`UY0&8 z^FtO^S@J5*|FE#~(%KTdSO_p%l%~Kc{9Fhy_mt-4O0zD~NVA3%5Xe`TW)af!EBs1n z_Ni3EpSLK(dKu>O4P{s#=}=K#uq>-4nF4u(vTT9mV|HFH%NiIYXJKAEl$Dl>7Uy+C zS+W#Vf^Q9FJAX9Do*E5LIC`J@W0yYy`dezgLm7UJW4UV*hT zgse4UJr>s*h9pMcP5R6ly-_r+q+!CApmr<7`-QVp(nBMUtjPLGpBLc^E3(1TLqBe) z#3o6@i&56bNcV*s#zQJIi}bxOZ&;c2wOIY~kWTWD{zN1Fif2}4`=n)ld}+>Q@{*FUtHU@K-}ovZ zCH2i|i|-~B-US{jd0OW}2(=MG=xTxn=v%;>CfBNX8okjx4E-6OGsIIP4RNAgksw>1wW(-*5e5=jN|V% zq^WE+-E3v=hL^*y2nCOxAUH0>YWG(cAou{8miNTyINu1I4pD;Un7pxV zd18lA^r8`JCm>++6kZE_8 zf8N-m^Tf{0$K#8j`0sqUE>Nv`qT0Ihhv2rygh9j@(>EhOyU84^9yMS^S?iWE)m`{#f*XBoSv1G9;jQv6GB%c7+P z3;4RatYpd+>@cH;u4VN=ZQ0AEE&8+wfPmG9Gf2AGYWhN4*4LkwWnzNXL0rj|cZX1V zMkL`G14oP_HA|NwJyGw8%`a?{6APU65h)&ZB{_CCnI6?EUc?t>YER-}0kyV*5zWr} zi9-UT{k8XpW%XN~0JaQ*GuJ<`P=ZV=B2!xXML=ftq0mHA#I zybCd^QjEGK-9xFMZ@cvwp?uvm(Pm0wKO{5jXOfFkp zaRb$H1qH+eU5ugh_IuK6j3hki)xyVr6k|$bAO5%=YbNc;=Fzbz#zDxkR*YxsAWd2{ zvO2Uhd!%c{_}x{cd5P98P>l5{=b+oc?qsM!KD(9;e{U2cKe0_#>K-5xKvKHrBo;W7NffRs^oCv#<5vM{R8&56$ zMJ$A~F}pyZrbb{-9s+0o`H;ZxXs~$+ECm7D!S@$Yct&@f#RMfpzh4_{pt5@kGEV}Y zh!4?tAYr_vaY!^FJNqlnhp%tInx)twv)o4LhPuUGuMlAu!^=0Um8Xh)TMu$?DwZ)c zxqm~363BhRZB&tx6c7_Mq7E_QM9Nw5Q~u&;)X;qZ@ayd$h``neVFOWw8p*9&LlL zs^Fj~I4(hc`l%UJIVI);GKwM4MNM4#VmyiT2n2%%enoA=+Fe z>UfzayIXp^tJ2zvI*Z++E76)1Nmrs>5b0k^bUuWbw|12i3+b%ob^?2pXh9;QE78J& z%==1oc#ID()EG*%8QPLiqJPvz3|)y{ctHstdQXYALX5VE(IAUjpRPo&)uP(-PKnwP z(WBHRmE`Dr5=dgJ3gC0hT7T)8VXA@{sWwCn^; z?m4Kdxk_{eHZ$c_q79I?hmq>y5^{_s@+i^eb#j%c;TVs#LW$1z=$2Qgl<$=2N8`2R z{yYX#CMnTMNGrEGraa429VP5nL54!8I(DL-#KAUifUtBW`s?pdqMO1rC3^R%C@^(i zbAH##8kc+yLTU!YmuF?CZgVWuIR4}f6WF?XbA_~Cs$am(iHN+GQ+d0A)_XDW!EIYF z)lniGyN;jcU;!or%R|^P-7x_a);{Cqo3kO(>wA1&bGAupagR4{!RnXE@0o95fv`~t2uXhOXf5vWZ(6WfQvN$49`5I2 zJgpUrEo;Xaga0k!5Fp-b#T?R*TUyLY20dmDcF6s2F;95`u?@Q|4ZO(*wq-}9l{a|R zc5Jk~*W%5;ZO7(G3x46z?b$`?&~;w01M8cQ`m=$n`DgGO{@~X-u!_=}v)sEQJ7M^T zpYI6cK)!2S?Fgg5n5)h%ofsBF)3f>D&g^ht4x(Zv{ox|>gR4Bg3u_tB9hb!adyzSL zA79sn)sl=?`0XyNh!nPuKkveV4G*}vD~pkr{w(oF7qEwZ`(8ezE308}@fBTR3kd$1 zpXLG-`kBfmj1Z3usbU$8TRm??kqOnedJ~G3TN-`4EroE{lo`<#EwX&pLn$%Y?QpW zD1_GomI(PGkLk%SNYyTIQ!n;$zTZfAU-8d+L3qFMYrR+{>GD19)0>?O=y#3=Mq<5w zt5~mx2{%KXe2zcv%|4Ot{OJ6s4>KAh`A0tFV|Fg^9w z7d2TAJbOoR15d&Dad^eHfR`dDn0qk?>&mFwPK%DHjc7$gRWc8)J7r8u$MM*~v z^SXoBP`_dqNk`!7`-*(aAQoY%{6jvkM7&aG%Sy1_FnwMII@6TqEi@-ysk_MCgHVmj ze$OinX1z?+u`$s~&mWRD3cbJ=4@RCZ9^$74vzArA#lZlz0ZnzWQv!>)nO5;wnFDXi zdE!i=52PM}<=;z zv!JzT<`sv|01WjE zrR`E1uR<*C53c8d7_%E{% zj$1(bTO9>TswIKl(soN+AB-2fF)2H$)<#5n#(^$jexhcdqI7Pnu9a`yEgj|JTSoty zG(kurA@zu)zRFfS1n@-SlM(7m+&4kdqpysfnX^}2kCA>3a+;w&Mq0$dSa6Wzr@^iR zrVfOVNLVXKhMIg{s%0|r2+NEQQHw0XHm^p31PSfUA?MU27G#iaIQhzCc2;_Og^wJ= z8aBFyy#xP42ZAp2l)CqS4i{bFSG)MLG3-F2O8+ySpfds4{~yv3bh>9dpM6FOF!38M zjbn?XMwj{0acsU+Y89_O9^Zv8@zdkk*V2lw`G^T@wN!jFFFuhqD1Hp5V}!PU5^u=C z6SQk-fSIw051Ytp$`kS{yvcgj)cIf{8)xuex16ML6mPjwLG9hhM^9$)Qh#5*doo)p z{k_!LIfcD8RNeCxp*1;fwWm)3HEYH#1&?e%ppG85#0AeC&q2nCj()gbbkjOMWh#4w zJ?JHX);VJu>w(Mc*6{nOY_B{)R`}3uuu-E=%}Rq72$mP7v#rus3!U53*&hbu zhWVm|5>TIdFW{SIuqIOUH~g;|EYq;Txf|~>D00`=GM_Vx_293(y@Pn1gS9cNcFw^W zEX6qDIh`bWO4&(T?A$Yl)ifAZIv>qtaR$Q*XT*H=lPrbJB21j(NY#+n9Uta zVe~Ga!(S|A_5fRoE+dEX#zaD*Lo4&2zTp!ByvrCI{J=8Sp@`oD*{iujdFVm#eab_Z zvj)=fnS8)<)>G=@;>VU_)osQk=ZqC7K=frykU|pYw=SY><@pD_^n- zs|lsPcOG8FWP{Xf9MAfO-IF3WIKTgvJ;PCmF?`i(w%G7BueS!Z=6Vvpu!b#`K85mI z%T`LglDKIdI+TS|`L1=SHR(4{u4Jr5XgMTUC$8;=H4H)U^m z$m-~LP7Rshth$8_Fi5+`@r7G4EGu%E581}bNC(IAFSoJUhMhcX8(S~M40ev*PSvNy zKuX$0)yHcPAHD+yIiAd&JJ?~v6zBMz%v+IPpUGQ&-tJ+Y3=^Ck_cDuO@;RZ2dl0Fc zQ$w7o2U$IXVT|+8A=b!XNOH=D*+p3z)1O~Cih9}WFt;2-B@gJ&YaL^Cr2>bYqmHqb z2I=8eszH;af_kKqPiahe^IyxTYjo`E7LG-8*QiQZIax~LJ| zdGI+l+K|KlAHJ?TAd2JrdwbmOiQ*yBixg2%6u}A+6%_PPu=n0$Nn!(yv7k|mNU-a( zm&D#p)U%7d_ujiMV#5*(?f03TJv_?y=N~e+GxO#%ugt!k@@CdWU3sB=f@$|foi)_F zDIL3{`zVwfYubBRcTFRVG19E7x>?%!t*xkIJE>vu_Itdb$#T=yH2fN5(4B5yL#M8_ zp^n#em9?}@O9$IajtEvaSG+Nuc&YO%^R6WZ z+T_;G2+d&|nVcfr37oPRZ&(bv1+ z-{eKSJrnLvXNLwSpXs!4t;8uzxrQ{n&3a2VJWv95hXPr0amtBR^obq;8#Xrale& zh_#_jPjogehpY1X|7^ja!L|Y5uJdu&22ho*Jkfm+8r`FlPjz0US4xVpo3j%G>FZN0 zaQ6u0wOee?&L!hjozak0+d@un?YNwFHL#+u{l4q@pa#_XIpoxm_B@B4J490G3tbhh z;|eYH=np+lcmX}1(U1(IZ@d(SboU{)F2H$xb-rMO9Sm)5i~DN7p&Pq zC)0E-gc=d#`cfAoI4-6BFLmL<(P~^?ezmx~N=2ai78*aTq$;nds#Gx@@^betC@*U~ zVeZ@YoMV^umuwz*l;E~hvjGDnL7006`0tBGcmp{-Fgisj#y~P z#CKuT?G2cCG)!Tl<~pr;qx05mr&DiqZ3NE-oP`aO^09Dxn3;u@7Fe+Gbsf&a4gm6< zg+JAy$8W*Hf%7>Fo$FAoce-G~VLqKo!=N$e2io%vJRCu!&j1g7D{~(HQI+%Xmml); z@QqI8;VOSRl>r`(@h-^2fq24r*l7jlVHEpq=3$7psnL7gc#W{SBAxsIx2<{$rtW?& zFU#^;x0kA#j))iCv2CU-ZTN_3it%S@+9zoGeVn#}--=E9%6^!G9(3@N&f9vi2e19- z64T31x*3`_zn^8SiCrrvm4~nNb#iAu$- z01t7<(IHI2&FJCGYe~wuGd30B4!x9}?~%A^E9eWI|EzQDXq*p#6_3WG#Q6rrCVi5f zzY}AmB9d-`(%w4Qkij;@F*0ma^v6m~B;3N=pMk$O!d^waIL;v~=x&dCETgbSA!fxH&L%(dX=N|Huzd$jzq@CI(zt6Idad{buCi`50l6E+D;tf8-sg0YmN+& z=+9i;pBkUJE@A~u(A;p*TT^asFKp2EnLAVTb1cWGd`-8DVmo4S+TddFWqC*i8keQ3 z(8^zgwBY6qK~Ch0s{r_T-T@_mVP3L9X!^@IK ztvu=MH(eL|$chD+RHlYRVVT(e(zYy}%7iy^Ab{RwVu&m0Np@MfD#ASviU32Lb^u5r zZh84|Zr#)r$*rMw7ToHCANje}iap84t#DQW+zOgyYNQd5YTCR{RjsF^YhmkocA#kM zNyOU!|FoXvuekN>LJ&tw>zVSM*mvs*0Hq?Wr^&1TVLh4}bWSU_uGA&i+&5-D-B>r! zuX@wD_0&VIVm(o*s`U)85<6%&IE!@DO57`WM9~DDSYIevlMd@dKjFhuO4o_*&4Mug zrr6lxk9_(g5U5%f16yiRBfp|xWMa0|8}Dt!mYT$*tmL+2YVE_m#@02awxZ~3R|W$s zyZk6zF{ejz^-xL{#V*2*hLk3Xp+Z%Od?m4+&>)1yNMd>4&W+HJ*Ld9gQ7n$lmqi*( zk-oS`N40{A@8we=bW9Qhg;TYe>ey3py=dn&6fRpK{drY~s_DfFt&V;}XY#D=CvI&< z*#;(U?xS1`Kl1C(o62S$o2~6Go-jV2ol5KV;vY73?4dQx8$2$jzN7P2;x=JZIA`tR zAkNx}52>>?SR0_Qb~*mYo!;eV?QQVT(gs!5eyH@nSR2}qv-a3Wlj@LknM|%W;?KgW07|kEli{K|loI2Gzbet6rNmeYHHd!m3}UFZcQt{Qdgy$q zhe7le`uovjgXkmJ2he(hI8MO1luEXun{XqL8rzDeHJM~rS{y2@^P|MlqQ8*fM_WpZ ztF=^Bpa}swe;RKmHqg2TDZem4*@<4lT_3V5BgRK}^}yvxhB>K*ovE1d^*@q#xaMj? zcCPGKN&Fr#<`tqL9!GfuTCgm*ffdZDXu4QN^w9`iJWL<$#UmQmxt}zcBF0Wfe&&qb zP0Gf3dF&^;O)Y`$ZdQK!jq%I~l8Pxu>|^o7D*MHd?HBzg!DkcKgC4_M4fV`3jPvkJ_C}Xk z*E=$fm}eMcW?FQ;K7KIh2S;+by!B)?zRG?xO()#M`WnYtj%;d$&9EV^M1MB9DwioG zlDmhv&T*tep}aOWBHi&2?`TD9E81OF?B-hDp1qaYVD>#Z#@8#4NKOfnf<480Lf6tX z)Kd&~omGaF!!$b!PTL}{+#r-Y>M7RMW@7TstEw1jx19yhvG_o!af5me6Q^6xRs!MN zk|z!$+aS?V7>-T&-eQJhcxelizbZZOC@zwnkGREgv~8ih4tkMp_=vBxU#+a@cscP$ z!C;`OzM_Lx7Da08D@F*BC26X!*iaZ;iY~AWBQjp#f%dX!MODfJW3reZV~NW&C z&!#w^q>KsT4C@h3IQD+MIrer>nCg_L*dXzeLs>yZnE|Eb`jh#Ust1dk9J*)XIKo@;Q zdm-mP3aTMS3R6DQ-cT{ZF6y%-^e^(U!%U+#T1%MvWCr}XD<#x~*1x#Nm1lQN@tVWt zEVlWdIsSPKCV!;AYXSPJ%tBeGK2YD=V=%%ZZ+oaw+jv-c+N%(EXLht;1|#NS7v-f!tl9VpU^{|aTTd_z;i#BSQiIufOa ziG2-WCot@-iVDt+n)II`u_cAi5M60hT`|OE!zb3ELL*e4*L1orbnFPmk$PgNi?dR! z&;WJm6?LsA))D5MpoR6shIY--&i4+=@`YXWww{>c)8ZT-Y2UTxR)3LwsmhyPH8ZyvO)Pf}(Fm`qxvc+O$7S$6v-I$3=Rz;;0D=ezV)YZsDwOp3^50%P2)`?NR) zuiy;28zV-!)KNMXrWQfRI zjfo_Cmrz0n0m!KT;gNgH(JEH;c5$V$3KtJ*A>my~0hJ@SW^>mW3V?&Fv&M z6V|PxXPv|V!5zohI*a8spD3iWSl@fcdUNY{ZWKXu-UXW9Sqv-J0mYJXILt9c6|8-M zK6e)D3iGd0tuCUm+~##=x>vCaNCC@g2j%rE&UjN=p;lfpo(3^0Q;M3 zS;aqn-(iH>6Nvxh<7=sZSFxBRhq;3O5U-u?|b0RM*79vuWe(5iIX@4oD(wMrC ztOkO{+V(1q)Zb~^K+tggi__TSUx)@GLJk!Dtn8&T<{`Wvgn{8*j@n1X2a9{`Lr)jX z8M&8k3>F^>x?Qw;h}hlv=}FFJ{xx8(Uv>`#4TZg&K1feTi*=opLgwMyTxjxcIyqDf z7e4ML>tPrgHtn|bBxJctB6mdpT+W?{F<#u6`)N6I=E_pgaPf|P#xYBTc)iM1P2?FT zrrLWH%IUn5KE#O`!p(o^dA!(PvzeNY5FG@0JM|lZv1{fY+B8CJk`b5xu`uD zT1K|vb}BJaY$R;hPOV1*ZJ+J=(LPPE_#&vYh(iu=$=IQKP{AQwIy?NZY9KZ(#r2O;m9-*dKSGDE4pOLd!>k{hfAD+)y!0bCxm8qg@iuef`WC9BsNSM|)=m_w`TyE!B+D9w3 z)N-|0ftJ(|UG0{xwCuqbx$F?`^7lyQJ!nyad&%L+OgnPz4{j|8F?$8IOak~fTMFh> zUO_%n#kazSB~&I^{L%6E&4sZaSVl9Fq3A!Zq8rI#Q|H^8c$xgz?U&IHe**iMWtP}O zm32b%m(~|~_dp9b-+nUhfR)HQ@G+6A_r?_QmOX7yu|6^je8*y1Fpa7A`hqzx7SWH> z#qL5snNCg@2MC?xsQL`3`P6j`soA49(^jXsnX4_Kv+-dI z(X!bXcJ{9-m~&?y4WA?S652nZ8*{|5LdalhH&^U0bX!R+M!=!}buL|>3$b`F;^WWm zzl##fl{qwe9>$+RgXzdTIQL$I^LJx;kMGXCcbRzJmwz)^9P3HG5ApV~oRRoIw@J*j zZ@j`1D;s(G&Z4yW5Y4FN1#@U7nHE4aj);NEL{nlQO?^Xk3Qy?(F`LccxeE9$uh4piH|{5x{#8u5Ys zvY7>e?*E-;u0 z8!)n+p2o}M?*d-Y12>=xV>d_u&0F`<(ZqWDn&7gdT1bZ+Q*x zz-lrNz2l#(CGL2$5eF{196y$BZ4x_$d~L6mf`fi9xp29!V^sfquBCr|%x&+VN)emIGMdp8zeSAl8HNnA_uFo2;pT>o zrn?{@cuk_6a4(#PLZa1dw`#|Hfl}e*|RjR)qPV|80oJR5M zg=jRR`uou3aeF9rfY?ye2+@*3!K76wTnMCu13*!+8K-dSY9R`xnwe4$h_kf9dOvD& zSllSaAVSCS-)<1%IY{r=cA=zVptAKGxR9FxFK(DnI^@DxVR3i*ID{P=1nk{6`(ni0;B4 zzBKZTSk{`3@?wMkqh)7A&+_$9EGg9($^51^jz8B+Vm(r zIfD<{1AWN$tk^*~dV~g^6@L?qN9g%ku&d`8vN?x^mt{4n>N#<#Ft`z2I461vWk1rp zb5Mi(-sE*22wxuJO&|V1m(Gih)a$%hruZM;fH_W{@qxyj2jkj$)4KD3*;g%FS1IdT zK|(RWRMxjkAcAF4ILjO&w+p~IxhKc@XDY+lnX)ecjBP6RM*?iclN5Ckzx!8HBw?C- zQS2xPDaTBYE{p9n!l%6ydKDvHvp^buRSXi`1L>cuP>qjO==N2N8po@c^w&fiL3^T% zj+}3Zo5h{BidJpCBUTZr@1h5HL~KI3DNYxDG|{HJsCqD!%U)lJ%f8kvak^+Kr7O1E zp0?Z*D+#rC(w%$I#lYKG^Gw=7Q}08go*m#i5bV!u+1wGAXouP8Xwx0QYQCK{bXJ(~ zFK^@4KHi2;1zy_yo|vK?UP4D3?*Ufpe^>*Xgq7Pk?P7a5?HFHHx-7lBFSgOnN9o27 zu&g?>CH?$BoGH|+!SyWT5!bT=21U>k-$ppA3qg#XsVD*4V)Hti4*S>LW$Z zY;w?HRnK~dQHe)bvD9y&aZg2Os`p47FZ{BZQXh#E^y!;m$fmYuX~i>0DbmDL%cc0k zNJGV_i}EZlreWT+=`m^;g1MRzM zd+#1A>sx9~2@5p~ z5A0`7#kHf@g!<4>F+NqU1~0_`?G|U9X~;|Qp(Y`seMGy6wh?XA+kyR!$wRRfX{a72a}1N%>aj7o zQcUu1`k1885&Q6SeDr=yXeF>ot@M%xTvwJn!kL}oX<$t5<{z8%B_=d8#?a_UETUTA zY+o}k7F<8vFFO}!l?*XB3KRNdY>AlA^l>MWZYHMwdMLq|^cf^v5J4IibTd zD?ENqS?{oHdn%Ft{{6NoD?_x^+O?P7)M^k}@!g&uzrJK1@a&tJ90dusL{s+Q;vnrZUmXn@ty>k~R83bb znV)ExlxmnXhqZ>y0>vuk%&#}5lO~^XD zevIFb&{V~*I{SQ20?hDwXypgC_i0rHb1O_i05Gz44lNp|bJrx&$#3E+ueY9fZ?V%C zC)jbPh}ZZY1~+A;e_!PZZz&~H{8xL{SLKS0zf^_>XNe7~4n)O*Cv!&3!YEh7$((Lg z;8aY|xp{~C;^`B9co7jNqQnQQP5US4TwOoa$jJ?fN{#nynjDi2 zvDUZ;JjLW%j@g(7(z$6b*2p2l@46niJ>_Dy=uoFUG&q9Iej6rDX2@}bLvDz(b-byI zvLEQNhf|`q$^jP7JwYe+cU^6lYt>nUTjN|~l4F;%S`mf=rR59NbI5k0?rNPcm6+TN zla{N*v7R75_5M!(WHmGWE%I55=c(0l$a9jerpK=+5E8Wo)aS?RqH~X@?`I9LhUA~C z(WP85NZa%eK{=h&%SmZ0?iZ9`frMC@kHMgybSvqE{0%4R*dr#&`*<22aw6UaS;pMs z@*Bi?Pv2ot?Oa~9BNo+6!E^tR=6Th3wG@15nG0SCXAZY3;w9D9NdIcxJypTqs{+A$ z3etOzrp`?8U$MJaF6M$Hz79gzv3>mRU`v5osittN0`=8Ot%RC^v|B4x)L7FKtyJCN zdX=2qiE{a{HikcLA&@-=rmUJG1z1U;c59#W_Wdz#F}Kh7ltx%d$L+$^=kV*5=kK0S zGo5r&BbuB)rIk+d605kB+_soRStwnLi_RJc_janK#L{mwB06U`}o(`q(_K0 z{#iZ&J6e&V3o~ukOPjS#Z`&87VT778c_$%|45M@MH)hN@D)>m=viM>?DWEwQ&@Vk3VRJ>BRN2Y!DfO zK_sX6$k9=Qo?2ry2?NQ0vO5Krk(@$5B48faQxA`2*``44KP+pzvD&OED|&9YX+jyP zq{ej6S@}S>D#Pt`E~}|Ld0)JsYU@pW8d*!oSm(=S5)vwNW< zvT_m4tKv~3w#0iyCw-3YZM8T$x#V&A$8T9w`mD~Kx-8Y{ZNK0%04(aJP)V0^C~heZ zajgBBR=Y?iwVM&SV5qAUCA1T1m#gG1I6KjGSE-WEE61GNu&6kzu;%f#V^W3-v7w*h zu3~4p!1vF~XC2AMO*$#~=;)Q3oG=%L1lxFy9hTscq+{G{W?`D~O1@zd zyWO3Y_%skNU`Ve6`*G7oF|1>0uwNzjgcTEj@>bpGkdtdTfRor6OfpOHi-|*NWySYW zb?4%DXdk-b`AA-i7UO9eN>MXD=x~VWBFZ_(kH2|pR`>&`m4$j zxF~I_x}r`&@8o#DqP>&zumkTcIyawpUqG6@Tusb7Ih@0PG4G^b65NwR;CVNc)6Pa> z%od%y$K97%I5sZECWX~VcWRm(313C2ZYvK&ksVufJzG`iCKPeDG!?NzREK4rGFHK1 zdG*=c`b9YvTnDLCw7XTlVv%9W&Zhobb&;+;P@-QbToyOxRIp|v45rd@N8}&hsyiRn zA=e5rG)z)16#*sYvP}B#dkY=1@> z9hB64R4+(6VP`tPpPL<&ANP?{uym^Un7xb*SdAf1Q3|E7-8vgn)oPN9#;462mV^0Z z)n_rK%G*9J6{BCwf%%NX-Ed&a()hi) zZgjSqRF<;#>Ksg;Ye?bRW_{BNHEvqd->xYdi@ z>LF-rZYk2Qaob`#QdcUW5vHZn#d?xMg6Xl^1Mb_fQK1hU)I7&#)S%aSe$65y?+V+? z7ODA^w9)r28_#Q`D>|z9IsFThbFd`m0&-?YCkEt9ed-tiZ9S*d@-Zy74zXv%BpEA>s z4T(AsPur}#qSEB6dBvFX!zc`UN_QJbz6m8!9x7sF@5>$xRR=lx1vl|kD9WFV%&YE& zXE?8tDqnrVB|ko|P_IZB;Vw*PDV18tKA@~rXU)|#Q(!#TGmH_T$KpZ_P4bFcnTw;e z-m-K$TIz?wHYXXc4?2?ZanQH2sXuNh{vVrgd(sxIR9iTAn^rWEJcOkWDYcOl zAPjv-uNz5TLi2}YXe^x)=G>y&jWK?den8ocrLqYb;0G+}A)@W#yM6dAm9gIq{i0I9 zFsYs*?+m#|efIighZbesW5o)Ory;fq^LykP=ITro(gW=1F_p=a(`OJ;M1wOM8FF!6 zw6SjoR`wP0EX&?i%Ni2l5i!!niAMzac|Ev7Ce;;UqZgCZQ6{O9rbkBR3N5%?$Q5dL zkG@1pkDSU_72%VNyKZ{dL^`Sw`d^@(F;Y!e&9m&>u<~)9;cV0H6_8eZxUcf=r=*LO zDhqp`QuSD=hLHG_erO^6NEc(JQyvq~F`ZC?y6ifOFv9#R0Oznz$X_1Q&Sp{*pDv5Q zSaf>~TQsfy6)23fTL4&NIl;0VxoIGs`7AxGty(<%mhdBByC&t9Y7TS^^$4lU*wG>41E z5WJPLTS^s#uOF#=E9s)Ggzv`j<8T!!j+1A|3+|GxwG?7^&>c@l;i-=?DF!EAo8P78 zttF$jue;8)u(ecMqYZG=(bYCm1+9QYb{ok<``A@S9&IIG?Or4z+e+Pq=&RWEC^a=y zKF(m{5Eu&y(0m!?ww3&}j@}|wY$rVz#y+Le?WM88=F2prz2sVE7W`l=!}&J|vGR$x zVP-Ic_P3YX+Es$wF&1F7xz9eg+)icF>+6U?m3xWmcaYr6WduTV#zU1@?$whD6=R4H ze-*!Dl1I0YF9y=M4pI&6)RWmX?uO2dE}~lb^Yh}R+)(RxezBrA^P54KJEI_b;iL<@9zFVF|r#edBA+40k zhDmP_Pl(lRP;}i5*ZIJBLM;|RKAof%9;YwB=LpRmZUsBGjtU0OMY#tf1IN#9u-Dzsii9zRKb^jBxeS!i{Py8R@1(w)wd zt1!J5E%-@tBfBorFNVbjE#=z_9NED}Ja*fepK8DX@r&n0oZc1gtB(ua8 zRiJX6q~;z!p!)w1nP(~&+1K(#h|GQj7uo!t5ZRGATx8XHL1c#yaFGq_1(D@eRYYd` ztCuuJBjlLKs}GFtiyh7r^^w*Jv1cixk5on&UxmcJQjGRxX_4CYmF8+XQ+i*#JLV*k zbwB9`tMJNMxwN*eWHh|O^+tJSdSNCP`v_Z+PW5AEdXKjK2r~^lOhNr6SNm4Gx!C(P z2({|P?X)>{>km6!cPO9OZ|};c^Dhuff9xT8)E{=br7Xmbs~i+7n6-Y0I+b<}kS135PW>+V%FIey z;GM!=Q!rIis`BQOH|O zA@FEa%_s13XQ}wAp~4A(vCvxm>30RpjFE&p(Cavc;LY_lG?e-{z!7IJyNtq8fib|UWq7(mx-Qw3u`1cK?pLXLbFOg0uFxJmYQvJi~8hdK0n+Fi0lW(-b;fT7{*_HS{nJRu>|OB*jb1o#ujV z%Kb0w1I8cU&@d?Zq&ppmm+EWlYs7gYq!a`KnKl9zm=TA)cKGW1%gyw3ghZNJO&Ggk zcgac^z5;f`FT0!4!$UXDlQ^W#TSH^XnTmZ{VKU>!$(-rh0i*N@D7f6@mmC? z@c&-Xm=bl72c^hNWs~eYCGZS?jB{g@A1|;<0nlp&PKPW$o zx%7Z|H=4F3;`8p|D9LE^afPa&$7Pq%RP#3}-p!6nP{(u~0nyOV-$PS%aeqGP{F z{|Iw`rctA%1A;D-Do+8S_G2VlZPI=ni-q7~nm9&kuMvbvba$-OOz31!mB&eAY~q&W zwNvp|-p(xW8=6wMov)uMDgo^{44|(GXeSXnJy<(8#-p82yVQ2H6IeUHCs3E)(avpy zY2)wGK}{{Vph_=`&qsp=1TiazV5hs0hNbzIA>%gnX~}T@D)#{0}*N8$kAn zQg!ju3g$CYw^4X&$0bVTTp2V7|FfQ4rb^>&p3Kan(P1#B@g<#V zC4)v*S9+fe8o$4!jemm1$ekuBh0%C6oT8_J#%nG1)nct6bP|=HF8wY%3!`<@rE1z! zdL7-LE;ZMVL?UR0G|&*eTvtrK_W(_$=yD_-t(zfv8(i4KP5j|`JiLXH+Gr#i&6Iw% zS-Mn*xrQ%n0^siuIx|z+CxtCRg&sfBv{_Qanwe{?%xBHnqAm!p(_wBe^iW)BEN{Ov z9Ez|_Oij?GT|qgl^ddh=hmAtBr7GHvNYrA9ib(XEEmag=htSN~(gI0bj27zNqu@DG zZ%MvwRZO0^nikEGI=W7&ttcPv576S81tVTfSkyKmo>pxtHCJloSsD4p1d!A?mzrtgg^CCJ&H}nrvg}fOo^))jQWxf+>RFDO9gXok^N0EU!UtNa}1e zWIl){-DaZ_;{LRoFVzt;tJCcH(&*wFNFmxjn4A_!zCz3DRCj?CCshB9{#_vX`JA4I zn#l-vc>|%15%J|r45qrr1_1$!)Ot(497tIU@X^$#8dX{-9WS+gE>t@7B)W7{9uh)1 z3#Bi@o00TokrYuOd=B~)2(DlVWAR?t09Khja}8wl5F_)JJh(D-UyQXmD@s}{U9t9< zt+3~&EK$EDQfSHBvsg#iuE!%aX~PnHWgMMFC6`KWLR4j{xKtuxUllsM6vL`V9DQAi z#l8h`rr2fDFNiodoc1r5TGX2`ooNxi3eL!FsxeMtHa&xb>4z+1a(_9d;~9ih>^tHOqNYW_QNTg&p_QT$q#|CY+HlU@l|22h#x(#SFsCo={_L9bE~BMFkZWS8yCjeDr%&spR;7+7et+iTPi;3yiKXJ9P4W`NpT}6==!{9;0M2_HNAxik z;lv2Nu2vV`0_6OUA4aYeUAfLQdNV#erfrh+)?!s<;K6h#E#D-$+20C7*_2VvN|bI~ z^!rtA9!M89N#%sUI-1uY7*pX3;Cc<%`#--ZrU$<|o?rkL1|L0U?0W zd#D;vR-QbSF-yA#o?>4M&pB+Rq_(_ zRMuPOs%WfO?m@uhXm+raf@TAQ4m1Jxsq=QAiGnj+h&SPvIhx8GO=9_cX#SgA7|nYx zwD)r|{<~?JtD?Eea;F0(N0Z1>3YyUjI?!a^rQ{tzWVzk{Fr#V9QVN=;NHH{L?$F+yK=Talav|P4ykORw6}y0@ zJj8B+X5OU2Xl5Z|m23mP%fDLYs%YX^ZdEXi^QJsYDQMgnBY|eoZAv!*%??~BTnNq9 z^Jcx#>;;-n-uck6UlOO0h6Qo#8L{HbOs%0aJtxSH_#;R zECS8=b7s9!&>VxA3_8%%xk*j; z08Lx=&0cW4X>r!9H^KYBo4F9X1sZWeVKjmp+8Ya%k>&9gxhk5cuEkVqmQv6p zGw485;s%Z03pC}o7lFp>j9G7b?gyH_5W5AM>j@U^siWUzgrAdR!FPF=Wv+^5JIfu6 zPH;4RSxQ0EnRN_k?p&h{`+(-tKSiKjFE~awEBwmgi%I>;ViPwZ0SfE=y zt}wd4oYB4qiW$_rPA z)9C|Jogddg4C%e|-VDxT3%73X1p3p_Q~BE%i(Iw!{}Aj>-Ue7{p4d*xUI{Dlg9BK| z&;o$#75eF*v_g|WrBWp)TNxxsR0fm7+OtjQ@Xr8GH?aSu)AoTDj6rBH3AofREDDz!+s2@WJ34o=NI%$Z>6 z35|g=?nH2hGhq}28c~X!`zXT6;qJEy1-v7{KPbjY*F1+(VKY=`9+5HN0@c zvJFW021n)dMdY4lxrtx~Z+J9IDGd*03_`;hr`Wj2wz_w~1*Wv(q!g$fYp|lrC#CSg z3!zi#gJdm^D(0rf_ey_|$NgeOw3Ss7ZH)vk<;TM;aH=f0&vF-lHyp`ymQs);GJXMx z?i5WpB^eWXg9T{KG0!el0%xF3=>v@?8tR#%T5zSBWozn~706m!2jsjd! zAv=mR=cI~`z4~a1rFF&77n>4`SpsZ0ZK{{MQusOPXS`xIpOXUmTtP1_utok-7+bg= zt?xxkas|s=6`K#sy*Jp5?FvgN*iIqEutguGy62@eL2G+4t;KS5D>){4Wf`_RH8$~S zyqlc691$AX?7v~>#s92Ydc|RLGVV7a`wLQ#oBWdnAhpS-BAQ(G3w6IB`4|IASQR@i zX`q|xT|r0W`IdFe3}$r;Nvp{W##1qEzqegEw(~SPUyV+yJfD5eH_aT1;F%a z3`td%QrK0Vfd-OQsr2ZQ6rrtz&~oK3OW_HP!Qk}4;f4d(<;7s3Vq}s$G%FYuZwW zD^l4$wItN}{_0!Pzc7Zs1+-H3XZ)9BnX6(*WVzvB564i8r4$U68OwlS;{m#TMGCNX zLgz6Pp~s$Y!&S+rTmZnc+XHc(CKvb-aFIFV1q0qFdar-@{T0 z`mL<1KraOCrgpcanNAM#ioj^QiKg9@8VijlhzAs6xYe$F%L$vp};`1?1I%tm+Q z{+79FgMC=8XD>A4#|9M#mck&4Nhg*vM?Hm?th7FECzEA{i~$0_ZyL$*uH+)5WK!^5 zsaHZr97@L+bB8IAA_BDy4OArkSRTk>-3x>K`EJ>I^#L$ z3di}8r4*bt0QMtWjsly0+(DlAFpK=A6^*|qxjNZF&gueQhK%q{N}+4pY1=)_i94x< z1|j5QULkB0Q3?farw;d}0XPYN_&#PRm;FmG?n|Ae^{wzq3OzxW9!ri1v5=aD6b^JL z+`&D#u1BtkF38I*bJY$mX1VRVp(lzIVp&R&LPM4^OJOJTR?)eg|8Oa+R(?YY_a8`q z3Jt!|PYu|3W<=)SxSa!>@P4ImB4HN9X8}vw!2*Rkh~{Ph#c$}i{H(o2u8Q#y z%Uulc9OEpOQZPrOepYvP+SH zZS6*mZNBmwy7}sv)LPh|L=n$1pFU&-O?x3lB@~AmSb+MiZDCL&-lEwIbYJdbnX7{8 zz;erglN?lWmQq0Fq6c}PhJEFrhHc=WdMUpF%IAd?E2K=Jp)UX`d^vS{j=ginG)0=W zw-9#J0$dY{I0+?d^ad>+LYL*rZ7k5Lc>G!J69DCSZn2bt=K@QanbhD5$J1avMaodJ zE`NaBjR8d~nPC~dO_LgRSp(g$faBcSqIFe(_J|TJPX`a=Z>=nHRc!ygLhd$z=GfM- zl!9$Z8|s+`o3mX z>uEX~?hb*-r!8|;SjSoJ1oVc(8p%=$te;!c%$I=ma1E_~DOI&@3d}wevR3O z<0B%!^A%29O0-^{&goplRZ5gDRSNCQe=qhZszYuS~{*BkHFGzUrUt|W~0*< z>_!E}PqXxNiXp19JQ@lhKab_PmeU)LUm$l$b2GbVvy{T_B$hI3XjTT-(5%0?#k^8} z-!z)$zmd8lG{g(~`c|qYELclb-r?(}@mflFCk-kUS`W*EDQs>qMR$G;t(_s2vtf_A z@<-TD}nt3bTa zivQmz$5;GEts>oQDNu-BMK#%9msK?P132yRln#Bsa=+sbpl>sldVZ9Q!th48b4D8F zy6bTk+h$T|rGNQjs`p81RkjQA|JO>t^WU`jlXRejdk9ub*+PF~nMVF6#kfCcfCniK zNAXAY(6T+vr=YC@Q z_m!rL+6*w^E^YdZ%>aH6>BMI#QCR+fnthQvmuyiBWZCL{nyjZCU!*W0^FDp}A`K|M zq^3f1z+LM56?*}C->2lSQa@p~i@Fz}1}YZZ3$Wx4+lm5ex8(P?DC`^d0!+F`1HZAo z0M)Sao@(9Mbbv!wcdt*W6@ExcLu^4wit;&*0 z3$^aht}N+jiMlwgt}Lt9enfv{OCcq{1+o6HJpmsc(wS^{b5Dc#o`A#~6rF=T0a-Wc zagG$E5vWWq#9Gnb)HPQM)Cgbg=BDUd)XS*C2;5*h0?!qV&1LZe?P;5+O;jsBMs11qa2v3Gi~pl@%h zXAknW1ju*jx}c8>`wNr`Yzep!0?X`F7ylhYiVa4}mVhZgK(XO(k5~TQl8a5}TLJ>F zno_lT>0+LPnQT`VhO2iuoz}Yv{ky z06x*51NUGq=S}9$gXDM=Hj}hc03VUVI8b?C0-d(gmly8&QHGt~1Fo5&jJ}+((2r`A z(Wm(ztdMWCW3M5MqoY1C#nPk&Utq7UWL;=)in7;x*_lup+f0Kmvw8MIZabIC@FYeL2ks8sG>5EPybc zejH7+9Q8j4wjb!c#pCIt>9eEWyWIA2jCl%@bxJY=OHX(mtFtM|y1)BT9Vfk)Cn5r4 zgvxE9Psa$NlwZakp#=jgPfhIg?xjJ&f-yI-c~fCbQwNnX?YgUsso$M5W@En7IAgNj{ZGcMSj#Dt9!2Fn!I*cnzy$=L~jA`+X za@b=QGZ@Wv|CKSu$Hyy=FQb%XhFtMiOTJ9(O@mzZUhYb$;e31GYVNFBeod;cQrZ&7 zIOb`K>J|*!mBkq*BY0CmhF!%dZ4CDN|_>#JLeSe%gl-hfM zU#@xla#4~Q@~NSg{A$>h&Y+q*qn4jv2DO2Np(J_hBeYjttf;BCK0vz~iBaDAAuSt% zVsz-;;RXZ=@Wmb2dijzwoXl79p0cdfBl3GU_7{uRtm))Z@;}ICv!ZxGH`2><)KX{F zQZYm52OoVcr!FXE4E-?dtufi4`u}N0XDj-{M_;XYZptX4tV+(f7%02mnq2>nA24Zq#G~PABCp# zLPJm}g%|QtG$F;If$}rK_$x|HRMPXuvx%A%k5RlJ*4|)WDGptgpHpTinKpfR(fPb+ zC*{|SDatR0NM3R+FWHEf+{#Oa@si7V$qKw=YOw^?qD?R_dXg8d$crjxv{M{P@}lhQ zBuYB*k`H;wQoQ6v<(I=}xbnuNDQwvVCHb%UUwFxPO5O}*rYUI(3r3A1&+6$CP-8w@ zNkhLM@G?f_m%|7Ci=P2>NaMc{^b#cckVk~8}AqC9g-5HC8E7Y*S>6O>;whVYU<*TZh%3i>E(?`PcTk`_{8 z1=!9aZc;Y~(dG*JSnCx}d3N!Ir1L}eLZ01W5C!__+lIODY^Kl=w({r&N-pkYj7~Z# z@5iJ~60VVdh?#8c?#+;|;(;-xKi1gN3@DRWb==+Luq)<(?W>Eu*9 zI2(JJl4GOp2M7Mmro0LN;|<9D29lS*-p{t}69t{xylFnQ_XkF`kT{UW`|JI+zE~39 z;I9vCe&jJqClB>viw1C%edhyh=y5EhAzB({o-^dbr4=lQeRe8NJh#9ejO3Og|`p93=LK8)Kl7RE$w6lhlD3V?F+q z8Dj)5+XGJ_Qep7HxQH_y< zng5WRm@6--8lzfLHAcOXXEsLutAH_r+m^;yoKsVcu|EH$8e=H`)qz_>b>)}Y7@sHz z&Bpjb`87i|#?ri`YK&Yk^HpO!hmsb?_?CB6HOAeXXb3k(-h|m0QIQ+tw)>3X8u{yN za;O4Lp2Mxp*q0k)u$nz;HqEujKG}yGQf>(1KunkV~1{3M1I+XtFgsGQmEY{pGAx^f*`_ zT(YBDeE_P{+mXdxOJh}*k>S&EDLNc}Z&FR~D(JUSziRr{)@3eXVhc-1NR&mZ z%z@f@fxZ89o;S&}hQ6Z1Br&gdX*U#pr)|4PU2Ew5HNVj08u|*33DjEy!aP7TtojzDvm%rav$7@UQ=IJ%GKeAR~WsisSma8+l&#z%Gq5CuBERW_TVm? z9>mxDaoPPIlF1GpjZi|llMo-3R?IMt84+C5UWxQ~3y9qVbj3cblvmxQ1-0}(b}JfM z6+?bWjNV$-QbZj(S4&^PdmYnJXhyhvLC*w?6gvnu@ktI==29Fg#gct({XfFw7}Lqx z`ar#=l<9MQ{ceG_9xS2rNG>k7!8SzY8~6KtmAji~=E^0%QMHDc1=-((dN$NMYs%4Y z4fQoOKhxHR`mx&XRoo~jQtvCwKTqu<^_4ZfXkw(kzU^OZhhJ|Qi<%{J9bzlH(d9^e z1Nin1QThN^_fCbHni-3xo_?lIQF?#-g#m8Ga<4@ud*xmWzMKTB%aGgCyeNINrY=2< z(mM-d&eOLjy|-i1xy;;jyS)1~_r!pR&1VX3r2j#qp`RM*5nS0wGaBh@YvU`q(dkC| zYMLID-AEs%?Hz<8Z;kb3HSei&V|35{5KV2Ycdhj$6(8#AKUhf`i`FZx1sSa=7_|X%B{It$Yrf$Dkw)@$@KvD(~Tsf{ZDn!O^d>^{*QCS*Dzm`YJCT ziEUKSIb}pjXvv4-Ek>%{MBg%DB_`t;EHo9$n!?;lX%v~!UYTw1!f6!T_se`BH@3E$ zqKo5rUO&&n^ZulQrv>ob;!ouV{1Ggf?QV&bx~C8y_eWaM59JsyRNv#KDO9nq9#$FsMr-zu=j@DsL3E| z#1_#g|L>W(yL%DxJkRfa-_QTYM|awpbIzP|rrfE&QAs6tRfz~pBC!c8+DwTkbqp(7 z8h3l+BzG5yJI8Vazx)_#i81?sVP^3amEs<+WcX=C*#P?dj%2&}fXJ)0co>cik5vkl zbfLCss7C_Yg*r&0ngCP+bpsiW)WZ3vQ5ZKEeuld!+T)T~_|n)`HQaH4cHtiNNU(jo zg1{ZB%HU53zN)B%=A$6E#=%u*J3XJB8?E}$nwEyxCQ_lT$IRYbDc2xskv5f_#zXEw zihHmrfd1-QN?}W*W!gK#*VL}GEQogH5hjJg_lW(scAwUWA*1oS#nPKAeHzuc40Fk$ z+0NPXq!1WDGVgtdykf5UuU%+`5Y^)tMWyi$!cFBZ$&E2rL;d@qg%TVbh_JSblE(A7 z0;wEVlprTwU2MSqY@w9!%ty;t_(QP^9%dmemGQWUeQisnlp&6tX{pe>$)9ktf7tvf zJtdG`Y>BSf_X4XDrPz$$wPA5lN=ehYQaIz?QVB2}YJ)pU;mLjrk3nhBCXUFeQOa!N zcWG>0OQoc-!ew^0r4nd5l=g|`Zlwg8FS}6lG>LksRiZX@5U2xD-3GXDkvDz{%9cDk*y7W?Cd zv{O2ms>gg}`6PNK>m~i5St^%T?8n{IkupqQjnEzuUHKS+4lCJbTmMt^p^eA zUa4H5d^;VbAOtAihMKHF2jxfO$QA5a2L&%)E&s^U+AIF7Z%3s-fswa$r1~O2S=!cM z3p+wm3y(1WP8da~MF!y-@4g4+Es z>-Jy+ddp5qP=Th1ab_EeXd>0E8nbmqwo8XZHjlJWNh)_M*1VGvQlMm*j@F$hjaF4= z>w-+Z4^pPE92@D#Vk%#ELy`*4j|dkf#0pAPn60Z)*Vy+iJJnSw(z7An{UnQX45jkn zEGLZt#bC~tSC-Feh(;fwVk!khK*?{F6q`?0GMU_5q5QrmbZBemB!396&E zq_1F7QsY@r%a)N^KRx^&-0CE$1#8r@eMaqyo>~BZ(??HjsN_svwnrJ^kL%%=HFQv$ zep{BU@9m6b+nF(UJALjGI2uos=+7bfV;SK?^zdUFIjB9l#hUg|ic~vxDA z7`=xFXxgKhDZUk(JE3?f(>f#B+8&B;*v5Z?9;}DH+l1Zkp@bQOHJaHzqZ$2ASW zl4hSt8L9Qnn0pDnX`Qm1odq>2qmEiXJ$yAMwP1}}w$G@2#_Jn;>c*kDcT@gj*^cYs zeVx>%-_Yz6kK*d>tx`r_+v#)P$b#Bu@F9Bmcepe{O7hWlN$uG6jMQG!p>9XJ;>~w; z*OhHg7Suk2pP`4p;iT43qZa%bwVfHM`RH>m%Yxcx@Q=IcxpPw6cumy3JkzgbEL-#< zwy&=eRJeye+j{f}uFAbpg5)l$2WhFQkYDUb9HOyKMwiOON@O zhPj6x!QOv72UFn=SLdmHF}VWKRPh?y&`#TcqJpxS2WB; z_1RwT)nm@KSO~1~J^9RzY@60&(T=_(HWH-sFL^Ll3!NcKZn}jLRkr zu1|{l*KkY%W3_nR>M1VBQ3BY#sBlExb;S9em)@*KU-2MgqeW6epg4S_^cJEj_6SP@xxuvUY=&T1Gr& z^J<7vuFf2><1vjF(-sU1!6jTHGU75J+KKC}SmVPzCB>HxQ5qZD*I;}QP~nbT!PcF+ zlC7(7vta8GqMfLA2-qZEp*XQs+wh1j8mt6Iv{Pt=BMN&H_b^dmk0z4&rt*DovtV!o zqMcZm3fLq*GlcaVs+6gFcp2`a!o8@IX&y)3^)O@_i8Beebp)*d}_uYBK5|YEgn9v$H zR0*z|&NA`xla7}Q-(|(iKEx85&cT8gYo*M*JkaqHk|i%*8ZYTV+T0wzK5Q2o+Kwhy zo~k{Sp@kotKgyb^g?+%FsF_+g`w|etXQh2OzWq0UOlM`tgJ%uNwS4z#W}NxDrp<0(;U8G*kxDVE z0`*wz&Ajo6$|t-fmK$IWCzWqsL4MQ{T;wT1uxS61cak8$nab@h5TgXan*K{(MS|2L zkU;<;dD1?lcpOcVpE+$s#w7ka-~)R#QVGh{9;(#X>XPjvYdca2unwR&jj^t8T#U_M zOA-={^^+iivFZ{;FgDZ$(p!QE#_~%L!B|s(5M%W+Fjh%qOya=-AI#|~DX_w@kxCKI znNn)~Z4lcW_UbDosL4`_(zv_%+QnV2#_8)PAY&Wqw(MtYO%Mj%hkjBPzU~=;Gwa9~W5Ji|ZS_$>dKa{3SU|NCv z8;7?Te=&p|ipGqCKYI|Z6tLnFXoppG8UlEGGr`NVmx5ivOP~wncL^etcS?c?<$YS} z#IiwxSjg~xkRVZHc((*d8h|@uBuz<4W`B=V z3iVi6jos}S>fCd-HCY{2zNDxuLyNjJz`sfrkOM;+)wNv?i z0h7izxHL8!-mDZhUw|g@@_t$YpN>-kbCcyYb7|_xWuYnS0V#BEvXJ?Ix=MCTEUAlj zq`FRZLnVkP**X`i=EGR}SS851LZ`ZO&s_yHE^-R}I>}V4YlC$KOt0t!>8n$n zMOVPvE|5T->O!0aw50OA0w#_3a;dIyM%8Hz$cTlyMs1qNmBdX2wX&v-R0bJoKjNXlASZ%GiL%;Ec-Ai+9i?vWrunUOA#2NH{@ zhf5>~l$qLumk=;%*lX%kX8w%I)XM4xmYj{{tGz@#i9al$m9+%QTCj>!nZ@`Dr$3nI zl8UXNQ|!E_uEHLj@6_7YI>naK74~p>CrCD(VijFsSGhpqBo8tFWz? zI@RVbbrMD(DLeBn3Zzy^AufG)|) zn#r$T%C!%xk#5N|53)TI6}vHUb8M4IN_m6(W2`Ch`9HErR^_aFZVDXufwi8DZ`GMU zfYCk|EMD6#TkQ3*U+w-2p2v&LovieAe;JDvwCk_gUz3$}g{SW|VOB4p!B~{9%>YYG z%v$=)5PND|ZV_E5`m})&TmbI9w%r#VGx2ED2v;47tO;u_d zjWtX5kgs z?HNi~_Kr^=mb}bkrV^6(&N^}8q8{xox(bc)GwWFWnOND_JeN&gqZDI*&Q#hP6GyQo zvy_+aL3E$9mb6 zAqL~R@7TmS*n-)U{X9pp7z(hrbCef`;<10kD3y&yjCqR8Q;HN1_zk#kE&n?m?>m;8 zkse)&)-1a0fy82B#J(TwRA056^`58v=-&DPU_UNnxxd9n@9|}9(vO(Wu`Oexzg1cm zo4pk$b1GJN7EwK6QWw0-$G@hCJQQp~!2w&@@84pEHP=?=JzojM;%~M2N(bZkA7U5G zS3(TNp42s(N5zDzy8EEV<=qpz=o3S;de@)b?i!Mmrxwbok--4T^y*ccaqIXuQyd)%igQEdKEXQ1i(d zEw|blvfOzN%iTPg&Gu|Kvcb&RvZSm<`8j$e~7XOq28 zo_;e}OctK}ZAlYb>!%jMLE<&rl}KY?N%m~J;@i-@sql%pY!CiBpKYj@_dI<%Ge-;`Ta|&+}&Rzhv}0v zz6LpH0As!HB=;Gut8_{&3tEp$=xHVXEs7M@js5a3(3%#^ZV|1nV1bGzXx&2&qILM* zKhg5}2U;N+Xt_&T1G=(dzk*hL5L@}HQn}44L_28})o7*Pb0UQ7ccEDLVeW}p@ zK>wQHj(!k@`LzoPF2Hl#JyZ}{(@*2Mf>_i}C8XeAfN;_pkDOGl&Y;DH6;=J&mYqsV zpHYMbntXW2$pR)Ge%YlIH@s(+cPUkjsex?hE~T=^srM4H#vK;9TM1)Vc44bat3c+t zTdAD0q?WkiHn874s1#?>yOF#jfc=bQk2z^F@B3Tq>29Tn@zOhH80q21LSvNz#v%c% zUaS(7Q`LaR-2#q#bF&pPOk;CmmBH%Q??g#&bYP!im4KisIG#r(X^iN4lm9SAW8+ke zuw)w5U>C~4U>3dyXSdd{?t9P^%_`1f_n;0nDbD_aTL`azIA-HB)S;GPtmR&1i19(F ztUFc1v#vX_bdb+sYhptkWL^lWbk&_z-7&a(^(3jJp*VlvVWiujATm5LsnHS}|?vaSb} z(Z;-2+2w=E0OPu%to9+LwsFuEHsO%c!(=FGVs{T=3E|Xb=6@Iwy^5IFq{E0Pd6^wJ zth6?rD{Nx9k0>RxZN3B>-4={3@k-PXLy6 zG#toIK81XLe{PYZae;kC(TUe(A5U%}<1;&Fgl%&&g z?C8vdzsL{NWg$7fT%W2D_My}$h(Z!>Og=%l7JNkbz-d-85rnV)$ZUzE<)^IGF%X81 zbcAO`XC`d&0qRfSpAXchYJ?x>LqY&VAqnRvpCFtQJ|aB#6zhBfgunlR?L9$CPGM7y zgRpM~!W~9sCVV+BP@e<;yt+PBBfN`JUw|V?_;>ON!ncV_5bk=C%{d9eqc^eSlceJ( zY)1kJ7sx<3^sCH-H{=28)!?72`c#eZ3`#u$jwIpTg7rLRE=;uN}UgmB;lFl6ND!ammvIi0(){Agnc%$ zh%=<)WS09R2t!3W9VcRV|9M4j;0@GuAUM8RpQ;fKq12uu9faGHPY{lTj|iVR&I+9c z;m7OQxU-~V&caWDFjS-?%&-CIbHaJOfI1fh$H(bYHNtOlA)!1(Axm7Ge1fn)d_;KF zG1l~)Qp=FQW}Q>sSOcJ%l&_o@D;coA>2rb;J%Ms8_~s9X=u$O;Jt%braWW%)lDU6k zc62|}zERwg3#HR&DV|S4nq(oGpuocGqt5Rs_TfCnKYlaV7Z;SL{zC_6#-E%6_=AU< z*w07Yi`Jl!L@yA}AQ}~i?gW?1`m*g8m9Bo12W2Mp zw+Ap(9l}B{DWSDmK+K?2RS&08`jy~*5rv88zk?M?={7M1N?nhzIhT}K)|g!4t3`K* z?7)FKq8hTtDv;fW*m*O3swUk;N;Lv;a&JwXZ@`eGmqM(8-r&O!C(W(sc3R_ufz7|H zw6q?CdNSUUx^h5fCJGRlJjBGrEK<`HBvc~0;;Pt^P7VSz4%QxWaiFb9io-IBg>}E8 zwC~4rBCo4QKKW&44jK`Sde9Z$s!!F#5K5`NAs=~TUq|u@t8M`w$>7|<_sn+8y_%_u zYGQ4#DnqQdVGbD!zOR2~vQ^xHxB}$MS7njvOQ~%j5n1pE@(Hqa;Ult#4>$`>`}2Cz zYkpBU;O6DcwjFoRV@grL%{66U-+La&>be>BNWaXi)XENGWNv)DK2?)I5lZa@(a4)& zTar(((g;3c<@kOUcwK2|y6$db1FkDW`ksJJbwc0VH#5l)Gmr*Aggi!{s*!Z3)cO#M zc2y(!1j(}S5y@Znv1&JzW$h32$&9*MHe~(+V&bc_NG(LE?NCgKx*7Qd>Tvi7b==r;hEbyk%YFJ5PBC88t4SFJ4&7Nokk+F~!f7naMpvFQE zN?ifjNEYUkPp~i(K4KyJp4j_0l{yCNB$R3#K_`Hd}MqIQB z3Gmn5bg3Hk5tO>M2WWPrmU$id1a$@k4j_NkKm9WinmHS`lKQe7%vc9d2XQ@`aXS z)+_G**4)TP8y{dGn2o}}RDO;yBgdzo9N*rV?qc%_x_a$?-&j5 zCMRBW%i=E96Mq@yU93Lv&|R!KlHO|B6N)4A~yyj*S% zPV4AXHBR?Y>Khb64t7(>CpdjT#R8|sUO%!KPn3nmMl)E!6s3!)Bc6t}+;nf&_vV`n zwD(74rd>4^*ejyU{5yTBM!O)Twgpp?c2n{R+VzN0&_1$>6@RL%vtETbb=R)#Zkd@< z#TUR;rY$Hf)2C{b@=Mo2)%7hhGgIVGkShoQ^6C0ijTtvetqFM~JMK{}i-6=On0yX?(De#2u#Gxn zVV$2VBMMxC+O!ipuA5ZN8`*>B%KQSQ^ofoeRJ(6rv;V{j$$4B%`9c|M^@Q+sGJW1G zb1?=z1*84I5x<~M)rt{Gsk54cUm??pW1;|n7jdf&Z; zX&uHW&r_9Be$yZvN7JIK7Rk-hjpA-p_uCV}Pu1RR)=Q#Dcp>Ozf$s==C66rLVt7bnB(UOCbxQC zyVH5LUTohhrH*N5s${}C<5>nK`dczH@f!!3JCR_*qEFSBI7X@I;7&5}hJ1pF6!JMl z>bNAe`)VoDB4Xb!?$hl5(7i?Wu{29`nLT-pJ7MBpNY1=lLsvRwf5B3(DtTLO`vc^* zprqWViH=o`nFW-323$&Jj*?F>vxj^RW*oPnmiq2JoBPOpVD_psS+tOqdaJZC{qpBW z*6J}jjC9CeNB@2!9XUsj|2xQaXo}27^{E;&btrWlxRlHcC!b)ZANd^2IIcgvu~JGV z!}X``&&C3|r5hXb7nFA6xh9&EP`r+{E$reAh^F{s&lMdFM+&FGM{c5?CO~rRKw*aeY&0#fjY2N7%b}db*XL|co za@O@rSb&Z*Oa0889s3Qm52Mt)q&`*SY!jtE0LzlI>*N!hoo&Dtyho*~x9mOpI@!Hb z_O7FWB9>+U0Q%V-^s7SYI{LohndvWn01Drt#Qc3dU8+WZ45jV>W0L+4)B ztDEAUKfD7-Iod64NR&^@(Qv6_NF*CH$5~==wP_EDre{93G{wDibr~w1FVhf7;pgvX zqA-`h!P9{y@7aeG_Yl+H_l+#*se1`iPk35Bb&oLRgJR!*7oQHWn zb1z`(_}IuopSd45U3g`bx0|*>v32rBj!a)k+wVZ4TcHS^UrW{BZn}_C&(?9sJDz+( z-h0XCs27ggO-nD5mgv0Q^hCPiZtz%Ji%xnc@yEeSl2rfFOKQ@Ik%qzLBkWN)R*^&x z>IU!!KC}_(CiT*9Y48vDbGZ#H(4Yo-Y{^Y&seHu(7HLqc7~kh%(+z5^MiYSv?>eAR z_O8JJ5rzwttAGnpX$?^}jcnnt(!@V)5gnE?3X9Use z`RIu_l^!8dllWI6%4^1SLTvY`u0?l|kY6IIj22~)QEd?wphZ=dQPmOUtwj}+QN=Aq zAO^dS3DMjOaoCUZsXARZ9$f|&*}M{qGpfPvxhZ+-aQ4)wR?qci<@EF^55Pw~WPHND zFsT&`V_83w+QYcknNUQ_wldGA@>3fR3fZ9I#~rUsWStRL4(hQ3N`I9}>C1EzhT{~_u;*A@b{**{`X{aM ziq9RLc5QbhTg&bEVm&-UEo7~n@u1afT=?NUQm61;*@enQ1Cd+}nH>WaXU(2=R1q@R zFX%ZhambY3><#hbOh>7!Sz=TR<7Rb%@rz6Bo9t>GkjRHR=v zvZ%ed%#jC8Vu#N}ch$Gi*RPysOfu}K`0^3eroG}8Bj=8aeOHXSRpFn`igoO> zs+rw%S8JB;a89nzi!Bv50ZJO&H-{AU+2ZZhhb&xC^ZSGVNL%*YB9YYuvLT9E%y{k` zo3E&qOaFj)twBiRB?ZzX?vWMJ5Dn?*%TA>4&j=1<@Yu1x3ZzBOv3e?y{)Koa((!<& zdfC~Q1*fBbV>`Un0{JdEaW<7WZ{aoMGlX;4S@r@rTQh? zPPLNZq=YG(6EOa#S^b=Vd2>?2^qa|A<#WNDBbW)N*lz^WPJ=l942ckzTo5k5n!zTlhDy%dHr?3Ab4r(snNa%}^x@+}3H%u~Fg))Zp4Ek@FfcY5v(@W=*|SOVL8Ywo-Z1 zsae?8j9ao6v~%g-L+1BG{@dO#uDfTJ=2q($9i-`c#gr`2T)ipLe2-eMRi@5Y1sj9i z%xrFMpecKXZ6`eY07AlhGC2!8Areo%Hy50EwpZt9<_eBhlZwx zM5DLvuak5#64u?^h0Z9^&rq*}o|KW+F?a@Z1xuwGYDWCb9)SfPb6FxQ|*Y+r zP7P)?@~eaVqdt)3WU#45bUeoHGv+Egl3y)qJbQ*c$glP*a_uxEfFptyq#3VDdwY3K zh~nY`7r;_ttq0;MLO73x*9WH>f_LliVSx#To^NU3w zKy@;HysH|(;&e|X7j$C6w%s&-33b+2Eo{7%#s>SMn&s3G)EdvW_^SJilgF|C1=YUU z3XMad>uk*CX9#3Z3aVq&M}HAVJ|8c#frXI&+(kCKkm_$#PO?pf)IP=y2U!k3)Q&y} zSu?l=f(~Y`9m5Zco}&mm2QGv?iIJ@Is1*0NA#8C@AIOL zcYDhQ`m41{vkSUzqbVRsG9|}kVWG#*vy1*}{(MUgJ1z8y#C7@&```}?t+S5>6h;I8 z2cn%VnwMMzjlqU$ZVnfb#AhHo1sexy3B4$BZW(*U(TFk|_1HD)y{SsG?Tcp(w4g z|0a9R_*cwS6qZ(Hk5;Q{7e$xxr@s4Kk4(h$)KM<8V~2)&_#4lBVm+p!$JkU9J;q={ z2p!}A7@HV?9^;Jc4T=Pyr7s=JDh9v=uTnn#n5!e% zgD}9HmUy}c0_N#1_EjKYmT3J`<&kVhpjyIcJk4$gswIu>cQK`y8k8rumcC;v|+QJxkkSayN2G_E#6YeK;>T`4) zouO`5$Ipxvm9q4~wTxsU$KZJ$tnkp=;e;kV{h5n=V9yYR+ zy1nOz>G%k=n=4TUyN{jjqm&n#3&v_i;v zL0a$(`EA*ktt+F3hEC5Vzdb-{v$);Nko*9I>7uITTKFQuY+EVyD+f!_lz_Vr^E+AU z{kxN;G~7~4HM*sYaaxt_p149To8OkZ8~t<<)!!W6*`ztrgT3Ccjbhh=c6% zAb2|6*o%{#$vo$`cmd^N&YXEYt`Yz&V^=p;p|U#FSnwX(Ravc*XPg~ZaXS7W)020Z zxr!Q`vyY5N%<{VuGHq@~$Os9U{h^2#p8&LrL1QsZ4D#tKzFKl&Jq;~ANtga{E;CeB zql~BL#Iy)qly}mLq?P7+@L~bf=j+mr4KOyPMqYa_EGd3WNgc?3vG%5)z+ie3N%iaUU;S` zkY~ya;!gYIXP>%yv>j?kTZeXqfbBkoKVU*fnrNP@P7_sSEKk28qMRn$a+=;mA57Jm zXj?)HF}!Y*!9>MfgdtdQ)_B}}OQkCeCJSmC97a8ipI`(hmGs>GPFNwk-&-vWSHp^D z!+rxzTm>}-)&YXVr8*e=*2r@8^k`dVf#B!080h=_Y;cOph`re8B#58oGM4{&QSx(x zu8DW>Q&W&m<3V83+1$J(tl;Nb6!BB-HLbtn5A-_`Av7pE072mhExeAx6^=BYal~uM z5gV=;wwotiVdWdBMGaS2lypYGF3&%< zti?aCf%rxsdP$=~tNxP8$xD*+)cH~vd$sTb3TG6?xl1gnAy_43AYz&aY^l9GiWn|Q z>X=ZK31u}hHL%*Pkx9EK$&A#k-Qkq^AcW;9l>HdvoT1Ic4F^<7PjnBr*WJB)k$gexrY6^n^N3%A&C1^fvt zNJqxtN)np&q~~bpN~T1Px$5tls6i!e(^V|UP*2NHo{yIq%1hWtTQaT*=1b!qjuXpvouk`tv`e(`KUgTRx`aeiZVi3vWauMm52h#v_hn%$@O=Po%wB zQvg_Eyd&-PgL!B&P0O0g%amcxltSE-&9|t9@-B@31l-Ad4qQMjJ2G@L5*67Gy=(e+YqT%4*24j^93K>CM#A)QH^Fw+`i*2ws*s<8YfoY7YmN1RR`v$(UhqS##aLGCX_&|0gQY~if zFCtLwL?xl>*VYMA^032DN1#+>dhedW#UW0J8 z+F=lq9d=jV8ffL`AdIEiB1#jBtx1BHWL{&6P!0nnxK0_SM~xWGvrQ75xBJ6 zDHL*CrC4?ptJhMU=AB%L9`m_mpFPAKAMiE*WS3j2UmB*eno(*wkM++X7rST8O4(R+ zl-kgk?GLsuN^PsI{(>@{E14x2YxC9`W=xlQ~!13YWBV~_R zv&JjzQhoer9mn@F^Y5qz7}`i)%4OgsP~)Ybj+Z-$pYbvTd*q}HT)gZ7(C54~q`h=& zfXT_rRBRfdM)zfH2QMZll9g+%7B;kIh1W|2M9;oO}2~m6^Z;^n@jn!txb**IP)5o*Oyc>~OWnO(;W;V29WjcV9xF|M}+$mA4 zc1N|c;TSV@RI3>SquALFY9(WiV{BAMwV!ueEU{Z+T9lWqedFI4@2Hlj>_@TF;sY$z z?~VS=64Tw+GUFCK`;x>B0zQ`ne~mo`)S*0uTj2;xos=VA4q97A$uJOY$@+D|b91jA zu$WG2Y2)z+Y;PxZn6cdhR-!Xj6I-8W2Rf_1#$|ihwa%*574YCxNd(@a_T>{MxVh1@Qj)P2cWGAV0dEYK zxPDvteR>4i(eh+f=;coH(nv`;hF}VYC-Et`J~xh!rA6QB(ZONSMW`>rGZhsSvCNDI zM$P=g9i&b}bU?~2eivI@kdNm_$q6w8bTWD}zkY{x=%$V{cD=(cbyI^2RG~aEIV|=D z-gu?dYkCXZIL-s_FwgENxceOz+FdPK`POYh9G``-<0vIY6ZTFDK-fRQ)r6hXDeR;O zyq?${lVHEzW~aMD+B0smwC<3$&utblNL`4mX$~#wJah4sHH)9LaJ$S^%(Tgm-&}MW$}E? zEuCZ!@Sez$vWs+0I^-iK0XPx9lx-v+XtnxT=%@xEt_{o!X|P)Tujst!qa&sz*5eB* zA;U9pnevdEH4?Qo5@h^d)4#^P3I6^%tJFu0_MUznh@918%yn5Uno(?)nyMh+HBALm z0GjfLn@Llh8VXGX8?Li1eW9o~*O;v@6gA_TtQJ#`$!c-pXSS&yszryZEVMtW#ic8< zT3qa}?zTSLDzyS|XTKEwzN45AQ6dTX0&@j(cE&jU1st!Q4m~cr}i}tk6_<6Mmza*u8OjGaGRwHT_kJ>?wHZ2m!hiB4&Sxh-@8 z%eC-G3S+u?#wF+1|LPw!Jl!`*JfVxx3u_}I^?QjYu7$*two!(6Ak51Bl&w&H7i_YY z_F%X+1yg#x7<}!dc+B}8Cl!bpqTXx7ln3o<>Lg=%OExT8&0nKhb8W^$%nl`S-?c!2 zLGxt9J10FJ5?+|v7e(Y0k+}JYmHjE3Uvc#48s`NyZq@-<%*SZq1qib>y*=8L-6*)r zC%Nl(%*kDAY@fyWi@1xBvApi;_bi}~hfnp$jO=>vDf zQ6qh=G^dMcz)&*1GB~#fdkIc+{s7)^^CA^ECkq^>wu`8O7+V7z=1S$Kza(#0@@^O2 zo-_;ccs+5B0lm4|C)^=nZ`N0S$L8QEu^-YC8Vonk2d8x*GfYwaI`>|Pb@3KL81cLv z1@P7zW_9AZg#v}OKurqBU6^V7IhM~wfTZxi5fF1D{F1h`{x4rvX}lU?th-iDcdQ<- z*6?X7*7C&_%@NwNep&(XjcMJ8tEeWA8xGFF-sxyeQAK#m5#kfV==|WkEkoKT<2f0! zNXR3SwpipyHZ>7*_Hs_mZf^LG_~%frYEA+ZG7uP+fk00^fenp`04q0E4Y2;aT3Cx_ zP<5e zr!%Ns6mS^Sj}&ki)Jh6C3~KcOok1;d1f)StMUcALJU-H(4zJP~)J~Bo3~ICR;`!-( zWKgB8tNzKJni8N>-L+&$v!}8$q}fw|K&ee<^l6a6o{p{jC;U%n{W+$pW0LN+2;x>+ zF=cm7h8zY@*6Doj>`bA_B{VStEZQeu%HD0t(wPV=2>8gLHQaXG3f&vbEDoz21J*Caj z*;CiOI(usA2uORXhalP0h}>+<6wDdbU(OCpQM>x&6Y;{7RN=+NtKM4Mw2X8;9@#!` zo3`u$GN&!Ak|9mi^JGX<^<)Y;R2^S8gDo}uNBm7Gm#b~6m4QIn3LZFr#x(F%Mq^SpxQyw$S+aFn z8>+LWMHFyY(@Y9Dtf|v1oi+LI)>)I6BOtBG4MDP|3!c)NjxLeb6upb$g*6Qn-c(-D zQ#MRX{>hj;2+(OvfA16_&6u9ckY-HxDdaGwpjsJ>>Dc0b!oNk}a5hYzzELQA?BifmqgfSfC>la^+{i?yuoMtpL((rj9qU}eou*@^@d z)e@;3+8;)Un>D!b=CQSHY8!)(e}5W`wih3@H@u3%Z!S2SeLn}AXLoI9C+DccI@iWV zYt$_MY#R(@9UWi5(m*or-cROCe({Mm19`q1gwM-?IB(-1H$QnlayUctT@M(Z$JYOj zd}uYcAVzIdzyc^sOiM8ia=w@T#WwaKMlD=0cpb@KT;W>%D4yxG`@9UnDU32ER$;Ch zV7&DUYcp3ZTg0!w$*sTFpXvR*h8Hd>{KG>+rCX+4f3{|>I@x1lKa<-luSu0>^kXIL zY7f6k2;1h*#%&BPp$)jv*3v~k=<8)vb700!tS zee@wqbr6p3ZiyKj*4+9zrZ&Ko%)gYF{F>W-izx9V0$aMlj@26;;%-7vL)!&l^|#m? z)Wg^or%xQ0M1=RiO2cFTx$U*!hgaE(sfn067JGZFoQ}Zs+i{D1EJ%#NJLK2BrgyMn zaV^p|Hoy|o*gG<2806Eae57qCtTw+Tv9Usk5*mBESrQx7BfntXYdRht2i7i_WNj1B zy!xF;+uaD;l?boKZ?NL&HN6ieO0jDZp8}B(aTs5TjqQ;!@L~JF^!&)`Wy4k7kSLyC z!Da<`M)+E)zw(;Ch5~3h`}8NKEkJJxK$F?L`q}2T6U{Yg=Z~asEiA|Kh5|2qkhy>J z63G!$@XQCqflP4=2=1}6<|CqQ@hdqHurR6fl_M%do*@x@Vo+AL9Cu3y?NQwvRO z($b-v@SxeVfM{hpBJrA}8}1dSvSV4#u`x4+KN?K6QhQ8hTD>qsa(~qG{_{zo&22nl z+7Ux^9%v zy8v%)OQK4LO12NMal9y|v&SJ-FEOug1#wMk>md!o*#ZnEFG0XEZIUm9L8Syvp~vJZ zR>Bd}KOi!udsxacv@ZW`!}0&9-LRrAKH-zC|Ko-u>vp56MD*Xc8`ghnII{on?;8$O zgZ~%phV|by9D^r0%`Q{JLG|i@po*!iW=`aftm z`cKp~9RGLi#;uLA-MDOp=YQOA)HyG!>wj!Fe#ZHlf8TDP{h$2bG#nFpe%5e^c4POs z|GwRr1K7;%MkBNa*8h`+BSX8vYJaO1^c}N-x`7;6_rQW-QnZJhb?Ui+4f|HL>ZkTh3a| zSBo1fFK6TCtFsJ@85XED@`O)wp`~d;!#vh}fm*Ee9Xr09s=G(u7IAhDDWgkan8|I2ioq2H~LO#3ji_ZeUDkgg=(mA z%0f1DA-2ZXc+8G1#EFbg3)qW=YR5d&F+)USHOFMz>zSUtW3%trMfFwU?^j7`sNZeM>>J z(kk|3DUO%C!66n)j2HiYB`d+yuY;lyPMO=ktfO0wi2Jj4vvL?;4w}V3(H>l>tQM0;|1TwHsS6XJ?kHvyCT~vGyy}QXY$NI0fdx8!TfnE7b8u zuMy0BCC25?hO-hY)xvqloWb6l3i!bXLP?Crxz9P)X(bLbe36#MtSi+ppBYy%XKwc? z3ya{ja1Q{=S^p|Kuu?5kJ})IrtK&Ahip5^I{cYF;hCVR0BwoTx2&5tb&>8n4K;JHz z6?IH(Ei(N*FpdT zXG_c=#S$~#TYP=s$#o1Hp70kXsLK8Z9*`^VTNG|m4(c=>;6WD@ph7N#)s-F%M0^eQ zRY=sBKOocWK7zJVX(&b#$N|*_LgN!Yc$5yL#cP0^1PCPa@)i}Cj<(-GY@+!Zeu=O= zdv1II~houMryXhgP+S#d)Q$+qWDW|@<@KT{8c^08x@00;#L!-b2ctg?& zGMzyF#K_$t$(IDOdaMp4{1rg{1_+9N)q2w*r~QadH1EZ)PEMN$b_W;&>?tScb^-cJ zM$nZ6`nv=z>I9{&kcs9789~bv=m(S|(q`4lIZw!m#K41u20e#d!R$@UH@>{hx0q3i z@mzHQceL3`Cq~8$_T_bD+%m*P*oGVjdx$J4BO4&2#WsN=k=sW`P6A}4tx}?hGsw8{ zh|6J#=>m-eC-P_WSg$o|BkPz&)Q;yDtBInit{jR8p#nZ0QrqiG_8X;x!e)jze$RtW zafkve#?CYeRnh@<(uHp6P?{?ffLpUW01ZySoG!@kMz9KN)x6dl3&j)}WYf@Q!8h7b zDC5`-6jI!yVC2h)D{tcJ7XgVKF@TKHAouAY&p9Ed3&>l51ips0j;O$9Zyn?#DnkI_ z>}&<75D2;eu617tflirxa2BG11Mr9j<&8E#D{4QdOmgU;gyi14BxiNvdc1%Z%JT(d zYS4<0C=KEEubi?wZg$9SzYEj_xf_*2BYm16g?JVKQkJ;F5nFvK^0(JrVw^@S3b=uQ z6MLUY+%e_Na|nv2*N&i#GxGgTz;FP{W#@*rdYZiNTw|&0)O`615HYeNo!CspnBRJ} zn8&yC1tYvJXHC|tA=b5*(FoW>l0O>VrbBpV@pMF_En##8Y|@*7B$`t?xL9oQD^lSS zwR_WOFlhHwFxSa%U3i6}rt!f`s3k$;+m}8wzoD_0xx+aVZ49il7mCMa&|oRjZZ;Zd z%GamVb1GFF=1zPJjYTiY3oaGJXtgib;-wqZd?l;Je8BcAh@tw6(H^`cLKwZI6yX8n zL)@i^7?k@j?j6JGY*5QJS+j~NYa?Ha&HsgET6#LBM^L40uGn|P{yV`Dd}?TbCP8*yFZTlxr2Vj>XVK;fkk)7)PANW`>>Zf?=NB4S#B`()m35w;DN zCn)Zr<*5}BqlzqPv-MfZM#SW%92K8^W;NeEV#(jDVWBm_Swu{0Z@PK4`q8gE;YTU69mTBFXzJ2ePC}P{EuK}|q*gZe zn9GK5QhQlzVSI_!^!N!VKW2==hs;9Q=AS^_J~pb(*REQ$;fUo$m?6(8;lFpl*ZL3e zx0eb0GaT?aGs0Ul5%@`F=;z3Ad*;7qXo7_Ip}hiBfS>*Ye58bbb4tKl6+YoVWbl_6 z8aW6={s;J{Oq4jp0q_6s;H?np0hz(<$nbQ=zc2Az3IAA@K;Z}e1AJErf7}5-R|jv+ zO2?&ThVLC2y6Q4y1^@R_QQ}<=_|pFY{)~iQ0(h&?+27OueTi4e45J+c&in`XAriiw z1Af(K@UFRFc51U)*Z6QY%dtfbGbSxzmA7E)<>J|_^Ay(mud|`B{tMIS-o6PH$1m7X89Tbu)=K^91~E(GXW+Y^}aE*x6O>u7`v-DDHCss+^_u22^9izK#stLkfAieP`6 z*$Rgb`W;hNF+O>*?Fo(d1Ob@DAN`e{E{2Gx=mTy6?DF34Ydb&T>OZRYxLka;V%fFV?iLg?VcxY3F+n=c~7NYG|h;Y~0X!!IB`gW$pm zmQILtio@xjXr>V6jLqH2<%U$jQd7x!0}vvXN=cS>3iJ0VBl+Epj}{~*ns>m1PXlBW zy{&mQ!aVJ*D8+i2#ZPA0=*Y5$vbb{0r5uUK;Sf&@#LnL)3tp_)o&_n6MHKO}RwC{M z!>Mqo!b!)V+3MqVQHsN2^ZAGmKd2@F4xPI8q1#X3yp_&h(s?JHG;-`dE8y5XUyFdJ z=V=-O#~`4Ib1uc(%yu{s8HGq>v&c;_pC!l2ZBc^Vh4F&j)0*gBy%BOaaMI)$-`jn* zAp_KS0w9UzO$azdkzn3MxIl?W5bNee1Zy)dc7#{T@G9wiC!N(7XkN-@UL%8RrLzuB zg(Kj%J3MY~HuEyL31&)l<2l<1Zr>ag+}6>!Z7jLb9}Ty!^kp5W;yT3aw=n%SjzI-Yax0FTx5d%`X9tO^J>D-V`l5}oL=azJC zOXrSs1miaIJ*y1fm(By}{3e};(s?AE$I|&-I)6xqOD9=6Po$F~ou|@yCY|Tf`BOSC zq?3BuD%gK1gRi9XS~_o}^Hw^4!AUT`!!JJQ=))$)C;G53g4)>SNj0nyJ&he>eoosW zV|>1h6N!_t=~C2oI%J_!&Hw~?-d9+ALzdEFMBwvS8r3jImVp_ww5Kc&Ub<@g_t-JX z?{i_0dyfcm3lT-U?9+iwLIvlY9ujjtmn6%Bsm=pz(MzifUDa!VTmMd=>ms=iMijvf z0Xp#c7|mOw3U3=#c-E)_#?@tJ!0a5R=s6ao6U}2X7%nC^%8Wn^ETj`0ga*M$Fb~Er zLY0S{fc)VO6^WIHNoP2mhPK+2F~OXSU)-qrT(D)9rOc(3@*2Hk9b+CY>kyZTBd-gd z6U{^5(Mh}$f_$UQ(M{&KcEp6K8N0cMBTMIuS(;FmuaL#jzP7)L2*dA!ml{%(4G={l zY9=uULqsH@ON}brqHh{ZbK#XjDWpX6cm!Q6y+_Tp21BcnHlLw1A7(SRhl9|Ua1zV| z@C!i{?jzDF_m++p>MKM2q|;wIl+R+TOc@*6LI%P~Fi*g*8@FR`GxXp7kT8>NngH1g z=pPcC44Xx#NgV^uZnYLze7eA)Zq(+}i6TTN_0r}^EP`=6P@pqyfe@UQ(utBzE9np( zq_vSwTR09mPz@7uuvyJiuM^ClsA4s=c~%8fg1ISv-FS|+g6EwF1wo*&aAV3_!X zg`z-JWr5~n11z+F&IcZsgw10S+GRGvD!ZDh`A8?fbP7nvS2_iyQ%E{~((#v0VK`RgFCv3Qr4t~XKdwwDP{WX)r-!L$uDLC?R2;bArU zKB7w@VmuG-g-mRCFT&y*ZoW>^=snjWM1c zKpbIfdmPiDnB^QI;b#DcYwEMZm=9qf={Xs(uDQ?p67*Iq$)*dwI4ULbvSV1l9yP$d z;ia^6&L*%Xd(@CTQRA^;sjy>K!pzssVw3i$!FdXO7C&ef+qp+A+5PS~Vyr;`a+H_* zSkF+*v;-Ww`&2&VoMSSmtkzz& zN`V?{F?;d2l{g%LTUR|xQ+UR9X4|V4R(DfZW%pcz<8XV`*2dFgnQ5Q;Md8LLX#xqe zG7X`Hh-ZY)=jCoHz30~5tj#_(w6QT-h<4W?5>y(0xcEalCddNCaxP8?Z-~O;PhQNn z&?Hax+k`HOUpt=$H;rFw32qVp{1!X14+p>|pJLDV;WILS67$`!mhJs^7m@PWCY?v`T{Y5$;1qgPdgz?h11le?K_ooAkZ_YtE7KoJY1ER-0=qA^i zo-=Q-ANS*IBAuv{i!IS6fhY$Oo84d!_p2QW*ALg`ZXr9od?vC>T0AR%k>@Xj{|C8xok*_jKKrSmn&T2*Rh~$i-Wk# zeAN!wt~(A$lRo*#A*|{_wRCwKme>Vc&J^?B{7^A(@)@|xFy<%M9L*LTRLce!vCSl7 zuH@}{BJ9CUv%eK|#02Rz+MhEW8_C=v_HKwNyN|DrDQltWygl8bFE%RBE!qH{Eu{*g z+?KdBQ-s&Hla>-EB5X%2F^#+}B`#Rv-ce*6CNaIHy#$XD@JxLGe3ACjxh&OFy{0ZE zbu^&vNlAwI&E5Mek*J>I?MCEmTV zY_&{#ZisGUvFF@vvE!76J!gwZd(IPbqs}X@;ib^bbo9zS;79led&9E_o(2J4x$B*P zr&)Qg+?E^gw5jKnJBnj7s5Q!Bv%HI_9ydCk?qm735O`^hO>8s#;b~@X_%k>g?G|Bg z*a)6}-Vyd}*mK$l)sklSbh|wy1A=QjOl)t8^CQY%J~BE!0#e_n=_*%*eR34UYKh|} zi`TZJmVH9X>FGr+ffqo*V6o?$4Ej;c?KwfexsqH10R6qJ+FmJ_nj@+o$KEq+Y|A$} z(jFWY5%y0SSo+q6w~3T!ArivhKK7&MdMKw?{)Ct&8SNIoF-HKg2k)J z(a6E~J0=$fl*>#V`w7{*gIL@x@Kx-rL+S{F-** zma+b?8tVx!tJ7Go;)vb<-^Ln+fz1D=u?{y{|5uH*=yaOMLc8E>lm07X4QVWm_3BWU zv3?y1qv}ihcK#bTNBk9wE_c?d+I9cYU6l~FKNl?8Sc%%N>4=f^XLK-`=Q(X7Yc|e z;S?NFjpvUC5O5OjcQ7{agz9H7UZ}5w>o)wB}W~S8ntVG5xW+StqjkA6BpF zvyq36cZ8(`V$AW$5IqP6GrE~&T4Dfhw?Y3AACQo(0!sdObWcmn*SG_$8CLeNdS1?A z!?g>@;x#4_AIowh0v|{p))@a_EGDjFur=_O8)o^o8l*DH5|blkt=LfGW!>G#ZFU3i zl!eayr`@Q>!oWw@V`0lZW?7QUqomxA{eQf@2V7N0^Ed82fN*!I0t!+^R8T=IQ4l+p zi-Mw}V(+~x*bOQ+#B1zhVu>au(G3kxG-dxl<4}c?LjC1)|a7c zCvg44&K~sYguaIDP%o(M^wRXOllt>IsZ%$yKCQ1MjqFBsPwSIx?+c|iS)9J}w0^Ko z3hzSY&my*d4eEXtOAe)L(DbwVty16W6md>pT?(sC!_MJy+rypc>vLGIyV;4(o`b0@ zu14&zVS*?_EoprM*<8?v+4dAyaU7UObuQ>j^LR@OY)d@>aJM$>e`6gJj1JP(QQ?OD z_pH&onNRz!Ft_9@NjMPNtVpK<`_9!(%-H+pH0>O$skyPTRkSe2pAm@Oouyf53nT7Y zirD9rvQtIG}~C+gJ`2$je^}*223E}&yaG!`Di0d!{IYIB~zD# zld@PdJ`f$TFR`>@Md)*&YjVIDHz=Z4(l9GJ;%rhTc5@5;?U#!q7sLJs)-kCSqIHjB zQir1&^#8a7Qv~_w-72T~wlNV;u*v^PG?JOx0*JPK=ob)KXeT3xnL8}D2DQ^**nitP zI`y!rA}|a34Z8R2PTnZ zU_J(0BVu%!a`DhY2C=i9a9&Bp4D|Qk`qBvviW&Bp)r8?ej53NkCvZd^h9@!TjtIi0 z)0z4IGElt>F!XEj^x}fPmsBAhPwnaJ**?SNwDPn$wBn-v zj#GVHXJN6^=WS^2CD^IHEgimuY9=1dm3>o}Ue@=K2DG7mm-TBTyfC1@qR05SHJ!eq zzayP$MVm8lGxPpd*Z$0{V5$!TnZq+g)!#2qj#IV}2!Gzn zPW1|`75w?Dcp;K()t?8o5y% zaZeyQ-_Vzqz6+$vH}u|qlL8?RysC4wEJ}_*rFq+>HDgK<4 z!4K9HD@DLxi6M`9xC6JS4tL1wmcEQGm+Icqd&FLDA@o`g8`A6yI_$$a9IZQSIEtMu z7*7O$FrbPh;*O|Rb}>fl8v=;o-`cWo^0Dp0>8lihBnBO#)o5;P{D9Wn()%ROH`i5T zbJQ#l@InVZ1DRuUgE1jDI`xX&93(`epu;YQmUfwcYTXcXm2-m4;-tr8R5>eCeUwU# z$4PjlT`|cL(u;olmgbPlU?4!C@xhQw!>JOjyr}oGeu-{74ZWd19`U}6VpGWtL^onx zG&&;Y>{77_Md|gN2TJA|!!C1gM~M7%G>y0^dOISy=0J%**Cx8H;2m#<~An}(h1mN3L6+jj)qfkWGgl68+ z2ig8!475Eb(e^vIC2L?4r34;6KoX{ZszdMhS83jPWf?J?v}!*KqRYT`KJcG(bo)DZD{RG=Z^!)SYh z4o>fEB0MbaCM`73J*ZlbrHY_*uMEMt$%f$f!Uh!uoi#+rqe^09o0!uxHrGX`$hxF4 zhSU~zcw{=lB0 z>MPddIA4%Kbuxg0sV~jBqYrdSc!PX)CYiNPD<9|&G+a`$P<{>SeJ;O2K>4@)y46$j z3ln6JpIq0HpKWd~^6QvL?PUG1kOl52xURS89mGUDO>|NA4nB_#&O)C@PDCV594R{p zv*mv7lqKtDl(^*vnmGIw1UO>lqi!_IgzbFa11`EUo$Jt66Z&$)+(aDtr9Auu7C?hPeiDU-gHqJ-QuD$I>F^XGup|8`aHsh zyb2Ktr?#mtz-f))G~tPUyA%>mRi9#9Rm_>XJ;kK#uTHe(sXp9mkdw$1SF6^7CPu@k zVWB0TBjNg?Wb;gawPBKDA&vXj{G7&{1EsLW3p?z3HC2r}3oS*YOdM%N{_b{_X-c-< zzx>=+Vxm|lUl7wls&~Phs&bHf!7h{q-dr~~kD8XW3y@w}(I4)1zPzy(u`Ml+?z!95 zEqDE;N+j@8B6rY_5=2_3QMA4kM-N^lz z2A>YNA|-E)#%H9oIbEeuW;PwphLp0cXwD{((7+dFX+j!-2q7e%ze7zh95J~i?fe55 zSFs2wRr$=8BW4vA()Un%m(ASITcj*1qhyWPvzc@`NAFvrKL{vhbWOFS%cIHmwZ3(5 zdjQNM)6~}(()kRg&9C*X%G+oCtL&<7SBtS` zMjrj>4cR@@Ozi$PH6k7nitxHT`&Sd2s^Ml&r&li_JkU@~tcC_(J6)6Brl*>To!P2V zuRk3|;klXnm#u7(UPt9KTh=44z{FBu4Z_5HdWob(#n(!swl_r;UoB85EWUIcg%RQl zjQ>=8B>?+Kd=3Lt@jdCUiZABLzlu+{MJ>n3X?b+X58`{GiErCxH6joZiuhJM{#Ws} z)^PVvrE<9t-(yXD)*3u-Q6c(iG{2fcwchKaq+Xk8(tCYy-CE$n+)X{#v1nv61ese` ztihoZg~2ffh{~AQR5^(5zSq}dkyWsi7<@}!TaPM!fOlV0Cw=G#y|)dUgPwJC>N`0y zf)-h^8@4Ti&;v}rO=GRuI^P@aAF$gw7pID1(3v}H0tzB;*G}KS*leBEyytloVb2!vKK|fRq)QK{%l0hXzKj4M z-#B@6IC(j+I*uism4b}Jk9_Ph^>tuBd1l!|lqtEoq~dd=*}6=I{$iqysajSZm2+e> ztvs{x(l@;H z1PiIS&<$;=k0<_{jW4Y&?B3PXyrjT8C^u4mGvot<(yd*Yjbz)q6w0`&89BSN0Q)%@ ze<*28{x0eD+}Te$sgyN6EXle_=~mRN6w7gaEcBjM8*PO$JUb=V3!yjRg)5w7n(u7O71B5Pum!r{lv`Lj7Fz*?aiYOf{^}bl;haLmJ`7!q4!uREv~gV;RMc)dw#4g>kL+-gKx@fD^Nv$)<{}iE`69kyJpQEaZw2#%M$~rZ8_A}U&M^Z z>pfJfJX_~yeEGgmeN9$E=K4DFC7x+6&q`axZq1;%hiD&uV*dK!$% zSX%UWCs(7Y6-E66qPhMxC{JHjWLu>de^d2J%;Q(cK`rpI`5wC82D+RVdzwZde80>B(sth&#k3 z&ok)`VGP$~W}Hfot%?t;uTN^VZ3f1v1r_MD4`o$DZF`RKmXdJ;pSQH>J6m5`S)G01 zyhwm8we7k$-L1|BN&B*?Werx@d0Kh!P#6DUO}M^%A)DsZKqcG$TvtqP@EZU9g0F%~ zHuR-9UUpFKtNh|cV?+9#8q7|z{XP$5_LQTnnyiNFm9hvd!hZ(cG0|5wRd|+Os}@_O zljts84o6+9b(d;Iuuak{Co)B_chaoeDjZihH;Y8wdU78Wiunu1wYr7pflfrS_O{FK zA!ex`1=V32B^w9IsKcJR#k~YD%cl@}i~V%1uBbI)Xz;BM`PE}xoQEJ_z(G-Qm**R~ zdI?Ia$J)3uKx5LxRbk43&og*-nX>A!uCDK(o+1(5T+(~gXF*cGK0iUDM)%*8-R($b zB}=>W#0C!Wbj;T(RDSlS0tz!2CpwF{`}&wDLVrWMwecLLN-UR0Hjc*V9?jb@o*FkjHE#4jrk9IiHKnHeaaD-H*cRQ)Jn>#axO{s+ zzFOs<3qRiIs%WrfrNPdYYak>R_hP_+h;6L==E-$vWED(csQwbg&G27g^i2U@Te`h1Ly5Sy@)O2#1eg&KUff=0!#R{9odaP0~@9>Wa5 zTf)qJA|YJuJxj2RS)EIbaWKB3ie7yMMaHu7b|-GajM_U&G%%L+FZb?m)Ct z(gaAitr~ncpPnZ`_8U(tvFqkj(~d$jYA|L#eb*7Pe=FW;G}^rUir#c&25DMZYTSwW z>#wNbsbA61POPHcl5>!;KYYZuo!HRO)gls%Z3-w*RAD(gtBH5c!<|s08_?SXJPH}# z84bkZl)*jlGuYS8a{O85~ogvY!gFID_G>3RgcJLKbHbk3&DA zNI1<1k|jGs%dy0YGV;{_ZS+hV(*<_oH=E?`E5%6=-S zfEip*Q{W492w9l9U}nbe6K0NDm^qfFGP6KqW@j3`>c)BpEf#Pvv%7$qZxv?5lTpW1 zsO;UPlfVKZ<955Z=hM7Zc`~_kSg3xp4a(Zno_U~Fww{IgaeN4V_FMSz)cCoxK;=h2o3{4>KW-{NKD#XZjQZNbk6wk! z-M?1(i8M4T%Fj4Z6a35v+`>=PVwImLk3#&YPmX)8 zpEa(rvHE+()nXnoPp$?`VKgO5f(OfA;T0JiSAQ^s&h=*{-IBVCJ1THbN49)irRg=3 z-u7ozCFf2QI)GJ3cnz@T#`EL}Ko{+1CwD=+U=a-zYYi#HH5zrn%870o^$gixr9N_o zz#8n4`kY!0WThS49|(bA;vr8S)R8U>VE(NVv<#KPTmuEc+%7kzFhz2t!G&`aBti=E zn^skk(BIQ3Y9I@fjwMjiK<4j}4zMVVLcF#{ytG>$b=_^}qYI-G16fN}U8F^(-@8)T zK@i1&Fls-D)s}wkKnn-4a%@SM8gJuD`vi)$r8-cB!OWl8Xz@uUsP$kL zEHzT%y@&=g?@FodVF>1>E=)(~ff+gRt`GwjRv*dZtEj|HE_pO8-Ofw*2fZ202J0V& zDg|0Mm4*#r{$LKZip~sS^`!hZJ5W&jRn|ZT*Aafk(xVwVq9bU6=GU5uFhuD#Zk~D3d47j1y+G^HF<0?uB#pC z{xBHV6<}KQKT)yfZ21?*PmSwx-@-Wx zi-9pFnj-$ybp`e`KduAKKd>so8FSXUly9}}jX!NHZd%~iLJ*eIA+ ze-UA{@t8zkj)Hmh>xJS&7c~L?ta+W%%&ST)-5Le++FOVGMzhdhTanN>eq4d)df&FN z=Xw^SnDOd~G-fo5sJ1e;P<`}|S1WrlR$yBn`K_d$bZ0bkbsGSpnrS^zDLPIhyF^ye znzh6QrK|1q?$jcYId{lLti{3-kxG;*USE)b@Q_8^%F!O?5}X#dO6JLX+F0_6QuFFF zfwm;Fa#np~b<}#Bof|z(WV}?{!dYEHBBg%Xk#iFBDO;g{s-Wp#K=X$dibRf#r?@20 zJQ}0XoSOui+YxDDKU|~fVMiO1SS2Z?Io%us&F3IsUrCUGW|!MSvrjnQb#G4X$G~p3 zw4k|TSOxZVa}_~vOS{KlV%J$o9VUggAm_2n*WOo)pI00NDmvhPtA)|jWh|>AZEj9R zU^uLaRw=juV?G&L*p<<3psQn9?|M!m#%ObPjIbJ1^zArUQk7HPSEa|w#lK2Ezl1|G&_-wh4 zVyYSPVyl7-KCz?%WR!76G8JZA}ut7G@1#LVo6qu+I^r~V=x-rF_Bf` zk%A6P>6$K&Vqi(qx^`4@5=?1S48=@>DXnj(B1G#{Q^NM!Rg>TdpSGa0lVD1rTKwr^ zW>fkup1dc+lt#9o*vZVd#O8RFLTg~CeH3zdXy>h4N8e0_J^6`fqfL*I!f*=gX}}G| zo;oV)a(G#@t>&DH*i+j$)t)vsr0!n|&t#x)zl1#LYvlqCNFYhG&wSS?sB>J=H77Yf%S<`{~1}+7#&iK|{@+hD~AI<9kF} zbl+afs^wYjOxgA}a3WKWFfb6HS3f$CAMM!;{ zOZBEPU#W+ZJWOo-o{zBoFb%=+ZEimOQ3lTGZaiI|28*g%pBz${uWNR^N@Bqqiv;O( z5_T?qN1ak&Qr$(o(I!iD8Z9O@LLP8jF{zz6P$Kw`0G86;36mOOc2W1DG#3>`e$!!6 zXWCNt=`g7ZB9$UJb4RLcbYYX~-di!_xWTkzI!x+4f)lxu{r`;+{cdm;sY&9%VMEv>7m|)>;ONN!?d$HbZtRl))z^^{|z>1e!_t7UcDP zFNJ%zLG*kEwEsgR&7?wSLi<}0X)&p$T2^CTYbMpKfUGd7DFt?FqY@o6kmk<>QCl<7 zlY*#wVWR6aJH3*lnv~Ux9v`UtG&rf6v(Vn9;h>O^U*{ZHgfSTHT@PA13pVw<0iB!$ zo675mgEfiWw{ zEkif&|xs=t?F38Gy zxsHBWY!~A1rX@GutXW1NYHy$9B0#yRtgMqu;Y=_wr{ui9PobQ*`Kvi6sX)1|Ki!$j z+?hfzTb`AzWxV!lE#sHH)zn(X?feU6ybJ+a=5FV&SCQn&eze92Y6?=ed^9U}sgc!U zOSEVoKed>z{nTRi&&s790^th{VYe^!oQL#Uye;AtF$6BtxY?$3VzK*BySI|zxSasqHGFMw%qKQ%1t{hdZmvhbS?hjQ;nNfJ(VKMb$wLXXz{ZUuW++= zsmhISqKatdrkzhAZkGAbj<1-X%dDk3Y_AYE4vK9~?z6AbKVPv1($YN?G#_2IcIPQt z{05$21sHSe?M`1UK#H|qY6>?*Y~9GqN!_jJ8&4$A;D<6nX(1LWT)R``Lgwf6ytJC2 zSEk~PScV_tc-gJ5p}ddn6)x> zl7M9bAN?*mv4~ZZzU@l+i%`-Uo+{&OO{#39c3mlYG4td1J=BPJL@2U()`d1MMvCcL z#7jAs{@%jN>AFy!NKiwAuLWF@O;i`^yaW;FOR1C^A;Nt#4=g+1BA1TJCpO^7h2`@1 zc}dxTQ?r*ySyV8sG-7)nTAB$ghZTCz?{sHcO|Xg1$`oi&t*W=tztkJO?y8Gi?D zU4BVB&xp0D7Q6jg`OKE15oxZ^Mw{L$MYBii<1DP#X7XuT1N!Bbi6GoTnoTz?Cu1CP za+Q;nh-~@UZRF&+SRdfjS|gy2Ezk(5O}3-j za5gLqbaPZ2&R5C+MklXy&{_|iGgg}Ho8~4P*MTcdcA|=DmgRN_foN{B5g@}H7U-xU zDH&Tks2P_j4BTd~W_)pkrfhq)RZ_^I#lB%~m1d~q8ED+&;C8BVW z@+l`D5pnsHNWBq?&k@BDoFo?zF=_0tVJasX=DH@rAD#BZNrz4_@R&f1q~Zg|#iULT zR3>C+TyvV9ffgw`Ei5)|gq=A0GetS6mYk2j%+lDBubsccu?BHB3$Ad(wulzkGlH8( z@YY6eJk|0cCiOke%0D&Cc#>EGOVQeRKj=d0U4s#4T!A>w5Ru@K*im!=de%dAO#3r%ib#{TP5F&U8;9cb@Q)Fv zP}6FHE0hsWqQs=WLfM{~x`GEB2t@vBu1Ap;->Kv5GE=qV6bd(Hc!Hg27?PN66uA)#L{?_5T%>G>rU=O1l4d)#QI$CA9ZD*2F6Jw;Zzl9$Pg1lhSW~&unzkv99!B zEoDLv4OyounzlXv0q!g|{3=w|` zavgR;mTFDO>)0e|eH^`C$Hq&caWrl{3zTwO(W>>VVTs9O)qInb-we6j8OmPI$~qfF zIIWd-mr?Dp6!2|f@1jgxcZDCcMPRqe}3BAM{*5hk2d{|mt;PJ0e1S7~7{khoB4 zguJkoIenrzeU&)c`wJWGQn6@yucY*-Us+?F+r`l;-8ezFxO@b``Lrq1#+^3(##&2} zy~t_B@Wa@id%ek_}iW*vM)npBV{OQePA*; zOyST*Uaw$f$Q_U2t#>|H`2EGFVk;(2)na56FIcAt*@yz2es&qD-pbgwKT z?4c0KmYo$sa|4~`E506w^D+`MPkO1rN>)XjMSwm)!vG+^xdH}X)EmRa!b0r zl^L9jnB`ZVl)^b$dCE`<-3FPRhjKzkukG;#+fNqhF9 zl_HFJ^L;y5v{be`@pM+p{!uq^1`MZ<-8c25mgy`(dfJfIiQmNyN&20U^tJ&l{~ami z2DImQ)Rv(QC}Jmzu70(@Dv1W-jag_++^KLxz+m}f_6m*74VK=46Lnvi52lvkh(w2F;S*Z%C$1VaG@*XG;iz;?ERO1^{IWOwu^W!6WIejF8|$n! zdm~fmF0?m=?O|U_Cu-A)J#bWGdXc;bQyKH3$bT;zAz9a^g?pi-3lVfc{H~3l=X>F( zZnvYB`=HF<+R@Z~tgEymoNn)9&80!%RCz!9QhHO1e%;R|OA~8Rr2{Nns#=Ts9$;bB zk17kl8S>a25I4GT;CnjWTM`=RBS1#C`q%p+R$WbLX^^ig=Scfx}d_GC9Ys-Em?wioea+kvBavTZnw zqk6IccR{?cC!4Pj%9a}_gg*9UqZ26eFV@~_*Q^|Be2m@py3$e{c5ED&pu9xdVgN2- zsocP6&j)#UIMqMSPD)k7$l(MlCH)mfcku73psgUR05+&fvFqMXG*= z4UtwhpfzXUrLG3kp)=Uw)SxLnJ;Nd;tEN=xEbA>552pENv9tZhAj&$+=1C=kXv#U@ zTLsbg=TNn#SD=9NtOa`pA1&(7w?ER@^Q>a%E+w2NZ^dus1|gc&s!tP*=x%w10Plbt zQ2pfYm+8!ToLd^uQgdt~ZNa@OaBKqbdB@gLb8N8+#^)THi22yD#ilR$o2Bcd9x=4~ z3M)x{F0ww-wia~!BK+*$vh?gC>u$9w_XD-Q#Cl3^0%+SM*3YR?b6v5S2+#J98f#;uQLwyVh9u+o}|;ka_#`=C7hg<3&ue-VSp4EgofxuU`d>qy+L zg6;!^aOM?*QT0J0vKG<_<60(+3*uWT+ceU-6w6$ixj=ayEe?}K)} z!ZYWkObYbpNS?$DMsaHG_Rt)~`QKiKER6089N|dxpeWOO>~K~8l*iVh)te~NT8A4V zTQ_i;E-sc4x5(Iu|KgmZ(;E0UObO>sF3gbH2$%M?aZaoyvNRZRL^U}ThX;0^I;s8{ zDzyzWfE;eHzzu!-4S0Q4U$@xU1l*9Iw7&-hG39cqqm4X}O))1Iyr~1KfTP*om$**k znP8`&q&D)vrBe+&oLoBDWqxJ8)*w1eu60|KxovpnOoP$GeM>oW!S>-f1Iw5^J^D8D z)J4C!smjNMz4G}GQCxwD;^f~3=LncTH_L1V076qMmMSufwKtP)`<8yW!UD$O-DO_M?t?y}VGV$wVZB79!9hdZ^eFGjgF21wYhgR8B7Rl@%LN8rNXGFZ z70}!Qm<@orM9|ftDbReNyM&jPhc|L|Dsk43n!fZN`#~p_xkhy#Ft4Z!{XgR7AOM1! zg9{aI679^HPk3EGT6uL(A^xs}l)n4{bJ9s$GU(TTm{;Y#{XU`?4}hQ;zd)gAV{4|! zbLhoCtf^IR7b(5YL&kI^o9ghAs(AAeGjc7$#N*aIWa$d7C;;8rpvUa7G{%_{p0J^ktuq~c!a7SoJ5k_M7Fl;FrdCa5F&Np2cb;%n?_jh}c#NZ% zJRM(9kueVdafg&VT3nZIbpKTV6x?17+16TJ?ewEKp(Q$V5zq~4bFx?v9(V>n$4QwQaNvOet};4Om7N*fmSKCA0@qD-KBAX zbm;|~CMD{r(@SQQ9@vrTCHqkdDNPGru?o`Md-TUEj9Aaw(uY^*_${@i@EjIWyuU4G z^OjQB6Xs4+a^SVYZE0x^8zmhop3YvgG)byZ5^p7i=OE-9o>4%wz>`y zJv^iPy(|zAOJQ=y+w{Xb+>w-ky<+chFz_L^S@^$4t7IrfGvCAaV$go)Ju4m5@Qtn* zE@a04F-G@&&vft$4Gnm1+$J0#%n_$H9Dq69)z7Hx2R26Xd`8PZuxRgf-Nnp&%4%eF zBxN1`$8Lp`-|-`V@LrnFDmmU+4g{ln#o6%I7b{RiKKrxe?I$Sf>;1(r-{~~t0&Ek6 zFFaYo`NXp2mHtlJU!Z{gj3MGQ#wmCG1Os{U!m+vea^E&f*7J7KX@{jcUPsC*LG^UJ ztnFZQA<^V4xx&j!^&Duvj@OoYm7tS4UPU@*Pw#bnsYiq|znv|+C=au26}h7-d*#qC z5?>)LNv3Ek9^lavQ^aDLK0@qHPBUY*ctt5zJjJhkbWXkr3!|boEjTNfG>*ijda2GJ zCa-5y&YA~GX)mdTHUGh*jzO!oPBSVgg%nLf1w#(m+3+&b_j;;i!z;W0fUcKv6Pm%; zQmLPD^7B7vhz%Cg&i_Gk@mq4sAHspQ4>!FQWYjIwj(XZ>!y}!i;xXhH3!ht`6EDu^ zOAVjX%Hn*Z+wCSFd5$wpa;S$bFD><&NRw=Nl(h19+HcFpV@_#J!%ck^R^5yL z0}E2xDtlak^s(0t0$t%Kf<`EgBIAJ>`PK!+UjMQHP6Lp+4;HZ90@?-8#{|n?Zfxds zo!WLD0U&b)5>B=xOu0Z4?f5Ebs||VS`9IPLYqDbewDi`B{${+h)bei%fyq%sR|#nU3e`k2YeiG;f!H<38T4ui~g`9dwlhjd0Q7$$t)l&}jYM z>95_mq_a+8W}(z9$^E7Bj1o%nz0!6)d6wdxJ^o54Rt(Rp&k)_tf_fs|p}D2_5^2{U zD(k_!_r3a)X1TT1I+GR#nPFKUbrrIU87yq~mvIOvcmJYSH~tbB>r)Sm;rPl$vsG0; zq*zRmzE!IlstLC0P7ghJSIKaTntJlq(igANzxL!ebZ$GUDi#%|wQh0p4^?w$ju)>W zRq9V$y?B4?Ue@L!cJSuqt@5pOG{u|8N?(0XXS}(u_werp_ox#?&`yD&XJ^d}z1mB4 ze7J`f4^x@oot1j4Fir{voikS)A!6z;hI9er#2Key0RE~^X0XqubB7cVSC23Dm2%RSI}*tZGJqAFM}1D z4x-LF`B8Ft?yh@EHvYVZ^miyl`tu;kGlcs3^ZwGNd^+t9n+vXTkI5>4*OVq+qR0RqDa~9$;{sp|ftTo; z03IeaT0tiRxUX&_Wd?9R{P42e2OEQf%fkG}Wm5aHJfY$SAw(42v=Urm(oxKcuuK3k z*tvTsKYvO+U1A@nbeo$O=t^1MUV8c+g#~iY-oIg&*$j~q-Pwb<*&8i^zj!PQMtZib zBJPGKp%1Y#CC@^W0|nVx0Ap0Z>JvhixXLfEf!tdK%@sIG)7a*B(na!;p-9+D!IQ&O zl<^3ubp2F7F$-PC-zh7Qr$`-5lvEB%dtOdeTEsC$Y3Fw+N@D|MQNC=s;Q^}ahc+of zrX}T}yf#7fXL%^^7e#qx2B2@LDG%&x4az`EgYxx5`l14K`F#Z%Tmia7=S$J$lw4Jp zd6hI>j{k?+1wofVWoc#*bh*BeE-S59b-DZjRS$+PTb!Z6!O&&{E56OLYF^LWJT!mC+b*{SMoC4SM}w;2Zpw%y{_T!A)?-+QTC;8fmdCr=R(PQ z3zYoso|@>wZdJ)mq2#ltbjA9m7O%R`^n&h`Lm{tRv z_6*a>_s&r!qOj}LHjFoyCf=mBVNiIbzbGvX3a>ef{tAP_FC3*uVLZ(9xe+8*zg3o9 zg^)EW%g>4oN=tiJQ>&`@?R}O8S4D=afqhjh9%vbM)5+D(((v4=Uk&AL9jUa^MO7QkK=VEVJbVt!RY7X^-D zG0WFme8MsXPadzL96(65p#dr&+CsO(ditq4pX9h6XY+9eNm&kYiYD&MGR8y+zqnZ+1e_0j%)Xmhj3a==& zb5l(!>NusAq1->X%DYHXJ6^c^`EShe`EIre)zUDeHZzNd?RV ziBC=H#9yjOJzJ)l)S|yAG6ESc1NKKI)%!0R908MBMl&LKrK;W+RhD0F_}K3pn4O=0 zq%tq1mJ5hxS`>7KTRJ)v5SFy{X+Y78NOduQG zJBrkb)%mG_0l-mh%uxkAvjE<&QRxdmMLd$b=ySIz7L|d!)gyURspsD`G?E8MLm4fI z8p$4sa75b(w?;-V?M(^r! zFIRUbrSsE3>wz_pt(|C2D_+Js0wTeTn|SAa=|+@UFWT@GtCZOgdKk(5lGCO-qgQB1 zTQEiW*)00nPCL-z#0O#viQvZQE`1Q&{!h#n>walAFLw$)G3_UAjWUQy_68Wec2QXM z0A@_;+`uWw$0@jr*wmtyMc|GTL#r5Z-;4pY{0Q9AD_`iM%m;h9S!c z-p^^+?S4)pUfxdZjBo>cZf3RZy5rTPAva;~M@h=9Ubp$MerB zsgh=kTAQHO+I-TD<*xPnsy$?N3^+o5j&Yqb=EL?aF+nz>VA5=a{Db{Rf?aG+73*>T z&XNqo|f*S|oeG(zC$o7~V#iV^Pq{FJalS@T>XnJ*N?rd+s zM7Yo(CNGcC-a5Q88v^}e7SqXP5OrJ+bm8`4pV z0);O6yh2k76q=+d6qk^QX#%rCdrj69YWEq1y0ecIYR#0Il3b%epG$u>>vP4||E)d) z-YELKmiPay&r*9n)u(^5m<87Kc^MAp|FJ#|{C`BBH|zdi(C7IH|3RNKY(LUxqAiu~ z$jf+EE6`{0b!L6qW4fQ*8uEGiihtziV^lr;58Bk2`_qYr+{v@VWdTciI%QH|J-i%o z5C$x~H}6a@8uB=+ojLERX(K+~%Hi#MI^Be~kiJ?@PElyz57ws0DBiL}?<3&U*uqY( zy&A1(x=rLJS{}tK6d#m|_BViTNAo}y2Wu50s~%Ozu{p0u{*C!8sa!g(Z_KNDHoEp% z4kq@c7mdNe`do0(gwL?L^Iqd1WtqxBdM&|05Djn218Q}~C{hMqf-~;NJ zN}-jW@3fHBDO@Y|%&^=KZ%>_)2`7=i@{J0+XVs&LNZG1AYd zr_wlbZGqeeLM9@2X^lkt8}S&a_d+#us#+-X$lY4zB}mEK^(Q(QgUqWFs(YIvIBoK^p7v|;l5^d+&pj!vpn#nLLrQma;+O94ZuODpc} zn)^yLDg`a`q1;zgsUG)p{JCs_g|`2ies9IYA}%}-c}y+T6pO6<(dZuk9zFr>!RPu1 zHy^xDFB69`q_n5<()K(hY#_=gW-+k`{F4@KXwF9rb;;2fYE-6xp{Gm9zYPxxzi{v0 z7#g(ZKQMGJeN#saZFLoeRHjw!)c-#)XHPhS<0N z&QR#xbmuODp$aNPZ~FWPhJMTbh@lnP8bi~(3m6JrNVnVba{enU24cMSiGlol&1@jc z%YAGh3wzPy1Q^J(k8-Q=Ov|lw>4Myjd_{(iFpzB-|5p6k-~4;=_hh_JzY~wqjjk-s z?+ybINACX3KyEz#h@q2@HHNm7DqyIakv4VaK@l%6{~JSB>E9XpaM^6Jr~Orp9Pj!c zSepFkBbJ6d(pYNaUcl0aIpo|8EcLncZ!Aq%^6xASyJTi*n6Jvxpw9n+B_H`Cmh5GX zrROCISXwokM)crYt=2!tqw+m5x415n+V|vfQv1uat|uQW{dSGY^ujcBwMoKP`A}*v z?jZH^qPV`8=@`>c^+hwC>1;3FP#QdoTzm6Bt=`|wqb2=-Fa+1)2=BCWHFfLB1E_Kz z%z%B9L8ba*;_Tv0mGp%1w6Q)KsSO?~)m1H3s;3=Ps#~YiiN5@(Rqfjv)o36TruwWO zsHR_6sg}5-QcWMDQq6Q%sh)^esdBDT&6-N{2Jk~x6K-f!cXljFb>l!#eSK4>{+}}2BFmI4N2M3D_p2A7PN%D-;11Wdy*6ET; z%s8J^PYynTV+@Qk&j9_!PqD zE#Xf_c=lL|!d$E9BupJku|u#t(L{uecn}IO&#|<92(RVwT~5Byt+*j_mk074b>W(EhH_6&w;$o$ zcP&Fn?3||e1Z8#2*5M(!4CDSWyOyg-7Zpl+87(W80mKkbND9*#V$0tUT<`bW4;Erc zE0tppCV9L@p>-1ZJ9AH3It&wt&s=EZFwDB$9!aN%VX4Kr1U((bQ`khzX$Vf+CJN+I zv~W0gm0mm3Ps4#!%Y}{(=i~iXR2N9tgU~pQtIr9D@y!m*0*IuJHK@l3IH_rrJOaLY z9(_B4S52s_q`_RaN!H;rCKY!z=E*tL#3$~-eH3Hd>W}isixoV)_h6D!mCro6r-H96 z6&(S-NY_#UndGL`(}PB0dRRA=;zsdfo-fd0Q-$f}G(870RfYNZ4pkcsI}IIAoksIj z{?nU*j98~Y7Y6G9SiluiLQwVc5$Hix{Xp}F@KS8|62TnazZ^~xiM*vQnPw;Qhq^Cm zL=vj}`B&+tB;HNu@kL{?5C{UMJ<6&_Y#6SKmi-!2_p!XR%UQF3!7CUh`S96SG-oWY zF0~p-d&gq#3E}Hwd9d_)1KEz_zE!HceJv~`Oo(Fe_n2VVgza;gcuYk(rXE~b6hA}O z3oN7iA0sG!9PcJ|8j-$j9DkvcnvAFQ6L`3^EGPZm1l~yJ*k4&)bQppCs4~Aq)hA)X zqkkNAn8a&X9m{#0K5r6cOeL2jI{YP%b3ck3>BWAiGn2)tbRJ%Lk{g$!iphLl$TmcY zoEN`%UHAye$7e_qFc#iEh#n;K!&bdczM|iz@U_z0SZX^J3r;IyY0Fezy=t2BvUsd< z9E^AXPUF0ZPC0B4(m8!75BZxKr#^3(y1!xSzJ~iv&hmPYDLIY%S3)vFn!y=YdtAbCE)&IyVS~ruwcYKId zb1b1{VKb(jcAU1(f>efPzNSaBuqHaW7tNT>k6Z0N_$s|ks_2#V9Y`bRU=_4c6S_VJ zOX``8sd^f(RuxYb;q2{a%F_~8qJC1I;DfJdX&TBiwP<<#WgDQ2^7t1m&&>m`((k14 zWS#eGC{& zU%bk<`z!vF^m|?EHy^{FiQQ=HeAvOuUi4@_Z*S#x_ccW=fCzGX(#-`}oD>^n7xFTG zO?zT57_tn{Tqz6^6EzLw@4BkXpx@noP1_gprBZ4Sie1FNk~Vdrn~UHyri`Hvi@0am z!`;!I;z7J{yzXk3IoCqKr;AF!=hkbgy_g4B<=%Wv-52verTs(FeU|Y1I;+e*uhOlF z|6?sJ^rOeivHp8(=PN3|f)BUqfRAM>_#mr6TVIjQN~{PUyiYAw^3uLP-51@56@kJ_ zn(n+7j#q4P!+5E&oOYj5R`Q^#KbtG3vi+=qyZ`_NO>Wj#EElWW+vIPy01V@waFMRB z&@;7lcGb4E?N zOhC1CF<&a_`f7-E)nGp@7^(z)D(r$Ugd~dP|7}Q1c1TrX4>a6a46~jMf5(5t3A_XJ7D277dB@TUJh-1Y3C(fIf7Z^r^ogC{ajM1j43Vwz; z++@I=<(ewIz6zHCSJ3@baJULSX9n8=Y$<@l8v#x&%KuE9x7GOHRWw@Rzdxci{*zI} z^+i#X0yF^%ICWIBCUe%leo6t3?o!ItLj^m_wkmj^3KnzI3jbNY3ieJF+{g^h5MZ=0 z3nWZke7lCbNNdm0mNgjPwm-M@JHA4hBTjPm}XQ;d!(37k@r+Fmy~)y z)<3WmvZV&fxo;^L%4N`?w*fVzh3K)20%bH(peFfhkT7d^R}oBe_!C*kwj~6p?mi`B z_dvaZnI~^nG2d)eFt-ZKRSL*v)=uj1Jr79MGJ1@|_L|tw31l#t0Z@UdoY0^L0YyeD z)Qk=*&^-BlxUk-k_A2x%1!|Hj1PG{4oC-}Fpm7WlTGZ>Vxxda!my@TXxKUpWgEa zj^_(}KfF&L`6HjGE0cv8Vq8frOkjzaGZq9hocXGkGm8pkB7nDw~BBm#obIL4>$$i7$aIL=XtTFI)nCs;^`?Jtex`$P+V!ysM&46#>Ce2JzRI!J`SP^U zU^nzvYcGoanL9h<0WEO}jB;MxPHxhO2L25Gy3vfEd2cJXy!Vv(GY{2urP9CfX2m(C zck#MlvyygYg1RaR<*qqGUJ!(GWEZ_Hi7??slU_8{r%~N^~1ZSdAB|BGw+HEgR932V6Ws#qK{>;qeDa+Jxm}z~?Uj{&Wrg z@&NVP1bkfHCf)*KH8l9z1GHrmddh&;S;&0Z`D~R=qXXo&nb&gBA3#6Xav6*3CY|=` zk3jqA(h)7?-u*c5CpmTvq&4Y%+z?nlt!{OIbH z-JNOd7R+C^mzFLD`)*k(JJa{k`7L0-y+q9ygUv(FRCtYj6tES=1$>jh@1wyl?4@a2 zf!|J|Hv->HgHPW}=eMG`fOlB}_?D+Coq)YmV;hQV+Eci=R=?@!SKM4vQ(zS>Z51uy zw<3Z1SM-hnUu02+n6ECLvbOOWA$Vt0RQ}CRP~%YRcWU7^B3v}((|C!_tyWTw*v@NI z)-bDTDO0s@nNL&hiKnyMG1Nqsg%WOltY+EKoTUgC&2m^g#qCfMj@ZF#ls4z6CDfa9 z#KReTcJP|Iw)AQTKPt_in7${Sf2p&b(gV%J+Z7bG6Pw{iKYC9?c5)9Z86UHDazDQx zI}0J3)b6kED? zkKXR(p7sf%yR9~AMw-8qm-NfgiXVy?OYzGnXc@9@YkIqVD1Mcc(Q5J2&&uP97T;4$ z5v#@DqkQJcOYhQ^{d~C2K!yXnN9kWTspYX0``|;RAd?Jq-~jInw4j4PJGt>Aw0mMh zv(aWnGy3izALW8~MTLoG11iev*^J5^!glCp60KPVb8JRa4#6Cos#s-is#bMO3%iJL zQLDPylx`n_RW)6DxFFq{8)~}oTDk=yTr}OhrqtuGNJmqUFvOgpmN3|y;in1fH3h4< zk_b5-!KF=2R8H4iS98qJ!V9ib>=A5;+PgA6`3V2Q%HJruQN<1_wb+pQ7f$UYVfbQ` zeNgn%+-n=tFC60^bbifSpmE1=4|ikO9W5@lUu2FIEi#s=P4fF+DEkBt@W~z{=FdZ~ zjK%4!P@8KAjVbHY;n;I0XZO=%DC{Kmy!=^#+MGoG-!!M`CwW&gB(KmY2FSNe zV;!%BRKr)sv1_Iq8Dj!6o@N}om3`yN7`tmBr2)?@ek~*bzt`$(JV-aLU>jTNRry_c zDshU3`CX0vgwI3^pRvDC&r`gN*Qg|H9tWFxaM=sr3YRayWxFI=c?w*%Do=Y)@dzot zFTFX%y`?dY$>TI{AYJH3olYZssX2{1&FlD!TXQ}my#3`w@87-oY`SooCrI<7DD(_w zXtJVd-WgugZ9y?j-VnMF`7E3A3+T!j?jL#qdyA`H!xO7`k}&m9Z0c!Q3KS==Q2qC# zGa|bogzXWPMQ`L8h@5Iwerb&n||Od*XdkSpDC43PF;ifBoH3|>@8h7htjXir~PMnLuzxL?|0Sb z3&G;P$JHuU-iLQo{%=0n%JcC%`tfgGyYjm;V!Mb*?h~xMbuO+#7=ISE7c;qO4dj@# zU#(=YC@@MiA^QuweCeO7=ZQr?uYL_v>jWYqI^~dL$Uh?AZ9*{@_%Lb98On0Ccc*g~ zusOTJDyni3TXxbjXzWEES-IkAHM?pRwCs+`KLPZa?55PAn-?)zXIqClT*4k+Jo_^9 z67Md}IznP<<9qo)c zw~lI9#Uj2q9UEyC!y&~w{73^nO6G1*1+`nY22uuR*OR~XMD|B3OD^dPo*{e3S z%|PS6us+SrfaRa6k4LeAa4|3t0ULrODrN-t8 z9q(OFPS<$JN)_6?6C;g%_(8FvH;e8{hP;R*W27Ppi~86M^4ih!@fk09U%Tp z+(eBMC^^kKNDpr#C)JD#JCls@0QznKNOSG926_r_16nR&u7;#wr!4wi1`Eg+= zwP=nTT@|%szd9l?)wo7i@9?q_x7u17tP78XiUfjxXVcM43~$uGs^?9njJM_x?t?mS zTL0)B)x68gwoTbDim0eH=z#b{1<#Oul+Qf*6=KDO_sZiH8a3s|G!e`c0+=ETvcs7^ z9-^y4SMOp6dVEc)c#j+0I}QD$pbsn4tb3TZj5|R$?_n!#^H6fT&nx@?8Tvlo6pP6r zOj%&A>;(S9E~Lts#TF0u40EC$_jxH7o6;Ca>Lxo2jqBdZmqKXv|Dx_oz@jSG_zx(G zdI(f-Nz_p>#f1j7+;!Y;U}$KTmL`LWODUpYX_+%6-Xx@Osbgg|m6eqh-4?Q}#wC~X z7FwCwHg&BAwE{r|G|&I{p6~sJnG8lm|jBs}y*S`B1 z=flynU=kL8){g6$Y$l?-`ccU}; zl>I*M{Qla$Us?=rzXS48oB&mDuOjwUIInMrpY5l`{@P+w^R4+Jg2w%{_kL|L>*_~v z>g%G>1zO;sdg!RA?D(YoWV~`o-9^u_#?q%x3u5T9EJn+Xk89U^TXZpuwl`>W>M_G; z_2b$TWQ0EIozbAt9R& z@D?^`^s+G8vjy!maggTnwul|D5tgwHTHY!w-z3XR1MvZ8wmj6Qp+NERJF5KEWck`a z%~r~mD;uC+vOigVc&#WW zS*~l)@{>o6Xd97b=Cz`nWI3!s%e#f;7f-;l)3ru9uO`bgy&8(Pm#}>932pirbb{eYPvLnls1}z^HmV2JmE+D(B*TLvwd_yq~5k`%k(ysrFjkY&v zbZV0k;}=hAPmmEFlJ(AL(CBetG-jK2S{kVh8jTl5{kLgDe@9M>kkihd4V9^OqY>Wf zZCXAVErij+28~`8MmKKLz9FNBQG2ls8r>?4x^2^X|G`Fwu-E+Wow&I$s(4YmM;fhc z(CEDlMw#}!sC^2f0Tf=J290hPMjKy54P4Pr^Zbs%{SYj_y{e%YuN0QE$@0TQ&H4vh zu4~Zpll4ZR{mC*jQFEVeVX+Qt(CThKt4@hp)EQWv>E2M3y@XXa%Ih<$m`IFK)}ZBy zLL241dh;e&#Y94u7vma=c8IWilPtf#T1=Q^xxGQlQ+N+9 z=7i_S@}a9mIca#$XwdR;VY!hkM_et+NtSAZmg9xxY_j}4L6nm$cXn&2oV5?tMf+5O zC?{DiY|!#$VVO;NPD~Kx%!g%cgO;}n%Q0kmsjpGatI6^ZzChT(XcU&MU(oKU#1(wU zV(sb579B^eh4Bo-xOGzg`0%8mqocB$@xolP4n8+6r)eFl*v+?=poLoEb5o2ygu00$H}ChB zg?eMEcCU1^GPs+TJ~wv>H%0kyGu`KA(p2p`a`R8>Ai>?daf>Vzy^`Hpy<{}y zH*3SsvzwjxP-2jln&flSR=6p{JCVIl_}r|&S$k5tnGxJg`7{~LdGtH#H{@oh&rRaZ z+MncR4GML!Q_yJE``i=@H&$}<4Neh=?sxbm?Y3%mvn9BjM4y|xgqxB)xVgvYX30(3 z2hz>3;BF32m4%ur++>lP4n8+6Z_+x}Aevkh>f4S%3$?`OW}t8rMQ+~jDGT++6zyK= zW@T_UEq!jzi(XuW^GV+6J~xx5Xx~XUvBBNEakDH`v2c@0ZZ6=oh^XT78@1uJEjrs) zqfk3zgBEI%&kYaFvIpSi37?zw+RCaH78_nQ>zxtYOZiPQn5m-o6_S^sJ}-&dx8!9N z^_mVrV_EO>!b8DIUcR|X7U{4y>^ytf65LCo&kK))l7GU>Jw7i>v@O!hu;5+}Pmv`$ z&wYlxbntm;sa+&5xLeBmExtM#WK=HkdHI#Q40(BK2w!aY;ZSk+$f9G6o-s7(~z4BaWa_lRBia5>}DsfMF%O< zB%hmKacl-RWw~(kgwM_TRP9M}a~o1;1b0(DSw_=CL{ms^hWgwj;{B%5%|(2-GDtM* zeQr1!E4lfmn=I7f8)!6j8@465i$tG`7e#?e@Lp^0Jw6vpv|+U^;)V|k?&0txS(bUi zLl$}H;PcS(2CbuxDxp#IEk1b}q%2E(Zh8neQRL?RuCgp|OcXn9a3ua5rzH%0j&;+@zA53teP1KDCK1uluE3aL@YT&A(X98m87SOX$;~$w zS*XJ)Vpl*Ta!YVGi9R=Ng_{y5+}z`Hvm{0A3dqf{;BF32l!f{lhvI0dEOOJq=cZ+f z*cBMF48H6cq)4Sr+Pz>y2H(sFjFjWpFnweQxd&Zi*amGu`KA()FSj zlbhJ!Zr+$63pG`^NhLQII>~6t$BSM}Zg#c~TBu1rH*JNRvQ=>NgwM_T@uC-#n;F5~ zl&8pOt`lww$<0uoo5b;=7vBRn7h465X1&i%Q{l!+ZocU#3w1bIEIrB1mf&s@eQx&S zyapP)CzWul3P@w!q zksr39i#NClvQZh%qk7Nv(MrSBCmVmZ;JmKA@o}RznyZ;QD75h&?L;%REOb^c?ND>| z>d+s1X@53X+qKw_Pfe{Zqc`aF)a?6O#58J(?_CXQq4sV1hxfd`Z%mZ-S%exJ8~x{> z;$!i~Y4AIZyEAZS_;GKGia)gyRgJ!3D?P7;^U#~-1zfzAH)qhZwfnpuHKEhMhT&er z$1!o%Uf#!(#!haSr!`g8ej{e%zAHSMyZ=2pMNHWpsmpn)&w&Nc6-W=|zlbn?oQvXL z*Fxo?S?OaJj2VQhus8Ddd#*-LEhBmF(_M>8gPdVB{g~b5)IL ze&7d6!aY@Uwck~>>#%RX^Qr7Iv`uAL$@;N~fUX3HTd6F_eEdQ!B|>dCEF4(|luA3~ zb2-E3(!W$~*ylSLnkz!>-sq2C&T9uE)UL4`VvXC(`0~V@mcHse*z%ImE)zyKrL=Ny zzYPC&;ag@zt32G@XO?StFqKF*S`8mJnWN3SLLD&T#}1bee{o%_6xQV%<8$C2|HJIT zF$b-Z+(L~V^3l(Jt+MoXbE|A#=HDtW&-c~O4GTo8ti4yXO86YnDqHUHse~+`O;Z_$ zvHs54=2rP+foK(P4z-G3seU#57=2-j5dgXLFV)eNB8Ho1KN_X34c+^c_F$CSk#633 zDN4OJG+|b8&z5TAkkFDYT0$#zbm-14+R|3)^?f_9r|Y7)^XnA7#G#z--`|3ydM=+W z(=TeLTB$Qz4LA*xkh^egr6wh$${U9CTU)FBu1Kw>?p{OJRlY*n+lp_EQSq8dduMHC8?}d{$KAebR=B}0s&t^4 zzt4Bc%#dGa;(yHxl%F^8Q~whvpBKnGO6TErMZRceWN?>>pPCvdpI67H*(!}Sc1_&B@*(BFQ5;3MQd zD*u{BgW78A+N;Cb#wFpBaejv++^jrz|CkkG=aV*8`=PxW-!{iykMQ*wTIVa(F`*AW zrOmlgoftagDebK*ReRIrcsZ(fV}Gqf2lbYw?TG2$U%RJ+iZ|(htv%O4%?RE3wbndV zy{ZM)26UA=KWyVTZD_1&jlSh;nj?49;b+?&g|u^Dj1Nl0s-s&qs*}XfZn488?Tc7- zf9U=H(6)5MOfwU=Hg#03j)i0B9-&9F@L+N>O*CG*_TFP`HLk_uX@{AOP_BZGFJ{uq z=*w~AF3lvk0i}sh=p|m+f=>j~4G4!v(nWM!5T^($ZHRR>ePk=di;uSBmXRO5E_zQ< z-X3of1v4(1046CSsXl$=!W zPVl%>8|96>&I0z*lU4A%E_xgM;>ZuEEi$gu#x)2rxF|%(GtyvHzZrKR& zCSnbPP(sAz?$E?4YKyiiGT^)JYP|Y*%I&zVcFDYj6V=40j39tt9%GL?8Qnz92*+N%V4{PX{d53h@#WuM2d#NQjz{Xi1>c z$wG8G2cnw;ox=@KDoPNHRoQ#5dL9^II6 zvk?7(rvbdTlBj($J-LW`o??ay(U&9|2~kph$`de_8?p89FG z(erqcel@iXCh6sLqjbc?uUywkMyoloYs+;VFLZB$WrQvAozExW4$iz| zc=5f(yXsBNK1RJW^yqf&*ci2Av!3GF$w5ilr7>z(hl=rs*Jn8m#A~jAVC#-DWz{xU-EOD{@TpUVxv%$etWSPZ2}jv9XaoIg0!C zzKdYwI|W9~9F?{w@||^YkHh=gh0N&1IX!=q;b8}zvPePw6d?z^28>`--r>5}CydQIu*=(NY~q0h?u@*q3&$3y z;p6huwRmniB!v-AfjB`^(@6V0PLa9j_nfp3P@^;g+;2)u=^g1s? z3Cbm;j0a=!=ongOC1#Yt)seZOEh*MbajBF#_;6%yX=_sB1iU4V)X`tIIN}b#L1fD< zaY>}Q=3r#*F;d05=8POrAd!Q}F%i4}orcLi@<$UG@-{S$&o#Bea}HcDk?-WjZHCXp zs*1=}xp4|M;f!)i%6lvB7$L%U&<wt#OrbZ0P6hAq#x%#v=N|IAa=k^&MoA1w%C7 zv&ayg?@$v(p)p_qmsGIDsA#OX6OW8CIts0xMt*{0d2|>zRJ1R8sjVGOY5(++Y8BR$(P`JD;MiRQ{ z9E3%E<#<<=2IJ5JUn2VnG!SdOZle=%!xiK@L>nU;^d9=^)~GWy&&2d&KO5MOg4&=b z>xGk*{!WapVAzJi7S-{TsE$uD`i!^FflV5m8|MT@=C(%nMDslX29F4ya!{}doQWkM zlXmrI^2})?ljlSxH;4gG?v$KaV({WEx^2;*)q7|qkAZBY8lxFQ`M{fq2J45nQSC3Z zIp=^1UfBn8s(A_#hY6(+CJp{Ba!nhwXcDH2`69C;7?pF!;q5SZmkYhmr3&8%y@;4$ z8AX=9E>7X(`8CP%KK zMeF0p{cL1Qywk(mv<>>jcB5^LLLk3tkzcsalLfgh7vAvR5v=-S-hhKqd1c;%G3Ugy zzefM1)zmR6^}mpuG#htikBys;@2~7jdKZU|^y{27xGeJiNHh?YWInyHCbDI2ToQ7e zu%;?9cX10v8D9_!AE*^{=G$>@Yi?3xrh8oCH%SG3+9j|4J!Ed=LibpFbro(4k{T!F zZI4TZIqg+!z?>^m3dUSaJmS3?&-BsFzH@Fa@9Hf+xIZ4`0JxFEug?Xg@p-sfs7b&NW6)_wQ_tnsQb`lM|Z zvQPXbu?mR}y!$aF&e+x2kt)6nGj2`QvMVS@ctyilB`wa)0$NZDlc z_M9t{@*l9Ho5+vu&fa7U5E_Okd`(4U%PDvzI!Zvj0UXw(N%1&*D8V+0f@g%*;4o(Q zIjkcJaTLt%?o?) zvDg08S6>K?T!ZPJ$|7cpW!N&NsbzQ26lH-CRR@j#d@r;yXSmKe*cKW>~f_;h4$ zGFmGs|6v>IAI*?NF#9GY3H=M-Q%a6}eedAiD?h|bb9dt%0Wlk5+fqTxkaOwjD$Mz_ zbK_`INy1wkjUQ%%-I4d7qP3udcA{@I#a2Nd9FGC<*uX3l31^$=>34c6Dybm0r*|SA zMWqf)#fh&lYV9l?0Or+DM@`1)@m@ax5wEGDep&AQ3?C{HZxN1$H_Re=`$oMBV`Na1 z*G_uMbDSk}ur&FNElAS6O~?xzJVakQL9^`ZPJE4b74{^F-;{1RM{i}yiAze!AA^_u z)TCe$;ijPSTPKHx-Ngs2J+R zp&y(#*3xb&cEODo>Gi&(mmK0v8jMvNHgi^t%14z5`@At1WtUmK4;S^&_^9FDVnU$_ z3f-0(a@CY12dd0}q^Dr!A%%VS4mP}RF=oZcHA!f2ocE(Md>=fACpN}|mpzW26x)Wx z)A^#fc#~%q=0|$8YHZ{?TaEEFF85?)?na8AGo)}(9()ko$Zq8|zIDJ*UI(l>2z9*0 zajdec9sKltXj~g*T<&j?YZfE)ePOG>Dy#3g7@9L)j@iiE$#|zVrs>Fsld*xEs5jsd z7X$--U)XrqgpA7DSK14#u?D9hFWg{Pjzl@=F}xaVv;o>|n%)ZLl-IdRR0+_B>*Jit=MIeE^!&sG_%t#-*1C z+mi;LT6RNeNx0kv;o+JMDfxYNQI*@@KabJn_U)TTQvT#AWw1N){&XC+7+<5P@utzk zeZ~xc@7?BLZuJ}g4kh_L-((Un73{`TuzpKj=(8jU{NV6UG8Ox$huM}N-^~V<4 zhh(PYPY9>k&IkZ|q5PYa3GoNKZ(YFYM|#NU=zFk4?~OPzrVZ+K5B`UE+f+DktZFR4 z>Z)|Z4ysa~8X@CV=legRJFUe_m`m}%H+J7APoEI0wwO^}sP_0cto9|!CFYTrG4&l& z&*`OCo~74-Bja0m3ryzIG2qCH&h+oIZ%SZ9>XqTAHX}wNQ$^f+vBi}>Ead~ zLCX@fB1gBuk*~9?u^2NSIxbZ|YGFPKn|K6mTu9}jb(EcU=)@6|m4tbfbg^#0o4TiT2iv}E zRX3FyzHyupnfoI=c@O@8w#MAC#)1jQXhv-mYX7G)I>)iosJf6l9o!Hh%UWRW!LBg3 z9cq%6Q}(*u@(-2u?Uo&;{qm5lfBH3RUKqtFyQ1jaVrLmTDjv`49>k>I6A_Y*sAz5^ z<5=ekmN<=)QmY%u=f9_pjMu=F+Aip+qI7s}PA~0@BBEPf{UXZ!MKhyU_QN)k3Mk2q zq|)1szJDY#UaSRE(0x+jzVu`zMX@E$q9qPhqaPirHon&T0@=pg@jPtzk?jLG{7$Sw zXTH5UV4_3UF5QQJWN#NF8Rhuv67^hf#Df>7@ktq)ETb$&fE^jz`mQ&m!B{FwA-gw|$ht$$%u_e0}22xI3 z^6F~5O8RSKv4dIH`@-8|O0jY8rw&Og{v`0D_cg`?x=sF|Fy-;TgO290WI5%%H=Mer zI8YbU4M~!XQ$Ba0W>LXCsBvy$J=&KVdh+O;j?DF=Fn}4J82>;{wm8llDC}#|PTm;U zrxaWh4PU4GBsp;Gb%z`0V&g(-Jop`+;!Gfp+weX{@5!c!Z1o;24l$OfPH1cq#?!|! zLvg^-J%7OCa+Q~_8EZa6Mhm@<2k%??7)_#2V-(R*3C?sC8D1zm2PMeE;SF1jViq9G z#BaQr$Tp>*Z_7>C5BQd$r{j}m@1}^8@&_QGfQXId(kY76+Yh#b#X-=jJ`}Ip$kEsx z8pagO``a)vW=~qoYQR{J3Yd_(Hp;?4R`xMEg|1nxLAQYIrOpWyl_(KWCve4qnd0Y_rtm*}AVMVsN6XwuJMe}N}uX%}%d+6yxpW@b9R4Dl|bl{LCH z?GuxRu8S)KM&@D)hE}cj#ZPIki-Chw3#qxOchk%%W;YB*?-wV~d%wmOCNS~|^IyT0 zI!@rfsbJ_ZEuQ12ei6(kRQ{7;DCkC9am2~Gt-Oj5XYV3gZWZV3j0|~_F1-q8UyO4B zz9w4zdt<$XPF&$k19~VjdEr^?6_G)y%*^YcT#UD!psU#tCY_qKd&48B_?yHeP!Q2* z0|IJHs(9du=CKhJVMSvke2)1>E+TN7ODT@Yppa`UD)7|^KcH<~_Jkw< zcE$dn(Q(Sxe+n!=CQ@t&RLo^RaEis3@^4Ntio3=^JC^r3$wSc@Q{YRSV#I5tXhup( z+%)g2J?J{`aqn;|_2)gOpQ$IhWe=Qw5Xq%%<+{-GNpf%cQ-;=dvJyBKn+P_V@bm%9(vVmfP6*{n8lj-bK~XFERQjk z^J{7``X}T!j!Q03y?756PU}yJ%xz<=0dQjr?(_^v$-}`<*d63*^}g_wf>fl$%mAA* z`1i;)-BD3!%P(n9UND0`uk%NhcSH?MP=RbZ~vhhJi!QrVMDKy?C8Er_*gh=O_*} zygOP4_}S3EjTWDzraQj(7=AR;8A3V*5f>8C18=rq+!sVF##+tW)kqI}6X{4&FJXs%rR46xMO?Z#{831@}$l?eX?HjNJ_)?#iMg z5F!2a=}0n3!vw3{7y@BgQn)|tUf$dvwz@9SDL3=N?!zXG?T=?gP+of7sK!g~Tm# zGcW8(Qp*c_ieP`(6D){~A6|)ik8F9(H4Y?sT~S7HpP@D>h0EMNh$+>ItgmW`0&O+b$O!_FkOaVRvs zdH3J)r*6E&1o^js9xT1+qv6PCa7pA1yD_ii?!ejMu-!;ade@0`8wf>v+ejcM3Z@Sv zY&Q~mLfXH7_DCeWVkG?gP|C=EA6iEV&mzHl)1R0n@=iFA;rqn@L-1e^5j&9B{IJa* zP%A_n2ZzygggosJ`x-z$xH^W-{b5Hr!Fx-jQIV&t&?|`8gD+x0y#ySq@51K3uumw# z+t<)_M0^G<_`50V3nD%ePRFty?h~+0Fa7BXR++Z-n_4pt*SL$}75`KUVv2Fqzgg&j3iuu%BKd*e>4K^ ziqlj(lsKH2*dKN+5@^%=zG2(r#g z4M+So>_iZB&(fMvf}TZBKsk3|VMVTDx45(e z4U;w5E3&R8pE@jBXtL1FpKG+{6kluJ>R0PCS+|wYz0l5Rp_6z&n`rqHettW#?h$;S z09JnxJ-eOn|QO*a((Ud%S7x z3zW;|U4~`LA!K>ndrJxF7_aR59-WHTVIOvpcSp+SF+LM3ra$qajXHl<B_P5IL=b%1rs=^Nr`d8u8 z>x~j0+hCOVN3Ozy#vEsqcp^JY2o~U?0Do7DCO!Z_lQK)ST`{b7D{X~%H^7ZC%QZ7*G0aj~*rI7p zB!pWCYax=zn~83VWcLt~(w_{eD0)z^w{oNsguqt2p?URv%g z>nIzQYGHx&X~zZ%u|o1$f^Q~cQ2r7V4(F)UShE^I(RF}&cyk73{XChWQ)GCHbog<-1$PK|kF7Sk%c!PCU%Qg)t)J1s;9#Hk{A4T?8u9G+ve8e=y${Ax zC5p%6tVwyF8`b;v zAJ9X-l-9^Q+AqXwMTk!~F+yB^jcD3JqdkofZ}JZ@`~aN^!hGfJP}k7Ljuii}7>P%h zC_U7e79xd(H;E$Pp54Cb2rTc@9TwChy$s&sRZx~ubdg)!pn*f*u;I|bXGM+B%e|co z5D=Y(#0e-=a0xxJnpd7TGioTt-*b3S5QBI707`6oI1H8rsd=1QUM!d%1TS z`Z4Wg22sG;Gha20#+iyWXaR3Kgo%*zs5NN)6b`<$1INx~qGd4s%6^D!j@7VIq(m9$ zX7n@?d=$np$z6`fBg3}`erd|=%yeTPWT@h8BKSk{x^61T~1r()O@UI*7N1T(O zA5C5KlV~tyS43$r>!_vPtQOs9AAFUOt0BU_$grCBO4|!G|-J zZEY&NXHCU3GPcx~0p48+|5Lt=Qg4RZuKcKJT1kFX^56Z}R#7}-!UKv@^fH?B@;&|C z9RDBdb?aW18(8(WHGzB~@&DhH=Wn;%|Koa0?x84;)QEv7hd`EzFCzZ$)TGlI5wYm1 zTH&o1V*+D;#(|7O8AmdXVZ4sSrS+nn9PVDmLySimzi0e~@pr~5 z#!HM%ID;z~+b~MIPQ?G6YM_C*-l`T`?@_JI9nsH=`e?@(%V=SYW9-S;htbM-Eu)Qb zEMp4eEsV1nvl;Ic=ulR0!o7_5F|J|EV=Q1?&-e)AV~kHSx)`@IZe!feSj702fmpP> z%LyMce$Mzk<0-}}#zrrQ8jE0T#~9BzlyNNMM8+wM(-~(GB7bE*CoE!I!nlm_9!4kQ z8pb@vhZ!GXe4Nq6_%h=T#*Z1l1{xPhf98Y=#&eA48EY6XF#gG?Glsk<2c4!88cpVh{&@z z;a)}u<9&>)8P_mAz?jFF&sf0tFyng0jf{^lYK)J`jGo|xCmEk+e1`Ek#^)JdWPFM7 z6~8Mprn=Mde6Jd^|ip|_m=Bf_mt}gSC#AU{j*%ZAN20( za(&x<<$5)+I=37j(ka)+BVEfXR6A&63e~4N<(2DQL3TXk;{>@tZjcRhYHhiu7plKI z9xT^Kf(|`Wu19Yy*LQ9x*K@EP2O3sTuAf;~u2-%v*SCVEfG!o5>jO5G>nEXmCcj*N z0`w*LT+jm8js-mo8To8#qJ>D`1b@RoU%>Y|kYfrQGzL8j*Edyio&)e1!;$l z3O?>X2oCfv0+clN({lYWPP?`gL3$A+XbLC?vs>%&e=FA)f;NG6g5p4>zZta_Q*7O+{ut^QbXMO6N*a7t_W%orp2Zay z@Sq~3MIp^T;;f!E{H$&x0w2y;H0-SIg3JT5jD#Mj8ul)r2V}7!4deoOK$cP9K`xL7 zWEp){kF?{T3*-S=Mx522epH?87=sK!*6Re)_T>=S`I9B7VP7&Y8*C%#UkONop)&cb z=FrqD9rHyfKFHdd3?W(->zn&SPA}xSY|+n9sPGaVz87 zjJp^Q3XE31=7gUaD`rP&t)Ip$kReLgk+BP7cgA?ezKn^C*DwxY9Kkq-aXjNh#>tE~ zGfro8*m)y^@pi_=jLR9FjQ?bOkZ}W}#`rYjON{?wbTb}g{7hi9a-0)RGX9YfRowa+ z^|z3Li*x2@EKOfJd;Zn)<}F&7c4uP3Y~{M^CZwd@oR~K1#v8{?o-)MJJ$p#^IRrRq z#ade9^=e$_I}_8=mu948r!T_4`RQ31J+qh2w)U~i$(uyeY>~DgJ8kyj z%$x=DmMvbEZ79b3yuI;|+7`=p$^RFxxc<83LDe}lYeD86w7P%m+q3#bP|Ejb^_3^i z>R*0yR-c=`FgruZN?)43D7){71v&FA!-rdNa!1B~=pnUTOT?a;u`pv%MrMwPM!R>t zYKcJs68nzGS&@}NMqCrxhxux3C)CK4TT;iR{iAG2nTY!gt=T_)z=T+#rnHBn8Q03wZJ!fHs{??+3x?TFx z=5-#mj|$Z;?cQAib5J#?-O>tuGjIe@`=UVYhl||!8TEc!ouOsrN=xP}YvNxk$X7Zv z9!UX-Xh=g7Aes>#7tHC!Z6-^U@DL{X9I~;Jdt)n6NzAU$?V!g&gYT=*e{odkdG}Z7 zZ{J;^$ASj0KslFJ=&yr5TUDXIb8m(I^vVkTg?lRWf9F={4}um#*5ydtYPKDkh2hN*=Ikc=ozY+Ky6l+iu|5;O^Z`y{61bqpr1T6%0eW^m<{xZ@)7eTSF zpz?vEfqS=C=x0FDuU6>8KwGh$0aQH|`p*AU=qaE|(2Sqp_eb~x^>N^zN(7}%C*kA= zu{{IZlvW94LZTU(L0`6%93l6|H^p98w4vO=fr`ltS>e#v!ubyuP-jgm^)ErWpc$Yz(DuH#r=(e>ezjVupKnpAF9v=D zT-U2o-y2=2N5@p^XMkHkb3g--{!ZIU{rC1jP{Ng!`YPZIq%T)2$~N2MmA z0){tNGPQ)w>J^%8vwB)fcubvKeD7mwuTX8r6KWU7wi_$;wV?SR8z>xfY)k7SFmpV|Grq zlDRlDLs{N?g|fUasMiWbtJ$KC*QP$HzC?$o_}zJ@*y+w#D)1iW9gM3PA7IR9e3)?) z<7URE7`HLL&iD@F4#r(FgM*xKnDIE{cZ@$W{>pfkv6eCHE)jSu#!ie^GY(}O!#Iht zMH+7`y31I8OxCiWR`VTemkW0VjO!U6VSJ47NycXwpJ#lT@ioRb8Q)|4ka0KTKE_W4 zI+PMl_=@oa<4=rU#xsnSj5UlQD?|ZWFh(p>s7Ul*6BmFS-a-SbmcZ>_WX?5ccjf-urMQS?&773(sLB8 zoLM!sh^x#sSiuTWB|$qZ3i6!T?EBKzISG2@rBRSM?y90UbP7>s>mN* zV#LpgBD8z9RO-|{Nb};(ud6>c)82bdy-NH3Idu!K67+Y~ zmx|wgUhUersb%`;lucPEKaR;$=B#=Eb)MrY@-`?T&iV?hHuF&RM)b>6@+e?VFvE zF-Pf}gRPwTOEc2vWNRxv$1ZXG=W1JR&*y5iV-`fS(sO3dPoqVg(svQ~MOaTPRQk@x z=KPF>SxUyzrHhviu`J8HBXjXxnU?gW^On(ZfH=gt6FWFahb+y=&RBY9hH~R#<%Z1J z8J1;Pi=k>kpUqIF&dW{F-{DwtcI5Wz@oqdFiuPq|M99xjil8&h&*e<8+Sh ze)lrVtQ9#KI0mbe+_6Kw*71*Y%sq1~Ig2fevobQpQJO`WvCNv-&uV}*UFoXK=t_2J zcP^ftKFb(K3XbY5I3}5c5oj@zEpwMHUS#RfJ-bJ9Lnsod7A?aq-RCq{{3A1}G!6Dm z=NMf~(aJx-Xl(Ji8qEVy!$9oRd{+7#%cAso3ueb_C*Dv;XubZWjy5FiNaB}8_c@j> zluf)A@g_NXQ&k-}95rI?8E=_ul(M;!gZ`OK6K%%Qgu8MwWasivUYMCSH)#5-1?kz! z!bNHG(RZYhWDS|0r$!0$6O8H8kpQ2GQe7~HvR~g1;L-Pe+B`fc$#Nese7oM)$E~ra{7$PR)c%$=XwIsjq2U-c?71Cn%OVSbjCv7QL+|wlsPJ zwPTv-<%%}p9kqRge`6|I*j9B}q@n3+w>jD~|5AsxGM0BVulnj(`^VdAuSa*NSu`zr zLbToaQ3LufEIp@>J$+7J2g(8Eo;jz_Idx8N{M$MGTWqI*zC}9esYp*LJ*O?{6VaKb znl@VM&uZJy1Vyv$R0kC=+o=u?aVScU?3F!oR`yt$v9iaVphYWtEL^y<$DEaxk<+IS zNne;XKYhq;xAhk6oCWh1RK;>GFcQTec=UO7ChZ@_cS&EgD828% z(Z(qfF`1w#GZlsITQT-8#lL-|Ue!qZV~;wj=i`sjuUxJ_aJcQaoKgIiFSfmEC++AS zjC=cDwWn6JSDj|@?1f8O6X1RTx+NeMWCPKHg??J$VfDVmY3KD~&PJ@{s@CrX#e=Q`%>>yF zRO{_QAMdZ${{yPsU#;ywfm@vBSL=iShjeiYUZHt&wSH-8wZ7$+YTe=Tr*sJx2K$O;UR<#~IyIQ|6r&`~e@mCv}j|^Zs0@yLF+Cl$(H9(P( z;-cwwX}u7@uZWt`zq?J~ftdnjI>~NMha5rNh#=0rRIR@X`u>G#z00<0J^96IebjT+ zdd;)ddM_9JKZC{uDs;~m|BMx>_UyN+e$`jidMfDBm(}`}z(i0*Nwt0mbT{Zx(5oeA zzwgj~cxUX9jsH7(+fl6#xvyG(@BV6iI_{uy_-FnvBrIGL7|iwu0(sK^EU#L>dbPd` zs3^sAe^74^?eXDtwRoX?t$rP70mupJHKtZ?1bTCHt^O70%;;Jga$Ov+e_Nv;{U1`_ zPipkAPiyo?4%O)WKdZr0%zl}#{j5eG^?6`Gs}2Y9q`&!#8okSxHTrQ-+*d;W;?WxY z)vqBtUZba<_^XY~M+Wc{f=KPXt{WTdP}u1IKZrU%XVK|D^x#=%zC@dctoty8CyuO&J>9Kl69XYV@V$fx-N% zB9JHjFV5BIGplO!Hs@>f*&s^$rMgD{t)@o*>OzhF^u@p0$b4h~Dgs#f2O53lA9czU z87W?Swl1v_+ewI;(zjO%d<+2)FVkte7Xo+_0Sv3H(a-g+)!zVp)w5P_kGHqj;%oI$ z-D~wf(Gj|!17x5htOF{=*ZijT4t4A}ivteOHqbssN+Wt5M6xf=)zMCDH?0zM0oz3W z^2^+I7|#B#(OzUmB=so}xh*lIo-~q??q7p-{MCVUWJXzPN~cWxslGtW_G#Cp+%S4n zN}AF$9cM#VEW%YSOQ!Z+ncAY;vh(NknI^gpJf$xdRNSImEeLfyS#wU`fXs=?L9-#P z1?AwuwS!?*`r2w78-kt#y$(7CIteNRT?B>0J{n{J^#Kh6jRmEGR)EO=%YL-D77^5u z!=KTAh9Z$vI1j~-5lGVu=k!NG>n)~+#C`i*U?^t+-3()MoNJ_~%M zb(Ma?Pe$_kXb6>IxUcPKlu7= zwsM|LI#oIJ?yNKx_|J}2`hOsN2HP)yTEp4pP>0S!zZdW(P&z1?(-r~O^LCw22Wr+L zjH>)HTmwZ4Uz$P75~A!*$`D`{35*~Q0Xw1 zd3j}aBJ=cQ9sL#yP-d9y78v|EytaiEo-i5mDJ$hAQ+hG;{n+l5H>&ua3+gW+j#DDC zd`7yrpXedx*E7;#I;C%9zTZh9u#k^U+nA6{5q>BWUftLgNnA2sT2bljP){jMCA4-1f&f zolcohcm09+pBQBU&M^N6BlU$)ye&_;$O$^5%y>CxU~Ynt)1s;yGvWf25va<1B%=)U z9`@6U)5$-{qKQZTN?VhlJ@c`Q(otvTyPDFwGvAX@X3&fIz9xMu^YK6NEw@x{ME(5) zl&MU=ww`p74-S$(jMGOl$^!hreImx=>%5}Y;c{)(Rk)3FjAnD$t32d znDnE#38r#7%^#Gt`rXXm%P9RgnAhd_mxB9Q zu!fOJMY6Tb=QGmDK`Qln<~RB2la0o_f5znJaZZ1dk=}A^Wbia6Jj*EC{srb=Vw7#U zo%z>I>HlK>ZAMwJV&>lq)ORQ!aDv-pu$%dh8D$$EWd0DNtf9}D_xD4Yui~~p;-^nG zzZ-oEUOcFAM0|*&Lc}lk(t}L=Smqle3;HE9Pw@~_UR0}Wnt{NCOuNgKy0mdld(^VG-xU^%rt{mkuup5>%VKmVGbm_jN=f5UUN z#?PNeA8{zOqoaW#o5RdUvjdrdneSwhoB5tBm;EJ>#}w0_6=V(g^VFdRv0T=GnYXc= zbm?d2lTGpfo?doxBd_OWV}mc=*eqgZnB%td`sQ2D>+S95^$jy{Wo7z#eN&p?Db1g5 zWy#5UGaV&?^Xb5itV@Ki$1VDnfphW0Tzd-j0 zoLmG_x`%Zh!uBv^B6SmR$%?i&!!P0ej8aZ`0%^ZbKkx7v?e$Z7h%@jv2)1427wBhP zsw@tGY-*7jNDrcgPLGolshS z(|NrB+rcOr0eFzvR+HZSNM8zC3mSwBCc#HAYJ~!m%tq~>0B8RMorJ?)sFJ5(+!4YQ zC=vS8RS3|Zm)kv&>1(h%0*pmXz79YAfY(C*D{TAIZ14#Y&G|C2c6+Ocn?qEs<@*tB z*IS##T6-8XRXAhHK=FjO)q-?-FsfUzrFBGV$mA2fs`T$cN^hJ+1GNHm1W`K85cgtx zGw6BHQy}6gUH(pkuLU*fQ>90NPWRS!M@RIFlX9R_Y}2J0`jufGGjOEljgFYF*<&K? z4rgQWAaPULtKs)g<{L4;j(LkARg?|P%ZYF^^KDuGDduUmrr%cPr?UKI=4p+EUoWMI z6XeYJ4)d(9>}1}#zDwI;XPbz!5XY8GoadTYu5A6RBn?!HB)ltT)Gitg)%XH zqEh@@`-m?Z^|<24D&0)actqNxK-&JnQ$_cBw0Ah8#15RC(JwV7khhz7ch5k%B|eaM zns|?ixAh9pcPOsF1T2{Y6co3KclHUC+xiCbN*%HWG_6PD&-v#nTULSAduPFTjYrtvZ-JK%>GwdIzA7$b# zCO#@Qut_XFp7Xbx46;nT)5I5=c$bMUGVyK`Um|(VU-8HU?nPxLUKwC2v5B{sc&mxG znfO%ZW&VoYq>yFeohH7}#Jfye`2g)$SbTw|&M6K^r`Rui8!MZ70Q z4pW;UughOaH5u4Ve3prKn)pH!?=ta4Cf-fFU;avoNg--cV8kAiyv)Qa*P3d`#9K_f zZ6KedlvQFM6zIS?IFNS@3FO^F19{J|KwcRU$fsTvI1H8hT8j4q$N*gT2P#-r2l6HV z4CGTE2;@sP1oF0xfqapPw`_6*DnvaJ$QL~x$d_#i7M}JW#a8`1v-d&JCIK;4&;kWymd#QJnFqV-k5)~{1Rv=mY8_!`*j9}d}kn^ z`avLHV&bhI2FeTTcrpLkKMGVRGVzK#P@ZbyT_(Q7#4Ec3?X5mu)h}XPl4FEC~^|zH+rM zOX`*-Wrs3=5=vj+C3+ZV;FcLPU&4G5V0tqm$EJk|(5&WwAzB zn}#_@3Ra666cMgv4U7n{ODY@~5hc0KT8p+3Et)89sc#5<9IT_l%A{;i0OuYU(X#Ov z&c-lvNzQsL%(BM*B?MoRq0U?fim}cUGO1&ngW<>*&9(pzvN}bG>X`o)b@060L;Umd z25`27fO;6}&pC%7Ygt9sVW{rHq5jofMB3aQ9W*;}z7iQS9|vQ<+MX7`d4~EG&@l7W zw&BuOwRI8rk_>fUZ9}21s*p(?;~MTC+kpTMvN}bG>KN2p9fNACW1{?H9^}vbw~_{p z&*75m;z{UPn4GP-0xisY%&ay!cl$N4*`le<{%3L^JN|Nb>fJ8fS8Q#b&B1wXmH z0l6!PypWsJ!*VJ-)j-ySmf~e@vN{U6>OC-6br z-*w5$C0GD_`9k&tUmutjSOd0T z0R*wP``gp_w_j!eE`JBGcV1=y9zT2IWsa#l;rwM71}TB%mcSZtUuFRII(vthi7qn$ zSDgdH-gB7&czpJ#e=2q1Wd>lmHLwPh5kWd}kQ%g0duo3Qpy)CKa7hPjZ@J6>JZw+- z8v)pDK}ry099yOb)_{A^<=NYXy^+5Wfa@{?aG3&7247wP9>ZSbZv^1E%m6Gi0&Bo_ znE}|zp7S>Xu#CFA61YqOIR9n?g`eL8hMnV{Sz0+77L#M_vcGohV%*@s-FK9EW^ zN;gZj?ki24mv7>_d=vNIHgQi;qT4=c!lWOiUl=K#2$o8@*XA6b75xL9r+wXv}={(J$jf^qODy#uA( zGD|o%juPvU+gWZL+}9&_vAm@22t$m2nSn=UzynG8kaA@<2VjyH%7ZqRlbtcJO#@OH zE9^-oe%fd6wQS-WowmPYZw%-~G9-JDkfhuhL@q;iHIQWq?HB{+5M_=i1(l$_Qr4OH zMz@_!79@&#a0uq_BQaG7}J_CUGa#Jf$r<&HpoC-DKJn-$!ng`&9$l!YSQ{6PxYQ7kN{ z7AKN}RQ6>#=tBLLT*l~<4y^2eGB$2J;w4ujukrB@ozm$i^=*GsU-p62zZPJ!;ZQb# zofRaX#k|bW>6c-B{koprsq6Ah+?Q|S`P(LSr;`?m)|8cFV?Njbv^OAkvfSJ|r2j%8 zcPLRj#Thk^e^SB44$N}d7)30X`X$V#rqthE%UE6*AV-Ij4x%!JVbQ4i9atNXr#2wZ zVtGJ;sKb~2OJrEc3br7-!y+l?abT`756gqCXe^6GKK?5jW5CH8u(N_QNB}OD`|pn_ zh{9aq*u!#4qXBDaV8B|k{O$qxZw9i>?O7rt8L*T2V4cjxayj)-VDyvro-7Af$ryn` zTvsB?5|J+FFu9PBbC_Hh_|IYf8Q9rg&UMni48Y}J1?kAF;9fwEMjrv{N* zSWc%7WzhZsI&7?fQ+xF)*jXOXYvDmQiIe4$cQfw`FkASwPpsF!L$R=et9}K=#&UVy z%UnZtmdn#pX1SB)@~lyy9R1(J3i7N@pn{^APA9n=aNub`uG}d~7;G3?ST0Xl_|>qu2gt?>@|1#~ zg3&4MESE?8X1SB)@_^hdcS--IWw=|kYVX$xp~|d@>J|%In@Nsteyk}h%2MM1-4s85F`Lk0|6+@MTyM;$P!vu z?g<}d=usF%P-5{Ht}^FC!3T6={Rnd2kW`YJt9hT$B`{!V>z{wUyEE}FqBx= zF?=zlvQ5^x)%qv}XXyXO9tSnPr*-axmT3HypNDGq?P5qZooV>qhB}h z^#VFG5@H&esei*pnADvOVUxg$tt(bm5V;J~*+7YoDS&Ro5-(|Unv5eE(Js}*1#|yMF+Bkha<1|ipG8P)?7`X4U z!ZsF^FnTzB?bE_>HK$v82|kH2i}4ui6*1CyrC+#<17n=V=p>|xWBv<5VKX~w*IV#5 z#`%nej9%7rGrr6Ag^XUt@IJ!NyKLuST+8W2Kx5TAjT5YlgI*MdQH=8$3mM;K^e_(E zCiIW7z0z0kc1~Z**pt&!8H={@QSUKUSk3|$;{nDp#-1+;$BIOwf)!;N^X+JDhcp|b zlhd~`&gb+(#*&v>vqN@de9@KewCg=V-VNlwQhb`VkkQj!JO(7O=sF>{Ch;d+84DS0 z$wPdGiYzT1giYDs^qoq+VCP~i9B=rJPPtkX!_NM!j50=ve~I;a;jbt~ zU{E1uGFcNFNc2u$rN(Ahy? zVVuCIP69361(qEU=8cXKvyvVofwos5=8gy*bH0#k{{T-evm z24$@1Vk~3DGS0y+45It=;|cDZD1wF2^{8-M#u=3mPZ`+QppX@9j9F}u#ReWW817^P zrAp-BW`nZ4=Ef*c9u#O}K8w*sh#ZHz*@2B6c-Vm@0+oa=W@U7#f_F1|2#q_|MG@U> z?_{*(i;S&|SsaLqv4oHUu=N)Xl=GqlF6rP34uH|cfw&nxgmB<+vI8eOurZcB#+9rw zaverJF8HV?IDNA~IiB3?uZaEF85Oq6V*M=Px06!Hfm>85_3vaEVQXW(Xd9PL_-@3lL~b-N-C5+L zqnrx$WRzoJQelpYNrgEnDjC|Om{?>}qLN|0pUt($=h3xVZ|h#ZFKd0z_qX@8ul?ux zcV^BxoRd1tU7jZL_2gxl3#q=)NcG>y+?!xA^;b&$h2(tNub%p=r~dY7rVY*1VLf$N zIjeUFQ;)6GQ!Tl$JdOPA=g**(+ILgCMsn_otX<)o&uM&(-hS6)?Tg?0zxprRtCn^s{xe%aNX~saYgkLp z&CAN|4Q;-H|rH;$Jf&Q3vTu&}PoRxE_TuCk^7m}N)T_f56LuzpVf3fW3-YfOq{q)=m z;ajtwU-&}!xi2%kJNsn=-5JmSr31~_@s4*fr?%1}a+haKI^W3rqTL9GXE#FeTUo!k z8V)Bc08MzVC3K|310F~roI&Jmj|Lti$xRnNI{UsZqk(?irKIae3 zoL&mPvr5{XL$!nBFwh zpUldg^yZII@vCXpYP}s3+(D!&iPMv{DC^ zU9t{J$@M+5HFjQ-xtTi5?U|J;duPt=mde=+wLMPgqz((aW*z2|3rA%QYe!}-P0rjr zI& zjB*;FvU@f_DfvZt*2J6PzxUeZr5_5lG)!}^Y?yj-CEc;z>?hKm?X@f1p8ficd~&U~ zz30?l_t#mwPV$c7{19T=+}bA_u95u0;d<>#X_(@_8LrnZcSriIB0Z<+&r8na^=vCm zpuS%=flBhiH2KPuO+D2jd&prV!ohsOMh8dg`c_+?!Z2b<{dE z+rN?gZ$CGc(+>Gb*$yH3-+XS`cS&LoNB=KAKy-5#E?aNd7mE=24T6%#Lm8 zOwYsofcY) zp1(uy{}VM*!&-84Y1Xck+?!DEhYZ`NXODzta^b@43oF&~o3pE+QqCHblJl`auNQv7 ze>d{S^RoTAZ_VDNw3Ba!_4+v~8B9&Y92-W>j~A0OUP z)#^=PPMSb+Z{VJL?drXUW^y*sC6`UwbHw|5KeyNVe0s~3ye%!F=U%&J>Z9?3Ip&Mm zLFxUzxbD?if8}$scP^)vdkwyyZRmb4^NaTWy^#heU7K~BPkzzfUw6^~wUyZbrQ{dw z?QidgyPDT$1JsgVw6~{~^z(O(8`A*Ey$h|LwikY$ZO`J-L$HTSBq-v;OI~0(MgW-Cyn4zZz;;2#vI3`IlM8rR02aF1gbiXkD5>a=1M! z*LvkNgL0Zc@7EI6(?oV0fpGDwcHgI#TJ(NVVKM!}!rn33r;!@;esf{>g$-K0F&@qi zV!h|ydFrGFA^ony&K}vjr1WeYH75PEaPM~^7E`-c)1sW{YVTJT6kn6=m{0!y>Dy}6 z(EF7L^(ol|D#`y}e_L(Cj?)-lz@>lXbg1$tW)lg?Yt#1L!?@S3ojwb+lE1-zVKKu0CYgb5J zcD|PNm)%_dXVUHe6JzpYK^$exu9OBYCcmJ=P)hCEE3*Fl$@}cP zMK9YG``^yJqU};6ks%TT_S0^%Yse`u8$F_pRVkZ-<|!9g@q}WDP6L%)M{z?o&xSJon3K z(=Vy*ea@)Xdp+KsdQ9$p!LRpI0NwNjyO6%?-}{1JH~OG=b*b*^c$({KD+?x6{l1LM+EG__cdG+>>@l&Zln?x6_V=-nWXoX@}Om*$$25 z|M+{&xwmF7qT3tN+LHg%?-f@Ise}4&vkofB^?J6(&Z5lC^iAj7SF>_!N#@)|nR_>V zDfL&nFYB+6TwI;CtFOvjzJ7<_6k0c=4Yy=&{Wx>4!%DBi-=z+dOAl)oUqRM;4K}6* z$@$HxK{GYz{o3VjYS6pVPwl1#?M~K1Be^$)+_Bj~4i9JB+nX}?winX&-tTd)r{CxN z+yJH2pfW6di8{I0K_zW3jL5dtDY@{&?8Vio&0d3@(*VgY+FPY|8lW~Z z8=##0qPrUB}^WCK)^U$nPMxvAMnZ0wp1P)mNX-YQiKX@J^p=^P~YPGTu-&+nOS z?~cmc+g?fATcfl3dU9`jJ#8fqn}^yD5Vlv0QJ-Y-~BZv6Q9GwiI& z$}gN@=O`b z#}{_kOzj$RdwhI0Q-{6ZDPQl+FgDa+NIN!&-{+kX|60_3Lw5X!lK)eFW$F0rtae|O zU3Q)1Tyj`)?N9v0k@5XQDzW8`J>zT8=JQJ3=aqK+pONQUR^Il!{hlk8^wNzb&hMX% z9(ry)|9IqX%*ro39-Y*#`?GAhC*-DO9hOo@h2-W<&+o91$}j9Ne{-en0 zM)JRXk5f-OD0 z-!qwO|H|C_2fNNb(oO@GPRM3hNG_h3bx=AvbKzZ?JJU0_Qhg)U=T6D$8}H1VKPhwh z9hvJVaC{bYdn-%>HIpkJ%o=t+oH;)yb2+(@Tu9q%$=%smJ12g}zubxGX?S8dEco+~>0TMlEwUxt#6T>pv9I0KGp)QA~f9BA34BazgL_Ulq>Cz9*7P z?)A|7PxP%b)Avl0|LvQ!-hZku&dPSk_x$hPr1k!nedVldhhp-7_$F=CPTJ z|8nww{2nczIw*cP%{cjg`yQ>F`fH_r8p;3b_h^mY1m~m)CO`Kct<@VbZD{lw_THm) zQiI;#_~@htxkp_-@#pYL*)gnrG9AO@-c^uK+Y9Gr+jGgi?Y;lyS5Eb%j^QL=OTZbaIl-s?ZLYbNJjvZGx!G{c z$A6L!;hU+PPb=v@w>_(PGL?IOXl;8chg7lCKpeoo9lx*0IH}wlZ`W9!W&6k-t^Bp> z)F2hZ%Tu`+JMk}{%Dw;hy6TE-fc%cFAsmplr}4u0RL<@A!))t!X^sBTUv?QZD88CK zF8knbkM3IaRqBxl?cH|xY=6MAPmcb8zxO#xj-H3Ha`c55C)ary#>>%PM?r3I-yR`M zkaPSFOp?p|IZTo3oZHh^l&8f;!cY7a&6#qGFZV^=`Er9VeVH$u$IMG!?ys`O%(oxp ze=f>xzVJ2XFW32;gS|SIYkUK?%Pl_T^(OTjli;^c^v!CyG|?6C+DTTRP~cHV`hQ1q zo{z)y*oZ%YnR1QyKPH4(u|5CgL`O#M^5@?Z!eY73yMD+EeL2U+)k0V+mw5d7A#9Zk zJm_La{m!aJ!uqTIRpC2#3mrc8+7PD6CBE`{gUL;9VZI!FCu*@hhgBggkfRU4BDuit z!eY716)cmZKZWITjh9q?7*J^NPCs^d3=V7f}l5CSO(@6vnJKAwK4qL1CO+;(z+9 z&;>cX)t?8ya_XQkNukNBP?TG|7E|OlKZ&VvhvNo?OHq;=JnZ;Ep)BWkIx2FR-~YBj zVV+#!qo)lD3*{0&gr#zqpEzMqSYA~KCk_gCVx`>SPriLnSR>c?g3_SSmg{`xNrOU1 zuJGV@3<_O2$9ukWP}nZ#`R^Ecw?3y23YTDv+~A2PTfJQ5t1wA!a&@Z@Q{xWrvNDw7 z4m`|Xq%6xho{oxK<~uM?Zu4m~tSr{^hu%FX)a42fdC#EGkaK(vnsSZTpe48Y{qJ>z z@7}E%D#E?kU_*z;&Kwjr%LTp_-M9lEcIu!I?y&-1fSg?C{ZAVdM#}|Wf^l+#H(`?8 zPe9P=XVVm6MSA58T z_u82c{IDY-7kIxp&Uehb??((C+wiTJAh-GPk2w-@s5ti@$8?37@a3}yg;{c)cl*?! zFkjB|1}u;}{Hb%TKDOulXRJQ9;qm7U3IlS1U+IXpV&;`-%PqdMrZ2g}a~4>bTv;%v z8b&U3UN<;&{Od0{mvWm=`-*#1F7vIJ8teI!7dwA)jkkT(>661HgThZQcZlT{AJrTb z7Re>P`EMpCxA}~}4+>l43V(E~yJmyue?@rTKOMT?$~=C%!zCB^)nj)GlVj#1#_bg5 z%SB!`ey6ZPZt#`ZBscj-*etjB7HpB*d=I*EhabXLxyz4Neb}ZD4&EsY#dbNzdm!Am zTgdZ%=#vY4DEj3hzZE0p62B8Uxy+{>vQt>~JDI=ee!ZGPW*CM8#RJ&Xxx-mBW#pgeDtdZhb?l6 zFU5Ab!SC8{aOm$Cj32~kxyuvB4i4kwB0q@r}?} zd?Dt@bzYD8a)-|@3=Ruo`@-OActl~bLYF7J&bgF}d^c9a9r)PS4-Tv45--L&xxo|P zpySw{ufis|$y+0GnBeqbdu-3cCR*f!t|6X|F%MRE^Ebx^hslQy4r6U7@{q$!BsSu! zFhy?i6PPZCNrS_!D9dd=>u{$}uJDgglUqFV2&Ydj^SxLmclfv?Ele))#Z@2HC^UHY zH(8mS=a;{EaM%ztUxO`jlYerQ)yOSga z!C{u%xLzJ1B0_h94L(iJ1AaYg`j@gJ(9K{{;%=ri*L6!zH))=U6AV`5v_84nKtT za+jaP207e4I1I){ImdgTBj@=5Y?2H725gp#dbfIO~2hk}G^R z3Xd3=zl8~MlmCv%a(G~Hcs-`dMc#zza+e=^&?I8!6CX0LT;hW^xiIAd-;PCco2$D& z;=C&4`4gK5hn8I9A8&V5VszyO{}@~47XKF8b*kvsfU9p?%@MhF1GRU7@Zps=qHRmGgW9nsSTJ8QvFK za*g|T?hEVW93O>Ea*5B!7P-zhVXNHcK_mOZ_Sl|3x2ygCtPTGJqvcjrIAXWHFh-%s z@5VT}%x7V|T;X$2kZZgU6XZHC#U#1GcVV*J;Xk4%clk+7k;CqN;m}czmR#fuP@Sz% z7p{3tU#Q4U{?&M${>2J-|HJJp7kCBc$W1= z!Xi0(;O~85bIknLtp4rH{@61XAXoS= zRUeirbond)vLd<8qr#A|QqJ=ltdrY(;h-U5V{F6c_YDb~W9DH)hJ^4Eli)%9L&C_I z`9h49>wNysLqZ{DK7ZFCVX9oM3zJ_mB$O43{Da+wggJ7HUp;C_sL2HmFC7vV%h5}) zTyF4*dzq+Q;=f?E+~rs2O-?Rw_m%d|sprqWW=L2j*LatSL#knoLT=)aueEBQj8P`RCoLNi=F4SnH?)7L zBgdn!HVHY;<8L-8xo~rJNO)D-YWA{velHsL?Y_gGjrDT$8-Ft-49L;vqA5pThE;O( z$UBFGmK;41Yvt%~pe;u~j16-1es?*QRfQNngiUhvZ?Hv<{wKD{(O+FZBy5+XZ$tm@ zcF%nGkdTx6`B03Jqu+sXa`dM$UXDKeo*`j^99_N0hoVCCN=%cZ??XwB{?NTc!gM)$ zmkkcP9DOL}%F!Rhd^x&-g>v*7ERv&l*)k;5<>-sC{CB%ocZA$y4yg^%Z~Lo@NRIwa z*Of0vf9h`zmmIwWo8{>6cSlQ(e#hfOypgqHe*M-V-pKC0!yl7J$J zXxJo2@3r^PuuYC0KW1ncb^q=={7!kCT;>Is^rzi-_}6l^s1U;@Oq07ja-X50BuCG} z3_1F&Se7fi9<$}>z4sj&DsuGguN)d`a+?o+l~u~oOVN;{ciGP(Wv+&`3ajD{ycI1u z`gLQ6hBb2ZH?dZZUXKlO^wa3b(Qn^>XxJ=Ae-d3e`Ulu1NAG>W&=CIYbn|}b|Fh?R zMYstgZHV58QF8QC7$Zmj6JzD*aG*mfM-Rt%IeJ$V1jgxv0s}U%^5-`qtOD=;Su?Z0!fTxZxx^1*v)twP7n}mQ!e4rw zBeumS9{#V_JJK=pqpx@VM=Nv{zWs)wAumV&0psQ9eJ41Ka-NUIWVys=VTxSgdoWGz z@Ie#ZmU4k7VwPOwm6$EJ_(9B-yA!KJ!xIYg6~duI!?CEzCH^KB$xXf=OXUuK`!H8> ztmi*rK#m?e$sv`aPsA#@#P=WWHkLcQ@QseHT<1L|JEB#E7|tlV@Z<_Vjcs!DmydCk z{$=+a{*j!QqYs^8KskEGdt7vKnQwZpvfSpKP8;gwnp4KlV4fU(=;;*>i&$7Q9ea#0g;IZ9z_`W&rCONwH z5tDw*^FM}vVX_U;`H#5^ugHNFws<>=A>?W+E(_IxWw z%h8Wuth~cZJSXI_{3jIT=tGxUuzYA$xCc`dqPJs)96jbT_q`lF?rT;oNAJJPDU+i= zjAe54x4!Q5$y~t*2-lb)o}jTDa6pgMmhQcY?h;s{idTLM}HGr zqa~NV?f(Cu!dQh0KZ5ac^tk2j zdpY`#m@Id>{|cX+|1LXxAeLQRhT%zz^&N8g2IUC;mW3Ikxk zhUopi=W3UuzlD|@{X?|n=rvd`M{mRiIeKd>%h5x=@5v}fpNCCy^yTQv(N|Zmv6I5p z{5ZnjcHiMAul1Oeqd)xv*Mb~<#}8dZa`dlOx^Cp?o3C?Jx8pQ9pBT|L$Vs3P#D%-$h=I{sG3z(W_CAqwmE8Ir>RVlA}l6 z=vt7Y&qGm;ZeXh1xUuRSC`?m`UWbw#eGjI~(GO#W+~ub+Q;vQHWjXp~Ef=61{Tj@c zqbFjHT;v(3$k8`rZdDe-+E*=)-RD`CE=Y8BIBQ&>9!496f+F za`c;Tb&<-^@BX=qQI1}5n_F6ruKvk~?F!LhfE--be(4m*(Wm{&;gzFrzzjM18|xeuIr=Kp9{2o@Vd3qrOdF#A`D-hdqpNMRm7~9b z^>Jsu4jbj@b=V|FKZGrE^iO}|&XS{lj=rtC@9-URza0JbJF8Zy@bx?0+ZZiJKY_d) z{nooYjO6GgD9F)!uXmxz(U)L~9DP4Za`dJ5xK`xo{qA)g$kF34Paanl-h}xI(eFV` zj-G>sa`dNAm!oS~EJuGGOXcXRuuP6#iH02gGc1>*@5X=}{Sc}v6k_-bnsW43tdyhw zg;jF&kPU7-IeHFSa&!l6Il6NnV&G7F;X_z1N8gB*a`bkzvrCP!b0h8%r4mdnxCVL)ze@lg7UTUU>VoCrAGi zj{d|`o{Vzzw10R`R25>l1Z6pTzo%W9a&!fA<>>QKlcPV61#%kqo)lW7Usy&7Y?ls3v(4NR9K4na`a`W z$!PpbMbTcOM!!z{VNm+tGLvvY&j=ZA&a-A>5NV&mRpige{?bud! zYWQyStMBl`2y*vO_x~=3IYb)e_#4=Ix{i4KB!^2b@HDKKOME&Sa+yDdoQ^8|X{?ZI z`~@`SI$w$bxxrVUAvgItEUhZEg!{2b?(oA{CU^M>ESAIJ!@@pTAm{n}m}$~Yo_vJU zAs2ZjHpa>E$FN+ka5ZN8*0_uMcl96ZuX&>xDKz;y)HG`GR?Lk9PaYPAV{|-1{Ax7i z0?)z%xe|? z1e4?ne;s+b!K<;w04=@)E95p0eY0nSHaXrCqs}x5o`HV3%pZJn)dgkXio%z$R<85! z(Uv*3{c|JF(8+D3ASp};G2+h`?dM^=#x7<=oqKZEtlhcF-OkxQRvsE#HXVg z6w1PHP;(u0_~^Gd9q}IJk7K@_Yy1^d13Clfhi@X9Gc^qcS z1s;65>qE}*zL*i)@HkA5ZTPd;Cf9gj%yE^x6lJHW!2{T?zR9aFQ+>51+>bd9X@^IZ zt>AD2@H{M%YtdLH*Lf)hacK*!n7l-lD~jCa-F}9K07z~`)J#t$wOzk7~=pu3S;CvPse1r%)7kbB4QgJgGsRs ze-u;X3ZIL$Rh`y^h3Lq2UW`?8gO_8p9h&?TY*gRkb?C}%UXP$nhev(D`Hq8e71QJz zFTzZ@&OgU&xy{uLK1|b5hc{uJ+~sYtEQhnK04+JsWsG*4MbE+%^%Xu3)8!i9gE5X` zhxeWBHjWeGuVbA029NrnqjH4je_pr<+v4o_jURG&H7fE7%AuYeV7sl;JKI~*LWr7$t^y;;@XkRJO^`Q`-=Pj2MV>= zh<}Mbxy>6eM(*$?Y>h`H8q?K>j}HqYFj~&>7>t+mJQkDX0?)!Sxx%+&q1@(;So(U; z|BkTdC!FuNGmpapgB5rJ`qdYCD)MrP=U}@w6>ehYVa_G5#C-KFUW-L?oA>*qqv9wQ z_+uC+SNPGY53}Oo4in@KUvRd=E7y4iawgH_`%pJPhyRX-96n{j7^h8+ z_r_Q`AB~0D6!HtP481b-Ei9(AGd&DiF%R-5m|xUU+RAHi6; z%fsdwT+Z}k*C62=1}4p*lw^gpMy2p)OZP2R}~t2Y~ z?(k-8vvW5ZT{(Ql1%eCHBl)#rFGZ2!3x^EhnsQmnv}(21|(_!NxMzRc%flw9Kr5#&1m5R>%Z;+orm<2Rrv7h@eZXj9^|(5KT1pA+ljV0T1`nWX-zNVU zo8=Zigt9hW-ov;vH+`#wa`2`C^Rzg%$G( zjFFqX1|#J*Z$eJ)@=*))BbRs)E;(fx1x@&~@?RBBVMMNmR}8MBGH*lvb_=L`>yG*AyS(sX*Mj;wUy6|rJ6f?0 zrB|37Z>;(-`yhky$gf((H0O`!VCriP#_KTf4wK;RSgn1y#Dp>W1m~C+p`(4Bx1jh= zli>|4zX$6%#SOMDuda+yDhks4LFiv_V$uKc&tQBcp9V3sxw zz6JfSHc@^6eR78%Ls^?H&syTh=)c07mN@^LthlQ%YpG8>aRYC{mRQfT{>Ol^o;P7# ztml7Xsrqo)u&^_>#v{iIP*Y#$zOOmNv7Q%TUaaT7Wu6nUewo{5fx^bPf&0Ghyqal_ z7hqGY=e}<^q_LhCU`?#&zRR8aSkHT7i~2mj22<4+csbUqZ}QlNi#^u!a;&Sy4Z_%O zx;^3s4&OF_a~6HTa!0^9EATE?cqOBKj{kyf@ksFXS9t;A)U^140oRE39lq{6PMh{E zzVvD@^Y!204}RBsj1wJEt{%R^OQqMi^7)4th&%8bzGroIDDv>{d+OOC$G^pF?K}L= zYYe7+neW03?K_-nI%O6RT|~dhMW2nF$<_Ee47}F!za^|ipRabd`L|ekrjGbgOrB+x z`~*hH;aU^I7&*s#qVax*oe#o*T;Pcq`*{QNF{sNWekYb*Y0`YcwvB6*+eiWTJA$|f)ZNd*s2&?2A?}^EALVOUW#0l|4toX4B@mtW6OI6`y z3@DWO{bfdd?wb|p~9Q6 zQhk?CTJ11uU*^SVt8efRur98iC*0u3sW0+3u}J$SZ^DMy4{xjbP`S@)e&*{xSoU5Q z4j+hBK9LmoFw9@0BR(D#t10mrm?c;ET+Ehh{6)->>%0Wb_nRDFg*9@Mug40x+7fO< zagM{z_hP!-;YTo8?($AII!acS8)BBz)Zv|PayQ92eiho<7x*fyQQzc! zZ}tR~^Zd4(2mA;mK*#%Y>h8E_y#QeitB*)TkAZlFYqN;q`tww!>H;MhfWyt3&?qXHF9!+kHAQ| z$nTBy1}pRXu-uniEBs~j$I0;}7*OBf2Qam$f8OPnZfQ9ejZt!*t0(x-uTbI{=#$I* zjaZf&{K;SWq$Jn)5loP~e8f7}fn4O-m?Kwsek{lKydCr8aJ$?;@fSd4p% zdOihXMlHS z19W*Cn)VG3IkXs%b9@NqYg6D8u|O{I46M+m{E++qoLJCljW0z13`c^Opige__1Juh zN$>+`zsr%}M-a5>@>AHLP1vLlG`;A^@o21&^L!Y#X;b7=&^@JU7Q$KBXhVfB!g2%D zc_{|$+~Dt^AvgKgSgcK(AHy=a%iFMAoA9vHfsQ`&d>~euXn_wyQ!er;RUZ~Bl=(cY z)lrQv#0vFwUV;U3g9orCPJ&mVCAauqEZ3&PPhpuH{x~cQ!$LX7hhUNZ3p@#{?OQDh z$6=*Hi9d?@8ddlrERgHG6sxpp@by@v(-z-{{7((cf5sNCA-X*F5qHFm2IK$2_Mhp8 zmtmy(1`j;q{Et>>DqM$-om;#WT|0!$KI37dT;iG7BA0nKw#gNqi@IFn?_!h*HF+ia zAa{5Zwi~R=PavnC@Yt}hE4u1)T*Bg(Q_0h@;U}K|W#NZdM;<-;~7cSkH(2O*^^3Z$h7ei+mPF8o0t$jFD@62}Wzv;P3v;`5&dwRJb1V zwFo`c1)AHEC?xxwo(Pww!+ zPdGBO6biy*%$18=Moo^s0Bi5IO8y$g$_@TLHpxx?DW=FR9{r@Jn@Q(+EY`~fo`tP) zh4+2REgjoD<^CV9(2b4wJZzV1{6$QT1M{Vr9tY;-7!wEPm1t|<;$NbqzRkbIYPrLk zuu<;v*li{l7tCKl--fCIgk>0ILxX>dyxieUD8`-n3CxhgKTH4xInQNm`K_bHvoPAJ zsqigWub(!* z1mA+PHf{c0td~2y87;ZXKm3<|f}_PJ_{EE(`#t|lLVc(HFkK<~YK;7zPWjb?`@^Ia z4i_JfE!UV3-+|F`oBxEZ-!}k1fvz0-`oqhy{#r+f_eWbU@bMU_O^HwL>#v4>g|foA z*wS?F`2uW~>wGn8+BEq(%$HkyAIduI@WYrXcX^K?{azOun0FuAAJ%x$k>^7&T77}% z4%0?`ZCJHGT&NJH8jP1<>#+_mUx$rerL_27Y*XLi!TtSVjE-{rlHvVfgU^sTeg($H zfqBUY1E_ECRp`9O0{D8Yms@-fHdlR0?Fdg{gAHNle!pa(KddxZj`znZxxh0ca+%M< zbh*OkV1``d3o%Qs^LH`tK?Cy-u|6(_Z^8z-&DHfjEH-e5pTg2OiIM$bJSNKpJ`5A& zA|H!Ma*0pD6uHcwLCs(_{yaJsR_BYcDZXytpJA@U-r@%^=NQlbj_@zcvLWo!ABJJx zTdkh=!hAW;y@Xye4I$Hby=E@!Z*DlWg9EGr} zfidIV2IjpmQ_k}^w5_1Phhx25KNQqAdD1>EaJk46-r%CsrpT|D==`@8^1`1dIV>7=`6GvGWUvZ9dW2QRdOrD$ z4!im?--?#p=82P?Z@I|FVwu&K_)|x^K2CL1_{ujKTyFC9#s08;rqfY$|L=cPe`wmF zz;D3DczF2=tWw|PZy)Vk+M&tcp3)yi#g6!(#`ceB>-EGgyV6n(fxoQTSkgcs~YWJ>QLn+~K!;$m-=1 zKUi^ir|E}3ca8zx=JfHPd9Ek#19N;nN^+f___T{%`*5xWR6pZ3Qz-D7^UeA+hm>b6 zw0gP1f54&lO9c*Y91ja=r>W1LSmb)NS<3-Cpy8efD$tmk##H-P#!--}I`>W3e}2D!`C zA=kKVzHIe;AU4`i;CEtzj>>#e(}dQ@{83C+U*Y?&)sgxRKZ4D_)G0rOjdJ*biwD)C!??(nKF@pZp)(W!6oAKH$J z+~w7GI|9qp^Mm)9#MjjG>fgIoVm)8B$)x25hd+6dB1gaMug?GYubbUpUF}<4ICk#v zTb{7ux`FvR%#d5W|C2sL$_2g@4Y|QXo-!dh$7iD=*Z5(ST8uA@_R#OLoi zJk;bmH}){tY5L@wMh_1w)wg-(D~5-X`Z5pfH#{tmoBIu~hHsA>9+v(_f&X#v@X#-Z zLxzXPUq3vokNFKIH%SL_j+Y!cJml^)0C$ca9;V6BH%=WMX1A@9_dm|0Z#6l-6f@-p z4>^8#SSIKAY%IUEYL&vnSZqU=Pk!6*Fjp?~t(YaZdEzvymy3J_=EzOn^8~Ar^Lzmo z$#s77iNnJ}lPmJePZ}PkSU{dnddKk4GSM<$Tz%*8ut}l8znN}!a)*yPd3ac7hZ0|l z$#RQd`7TFDrv<(kb@dG%bczAg=lJ8O$u<5pR-bGE{E8Xs-L83lA675%{I3Wny=S=p zaBfDt^Gt*NkB<1MQ(XsgIBj_N-sx5&H~Gl2!)xavzx{nWQeWcpKj4~>>-;Nhts9s} zoTZJN;}ft+F7fiSoc}EfO@&9XM(*-Kv#nk(@Q1NpuJCuUF}CL|*kBS}u6)ph3>hp7|&bPu0g)%QeO>XeLST1+?ppRI=I-Txl_%3ZFVJv=n+8@*zlQ>MPj|N4wRs|sQM@bE@#ix(H4 ziRS7+~D6~gWTc0&$Ig2o@ZjUNta_CYQ~MOURu+s z4Gn%6E90zr>iG_}T;dC`S(`fFigD`OJnVDsX*tKoVqR>|M}FSn9c?i@X@R3MSLRt4 zxVGd9ANF6vLvg6*e^D5A;qWkWn2vZfYWJBn?~l!oI_x|VYyPMso`OX_QI+^i)a42< z!vwj(S7E%|%#Al(pT%jUdf`Umj_!i8T+x$2x za`=+dg!)>Y@?Kah=Xo6Zv?=i6=$DIp3YKb9=5x@HYrF&la^p+x|Em<1Eq3Vm{zdM4 zpLjaF%SFS(Dmlk5ty{gE=L^u(zRs6mbUZ>l{8-arl)L=&4?QJy6jlxopT<_X#{am^Efwp3 zG(5Z?113@7yU~z4{Fdw8(sGGULE{%D#1~apd6Icn*ZF5ZcJIn9zU`+bCAWFvYPY2w zihK-m4sVIC!)o;{{^1QK=k{yyh#MUt`{wuyx46*S`se%BxP#Ppc=oLx?dq!);j#PN z?+RVsu+eoOclfE_yCd$hvW^vFlw9Ls4-OAO&hgn;VG=cd7|Z1@pZt))rh z>T;2f!$P^lGtiLBJR6JT3NObxx%sI3f0e=lg%+>HfZXQ2|Kyy>dHw+MpSCmKfR(X5 zufd$yo*%$WuZ%mq8MD-Pc^hWS;m__8tUcRecrUD}D&&QOuv#wgB&?TnE=Tx`#WKjUCy z-wYlRDlVuFe|*GfV$-um7n9{0--yl;2H;%|G$A?1A3-Cw=gTqnO(xBEpryXeuN>!SX|@Wd%e~wsML|7?TcojxE5-lG3`VnER`f5(t7afH>Pr+=t#Ajk_+?ktL zAV>ci4Y|#IZ*bR`M2?@tCiP*$h_Da()#rIGwyCf2&oEDJ@x}?xf4@RUVKY|Pq08@` zXaKp)7oy^#tMd{}l^gskY_{SyZ^1nEUEb|b9lP@LdN&sEgbSj_qSZ&x5TVbiRWT|yyf_u$tGvTHNG27?K}K8tk5PLY4uns=Xrn3 zGH`+4g-)Che;CWPsc?0k593`FH6Fm2c&qSr*cdMsz7?b53ixgWxx+)>-{?FdA_M zJP(C901se7TmWB(4RHZ{D{}U2^WE64zQaR{Rrjk6xuO+dX&ji3#`3rV{sfwF0R9#x zYv1HM(TN@Len+|A)fe~_j8$Le?_;gp?|jUNFxq*| z@oSKe*95;6GvkE#WNdVOl==M_9XsMWTJgfBsLoL63eRG` z9Hxv2FT-j%&->&5q3ezV+o}q`jbCKLx^*RJ(FqfRY*=wf&`l-|iPFKuDp5O`SY6N# z3QQNE;J|8vbXc)SfB^*y1nh7^kpLYOEG|F?1&ajjaLgeQSFBJZ;)WHAzMu2^|NZ0X z^SvkMo^$Rw=ia1Uw=G;}5PUUi)F=&#I*UPNB5@}1dJJ(D|} z!0W$iGs<}$MgR9*F<;SQ8o#HUulky2yIkPDue)8^aumZyxO7m)znQ=$6xb0S29$<4aIbp65H!FBkbK^vUIKx&I&jwx^QyDDyUq**Fy* zN3Hd)@*XS=n{KTSCg_r5yg#by#Cb)=&JTm&)o8GvGJHPTTqE{^Zc(02YlcCZgg=z$&%DKA;ldz<#LYuFZRacym-#sq9HB|7Cax1nFo@C7K! zIlch{a)F=4as#dK5!oNxbQ(=?KZaB)@;0OmsKV1&BuCwr1>NeT_;f5(p5X^Dt-Qp$ z(HZJrZet=ZC%F^ta-N??L*DbhEbRLeFZciwUIs-^5(y(Ums%mDYbsXGI57NST)CD)%UARZ8(H%$L*L ziT-c}d^46PFYxmiQC{KyVwW6UZPw7NPLlWE;ELrqAB(0?zQO&!!NJnd5dR57p&_0| zV`%6a4uQhYZV|*CmK4T{M9L&f%$O+dX zCKvc_Ou0QuyaUs6h2KD}I)1w-dN=0DaZaLM4sJn3$7#L=Rp%CYs>jU9(e<8&*e=I8 z`vYGp4)Xk0jD=D2#W%QW%aP~5Bj<{%JoBfrIx#*91FkH|NA$WHZuRqg3ns!0 z@x!RfW!{EOM~Bbmeaf%af8nA`B*9Ecs&}!#qfQ| z%O(B|wug@Sb&T1J(M^8LbCdO-4jnl7BD$QA<{w~TXozpYu5bnXFeXDoybXQoRCwmi z1}ew+Ko4Xl&>Mp-l)V>*cO zM^JG!N&W_QYc#`GA*X(UAHn?44##fMxg2~nvTaUC3SFr6LY~L5T(0u6Tir%-ibv6N zg@*VQw1hpuvw!BDO^)$l=rN!KFGgH>l9!=HUn$ODhH}nES2!53aq|32G|5HYj8T`fKh@C}&MS%I&*$GOT2Jb_JqYFg#R_u8a#l9!=NPI1q@*1tRaXw|_uhQkTG2c2>> z;PW6BJ?aF`p{#@8CsCBk{K#e-Fl3&4pF8Mr1Lf7|mNR@l7Rfmt!4kQAU)EIIZ%2j` zcmWb}f-gc!$2l%ygARhf zD~7XPC<}-D+Nk6NFGi$Nl9!>RJjL(Y;yLg3i}QJyvK%??#d7rvd^;NDBHxcx=#1-2 zE=-Q|?;bU~23O(iQNz~CpT#A48EX8oONv)uB>dSO-;GhZ#9J{#oicC3u<{E3Y^y!t zGenX1e#~>;%*A*in$%D5F<34q`9w57;rX8u`mo3gMIH$}r~`fp>yEM~_${={(c?aP zqg!Wj{y1vJG|JyV()&n;e}$!TiC;pSM{kvn8u4L7PIAXc*4q5lG&ngo6|x z^cxM`p%O1eN>1|0Xp&Pri8T+q8vgdE_kzP*F>l1c?Jj^{!LVHA#ZTGb>LmF(v_5a3 zJc8_yN@d}|-8FT|*G6MT2spyr!u{?zZ>>vD=` z{N7!m%^1ID%sx{d=egU=M9ACR|37umsZxQTKuTw2KKWS>5alU;2ptAg;0*mDd%_-HpoSO75$+;H}7mbPml;z;tQ6m?5 zGjei?w_&-vpu)Q`FWeD-(l{zMa*W@P`N|W#1asvipNx7r#VgP#XVbz3XmXI_Yq3Z! z@J3A7bVdHq3*JoR1TV%w*qD4WhQr3>7Q~#J=5tY0p5yh{CFl7A6?;Wa@Cg;`KNe1Q z@HZb#9gS`-`i0Zk&%rQJo~W zpjl4yTEyiHUx~47cxVU@W3H3S{3-@js&efv4ahM*81v;g|6tret#_XL(e2zKZ$Xz_ z;%8oR3x3$u^FRKooiDih2?PC`c9q9Dd(_Jw2wq6?*{|3jUdZr6lWsHRCH~8+9!AQm zeDrJHw?lniTs7z;WnTObcf=QEUi`YN59Pf0pJwGtGPhvha5KRjnD=?l|D3Q1{az^Y zcGQ2~sCgQ@lt;T&Mw9Y5FUL;hDPD(0^K?`a%l;$qL{JG3JFNx1jz*2EiSHaAmv+waSaU9qr01JdOFvqbW0lZsl=a9*&i#cpW-J zJKT%mFd!a6cA*za!bB+WLY3$KTce>NUW(nyliU(ep5`u0D$nyEnnOFh6JyFNJdLHw zqc=S^kEK z^d4a!@YQdd9qmq;30}VU>}W)JivNjtc$mzX9j!u(@-#n)0rg9K@XXm!hw?aIgfZng z{xNnd&+|`b&dx?n8Y(!r15;io@~@Bz4v*5p(fd%NJkG}=tvtz> zqgHvID`-_7e8k&lM+=oFIEPN<{{GkOsLR207!miNIShz5A^NZZ@gP=)0r90Zv!e~B zH_u;w$Lwe_>}3Avtl55dz##Ztvu8*1br9!;wX^-6fR1_T95WmS%1w31dLbpW>^nQ^ z^Fo?0jLnYb8c>d}-*2{mOxA$-fp?ll^-KKRyELr4!qdomFNo@AN3+l!J_qm;bjV3Q z3AG36i@$*B1N6n&&AyC$L!-Q4e^Yw8k@DH-QJ&!e^oBaz_ik&iPLcPXJ3Feb))}9T zQmD_p7?caV{Jr*8n~wQ)b2SE+3-x2&Ci$ zAA=@2$$vyru5iuC+L2@Y84P7y82{*G>mOOmyn`puxz@V!pRvJARJlGShg*?XV4eDD zJ`;W6zUQ}p!Ia7|eiFNNQ0B|N==l-a=aasqW9_H-HB>EG^-J#m)0^F=p&{OPg&phU z7~h2&Cl~qTFI)d`GMCZs?qecYH;^*&nMU zeEd{9|3{{d&-|*}>@ox5>svgasUODUIl8XcDy=o*i3bpKE}Kk_Zh`eV=kvM}~-k5w~K;fL26 zsY+$OGvf;6B7gTBp93_SA4IS|O@0mF{!KY!n zIvKtZi3AttB!dzdHZ_(s&r1-{b7 zmH->CRi@X^lVeNSRjUf|EGhAJ}-36j$XmET;(6HxAwPL zCqCj*4<$LlLrBOazU_wwr=cQmMzdVvtw_mbUfgA4%1K^^Deb3t1$Os&{-=e_;f0%= z%v-Vib|>@nk6gho4DPbo(T9KRihphpe0sMB&L(Tj_g(Ijk6hxHe`50*T$K;Vn@RQK z+;pXKImI1USw8i1yd&$&s1a3o@zq8xC;3ba$r*kKy>f|P#;{!FcW*FIInE!&pq%7y zV1u0DZnVpJz7ZL@z_+7A&K8BgVU2?-?{kf(njGVIAt%TASai!t{u(;vG_OY53}txL zweA8_o#r--xZ(_-kHK)od_8K_FYqs}wf;k1C_31TxD!ge73<_OZ^K-gV}BY)H5O-s`8@kz?G1_=G|5`Dj<3;|faIaU&9@(JDv11`&`G z{CV^^A;sTDr<~y@k@GX)GS9iuw4bRn{v3MGQlBqJyv^YF7UaHRrg;p>Z|aw```@JC zY*)h{M9K>Z-h#PuiPzrjVWNW!A6!sh2XTHHD|JxjGj8#SJwqM-6L#yY!tJ-(AI{Bj z{m(pQ!?`?whVc2nBrNIE!RgkFTQDl8`CAx~Gkg(-{UV=#-C;59Jdz;Sj zLrD1GTH?1b5I)e}=2I5B4KB`&w^{$uR@3ERJ=(&D1->3Tl^6KPpBuHD;1@7ITS!@$G2Sz&&^d))~M-h}z#!vc>Y zEtmOuw8#~H87t)~fA>xsOwREp=(ILTZbhFBnBk4s>4YLbfPt_v`Q&?bCa3s+n9@Ns;G-LshWfl} zvyQc&=6|8fUWx8=H(}*BJ^wSpjQedgC&#!Cwc%uL9JDc=oZ=CT*>q)|L`*|fehams z(Fc6)Lya8cpJH150*_!uxKnt}gONzVz4#DZU)@Y>+(Pf_%7Nc?^lwri=Ig zl_#K08s`rpsXW13P$QRk?T}^CL52^0$Ol&K$N6bAYro8A{90f3N;V_>3A^ml3b${u z(VU#)`jYqQa54{IzLQJ5qOQw~;Q`-vLjHVi7y@cHPMbKHe7b@JSU0p$gL-=pq=D-4vEA|ogHWUP@>yb43= zr+GC7p49%M?*DZT2K|9Sj=M1Ag*;z_qFmrj7*MCkg8}6wK6cn18P*xMpiNHmTC~a; z&Z4A#j@M(!wc6(%B(n|*!bU8Ti#&*>a*2=KYF*_dw_u^1=Cx>$Gn_@Eoa6Oa`Wqc^ zPbilQyb(*}A`c=dmpFUuV|K5DB)1?Tr+FnspVwo}1D^kR;Tnv2p}-rlT`uxN7?ex=6h`GTA3I`7A2et_ z9$kahm{(#zoiv|@b;>ir7*U?%Ymk!*{PPj(-|e92;2HGD75*!F+bjj<3cdbqf4bA`f6hdA1}xj(F&Re~-b?0nhxs&x6WiT#q5;aXteDuTl*`d}ONOEx(Ov)L)6rG`Cz8%FAbjFXNTX~sZLQbyotUp=;bz*$jAFY3v7ZMJd zuue|#DzwXKUW>e(;Y-n_<2>IU%DI~Il(;`k_)^Y8M(qQhjQ&yIq`Q>AL{clD24Vphjq$>`_Ut3i$WD04ua>s z=4mL$`S1TU6aKT|D#v!4Y7GVd=HD8fX)U>mkmkDXWPfP1h@F7QTdmy0}zid^E)&#sNy zJ+@Q4218-coW+bVXubjyp-sL9)zBty!c_SGzly?UOom2z1iR%jf4$Z~bdcr_42MSf z3e?DXz8TY@QQnBk+^%mA_wS`Lv(oUJPl!z;_{f#Ph!>YzYVM?-D;A)6jJq z3#11ryW!rlz9@PFPUooA4cTppxWpF#4a>l zd@PEe)-it#Ip21r`9jpIljB~LR_Kg}&^fF#-hoL!=CAOZsNUrBe{`@-gC>KB^O2~P z6QK+XZW4T=Ae_+fbGdeU(p*0S9fkC5L$8kOqF*(6aSR|)-6(Tv!9hjDLd?5z?v9ph=} z_xV%&b@bYdY0jft4t@k3hnN+Pf5NRL2cL@RgVpD@Puj2zW`&o1%1p{B{`sfPP&RIg zgjXBg({hzRzRU@7l26AxIm5SLFx2N4P@|y=?|XuakYjut+T)vHgfw4)l=3`p!4kQ|uc1e-^1;i^fE?$Ok&{!L#X>p9 zccEJ@^4yc`r||#3#D!x{vF4^O$$JoUmC;I9h*~+uAH@tg$;YGUx7bsBG5X{@--e`V zFYrF(8-u&uBQ@pn1%Y_q(N}7ty|6@%@o!KJ>&oNUBv*Mi`a=CvYom9e zAjdh6PIZEB#r&{LJc$Om$|rqQn-3c_zlc7$niURiaUVN~^J28fNp44@oa6OK%6YyL zOXULp4oz}}zr4yF;Z{uZO{bY+f77YJ?{4*YS03k{)t^IFnGS+aMM+Ncih?T(nKvP|%ns*0=#ryb zyt5%8$9N?c$!Xq*HK9Il#zMKovu?Hi86C%NwSmy5gW${1Dd+jppIN_MGH*xcDF(_5 z`b@8!;KgW_liYF7bW0*@OmB;+mhk zvXutPE6^sVc{O5kh6hnEmw4tT8#UDD{ZT8&`7CtkIKu@j%<3$Jmr*NM`K(`fP}m0< zUWaKv70dB8n34;8;2oCiA&v5oiw*%WQ)$Y9VI!(ofww$oZaBdkb?rh zg+&^Q`b`h!l{Ca9)X2f{JI$CJoWqRcHOdu~Z#UJP{H58LFuhzrLjB;4*lBP@9>PTU z|6fYNR-|-X=51ImS9k(Va+Rmh7zTHjcRZwrOfNr!Nx8zi5QX}@2Q{I7(MNA2Ia6kIwBG0b9pC{>Qwl!&8{?@%g3QvPV#BUMmAAKxC-+^L%b0s9T)j8=vJr7wfC6`ImU-! zP@M#4u||20uRxca=OSWq@Ly1`<0>C^zn!lLY7?aC9 zYtXJ%C&nMdP-uuhhdw#Qzd*lSS9#$B>f5jhJ_!>qW}P5>9h25I&26Z4LWZwJ zja=Y9l*8`j66S|}z<)r4T;Vqmca_nD-gZ$d$N3oS)=rWy#GMV>;t&utYBK2~XJv&#Ipl&Ots@ z;`Nv>=XnES&pCnnP$L(40JU<7hcQDg^M`-y4avC)z6!13Tz=cr-d*JwpNkPW$Gec7 zVY5_)FP5#J7t*{M^E8y<@1r3Mj@P3*434isr(EDW&?Oi7SIEgFej1y$864mEj5jS; zT;M(=L;Yvm|C=2w4=3;w=#b022W2NmzpIUABQD4IAXMZyAC4t*g3tNAwf}>Gawq00 z&-2X~lneY6>J6gI9~#rzRfz6!M}75F*C%tVF%i$!wu zoOd(C)JgJJFe6+Ie-D$P9exhGTIJ}EHY?iXIDaZ+14{8ZXqIz)1D47K{xcfo>L16Z{1vw_PRQ}!kO__Qg)e#lsg&ctAt6_J59;OUFYa&j$z|S+HKBZ$9gYc|rTJd$ zQeNT(FM!XQ5MLKLo?!vH2 zdA-|>MlS^j`3WqT<-ZF7jDFSFBEtP z%jFV3jYhf5FCZ;fcpQtqsso&zJQqvkINyjFa)F1?AeZ>*tS|E&l=%fD zT5u^^3dsbeEPJt*Jg&#N4@eKuSYB!P7q$l#9cag%cmMFk`w${bjm5d1YL5T)BiO% z=LTPeA>{@B%>R7o4E6brXin557df-noTya}z8lNs5@*ladrmYQUf_oi8EJ_puta&4 z51cW_?}*#UyZ|e8oZwbWhjaOS49YoPk9s-JBdC$fybaCHt#JL!IettNe*P~kz<^2# zUW}NWrzL6yHX%V^~ccL(G=-;6G~z;~fvF7jsdo}dFBL7!aaZRn9JJb{8- zi7HkTQ@>XA4*!6%?bPVpK{8C-_5*e&Py z3dGdO^KICrgCakM$RL6NKDrPsyCu2xX@v5vZ6QNOFjcRC=*I_C&%Ih&18s#4B zmJ9sh*c|_`xIuFhCPJgU3MDzsYcU<#x$i>QO;si z&hZu485-s5G5t%8@-TMEWj^CwWSwqI+rvQl7uf0jqR3+y zmMi?7_v$0-ASWDofb|YfF8(bV?$;=<4z;;-oZ)UP57W*!qERmJ z?MTW+UOeBkT~2ZvsyfKii><`=I zW-G%JNXb>MJ<|I3JBSJI!zMY-hoetU@MiSLC7wX54yycbv{^FG=V(4sa)KYgJh{ZH zkMbZ3o0s?gi1y_e--5DS{D}MippRM)QxWGPdQElkhZcDdnXUwHLa$upQB28YejdB! z3crl1T;=l@+q80yH=)shiu@8Ly+>4e4=N{m{zo616MYQ3ypZH&*cskz_$n;%h%N9C z=7#SJ_({}#X}%W2;jNrEW_=k7@8$eD8k-Gh zi7CXC@;D!k-ExADM&x^hB)4Ig@(kaDB?evMt(Ys9`JErvmK^5=sFxFbZYXzQ*__ae z4lfk=cC3?&d_Own5>KE_uJT8Y(SeSWybM#}9g?rYv|Qkg*ew_Nbu@$v`-D!>5-yAn z|Ah5l8LrI1(P#~gavPS*89sffL4-e^<;|EMKA7;#V>Kklcz?{0pPdYiz+c3k`RCqzsZ7C;sF?M-#O7eP4 zgf}YQhIpvYLmHgSa^z#`2sY^IqpSG=$P-qjL%2R?hQd=#tAE|BN>wIXH#t^ENEsjOSjF7haPFE>zr0XezCuc4?; zmG}9aPd-}>nh!&>oZu#Gc*OHRC9J}_M_d7~#ehl~z7&I@W4u%uVRkSBh66rJNY>nrdu9OGM7p$3_=l#Fr z9Zin&%2R#F{IA~^;whx%=&K%FX?eE#{K>OSw_m$Ta>Lp7kU9x&IL~JS<=KQVf^}Xf z^QsH&(pd(?OD-|$a56V^y2@}eZ@I!C-fpk(?RjhL*RG0u@s&2}dv(lzzsjc|^{f2A z25reDe*9Xq82aLm^;rK2CntOC-s|oBZ~}kg23Hr#Ir~#5%Q=4GW>e}np(;Fii)E0j zJlN-{Cztr;JJb(o++rlI_9_x~yPIw5k!Jp6#?{~YVe z$2?{e?QJvi;ZItoTI@;ZW}F-2MbEm|Yt-lZ=hd+Uaeif&kLB;MC%A3W z1(@9of8bSv$c9FRjjy?yw`r93f88dMa>&O zFGh7yeONv|ckjBW!60%xKC>>W)n=7HS5p@)l~bI(b5>on#zB$i%&Cid1 zmy`MV{pz9)xx&ZR*G2tul5c!>U9?j!@Uic$i&oB1&U+55i=vq}@4UKb@Sr+B2eMaq z-63^;9;8iv$6<9*Tdn7ROc?*L6HI%Riyv{)J_f}1e6%i_l1qH-B7=~VJifRt>XNH` z{xNk?tDNK5C+eb3YaCqr$vQvpaWQ;3TID?dyRpvChYW66UG%YKS)+48(!uHz>!M~k z!+%(=W52Ig;fqhIiw5L8f1=qHSnnjChOQmflC$WPbDUpM7j3^lXZ)vA4CG)l$BC77 z(WLU=GchV>vce|J`;IH-<4-lE2U!~)!K7T~`mb7!7wic>3L{QV@?}UW&+}C+b$-ExL| zFew+f_O!Za*nncZ5D6V8cs&~AJpT?c?;RB$M|FecJFPAoedHS&b&%v`n3Pj|RmdKz z1s+0kcyr<>kqU24{0FpzM!DvjWb4#ced6= zyB;yUyc8>)oaB?xET{Msq(h_Jg+@8gKUiJon^u{(Vae47#0yTh0p$cQ##}kc>oHHx z^R}!n&EW(dN4;F-qt9^F-kOt~!GI2eAH)W^#CNpSMP<3jd$4rGu0GQ&qFqk$3e1z! zyb*D^$a}C-&PHd|MKdwiL5xqqz@tv!Jf?IIyaU_i3crCK%M_hm7rh%B(d;!`*$9yeXL%(aXI(9G?I_9U*9XjS0&>lMGy}spS_jimBMynj> z522^s8uN+hkW*a3ZaMgA^vPxZJI3THC%%kK0@Y%>X zIm7=%q})#+qeIcJJi$Lb$DoxLcoWtsFY+L&a*027Ze6rIw8`1aeVOn=p7%M={p*Do ze+?DoY3@L?oZ~Cd6zcQM=#>k62S%M+X(+m&F1iE@mFM|hRFs$aL+k3Ig7O3}LBH}OFULIP zDSm35^=}W2I+%Z<+b^8JcVeYn?& znAc)u=$J1;^ZV=@z8K5pJl~2%^9-WH{r~yzd4q9~;y+>6bq2xbf8WNGb9{hh8Xk4a z@go?K%lt>ob#8^+7NqAaZ31J_{N3Gkh_2-=s5sHe}@$o~F@b<97x+*JQr z$NT`A|DsJEMeB<$hPPvhxBhHJ7)Q=`sa4*C4mtXXL13L6em6v!23hGyQ9G!BN_n=FTuJBHHh4tS(Zln$l%DdHG(g7ca#LK3Xe~7eE=lL}4e2J0FI%7b{T#O^$)AV zPyWsUnl&^CIoI{^RgUjgDXmI>yR~$Oy4BA6yT*83z z;8;N&<-uw6Di6*Ued+K*aCD0e<%QrBx|IhPkZd$vTt)m8YZ=OJwTYAm=P_4#a0Tna z?Z=6q$!@>kTtInnIpk5#{}AGR*2fFMnUI|jTtZrTaBQQj{QoSsDNl1TWaYupZ3gAr z@8A>~eajtOz;flmRWvCNPX0XW{aZuHpSuF|XehXXjPl^bCRurK4teFl<&c#J$A4k3 zC=bqrtUS1cxt^rKvD@v7$6NrX5mTPd3Psd=A@~u@^I$3Sf;%jY)w99!OM~kJY z^0I#ScUUIgh*ouqJo8RhuRO-9(XBkgTd_uYnHT)h`mYHc2BbWFcCF?E6cs>Sib21-~ zVL8RE7?Lx52}a~RKZ%lD=ICJql7o*#vo;eCyZ=AsV8drL#HXRFMMFG}(JhvM4}Zj3 zmYl#nm{eZi{T@~SWA1zY8iwUGKZ;FqnNJ*cdq1arz6=F9&u?N;)2^@y0d&eG{yp+?g%22Um2#ZVM7x~f>z*`-7o5u_jCMPhFa3>;+@)jgL*Wv41V4&? zxy-xJcZuhJRoHvfQ_u@BJ_(!T6km@Ga^Y!jotWpZR+c$dwglf$pHo=Zsy<(e`Mzt; z^Uaua%N6)pB$QY9HMI9wR{rEO)_>lkrt}$~;W6sIOz}-(EOAu;LX_eURTLm zu~RPdHdN#akE8Z|I^cbOXWu+;pnM)?D9`bu*x-{=IV;Tjy>)dE=gY8N&hs!5PA>C( zV|Ms~I_3#1QC{U!x9M2@H0RM5&gI9^DVKR0#^ef5qCq=V-h=Ey2hp>B;D9l2JW1Z? z57tSJ@kyAFQ+yj5Q|G6a3lY{?_ z`Eu~*{%FuU{Qch$Zb7>jg7=_T4*twe%OD5eh)Fqk_VYUU<9`3=bLBQU$3MjMuKoVc zd3nZo_$Qdm2x{fvd&ssKS-3~E8lcwa)IxN_KkYNA8_$zOv)vGcJFp#CRBHyPa`A2BI!`1T_YWIz1jOmzPLyvEls(j^~eWO9S z!2Q@6euB!Ms#E`O2EiF5<>2$t`|o#N_wbKnE3Yg6IQE(U-+b$b-FxQlHEW+})))6l%uLV7?45dBX|KKZiuOwQkARc^kGwa5isD$` z#%p@$VRgEZ9YjGLMR6I#1$Q(Oaf`SlF)N^=s34=DVzwcPMxrrdVl0drhfNmQ5{+m~ zBE}@Hi5NAa#zcFS}}S{Z32;-TqC+>EYqE+*#~r)ph|L!D5sX@xK7()jawAG+$W zK2R-c9GXXA8U4JKQhZQ~H%jqBDV``LjJkfOA4*^TP9NhP=1Ibe97$-ljua9rPt2G&B-ya%qVRx;9moJhykZBeIpYR&F#D3Zw{ku`2c zR=CE5Yd^g8QsYHmtkwHzI#KsW(fs0C{V;z=2jbX6YZQ=5V}L`M?u)+gLDz><*Ax0a zeTExno`2LBUmIndw0D?s?6yaYj}{Fz4$K~6?3o#93{4+wY@0a9=%-m3=WdkaB$Ga- zMYU^6H~>xKLED|whtduw(Ov9cAQJt8 zL`RY6OC*|zL}_?Y-Bf2}aH1(E_1&rWDg6XGk9BqOQOVb*xn_$35#P}m>03YRea&nU zxwm$Rrf)kDuUplK2Xy2ojrg^WT+)QUsUwxbq$?uXt`&a}HTxWNkZ(GO;8%-7ATQD( zlZLQAKgo$m8V_PSR7%p_NQhrJL<*Q;nppI7-!pod z1|HWlwHdBOPTEH!^;LvajntJ1Re2gIP&1O3O8nfNiF=}!xV>guCsCHgd-pV+?Hvi} ztEU>WRMP_gi#0m5wS`Dpq-%&%BHpYulscbRa)>*xBr*y4VIB-_q#=L`c$^3-0OW#fc61PF`7D8+74TsXUwfS1j z8ttP{kT;!zHjgK}oW%>{$REz)vhn0Kmwu?D(*fzWn|&X{q4|EfA}(s$h-b!;+d+$j569vAgHM2Z ztGx*MJHywGxG3u?UL8+5xOF1F z2_}As|9!-YiR7<7V%bEpK0++Q|GwhJiDXA#F@GXC*;m|v|NX@E6G=lqaqUDx`-`jb ze}K4ZBEIM(zB7>=9Uv~p|AAuWL~?zg`1(Y$a*+7@cv3KUvw)Uf95VOVczl39RQx`M z&_{k2j*TbB9t|br^l;V>mxeEPK&qvq8UO1TU&w17gL-dztRslbvH9$7x5lv8(s7Mb z1(T&$OVTU*6o&OAhV=x7wHCv={cncV{DW3=SQ*!Mocet>i!5~!UrWMQ(ZzE~X3`kvd!?k;_K0VJ0~l_Ok{T zm%_ylXOU$+#oIGUUQhAtERx$x{Bagu87}@Xi`4cKkIy1|dy7Ys$*;Y|ZW+uR`5VrA}(DOPx!|PgqLe@Lzt~-!} z4*lqR=k(!)_Id$ryH(Ie8{_A z;uk*nN;ZqW>D2{tG1HAh-XbDTd9(Dd`G{0LuWzN4-~GIPgt|i9)AWu;gSR-eKj1+& zisC*GQmXq}z{MVCagPW2(fOVh7l-s>kq6EZ+|6RX@IVeIdpqp0(_e;?zXT=!^FF6X zwOtJw%~j1~XiT;sZXQ6kYQ-A^$tA6L#XOMwq3yMPAUP|I`MQL@}91DRbO&l z*K5ZBvfN2rHc<1nvxqds&bp0#$Z{7kXMo1i;+_Md?|O`SV<0)|DIOU>Hh8@NdAqj` z{IA|3ifB;erM}{U0pwM`Uo^W1;KQVKnw0~{hpohW{mE~wo)Pc%)9eWpPxd40gTzz) z$#=oqg@b+ZcI6e?1O3VR&K|hf6v~Rs>SBQWMHdnL$u1(QD(JdiK#}hoZ)gy|H2if3 zB!HIVQ;`1RoBiqb3;F=1r;lIIccV`Q!1ZZy2JXF7n_hf8x-xrNpc!-&Z&K5WZ{Syh4k8YoU9MZN z#rX^_Oy2M6g4kbOgOK&7Hj)8Ji+W#$`s1QL zSrMjR(mz3q@4){z)?z!5g9LQnCB3I3cS-2zGZN?{pm*Ius&$v)}kC} zefbFDk}e~kwF%~2$(ydftWQ;{@wlQ-P}_1vKSU9BS_SP@y+L6@uj+d#!j!A}&UDCe zI7uH~)$dTKlzOgzf04#Ip?n$y z@ka;prh`Zw$O#7w{8a}XM0lV&c%UxCS>rVNJPDDEvcjpbicCASG+Z2K~#5P}snGxXms77==l>#YchO(vMS^i?{Th z6v5{ppPoUk47 zXn()w&mS3RwM6ydF|`%X|G6{p_s3vL)6)`iZ$AU+O&zTH_9NKVD7yh=mL}ICU6Z7# zg{>cP8gogBP_R0Lc~koU1!Zw74;ThnskkJ;HHEVV}2PjCpSh(SkBt{HVdz z8`x{JKMlVfP5+jpf3}BjkIa_7ozmTXgA-+6Y`Tqh8)WuCL`mn3bY4j3iF6)F*Zsb9 zszZ(Mab~(7#{5)K+n#TT(J5!|5tk=9L zh`;!gor1VMfb17~y%|6@I=n6v`;ldikA2}!wm6IX{WZV3h=^G3CjQ`$qou{q1ISl1 zT4W3LzT~PTe(Fzl$zruX$#oaOeCRHI?oVEADSqNles0N_Yc0jaNaG>q`NNm81gD*?D&6kz%m9GwUp7Uc0;K#DE+n`-;>06mq53MJ9EgZKr>u+x9pjNX> zI|kXWX~g$OlL|rHIEs8C^tw5ke4zb@@Xly*M;CT&G^usgLH@)=%oweC$ITneq85u8 zmF*$^VQUrYu$VQ9+-NHvA4$GzCvF}|%)8o)uU3V)iJu)jcqp{M1eS zdNeuNUEDRAY%_{AqsjKLo2+BL?0HACVKmv(TRb+JT`W|Q7=F~`{-cE_lC1hDT!vqZ;fWvei6-@^KCS1=E-Q*{9mKl zeO-@c_xo2g>xZQySpTdZ!TRmYh#YJxRQ-hpGneumtN1g zRfG6i6nV3Qm=Q&CI*5M_Bg;C9cZZRJj^gcMaW|zNM<2QAGOIY~`*%>CD zA4+}-+oi$9`Eb@xt9y#*z@nZ^zR*)dXI1nXirBK=jQOqivydAG1w-C7SO@v_$j2c! zL=J|$YAEZmGecKnSg}Az=kw`9dRZ3?SPb z#GeDmw>t5L1$geB z>QlpyFT!v#EDbkz7UkHY6^WmMN1H2!R(js_J78jApN zAG}e4oMZbz>&(Z~S{;$nwZtV6?!{b6 zM@e#!yl7UYPe7VGQOeGsN29^9ji)I7vQp1I z2T6S*8ZN5Oe(4lZQd~58)ylNdNx@CqW7dSpO-;7JRTwe6zov_v_ z-1Cx#D3vz~Yx_$5=*!-cqeA1VH~q|8a#gMlc=P-hz4@(5KD_TB_|b_zlDffI;={YE z!iOh3;v;>glo9I3nXy*klrJy!jxQfIyEIlK>iUi*{Gx{3(qQJOQ|ISKy(ReI!fB+O zL|$OCl{w3poPRTetdmxm)mF#)A!+GVKi)pcpQ{&y4)ik-dy<#^C8 z0#&>Hr4JpHJ73U73Y1Du-Mwd18IA40C(oTWl3yD>x=!ta$CBr8E6pv$)eh=JuWA=8 zwGf+1CCC0JN~LEyN(+@jp9zr+jS4tcVh=q+q);X5KnNedt0B^JjHw#iN$RUn;+A#h zs@fo!xjDjY4-TGq#dGdC8rA zwh%eS7^VL9U0{BN&y18Xev5}*kshO6w@4k8gtl}KTDC=MLoFFnUmDnhCouPrTGNCc z{I+p5kmak|*+Ys_d)u)mH?IAyLW+&hhW<8OYN=Fp+)BIl;yDKQ;+hPhEnVMB@=y|P z?xjw^s(9mN4;q*Zwz7SH_XxlLvZ zCa51B)0bNw`zzR?AxbltLF&d9tz7$xeNb^{@li6-T5(f6eWV{Bf$9DD&Ai)>uP|q= zjMSf}3Gd(BP*n`zQT+#4yI??bL&ef`<+Imyqo&V0T4G@z*#5ntqVXR|;Z#0@=aXXw z@{evCr%j{qKQwfCvhPlWEnxj=_w0>0go&lp^(e$)Z0aL+2FL}SK09?hpEuGGm; z7|m7Uc(kPUcDoT=We<&j#d~=KZ`-C3R&y{yIu^=Rrn#YK>sfP-9vUgl_)jx<(}knB zzeY##rXCt4y{8QNfziAvS4VT3dq2~C3{P|BF?a$kM&T<5>&HkF{;%?@I@kXR?i(B$ z%RBkh6TGJyg*H!G`!0sh*cDGU34Szkob;^Hgbm|(w;vkE@9uskWjs%_Vf^2wd3Y{= zy7*~smG4h@Khs!Y#WT`S`rPBvDW$Fd|GIH?ZQk%KUy>gp9DkOZ)jzDl-zTn`^_(QC zb9h56*Q2%1^E#@Ym-;$eXB588BtltR#7ZkvO+oTbJkse|aRymnT`7jztt4t3-SxcG zUCGxbjxUwZ#7PMXvpbGYiF0v$+H{QP%&2&-r3Q|$vX5W26ztJUArCvh*YWn$9sjbqqvs0z6Ld37IrAw>q%YU7bmCeYV(@?gFk@l_v z?LSBA>S1INE)Lkmi$wfL?UP5Qqtf&5-k)O`A{;D;Xd07K)A?}Uo6Z$ra3XSFdWYwp z+^A4=Num_yP=p9-d>7w`{Bx<~sc$xZV`oUcd_s^!8KwtC{;={Pky#Im9QLrthOCDa zTl%obxQ9i0J}h$Yiigzs(nBJ3MkSKIt(CkL?HilK_W_NgamdPqCQF?H+}>7edQh*X zu$l4catv3q?yh1HX)L0d>an>bbzu=Us{P1pXxXK=?oYjBw$#<9ltnyX9vzsCc@+0n z(>&^!B6SULLuw7Hlv^X)dQws_ud0{XS6%_qBZH9-npXoJ5TVSg-%&Ues?=SnsIcVk<7SXJ$cg}&@Cn4fN1EfR-JuLEQ=0kF3 zJ}h#;!y@aKJfztCheb|$Sfty-BCFqcNS$fc$OqZ05JWb&aLiu$)GbED{U3c&I#22) zu40jN$YH&@={q-18sZQEj@EaV!swr`NCW6|GQQUN@BUlf0f|rN;@@YxvEu%@iMxl5 zo0ybR?&$sJyP3gd+&73V<2H9$y4B-*1rK3PIN~A9<#ef!ViP(pRF~hX2@9nhjY2i< zXBvh7d}9;&lB9m&v@z@b0v-oEu2k6nBkqkn`4Qg;Y3E_$wxCh6RwBVcT;q_$t`2gx7EkzN>Lj!dBB0S)2EKW}N-NN>Mi%jR{rbx+p6manU(c@Ki@(x|cW2smqC(}{QA)p# zW|V!u-ks5$3Md7oVgB;p_3N`Un)R#G4Euf+wj|Qe-;ug0J%9Bb__@NtZf?2MdYtGE$(aTT|SYgh3JePosN z)B~SE4}OpDSPI|c&vo0a=9c)$)zVW<(~W8EM@{;(XEonhU9}30&jl(de}r^DWBa6_ zEq#tk0W>aKYOmbnl5E}p?Hb;IK5PD+1{_+$TXKJO_cIS@K;&9J*<#mnqju;6?y}#{ zbX>>Nj9SMH3|+_V%AR%H0uHutCdI;;vFmvg7p%7$P;1m7Yt$cqAGP2E-XZt5=YHmY zrG>k5xC!5st1cB)v+}UQ#i_CNNZXZ)qk^zw7?3AX1;a+Ui=JpEE~ z3@+x&<1@v43QN1C*XTC}HZe-1!AhbPB~q`(j~|rpT>ezT7mPnj)b6fovq=i$E1UJB zh5u)M23FQGX_V5mcIB!9R81(C3e@@=J&Q)6(LMOLpPl~ixfuB5L3N(aZIR|Fw;21e zbU_hDZGE6~(MShWS=aO`xD@lM_%qQJRq7P0I#eaOt9o*FJD(fUCwz`I3QvB*qh9}n zI~T`4;l+;KVe4GrN_8%lS%p12xMo&-%A+8(r7b>_B&GdrKI3CG_A_avI#y>thr+%! z;2{cIHDV_|%4z&0u5arpWDa{$#B5}bCL5Xeh5D&=71TFJRqf4R^N-pG@3A_q*3Xge zXR7w_jySc48=H=Md9LAmr8P?X&+dh1{!$Mt0j9zH6YfX$Nh3s0Q0kW#lw_OsNn;#} z!fccI?3enAaiILzFDlg!&QkVcL2Aw zT;&gPtJU~X_x&H4|2rS6-~R#m{Y>n)(n{q%yB~tXABb;m(4a%s&*u(t|7yh{t^o%Q zNu3%^$5;pU$>mXO5dv%YMJ+!XNsvgg;?$Jj@5A<6*9%D-K&* zka3u|0Ms0%b=vQE3kHA3*X0G@@#(V@jCe4F^=ad-OFDwlcnKVh%!BEB_J~?u)vP0u zAXLR4lPVp3F6xxesAnD05emqc)sPyWm4d5AoR)la=8t9>lr*~poE`y$#284IXAC&m z&p<3gM7%#sOJuB;!1;gORSp z0dIxV;^1do|E$HE#I!iX*#XBC1AQHc(Gx!c?IoIt5x>u}c#EVSAHW%dkTDhCxyE%y zC=z%{BnU79k$|O*BdH5=BrzQvNlla^iJb39;=Tg*IpTeZj->vsBdPui@x+P5yylFf zs+>vW8_sx-vI~hRa3Q9RE~FC3D0IP_iCu7XjTv9#-R6Rqrn=xfQ&;?+-4(B=awYXZ z%mrKn^?>m=@BqQj3$lP}pbiMSvx#FcxNCy}%yW%}dhy&^Y;}ygM89*ga4+LFB zc*B**zq{g$gj=`(YW_k9R65`dVQuj9(zbYk4qyT5fO>$mL!1F&XT15R8{YWS6JamB z%&Rx#K9D1j_F23?Cl>kQ!A(V&fN(lqUo-<@65cX48);JTrYIBQ=HRVV>|N${3y>)t z#6lGEB3`og5-NEGiOfI-;$K7fI-XPB29M0YtUcCa> zE0OLUaI27RHOgFrv;ceIH+u;*JD!>y1dIcK&C1EY?8IMo(l0yVm!0g(PV{9b`LY9i z*}=W+z+QGxFFT-@9n8xP2_*r)BEIV$NoifW#mu08Q*16*>1W&zkdTgX0el^?*r--yhTrkpf zK%Q<$-vgXE90_}Z=!M9Bi0lsx!g&_}JH?e9-f9|-0;9o=#P!=KG(skkgJc})E|WOG z1Y`hNfCZ=os(~7y4yXsnV42835MTr%BawFqzAavlfATOSeiRv_QRqluG!n!h@pC93 z0rE5y43O!_1XKe-iKrB)10rW29w0Lj4^#s|vk(u&C4o;yJdj}mKMz;{8NbGld{H*z z+&i@VVJrHUEI=j0ZWIdC0Ciulj3K3TExVDO(mjVTI zTo>4}P}nRM25SicV%h>@Ve=jX#%OVjI}in%cnoQdA}vq{#NavzsE2GsNPsxN1VjQg z5#Rt*U*z2_;8Yy}2jb&H{tn1*K%S0Tye}{aL>n!sM3{9%Ao7<2sUME(ktpm70q^}q zrmqDO8IE*4z$1)7`Z%D*A7Pz9DhH#$r+^}0BRC)k;0{ zLPl6$>VR2~5U?;r;rb+c0Ed=54ON^EtOs_UftmtaAb$>=1%3wx9oL!hN=_Zg05&2) zEl>#g7;qW*3pjmLM-FV!k%b@W$Oh>Dq0Krn6#6_8_~K(7$%S730DK8-27U)#LAttH z9l7(Zjszh8yFk?sI`RSL%%Q_NvI96+gLJ3OAR&AVr2MEOE$VdS`2)y&Qb%U&(~-CL z>&ScG>xk)d9r4_$!;8%^*#J*mZ$S7F!h_%~z)i@X0-J#Eaa{tu0vyNn`+ITMsAJnd zbmWO&bY$MI@Q%;vNQC(}6a=C3dE6y1`ht!mUDS~!zU`EET(c<$cM8sVs0gF$g zalkY*__G5#avK%Z1AhX3)jARi&?5lyq<(=$p4E}BfJJ9?WHNAv-RMs!`&ay9$L(B$ zdHD_a626ghl7aXGp};G^HsA-qm~0@kfUkfPz&)VHYy(*Zd;(}w45Sb6I?%~vAaOuC zPz<=tF_4+SYGCwSlnFSd8q6d-)j-YwzG=t+d;t6ojGPB&47drn%r}tMz+&J_;QIvz z(lXsZx&kACHGp=Zfy@T310TL%z)7hF^7c!RUpA2aub{FF0||W9KyCvEUo()qK)~x} zRQkGsYz9UzGLQqn)WrsJ7I^6m1GxjNT4Ep`nFdk{guaOe0FNw1j{wgsLt}x|x6o_L z(Lf;JZ3CVUqH!y5=fL1B1K9ygTxlRjfTVW}T{POf%0Siu0q+^eB;X|Q>}mtK z3QVWy8Q_I%Tm#eB7)S-+{l0-L0KNf2)*?OdE^q)4*C7r#2XtF+AiIGlJ}{6X;3kl< z0U_|71!V%}r*aHr1#k=Ko{O#o#^f1@XFl#2I0c9Why#`ZCBRX@xY0ny0t*2O>;eJ{ zQ91A((6z`wVt^Nb?|~M@2GS8Y2&9!5h}$Lud43bdzZim0itYh60M~#4WoRLA4(L&i zgcSyo5Bvc{RvJhqPzQAR5ETGk0*u;*ZUe;a2AuZ?tp^OBV2puZf#Ew44>*5{Spj?lbpH(b zfm=ZQ=LWJ52-^w$0L}yJs|_S^mw|+Tf!PD>H17uSCA#h_Bmj!OHjr_9Fje*%$ozc< z^4fk>3}_D+h#xQoC%Ffi1utVCYc;c@sDS1Rg^^;6va` z;19s{djkmuo&x3pzX7)a*W*ye;~4*=5W;KGa=_sPW&uzNkdrVfK-wwj1#ld=3^@LP zih%Y&KVS?n6_^ja4dehH1N(rBz+IrtX-q?4B=8iF0;B`4p2qmEfM5ZNfhu4xa2&V@ z`~~>_h-n5y0AqmX0TZwYSPc{b+ktO^I^a5>Jp&60v;)F`p}=E6Jdg&w3@iiInendx z*bICL90h&_ZUPQ}Iba50o{N7Oz)HXZlmVXr`+?IyJ)r#=4FN)dUcfNm2_PPr3A_fZ0CIpWz#iZv z@C$GQ5YHNjJJ1^F1`Gm51F>f@{_`N1fu+FvKpF4}upc-MoC9tGj=va)7tk8$0t^I( z15W^nz;Pc+huMI$+c1@Y$AIU6B;X}rDXfLh=Zp#2ro3g``t0G@s0O|R&H)WTiwg$4LmD#+7zR8I%mEey zYk-ZwX284?|7w6=fZqY_Zw4X(K|oL7QQ!$+8n6&p0Tci`fWyEA;3nX75z`U~1^NKv zfyuxEU^(zUPzvkfiOumo5I6aZfU z-vG71W#BKs<0_^V&=VK}j0L6xF9IuoB48V^7dQp{2K*Da4M_FqDInU6e^US!z6Wdq zz5>nw*MJt+u%ZD`Ks>MjSPm2dyMP+t9B>!VUpJ7pKwsclU^cJ>$N@eBjsTYd=Nm9; zKzG0#iGLG;DZm`y6<{?`2z(A40)7I12V8!~^aDbHLBKfRc_0l~0=y4=1ndP)1AhR% z|HLc-CIHF6BA@`+4b=S;<9{21=S_@15CMz^CIc@6*}#XuexMGx3Aq1(mIK3q1Yj<( z6et3A0>^+$z&*gL0gfmz2#5hD0}Fsxg-3*8LX_~RFkFZhMhGK?QNn0pjPRH+R)`VC3FCzc!bIV5;R)eMVUqBa z@U-xZ@T~Bh@VpQ!#0l}jWMPUhRY))k(}d|lqA)|4Da;a*gk)j1kRq6bIl^2aRY()& z3G;;oLb|X}ctLnkcu9C!cttP^8N#c=Yr^ZoB4M%chOk7)6y6k;3d@AIgyq89!U`cv zSSh?Cyeq5{@XJ<#3faOM;eBDPuufPnd?0KPEJBWuE943J!jlEUMxjtB5{iWqVUtiQ zlnLcRg-|JcD10Pr7Pbf<3tNRMVVkgB_(a$td@6hr1;cs zQgMQ|Zd}U2w3R>JHVFC>f~)t6n) zPni-wnGW&k*jE=84q_(#WJN$v`pAKRwk=Uu&&D*dGiJ|7qeF6n`?%O-tXvT=i1xiL zy(jikGH1LM(A7OmkzJ*QR64{h#fHv@-)Z`tLkq{ zvjoSmd1*6}Qe)|vyRF)X_E7FSH9pytlz`he#m-Xxn{0a^X4JG9Q>TunLv99S2A~&v z^ssGBvpeb4tX)kvGg--+nwT;#X=-fR-1yn4rj*o#*rfP{33KVIMP2$h_2|KycIdX$ z-l<18znXVP%BLS(59s3@`*feV38tj@DRdrj3{o5gRojt!Gj~YU+pyy&%Uc zR8-GtGiFakNB60U7345y+WTO@Jepx{6<9UFO+M)95S|=wqG39@S7c0B*!1biNwH}O zvr|*%HZLo!rzw8M+!3QtHf|;=Dr!c0)L2~LwjP_1)>ulv7^od9Wq#OyS`e*h*J@1F z^k8|bMpQb7{`h@BdunPgx1g=s$$j;TimT&+;%Vvk0bQu^r+}&Sv6BHN_OAt9xTICT zD&&}>ae5>y3SHkPmIi+s;8#^?kjn*O>I^!rz1)RLfvuc0Q|aJe0v6KP_Ht{5po4x1 zm`P(=wK7+|+)2Ksp;cWF)3vnKSo-N{lnu#|-u*V94XrsHAkyV00z7EOkpNfv!3s5r zCyVu^f4zau&FCV3ELew2b0uK>gl5Av?3mc;32B(IsR?t_V&~1CF=t*v zEHsggA@A*oSgr>sc-Yit{S7U!SB(FWnwZ8#H7odUH11#A0{zgXRpe@K*^x#%wQ{S< z=q@jGpdWnH%GEP9Ej}$F>ahv2y<;aZam19UC~6Lud(!2)RwL*kZ7cjpSKDe3H9EE$ zO$Tmn zoEhNd3(cN9Zw73{w3N9E;^#INK@Z2v0TU5BC1v*f*s!UwVNK1kQax-a)4bTk_|(|= zxyiB9lH(g2GR4ZzPq%V3Y_jZ;!b)z6>lN0+8r?{U)|RO=;-|+Z$EVIhj%kfWPMtB|R<742-ZJ_*i6! z)vJclnvrT=3sCxJ8hSl3Ha;zFwlykNrKUBtQ0d#Wl-Oye@TOs77g)_ehV^dBIya$7 zL8m7q&1;Nd7xpcko?vEFv$itpF*QD|aUd0Q!id;uHkGqfxQ3qEQ~f{GGV%{Y+vB)gz5M7-)yX@$qBR5Y>QZ6*LSlM z7O;-8DRu!CyS8lEY{oIlri*E1g6t_^?W%h%K+$JblB!m*J(~u?hPAU{vs30KH&uX( zW;dfS&AMl{-SDNDn!241nkM_QK{F-HO;$#e_n0z#u_=>h!nJ6u&X#QInYp$K$}a3% zq%zG~1P>{Jjh9lJIV={Mkr;1kQhI(J+oP#NtW>xSm12`6bxM3vQvu4AeM30atR>J$ zv)#agXg(mnuzJpdaKf=PM_VZ z#f)g)-jr!+(Df#Zn>wdS;UG6Fff3D1m^0Vf^I@^bf%~`9Fh<>($v!*6-`D-RoZ=;ErD-4DV zEaKr-9)8WklPpC2qM;nO^v$-_lF%;sS!54Z5}OCHwn@JAkA zLdfbTI!UeAmxrBs*pG)3c{r1Y89cPAQ#QXY=i!$;{Emme^6+;a>STVSatEb;62yrR z9`@tmFdoM6@L3*C<)Mj(FYqvvhwt!k9S=A1a0?GV=i%3~S#3!TCu(_E$HU)v_&X2( z;-Qnfnos7TKM&jTurm*P@UR~bhw<<+9zJ2_!t*?w$-{IWzQ)71c(|H}79N)Ha0?GV z=i%2p{FaBcJp6@+S9oY{;DXRny(2dsdh;-dhh2CW!NZ|E9L>Wgco@gSL>{K`FoTCn zdALdq&BVfq5*}{lVKoo;^YADSf8^nL9@g{lHV+*<)EluXr`+t?-rzz1{>v86-rzC) z|LeT^vp0C=|GLHF z_J$igyd9ep|1FDWZ}6ah|7DA3Z}6UgGWXfTd85@HwgdrJG=h&WnN0eP&2-pk3uucv&yr}E#*b!mF3&YtIPM6 z*Ob?mBSMx)1cEq=F()!7IwvM4F2|IUo|BPNlT(*dpF?ux+@M@zZe(suZd`6mL0kc; zkSl^JNRUMEm0?m{QBzS@0l_GdI0Sf=26Ff!PY7~F@rJPW!bi}y=66Jb!F$v8p=qyT<%*QQf@4dERQaq zR32AuDo-zGUCugu8@iiy_WAPqa#G<`;fwAwRzy@pSHx7rRU}rVS7cOVRb*EbRa90~ zSM05*MTgc`G*pm!NjZ|#$s${VEanhPgeB4vW0_=0w3sXzmP|{w#bT+nY_sgO)L7~) z=PeBuk|XE%=7i*^V>yYBWoAxRjwPokXIoA+MzuEQyfUs%$|$ihidM!pF*iLoBR4BI zJGUseGPgQ+Z*FaFU2c7DL#|VvoEJyqSIHfHstalg>I&)$$VPc%&_?4%%f`x$)f;Q* z=2bEdLWV{xLhn~Yb66b>In=aD_NM9Y$& z9-X*KF7?QOT4X^nEX75|a%oU$NU4$fhY&7$HnOq(L{j+Tj)4jSz?PHTS1o{`*sDCEtUnVrr(x`!KN}JC^ z35iiA>C7fsR3!|tu#t;~7RK3VVUeX8I#>%0Bsors{xM53DJKzDBr_))npd5(SJ69W z9eiOKBB67WauYFnnTo!t+IBvdT}=7nJNq9^7}f_=!y%goEpE6S_R+nZOLcRr8g zJLUW4hvY}*N9RwEjdNG!-G$SlY% zC@QEf*jrFraGnlXCwqBhZ!E$X?A=(q@%%M^8FrCb$D zBTJ((ym7EjCJb_>Vx6iL+jPE^lsR$BWQ1jkE}K-A7{u+8RZ;7p2lcQ@POwWs%r4PR zAIO2ujoL|9`&9sPf`Xy9R|o^DN@W&onm~P za)MxbA~5uE7EC~q64sCAHK40BMv zF+T!B9fP5c%Qxkxv%#j$>*O}(7>sUQfvF%JBba%2WBSI7jait4%yMmGwhL-dhY8sLRgj?yL50S`2u#kH!byd3g{H#v z!VFB)>_SUnB_?ZiVNGFeVO`6@`oe}nQY07o76oDUMifQTQ)|$tdy8s{>Yy$4ioVFj zLC}~8Oz25iicFZ+8Qkhr7H?CQq*`TBl1qHCv_Q13sq_;aoXey zHHv^5O@a!gLxr-TKHH!^wNRY~D34s~TN*@{zc0ILv8K_S_vL5IiOMR(4AV9&_|0tq zTY=(~^(V90+*hVPep$pE19IQgXX9_Oq+1R#(WRLjE_*}ys8(8ie_XsX-0cRHJAygD>%=U!wE|mQ;!fVV-Zl0 zXxio-xs4XuK(B3({WQ@uhiMu{yYM`Q+ldc0hPo)aD26*68FrSUmXCb{M&DN%dm~0a zQW^b3KK|;OqmF-VaUI6L9&QPN1_U*_HOqdByutt&A@`pop?a zIygsmG$&$>NpJLkiW+^O+D0#k*&EdlifHtN5*vM?>_%^Bui_7>`q-fOM6$9bSuN5e zMK4W?XOzu#b6b1GG}S2X(RsEu;T>~$RV-AEtxdkFiJ~h%ko{bX6t{>iN;TAdrR+zy z7RsLVW1fM5U^?B&n0@^rF%E&}svnF28r62v`YRduppLM(hmQuRlM5wYryx)!N= zQwc+2)fuKSRL;kT`RU5alZCa%QmSf4jp7?O@D+&ZMo5_vD^Lv9pg6@nX6lg*_gGbq z>PD}rfiFhB>T(1ZC6aqiChjOVSB~@J;VrAW;mbXiX!y%aGcpu!r3l{gHf%m>+4jRC z6E`S=YOB~v6`?rFaf+47RIC(qg8q~*dj$kv{sN$?-7u1k^Pw$#9BsVizw zmLawX8TlfVt~f3hxV@E%_OJzr=?^J!Dp7SP1pA|Cz7!>zRV#$`C`)m0w%I8ZQCyr5 zWo3%Q%A_h)I(KohZ444yr|J|phbfq9l7eiE(j;z@(xG%r;fk;sV@l^yTUu9YYmuOF zw118qI6>Wi)i%21%-gZ5S2TCb(-p@&i#z6f8+Tz$uT-s4Ee_MF#0nGrFiZAp(@;Sw zWm4Vf^>WLi?7pHcG4vV|QTGjuFhU%msQ92K!ojxY5Yn! zo~o&_C>yM8$`-4Ju0(`Sw6Z8FMh6>W)gvm(tHgT_<>0aQy5wu;?bH@Tz?W&*I0?Rq zFI*8@1HzOd{eFLz84xe82*r_A9TV%)lu5ghV zRwwMaLX_=wB-`N7A%$|VnN;J)$S@B!3k4re=F22_$tPIBc5KCmEi-|Ljiz|b@X$BIx)P$;uTK?^WrSR3IvaCg6 zRUV~swB%1BIw()2-0tD0?wVE3E?#&l;jFFi(}B+0A@9E;}FprSX&Y_OSQN{_{R~aFGp+j5c(dMduW{@%svi=K-hj<9;>~Bdv&eFFS-AK5LJsb zKR|e)R*upB2H~4pv~m}O`dYO65QNYZ@)ug@Nmcy`d5SbBgpa>h0=|NTZ+*{7SV%O( zec3zKowY&DB9(7*Xrko-ijMe3bf{W+0pF+6?&#`Bi!REk+QD5MY3ob!bnTN6GB3$N zeljm2*y2YBSVh?c7QO3|+`aEi&aihsw%3ez)>_lI*Nk)4y7E|@0kF^)2OC(kL!g~5 zqmvgxcu~6ke7)yB)Wtfk01RhFb1{AYYOF-H-C9 z5U4Z>`U!OZEAlY6;I3+WH4x~sD{}W?-8r)!Qy5JYQjxyhJ)YYMxp5O95v5Bb;qBWw zq3P{#=V*<3=d4+OU6I?iF5}ETW(*AJ-h>RW)&_wNx++HmOytb#Nb@98u)<$-e^ z3pDmGIaQ-rn6K{1CM`1sRS{bELmH-^)J1fElHFj{RMGuYL7C?5oZJnHHjiQgQ*;P{ zG|S1|$qfBhdKiZRD1V+j!~{`z9P4PuV+JX_b2A=O?1AYq2OpRola%qE1am_9YtKVA zpF^G94dIyKN>1j%vOjCfU;^w)T&G487##Y#v-^6*7PWJ6@1@wWXI$I|DrRb}i+iAA zK6kjdcMU+FDTTl!Du32On6=irx__*65x|L-gHBNyO&aga&?DYL8H{TPOX}*mWqnTtPJ*`XIr^fHeGEBboXky zstt56Zz^CzYZSo7T&;>-p%ixIztZSd<=V#mMNz2ROKaM@x7O{#eb#gN9ORgNjBhJM zDq(A#2OdKk_tE;!E!&6?gE&1Ha@JlNXK?Q+)Tr6%7K6LDP_10}(_anl*M;i&G_H?( z+p4=A-1Qovj$d^PaeqnFR_@o+vaaqkv{n1{Res&va~!nQpg!vX>K24f;ZWEy2lVvy zaQ9$s4unD`{1d_fCX6_!r&q(>U(~LLklfRKgVyyMeU;S9{j5eQ`=7ntX9#2gjd{Vp zT?e%GuX{M_MZ>>F+ii+EzWo2^u+MRUSmoEW^fN184V?y}wLml^h-k?)PE|HCEZp*4MP=p*nwrV@(3YeO{P1$h1 z70hbZ09&RHn4qDyOgtD8Wy`z?Chk!i#!L!8Rgbfw$k$-xCvBMvU}`4YGH$SlrrEYk zH!$*CTP98EYQ43q(Uu8F6F1*BjX51u-C|p61DKd>Tjpz)?IV?8dmlnhfic-J^ zm{eHJ47;%xu*Ox|rDokR8LkN249{ESMNO<_ANLm~t@eke;SopM$C2Ys-8KCepm$miiHtjDw1rvRwfa zS7Xa)umom&qgT=}Yk+eZ8S|Z*MrFdlR61&H(mV#n;-oU_ZN!7Aalwg6O_imAT4Go9 zTVUiCwrMtiiIHrXN-%MD%vWGccFYMd7CYuQFp)A&jB2X>Ca6l;wrCf&GP~O{0br`_ zn2um#TH2=R55{80j0O|uVVh5)f!B_9TN^F z5@%~Qr5OySQen*2>PLez2G}Ng228ablLRIXPnDYrVy<_M9rG5Lpg`L+>sdK=OfeW^ zYbA}D-~DHxGE|B)-?D;mu2oZIC&6UdF;~FU*)aqg)Qlk8TrI%V+c9myMB-pHR0 z3_U^BaY|)|fMF-6HC6uv7h z=4&vOcFb`w=j|%H45k`Kwl$Tb#XgOlGS|d-f(gQzb5;iR2ZO4!p>Q-Dn8sgv?+gw|~WOTGm^F#~6p5Q6BsaF5B8Hp?#Y_t8uiniD?m%&tjY0GE=pu={I zH<&s*rYo3wJ7x$N@|A5lPXu86Wjks%5(U{YuY)n#F>Ap@+A$x4iLqn$gNd_a&VVsB zGTqV=($lcGv7HD;5uKv(DAJIzB9%M1ds4SS?k+UCx4S=mCBofB8|mvruRZ1OU5B;>G$Ru&`sZ^$&_Cj6w!h_e4%fo+TGKd?-*VC{z3 zC&1MQNOKpfv076M-Bs%D;u%=@a;SjK*#O#^Adswf-?qkXVCoyEAy*F8TUw{c*Oxn=4zn)qy%eV+XnWNjT5cZji1m^Y?b>f{w)-3H*Il8XX*?)!L|gU-v-W z6SxTRp><#2`9K2XqcV;B8j4ps#NA1o`Inx~+2a>T>n`|<8g-y?#tEHV=-yUq`bNt( z(ShbPWXt$Qy&rWz*;rTFF>fIa`PMegQ81BqOmG`!Fm3x~IAgxEWnKXjbHtWetpjD* zsi!#x@4(P{^#c87b!~yX_JM`0#nn=kh|nmo`wu+Jmy zl?$5;--F4hwPvtt1-cz+*z6sFd%dG*g|^bzlIC=D4;G9*^p#>f(y5c_3xg1nuJr3- z4DDT%)yj_sMS8W?J!ya`a;K4Z!G8qV=tsMG`FPWA26rbN4$UDi@yJ22)>HjxMqiKC zx;n_2oPP~=JmKMh5f@oJ#&3aoVbgD`z*N_|(ww30 zfxh8*B7+N?=!0M)uh7cj?yVgILlJw*m4>zU4fM-ZFKm(qW8P#TS}Cboy|9UXsw)PF zmsA2d=m%a>ciaRnY?79PsXOgTcRk`B=x6M%T-ZdHf-(N6M7Q=eDzZ&%37Gn`uJq6_ zWbPiOT-ZdHgQ>Z|qw(8rc3~6!5o50K=sw}f#s4Af+ykVZ{{KHSyED66yY1|?-7ec~ z7p3cVp?jv>y0=lvrP`D(ls1JByAeV(eWVk@L`x3df*cr{EcGgV}q$jA|a{WX)j zcDTS|42>M_k;CQ?lT(8KSCgqARun(2Yi89gYk8q%Xcr?!OdU05M3F1#i0~4cU>kc; zP?`>|Qio;>8W%T6)WV@Ot&74A%`P;N_-t-znvUq`ia10unW4BycE5!7{G;=m|A;b- zBBynrQxkmTQkvu?Wf;L7J5tS4+@fp>Q|wI`6(?nft5v4+$OqQV%CQ!}wstvW@{bWG zrZsAIc^)S0&@6*l;9xeu6#r&=PU+-eSjSvfK$SW~w@J}g)kWdu449nGmSGfTxny)V zKLd{0(r3F^h9Pa=l`*TOv%rzBwb#boEW?mSU`n+#<07h`ab{(pLK%j%SCC<-rB8u_ zj5ABxvAbm$(obQ+TH2ro*|Vh^m0?J)y_jav(xu=q!_)HG^AgK2q(yo|jvOA>9iTwY~NvGq!ZAG7RbPUL>ldU6+Exj`kbX zo6sX>v)>03h?$JL4|Pbx9o?0mBMM?!$$1Yb#z@86msnmAIg(Z28QE71@0U?O={>j@ zlj+%b!G0EF#9I&JSMj{H`!gqsk^M62mE8&~IcjF&cbKAMCR08@PB

AxzZ4R4>NQ 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

DMZyQx6GIcJr3>#Obc7 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

  • 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 #endif -static clock_t bench_timer = 0; -void timer_start() -{ - bench_timer = clock(); -} -double timer_check() -{ - double ticks = clock() - bench_timer; - double time_taken = ((double)ticks) / CLOCKS_PER_SEC; - return time_taken; -} - -void print_tok_vec(std::vector &embd) -{ - std::cout << "["; - bool first = true; - for (auto i : embd) - { - if (!first) - { - std::cout << ','; - } - first = false; - std::cout << i; - } - std::cout << "]"; -} - -//return val: 0=fail, 1=(original ggml, alpaca), 2=(ggmf), 3=(ggjt) - FileFormat check_file_format(const std::string & fname) - { - std::vector f_buf(1024*1024); - - auto fin = std::ifstream(fname, std::ios::binary); - fin.rdbuf()->pubsetbuf(f_buf.data(), f_buf.size()); - if (!fin) { - fprintf(stderr, "%s: failed to open '%s'\n", __func__, fname.c_str()); - return FileFormat::FAIL; - } - - FileFormat fileformat = FileFormat::FAIL; - uint32_t magic; - fin.read((char *) &magic, sizeof(magic)); - if (magic == 0x67676d6c) { //v1 format ggml, alpaca - fileformat = FileFormat::GGML; - } - else if(magic == 0x67676d66) //v2 format ggmf - { - fileformat = FileFormat::GGHF; - } - else if(magic == 0x67676a74) //v3 format ggjt - { - fileformat = FileFormat::GGJT; //ggjt by default - } - fin.close(); - - return fileformat; - } //freeze all the configurations for model loading for v1 and v2 formats struct llama_context * legacy_llama_init_from_file(const char * path_model, struct llama_context_params params) diff --git a/llamaextra.h b/llamaextra.h index c31e840b8..5d5829221 100644 --- a/llamaextra.h +++ b/llamaextra.h @@ -15,22 +15,7 @@ #include "llama.h" #include "ggml.h" -//return val: 0=fail, 1=(original ggml, alpaca), 2=(ggmf), 3=(ggjt) -enum FileFormat -{ - FAIL=0, - GGML=1, - GGHF=2, - GGJT=3, - GPTJ1=100, - GPTJ2=101 -}; - -void timer_start(); -double timer_check(); -void print_tok_vec(std::vector &embd); -FileFormat check_file_format(const std::string & fname); std::vector legacy_llama_tokenize(struct llama_context * ctx, const std::string & text, bool add_bos); static bool legacy_llama_model_load(const std::string & fname, llama_context & lctx, int n_ctx, int n_parts, ggml_type memory_type, bool vocab_only, llama_progress_callback progress_callback, void *progress_callback_user_data); diff --git a/model_adapter.cpp b/model_adapter.cpp new file mode 100644 index 000000000..e4edff05e --- /dev/null +++ b/model_adapter.cpp @@ -0,0 +1,79 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "model_adapter.h" + +static clock_t bench_timer = 0; + +void timer_start() +{ + bench_timer = clock(); +} +double timer_check() +{ + double ticks = clock() - bench_timer; + double time_taken = ((double)ticks) / CLOCKS_PER_SEC; + return time_taken; +} + +void print_tok_vec(std::vector &embd) +{ + std::cout << "["; + bool first = true; + for (auto i : embd) + { + if (!first) + { + std::cout << ','; + } + first = false; + std::cout << i; + } + std::cout << "]"; +} + +//return val: 0=fail, 1=(original ggml, alpaca), 2=(ggmf), 3=(ggjt) + FileFormat check_file_format(const std::string & fname) + { + std::vector f_buf(1024*1024); + + auto fin = std::ifstream(fname, std::ios::binary); + fin.rdbuf()->pubsetbuf(f_buf.data(), f_buf.size()); + if (!fin) { + fprintf(stderr, "%s: failed to open '%s'\n", __func__, fname.c_str()); + return FileFormat::FAIL; + } + + FileFormat fileformat = FileFormat::FAIL; + uint32_t magic; + fin.read((char *) &magic, sizeof(magic)); + if (magic == 0x67676d6c) { //v1 format ggml, alpaca, old gptj and gpt2 models + fileformat = FileFormat::GGML; + //we need to read more to determine + int32_t vocabsiz = 0; + fin.read((char *) &vocabsiz, sizeof(int32_t)); + if(vocabsiz==50400) //know GPT-J vocab size + { + fileformat = FileFormat::GPTJ1; + } + } + else if(magic == 0x67676d66) //v2 format ggmf + { + fileformat = FileFormat::GGHF; + } + else if(magic == 0x67676a74) //v3 format ggjt + { + fileformat = FileFormat::GGJT; //ggjt by default + } + fin.close(); + + return fileformat; + } \ No newline at end of file diff --git a/model_adapter.h b/model_adapter.h index 803c08563..1540eee52 100644 --- a/model_adapter.h +++ b/model_adapter.h @@ -1,8 +1,39 @@ #pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + #include "expose.h" -#include "llamaextra.h" + +//return val: 0=fail, 1=(original ggml, alpaca), 2=(ggmf), 3=(ggjt) +enum FileFormat +{ + FAIL=0, + GGML=1, + GGHF=2, + GGJT=3, + + GPTJ1=100, + GPTJ2=101, + + GPT2=200, +}; bool llama_load_model(const load_model_inputs inputs, FileFormat file_format); generation_outputs llama_generate(const generation_inputs inputs, generation_outputs &output); bool gptj_load_model(const load_model_inputs inputs, FileFormat in_file_format); -generation_outputs gptj_generate(const generation_inputs inputs, generation_outputs &output); \ No newline at end of file +generation_outputs gptj_generate(const generation_inputs inputs, generation_outputs &output); + + +void timer_start(); +double timer_check(); +void print_tok_vec(std::vector &embd); +FileFormat check_file_format(const std::string & fname); \ No newline at end of file diff --git a/otherarch/ggml_v1.c b/otherarch/ggml_v1.c index a5bbff566..fd5e1d54f 100644 --- a/otherarch/ggml_v1.c +++ b/otherarch/ggml_v1.c @@ -82,39 +82,39 @@ typedef void* thread_ret_t; #define static_assert(cond, msg) _Static_assert(cond, msg) #endif -/*#define GGML_PERF*/ -#define GGML_DEBUG 0 -#define GGML_GELU_FP16 +/*#define GGML_V1_PERF*/ +#define GGML_V1_DEBUG 0 +#define GGML_V1_GELU_FP16 -#define GGML_SOFT_MAX_UNROLL 4 -#define GGML_VEC_DOT_UNROLL 2 +#define GGML_V1_SOFT_MAX_UNROLL 4 +#define GGML_V1_VEC_DOT_UNROLL 2 -#ifdef GGML_USE_ACCELERATE +#ifdef GGML_V1_USE_ACCELERATE // uncomment to use vDSP for soft max computation // note: not sure if it is actually faster -//#define GGML_SOFT_MAX_ACCELERATE +//#define GGML_V1_SOFT_MAX_ACCELERATE #endif #if UINTPTR_MAX == 0xFFFFFFFF - #define GGML_MEM_ALIGN 4 + #define GGML_V1_MEM_ALIGN 4 #else - #define GGML_MEM_ALIGN 16 + #define GGML_V1_MEM_ALIGN 16 #endif #define UNUSED(x) (void)(x) #define SWAP(x, y, T) do { T SWAP = x; x = y; y = SWAP; } while (0) -#define GGML_ASSERT(x) \ +#define GGML_V1_ASSERT(x) \ do { \ if (!(x)) { \ - fprintf(stderr, "GGML_ASSERT: %s:%d: %s\n", __FILE__, __LINE__, #x); \ + fprintf(stderr, "GGML_V1_ASSERT: %s:%d: %s\n", __FILE__, __LINE__, #x); \ abort(); \ } \ } while (0) -#ifdef GGML_USE_ACCELERATE +#ifdef GGML_V1_USE_ACCELERATE #include -#elif GGML_USE_OPENBLAS +#elif GGML_V1_USE_OPENBLAS #include #endif @@ -124,7 +124,7 @@ typedef void* thread_ret_t; #define MAX(a, b) ((a) > (b) ? (a) : (b)) // floating point type used to accumulate sums -typedef double ggml_float; +typedef double ggml_v1_float; // 16-bit float // on Arm, we use __fp16 @@ -137,11 +137,11 @@ typedef double ggml_float; // #include -#define GGML_COMPUTE_FP16_TO_FP32(x) (x) -#define GGML_COMPUTE_FP32_TO_FP16(x) (x) +#define GGML_V1_COMPUTE_FP16_TO_FP32(x) (x) +#define GGML_V1_COMPUTE_FP32_TO_FP16(x) (x) -#define GGML_FP16_TO_FP32(x) (x) -#define GGML_FP32_TO_FP16(x) (x) +#define GGML_V1_FP16_TO_FP32(x) (x) +#define GGML_V1_FP32_TO_FP16(x) (x) #else @@ -159,8 +159,8 @@ typedef double ggml_float; #ifdef __F16C__ -#define GGML_COMPUTE_FP16_TO_FP32(x) _cvtsh_ss(x) -#define GGML_COMPUTE_FP32_TO_FP16(x) _cvtss_sh(x, 0) +#define GGML_V1_COMPUTE_FP16_TO_FP32(x) _cvtsh_ss(x) +#define GGML_V1_COMPUTE_FP32_TO_FP16(x) _cvtss_sh(x, 0) #else @@ -185,7 +185,7 @@ static inline uint32_t fp32_to_bits(float f) { return fp32.as_bits; } -static inline float ggml_compute_fp16_to_fp32(ggml_fp16_t h) { +static inline float ggml_v1_compute_fp16_to_fp32(ggml_v1_fp16_t h) { const uint32_t w = (uint32_t) h << 16; const uint32_t sign = w & UINT32_C(0x80000000); const uint32_t two_w = w + w; @@ -208,7 +208,7 @@ static inline float ggml_compute_fp16_to_fp32(ggml_fp16_t h) { return fp32_from_bits(result); } -static inline ggml_fp16_t ggml_compute_fp32_to_fp16(float f) { +static inline ggml_v1_fp16_t ggml_v1_compute_fp32_to_fp16(float f) { #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) || defined(__GNUC__) && !defined(__STRICT_ANSI__) const float scale_to_inf = 0x1.0p+112f; const float scale_to_zero = 0x1.0p-110f; @@ -234,8 +234,8 @@ static inline ggml_fp16_t ggml_compute_fp32_to_fp16(float f) { return (sign >> 16) | (shl1_w > UINT32_C(0xFF000000) ? UINT16_C(0x7E00) : nonsign); } -#define GGML_COMPUTE_FP16_TO_FP32(x) ggml_compute_fp16_to_fp32(x) -#define GGML_COMPUTE_FP32_TO_FP16(x) ggml_compute_fp32_to_fp16(x) +#define GGML_V1_COMPUTE_FP16_TO_FP32(x) ggml_v1_compute_fp16_to_fp32(x) +#define GGML_V1_COMPUTE_FP32_TO_FP16(x) ggml_v1_compute_fp32_to_fp16(x) #endif // __F16C__ @@ -246,37 +246,37 @@ static inline ggml_fp16_t ggml_compute_fp32_to_fp16(float f) { // // precomputed gelu table for f16 (128 KB) -static ggml_fp16_t table_gelu_f16[1 << 16]; +static ggml_v1_fp16_t table_gelu_f16[1 << 16]; // precomputed exp table for f16 (128 KB) -static ggml_fp16_t table_exp_f16[1 << 16]; +static ggml_v1_fp16_t table_exp_f16[1 << 16]; // precomputed f32 table for f16 (256 KB) static float table_f32_f16[1 << 16]; -// On ARM NEON, it's quicker to directly convert x -> x instead of calling into ggml_lookup_fp16_to_fp32, -// so we define GGML_FP16_TO_FP32 and GGML_FP32_TO_FP16 elsewhere for NEON. -#if !defined(GGML_FP16_TO_FP32) || !defined(GGML_FP32_TO_FP16) +// On ARM NEON, it's quicker to directly convert x -> x instead of calling into ggml_v1_lookup_fp16_to_fp32, +// so we define GGML_V1_FP16_TO_FP32 and GGML_V1_FP32_TO_FP16 elsewhere for NEON. +#if !defined(GGML_V1_FP16_TO_FP32) || !defined(GGML_V1_FP32_TO_FP16) -inline static float ggml_lookup_fp16_to_fp32(ggml_fp16_t f) { +inline static float ggml_v1_lookup_fp16_to_fp32(ggml_v1_fp16_t f) { uint16_t s; memcpy(&s, &f, sizeof(uint16_t)); return table_f32_f16[s]; } -#define GGML_FP16_TO_FP32(x) ggml_lookup_fp16_to_fp32(x) -#define GGML_FP32_TO_FP16(x) GGML_COMPUTE_FP32_TO_FP16(x) +#define GGML_V1_FP16_TO_FP32(x) ggml_v1_lookup_fp16_to_fp32(x) +#define GGML_V1_FP32_TO_FP16(x) GGML_V1_COMPUTE_FP32_TO_FP16(x) #endif // note: do not use these inside ggml.c // these are meant to be used via the ggml.h API -float ggml_fp16_to_fp32(ggml_fp16_t x) { - return GGML_FP16_TO_FP32(x); +float ggml_v1_fp16_to_fp32(ggml_v1_fp16_t x) { + return GGML_V1_FP16_TO_FP32(x); } -ggml_fp16_t ggml_fp32_to_fp16(float x) { - return GGML_FP32_TO_FP16(x); +ggml_v1_fp16_t ggml_v1_fp32_to_fp16(float x) { + return GGML_V1_FP32_TO_FP16(x); } // @@ -285,54 +285,54 @@ ggml_fp16_t ggml_fp32_to_fp16(float x) { #if defined(_MSC_VER) || defined(__MINGW32__) static int64_t timer_freq; -void ggml_time_init(void) { +void ggml_v1_time_init(void) { LARGE_INTEGER frequency; QueryPerformanceFrequency(&frequency); timer_freq = frequency.QuadPart; } -int64_t ggml_time_ms(void) { +int64_t ggml_v1_time_ms(void) { LARGE_INTEGER t; QueryPerformanceCounter(&t); return (t.QuadPart * 1000) / timer_freq; } -int64_t ggml_time_us(void) { +int64_t ggml_v1_time_us(void) { LARGE_INTEGER t; QueryPerformanceCounter(&t); return (t.QuadPart * 1000000) / timer_freq; } #else -void ggml_time_init(void) {} -int64_t ggml_time_ms(void) { +void ggml_v1_time_init(void) {} +int64_t ggml_v1_time_ms(void) { struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); return (int64_t)ts.tv_sec*1000 + (int64_t)ts.tv_nsec/1000000; } -int64_t ggml_time_us(void) { +int64_t ggml_v1_time_us(void) { struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); return (int64_t)ts.tv_sec*1000000 + (int64_t)ts.tv_nsec/1000; } #endif -int64_t ggml_cycles(void) { +int64_t ggml_v1_cycles(void) { return clock(); } -int64_t ggml_cycles_per_ms(void) { +int64_t ggml_v1_cycles_per_ms(void) { return CLOCKS_PER_SEC/1000; } -#ifdef GGML_PERF -#define ggml_perf_time_ms() ggml_time_ms() -#define ggml_perf_time_us() ggml_time_us() -#define ggml_perf_cycles() ggml_cycles() -#define ggml_perf_cycles_per_ms() ggml_cycles_per_ms() +#ifdef GGML_V1_PERF +#define ggml_v1_perf_time_ms() ggml_v1_time_ms() +#define ggml_v1_perf_time_us() ggml_v1_time_us() +#define ggml_v1_perf_cycles() ggml_v1_cycles() +#define ggml_v1_perf_cycles_per_ms() ggml_v1_cycles_per_ms() #else -#define ggml_perf_time_ms() 0 -#define ggml_perf_time_us() 0 -#define ggml_perf_cycles() 0 -#define ggml_perf_cycles_per_ms() 0 +#define ggml_v1_perf_time_ms() 0 +#define ggml_v1_perf_time_us() 0 +#define ggml_v1_perf_cycles() 0 +#define ggml_v1_perf_cycles_per_ms() 0 #endif // @@ -359,86 +359,86 @@ static const size_t CACHE_LINE_SIZE_F32 = CACHE_LINE_SIZE/sizeof(float); // we then implement the fundamental computation operations below using only these macros // adding support for new architectures requires to define the corresponding SIMD macros // -// GGML_F32_STEP / GGML_F16_STEP +// GGML_V1_F32_STEP / GGML_V1_F16_STEP // number of elements to process in a single step // -// GGML_F32_EPR / GGML_F16_EPR +// GGML_V1_F32_EPR / GGML_V1_F16_EPR // number of elements to fit in a single register // #if defined(__ARM_NEON) && defined(__ARM_FEATURE_FMA) -#define GGML_SIMD +#define GGML_V1_SIMD // F32 NEON -#define GGML_F32_STEP 16 -#define GGML_F32_EPR 4 +#define GGML_V1_F32_STEP 16 +#define GGML_V1_F32_EPR 4 -#define GGML_F32x4 float32x4_t -#define GGML_F32x4_ZERO vdupq_n_f32(0.0f) -#define GGML_F32x4_SET1(x) vdupq_n_f32(x) -#define GGML_F32x4_LOAD vld1q_f32 -#define GGML_F32x4_STORE vst1q_f32 -#define GGML_F32x4_FMA(a, b, c) vfmaq_f32(a, b, c) -#define GGML_F32x4_ADD vaddq_f32 -#define GGML_F32x4_MUL vmulq_f32 +#define GGML_V1_F32x4 float32x4_t +#define GGML_V1_F32x4_ZERO vdupq_n_f32(0.0f) +#define GGML_V1_F32x4_SET1(x) vdupq_n_f32(x) +#define GGML_V1_F32x4_LOAD vld1q_f32 +#define GGML_V1_F32x4_STORE vst1q_f32 +#define GGML_V1_F32x4_FMA(a, b, c) vfmaq_f32(a, b, c) +#define GGML_V1_F32x4_ADD vaddq_f32 +#define GGML_V1_F32x4_MUL vmulq_f32 #if defined(__ARM_FEATURE_QRDMX) - #define GGML_F32x4_REDUCE_ONE(x) vaddvq_f32(x) + #define GGML_V1_F32x4_REDUCE_ONE(x) vaddvq_f32(x) #else - #define GGML_F32x4_REDUCE_ONE(x) \ + #define GGML_V1_F32x4_REDUCE_ONE(x) \ (vgetq_lane_f32(x, 0) + \ vgetq_lane_f32(x, 1) + \ vgetq_lane_f32(x, 2) + \ vgetq_lane_f32(x, 3)) #endif -#define GGML_F32x4_REDUCE(res, x) \ +#define GGML_V1_F32x4_REDUCE(res, x) \ { \ - for (int i = 0; i < GGML_F32_ARR/2; ++i) { \ + for (int i = 0; i < GGML_V1_F32_ARR/2; ++i) { \ x[2*i] = vaddq_f32(x[2*i], x[2*i+1]); \ } \ - for (int i = 0; i < GGML_F32_ARR/4; ++i) { \ + for (int i = 0; i < GGML_V1_F32_ARR/4; ++i) { \ x[4*i] = vaddq_f32(x[4*i], x[4*i+2]); \ } \ - for (int i = 0; i < GGML_F32_ARR/8; ++i) { \ + for (int i = 0; i < GGML_V1_F32_ARR/8; ++i) { \ x[8*i] = vaddq_f32(x[8*i], x[8*i+4]); \ } \ - res = GGML_F32x4_REDUCE_ONE(x[0]); \ + res = GGML_V1_F32x4_REDUCE_ONE(x[0]); \ } -#define GGML_F32_VEC GGML_F32x4 -#define GGML_F32_VEC_ZERO GGML_F32x4_ZERO -#define GGML_F32_VEC_SET1 GGML_F32x4_SET1 -#define GGML_F32_VEC_LOAD GGML_F32x4_LOAD -#define GGML_F32_VEC_STORE GGML_F32x4_STORE -#define GGML_F32_VEC_FMA GGML_F32x4_FMA -#define GGML_F32_VEC_ADD GGML_F32x4_ADD -#define GGML_F32_VEC_MUL GGML_F32x4_MUL -#define GGML_F32_VEC_REDUCE GGML_F32x4_REDUCE +#define GGML_V1_F32_VEC GGML_V1_F32x4 +#define GGML_V1_F32_VEC_ZERO GGML_V1_F32x4_ZERO +#define GGML_V1_F32_VEC_SET1 GGML_V1_F32x4_SET1 +#define GGML_V1_F32_VEC_LOAD GGML_V1_F32x4_LOAD +#define GGML_V1_F32_VEC_STORE GGML_V1_F32x4_STORE +#define GGML_V1_F32_VEC_FMA GGML_V1_F32x4_FMA +#define GGML_V1_F32_VEC_ADD GGML_V1_F32x4_ADD +#define GGML_V1_F32_VEC_MUL GGML_V1_F32x4_MUL +#define GGML_V1_F32_VEC_REDUCE GGML_V1_F32x4_REDUCE // F16 NEON #if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) - #define GGML_F16_STEP 32 - #define GGML_F16_EPR 8 + #define GGML_V1_F16_STEP 32 + #define GGML_V1_F16_EPR 8 - #define GGML_F16x8 float16x8_t - #define GGML_F16x8_ZERO vdupq_n_f16(0.0f) - #define GGML_F16x8_SET1(x) vdupq_n_f16(x) - #define GGML_F16x8_LOAD vld1q_f16 - #define GGML_F16x8_STORE vst1q_f16 - #define GGML_F16x8_FMA(a, b, c) vfmaq_f16(a, b, c) - #define GGML_F16x8_ADD vaddq_f16 - #define GGML_F16x8_MUL vmulq_f16 - #define GGML_F16x8_REDUCE(res, x) \ + #define GGML_V1_F16x8 float16x8_t + #define GGML_V1_F16x8_ZERO vdupq_n_f16(0.0f) + #define GGML_V1_F16x8_SET1(x) vdupq_n_f16(x) + #define GGML_V1_F16x8_LOAD vld1q_f16 + #define GGML_V1_F16x8_STORE vst1q_f16 + #define GGML_V1_F16x8_FMA(a, b, c) vfmaq_f16(a, b, c) + #define GGML_V1_F16x8_ADD vaddq_f16 + #define GGML_V1_F16x8_MUL vmulq_f16 + #define GGML_V1_F16x8_REDUCE(res, x) \ { \ - for (int i = 0; i < GGML_F16_ARR/2; ++i) { \ + for (int i = 0; i < GGML_V1_F16_ARR/2; ++i) { \ x[2*i] = vaddq_f16(x[2*i], x[2*i+1]); \ } \ - for (int i = 0; i < GGML_F16_ARR/4; ++i) { \ + for (int i = 0; i < GGML_V1_F16_ARR/4; ++i) { \ x[4*i] = vaddq_f16(x[4*i], x[4*i+2]); \ } \ - for (int i = 0; i < GGML_F16_ARR/8; ++i) { \ + for (int i = 0; i < GGML_V1_F16_ARR/8; ++i) { \ x[8*i] = vaddq_f16(x[8*i], x[8*i+4]); \ } \ const float32x4_t t0 = vcvt_f32_f16(vget_low_f16 (x[0])); \ @@ -446,73 +446,73 @@ static const size_t CACHE_LINE_SIZE_F32 = CACHE_LINE_SIZE/sizeof(float); res = vaddvq_f32(vaddq_f32(t0, t1)); \ } - #define GGML_F16_VEC GGML_F16x8 - #define GGML_F16_VEC_ZERO GGML_F16x8_ZERO - #define GGML_F16_VEC_SET1 GGML_F16x8_SET1 - #define GGML_F16_VEC_LOAD(p, i) GGML_F16x8_LOAD(p) - #define GGML_F16_VEC_STORE(p, r, i) GGML_F16x8_STORE(p, r[i]) - #define GGML_F16_VEC_FMA GGML_F16x8_FMA - #define GGML_F16_VEC_ADD GGML_F16x8_ADD - #define GGML_F16_VEC_MUL GGML_F16x8_MUL - #define GGML_F16_VEC_REDUCE GGML_F16x8_REDUCE + #define GGML_V1_F16_VEC GGML_V1_F16x8 + #define GGML_V1_F16_VEC_ZERO GGML_V1_F16x8_ZERO + #define GGML_V1_F16_VEC_SET1 GGML_V1_F16x8_SET1 + #define GGML_V1_F16_VEC_LOAD(p, i) GGML_V1_F16x8_LOAD(p) + #define GGML_V1_F16_VEC_STORE(p, r, i) GGML_V1_F16x8_STORE(p, r[i]) + #define GGML_V1_F16_VEC_FMA GGML_V1_F16x8_FMA + #define GGML_V1_F16_VEC_ADD GGML_V1_F16x8_ADD + #define GGML_V1_F16_VEC_MUL GGML_V1_F16x8_MUL + #define GGML_V1_F16_VEC_REDUCE GGML_V1_F16x8_REDUCE #else // if FP16 vector arithmetic is not supported, we use FP32 instead // and take advantage of the vcvt_ functions to convert to/from FP16 - #define GGML_F16_STEP 16 - #define GGML_F16_EPR 4 + #define GGML_V1_F16_STEP 16 + #define GGML_V1_F16_EPR 4 - #define GGML_F32Cx4 float32x4_t - #define GGML_F32Cx4_ZERO vdupq_n_f32(0.0f) - #define GGML_F32Cx4_SET1(x) vdupq_n_f32(x) - #define GGML_F32Cx4_LOAD(x) vcvt_f32_f16(vld1_f16(x)) - #define GGML_F32Cx4_STORE(x, y) vst1_f16(x, vcvt_f16_f32(y)) - #define GGML_F32Cx4_FMA(a, b, c) vfmaq_f32(a, b, c) - #define GGML_F32Cx4_ADD vaddq_f32 - #define GGML_F32Cx4_MUL vmulq_f32 - #define GGML_F32Cx4_REDUCE GGML_F32x4_REDUCE + #define GGML_V1_F32Cx4 float32x4_t + #define GGML_V1_F32Cx4_ZERO vdupq_n_f32(0.0f) + #define GGML_V1_F32Cx4_SET1(x) vdupq_n_f32(x) + #define GGML_V1_F32Cx4_LOAD(x) vcvt_f32_f16(vld1_f16(x)) + #define GGML_V1_F32Cx4_STORE(x, y) vst1_f16(x, vcvt_f16_f32(y)) + #define GGML_V1_F32Cx4_FMA(a, b, c) vfmaq_f32(a, b, c) + #define GGML_V1_F32Cx4_ADD vaddq_f32 + #define GGML_V1_F32Cx4_MUL vmulq_f32 + #define GGML_V1_F32Cx4_REDUCE GGML_V1_F32x4_REDUCE - #define GGML_F16_VEC GGML_F32Cx4 - #define GGML_F16_VEC_ZERO GGML_F32Cx4_ZERO - #define GGML_F16_VEC_SET1 GGML_F32Cx4_SET1 - #define GGML_F16_VEC_LOAD(p, i) GGML_F32Cx4_LOAD(p) - #define GGML_F16_VEC_STORE(p, r, i) GGML_F32Cx4_STORE(p, r[i]) - #define GGML_F16_VEC_FMA GGML_F32Cx4_FMA - #define GGML_F16_VEC_ADD GGML_F32Cx4_ADD - #define GGML_F16_VEC_MUL GGML_F32Cx4_MUL - #define GGML_F16_VEC_REDUCE GGML_F32Cx4_REDUCE + #define GGML_V1_F16_VEC GGML_V1_F32Cx4 + #define GGML_V1_F16_VEC_ZERO GGML_V1_F32Cx4_ZERO + #define GGML_V1_F16_VEC_SET1 GGML_V1_F32Cx4_SET1 + #define GGML_V1_F16_VEC_LOAD(p, i) GGML_V1_F32Cx4_LOAD(p) + #define GGML_V1_F16_VEC_STORE(p, r, i) GGML_V1_F32Cx4_STORE(p, r[i]) + #define GGML_V1_F16_VEC_FMA GGML_V1_F32Cx4_FMA + #define GGML_V1_F16_VEC_ADD GGML_V1_F32Cx4_ADD + #define GGML_V1_F16_VEC_MUL GGML_V1_F32Cx4_MUL + #define GGML_V1_F16_VEC_REDUCE GGML_V1_F32Cx4_REDUCE #endif #elif defined(__AVX__) -#define GGML_SIMD +#define GGML_V1_SIMD // F32 AVX -#define GGML_F32_STEP 32 -#define GGML_F32_EPR 8 +#define GGML_V1_F32_STEP 32 +#define GGML_V1_F32_EPR 8 -#define GGML_F32x8 __m256 -#define GGML_F32x8_ZERO _mm256_setzero_ps() -#define GGML_F32x8_SET1(x) _mm256_set1_ps(x) -#define GGML_F32x8_LOAD _mm256_loadu_ps -#define GGML_F32x8_STORE _mm256_storeu_ps +#define GGML_V1_F32x8 __m256 +#define GGML_V1_F32x8_ZERO _mm256_setzero_ps() +#define GGML_V1_F32x8_SET1(x) _mm256_set1_ps(x) +#define GGML_V1_F32x8_LOAD _mm256_loadu_ps +#define GGML_V1_F32x8_STORE _mm256_storeu_ps #if defined(__FMA__) - #define GGML_F32x8_FMA(a, b, c) _mm256_fmadd_ps(b, c, a) + #define GGML_V1_F32x8_FMA(a, b, c) _mm256_fmadd_ps(b, c, a) #else - #define GGML_F32x8_FMA(a, b, c) _mm256_add_ps(_mm256_mul_ps(b, c), a) + #define GGML_V1_F32x8_FMA(a, b, c) _mm256_add_ps(_mm256_mul_ps(b, c), a) #endif -#define GGML_F32x8_ADD _mm256_add_ps -#define GGML_F32x8_MUL _mm256_mul_ps -#define GGML_F32x8_REDUCE(res, x) \ +#define GGML_V1_F32x8_ADD _mm256_add_ps +#define GGML_V1_F32x8_MUL _mm256_mul_ps +#define GGML_V1_F32x8_REDUCE(res, x) \ { \ - for (int i = 0; i < GGML_F32_ARR/2; ++i) { \ + for (int i = 0; i < GGML_V1_F32_ARR/2; ++i) { \ x[2*i] = _mm256_add_ps(x[2*i], x[2*i+1]); \ } \ - for (int i = 0; i < GGML_F32_ARR/4; ++i) { \ + for (int i = 0; i < GGML_V1_F32_ARR/4; ++i) { \ x[4*i] = _mm256_add_ps(x[4*i], x[4*i+2]); \ } \ - for (int i = 0; i < GGML_F32_ARR/8; ++i) { \ + for (int i = 0; i < GGML_V1_F32_ARR/8; ++i) { \ x[8*i] = _mm256_add_ps(x[8*i], x[8*i+4]); \ } \ const __m128 t0 = _mm_add_ps(_mm256_castps256_ps128(x[0]), \ @@ -522,70 +522,70 @@ static const size_t CACHE_LINE_SIZE_F32 = CACHE_LINE_SIZE/sizeof(float); } // TODO: is this optimal ? -#define GGML_F32_VEC GGML_F32x8 -#define GGML_F32_VEC_ZERO GGML_F32x8_ZERO -#define GGML_F32_VEC_SET1 GGML_F32x8_SET1 -#define GGML_F32_VEC_LOAD GGML_F32x8_LOAD -#define GGML_F32_VEC_STORE GGML_F32x8_STORE -#define GGML_F32_VEC_FMA GGML_F32x8_FMA -#define GGML_F32_VEC_ADD GGML_F32x8_ADD -#define GGML_F32_VEC_MUL GGML_F32x8_MUL -#define GGML_F32_VEC_REDUCE GGML_F32x8_REDUCE +#define GGML_V1_F32_VEC GGML_V1_F32x8 +#define GGML_V1_F32_VEC_ZERO GGML_V1_F32x8_ZERO +#define GGML_V1_F32_VEC_SET1 GGML_V1_F32x8_SET1 +#define GGML_V1_F32_VEC_LOAD GGML_V1_F32x8_LOAD +#define GGML_V1_F32_VEC_STORE GGML_V1_F32x8_STORE +#define GGML_V1_F32_VEC_FMA GGML_V1_F32x8_FMA +#define GGML_V1_F32_VEC_ADD GGML_V1_F32x8_ADD +#define GGML_V1_F32_VEC_MUL GGML_V1_F32x8_MUL +#define GGML_V1_F32_VEC_REDUCE GGML_V1_F32x8_REDUCE // F16 AVX -#define GGML_F16_STEP 32 -#define GGML_F16_EPR 8 +#define GGML_V1_F16_STEP 32 +#define GGML_V1_F16_EPR 8 // F16 arithmetic is not supported by AVX, so we use F32 instead // we take advantage of the _mm256_cvt intrinsics to convert F16 <-> F32 -#define GGML_F32Cx8 __m256 -#define GGML_F32Cx8_ZERO _mm256_setzero_ps() -#define GGML_F32Cx8_SET1(x) _mm256_set1_ps(x) -#define GGML_F32Cx8_LOAD(x) _mm256_cvtph_ps(_mm_loadu_si128((__m128i *)(x))) -#define GGML_F32Cx8_STORE(x, y) _mm_storeu_si128((__m128i *)(x), _mm256_cvtps_ph(y, 0)) -#define GGML_F32Cx8_FMA GGML_F32x8_FMA -#define GGML_F32Cx8_ADD _mm256_add_ps -#define GGML_F32Cx8_MUL _mm256_mul_ps -#define GGML_F32Cx8_REDUCE GGML_F32x8_REDUCE +#define GGML_V1_F32Cx8 __m256 +#define GGML_V1_F32Cx8_ZERO _mm256_setzero_ps() +#define GGML_V1_F32Cx8_SET1(x) _mm256_set1_ps(x) +#define GGML_V1_F32Cx8_LOAD(x) _mm256_cvtph_ps(_mm_loadu_si128((__m128i *)(x))) +#define GGML_V1_F32Cx8_STORE(x, y) _mm_storeu_si128((__m128i *)(x), _mm256_cvtps_ph(y, 0)) +#define GGML_V1_F32Cx8_FMA GGML_V1_F32x8_FMA +#define GGML_V1_F32Cx8_ADD _mm256_add_ps +#define GGML_V1_F32Cx8_MUL _mm256_mul_ps +#define GGML_V1_F32Cx8_REDUCE GGML_V1_F32x8_REDUCE -#define GGML_F16_VEC GGML_F32Cx8 -#define GGML_F16_VEC_ZERO GGML_F32Cx8_ZERO -#define GGML_F16_VEC_SET1 GGML_F32Cx8_SET1 -#define GGML_F16_VEC_LOAD(p, i) GGML_F32Cx8_LOAD(p) -#define GGML_F16_VEC_STORE(p, r, i) GGML_F32Cx8_STORE(p, r[i]) -#define GGML_F16_VEC_FMA GGML_F32Cx8_FMA -#define GGML_F16_VEC_ADD GGML_F32Cx8_ADD -#define GGML_F16_VEC_MUL GGML_F32Cx8_MUL -#define GGML_F16_VEC_REDUCE GGML_F32Cx8_REDUCE +#define GGML_V1_F16_VEC GGML_V1_F32Cx8 +#define GGML_V1_F16_VEC_ZERO GGML_V1_F32Cx8_ZERO +#define GGML_V1_F16_VEC_SET1 GGML_V1_F32Cx8_SET1 +#define GGML_V1_F16_VEC_LOAD(p, i) GGML_V1_F32Cx8_LOAD(p) +#define GGML_V1_F16_VEC_STORE(p, r, i) GGML_V1_F32Cx8_STORE(p, r[i]) +#define GGML_V1_F16_VEC_FMA GGML_V1_F32Cx8_FMA +#define GGML_V1_F16_VEC_ADD GGML_V1_F32Cx8_ADD +#define GGML_V1_F16_VEC_MUL GGML_V1_F32Cx8_MUL +#define GGML_V1_F16_VEC_REDUCE GGML_V1_F32Cx8_REDUCE #elif defined(__POWER9_VECTOR__) -#define GGML_SIMD +#define GGML_V1_SIMD // F32 POWER9 -#define GGML_F32_STEP 32 -#define GGML_F32_EPR 4 +#define GGML_V1_F32_STEP 32 +#define GGML_V1_F32_EPR 4 -#define GGML_F32x4 vector float -#define GGML_F32x4_ZERO 0.0f -#define GGML_F32x4_SET1 vec_splats -#define GGML_F32x4_LOAD(p) vec_xl(0, p) -#define GGML_F32x4_STORE(p, r) vec_xst(r, 0, p) -#define GGML_F32x4_FMA(a, b, c) vec_madd(b, c, a) -#define GGML_F32x4_ADD vec_add -#define GGML_F32x4_MUL vec_mul -#define GGML_F32x4_REDUCE(res, x) \ +#define GGML_V1_F32x4 vector float +#define GGML_V1_F32x4_ZERO 0.0f +#define GGML_V1_F32x4_SET1 vec_splats +#define GGML_V1_F32x4_LOAD(p) vec_xl(0, p) +#define GGML_V1_F32x4_STORE(p, r) vec_xst(r, 0, p) +#define GGML_V1_F32x4_FMA(a, b, c) vec_madd(b, c, a) +#define GGML_V1_F32x4_ADD vec_add +#define GGML_V1_F32x4_MUL vec_mul +#define GGML_V1_F32x4_REDUCE(res, x) \ { \ - for (int i = 0; i < GGML_F32_ARR/2; ++i) { \ + for (int i = 0; i < GGML_V1_F32_ARR/2; ++i) { \ x[2*i] = vec_add(x[2*i], x[2*i+1]); \ } \ - for (int i = 0; i < GGML_F32_ARR/4; ++i) { \ + for (int i = 0; i < GGML_V1_F32_ARR/4; ++i) { \ x[4*i] = vec_add(x[4*i], x[4*i+2]); \ } \ - for (int i = 0; i < GGML_F32_ARR/8; ++i) { \ + for (int i = 0; i < GGML_V1_F32_ARR/8; ++i) { \ x[8*i] = vec_add(x[8*i], x[8*i+4]); \ } \ res = vec_extract(x[0], 0) + \ @@ -594,61 +594,61 @@ static const size_t CACHE_LINE_SIZE_F32 = CACHE_LINE_SIZE/sizeof(float); vec_extract(x[0], 3); \ } -#define GGML_F32_VEC GGML_F32x4 -#define GGML_F32_VEC_ZERO GGML_F32x4_ZERO -#define GGML_F32_VEC_SET1 GGML_F32x4_SET1 -#define GGML_F32_VEC_LOAD GGML_F32x4_LOAD -#define GGML_F32_VEC_STORE GGML_F32x4_STORE -#define GGML_F32_VEC_FMA GGML_F32x4_FMA -#define GGML_F32_VEC_ADD GGML_F32x4_ADD -#define GGML_F32_VEC_MUL GGML_F32x4_MUL -#define GGML_F32_VEC_REDUCE GGML_F32x4_REDUCE +#define GGML_V1_F32_VEC GGML_V1_F32x4 +#define GGML_V1_F32_VEC_ZERO GGML_V1_F32x4_ZERO +#define GGML_V1_F32_VEC_SET1 GGML_V1_F32x4_SET1 +#define GGML_V1_F32_VEC_LOAD GGML_V1_F32x4_LOAD +#define GGML_V1_F32_VEC_STORE GGML_V1_F32x4_STORE +#define GGML_V1_F32_VEC_FMA GGML_V1_F32x4_FMA +#define GGML_V1_F32_VEC_ADD GGML_V1_F32x4_ADD +#define GGML_V1_F32_VEC_MUL GGML_V1_F32x4_MUL +#define GGML_V1_F32_VEC_REDUCE GGML_V1_F32x4_REDUCE // F16 POWER9 -#define GGML_F16_STEP GGML_F32_STEP -#define GGML_F16_EPR GGML_F32_EPR -#define GGML_F16_VEC GGML_F32x4 -#define GGML_F16_VEC_ZERO GGML_F32x4_ZERO -#define GGML_F16_VEC_SET1 GGML_F32x4_SET1 -#define GGML_F16_VEC_FMA GGML_F32x4_FMA -#define GGML_F16_VEC_REDUCE GGML_F32x4_REDUCE +#define GGML_V1_F16_STEP GGML_V1_F32_STEP +#define GGML_V1_F16_EPR GGML_V1_F32_EPR +#define GGML_V1_F16_VEC GGML_V1_F32x4 +#define GGML_V1_F16_VEC_ZERO GGML_V1_F32x4_ZERO +#define GGML_V1_F16_VEC_SET1 GGML_V1_F32x4_SET1 +#define GGML_V1_F16_VEC_FMA GGML_V1_F32x4_FMA +#define GGML_V1_F16_VEC_REDUCE GGML_V1_F32x4_REDUCE // Use vec_xl, not vec_ld, in case the load address is not aligned. -#define GGML_F16_VEC_LOAD(p, i) (i & 0x1) ? \ - vec_extract_fp32_from_shorth(vec_xl(0, p - GGML_F16_EPR)) : \ +#define GGML_V1_F16_VEC_LOAD(p, i) (i & 0x1) ? \ + vec_extract_fp32_from_shorth(vec_xl(0, p - GGML_V1_F16_EPR)) : \ vec_extract_fp32_from_shortl(vec_xl(0, p)) -#define GGML_ENDIAN_BYTE(i) ((unsigned char *)&(uint16_t){1})[i] -#define GGML_F16_VEC_STORE(p, r, i) \ +#define GGML_V1_ENDIAN_BYTE(i) ((unsigned char *)&(uint16_t){1})[i] +#define GGML_V1_F16_VEC_STORE(p, r, i) \ if (i & 0x1) \ - vec_xst(vec_pack_to_short_fp32(r[i - GGML_ENDIAN_BYTE(1)], \ - r[i - GGML_ENDIAN_BYTE(0)]), \ - 0, p - GGML_F16_EPR) + vec_xst(vec_pack_to_short_fp32(r[i - GGML_V1_ENDIAN_BYTE(1)], \ + r[i - GGML_V1_ENDIAN_BYTE(0)]), \ + 0, p - GGML_V1_F16_EPR) #elif defined(__wasm_simd128__) -#define GGML_SIMD +#define GGML_V1_SIMD // F32 WASM -#define GGML_F32_STEP 16 -#define GGML_F32_EPR 4 +#define GGML_V1_F32_STEP 16 +#define GGML_V1_F32_EPR 4 -#define GGML_F32x4 v128_t -#define GGML_F32x4_ZERO wasm_f32x4_splat(0.0f) -#define GGML_F32x4_SET1(x) wasm_f32x4_splat(x) -#define GGML_F32x4_LOAD wasm_v128_load -#define GGML_F32x4_STORE wasm_v128_store -#define GGML_F32x4_FMA(a, b, c) wasm_f32x4_add(wasm_f32x4_mul(b, c), a) -#define GGML_F32x4_ADD wasm_f32x4_add -#define GGML_F32x4_MUL wasm_f32x4_mul -#define GGML_F32x4_REDUCE(res, x) \ +#define GGML_V1_F32x4 v128_t +#define GGML_V1_F32x4_ZERO wasm_f32x4_splat(0.0f) +#define GGML_V1_F32x4_SET1(x) wasm_f32x4_splat(x) +#define GGML_V1_F32x4_LOAD wasm_v128_load +#define GGML_V1_F32x4_STORE wasm_v128_store +#define GGML_V1_F32x4_FMA(a, b, c) wasm_f32x4_add(wasm_f32x4_mul(b, c), a) +#define GGML_V1_F32x4_ADD wasm_f32x4_add +#define GGML_V1_F32x4_MUL wasm_f32x4_mul +#define GGML_V1_F32x4_REDUCE(res, x) \ { \ - for (int i = 0; i < GGML_F32_ARR/2; ++i) { \ + for (int i = 0; i < GGML_V1_F32_ARR/2; ++i) { \ x[2*i] = wasm_f32x4_add(x[2*i], x[2*i+1]); \ } \ - for (int i = 0; i < GGML_F32_ARR/4; ++i) { \ + for (int i = 0; i < GGML_V1_F32_ARR/4; ++i) { \ x[4*i] = wasm_f32x4_add(x[4*i], x[4*i+2]); \ } \ - for (int i = 0; i < GGML_F32_ARR/8; ++i) { \ + for (int i = 0; i < GGML_V1_F32_ARR/8; ++i) { \ x[8*i] = wasm_f32x4_add(x[8*i], x[8*i+4]); \ } \ res = wasm_f32x4_extract_lane(x[0], 0) + \ @@ -657,60 +657,60 @@ static const size_t CACHE_LINE_SIZE_F32 = CACHE_LINE_SIZE/sizeof(float); wasm_f32x4_extract_lane(x[0], 3); \ } -#define GGML_F32_VEC GGML_F32x4 -#define GGML_F32_VEC_ZERO GGML_F32x4_ZERO -#define GGML_F32_VEC_SET1 GGML_F32x4_SET1 -#define GGML_F32_VEC_LOAD GGML_F32x4_LOAD -#define GGML_F32_VEC_STORE GGML_F32x4_STORE -#define GGML_F32_VEC_FMA GGML_F32x4_FMA -#define GGML_F32_VEC_ADD GGML_F32x4_ADD -#define GGML_F32_VEC_MUL GGML_F32x4_MUL -#define GGML_F32_VEC_REDUCE GGML_F32x4_REDUCE +#define GGML_V1_F32_VEC GGML_V1_F32x4 +#define GGML_V1_F32_VEC_ZERO GGML_V1_F32x4_ZERO +#define GGML_V1_F32_VEC_SET1 GGML_V1_F32x4_SET1 +#define GGML_V1_F32_VEC_LOAD GGML_V1_F32x4_LOAD +#define GGML_V1_F32_VEC_STORE GGML_V1_F32x4_STORE +#define GGML_V1_F32_VEC_FMA GGML_V1_F32x4_FMA +#define GGML_V1_F32_VEC_ADD GGML_V1_F32x4_ADD +#define GGML_V1_F32_VEC_MUL GGML_V1_F32x4_MUL +#define GGML_V1_F32_VEC_REDUCE GGML_V1_F32x4_REDUCE // F16 WASM -#define GGML_F16_STEP 16 -#define GGML_F16_EPR 4 +#define GGML_V1_F16_STEP 16 +#define GGML_V1_F16_EPR 4 -inline static v128_t __wasm_f16x4_load(const ggml_fp16_t * p) { +inline static v128_t __wasm_f16x4_load(const ggml_v1_fp16_t * p) { float tmp[4]; - tmp[0] = GGML_FP16_TO_FP32(p[0]); - tmp[1] = GGML_FP16_TO_FP32(p[1]); - tmp[2] = GGML_FP16_TO_FP32(p[2]); - tmp[3] = GGML_FP16_TO_FP32(p[3]); + tmp[0] = GGML_V1_FP16_TO_FP32(p[0]); + tmp[1] = GGML_V1_FP16_TO_FP32(p[1]); + tmp[2] = GGML_V1_FP16_TO_FP32(p[2]); + tmp[3] = GGML_V1_FP16_TO_FP32(p[3]); return wasm_v128_load(tmp); } -inline static void __wasm_f16x4_store(ggml_fp16_t * p, v128_t x) { +inline static void __wasm_f16x4_store(ggml_v1_fp16_t * p, v128_t x) { float tmp[4]; wasm_v128_store(tmp, x); - p[0] = GGML_FP32_TO_FP16(tmp[0]); - p[1] = GGML_FP32_TO_FP16(tmp[1]); - p[2] = GGML_FP32_TO_FP16(tmp[2]); - p[3] = GGML_FP32_TO_FP16(tmp[3]); + p[0] = GGML_V1_FP32_TO_FP16(tmp[0]); + p[1] = GGML_V1_FP32_TO_FP16(tmp[1]); + p[2] = GGML_V1_FP32_TO_FP16(tmp[2]); + p[3] = GGML_V1_FP32_TO_FP16(tmp[3]); } -#define GGML_F16x4 v128_t -#define GGML_F16x4_ZERO wasm_f32x4_splat(0.0f) -#define GGML_F16x4_SET1(x) wasm_f32x4_splat(x) -#define GGML_F16x4_LOAD(x) __wasm_f16x4_load(x) -#define GGML_F16x4_STORE(x, y) __wasm_f16x4_store(x, y) -#define GGML_F16x4_FMA GGML_F32x4_FMA -#define GGML_F16x4_ADD wasm_f32x4_add -#define GGML_F16x4_MUL wasm_f32x4_mul -#define GGML_F16x4_REDUCE(res, x) \ +#define GGML_V1_F16x4 v128_t +#define GGML_V1_F16x4_ZERO wasm_f32x4_splat(0.0f) +#define GGML_V1_F16x4_SET1(x) wasm_f32x4_splat(x) +#define GGML_V1_F16x4_LOAD(x) __wasm_f16x4_load(x) +#define GGML_V1_F16x4_STORE(x, y) __wasm_f16x4_store(x, y) +#define GGML_V1_F16x4_FMA GGML_V1_F32x4_FMA +#define GGML_V1_F16x4_ADD wasm_f32x4_add +#define GGML_V1_F16x4_MUL wasm_f32x4_mul +#define GGML_V1_F16x4_REDUCE(res, x) \ { \ - for (int i = 0; i < GGML_F16_ARR/2; ++i) { \ + for (int i = 0; i < GGML_V1_F16_ARR/2; ++i) { \ x[2*i] = wasm_f32x4_add(x[2*i], x[2*i+1]); \ } \ - for (int i = 0; i < GGML_F16_ARR/4; ++i) { \ + for (int i = 0; i < GGML_V1_F16_ARR/4; ++i) { \ x[4*i] = wasm_f32x4_add(x[4*i], x[4*i+2]); \ } \ - for (int i = 0; i < GGML_F16_ARR/8; ++i) { \ + for (int i = 0; i < GGML_V1_F16_ARR/8; ++i) { \ x[8*i] = wasm_f32x4_add(x[8*i], x[8*i+4]); \ } \ res = wasm_f32x4_extract_lane(x[0], 0) + \ @@ -719,47 +719,47 @@ inline static void __wasm_f16x4_store(ggml_fp16_t * p, v128_t x) { wasm_f32x4_extract_lane(x[0], 3); \ } -#define GGML_F16_VEC GGML_F16x4 -#define GGML_F16_VEC_ZERO GGML_F16x4_ZERO -#define GGML_F16_VEC_SET1 GGML_F16x4_SET1 -#define GGML_F16_VEC_LOAD(p, i) GGML_F16x4_LOAD(p) -#define GGML_F16_VEC_STORE(p, r, i) GGML_F16x4_STORE(p, r[i]) -#define GGML_F16_VEC_FMA GGML_F16x4_FMA -#define GGML_F16_VEC_ADD GGML_F16x4_ADD -#define GGML_F16_VEC_MUL GGML_F16x4_MUL -#define GGML_F16_VEC_REDUCE GGML_F16x4_REDUCE +#define GGML_V1_F16_VEC GGML_V1_F16x4 +#define GGML_V1_F16_VEC_ZERO GGML_V1_F16x4_ZERO +#define GGML_V1_F16_VEC_SET1 GGML_V1_F16x4_SET1 +#define GGML_V1_F16_VEC_LOAD(p, i) GGML_V1_F16x4_LOAD(p) +#define GGML_V1_F16_VEC_STORE(p, r, i) GGML_V1_F16x4_STORE(p, r[i]) +#define GGML_V1_F16_VEC_FMA GGML_V1_F16x4_FMA +#define GGML_V1_F16_VEC_ADD GGML_V1_F16x4_ADD +#define GGML_V1_F16_VEC_MUL GGML_V1_F16x4_MUL +#define GGML_V1_F16_VEC_REDUCE GGML_V1_F16x4_REDUCE #elif defined(__SSE3__) -#define GGML_SIMD +#define GGML_V1_SIMD // F32 SSE -#define GGML_F32_STEP 32 -#define GGML_F32_EPR 4 +#define GGML_V1_F32_STEP 32 +#define GGML_V1_F32_EPR 4 -#define GGML_F32x4 __m128 -#define GGML_F32x4_ZERO _mm_setzero_ps() -#define GGML_F32x4_SET1(x) _mm_set1_ps(x) -#define GGML_F32x4_LOAD _mm_loadu_ps -#define GGML_F32x4_STORE _mm_storeu_ps +#define GGML_V1_F32x4 __m128 +#define GGML_V1_F32x4_ZERO _mm_setzero_ps() +#define GGML_V1_F32x4_SET1(x) _mm_set1_ps(x) +#define GGML_V1_F32x4_LOAD _mm_loadu_ps +#define GGML_V1_F32x4_STORE _mm_storeu_ps #if defined(__FMA__) // TODO: Does this work? - #define GGML_F32x4_FMA(a, b, c) _mm_fmadd_ps(b, c, a) + #define GGML_V1_F32x4_FMA(a, b, c) _mm_fmadd_ps(b, c, a) #else - #define GGML_F32x4_FMA(a, b, c) _mm_add_ps(_mm_mul_ps(b, c), a) + #define GGML_V1_F32x4_FMA(a, b, c) _mm_add_ps(_mm_mul_ps(b, c), a) #endif -#define GGML_F32x4_ADD _mm_add_ps -#define GGML_F32x4_MUL _mm_mul_ps -#define GGML_F32x4_REDUCE(res, x) \ +#define GGML_V1_F32x4_ADD _mm_add_ps +#define GGML_V1_F32x4_MUL _mm_mul_ps +#define GGML_V1_F32x4_REDUCE(res, x) \ { \ - for (int i = 0; i < GGML_F32_ARR/2; ++i) { \ + for (int i = 0; i < GGML_V1_F32_ARR/2; ++i) { \ x[2*i] = _mm_add_ps(x[2*i], x[2*i+1]); \ } \ - for (int i = 0; i < GGML_F32_ARR/4; ++i) { \ + for (int i = 0; i < GGML_V1_F32_ARR/4; ++i) { \ x[4*i] = _mm_add_ps(x[4*i], x[4*i+2]); \ } \ - for (int i = 0; i < GGML_F32_ARR/8; ++i) { \ + for (int i = 0; i < GGML_V1_F32_ARR/8; ++i) { \ x[8*i] = _mm_add_ps(x[8*i], x[8*i+4]); \ } \ const __m128 t0 = _mm_hadd_ps(x[0], x[0]); \ @@ -767,116 +767,116 @@ inline static void __wasm_f16x4_store(ggml_fp16_t * p, v128_t x) { } // TODO: is this optimal ? -#define GGML_F32_VEC GGML_F32x4 -#define GGML_F32_VEC_ZERO GGML_F32x4_ZERO -#define GGML_F32_VEC_SET1 GGML_F32x4_SET1 -#define GGML_F32_VEC_LOAD GGML_F32x4_LOAD -#define GGML_F32_VEC_STORE GGML_F32x4_STORE -#define GGML_F32_VEC_FMA GGML_F32x4_FMA -#define GGML_F32_VEC_ADD GGML_F32x4_ADD -#define GGML_F32_VEC_MUL GGML_F32x4_MUL -#define GGML_F32_VEC_REDUCE GGML_F32x4_REDUCE +#define GGML_V1_F32_VEC GGML_V1_F32x4 +#define GGML_V1_F32_VEC_ZERO GGML_V1_F32x4_ZERO +#define GGML_V1_F32_VEC_SET1 GGML_V1_F32x4_SET1 +#define GGML_V1_F32_VEC_LOAD GGML_V1_F32x4_LOAD +#define GGML_V1_F32_VEC_STORE GGML_V1_F32x4_STORE +#define GGML_V1_F32_VEC_FMA GGML_V1_F32x4_FMA +#define GGML_V1_F32_VEC_ADD GGML_V1_F32x4_ADD +#define GGML_V1_F32_VEC_MUL GGML_V1_F32x4_MUL +#define GGML_V1_F32_VEC_REDUCE GGML_V1_F32x4_REDUCE // F16 SSE -#define GGML_F16_STEP 32 -#define GGML_F16_EPR 4 +#define GGML_V1_F16_STEP 32 +#define GGML_V1_F16_EPR 4 -static inline __m128 __sse_f16x4_load(ggml_fp16_t *x) { +static inline __m128 __sse_f16x4_load(ggml_v1_fp16_t *x) { float tmp[4]; - tmp[0] = GGML_FP16_TO_FP32(x[0]); - tmp[1] = GGML_FP16_TO_FP32(x[1]); - tmp[2] = GGML_FP16_TO_FP32(x[2]); - tmp[3] = GGML_FP16_TO_FP32(x[3]); + tmp[0] = GGML_V1_FP16_TO_FP32(x[0]); + tmp[1] = GGML_V1_FP16_TO_FP32(x[1]); + tmp[2] = GGML_V1_FP16_TO_FP32(x[2]); + tmp[3] = GGML_V1_FP16_TO_FP32(x[3]); return _mm_loadu_ps(tmp); } -static inline void __sse_f16x4_store(ggml_fp16_t *x, __m128 y) { +static inline void __sse_f16x4_store(ggml_v1_fp16_t *x, __m128 y) { float arr[4]; _mm_storeu_ps(arr, y); - x[0] = GGML_FP32_TO_FP16(arr[0]); - x[1] = GGML_FP32_TO_FP16(arr[1]); - x[2] = GGML_FP32_TO_FP16(arr[2]); - x[3] = GGML_FP32_TO_FP16(arr[3]); + x[0] = GGML_V1_FP32_TO_FP16(arr[0]); + x[1] = GGML_V1_FP32_TO_FP16(arr[1]); + x[2] = GGML_V1_FP32_TO_FP16(arr[2]); + x[3] = GGML_V1_FP32_TO_FP16(arr[3]); } -#define GGML_F32Cx4 __m128 -#define GGML_F32Cx4_ZERO _mm_setzero_ps() -#define GGML_F32Cx4_SET1(x) _mm_set1_ps(x) -#define GGML_F32Cx4_LOAD(x) __sse_f16x4_load(x) -#define GGML_F32Cx4_STORE(x, y) __sse_f16x4_store(x, y) -#define GGML_F32Cx4_FMA GGML_F32x4_FMA -#define GGML_F32Cx4_ADD _mm_add_ps -#define GGML_F32Cx4_MUL _mm_mul_ps -#define GGML_F32Cx4_REDUCE GGML_F32x4_REDUCE +#define GGML_V1_F32Cx4 __m128 +#define GGML_V1_F32Cx4_ZERO _mm_setzero_ps() +#define GGML_V1_F32Cx4_SET1(x) _mm_set1_ps(x) +#define GGML_V1_F32Cx4_LOAD(x) __sse_f16x4_load(x) +#define GGML_V1_F32Cx4_STORE(x, y) __sse_f16x4_store(x, y) +#define GGML_V1_F32Cx4_FMA GGML_V1_F32x4_FMA +#define GGML_V1_F32Cx4_ADD _mm_add_ps +#define GGML_V1_F32Cx4_MUL _mm_mul_ps +#define GGML_V1_F32Cx4_REDUCE GGML_V1_F32x4_REDUCE -#define GGML_F16_VEC GGML_F32Cx4 -#define GGML_F16_VEC_ZERO GGML_F32Cx4_ZERO -#define GGML_F16_VEC_SET1 GGML_F32Cx4_SET1 -#define GGML_F16_VEC_LOAD(p, i) GGML_F32Cx4_LOAD(p) -#define GGML_F16_VEC_STORE(p, r, i) GGML_F32Cx4_STORE(p, r[i]) -#define GGML_F16_VEC_FMA GGML_F32Cx4_FMA -#define GGML_F16_VEC_ADD GGML_F32Cx4_ADD -#define GGML_F16_VEC_MUL GGML_F32Cx4_MUL -#define GGML_F16_VEC_REDUCE GGML_F32Cx4_REDUCE +#define GGML_V1_F16_VEC GGML_V1_F32Cx4 +#define GGML_V1_F16_VEC_ZERO GGML_V1_F32Cx4_ZERO +#define GGML_V1_F16_VEC_SET1 GGML_V1_F32Cx4_SET1 +#define GGML_V1_F16_VEC_LOAD(p, i) GGML_V1_F32Cx4_LOAD(p) +#define GGML_V1_F16_VEC_STORE(p, r, i) GGML_V1_F32Cx4_STORE(p, r[i]) +#define GGML_V1_F16_VEC_FMA GGML_V1_F32Cx4_FMA +#define GGML_V1_F16_VEC_ADD GGML_V1_F32Cx4_ADD +#define GGML_V1_F16_VEC_MUL GGML_V1_F32Cx4_MUL +#define GGML_V1_F16_VEC_REDUCE GGML_V1_F32Cx4_REDUCE #endif -// GGML_F32_ARR / GGML_F16_ARR +// GGML_V1_F32_ARR / GGML_V1_F16_ARR // number of registers to use per step -#ifdef GGML_SIMD -#define GGML_F32_ARR (GGML_F32_STEP/GGML_F32_EPR) -#define GGML_F16_ARR (GGML_F16_STEP/GGML_F16_EPR) +#ifdef GGML_V1_SIMD +#define GGML_V1_F32_ARR (GGML_V1_F32_STEP/GGML_V1_F32_EPR) +#define GGML_V1_F16_ARR (GGML_V1_F16_STEP/GGML_V1_F16_EPR) #endif // // fundamental operations // -inline static void ggml_vec_set_i8(const int n, int8_t * x, const int8_t v) { for (int i = 0; i < n; ++i) x[i] = v; } +inline static void ggml_v1_vec_set_i8(const int n, int8_t * x, const int8_t v) { for (int i = 0; i < n; ++i) x[i] = v; } -inline static void ggml_vec_set_i16(const int n, int16_t * x, const int16_t v) { for (int i = 0; i < n; ++i) x[i] = v; } +inline static void ggml_v1_vec_set_i16(const int n, int16_t * x, const int16_t v) { for (int i = 0; i < n; ++i) x[i] = v; } -inline static void ggml_vec_set_i32(const int n, int32_t * x, const int32_t v) { for (int i = 0; i < n; ++i) x[i] = v; } +inline static void ggml_v1_vec_set_i32(const int n, int32_t * x, const int32_t v) { for (int i = 0; i < n; ++i) x[i] = v; } -inline static void ggml_vec_set_f16(const int n, ggml_fp16_t * x, const int32_t v) { for (int i = 0; i < n; ++i) x[i] = v; } +inline static void ggml_v1_vec_set_f16(const int n, ggml_v1_fp16_t * x, const int32_t v) { for (int i = 0; i < n; ++i) x[i] = v; } -inline static void ggml_vec_add_f32 (const int n, float * z, const float * x, const float * y) { for (int i = 0; i < n; ++i) z[i] = x[i] + y[i]; } -inline static void ggml_vec_acc_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] += x[i]; } -inline static void ggml_vec_acc1_f32(const int n, float * y, const float v) { for (int i = 0; i < n; ++i) y[i] += v; } -inline static void ggml_vec_sub_f32 (const int n, float * z, const float * x, const float * y) { for (int i = 0; i < n; ++i) z[i] = x[i] - y[i]; } -inline static void ggml_vec_set_f32 (const int n, float * x, const float v) { for (int i = 0; i < n; ++i) x[i] = v; } -inline static void ggml_vec_cpy_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = x[i]; } -inline static void ggml_vec_neg_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = -x[i]; } -inline static void ggml_vec_mul_f32 (const int n, float * z, const float * x, const float * y) { for (int i = 0; i < n; ++i) z[i] = x[i]*y[i]; } -inline static void ggml_vec_div_f32 (const int n, float * z, const float * x, const float * y) { for (int i = 0; i < n; ++i) z[i] = x[i]/y[i]; } +inline static void ggml_v1_vec_add_f32 (const int n, float * z, const float * x, const float * y) { for (int i = 0; i < n; ++i) z[i] = x[i] + y[i]; } +inline static void ggml_v1_vec_acc_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] += x[i]; } +inline static void ggml_v1_vec_acc1_f32(const int n, float * y, const float v) { for (int i = 0; i < n; ++i) y[i] += v; } +inline static void ggml_v1_vec_sub_f32 (const int n, float * z, const float * x, const float * y) { for (int i = 0; i < n; ++i) z[i] = x[i] - y[i]; } +inline static void ggml_v1_vec_set_f32 (const int n, float * x, const float v) { for (int i = 0; i < n; ++i) x[i] = v; } +inline static void ggml_v1_vec_cpy_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = x[i]; } +inline static void ggml_v1_vec_neg_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = -x[i]; } +inline static void ggml_v1_vec_mul_f32 (const int n, float * z, const float * x, const float * y) { for (int i = 0; i < n; ++i) z[i] = x[i]*y[i]; } +inline static void ggml_v1_vec_div_f32 (const int n, float * z, const float * x, const float * y) { for (int i = 0; i < n; ++i) z[i] = x[i]/y[i]; } -inline static void ggml_vec_dot_f32(const int n, float * restrict s, const float * restrict x, const float * restrict y) { - ggml_float sumf = 0.0; +inline static void ggml_v1_vec_dot_f32(const int n, float * restrict s, const float * restrict x, const float * restrict y) { + ggml_v1_float sumf = 0.0; -#ifdef GGML_SIMD - const int np = (n & ~(GGML_F32_STEP - 1)); +#ifdef GGML_V1_SIMD + const int np = (n & ~(GGML_V1_F32_STEP - 1)); - GGML_F32_VEC sum[GGML_F32_ARR] = { GGML_F32_VEC_ZERO }; + GGML_V1_F32_VEC sum[GGML_V1_F32_ARR] = { GGML_V1_F32_VEC_ZERO }; - GGML_F32_VEC ax[GGML_F32_ARR]; - GGML_F32_VEC ay[GGML_F32_ARR]; + GGML_V1_F32_VEC ax[GGML_V1_F32_ARR]; + GGML_V1_F32_VEC ay[GGML_V1_F32_ARR]; - for (int i = 0; i < np; i += GGML_F32_STEP) { - for (int j = 0; j < GGML_F32_ARR; j++) { - ax[j] = GGML_F32_VEC_LOAD(x + i + j*GGML_F32_EPR); - ay[j] = GGML_F32_VEC_LOAD(y + i + j*GGML_F32_EPR); + for (int i = 0; i < np; i += GGML_V1_F32_STEP) { + for (int j = 0; j < GGML_V1_F32_ARR; j++) { + ax[j] = GGML_V1_F32_VEC_LOAD(x + i + j*GGML_V1_F32_EPR); + ay[j] = GGML_V1_F32_VEC_LOAD(y + i + j*GGML_V1_F32_EPR); - sum[j] = GGML_F32_VEC_FMA(sum[j], ax[j], ay[j]); + sum[j] = GGML_V1_F32_VEC_FMA(sum[j], ax[j], ay[j]); } } // reduce sum0..sum3 to sum0 - GGML_F32_VEC_REDUCE(sumf, sum); + GGML_V1_F32_VEC_REDUCE(sumf, sum); // leftovers for (int i = np; i < n; ++i) { @@ -892,113 +892,113 @@ inline static void ggml_vec_dot_f32(const int n, float * restrict s, const float *s = sumf; } -inline static void ggml_vec_dot_f16(const int n, float * restrict s, ggml_fp16_t * restrict x, ggml_fp16_t * restrict y) { - ggml_float sumf = 0.0; +inline static void ggml_v1_vec_dot_f16(const int n, float * restrict s, ggml_v1_fp16_t * restrict x, ggml_v1_fp16_t * restrict y) { + ggml_v1_float sumf = 0.0; -#if defined(GGML_SIMD) - const int np = (n & ~(GGML_F16_STEP - 1)); +#if defined(GGML_V1_SIMD) + const int np = (n & ~(GGML_V1_F16_STEP - 1)); - GGML_F16_VEC sum[GGML_F16_ARR] = { GGML_F16_VEC_ZERO }; + GGML_V1_F16_VEC sum[GGML_V1_F16_ARR] = { GGML_V1_F16_VEC_ZERO }; - GGML_F16_VEC ax[GGML_F16_ARR]; - GGML_F16_VEC ay[GGML_F16_ARR]; + GGML_V1_F16_VEC ax[GGML_V1_F16_ARR]; + GGML_V1_F16_VEC ay[GGML_V1_F16_ARR]; - for (int i = 0; i < np; i += GGML_F16_STEP) { - for (int j = 0; j < GGML_F16_ARR; j++) { - ax[j] = GGML_F16_VEC_LOAD(x + i + j*GGML_F16_EPR, j); - ay[j] = GGML_F16_VEC_LOAD(y + i + j*GGML_F16_EPR, j); + for (int i = 0; i < np; i += GGML_V1_F16_STEP) { + for (int j = 0; j < GGML_V1_F16_ARR; j++) { + ax[j] = GGML_V1_F16_VEC_LOAD(x + i + j*GGML_V1_F16_EPR, j); + ay[j] = GGML_V1_F16_VEC_LOAD(y + i + j*GGML_V1_F16_EPR, j); - sum[j] = GGML_F16_VEC_FMA(sum[j], ax[j], ay[j]); + sum[j] = GGML_V1_F16_VEC_FMA(sum[j], ax[j], ay[j]); } } // reduce sum0..sum3 to sum0 - GGML_F16_VEC_REDUCE(sumf, sum); + GGML_V1_F16_VEC_REDUCE(sumf, sum); // leftovers for (int i = np; i < n; ++i) { - sumf += GGML_FP16_TO_FP32(x[i])*GGML_FP16_TO_FP32(y[i]); + sumf += GGML_V1_FP16_TO_FP32(x[i])*GGML_V1_FP16_TO_FP32(y[i]); } #else for (int i = 0; i < n; ++i) { - sumf += GGML_FP16_TO_FP32(x[i])*GGML_FP16_TO_FP32(y[i]); + sumf += GGML_V1_FP16_TO_FP32(x[i])*GGML_V1_FP16_TO_FP32(y[i]); } #endif *s = sumf; } -// compute GGML_VEC_DOT_UNROLL dot products at once +// compute GGML_V1_VEC_DOT_UNROLL dot products at once // xs - x row stride in bytes -inline static void ggml_vec_dot_f16_unroll(const int n, const int xs, float * restrict s, void * restrict xv, ggml_fp16_t * restrict y) { - ggml_float sumf[GGML_VEC_DOT_UNROLL] = { 0.0 }; +inline static void ggml_v1_vec_dot_f16_unroll(const int n, const int xs, float * restrict s, void * restrict xv, ggml_v1_fp16_t * restrict y) { + ggml_v1_float sumf[GGML_V1_VEC_DOT_UNROLL] = { 0.0 }; - ggml_fp16_t * restrict x[GGML_VEC_DOT_UNROLL]; + ggml_v1_fp16_t * restrict x[GGML_V1_VEC_DOT_UNROLL]; - for (int i = 0; i < GGML_VEC_DOT_UNROLL; ++i) { - x[i] = (ggml_fp16_t *) ((char *) xv + i*xs); + for (int i = 0; i < GGML_V1_VEC_DOT_UNROLL; ++i) { + x[i] = (ggml_v1_fp16_t *) ((char *) xv + i*xs); } -#if defined(GGML_SIMD) - const int np = (n & ~(GGML_F16_STEP - 1)); +#if defined(GGML_V1_SIMD) + const int np = (n & ~(GGML_V1_F16_STEP - 1)); - GGML_F16_VEC sum[GGML_VEC_DOT_UNROLL][GGML_F16_ARR] = { { GGML_F16_VEC_ZERO } }; + GGML_V1_F16_VEC sum[GGML_V1_VEC_DOT_UNROLL][GGML_V1_F16_ARR] = { { GGML_V1_F16_VEC_ZERO } }; - GGML_F16_VEC ax[GGML_F16_ARR]; - GGML_F16_VEC ay[GGML_F16_ARR]; + GGML_V1_F16_VEC ax[GGML_V1_F16_ARR]; + GGML_V1_F16_VEC ay[GGML_V1_F16_ARR]; - for (int i = 0; i < np; i += GGML_F16_STEP) { - for (int j = 0; j < GGML_F16_ARR; j++) { - ay[j] = GGML_F16_VEC_LOAD(y + i + j*GGML_F16_EPR, j); + for (int i = 0; i < np; i += GGML_V1_F16_STEP) { + for (int j = 0; j < GGML_V1_F16_ARR; j++) { + ay[j] = GGML_V1_F16_VEC_LOAD(y + i + j*GGML_V1_F16_EPR, j); - for (int k = 0; k < GGML_VEC_DOT_UNROLL; ++k) { - ax[j] = GGML_F16_VEC_LOAD(x[k] + i + j*GGML_F16_EPR, j); + for (int k = 0; k < GGML_V1_VEC_DOT_UNROLL; ++k) { + ax[j] = GGML_V1_F16_VEC_LOAD(x[k] + i + j*GGML_V1_F16_EPR, j); - sum[k][j] = GGML_F16_VEC_FMA(sum[k][j], ax[j], ay[j]); + sum[k][j] = GGML_V1_F16_VEC_FMA(sum[k][j], ax[j], ay[j]); } } } // reduce sum0..sum3 to sum0 - for (int k = 0; k < GGML_VEC_DOT_UNROLL; ++k) { - GGML_F16_VEC_REDUCE(sumf[k], sum[k]); + for (int k = 0; k < GGML_V1_VEC_DOT_UNROLL; ++k) { + GGML_V1_F16_VEC_REDUCE(sumf[k], sum[k]); } // leftovers for (int i = np; i < n; ++i) { - for (int j = 0; j < GGML_VEC_DOT_UNROLL; ++j) { - sumf[j] += GGML_FP16_TO_FP32(x[j][i])*GGML_FP16_TO_FP32(y[i]); + for (int j = 0; j < GGML_V1_VEC_DOT_UNROLL; ++j) { + sumf[j] += GGML_V1_FP16_TO_FP32(x[j][i])*GGML_V1_FP16_TO_FP32(y[i]); } } #else for (int i = 0; i < n; ++i) { - for (int j = 0; j < GGML_VEC_DOT_UNROLL; ++j) { - sumf[j] += GGML_FP16_TO_FP32(x[j][i])*GGML_FP16_TO_FP32(y[i]); + for (int j = 0; j < GGML_V1_VEC_DOT_UNROLL; ++j) { + sumf[j] += GGML_V1_FP16_TO_FP32(x[j][i])*GGML_V1_FP16_TO_FP32(y[i]); } } #endif - for (int i = 0; i < GGML_VEC_DOT_UNROLL; ++i) { + for (int i = 0; i < GGML_V1_VEC_DOT_UNROLL; ++i) { s[i] = sumf[i]; } } -inline static void ggml_vec_mad_f32(const int n, float * restrict y, const float * restrict x, const float v) { -#if defined(GGML_SIMD) - const int np = (n & ~(GGML_F32_STEP - 1)); +inline static void ggml_v1_vec_mad_f32(const int n, float * restrict y, const float * restrict x, const float v) { +#if defined(GGML_V1_SIMD) + const int np = (n & ~(GGML_V1_F32_STEP - 1)); - GGML_F32_VEC vx = GGML_F32_VEC_SET1(v); + GGML_V1_F32_VEC vx = GGML_V1_F32_VEC_SET1(v); - GGML_F32_VEC ax[GGML_F32_ARR]; - GGML_F32_VEC ay[GGML_F32_ARR]; + GGML_V1_F32_VEC ax[GGML_V1_F32_ARR]; + GGML_V1_F32_VEC ay[GGML_V1_F32_ARR]; - for (int i = 0; i < np; i += GGML_F32_STEP) { - for (int j = 0; j < GGML_F32_ARR; j++) { - ax[j] = GGML_F32_VEC_LOAD(x + i + j*GGML_F32_EPR); - ay[j] = GGML_F32_VEC_LOAD(y + i + j*GGML_F32_EPR); - ay[j] = GGML_F32_VEC_FMA(ay[j], ax[j], vx); + for (int i = 0; i < np; i += GGML_V1_F32_STEP) { + for (int j = 0; j < GGML_V1_F32_ARR; j++) { + ax[j] = GGML_V1_F32_VEC_LOAD(x + i + j*GGML_V1_F32_EPR); + ay[j] = GGML_V1_F32_VEC_LOAD(y + i + j*GGML_V1_F32_EPR); + ay[j] = GGML_V1_F32_VEC_FMA(ay[j], ax[j], vx); - GGML_F32_VEC_STORE(y + i + j*GGML_F32_EPR, ay[j]); + GGML_V1_F32_VEC_STORE(y + i + j*GGML_V1_F32_EPR, ay[j]); } } @@ -1014,52 +1014,52 @@ inline static void ggml_vec_mad_f32(const int n, float * restrict y, const float #endif } -inline static void ggml_vec_mad_f16(const int n, ggml_fp16_t * restrict y, ggml_fp16_t * restrict x, const float v) { -#if defined(GGML_SIMD) - const int np = (n & ~(GGML_F16_STEP - 1)); +inline static void ggml_v1_vec_mad_f16(const int n, ggml_v1_fp16_t * restrict y, ggml_v1_fp16_t * restrict x, const float v) { +#if defined(GGML_V1_SIMD) + const int np = (n & ~(GGML_V1_F16_STEP - 1)); - GGML_F16_VEC vx = GGML_F16_VEC_SET1(v); + GGML_V1_F16_VEC vx = GGML_V1_F16_VEC_SET1(v); - GGML_F16_VEC ax[GGML_F16_ARR]; - GGML_F16_VEC ay[GGML_F16_ARR]; + GGML_V1_F16_VEC ax[GGML_V1_F16_ARR]; + GGML_V1_F16_VEC ay[GGML_V1_F16_ARR]; - for (int i = 0; i < np; i += GGML_F16_STEP) { - for (int j = 0; j < GGML_F16_ARR; j++) { - ax[j] = GGML_F16_VEC_LOAD(x + i + j*GGML_F16_EPR, j); - ay[j] = GGML_F16_VEC_LOAD(y + i + j*GGML_F16_EPR, j); - ay[j] = GGML_F16_VEC_FMA(ay[j], ax[j], vx); + for (int i = 0; i < np; i += GGML_V1_F16_STEP) { + for (int j = 0; j < GGML_V1_F16_ARR; j++) { + ax[j] = GGML_V1_F16_VEC_LOAD(x + i + j*GGML_V1_F16_EPR, j); + ay[j] = GGML_V1_F16_VEC_LOAD(y + i + j*GGML_V1_F16_EPR, j); + ay[j] = GGML_V1_F16_VEC_FMA(ay[j], ax[j], vx); - GGML_F16_VEC_STORE(y + i + j*GGML_F16_EPR, ay, j); + GGML_V1_F16_VEC_STORE(y + i + j*GGML_V1_F16_EPR, ay, j); } } // leftovers for (int i = np; i < n; ++i) { - GGML_ASSERT(false); - y[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(y[i]) + GGML_FP16_TO_FP32(x[i])*v); + GGML_V1_ASSERT(false); + y[i] = GGML_V1_FP32_TO_FP16(GGML_V1_FP16_TO_FP32(y[i]) + GGML_V1_FP16_TO_FP32(x[i])*v); } #else for (int i = 0; i < n; ++i) { - y[i] = GGML_FP32_TO_FP16(GGML_FP16_TO_FP32(y[i]) + GGML_FP16_TO_FP32(x[i])*v); + y[i] = GGML_V1_FP32_TO_FP16(GGML_V1_FP16_TO_FP32(y[i]) + GGML_V1_FP16_TO_FP32(x[i])*v); } #endif } -//inline static void ggml_vec_scale_f32(const int n, float * y, const float v) { for (int i = 0; i < n; ++i) y[i] *= v; } -inline static void ggml_vec_scale_f32(const int n, float * y, const float v) { -#if defined(GGML_SIMD) - const int np = (n & ~(GGML_F32_STEP - 1)); +//inline static void ggml_v1_vec_scale_f32(const int n, float * y, const float v) { for (int i = 0; i < n; ++i) y[i] *= v; } +inline static void ggml_v1_vec_scale_f32(const int n, float * y, const float v) { +#if defined(GGML_V1_SIMD) + const int np = (n & ~(GGML_V1_F32_STEP - 1)); - GGML_F32_VEC vx = GGML_F32_VEC_SET1(v); + GGML_V1_F32_VEC vx = GGML_V1_F32_VEC_SET1(v); - GGML_F32_VEC ay[GGML_F32_ARR]; + GGML_V1_F32_VEC ay[GGML_V1_F32_ARR]; - for (int i = 0; i < np; i += GGML_F32_STEP) { - for (int j = 0; j < GGML_F32_ARR; j++) { - ay[j] = GGML_F32_VEC_LOAD(y + i + j*GGML_F32_EPR); - ay[j] = GGML_F32_VEC_MUL(ay[j], vx); + for (int i = 0; i < np; i += GGML_V1_F32_STEP) { + for (int j = 0; j < GGML_V1_F32_ARR; j++) { + ay[j] = GGML_V1_F32_VEC_LOAD(y + i + j*GGML_V1_F32_EPR); + ay[j] = GGML_V1_F32_VEC_MUL(ay[j], vx); - GGML_F32_VEC_STORE(y + i + j*GGML_F32_EPR, ay[j]); + GGML_V1_F32_VEC_STORE(y + i + j*GGML_V1_F32_EPR, ay[j]); } } @@ -1075,48 +1075,48 @@ inline static void ggml_vec_scale_f32(const int n, float * y, const float v) { #endif } -inline static void ggml_vec_norm_f32 (const int n, float * s, const float * x) { ggml_vec_dot_f32(n, s, x, x); *s = sqrt(*s); } -inline static void ggml_vec_sqr_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = x[i]*x[i]; } -inline static void ggml_vec_sqrt_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = sqrt(x[i]); } -inline static void ggml_vec_abs_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = fabsf(x[i]); } -inline static void ggml_vec_sgn_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = (x[i] > 0.f) ? 1.f : ((x[i] < 0.f) ? -1.f : 0.f); } -inline static void ggml_vec_step_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = (x[i] > 0.f) ? 1.f : 0.f; } -inline static void ggml_vec_relu_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = (x[i] > 0.f) ? x[i] : 0.f; } +inline static void ggml_v1_vec_norm_f32 (const int n, float * s, const float * x) { ggml_v1_vec_dot_f32(n, s, x, x); *s = sqrt(*s); } +inline static void ggml_v1_vec_sqr_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = x[i]*x[i]; } +inline static void ggml_v1_vec_sqrt_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = sqrt(x[i]); } +inline static void ggml_v1_vec_abs_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = fabsf(x[i]); } +inline static void ggml_v1_vec_sgn_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = (x[i] > 0.f) ? 1.f : ((x[i] < 0.f) ? -1.f : 0.f); } +inline static void ggml_v1_vec_step_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = (x[i] > 0.f) ? 1.f : 0.f; } +inline static void ggml_v1_vec_relu_f32 (const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) y[i] = (x[i] > 0.f) ? x[i] : 0.f; } -static const ggml_float GELU_COEF_A = 0.044715; -static const ggml_float SQRT_2_OVER_PI = 0.79788456080286535587989211986876; +static const ggml_v1_float GELU_COEF_A = 0.044715; +static const ggml_v1_float SQRT_2_OVER_PI = 0.79788456080286535587989211986876; -inline static float ggml_gelu_f32(float x) { +inline static float ggml_v1_gelu_f32(float x) { return 0.5*x*(1.0 + tanh(SQRT_2_OVER_PI*x*(1.0 + GELU_COEF_A*x*x))); } -inline static void ggml_vec_gelu_f16(const int n, ggml_fp16_t * y, const ggml_fp16_t * x) { +inline static void ggml_v1_vec_gelu_f16(const int n, ggml_v1_fp16_t * y, const ggml_v1_fp16_t * x) { const uint16_t * i16 = (const uint16_t *) x; for (int i = 0; i < n; ++i) { y[i] = table_gelu_f16[i16[i]]; } } -#ifdef GGML_GELU_FP16 -inline static void ggml_vec_gelu_f32(const int n, float * y, const float * x) { +#ifdef GGML_V1_GELU_FP16 +inline static void ggml_v1_vec_gelu_f32(const int n, float * y, const float * x) { uint16_t t; for (int i = 0; i < n; ++i) { - ggml_fp16_t fp16 = GGML_FP32_TO_FP16(x[i]); + ggml_v1_fp16_t fp16 = GGML_V1_FP32_TO_FP16(x[i]); memcpy(&t, &fp16, sizeof(uint16_t)); - y[i] = GGML_FP16_TO_FP32(table_gelu_f16[t]); + y[i] = GGML_V1_FP16_TO_FP32(table_gelu_f16[t]); } } #else -inline static void ggml_vec_gelu_f32(const int n, float * y, const float * x) { +inline static void ggml_v1_vec_gelu_f32(const int n, float * y, const float * x) { for (int i = 0; i < n; ++i) { - y[i] = ggml_gelu_f32(x[i]); + y[i] = ggml_v1_gelu_f32(x[i]); } } #endif -inline static void ggml_vec_sum_f32(const int n, float * s, const float * x) { -#ifndef GGML_USE_ACCELERATE - ggml_float sum = 0.0; +inline static void ggml_v1_vec_sum_f32(const int n, float * s, const float * x) { +#ifndef GGML_V1_USE_ACCELERATE + ggml_v1_float sum = 0.0; for (int i = 0; i < n; ++i) { sum += x[i]; } @@ -1126,9 +1126,9 @@ inline static void ggml_vec_sum_f32(const int n, float * s, const float * x) { #endif } -inline static void ggml_vec_max_f32(const int n, float * s, const float * x) { -#ifndef GGML_USE_ACCELERATE - ggml_float max = -INFINITY; +inline static void ggml_v1_vec_max_f32(const int n, float * s, const float * x) { +#ifndef GGML_V1_USE_ACCELERATE + ggml_v1_float max = -INFINITY; for (int i = 0; i < n; ++i) { max = MAX(max, x[i]); } @@ -1138,45 +1138,45 @@ inline static void ggml_vec_max_f32(const int n, float * s, const float * x) { #endif } -inline static void ggml_vec_norm_inv_f32(const int n, float * s, const float * x) { ggml_vec_norm_f32(n, s, x); *s = 1./(*s); } +inline static void ggml_v1_vec_norm_inv_f32(const int n, float * s, const float * x) { ggml_v1_vec_norm_f32(n, s, x); *s = 1./(*s); } // // logging // -#if (GGML_DEBUG >= 1) -#define GGML_PRINT_DEBUG(...) printf(__VA_ARGS__) +#if (GGML_V1_DEBUG >= 1) +#define GGML_V1_PRINT_DEBUG(...) printf(__VA_ARGS__) #else -#define GGML_PRINT_DEBUG(...) +#define GGML_V1_PRINT_DEBUG(...) #endif -#if (GGML_DEBUG >= 5) -#define GGML_PRINT_DEBUG_5(...) printf(__VA_ARGS__) +#if (GGML_V1_DEBUG >= 5) +#define GGML_V1_PRINT_DEBUG_5(...) printf(__VA_ARGS__) #else -#define GGML_PRINT_DEBUG_5(...) +#define GGML_V1_PRINT_DEBUG_5(...) #endif -#if (GGML_DEBUG >= 10) -#define GGML_PRINT_DEBUG_10(...) printf(__VA_ARGS__) +#if (GGML_V1_DEBUG >= 10) +#define GGML_V1_PRINT_DEBUG_10(...) printf(__VA_ARGS__) #else -#define GGML_PRINT_DEBUG_10(...) +#define GGML_V1_PRINT_DEBUG_10(...) #endif -#define GGML_PRINT(...) printf(__VA_ARGS__) +#define GGML_V1_PRINT(...) printf(__VA_ARGS__) // // data types // -static const size_t GGML_TYPE_SIZE[GGML_TYPE_COUNT] = { +static const size_t GGML_V1_TYPE_SIZE[GGML_V1_TYPE_COUNT] = { sizeof(int8_t ), sizeof(int16_t), sizeof(int32_t), - sizeof(ggml_fp16_t), + sizeof(ggml_v1_fp16_t), sizeof(float ), }; -static const char * GGML_OP_LABEL[GGML_OP_COUNT] = { +static const char * GGML_V1_OP_LABEL[GGML_V1_OP_COUNT] = { "NONE", "DUP", @@ -1216,7 +1216,7 @@ static const char * GGML_OP_LABEL[GGML_OP_COUNT] = { "FLASH_FF", }; -static const char * GGML_OP_SYMBOL[GGML_OP_COUNT] = { +static const char * GGML_V1_OP_SYMBOL[GGML_V1_OP_COUNT] = { "none", "x", @@ -1260,56 +1260,56 @@ static const char * GGML_OP_SYMBOL[GGML_OP_COUNT] = { // ggml object // -struct ggml_object { +struct ggml_v1_object { size_t offs; size_t size; - struct ggml_object * next; + struct ggml_v1_object * next; char padding[8]; }; -static const size_t GGML_OBJECT_SIZE = sizeof(struct ggml_object); +static const size_t GGML_V1_OBJECT_SIZE = sizeof(struct ggml_v1_object); -static_assert(sizeof(struct ggml_object)%GGML_MEM_ALIGN == 0, "ggml_object size must be a multiple of GGML_MEM_ALIGN"); -static_assert(sizeof(struct ggml_tensor)%GGML_MEM_ALIGN == 0, "ggml_tensor size must be a multiple of GGML_MEM_ALIGN"); +static_assert(sizeof(struct ggml_v1_object)%GGML_V1_MEM_ALIGN == 0, "ggml_v1_object size must be a multiple of GGML_V1_MEM_ALIGN"); +static_assert(sizeof(struct ggml_v1_tensor)%GGML_V1_MEM_ALIGN == 0, "ggml_v1_tensor size must be a multiple of GGML_V1_MEM_ALIGN"); // // ggml context // -struct ggml_context { +struct ggml_v1_context { size_t mem_size; void * mem_buffer; bool mem_buffer_owned; int n_objects; - struct ggml_object * objects_begin; - struct ggml_object * objects_end; + struct ggml_v1_object * objects_begin; + struct ggml_v1_object * objects_end; - struct ggml_scratch scratch; - struct ggml_scratch scratch_save; + struct ggml_v1_scratch scratch; + struct ggml_v1_scratch scratch_save; }; -struct ggml_context_container { +struct ggml_v1_context_container { bool used; - struct ggml_context context; + struct ggml_v1_context context; }; // // compute types // -enum ggml_task_type { - GGML_TASK_INIT = 0, - GGML_TASK_COMPUTE, - GGML_TASK_FINALIZE, +enum ggml_v1_task_type { + GGML_V1_TASK_INIT = 0, + GGML_V1_TASK_COMPUTE, + GGML_V1_TASK_FINALIZE, }; -struct ggml_compute_params { - enum ggml_task_type type; +struct ggml_v1_compute_params { + enum ggml_v1_task_type type; int ith, nth; @@ -1322,16 +1322,16 @@ struct ggml_compute_params { // ggml state // -struct ggml_state { - struct ggml_context_container contexts[GGML_MAX_CONTEXTS]; +struct ggml_v1_state { + struct ggml_v1_context_container contexts[GGML_V1_MAX_CONTEXTS]; }; // global state -static struct ggml_state g_state; +static struct ggml_v1_state g_state; static atomic_int g_state_barrier = 0; // barrier via spin lock -inline static void ggml_critical_section_start(void) { +inline static void ggml_v1_critical_section_start(void) { int processing = atomic_fetch_add(&g_state_barrier, 1); while (processing > 0) { @@ -1344,76 +1344,76 @@ inline static void ggml_critical_section_start(void) { // TODO: make this somehow automatically executed // some sort of "sentry" mechanism -inline static void ggml_critical_section_end(void) { +inline static void ggml_v1_critical_section_end(void) { atomic_fetch_sub(&g_state_barrier, 1); } //////////////////////////////////////////////////////////////////////////////// -void ggml_print_object(const struct ggml_object * obj) { - GGML_PRINT(" - ggml_object: offset = %zu, size = %zu, next = %p\n", +void ggml_v1_print_object(const struct ggml_v1_object * obj) { + GGML_V1_PRINT(" - ggml_v1_object: offset = %zu, size = %zu, next = %p\n", obj->offs, obj->size, (const void *) obj->next); } -void ggml_print_objects(const struct ggml_context * ctx) { - struct ggml_object * obj = ctx->objects_begin; +void ggml_v1_print_objects(const struct ggml_v1_context * ctx) { + struct ggml_v1_object * obj = ctx->objects_begin; - GGML_PRINT("%s: objects in context %p:\n", __func__, (const void *) ctx); + GGML_V1_PRINT("%s: objects in context %p:\n", __func__, (const void *) ctx); while (obj != NULL) { - ggml_print_object(obj); + ggml_v1_print_object(obj); obj = obj->next; } - GGML_PRINT("%s: --- end ---\n", __func__); + GGML_V1_PRINT("%s: --- end ---\n", __func__); } -int ggml_nelements(const struct ggml_tensor * tensor) { - static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); +int ggml_v1_nelements(const struct ggml_v1_tensor * tensor) { + static_assert(GGML_V1_MAX_DIMS == 4, "GGML_V1_MAX_DIMS is not 4 - update this function"); return tensor->ne[0]*tensor->ne[1]*tensor->ne[2]*tensor->ne[3]; } -int ggml_nrows(const struct ggml_tensor * tensor) { - static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); +int ggml_v1_nrows(const struct ggml_v1_tensor * tensor) { + static_assert(GGML_V1_MAX_DIMS == 4, "GGML_V1_MAX_DIMS is not 4 - update this function"); return tensor->ne[1]*tensor->ne[2]*tensor->ne[3]; } -size_t ggml_nbytes(const struct ggml_tensor * tensor) { - static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); +size_t ggml_v1_nbytes(const struct ggml_v1_tensor * tensor) { + static_assert(GGML_V1_MAX_DIMS == 4, "GGML_V1_MAX_DIMS is not 4 - update this function"); - return ggml_nelements(tensor)*GGML_TYPE_SIZE[tensor->type]; + return ggml_v1_nelements(tensor)*GGML_V1_TYPE_SIZE[tensor->type]; } -size_t ggml_type_size(enum ggml_type type) { - return GGML_TYPE_SIZE[type]; +size_t ggml_v1_type_size(enum ggml_v1_type type) { + return GGML_V1_TYPE_SIZE[type]; } -size_t ggml_element_size(const struct ggml_tensor * tensor) { - return GGML_TYPE_SIZE[tensor->type]; +size_t ggml_v1_element_size(const struct ggml_v1_tensor * tensor) { + return GGML_V1_TYPE_SIZE[tensor->type]; } -static inline bool ggml_is_scalar(const struct ggml_tensor * tensor) { - static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); +static inline bool ggml_v1_is_scalar(const struct ggml_v1_tensor * tensor) { + static_assert(GGML_V1_MAX_DIMS == 4, "GGML_V1_MAX_DIMS is not 4 - update this function"); return tensor->ne[0] == 1 && tensor->ne[1] == 1 && tensor->ne[2] == 1 && tensor->ne[3] == 1; } -static inline bool ggml_is_vector(const struct ggml_tensor * tensor) { - static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); +static inline bool ggml_v1_is_vector(const struct ggml_v1_tensor * tensor) { + static_assert(GGML_V1_MAX_DIMS == 4, "GGML_V1_MAX_DIMS is not 4 - update this function"); return tensor->ne[1] == 1 && tensor->ne[2] == 1 && tensor->ne[3] == 1; } -static inline bool ggml_is_matrix(const struct ggml_tensor * tensor) { - static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); +static inline bool ggml_v1_is_matrix(const struct ggml_v1_tensor * tensor) { + static_assert(GGML_V1_MAX_DIMS == 4, "GGML_V1_MAX_DIMS is not 4 - update this function"); return tensor->ne[2] == 1 && tensor->ne[3] == 1; } -static inline bool ggml_can_mul_mat(const struct ggml_tensor * t0, const struct ggml_tensor * t1) { - static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); +static inline bool ggml_v1_can_mul_mat(const struct ggml_v1_tensor * t0, const struct ggml_v1_tensor * t1) { + static_assert(GGML_V1_MAX_DIMS == 4, "GGML_V1_MAX_DIMS is not 4 - update this function"); return (t0->ne[0] == t1->ne[0]) && @@ -1421,27 +1421,27 @@ static inline bool ggml_can_mul_mat(const struct ggml_tensor * t0, const struct (t0->ne[3] == t1->ne[3]); } -static inline bool ggml_is_contiguous(const struct ggml_tensor * tensor) { - static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); +static inline bool ggml_v1_is_contiguous(const struct ggml_v1_tensor * tensor) { + static_assert(GGML_V1_MAX_DIMS == 4, "GGML_V1_MAX_DIMS is not 4 - update this function"); return - tensor->nb[0] == GGML_TYPE_SIZE[tensor->type] && + tensor->nb[0] == GGML_V1_TYPE_SIZE[tensor->type] && tensor->nb[1] == tensor->nb[0]*tensor->ne[0] && tensor->nb[2] == tensor->nb[1]*tensor->ne[1] && tensor->nb[3] == tensor->nb[2]*tensor->ne[2]; } -static inline bool ggml_is_padded_1d(const struct ggml_tensor * tensor) { - static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); +static inline bool ggml_v1_is_padded_1d(const struct ggml_v1_tensor * tensor) { + static_assert(GGML_V1_MAX_DIMS == 4, "GGML_V1_MAX_DIMS is not 4 - update this function"); return - tensor->nb[0] == GGML_TYPE_SIZE[tensor->type] && + tensor->nb[0] == GGML_V1_TYPE_SIZE[tensor->type] && tensor->nb[2] == tensor->nb[1]*tensor->ne[1] && tensor->nb[3] == tensor->nb[2]*tensor->ne[2]; } -static inline bool ggml_are_same_shape(const struct ggml_tensor * t0, const struct ggml_tensor * t1) { - static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); +static inline bool ggml_v1_are_same_shape(const struct ggml_v1_tensor * t0, const struct ggml_v1_tensor * t1) { + static_assert(GGML_V1_MAX_DIMS == 4, "GGML_V1_MAX_DIMS is not 4 - update this function"); return (t0->ne[0] == t1->ne[0] ) && @@ -1451,8 +1451,8 @@ static inline bool ggml_are_same_shape(const struct ggml_tensor * t0, const stru } // check if t1 can be represented as a repeatition of t0 -static inline bool ggml_can_repeat(const struct ggml_tensor * t0, const struct ggml_tensor * t1) { - static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); +static inline bool ggml_v1_can_repeat(const struct ggml_v1_tensor * t0, const struct ggml_v1_tensor * t1) { + static_assert(GGML_V1_MAX_DIMS == 4, "GGML_V1_MAX_DIMS is not 4 - update this function"); return (t1->ne[0]%t0->ne[0] == 0) && @@ -1461,96 +1461,96 @@ static inline bool ggml_can_repeat(const struct ggml_tensor * t0, const struct g (t1->ne[3]%t0->ne[3] == 0); } -static inline int ggml_up32(int n) { +static inline int ggml_v1_up32(int n) { return (n + 31) & ~31; } -static inline int ggml_up64(int n) { +static inline int ggml_v1_up64(int n) { return (n + 63) & ~63; } -static inline int ggml_up(int n, int m) { +static inline int ggml_v1_up(int n, int m) { // assert m is a power of 2 - GGML_ASSERT((m & (m - 1)) == 0); + GGML_V1_ASSERT((m & (m - 1)) == 0); return (n + m - 1) & ~(m - 1); } -// assert that pointer is aligned to GGML_MEM_ALIGN -#define ggml_assert_aligned(ptr) \ - assert(((uintptr_t) (ptr))%GGML_MEM_ALIGN == 0) +// assert that pointer is aligned to GGML_V1_MEM_ALIGN +#define ggml_v1_assert_aligned(ptr) \ + assert(((uintptr_t) (ptr))%GGML_V1_MEM_ALIGN == 0) //////////////////////////////////////////////////////////////////////////////// -struct ggml_context * ggml_init(struct ggml_init_params params) { +struct ggml_v1_context * ggml_v1_init(struct ggml_v1_init_params params) { // make this function thread safe - ggml_critical_section_start(); + ggml_v1_critical_section_start(); static bool is_first_call = true; if (is_first_call) { // initialize time system (required on Windows) - ggml_time_init(); + ggml_v1_time_init(); // initialize GELU, EXP and F32 tables { - const uint64_t t_start = ggml_time_us(); UNUSED(t_start); + const uint64_t t_start = ggml_v1_time_us(); UNUSED(t_start); - ggml_fp16_t ii; + ggml_v1_fp16_t ii; for (int i = 0; i < (1 << 16); ++i) { uint16_t ui = i; memcpy(&ii, &ui, sizeof(ii)); - const float f = table_f32_f16[i] = GGML_COMPUTE_FP16_TO_FP32(ii); - table_gelu_f16[i] = GGML_FP32_TO_FP16(ggml_gelu_f32(f)); - table_exp_f16[i] = GGML_FP32_TO_FP16(exp(f)); + const float f = table_f32_f16[i] = GGML_V1_COMPUTE_FP16_TO_FP32(ii); + table_gelu_f16[i] = GGML_V1_FP32_TO_FP16(ggml_v1_gelu_f32(f)); + table_exp_f16[i] = GGML_V1_FP32_TO_FP16(exp(f)); } - const uint64_t t_end = ggml_time_us(); UNUSED(t_end); + const uint64_t t_end = ggml_v1_time_us(); UNUSED(t_end); - GGML_PRINT_DEBUG("%s: GELU and EXP tables initialized in %f ms\n", __func__, (t_end - t_start)/1000.0f); + GGML_V1_PRINT_DEBUG("%s: GELU and EXP tables initialized in %f ms\n", __func__, (t_end - t_start)/1000.0f); } // initialize g_state { - const uint64_t t_start = ggml_time_us(); UNUSED(t_start); + const uint64_t t_start = ggml_v1_time_us(); UNUSED(t_start); - g_state = (struct ggml_state) { + g_state = (struct ggml_v1_state) { /*.contexts =*/ { { 0 } }, }; - for (int i = 0; i < GGML_MAX_CONTEXTS; ++i) { + for (int i = 0; i < GGML_V1_MAX_CONTEXTS; ++i) { g_state.contexts[i].used = false; } - const uint64_t t_end = ggml_time_us(); UNUSED(t_end); + const uint64_t t_end = ggml_v1_time_us(); UNUSED(t_end); - GGML_PRINT_DEBUG("%s: g_state initialized in %f ms\n", __func__, (t_end - t_start)/1000.0f); + GGML_V1_PRINT_DEBUG("%s: g_state initialized in %f ms\n", __func__, (t_end - t_start)/1000.0f); } is_first_call = false; } // find non-used context in g_state - struct ggml_context * ctx = NULL; + struct ggml_v1_context * ctx = NULL; - for (int i = 0; i < GGML_MAX_CONTEXTS; i++) { + for (int i = 0; i < GGML_V1_MAX_CONTEXTS; i++) { if (!g_state.contexts[i].used) { g_state.contexts[i].used = true; ctx = &g_state.contexts[i].context; - GGML_PRINT_DEBUG("%s: found unused context %d\n", __func__, i); + GGML_V1_PRINT_DEBUG("%s: found unused context %d\n", __func__, i); break; } } if (ctx == NULL) { - GGML_PRINT_DEBUG("%s: no unused context found\n", __func__); + GGML_V1_PRINT_DEBUG("%s: no unused context found\n", __func__); - ggml_critical_section_end(); + ggml_v1_critical_section_end(); return NULL; } - *ctx = (struct ggml_context) { + *ctx = (struct ggml_v1_context) { /*.mem_size =*/ params.mem_size, /*.mem_buffer =*/ params.mem_buffer ? params.mem_buffer : malloc(params.mem_size), /*.mem_buffer_owned =*/ params.mem_buffer ? false : true, @@ -1561,26 +1561,26 @@ struct ggml_context * ggml_init(struct ggml_init_params params) { /*.scratch_save =*/ { 0, 0, NULL, }, }; - ggml_assert_aligned(ctx->mem_buffer); + ggml_v1_assert_aligned(ctx->mem_buffer); - GGML_PRINT_DEBUG("%s: context initialized\n", __func__); + GGML_V1_PRINT_DEBUG("%s: context initialized\n", __func__); - ggml_critical_section_end(); + ggml_v1_critical_section_end(); return ctx; } -void ggml_free(struct ggml_context * ctx) { +void ggml_v1_free(struct ggml_v1_context * ctx) { // make this function thread safe - ggml_critical_section_start(); + ggml_v1_critical_section_start(); bool found = false; - for (int i = 0; i < GGML_MAX_CONTEXTS; i++) { + for (int i = 0; i < GGML_V1_MAX_CONTEXTS; i++) { if (&g_state.contexts[i].context == ctx) { g_state.contexts[i].used = false; - GGML_PRINT_DEBUG("%s: context %d with %d objects has been freed. memory used = %zu\n", + GGML_V1_PRINT_DEBUG("%s: context %d with %d objects has been freed. memory used = %zu\n", __func__, i, ctx->n_objects, ctx->objects_end->offs + ctx->objects_end->size); if (ctx->mem_buffer_owned) { @@ -1593,17 +1593,17 @@ void ggml_free(struct ggml_context * ctx) { } if (!found) { - GGML_PRINT_DEBUG("%s: context not found\n", __func__); + GGML_V1_PRINT_DEBUG("%s: context not found\n", __func__); } - ggml_critical_section_end(); + ggml_v1_critical_section_end(); } -size_t ggml_used_mem(const struct ggml_context * ctx) { +size_t ggml_v1_used_mem(const struct ggml_v1_context * ctx) { return ctx->objects_end->offs + ctx->objects_end->size; } -size_t ggml_set_scratch(struct ggml_context * ctx, struct ggml_scratch scratch) { +size_t ggml_v1_set_scratch(struct ggml_v1_context * ctx, struct ggml_v1_scratch scratch) { const size_t result = ctx->scratch.data ? ctx->scratch.offs : 0; ctx->scratch = scratch; @@ -1613,14 +1613,14 @@ size_t ggml_set_scratch(struct ggml_context * ctx, struct ggml_scratch scratch) //////////////////////////////////////////////////////////////////////////////// -struct ggml_tensor * ggml_new_tensor_impl( - struct ggml_context * ctx, - enum ggml_type type, +struct ggml_v1_tensor * ggml_v1_new_tensor_impl( + struct ggml_v1_context * ctx, + enum ggml_v1_type type, int n_dims, const int* ne, void* data) { // always insert objects at the end of the context's memory pool - struct ggml_object * obj_cur = ctx->objects_end; + struct ggml_v1_object * obj_cur = ctx->objects_end; const size_t cur_offs = obj_cur == NULL ? 0 : obj_cur->offs; const size_t cur_size = obj_cur == NULL ? 0 : obj_cur->size; @@ -1629,51 +1629,51 @@ struct ggml_tensor * ggml_new_tensor_impl( size_t size_needed = 0; if (data == NULL) { - size_needed += GGML_TYPE_SIZE[type]; + size_needed += GGML_V1_TYPE_SIZE[type]; for (int i = 0; i < n_dims; i++) { size_needed *= ne[i]; } - // align to GGML_MEM_ALIGN - size_needed = ((size_needed + GGML_MEM_ALIGN - 1)/GGML_MEM_ALIGN)*GGML_MEM_ALIGN; + // align to GGML_V1_MEM_ALIGN + size_needed = ((size_needed + GGML_V1_MEM_ALIGN - 1)/GGML_V1_MEM_ALIGN)*GGML_V1_MEM_ALIGN; } char * const mem_buffer = ctx->mem_buffer; - struct ggml_object * const obj_new = (struct ggml_object *)(mem_buffer + cur_end); + struct ggml_v1_object * const obj_new = (struct ggml_v1_object *)(mem_buffer + cur_end); if (ctx->scratch.data == NULL || data != NULL) { - size_needed += sizeof(struct ggml_tensor); + size_needed += sizeof(struct ggml_v1_tensor); - if (cur_end + size_needed + GGML_OBJECT_SIZE > ctx->mem_size) { - GGML_PRINT("%s: not enough space in the context's memory pool (needed %zu, available %zu)\n", - __func__, cur_end + size_needed + GGML_OBJECT_SIZE, ctx->mem_size); + if (cur_end + size_needed + GGML_V1_OBJECT_SIZE > ctx->mem_size) { + GGML_V1_PRINT("%s: not enough space in the context's memory pool (needed %zu, available %zu)\n", + __func__, cur_end + size_needed + GGML_V1_OBJECT_SIZE, ctx->mem_size); assert(false); return NULL; } - *obj_new = (struct ggml_object) { - .offs = cur_end + GGML_OBJECT_SIZE, + *obj_new = (struct ggml_v1_object) { + .offs = cur_end + GGML_V1_OBJECT_SIZE, .size = size_needed, .next = NULL, }; } else { if (ctx->scratch.offs + size_needed > ctx->scratch.size) { - GGML_PRINT("%s: not enough space in the scratch memory\n", __func__); + GGML_V1_PRINT("%s: not enough space in the scratch memory\n", __func__); assert(false); return NULL; } - if (cur_end + sizeof(struct ggml_tensor) + GGML_OBJECT_SIZE > ctx->mem_size) { - GGML_PRINT("%s: not enough space in the context's memory pool (needed %zu, available %zu)\n", - __func__, cur_end + sizeof(struct ggml_tensor) + GGML_OBJECT_SIZE, ctx->mem_size); + if (cur_end + sizeof(struct ggml_v1_tensor) + GGML_V1_OBJECT_SIZE > ctx->mem_size) { + GGML_V1_PRINT("%s: not enough space in the context's memory pool (needed %zu, available %zu)\n", + __func__, cur_end + sizeof(struct ggml_v1_tensor) + GGML_V1_OBJECT_SIZE, ctx->mem_size); assert(false); return NULL; } data = (char * const) ctx->scratch.data + ctx->scratch.offs; - *obj_new = (struct ggml_object) { - .offs = cur_end + GGML_OBJECT_SIZE, - .size = sizeof(struct ggml_tensor), + *obj_new = (struct ggml_v1_object) { + .offs = cur_end + GGML_V1_OBJECT_SIZE, + .size = sizeof(struct ggml_v1_tensor), .next = NULL, }; @@ -1693,16 +1693,16 @@ struct ggml_tensor * ggml_new_tensor_impl( //printf("%s: inserted new object at %zu, size = %zu\n", __func__, cur_end, obj_new->size); - struct ggml_tensor * const result = (struct ggml_tensor *)(mem_buffer + obj_new->offs); + struct ggml_v1_tensor * const result = (struct ggml_v1_tensor *)(mem_buffer + obj_new->offs); - ggml_assert_aligned(result); + ggml_v1_assert_aligned(result); - *result = (struct ggml_tensor) { + *result = (struct ggml_v1_tensor) { /*.type =*/ type, /*.n_dims =*/ n_dims, /*.ne =*/ { 1, 1, 1, 1 }, /*.nb =*/ { 0, 0, 0, 0 }, - /*.op =*/ GGML_OP_NONE, + /*.op =*/ GGML_V1_OP_NONE, /*.is_param =*/ false, /*.grad =*/ NULL, /*.src0 =*/ NULL, @@ -1716,14 +1716,14 @@ struct ggml_tensor * ggml_new_tensor_impl( /*.pad =*/ { 0 }, }; - ggml_assert_aligned(result->data); + ggml_v1_assert_aligned(result->data); for (int i = 0; i < n_dims; i++) { result->ne[i] = ne[i]; } - result->nb[0] = GGML_TYPE_SIZE[type]; - for (int i = 1; i < GGML_MAX_DIMS; i++) { + result->nb[0] = GGML_V1_TYPE_SIZE[type]; + for (int i = 1; i < GGML_V1_MAX_DIMS; i++) { result->nb[i] = result->nb[i - 1]*result->ne[i - 1]; } @@ -1732,130 +1732,130 @@ struct ggml_tensor * ggml_new_tensor_impl( return result; } -struct ggml_tensor * ggml_new_tensor( - struct ggml_context * ctx, - enum ggml_type type, +struct ggml_v1_tensor * ggml_v1_new_tensor( + struct ggml_v1_context * ctx, + enum ggml_v1_type type, int n_dims, const int * ne) { - return ggml_new_tensor_impl(ctx, type, n_dims, ne, NULL); + return ggml_v1_new_tensor_impl(ctx, type, n_dims, ne, NULL); } -struct ggml_tensor * ggml_new_tensor_1d( - struct ggml_context * ctx, - enum ggml_type type, +struct ggml_v1_tensor * ggml_v1_new_tensor_1d( + struct ggml_v1_context * ctx, + enum ggml_v1_type type, int ne0) { - return ggml_new_tensor(ctx, type, 1, &ne0); + return ggml_v1_new_tensor(ctx, type, 1, &ne0); } -struct ggml_tensor * ggml_new_tensor_2d( - struct ggml_context * ctx, - enum ggml_type type, +struct ggml_v1_tensor * ggml_v1_new_tensor_2d( + struct ggml_v1_context * ctx, + enum ggml_v1_type type, int ne0, int ne1) { const int ne[2] = { ne0, ne1 }; - return ggml_new_tensor(ctx, type, 2, ne); + return ggml_v1_new_tensor(ctx, type, 2, ne); } -struct ggml_tensor * ggml_new_tensor_3d( - struct ggml_context * ctx, - enum ggml_type type, +struct ggml_v1_tensor * ggml_v1_new_tensor_3d( + struct ggml_v1_context * ctx, + enum ggml_v1_type type, int ne0, int ne1, int ne2) { const int ne[3] = { ne0, ne1, ne2 }; - return ggml_new_tensor(ctx, type, 3, ne); + return ggml_v1_new_tensor(ctx, type, 3, ne); } -struct ggml_tensor * ggml_new_tensor_4d( - struct ggml_context * ctx, - enum ggml_type type, +struct ggml_v1_tensor * ggml_v1_new_tensor_4d( + struct ggml_v1_context * ctx, + enum ggml_v1_type type, int ne0, int ne1, int ne2, int ne3) { const int ne[4] = { ne0, ne1, ne2, ne3 }; - return ggml_new_tensor(ctx, type, 4, ne); + return ggml_v1_new_tensor(ctx, type, 4, ne); } -struct ggml_tensor * ggml_new_i32(struct ggml_context * ctx, int32_t value) { +struct ggml_v1_tensor * ggml_v1_new_i32(struct ggml_v1_context * ctx, int32_t value) { ctx->scratch_save = ctx->scratch; ctx->scratch.data = NULL; - struct ggml_tensor * result = ggml_new_tensor_1d(ctx, GGML_TYPE_I32, 1); + struct ggml_v1_tensor * result = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_I32, 1); ctx->scratch = ctx->scratch_save; - ggml_set_i32(result, value); + ggml_v1_set_i32(result, value); return result; } -struct ggml_tensor * ggml_new_f32(struct ggml_context * ctx, float value) { +struct ggml_v1_tensor * ggml_v1_new_f32(struct ggml_v1_context * ctx, float value) { ctx->scratch_save = ctx->scratch; ctx->scratch.data = NULL; - struct ggml_tensor * result = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, 1); + struct ggml_v1_tensor * result = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, 1); ctx->scratch = ctx->scratch_save; - ggml_set_f32(result, value); + ggml_v1_set_f32(result, value); return result; } -struct ggml_tensor * ggml_dup_tensor(struct ggml_context * ctx, const struct ggml_tensor * src) { - return ggml_new_tensor_impl(ctx, src->type, src->n_dims, src->ne, NULL); +struct ggml_v1_tensor * ggml_v1_dup_tensor(struct ggml_v1_context * ctx, const struct ggml_v1_tensor * src) { + return ggml_v1_new_tensor_impl(ctx, src->type, src->n_dims, src->ne, NULL); } -struct ggml_tensor * ggml_set_zero(struct ggml_tensor * tensor) { - memset(tensor->data, 0, ggml_nbytes(tensor)); +struct ggml_v1_tensor * ggml_v1_set_zero(struct ggml_v1_tensor * tensor) { + memset(tensor->data, 0, ggml_v1_nbytes(tensor)); return tensor; } -struct ggml_tensor * ggml_set_i32 (struct ggml_tensor * tensor, int32_t value) { - const int n = ggml_nrows(tensor); +struct ggml_v1_tensor * ggml_v1_set_i32 (struct ggml_v1_tensor * tensor, int32_t value) { + const int n = ggml_v1_nrows(tensor); const int nc = tensor->ne[0]; const size_t n1 = tensor->nb[1]; char * const data = tensor->data; switch (tensor->type) { - case GGML_TYPE_I8: + case GGML_V1_TYPE_I8: { assert(tensor->nb[0] == sizeof(int8_t)); for (int i = 0; i < n; i++) { - ggml_vec_set_i8(nc, (int8_t *)(data + i*n1), value); + ggml_v1_vec_set_i8(nc, (int8_t *)(data + i*n1), value); } } break; - case GGML_TYPE_I16: + case GGML_V1_TYPE_I16: { assert(tensor->nb[0] == sizeof(int16_t)); for (int i = 0; i < n; i++) { - ggml_vec_set_i16(nc, (int16_t *)(data + i*n1), value); + ggml_v1_vec_set_i16(nc, (int16_t *)(data + i*n1), value); } } break; - case GGML_TYPE_I32: + case GGML_V1_TYPE_I32: { assert(tensor->nb[0] == sizeof(int32_t)); for (int i = 0; i < n; i++) { - ggml_vec_set_i32(nc, (int32_t *)(data + i*n1), value); + ggml_v1_vec_set_i32(nc, (int32_t *)(data + i*n1), value); } } break; - case GGML_TYPE_F16: + case GGML_V1_TYPE_F16: { - assert(tensor->nb[0] == sizeof(ggml_fp16_t)); + assert(tensor->nb[0] == sizeof(ggml_v1_fp16_t)); for (int i = 0; i < n; i++) { - ggml_vec_set_f16(nc, (ggml_fp16_t *)(data + i*n1), value); + ggml_v1_vec_set_f16(nc, (ggml_v1_fp16_t *)(data + i*n1), value); } } break; - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { assert(tensor->nb[0] == sizeof(float)); for (int i = 0; i < n; i++) { - ggml_vec_set_f32(nc, (float *)(data + i*n1), value); + ggml_v1_vec_set_f32(nc, (float *)(data + i*n1), value); } } break; - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_COUNT: { assert(false); } break; @@ -1864,50 +1864,50 @@ struct ggml_tensor * ggml_set_i32 (struct ggml_tensor * tensor, int32_t value) { return tensor; } -struct ggml_tensor * ggml_set_f32(struct ggml_tensor * tensor, float value) { - const int n = ggml_nrows(tensor); +struct ggml_v1_tensor * ggml_v1_set_f32(struct ggml_v1_tensor * tensor, float value) { + const int n = ggml_v1_nrows(tensor); const int nc = tensor->ne[0]; const size_t n1 = tensor->nb[1]; char * const data = tensor->data; switch (tensor->type) { - case GGML_TYPE_I8: + case GGML_V1_TYPE_I8: { assert(tensor->nb[0] == sizeof(int8_t)); for (int i = 0; i < n; i++) { - ggml_vec_set_i8(nc, (int8_t *)(data + i*n1), value); + ggml_v1_vec_set_i8(nc, (int8_t *)(data + i*n1), value); } } break; - case GGML_TYPE_I16: + case GGML_V1_TYPE_I16: { assert(tensor->nb[0] == sizeof(int16_t)); for (int i = 0; i < n; i++) { - ggml_vec_set_i16(nc, (int16_t *)(data + i*n1), value); + ggml_v1_vec_set_i16(nc, (int16_t *)(data + i*n1), value); } } break; - case GGML_TYPE_I32: + case GGML_V1_TYPE_I32: { assert(tensor->nb[0] == sizeof(int32_t)); for (int i = 0; i < n; i++) { - ggml_vec_set_i32(nc, (int32_t *)(data + i*n1), value); + ggml_v1_vec_set_i32(nc, (int32_t *)(data + i*n1), value); } } break; - case GGML_TYPE_F16: + case GGML_V1_TYPE_F16: { - assert(tensor->nb[0] == sizeof(ggml_fp16_t)); + assert(tensor->nb[0] == sizeof(ggml_v1_fp16_t)); for (int i = 0; i < n; i++) { - ggml_vec_set_f16(nc, (ggml_fp16_t *)(data + i*n1), value); + ggml_v1_vec_set_f16(nc, (ggml_v1_fp16_t *)(data + i*n1), value); } } break; - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { assert(tensor->nb[0] == sizeof(float)); for (int i = 0; i < n; i++) { - ggml_vec_set_f32(nc, (float *)(data + i*n1), value); + ggml_v1_vec_set_f32(nc, (float *)(data + i*n1), value); } } break; - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_COUNT: { assert(false); } break; @@ -1916,168 +1916,168 @@ struct ggml_tensor * ggml_set_f32(struct ggml_tensor * tensor, float value) { return tensor; } -int32_t ggml_get_i32_1d(const struct ggml_tensor * tensor, int i) { +int32_t ggml_v1_get_i32_1d(const struct ggml_v1_tensor * tensor, int i) { switch (tensor->type) { - case GGML_TYPE_I8: + case GGML_V1_TYPE_I8: { - GGML_ASSERT(tensor->nb[0] == sizeof(int8_t)); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(int8_t)); return ((int8_t *)(tensor->data))[i]; } break; - case GGML_TYPE_I16: + case GGML_V1_TYPE_I16: { - GGML_ASSERT(tensor->nb[0] == sizeof(int16_t)); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(int16_t)); return ((int16_t *)(tensor->data))[i]; } break; - case GGML_TYPE_I32: + case GGML_V1_TYPE_I32: { - GGML_ASSERT(tensor->nb[0] == sizeof(int32_t)); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(int32_t)); return ((int32_t *)(tensor->data))[i]; } break; - case GGML_TYPE_F16: + case GGML_V1_TYPE_F16: { - GGML_ASSERT(tensor->nb[0] == sizeof(ggml_fp16_t)); - return GGML_FP16_TO_FP32(((ggml_fp16_t *)(tensor->data))[i]); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(ggml_v1_fp16_t)); + return GGML_V1_FP16_TO_FP32(((ggml_v1_fp16_t *)(tensor->data))[i]); } break; - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - GGML_ASSERT(tensor->nb[0] == sizeof(float)); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(float)); return ((float *)(tensor->data))[i]; } break; - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_COUNT: { - GGML_ASSERT(false); + GGML_V1_ASSERT(false); } break; } return 0.0f; } -void ggml_set_i32_1d(const struct ggml_tensor * tensor, int i, int32_t value) { +void ggml_v1_set_i32_1d(const struct ggml_v1_tensor * tensor, int i, int32_t value) { switch (tensor->type) { - case GGML_TYPE_I8: + case GGML_V1_TYPE_I8: { - GGML_ASSERT(tensor->nb[0] == sizeof(int8_t)); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(int8_t)); ((int8_t *)(tensor->data))[i] = value; } break; - case GGML_TYPE_I16: + case GGML_V1_TYPE_I16: { - GGML_ASSERT(tensor->nb[0] == sizeof(int16_t)); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(int16_t)); ((int16_t *)(tensor->data))[i] = value; } break; - case GGML_TYPE_I32: + case GGML_V1_TYPE_I32: { - GGML_ASSERT(tensor->nb[0] == sizeof(int32_t)); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(int32_t)); ((int32_t *)(tensor->data))[i] = value; } break; - case GGML_TYPE_F16: + case GGML_V1_TYPE_F16: { - GGML_ASSERT(tensor->nb[0] == sizeof(ggml_fp16_t)); - ((ggml_fp16_t *)(tensor->data))[i] = GGML_FP32_TO_FP16(value); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(ggml_v1_fp16_t)); + ((ggml_v1_fp16_t *)(tensor->data))[i] = GGML_V1_FP32_TO_FP16(value); } break; - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - GGML_ASSERT(tensor->nb[0] == sizeof(float)); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(float)); ((float *)(tensor->data))[i] = value; } break; - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_COUNT: { - GGML_ASSERT(false); + GGML_V1_ASSERT(false); } break; } } -float ggml_get_f32_1d(const struct ggml_tensor * tensor, int i) { +float ggml_v1_get_f32_1d(const struct ggml_v1_tensor * tensor, int i) { switch (tensor->type) { - case GGML_TYPE_I8: + case GGML_V1_TYPE_I8: { - GGML_ASSERT(tensor->nb[0] == sizeof(int8_t)); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(int8_t)); return ((int8_t *)(tensor->data))[i]; } break; - case GGML_TYPE_I16: + case GGML_V1_TYPE_I16: { - GGML_ASSERT(tensor->nb[0] == sizeof(int16_t)); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(int16_t)); return ((int16_t *)(tensor->data))[i]; } break; - case GGML_TYPE_I32: + case GGML_V1_TYPE_I32: { - GGML_ASSERT(tensor->nb[0] == sizeof(int32_t)); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(int32_t)); return ((int32_t *)(tensor->data))[i]; } break; - case GGML_TYPE_F16: + case GGML_V1_TYPE_F16: { - GGML_ASSERT(tensor->nb[0] == sizeof(ggml_fp16_t)); - return GGML_FP16_TO_FP32(((ggml_fp16_t *)(tensor->data))[i]); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(ggml_v1_fp16_t)); + return GGML_V1_FP16_TO_FP32(((ggml_v1_fp16_t *)(tensor->data))[i]); } break; - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - GGML_ASSERT(tensor->nb[0] == sizeof(float)); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(float)); return ((float *)(tensor->data))[i]; } break; - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_COUNT: { - GGML_ASSERT(false); + GGML_V1_ASSERT(false); } break; } return 0.0f; } -void ggml_set_f32_1d(const struct ggml_tensor * tensor, int i, float value) { +void ggml_v1_set_f32_1d(const struct ggml_v1_tensor * tensor, int i, float value) { switch (tensor->type) { - case GGML_TYPE_I8: + case GGML_V1_TYPE_I8: { - GGML_ASSERT(tensor->nb[0] == sizeof(int8_t)); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(int8_t)); ((int8_t *)(tensor->data))[i] = value; } break; - case GGML_TYPE_I16: + case GGML_V1_TYPE_I16: { - GGML_ASSERT(tensor->nb[0] == sizeof(int16_t)); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(int16_t)); ((int16_t *)(tensor->data))[i] = value; } break; - case GGML_TYPE_I32: + case GGML_V1_TYPE_I32: { - GGML_ASSERT(tensor->nb[0] == sizeof(int32_t)); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(int32_t)); ((int32_t *)(tensor->data))[i] = value; } break; - case GGML_TYPE_F16: + case GGML_V1_TYPE_F16: { - GGML_ASSERT(tensor->nb[0] == sizeof(ggml_fp16_t)); - ((ggml_fp16_t *)(tensor->data))[i] = GGML_FP32_TO_FP16(value); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(ggml_v1_fp16_t)); + ((ggml_v1_fp16_t *)(tensor->data))[i] = GGML_V1_FP32_TO_FP16(value); } break; - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - GGML_ASSERT(tensor->nb[0] == sizeof(float)); + GGML_V1_ASSERT(tensor->nb[0] == sizeof(float)); ((float *)(tensor->data))[i] = value; } break; - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_COUNT: { - GGML_ASSERT(false); + GGML_V1_ASSERT(false); } break; } } -void * ggml_get_data(const struct ggml_tensor * tensor) { +void * ggml_v1_get_data(const struct ggml_v1_tensor * tensor) { return tensor->data; } -float * ggml_get_data_f32(const struct ggml_tensor * tensor) { - assert(tensor->type == GGML_TYPE_F32); +float * ggml_v1_get_data_f32(const struct ggml_v1_tensor * tensor) { + assert(tensor->type == GGML_V1_TYPE_F32); return (float *)(tensor->data); } -struct ggml_tensor * ggml_view_tensor( - struct ggml_context * ctx, - const struct ggml_tensor * src) { - return ggml_new_tensor_impl(ctx, src->type, src->n_dims, src->ne, src->data); +struct ggml_v1_tensor * ggml_v1_view_tensor( + struct ggml_v1_context * ctx, + const struct ggml_v1_tensor * src) { + return ggml_v1_new_tensor_impl(ctx, src->type, src->n_dims, src->ne, src->data); } //////////////////////////////////////////////////////////////////////////////// -// ggml_dup +// ggml_v1_dup -struct ggml_tensor * ggml_dup_impl( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_dup_impl( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, bool inplace) { bool is_node = false; @@ -2085,36 +2085,36 @@ struct ggml_tensor * ggml_dup_impl( is_node = true; } - struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); - result->op = GGML_OP_DUP; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_DUP; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; return result; } -struct ggml_tensor * ggml_dup( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_dup_impl(ctx, a, false); +struct ggml_v1_tensor * ggml_v1_dup( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_dup_impl(ctx, a, false); } -struct ggml_tensor * ggml_dup_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_dup_impl(ctx, a, true); +struct ggml_v1_tensor * ggml_v1_dup_inplace( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_dup_impl(ctx, a, true); } -// ggml_add +// ggml_v1_add -struct ggml_tensor * ggml_add_impl( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b, +struct ggml_v1_tensor * ggml_v1_add_impl( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b, bool inplace) { - assert(ggml_are_same_shape(a, b)); + assert(ggml_v1_are_same_shape(a, b)); bool is_node = false; @@ -2122,38 +2122,38 @@ struct ggml_tensor * ggml_add_impl( is_node = true; } - struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); - result->op = GGML_OP_ADD; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_ADD; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = b; return result; } -struct ggml_tensor * ggml_add( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - return ggml_add_impl(ctx, a, b, false); +struct ggml_v1_tensor * ggml_v1_add( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + return ggml_v1_add_impl(ctx, a, b, false); } -struct ggml_tensor * ggml_add_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - return ggml_add_impl(ctx, a, b, true); +struct ggml_v1_tensor * ggml_v1_add_inplace( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + return ggml_v1_add_impl(ctx, a, b, true); } -// ggml_sub +// ggml_v1_sub -struct ggml_tensor * ggml_sub_impl( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b, +struct ggml_v1_tensor * ggml_v1_sub_impl( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b, bool inplace) { - assert(ggml_are_same_shape(a, b)); + assert(ggml_v1_are_same_shape(a, b)); bool is_node = false; @@ -2161,38 +2161,38 @@ struct ggml_tensor * ggml_sub_impl( is_node = true; } - struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); - result->op = GGML_OP_SUB; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_SUB; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = b; return result; } -struct ggml_tensor * ggml_sub( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - return ggml_sub_impl(ctx, a, b, false); +struct ggml_v1_tensor * ggml_v1_sub( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + return ggml_v1_sub_impl(ctx, a, b, false); } -struct ggml_tensor * ggml_sub_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - return ggml_sub_impl(ctx, a, b, true); +struct ggml_v1_tensor * ggml_v1_sub_inplace( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + return ggml_v1_sub_impl(ctx, a, b, true); } -// ggml_mul +// ggml_v1_mul -struct ggml_tensor * ggml_mul_impl( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b, +struct ggml_v1_tensor * ggml_v1_mul_impl( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b, bool inplace) { - assert(ggml_are_same_shape(a, b)); + assert(ggml_v1_are_same_shape(a, b)); bool is_node = false; @@ -2204,38 +2204,38 @@ struct ggml_tensor * ggml_mul_impl( assert(is_node == false); } - struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); - result->op = GGML_OP_MUL; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_MUL; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = b; return result; } -struct ggml_tensor * ggml_mul( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - return ggml_mul_impl(ctx, a, b, false); +struct ggml_v1_tensor * ggml_v1_mul( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + return ggml_v1_mul_impl(ctx, a, b, false); } -struct ggml_tensor * ggml_mul_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - return ggml_mul_impl(ctx, a, b, true); +struct ggml_v1_tensor * ggml_v1_mul_inplace( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + return ggml_v1_mul_impl(ctx, a, b, true); } -// ggml_div +// ggml_v1_div -struct ggml_tensor * ggml_div_impl( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b, +struct ggml_v1_tensor * ggml_v1_div_impl( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b, bool inplace) { - assert(ggml_are_same_shape(a, b)); + assert(ggml_v1_are_same_shape(a, b)); bool is_node = false; @@ -2247,35 +2247,35 @@ struct ggml_tensor * ggml_div_impl( assert(is_node == false); } - struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); - result->op = GGML_OP_DIV; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_DIV; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = b; return result; } -struct ggml_tensor * ggml_div( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - return ggml_div_impl(ctx, a, b, false); +struct ggml_v1_tensor * ggml_v1_div( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + return ggml_v1_div_impl(ctx, a, b, false); } -struct ggml_tensor * ggml_div_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - return ggml_div_impl(ctx, a, b, true); +struct ggml_v1_tensor * ggml_v1_div_inplace( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + return ggml_v1_div_impl(ctx, a, b, true); } -// ggml_sqr +// ggml_v1_sqr -struct ggml_tensor * ggml_sqr_impl( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_sqr_impl( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, bool inplace) { bool is_node = false; @@ -2283,33 +2283,33 @@ struct ggml_tensor * ggml_sqr_impl( is_node = true; } - struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); - result->op = GGML_OP_SQR; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_SQR; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; return result; } -struct ggml_tensor * ggml_sqr( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_sqr_impl(ctx, a, false); +struct ggml_v1_tensor * ggml_v1_sqr( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_sqr_impl(ctx, a, false); } -struct ggml_tensor * ggml_sqr_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_sqr_impl(ctx, a, true); +struct ggml_v1_tensor * ggml_v1_sqr_inplace( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_sqr_impl(ctx, a, true); } -// ggml_sqrt +// ggml_v1_sqrt -struct ggml_tensor * ggml_sqrt_impl( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_sqrt_impl( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, bool inplace) { bool is_node = false; @@ -2317,54 +2317,54 @@ struct ggml_tensor * ggml_sqrt_impl( is_node = true; } - struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); - result->op = GGML_OP_SQRT; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_SQRT; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; return result; } -struct ggml_tensor * ggml_sqrt( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_sqrt_impl(ctx, a, false); +struct ggml_v1_tensor * ggml_v1_sqrt( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_sqrt_impl(ctx, a, false); } -struct ggml_tensor * ggml_sqrt_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_sqrt_impl(ctx, a, true); +struct ggml_v1_tensor * ggml_v1_sqrt_inplace( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_sqrt_impl(ctx, a, true); } -// ggml_sum +// ggml_v1_sum -struct ggml_tensor * ggml_sum( - struct ggml_context * ctx, - struct ggml_tensor * a) { +struct ggml_v1_tensor * ggml_v1_sum( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { bool is_node = false; if (a->grad) { is_node = true; } - struct ggml_tensor * result = ggml_new_tensor_1d(ctx, a->type, 1); + struct ggml_v1_tensor * result = ggml_v1_new_tensor_1d(ctx, a->type, 1); - result->op = GGML_OP_SUM; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_SUM; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; return result; } -// ggml_mean +// ggml_v1_mean -struct ggml_tensor * ggml_mean( - struct ggml_context * ctx, - struct ggml_tensor * a) { +struct ggml_v1_tensor * ggml_v1_mean( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { bool is_node = false; if (a->grad) { @@ -2372,24 +2372,24 @@ struct ggml_tensor * ggml_mean( is_node = true; } - int ne[GGML_MAX_DIMS] = { 1, a->ne[1], a->ne[2], a->ne[3] }; - struct ggml_tensor * result = ggml_new_tensor(ctx, GGML_TYPE_F32, a->n_dims, ne); + int ne[GGML_V1_MAX_DIMS] = { 1, a->ne[1], a->ne[2], a->ne[3] }; + struct ggml_v1_tensor * result = ggml_v1_new_tensor(ctx, GGML_V1_TYPE_F32, a->n_dims, ne); - result->op = GGML_OP_MEAN; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_MEAN; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; return result; } -// ggml_repeat +// ggml_v1_repeat -struct ggml_tensor * ggml_repeat( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - assert(ggml_can_repeat(a, b)); +struct ggml_v1_tensor * ggml_v1_repeat( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + assert(ggml_v1_can_repeat(a, b)); bool is_node = false; @@ -2397,25 +2397,25 @@ struct ggml_tensor * ggml_repeat( is_node = true; } - if (ggml_are_same_shape(a, b) && !is_node) { + if (ggml_v1_are_same_shape(a, b) && !is_node) { return a; } - struct ggml_tensor * result = ggml_new_tensor(ctx, a->type, b->n_dims, b->ne); + struct ggml_v1_tensor * result = ggml_v1_new_tensor(ctx, a->type, b->n_dims, b->ne); - result->op = GGML_OP_REPEAT; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_REPEAT; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = b; return result; } -// ggml_abs +// ggml_v1_abs -struct ggml_tensor * ggml_abs_impl( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_abs_impl( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, bool inplace) { bool is_node = false; @@ -2423,34 +2423,34 @@ struct ggml_tensor * ggml_abs_impl( is_node = true; } - struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); - result->op = GGML_OP_ABS; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_ABS; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; return result; } -struct ggml_tensor * ggml_abs( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_abs_impl(ctx, a, false); +struct ggml_v1_tensor * ggml_v1_abs( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_abs_impl(ctx, a, false); } -struct ggml_tensor * ggml_abs_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_abs_impl(ctx, a, true); +struct ggml_v1_tensor * ggml_v1_abs_inplace( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_abs_impl(ctx, a, true); } -// ggml_sgn +// ggml_v1_sgn -struct ggml_tensor * ggml_sgn_impl( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_sgn_impl( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, bool inplace) { bool is_node = false; @@ -2458,33 +2458,33 @@ struct ggml_tensor * ggml_sgn_impl( is_node = true; } - struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); - result->op = GGML_OP_SGN; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_SGN; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; return result; } -struct ggml_tensor * ggml_sgn( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_sgn_impl(ctx, a, false); +struct ggml_v1_tensor * ggml_v1_sgn( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_sgn_impl(ctx, a, false); } -struct ggml_tensor * ggml_sgn_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_sgn_impl(ctx, a, true); +struct ggml_v1_tensor * ggml_v1_sgn_inplace( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_sgn_impl(ctx, a, true); } -// ggml_neg +// ggml_v1_neg -struct ggml_tensor * ggml_neg_impl( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_neg_impl( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, bool inplace) { bool is_node = false; @@ -2492,33 +2492,33 @@ struct ggml_tensor * ggml_neg_impl( is_node = true; } - struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); - result->op = GGML_OP_NEG; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_NEG; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; return result; } -struct ggml_tensor * ggml_neg( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_neg_impl(ctx, a, false); +struct ggml_v1_tensor * ggml_v1_neg( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_neg_impl(ctx, a, false); } -struct ggml_tensor * ggml_neg_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_neg_impl(ctx, a, true); +struct ggml_v1_tensor * ggml_v1_neg_inplace( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_neg_impl(ctx, a, true); } -// ggml_step +// ggml_v1_step -struct ggml_tensor * ggml_step_impl( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_step_impl( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, bool inplace) { bool is_node = false; @@ -2526,33 +2526,33 @@ struct ggml_tensor * ggml_step_impl( is_node = true; } - struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); - result->op = GGML_OP_STEP; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_STEP; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; return result; } -struct ggml_tensor * ggml_step( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_step_impl(ctx, a, false); +struct ggml_v1_tensor * ggml_v1_step( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_step_impl(ctx, a, false); } -struct ggml_tensor * ggml_step_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_step_impl(ctx, a, true); +struct ggml_v1_tensor * ggml_v1_step_inplace( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_step_impl(ctx, a, true); } -// ggml_relu +// ggml_v1_relu -struct ggml_tensor * ggml_relu_impl( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_relu_impl( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, bool inplace) { bool is_node = false; @@ -2560,33 +2560,33 @@ struct ggml_tensor * ggml_relu_impl( is_node = true; } - struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); - result->op = GGML_OP_RELU; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_RELU; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; return result; } -struct ggml_tensor * ggml_relu( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_relu_impl(ctx, a, false); +struct ggml_v1_tensor * ggml_v1_relu( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_relu_impl(ctx, a, false); } -struct ggml_tensor * ggml_relu_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_relu_impl(ctx, a, true); +struct ggml_v1_tensor * ggml_v1_relu_inplace( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_relu_impl(ctx, a, true); } -// ggml_gelu +// ggml_v1_gelu -struct ggml_tensor * ggml_gelu_impl( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_gelu_impl( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, bool inplace) { bool is_node = false; @@ -2594,33 +2594,33 @@ struct ggml_tensor * ggml_gelu_impl( is_node = true; } - struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); - result->op = GGML_OP_GELU; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_GELU; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; return result; } -struct ggml_tensor * ggml_gelu( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_gelu_impl(ctx, a, false); +struct ggml_v1_tensor * ggml_v1_gelu( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_gelu_impl(ctx, a, false); } -struct ggml_tensor * ggml_gelu_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_gelu_impl(ctx, a, true); +struct ggml_v1_tensor * ggml_v1_gelu_inplace( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_gelu_impl(ctx, a, true); } -// ggml_norm +// ggml_v1_norm -struct ggml_tensor * ggml_norm_impl( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_norm_impl( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, bool inplace) { bool is_node = false; @@ -2629,35 +2629,35 @@ struct ggml_tensor * ggml_norm_impl( is_node = true; } - struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); - result->op = GGML_OP_NORM; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_NORM; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; // TODO: maybe store epsilon here? return result; } -struct ggml_tensor * ggml_norm( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_norm_impl(ctx, a, false); +struct ggml_v1_tensor * ggml_v1_norm( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_norm_impl(ctx, a, false); } -struct ggml_tensor * ggml_norm_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a) { - return ggml_norm_impl(ctx, a, true); +struct ggml_v1_tensor * ggml_v1_norm_inplace( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { + return ggml_v1_norm_impl(ctx, a, true); } -// ggml_mul_mat +// ggml_v1_mul_mat -struct ggml_tensor * ggml_mul_mat( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - assert(ggml_can_mul_mat(a, b)); +struct ggml_v1_tensor * ggml_v1_mul_mat( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + assert(ggml_v1_can_mul_mat(a, b)); bool is_node = false; @@ -2666,25 +2666,25 @@ struct ggml_tensor * ggml_mul_mat( } const int ne[4] = { a->ne[1], b->ne[1], a->ne[2], b->ne[3] }; - struct ggml_tensor * result = ggml_new_tensor(ctx, GGML_TYPE_F32, MIN(a->n_dims, b->n_dims), ne); + struct ggml_v1_tensor * result = ggml_v1_new_tensor(ctx, GGML_V1_TYPE_F32, MIN(a->n_dims, b->n_dims), ne); - result->op = GGML_OP_MUL_MAT; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_MUL_MAT; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = b; return result; } -// ggml_scale +// ggml_v1_scale -struct ggml_tensor * ggml_scale_impl( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b, +struct ggml_v1_tensor * ggml_v1_scale_impl( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b, bool inplace) { - assert(ggml_is_scalar(b)); - assert(ggml_is_padded_1d(a)); + assert(ggml_v1_is_scalar(b)); + assert(ggml_v1_is_padded_1d(a)); bool is_node = false; @@ -2694,39 +2694,39 @@ struct ggml_tensor * ggml_scale_impl( } // TODO: when implement backward, fix this: - //struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); - struct ggml_tensor * result = ggml_view_tensor(ctx, a); + //struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = ggml_v1_view_tensor(ctx, a); - result->op = GGML_OP_SCALE; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_SCALE; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = b; return result; } -struct ggml_tensor * ggml_scale( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - return ggml_scale_impl(ctx, a, b, false); +struct ggml_v1_tensor * ggml_v1_scale( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + return ggml_v1_scale_impl(ctx, a, b, false); } -struct ggml_tensor * ggml_scale_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - return ggml_scale_impl(ctx, a, b, true); +struct ggml_v1_tensor * ggml_v1_scale_inplace( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + return ggml_v1_scale_impl(ctx, a, b, true); } -// ggml_cpy +// ggml_v1_cpy -struct ggml_tensor * ggml_cpy_impl( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b, +struct ggml_v1_tensor * ggml_v1_cpy_impl( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b, bool inplace) { - assert(ggml_nelements(a) == ggml_nelements(b)); + assert(ggml_v1_nelements(a) == ggml_v1_nelements(b)); bool is_node = false; @@ -2736,39 +2736,39 @@ struct ggml_tensor * ggml_cpy_impl( } // make a view of the destination - struct ggml_tensor * result = ggml_view_tensor(ctx, b); + struct ggml_v1_tensor * result = ggml_v1_view_tensor(ctx, b); - result->op = GGML_OP_CPY; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_CPY; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = b; return result; } -struct ggml_tensor * ggml_cpy( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - return ggml_cpy_impl(ctx, a, b, false); +struct ggml_v1_tensor * ggml_v1_cpy( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + return ggml_v1_cpy_impl(ctx, a, b, false); } -struct ggml_tensor * ggml_cpy_inplace( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - return ggml_cpy_impl(ctx, a, b, true); +struct ggml_v1_tensor * ggml_v1_cpy_inplace( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + return ggml_v1_cpy_impl(ctx, a, b, true); } -// ggml_reshape +// ggml_v1_reshape -struct ggml_tensor * ggml_reshape( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - assert(ggml_is_contiguous(a)); - assert(ggml_is_contiguous(b)); - assert(ggml_nelements(a) == ggml_nelements(b)); +struct ggml_v1_tensor * ggml_v1_reshape( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + assert(ggml_v1_is_contiguous(a)); + assert(ggml_v1_is_contiguous(b)); + assert(ggml_v1_nelements(a) == ggml_v1_nelements(b)); bool is_node = false; @@ -2777,23 +2777,23 @@ struct ggml_tensor * ggml_reshape( is_node = true; } - struct ggml_tensor * result = ggml_new_tensor_impl(ctx, a->type, b->n_dims, b->ne, a->data); + struct ggml_v1_tensor * result = ggml_v1_new_tensor_impl(ctx, a->type, b->n_dims, b->ne, a->data); - result->op = GGML_OP_RESHAPE; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_RESHAPE; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; return result; } -struct ggml_tensor * ggml_reshape_2d( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_reshape_2d( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, int ne0, int ne1) { - assert(ggml_is_contiguous(a)); - assert(ggml_nelements(a) == ne0*ne1); + assert(ggml_v1_is_contiguous(a)); + assert(ggml_v1_nelements(a) == ne0*ne1); bool is_node = false; @@ -2803,24 +2803,24 @@ struct ggml_tensor * ggml_reshape_2d( } const int ne[2] = { ne0, ne1 }; - struct ggml_tensor * result = ggml_new_tensor_impl(ctx, a->type, 2, ne, a->data); + struct ggml_v1_tensor * result = ggml_v1_new_tensor_impl(ctx, a->type, 2, ne, a->data); - result->op = GGML_OP_RESHAPE; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_RESHAPE; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; return result; } -struct ggml_tensor * ggml_reshape_3d( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_reshape_3d( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, int ne0, int ne1, int ne2) { - assert(ggml_is_contiguous(a)); - assert(ggml_nelements(a) == ne0*ne1*ne2); + assert(ggml_v1_is_contiguous(a)); + assert(ggml_v1_nelements(a) == ne0*ne1*ne2); bool is_node = false; @@ -2830,30 +2830,30 @@ struct ggml_tensor * ggml_reshape_3d( } const int ne[3] = { ne0, ne1, ne2 }; - struct ggml_tensor * result = ggml_new_tensor_impl(ctx, a->type, 3, ne, a->data); + struct ggml_v1_tensor * result = ggml_v1_new_tensor_impl(ctx, a->type, 3, ne, a->data); - result->op = GGML_OP_RESHAPE; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_RESHAPE; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; return result; } -// ggml_view_1d +// ggml_v1_view_1d -struct ggml_tensor * ggml_view_1d( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_view_1d( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, int ne0, size_t offset) { if (a->grad) { assert(false); // gradient propagation is not supported } - struct ggml_tensor * result = ggml_new_tensor_impl(ctx, a->type, 1, &ne0, (char *) a->data + offset); + struct ggml_v1_tensor * result = ggml_v1_new_tensor_impl(ctx, a->type, 1, &ne0, (char *) a->data + offset); - result->op = GGML_OP_VIEW; + result->op = GGML_V1_OP_VIEW; result->grad = NULL; result->src0 = a; result->src1 = NULL; // TODO: maybe store the offset here? @@ -2861,11 +2861,11 @@ struct ggml_tensor * ggml_view_1d( return result; } -// ggml_view_2d +// ggml_v1_view_2d -struct ggml_tensor * ggml_view_2d( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_view_2d( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, int ne0, int ne1, size_t nb1, @@ -2874,15 +2874,15 @@ struct ggml_tensor * ggml_view_2d( assert(false); // gradient propagation is not supported } - const int ne[GGML_MAX_DIMS] = { ne0, ne1, 1, 1 }; + const int ne[GGML_V1_MAX_DIMS] = { ne0, ne1, 1, 1 }; - struct ggml_tensor * result = ggml_new_tensor_impl(ctx, a->type, 2, ne, (char *) a->data + offset); + struct ggml_v1_tensor * result = ggml_v1_new_tensor_impl(ctx, a->type, 2, ne, (char *) a->data + offset); result->nb[1] = nb1; result->nb[2] = result->nb[1]*ne1; result->nb[3] = result->nb[2]; - result->op = GGML_OP_VIEW; + result->op = GGML_V1_OP_VIEW; result->grad = NULL; result->src0 = a; result->src1 = NULL; // TODO: maybe store the offset here? @@ -2890,19 +2890,19 @@ struct ggml_tensor * ggml_view_2d( return result; } -// ggml_permute +// ggml_v1_permute -struct ggml_tensor * ggml_permute( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_permute( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, int axis0, int axis1, int axis2, int axis3) { - assert(axis0 >= 0 && axis0 < GGML_MAX_DIMS); - assert(axis1 >= 0 && axis1 < GGML_MAX_DIMS); - assert(axis2 >= 0 && axis2 < GGML_MAX_DIMS); - assert(axis3 >= 0 && axis3 < GGML_MAX_DIMS); + assert(axis0 >= 0 && axis0 < GGML_V1_MAX_DIMS); + assert(axis1 >= 0 && axis1 < GGML_V1_MAX_DIMS); + assert(axis2 >= 0 && axis2 < GGML_V1_MAX_DIMS); + assert(axis3 >= 0 && axis3 < GGML_V1_MAX_DIMS); assert(axis0 != axis1); assert(axis0 != axis2); @@ -2918,10 +2918,10 @@ struct ggml_tensor * ggml_permute( is_node = true; } - struct ggml_tensor * result = ggml_view_tensor(ctx, a); + struct ggml_v1_tensor * result = ggml_v1_view_tensor(ctx, a); - int ne[GGML_MAX_DIMS]; - int nb[GGML_MAX_DIMS]; + int ne[GGML_V1_MAX_DIMS]; + int nb[GGML_V1_MAX_DIMS]; ne[axis0] = a->ne[0]; ne[axis1] = a->ne[1]; @@ -2943,19 +2943,19 @@ struct ggml_tensor * ggml_permute( result->nb[2] = nb[2]; result->nb[3] = nb[3]; - result->op = GGML_OP_PERMUTE; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_PERMUTE; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; // TODO: maybe store the permutation here? return result; } -// ggml_transpose +// ggml_v1_transpose -struct ggml_tensor * ggml_transpose( - struct ggml_context * ctx, - struct ggml_tensor * a) { +struct ggml_v1_tensor * ggml_v1_transpose( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { bool is_node = false; if (a->grad) { @@ -2963,7 +2963,7 @@ struct ggml_tensor * ggml_transpose( is_node = true; } - struct ggml_tensor * result = ggml_view_tensor(ctx, a); + struct ggml_v1_tensor * result = ggml_v1_view_tensor(ctx, a); result->ne[0] = a->ne[1]; result->ne[1] = a->ne[0]; @@ -2971,21 +2971,21 @@ struct ggml_tensor * ggml_transpose( result->nb[0] = a->nb[1]; result->nb[1] = a->nb[0]; - result->op = GGML_OP_TRANSPOSE; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_TRANSPOSE; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; return result; } -// ggml_get_rows +// ggml_v1_get_rows -struct ggml_tensor * ggml_get_rows( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - assert(ggml_is_matrix(a) && ggml_is_vector(b) && b->type == GGML_TYPE_I32); +struct ggml_v1_tensor * ggml_v1_get_rows( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + assert(ggml_v1_is_matrix(a) && ggml_v1_is_vector(b) && b->type == GGML_V1_TYPE_I32); bool is_node = false; @@ -2995,22 +2995,22 @@ struct ggml_tensor * ggml_get_rows( } // TODO: implement non F32 return - //struct ggml_tensor * result = ggml_new_tensor_2d(ctx, a->type, a->ne[0], b->ne[0]); - struct ggml_tensor * result = ggml_new_tensor_2d(ctx, GGML_TYPE_F32, a->ne[0], b->ne[0]); + //struct ggml_v1_tensor * result = ggml_v1_new_tensor_2d(ctx, a->type, a->ne[0], b->ne[0]); + struct ggml_v1_tensor * result = ggml_v1_new_tensor_2d(ctx, GGML_V1_TYPE_F32, a->ne[0], b->ne[0]); - result->op = GGML_OP_GET_ROWS; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_GET_ROWS; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = b; return result; } -// ggml_diag_mask_inf +// ggml_v1_diag_mask_inf -struct ggml_tensor * ggml_diag_mask_inf( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_diag_mask_inf( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, int n_past) { bool is_node = false; @@ -3020,23 +3020,23 @@ struct ggml_tensor * ggml_diag_mask_inf( } // TODO: when implement backward, fix this: - //struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); - struct ggml_tensor * result = ggml_view_tensor(ctx, a); - struct ggml_tensor * b = ggml_new_i32(ctx, n_past); + //struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = ggml_v1_view_tensor(ctx, a); + struct ggml_v1_tensor * b = ggml_v1_new_i32(ctx, n_past); - result->op = GGML_OP_DIAG_MASK_INF; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_DIAG_MASK_INF; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = b; return result; } -// ggml_soft_max +// ggml_v1_soft_max -struct ggml_tensor * ggml_soft_max( - struct ggml_context * ctx, - struct ggml_tensor * a) { +struct ggml_v1_tensor * ggml_v1_soft_max( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a) { bool is_node = false; if (a->grad) { @@ -3045,22 +3045,22 @@ struct ggml_tensor * ggml_soft_max( } // TODO: when implement backward, fix this: - //struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); - struct ggml_tensor * result = ggml_view_tensor(ctx, a); + //struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = ggml_v1_view_tensor(ctx, a); - result->op = GGML_OP_SOFT_MAX; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_SOFT_MAX; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = NULL; return result; } -// ggml_rope +// ggml_v1_rope -struct ggml_tensor * ggml_rope( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_rope( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, int n_past, int n_dims, int mode) { @@ -3073,29 +3073,29 @@ struct ggml_tensor * ggml_rope( } // TODO: when implement backward, fix this: - //struct ggml_tensor * result = inplace ? ggml_view_tensor(ctx, a) : ggml_dup_tensor(ctx, a); - struct ggml_tensor * result = ggml_view_tensor(ctx, a); + //struct ggml_v1_tensor * result = inplace ? ggml_v1_view_tensor(ctx, a) : ggml_v1_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = ggml_v1_view_tensor(ctx, a); - struct ggml_tensor * b = ggml_new_tensor_1d(ctx, GGML_TYPE_I32, 3); + struct ggml_v1_tensor * b = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_I32, 3); ((int32_t *) b->data)[0] = n_past; ((int32_t *) b->data)[1] = n_dims; ((int32_t *) b->data)[2] = mode; - result->op = GGML_OP_ROPE; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_ROPE; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = b; return result; } -// ggml_conv_1d_1s +// ggml_v1_conv_1d_1s -struct ggml_tensor * ggml_conv_1d_1s( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - assert(ggml_is_matrix(b)); +struct ggml_v1_tensor * ggml_v1_conv_1d_1s( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + assert(ggml_v1_is_matrix(b)); assert(a->ne[1] == b->ne[1]); assert(a->ne[3] == 1); bool is_node = false; @@ -3106,23 +3106,23 @@ struct ggml_tensor * ggml_conv_1d_1s( } const int ne[4] = { b->ne[0], a->ne[2], 1, 1, }; - struct ggml_tensor * result = ggml_new_tensor(ctx, GGML_TYPE_F32, 2, ne); + struct ggml_v1_tensor * result = ggml_v1_new_tensor(ctx, GGML_V1_TYPE_F32, 2, ne); - result->op = GGML_OP_CONV_1D_1S; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_CONV_1D_1S; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = b; return result; } -// ggml_conv_1d_2s +// ggml_v1_conv_1d_2s -struct ggml_tensor * ggml_conv_1d_2s( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b) { - assert(ggml_is_matrix(b)); +struct ggml_v1_tensor * ggml_v1_conv_1d_2s( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b) { + assert(ggml_v1_is_matrix(b)); assert(a->ne[1] == b->ne[1]); assert(a->ne[3] == 1); bool is_node = false; @@ -3133,71 +3133,71 @@ struct ggml_tensor * ggml_conv_1d_2s( } const int ne[4] = { b->ne[0]/2, a->ne[2], 1, 1, }; - struct ggml_tensor * result = ggml_new_tensor(ctx, GGML_TYPE_F32, 2, ne); + struct ggml_v1_tensor * result = ggml_v1_new_tensor(ctx, GGML_V1_TYPE_F32, 2, ne); - result->op = GGML_OP_CONV_1D_2S; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_CONV_1D_2S; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = b; return result; } -// ggml_flash_attn +// ggml_v1_flash_attn -struct ggml_tensor * ggml_flash_attn( - struct ggml_context * ctx, - struct ggml_tensor * q, - struct ggml_tensor * k, - struct ggml_tensor * v, +struct ggml_v1_tensor * ggml_v1_flash_attn( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * q, + struct ggml_v1_tensor * k, + struct ggml_v1_tensor * v, bool masked) { - assert(ggml_can_mul_mat(k, q)); + assert(ggml_v1_can_mul_mat(k, q)); // TODO: check if vT can be multiplied by (k*qT) bool is_node = false; if (q->grad || k->grad || v->grad) { - GGML_ASSERT(false); // TODO: implement backward + GGML_V1_ASSERT(false); // TODO: implement backward is_node = true; } - //struct ggml_tensor * result = ggml_dup_tensor(ctx, q); - struct ggml_tensor * result = ggml_new_tensor(ctx, GGML_TYPE_F32, 4, q->ne); + //struct ggml_v1_tensor * result = ggml_v1_dup_tensor(ctx, q); + struct ggml_v1_tensor * result = ggml_v1_new_tensor(ctx, GGML_V1_TYPE_F32, 4, q->ne); - result->op = GGML_OP_FLASH_ATTN; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_FLASH_ATTN; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = q; result->src1 = k; result->opt[0] = v; - result->opt[1] = ggml_new_i32(ctx, masked ? 1 : 0); + result->opt[1] = ggml_v1_new_i32(ctx, masked ? 1 : 0); return result; } -// ggml_flash_ff +// ggml_v1_flash_ff -struct ggml_tensor * ggml_flash_ff( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b0, - struct ggml_tensor * b1, - struct ggml_tensor * c0, - struct ggml_tensor * c1) { - assert(ggml_can_mul_mat(b0, a)); +struct ggml_v1_tensor * ggml_v1_flash_ff( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b0, + struct ggml_v1_tensor * b1, + struct ggml_v1_tensor * c0, + struct ggml_v1_tensor * c1) { + assert(ggml_v1_can_mul_mat(b0, a)); // TODO: more checks bool is_node = false; if (a->grad || b0->grad || b1->grad || c0->grad || c1->grad) { - GGML_ASSERT(false); // TODO: implement backward + GGML_V1_ASSERT(false); // TODO: implement backward is_node = true; } - //struct ggml_tensor * result = ggml_dup_tensor(ctx, a); - struct ggml_tensor * result = ggml_new_tensor(ctx, GGML_TYPE_F32, 4, a->ne); + //struct ggml_v1_tensor * result = ggml_v1_dup_tensor(ctx, a); + struct ggml_v1_tensor * result = ggml_v1_new_tensor(ctx, GGML_V1_TYPE_F32, 4, a->ne); - result->op = GGML_OP_FLASH_FF; - result->grad = is_node ? ggml_dup_tensor(ctx, result) : NULL; + result->op = GGML_V1_OP_FLASH_FF; + result->grad = is_node ? ggml_v1_dup_tensor(ctx, result) : NULL; result->src0 = a; result->src1 = b0; result->opt[0] = b1; @@ -3209,26 +3209,26 @@ struct ggml_tensor * ggml_flash_ff( //////////////////////////////////////////////////////////////////////////////// -void ggml_set_param( - struct ggml_context * ctx, - struct ggml_tensor * tensor) { +void ggml_v1_set_param( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * tensor) { tensor->is_param = true; assert(tensor->grad == NULL); - tensor->grad = ggml_dup_tensor(ctx, tensor); + tensor->grad = ggml_v1_dup_tensor(ctx, tensor); } -// ggml_compute_forward_dup +// ggml_v1_compute_forward_dup -static void ggml_compute_forward_dup_f16( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_dup_f16( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - assert(ggml_is_contiguous(dst)); - assert(ggml_nelements(dst) == ggml_nelements(src0)); + assert(ggml_v1_is_contiguous(dst)); + assert(ggml_v1_nelements(dst) == ggml_v1_nelements(src0)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } @@ -3242,13 +3242,13 @@ static void ggml_compute_forward_dup_f16( const size_t nb02 = src0->nb[2]; const size_t nb03 = src0->nb[3]; - if (ggml_is_contiguous(src0) && src0->type == dst->type) { - memcpy(dst->data, src0->data, ggml_nelements(dst) * GGML_TYPE_SIZE[src0->type]); + if (ggml_v1_is_contiguous(src0) && src0->type == dst->type) { + memcpy(dst->data, src0->data, ggml_v1_nelements(dst) * GGML_V1_TYPE_SIZE[src0->type]); return; } - if (src0->nb[0] == sizeof(ggml_fp16_t)) { - if (dst->type == GGML_TYPE_F16) { + if (src0->nb[0] == sizeof(ggml_v1_fp16_t)) { + if (dst->type == GGML_V1_TYPE_F16) { int id = 0; const size_t rs = ne00*nb00; @@ -3264,7 +3264,7 @@ static void ggml_compute_forward_dup_f16( } } } - } else if (dst->type == GGML_TYPE_F32) { + } else if (dst->type == GGML_V1_TYPE_F32) { int id = 0; float * dst_ptr = (float *) dst->data; @@ -3272,21 +3272,21 @@ static void ggml_compute_forward_dup_f16( for (int i02 = 0; i02 < ne02; i02++) { for (int i01 = 0; i01 < ne01; i01++) { for (int i00 = 0; i00 < ne00; i00++) { - const ggml_fp16_t * src0_ptr = (ggml_fp16_t *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + const ggml_v1_fp16_t * src0_ptr = (ggml_v1_fp16_t *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - dst_ptr[id] = GGML_FP16_TO_FP32(*src0_ptr); + dst_ptr[id] = GGML_V1_FP16_TO_FP32(*src0_ptr); id++; } } } } } else { - GGML_ASSERT(false); // TODO: implement + GGML_V1_ASSERT(false); // TODO: implement } } else { //printf("%s: this is not optimal - fix me\n", __func__); - if (dst->type == GGML_TYPE_F32) { + if (dst->type == GGML_V1_TYPE_F32) { int id = 0; float * dst_ptr = (float *) dst->data; @@ -3294,23 +3294,23 @@ static void ggml_compute_forward_dup_f16( for (int i02 = 0; i02 < ne02; i02++) { for (int i01 = 0; i01 < ne01; i01++) { for (int i00 = 0; i00 < ne00; i00++) { - const ggml_fp16_t * src0_ptr = (ggml_fp16_t *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + const ggml_v1_fp16_t * src0_ptr = (ggml_v1_fp16_t *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - dst_ptr[id] = GGML_FP16_TO_FP32(*src0_ptr); + dst_ptr[id] = GGML_V1_FP16_TO_FP32(*src0_ptr); id++; } } } } - } else if (dst->type == GGML_TYPE_F16) { + } else if (dst->type == GGML_V1_TYPE_F16) { int id = 0; - ggml_fp16_t * dst_ptr = (ggml_fp16_t *) dst->data; + ggml_v1_fp16_t * dst_ptr = (ggml_v1_fp16_t *) dst->data; for (int i03 = 0; i03 < ne03; i03++) { for (int i02 = 0; i02 < ne02; i02++) { for (int i01 = 0; i01 < ne01; i01++) { for (int i00 = 0; i00 < ne00; i00++) { - const ggml_fp16_t * src0_ptr = (ggml_fp16_t *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); + const ggml_v1_fp16_t * src0_ptr = (ggml_v1_fp16_t *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); dst_ptr[id] = *src0_ptr; id++; @@ -3319,20 +3319,20 @@ static void ggml_compute_forward_dup_f16( } } } else { - GGML_ASSERT(false); // TODO: implement + GGML_V1_ASSERT(false); // TODO: implement } } } -static void ggml_compute_forward_dup_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { - GGML_ASSERT(params->ith == 0); - GGML_ASSERT(ggml_is_contiguous(dst)); - GGML_ASSERT(ggml_nelements(dst) == ggml_nelements(src0)); +static void ggml_v1_compute_forward_dup_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { + GGML_V1_ASSERT(params->ith == 0); + GGML_V1_ASSERT(ggml_v1_is_contiguous(dst)); + GGML_V1_ASSERT(ggml_v1_nelements(dst) == ggml_v1_nelements(src0)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } @@ -3346,13 +3346,13 @@ static void ggml_compute_forward_dup_f32( const size_t nb02 = src0->nb[2]; const size_t nb03 = src0->nb[3]; - if (ggml_is_contiguous(src0) && src0->type == dst->type) { - memcpy(dst->data, src0->data, ggml_nelements(dst) * GGML_TYPE_SIZE[src0->type]); + if (ggml_v1_is_contiguous(src0) && src0->type == dst->type) { + memcpy(dst->data, src0->data, ggml_v1_nelements(dst) * GGML_V1_TYPE_SIZE[src0->type]); return; } if (src0->nb[0] == sizeof(float)) { - if (dst->type == GGML_TYPE_F32) { + if (dst->type == GGML_V1_TYPE_F32) { int id = 0; const size_t rs = ne00*nb00; @@ -3368,9 +3368,9 @@ static void ggml_compute_forward_dup_f32( } } } - } else if (dst->type == GGML_TYPE_F16) { + } else if (dst->type == GGML_V1_TYPE_F16) { int id = 0; - ggml_fp16_t * dst_ptr = (ggml_fp16_t *) dst->data; + ggml_v1_fp16_t * dst_ptr = (ggml_v1_fp16_t *) dst->data; for (int i03 = 0; i03 < ne03; i03++) { for (int i02 = 0; i02 < ne02; i02++) { @@ -3378,19 +3378,19 @@ static void ggml_compute_forward_dup_f32( for (int i00 = 0; i00 < ne00; i00++) { const float * src0_ptr = (float *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - dst_ptr[id] = GGML_FP32_TO_FP16(*src0_ptr); + dst_ptr[id] = GGML_V1_FP32_TO_FP16(*src0_ptr); id++; } } } } } else { - GGML_ASSERT(false); // TODO: implement + GGML_V1_ASSERT(false); // TODO: implement } } else { //printf("%s: this is not optimal - fix me\n", __func__); - if (dst->type == GGML_TYPE_F32) { + if (dst->type == GGML_V1_TYPE_F32) { int id = 0; float * dst_ptr = (float *) dst->data; @@ -3406,9 +3406,9 @@ static void ggml_compute_forward_dup_f32( } } } - } else if (dst->type == GGML_TYPE_F16) { + } else if (dst->type == GGML_V1_TYPE_F16) { int id = 0; - ggml_fp16_t * dst_ptr = (ggml_fp16_t *) dst->data; + ggml_v1_fp16_t * dst_ptr = (ggml_v1_fp16_t *) dst->data; for (int i03 = 0; i03 < ne03; i03++) { for (int i02 = 0; i02 < ne02; i02++) { @@ -3416,58 +3416,58 @@ static void ggml_compute_forward_dup_f32( for (int i00 = 0; i00 < ne00; i00++) { const float * src0_ptr = (float *) ((char *) src0->data + i00*nb00 + i01*nb01 + i02*nb02 + i03*nb03); - dst_ptr[id] = GGML_FP32_TO_FP16(*src0_ptr); + dst_ptr[id] = GGML_V1_FP32_TO_FP16(*src0_ptr); id++; } } } } } else { - GGML_ASSERT(false); // TODO: implement + GGML_V1_ASSERT(false); // TODO: implement } } } -static void ggml_compute_forward_dup( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_dup( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F16: + case GGML_V1_TYPE_F16: { - ggml_compute_forward_dup_f16(params, src0, dst); + ggml_v1_compute_forward_dup_f16(params, src0, dst); } break; - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_dup_f32(params, src0, dst); + ggml_v1_compute_forward_dup_f32(params, src0, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_COUNT: { - GGML_ASSERT(false); + GGML_V1_ASSERT(false); } break; } } -// ggml_compute_forward_add +// ggml_v1_compute_forward_add -static void ggml_compute_forward_add_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { - GGML_ASSERT(ggml_are_same_shape(src0, src1) && ggml_are_same_shape(src0, dst)); +static void ggml_v1_compute_forward_add_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { + GGML_V1_ASSERT(ggml_v1_are_same_shape(src0, src1) && ggml_v1_are_same_shape(src0, dst)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } const int ith = params->ith; const int nth = params->nth; - const int n = ggml_nrows(src0); + const int n = ggml_v1_nrows(src0); const int nc = src0->ne[0]; const size_t nb00 = src0->nb[0]; @@ -3479,15 +3479,15 @@ static void ggml_compute_forward_add_f32( const size_t nb0 = dst->nb[0]; const size_t nb1 = dst->nb[1]; - GGML_ASSERT( nb0 == sizeof(float)); - GGML_ASSERT(nb00 == sizeof(float)); + GGML_V1_ASSERT( nb0 == sizeof(float)); + GGML_V1_ASSERT(nb00 == sizeof(float)); if (nb10 == sizeof(float)) { const int j0 = (n/nth)*ith; const int j1 = ith == nth - 1 ? n : (n/nth)*(ith + 1); for (int j = j0; j < j1; j++) { - ggml_vec_add_f32(nc, + ggml_v1_vec_add_f32(nc, (float *) ((char *) dst->data + j*nb1), (float *) ((char *) src0->data + j*nb01), (float *) ((char *) src1->data + j*nb11)); @@ -3506,42 +3506,42 @@ static void ggml_compute_forward_add_f32( } } -static void ggml_compute_forward_add( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_add( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_add_f32(params, src0, src1, dst); + ggml_v1_compute_forward_add_f32(params, src0, src1, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_sub +// ggml_v1_compute_forward_sub -static void ggml_compute_forward_sub_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_sub_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - assert(ggml_are_same_shape(src0, src1) && ggml_are_same_shape(src0, dst)); + assert(ggml_v1_are_same_shape(src0, src1) && ggml_v1_are_same_shape(src0, dst)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } - const int n = ggml_nrows(src0); + const int n = ggml_v1_nrows(src0); const int nc = src0->ne[0]; assert( dst->nb[0] == sizeof(float)); @@ -3549,49 +3549,49 @@ static void ggml_compute_forward_sub_f32( assert(src1->nb[0] == sizeof(float)); for (int i = 0; i < n; i++) { - ggml_vec_sub_f32(nc, + ggml_v1_vec_sub_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), (float *) ((char *) src0->data + i*(src0->nb[1])), (float *) ((char *) src1->data + i*(src1->nb[1]))); } } -static void ggml_compute_forward_sub( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_sub( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_sub_f32(params, src0, src1, dst); + ggml_v1_compute_forward_sub_f32(params, src0, src1, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_mul +// ggml_v1_compute_forward_mul -static void ggml_compute_forward_mul_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_mul_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - assert(ggml_are_same_shape(src0, src1) && ggml_are_same_shape(src0, dst)); + assert(ggml_v1_are_same_shape(src0, src1) && ggml_v1_are_same_shape(src0, dst)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } - const int n = ggml_nrows(src0); + const int n = ggml_v1_nrows(src0); const int nc = src0->ne[0]; assert( dst->nb[0] == sizeof(float)); @@ -3599,49 +3599,49 @@ static void ggml_compute_forward_mul_f32( assert(src1->nb[0] == sizeof(float)); for (int i = 0; i < n; i++) { - ggml_vec_mul_f32(nc, + ggml_v1_vec_mul_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), (float *) ((char *) src0->data + i*(src0->nb[1])), (float *) ((char *) src1->data + i*(src1->nb[1]))); } } -static void ggml_compute_forward_mul( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_mul( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_mul_f32(params, src0, src1, dst); + ggml_v1_compute_forward_mul_f32(params, src0, src1, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_div +// ggml_v1_compute_forward_div -static void ggml_compute_forward_div_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_div_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - assert(ggml_are_same_shape(src0, src1) && ggml_are_same_shape(src0, dst)); + assert(ggml_v1_are_same_shape(src0, src1) && ggml_v1_are_same_shape(src0, dst)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } - const int n = ggml_nrows(src0); + const int n = ggml_v1_nrows(src0); const int nc = src0->ne[0]; assert( dst->nb[0] == sizeof(float)); @@ -3649,140 +3649,140 @@ static void ggml_compute_forward_div_f32( assert(src1->nb[0] == sizeof(float)); for (int i = 0; i < n; i++) { - ggml_vec_div_f32(nc, + ggml_v1_vec_div_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), (float *) ((char *) src0->data + i*(src0->nb[1])), (float *) ((char *) src1->data + i*(src1->nb[1]))); } } -static void ggml_compute_forward_div( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_div( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_div_f32(params, src0, src1, dst); + ggml_v1_compute_forward_div_f32(params, src0, src1, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_sqr +// ggml_v1_compute_forward_sqr -static void ggml_compute_forward_sqr_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_sqr_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - assert(ggml_are_same_shape(src0, dst)); + assert(ggml_v1_are_same_shape(src0, dst)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } - const int n = ggml_nrows(src0); + const int n = ggml_v1_nrows(src0); const int nc = src0->ne[0]; assert( dst->nb[0] == sizeof(float)); assert(src0->nb[0] == sizeof(float)); for (int i = 0; i < n; i++) { - ggml_vec_sqr_f32(nc, + ggml_v1_vec_sqr_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), (float *) ((char *) src0->data + i*(src0->nb[1]))); } } -static void ggml_compute_forward_sqr( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_sqr( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_sqr_f32(params, src0, dst); + ggml_v1_compute_forward_sqr_f32(params, src0, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_sqrt +// ggml_v1_compute_forward_sqrt -static void ggml_compute_forward_sqrt_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_sqrt_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - assert(ggml_are_same_shape(src0, dst)); + assert(ggml_v1_are_same_shape(src0, dst)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } - const int n = ggml_nrows(src0); + const int n = ggml_v1_nrows(src0); const int nc = src0->ne[0]; assert( dst->nb[0] == sizeof(float)); assert(src0->nb[0] == sizeof(float)); for (int i = 0; i < n; i++) { - ggml_vec_sqrt_f32(nc, + ggml_v1_vec_sqrt_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), (float *) ((char *) src0->data + i*(src0->nb[1]))); } } -static void ggml_compute_forward_sqrt( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_sqrt( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_sqrt_f32(params, src0, dst); + ggml_v1_compute_forward_sqrt_f32(params, src0, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_sum +// ggml_v1_compute_forward_sum -static void ggml_compute_forward_sum_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_sum_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - assert(ggml_is_scalar(dst)); + assert(ggml_v1_is_scalar(dst)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } - assert(ggml_is_scalar(dst)); + assert(ggml_v1_is_scalar(dst)); assert(src0->nb[0] == sizeof(float)); const int ne00 = src0->ne[0]; @@ -3797,7 +3797,7 @@ static void ggml_compute_forward_sum_f32( for (int i03 = 0; i03 < ne03; i03++) { for (int i02 = 0; i02 < ne02; i02++) { for (int i01 = 0; i01 < ne01; i01++) { - ggml_vec_sum_f32(ne00, + ggml_v1_vec_sum_f32(ne00, (float *) (dst->data), (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03)); } @@ -3805,35 +3805,35 @@ static void ggml_compute_forward_sum_f32( } } -static void ggml_compute_forward_sum( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_sum( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_sum_f32(params, src0, dst); + ggml_v1_compute_forward_sum_f32(params, src0, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_mean +// ggml_v1_compute_forward_mean -static void ggml_compute_forward_mean_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_mean_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } @@ -3870,7 +3870,7 @@ static void ggml_compute_forward_mean_f32( for (int i03 = 0; i03 < ne03; i03++) { for (int i02 = 0; i02 < ne02; i02++) { for (int i01 = 0; i01 < ne01; i01++) { - ggml_vec_sum_f32(ne00, + ggml_v1_vec_sum_f32(ne00, (float *) ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3), (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03)); @@ -3880,36 +3880,36 @@ static void ggml_compute_forward_mean_f32( } } -static void ggml_compute_forward_mean( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_mean( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_mean_f32(params, src0, dst); + ggml_v1_compute_forward_mean_f32(params, src0, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_repeat +// ggml_v1_compute_forward_repeat -static void ggml_compute_forward_repeat_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_repeat_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - assert(ggml_can_repeat(src0, dst)); + assert(ggml_v1_can_repeat(src0, dst)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } @@ -3923,8 +3923,8 @@ static void ggml_compute_forward_repeat_f32( const int nr = dst->ne[1]; const int nc0 = src0->ne[0]; const int nr0 = src0->ne[1]; - const int ncr = nc/nc0; // guaranteed to be an integer due to the check in ggml_can_repeat - const int nrr = nr/nr0; // guaranteed to be an integer due to the check in ggml_can_repeat + const int ncr = nc/nc0; // guaranteed to be an integer due to the check in ggml_v1_can_repeat + const int nrr = nr/nr0; // guaranteed to be an integer due to the check in ggml_v1_can_repeat // TODO: support for transposed / permuted tensors assert( dst->nb[0] == sizeof(float)); @@ -3934,7 +3934,7 @@ static void ggml_compute_forward_repeat_f32( for (int i = 0; i < nrr; i++) { for (int j = 0; j < ncr; j++) { for (int k = 0; k < nr0; k++) { - ggml_vec_cpy_f32(nc0, + ggml_v1_vec_cpy_f32(nc0, (float *) ((char *) dst->data + (i*nr0 + k)*( dst->nb[1]) + j*nc0*( dst->nb[0])), (float *) ((char *) src0->data + ( k)*(src0->nb[1]))); } @@ -3942,267 +3942,267 @@ static void ggml_compute_forward_repeat_f32( } } -static void ggml_compute_forward_repeat( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_repeat( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_repeat_f32(params, src0, dst); + ggml_v1_compute_forward_repeat_f32(params, src0, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_abs +// ggml_v1_compute_forward_abs -static void ggml_compute_forward_abs_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_abs_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - assert(ggml_are_same_shape(src0, dst)); + assert(ggml_v1_are_same_shape(src0, dst)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } - const int n = ggml_nrows(src0); + const int n = ggml_v1_nrows(src0); const int nc = src0->ne[0]; assert(dst->nb[0] == sizeof(float)); assert(src0->nb[0] == sizeof(float)); for (int i = 0; i < n; i++) { - ggml_vec_abs_f32(nc, + ggml_v1_vec_abs_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), (float *) ((char *) src0->data + i*(src0->nb[1]))); } } -static void ggml_compute_forward_abs( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_abs( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_abs_f32(params, src0, dst); + ggml_v1_compute_forward_abs_f32(params, src0, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_sgn +// ggml_v1_compute_forward_sgn -static void ggml_compute_forward_sgn_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_sgn_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - assert(ggml_are_same_shape(src0, dst)); + assert(ggml_v1_are_same_shape(src0, dst)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } - const int n = ggml_nrows(src0); + const int n = ggml_v1_nrows(src0); const int nc = src0->ne[0]; assert(dst->nb[0] == sizeof(float)); assert(src0->nb[0] == sizeof(float)); for (int i = 0; i < n; i++) { - ggml_vec_sgn_f32(nc, + ggml_v1_vec_sgn_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), (float *) ((char *) src0->data + i*(src0->nb[1]))); } } -static void ggml_compute_forward_sgn( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_sgn( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_sgn_f32(params, src0, dst); + ggml_v1_compute_forward_sgn_f32(params, src0, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_neg +// ggml_v1_compute_forward_neg -static void ggml_compute_forward_neg_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_neg_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - assert(ggml_are_same_shape(src0, dst)); + assert(ggml_v1_are_same_shape(src0, dst)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } - const int n = ggml_nrows(src0); + const int n = ggml_v1_nrows(src0); const int nc = src0->ne[0]; assert(dst->nb[0] == sizeof(float)); assert(src0->nb[0] == sizeof(float)); for (int i = 0; i < n; i++) { - ggml_vec_neg_f32(nc, + ggml_v1_vec_neg_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), (float *) ((char *) src0->data + i*(src0->nb[1]))); } } -static void ggml_compute_forward_neg( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_neg( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_neg_f32(params, src0, dst); + ggml_v1_compute_forward_neg_f32(params, src0, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_step +// ggml_v1_compute_forward_step -static void ggml_compute_forward_step_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_step_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - assert(ggml_are_same_shape(src0, dst)); + assert(ggml_v1_are_same_shape(src0, dst)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } - const int n = ggml_nrows(src0); + const int n = ggml_v1_nrows(src0); const int nc = src0->ne[0]; assert(dst->nb[0] == sizeof(float)); assert(src0->nb[0] == sizeof(float)); for (int i = 0; i < n; i++) { - ggml_vec_step_f32(nc, + ggml_v1_vec_step_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), (float *) ((char *) src0->data + i*(src0->nb[1]))); } } -static void ggml_compute_forward_step( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_step( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_step_f32(params, src0, dst); + ggml_v1_compute_forward_step_f32(params, src0, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_relu +// ggml_v1_compute_forward_relu -static void ggml_compute_forward_relu_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_relu_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - assert(ggml_are_same_shape(src0, dst)); + assert(ggml_v1_are_same_shape(src0, dst)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } - const int n = ggml_nrows(src0); + const int n = ggml_v1_nrows(src0); const int nc = src0->ne[0]; assert(dst->nb[0] == sizeof(float)); assert(src0->nb[0] == sizeof(float)); for (int i = 0; i < n; i++) { - ggml_vec_relu_f32(nc, + ggml_v1_vec_relu_f32(nc, (float *) ((char *) dst->data + i*( dst->nb[1])), (float *) ((char *) src0->data + i*(src0->nb[1]))); } } -static void ggml_compute_forward_relu( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_relu( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_relu_f32(params, src0, dst); + ggml_v1_compute_forward_relu_f32(params, src0, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_gelu +// ggml_v1_compute_forward_gelu -static void ggml_compute_forward_gelu_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { - GGML_ASSERT(ggml_is_contiguous(src0)); - GGML_ASSERT(ggml_is_contiguous(dst)); - GGML_ASSERT(ggml_are_same_shape(src0, dst)); +static void ggml_v1_compute_forward_gelu_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { + GGML_V1_ASSERT(ggml_v1_is_contiguous(src0)); + GGML_V1_ASSERT(ggml_v1_is_contiguous(dst)); + GGML_V1_ASSERT(ggml_v1_are_same_shape(src0, dst)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } @@ -4210,7 +4210,7 @@ static void ggml_compute_forward_gelu_f32( const int nth = params->nth; const int nc = src0->ne[0]; - const int nr = ggml_nrows(src0); + const int nr = ggml_v1_nrows(src0); // rows per thread const int dr = (nr + nth - 1)/nth; @@ -4220,7 +4220,7 @@ static void ggml_compute_forward_gelu_f32( const int ir1 = MIN(ir0 + dr, nr); for (int i1 = ir0; i1 < ir1; i1++) { - ggml_vec_gelu_f32(nc, + ggml_v1_vec_gelu_f32(nc, (float *) ((char *) dst->data + i1*( dst->nb[1])), (float *) ((char *) src0->data + i1*(src0->nb[1]))); @@ -4235,39 +4235,39 @@ static void ggml_compute_forward_gelu_f32( } } -static void ggml_compute_forward_gelu( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_gelu( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_gelu_f32(params, src0, dst); + ggml_v1_compute_forward_gelu_f32(params, src0, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_norm +// ggml_v1_compute_forward_norm -static void ggml_compute_forward_norm_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { - GGML_ASSERT(ggml_are_same_shape(src0, dst)); +static void ggml_v1_compute_forward_norm_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { + GGML_V1_ASSERT(ggml_v1_are_same_shape(src0, dst)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } - GGML_ASSERT(src0->nb[0] == sizeof(float)); + GGML_V1_ASSERT(src0->nb[0] == sizeof(float)); const int ith = params->ith; const int nth = params->nth; @@ -4285,7 +4285,7 @@ static void ggml_compute_forward_norm_f32( const size_t nb2 = dst->nb[2]; const size_t nb3 = dst->nb[3]; - const ggml_float eps = 1e-5f; // TODO: make this a parameter + const ggml_v1_float eps = 1e-5f; // TODO: make this a parameter // TODO: optimize for (int i03 = 0; i03 < ne03; i03++) { @@ -4293,7 +4293,7 @@ static void ggml_compute_forward_norm_f32( for (int i01 = ith; i01 < ne01; i01 += nth) { const float * x = (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03); - ggml_float mean = 0.0; + ggml_v1_float mean = 0.0; for (int i00 = 0; i00 < ne00; i00++) { mean += x[i00]; } @@ -4302,50 +4302,50 @@ static void ggml_compute_forward_norm_f32( float * y = (float *) ((char *) dst->data + i01*nb1 + i02*nb2 + i03*nb3); - ggml_float sum2 = 0.0; + ggml_v1_float sum2 = 0.0; for (int i00 = 0; i00 < ne00; i00++) { - ggml_float v = x[i00] - mean; + ggml_v1_float v = x[i00] - mean; y[i00] = v; sum2 += v*v; } const float scale = 1.0/sqrt(sum2/ne00 + eps); - ggml_vec_scale_f32(ne00, y, scale); + ggml_v1_vec_scale_f32(ne00, y, scale); } } } } -static void ggml_compute_forward_norm( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_norm( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_norm_f32(params, src0, dst); + ggml_v1_compute_forward_norm_f32(params, src0, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_mul_mat +// ggml_v1_compute_forward_mul_mat -#if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) +#if defined(GGML_V1_USE_ACCELERATE) || defined(GGML_V1_USE_OPENBLAS) // helper function to determine if it is better to use BLAS or not // for large matrices, BLAS is faster -static bool ggml_compute_forward_mul_mat_use_blas( - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static bool ggml_v1_compute_forward_mul_mat_use_blas( + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { UNUSED(src0); const int ne10 = src1->ne[0]; @@ -4354,7 +4354,7 @@ static bool ggml_compute_forward_mul_mat_use_blas( const int ne1 = dst->ne[1]; // TODO: find the optimal values for these - if (ggml_is_contiguous(src0) && ggml_is_contiguous(src1) && ( + if (ggml_v1_is_contiguous(src0) && ggml_v1_is_contiguous(src1) && ( (ne0 >= 32 && ne1 >= 32 && ne10 >= 32) )) { //printf("BLAS: %d %d %d\n", ne0, ne1, ne10); @@ -4365,12 +4365,12 @@ static bool ggml_compute_forward_mul_mat_use_blas( } #endif -static void ggml_compute_forward_mul_mat_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { - int64_t t0 = ggml_perf_time_us(); +static void ggml_v1_compute_forward_mul_mat_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { + int64_t t0 = ggml_v1_perf_time_us(); UNUSED(t0); const int ne00 = src0->ne[0]; @@ -4432,19 +4432,19 @@ static void ggml_compute_forward_mul_mat_f32( // nb00 < nb01 - src0 is transposed // compute by src0 columns -#if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) - if (ggml_compute_forward_mul_mat_use_blas(src0, src1, dst)) { - GGML_ASSERT(nb10 == sizeof(float)); +#if defined(GGML_V1_USE_ACCELERATE) || defined(GGML_V1_USE_OPENBLAS) + if (ggml_v1_compute_forward_mul_mat_use_blas(src0, src1, dst)) { + GGML_V1_ASSERT(nb10 == sizeof(float)); if (params->ith != 0) { return; } - if (params->type == GGML_TASK_INIT) { + if (params->type == GGML_V1_TASK_INIT) { return; } - if (params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_FINALIZE) { return; } @@ -4466,13 +4466,13 @@ static void ggml_compute_forward_mul_mat_f32( } } - //printf("CBLAS F32 = %f ms, %d x %d x %d x %d\n", (ggml_perf_time_us() - t0)/1000.0, ne0, ne1, ne2, ne3); + //printf("CBLAS F32 = %f ms, %d x %d x %d x %d\n", (ggml_v1_perf_time_us() - t0)/1000.0, ne0, ne1, ne2, ne3); return; } #endif - if (params->type == GGML_TASK_INIT) { + if (params->type == GGML_V1_TASK_INIT) { if (nb01 >= nb00) { return; } @@ -4482,13 +4482,13 @@ static void ggml_compute_forward_mul_mat_f32( return; } - if (params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_FINALIZE) { if (nb01 >= nb00) { return; } // TODO: fix this memset (wsize is overestimated) - //assert(params->wsize == (ggml_nbytes(dst) + CACHE_LINE_SIZE)*nth); + //assert(params->wsize == (ggml_v1_nbytes(dst) + CACHE_LINE_SIZE)*nth); float * const wdata = params->wdata; @@ -4499,10 +4499,10 @@ static void ggml_compute_forward_mul_mat_f32( const int ic0 = dc*ith; const int ic1 = MIN(ic0 + dc, ne); - ggml_vec_cpy_f32(ic1 - ic0, (float *) dst->data + ic0, wdata + ic0); + ggml_v1_vec_cpy_f32(ic1 - ic0, (float *) dst->data + ic0, wdata + ic0); for (int k = 1; k < nth; k++) { - ggml_vec_acc_f32(ic1 - ic0, (float *) dst->data + ic0, wdata + (ne + CACHE_LINE_SIZE_F32)*k + ic0); + ggml_v1_vec_acc_f32(ic1 - ic0, (float *) dst->data + ic0, wdata + (ne + CACHE_LINE_SIZE_F32)*k + ic0); } return; @@ -4512,7 +4512,7 @@ static void ggml_compute_forward_mul_mat_f32( // TODO: do not support transposed src1 assert(nb10 == sizeof(float)); - // parallelize by src0 rows using ggml_vec_dot_f32 + // parallelize by src0 rows using ggml_v1_vec_dot_f32 // total rows in src0 const int nr = ne01*ne02*ne03; @@ -4542,14 +4542,14 @@ static void ggml_compute_forward_mul_mat_f32( const int i2 = i02; const int i3 = i03; - ggml_vec_dot_f32(ne00, + ggml_v1_vec_dot_f32(ne00, (float *) ((char *) dst->data + (i0*nb0 + i1*nb1 + i2*nb2 + i3*nb3)), (float *) ((char *) src0->data + (i01*nb01 + i02*nb02 + i03*nb03)), (float *) ((char *) src1->data + (i11*nb11 + i12*nb12 + i13*nb13))); } } } else { - // parallelize by src1 columns using ggml_vec_mad_f32 + // parallelize by src1 columns using ggml_v1_vec_mad_f32 // each thread has its own work data // during FINALIZE we accumulate all work data into dst @@ -4586,7 +4586,7 @@ static void ggml_compute_forward_mul_mat_f32( assert(sizeof(float)*(wo + i3*ne2*ne1*ne0 + i2*ne1*ne0 + i1*ne0 + ne01) <= params->wsize); - ggml_vec_mad_f32(ne01, + ggml_v1_vec_mad_f32(ne01, (float *) (wdata + wo + i3*ne2*ne1*ne0 + i2*ne1*ne0 + i1*ne0), (float *) ((char *) src0->data + (i00*nb00 + i02*nb02 + i03*nb03)), *(float *) ((char *) src1->data + (i10*nb10 + i11*nb11 + i12*nb12 + i13*nb13))); @@ -4596,7 +4596,7 @@ static void ggml_compute_forward_mul_mat_f32( } } - //int64_t t1 = ggml_perf_time_us(); + //int64_t t1 = ggml_v1_perf_time_us(); //static int64_t acc = 0; //acc += t1 - t0; //if (t1 - t0 > 10) { @@ -4610,12 +4610,12 @@ static void ggml_compute_forward_mul_mat_f32( //} } -static void ggml_compute_forward_mul_mat_f16_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { - int64_t t0 = ggml_perf_time_us(); +static void ggml_v1_compute_forward_mul_mat_f16_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { + int64_t t0 = ggml_v1_perf_time_us(); UNUSED(t0); const int ne00 = src0->ne[0]; @@ -4652,24 +4652,24 @@ static void ggml_compute_forward_mul_mat_f16_f32( const int ith = params->ith; const int nth = params->nth; - GGML_ASSERT(ne02 == ne12); - GGML_ASSERT(ne03 == ne13); - GGML_ASSERT(ne2 == ne12); - GGML_ASSERT(ne3 == ne13); + GGML_V1_ASSERT(ne02 == ne12); + GGML_V1_ASSERT(ne03 == ne13); + GGML_V1_ASSERT(ne2 == ne12); + GGML_V1_ASSERT(ne3 == ne13); // TODO: we don't support permuted src0 - GGML_ASSERT(nb00 == sizeof(ggml_fp16_t) || nb01 == sizeof(ggml_fp16_t)); + GGML_V1_ASSERT(nb00 == sizeof(ggml_v1_fp16_t) || nb01 == sizeof(ggml_v1_fp16_t)); // dst cannot be transposed or permuted - GGML_ASSERT(nb0 == sizeof(float)); - GGML_ASSERT(nb0 <= nb1); - GGML_ASSERT(nb1 <= nb2); - GGML_ASSERT(nb2 <= nb3); + GGML_V1_ASSERT(nb0 == sizeof(float)); + GGML_V1_ASSERT(nb0 <= nb1); + GGML_V1_ASSERT(nb1 <= nb2); + GGML_V1_ASSERT(nb2 <= nb3); - GGML_ASSERT(ne0 == ne01); - GGML_ASSERT(ne1 == ne11); - GGML_ASSERT(ne2 == ne02); - GGML_ASSERT(ne3 == ne03); + GGML_V1_ASSERT(ne0 == ne01); + GGML_V1_ASSERT(ne1 == ne11); + GGML_V1_ASSERT(ne2 == ne02); + GGML_V1_ASSERT(ne3 == ne03); // nb01 >= nb00 - src0 is not transposed // compute by src0 rows @@ -4677,19 +4677,19 @@ static void ggml_compute_forward_mul_mat_f16_f32( // nb00 < nb01 - src0 is transposed // compute by src0 columns -#if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) - if (ggml_compute_forward_mul_mat_use_blas(src0, src1, dst)) { - GGML_ASSERT(nb10 == sizeof(float)); +#if defined(GGML_V1_USE_ACCELERATE) || defined(GGML_V1_USE_OPENBLAS) + if (ggml_v1_compute_forward_mul_mat_use_blas(src0, src1, dst)) { + GGML_V1_ASSERT(nb10 == sizeof(float)); if (params->ith != 0) { return; } - if (params->type == GGML_TASK_INIT) { + if (params->type == GGML_V1_TASK_INIT) { return; } - if (params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_FINALIZE) { return; } @@ -4701,7 +4701,7 @@ static void ggml_compute_forward_mul_mat_f16_f32( int id = 0; for (int i01 = 0; i01 < ne01; ++i01) { for (int i00 = 0; i00 < ne00; ++i00) { - wdata[id++] = GGML_FP16_TO_FP32(*(ggml_fp16_t *) ((char *) src0->data + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00)); + wdata[id++] = GGML_V1_FP16_TO_FP32(*(ggml_v1_fp16_t *) ((char *) src0->data + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00)); } } } @@ -4749,28 +4749,28 @@ static void ggml_compute_forward_mul_mat_f16_f32( } } - //printf("CBLAS = %f ms, %d x %d x %d x %d\n", (ggml_perf_time_us() - t0)/1000.0, ne0, ne1, ne2, ne3); + //printf("CBLAS = %f ms, %d x %d x %d x %d\n", (ggml_v1_perf_time_us() - t0)/1000.0, ne0, ne1, ne2, ne3); return; } #endif - if (params->type == GGML_TASK_INIT) { + if (params->type == GGML_V1_TASK_INIT) { if (nb01 >= nb00) { - ggml_fp16_t * const wdata = params->wdata; + ggml_v1_fp16_t * const wdata = params->wdata; int id = 0; for (int i13 = 0; i13 < ne13; ++i13) { for (int i12 = 0; i12 < ne12; ++i12) { for (int i11 = 0; i11 < ne11; ++i11) { for (int i10 = 0; i10 < ne10; ++i10) { - wdata[id++] = GGML_FP32_TO_FP16(*(float *)((char *) src1->data + i13*nb13 + i12*nb12 + i11*nb11 + i10*nb10)); + wdata[id++] = GGML_V1_FP32_TO_FP16(*(float *)((char *) src1->data + i13*nb13 + i12*nb12 + i11*nb11 + i10*nb10)); } } } } - GGML_ASSERT(id*sizeof(ggml_fp16_t) <= params->wsize); + GGML_V1_ASSERT(id*sizeof(ggml_v1_fp16_t) <= params->wsize); return; } @@ -4780,15 +4780,15 @@ static void ggml_compute_forward_mul_mat_f16_f32( return; } - if (params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_FINALIZE) { if (nb01 >= nb00) { return; } // TODO: fix this memset (wsize is overestimated) - //assert(params->wsize == (ggml_nbytes(dst) + CACHE_LINE_SIZE)*nth); + //assert(params->wsize == (ggml_v1_nbytes(dst) + CACHE_LINE_SIZE)*nth); - ggml_fp16_t * const wdata = params->wdata; + ggml_v1_fp16_t * const wdata = params->wdata; // cols per thread const int dc = (ne + nth - 1)/nth; @@ -4798,12 +4798,12 @@ static void ggml_compute_forward_mul_mat_f16_f32( const int ic1 = MIN(ic0 + dc, ne); for (int i = ic0; i < ic1; ++i) { - ((float *) dst->data)[i] = GGML_FP16_TO_FP32(wdata[i]); + ((float *) dst->data)[i] = GGML_V1_FP16_TO_FP32(wdata[i]); } for (int k = 1; k < nth; k++) { for (int i = ic0; i < ic1; ++i) { - ((float *) dst->data)[i] += GGML_FP16_TO_FP32(wdata[(ne + CACHE_LINE_SIZE_F32)*k + i]); + ((float *) dst->data)[i] += GGML_V1_FP16_TO_FP32(wdata[(ne + CACHE_LINE_SIZE_F32)*k + i]); } } @@ -4813,9 +4813,9 @@ static void ggml_compute_forward_mul_mat_f16_f32( if (nb01 >= nb00) { // fp16 -> half the size, so divide by 2 // TODO: do not support transposed src1 - assert(nb10/2 == sizeof(ggml_fp16_t)); + assert(nb10/2 == sizeof(ggml_v1_fp16_t)); - // parallelize by src0 rows using ggml_vec_dot_f16 + // parallelize by src0 rows using ggml_v1_vec_dot_f16 // total rows in src0 const int nr = ne01*ne02*ne03; @@ -4827,7 +4827,7 @@ static void ggml_compute_forward_mul_mat_f16_f32( const int ir0 = dr*ith; const int ir1 = MIN(ir0 + dr, nr); - ggml_fp16_t * wdata = params->wdata; + ggml_v1_fp16_t * wdata = params->wdata; for (int ir = ir0; ir < ir1; ++ir) { // src0 indices @@ -4842,19 +4842,19 @@ static void ggml_compute_forward_mul_mat_f16_f32( const int i2 = i02; const int i3 = i03; - ggml_fp16_t * src0_row = (ggml_fp16_t *) ((char *) src0->data + (i01*nb01 + i02*nb02 + i03*nb03)); - ggml_fp16_t * src1_col = wdata + ( 0 + i12*ne11 + i13*ne12*ne11)*ne00; + ggml_v1_fp16_t * src0_row = (ggml_v1_fp16_t *) ((char *) src0->data + (i01*nb01 + i02*nb02 + i03*nb03)); + ggml_v1_fp16_t * src1_col = wdata + ( 0 + i12*ne11 + i13*ne12*ne11)*ne00; float * dst_col = (float *) ((char *) dst->data + (i0*nb0 + 0*nb1 + i2*nb2 + i3*nb3)); assert(ne00 % 32 == 0); for (int ic = 0; ic < ne11; ++ic) { - ggml_vec_dot_f16(ne00, &dst_col[ic*ne0], src0_row, src1_col + ic*ne00); + ggml_v1_vec_dot_f16(ne00, &dst_col[ic*ne0], src0_row, src1_col + ic*ne00); } } } else { - // parallelize by src1 columns using ggml_vec_mad_f16 + // parallelize by src1 columns using ggml_v1_vec_mad_f16 // each thread has its own work data // during FINALIZE we accumulate all work data into dst @@ -4870,7 +4870,7 @@ static void ggml_compute_forward_mul_mat_f16_f32( // work data for thread const int wo = (ne + CACHE_LINE_SIZE_F32)*ith; - ggml_fp16_t * const wdata = params->wdata; + ggml_v1_fp16_t * const wdata = params->wdata; for (int i13 = 0; i13 < ne13; ++i13) { for (int i12 = 0; i12 < ne12; ++i12) { @@ -4880,7 +4880,7 @@ static void ggml_compute_forward_mul_mat_f16_f32( const int i2 = i12; const int i3 = i13; - ggml_fp16_t * dst_row = wdata + wo + i3*ne2*ne1*ne0 + i2*ne1*ne0 + i1*ne0; + ggml_v1_fp16_t * dst_row = wdata + wo + i3*ne2*ne1*ne0 + i2*ne1*ne0 + i1*ne0; for (int ic = ic0; ic < ic1; ++ic) { // src1 indices @@ -4891,19 +4891,19 @@ static void ggml_compute_forward_mul_mat_f16_f32( const int i02 = i12; const int i00 = ic; - assert(sizeof(ggml_fp16_t)*(wo + i3*ne2*ne1*ne0 + i2*ne1*ne0 + i1*ne0 + ne01) <= params->wsize); + assert(sizeof(ggml_v1_fp16_t)*(wo + i3*ne2*ne1*ne0 + i2*ne1*ne0 + i1*ne0 + ne01) <= params->wsize); - ggml_fp16_t * src0_col = (ggml_fp16_t *) ((char *) src0->data + (i00*nb00 + i02*nb02 + i03*nb03)); + ggml_v1_fp16_t * src0_col = (ggml_v1_fp16_t *) ((char *) src0->data + (i00*nb00 + i02*nb02 + i03*nb03)); float src1_val = * (float *) ((char *) src1->data + (i10*nb10 + i11*nb11 + i12*nb12 + i13*nb13)); - ggml_vec_mad_f16(ne01, dst_row, src0_col, src1_val); + ggml_v1_vec_mad_f16(ne01, dst_row, src0_col, src1_val); } } } } } - //int64_t t1 = ggml_time_us(); + //int64_t t1 = ggml_v1_time_us(); //static int64_t acc = 0; //acc += t1 - t0; //if (t1 - t0 > 10) { @@ -4916,43 +4916,43 @@ static void ggml_compute_forward_mul_mat_f16_f32( //} } -static void ggml_compute_forward_mul_mat( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_mul_mat( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F16: + case GGML_V1_TYPE_F16: { - ggml_compute_forward_mul_mat_f16_f32(params, src0, src1, dst); + ggml_v1_compute_forward_mul_mat_f16_f32(params, src0, src1, dst); } break; - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_mul_mat_f32(params, src0, src1, dst); + ggml_v1_compute_forward_mul_mat_f32(params, src0, src1, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_scale +// ggml_v1_compute_forward_scale -static void ggml_compute_forward_scale_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { - GGML_ASSERT(ggml_is_contiguous(src0)); - GGML_ASSERT(ggml_is_contiguous(dst)); - GGML_ASSERT(ggml_are_same_shape(src0, dst)); - GGML_ASSERT(ggml_is_scalar(src1)); +static void ggml_v1_compute_forward_scale_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { + GGML_V1_ASSERT(ggml_v1_is_contiguous(src0)); + GGML_V1_ASSERT(ggml_v1_is_contiguous(dst)); + GGML_V1_ASSERT(ggml_v1_are_same_shape(src0, dst)); + GGML_V1_ASSERT(ggml_v1_is_scalar(src1)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } @@ -4963,7 +4963,7 @@ static void ggml_compute_forward_scale_f32( const int nth = params->nth; const int nc = src0->ne[0]; - const int nr = ggml_nrows(src0); + const int nr = ggml_v1_nrows(src0); // rows per thread const int dr = (nr + nth - 1)/nth; @@ -4973,125 +4973,125 @@ static void ggml_compute_forward_scale_f32( const int ir1 = MIN(ir0 + dr, nr); for (int i1 = ir0; i1 < ir1; i1++) { - ggml_vec_scale_f32(nc, (float *) ((char *) dst->data + i1*(dst->nb[1])), v); + ggml_v1_vec_scale_f32(nc, (float *) ((char *) dst->data + i1*(dst->nb[1])), v); } } -static void ggml_compute_forward_scale( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_scale( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_scale_f32(params, src0, src1, dst); + ggml_v1_compute_forward_scale_f32(params, src0, src1, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_cpy +// ggml_v1_compute_forward_cpy -static void ggml_compute_forward_cpy( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { - ggml_compute_forward_dup(params, src0, dst); +static void ggml_v1_compute_forward_cpy( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { + ggml_v1_compute_forward_dup(params, src0, dst); } -// ggml_compute_forward_reshape +// ggml_v1_compute_forward_reshape -static void ggml_compute_forward_reshape( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_reshape( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { // NOP UNUSED(params); UNUSED(src0); UNUSED(dst); } -// ggml_compute_forward_view +// ggml_v1_compute_forward_view -static void ggml_compute_forward_view( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0) { +static void ggml_v1_compute_forward_view( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0) { // NOP UNUSED(params); UNUSED(src0); } -// ggml_compute_forward_permute +// ggml_v1_compute_forward_permute -static void ggml_compute_forward_permute( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0) { +static void ggml_v1_compute_forward_permute( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0) { // NOP UNUSED(params); UNUSED(src0); } -// ggml_compute_forward_transpose +// ggml_v1_compute_forward_transpose -static void ggml_compute_forward_transpose( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0) { +static void ggml_v1_compute_forward_transpose( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0) { // NOP UNUSED(params); UNUSED(src0); } -// ggml_compute_forward_get_rows +// ggml_v1_compute_forward_get_rows -static void ggml_compute_forward_get_rows_f16( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_get_rows_f16( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } const int nc = src0->ne[0]; - const int nr = ggml_nelements(src1); + const int nr = ggml_v1_nelements(src1); assert( dst->ne[0] == nc); assert( dst->ne[1] == nr); - assert(src0->nb[0] == sizeof(ggml_fp16_t)); + assert(src0->nb[0] == sizeof(ggml_v1_fp16_t)); for (int i = 0; i < nr; ++i) { const int r = ((int32_t *) src1->data)[i]; for (int j = 0; j < nc; ++j) { - ggml_fp16_t v = ((ggml_fp16_t *) ((char *) src0->data + r*src0->nb[1]))[j]; - ((float *) ((char *) dst->data + i*dst->nb[1]))[j] = GGML_FP16_TO_FP32(v); + ggml_v1_fp16_t v = ((ggml_v1_fp16_t *) ((char *) src0->data + r*src0->nb[1]))[j]; + ((float *) ((char *) dst->data + i*dst->nb[1]))[j] = GGML_V1_FP16_TO_FP32(v); } } } -static void ggml_compute_forward_get_rows_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_get_rows_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } const int nc = src0->ne[0]; - const int nr = ggml_nelements(src1); + const int nr = ggml_v1_nelements(src1); assert( dst->ne[0] == nc); assert( dst->ne[1] == nr); @@ -5100,48 +5100,48 @@ static void ggml_compute_forward_get_rows_f32( for (int i = 0; i < nr; ++i) { const int r = ((int32_t *) src1->data)[i]; - ggml_vec_cpy_f32(nc, + ggml_v1_vec_cpy_f32(nc, (float *) ((char *) dst->data + i*dst->nb[1]), (float *) ((char *) src0->data + r*src0->nb[1])); } } -static void ggml_compute_forward_get_rows( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_get_rows( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F16: + case GGML_V1_TYPE_F16: { - ggml_compute_forward_get_rows_f16(params, src0, src1, dst); + ggml_v1_compute_forward_get_rows_f16(params, src0, src1, dst); } break; - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_get_rows_f32(params, src0, src1, dst); + ggml_v1_compute_forward_get_rows_f32(params, src0, src1, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_diag_mask_inf +// ggml_v1_compute_forward_diag_mask_inf -static void ggml_compute_forward_diag_mask_inf_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_diag_mask_inf_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - assert(src1->type == GGML_TYPE_I32); - assert(ggml_nelements(src1) == 1); + assert(src1->type == GGML_V1_TYPE_I32); + assert(ggml_v1_nelements(src1) == 1); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } @@ -5149,7 +5149,7 @@ static void ggml_compute_forward_diag_mask_inf_f32( // TODO: handle transposed/permuted matrices - const int n = ggml_nrows(src0); + const int n = ggml_v1_nrows(src0); const int nc = src0->ne[0]; const int nr = src0->ne[1]; const int nz = n/nr; @@ -5168,38 +5168,38 @@ static void ggml_compute_forward_diag_mask_inf_f32( } } -static void ggml_compute_forward_diag_mask_inf( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_diag_mask_inf( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_diag_mask_inf_f32(params, src0, src1, dst); + ggml_v1_compute_forward_diag_mask_inf_f32(params, src0, src1, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_soft_max +// ggml_v1_compute_forward_soft_max -static void ggml_compute_forward_soft_max_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { - GGML_ASSERT(ggml_is_contiguous(src0)); - GGML_ASSERT(ggml_is_contiguous(dst)); - GGML_ASSERT(ggml_are_same_shape(src0, dst)); +static void ggml_v1_compute_forward_soft_max_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { + GGML_V1_ASSERT(ggml_v1_is_contiguous(src0)); + GGML_V1_ASSERT(ggml_v1_is_contiguous(dst)); + GGML_V1_ASSERT(ggml_v1_are_same_shape(src0, dst)); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } @@ -5209,7 +5209,7 @@ static void ggml_compute_forward_soft_max_f32( const int nth = params->nth; const int nc = src0->ne[0]; - const int nr = ggml_nrows(src0); + const int nr = ggml_v1_nrows(src0); // rows per thread const int dr = (nr + nth - 1)/nth; @@ -5228,9 +5228,9 @@ static void ggml_compute_forward_soft_max_f32( #endif float max = -INFINITY; - ggml_vec_max_f32(nc, &max, p); + ggml_v1_vec_max_f32(nc, &max, p); - ggml_float sum = 0.0; + ggml_v1_float sum = 0.0; uint16_t scvt; for (int i = 0; i < nc; i++) { @@ -5238,9 +5238,9 @@ static void ggml_compute_forward_soft_max_f32( p[i] = 0.0f; } else { //const float val = (p[i] == -INFINITY) ? 0.0 : exp(p[i] - max); - ggml_fp16_t s = GGML_FP32_TO_FP16(p[i] - max); + ggml_v1_fp16_t s = GGML_V1_FP32_TO_FP16(p[i] - max); memcpy(&scvt, &s, sizeof(scvt)); - const float val = GGML_FP16_TO_FP32(table_exp_f16[scvt]); + const float val = GGML_V1_FP16_TO_FP32(table_exp_f16[scvt]); sum += val; p[i] = val; } @@ -5249,7 +5249,7 @@ static void ggml_compute_forward_soft_max_f32( assert(sum > 0.0f); sum = 1.0/sum; - ggml_vec_scale_f32(nc, p, sum); + ggml_v1_vec_scale_f32(nc, p, sum); #ifndef NDEBUG for (int i = 0; i < nc; ++i) { @@ -5260,38 +5260,38 @@ static void ggml_compute_forward_soft_max_f32( } } -static void ggml_compute_forward_soft_max( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_soft_max( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_soft_max_f32(params, src0, dst); + ggml_v1_compute_forward_soft_max_f32(params, src0, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_rope +// ggml_v1_compute_forward_rope -static void ggml_compute_forward_rope_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_rope_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { assert(params->ith == 0); - assert(src1->type == GGML_TYPE_I32); - assert(ggml_nelements(src1) == 3); + assert(src1->type == GGML_V1_TYPE_I32); + assert(ggml_v1_nelements(src1) == 3); - if (params->type == GGML_TASK_INIT || params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_INIT || params->type == GGML_V1_TASK_FINALIZE) { return; } @@ -5339,39 +5339,39 @@ static void ggml_compute_forward_rope_f32( } } -static void ggml_compute_forward_rope( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_rope( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_rope_f32(params, src0, src1, dst); + ggml_v1_compute_forward_rope_f32(params, src0, src1, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_F16: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_F16: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_conv_1d_1s +// ggml_v1_compute_forward_conv_1d_1s -static void ggml_compute_forward_conv_1d_1s_f16_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { - GGML_ASSERT(src0->type == GGML_TYPE_F16); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - GGML_ASSERT( dst->type == GGML_TYPE_F32); +static void ggml_v1_compute_forward_conv_1d_1s_f16_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { + GGML_V1_ASSERT(src0->type == GGML_V1_TYPE_F16); + GGML_V1_ASSERT(src1->type == GGML_V1_TYPE_F32); + GGML_V1_ASSERT( dst->type == GGML_V1_TYPE_F32); - int64_t t0 = ggml_perf_time_us(); + int64_t t0 = ggml_v1_perf_time_us(); UNUSED(t0); const int ne00 = src0->ne[0]; @@ -5411,24 +5411,24 @@ static void ggml_compute_forward_conv_1d_1s_f16_f32( const int nk = ne00; const int nh = nk/2; - const int ew0 = ggml_up32(ne01); + const int ew0 = ggml_v1_up32(ne01); - GGML_ASSERT(ne00 % 2 == 1); // TODO: support even kernel sizes - GGML_ASSERT(nb00 == sizeof(ggml_fp16_t)); - GGML_ASSERT(nb10 == sizeof(float)); + GGML_V1_ASSERT(ne00 % 2 == 1); // TODO: support even kernel sizes + GGML_V1_ASSERT(nb00 == sizeof(ggml_v1_fp16_t)); + GGML_V1_ASSERT(nb10 == sizeof(float)); - if (params->type == GGML_TASK_INIT) { + if (params->type == GGML_V1_TASK_INIT) { // TODO: fix this memset (wsize is overestimated) memset(params->wdata, 0, params->wsize); // prepare kernel data (src0) { - ggml_fp16_t * const wdata = (ggml_fp16_t *) params->wdata + 0; + ggml_v1_fp16_t * const wdata = (ggml_v1_fp16_t *) params->wdata + 0; for (int i02 = 0; i02 < ne02; i02++) { for (int i01 = 0; i01 < ne01; i01++) { - const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i02*nb02 + i01*nb01); - ggml_fp16_t * dst_data = wdata + i02*ew0*ne00; + const ggml_v1_fp16_t * const src = (ggml_v1_fp16_t *)((char *) src0->data + i02*nb02 + i01*nb01); + ggml_v1_fp16_t * dst_data = wdata + i02*ew0*ne00; for (int i00 = 0; i00 < ne00; i00++) { dst_data[i00*ew0 + i01] = src[i00]; } @@ -5438,13 +5438,13 @@ static void ggml_compute_forward_conv_1d_1s_f16_f32( // prepare source data (src1) { - ggml_fp16_t * const wdata = (ggml_fp16_t *) params->wdata + ne02*ew0*ne00; + ggml_v1_fp16_t * const wdata = (ggml_v1_fp16_t *) params->wdata + ne02*ew0*ne00; for (int i11 = 0; i11 < ne11; i11++) { const float * const src = (float *)((char *) src1->data + i11*nb11); - ggml_fp16_t * dst_data = wdata; + ggml_v1_fp16_t * dst_data = wdata; for (int i10 = 0; i10 < ne10; i10++) { - dst_data[(i10 + nh)*ew0 + i11] = GGML_FP32_TO_FP16(src[i10]); + dst_data[(i10 + nh)*ew0 + i11] = GGML_V1_FP32_TO_FP16(src[i10]); } } } @@ -5452,7 +5452,7 @@ static void ggml_compute_forward_conv_1d_1s_f16_f32( return; } - if (params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_FINALIZE) { return; } @@ -5472,9 +5472,9 @@ static void ggml_compute_forward_conv_1d_1s_f16_f32( dst_data[i0] = 0; for (int k = -nh; k <= nh; k++) { float v = 0.0f; - ggml_vec_dot_f16(ew0, &v, - (ggml_fp16_t *) params->wdata + i1*ew0*ne00 + (nh + k)*ew0, - (ggml_fp16_t *) params->wdata + ne02*ew0*ne00 + (i0 + nh + k)*ew0); + ggml_v1_vec_dot_f16(ew0, &v, + (ggml_v1_fp16_t *) params->wdata + i1*ew0*ne00 + (nh + k)*ew0, + (ggml_v1_fp16_t *) params->wdata + ne02*ew0*ne00 + (i0 + nh + k)*ew0); dst_data[i0] += v; } @@ -5482,16 +5482,16 @@ static void ggml_compute_forward_conv_1d_1s_f16_f32( } } -static void ggml_compute_forward_conv_1d_1s_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { - GGML_ASSERT(src0->type == GGML_TYPE_F32); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - GGML_ASSERT( dst->type == GGML_TYPE_F32); +static void ggml_v1_compute_forward_conv_1d_1s_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { + GGML_V1_ASSERT(src0->type == GGML_V1_TYPE_F32); + GGML_V1_ASSERT(src1->type == GGML_V1_TYPE_F32); + GGML_V1_ASSERT( dst->type == GGML_V1_TYPE_F32); - int64_t t0 = ggml_perf_time_us(); + int64_t t0 = ggml_v1_perf_time_us(); UNUSED(t0); const int ne00 = src0->ne[0]; @@ -5531,13 +5531,13 @@ static void ggml_compute_forward_conv_1d_1s_f32( const int nk = ne00; const int nh = nk/2; - const int ew0 = ggml_up32(ne01); + const int ew0 = ggml_v1_up32(ne01); - GGML_ASSERT(ne00 % 2 == 1); // TODO: support even kernel sizes - GGML_ASSERT(nb00 == sizeof(float)); - GGML_ASSERT(nb10 == sizeof(float)); + GGML_V1_ASSERT(ne00 % 2 == 1); // TODO: support even kernel sizes + GGML_V1_ASSERT(nb00 == sizeof(float)); + GGML_V1_ASSERT(nb10 == sizeof(float)); - if (params->type == GGML_TASK_INIT) { + if (params->type == GGML_V1_TASK_INIT) { // TODO: fix this memset (wsize is overestimated) memset(params->wdata, 0, params->wsize); @@ -5572,7 +5572,7 @@ static void ggml_compute_forward_conv_1d_1s_f32( return; } - if (params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_FINALIZE) { return; } @@ -5592,7 +5592,7 @@ static void ggml_compute_forward_conv_1d_1s_f32( dst_data[i0] = 0; for (int k = -nh; k <= nh; k++) { float v = 0.0f; - ggml_vec_dot_f32(ew0, &v, + ggml_v1_vec_dot_f32(ew0, &v, (float *) params->wdata + i1*ew0*ne00 + (nh + k)*ew0, (float *) params->wdata + ne02*ew0*ne00 + (i0 + nh + k)*ew0); @@ -5602,42 +5602,42 @@ static void ggml_compute_forward_conv_1d_1s_f32( } } -static void ggml_compute_forward_conv_1d_1s( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_conv_1d_1s( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F16: + case GGML_V1_TYPE_F16: { - ggml_compute_forward_conv_1d_1s_f16_f32(params, src0, src1, dst); + ggml_v1_compute_forward_conv_1d_1s_f16_f32(params, src0, src1, dst); } break; - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_conv_1d_1s_f32(params, src0, src1, dst); + ggml_v1_compute_forward_conv_1d_1s_f32(params, src0, src1, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_COUNT: { - GGML_ASSERT(false); + GGML_V1_ASSERT(false); } break; } } -// ggml_compute_forward_conv_1d_2s +// ggml_v1_compute_forward_conv_1d_2s -static void ggml_compute_forward_conv_1d_2s_f16_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { - GGML_ASSERT(src0->type == GGML_TYPE_F16); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - GGML_ASSERT( dst->type == GGML_TYPE_F32); +static void ggml_v1_compute_forward_conv_1d_2s_f16_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { + GGML_V1_ASSERT(src0->type == GGML_V1_TYPE_F16); + GGML_V1_ASSERT(src1->type == GGML_V1_TYPE_F32); + GGML_V1_ASSERT( dst->type == GGML_V1_TYPE_F32); - int64_t t0 = ggml_perf_time_us(); + int64_t t0 = ggml_v1_perf_time_us(); UNUSED(t0); const int ne00 = src0->ne[0]; @@ -5677,24 +5677,24 @@ static void ggml_compute_forward_conv_1d_2s_f16_f32( const int nk = ne00; const int nh = nk/2; - const int ew0 = ggml_up32(ne01); + const int ew0 = ggml_v1_up32(ne01); - GGML_ASSERT(ne00 % 2 == 1); // TODO: support even kernel sizes - GGML_ASSERT(nb00 == sizeof(ggml_fp16_t)); - GGML_ASSERT(nb10 == sizeof(float)); + GGML_V1_ASSERT(ne00 % 2 == 1); // TODO: support even kernel sizes + GGML_V1_ASSERT(nb00 == sizeof(ggml_v1_fp16_t)); + GGML_V1_ASSERT(nb10 == sizeof(float)); - if (params->type == GGML_TASK_INIT) { + if (params->type == GGML_V1_TASK_INIT) { // TODO: fix this memset (wsize is overestimated) memset(params->wdata, 0, params->wsize); // prepare kernel data (src0) { - ggml_fp16_t * const wdata = (ggml_fp16_t *) params->wdata + 0; + ggml_v1_fp16_t * const wdata = (ggml_v1_fp16_t *) params->wdata + 0; for (int i02 = 0; i02 < ne02; i02++) { for (int i01 = 0; i01 < ne01; i01++) { - const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i02*nb02 + i01*nb01); - ggml_fp16_t * dst_data = wdata + i02*ew0*ne00; + const ggml_v1_fp16_t * const src = (ggml_v1_fp16_t *)((char *) src0->data + i02*nb02 + i01*nb01); + ggml_v1_fp16_t * dst_data = wdata + i02*ew0*ne00; for (int i00 = 0; i00 < ne00; i00++) { dst_data[i00*ew0 + i01] = src[i00]; } @@ -5704,13 +5704,13 @@ static void ggml_compute_forward_conv_1d_2s_f16_f32( // prepare source data (src1) { - ggml_fp16_t * const wdata = (ggml_fp16_t *) params->wdata + ne02*ew0*ne00; + ggml_v1_fp16_t * const wdata = (ggml_v1_fp16_t *) params->wdata + ne02*ew0*ne00; for (int i11 = 0; i11 < ne11; i11++) { const float * const src = (float *)((char *) src1->data + i11*nb11); - ggml_fp16_t * dst_data = wdata; + ggml_v1_fp16_t * dst_data = wdata; for (int i10 = 0; i10 < ne10; i10++) { - dst_data[(i10 + nh)*ew0 + i11] = GGML_FP32_TO_FP16(src[i10]); + dst_data[(i10 + nh)*ew0 + i11] = GGML_V1_FP32_TO_FP16(src[i10]); } } } @@ -5718,7 +5718,7 @@ static void ggml_compute_forward_conv_1d_2s_f16_f32( return; } - if (params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_FINALIZE) { return; } @@ -5738,9 +5738,9 @@ static void ggml_compute_forward_conv_1d_2s_f16_f32( dst_data[i0/2] = 0; for (int k = -nh; k <= nh; k++) { float v = 0.0f; - ggml_vec_dot_f16(ew0, &v, - (ggml_fp16_t *) params->wdata + i1*ew0*ne00 + (nh + k)*ew0, - (ggml_fp16_t *) params->wdata + ne02*ew0*ne00 + (i0 + nh + k)*ew0); + ggml_v1_vec_dot_f16(ew0, &v, + (ggml_v1_fp16_t *) params->wdata + i1*ew0*ne00 + (nh + k)*ew0, + (ggml_v1_fp16_t *) params->wdata + ne02*ew0*ne00 + (i0 + nh + k)*ew0); dst_data[i0/2] += v; } @@ -5748,16 +5748,16 @@ static void ggml_compute_forward_conv_1d_2s_f16_f32( } } -static void ggml_compute_forward_conv_1d_2s_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { - GGML_ASSERT(src0->type == GGML_TYPE_F32); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - GGML_ASSERT( dst->type == GGML_TYPE_F32); +static void ggml_v1_compute_forward_conv_1d_2s_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { + GGML_V1_ASSERT(src0->type == GGML_V1_TYPE_F32); + GGML_V1_ASSERT(src1->type == GGML_V1_TYPE_F32); + GGML_V1_ASSERT( dst->type == GGML_V1_TYPE_F32); - int64_t t0 = ggml_perf_time_us(); + int64_t t0 = ggml_v1_perf_time_us(); UNUSED(t0); const int ne00 = src0->ne[0]; @@ -5797,13 +5797,13 @@ static void ggml_compute_forward_conv_1d_2s_f32( const int nk = ne00; const int nh = nk/2; - const int ew0 = ggml_up32(ne01); + const int ew0 = ggml_v1_up32(ne01); - GGML_ASSERT(ne00 % 2 == 1); // TODO: support even kernel sizes - GGML_ASSERT(nb00 == sizeof(float)); - GGML_ASSERT(nb10 == sizeof(float)); + GGML_V1_ASSERT(ne00 % 2 == 1); // TODO: support even kernel sizes + GGML_V1_ASSERT(nb00 == sizeof(float)); + GGML_V1_ASSERT(nb10 == sizeof(float)); - if (params->type == GGML_TASK_INIT) { + if (params->type == GGML_V1_TASK_INIT) { // TODO: fix this memset (wsize is overestimated) memset(params->wdata, 0, params->wsize); @@ -5838,7 +5838,7 @@ static void ggml_compute_forward_conv_1d_2s_f32( return; } - if (params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_FINALIZE) { return; } @@ -5858,7 +5858,7 @@ static void ggml_compute_forward_conv_1d_2s_f32( dst_data[i0/2] = 0; for (int k = -nh; k <= nh; k++) { float v = 0.0f; - ggml_vec_dot_f32(ew0, &v, + ggml_v1_vec_dot_f32(ew0, &v, (float *) params->wdata + i1*ew0*ne00 + (nh + k)*ew0, (float *) params->wdata + ne02*ew0*ne00 + (i0 + nh + k)*ew0); @@ -5868,40 +5868,40 @@ static void ggml_compute_forward_conv_1d_2s_f32( } } -static void ggml_compute_forward_conv_1d_2s( - const struct ggml_compute_params * params, - const struct ggml_tensor * src0, - const struct ggml_tensor * src1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_conv_1d_2s( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * src0, + const struct ggml_v1_tensor * src1, + struct ggml_v1_tensor * dst) { switch (src0->type) { - case GGML_TYPE_F16: + case GGML_V1_TYPE_F16: { - ggml_compute_forward_conv_1d_2s_f16_f32(params, src0, src1, dst); + ggml_v1_compute_forward_conv_1d_2s_f16_f32(params, src0, src1, dst); } break; - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_conv_1d_2s_f32(params, src0, src1, dst); + ggml_v1_compute_forward_conv_1d_2s_f32(params, src0, src1, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_COUNT: { - GGML_ASSERT(false); + GGML_V1_ASSERT(false); } break; } } -// ggml_compute_forward_flash_attn +// ggml_v1_compute_forward_flash_attn -static void ggml_compute_forward_flash_attn_f32( - const struct ggml_compute_params * params, - const struct ggml_tensor * q, - const struct ggml_tensor * k, - const struct ggml_tensor * v, +static void ggml_v1_compute_forward_flash_attn_f32( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * q, + const struct ggml_v1_tensor * k, + const struct ggml_v1_tensor * v, const bool masked, - struct ggml_tensor * dst) { - int64_t t0 = ggml_perf_time_us(); + struct ggml_v1_tensor * dst) { + int64_t t0 = ggml_v1_perf_time_us(); UNUSED(t0); const int neq0 = q->ne[0]; @@ -5952,39 +5952,39 @@ static void ggml_compute_forward_flash_attn_f32( const int P = nek1 - N; const int M = P + N; - const int Mup = ggml_up(M, GGML_SOFT_MAX_UNROLL); + const int Mup = ggml_v1_up(M, GGML_V1_SOFT_MAX_UNROLL); - GGML_ASSERT(ne0 == D); - GGML_ASSERT(ne1 == N); - GGML_ASSERT(P >= 0); + GGML_V1_ASSERT(ne0 == D); + GGML_V1_ASSERT(ne1 == N); + GGML_V1_ASSERT(P >= 0); - GGML_ASSERT(nbq0 == sizeof(float)); - GGML_ASSERT(nbk0 == sizeof(float)); - GGML_ASSERT(nbv0 == sizeof(float)); + GGML_V1_ASSERT(nbq0 == sizeof(float)); + GGML_V1_ASSERT(nbk0 == sizeof(float)); + GGML_V1_ASSERT(nbv0 == sizeof(float)); - GGML_ASSERT(neq0 == D); - GGML_ASSERT(nek0 == D); - GGML_ASSERT(nev1 == D); + GGML_V1_ASSERT(neq0 == D); + GGML_V1_ASSERT(nek0 == D); + GGML_V1_ASSERT(nev1 == D); - GGML_ASSERT(neq1 == N); - GGML_ASSERT(nek1 == N + P); - GGML_ASSERT(nev1 == D); + GGML_V1_ASSERT(neq1 == N); + GGML_V1_ASSERT(nek1 == N + P); + GGML_V1_ASSERT(nev1 == D); // dst cannot be transposed or permuted - GGML_ASSERT(nb0 == sizeof(float)); - GGML_ASSERT(nb0 <= nb1); - GGML_ASSERT(nb1 <= nb2); - GGML_ASSERT(nb2 <= nb3); + GGML_V1_ASSERT(nb0 == sizeof(float)); + GGML_V1_ASSERT(nb0 <= nb1); + GGML_V1_ASSERT(nb1 <= nb2); + GGML_V1_ASSERT(nb2 <= nb3); - if (params->type == GGML_TASK_INIT) { + if (params->type == GGML_V1_TASK_INIT) { return; } - if (params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_FINALIZE) { return; } - // parallelize by q rows using ggml_vec_dot_f32 + // parallelize by q rows using ggml_v1_vec_dot_f32 // total rows in q const int nr = neq1*neq2*neq3; @@ -6021,14 +6021,14 @@ static void ggml_compute_forward_flash_attn_f32( // S indices const int i1 = ik1; - ggml_vec_dot_f32(neq0, + ggml_v1_vec_dot_f32(neq0, S + i1, (float *) ((char *) k->data + (ik1*nbk1 + ik2*nbk2 + ik3*nbk3)), (float *) ((char *) q->data + (iq1*nbq1 + iq2*nbq2 + iq3*nbq3))); } // scale - ggml_vec_scale_f32(nek1, S, scale); + ggml_v1_vec_scale_f32(nek1, S, scale); if (masked) { for (int i = P; i < M; i++) { @@ -6041,36 +6041,36 @@ static void ggml_compute_forward_flash_attn_f32( // softmax { float max = -INFINITY; - ggml_vec_max_f32(M, &max, S); + ggml_v1_vec_max_f32(M, &max, S); float sum = 0.0f; { -#ifdef GGML_SOFT_MAX_ACCELERATE +#ifdef GGML_V1_SOFT_MAX_ACCELERATE max = -max; vDSP_vsadd(S, 1, &max, S, 1, Mup); vvexpf(S, S, &Mup); - ggml_vec_sum_f32(Mup, &sum, S); + ggml_v1_vec_sum_f32(Mup, &sum, S); #else - uint16_t scvt[GGML_SOFT_MAX_UNROLL]; - ggml_float sump[GGML_SOFT_MAX_UNROLL] = { 0.0 }; + uint16_t scvt[GGML_V1_SOFT_MAX_UNROLL]; + ggml_v1_float sump[GGML_V1_SOFT_MAX_UNROLL] = { 0.0 }; - for (int i = 0; i < Mup; i += GGML_SOFT_MAX_UNROLL) { + for (int i = 0; i < Mup; i += GGML_V1_SOFT_MAX_UNROLL) { float * SS = S + i; - for (int j = 0; j < GGML_SOFT_MAX_UNROLL; ++j) { + for (int j = 0; j < GGML_V1_SOFT_MAX_UNROLL; ++j) { if (SS[j] == -INFINITY) { SS[j] = 0.0f; } else { - ggml_fp16_t s = GGML_FP32_TO_FP16(SS[j] - max); + ggml_v1_fp16_t s = GGML_V1_FP32_TO_FP16(SS[j] - max); memcpy(&scvt[j], &s, sizeof(uint16_t)); - const float val = GGML_FP16_TO_FP32(table_exp_f16[scvt[j]]); + const float val = GGML_V1_FP16_TO_FP32(table_exp_f16[scvt[j]]); sump[j] += val; SS[j] = val; } } } - for (int i = 0; i < GGML_SOFT_MAX_UNROLL; i++) { + for (int i = 0; i < GGML_V1_SOFT_MAX_UNROLL; i++) { sum += sump[i]; } #endif @@ -6079,7 +6079,7 @@ static void ggml_compute_forward_flash_attn_f32( assert(sum > 0.0f); sum = 1.0/sum; - ggml_vec_scale_f32(M, S, sum); + ggml_v1_vec_scale_f32(M, S, sum); #ifndef NDEBUG for (int i = 0; i < M; ++i) { @@ -6095,7 +6095,7 @@ static void ggml_compute_forward_flash_attn_f32( const int i2 = iq2; const int i3 = iq3; - ggml_vec_dot_f32(nek1, + ggml_v1_vec_dot_f32(nek1, (float *) ((char *) dst->data + (ic*nb0 + i1*nb1 + i2*nb2 + i3*nb3)), (float *) ((char *) v->data + ( ic*nbv1 + i2*nbv2 + i3*nbv3)), S); @@ -6103,14 +6103,14 @@ static void ggml_compute_forward_flash_attn_f32( } } -static void ggml_compute_forward_flash_attn_f16( - const struct ggml_compute_params * params, - const struct ggml_tensor * q, - const struct ggml_tensor * k, - const struct ggml_tensor * v, +static void ggml_v1_compute_forward_flash_attn_f16( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * q, + const struct ggml_v1_tensor * k, + const struct ggml_v1_tensor * v, const bool masked, - struct ggml_tensor * dst) { - int64_t t0 = ggml_perf_time_us(); + struct ggml_v1_tensor * dst) { + int64_t t0 = ggml_v1_perf_time_us(); UNUSED(t0); const int neq0 = q->ne[0]; @@ -6161,39 +6161,39 @@ static void ggml_compute_forward_flash_attn_f16( const int P = nek1 - N; const int M = P + N; - const int Mup = ggml_up(M, GGML_SOFT_MAX_UNROLL); + const int Mup = ggml_v1_up(M, GGML_V1_SOFT_MAX_UNROLL); - GGML_ASSERT(ne0 == D); - GGML_ASSERT(ne1 == N); - GGML_ASSERT(P >= 0); + GGML_V1_ASSERT(ne0 == D); + GGML_V1_ASSERT(ne1 == N); + GGML_V1_ASSERT(P >= 0); - GGML_ASSERT(nbq0 == sizeof(ggml_fp16_t)); - GGML_ASSERT(nbk0 == sizeof(ggml_fp16_t)); - GGML_ASSERT(nbv0 == sizeof(ggml_fp16_t)); + GGML_V1_ASSERT(nbq0 == sizeof(ggml_v1_fp16_t)); + GGML_V1_ASSERT(nbk0 == sizeof(ggml_v1_fp16_t)); + GGML_V1_ASSERT(nbv0 == sizeof(ggml_v1_fp16_t)); - GGML_ASSERT(neq0 == D); - GGML_ASSERT(nek0 == D); - GGML_ASSERT(nev1 == D); + GGML_V1_ASSERT(neq0 == D); + GGML_V1_ASSERT(nek0 == D); + GGML_V1_ASSERT(nev1 == D); - GGML_ASSERT(neq1 == N); - GGML_ASSERT(nek1 == N + P); - GGML_ASSERT(nev1 == D); + GGML_V1_ASSERT(neq1 == N); + GGML_V1_ASSERT(nek1 == N + P); + GGML_V1_ASSERT(nev1 == D); // dst cannot be transposed or permuted - GGML_ASSERT(nb0 == sizeof(float)); - GGML_ASSERT(nb0 <= nb1); - GGML_ASSERT(nb1 <= nb2); - GGML_ASSERT(nb2 <= nb3); + GGML_V1_ASSERT(nb0 == sizeof(float)); + GGML_V1_ASSERT(nb0 <= nb1); + GGML_V1_ASSERT(nb1 <= nb2); + GGML_V1_ASSERT(nb2 <= nb3); - if (params->type == GGML_TASK_INIT) { + if (params->type == GGML_V1_TASK_INIT) { return; } - if (params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_FINALIZE) { return; } - // parallelize by q rows using ggml_vec_dot_f32 + // parallelize by q rows using ggml_v1_vec_dot_f32 // total rows in q const int nr = neq1*neq2*neq3; @@ -6221,7 +6221,7 @@ static void ggml_compute_forward_flash_attn_f16( S[i] = -INFINITY; } - if (GGML_VEC_DOT_UNROLL > 2 || nek1 % GGML_VEC_DOT_UNROLL != 0) { + if (GGML_V1_VEC_DOT_UNROLL > 2 || nek1 % GGML_V1_VEC_DOT_UNROLL != 0) { for (int ic = 0; ic < nek1; ++ic) { // k indices const int ik3 = iq3; @@ -6231,13 +6231,13 @@ static void ggml_compute_forward_flash_attn_f16( // S indices const int i1 = ik1; - ggml_vec_dot_f16(neq0, + ggml_v1_vec_dot_f16(neq0, S + i1, - (ggml_fp16_t *) ((char *) k->data + (ik1*nbk1 + ik2*nbk2 + ik3*nbk3)), - (ggml_fp16_t *) ((char *) q->data + (iq1*nbq1 + iq2*nbq2 + iq3*nbq3))); + (ggml_v1_fp16_t *) ((char *) k->data + (ik1*nbk1 + ik2*nbk2 + ik3*nbk3)), + (ggml_v1_fp16_t *) ((char *) q->data + (iq1*nbq1 + iq2*nbq2 + iq3*nbq3))); } } else { - for (int ic = 0; ic < nek1; ic += GGML_VEC_DOT_UNROLL) { + for (int ic = 0; ic < nek1; ic += GGML_V1_VEC_DOT_UNROLL) { // k indices const int ik3 = iq3; const int ik2 = iq2; @@ -6246,15 +6246,15 @@ static void ggml_compute_forward_flash_attn_f16( // S indices const int i1 = ik1; - ggml_vec_dot_f16_unroll(neq0, nbk1, + ggml_v1_vec_dot_f16_unroll(neq0, nbk1, S + i1, ((char *) k->data + (ik1*nbk1 + ik2*nbk2 + ik3*nbk3)), - (ggml_fp16_t *) ((char *) q->data + (iq1*nbq1 + iq2*nbq2 + iq3*nbq3))); + (ggml_v1_fp16_t *) ((char *) q->data + (iq1*nbq1 + iq2*nbq2 + iq3*nbq3))); } } // scale - ggml_vec_scale_f32(nek1, S, scale); + ggml_v1_vec_scale_f32(nek1, S, scale); if (masked) { for (int i = P; i < M; i++) { @@ -6267,36 +6267,36 @@ static void ggml_compute_forward_flash_attn_f16( // softmax { float max = -INFINITY; - ggml_vec_max_f32(M, &max, S); + ggml_v1_vec_max_f32(M, &max, S); float sum = 0.0f; { -#ifdef GGML_SOFT_MAX_ACCELERATE +#ifdef GGML_V1_SOFT_MAX_ACCELERATE max = -max; vDSP_vsadd(S, 1, &max, S, 1, Mup); vvexpf(S, S, &Mup); - ggml_vec_sum_f32(Mup, &sum, S); + ggml_v1_vec_sum_f32(Mup, &sum, S); #else - uint16_t scvt[GGML_SOFT_MAX_UNROLL]; - ggml_float sump[GGML_SOFT_MAX_UNROLL] = { 0.0 }; + uint16_t scvt[GGML_V1_SOFT_MAX_UNROLL]; + ggml_v1_float sump[GGML_V1_SOFT_MAX_UNROLL] = { 0.0 }; - for (int i = 0; i < Mup; i += GGML_SOFT_MAX_UNROLL) { + for (int i = 0; i < Mup; i += GGML_V1_SOFT_MAX_UNROLL) { float * SS = S + i; - for (int j = 0; j < GGML_SOFT_MAX_UNROLL; ++j) { + for (int j = 0; j < GGML_V1_SOFT_MAX_UNROLL; ++j) { if (SS[j] == -INFINITY) { SS[j] = 0.0f; } else { - ggml_fp16_t s = GGML_FP32_TO_FP16(SS[j] - max); + ggml_v1_fp16_t s = GGML_V1_FP32_TO_FP16(SS[j] - max); memcpy(&scvt[j], &s, sizeof(uint16_t)); - const float val = GGML_FP16_TO_FP32(table_exp_f16[scvt[j]]); + const float val = GGML_V1_FP16_TO_FP32(table_exp_f16[scvt[j]]); sump[j] += val; SS[j] = val; } } } - for (int i = 0; i < GGML_SOFT_MAX_UNROLL; i++) { + for (int i = 0; i < GGML_V1_SOFT_MAX_UNROLL; i++) { sum += sump[i]; } #endif @@ -6305,7 +6305,7 @@ static void ggml_compute_forward_flash_attn_f16( assert(sum > 0.0f); sum = 1.0/sum; - ggml_vec_scale_f32(M, S, sum); + ggml_v1_vec_scale_f32(M, S, sum); #ifndef NDEBUG for (int i = 0; i < M; ++i) { @@ -6315,32 +6315,32 @@ static void ggml_compute_forward_flash_attn_f16( #endif } - ggml_fp16_t * S16 = (ggml_fp16_t *) ((float *) params->wdata + ith*(2*Mup + CACHE_LINE_SIZE_F32) + Mup); + ggml_v1_fp16_t * S16 = (ggml_v1_fp16_t *) ((float *) params->wdata + ith*(2*Mup + CACHE_LINE_SIZE_F32) + Mup); for (int i = 0; i < M; i++) { - S16[i] = GGML_FP32_TO_FP16(S[i]); + S16[i] = GGML_V1_FP32_TO_FP16(S[i]); } - if (GGML_VEC_DOT_UNROLL == 1 || (nev1 % GGML_VEC_DOT_UNROLL != 0)) { + if (GGML_V1_VEC_DOT_UNROLL == 1 || (nev1 % GGML_V1_VEC_DOT_UNROLL != 0)) { for (int ic = 0; ic < nev1; ++ic) { // dst indices const int i1 = iq1; const int i2 = iq2; const int i3 = iq3; - ggml_vec_dot_f16(nek1, + ggml_v1_vec_dot_f16(nek1, (float *) ((char *) dst->data + (ic*nb0 + i1*nb1 + i2*nb2 + i3*nb3)), - (ggml_fp16_t *) ((char *) v->data + ( ic*nbv1 + i2*nbv2 + i3*nbv3)), + (ggml_v1_fp16_t *) ((char *) v->data + ( ic*nbv1 + i2*nbv2 + i3*nbv3)), S16); } } else { - for (int ic = 0; ic < nev1; ic += GGML_VEC_DOT_UNROLL) { + for (int ic = 0; ic < nev1; ic += GGML_V1_VEC_DOT_UNROLL) { // dst indices const int i1 = iq1; const int i2 = iq2; const int i3 = iq3; - ggml_vec_dot_f16_unroll(nek1, nbv1, + ggml_v1_vec_dot_f16_unroll(nek1, nbv1, (float *) ((char *) dst->data + (ic*nb0 + i1*nb1 + i2*nb2 + i3*nb3)), ((char *) v->data + ( ic*nbv1 + i2*nbv2 + i3*nbv3)), S16); @@ -6349,43 +6349,43 @@ static void ggml_compute_forward_flash_attn_f16( } } -static void ggml_compute_forward_flash_attn( - const struct ggml_compute_params * params, - const struct ggml_tensor * q, - const struct ggml_tensor * k, - const struct ggml_tensor * v, +static void ggml_v1_compute_forward_flash_attn( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * q, + const struct ggml_v1_tensor * k, + const struct ggml_v1_tensor * v, const bool masked, - struct ggml_tensor * dst) { + struct ggml_v1_tensor * dst) { switch (q->type) { - case GGML_TYPE_F16: + case GGML_V1_TYPE_F16: { - ggml_compute_forward_flash_attn_f16(params, q, k, v, masked, dst); + ggml_v1_compute_forward_flash_attn_f16(params, q, k, v, masked, dst); } break; - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - ggml_compute_forward_flash_attn_f32(params, q, k, v, masked, dst); + ggml_v1_compute_forward_flash_attn_f32(params, q, k, v, masked, dst); } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_COUNT: { assert(false); } break; } } -// ggml_compute_forward_flash_ff +// ggml_v1_compute_forward_flash_ff -static void ggml_compute_forward_flash_ff_f16( - const struct ggml_compute_params * params, - const struct ggml_tensor * a, // F16 - const struct ggml_tensor * b0, // F16 fc_w - const struct ggml_tensor * b1, // F32 fc_b - const struct ggml_tensor * c0, // F16 proj_w - const struct ggml_tensor * c1, // F32 proj_b - struct ggml_tensor * dst) { - int64_t t0 = ggml_perf_time_us(); +static void ggml_v1_compute_forward_flash_ff_f16( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * a, // F16 + const struct ggml_v1_tensor * b0, // F16 fc_w + const struct ggml_v1_tensor * b1, // F32 fc_b + const struct ggml_v1_tensor * c0, // F16 proj_w + const struct ggml_v1_tensor * c1, // F32 proj_b + struct ggml_v1_tensor * dst) { + int64_t t0 = ggml_v1_perf_time_us(); UNUSED(t0); const int nea0 = a->ne[0]; @@ -6455,41 +6455,41 @@ static void ggml_compute_forward_flash_ff_f16( //const int N = nea1; const int M = neb01; - GGML_ASSERT(ne0 == nea0); - GGML_ASSERT(ne1 == nea1); - GGML_ASSERT(ne2 == nea2); + GGML_V1_ASSERT(ne0 == nea0); + GGML_V1_ASSERT(ne1 == nea1); + GGML_V1_ASSERT(ne2 == nea2); - GGML_ASSERT(nba0 == sizeof(ggml_fp16_t)); - GGML_ASSERT(nbb00 == sizeof(ggml_fp16_t)); - GGML_ASSERT(nbb10 == sizeof(float)); - GGML_ASSERT(nbc00 == sizeof(ggml_fp16_t)); - GGML_ASSERT(nbc10 == sizeof(float)); + GGML_V1_ASSERT(nba0 == sizeof(ggml_v1_fp16_t)); + GGML_V1_ASSERT(nbb00 == sizeof(ggml_v1_fp16_t)); + GGML_V1_ASSERT(nbb10 == sizeof(float)); + GGML_V1_ASSERT(nbc00 == sizeof(ggml_v1_fp16_t)); + GGML_V1_ASSERT(nbc10 == sizeof(float)); - GGML_ASSERT(neb00 == D); - GGML_ASSERT(neb01 == M); - GGML_ASSERT(neb10 == M); - GGML_ASSERT(neb11 == 1); + GGML_V1_ASSERT(neb00 == D); + GGML_V1_ASSERT(neb01 == M); + GGML_V1_ASSERT(neb10 == M); + GGML_V1_ASSERT(neb11 == 1); - GGML_ASSERT(nec00 == M); - GGML_ASSERT(nec01 == D); - GGML_ASSERT(nec10 == D); - GGML_ASSERT(nec11 == 1); + GGML_V1_ASSERT(nec00 == M); + GGML_V1_ASSERT(nec01 == D); + GGML_V1_ASSERT(nec10 == D); + GGML_V1_ASSERT(nec11 == 1); // dst cannot be transposed or permuted - GGML_ASSERT(nb0 == sizeof(float)); - GGML_ASSERT(nb0 <= nb1); - GGML_ASSERT(nb1 <= nb2); - GGML_ASSERT(nb2 <= nb3); + GGML_V1_ASSERT(nb0 == sizeof(float)); + GGML_V1_ASSERT(nb0 <= nb1); + GGML_V1_ASSERT(nb1 <= nb2); + GGML_V1_ASSERT(nb2 <= nb3); - if (params->type == GGML_TASK_INIT) { + if (params->type == GGML_V1_TASK_INIT) { return; } - if (params->type == GGML_TASK_FINALIZE) { + if (params->type == GGML_V1_TASK_FINALIZE) { return; } - // parallelize by a rows using ggml_vec_dot_f32 + // parallelize by a rows using ggml_v1_vec_dot_f32 // total rows in a const int nr = nea1*nea2*nea3; @@ -6518,22 +6518,22 @@ static void ggml_compute_forward_flash_ff_f16( // S indices const int i1 = ib01; - ggml_vec_dot_f16(nea0, + ggml_v1_vec_dot_f16(nea0, S + i1, - (ggml_fp16_t *) ((char *) b0->data + (ib01*nbb01 + ib02*nbb02 + ib03*nbb03)), - (ggml_fp16_t *) ((char *) a->data + ( ia1*nba1 + ia2*nba2 + ia3*nba3))); + (ggml_v1_fp16_t *) ((char *) b0->data + (ib01*nbb01 + ib02*nbb02 + ib03*nbb03)), + (ggml_v1_fp16_t *) ((char *) a->data + ( ia1*nba1 + ia2*nba2 + ia3*nba3))); } - ggml_vec_add_f32(neb01, S, S, (float *) b1->data); - //ggml_vec_gelu_f32(neb01, S, S); + ggml_v1_vec_add_f32(neb01, S, S, (float *) b1->data); + //ggml_v1_vec_gelu_f32(neb01, S, S); - ggml_fp16_t * S16 = (ggml_fp16_t *) ((float *) params->wdata + ith*(2*M + CACHE_LINE_SIZE_F32) + M); + ggml_v1_fp16_t * S16 = (ggml_v1_fp16_t *) ((float *) params->wdata + ith*(2*M + CACHE_LINE_SIZE_F32) + M); for (int i = 0; i < M; i++) { - S16[i] = GGML_FP32_TO_FP16(S[i]); + S16[i] = GGML_V1_FP32_TO_FP16(S[i]); } - ggml_vec_gelu_f16(neb01, S16, S16); + ggml_v1_vec_gelu_f16(neb01, S16, S16); { // dst indices @@ -6543,13 +6543,13 @@ static void ggml_compute_forward_flash_ff_f16( for (int ic = 0; ic < nec01; ++ic) { - ggml_vec_dot_f16(neb01, + ggml_v1_vec_dot_f16(neb01, (float *) ((char *) dst->data + (ic*nb0 + i1*nb1 + i2*nb2 + i3*nb3)), - (ggml_fp16_t *) ((char *) c0->data + ( ic*nbc01 + i2*nbc02 + i3*nbc03)), + (ggml_v1_fp16_t *) ((char *) c0->data + ( ic*nbc01 + i2*nbc02 + i3*nbc03)), S16); } - ggml_vec_add_f32(nec01, + ggml_v1_vec_add_f32(nec01, (float *) ((char *) dst->data + (i1*nb1 + i2*nb2 + i3*nb3)), (float *) ((char *) dst->data + (i1*nb1 + i2*nb2 + i3*nb3)), (float *) c1->data); @@ -6557,27 +6557,27 @@ static void ggml_compute_forward_flash_ff_f16( } } -static void ggml_compute_forward_flash_ff( - const struct ggml_compute_params * params, - const struct ggml_tensor * a, - const struct ggml_tensor * b0, - const struct ggml_tensor * b1, - const struct ggml_tensor * c0, - const struct ggml_tensor * c1, - struct ggml_tensor * dst) { +static void ggml_v1_compute_forward_flash_ff( + const struct ggml_v1_compute_params * params, + const struct ggml_v1_tensor * a, + const struct ggml_v1_tensor * b0, + const struct ggml_v1_tensor * b1, + const struct ggml_v1_tensor * c0, + const struct ggml_v1_tensor * c1, + struct ggml_v1_tensor * dst) { switch (b0->type) { - case GGML_TYPE_F16: + case GGML_V1_TYPE_F16: { - ggml_compute_forward_flash_ff_f16(params, a, b0, b1, c0, c1, dst); + ggml_v1_compute_forward_flash_ff_f16(params, a, b0, b1, c0, c1, dst); } break; - case GGML_TYPE_F32: + case GGML_V1_TYPE_F32: { - GGML_ASSERT(false); // TODO + GGML_V1_ASSERT(false); // TODO } break; - case GGML_TYPE_I8: - case GGML_TYPE_I16: - case GGML_TYPE_I32: - case GGML_TYPE_COUNT: + case GGML_V1_TYPE_I8: + case GGML_V1_TYPE_I16: + case GGML_V1_TYPE_I32: + case GGML_V1_TYPE_COUNT: { assert(false); } break; @@ -6586,404 +6586,404 @@ static void ggml_compute_forward_flash_ff( ///////////////////////////////// -static void ggml_compute_forward(struct ggml_compute_params * params, struct ggml_tensor * tensor) { +static void ggml_v1_compute_forward(struct ggml_v1_compute_params * params, struct ggml_v1_tensor * tensor) { assert(params); switch (tensor->op) { - case GGML_OP_DUP: + case GGML_V1_OP_DUP: { - ggml_compute_forward_dup(params, tensor->src0, tensor); + ggml_v1_compute_forward_dup(params, tensor->src0, tensor); } break; - case GGML_OP_ADD: + case GGML_V1_OP_ADD: { - ggml_compute_forward_add(params, tensor->src0, tensor->src1, tensor); + ggml_v1_compute_forward_add(params, tensor->src0, tensor->src1, tensor); } break; - case GGML_OP_SUB: + case GGML_V1_OP_SUB: { - ggml_compute_forward_sub(params, tensor->src0, tensor->src1, tensor); + ggml_v1_compute_forward_sub(params, tensor->src0, tensor->src1, tensor); } break; - case GGML_OP_MUL: + case GGML_V1_OP_MUL: { - ggml_compute_forward_mul(params, tensor->src0, tensor->src1, tensor); + ggml_v1_compute_forward_mul(params, tensor->src0, tensor->src1, tensor); } break; - case GGML_OP_DIV: + case GGML_V1_OP_DIV: { - ggml_compute_forward_div(params, tensor->src0, tensor->src1, tensor); + ggml_v1_compute_forward_div(params, tensor->src0, tensor->src1, tensor); } break; - case GGML_OP_SQR: + case GGML_V1_OP_SQR: { - ggml_compute_forward_sqr(params, tensor->src0, tensor); + ggml_v1_compute_forward_sqr(params, tensor->src0, tensor); } break; - case GGML_OP_SQRT: + case GGML_V1_OP_SQRT: { - ggml_compute_forward_sqrt(params, tensor->src0, tensor); + ggml_v1_compute_forward_sqrt(params, tensor->src0, tensor); } break; - case GGML_OP_SUM: + case GGML_V1_OP_SUM: { - ggml_compute_forward_sum(params, tensor->src0, tensor); + ggml_v1_compute_forward_sum(params, tensor->src0, tensor); } break; - case GGML_OP_MEAN: + case GGML_V1_OP_MEAN: { - ggml_compute_forward_mean(params, tensor->src0, tensor); + ggml_v1_compute_forward_mean(params, tensor->src0, tensor); } break; - case GGML_OP_REPEAT: + case GGML_V1_OP_REPEAT: { - ggml_compute_forward_repeat(params, tensor->src0, tensor); + ggml_v1_compute_forward_repeat(params, tensor->src0, tensor); } break; - case GGML_OP_ABS: + case GGML_V1_OP_ABS: { - ggml_compute_forward_abs(params, tensor->src0, tensor); + ggml_v1_compute_forward_abs(params, tensor->src0, tensor); } break; - case GGML_OP_SGN: + case GGML_V1_OP_SGN: { - ggml_compute_forward_sgn(params, tensor->src0, tensor); + ggml_v1_compute_forward_sgn(params, tensor->src0, tensor); } break; - case GGML_OP_NEG: + case GGML_V1_OP_NEG: { - ggml_compute_forward_neg(params, tensor->src0, tensor); + ggml_v1_compute_forward_neg(params, tensor->src0, tensor); } break; - case GGML_OP_STEP: + case GGML_V1_OP_STEP: { - ggml_compute_forward_step(params, tensor->src0, tensor); + ggml_v1_compute_forward_step(params, tensor->src0, tensor); } break; - case GGML_OP_RELU: + case GGML_V1_OP_RELU: { - ggml_compute_forward_relu(params, tensor->src0, tensor); + ggml_v1_compute_forward_relu(params, tensor->src0, tensor); } break; - case GGML_OP_GELU: + case GGML_V1_OP_GELU: { - ggml_compute_forward_gelu(params, tensor->src0, tensor); + ggml_v1_compute_forward_gelu(params, tensor->src0, tensor); } break; - case GGML_OP_NORM: + case GGML_V1_OP_NORM: { - ggml_compute_forward_norm(params, tensor->src0, tensor); + ggml_v1_compute_forward_norm(params, tensor->src0, tensor); } break; - case GGML_OP_MUL_MAT: + case GGML_V1_OP_MUL_MAT: { - ggml_compute_forward_mul_mat(params, tensor->src0, tensor->src1, tensor); + ggml_v1_compute_forward_mul_mat(params, tensor->src0, tensor->src1, tensor); } break; - case GGML_OP_SCALE: + case GGML_V1_OP_SCALE: { - ggml_compute_forward_scale(params, tensor->src0, tensor->src1, tensor); + ggml_v1_compute_forward_scale(params, tensor->src0, tensor->src1, tensor); } break; - case GGML_OP_CPY: + case GGML_V1_OP_CPY: { - ggml_compute_forward_cpy(params, tensor->src0, tensor); + ggml_v1_compute_forward_cpy(params, tensor->src0, tensor); } break; - case GGML_OP_RESHAPE: + case GGML_V1_OP_RESHAPE: { - ggml_compute_forward_reshape(params, tensor->src0, tensor); + ggml_v1_compute_forward_reshape(params, tensor->src0, tensor); } break; - case GGML_OP_VIEW: + case GGML_V1_OP_VIEW: { - ggml_compute_forward_view(params, tensor->src0); + ggml_v1_compute_forward_view(params, tensor->src0); } break; - case GGML_OP_PERMUTE: + case GGML_V1_OP_PERMUTE: { - ggml_compute_forward_permute(params, tensor->src0); + ggml_v1_compute_forward_permute(params, tensor->src0); } break; - case GGML_OP_TRANSPOSE: + case GGML_V1_OP_TRANSPOSE: { - ggml_compute_forward_transpose(params, tensor->src0); + ggml_v1_compute_forward_transpose(params, tensor->src0); } break; - case GGML_OP_GET_ROWS: + case GGML_V1_OP_GET_ROWS: { - ggml_compute_forward_get_rows(params, tensor->src0, tensor->src1, tensor); + ggml_v1_compute_forward_get_rows(params, tensor->src0, tensor->src1, tensor); } break; - case GGML_OP_DIAG_MASK_INF: + case GGML_V1_OP_DIAG_MASK_INF: { - ggml_compute_forward_diag_mask_inf(params, tensor->src0, tensor->src1, tensor); + ggml_v1_compute_forward_diag_mask_inf(params, tensor->src0, tensor->src1, tensor); } break; - case GGML_OP_SOFT_MAX: + case GGML_V1_OP_SOFT_MAX: { - ggml_compute_forward_soft_max(params, tensor->src0, tensor); + ggml_v1_compute_forward_soft_max(params, tensor->src0, tensor); } break; - case GGML_OP_ROPE: + case GGML_V1_OP_ROPE: { - ggml_compute_forward_rope(params, tensor->src0, tensor->src1, tensor); + ggml_v1_compute_forward_rope(params, tensor->src0, tensor->src1, tensor); } break; - case GGML_OP_CONV_1D_1S: + case GGML_V1_OP_CONV_1D_1S: { - ggml_compute_forward_conv_1d_1s(params, tensor->src0, tensor->src1, tensor); + ggml_v1_compute_forward_conv_1d_1s(params, tensor->src0, tensor->src1, tensor); } break; - case GGML_OP_CONV_1D_2S: + case GGML_V1_OP_CONV_1D_2S: { - ggml_compute_forward_conv_1d_2s(params, tensor->src0, tensor->src1, tensor); + ggml_v1_compute_forward_conv_1d_2s(params, tensor->src0, tensor->src1, tensor); } break; - case GGML_OP_FLASH_ATTN: + case GGML_V1_OP_FLASH_ATTN: { - int32_t t = ggml_get_i32_1d(tensor->opt[1], 0); - GGML_ASSERT(t == 0 || t == 1); + int32_t t = ggml_v1_get_i32_1d(tensor->opt[1], 0); + GGML_V1_ASSERT(t == 0 || t == 1); bool masked = t != 0; - ggml_compute_forward_flash_attn(params, tensor->src0, tensor->src1, tensor->opt[0], masked, tensor); + ggml_v1_compute_forward_flash_attn(params, tensor->src0, tensor->src1, tensor->opt[0], masked, tensor); } break; - case GGML_OP_FLASH_FF: + case GGML_V1_OP_FLASH_FF: { - ggml_compute_forward_flash_ff(params, tensor->src0, tensor->src1, tensor->opt[0], tensor->opt[1], tensor->opt[2], tensor); + ggml_v1_compute_forward_flash_ff(params, tensor->src0, tensor->src1, tensor->opt[0], tensor->opt[1], tensor->opt[2], tensor); } break; - case GGML_OP_NONE: + case GGML_V1_OP_NONE: { // nop } break; - case GGML_OP_COUNT: + case GGML_V1_OP_COUNT: { - GGML_ASSERT(false); + GGML_V1_ASSERT(false); } break; } } //////////////////////////////////////////////////////////////////////////////// -static void ggml_compute_backward(struct ggml_context * ctx, struct ggml_tensor * tensor, bool inplace) { - struct ggml_tensor * src0 = tensor->src0; - struct ggml_tensor * src1 = tensor->src1; +static void ggml_v1_compute_backward(struct ggml_v1_context * ctx, struct ggml_v1_tensor * tensor, bool inplace) { + struct ggml_v1_tensor * src0 = tensor->src0; + struct ggml_v1_tensor * src1 = tensor->src1; switch (tensor->op) { - case GGML_OP_DUP: + case GGML_V1_OP_DUP: { if (src0->grad) { - src0->grad = ggml_add_impl(ctx, src0->grad, tensor->grad, inplace); + src0->grad = ggml_v1_add_impl(ctx, src0->grad, tensor->grad, inplace); } } break; - case GGML_OP_ADD: + case GGML_V1_OP_ADD: { if (src0->grad) { - src0->grad = ggml_add_impl(ctx, src0->grad, tensor->grad, inplace); + src0->grad = ggml_v1_add_impl(ctx, src0->grad, tensor->grad, inplace); } if (src1->grad) { - src1->grad = ggml_add_impl(ctx, src1->grad, tensor->grad, inplace); + src1->grad = ggml_v1_add_impl(ctx, src1->grad, tensor->grad, inplace); } } break; - case GGML_OP_SUB: + case GGML_V1_OP_SUB: { if (src0->grad) { - src0->grad = ggml_add_impl(ctx, src0->grad, tensor->grad, inplace); + src0->grad = ggml_v1_add_impl(ctx, src0->grad, tensor->grad, inplace); } if (src1->grad) { - src1->grad = ggml_sub_impl(ctx, src1->grad, tensor->grad, inplace); + src1->grad = ggml_v1_sub_impl(ctx, src1->grad, tensor->grad, inplace); } } break; - case GGML_OP_MUL: + case GGML_V1_OP_MUL: { if (src0->grad) { src0->grad = - ggml_add_impl(ctx, + ggml_v1_add_impl(ctx, src0->grad, - ggml_mul(ctx, src1, tensor->grad), + ggml_v1_mul(ctx, src1, tensor->grad), inplace); } if (src1->grad) { src1->grad = - ggml_add_impl(ctx, + ggml_v1_add_impl(ctx, src1->grad, - ggml_mul(ctx, src0, tensor->grad), + ggml_v1_mul(ctx, src0, tensor->grad), inplace); } } break; - case GGML_OP_DIV: + case GGML_V1_OP_DIV: { if (src0->grad) { src0->grad = - ggml_add_impl(ctx, + ggml_v1_add_impl(ctx, src0->grad, - ggml_div(ctx, tensor->grad, src1), + ggml_v1_div(ctx, tensor->grad, src1), inplace); } if (src1->grad) { src1->grad = - ggml_sub_impl(ctx, + ggml_v1_sub_impl(ctx, src1->grad, - ggml_mul(ctx, + ggml_v1_mul(ctx, tensor->grad, - ggml_div(ctx, tensor, src1)), + ggml_v1_div(ctx, tensor, src1)), inplace); } } break; - case GGML_OP_SQR: + case GGML_V1_OP_SQR: { if (src0->grad) { src0->grad = - ggml_add_impl(ctx, + ggml_v1_add_impl(ctx, src0->grad, - ggml_mul(ctx, - ggml_mul(ctx, src0, tensor->grad), - ggml_repeat(ctx, ggml_new_f32(ctx, 2.0f), src0)), + ggml_v1_mul(ctx, + ggml_v1_mul(ctx, src0, tensor->grad), + ggml_v1_repeat(ctx, ggml_v1_new_f32(ctx, 2.0f), src0)), inplace); } } break; - case GGML_OP_SQRT: + case GGML_V1_OP_SQRT: { if (src0->grad) { src0->grad = - ggml_add_impl(ctx, + ggml_v1_add_impl(ctx, src0->grad, - ggml_div(ctx, - ggml_repeat(ctx, ggml_new_f32(ctx, 0.5f), tensor), + ggml_v1_div(ctx, + ggml_v1_repeat(ctx, ggml_v1_new_f32(ctx, 0.5f), tensor), tensor), inplace); } } break; - case GGML_OP_SUM: + case GGML_V1_OP_SUM: { if (src0->grad) { src0->grad = - ggml_add_impl(ctx, + ggml_v1_add_impl(ctx, src0->grad, - ggml_repeat(ctx, tensor->grad, src0->grad), + ggml_v1_repeat(ctx, tensor->grad, src0->grad), inplace); } } break; - case GGML_OP_MEAN: + case GGML_V1_OP_MEAN: { assert(false); // TODO: implement } break; - case GGML_OP_REPEAT: + case GGML_V1_OP_REPEAT: { if (src0->grad) { src0->grad = - ggml_add_impl(ctx, + ggml_v1_add_impl(ctx, src0->grad, - ggml_sum(ctx, tensor->grad), + ggml_v1_sum(ctx, tensor->grad), inplace); } } break; - case GGML_OP_ABS: + case GGML_V1_OP_ABS: { if (src0->grad) { src0->grad = - ggml_add_impl(ctx, + ggml_v1_add_impl(ctx, src0->grad, - ggml_mul(ctx, - ggml_sgn(ctx, src0), + ggml_v1_mul(ctx, + ggml_v1_sgn(ctx, src0), tensor->grad), inplace); } } break; - case GGML_OP_SGN: + case GGML_V1_OP_SGN: { if (src0->grad) { // noop } } break; - case GGML_OP_NEG: + case GGML_V1_OP_NEG: { if (src0->grad) { - src0->grad = ggml_sub_impl(ctx, src0->grad, tensor->grad, inplace); + src0->grad = ggml_v1_sub_impl(ctx, src0->grad, tensor->grad, inplace); } } break; - case GGML_OP_STEP: + case GGML_V1_OP_STEP: { if (src0->grad) { // noop } } break; - case GGML_OP_RELU: + case GGML_V1_OP_RELU: { if (src0->grad) { - src0->grad = ggml_sub_impl(ctx, + src0->grad = ggml_v1_sub_impl(ctx, src0->grad, - ggml_mul(ctx, - ggml_step(ctx, src0), + ggml_v1_mul(ctx, + ggml_v1_step(ctx, src0), tensor->grad), inplace); } } break; - case GGML_OP_GELU: + case GGML_V1_OP_GELU: { assert(false); // TODO: not implemented } break; - case GGML_OP_NORM: + case GGML_V1_OP_NORM: { assert(false); // TODO: not implemented } break; - case GGML_OP_MUL_MAT: + case GGML_V1_OP_MUL_MAT: { if (src0->grad) { - // TODO: this requires outer product - ggml_out_prod(ctx, src1, tensor->grad); + // TODO: this requires outer product - ggml_v1_out_prod(ctx, src1, tensor->grad); assert(false); } if (src1->grad) { src1->grad = - ggml_add_impl(ctx, + ggml_v1_add_impl(ctx, src1->grad, // TODO: fix transpose, the node will break the graph connections - ggml_mul_mat(ctx, ggml_transpose(ctx, src0), tensor->grad), + ggml_v1_mul_mat(ctx, ggml_v1_transpose(ctx, src0), tensor->grad), inplace); } } break; - case GGML_OP_SCALE: + case GGML_V1_OP_SCALE: { - GGML_ASSERT(false); // TODO: not implemented + GGML_V1_ASSERT(false); // TODO: not implemented } break; - case GGML_OP_CPY: + case GGML_V1_OP_CPY: { - GGML_ASSERT(false); // TODO: not implemented + GGML_V1_ASSERT(false); // TODO: not implemented } break; - case GGML_OP_RESHAPE: + case GGML_V1_OP_RESHAPE: { - GGML_ASSERT(false); // TODO: not implemented + GGML_V1_ASSERT(false); // TODO: not implemented } break; - case GGML_OP_VIEW: + case GGML_V1_OP_VIEW: { - GGML_ASSERT(false); // not supported + GGML_V1_ASSERT(false); // not supported } break; - case GGML_OP_PERMUTE: + case GGML_V1_OP_PERMUTE: { - GGML_ASSERT(false); // TODO: not implemented + GGML_V1_ASSERT(false); // TODO: not implemented } break; - case GGML_OP_TRANSPOSE: + case GGML_V1_OP_TRANSPOSE: { - GGML_ASSERT(false); // TODO: not implemented + GGML_V1_ASSERT(false); // TODO: not implemented } break; - case GGML_OP_GET_ROWS: + case GGML_V1_OP_GET_ROWS: { - GGML_ASSERT(false); // TODO: not implemented + GGML_V1_ASSERT(false); // TODO: not implemented } break; - case GGML_OP_DIAG_MASK_INF: + case GGML_V1_OP_DIAG_MASK_INF: { - GGML_ASSERT(false); // TODO: not implemented + GGML_V1_ASSERT(false); // TODO: not implemented } break; - case GGML_OP_SOFT_MAX: + case GGML_V1_OP_SOFT_MAX: { - GGML_ASSERT(false); // TODO: not implemented + GGML_V1_ASSERT(false); // TODO: not implemented } break; - case GGML_OP_ROPE: + case GGML_V1_OP_ROPE: { - GGML_ASSERT(false); // TODO: not implemented + GGML_V1_ASSERT(false); // TODO: not implemented } break; - case GGML_OP_CONV_1D_1S: + case GGML_V1_OP_CONV_1D_1S: { - GGML_ASSERT(false); // TODO: not implemented + GGML_V1_ASSERT(false); // TODO: not implemented } break; - case GGML_OP_CONV_1D_2S: + case GGML_V1_OP_CONV_1D_2S: { - GGML_ASSERT(false); // TODO: not implemented + GGML_V1_ASSERT(false); // TODO: not implemented } break; - case GGML_OP_FLASH_ATTN: + case GGML_V1_OP_FLASH_ATTN: { - GGML_ASSERT(false); // not supported + GGML_V1_ASSERT(false); // not supported } break; - case GGML_OP_FLASH_FF: + case GGML_V1_OP_FLASH_FF: { - GGML_ASSERT(false); // not supported + GGML_V1_ASSERT(false); // not supported } break; - case GGML_OP_NONE: + case GGML_V1_OP_NONE: { // nop } break; - case GGML_OP_COUNT: + case GGML_V1_OP_COUNT: { - GGML_ASSERT(false); + GGML_V1_ASSERT(false); } break; } } -static void ggml_visit_parents(struct ggml_cgraph * cgraph, struct ggml_tensor * node) { +static void ggml_v1_visit_parents(struct ggml_v1_cgraph * cgraph, struct ggml_v1_tensor * node) { if (node->grad == NULL) { // this usually happens when we generate intermediate nodes from constants in the backward pass // it can also happen during forward pass, if the user performs computations with constants - if (node->op != GGML_OP_NONE) { - //GGML_PRINT_DEBUG("%s: warning: node %p has no grad, but op %d\n", __func__, (void *) node, node->op); + if (node->op != GGML_V1_OP_NONE) { + //GGML_V1_PRINT_DEBUG("%s: warning: node %p has no grad, but op %d\n", __func__, (void *) node, node->op); } } @@ -7001,27 +7001,27 @@ static void ggml_visit_parents(struct ggml_cgraph * cgraph, struct ggml_tensor * } if (node->src0) { - ggml_visit_parents(cgraph, node->src0); + ggml_v1_visit_parents(cgraph, node->src0); } if (node->src1) { - ggml_visit_parents(cgraph, node->src1); + ggml_v1_visit_parents(cgraph, node->src1); } - for (int i = 0; i < GGML_MAX_OPT; ++i) { + for (int i = 0; i < GGML_V1_MAX_OPT; ++i) { if (node->opt[i]) { - ggml_visit_parents(cgraph, node->opt[i]); + ggml_v1_visit_parents(cgraph, node->opt[i]); } } - if (node->op == GGML_OP_NONE && node->grad == NULL) { + if (node->op == GGML_V1_OP_NONE && node->grad == NULL) { // reached a leaf node, not part of the gradient graph (e.g. a constant) - assert(cgraph->n_leafs < GGML_MAX_NODES); + assert(cgraph->n_leafs < GGML_V1_MAX_NODES); cgraph->leafs[cgraph->n_leafs] = node; cgraph->n_leafs++; } else { - assert(cgraph->n_nodes < GGML_MAX_NODES); + assert(cgraph->n_nodes < GGML_V1_MAX_NODES); cgraph->nodes[cgraph->n_nodes] = node; cgraph->grads[cgraph->n_nodes] = node->grad; @@ -7029,7 +7029,7 @@ static void ggml_visit_parents(struct ggml_cgraph * cgraph, struct ggml_tensor * } } -static void ggml_build_forward_impl(struct ggml_cgraph * cgraph, struct ggml_tensor * tensor, bool expand) { +static void ggml_v1_build_forward_impl(struct ggml_v1_cgraph * cgraph, struct ggml_v1_tensor * tensor, bool expand) { if (!expand) { cgraph->n_nodes = 0; cgraph->n_leafs = 0; @@ -7038,10 +7038,10 @@ static void ggml_build_forward_impl(struct ggml_cgraph * cgraph, struct ggml_ten const int n0 = cgraph->n_nodes; UNUSED(n0); - ggml_visit_parents(cgraph, tensor); + ggml_v1_visit_parents(cgraph, tensor); const int n_new = cgraph->n_nodes - n0; - GGML_PRINT_DEBUG("%s: visited %d new nodes\n", __func__, n_new); + GGML_V1_PRINT_DEBUG("%s: visited %d new nodes\n", __func__, n_new); if (n_new > 0) { // the last added node should always be starting point @@ -7049,12 +7049,12 @@ static void ggml_build_forward_impl(struct ggml_cgraph * cgraph, struct ggml_ten } } -void ggml_build_forward_expand(struct ggml_cgraph * cgraph, struct ggml_tensor * tensor) { - ggml_build_forward_impl(cgraph, tensor, true); +void ggml_v1_build_forward_expand(struct ggml_v1_cgraph * cgraph, struct ggml_v1_tensor * tensor) { + ggml_v1_build_forward_impl(cgraph, tensor, true); } -struct ggml_cgraph ggml_build_forward(struct ggml_tensor * tensor) { - struct ggml_cgraph result = { +struct ggml_v1_cgraph ggml_v1_build_forward(struct ggml_v1_tensor * tensor) { + struct ggml_v1_cgraph result = { /*.n_nodes =*/ 0, /*.n_leafs =*/ 0, /*.n_threads =*/ 0, @@ -7068,43 +7068,43 @@ struct ggml_cgraph ggml_build_forward(struct ggml_tensor * tensor) { /*.perf_time_us =*/ 0, }; - ggml_build_forward_impl(&result, tensor, false); + ggml_v1_build_forward_impl(&result, tensor, false); return result; } -struct ggml_cgraph ggml_build_backward(struct ggml_context * ctx, struct ggml_cgraph * gf, bool keep) { - struct ggml_cgraph result = *gf; +struct ggml_v1_cgraph ggml_v1_build_backward(struct ggml_v1_context * ctx, struct ggml_v1_cgraph * gf, bool keep) { + struct ggml_v1_cgraph result = *gf; assert(gf->n_nodes > 0); // if we are keeping the gradient graph, we have to detach the gradient nodes from the original graph if (keep) { for (int i = 0; i < gf->n_nodes; i++) { - struct ggml_tensor * node = gf->nodes[i]; + struct ggml_v1_tensor * node = gf->nodes[i]; if (node->grad) { - node->grad = ggml_dup_tensor(ctx, node); + node->grad = ggml_v1_dup_tensor(ctx, node); gf->grads[i] = node->grad; } } } for (int i = gf->n_nodes - 1; i >= 0; i--) { - struct ggml_tensor * node = gf->nodes[i]; + struct ggml_v1_tensor * node = gf->nodes[i]; // because we detached the grad nodes from the original graph, we can afford inplace operations if (node->grad) { - ggml_compute_backward(ctx, node, keep); + ggml_v1_compute_backward(ctx, node, keep); } } for (int i = gf->n_nodes - 1; i >= 0; i--) { - struct ggml_tensor * node = gf->nodes[i]; + struct ggml_v1_tensor * node = gf->nodes[i]; if (node->is_param) { - GGML_PRINT_DEBUG("%s: found root node %p\n", __func__, (void *) node); - ggml_build_forward_impl(&result, node->grad, true); + GGML_V1_PRINT_DEBUG("%s: found root node %p\n", __func__, (void *) node); + ggml_v1_build_forward_impl(&result, node->grad, true); } } @@ -7122,56 +7122,56 @@ struct ggml_cgraph ggml_build_backward(struct ggml_context * ctx, struct ggml_cg //#include // -//typedef os_unfair_lock ggml_lock_t; +//typedef os_unfair_lock ggml_v1_lock_t; // -//#define ggml_lock_init(x) UNUSED(x) -//#define ggml_lock_destroy(x) UNUSED(x) -//#define ggml_lock_lock os_unfair_lock_lock -//#define ggml_lock_unlock os_unfair_lock_unlock +//#define ggml_v1_lock_init(x) UNUSED(x) +//#define ggml_v1_lock_destroy(x) UNUSED(x) +//#define ggml_v1_lock_lock os_unfair_lock_lock +//#define ggml_v1_lock_unlock os_unfair_lock_unlock // -//#define GGML_LOCK_INITIALIZER OS_UNFAIR_LOCK_INIT +//#define GGML_V1_LOCK_INITIALIZER OS_UNFAIR_LOCK_INIT -typedef int ggml_lock_t; +typedef int ggml_v1_lock_t; -#define ggml_lock_init(x) UNUSED(x) -#define ggml_lock_destroy(x) UNUSED(x) -#define ggml_lock_lock(x) UNUSED(x) -#define ggml_lock_unlock(x) UNUSED(x) +#define ggml_v1_lock_init(x) UNUSED(x) +#define ggml_v1_lock_destroy(x) UNUSED(x) +#define ggml_v1_lock_lock(x) UNUSED(x) +#define ggml_v1_lock_unlock(x) UNUSED(x) -#define GGML_LOCK_INITIALIZER 0 +#define GGML_V1_LOCK_INITIALIZER 0 -typedef pthread_t ggml_thread_t; +typedef pthread_t ggml_v1_thread_t; -#define ggml_thread_create pthread_create -#define ggml_thread_join pthread_join +#define ggml_v1_thread_create pthread_create +#define ggml_v1_thread_join pthread_join #else -//typedef pthread_spinlock_t ggml_lock_t; +//typedef pthread_spinlock_t ggml_v1_lock_t; -//#define ggml_lock_init(x) pthread_spin_init(x, PTHREAD_PROCESS_PRIVATE) -//#define ggml_lock_destroy pthread_spin_destroy -//#define ggml_lock_lock pthread_spin_lock -//#define ggml_lock_unlock pthread_spin_unlock +//#define ggml_v1_lock_init(x) pthread_spin_init(x, PTHREAD_PROCESS_PRIVATE) +//#define ggml_v1_lock_destroy pthread_spin_destroy +//#define ggml_v1_lock_lock pthread_spin_lock +//#define ggml_v1_lock_unlock pthread_spin_unlock -typedef int ggml_lock_t; +typedef int ggml_v1_lock_t; -#define ggml_lock_init(x) UNUSED(x) -#define ggml_lock_destroy(x) UNUSED(x) -#define ggml_lock_lock(x) UNUSED(x) -#define ggml_lock_unlock(x) UNUSED(x) +#define ggml_v1_lock_init(x) UNUSED(x) +#define ggml_v1_lock_destroy(x) UNUSED(x) +#define ggml_v1_lock_lock(x) UNUSED(x) +#define ggml_v1_lock_unlock(x) UNUSED(x) -#define GGML_LOCK_INITIALIZER 0 +#define GGML_V1_LOCK_INITIALIZER 0 -typedef pthread_t ggml_thread_t; +typedef pthread_t ggml_v1_thread_t; -#define ggml_thread_create pthread_create -#define ggml_thread_join pthread_join +#define ggml_v1_thread_create pthread_create +#define ggml_v1_thread_join pthread_join #endif -struct ggml_compute_state_shared { - ggml_lock_t spin; +struct ggml_v1_compute_state_shared { + ggml_v1_lock_t spin; int n_threads; @@ -7181,17 +7181,17 @@ struct ggml_compute_state_shared { atomic_bool stop; // stop all threads }; -struct ggml_compute_state { - ggml_thread_t thrd; +struct ggml_v1_compute_state { + ggml_v1_thread_t thrd; - struct ggml_compute_params params; - struct ggml_tensor * node; + struct ggml_v1_compute_params params; + struct ggml_v1_tensor * node; - struct ggml_compute_state_shared * shared; + struct ggml_v1_compute_state_shared * shared; }; -static thread_ret_t ggml_graph_compute_thread(void * data) { - struct ggml_compute_state * state = (struct ggml_compute_state *) data; +static thread_ret_t ggml_v1_graph_compute_thread(void * data) { + struct ggml_v1_compute_state * state = (struct ggml_v1_compute_state *) data; const int n_threads = state->shared->n_threads; @@ -7203,8 +7203,8 @@ static thread_ret_t ggml_graph_compute_thread(void * data) { if (atomic_load(&state->shared->stop)) { return 0; } - ggml_lock_lock (&state->shared->spin); - ggml_lock_unlock(&state->shared->spin); + ggml_v1_lock_lock (&state->shared->spin); + ggml_v1_lock_unlock(&state->shared->spin); } } @@ -7215,8 +7215,8 @@ static thread_ret_t ggml_graph_compute_thread(void * data) { if (atomic_load(&state->shared->stop)) { return 0; } - ggml_lock_lock (&state->shared->spin); - ggml_lock_unlock(&state->shared->spin); + ggml_v1_lock_lock (&state->shared->spin); + ggml_v1_lock_unlock(&state->shared->spin); } // check if we should stop @@ -7226,7 +7226,7 @@ static thread_ret_t ggml_graph_compute_thread(void * data) { if (state->node) { if (state->params.ith < state->params.nth) { - ggml_compute_forward(&state->params, state->node); + ggml_v1_compute_forward(&state->params, state->node); } state->node = NULL; @@ -7238,43 +7238,43 @@ static thread_ret_t ggml_graph_compute_thread(void * data) { return 0; } -void ggml_graph_compute(struct ggml_context * ctx, struct ggml_cgraph * cgraph) { +void ggml_v1_graph_compute(struct ggml_v1_context * ctx, struct ggml_v1_cgraph * cgraph) { if (cgraph->n_threads <= 0) { cgraph->n_threads = 8; } const int n_threads = cgraph->n_threads; - struct ggml_compute_state_shared state_shared = { - /*.spin =*/ GGML_LOCK_INITIALIZER, + struct ggml_v1_compute_state_shared state_shared = { + /*.spin =*/ GGML_V1_LOCK_INITIALIZER, /*.n_threads =*/ n_threads, /*.n_ready =*/ 0, /*.has_work =*/ false, /*.stop =*/ false, }; - struct ggml_compute_state * workers = n_threads > 1 ? alloca(sizeof(struct ggml_compute_state)*(n_threads - 1)) : NULL; + struct ggml_v1_compute_state * workers = n_threads > 1 ? alloca(sizeof(struct ggml_v1_compute_state)*(n_threads - 1)) : NULL; // create thread pool if (n_threads > 1) { - ggml_lock_init(&state_shared.spin); + ggml_v1_lock_init(&state_shared.spin); atomic_store(&state_shared.has_work, true); for (int j = 0; j < n_threads - 1; j++) { - workers[j] = (struct ggml_compute_state) { + workers[j] = (struct ggml_v1_compute_state) { .thrd = 0, .params = { - .type = GGML_TASK_COMPUTE, + .type = GGML_V1_TASK_COMPUTE, .ith = j + 1, .nth = n_threads, - .wsize = cgraph->work ? ggml_nbytes(cgraph->work) : 0, + .wsize = cgraph->work ? ggml_v1_nbytes(cgraph->work) : 0, .wdata = cgraph->work ? cgraph->work->data : NULL, }, .node = NULL, .shared = &state_shared, }; - int rc = ggml_thread_create(&workers[j].thrd, NULL, ggml_graph_compute_thread, &workers[j]); + int rc = ggml_v1_thread_create(&workers[j].thrd, NULL, ggml_v1_graph_compute_thread, &workers[j]); assert(rc == 0); UNUSED(rc); } @@ -7286,48 +7286,48 @@ void ggml_graph_compute(struct ggml_context * ctx, struct ggml_cgraph * cgraph) // thread scheduling for the different operations for (int i = 0; i < cgraph->n_nodes; i++) { - struct ggml_tensor * node = cgraph->nodes[i]; + struct ggml_v1_tensor * node = cgraph->nodes[i]; switch (node->op) { - case GGML_OP_DUP: + case GGML_V1_OP_DUP: { node->n_tasks = 1; } break; - case GGML_OP_ADD: + case GGML_V1_OP_ADD: { node->n_tasks = n_threads; } break; - case GGML_OP_SUB: - case GGML_OP_MUL: - case GGML_OP_DIV: - case GGML_OP_SQR: - case GGML_OP_SQRT: - case GGML_OP_SUM: - case GGML_OP_MEAN: - case GGML_OP_REPEAT: - case GGML_OP_ABS: - case GGML_OP_SGN: - case GGML_OP_NEG: - case GGML_OP_STEP: - case GGML_OP_RELU: + case GGML_V1_OP_SUB: + case GGML_V1_OP_MUL: + case GGML_V1_OP_DIV: + case GGML_V1_OP_SQR: + case GGML_V1_OP_SQRT: + case GGML_V1_OP_SUM: + case GGML_V1_OP_MEAN: + case GGML_V1_OP_REPEAT: + case GGML_V1_OP_ABS: + case GGML_V1_OP_SGN: + case GGML_V1_OP_NEG: + case GGML_V1_OP_STEP: + case GGML_V1_OP_RELU: { node->n_tasks = 1; } break; - case GGML_OP_GELU: + case GGML_V1_OP_GELU: { node->n_tasks = n_threads; } break; - case GGML_OP_NORM: + case GGML_V1_OP_NORM: { node->n_tasks = n_threads; } break; - case GGML_OP_MUL_MAT: + case GGML_V1_OP_MUL_MAT: { node->n_tasks = n_threads; // TODO: use different scheduling for different matrix sizes - //const int nr0 = ggml_nrows(node->src0); - //const int nr1 = ggml_nrows(node->src1); + //const int nr0 = ggml_v1_nrows(node->src0); + //const int nr1 = ggml_v1_nrows(node->src1); //node->n_tasks = MIN(n_threads, MAX(1, nr0/128)); //printf("nr0 = %8d, nr1 = %8d, nr0*nr1 = %8d, n_tasks = %d\n", nr0, nr1, nr0*nr1, node->n_tasks); @@ -7336,12 +7336,12 @@ void ggml_graph_compute(struct ggml_context * ctx, struct ggml_cgraph * cgraph) // TODO: better way to determine if the matrix is transposed if (node->src0->nb[1] < node->src0->nb[0]) { - cur = ggml_nbytes(node)*node->n_tasks; // TODO: this can become (n_tasks-1) + cur = ggml_v1_nbytes(node)*node->n_tasks; // TODO: this can become (n_tasks-1) } else { - if (node->src0->type == GGML_TYPE_F16 && - node->src1->type == GGML_TYPE_F32) { -#if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) - if (ggml_compute_forward_mul_mat_use_blas(node->src0, node->src1, node)) { + if (node->src0->type == GGML_V1_TYPE_F16 && + node->src1->type == GGML_V1_TYPE_F32) { +#if defined(GGML_V1_USE_ACCELERATE) || defined(GGML_V1_USE_OPENBLAS) + if (ggml_v1_compute_forward_mul_mat_use_blas(node->src0, node->src1, node)) { node->n_tasks = 1; // TODO: this actually is doing nothing // the threads are still spinning cur = sizeof(float)*(node->src0->ne[0]*node->src0->ne[1]); @@ -7349,116 +7349,116 @@ void ggml_graph_compute(struct ggml_context * ctx, struct ggml_cgraph * cgraph) //printf("src1: ne0 = %d, ne1 = %d, ne = %d\n", node->src1->ne[0], node->src1->ne[1], node->src1->ne[0]*node->src1->ne[1]); //printf("cur = %zu\n", cur); } else { - cur = sizeof(ggml_fp16_t)*ggml_nelements(node->src1); + cur = sizeof(ggml_v1_fp16_t)*ggml_v1_nelements(node->src1); } #else - cur = sizeof(ggml_fp16_t)*ggml_nelements(node->src1); + cur = sizeof(ggml_v1_fp16_t)*ggml_v1_nelements(node->src1); #endif - } else if (node->src0->type == GGML_TYPE_F32 && - node->src1->type == GGML_TYPE_F32) { + } else if (node->src0->type == GGML_V1_TYPE_F32 && + node->src1->type == GGML_V1_TYPE_F32) { cur = 0; } else { - GGML_ASSERT(false); + GGML_V1_ASSERT(false); } } work_size = MAX(work_size, cur); } break; - case GGML_OP_SCALE: + case GGML_V1_OP_SCALE: { node->n_tasks = n_threads; } break; - case GGML_OP_CPY: - case GGML_OP_RESHAPE: - case GGML_OP_VIEW: - case GGML_OP_PERMUTE: - case GGML_OP_TRANSPOSE: - case GGML_OP_GET_ROWS: - case GGML_OP_DIAG_MASK_INF: + case GGML_V1_OP_CPY: + case GGML_V1_OP_RESHAPE: + case GGML_V1_OP_VIEW: + case GGML_V1_OP_PERMUTE: + case GGML_V1_OP_TRANSPOSE: + case GGML_V1_OP_GET_ROWS: + case GGML_V1_OP_DIAG_MASK_INF: { node->n_tasks = 1; } break; - case GGML_OP_SOFT_MAX: + case GGML_V1_OP_SOFT_MAX: { node->n_tasks = n_threads; } break; - case GGML_OP_ROPE: + case GGML_V1_OP_ROPE: { node->n_tasks = 1; } break; - case GGML_OP_CONV_1D_1S: - case GGML_OP_CONV_1D_2S: + case GGML_V1_OP_CONV_1D_1S: + case GGML_V1_OP_CONV_1D_2S: { node->n_tasks = n_threads; - GGML_ASSERT(node->src0->ne[3] == 1); - GGML_ASSERT(node->src1->ne[2] == 1); - GGML_ASSERT(node->src1->ne[3] == 1); + GGML_V1_ASSERT(node->src0->ne[3] == 1); + GGML_V1_ASSERT(node->src1->ne[2] == 1); + GGML_V1_ASSERT(node->src1->ne[3] == 1); size_t cur = 0; const int nk = node->src0->ne[0]; - if (node->src0->type == GGML_TYPE_F16 && - node->src1->type == GGML_TYPE_F32) { - cur = sizeof(ggml_fp16_t)*( - nk*ggml_up32(node->src0->ne[1])*node->src0->ne[2] + + if (node->src0->type == GGML_V1_TYPE_F16 && + node->src1->type == GGML_V1_TYPE_F32) { + cur = sizeof(ggml_v1_fp16_t)*( + nk*ggml_v1_up32(node->src0->ne[1])*node->src0->ne[2] + ( 2*(nk/2) + node->src1->ne[0])*node->src1->ne[1] ); - } else if (node->src0->type == GGML_TYPE_F32 && - node->src1->type == GGML_TYPE_F32) { + } else if (node->src0->type == GGML_V1_TYPE_F32 && + node->src1->type == GGML_V1_TYPE_F32) { cur = sizeof(float)*( - nk*ggml_up32(node->src0->ne[1])*node->src0->ne[2] + + nk*ggml_v1_up32(node->src0->ne[1])*node->src0->ne[2] + ( 2*(nk/2) + node->src1->ne[0])*node->src1->ne[1] ); } else { - GGML_ASSERT(false); + GGML_V1_ASSERT(false); } work_size = MAX(work_size, cur); } break; - case GGML_OP_FLASH_ATTN: + case GGML_V1_OP_FLASH_ATTN: { node->n_tasks = n_threads; size_t cur = 0; - const int ne11 = ggml_up(node->src1->ne[1], GGML_SOFT_MAX_UNROLL); + const int ne11 = ggml_v1_up(node->src1->ne[1], GGML_V1_SOFT_MAX_UNROLL); - if (node->src1->type == GGML_TYPE_F32) { + if (node->src1->type == GGML_V1_TYPE_F32) { cur = sizeof(float)*ne11*node->n_tasks; // TODO: this can become (n_tasks-1) cur += sizeof(float)*ne11*node->n_tasks; // this is overestimated by x2 } - if (node->src1->type == GGML_TYPE_F16) { + if (node->src1->type == GGML_V1_TYPE_F16) { cur = sizeof(float)*ne11*node->n_tasks; // TODO: this can become (n_tasks-1) cur += sizeof(float)*ne11*node->n_tasks; // this is overestimated by x2 } work_size = MAX(work_size, cur); } break; - case GGML_OP_FLASH_FF: + case GGML_V1_OP_FLASH_FF: { node->n_tasks = n_threads; size_t cur = 0; - if (node->src1->type == GGML_TYPE_F32) { + if (node->src1->type == GGML_V1_TYPE_F32) { cur = sizeof(float)*node->src1->ne[1]*node->n_tasks; // TODO: this can become (n_tasks-1) cur += sizeof(float)*node->src1->ne[1]*node->n_tasks; // this is overestimated by x2 } - if (node->src1->type == GGML_TYPE_F16) { + if (node->src1->type == GGML_V1_TYPE_F16) { cur = sizeof(float)*node->src1->ne[1]*node->n_tasks; // TODO: this can become (n_tasks-1) cur += sizeof(float)*node->src1->ne[1]*node->n_tasks; // this is overestimated by x2 } work_size = MAX(work_size, cur); } break; - case GGML_OP_NONE: + case GGML_V1_OP_NONE: { node->n_tasks = 1; } break; - case GGML_OP_COUNT: + case GGML_V1_OP_COUNT: { assert(false); } break; @@ -7472,37 +7472,37 @@ void ggml_graph_compute(struct ggml_context * ctx, struct ggml_cgraph * cgraph) if (work_size > 0 && cgraph->work == NULL) { cgraph->work_size = work_size + CACHE_LINE_SIZE*(n_threads - 1); - GGML_PRINT_DEBUG("%s: allocating work buffer for graph (%zu bytes)\n", __func__, cgraph->work_size); - cgraph->work = ggml_new_tensor_1d(ctx, GGML_TYPE_I8, cgraph->work_size); + GGML_V1_PRINT_DEBUG("%s: allocating work buffer for graph (%zu bytes)\n", __func__, cgraph->work_size); + cgraph->work = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_I8, cgraph->work_size); } } - const int64_t perf_start_cycles = ggml_perf_cycles(); - const int64_t perf_start_time_us = ggml_perf_time_us(); + const int64_t perf_start_cycles = ggml_v1_perf_cycles(); + const int64_t perf_start_time_us = ggml_v1_perf_time_us(); for (int i = 0; i < cgraph->n_nodes; i++) { - GGML_PRINT_DEBUG_5("%s: %d/%d\n", __func__, i, cgraph->n_nodes); + GGML_V1_PRINT_DEBUG_5("%s: %d/%d\n", __func__, i, cgraph->n_nodes); - struct ggml_tensor * node = cgraph->nodes[i]; + struct ggml_v1_tensor * node = cgraph->nodes[i]; // TODO: this could be used to avoid unnecessary computations, but it needs to be improved //if (node->grad == NULL && node->perf_runs > 0) { // continue; //} - const int64_t perf_node_start_cycles = ggml_perf_cycles(); - const int64_t perf_node_start_time_us = ggml_perf_time_us(); + const int64_t perf_node_start_cycles = ggml_v1_perf_cycles(); + const int64_t perf_node_start_time_us = ggml_v1_perf_time_us(); // INIT - struct ggml_compute_params params = { - /*.type =*/ GGML_TASK_INIT, + struct ggml_v1_compute_params params = { + /*.type =*/ GGML_V1_TASK_INIT, /*.ith =*/ 0, /*.nth =*/ node->n_tasks, - /*.wsize =*/ cgraph->work ? ggml_nbytes(cgraph->work) : 0, + /*.wsize =*/ cgraph->work ? ggml_v1_nbytes(cgraph->work) : 0, /*.wdata =*/ cgraph->work ? cgraph->work->data : NULL, }; - ggml_compute_forward(¶ms, node); + ggml_v1_compute_forward(¶ms, node); // COMPUTE if (node->n_tasks > 1) { @@ -7511,17 +7511,17 @@ void ggml_graph_compute(struct ggml_context * ctx, struct ggml_cgraph * cgraph) } while (atomic_load(&state_shared.has_work)) { - ggml_lock_lock (&state_shared.spin); - ggml_lock_unlock(&state_shared.spin); + ggml_v1_lock_lock (&state_shared.spin); + ggml_v1_lock_unlock(&state_shared.spin); } // launch thread pool for (int j = 0; j < n_threads - 1; j++) { - workers[j].params = (struct ggml_compute_params) { - .type = GGML_TASK_COMPUTE, + workers[j].params = (struct ggml_v1_compute_params) { + .type = GGML_V1_TASK_COMPUTE, .ith = j + 1, .nth = node->n_tasks, - .wsize = cgraph->work ? ggml_nbytes(cgraph->work) : 0, + .wsize = cgraph->work ? ggml_v1_nbytes(cgraph->work) : 0, .wdata = cgraph->work ? cgraph->work->data : NULL, }; workers[j].node = node; @@ -7530,15 +7530,15 @@ void ggml_graph_compute(struct ggml_context * ctx, struct ggml_cgraph * cgraph) atomic_fetch_sub(&state_shared.n_ready, 1); while (atomic_load(&state_shared.n_ready) > 0) { - ggml_lock_lock (&state_shared.spin); - ggml_lock_unlock(&state_shared.spin); + ggml_v1_lock_lock (&state_shared.spin); + ggml_v1_lock_unlock(&state_shared.spin); } atomic_store(&state_shared.has_work, true); } - params.type = GGML_TASK_COMPUTE; - ggml_compute_forward(¶ms, node); + params.type = GGML_V1_TASK_COMPUTE; + ggml_v1_compute_forward(¶ms, node); // wait for thread pool if (node->n_tasks > 1) { @@ -7547,15 +7547,15 @@ void ggml_graph_compute(struct ggml_context * ctx, struct ggml_cgraph * cgraph) } while (atomic_load(&state_shared.has_work)) { - ggml_lock_lock (&state_shared.spin); - ggml_lock_unlock(&state_shared.spin); + ggml_v1_lock_lock (&state_shared.spin); + ggml_v1_lock_unlock(&state_shared.spin); } atomic_fetch_sub(&state_shared.n_ready, 1); while (atomic_load(&state_shared.n_ready) != 0) { - ggml_lock_lock (&state_shared.spin); - ggml_lock_unlock(&state_shared.spin); + ggml_v1_lock_lock (&state_shared.spin); + ggml_v1_lock_unlock(&state_shared.spin); } } @@ -7566,17 +7566,17 @@ void ggml_graph_compute(struct ggml_context * ctx, struct ggml_cgraph * cgraph) } while (atomic_load(&state_shared.has_work)) { - ggml_lock_lock (&state_shared.spin); - ggml_lock_unlock(&state_shared.spin); + ggml_v1_lock_lock (&state_shared.spin); + ggml_v1_lock_unlock(&state_shared.spin); } // launch thread pool for (int j = 0; j < n_threads - 1; j++) { - workers[j].params = (struct ggml_compute_params) { - .type = GGML_TASK_FINALIZE, + workers[j].params = (struct ggml_v1_compute_params) { + .type = GGML_V1_TASK_FINALIZE, .ith = j + 1, .nth = node->n_tasks, - .wsize = cgraph->work ? ggml_nbytes(cgraph->work) : 0, + .wsize = cgraph->work ? ggml_v1_nbytes(cgraph->work) : 0, .wdata = cgraph->work ? cgraph->work->data : NULL, }; workers[j].node = node; @@ -7585,15 +7585,15 @@ void ggml_graph_compute(struct ggml_context * ctx, struct ggml_cgraph * cgraph) atomic_fetch_sub(&state_shared.n_ready, 1); while (atomic_load(&state_shared.n_ready) > 0) { - ggml_lock_lock (&state_shared.spin); - ggml_lock_unlock(&state_shared.spin); + ggml_v1_lock_lock (&state_shared.spin); + ggml_v1_lock_unlock(&state_shared.spin); } atomic_store(&state_shared.has_work, true); } - params.type = GGML_TASK_FINALIZE; - ggml_compute_forward(¶ms, node); + params.type = GGML_V1_TASK_FINALIZE; + ggml_v1_compute_forward(¶ms, node); // wait for thread pool if (node->n_tasks > 1) { @@ -7602,22 +7602,22 @@ void ggml_graph_compute(struct ggml_context * ctx, struct ggml_cgraph * cgraph) } while (atomic_load(&state_shared.has_work)) { - ggml_lock_lock (&state_shared.spin); - ggml_lock_unlock(&state_shared.spin); + ggml_v1_lock_lock (&state_shared.spin); + ggml_v1_lock_unlock(&state_shared.spin); } atomic_fetch_sub(&state_shared.n_ready, 1); while (atomic_load(&state_shared.n_ready) != 0) { - ggml_lock_lock (&state_shared.spin); - ggml_lock_unlock(&state_shared.spin); + ggml_v1_lock_lock (&state_shared.spin); + ggml_v1_lock_unlock(&state_shared.spin); } } // performance stats (node) { - int64_t perf_cycles_cur = ggml_perf_cycles() - perf_node_start_cycles; - int64_t perf_time_us_cur = ggml_perf_time_us() - perf_node_start_time_us; + int64_t perf_cycles_cur = ggml_v1_perf_cycles() - perf_node_start_cycles; + int64_t perf_time_us_cur = ggml_v1_perf_time_us() - perf_node_start_time_us; node->perf_runs++; node->perf_cycles += perf_cycles_cur; @@ -7631,85 +7631,85 @@ void ggml_graph_compute(struct ggml_context * ctx, struct ggml_cgraph * cgraph) atomic_store(&state_shared.has_work, true); for (int j = 0; j < n_threads - 1; j++) { - int rc = ggml_thread_join(workers[j].thrd, NULL); + int rc = ggml_v1_thread_join(workers[j].thrd, NULL); assert(rc == 0); UNUSED(rc); } - ggml_lock_destroy(&state_shared.spin); + ggml_v1_lock_destroy(&state_shared.spin); } // performance stats (graph) { - int64_t perf_cycles_cur = ggml_perf_cycles() - perf_start_cycles; - int64_t perf_time_us_cur = ggml_perf_time_us() - perf_start_time_us; + int64_t perf_cycles_cur = ggml_v1_perf_cycles() - perf_start_cycles; + int64_t perf_time_us_cur = ggml_v1_perf_time_us() - perf_start_time_us; cgraph->perf_runs++; cgraph->perf_cycles += perf_cycles_cur; cgraph->perf_time_us += perf_time_us_cur; - GGML_PRINT_DEBUG("%s: perf (%d) - cpu = %.3f / %.3f ms, wall = %.3f / %.3f ms\n", + GGML_V1_PRINT_DEBUG("%s: perf (%d) - cpu = %.3f / %.3f ms, wall = %.3f / %.3f ms\n", __func__, cgraph->perf_runs, - (double) perf_cycles_cur / (double) ggml_cycles_per_ms(), - (double) cgraph->perf_cycles / (double) ggml_cycles_per_ms() / (double) cgraph->perf_runs, + (double) perf_cycles_cur / (double) ggml_v1_cycles_per_ms(), + (double) cgraph->perf_cycles / (double) ggml_v1_cycles_per_ms() / (double) cgraph->perf_runs, (double) perf_time_us_cur / 1000.0, (double) cgraph->perf_time_us / 1000.0 / cgraph->perf_runs); } } -void ggml_graph_reset(struct ggml_cgraph * cgraph) { +void ggml_v1_graph_reset(struct ggml_v1_cgraph * cgraph) { for (int i = 0; i < cgraph->n_nodes; i++) { - struct ggml_tensor * grad = cgraph->grads[i]; + struct ggml_v1_tensor * grad = cgraph->grads[i]; if (grad) { - ggml_set_zero(grad); + ggml_v1_set_zero(grad); } } } -void ggml_graph_print(const struct ggml_cgraph * cgraph) { - int64_t perf_total_per_op_us[GGML_OP_COUNT] = {0}; +void ggml_v1_graph_print(const struct ggml_v1_cgraph * cgraph) { + int64_t perf_total_per_op_us[GGML_V1_OP_COUNT] = {0}; - GGML_PRINT("=== GRAPH ===\n"); + GGML_V1_PRINT("=== GRAPH ===\n"); - GGML_PRINT_DEBUG("n_threads = %d\n", cgraph->n_threads); - GGML_PRINT_DEBUG("total work size = %zu bytes\n",cgraph->work_size); + GGML_V1_PRINT_DEBUG("n_threads = %d\n", cgraph->n_threads); + GGML_V1_PRINT_DEBUG("total work size = %zu bytes\n",cgraph->work_size); - GGML_PRINT("n_nodes = %d\n", cgraph->n_nodes); + GGML_V1_PRINT("n_nodes = %d\n", cgraph->n_nodes); for (int i = 0; i < cgraph->n_nodes; i++) { - struct ggml_tensor * node = cgraph->nodes[i]; + struct ggml_v1_tensor * node = cgraph->nodes[i]; perf_total_per_op_us[node->op] += node->perf_time_us; - GGML_PRINT(" - %3d: [ %6d, %6d, %6d] %16s %s (%3d) cpu = %7.3f / %7.3f ms, wall = %7.3f / %7.3f ms\n", + GGML_V1_PRINT(" - %3d: [ %6d, %6d, %6d] %16s %s (%3d) cpu = %7.3f / %7.3f ms, wall = %7.3f / %7.3f ms\n", i, node->ne[0], node->ne[1], node->ne[2], - GGML_OP_LABEL[node->op], node->is_param ? "x" : node->grad ? "g" : " ", node->perf_runs, - (double) node->perf_cycles / (double) ggml_cycles_per_ms(), - (double) node->perf_cycles / (double) ggml_cycles_per_ms() / (double) node->perf_runs, + GGML_V1_OP_LABEL[node->op], node->is_param ? "x" : node->grad ? "g" : " ", node->perf_runs, + (double) node->perf_cycles / (double) ggml_v1_cycles_per_ms(), + (double) node->perf_cycles / (double) ggml_v1_cycles_per_ms() / (double) node->perf_runs, (double) node->perf_time_us / 1000.0, (double) node->perf_time_us / 1000.0 / node->perf_runs); } - GGML_PRINT("n_leafs = %d\n", cgraph->n_leafs); + GGML_V1_PRINT("n_leafs = %d\n", cgraph->n_leafs); for (int i = 0; i < cgraph->n_leafs; i++) { - struct ggml_tensor * node = cgraph->leafs[i]; + struct ggml_v1_tensor * node = cgraph->leafs[i]; - GGML_PRINT(" - %3d: [ %6d, %6d] %8s\n", + GGML_V1_PRINT(" - %3d: [ %6d, %6d] %8s\n", i, node->ne[0], node->ne[1], - GGML_OP_LABEL[node->op]); + GGML_V1_OP_LABEL[node->op]); } - for (int i = 0; i < GGML_OP_COUNT; i++) { - GGML_PRINT("perf_total_per_op_us[%16s] = %7.3f ms\n", GGML_OP_LABEL[i], (double) perf_total_per_op_us[i] / 1000.0); + for (int i = 0; i < GGML_V1_OP_COUNT; i++) { + GGML_V1_PRINT("perf_total_per_op_us[%16s] = %7.3f ms\n", GGML_V1_OP_LABEL[i], (double) perf_total_per_op_us[i] / 1000.0); } - GGML_PRINT("========================================\n"); + GGML_V1_PRINT("========================================\n"); } // check if node is part of the graph -static bool ggml_graph_find(const struct ggml_cgraph * cgraph, const struct ggml_tensor * node) { +static bool ggml_v1_graph_find(const struct ggml_v1_cgraph * cgraph, const struct ggml_v1_tensor * node) { if (cgraph == NULL) { return true; } @@ -7723,9 +7723,9 @@ static bool ggml_graph_find(const struct ggml_cgraph * cgraph, const struct ggml return false; } -static struct ggml_tensor * ggml_graph_get_parent(const struct ggml_cgraph * cgraph, const struct ggml_tensor * node) { +static struct ggml_v1_tensor * ggml_v1_graph_get_parent(const struct ggml_v1_cgraph * cgraph, const struct ggml_v1_tensor * node) { for (int i = 0; i < cgraph->n_nodes; i++) { - struct ggml_tensor * parent = cgraph->nodes[i]; + struct ggml_v1_tensor * parent = cgraph->nodes[i]; if (parent->grad == node) { return parent; @@ -7735,7 +7735,7 @@ static struct ggml_tensor * ggml_graph_get_parent(const struct ggml_cgraph * cgr return NULL; } -void ggml_graph_dump_dot(const struct ggml_cgraph * gb, const struct ggml_cgraph * gf, const char * filename) { +void ggml_v1_graph_dump_dot(const struct ggml_v1_cgraph * gb, const struct ggml_v1_cgraph * gf, const char * filename) { char color[16]; FILE * fp = fopen(filename, "w"); @@ -7746,16 +7746,16 @@ void ggml_graph_dump_dot(const struct ggml_cgraph * gb, const struct ggml_cgraph fprintf(fp, " rankdir = LR;\n"); for (int i = 0; i < gb->n_nodes; i++) { - struct ggml_tensor * node = gb->nodes[i]; + struct ggml_v1_tensor * node = gb->nodes[i]; - if (ggml_graph_get_parent(gb, node) != NULL) { + if (ggml_v1_graph_get_parent(gb, node) != NULL) { continue; } if (node->is_param) { snprintf(color, sizeof(color), "yellow"); } else if (node->grad) { - if (ggml_graph_find(gf, node)) { + if (ggml_v1_graph_find(gf, node)) { snprintf(color, sizeof(color), "green"); } else { snprintf(color, sizeof(color), "lightblue"); @@ -7769,25 +7769,25 @@ style = filled; fillcolor = %s; shape = record; \ label=\"%d [%d, %d] | %s", (void *) node, color, i, node->ne[0], node->ne[1], - GGML_OP_SYMBOL[node->op]); + GGML_V1_OP_SYMBOL[node->op]); if (node->grad) { - fprintf(fp, " | %s\"; ]\n", GGML_OP_SYMBOL[node->grad->op]); + fprintf(fp, " | %s\"; ]\n", GGML_V1_OP_SYMBOL[node->grad->op]); } else { fprintf(fp, "\"; ]\n"); } } for (int i = 0; i < gb->n_leafs; i++) { - struct ggml_tensor * node = gb->leafs[i]; + struct ggml_v1_tensor * node = gb->leafs[i]; snprintf(color, sizeof(color), "pink"); - if (ggml_nelements(node) == 1) { + if (ggml_v1_nelements(node) == 1) { fprintf(fp, " \"%p\" [ \ style = filled; fillcolor = %s; shape = record; \ label=\"%.1e\"; ]\n", - (void *) node, color, ggml_get_f32_1d(node, 0)); + (void *) node, color, ggml_v1_get_f32_1d(node, 0)); } else { fprintf(fp, " \"%p\" [ \ style = filled; fillcolor = %s; shape = record; \ @@ -7798,12 +7798,12 @@ label=\"CONST %d [%d, %d]\"; ]\n", } for (int i = 0; i < gb->n_nodes; i++) { - struct ggml_tensor * node = gb->nodes[i]; + struct ggml_v1_tensor * node = gb->nodes[i]; - struct ggml_tensor * parent = ggml_graph_get_parent(gb, node); + struct ggml_v1_tensor * parent = ggml_v1_graph_get_parent(gb, node); if (node->src0) { - struct ggml_tensor * parent0 = ggml_graph_get_parent(gb, node->src0); + struct ggml_v1_tensor * parent0 = ggml_v1_graph_get_parent(gb, node->src0); fprintf(fp, " \"%p\":%s -> \"%p\":%s [ arrowhead = %s; style = %s; label = \"x\"; ]\n", parent0 ? (void *) parent0 : (void *) node->src0, @@ -7815,7 +7815,7 @@ label=\"CONST %d [%d, %d]\"; ]\n", } if (node->src1) { - struct ggml_tensor * parent1 = ggml_graph_get_parent(gb, node->src1); + struct ggml_v1_tensor * parent1 = ggml_v1_graph_get_parent(gb, node->src1); fprintf(fp, " \"%p\":%s -> \"%p\":%s [ arrowhead = %s; style = %s; label = \"y\"; ]\n", parent1 ? (void *) parent1 : (void *) node->src1, @@ -7828,7 +7828,7 @@ label=\"CONST %d [%d, %d]\"; ]\n", } for (int i = 0; i < gb->n_leafs; i++) { - struct ggml_tensor * node = gb->leafs[i]; + struct ggml_v1_tensor * node = gb->leafs[i]; if (node->src0) { fprintf(fp, " \"%p\":%s -> \"%p\":%s [ label = \"x\"; ]\n", @@ -7847,40 +7847,40 @@ label=\"CONST %d [%d, %d]\"; ]\n", fclose(fp); - GGML_PRINT("%s: dot -Tpng %s -o %s.png && open %s.png\n", __func__, filename, filename, filename); + GGML_V1_PRINT("%s: dot -Tpng %s -o %s.png && open %s.png\n", __func__, filename, filename, filename); } //////////////////////////////////////////////////////////////////////////////// -static void ggml_opt_set_params(int np, struct ggml_tensor * const ps[], const float * x) { +static void ggml_v1_opt_set_params(int np, struct ggml_v1_tensor * const ps[], const float * x) { int i = 0; for (int p = 0; p < np; ++p) { - const int ne = ggml_nelements(ps[p]) ; + const int ne = ggml_v1_nelements(ps[p]) ; // TODO: add function to set tensor from array for (int j = 0; j < ne; ++j) { - ggml_set_f32_1d(ps[p], j, x[i++]); + ggml_v1_set_f32_1d(ps[p], j, x[i++]); } } } -static void ggml_opt_get_params(int np, struct ggml_tensor * const ps[], float * x) { +static void ggml_v1_opt_get_params(int np, struct ggml_v1_tensor * const ps[], float * x) { int i = 0; for (int p = 0; p < np; ++p) { - const int ne = ggml_nelements(ps[p]) ; + const int ne = ggml_v1_nelements(ps[p]) ; // TODO: add function to get all elements at once for (int j = 0; j < ne; ++j) { - x[i++] = ggml_get_f32_1d(ps[p], j); + x[i++] = ggml_v1_get_f32_1d(ps[p], j); } } } -static void ggml_opt_get_grad(int np, struct ggml_tensor * const ps[], float * g) { +static void ggml_v1_opt_get_grad(int np, struct ggml_v1_tensor * const ps[], float * g) { int i = 0; for (int p = 0; p < np; ++p) { - const int ne = ggml_nelements(ps[p]) ; + const int ne = ggml_v1_nelements(ps[p]) ; // TODO: add function to get all elements at once for (int j = 0; j < ne; ++j) { - g[i++] = ggml_get_f32_1d(ps[p]->grad, j); + g[i++] = ggml_v1_get_f32_1d(ps[p]->grad, j); } } } @@ -7891,30 +7891,30 @@ static void ggml_opt_get_grad(int np, struct ggml_tensor * const ps[], float * g // ref: https://arxiv.org/pdf/1412.6980.pdf // -static enum ggml_opt_result ggml_opt_adam( - struct ggml_context * ctx, - struct ggml_opt_params params, - struct ggml_tensor * f, - struct ggml_cgraph * gf, - struct ggml_cgraph * gb) { - assert(ggml_is_scalar(f)); +static enum ggml_v1_opt_result ggml_v1_opt_adam( + struct ggml_v1_context * ctx, + struct ggml_v1_opt_params params, + struct ggml_v1_tensor * f, + struct ggml_v1_cgraph * gf, + struct ggml_v1_cgraph * gb) { + assert(ggml_v1_is_scalar(f)); gf->n_threads = params.n_threads; gb->n_threads = params.n_threads; // these will store the parameters we want to optimize - struct ggml_tensor * ps[GGML_MAX_PARAMS]; + struct ggml_v1_tensor * ps[GGML_V1_MAX_PARAMS]; int np = 0; int nx = 0; for (int i = 0; i < gf->n_nodes; ++i) { if (gf->nodes[i]->is_param) { - GGML_PRINT_DEBUG("found param %d: grad->op = %d\n", np, gf->nodes[i]->grad->op); + GGML_V1_PRINT_DEBUG("found param %d: grad->op = %d\n", np, gf->nodes[i]->grad->op); - assert(np < GGML_MAX_PARAMS); + assert(np < GGML_V1_MAX_PARAMS); ps[np++] = gf->nodes[i]; - nx += ggml_nelements(gf->nodes[i]); + nx += ggml_v1_nelements(gf->nodes[i]); } } @@ -7924,29 +7924,29 @@ static enum ggml_opt_result ggml_opt_adam( const float beta2 = params.adam.beta2; const float eps = params.adam.eps; - float * x = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, nx)->data; // view of the parameters - float * g1 = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, nx)->data; // gradient - float * g2 = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, nx)->data; // gradient squared - float * m = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, nx)->data; // first moment - float * v = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, nx)->data; // second moment - float * mh = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, nx)->data; // first moment hat - float * vh = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, nx)->data; // second moment hat + float * x = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, nx)->data; // view of the parameters + float * g1 = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, nx)->data; // gradient + float * g2 = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, nx)->data; // gradient squared + float * m = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, nx)->data; // first moment + float * v = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, nx)->data; // second moment + float * mh = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, nx)->data; // first moment hat + float * vh = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, nx)->data; // second moment hat - float * pf = params.past > 0 ? ggml_new_tensor_1d(ctx, GGML_TYPE_F32, params.past)->data : NULL; // past function values + float * pf = params.past > 0 ? ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, params.past)->data : NULL; // past function values // initialize - ggml_vec_set_f32(nx, m, 0.0f); - ggml_vec_set_f32(nx, v, 0.0f); + ggml_v1_vec_set_f32(nx, m, 0.0f); + ggml_v1_vec_set_f32(nx, v, 0.0f); // update view - ggml_opt_get_params(np, ps, x); + ggml_v1_opt_get_params(np, ps, x); // compute the function value - ggml_graph_reset (gf); - ggml_set_f32 (f->grad, 1.0f); - ggml_graph_compute(ctx, gb); + ggml_v1_graph_reset (gf); + ggml_v1_set_f32 (f->grad, 1.0f); + ggml_v1_graph_compute(ctx, gb); - float fx_prev = ggml_get_f32_1d(f, 0); + float fx_prev = ggml_v1_get_f32_1d(f, 0); if (pf) { pf[0] = fx_prev; } @@ -7956,67 +7956,67 @@ static enum ggml_opt_result ggml_opt_adam( // run the optimizer for (int t = 0; t < params.adam.n_iter; ++t) { - GGML_PRINT_DEBUG ("=== iter %d ===\n", t); + GGML_V1_PRINT_DEBUG ("=== iter %d ===\n", t); - GGML_PRINT_DEBUG ("f = %10.6f\n", ggml_get_f32_1d(f, 0)); - GGML_PRINT_DEBUG_5("df/dx0 = %10.6f\n", ggml_get_f32_1d(ps[0]->grad, 0)); - GGML_PRINT_DEBUG_5("df/dx1 = %10.6f\n", ggml_get_f32_1d(ps[1]->grad, 0)); + GGML_V1_PRINT_DEBUG ("f = %10.6f\n", ggml_v1_get_f32_1d(f, 0)); + GGML_V1_PRINT_DEBUG_5("df/dx0 = %10.6f\n", ggml_v1_get_f32_1d(ps[0]->grad, 0)); + GGML_V1_PRINT_DEBUG_5("df/dx1 = %10.6f\n", ggml_v1_get_f32_1d(ps[1]->grad, 0)); for (int i = 0; i < np; ++i) { - GGML_PRINT_DEBUG("param %d: %10.6f, g = %10.6f\n", i, - ggml_get_f32_1d(ps[i], 0), ggml_get_f32_1d(ps[i]->grad, 0)); + GGML_V1_PRINT_DEBUG("param %d: %10.6f, g = %10.6f\n", i, + ggml_v1_get_f32_1d(ps[i], 0), ggml_v1_get_f32_1d(ps[i]->grad, 0)); } - const int64_t t_start_wall = ggml_time_us(); - const int64_t t_start_cpu = ggml_cycles(); + const int64_t t_start_wall = ggml_v1_time_us(); + const int64_t t_start_cpu = ggml_v1_cycles(); UNUSED(t_start_wall); UNUSED(t_start_cpu); { // update the gradient - ggml_opt_get_grad(np, ps, g1); + ggml_v1_opt_get_grad(np, ps, g1); // m_t = beta1*m_t-1 + (1 - beta1)*g_t - ggml_vec_scale_f32(nx, m, beta1); - ggml_vec_mad_f32 (nx, m, g1, 1.0f - beta1); + ggml_v1_vec_scale_f32(nx, m, beta1); + ggml_v1_vec_mad_f32 (nx, m, g1, 1.0f - beta1); // g2 = g1^2 - ggml_vec_sqr_f32 (nx, g2, g1); + ggml_v1_vec_sqr_f32 (nx, g2, g1); // v_t = beta2*v_t-1 + (1 - beta2)*g_t^2 - ggml_vec_scale_f32(nx, v, beta2); - ggml_vec_mad_f32 (nx, v, g2, 1.0f - beta2); + ggml_v1_vec_scale_f32(nx, v, beta2); + ggml_v1_vec_mad_f32 (nx, v, g2, 1.0f - beta2); // m^hat = m_t / (1 - beta1^t) // v^hat = v_t / (1 - beta2^t) // x_t = x_t-1 - alpha*m^hat/(sqrt(v^hat) + eps) - ggml_vec_cpy_f32 (nx, mh, m); - ggml_vec_cpy_f32 (nx, vh, v); + ggml_v1_vec_cpy_f32 (nx, mh, m); + ggml_v1_vec_cpy_f32 (nx, vh, v); - ggml_vec_scale_f32(nx, mh, alpha/(1.0f - powf(beta1, t + 1))); - ggml_vec_scale_f32(nx, vh, 1.0f/(1.0f - powf(beta2, t + 1))); + ggml_v1_vec_scale_f32(nx, mh, alpha/(1.0f - powf(beta1, t + 1))); + ggml_v1_vec_scale_f32(nx, vh, 1.0f/(1.0f - powf(beta2, t + 1))); - ggml_vec_sqrt_f32 (nx, vh, vh); - ggml_vec_acc1_f32 (nx, vh, eps); + ggml_v1_vec_sqrt_f32 (nx, vh, vh); + ggml_v1_vec_acc1_f32 (nx, vh, eps); - ggml_vec_div_f32 (nx, mh, mh, vh); - ggml_vec_sub_f32 (nx, x, x, mh); + ggml_v1_vec_div_f32 (nx, mh, mh, vh); + ggml_v1_vec_sub_f32 (nx, x, x, mh); // update the parameters - ggml_opt_set_params(np, ps, x); + ggml_v1_opt_set_params(np, ps, x); } - ggml_graph_reset (gf); - ggml_set_f32 (f->grad, 1.0f); - ggml_graph_compute(ctx, gb); + ggml_v1_graph_reset (gf); + ggml_v1_set_f32 (f->grad, 1.0f); + ggml_v1_graph_compute(ctx, gb); - const float fx = ggml_get_f32_1d(f, 0); + const float fx = ggml_v1_get_f32_1d(f, 0); // check convergence if (fabsf(fx - fx_prev)/fx < params.adam.eps_f) { - GGML_PRINT_DEBUG("converged\n"); + GGML_V1_PRINT_DEBUG("converged\n"); - return GGML_OPT_OK; + return GGML_V1_OPT_OK; } // delta-based convergence test @@ -8026,7 +8026,7 @@ static enum ggml_opt_result ggml_opt_adam( const float rate = (pf[t%params.past] - fx)/fx; if (fabs(rate) < params.delta) { - return GGML_OPT_OK; + return GGML_V1_OPT_OK; } } @@ -8042,7 +8042,7 @@ static enum ggml_opt_result ggml_opt_adam( ++n_no_improvement; if (n_no_improvement >= params.max_no_improvement) { - return GGML_OPT_OK; + return GGML_V1_OPT_OK; } } } @@ -8050,17 +8050,17 @@ static enum ggml_opt_result ggml_opt_adam( fx_prev = fx; { - const int64_t t_end_cpu = ggml_cycles(); - GGML_PRINT_DEBUG("time iter: %5.3f s\n", ((float)(t_end_cpu - t_start_cpu))/CLOCKS_PER_SEC); + const int64_t t_end_cpu = ggml_v1_cycles(); + GGML_V1_PRINT_DEBUG("time iter: %5.3f s\n", ((float)(t_end_cpu - t_start_cpu))/CLOCKS_PER_SEC); UNUSED(t_end_cpu); - const int64_t t_end_wall = ggml_time_us(); - GGML_PRINT_DEBUG("wall time iter: %5.3f s\n", (t_end_wall - t_start_wall)/1e6); + const int64_t t_end_wall = ggml_v1_time_us(); + GGML_V1_PRINT_DEBUG("wall time iter: %5.3f s\n", (t_end_wall - t_start_wall)/1e6); UNUSED(t_end_wall); } } - return GGML_OPT_DID_NOT_CONVERGE; + return GGML_V1_OPT_DID_NOT_CONVERGE; } // @@ -8071,16 +8071,16 @@ static enum ggml_opt_result ggml_opt_adam( // https://github.com/chokkan/liblbfgs // -struct ggml_lbfgs_iteration_data { +struct ggml_v1_lbfgs_iteration_data { float alpha; float ys; float * s; float * y; }; -static enum ggml_opt_result linesearch_backtracking( - struct ggml_context * ctx, - const struct ggml_opt_params * params, +static enum ggml_v1_opt_result linesearch_backtracking( + struct ggml_v1_context * ctx, + const struct ggml_v1_opt_params * params, int nx, float * x, float * fx, @@ -8088,11 +8088,11 @@ static enum ggml_opt_result linesearch_backtracking( float * d, float * step, const float * xp, - struct ggml_tensor * f, - struct ggml_cgraph * gf, - struct ggml_cgraph * gb, + struct ggml_v1_tensor * f, + struct ggml_v1_cgraph * gf, + struct ggml_v1_cgraph * gb, const int np, - struct ggml_tensor * ps[]) { + struct ggml_v1_tensor * ps[]) { int count = 0; float width = 0.0f; @@ -8105,15 +8105,15 @@ static enum ggml_opt_result linesearch_backtracking( const float inc = 2.1f; if (*step <= 0.) { - return GGML_LINESEARCH_INVALID_PARAMETERS; + return GGML_V1_LINESEARCH_INVALID_PARAMETERS; } // compute the initial gradient in the search direction - ggml_vec_dot_f32(nx, &dginit, g, d); + ggml_v1_vec_dot_f32(nx, &dginit, g, d); // make sure that d points to a descent direction if (0 < dginit) { - return GGML_LINESEARCH_FAIL; + return GGML_V1_LINESEARCH_FAIL; } // initialize local variables @@ -8121,20 +8121,20 @@ static enum ggml_opt_result linesearch_backtracking( dgtest = params->lbfgs.ftol*dginit; while (true) { - ggml_vec_cpy_f32(nx, x, xp); - ggml_vec_mad_f32(nx, x, d, *step); + ggml_v1_vec_cpy_f32(nx, x, xp); + ggml_v1_vec_mad_f32(nx, x, d, *step); // evaluate the function and gradient values { - ggml_opt_set_params(np, ps, x); + ggml_v1_opt_set_params(np, ps, x); - ggml_graph_reset (gf); - ggml_set_f32 (f->grad, 1.0f); - ggml_graph_compute(ctx, gb); + ggml_v1_graph_reset (gf); + ggml_v1_set_f32 (f->grad, 1.0f); + ggml_v1_graph_compute(ctx, gb); - ggml_opt_get_grad(np, ps, g); + ggml_v1_opt_get_grad(np, ps, g); - *fx = ggml_get_f32_1d(f, 0); + *fx = ggml_v1_get_f32_1d(f, 0); } ++count; @@ -8143,17 +8143,17 @@ static enum ggml_opt_result linesearch_backtracking( width = dec; } else { // Armijo condition is satisfied - if (params->lbfgs.linesearch == GGML_LINESEARCH_BACKTRACKING_ARMIJO) { + if (params->lbfgs.linesearch == GGML_V1_LINESEARCH_BACKTRACKING_ARMIJO) { return count; } - ggml_vec_dot_f32(nx, &dg, g, d); + ggml_v1_vec_dot_f32(nx, &dg, g, d); // check the Wolfe condition if (dg < params->lbfgs.wolfe * dginit) { width = inc; } else { - if(params->lbfgs.linesearch == GGML_LINESEARCH_BACKTRACKING_WOLFE) { + if(params->lbfgs.linesearch == GGML_V1_LINESEARCH_BACKTRACKING_WOLFE) { // regular Wolfe conditions return count; } @@ -8161,7 +8161,7 @@ static enum ggml_opt_result linesearch_backtracking( if(dg > -params->lbfgs.wolfe*dginit) { width = dec; } else { - // strong Wolfe condition (GGML_LINESEARCH_BACKTRACKING_STRONG_WOLFE) + // strong Wolfe condition (GGML_V1_LINESEARCH_BACKTRACKING_STRONG_WOLFE) return count; } return count; @@ -8169,31 +8169,31 @@ static enum ggml_opt_result linesearch_backtracking( } if (*step < params->lbfgs.min_step) { - return GGML_LINESEARCH_MINIMUM_STEP; + return GGML_V1_LINESEARCH_MINIMUM_STEP; } if (*step > params->lbfgs.max_step) { - return GGML_LINESEARCH_MAXIMUM_STEP; + return GGML_V1_LINESEARCH_MAXIMUM_STEP; } if (params->lbfgs.max_linesearch <= count) { - return GGML_LINESEARCH_MAXIMUM_ITERATIONS; + return GGML_V1_LINESEARCH_MAXIMUM_ITERATIONS; } (*step) *= width; } - return GGML_LINESEARCH_FAIL; + return GGML_V1_LINESEARCH_FAIL; } -static enum ggml_opt_result ggml_opt_lbfgs( - struct ggml_context * ctx, - struct ggml_opt_params params, - struct ggml_tensor * f, - struct ggml_cgraph * gf, - struct ggml_cgraph * gb) { - if (params.lbfgs.linesearch == GGML_LINESEARCH_BACKTRACKING_WOLFE || - params.lbfgs.linesearch == GGML_LINESEARCH_BACKTRACKING_STRONG_WOLFE) { +static enum ggml_v1_opt_result ggml_v1_opt_lbfgs( + struct ggml_v1_context * ctx, + struct ggml_v1_opt_params params, + struct ggml_v1_tensor * f, + struct ggml_v1_cgraph * gf, + struct ggml_v1_cgraph * gb) { + if (params.lbfgs.linesearch == GGML_V1_LINESEARCH_BACKTRACKING_WOLFE || + params.lbfgs.linesearch == GGML_V1_LINESEARCH_BACKTRACKING_STRONG_WOLFE) { if (params.lbfgs.wolfe <= params.lbfgs.ftol || 1. <= params.lbfgs.wolfe) { - return GGML_OPT_INVALID_WOLFE; + return GGML_V1_OPT_INVALID_WOLFE; } } @@ -8203,28 +8203,28 @@ static enum ggml_opt_result ggml_opt_lbfgs( const int m = params.lbfgs.m; // these will store the parameters we want to optimize - struct ggml_tensor * ps[GGML_MAX_PARAMS]; + struct ggml_v1_tensor * ps[GGML_V1_MAX_PARAMS]; int np = 0; int nx = 0; for (int i = 0; i < gf->n_nodes; ++i) { if (gf->nodes[i]->is_param) { - GGML_PRINT_DEBUG("found param %d: grad->op = %d\n", np, gf->nodes[i]->grad->op); + GGML_V1_PRINT_DEBUG("found param %d: grad->op = %d\n", np, gf->nodes[i]->grad->op); - assert(np < GGML_MAX_PARAMS); + assert(np < GGML_V1_MAX_PARAMS); ps[np++] = gf->nodes[i]; - nx += ggml_nelements(gf->nodes[i]); + nx += ggml_v1_nelements(gf->nodes[i]); } } - float * x = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, nx)->data; // current parameters - float * xp = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, nx)->data; // previous parameters - float * g = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, nx)->data; // current gradient - float * gp = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, nx)->data; // previous gradient - float * d = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, nx)->data; // search direction + float * x = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, nx)->data; // current parameters + float * xp = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, nx)->data; // previous parameters + float * g = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, nx)->data; // current gradient + float * gp = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, nx)->data; // previous gradient + float * d = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, nx)->data; // search direction - float * pf = params.past > 0 ? ggml_new_tensor_1d(ctx, GGML_TYPE_F32, params.past)->data : NULL; // past function values + float * pf = params.past > 0 ? ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, params.past)->data : NULL; // past function values float fx = 0.0f; // cost function value float xnorm = 0.0f; // ||x|| @@ -8232,29 +8232,29 @@ static enum ggml_opt_result ggml_opt_lbfgs( float step = 0.0f; // initialize x from the graph nodes - ggml_opt_get_params(np, ps, x); + ggml_v1_opt_get_params(np, ps, x); // the L-BFGS memory - struct ggml_lbfgs_iteration_data * lm = alloca(sizeof(struct ggml_lbfgs_iteration_data)*m); + struct ggml_v1_lbfgs_iteration_data * lm = alloca(sizeof(struct ggml_v1_lbfgs_iteration_data)*m); for (int i = 0; i < m; ++i) { lm[i].alpha = 0.0f; lm[i].ys = 0.0f; - lm[i].s = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, nx)->data; - lm[i].y = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, nx)->data; + lm[i].s = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, nx)->data; + lm[i].y = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, nx)->data; } // evaluate the function value and its gradient { - ggml_opt_set_params(np, ps, x); + ggml_v1_opt_set_params(np, ps, x); - ggml_graph_reset (gf); - ggml_set_f32 (f->grad, 1.0f); - ggml_graph_compute(ctx, gb); + ggml_v1_graph_reset (gf); + ggml_v1_set_f32 (f->grad, 1.0f); + ggml_v1_graph_compute(ctx, gb); - ggml_opt_get_grad(np, ps, g); + ggml_v1_opt_get_grad(np, ps, g); - fx = ggml_get_f32_1d(f, 0); + fx = ggml_v1_get_f32_1d(f, 0); } if (pf) { @@ -8264,11 +8264,11 @@ static enum ggml_opt_result ggml_opt_lbfgs( float fx_best = fx; // search direction = -gradient - ggml_vec_neg_f32(nx, d, g); + ggml_v1_vec_neg_f32(nx, d, g); // ||x||, ||g|| - ggml_vec_norm_f32(nx, &xnorm, x); - ggml_vec_norm_f32(nx, &gnorm, g); + ggml_v1_vec_norm_f32(nx, &xnorm, x); + ggml_v1_vec_norm_f32(nx, &gnorm, g); if (xnorm < 1.0f) { xnorm = 1.0f; @@ -8276,11 +8276,11 @@ static enum ggml_opt_result ggml_opt_lbfgs( // already optimized if (gnorm/xnorm <= params.lbfgs.eps) { - return GGML_OPT_OK; + return GGML_V1_OPT_OK; } // initial step - ggml_vec_norm_inv_f32(nx, &step, d); + ggml_v1_vec_norm_inv_f32(nx, &step, d); int j = 0; int k = 1; @@ -8295,30 +8295,30 @@ static enum ggml_opt_result ggml_opt_lbfgs( while (true) { // store the current position and gradient vectors - ggml_vec_cpy_f32(nx, xp, x); - ggml_vec_cpy_f32(nx, gp, g); + ggml_v1_vec_cpy_f32(nx, xp, x); + ggml_v1_vec_cpy_f32(nx, gp, g); ls = linesearch_backtracking(ctx, ¶ms, nx, x, &fx, g, d, &step, xp, f, gf, gb, np, ps); if (ls < 0) { // linesearch failed - go back to the previous point and return - ggml_vec_cpy_f32(nx, x, xp); - ggml_vec_cpy_f32(nx, g, gp); + ggml_v1_vec_cpy_f32(nx, x, xp); + ggml_v1_vec_cpy_f32(nx, g, gp); return ls; } - ggml_vec_norm_f32(nx, &xnorm, x); - ggml_vec_norm_f32(nx, &gnorm, g); + ggml_v1_vec_norm_f32(nx, &xnorm, x); + ggml_v1_vec_norm_f32(nx, &gnorm, g); - GGML_PRINT_DEBUG("f = %10.6f\n", ggml_get_f32_1d(f, 0)); + GGML_V1_PRINT_DEBUG("f = %10.6f\n", ggml_v1_get_f32_1d(f, 0)); if (xnorm < 1.0) { xnorm = 1.0; } if (gnorm/xnorm <= params.lbfgs.eps) { // converged - return GGML_OPT_OK; + return GGML_V1_OPT_OK; } // delta-based convergence test @@ -8328,7 +8328,7 @@ static enum ggml_opt_result ggml_opt_lbfgs( const float rate = (pf[k%params.past] - fx)/fx; if (fabs(rate) < params.delta) { - return GGML_OPT_OK; + return GGML_V1_OPT_OK; } } @@ -8344,29 +8344,29 @@ static enum ggml_opt_result ggml_opt_lbfgs( n_no_improvement++; if (n_no_improvement >= params.max_no_improvement) { - return GGML_OPT_OK; + return GGML_V1_OPT_OK; } } } if (params.lbfgs.n_iter != 0 && params.lbfgs.n_iter < k + 1) { // reached the maximum number of iterations - return GGML_OPT_DID_NOT_CONVERGE; + return GGML_V1_OPT_DID_NOT_CONVERGE; } // update vectors s and y: // s_{k+1} = x_{k+1} - x_{k} = \step * d_{k}. // y_{k+1} = g_{k+1} - g_{k}. // - ggml_vec_sub_f32(nx, lm[end].s, x, xp); - ggml_vec_sub_f32(nx, lm[end].y, g, gp); + ggml_v1_vec_sub_f32(nx, lm[end].s, x, xp); + ggml_v1_vec_sub_f32(nx, lm[end].y, g, gp); // compute scalars ys and yy: // ys = y^t \cdot s -> 1 / \rho. // yy = y^t \cdot y. // - ggml_vec_dot_f32(nx, &ys, lm[end].y, lm[end].s); - ggml_vec_dot_f32(nx, &yy, lm[end].y, lm[end].y); + ggml_v1_vec_dot_f32(nx, &ys, lm[end].y, lm[end].s); + ggml_v1_vec_dot_f32(nx, &yy, lm[end].y, lm[end].y); lm[end].ys = ys; @@ -8378,43 +8378,43 @@ static enum ggml_opt_result ggml_opt_lbfgs( end = (end + 1)%m; // initialize search direction with -g - ggml_vec_neg_f32(nx, d, g); + ggml_v1_vec_neg_f32(nx, d, g); j = end; for (int i = 0; i < bound; ++i) { j = (j + m - 1) % m; // \alpha_{j} = \rho_{j} s^{t}_{j} \cdot q_{k+1} - ggml_vec_dot_f32(nx, &lm[j].alpha, lm[j].s, d); + ggml_v1_vec_dot_f32(nx, &lm[j].alpha, lm[j].s, d); lm[j].alpha /= lm[j].ys; // q_{i} = q_{i+1} - \alpha_{i} y_{i} - ggml_vec_mad_f32(nx, d, lm[j].y, -lm[j].alpha); + ggml_v1_vec_mad_f32(nx, d, lm[j].y, -lm[j].alpha); } - ggml_vec_scale_f32(nx, d, ys/yy); + ggml_v1_vec_scale_f32(nx, d, ys/yy); for (int i = 0; i < bound; ++i) { // \beta_{j} = \rho_{j} y^t_{j} \cdot \gamma_{i} - ggml_vec_dot_f32(nx, &beta, lm[j].y, d); + ggml_v1_vec_dot_f32(nx, &beta, lm[j].y, d); beta /= lm[j].ys; // \gamma_{i+1} = \gamma_{i} + (\alpha_{j} - \beta_{j}) s_{j} - ggml_vec_mad_f32(nx, d, lm[j].s, lm[j].alpha - beta); + ggml_v1_vec_mad_f32(nx, d, lm[j].s, lm[j].alpha - beta); j = (j + 1)%m; } step = 1.0; } - return GGML_OPT_DID_NOT_CONVERGE; + return GGML_V1_OPT_DID_NOT_CONVERGE; } -struct ggml_opt_params ggml_opt_default_params(enum ggml_opt_type type) { - struct ggml_opt_params result; +struct ggml_v1_opt_params ggml_v1_opt_default_params(enum ggml_v1_opt_type type) { + struct ggml_v1_opt_params result; switch (type) { - case GGML_OPT_ADAM: + case GGML_V1_OPT_ADAM: { - result = (struct ggml_opt_params) { - .type = GGML_OPT_ADAM, + result = (struct ggml_v1_opt_params) { + .type = GGML_V1_OPT_ADAM, .n_threads = 1, .past = 0, .delta = 1e-5f, @@ -8435,10 +8435,10 @@ struct ggml_opt_params ggml_opt_default_params(enum ggml_opt_type type) { }, }; } break; - case GGML_OPT_LBFGS: + case GGML_V1_OPT_LBFGS: { - result = (struct ggml_opt_params) { - .type = GGML_OPT_LBFGS, + result = (struct ggml_v1_opt_params) { + .type = GGML_V1_OPT_LBFGS, .n_threads = 1, .past = 0, .delta = 1e-5f, @@ -8459,7 +8459,7 @@ struct ggml_opt_params ggml_opt_default_params(enum ggml_opt_type type) { .min_step = 1e-20f, .max_step = 1e+20f, - .linesearch = GGML_LINESEARCH_DEFAULT, + .linesearch = GGML_V1_LINESEARCH_DEFAULT, }, }; } break; @@ -8468,54 +8468,54 @@ struct ggml_opt_params ggml_opt_default_params(enum ggml_opt_type type) { return result; } -enum ggml_opt_result ggml_opt( - struct ggml_context * ctx, - struct ggml_opt_params params, - struct ggml_tensor * f) { +enum ggml_v1_opt_result ggml_v1_opt( + struct ggml_v1_context * ctx, + struct ggml_v1_opt_params params, + struct ggml_v1_tensor * f) { bool free_ctx = false; if (ctx == NULL) { - struct ggml_init_params params_ctx = { + struct ggml_v1_init_params params_ctx = { .mem_size = 16*1024*1024, .mem_buffer = NULL, }; - ctx = ggml_init(params_ctx); + ctx = ggml_v1_init(params_ctx); if (ctx == NULL) { - return GGML_OPT_NO_CONTEXT; + return GGML_V1_OPT_NO_CONTEXT; } free_ctx = true; } - enum ggml_opt_result result = GGML_OPT_OK; + enum ggml_v1_opt_result result = GGML_V1_OPT_OK; // build forward + backward compute graphs - struct ggml_cgraph gf = ggml_build_forward (f); - struct ggml_cgraph gb = ggml_build_backward(ctx, &gf, false); + struct ggml_v1_cgraph gf = ggml_v1_build_forward (f); + struct ggml_v1_cgraph gb = ggml_v1_build_backward(ctx, &gf, false); switch (params.type) { - case GGML_OPT_ADAM: + case GGML_V1_OPT_ADAM: { - result = ggml_opt_adam(ctx, params, f, &gf, &gb); + result = ggml_v1_opt_adam(ctx, params, f, &gf, &gb); } break; - case GGML_OPT_LBFGS: + case GGML_V1_OPT_LBFGS: { - result = ggml_opt_lbfgs(ctx, params, f, &gf, &gb); + result = ggml_v1_opt_lbfgs(ctx, params, f, &gf, &gb); } break; } if (params.print_forward_graph) { - ggml_graph_print (&gf); - ggml_graph_dump_dot(&gf, NULL, "opt-forward.dot"); + ggml_v1_graph_print (&gf); + ggml_v1_graph_dump_dot(&gf, NULL, "opt-forward.dot"); } if (params.print_backward_graph) { - ggml_graph_print (&gb); - ggml_graph_dump_dot(&gb, &gf, "opt-backward.dot"); + ggml_v1_graph_print (&gb); + ggml_v1_graph_dump_dot(&gb, &gf, "opt-backward.dot"); } if (free_ctx) { - ggml_free(ctx); + ggml_v1_free(ctx); } return result; @@ -8523,7 +8523,7 @@ enum ggml_opt_result ggml_opt( //////////////////////////////////////////////////////////////////////////////// -int ggml_cpu_has_avx(void) { +int ggml_v1_cpu_has_avx(void) { #if defined(__AVX__) return 1; #else @@ -8531,7 +8531,7 @@ int ggml_cpu_has_avx(void) { #endif } -int ggml_cpu_has_avx2(void) { +int ggml_v1_cpu_has_avx2(void) { #if defined(__AVX2__) return 1; #else @@ -8539,7 +8539,7 @@ int ggml_cpu_has_avx2(void) { #endif } -int ggml_cpu_has_avx512(void) { +int ggml_v1_cpu_has_avx512(void) { #if defined(__AVX512F__) return 1; #else @@ -8547,7 +8547,7 @@ int ggml_cpu_has_avx512(void) { #endif } -int ggml_cpu_has_fma(void) { +int ggml_v1_cpu_has_fma(void) { #if defined(__FMA__) return 1; #else @@ -8555,7 +8555,7 @@ int ggml_cpu_has_fma(void) { #endif } -int ggml_cpu_has_neon(void) { +int ggml_v1_cpu_has_neon(void) { #if defined(__ARM_NEON) return 1; #else @@ -8563,7 +8563,7 @@ int ggml_cpu_has_neon(void) { #endif } -int ggml_cpu_has_arm_fma(void) { +int ggml_v1_cpu_has_arm_fma(void) { #if defined(__ARM_FEATURE_FMA) return 1; #else @@ -8571,7 +8571,7 @@ int ggml_cpu_has_arm_fma(void) { #endif } -int ggml_cpu_has_f16c(void) { +int ggml_v1_cpu_has_f16c(void) { #if defined(__F16C__) return 1; #else @@ -8579,7 +8579,7 @@ int ggml_cpu_has_f16c(void) { #endif } -int ggml_cpu_has_fp16_va(void) { +int ggml_v1_cpu_has_fp16_va(void) { #if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) return 1; #else @@ -8587,7 +8587,7 @@ int ggml_cpu_has_fp16_va(void) { #endif } -int ggml_cpu_has_wasm_simd(void) { +int ggml_v1_cpu_has_wasm_simd(void) { #if defined(__wasm_simd128__) return 1; #else @@ -8595,15 +8595,15 @@ int ggml_cpu_has_wasm_simd(void) { #endif } -int ggml_cpu_has_blas(void) { -#if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS) +int ggml_v1_cpu_has_blas(void) { +#if defined(GGML_V1_USE_ACCELERATE) || defined(GGML_V1_USE_OPENBLAS) return 1; #else return 0; #endif } -int ggml_cpu_has_sse3(void) { +int ggml_v1_cpu_has_sse3(void) { #if defined(__SSE3__) return 1; #else @@ -8611,7 +8611,7 @@ int ggml_cpu_has_sse3(void) { #endif } -int ggml_cpu_has_vsx(void) { +int ggml_v1_cpu_has_vsx(void) { #if defined(__POWER9_VECTOR__) return 1; #else diff --git a/otherarch/ggml_v1.h b/otherarch/ggml_v1.h index 18f317bec..0debe0925 100644 --- a/otherarch/ggml_v1.h +++ b/otherarch/ggml_v1.h @@ -32,22 +32,22 @@ // For example, here we define the function: f(x) = a*x^2 + b // // { -// struct ggml_init_params params = { +// struct ggml_v1_init_params params = { // .mem_size = 16*1024*1024, // .mem_buffer = NULL, // }; // // // memory allocation happens here -// struct ggml_context * ctx = ggml_init(params); +// struct ggml_v1_context * ctx = ggml_v1_init(params); // -// struct ggml_tensor * x = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, 1); +// struct ggml_v1_tensor * x = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, 1); // -// ggml_set_param(ctx, x); // x is an input variable +// ggml_v1_set_param(ctx, x); // x is an input variable // -// struct ggml_tensor * a = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, 1); -// struct ggml_tensor * b = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, 1); -// struct ggml_tensor * x2 = ggml_mul(ctx, x, x); -// struct ggml_tensor * f = ggml_add(ctx, ggml_mul(ctx, a, x2), b); +// struct ggml_v1_tensor * a = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, 1); +// struct ggml_v1_tensor * b = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, 1); +// struct ggml_v1_tensor * x2 = ggml_v1_mul(ctx, x, x); +// struct ggml_v1_tensor * f = ggml_v1_add(ctx, ggml_v1_mul(ctx, a, x2), b); // // ... // } @@ -58,33 +58,33 @@ // { // ... // -// struct ggml_cgraph gf = ggml_build_forward(f); +// struct ggml_v1_cgraph gf = ggml_v1_build_forward(f); // // // set the input variable and parameter values -// ggml_set_f32(x, 2.0f); -// ggml_set_f32(a, 3.0f); -// ggml_set_f32(b, 4.0f); +// ggml_v1_set_f32(x, 2.0f); +// ggml_v1_set_f32(a, 3.0f); +// ggml_v1_set_f32(b, 4.0f); // -// ggml_graph_compute(ctx0, &gf); +// ggml_v1_graph_compute(ctx0, &gf); // -// printf("f = %f\n", ggml_get_f32_1d(f, 0)); +// printf("f = %f\n", ggml_v1_get_f32_1d(f, 0)); // // ... // } // -// The actual computation is performed in the ggml_graph_compute() function. +// The actual computation is performed in the ggml_v1_graph_compute() function. // -// The ggml_new_tensor_...() functions create new tensors. They are allocated in the memory buffer provided to the -// ggml_init() function. You have to be careful not to exceed the memory buffer size. Therefore, you have to know +// The ggml_v1_new_tensor_...() functions create new tensors. They are allocated in the memory buffer provided to the +// ggml_v1_init() function. You have to be careful not to exceed the memory buffer size. Therefore, you have to know // in advance how much memory you need for your computation. Alternatively, you can allocate a large enough memory -// and after defining the computation graph, call the ggml_used_mem() function to find out how much memory was +// and after defining the computation graph, call the ggml_v1_used_mem() function to find out how much memory was // actually needed. // -// The ggml_set_param() function marks a tensor as an input variable. This is used by the automatic +// The ggml_v1_set_param() function marks a tensor as an input variable. This is used by the automatic // differentiation and optimization algorithms. // // The described approach allows to define the function graph once and then compute its forward or backward graphs -// multiple times. All computations will use the same memory buffer allocated in the ggml_init() function. This way +// multiple times. All computations will use the same memory buffer allocated in the ggml_v1_init() function. This way // the user can avoid the memory allocation overhead at runtime. // // The library supports multi-dimensional tensors - up to 4 dimensions. The FP16 and FP32 data types are first class @@ -95,9 +95,9 @@ // clear that the library needs to support more complex operations. The way to support these operations is not clear // yet, but a few examples are demonstrated in the following operations: // -// - ggml_permute() -// - ggml_conv_1d_1s() -// - ggml_conv_1d_2s() +// - ggml_v1_permute() +// - ggml_v1_conv_1d_1s() +// - ggml_v1_conv_1d_2s() // // For each tensor operator, the library implements a forward and backward computation function. The forward function // computes the output tensor value given the input tensor values. The backward function computes the adjoint of the @@ -108,20 +108,20 @@ // https://www.youtube.com/watch?v=wG_nF1awSSY // // -// ## Tensor data (struct ggml_tensor) +// ## Tensor data (struct ggml_v1_tensor) // -// The tensors are stored in memory via the ggml_tensor struct. The structure provides information about the size of +// The tensors are stored in memory via the ggml_v1_tensor struct. The structure provides information about the size of // the tensor, the data type, and the memory buffer where the tensor data is stored. Additionally, it contains // pointers to the "source" tensors - i.e. the tensors that were used to compute the current tensor. For example: // // { -// struct ggml_tensor * c = ggml_add(ctx, a, b); +// struct ggml_v1_tensor * c = ggml_v1_add(ctx, a, b); // // assert(c->src[0] == a); // assert(c->src[1] == b); // } // -// The multi-dimensional tensors are stored in row-major order. The ggml_tensor struct contains fields for the +// The multi-dimensional tensors are stored in row-major order. The ggml_v1_tensor struct contains fields for the // number of elements in each dimension ("ne") as well as the number of bytes ("nb", a.k.a. stride). This allows // to store tensors that are not contiguous in memory, which is useful for operations such as transposition and // permutation. All tensor operations have to take the stride into account and not assume that the tensor is @@ -130,7 +130,7 @@ // The data of the tensor is accessed via the "data" pointer. For example: // // { -// struct ggml_tensor * a = ggml_new_tensor_2d(ctx, GGML_TYPE_F32, 2, 3); +// struct ggml_v1_tensor * a = ggml_v1_new_tensor_2d(ctx, GGML_V1_TYPE_F32, 2, 3); // // // a[1, 2] = 1.0f; // *(float *) ((char *) a->data + 2*a->nb[1] + 1*a->nb[0]) = 1.0f; @@ -141,9 +141,9 @@ // ... // } // -// Alternatively, there are helper functions, such as ggml_get_f32_1d() and ggml_set_f32_1d() that can be used. +// Alternatively, there are helper functions, such as ggml_v1_get_f32_1d() and ggml_v1_set_f32_1d() that can be used. // -// ## The matrix multiplication operator (ggml_mul_mat) +// ## The matrix multiplication operator (ggml_v1_mul_mat) // // TODO // @@ -177,98 +177,98 @@ extern "C" { #include #include -#define GGML_MAX_DIMS 4 -#define GGML_MAX_NODES 4096 -#define GGML_MAX_PARAMS 16 -#define GGML_MAX_CONTEXTS 64 -#define GGML_MAX_OPT 4 +#define GGML_V1_MAX_DIMS 4 +#define GGML_V1_MAX_NODES 4096 +#define GGML_V1_MAX_PARAMS 16 +#define GGML_V1_MAX_CONTEXTS 64 +#define GGML_V1_MAX_OPT 4 #ifdef __ARM_NEON // we use the built-in 16-bit float type -typedef __fp16 ggml_fp16_t; +typedef __fp16 ggml_v1_fp16_t; #else -typedef uint16_t ggml_fp16_t; +typedef uint16_t ggml_v1_fp16_t; #endif // convert FP16 <-> FP32 -float ggml_fp16_to_fp32(ggml_fp16_t x); -ggml_fp16_t ggml_fp32_to_fp16(float x); +float ggml_v1_fp16_to_fp32(ggml_v1_fp16_t x); +ggml_v1_fp16_t ggml_v1_fp32_to_fp16(float x); -struct ggml_object; -struct ggml_context; +struct ggml_v1_object; +struct ggml_v1_context; -enum ggml_type { - GGML_TYPE_I8, - GGML_TYPE_I16, - GGML_TYPE_I32, - GGML_TYPE_F16, - GGML_TYPE_F32, - GGML_TYPE_COUNT, +enum ggml_v1_type { + GGML_V1_TYPE_I8, + GGML_V1_TYPE_I16, + GGML_V1_TYPE_I32, + GGML_V1_TYPE_F16, + GGML_V1_TYPE_F32, + GGML_V1_TYPE_COUNT, }; // available tensor operations: -enum ggml_op { - GGML_OP_NONE = 0, +enum ggml_v1_op { + GGML_V1_OP_NONE = 0, - GGML_OP_DUP, - GGML_OP_ADD, - GGML_OP_SUB, - GGML_OP_MUL, - GGML_OP_DIV, - GGML_OP_SQR, - GGML_OP_SQRT, - GGML_OP_SUM, - GGML_OP_MEAN, - GGML_OP_REPEAT, - GGML_OP_ABS, - GGML_OP_SGN, - GGML_OP_NEG, - GGML_OP_STEP, - GGML_OP_RELU, - GGML_OP_GELU, - GGML_OP_NORM, // normalize + GGML_V1_OP_DUP, + GGML_V1_OP_ADD, + GGML_V1_OP_SUB, + GGML_V1_OP_MUL, + GGML_V1_OP_DIV, + GGML_V1_OP_SQR, + GGML_V1_OP_SQRT, + GGML_V1_OP_SUM, + GGML_V1_OP_MEAN, + GGML_V1_OP_REPEAT, + GGML_V1_OP_ABS, + GGML_V1_OP_SGN, + GGML_V1_OP_NEG, + GGML_V1_OP_STEP, + GGML_V1_OP_RELU, + GGML_V1_OP_GELU, + GGML_V1_OP_NORM, // normalize - GGML_OP_MUL_MAT, + GGML_V1_OP_MUL_MAT, - GGML_OP_SCALE, - GGML_OP_CPY, - GGML_OP_RESHAPE, - GGML_OP_VIEW, - GGML_OP_PERMUTE, - GGML_OP_TRANSPOSE, - GGML_OP_GET_ROWS, - GGML_OP_DIAG_MASK_INF, - GGML_OP_SOFT_MAX, - GGML_OP_ROPE, - GGML_OP_CONV_1D_1S, - GGML_OP_CONV_1D_2S, + GGML_V1_OP_SCALE, + GGML_V1_OP_CPY, + GGML_V1_OP_RESHAPE, + GGML_V1_OP_VIEW, + GGML_V1_OP_PERMUTE, + GGML_V1_OP_TRANSPOSE, + GGML_V1_OP_GET_ROWS, + GGML_V1_OP_DIAG_MASK_INF, + GGML_V1_OP_SOFT_MAX, + GGML_V1_OP_ROPE, + GGML_V1_OP_CONV_1D_1S, + GGML_V1_OP_CONV_1D_2S, - GGML_OP_FLASH_ATTN, - GGML_OP_FLASH_FF, + GGML_V1_OP_FLASH_ATTN, + GGML_V1_OP_FLASH_FF, - GGML_OP_COUNT, + GGML_V1_OP_COUNT, }; // n-dimensional tensor -struct ggml_tensor { - enum ggml_type type; +struct ggml_v1_tensor { + enum ggml_v1_type type; int n_dims; - int ne[GGML_MAX_DIMS]; // number of elements - size_t nb[GGML_MAX_DIMS]; // stride in bytes: + int ne[GGML_V1_MAX_DIMS]; // number of elements + size_t nb[GGML_V1_MAX_DIMS]; // stride in bytes: // nb[0] = sizeof(type) // nb[1] = nb[0] * ne[0] + padding // nb[i] = nb[i-1] * ne[i-1] // compute data - enum ggml_op op; + enum ggml_v1_op op; bool is_param; - struct ggml_tensor * grad; - struct ggml_tensor * src0; - struct ggml_tensor * src1; - struct ggml_tensor * opt[GGML_MAX_OPT]; + struct ggml_v1_tensor * grad; + struct ggml_v1_tensor * src0; + struct ggml_v1_tensor * src1; + struct ggml_v1_tensor * opt[GGML_V1_MAX_OPT]; // thread scheduling int n_tasks; @@ -283,17 +283,17 @@ struct ggml_tensor { }; // computation graph -struct ggml_cgraph { +struct ggml_v1_cgraph { int n_nodes; int n_leafs; int n_threads; size_t work_size; - struct ggml_tensor * work; + struct ggml_v1_tensor * work; - struct ggml_tensor * nodes[GGML_MAX_NODES]; - struct ggml_tensor * grads[GGML_MAX_NODES]; - struct ggml_tensor * leafs[GGML_MAX_NODES]; + struct ggml_v1_tensor * nodes[GGML_V1_MAX_NODES]; + struct ggml_v1_tensor * grads[GGML_V1_MAX_NODES]; + struct ggml_v1_tensor * leafs[GGML_V1_MAX_NODES]; // performance int perf_runs; @@ -302,276 +302,276 @@ struct ggml_cgraph { }; // scratch buffer -struct ggml_scratch { +struct ggml_v1_scratch { size_t offs; size_t size; void * data; }; -struct ggml_init_params { +struct ggml_v1_init_params { // memory pool size_t mem_size; // bytes void * mem_buffer; // if NULL, memory will be allocated internally }; -void ggml_time_init(void); // call this once at the beginning of the program -int64_t ggml_time_ms(void); -int64_t ggml_time_us(void); -int64_t ggml_cycles(void); -int64_t ggml_cycles_per_ms(void); +void ggml_v1_time_init(void); // call this once at the beginning of the program +int64_t ggml_v1_time_ms(void); +int64_t ggml_v1_time_us(void); +int64_t ggml_v1_cycles(void); +int64_t ggml_v1_cycles_per_ms(void); -void ggml_print_object (const struct ggml_object * obj); -void ggml_print_objects(const struct ggml_context * ctx); +void ggml_v1_print_object (const struct ggml_v1_object * obj); +void ggml_v1_print_objects(const struct ggml_v1_context * ctx); -int ggml_nelements(const struct ggml_tensor * tensor); -size_t ggml_nbytes (const struct ggml_tensor * tensor); +int ggml_v1_nelements(const struct ggml_v1_tensor * tensor); +size_t ggml_v1_nbytes (const struct ggml_v1_tensor * tensor); -size_t ggml_type_size (enum ggml_type type); -size_t ggml_element_size(const struct ggml_tensor * tensor); +size_t ggml_v1_type_size (enum ggml_v1_type type); +size_t ggml_v1_element_size(const struct ggml_v1_tensor * tensor); -struct ggml_context * ggml_init(struct ggml_init_params params); -void ggml_free(struct ggml_context * ctx); +struct ggml_v1_context * ggml_v1_init(struct ggml_v1_init_params params); +void ggml_v1_free(struct ggml_v1_context * ctx); -size_t ggml_used_mem(const struct ggml_context * ctx); +size_t ggml_v1_used_mem(const struct ggml_v1_context * ctx); -size_t ggml_set_scratch(struct ggml_context * ctx, struct ggml_scratch scratch); +size_t ggml_v1_set_scratch(struct ggml_v1_context * ctx, struct ggml_v1_scratch scratch); -struct ggml_tensor * ggml_new_tensor( - struct ggml_context * ctx, - enum ggml_type type, +struct ggml_v1_tensor * ggml_v1_new_tensor( + struct ggml_v1_context * ctx, + enum ggml_v1_type type, int n_dims, const int *ne); -struct ggml_tensor * ggml_new_tensor_1d( - struct ggml_context * ctx, - enum ggml_type type, +struct ggml_v1_tensor * ggml_v1_new_tensor_1d( + struct ggml_v1_context * ctx, + enum ggml_v1_type type, int ne0); -struct ggml_tensor * ggml_new_tensor_2d( - struct ggml_context * ctx, - enum ggml_type type, +struct ggml_v1_tensor * ggml_v1_new_tensor_2d( + struct ggml_v1_context * ctx, + enum ggml_v1_type type, int ne0, int ne1); -struct ggml_tensor * ggml_new_tensor_3d( - struct ggml_context * ctx, - enum ggml_type type, +struct ggml_v1_tensor * ggml_v1_new_tensor_3d( + struct ggml_v1_context * ctx, + enum ggml_v1_type type, int ne0, int ne1, int ne2); -struct ggml_tensor * ggml_new_tensor_4d( - struct ggml_context * ctx, - enum ggml_type type, +struct ggml_v1_tensor * ggml_v1_new_tensor_4d( + struct ggml_v1_context * ctx, + enum ggml_v1_type type, int ne0, int ne1, int ne2, int ne3); -struct ggml_tensor * ggml_new_i32(struct ggml_context * ctx, int32_t value); -struct ggml_tensor * ggml_new_f32(struct ggml_context * ctx, float value); +struct ggml_v1_tensor * ggml_v1_new_i32(struct ggml_v1_context * ctx, int32_t value); +struct ggml_v1_tensor * ggml_v1_new_f32(struct ggml_v1_context * ctx, float value); -struct ggml_tensor * ggml_dup_tensor (struct ggml_context * ctx, const struct ggml_tensor * src); -struct ggml_tensor * ggml_view_tensor(struct ggml_context * ctx, const struct ggml_tensor * src); +struct ggml_v1_tensor * ggml_v1_dup_tensor (struct ggml_v1_context * ctx, const struct ggml_v1_tensor * src); +struct ggml_v1_tensor * ggml_v1_view_tensor(struct ggml_v1_context * ctx, const struct ggml_v1_tensor * src); -struct ggml_tensor * ggml_set_zero(struct ggml_tensor * tensor); -struct ggml_tensor * ggml_set_i32 (struct ggml_tensor * tensor, int32_t value); -struct ggml_tensor * ggml_set_f32 (struct ggml_tensor * tensor, float value); +struct ggml_v1_tensor * ggml_v1_set_zero(struct ggml_v1_tensor * tensor); +struct ggml_v1_tensor * ggml_v1_set_i32 (struct ggml_v1_tensor * tensor, int32_t value); +struct ggml_v1_tensor * ggml_v1_set_f32 (struct ggml_v1_tensor * tensor, float value); -int32_t ggml_get_i32_1d(const struct ggml_tensor * tensor, int i); -void ggml_set_i32_1d(const struct ggml_tensor * tensor, int i, int32_t value); +int32_t ggml_v1_get_i32_1d(const struct ggml_v1_tensor * tensor, int i); +void ggml_v1_set_i32_1d(const struct ggml_v1_tensor * tensor, int i, int32_t value); -float ggml_get_f32_1d(const struct ggml_tensor * tensor, int i); -void ggml_set_f32_1d(const struct ggml_tensor * tensor, int i, float value); +float ggml_v1_get_f32_1d(const struct ggml_v1_tensor * tensor, int i); +void ggml_v1_set_f32_1d(const struct ggml_v1_tensor * tensor, int i, float value); - void * ggml_get_data (const struct ggml_tensor * tensor); -float * ggml_get_data_f32(const struct ggml_tensor * tensor); + void * ggml_v1_get_data (const struct ggml_v1_tensor * tensor); +float * ggml_v1_get_data_f32(const struct ggml_v1_tensor * tensor); // // operations on tensors with backpropagation // -struct ggml_tensor * ggml_dup( - struct ggml_context * ctx, - struct ggml_tensor * a); +struct ggml_v1_tensor * ggml_v1_dup( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a); -struct ggml_tensor * ggml_add( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b); +struct ggml_v1_tensor * ggml_v1_add( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b); -struct ggml_tensor * ggml_sub( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b); +struct ggml_v1_tensor * ggml_v1_sub( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b); -struct ggml_tensor * ggml_mul( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b); +struct ggml_v1_tensor * ggml_v1_mul( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b); -struct ggml_tensor * ggml_div( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b); +struct ggml_v1_tensor * ggml_v1_div( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b); -struct ggml_tensor * ggml_sqr( - struct ggml_context * ctx, - struct ggml_tensor * a); +struct ggml_v1_tensor * ggml_v1_sqr( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a); -struct ggml_tensor * ggml_sqrt( - struct ggml_context * ctx, - struct ggml_tensor * a); +struct ggml_v1_tensor * ggml_v1_sqrt( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a); // return scalar // TODO: compute sum along rows -struct ggml_tensor * ggml_sum( - struct ggml_context * ctx, - struct ggml_tensor * a); +struct ggml_v1_tensor * ggml_v1_sum( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a); // mean along rows -struct ggml_tensor * ggml_mean( - struct ggml_context * ctx, - struct ggml_tensor * a); +struct ggml_v1_tensor * ggml_v1_mean( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a); // if a is the same shape as b, and a is not parameter, return a // otherwise, return a new tensor: repeat(a) to fit in b -struct ggml_tensor * ggml_repeat( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b); +struct ggml_v1_tensor * ggml_v1_repeat( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b); -struct ggml_tensor * ggml_abs( - struct ggml_context * ctx, - struct ggml_tensor * a); +struct ggml_v1_tensor * ggml_v1_abs( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a); -struct ggml_tensor * ggml_sgn( - struct ggml_context * ctx, - struct ggml_tensor * a); +struct ggml_v1_tensor * ggml_v1_sgn( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a); -struct ggml_tensor * ggml_neg( - struct ggml_context * ctx, - struct ggml_tensor * a); +struct ggml_v1_tensor * ggml_v1_neg( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a); -struct ggml_tensor * ggml_step( - struct ggml_context * ctx, - struct ggml_tensor * a); +struct ggml_v1_tensor * ggml_v1_step( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a); -struct ggml_tensor * ggml_relu( - struct ggml_context * ctx, - struct ggml_tensor * a); +struct ggml_v1_tensor * ggml_v1_relu( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a); // TODO: double-check this computation is correct -struct ggml_tensor * ggml_gelu( - struct ggml_context * ctx, - struct ggml_tensor * a); +struct ggml_v1_tensor * ggml_v1_gelu( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a); // normalize along rows // TODO: eps is hardcoded to 1e-5 for now -struct ggml_tensor * ggml_norm( - struct ggml_context * ctx, - struct ggml_tensor * a); +struct ggml_v1_tensor * ggml_v1_norm( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a); // A: m rows, n columns // B: p rows, n columns (i.e. we transpose it internally) // result is m columns, p rows -struct ggml_tensor * ggml_mul_mat( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b); +struct ggml_v1_tensor * ggml_v1_mul_mat( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b); // // operations on tensors without backpropagation // // in-place, returns view(a) -struct ggml_tensor * ggml_scale( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b); +struct ggml_v1_tensor * ggml_v1_scale( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b); // a -> b, return view(b) -struct ggml_tensor * ggml_cpy( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b); +struct ggml_v1_tensor * ggml_v1_cpy( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b); // return view(a), b specifies the new shape // TODO: when we start computing gradient, make a copy instead of view -struct ggml_tensor * ggml_reshape( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b); +struct ggml_v1_tensor * ggml_v1_reshape( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b); // return view(a) // TODO: when we start computing gradient, make a copy instead of view -struct ggml_tensor * ggml_reshape_2d( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_reshape_2d( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, int ne0, int ne1); // return view(a) // TODO: when we start computing gradient, make a copy instead of view -struct ggml_tensor * ggml_reshape_3d( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_reshape_3d( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, int ne0, int ne1, int ne2); // offset in bytes -struct ggml_tensor * ggml_view_1d( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_view_1d( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, int ne0, size_t offset); -struct ggml_tensor * ggml_view_2d( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_view_2d( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, int ne0, int ne1, size_t nb1, // row stride in bytes size_t offset); -struct ggml_tensor * ggml_permute( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_permute( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, int axis0, int axis1, int axis2, int axis3); -// alias for ggml_permute(ctx, a, 1, 0, 2, 3) -struct ggml_tensor * ggml_transpose( - struct ggml_context * ctx, - struct ggml_tensor * a); +// alias for ggml_v1_permute(ctx, a, 1, 0, 2, 3) +struct ggml_v1_tensor * ggml_v1_transpose( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a); -struct ggml_tensor * ggml_get_rows( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b); +struct ggml_v1_tensor * ggml_v1_get_rows( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b); // set elements above the diagonal to -INF // in-place, returns view(a) -struct ggml_tensor * ggml_diag_mask_inf( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_diag_mask_inf( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, int n_past); // in-place, returns view(a) -struct ggml_tensor * ggml_soft_max( - struct ggml_context * ctx, - struct ggml_tensor * a); +struct ggml_v1_tensor * ggml_v1_soft_max( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a); // rotary position embedding // in-place, returns view(a) // if mode == 1, skip n_past elements // TODO: avoid creating a new tensor every time -struct ggml_tensor * ggml_rope( - struct ggml_context * ctx, - struct ggml_tensor * a, +struct ggml_v1_tensor * ggml_v1_rope( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, int n_past, int n_dims, int mode); @@ -580,93 +580,93 @@ struct ggml_tensor * ggml_rope( // TODO: we don't support extra parameters for now // that's why we are hard-coding the stride, padding, and dilation // not great .. -struct ggml_tensor * ggml_conv_1d_1s( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b); +struct ggml_v1_tensor * ggml_v1_conv_1d_1s( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b); -struct ggml_tensor * ggml_conv_1d_2s( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b); +struct ggml_v1_tensor * ggml_v1_conv_1d_2s( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b); -struct ggml_tensor * ggml_flash_attn( - struct ggml_context * ctx, - struct ggml_tensor * q, - struct ggml_tensor * k, - struct ggml_tensor * v, +struct ggml_v1_tensor * ggml_v1_flash_attn( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * q, + struct ggml_v1_tensor * k, + struct ggml_v1_tensor * v, bool masked); -struct ggml_tensor * ggml_flash_ff( - struct ggml_context * ctx, - struct ggml_tensor * a, - struct ggml_tensor * b0, - struct ggml_tensor * b1, - struct ggml_tensor * c0, - struct ggml_tensor * c1); +struct ggml_v1_tensor * ggml_v1_flash_ff( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * a, + struct ggml_v1_tensor * b0, + struct ggml_v1_tensor * b1, + struct ggml_v1_tensor * c0, + struct ggml_v1_tensor * c1); // // automatic differentiation // -void ggml_set_param( - struct ggml_context * ctx, - struct ggml_tensor * tensor); +void ggml_v1_set_param( + struct ggml_v1_context * ctx, + struct ggml_v1_tensor * tensor); -void ggml_build_forward_expand(struct ggml_cgraph * cgraph, struct ggml_tensor * tensor); +void ggml_v1_build_forward_expand(struct ggml_v1_cgraph * cgraph, struct ggml_v1_tensor * tensor); -struct ggml_cgraph ggml_build_forward (struct ggml_tensor * tensor); -struct ggml_cgraph ggml_build_backward(struct ggml_context * ctx, struct ggml_cgraph * gf, bool keep); +struct ggml_v1_cgraph ggml_v1_build_forward (struct ggml_v1_tensor * tensor); +struct ggml_v1_cgraph ggml_v1_build_backward(struct ggml_v1_context * ctx, struct ggml_v1_cgraph * gf, bool keep); -void ggml_graph_compute(struct ggml_context * ctx, struct ggml_cgraph * cgraph); -void ggml_graph_reset (struct ggml_cgraph * cgraph); +void ggml_v1_graph_compute(struct ggml_v1_context * ctx, struct ggml_v1_cgraph * cgraph); +void ggml_v1_graph_reset (struct ggml_v1_cgraph * cgraph); // print info and performance information for the graph -void ggml_graph_print(const struct ggml_cgraph * cgraph); +void ggml_v1_graph_print(const struct ggml_v1_cgraph * cgraph); // dump the graph into a file using the dot format -void ggml_graph_dump_dot(const struct ggml_cgraph * gb, const struct ggml_cgraph * gf, const char * filename); +void ggml_v1_graph_dump_dot(const struct ggml_v1_cgraph * gb, const struct ggml_v1_cgraph * gf, const char * filename); // // optimization // // optimization methods -enum ggml_opt_type { - GGML_OPT_ADAM, - GGML_OPT_LBFGS, +enum ggml_v1_opt_type { + GGML_V1_OPT_ADAM, + GGML_V1_OPT_LBFGS, }; // linesearch methods -enum ggml_linesearch { - GGML_LINESEARCH_DEFAULT = 1, +enum ggml_v1_linesearch { + GGML_V1_LINESEARCH_DEFAULT = 1, - GGML_LINESEARCH_BACKTRACKING_ARMIJO = 0, - GGML_LINESEARCH_BACKTRACKING_WOLFE = 1, - GGML_LINESEARCH_BACKTRACKING_STRONG_WOLFE = 2, + GGML_V1_LINESEARCH_BACKTRACKING_ARMIJO = 0, + GGML_V1_LINESEARCH_BACKTRACKING_WOLFE = 1, + GGML_V1_LINESEARCH_BACKTRACKING_STRONG_WOLFE = 2, }; // optimization return values -enum ggml_opt_result { - GGML_OPT_OK = 0, - GGML_OPT_DID_NOT_CONVERGE, - GGML_OPT_NO_CONTEXT, - GGML_OPT_INVALID_WOLFE, - GGML_OPT_FAIL, +enum ggml_v1_opt_result { + GGML_V1_OPT_OK = 0, + GGML_V1_OPT_DID_NOT_CONVERGE, + GGML_V1_OPT_NO_CONTEXT, + GGML_V1_OPT_INVALID_WOLFE, + GGML_V1_OPT_FAIL, - GGML_LINESEARCH_FAIL = -128, - GGML_LINESEARCH_MINIMUM_STEP, - GGML_LINESEARCH_MAXIMUM_STEP, - GGML_LINESEARCH_MAXIMUM_ITERATIONS, - GGML_LINESEARCH_INVALID_PARAMETERS, + GGML_V1_LINESEARCH_FAIL = -128, + GGML_V1_LINESEARCH_MINIMUM_STEP, + GGML_V1_LINESEARCH_MAXIMUM_STEP, + GGML_V1_LINESEARCH_MAXIMUM_ITERATIONS, + GGML_V1_LINESEARCH_INVALID_PARAMETERS, }; // optimization parameters // -// see ggml.c (ggml_opt_default_params) for default values +// see ggml.c (ggml_v1_opt_default_params) for default values // -struct ggml_opt_params { - enum ggml_opt_type type; +struct ggml_v1_opt_params { + enum ggml_v1_opt_type type; int n_threads; @@ -714,34 +714,34 @@ struct ggml_opt_params { float min_step; float max_step; - enum ggml_linesearch linesearch; + enum ggml_v1_linesearch linesearch; } lbfgs; }; -struct ggml_opt_params ggml_opt_default_params(enum ggml_opt_type type); +struct ggml_v1_opt_params ggml_v1_opt_default_params(enum ggml_v1_opt_type type); // optimize the function defined by the tensor f -enum ggml_opt_result ggml_opt( - struct ggml_context * ctx, - struct ggml_opt_params params, - struct ggml_tensor * f); +enum ggml_v1_opt_result ggml_v1_opt( + struct ggml_v1_context * ctx, + struct ggml_v1_opt_params params, + struct ggml_v1_tensor * f); // // system info // -int ggml_cpu_has_avx(void); -int ggml_cpu_has_avx2(void); -int ggml_cpu_has_avx512(void); -int ggml_cpu_has_fma(void); -int ggml_cpu_has_neon(void); -int ggml_cpu_has_arm_fma(void); -int ggml_cpu_has_f16c(void); -int ggml_cpu_has_fp16_va(void); -int ggml_cpu_has_wasm_simd(void); -int ggml_cpu_has_blas(void); -int ggml_cpu_has_sse3(void); -int ggml_cpu_has_vsx(void); +int ggml_v1_cpu_has_avx(void); +int ggml_v1_cpu_has_avx2(void); +int ggml_v1_cpu_has_avx512(void); +int ggml_v1_cpu_has_fma(void); +int ggml_v1_cpu_has_neon(void); +int ggml_v1_cpu_has_arm_fma(void); +int ggml_v1_cpu_has_f16c(void); +int ggml_v1_cpu_has_fp16_va(void); +int ggml_v1_cpu_has_wasm_simd(void); +int ggml_v1_cpu_has_blas(void); +int ggml_v1_cpu_has_sse3(void); +int ggml_v1_cpu_has_vsx(void); #ifdef __cplusplus } diff --git a/otherarch/gpt2.cpp b/otherarch/gpt2.cpp deleted file mode 100644 index 5f8db6492..000000000 --- a/otherarch/gpt2.cpp +++ /dev/null @@ -1,854 +0,0 @@ -#include "ggml.h" - -#include "utils.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// default hparams (GPT-2 117M) -struct gpt2_hparams { - int32_t n_vocab = 50257; - int32_t n_ctx = 1024; - int32_t n_embd = 768; - int32_t n_head = 12; - int32_t n_layer = 12; - int32_t f16 = 1; -}; - -struct gpt2_layer { - // normalization - struct ggml_tensor * ln_1_g; - struct ggml_tensor * ln_1_b; - - struct ggml_tensor * ln_2_g; - struct ggml_tensor * ln_2_b; - - // attention - struct ggml_tensor * c_attn_attn_w; - struct ggml_tensor * c_attn_attn_b; - - struct ggml_tensor * c_attn_proj_w; - struct ggml_tensor * c_attn_proj_b; - - // mlp - struct ggml_tensor * c_mlp_fc_w; - struct ggml_tensor * c_mlp_fc_b; - - struct ggml_tensor * c_mlp_proj_w; - struct ggml_tensor * c_mlp_proj_b; -}; - -struct gpt2_model { - gpt2_hparams hparams; - - // normalization - struct ggml_tensor * ln_f_g; - struct ggml_tensor * ln_f_b; - - struct ggml_tensor * wte; // position embedding - struct ggml_tensor * wpe; // token embedding - struct ggml_tensor * lm_head; // language model head - - std::vector layers; - - // key + value memory - struct ggml_tensor * memory_k; - struct ggml_tensor * memory_v; - - // - struct ggml_context * ctx; - std::map tensors; -}; - -// load the model's weights from a file -bool gpt2_model_load(const std::string & fname, gpt2_model & model, gpt_vocab & vocab) { - printf("%s: loading model from '%s'\n", __func__, fname.c_str()); - - auto fin = std::ifstream(fname, std::ios::binary); - if (!fin) { - fprintf(stderr, "%s: failed to open '%s'\n", __func__, fname.c_str()); - return false; - } - - // verify magic - { - uint32_t magic; - fin.read((char *) &magic, sizeof(magic)); - if (magic != 0x67676d6c) { - fprintf(stderr, "%s: invalid model file '%s' (bad magic)\n", __func__, fname.c_str()); - return false; - } - } - - // load hparams - { - auto & hparams = model.hparams; - - fin.read((char *) &hparams.n_vocab, sizeof(hparams.n_vocab)); - fin.read((char *) &hparams.n_ctx, sizeof(hparams.n_ctx)); - fin.read((char *) &hparams.n_embd, sizeof(hparams.n_embd)); - fin.read((char *) &hparams.n_head, sizeof(hparams.n_head)); - fin.read((char *) &hparams.n_layer, sizeof(hparams.n_layer)); - fin.read((char *) &hparams.f16, sizeof(hparams.f16)); - - printf("%s: n_vocab = %d\n", __func__, hparams.n_vocab); - printf("%s: n_ctx = %d\n", __func__, hparams.n_ctx); - printf("%s: n_embd = %d\n", __func__, hparams.n_embd); - printf("%s: n_head = %d\n", __func__, hparams.n_head); - printf("%s: n_layer = %d\n", __func__, hparams.n_layer); - printf("%s: f16 = %d\n", __func__, hparams.f16); - } - - // load vocab - { - int32_t n_vocab = 0; - fin.read((char *) &n_vocab, sizeof(n_vocab)); - - if (n_vocab != model.hparams.n_vocab) { - fprintf(stderr, "%s: invalid model file '%s' (bad vocab size %d != %d)\n", - __func__, fname.c_str(), n_vocab, model.hparams.n_vocab); - return false; - } - - std::string word; - for (int i = 0; i < n_vocab; i++) { - uint32_t len; - fin.read((char *) &len, sizeof(len)); - - word.resize(len); - fin.read((char *) word.data(), len); - - vocab.token_to_id[word] = i; - vocab.id_to_token[i] = word; - } - } - - // for the big tensors, we have the option to store the data in 16-bit floats or quantized - // in order to save memory and also to speed up the computation - ggml_type wtype = GGML_TYPE_COUNT; - switch (model.hparams.f16) { - case 0: wtype = GGML_TYPE_F32; break; - case 1: wtype = GGML_TYPE_F16; break; - case 2: wtype = GGML_TYPE_Q4_0; break; - case 3: wtype = GGML_TYPE_Q4_1; break; - default: - { - fprintf(stderr, "%s: invalid model file '%s' (bad f16 value %d)\n", - __func__, fname.c_str(), model.hparams.f16); - return false; - } - } - - const ggml_type wtype2 = GGML_TYPE_F32; - - auto & ctx = model.ctx; - - size_t ctx_size = 0; - - { - const auto & hparams = model.hparams; - - const int n_embd = hparams.n_embd; - const int n_layer = hparams.n_layer; - const int n_ctx = hparams.n_ctx; - const int n_vocab = hparams.n_vocab; - - ctx_size += n_embd*ggml_type_sizef(GGML_TYPE_F32); // ln_f_g - ctx_size += n_embd*ggml_type_sizef(GGML_TYPE_F32); // ln_f_b - - ctx_size += n_vocab*n_embd*ggml_type_sizef(wtype); // wte - ctx_size += n_ctx*n_embd*ggml_type_sizef(GGML_TYPE_F32); // wpe - ctx_size += n_vocab*n_embd*ggml_type_sizef(wtype); // lm_head - - ctx_size += n_layer*(n_embd*ggml_type_sizef(GGML_TYPE_F32)); // ln_1_g - ctx_size += n_layer*(n_embd*ggml_type_sizef(GGML_TYPE_F32)); // ln_1_b - - ctx_size += n_layer*(n_embd*ggml_type_sizef(GGML_TYPE_F32)); // ln_2_g - ctx_size += n_layer*(n_embd*ggml_type_sizef(GGML_TYPE_F32)); // ln_2_b - - ctx_size += n_layer*(3*n_embd*n_embd*ggml_type_sizef(wtype)); // c_attn_attn_w - ctx_size += n_layer*( 3*n_embd*ggml_type_sizef(GGML_TYPE_F32)); // c_attn_attn_b - - ctx_size += n_layer*(n_embd*n_embd*ggml_type_sizef(wtype)); // c_attn_proj_w - ctx_size += n_layer*( n_embd*ggml_type_sizef(GGML_TYPE_F32)); // c_attn_proj_b - - ctx_size += n_layer*(4*n_embd*n_embd*ggml_type_sizef(wtype)); // c_mlp_fc_w - ctx_size += n_layer*( 4*n_embd*ggml_type_sizef(GGML_TYPE_F32)); // c_mlp_fc_b - - ctx_size += n_layer*(4*n_embd*n_embd*ggml_type_sizef(wtype)); // c_mlp_proj_w - ctx_size += n_layer*( n_embd*ggml_type_sizef(GGML_TYPE_F32)); // c_mlp_proj_b - - ctx_size += n_ctx*n_layer*n_embd*ggml_type_sizef(GGML_TYPE_F32); // memory_k - ctx_size += n_ctx*n_layer*n_embd*ggml_type_sizef(GGML_TYPE_F32); // memory_v - - ctx_size += (6 + 12*n_layer)*256; // object overhead - - printf("%s: ggml ctx size = %6.2f MB\n", __func__, ctx_size/(1024.0*1024.0)); - } - - // create the ggml context - { - struct ggml_init_params params = { - .mem_size = ctx_size, - .mem_buffer = NULL, - }; - - model.ctx = ggml_init(params); - if (!model.ctx) { - fprintf(stderr, "%s: ggml_init() failed\n", __func__); - return false; - } - } - - // prepare memory for the weights - { - const auto & hparams = model.hparams; - - const int n_embd = hparams.n_embd; - const int n_layer = hparams.n_layer; - const int n_ctx = hparams.n_ctx; - const int n_vocab = hparams.n_vocab; - - model.layers.resize(n_layer); - - model.ln_f_g = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_embd); - model.ln_f_b = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_embd); - - model.wte = ggml_new_tensor_2d(ctx, wtype, n_embd, n_vocab); - model.wpe = ggml_new_tensor_2d(ctx, GGML_TYPE_F32, n_embd, n_ctx); - model.lm_head = ggml_new_tensor_2d(ctx, wtype, n_embd, n_vocab); - - // map by name - model.tensors["model/ln_f/g"] = model.ln_f_g; - model.tensors["model/ln_f/b"] = model.ln_f_b; - - model.tensors["model/wte"] = model.wte; - model.tensors["model/wpe"] = model.wpe; - model.tensors["model/lm_head"] = model.lm_head; - - for (int i = 0; i < n_layer; ++i) { - auto & layer = model.layers[i]; - - layer.ln_1_g = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_embd); - layer.ln_1_b = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_embd); - - layer.ln_2_g = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_embd); - layer.ln_2_b = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_embd); - - layer.c_attn_attn_w = ggml_new_tensor_2d(ctx, wtype, n_embd, 3*n_embd); - layer.c_attn_attn_b = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, 3*n_embd); - - layer.c_attn_proj_w = ggml_new_tensor_2d(ctx, wtype, n_embd, n_embd); - layer.c_attn_proj_b = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_embd); - - layer.c_mlp_fc_w = ggml_new_tensor_2d(ctx, wtype, n_embd, 4*n_embd); - layer.c_mlp_fc_b = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, 4*n_embd); - - layer.c_mlp_proj_w = ggml_new_tensor_2d(ctx, wtype, 4*n_embd, n_embd); - layer.c_mlp_proj_b = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_embd); - - // map by name - model.tensors["model/h" + std::to_string(i) + "/ln_1/g"] = layer.ln_1_g; - model.tensors["model/h" + std::to_string(i) + "/ln_1/b"] = layer.ln_1_b; - - model.tensors["model/h" + std::to_string(i) + "/ln_2/g"] = layer.ln_2_g; - model.tensors["model/h" + std::to_string(i) + "/ln_2/b"] = layer.ln_2_b; - - model.tensors["model/h" + std::to_string(i) + "/attn/c_attn/w"] = layer.c_attn_attn_w; - model.tensors["model/h" + std::to_string(i) + "/attn/c_attn/b"] = layer.c_attn_attn_b; - - model.tensors["model/h" + std::to_string(i) + "/attn/c_proj/w"] = layer.c_attn_proj_w; - model.tensors["model/h" + std::to_string(i) + "/attn/c_proj/b"] = layer.c_attn_proj_b; - - model.tensors["model/h" + std::to_string(i) + "/mlp/c_fc/w"] = layer.c_mlp_fc_w; - model.tensors["model/h" + std::to_string(i) + "/mlp/c_fc/b"] = layer.c_mlp_fc_b; - - model.tensors["model/h" + std::to_string(i) + "/mlp/c_proj/w"] = layer.c_mlp_proj_w; - model.tensors["model/h" + std::to_string(i) + "/mlp/c_proj/b"] = layer.c_mlp_proj_b; - } - } - - // key + value memory - { - const auto & hparams = model.hparams; - - const int n_embd = hparams.n_embd; - const int n_layer = hparams.n_layer; - const int n_ctx = hparams.n_ctx; - - const int n_mem = n_layer*n_ctx; - const int n_elements = n_embd*n_mem; - - model.memory_k = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_elements); - model.memory_v = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_elements); - - const size_t memory_size = ggml_nbytes(model.memory_k) + ggml_nbytes(model.memory_v); - - printf("%s: memory size = %8.2f MB, n_mem = %d\n", __func__, memory_size/1024.0/1024.0, n_mem); - } - - // load weights - { - size_t total_size = 0; - - bool has_lm_head = false; - - while (true) { - int32_t n_dims; - int32_t length; - int32_t ftype; - - fin.read(reinterpret_cast(&n_dims), sizeof(n_dims)); - fin.read(reinterpret_cast(&length), sizeof(length)); - fin.read(reinterpret_cast(&ftype), sizeof(ftype)); - - if (fin.eof()) { - break; - } - - int32_t nelements = 1; - int32_t ne[2] = { 1, 1 }; - for (int i = 0; i < n_dims; ++i) { - fin.read(reinterpret_cast(&ne[i]), sizeof(ne[i])); - nelements *= ne[i]; - } - - std::string name(length, 0); - fin.read(&name[0], length); - - if (model.tensors.find(name.data()) == model.tensors.end()) { - fprintf(stderr, "%s: unknown tensor '%s' in model file\n", __func__, name.data()); - return false; - } - - auto tensor = model.tensors[name.data()]; - if (ggml_nelements(tensor) != nelements) { - fprintf(stderr, "%s: tensor '%s' has wrong size in model file\n", __func__, name.data()); - return false; - } - - if (tensor->ne[0] != ne[0] || tensor->ne[1] != ne[1]) { - fprintf(stderr, "%s: tensor '%s' has wrong shape in model file: got [%d, %d], expected [%d, %d]\n", - __func__, name.data(), tensor->ne[0], tensor->ne[1], ne[0], ne[1]); - return false; - } - - if (0) { - static const char * ftype_str[] = { "f32", "f16", "q4_0", "q4_1", }; - printf("%24s - [%5d, %5d], type = %6s, %6.2f MB, %9zu bytes\n", name.data(), ne[0], ne[1], ftype_str[ftype], ggml_nbytes(tensor)/1024.0/1024.0, ggml_nbytes(tensor)); - } - - size_t bpe = 0; - - switch (ftype) { - case 0: bpe = ggml_type_size(GGML_TYPE_F32); break; - case 1: bpe = ggml_type_size(GGML_TYPE_F16); break; - case 2: bpe = ggml_type_size(GGML_TYPE_Q4_0); assert(ne[0] % 64 == 0); break; - case 3: bpe = ggml_type_size(GGML_TYPE_Q4_1); assert(ne[0] % 64 == 0); break; - default: - { - fprintf(stderr, "%s: unknown ftype %d in model file\n", __func__, ftype); - return false; - } - }; - - if ((nelements*bpe)/ggml_blck_size(tensor->type) != ggml_nbytes(tensor)) { - fprintf(stderr, "%s: tensor '%s' has wrong size in model file: got %zu, expected %zu\n", - __func__, name.data(), ggml_nbytes(tensor), nelements*bpe); - return false; - } - - fin.read(reinterpret_cast(tensor->data), ggml_nbytes(tensor)); - - // GPT-2 models share the WTE tensor as the LM head - if (name == "model/wte" && has_lm_head == false) { - memcpy(model.lm_head->data, tensor->data, ggml_nbytes(tensor)); - } - - if (name == "model/lm_head") { - has_lm_head = true; - } - - total_size += ggml_nbytes(tensor); - } - - printf("%s: model size = %8.2f MB\n", __func__, total_size/1024.0/1024.0); - } - - fin.close(); - - return true; -} - -// evaluate the transformer -// -// - model: the model -// - n_threads: number of threads to use -// - n_past: the context size so far -// - embd_inp: the embeddings of the tokens in the context -// - embd_w: the predicted logits for the next token -// -bool gpt2_eval( - const gpt2_model & model, - const int n_threads, - const int n_past, - const std::vector & embd_inp, - std::vector & embd_w, - size_t & mem_per_token) { - const int N = embd_inp.size(); - - const auto & hparams = model.hparams; - - const int n_embd = hparams.n_embd; - const int n_layer = hparams.n_layer; - const int n_ctx = hparams.n_ctx; - const int n_head = hparams.n_head; - const int n_vocab = hparams.n_vocab; - - static size_t buf_size = 256u*1024*1024; - static void * buf = malloc(buf_size); - - if (mem_per_token > 0 && mem_per_token*N > buf_size) { - const size_t buf_size_new = 1.1*(mem_per_token*N); // add 10% to account for ggml object overhead - //printf("\n%s: reallocating buffer from %zu to %zu bytes\n", __func__, buf_size, buf_size_new); - - // reallocate - buf_size = buf_size_new; - buf = realloc(buf, buf_size); - if (buf == nullptr) { - fprintf(stderr, "%s: failed to allocate %zu bytes\n", __func__, buf_size); - return false; - } - } - - struct ggml_init_params params = { - .mem_size = buf_size, - .mem_buffer = buf, - }; - - struct ggml_context * ctx0 = ggml_init(params); - struct ggml_cgraph gf = { .n_threads = n_threads }; - - struct ggml_tensor * embd = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, N); - memcpy(embd->data, embd_inp.data(), N*ggml_element_size(embd)); - - struct ggml_tensor * position = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, N); - for (int i = 0; i < N; ++i) { - ((int32_t *) position->data)[i] = n_past + i; - } - - // wte + wpe - struct ggml_tensor * inpL = - ggml_add(ctx0, - ggml_get_rows(ctx0, model.wte, embd), - ggml_get_rows(ctx0, model.wpe, position)); - - for (int il = 0; il < n_layer; ++il) { - struct ggml_tensor * cur; - - // norm - { - // [ 768, N] - cur = ggml_norm(ctx0, inpL); - - // cur = ln_1_g*cur + ln_1_b - // [ 768, N] - cur = ggml_add(ctx0, - ggml_mul(ctx0, - ggml_repeat(ctx0, model.layers[il].ln_1_g, cur), - cur), - ggml_repeat(ctx0, model.layers[il].ln_1_b, cur)); - } - - // attn - // [2304, 768] - model.layers[il].c_attn_attn_w - // [2304, 1] - model.layers[il].c_attn_attn_b - // [ 768, N] - cur (in) - // [2304, N] - cur (out) - // - // cur = attn_w*cur + attn_b - // [2304, N] - { - cur = ggml_mul_mat(ctx0, - model.layers[il].c_attn_attn_w, - cur); - - cur = ggml_add(ctx0, - ggml_repeat(ctx0, model.layers[il].c_attn_attn_b, cur), - cur); - } - - // self-attention - { - struct ggml_tensor * Qcur = ggml_view_2d(ctx0, cur, n_embd, N, cur->nb[1], 0*sizeof(float)*n_embd); - struct ggml_tensor * Kcur = ggml_view_2d(ctx0, cur, n_embd, N, cur->nb[1], 1*sizeof(float)*n_embd); - struct ggml_tensor * Vcur = ggml_view_2d(ctx0, cur, n_embd, N, cur->nb[1], 2*sizeof(float)*n_embd); - - // store key and value to memory - if (N >= 1) { - struct ggml_tensor * k = ggml_view_1d(ctx0, model.memory_k, N*n_embd, (ggml_element_size(model.memory_k)*n_embd)*(il*n_ctx + n_past)); - struct ggml_tensor * v = ggml_view_1d(ctx0, model.memory_v, N*n_embd, (ggml_element_size(model.memory_v)*n_embd)*(il*n_ctx + n_past)); - - ggml_build_forward_expand(&gf, ggml_cpy(ctx0, Kcur, k)); - ggml_build_forward_expand(&gf, ggml_cpy(ctx0, Vcur, v)); - } - - // Q = Qcur.contiguous().view(n_embd/n_head, n_head, N).permute(0, 2, 1, 3) - // [64, N, 12] - struct ggml_tensor * Q = - ggml_permute(ctx0, - ggml_cpy(ctx0, - Qcur, - ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, n_embd/n_head, n_head, N)), - 0, 2, 1, 3); - - // K = Kmem.view(n_embd/n_head, n_head, n_past + N).permute(0, 2, 1, 3) - // [64, n_past + N, 12] - struct ggml_tensor * K = - ggml_permute(ctx0, - ggml_reshape_3d(ctx0, - ggml_view_1d(ctx0, model.memory_k, (n_past + N)*n_embd, il*n_ctx*ggml_element_size(model.memory_k)*n_embd), - n_embd/n_head, n_head, n_past + N), - 0, 2, 1, 3); - - // GG: flash attention - //struct ggml_tensor * V = - // ggml_cpy(ctx0, - // ggml_permute(ctx0, - // ggml_reshape_3d(ctx0, - // ggml_view_1d(ctx0, model.memory_v, (n_past + N)*n_embd, il*n_ctx*ggml_element_size(model.memory_v)*n_embd), - // n_embd/n_head, n_head, n_past + N), - // 1, 2, 0, 3), - // ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, n_past + N, n_embd/n_head, n_head)); - - //struct ggml_tensor * KQV = ggml_flash_attn(ctx0, Q, K, V, true); - - // K * Q - // [n_past + N, N, 12] - struct ggml_tensor * KQ = ggml_mul_mat(ctx0, K, Q); - - // KQ_scaled = KQ / sqrt(n_embd/n_head) - // [n_past + N, N, 12] - struct ggml_tensor * KQ_scaled = - ggml_scale(ctx0, - KQ, - ggml_new_f32(ctx0, 1.0f/sqrt(float(n_embd)/n_head)) - ); - - // KQ_masked = mask_past(KQ_scaled) - // [n_past + N, N, 12] - struct ggml_tensor * KQ_masked = ggml_diag_mask_inf(ctx0, KQ_scaled, n_past); - - // KQ = soft_max(KQ_masked) - // [n_past + N, N, 12] - struct ggml_tensor * KQ_soft_max = ggml_soft_max(ctx0, KQ_masked); - - // V_trans = Vmem.view(n_embd/n_head, n_head, n_past + N).permute(1, 2, 0, 3).contiguous() - // [n_past + N, 64, 12] - struct ggml_tensor * V_trans = - ggml_cpy(ctx0, - ggml_permute(ctx0, - ggml_reshape_3d(ctx0, - ggml_view_1d(ctx0, model.memory_v, (n_past + N)*n_embd, il*n_ctx*ggml_element_size(model.memory_v)*n_embd), - n_embd/n_head, n_head, n_past + N), - 1, 2, 0, 3), - ggml_new_tensor_3d(ctx0, model.memory_v->type, n_past + N, n_embd/n_head, n_head)); - - // KQV = transpose(V) * KQ_soft_max - // [64, N, 12] - struct ggml_tensor * KQV = ggml_mul_mat(ctx0, V_trans, KQ_soft_max); - - // KQV_merged = KQV.permute(0, 2, 1, 3) - // [64, 12, N] - struct ggml_tensor * KQV_merged = ggml_permute(ctx0, KQV, 0, 2, 1, 3); - - // cur = KQV_merged.contiguous().view(n_embd, N) - // [768, N] - cur = ggml_cpy(ctx0, - KQV_merged, - ggml_new_tensor_2d(ctx0, GGML_TYPE_F32, n_embd, N)); - } - - // projection - // [ 768, 768] - model.layers[il].c_attn_proj_w - // [ 768, 1] - model.layers[il].c_attn_proj_b - // [ 768, N] - cur (in) - // [ 768, N] - cur (out) - // - // cur = proj_w*cur + proj_b - // [768, N] - { - cur = ggml_mul_mat(ctx0, - model.layers[il].c_attn_proj_w, - cur); - - cur = ggml_add(ctx0, - ggml_repeat(ctx0, model.layers[il].c_attn_proj_b, cur), - cur); - } - - // add the input - cur = ggml_add(ctx0, cur, inpL); - - struct ggml_tensor * inpFF = cur; - - // feed-forward network - { - // norm - { - cur = ggml_norm(ctx0, inpFF); - - // cur = ln_2_g*cur + ln_2_b - // [ 768, N] - cur = ggml_add(ctx0, - ggml_mul(ctx0, - ggml_repeat(ctx0, model.layers[il].ln_2_g, cur), - cur), - ggml_repeat(ctx0, model.layers[il].ln_2_b, cur)); - } - - // fully connected - // [3072, 768] - model.layers[il].c_mlp_fc_w - // [3072, 1] - model.layers[il].c_mlp_fc_b - // [ 768, N] - cur (in) - // [3072, N] - cur (out) - // - // cur = fc_w*cur + fc_b - // [3072, N] - cur = ggml_mul_mat(ctx0, - model.layers[il].c_mlp_fc_w, - cur); - - cur = ggml_add(ctx0, - ggml_repeat(ctx0, model.layers[il].c_mlp_fc_b, cur), - cur); - - // GELU activation - // [3072, N] - cur = ggml_gelu(ctx0, cur); - - // projection - // [ 768, 3072] - model.layers[il].c_mlp_proj_w - // [ 768, 1] - model.layers[il].c_mlp_proj_b - // [3072, N] - cur (in) - // [ 768, N] - cur (out) - // - // cur = proj_w*cur + proj_b - // [768, N] - cur = ggml_mul_mat(ctx0, - model.layers[il].c_mlp_proj_w, - cur); - - cur = ggml_add(ctx0, - ggml_repeat(ctx0, model.layers[il].c_mlp_proj_b, cur), - cur); - } - - // input for next layer - inpL = ggml_add(ctx0, cur, inpFF); - } - - // norm - { - // [ 768, N] - inpL = ggml_norm(ctx0, inpL); - - // inpL = ln_f_g*inpL + ln_f_b - // [ 768, N] - inpL = ggml_add(ctx0, - ggml_mul(ctx0, - ggml_repeat(ctx0, model.ln_f_g, inpL), - inpL), - ggml_repeat(ctx0, model.ln_f_b, inpL)); - } - - // inpL = WTE * inpL - // [ 768, 50257] - model.lm_head - // [ 768, N] - inpL - inpL = ggml_mul_mat(ctx0, model.lm_head, inpL); - - // logits -> probs - //inpL = ggml_soft_max(ctx0, inpL); - - // run the computation - ggml_build_forward_expand(&gf, inpL); - ggml_graph_compute (ctx0, &gf); - - //if (n_past%100 == 0) { - // ggml_graph_print (&gf); - // ggml_graph_dump_dot(&gf, NULL, "gpt-2.dot"); - //} - - //embd_w.resize(n_vocab*N); - //memcpy(embd_w.data(), ggml_get_data(inpL), sizeof(float)*n_vocab*N); - - // return result just for the last token - embd_w.resize(n_vocab); - memcpy(embd_w.data(), (float *) ggml_get_data(inpL) + (n_vocab*(N-1)), sizeof(float)*n_vocab); - - if (mem_per_token == 0) { - mem_per_token = ggml_used_mem(ctx0)/N; - } - //printf("used_mem = %zu\n", ggml_used_mem(ctx0)); - - ggml_free(ctx0); - - return true; -} - -int main(int argc, char ** argv) { - ggml_time_init(); - const int64_t t_main_start_us = ggml_time_us(); - - gpt_params params; - params.model = "models/gpt-2-117M/ggml-model.bin"; - - if (gpt_params_parse(argc, argv, params) == false) { - return 1; - } - - if (params.seed < 0) { - params.seed = time(NULL); - } - - printf("%s: seed = %d\n", __func__, params.seed); - - std::mt19937 rng(params.seed); - if (params.prompt.empty()) { - if( !isatty(STDIN_FILENO) ){ - std::string line; - while( std::getline(std::cin, line) ){ - params.prompt = params.prompt + "\n" + line; - } - } else { - params.prompt = gpt_random_prompt(rng); - } - } - - int64_t t_load_us = 0; - - gpt_vocab vocab; - gpt2_model model; - - // load the model - { - const int64_t t_start_us = ggml_time_us(); - - if (!gpt2_model_load(params.model, model, vocab)) { - fprintf(stderr, "%s: failed to load model from '%s'\n", __func__, params.model.c_str()); - return 1; - } - - t_load_us = ggml_time_us() - t_start_us; - } - - int n_past = 0; - - int64_t t_sample_us = 0; - int64_t t_predict_us = 0; - - std::vector logits; - - // tokenize the prompt - std::vector embd_inp = ::gpt_tokenize(vocab, params.prompt); - - params.n_predict = std::min(params.n_predict, model.hparams.n_ctx - (int) embd_inp.size()); - - printf("%s: prompt: '%s'\n", __func__, params.prompt.c_str()); - printf("%s: number of tokens in prompt = %zu, first 8 tokens: ", __func__, embd_inp.size()); - for (int i = 0; i < std::min(8, (int) embd_inp.size()); i++) { - printf("%d ", embd_inp[i]); - } - printf("\n\n"); - - // submit the input prompt token-by-token - // this reduces the memory usage during inference, at the cost of a bit of speed at the beginning - std::vector embd; - - // determine the required inference memory per token: - size_t mem_per_token = 0; - gpt2_eval(model, params.n_threads, 0, { 0, 1, 2, 3 }, logits, mem_per_token); - - for (int i = embd.size(); i < embd_inp.size() + params.n_predict; i++) { - // predict - if (embd.size() > 0) { - const int64_t t_start_us = ggml_time_us(); - - if (!gpt2_eval(model, params.n_threads, n_past, embd, logits, mem_per_token)) { - printf("Failed to predict\n"); - return 1; - } - - t_predict_us += ggml_time_us() - t_start_us; - } - - n_past += embd.size(); - embd.clear(); - - if (i >= embd_inp.size()) { - // sample next token - const int top_k = params.top_k; - const float top_p = params.top_p; - const float temp = params.temp; - - const int n_vocab = model.hparams.n_vocab; - - gpt_vocab::id id = 0; - - { - const int64_t t_start_sample_us = ggml_time_us(); - - id = gpt_sample_top_k_top_p(vocab, logits.data() + (logits.size() - n_vocab), top_k, top_p, temp, rng); - - t_sample_us += ggml_time_us() - t_start_sample_us; - } - - // add it to the context - embd.push_back(id); - } else { - // if here, it means we are still processing the input prompt - for (int k = i; k < embd_inp.size(); k++) { - embd.push_back(embd_inp[k]); - if (embd.size() >= params.n_batch) { - break; - } - } - i += embd.size() - 1; - } - - // display text - for (auto id : embd) { - printf("%s", vocab.id_to_token[id].c_str()); - } - fflush(stdout); - - // end of text token - if (embd.back() == 50256) { - break; - } - } - - // report timing - { - const int64_t t_main_end_us = ggml_time_us(); - - printf("\n\n"); - printf("%s: mem per token = %8zu bytes\n", __func__, mem_per_token); - printf("%s: load time = %8.2f ms\n", __func__, t_load_us/1000.0f); - printf("%s: sample time = %8.2f ms\n", __func__, t_sample_us/1000.0f); - printf("%s: predict time = %8.2f ms / %.2f ms per token\n", __func__, t_predict_us/1000.0f, t_predict_us/1000.0f/n_past); - printf("%s: total time = %8.2f ms\n", __func__, (t_main_end_us - t_main_start_us)/1000.0f); - } - - ggml_free(model.ctx); - - return 0; -} \ No newline at end of file diff --git a/otherarch/gpt2_quantize.cpp b/otherarch/gpt2_quantize.cpp deleted file mode 100644 index 9a7916d49..000000000 --- a/otherarch/gpt2_quantize.cpp +++ /dev/null @@ -1,323 +0,0 @@ -#include "ggml.h" - -#include "utils.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// default hparams (GPT-2 117M) -struct gpt2_hparams { - int32_t n_vocab = 50257; - int32_t n_ctx = 1024; - int32_t n_embd = 768; - int32_t n_head = 12; - int32_t n_layer = 12; - int32_t f16 = 1; -}; - -// quantize a model -bool gpt2_model_quantize(const std::string & fname_inp, const std::string & fname_out, int itype) { - ggml_type type = GGML_TYPE_Q4_1; - - switch (itype) { - case 2: type = GGML_TYPE_Q4_0; break; - case 3: type = GGML_TYPE_Q4_1; break; - default: fprintf(stderr, "%s: invalid quantization type %d\n", __func__, itype); return 1; - }; - - if (type != GGML_TYPE_Q4_0 && type != GGML_TYPE_Q4_1) { - fprintf(stderr, "%s: invalid quantization type %d\n", __func__, type); - return false; - } - - gpt_vocab vocab; - - printf("%s: loading model from '%s'\n", __func__, fname_inp.c_str()); - - auto finp = std::ifstream(fname_inp, std::ios::binary); - if (!finp) { - fprintf(stderr, "%s: failed to open '%s' for reading\n", __func__, fname_inp.c_str()); - return false; - } - - auto fout = std::ofstream(fname_out, std::ios::binary); - if (!fout) { - fprintf(stderr, "%s: failed to open '%s' for writing\n", __func__, fname_out.c_str()); - return false; - } - - // verify magic - { - uint32_t magic; - finp.read((char *) &magic, sizeof(magic)); - if (magic != 0x67676d6c) { - fprintf(stderr, "%s: invalid model file '%s' (bad magic)\n", __func__, fname_inp.c_str()); - return false; - } - - fout.write((char *) &magic, sizeof(magic)); - } - - gpt2_hparams hparams; - - // load hparams - { - finp.read((char *) &hparams.n_vocab, sizeof(hparams.n_vocab)); - finp.read((char *) &hparams.n_ctx, sizeof(hparams.n_ctx)); - finp.read((char *) &hparams.n_embd, sizeof(hparams.n_embd)); - finp.read((char *) &hparams.n_head, sizeof(hparams.n_head)); - finp.read((char *) &hparams.n_layer, sizeof(hparams.n_layer)); - finp.read((char *) &hparams.f16, sizeof(hparams.f16)); - - printf("%s: n_vocab = %d\n", __func__, hparams.n_vocab); - printf("%s: n_ctx = %d\n", __func__, hparams.n_ctx); - printf("%s: n_embd = %d\n", __func__, hparams.n_embd); - printf("%s: n_head = %d\n", __func__, hparams.n_head); - printf("%s: n_layer = %d\n", __func__, hparams.n_layer); - printf("%s: f16 = %d\n", __func__, hparams.f16); - - fout.write((char *) &hparams.n_vocab, sizeof(hparams.n_vocab)); - fout.write((char *) &hparams.n_ctx, sizeof(hparams.n_ctx)); - fout.write((char *) &hparams.n_embd, sizeof(hparams.n_embd)); - fout.write((char *) &hparams.n_head, sizeof(hparams.n_head)); - fout.write((char *) &hparams.n_layer, sizeof(hparams.n_layer)); - fout.write((char *) &itype, sizeof(hparams.f16)); - } - - // load vocab - { - int32_t n_vocab = 0; - finp.read ((char *) &n_vocab, sizeof(n_vocab)); - fout.write((char *) &n_vocab, sizeof(n_vocab)); - - if (n_vocab != hparams.n_vocab) { - fprintf(stderr, "%s: invalid model file '%s' (bad vocab size %d != %d)\n", - __func__, fname_inp.c_str(), n_vocab, hparams.n_vocab); - return false; - } - - std::string word; - for (int i = 0; i < n_vocab; i++) { - uint32_t len; - finp.read ((char *) &len, sizeof(len)); - fout.write((char *) &len, sizeof(len)); - - word.resize(len); - finp.read ((char *) word.data(), len); - fout.write((char *) word.data(), len); - - vocab.token_to_id[word] = i; - vocab.id_to_token[i] = word; - } - } - - // load weights - { - size_t total_size_org = 0; - size_t total_size_new = 0; - - std::vector work; - - std::vector data_u8; - std::vector data_f16; - std::vector data_f32; - - std::vector hist_all(1 << 4, 0); - - while (true) { - int32_t n_dims; - int32_t length; - int32_t ftype; - - finp.read(reinterpret_cast(&n_dims), sizeof(n_dims)); - finp.read(reinterpret_cast(&length), sizeof(length)); - finp.read(reinterpret_cast(&ftype), sizeof(ftype)); - - if (finp.eof()) { - break; - } - - int32_t nelements = 1; - int32_t ne[2] = { 1, 1 }; - for (int i = 0; i < n_dims; ++i) { - finp.read (reinterpret_cast(&ne[i]), sizeof(ne[i])); - nelements *= ne[i]; - } - - std::string name(length, 0); - finp.read (&name[0], length); - - { - static const char * ftype_str[] = { "f32", "f16", "q4_0", "q4_1", }; - printf("%24s - [%5d, %5d], type = %6s ", name.data(), ne[0], ne[1], ftype_str[ftype]); - } - - // regexes of tensor names to be quantized - const std::vector k_names = { - "model/wte", - "model/lm_head", - "model/h.*/attn/c_attn/w", - "model/h.*/attn/c_proj/w", - "model/h.*/mlp/c_fc/w", - "model/h.*/mlp/c_proj/w", - }; - - bool quantize = false; - for (const auto & s : k_names) { - if (std::regex_match(name, std::regex(s))) { - quantize = true; - break; - } - } - - if (quantize) { - if (ftype != 0 && ftype != 1) { - fprintf(stderr, "%s: unsupported ftype %d for integer quantization\n", __func__, ftype); - return false; - } - - if (ftype == 1) { - data_f16.resize(nelements); - finp.read(reinterpret_cast(data_f16.data()), nelements * sizeof(ggml_fp16_t)); - data_f32.resize(nelements); - for (int i = 0; i < nelements; ++i) { - data_f32[i] = ggml_fp16_to_fp32(data_f16[i]); - } - } else { - data_f32.resize(nelements); - finp.read(reinterpret_cast(data_f32.data()), nelements * sizeof(float)); - } - - ftype = itype; - } else { - const int bpe = (ftype == 0) ? sizeof(float) : sizeof(uint16_t); - - data_u8.resize(nelements*bpe); - finp.read(reinterpret_cast(data_u8.data()), nelements * bpe); - } - - fout.write(reinterpret_cast(&n_dims), sizeof(n_dims)); - fout.write(reinterpret_cast(&length), sizeof(length)); - fout.write(reinterpret_cast(&ftype), sizeof(ftype)); - for (int i = 0; i < n_dims; ++i) { - fout.write(reinterpret_cast(&ne[i]), sizeof(ne[i])); - } - fout.write(&name[0], length); - - if (quantize) { - printf("quantizing .. "); - work.resize(nelements); // for quantization - - size_t cur_size = 0; - std::vector hist_cur(1 << 4, 0); - - switch (type) { - case GGML_TYPE_Q4_0: - { - cur_size = ggml_quantize_q4_0(data_f32.data(), work.data(), nelements, ne[0], hist_cur.data()); - } break; - case GGML_TYPE_Q4_1: - { - cur_size = ggml_quantize_q4_1(data_f32.data(), work.data(), nelements, ne[0], hist_cur.data()); - } break; - default: - { - fprintf(stderr, "%s: unsupported quantization type %d\n", __func__, type); - return false; - } - } - - fout.write(reinterpret_cast(work.data()), cur_size); - total_size_new += cur_size; - - printf("size = %8.2f MB -> %8.2f MB | hist: ", nelements * sizeof(float)/1024.0/1024.0, cur_size/1024.0/1024.0); - for (int i = 0; i < hist_cur.size(); ++i) { - hist_all[i] += hist_cur[i]; - } - - for (int i = 0; i < hist_cur.size(); ++i) { - printf("%5.3f ", hist_cur[i] / (float)nelements); - } - printf("\n"); - } else { - printf("size = %8.3f MB\n", data_u8.size()/1024.0/1024.0); - fout.write(reinterpret_cast(data_u8.data()), data_u8.size()); - total_size_new += data_u8.size(); - } - - total_size_org += nelements * sizeof(float); - } - - printf("%s: model size = %8.2f MB\n", __func__, total_size_org/1024.0/1024.0); - printf("%s: quant size = %8.2f MB\n", __func__, total_size_new/1024.0/1024.0); - - { - int64_t sum_all = 0; - for (int i = 0; i < hist_all.size(); ++i) { - sum_all += hist_all[i]; - } - - printf("%s: hist: ", __func__); - for (int i = 0; i < hist_all.size(); ++i) { - printf("%5.3f ", hist_all[i] / (float)sum_all); - } - printf("\n"); - } - } - - finp.close(); - fout.close(); - - return true; -} - -// usage: -// ./gpt-2-quantize models/gpt-2-117M/ggml-model.bin models/gpt-2-117M/ggml-model-quant.bin type -// -int main(int argc, char ** argv) { - if (argc != 4) { - fprintf(stderr, "usage: %s model-f32.bin model-quant.bin type\n", argv[0]); - fprintf(stderr, " type = 2 - q4_0\n"); - fprintf(stderr, " type = 3 - q4_1\n"); - return 1; - } - - const std::string fname_inp = argv[1]; - const std::string fname_out = argv[2]; - - const int itype = atoi(argv[3]); - - const int64_t t_main_start_us = ggml_time_us(); - - int64_t t_quantize_us = 0; - - // load the model - { - const int64_t t_start_us = ggml_time_us(); - - if (!gpt2_model_quantize(fname_inp, fname_out, itype)) { - fprintf(stderr, "%s: failed to quantize model from '%s'\n", __func__, fname_inp.c_str()); - return 1; - } - - t_quantize_us = ggml_time_us() - t_start_us; - } - - // report timing - { - const int64_t t_main_end_us = ggml_time_us(); - - printf("\n"); - printf("%s: quantize time = %8.2f ms\n", __func__, t_quantize_us/1000.0f); - printf("%s: total time = %8.2f ms\n", __func__, (t_main_end_us - t_main_start_us)/1000.0f); - } - - return 0; -} \ No newline at end of file diff --git a/otherarch/gptj_old.cpp b/otherarch/gptj_old.cpp deleted file mode 100644 index ef4e5f9c6..000000000 --- a/otherarch/gptj_old.cpp +++ /dev/null @@ -1,682 +0,0 @@ -#include "ggml_v1.h" -#include "otherarch.h" - -#include "utils.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - - -// load the model's weights from a file -bool legacy_gptj_model_load(const std::string & fname, gptj_model & model, gpt_vocab & vocab) { - printf("%s: loading model from '%s' - please wait ...\n", __func__, fname.c_str()); - - auto fin = std::ifstream(fname, std::ios::binary); - if (!fin) { - fprintf(stderr, "%s: failed to open '%s'\n", __func__, fname.c_str()); - return false; - } - - // verify magic - { - uint32_t magic; - fin.read((char *) &magic, sizeof(magic)); - if (magic != 0x67676d6c) { - fprintf(stderr, "%s: invalid model file '%s' (bad magic)\n", __func__, fname.c_str()); - return false; - } - } - - // load hparams - { - auto & hparams = model.hparams; - - fin.read((char *) &hparams.n_vocab, sizeof(hparams.n_vocab)); - fin.read((char *) &hparams.n_ctx, sizeof(hparams.n_ctx)); - fin.read((char *) &hparams.n_embd, sizeof(hparams.n_embd)); - fin.read((char *) &hparams.n_head, sizeof(hparams.n_head)); - fin.read((char *) &hparams.n_layer, sizeof(hparams.n_layer)); - fin.read((char *) &hparams.n_rot, sizeof(hparams.n_rot)); - fin.read((char *) &hparams.f16, sizeof(hparams.f16)); - - printf("%s: n_vocab = %d\n", __func__, hparams.n_vocab); - printf("%s: n_ctx = %d\n", __func__, hparams.n_ctx); - printf("%s: n_embd = %d\n", __func__, hparams.n_embd); - printf("%s: n_head = %d\n", __func__, hparams.n_head); - printf("%s: n_layer = %d\n", __func__, hparams.n_layer); - printf("%s: n_rot = %d\n", __func__, hparams.n_rot); - printf("%s: f16 = %d\n", __func__, hparams.f16); - } - - // load vocab - { - int32_t n_vocab = 0; - fin.read((char *) &n_vocab, sizeof(n_vocab)); - - if (n_vocab != model.hparams.n_vocab) { - fprintf(stderr, "%s: invalid model file '%s' (bad vocab size %d != %d)\n", - __func__, fname.c_str(), n_vocab, model.hparams.n_vocab); - return false; - } - - std::string word; - for (int i = 0; i < n_vocab; i++) { - uint32_t len; - fin.read((char *) &len, sizeof(len)); - - word.resize(len); - fin.read((char *) word.data(), len); - - vocab.token_to_id[word] = i; - vocab.id_to_token[i] = word; - } - } - - // for the big tensors, we have the option to store the data in 16-bit floats - // in order to save memory and also to speed up the computation - const ggml_type wtype = model.hparams.f16 ? GGML_TYPE_F16 : GGML_TYPE_F32; - - auto & ctx = model.ctx; - - size_t ctx_size = 0; - - { - const auto & hparams = model.hparams; - - const int n_embd = hparams.n_embd; - const int n_layer = hparams.n_layer; - const int n_ctx = hparams.n_ctx; - const int n_vocab = hparams.n_vocab; - - ctx_size += n_embd*ggml_type_size(GGML_TYPE_F32); // ln_f_g - ctx_size += n_embd*ggml_type_size(GGML_TYPE_F32); // ln_f_b - - ctx_size += n_embd*n_vocab*ggml_type_size(wtype); // wte - - ctx_size += n_embd*n_vocab*ggml_type_size(wtype); // lmh_g - ctx_size += n_vocab*ggml_type_size(GGML_TYPE_F32); // lmh_b - - ctx_size += n_layer*(n_embd*ggml_type_size(GGML_TYPE_F32)); // ln_1_g - ctx_size += n_layer*(n_embd*ggml_type_size(GGML_TYPE_F32)); // ln_1_b - - ctx_size += n_layer*(n_embd*n_embd*ggml_type_size(wtype)); // c_attn_q_proj_w - ctx_size += n_layer*(n_embd*n_embd*ggml_type_size(wtype)); // c_attn_k_proj_w - ctx_size += n_layer*(n_embd*n_embd*ggml_type_size(wtype)); // c_attn_v_proj_w - - ctx_size += n_layer*(n_embd*n_embd*ggml_type_size(wtype)); // c_attn_proj_w - - ctx_size += n_layer*(4*n_embd*n_embd*ggml_type_size(wtype)); // c_mlp_fc_w - ctx_size += n_layer*( 4*n_embd*ggml_type_size(GGML_TYPE_F32)); // c_mlp_fc_b - - ctx_size += n_layer*(4*n_embd*n_embd*ggml_type_size(wtype)); // c_mlp_proj_w_trans - ctx_size += n_layer*( n_embd*ggml_type_size(GGML_TYPE_F32)); // c_mlp_proj_b - - ctx_size += n_ctx*n_layer*n_embd*ggml_type_size(GGML_TYPE_F32); // memory_k - ctx_size += n_ctx*n_layer*n_embd*ggml_type_size(GGML_TYPE_F32); // memory_v - - ctx_size += (5 + 10*n_layer)*256; // object overhead - - printf("%s: ggml ctx size = %6.2f MB\n", __func__, ctx_size/(1024.0*1024.0)); - } - - // create the ggml context - { - struct ggml_init_params params = { - .mem_size = ctx_size, - .mem_buffer = NULL, - }; - - model.ctx = ggml_init(params); - if (!model.ctx) { - fprintf(stderr, "%s: ggml_init() failed\n", __func__); - return false; - } - } - - // prepare memory for the weights - { - const auto & hparams = model.hparams; - - const int n_embd = hparams.n_embd; - const int n_layer = hparams.n_layer; - const int n_ctx = hparams.n_ctx; - const int n_vocab = hparams.n_vocab; - - model.layers.resize(n_layer); - - model.wte = ggml_new_tensor_2d(ctx, wtype, n_embd, n_vocab); - - model.ln_f_g = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_embd); - model.ln_f_b = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_embd); - - model.lmh_g = ggml_new_tensor_2d(ctx, wtype, n_embd, n_vocab); - model.lmh_b = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_vocab); - - // map by name - model.tensors["transformer.wte.weight"] = model.wte; - - model.tensors["transformer.ln_f.weight"] = model.ln_f_g; - model.tensors["transformer.ln_f.bias"] = model.ln_f_b; - - model.tensors["lm_head.weight"] = model.lmh_g; - model.tensors["lm_head.bias"] = model.lmh_b; - - for (int i = 0; i < n_layer; ++i) { - auto & layer = model.layers[i]; - - layer.ln_1_g = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_embd); - layer.ln_1_b = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_embd); - - layer.c_attn_q_proj_w = ggml_new_tensor_2d(ctx, wtype, n_embd, n_embd); - layer.c_attn_k_proj_w = ggml_new_tensor_2d(ctx, wtype, n_embd, n_embd); - layer.c_attn_v_proj_w = ggml_new_tensor_2d(ctx, wtype, n_embd, n_embd); - - layer.c_attn_proj_w = ggml_new_tensor_2d(ctx, wtype, n_embd, n_embd); - - layer.c_mlp_fc_w = ggml_new_tensor_2d(ctx, wtype, 4*n_embd, n_embd); - layer.c_mlp_fc_b = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, 4*n_embd); - - layer.c_mlp_proj_w_trans = ggml_new_tensor_2d(ctx, wtype, 4*n_embd, n_embd); - layer.c_mlp_proj_b = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_embd); - - // map by name - model.tensors["transformer.h." + std::to_string(i) + ".ln_1.weight"] = layer.ln_1_g; - model.tensors["transformer.h." + std::to_string(i) + ".ln_1.bias"] = layer.ln_1_b; - - model.tensors["transformer.h." + std::to_string(i) + ".attn.q_proj.weight"] = layer.c_attn_q_proj_w; - model.tensors["transformer.h." + std::to_string(i) + ".attn.k_proj.weight"] = layer.c_attn_k_proj_w; - model.tensors["transformer.h." + std::to_string(i) + ".attn.v_proj.weight"] = layer.c_attn_v_proj_w; - - model.tensors["transformer.h." + std::to_string(i) + ".attn.out_proj.weight"] = layer.c_attn_proj_w; - - model.tensors["transformer.h." + std::to_string(i) + ".mlp.fc_in.weight"] = layer.c_mlp_fc_w; - model.tensors["transformer.h." + std::to_string(i) + ".mlp.fc_in.bias"] = layer.c_mlp_fc_b; - - model.tensors["transformer.h." + std::to_string(i) + ".mlp.fc_out.weight"] = layer.c_mlp_proj_w_trans; - model.tensors["transformer.h." + std::to_string(i) + ".mlp.fc_out.bias"] = layer.c_mlp_proj_b; - } - } - - // key + value memory - { - const auto & hparams = model.hparams; - - const int n_embd = hparams.n_embd; - const int n_layer = hparams.n_layer; - const int n_ctx = hparams.n_ctx; - - const int n_mem = n_layer*n_ctx; - const int n_elements = n_embd*n_mem; - - model.memory_k = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_elements); - model.memory_v = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_elements); - - const size_t memory_size = ggml_nbytes(model.memory_k) + ggml_nbytes(model.memory_v); - - printf("%s: memory_size = %8.2f MB, n_mem = %d\n", __func__, memory_size/1024.0/1024.0, n_mem); - } - - // load weights - { - int n_tensors = 0; - size_t total_size = 0; - - printf("%s: ", __func__); - - while (true) { - int32_t n_dims; - int32_t length; - int32_t ftype; - - fin.read(reinterpret_cast(&n_dims), sizeof(n_dims)); - fin.read(reinterpret_cast(&length), sizeof(length)); - fin.read(reinterpret_cast(&ftype), sizeof(ftype)); - - if (fin.eof()) { - break; - } - - int32_t nelements = 1; - int32_t ne[2] = { 1, 1 }; - for (int i = 0; i < n_dims; ++i) { - fin.read(reinterpret_cast(&ne[i]), sizeof(ne[i])); - nelements *= ne[i]; - } - - std::string name(length, 0); - fin.read(&name[0], length); - - if (model.tensors.find(name.data()) == model.tensors.end()) { - fprintf(stderr, "%s: unknown tensor '%s' in model file\n", __func__, name.data()); - return false; - } - - auto tensor = model.tensors[name.data()]; - if (ggml_nelements(tensor) != nelements) { - fprintf(stderr, "%s: tensor '%s' has wrong size in model file\n", __func__, name.data()); - return false; - } - - if (tensor->ne[0] != ne[0] || tensor->ne[1] != ne[1]) { - fprintf(stderr, "%s: tensor '%s' has wrong shape in model file: got [%d, %d], expected [%d, %d]\n", - __func__, name.data(), tensor->ne[0], tensor->ne[1], ne[0], ne[1]); - return false; - } - - const size_t bpe = tensor->type == GGML_TYPE_I8 ? 1 : (ftype == 0) ? sizeof(float) : sizeof(ggml_fp16_t); - - if (nelements*bpe != ggml_nbytes(tensor)) { - fprintf(stderr, "%s: tensor '%s' has wrong size in model file: got %zu, expected %zu\n", - __func__, name.data(), ggml_nbytes(tensor), nelements*bpe); - return false; - } - - fin.read(reinterpret_cast(tensor->data), ggml_nbytes(tensor)); - - //printf("%42s - [%5d, %5d], type = %6s, %6.2f MB\n", name.data(), ne[0], ne[1], ftype == 0 ? "float" : "f16", ggml_nbytes(tensor)/1024.0/1024.0); - total_size += ggml_nbytes(tensor); - if (++n_tensors % 8 == 0) { - printf("."); - fflush(stdout); - } - } - - printf(" done\n"); - - printf("%s: model size = %8.2f MB / num tensors = %d\n", __func__, total_size/1024.0/1024.0, n_tensors); - } - - fin.close(); - - return true; -} - -// evaluate the transformer -// -// - model: the model -// - n_threads: number of threads to use -// - n_past: the context size so far -// - embd_inp: the embeddings of the tokens in the context -// - embd_w: the predicted logits for the next token -// -// The GPT-J model requires about 16MB of memory per input token. -// -bool legacy_gptj_eval( - const gptj_model & model, - const int n_threads, - const int n_past, - const std::vector & embd_inp, - std::vector & embd_w, - size_t & mem_per_token) { - const int N = embd_inp.size(); - - const auto & hparams = model.hparams; - - const int n_embd = hparams.n_embd; - const int n_layer = hparams.n_layer; - const int n_ctx = hparams.n_ctx; - const int n_head = hparams.n_head; - const int n_vocab = hparams.n_vocab; - const int n_rot = hparams.n_rot; - - const int d_key = n_embd/n_head; - - static size_t buf_size = 256u*1024*1024; - static void * buf = malloc(buf_size); - - if (mem_per_token > 0 && mem_per_token*N > buf_size) { - const size_t buf_size_new = 1.1*(mem_per_token*N); // add 10% to account for ggml object overhead - //printf("\n%s: reallocating buffer from %zu to %zu bytes\n", __func__, buf_size, buf_size_new); - - // reallocate - buf_size = buf_size_new; - buf = realloc(buf, buf_size); - if (buf == nullptr) { - fprintf(stderr, "%s: failed to allocate %zu bytes\n", __func__, buf_size); - return false; - } - } - - struct ggml_init_params params = { - .mem_size = buf_size, - .mem_buffer = buf, - }; - - struct ggml_context * ctx0 = ggml_init(params); - struct ggml_cgraph gf = { .n_threads = n_threads }; - - struct ggml_tensor * embd = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, N); - memcpy(embd->data, embd_inp.data(), N*ggml_element_size(embd)); - - // wte - struct ggml_tensor * inpL = ggml_get_rows(ctx0, model.wte, embd); - - for (int il = 0; il < n_layer; ++il) { - struct ggml_tensor * cur; - - // norm - { - cur = ggml_norm(ctx0, inpL); - - // cur = ln_1_g*cur + ln_1_b - cur = ggml_add(ctx0, - ggml_mul(ctx0, - ggml_repeat(ctx0, model.layers[il].ln_1_g, cur), - cur), - ggml_repeat(ctx0, model.layers[il].ln_1_b, cur)); - } - - struct ggml_tensor * inpSA = cur; - - // self-attention - { - struct ggml_tensor * Qcur = ggml_mul_mat(ctx0, ggml_transpose(ctx0, model.layers[il].c_attn_q_proj_w), cur); - struct ggml_tensor * Kcur = ggml_mul_mat(ctx0, ggml_transpose(ctx0, model.layers[il].c_attn_k_proj_w), cur); - struct ggml_tensor * Vcur = ggml_mul_mat(ctx0, ggml_transpose(ctx0, model.layers[il].c_attn_v_proj_w), cur); - - // store key and value to memory - if (N >= 1) { - struct ggml_tensor * k = ggml_view_1d(ctx0, model.memory_k, N*n_embd, (ggml_element_size(model.memory_k)*n_embd)*(il*n_ctx + n_past)); - struct ggml_tensor * v = ggml_view_1d(ctx0, model.memory_v, N*n_embd, (ggml_element_size(model.memory_v)*n_embd)*(il*n_ctx + n_past)); - - ggml_build_forward_expand(&gf, ggml_cpy(ctx0, Kcur, k)); - ggml_build_forward_expand(&gf, ggml_cpy(ctx0, Vcur, v)); - } - - // Q = Qcur.contiguous().view(n_embd/n_head, n_head, N).permute(0, 2, 1, 3) - struct ggml_tensor * Q = - ggml_permute(ctx0, - ggml_rope(ctx0, - ggml_cpy(ctx0, - Qcur, - ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, n_embd/n_head, n_head, N)), - n_past, n_rot, 0), - 0, 2, 1, 3); - - // K = Kmem.view(n_embd/n_head, n_head, n_past + N).permute(0, 2, 1, 3) - struct ggml_tensor * K = - ggml_permute(ctx0, - ggml_rope(ctx0, - ggml_reshape_3d(ctx0, - ggml_view_1d(ctx0, model.memory_k, (n_past + N)*n_embd, il*n_ctx*ggml_element_size(model.memory_k)*n_embd), - n_embd/n_head, n_head, n_past + N), - n_past, n_rot, 1), - 0, 2, 1, 3); - - // K * Q - struct ggml_tensor * KQ = ggml_mul_mat(ctx0, K, Q); - - // KQ_scaled = KQ / sqrt(n_embd/n_head) - struct ggml_tensor * KQ_scaled = - ggml_scale(ctx0, - KQ, - ggml_new_f32(ctx0, 1.0f/sqrt(float(n_embd)/n_head)) - ); - - // KQ_masked = mask_past(KQ_scaled) - struct ggml_tensor * KQ_masked = ggml_diag_mask_inf(ctx0, KQ_scaled, n_past); - - // KQ = soft_max(KQ_masked) - struct ggml_tensor * KQ_soft_max = ggml_soft_max(ctx0, KQ_masked); - - // V_trans = Vmem.view(n_embd/n_head, n_head, n_past + N).permute(1, 2, 0, 3).contiguous() - struct ggml_tensor * V_trans = - ggml_permute(ctx0, - ggml_reshape_3d(ctx0, - ggml_view_1d(ctx0, model.memory_v, (n_past + N)*n_embd, il*n_ctx*ggml_element_size(model.memory_v)*n_embd), - n_embd/n_head, n_head, n_past + N), - 1, 2, 0, 3); - - // KQV = transpose(V) * KQ_soft_max - struct ggml_tensor * KQV = ggml_mul_mat(ctx0, V_trans, KQ_soft_max); - - // KQV_merged = KQV.permute(0, 2, 1, 3) - struct ggml_tensor * KQV_merged = ggml_permute(ctx0, KQV, 0, 2, 1, 3); - - // cur = KQV_merged.contiguous().view(n_embd, N) - cur = ggml_cpy(ctx0, - KQV_merged, - ggml_new_tensor_2d(ctx0, GGML_TYPE_F32, n_embd, N)); - - // projection (no bias) - cur = ggml_mul_mat(ctx0, - ggml_transpose(ctx0, model.layers[il].c_attn_proj_w), - cur); - } - - struct ggml_tensor * inpFF = cur; - - // feed-forward network - // this is independent of the self-attention result, so it could be done in parallel to the self-attention - { - // note here we pass inpSA instead of cur - cur = ggml_mul_mat(ctx0, - ggml_transpose(ctx0, model.layers[il].c_mlp_fc_w), - inpSA); - - cur = ggml_add(ctx0, - ggml_repeat(ctx0, model.layers[il].c_mlp_fc_b, cur), - cur); - - // GELU activation - cur = ggml_gelu(ctx0, cur); - - // projection - // cur = proj_w*cur + proj_b - cur = ggml_mul_mat(ctx0, - model.layers[il].c_mlp_proj_w_trans, - cur); - - cur = ggml_add(ctx0, - ggml_repeat(ctx0, model.layers[il].c_mlp_proj_b, cur), - cur); - } - - // self-attention + FF - cur = ggml_add(ctx0, cur, inpFF); - - // input for next layer - inpL = ggml_add(ctx0, cur, inpL); - } - - // norm - { - inpL = ggml_norm(ctx0, inpL); - - // inpL = ln_f_g*inpL + ln_f_b - inpL = ggml_add(ctx0, - ggml_mul(ctx0, - ggml_repeat(ctx0, model.ln_f_g, inpL), - inpL), - ggml_repeat(ctx0, model.ln_f_b, inpL)); - } - - // lm_head - { - inpL = ggml_mul_mat(ctx0, model.lmh_g, inpL); - - inpL = ggml_add(ctx0, - ggml_repeat(ctx0, model.lmh_b, inpL), - inpL); - } - - // logits -> probs - //inpL = ggml_soft_max(ctx0, inpL); - - // run the computation - ggml_build_forward_expand(&gf, inpL); - ggml_graph_compute (ctx0, &gf); - - //if (n_past%100 == 0) { - // ggml_graph_print (&gf); - // ggml_graph_dump_dot(&gf, NULL, "gpt-2.dot"); - //} - - //embd_w.resize(n_vocab*N); - //memcpy(embd_w.data(), ggml_get_data(inpL), sizeof(float)*n_vocab*N); - - // return result for just the last token - embd_w.resize(n_vocab); - memcpy(embd_w.data(), (float *) ggml_get_data(inpL) + (n_vocab*(N-1)), sizeof(float)*n_vocab); - - if (mem_per_token == 0) { - mem_per_token = ggml_used_mem(ctx0)/N; - } - //printf("used_mem = %zu\n", ggml_used_mem(ctx0)); - - ggml_free(ctx0); - - return true; -} - -int main(int argc, char ** argv) { - ggml_time_init(); - const int64_t t_main_start_us = ggml_time_us(); - - gpt_params params; - params.model = "models/gpt-j-6B/ggml-model.bin"; - - if (gpt_params_parse(argc, argv, params) == false) { - return 1; - } - - if (params.seed < 0) { - params.seed = time(NULL); - } - - printf("%s: seed = %d\n", __func__, params.seed); - - std::mt19937 rng(params.seed); - if (params.prompt.empty()) { - if( !isatty(STDIN_FILENO) ){ - std::string line; - while( std::getline(std::cin, line) ){ - params.prompt = params.prompt + "\n" + line; - } - } else { - params.prompt = gpt_random_prompt(rng); - } - } - - int64_t t_load_us = 0; - - gpt_vocab vocab; - gptj_model model; - - // load the model - { - const int64_t t_start_us = ggml_time_us(); - - if (!legacy_gptj_model_load(params.model, model, vocab)) { - fprintf(stderr, "%s: failed to load model from '%s'\n", __func__, params.model.c_str()); - return 1; - } - - t_load_us = ggml_time_us() - t_start_us; - } - - int n_past = 0; - - int64_t t_sample_us = 0; - int64_t t_predict_us = 0; - - std::vector logits; - - // tokenize the prompt - std::vector embd_inp = ::gpt_tokenize(vocab, params.prompt); - - params.n_predict = std::min(params.n_predict, model.hparams.n_ctx - (int) embd_inp.size()); - - printf("%s: number of tokens in prompt = %zu\n", __func__, embd_inp.size()); - printf("\n"); - - std::vector embd; - - // determine the required inference memory per token: - size_t mem_per_token = 0; - legacy_gptj_eval(model, params.n_threads, 0, { 0, 1, 2, 3 }, logits, mem_per_token); - - for (int i = embd.size(); i < embd_inp.size() + params.n_predict; i++) { - // predict - if (embd.size() > 0) { - const int64_t t_start_us = ggml_time_us(); - - if (!legacy_gptj_eval(model, params.n_threads, n_past, embd, logits, mem_per_token)) { - printf("Failed to predict\n"); - return 1; - } - - t_predict_us += ggml_time_us() - t_start_us; - } - - n_past += embd.size(); - embd.clear(); - - if (i >= embd_inp.size()) { - // sample next token - const int top_k = params.top_k; - const float top_p = params.top_p; - const float temp = params.temp; - - const int n_vocab = model.hparams.n_vocab; - - gpt_vocab::id id = 0; - - { - const int64_t t_start_sample_us = ggml_time_us(); - - id = gpt_sample_top_k_top_p(vocab, logits.data() + (logits.size() - n_vocab), top_k, top_p, temp, rng); - - t_sample_us += ggml_time_us() - t_start_sample_us; - } - - // add it to the context - embd.push_back(id); - } else { - // if here, it means we are still processing the input prompt - for (int k = i; k < embd_inp.size(); k++) { - embd.push_back(embd_inp[k]); - if (embd.size() > params.n_batch) { - break; - } - } - i += embd.size() - 1; - } - - // display text - for (auto id : embd) { - printf("%s", vocab.id_to_token[id].c_str()); - } - fflush(stdout); - - // end of text token - if (embd.back() == 50256) { - break; - } - } - - // report timing - { - const int64_t t_main_end_us = ggml_time_us(); - - printf("\n\n"); - printf("%s: mem per token = %8zu bytes\n", __func__, mem_per_token); - printf("%s: load time = %8.2f ms\n", __func__, t_load_us/1000.0f); - printf("%s: sample time = %8.2f ms\n", __func__, t_sample_us/1000.0f); - printf("%s: predict time = %8.2f ms / %.2f ms per token\n", __func__, t_predict_us/1000.0f, t_predict_us/1000.0f/n_past); - printf("%s: total time = %8.2f ms\n", __func__, (t_main_end_us - t_main_start_us)/1000.0f); - } - - ggml_free(model.ctx); - - return 0; -} diff --git a/otherarch/gptj_v1.cpp b/otherarch/gptj_v1.cpp new file mode 100644 index 000000000..93e7d0684 --- /dev/null +++ b/otherarch/gptj_v1.cpp @@ -0,0 +1,682 @@ +#include "ggml_v1.h" +#include "otherarch.h" + +#include "utils.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + + +// load the model's weights from a file +bool legacy_gptj_model_load(const std::string & fname, gptj_model_v1 & model, gpt_vocab & vocab) { + printf("%s: loading model from '%s' - please wait ...\n", __func__, fname.c_str()); + + auto fin = std::ifstream(fname, std::ios::binary); + if (!fin) { + fprintf(stderr, "%s: failed to open '%s'\n", __func__, fname.c_str()); + return false; + } + + // verify magic + { + uint32_t magic; + fin.read((char *) &magic, sizeof(magic)); + if (magic != 0x67676d6c) { + fprintf(stderr, "%s: invalid model file '%s' (bad magic)\n", __func__, fname.c_str()); + return false; + } + } + + // load hparams + { + auto & hparams = model.hparams; + + fin.read((char *) &hparams.n_vocab, sizeof(hparams.n_vocab)); + fin.read((char *) &hparams.n_ctx, sizeof(hparams.n_ctx)); + fin.read((char *) &hparams.n_embd, sizeof(hparams.n_embd)); + fin.read((char *) &hparams.n_head, sizeof(hparams.n_head)); + fin.read((char *) &hparams.n_layer, sizeof(hparams.n_layer)); + fin.read((char *) &hparams.n_rot, sizeof(hparams.n_rot)); + fin.read((char *) &hparams.f16, sizeof(hparams.f16)); + + printf("%s: n_vocab = %d\n", __func__, hparams.n_vocab); + printf("%s: n_ctx = %d\n", __func__, hparams.n_ctx); + printf("%s: n_embd = %d\n", __func__, hparams.n_embd); + printf("%s: n_head = %d\n", __func__, hparams.n_head); + printf("%s: n_layer = %d\n", __func__, hparams.n_layer); + printf("%s: n_rot = %d\n", __func__, hparams.n_rot); + printf("%s: f16 = %d\n", __func__, hparams.f16); + } + + // load vocab + { + int32_t n_vocab = 0; + fin.read((char *) &n_vocab, sizeof(n_vocab)); + + if (n_vocab != model.hparams.n_vocab) { + fprintf(stderr, "%s: invalid model file '%s' (bad vocab size %d != %d)\n", + __func__, fname.c_str(), n_vocab, model.hparams.n_vocab); + return false; + } + + std::string word; + for (int i = 0; i < n_vocab; i++) { + uint32_t len; + fin.read((char *) &len, sizeof(len)); + + word.resize(len); + fin.read((char *) word.data(), len); + + vocab.token_to_id[word] = i; + vocab.id_to_token[i] = word; + } + } + + // for the big tensors, we have the option to store the data in 16-bit floats + // in order to save memory and also to speed up the computation + const ggml_v1_type wtype = model.hparams.f16 ? GGML_V1_TYPE_F16 : GGML_V1_TYPE_F32; + + auto & ctx = model.ctx; + + size_t ctx_size = 0; + + { + const auto & hparams = model.hparams; + + const int n_embd = hparams.n_embd; + const int n_layer = hparams.n_layer; + const int n_ctx = hparams.n_ctx; + const int n_vocab = hparams.n_vocab; + + ctx_size += n_embd*ggml_v1_type_size(GGML_V1_TYPE_F32); // ln_f_g + ctx_size += n_embd*ggml_v1_type_size(GGML_V1_TYPE_F32); // ln_f_b + + ctx_size += n_embd*n_vocab*ggml_v1_type_size(wtype); // wte + + ctx_size += n_embd*n_vocab*ggml_v1_type_size(wtype); // lmh_g + ctx_size += n_vocab*ggml_v1_type_size(GGML_V1_TYPE_F32); // lmh_b + + ctx_size += n_layer*(n_embd*ggml_v1_type_size(GGML_V1_TYPE_F32)); // ln_1_g + ctx_size += n_layer*(n_embd*ggml_v1_type_size(GGML_V1_TYPE_F32)); // ln_1_b + + ctx_size += n_layer*(n_embd*n_embd*ggml_v1_type_size(wtype)); // c_attn_q_proj_w + ctx_size += n_layer*(n_embd*n_embd*ggml_v1_type_size(wtype)); // c_attn_k_proj_w + ctx_size += n_layer*(n_embd*n_embd*ggml_v1_type_size(wtype)); // c_attn_v_proj_w + + ctx_size += n_layer*(n_embd*n_embd*ggml_v1_type_size(wtype)); // c_attn_proj_w + + ctx_size += n_layer*(4*n_embd*n_embd*ggml_v1_type_size(wtype)); // c_mlp_fc_w + ctx_size += n_layer*( 4*n_embd*ggml_v1_type_size(GGML_V1_TYPE_F32)); // c_mlp_fc_b + + ctx_size += n_layer*(4*n_embd*n_embd*ggml_v1_type_size(wtype)); // c_mlp_proj_w_trans + ctx_size += n_layer*( n_embd*ggml_v1_type_size(GGML_V1_TYPE_F32)); // c_mlp_proj_b + + ctx_size += n_ctx*n_layer*n_embd*ggml_v1_type_size(GGML_V1_TYPE_F32); // memory_k + ctx_size += n_ctx*n_layer*n_embd*ggml_v1_type_size(GGML_V1_TYPE_F32); // memory_v + + ctx_size += (5 + 10*n_layer)*256; // object overhead + + printf("%s: ggml ctx size = %6.2f MB\n", __func__, ctx_size/(1024.0*1024.0)); + } + + // create the ggml context + { + struct ggml_v1_init_params params = { + .mem_size = ctx_size, + .mem_buffer = NULL, + }; + + model.ctx = ggml_v1_init(params); + if (!model.ctx) { + fprintf(stderr, "%s: ggml_v1_init() failed\n", __func__); + return false; + } + } + + // prepare memory for the weights + { + const auto & hparams = model.hparams; + + const int n_embd = hparams.n_embd; + const int n_layer = hparams.n_layer; + const int n_ctx = hparams.n_ctx; + const int n_vocab = hparams.n_vocab; + + model.layers.resize(n_layer); + + model.wte = ggml_v1_new_tensor_2d(ctx, wtype, n_embd, n_vocab); + + model.ln_f_g = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, n_embd); + model.ln_f_b = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, n_embd); + + model.lmh_g = ggml_v1_new_tensor_2d(ctx, wtype, n_embd, n_vocab); + model.lmh_b = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, n_vocab); + + // map by name + model.tensors["transformer.wte.weight"] = model.wte; + + model.tensors["transformer.ln_f.weight"] = model.ln_f_g; + model.tensors["transformer.ln_f.bias"] = model.ln_f_b; + + model.tensors["lm_head.weight"] = model.lmh_g; + model.tensors["lm_head.bias"] = model.lmh_b; + + for (int i = 0; i < n_layer; ++i) { + auto & layer = model.layers[i]; + + layer.ln_1_g = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, n_embd); + layer.ln_1_b = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, n_embd); + + layer.c_attn_q_proj_w = ggml_v1_new_tensor_2d(ctx, wtype, n_embd, n_embd); + layer.c_attn_k_proj_w = ggml_v1_new_tensor_2d(ctx, wtype, n_embd, n_embd); + layer.c_attn_v_proj_w = ggml_v1_new_tensor_2d(ctx, wtype, n_embd, n_embd); + + layer.c_attn_proj_w = ggml_v1_new_tensor_2d(ctx, wtype, n_embd, n_embd); + + layer.c_mlp_fc_w = ggml_v1_new_tensor_2d(ctx, wtype, 4*n_embd, n_embd); + layer.c_mlp_fc_b = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, 4*n_embd); + + layer.c_mlp_proj_w_trans = ggml_v1_new_tensor_2d(ctx, wtype, 4*n_embd, n_embd); + layer.c_mlp_proj_b = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, n_embd); + + // map by name + model.tensors["transformer.h." + std::to_string(i) + ".ln_1.weight"] = layer.ln_1_g; + model.tensors["transformer.h." + std::to_string(i) + ".ln_1.bias"] = layer.ln_1_b; + + model.tensors["transformer.h." + std::to_string(i) + ".attn.q_proj.weight"] = layer.c_attn_q_proj_w; + model.tensors["transformer.h." + std::to_string(i) + ".attn.k_proj.weight"] = layer.c_attn_k_proj_w; + model.tensors["transformer.h." + std::to_string(i) + ".attn.v_proj.weight"] = layer.c_attn_v_proj_w; + + model.tensors["transformer.h." + std::to_string(i) + ".attn.out_proj.weight"] = layer.c_attn_proj_w; + + model.tensors["transformer.h." + std::to_string(i) + ".mlp.fc_in.weight"] = layer.c_mlp_fc_w; + model.tensors["transformer.h." + std::to_string(i) + ".mlp.fc_in.bias"] = layer.c_mlp_fc_b; + + model.tensors["transformer.h." + std::to_string(i) + ".mlp.fc_out.weight"] = layer.c_mlp_proj_w_trans; + model.tensors["transformer.h." + std::to_string(i) + ".mlp.fc_out.bias"] = layer.c_mlp_proj_b; + } + } + + // key + value memory + { + const auto & hparams = model.hparams; + + const int n_embd = hparams.n_embd; + const int n_layer = hparams.n_layer; + const int n_ctx = hparams.n_ctx; + + const int n_mem = n_layer*n_ctx; + const int n_elements = n_embd*n_mem; + + model.memory_k = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, n_elements); + model.memory_v = ggml_v1_new_tensor_1d(ctx, GGML_V1_TYPE_F32, n_elements); + + const size_t memory_size = ggml_v1_nbytes(model.memory_k) + ggml_v1_nbytes(model.memory_v); + + printf("%s: memory_size = %8.2f MB, n_mem = %d\n", __func__, memory_size/1024.0/1024.0, n_mem); + } + + // load weights + { + int n_tensors = 0; + size_t total_size = 0; + + printf("%s: ", __func__); + + while (true) { + int32_t n_dims; + int32_t length; + int32_t ftype; + + fin.read(reinterpret_cast(&n_dims), sizeof(n_dims)); + fin.read(reinterpret_cast(&length), sizeof(length)); + fin.read(reinterpret_cast(&ftype), sizeof(ftype)); + + if (fin.eof()) { + break; + } + + int32_t nelements = 1; + int32_t ne[2] = { 1, 1 }; + for (int i = 0; i < n_dims; ++i) { + fin.read(reinterpret_cast(&ne[i]), sizeof(ne[i])); + nelements *= ne[i]; + } + + std::string name(length, 0); + fin.read(&name[0], length); + + if (model.tensors.find(name.data()) == model.tensors.end()) { + fprintf(stderr, "%s: unknown tensor '%s' in model file\n", __func__, name.data()); + return false; + } + + auto tensor = model.tensors[name.data()]; + if (ggml_v1_nelements(tensor) != nelements) { + fprintf(stderr, "%s: tensor '%s' has wrong size in model file\n", __func__, name.data()); + return false; + } + + if (tensor->ne[0] != ne[0] || tensor->ne[1] != ne[1]) { + fprintf(stderr, "%s: tensor '%s' has wrong shape in model file: got [%d, %d], expected [%d, %d]\n", + __func__, name.data(), tensor->ne[0], tensor->ne[1], ne[0], ne[1]); + return false; + } + + const size_t bpe = tensor->type == GGML_V1_TYPE_I8 ? 1 : (ftype == 0) ? sizeof(float) : sizeof(ggml_v1_fp16_t); + + if (nelements*bpe != ggml_v1_nbytes(tensor)) { + fprintf(stderr, "%s: tensor '%s' has wrong size in model file: got %zu, expected %zu\n", + __func__, name.data(), ggml_v1_nbytes(tensor), nelements*bpe); + return false; + } + + fin.read(reinterpret_cast(tensor->data), ggml_v1_nbytes(tensor)); + + //printf("%42s - [%5d, %5d], type = %6s, %6.2f MB\n", name.data(), ne[0], ne[1], ftype == 0 ? "float" : "f16", ggml_v1_nbytes(tensor)/1024.0/1024.0); + total_size += ggml_v1_nbytes(tensor); + if (++n_tensors % 8 == 0) { + printf("."); + fflush(stdout); + } + } + + printf(" done\n"); + + printf("%s: model size = %8.2f MB / num tensors = %d\n", __func__, total_size/1024.0/1024.0, n_tensors); + } + + fin.close(); + + return true; +} + +// evaluate the transformer +// +// - model: the model +// - n_threads: number of threads to use +// - n_past: the context size so far +// - embd_inp: the embeddings of the tokens in the context +// - embd_w: the predicted logits for the next token +// +// The GPT-J model requires about 16MB of memory per input token. +// +bool legacy_gptj_eval( + const gptj_model_v1 & model, + const int n_threads, + const int n_past, + const std::vector & embd_inp, + std::vector & embd_w, + size_t & mem_per_token) { + const int N = embd_inp.size(); + + const auto & hparams = model.hparams; + + const int n_embd = hparams.n_embd; + const int n_layer = hparams.n_layer; + const int n_ctx = hparams.n_ctx; + const int n_head = hparams.n_head; + const int n_vocab = hparams.n_vocab; + const int n_rot = hparams.n_rot; + + const int d_key = n_embd/n_head; + + static size_t buf_size = 256u*1024*1024; + static void * buf = malloc(buf_size); + + if (mem_per_token > 0 && mem_per_token*N > buf_size) { + const size_t buf_size_new = 1.1*(mem_per_token*N); // add 10% to account for ggml object overhead + //printf("\n%s: reallocating buffer from %zu to %zu bytes\n", __func__, buf_size, buf_size_new); + + // reallocate + buf_size = buf_size_new; + buf = realloc(buf, buf_size); + if (buf == nullptr) { + fprintf(stderr, "%s: failed to allocate %zu bytes\n", __func__, buf_size); + return false; + } + } + + struct ggml_v1_init_params params = { + .mem_size = buf_size, + .mem_buffer = buf, + }; + + struct ggml_v1_context * ctx0 = ggml_v1_init(params); + struct ggml_v1_cgraph gf = { .n_threads = n_threads }; + + struct ggml_v1_tensor * embd = ggml_v1_new_tensor_1d(ctx0, GGML_V1_TYPE_I32, N); + memcpy(embd->data, embd_inp.data(), N*ggml_v1_element_size(embd)); + + // wte + struct ggml_v1_tensor * inpL = ggml_v1_get_rows(ctx0, model.wte, embd); + + for (int il = 0; il < n_layer; ++il) { + struct ggml_v1_tensor * cur; + + // norm + { + cur = ggml_v1_norm(ctx0, inpL); + + // cur = ln_1_g*cur + ln_1_b + cur = ggml_v1_add(ctx0, + ggml_v1_mul(ctx0, + ggml_v1_repeat(ctx0, model.layers[il].ln_1_g, cur), + cur), + ggml_v1_repeat(ctx0, model.layers[il].ln_1_b, cur)); + } + + struct ggml_v1_tensor * inpSA = cur; + + // self-attention + { + struct ggml_v1_tensor * Qcur = ggml_v1_mul_mat(ctx0, ggml_v1_transpose(ctx0, model.layers[il].c_attn_q_proj_w), cur); + struct ggml_v1_tensor * Kcur = ggml_v1_mul_mat(ctx0, ggml_v1_transpose(ctx0, model.layers[il].c_attn_k_proj_w), cur); + struct ggml_v1_tensor * Vcur = ggml_v1_mul_mat(ctx0, ggml_v1_transpose(ctx0, model.layers[il].c_attn_v_proj_w), cur); + + // store key and value to memory + if (N >= 1) { + struct ggml_v1_tensor * k = ggml_v1_view_1d(ctx0, model.memory_k, N*n_embd, (ggml_v1_element_size(model.memory_k)*n_embd)*(il*n_ctx + n_past)); + struct ggml_v1_tensor * v = ggml_v1_view_1d(ctx0, model.memory_v, N*n_embd, (ggml_v1_element_size(model.memory_v)*n_embd)*(il*n_ctx + n_past)); + + ggml_v1_build_forward_expand(&gf, ggml_v1_cpy(ctx0, Kcur, k)); + ggml_v1_build_forward_expand(&gf, ggml_v1_cpy(ctx0, Vcur, v)); + } + + // Q = Qcur.contiguous().view(n_embd/n_head, n_head, N).permute(0, 2, 1, 3) + struct ggml_v1_tensor * Q = + ggml_v1_permute(ctx0, + ggml_v1_rope(ctx0, + ggml_v1_cpy(ctx0, + Qcur, + ggml_v1_new_tensor_3d(ctx0, GGML_V1_TYPE_F32, n_embd/n_head, n_head, N)), + n_past, n_rot, 0), + 0, 2, 1, 3); + + // K = Kmem.view(n_embd/n_head, n_head, n_past + N).permute(0, 2, 1, 3) + struct ggml_v1_tensor * K = + ggml_v1_permute(ctx0, + ggml_v1_rope(ctx0, + ggml_v1_reshape_3d(ctx0, + ggml_v1_view_1d(ctx0, model.memory_k, (n_past + N)*n_embd, il*n_ctx*ggml_v1_element_size(model.memory_k)*n_embd), + n_embd/n_head, n_head, n_past + N), + n_past, n_rot, 1), + 0, 2, 1, 3); + + // K * Q + struct ggml_v1_tensor * KQ = ggml_v1_mul_mat(ctx0, K, Q); + + // KQ_scaled = KQ / sqrt(n_embd/n_head) + struct ggml_v1_tensor * KQ_scaled = + ggml_v1_scale(ctx0, + KQ, + ggml_v1_new_f32(ctx0, 1.0f/sqrt(float(n_embd)/n_head)) + ); + + // KQ_masked = mask_past(KQ_scaled) + struct ggml_v1_tensor * KQ_masked = ggml_v1_diag_mask_inf(ctx0, KQ_scaled, n_past); + + // KQ = soft_max(KQ_masked) + struct ggml_v1_tensor * KQ_soft_max = ggml_v1_soft_max(ctx0, KQ_masked); + + // V_trans = Vmem.view(n_embd/n_head, n_head, n_past + N).permute(1, 2, 0, 3).contiguous() + struct ggml_v1_tensor * V_trans = + ggml_v1_permute(ctx0, + ggml_v1_reshape_3d(ctx0, + ggml_v1_view_1d(ctx0, model.memory_v, (n_past + N)*n_embd, il*n_ctx*ggml_v1_element_size(model.memory_v)*n_embd), + n_embd/n_head, n_head, n_past + N), + 1, 2, 0, 3); + + // KQV = transpose(V) * KQ_soft_max + struct ggml_v1_tensor * KQV = ggml_v1_mul_mat(ctx0, V_trans, KQ_soft_max); + + // KQV_merged = KQV.permute(0, 2, 1, 3) + struct ggml_v1_tensor * KQV_merged = ggml_v1_permute(ctx0, KQV, 0, 2, 1, 3); + + // cur = KQV_merged.contiguous().view(n_embd, N) + cur = ggml_v1_cpy(ctx0, + KQV_merged, + ggml_v1_new_tensor_2d(ctx0, GGML_V1_TYPE_F32, n_embd, N)); + + // projection (no bias) + cur = ggml_v1_mul_mat(ctx0, + ggml_v1_transpose(ctx0, model.layers[il].c_attn_proj_w), + cur); + } + + struct ggml_v1_tensor * inpFF = cur; + + // feed-forward network + // this is independent of the self-attention result, so it could be done in parallel to the self-attention + { + // note here we pass inpSA instead of cur + cur = ggml_v1_mul_mat(ctx0, + ggml_v1_transpose(ctx0, model.layers[il].c_mlp_fc_w), + inpSA); + + cur = ggml_v1_add(ctx0, + ggml_v1_repeat(ctx0, model.layers[il].c_mlp_fc_b, cur), + cur); + + // GELU activation + cur = ggml_v1_gelu(ctx0, cur); + + // projection + // cur = proj_w*cur + proj_b + cur = ggml_v1_mul_mat(ctx0, + model.layers[il].c_mlp_proj_w_trans, + cur); + + cur = ggml_v1_add(ctx0, + ggml_v1_repeat(ctx0, model.layers[il].c_mlp_proj_b, cur), + cur); + } + + // self-attention + FF + cur = ggml_v1_add(ctx0, cur, inpFF); + + // input for next layer + inpL = ggml_v1_add(ctx0, cur, inpL); + } + + // norm + { + inpL = ggml_v1_norm(ctx0, inpL); + + // inpL = ln_f_g*inpL + ln_f_b + inpL = ggml_v1_add(ctx0, + ggml_v1_mul(ctx0, + ggml_v1_repeat(ctx0, model.ln_f_g, inpL), + inpL), + ggml_v1_repeat(ctx0, model.ln_f_b, inpL)); + } + + // lm_head + { + inpL = ggml_v1_mul_mat(ctx0, model.lmh_g, inpL); + + inpL = ggml_v1_add(ctx0, + ggml_v1_repeat(ctx0, model.lmh_b, inpL), + inpL); + } + + // logits -> probs + //inpL = ggml_v1_soft_max(ctx0, inpL); + + // run the computation + ggml_v1_build_forward_expand(&gf, inpL); + ggml_v1_graph_compute (ctx0, &gf); + + //if (n_past%100 == 0) { + // ggml_v1_graph_print (&gf); + // ggml_v1_graph_dump_dot(&gf, NULL, "gpt-2.dot"); + //} + + //embd_w.resize(n_vocab*N); + //memcpy(embd_w.data(), ggml_v1_get_data(inpL), sizeof(float)*n_vocab*N); + + // return result for just the last token + embd_w.resize(n_vocab); + memcpy(embd_w.data(), (float *) ggml_v1_get_data(inpL) + (n_vocab*(N-1)), sizeof(float)*n_vocab); + + if (mem_per_token == 0) { + mem_per_token = ggml_v1_used_mem(ctx0)/N; + } + //printf("used_mem = %zu\n", ggml_v1_used_mem(ctx0)); + + ggml_v1_free(ctx0); + + return true; +} + +// int main(int argc, char ** argv) { +// ggml_v1_time_init(); +// const int64_t t_main_start_us = ggml_v1_time_us(); + +// gpt_params params; +// params.model = "models/gpt-j-6B/ggml-model.bin"; + +// if (utils_gpt_params_parse(argc, argv, params) == false) { +// return 1; +// } + +// if (params.seed < 0) { +// params.seed = time(NULL); +// } + +// printf("%s: seed = %d\n", __func__, params.seed); + +// std::mt19937 rng(params.seed); +// if (params.prompt.empty()) { +// if( !isatty(STDIN_FILENO) ){ +// std::string line; +// while( std::getline(std::cin, line) ){ +// params.prompt = params.prompt + "\n" + line; +// } +// } else { +// params.prompt = utils_gpt_random_prompt(rng); +// } +// } + +// int64_t t_load_us = 0; + +// gpt_vocab vocab; +// gptj_model_v1 model; + +// // load the model +// { +// const int64_t t_start_us = ggml_v1_time_us(); + +// if (!legacy_gptj_model_load(params.model, model, vocab)) { +// fprintf(stderr, "%s: failed to load model from '%s'\n", __func__, params.model.c_str()); +// return 1; +// } + +// t_load_us = ggml_v1_time_us() - t_start_us; +// } + +// int n_past = 0; + +// int64_t t_sample_us = 0; +// int64_t t_predict_us = 0; + +// std::vector logits; + +// // tokenize the prompt +// std::vector embd_inp = ::gpt_tokenize(vocab, params.prompt); + +// params.n_predict = std::min(params.n_predict, model.hparams.n_ctx - (int) embd_inp.size()); + +// printf("%s: number of tokens in prompt = %zu\n", __func__, embd_inp.size()); +// printf("\n"); + +// std::vector embd; + +// // determine the required inference memory per token: +// size_t mem_per_token = 0; +// legacy_gptj_eval(model, params.n_threads, 0, { 0, 1, 2, 3 }, logits, mem_per_token); + +// for (int i = embd.size(); i < embd_inp.size() + params.n_predict; i++) { +// // predict +// if (embd.size() > 0) { +// const int64_t t_start_us = ggml_v1_time_us(); + +// if (!legacy_gptj_eval(model, params.n_threads, n_past, embd, logits, mem_per_token)) { +// printf("Failed to predict\n"); +// return 1; +// } + +// t_predict_us += ggml_v1_time_us() - t_start_us; +// } + +// n_past += embd.size(); +// embd.clear(); + +// if (i >= embd_inp.size()) { +// // sample next token +// const int top_k = params.top_k; +// const float top_p = params.top_p; +// const float temp = params.temp; + +// const int n_vocab = model.hparams.n_vocab; + +// gpt_vocab::id id = 0; + +// { +// const int64_t t_start_sample_us = ggml_v1_time_us(); + +// id = gpt_sample_top_k_top_p(vocab, logits.data() + (logits.size() - n_vocab), top_k, top_p, temp, rng); + +// t_sample_us += ggml_v1_time_us() - t_start_sample_us; +// } + +// // add it to the context +// embd.push_back(id); +// } else { +// // if here, it means we are still processing the input prompt +// for (int k = i; k < embd_inp.size(); k++) { +// embd.push_back(embd_inp[k]); +// if (embd.size() > params.n_batch) { +// break; +// } +// } +// i += embd.size() - 1; +// } + +// // display text +// for (auto id : embd) { +// printf("%s", vocab.id_to_token[id].c_str()); +// } +// fflush(stdout); + +// // end of text token +// if (embd.back() == 50256) { +// break; +// } +// } + +// // report timing +// { +// const int64_t t_main_end_us = ggml_v1_time_us(); + +// printf("\n\n"); +// printf("%s: mem per token = %8zu bytes\n", __func__, mem_per_token); +// printf("%s: load time = %8.2f ms\n", __func__, t_load_us/1000.0f); +// printf("%s: sample time = %8.2f ms\n", __func__, t_sample_us/1000.0f); +// printf("%s: predict time = %8.2f ms / %.2f ms per token\n", __func__, t_predict_us/1000.0f, t_predict_us/1000.0f/n_past); +// printf("%s: total time = %8.2f ms\n", __func__, (t_main_end_us - t_main_start_us)/1000.0f); +// } + +// ggml_v1_free(model.ctx); + +// return 0; +// } diff --git a/otherarch/gptj.cpp b/otherarch/gptj_v2.cpp similarity index 83% rename from otherarch/gptj.cpp rename to otherarch/gptj_v2.cpp index ffb68153d..86a03106c 100644 --- a/otherarch/gptj.cpp +++ b/otherarch/gptj_v2.cpp @@ -585,145 +585,145 @@ bool gptj_eval( return true; } -int main(int argc, char ** argv) { - ggml_time_init(); - const int64_t t_main_start_us = ggml_time_us(); +// int main(int argc, char ** argv) { +// ggml_time_init(); +// const int64_t t_main_start_us = ggml_time_us(); - gpt_params params; - params.model = "models/gpt-j-6B/ggml-model.bin"; +// gpt_params params; +// params.model = "models/gpt-j-6B/ggml-model.bin"; - if (gpt_params_parse(argc, argv, params) == false) { - return 1; - } +// if (utils_gpt_params_parse(argc, argv, params) == false) { +// return 1; +// } - if (params.seed < 0) { - params.seed = time(NULL); - } +// if (params.seed < 0) { +// params.seed = time(NULL); +// } - printf("%s: seed = %d\n", __func__, params.seed); +// printf("%s: seed = %d\n", __func__, params.seed); - std::mt19937 rng(params.seed); - if (params.prompt.empty()) { - if( !isatty(STDIN_FILENO) ){ - std::string line; - while( std::getline(std::cin, line) ){ - params.prompt = params.prompt + "\n" + line; - } - } else { - params.prompt = gpt_random_prompt(rng); - } - } +// std::mt19937 rng(params.seed); +// if (params.prompt.empty()) { +// if( !isatty(STDIN_FILENO) ){ +// std::string line; +// while( std::getline(std::cin, line) ){ +// params.prompt = params.prompt + "\n" + line; +// } +// } else { +// params.prompt = utils_gpt_random_prompt(rng); +// } +// } - int64_t t_load_us = 0; +// int64_t t_load_us = 0; - gpt_vocab vocab; - gptj_model model; +// gpt_vocab vocab; +// gptj_model model; - // load the model - { - const int64_t t_start_us = ggml_time_us(); +// // load the model +// { +// const int64_t t_start_us = ggml_time_us(); - if (!gptj_model_load(params.model, model, vocab)) { - fprintf(stderr, "%s: failed to load model from '%s'\n", __func__, params.model.c_str()); - return 1; - } +// if (!gptj_model_load(params.model, model, vocab)) { +// fprintf(stderr, "%s: failed to load model from '%s'\n", __func__, params.model.c_str()); +// return 1; +// } - t_load_us = ggml_time_us() - t_start_us; - } +// t_load_us = ggml_time_us() - t_start_us; +// } - int n_past = 0; +// int n_past = 0; - int64_t t_sample_us = 0; - int64_t t_predict_us = 0; +// int64_t t_sample_us = 0; +// int64_t t_predict_us = 0; - std::vector logits; +// std::vector logits; - // tokenize the prompt - std::vector embd_inp = ::gpt_tokenize(vocab, params.prompt); +// // tokenize the prompt +// std::vector embd_inp = ::gpt_tokenize(vocab, params.prompt); - params.n_predict = std::min(params.n_predict, model.hparams.n_ctx - (int) embd_inp.size()); +// params.n_predict = std::min(params.n_predict, model.hparams.n_ctx - (int) embd_inp.size()); - printf("%s: number of tokens in prompt = %zu\n", __func__, embd_inp.size()); - printf("\n"); +// printf("%s: number of tokens in prompt = %zu\n", __func__, embd_inp.size()); +// printf("\n"); - std::vector embd; +// std::vector embd; - // determine the required inference memory per token: - size_t mem_per_token = 0; - gptj_eval(model, params.n_threads, 0, { 0, 1, 2, 3 }, logits, mem_per_token); +// // determine the required inference memory per token: +// size_t mem_per_token = 0; +// gptj_eval(model, params.n_threads, 0, { 0, 1, 2, 3 }, logits, mem_per_token); - for (int i = embd.size(); i < embd_inp.size() + params.n_predict; i++) { - // predict - if (embd.size() > 0) { - const int64_t t_start_us = ggml_time_us(); +// for (int i = embd.size(); i < embd_inp.size() + params.n_predict; i++) { +// // predict +// if (embd.size() > 0) { +// const int64_t t_start_us = ggml_time_us(); - if (!gptj_eval(model, params.n_threads, n_past, embd, logits, mem_per_token)) { - printf("Failed to predict\n"); - return 1; - } +// if (!gptj_eval(model, params.n_threads, n_past, embd, logits, mem_per_token)) { +// printf("Failed to predict\n"); +// return 1; +// } - t_predict_us += ggml_time_us() - t_start_us; - } +// t_predict_us += ggml_time_us() - t_start_us; +// } - n_past += embd.size(); - embd.clear(); +// n_past += embd.size(); +// embd.clear(); - if (i >= embd_inp.size()) { - // sample next token - const int top_k = params.top_k; - const float top_p = params.top_p; - const float temp = params.temp; +// if (i >= embd_inp.size()) { +// // sample next token +// const int top_k = params.top_k; +// const float top_p = params.top_p; +// const float temp = params.temp; - const int n_vocab = model.hparams.n_vocab; +// const int n_vocab = model.hparams.n_vocab; - gpt_vocab::id id = 0; +// gpt_vocab::id id = 0; - { - const int64_t t_start_sample_us = ggml_time_us(); +// { +// const int64_t t_start_sample_us = ggml_time_us(); - id = gpt_sample_top_k_top_p(vocab, logits.data() + (logits.size() - n_vocab), top_k, top_p, temp, rng); +// id = gpt_sample_top_k_top_p(vocab, logits.data() + (logits.size() - n_vocab), top_k, top_p, temp, rng); - t_sample_us += ggml_time_us() - t_start_sample_us; - } +// t_sample_us += ggml_time_us() - t_start_sample_us; +// } - // add it to the context - embd.push_back(id); - } else { - // if here, it means we are still processing the input prompt - for (int k = i; k < embd_inp.size(); k++) { - embd.push_back(embd_inp[k]); - if (embd.size() > params.n_batch) { - break; - } - } - i += embd.size() - 1; - } +// // add it to the context +// embd.push_back(id); +// } else { +// // if here, it means we are still processing the input prompt +// for (int k = i; k < embd_inp.size(); k++) { +// embd.push_back(embd_inp[k]); +// if (embd.size() > params.n_batch) { +// break; +// } +// } +// i += embd.size() - 1; +// } - // display text - for (auto id : embd) { - printf("%s", vocab.id_to_token[id].c_str()); - } - fflush(stdout); +// // display text +// for (auto id : embd) { +// printf("%s", vocab.id_to_token[id].c_str()); +// } +// fflush(stdout); - // end of text token - if (embd.back() == 50256) { - break; - } - } +// // end of text token +// if (embd.back() == 50256) { +// break; +// } +// } - // report timing - { - const int64_t t_main_end_us = ggml_time_us(); +// // report timing +// { +// const int64_t t_main_end_us = ggml_time_us(); - printf("\n\n"); - printf("%s: mem per token = %8zu bytes\n", __func__, mem_per_token); - printf("%s: load time = %8.2f ms\n", __func__, t_load_us/1000.0f); - printf("%s: sample time = %8.2f ms\n", __func__, t_sample_us/1000.0f); - printf("%s: predict time = %8.2f ms / %.2f ms per token\n", __func__, t_predict_us/1000.0f, t_predict_us/1000.0f/n_past); - printf("%s: total time = %8.2f ms\n", __func__, (t_main_end_us - t_main_start_us)/1000.0f); - } +// printf("\n\n"); +// printf("%s: mem per token = %8zu bytes\n", __func__, mem_per_token); +// printf("%s: load time = %8.2f ms\n", __func__, t_load_us/1000.0f); +// printf("%s: sample time = %8.2f ms\n", __func__, t_sample_us/1000.0f); +// printf("%s: predict time = %8.2f ms / %.2f ms per token\n", __func__, t_predict_us/1000.0f, t_predict_us/1000.0f/n_past); +// printf("%s: total time = %8.2f ms\n", __func__, (t_main_end_us - t_main_start_us)/1000.0f); +// } - ggml_free(model.ctx); +// ggml_free(model.ctx); - return 0; -} \ No newline at end of file +// return 0; +// } \ No newline at end of file diff --git a/otherarch/otherarch.h b/otherarch/otherarch.h index 71ad4269a..21e7103bb 100644 --- a/otherarch/otherarch.h +++ b/otherarch/otherarch.h @@ -46,6 +46,49 @@ struct gptj_layer { struct ggml_tensor * c_mlp_proj_w_trans; //for backwards compatibility struct ggml_tensor * c_mlp_proj_b; }; +struct gptj_layer_v1 { + // normalization + struct ggml_v1_tensor * ln_1_g; + struct ggml_v1_tensor * ln_1_b; + + // attention + struct ggml_v1_tensor * c_attn_q_proj_w; + struct ggml_v1_tensor * c_attn_k_proj_w; + struct ggml_v1_tensor * c_attn_v_proj_w; + + struct ggml_v1_tensor * c_attn_proj_w; + + // ff + struct ggml_v1_tensor * c_mlp_fc_w; + struct ggml_v1_tensor * c_mlp_fc_b; + + struct ggml_v1_tensor * c_mlp_proj_w; + struct ggml_v1_tensor * c_mlp_proj_w_trans; //for backwards compatibility + struct ggml_v1_tensor * c_mlp_proj_b; +}; + +struct gptj_model_v1 { + gptj_hparams hparams; + + // normalization + struct ggml_v1_tensor * ln_f_g; + struct ggml_v1_tensor * ln_f_b; + + struct ggml_v1_tensor * wte; // position embedding + + struct ggml_v1_tensor * lmh_g; // language model head + struct ggml_v1_tensor * lmh_b; // language model bias + + std::vector layers; + + // key + value memory + struct ggml_v1_tensor * memory_k; + struct ggml_v1_tensor * memory_v; + + // + struct ggml_v1_context * ctx; + std::map tensors; +}; struct gptj_model { gptj_hparams hparams; @@ -70,7 +113,7 @@ struct gptj_model { std::map tensors; }; -bool legacy_gptj_model_load(const std::string &fname, gptj_model &model, gpt_vocab &vocab); -bool legacy_gptj_eval(const gptj_model &model, const int n_threads, const int n_past, const std::vector &embd_inp, std::vector &embd_w, size_t &mem_per_token); +bool legacy_gptj_model_load(const std::string &fname, gptj_model_v1 &model, gpt_vocab &vocab); +bool legacy_gptj_eval(const gptj_model_v1 &model, const int n_threads, const int n_past, const std::vector &embd_inp, std::vector &embd_w, size_t &mem_per_token); bool gptj_model_load(const std::string &fname, gptj_model &model, gpt_vocab &vocab); bool gptj_eval(const gptj_model &model, const int n_threads, const int n_past, const std::vector &embd_inp, std::vector &embd_w, size_t &mem_per_token); diff --git a/otherarch/utils.cpp b/otherarch/utils.cpp index 7c2bed00f..9afdaaf86 100644 --- a/otherarch/utils.cpp +++ b/otherarch/utils.cpp @@ -3,7 +3,7 @@ #include #include -bool gpt_params_parse(int argc, char ** argv, gpt_params & params) { +bool utils_gpt_params_parse(int argc, char ** argv, gpt_params & params) { for (int i = 1; i < argc; i++) { std::string arg = argv[i]; @@ -26,11 +26,11 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) { } else if (arg == "-m" || arg == "--model") { params.model = argv[++i]; } else if (arg == "-h" || arg == "--help") { - gpt_print_usage(argc, argv, params); + utils_gpt_print_usage(argc, argv, params); exit(0); } else { fprintf(stderr, "error: unknown argument: %s\n", arg.c_str()); - gpt_print_usage(argc, argv, params); + utils_gpt_print_usage(argc, argv, params); exit(0); } } @@ -38,7 +38,7 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) { return true; } -void gpt_print_usage(int argc, char ** argv, const gpt_params & params) { +void utils_gpt_print_usage(int argc, char ** argv, const gpt_params & params) { fprintf(stderr, "usage: %s [options]\n", argv[0]); fprintf(stderr, "\n"); fprintf(stderr, "options:\n"); @@ -57,7 +57,7 @@ void gpt_print_usage(int argc, char ** argv, const gpt_params & params) { fprintf(stderr, "\n"); } -std::string gpt_random_prompt(std::mt19937 & rng) { +std::string utils_gpt_random_prompt(std::mt19937 & rng) { const int r = rng() % 10; switch (r) { case 0: return "So"; diff --git a/otherarch/utils.h b/otherarch/utils.h index 92bc29027..9248868bf 100644 --- a/otherarch/utils.h +++ b/otherarch/utils.h @@ -60,4 +60,8 @@ gpt_vocab::id gpt_sample_top_k_top_p( int top_k, double top_p, double temp, - std::mt19937 & rng); \ No newline at end of file + std::mt19937 & rng); + +bool utils_gpt_params_parse(int argc, char ** argv, gpt_params & params); +void utils_gpt_print_usage(int argc, char ** argv, const gpt_params & params); +std::string utils_gpt_random_prompt(std::mt19937 & rng);
  • V)6VV0~Bjl$|{*?dnjl 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