From 8f0799b04947f463448e16e4096c861f7bfeb1c6 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Wed, 9 Oct 2024 14:23:48 -0700 Subject: [PATCH 1/2] DOC-280 add PROPCOUNT + reformat --- .../experiment-results-use-formula-metrics.md | 40 ++++++++++++------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md b/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md index 4678d21df..5443d82ad 100644 --- a/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md +++ b/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md @@ -43,25 +43,25 @@ You can also view this metric in the [object management center](/docs/data/objec Experiment Results supports the formula functions listed here: -**UNIQUES:** +### UNIQUES -**Syntax**: UNIQUES(event) +**Syntax**: `UNIQUES(event)` * **Event:** Refers to the event you're interested in. This must be a letter corresponding to an event in the Events Module. Returns the number of unique users who triggered the event.  -**TOTALS:** +### TOTALS: -**Syntax**: TOTALS(event) +**Syntax**: `TOTALS(event)` * **Event:** Refers to the event you're interested in. This must be a letter corresponding to an event in the Events Module. Returns the total number of times users triggered the event. -**PROPSUM:** +### PROPSUM -**Syntax**: PROPSUM(event) +**Syntax**: `PROPSUM(event)` * **Event:** Refers to the event you're interested in. This must be a letter corresponding to an event in the Events Module. @@ -69,9 +69,9 @@ This function only works when grouping by a numerical property on the event. If Returns the sum of the property values you're grouping the specified event by. -**PROPAVG:** +### PROPAVG -**Syntax**: PROPAVG(event) +**Syntax**: `PROPAVG(event)` * **Event:** Refers to the event you're interested in. This must be a letter corresponding to an event in the Events Module. @@ -81,19 +81,19 @@ Returns the average of the property values you're grouping by. This function is ### PROPMAX -**Syntax**: PROPMAX(event) +**Syntax**: `PROPMAX(event)` * **Event:** Returns the maximum value of the property you're grouping the specified event by. The property must be numeric. If grouping by multiple properties, the calculation uses the first group-by clause. ### PROPMIN -**Syntax**: PROPMIN(event) +**Syntax**: `PROPMIN(event)` * **Event:** Returns the minimum value of the property you're grouping the specified event by. The property must be numeric. If grouping by multiple properties, the calculation uses the first group-by clause. -**CONVERSIONRATE (closed beta):** +### CONVERSIONRATE (closed beta) -**Syntax:** CONVERSIONRATE(array of events, conversion window, latency offset) +**Syntax:** `CONVERSIONRATE(array of events, conversion window, latency offset)` * **Array of Events:** Refer to the events in the funnel. * **Conversion window:** Refers to the conversion window of the funnel. The unit is in seconds. @@ -107,9 +107,9 @@ Returns the conversion rate (< 1) from 1st event to nth event of the array. This ![](/docs/output/img/experiment-results/23576087044507) -**CONVERSIONAVG (closed beta):** +### CONVERSIONAVG (closed beta) -**Syntax:** CONVERSIONAVG(array of events, conversion window, latency offset) +**Syntax:** `CONVERSIONAVG(array of events, conversion window, latency offset)` * **Array of Events:** Refer to the events in the funnel. * **Conversion window:** Refers to the conversion window of the funnel. The unit is in seconds. @@ -123,6 +123,18 @@ This function only works when grouping by a numerical property on the last event Returns the average value of the given property among all the users who completed the conversion. This function internally uses Funnel Query to get the average value among the converted users. +### PROPCOUNT + +**Syntax:** `PROPCOUNT(event)` + +* **Event:** Refers to the event that interests you. This must be a letter that corresponds to an event in the Events card. If grouping by multiple properties, the formula runs the calculation with the first group by clause. + +Returns the number of distinct property values for the property the event is grouped by. In this setup, the formula retrieves the number of different departments covering all the items for which details were viewed: + +![propcount_sidecontrols.png](/docs/output/img/event-segmentation/propcount-sidecontrols-png.png) + +`PROPCOUNT` is an **estimate** of distinct property values. This estimate comes from a [HyperLogLog algorithm,](https://en.wikipedia.org/wiki/HyperLogLog) and its accuracy depends on amount of data it has to work with. Expect a relative error in the range of 0.1% for less than 12,000 unique values, and up to 0.5% for more than 12,000 unique property values, depending on the cardinality of the property.  + ## Formula syntax In your formulas, refer to events selected in the Events Module by their corresponding letter. The functions and the parameters aren't case-sensitive. You can also perform the following arithmetic operations: From dc50c8bce2734830f6f84efb4f33cf447922e4c5 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Tue, 15 Oct 2024 16:47:37 -0700 Subject: [PATCH 2/2] Update image and add note about supported properties --- .../experiment-results-use-formula-metrics.md | 8 ++++++-- .../propcount-sidecontrols-png.png | Bin 0 -> 20449 bytes 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 public/docs/output/img/experiment-results/propcount-sidecontrols-png.png diff --git a/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md b/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md index 5443d82ad..ff8253e48 100644 --- a/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md +++ b/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md @@ -131,9 +131,13 @@ Returns the average value of the given property among all the users who complete Returns the number of distinct property values for the property the event is grouped by. In this setup, the formula retrieves the number of different departments covering all the items for which details were viewed: -![propcount_sidecontrols.png](/docs/output/img/event-segmentation/propcount-sidecontrols-png.png) +![propcount_sidecontrols.png](/docs/output/img/experiment-results/propcount-sidecontrols-png.png) -`PROPCOUNT` is an **estimate** of distinct property values. This estimate comes from a [HyperLogLog algorithm,](https://en.wikipedia.org/wiki/HyperLogLog) and its accuracy depends on amount of data it has to work with. Expect a relative error in the range of 0.1% for less than 12,000 unique values, and up to 0.5% for more than 12,000 unique property values, depending on the cardinality of the property.  +`PROPCOUNT` is an **estimate** of distinct property values. This estimate comes from a [HyperLogLog algorithm,](https://en.wikipedia.org/wiki/HyperLogLog) and its accuracy depends on amount of data it has to work with. Expect a relative error in the range of 0.1% for less than 12,000 unique values, and up to 0.5% for more than 12,000 unique property values, depending on the cardinality of the property. + +{{partial:admonition type="note" heading=""}} +`PROPCOUNT` supports only numeric event properties in Experiment. +{{/partial:admonition}} ## Formula syntax diff --git a/public/docs/output/img/experiment-results/propcount-sidecontrols-png.png b/public/docs/output/img/experiment-results/propcount-sidecontrols-png.png new file mode 100644 index 0000000000000000000000000000000000000000..cb1a071e47070297bc1e824783cc8ecc201e34ad GIT binary patch literal 20449 zcmd43WmFwa(5Qyz+Vs$@LbUU^=&TL zf8T<+f{6xVpO1yRy*RIhZjpadB}mFfubRGt&Vj=p5Z`oebRQY#mAe zR`Opxq9%?;4i@%K7IwBoZ}l1&+BrM%k&wJK^glm;`{`t1`oCJTb^Iq5ARxorHw;Yl zj12!%H*hQO+f{CP2MZIR<+u9znRx${{C{2h*A6ekTjT#*XZ}k1=PDp7|9f7B|4|$N zdu-ixC=d`q5Ghe1WjD~{EGREDG2B5Z@F_`B2uUKC4ouJ@Od290s+nN;0eM=<1nLeL zXcDn~xo|&aWKoYK9FJ4tLdwFpK(aN*G)`Ji@)Q||t@z!s)66V)GnbpLA->0nb{4aw z)I{Y_1{5ODKZk!Ng?`pFd>!9^7eL`brD+AA$OOUOj#wH9s@iW~lA_{4U}E16^5mSq zH-e%Jqk|>RYxj(ZOZh=az8xr|KmL`1*?JGEMXD7Q5fKw3FZuD~M;Vqn$nigg07(c@ zYU-$s&CGUx>!0rJ>EB&cFzaAu#K+?xBWui0Oe`#vO2+l7nrHmiNvaZvsi`Rx)C5CA z!-V*Rm6a81>#JxeGy2-Ry!DSCqv;1SVX0+xIsWz#W{(KznUR8>ePViAL_)(OS@#$n zosl2zHR+)Yk?`_wXW!F;hLVz@2$#kPQlLcKt3@InmXCS;(*e~m1W_E4v^NBEoO(Zp z!HbHX$xgyw$pnQcK*9nQ4oG9e`bm6J&*dKGnR5O}pX-O}CyJwPo)FfLVeiuZUtNr8 zAmp>gP8E`W)F}uS46R@YKWTvdudk`HekfMV+^S^%lqv$KJ9w`q@~=W6WGMv0*s$?w z{%PNj7%Wj;#7SNJUu6`ix&7&p(dhpMpc@HPx`LRSmh@j`2`~zVa^geb|He{36zB>P zesbJjQT)CGZBY~$iT#tBQ55J(D8lH!QR+4Z+De$LCHdD=EE1qAq9G>#RmKdo^?gr0 z?q5&gkaPQS^81+otL*2{>EFIvr24fXdEbt#uBk;`~k;BIwgayj~DJ&y8f&uxWmwmBch zztYF5iN1}6DTRU{xy#EJF_~m~)CvweZM||;Ir7_@nwk_{3pxiP_E^s&3wJDtZD!D7;V&+wjJC8AX?`7^^u_HwYafPt@4;xd3RVRAr(*pN5XC=I-8pqk)GD>B>VN!H!^$;R>BDS* zKUrzJ?PBPho$$R~X>N0Im*H6(yr3$0t_}I0^YMJ^S1#EttvX z84a3_NXWl@|D)=1mmx4XNTpQ!o9zmBRQ5}1adB}rm*>e?T0JPJnUa#yND9O4#VCVn zrIOeJ#l`FL&D{PpsQ>LL4-b!8mGb^|lMUl8jdkvA3WJV#tH~%vXQzqSj-Kx^Gy;Nn ztI-ewJw3f-ZqUzI1+v9PtB6~XkQiQ%#QCDj49QLB#~XZJZtWI(CUUkS@#}*qT(%1J z+Amb`r!BFYL-M?CNRd-1x|ZaZ@MI_`C?B(V(d~C=p>uc9sS|w*M0n)oOI@l|2Y*HzJu_p&pP$kZHn^VEUZrAXn8Y$q`ICE1+Mmvs^vjdk>^1KU^P%kx=DV1W{3!R;!dNCp+iWxiO-J)SHgSQ3r`{ zU0@AcYHFre70z$d2@m~{_=b)prjWUz`xw$?sy-b z6fD2kyaux1xIkNW_0lfy<@Ke6NB_6}BsMt-gk4_|`!c5tur4~pf+%BDm0>YqjN?>S z2e-u~CSEO#sDMMlpFAFej73s+c_HBOUR_pjF}8SIFUA**GU&Dj7OPh3286uea@Zo^ zzC2@kcZ%~vww~#PR2Lwx#fX!-^{420t8;T+?k;=FyglK|>gb(gE<=2> z9adZO;<38XR-UuCfn&K$#(W%~(=#LiwQTj+cG#~M){BD?ryBpPgtb55c9hNMxlZ~q zi{1OU^_o*`b1+J```3}L1I@?x_h^L0v(+8k&qE(>Zf;WO^?WLwc@j5feV!(vur%*; zcRjI42G1Dq6cAlq=esUfp}v013Lfv0h?%KUfekBoB|wF@U2H+%y0fm-sK+pB5*SZ4 zH8CL%uX}hI#67lBuHM<*4GG_*{D?6F<;!t4txKq-rB!`rGZUNF7Z-MZmQ0sU%4F9g zY!F~Y$m3BM6T=bgyLPlJXMEt9!{{^i$R}XATrydcw`NfLNnc-ovzX2xamTeQN6imQwP^_RhgHdBCoyhe+(C)eK(7!6Ib8_!SqYc-r~e z^X*EA^NA(IsK)sF#r7zMyQgPC5I7Wq;jx~vFy1RMNf{A~0=6Ha&D+RBJVtEf$fS$@>|N zOF`62URabVw8XkUm9kWmP8kqxDJcH(=Dh&K8XQB%yyf%`U0$An z#>&=L%^7M5gkx0sCw6vrdum1n*XKd_?a~}~?jKULp^{1HaogX@sy8679&fBZ)ILAn z&UDha^?osnwGUhNXthS)V=TQ8HvY zFRTb{C&uNwdzs(A z!CW|!E~NLFn~*R^7ns@(^Vz3eyE*&?rNS^DdIM6=keLv)D>YS;K$qFJyq0`(kv_Hz z*mcanke0_5eHV~b!P%^5vmSPRe(;IH+KIqqI9_rUgzF`e1*u04mBlD%D?!06SYYCm zVbBh(k?_4aUa&AT`&y<87zavC;I zvq(O*8(q20{$OEDjeI(sv$I}lmE(=0)oo8iDTf$fh1p^UEv*(-9UxwfQq)+hGYMKN zJt}nj;wq=dN_DBD!)66t)cf7b8>WaC7T1caudq5g`|0;@q!!jYOJO|O?U5wwsojCA zdH(vNb~eoNevl-#n9lHom+D)y7J0p!d+h}%lUB_cIE?`;=3t)w(b);x6Nby&^roh! z5qAZ1IR4!2k^6`N-VqlRR8*#Pe?*$uUPGoBXb%*~xhfrr-tlo2JOZ97?9T(RabT`j z5Wir+@9CjD^R6)IbswrT=-1bgY1Arvi22v{=&F>J7dlBrh^7f4b5LX!iY1BgWO@0B zL=Piguf7O(}LBT+k63Lei4L|k4v#b|h=vJp8$9H_sl6F)aF*a%(RutuD4xh39~!U;N_^o9_1q#0lT`*Kwp=WUWFWUAx;8rtu{vqRM1adx_pY^MR?rf**2!x$?7Zx=NBWX zRdepE;!!vwB~;cMK>`-R=jv|$vFgLrJNR*k`@MuHbm<%-nP|$pcju_1$<-yd+ACW_ zF>x^=)qu4UPe*jV@HHoN(zIWTI8z6$M+^f74ZE~1$LnG;7(OF6g>&GDtLwLXgWoOd zQ_9Oj?(Ufmm$3mM>rW>;koHS?xj6a0k^R$PMs)|0dbkG4Rv^{r!m))PP zIi_Ub9#l8WBD=fdZ+I!#15!PKx}Qmq%58!o?iYjolO@4k! z-3)?i|B#CWw#jSVU?-1&3Mv__6Ruy>ulj>*K`3Y6YNK%L)9-$H8?c>2UyG} z>hfItBQmznPwL8OeG~J>@5@tv(h`Uo?;1dgUha-3MMWT-WdTo53bg)8!TNQzVgLLY zJNN?_aV-(p8o1Q=@AG2%z5UiNLl|J-hbGWdA<<`_dZQ9eQ zR`fskm<+@S9EB}3PZ|vd1qB-nzUP@eUjBBNpxe=f%L|u*Dx1!UFd8*m`6!~Xy--|< zk`NDfMZ|dK-?fIy#Hg>48_qaRfQ`Ptc}y1~pOg}VMbc6kivgEOeW|j)x3~8wBorz@ zy}w=b>>sS<1=zH*%gG-;4K~30h{2}P2jyB0@r6y~mILp#(DUgNzp~~HBpXP`)uCu= z;DtUlS6tKY(YO~fnLQ9O>aLds&zt}u*^L78n}?B$3uZlPab0Gi3-1WSullD1OiWFH zb+Mk@osw`#JyY_+X=*2i?P}}cv5u122Xa+P4AcLphav==q_q$s6?-^g)PD@=5P%mN zW`j8Y`P2{qjzEqz7yd^^G$;kb#<^K$|4}YbQUJR|`H7Ch(H9urP7IDFRn17uy&H^E4KO9pJ z_}5w_5kOwRP~`rPiM~{!#?&zw_Q}j{t@HNo+-N#OU+zD}K!O4;fSz8ChqIMw0lZOp zy1Zdt^@k51s+-;4sNCR9w99`|7C-<<4s1f#k1S2dWSm0*?zPcn-165P-g8L})1UhM zE0F!*gd&NgG|Elm8}G?5Hv4|5C7dAB{6$b(WT2sO?!~m@l(k%8AvXWGlwkJT*j+Y< z;{SzWHL`&6N89a=*#79}|NGZFOCG(F{O3{@;+j*mYA~Gk0kPWKql0hGVTzy13A>&4 z;gw<3rYOySIv@ci2ZsM-=70Jp1@s?{TKS*;BOor8wXHE8B*wDa+X zu+wXMu~N&m&H1>5)-e68oA06h+o@_xV-lLYXCNGk+M!fu*>6tBWqz4!HcqFoi!uMA zdAg|W6Ywc!6ybd@u7N-cS3bbH}^aD}IGWl_oY z%b~vcNy~-C_*%I|bH2#;M^z>grk9q>V5N3tIv*q^%_ohWP|>r6XUtjIFxU>7%Pip4 zJ!w=UF|cclfKuDjeCxFaqxSr8WHjOx$IrR{Je;v>=|s2{l3mz^AnV0&Fzc@6`BjbL zh5UXv-1pk%g_F2xA$CoBMD?4a{&U*4kxAS{V7cD4nglJXn1zLf(V%=lr_WW-QlpiM z+JY~K@l{7Rk#RI0Q;o2@uZE?K4PUNrPLIeCu#9wAYn+P1;|`O&p$y4fKcwM^7gS!} zq|OafB1(SRv)SyKHgTsw$cUv&P9~v8{vry>9udCR$6uR{4VrDD z(Qbp$daw@ee*AP%;4iApOIDNT=kl$Yx_h`8kSM;zc+l)G;&ehTisP8TOI^NHG_Glo zm673V_PD6k(1Z03GC?+TP0Vi&`Re0fa;a@mDphEK!C>Kt#9q2DV1;;&8sa7&?HTI2 zw>JPUFe;md)c+H7YaWfB`tq8*0u2$#^M=6djHtyh$bq5BvbYWr0RjCX{Hfy+p;S5o zSHroj|iC3dF@jG&%ax zO}uFkzK(8Is}_N9x9yR-hv#eSZx+wK>ddo}L?%o(ml@Gvg0V8!;@h4Y-?$~(OdbWGv9riyV9D-cK4eNLIGmMe2;`(54i@qgHVaUP%FwG z6dYrc#;d$gztMNQ23FSsn?SSVh-_(<5au0h?+u+}6bNd0OXT{zP$e zGB;e-)}|#Yy0uO^^m~W85nHU&WK^I2X0MB~>FM5e2*Ji!?C&%n0;Yj(#mAGNENv#L z1I2Ir(jpW1zbr_ZnWQ6;mGdmu)uJP0BimL5n(+5`yHeL*HbRWCa!S};bc<=-{DtWViBwgcw%O9@T>?Jo3f;=^ z7r>$wq|c#X3wb@DkWzmO9xuiQ)*R z(HU^s5I^QSz7$j1dnIh-6F;f&9E4((tvdUO$Mk`TFqn&uZmA_jd;dhBFgYcB9NiL6 zM32Fn;VodbdHBNosnBkv6BivF{&S^fk>Tc5sp@g9p?Wgy{`UGh!f0+TrP0n}B~!@T z8g)Sk3Y#!L57lgs_#Sgw)&R$6AZXbiG*~xip|87KGO=Ps39oE5LTx-Ywk4KQQIZplo8;NMKa!QAZ)w9}9fKa|prD7Bh1 z#k{Zf_M-+J9U`&hmT`8*$>A-+*0fXTs&d)yyi(jKmcuc$Z*jjIWaM-?+5#x@yV5XC zVZWFh&dL?&ziK5!tsx7O3lD>Px|LssOJP=lTSMswrxfM&i&CrH>1C#0ITt&sng~C8 zLh=eEAhtF!qcn~bubAm`CI6T?(k55L0; zpO=*-H1sPvX?GLC#7OuEYq27-BznflP%+7zIuwkDx~^smR=X?Zv_J$()~YgkFsr;55T z>edQg+!*w`6qhGuQ;}5vdniRfa{4T^rI>(Ms4L}Aq{{G!%gxbDKMIG{qJk;A-7GW; zuKmtaLBD9y+~HP97+9Z={8TE;+gqLr8seg%f7Zh_HFLC~uF;Wt-Ab>$!Gk00s`TgX z;~1JN?5MNw1Yuyx{nKml=n65T8uj4ET5IJsIqxSb1hHuH5o&ma+Eq$alV~|biCv}b za5T@283RnpME(g{N$Kf2Gi*38%Avy~>`4x{)eR?k)hANN#YAJ`uwzpFtg@m9ETlnhJT#p)7ssA_^fHVXe4e62-Nf+gHq}{G zY8iqzt61=bBK9l!Y`q8SH~QIbn;JT6y>^Ge9ie#z!?~X>^JnX;la=Z|)K*+*3{jQv zwci8G*v6Oh4uX;@34dsX;n2g~PAYa;!H(K}S z^@XZ@#oFmvX}6aB9T>XGS1Ppm54WxpG0SaAN08$q!*s`943nbEST`0eIMZ#ntw{AC zxW%*)C8azHJGzt{oQ=}RFGh_516zz3Na%0kS38=*$m^bKXbkxtYSA0}z32`%p>Zr9DCu`Dcd0m~o> zbIXtL9aBgmdAT2sT%E6DIxC@g-|7@FJ1>Z3Sg}gQ)Pdtt)ZNZNHeD}{x)2TR(CKQP zFoq0sr1{RM5I^FvBs?*sC0WxBQD|ZSo~2g4ux@ym6*9cm5fyKC_^O3ck>}KvptA+fq3q&q;3fOv)kXM!Ljfd+D&a2DO#m$Jicg1f}VZis=5(#T`WgusV?(YmP zjbYnNbK^>>QmFe#Ll*t=OX5Sv{D9%wye$bBwyj>P&FpHK^9u%gjWb%XacxjSv4f^& z|Mj$l*^PgV5Sz@bMHsJ@R-2`rPeA{5S4yvvZ9Uwi*wyKZ6Mm&XJQZ43>*iV+)KP5@ zai#-V|KWNE4XBI+ag-Zje z`-K6NdA{)Ha3*BWyT{P_AE2en0{L$qRgd)!g%j1EW0-eH<} zl&0YY8oUY1e1PEjrCE}z$ z_HJ7x6kAx;CZlX!^k?EBP5TmFZ^;J!V4~gBOy7Uf>gfLl_w8cl>NOf)9M|D#{?Sl+ zN4AMsYr2@K3m%9$0J+lN6qN2pPNy-YMOP1YE^}Jra7G(I-VQlN+?PI%S^1tTg*t}G z7(AJ(*PcT-F2RuWm`}Pdg-z)WzB$dJRAe0vHIN~SfahJC>{uq#B!xG&e6e#;4`BG2 zjcX_j4te&r7%(UNS>uPj!O|*FSe4=<_jkv&Tst~u)~oXKZPx};#pxCYC-PFEuf`Y3 zyCv-O zfKWMk){x({nvDNr*1-Go@+oB6QE5E{dEHpZ(@yqOpH!^X%nVzFg@py3Ms%0hJ-#4z z;aC~drN8;Of<7b)f*tcuPO#(lbm|=}#`bG1^DVt%FSz^@M->PNHwlzpc7V@UV)Z&O zW?BEo4ZQ#dd{Up52-6nG$Xi41**jDr?RsN7uhE7-PO=Pf>@L}Co;`)*uVmrm=f93K z)o%z+Os#GKkblW2{>wlL$2eV`b;?_}0iOuK5Ey5OAPj#KScsYdM&cMjyF~s6Qvi2U z)xLWI?;fT6^LdyKfEvprqb_gD3gB>Zf?i5hR94y;=I1@f!ro>5-u{~+lNtij4;^nD z?3gBR=oO(5JTfZ=Dz-0O?_B4#)p1Wex2cTxiuhqWe>!-vAP$m1ymN zLTyQOHm~!|?6IfzdlN;DsH|~%(2BOR%WL-u+C%!fCAC?GZa_cD-k1M79ZB{kKjMQi z4gzsO7%yL z_vI}SXu*~6jgX9X1|4;jLY#fyeF`l-Q~x0gv}6i4KK+*$p|Ju3@x^7xz2mP$rf-Qk zsOH(he@8VJNW{Tt;F&o5D>EG*I&`7Kf+2F2j%w@?k!U;|M3@Fv9AEei-HgN{ey*>HKG+P+dzL!Nf0 z7db!w>Qb9i7z%lVj0zWk^25U;>zZn-bjp*CMOYXtZg#!@ZmG~%BOz)`t|*jscySd(cI8!^BHZn1qU#< zcb@8?QFzR|)!3|*M}K8Q0xEP*^SdW=nJ%WQ-+fY=So7UoTe7ycPE@d6X??aloQtbB zypNY9$5_+g^JvGs`VD#{hx&Cd1W}QLp8ewjl+hFrFn(@Y6YNX&wR^2sDhj__4bhO5 zjbt4}9R$J=8SEAt+e!B?H9cfE@5F@;VqU^)tyMbf?<6GM(UcELKxt&x2Q17JHcXT~#eIZOhD2;%_ zU=iq*s4oFIMK2_SfuHMENQeX;k5Ac}-#QZHf{j~ML`v1u`PXl*r|&eimJ;a>!O5dT zLziD}tAs?vgM!2)WxQ=(JdcdK{QD9E@^=}u4+P91S_2UhY4=qc%#llezkr8OJ~N6) zwwR-K;PYCu7Q&hWasR6;T7sNd`-7{6&gYQ4cka4mh6IDX6igqa(mqUK#fu?V3FA=| z6Ovrc-ODHs!obAnW22(dT##dvDSi5+5SYUJiC;)K!}X;ebLH^K6iOun0Ej5)pXt8G z5You_*8+fH!vm8+qjby+Ac@@@(7d179NG>iCMHOO5wWjUeli(RI+?E_IM7Ul#!b;_ zy^4D5#hym)_wCSW8Qi#^%I}UnJ3l|b1Ch)erp82elaagM@@YoKt+rWwNf~ z-q|j8f-&OhGJGbVSq~6Y{;BNdK=OJPXY>=X(6e*yIVnXeTz2?4(W3rKfXMDstNmT< z3lPdZv~v7jH-m*11fRGwgzZQ~heh=KF#036dbr*F^5)lmz1?bSz5Thv`mxaI?n^6{ z*ct3+%NB3Rp}~Ri^p4+0-(Wc(GjqO%whnWwJKtZhwd`CU%uH%v_6oeFVAq+?99(O? zEKfF#)7ZKC%9xHoEE^UI-0$hEQ;m9&-JA#nx-u}x*KoTt{|?$c{2+7qt4gu6U4S0S zmb=}|1o_Pu#t`lH(xuIH+J90V2uI)8*w`7@qr&P5!Q$~Dney(uTmB)>m-uxYS-8>i z`gAy?F8>47^8F=dqUr0=V#j5Uj*w8gf${x&L_~?5o`7@)w)Pi37rc?^ zt>&cN+~jllh1BANMEwL~lyzD+4#a3-19aMMdcv;G>I3)%oO!iaYa4It%lFzZYXU9!wrDNqS0$9CwngIywPIrPETFmb|0O92Wt0tYHr zTl;zY>6zQbJR+aZ6R`}=etth{?!43UhtDy|&fB{19<*MX7V@XKw*a0wkdc;vMX=oY zd?`ApIFTx&CNCDMd`ysMuF!krC z6zhz4UAb~jxrzxG&rom=7CRL%sFYpLwm)WV7InTks5Ds!8*Ubla}M+bgecxtcey;B zMpV=5wnknx5SkJB-W+{X|XEKIJmf2u2sP^GZ|J;E8&+dF4sD8z_q&U zmt5QvEjgOW1?fe2*>gHvagP1&D$`6z<9V5FFj|D|y3nZ==Gt3pz0Q!c5}M_9m%b#L zsgM#$BSrPRwO~cpbqjd-K@3XnbF~*oiw@Ir;ikmpa+FA&6Y_ULR-nMr%cZjpX40Tc z7ys}pV6^=*7=+JnU4zHLK4uH#u`ura6xvj5w3)^^werz}LQZM~A`)7S(%V3)B$6gM zGbXKe`)hYktMj4P<#o!GY}(%CHb<;Y;7gTWo5%P3`;}JbZ;rbsh2K9VvM)$An@>K4 zNTG^eT|Az41YA+(cokL)4O2sQk0#Tx_^xV0IF4ssvSbSs%RZmqHXdH7d^hFqjbMxm z6PGp*V*a4j>85xY3Nj>POtJ_K6KPPkrI4svrA!c(o2&o1tIsLj*a!xL;~!V^xoCEX4(Toq`UsGggTEn5;4;kR{W4y@=eUFYqimgAa7e+D_cLl;KRW z=OMpyzg@B(llBj;jH}EJe2QogN<}0CHRz+N)MF4~{4zBJB7G1Rjd7o6fWwu@;B7No zrGd{bB_-vyC7j<95>k<$<%WcpUwi(`#>mWyhW8>i_Up&Wm1uuFARz{atpYLN9yS@9 zakN2_7v3%TXCyC;9`sHxogj2`K>_$h28UIk>-rq^cr3j}9mFcrZN;lhm zufaPY zGJ_;VAxunI4QlMV%OdreQujZEG)7nfUvZT(_qLo`t?gwSGw1bYi5ePrOBA~xBH`uo zhwV2Ci7O%Lqu?kUiIH;AFr%U92og084zk%Qt(ZL1?P4gq+r4163Z9qMFeSLB&Q(8HDWJ`+L8C=^( zOVVQWE-qSz**?dcJ!q1~eORp>QzjGrHDy)ZKHs553A3=Wf?hO2>|vr4 zhiFtU+bX$+>Ql&OO{`0V}cs?_t8T8MW0 zA|?B)c0V{ zM4+YOSd4>iCKR0u#O1<6(0hBdjvSZ#n?M9}_yD9ni$wGD1>k3y*+N6J;@|Q2$Un|L8hggPfnGXf()X zvpB!Bq-9n=97y^&lcM(&wdu@N$a&xu2!v9p|0CNR18yV`N=F`ZWP{~gBqtGHsM30hN zM~O=BDC%kG-2gj|A^oR?U%+Mrd+26$e)#SsaXnF@q$y?+?*vP1u_9U&3*MsV(|SaS zsAq$|;z}Uv%@Wr*Jz$%A-h+giTJuVK{&eN523PPga}9iQU6A80gW&>Gv5un5PDr5T zMx}CcT_ON}{M+Tbf3~Y-A9P@mztsJ}3{6&giNYz3Q;I|<#gcZynk>}wzNG66Fql2n zl503?eulz^W=i_V!Y=P~+^CjJuj>c12$(RUVir47WA_(wdf1U-qGbt&uF;v{&Pt8e zW5k^s13SK0oJlt`Wh(yhLMYKMEOR8G^^OP)Z#i;+EYV zjbzWQ_Sz|Aij(6P-HX-xp*;8XEBM3)(vqte$C=f3jyg|-1hz$F|4LhW>#~UA_dp92 z0A?f;*M>d<^kcYl{@}ZL4Tw&s7gxoUkcVq4D2jTO%?F=#qb1!x%~G+*a9T?~j7|`pRPCKU2D~}gkk%T6u;J~|5IfBZgF#74SHzLQUHl5|OxdV_j z7oa#(tmbTb4T=##`PNROAy1blIfpd7+01j(@;JT7NNqv(jfU9jYf@up2}&?O5453s zDs;$Iy!icO4(O^0QcQ;4IyN;NJeB6d0Dw${5oz8ap;U9^8!)e z;Cfrl8%Wwb-Q9J)A3^6O?5^{D?OfpUWIr@4sW-W#P-rX~Rh7@?RBE^}EH?$lyN9li zec;TA7*cU^QaCF2{p;gXK}9xNqethQ(fS5@M$=P}-2L;jSFI?e(SC&4Igq-I#XE%X z2&6b_cI?E!<2Ikn*TO!k6&4p6R{Jt_gs*s;Y@u<3@QEyA6uKV7)c;n^r-zIp)}iX% zSJt|;a>XL<H!G&o$q|Oqdp` zTYQeNd0AT0&~I7OoY(KuuVFpkZyDgwNYx?pzVe%R;o-A-g7Ge4ntnlU2>NW) zH*uBTn9=59`)b`5UT;*!dG-RHVmP4OC2Qs|bd~_Jq2?{^;f|v&`0hh1AzEZkQjn*m zdT(tsG>_6i|DfSZquXc18B3CcM~fB`qgENHVC8y&j z@#4XE3q&zqFR&MMzZ(O({{VNkTFga;Q7o$26W8e7?l7huS7?W)_6Hm%Ip2MnajSa; zAzFv=9$kYfwQr%SdZYFt=Z;_x(nlrsMR{?4DJ96o~Mq8mmy^0f8 z?U?l1!JWO%J_X)~vQZXqdsI_kcsKnw+9QL#N&Syd1!XVV>|A>oX0h+vz|>(MN1w>C zzzMm$a__-U>U=w_{UIa;rTla&;vuKWVlN?T@&Ya8VZe85ni;r_7Tv%hX-R-cB@x(_ zA>E#7Z8@ND;7EQ0p;E39-v6jE5kQS$TQ!cT|58+PfVpZ;tr+V4#iq1x8!f-sVzf#B z$q&?*dLzY7>w+K~N%4SOC~I=4K33{mpMwM*#>e`3l`}r=e#-e?Qr=*G{ZpC#9c! zr$frVmv2YApbQysLx0;%;SZlqezP~A&QIK{+(YE|gO~sQ?g=w;bX!G}8uaAExYQNc zhw-hI4Ol+goRljrt$*O zn;gbDAW-4;KVs?ra^_e+1VBoBg;cSBS&j>Dd3pRIO@A~3D1{qf$IgNV7=Lu|=XP@T zN4N#Bf1me=&frMG3kr-34UG~Kz72~GJrAGL^6+SxQBq=J?&8^{!T(hN7KOfQ*udgA zR8Jm|Xjocm5!^N~l}X|!kw(S)tA8;0>S9ZklS?e=_^n@lOb}z-3UJ;79Q@ZaskjLN z>>vn7emMa)bszp{*IyPURo-x2y2p3CL4+09-scyi6)O`}ukly+Hefpm>X9l_zB8Sm zrlX)<%V70c(Uic510%zj)6d+wpXR&h2Ah3Prw{cO^mA*;Azj_42w$1*;RDcE@g8VdmA&Jzg{Qm8@PL1f^KRmyKZHeTv-SVAm4|BK1

sgwju7Md5OZH}#q}j23K;k;dSDaA*(a6v)ClMF)`4*4 z)(&Nk=Dcil$08B&XI>~LWY_4obx!;7X{(A)bs0a^)PsX0j4gBOA!o`|%hdBSfef(; z_R-n5$QRKNOz61*E6p`Jm-p`KfL=LhN)Tp*(r{U73OYe$8SbrcLTgl8tzn9(vc^5P zBPr4A(LA5P=7c|+$^ds+@5nQBq>s<@=Jd8)W7K0e#!W$J|271d;B^H5LE z>P%y5Qc@C^{D|XQ#Lo`~BG8EX8l6s1JFo6e1g8i|GfuUv;y^U)y9Kf0cVfkZyta9X z55tHtio4}yS|@n}h;CFqT)=;Pn0WhN0B9Mx)h$|idFl7y)hO8p2FQp;h5+*fqHBq+ zOzarCwq8tTl>Jm&AMLRP zz)_ny+oH#j^~pS1Ke4rXG)BO3W-^Hw{a~yzyzpJhjFc)WJp7}qbg#zpvW|&->f5sA zzf43_q#XVHz8Sr~Mmh&wn8wu1AXwi>QD$pPyqdN|ZZuha`U-ur-Ck>5RCtgmHg^6D z*xJ<34~^je8~xTkCNxsmJies>ksvVfjFz4*&Ug1C(PCJPyx@FXjlb7whijK*Quxh{ z*tItT639EDAkC#k)4*>M5<}W;KA*CwczG`-R=P)$Mu0el;#CI6=`fSc6}*{0O~onN z*jtDaSo)DpN)|P67GuT>)F5_Dtm`kwvVJWaQ*} z-#qZy>FFnQb;)A|OBj~{8g98bZ_clK24t7EwzjskeJd<1+#m*Vux&AU+l>_~IDs<% zEMjsDnM4h{9|RW>RKJ)U?AS}l|6)C8)1Knc-1m4+^Vt_KGIMV3M?oq=sirRx^Nr%c z$jW+5{B(T$^u)64yc4HouLM7QIsdsVT+Res5%+^laJ}g(8pR>aM|_OpG>2R2yfE63 zk=7QpzC9Y&3T>|IDa<{qaU2yfy9i9zF2`M6d&&6@Pa)|ru@A{>EohDyrau>_L3e)_ z3L~#WM9B7?HruWRfr{tRB;H~sn;##2i?DAzU1?*;d~^S(s8vQrhj@&(W4?YJN~^~t z`Vow4_TlZ_kSZ&9SK*MT-iE*b%M#OKmp4?B-}$)Iq)`n#Cp_TZ{S$Pe^VQ?(xFvT{ zVR5AZ5}T(ZG;^14bAyZ3u#}|i@pG$Mh-fbUjcW}`}CUBPrNO8OyJ zeL=h)z*6c8s>9R~GZHgTx>`d$Rr5tZ17550vDV%}ya8#rmzT7NA#sj9Ns!}*i=xgA zr0H^k6WgD2dnF;_(zNtY=%aVM*VxqiDqvF)Le^-+M6hO}!Z4z|c-{Wu{BK4WSu8HZ z?|2-nYxK|ZBa&2CLU2Sh&zcLhz6?X_@&silF`uSxAo_om?}2!WAw&A}a5!dk(V?Z0 zu8Kv5N2eGmTJ6!iKeDb|WVIJ+Kfhms!D6l2v8wKS&@kQ>3k%xPFI4`i5FS4KJ-Rdh zojKWREg=e|k61tuYlJea0RiiSL8KCG91Qkojnpe)aK!nS?E;CIt&+MC$Y4VZjDW$B z)`ux`c!osXuFqN);KW0D_DZNI1jJED)HC0dLq-nXb~?riR-p(kqdF-URdW`EhA4ep z8?oh8n_M5Kkf&4a-#ba~z#gSI4YC;AItihaS1$r~%rbZ#qkB|@iQoJ`b)0)V)9o9_ zH~gH%Hir%#GN&?Ogd_`@oC{5aCW@q#iSSS(BT9K3$|)jCwxN+@D(3K@kg}espHi5T z3PYxq=ibJj&+D~+zOUE!zV7?J?(cW^^|`mo4ee;ggEs0hVhtlp@lyyIZt>UhPM z)x6=(62&9rzF<#$gqa=ugB2i^Ru+9J*{Ncw6fLh4#C@gBl6fx;vMg-5Mw+NdS*_$8 z1_bS?XYw%UOw~|K#BOOyy1YEtt_X$1M3y$%PXBW8wa;k><`}M&usw&k4D)F)to`V@ zg6}TLmNuGX8?HyetoGZ5v$pw_hR_OSY~CGaNWgDi>!+?H5i=XR2REEf)Ya5vqBTPE zF5znJbzXl08_P`AF>Pm8=5lM^U7XipGO3B-?lt*kkG@~igPxinemfE>lq(Pe)dTi< zj{MN4*{02UCTpNcccESEvy#=1x#9RtX0+*@55m}QB|f*ZWExGcOWTsq-^66QjJCfR zEJsnY`>ImVC$CkG%zQz;k>4QIW$DE@MDcdxrka{%nt!66vR9@a&V9_-V{kgtv)m!Y z0GXkhyIe}`G1u?t3+|fsrqOW0wu`VfeL}i2leXIKW3-)G>#k<(${&!0GX#EhudL)V z|DxkRSrHy#_L22JBhh$!3 zD{iOEpPOoBNRJ4M;`601^e!MGo-)+Fd(+bs^fKE#)bm4kxidV2V#nEkRNl$_Dx*>} zb{<(ERf=0$Dj4~5!oec--MC+hZ?NF)Kb}p@!;#KXs%j}Wk7be}LAWT@i=2BZNy+aE z&qsEYZlgv2`Z)DA)v!CoKBP%`2}`>h=&5{0{&HM`{6d$vGh<#6nbBo7t4WdzEU?olHvnh+u#x0EP5048 z+6_va!^xN!JH@i1tn4go4x)j?Fi2z2999k*seYQhBB>9}%6Mk)bZd!0@NKGsh8T?b zNvhfJQgX|{Kg#xB-Gn~Ifxr}VVvKuL1i+D}L!}apPJeaKIu6owO>TMO1B@Js4tn-Bw^XhL} zUVR^bRRxDfHY5j<3zVnzq1^h@EYUv}0k z3RafI_Ky}#ds9#Ge;gbdw3R#( z&_1DZFUVC*-Rwg-Ye3-$>f+P}iuey0hAis}mqXH|p7NwgRD6vYVJwaTB|!>lu?jIo zl1!Xl^~~OziwyVZXhP03Rlk4dZO;oPuMk80*slae%(2CjXs7T6=b{(6HE)(i20!m! z+8zH-eaEwqrjW#2GH(Z=x&w|mOkZ<64fP_Gb5 zmTh<$(k-a;)8iwOd4OjVNb0iMwXr+BUb4!%Wk zi<){jgkZ5+t25X-jX_5W#pb*WkdNOi(}26II+-0!?_UljY+wt;)kK&`Y}}W$ zc-LZ;{Q@1AIS6vwI9xgQB!3wpQhQJUCknw9PYD%H&lC`=T%I^*UO19sC8*O(9deMf zW-gL1pe!xz4fl@ABhI#)Jb~`90(%KmGXRqo6-}r$`*!P#3~Ptct4R?|cw)X=_d2zt zcO2Xh5z#=WYj8rakl6^CV&+KfQNHln1}3aaC;Gm8h6u`CIML6u5Iq+l5pPm*t3pT@ zy0y_bcR@ZhpH1XYm;Hw)CUp1u;@iI4R3F83Dvft6;3Jicw+KMB+hWi4=w%YiEmP)C z1`69HuC!;XV*DW<)U;pwLZWs#Kv%Gl|E5a_)%t7V3X%5gjd~yFgmAq~YB(u@d#=JBBYucdxRoDp}Af@^{8+_L9nm2_yXeE2R zMnUifA-_MbAWt5CXw$ENG~n=%V#{Xh>tb zg$0OJo~#H0bbgGUEWS?M9RD!v9PpM+U~*XYr9|fB-?1+ z9(cN+KLwwQexnwcqoe)Z_BC|{&7IOZ5fO8MEa~m-mA%+!s183WA(%aJyVzK0;BW9i zi1Q8)Rny^NPKMrs+!Np_X(Q<4Z)c#v3}+$GxHVA~Bv$rAubfU=^UXuB4)ys)>kSA* zkcTO;wU&Rd$^X3oo@E9zRM#$hpy0((CH4q1i@-uy7echX3Z(=oB;azZ1UMdvgdhur fjkiM2h^$If#WeU%z7FJ<>4P|8-R!Du1Css)IGCqD literal 0 HcmV?d00001