From c2d7fd8f84c00e7a3fa8fa6b857877be6768f05b Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Sun, 17 Mar 2024 08:04:32 +0100 Subject: [PATCH 01/68] npm init --- comscore/package.json | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 comscore/package.json diff --git a/comscore/package.json b/comscore/package.json new file mode 100644 index 00000000..601795c6 --- /dev/null +++ b/comscore/package.json @@ -0,0 +1,19 @@ +{ + "name": "@theoplayer/comscore-connector-web", + "version": "1.0.21", + "description": "A connector implementing Comscore with THEOplayer", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/THEOplayer/web-connectors.git" + }, + "author": "THEO Technologies NV", + "license": "MIT", + "bugs": { + "url": "https://github.com/THEOplayer/web-connectors/issues" + }, + "homepage": "https://github.com/THEOplayer/web-connectors#readme" +} From 3fb44011d8cbf1a3bb0d3c072931a0d5a4d56a8c Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Sun, 17 Mar 2024 08:04:39 +0100 Subject: [PATCH 02/68] add documentation --- ..._Tag-Implementation_Guide-International.pdf | Bin 0 -> 267831 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 comscore/docs/Comscore_Library-JavaScript-Streaming_Tag-Implementation_Guide-International.pdf diff --git a/comscore/docs/Comscore_Library-JavaScript-Streaming_Tag-Implementation_Guide-International.pdf b/comscore/docs/Comscore_Library-JavaScript-Streaming_Tag-Implementation_Guide-International.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2343c110e10457142eeb7c31d39f632e708d113e GIT binary patch literal 267831 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 $z1`-&GGv z9tdF45<5+J-8eqxz2uaj44jAWEkyFS&|t8?rv4BQ5iO;#aPpun5hV0~@%??Ya4M~yYYfScLPWeWV%Buvb0*>h zIHj%wpTdaW%ln6Lk1S*11y$gr5G0C}MbxqXuG21oGWyQ~0`2N1uz&p(w%@TFfdrEi zc?cC40zQ)qa-?iAAC^iT>hvXx-t5frlra_7jMoVgap=N`2v0kVgEz7A^SdeMK2rbJ z75|E}7ei;!RWTgsw*aN+M*Kn8w*alkMtPctH~K4g%~XVtcm92$ocytq7sGTR&DhR1 z*)a!GtUd7!yadb@f6JX0LluEl@^YBB0OY_%eAZ7k*#3?3u-9+&`mUNoyMiCSSJMaN zhL7)J7p73Ii!VanBCDYrA@5%?@~QQPbA7ssOtETeE@I}w8hvLyeRg^3qnaHK@!)Y* zfWBcqgGmK7BFsL$i%FV7vGqN`vGuJQ==jI^N%RiI3Qh%MBPP*v>;9nLhd+(M_Gj7s zdudD+^!)Jsb9eg%>~k`yg4MkCp-rIwX!01scE1l1m?bh_n+|-2{3GEat7-(^ zXz!Z!oxj${$?r;tYOQ8Z-)&07*pGg%SlBa=|vk17~&e?sQ}dBNBUx4M(<%d^G~3_aDrS-pJ zYos1(8A3MlHUNRgEw~@tseg33ynz}+*{nk>(&2-LQpKlIAnUBBT5agIe1i zMB+AJ%G+aJ6PV0e6`5)j=Eth-_1gLI&r7&$L%mcs;$AnQFlt#M0Wt(a1biTgkU}XW zc#=l0DDW(y&|TldK18HBfDBnNNP&-+WIL|iv5G>KHQeO*z1Ibo9_D+A0 zm?+`~2sWU?3FunfEVO;GKiQLJ*b7(*6$CFYI5(F2I40VwYgOOvAkWN4_rgVbIaao^ z{geU>w=+to0Ltk^X=;13q>upg%kSSm;pQ>1*U(O6X(u4Pe6x={e_Yrdc7BJ`b-wHD zY-#!W(7#ptxcE(|P=$;By+JH<+LE+2dbj<>U&2MTGdHrT8KTXC1X=e9^4_2rsM3DX!e@Nut%P!ypIZ}g-yNAO<5 z?@$%rCnoMqU$hM6(!uFw9tkkbxWJcgy#^_PI-g7hC0dVD*YsP%QlfU9I)b_7z18JQ zXO+jVBn60C)3Vjd(JuieV(_|Uz1oBAdY~Jf= zQzmfQ1`ldQp~6+-gCt1`)GivEVA}K{E1`gSEpT|BN(wCIDeT=d{JnFW_@$Y_(9pg*5mVwg>36U>ID~+*p2ijijrA`c&2aq(gKl1|z%A>&=6V}*5(UMyN<@F^OBe;>#6S60H znjnxgN=bFl6XJ@mv7-Xcn}te8)tT%a-KMX)(+p4K*rySDsND$KI#p?dCP3 zHhDC$&2vibT@0Mt=c?ld(Kp)wA*9O>%i*}&R|uB(^t%44yO@0aib1XHKJTz4< z9Yu!!RqQpk>v|ZTYM^kol> zUtTUA&~`lkvi@Q49kvw(^`x40H27Bb>PFRNd)a&%7Jc~sl#%%h)q3c3n*5BmIAfaq zP_#{7K||(pC`M-Uc)M0;X%sq?&lc%dd4o|5YBshogsg_M(vorek>x&1%3OYPawi%1 zQ7vD>OqyUku&dRJ=e$~&+Rch?Kx)v2m*ePNnbxr8`8W1faJ#sImsgj)j|GoJviUp7(d!^K4BI7E`6I0a*NMB&=-VHz1&P+d4~c z1EIc7FaW;CvGKmpcPq^|`;UUJNn>k~E@*-=ok~q{8#eDs){LH#WoKpXB`Od7>Bunn zY!UAKaOT;olC=`}$%S&UcFPdypKlq`@9l*;8IhIqK27`wS67o;1o4;`t5U$}LTWp3kVBNDqJ z1|sFi=Jyh~U=!vb&sazbMpe!Q`gXbOFMZ-G1p*kp^52}M&5x?Y0e^%2P9xn2X^}Ox zbyMq91W30;VXqEgP%OR+h|UyETw;)JjE2u5(F_`A+%et0veYQ`aARvve9MJ4g(kyBZ~FMh3i9cJikxzYOG$xXseZN>zSRI`UQ7HkEiC9B!*% zC;hxYmEs5fUrev(-Zw23SN#JI%imId_-qxrO4daT@079JLD`wNvQ+|B?2Ux%t z29<9Cc8TCkJcRTo-jb}4v z>Qzt{o7G!O{%uyYB2FMMGb`~yt^5tkiL1&kB{1}>)Q#DE?CQ!*^SN#izik~{8)#L^ zbzIC`hF1zsX!h*=ZJAKo1-Z~E`Z*&DQ8IJTBZNh~SCqgIam-)ncN^OoSNox>@j)Dq z{9AvY!ksG!VA)zfHnyIXiwe4mwDmp$MJ>;w92*tL=5RUeG-g$%!R>t>W4U9}*$~Cj z(IMAdpKn&PTrL4e74oK#evPR)|JYVpjmLYmM6H^9*Opa>aK0*OV`8swLUH-%@`%LH zB!xdRnUIw42ZcL36raRev^5jPM0ZtPObOg66_XWf4?hrj%oJz^dd5;)!`F|6eX{E3 zBUMua_MSpUuKtcenEQG>`K}(1PN~HpKAcV+q5F|>{40&Zc$bbO? z$rf%#t#={znkjWIM$c>1=hsE>_TG$EMSvA!%mdN@EhZ;O`cv!iKj&~`8jAo^LmJDU zgLuVw1$^4=_b>(5OeR-AcymH4V|k|bgi>7oW9^W&V$}pkrn60VF0S`CrQCd1B&*Ky z1Q~aPr0@_HAr$6FD6(X4|{&j~;N`MESp(-Q+PtrKXn z;H4m_?VZBmj7%-6rf~od%xEooi9wS!7)>ZvNI7>+C3oKIcJ9;j3tefK9H_tE-Ao}E z(hSmw9OR^r{+v%ShLxh2mGmXRK9%1E?DCd$ukwcLB@GvZBCG9~j|MUInvJtalH;5B zhChB9`d(qHh|}BU_;GFpoU)?-F3&4Km96a6xk)pn-`SuwtY!6l#5t!SvqTB(skd3s zSjIA&tWio)6B<&ee<}a$71^qnE#TTOi>pLzdE3q#WVCqhCbvWONiU>;3kfz1AY)D8 z6IwMrpA!+XEtp|DtXnqeB=1A=Q_K8&M3iR7Vn4OpiArh4_<0=y@9$PwqDPAB9JSAn zS1y`y8F>1yZ`A*>6bgUMDF1&j7yVl{!B5HkySeC3FvsWG{~zE%{U`!Pk6P&X%MX{E`b%}Lb*JcXp+J16D(Q>6~PGo_pi#`FES z5JWWbQPoMW1kFi;yR5P`8`~vjnWj0QjIf3r;{l{ybuBYo^6I!@);||y@~1hbQ6<5d zIMjbkn45pL@M9c%8?imPMY!D<8Lvr=28izjZke#T*?(DfKn=& z`4LD0C;E{Kq(MT*a;Yqj3M6sK>a{WnVGIc*a>#1h{g@dBN+L#b8~NL-lp3`(Dop8< zWnn)hBeg)HAC-Wa(s$UugBTE{^aPT(lZ%wrh?N@^)TRVc5+wMqf)}O;ledVog$X9L zQz;E+zzNF22_Z-%0m86BVm{}f9PDdO)SnA&L?8iB{wFJ=9&@Z8&_eVh$PtO8;kaZ_ z$}=G%!qZ4Ygo!=G@qM`?I;dsHOAIthp)(PLi42qR$O!0VpZJ%;F{}6ktsrt>^-u-l zGL#TX5A_m625PI+Fd+HJ8NE2vBz&bmYy4J@Od2ES{@KekOxF^bTL!g+IE{%TGMjHM z?=;(pF^!yPI4n~NJnM3jDs0(UgN{WK4@?bnopQ8{AGc6!Z3qALG7^57+v{W9F_N zJO0}<=dR5%mU+!HXFHQ>jQjJxs9RP5_QC#3;4Xl_$dg9?5 z)gvq5b!-1c@1YhSGD`-pQimn92kCT!z8;S*H4xQp@8>iIl_k`ue6&gG3#n$)12T$pC-_iLgv{%Li{mDAP>%zpb}?cc-PJ3Q zC`Ol*gg8F;7!m_PLD(lrbHBDvERKQVx^I`#W<-n3VZHhaOSG10RGK`$C9lCFka6nh zp(G{9<5No9;ZDy^_o%>$U=|1a*|GPsT)SrfG^$+Ezb#mvlb#LUdh%*@Qp3>K5c%*@Qp%*@OyduH~| zzP%f7BlbqTjrZqNM^;vKc4b#b)ORw!oDd7(w)C;P^xSmSA{JpDwpOhUnR~N#D!p&f zh5tbyA3ujx1bJto?_{ErZ7mVj(1EnlA~AFxHdYjllnXy~%Rr+{By)le*@?IQl?xMV z!mdaZ7##krgCvGzl2Xzv@-|s|qYA6g6^|JA$3Y6?frv3S(p(Crm6#**{3pMLl6lhx z=EzzMWmt3hFy9LeZl7262^SX~I-x$5ev8R3X|I03qNf_>Qah2wjf4=X43JErop!TB70YN< zI$SW5K`*ybZP`#Ey72bm*&|HY$;xqO{a%$a;(+g3VrmPpTiXU!;!CrBiD?^^nQ{$T zBw>$Ww2TZ3qUl1n6@(weazxO2&YELo|9R!(-Gm5WF00(vh}u(G4=npFpA`w+QLAkD zt?@|4Qr40mvTk_|c(~ouIHQ5ZJUyEQ=(TGcC;#Ox>MUkR zW<>~Tow~Y#GI965P^E%M_iL2a!iz->Z)wm}Pv{!(3RB>55}T z3VY~ZbLPX@{Ptx7w6eH@C=5VL1O~xs#U#w{n&|_H%Esvv7s`c=a+9gz0wqfBME}IdF03f7}O^tbyWB+1OCA z_gHzl&xo|a9m`UDHE-%;Z3t~!(t1PukWv`R_mZdz%HmT+=co?q7_+e`hnvH&W%H45=NZCQ~D6M0G7^>Aifwxs$dR`bQ_s>#At1k>A z^6(Wr{aID|>Yy_3G~myX4`M+FfOuQ)KFGjH;4t}Sq-dUyof~pMj4fhCm#_`2aqz^G z0xZq+4#ma2^^HlHt8zS}tck#ws@gejl7#qHF)(Moa_*Y&y8nD1ouK1Pta?#H!?I+i zo>~VD3QHmCEEM0?xx1Y!66q_yliQbBoB)mc!uLt&YFqAiik3HC%@%=xZoOs?0n|Ps zuj4CQY0`QUueKHWk>f@e?aX72WAv3wZBj-@vjXs=Y=zjkk<08kG z^&97V&+~w52P;EHh^#VhFV=95r$|QxB7Y=Y{K48g@S_DFwk#A3>1v?} z{`V}(X%!AlZp5w?Pe7e>r94{C6x|@ZS9A9`28)JHI$Y-{qHa}LC2Mh|5g9%zCatkh zc;t2bgpDS+jOaO1QE2$Btt7XI1o0O~2w7H0slbgVYm=lMna!xGGSTbn{MCFXMs@yxNyfVWVPIpiNrnvQ1Z$%vT! zB;8Ms7zW@U2;_Y$q50eX&wT@B4Fd_GFq6z1?my(llwv z&m%Ea;Zl;RB22r+Fje7c{A>GCo~Byq{^ATR5@H+;d6EtUDJ_x$aRO@6czEw+UeZ1J z?AhT-L_d4UY>LCTZyvKqA_+s`l!v#D)jud;2DWGNSyvrr^r2x2l&PZTypZL;PT8C( zzDxv7^@H5uRzYtL^yN1Tok(1LQ0Kf9X;xo1igUIbvu56t;)Df4J7O>XAUajI3j&(G zs2ga~!+EZcQllvU^1dJNg|*b6N+pAlW}I1E9(Jlro#J7|LWR0Sx989p_3193s=l<} z&ygue%(;E|sFgQgPF*)zk~kT}74x^zrUz#nj<5@(tL{%aaNzgE97yTIq{+iy1v49? zF*8RMN;yr!w%OA${^AjO(1I>lQ=>6PjS>a=-iLUWeD(E}uf}+7{wuwq850&nUy4+` zT`d7XhxqgNW!pPXq01lQYP3NsP}hjdoHM&6VvpfD7vBfnPZ{!e09MON441n77|eBbCJxn}PPkTw=u)bpcKM{uTCU(4ov zsaF5Tatfsd7^hn-&u!3_THo`%apx{i!`)Wo)9HQitdWCO?Sh%%)xuk`5RjuP^+?Q^ zHp_+zCXMU+xtEiV=Le>wR=cF4?2}1+ur_R@i;H2xwrD~r7GAEEiY2s(9Ce9@Qncz* ztvN#^#70t%^csRwx9$d0z(+y(cWp_U{mBF=5heoU0zUhb5*KCK^+U0U-y1+5mDWmE z&q>K+_~l;t3l)8)Dj1RAZXU%)rZf4}fi9*pjt^|#S7$@d{UC>dmxrLhjxRWiqloV$*0z2Lh~ zfOo*UDbK|n>hv>ohEAu0eBO6}!o9wDE9giX*=g{pw*;^KYH9^&)*$bk3P5x5d%oG^ zsH(n%;e{PnX(fdjX*Qjn#268=ZoLm|>>H2D_^t7iGcXr3uVsmaxvCQ1<0z<4t2JrH z0rX;}VQ!34E#bseiJ`U3=H?uObnc8JY97hO|I3lkDjz-ZYrOnf8saWDhp)iJ*y~>p4ZmqabDVLndUW5Og z>P2EBX5^;IuhX!DTHQr7PyBMjX-}*6fMe*3g;ceCIOVF=o125G!V4qYvzb>^c>!|* zUJz<^eL)C}I>@usPc+<+92EweO**UHWZ)!CaE-N*=x=I@cs;;Lk&XY@P8syv2={Oh zdw2@E-*S@i3t(9YX>-CNz4_qpVRO}%l<5B=702&?~@M|o3zhX2|UNy^Kgo$+u8a+O&@&8pRehV z&pgiY)ZU;GvRrhq>1mI0Mt_+B9~}WJenHYsL`iknpvODAq))ZQdQ`lb5Ne+jUel_` zvQp#~J5kBGqtJCqVHA`*Ncdickq50opXhaC@q*4q&!QkUmr8fc|FXbTp%!% z9B-3eELx6mQWh7U&|gGW4zHRp&#pWuY8elzd!E(_lTB~|+@N3(_T)3)EI$mp3`MWN zYVBqP(Kg!^82C*Zu}su!$MpzNh36(1*&}0%J>fkW7+@K^rvo27M>xAth5H zJAzB}5mXKxP8>($k%2=K7-~A8WH3NA_9r~xY(+P)Cjl=KXyO=Rl@Y}UQU0b%2)hu@ zm|6K|$Iz|vLZ$%1^Y}yre>5O;_ z-lVsp<*oMvzYLjc&2#(IN3gB(^UolL$>(*fd!Yp=`eVSSSnVn;!^-g`1RoTw%C#X~ zxefpBRk$17-?uwt4xdt$L*!l!Qb^VGt};`ZV>)N9$5Z!CSgZ`|9==3Kwbpe}suatl z=&zI;UlHadWDdB@=&q4Vm18pauhd!cA44ZUhu$0CaUZL-m9$PBR$V*NtGeX+@a;)h zVAVT0?{7s1SFWG~1;XQnY`YDHXN};vICJ|_5?k^ob;ZhgAAC1Z&4#R{fm$y`fT*a; zyS5x+K*L}*&gL&7d$d{r2G?_k>Ai&UWY%$*0d|0bsv&G9P$c;hi=ly08EYtZRK0z8 z)XjSCl}$dc_Gny#2xEH)O@6@-VN*cq6vJp{9R4I&$Ywl$TK0=JexB8kxNRXvI{Y)0 zuUk&(E6)(ao`~@eDT6HGh#Qx^x>XPZAxPB>fdJzZQKIy0`VJ*pxcKzb7^C>MT$!bv zcM`W@!0?hziczc2FshB92fu3Z1eBC7Ac)jS(icF?)|K27KO?mL{#8U$_#9A3UN(^> zTL`z(>IShZYUcFlwV9=&pzB%r9Y>!LSD)((lr43*7*Y=0qUb#`C(@T8k;oMy$U-8n zW8qW=dMX@I=1;TxWDxTh?iyvSnZw$FIx1t;h5?h`rKEQ9O^-bTpmu-#t_?JrEGqkH zF3cHkB$Ug}qbJE48aFAM_ALQ=D&z9hIKIG#NkNi`8J}`5A zcx`-vJZGE|_(Y_ji|CPt2q8Ou*AJ${GU>)U{^7Dw!tf`JoRFm`4Y z#BJ2Bs}Xd<0BN?40Bnw59*CZJMj%-e;}7!s2-|#hFxLL!ANO;%)bs>_NNHuY#=cgC z4?e@F{^kcvS4>?dKWrJL`t>8JFJ(rUW zZO&*F`!4x9+}82eK59pvtzeoAc1+?ipeJr~RA)H-^LI$ndY@+RcFX16)uj{l`fG{2 z&J-UCh@uS(=VK;QwY3F_rY3gyI8kcq-lKxe(}iE0SO@qG+Ok+aj@lS&(ngDG68K&v~T0jA44# zCn=7ObcxW5yHm^9?==kJ3g5AOYzn5n(8DoY+Pqn74JtqgL#)4#6T^ip>T2%$XJ)@L zmSB|#*~SWDkXWS&WxsKzXdCxjJsde#Q*cIkiZe0w*(y9{j}qxyK~4l<6XSs5)`2$NEhd0KJ-25U->=MrY=+WktGj z*AYc!l{N6BFBf$pp|L7%*l@CK%%Y`5sTB9MSj{|t;h|6QuFMjowE?A!sYHY$ld661 zhpaeqU(Wh!8Igge7m9`hw~ebtXH%G~P1LqRMN-(dr%MA_`@E8uIMPnP`N$mhLd_n` zs|&pQ$+z%pi4qdQJM(Y2{WGkg)hb9#cMoMu73lZr-$?+Y+6&DYQlWSHaugLcC=q#U3bJoc&Z(z#YqA-hWBb$dY)-I9uiD}p3TG8*UJWAyQlfXX0ylf%^0{!KIfBsN^qR;6h5Fh~mOaq+7 zVf-@HnIMG^Auh{b%y%o#&5-2$e%JGeZfbP_cJ45nPj;-k*Y}jP6Iau7vxAF;#LG<@ z460{%JZqB5P%y|^s~OP{^gMct*k^d<%AUM1XlbG7FkFvl#Hb;DtPsn9`$N#xFitO~ zna{B##@kX!47+EC$o6fB4?;Ft$o4S2C4Ahpmgph%Xs-EnGVisAdztLkJQZUk+!w46 zQL(2GR2Bjse06WZORAjFi*U7GxAXd)w4lwiZ*`=l7w_m^s;%}^p*XE1mLqp(=-HIP z;<*Z!6oZn`tYQIkndNnf@2ri3gNwzTiy%l(dv@%t#jCWqcKC3!@IsX9_-{SVl?gZ$tOS7c?km7q6Gq=j^v%6~*ePV{2O3)?P9Q;ksRp_6~+H))fGo^XQhwkMTXx>`m zdAnBT{_wtgdb_j4nEg*gUmK_=kM-nW%;$CoYyb>* zv|E{}%2kW--Y@g9`#hy|`K8Y^TZ}aPmTv?9K|eBABO^6TI@A9Brr1W^UxPN zpgFF7l%n>sUz9imb;=~+cSM^{O;mF>3$*Z3Uwkk|&yu0b zo9x-PLJ>4uOA^;Z5j;3HczbmFwl`ojn45NQg-L`zQE+5x2d1(=5kr`ws`Ak}-5kbb zc?zCsp!kI;aqoIQD5}Gg+12ZLT+NXhaT7TKp@~2X%rA z1FP=55!w7hB!rIfA|%YgqwcORX)_UVxt45!78}cp)y2!@dF%GIp-tK^R{&`uixZ;< zm2sxdsW?gdp6OJ5@7u*z0{J#56T-22&ATN-ved=?MCbCI+k0N#HXT!MjOT?hONT~z z>ge^TBFsQi%8B~)aGh&tHWPP6OUv9!m926~0W-qy%di2pwzc4I z?%3r7lF}}rav|iW6nWHo1_rc9ZuVydif6N?QQ;sgE7}arIdpm*E=!^@L`H}%-6qmw zo0TLBF(5QRxMag!aZ8S4|AX7et!!)Cnpg@KVRRvgl+5ewzLc&zvg*P9P!hct{~q5n zXBJOhv8(a72M;7&GV1V;7sQ0Zz*Srvl3!LOM;RO!KVQY7%rZ(6K9CmnSwD%%6>)Ky zGQqr&r|CzY)RaVt>b(xkePMFM{BfImN~&4 zMy&h0o{F=dEHGrI(=Aem_?cv;QOpJ|uM;;tH8Z)?R@BfB&4|e3I=hTZ3oGU0*`sr* z+hiE??C9f$BiO+c`w^kK%ZAux$>f3!HP6LAPHNj}cep^OhK{)E+QC=kS60oRVxRAW z?;m6vc|LTj@gL;s#yjd;L=nf(>GTW-F@r9(zSt(7E;Ys&)$LEu(Z_O-+iSvA*t(Jt z_yF>uIWb*L#kgiL#i6)1Tjlk*Aknj_Ji!13ZT;J<+r4s{UR* zs;H*TSCEgsB;(BQf+s6ObGNRp3KZx2T5o4v4z%SL3mph?*J>>MN)Tjp@3PU=9x~$3 zYII=gq|2-oO@zTF_j_-hkgg&r09m z->HQ@!JE%iv*fpm0_{AqJ;!0b9ZBo^B>WNh0`~fadFN_|^^}~s_`cuNDd&kCi0 zQ8iYzU<5$!#yqC=jsPwSY~UcUPAAZ!PXI?1v9z=__A%G6j*>A`N?$`&$6V&97@-;t zlqm;6e3ADs7IG|9!p-)n0KUt)NW5={drVAoMeVcD3QHVaq@2T0g09;RfnHu!apaD_ zqJe?s4}C(WVqaa$vd+%}r0vwL#V5te8OCK|c@$kpo$@ASxUNXVp$XIT;Pwu-s3?d@ z(S~NjC^X%NG*sbu;UKo*Iy3rZBhAHd!``r>L8Rqt?rA(j{1zmF3Zms=uQehh9D<}Q z^$KK?@^Bzsytc)$+VXjY%0(FBq@PMZh)@iJMZe~e>F6LL<7MBX zzC+sQ|wOsll zCmJO)TukLKMj<1TB~O^9u|)y*DH8QlP^^=X7o?CWDhA4r$I6ZGB&Z-zK+WbiptONg zl@o-4?N;5yA;^Wpr@xG_HV`0{u;KwBhmE!8S`lJJ2M6x;&^|)dk?h~(Ce`cIwHNW- zX6Dj$vW}%eph3fab%zuBT8|yn{fa{WRj_Sof>;wfvj&-=`}J@e7QY>tIX6nsd}5&I z^)MPJH)Hz%J}NZL4GVQ&=ph89>ZB9(j7!(;9e!U(4+f=*kBdXqOkdnWqr2O`7@_WW zuz;B8^u93ztQaNfC~+bJjjo6eXVq`-GZoo1Y)Vq?-q>z;U6Cu6BEr6>saQNDN>W=v zu~21G5gX6i-`=od5H}%&0^_r>+poqVuwjV^EV+aN6m`Fuxm0C4a|i>DKF9225I!}N zpvjhou?wE$7}IA{iJk?EW9#n5viAy&F)x@ANoC16dmUfbZ+kglm2b&w?ShDdMrgh_J&hGB=?&7olT@IG&TvfzVSA8NTFt)e*?k2th+3Ly1MB zOAFZR>DEbzMd+b1CPB2x>O3Mdy9ZlWfQlo=%{1ZE*K!u=;Etkn75{Fsi_N{PbTft?AF453GM!@TAC@W3@@RW<;eVPaU%uY-*UM6fWNU;~s zyrWvc`Z>&pmbCcODpKO@bVG;jRG{2645QNGUMBFw(}H5yc1%fTU_oYBxz!&5c`qWB z{KTsUf6XMO!R611(Co#q9xFdhez4AhvWOsXdTHM za${3EAqRPFZYj3MB4kcI-mAn{x>o(pK%#S7IrcX%X9&uED3BPl$a%1GxQ-5I zh!?DwolqLKo7&)6bhwM(&`5V7B%m$cuf-@C`B zye3mHWk=-@iRcaV6r@oKHXGztES7=AD7^aWQ#|zn#Bb+4N^F(jOv0og4ZYK7jhk== z(^}ID3FC_mi2`2F)0ER7$o7+FcBq^+mc*vVud=R^$WTC{>b>!6!R&dgB5@j4ZWPbU0`UmWy{O&zSk2*ss@f<2k?x)AoZ9Hd_ZTp`z zXXx~P*n7^RX2Ms=8%2KBLN*!ZAf8KBbDK?`iC=*kcsjU&kNjGuTSrDFKln|*@9A~- z2vTLSt9yc4%8;wRrR46_#^(JYuEvf@godA=o=ZTXE4^Q&#_7z8X)Ryk8*h@JI7mwg zZNE>_iG<3ujPNf}^0?`?rgeuCg&N^+tP15%EdoMM2q{D|xJAo@ z!oDAu56 zp+$F!aYaMt4x5WJzu&Q-%$cJf@4;Hdze$J|^)0~1#q;^}?MbGa$Ku!U(z(Uf!pRe;`98@}p})VNfF1WUj8VnJdK){3 zC~Kii!jk%-$JVZ^*P=$(GIh$FX&X6b9jGq>`%X1qp*@yQG(If5VT9U#&dRyB7Ib!) zv%sxtATQig{)6hl`ofsu0)q;SQxbG{RNFvL6`Fj-@IL!1<)Oy*;vRdtYdsYqW9cu- z<+FK8m%E<}f-ENLx*Z;>R+(*VUQeeV`)k?_h$9%v9iryjeD10(Ngz8!*pu$HYHa7j zrVdftx#=n`siG!#AZ;+0Mgx||&Fw;0z^%$HsnQXumzDcq%+-2K>PKn#Zc{VvOYzfq z;*xg;rGssN>Zv3qO353u`6P{+!-4gk5f3L7fX7Ob(F8jeM$@8&^j;l0G4;uc5N4Er zGF^Jf`g%K?-`L0NPbY^`V;J%N`0;N{W2Xx`WnaGyo7qLp@2nxD&0ni8UFOew>wGHJGvq_bRl9n>Y4%Q~ip7uCNS6M4W`qAN19TT1@oCgcW znveKURAX|dQ|Zw5tkTIp#@`*^&zJaG`Ljcf5Jwa|*TtSS+=I2qBl?B)$8IoqB!>V9;;c7>h z;oXJ`Q0nW0J5J1TZs&ZGdJQ_bT}zgSN07j9>Btd|C5h#aNif)Ryspd%!M{*K5P=gI zCT||-C3uEg@~Z4vO|?!ep&p1lPfSlZ!1naGe}1a4((G`3ausC}&F|6*O4GF$8I=6ZU?5#$!~+J~G9a31i#NIG9lvtU5JG<$-K0 z(A~95$4w?tpwhFHVHHJb6JT``E8J=Cr z?uu}saz4JBzB$yA2_4N{LtGi|55<5rhm~-G(XT=Hu&-}ghK-E5hPbSFg0J;G%IcH6 zTzOMsNlO;p`e_NDXgcko=|1*7xh_zwH)JL)=25=p*hM7vMA}1SYe+LRU8c{foS)F_ zc|LTm;o!7vXc$SLyJU@D6Fl-j^w>HerAXUb{e6KtB{)Qi4@sCD+{W^T>yWQWyyVX{ zJk#6ET$@sykjKg~F{~ro^8G-v1}xj~+W?T{kkoY)I!kPFjCR}dg^T# zG;dp33-(GI@2r06Eu$+MEj%oTrgQi?KPwDOdJHB!5m+_s7q~2tXsI{MBcZtu8T8+) znUKAs@wR%GF`&7@1SO%kN1Hd$=^sF{dP0dJ(@?x+1qMKIP8pIIm2Nf992YjYJW^_D zzq;W#)0x%ZX$Y`9Te?(fPA5(KHbE+-kGn3L>rhHHm6oy+P1}U|b`72?_<9P6%7v3NkAp)&;N;oeAtv4d`RKj1`cYd>`9JEr zuf45P)pPA^WDu+X=uFQzd(bNkyDvNJGb{8-^F#2-{x4>K5%k}e58y*~2>*^Q7+|JLS$y1nZbNqgX+CDf2AxdDd zoUL0*P1#VLXg1I$wETJ|mZ0pS-cp`3rmPX7a=a1RK#qDQ3+Hl;P50$oI;5?*mE-?~ zhc$(&DIZ}G-Scv>)Dd|lb1JM6B0ed+vcBeO{yf=$w?lzsjYZ)5F4nYO6+7<4qS=lp z`8=~_`r3TNXp(SD#htfTTxqR7_L?3`CB8b(8f_+~xRcLC>#-=UEx5YyI4@PM3!DhLhIGbgo!E$X|Xi+P3X!>9=39D=FZm5htoeT-7#}> zK~;8oX~l>u4VNF;N)v(ivFige_HqLDKSO=~q7(lh8)9Ml57g)1f>8czLU#TlBmd{w zWB+%eK7WXe{-3DN|GI$gzoR~Rs-GESjBuX>Ls{4Kl1u8VB8Fzz2x3EI24b2jpPNUG z$~3SVWkMihYjK|V?BEpp42YWBFNcs!1WW(!3)tG>ib=S0j($0+)U-JH>!3?U)!6{> zXR25&Y7MK{^r|w^G&`;6CN|kn-j=xN2CC*gyM(MJS!h3{#5KKmiV z*TVL8))M0K-9;FD_jC~8s1vm-)B<)n`E)@`W=ErS%KW%(;oPjKOxE&~vB7wh3BJey zo3Q%SxzW);J<^mR;ijZ^&=KL;(VBud>EUX9A&LA5CZuxU5!ToU)k!kKgYhxGrXu<= ziK4u@?6y&VB#m{mJNyV{r1bQ>?lOa#g1ESH{l8-pc?9baiX=;8Nds=_z8>kb@5LI6 z@Rucen5!iJ7XG9GOQu2k=*%~$>>sjy6*RD{FqX^d8qKQhheenf5mtY(hrYtr-{>Of z!qO*zczGjG^)vr@_T~wf!Xv1gzagbdKKQNb=pl$3f^J)1J*v*CWZG?mwmOyASZ#pi7-X9>@?>5R|z|Q;D#vTP@P3+0qoQ5sKOQAcP)e z-&q4=;q+w$nqh?HF=UK(!-acjb3;P)p2Ic#d-$XC8rP!0WJCFxD2Ig)Nz^mpH>ph4 z8|8}G?|QjaPlAC4ydGnQW|?(2VWGMy6qNDQVP_%6`6%EZeAOz+h#?6JgCJthu{upzLAdaHbPLV!R<+;DC6t< zqw3S<2YQe&!5UKM{!%6CPoe0Bsz!-33bB2bTX93JOD`z2Wt|5M;)zEX52vSTyP|g4 z(^2x9)j?n&5MUQ1r(W4K;?I&y0`|>C4_6a(+q>HV^T}@J2NS zX>sBE3%~!FC;?sRlD_Yj&i6=vb)Th=pc)0Rv-!bTzOo<6 zP67KgxBygKAX6yLI*rLn*gV$2%n585JfSJL12~1bLe=}m=9aFAe;2xpdJFXctAFJY zsSU?5V2{Q|JZ(4Xm~-$;Qtx4l#;g5O0$*Ta6yzrr5}4OZU&2E@h?Y9`D72N;$X(9! zeYnP}jkWt$eMtVVufgZ3Z{kYA@i+xU8dsk8@NDYtqzw*r^`(w?H6N8>8>}Q1_~nymx1oYUW7k>ReG)_EOe1^yW_9m_$J?eVbYL}lcM>AC z*AW7Cppt9vfyLBNR@CI2J=1_thpN_+k|!z`HLDTbfH>$jlImjzBYFEv=awmJC#o8- z2sU@S?einUn#Ha`%9XXmo8xEbgE-(ofDl66wWd zZ2i2X8H$ngcLp8r&(!cQRiCh=g#J}#1F3f}qls>u?51Q9WFu{=W>Q$OcF>D}Liquq zC#B#sHVw%Ivyi4f-SgmiY%g-fhC&{Rb%{c*O`YW`+w>I>eyQ6%;va!$!_7^< z!&+9ZZRhc7MvS`7WLfAEnq#Jjihy=7A9imOV4m5%jia%`A{hn+(sF0`!JY1+OzCa* zdeB^=mGK4Wzb@4a7QoY|G+ygOunU*Mj)h&c2Q)VYKtA9d1v3SEEuadEzgqDc<5I)V zv{UIv-sa&~AtJgWYY#0Q1?BE61QiHjucu*qF>|@yneqZ|Fa~l0L)BAX$U3Z4?}~@+ z(ZH%q2liJWIBF%R6w9YtHQ>FPRL=HOEryOG@WF)NFm}LFDJSQzp4yk!Dg_)oG%Pjj zY?aySn+#j>nR4e~zh>JhugA;fDCG*TAgfeS=7vtCcG>;5Z+LZVdGbZ7*48R{HpDCY z{u{=nOioAe{QamFuj!y1yq&f(z|5ITkr1L_Yz}*`^*uy!^`1{TwmVi`G`!xDZ~SFi ztiA&sfsJxXMjQ|p#8H!L3l_w5XFvVJSB4&8DW^{ur1K5^Rj#U7+ExLO`Gt9AJ{;xt zc=z`4GObPfLNYRPVsVMoY$CgM0qd@LTHVQmYrk7TxNC0)k(M>bjcM zzZO33(jjCriq?@vpu?LxwrNo( zOH=vzxabkzG7grMpPrsDfUMnbw<;2FDPy`+s03G6F*_rrs3Rw+p`|3XcC>QOzqK7; z;X68sRi32g2S3Sfy=B4CNb7#sf zVdE1y%*g6pW7&ZdpK?5(*0gA)VMRTE$<)G&<9|@GT2Sp4M872_8Eu!%hnz$J95*gl}xe?yakd4%k$go?(G7MUn#U3jR890 z3WpK$2Ro;iXcnoxZH5^GoH1W%B^bNn3kQ9rVaJ6!aEsx|So3L3X(MlFwTny=Hq*-R zRmsZA-Wr0}yF=^4BJXs@{QRyhN&mCNgYMM2*2zA#e2(KiWn*9xp!z56a3^b1E zwPIWvTBt|{iB*fkfL9joP85|RXL9A<#p*cN=VVJX3~2inRxesWZk=K)cy#IsEc}p+ zM~bXtUH)ck65%}O$*?HEg)1!N%cAiD|LO=Nn_BiuBdv|*skBo2x_7aCT5pbkA5p_8 z>dHL2eRIXH)8-yGg=3j&pGSFP)f!WwmJ}tKeIgMy#8iMfvK<;ncD_hlT(-0FjHi}T z=EL65wr&3=0hku0u!$>4{wmW0QoLew$MtZ{Z8pwFcpA5i5bc2NX`HGTlSe_h`=iOE zpLZBq^wiX?2fD&e1lvAa_p~#Jr8U%1Gq3#J zS%jd}v_H(xRY-}Od~QY@s1YmSgJwdWt)`s41{NYyajx%1A4AT!s2Te89}otei_}I6 zvP2VVub1@O%U2jfnr!21hQUJw12!vT5awpUV)c>w5m>==NyV1h7gqYmYWcO=(m7A5 z<=%9+Xqmf};l#tm_TC6=P^&wZH5>giH@b55h+j%)#z>ezEwg`3jI2?$5~CVezonXas6Kz1FHtU9PjX@l8M?3fZR&)v zxEmfKZmUrI7c&0cw*(W>c(kNs-hALR646XvKYzDD&;ShTc%ieGnKh^Oy%b)*RiMPw zm~*VDtoF_C!_$bB$OM;Uj0;&afc zBbmkqs{0eHWPaZ44>eJ!l%kfOYst6_qQnQgoT*wDYex8IGW3mkAfj%mIc;P4KYPBG zPzGD$)m~GiD_1X$K1eimDx9U|5czn0qPSt#Vf^PEu=o##o#if;2%zb0EU$Mcng&K4 zSv9v|A29LZQCR=!3H#4U@XzTGzySES6ZXHNE&j{mDj5Drr~CiQxQhRT!k6KHkHWX^ zzjLzSyyndNL(R28tP`tLx1~)6YlftR{4mo4KK>>U{=)0T^m#@;1^aWzwji1;95qE+ z@;MLRb%&Hm-m;Dw#Gtf+!jh zRgp1IttsJ3Cq)(2S_=Kfs-_Cu9@!77;rd97dJxWqRUkp)Czseyx+RLfdc`dxN(0tU z2LkFvlDkKHRb1>|#ac6;*bfp&2?Q|UuDD_u0pN>b7K1c%wuEA(!{_l0 zr2-dUjX)!!)b!V`?j%X)^O5y_JNPD4{xw?l!N zSZQA!)HDLLLxr2wmK0k&L_8;V zE4%CB_jC|up0*AkXz3{K+0AIvc(Uxb)VRcL z>3MLsPGa(H|Egow#Tqj4MHxiwQJi z34m_p^pJb`sPAmWMpGG~Fgm4V{BFfq{+J4xT^R`w-OA9PbCeUG7Ao?)iJtmbg`=O5 z0^l9vmvTAsbh?#2!|&sTz}bd-{5Zr?{Hx3v7i&s|7G>r?#oOQYnuwR>BJoa11_azh zg%MKY$#qfs!+Ei0+(96Ld4uXR1lV*C&W5@+f1dg0O<|p>)WQq?qe&EWt2LUEL=pJg zD5ITC{X_R}V^SN(@pq)Y)Rg3B-=79WfNe>x7XE)4_doRgRS}$$yhr$-@Ap6U{ZT|^?*XL;v%WsIbx4+U}eH~jX=a))O&!P*s6NU%B|a98?8Dz z=G>u(dw~&d+{+g`rBkjZ+}OrBndzw~S_8k0Uv_ z%;4|jx)kze?skhk?DPu+wQZ=bMQea+tcFDWp^-9`*e?Q{I2@Gg1EVoW0As7Ddt>QK z9sw2!>qiI`%?C;~e~CkZ2DFW$#^3!+M?czLo#!BFmkF!K2@B5)b{?lwH1P$THkj<{ zbN3K~7!dl2xWmm4fzRgRnjmNvO$*O}?s@m6t4-svfrV652kL1K(cPNGU+Qz3aDatZ z5HHQR=5v~402e3->bPh0#?AXx+H(LnQ7148R_)+2nwkI^ERs!k!h8_cGixe51gNE# zXt7C(KV{)|jWG0m;At70E2C4>{hyPgNI?x&NjN2a+OrN7_4GoqcEyfhnB*bMLWs+we_m+x&KHZc5k0P>8%ulMSb1GPTq`k`D5dcI4{WS%@;Ow&d zD>&L~eNOy|VA_mP&TIB-)HD3ghpQjWxC)=pQSJsD#9fWrd`4JoC8x6OB=5wl!Q4K* z?V$!E{)|9IM0Plw_$UmU6x!aKTRNp4dv~pIR#kt0I}H+}mn|j-qoYk}v+!)O zXc)_BTs9wxg$Ytz1uvV~LS}k#tSL`=v*uhU@ylB)*ztN4YHL^pFESs~DehCH!Q zP!(2tgW5Do>1s(eT-RJfd^yQiX1FPt~2GSeY2BFI*64^X@oZ(Wo(< zcas$1(^f(w2Xh-dy?*94Qkq@KZ(OqEY=BhurapT|%k0DG?KSidjGz7Jorw%uhb8jV zzF>YqQ#`W#Z`{2Fa3o2ZH7I6gW@ct6F_f5@nVF%)tP-GW?nQ_u_-MG2yz``qogQdiFdU0nxshpkH(>(q5@}tIXfs zI@+3^FcT(qSRc$|fi`?xJ$?25b6R=bEbA^(ITA zSl22bLlEG+M(yR!9@G(#YeBume53nqDi^-l|lDcdH!S~_9RwuLb z6wMdO`|_}wHbn~GL9)74lYZHqSAh>qQf9HHHx*;flDYO5>q`XviOGxpf|&Q!)=`R` zzhk}9mlWkBRr;RkW7(kQM7$-H7Al)c z>#%11Qo|1oGstL{5kajU=J%>h54WBw#fy7w&Ni!uuMP5^ulC0>q>~bcuH1#I+kJ_+ z5|4W(-H#JnMX~klbP>TFOtKHuL8M#xQLZQt<{x`+C!;q%bUzrve)NrgqZ+)hS1z|n zenI;#f<4yJDxvsIR2wUi+rF*YjX8?1$$xOyW7qR`G2L6tg)xVc8S4VTx`I55{$veK z@+@L4Vnw9&=qtL}-pjbjQdjJGli~|3R46Sqyr!u?O(yjDX90)PA+Z-s2cW2$+Y#Jn zOcC59CcHVwgQM9<(P*y>d8arg1KuAsIZk#HxZP&ELxY$i)1f8TQ7CS#4?7M8N z__%4Hp_@H`wq3V~Qkzs?q2iV=narP051u8|Usv4rEcMM!YiQ4pt`+x}X44}pJMU62 z4esVrPxO3=aKre3zP(7P{{&l;O%i+S_MS<7x@~rP$ezZejz^TYX!}Z8MCzB{pCjM zOPjXXa6(mURr{R-q@sEqtF&1sWyQ(lRjB`YNSNNIN>P2U3c`qcb@Pa0U-HWG!(e9j z6|++LYToG{@{znY%vO#+g>EiU|9ZyVrJhO^4+Tvs5_Lh}5|c&@$N#>kJIea~mOWRSQ@sw?~^Dmb_Tv!8L0f#x$o!KTBHY#FLedYCA4C zxi95UCX$&mk7=t%G1OrE51$m8*XNx|)HN+;9~>6fe;tf8d}$D@0OewLgz+GSLd)#& z+b<#T31i+1yw?{NXzLiIr3X;;ajZ~@pQVUt-d?-naM@pN<|1C;r_0W-Qc@K0&Dp zx_j7XzL$mZx#m-SIqEL_(BI24VR6{y*u!H?%h%GfjFMp*d9z<((XB`~;gs&MvtxNg zoPS%3I6hOhU!~60a>?|{!e7_7Dq^X%YXGk{-G~XG>wK4qcQOa{5luSszit8HuAJ{x zB{md`o-4R3=(*s-o8J5V+UJZvuboc6JZQL+rbD|t&AR%hK5$~pJc+%9q9i>NFYajh zXQe<*bszSNttt4M)AN095!+{G52=PteYlV|UJ?zS6lsZ?$0tov2Ux_=CsLeRdUpDK zw}&^M*3X1Pn`A|isMZ4K^Xw6kDE#46DBmlX+?AfKZGFfnYAJF0$7H>9>;9 zB&MLgi&N$zLj}^~Lh_5sch5`EpMyEx zmp)CA07oPH>1)|xbfwpq2soLSfuXr$_x6Bxce<@Q+d>M&<%yY+*Yb-!0Y7|`m<5~T zx4WC4E=zjrFPBb3Ud>>06c91JJcW>xRIhr6fLm{R-MA1{L1OE5A7)9d zo!y@qfBfXSuy}3TgPS=Q^QLc?zSjKOvhy_SkHM#nkm}?9L{yOQyyZ)SpJQ1TAd)EK zooGV)E*Uu9ZkI?E%9xx@x5>WxKBQbDJ}Ig*Cb-S`UH;kvhIpp&zDclI$o`qArZezu zhVFjR?w1D2BCMIwch{qKqe7O#L|Vc!$AUH;8lCm?`}FyfXJQUeSY0Rl29(kBgOW6q zQW()Jsy#WYK$I905S`Z-G0CT)Sn}uD!~7l%%Ja^3lBF!8Pt*=kNMK$?tD6r!$!*Fq zV{u;Fi|&%>v(Vb03P&(EM?ZDO$qof?qNs6r)Q@H9VI|9UP-i*WO7F&-a>kG78`=&D zia_55V#8!?+F@R*3QTQwl6!N7bVkN`D!+`L8n+Kj9Jnm5X`!_CCObJZZqQt{Vo-po zMeS>A!B&nsO^JBf&)pqQzMy|h71_EgTK|dcnJHA!Cu$8&3 z`K&Iiv~I5u`Jk$5E&K>~ESpb}Y=Kt_|6xOzQ$>LDP7a*o#P@iP-o|w?b>Tq`GAsSC z!@K5W_KH7c_Ua7bD;IUD9B>f0;C(Ywd8K}`%=txVzd>lOc0 z0u`dJP)&O+0$;9wJf|6jvA{!+*0pUFM{wZg!O8fVcfO{i}dMFeu$c4*qP{32AeP*OGV`72g& z=NORTR=#FdOL;0uS`t~OJPP9iR#w!2RZ7RBc}$Cq_jm>c9|4FXR*K1GZl`1%Ib+CIkGc- zo>}}smw=8ryU)}E%oDaY#37AG9B_pCDT93u4veo z&lIM5N6o{K-5RcFI0CL{Jdv+xA`0?q$7UHvCSC|vCS6s`5Wgl}$h>A{YTtzYrD@nE zPY3RMIv#FRIQQkddE@th(AoWa#xI9Xj8mE4f){(Ive(>UZpm2?({APmZYAWfN`xWn zmdbtHdJ*ykU_PcyIyH1NWz?HTeLelyKD4xLZw&*dA($UqKQqVcBQ`HXQlQ|koZpbz zD@NF;HJ!$most_UJ*uDalA^Y8%4;`fc1nh(yfrdv_xt&$_KUJ6#&A!&GQJF4JP*qo zv^+VtH;*2}6kPfyUp!oL7uUfTl?lx2{6wIzAQ|g<=G!nvUB1UHnE*J!E0=ux3ZKYG zQtb?v(lVxzki?x(u+kchxK;qWY~q~0Zwz0=2)KWpk)(+rWy^Y^eFwWoYjIxcSS{3u zX))VNxZ*4;cNih30ib+G_fuZeTsSkcv;}mmq4dOR1r2^k905_W&PN*;`_b^e^YV3w zB=_yrOItV7)g27ie^@5nF%$RBP1d=d+jfOaFuk=+0JeBndC650DrNkxv5jJC3uZPD zuhfwp?r^I^Qe2l~oJV8A8i3O0iz!?g^rbXbT^n7Zt)Epc%5ut8fWiT)6oRCL| zVdjN}er6>XdcgQs#&L>y5+Oz`x5L0TMUpUi7{*Xyo0<^8p4v|Akw+2hVSbTLNZkX( z$>5ypkn&7nvcC|OAyqgfNS-c@ius!({bm^mRDX6jV;@*J)-r#?x|b+BLnR$txRKh> zH^ZqgKv(aPbc^KXCXfc-Qr81_zF^Ks5yl_3ioGDF^$|OaM(Tp?`sEu3511{}CRV|u zCp^8FN|lWL@65cf+CELxo4ye`=ugA$l3zHb47*>8d@9ZzUA+Xu#UXG6a|YW({ISr$ z@N@W+M089Jh3;wRJRv9bN>NuaU!PWYR}jMo1)pyo)IHbci@3}XV1VSw)ZoG-G-Oxn z%o}^y+@U+(D{mM&zTLu&>an+Z`2zzIdIXSNg|fP+ri&tD%ZFZ>@`usuQ)ytv|bJo)s07^7v3>VXvAj_^ATr&fG4sY zLf?+}*XaoTM>%#W?hLYQiaZ*G^jub zut^&T4=3r1sZTz2$R?B>cdG<`cqv@Z>iW9Z=);+#3RDJ07!pyH!n5G9IyI&(bq+dI;%8iFjbFwc{zC9Lp(CXtx=e4L zm|lIxzTn^mbv_h&4{#n!1s`$ftyTt(m;UOeN7e4pNA@tmVZRy*kNO8X0Oo&H{IX^4#1D?Z=J(i9vXMd7dqeq7psC`m+ z#_Y&molMu@vfR;oHeE>}?QF zC)?oHVhs?a2QYD0Ru)N0N|q*!p%+II6OJ+3cM+sE?0Fo^+9I->5>muj;QM?de7<26 zaoFA!A+TR5`xI?sC1~;jb>UifsIRG&cI9$aJ?Apu!HY#}a9i?2M-x4L_evQc%5u=S z<`X+s=aUyj?#>E4v9XvrCI=8WCWs5cIFBB;WK&+3aMd<=;V+)9j~$TTfLoT=OpQG& zwDSLD1k?gw%+B49mD-n^&24*)S5}vACiyhAfL`V{R z<{Rb2H*9t|RB8n`W;_l^xi14ro`W_8Q3>yG>(ZiT@<4Ef%ur=74HDG=qqnX$c@x={ z_mbuYtYP>kt?||sAFG$M?x17mxLGyRX_ac&(qpl#ffr1mMasqtMJikmtW9g{Ah4`+ z5?Gh(lsY>>GaKXvxU5ABOKV@{av#jyIf_DP4x58K793|i*3QNbX~P-u!hV?Yz+Viv z{S5a?4wi0|>rbmER45!c%m1}oM}b(6X2(tYxMCF#5cKdx|W4lh=uMi zBQENHPm?9-2*O&3p2fPj;XO@(7x@(e9aIKi6x8CXEj<*N!Z#U+x4wvx7{A~T%~}Rp zBqADAUcV#=Ygua^C2QUx^k#i$KVlAjS2k;Mt9RG%)Zm9Y->$oq`}2)&{G{p)4NCJx z8u}xyARA}h4ShuIW_%dsiLi2l@PqP>=EdFaBk}P5x;>En$wdhR6Q6F5i7f;1=M3_* z+sN@ITASRUn!V`3bga|mh9InAr+JjL#w)c^T@ciODKnI-v(6#5V!Pp7y{m*ROrzYy zqqS&-%tbBHChJq1VNgaH34f7u*3${tga^wO6r`KR@rAfGoi1kBnIeC|!_j!dgzR(B zfHkZL(X-Bmn^B1jlUY38t&WBh_tD|fiJrUO`rrq_xt z)-Xg3Ut>}VnFOrSj)4`(gr_(=f)v48qAW2HgY`RXCI~w0%7Xz&yqS2Yzs% z9Sz^c$@k}X5eoz*VTEw)DGUl1Byf|+h)aRW7N8o~VX5uRJqmsiz)V3#EK({6My{aP zAr>cuWrb9o73eq5z+mMjHx#e=KIkY#iIuK40k_;ZQ#u-1t+Jy~#Yq4wGITHH7mzUE z+0e}_5hc+_VhX&Zl)~ax$Jd(0;V(^e=>u)8Kt-E$wKOn01++kL$szNdW>8`{Y!Af2 zfYa|*z30)t-!Th0UrF9(?W{Kt&U{2L1)wN_p}STI4h+lArG_kPwl?e_f3nZf1MM28 zoU=MZ2|w$pRCYIyRVW(y>6;n1#FfDP9P)s~&@D|@QBjh)C&ON`5G#tO`&R4MSwXE)l=yHBgOG$jf_qXyY=p>at-wYXwBi_g~Ion`K zZ5R7t7>g8&tiaTtV&GrWxkiP?6n<49i78uC$Hi*ftIiRceIGZg;>fX5YA?yYC>^=7 z%sjIR54IXjcm7%dWp;CtQx=h7Bt1EIJdRLiFPN+IMF?)Z8?#`woDKYv)A!9`Q^fmD zd9`sI1adqdtBxTL?Nde-O${!6HQaVl{VPt}@p5xvZOc|Q!SrU%Jeg%$?$dG#0YC!J2w#rK0!+eg;90a~p z<@6qn5v9BP8HB`RTS!uy?)H`BDgE)%V2AWzvo>>kMAfQiCEqJGKoZOp1gcOhm&`!R`(U<<zS2~cLUaO5Maev#V(<_r*?BK@luqlUxfc$C)ctRR#R*Uf+l?dVyqH4cXgq4rS%7$ zXu?w@LM^78J~1see9Dz6=5AR$V)9VdPE7A%>?r-&IzUwHBAx>*xI}qr(zhfesUVUY zaY|N&k!*)D2(w+=xVOx{bV3IZuI=~@dCRe8!Ui0faRn#$q{c?WtaeGsRc;h0MQ{X9 zIKY8&_r*qDnw#{2BUe2MRiHEGGxF>OL{=vS;8AwT`rbr2`6cPK;^A)eyP`N@3S+ql zKi)_iM5Lj@3svgyWfbys&~=0Ex$Z?LHoiDDn?G!j_8l8%(KlA?%1{-SI|SX9|Vqn3`Gcp)NyJI8+$%K2bf;} z`qR$!Z}wU9Po2F}>P+-x+a%qgZ~RQQU3?4|lOjH9s85q?yE__J$?B_ir9rSgA^)J(R3Duo&SEpkt6J4roNw?=eGW{;Ap8uoiD#;ZnSc6g1|9$k`VlamHc>{ygz!Gs4+lNi?t=Iqw6;ezkR;rhABP zOld-HfutY3WFRgpsngZtZNbBvv)W}tqwJy^a%0$yP6YrB!^?#AIod|ejD>K!-pfh|HlrJ0R zeFylf7aN`}4fucnhLfc;!+&KR+@3YB;A;Y}&BKp8VG6s%-~@P(l|c(HBC6zR2g2BS zli+*pU0ExnAfbE-x7`co_#9ig{0W%Xce{GZbZ7a_FZG$U zMG?z|UQiL&VMZ+`ikwr3PRpM~MJNr`JbFtqJ8G{FdxUzos3QS`7mlL=vd`{&-9@i8 z*9dlxW7nIrK05A~lpnf#-N{eqeZ}}K{DWY0iq>dcc)G{$@9r$VuHzD=%8j$j5(wBi ztr5hnR+<@8c$^~vQpQX|*Unh2n=P#|+_{DAH@tvFF_5SvG!2TO(`IVHCYoM@@QHa9f1gn_XSuu(~963m+ds z3j4EdLb}d-%rbzEW~zoG6U*oPO$;bkUvH+H*9cB`Eo1eTxQ!Qk9q5rsP5gl?$1Rp? zY%$QFGY@xDz*4G;5=q+*Js6%bbE)1#&lV%8atLw4>_DFOyujaV9>IE>>sl$(=m>XE zA`Iu&%3fsfGEM03!HbsW$JfQ876&ucJi)tXP<9Wsq&uxkkNG%G__N=26P%7 zx;Z}mzGk#f7caK}GxApV;F-2NKVm%6RMBn0@+n{#f0;69)MWdBypD-KeaaZ6^W)mPwSiDPka1d&G3Iu$+1r} zoa56B|J|nlPZLpp`{3VhhO_;}QS+zkf$hImS8QBM`}+zTn)gE`!LtInIHr$p-LH^3 z>2NgKWoeT}HIj%g)q9vl4XlZ~65tVU0x$Fr3JoL*g+{~YKomL!Q=rNtnCvEVi%}9g<8jdhk)2* z#(S(bzd_K(mfL)pwuC}J^_uv`f?sWOgILh7A#q0BAPq=Vq(*51)YmdD7RV+E@qoDU z*%yOa&i+68O5f~x{H?E{`mT)GFTB#}Aw#Soq#C-sI`KkIga##~;@H8>1{1N;*yuY=lHS&CnBjMXD6i@sG1hZ));@D}Yw5+1h$|us%*zcOX5>p{)tQDT;SIEx zyOi1N{XTDl&Our+ZCzf{5if@icSAH^|g5kZj$ ztP*EUG9YQF4LCs>^V=E>V31>c7Q-dQ0Tp00DWSJxRkEtFSm{CKOKGM}s{%pU&Aq`Q zgj9f3e^eV_QHxHh%LkD@vRf#(>hvIi=Go_gNn$~eO!Q+?!)7N8Z2<<|P=3d*m+R?T z2VGgNLZ$F$9NG#1Mmm2C{cNo=mT-@@01Oj!z$355lk3tk{=#LN9bAS*0ihuJ3o{qI z9E-vX)c1;6PDq6n1$-RCTZTD61s25!MsyBSA6CQsm$P<*VcRmz4$OimN+3;2B=X~( zwC$U)K)tBBIDOR#16kGhWWcqVO^@)rkEBlQZBfQ2b3M6V4Awo}`;F#Lqh#){F*H7&@o4>AD^VEHRMAldnOE!M z8@xx+5`+g3qe7iy5p`bjUAn}<1}N{=0&JN%TssUA5y6G-K zc0qwc($OCJkY%U&Yj`zCxa*`wSvD$Mk3`_I(c&U^i{QTet`T0EP|v&z^j|}nP|3X(#+9TPwta}- zV@N^m-^((yC(e3Y*JQHuwUZ3vD<9=fz*$pRCzZj7UjULwH>1n5j8!cw=#DBgPEIsy z+_1{Zaq`sV%gr6rr}hlyBmR*?Bet7r=(HIA#?uVd03%U4y{~MPJ(`Ex1A1>>o=YdM z+LYhT>pXlTfgJe!4FT~-c63F(0FNMRG<3E$~w75zAvR6Yl+L!4Ho@ZQq&HNyPf+@f^Wv6AGLopgG$b?V~dh zUgEy8U{&}cI1awi39NPLwNg|ok_99R zgN+)e5lk!ZDPH32{V6$R{+X+&$$Uc+dnBO%tliOADbmFmfp%g_-P}7;`M@sP(1X7y za2tL^XRqA0G#B&&V`cX?`qOX=G_3k-l;jc)Kw{IHcPvqu*9(IYM{eivwTlxoW)Mq7 zf-QJ@KzeHXcwE_g$kO{ET1A}9?<~H|Q;lyVNbv0o3lum{1_*~b^?<|x6o8(=xcxx= zEDuQ-hA0=sn$J8@*A#;`Vn3Qkx=TqYtrfUd5eki8%ufgOv*+p(N^(zk;6+mIAwRSV z;fO_*@d&TX87!kK>|4N3Jq_1^)S)myE$QuyDjyktn?<{AKv=tNO>HD{T5`UbUr`Oi z6g|p^JQ`2TOX>3dI;ut}@J0N2kD@t6H81jzA_jo5ct9dZBUd>RdTf+A-vCxsIkz~F z`>8X-191n%sMoVsShw%Kf%TneYA4Hi<@*J0r)ww3`P-8@5J4mb4{*xAWq_h)Bh@lnr_1SdmN)Cy5*#=qIlK^#qSA8s z3%@0l`Q>AU^yA3S-x7alrtC?IUv3csVXo|nOYDy^RIhD9PMr*OnHuebSp1xbecK|~ zj3?9S;GGxnL+3onunwf3lTikqPcUEWCvuG~TZvY{oPO%*XK%Ifp=PX}q{!taA;q6N zl<2E=WyMq4bcH2}*g=@zeW|lO=dtcvw95HpDm8%fh-f?CUQTouTaE9J2Ay0r*P~(; z-w24laV1)pw{%%CyCm$Ji*SsvOv~)#A)eI-vgG0#Ldy&`)CBXzIN z%MZ}!_h}28NV$gnKqFM>HObC}=XbuiX{%a9Mf@C9u~6Gxv7yPI^G#pHtOFnAfDyOT zjSa=jiAgYw4FaXM^P*y?A0hMa6ha;w-6sOndR^_w6=VEx-p?!v~t?LM&)5u0f-u+-W);RW$E5T;jHHGviI87 zqF?*XIKf=;7-0#pajapOOZq+FekmC?mHanEq|?(fIt zhKy%B<<#*hqE4q<%Mym!tB9$qEhHdz0P_qAywTLVu8c1SgxidBO>*n}s8UCFHGh9A zCerHNTJD$qHjPYL&R=?s>jL$#tvGe#IHCtF|9m4)ng9l}qQ2MJp5-qzpJy(1wKL-p zPq^BvZcc=`efC;7;G7GX>9g^hy;mnN|LaDM|_<4)XfJ~7zi^rFVCQ1UIp!H6edUT z?9lnJL4A-d{MY6Uk_Z&zhp&{Fg4L}G3mX8{=?5SjG?j|m(FL#5Cm+;m|E!*4v{W@&^{Y;^Sh7;OykV%(rlGAs%9>M31(_1CY=S>_ecPmnd{de)Ku#pNPB z5B(+?%*^?fxoi$+y^Zv8(-jXUhp^j?&a){YyfX zBUQOzhMv0}+2pLUhD7xZkWA%!aZiSm{KuHJpCv|mt18g*{+mmd_hSm3q!Pa0k8UQo zoIR#{suimm*@>eN9@z}7wYRHQE6iQH9=-2@Z-a9Fq_GX_vP!K<_;De-<3zd}$%lh? zAw0wQ)94glVAt*3uG~wc=cCBCYd&ioSx=rfw?Y03b$&{e(LuDxYOUl{?p!Z-M^@nH z#XhiK$LOQW&pxIAkbo0{JYS5yPB$){R?aUR(lJmDL7nseK(Kc5pjJ1Du)w#>n)q@) zuuFZ5-v>c_m~N#>Q?r`-O{gp3Z$BPio-|^7jsnqW& zn#?S0za8+~J`~fRiJSkn6wTjh-2Y&7-2V*s{0klbC-?l_q0l=l!Mb%vbi!CzA`PO@9*0M2h;3(BVyNDo z(GJT#6G&n#(q>gMy*>|E!a~-knhR2?IzI7AOR0s@yQc6W)H%*P$d6KDM zo%7s!cP37)s&neG(&a*5R#yqB=-6Rr*R_@%6Zh=bN7(?3h*PN1gO$~75@K=ck>$c>+9bv4007wMRB}9K@HT*$@RVg=8Wa@BrE+$ zbYa-;k4dc2YGR1-fM)4&X)Ui1V^OiE4Z7gZg-o*KS3(>pYOxnmk#Q`q$FH(Dqc#L( zE%wJ3ZwJImWL{HoCJK}?)XVnuD1Wz4ZjYEPcg1tmxz0}1bN$(`x`BzNyFa@2wr!%$ z%ZImQK3Tfw@X^Ly{qp9w*74#;`%&fse?t5bx%Osxbx#)*D|!Xc4uj4@aA>A`$pQ_# zzS7A)IBW9ImGm-?^>mD(I019j{$ze*S1fa)yu!r}2a6IIK;}3t_`X?|4E$sQtnjtX zv>Oj?y+=t3$ls0g)VWODX-`Y?U~iPwZF8p0MJg?Enr?i-!1K$$`zAs>#Zt ztj0@oc2?)tVn8}3NOmrP_PI0Jra~RD!_v~fbkLjGG>{^`KH3jj5FMMmZG7`^&0K&d|CG^_&@m?ND@LI54>gJ@=Y8aXA+&%Cc3o zL^mwZ>P;7LSStb|UZg%POv?7r;Fzq`Z)d$04@|&yPuN zy&v%uo{|TORd-9jO)yAID*^@Y>eUG9d-nSzDqfgM*`<~Txs|i4$Sx|Lb9x>*g52a> zpNb+X9^mKq7_iB2P0IyEQVdlm<;KV21&OWhGx&e=!01*P9XxgmOh3JM!<+BSf;+L8 zYlk;SlAL93EFP|_^4n$^F+29);;CfDRqMnqD-)R37wMG|4u?;<47U= zg%`!(Cnpi^&TXiZ6`MqUJV#I@#ISKyW+j`{caG0P`Uro&fzqf)7UhN~FnA1dS>Oh&()q}t3b8iQ9x%r~3DxScGVO&CPLc7bM}42GuV?FX z6<-G1;2j#>I3v?rX(yysh}3tjJ{5y-qi5xB$ln^IDv=?L!P94wyF;T{6u?R1ltSZ( z5*s9+b%PDrMAvTXRmdwuG&0?Mn9613B%a_X?%U3~Fz(d_c(Q-$IvAj>L9Qm~sUbZr37r`#GG`i8&GE;E8`(?X=n56yOU`S)l@#+;gQNiZGD8QOtQAg#2`SjhyOYr+Y`zHF3I8@&<^Syz8JHbQzypA;!aTu5c{QN$P(pzGJ-!9BVf*-3Y zCb?reGuel?w)JywYwgm%+@!PV40BzG-X`pX+{^xJqmnow)^a7qn5D=uTZo{S`7ULC z@|@9~Ol5JI2f2yj+)LTdsW0DqH&2a7DzQpdVCF;penTGeJa_ldPget#!gcdNK|F$5 znbe5~Sh|nxq?Yk5K)}1pZ{>w0u0Zl->$4Z1KIErab-v2=utk`=XuIoUTuH!NZc zP$!3&Xs%@Fwx;4p`+;4V|+IL+(zxa5w>SdjmPhC%64y130 zH$N(Tg~Y&$+c#5LlAWk}+fffT1Yh26`r%yM-;;E9bahltbaN$L>9T1WtES71HqOyI z^NFc|$?XOhQ8)Q)*A;T(%kD=H>b`b{HwArBikP- zCDQs%4(4tInv8S|pDzN2f7$$9${RH3LILOpsk36q{V;-UhyLI(5wrVt0fYz?uvVaBOI3;t8TD6Q8rqZj0GwB6-(LFGxgYL4d|g|>ip};?N03?TS>PYg z7knDcz|oY|-hYe!KeL9I*ctyxi~cbnf5e3SQ@4kSfRXK=jxiB8Cox5*PnnzFBz?pb z8GqXt>J$89kbZ-rm?G0}ZHm(Rj+O-UGPX9qN#T69GXK_UYe!(BZ{_&e^jo8lt(C2V zqMg3s@0|%7o9H`RIVp$<5@^y(2nh-5I~p4i{2ryI@Hw`hC;Z9Y7+L;~xBTG<{2Si# z{}r8oBmn()(fOH*^?ySrqirt%LeRqtD&7hq2%OZV2IV+TP!6|(mh!~Z?Z?+39B{za zuk9HZz3_M!Wr2~C488A8^1ZL|RQsihZ(t%nh6=5E?0|y=o9ik{_=W@wNek|IsDV+4 z3MrHJATiEL6=t}g9kK6ji9Vy8YPxBa%Fgb!vH+UL(KI4f!5#ytGx8uP(JasWW}7EJ zV3EVhx)gRqx$OPg>VT++p~U$<(Mbu!9#vSo*h3@nbah3_52TUJoMb%0Le>O(Cm8%G zSr)J0sq=w9yD@bMdvy65I-3tL3)Riv7R%(C>I%0n^v%_5@pd;aR*=`N6?}KxyuQ70 z7oH6;)~mWbx#7N|<9OFyLq~2_fB#!_{#m5>U(xwzXy+%A{x_rZFR`Y7&YkSPd3iq{ z5BwX^`A4Yce;1vMpMLNEbMEYx=_5c0zPLfbxg&rEwmzCSy0aqb02p3KIq$xEL)H)R z6FlkHd7lvTeM~J$qT(~~n>}eo87)M+V)%pY{ben)VbX?>PN7%~s zh6zzDu9{_QY_tX;{aM#U4RE+@H<_4)Upn|ozomWyNXJuyFG!@YsaS*gO5i5b9JKoS zw@j(<-)7E+&YV5$nJv<<@rf^4rYR-`MV%%=GpS1b8;1G%yqKG3<>}~+er0mQ z+Sh7t^Vpg`M8l9qXZ8NUw(-LEG3>t4cR*usq`G6}uq~U1Ho#nrdZcww@MY%#wneV~ zmkFT>V{+&fH6xW0wMO@*gVTANDqmBh&rW1HJ^rZslFy3Inor+HtM5t7 zD37_6Vi!91t^wD358-4hokwaCofWs!`J6T5W|gS)Ke` zidnY@H*0CxbT0zSw5yMT_YKU1(Q#Kvl*k@eck7|Wc^7;&-$&T5_d69U5cK302Gq2w zyiB=o-+9542)xPsRTaR6#@`0ab17+S4TU{t*lV5XK4a(82Ro)=t=FodKlj9p z|J&rKb36>{YpY)aQ*vF-&uTLrHL?zGQ&0-n*!?+As{r>pYR0EL=KiD zbaKgvqr-~m++V?xSoXn^65cVZ`mR(V(Lz4TX8n)l^0G>t9G9|MUHNzB?eo^og%;2h8)=KH+n+w?XJ{TOCBWef1RKP@P zHHP3vIWbuz$g65CLNjnk2(a%qc{ABrt8SS=95y6AGUEW^%q|a`6$9Aua4HFs0(fDc z`b(Bo8O4}F8YJvL@%FMnOajTGQ-(l0P{PU#C;;GDEM@DJJd$AtdO zw5FWOnfeywfv4ZJu3>!Ej?mt6Lc`^D!^Lc(uw! zQCtK^bzL6dWBhpARGeT-d#efk25yEZ1aQnbs1QHdJ}*kzj)xTxtlpk$k6^9FG1`hHdaYTqWS!z8cKb^3w*zar7 z)Gd=`BGa<-QQz$?HTS|%Huf!J06s!Kr^pZq3Xz;UaLz&MqSIOPtv=i>^Wg-SGIms zkrC7~e+*bLQw!RJ3Wq9BN_TyVcxnkeVcx&;mNw5Iqs-ObpI-#F^szsYoUsC;2$m+Y zmv#mWJR*5Qd7E@^I{ZR%hFy8g-1ej~gI9}}cJP!3Lb)-+HK{F!p9a7+d~J&phJ0J6y9wRH&qO6Y%VU^U<)oxGoZ=eLcnE+ z(d|Ux)sjJtRVCuM`8pk*3vRBOjsk{NnqVh`Ww2)GB9*t^r2zvj*HRm~JXQj-4$5@| z(H;c(MR}MmxCfncUxC;4fMyOL<~0mzp2la~-zECV2>=uxsD_UemdZr^&S#pK82DTr zPRz$8Un?!0B@P1?3_AGwa18-(4}Ml%YeS=!85F8y|8#Z2yhM`&oHv>-Zo8@i?EXUt5IuVKQ8A1g40w2JPo$=-GY%umejci6{ z_P>gT{>8faUqJ@g|Awlv|3NJOU#)2p*7~N#Q1q(iMowk~EDQ`#^y0?mre;q6*cUW+ za+EW65VEzl`{XpAlBOL0LSX2Hja|$Qjl~@F-9MSiKY8d`rt=r26|{lLvFvY7uAi>} zC&?lLQi2i;iWH1rL=AebdU?6U7{4+X&u#2Y*4ItHOqq^#!8H4R4BdEK^gcZ={gXvzrp~JCg`CM%sQbzIO9V05JE}Vwkta&b~ktT zfG-^!UO)H^i4kKd#=yCNUgy}~Dm%1@up0aVpa#Y(R<+t2@6Eh>&A$k}O)t04r&F1J zr^Y}r`$^cd*7&4LwqFY@cUodQ2)kG2n@X~)n{5QyP01)wrMzqhH2c|j3Heqq1uQsBGEE|nxw zxCLm4ehl_`I{i?}hhhyJ9-jrI)b@!pURD|-UG*!+A{QGa;)-xW7WUsgei&#p@{vUb zH<1Z6j$aq>1($RGI5uTaL_U(6mBU{1f3s3dXz>(rHy}mjrW&t9znPd(*uIY~g-!Ck z^-m1ALVCX|a1ZHWqeV-<{O5mlJu-u-$6)nW{zbcC3SUG*{$-g9cC=6rDyW}Y29tP$ zFuV3p*^xOt2j4$5$mXt^K_>+$DicqHQ%l2zEtQ+EDlkPLA{*3o@Xo1A@Av&XFpQFi_Xf*PCwYOfv^Ic*gMz4SK2Yr7z0+ncfFJ&}?eDybx@mwz9T;*?J8 z^z4BKYmNiI$LOlJBOoh=%JLyDV2&<(FS5USPBlE_rM!U)mz63U{54oeP7 zzKJG2&`9PJTF)Eoqi9&1&p>V2_vl|yGggsPBJ%HSC0?@eB$xI=QHs)Xs`~@{q#aV9 zfyux`96Tsf6IK-%_jYIM=}x7BHv+9z0}W3)I{H6>_ElqyP>blSehWA~v&ipLxvY-g zRn=0G(2vfSi*O*VA4oi_sz5~qCkcQNb2-BHFG92JFzVZ$9jiW;hnqfbqD8 z*X%X8oYE^f_Ue^75J7@04V-LCnki`)^z2Zdm<&W+zzSgvf%@#_D!*k8OJg z49nOD+81S=XBeOTI`cK6tg{Nnpu&;WNoJ_$_QlObV$OWY*s)BlnJ8Q|Z;w`Zh1jvp z9|tcS*ocpZorH;}6V(InlJJ(Fk+q#rG70v}mVv!; zt}b!q8j}#w#7IpIJOJDT$e)_eI{D}b>60n;WCtS9CLeyiIYliEwVB<;=pG(XZYqZR z+s{-kGvsO_ldew9JRCFXiMXdy4N8N&=FjCii^w;BV@0KD2cvBu1;aBznG~GBEuH zCVjl?T~6GnAD@7N;@L9xg@nd+B}%uZ?w$cj@G@=)fqwdSngEGcZEI5te;E>l3=k_V zc|S>UXK7He5gt}ZNQK^&zO$$pDGCbm#kHkXc?lKu@L~!a1}2SLLEAVatXDb-@x`g7 z*}@16g)t_rcOJ1y{J%y3j5nVykqx6fl8Xn9m<+zZzC$uJqO*&mrObaCy^LJh@k{WVK>B&rxcdu3bO=JO^zJO-*T>uPBep7#LXHz`Pwyy&@k6TnM*Ky4dk7Sk6R5Q0Y4ziL*N8R_%f^Fm z9RhUXqQ=$VoZnHuKH3@_kK=}Ij^oydxiESQ*OEje3kBQ1;C_&&8 zIkZ!RRe-?0k?BE0ETkTUNMS5>9Z%{XCjP-MBEU%hwO%9w-AoqJed)JYe+0N4oUe~l zC+`CYyPx*0qdJItOj}He_38^cA0&uw7GefEdgXD^DFvO?@bYzKNo95+-cUB>_EF*4R9Q0g1?eLb`|75w07w*l`ls zSeuth@_rUc?cn^Gf>8>c*fzyriv|5a0~M%{DKkRhAU$arF<_g2l14{R7v1EOA-Wmf z(&@yR)mAZ$PhU`kL_}_ifo9M`-`uy-2dk;raMlQIesg^6F(VKK9vHzOK3a~azdyXF zkXgw4vW2km%tfXz2o(b;Rm!jNl4B;6Vo}e~!qJ^bOQrZRR-i-qBvi^DvE;+dk%z<4 zxd|h%n~`Nb_gUWvt#~);G`z;REo0{C>e$b(9MiVx3>o`lbL^B25H=(CDgq ztHN6%pnFy!gTQtg!G(}(etprW=K<5KrA8AwAqy!~mlK)VP3M9vKK#u--+2+2ZecmP zbVsPJE;^-`AqiZZ7%#L27YZ_3EB@X=&pz;Rso0F2-pEB^lwFoUY8Nc-tIFWi_|V${G%HLXOGSs96-^N zqsxSu8hv0%R%Wg|hO&1K73M1Y>0aZ7ptWsUuGa!Ue0-hLE-`|OM7^u$Sc=E7Uk--4 z5tvL6SsUA0H8X-Ez(3lzEhwX!%@q(2NOnmOS_6cF>~^bVDP0napf~NngT3aGofaUQ z&*?x*KD#`bqxsd5gDO+=5!_r9cft3rR^U4L`>G zznI@R951~#yBD%W&Z>n_o3_Y{YaoJ<5EN-=ws55AW91R7O)Q#DcnjSF2z}8y-&+(H zNLZW2!VD}aWZ9s|+OmySf}D`kUa?Oj)NOaxQ7j>vUqiT4Cw6?7N`sgQLg~<w=@~wx=$dT2o~>Y!@yACdkywQ&F1DMhQd^%O?8 zyHKky+~(?PFXx({#T87#N^}&m7rdIS(`WM8oEYS)GxldjL-$3`QN1=Dye`b{&m=iU zgJXFX)-eoPN<>6w^m!-3#eG$JaIZa+zI^C0xrznMY~Etl_qzQTNpJ4ca5J~DQ}U6h zj&0mVRH6~-@E}@@`B%*@D{A=of>WpFlt_q8EO?Bjm#Dq$RTU+>K*+Dea1p^3rGg*e z;vVszIC`tC_T#pmI6{NdtK!lLpE&{uSpmOs?mK`zPOshLMo^K6j<8tpAB;?xt+8t> ztJ}WH;3eN{BYzLGXKYhWBYEAE15>R`V(pQE68d)4zodaw7DtqdA<{p;^-V%EVk$B| zLRMemG3wPvxYd`rcTf)b*(qpQ^aR-z(>&m6$QW{48R($JUFNDjm46f&-z#b{q&Mpw zsWmW?la)y;&cox;{HWQYapvL=X{sG`l1-#(89$I z_AU2GqW?`_6jUFiJm%h_aFPm=+uL|J5gUe?aZjV>%w1{fsPthF{1If>l(JJ|VJbeX zE}VZGj1xb7wchCrSu;@R4=!WsBNx(wJXD>0B11{dY3StCPXn`qmEd#$)1DXtWoZHd zyqARy$dfgeL zE;uDl_>+Bg2#SMqa$i+REv7z^BqsmG5Fy>dvD;s6;AA+8gDZLO_u^y7J*sLH zmhn0ziKUuHn`KoB7z(g3xB{2m5L`7ifEBR(-bZ66V&et zZgncliA*ZlM}&vm|E3IOgpoHzy4GQDH7^QZ7cg^6js-R926Z|>D4ZwIU3H2m)6Obr zB0h#gUko^Z@#(Gg5{WZ(CIIO_g~8Pa>;$s)cVr(@ub!J=Z8h!JQ^v=1WC)TBdIJxo&9IsV z41$ioltak$=9^kaNLqJ{@|>x^zcnBQTx1=kxdYSe$5$ zv8-uv%eLCu>@~&Y%y5P`b0vVawEC!N(YP8;A(P+@JLD6-TWBbA*12FVpH5dF5x>1M z@|@CeDiYfIncf^p@J7y>yRz*H#mN0@XjC+XR7hrprWnAOuOgynIZK&dI@ZUEUU=TZ zv@f(^iZcY7ka`^;+-g-sbKMG;?CzZ@eHT66)f%oc7ecfI%`6%g+!r$Kk4XA_8dYyg z9#?3O&LfE&4V1oSvk1+6z%lJ%%oLr95-$YzTBPUyb<%=890&!4J$Ie>aixm&diVA| zLK<||`se@U)0W!zKaRWHROk}MC)u$sDWj4~Bem@U57*A09G9^t`%0!VeUY-~Fz6fF zRPbaT7}GtDotsKK*gKYYJ>@eD%1s;iy0t0j{o^_8&_zBv(;>d_JQCu>>nqdV<71Os z7dKPzF&04bg+F8dl@R@*n;Q3aZ!Kd;V0r)8BWdu|KL`PVD4!G63t z@+R`@R%~hJLv~phbi@M+_Q}NY-=Zp!tAF?r+yBI-Kj2>W2jdDMjD>%q)n*H}`%V@T z>?3ku-T*jfUSq7kv_k4r{17($?D8pm{0NqM5T=L?Nht)4_y})xELd+|8Jo&1ABt^| zA)Fw>-+Oug-D@~{#IehfIi{?POy>gS3g3Hqoxguy>nwit?BexR_MtYxWK|h3;Z82& znObUzIlgfxX740j0q}H>#gk5y-m=>fXG3o%%yZ_>KZjV8>%h(huljg7wgkF&aeTfr z@}eTnzpmMV)h0M}^ZQRyViC*hhalEa&eC%y2wtiQXfCaZqsg4o`GuHRvKg|>=kEh1 zU_{I|E8ujN632`eKSp?fQ$9}sTgGS^&os%Zgf}sPt;cCMXiKjimr^MGPg*$7RDTtj zOO_$;z%QcW2rWWH^rO4oPp%aMF1z*JMKrjrdZ~T|5%9aev${lDyKb!HQ6KErvmVep zL!fdp;te-Cw9p)mZ2kU)CuDN=T;hcI($58F_;^P-)Mb)wPwfz?iRG8&i(1f-kp=RG zuQPhC07!d->Ui@1{v0HqvD+?!F#d9VWoQ?5pCFNG@Q*@ndN+{<9%eV`7x_f+``y)H z5+JjUnr({9?390E2AQZ8=5#=?SEwsk`50$@rElxSkAy=po zU=R~D{bamj$HWXPzt1-ptgW&o-0t`0IKN)Bv#Rfznt5f1fEwwKbmo~c@(fg*-@i!HnF=N-Icae^pLehBI&)( z4Lwhes%uE=y3OJ8@_^mP-QEagP*u{?o!Vf9E`AVSElq;Uk>5R(27Kw_yH~YZwkG(A z20?3qfrxHC^K!P8qShj?#GLVSo8S;oh8DID4I^VHyJTiX+9Abl(3m42_@Uw&++gHO2Ni_dj`MCYFhW5Dy z)U2cQZ@x0I9B-{T8QfSR+Wr$4(qeg1K`+mPkLZckX%7K#3wP1LNvjZ!ZRS~U1| zO}Z`U;d*^k`8qGRQ`=*=$r92(gcFIV>HR9j2s}@lVrKrW7}(`LbNSUdxd0XwlKR0u z_37@EK(HO@H_pZ-P3T{K-4nV<_N`0t6&NoXa{p$uyYXUoXRQ?wL5?UwA*I zQDCiHOI#i6wV_q{W{3SMu};UJN0)0i;I7RPJ`z|Ev`9)vmbca6*loUE39g>Zs6WDu ze9XB5^BUYs5!@U+%7f;R&DZFycKBXF4eRN#_~Z8j)1N*1H3WvLM2U#@cHg^>s5T3oPz}f!1Rv(+bGA_%{{^q)S`(og7$rF8?X{BB?TJk1>UeqD$qeAa5d zF(k$qzF8L3#kareQ^^noTA@x4XlN)92{2JoEUeEeblG)Pnac>Ons9s%Xik`B1xuzo zBQCv5+{02SK*x|qmyxbJa1xzYlA2^zVTF5#0i*P_64voW2JzXYb-`x6vL{sdeXbFw z{Ll`|&|sqr3K*$q6^ll8H~1jbe4vcpL0!CISO{YUeekSoZ&+RzSoJOa=sOtPgK_g| zHyExfKl?$vSeoeN?d+3l=EA<3DGw1C$u{YRy~ge{W3-==>?VOQ$a{dM>|iM9XY@C7 zq-oc7EBWXWU)U0zH}nwah&-5WVi|~5J75abxc?*CB!E73)cJewQr-n##?>p0Rt6nz zz+wOkP`Ny4&cn*Z-QGu{NBz}3ZNLF#kh+jc1c1W?_xkiU@W^3=tM~mocP+a8nm!Y_ zlPS*d2b}otuAm6yLG)xa@YLsrv>50}l0GgQ3G?Jnw;pe^;dTi7#avp#N16zV z+7rCAcejf79MMo8nz6Y#Ir<~dmbn~wR5?N#X8qNUKjlT2H^i)kQ!^i?AnE!#ccT+R z%7x9levq`E+y|2(lk_>B+*R!LeQ#@VKHS5hvNBz`c7!zOQa`0xbSDIkAoxoT3*okK zr&n*U`FbXGll;KNtZm#=otzGsB`S05TXD$ZfaJL8e_cLjGqpcc?sqLw&Czr~Y}4Ql zh{eBVuI<((h<#2jgYROp1v(wht=m^7p^Ny^h0-%g(PvEPPfwL3K<{AE2IxHRc48m@ z{3%O8{-c2W>;l^a;FyO7;D3|YZiUpS_P-@~=yb%^>u@|8{x5Al_o>u~)1p>rM;416 zR)2F?`4@$M*)0mZOZRe)K#8ZNlz4kxQ%Yc^dY4klJFdH!m4?K=jPm5+>G zC{+eHDFlaja{toX%l&mc<(WYrrV}?x=ncD{Tn8th1dbx~zmdPJ(h1WFD{kUcga!M& zOLlLrO4*cQduoe1YE`>pFFrGb-!bJnkGTKFi+#dWYaYig+S(xA2i7lhsi&C@YTR!_ zw$WHinGc)HoeWCi zgLeU&ax|=to;xS&gJqVR8g*hHUQn>v5Q4U%G;4N#knUcan^uoU8MG06!HaM;wP_nF zH~A3R-V*F|3k1J#0!ixv;2@zMf686?Ao6{oN_L&7k+>ok^E>?8Rp!BxSNN!z6t#1* zdv0QuPeVDJ$yO$|gPr(&zO7;EH9~G_T18m6&*O0-!B=;gsX&8~7nE*E&*tm&$nnko zyO*M=z`7OPynoQ$>tZm`@!2!5PS*g{n^CK#|D*tHvI-jS=JI`|PH~+e&Tjo8qys&) zzZbctPXuI2=fk+JF=~M-0x;6tFU>HdrW9>EVN)=32HmtTIC@T}YD8NolS0!B!29d8 zm@J;mLPY}Vw3NQLC6G_XZ;Nz!qlApLa>*Ynk_h<7ICGxVh_)n}EFrY_1p=AWq{m{8 zWzY$em07P0MS%YKppU!PdD@r>#h*kFG-5Nl4c$6oq9ci#i*1fhq_+eJLHCD?Ltybt z7P1QocmE%=qn{%t%wiO^_pl+PP-=EqK}(lB0cOmi7uX@8#>a=3~YiE zV+TZ9G2Ca($$$!#@9V=;LoNhoATgWAr}3OWC~n?u)dpWZ&Q=B~#@Po9VsYOpt8-v< zC3eu0RcE<8POh6sPG?`9PW^$?#5JqE?yKF6x0Eib`{KTO)yP~2TJ3FbIA7B0t228` z0aU7FC61w6>u zVupVma_Mea>u?$w)GjHy=fI?d7QC2r`?>BJSAv=l8<|M47OPl5%WDK z{%{g}4EkM3q{R<{3op$rQw9C`iZnrj=D^iux^%ENNI~BK?W1pJS)*a`!;8b$bL4;v znK`Fhd{8y+G1ZRs)ijB?U4SMH+q^7bU}$pco3wVPi%u2p+nqd}Wf1!?BbA^rZ3}Rr z`kKr@u-)rceY4lx1A=exed9vGO}#jjzpTYNu%Csz0DctR;u`Y%Z53UQX#D8&^fk}; z>_O~8I~yAyXh1?Ly()N_st+RsD~3X6bctn)VwU}o4Af1&y(QG;zdtxW+}P}a~4=}O|?TterA9niD1g@%dzne$#4UiP-!rhIMC=eVbmL_9-s+fVXz1hQ@{ zBys6^H$?x7AjgG-speWkTgHF*CyVxw%w$^e2bYDJ;qKk~9tI1q;nGpLo zIz!_`Lt9>u(b%Yl{O>YlVj)gOYVKxj)LvBn4GA);Oo{58o}j|S#3+`>?o7$g_qXxQ z^JC?uMRfwXe_IaIm`$0qWG$Z;?4UqTA;*JOsmozO`>*H4d( zxYHT@e(GXJ`74k{3_QWkuFM{yqG2-hRs`C7UT{*#3bML4?X-{D$qv`KBJFMj%6Ba( zNEXT@0$*7v>G?xw04LR**~H92ydb!+v9b~zo`-BOH4jIpLg*yYMv1Id>0DkH5gQM~ z<>+KUT{Zp1+WC`Dm?V;H@6*XC%h$^H%kjvLTg^iV+G~81Lff!Eot9+C^J*T5lK7ViSZvB^8 zIf;eZz0W&wqK_5xwDi)0X*;rdLIXR&*P+L(EC0mE489ZK*qP2ezlD#|SR5THi%49S zc6@%^6IsT((4JYl+ZHZXf^Q`GjS|;0Ppke!BRRU?9n$ij3{f)G6q{L|?pz6wgLZZ{ zf-r3I+{g6Fe0=}yVQ`K$1e5;)ve1XOFpzzd)`F06HYMTWbNW>3(Nto!)e}#QB78G< zx8D*=K&V)i2v-z(E9t^vmfH_sR=(csMoug;A3NeoK{`%VBvwo3;HBqZn1)t%Civc~ zBq%!wUq6`$T;ytTxC@?6`dC;vd>Sz)Dk9Xli?SvJ0@*)KS{KX*ef!&%>wi_X5Z-j?6!XKZ&_8 zWeWJJjz@GO&m6&l0#9btfXUcrcd}cE;)bLcR@92nE&{;o{D_x>i69KhvJ1a;A#4hN z-+y-q29;+|*K3HA>^8q&3XNB-po;+gI%d^H4C~B^-CVXC;)#f7pi=Is{OKrJxoH9e zPIH5g@Y*`~*Yj|o^3`@Hl>B1uB@vJnFwS1#`OU!G+2>n4kEIJri>T|3do+~;3Ot5N zQ}a*JyhAKvg1p2G5og!&L9D#a)-NhQ%bpz!yJiB?DqA$7|A;vUu<$U0ol~~wS4Y*+ z6iCE3Hfi{EAc`nz%vU=-VMD~Ck%{yLjZZUJ^??|AKLH-K`hvdijwnnT@{H!nSz2JP zYYuARuPe)&1DFd8d`^LWn{@m-kk+Xo-I**AZXSlm`ToHXoqG6Ure`(^4m ze#)25_rIQ}C#|!~1?s*3O3i2ls&e_c8nakdeF^g25Q{&rbejh|Ih-_wlwdEoDF#UT z1X1q6p}JBAZ%CC=G$#Cz1lI*5Fj>p zDl2aF{(c44Nd9ehJNNGL){b`K$TJ=#r^GT7rY0p2lM(DKZ?BGm#gb-q7u@S~y%S_K zoee?yDzDeeU|~wGkn4}};tI3-rCdL;OFh|Nh9bRQw=bVLL}}AGl_K5#JP)IDur8&_ zq<|nw4lW7?&i+4(TXQl1s&F>tHk7-(K->g%m3j8YdY9V=B6OU*>;w*5b=lKqf~M4~ zp3jbX@O1tA@O1bejmZGE!Kt~`e7W_fO;rF-KH<=Pqbio^Ae30FZq}I%UEsk9#!>#j zlCr3Rl&r)w3^wzORUm#~R17n77N5;P=Ucd81xX!3$L)LiMaFI#M-{iy;*JlQChh6q3GRl}%*>dmSYoSI6od-9qGlZ3_o| zg&l@)JG-cO>kR(uZnxg-e%L5^m|r%yD5D$|jePs;>Q>J=8(bn6P^GN=6@UWu%Z;5t za>hz~g%4VCFz^cjpM*4ST%Mrm)q7~P<^`|cF=gm)ovZ-+vmx-FNV?VK0v+Y_E@L-& zbvAhp1Tt&0c^oasQcH$9cSk>bkFR&U*!Joq_ZL({%wnMFc9{B-?_Rx2eRba@uHqD z#MTfk*TRHaPsPw<$xEU9`D3d(G&#FAAu6w7Pzgw_#FZiL9we9Id{nTE3X!BmmLp3v z)KdTI^gD(RCpwkIu%X~+A*XFSqZYx^RxAMo)7HeA|>Lgs+xfj zE&Uc(B&;&&Z|fG%k_jlR$tvc8C9K@}KvW($wJ z07#66NP2?R*P&=R8U?sSCcQ?Vk;<0yw&mRJw;O%R!*Dvg@33;WMHhMlJ22C*&=bN0ve-d-p?F&3W1POqR`}Ibv+0dFsiVCty*(hEd!^HHIjBHFa zGRnj0wTXk7c|OV_`kwK12RNUk3I+x}9}bETrHhR;P?C!v)!IhGGD$UzkWz<|hQI8Y~d~HN=c4Js= zK?V*y=5;{4WBg@BzCBJXRH6b)7GE2&X6>R4kNsAo-QUSIhfPuM@u=kxt^e+`Y58iG4WM@9 z_wSNuhNH<`;TBgP*;z-GvbiL{s8kr-t5+xAnojzORRx1gG{T+Z0}U5>i15cth}d&g zX^n%4@%hQoDG@LE7aC&~!uTI6zh16B8azM!3* z$B_ttimz@8Bmig^b*o(#%Ts5Ux;zegeYh(otBIka(HUlHap-us_w&_ikInKFiD)=; z7Pq}toB8AK%0qcP)@r&u4x6{;@ubl>5}`^*OM7=IoxA>aI=Zm3tfZWjjDp(I%AlBb zHp4#Bc0ywaOaXXI1Z_zTMSTf1d0pw{&lzfr+1tqR(+r6_Fhx*#3hA6)gy?4WUa%@= zt9O++jDalYOAagbPV=RcS#7qfjW|$#n~h%gr9X*ystw!RC(kq(s~FP6sE?+zIBekR zM~0oKi=Po z?-x>v2Y>j!b@4&6D743VH1SITXAhKt<+c8EWb2kS;L$QgSfr0`NSP^8$>F zl6X}*=e{;Jx*!G6Nt((9FeK3^XXtSIj!tMd9Z%%&)PWb*D~?FINMEVt_5@>!K)i=BkBO7-l;L=&lhcz^L8??V!&1^aI-Z>!yem2x z1ke@`?8U<&FYRwnqp@do@o!K2IM^k!g*HYesJ43-N4wxu6VVY-KgrUQvonQxIT!_K zS^ZDy2X`r@Vi^d9KojYEdwZCKJ5}taQgJMVT-L)kgT@j_cg`+hKg^5EsG;fi3Mq#q zf(vl3SYn@+a7(4$)OZ){{=Tu^AMgfAqE$wKd&nihT; zgoB{>=@#6`Cb_I;R{V+L%C(q+^Mh(6Bq-|6EOia!($^-(vl(JP}J`q z-93UE`q{*`HO!(3bMtd58i`2>=&)vpk+;h5!@b!X@8X61G>E^gGuJ?Hqouf--0rAK zEcT=yJ>9+^P*A}Va3Nu#(%-&GNlHqO4G#~C_t&w{&VElwz}Phgrx6GWhI;?-=@t^& z(9a>cEWoA-d*jzRW01S+#~+01{!qy%#QQ=d&>V?h8(A5a8k<|tP|-oHJ~F#HGPzmQ zSC-ZmSC`l4FDhzeWTb)>7zhdZ`RUi&E4*bO3g7`+&;s&9Nam<@CPA z$7MCKB18_r!E~{xgasx5b1h*OH0#Q;NbyzczB-8 z`9UB$m8GYpZ9mMuyJwH z5>u0aP?eUJR_AAs`Z0&_=_U6_mwm&TM>#B-s5Rz3?lao?X zv9U1rjt}=PqA`o~(Ibj`iAAv?DKOZbz(*TCSV=P+4K6nnMP@q^5`7^dAzxo#XyTjD z+*}rPF?lsL34IMoZCNn`O({8X1$C|XyzuCx9<)YS7jpE~w|W=n+nZY?#K-_d8hUC< zMq1js{PObR;_B+Tn8wD&#KgiNuxzT1X-+QYMHiO|h)e4tlQ!hWY=mus)I6O}%V{Fx znUNG#kO;2wuOVOzRp0Ya#d6~cE9{=e(u|2r-wf@R_#L~^(r!v7f1 z^uM4z*g4pFc>ho6F3`L@y<%LE z{DxRmoaj0YHQf#(!kSSy*`$(Fal($t6^7z*H+w?0W$xB_JB_?2Czb%#(o;~SV{M&Um;PvbLY+U~v4`;WESKmQFmpd$mcVH1 zPM<3;AucaHRX~#hVOos#LA0#YTd7lz1&U=fRC;O1kYZqq2e5Yj&&5r%q70fUSKJmT zV*sCG~nkzb&?LE4W9(LKC57?3udHG{iwnhQ_OQMrV>5UA)}Futz=o z!NLA&i+oQU)IzDud`8$g0s8KKnQ1(y)v2uVZ<@=2Tjv&ZdwO?76SvnDw`kxowt((m zYttb+%u3mN^g=-6k8|5Isz?3PlU4LCBh$Nh@O7LA_gw9od@Hiu`X#hNrPp#YnWo*& z*=tI;GA!GslP5|j7!PB+a$Y>)m{K&w+@;zu!u$MZ!%QFB6|=&TjvwxM5%ra{^CFUme1L4STJ^7=eSIcFi?aX{T`xMT)U-da+ zvBf_VP2rj%Iuh>fC2B&li88bPxQHAGw=fh;FVt41n)Q%;^TCg$=FB%5LcZeHs)zhq z9v_a}OXB!l4H{Y@S!F>r89%bj7}f03>o8!*X*eCFdO3qj%4&KS<0^zW%M~m1V(gfl zK2hRFdQ5=A7L`N75LNUXhO^^*D{=I+$>!?Ay)fqt<3367L`SZaA@+5(_uNdK|HCt` z&EJGrYGb2{|xTOG?sJ>y-2I7_#8)A<>uf?!2o#d^i#0^(IwMN34&n@~$w zpN5R7y?Oksps-YYINl#}gCR2?pBcx0&|dB_ZPX@{{L5HYTC^vCl5lF?bu!tM?PQS@ zoI|9;Zf6hOv~_pc7xfp-m+vo1F9t6JKXwxxwO?f0zxYt<#pEpRADiA^1cP)JzbbYa zsIisAH0y$7f6KAT)X9we%3EMYku{woUAWj1Z1e2)WCp_!_be_xHSpF2=|C&N;&_UM zGxIjteM;EO$%n}puP>lBY1^|8XQ$)LlSg}xU^vMTTePR-wFBHJ+mBlnaz4`$En{%% zT*%Y;xvM5X6f<6;zMwS=yvy>-Y^R^Aovhbt$;*eFewF2V^$!Dn+8l~}DqfB9LT4;9 zXXN$Qstp7gW`s)*PXW4UQq22VJy}%gl@0;J}9h$rB%RltNIgY>MX+t=9{*S`sKLX-E zk@S3gT>nRuu>DW5i2o0a$p3e-i2n^fh5f&Tn<^MD=l=#|VgIjaN!9-@zAkzIu2{=Y z|NiJY)cj*S|L}j_+Tg?lIgFwt#)pK2JcLjMm{oPmcwaL+VS=tn6j(>CYZL9*(8Zmx zf;5;spig&8;}P4fw)kA6_7h4ir8o%3*}N}HsQ-+*$GjeNJ+B^ju`3`@C##76|Ku;y zTX3y;H%pGLAOtf}nh4)us<^C8b}T~OEJ%G|SagslR0ZCT`z%jV*3bDSRA;AjMiET8 z5o)$PI;BKdasaJ3r4Y$^vb%5mS(bfgCQBv%*MY1Z$(veoVOlEu7jyL&tO0)=aFuqv zL20gCYk;7|`>$RGkAFX;tIw?asDQ~!t3Wl}5~pC=kA>RawMIWepkYf>9$Yb!(96eRC?Z1`y;iQ0|yXTY*H-W%a;5nRv1o63|pwq)* zPzZ6flGDgZe~}PPP4Z)(dFD^0XTQaVYnUDmfb(d*x8ioO^`jTWdNIyh!80D^GWZk;idLI_) z^DL5+Up}5I)e+m1Rle*EuE*Uie;55GNvrX&%!}?{xDcRp$Sx`nsEUg1+KC8JMfZ)i z1y98qFG(N137pCxL4TIF4)ca3sW!U%lPbl+{7zGLSln5E(1;1GhYw?X^UQI07`N5QQkl0i5t>puJ?nSFc_U5#JmumG6- zu~?2@JXA?dnF}V}pS_B?P$-4CN?w+ks8ya*ZA`G|*ecT;R z2zfiV+SfqBAkA-AV#;j@1mgM1D0&&nj=i0e%v$SlRgg5u$PJh$BUvQpV5=Kw9~up- zdm7`QoArz@Ant3hT3g3oLB$>RJZOkIJu3AsVWGvR{5G5a$Bbho_$sjqOXsoCK^|kH9~~fVk0NNO({x$>lR~&e&^I;XRPv8(R;nE zEKx7+uBf_5aqcOrZETxb6j|i@5#)O@rz|h0WRzancn5*5GZuRoEDcfXTB4^ejxcr8 zTBc(VIG?CPJDj{mkmbzG-NCPO9=pU_Xr&sJ0}L`A`82?DvF>PO&6vPKEx-UOtR~6e zg{0R)B}egg=`~nQrIoE5*L6IM(@L}1ZjN<~ad6b&{wcu}#CD`F2r+y?s1&PoC`{73 zsYk1%=cz3vFI6GHCy7uu8P>pt1)DF^>sJ-SmfL~;!mE#%G zg-#;-@ci&UZ+m9*VDn%gQSzk78FEAF{>^e*#|?~1ASP=>e(Y(6bxj8j1>E_&eLa zs_h%05*msfCA~22=tE1Tjg@o^0D?v4fWRgB{j=PYi^QE1-odS_oH^9%HG#N#kKnvj zNUN}w5=P1&Mlf2N$aox^3LPCQT&lYq4b0 zux=)Pe!X+qz`ajoS8u#fxs+AI{V;2}{g_4I2+i_?v|dn~xsMDrjHc~gRAFXwy8%?A zH0kroTE(d+W(=BC(ry^TqmYrI-JFpLRv? zvfF#WDNj@-d^Ib6dE-0C713^%9mJ3QBH$O+V&1Jn(Y6g`Q9HI8Z-@ z&8BOd*8Sx+Z;IRx+bFmGz5Rq;9>62yZ7q!Jt)7>W_6`_Jh@GM&(bt%|imc7GE^i_4 zdf@GHRlTcBLu=oN*B@^YdRXjntEC;~Z;7ro*QxIFZ@O(VkvBItP*Oq=)l^cNN?`;J zzI7FaVBWzBpUJ*E@Y7s^n%8ik#SUWRJ8+BKq^mHJ-`Pi!fZvh#5Vr=b5|jz?=ng?N zD_y8<(3dc->UvS$Gb>SP7KZ1+o%$IY>!?v z7-2tzkTleDMq#NXhSww>H`IfalC&|FNhd|~d;QG{(&W@9#Ui(BzoP(JU zaUQsU$I=5jhq;MLGG)1IkapJh&^OCFXvCxS=kp(WB|4O@GvG&1PaQDgBK#>SDJf%5 zZ|6mQRg$mi4?)hZQ(m#BdS>#7gRb4)yGMgVrZup@pAdTn_=b&IE*v@ag8l50RJEo5 z^q5{FGAaDFT*%=e^2^Qudd8Jh7ZBl!Yhta)o)Dl@)f4cAP2(cz+!BG^ZHbo0b3RTf zrsGsEnp*;9J%&8Y#dcj1z9A>iXkBD<3D<;7ix4;O&3iA_FaUx`u!V-drdvMoykQsJ zPzFTdm~erphtOz&maby|I0JN3?p;#5CKMbHc6p@DOZ}m~%Ar^qG?7i*U%RofFKQV` zYy5$uCXRprr9Dw_{P7rz&ntBpp;#NasNuXRmXPNhMl~R#=Qc)13%by=La9xn?w?FY$RJ+9I*h zd&+(K7}UMrw%?LJyN4$M;|aIN7{X9Zi(l6#S68W2DW0>HvA)}-uKj~iOt?0m0;hWFvd&Y2()pS$V@-MmWCnP6_fZb=T zM<&O{hDS$v`T3OxV@L2JDPUYF0DwPp6)@Rg+2Sh8gtCNp?`J6i9&h2dE~_=gfZ9kM z*~(iaTy)o5&CJK+x_)`TWqj0Wp|U~i9qf5u*X54EZF7&Pst$~Av($k6CFC4EixauD znZO6Z@IG$G@>s@p)D>tFx}5ktF7pF%tK8Wb-_*;*M47viX7b}lJg=Cc_ROpTXi>v_ zS#8hX&3!*0X96VgG0=VP(-#L}TC~Os_cMv}i=9yd#HZM8`=8&4#WjUrjWbn6aS)up z@T%|Q1gy;@lN+dLC{+|?AHd);0wa&R;S7bpa&Sj}U<^G+D*%WUO7nC{!zoJHJ+KK8 z2Go9(v(eoUpqzU`h*6LVyuk4Bd~bvKqvl^jRj?yWxi=-yhn~)O&I7v=qazJTZpurw9sexd29q z>yQfKpb7+!HCT-Z@wt143y_;#7+*uUz;EJ-{tY(fl-qbXZ=vS=NA-n^WY4tf&JlW7 zKj-(`p7@~)=GFt}`_|Rrn#dMVvh^aQCU<0fT$nzn{Hr~Xi=BH(>jMCW7%WGxsInXT3^MX8M16nZxb z6oCK)M`5wWb902N+rqwediSc^44^iKN-!5fGsPKR!K7$NnpYWhXRKy5NuS)R#~ltAqqVH z(q@r@Uh2G7n9<`SC1n*e13H6=it`l`dytpW2rNnlHWfOt8<3=NeAsSC7@RO_Ktu3R z^Qyug9s)!8c8Ij`?@E&98KmA33Sc)=73jR}|MbCdqcr{<{D$6$Aiw=}nfKUr0gbhA zAYSPw;=hGxYLmT`^Li|G-S1ct;nUz;7|^dAp&C2KUe-c}Xv!P(HtF-;z)h$k%q~0r zcbsuIk6wY++*%QLLQPtT`_b8_P_y%hVoLI-6GHVK2R0;v|%x1J6$UBC#c5~Bx zeiD*>tGjV$t5}^J9O_Hm`AQuE>z_;7(*Vjl`|YWL0DfiaJ4MtnzX*ijN=<9VVB_tx z_AK!7OUpKyu-z}&mRg&eoOcc343=z~h%@^NrIus3>H5CK7w2ia-Cu$<@o+ew z-z_?OB%oCkCWQEuA_Z0lH15=)Au|TMDP;|G>brSxm>wL~1LgJ7wssc1wtOC&rWS|< zGGfB$$)0sl0l$<-2|!@$VB_!#eH8~M0M5@8no@)>qRBULP|zNz2-I;l?eboaiDQVb zUyS+Z>$iF}0Rc(M0+|+*_6T`jx9wL-9#-Zv?y0PKpEo2662cpZqZ##R)9hk@qY1Qk zZom75DR*qpUqr6;ysG_-9E%rO)>GA)Wjp(E*$Z0VLTAr|R?fAU|CP*uHnqj@6_Ooc zAlqVNlW8nx52T~Nkkf)vCV>;dqngf696JX1rPL|LIg=I*B##1~CkXFCc|A6mK7TA| zrCl?0>fq~327%KNy7YY=)y!cmO(Hq87NyLXte55niJf9 zNX*E4^|W*sVK#t001 zyYojYjy3#~etmXTePnfysjRpvU`vw+uPQk1S{ncBOLZ7C;&>i=VAsZPA&t?ozQ2K! zLE1<@3=jhOF_;cU=T)SJDUrxjuM04D#w!E;p}dj3r0sbu%?uaD??1xG-tlYke#(-mEfiW zZ2FMU5J#l|^oDV*oGG|Qd`n~Ih|UF5{RIAtZm*qNLaVr1E_{JVPV)59&tfY=k${!< z9X2ZPQsv&WzGahm56q}(593;>4=R*?{%3hYz%o|T-g^H!PSMC~o)#y<2lF06N zhlvJ~{>gkyDF^SsSG`9+lhoWa5JQ_r*4@-L-@AD5P|$!z5J7M|0%L8=+@2r}F9+1A zY!}W^n?tl+IPRG^oUbObYwAVHoF7~Y8b_KqOk`hQSyP}&(FJ=Iqm=i|?3Jd+d-KQr zevdLjg7rpBGEgYU+9EbGb7op69H>Q%*QZ~N6O+-A{YgL2SIJ2~Omxlc`l_+yd)Br* zBTy)SI$HpX_jN=m_4i*RWu!7H>ag{XC%%?n49c!T+4^=bmZtRq=WA-oPh~3*O zL*N_+$C0HonfT#=Z2j0CWBr%os|-B8PfB+*B(1U%~se*y0_X z&RLSPx@~x=f`y+bFK7aBG<;0M=Zr5u{uB0Gy=vkx%}XCqDe8{_tycdouky1Ew>m6p z$cmr*td3PNRf4L-i;mCIRke-YrG%N|ME?61udBfC=Yk<|cgaItp#NJC?m4w^v8^F9 zE-1vI1AHa?@|7s2>qcBE5^Ntw1mm)_PLM&|ipeNqAbziJ(k8DR2!|{@;y*~G-~5Va zFefg@o+S1P_r<=OQ}uzl#6u^RH2KZPuu6M!&Zw!dv9Z^u?S*(qNZ)<=_X^ z4=S?MBC9UeyDsPaYn zVJa9RLrS(i5;o-Ee-q)d%$@0_?#Wifg=b{yDQxO>vfXdK;HYdIeEmhRPyL1O*iF*e zQ-C&mVi>)F!pu9_7c^y6u|He(OE=d6&g=)jCE;cdmiq=$Y@3_T|#8ENRCDY@o53;clo|bQ#bm-P^yBW zsL(ogYk;(&Fl5l>61aeY8gxo(63=(%3+c@Eh62#Ve3X&`)n=CnRDf*!#(~Zp(fu~i zyx4PJl1_SMh_;4C>eSM?fXLoZ0VelsBh&s-(H2)@tA9fd$w!GlszBq`yUjr^oRaDA z?6X1&MF2Y)xcrq~_Sua>qpIfHm|i#4YcXPIZ+sHSo2vn{ zEtE9!k>C$S!rQ**sE4YY*A(wi9K8tpJ{PKBo68Zeh!-ge_0kf`r*Q&_WZDz z|FDR6Z;5E^5!GBq z>UT!YaO;eEGK6GXosEfFh3a{@NsRXk8bY+UGmYR@iZZU}El7^eQR+)N_EBFcmQMOR z(!sz9mk{vvqm39L(tA%eXE7kU-Aa5?PBafQl-V z+t1H$M1B7aBeJAR%*iNsj%g6T%JAFV{nWk}CCNil`iLNR6`dBL6q^M=3h|K8M<%rG zmps@YA%peCo@bcpAofp{g;(%d&HkbvzOn!A$yCcc3-f+t65lh(wBKxo?~me$rp;q< zb84#3goI;-B4Y!XM!Xz`02&(J5|SG;-(-whOdDa=mS-QoA|`NnwJ-hO#zCFj5(g8`t2U&Sv4)lm6Zhv^4#-d)rZ z(^)97SLHN4xH%ms=+-dHq?8pX51qrhAaYcVE1r#50J{TkC_MRYR<1KN@zPD7c_%W^a z=ee|>cXIL3QsBMTM|Q^O0`K)3X$Qcuo-~3Dw^jv$_&FynIqmi*@v54*yxLKb$NDIA z!KPvH6UoC5ay)||eP_I?PZI4oRID}k8wRhoNT1%&4Dm$RWzrbLf)bINx@-h4L*MOz z7doUYFfPPpglraYI?JEd*ci@#NPY}bU}imOjsyz+Vv?#lnNB4$Dik5YD+gw?)q+fjfS66LYz!J~2NnQv(3pQzb&K-wlR8^h-9i?dr zbkGKkV94LUyLe#ij=h}+LDK3*8YKm9as&C^+K2lW2z4@yyq+G z4hpQ3XC){=E4h9Hg3GbvQa_~#V|k^-%aw3x5VgXZ)pHk9h|Fyyg?q)@*64P;EZBN3 zOOG;)!tw9m8RmfF->)T^_IBrQ4RD=IA7}@oG3_P`gj0U-DFS7A3gOiTyfdcz`}<)} zLC?wMGYj$*_9l9(wVC|$wE-l^RHwhh{r0YV8>Lc<&r+Iot+9jq{H@R;>pRg-sBVTY< zO>s(Pdx*Jj$IgT$KcL2ZUq6WWQ|-%J6QGZI$FkG~cFN}h&DUQtcyiB-RT zqxen{I47v6T5dy7c8OUK-M$I$e+Tn$C1MWDFBO)NPScvxkKo_JTGyw!=yPqq?7}y$ zAGaTw;HZ*E27^)n!(lbceN{ESnwTxl0)NMVoQqqHB(s${KPN-!$#SyyzjzP)?BP|d z=*KnD(Mb@o=lOc6ke{XJTa4}tRxTYiz`C8irHb2&^}E$J4%shs^D)S(XRAtZ2`7b? zwO#*F1P#0}wkX2S0@-5m>NppP>(~sj6=U4>dIr2<>52aik5{Oh5t}^>$@j(?;+aJL z%y(cFJSSp7?7E3=EB&2~MS^8@ziuUlk5+iZ$|walafwZJ1)%4l1xn+s#S0i@0V^IM zeaV9^JZ!e_xKBD}wRPuIP3Q9Pje^?`ig{1J)%u!%ZjLwy@fE^=YvHIqtE%$ej?MK2 z53f8%3xDXK7%VSjlAs$Bx>~Vvd-#WsC?$T(p#yn=nADA>Hjnz zTRDzAt+nlsNe7-caKt0jXk9n}1IHJfiU{DQA8#lvWu?1hdI0i2y}NaJm&3}#x@ z`T12B$p@#uEGit4OXBl%#!In5 zfK{zuAPGQ?=wXxR15l>(`*%a^%rsxntM9p&3RGVFba^BeseUie75@eNhy9%BJuDQQ zuy&?!M(kGZuNr(c=8jOqf zKAWxJT}Yk zv!0Y3km(g5&r9F*&&kbqGd^+Xt4&)$G^1zf_=vUX6ii=o(*^AmE@Lu}qHJDQi^z^N zP%@KC9jUta{`ajqiJcK0TJ*UX_l~YB z;?fumce2M3!ziuIaoUB$T`M6tkv2E1eVgByRn9_e?{>{JomYaBT!G|hGhWsJ*HojR z5uWsSA|qG0sEE(gGWHLk2V`MUG&7V2ocbf*{*8zE{YxZXXvXT-l|bmbXCnKNb~CEU zEO6TYh~ya6v+v=BnV-*ZS#w#?s;Q0Z=!_Ot)fPhjaR#rmt11y+=!R(qpXm}Iqsw1W z?ZCM#Z`pcGn`Fa#Tz5BQ+PFcUoT>d2ybsNF?RhmKw$+DSZqTAxqR&xFM%zVf6yTv@ zxi6yxUS!1AzJ=Afn11hHk|`9uzZx)qhKhwi27X4QMSyjEA;5`Lpc(PqhYGGQbFaw( zo9qd8{+W9VA$7~dXJspiH{VK$NuM0#LSMRF5E{A%uZL8`I9ON78tmbs)^X8w)uKCk zj{lj@ZY@$rl&@65+#I{$ z?Lw`xR2&c3*-XmSN?n*)FjVbK+VtN{;es?|M zq17gE9?nUEiq+G17SH|2-gukv6=BLr_p`PSJ#3Jszqg=#FQh59s?M5#!7mMl!V|%2 z->ekZ*vY#H0#{&M`7(zaq((S~MY869GieU+_B8%u$ z2x`JMDtv`>x!+G!6#d?Jpw3#=o?cVw@$L?H`DG?mj>cjOXUWjA#BV?!@7G6ui$dnV ztbkAYsLJhU5U!2?)rIelK8+v-aK4Qtipai$0MC(WLw9neqjU0tfgPNKm*cf(Z-ET| zeUY2v+7u}@57vrOpG8YLA>s};7V5p22G>F=DY}k_m=Kg^GY@j@BCr7kDFv81{h^)j zrZh0_z~3NH<)d7UeQQgyozGl^OOA5>awu>Tz-zdRMxyg`d zn+=6x+W0A)s$AFOZ;P*z7M?Uea1e^ioSDsem^VA7t}kg3V^ zrZ0%0@xJcYR*Q}fG&E`IDywY44;gw53P;LPRPA=UHa@+1@E2~Vc##CQq`xSd0ke4r zqYW+jGaK7F{+8)z4N7Zc`1;Cv8_-&L`MD|Z{9Ce`t2NtC9CsAsKtIy?NZ607WAK=c zUYOh5?2c89g~DpSdAdLDzT=nG)emM5YU|LV_@bg_Y`L%oBO<&*A*pZnllo+srquZA z@TDvE{mlBZ*aaPdz39sULseUs&{}Ly%vks7-<5+41*=6hk8XbY0kE_EDxLq}yo0dD?7G!dUjJ^9&1i5ZnQY#T1$}?b5C9nS+j6mhnQCHUQ2eGY zBJ>@r{xMTFlNRuSPhkxm3>24z#tUKQn~ojM1aN%II1sWa-he;&07!Cz2rRC`#f`HS3pzZ{8mJoRyZBt2kJn z6Y1e&Soc>jVV*OL|7w@t9ndVz*!O;Vb1f!vk0-|iNgJ~KN^O@q^cFhZ%~du>U};2p zOEDi3Ept#u6Y+fNyW5tX*aF!@yZ{O0+-0aCX;5tw&b7h>ISah>bDaKipI=fbQNCh| z$*yL8{<+Efj4Gx(%{a6-PS0ptsAAe4s~x`RI70SfQr5{^wk&KI5oYm~%~6SR?jM1L zSM!%tkTlYghay5!d0PRfJwX~w?Dt||%Wi9&_sjuA~#L+46##zf#d zRayebIS+*~HUbUK{~`V6-+6QN;inXd)w9B;_ur2a*cptdntt&sn)(PS#?u>ZJbjJ* zBb&jRqJBcs9y}n{(kU8wfkl5tsZ= z&7g*H*(jJ1A+Q{PaUaRUI_Q07()VIx)8!zAE(74`@mI3c*uNBj;ouF=;FLKVs1td6 zS;I{H8^J?=W9cNmcAh|6_*Nnpx6EMp77tA-0kKWdGbsrLJ!b`v$Q$)Ks`thfn4oY0 z$ltC{udn80lvyrInVhlOEtRQ>O|0lDy!bvx2d3#NiTf-jb9lQV)HhsEkXK&zTtUclWou2 zf_$Km?j*tRnL+%SNaMJz?f}E@ji?O4_em32Ej)66{M9Y@C3&6Y4VfVHUd;|j^4E0b z{f3+bs75>uPCbPS_paB6V1^u#5An|XxCXHaN$%9srb6+BIS{u=g9$|jz9vns)=A-% zMkh64zS!`Hno48HVrGP00wM63F2DHs$4?p4_ME9GngEE~q1pDdZy%7$BiV5_Ce90b zbNq@E;LoW;0I7!nrw3zG*WtpHWto3*Z!wc)&GesQYk$;{<&-GM166ZbFzANVUNKJ^ zL($_9%s8 zdh1y(7}|VcMu9x;cyn(r$X4_F#YeCShw)%Ivku`Q82O84|4IDtG+a!|G4ulDBFhkF}Bk_e(f4(m>NZsHJ)8 z!^8yF-s*6JeEM+Y0E4VPUdmU!sOKrX0spp_#1NFnZ5uVH+ZH+ho*_CD!!tfuWfyd$ z#e;=fP)1Ee=>#dpBgA&I9pj#0h?bAtPd~{#&@A-j;YLejb}Bd!j8Y}wTt%0dQy_*( ztMu!C=dNivPEAGWqTQF?O9xL@qp#mDR^QnY)_jA%kb5siON65Z;88ezp2EZ;%>-u9 z3 zJU%}DlQQ+R?R+==tMx8GsJ?ny(A01D@tV$`ABD_HYFbO;B}-suB^}x1<#g6cG8t1X?jW zHV53Fk4S#pS@m6aOdYqr{%Eyx8$E8TpuZ6mY_Kq}Y!~zMi0V{J*^IoFb7{@=%411e z^PRHp2pd6d`-?QN$<}$JRo{9A7f2z0y4Kbp)9y$$d6t-FLlOA^*wl9uf0&?=GZSvm zR>OdCMOH0 zvUKR<%lCFS60fiz4OQ>VbNz@@<9)5=GaZoxV)pdp!NQHvQtSFl0+aib9D3$-9e>oN zkBuDJva|v!Y#fTHnM}gzF9P#e*vD)VPJIK(sle+IG5q)U7W!)XLqog|rT{0zPJ*ae zDCKEpuH!WtqonuI!lPd;nM2ik2QDO#f^m~TFI=-Ulgs%Z?^P`KA|WqiL=|{1P&{?+ zn>s;iY0_kC>o<^h<|uV|$FP<_&(vg z^VxK-$6|*FiMmM1?P?cSl)O5Pl$?&tC{2s^jOid0%qzrUEGHqe?zKr2vA1k|R?8~? zPX3Qm;6H|@R}7YrqAwkh+44X_8bmlB#s62;A)Rvug(A&=^x>4>yhy(On z^+V$nL7QP|GK=ugzEAqFXJ?XC5nVL5@YLrZGy#u({+jhJ{r&Y};a1F~;h3C?cFR&~ z!DcM2suyCADBD{(`c8V(PZm5+JG(qQJ7q^rrg$+JGbdM-9Q22(2!X}K(S(wi2%1sJ zz)YGC5w>O_LiN>z-0&$!g|%rL+>d)SU}F-3=?zwTb|sus`{#$j41@A{RfdS5Q0dTS z`Px1xWAFURJMp7wJE48jyUTbPM5H~?7WL$JFkZ!IrqFkCL5umIU#iV?+()~|&s7L- zg0c!9FgN2--$5BTiJ=2E3asd_MWA-$LJSKQ%4E2xG9u5ND;@%#ZQfrlY)6E=`L+RR zNvAkm%g)x`|JOaQv#k?Dm-0)VxfIO+Ct{-m(q8iJ6&QQ@C=6FItohyZAcqrT6`mB_ zoLFx5a)2R}DN`2OO|_Up`sK3skNRzD16*otoy%f@i~1f%Hi+O804|fa*A|(r0QFd<>NI?D7~Sg=`ka4p+s__RAH!CD}mf3ypfs(bu<); z(i4=kN9PjNCx2TpZ_UPvaVf5aE|P$*(a7$Oibzy|l*QDr+I}Inm(gH(9E}~1#ZCIf z9;dtn`QdiSA2@zQk6*MHhr2HtA#@fZXENMdpR zSajLZnwehYF?SQ#-~=Y}LEO}b)DGZW77EOIQR|Z!tPi)i4*~cb@Tsh)bJEE)#>pc- z74CaxNHBP`_bn79%3Z6yAzz0_?Jap2_GIV$dylu!UujI2F7BC+MRGn`LuY7gT4Ho3{&58z&vN|s5I8%DanTas+w?kG{;yN8H=V3?Hm#bCSx7Ud7h!~6ovmF$7pzbM`? zzw8{%r0vYs7lRwnM7-SdgD9^r;+VfT24!Pk!U}2gt1hFti$Jm9J|~ zR-Q&|v`sVeFeA93M_3Kc)M5aCK>31WD2wP-#JBJV2>YT9REe#r28*HX=H{)O>X7)t zlo4q9z42^--r^Ib2vpi)=j{$)NmY&jwl$c%mW~^>`h~Y_Z46+X6Lj{8{>m&|4~e{w zsEPtxLs2dift*5q23YD5Lfd){Z+6s>Jf;ii@n}lB%}GNy+Rl1j5pEam;lNPN^)2(o zD+H%&Fqv!O@3jR>p=H{yaaXx1ZbzHa>>n^*o1JKT^`x9a|49hq@VT5z1$zF;IQ%2I z(n=9YjQP0GnJ)$Z-Te{$`3*qFI1S_VG}>BcQycn~Mv(!1Nl~_f@w9fm+Z1jYI0DFw zwPwR;y!`t0on|_4uELc2c%2~v5FnE&l!@w%J$<+&lFe*xC(ndCTa(j>o>LYj{9-rSDG9ebW+mMT{m>*Og8wKc|n>M|Pb z=C(7cc{`8Fv1K!H)ygRJZU^@M;H;k-n?)0zde2`u3CL;ocLqCcu11$WCRyXC!XnfM zV>`gSzvXnzl#1;;>G5$iqO_m~4&?|GAz^IZZt=>wJ*3nGk}4TI`ZJ6+6EPe$Ovo~h zk6D_@j~9R$!3j4*24@qbMQ)2}Cpx4*RQkB))?3Wq6knWLdX;iM+4fttUVJrvNo9nd zw@%G;K_TR&fx4dYBxzCG9YphCx@)_ut#!SAJ=^#oVmvN@A^m!TjtU_ZSl%zr%!2xB zJq#D{Hb;%_iVXk0OEZ!`>dqJLI67*q%~HNq@tlBLy#n(X3dAuS!8?zBeZVbTd2QfGUel#h1x68F!9zDy(AMJ_A326GRY7;PB4 z+1m_nWc6eF^oba)x~?)LWcLmhhlS$;=qYYQpPfYP$MC5(X69={qwYzBqrg(c+l!5v zL>$J2B8)!21n-;eCI|B?S%UnH@Z=niF0`aW6Kw<8J=eINS3N5jplNci@z|LISFdlr z1+u|l0Y7b^Hsl`)?WV>KleJn6nH=Ie&87{^JDfFD+1Tpc%cTYFE75<*GgC#=au*Ss z$6Q18V!TD%t_Cg&Qk&)5FN!j^!D_z*ET2C>Faj_~cHmKv-o_FwlH(3M#9V>TZn-ox~A!K3gu+?{6&ojo0ofWOBd zW6sgY+woSfj)BRKP@=%Izbz?xRv))Ydte&k)Esc_1Y#4*#!RwKdTNNO4}*4a77P%z zprfWcw!JiXzKEl2xIsZU@$s5ozvEvsqL6i2-oY?+-eZVOhqZnxNnYn`V=JnGoP%jj zJOK8}LMYAY#^u?Gi@~vj9=chPbqRIZ+-6~B@|?u)TEy=OQt}fxSH>k~j5%?(H(GL` zJeIp!2rY)4QkdP1-_f5CsezYo7D+TeVoHlYw%FZZJ4OL6xObi(Eo(}}Eo0h}KN}+o zC|}&6)`Vaq!8%$AS(gfj?u!`uMYcaD|1s`kaIrC<1R)-YL!PIKiZ5r=sCUPVWcBa7 z>Qf?Ec!(O{@RT{o*CZds#SR`(MytX^Q-Opk&c9tkH)pW#lsBSmW<^Bgh~~j95JzZs)`XpM3gnZ&vC!>@Zb{{-{zy%H%E6( ztu^TgY!QCPCvU>FxP`D;O)@pfyQbLKG^b9 zE5T<`Vm~BWjJPvE>`^FH&^2d=PAnBI8w*CerS_krhN7;F$j##iGE@R-;@npbc~6#Q z=n{0>+v#e~r)=nj)MvMTO#TMhnYiqq8hn|v)FZ#nUP~G7KlR~N=%4|2y-L?WC6gYD z_A|Gg*r*bt2@B{yt>cLHcMF8NM2K)1<N7%$gJNn3!^wA@Lr)Y9UgC3XS!w-3RgPd-4?ML z5nep21H)j+pj)eU=Ie#w_mW#*SOo@NA)L2Ql<|1~G>hsXi)rEl2evqJ!GVo)zA_MO zL3^IDJGN%88VViW#=%(FiVZIdb@aMbe%{|%j$2}TWjAbidd-D^lUITEi2^ra^&Pc! zypqJn;@2rht?55YEpSr0WUWAM^peg@3RDq{?f%Cl1$uw8(csEyLrXttC1Cw~wA1F! z!>926-aEN!^CUhL9@AA*fvWu;%0vMXi>oT~62!%Z+(vm`=VL?>XEo;);A3@s2(;3! zro}|ZTDj`EiaMKYQ5uYQ1pz zaAL+DB`nN;#;#m(+z9!m%LAYOI}PFcy~)tD$v(kEK@r$=emgB>IJ^s@{53%s0zrXN z`AWoZR8j4*NkHvj{`%EF`>mi?Ha56U`Z0Pp9~JteL>j~;W2ivLLvj0A8d>V4>sfHC zVWei;oZLOLVDHGXLx{%}Eb@m2hqrLz!iuaMDxIiitzagS1@y~h+4fvaYiDE8f%U(2 z#@+&P+@+Fob}-mc}JarwPWMflc&x2Plo@#w>l4GYr^I-XT@W|LrjEsx9B?P zZc)2%Fm~-!_j(E&mm59zK67smubpRc&{X8XhU6i71#7LV^>q1cS0Up1m9E;Hm7;QI zcC6>3<+sc}l*77po~D%`Z7&hwA#WC*`k($4IM*_RTHL0ILrY6NZ6~KYA27d}LkaCx zzF0)Ho{&NzIGP@YaF0t5V`uXF*$6!I(hc=y2P(0Y=6LOl&HfK`&vCxg5`-fq{&JfH zIV_TL+=!5@?d$+pAjg^E;BHi|VF&aR+?d&pT2-Rk`|fJda=OFifcDFX@@OfSELgIm z;S7%0;i{4O@C2`~XqlRO|87KolN6z!DDKrVO7cSb;?~jT za+8?PISgj0FLSu%kMB#%1q)fLmLN!mP?Sm>(X#^ws6!KuX$7X76s3{zfm#0v&tt*D zKqST~*tz!`OWUPbXhx>Kc~RQgzn^-VhED|zQ8=N`A@fWbkt%NJZrEmu%O3pZ9gNPb zZb}Ku88_A`86e-X$1fF#ULO%M)z|ULu+;Vb6oXiF1oh}PX31qlr@2O7vm>_5LziC# zHy&z4Bmo#2jsy6YB2LI&uc*8Gpxy%v!-?tJ#A zSmJ?7$E_vY235j6b}K)uKvR1JR1x)z{j5`1^+8B`FjX zJS0E-?7KZULDjilOYK4uc>^Dvb3^UmJ1ySNa|X}U6wGdYrI<`M5&tDvoTTy#E+d4H zBbR~p{kHk-%RoeBUUUoRQ7Ctc;lH;!E8$lK3)RXE;xS9^+y&|L1>KaM3f#X8ElJ?C ziT%WMVjlp6@!fqhcF*QJ8XBHfOo?MbPpCA0!uL7IdMyG&mzRp)7&pRYD1jlFR0k?x z@Lwwk|KUVd=btI$;YM$pY zi$U1sctAz%#h4&;p0F*)XBp8jLad47wPVuHdg6UG1J5}mBRmCI2LEY9bOmIkNF*r13H767P3V#ahWPN~zLrPEl?zfoGZw%L-SrPTW=R1p zGpsI7cV&Sw5OXSW$TWYce7C7jvo;AgPJLQQgQM#YT_VgZ&U?5O4-jze=p3AJ@~w#D z()4m-StMuel+b?3(n!BCKQ;B|sTXXBwf9cesg$LuMil-z#}nwc%#8eQUwMN3b*`3| z57t%}&#p;wL6VVL2_!WuJ>>woU}0Q8L=*esUD%$JViCVF1yME+zcI$Z)*D$H;A>GC z;X@R2VTqgV7DX|a<#K3xR-j+gP~?g9-xs_>ha^G(dUv#T9v+_f#xyeF+SVUt5p8ie zyR#{GYwZnfcgM#mpyyFK2}aIQIpA(ohuwc*#YC_V*r=703ZhODJkJ7}DX}BLo-Ilu z+cauwFviIkk)z`s(SKjM`l}{d<8hG)g>Mpq8Z9l0)Rl1d98fTB6uIv^6xeQOeu*Q_ zO=r2@mRnoXe05#(%|a6FyF<$V9`a+c8V&vhR({2MizmS z^2Lc@5Osq8JG?*o+rP$(_}!ROD4J;*r7m$e0be9bi>NOP_nil<`T`bh5=i*ZkrX=* ztgce|nhMgdEBe18Fc3{xx(Oaq(qfRXN;0Vsi(wzqs$Y!l2c=aHS*_l;n=kpqsXed6 zV<_xz351tZe`8F_snR;M)0egq`2uQdx5eoC{Jgw={}n~8mOpb%I2K3>&%~ipMDqhg zvDq=o@;It!ty6jG< zA?$i~z@~APPHCzv_#r(im^UU6J7vUPsCYIq)gy~c<28|r{5Y?u&n3_MJ%6XG(^!y; zQw$veBx(JVF-4-|aB$-1-04r*)33di^4d4K3eFglE>wQfo=Ckbl}Y_5lFX4lO~<@9 zg9UzHx?M`?dk+eE#a$42N)VvX0YIh2Z)a7C5SiA!-P14Lo=DZy%Igv*wxbfKz9z=A z!e1>1H{_wgO+Hsxy)%rJrV85&qmA7;#{y&qHHIIDc>}8-E6(*@oI3;^10Ic+56G)m zm)>K}lb|cH^CHAfQDRvZu+fsQ#9_PR+q}2vkFdQQ)*G@rYGBOtg%h}=;ro7GkjAOM zN3&?fq{T^$xMfI#`A0>+LN3aOiw_M1*2-$nbY91eDU3s0AZLTy9H|zpYv5d#F~0BQ zKsn*EhJyhd{CH-pCQ491M6@!L@2b_!3heH~VAolF3a;*@LlWzfV|0nqBbZ zmrtbS_skp(Got&oT5AB-5PQ|Lb1%{Q20*BiR;dQn@xxTBNfX9u5s8pJ&xB3FCu3jL z+XMJ%i<#))9wKx8osNAx?W8-LLpOC>@va3xTT z!lwyxs`mX9qK_9^I^t%euQ{q3IyOVNXFDW%El>xGB0xFD_s4ocQ8;gh-FWSfII;wx8gwxTvtz zcz%Fj&Uy%offr@Y_9!n3r=iMKBq}wx=NpLfC;1lOQjRkl%X#U%sUS=!p_=YWkow|@ zRa6ufE`;XM&3LG8;S~Yt& zo6(LFN)P`*Ug(!$ct7^%(8aj|cavbZ$sgs>J3FbW!0>z)TS@)AFqjqJlZo2%{1~01 z3xO$R8OvAnPp9nZvcBNFFDIA`8uq+$I=<=9f& zg^E39yDnfN~QTY^GL&-hx>@^Ub{tj~72yn+R?GYzYch}imbGQkztx0plHnJzu=if z$MYkooY}DxAAhI0ukZ#ZqcZkqf(aX5qFz!q=l>-HrcjwAA0ufI?=^GM@{|sgi@rV^ zad2Q)wx~g^^$_mIEcWYA!h+aQ;kY6MJV z{^iK7EZ07v{Bn1TET2@C?@UW+|BRU*=|+%n_PbZ0-)1yav^Jm7{PF&qWUUJ&$;b!B3HH=^Un!S8)Xng? zf=yz$Iac<}VtG(VBgZcl!$mpsdgp&FJs1gVDiH-E@{iu0kK&0yKFiNV{aT-b;HLWb ze^6_t%d(D{olx@}Nl)zwO<3~{TzG&yA8K9m#dZ~18m&U*>#@CqQxd^NCUd>0P&z7k zvJGnBqzP~s_W8G+OOHKsi0-uWD=919v2b?`)9IE}>fJ8!osP;RN1S8gG)Q|KK zt+k{$o&?@LB{3z{YWwyp0hj)drRxr4>kYeAt2L^$F>6<;G_=&-d)6!=h`nM{#BQxx ztxao`T17-k#f-hTYHUjFS-Uph{e9o}mp^aZ_r33Xp7We@o);V=bv-B15X4PqFxOadv_9|=^*xi1Hl9QC6-@0H%* zB-M>q^?m;jdLL|cTvYvm7(H8CTLy|qjdZ>U)QZ-g`VRdk|Li6A=OiJ4FRs=mY82p& z)nly2&I>d!_85S`ZE%kE3YP7;P2)5f)P?#filGNMav%5|U>)~Rj#7LkvvkFU0AHj1 zwrSM$X6Xe){(&H-z9lgdb{vX|Fnl1;CNHODnK)cx=9^pFrbm<4-g>$ZUAWD!H3N3& z&-HD@ZN^X32(iJxE~}wMh~k_pSUJ^SvdrtTpELISfPAIhs3i8oVmv1QUPM3*L@GSs zK_ET1mVil&GGM3Z6r1ee^sO&=Emdy00!o12sFwP9)C>N~%FI!DQ$AwJ-WZ}Z9<7}J zbH@kh$3$j8fAUJesSG_qVQT*f99J;TwO7+=krTob$ut`D*wY+#63^f}JGmu5J=4WO z&9;TUcn_7ax+Rx?Pb6M!l@Pp9!j*3RYU|Au0&cTEAodF%;QY!&Xe%W^rS>I~6dbD1AF3U?oniN=B?=b?lWdK?!`0;sJ+~ zMkBCW^W{@UF;4*AFSv$!mmfYCj#HNyr~@V1u?<(yzX-=CS=xXB`el%O@QYvM>N~+^ z|L{XYtpEV2r5w1tj{($b%l`a`o0zJU{Y=Kx8#;=)M{!z}0T?kamU}~&n+CVQSx}72 z6Tr&{Mxwcj*!ja@qZea)MdMdpsEQ~kz_A*bRy*|E#@&urNWa=k=o{=o{X_bU8dT{* z-NI|`4Cc}f6nzxZ*^~=^s>2II8-|U&{U_ajNv=Ezcibk_cXR)Mb;`anfRgfGUXP(E zF*<5W`LrciBEUl54;k7&)zOcwz;<@qk{=-4mP{HL$#(_eFPz^{`WsVmV-*2!-#^q{ z)L|GvTk6nQ?UtWynBN_!@w|`8rA{m53py;6XYx=~6`m=n1gbgF3 zUYNIc&xK55J(_xNGZg~)v^Wm4f|-=TG!Sc~miWcBOIeli%mzjmTfOsMMYex9+(Dew zc#8Ux!Q*GjDMjq8(g4|7L#@`FarR`=Q~USz#m)0M4rlF6aL~%lXCsNf`NIc?KfEeU zOlKKP{x0*zXi6?$?&QtB0ZPV+F86za9mUN2fyk{f^aqS{>HD5M-B_~nTx?pxxM9x~ zLbPkiuilwU=V*+nfpHirq;Vla@7QzjZ$`?R4U?hFYHJqIiYm75(-NvXawNvnypI)UxDEZy$$rC%ZAp4-a1Z%}sPLo|Ck2s#8GXnOlow*MT=^3TX zC$&unDM8F^b2h>43AU$OA+xR2>}zhCxekBEbZhmkt6FTOq`RZGVX@i@aF3}_e#Q(s zTk9o3*Bb2-1O{!fWT0Z!*^C!buuo@%)cJLE6vwj)l$0e*@F3d4xEGYfLK>p}pe&(# zQ>A_MX?7AwDaLz(uPMw9xpRN@Xa2oq(+eQ8OQwTuz=p+?h*hPSwsoqZ!ouf&o*or- zwPrHq9IslqN!Jh$qknTFrJKhxXDsfu9(KBX2&;M7RF(hpxREsWyDPmh6%8)Wg@Ihl zN$pocdbh2H520UqQ`%R*uMC-Qs+ziMr@NnWQtmk7&THz=d)2hU#Hili50?J)OMqWp zt1g+&>sHyVrsZ+ysbWwHZSzJM*nSyQMzo(fMA&WESatocKXaGEC~-pt4V8zo_bEZ5 zAH8BICVoweyT)O36*M3{SHBDVn|I&C`xF(Wu~C*!wlk7+(YDezWqJsN-^T3VT6Bljt#aoG@+ z9Hvo+)#3F{7)w9EzDgEzRkQQ|wvBCMXFcOHc~d7eOeEtxvW;OmDi3fS?m(#s8A$1Y z|FQf4Efc;XOkx>s^Oo$L111l$w$rSD>%;d`ck*vC6Jn-O8Ev{ZSm zUh#r4B!js9gS5zW;ot9irh8(_-r|!gnfRw|HMWtLwJ9$zF%yqRQl}YB3ws@?GPf5IZT!MSnc(^i$8gL znD6wOiysp?n$W3*ZV1NvN2oceNw5I?Dk!NlN**ABF!;n_6h$bsWK=hH=W!wisJ8c! zB+ZN-N>)HSqcVfe=z9(HCeG(u^~4KK^5!IcA=_i_)6_>fPD9JJ65fc1uPgzYW?*1I zc=?fiRC_}g>LuJ9)IJEtTJPm$Du@VC%(-`y8Uisu8}Za(-oXyud?soEf4UW=F-HuL z?_?ig^6}KR05nkIGwFDc1?3dJJda|`rVuzJk*A=r zM}!aa{OzxtPHMgI-2p;ZwioESq5T%hU*0V7hVTnq6POa%JWi(M1Pnug6ohS85&KS8tjZKbxt-Cd~y|=*G3zp z6an(4C8sneuwei+eN=sRFE>|Gy<|7NT|J1USL;rK8R|>Eyd5I}z}7hIQl$RMC~xi~_xM^+DN-T6BhYH= zHBcF;0k%E@`VQb}cr!h{5=txA`6z*)vr6o&$pC{MhIk=$NN72Kp5Z993U4(5lgws) zTwv(Hbih$O20H>RfO7Q(WNac*V3xj9NyBG=N@Q=*^nvhZ%Z^rWI9LFTp>a|f0uT0g z8!P?+d5bif?=ojo^$CV52_Ji`{i`?nkd5{NQ6dX{DUGi$Mm{_{S1;vA3_6vwTO<7_ z_bcIijOckn_XE{3>O?e#H~6SP52;k73DX$ppOH4~47P zt=;OXS+PVeHK*8_|G*(c8faGO#MZG7p9ov^_oN}Tm!jsVhf(dXV2l`f1;|t2EilE? zsh~?1t7r{e2VWvrKYia<`Rk*B@{db~-e_A5q6Bx0)3O4KvkyEyO^O&jaT+{5r3sH1 zurTyNTpS0SQqSz8fy7d>)9pRpLg${+X85Ge4GLhKh%qI?4ao3X;FvH3pis0H66EvmEwjYH{~+VIpBogoTR5KJ&X;H&cCl zX|U#CD=H@Bu>sZRzoNE%;GRQn&{LGB=Rh!@QD|oy+i&BEw@42Dcup=FnJtdh8txL|KQ7t zsOW*n0lN%&>A;Z1D(_YDemJ*820MhbWBC4*n}w1y55ih4UNWwDFeu4(44!9syhDQ0VgD{SXB5UKsEmE-*ub~29S-R6 zjm!Hm^oj&a&i95t0C!*7vuYra3Kgw)a!wYL6N=}|I0F9le~+EwazOq&m~YLjwcOb zNcMTzEBy+G-#(zL5BmTkE4hQv1uOa$11-}(EC3|}ie5+se1bMQR3HBsP_Yd575>9q zmfzRw1R-2{R~NPZ%~&rW4Jg57_c3~XUrf%pWq%!R{grIKCrMWHUw{b_tp5ZaKO(2E z#@nGIA#)4f_}~mDPQ<dZyK%lm*RvIQ00&3KwcB`q@M z(Uy?DJGZAfR3XUN&qnv`&AxFYco>2k6`w+acKX4prPy3voS-5ge^|d{+eP94=`#!d zHkak{p}KDm3gZs{f0-3gI?#3X48H%r!fpN}*e_N1z9cIVt`D1l<9M;6f({M6ZS|tD zm5m!Sf^)b9mm@IzHya}(_u_OmLt+@ynJkZ9bHtNbI%&wSkpjl|0_J#9+-=s+-@mmo zmt5d@gZI|={O{jVS7_V3C4=Vb>@nnVbShMKZMjY6bJKqUqCwwyJM;l-iOxF z1s`=sS$a=}o+C)h$oe_bpt9!7;SWw#jS~TIt>XZhxaL_>CqLjl zW(1evaQ?!L5zyBNDHQ_f9!%p1`JV&!HXu);SPt_I-qR!BM=07Hs;{kpW~mx-Sh4pi z|Kt4OfE!9SSjd#*APY}srVtFM)sCJ$^V{9|*qfS#D<#6|L25HHwd25S@WcZ7cgP4n z2|_)F56Z@VN~bl1a5JhFF#7QGNpPp1cV^5pRy0<*YMcyvNLYfs4cSWUID4lZ0Sppn zQGK@eg7cr^OH5T04)N8ng)A`)b{j}7aYVQH7B|Acr(F0^UGjbPhAsZ(iSABRIOA0w zDneMWg=P^ncK7o#$Z_axB*StQJ=ayj6%zDnEw$_HC@F^&(-UM-hF$O;MNlL{QkKixRr}^>*@pFYXeZ0-GGeq*b$$KiV zrn==p3+hj1RM3Ms975$Z)-e8J;qWakZxcM_r?h<-(|+Pt(MqOP_HFe>6zOvH1GOuu z!4X?P8&8&K?4%}-rfjWs-akV9@hedQ(ssN?j(*6#Sx_xncx%v+_Q2(;u{r$iC~WvlAAlpQ7Lst5HPU~P zfsaLHs-D1i-kY6tjQscWh=VXHl2~PO;P7_oiS-EH%O6*pbPIWUwMrO0aIsE}0h%A? zuU0Mx>0F3`nM%kZ^WHu%kd@<*eaHBxGj3EKPMPJuG=)7LE<0FD1z4V~p0w~GDw;ZH zfSFYS96!f)%ZCV=BNwe{mAx3vCj6pUW#?CH$E@;0dB`{y{*TvGo}LrU5Q;sv`Nlpp za|q=Fhhu*kN*AM4=e>X19Z#iic7wal{#kc_1fGlqEAPbpOsk*`gV~1|I9?Xi+fU2} z*^On}LtpI0XhFnlC#%v%ICOc}-W#q}MzkFN`xhxvgC&9QxN5f5#B-7483O4A_t0aA zD@50Yu0}`h)7uj%n%kfK<|SKtQQcLk%t`$sb`MPs>yQ!j#K?%hRDFJ|q+vL~Y^H1y zvjz68%J>YGeS56^>;scIVFv(Y)!}%+;W$p>(DMUOwqUTK`Lsbc8YJnE$2GSwzb8ph zZK|sv*^wS8(XyVDC>WzKBI2j5M%*Exc5{ZsN9s)O>|4id!hgc;TLv&J>TfPS_f{R+ zk(zaKX7sT)>J4}F)FV+#a>>JA;-4FhC#Kgv-bt(e<$?XLO;&tu(=Je zHdv0dNg4j9CLvuga7LWvQeE#Y8OS1}z(6|6psfb&8mTZsE(j|$>X!<1bwUt7TR@`# zCXI8B{yOf!SVmvc=^n|0Kl`J2nDXljp3t`;9vw6=VOqt^_4RXHJ!0hHx7L(Q(usSk zI%*NOABMa>^f|gyY+!2oOb`=UkglizH~8@na|^Qv4%dcU>}&vOa~Ry=OG@L*71|R( zX^#e(CQfdeR!6#ovC?kfrb*LvF7|oZu!_RVwq8?7yZ5lQKs^(v{-kK`%C}*echfyU zf)R7=t9K0cD$jT}^}7Uo+ZdlMS`Z>3Hhk+#&+7X)T?k{yqQ+@s$72HF zb!zZGGsV#q5?Fyx#bfG#8Dou<1i?%S>@}-)w;N3d$LgAVTkgw)h2^oF)z!q8 zJ{-1_P@^G$;nWXMB6-E#NjN@FJFoG@H*jP?-R}x@;9Vs<^<#giKHP$O>1-n}~ zZn>4uq&t)Q%MtG2r#4mT?S0;_c4yVG!rArJxF z*mFu8dJ48Xdi1K9)2Dabts4iuvvgc57*-wULPY-IWyeP}OVy}kSihrP;rQ0 zL%o8LPTt04m@2PAze<1RonuCMcP;W6J>sMUl8BRc=R)7y=5L7zk2~T5BN| zAw}08KI{dHm2h>O$$dBfkT9MG0JYHKFhhABbH* zKTQ}s(R#0}Y^*Z-Gv(s#=Xna4H{IT538*F~k0bW3sizZ!Wr&I$C>iFbX@Dv^;TQo> zaREIj-xAz`p3~#Zahlic>QXGjfN{_Vcz)Bk!|x%g2in#OziuvcIGo{F>m>tE+suND zUa$=KNO$OkdN14G+x+VB}fvouFl+TZoElet3am(I$j30SHugde__Tv-^ zTX{A5?j(p=ZxXpEfjo^>%UoKP_}vX=I>hOan90fdy0Doy!(X@rtnyh@A}08JH|XD4 zPD@FlC)M%t1pmCi$)QuvUh3nr`jwZy!ycE?GZhxU67`sTHm&JMxl|Z=8uoAw^n(lz zwXnZSsA!NvP-)v8Lp$$tWcLUNeG5!$Oyk+lgk5d{X|9n*>?1M3Lhs%zg;m7ytW_%c z888jvrX%CKWZ(F|L7^g62>3di#;rNfTzAWJC1i>ZP3s_d z46@6oz}zp(aO?9qqMy55{7c5fLJQ>HFP7ftm6N4?Q_)t<@SddhUEB{nM*VziI0CEa!yBhat5rhWo(-p`CKAWfCry za^L1GUbI|2H@E(-_$eJKBx|1hWhr6FfY-+EIQMM+o=K38gY+Lz0e4B>YbWB>N|5jx zDJHBa3d))P1sWwEl8?*l?L$A;2kSIv#LCx!1k%yDr(?PNx-U*AW1BC<@+&e;4|%(P za@L$t84pR=kJG=(8e5d(?(GHpleh0gd04tuo7?$FQ4OFsaxUJPN<~=~VqP(LBNhgJ zDL}m`2HjZeX}(e64~U?mSi@zrYMk@tK9E*M8-4NsE_HteH~kU4N}bIzwHW=(4Nn8% z6aeMbj2o_BBIK9997IKl2>J!j20~DNHM7;^(SS41zQlgY*dfzK%~bhyNiJ z!Y9F%XD`71fg{_)<-S};x)4*PnDqIQIA069m(%Rzt` zfuH6b^u$dXdg1r*5CQgaQ~u=tX_?c+re(#%sh<=LdeNN0<37cxf)uhliKvZco&7Y% z^Ap$Sv0rNckyCkX7PrMF-4)AfXQ9nv6Dx;!LfFZ+{fHt&3i){gN~JCHxg4YR06VKc zHPB}8XF*9OH_1IJ3QD$c5W?`nrkyGqZ@a~xixDTsz~#%rBi_BFel9m+t^;*AM3F)F`=G-0nr@QSP&PWaa7_MM)6EQ zi)jMaxdwOwTekXH@cyFf_?Y14jOR{hD8H8f&OzhZy!kE-bkNFU3>4EEm)1O3BAhYU zL1H{<_U+^=;jlP+ScRry2Z%_sj*7)B`)@Cpz3d44l;PXC_Lak(c5sIJLQ5vz-m*X(&6Vt5k zHxrp_L40G*zR}>6#=Dp=Jt57ws!5xJPmZLionNBc+sLZdQj((ZsU%!~T$Z#86T|es zK7QC1Q&p`ei2BtfLx|IWB8F39t`Gn18s9?Ybs+lNtE!!ROJZA`+FkBjyVC298R@U8C=Jb2cb&x8+tc z?Dt-qw(x8Q8oYkp5ixP5eqV=1`sGznV1}T~3STEUy^pbKom4G)MFg9IH5|D@h-3O` zSI5Ya_rZOB#|w6M;eLf_we0+JAJTt+pl_1X4>7F<-b@%$$Z{SN@8;SVo$~I>AegSK zp2o-wn0*qnv(eJn0(^cC~%JOae zA~f3G{b;7gm0EvKY0}ex%y%!fZ(l9|UJ9OIA!$C&kAc)OkUqbN`{Brlkt1jlfvyv3 zO(3sUH7=_^tql;km{t=FQ5l)ml zg?^Zveg`f2{B4vwhA zt@TQ-nz+fQew}Z@dt|yWC$;$Q3qUIWdmmZRZ^+gSkK-IfH7%LA9!v_a695ldFHRdX zxi`aLLZW3eB1)i)OiF0eG zdIu0(?vmHU1E_|)Ea*3Wsmp^pQejKDl%l|E{DH0$@j7&g5F5xE51mSYvINsNGJ(RH zrK_&j_@Z?Ejp5Y%zTL;xOf{CnK6IFls{I6~{BE^EG_Y zN;Qw_vjJ4x=8@wK18#GhEe*<^n>Np9La_4{&PiGB;65eK#m@1&=Y#Gr>cgbXH9Lzj z%>r58I86@(xTwG2V`LS6qs9-MsDxI>n#|qIPCIi1CxJsBN@8fH_Tto>0dg{2>X$!h z)%omT-B9khTg$Ry&?mtN1Oib{iSb0?aO!U)oSm_^F;TUpuX@Y0n06nfOo;O|GqYNQm+kgU=?c12=PTX37;=1bOh4d9)Gy$mW$!R&?9;sA^e^ia{%j)Kj=MU zw+R*s=I7Ldul#Kib=}3pyE-@i^!^+8<8hh0oy2w4QqTOqqQ(xJ#aY{2B-2L=PWGzV z9iM=gQK9m*tIp6Mf1&K|xzjQof;1Y=^rZSa$8b z&gs}2GB_~z3de8K1O5V|IxEIr7NlthL2`ijm2czaw*XsAam3Ns7Y$#CZ}#c{G?WF` zmP{cwIGOLJx8xMT#bskJ82eO{n_Qb0we{S8QczVpL$-$6ty)m`ZE%5HzINe?=t`#n z^Uy#>)m;c-dd)r4pVIDiv9I~u&rsOV=a=96w9_G}p8c;N27rk38*P%&dhbaS{V|S1 zMOTI=`WcDowNC%H{Zk-S`fLIE;7vMuj^0?Tf$y>Q#d72`7=?NiiluI_x!2jxSr?=! z@cnz9HN}y}B)6&rbe%R5b01?>>;YE{O9_ABt1bRH4V;CruuyXSfzYqqB7Ju0VIjR} zz$8ywH16q!kIArA>8>;g|`j_0Vz&;{VpE{rg4W)=)%7ouuBbdP^&#V zs;b(^G1cZ~@C?W0u?WNuq4+rL|9sM9vCi9mDKRH@r@(5sBbvoX&UqRiTI<~%o?L?D z{E9SA_yejRn>fz7X@3jaAv}OJ>Vqfyqo{qS^y=QjJQ;r4qm^35Hh?(#1!dM^E;KfD zA|W0KPV)>NdHRg=;G`ROzSYh@Dm5g~A8Nsqu>vTpcRVFn9@q+{T0|#cZ5K}S*BlRd zN9i(D5}uafw*9(+%Am2B=An976+;e{(MP|C@bO!BZHSX$@RpT^Lj_SF(lem=>K9Da z>d&>o!;={&ZFB!UF3)xPcCbk8Ydt3~ysn01C5QmcwNV*yJjV5!0=@-fNO=oF3e4vE z9x?o?@;3jB?pUt-YFx`odIV~)yx$VRi{W9g%S}x8JzMIVlQ8FJ`ec%ww!>yh6AS(V z{Vep9HY-fGJjE8jafeK%Zk1m(06hm6(AJ#b&kDak6>?41l zv7d~Yvl`uK&?)j(3h)@;^;vc_ah!eJ!h50JP~%0PvUo5 zTs*Nzy&un~dPvsJE0!1%Ovns+r z2Emh%J3?$&riflZki_E*mt%WN6Pp>@TK7%QOIkIRkHimdJN9@@xRC$cn7~*7hI*Ac zPBz?Q*nv$GPe*IDf(w8qJ^V^3yzIUn_z3X8kHMPs$=eYpoy~3=>tU2Od!LFcYyG#U zlAnAsu!#S%HY*6t`bJP$yTX!`lLw%jbIRR91ffcsmp|3 z8R%-LJ3Xzg&TBnmzY{DZ5Cl<6hY-}>$0(P@y268kH{K1p!qqtXH6rNu1guoCX?Khh z-%RygPjogwgE7y__lyEQF5PTq#fmULZFk+FjSxr>+6q&@&)%=afj9<{9sLjz+0APB z=blmiL}^}8UEUFH8J%jJEYQRimq7vv0~=r{bm0&S6`#Bf81YIqZs1PjM@6#wd8L>p4LT4wVR1sr$2@g z&lQ)NZkt4Jy?p)WIiU$?bO_X)DVTCVy`iBg%nJrnSKedgtF<-tMhv|#;fPKhIEa}o z8oauvQD%!M5t3DQQlpJ-1=>S>dkPi-#hprdK-A4b{eyi3B}>O95pFt4Tce{Ss%!y) zz7O08JJ1I}k-9xcx7(fVvpB?^U)Him1`2y%$WmiuW1IR}rmBB{Ra`q@Teg~KAEy_U zEfEiIl2j2{Lspi{nbHX0JX6D;>Pzo0q{`rvjFnTioJtZ*vZpc1I40_S1QNKPgTFve zUUcgP5JMO62V=JV6Z@wQUQ?qx^)HcsH@4hg@KAzJJ{1pDcuchFWkw6(I2;b>+pV_b z{EGxN1=xI){yZjRYVd`!h*?ctW0Kz02?b6xYEgjGJNimr4LPcs@9E!2Qdfp5p;3T` z%uE^Q#cXJ+JA`V!55J1|llmANI09<|QacB2w{(G-R08lRBnjf7hO|IYp+ag zt1fK~kC{$+9>vFKo05=GB*;1FQhnyhvauli^G4+zFp5=(^IMi?uWQe=!! zd(^a?=`;q+=v|wo`_1?aD> znZ9oEb)!rtctYHiL*}<|1KbIbrHe2v|KryImi5fE^xNADE%Z$dgog*Gd z#FXAjek|`*PVir6I?Q=UVUedD#P!f#+$z)62yg_se@?df0U zg=^jg{4Pp8WKpoug`^_GV&E~!REh4vx8QTs02iT(Jm&ZVk{j=#Yt-4g9&v;;XR(F~ zJ21ZOPjgN@CHreS*K{fIeN~@_#Bv)EcpX5CiawNth90PE+3IE}edP`_l~p@k>Tc+U zAk*<-$DTO#Kcq}a-D1CJYl`??yb2MB-bD>p8*o9e(3yHSTrmMwqauaTkwVTt@l;)m zwO4T!eVOPi*~gWHb*VaWQkPBuk3Ij%D2dkp%?Nr&$OrS8z6_@4fFV!JA` z(JwxlURBvc_HLZ)3HEX83gAyY0geJu88-Obv>HgwenlQ4DGkSj=_s4!$Ff73ah}F6Nq_AS=Lf!IfW6 zPUJs#U_>C)#AS+or~CtF&I%k^twl)uJjR&W!80DOK3dOxR6xeb)jnRgWL7ANxYhZa zG)ifW#XdszZBR{HRgn4F+u4j1XO&8tN>j5kys`PWHE$jr4P#egIVYv${xqW6%fkOa zrz7yuB{J<3HNAyi>uMM~Ma-YI0>%Y3L@%~_S*3b}Q`K}1d(h3~k!e=qH3l$XH62o2 zMgzvD@(Bj|WgS-b(El@ ze+1#28W2`sD8oKVH^3-9<*@x9IfDfMT;pc<)_!F!O_@K9Q`4VcTleVE!eH*z)M%ck z?*b@{x?5U6>*YN2f;@D<$RL}RFlxM_2of>5oLwF^06tv`yF&SQO zBH<(t`x*!_pE+Z{#OL9}L36nJo>Vd|90nPOX&Mbd7PDoynl`>({j{1&7(&v+xi_H9c(rX9}2nS zo0^dACXW7+5*cOTW#W@xlMjxdj{V|#bT#z}T({FP_=EW~_LSdmEj@$Z(vD|*%*@Y$ z^2Zq;|%*a%AY+4M5 z?w~;4FigWtK{~^%I#MP+M@F*V&wDp^5~g$8kOKSK5v>!~eX$OG@C2}}JN1V_XNF|1 z`yy1}(sU;sDz(4LC+jw|XC56Q`{S_PEhnEkA8xsD88O%}8Q(Gf-oOyVu;J7<+|%E$ zP#{FVJ=RUOia~3RO%$zXK5Q_;mK&Ebm>2N5Xq#5uK!MDinT+2gWS3m3;J-(CD>!8Wau(byAq z0DnFC;Hqi1r@uKWTui2)j(iK=#*;Plr|qI4wurAu?vn^pkg^13{1A8kJ^>~ldZvM9 z1MbD3k=IGEcpldAAD~#&d*SL6#)(m--)m$vX~gzre%*H9v@#;%>K$6?1rtM>x0PD3 zyQ8;Anpn`q(kY!VA zrE<*Jk1Nk`1ZxPC3T;c!_5;Kojz6Un^rk$aR^2bpa=5wouN_?NE(yJn(a)=}Tx_vH z03d4p#?(NgsHr&s=;B4oD~o#!4}X7YmNZUHIh3o^qytAE01@7b)phgV*j_?NZ0?p6 zsyh+e%1iGhqW8pQq7uDlyqMb!y(9f~lAwJsr!WER5Lq$kC=y4tv>)@aNbXU*iZ4sR zN?XuY@CL8f{nGDVLZ!AtG9T}LQ~=%KCBRO8_Q|Eihh>|Yf1PX!k|;$`Mke|4#u_#n zC8n7rm${{FTX9wN^p&Y)oLctfji+?-4DZSJ6Ph~S4uw$W0!bLn8LIr8zw7I**ZV%s z`P^;oo@>_Yv3MQDZmLXyr1D+>ENwtpbyEk_!sRj9D5uJ-D{hhPAi`*{<(m5U zXR5pHw+K_=_#LvR$*ShBTBAot^+sdCj^fyhcih^KZ6#JZLBrrTv3*^i%{ik}E7vK$ z(zdAc)Ql1-StS&6iLmT8n}0Bektc4Z8HltpW-Tr z_zUy(SthsNHAv(XQC$vV`rb(BgG~61U$S;W>DM{yx=S4#oOM^5<2Y|fZIi(#0|t>^ z|IV!ot2tU-<;3e{>mI`yi00`(<~Z)+vwega85u29mwKq%GhE(}D$#(|IHEfkw^WT! z$s>X8fhL5i4g^CG1N8X(`$)-9gPWC|eT^9!)hF_NoS!Gs9;fz-&UoO%NajvFx+0In_WwdKt801 z)i?L4^NVrvkeR^p`3J0X%Px@w9b+ve#~0)p3q+5`r#^-DcYHRQ0r&Bpj=I+5Z}vL8 z^y&KS6H#17^!{^FeJNo`ND;5@ZVDarOHal>25`mXLw$|Or5G3jfVff6^}8W+_!q$w zQxy_JALrCONryamdefJ1%XRw=?pl-HuG>Ri4{p560oeYYXE}8VW&Z82#7zfk?b|l> z3cN5Y#xqAnYbFGK(kJ#B@_VZgyHbL+>00Xa1QRXo!#~m=mSB(9tH~AU0(Y>3TE66b zbAd#|&p%0afKv6!DuL@#EI5)Nk?czd@tg9=x2=((x68}oW`c49M?Nv?fyR5=W884| z6ADXajK%_Z^+VhTNo=5V52w)_uCno@@?Yo@-3V$T`1)XqT&_psry{TL2o-Hgh()*G zWeq61UNoE^5+(p_p2M(sJlS{loArOOC*@MVq$UC~8|_^WZ_+n#_I9t>rFGk!t(3>_ zX3XkX^~-+z+{RnI_#+drvVfjz-?_dUJFih-7u44yPva!7agZn28*7qG zr@^Ly9w!?`;)d~hzIT8zMp4klG%Q^Xj(%g_WR2Wur&De#YD^&^lC{l=4fB!(qlkvA z57l*W%ha*!_b!(*xp^O7ICuMRdl@);W()7qLTO`F40wtOEKex)*w!`P#Io$hF_AQq zoYuF4bqwtqU97zI{=I)%)xg(|QcSsH{Hs|NKH8bS?me!9vHd7V)9^F5ZlkIkJAF5Cnk#mhfZ#!s8~H2N;LTpp_= z9b?tbNlcG=Imr*nq}YK-%D+^-v2y^)n8sZj&I?}0>s2sS7{FYg?tWeMvz3%Xg64{& zzr3Z3K{biGQ<_tpi(D=YVw5FWSdG)sD%J4XT~@SIw`l6OsfHwipP5G=zbrA{)HUNj z+Lwp_HoWZ<-I)rc{rZl$I64CP<~WW{5RvnHMO`BY>HVR1iTc`45}3sgzK3?ufIUXv ztHr{S>5@$GrJ=A>PIL)#|xegyxrFId&_tEArF7 za!N{wz7AgF4|k{4V+OxGf!dYm6N5THyA0mMF<|IJi&Wd18FKQvn3zyX%%km`*vE!~ zKcVsnu1Z`RFY3w01}2HNh6^IOB%j8MC>ephI~zOA!`c9&rqGZ!)L)G=f1Rb&`h%J{3o9>wHD)5u3PgE+wsy2?t z{2iwq1AGLRWL)s4PH3(5%eQXSW!0wib>--ZNm@}WxMfCT=GKCp%JsO&&X)$aWky3H zeZ#t;F_7uq(YMSaBw=5R@5Jw$^lNfHdChHCa|fBqlUT4XeN9LNeog-b@}`iq7LPzj z>1vF%Mx6leriq1ziLd^w~oWDPtW|z<1ci#g9u(`cT@YT)odX2zIb}B|%9Os|TKf zB6_#KeyshE{b9_Q|NUwyHJ*S!WeSXuSBC5(168wGud7!Uzemh32+4s`7mmg4XFDRZ zG3jk@c}(ucT~%EUF8frfW1b_r z)li^BWE=$zc7)U=qAh@ik1_<9mBok&r07Et4Cgf3H;TZCmn*q|cH99H2L%S0T-2lw z&)02o$8oydgBA>atRdr@dNb*o9~@x!<6A}QDYab70O(VdIoBfD?Z>pbscDr0Tft!) ztNTLH{@=|ioPU%f%Sij#Q7t>^6PRTZ(^B|Ic(CWMaJbWovw|3?!TYrNB>w% zCXSE-->D`kU~->y5p`#6^un-s5EJ;*$hrwkC3N`zJ8SQ)&vGq(i*}>EG4!DCCM)0{;s@~tU@dv*!t7Qo=IdkQQADpF*M$fK)Xe-Q= zq86VPKX)IqcK%h}xZ+a~FY0%-%z&4BI8M58H!S;zDC-uX&qH}jhv)98sS)u5NE!Hi zQbBrTYPTqDy;8)VIQ|E8SO5_46peE{1^5CNNOaX<7%2wU@XYZSaz$VDAf|{FPi7-2 zt;lDx{tv@%UTeGIJNb^iK`omz$7|Jp!kFgvqo=P!9&J=)eg@`Awz;gK)Ql?#iYSFM zDH|WYSBKmP8%KUXY4sRFK^$<~3GSh5J`Y_Jj`*?;V%MO~K1fbgnoS}-5dJK1DSMRK z1)dK*;LYCK)GDEPftAO_)lxr2k^4%YXw;aJvRL%|<0!XywdZ!I1^T?-WH&*5nDxEH z)$Wn?F|~9n}wL{d$w-IzvvmCNLwrb@h$KdMS;PJa5&2|@fOQ*C8gN_ z6>^o~5E1x9hsLwr9`#SB)Fk*eLjp{=r-m#<+vW_&AI$)Al(65MV84Bq@~YcTgy3iQ z_vAm9@)t?HpHts8eJ_=^yQdBj0!P2o?@zZ?yzB1L(Ia2e`|D;2VFC<@RW_~o^%Y!= zv+X9GM^fm&({%TpfUsoyOi+Y5CA3mVQ&?~?Zp^!f6VA?kO^i@iI9iGai-j%G53 zTdaKPQAZwlaa0r}f}GJ@mTatn%^533=5w`1OQ~+`3uDaAefnEk=EW-^PW>}QEL>~v zKZHa1vsrNqP82BT+h8RRVp6r`X8}20uin>d$QT-{ksOV&j|3$DZbpFR7%vILMV*CB zbQ4!}9QRk}Yze#Zk2jgs5RcQ!h1pTU!Ce#4COiUoib1LhaJbXcm&-rXshZyW8OO1@j&f=yR;O~5`L7D!NdNLX)W_nt zK0TP?|E{pT{nV`L*GJdHv|IX3;MLR2Tq4Nb-dOA4HPt^ysVYl*wE>M2zXL+c?*XQk zh8LFORCmdzY1TA2!D@Q0XWy`G0xX#QzIgZjO?)SQj1Nvw8IFh1IignvF-GZxY|&HNPrcRS$*j?>D>d@dzPS^l$`g{p`A>5sx^~&e{(a-GJ)Lvsf~G6 z`+JIb$wT;~3Rl(FiiV-&#zOnnkM4Q}D+9YCI){mdY;A1!GV&w`}RT0+*e1BfG ze%R8bAuMx^LVYpUC`|5anmMNl{0cFN3pqS%n82Q7%LZ)I84E9OFcGw8jBbM!>TE*#KNaw;e&&Ng#msY<0lVzb3UwN>%9(2M1x{)V`v;Uw<`J= zZ{*s3*qiob@N1W{IYKZ1YZBK@)#udU`t|?5$cO_3rJ4wKNWBN*hS&QMNgrdYm{&QJ z|E*K|YFT;O8u}1AQr!nLHPCdPlp0QSj|J}=%GER8`Tjq=eRWJ+(f4Pu;_k(@l)+t! zyE_c-?qzT(UR;a2ySo>PyB06*6o=yM>o=R-P4@T4W;fYnGI?_+?_K+x`_8@RoX-(G z7c7MuVP%!jx~|VP%f*MStecJuG61RLY9e7Z=y2C(Adi0y0ZHEChf@;@;voBF+RwBQJv)?}%^JPUWn!fjmD^o7}lDC!EI|Nr% zvu6wvlWO4o!>H&WC!&pd6F2e`7}czzFCqfzW-ux|JpAUI>lnI=LE1Av1%dW$gRYsl ziXpY)1%ley{{@*buaz<_%)!<5 za!yf>atzdzfFs%5clghhPT0fs63g$S%@HSa!ZmG#qJcc^W5iX2L^6FmG_)n{8tn#%iZnfs!_Nsi`hc8Rh z(-_8d;?BAF@C!l8Y`QY!d0vOgGca=-=Ou6c8=~Nkr+SEqbk!x@abo{!s&3l*W*Gg! z#@K+-_Gzw<>(6Iqp*|h&PtN8;B%jN`HZoR>N^Q6_I>@~?7k!Q$hZ(h6QAC>c-Kk?+QEJvtz2;rgkw-I- z#2?=;%KHL>GlPrQ@w;E}(3d2xZLB)qZZ+DlBsPv8e&prnq})`B9zkQfY5z6JPZ@eOTUaH=knZHazmhj}AVqa!LKBCYr(u(xS2iOPOk1KFfoy7QPmA#)NUomMNm3Vot@nmjw1Wdxm?b+!0% zeCQWknLEKZ=|}p^7p)F9-=-(QUH=0;Pxjt*vc4=UE*qi8gW5~<%n8_1oofbn%L$`1SxAv~O~ zK{3AkA)3aKgaQ0An|HHz?BVM|+4ntnf+?sn`1J9ZS*MU7ZT*NLDe-(HR=O# z?YKAExZ0=)T}q1=tyiJ_#g$uTwq*n==0|61%}HZ6PZvQ!70d(r1kk!C@`MJpmV2!y zXhP%csYT#pB1+j34v;Cz$97E2_JN(0%zsQ1Nbbdb@Zvu$9)oFSOhZv^Bys_`LC%ld zb{H@-?&-&9!$~~-$PvWTmTq=*N2_~#d+&n+str@?e&!Jh6lc8oF;pWhTq4CK&Ba~ZERO#9n;T{4N}0mAXUbfN zE_suslK?o@|C*ScKSqFSa==!zjYerorJPZ!q7iz2C){BPbEZupUlyD+2BMwgb^NK) zPvG7#N||Y}`5Evt&Q-n~@sVW3t%a~t;lgrJ;_Y?%m z8i&Uw{pjDk2FdZH_JZB(86s(G8-;MQZ=dh}BaJynfyFmXd~3~MXV zdDJMhH%J(7oaIMQY39rwaKO2Fskn%g_tyYy_o?ZFA*gYkw~bG8BcU{`(u2#G$u@nK zt}Nw7#`d8*DwY1czG(EJSIXuS!7zyA;8?@XpO!u<7i4m%zXHwwSv7o6R4z%_Bv9WfkJyvj%qlV$4Z3+{l zVx{Z6@=h!c`h#|u4zaUkh%@HRC=m*u7%KK7DuxbeW-7149@B>wU@e@%h?FdicT_;7{Co( zu=3eI@@*(bCy=w#M4##Z6g3!?4_iuA zP(bZgxA69$o92~nU+=<=Z7rj?E?&t|5QdIqL0f&k)y`Q&z>dw6ags&}k|y;IM*Sck zw#A#YWW%$RX6{dPAZ{*j^EnsLVk?{GId_Ak8I#7suzsSmZ6Zw$Cud&&)X9|AUa!BB z-;g0&7a#xY>SPZ|x_SqsT?2a8xN4DN9aO+9C${DAKVZIsdoUQ_x5yiO$ETRRs)=s|#y z_zGCpKU;l3Xi`6uES%SgEOR{&nnWLaYFli@tL3EKmPONKGEgyhy>4tLsYzM+*9d4L zw_@WxV;03S38K?!{h84paqo?gl99_0-N z)DHWUc3SOJUm0UxL>LEB)^C4iH_*Z_p^6M`jU)|TVQHPe`dK3hxV8Wx5sm+BPXbL2 zF_JbE;4BHl;)&PUCY(bOpwGQFn*!{%28{syTFwg-aG(Pq^mk4rg>^j z?bASVe`K%I6)USH=&qH+0w`ZFkmKxLLfPJqLmMqA!~L{nLvT;sQ47!#lL<5#>bD1Z zwk`eeE8UX4oIFdC7k?#3jcMMyQPC^QQMUvF>_4IA;v1zBKU|+48^n@d=e?idA)l1t zDr?`tnBTT|mKboy&A`RiV-fT@WsBuqNaj+Zp7N9u=H$f0LT0>9jnOu7J9Obg>o+T7 zBUI;X9hc7hu3$xzTmLc*fwYcoE*b4sFWqxF5azGmFl-Rpa4BtMcH~z2CDV08og@IF z;?;*dU)Z{s^S4uOGvtPjj6}W$H+9$AN)n&B6?pc>qJ{8S+?GFARj5?tx@`GSMATL&IOyF_aC1;9%byt(NuKQ+dLf+ZD&72@6d3F zjtN!ailvYufjCsBMMeoEJbPN9mROLI)ho zzkQZWIJFrwjRLc|dO8limJ*)G|L?szA_A8>6fhu&| z-1a`bLF{_6U-7k3PLt}?5HC?SMytyu-7jM+EMvOXZ-_z{u?&+M@71gWe99>O$%~lO z7xp>2=_rIQytDH&&scY5Wfa=?*{wv%ZCS6{@!H3|mdDsC8j|~V56LUpE4uy)`R)2qi1%1Iusr*BFu&iR4gqtN1e2q39l^8W+HUGR+z=%=LQ{VGWP~n~C z4Xkb;!-+2LV2V2#G3$dmvp({lu8Kh1!fLdGLM4FHu3xwJTZGOluh4z#H$EU&%VvjN zlk8X(29U-p=K3c++r!0k8^xIJPKj@*?#UHrE_IF9F30V#Lxktr<>nf8&FiXxP2%qX z22IU`#|SjVIb9vZ{Fb2REM7hsK?R<{@0ClcoeLcvW$^VJ=tKgiCt>PhFAC z?>%;X@SgF7#%;7j9}=y98@-NeE6iHsb-?jL@zZ%Ob#RZl$9!Pj6^w*qL+>??^rAXl zn_m&YQ2!$=R)|19NaG^{7&UJ=aDyT1DrAlvU4tOm-p6J0UZ)h*cLx_&hd25q`!mVg zXp4Bkx#S>4}i}&cPWj6}+<{I3^?@!AeV+i*Mnre@m`mmPz7?uW5a;g&eVFykr zwOlbnaBnJ0>t~G?!lB~^;#qm|v{__F+lT{XM^B4Iu~Ql@Jji@~$-1Zv)QP;d{xw1+ zgy(YSURx;G>vkI6CVV$}3P^HYRaG%;J~mLzb*POBex{;-*KzD@s4q~~etF_w`u;fw zWhlob-J;sNV|cucdj%Y<4`~(~&3x3N2QacoSGuJfu2YMn%%+5V3^yU%y~pVCt{ z)AfeiB{_ozxrH^q^*PJPNBE4`%b~t0)rfHBPJ{{y2n>n{5Dc`z;l3CZEixXor4S1G z95tiG7^2P_EqMOJB165=*hl`3KqmMb?=kE4iwn`Y#&s@Puf-;4bnmHtyi|L=QZ5NSpnc>JM40sh5 zEw)^L)Q!dVI0$o+XVOb}#uV)=9s)?uc(c8Tv#S&jFgWSUZ`Agkr*gBEZxJUu-DrASOdz=}SghV$`H0djyI%6aR?4BZ7ZM>A z3ADeM*F0eL&A6sqg;^`X*8-z-yigYVv4^685rW#QL>?0FAG7*kKQRV1+Ah(q ztq_yYp4nfAmr@j((O;a`TEvN6M5PHy{#xQefwO zeyWQ*3(ss698nQ)+*w$|0oE@I@SA}EoDy)0@16+1y$hWVDb+A$X48(asNqcztS;`5 zvkH$d3e@WSb)2EG=-$|{F+cbG!Q{INsE|o_W>X9B^E>H{>3tx1NqNQ++8N6>724#~ zz^1?rja8~I|Jc0pv)<;%Zo7u=hPaok(;XgFV(<_va%kn!f^Y=0EX(n0^jWS+9wgQR z(O8NQ=y?_D=}JQ;rS$-trMi>hBA6Ct$VMw);K31$#0z#F-3dZ z8E8ND@AaOubuZMue>t|X3hb^{EH_Z^R^YO2~bq~Y1~u$_hQ}C33jy6VHq>%?0MECv z15Hk%hN;&#+@vo|bx>NUrW<8NXENu@*>0NdULs*qzJg7foQJT4hC6+u8Lt z%P!;69hr5NL)td!K&n7*t?C(qi=z3mNH>&IpYbJybmQ{FS%qmV+@ydflY`RCZ=5lj zUXo*W#1`^=p6(7sA+aWkiVEJi>HLonAKt!tp}QC)On*)jmV9Z!=?2dBpM{WRM8>2i6ZuM zr78 z{B8CHYxecH4S6cS>j-Q{;H@?Er6h&nmC7c(k81N$sWNQGjSLyO)erMY7Zd{z!i)#5 zkbG84g-{-M4j;$I#v*T4B_c}^3hSqD-?4j~y29=BL)POATz8!tlGruA6S|+Z#Oh!9 zji$B}HRwDVt*TNq`2^u+gz0GC`qmRYkvj=In6HhKtwoHj?;xExS0~J00THLdHciDa z1x~hIU2j)0jWksw*M3nMmz;g-e~G2IvvSYWB*qB7x>}R695^ zg}YtYBn*+vp$Gqj`TW3$osW3aRJAjbwqR=tG_Ogtr%&OY5|X4=rcihe!vmq9e$};k zw$Az%yVHcf2~vye!A;5VP0t5O-FfJ;`o3hdo5xj-r|fq>yAy>XeIHj_+j=lm`Xj21 z0_FY`XFCDfvx#rgVs^F^eYb=q)`1V%)9#VMj?gihjqHKgddWCwTAdq1A&Cbn{`im9 zn|;G-gfUUB%phziHY#Inj`J6@oxdTT%GH&XmHGM5z6my{AjVzj_p)2q(N(C{YLV+= zy6o;8Jh@OI(3q}E?!{e8C!lKA!r8nM^vC~jJV#U-CLik85+-oEH&k3`A3rM zAwlSL+)$u&W)j>4p?(jAiN7xMxA1o5)&KcyN36Qs`_CQl@o;| z&GbFh!4t`y8KR)s+waC1M>BTork@H2g zIP#q~GDyMHP(DGKl;BY#7Z?>&yM5BI!3FD&L4c4+LmGLfN`$~1EdQmP%+t+TX zFx{cOm`PjF4_qOb+W94tsj|b%GOzL^1R;4nxKJwxk!&YQVl=b#V#ZYnNPj zq2M&n_An1#k`s|&p!jR*u?VeDT|pn+&^cs+s(6uM8Dh3U)U2w@TK+1m##)rw-^)=s z&Bm^Fg4CIRORgs|?c#4va)Vih>#qZghI^x8hKVIoWy!?1#^DR{FG0p9R^N-bLEP&*~jHiSHsvf>=<{nu2MgQwQC zjk}Cj^NmkAf3xppYU&sTTr%n$Ye`2+-jCDyip8Ev3MR4aao1oJdzmNFF6>Nh9HzhV z9hki)b8pbqFWH^N)Ay=>1Qk(-B&WH*;v9kk;1TQ%W_aBm^-(o-U`eM{h3T^l^wkIF znDFMq@#5vEwZ+8otB#b@W{lW`{$6FoPE^T~>V6f|bkS;AL!zzmLdK4dP=aiP)IS>V z5KVhGyH~@ARQ_#6kH^|YXeganhu#6YA=gge# zc+reV$DRGxz{m;9uZpREv1Ok(fntj{f2gq6;kk_)v9Hf%H6}TqqhCdD7VpyTRcbED z?mh%f@BRoDDgT6Q{V`4{Hy13-8SX(NN1tN^*9Ez$c|BK&Nkx&Gy$@v_i*;P{oVMB@ zwfB(iwM*vG!slLEmJlv);T=p3Gqo`K(HX`7jW#qOGT~c1aRZMdyI*n1lRl&|3R9btro5Y_X&4wX%nvWq? z=GdPWjn&g}>HWEc(6ZX@Zd@eX1~fdF?UhL&m2K4*YbnNc=?(@Xsv@c#8^bXn9lnKG z3X-`G9;QnPstMSxufFjaN%at_zldagR91sF2}h*00wY?8FPodkfW`Z!q4hhU3`hjL z)NQM5F(cmPg;du8+7zTq#S&cy8SD}1(Qr`g?KOi(RTc7@+jMV~w&iL%a-6b3%=zYV zywuL5t*~gh-COmpjHVZa2$m^~l&iM;E-jFOD&Icc?=KyvKuU~V^tlomOG{w$O;)~>> ze&X^h=h&92-g0-qm?QW$8TR|}_ulU-D14O|1&mdok2FnP4a@siP%Y74-)RU)MfGv%&mFLtsM0NxSjx}KgG$bx zX@XCo(*4zTQ`l&Ye%OBm8WYyCs zB;CK^6@J{Ul~}UlyMio}3tHSpR2VShnz(UcHyV`#8aONka4x=;-P^-kvb2MJVSZW( zI`_JziX1yrPiz@=^P0go%fGb7vUPlK9NCp$$H%%wj6*sZ z;Thcs5_T608t@Fxl^ZJE#J(G6cPw zO0mbfF@uH7gC%2URt8$i0dqce1GDCI!2dEAzrPD| zSs%9P>>NVZiYtFOV<>=v`;&yaZ%Y?JFMTKw4--9=K_Z0)>zSAp927~&rJefFbq7I{ zVuPK)xH*XXK-ZKpDjUgztYt)}-PH7DyWagg$GLtZwH@%{Ze{uzj+8^%KG-4m;~+zDfZEP1>w zIB#j-OgBykyLlB3o0V|zgTB;KZWM{(fW`Bk^y~Hf+a)(Ld73Zp2swAIH*`DxOlaLv zrDu$tN)(2mF@I1@{O)D~;z3mPe3e|%F_^A3K^99^C+@)rB4zzfAnajF>#ZYh`JbpK zfJbfp69^P!OQ1jN^tmD=buB$rzs`cqToxZ2&dZ+*2noay2wm07Y@64N`kf~&N1(6< z@*X?ra`IT)-a#MdN#f|fORpRhGHcY!+3S=!I4rh3D;k=QnCM;RmI|w(3&4G>*HScf zyu!{Gha49>b~7PImTs8yn36h%&v1TJsPy)@D;ojDF#mquuU?dmtj&upn>Ucxo0~Zi zGoZYT`hE}v^-<#x@lgw!udbt-dJ*2ZIK(t2Tq;K!VDC6Yv&)RV(I^YSGk~@rEq&uk zb%bfk6%FoAE-cR1c>hrqK^_|=XC+8zj@QS>N!!|4!ZSX8r}+=a*Vub6v&k`5=i)WY zdck_<7!$sFj`KyS_}ZP2k=ugT>oEPvjC)|8qwOLD#DKzDhl0#kxv6wJc{wad9iM(& zZre_aO}2r-K6(jH@;f7ut9xs*q@p32*syhLcs~o?om?_aL<%q?KgKU94#D_wNZG=FY^Zz*ZSq3URWvk0Y@i_aRD8~6H5^0U z(zBmPVhrU>Hf&F&ggRu+@7C_8+;thm^;2gyz!t#%1$Xt&z~K}@1fw_llBQ#YkHw$( zaL*yB30_Vg9oOx9U{gc%=2(2)Ldf`a6k?FE*GVzvTu|K>S>4vrT~6y zyL#%a>*YjNSDJ1DD&3ZK-RU*r3qaYuu_3Vt2|`m!rQ&#Dox9vHV?%;ER^mksPdq+L zRjJA`qpVzEEkS-_SO$X}sVY=I+6b=$m(_S)Jwq<13* zc%AN6La;WH`}QRPqz_{#=ZfRrj;HzMrw<>cCIl`oPSySj`5vDUmYk(K+w?c4uVz;g3RYR% zs~tAq-Ids!Wvlp3MIFOiW_v*u>OaWqVLlFNhq={nk-Z-&!9t#ifL*eX6i-{fxyX&yLok~3vYM9SDTbn< z`?!4Y^L%)GYH~&hI!p3U4XUhBGYL=2z;2_PME_zsx+D?3RM9Ns5A8nBm%DZGqkc`A z(R0HYetbk+IaY_2ohMDvcQ-u}vV)p|L+?iIS`!ToEC!j%iU#(iQz`0`@U-psDJS); zwqNzl1dJL_nH$d-8J53Yp+aoM>i-DG!wI}f))6|-1d5ZqHb~Ho$;KPdGf8L%674i& zsUdDB;3icwA;gn~Cwqvxnql%vA!d{RWj0?n!A$$AbHDl766>(!{g8VF&!9HRQph1J z8C~hSU`#j#HEU;cc*qWBlMy#zldqAd1fluW=WmnSN2F8lb@680X<$H!xpnfI&&IuD zqNnWo8AnEe(DA5KU=&n z?a3D9xdRK>Nz_IZh=P?z2OYUW<9;Kopwk-xItCO0OA1&%ai?#8gpkb;uZvFFevsk2 z=_!^o!KUfEn~7mnnP7yI;lJ4hk|iV_o5ZL5lur|T(`jE$d_~0@jMx}=gx(u|M3B~I zFR-2|k;e^}HWbvc!VK__weAO5`TrP1jnh38fR>9O*48M5M%l$%t9Jz7O(OpUH?|QsGzB4em@$C4^Co^G-VJXZgbLcPoX(HNVc&>0Zi77+ zZ?J5VCNq;%T9>CkRS{%SvDD z=Zi&S>+i7vGpYP{m<}<{v{3bjDR!s>mwWW9Y$kgVdI)^dc6*?3a+#}Cfdzayi$(S- z;-?w35DAP=y>-sm72@6pM7NB zxHPS1@I{2x%M}^>53tw!q!DY;yg#Y8_uChK{i9&7Ri_rrpRjSZ0JJ^!Lfv$>btiM=Uq#-<&$)d|52eUE!b z6Tx{ygQ8ql1X?K7nJEdui$}UZtSm3j?=GhOefqr~c@1V<-Zp(f>jM5$7M%eYtg-M1eyKoJ_ASkA-YU}*a2#3Wxo8*JxoI>%zO2T+Nbb(f!Q7q zW8-um$!d$^w*viGQh|swVUgh9ok0G?P0v7tK}{te%hf+{z0d(jAAg`>#0pw%4^iii zHjI7?L62dUI7)#wgBtCRg!}GV`5C4@z%1}9z7(EP*&7RN`F-OxN#itSI!u>R{I-p? zbpSU%K=p|Ot2}l~+VVkpMtr~HRG4K2g`3q6f@k4P)kJIL46oE2k0A>pQuN4VgYSmH zirj(6D$NZ%<8!smgK4~n-(Mh^E(1;;v)>KkL(uDgB>{s!Npv_Nw=w(!7D6@(0?WWc zNs_eF)dM>BjEg_lO(hv!uNAK3lQagc%CzGQ-*>KGxm%L(V_UqN0YFc)hdB)_lBud zoZ8;?6RfXFTmCpiz>bTSM8rPbxsW%)bVBzHzX1H)YqNs)X90~@2UY-f%--{uQdOu5 zPsb_`DEUAA(nGy`gW=@<&46U?VCDk(Vs32z@5<4{1__Cko12`4{NE)9FB?1S|5DEL z-^)LLW|lX1u!LBVvvTtSWvWQblGb(*^DpGgl6J-rb8&N1M>BIIW_3>|b8=>|l8KGE zDFlgG&D8|*pAs2+V@u#~Eo(F25o{bt%+lu8mR6AeT#8ylT$Ihfh&kFjIXaj-K*)KJ zn8h6J9KWbJ8Jhx66E}CWHZ_;}V(cj>i1goE?vbewFDIv~f)k=O8U2;Y2<~ez&gpcg zDLD!4u{3--Whpt$tqS~6zl^C)gwQaxOKz4DWMi>F*I z=JS&&m`u;aDZlyf!P4GXi`y)=Le=2#aSb7@%Q_{pZUE$^h`USlclW@!m}eOk4>G6MXm+C1>GIzB0JzSM$Sy?orh|RkRzLLWF5NdO zbf~=U`qHuX#9Yr*x})&4*nfnq$#4k1V@ElVQz^_fEbH(9eHEEy;Ya*b%@wV2$TM<= zJ8zq9qr%&#nxH@`uHPs4+!2{_`3cg#CwEp#@Lkaflbe47;aKnEciR*_K4*RC7u)Y!$`3_vsI zzq<7Ss45t{*aE-*Azt-=1zNO*oGrEr&MSLX8m+}M)CwMjg+;;&m}t&z&o-|v+p^d$|y(Ox=oMh+HAjj?F#fxIeC!I8Hro+&aGIedbQO z;eL+s(8zs#9u+{iFg)z>I92LW!8g;sv7T(N($<0#Rk+f)V^1(~kjguV96-P46X=s` zXD5#5{U-FQgp2wiAW+Fpd`o{Rp=0AR{%WHP?6Fo>LZgVT-NfV+%{F74R$#j5!l&2q z7>q_hNHlt^p%!b(1VBOEqD$`ln@8_&i`jRfn{N=WI=S^8jFRyz|;=nuJ zg-Kl;kcp#`V6A0k)`mM7=g?TrP9GsjWFfW1SHFo;__}2%9nVibzEpK0iQHe$;mL;< zzEM-799TkNQP>cuWgAc5iy#Wq^&m)nOOoKTs$vf7kHZp&W8}p&?}aviMIg>?1R3tQ zS+}|6S6pZpiup?`n0W84REBW|TW+o=deBOh5KOjU?QY{J8{OyQFE#mpcna6z zz?!{V_Mt&^YnE0~BUtYT(oI~%Z_{Tdgc)>WW8vX&s-bbhU{b$ML%mO9cG54JNhUAO z`{|}vlQE~@Y)coP#Aqjn5=Y16nM0ocW4VQIC1wovE8epSxk~B!!Twh+gIwYvQQG1}^nI5OHaa6X70gSpy-77MET`b99Ye%2H^elLy7rEmqkW_#`8A+b7Y1bdqZ{P`n6jsVU1$1sY@f z6Zur4FfYm&MF^iM=-??zo(>=rHaYPtpS#O=mo`>+&qAj#;FeTliGxo^$firA+@5}Y zLY&!(BF{ea2pCqX@!BKTaFIlrnEI2wz{SZ*`#H7Ee2YZRZSA;2w=OeHouk;u=$t9d zT84F>T!2|&Nad_dNYE2x z(h3th#+@OJcRGwX*r&_u=yW!`0RHxPp1#hyRLF~gmvFX}IQZFoVpe-@D0X;k#Ey^* z^Ymcgxdy{)*=qoz6HF>(uh-Rj`dTOE(!icR6b$#cNu|#OI6Zg_wwRHz*d8wnQ(BCMsB?2fQ+0pF(d& zWLrMZ&RmZQYbHqxoOK%1ed&#oDY))vu_QebIrKE|-3yZjy6Ja4H)bIO)|-y?ER^~N zmwS*DL^<;X!!8c{^hFel&Z^i6_3^8rjxB! zJ`m{p_~%)&47ZKV-&s0&z$5xMsE;mJBXN}`zj|z!c4oSbIB(rcmrOdy0FORD$o6`k zLdQY( z_~b5(CK@Bq;b2X8?uk8ftxEmUEavrm`DH-%7vS(~of4RxLJ3cj5ENIF<88CdFnQhF z>|uZt3=M}iDpLO1?#y}O34d#qGfK9ePdd5dI;bKr{FQKu|J!Y+{t8E|u>dpD_GcI3 zveE;~ISCmaKcKtt~8vfbHsJoyU; zrScD4W8USFS8*`edjc@{Hi&w@QG`mm&Nqfs0*uRfQq)0~*ZKPMNyMRNR&Ge6n2xdE zy2|Trr;q|c+K|_8r<+d2+Hb(DWf}>bznE4SYV{-ci#)2t2d(+J2JN{H$ouHeAbwVy znF-3=`|Ri};^1ZrlsFUf0;4+-U4bva*5;%^bH&cpW1(b%KIB zze~Q$^3+aw;(6&RA!U8CL{Y`^wmRbVJ3Q)OAS@<`I3E!F9D%3#ov+Q8o%ike;*!cq zK-IoK%i-8%r?2_K{bS2|J?#JUc>-T0nb&{EDlj+&8JFgH7q-E4v9Xj z&29mC8H}73GQm^4ZBp|6H4&HMJk~j&Emj#7ZFN7$utqOq709QRK(#m{Tt!2K~=W=VSjmQ5jQIV#?5EJV-|l z|FDBAC;kzhiVt;1>?uw&b#6*PpF}Qp5bX8Bpel~0+JtXUp{1ZtahyN3VG$JzW zos@adMPzz}I<3#jI~@II544}8NDy9k^XSZ9ok_Z@#+2_uCJ8w%5f|YduF@w0(3c)r zv~v;x4U6cWJ32sU%OC*U9$2ZN4pgwglplmI&8Rc#4nQ>)Xn0r)4ghrYD$J~yDwbr2 zDe{3m@}9HC!P!+~hIO<#tzOAhR+VsfnJ}YQ0$mf-K zaQ2V#A<)xwFdvuH74=&1e2{%iKe(N-CU8__c%wXnYUY~l20FQbFF9r+p26W`?kzc) zF+*2q*|d$3OCcjg%nf8_U%hHyTFm>m>$FZSP?&V1JFVlCc|gfGutZ$;48ZizHq+?Zl1g`<$3%Rd4G$obhLTZ5DPl@peh%8{RLkIY6$35x5uiI81U0-@-lFlN;6Evd&L$p zf6HzFJ9HZbgT0VBNdZ|1Y2sC#%63P;`95H39W(FB&_#9=SCsp_PbQPSe` ziYbcqC#|M>Hku(u)Jddb>u$oQ#a!RNa7w+`3(hW61E*8nV#^sK3aA{k8b=qM z6!Nl39Az`D_>6iRbcsXmM5pGoUzg0oi`*B*7zD_G$mMG?TbDvKlcNv(g}A}?F?u{M zU-C#zj@Wa*$pp!@TgPx1hGf&=3YO}1q&mjP&$)@0V0k4#N`dikV-UbDFNx&(NHArK zKNFB$1=HGzE+D0|=BI%^5nqruB#kb>A@yi=4Pc+UX@eMX1whQ0ZX@Z;%qcL#>5ehL zcm+brNaPj`#7p>Z-dSI#6=zTZq@h!>T$~f}Iyap((>n!I?jIatP}*Sy1PB2+T(OJM zLl)rYZOvZ>d&yM+GI)(%#U)itDLH}-+c)DgF)%v@~xw_WWLVtCEu=j zV~O)D_Y#eZ;1JpKmuy+))s@YcO4>4Zksf>SgV!NuOV={1kp6TA=1Xa_qzML36dx3f zv+|WL7+tK>znftQkyZX8YZO0azN9LmvKBH?D7N=J6Mpb;F~Tl{+!tar|332k&Hk`i zYh}`*t}0-Qw;`SBiCmAe@LcTQC#As?If;8&UnRAn=M z?!nqff8P^45k2Hp8oT*D{)7yQ9NG3a1K~jFq*Co-duZ^yq@l#HRL#MYl$! z7kSl|5xLTntV=F8yoJ3pK&4xPdvk2T+!S#Bt(z$Dp{wVQ-Hv(`oRry*Y*^Ghr_CWU zIl0Z}b^jgqbtS<*+sHABI@;q`(|GrtD{LJuTW=?VBQyF~mpsmTU-OV~t=xxdY~%RhC9 zbdx+==Wy&&$eoyeXK0gALGVS}m{&IJkxCcEwC7FlU*3 z*3ns+0G}GYeBQ~GS;5Pg{QEn!bKoV~PIv9W~tbo&`2!Ygrzv}{)& zwFvW}@#xXuOq6<^wPsY;>_{1z(|0*jFZ*H4Uk2Bk5a#|`b35PH8BxcZGb)P|%;AN{ zrK=;~?EIJZURLWDrzoGp{USe3$TFO4I1K3&?IO2$bh@$?+-_>(BRj8D+6O<{2ypto zw=$|M%oD-dm+Nk(Yb1-x)U$!eS(ijnZom2w<;jpk?5iL46bjvax#N$M()#Tm66nfR zy)~b1)T<{WS?V@cHr7*o_4ZpLacZAp>vn_^ZmO=dq1|5{Pj0@vS*xDncEIMH96Gf! zF)oN8l-Y3{UM!s>FRJktsXiYh(fP`9-5&gX#o8bJ#47(RrQ=n3!Kp^pyxU_VhktvD zS%zgFtWU)%p5%V{E%k-xZ~Qci{9o6ZQbH9hu~c8oX@0Pr;<%<_YI6U|U=!D&@FI?w zzA32d2ygIciIo)o%0Sz@JRuhmA6J?`pI z_J{D)+79viMP5nu@brNvL_@Hlv8?@D&frHn{J7697TaLI5uK?- z4G+Z&8J^{QB&-d|ekAmQ%Dh>dH{C~KPd%C;5K!mvE_#{PTvk_K@bZpWdE6p);7t&f{ z?*`txy~O{)@oM`O4bKymDo3MQ3(vK|OrysyT+9pyHloRlBSVGKif-NHc4}z+UH1NK z`JanV@5bu9z&x9Kg3e92)6X~X0>ad9!va<6^H~yE;8%mh$)$ zlc;Z<`ppPKHkiVgzOwHz`P;WjicLSetX#jzUg>`yAHqu%$yKYMU0K)Ciiw$;FN@B2 z2&0{!wlR!kR(@tYAy@Bza&qR(nLzgovEinY7h*y*Kim)Cl91rN-#6Ji+=iW9n!0x& zeQ0QCG!B0%qs}cT=mfs1yAjfI>2d($vS8N>-|ux^51Nfwhtz^&f^p5`K`jIN&uV^R zAM7=(EG_-`z@b2kyi>&e8S;F_(MHB0z2>w63 zoYl08ujA*ocP6i*qWw4pE?;|3><#ou#BHM#DR*L)@h4)SKZ`Ck znW+d?Wc87{L8dKMHj0=eAZr3)zWMcR)D2lkwcQFQH=d^qC7osHRZ}i{GXC!;*={QhvO@`sCg?jh7=O2)Ya2^J&DfPHu5qm0as6VF?p?W2)IljV*(-h?inwgi7pF*;9xp{W~JuXB4LavBJT!1avn@#wTP5{hyv|G8w zpe^F`cLrbJ_TLd_aeBI~fvOfxm74)ae^!dSg56 zCwsFIW43KNxADF?j2OkB1ipuwl7{@8a5aBt$0JwwUXt3ewmxK=W}E}~04R$XY}Sk? zQjnaiajo4PIZ2=Nhy$kEzzlB=c;43hLA3~8Fv#h3H&)QH?g?tI^)e$h+2vS5Fx)84 zWaDHuC~F8ge*XE|GxcnFJ1@JGSiW4X9KEedMeqO#>mJsFZ>s)yIDfLvWQzhcA0ng_b7%3tpAmrn;l;1IHhn((6MzbYDr*fPS6>*V~; zVt>c}{gI>BX;VqH2nm;a;Na+(=r{09;2haG)T2*G^&raS+hCpod~@>n?QHg6$EHZ6 zK@o3~vPoavOR)Ff1%i#wkR8FnXNg_4`zOMuKFOAO;D$?a2cGQTuQT?a4^gd*w{VyB zjt?WxC9-#?N$dG_|Dgm!d1DcBUoUESaFG|LyGx6lZT30jc=zo)Z=H634*fIPo9lr! z)JrjIR4>cP$Y?q)EOjvGOV)%l;3#aD#s^r0gp8=K^GDovZ5eHO9R72|E!w^7LEG=& zY-EkEkQoQlIOEY|^HOV-2rKF;o2?r)0&cbA5W^fj5kWOuT^*fk-M?bbuft6E$=)Qi zf1nb-&cJd9rn|iPw^pP4fU8PeT!#v|j8@bW@H5N*%<#p8?~1*HgM*EYCL{Ivb+R{3 zEgd+!;>nT&Z>4Qw#KmhG^IF16{Jd|u4&A;%-yOKU+MpvdO{8{pcWTj8Y6%Nd5$8>F zJ6%-qea*G4`a@-ns3rTsft>6^RgB7xd0qvViG6%=&TWmvF4M$1uCi2je=?f=D#2+IiZ{O%I_Lz86X@R6CNqU3xxC z#v^`f2}`^_f9p!LfzwT9W6KYqUCLPQeM8(1lQ6t=FuUe_j%m};{w5!>@#6VW`%B>z z561@hnu*gNA=E8I^4`W-^ns@}OXB<-mfI$MUga9g5sKDrgAV*ZU(PnR1`(^GO7C1^ zOrf2L&eUv&j9q9CO5%~KdI)&3t$({1+2ywOM%;D?`Q7UR{Fa+FXj)rxsTT%**(yfG zZtvRhlu|8UCc!_cv4iaoW^SnI*Q0g5 zV>4V`+BLP_(HTIPBb3c2Y)yr%S#If*HJ|@%CI585m`(nNi!HJEW@*8nZbW`*5}xvA zv@&@dP8dx=dN6yt`3}fj@O!F$!@=HiB5 zGm++{#WSsF7DHX5nX6?UzpgOSKKmL)4W5XiC6i$G>ZE~=n|3Dnf+4D2X_lS$C=!RDi+Bg-dJeKoBM#R<`A zyF2z8sxZV$B?;{O$!Y927T@?!gAWnK3PwLI!lM zk@Fao$o#?~XLvq0V>1KORX`^JffSJMXo{OIk|`$+f+?@)^kW z&m+qdVVM(^CMiBdT|WKzmMoP{v2*u=LXFRuYQVxIX~ajY#+*NHgL=}V!Pe)uk)Ax4 zgwX7v0)zQ{Asknbf*BAaZJhPv$iJ2>tr48=SsseXh>XCF&!j&<2$(7*;$MT&xI>>C z?;5>4o!v=fY#8LVW_eP{OX%zCdjqy^C%C0h80SH{5n_g?XxgEvFH=Ex}t)&6a1nd*C-po`1hVaD-{7^j8ccWY#3?aJ>J#iSKG$DLGRr2aKwT6`GMJq7{S)|wJ$4%dOZ#kFHIVi07FinGxI)*y_Oi}D@+Sh3Wk zP(?|Fsc`9F6cq84-oY(r8?Vl${jS`nNTiOmRjsV8H^%imb+30&QV8r4+i-z0FSqT6 zR?wvA6)B>~?$d$@P(L3j4FWw-wZ%-?y`f#q?OC#-%9>0?;MJTk#!IBFV-RY3<+Fba zYuP4Z(6Zfg#%OzBYt5nQ?-otfUVIr2r)nZ#o!e}ee!lu&cs^5#l=dGEoQdQ_K^4G8 zfJKpOHZYWqjV!b9jd#4nNBHego8Vh883cCYD~CqOi7pgTz4yrp`OSk(GXP;+ziW4= zvNw5#2e!q>k!JFeNra3WWLT5fr5xwB8Ub8M4Y_Wen8z5OLpdew?SMJYogS)IJf#T3 zS<|x+7>|_QSh)h2i@j}fX~C;jnrfPq8QRT--n?tCd&GEMDZ(kd0Dc?r2Vp*5&x(l-{X0qK~g&2&##}-tpd~OKt9glf(d+H4vJYL zZ!jDmFjgLERw)nKGdmakxyno$#z zDG)N(A@-_?&U5h<<_v%~kJ=C^t@A{lC8k8`_-+KlaOwpJRPjd zz0rAa1iSpn+%IzpLRrzbM>jE>G}?5QT9`A~j5F`)#PsrPMh)VK8M-e=`LBX6G>H3W zixV>LS+z~Q!h4KAF= z5BuuFFarsl{07RZ%G=M}BLoSW`b-sRWmOL3bQ5P5$>plG<;?&Os!D)|tmqGAR&(bR zQ|T7|spH3qIgQ^!(+XS1YFEp?Dhou>4nEIsR{aMI{a&Tq*Aq{cTa)Ns1VG$y5|9=&mE};kS zrV2mHjPUy*NHb+FCMFjW<3`M&x_c3=vEX2g12{$|Kl^P4agF;YEF|u1L^~`7j@TY7 zeT4bpzV%CnKlv+{D<*LGA;4v1oCXw54?uB}NkgjGA>l=sNY-ub)ppU(2wq;0DjKmF zl7vR{Cmi~>UcPj7f2`dpy?wql5Y9Aec&)PdcDeR;XS-HacpCkh5?v;zCm-yQ6P}Xw zdr-4Q@_oHabix*64;&J7`Aasn>+qo<@wVwZV*;6JyqH8RS;}ab??_Z#EPs)dZtGee z=E#w8rCT%x&mX0|{{bgZ$;lpz57o*B2y%w@GvZb4xVpMJoRan`(}~vuGjLm|ra>;) zHY{f?aY0{lqS+^Q`P;Am~W$L&vnp`-|1&&vtW5>_R}nP{oBlIaDfw<3AKC4O~V2i zvs|KJC8rZTK6HmOipG#q{e$QB6HvQ!=cyQ}@6f3QSC5L=lwCBl?Bo4Zb?JDGFe&>? zc1^}6%+Hamijp^>0t$f@rk666!gx6?`FYyxne$ir)d&WbJUH z>HSHH>VTZgW>*#QQblI*?Og5c*gO!r;GiAxaoi1ponrBn4VHcFVsG|B=LLUhw9V;D zid8{tqa>!$5iAY+L}dPHy~*+B7xp6K;-iF%e0}d7aB5jMS+#!@j7N@+HWo>7ZyhHKTSPvxBS^`Gtp?9UO-}R&@YxW)mN=&N72+>CAMx97fcS9 zSGV@Ulrwb=J=-0W{A7ERUzTUFNyQ^R-F=8T(|oPpP*&I_9%{ybvfdvsnY8$c+nZj> ztBPP@*Kt*EXK73~W0V za}!a!Z^12iW?4fG)UXaV$ZyvBryi?9o1NbShV;L-Fer}lGa{{#g&KmMj;xb67vogj29~s=h2Ckz)-5Fx$OCpN#2ehvwxp?b19l1DU7 zn3rB2&rLCbQde}B$A$Uz^;cddlqf-erkUQ^Yb`doj1w4Bv{kFNN@89qsoV4 zbV6Lkhqk!8`wtxPPCWFJA|`?IocCYSEQ?^!7$IyPEQ70hZ+efwFm`Ia2Txyk?}mSh zCH@`TjgitC78VTps>ygah&wza$n!VE;&)+`b6X;TzofKb@8=P+f)p7j=mY+Q8g||7 z##;b{cWi*@k#oswmbPS>ZM3jpc@qS96?EX_h3A`M2k39b#N2>^(IK})LrMDo5lvILjf)E2NFemp5u-c3(SVZz9vk14;vOA{DT{&t`?zFA5yM(V4yN4$7!wH z$a}+)`fcD#9MR20J}nJ8HV;^=r=yY;thQZ@Hy%yZCB_>7IB=OfiNP<``Gwr@bog3K zg}PjJ-Jk_~%R^M;g?r0{gU#Rrio)z-vvO^B73Yhm;x-+@7Xc*k1Hg&-Q;|p^z@vCd z(*TKX|Jbi}QvPrKrm6f&@uQaG$G=&GBP;U2m02$qy2XkXzl=@vPhV%9b09BZMA0^$ zw3~Y{dphL9m%dqhEmYXTj4Fm3#Bq!BDGv=8@^uves{0}kI<6=8zD-}Spom6_zxp3s z38Z~l{vvxj;P8$2A=p#4cdT|eWgpA2*U|+3s{)0{<}u3MuH=99HqKZJ6Zn`5R9uH} z8LLzC7R@-7AIyG_njjK5zGg0;fz4R3q#mS8Yn_+~?#*ham4zN^YxRb<_MCBi7ckmkq%7V>O3 zj_E01EpZv~ntY_Hcv=?gBrcvBux%_mt9dv{cJKjbUPyVVdK7S0sn_yE-kS+4fcf9kjmGKsZ?h2F8?@$9@)e)jyZfOEq+f1~VJXHYfR!0%N>x~jYUbnL1 zt7=p7wF@_eOQ$A#UN=ECOrnWiRA`_DcD zpbL!_iQBB6D~}AeU%Y`AjLzAKZwj5{u93Y1iCzGjs@C~BWOrI2XsOKTc`5*hRE@pK z!tYSDKz{oA!_3`LbyRwLTWbr#VurlkaAr0O?4R%M{ehCHiH76u*mO&_gfQZiLQv@y zSC&!hu4rrq-^9ZYo}H4U9poqR;g41%MO<%qWDG{paE9J&n?K3A_pja;U$Y*|quB`` zHU#oXK~14=AGzh6y#ygTsh7YzVz!-#$O!U;LrgChD;D`DrkTh6+W>9;QS{Mz+fCsG z)f2?H)B-<1*9n)V0R~l$B_(wlVo-yfj*Pma1U8*mRIthoI1?ly2 z8j0GdMacsQFdB2}PvpxkT_|ytHaEOrQ=}bI0X?G%D&|)~Lf->FZ&QrIMS4q?!EEnX zG%djHTZ(km-ZfT_#zy$%bF&Wm_I~)4ii@g*=P7vm0o8CdE+k5q#MB{GI5 zDhyow-X-=B_3$GQK9H`P4iZ${!P@(H{sxwZ9Iy)O{nAxOrP75Hzr%DE(M~y8Y`FkK zIF20rB#uveIWtGM!+&o;<|`ZE@}Am~cflg$>l zkEZt*W_n@ea4l!dOJ!BN!?zURm{QqLSdr9vGX<*~j(7P)?dU)H%VMvL@UPR}5@1-@ zpEv{`Y&7cM9Wr5KSKT(fpIg&_RCNNcY6%Co;BfcO*k5M@KNyRoq>`9*^3x7!ZXCW7 zMzN|NIST8D*kE@Wvl-(WU$d*qgj0Nd$WHfOU<-j<+YMvD<=QUQ*Z%y za5zt&2dn?LF0p7*;rg$#eCsw4lm;sn9!G{1SmXD!?$?a)PZrL_WYefd_*Xca`x5xI z`3rr*!!&lSSQ4$RtHK?ESfiEkl#n1wEzb3GrC7mNuwIuzjOv>H$x#PS#J4i(;i3m^ zu$BoDgVC-`F3jJX|7>XD>o)y}k=KzY=Nz9k37i7_e|t~XBjqcCMSkK+wkeQ~0$HY@ zb*GzOSe##)oJ?JsA;1uf03!OI4myS>eC{9WpBDFyPf{3Iof@llWnp0fBIFd>@DozH zvoit%4HX-HWQTn1vt&TcNc4Z%a4;Qi9jb>fv6jry-X|226m?%oz1x zot&PIJi7PPj)m?M8qcrSG%((JewmcQQu@J5un*mngs;?U_!G z{L^IMZnmRjlSVI<$oUco$Vz78%ox}&r3Mk zY^s3LX%|iaO@#rM7DDca56v>Grg`z)A%j9{wg6x>ju@uUFP3u>KmWy%Rzbep_bEz0 z!F2(7$Fk~TD!|MS42|C7>VPy8MIK&I(y`bhR@5i5J6JFl+oTWi&T&xsEo8IEaN!XU zJZ%SUu-=JEqlKEXSOrHipD>0m$X#w&uO9RieBO+$boJ!)c)ftgOyEzrf+;j8q6*g? z2f8k$HH(n2B;lb?eSC4&wY`7P;h{u3>_;jkqht@P#h-i;lybrI>_szk$14SStb>Nx zNhIjTg{BQ}i{J^o-7)PDB%~*DKN(G;sBeGH+Z7K59PV9w&Ps9ZHU;w_3_83AR>sPH zeQn&^Xkt9cIPncgOPxC8f*SyJZfQ8K1G&1paH}038X8IoY8rdL;kaDpZd4b6GT`Hz4*c4HSjNBc9Cjvt!?-z3cuXx$G{S3eVE*o?RC)!e#k zw2(gc(7@8gRsA)Fe=&WoA>AcRE@^MM^vg|Ash0=_+<1Bo1eb((#pWjxrTWztm;`U4 zfj5 z0Qn#C%7>4J`0sK&f(PlAJ|EwH7>8|-80tXl)(14q8`{@P8b&{03fJjv`YxUEA*o5a z<8uYb0pb0-!~TnzLWEoIy0%DmgU{`zd7_0nLCOl^kT9828~~E}p|U^XC6WWfZ_$gI z=oVFQfJU=4WIC%4;NKh3U9gw#N;xDHa`!p^xy_0wU+MoeaJ=&x^m2Y9+Bz zfVWfsQdwYr_zh|Sl%Av@9FNFQfft<%)+hma?k=a@>X2c!-oK1Bv=%P-0bHN#d)Xm@ z9;rSt`YEXwADX*QAp}G+D8t_gO<+8=s9t`4ZJu~=bk?49sQ6{Q6FDoP3IJhxjD5}* z+&-<_z3GtfrI=VU<_p!k)V>kXnnF@*v_0aV|2B}h1&01ARN>eE(q|$Q?j@TdS6KBfxc2_79X7l+zU{wOw*CXQ%>k?OA}Rtxotro)W}o;4 z{wpuo%|FDl?_vlLhBwMo0iqnq{;$fROBglOGF2v4MP?w(* z>1ooOb-$g`{A-R830&fDvkvr!I8tRzYF9wcn| zqR+u7zvRpHpve=le*2T7t)<9SeL8pYMIKn-KOyA#y>O_W<$|&7t#RveZjD5J2rz2O zfd&f+iqxC^W}Yhsl9_pewid#qTqukBWIM@3PRtF?x(iu015&HlYa(P-`k$$sT?w^f zX}9MfL|=e__*qj3x>js0=>g=`vCMam-MZzyX0N0n5@e^Tra&e`k)%Y&t&(G+9e+`Q z^F?6jR{#qubZG9#hh}#f=xsxQ*0n$Xz@|HPkt#UBq-=aSn;bge_mvm%L5r z>lL+6B&;U79!U@$-XdHMD1#Rm{A@!O&J4k}@n}{N3TBsH)MRj7)OxMp5%xrNQ^p_- znd$(d=bwnmfO8T?15TEc^K72!EpX%W6fqo*(Y8C=l3t9X{B7f8l+Q;9UMKrgCi^_C zk!r!|mURvZMc7zS&~|JGEHHsX^!>-TxL60{z^UT|%{D4crH6beJN@liR=bdQR|Po# z)unv#pABOo0$td8>)o}zGH8q#iNFT5ch-vv93~d6;AE;eq~8V6x|nd_@74%xVL?7; z?TiKRR_$u_f7Wnt@xi43rn-dQNfW`5TBT?jRn7glJgY{kI|;FvkK9b1SNWqQh1G8O z3^ceO)qAaMJX``CsBPXGGd_vtTKoX50B$yAxWAg0HV-kdWY5j2;Sx?o(+cQl8>JuC zuhA#+5E`3Mi^1Hk~>FX+S{j{1h>f?C>24yN; z9-v|29o># zL*etCH4k`l)wsdVT4syqFUvwHUQp?X77*(&v;R@2o=;s;dY%Qqg}XJH`5hZ01V)bQkGCZ%}1<1&u5gKu-L{y$M?Jt>dc>?w)r* zjNZe95j~fZ3x~ohO~SdKnFdaKC<0wwF#fTqs3-^FH%&0y9e6bt~MF19qctr&iS&^cvvRJ86{vM?K zX*T=zHnZ<$_m@y8(H=R?O~IT7KlXUox?MmH(ott;#%gdKsl&%n1E{b9DAdfq6=!`^ zpg3BXj(8J=8{GQC?_2Gf=ck=fL*U;`2wUb6BHVZ7CgH>LEdRxagK_O*BaCuZCb_n~ zLm$hUVUmlK_Y*}8OzMw4oJxPHq>5)->wALyuzZH8zM59K#f7QjS#-FdRXP&*YixcgeomYsen39ea6HVvAkOOy4))rfk?;(o_Zbpu=4c^{3>rO zDOI{EliVfHyt9+3^BxysyL5vhI~=}UXYGZZQrX&Zk=Y+#m+FE6A26~S_<(TW+-R0( zNxi!ZYp~FBMSm7nvep+OWTa=3j?Kt9&=l~ibL!6ns#ZtwH~!tC0fkJz2-rVQprYQ1 z0HLEw)YKLRqFNXjTtpI0fVo{2jVQY$^a`|g+;d1+!xRE4@At)@dCw)Ehiwea+6ik( zKTB(iJb)FZes2Mh0s1NrY>dg(Q%RPXeFhHL5*`l$g!X?_oGy!vA@JvIL6%XMH%xkE zukX1WEr(q1Lpwwl*E}7JAQyT*4|*9CfH_tpkfS9GU~gNrBC1OzQu<`P@%9$v-6WdT zg2NOTQ)uY=@yTvrY5RE=vBh!HFeEdr^;L4Gr>kj={`~qMHe2c?Pu|ZsdF7>8TUjgz zA|c3;EPLYoA6VIwrXH-IN-qld{-lvFF*!z|fgR%a1BfUjCdhbOm}Zym=2-&*n9gWYaPt4u&j^sSQT@G)n#<1y*8n)28S)qkea8Tg{|o< zS^9Ksxc`1SPV(9>gSO%e<-8NwnY38;`ei(RTh!(}WV1ou1_$`dj@lIaJJ1*hFhQ8O z=5(41-RD=Dz@Wpj0wSP3kY37W8(SP!n?46uDN0IQJtYb>B+dUQwA+HDnj$U6@86oC zzxnC2$*n4_=!V-JK$!0PAq`2)1Z`lnEnJ_=B2^1Ktl$8Mc@4n# z%$=L_Pt7=90g`#B3up@yXQa=v#w!|xXx)FD_mC4>XyT=2#bWq>^yYy+l0=1N>IN$N z$`e7p2p3bT!BAQ3uMz(Lly(VFP>hQFacB$R&O9$6i9UZQYh-h-y|!R+Q%N^O@C%6N zSu3owu z2fo@aCjJKaLn;CZ3VeM}KyAo7*4ew2>o+O_+R{WpPv)(`I2ThP2#g-|?f!SFfOl2qk2nV=@P8$BK>_>5@p0jE~dPZyl|gqEK_eB6pI&l98Of>x}MD@D2< zXy~H8*Z@q+h=c%u1Lv(}lr||M501^3$OA4Et=0g4GcjxHBd8$?&J^P0xSLA!EQd3g+kk#3^t9q3mZtY`yeatQqq zgvcnr$|TvS3D6HiV)WOs4nfaE`xF?{OgIRaxlz!KOD$aBb%?9^q%8%3P=X0- z4zn|IDfC=TnopNX*d5+H5%i|10p>hX9JCo#cNB2UP}OLRs96}y<-59%6utu6BjU*4 z)n#`bPZ{C@1A5^c@X!`nBxi{yKa@V(BWai@%pdi-*cbrMc4O+PyPyZe`*76$^iMmd ziNoZ{+~f&nH#@3+q;646blbfvW5Xn z4(w3PPDx1t4wS&$ z&rgoFht0j+8}_Z*67(FI;Vbk8mZu~~m6((zrHuI@>&pF4H~Gi)V-OdpOqvEN?{LY5 zj`A!0P>$Y*{0Q<9T-uFL1*u;&H&B@Fn`Ii_Sp`eVg|3{A(cHnz437>>&T zXk>OoxFz6PqNt>qgut+VIxM1U#j2Nnuxl38~A+GIXkQ zh1JMA@g>rXl>+Vc8aHuC?*5uG2}^g+@Qh5t@aSr8Mgy+pXX`?XbH}kp-Q6xd&wzw3 z8x+_vNmVDMJdn=%uXtw4Vr!l1@r%R9aSQ2$PbQbMixsIvw85pFTQnz{{vFX_jlbYI zx^8jr9h$0SqwoPb5|^`0SNhOLBfIr^>r6gQ4*DZh29_1t+uShS1+Lt^|Mp`ZTC&i` zBQ&Evq#}U43DZW!W=jCI6yTEzsMa>5!IOZP{|*#E!lVo%wJi4QD1V8)5NasTI=#!4 zg$hV1fq7B=aQPRM#W!u4M4~ve&d|N2#OHXI+=4@{5;I64Fu z3r)g|IPKC{KlyI_aGPBdw+=A##U(z9AA5&N>R7(sy!z33DwEgv?zXqf>JkZ8pyK;?(aLa(A zw4(#vP#hKo;0pDbb!K>x-m?0hjQ7^BoeF3qKuIm2wMr{(&VVv)R%%V6p?e#=h>&K& z1@u)hz0UV?qTi|hRWD#AzoV0AJQ8mj>Ul0Q3^zmOm-KYOw!=R@^SBazo;It=LlO}h zImSo058iI+6uYCSlS%V_La3}=!oc!Lugeny%Ncr`c3G^($zI!h1G|UQ2$_Lpv~~y| z*gmgRs#*{2u1_3E3Oe5v9t52D{x6S=p^b4_Ok;r7D6VH#H+77x)w9=SFDTpuUeSJ3 z)hu5nLv3K00J50o}Ki&qWwKo~1+3@OZY|YsHM0zCYzL2EBron+(bN7j2L$z{XGVyDV7x z!t$hcdQ#dW!&-lmln)BuwRCpvSpGk)v1tiHhiyq)HYRIY>{EwW{~J&||``pPi5` zaydOcu^uJNjH?4I%9L_8;(1a2(CZ|H(q~T*CS`9>v_^aoCrsek7ofB)-29GpZi~9a zW@T?+35psBNw}*zJ5Z%%vC^dt6BSi$GiWRPI7~8+L|3wEWMt!npM)a|K~iwlcME3t zMl<>W9}4|xc>FcvGNu!QQN4HWC}5_QsftPE@4EQpkr7NxJA*MDxyu17Ea~c!lYR;b za-rk3PJlI=u81+xu;(!?;lT7K_F+v8l_dS^&`~-eN}C>p5qh- zmIfe&`Z{40##w;*C1K4nVxooN09WS0i!9CPnv}`=yUU=M>N6E%u$C;{@0T|+3v_l_ z#M+PLYdsJ*L~i_>)sUbN+RL%2|6gBiG&zcw@Vn2l4+86aCMWUwf5 zzTa(~h?1{&?Scd600GTWZ2|5G+ch54LuY9YYZgFa@+?>Y^bo~YmyXcQd582)BS9`oQfI zc(PH7{j)MCzB;qHv+D9I^QnhyT+2c4*eCAioW*qV{p%UX1$W6o3E4f;lu`4ANWl@6d^fhknd+`YOME%R>t%Mzu#{~7nSa=`Ax;^_@|}?(dTph!_*{R zBK99ykjK~Tpg95su?mR#wMD*a?L8Gbo@R9Lxc?%bdD%SDtjrSl$Y(v@#b!CBtuQA|99(O&8MdPe; zYzv;!vc!h;7SoE@eXkGq^@bPb^{tSQC4D*sa?7dYqAl{7CV$(r5w+j{(OU;9bJl8q zo^-6rqG`YD3bv+Q>W0k78bq z7{W@ji&2}^HGmzyM4BSEDgp3U+q@g(!R~T_ty-=8wl`J`?y_;OjSbm=l0`so?}9_| z1J>e*^dC|q+4hgW5@w1({dl(_L@?bKvZ=qOJGuWQRQC}c{rNto^C;aCka2z^N3x(H zsTjoK4cQk~ED{rqq>4X2IA}2iaMw@6@pwJc>SC8?t`UHg$x{%4+E0QQfvOY+3{Dt+ z0aXKK_mI4y9km_qiMY`P5p0I^-Jp5VzF=!3WICTJfaf$<-ic0 zP^cz^_62W4@q;x*!$p|YBn4h%n?J=Uq#&ikQ~@#X{ioLb;L`-?0CWwd-9^!^Wk*u| z?>=LZ0ke+G2iIwzXk0d6I8Q2!e*ollGvx3Ej87jXwo507{U1%mqvyg~+Ws&0-ZHq3 zWy=~AGc#IjF*7rR#mp>=nJl)LnVFfHnVHdIwpg+(oTK~hoxZR8_4NDEGZ7Q(__peLkxlkaf`V#qVH#h?M;4Ru-{w{ZW|iB@tHS**7Q(BkTDgVg0=+RDcxK%~h)QZ`ar zU#RI1CJLVUG_Jt-2c`7(c)A4u_~A&rZ^0_g z0gMvcat0WPrZJR{z>7vY>UH+!+yWZ&CO>5WW@Bz6OoJh9iuIzIIr0Va*Q2>uL?DZw_M`v#KU>+h2 z$znNbpzfxIHp+0**etuRdDU!X>*rp;+YAH1)aLFZ*w7#^ zZm{6dm}{5w!4_JlA`$Baz)BDi{(hAJFi%a3tbE>6x`l^i{-+DzeKgNWrlR_tguUw) z7=EleElRN3uY`oPRn^sFZF~SM(lk~($@eOs7 zM}|)g-PAMa%TfYh_4a^xCIImg)8yz)`8d(?!76J-0Jm$uOUR`5xV{e%Rr8fRLZZ40 z-C&j<4Gv(G5wB1c2<*{=e+~V3Q(SWNnscN0ZENdwC#Rg+M^x`tyW;TBREkxkOwHkQ zfPK>#;Cb^LimsRgc&KNBz$=xOaQHXU@W#tk?Hh1s_RL4_fJ~D@-osf>r}BAu6nG4l z+fAKh8wNW%f0!e^su}=*9B|T-M{_A1E&WlyOA?J-%tyWgC!>-so3CHPT7SSTu1l=U($Ya zS>(jKV7sbCEBrw8K5Oow?(XTGWHnu(`p5O1m%r3I%H2o}&*c$6C`%!w#r&BWF1nN#=V4Nw-wl_CSv^G&?*#KFmfCK{ia%%5z@N+-`WH*a3e-jrY zQHPU8b-&SYf*Gm&yD@-@wyC0gPO4=h`eExHY@<=6S;m0C3s+3Z-NJWkDk{ugh<+A* zg&_ijBZ(EO{dnl0=2=7?7MfgN#OY+hNMdon@8BkENC@r*v!2>O_kf)xphIx(r8Z3MQ3 z%c=!Mtx>#5!m19&1et~a1+UgE=}nX}+=UkNmu z(yc8jON$o0r^-qIb>K?I9Mxb2%eJM46Aep}Qs%}2hBLU%GnvYFjoj0TV=BtlOD+=1 zgNiqWrBue{RZ0spQFXHiMKjXks->rFtgC7)ul%QNg5%#bIgW@VWC-SE_cUveoFD_h0W{#rNG#VHZSM`x$+Oy=-8>!V$sf?Q0lu4D0YeNnX58ZDMXZNW! zPtefKD$L?M&RG&hwB|o&0I;Nf1`}NH z?LuCVMA?6p#JGtmO3nAe`;A?0vl40!LKt02d%~;W*O=TIK z(d2P?iJQ%*EnizBOH5QtXmH9#y)O5^vr<^coGMMJ2{=wHP4-usGUwLcw*`&@*nwBcS1|wPGX0YXo7ST{HlwT? zq!go8K;Tj)|Lqx#Ih=>INSR4h=bMN4DsZ`;A6>Zsab;Ey z%lqi4)s$ByB6WT8sOB_xjGbS3kFQEkTgND+uH!<})`YKe_j^B1?KKLNPuW>mSSB(! zZ&Qq-3~J|ITuOc)_;%wXym;w@ZagmTsD;{%O|y*M|D+7hVGU^7m>* zDwFaeK$JA(c@S5*z-XLUxQg^>!c$cVZAgQq-;r;)H{$Fu(Tw@MV0~taH7mwh<53P1 zaO&CM*GaYjJ2>)pQ)k&@l-Xyc*Pf||6zsT`)vQM@>c#V{rZMx{Q>{jd0z$4=2_`c9q0i@G=tfyfAV=f~=?xVvtu)%*@5 zAu{na?cZPXWCHxZl>f+g`^D!cbS&b(OicBWZR#U26(a`+JKKMVA29xvunLfw>K}qM zVzxGaSEEsOa5nik07L(w0`hT?kX~M05b#GWA}J^Mp=)CU5VfHdvb8dXp%=9QXxmuW zm=V&;8W<_sS{vB>Rq`Q%tgNhTgltUz*s?OS|53)q@}cJQf0qBx?f^hN=3@?t zm^d0aSlBt)IuJ5)e8}8w%hY|qtkmm7}LyuUUar+A~enfjoJP}ia<;+`Qq zgLy9uu^IS#fzqW*?N6bwCN%^mdQfhi;XYykHn z|E7Q0*>CJS9dzAnK=bn)KjLM%C>9%w-yi99>uTnBWzk_FI!4;?wx1-{;Kr~B$S5Y2 z4iryJhM)+!kLM|X;M;8s5T+dD*2r`*Uax@WZ00GyQSi1k<_W zJ&aHr<~G`7MtD6jsF{!{-PtLR1^J|}b1k-U+GWuWrP(TFn>1EG}^H7ntitIF@JhQ>`wp4W=9kaUPoo6*%4GXD%t+zBB`H z3oI;G=ilg4u4X9RdAG7g9F97=nFnT-HHbc5FHE>+UUB}Onm|mCq@`w)Xooi*Jdu&! zWTV08#=odRM#enyZDDY4Jkt8))I2cP&0wzGWuT|+(7r*d4jSaOBPh`Ue<4!NrmLOA zpnqVY{8lXe87!3&sS_KDv0Wn)LaNgOPTQ zo>VppOMKioenF{J{&URlXj5<+Zz4ujmR>3pHM+rHK9*qX^_zmID@)btT}d)Vm9e6} zaxXYs3{ith)s!r)>iH0$z@7I~chHt!_al7Drt92V3Kbi;%3h?>F5w&r?oXc;BoL@x zYbxPQt*pil9a$JXxbJ2-zvZFVoKysCorE)vT!j*K@A{KFrSi=J>m(fpc$2L|#_m{v z3a;6KqzI{BswqU-wuZss?@&e%94lTg3R8WZ;(}BVW4H0Ofd1BOV#&OhN8F5vG-%`N z;H5~-A#zq$Q!Jg9@HyEgD?zi+Z)^6DI}9ldqj89u_vSp}2; zaj)Ov+vj%Q{w9uKYaB>@21pUuZ{s^Px7>ZM!HKVvbfPvF4y~Jt;SRYZ724)5twj1N z39hn=$K*{#!zNRZskdRk6e0E+_^QUq{%xPhjYyy_U*qGeBxgwYRA&RVkgztxV)mfW zE$}RK!^3{Lnkzl?+F%OTXoEVqu=Z~SYO(=KZt8d^oqYjNz7Vj(iFwyx%(eqbph`jl zOlwM@IuRlxX^(sh?qDK-<}8r{e;2sMgngqmK;Q8_!%K(@Ypdb_VFVNEZL4w&5hkkv z>Q}@UDC~_n#(>Sq%+Yi4an{9rH8lDDd^PT*Zrkb+nBkitqoB@aBt;?Uk;PGyo-!?X z%ExCtxhu!982WXAiXD*s`#!0X$kF8Xg^Z7}SmGz>ZlU~GTTGky5 z;Uc}gM%#(0hGKXUM+Fg5q(_u_$TtkU0tw7wu|7hB{)*LxmJP9?U`*(iLW1)HVTyd^ zj}%XpiEcguo(?Vt`)p1m&nJtH2-OMoxAy|g&C#gOyyu7lmz12Gg^NDM3=QxR zDtAtOPFu`Z2un0fbPW06NnA30+|`uq<{r=o#%DKEOzsu%U<|Hv1cp#@Oqo64c!qgp z8h_xs=GAfFhZ{p4q>IXA=-9LNWq>f@)L~TAr}t|w)PkH6&r0%ixJ&PQ$aXQ>dW%JL z*)z+p60(yIYz`GgF6K2weA{{+O~t_xm%o!QrltlPsnuNgev_kqKgZ*0T{mp8(<{e1VMb=z()WPZNxEa~SPc0wQS$3f&6{_j}{ zIw_`R1&aCG+UioFhzm7DBrT9F;HcT2{4n+m!rj9BIS*$xJ1Bwr234{7q{{wA_6F?6 z`rM{qf$5nbf*3NTL<6~dNceuMbFdA5yOz=Uome%{HRvX8ZnXkG(@X?en&f) z)stU%nwt$%+0G;l-I}UdD;QZG^?J{}EWXExr)y)YdTxzDZ(~Clo5U- zSNMZ-$U#I4YVmG z)J@T>Jn>O?3Bkkp7_S5}Di_h@LAXhw3sY%aqK+ONhPrh10YErm6?77WlsN{L&M=Cy zW|@k14A>FUoIgW6xIy1tC`SR!LdvXdR3A&E2sivQ{KAUp>Dk3aMLAhPQ`PN7o5u~V zgPq~wZ_sBb_qN;;-}6tNHXgP9wZ!##(f2aX1%+sl(0t$5loQGR4~nz1+0l&^V(-i_aXUl@N)KPdX_&b-i`k5qv> zB3ZfBI8w@!5v*#k;$E|W5G7kSBFRIoCF8Fj5)p;?bi^NPH3aGLSi(>?`2l+=5qUjYS@wV!!!59h{y>S3( zzTdKa2+qnI{63z>bSaENt84y#8_;rqo*YV?8@^aVv-<&QKvsaZfV+!kDG_E+TCi}b z&C3YcMcmEoM)A=h->X{+8nU0v1b)VIM56u%%-rV-P&QH`dJi!dLrv0EL5FH?c&ShJ zrX=z}M}thg!JjQQA(@|v|*^Dy}0EV3dBs}4gLXKDbj~uy)Bl) z4*T3_Ddw33fI&Ao6xcTnLGF4M1Madv;ghH|dY*Oa24}-vxH(=Fle+1lf4fNMk30iJ zYm}D{9r^II-4cjyBtN332@$qC&cJxIZv#J0LROpMTF5^kuW5I!JJEVN^3 zq=56xbT<3kZlfT`*K6rkwtWvenWEFa5G@UD)EEj!2=cuKq2v=k*y?QY_PmkBy zjrKlSej($N)A>5du0{v@SYHoSS_;em>*q7nNei`Nlj-CO=8k||6L(!+z&hijQbLPk z78pT2G5Z>=7K1E0Wh{yU7B!=T*ltx~tRa}KL$RjO78rt4R=or29pwdSCl>40vEVE! zqcHjpyWim`%*$Xx-C^uYYhy1pdYl=05^fhnG$;(wb&VdsS&qC#@omX>lO+9=Czd`2fG45FM zKCMy-VBN}qhGeHpQNrf9T7ag;)T06$FDQY9j;0p$qv82GZzDFJxmUg=*PZ2I*^(dc zIW8LaZ%E#Zshyc!pCn%!)w7Sre`gy}1tletbCg6Hu@C2|XAuc9UT%~Dvj`l`FXqBr zQgRSCAe6GaV%4A{2O|=u-!n6<9vtBqkN|(m&4{vy%8VnlMH_46HiwW#2_>AR!!Zu> z7%8(*3P%dZY^O+QU3p#C&|kVmmzV9e?V&y%-e^ANv&rCdfaut5I;MQs$`HNNd`zH) zp`Dl-bF$bmGWG-G%$Cpu;?w|YwGOSjhYtvm4Yy$m3zslE^0UQ~y8QGkZF2!zSN6)# z5$`?kwj0HJciD2>R*k>>%^LR+=MfvRS}rK1dQ;hCw=2p1r`0{z$c0#0rX5d5RpB=G zcg$NZ*AN}r+}>wA6?(la&+8kLxt#DRUI`bk+Bg}3isatT$M!bZ612u#ezVJD<`RrJ zqpIfKz;mEOVd~%|7;E?jZ*$L_SIUNN{|C~B`Waon2Z)CKdw8xpY9MdK$ck(~rcWY` zd5tie4{N`97#>J~-8&+r1P%lW^BmkPt-T?21s%^?V3_GBW)o@0^ptfKipwdc5ARIJ z-rRU)$3G)@;;X6VfevW72|8<8T7O-dn;YtCnyWC5*fGr3@t*GTT*6=7NHN=WbNt#C zc$=`;u4eTTnwwM4+g-J=hs3~Unm|`w(Oy2#=5+2i%GeCGb!yq+DXK(8kB*jhuY!NZ zRR$mQ(v;P8f3Y35bSSh}_Y)GAptVO599MPOZXi|ko6U0+OX?%kG!x)@)e+9nc)+nsunK>Un|`L}F4NgxgD~zDoW#;_@oo z%%1KbmRFX#8FmE{7EBiM1{ZVS6z;LkXs8C%4GNqYXiXn~%issT2+(7&ncmj^(B|CB zyy$XNC3ipv*?^GB`%U+H*i}{m>2X zSAFaP-(W}vBSAL~>BTbHj<-)C1mzYO^xUnMb-&rKEFYp!o@E@q+2`DkY4(GJX4mZXzpZ!WG^ z)|$`aa;uY!dsm6fOE`c`u|EnwZpcg-Cp1D#>_LPrnT1{l`muIoWNNEcVs9pDlAVY& zs5I6;H*Rh+ccc$zg+YA>5#lv>Zv6yBnZePzkHD<8%~s#o@?BjkbO8$+8yBcxp=RF& zqXZg0*MQ>^nWK@`94NBax*qAiw^bTxN~Hv)tBXS${0jvAcRWRy%VLzT!7AK-{aAKb zVzC^isCH+8YzTW~+ra5P&ns=6Yt3LkTTE1-&)LD8$OPtr>bY~e>84BA!UPEXyb*cW zK~0!7!&HY(h8t2dYsdp|{FV`NetW>2;K)W6X+S+D_ECU2!m{GcGeD`#B2E+X2s6BW zez7?~*K&M@d8bvZf`ElH=la$EE!{L!%z6-O+bF^6h-|yC_C5Lg%6q2Gdre1_nQs|b zYv-dV+6+@Qq=`@pk@B_|@^>wNV{_eW6L_ogC|@ z!1tU+Edfx-)DTj9? zLL61@7Chlio7;}ad`^e{E`YJx)?1h%@V%0tW>HJ|CJ}EtXU&OsqA(_5ktnFs6W)w$ zDJfH%thA!~;7&yEzWN;dbURMcL4FXJbHw=C)e)OCza(w)z}j%(f+c9$VmD4gF)6Zl z%AzUV+E?k9PGGaNTR|D=CEU6LRXWCA{cy5837faxAb;{sBuYG_+PrdxhjQVitniIc zu(CG4EM*a-N(QSe=fqDXd(;?^)2?3>(Z4&XE)qrAKJkjo+pW!5Do5Y1tGpo2M-Xhx z@`c)8Q0H(}oT*$}t__H_IGFc%pm*m1pDDk5!Lf^$0_wr?kshSCOlens;f7bw-A!iE zZ`CdJqka(BPV7Bit^T5^FaTP5Se z-MGxsWT?oGI$hBiKeZ~q1WkAg5k;XdL`)ifXJR&V<4LcJw%}0_2%kqE<7sXn+2|>= zXMV=aBE~a#2TF0+;a z-XAympJDHhl7AES{#P^YFWj32fOP){?#&3mv;Sw@`@aLd8QGZupf@7}0PhCi+ng+H z{|WQv_%DO_DEZHr_s2_}{|WPEX69h|JLbKp>S?94jQu{cbbaBC2 zN5$D(=ya&8EYdu8t*x<4efPY5Sk5d6E3LuDrE>52x$BwN`-kfV=Me}n5bHVUr?p_= zEsEjUZwoINzWeZB1_lYd?v2=Y`S-AJLZgCks$P(IAMYuqqaljL-aPu|VFfUOIi!0o z?{(Jio8f^RP={*3E(X|F;N-e#y%LA zWFIS5!06wK>CSKC^}o?d+4Epw`lQ#?3x(n>>G3J@cmD0Xk4V=kyTVpLfUk12GBOhO z3q74fby&aY>kn-vc>y-3UN$$D6A7_opWw`joMsm+5w2$yl$A@ptk*I zcHp`J?k#Z1gus~F=p69$Jv4a1Ms{dXJq8?LU;2Slf-ZNgc!7!B;6OOC`Bs2=xBa<9 zLpSK=q4)g193!`ZOZ_MgJ~sVY$l4H*B#(aZ$o<0pg83rr4b0g+skak-i{~1dex$o& z+DhI+WCOX}Uphh-M@SzdI}pZ-CBa%sXsM1bN*cYd&k7?19juf-PWG%r2Sa)&HUq4!o0(at>kNo+A2CS=A9ExHE(-r% z?GlPR;Jci>UB24s+Fm8stgKqx&Z}-r{}ml|rkl5SImrSNwSeS^E^sv=UCo$1UEY#S zhcz7~6BRnok(7{J&^sF_6P8RZ&yu(|^muVcA||7mjc}%NSl;bR%x0ePQhLe5*=MCU zYF%o&t8ATtsUDB|QS%|G?_ZN|9|9=r<1(cY**c1816EM$M=2uI4> zHs`umcZ43cbzKCHhrwwfN0tx2-a0n6e)1mPwE(R~dAiI%m2pi1`{e2udjM{r`3OX# zZ@!!cN7fQ{SI`$ztSVhDBY6iQSh~G0RaebKEp21vt7*hLYwXx21zTEcH!17hL}f`r zOEWX#l=y@LJFDW*n&x0=-B9Vg?UT!}`TM+>e6O0nyK2w~%PZcFIay+-KE1-Fz3O1$ zv3%K;{PTkj%Mt&%`Nii;Yq#GEF&1X7N3D86baA_S;NDkna%ZaP)Mzr^O>jqiQGAWf zg_g{9Ho{AE#+3nmE{&>{3S$e#$z|GP$Q6!UnfFpty&AaVl764lMB;KqvqQP?Iv$nRB;~EyY6f`Hg zytYGo?|hNl_%bbptHrX^l{q5P-XU-lBZ-f-K4{pNSXy2yE2WTHtXd)+25Scn-9oI= z-fd*?Q`kYy$g3+(T_Q|c0o(q{jebTyUg^7rZDK@YSL+F59i@ADk!kqk?CQhLktN(y zTUaoATRi*7nxHkR3(*FlW0atk5?x1hguD`Gy4n#J*!r1c-wk9Gdaph^I7`>w@6EF+BD38A@wE`a7O6*lKi zIdFx)>F0{@g&o`c3a>4&onknPPlWH4tq56Fj@F+s!eS!V)f49y+at{ne8fM}f+m3H zSlWmaZdW(B-1mm&85a&V#L@0DxhCSomVw6XX&PIV;RP`$5zE52LdpoFaUgvN&p5u{ zV#4g$0sGp5)+QiYX(SBib|3 zKsLw=crUvz5c>(`@EM`s1dw3xvcqW-Zb9*QF(T=jmZ$Vn$o$`ciO1UP;cijJEQ3A`joayt9ulP<3K+ zruPUoQSXKzUTUvvCDg5ISlDHl`WrIaztl;!W+6Wt>SpurNAl8%iCrX%NBkBa9@=}u z`iu=5e(kGweu?hcVXr{{&`P^i^W_e5`1K3KOdp6Ak$<%vR0q;`2ANzIFeOshmq%oz zp)X-}L$|sid%O_@5V{M$ACDfxU+5p%?Orl`BKZ;V&2a~@7_kBrctZ9F`!w+2^@p?3 zW1)j_D+@~O8zKxpA?uk#i_VY-#pWM#2CflmKH3@S4ev_+7UjVrZfPNf@CF1f@V&U^ zvW3(^Hs(L_j6A~Upat09CEiHV(9A@<$73U3Mv;qZg(jxngX~e*$Da$)JnfZ)Z{IxI zo*^rc*WwAA+7B_PjAHF!iEB{`@jqw|MAOrsn6xDeo%~sZUfUU_Gp>5l{=QZI z8vEdf(Q8vbdsy`OYh`t@vnecVD1;^v4EicM3$>PS(SUScICJrFE%wgJ4#{0ADCEf- zXy2Rl^KlOwFak&x@A;lA(V4#o2h;R(S9cN8=daS?nL~H?^u{!_Lmls6Do)`~|I%3h zOF@l^f#nZt{=>w8Vf!$>{)@%*@7U_X)Dk9EE+$SEMh5>|)D`v*^X>1;2U+DW!U_}M z=*RxY_GA4Zqx?UuAMN~g?q6-PGcghVeFZ3_5V8SGGj>3GALW0w`?3E~&H=dIAN2vp zKk5Q%ejNGhtUvcTSw1K=|2Y2Fl|HtA&}9Iv{C)e;qmPz9*1wPBW1oWqK(qPt*k4;_ zK-tInf1UTS|Iyoz?Z^7}>;3;_|F3cXztG=*;U#c>T;`v=gg;9D%bfq$4bKqm4VWp#D-zm@qRYMgZl3Ob`Tm z1}P~9NeBr^RIvY$jd_fiISe<1DJW-UWcvzhqc_+;fH*A5mqTX3ULNf@{e9u59MrAb z?aRAu*RNl)&Y4=xHjAb8*=_8R3_=o-szea(W^905riQy-GY)7(Rw=8q7wQYKs-Ra# zP>f%uZ8GOyt_Qnm#6z?KV#GMjdh1s0NmNXrus;b=!?m?Ve;2+*{66+sz-PE` z$W(9Pr;kd%JGT(=S8I)pt@ZEUpj4XY&nm6EmfYL8g8h(N^aidATzF3+MBmWO=G3x9yBDZS^} zeGo-rVw=+(JPQ7GV9wzI2SJ>k7`W5_LWJfC=w~0yz7Q`5u2)39J<}7ERZ6@>OvTO@d-&(=W znm7$woVg9xT5NsBrga&PEsVMM(WC^XiWkVk4%rJ)DDk`W_0N6b!|DmwbA1=fOXMCS z;)!M7Ps4EXWC&jd>g}kvBK7)w`uO8O=0@C75LZ=QxVPDmD@E651@As{`SFP+%Okdh zfuw+E1nthcfxppi{KAYAJ{^^+i_Q4_gGpn;tfI$e`{DrMuC9~dK^Hv3NS+BNf@(%x z8J25XxPDfs0c# zW%62xh?g{;OQACTcKIW9bK=vXCtFr#ADy9E&DrYY`JOf!`}gz-*&WSR@fNR*_KoaT z+t%@KEI&s1C%Xr-kwl2pR%j$RFzoEN-R@94;0rDkiqNO_W*9mkTDYL`!B2h)R_9wD zn>j)K?3tA?q+mz&XeRNw)Z9K4ykl~Nq!L1m*Nczs9Gs97^Q-r)?om(esrC#0&KA(H z#%PWs6*ojkdz>GBTExytIh%<@a1`dubP$^caNG0NTq#mT7 zpm~9_wS6pQer$-UotS8Gx3LHX9|?+s(}p+0@^Z+h69v(lzIT|Vd(8Qq?cou?+xf~{ zJEibFY)%pXfKGh5mMOVEx;UZ|{PB%REi=DdJjl}ckqCPU=-jCfKFUE_DK#IKonx#$ z$d#p%-j*U@=fTqtVyr>Afq;l!an`SWre-Kn7Nf*G`i3sOyrN_Llq$ZO@%kXLzHKO? zl9oQ)iR)}mvHhwhwF+BjL}d*<38gJ_>&Uli@2kN@!$K>XPlF)uIICsAk8o2K`4aoD z)|m6^%c3~Pcuxs*_2m`g9WNaRLly+eUG_bLbSV5Cv(4TdF{Z*MR}FqytTx~4%dQcy zk~Xx|)&nmqVTpY#r<~5P~kwg&0G=gOTl=pqx}*xRHd>fY|g@#7#NeTwp3ZOc8r4~ zb(Z7P@3Bdk0`YXF9d*x7xLr|xWXs;n5~TU)wuuz6#jhAqx*2c{>g>JYSxt~AdI@>dFOvWK@>K-c`c`wbL>01%f+fog9V%Fseo~LkGvz^T6=N7 zUXi#15#|t7< zB0J7)Z81uo7oX@pbasW78$Bhr0Rfn3Fe~v9w5lgS$y2g?%OR$M+d?HJ502d@QA(ae zKwTr-ysH);*_~@pN*>@Ee0n9f-R{u7cyH)H@^@mG<*l?nXJ1F!!m9*t7*CS+83CB; zCvyKhAMR1x_RxK$ch=D}$hdDfIePT*-=4Zd_u;$0??-lr>@(ZQ-lY28!b#m|yc0-X z0P5BQ>K?(7x})asi+}#T;e$GQ^okNU{VqzXXJ;A54mt%(F^c)-L+U;b6ep}IFr)gN z(3Lv^Ys5X+BNLAR-W`!zgjr&=b{0<93Pv|%XoQN&g%cA^Ls3yohpr47EpqNvT{#~X zEq6Ch0GU=JmD8hm3*LnKIpO_@@#1PR*V|>I@yC25a>Qvt>b}7R3sauQOjUwfYzUmW zhm<7gE^vfz91t17m>orY&P320@Btr1w2(W-7$1eL!0bY@-LWvxlrYi#NVG%{K`G!j zJK{GuCkXx3=S;@Fa|iO4P~Bf!$CJfD8>t5+<2sIcdEXWwToT@m&(!?Pq9raRJJY)@ zDqeZ%dMs81u33PySedd~b;AX#8PX<9(*;Rz&?kf@RRUQz?sDs$_`QLF$>{VDj(I-? zm?^hbp9{fL(M^qsm`adf^TD;>z`{Lgy9z-}^`42*uQHT%><*-DaEUKv3d`Ad=soE^ ziE$BizCN!F*|Hf$)JOB+K9->$UdCkkZSY`Q%;;C+d*!2POcK+@sssV!z>qNq+KN`F z;4YnZlxJh|W_iPT(18l^YNQ_Kw)B8kKplb8x;V?=j9(75+H1HYian@ndU0sPjd{oO zn=?!#`{@x+e!ux~!kVKFvEEWYV`b8cm`NQxPdT-Crhg2FwRpV1%{(&GW8k3v^ogqy z#J>}&g^8lqav(G!4wTfMy0ev_JIyx&m#PXHz6Qoj;t~|XC+Q&X7ZH*W|1a7Ig`>$k zeMF5gE<5rq5tlr*k@S7EE`ODj7!S~XfiDyK14v@f>P!sd5=ox6m)LBvp3tQ+*tFM6skK@h z=tF28!YNi(D%xV*ds1eSWH;}TxEQo@!RPe+d#&=1BR*ofUauZl!DU&+N*@+kSNA;< zTFE0)d%~rd>vNb%L*G`&po>fcb3Y*4@C>JYxntrj(Gltt-I4u~t6c9%SxBc~?>ON} z+c>XBJtR70m?s}N(6X7y61`CPlif79gZ~pZu#0JZksYwILO6KwsD>)f{`fNF;$)Wh z7co+D9h9)Onlq3kRy6(vHXkQa4VTTXpBKT|9X=y>qDsl^7<4~=JlJ1CuB%05^ES27 z{M4KY0>sbHIGg1~dBH$#;e|85s^4K0rWx(-sqiDAnJB<-o0yQf5iwOeyq>sZTAer#s{p>S=d=@CcB~uT9*sEwJALvslL!)Z zl@Sjt`b6Kia~P6grC!M0o4DMpy(Ocj#ejBXEItDcyXwRp-h!w9a#d2Y;f$)m0M>{-t2xJi=cSuG`QOOJ8YJDSxRj>(gP?Vg|>uNG;m$?7Ax zH!zm*qC{U^Mhiu7=s8R8_4@F#sqA{=_l~{cQUE6DIippjqE<%DidZ&X!r6|q3^N|+ z+=pRM++&}%leU<~Z>io1QIBW1027H4P8AuaP|li00LQap(bz-9s)lqlyr>JFzXX+$ zwpz~P3klqb{@B{d163}QpBA4SJ_R1u)0MkBzHsEmgQc7Sj*kcn3(5*v2r}5WaL##K zqm;e3V8pg(abj7c_W9gPlPdXBZ{VC(%avKty$7TPEDz!B9m|yyszZ*&7L>L6ic3JR z{(?CoF1l_#=UNSKg!ALINOj`1nB`rdSOCOzxwV0h5bc`KI)b=Wpb~o+)0OsQD-Z>T z{t+kS25cSucI!8=U+KA6H1%{8IoD!Hk`Rwc!i8v@Mtd7>8C?da9Z5xjt@4Lh?8m(s4r4}M?Jx{(+YTo|R>!ij1eO_WUFIPW` z_b8YE!)7hgSj6RAX8M&%D~4fJLh)Y85Tz4CIzsDGb{B5|H(#NQmA2H?jyAT)@ib`! zzinkgeGaFc>LGW9+_2p+de|G2dZ0+HAn;hP+kBxlt;bylv4oHzcNo;CX6#e+RzA1b zPnt4uWcDTVK4qB`!%}k`A>z{MpYbZpSuSRKcZb|X5fmA|1W_{8KNwbWr`92UHdaO(jFC}|1ERFqQeChTqzT&A93wxIiy>gY1*hB@-2hZZ+D>*5 zIQpEyjreL{p9KpZTrNMJ_AaX&n@RXd;x_un6l_5)jp6IyTrVb9;Q{rv*CY1CWUn$k zU0-r4>v*lQ96N^yKbyO(c3zIMuhG68wRC@p>d_`>UkTsQqtOWO++N-}ac+(2$@CnO zT_T(gZZqmG3y5a1kXgrVI+TlJ=$KHKfWjy{rL9_($?}a>s`$#}3*8~M3;E@+_kq?U z?Sc4&xD+aeTNa^0t}i_q1_w%&@(}JeOUB-=AaW?-=Xq8N6&hhTC>D+xB>~MsWA~ZK zD;sd(oVDVHGB4>h8cO_pr({}I;AqIVyHDjEaIh=1jta8&3dn9h;N%tLl3uBxl2(Od zbFE9D{KN5+8A&R+8j(*m|vgsaPUv7IwM0I1W1 zOjsAt)vM3;fc9n9;0#cJNII!K2hfkdkQ&o?D4r6l;%`|``V+-U3 zTohx)2rQksf^g{6&c^;C3r*V-QKxMSR8GQ0P;?Ns=^NH?RP2JK2c)USg5%5bb@Q*D*ha_NHTjzxkG$A&GrE#P_y(@@#=I3x*H-cvk#Q!3(>E}5L^Kf;aTg;X9w0o&2Gqo1jS)#+`rF@!u z4y1Jpw=D&vN+iKUMU=e*{Id*=f7jXjdvv~9FGR@971f=9!z3Zb=>!eloP$SAwobQ9 z6of0x-JvXdUXCpt%TL~2I@FYZ-4 z$-Iem8(+_j<0bOujVkIEQrWnF)O?D1lgwqHg0Ch2xwc=!0IIcH#|)vMVW`>?p-;vt zLn8!UHL`-)=hWnuOE`yvc{%L*)A>Rdkgz>U&}A;4J%tw=X>kMv1FaT_Lk^TBumuf` zp)=|!4#X@=>C!|J=p1Hw?eyv5mjCslmVILG*7!leQ)lqT<|H1}$K%ym zJE+nvkJXO*cCU!I_zrQTvFmw!E7+&wtQQHu#^D2-XypeR$KqYZ;{H@X=z{Z!HxEZ!~xZ5@nRZxc7_TG-`sf8=vMkf|mCmYw#LvxFTyrDL}v9*t~JR|9LPPhP(y$dTT_CxcP zLL*-&C=Q`6AKL8Fb`{y~nLb{bNtL5PiSF^hY!v(k1>=_qV@L15)rxP1gy>Cp#iBvf zD4nIJWQ(#QR|MIl_fD%(FUj<9vQ4K>9vs(U5E6qTXKV!mT;R52x(Qm*6AKyk++c${ zMOIwxHI3h;N~9BO(F9GDmF5V_weKb22d1EG_XIUtCLv_QD2iPCg$)hL-7q$9h5_;S z-S`a3E0k)_&dPpahC&DKvv0XjEHEA{= zj7LhJq`Q*(yi;D($L=KvhndP?1z@WpJn^m4QDh%XLyVb-zGK$JSoOqQ!sekE3+#&) zqTCYOJF>Apf&{7*zR`zC7+t_=U|VeT3QgpmX}gQaS!AjY!M(BV7!<&)7v}q!0S{yQ z4zeb-b0x6qJ>$dxMc(=Oyiz}^p@)emlnk6j$&35KXjrFP;i;jRm@4OJDijcoVOfMD z!$vF}r_@hLzwfgP>&8#vn~jW<)n&8n4=CK9*6SWZ@tRI$aovwm7k}v%Ldf1E!jFwQ ze|)*cZ-K)6$$^XI0b%L$1|2N<K)^uRzSL#6#wtlj z$Sgi3>|as022fdBAZg?AAYQ=Ftv-vPRwvR5+yOO%_GjG&w1`=P4_6XPQ-{!YSDo6!F=n-=lex_+HZoqohLF{vXp*q zC#orvv7Q1XsKz2CM|@$*PnLp~c*~An+G#;>Eyi!M= zJOnr=-}WkjP3sNG1j}6BwJM8j@Z@Kl7~^dxya57&;d|LurL#ISuR0@n)18ik`u~fy zw~URXTh?@Kx2es{%*@Q}HZwCbGcz;WZDwY++sw?2WoBla{`NUrXYSn59bL_la%p9* zjEab?QvRsWdfp(9JX5x4O;rn0pVFqrO_hyDM(}9XO1y5P-$KLCRc&*<+jL7xV&i37 zKtGO%o{7ZNY`FTe2v|8V_cFY;kcD3TnA3`dV)PT`fuf6s7R0{IsQ4C zVIn{y=g%`_(b$A&@1p$baHhYp>v|YjHe7PpEtHMoQuk3qXV ztjm`6P!c#R&rjS_2pVmD`9fjieagGDcHMe4@Q{3__ZW^6VwrJjPPAp~+zp`t#e8}Yem}nrnds0tP zkzfgpyn2ma0b`aen{}9iOrb66=Ka7eTs$K6eBzKS0~>YZH8=1OQ2TXegPNzdr&lh- zqv}^TkFiq&*KI~Grly~du~L;i@3xPmrarUyrv7*^;5_b4i_j0I`>;4OCPp}R{$x1- z_2}Nm2%_dckni=~nE(ROg=?ege!sCYp;zVEvH+ERE~_^tN{|TTc2P1gW5;m_Cs;4i zkcaZ3A>z6;EPV#o4HFzA1SHL}@4ov#JJcGnN@X5fzgn^?m1|A7+aJ%Ge^1xFJL5N& zw#hB}EuRv{$G{#}VL4$ybOd3ffT$BRN?DOk-RfeDKPJQRk`!Gbg_R5cbS(oL)( zR{Gpd^h|V3^!9X*c1*WTcXqdT`Azvuzb8L4zJI^|?&{Uqy=ARo_W1rZlC2tc8}nz(=mu($I7gK zpl7E(X&9Dh{MtN2kZDt2U4haHgu;+k6XcR`(o+eMouolwd+$kd4?%rMGTQrBa@HLU zogX9ZrOQPER`J4Cd;8YBUXcZX9=%RSZ*<6Y4+CKGZmm5+%Lf_|=%2t^eRwK+JB685XPjNftFQO@-X!)kqi%8x zHASSP#v08WFbm{T07t{UFZzusedWH?L4A9PQ*~Jl!@f76SZk78Q8Z)E(l)6PxZiIW zjb6?d@o$vf2N=bRg=Ij%Yn=u^3c0NXokaI0a!Mh~#mov8Z#gb{< zZ?sI(tM%1oUA=FEl<+Ic+;tR>V`-!pNw^_~ycX_qye=*&HORb~D9EWjdyHEJx6K9M zl+R++IFvPmur&5z0wqtw_mxXn2hp%?)Ye&TQo%I?x{}{@bTNE-e7XwTsKoE+u{;&?L)eMjUa+RS;l-j^6ta6w4bMg_Vup%iSi<@Z z(@LF&`BB0iW0xTU4OlyYUv0z4M95dEaH%cZ?^j{$_+a23k7E?yz%lGzvvhOjq88sm zNdu#skX72wF3w3>ZkT@}%?!LiKXgt?Q_APT9S1Irz|20GeBez+M@@11uKEdep(xuX z_ofl}GI{fCl&7Ug!pT5V`OtU9ZHHg)+E?VY4!_%5gk}edPq2fWMrT+yTU&Ura$6>* znd92adU*TXhMxCjxo9&8o4pIhGkwl06c_YkS5V7v?tU9_U}*YA#yu+Wus(3#<*#x& zb`3V54SolE*+Pv8F?tQdfJH5G332HNv85bQX-di3?1ubeWloQ?hQpco)_zOVwmFv6 z_amI$tjV>bMRdZvIl)`IN{Inmkyr&0Cc@-yirUZ!Yq4@s#3qW^^^%xTRc-Ug*A~3Y ze)$Lg%%d^rm;+6lpFIAFloY}Vkw_o{Nk1WnaDDuw3PFNy7`T!5AB`w@NNQUxua15z zt!P5UW0#?RWkR#c66RI7j=u;#9#x;lIiu5Bj=hw`?n((Lh3UT5^r@)rKT zIBs+ z=jq^61-dj&d!|W43GMr7J&ye7J=d3tyPvnzdE*99gLKjT1+P5>`nvM7{*>j4z`kG= zdj^rce2L9s&At)1e19@fRzC7IYszx5{ZTdQk@YzJ&QG#1(%2@sD<~^vHkqT$*YOV* z$}z)0&X^Q*8efb9JG~}R_JD$L?q4AeY+cTSD?KpP1exa7rA#*Pj`pAc>V?X{7JFQR zmMAYZ-%y5CY^|7zTV)p1MtAsM$oSrg{_gB(1jbia!WO+r!G^Db+=^Wz6v=b;o$FcZOLi@k2Js2_r$SqR}c65uySvSO(5B_1$~PqZitP* zx28m9IomQZJ)1~-?11=YV)T-`gGWswNwuYA`{thil#EH_Ieqg)?H2W2Tv-+7yyEr= z;`tw&Wd=Y{J!H3TNQF9)k9qWmMo12c*y29tz4-6BT;bjt0jk`^@{v5CbNh_zBDAse zdQt9{q)GK=7H{v<+dnQZG+mMJ!*6izi8`ZpC@+jYF0c_i)+=5T`blhQJ2iRwyGZ8= z9+Uu0WqT-4Se+HhRlh)iz;cw3AO`+OwU(gJ2&?B%B-0E~gOLjTkqJt%EpjYlQqe`N zY^Y$(o@UfjJkzU9Bi+NUh#wMl+|_@Y_3xrb;R=MAJ-Q8cITLwH54sXv3hKgYLwA91 z+0AHE(2QZ1ptie6E8Y?twq4z(xCke zdwPK!yqik6E#ZN_LV2-C=Y$8t|=83y_ zp1%$9h*p*x)PO&()=NwK;8sA=I|LVq3}K{saP1zi#T|_mV_sDbYK7F~%rh=QnWM1dNsDDn-IZTIP2Sau31>+UL5eU4t9~; z56HO%y9Y5E>&}l@Vs;b{h8xZX$J{{zNpgf%~}|GDVP5;zs@kE-gi zz+v5g+Xl2!@mraP?ZjOahl7x|lEvxuh{3S&>{NF{CiP%6CWbgZJI7FN^!KJCt*z-N z4&Hzo1NLNS7xjgikCHyxVt zz6=Yqx^k^b?GmGD45@WXC}58U5J)9k*`O|xXxFkf=-stsdA}dq#SWpM|L2{()gIeY z3x#Rlu?Ugej`U#O4w)?Ns?+Xpe0n;CMCUE@0Tst@0Dyp`;o!bIxUnV2-(@zlAm=ud znlpmj^NyWE#QV;^2c}t*Jlv=y$i_;5O57!3T38m{kiZe9zn|hDmZCy!N%Pw~n>Mvo ze4W z|0XedDA_RFT7$leG{E#axC+NQnT`Xm^E&T=SQYnmcly?C3hT4CafY@+d&C+imEm=) zl1ovZ3!+qSgo}sA*lUc{mCD^e;TVBC1lwMu(y{XJ zb5O%8+sO1e;(AP9R$cBBZr7(l98Tl`A#jVN{Xi*&kxApeU%&JLY&pd=Mq@~JNS$jS zetB;xfZF=hYARwNu!-jKGdRW!TLDT$*3DC#+Sxl$Wq?AxR8plFC%?izm6Iw-meJ6; zO1RpXSaB6n%d$dHUkO>Iyxf4Sn3$`8OqHSdC+lsCGizkcPbpzm%H^g9U=3iOmW`h5 zk~H?2zY0Et=sZ=;^hZPxni=sqA5} z4yGd+(8*$PTldC{@UM&LI|aSh-qjqrS3sXk4)}EbkwmHRL!}p@$vKNbm{rERN7I+V z@XJtXo2&JgL*rk*a$%Ey$||Ct&`vE3w6i=&WATa<9ByEWxqH`P`2}-SPZki?d@7S! zZ!?p#I`-S#=9rt9IpfI9p~U%Pt2f_3Hk$t+_;=OXfkQ=U7y4R+{(Y7HLS@(KIHZ<{ zqlm#ENgw$Q+fA}}uxjA}0ez!IvTdfQNmTzUnw9Y)Y@ztj)^7RFtYiyW<_5#p?5Kcu zdzRAtxOpQ=%UgG^;Lc06R|S?#16;%bRoNF`A@DD3EiCi$8H^o3w$!k$mko8A4UOdA z9HNX>^0sie_(;*+M)+ zJ)_;Db_b$H2bpYvhr@>dFlzndCw}sUJA+XC>tKu9#r|2A_Ig{vQ_F6>d!dWb{+h1I z1tLJ;y9T$n4>XxiB0nr4Vq|Sz@ie#z#;eCzsSWrT4nWQs*nwW z@B&2>1uA6$%V-8_3XMT07=Q{CBmoM@pgD{xl}3LQ=$xD4;BmalrIJ++w4`VFU4B<5 z%mm^V;%l|`n_=V!Nj}Bs&qj!Iu2W_qN#Ct=G~AVp21OkAWxts7MGf1mIeSmUni+*r zXJvVzb^FdH*p=(^;r-%jpzkMm2nnM4U*h%(dF1vWYQNqC$jQn~iC9%>%oxS10wM}0xyT9X3 zi3@gV80x40L%~NTkX*-t+T2^=r`*@mc*eQyQg$TZVQctHPtM$-4Jn>|T&FxP3UV*5yqQ2(q`N1+Av!UAGK7%Jm%q@AQ~tFm1~K}$D}_?N z^*&j?*(&`U+jbCH=&;@op9ORLb|3V0&>OP0tDtT<;185VWWaA`XTMN;{>XrJuxHrN zCscVg0Ua0@@FC<~MT%^OCoT#o^B#yZSRoco(GB4hH6cpFf;nFME*9q3qiJVDott8g+<}ZeiJ=Fd_;8t2<=S9`QccIkzLlfDUh19O5`=L!kttdzqkJ0wJBVQC*%~*20H=XVNX&rp;WPxOXCmXkr*LqJFa#zwp;v67 zWpspwKKBH2#7GeBLVza>WGk+{Q*T%7IV2~r9{DZ?bX!MW5A;=3*!is)f~0y>d?yUl zgH*7ugujv_S#lhLqz6d;B1Q0g2~jefQ<0yzAB0G1szH1!o5e{!B7>vyDO2gYE+vH?A;F4-pn_`s*|(9hGTv>@wl+>FeYK6O1bGse~b9$-Z`? zLBRA7_7yPd^We+OB>jrie9jlMWwur2R_CwK z`0cA;=xL`ffI~Nw_>i?G31E)NPBXyBL^E2agC|ZrAd8tpKTvZxf zr5+GAQP+*aD7uuyOtlD+GUf=sS3^-X@}TuHR;O&`|H>ks*dLRgn4X+;OKxhRyWtFN zW@)9fcy8ttqshv+%3FbM#94AeZ)u{pdgPR(!pYa-(TM%oWa2#$NP6j{g+`ZZSN1@A za??DMy{5k2ppQl+N}Jc#C=X^S9AnOi1s828ewks$RBNU??)@GsQ#ev6;i#n-H`Iq$ zb_l)A{unOb>nPdQ>N*GCpCJy~8qfs6INTGW5G-kK@!a3lDX&sn?v&=(tJFBciD_iT#Yx4|V zc}=@bfY#=fdc*9ozid?M3r-`RxsApL&|YcRRF2#(vP;@eA4;8aEkx%PSh) z^HlcQffi(I%huaAgaHxP%w$PBEg{JU)`k{N#N1+=eX3pG zo+*A+d7%TK`dWME2&nsU3J|1`XSb1f^k{SM6T7DMjs2ldD22v0j=}b{&t7@kQydaE z?P!FQ%M(%i%E~42z6mDd2U_sq_N>^VGLyZq+Fdl&ieW9~1g#@^;=P!7gvs#ovOJt2 zaKvasTTN@Tn94$D4@ys4W1+FyfI;^oN|?4#6KBAm&B83J# z$S$u0_9^b_DJ%nwusm60vE0x>D!W4e zRBKn{4)Fa(*4~JC;5WL|H)1lMXCA%$`Z_2BcCu(`$XzG@4gftUB{5M?svO0X~fb*>+d z3b(xvny1jUoyg9OFGs<|&*H$oCtLO=myPFSf##Vn=f16{(&bTFIkJhRCl3DYbsN7x z)%T0IftR?NRC*qyKesvhOC4f4WhS-Sw43MTGuMsmBc!Wly)mnm4J#wGb#gKHtK`Wq z4&JR@!?ZJMmwcwRR0-lY;N;`*u{r4EMp?L7Y^+!Qyo?;eG?$mG>$na}Pv#i>j}hX4 zI~FgA2K;O9VkSn;n)y%jZhXDehYAmO7+fn9 z|2iD9N-u^)d{{x6*<@gVb@}H}J!+8G&3ja^@zwQ4W;XlB~ zf8fV|fs+3-9{D$qf7br_1S`XT*!|=E{~oIRSB`%@{yW!yMfgu3lIfp_f5$%&|C#@Z z_HVm?&;LC4zwZAVr2K39Pp1E@{d@e^^ZoaqvHwN<{(HSLGW<>b-#_rbzk>hX5dZS_ zzvCecH`Op0SEjrHmFKP0>A^yKa$C;QpIR00%(pzQd@q2RfvD)Lk`{7p&Sp4~akss9rfgd>-m*PqEs3j;;AIt_9@! z$nU6|1k~#N{`>Xe{=FwH!|Q6Zz0vzPi}^UqOAkQ|vRnb$P~Q3OqQm2&Q|>xAu@TZ> z;NXaCCv`BB5A;nbIK5fvNG6;2Y|+UexJ?7H9Pc-m)mZWmzlQ;rE!N<-?DS=MwVo-r z5ryE;9!Q%5xgZde0tVD+`T>vmrZt%;ahu0zu@h75CJiR5s{^hgj4q6P#MWL9XVo*BLp#=Cjz-BJL&Vd~7P6GwOI@+dOEhwSPooGQ60;zdH-Tmgz~|YRoaKl?o%_)*Zr95i`5Ot)X~2;?RR7IomHrEp{p?g9G&-5cKaJZpJv)1&5| zS!A~YIwtg*X)~1H=&7EXtJTeSixLvITZ?@GsbgM$Xd6P8H0x_umAlSRjo>%oYMuH#$Fe zTo_7?(nm7ff$##-0OB`dA7~PUM!#4!M9`AxGXRq|lSoIjuE1XYS`#(^m3g=95iU8m z?x3pC7+cYp6T0-Ri4&ZT=o)?Sbw>aJ-LQ!}h_}`anB+6h%NyA7XlVV3!+bC%Sa^ z^o7wIrJH`t=ryNT2mx#knc5*?&KM~}Mst+AD8zw@a#G)vrxCupmg$;FEu)fV1WSWi zYYa}vYHjU8_2tUgtr23Cy^W}bpFInEqS?N(y?N63iszZm54|Urzt?ZzTP7S*IHbK_ zQ$3rxx3Q;P5Jo)EfB?+bgY+WHY zpjKPaiCN1dwx+^+A5(Zwcn+`!yqizD7MS+-sXDIbJn7wn^Bvf_Gr2r7LAoapS;%5Z zBjfgaC;EJQ7EV%5Bsj1nkO<%0m3>!ET-VGcLpDrU&+PvKDHltL80-sbSy}2+V8JRX z=1)BG;GoVtQKhXP1?PIP&zs)J#+SU=m!pNIDETWeV^*S{76-ZXeo{%C?^i;;X!@z) z-8Apt5?2QJ=JCkyTV2MV8ZdpvOI!Iry#v7YLTohKYfyE3-Z% zESquRl6UCo;FtCE@J5o!6e(}nELBVE$WUke+L$kG(fn~(yq~v&h38gRZLos zhY;xs_bVk%So9e%&_WJKkbYKm_n0F&ForeZ6c*In@39bhSUy&a5>DJ<=DZZ38HPSp zI*ziMW)tUUhLV&K2zCdtSKyE>!DEK{D)2Ko?ZR{DEdd{$-qs^-P$`U)mx&ls7adY> z`Dfe$5}gw~-M{}eoEu?aE~nAb#a3F|3(k4;D^FB_j#03jhsS(Xo~nje!CSD}l+Kp&u}+9iHN0Sy_GZvticZs9PILz%|q7 zmil4Z!ORK3Q<&ai0xUwsl;f&wZ7AJZ#3rotQT=`7qRVV~fuYruel$0Dib0K-EZFE6 zO@}g?6$2$8+nKO50n02_X(01Mzi7!-Y3yqYo6z`f$Iit;7wCXp{;~x^uo95U;-Mxk@|o5!u22WLjxjn#oP&^+XIQTUwgvrmtY~` z-)11;uVQWxFfR2m0r}sg!C{{`!C~Jt!FFF3!Q#E?b|sK;A3MVCi?EP!Uo((9^Vk4J zhIK9D;E}%>;5|Db)O=|`u6(fc?;A|Aq5!nK5MsHs6zqbvd_gJRYK46_VB=T5%tpx{ zLO)zFzCbbWBECsS&wb$zl6=t)lKimlJTdN#p*#k@#YamY0&%hune1Vw1NV4*e0?w!F*|EM z*YVr;)xet?2Ws$&VmYYJ|MceW;BHs@Tcbmf42AGA+J)aT72ouWRcImlX6P^yAN_JV63`CJkq(?uvY^ zV-By^Q~smbOpPA@^E&>KDZK`h>trISk$Io6eSl0zQoa1I^%*`9Xgn?{I_+}95?V}V z(=o#`Nku<&`tL0je%ita&tRB}(~saN`;mCDSb{&uI+$n3lGGBOqri7;8R`!~vnjK<6LLKr9>2|Z{L7qAs$yLzBCZ_h3 zSU&Lv$@z6Pa++jzQu)V2IClF5b;3U?wT2Uvt`R2vxITgrq z;p7~@n#vLgp<;>3jc3A0c2KTlZ@3f^FiXAKZ|@L-gBg=mrITfHZKI zyI`*m)AESb7mOTib1E6_dMu+^zlIELOi{seC#s)xVnmt#BCC;^R=0|IIvE zo_sgQE`xz1dCp#Yw4Op)?7km-LD-14J@kS{r{{L@N(w)D^0yZp9ou|k+V|ABza3z}!_@A?W3ym}6)G`RE8@j+?-zQVs^ zcUSIJF)+n|KQ8m2iX&Y?(q(?i2J_U>Xy(EWFm~cZOn^%T8Mk22Y&1K?Z%+X=Ezx9iR zg?<4GD~7u!z2bk(b9bP9T*k(E#SEBJjFv_Z9k|ym1x;}Um{H-&;r|k^e=LzVy$jwe zoCnS7x#ETScxV-`JA4O&ouHdZ+wN&ncoV@Ju*us$YA~JU22((9OeW@2XjU#??EUpp zT-859kw(m%TYZMzY*QIzj>o4@r^$70^ff`Om- zzDArqKzjl*U(i$r2G%t0sZbsy8?0@@i*)%j344z>d63H!?bb$J%&L2`2q2&fXAWc_ z7eWo3w013P%~y+;luA?<3|&iW$xPfH$M}NG6l@KScPpAg5!43<2kh6h&xC-PAxd{9 z08qGM=yxC4y(T4H^A_oL!#8&JX7U4|h)KLcuPnTue>&UqAJqopIO*@a-lNkEzK6nR z5Z;?vE>h`JZ%1QFhfnk}gfmFOWC9t@)OE#3N=Zt!wfPP;V=UtMIz=UShg^Zrf=0Uf z_I9+<)%Dm>{?76_&{UKUbef~sX*JH`M?$M;sc21Ywg`- zKR9=iAV@foQI?sD2|>n!4zoYz^9%5>QNogJ0ybibKO|0HEr9Op~>`M6-z z_HxI^b2E`;8<~N%;OH^QGJRwR4yLu{@EizK&+6p8c9eG>4s#P=P{**@5?V$d^d-H@Z;1 ziERN}mVIk017kT80>rap*i~n2RGoG`QiZ}k6l$zS1-h)ySQ8%@_Dra?T@ zakRbB=UjTsm;N(}kViN%FWOf~w#iIx61#^<6YOO;4d1HQtcOpf8Mt`AG`b1dk_8p$B6Y&`Ibex0yoj;pr7k#lKl5;WbKlVrp?A3dnqNuF$b$ zQkm%^knb8;T4Vr@KHPXXGV*98Go;(bJ6qD}2g;_;LST*=w?N4g_4F>dT#@iYVxc7b z#0z*rP;>`yWTEbZA_x=V89-swyDBCYDC1Y?E0Zr z8i{E}z}pj7>-Ql%@Y7>gU`BKyjNJ+WAT0SnE#9{UTue7N9cFr~29Q`fgi-@CF;RRWW73SxOUlKWW-5sY zCd!H5+L#Fe5vW_7#*2H!m~05)bRKyib91!d?S1hRY5IaZ=y#;$JlkpyXo6jaFR zCV#m6Kp|)WkdD{{g-nF!P&nv7RKWVEL9#9BKlF|K(YoQp2@p?R8hpELp_o%f;7>r< zw_0EQ8@_|+Xx_Ox8XhNekiG#YlKS~QF zoW%y=AXZI23Lus8$T8uw+STf1?y8lwi(?D{{V#zH5OqBEJaw?CHge4HWGE?mL5w}U zxg(~^-U_^QQ`x>9AMyhN+d*OKBdeDMx7> z%1Z@pRPpfi!Ka%U(71my|3%0VL=9&Jopfv(9wM8k$AD^jpnCM6=)Ur(Bd)MQMo{aZ zE7>t&R>y!P^_wzqv3wm;6-z|liQTv=O{9)<3rp}f$|xv0dS7(hdGV=dwS%2nDSAwQ z7p()d4-TkRE~p9Eff}{uRadFSLb8h7wTADr5_YQ;ebJ`(Y4(nv4jz_5l2fPi>7R!% z?lh*k!`2w}dP8qvqbm2q$anm8`qbOlUd6W-;eU75V{qZRW+lI%zAJ8QLHcc8wC`S!%v?fg8KRbkPF=bP3kp@q6~WZ7SLJZn2|yt^tCr@B;^rYW5;;jvH$8@U>Di zeoe?>c;-IV8(-qfd@}WKIH1Kbj}x~67iB?Gi0LSxnf@Ts;&3aCqjXefpHbJ**m1pI zTdD61t4w{p`G0|-<72?U8~q@gcK9`GZcz0m+$EX6nLLV1p#X^b#4rjjJ=Ijhn6>=! zxj@Ws^M!^v7#p_-+Ydb&vt7LQ$^co~;l`cYqwV`??qgPB#Rg76A3$@4%9N_@0oZyg z1Yr&SYCR~Wf(LhnjOgWyyr>JeAybw(LXg~3?J3o+IdGWX8KwLz2pBB~crOmH{Fx$i zV;vNB-?+)gZd~=d@W|av_-p_0YW>Je;;l2g5t$yQ|3)zt)lO!<9om~J5%XV>m%0Ai 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 literal 0 HcmV?d00001 From 21b7f31d7979ca73005fcd7ada50933c73ac5451 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Sun, 17 Mar 2024 08:04:55 +0100 Subject: [PATCH 03/68] start changelog --- comscore/CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 comscore/CHANGELOG.md diff --git a/comscore/CHANGELOG.md b/comscore/CHANGELOG.md new file mode 100644 index 00000000..f037a0d7 --- /dev/null +++ b/comscore/CHANGELOG.md @@ -0,0 +1,7 @@ +# @theoplayer/comscore-connector-web + +## 1.0.21 + +### ✨ Features + +- Initial release as a connector From bf417447e36129802b56f4992b647cb08b39cae8 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Sun, 17 Mar 2024 08:15:14 +0100 Subject: [PATCH 04/68] example test page --- comscore/test/pages/main.html | 58 +++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 comscore/test/pages/main.html diff --git a/comscore/test/pages/main.html b/comscore/test/pages/main.html new file mode 100644 index 00000000..dee5232a --- /dev/null +++ b/comscore/test/pages/main.html @@ -0,0 +1,58 @@ + + + + + Connector test page + + + + + +
+ + + From fad6495c0d178f23fd0c117974b8ae56b2b7df75 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Sun, 17 Mar 2024 08:26:27 +0100 Subject: [PATCH 05/68] add theoplayer dependency --- comscore/package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/comscore/package.json b/comscore/package.json index 601795c6..78109aa4 100644 --- a/comscore/package.json +++ b/comscore/package.json @@ -15,5 +15,8 @@ "bugs": { "url": "https://github.com/THEOplayer/web-connectors/issues" }, - "homepage": "https://github.com/THEOplayer/web-connectors#readme" + "homepage": "https://github.com/THEOplayer/web-connectors#readme", + "dependencies": { + "theoplayer": "^6.12.0" + } } From b07f1b84616ff715ebb27764ff4235c8f4d82cb0 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Sun, 17 Mar 2024 08:41:23 +0100 Subject: [PATCH 06/68] add api files and empty integration class --- comscore/src/api/ComscoreConfiguration.ts | 27 ++ comscore/src/api/ComscoreConnector.ts | 43 +++ comscore/src/api/ComscoreMetadata.ts | 252 ++++++++++++++++++ .../integration/ComscoreTHEOIntegration.ts | 23 ++ 4 files changed, 345 insertions(+) create mode 100644 comscore/src/api/ComscoreConfiguration.ts create mode 100644 comscore/src/api/ComscoreConnector.ts create mode 100644 comscore/src/api/ComscoreMetadata.ts create mode 100644 comscore/src/integration/ComscoreTHEOIntegration.ts diff --git a/comscore/src/api/ComscoreConfiguration.ts b/comscore/src/api/ComscoreConfiguration.ts new file mode 100644 index 00000000..f02d2adc --- /dev/null +++ b/comscore/src/api/ComscoreConfiguration.ts @@ -0,0 +1,27 @@ +export enum ComscoreUserConsent { + denied = "0", + granted = "1", + unknown = "-1" +} + +export enum ComscoreUsagePropertiesAutoUpdateMode { + foregroundOnly = "foregroundOnly", + foregroundAndBackground = "foregroundAndBackground", + disabled = "disabled" +} + +export interface ComscoreConfiguration { + /** + * Also known as the c2 value + */ + publisherId: string; + applicationName: string; + userConsent: ComscoreUserConsent; + /** + * Defaults to foregroundOnly if none is specified. If your app has some background experience, use foregroundAndBackground. + */ + usagePropertiesAutoUpdateMode?: ComscoreUsagePropertiesAutoUpdateMode; + debug?: boolean; +} + + diff --git a/comscore/src/api/ComscoreConnector.ts b/comscore/src/api/ComscoreConnector.ts new file mode 100644 index 00000000..0ee2e187 --- /dev/null +++ b/comscore/src/api/ComscoreConnector.ts @@ -0,0 +1,43 @@ +import { ChromelessPlayer } from 'theoplayer'; +import type { ComscoreConfiguration } from './ComscoreConfiguration'; +import type { ComscoreMetadata } from './ComscoreMetadata'; +import { ComscoreTHEOIntegration } from '../integration/ComscoreTHEOIntegration'; + +export class ComscoreConnector { + + private integration: ComscoreTHEOIntegration + + constructor(player: ChromelessPlayer, comscoreConfig: ComscoreConfiguration, comscoreMetadata: ComscoreMetadata) { + this.integration = new ComscoreTHEOIntegration(player, comscoreConfig, comscoreMetadata); + } + + /** + * Sets/updates Comscore metadata on the Comscore video analytics. + * @param metadata object of key value pairs + */ + update(metadata: ComscoreMetadata): void { + this.integration.update(metadata); + } + + /** + * Set a persistent label on the ComScore PublisherConfiguration + */ + setPersistentLabel(label: string, value: string): void { + // this.integration.setPersistentLabel(label, value); + } + + /** + * Set persistent labels on the ComScore PublisherConfiguration + * @param labels object of key value pairs + */ + setPersistentLabels(labels: { [key: string]: string }): void { + // this.integration.setPersistentLabels(labels); + } + + /** + * Destroy ComScoreStreamingAnalytics and unregister it from player + */ + destroy(): void { + this.integration.destroy(); + } +} \ No newline at end of file diff --git a/comscore/src/api/ComscoreMetadata.ts b/comscore/src/api/ComscoreMetadata.ts new file mode 100644 index 00000000..873d1783 --- /dev/null +++ b/comscore/src/api/ComscoreMetadata.ts @@ -0,0 +1,252 @@ +export type CustomComscoreMetadata = { + [id: string]: string; +} + +export enum ComscoreMediaType { + longFormOnDemand = "longFormOnDemand", + shortFormOnDemand = "shortFormOnDemand", + live = "live", + userGeneratedLongFormOnDemand = "userGeneratedLongFormOnDemand", + userGeneratedShortFormOnDemand = "userGeneratedShortFormOnDemand", + userGeneratedLive = "userGeneratedLive", + bumper = "bumper", + other = "other" +} + +export enum ComscoreFeedType { + eastHD = "easthd", + westHD = "westhd", + eastSD = "eastsd", + westSD = "westsd" +} + +export enum ComscoreDeliveryMode { + linear = "linear", + ondemand = "ondemand" +} + +export enum ComscoreDeliverySubscriptionType { + traditionalMvpd = "traditionalMvpd", //LIVE + virtualMvpd = "virtualMvpd", //LIVE + subscription = "subscription", + transactional = "transactional", + advertising = "advertising", + premium = "premium" +} + +export enum ComscoreDeliveryComposition { + clean = "clean", + embed = "embed" +} + +export enum ComscoreDeliveryAdvertisementCapability { + none = "none", + dynamicLoad = "dynamicLoad", + dynamicReplacement = "dynamicReplacement", + linear1day = "linear1day", + linear2day = "linear2day", + linear3day = "linear3day", + linear4day = "linear4day", + linear5day = "linear5day", + linear6day = "linear6day", + linear7day = "linear7day" +} + +export enum ComscoreMediaFormat { + fullContentEpisode = "fullContentEpisode", + fullContentMovie = "fullContentMovie", + fullContentPodcast = "fullContentPodcast", + fullContentGeneric = "fullContentGeneric", + partialContentEpisode = "partialContentEpisode", + partialContentMovie = "partialContentMovie", + partialContentPodcast = "partialContentPodcast", + partialContentGeneric = "partialContentGeneric", + previewEpisode = "previewEpisode", + previewMovie = "previewMovie", + previewGeneric = "previewGeneric", + extraEpisode = "extraEpisode", + extraMovie = "extraMovie", + extraGeneric = "extraGeneric" +} + +export enum ComscoreDistributionModel { + tvAndOnline = "tvAndOnline", + exclusivelyOnline = "exclusivelyOnline" +} + +export type ComscoreDate = { + day: number; + month: number; + year: number; +} + +export type ComscoreTime = { + hours: number; + minutes: number; +} + +export type ComscoreDimension = { + width: number; + height: number; +} + +export type ComscoreMetadata = { + /** + * Classification type, mandatory, setMediaType( value ) - (ns_st_li) + */ + mediaType: ComscoreMediaType; + /** + * Program ID for VMX, unique identifier for the content, LIVE: Mandatory, VOD: Mandatory, Adv: Inherited from Content, Comscore API: setUniqueId( string id ) - (ns_st_ct) + */ + uniqueId: string; + /** + * Clip Length in milliseconds, Comscore API: setLength( int length ) - (ns_st_cl) + */ + length: number; + /** + * VMX dictionary (level 1), mandatory, Comscore API: setDictionaryClassificationC3( string value ) - (c3) + */ + c3?: string; + /** + * VMX dictionary (level 2), mandatory, Comscore API: setDictionaryClassificationC4( string value ) - (c4) + */ + c4?: string; + /** + * VMX dictionary (level 3), mandatory, Comscore API: setDictionaryClassificationC6( string value ) - (c6) + */ + c6?: string; + /** + * Channel Name, title of the station or channel for which content was recorded or where content is made available, LIVE: Mandatory,VOD: Mandatory,Adv: Inherited from Content, Comscore API: setStationTitle( string title ) - (ns_st_st) + */ + stationTitle: string; + /** + * Channel ID, Code of the station or channel for which content was recorded or where content is made available, LIVE: Mandatory,VOD: Mandatory,Adv: Inherited from Content, Comscore API: setStationCode( string code ) - (ns_st_stc) + */ + stationCode?: string; + /** + * Code to identify station affiliation in cases where the same local TV station call sign is affiliated with multiple national TV networks, Comscore API: setNetworkAffiliate( string code ) - (ns_st_sta) + */ + networkAffiliate?: string; + /** + * Publisher Brand Name, the consumer-facing brand name of the media publisher that owns the content, LIVE: Mandatory, VOD: Mandatory, Adv: Inherited from Content, Comscore API: setPublisherName( string name ) - (ns_st_pu) + */ + publisherName?: string; + /** + * Program name, Top level content title (i.e., the name of the overall program, show, or content series), LIVE: Optional,VOD: Optional,Adv: Inherited from Content, Comscore API: setProgramTitle( string title ) - (ns_st_pr) + */ + programTitle: string; + /** + * Program Id, Top level content ID to be used for matching and grouping purposes, LIVE: Optional,VOD: Optional,Adv: Inherited from Content, Comscore API: setProgramId( string id ) - (ns_st_tpr) + */ + programId?: string; + /** + * Episode title, Sub level content title (i.e., the title of the specific episode),LIVE: Optional,VOD: Optional,Adv: Inherited from Content, Comscore API: setEpisodeTitle( string title ) - (ns_st_ep) + */ + episodeTitle: string; + /** + * Episode ID Sub level content ID to be used for matching and grouping purposes,LIVE: Optional,VOD: Optional,Adv: Inherited from Content, Comscore API: setEpisodeId( string id ) - (ns_st_tep) + */ + episodeId?: string; + /** + * Season Number, Season number for episodic content, LIVE: Optional, VOD: Optional, Adv: Inherited from Content, Comscore API: setEpisodeSeasonNumber( string value ) - (ns_st_sn) + */ + episodeSeasonNumber?: string; + /** + * Episode number for episodic content. It is recommended to use values with 2 digits — or 3 digits for episodic content with more than 99 episodes in a season — left-padded with 0, Comscore API: setEpisodeNumber( string value ) - (ns_st_en) + */ + episodeNumber?: string; + /** + * Genre description. Multiple values can be provided as a comma-separated string, LIVE: Optional, VOD: Optional, Adv: Inherited from Content, Comscore API: setGenreName( string name ) - (ns_st_ge) + */ + genreName: string; + /** + * Genre ID to be used for matching and grouping purposes (for example when the genres are multilingual). Multiple values can be provided as a comma-separated string, Comscore API: setGenreId( string id ) - (ns_st_tge) + */ + genreId?: string; + /** + * This metadata helps Comscore differentiate if the stream is carrying the same ad load as TV, Comscore API: carryTvAdvertisementLoad( Boolean value ) - (ns_st_ia) + */ + carryTvAdvertisementLoad?: boolean; + /** + * Complete Episode Flag, 1 - if the content media is a full episode, LIVE: Optional, VOD: Optional, Adv: Inherited from Content, Comscore API: classifyAsCompleteEpisode( Boolean value ) - (ns_st_ce) + */ + classifyAsCompleteEpisode?: boolean; + /** + * The date on which the content was produced or created, LIVE: Optional,VOD: Optional,Adv: Inherited from Content, Comscore API: setDateOfProduction( int year, int month, int day ) - (ns_st_dt) + */ + dateOfProduction?: ComscoreDate; + /** + * The time at which the content was produced or created, LIVE: Optional,VOD: Optional,Adv: Inherited from Content, Comscore API: setTimeOfProduction( int hours, int minutes ) - (ns_st_tm) + */ + timeOfProduction?: ComscoreTime; + /** + * The date on which the content aired on TV. This metadata helps Comscore establish monetization windows (live, day +1, day +3, etc.) for any given episode or show. + * The monetization windows are used to calculate commercial and program ratings. LIVE: Optional,VOD: Optional,Adv: Inherited from Content + * Comscore API: setDateOfTvAiring( int year, int month, int day ) - (ns_st_tdt) + */ + dateOfTvAiring?: ComscoreDate; + /** + * The time at which the content aired on TV, LIVE: Optional,VOD: Optional,Adv: Inherited from Content, Comscore API: setTimeOfTvAiring( int hours, int minutes ) - (ns_st_ttm) + */ + timeOfTvAiring?: ComscoreTime; + /** + * The date on which the content was made available for streaming consumption. This metadata helps Comscore establish monetization windows (live, day +1, day +3, etc.) for any given episode or show. The monetization windows are used to calculate commercial and program ratings, LIVE: Optional,VOD: Optional,Adv: Inherited from Content, Comscore API: setDateOfDigitalAiring( int year, int month, int day ) - (ns_st_ddt) + */ + dateOfDigitalAiring?: ComscoreDate; + /** + * The time at which the content was made available for streaming consumption, LIVE: Optional,VOD: Optional,Adv: Inherited from Content, Comscore API: setTimeOfDigitalAiring( int hours, int minutes ) - (ns_st_dtm) + */ + timeOfDigitalAiring?: ComscoreTime; + /** + * Specify the type of feed provided on the live stream, Comscore API: setFeedType( value ) - (ns_st_ft) + */ + feedType?: ComscoreFeedType; + /** + * Use value true if the content is audio-only, rather than video (with or without audio). Otherwise omit or use value false, Comscore API: classifyAsAudioStream( Boolean value ) - (ns_st_ty) + */ + classifyAsAudioStream: boolean; + /** + * Identifies the content delivery to be on-demand or linear, Comscore API: setDeliveryMode( value ) - (ns_st_cde) + */ + deliveryMode?: ComscoreDeliveryMode; + /** + * Identifies the type of subscription of the user, Comscore API: setDeliverySubscriptionType( value ) - (ns_st_cds) + */ + deliverySubscriptionType?: ComscoreDeliverySubscriptionType; + /** + * Indicates whether or not ads are delivered as part of the content stream, Comscore API: setDeliveryComposition( value ) - (ns_st_cdc) + */ + deliveryComposition?: ComscoreDeliveryComposition; + /** + * Indicate what capability is allowed for advertisement placements, Comscore API: setDeliveryAdvertisementCapability( value ) - (ns_st_cda) + */ + deliveryAdvertisementCapability?: ComscoreDeliveryAdvertisementCapability; + /** + * Specify the type of content media in more detail, VOD: Mandatory, Adv: Inherited from Content, Specify the type of content media in more detail, Comscore API: setMediaFormat( value ) - (ns_st_cmt) + */ + mediaFormat?: ComscoreMediaFormat; + /** + * Content Distribution Model, Specify where the content was distributed, LIVE: Optional, VOD: Optional, Adv: Inherited from Content, Comscore API: setDistributionModel( value ) - (ns_st_cdm) + */ + distributionModel?: ComscoreDistributionModel; + /** + * Can be used if the player offers the media as part of a playlist. Specify an identifier (title, etc.) for the playlist. For example, the TV Show title for a playlist which contains all episodes from a specific TV show, Comscore API: setPlaylistTitle( string title ) - (ns_st_pl) + */ + playlistTitle?: string; + /** + * Indicates the total number of segments of the content, which is one more than the number of mid-roll ad breaks. For example, content with no mid-roll ad breaks has 1 segment and content with 2 mid-roll ad breaks has 3 segments, Comscore API: setTotalSegments( int total ) - (ns_st_tp) + */ + totalSegments?: number; + /** + * The URL (or path/filename) of the content stream, Comscore API: setClipUrl( string url ) - (ns_st_cu) + */ + clipUrl?: string; + /** + * Content video dimensions in pixels, Comscore API: setVideoDimensions( int pixelsWide, int pixelsHigh ) - (ns_st_cs) + */ + videoDimension?: ComscoreDimension; + /** + * Can be used to specify a collection of custom metadata name/value pairs, Comscore API: addCustomLabels( Object labels ) + */ + customLabels?: CustomComscoreMetadata; +} \ No newline at end of file diff --git a/comscore/src/integration/ComscoreTHEOIntegration.ts b/comscore/src/integration/ComscoreTHEOIntegration.ts new file mode 100644 index 00000000..aeb41a46 --- /dev/null +++ b/comscore/src/integration/ComscoreTHEOIntegration.ts @@ -0,0 +1,23 @@ +import { ChromelessPlayer } from "theoplayer"; +import { ComscoreConfiguration } from "../api/ComscoreConfiguration"; +import { ComscoreMetadata } from "../api/ComscoreMetadata"; + +export class ComscoreTHEOIntegration { + private contentMetadata: ComscoreMetadata; + + constructor(player: ChromelessPlayer, configuration: ComscoreConfiguration, metadata: ComscoreMetadata) { + + } + + public update(metadata: ComscoreMetadata) { + this.contentMetadata = metadata; + } + + public destroy() { + this.removeListeners(); + } + + private removeListeners() { + + } +} \ No newline at end of file From 60aa55cd0d91af92cf9afabc48df25940ce5dd7c Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Sun, 17 Mar 2024 09:24:33 +0100 Subject: [PATCH 07/68] add eventlisteners and playback states --- .../integration/ComscoreTHEOIntegration.ts | 102 +++++++++++++++++- 1 file changed, 98 insertions(+), 4 deletions(-) diff --git a/comscore/src/integration/ComscoreTHEOIntegration.ts b/comscore/src/integration/ComscoreTHEOIntegration.ts index aeb41a46..435767d1 100644 --- a/comscore/src/integration/ComscoreTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreTHEOIntegration.ts @@ -1,9 +1,21 @@ -import { ChromelessPlayer } from "theoplayer"; +import { AdBreakEvent, AdEvent, ChromelessPlayer, EndedEvent, LoadedDataEvent, LoadedMetadataEvent, PauseEvent, PlayingEvent, RateChangeEvent, SeekingEvent, SourceChangeEvent, TimeUpdateEvent, WaitingEvent } from "theoplayer"; import { ComscoreConfiguration } from "../api/ComscoreConfiguration"; import { ComscoreMetadata } from "../api/ComscoreMetadata"; +enum ComscoreState { + INITIALIZED, + ADVERTISEMENT, + ADVERTISEMENT_PAUSED, + VIDEO, + VIDEO_PAUSED, + STOPPED +} + export class ComscoreTHEOIntegration { + private player: ChromelessPlayer; + private configuration: ComscoreConfiguration private contentMetadata: ComscoreMetadata; + private state = ComscoreState.INITIALIZED constructor(player: ChromelessPlayer, configuration: ComscoreConfiguration, metadata: ComscoreMetadata) { @@ -14,10 +26,92 @@ export class ComscoreTHEOIntegration { } public destroy() { - this.removeListeners(); + // this.removeListeners(); + } + + private addListeners(): void { + this.player.addEventListener("sourcechange", this.onSourceChange); + this.player.addEventListener("ended", this.onEnded); + this.player.addEventListener("loadeddata", this.onLoadedData); + this.player.addEventListener("loadedmetadata", this.onLoadedMetadata); + this.player.addEventListener("playing", this.onPlaying); + this.player.addEventListener("seeking", this.onSeeking); + this.player.addEventListener("pause", this.onPause); + this.player.addEventListener("timeupdate", this.onTimeUpdate); + this.player.addEventListener("ratechange", this.onRateChange); + this.player.addEventListener("waiting", this.onWaiting); + + if (this.player.ads) { + this.player.ads.addEventListener("adbegin", this.onAdBegin); + this.player.ads.addEventListener("adbreakend", this.onAdBreakEnd); + } + } + + private removeListeners(): void { + this.player.removeEventListener("sourcechange", this.onSourceChange); + this.player.removeEventListener("ended", this.onEnded); + this.player.removeEventListener("loadeddata", this.onLoadedData); + this.player.removeEventListener("loadedmetadata", this.onLoadedMetadata); + this.player.removeEventListener("playing", this.onPlaying); + this.player.removeEventListener("seeking", this.onSeeking); + this.player.removeEventListener("pause", this.onPause); + this.player.removeEventListener("timeupdate", this.onTimeUpdate); + this.player.removeEventListener("ratechange", this.onRateChange); + this.player.removeEventListener("waiting", this.onWaiting); + + if (this.player.ads) { + this.player.ads.removeEventListener("adbegin", this.onAdBegin); + this.player.ads.removeEventListener("adbreakend", this.onAdBreakEnd); + } + } + + private onSourceChange(event: SourceChangeEvent) { + console.log(`[COMSCORE] ${event.type} event`) + } + + private onPlaying(event: PlayingEvent) { + console.log(`[COMSCORE] ${event.type} event`) + } + + private onEnded(event: EndedEvent) { + console.log(`[COMSCORE] ${event.type} event`) + } + + private onLoadedData(event: LoadedDataEvent) { + console.log(`[COMSCORE] ${event.type} event`) } - private removeListeners() { - + private onLoadedMetadata(event: LoadedMetadataEvent) { + console.log(`[COMSCORE] ${event.type} event`) } + + private onSeeking(event: SeekingEvent) { + console.log(`[COMSCORE] ${event.type} event`) + } + + private onPause(event: PauseEvent) { + console.log(`[COMSCORE] ${event.type} event`) + } + + private onAdBegin(event: AdEvent<"adbegin">) { + console.log(`[COMSCORE] ${event.type} event`) + } + + private onAdBreakEnd(event: AdBreakEvent<"adbreakend">) { + console.log(`[COMSCORE] ${event.type} event`) + } + + private onTimeUpdate(event: TimeUpdateEvent) { + console.log(`[COMSCORE] ${event.type} event`) + } + + private onRateChange(event: RateChangeEvent) { + console.log(`[COMSCORE] ${event.type} event`) + } + + private onWaiting(event: WaitingEvent) { + console.log(`[COMSCORE] ${event.type} event`) + } + + } \ No newline at end of file From 599fde1d22348a96e9b745228e26677a5384e3fd Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Sun, 17 Mar 2024 09:29:49 +0100 Subject: [PATCH 08/68] initialize instance variables --- comscore/src/integration/ComscoreTHEOIntegration.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/comscore/src/integration/ComscoreTHEOIntegration.ts b/comscore/src/integration/ComscoreTHEOIntegration.ts index 435767d1..7c60edec 100644 --- a/comscore/src/integration/ComscoreTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreTHEOIntegration.ts @@ -13,12 +13,14 @@ enum ComscoreState { export class ComscoreTHEOIntegration { private player: ChromelessPlayer; - private configuration: ComscoreConfiguration + private configuration: ComscoreConfiguration; private contentMetadata: ComscoreMetadata; private state = ComscoreState.INITIALIZED constructor(player: ChromelessPlayer, configuration: ComscoreConfiguration, metadata: ComscoreMetadata) { - + this.player = player + this.configuration = configuration + this.contentMetadata = metadata } public update(metadata: ComscoreMetadata) { From d442968ba2133db25e47cfa8a97832e0012f727c Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Sun, 17 Mar 2024 09:30:01 +0100 Subject: [PATCH 09/68] remove event listeners on destroy --- comscore/src/integration/ComscoreTHEOIntegration.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/comscore/src/integration/ComscoreTHEOIntegration.ts b/comscore/src/integration/ComscoreTHEOIntegration.ts index 7c60edec..2451192a 100644 --- a/comscore/src/integration/ComscoreTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreTHEOIntegration.ts @@ -28,7 +28,7 @@ export class ComscoreTHEOIntegration { } public destroy() { - // this.removeListeners(); + this.removeListeners(); } private addListeners(): void { From 74d9ea6ce45e1736b6e84f595089bc6a4215a496 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Tue, 19 Mar 2024 12:25:15 +0100 Subject: [PATCH 10/68] add type declarations --- comscore/src/comscore/ComScore.d.ts | 259 ++++++++++++++++++++++++++++ 1 file changed, 259 insertions(+) create mode 100644 comscore/src/comscore/ComScore.d.ts diff --git a/comscore/src/comscore/ComScore.d.ts b/comscore/src/comscore/ComScore.d.ts new file mode 100644 index 00000000..af82635c --- /dev/null +++ b/comscore/src/comscore/ComScore.d.ts @@ -0,0 +1,259 @@ +declare namespace ns_ { + namespace analytics { + enum ConnectivityType { + UNKNOWN, + UNAVAILABLE, + DISCONNECTED, + CONNECTED, + ETHERNET, + WIFI, + WWAN, + BLUETOOTH, + EMULATOR + } + + enum PlatformAPIs { + SmartTV, + Netcast, + Cordova, + Trilithium, + AppleTV, + Chromecast, + Xbox, + webOS, + tvOS, + nodejs, + html5, + JSMAF, + Skeleton, + WebBrowser + } + + namespace PlatformApi { + function setPlatformAPI(platformApi: PlatformAPIs): void; + function setPlatformAPI(platformApi: PlatformAPIs, interfaceObject: unknown): void; + function setPlatformApi(platformApi: PlatformAPIs, interfaceObject: unknown): void; + } + + class StreamingAnalytics { + createPlaybackSession(): void + getPlaybackSessionId(): void + loopPlaybackSession(): void + notifyBufferStart(): void + notifyBufferStop(): void + notifyChangePlaybackRate(rate: number): void; + notifyEnd(): void + notifyPause(): void + notifyPlay(): void + notifySeekStart(): void + setDvrWindowLength(length: number): void; + setImplementationId(id: string): void; + setMediaPlayerName(name: string): void; + setMediaPlayerVersion(version: string): void; + setMetadata(metadata: any): void; + setProjectId(id: string): void; + startFromDvrWindowOffset(offset: number): void; + startFromPosition(position: number): void; + startFromSegment(segment: any): void; + constructor(); + } + + namespace StreamingAnalytics { + namespace AdvertisementMetadata { + export enum AdvertisementType { + ON_DEMAND_PRE_ROLL, + ON_DEMAND_MID_ROLL, + ON_DEMAND_POST_ROLL, + LIVE, + BRANDED_ON_DEMAND_PRE_ROLL, + BRANDED_ON_DEMAND_MID_ROLL, + BRANDED_ON_DEMAND_POST_ROLL, + BRANDED_AS_CONTENT, + BRANDED_DURING_LIVE, + OTHER, + } + + export enum AdvertisementDeliveryType { + NATIONAL, + LOCAL, + SYNDICATION + } + } + + class AdvertisementMetadata { + addCustomLabels(labels: any): void; + classifyAsAudioStream(isAudio: boolean): void; + setCallToActionUrl(url: string): void; + setClipUrl(url: string): void; + setDeliveryType(type: StreamingAnalytics.AdvertisementMetadata.AdvertisementDeliveryType): void; + setLength(length: number): void; + setMediaType(type: StreamingAnalytics.AdvertisementMetadata.AdvertisementType): void; + setOwner(owner: string): void; + setPlacementId(id: string): void; + setRelatedContentMetadata(metadata: any): void; + setServer(server: string): void; + setServerCampaignId(id: string): void; + setSiteId(id: string): void; + setTitle(title: string): void; + setUniqueId(id: string): void; + setVideoDimensions(width: number, height: number): void; + + constructor(); + } + + namespace ContentMetadata { + + export enum ContentDeliveryAdvertisementCapability { + DYNAMIC_LOAD, + DYNAMIC_REPLACEMENT, + LINEAR_1DAY, + LINEAR_2DAY, + LINEAR_3DAY, + LINEAR_4DAY, + LINEAR_5DAY, + LINEAR_6DAY, + LINEAR_7DAY + } + + export enum ContentDeliveryComposition { + CLEAN, + EMBED + } + + export enum ContentDeliveryMode { + LINEAR, + ON_DEMAND + } + + export enum ContentDeliverySubscriptionType { + ADVERTISING, + PREMIUM, + SUBSCRIPTION, + TRADITIONAL_MVPD, + TRANSACTIONAL, + VIRTUAL_MVPD, + } + + export enum ContentDistributionModel { + EXCLUSIVELY_ONLINE, + TV_AND_ONLINE + } + + export enum ContentFeedType { + EAST_HD, + EAST_SD, + OTHER, + WEST_HD, + WEST_SD + } + + export enum ContentMediaFormat { + EXTRA_EPISODE, + EXTRA_GENERIC, + EXTRA_MOVIE, + FULL_CONTENT_EPISODE, + FULL_CONTENT_GENERIC, + FULL_CONTENT_MOVIE, + PARTIAL_CONTENT_EPISODE, + PARTIAL_CONTENT_GENERIC, + PARTIAL_CONTENT_MOVIE, + PREVIEW_EPISODE, + PREVIEW_GENERIC, + PREVIEW_MOVIE + } + + export enum ContentType { + LONG_FORM_ON_DEMAND, + SHORT_FORM_ON_DEMAND, + LIVE, + USER_GENERATED_SHORT_FORM_ON_DEMAND, + USER_GENERATED_LONG_FORM_ON_DEMAND, + USER_GENERATED_LIVE, + BUMPER, + OTHER, + } + } + + class ContentMetadata { + addCustomLabels(labels: any): void; + carryTvAdvertisementLoad(carriesTvAdvertisementLoad: boolean): void; + classifyAsAudioStream(audioStream: boolean): void; + classifyAsCompleteEpisode(completeEpisode: boolean): void; + setClipUrl(url: string): void; + setDateOfDigitalAiring(year: number, month: number, day: number): void; + setDateOfProduction(year: number, month: number, day: number): void; + setDateOfTvAiring(year: number, month: number, day: number): void; + setDeliveryAdvertisementCapability(value: StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability): void; + setDeliveryComposition(value: StreamingAnalytics.ContentMetadata.ContentDeliveryComposition): void; + setDeliveryMode(value: StreamingAnalytics.ContentMetadata.ContentDeliveryMode): void; + setDeliverySubscriptionType(value: StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType): void; + setDictionaryClassificationC3(value: string): void; + setDictionaryClassificationC4(value: string): void; + setDictionaryClassificationC6(value: string): void; + setDistributionModel(value: StreamingAnalytics.ContentMetadata.ContentDistributionModel): void; + setEpisodeId(id: string): void; + setEpisodeNumber(episodeNumber: number): void; + setEpisodeSeasonNumber(seasonNumber: number): void; + setEpisodeTitle(title: string): void; + setFeedType(value: StreamingAnalytics.ContentMetadata.ContentFeedType): void; + setGenreId(id: string): void; + setGenreName(name: string): void; + setLength(length: number): void; + setMediaFormat(value: StreamingAnalytics.ContentMetadata.ContentMediaFormat): void; + setMediaType(value: StreamingAnalytics.ContentMetadata.ContentType): void; + setNetworkAffiliate(code: string): void; + setPlaylistTitle(title: string): void; + setProgramId(id: string): void; + setProgramTitle(title: string): void; + setPublisherName(name: string): void; + setStationCode(code: string): void; + setStationTitle(title: string): void; + setTimeOfDigitalAiring(hours: number, minutes: number): void; + setTimeOfProduction(hours: number, minutes: number): void; + setTimeOfTvAiring(hours: number, minutes: number): void; + setTotalSegments(total: number): void; + setUniqueId(id: string): void; + setVideoDimensions(width: number, height: number): void; + + constructor(); + + } + + } + + namespace configuration { + function setApplicationName(name: string): void; + + function setApplicationVersion(name: string): void; + + function addClient(config: PublisherConfiguration): void; + + function getPublisherConfiguration(id: string): any; + + function setPersistentLabel(name: string, value: any): void; + + function addPersistentLabels(labels: any): void; + + function enableImplementationValidationMode(): void; + + function enableChildDirectedApplicationMode(): void; + + class PublisherConfiguration { + publisherId: string; + constructor({ }: any) + } + } + + function notifyHiddenEvent(): void; + + function notifyEnterForeground(): void; + + function notifyExitForeground(): void; + + function close(): void; + + function start(): void; + + } + } + \ No newline at end of file From 6c745a7369e4cc0b201bdaf00e9b87bf91e5a8f8 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Wed, 20 Mar 2024 10:09:54 +0100 Subject: [PATCH 11/68] add NONE option to ContentDeliveryAdvertisementCapability --- comscore/src/comscore/ComScore.d.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/comscore/src/comscore/ComScore.d.ts b/comscore/src/comscore/ComScore.d.ts index af82635c..6a35265d 100644 --- a/comscore/src/comscore/ComScore.d.ts +++ b/comscore/src/comscore/ComScore.d.ts @@ -104,6 +104,7 @@ declare namespace ns_ { namespace ContentMetadata { export enum ContentDeliveryAdvertisementCapability { + NONE, DYNAMIC_LOAD, DYNAMIC_REPLACEMENT, LINEAR_1DAY, @@ -192,8 +193,8 @@ declare namespace ns_ { setDictionaryClassificationC6(value: string): void; setDistributionModel(value: StreamingAnalytics.ContentMetadata.ContentDistributionModel): void; setEpisodeId(id: string): void; - setEpisodeNumber(episodeNumber: number): void; - setEpisodeSeasonNumber(seasonNumber: number): void; + setEpisodeNumber(episodeNumber: string): void; + setEpisodeSeasonNumber(seasonNumber: string): void; setEpisodeTitle(title: string): void; setFeedType(value: StreamingAnalytics.ContentMetadata.ContentFeedType): void; setGenreId(id: string): void; From d7800c0fc5f04eeb4ff18196285fd4f56d74334b Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Wed, 20 Mar 2024 10:10:31 +0100 Subject: [PATCH 12/68] prepare metadata setting functions --- .../integration/ComscoreTHEOIntegration.ts | 343 +++++++++++++++++- 1 file changed, 336 insertions(+), 7 deletions(-) diff --git a/comscore/src/integration/ComscoreTHEOIntegration.ts b/comscore/src/integration/ComscoreTHEOIntegration.ts index 2451192a..fb65315c 100644 --- a/comscore/src/integration/ComscoreTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreTHEOIntegration.ts @@ -1,6 +1,8 @@ -import { AdBreakEvent, AdEvent, ChromelessPlayer, EndedEvent, LoadedDataEvent, LoadedMetadataEvent, PauseEvent, PlayingEvent, RateChangeEvent, SeekingEvent, SourceChangeEvent, TimeUpdateEvent, WaitingEvent } from "theoplayer"; +import { AdBreakEvent, AdEvent, ChromelessPlayer, EndedEvent, LoadedDataEvent, LoadedMetadataEvent, PauseEvent, PlayingEvent, RateChangeEvent, SeekingEvent, SourceChangeEvent, TimeUpdateEvent, WaitingEvent, version } from "theoplayer"; import { ComscoreConfiguration } from "../api/ComscoreConfiguration"; -import { ComscoreMetadata } from "../api/ComscoreMetadata"; +import { ComscoreDeliveryAdvertisementCapability, ComscoreDeliveryComposition, ComscoreDeliveryMode, ComscoreDeliverySubscriptionType, ComscoreDistributionModel, ComscoreFeedType, ComscoreMediaFormat, ComscoreMediaType, ComscoreMetadata } from "../api/ComscoreMetadata"; + +const DEBUG_LOGS_ENABLED = true enum ComscoreState { INITIALIZED, @@ -14,17 +16,27 @@ enum ComscoreState { export class ComscoreTHEOIntegration { private player: ChromelessPlayer; private configuration: ComscoreConfiguration; - private contentMetadata: ComscoreMetadata; - private state = ComscoreState.INITIALIZED + private metadata: ComscoreMetadata; + + private state: ComscoreState = ComscoreState.INITIALIZED + + private analytics = ns_.analytics; + private streamingAnalytics = new this.analytics.StreamingAnalytics(); + + // private contentMetadata: ns_.analytics.StreamingAnalytics.ContentMetadata; constructor(player: ChromelessPlayer, configuration: ComscoreConfiguration, metadata: ComscoreMetadata) { this.player = player this.configuration = configuration - this.contentMetadata = metadata + this.metadata = metadata + + this.streamingAnalytics.setMediaPlayerName("THEOplayer") + this.streamingAnalytics.setMediaPlayerVersion(version) } public update(metadata: ComscoreMetadata) { - this.contentMetadata = metadata; + this.metadata = metadata; + // this.contentMetadata = null } public destroy() { @@ -67,8 +79,176 @@ export class ComscoreTHEOIntegration { } } + private setContentMetadata(): void { + let contentMetadata = new this.analytics.StreamingAnalytics.ContentMetadata() + const { + mediaType, + uniqueId, + length, + c3, + c4, + c6, + stationTitle, + stationCode, + networkAffiliate, + publisherName, + programTitle, + programId, + episodeTitle, + episodeId, + episodeSeasonNumber, + episodeNumber, + genreName, + genreId, + carryTvAdvertisementLoad, + classifyAsCompleteEpisode, + dateOfProduction, + timeOfProduction, + dateOfTvAiring, + timeOfTvAiring, + dateOfDigitalAiring, + timeOfDigitalAiring, + feedType, + classifyAsAudioStream, + deliveryMode, + deliverySubscriptionType, + deliveryComposition, + deliveryAdvertisementCapability, + mediaFormat, + distributionModel, + playlistTitle, + totalSegments, + clipUrl, + videoDimension, + customLabels, + } = this.metadata + contentMetadata.setMediaType(this.mapMediaType(mediaType)) + contentMetadata.setUniqueId(uniqueId) + contentMetadata.setLength(length) + if(c3) { + contentMetadata.setDictionaryClassificationC3(c3) + } + if(c4) { + contentMetadata.setDictionaryClassificationC4(c4) + } + if(c6) { + contentMetadata.setDictionaryClassificationC6(c6) + } + contentMetadata.setStationTitle(stationTitle) + if(stationCode) { + contentMetadata.setStationCode(stationCode) + } + if(networkAffiliate) { + contentMetadata.setNetworkAffiliate(networkAffiliate) + } + if(publisherName) { + contentMetadata.setPublisherName(publisherName) + } + contentMetadata.setProgramTitle(programTitle) + if(programId) { + contentMetadata.setProgramId(programId) + } + contentMetadata.setEpisodeTitle(episodeTitle) + if(episodeId) { + contentMetadata.setEpisodeId(episodeId) + } + if(episodeSeasonNumber) { + contentMetadata.setEpisodeSeasonNumber(episodeSeasonNumber) + } + if(episodeNumber) { + contentMetadata.setEpisodeNumber(episodeNumber) + } + genreName + if(genreId) { + contentMetadata.setGenreId(genreId) + } + if(carryTvAdvertisementLoad) { + contentMetadata.carryTvAdvertisementLoad(carryTvAdvertisementLoad) + } + if(classifyAsCompleteEpisode) { + contentMetadata.classifyAsCompleteEpisode(classifyAsCompleteEpisode) + } + if(dateOfProduction) { + const { year, month, day } = dateOfProduction + contentMetadata.setDateOfProduction(year,month,day) + } + if(timeOfProduction) { + const { hours, minutes } = timeOfProduction + contentMetadata.setTimeOfProduction(hours,minutes) + } + if(dateOfTvAiring) { + const { year, month, day } = dateOfTvAiring + contentMetadata.setDateOfTvAiring(year,month,day) + } + if(timeOfTvAiring) { + const { hours, minutes } = timeOfTvAiring + contentMetadata.setTimeOfTvAiring(hours,minutes) + } + if(dateOfDigitalAiring) { + const { year, month, day } = dateOfDigitalAiring + contentMetadata.setDateOfDigitalAiring(year,month,day) + } + if(timeOfDigitalAiring) { + const { hours, minutes } = timeOfDigitalAiring + contentMetadata.setTimeOfDigitalAiring(hours,minutes) + } + if(feedType) { + contentMetadata.setFeedType(this.mapFeedType(feedType)) + } + classifyAsAudioStream + if(deliveryMode) { + contentMetadata.setDeliveryMode(this.mapDeliveryMode(deliveryMode)) + } + if(deliverySubscriptionType) { + contentMetadata.setDeliverySubscriptionType(this.mapDeliverySubscriptionType(deliverySubscriptionType)) + } + if(deliveryComposition) { + contentMetadata.setDeliveryComposition(this.mapDeliveryComposition(deliveryComposition)) + } + if(deliveryAdvertisementCapability) { + contentMetadata.setDeliveryAdvertisementCapability(this.mapDeliveryAdvertisementCapability(deliveryAdvertisementCapability)) + } + if(mediaFormat) { + contentMetadata.setMediaFormat(this.mapMediaFormat(mediaFormat)) + } + if(distributionModel) { + contentMetadata.setDistributionModel(this.mapDistributionModel(distributionModel)) + } + if(playlistTitle) { + contentMetadata.setPlaylistTitle(playlistTitle) + } + if(totalSegments) { + contentMetadata.setTotalSegments(totalSegments) + } + if(clipUrl) { + contentMetadata.setClipUrl(clipUrl) + } + if(videoDimension) { + const { width, height } = videoDimension + contentMetadata.setVideoDimensions(width,height) + } + if(customLabels) { + contentMetadata.addCustomLabels(customLabels) + } + this.streamingAnalytics.setMetadata(contentMetadata) + + } + + private setAdMetadata(adDuration, adBreakOffset, adId): void { + let adMetadata = new this.analytics.StreamingAnalytics.AdvertisementMetadata() + + } + private onSourceChange(event: SourceChangeEvent) { - console.log(`[COMSCORE] ${event.type} event`) + console.log(`[COMSCORE] ${event.type} event`); + this.state = ComscoreState.INITIALIZED; + // this.contentMetadata = null; + if (DEBUG_LOGS_ENABLED) { + console.log(`[COMSCORE] createPlaybackSession`); + } + this.streamingAnalytics.createPlaybackSession(); + + } private onPlaying(event: PlayingEvent) { @@ -115,5 +295,154 @@ export class ComscoreTHEOIntegration { console.log(`[COMSCORE] ${event.type} event`) } + private mapMediaType(mediaType: ComscoreMediaType) { + switch(mediaType){ + case ComscoreMediaType.bumper: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.BUMPER; + case ComscoreMediaType.live: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.LIVE + case ComscoreMediaType.longFormOnDemand: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.LONG_FORM_ON_DEMAND + case ComscoreMediaType.other: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.OTHER + case ComscoreMediaType.shortFormOnDemand: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.SHORT_FORM_ON_DEMAND + case ComscoreMediaType.userGeneratedLive: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.USER_GENERATED_LIVE + case ComscoreMediaType.userGeneratedLongFormOnDemand: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.USER_GENERATED_LONG_FORM_ON_DEMAND + case ComscoreMediaType.userGeneratedShortFormOnDemand: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.USER_GENERATED_SHORT_FORM_ON_DEMAND + default: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.OTHER + } + } + + private mapFeedType(feedType: ComscoreFeedType) { + switch(feedType){ + case ComscoreFeedType.eastHD: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.EAST_HD + case ComscoreFeedType.westHD: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.WEST_HD + case ComscoreFeedType.eastSD: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.EAST_SD + case ComscoreFeedType.westSD: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.WEST_SD + default: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.OTHER + } + } + + private mapDeliveryMode(deliveryMode: ComscoreDeliveryMode) { + switch(deliveryMode){ + case ComscoreDeliveryMode.linear: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode.LINEAR + case ComscoreDeliveryMode.ondemand: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode.ON_DEMAND + default: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode.ON_DEMAND + } + } + + private mapDeliverySubscriptionType(deliverySubscriptionType: ComscoreDeliverySubscriptionType) { + switch(deliverySubscriptionType){ + case ComscoreDeliverySubscriptionType.traditionalMvpd: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.TRADITIONAL_MVPD + case ComscoreDeliverySubscriptionType.virtualMvpd: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.VIRTUAL_MVPD + case ComscoreDeliverySubscriptionType.subscription: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.SUBSCRIPTION + case ComscoreDeliverySubscriptionType.transactional: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.TRANSACTIONAL + case ComscoreDeliverySubscriptionType.advertising: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.ADVERTISING + case ComscoreDeliverySubscriptionType.premium: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.PREMIUM + default: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.SUBSCRIPTION + } + } + + private mapDeliveryComposition(deliveryComposition: ComscoreDeliveryComposition) { + switch(deliveryComposition){ + case ComscoreDeliveryComposition.clean: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition.CLEAN + case ComscoreDeliveryComposition.embed: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition.EMBED + default: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition.EMBED + } + } + private mapDeliveryAdvertisementCapability(deliveryAdvertisementCapability: ComscoreDeliveryAdvertisementCapability) { + switch(deliveryAdvertisementCapability){ + case ComscoreDeliveryAdvertisementCapability.none: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.NONE + case ComscoreDeliveryAdvertisementCapability.dynamicLoad: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.DYNAMIC_LOAD + case ComscoreDeliveryAdvertisementCapability.dynamicReplacement: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.DYNAMIC_REPLACEMENT + case ComscoreDeliveryAdvertisementCapability.linear1day: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_1DAY + case ComscoreDeliveryAdvertisementCapability.linear2day: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_2DAY + case ComscoreDeliveryAdvertisementCapability.linear3day: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_3DAY + case ComscoreDeliveryAdvertisementCapability.linear4day: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_4DAY + case ComscoreDeliveryAdvertisementCapability.linear5day: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_5DAY + case ComscoreDeliveryAdvertisementCapability.linear6day: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_6DAY + case ComscoreDeliveryAdvertisementCapability.linear7day: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_7DAY + default: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.NONE + } + } + private mapMediaFormat(mediaFormat: ComscoreMediaFormat) { + switch(mediaFormat){ + case ComscoreMediaFormat.fullContentEpisode: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_EPISODE + case ComscoreMediaFormat.fullContentMovie: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_MOVIE + case ComscoreMediaFormat.fullContentPodcast: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_GENERIC + case ComscoreMediaFormat.fullContentGeneric: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_GENERIC + case ComscoreMediaFormat.partialContentEpisode: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_EPISODE + case ComscoreMediaFormat.partialContentMovie: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_MOVIE + case ComscoreMediaFormat.partialContentPodcast: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_GENERIC + case ComscoreMediaFormat.partialContentGeneric: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_GENERIC + case ComscoreMediaFormat.previewEpisode: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PREVIEW_EPISODE + case ComscoreMediaFormat.previewMovie: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PREVIEW_MOVIE + case ComscoreMediaFormat.previewGeneric: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PREVIEW_GENERIC + case ComscoreMediaFormat.extraEpisode: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.EXTRA_EPISODE + case ComscoreMediaFormat.extraMovie: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.EXTRA_MOVIE + case ComscoreMediaFormat.extraGeneric: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.EXTRA_GENERIC + default: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_GENERIC + } + } + private mapDistributionModel(distributionModel: ComscoreDistributionModel) { + switch(distributionModel) { + case ComscoreDistributionModel.tvAndOnline: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel.TV_AND_ONLINE + case ComscoreDistributionModel.exclusivelyOnline: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel.EXCLUSIVELY_ONLINE + default: + return this.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel.EXCLUSIVELY_ONLINE + } + } + } \ No newline at end of file From 3ff22c7f865cff27461d4def4ab8020541e57861 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Wed, 20 Mar 2024 10:29:46 +0100 Subject: [PATCH 13/68] put mediaplayer name and version setter at correct level --- comscore/src/comscore/ComScore.d.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/comscore/src/comscore/ComScore.d.ts b/comscore/src/comscore/ComScore.d.ts index 6a35265d..87c4b304 100644 --- a/comscore/src/comscore/ComScore.d.ts +++ b/comscore/src/comscore/ComScore.d.ts @@ -48,8 +48,6 @@ declare namespace ns_ { notifySeekStart(): void setDvrWindowLength(length: number): void; setImplementationId(id: string): void; - setMediaPlayerName(name: string): void; - setMediaPlayerVersion(version: string): void; setMetadata(metadata: any): void; setProjectId(id: string): void; startFromDvrWindowOffset(offset: number): void; @@ -244,6 +242,9 @@ declare namespace ns_ { constructor({ }: any) } } + function setMediaPlayerName(name: string): void; + + function setMediaPlayerVersion(version: string): void; function notifyHiddenEvent(): void; From f87a23dcf3dfcd001f2f6dcd3ff9185f1bf990b7 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Wed, 20 Mar 2024 10:54:03 +0100 Subject: [PATCH 14/68] move metadata building to separate file --- .../integration/ComscoreContentMetadata.ts | 308 +++++++++++++++++ .../integration/ComscoreTHEOIntegration.ts | 326 ++---------------- 2 files changed, 331 insertions(+), 303 deletions(-) create mode 100644 comscore/src/integration/ComscoreContentMetadata.ts diff --git a/comscore/src/integration/ComscoreContentMetadata.ts b/comscore/src/integration/ComscoreContentMetadata.ts new file mode 100644 index 00000000..97d4cfa0 --- /dev/null +++ b/comscore/src/integration/ComscoreContentMetadata.ts @@ -0,0 +1,308 @@ +import { ComscoreDeliveryAdvertisementCapability, ComscoreDeliveryComposition, ComscoreDeliveryMode, ComscoreDeliverySubscriptionType, ComscoreDistributionModel, ComscoreFeedType, ComscoreMediaFormat, ComscoreMediaType, ComscoreMetadata } from "../api/ComscoreMetadata"; + +export const buildContentMetadata = (metadata: ComscoreMetadata): ns_.analytics.StreamingAnalytics.ContentMetadata => { + let contentMetadata = new ns_.analytics.StreamingAnalytics.ContentMetadata() + const { + mediaType, + uniqueId, + length, + c3, + c4, + c6, + stationTitle, + stationCode, + networkAffiliate, + publisherName, + programTitle, + programId, + episodeTitle, + episodeId, + episodeSeasonNumber, + episodeNumber, + genreName, + genreId, + carryTvAdvertisementLoad, + classifyAsCompleteEpisode, + dateOfProduction, + timeOfProduction, + dateOfTvAiring, + timeOfTvAiring, + dateOfDigitalAiring, + timeOfDigitalAiring, + feedType, + classifyAsAudioStream, + deliveryMode, + deliverySubscriptionType, + deliveryComposition, + deliveryAdvertisementCapability, + mediaFormat, + distributionModel, + playlistTitle, + totalSegments, + clipUrl, + videoDimension, + customLabels, + } = metadata + contentMetadata.setMediaType(mapMediaType(mediaType)) + contentMetadata.setUniqueId(uniqueId) + contentMetadata.setLength(length) + if(c3) { + contentMetadata.setDictionaryClassificationC3(c3) + } + if(c4) { + contentMetadata.setDictionaryClassificationC4(c4) + } + if(c6) { + contentMetadata.setDictionaryClassificationC6(c6) + } + contentMetadata.setStationTitle(stationTitle) + if(stationCode) { + contentMetadata.setStationCode(stationCode) + } + if(networkAffiliate) { + contentMetadata.setNetworkAffiliate(networkAffiliate) + } + if(publisherName) { + contentMetadata.setPublisherName(publisherName) + } + contentMetadata.setProgramTitle(programTitle) + if(programId) { + contentMetadata.setProgramId(programId) + } + contentMetadata.setEpisodeTitle(episodeTitle) + if(episodeId) { + contentMetadata.setEpisodeId(episodeId) + } + if(episodeSeasonNumber) { + contentMetadata.setEpisodeSeasonNumber(episodeSeasonNumber) + } + if(episodeNumber) { + contentMetadata.setEpisodeNumber(episodeNumber) + } + genreName + if(genreId) { + contentMetadata.setGenreId(genreId) + } + if(carryTvAdvertisementLoad) { + contentMetadata.carryTvAdvertisementLoad(carryTvAdvertisementLoad) + } + if(classifyAsCompleteEpisode) { + contentMetadata.classifyAsCompleteEpisode(classifyAsCompleteEpisode) + } + if(dateOfProduction) { + const { year, month, day } = dateOfProduction + contentMetadata.setDateOfProduction(year,month,day) + } + if(timeOfProduction) { + const { hours, minutes } = timeOfProduction + contentMetadata.setTimeOfProduction(hours,minutes) + } + if(dateOfTvAiring) { + const { year, month, day } = dateOfTvAiring + contentMetadata.setDateOfTvAiring(year,month,day) + } + if(timeOfTvAiring) { + const { hours, minutes } = timeOfTvAiring + contentMetadata.setTimeOfTvAiring(hours,minutes) + } + if(dateOfDigitalAiring) { + const { year, month, day } = dateOfDigitalAiring + contentMetadata.setDateOfDigitalAiring(year,month,day) + } + if(timeOfDigitalAiring) { + const { hours, minutes } = timeOfDigitalAiring + contentMetadata.setTimeOfDigitalAiring(hours,minutes) + } + if(feedType) { + contentMetadata.setFeedType(mapFeedType(feedType)) + } + classifyAsAudioStream + if(deliveryMode) { + contentMetadata.setDeliveryMode(mapDeliveryMode(deliveryMode)) + } + if(deliverySubscriptionType) { + contentMetadata.setDeliverySubscriptionType(mapDeliverySubscriptionType(deliverySubscriptionType)) + } + if(deliveryComposition) { + contentMetadata.setDeliveryComposition(mapDeliveryComposition(deliveryComposition)) + } + if(deliveryAdvertisementCapability) { + contentMetadata.setDeliveryAdvertisementCapability(mapDeliveryAdvertisementCapability(deliveryAdvertisementCapability)) + } + if(mediaFormat) { + contentMetadata.setMediaFormat(mapMediaFormat(mediaFormat)) + } + if(distributionModel) { + contentMetadata.setDistributionModel(mapDistributionModel(distributionModel)) + } + if(playlistTitle) { + contentMetadata.setPlaylistTitle(playlistTitle) + } + if(totalSegments) { + contentMetadata.setTotalSegments(totalSegments) + } + if(clipUrl) { + contentMetadata.setClipUrl(clipUrl) + } + if(videoDimension) { + const { width, height } = videoDimension + contentMetadata.setVideoDimensions(width,height) + } + if(customLabels) { + contentMetadata.addCustomLabels(customLabels) + } + return contentMetadata + +} + +const mapMediaType = (mediaType: ComscoreMediaType): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType => { + switch(mediaType){ + case ComscoreMediaType.bumper: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.BUMPER; + case ComscoreMediaType.live: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.LIVE + case ComscoreMediaType.longFormOnDemand: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.LONG_FORM_ON_DEMAND + case ComscoreMediaType.other: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.OTHER + case ComscoreMediaType.shortFormOnDemand: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.SHORT_FORM_ON_DEMAND + case ComscoreMediaType.userGeneratedLive: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.USER_GENERATED_LIVE + case ComscoreMediaType.userGeneratedLongFormOnDemand: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.USER_GENERATED_LONG_FORM_ON_DEMAND + case ComscoreMediaType.userGeneratedShortFormOnDemand: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.USER_GENERATED_SHORT_FORM_ON_DEMAND + default: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.OTHER + } +} + +const mapFeedType = (feedType: ComscoreFeedType): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType => { + switch(feedType){ + case ComscoreFeedType.eastHD: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.EAST_HD + case ComscoreFeedType.westHD: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.WEST_HD + case ComscoreFeedType.eastSD: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.EAST_SD + case ComscoreFeedType.westSD: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.WEST_SD + default: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.OTHER + } +} + +const mapDeliveryMode = (deliveryMode: ComscoreDeliveryMode): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode => { + switch(deliveryMode){ + case ComscoreDeliveryMode.linear: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode.LINEAR + case ComscoreDeliveryMode.ondemand: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode.ON_DEMAND + default: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode.ON_DEMAND + } +} + +const mapDeliverySubscriptionType = (deliverySubscriptionType: ComscoreDeliverySubscriptionType): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType => { + switch(deliverySubscriptionType){ + case ComscoreDeliverySubscriptionType.traditionalMvpd: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.TRADITIONAL_MVPD + case ComscoreDeliverySubscriptionType.virtualMvpd: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.VIRTUAL_MVPD + case ComscoreDeliverySubscriptionType.subscription: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.SUBSCRIPTION + case ComscoreDeliverySubscriptionType.transactional: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.TRANSACTIONAL + case ComscoreDeliverySubscriptionType.advertising: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.ADVERTISING + case ComscoreDeliverySubscriptionType.premium: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.PREMIUM + default: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.SUBSCRIPTION + } +} + +const mapDeliveryComposition = (deliveryComposition: ComscoreDeliveryComposition): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition => { + switch(deliveryComposition){ + case ComscoreDeliveryComposition.clean: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition.CLEAN + case ComscoreDeliveryComposition.embed: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition.EMBED + default: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition.EMBED + } +} + +const mapDeliveryAdvertisementCapability = (deliveryAdvertisementCapability: ComscoreDeliveryAdvertisementCapability): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability => { + switch(deliveryAdvertisementCapability){ + case ComscoreDeliveryAdvertisementCapability.none: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.NONE + case ComscoreDeliveryAdvertisementCapability.dynamicLoad: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.DYNAMIC_LOAD + case ComscoreDeliveryAdvertisementCapability.dynamicReplacement: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.DYNAMIC_REPLACEMENT + case ComscoreDeliveryAdvertisementCapability.linear1day: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_1DAY + case ComscoreDeliveryAdvertisementCapability.linear2day: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_2DAY + case ComscoreDeliveryAdvertisementCapability.linear3day: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_3DAY + case ComscoreDeliveryAdvertisementCapability.linear4day: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_4DAY + case ComscoreDeliveryAdvertisementCapability.linear5day: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_5DAY + case ComscoreDeliveryAdvertisementCapability.linear6day: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_6DAY + case ComscoreDeliveryAdvertisementCapability.linear7day: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_7DAY + default: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.NONE + } +} + +const mapMediaFormat = (mediaFormat: ComscoreMediaFormat): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat => { + switch(mediaFormat){ + case ComscoreMediaFormat.fullContentEpisode: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_EPISODE + case ComscoreMediaFormat.fullContentMovie: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_MOVIE + case ComscoreMediaFormat.fullContentPodcast: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_GENERIC + case ComscoreMediaFormat.fullContentGeneric: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_GENERIC + case ComscoreMediaFormat.partialContentEpisode: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_EPISODE + case ComscoreMediaFormat.partialContentMovie: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_MOVIE + case ComscoreMediaFormat.partialContentPodcast: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_GENERIC + case ComscoreMediaFormat.partialContentGeneric: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_GENERIC + case ComscoreMediaFormat.previewEpisode: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PREVIEW_EPISODE + case ComscoreMediaFormat.previewMovie: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PREVIEW_MOVIE + case ComscoreMediaFormat.previewGeneric: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PREVIEW_GENERIC + case ComscoreMediaFormat.extraEpisode: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.EXTRA_EPISODE + case ComscoreMediaFormat.extraMovie: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.EXTRA_MOVIE + case ComscoreMediaFormat.extraGeneric: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.EXTRA_GENERIC + default: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_GENERIC + } +} + +const mapDistributionModel = (distributionModel: ComscoreDistributionModel): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel => { + switch(distributionModel) { + case ComscoreDistributionModel.tvAndOnline: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel.TV_AND_ONLINE + case ComscoreDistributionModel.exclusivelyOnline: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel.EXCLUSIVELY_ONLINE + default: + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel.EXCLUSIVELY_ONLINE + } +} diff --git a/comscore/src/integration/ComscoreTHEOIntegration.ts b/comscore/src/integration/ComscoreTHEOIntegration.ts index fb65315c..59db2795 100644 --- a/comscore/src/integration/ComscoreTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreTHEOIntegration.ts @@ -1,6 +1,7 @@ import { AdBreakEvent, AdEvent, ChromelessPlayer, EndedEvent, LoadedDataEvent, LoadedMetadataEvent, PauseEvent, PlayingEvent, RateChangeEvent, SeekingEvent, SourceChangeEvent, TimeUpdateEvent, WaitingEvent, version } from "theoplayer"; import { ComscoreConfiguration } from "../api/ComscoreConfiguration"; import { ComscoreDeliveryAdvertisementCapability, ComscoreDeliveryComposition, ComscoreDeliveryMode, ComscoreDeliverySubscriptionType, ComscoreDistributionModel, ComscoreFeedType, ComscoreMediaFormat, ComscoreMediaType, ComscoreMetadata } from "../api/ComscoreMetadata"; +import { buildContentMetadata } from "./ComscoreContentMetadata"; const DEBUG_LOGS_ENABLED = true @@ -23,15 +24,15 @@ export class ComscoreTHEOIntegration { private analytics = ns_.analytics; private streamingAnalytics = new this.analytics.StreamingAnalytics(); - // private contentMetadata: ns_.analytics.StreamingAnalytics.ContentMetadata; + private contentMetadata: ns_.analytics.StreamingAnalytics.ContentMetadata; constructor(player: ChromelessPlayer, configuration: ComscoreConfiguration, metadata: ComscoreMetadata) { this.player = player this.configuration = configuration this.metadata = metadata - this.streamingAnalytics.setMediaPlayerName("THEOplayer") - this.streamingAnalytics.setMediaPlayerVersion(version) + this.analytics.setMediaPlayerName("THEOplayer") + this.analytics.setMediaPlayerVersion(version) } public update(metadata: ComscoreMetadata) { @@ -80,162 +81,30 @@ export class ComscoreTHEOIntegration { } private setContentMetadata(): void { - let contentMetadata = new this.analytics.StreamingAnalytics.ContentMetadata() - const { - mediaType, - uniqueId, - length, - c3, - c4, - c6, - stationTitle, - stationCode, - networkAffiliate, - publisherName, - programTitle, - programId, - episodeTitle, - episodeId, - episodeSeasonNumber, - episodeNumber, - genreName, - genreId, - carryTvAdvertisementLoad, - classifyAsCompleteEpisode, - dateOfProduction, - timeOfProduction, - dateOfTvAiring, - timeOfTvAiring, - dateOfDigitalAiring, - timeOfDigitalAiring, - feedType, - classifyAsAudioStream, - deliveryMode, - deliverySubscriptionType, - deliveryComposition, - deliveryAdvertisementCapability, - mediaFormat, - distributionModel, - playlistTitle, - totalSegments, - clipUrl, - videoDimension, - customLabels, - } = this.metadata - contentMetadata.setMediaType(this.mapMediaType(mediaType)) - contentMetadata.setUniqueId(uniqueId) - contentMetadata.setLength(length) - if(c3) { - contentMetadata.setDictionaryClassificationC3(c3) - } - if(c4) { - contentMetadata.setDictionaryClassificationC4(c4) - } - if(c6) { - contentMetadata.setDictionaryClassificationC6(c6) - } - contentMetadata.setStationTitle(stationTitle) - if(stationCode) { - contentMetadata.setStationCode(stationCode) - } - if(networkAffiliate) { - contentMetadata.setNetworkAffiliate(networkAffiliate) - } - if(publisherName) { - contentMetadata.setPublisherName(publisherName) - } - contentMetadata.setProgramTitle(programTitle) - if(programId) { - contentMetadata.setProgramId(programId) - } - contentMetadata.setEpisodeTitle(episodeTitle) - if(episodeId) { - contentMetadata.setEpisodeId(episodeId) - } - if(episodeSeasonNumber) { - contentMetadata.setEpisodeSeasonNumber(episodeSeasonNumber) - } - if(episodeNumber) { - contentMetadata.setEpisodeNumber(episodeNumber) - } - genreName - if(genreId) { - contentMetadata.setGenreId(genreId) - } - if(carryTvAdvertisementLoad) { - contentMetadata.carryTvAdvertisementLoad(carryTvAdvertisementLoad) - } - if(classifyAsCompleteEpisode) { - contentMetadata.classifyAsCompleteEpisode(classifyAsCompleteEpisode) - } - if(dateOfProduction) { - const { year, month, day } = dateOfProduction - contentMetadata.setDateOfProduction(year,month,day) - } - if(timeOfProduction) { - const { hours, minutes } = timeOfProduction - contentMetadata.setTimeOfProduction(hours,minutes) - } - if(dateOfTvAiring) { - const { year, month, day } = dateOfTvAiring - contentMetadata.setDateOfTvAiring(year,month,day) - } - if(timeOfTvAiring) { - const { hours, minutes } = timeOfTvAiring - contentMetadata.setTimeOfTvAiring(hours,minutes) - } - if(dateOfDigitalAiring) { - const { year, month, day } = dateOfDigitalAiring - contentMetadata.setDateOfDigitalAiring(year,month,day) - } - if(timeOfDigitalAiring) { - const { hours, minutes } = timeOfDigitalAiring - contentMetadata.setTimeOfDigitalAiring(hours,minutes) - } - if(feedType) { - contentMetadata.setFeedType(this.mapFeedType(feedType)) - } - classifyAsAudioStream - if(deliveryMode) { - contentMetadata.setDeliveryMode(this.mapDeliveryMode(deliveryMode)) - } - if(deliverySubscriptionType) { - contentMetadata.setDeliverySubscriptionType(this.mapDeliverySubscriptionType(deliverySubscriptionType)) - } - if(deliveryComposition) { - contentMetadata.setDeliveryComposition(this.mapDeliveryComposition(deliveryComposition)) - } - if(deliveryAdvertisementCapability) { - contentMetadata.setDeliveryAdvertisementCapability(this.mapDeliveryAdvertisementCapability(deliveryAdvertisementCapability)) - } - if(mediaFormat) { - contentMetadata.setMediaFormat(this.mapMediaFormat(mediaFormat)) - } - if(distributionModel) { - contentMetadata.setDistributionModel(this.mapDistributionModel(distributionModel)) - } - if(playlistTitle) { - contentMetadata.setPlaylistTitle(playlistTitle) - } - if(totalSegments) { - contentMetadata.setTotalSegments(totalSegments) - } - if(clipUrl) { - contentMetadata.setClipUrl(clipUrl) - } - if(videoDimension) { - const { width, height } = videoDimension - contentMetadata.setVideoDimensions(width,height) - } - if(customLabels) { - contentMetadata.addCustomLabels(customLabels) - } + let contentMetadata = buildContentMetadata(this.metadata) + this.contentMetadata = contentMetadata this.streamingAnalytics.setMetadata(contentMetadata) } - private setAdMetadata(adDuration, adBreakOffset, adId): void { + private setAdMetadata(adDuration: number, adBreakOffset: number, adId: string): void { let adMetadata = new this.analytics.StreamingAnalytics.AdvertisementMetadata() + if (this.player.duration == Infinity) { + adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.LIVE) + } else if (adBreakOffset == 0) { + adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.ON_DEMAND_PRE_ROLL) + } else if (adBreakOffset == -1) { + adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.ON_DEMAND_POST_ROLL) + } else { + adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.ON_DEMAND_MID_ROLL) + } + adMetadata.setLength(adDuration) + + if (!this.contentMetadata) buildContentMetadata(this.metadata) + adMetadata.setRelatedContentMetadata(this.contentMetadata) + + // adMetadata.addCustomLabels() + } @@ -295,154 +164,5 @@ export class ComscoreTHEOIntegration { console.log(`[COMSCORE] ${event.type} event`) } - private mapMediaType(mediaType: ComscoreMediaType) { - switch(mediaType){ - case ComscoreMediaType.bumper: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.BUMPER; - case ComscoreMediaType.live: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.LIVE - case ComscoreMediaType.longFormOnDemand: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.LONG_FORM_ON_DEMAND - case ComscoreMediaType.other: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.OTHER - case ComscoreMediaType.shortFormOnDemand: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.SHORT_FORM_ON_DEMAND - case ComscoreMediaType.userGeneratedLive: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.USER_GENERATED_LIVE - case ComscoreMediaType.userGeneratedLongFormOnDemand: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.USER_GENERATED_LONG_FORM_ON_DEMAND - case ComscoreMediaType.userGeneratedShortFormOnDemand: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.USER_GENERATED_SHORT_FORM_ON_DEMAND - default: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentType.OTHER - } - } - - private mapFeedType(feedType: ComscoreFeedType) { - switch(feedType){ - case ComscoreFeedType.eastHD: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.EAST_HD - case ComscoreFeedType.westHD: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.WEST_HD - case ComscoreFeedType.eastSD: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.EAST_SD - case ComscoreFeedType.westSD: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.WEST_SD - default: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.OTHER - } - } - - private mapDeliveryMode(deliveryMode: ComscoreDeliveryMode) { - switch(deliveryMode){ - case ComscoreDeliveryMode.linear: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode.LINEAR - case ComscoreDeliveryMode.ondemand: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode.ON_DEMAND - default: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode.ON_DEMAND - } - } - - private mapDeliverySubscriptionType(deliverySubscriptionType: ComscoreDeliverySubscriptionType) { - switch(deliverySubscriptionType){ - case ComscoreDeliverySubscriptionType.traditionalMvpd: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.TRADITIONAL_MVPD - case ComscoreDeliverySubscriptionType.virtualMvpd: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.VIRTUAL_MVPD - case ComscoreDeliverySubscriptionType.subscription: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.SUBSCRIPTION - case ComscoreDeliverySubscriptionType.transactional: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.TRANSACTIONAL - case ComscoreDeliverySubscriptionType.advertising: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.ADVERTISING - case ComscoreDeliverySubscriptionType.premium: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.PREMIUM - default: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.SUBSCRIPTION - } - } - - private mapDeliveryComposition(deliveryComposition: ComscoreDeliveryComposition) { - switch(deliveryComposition){ - case ComscoreDeliveryComposition.clean: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition.CLEAN - case ComscoreDeliveryComposition.embed: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition.EMBED - default: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition.EMBED - } - } - private mapDeliveryAdvertisementCapability(deliveryAdvertisementCapability: ComscoreDeliveryAdvertisementCapability) { - switch(deliveryAdvertisementCapability){ - case ComscoreDeliveryAdvertisementCapability.none: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.NONE - case ComscoreDeliveryAdvertisementCapability.dynamicLoad: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.DYNAMIC_LOAD - case ComscoreDeliveryAdvertisementCapability.dynamicReplacement: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.DYNAMIC_REPLACEMENT - case ComscoreDeliveryAdvertisementCapability.linear1day: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_1DAY - case ComscoreDeliveryAdvertisementCapability.linear2day: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_2DAY - case ComscoreDeliveryAdvertisementCapability.linear3day: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_3DAY - case ComscoreDeliveryAdvertisementCapability.linear4day: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_4DAY - case ComscoreDeliveryAdvertisementCapability.linear5day: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_5DAY - case ComscoreDeliveryAdvertisementCapability.linear6day: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_6DAY - case ComscoreDeliveryAdvertisementCapability.linear7day: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_7DAY - default: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.NONE - } - } - private mapMediaFormat(mediaFormat: ComscoreMediaFormat) { - switch(mediaFormat){ - case ComscoreMediaFormat.fullContentEpisode: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_EPISODE - case ComscoreMediaFormat.fullContentMovie: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_MOVIE - case ComscoreMediaFormat.fullContentPodcast: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_GENERIC - case ComscoreMediaFormat.fullContentGeneric: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_GENERIC - case ComscoreMediaFormat.partialContentEpisode: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_EPISODE - case ComscoreMediaFormat.partialContentMovie: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_MOVIE - case ComscoreMediaFormat.partialContentPodcast: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_GENERIC - case ComscoreMediaFormat.partialContentGeneric: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_GENERIC - case ComscoreMediaFormat.previewEpisode: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PREVIEW_EPISODE - case ComscoreMediaFormat.previewMovie: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PREVIEW_MOVIE - case ComscoreMediaFormat.previewGeneric: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PREVIEW_GENERIC - case ComscoreMediaFormat.extraEpisode: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.EXTRA_EPISODE - case ComscoreMediaFormat.extraMovie: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.EXTRA_MOVIE - case ComscoreMediaFormat.extraGeneric: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.EXTRA_GENERIC - default: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_GENERIC - } - } - private mapDistributionModel(distributionModel: ComscoreDistributionModel) { - switch(distributionModel) { - case ComscoreDistributionModel.tvAndOnline: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel.TV_AND_ONLINE - case ComscoreDistributionModel.exclusivelyOnline: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel.EXCLUSIVELY_ONLINE - default: - return this.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel.EXCLUSIVELY_ONLINE - } - } - } \ No newline at end of file From 08879f342a2987be2881c2fea8e03a32f605a2da Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Wed, 20 Mar 2024 10:58:51 +0100 Subject: [PATCH 15/68] add logging for metadata setting --- comscore/src/comscore/ComScore.d.ts | 7 ++++++- comscore/src/integration/ComscoreTHEOIntegration.ts | 8 ++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/comscore/src/comscore/ComScore.d.ts b/comscore/src/comscore/ComScore.d.ts index 87c4b304..75e23001 100644 --- a/comscore/src/comscore/ComScore.d.ts +++ b/comscore/src/comscore/ComScore.d.ts @@ -95,6 +95,9 @@ declare namespace ns_ { setTitle(title: string): void; setUniqueId(id: string): void; setVideoDimensions(width: number, height: number): void; + + getMetadataLabels(): any; + constructor(); } @@ -213,6 +216,8 @@ declare namespace ns_ { setTotalSegments(total: number): void; setUniqueId(id: string): void; setVideoDimensions(width: number, height: number): void; + + getMetadataLabels(): any; constructor(); @@ -243,7 +248,7 @@ declare namespace ns_ { } } function setMediaPlayerName(name: string): void; - + function setMediaPlayerVersion(version: string): void; function notifyHiddenEvent(): void; diff --git a/comscore/src/integration/ComscoreTHEOIntegration.ts b/comscore/src/integration/ComscoreTHEOIntegration.ts index 59db2795..5a182d1d 100644 --- a/comscore/src/integration/ComscoreTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreTHEOIntegration.ts @@ -83,6 +83,9 @@ export class ComscoreTHEOIntegration { private setContentMetadata(): void { let contentMetadata = buildContentMetadata(this.metadata) this.contentMetadata = contentMetadata + if (DEBUG_LOGS_ENABLED) { + console.log(`[COMSCORE] setMetadata (content)`, contentMetadata.getMetadataLabels()) + } this.streamingAnalytics.setMetadata(contentMetadata) } @@ -105,6 +108,11 @@ export class ComscoreTHEOIntegration { // adMetadata.addCustomLabels() + if (DEBUG_LOGS_ENABLED) { + console.log(`[COMSCORE] setMetadata (advertisement)`, adMetadata.getMetadataLabels()) + } + this.streamingAnalytics.setMetadata(adMetadata) + } From 839716ee16d14927603b345771638600afe9111b Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Wed, 20 Mar 2024 11:11:33 +0100 Subject: [PATCH 16/68] add and clarify use of instance variables --- comscore/src/integration/ComscoreTHEOIntegration.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/comscore/src/integration/ComscoreTHEOIntegration.ts b/comscore/src/integration/ComscoreTHEOIntegration.ts index 5a182d1d..5b3afdb7 100644 --- a/comscore/src/integration/ComscoreTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreTHEOIntegration.ts @@ -19,12 +19,20 @@ export class ComscoreTHEOIntegration { private configuration: ComscoreConfiguration; private metadata: ComscoreMetadata; + // Playback state managed by the integration private state: ComscoreState = ComscoreState.INITIALIZED + // Comscore library handles private analytics = ns_.analytics; private streamingAnalytics = new this.analytics.StreamingAnalytics(); - private contentMetadata: ns_.analytics.StreamingAnalytics.ContentMetadata; + // Copy of main content's ContentMetadata + private contentMetadata: ns_.analytics.StreamingAnalytics.ContentMetadata | null; + + // Advertisement related fields for use outside of ad event handlers + private currentAdId: string | undefined = undefined + private currentAdDuration: number | undefined = undefined + private currentAdBreakOffset: number | undefined = undefined constructor(player: ChromelessPlayer, configuration: ComscoreConfiguration, metadata: ComscoreMetadata) { this.player = player From a678d24541cb8e35662cf4a208d12bb2dea9fbe9 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Wed, 20 Mar 2024 11:11:55 +0100 Subject: [PATCH 17/68] add comment --- comscore/src/integration/ComscoreTHEOIntegration.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/comscore/src/integration/ComscoreTHEOIntegration.ts b/comscore/src/integration/ComscoreTHEOIntegration.ts index 5b3afdb7..c68fcb55 100644 --- a/comscore/src/integration/ComscoreTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreTHEOIntegration.ts @@ -15,6 +15,7 @@ enum ComscoreState { } export class ComscoreTHEOIntegration { + // References for constructor arguments private player: ChromelessPlayer; private configuration: ComscoreConfiguration; private metadata: ComscoreMetadata; From edabe7d042e4d25802bd09e16898febb312679f6 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Wed, 20 Mar 2024 11:12:46 +0100 Subject: [PATCH 18/68] set and unset some fields used to build metadata objects --- comscore/src/integration/ComscoreTHEOIntegration.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/comscore/src/integration/ComscoreTHEOIntegration.ts b/comscore/src/integration/ComscoreTHEOIntegration.ts index c68fcb55..7ca1b9c6 100644 --- a/comscore/src/integration/ComscoreTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreTHEOIntegration.ts @@ -46,7 +46,7 @@ export class ComscoreTHEOIntegration { public update(metadata: ComscoreMetadata) { this.metadata = metadata; - // this.contentMetadata = null + this.contentMetadata = null } public destroy() { @@ -163,10 +163,17 @@ export class ComscoreTHEOIntegration { private onAdBegin(event: AdEvent<"adbegin">) { console.log(`[COMSCORE] ${event.type} event`) + const { ad } = event + this.currentAdBreakOffset = ad.adBreak.timeOffset + this.currentAdId = ad.id + this.currentAdDuration = ad.duration } private onAdBreakEnd(event: AdBreakEvent<"adbreakend">) { console.log(`[COMSCORE] ${event.type} event`) + this.currentAdBreakOffset = undefined + this.currentAdId = undefined + this.currentAdDuration = undefined } private onTimeUpdate(event: TimeUpdateEvent) { From 82d9205bdf5a45f9b112868c0fabdfefefa9d10d Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Wed, 20 Mar 2024 11:15:33 +0100 Subject: [PATCH 19/68] set relevant admetadata fields --- comscore/src/integration/ComscoreTHEOIntegration.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/comscore/src/integration/ComscoreTHEOIntegration.ts b/comscore/src/integration/ComscoreTHEOIntegration.ts index 7ca1b9c6..9bdf21d7 100644 --- a/comscore/src/integration/ComscoreTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreTHEOIntegration.ts @@ -110,13 +110,11 @@ export class ComscoreTHEOIntegration { } else { adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.ON_DEMAND_MID_ROLL) } + adMetadata.setUniqueId(adId) adMetadata.setLength(adDuration) if (!this.contentMetadata) buildContentMetadata(this.metadata) adMetadata.setRelatedContentMetadata(this.contentMetadata) - - // adMetadata.addCustomLabels() - if (DEBUG_LOGS_ENABLED) { console.log(`[COMSCORE] setMetadata (advertisement)`, adMetadata.getMetadataLabels()) } From fef9931973756d9ea8b6d991c51ddf9e50093306 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Wed, 20 Mar 2024 11:48:42 +0100 Subject: [PATCH 20/68] set ad metadata on ad begin --- comscore/src/api/ComscoreConfiguration.ts | 3 +++ .../src/integration/ComscoreTHEOIntegration.ts | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/comscore/src/api/ComscoreConfiguration.ts b/comscore/src/api/ComscoreConfiguration.ts index f02d2adc..051c6501 100644 --- a/comscore/src/api/ComscoreConfiguration.ts +++ b/comscore/src/api/ComscoreConfiguration.ts @@ -1,3 +1,5 @@ +import { Ad } from "theoplayer"; + export enum ComscoreUserConsent { denied = "0", granted = "1", @@ -21,6 +23,7 @@ export interface ComscoreConfiguration { * Defaults to foregroundOnly if none is specified. If your app has some background experience, use foregroundAndBackground. */ usagePropertiesAutoUpdateMode?: ComscoreUsagePropertiesAutoUpdateMode; + adIdProcessor?: (ad: Ad) => string; debug?: boolean; } diff --git a/comscore/src/integration/ComscoreTHEOIntegration.ts b/comscore/src/integration/ComscoreTHEOIntegration.ts index 9bdf21d7..2ff5d29a 100644 --- a/comscore/src/integration/ComscoreTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreTHEOIntegration.ts @@ -22,6 +22,8 @@ export class ComscoreTHEOIntegration { // Playback state managed by the integration private state: ComscoreState = ComscoreState.INITIALIZED + private buffering: boolean = false + private ended: boolean = false // Comscore library handles private analytics = ns_.analytics; @@ -162,9 +164,20 @@ export class ComscoreTHEOIntegration { private onAdBegin(event: AdEvent<"adbegin">) { console.log(`[COMSCORE] ${event.type} event`) const { ad } = event + const { adIdProcessor } = this.configuration + this.currentAdBreakOffset = ad.adBreak.timeOffset - this.currentAdId = ad.id + this.currentAdId = adIdProcessor ? adIdProcessor(ad) : ad.id this.currentAdDuration = ad.duration + if (!this.currentAdDuration && DEBUG_LOGS_ENABLED) { + console.log("[COMSCORE] AD_BEGIN event with an ad duration of 0 found. Please check the ad configuration") + } + if (!this.currentAdId && DEBUG_LOGS_ENABLED) { + console.log("[COMSCORE] AD_BEGIN event with an empty ad id found. Please check the ad configuration") + } + this.setAdMetadata(this.currentAdDuration ?? 0, this.currentAdBreakOffset, this.currentAdId ?? "") + + } private onAdBreakEnd(event: AdBreakEvent<"adbreakend">) { From e5652236419c8e7bded767e792ad973b01007bed Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Thu, 21 Mar 2024 12:30:02 +0100 Subject: [PATCH 21/68] finish streamingAnalytics part --- .../integration/ComscoreTHEOIntegration.ts | 263 +++++++++++++++--- 1 file changed, 218 insertions(+), 45 deletions(-) diff --git a/comscore/src/integration/ComscoreTHEOIntegration.ts b/comscore/src/integration/ComscoreTHEOIntegration.ts index 2ff5d29a..f3c7c45e 100644 --- a/comscore/src/integration/ComscoreTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreTHEOIntegration.ts @@ -1,17 +1,17 @@ -import { AdBreakEvent, AdEvent, ChromelessPlayer, EndedEvent, LoadedDataEvent, LoadedMetadataEvent, PauseEvent, PlayingEvent, RateChangeEvent, SeekingEvent, SourceChangeEvent, TimeUpdateEvent, WaitingEvent, version } from "theoplayer"; +import { AdBreakEvent, AdEvent, ChromelessPlayer, EndedEvent, LoadedMetadataEvent, PauseEvent, PlayEvent, PlayingEvent, RateChangeEvent, SeekedEvent, SeekingEvent, SourceChangeEvent, WaitingEvent, ErrorEvent, version } from "theoplayer"; import { ComscoreConfiguration } from "../api/ComscoreConfiguration"; -import { ComscoreDeliveryAdvertisementCapability, ComscoreDeliveryComposition, ComscoreDeliveryMode, ComscoreDeliverySubscriptionType, ComscoreDistributionModel, ComscoreFeedType, ComscoreMediaFormat, ComscoreMediaType, ComscoreMetadata } from "../api/ComscoreMetadata"; +import { ComscoreMetadata } from "../api/ComscoreMetadata"; import { buildContentMetadata } from "./ComscoreContentMetadata"; const DEBUG_LOGS_ENABLED = true enum ComscoreState { - INITIALIZED, - ADVERTISEMENT, - ADVERTISEMENT_PAUSED, - VIDEO, - VIDEO_PAUSED, - STOPPED + INITIALIZED = "INITIALIZED", + ADVERTISEMENT = "ADVERTISEMENT", + ADVERTISEMENT_PAUSED = "ADVERTISEMENT_PAUSED", + VIDEO = "VIDEO", + VIDEO_PAUSED = "VIDEO_PAUSED", + STOPPED = "STOPPED" } export class ComscoreTHEOIntegration { @@ -33,9 +33,10 @@ export class ComscoreTHEOIntegration { private contentMetadata: ns_.analytics.StreamingAnalytics.ContentMetadata | null; // Advertisement related fields for use outside of ad event handlers - private currentAdId: string | undefined = undefined - private currentAdDuration: number | undefined = undefined - private currentAdBreakOffset: number | undefined = undefined + private inAd: boolean = false + private lastAdId: string | undefined = undefined + private lastAdDuration: number | undefined = undefined + private lastAdBreakOffset: number | undefined = undefined constructor(player: ChromelessPlayer, configuration: ComscoreConfiguration, metadata: ComscoreMetadata) { this.player = player @@ -44,8 +45,12 @@ export class ComscoreTHEOIntegration { this.analytics.setMediaPlayerName("THEOplayer") this.analytics.setMediaPlayerVersion(version) + + this.addListeners() } + + // PUBLIC methods public update(metadata: ComscoreMetadata) { this.metadata = metadata; this.contentMetadata = null @@ -57,13 +62,14 @@ export class ComscoreTHEOIntegration { private addListeners(): void { this.player.addEventListener("sourcechange", this.onSourceChange); + this.player.addEventListener("play", this.onPlay); this.player.addEventListener("ended", this.onEnded); - this.player.addEventListener("loadeddata", this.onLoadedData); + this.player.addEventListener("error", this.onError); this.player.addEventListener("loadedmetadata", this.onLoadedMetadata); this.player.addEventListener("playing", this.onPlaying); this.player.addEventListener("seeking", this.onSeeking); + this.player.addEventListener("seeked", this.onSeeked); this.player.addEventListener("pause", this.onPause); - this.player.addEventListener("timeupdate", this.onTimeUpdate); this.player.addEventListener("ratechange", this.onRateChange); this.player.addEventListener("waiting", this.onWaiting); @@ -75,13 +81,14 @@ export class ComscoreTHEOIntegration { private removeListeners(): void { this.player.removeEventListener("sourcechange", this.onSourceChange); + this.player.removeEventListener("play", this.onPlay); this.player.removeEventListener("ended", this.onEnded); - this.player.removeEventListener("loadeddata", this.onLoadedData); + this.player.removeEventListener("error", this.onError); this.player.removeEventListener("loadedmetadata", this.onLoadedMetadata); this.player.removeEventListener("playing", this.onPlaying); this.player.removeEventListener("seeking", this.onSeeking); + this.player.removeEventListener("seeked", this.onSeeked); this.player.removeEventListener("pause", this.onPause); - this.player.removeEventListener("timeupdate", this.onTimeUpdate); this.player.removeEventListener("ratechange", this.onRateChange); this.player.removeEventListener("waiting", this.onWaiting); @@ -125,78 +132,244 @@ export class ComscoreTHEOIntegration { } + // STATE TRANSITIONS + private transitionToVideo(): void { + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Trying to transition to VIDEO while in ${this.state}`); + switch(this.state) { + case ComscoreState.INITIALIZED: + this.state = ComscoreState.VIDEO + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] State change ${this.state} -> VIDEO`); + this.setContentMetadata() + this.streamingAnalytics.notifyPlay() + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyPlay`); + break; + case ComscoreState.ADVERTISEMENT: + case ComscoreState.ADVERTISEMENT_PAUSED: + case ComscoreState.STOPPED: + this.transitionToStopped(); + this.state = ComscoreState.VIDEO + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] State change ${this.state} -> VIDEO`); + this.setContentMetadata() + this.streamingAnalytics.notifyPlay() + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyPlay`); + break; + case ComscoreState.VIDEO_PAUSED: + this.state = ComscoreState.VIDEO + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] State change ${this.state} -> VIDEO`); + this.streamingAnalytics.notifyPlay() + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyPlay`); + break; + case ComscoreState.VIDEO: + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Ignoring transition from ${this.state} -> VIDEO`); + break; + } + } + + private transitionToAdvertisement(): void { + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Trying to transition to ADVERTISEMENT while in ${this.state}`); + switch(this.state) { + case ComscoreState.ADVERTISEMENT_PAUSED: + case ComscoreState.INITIALIZED: + this.state = ComscoreState.ADVERTISEMENT + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] State change ${this.state} -> ADVERTISEMENT`); + this.streamingAnalytics.notifyPlay() + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyPlay`); + break; + case ComscoreState.VIDEO: + case ComscoreState.VIDEO_PAUSED: + case ComscoreState.STOPPED: + this.transitionToStopped(); + this.state = ComscoreState.ADVERTISEMENT + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] State change ${this.state} -> ADVERTISEMENT`); + this.streamingAnalytics.notifyPlay() + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyPlay`); + break; + case ComscoreState.ADVERTISEMENT: + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Ignoring transition from ${this.state} -> ADVERTISEMENT`); + break; + } + + } + + private transitionToPaused(): void { + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Trying to transition to XXXXX_PAUSED while in ${this.state}`); + switch(this.state) { + case ComscoreState.VIDEO: + this.state = ComscoreState.VIDEO_PAUSED + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] State change ${this.state} -> VIDEO_PAUSED`); + this.streamingAnalytics.notifyPause() + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyPause`); + break; + case ComscoreState.ADVERTISEMENT: + this.state = ComscoreState.ADVERTISEMENT_PAUSED + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] State change ${this.state} -> ADVERTISEMENT_PAUSED`); + this.streamingAnalytics.notifyPause() + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyPause`); + break; + default: + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Ignoring transition from ${this.state} -> XXXXX_PAUSED`); + } + + } + + private transitionToStopped(): void { + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Trying to transition to STOPPED while in ${this.state}`); + switch (this.state) { + case ComscoreState.STOPPED: + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Ignoring transition from ${this.state} -> STOPPED`); + break; + default: + this.state = ComscoreState.STOPPED; + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] State change ${this.state} -> STOPPED`); + this.streamingAnalytics.notifyEnd() + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyEnd`); + } + } + + // EVENT HANDLERS private onSourceChange(event: SourceChangeEvent) { - console.log(`[COMSCORE] ${event.type} event`); + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`); this.state = ComscoreState.INITIALIZED; - // this.contentMetadata = null; - if (DEBUG_LOGS_ENABLED) { - console.log(`[COMSCORE] createPlaybackSession`); - } + this.contentMetadata = null; this.streamingAnalytics.createPlaybackSession(); - + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] createPlaybackSession`); } + private onPlay(event: PlayEvent) { + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + if (this.ended) { + this.ended = false + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] play event after the stream ended`) + this.streamingAnalytics.createPlaybackSession() + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] createPlaybackSession`); + } + } + private onPlaying(event: PlayingEvent) { - console.log(`[COMSCORE] ${event.type} event`) + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + if (this.buffering) { + this.buffering = false + this.streamingAnalytics.notifyBufferStop() + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyBufferStop`) + this.streamingAnalytics.notifyPlay() + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyPlay`) + } + + if (this.inAd) { + this.transitionToAdvertisement() + } else if (this.lastAdBreakOffset && this.lastAdBreakOffset < 0) { + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Ignore playing event after post-roll`) + } else { + this.transitionToVideo() + } } private onEnded(event: EndedEvent) { - console.log(`[COMSCORE] ${event.type} event`) + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + this.transitionToStopped() + this.ended = true } - private onLoadedData(event: LoadedDataEvent) { - console.log(`[COMSCORE] ${event.type} event`) + private onError(event: ErrorEvent) { + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + this.transitionToStopped() } private onLoadedMetadata(event: LoadedMetadataEvent) { - console.log(`[COMSCORE] ${event.type} event`) + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + if (this.metadata.length == 0 && !this.inAd) { + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] LIVE stream detected`) + try { + const { seekable } = this.player + if (seekable.length) { + const dvrWindowEnd = seekable.end(seekable.length - 1) + const dvrWindowStart = seekable.start(0) + const dvrWindowLengthInSeconds = dvrWindowEnd - dvrWindowStart + if (dvrWindowLengthInSeconds) { + this.streamingAnalytics.setDvrWindowLength(dvrWindowLengthInSeconds * 1000) + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] setDvrWindowLength`) + } else { + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] DVR window length was not > 0`) + } + } + } catch (error) { + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] There was a problem inspecting the seekable ranges on the loadedmetadata event`) + } + } } private onSeeking(event: SeekingEvent) { - console.log(`[COMSCORE] ${event.type} event`) + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + this.streamingAnalytics.notifySeekStart() + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifySeekStart`) + } + + private onSeeked(event: SeekedEvent) { + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + const { currentTime } = event + + if (this.player.duration == Infinity) { + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] seeked in a LIVE stream`) + const { seekable } = this.player + if (!seekable.length) { + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] no seekable ranges found when determining DVR window offset`) + return + } + const dvrWindowEnd = seekable.end(seekable.length - 1) + const dvrWindowOffsetInSeconds = dvrWindowEnd - currentTime + this.streamingAnalytics.startFromDvrWindowOffset(dvrWindowOffsetInSeconds * 1000) + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] startFromDvrWindowOffset`) + } else { + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] seeked in a VOD stream`) + this.streamingAnalytics.startFromPosition(currentTime * 1000) + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] startFromPosition`) + } } private onPause(event: PauseEvent) { - console.log(`[COMSCORE] ${event.type} event`) + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + this.transitionToPaused() } private onAdBegin(event: AdEvent<"adbegin">) { - console.log(`[COMSCORE] ${event.type} event`) + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) const { ad } = event const { adIdProcessor } = this.configuration - this.currentAdBreakOffset = ad.adBreak.timeOffset - this.currentAdId = adIdProcessor ? adIdProcessor(ad) : ad.id - this.currentAdDuration = ad.duration - if (!this.currentAdDuration && DEBUG_LOGS_ENABLED) { + this.inAd = true + this.lastAdBreakOffset = ad.adBreak.timeOffset + this.lastAdId = adIdProcessor ? adIdProcessor(ad) : ad.id + this.lastAdDuration = ad.duration + if (!this.lastAdDuration && DEBUG_LOGS_ENABLED) { console.log("[COMSCORE] AD_BEGIN event with an ad duration of 0 found. Please check the ad configuration") } - if (!this.currentAdId && DEBUG_LOGS_ENABLED) { + if (!this.lastAdId && DEBUG_LOGS_ENABLED) { console.log("[COMSCORE] AD_BEGIN event with an empty ad id found. Please check the ad configuration") } - this.setAdMetadata(this.currentAdDuration ?? 0, this.currentAdBreakOffset, this.currentAdId ?? "") + this.setAdMetadata(this.lastAdDuration ?? 0, this.lastAdBreakOffset, this.lastAdId ?? "") } private onAdBreakEnd(event: AdBreakEvent<"adbreakend">) { - console.log(`[COMSCORE] ${event.type} event`) - this.currentAdBreakOffset = undefined - this.currentAdId = undefined - this.currentAdDuration = undefined - } - - private onTimeUpdate(event: TimeUpdateEvent) { - console.log(`[COMSCORE] ${event.type} event`) + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + this.inAd = false } private onRateChange(event: RateChangeEvent) { - console.log(`[COMSCORE] ${event.type} event`) + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + this.streamingAnalytics.notifyChangePlaybackRate(event.playbackRate) + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyChangePlaybackRate`) } private onWaiting(event: WaitingEvent) { - console.log(`[COMSCORE] ${event.type} event`) + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + if ((this.state == ComscoreState.ADVERTISEMENT && this.inAd) || (this.state == ComscoreState.VIDEO && !this.inAd)) { + this.buffering = true + this.streamingAnalytics.notifyBufferStart() + if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyBufferStart`) + } } From fb019a2cdb9218d223374bce36c7ea06f33700f4 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Thu, 21 Mar 2024 17:45:24 +0100 Subject: [PATCH 22/68] finish first version --- comscore/src/api/ComscoreConfiguration.ts | 3 +- comscore/src/api/ComscoreConnector.ts | 76 ++++++++++++++++--- ...scoreStreamingAnalyticsTHEOIntegration.ts} | 2 +- 3 files changed, 69 insertions(+), 12 deletions(-) rename comscore/src/integration/{ComscoreTHEOIntegration.ts => ComscoreStreamingAnalyticsTHEOIntegration.ts} (99%) diff --git a/comscore/src/api/ComscoreConfiguration.ts b/comscore/src/api/ComscoreConfiguration.ts index 051c6501..4c815cfe 100644 --- a/comscore/src/api/ComscoreConfiguration.ts +++ b/comscore/src/api/ComscoreConfiguration.ts @@ -3,7 +3,7 @@ import { Ad } from "theoplayer"; export enum ComscoreUserConsent { denied = "0", granted = "1", - unknown = "-1" + unknown = "" } export enum ComscoreUsagePropertiesAutoUpdateMode { @@ -23,6 +23,7 @@ export interface ComscoreConfiguration { * Defaults to foregroundOnly if none is specified. If your app has some background experience, use foregroundAndBackground. */ usagePropertiesAutoUpdateMode?: ComscoreUsagePropertiesAutoUpdateMode; + skeleton?: ns_.analytics.PlatformAPIs; adIdProcessor?: (ad: Ad) => string; debug?: boolean; } diff --git a/comscore/src/api/ComscoreConnector.ts b/comscore/src/api/ComscoreConnector.ts index 0ee2e187..b5e0eb29 100644 --- a/comscore/src/api/ComscoreConnector.ts +++ b/comscore/src/api/ComscoreConnector.ts @@ -1,14 +1,54 @@ import { ChromelessPlayer } from 'theoplayer'; -import type { ComscoreConfiguration } from './ComscoreConfiguration'; +import type { ComscoreConfiguration, ComscoreUserConsent } from './ComscoreConfiguration'; import type { ComscoreMetadata } from './ComscoreMetadata'; -import { ComscoreTHEOIntegration } from '../integration/ComscoreTHEOIntegration'; +import { ComscoreStreamingAnalyticsTHEOIntegration } from '../integration/ComscoreStreamingAnalyticsTHEOIntegration'; + +const USER_CONSENT_LABEL = "cs_ucfr" export class ComscoreConnector { - private integration: ComscoreTHEOIntegration + private analytics = ns_.analytics + private configuration: ComscoreConfiguration + private streamingAnalyticsIntegration: ComscoreStreamingAnalyticsTHEOIntegration + /** + * Constructor for the THEOplayer Comscore connector + * @param player a THEOplayer instance reference + * @param comscoreConfig configuration object that should at least hold the publisher id, application name and an initial user consent value + * @param comscoreMetadata metadata associated with the SourceDescription that is or will be passed to the THEOplayer instance + * @returns + */ constructor(player: ChromelessPlayer, comscoreConfig: ComscoreConfiguration, comscoreMetadata: ComscoreMetadata) { - this.integration = new ComscoreTHEOIntegration(player, comscoreConfig, comscoreMetadata); + if (typeof ns_ === 'undefined' || typeof this.analytics === 'undefined') { + console.error('[COMSCORE] ComScore script missing, cannot init ComScoreAnalytics'); + return; + } + + this.configuration = comscoreConfig + + // Set platform API + if (this.configuration.skeleton) { + this.analytics.PlatformApi.setPlatformAPI(this.analytics.PlatformAPIs.Skeleton, this.configuration.skeleton) + } else { + this.analytics.PlatformApi.setPlatformAPI(this.analytics.PlatformAPIs.html5) + } + + // Configure publisher + let publisherConfiguration = new this.analytics.configuration.PublisherConfiguration({ + publisherId: comscoreConfig.publisherId, + persistentLabels: { + USER_CONSENT_LABEL: comscoreConfig.userConsent || "" + } + }) + this.analytics.configuration.addClient(publisherConfiguration) + this.analytics.configuration.setApplicationName(comscoreConfig.applicationName) + + + // Start application tracking + this.analytics.start() + + // Set Streaming Analytics integration + this.streamingAnalyticsIntegration = new ComscoreStreamingAnalyticsTHEOIntegration(player, comscoreConfig, comscoreMetadata); } /** @@ -16,28 +56,44 @@ export class ComscoreConnector { * @param metadata object of key value pairs */ update(metadata: ComscoreMetadata): void { - this.integration.update(metadata); + this.streamingAnalyticsIntegration.update(metadata); } /** - * Set a persistent label on the ComScore PublisherConfiguration + * Update the user consent + * @param consentValue `"1"` indicates consent was granted, `"0"` not granted and `""` unknown. */ - setPersistentLabel(label: string, value: string): void { - // this.integration.setPersistentLabel(label, value); + updateUserConsent(consentValue: ComscoreUserConsent): void { + this.analytics.configuration + .getPublisherConfiguration(this.configuration.publisherId) + .setPersistentLabel(USER_CONSENT_LABEL, consentValue); + this.analytics.notifyHiddenEvent() } + /** + * Set persistent labels on the ComScore PublisherConfiguration + * @param labels object of key value pairs + */ + setPersistentLabel(label: string, value: string): void { + this.analytics.configuration + .getPublisherConfiguration(this.configuration.publisherId) + .setPersistentLabel(label,value); + } + /** * Set persistent labels on the ComScore PublisherConfiguration * @param labels object of key value pairs */ setPersistentLabels(labels: { [key: string]: string }): void { - // this.integration.setPersistentLabels(labels); + this.analytics.configuration + .getPublisherConfiguration(this.configuration.publisherId) + .setPersistentLabels(labels); } /** * Destroy ComScoreStreamingAnalytics and unregister it from player */ destroy(): void { - this.integration.destroy(); + this.streamingAnalyticsIntegration.destroy(); } } \ No newline at end of file diff --git a/comscore/src/integration/ComscoreTHEOIntegration.ts b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts similarity index 99% rename from comscore/src/integration/ComscoreTHEOIntegration.ts rename to comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts index f3c7c45e..17629132 100644 --- a/comscore/src/integration/ComscoreTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts @@ -14,7 +14,7 @@ enum ComscoreState { STOPPED = "STOPPED" } -export class ComscoreTHEOIntegration { +export class ComscoreStreamingAnalyticsTHEOIntegration { // References for constructor arguments private player: ChromelessPlayer; private configuration: ComscoreConfiguration; From 2bf2e0223135151e302c6a007c9318206a50658b Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Fri, 22 Mar 2024 14:53:40 +0100 Subject: [PATCH 23/68] prepare build tooling --- comscore/package.json | 4 ++++ comscore/rollup.config.mjs | 15 +++++++++++++++ comscore/tsconfig.json | 15 +++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 comscore/rollup.config.mjs create mode 100644 comscore/tsconfig.json diff --git a/comscore/package.json b/comscore/package.json index 78109aa4..ca5a6f12 100644 --- a/comscore/package.json +++ b/comscore/package.json @@ -4,6 +4,10 @@ "description": "A connector implementing Comscore with THEOplayer", "main": "index.js", "scripts": { + "clean": "rm -rf dist", + "bundle": "rollup -c rollup.config.mjs", + "build": "npm run clean && npm run bundle", + "serve": "http-server . -o /test/pages/main.html", "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { diff --git a/comscore/rollup.config.mjs b/comscore/rollup.config.mjs new file mode 100644 index 00000000..796dd0ef --- /dev/null +++ b/comscore/rollup.config.mjs @@ -0,0 +1,15 @@ +import fs from "node:fs"; +import {getSharedBuildConfiguration} from "../tools/build.mjs"; + + +const {version} = JSON.parse(fs.readFileSync("./package.json", "utf8")); + +const fileName = "comscore-connector"; +const globalName = "THEOplayerComscoreConnector"; + +const banner = ` +/** + * Comscore Web Connector v${version} + */`.trim(); + +export default getSharedBuildConfiguration(fileName, globalName, banner); diff --git a/comscore/tsconfig.json b/comscore/tsconfig.json new file mode 100644 index 00000000..836b4254 --- /dev/null +++ b/comscore/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "target": "es5", + "module": "commonjs", + "strict": true, + "baseUrl": "./", + "rootDir": ".", + "paths": { "THEOplayer": ["./src/THEOplayer"] }, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "strictPropertyInitialization": false, + + } +} From 648b85e600116468913c39ee7799c6d35772d633 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Fri, 22 Mar 2024 14:53:55 +0100 Subject: [PATCH 24/68] add comscore sdk documentation --- ...ript-Implementation_Guide-International.pdf | Bin 0 -> 220063 bytes ..._API-Implementation_Guide-International.pdf | Bin 0 -> 192597 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 comscore/docs/Comscore_Library-JavaScript-Implementation_Guide-International.pdf create mode 100644 comscore/docs/Comscore_Library-JavaScript-Skeleton_Platform_API-Implementation_Guide-International.pdf diff --git a/comscore/docs/Comscore_Library-JavaScript-Implementation_Guide-International.pdf b/comscore/docs/Comscore_Library-JavaScript-Implementation_Guide-International.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1cd7d192c6c8e67dd9ab1dceb9463cbd65fceee0 GIT binary patch literal 220063 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 Pe7pZI>m184Z(08@t8QAq literal 0 HcmV?d00001 diff --git a/comscore/docs/Comscore_Library-JavaScript-Skeleton_Platform_API-Implementation_Guide-International.pdf b/comscore/docs/Comscore_Library-JavaScript-Skeleton_Platform_API-Implementation_Guide-International.pdf new file mode 100644 index 0000000000000000000000000000000000000000..61387646e703ffd3f44bcf3ba6dbd3046878a0d4 GIT binary patch literal 192597 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

%cafpQ9bCaR<0;Z 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

km9hMz@FqG{&2EZJ5?%A#lBrv&e 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

{K33((-mv3JGq+t7l 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 Bf~)`l literal 0 HcmV?d00001 From 4b97381c5d0b46b1862c9c68c479424729b10756 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Fri, 22 Mar 2024 14:55:39 +0100 Subject: [PATCH 25/68] fix calling set media player name and version from wrong interface --- .../integration/ComscoreStreamingAnalyticsTHEOIntegration.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts index 17629132..7380f2fb 100644 --- a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts @@ -43,8 +43,8 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { this.configuration = configuration this.metadata = metadata - this.analytics.setMediaPlayerName("THEOplayer") - this.analytics.setMediaPlayerVersion(version) + this.streamingAnalytics.setMediaPlayerName("THEOplayer") + this.streamingAnalytics.setMediaPlayerVersion(version) this.addListeners() } From bad865d1327f480f4048b136b02c7087722d7a1a Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Fri, 22 Mar 2024 14:56:12 +0100 Subject: [PATCH 26/68] use any for Skeleton for now --- comscore/src/api/ComscoreConfiguration.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/comscore/src/api/ComscoreConfiguration.ts b/comscore/src/api/ComscoreConfiguration.ts index 4c815cfe..9d06e5a6 100644 --- a/comscore/src/api/ComscoreConfiguration.ts +++ b/comscore/src/api/ComscoreConfiguration.ts @@ -23,7 +23,7 @@ export interface ComscoreConfiguration { * Defaults to foregroundOnly if none is specified. If your app has some background experience, use foregroundAndBackground. */ usagePropertiesAutoUpdateMode?: ComscoreUsagePropertiesAutoUpdateMode; - skeleton?: ns_.analytics.PlatformAPIs; + skeleton?: any; adIdProcessor?: (ad: Ad) => string; debug?: boolean; } From 9936aa63251fa846d8b948eabfc865d30e5b2650 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Fri, 22 Mar 2024 14:57:18 +0100 Subject: [PATCH 27/68] use variable content io name --- comscore/src/api/ComscoreConnector.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/comscore/src/api/ComscoreConnector.ts b/comscore/src/api/ComscoreConnector.ts index b5e0eb29..ec2d28fc 100644 --- a/comscore/src/api/ComscoreConnector.ts +++ b/comscore/src/api/ComscoreConnector.ts @@ -37,7 +37,7 @@ export class ComscoreConnector { let publisherConfiguration = new this.analytics.configuration.PublisherConfiguration({ publisherId: comscoreConfig.publisherId, persistentLabels: { - USER_CONSENT_LABEL: comscoreConfig.userConsent || "" + [USER_CONSENT_LABEL]: comscoreConfig.userConsent || "" } }) this.analytics.configuration.addClient(publisherConfiguration) From 5da98fb8971ac1fdf79aeb0b4dffabdaf6010091 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Fri, 22 Mar 2024 14:57:50 +0100 Subject: [PATCH 28/68] change to interface --- comscore/src/api/ComscoreMetadata.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/comscore/src/api/ComscoreMetadata.ts b/comscore/src/api/ComscoreMetadata.ts index 873d1783..c52e4ed7 100644 --- a/comscore/src/api/ComscoreMetadata.ts +++ b/comscore/src/api/ComscoreMetadata.ts @@ -26,8 +26,8 @@ export enum ComscoreDeliveryMode { } export enum ComscoreDeliverySubscriptionType { - traditionalMvpd = "traditionalMvpd", //LIVE - virtualMvpd = "virtualMvpd", //LIVE + traditionalMvpd = "traditionalMvpd", // LIVE + virtualMvpd = "virtualMvpd", // LIVE subscription = "subscription", transactional = "transactional", advertising = "advertising", @@ -90,7 +90,7 @@ export type ComscoreDimension = { height: number; } -export type ComscoreMetadata = { +export interface ComscoreMetadata { /** * Classification type, mandatory, setMediaType( value ) - (ns_st_li) */ From 3ea7f36f6bcb5be60a9ac9462923a248f1038d49 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Fri, 22 Mar 2024 14:58:11 +0100 Subject: [PATCH 29/68] refine logging --- ...mscoreStreamingAnalyticsTHEOIntegration.ts | 177 +++++++++--------- 1 file changed, 86 insertions(+), 91 deletions(-) diff --git a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts index 7380f2fb..02b2c83c 100644 --- a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts @@ -3,7 +3,9 @@ import { ComscoreConfiguration } from "../api/ComscoreConfiguration"; import { ComscoreMetadata } from "../api/ComscoreMetadata"; import { buildContentMetadata } from "./ComscoreContentMetadata"; -const DEBUG_LOGS_ENABLED = true +const LOG_STATE_CHANGES = true; +const LOG_THEOPLAYER_EVENTS = true +const LOG_STREAMINGANALYTICS = true enum ComscoreState { INITIALIZED = "INITIALIZED", @@ -99,22 +101,22 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { } private setContentMetadata(): void { - let contentMetadata = buildContentMetadata(this.metadata) + const contentMetadata = buildContentMetadata(this.metadata) this.contentMetadata = contentMetadata - if (DEBUG_LOGS_ENABLED) { - console.log(`[COMSCORE] setMetadata (content)`, contentMetadata.getMetadataLabels()) + if (this.configuration.debug && LOG_STREAMINGANALYTICS) { + console.log(`[COMSCORE - StreamingAnalytics] setMetadata (content)`, contentMetadata.getMetadataLabels()) } this.streamingAnalytics.setMetadata(contentMetadata) } private setAdMetadata(adDuration: number, adBreakOffset: number, adId: string): void { - let adMetadata = new this.analytics.StreamingAnalytics.AdvertisementMetadata() - if (this.player.duration == Infinity) { + const adMetadata = new this.analytics.StreamingAnalytics.AdvertisementMetadata() + if (this.player.duration === Infinity) { adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.LIVE) - } else if (adBreakOffset == 0) { + } else if (adBreakOffset === 0) { adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.ON_DEMAND_PRE_ROLL) - } else if (adBreakOffset == -1) { + } else if (adBreakOffset === -1) { adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.ON_DEMAND_POST_ROLL) } else { adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.ON_DEMAND_MID_ROLL) @@ -124,8 +126,8 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { if (!this.contentMetadata) buildContentMetadata(this.metadata) adMetadata.setRelatedContentMetadata(this.contentMetadata) - if (DEBUG_LOGS_ENABLED) { - console.log(`[COMSCORE] setMetadata (advertisement)`, adMetadata.getMetadataLabels()) + if (this.configuration.debug && LOG_STREAMINGANALYTICS) { + console.log(`[COMSCORE - StreamingAnalytics] setMetadata (advertisement)`, adMetadata.getMetadataLabels()) } this.streamingAnalytics.setMetadata(adMetadata) @@ -134,152 +136,146 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { // STATE TRANSITIONS private transitionToVideo(): void { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Trying to transition to VIDEO while in ${this.state}`); + if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] Trying to transition to VIDEO while in ${this.state}`); switch(this.state) { case ComscoreState.INITIALIZED: + if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> VIDEO`); this.state = ComscoreState.VIDEO - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] State change ${this.state} -> VIDEO`); this.setContentMetadata() - this.streamingAnalytics.notifyPlay() - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyPlay`); break; case ComscoreState.ADVERTISEMENT: case ComscoreState.ADVERTISEMENT_PAUSED: case ComscoreState.STOPPED: this.transitionToStopped(); + if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> VIDEO`); this.state = ComscoreState.VIDEO - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] State change ${this.state} -> VIDEO`); this.setContentMetadata() - this.streamingAnalytics.notifyPlay() - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyPlay`); break; case ComscoreState.VIDEO_PAUSED: + if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> VIDEO`); this.state = ComscoreState.VIDEO - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] State change ${this.state} -> VIDEO`); - this.streamingAnalytics.notifyPlay() - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyPlay`); break; case ComscoreState.VIDEO: - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Ignoring transition from ${this.state} -> VIDEO`); + if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] Ignoring transition from ${this.state} -> VIDEO`); + break; + default: break; } } private transitionToAdvertisement(): void { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Trying to transition to ADVERTISEMENT while in ${this.state}`); + if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] Trying to transition to ADVERTISEMENT while in ${this.state}`); switch(this.state) { case ComscoreState.ADVERTISEMENT_PAUSED: case ComscoreState.INITIALIZED: + if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> ADVERTISEMENT`); this.state = ComscoreState.ADVERTISEMENT - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] State change ${this.state} -> ADVERTISEMENT`); - this.streamingAnalytics.notifyPlay() - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyPlay`); break; case ComscoreState.VIDEO: case ComscoreState.VIDEO_PAUSED: case ComscoreState.STOPPED: this.transitionToStopped(); + if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> ADVERTISEMENT`); this.state = ComscoreState.ADVERTISEMENT - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] State change ${this.state} -> ADVERTISEMENT`); - this.streamingAnalytics.notifyPlay() - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyPlay`); break; case ComscoreState.ADVERTISEMENT: - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Ignoring transition from ${this.state} -> ADVERTISEMENT`); + if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] Ignoring transition from ${this.state} -> ADVERTISEMENT`); + break; + default: break; } } private transitionToPaused(): void { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Trying to transition to XXXXX_PAUSED while in ${this.state}`); + if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] Trying to transition to XXXXX_PAUSED while in ${this.state}`); switch(this.state) { case ComscoreState.VIDEO: + if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> VIDEO_PAUSED`); this.state = ComscoreState.VIDEO_PAUSED - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] State change ${this.state} -> VIDEO_PAUSED`); this.streamingAnalytics.notifyPause() - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyPause`); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyPause`); break; case ComscoreState.ADVERTISEMENT: + if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> ADVERTISEMENT_PAUSED`); this.state = ComscoreState.ADVERTISEMENT_PAUSED - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] State change ${this.state} -> ADVERTISEMENT_PAUSED`); this.streamingAnalytics.notifyPause() - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyPause`); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyPause`); break; default: - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Ignoring transition from ${this.state} -> XXXXX_PAUSED`); + if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] Ignoring transition from ${this.state} -> XXXXX_PAUSED`); } } private transitionToStopped(): void { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Trying to transition to STOPPED while in ${this.state}`); + if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] Trying to transition to STOPPED while in ${this.state}`); switch (this.state) { case ComscoreState.STOPPED: - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Ignoring transition from ${this.state} -> STOPPED`); + if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] Ignoring transition from ${this.state} -> STOPPED`); break; default: + if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> STOPPED`); this.state = ComscoreState.STOPPED; - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] State change ${this.state} -> STOPPED`); this.streamingAnalytics.notifyEnd() - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyEnd`); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyEnd`); } } // EVENT HANDLERS - private onSourceChange(event: SourceChangeEvent) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`); + private onSourceChange = (event: SourceChangeEvent) => { + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`); this.state = ComscoreState.INITIALIZED; this.contentMetadata = null; this.streamingAnalytics.createPlaybackSession(); - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] createPlaybackSession`); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] createPlaybackSession`); } - private onPlay(event: PlayEvent) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + private onPlay = (event: PlayEvent) => { + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) if (this.ended) { this.ended = false - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] play event after the stream ended`) + if (this.configuration.debug) console.log(`[COMSCORE] play event after the stream ended`) this.streamingAnalytics.createPlaybackSession() - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] createPlaybackSession`); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] createPlaybackSession`); } } - private onPlaying(event: PlayingEvent) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + private onPlaying = (event: PlayingEvent) => { + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) if (this.buffering) { this.buffering = false this.streamingAnalytics.notifyBufferStop() - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyBufferStop`) - this.streamingAnalytics.notifyPlay() - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyPlay`) + if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyBufferStop`) } if (this.inAd) { this.transitionToAdvertisement() } else if (this.lastAdBreakOffset && this.lastAdBreakOffset < 0) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] Ignore playing event after post-roll`) + if (this.configuration.debug) console.log(`[COMSCORE] Ignore playing event after post-roll`) } else { this.transitionToVideo() } + this.streamingAnalytics.notifyPlay() + if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyPlay`) } - private onEnded(event: EndedEvent) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + private onEnded = (event: EndedEvent) => { + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) this.transitionToStopped() this.ended = true } - private onError(event: ErrorEvent) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + private onError = (event: ErrorEvent) => { + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) this.transitionToStopped() } - private onLoadedMetadata(event: LoadedMetadataEvent) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) - if (this.metadata.length == 0 && !this.inAd) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] LIVE stream detected`) + private onLoadedMetadata = (event: LoadedMetadataEvent) => { + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) + if (this.metadata.length === 0 && !this.inAd) { + if (this.configuration.debug) console.log(`[COMSCORE] LIVE stream detected`) try { const { seekable } = this.player if (seekable.length) { @@ -288,52 +284,50 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { const dvrWindowLengthInSeconds = dvrWindowEnd - dvrWindowStart if (dvrWindowLengthInSeconds) { this.streamingAnalytics.setDvrWindowLength(dvrWindowLengthInSeconds * 1000) - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] setDvrWindowLength`) - } else { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] DVR window length was not > 0`) - } + if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] setDvrWindowLength ${dvrWindowLengthInSeconds * 1000}`) + } else if (this.configuration.debug) console.log(`[COMSCORE] DVR window length was not > 0`) } } catch (error) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] There was a problem inspecting the seekable ranges on the loadedmetadata event`) + if (this.configuration.debug) console.log(`[COMSCORE] There was a problem inspecting the seekable ranges on the loadedmetadata event`) } } } - private onSeeking(event: SeekingEvent) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + private onSeeking = (event: SeekingEvent) => { + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) this.streamingAnalytics.notifySeekStart() - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifySeekStart`) + if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifySeekStart`) } - private onSeeked(event: SeekedEvent) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + private onSeeked = (event: SeekedEvent) => { + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) const { currentTime } = event - if (this.player.duration == Infinity) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] seeked in a LIVE stream`) + if (this.player.duration === Infinity) { + if (this.configuration.debug) console.log(`[COMSCORE] seeked in a LIVE stream`) const { seekable } = this.player if (!seekable.length) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] no seekable ranges found when determining DVR window offset`) + if (this.configuration.debug) console.log(`[COMSCORE] no seekable ranges found when determining DVR window offset`) return } const dvrWindowEnd = seekable.end(seekable.length - 1) const dvrWindowOffsetInSeconds = dvrWindowEnd - currentTime this.streamingAnalytics.startFromDvrWindowOffset(dvrWindowOffsetInSeconds * 1000) - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] startFromDvrWindowOffset`) + if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] startFromDvrWindowOffset ${dvrWindowOffsetInSeconds * 1000}`) } else { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] seeked in a VOD stream`) + if (this.configuration.debug) console.log(`[COMSCORE] seeked in a VOD stream`) this.streamingAnalytics.startFromPosition(currentTime * 1000) - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] startFromPosition`) + if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] startFromPosition ${currentTime * 1000}`) } } - private onPause(event: PauseEvent) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + private onPause = (event: PauseEvent) => { + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) this.transitionToPaused() } - private onAdBegin(event: AdEvent<"adbegin">) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + private onAdBegin = (event: AdEvent<"adbegin">) => { + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) const { ad } = event const { adIdProcessor } = this.configuration @@ -341,10 +335,10 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { this.lastAdBreakOffset = ad.adBreak.timeOffset this.lastAdId = adIdProcessor ? adIdProcessor(ad) : ad.id this.lastAdDuration = ad.duration - if (!this.lastAdDuration && DEBUG_LOGS_ENABLED) { + if (!this.lastAdDuration && this.configuration.debug) { console.log("[COMSCORE] AD_BEGIN event with an ad duration of 0 found. Please check the ad configuration") } - if (!this.lastAdId && DEBUG_LOGS_ENABLED) { + if (!this.lastAdId && this.configuration.debug) { console.log("[COMSCORE] AD_BEGIN event with an empty ad id found. Please check the ad configuration") } this.setAdMetadata(this.lastAdDuration ?? 0, this.lastAdBreakOffset, this.lastAdId ?? "") @@ -352,23 +346,24 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { } - private onAdBreakEnd(event: AdBreakEvent<"adbreakend">) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + private onAdBreakEnd = (event: AdBreakEvent<"adbreakend">) => { + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) this.inAd = false + this.transitionToVideo() } - private onRateChange(event: RateChangeEvent) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) + private onRateChange = (event: RateChangeEvent) => { + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) this.streamingAnalytics.notifyChangePlaybackRate(event.playbackRate) - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyChangePlaybackRate`) + if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyChangePlaybackRate ${event.playbackRate}`) } - private onWaiting(event: WaitingEvent) { - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] ${event.type} event`) - if ((this.state == ComscoreState.ADVERTISEMENT && this.inAd) || (this.state == ComscoreState.VIDEO && !this.inAd)) { + private onWaiting = (event: WaitingEvent) => { + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) + if ((this.state === ComscoreState.ADVERTISEMENT && this.inAd) || (this.state === ComscoreState.VIDEO && !this.inAd)) { this.buffering = true this.streamingAnalytics.notifyBufferStart() - if (DEBUG_LOGS_ENABLED) console.log(`[COMSCORE] notifyBufferStart`) + if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyBufferStart`) } } From aa7a77f142c8a6769e051dc83f25f3f275288154 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Fri, 22 Mar 2024 14:58:20 +0100 Subject: [PATCH 30/68] use const --- comscore/src/api/ComscoreConnector.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/comscore/src/api/ComscoreConnector.ts b/comscore/src/api/ComscoreConnector.ts index ec2d28fc..2c21251a 100644 --- a/comscore/src/api/ComscoreConnector.ts +++ b/comscore/src/api/ComscoreConnector.ts @@ -34,7 +34,7 @@ export class ComscoreConnector { } // Configure publisher - let publisherConfiguration = new this.analytics.configuration.PublisherConfiguration({ + const publisherConfiguration = new this.analytics.configuration.PublisherConfiguration({ publisherId: comscoreConfig.publisherId, persistentLabels: { [USER_CONSENT_LABEL]: comscoreConfig.userConsent || "" From f2c87c18f6b3d6ec3b86a4bfb59dd5cac7a437d7 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Fri, 22 Mar 2024 14:58:36 +0100 Subject: [PATCH 31/68] correct type declaration --- comscore/src/comscore/ComScore.d.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/comscore/src/comscore/ComScore.d.ts b/comscore/src/comscore/ComScore.d.ts index 75e23001..de717661 100644 --- a/comscore/src/comscore/ComScore.d.ts +++ b/comscore/src/comscore/ComScore.d.ts @@ -36,6 +36,8 @@ declare namespace ns_ { } class StreamingAnalytics { + setMediaPlayerName(name: string): void; + setMediaPlayerVersion(version: string): void; createPlaybackSession(): void getPlaybackSessionId(): void loopPlaybackSession(): void @@ -247,9 +249,6 @@ declare namespace ns_ { constructor({ }: any) } } - function setMediaPlayerName(name: string): void; - - function setMediaPlayerVersion(version: string): void; function notifyHiddenEvent(): void; From d0788874701ce5787014e34f11a7336a97c9fc38 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Fri, 22 Mar 2024 14:59:03 +0100 Subject: [PATCH 32/68] use const --- comscore/src/integration/ComscoreContentMetadata.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/comscore/src/integration/ComscoreContentMetadata.ts b/comscore/src/integration/ComscoreContentMetadata.ts index 97d4cfa0..0de40d18 100644 --- a/comscore/src/integration/ComscoreContentMetadata.ts +++ b/comscore/src/integration/ComscoreContentMetadata.ts @@ -1,7 +1,7 @@ import { ComscoreDeliveryAdvertisementCapability, ComscoreDeliveryComposition, ComscoreDeliveryMode, ComscoreDeliverySubscriptionType, ComscoreDistributionModel, ComscoreFeedType, ComscoreMediaFormat, ComscoreMediaType, ComscoreMetadata } from "../api/ComscoreMetadata"; export const buildContentMetadata = (metadata: ComscoreMetadata): ns_.analytics.StreamingAnalytics.ContentMetadata => { - let contentMetadata = new ns_.analytics.StreamingAnalytics.ContentMetadata() + const contentMetadata = new ns_.analytics.StreamingAnalytics.ContentMetadata() const { mediaType, uniqueId, From 464bda8143c0c06f28cb51a8cdb132d0745f7e15 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Fri, 22 Mar 2024 14:59:24 +0100 Subject: [PATCH 33/68] pass remaining arguments to ContentMetadata --- comscore/src/integration/ComscoreContentMetadata.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/comscore/src/integration/ComscoreContentMetadata.ts b/comscore/src/integration/ComscoreContentMetadata.ts index 0de40d18..519f0f69 100644 --- a/comscore/src/integration/ComscoreContentMetadata.ts +++ b/comscore/src/integration/ComscoreContentMetadata.ts @@ -79,7 +79,7 @@ export const buildContentMetadata = (metadata: ComscoreMetadata): ns_.analytics. if(episodeNumber) { contentMetadata.setEpisodeNumber(episodeNumber) } - genreName + contentMetadata.setGenreName(genreName) if(genreId) { contentMetadata.setGenreId(genreId) } @@ -116,7 +116,7 @@ export const buildContentMetadata = (metadata: ComscoreMetadata): ns_.analytics. if(feedType) { contentMetadata.setFeedType(mapFeedType(feedType)) } - classifyAsAudioStream + contentMetadata.classifyAsAudioStream(classifyAsAudioStream) if(deliveryMode) { contentMetadata.setDeliveryMode(mapDeliveryMode(deliveryMode)) } From 59b2b368f9c8cf26fba9c2995ba1db0e066626ca Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Fri, 22 Mar 2024 14:59:35 +0100 Subject: [PATCH 34/68] add index.ts --- comscore/src/index.ts | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 comscore/src/index.ts diff --git a/comscore/src/index.ts b/comscore/src/index.ts new file mode 100644 index 00000000..82c78479 --- /dev/null +++ b/comscore/src/index.ts @@ -0,0 +1,3 @@ +export { ComscoreConnector } from './api/ComscoreConnector'; +export { ComscoreMetadata } from './api/ComscoreMetadata'; +export { ComscoreConfiguration } from './api/ComscoreConfiguration' From 9f12dde5ba4df06a88c7e3d98a91a79c3f674383 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Fri, 22 Mar 2024 15:05:29 +0100 Subject: [PATCH 35/68] extend test page --- comscore/test/pages/main.html | 111 +++++++++++++++++++++++----------- 1 file changed, 77 insertions(+), 34 deletions(-) diff --git a/comscore/test/pages/main.html b/comscore/test/pages/main.html index dee5232a..f52c4c98 100644 --- a/comscore/test/pages/main.html +++ b/comscore/test/pages/main.html @@ -3,56 +3,99 @@ Connector test page + + - + + + + + + +

+
+
+ +
+
+ +
+
+
+ + + From bc5f66ddddcf3951c362c4487dce4cf2f526d92a Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Fri, 22 Mar 2024 15:38:04 +0100 Subject: [PATCH 36/68] Prevent notifyEnd of main content coming through after mid-roll ad metadata was already set --- comscore/package-lock.json | 21 +++++++++++++++++++ ...mscoreStreamingAnalyticsTHEOIntegration.ts | 12 ++++++----- 2 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 comscore/package-lock.json diff --git a/comscore/package-lock.json b/comscore/package-lock.json new file mode 100644 index 00000000..b8cc2c6c --- /dev/null +++ b/comscore/package-lock.json @@ -0,0 +1,21 @@ +{ + "name": "@theoplayer/comscore-connector-web", + "version": "1.0.21", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@theoplayer/comscore-connector-web", + "version": "1.0.21", + "license": "MIT", + "dependencies": { + "theoplayer": "^6.12.0" + } + }, + "node_modules/theoplayer": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/theoplayer/-/theoplayer-6.12.0.tgz", + "integrity": "sha512-6l5CH/PIDPrIX6F9Cys3+Hugb60ej36air6LBuE4fOnO3ii8pZvfDAwmHMUA2lJqL1Dvf6N+FM0K947/ApATUA==" + } + } +} diff --git a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts index 02b2c83c..21cfa39d 100644 --- a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts @@ -166,15 +166,20 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { private transitionToAdvertisement(): void { if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] Trying to transition to ADVERTISEMENT while in ${this.state}`); switch(this.state) { - case ComscoreState.ADVERTISEMENT_PAUSED: case ComscoreState.INITIALIZED: if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> ADVERTISEMENT`); this.state = ComscoreState.ADVERTISEMENT + this.setAdMetadata(this.lastAdDuration ?? 0, this.lastAdBreakOffset ?? 0, this.lastAdId ?? "") break; case ComscoreState.VIDEO: case ComscoreState.VIDEO_PAUSED: case ComscoreState.STOPPED: this.transitionToStopped(); + if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> ADVERTISEMENT`); + this.state = ComscoreState.ADVERTISEMENT + this.setAdMetadata(this.lastAdDuration ?? 0, this.lastAdBreakOffset ?? 0, this.lastAdId ?? "") + break; + case ComscoreState.ADVERTISEMENT_PAUSED: if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> ADVERTISEMENT`); this.state = ComscoreState.ADVERTISEMENT break; @@ -340,10 +345,7 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { } if (!this.lastAdId && this.configuration.debug) { console.log("[COMSCORE] AD_BEGIN event with an empty ad id found. Please check the ad configuration") - } - this.setAdMetadata(this.lastAdDuration ?? 0, this.lastAdBreakOffset, this.lastAdId ?? "") - - + } } private onAdBreakEnd = (event: AdBreakEvent<"adbreakend">) => { From cb9fba9f320dcfaf5839c583c051a0bac2e23c7c Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Fri, 22 Mar 2024 16:00:55 +0100 Subject: [PATCH 37/68] check in test assets --- comscore/test/pages/test-assets.json | 180 +++++++++++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 comscore/test/pages/test-assets.json diff --git a/comscore/test/pages/test-assets.json b/comscore/test/pages/test-assets.json new file mode 100644 index 00000000..2f43d5c0 --- /dev/null +++ b/comscore/test/pages/test-assets.json @@ -0,0 +1,180 @@ +[ + { + "label": "VOD (HLS)", + "source": { + "sources": [ + { + "src": "https://cdn.theoplayer.com/video/big_buck_bunny/big_buck_bunny.m3u8", + "type": "application/x-mpegurl" + } + ] + }, + "metadata": { + "mediaType": "longformOnDemand", + "uniqueId": "testuniqueId", + "length": 634566, + "stationTitle": "THEOTV", + "programTitle": "Big Buck Bunny", + "episodeTitle": "Intro", + "genreName": "Animation", + "classifyAsAudioStream": false, + "customLabels": { + "testcustomlabel": "testcustomvalue" + } + } + }, + { + "label": "VOD (HLS) - VMAP (IMA)", + "source": { + "sources": [ + { + "src": "https://cdn.theoplayer.com/video/big_buck_bunny/big_buck_bunny.m3u8", + "type": "application/x-mpegurl" + } + ], + "ads": [ + { + "integration": "google-ima", + "sources": "https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpremidpost&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&cmsid=496&vid=short_onecue&correlator=" + } + ] + }, + "metadata": { + "mediaType": "longformOnDemand", + "uniqueId": "testuniqueId", + "length": 634566, + "stationTitle": "THEOTV", + "programTitle": "Big Buck Bunny", + "episodeTitle": "Intro", + "genreName": "Animation", + "classifyAsAudioStream": false, + "customLabels": { + "testcustomlabel": "testcustomvalue" + } + } + }, + { + "label": "VOD (HLS) - VMAP (THEOAds)", + "source": { + "sources": [ + { + "src": "https://cdn.theoplayer.com/video/big_buck_bunny/big_buck_bunny.m3u8", + "type": "application/x-mpegurl" + } + ], + "ads": [ + { + "integration": "theo", + "sources": "https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpremidpost&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&cmsid=496&vid=short_onecue&correlator=" + } + ] + }, + "metadata": { + "mediaType": "longformOnDemand", + "uniqueId": "testuniqueId", + "length": 634566, + "stationTitle": "THEOTV", + "programTitle": "Big Buck Bunny", + "episodeTitle": "Intro", + "genreName": "Animation", + "classifyAsAudioStream": false, + "customLabels": { + "testcustomlabel": "testcustomvalue" + } + } + }, + { + "label": "LIVE (DASH) - VAST pre-roll (IMA)", + "source": { + "sources": [ + { + "src": "https://livesim2.dashif.org/livesim2/testpic_2s/Manifest.mpd", + "useCredentials": false + } + ], + "ads": [ + { + "integration": "google-ima", + "timeOffset": "start", + "sources": "https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_preroll_skippable&sz=640x480&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=" + } + ] + }, + "metadata": { + "mediaType": "live", + "uniqueId": "testuniqueId", + "length": 0, + "stationTitle": "DASHIF", + "programTitle": "Livesim", + "episodeTitle": "Test", + "genreName": "Animation", + "classifyAsAudioStream": false, + "customLabels": { + "testcustomlabel": "testcustomvalue" + } + } + }, + { + "label": "LIVE (DASH) - VAST pre-roll (THEOAds)", + "source": { + "sources": [ + { + "src": "https://livesim2.dashif.org/livesim2/testpic_2s/Manifest.mpd", + "useCredentials": false + } + ], + "ads": [ + { + "integration": "theo", + "timeOffset": "start", + "sources": "https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_preroll_skippable&sz=640x480&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=" + } + ] + }, + "metadata": { + "mediaType": "live", + "uniqueId": "testuniqueId", + "length": 0, + "stationTitle": "DASHIF", + "programTitle": "Livesim", + "episodeTitle": "Test", + "genreName": "Animation", + "classifyAsAudioStream": false, + "customLabels": { + "testcustomlabel": "testcustomvalue" + } + } + }, + { + "label": "VOD - Google DAI", + "source": { + "type": "application/x-mpegurl", + "ssai": { + "integration": "google-dai", + "availabilityType": "vod", + "apiKey": null, + "contentSourceID": "2528370", + "videoID": "tears-of-steel", + "omidAccessModeRules": { + "1": "full", + "2": "full", + "3": "full", + "9": "full" + } + } + }, + "metadata": { + "mediaType": "longformOnDemand", + "uniqueId": "testuniqueId", + "length": 734000, + "stationTitle": "DAI", + "programTitle": "Google Ad Manager Samples", + "episodeTitle": "Tears of Steel", + "genreName": "Animation", + "classifyAsAudioStream": false, + "customLabels": { + "testcustomlabel": "testcustomvalue" + } + } + } +] \ No newline at end of file From 89a865ce378e05c75f19dbc599b03ed0a9cb2e4e Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Fri, 22 Mar 2024 16:07:52 +0100 Subject: [PATCH 38/68] prevent setting content metadata after post-roll --- .../src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts index 21cfa39d..b2c50188 100644 --- a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts @@ -351,7 +351,6 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { private onAdBreakEnd = (event: AdBreakEvent<"adbreakend">) => { if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) this.inAd = false - this.transitionToVideo() } private onRateChange = (event: RateChangeEvent) => { From 14bb003da0a6255c3d0ca637897496c8f3856cff Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Fri, 22 Mar 2024 16:29:48 +0100 Subject: [PATCH 39/68] count restart after ended event as a new playback session --- .../ComscoreStreamingAnalyticsTHEOIntegration.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts index b2c50188..3a7708ca 100644 --- a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts @@ -255,12 +255,21 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyBufferStop`) } + const { currentTime } = event + if (this.inAd) { this.transitionToAdvertisement() - } else if (this.lastAdBreakOffset && this.lastAdBreakOffset < 0) { - if (this.configuration.debug) console.log(`[COMSCORE] Ignore playing event after post-roll`) + } else if (this.lastAdBreakOffset && this.lastAdBreakOffset < 0 && this.player.duration - currentTime < 1) { + if (this.configuration.debug) console.log(`[COMSCORE] Ignore playing event after post-roll (currentTime ${currentTime})`) + } else if (currentTime < 1) { + this.ended = false + if (this.configuration.debug) console.log(`[COMSCORE] playing event after the stream ended`) + this.streamingAnalytics.createPlaybackSession() + if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] createPlaybackSession`); + this.transitionToVideo() } else { this.transitionToVideo() + } this.streamingAnalytics.notifyPlay() if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyPlay`) From 861e88fe60ea447877a1c8b4828581bda754e028 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Mon, 25 Mar 2024 10:51:06 +0100 Subject: [PATCH 40/68] report main content metadata before setting DVR window length and offset values in LIVE+preroll scenario --- .../ComscoreStreamingAnalyticsTHEOIntegration.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts index 3a7708ca..5fe0c12e 100644 --- a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts @@ -288,6 +288,9 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { private onLoadedMetadata = (event: LoadedMetadataEvent) => { if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) + if (!this.inAd && this.state === ComscoreState.ADVERTISEMENT) { + this.transitionToVideo() + } if (this.metadata.length === 0 && !this.inAd) { if (this.configuration.debug) console.log(`[COMSCORE] LIVE stream detected`) try { @@ -315,6 +318,9 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { private onSeeked = (event: SeekedEvent) => { if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) + if (!this.inAd && this.state === ComscoreState.ADVERTISEMENT) { + this.transitionToVideo() + } const { currentTime } = event if (this.player.duration === Infinity) { From ae9747fff367dfb59c2889ab800f46e70821e7af Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Mon, 25 Mar 2024 12:11:04 +0100 Subject: [PATCH 41/68] don't handle loadedmetadata and playing events after a postroll adbreak finished --- .../ComscoreStreamingAnalyticsTHEOIntegration.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts index 5fe0c12e..76993c52 100644 --- a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts @@ -259,9 +259,10 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { if (this.inAd) { this.transitionToAdvertisement() - } else if (this.lastAdBreakOffset && this.lastAdBreakOffset < 0 && this.player.duration - currentTime < 1) { - if (this.configuration.debug) console.log(`[COMSCORE] Ignore playing event after post-roll (currentTime ${currentTime})`) - } else if (currentTime < 1) { + } else if (this.isAfterPostRoll()) { + if (this.configuration.debug) console.log(`[COMSCORE] Ignore playing event after post-roll (currentTime ${currentTime})`) + return + } else if (currentTime < 1 && this.ended === true) { this.ended = false if (this.configuration.debug) console.log(`[COMSCORE] playing event after the stream ended`) this.streamingAnalytics.createPlaybackSession() @@ -288,7 +289,7 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { private onLoadedMetadata = (event: LoadedMetadataEvent) => { if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) - if (!this.inAd && this.state === ComscoreState.ADVERTISEMENT) { + if (!this.inAd && this.state === ComscoreState.ADVERTISEMENT && !this.isAfterPostRoll()) { this.transitionToVideo() } if (this.metadata.length === 0 && !this.inAd) { @@ -383,5 +384,7 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { } } + private isAfterPostRoll = () => this.lastAdBreakOffset && this.lastAdBreakOffset < 0 && this.player.duration - this.player.currentTime < 1 + } \ No newline at end of file From 71ff30de51f3b0ccbc6a2a8cdb8ca011668b103c Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Mon, 25 Mar 2024 14:51:23 +0100 Subject: [PATCH 42/68] don't report main content play before pre-roll and add notifyPlay for DAI ads --- ...ComscoreStreamingAnalyticsTHEOIntegration.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts index 76993c52..df0d9f08 100644 --- a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts @@ -261,7 +261,10 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { this.transitionToAdvertisement() } else if (this.isAfterPostRoll()) { if (this.configuration.debug) console.log(`[COMSCORE] Ignore playing event after post-roll (currentTime ${currentTime})`) - return + return + } else if (this.isBeforePreRoll()) { + if (this.configuration.debug) console.log(`[COMSCORE] Ignore playing event before pre-roll (currentTime ${currentTime})`) + return } else if (currentTime < 1 && this.ended === true) { this.ended = false if (this.configuration.debug) console.log(`[COMSCORE] playing event after the stream ended`) @@ -361,7 +364,13 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { } if (!this.lastAdId && this.configuration.debug) { console.log("[COMSCORE] AD_BEGIN event with an empty ad id found. Please check the ad configuration") - } + } + if (this.isPlayingGoogleDAISource()){ + this.transitionToAdvertisement() + this.streamingAnalytics.notifyPlay() + if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyPlay`) + } + } private onAdBreakEnd = (event: AdBreakEvent<"adbreakend">) => { @@ -384,7 +393,7 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { } } + private isBeforePreRoll = () => this.player.ads?.scheduledAdBreaks.length && this.player.ads?.scheduledAdBreaks[0].timeOffset === 0 private isAfterPostRoll = () => this.lastAdBreakOffset && this.lastAdBreakOffset < 0 && this.player.duration - this.player.currentTime < 1 - - + private isPlayingGoogleDAISource = () => this.player.ads?.currentAdBreak?.integration === "google-dai" } \ No newline at end of file From 7aa1c6b4c8acbb3baaa11639d7516a7edb695ca0 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Mon, 25 Mar 2024 15:32:03 +0100 Subject: [PATCH 43/68] detect Google DAI post rolls --- ...mscoreStreamingAnalyticsTHEOIntegration.ts | 57 +++++++++++++++---- 1 file changed, 47 insertions(+), 10 deletions(-) diff --git a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts index df0d9f08..d475af3e 100644 --- a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts @@ -16,6 +16,12 @@ enum ComscoreState { STOPPED = "STOPPED" } +enum AdBreakType { + PRE_ROLL, + MID_ROLL, + POST_ROLL +} + export class ComscoreStreamingAnalyticsTHEOIntegration { // References for constructor arguments private player: ChromelessPlayer; @@ -38,7 +44,8 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { private inAd: boolean = false private lastAdId: string | undefined = undefined private lastAdDuration: number | undefined = undefined - private lastAdBreakOffset: number | undefined = undefined + private lastAdBreakType: AdBreakType | undefined = undefined + constructor(player: ChromelessPlayer, configuration: ComscoreConfiguration, metadata: ComscoreMetadata) { this.player = player @@ -110,13 +117,13 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { } - private setAdMetadata(adDuration: number, adBreakOffset: number, adId: string): void { + private setAdMetadata(adDuration: number, adBreakType: AdBreakType, adId: string): void { const adMetadata = new this.analytics.StreamingAnalytics.AdvertisementMetadata() if (this.player.duration === Infinity) { adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.LIVE) - } else if (adBreakOffset === 0) { + } else if (adBreakType === AdBreakType.PRE_ROLL) { adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.ON_DEMAND_PRE_ROLL) - } else if (adBreakOffset === -1) { + } else if (adBreakType === AdBreakType.POST_ROLL) { adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.ON_DEMAND_POST_ROLL) } else { adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.ON_DEMAND_MID_ROLL) @@ -169,7 +176,7 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { case ComscoreState.INITIALIZED: if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> ADVERTISEMENT`); this.state = ComscoreState.ADVERTISEMENT - this.setAdMetadata(this.lastAdDuration ?? 0, this.lastAdBreakOffset ?? 0, this.lastAdId ?? "") + this.setAdMetadata(this.lastAdDuration ?? 0, this.lastAdBreakType ?? AdBreakType.PRE_ROLL, this.lastAdId ?? "") break; case ComscoreState.VIDEO: case ComscoreState.VIDEO_PAUSED: @@ -177,7 +184,7 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { this.transitionToStopped(); if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> ADVERTISEMENT`); this.state = ComscoreState.ADVERTISEMENT - this.setAdMetadata(this.lastAdDuration ?? 0, this.lastAdBreakOffset ?? 0, this.lastAdId ?? "") + this.setAdMetadata(this.lastAdDuration ?? 0, this.lastAdBreakType ?? AdBreakType.PRE_ROLL, this.lastAdId ?? "") break; case ComscoreState.ADVERTISEMENT_PAUSED: if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> ADVERTISEMENT`); @@ -356,7 +363,7 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { const { adIdProcessor } = this.configuration this.inAd = true - this.lastAdBreakOffset = ad.adBreak.timeOffset + this.lastAdBreakType = this.findAdBreakType(ad.adBreak.timeOffset, ad.adBreak.maxDuration ?? 0, ad.adBreak.integration ?? "") this.lastAdId = adIdProcessor ? adIdProcessor(ad) : ad.id this.lastAdDuration = ad.duration if (!this.lastAdDuration && this.configuration.debug) { @@ -393,7 +400,37 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { } } - private isBeforePreRoll = () => this.player.ads?.scheduledAdBreaks.length && this.player.ads?.scheduledAdBreaks[0].timeOffset === 0 - private isAfterPostRoll = () => this.lastAdBreakOffset && this.lastAdBreakOffset < 0 && this.player.duration - this.player.currentTime < 1 - private isPlayingGoogleDAISource = () => this.player.ads?.currentAdBreak?.integration === "google-dai" + private findAdBreakType = (offset: number, maxDuration: number, integration: string ): AdBreakType => { + if (offset === 0) { + if (this.configuration.debug) console.log('[COMSCORE] Mark as PRE_ROLL') + return AdBreakType.PRE_ROLL + } + + switch (integration) { + case "google-ima": + case "theo": + if (offset === -1) { + if (this.configuration.debug) console.log('[COMSCORE] Mark as POST_ROLL') + return AdBreakType.POST_ROLL + } + if (this.configuration.debug) console.log('[COMSCORE] Mark as MID_ROLL') + return AdBreakType.MID_ROLL + case "google-dai": + if (this.player.duration - (offset + maxDuration) <= 0) { + if (this.configuration.debug) console.log('[COMSCORE] Mark as POST_ROLL') + return AdBreakType.POST_ROLL + } + if (this.configuration.debug) console.log('[COMSCORE] Mark as MID_ROLL') + return AdBreakType.MID_ROLL + + default: + if (this.configuration.debug) console.log('[COMSCORE] Untested ad integration used, please contact THEOplayer') + return AdBreakType.MID_ROLL + } + } + + private isBeforePreRoll = (): boolean => this.player.ads?.scheduledAdBreaks.length ? this.player.ads?.scheduledAdBreaks[0].timeOffset === 0 : false + // private isAfterPostRoll = () => this.lastAdBreakOffset && this.lastAdBreakOffset < 0 && this.player.duration - this.player.currentTime < 1 + private isAfterPostRoll = (): boolean => this.lastAdBreakType ? this.lastAdBreakType === AdBreakType.POST_ROLL : false + private isPlayingGoogleDAISource = (): boolean => this.player.ads?.currentAdBreak?.integration === "google-dai" } \ No newline at end of file From e7c1f1ef2b0d14fcfd191ffa6d6e613e4bd31e36 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Mon, 25 Mar 2024 17:25:00 +0100 Subject: [PATCH 44/68] update google dai test stream --- comscore/test/pages/test-assets.json | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/comscore/test/pages/test-assets.json b/comscore/test/pages/test-assets.json index 2f43d5c0..0ef74505 100644 --- a/comscore/test/pages/test-assets.json +++ b/comscore/test/pages/test-assets.json @@ -148,25 +148,24 @@ { "label": "VOD - Google DAI", "source": { - "type": "application/x-mpegurl", - "ssai": { - "integration": "google-dai", - "availabilityType": "vod", - "apiKey": null, - "contentSourceID": "2528370", - "videoID": "tears-of-steel", - "omidAccessModeRules": { - "1": "full", - "2": "full", - "3": "full", - "9": "full" + "sources": [ + { + "type": "application/x-mpegurl", + "ssai": { + "integration": "google-dai", + "availabilityType": "vod", + "contentSourceID": "2528370", + "videoID": "tears-of-steel", + "assetKey": "", + "apiKey": "" + } } - } + ] }, "metadata": { "mediaType": "longformOnDemand", "uniqueId": "testuniqueId", - "length": 734000, + "length": 634566, "stationTitle": "DAI", "programTitle": "Google Ad Manager Samples", "episodeTitle": "Tears of Steel", From 72242c4a008f25daf72f4b2c476ddab6e0f9b81e Mon Sep 17 00:00:00 2001 From: Mattias Buelens Date: Tue, 9 Apr 2024 14:26:05 +0200 Subject: [PATCH 45/68] Update to THEOplayer 7.0 --- comscore/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/comscore/package.json b/comscore/package.json index ca5a6f12..6ba48710 100644 --- a/comscore/package.json +++ b/comscore/package.json @@ -20,7 +20,7 @@ "url": "https://github.com/THEOplayer/web-connectors/issues" }, "homepage": "https://github.com/THEOplayer/web-connectors#readme", - "dependencies": { - "theoplayer": "^6.12.0" + "peerDependencies": { + "theoplayer": "^7.0.0" } } From e3d2fe9e097e8919b6fc804bc5c872391f209b05 Mon Sep 17 00:00:00 2001 From: Mattias Buelens Date: Tue, 9 Apr 2024 14:26:18 +0200 Subject: [PATCH 46/68] Add Comscore connector to workspace --- comscore/package-lock.json | 21 --------------------- package-lock.json | 23 ++++++++++++++++++----- package.json | 3 ++- 3 files changed, 20 insertions(+), 27 deletions(-) delete mode 100644 comscore/package-lock.json diff --git a/comscore/package-lock.json b/comscore/package-lock.json deleted file mode 100644 index b8cc2c6c..00000000 --- a/comscore/package-lock.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "@theoplayer/comscore-connector-web", - "version": "1.0.21", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@theoplayer/comscore-connector-web", - "version": "1.0.21", - "license": "MIT", - "dependencies": { - "theoplayer": "^6.12.0" - } - }, - "node_modules/theoplayer": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/theoplayer/-/theoplayer-6.12.0.tgz", - "integrity": "sha512-6l5CH/PIDPrIX6F9Cys3+Hugb60ej36air6LBuE4fOnO3ii8pZvfDAwmHMUA2lJqL1Dvf6N+FM0K947/ApATUA==" - } - } -} diff --git a/package-lock.json b/package-lock.json index 464f6951..b65b8fd2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,8 @@ "yospace", "conviva", "nielsen", - "cmcd" + "cmcd", + "comscore" ], "devDependencies": { "@changesets/cli": "^2.27.1", @@ -43,22 +44,30 @@ }, "cmcd": { "name": "@theoplayer/cmcd-connector-web", - "version": "1.0.1", + "version": "1.0.2", "license": "MIT", "peerDependencies": { "theoplayer": "^5.0.0 || ^6.0.0 || ^7.0.0" } }, + "comscore": { + "name": "@theoplayer/comscore-connector-web", + "version": "1.0.21", + "license": "MIT", + "peerDependencies": { + "theoplayer": "^7.0.0" + } + }, "conviva": { "name": "@theoplayer/conviva-connector-web", - "version": "2.0.2", + "version": "2.1.0", "license": "MIT", "devDependencies": { "@convivainc/conviva-js-coresdk": "^4.7.4" }, "peerDependencies": { "@convivainc/conviva-js-coresdk": "^4.7.4", - "@theoplayer/yospace-connector-web": "^2.1.1", + "@theoplayer/yospace-connector-web": "^2.1.2", "theoplayer": "^5.0.0 || ^6.0.0 || ^7.0.0" }, "peerDependenciesMeta": { @@ -2391,6 +2400,10 @@ "resolved": "cmcd", "link": true }, + "node_modules/@theoplayer/comscore-connector-web": { + "resolved": "comscore", + "link": true + }, "node_modules/@theoplayer/conviva-connector-web": { "resolved": "conviva", "link": true @@ -8724,7 +8737,7 @@ }, "yospace": { "name": "@theoplayer/yospace-connector-web", - "version": "2.1.1", + "version": "2.1.2", "license": "MIT", "peerDependencies": { "theoplayer": "^5.0.0 || ^6.0.0 || ^7.0.0" diff --git a/package.json b/package.json index 15f71885..9bbbee84 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "yospace", "conviva", "nielsen", - "cmcd" + "cmcd", + "comscore" ], "scripts": { "changeset:version": "changeset version && node .changeset/post-process.js", From 9204b349b0743184de57db0b85767424b3878e49 Mon Sep 17 00:00:00 2001 From: Mattias Buelens Date: Tue, 9 Apr 2024 14:27:27 +0200 Subject: [PATCH 47/68] Update Rollup config --- comscore/rollup.config.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/comscore/rollup.config.mjs b/comscore/rollup.config.mjs index 796dd0ef..d728f46b 100644 --- a/comscore/rollup.config.mjs +++ b/comscore/rollup.config.mjs @@ -9,7 +9,7 @@ const globalName = "THEOplayerComscoreConnector"; const banner = ` /** - * Comscore Web Connector v${version} + * THEOplayer Comscore Web Connector v${version} */`.trim(); -export default getSharedBuildConfiguration(fileName, globalName, banner); +export default getSharedBuildConfiguration({fileName, globalName, banner}); From d912586099ff22181afc66648f156e5dbd2470ab Mon Sep 17 00:00:00 2001 From: Mattias Buelens Date: Tue, 9 Apr 2024 14:32:44 +0200 Subject: [PATCH 48/68] Add .gitignore --- comscore/.gitignore | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 comscore/.gitignore diff --git a/comscore/.gitignore b/comscore/.gitignore new file mode 100644 index 00000000..92b3d00f --- /dev/null +++ b/comscore/.gitignore @@ -0,0 +1,10 @@ +# Node artifact files +node_modules/ +lib/ +dist/ + +# Generated by MacOS +.DS_Store + +# Generated by Windows +Thumbs.db From 154f23f60f26e1d37344cceb2d5ea880c7a96c72 Mon Sep 17 00:00:00 2001 From: Mattias Buelens Date: Tue, 9 Apr 2024 14:32:53 +0200 Subject: [PATCH 49/68] Fix scripts --- comscore/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/comscore/package.json b/comscore/package.json index 6ba48710..51bdd317 100644 --- a/comscore/package.json +++ b/comscore/package.json @@ -4,11 +4,11 @@ "description": "A connector implementing Comscore with THEOplayer", "main": "index.js", "scripts": { - "clean": "rm -rf dist", + "clean": "rimraf lib dist", "bundle": "rollup -c rollup.config.mjs", "build": "npm run clean && npm run bundle", "serve": "http-server . -o /test/pages/main.html", - "test": "echo \"Error: no test specified\" && exit 1" + "test": "echo \"No tests yet\"" }, "repository": { "type": "git", From 5112ea862f57abe9899c0234cdd2484c3472c5d2 Mon Sep 17 00:00:00 2001 From: Mattias Buelens Date: Tue, 9 Apr 2024 14:33:30 +0200 Subject: [PATCH 50/68] Fix tsconfig --- comscore/src/api/ComscoreConnector.ts | 3 +-- ...mscoreStreamingAnalyticsTHEOIntegration.ts | 2 +- comscore/tsconfig.json | 20 ++++++++----------- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/comscore/src/api/ComscoreConnector.ts b/comscore/src/api/ComscoreConnector.ts index 2c21251a..1567bfc3 100644 --- a/comscore/src/api/ComscoreConnector.ts +++ b/comscore/src/api/ComscoreConnector.ts @@ -20,8 +20,7 @@ export class ComscoreConnector { */ constructor(player: ChromelessPlayer, comscoreConfig: ComscoreConfiguration, comscoreMetadata: ComscoreMetadata) { if (typeof ns_ === 'undefined' || typeof this.analytics === 'undefined') { - console.error('[COMSCORE] ComScore script missing, cannot init ComScoreAnalytics'); - return; + throw new Error('[COMSCORE] ComScore script missing, cannot init ComScoreAnalytics'); } this.configuration = comscoreConfig diff --git a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts index d475af3e..436e41a4 100644 --- a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts @@ -38,7 +38,7 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { private streamingAnalytics = new this.analytics.StreamingAnalytics(); // Copy of main content's ContentMetadata - private contentMetadata: ns_.analytics.StreamingAnalytics.ContentMetadata | null; + private contentMetadata: ns_.analytics.StreamingAnalytics.ContentMetadata | null = null; // Advertisement related fields for use outside of ad event handlers private inAd: boolean = false diff --git a/comscore/tsconfig.json b/comscore/tsconfig.json index 836b4254..d416c1ae 100644 --- a/comscore/tsconfig.json +++ b/comscore/tsconfig.json @@ -1,15 +1,11 @@ { + "extends": "../tsconfig.base.json", "compilerOptions": { - "target": "es5", - "module": "commonjs", - "strict": true, - "baseUrl": "./", - "rootDir": ".", - "paths": { "THEOplayer": ["./src/THEOplayer"] }, - "esModuleInterop": true, - "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, - "strictPropertyInitialization": false, - - } + "rootDir": "src", + "outDir": "dist", + "declarationDir": "dist/types" + }, + "include": [ + "src/**/*" + ] } From 8d5e61da8a783afe63d4592e78dc437a79b41c15 Mon Sep 17 00:00:00 2001 From: Mattias Buelens Date: Tue, 9 Apr 2024 14:34:24 +0200 Subject: [PATCH 51/68] Set up TypeDoc --- comscore/typedoc.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 comscore/typedoc.json diff --git a/comscore/typedoc.json b/comscore/typedoc.json new file mode 100644 index 00000000..d531c6a5 --- /dev/null +++ b/comscore/typedoc.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://typedoc.org/schema.json", + "extends": [ + "../typedoc.base.json" + ], + "entryPoints": [ + "src/index.ts" + ], + "tsconfig": "tsconfig.json", + "readme": "README.md", + "name": "Comscore Connector" +} From 76af36edb3f3fdbfb3feddbc6ac48b9797708fcb Mon Sep 17 00:00:00 2001 From: Mattias Buelens Date: Tue, 9 Apr 2024 14:35:07 +0200 Subject: [PATCH 52/68] Set up exports --- comscore/package.json | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/comscore/package.json b/comscore/package.json index 51bdd317..91b45edd 100644 --- a/comscore/package.json +++ b/comscore/package.json @@ -2,7 +2,19 @@ "name": "@theoplayer/comscore-connector-web", "version": "1.0.21", "description": "A connector implementing Comscore with THEOplayer", - "main": "index.js", + "main": "dist/comscore-connector.umd.js", + "module": "dist/comscore-connector.esm.js", + "types": "dist/types/index.d.ts", + "exports": { + ".": { + "types": "./dist/types/index.d.ts", + "import": "./dist/comscore-connector.esm.js", + "require": "./dist/comscore-connector.umd.js" + }, + "./dist/*": "./dist/*", + "./package": "./package.json", + "./package.json": "./package.json" + }, "scripts": { "clean": "rimraf lib dist", "bundle": "rollup -c rollup.config.mjs", From ec109756b6c4339af88376898e8b436a2f8c8e89 Mon Sep 17 00:00:00 2001 From: Mattias Buelens Date: Tue, 9 Apr 2024 14:37:10 +0200 Subject: [PATCH 53/68] Fix repository and bugs fields --- cmcd/package.json | 3 +++ comscore/package.json | 3 ++- conviva/package.json | 9 ++++++++- nielsen/package.json | 8 ++++++++ yospace/package.json | 2 +- 5 files changed, 22 insertions(+), 3 deletions(-) diff --git a/cmcd/package.json b/cmcd/package.json index 9da990b5..b7e76e98 100644 --- a/cmcd/package.json +++ b/cmcd/package.json @@ -8,6 +8,9 @@ "url": "git+https://github.com/THEOplayer/web-connectors.git", "directory": "cmcd" }, + "bugs": { + "url": "https://github.com/THEOplayer/web-connectors/issues" + }, "homepage": "https://theoplayer.com/", "module": "dist/cmcd-connector.esm.js", "types": "dist/types/index.d.ts", diff --git a/comscore/package.json b/comscore/package.json index 91b45edd..82986125 100644 --- a/comscore/package.json +++ b/comscore/package.json @@ -24,7 +24,8 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/THEOplayer/web-connectors.git" + "url": "git+https://github.com/THEOplayer/web-connectors.git", + "directory": "comscore" }, "author": "THEO Technologies NV", "license": "MIT", diff --git a/conviva/package.json b/conviva/package.json index d735f4de..4844c04b 100644 --- a/conviva/package.json +++ b/conviva/package.json @@ -3,7 +3,6 @@ "version": "2.1.0", "description": "A connector implementing Conviva for web.", "main": "dist/conviva-connector.umd.js", - "repository": "https://github.com/THEOplayer/conviva-connector-web", "homepage": "https://theoplayer.com/", "module": "dist/conviva-connector.esm.js", "types": "dist/types/index.d.ts", @@ -25,6 +24,14 @@ "test": "jest" }, "author": "THEO Technologies NV", + "repository": { + "type": "git", + "url": "git+https://github.com/THEOplayer/web-connectors.git", + "directory": "conviva" + }, + "bugs": { + "url": "https://github.com/THEOplayer/web-connectors/issues" + }, "license": "MIT", "files": [ "dist/", diff --git a/nielsen/package.json b/nielsen/package.json index cd3eb54f..4858cffd 100644 --- a/nielsen/package.json +++ b/nielsen/package.json @@ -23,6 +23,14 @@ "test": "jest" }, "author": "THEO Technologies NV", + "repository": { + "type": "git", + "url": "git+https://github.com/THEOplayer/web-connectors.git", + "directory": "nielsen" + }, + "bugs": { + "url": "https://github.com/THEOplayer/web-connectors/issues" + }, "license": "MIT", "files": [ "dist/", diff --git a/yospace/package.json b/yospace/package.json index 8ca2c583..e1de7b0b 100644 --- a/yospace/package.json +++ b/yospace/package.json @@ -41,7 +41,7 @@ "theoplayer": "^5.0.0 || ^6.0.0 || ^7.0.0" }, "bugs": { - "url": "https://github.com/THEOplayer/yospace-connector-web/issues" + "url": "https://github.com/THEOplayer/web-connectors/issues" }, "directories": { "test": "test" From 20fa4c3bec5e046df3540e332409c8b33bb7b57d Mon Sep 17 00:00:00 2001 From: Mattias Buelens Date: Tue, 9 Apr 2024 14:42:07 +0200 Subject: [PATCH 54/68] Add basic README --- comscore/README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 comscore/README.md diff --git a/comscore/README.md b/comscore/README.md new file mode 100644 index 00000000..f89ef4b3 --- /dev/null +++ b/comscore/README.md @@ -0,0 +1,3 @@ +# comscore-connector-web + +The Comscore connector provides a Comscore integration for THEOplayer. From 784b03ea25a7369502e7ade4bb7352c3cb817a9f Mon Sep 17 00:00:00 2001 From: Mattias Buelens Date: Tue, 9 Apr 2024 14:42:23 +0200 Subject: [PATCH 55/68] Fix JSDoc --- comscore/src/api/ComscoreConnector.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/comscore/src/api/ComscoreConnector.ts b/comscore/src/api/ComscoreConnector.ts index 1567bfc3..a79338f1 100644 --- a/comscore/src/api/ComscoreConnector.ts +++ b/comscore/src/api/ComscoreConnector.ts @@ -70,8 +70,9 @@ export class ComscoreConnector { } /** - * Set persistent labels on the ComScore PublisherConfiguration - * @param labels object of key value pairs + * Set persistent label on the ComScore PublisherConfiguration + * @param label + * @param value */ setPersistentLabel(label: string, value: string): void { this.analytics.configuration From 64a31c0071b5a2ad1000cf9069be6934b3aaf17b Mon Sep 17 00:00:00 2001 From: Mattias Buelens Date: Tue, 9 Apr 2024 14:42:35 +0200 Subject: [PATCH 56/68] Export all configuration and metadata types --- comscore/src/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/comscore/src/index.ts b/comscore/src/index.ts index 82c78479..bce42319 100644 --- a/comscore/src/index.ts +++ b/comscore/src/index.ts @@ -1,3 +1,3 @@ export { ComscoreConnector } from './api/ComscoreConnector'; -export { ComscoreMetadata } from './api/ComscoreMetadata'; -export { ComscoreConfiguration } from './api/ComscoreConfiguration' +export * from './api/ComscoreMetadata'; +export * from './api/ComscoreConfiguration'; From 4b6a343416a42753d134722979f326b40a29f099 Mon Sep 17 00:00:00 2001 From: Mattias Buelens Date: Tue, 9 Apr 2024 14:43:25 +0200 Subject: [PATCH 57/68] Run Prettier --- .../integration/ComscoreContentMetadata.ts | 346 ++++++----- ...mscoreStreamingAnalyticsTHEOIntegration.ts | 567 ++++++++++-------- 2 files changed, 511 insertions(+), 402 deletions(-) diff --git a/comscore/src/integration/ComscoreContentMetadata.ts b/comscore/src/integration/ComscoreContentMetadata.ts index 519f0f69..0f6ddd1d 100644 --- a/comscore/src/integration/ComscoreContentMetadata.ts +++ b/comscore/src/integration/ComscoreContentMetadata.ts @@ -1,7 +1,17 @@ -import { ComscoreDeliveryAdvertisementCapability, ComscoreDeliveryComposition, ComscoreDeliveryMode, ComscoreDeliverySubscriptionType, ComscoreDistributionModel, ComscoreFeedType, ComscoreMediaFormat, ComscoreMediaType, ComscoreMetadata } from "../api/ComscoreMetadata"; +import { + ComscoreDeliveryAdvertisementCapability, + ComscoreDeliveryComposition, + ComscoreDeliveryMode, + ComscoreDeliverySubscriptionType, + ComscoreDistributionModel, + ComscoreFeedType, + ComscoreMediaFormat, + ComscoreMediaType, + ComscoreMetadata +} from '../api/ComscoreMetadata'; export const buildContentMetadata = (metadata: ComscoreMetadata): ns_.analytics.StreamingAnalytics.ContentMetadata => { - const contentMetadata = new ns_.analytics.StreamingAnalytics.ContentMetadata() + const contentMetadata = new ns_.analytics.StreamingAnalytics.ContentMetadata(); const { mediaType, uniqueId, @@ -41,268 +51,282 @@ export const buildContentMetadata = (metadata: ComscoreMetadata): ns_.analytics. totalSegments, clipUrl, videoDimension, - customLabels, - } = metadata - contentMetadata.setMediaType(mapMediaType(mediaType)) - contentMetadata.setUniqueId(uniqueId) - contentMetadata.setLength(length) - if(c3) { - contentMetadata.setDictionaryClassificationC3(c3) + customLabels + } = metadata; + contentMetadata.setMediaType(mapMediaType(mediaType)); + contentMetadata.setUniqueId(uniqueId); + contentMetadata.setLength(length); + if (c3) { + contentMetadata.setDictionaryClassificationC3(c3); } - if(c4) { - contentMetadata.setDictionaryClassificationC4(c4) + if (c4) { + contentMetadata.setDictionaryClassificationC4(c4); } - if(c6) { - contentMetadata.setDictionaryClassificationC6(c6) + if (c6) { + contentMetadata.setDictionaryClassificationC6(c6); } - contentMetadata.setStationTitle(stationTitle) - if(stationCode) { - contentMetadata.setStationCode(stationCode) + contentMetadata.setStationTitle(stationTitle); + if (stationCode) { + contentMetadata.setStationCode(stationCode); } - if(networkAffiliate) { - contentMetadata.setNetworkAffiliate(networkAffiliate) + if (networkAffiliate) { + contentMetadata.setNetworkAffiliate(networkAffiliate); } - if(publisherName) { - contentMetadata.setPublisherName(publisherName) + if (publisherName) { + contentMetadata.setPublisherName(publisherName); } - contentMetadata.setProgramTitle(programTitle) - if(programId) { - contentMetadata.setProgramId(programId) + contentMetadata.setProgramTitle(programTitle); + if (programId) { + contentMetadata.setProgramId(programId); } - contentMetadata.setEpisodeTitle(episodeTitle) - if(episodeId) { - contentMetadata.setEpisodeId(episodeId) + contentMetadata.setEpisodeTitle(episodeTitle); + if (episodeId) { + contentMetadata.setEpisodeId(episodeId); } - if(episodeSeasonNumber) { - contentMetadata.setEpisodeSeasonNumber(episodeSeasonNumber) + if (episodeSeasonNumber) { + contentMetadata.setEpisodeSeasonNumber(episodeSeasonNumber); } - if(episodeNumber) { - contentMetadata.setEpisodeNumber(episodeNumber) + if (episodeNumber) { + contentMetadata.setEpisodeNumber(episodeNumber); } - contentMetadata.setGenreName(genreName) - if(genreId) { - contentMetadata.setGenreId(genreId) + contentMetadata.setGenreName(genreName); + if (genreId) { + contentMetadata.setGenreId(genreId); } - if(carryTvAdvertisementLoad) { - contentMetadata.carryTvAdvertisementLoad(carryTvAdvertisementLoad) + if (carryTvAdvertisementLoad) { + contentMetadata.carryTvAdvertisementLoad(carryTvAdvertisementLoad); } - if(classifyAsCompleteEpisode) { - contentMetadata.classifyAsCompleteEpisode(classifyAsCompleteEpisode) + if (classifyAsCompleteEpisode) { + contentMetadata.classifyAsCompleteEpisode(classifyAsCompleteEpisode); } - if(dateOfProduction) { - const { year, month, day } = dateOfProduction - contentMetadata.setDateOfProduction(year,month,day) + if (dateOfProduction) { + const { year, month, day } = dateOfProduction; + contentMetadata.setDateOfProduction(year, month, day); } - if(timeOfProduction) { - const { hours, minutes } = timeOfProduction - contentMetadata.setTimeOfProduction(hours,minutes) + if (timeOfProduction) { + const { hours, minutes } = timeOfProduction; + contentMetadata.setTimeOfProduction(hours, minutes); } - if(dateOfTvAiring) { - const { year, month, day } = dateOfTvAiring - contentMetadata.setDateOfTvAiring(year,month,day) + if (dateOfTvAiring) { + const { year, month, day } = dateOfTvAiring; + contentMetadata.setDateOfTvAiring(year, month, day); } - if(timeOfTvAiring) { - const { hours, minutes } = timeOfTvAiring - contentMetadata.setTimeOfTvAiring(hours,minutes) + if (timeOfTvAiring) { + const { hours, minutes } = timeOfTvAiring; + contentMetadata.setTimeOfTvAiring(hours, minutes); } - if(dateOfDigitalAiring) { - const { year, month, day } = dateOfDigitalAiring - contentMetadata.setDateOfDigitalAiring(year,month,day) + if (dateOfDigitalAiring) { + const { year, month, day } = dateOfDigitalAiring; + contentMetadata.setDateOfDigitalAiring(year, month, day); } - if(timeOfDigitalAiring) { - const { hours, minutes } = timeOfDigitalAiring - contentMetadata.setTimeOfDigitalAiring(hours,minutes) + if (timeOfDigitalAiring) { + const { hours, minutes } = timeOfDigitalAiring; + contentMetadata.setTimeOfDigitalAiring(hours, minutes); } - if(feedType) { - contentMetadata.setFeedType(mapFeedType(feedType)) + if (feedType) { + contentMetadata.setFeedType(mapFeedType(feedType)); } - contentMetadata.classifyAsAudioStream(classifyAsAudioStream) - if(deliveryMode) { - contentMetadata.setDeliveryMode(mapDeliveryMode(deliveryMode)) + contentMetadata.classifyAsAudioStream(classifyAsAudioStream); + if (deliveryMode) { + contentMetadata.setDeliveryMode(mapDeliveryMode(deliveryMode)); } - if(deliverySubscriptionType) { - contentMetadata.setDeliverySubscriptionType(mapDeliverySubscriptionType(deliverySubscriptionType)) + if (deliverySubscriptionType) { + contentMetadata.setDeliverySubscriptionType(mapDeliverySubscriptionType(deliverySubscriptionType)); } - if(deliveryComposition) { - contentMetadata.setDeliveryComposition(mapDeliveryComposition(deliveryComposition)) + if (deliveryComposition) { + contentMetadata.setDeliveryComposition(mapDeliveryComposition(deliveryComposition)); } - if(deliveryAdvertisementCapability) { - contentMetadata.setDeliveryAdvertisementCapability(mapDeliveryAdvertisementCapability(deliveryAdvertisementCapability)) + if (deliveryAdvertisementCapability) { + contentMetadata.setDeliveryAdvertisementCapability( + mapDeliveryAdvertisementCapability(deliveryAdvertisementCapability) + ); } - if(mediaFormat) { - contentMetadata.setMediaFormat(mapMediaFormat(mediaFormat)) + if (mediaFormat) { + contentMetadata.setMediaFormat(mapMediaFormat(mediaFormat)); } - if(distributionModel) { - contentMetadata.setDistributionModel(mapDistributionModel(distributionModel)) + if (distributionModel) { + contentMetadata.setDistributionModel(mapDistributionModel(distributionModel)); } - if(playlistTitle) { - contentMetadata.setPlaylistTitle(playlistTitle) + if (playlistTitle) { + contentMetadata.setPlaylistTitle(playlistTitle); } - if(totalSegments) { - contentMetadata.setTotalSegments(totalSegments) + if (totalSegments) { + contentMetadata.setTotalSegments(totalSegments); } - if(clipUrl) { - contentMetadata.setClipUrl(clipUrl) + if (clipUrl) { + contentMetadata.setClipUrl(clipUrl); } - if(videoDimension) { - const { width, height } = videoDimension - contentMetadata.setVideoDimensions(width,height) + if (videoDimension) { + const { width, height } = videoDimension; + contentMetadata.setVideoDimensions(width, height); } - if(customLabels) { - contentMetadata.addCustomLabels(customLabels) + if (customLabels) { + contentMetadata.addCustomLabels(customLabels); } - return contentMetadata - -} + return contentMetadata; +}; const mapMediaType = (mediaType: ComscoreMediaType): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType => { - switch(mediaType){ + switch (mediaType) { case ComscoreMediaType.bumper: return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.BUMPER; case ComscoreMediaType.live: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.LIVE + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.LIVE; case ComscoreMediaType.longFormOnDemand: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.LONG_FORM_ON_DEMAND + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.LONG_FORM_ON_DEMAND; case ComscoreMediaType.other: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.OTHER + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.OTHER; case ComscoreMediaType.shortFormOnDemand: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.SHORT_FORM_ON_DEMAND + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.SHORT_FORM_ON_DEMAND; case ComscoreMediaType.userGeneratedLive: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.USER_GENERATED_LIVE + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.USER_GENERATED_LIVE; case ComscoreMediaType.userGeneratedLongFormOnDemand: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.USER_GENERATED_LONG_FORM_ON_DEMAND + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.USER_GENERATED_LONG_FORM_ON_DEMAND; case ComscoreMediaType.userGeneratedShortFormOnDemand: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.USER_GENERATED_SHORT_FORM_ON_DEMAND + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.USER_GENERATED_SHORT_FORM_ON_DEMAND; default: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.OTHER + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentType.OTHER; } -} +}; const mapFeedType = (feedType: ComscoreFeedType): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType => { - switch(feedType){ + switch (feedType) { case ComscoreFeedType.eastHD: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.EAST_HD + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.EAST_HD; case ComscoreFeedType.westHD: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.WEST_HD + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.WEST_HD; case ComscoreFeedType.eastSD: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.EAST_SD + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.EAST_SD; case ComscoreFeedType.westSD: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.WEST_SD + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.WEST_SD; default: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.OTHER + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentFeedType.OTHER; } -} +}; -const mapDeliveryMode = (deliveryMode: ComscoreDeliveryMode): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode => { - switch(deliveryMode){ +const mapDeliveryMode = ( + deliveryMode: ComscoreDeliveryMode +): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode => { + switch (deliveryMode) { case ComscoreDeliveryMode.linear: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode.LINEAR + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode.LINEAR; case ComscoreDeliveryMode.ondemand: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode.ON_DEMAND + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode.ON_DEMAND; default: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode.ON_DEMAND + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryMode.ON_DEMAND; } -} +}; -const mapDeliverySubscriptionType = (deliverySubscriptionType: ComscoreDeliverySubscriptionType): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType => { - switch(deliverySubscriptionType){ +const mapDeliverySubscriptionType = ( + deliverySubscriptionType: ComscoreDeliverySubscriptionType +): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType => { + switch (deliverySubscriptionType) { case ComscoreDeliverySubscriptionType.traditionalMvpd: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.TRADITIONAL_MVPD + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.TRADITIONAL_MVPD; case ComscoreDeliverySubscriptionType.virtualMvpd: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.VIRTUAL_MVPD + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.VIRTUAL_MVPD; case ComscoreDeliverySubscriptionType.subscription: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.SUBSCRIPTION + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.SUBSCRIPTION; case ComscoreDeliverySubscriptionType.transactional: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.TRANSACTIONAL + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.TRANSACTIONAL; case ComscoreDeliverySubscriptionType.advertising: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.ADVERTISING + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.ADVERTISING; case ComscoreDeliverySubscriptionType.premium: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.PREMIUM + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.PREMIUM; default: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.SUBSCRIPTION + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliverySubscriptionType.SUBSCRIPTION; } -} +}; -const mapDeliveryComposition = (deliveryComposition: ComscoreDeliveryComposition): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition => { - switch(deliveryComposition){ +const mapDeliveryComposition = ( + deliveryComposition: ComscoreDeliveryComposition +): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition => { + switch (deliveryComposition) { case ComscoreDeliveryComposition.clean: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition.CLEAN + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition.CLEAN; case ComscoreDeliveryComposition.embed: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition.EMBED + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition.EMBED; default: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition.EMBED + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryComposition.EMBED; } -} +}; -const mapDeliveryAdvertisementCapability = (deliveryAdvertisementCapability: ComscoreDeliveryAdvertisementCapability): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability => { - switch(deliveryAdvertisementCapability){ +const mapDeliveryAdvertisementCapability = ( + deliveryAdvertisementCapability: ComscoreDeliveryAdvertisementCapability +): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability => { + switch (deliveryAdvertisementCapability) { case ComscoreDeliveryAdvertisementCapability.none: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.NONE + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.NONE; case ComscoreDeliveryAdvertisementCapability.dynamicLoad: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.DYNAMIC_LOAD + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.DYNAMIC_LOAD; case ComscoreDeliveryAdvertisementCapability.dynamicReplacement: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.DYNAMIC_REPLACEMENT + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability + .DYNAMIC_REPLACEMENT; case ComscoreDeliveryAdvertisementCapability.linear1day: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_1DAY + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_1DAY; case ComscoreDeliveryAdvertisementCapability.linear2day: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_2DAY + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_2DAY; case ComscoreDeliveryAdvertisementCapability.linear3day: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_3DAY + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_3DAY; case ComscoreDeliveryAdvertisementCapability.linear4day: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_4DAY + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_4DAY; case ComscoreDeliveryAdvertisementCapability.linear5day: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_5DAY + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_5DAY; case ComscoreDeliveryAdvertisementCapability.linear6day: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_6DAY + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_6DAY; case ComscoreDeliveryAdvertisementCapability.linear7day: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_7DAY + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.LINEAR_7DAY; default: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.NONE + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDeliveryAdvertisementCapability.NONE; } -} +}; -const mapMediaFormat = (mediaFormat: ComscoreMediaFormat): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat => { - switch(mediaFormat){ +const mapMediaFormat = ( + mediaFormat: ComscoreMediaFormat +): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat => { + switch (mediaFormat) { case ComscoreMediaFormat.fullContentEpisode: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_EPISODE + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_EPISODE; case ComscoreMediaFormat.fullContentMovie: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_MOVIE + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_MOVIE; case ComscoreMediaFormat.fullContentPodcast: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_GENERIC + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_GENERIC; case ComscoreMediaFormat.fullContentGeneric: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_GENERIC + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_GENERIC; case ComscoreMediaFormat.partialContentEpisode: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_EPISODE + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_EPISODE; case ComscoreMediaFormat.partialContentMovie: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_MOVIE + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_MOVIE; case ComscoreMediaFormat.partialContentPodcast: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_GENERIC + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_GENERIC; case ComscoreMediaFormat.partialContentGeneric: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_GENERIC + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PARTIAL_CONTENT_GENERIC; case ComscoreMediaFormat.previewEpisode: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PREVIEW_EPISODE + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PREVIEW_EPISODE; case ComscoreMediaFormat.previewMovie: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PREVIEW_MOVIE + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PREVIEW_MOVIE; case ComscoreMediaFormat.previewGeneric: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PREVIEW_GENERIC + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.PREVIEW_GENERIC; case ComscoreMediaFormat.extraEpisode: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.EXTRA_EPISODE + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.EXTRA_EPISODE; case ComscoreMediaFormat.extraMovie: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.EXTRA_MOVIE + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.EXTRA_MOVIE; case ComscoreMediaFormat.extraGeneric: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.EXTRA_GENERIC + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.EXTRA_GENERIC; default: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_GENERIC + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentMediaFormat.FULL_CONTENT_GENERIC; } -} +}; -const mapDistributionModel = (distributionModel: ComscoreDistributionModel): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel => { - switch(distributionModel) { +const mapDistributionModel = ( + distributionModel: ComscoreDistributionModel +): ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel => { + switch (distributionModel) { case ComscoreDistributionModel.tvAndOnline: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel.TV_AND_ONLINE + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel.TV_AND_ONLINE; case ComscoreDistributionModel.exclusivelyOnline: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel.EXCLUSIVELY_ONLINE + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel.EXCLUSIVELY_ONLINE; default: - return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel.EXCLUSIVELY_ONLINE + return ns_.analytics.StreamingAnalytics.ContentMetadata.ContentDistributionModel.EXCLUSIVELY_ONLINE; } -} +}; diff --git a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts index 436e41a4..352905db 100644 --- a/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts +++ b/comscore/src/integration/ComscoreStreamingAnalyticsTHEOIntegration.ts @@ -1,19 +1,35 @@ -import { AdBreakEvent, AdEvent, ChromelessPlayer, EndedEvent, LoadedMetadataEvent, PauseEvent, PlayEvent, PlayingEvent, RateChangeEvent, SeekedEvent, SeekingEvent, SourceChangeEvent, WaitingEvent, ErrorEvent, version } from "theoplayer"; -import { ComscoreConfiguration } from "../api/ComscoreConfiguration"; -import { ComscoreMetadata } from "../api/ComscoreMetadata"; -import { buildContentMetadata } from "./ComscoreContentMetadata"; +import { + AdBreakEvent, + AdEvent, + ChromelessPlayer, + EndedEvent, + LoadedMetadataEvent, + PauseEvent, + PlayEvent, + PlayingEvent, + RateChangeEvent, + SeekedEvent, + SeekingEvent, + SourceChangeEvent, + WaitingEvent, + ErrorEvent, + version +} from 'theoplayer'; +import { ComscoreConfiguration } from '../api/ComscoreConfiguration'; +import { ComscoreMetadata } from '../api/ComscoreMetadata'; +import { buildContentMetadata } from './ComscoreContentMetadata'; const LOG_STATE_CHANGES = true; -const LOG_THEOPLAYER_EVENTS = true -const LOG_STREAMINGANALYTICS = true +const LOG_THEOPLAYER_EVENTS = true; +const LOG_STREAMINGANALYTICS = true; enum ComscoreState { - INITIALIZED = "INITIALIZED", - ADVERTISEMENT = "ADVERTISEMENT", - ADVERTISEMENT_PAUSED = "ADVERTISEMENT_PAUSED", - VIDEO = "VIDEO", - VIDEO_PAUSED = "VIDEO_PAUSED", - STOPPED = "STOPPED" + INITIALIZED = 'INITIALIZED', + ADVERTISEMENT = 'ADVERTISEMENT', + ADVERTISEMENT_PAUSED = 'ADVERTISEMENT_PAUSED', + VIDEO = 'VIDEO', + VIDEO_PAUSED = 'VIDEO_PAUSED', + STOPPED = 'STOPPED' } enum AdBreakType { @@ -29,9 +45,9 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { private metadata: ComscoreMetadata; // Playback state managed by the integration - private state: ComscoreState = ComscoreState.INITIALIZED - private buffering: boolean = false - private ended: boolean = false + private state: ComscoreState = ComscoreState.INITIALIZED; + private buffering: boolean = false; + private ended: boolean = false; // Comscore library handles private analytics = ns_.analytics; @@ -41,28 +57,26 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { private contentMetadata: ns_.analytics.StreamingAnalytics.ContentMetadata | null = null; // Advertisement related fields for use outside of ad event handlers - private inAd: boolean = false - private lastAdId: string | undefined = undefined - private lastAdDuration: number | undefined = undefined - private lastAdBreakType: AdBreakType | undefined = undefined - + private inAd: boolean = false; + private lastAdId: string | undefined = undefined; + private lastAdDuration: number | undefined = undefined; + private lastAdBreakType: AdBreakType | undefined = undefined; constructor(player: ChromelessPlayer, configuration: ComscoreConfiguration, metadata: ComscoreMetadata) { - this.player = player - this.configuration = configuration - this.metadata = metadata + this.player = player; + this.configuration = configuration; + this.metadata = metadata; - this.streamingAnalytics.setMediaPlayerName("THEOplayer") - this.streamingAnalytics.setMediaPlayerVersion(version) + this.streamingAnalytics.setMediaPlayerName('THEOplayer'); + this.streamingAnalytics.setMediaPlayerVersion(version); - this.addListeners() + this.addListeners(); } - // PUBLIC methods public update(metadata: ComscoreMetadata) { this.metadata = metadata; - this.contentMetadata = null + this.contentMetadata = null; } public destroy() { @@ -70,100 +84,108 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { } private addListeners(): void { - this.player.addEventListener("sourcechange", this.onSourceChange); - this.player.addEventListener("play", this.onPlay); - this.player.addEventListener("ended", this.onEnded); - this.player.addEventListener("error", this.onError); - this.player.addEventListener("loadedmetadata", this.onLoadedMetadata); - this.player.addEventListener("playing", this.onPlaying); - this.player.addEventListener("seeking", this.onSeeking); - this.player.addEventListener("seeked", this.onSeeked); - this.player.addEventListener("pause", this.onPause); - this.player.addEventListener("ratechange", this.onRateChange); - this.player.addEventListener("waiting", this.onWaiting); + this.player.addEventListener('sourcechange', this.onSourceChange); + this.player.addEventListener('play', this.onPlay); + this.player.addEventListener('ended', this.onEnded); + this.player.addEventListener('error', this.onError); + this.player.addEventListener('loadedmetadata', this.onLoadedMetadata); + this.player.addEventListener('playing', this.onPlaying); + this.player.addEventListener('seeking', this.onSeeking); + this.player.addEventListener('seeked', this.onSeeked); + this.player.addEventListener('pause', this.onPause); + this.player.addEventListener('ratechange', this.onRateChange); + this.player.addEventListener('waiting', this.onWaiting); if (this.player.ads) { - this.player.ads.addEventListener("adbegin", this.onAdBegin); - this.player.ads.addEventListener("adbreakend", this.onAdBreakEnd); + this.player.ads.addEventListener('adbegin', this.onAdBegin); + this.player.ads.addEventListener('adbreakend', this.onAdBreakEnd); } } private removeListeners(): void { - this.player.removeEventListener("sourcechange", this.onSourceChange); - this.player.removeEventListener("play", this.onPlay); - this.player.removeEventListener("ended", this.onEnded); - this.player.removeEventListener("error", this.onError); - this.player.removeEventListener("loadedmetadata", this.onLoadedMetadata); - this.player.removeEventListener("playing", this.onPlaying); - this.player.removeEventListener("seeking", this.onSeeking); - this.player.removeEventListener("seeked", this.onSeeked); - this.player.removeEventListener("pause", this.onPause); - this.player.removeEventListener("ratechange", this.onRateChange); - this.player.removeEventListener("waiting", this.onWaiting); + this.player.removeEventListener('sourcechange', this.onSourceChange); + this.player.removeEventListener('play', this.onPlay); + this.player.removeEventListener('ended', this.onEnded); + this.player.removeEventListener('error', this.onError); + this.player.removeEventListener('loadedmetadata', this.onLoadedMetadata); + this.player.removeEventListener('playing', this.onPlaying); + this.player.removeEventListener('seeking', this.onSeeking); + this.player.removeEventListener('seeked', this.onSeeked); + this.player.removeEventListener('pause', this.onPause); + this.player.removeEventListener('ratechange', this.onRateChange); + this.player.removeEventListener('waiting', this.onWaiting); if (this.player.ads) { - this.player.ads.removeEventListener("adbegin", this.onAdBegin); - this.player.ads.removeEventListener("adbreakend", this.onAdBreakEnd); + this.player.ads.removeEventListener('adbegin', this.onAdBegin); + this.player.ads.removeEventListener('adbreakend', this.onAdBreakEnd); } } private setContentMetadata(): void { - const contentMetadata = buildContentMetadata(this.metadata) - this.contentMetadata = contentMetadata + const contentMetadata = buildContentMetadata(this.metadata); + this.contentMetadata = contentMetadata; if (this.configuration.debug && LOG_STREAMINGANALYTICS) { - console.log(`[COMSCORE - StreamingAnalytics] setMetadata (content)`, contentMetadata.getMetadataLabels()) + console.log(`[COMSCORE - StreamingAnalytics] setMetadata (content)`, contentMetadata.getMetadataLabels()); } - this.streamingAnalytics.setMetadata(contentMetadata) - + this.streamingAnalytics.setMetadata(contentMetadata); } private setAdMetadata(adDuration: number, adBreakType: AdBreakType, adId: string): void { - const adMetadata = new this.analytics.StreamingAnalytics.AdvertisementMetadata() + const adMetadata = new this.analytics.StreamingAnalytics.AdvertisementMetadata(); if (this.player.duration === Infinity) { - adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.LIVE) + adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.LIVE); } else if (adBreakType === AdBreakType.PRE_ROLL) { - adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.ON_DEMAND_PRE_ROLL) + adMetadata.setMediaType( + this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.ON_DEMAND_PRE_ROLL + ); } else if (adBreakType === AdBreakType.POST_ROLL) { - adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.ON_DEMAND_POST_ROLL) + adMetadata.setMediaType( + this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.ON_DEMAND_POST_ROLL + ); } else { - adMetadata.setMediaType(this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.ON_DEMAND_MID_ROLL) + adMetadata.setMediaType( + this.analytics.StreamingAnalytics.AdvertisementMetadata.AdvertisementType.ON_DEMAND_MID_ROLL + ); } - adMetadata.setUniqueId(adId) - adMetadata.setLength(adDuration) + adMetadata.setUniqueId(adId); + adMetadata.setLength(adDuration); - if (!this.contentMetadata) buildContentMetadata(this.metadata) - adMetadata.setRelatedContentMetadata(this.contentMetadata) + if (!this.contentMetadata) buildContentMetadata(this.metadata); + adMetadata.setRelatedContentMetadata(this.contentMetadata); if (this.configuration.debug && LOG_STREAMINGANALYTICS) { - console.log(`[COMSCORE - StreamingAnalytics] setMetadata (advertisement)`, adMetadata.getMetadataLabels()) + console.log(`[COMSCORE - StreamingAnalytics] setMetadata (advertisement)`, adMetadata.getMetadataLabels()); } - this.streamingAnalytics.setMetadata(adMetadata) - - + this.streamingAnalytics.setMetadata(adMetadata); } // STATE TRANSITIONS private transitionToVideo(): void { - if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] Trying to transition to VIDEO while in ${this.state}`); - switch(this.state) { + if (this.configuration.debug && LOG_STATE_CHANGES) + console.log(`[COMSCORE - STATE] Trying to transition to VIDEO while in ${this.state}`); + switch (this.state) { case ComscoreState.INITIALIZED: - if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> VIDEO`); - this.state = ComscoreState.VIDEO - this.setContentMetadata() + if (this.configuration.debug && LOG_STATE_CHANGES) + console.log(`[COMSCORE - STATE] State change ${this.state} -> VIDEO`); + this.state = ComscoreState.VIDEO; + this.setContentMetadata(); break; case ComscoreState.ADVERTISEMENT: case ComscoreState.ADVERTISEMENT_PAUSED: case ComscoreState.STOPPED: this.transitionToStopped(); - if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> VIDEO`); - this.state = ComscoreState.VIDEO - this.setContentMetadata() + if (this.configuration.debug && LOG_STATE_CHANGES) + console.log(`[COMSCORE - STATE] State change ${this.state} -> VIDEO`); + this.state = ComscoreState.VIDEO; + this.setContentMetadata(); break; case ComscoreState.VIDEO_PAUSED: - if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> VIDEO`); - this.state = ComscoreState.VIDEO + if (this.configuration.debug && LOG_STATE_CHANGES) + console.log(`[COMSCORE - STATE] State change ${this.state} -> VIDEO`); + this.state = ComscoreState.VIDEO; break; case ComscoreState.VIDEO: - if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] Ignoring transition from ${this.state} -> VIDEO`); + if (this.configuration.debug && LOG_STATE_CHANGES) + console.log(`[COMSCORE - STATE] Ignoring transition from ${this.state} -> VIDEO`); break; default: break; @@ -171,266 +193,329 @@ export class ComscoreStreamingAnalyticsTHEOIntegration { } private transitionToAdvertisement(): void { - if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] Trying to transition to ADVERTISEMENT while in ${this.state}`); - switch(this.state) { + if (this.configuration.debug && LOG_STATE_CHANGES) + console.log(`[COMSCORE - STATE] Trying to transition to ADVERTISEMENT while in ${this.state}`); + switch (this.state) { case ComscoreState.INITIALIZED: - if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> ADVERTISEMENT`); - this.state = ComscoreState.ADVERTISEMENT - this.setAdMetadata(this.lastAdDuration ?? 0, this.lastAdBreakType ?? AdBreakType.PRE_ROLL, this.lastAdId ?? "") + if (this.configuration.debug && LOG_STATE_CHANGES) + console.log(`[COMSCORE - STATE] State change ${this.state} -> ADVERTISEMENT`); + this.state = ComscoreState.ADVERTISEMENT; + this.setAdMetadata( + this.lastAdDuration ?? 0, + this.lastAdBreakType ?? AdBreakType.PRE_ROLL, + this.lastAdId ?? '' + ); break; case ComscoreState.VIDEO: case ComscoreState.VIDEO_PAUSED: case ComscoreState.STOPPED: this.transitionToStopped(); - if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> ADVERTISEMENT`); - this.state = ComscoreState.ADVERTISEMENT - this.setAdMetadata(this.lastAdDuration ?? 0, this.lastAdBreakType ?? AdBreakType.PRE_ROLL, this.lastAdId ?? "") + if (this.configuration.debug && LOG_STATE_CHANGES) + console.log(`[COMSCORE - STATE] State change ${this.state} -> ADVERTISEMENT`); + this.state = ComscoreState.ADVERTISEMENT; + this.setAdMetadata( + this.lastAdDuration ?? 0, + this.lastAdBreakType ?? AdBreakType.PRE_ROLL, + this.lastAdId ?? '' + ); break; case ComscoreState.ADVERTISEMENT_PAUSED: - if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> ADVERTISEMENT`); - this.state = ComscoreState.ADVERTISEMENT + if (this.configuration.debug && LOG_STATE_CHANGES) + console.log(`[COMSCORE - STATE] State change ${this.state} -> ADVERTISEMENT`); + this.state = ComscoreState.ADVERTISEMENT; break; case ComscoreState.ADVERTISEMENT: - if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] Ignoring transition from ${this.state} -> ADVERTISEMENT`); + if (this.configuration.debug && LOG_STATE_CHANGES) + console.log(`[COMSCORE - STATE] Ignoring transition from ${this.state} -> ADVERTISEMENT`); break; default: break; } - } private transitionToPaused(): void { - if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] Trying to transition to XXXXX_PAUSED while in ${this.state}`); - switch(this.state) { + if (this.configuration.debug && LOG_STATE_CHANGES) + console.log(`[COMSCORE - STATE] Trying to transition to XXXXX_PAUSED while in ${this.state}`); + switch (this.state) { case ComscoreState.VIDEO: - if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> VIDEO_PAUSED`); - this.state = ComscoreState.VIDEO_PAUSED - this.streamingAnalytics.notifyPause() - if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyPause`); + if (this.configuration.debug && LOG_STATE_CHANGES) + console.log(`[COMSCORE - STATE] State change ${this.state} -> VIDEO_PAUSED`); + this.state = ComscoreState.VIDEO_PAUSED; + this.streamingAnalytics.notifyPause(); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) + console.log(`[COMSCORE - StreamingAnalytics] notifyPause`); break; case ComscoreState.ADVERTISEMENT: - if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> ADVERTISEMENT_PAUSED`); - this.state = ComscoreState.ADVERTISEMENT_PAUSED - this.streamingAnalytics.notifyPause() - if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyPause`); + if (this.configuration.debug && LOG_STATE_CHANGES) + console.log(`[COMSCORE - STATE] State change ${this.state} -> ADVERTISEMENT_PAUSED`); + this.state = ComscoreState.ADVERTISEMENT_PAUSED; + this.streamingAnalytics.notifyPause(); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) + console.log(`[COMSCORE - StreamingAnalytics] notifyPause`); break; default: - if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] Ignoring transition from ${this.state} -> XXXXX_PAUSED`); + if (this.configuration.debug && LOG_STATE_CHANGES) + console.log(`[COMSCORE - STATE] Ignoring transition from ${this.state} -> XXXXX_PAUSED`); } - } private transitionToStopped(): void { - if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] Trying to transition to STOPPED while in ${this.state}`); + if (this.configuration.debug && LOG_STATE_CHANGES) + console.log(`[COMSCORE - STATE] Trying to transition to STOPPED while in ${this.state}`); switch (this.state) { case ComscoreState.STOPPED: - if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] Ignoring transition from ${this.state} -> STOPPED`); + if (this.configuration.debug && LOG_STATE_CHANGES) + console.log(`[COMSCORE - STATE] Ignoring transition from ${this.state} -> STOPPED`); break; - default: - if (this.configuration.debug && LOG_STATE_CHANGES) console.log(`[COMSCORE - STATE] State change ${this.state} -> STOPPED`); + default: + if (this.configuration.debug && LOG_STATE_CHANGES) + console.log(`[COMSCORE - STATE] State change ${this.state} -> STOPPED`); this.state = ComscoreState.STOPPED; - this.streamingAnalytics.notifyEnd() - if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyEnd`); - } + this.streamingAnalytics.notifyEnd(); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) + console.log(`[COMSCORE - StreamingAnalytics] notifyEnd`); + } } // EVENT HANDLERS private onSourceChange = (event: SourceChangeEvent) => { - if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`); + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) + console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`); this.state = ComscoreState.INITIALIZED; this.contentMetadata = null; this.streamingAnalytics.createPlaybackSession(); - if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] createPlaybackSession`); - - } + if (this.configuration.debug && LOG_STREAMINGANALYTICS) + console.log(`[COMSCORE - StreamingAnalytics] createPlaybackSession`); + }; private onPlay = (event: PlayEvent) => { - if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) + console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`); if (this.ended) { - this.ended = false - if (this.configuration.debug) console.log(`[COMSCORE] play event after the stream ended`) - this.streamingAnalytics.createPlaybackSession() - if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] createPlaybackSession`); + this.ended = false; + if (this.configuration.debug) console.log(`[COMSCORE] play event after the stream ended`); + this.streamingAnalytics.createPlaybackSession(); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) + console.log(`[COMSCORE - StreamingAnalytics] createPlaybackSession`); } - } + }; private onPlaying = (event: PlayingEvent) => { - if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) + console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`); if (this.buffering) { - this.buffering = false - this.streamingAnalytics.notifyBufferStop() - if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyBufferStop`) + this.buffering = false; + this.streamingAnalytics.notifyBufferStop(); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) + console.log(`[COMSCORE - StreamingAnalytics] notifyBufferStop`); } - const { currentTime } = event + const { currentTime } = event; if (this.inAd) { - this.transitionToAdvertisement() + this.transitionToAdvertisement(); } else if (this.isAfterPostRoll()) { - if (this.configuration.debug) console.log(`[COMSCORE] Ignore playing event after post-roll (currentTime ${currentTime})`) - return + if (this.configuration.debug) + console.log(`[COMSCORE] Ignore playing event after post-roll (currentTime ${currentTime})`); + return; } else if (this.isBeforePreRoll()) { - if (this.configuration.debug) console.log(`[COMSCORE] Ignore playing event before pre-roll (currentTime ${currentTime})`) - return + if (this.configuration.debug) + console.log(`[COMSCORE] Ignore playing event before pre-roll (currentTime ${currentTime})`); + return; } else if (currentTime < 1 && this.ended === true) { - this.ended = false - if (this.configuration.debug) console.log(`[COMSCORE] playing event after the stream ended`) - this.streamingAnalytics.createPlaybackSession() - if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] createPlaybackSession`); - this.transitionToVideo() + this.ended = false; + if (this.configuration.debug) console.log(`[COMSCORE] playing event after the stream ended`); + this.streamingAnalytics.createPlaybackSession(); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) + console.log(`[COMSCORE - StreamingAnalytics] createPlaybackSession`); + this.transitionToVideo(); } else { - this.transitionToVideo() - + this.transitionToVideo(); } - this.streamingAnalytics.notifyPlay() - if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyPlay`) - } + this.streamingAnalytics.notifyPlay(); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) + console.log(`[COMSCORE - StreamingAnalytics] notifyPlay`); + }; private onEnded = (event: EndedEvent) => { - if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) - this.transitionToStopped() - this.ended = true - } + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) + console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`); + this.transitionToStopped(); + this.ended = true; + }; private onError = (event: ErrorEvent) => { - if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) - this.transitionToStopped() - } + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) + console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`); + this.transitionToStopped(); + }; private onLoadedMetadata = (event: LoadedMetadataEvent) => { - if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) + console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`); if (!this.inAd && this.state === ComscoreState.ADVERTISEMENT && !this.isAfterPostRoll()) { - this.transitionToVideo() + this.transitionToVideo(); } if (this.metadata.length === 0 && !this.inAd) { - if (this.configuration.debug) console.log(`[COMSCORE] LIVE stream detected`) + if (this.configuration.debug) console.log(`[COMSCORE] LIVE stream detected`); try { - const { seekable } = this.player + const { seekable } = this.player; if (seekable.length) { - const dvrWindowEnd = seekable.end(seekable.length - 1) - const dvrWindowStart = seekable.start(0) - const dvrWindowLengthInSeconds = dvrWindowEnd - dvrWindowStart + const dvrWindowEnd = seekable.end(seekable.length - 1); + const dvrWindowStart = seekable.start(0); + const dvrWindowLengthInSeconds = dvrWindowEnd - dvrWindowStart; if (dvrWindowLengthInSeconds) { - this.streamingAnalytics.setDvrWindowLength(dvrWindowLengthInSeconds * 1000) - if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] setDvrWindowLength ${dvrWindowLengthInSeconds * 1000}`) - } else if (this.configuration.debug) console.log(`[COMSCORE] DVR window length was not > 0`) + this.streamingAnalytics.setDvrWindowLength(dvrWindowLengthInSeconds * 1000); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) + console.log( + `[COMSCORE - StreamingAnalytics] setDvrWindowLength ${dvrWindowLengthInSeconds * 1000}` + ); + } else if (this.configuration.debug) console.log(`[COMSCORE] DVR window length was not > 0`); } } catch (error) { - if (this.configuration.debug) console.log(`[COMSCORE] There was a problem inspecting the seekable ranges on the loadedmetadata event`) + if (this.configuration.debug) + console.log( + `[COMSCORE] There was a problem inspecting the seekable ranges on the loadedmetadata event` + ); } } - } + }; private onSeeking = (event: SeekingEvent) => { - if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) - this.streamingAnalytics.notifySeekStart() - if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifySeekStart`) - } + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) + console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`); + this.streamingAnalytics.notifySeekStart(); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) + console.log(`[COMSCORE - StreamingAnalytics] notifySeekStart`); + }; private onSeeked = (event: SeekedEvent) => { - if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) + console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`); if (!this.inAd && this.state === ComscoreState.ADVERTISEMENT) { - this.transitionToVideo() + this.transitionToVideo(); } - const { currentTime } = event + const { currentTime } = event; if (this.player.duration === Infinity) { - if (this.configuration.debug) console.log(`[COMSCORE] seeked in a LIVE stream`) - const { seekable } = this.player + if (this.configuration.debug) console.log(`[COMSCORE] seeked in a LIVE stream`); + const { seekable } = this.player; if (!seekable.length) { - if (this.configuration.debug) console.log(`[COMSCORE] no seekable ranges found when determining DVR window offset`) - return + if (this.configuration.debug) + console.log(`[COMSCORE] no seekable ranges found when determining DVR window offset`); + return; } - const dvrWindowEnd = seekable.end(seekable.length - 1) - const dvrWindowOffsetInSeconds = dvrWindowEnd - currentTime - this.streamingAnalytics.startFromDvrWindowOffset(dvrWindowOffsetInSeconds * 1000) - if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] startFromDvrWindowOffset ${dvrWindowOffsetInSeconds * 1000}`) + const dvrWindowEnd = seekable.end(seekable.length - 1); + const dvrWindowOffsetInSeconds = dvrWindowEnd - currentTime; + this.streamingAnalytics.startFromDvrWindowOffset(dvrWindowOffsetInSeconds * 1000); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) + console.log( + `[COMSCORE - StreamingAnalytics] startFromDvrWindowOffset ${dvrWindowOffsetInSeconds * 1000}` + ); } else { - if (this.configuration.debug) console.log(`[COMSCORE] seeked in a VOD stream`) - this.streamingAnalytics.startFromPosition(currentTime * 1000) - if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] startFromPosition ${currentTime * 1000}`) + if (this.configuration.debug) console.log(`[COMSCORE] seeked in a VOD stream`); + this.streamingAnalytics.startFromPosition(currentTime * 1000); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) + console.log(`[COMSCORE - StreamingAnalytics] startFromPosition ${currentTime * 1000}`); } - } + }; private onPause = (event: PauseEvent) => { - if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) - this.transitionToPaused() - } - - private onAdBegin = (event: AdEvent<"adbegin">) => { - if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) - const { ad } = event - const { adIdProcessor } = this.configuration - - this.inAd = true - this.lastAdBreakType = this.findAdBreakType(ad.adBreak.timeOffset, ad.adBreak.maxDuration ?? 0, ad.adBreak.integration ?? "") - this.lastAdId = adIdProcessor ? adIdProcessor(ad) : ad.id - this.lastAdDuration = ad.duration + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) + console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`); + this.transitionToPaused(); + }; + + private onAdBegin = (event: AdEvent<'adbegin'>) => { + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) + console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`); + const { ad } = event; + const { adIdProcessor } = this.configuration; + + this.inAd = true; + this.lastAdBreakType = this.findAdBreakType( + ad.adBreak.timeOffset, + ad.adBreak.maxDuration ?? 0, + ad.adBreak.integration ?? '' + ); + this.lastAdId = adIdProcessor ? adIdProcessor(ad) : ad.id; + this.lastAdDuration = ad.duration; if (!this.lastAdDuration && this.configuration.debug) { - console.log("[COMSCORE] AD_BEGIN event with an ad duration of 0 found. Please check the ad configuration") + console.log('[COMSCORE] AD_BEGIN event with an ad duration of 0 found. Please check the ad configuration'); } if (!this.lastAdId && this.configuration.debug) { - console.log("[COMSCORE] AD_BEGIN event with an empty ad id found. Please check the ad configuration") + console.log('[COMSCORE] AD_BEGIN event with an empty ad id found. Please check the ad configuration'); } - if (this.isPlayingGoogleDAISource()){ - this.transitionToAdvertisement() - this.streamingAnalytics.notifyPlay() - if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyPlay`) + if (this.isPlayingGoogleDAISource()) { + this.transitionToAdvertisement(); + this.streamingAnalytics.notifyPlay(); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) + console.log(`[COMSCORE - StreamingAnalytics] notifyPlay`); } - - } + }; - private onAdBreakEnd = (event: AdBreakEvent<"adbreakend">) => { - if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) - this.inAd = false - } + private onAdBreakEnd = (event: AdBreakEvent<'adbreakend'>) => { + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) + console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`); + this.inAd = false; + }; private onRateChange = (event: RateChangeEvent) => { - if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) - this.streamingAnalytics.notifyChangePlaybackRate(event.playbackRate) - if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyChangePlaybackRate ${event.playbackRate}`) - } + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) + console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`); + this.streamingAnalytics.notifyChangePlaybackRate(event.playbackRate); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) + console.log(`[COMSCORE - StreamingAnalytics] notifyChangePlaybackRate ${event.playbackRate}`); + }; private onWaiting = (event: WaitingEvent) => { - if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`) - if ((this.state === ComscoreState.ADVERTISEMENT && this.inAd) || (this.state === ComscoreState.VIDEO && !this.inAd)) { - this.buffering = true - this.streamingAnalytics.notifyBufferStart() - if (this.configuration.debug && LOG_STREAMINGANALYTICS) console.log(`[COMSCORE - StreamingAnalytics] notifyBufferStart`) + if (this.configuration.debug && LOG_THEOPLAYER_EVENTS) + console.log(`[COMSCORE - THEOplayer EVENTS] ${event.type} event`); + if ( + (this.state === ComscoreState.ADVERTISEMENT && this.inAd) || + (this.state === ComscoreState.VIDEO && !this.inAd) + ) { + this.buffering = true; + this.streamingAnalytics.notifyBufferStart(); + if (this.configuration.debug && LOG_STREAMINGANALYTICS) + console.log(`[COMSCORE - StreamingAnalytics] notifyBufferStart`); } - } + }; - private findAdBreakType = (offset: number, maxDuration: number, integration: string ): AdBreakType => { + private findAdBreakType = (offset: number, maxDuration: number, integration: string): AdBreakType => { if (offset === 0) { - if (this.configuration.debug) console.log('[COMSCORE] Mark as PRE_ROLL') - return AdBreakType.PRE_ROLL + if (this.configuration.debug) console.log('[COMSCORE] Mark as PRE_ROLL'); + return AdBreakType.PRE_ROLL; } switch (integration) { - case "google-ima": - case "theo": + case 'google-ima': + case 'theo': if (offset === -1) { - if (this.configuration.debug) console.log('[COMSCORE] Mark as POST_ROLL') - return AdBreakType.POST_ROLL - } - if (this.configuration.debug) console.log('[COMSCORE] Mark as MID_ROLL') - return AdBreakType.MID_ROLL - case "google-dai": + if (this.configuration.debug) console.log('[COMSCORE] Mark as POST_ROLL'); + return AdBreakType.POST_ROLL; + } + if (this.configuration.debug) console.log('[COMSCORE] Mark as MID_ROLL'); + return AdBreakType.MID_ROLL; + case 'google-dai': if (this.player.duration - (offset + maxDuration) <= 0) { - if (this.configuration.debug) console.log('[COMSCORE] Mark as POST_ROLL') - return AdBreakType.POST_ROLL - } - if (this.configuration.debug) console.log('[COMSCORE] Mark as MID_ROLL') - return AdBreakType.MID_ROLL - + if (this.configuration.debug) console.log('[COMSCORE] Mark as POST_ROLL'); + return AdBreakType.POST_ROLL; + } + if (this.configuration.debug) console.log('[COMSCORE] Mark as MID_ROLL'); + return AdBreakType.MID_ROLL; + default: - if (this.configuration.debug) console.log('[COMSCORE] Untested ad integration used, please contact THEOplayer') - return AdBreakType.MID_ROLL + if (this.configuration.debug) + console.log('[COMSCORE] Untested ad integration used, please contact THEOplayer'); + return AdBreakType.MID_ROLL; } - } + }; - private isBeforePreRoll = (): boolean => this.player.ads?.scheduledAdBreaks.length ? this.player.ads?.scheduledAdBreaks[0].timeOffset === 0 : false + private isBeforePreRoll = (): boolean => + this.player.ads?.scheduledAdBreaks.length ? this.player.ads?.scheduledAdBreaks[0].timeOffset === 0 : false; // private isAfterPostRoll = () => this.lastAdBreakOffset && this.lastAdBreakOffset < 0 && this.player.duration - this.player.currentTime < 1 - private isAfterPostRoll = (): boolean => this.lastAdBreakType ? this.lastAdBreakType === AdBreakType.POST_ROLL : false - private isPlayingGoogleDAISource = (): boolean => this.player.ads?.currentAdBreak?.integration === "google-dai" -} \ No newline at end of file + private isAfterPostRoll = (): boolean => + this.lastAdBreakType ? this.lastAdBreakType === AdBreakType.POST_ROLL : false; + private isPlayingGoogleDAISource = (): boolean => this.player.ads?.currentAdBreak?.integration === 'google-dai'; +} From 45e891738ca202b8e33b83188595d4919694c306 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Wed, 10 Apr 2024 10:28:33 +0200 Subject: [PATCH 58/68] fix serve script --- comscore/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/comscore/package.json b/comscore/package.json index 82986125..440d053b 100644 --- a/comscore/package.json +++ b/comscore/package.json @@ -19,7 +19,7 @@ "clean": "rimraf lib dist", "bundle": "rollup -c rollup.config.mjs", "build": "npm run clean && npm run bundle", - "serve": "http-server . -o /test/pages/main.html", + "serve": "http-server ./.. -o /comscore/test/pages/main.html", "test": "echo \"No tests yet\"" }, "repository": { From b9fe1b3644f6cb37bf2aacf3242d2660e78aa08b Mon Sep 17 00:00:00 2001 From: Mattias Buelens Date: Wed, 10 Apr 2024 16:11:36 +0200 Subject: [PATCH 59/68] Add Comscore to available connectors in README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3b0fa6e2..8ef22b61 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ Using the available connectors allows you to augment the features delivered thro | Connector | npm package | Source code | |:----------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------| | CMCD | [![@theoplayer/cmcd-connector-web](https://img.shields.io/npm/v/%40theoplayer%2Fcmcd-connector-web?label=%40theoplayer%2Fcmcd-connector-web)](https://npmjs.com/package/@theoplayer/cmcd-connector-web) | [cmcd](https://github.com/THEOplayer/web-connectors/tree/main/cmcd) | +| Comscore | [![@theoplayer/comscore-connector-web](https://img.shields.io/npm/v/%40theoplayer%2Fcomscore-connector-web?label=%40theoplayer%2Fcomscore-connector-web)](https://npmjs.com/package/@theoplayer/comscore-connector-web) | [comscore](https://github.com/THEOplayer/web-connectors/tree/main/comscore) | | Conviva | [![@theoplayer/conviva-connector-web](https://img.shields.io/npm/v/%40theoplayer%2Fconviva-connector-web?label=%40theoplayer%2Fconviva-connector-web)](https://npmjs.com/package/@theoplayer/conviva-connector-web) | [conviva](https://github.com/THEOplayer/web-connectors/tree/main/conviva) | | Nielsen | [![@theoplayer/nielsen-connector-web](https://img.shields.io/npm/v/%40theoplayer%2Fnielsen-connector-web?label=%40theoplayer%2Fnielsen-connector-web)](https://npmjs.com/package/@theoplayer/nielsen-connector-web) | [nielsen](https://github.com/THEOplayer/web-connectors/tree/main/nielsen) | | Yospace | [![@theoplayer/yospace-connector-web](https://img.shields.io/npm/v/%40theoplayer%2Fyospace-connector-web?label=%40theoplayer%2Fyospace-connector-web)](https://npmjs.com/package/@theoplayer/yospace-connector-web) | [yospace](https://github.com/THEOplayer/web-connectors/tree/main/yospace) | From b591f08ff97ec4d8317c42d5a0fb7cfb9cf5e12c Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Thu, 11 Apr 2024 10:10:32 +0200 Subject: [PATCH 60/68] add esm example --- comscore/test/pages/main_esm.html | 108 ++++++++++++++++++ .../test/pages/{main.html => main_umd.html} | 1 - 2 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 comscore/test/pages/main_esm.html rename comscore/test/pages/{main.html => main_umd.html} (98%) diff --git a/comscore/test/pages/main_esm.html b/comscore/test/pages/main_esm.html new file mode 100644 index 00000000..3768c202 --- /dev/null +++ b/comscore/test/pages/main_esm.html @@ -0,0 +1,108 @@ + + + + + Connector test page + + + + + + + + + + +
+
+
+ +
+
+ +
+
+
+
+ + + + + + + diff --git a/comscore/test/pages/main.html b/comscore/test/pages/main_umd.html similarity index 98% rename from comscore/test/pages/main.html rename to comscore/test/pages/main_umd.html index f52c4c98..5231ca09 100644 --- a/comscore/test/pages/main.html +++ b/comscore/test/pages/main_umd.html @@ -7,7 +7,6 @@ - From 2e5f70c6951ea93702e1c086c70c73ad29ce3452 Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Thu, 11 Apr 2024 11:39:31 +0200 Subject: [PATCH 61/68] update README --- comscore/README.md | 97 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/comscore/README.md b/comscore/README.md index f89ef4b3..7f329ce9 100644 --- a/comscore/README.md +++ b/comscore/README.md @@ -1,3 +1,100 @@ # comscore-connector-web The Comscore connector provides a Comscore integration for THEOplayer. + +## Installation + +```sh +npm install @theoplayer/comscore-connector-web +``` + +## Usage + +### Configuring the connector + +Create the connector by providing the `THEOplayer` instance, a ComscoreConfiguration (which contains your publisher id, also referred to as the c2 value) and the ComscoreMetadata of the first source being set to the player. You can change the metadata dynamically throughout the lifecycle of the connector. + +```js +import { ComscoreConnector } from '../../dist/comscore-connector.esm.js'; + +const comscoreConfig = { + publisherId: '', + applicationName: 'Test App', + userConsent: '1', + debug: true +}; + +const comscoreMetadata = { + mediaType: 'longFormOnDemand', + uniqueId: 'testuniqueId', + length: 634566, // in milliseconds + stationTitle: 'THEOTV', + programTitle: 'Big Buck Bunny', + episodeTitle: 'Intro', + genreName: 'Animation', + classifyAsAudioStream: false, + customLabels: { + testcustomlabel: 'testcustomvalue' + } +}; + +const comscoreConnector = new ComscoreConnector(player, comscoreConfig, comscoreMetadata); +``` + +### Passing metadata dynamically + +The connector allows updating the current asset's metadata at any time. Do it when setting a new source to the player. + +```js +comscoreConnector.updateMetadata(newMetadata); +``` + +### ComscoreMetadata fields + +Based on the `ComscoreMetadata` type, you can tell which fields are mandatory and which aren't. Note that this is purely for the integration to work correctly. Depending on the Comscore solution you are using, different fields are required/optional. The mandatory fields in the `ComscoreMetadata` type are the ones that are mandatory for all three Comscore solutions: + +- Video Metrix (V) +- Cross Platform Product Suite (X) +- Cross Media Audience Measurement (C) + +| Property | Required | Optional | +| ---------------------------------- | :------: | :------: | +| `mediaType` | All | | +| `uniqueId` | All | | +| `length` | All | | +| `c3?` | V | | +| `c4?` | V | | +| `c6?` | V | | +| `stationTitle` | All | | +| `stationCode?` | | All | +| `networkAffiliate?` | | All | +| `publisherName?` | X C | V | +| `programTitle` | All | | +| `programId?` | | V C | +| `episodeTitle` | All | | +| `episodeId?` | | X C | +| `episodeSeasonNumber?` | X C | | +| `episodeNumber?` | X C | | +| `genreName` | All | | +| `genreId?` | | All | +| `carryTvAdvertisementLoad?` | X | | +| `classifyAsCompleteEpisode?` | X | | +| `dateOfProduction?` | | C | +| `timeOfProduction?` | | C | +| `dateOfTvAiring?` | X C | | +| `timeOfTvAiring?` | | X C | +| `dateOfDigitalAiring?` | X C | | +| `timeOfDigitalAiring?` | | X C | +| `feedType?` | X | | +| `classifyAsAudioStream` | Al | | +| `deliveryMode?` | | All | +| `deliverySubscriptionType?` | | All | +| `deliveryComposition?` | | All | +| `deliveryAdvertisementCapability?` | | All | +| `mediaFormat?` | | All | +| `distributionModel?` | | All | +| `playlistTitle?` | | C | +| `totalSegments?` | | V C | +| `clipUrl?` | | V C | +| `videoDimension?` | | C | +| `customLabels?` | | All | From 14e558cd8cb8e9797566bda7b9e39eca0f4db44b Mon Sep 17 00:00:00 2001 From: Wonne Joosen Date: Thu, 11 Apr 2024 11:49:27 +0200 Subject: [PATCH 62/68] add ComScore SDK loading insctructions to README --- comscore/README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/comscore/README.md b/comscore/README.md index 7f329ce9..63e1f203 100644 --- a/comscore/README.md +++ b/comscore/README.md @@ -8,6 +8,12 @@ The Comscore connector provides a Comscore integration for THEOplayer. npm install @theoplayer/comscore-connector-web ``` +This connector depends on the JavaScript ComScore SDK, which should be loaded and available in the global scope before the connector. Get it from your ComScore dashboard or talk to a ComScore representative. This connector was developed and tested with versions 7.2.0.200214 and 7.6.1.210506 + +```html + - +