From 190a0ed6c57afc18f2da8784178f742d3e4f5f9f Mon Sep 17 00:00:00 2001 From: nawaz1991 Date: Sat, 25 Nov 2023 18:58:33 +0000 Subject: [PATCH] deploy: c881bdd35464544ca8266f3b26bc83d2dc340ce9 --- .doctrees/api/classOASValidator.doctree | Bin 161399 -> 161398 bytes ...1a838ca36f37b19a874eabd4eeff5be860.doctree | Bin 6370 -> 6369 bytes ...1a1ff35fa09f5edbd315e3fa9999983f2b.doctree | Bin 20991 -> 20990 bytes .doctrees/api/file_oas_validator.hpp.doctree | Bin 8978 -> 8977 bytes .doctrees/api/library_root.doctree | Bin 6982 -> 6981 bytes ...ram_listing_file_oas_validator.hpp.doctree | Bin 8813 -> 8812 bytes .doctrees/api/unabridged_orphan.doctree | Bin 2960 -> 2959 bytes .doctrees/benchmark.doctree | Bin 29463 -> 29445 bytes .doctrees/classdiagram.doctree | Bin 16328 -> 16327 bytes .doctrees/codecov.doctree | Bin 3564 -> 3563 bytes .doctrees/environment.pickle | Bin 91819 -> 91811 bytes .doctrees/genindex.doctree | Bin 2364 -> 2363 bytes .doctrees/index.doctree | Bin 5072 -> 5071 bytes .doctrees/oasvalidator.doctree | Bin 67053 -> 67052 bytes ...8131526dfd5ab0b046b3915105d479025d9787.png | Bin 674412 -> 437127 bytes ...8131526dfd5ab0b046b3915105d479025d9787.png | Bin 674412 -> 437127 bytes _sources/api/file_oas_validator.hpp.rst.txt | 2 +- _sources/benchmark.rst.txt | 128 +- benchmark.html | 128 +- ...d.c.cc1fdc5f9508bfa65e57c053db1bc262.html} | 1139 +++- ....cpp.188ff15eb20092c1f63731cfbc97f82c.html | 365 +- ....cpp.af57d12a11d90ea410353ab1ffb5cbd8.html | 603 +- ....hpp.d821d73f0d767098b4df6f7604c8c3c5.html | 540 +- ....cpp.7caf4bece2110eac03067060fd97e26a.html | 119 +- ....hpp.c87cf280df18f57b3fef6b218dec93a8.html | 1280 +++-- ....cpp.5788c696cfdf592f70aa62831a0eae93.html | 345 +- ....hpp.5ead94b4d817e0638e7c62ad2a8fef9a.html | 155 +- ....cpp.4065ab7ad005c697676bd4662b5956ae.html | 2980 +++++----- ....hpp.5900e7eb1296030f36726ff534d10e68.html | 130 +- ....hpp.97f37bf742f5052b8438bb61c517ae68.html | 605 +- ....cpp.57f26e76ce06904e4bd4af5b174aef20.html | 500 +- ....cpp.d77221e0e65297e6662cf81e0b74f82b.html | 315 +- ....hpp.583a616222c0a36ca90d4a01a951bc87.html | 110 +- covhtml-oasvalidator/index.css | 114 +- covhtml-oasvalidator/index.functions.html | 4969 ----------------- ....cpp.4ce9f19df31ad583fe98b36cf2181703.html | 473 +- covhtml-oasvalidator/index.html | 415 +- ....cpp.3eeaf15e69166b359a6654da3c7a400c.html | 1080 ++-- ....cpp.975bab4305855621fe73d7f6516e2412.html | 86 +- ....cpp.0f3ea50a524f7827df529d2b5efab1ab.html | 1185 ++-- ....cpp.5b94ca5d7c48a579eca14991e4c2d081.html | 236 +- ....hpp.abe68f1a52bbdcec3c3f621092f431c8.html | 111 +- ....cpp.af843dc097d66a334d11a6ed57c45b3b.html | 379 +- ....cpp.fd288b227580f2e07776f24dbeb8d0d7.html | 3618 +++++++----- ....cpp.1a3fd9ef774a0e08a679cfa8128980cd.html | 1697 +++--- ....hpp.aa166028d6ebb2dc49f6fdd005e4d10f.html | 457 -- ....cpp.7f42f2f40b50f119b875ed85b762f27d.html | 750 ++- ....cpp.955e96ca9264e962c4a850bfd2b09782.html | 586 +- ....hpp.1df0915a2bf5439047281a5175fde2c9.html | 212 +- ....cpp.3cc93d57ba443c5b70311b3394adf05f.html | 1822 +++--- ....hpp.9e6a761189c68ef54b1690c025bc79cd.html | 322 +- ....cpp.39bfe9356b9cc6be8b977c2189b79a83.html | 1837 +++--- ....cpp.35e3154b11baecb6f497e36935dac256.html | 880 ++- ....cpp.896a18332bbfae02710ee5d03cd51299.html | 778 +-- ....hpp.87d33e3be6926dc64bf6db654e8baf19.html | 203 +- ....cpp.4c97977041b39d6fcaa8dec102770462.html | 2673 +++++---- ....cpp.94bfeb2e505185c760bb10353a0598d1.html | 312 +- ....cpp.c7ae8039f1ae5dec9fb958e1f83f0b46.html | 530 +- ....hpp.daa35f6213c12a081cd56a92be9e89c4.html | 117 +- ....cpp.3d4791b0689ac2bdc3e8eb3cb4518c3c.html | 1723 +++--- ....cpp.89e1f199a2616c1c90c54209fd6cc330.html | 951 ++-- ....hpp.baaec323cc1432d58a25fa435cb12334.html | 216 +- searchindex.js | 2 +- 63 files changed, 17945 insertions(+), 20233 deletions(-) rename covhtml-oasvalidator/{index.CMakeCCompilerId.c.f56694ea3193a6e08142d7b5e3a654ae.html => index.CMakeCCompilerId.c.cc1fdc5f9508bfa65e57c053db1bc262.html} (96%) delete mode 100644 covhtml-oasvalidator/index.functions.html delete mode 100644 covhtml-oasvalidator/index.oas_validator_imp.hpp.aa166028d6ebb2dc49f6fdd005e4d10f.html diff --git a/.doctrees/api/classOASValidator.doctree b/.doctrees/api/classOASValidator.doctree index 5859284afd69ff2b242fe36c28c7503d24a6ea85..cd59bb34cd431938daba0e5047045bd29b871d25 100644 GIT binary patch delta 91 zcmezVhV$DSPL>ANsf-(092wan^fU5vQ#boC?*GS~p*WR=fsp|OCVyODy49QUFaFHEZ delta 84 zcmezNhV%OyPL>ANsSF!g92wao^+StOi;6dUGw%P#K9zxik%56>vZJZxRxier|9PfH nl>zxckj0`mIZ;4(dN31{;A8_HfyoWVT$2NW%(qTqdQ=JknsFLY diff --git a/.doctrees/api/define_oas__validator_8hpp_1a838ca36f37b19a874eabd4eeff5be860.doctree b/.doctrees/api/define_oas__validator_8hpp_1a838ca36f37b19a874eabd4eeff5be860.doctree index 1670a3856cd95144c1fd96d8e65569995f80e45d..80c35a49f3fced3a1f8aced67b0f83597603b42f 100644 GIT binary patch delta 25 hcmaE4_|TB0fpzM&jVwKkY%Tg3`MIf^r!#ts0|10#32OiV delta 26 icmaE8_{fl@fpzNjjVwKk?5+Bt#i>Qbo2M~)ivs|TcnQ`3 diff --git a/.doctrees/api/enum_oas__validator_8hpp_1a1ff35fa09f5edbd315e3fa9999983f2b.doctree b/.doctrees/api/enum_oas__validator_8hpp_1a1ff35fa09f5edbd315e3fa9999983f2b.doctree index ceabd23ede5d19eb02e57bb1a0e535fc844410f9..7dddb850d08185ac00b61109f682be00437352e8 100644 GIT binary patch delta 27 jcmeyrnDO6YMwSNFsh>BpbTG0t>1X8Urf#0hm=gd1rEUuN delta 28 kcmeyjnDPH&MwSNFsb4m-bTG0v>xUMn78P%v#F!HR0I<3XV*mgE diff --git a/.doctrees/api/file_oas_validator.hpp.doctree b/.doctrees/api/file_oas_validator.hpp.doctree index 28d7e757ee01ad55ef555d05483fefca61e046f7..49882288e7d35657c5db49e81ddb355650293b21 100644 GIT binary patch delta 25 gcmbQ_Hqnixfpsd|MixUxwpjg){M^*dHjLL40c2$d-2eap delta 26 hcmbQ}Hpz{pfpseTMixUx_Bj2};?$zz&DM<96aj3r2uJ_` diff --git a/.doctrees/api/library_root.doctree b/.doctrees/api/library_root.doctree index e836e750c5b637ba5a01bfd13e624ed1aeb4f6ec..237b3cc5dc4f529f13b229a919e0a4a27da706ea 100644 GIT binary patch delta 25 gcmX?RcGQfefpx0YMiv`JwqX5?{M^*d?u`E>0dHFfh5!Hn delta 26 hcmX?VcFc^Wfpx0&Miv`J_7MHh;?$zz&2EhUB>{LQ2=M>_ diff --git a/.doctrees/api/program_listing_file_oas_validator.hpp.doctree b/.doctrees/api/program_listing_file_oas_validator.hpp.doctree index e18a329fced3b59bebc2349e685ea8eae550ccfc..826af630dd1b03790bdec77593e134d4e6fdd1e2 100644 GIT binary patch delta 25 gcmaFs^2UXwfpu!)MwUQEwp{&;{M^*dF^qzW0DOuFbpQYW delta 26 hcmaFk^45i=fpu!qMwUQE_B{R2;?$zz&C!g4iU5Wc2;cw! diff --git a/.doctrees/api/unabridged_orphan.doctree b/.doctrees/api/unabridged_orphan.doctree index adeeabacdb9090618919cd4cb432013422d370d2..6fbb6c8a715eef96795d61985fdbe4714454b988 100644 GIT binary patch delta 25 gcmbOr-Y?G5z&f>MBZ~(kTZDc_es1dKU`AUm0AvpbasU7T delta 26 hcmeAdpCHcCz&f>cBZ~(kd!&A7acWWV<{(B}E&yzc2i*Vw diff --git a/.doctrees/benchmark.doctree b/.doctrees/benchmark.doctree index 6611733ba2a909778039ab84d47ab161a94f25ee..a11e01c348d1e61cae516497899ca743d4b35b57 100644 GIT binary patch literal 29445 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 literal 29463 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 P$e`$sA0$dQCKLY)wzlQ% diff --git a/.doctrees/classdiagram.doctree b/.doctrees/classdiagram.doctree index 12e796088cf0676664f7a7932de23cbf0c786d5c..aa8ea6c6e03828826170c6738a6af84d247d3425 100644 GIT binary patch delta 25 hcmX?6f4rWhfpzMhjV$tvZ2tNg`MIf^wHW8w0RV!i2_ygj delta 26 icmX?Jf1;kHfpzNMjV$tv>;d|r#i>Qbn>88d*#Q8IY6*`3 diff --git a/.doctrees/codecov.doctree b/.doctrees/codecov.doctree index 06e3428370767bd612c34ae80588be428d056d88..8830186f8bf9779cfaca90ea682308c6f8efe9a9 100644 GIT binary patch delta 25 hcmaDO{aTu(fpzMGjV!v1Y+m{q`MIf^Ef}}(004TE2*UsX delta 26 icmaDY{YILlfpzM`jV!v1?B4pJ#i>Qbo6Q-w@BjdW0tqev diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index a73b1ae90c22429116bdac40b4ae68ea63941ed4..192af945a50b3aac907498c809eda69cd36b2c17 100644 GIT binary patch literal 91811 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%0A+@xsahbV(Ym!BTIMslq431I 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 diff --git a/.doctrees/genindex.doctree b/.doctrees/genindex.doctree index c09ef73346f178fc5b322fbe5acf29a6a4186c47..a83995a5ccd15a3b35311083805fa15a17cfe923 100644 GIT binary patch delta 25 gcmdlZv|EU!fpx0EMizTUHgElm{M^*dUW}jE0cHya{{R30 delta 26 hcmdljv`2`gfpx0kMizTUb|3xF;?$zz&7O>(*a2>92xQbn-duGg#dv;2?GEC diff --git a/.doctrees/oasvalidator.doctree b/.doctrees/oasvalidator.doctree index f6e1b7b273c8f5ff6bd86653f0013862c3cd292e..a3091c9c64ad3775af6b52b753be2c8a0f3a842e 100644 GIT binary patch delta 31 mcmaFc&GM$3g{6UYD)UB`07f={{fzwF)aGc$?a_>klUM+)kO|cQ delta 32 ncmaFU&GNRJg{6UYD$7Qe07muz{m|mnqT=Q##_dszjFVUZxY`Oo diff --git a/_images/plantuml-f08131526dfd5ab0b046b3915105d479025d9787.png b/_images/plantuml-f08131526dfd5ab0b046b3915105d479025d9787.png index bdf9f97c9f525d586a37d6a0a62b9d33433ba51d..66516dfbbc2df9819be91574b163c569dda2a092 100644 GIT binary patch literal 437127 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

6U2EykKIv+k)OIDfld9HmE@0hl4|% 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 z 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 literal 674412 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

d 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

Zw%Yp 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

m7+h0_HS2vrEBZ5hG>msuB^g|FM$mW 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%0DMiv2DpX*niZm<#pI?|8eY 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

>0aZr7g)^IH0wuEoC4VB-6Vb%~oXkUK~U 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 H@$df+6Yxzg diff --git a/_plantuml/f0/f08131526dfd5ab0b046b3915105d479025d9787.png b/_plantuml/f0/f08131526dfd5ab0b046b3915105d479025d9787.png index bdf9f97c9f525d586a37d6a0a62b9d33433ba51d..66516dfbbc2df9819be91574b163c569dda2a092 100644 GIT binary patch literal 437127 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

d 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

Zw%Yp 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

m7+h0_HS2vrEBZ5hG>msuB^g|FM$mW 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%0DMiv2DpX*niZm<#pI?|8eY zC!$R3?Z5hNWzucN(_vRIoFsVo^oJln6DzTG?8P-KB#tBYn8pp1QALJ6<*KodNh|h` zXUlc*=ddarIP2o#0+~;$+VaB#S?`eVf8hfrb=|6;q7GEQSCs)|^el{mXJPdG8mpcd zHt2o?g753H)d2YP>5XOrjsIzKf_^nQFSwdfwG42NIv)HOXzUZPRsZ<+A3xrFSaR4y zY`<$4H`zUWHAAq|xta_`CLw7<77r1{zdyux8)KR0(%dQaAnyIC?|gm#(s!JQCen{B zzSBqOme4Sk^=J2W{>#iZ`Y$N+cuzf5ObmPGY`42fErH!*$<rRa>kS2ohMV`gz1-fP6AA7qQ&dq&v0(7Z5W79SQmZ+U z(EXeMZ%}?0I`uX#E1uDzW62jv;)v)A;hTQiQ`}0*{%Rx*hl_FqdjZn zBowyO&^*tU{2jnParYJA3Gng$T7ZGA14&ROe<9I$87EI|GOpL#gubNsIE@uSv@i{Ul;B zb}3hV**;3kgy@TJ-@b*FJHNxwL}~oU<+vk_66YS1WY;w2oz9Q}f9_Z1;PZCQL6rN_6-%2Ki zeQ4ExZny!mLT8(Gn+@X0qad_ z)}=Ifdyb+B5+X#2!|Wjs)$$USyK`O5pXiOaG790iNXGmJ$ zY23&y2kWdN9muH%186!O@wLFIVX~!SPDye;*Enh7t9j?07cC^cX$r=}eBli;S75I(LU3p!dRK)e)z;6$|I^V z#%)yI=!BbVqn8j}78Jc6ci_*i(|Inz9Oo2#A?y(7&Q+9@f`d&EwfVCVIkLh7?l)PY z62|8^ZMC+y$e;Rm)FO7LsMu?8HEuJbccY`lfM!BsK0G`;K5i?rjima3w;nL=T9f&^T5H@<>iUZ~Qw~19 zT+>P)AUW7U`VtrizG*6nKi^M+gt?z+wsO+_<^B%(%_lIvHLvJTto!{3z)qX*jQ{ul z`{^~!7caS&_MWMzH0Jf6xcDY@auaIMSkSy%80;2qk04yAz0 zlm}>tsZ9JPQ4l{=EUYT`{S7N4))cvK{d1Q2K^wtht3=i@71>dAhueigNWAIk2itdM zt2;jJ`FTkeu-y*Aj!ex=UA}$$j3d?&37@5XK+TfWPmT)AF2-|)4@q+6OWvx@?Wjwm~uvG z4`w_+U*GUU=d(dW6y22ZZ|0Kp*Gf~jxcLM?$p9giIWLiy4jH z&6HHRXY#;DFTxOs@sW4#9MK3{4z;=#UV**}<$_9MQ%n6g$LO}C5xUcDXw(8EZ~bcE}d!^;D{cjG+a&PllpKiXv5Q zVTrQ2^`3cVh4_ZO@yY|f?PMx^R68Uq4<1$k*w(*x+ha$rAXOa`MV4wn(K3E}JT3=G z#~ziAfzpnonC|bp2oPhAsg%nx6;u5~PM_Z2P5Ina7R3yxx-jp3jG%Q;rC@mbiPzkG9tUh2l(rk+N>IMb);xZGlnlC}G%>x47uy!q8An(ObkII5(6h}EZ z%~&KJ8Nye~E&wt0ep422vQDtm?((BSkRpy1!BY^{|_uT|&S8Bo5%?mY1hYSz++908UsZ;y5o9Gwnb5Mc{88l z!ytQ=$$$T|U`(h1Dy11^fKKX!1a@e&qMdia4)q@NODW08>S6W=i)6zMZO^8Sr1@b% z8&-16)@S8JMaT7%b+R?;zPH6%R)|24UG$1a!jMpylsTqh*z z{qJ>m+h6a>D6FcRWzRkQfbPsI1#;8m8)g(*`H#JA&ux2~vyObsEII30kN;*%pKm+c z8qFg8w6$j~xC=wN_#^XV-<`cZ)#&nQMRRPum7WEv$d+ItAx@O=owlAs*;U7Qyc~0^ zl=U6-=bYGm1;*sjx^Z3ikURAwc2Cv=bcgwJM1wzwX(xz$TulsUB?7{^$= ziBePZkOf{emtRTRB|u{h(fN+{96PJma<`>UAS8W(N?7oZViU-iji5?imvLR!wO$j| zv;;;~ZKLD3f67|x9x|>ut>l(?D4)|+%cn7wVZWO4)E(ij3sO}6jo7rpw{NZ0r;#m; zWn?;e`V2Evt-PE9`+3#}B&&1l7u~|CZEos3Iz#Vd=naO7E6hS zwy7|>Ws6TO+pKDq9mDCi1Lvr@Qz6kVB)w`deuC2Ytgd%8*~7d%p3_N5f=sX2Y^t8P zJd%2H=AWL>J;dsD>LbW0AU?wbiGpnI!jpao_W(!`lBjpNOc7Z2E_3YcyAP;3@nV{* zgHO*%v{`G1y!#-rIK7P}aI0AiEHe3DQf=nw5k-D1u8%`2y)NcZ*kX+EkG?M`&pCB# z@7Btj=K%gvx;puLRy?W45}18CmdY;BKZFWJuf^` z?PO;c5}H9PjsO^Z*|1vz@<=(`VC=aUWZM5aBRZ#(sGpCMR@piQh+MnbfK0#G@#nW@ zEHyP_n?Q!6z5E)h{WU08ew$+cS@Sfz;OIT&I+HyrXFMKJ$>kGc)8`kz=pKOohuy99 zssF|P-zWWv{V(79DnZNZf4|x3ZR@G~-tKstm>Kr%U)H}{$y6rIU{dqGF*w6io3#e) zbti;0kq<)IH7s#s&b@wnbj~{T(BCeD@=dHfs>1mhR2LW@jzI7zk6k2bKqZ<-1OufK z!w6jsI9ifRVSmbF_zcWLBiql6ex!4E^Bl}=x2W)xd);59R9Hpz_Z3C9QZfNrju7uRBYcLMApDp^ynan3#Yb6+U%><}b z_=sp>cXxNJPC&iGZK8X^@e4Y&$xOqNpcsyf&YnxUt{d#dC%9xakZ zAE;}|{l#wj;&+}VLd7|3)`k(q?vR-YI1b=rPS5m%$)ICJvH_y+EmJF z?yhME^M{_u#{H0!r!c#mx9cdZ|G1E-gq1&J!b(-B+$m?&$Si!xPqXEyMRwR`4A0tR z6+8KpX%Vyl!hZ+9`CkJIu?T)gM?7%IWWxa1YsP^zUH+5W+BCtmsZs4(q+)^Z z1%ZrAHa;_l!p6y&pB7c%r*jHbAiBTbe9jVB0@QI=2%*PMy2hW!jBe@;Sw3y64|_&KzeNg8Y)hIS{1=}NUqG7=N-q=7 zTg`Ebtp;Y_;MG1~VuSavMCRZ9S5!W$I*eEprP{i>M5UtBZ*MIMj_m}91IwP6VmMVo z#+1hnpRyp4_#pkI+8yz)AAE7}A&(o-@wvsRnR+KY{ACb;=b@KBd`A)LwCh>-#J5i! zVO&S3slMplq8dpmiQm{l)waWi)ZpJIKdrLP?7&Qd+$%d-nHiy>y(;a`u@1F6n7fDN zWFTvZW#`Lm*J<4fMtq|^TEuu=X+L)otZ!pb#GXtTCLI3)#GPSuWl!uc}-cvuJhFGwWlGP1ZeejfpXobrOVyb z=q?qNCV~H}=L49E@MLU$MUZ-ePK^#ypV>%Acn0yqVMv~=CnKJ3&sxI5wtYUuw>m{w z?zQKs;p~QTF|n&l4>t{xq5`GA-Js z_A(ndw>%K~=V5Oy?8xeFImcRV>+wjQa!g0C%I8!&%$>CfIazlGAbB8BkUpx(Z2e8T zI^o)Vm$=&IM#Ze>%vj61uVw?idk%08B5`s8Fu7ikspB?+XM+?AnTi=;y&#^O@=Rs( z_qYT;b@zBF#;=6WqR1-&-A3fMce@g(wkOH z!)e50HL=jdiByUw_X4pA^hw75;z+j1RJQKt*0C;>-8A&-Vl+5uR%`cF+fNl_Yf8I9 zDRHB%u;AJPcC3}CN}5<+4m9>|#i){VjP(?su6cCD!T=8lGU#jrq7^O;(dNcSebmZ~ ze)--BxrCWQ=xP%fnqMUlC+Q)vLYxPeb34D)@B|}PMDdISe{e)qh^pTYTUTH zd`d3HZi7$5XxD{y-s-N$gF?T}E_FNN4+1cntUqv0Xo@&Z%{Wc@o0H2@-KKm{HUwUU zx5`(#JQ^zOICCNNQ;DM1?I6dCw}X<_i7CPncKqR3Q^IvNcSw3x$EZFS!yYXn@3uP3Gs+6GXwy=_ZFcMKNP)lkJF}>EQ7Gm zit}`E?8>_JV$8vC4W@z_IV{VF@(DM5^?+e)r`O_`NxMoZk9-Z(fqAj$ABWLRaYnl? zLH;6Sz!JsIt`&Ncui}D;kDio#YoeN2|I0vhuqkR|=oy_DmflXa#6rOLkL;R%iSxl@ z$u)alJ)wgJk1V01ZcQ1qLcso^(Cq@2WSu5?f)qS-n0L8$=#B1VK9$vA>eE^jU~D$w zkE3)+=WpGYULx($;8n9+G@YC0TR(%Hv*u?iVTFH6`We&{*0N)@m^$R&TF?U2qLMGO+>m7YUfIql*s zg+oFKXGHRS*lux~=ep+~H>`h*o+7XSJw?+~^Ua7_Q4G^hixK1ToHFU@*IHqZ<1)px&|cxPa%$c*sF9au!lp44gls2gm{81 zB;w)%%N}ued6wYK4p&6*jUdKU8Np;>jh%@+RkA;81=WFy!%#d)#au*LGL&>)#@mKo zwnp6W^!l6Jz_a=#>I)v4vPsp|>gZmbCnLA=@o12>K9F<9VEva_hb!w0EnI{wEzNyf zQ}z*IZ^(k?ImNNse^u2MbPETK5Yiv*NB}%C?G-RdT*3-7t^J{ze*% zDW_qo$)^KWjYlf%m61+rJMKU4JbzDhD!_J-lJa*FOl9lu2E_GG z>KD3~e|UAjzItoGoOpgDs)D~BV67J0Y%bZkn$YcqLo#)f9SOb$FKPHXtP7241+GRp z=g?lX>pEZ=YI@>P=fJy1@#GD8hjpxT#TCU~;fIovlmwEEpjH*($mns#WaSvePn=3h zTc9Ex2W5?l4)%IDZrASJ+~T6GgrWxd|3vV^>zazHQA(hkZyWy#dZm|jbkt*E;zeFT zIJ^IuPQO=K^}HG4of?AUuS$qPT{WIiILmD`ULv9G{Y{%pb}0(e$VJFw5h~>MX4#2r zANXyY&iEA-tYVHAX~)$5r?wOinJ3~u)t`K{Sp9V6&MR0ep(uEY>OR+MZ*$Cj0PX}| z3!ZMXeR+ogQ5a#4;lY7{O}MWR3F3jV51Pb~;D96A+HE#Wwi{k|l{zcYP)lS4oG>`w z>u_2?`-l7t@iBYW6O777M=&Z5tBY54w;DR0{MQA#{z(kf|A*j2Sqi&F{O2T>GFCjn z;zO|1MxlD3*hY~nV{g{fuj|BAw2(0?_IR6?LXz- zWS2S`UpSAPtXTOyj%+lh=I_8|0Zn=?EtEuC zUIzacA8joCQvuGPbXa;T_XtZJjJuZXc`dZX_8*^t`ZTxZtK0$nXAyQWhe)F;)~}s| zpmdn}UaCK`KZNw%FMxF%_=!JX?0U!Q(}oWhRw2zdg^nw$um2k5<=?P)UXrtY58oOe zx;UB0%)GINg<<7G=a3V=AQ5~xv}k+XnD7t3^W$du4s+-7T!UBbRnMaY8|IPG2fGHM ziYBI}91r5ANjE6Uj#j9_CUk zzrXRXz?=>K(WB6v-GhPqG5wLC>9Y4 zX8m&ai{RC2Ceb{joho$`=ajlh#6?WXrYJ$6t@JvPnVXv%s?b(tY1=EkXK(fPK(R(d z%S2(ehRVuBxo}-kC4>omeSJyBM#oaW@DN`D?*|&)lf?_xP4Vkuk2g65wz2+0mnifh z9wYPEjru{$e^lw>M_JafO+gYkbt=p>g^1Rs;y;5Xo@a1tT)W-nZI%kH8@I8la+vTn zksZJZK5n9*tg*Yv@Bl}z_wO_*&f!<(l@CB7dwo*RhBePnOkJo;lLZJrFTA?$XT41Uro`RgL}od2O! z1P$`}`3^)ysX-!;8!!FFC@eWma9s@gMwC_nD$?FL73REG)AS*}Q{gmFrYu7KfBZNsN6om4l<<{ePdmB?UmY$@na5jxCuvDO_=smK z(f@!l1%LVf#aKrCy@wkw&W^LrxAi`^{TypL+ViYqiu5alAa^&+to`fv68dh^a8Jh$09R?KnN8pu^j`QsE&$WKTdQR$=;*aj-#qI^YNd^uqIpO%! zuUDm*AQ0{`y?DJJgxHA(RXYVNZ-i@}fQD#rp4nsP$X(On25QqZZLYS$GX{lcL?BW~ zzkl;K_oy??CoCkr7G~^P^E|49>;2I;10kv@1ndKO*rrTA!=+)SvcHxnJ@$-f^;GHd z2@6DfEB@pg^553q6LIv}#8R9Np}Tnyd=oe`hbHA*M;^S&J!ne9RMvHIXgAWgp>_36 z!RChubx7|{&c2cTukXDE#m0JX(sI&Dqeargfs2~>?(Lrbd}A1)(S=9r^qb_H(RW^; zm4ih{9q$fk0>~pLQB@B1 z={rM=ZTM_5zYpE7uuY3^HrwY+RP}K6SEvzjlHLdjiRQ0^1(^lGBj1Lbt`61J))Jey z@nZ}ivKr?v=gW;dcN7x>g7}HhxBOES4G)UZZl6l)hg34qov=Ns-8?wUmBvo38f#`L zE42w*M`fj@zdqRY8aIQ@({j~(xB{+Sy9O&ic=kZsSNv9UQZ~rV5l29>3w$TL)5R&q z1vJ!q(Q#<5HVP3mr3{164{95JG>7+Y*>ydpgVbkD3G;OA9Xgz$8Xue+xuwS(q_$3J zNn}47pbt^_goLV4+wIiU)m|`^r%zS33EP^L@%x+27`^tdwz7&(PfAQ|)I$vq z4UQo?dvq5ILl`^dV-Yd4V>EN1s1hYAZ2{x!gy!a(6q@VwY(6Eo=@brEQsEJOW$Y<@ zvIAZX5DEhD%N~iOYBJY?>P>K}4`J=v)^f8;Qr_-jTU>#&6SfKIR`d-8ruq9K5pbc&w*Y$F}Og$m_JIA@oUSRyN@$%BQiiu8H;$&RvB?&Yp ze({wC_d9u!sPD4Iveu#mdjt5wU7KGJfs!JpK&0Zc$AaMoANP~{k$?72ev%C)dGvAn zY9MM;9KfF}<6aahZh(snn>(O}76UOjyMviMlm!v!w(WUVMr9FXTH7^ll_WHGJ z@9={}@Njn*WAT8cJ5r$FN_33-eC zLd;r5%UVJpjx{K(tgHtQhG(7wL%A?SC&is~cIE6)(A}A?fj3Q2F}}I#J4e1ekBrv= zTaQZCHqHb#?e2k0-5ajnl?vFJop!|`FBohYNT{!6t>|svoQRJY#+h03@LZQDAr|`rPhrWeeC}EVsTjkNYSHLGW83wIPCh5&lQ`UL4HF+Rfvc;5y~cmh@4&uuQ`|x9bZ6Tt#RfGVngE3t1Rc~& z&_Uc^0yq|`jX*4H+PvA4feKof6x;D?8U1_Dz;K#L(4pg|QmOc91z>;f8EF)fip~ok zV=nfGK%MxsWk--DX{rjJKtkL)!J)CpUm;9Q6F5UPt6jCcmKV>LiY`0cgzV5es0z#g zFxTC5bP8ej_)hwm*ThS^imXMf=>^J;BBst-CE zfn9TI!ljli>gvl3LVt++uNGWLH%$zSmxy{OE@xw=MkkXSsV1}ClIEn^c>p%3hH;!k z7O11F6e}~cJiR`y>`bOFG)u58jZp28eyQrDMC2Itw%K0RElHcX%iYUM6#B<|i@9^2 z+s`H3o{rz=36qzkloXHgV>VghNQ{<5h%YI;G17^RgF*nKOYpT_$)f~-u8;R3p8a$L zzXf;Jayu>y*Rx}1!^B`dAjZE ziyds}5@Jjbuq#Rh`M&sR3D~%VS}}Y9tB)2kVY{J`eA<=x5LY?tDbm|Jg#3qECd;4j zV-Nj)hPxL8Z?wz!LD16JfP3bS$M^FF)6}Ql6(&ZkrcnuG_MtfetAF^o3z`tzH*bi{ zxbOuah`>-$x8Xoebfm>v-hOSyGAhNOc2scXGBgBYK&#^2?<_xSEo%K)QQ)A z2lCxI0R}oTdOg*>Tur}FZOb!HQ&0Ln z_JHimW|V`|9{H>^ch#se=(MDz?f6PrMo!t-jN%$e<%UZ=RXyZIcXzDEQH5)+$~eL! zJ#gbAIiUXK%f>qAP(h-o5ivszt8*PR#yC&E+Y&ioN+@nF9JMz%aTB&OdStUmkR7KO z{+oxW(mgC3AmH!C!P^{Q`4S*l(49)n<1q1!DP!Lahyxrzym3GgY~E&juu!mDcG^BO zgfiyPYQcJ!gG^=6aVTwQ(KYj|pG(#Xf(+tb%zxL13u`~H|2zz9|2+&ObZ4E3!?54@ z@v!~Dcd~z-f}92Ts?%43=CS!n^DJNaz|}JXLl<7}vu~2ge~bieA)Wm;E!HBnO_GgZ zd1Q5Xy(NB(3*6Iq^+S7;*B9Ds9X6J|^5qB9Bt>$vVQDv)tMIT0rY zwk#8*) z;IKh~S$h2`;nG8RvhiYK*vBeePOD$H z03_Vut9w>Gv9ZC>#> zc=+F{*r4>7l=`K_D`LNcoN;29q{4ckE!6UFZ{D~8qfzqr^;giYLF^KGT^)Xk*!LF5 z)eyUCd9ly`=qxSg5|-HqPgHYqgfvAr$@~%U^W3EC{-yUBa11BTqElo|5y1=p&MO=7 zMLP&^?Weinp5;4{x!gY=eNzZc6fPC1?**!uV-)x}?(7H|`pA3e4!=_^=xL#(*YT{0 zBoP5*-(#ib}t8mmLKv^->v|$57e?>+iES z0v@RKrZm)wjNxY?K!55}aBH-PFfv}*EwJCP_=wQJs_Fk8$G6(2th~Wg+Ysi1UtKCX z(Xh(AxHV2MV7fWFn}9wNl#qi>L{CGCjp2p$AV;6!Yi zBVI2F&jmPI&O+o4XMGT!q*3hg{GF0Ve^>L53%DmzD!C#is-wS5^2RWdd6Lj(Eq$`{ zGJuL6f2IOD-xru%u(1Sdih_c6J=;KEzdtf6D(WAS2!XtDX4U>&cVyB7eGe-|vY(is zDywQ-eFIwCYeDEvizk1hs9e%ncOyD9n#IrJXVTA=(HTf=u~+HfB>Hei78wMu@MD#0 z9s}KVO|xeqAygbgSw&r<_B~I~Ef4SI@@-sbvNAFgokw4z=SyocaUEe%pFzUJcZ{akt!1{9&F`V) zw|L#7UX>#s;50LWaU(4~&$G?vm(Nfi=W@1`$({F4<;GHm3Iyamud2$#rXeP#t7OVa zYGrt~dk4%_=R)H2AKEm;m}qJabJ<9q+{{AEKVg+|+x8s`-@B2!t7X16Qs~;u&x>R0 z&x-?AodDfDbH7TzgI}6eZfuH~qktJ=H>3 zMv5NGvTh>P2#e7-jDP(sy3xGgz6BSP{e;tw2ir%cH(d)&-f!;jwa`buF#YWRe_268 zIkH?65xs!75rc{4Ur>6nX{A#g zLZXrl;Ms*U3T6l9+o2gmo0G%r!?yLd-e2pwm9dU(mxu$wnZu-TzURp*FRx{^4mpXy zhhXH$(^<9k7Y}4{f;s}rJO>v-k$HRtR@04`l`G~3cZTW-R9Kxo3t5A+o(RAeF=NH_ zz-#2cojA0S!8yn_Gn9OcvHG$ymPeMld>VZj&`bFW$xh4}I_S7?%PMYI7%;F@9F3C& z+b4RvJigX*x=HSsN-~F+-8RC}9^&-uOhp=>*jx|FDP@vjwrF z2rmZKUhebCUY;Zx>s*Yq*Q0xEr-2jY>8sMCo!Qg5noFTu-E7$!S1^ufwI(AHbJg3A zpK&1$m+4rPP;N^Eb@eEx`u%DcY&1(8EG$DI=d#(X-g8&SxaQ@{JNY*6fmE<}V3$sD z)v;4*+ia-HR?%U-cHF3vWPtF)@;pm&Q;%?>b{Mby2`a|P@!l?uzy5Ihgo@)Og4tM! z7%)tY-A;Q@IKiy_gU{a{lx+m_)l}!tqh7Z~3ncFgyh`oo%*+_;4KCbU2y;eUcOZ*( z=)St~zW45|#EXu_8^$NzBpm@`yXJx+>;pMbC9SWLxwT&i>@n&H{AKCeVrW2 zLpRhWP|A64M}2XLCnY5{Ee8>@1g=z0Vc~Ch9S^$Aa_yGCD98|{r2BXH&Ec?rog{`q zkPzLww_l5JqPWKGQ19T?mp5YC8LD}rkE*_EwI$H|sIt0Ck+)y-+e+8#oz@Gvewan* zR033kJS~n?vs_dNje{_!FwSpBx{qvp1Oh_;1-}+JemPM833|}YuulrSf7!q~3y`BIe zvtI8;1na~}|84*vyYxT5n#O>f)_)^zkjBS|Br{P_{TpKhQ-keK`xQy-8CoX9fkf$% zif!ne1V|i|v?uAwN)=&iCkBzBP>B^EinIcG?j+?OIKNAs&z-iq{O9noXB83V3avjMh#TS; z7dFlAIwD@wy3(M)!D5P!vi?7fBqU<1KNGME{-o9a03afl3?H^m0JJ6K1}P~LZnMXf z*BIBJ#0c>7o2Okru{eYSk6|S2jr;Y#Q*7o}LmmK4?PV@*OaGINTcVzvk79xh=LVC~ zW!kH(oSRQ*Z4INa+RxLN|BIl=Yq|NiH-(Cd5(sXw&DeL_FHA@A z`O&D04OZ}v^dGA}2JmBXO5<2Z<+vnpZfbAHDOm^|yG&eIJ_1Id6~8EzNIMhDdOY&$ z(l#n8&7!kLA{u~?nm4iU2H&XS)*#2U@%qxcH`zqyC?`(+OQrMvbx>#7Wz zZTsmP4UO+-|f~VRos{N@U8orYx3Z{kddduDqHzt>%1>FB1p*O<8 zF)@qCO(WZR;FvPo9;%x!=T$CTD1PS!Q{Da{&h@Oy(QGo~euM|+y%SPy;(5iz%K?nV zOUD-rzfNoIy3j|iFbPRl(^Cv4x(&-cS1IJD5Wk!o3q@~Zo!uSu9|Q@8{q4XljzI{# z4ZRe1sL3uWmqy-k3C*K4EH0oh)QmqsOjKLEWyi5UxB*dNVV&0#t2K1{Xv0nLeO4_V z*FI53n#jgNbs_tZkpaqonV#Ew?SSH8 zFvWmXrP1E)+*oWraC=oAhd1Y=`d;NWj~E*)m0a{fyt)@0C0MU+sV~YOGE+ZSEq5D_+%)>SAy0mb zjP|)pGz@A~GHS=JSZ%S`>wEO3j|@{E4U1*fCC-4qwr^ekcFUHV0@*kAz6#@$4z-li z`?S8jbdq*KyyVn;-H86{tnyB0TK9@Q^s#O*8#ouH8yL;RDayF|0W3?M#!PqsAu~Hi z2C@>B&+l8eZ$8;zZC0-$;TTj?YeExOFa098J}7l=zcb7H=6FiWrL{te6GkCb9R9|d zC}D<%Vm2*oWmXt80d}C}c*EY6)iUzDBN5bvD>5jElAXxy8;rjeXdEj3 zZU5x0z#@MC^G3n?JCa{yKb};imY;uj^0va7PdrRh+710i{fZNoyb(&DM9SQ!ez4k< zD@nPO(}-7m85I1X9wtg2u}!tuE}kaYsP$ZS)!uTJwHx!DtBqF?|86F|>{FLaHkIA_ zV2?CQ%PFI3;augqHTtU7M@MdTGj=m224om@Nrv2a3b=MS^iGjDh1l04fGT!;tqC#Z zNS@j<(z;ijMz`Z*j^#NLPCJST$_7Aa&%(2eCT90QFvS+8AeKc z_`!2#KthtX%uKiK%~K?10Zg)%b=%w5F)zD)DN6~PZ)5%_L1C}u02N)(C&0ay@$7!0 z2cPQ$>C}FD3J{~9fUfq9q<(r>U?dNO^k=V6RBO}PF289OSHdOVm64WT#)0;dyPfkj zVnZeNbs3(krvAK62ns+qEG>Q=DKz$Y>U9*qg?}Pk+r(NO&>&DCj}XoqXwvUaK}Wua z-&`J+8Z_TCcFVJN9On=-hVH`K+Z$NGVl|Jasa~g>isXd$lPCwQi$qzd(P>u&99(~B zTUT9P+~nk>E?087Kgz4pKKat}hg&pj$afz2;PmD=KYo;NV zZz$UFR^qqu_9+Ul?^pFTQ*LhFAt+DTdTL+S8mye`nH!3Y#o`}uS2JHPUF#%zL&bH8 zx&kfFABlX~YqN1kMKytoI_E)e%to6uJBl0I`QkG(k5vrVLoU`#I#b|te-*!7G)5$M zeA>||7`zkb9+b^S&hOAv2!oAQX=9#RnxCRI>@`HPKR;d|EpcKO?*02mHaL`A;AH9y zkBZ{-C?w`N-DlIg%8XNP$?ulj2W!*qUGQ$9l+hpZ6`hn@cqo z<6!D~Z1c*QqH%EjLL&e(Ho*afAe%z^IDN{rFHH~e+A8zjdr-~E7n%{@>jWL zA@-yx*~v@oaUG6JPfrKZrdMhO>H`-@QtjX;*?nqL9%*YL>!NYql&tgO05B+X=M_}v zvElP}EZp~;jcE<-7PqS@k4Z>r6nbkYVESzBT{dEeToN%Ir;4NI-?7H_&@aPUf+NP( z<(zz}?n)^UZ+;+!M(64~Xk6%|=T@;aXDt1EHEs(xD?NtepF>8@m1W@tN$b;JuR|mq z2M0$BXCV|P54IVZQ!oCNJ#^1anO|alI02GMR>haW&)FFm%Yss`mW1|)kqxe?8|O@K zQut0`H_C3YEiaDwywKj8dD+j7=;shqzBClaBqVp(gC3FeyJbi%R0Qx$EDhC8;l#W! z%iVYH!n3>CMtB3Tf(L)jXQUUmFu5aC`3>B*r|w-GjJv+4w!Yruqc^SQYZ&GiM|CPN z9JYgIHk1~|`<0h5 z;I_g-_Bv;Co-5 z=au{HZjWw;S?%ZQndfW0NBAPBbBhhmmdNZFHa29kBE2X)dOS@drp&Ft+fL=ZFl_;o zThZ7jca89cuC@|OB~=Tq4aWPX?+9rQUFe_|q(isGb(-7wv95SGG_&d9woj*LWCy*kEx8;`AvV_^jI`>ui6dQSohXI6!_u{Iae+bL zkXW1NzghAjUWk{w*n^AajxLTL%HXc>=nC>UB&Tz1FlSEmG3Fx^hZ+eL>8qnm6;?sr zWL?czDem#<;oDNmtF;vE)23h_fd3XvJ{MOkezH>^d>rXTV^_{ro9DV5>D7_NrC%VQ^oXP9IMx-# zhNRKkJEP%4tKFVzXSuJOINyDK`|jPzA~u>6m@#e*WA_P}-6Ixh{Ut;94%zn{@i2H9 zlp0YMw`cqP3|H_A&z?y-8{{hQ>_nte-FLYuo6b%9i;tYLmvmC{^elHhQ;%jOsi1rD z^Ld-V^Nz}2JIcqWUNooPCw-?g@p`RuMO)E^=@n7^Ccj4FK-0Gszk#A_uP8dG?BIQ`4-|EZkAh$ zFzWd`FYJh4I}`3-%E`ty-1(@;b^?5WOK;O1DIcnXXfEbWPIpc6S`iE61UX0GjGzpqOP(g~gR$DLNz<=(c+%2UwUr3K39l0I+oQbLT=h>j_YT|3( zI2THv_h$31gL~)XZtY5Iw)jv<#z?8CcjD%kScz<3PLYo~4Ea!*Y})vnWG zu3joz?)J53b5;T#HFqgdUOu*X^8$OjQ{9E;yC~|73McWNmGiz-(BX1Q)cGzt{LuV5 z2Mif3%*IEgR{-1y#*$4(%8Nv!?E{S= zuQukQ`O!zeJgoTE@Y~kq`L`8{o@uAP6+L=fqek_HRu5D5VRMM7RmIwXGc!L`rc>*!kg8{>@c8{->ikFoz*Ltmfw zdGGs*dCfVmc2}X%3NAj;L(xMTHYzHaR0#a^Mgm`-FEuTg))N+ffp|TZxLk^n&bI%c zY8|SN-h*=+-`P{x+kU>eQP8s*y_w=Q5e)R}E*0@zQWTKrbK`B3qpr)DVbqqKGV$WP zz%%)LXJO@$Me7pWr7qJ4>( zp=qS;^Hvin#>f`X6F8)huTApVPTSMxL)-e*VSTKJWI)*#Dyp($gmDdWQ);-wVabOVFIhbnQ7dl&^|TR#s6jRka%`?b-1XjV(0>!tW9b}gox01v4*DOvx=Uuw;Q*g zPvi7IPg8j3L7u?g+z2~OyaR+fT~=_d_qcftB0U-H%rv>lXL zu0yTdq)=YV7H?4nXOlY zSv1XC>us^yig5w^KlK~sHn!t6*CE%V=C}r}c>dRyYg4XgxrEh+T>nPz9{oq#7Rwef zfw#g4VyB=utkWMNks6%J8sO3vTVdI#$)r6_9MB?oAlXdx$8s)XTrqwpr~0w&n}a4S z4F*qed_1TpAJpd%!QIj!n!UASjqv58!RAN3mIMU}#R+8)#Y=ZLU&DVK$~qdj!1YL0 z?J&s_W?Zq}^K-V)fNf@rLMa{s8);6>WTW5*i!f$#`V2foJ#QR1U1!h3#rP#EWN3p~ zIa}tJU{{4wO#HP^GVMvYe-$-1ik8x06!}$NpPgB@zluy+xxSdoam7a3ouf5YXDaK* z^%v`d@=d`+**wJ~GCFXO`s99@<@NcfI#Z_NgYImgA?52E1Rig5YZ$%PGd1wGz|NL) zwwq+WN1nWU@>!MDv%?uI7mj>wuq@dgXMTL1)uj*wX|x;OpHvEG{A4YT3S977ESqf; zALdvT+zzZH@9nbAd0T6@RwZ#TZ&Y@FCsaQE&(2UCdGrU5ijADmw<<%Xsm$tO-vsNP z2Y~~Vg$wqO{)vj--V)Ebtp21|!}{cF^UB-WMowG}a#8cA(+FX!*hT-?cX`9q{PbtH zG4G97nC+S3pJtDfw|c&qY{GhM-l6BhYM5k5Nog+0-K!djq9NRs-TSBl^^sz^-ie@n z!c1-o%}ZVhOn#t{+S2PMLZg!i)c-!6kk)oIiB(d-94{r@?C`c)5mfmmZVI+lud zsYPTBk_e$K6I1cG^EBfdd|}JU&%~s6g#iy5;x~#Fyf%d(= zF)ohTpb8DCJr_TANJKxfVWye{W0y}XA|TS+#iAL*q@aKR{Wgw+6gO>7jNpepLb|3R zTdDqaF*J^WtBVSJ=E%;})v7A(=M-LAx$+90U<|s%z4GmzCia4<4$QPrnUF+KIT$F) zEkB;rAvrv-Br+!_2R#=Olh-=OnRlUz=WEE0WMtAWC#gu{4Vk9|5&52(^O!=IaVF9| zXJy6KCSYDfUCif8!Y$)u$3Q2q>f^HZ^wCz~h=s~K?L_RE?xte%yV9{)9!0DHaw^!~ zkE}aZHx8W8wiLK{IHRW;Bh`pIfKA%uFCZ##zO!SBo;MDxE_h-}{jZpLxPdlU(B7uP zdbA%@=ZNzPVbl^~XQDijAO8>} zk~XD`0VTpp%7o+fc=#;=gR=Kp8R@NBEYa*Crswq1PTCyF$o+mwb#%I(_Md4vui9z7 zrcR@Gu}%&7*e+OnI<-6Kg5Dv^iU3unE`WMvtCKt^gq}<89$ETHYf}Xg9pe)ceA5E3 zrh#O(NB!l$BP2St`#X;)=oM*NwNi4?=i4nDyzaA)Hovfa`hh^L5kh&&)KcY2k<*T! zE1mb+%J_ORxk1?M%;+*E8NR`WjoM1Wu|K8wW%9*^yS(cef7zqGTD`Tm>ouK&r;pD& zq$R>?8)f*ysL%qJ?L@yIj|a_2Tm23J8w)M1HneNlQ$E!j9U5l~xkLK`jcbtutmfyz zXfJ>S@4}m<;&rY^0F`3v5p{YFMPWxfGQ-Ao?RKMXpH-HamH{_KYyOUCn(+VE_ckB= zTzRLhVy59Zt}(a9!Z)+g1}9U-`1p8?6u+W;H*U>QYJMN5#G?9^_igPC&^dDL{03>T z0>dWlk#S_w4!<#?zYdC0-jdm76TgM=(n9sZY;_}e+VDTKIBw;7ZB+20d6F=9;+d4= zIr341Fe!y(6UxsdfJCw4986*IvX_YiE`tN!#alS-#>&jj-r$$H&QrA;YzA0lM`#l9 z8crr#xCXDTRI0T=enf>JPAAzT?x)y6__q#Qb=YCP2GMY!9ac^9e(ro&!#m&$k&Jk^ zKK?6?erlumZN{RI{b8KgbM63;SJw~MqLh@;I28>j91J9}c8YqEP0fKG4;$y;_zJu_ z$qrQCAw)Z=~VdL&F{^ky|i7W27R> zWWCtHt=8@d6X3h3lP}PFt4+h+eb4Su+g$pK&$8T^g;%!mttSwT&jusn$=&r%t=~Z_cx~?ahydnd~pHYV>7o6zxopKJwOv^sMe0aE$a?2L+h4OQw zUMFe2ZZ4n*i=k3&KCil^PTKT)ye>D@E@8OO5^U#p99#{nsP1uh;c-=LeCV7-Avl&3 zw6lWF`r{HS!-tu(o*@&cBhRGHfmIqxxG_1sIex2e_n+~bVoPrZT3QIMiaN#$dcS!r zA%F8^a+04eO~fVyw;rON)ItDf5==Q`ldh?fXDApuB|iH`(C3pk2q!a!Tti1xzS{)& z$!?YOg;&9Myi-><$$95)_Y_lAIk$`LJuyb2KOV7_jI3l!sV3P-e*LG{4EcEr*<3|) z*vc~SAv-On3i}h^fk;05xj0^wxGLAKWd~-brkbI>nVz2Z&IUlGow@)-&Wny0JZ_w@ zB14n)%8H6WEu;#xHhV~~QPX@D&K$<3nNv3$f1Otspe4E!ub^@@AbO~#(zQA(S+yB^sASWNQR|YXUyV^hEauA#GWGLV_QsITn?~8^tilWvZD?V zSFT%_6_^z(f(Nv`qGANC_HL+QW&oCG=(4c0JAlp}Qqvl4(k3)g!XW##TjS;z`q3Vz zwd`_FqL?q2GA{7Hv)j?NOa(=88&MP^Sur{Dwp#eeUU6Dk!fFoEPn;%h5D_4|ZaPdU z%Q5EbybiS+kr3#LNI@3xh>MPkb7=4-dR)~pM2jG21(u-@(JNm+3LCiQI5y!{5l};s z)U=sW_luQu4>7n#ac|f&Bh;v2?zScOQp=%9Cq7#4ifKUknej9}7fl^XAFXz{!yKqx65+74#NsjpePR`+nkA3`&4Js=eBETiT|&o>@*E7`n; zmWDgEK!DoJeEf*_t%{)mm$0S|zPK|R@;(u@a`A9_xfQ1!UQR08+=?8auu{|T6#vTh z!s=LBxQczt;GQ@?^3+kb3S;J4sSxYK!*UU*g{oH%ib;*y-+kp=ybY*AE=VXTQ((UZ zn>K7zO(!tDn83ENe?fXGrNSYf%O)_amAZqw-|HJTBi?w;ahESDIEnSGu~!yrmwsJ* zY4;*Wfu4#$hG-=bn|kf<$i-@xF>=n=DOogPTcRfEmhQQKa%gBedOzlCmX}m?;f{8D z?2T@KCKZ?a!veb}3FHkT&fK*u=V&T2I;|wH(jVCkUcL1LN{abc!7IFedHlU@p~8pl zaI@LQ=N2d$;oeiSQ283fB<0rqu}MiuF)^MCeWC!)Ikk86UfVJn^X?A#@)HXs}4rNJ076^2RqRj|JO=M#KDV!>NtcMf_l(dXjo z8hLrrX}cxg#rHj@#QmrHY3$24e5n_L9OW7 z#)K+X(Z?fvl>0q+3Ov@4_5juvmUgettoM$;X~Z@@(T2lwTlL^4p*(|4`-45#GiJvx zG4QpdTv6*J05b0`dSWnsUE1rz@?GufG$qm-1;%QKeh2p$yJv8%Kzewwu0Advw4%K5 z@RuQLxHknx!kMIypR#G_?xEE6wjV2x8Bo_4_tt}rJo%NOcQC>7oPmSdozJYhqPfx3 zSVhyfM6f=+BjmVAtZc8&35h|&W7~B#Z{J8idkW+8doVD-gPh)Dwd9^Ujj9d?Fj(>o zw~mvDegFsx;qYv=Vb_KJ_QLj%TWK#hUec+aS!$}bf?M5Y97+M#S!=pWN=&X!!J+=2 z$T&rC8&U_WL+^#l_U)k{d7l60ZylD9yEw!D$m)~&JSgGYC{uXMJHFCed=Y2<`C0e% znOGtzkR2}nz3;Z~m8sHPluw+pS~+J`*>o6`x``mNYI_Km1NZKRqoZH$0PJ! z7_S4d$O_Q)=nu)%#ttRCkJi}Dr*CS>%U{9hXEIeM@Pudns}y)|_3pG{=3M%OV!2Iy z-N)jj6&wfhF^9Q{LZU4s=y-Q_z7*aG=WKOoCm2W~RciqDepu_7;44#d$NNM5b?&m9 zHA@X%JOXuP(`JH4dn`(P@DDiwQ%jAjO}fCyxlhwtf4uSG!-qRAj_{LzYw9q%V|?0$ zB?(>`jssmL3ZWmG!*eI65v-w6O?a%<{Pg9R(l(61pu>pdrwr5qMF7}kRcWbn5vl?W zi?^bK(wnnLaq+;nKguRv0SpWMBFdH1dL8IRIc&#(YoLrhQQ5K!{Y3Ui8H?ur!uj#! zt`n-Nfv`Fyj(iI387-)Mh&f4hPfyRnRI!k3CI5Y$8jkEva)B?Yy?`p8hm;ahM&K23 zmV3=th10t4BQRey2|j}R+1Ts{vwJ?cda-_+rzL;#`FOHe#0wA2^;&07NSLe<0B#5G zTC=%hyoaS)E6i;JzTeZ+T3ShtR9#ku5fM7zG}-imjo;bmh?4DG)nz9KoqR{$Baa41 zTp%f2JR z^F70Q73r1hpn)YC-F0Zv?CUqZWpI~$baeU&-Q1U?+(9#rdv8Fg{a$Z9Jz%e^qN~v-Va5OO`cO7mfz|{{5ZX-G+&T=}ZMOdM_^yW4 zTWQX7ork{$6wVe&@8rH%gE)UFDyz=1t+`b2n@{NMYd^DUfyt7)urZEdc*Eg1EfqVB zP+ZrDF(m(smHs&YJf>}SkbmJFt7lz)oUqTTa(AV-v>vDX{ebUojs%iTe8b!JR_uEC+gSO%Hst6_2G0xiuge zBgnW%gICIyXOw3uCH}=)<9($vkCD_$I7;XircO>et^rp7)GZ$)Gh;f%B)~_5BYx%j%ob5qz=hzXner&K(l+Pyh;@0{5&@oM|J6YS3VZ@7a8uvT?;uK~ce8ZmmW4(7?voL7XcC^Q_>f&Gs=?Hh- z4w>N2WSw!8bEh~m#{5i|bC)Yz3|s;R3bg z>ZzH6T5W7O3VGDhhP_ZsySlhwJ=#Dnw{&=SZk^v@yQ#0Y7S^?D6!pi4jo81VR2|b^ z7}o~gSR07<>ldq}rnY@7DfE_T(`kIfL}ZZZv#*q+m3rE(0j3V^B9&ILEN?kyct2de z*>3`c!(-bUFWNS>i%KMfe-ZWb^8?%fV7As3`V9syLr5?9igGE31Wi6^wqlOlLReV~ zwwPXJPR<)~vFHV8dVcQ;nll7nVU+5L??m##OmaqA-Fam_uuGC`eRkibwh$fnz+}q? z134*4$%u!@f`P8&Vm7KXA973h#oEgDwOPs-8a$xQMQEw7Y%Qj>mEOM1qD~>Np6lAy zY~n=_-{KJQ>;@$c4KI5pTOaCalN6%gUio9qq)gq*^uEw1CTy=e)sK4~P*>@ve9B=N zdpfzfW$-)Qp((&n?@+sv9Yx=sPy0P79u7{ijRT7+Y&zEi_ z)^jbPJ5C*Sp6?VD7$BICsYHGePrjvpxc-GuYC$wb(!lpYtoe!WgII@&w9u~3PLw;! z(Rq-GrMe92d@J=Z^;67on0^1mLy&nnDcThh?0rH)jtG7us#Rh-@-=;jDbr$z`R$0* z4N`o5vJ>;iJ!GBg_Mux+5C>A^IP9wZ<)O<^l#=$ezbW08G&caV z-jxKR%_(7LO1sj{DRZBxwlCD>1r`>k&yad?kxP5>7^pnBz0*onY@4}k?Af4T|Exoz~ z<~79sx~=St%eZXz0fD_MSqz#1L7-_c$u7#z606xVVp12Z5Y4x8cp&{2sJTS7jn@$^4bX(FGWvdMibQD>)3de6uejR>p|Wc(#}sNl3K>!lRdH7;W# zhlFB6?e#Od^sCfUO?$rVx2WW4#Fh9qYqgrGsZ&G!zS|4eaBeF>wxqG#3h@#@6kT#wp~e6lP!Ob?eIck zH!`nf73ws7hxMfRur-IBm02# zwD+ecnQ7M9e9`4W*;cSXq4o7y&vN(2OB9WE0Zk2T|-X&09JX7{wM3xI`4owC@jFn z5IbJEn3(jz{Vs^7$gr($=MG1v5+I>%4&Md{#0@^E=WYlK?2`HNo$P?@dvt%L zbGuwG=BZHG?&+#_oHwsLv=A^9#nz?1qNsj1RCEEdTImF=AG+oV|}MOWM65=)d2nGnY)vmH!D&b$ZKgmvKRtI#Bm+MvEHl`|KsnsDJkp<bE3$AJLUGL_d0_9U;G{M`2^AxJF))HDPIvx)#Ei@exKHh@xZ*wjU@ec)l1WX zqyGIZM{>?{-USXB!QgghBb@`Vnxh6A<2+`qB^=s6J_c@Q`|6Gp!G5@KvwA@DPwo#( z2g#j(P;TX2@T1Po_5+L;jNm>%%a7HDj8jjCD`bt-gFGJwH3B7W=P=2H$c zD`$J_3isBK;78Tf)m2MR)3i4tpYw^%Rv+O;kE%7{u4Ww}6kLy<=?<|-E$?S3doK}C zw)&=|*M8=e4?`Dbdqiw>gA(EocvAHf4D!vp3BJ6JOD8+obQ|e%hnLpEHix^@+Hw&p z6&}+QV#Aq*b28*T^?41QXgdI*E&x}i4+U$J&DCKtxBbYl)b#S@%VD~q*aVV*(wQ?~ z+{T)}^CsqdKB9=F z@*JYF=D3%}y(i|638lOXhJzk$64t;}AU~4YSpHv}37TE@7Y=`+%8K-soqe$zwI*Su zWlXR%k{%JK9_VYwN#BJGtg*`%ZyltpeU7WYjfFAhKK;8>?t6Mdth5Xa2!qbCoBB@g zSGErC*xxwoW$5eY=SC~g>^$^2#ro?FEyE2rh|!7gljQ6>?-TAvo+(b=Eh*;_8^b@n zy!Qv%gkB>-n{exR-_>HUT56(IKLo(s!^_k8>#xYHYcGqL4CvhpiHX{RQ=_E?Mtv1m zRo~2^m4Q{CpZ3Zl`Xz~T-l|fkf>IYjH1+rup`$9driLwN7e{?f4FDu zm>hcH5(dtvZ6l)2I{0((MWW9I$eBKFB7sGc^mFQq|E&Hfkhvu0D z&S`@?@X3Yq>Zzl{w<4qjx^$$K36Eaqv9e=-iz?SK*7jk>$agjirP_HOFRi~)BqZ$c z0rhI#0%?Rzg5i92p3RODcug9*SV555={7b)2&I}L@>@S+Y6&J_%!v3Mu&w(O9-BH} z8>-D#5WHWwtTRym(cAq*D_OwSQNPKJ#(K&Vn+k4>Q_m4S z3a6AT*DywA3PUT?iKD$+_gLb*y!%$qjYp{jF`_ zBd8K`yuM3;L_HKHo(!NiPy575K}lT#y$w@I(rAj3*`X>gbdd3!t~6*&b3Ug8_Xk4p z7uyrT(Jst;?PM8`Bc`wsGqa{wYJD(No{>M+P5Mp+a)5N=`_%e%=fJ@uyUH7hZJ&a6 zXWoPZGpyZL>JuCsuay_6N(=_&cjnshv)Pq`eMfMBc69I`eAw(a4R(F!C^E^o+RWCx zq$ls>LM}Wj=NvqbSb{t6zYd7~TW9xZeJ35!sJl?_D@;5vjqD_X@yThiMExJ61#8r#R!&NU$V5UynMXzR$kZLe(rDIaUF2hhQ(}- z467(f&L!s#@)6T(!B;5@B@>ftJ0-XEGG6H6<2E3i5h^7Lvuo?$l|bIwwTExIm+ot{ zPekU$x5uy2HO=6MBH5pwfbE>=)qA(MD9Op~ay%f(5|N7?8;@%#CY0oslPB%FfVnMI zDbcnN<|C<=(-eN<$?N_WPLu^FPJ?$3HZ797!ViVd(hxc@AjNqg$!J-BT5c(-)wMe3 zNvzYhI`fDv?c&M66}3~{fKpvuKS~#7YwCH}VX{JFKWX00K{^2H%c0F{jW}s z&^UcvpHTh96yw9xSbnc&G|}ef<}^kpoR~M6QL4C@Zrn#Y^z}owIb+Xy-Vb5qCpO5{ zuw9m71b#1ovZ%KQ&CgN5Lv1}5#=pEhvErq){KmiorxAedHnI}T;R1dZzoQGYqn0Jd zUzT0Oo{|SVM*cgWS0Cxwd1P1aac+&euyPAaj+jq02*K1xtuI%c5W4?*k?5n}{x)-6 ziYm2Kio5m+?si(AE55aL`4i}kP6}c()j4R;+FEk_!ArilrI@{4cCEIV{f6z5FK65C zOv$c`zN%YyQ)%oB{~Hc#&Bao~I6(J9Q9I07z}qkV8m~Pk$;9{Q5%vRUjbF;mSC-Y} zYkyfmHTF3^>zC{b;%xo~yJGG`8>8+Go&v{tbbPA~lDUQRH_ER(H2vt)VP^-OZ{I>> z-!tT6RJ_ggq+76a(EWR?eiDO{g@ZYL=oAwLTTVITsn_+Ax|})pr8=WAukaHdP~{t} zIli^a`zhL1&bS8GYY{mQ>en3kxZAeZ~Qg8cA$IO1y=5`HVu-AW=e2E4*n+}P~| z=YRYvF;oO&T1coJ#7o$3fGXJ@P-Wfs#Cj+&TS4(_14#Kv1}BwAk}jHKR+Lo z>`{6{aGvpvfzdWmoI3iL?&P`MpX(uqiJc(WCR$WIH2clxL2ocTjIACtJj85|tJ2Dh zRE?ntF<(B!a$$eNu+hB>11TUm72j`^C00B$?_D1BX}JqQJKJ8AQl9zlWq?NL%{zM4 zXex(ZUp7<`6AUFdCV@_XXN&4Mtf$@@ystXgqDyVnbc!P%9V~mcht&IH= zr{7G(MGj1;9kJ}STg#0L0yr8#7jovI``C!U zD~TzFmi8fwm*l;cfYy7>dsD#E>lN9m3f8u?%<8Vb0`+J z9Q*dkah$CuQTI|tCEKxV(!;qlYl{>c0N81HZ>&uGZ?inNNJOLK!lYyQUG4di0LS^! zP^j%l4~Apzhw%q>6bsE?0YKuo@U6W%gg+Aq+riKNkFpyu6B!*D(NPDmPDqr;?JMVp z0}|}dPNC${=woj41*)KYNB}=CWJJ(a(Cg)ez70m8HuV>o15jk@H=EkvIN#$~fTkE& zO%z4Wv9y(Of1y+GCBjFQ+4mDc6h4XuFF7G$wq2&-YpaFa^zN065#QUq)lEmJ#*LqJ z>6y#rf(l**I zNlCIRSptQh1~8NKKGgY_00o|Z!}c{yGRU1yNDv-Dy(fBi#(GO?00s6n2aTA}D*q>! zf=|rGjhbsOm7`HD6!M)H87Td?SVdhg%L4=j^1r_l9&c}aqt@q8r|uT`%IVe+i&>Rg z0WE?JvQPm#4xyx1{0iN(@}^hK{f>ZeFYzJYHuJQtr%d;K^3nSuHB)35$u-bvL-esr$)eqL}vf-~>tx3dY@G5qYb05@L>4^ibSx{!Y zlOU+r##*GFE`DneQ+4I&z?$uo&=UIl`WpWZ%fi9#=6`2dY#t$47N2K-#7~dII zbw$@FSwS55ip5tMIs1lWZH^;_QypvbllB%5tfaMm9(%RF?yDD4^`@vM{w38@& z@AZ$h#L?RFZ=w7?pM3)Ya{t&>*LMq*;hs;rB^vSHDH#f>ovi!z)hygs=ZxV$*o>p9N!%fHChMs=;XZe= z0SkrgXL_T@=}o%{r4cFWk>RdC$r49-d3mV{yGExzd+Gx=6y<#(@~+t&*W<&D<$gk9A% zujKJg1+`&ZX_UsvbA3Y37gu87wN>M?aKatMkKR)ARx0Za#TVIj1Q|&eGc0dwKpeeW zm_Cq!FeR1|k7vgK{+V4(b?B@F(H zfVTnhoP>@G$!_D$!*cwM3#)@nW$kLDC{;+am{1UtqO$~fu?1>Qnx}1 zq=Kq(4r?pwE5Bz8;S>Eq75?Y**Gs&=fHmT8ATWr}iG2E0?#>D3uNXRs&(Q`t5mk1Z zFJJwUi<|8E*>s3Xo4_K)YhGWbIi};?4y7GNhdvCXlXUibcGM2FtP$b^{oXxVv*0tk zKFu%57{WpY!UWlV2z;b%PoTk{?0v^XC3L(E!0ya77oz%J&hsvqwywG$t$Bp2hxtg1 zxkeMFin^r-E;Vz9kSo&l@(r2ZAiOkUAM^865#+qIf1{9rdVC#{%%*ot$~R$ekz7#N zt79~Ui+82#QQ^PF^#NL!8k0gSlIPW59kzLz6S-3Qf=G)G40taW_E)l(7y3=gWJ zXzBO8I}u$nWXq}%5fHzR@z48V(+|oVVVoXUjk&nzoOm+%FUIHuSif`zZXNZ77Ri57 zF>=kVVLzjX9tGrnGmfu^zfbo&7Y3J)e{HpDmk@aMA=4TP8TP!dFTtcF`GQ6|l=EqA z9l+S`9UQ4fjqHsr?cD7$D<#g$v68sfNLa{^9C5DLc7)^v$n9vMC1`OnlDJ{D8UhzclAFvtHSEBfk) z-PGlcLf(T_+w(#9Y(qOcsJLr;MP}Objh8mjK_iHa1|6u>_BNQ%AmTlEQKNq&eci=p zV}>GyjsD%yx`(U&FdNLl>MScmJ#p2uG7WRnryJ+`3g`O@lM3f&h;fbXUDuq311!Ig zBBc&0uXK<@zn4@qDT8&J;8ObigaUqB4VGS|ue zuV?vAz&I8GVA03Yaehyx<8pxmJZnnp54?)}X8|nn4+8|eo+b^R!qn)>bH8}dtVPDg zu6+DUuR?`ZG5j-)m7pX57|h}@CakxQNwUJn7f$DcLW<$TCtSz83&(*R$$@O7MaBZx zHUFP+W5P%z5}@O%2M0eJ2oW?>{?(wY*k0ybs#5^QU(SN0^L^6@6*K{`7pvB*Zxg%u<^2sJjPVamQ{8HdWz@9icrZAl52)HQ(b6l z^^WMT{OOl^`*G{_`C$)74eL+0M;s@?{kU%YymTGeR&?R;3xWsb342&3I)mgEuQV1(N6)`%6oceHQ_3qi`gcz zh8IT)=1~gw*5t3Dk54yhG{N3mLMHu56{W1At4<%fDmY9KVorGc5i2`kTmv%aKx?jw z?$lckhcPe)Iv2`ZqJhH-jGQa=W=wuFHxf|j%O~#ooie~PuDHJpKT(BQ)dmq8QMMm+ zN#QRz$k?{^&J{A#0+??d!e3K$nHN}c=5c#oBl_Y!?7 z+x|;flByS8dVfp}<+KhqNypj=T7NxjVloK&wK_}YXYpwQxej$6OT{$U@W&Qrz3me5 z{DGL%RBtO$2CbECsctW?NHEo z7k~>E?ck-gDCs@np3+^Lw!%wGzWfIQ)5Z5|kD+@}+4$UZVYCVk>z%(}X|IHdm7Ff#I2s+c@#vossW zI-j~3vcErtNZ9t81yBe?2)Jp&N;*X{U}NeybhZsugR_HHg+5~-?bgL=V~p|i;#+$2 zUe%l8$uU22-?;mi@3KFo*v<$_UJ3of3bL4w+vd z%-p_1r`j04>DU4iUZ7%f4Ds{zRa8>yJ)eI=gxC8;=Sh)w`D*)!)0d2^;rEcBdq{49>1D&IoZ2ypLc68e{fm3LeaQzQlH+56e|Yx2-I_NF$5@@MxZqQ9rz09+>J-dl6m|X?kS%#MkPK}=!>zU3hZ$H#z|u(wRZ z-^J)R6%k+IQz0~1%nM)(M9vaZQ!`20>0Q%A19f^rXt}6O_Vy8|CLU1#U4VVePIj&R za;FTAM#-7B(_2l~T<Mbb=Xn@4a}~OyK%|5e2#hLIsWs`iVMcjNyEI32H~QMPI`J z^xw7Gen8|U4rPe$R~Ef*fE~+LmsBEqIy;H90edx^Tu!M`Zzas#A`7v~M^iZz3w>v1 zP>@-W>Lg5)h{N*v1)?D`#UyMR<06q`D!GS$KBYJMzj0k&@854o2sHP6s`<8*pnMTC7i>NZ9qB$u=T zbv=j>aG>~$FAQ;51hLx6@vZA?h(41FW(?;nVXeYkU457_>6KD4I5`-P6p4J zARKS}Hc*hV-JXTgIVoR^?Z2F3AijV+9TZyRR>>J8w8$98=>SLKGy#t#s8B#q-e;6O zICue;>$`&q48@SrIW!55Hv|)d-UpPZPGYbotAYipbs(eV( zKZVSWnRZ?~2VEWq{5eRD5k=*j!r*k{6Vf)JPY~s{7=nqg)wO%QvLAUE(bpB6~yp*Um77L5$(tc;17`a@50m*4KH8mwA z9%y#X3~XiiUI%DWBgULQb7qPlvr2RKK21be12$D2Wx1-EF+hW!G7Ii`U?>dax=-$2juzJJCCk^_U zjPL{nW#vOQV;86MY{m^$i|neO@OqXH8#e|&Mnqp6V;iPQLKcV(hnQ>Gj^ogQ~ z$nFj@ir4_697$N)#_xM}&A{PJRpeQw_0v#6@3Quoye}FbPfi@U1Gh0>AT+c0iq1D` zT7}>MLLlD=MiHt3D4tFT?i8?5jO2hPMQZ+3hpVHj&&^Y?y;f54V{h0|;&-4nK0Vz6 z5j{ynM%mzPcoEJ9V+$d%1O#txU}-syG>hcw@8k32=5rlCCnqOY_8f5+zZuZzUTQ4g z{yT5-6GQ%Mq+ryf5KQWd+1O8gx;tWt?!$ZZ&JGhf=kv()2RF{W=4e00ZX3~vFA#YP zbhQ@zo+<|gksiHAQ;KQLdoDjD-0+@0{R;MpoOWdD-}M%v-YN5frufG4-}#XWytDxFz1yq;A`yH&-@0NV zv2w%CZLURxJqAT1rcnDA6=qOIw-u*y60#U6 zN2vdD5(EuuBQPBH_4SRZMF{5tdI1=2I>~9*?;P}LF`E#3JQMNToqM%n`lHsJO+POi zwrsr~zK;S~R~KpiY*~(YGBFTbl*C*-{5$`Yu4Y6dU?8e#FAFPW?w!9A#848fH4y%3 zH5{Hrwna1$4dnh;=+P*=v{wDR`}l7sWk$q?22Qoea^S)ZEzeQB+Ka4F^r!B1Q2jNM()8h2L6-_RPIIC6tkzqyf6Y ze>QpxX!NSe%XbLcSwE-;mrLw-9+D9_6Wj|9p2!dcZv@p449M&zn)E?OSA*#>V0n~m z#KxS(1NNon)6!SG?RHPN7=HJLC~0X4!k%z0BPYiOZgMGSjB)pvyDX(zXz z8EZldTV<-P=})5cL#t1!_`OSk_;))U^a${PVaoSDpG=?TcLEcMqW3o4hTr*<_r{KI z`<<7#x%c*g-wC|*wQJA)PRtUC*!ptUPcg2)9){j_*coi)(3%}O_7rp8kl(mRQI0)< zTB~mS#-H3vpTFtn7}kHQ3Po&oulv9BHdoI-Fm7AXV8f!+D%zt^IaoEBW}~Y#)I6>@KuU`14`EUw z!;nQ9wx3~Zc~@Nja1ZU{CeB&TrDXT4&sn9c&0W7DX_Y(SksjblY!S5h^oGoH$3b*Z z$M0zCK^VZ%&wlk>=8NZ)FTBtnemtt*zQEISF@9%AS?|FRat#ySJ@C(s;ui5|7_PWFM&W~( zs@UQEy{e~Pwc^L`_y5qJ;hx?=!rLR05D`}V%WwGq(0Bab@Ac=s{NLa77x%iR(15Vj zgf>EZ1sU1+E)_eY&1AdwjEs%~%DFVqL-whLZl%TZAA)DpUT)Loh54Zc_A^gELbW1D z#F;=8=*Lienj(nT4QXW+ zgI028dOEl1rDiC>Zvp^$Fe2~~pX^!^>ZFDQSe@r68d)ST` zzlmK^Qqp9HUCZ^cC0rwVl>OG0?@p>;rL#ZjP&W3;Rd2yit{H|a5$=`;$;h^^Hto!}dzp-k4>mPhFw9H08JuAYrP#rAZhyosDCNKA2 zKUr8dKIq%t4_4p4oKyEO&eXS3)l$%ZEnw9Ovd|veC1l%o{KnICcXK=lUp+|KprDy zd3mplEo7UrOU9f+{^7KEp%!Q!vB|%=VxwB#gsM4JV{*@|7^8LIr6XDO8Yi`?6Kx40 z1o?~Y=}`ccL{yBhkO0H`P{;XeM(cT7ul0mL6CIn7z`Yfsq@%lce}bt&_wls*_wU!$ zDe|yg0@Lhl<+PC3E@IsA+fM{S=s0HV}V<9 z{ygXq6mH%yWa8uFvw;hcn6p6Yk$2@)F~-$nsdphVQ^dBNN=BCx>UIIaYss<{e&?s$ z&aET&VnU^|RQ<$Il|rCaxm8kn^i@@@<@{QeWo4-=5=$TUW>^hrIfL_L9H^ChHIdb} zUP%S6cY2>*-WHpKq#34~4zPEC6sn}OG~2imjd(sWYg2z#QCZ2x!BGe{iI2B8oP`N~ zjnXC9lHlq29q03Gg0aSijt<+Xw(Y}LkxCSm!OlSWwz8b&XO~#UKX-K8m*yxW_8{n7 z(6LOtO)PEk289=Bx%j(?r--B7Ex}DYHjve<|Bc(B&Kvz9&tPFkcV{9jqlT@IVreJ; z{IlXm&AQi0Q!(%R{%v`#jp(d)fEPgEBLL@6@Zlc>>xbnwG0=+h@$&L|@Zderbu5tt z4$s$!^}Y&$N|@IBse*VXEhS~!9jK2%nMs5`P)-@WOHHYw`H-l7ge_`)`UxF|cjeyW zlv}s*0{4Mk*<@eiDXN2<`LlPxUJ30F1%L>+s% zl)udCjz?O+n=y(wt*qPtzBmgrv*I+!KES0tLqY_APOE-qNzMx|t5j8f(RkEu>gn_w zO-R}t&CF7RCY0JQV_(fDcqj&}_jCqBCU)d3{f>8l{(Shzh5gp9*443DzDBodOkra( zw>FioGN^rZ>G_|?$Xd}F@mGHPe0}ea?M>aSZW#u2AL)LA*8jRX&NE_7zRh%;AhDiVxPJz$?`{5=`?pFEgQrgM%NOSm|&%pRF))8~O*q6H)cDw^+ zLO~w{^SBTCWn*Tm@KDXzR^`EewM&xWcqmrJS&|~6O7XVl5UGFpXgobB+26y{++O{- zva#)4U9?Xww|*;Z8P43k@tR`tN!o=4Ajt?&KJC(kuSY2}A@-aBos2X8e9;=7a__HO zbciQSZe%eg(l#BP3poi1tb&3L7$e8cB6eXf9`n2M-E|m5VziwQ*$P*5w_Cl7l%P_Ow`KHffP0M9`WMGA@eD3!5lYsoNykZXH|dJ55+x( zSAMDpei_ND$ikR@Bl|zg(=t^PYwpOX4jRqeTRERm{03=ZthwjTI%@jO3BpDsP(49i zO^6h1hZ+0%cwK#ctYbT_EDs%M7bsl*qK4|Hb#3y8-|Qd_AX>oN{H(|(!c1iiF5023 zD=3quUafxus zC&{X4B~N0myg}l^i^hb+X0Zb7jmLNc42eXpohPuMvIA-MO$(R@!p!3Po-8BVMD-i# zEGU@E(WE;jfvBYho5!1r3ms#>WZq^hO!Jkh{B&Wkq_Q$&#UEt5!hhp(a6_eGS#3Y5 z<6hQm6Y(Y_f3_f^>gz!(=?8~}{ZoJUQ^xQqJo@t=wCrs;w7w+>^4TidO>uJTJ$e6+^-&Yq7IyR)xlE3lg<0yC+(_#3eeEyJ>1 z|6?r!T8quse_eLtkI|F;^LI=KS)mt-X-A+hWMnTJ;MY+4&vosUQ;W+3|A+p4q8i8l zM96*}0r1D}k^M&Y1J<%Itpv}(onA?MD7j%Jwd0G+-U!C_l*F)$Q}#-b5u=y z!Ie)=PEKn-CU0bLb34Ka!dYS@kFJhRL{wBQ-*Qe$6+avaNQNP+XNd=_&SGVhjN%^q*v>2)$;e7hq4*~pE= zwyN#6po?Ns3BFIVc43R{K*HkEm^7L7ya$`n>)#W z?Y~m7Q*Zf+XH1NYMGq#dk80bG`yJ%1iCapkR>pW19JTwIgcateJ3DkJiM_UN$G<6v zWoPWWtjk!#`b~k|eiM8S-oAZXOY8TFk*&^l~gcRKjcO!W7#t|DYt}1cM z@Icyy00-*gKUa2t=-SN1eq);m$WX|@7sakg8I&<7OTj!DwLU5q)reX{J;RVO9>Lqq z-CYZIxy+|zWClPvflRa^L3I@R*&`}dB_-n0(#B{tWo4_N!%%YeI?9c;5KuX6p`>)9 z;a66k!|ZCi6t(63UYxAN>A(c>hFWNM2y*S>H&#y4ID%5q$iOlle9~)UU*t0kKOebs zBSX(*a@eVf&eM`3(SO-Z=kr999$H%15Wt zGi>e8u4(AIXV0D(>14uNL{DPWRuRU2B=~N}jRLSLOX%$E1UqUPWqFm~K(BDOH%>8p zRCn|9+d>&i{t42Hl*W{k4|q)4;(h(OxzRy#SI_@_9`hWQ_;~8F>QR} zUzKtn*bMG2F4!hv?Y3MRA&nd4s0R-oKu6l}I8~sicpp|-2N!?d&&ulC3#Me*7>wHb zr2?ZDpfF=Oc<>6sb@yGS2EzeMy{a*0*jpw-oRM^b!gtrCH{-kbxHve*%8#hdVhh04 zGm@*#C?_;GN6`WMBBLk&MZmPtvvJ10DmLp1xZu0!-JP?N&h9dLUUJDO{fYDa9^2FNDL6x?9HM9+Z<}rAkUFF{KRew}OVUZe`hl7oI3ZC`Cfd93N~?ZclUpZC`{O} zZ15|>whtH@Bu5P}65eHr{^&-}zh0&KEG+D~Lh%ElrxrK_p|N}NA)~?s;2L}O?p2er z7j%Bou#cYveMvL?Q<*1QZZ!`wGFU4r)riT7Nx$RhM)JAd(0{m)ig+a>;8Mtx#{Qzt}i4Yf8Gzh1|) zJoo#>!^5ACKE!(1jC8e|OnN-l$M6{+%YIQ?H9QT}(n@YTddb0vJ(H?lBC(+!|D~#L zqJu9A9IGJ{_Ja>7(q`|BEN7pb4#u~`2h&UMNntd;=SZ*b<%*UeEaUL7nRfuB+#Y8RkMNCV=fz+}K5 zC-`MR6^?=-2O?u!H<-_nW(dKA{^#@=hlEN)Y47^oFP!OoKEKcRc6v~>~=i_l-k8zw9p{bUOKuNUZ zuhQmw*G z1xuK&@Y$_Al_#Fy3BIQK8$C^MB9;5<2QwIDq@<)ST)2QP%*x6N#voQkRBj94XcAR_ zb~h;k$c2Wh2w<5d%t3H6@9}w8QaDf>`wj~=8!)IR>YqJ!?3$x#m9)uyTdgMivL0l+ z4A>vvW4?@y)HCRZ0KS?*Xqa+{kIxPOJd~I+n7%zd+lt(ZQaCl*F(wc%V4_AGx?W#> zY{FyUl~r#*(~h=|h%AVaE``|?UY_p2UUxMOk!&lY8n$Q4^p#M$wd>#m|T zKnWmNp=}v*X}IZIUs#Y-Luns0UEFc3-uW{a{k_iL|Bas#0s_yYVW~$}xcIlsxFC7@Y^GoGkFY4TxMowUg$eET5H+HHo*o*WgTsnvK?6u>IKj< zTgJx3Amt?feOc4nw{M5v7ic7)iZOdT4kRZwJVL7r6@9p*&X-Fr(RjE^1tHu`A$7LtdWh=v$`$h{pm*{T^% z(`|UUV|xa-m_*(G@N8Eu2EGQ;%c;mFAWmE@?>_AW7F!l+-tkPZP80m?QBxv2a6M6TWS}&kpL9K<`99F^bCUajF^4mx00UWd8S;#;-ABZ z4|loFKTbPZFWc!~QC0U1vAgl`K8w5~yY!$Za}Ck=yw)li6T&h0oxoeFPmTl!g@*HI zo`07bCeoHM|3z@@OhUXwnf{Z8ryOge-XFJHd;4Ulk0!3D8=OR4_^Ey&h)eaTBBh0& zV-2rURSkeSeD?U}@6ig3VO*n`Zld8aIt?n62#>tmCRHPQMgMOxz5p)drE;xtg_mYN6%NRy5w6EK{k5?kWz^d++mAG+25&de)1yAN zof$cs_83p~o;(`F_b&_%E3_wl#pcW*CkohJRUnGiltrfH6O7Z2*_Ub8_8$_Wee+Jj|~QjAH>6HU6!dm z{j*VNX9T@S%gEh1a}QM^S;Qc}wopB{tr_%TVZPn8_K z)hiOvJXm1<&D^V5#8i5GZt`JQ(rV63_TQd`4wfioJd!vR^OM7V+7WaGrw$$7=H+ld z(1M|%DG9*cF^9Y)$l|%>tgXm|z;3H#6IV<{gbC1;Y?_Sv(B2oJW@3MG;wO4LO%g(}~bKQAHL z%G;!UgVdq(r*ZKu*3WCy<-b3Y#eSGsF`mEkuGV$_53llggSL zY%ZsV3xrQb;xE!W50DY;S{Y_xG`3=lxEjL`;t(KpOTQ3kw2o)1f_ za*e(a&>P`KI=hqLS$)VHzZ)`R@)VTEQ6ce z{#8nAl15J$-MG~}$c}fb@qnMl+DImCd;iC>>WW7dl3tY3xwDaMD~u%n>lX)t4Mr>D z^M4WUN@u?R%BV14c)(lIFe1s@*2X4lR=ecA$y<%ci!6R=FA77``-WS@5ulfX$+MT@ zje}f;P_s}05)N9|6Z`HJFBsk5A)v}vQiYpev7W{H3!sxjy=|Y)M;%?>SQhAO^COOA=w6y{%!=nMnT@hIeyoPKM*SpS<)0DtN~E*(R5 z$Iq(QU3ssRoKL=}wdv|w9=fV}=lr`~kE&=R2!$c(C7a%Eacer0Z#A#hwCiMlwj?VM zl+|}+@5-&?Dj)OHXLL{AS_u4y&$OxHqw-%v;!dn&L*>nTFhYo&N3-KKR+&RznT_0ax5m_%eZ654)`bfYof1j zM?>50T+EUk1EY9p2SOWlCa+IP`RwULv@xJcV$rw^p#f-J4~UXGNNFH923XKZIW<{a zgnL|Px{++8VvTVtDx1W8VG!dXwowOw<$-XIa{lP3BB?w)Um5SMd_> zuXWSxYS?zl%gbTS)o#s!=&1E+iu#PJMn#CW$rBfHq^Wrk3(AHX3G+N(d*Aa7I_s+c zc~9{!ts?_fqf)7JXgNs3QVrUc`KYi_$AoXQg^P2&Jv}?cPm*||XD>zce$v;}+jZJJ zQu}i2+-8M(qI8_6%(xewOWw#G-=m_QZM{Vi@mEU$zj2SV6*WGjO50Vm zVv&+&p(=a(T1Us5`)1}`RShpi5GXXy@gH>&4MWGMs_9YHzFld6m+wf+e`Syj3T9*7 zD(5{j`a}|dI*ou;oE)sI^eikU0HJ#~e1xwmaOSP}+(Pd#X37H`96$~)r{sep77=+r zCL|Kc9+2x{h5q=<7h*eBDsqVCADi7(K5eNoTm>+oL8BHxG0tWA^(kVxG?6xV))zD@ z!kwvmY_)4K1;u5&uni*qYe&Zyp_?V_PJ&?Rs|>RTTUs8Jng+l$MmIp|YNd3)R6A^nEk@42 zUDZ(Ecy#eftCM4V+|(FkI<<;Z-3Q9cT@^TWCfNf(QW4J(pm*8t7)zCNCw%^rc_>VJ z-&4-*>IjFlMSAz0sIr?kxUB3~-sI{VPI|XBbQfzT@UNJJN>-H!EIv%;TzvEsnwH9K z9t^yvi++RX3(1o<4CcoWcs7eHXWj|kekE9wTOSMtv+bdxvM06|^eNljwjrrF91?t` zYP~8>OUWAB(FV-T8QSgD5Anux_8;ziK8W20!Qqb*Ty*EnpF%>?R@^Jc*{3pd{K`KD zhnl3uWuKa>IzPmF;LuGwDowSQ+;eufAzupXvGSwq!`#{k7JYtdP=nC!^|?bLgu<&P zJ9to3RP@0n68~AU=Mq2e!k#|CI_&Bl{ zOF}UO>du)bizft+vpDY)`p1NC)Ua}KD@_u4T60*$VI#~mmEvYa5#zgjDub?Turpl# zsb~y#xzh9t|M{GDyr`!2XG5sSZ^@4cGtHo*PE(I^Ybu1U(m$sDp=P|S%^S7jM~}SG z#y6W7b_4Fd^ie<5LPveM^@L(WcQS32ve_ zsT8idzmu+&9qwv=8IE#Gk+b&&U-dokP;M^?%2};eFHp}aSHx~xGGV3tA9W~7^!Tbt zMRoNyPWDEj!l}2>=69s;M3~siQ9q43-`&y=LEtBh7h^Jc?DF*It~UjQhB^|#h!_QN zl~QB^y9$=yoO$WgGj;5$y`kbZ$sd=PXlP&%D$7=}is=W-{8(W5U{&f_$e1u7S+cJ= ze(KN9=IeKCNB10G&6z#!J9C~CpAmSNeDynkQ!~3_%VzoUc_RuBxwP{G?H)yo_g>GN zSX982%u1|td8_p5;Y+k)1Pq2=VE(ka`qA?>V&(U1dsk^}qX;Xp?1#7p-M5oTr?r3I zDS0^)6FMC~{l(23r6c1RS5Pg%IOfVq z97gIGw&WG!LE%~^OnnPP1~EWgFVXP|?nzDG2Rz0~fKb7qBHmDB;hXrUQ_6L;7w?w| zg%5DjvCf2VNn+?tb*32>RoTd}l*ee{sUym31 z!QD(DyL-CRcsoZ|w#j^=rH0hU&x8in`?7~v1%n6|yKm9l0IT&)u{%0ax#K#6wI~#q}gk0uq&Ys1lVSvw!j6@uV$z`3&9kVIZ z#q#`}=*HN2ohH7F;w{akIEjITR52&895mE-!)TiwBmoPj11>3lE89bWB~MPF7nhck z%Tg%+n8CqoPWk!NAq0QROVOS zz#0ay&wh=iLD*gOs;`CPuVEyX)@aL*_J#5by=nDeMljPguKTnRV_Tr>-W^faEthj_ zB~5Ip=lH6t9Y2+7s-Ar9fNw``aT9~!-CQM|AV2-eXpTWFJy)DofPNmh z(sUT3!GZ8K{bNvnsv91;b@cMb8?(9N7^$x-9~zb$5)1OP2+oyw?TQq+y8iLJWLs_D zG{;Q?NGu4BY}%QUPJyGIG-4*}ig(P!~hD<9MA{kysQUQ{nzmsN&M73uD|J}CT+ zQepD(r2T@qkN%aaB~+lLt_U^A&%qZEHKMEg%NL_h0(Xe*^xod#JjQikYm}6f^t?f2 z@*4mq{7az0y`;`rUN(VPktZqMbfQa$Zuz$O@T9KZNrdj!lz3u6`A-FP!(v6z!kDbe z9wy7Z5YOEFE_S|#vh=6eIm)i|pL2`KI-c$Sx--Rgp4_b9u(>$(Hh;nEOqs zN|CE88@jT0r*)1t)9lm=x6H5lG`jx)Z#H>Ft4@X)PVVDlrZSIRFU0zVgd{K3egm`) zA<$dlMk0y@=ngRmP2j@)2%USPBQyZem!#UH79rb;LZVY)5LXM_6Qx8BL+TRMTTIYc zz)`2VsAEGx3??R*ivi-Yl+*awOoZ`&NH^h@Wg54BN88pjFYtq1VXsO5ffTUSNKPqq zT0Sj$6qq6)WU`OA-<-EgMkQKl2F)t&Ce-G6*lN?jAQ|@>!XcM?=yWT%e@nwqWg~Y!lG6{5lKz=zzV${f!VM zp_i{j+CHi%R58eY1S%7l{h+8(DG@rJ!ht-!(npvEXfiPw+_gysI;CyjX{(*akItBn zZweNw6lVR;UWml!GS1^S&?Ic=b ziH$f|mUL*>5VtZNyy!Y>(>*?QZ2u=l>-c*O`ztpZo%;m_TG)(d!DCbs<^DA-)T8~@ z-PzIZ3m5c9)#uMY>|rc7Fwj@~-t>g}`NbrF(_!-E2b>S`j865bRlMS3B`6VK?J4tAy}&X1(J+(+N;g5T;DMq|0QWNm@d!s4>c5G{ zX-p{|cC!#0mj66G`5YPeOTPB|1Zbr49Y7m}+$s=^t;h!Lv0?9fPZa7VnLmH)XmS-L zC9W$aAFf?@ophrVR!aZWC{JhJ>N2r=mbqSuzK2V7;2hPe)0V$H0NS;uuO1B>Z|U$D zGYIv6M)b4#j(_WCHM~89QksX}(P<%G6N>I$xilL|^!ybPF(?le5Ucgr1!Ug?GRbs&i_e5c1tfk9Ep^YQ%~{xT3HgaepR^H<$6x zC#B(#=sB>gbfRqAwr!0Jb-!cVI2$98LXStm&Fz-2+6s%z_h(f25)bKby7;46z;m9< z`~uR}d93957lCZSZs%JMsk{^Vnm!;#NaLRj9}e>M?Y1@xc90ai{)0Z?;>f@;C((|biHGGB+sotL}8fwNz`8&;%Ab_48 zP}%6buqjpIV8opPJ}xW3E09%HN>Z{^bMP(+u;(t@XYBA-48AZk2`x_9ef&>(yx7;3 z9kG94k^~McarM3}wsNeX`GseCOWM%EZNJn}q4;cM;ZciK^OI(grA1lEB6haf@OVv= z_lJ9{Iyy8>_fA9i0|v|(0dP$_#bOix?|=LmNZsugTJSem3M+l8(stERGMsrJ2uT8y ztlFyF5nN<>pY935`eQ!0DXRA86K!?EH!??Hbfhggko(bQ+}r2EB*q{8?=c+(38J-> z-m1v64S(9zbz6S?QR2VU8EUa(>xLGK z-@_6(A0KbfSIO2gI*{O#GbA#1Zy}%`)n`(H?*8E;u|G8RWIq7Mom6VXPq}q3u=csr zS8x5oS{%OWUh~bd0Nl&Cbsu>ZZAYf60>N7B3lSfq?3Mn`g^Q8@=t18~QsU1NTfI*0 z-F=bmQPKCq|Am8YiXxF{|IdH%O46mMf4-@;Bh*XtUCYSgDkfGzCd%#VAx^W{*Ly~b!oxD)L2Vv%4_@Q^#f%atQf?tDQ|Y_PcNW}aUulI%%mH+x4u$G zVAX+KHhe27>zNfZk9T;O2nBcU)u7>UH#@c3`BJD+3%A(C*uR65w|_egX!s}BGvMaC z`_OqYn{4d)viaIZglj!(x>OG^8@uPiU{15{9_uOJMnO>(A#BRQQw~wEyu3<1^jL7< z{moaJb*um(u~5k6y6uy&hro=uOQ(|Whb`A>*b92{gUeMiR zU0sQe%H9G-+w}$&1?lORzKbe9ER07kFZe9a_+XLk$%29mC#4Q-&_Z{R71V}3(Iq*c zP8*Ig2njf^sF<*{bt&`=?lHMk#F6)Qujq5fP@symcOj5(#64V-eCA+Uv*}|+*;mfK zv`cUM*LGILY_4_RzbokB!v#Tqv~Fswk}t}KXORMjO#nj>XXjLru3l=|yIcIzS?#yG z^M^9A5!OiSSy)Hj5a08*DI>P_Pv107n=|mUb-Le)#W`VS>ae{N(YD);yzkVEIg<5e zdb|Urn$NiIGgRs+-^zxibw0>(%4TE0EzfBk@%@ypw6TcSG`saxGf!o5_*%>CS0nVU z8_8Vz)Hkeh*%2-ZlH%aI|71lp$8 zC!RQVTc90kY8B=7$pu=_{ArZf0hIu<9I98WvmuPfZx?h%Fq|qXa1atQAXWONfJO%) zYBGfl*}}rY!C@A$y$3a)G?_nK{KgM5E|zE@2|uTNkv}tuT*}CQ}X^& zF&O}y!0ct{GfaZU4fxNmTI6zDL6hHTkWq5cN7$~@w)xHPzhlEu`IFN(uYFwIMy)fs zjnosykf&INl(V7nX%(Ih7-xYuy=@1{q%i>f$487Zpi}+Vv8!iYK{tUrQhCk1UE6gX zyUfbS(C-@tF=UpxTYXOPJ0E(Hd{@P92R~OtZ8n)*-6M#NTx@DF2GS2P^s9aI;w(Hg zpn*Lz8^>}jThfm;IiX=zGhD7Hba1s#TlD%IJiD3@QCgdSZ zXVhK@Tws>ZqN}iT-AYpT6N}yAvTp3FrzbW{42E=>##dLCKPe7;GwaS+bXwX)Haaax zm}Y(|DQNAB!r$mx`z+_fO|^4aqZ>zLv*$h_`dd(KfZ$!a%ovVTma8^%leYh*<}+%b z1%gGo+FR@ZY0a7!CBq8~pEj2tsA6$lNG6XAjO5zQ)LJgo3wlk@=biQcn+g14$A6f> zHw9S!mkIo0MJLx1xTJp&yl*=e2^0ALNbm*@1pzgHL}V8$7ykmxI6xD6i$XO=g^jBw z{3JolHes$n={7>jZ$=5RnW-m38Y)`9XKDFkoX4B{EHi;J^!zH{0Vq8C%GxLZXd zOo#+&4Bxg>)k9%@_S0=eCtY{S11AhuKFcgpNIKjz9(WWv6S*l2T~oU(p10|y|u`Y9+tN(Q-^R?3+(pDrRP-=Jp2;Vd| z6^yu*bFPPS=zb)ZIp_KYkFhn=U0l~(g~y#9PvknZ+CI-XqLco4+8I1aNBE9aW4THz+Lc9UZ8-+I2F zaUN_8|8&Gm4)SQ2Q`rMgG$=fl|@+V#u$mcj_t7)H})d69evgC#`N$)N9XE5 zFDg#_*GNTevPvStp@Z1T69lHxUpZeINIv>D0eeka$xUV>N~$1J5eJru&W#k|L>=WLvpf--_z zW`!ws^Hu9s3z~&}0U0-{Y68WU?I88qfwZ0W-~4pA8gE<iuZUWGbQ=MAMwCn(kEJvsL9-n>^+zG()8TR)^{7V53>Q0N zlT4%1nKNM9EMD{{z%7XO3JgWk*guS05d%&wNmk=m?7#6gMvC8cizZlke}DhRth70u zNVMSiXQx(D$PxSDhb-g=G7cA5c8Mf2Y*o&^f4VnOXO>KVkF~1L*25!8A^Ho+@9VzR z)hQ+CBiJ_fv*(DkY(ntU68yb-zR-ImKkHTA(RUzBEyoTZ4S0ny-&yx|GsXv@o5?21 zM}l89i#_Jc2VI|W+c!J*$h*re4-Q5;E4`P=BNoPm#BW%o?>L)cEr>(q+^9fq22d5_ zOk&Q7s#C%#P&gChKGk_am&uuk`IJHXp%z6-MB)TpHVa)-PwUijUgSCcb=3rf1$)O= z{FdE{?k>`ycV}`3T8_yc--~D7Q|{OiF6=}^9TSBMMXKS>y?Z%*#%g?=HN%r@!uuJW z#B)BQf4eD3WrE$hvXm#x^?7?lu?~Wt@@1ZZIT<8!VCn&;_|T(L}#($q`mbL z<*Z4j)J6}5cZC53zgLa;eo1%O?DSr@-MMj^p&u#cqm)oCcOJd9d6Czal~X{2hJRWK zDrO6I=g;96mpO~265@a7Szhkfou90rno;ks({JuB`?zt~T|Zd8e2;vT&MN06;tZK} zEuA+xYR||s>r(1X&cW62brb1Lw;VRMT%Ci<+gm+q1@Zu$+rCRcz@fBTH%=Jm(ZP=T zvpR)F#Ofx&gsY(NliQ>(ftWA{Lfg^Txk1dD^;t;PwySZ>B4tyFP>S zSdjJJm*N2`r?)qd_PGn~UHy&zc#C^Rn$_9)GsC~t+q5@8*s$iUqkxWpCd?FtZ%#ge(dTpIiw8W$f$?s$uL^f?-rzR#Q zFnR_>HhLuZZ%m)wv$N^U<%39^n|a{Ltd-> z8YhYZL?o*(DFi4h)Q$VS*s8ASvSuAgY|Z(vuWMdUhJK+*DZ@6Yo<)bCL}QuSie>+$ zYVOk9jDS;le%xLchHu1EsZ_Ai)JCrGteq`5$7nstA9BW(xqF`*XW-jgsnm~luekd3 z(tbi*PvYLvzlM{imW;@heDle&&tYbft5(|1u&tD4d3N~AVtrr4IkDwBp7?Jenwv&) z32%)-CSt>x)^v5A%Qo2&_NLR34}W@fXTMEdHRd2ZXP74Z7(?0A!mFyPrlzOq_$_E< zt4m70O-|}hcQ8s$j&$j`h;G>Uo`%nidOpP8Uz`zr`}M`oG!enURNJ@5x#-L0PRHFm z$?4#q{k$y)s}$MT9s7M0kf)TM)JnZeJN@)IH&N&`|^{R6$xC<}|_Y^t~w z+mDhifY0*C?&=SO5*{ua{7>bvx-BmD21?r|ta398C0_>BrdWMiHruC1S#wgN zGxfo}iI_U0{dl{%c>j;Y_v@qoUb}iV$lzNtuslDrqijy4*kiR_g(p6Q&Uo(Nt0ww_ ziZow_)}wRr6U>gcoMPe}{UU-Jyx)p?d*8UR+I21IYIBC2u2Hw6ybYQDQn>b%abd&EeQi=gYNv%^F0WWN!CoG)*M-&#|bauwmaYWQbe0 zZq0Fz+9It8&LuVyq>%m~_&xH#`>@z!k;H=s)M35zcjugjfqTbEOd9@p(UNU?>?}19 zz`hv7vIbxe6O)tSeCDASUbOXE%g`8|ZqNSSFJ8R4-B`LQC5o*#U6|gdwo03Dg@K!o#!ujJ z;|ALK>nN8SJgwsBILp3*9ft^Iccf__ule;Yd9&5e*6QyF^qJk%seekb;h`D@{i< ztTG1*RT(&{1lg539u7s!RI+ON*bCM zcr!0wicLym;}%qGQ!L>YPaZr*OG*frEuNi`xpe6pR&>3kRJ}{%ij7k0Yvv5! z@xHj{D}5%ssDl_zeDZemQ)nc6L*LWet8}wphodt+BIuoiuS|-7m5%f1%}N7^<~NFp z-<_%i%85^L7||aKLfa%d2R9dUp+){`C%8K=>&~2ZAo(fZkHa>MR@)m{UiljM_3+YI z?6#*Kz7sPb?WkSb2=$OTKtUQygeDCfGUk2?E<4@;Cnh-ir&F9ntpx) zz1Ebfmu077$oeFIxplMZ@`#7FIH+H9bAO=cY$&yBLog2!FzV#aL&Q(fw7wvCJjv z?Ns58&uhd;S2w(DyBU3RkXKWD#g)CLCrIbnXxD$YCv1{%e6^8`A4tB~>*60*|3kfK zGq~MPh4S1{U}puX9CkP0L#n+p#1Xq9SNC}2SV4z|Ep&o5Uk-tJMQI!tD3e})uN1m+ zqRED6YhlywO{WyjxEJGaY)_@SMfs%p64{y$*M9l^c{;@KW2`4H3h(QlF2Cf5(Fa%5 z|NhffZnKDT2A&3hq329zrt|C=+Wzt6qw!Bo3SiR1-8+`Nr&^DWvLF6iA3D+AGwjUC zEP;%ckGLPGx)+B%6moz(df(`Lhu6|gu@7jA z^&RYjeB6j1igfysHnsY5ZPrH9q>S7eQqq-Qf0=2^C|q!@-OxLX!A`SV)b(MtV!+j_ zS7B)xOJ4IH3p0TQ_4f6dZX-HDSx6>~w`C*E0#nMH1VozW{PPz21hzUgxfEQ{c8YHgRco25|xSUeAXh+UpAA0HnxvoWxO z1+!o!np4nCBlw_q^H!Fh&$vUhR3@pf>*dRrC`BCVS+}bdLpww>PuewR2nm+I6aD_X zGM(kz#IBi^>qe%+M@8e8O;Q$Wx<`6>?g#}AE9vUa+Y|0oq4WHwA;|_W{S4MOh&$TM za$t542tOs_AFv=&j(any1#_42HY5vT!ibmeHi~3Cc;LW+{rk5^EL)DLa3k3RFRbTG zWodc2X+u&iaPFC%@#4xV)AKct=QDR8&2%-JpH?kzH$r^l{7teHc)viX0duO-X5{BnVAeJa#4DirX$5E#>IVh)uzPK&dN?i-r-cXL+G4Tp0ZZr&~0)8!sO ze$XX^LbD3M&siA8`1w`CO0LX&6(TRv>0OdOd)#SB-`5?7N~y2x-F0Uklgk2){dGq& zlS0a8hS+v4e}8^a=L!yGT`D+B(|p=*qc?@&SjL){dFOuVDu%nnYDJ7)vEv!d*txjl z*t!Rc=s?rs!I6a8h_znPI4nof~IzE1JS`FR8Bq1$th26Xj$SR6C z;CWbblU8iO3fn}k)_2iRPc)-}KnXzfmcOS`aHEK9g6*5PZ!?T*Q+6Cvgtceg=FJI> zit=b-VotWdISX1sg4iqe==pmKE~Jz2u3{I2Py~r(cN~+E0t7t@o1*pyNaK<{QdLr= zS{u}W{m1#Ss-#HtL*1!(HzlRVfNpA}%MGR4Yz~comM2sZnUP?^cJi8RSBaGgWPzr@ zZE9$z>_II0ecEaUKq{_@Y>&`6`MxjhG3(|$RZ7#vB^uAWJO~Yyu}%0IfnXVbe{Mvm z45UI~86oNxp})=6{XIxU1k~)&mw8R-7!5f#K$uDR%n?hwAkF zxcNio52~&IIy((2I%~~Axd&0V$&Kb}nX1)3`_@--d-XjGXZ%F>{ha)~89It?aal(n z3w{fW4>tYyoa1|u6m5FLxIQ8IW)dZ*wp=rnb4sot`CK_AiBtdUI?~;n4Eu;b;K8+% zoL8cyEux0x1Y22VuYY*6*sl}XYe;q5)6)b;9PaI8CXeFi!WYiJ-`-kSSO^+G3j$wk z$uoP_4vos=DkLrM0(6X#2+~8N%+?kcO7)-6qMp zVZ(+Lt-L9)kv_BnV>6={2ez0?Y-E>ZeD~%J9OS5l{ZIo)Qc_b;;3E&jX3Ttu5wnKy zA-1rYD8h%AWSDe8IrM_E3OoP&Aug^ADE-Xl&=dxk1JNJqg9(>7l^UXl5Bs*|nKZHl zJ$XL7vPBcy@g8C!V1o68x#DUU#{MmeyhgqsKAfkdtAS%*{l+ac!CFw<)6vkRybr|L z+T&e!^(u+7Eb94%517OfZ_6Iq*00~v!bMFTlXLs%865?e?lBWn`z=8wLXH!+J4x}m z#NOyGAN>S@xeK|SIt{7~TaX@XG6XDq+wR@w^|WL-w}k+(aVN~p&(|9)A|B}6i=fi( z$7vC|(-DI9_vRvH=CSXx|I6>eN@C`1Sb)aNy>Wx`YJJapNpspNn#=8n$<~^Gjx77x zq)aPhP_&)oq*;}fYrL1au6Qdy4WmFMtw5(xrcq+~^uKG-f!ted);)3_0X{684jxPK z#;$fN{HbV$`~-M;0~2scPshvbSY(~u(L8?@iyw;<2RO_(jR<|=)F9;t{MzZhxRxRK z)uvMaaO|`~q|=2Ji?a0ruMMs4Sh+m)?Qcw_nxCmf)!x0?WA61`h;!S&P677?$aEZj z1Tq?)+m%=*JUu;aIITu3ls~<1$a^>X{%hB+5qq>XIR}!?K5oPMPRV*CfGRiOskMAe zfy4S{kcudc{tTO1h6(!_q`U7e@Z70D_tQ$rz3Mq;0C98JX7`0CXwlxoG%(W-uTIM zMaiBf)SgUeOIaR&nj}}dwJ}{)8iZ@(q226%H9HCM@r?WT6Bec2yU?`8hRa?KcPlO~ zCS>j)#q2JzX2sQZpDZHhntNz)@1aG6T0{SsupoELKbwL7n6BA3OmR6x`vwO$M~naV z;v2ClEcTn>m&!xdeaC7$Uy;5k{n|5qSzA_a`tiiqu$-BR3sZFRXEsEZGP1Cwpi_bH zT;b%&b!247(gSE_5b0Y-dCKA3-E}>2YPjH34A-n)orD83^{j~43~(yZ8WK{xU{YY&I~hT)EeWDm}%G+i9j@di@T8a*C+Z^P9CKVvcS11G*MJ+3*+*$W4@`H@|<3j zX&f^DmTH7@-E&QOwe#-m%1BYSQv#w$o1U^pJ35hxdk^_Pv1)9JuFECiBHJY$pGwtE zn#9Rox^xNJM5b_cdE#^-l6(U>Ihbi((EcDmar8y*OLkEf7b^X}n?7ajvvnKIlypSL zk&fZ{ zLA9|j{OqT9-&Z#X1z2}!T6M#8BYsQc(0kkiN^P;%n$Wu&e^Kg9Pd~(W#gjKbci_$o z)x*2{B@2%6Iv_{BG0jA#j7KPjW-8^Q<36;U;SG_0_QOJ@byuRu=E_*plpm`H^0lHv z#}ZBHJeG|OvC%z!ea(o~!Bt*=EnHGPGhS}by^7BPv;sS(tJnr?W+TFP*3J;-6ddzGMvyQ-9!p!*EiFKx6zcsq446;Dm(9^pgKpfP`OsI*{ zs_Nbws^wZSRxW~PXJBB+PCKYeei`kLc&ZcJs%jTpU0rQ#Y|fo)L0~bsMwQQ*dZj6h zlE#*0C)?t`ppX=~b|$Q6gcx(nBB;d|p~sj{UF&#EKh~(KqgZ_=X0GU9*$7>3y@#(m zQ8rSFS3nAO&^5>l(A?dWimdZ(`5#9WR&W-^76FQH&htswXvxYtaC?+SjDJ&2T zab_03Gsr$fS!fYWs7h*87{5 zix2(#GMXKYEF;}#?bYFeC;E{rkcJ`;VwYv`7ZNzZ)~o$X-J+*X0phsgpIXW65y~v**{)70;ab`iA9meem|_rvZp@cdXW;EAkJB zdMu`?sd?qf3|7B4SWy?h4QhS)p)KaNU_F4=p}p$3{G%@)w_PgNSvr1`H37xpY}UN> zMFU(v6PYMK=;+VW`Nkc{R0AJq(((MT_bk$8g|2+N%9v6?Zuuq&^c*i;fBf^pmM@q! zVdxCfQBH^vjPZ1wgp5AU40x#umGU2T0&_2Y8B<;P=k5~cQ?nG32q z+$JS;fIA@Iu*~Z`mFa%{y6F56x2-QK5EA9R*kNWMuyymeW&%K#qPv46zm@Ui)Th79 zpB2BgY1H-(ngn0;<+e)I|c;YzmM;%(_tNrb`e}@?JR^aC{3JR)SJK|yj5N_1h*Js_oUqGPM;#s|> z>#dgnj$bXkJCay0Js9IQOM6rLEITs`1B3XyqJU!F#9x>@FXO?3CyE};u2fNu#0@%{ z{30cEpYe0bz>0%A5c6DM)w5wSRX*-4#9;lfYmw85G$ah(X}i#(N^z_4P^sR*liSr+ zHnKA@m0TKPc7Gf6>E#yU1+b6om1IfoEpdU8mM@G5^c)Ym%ev(tC?zx2St$~9C zq@HcosQj-&REp{mNT0 zx~_U7f2w)jAd53DnM5RyMMP93x*Nj1Y+`<+ZuU_E3d}IbwB9q(4*_{^rr}{?X1EOn<8{5MwGO|#+Us$YME2)k8`Sb>Ct zi**sAqN}3Jz)e_ieXNpw0KF)`$oevJ^GaYmfUE4k)aWAk7Z+={_$_RAPUjOQb;(CQQbyl3*P@1OYbV?J6PsU(CjWB^Ji zOIMZ_1VqzT3P7^y?7V<+Hqg)Sb#=Xf?SQg@!GXwuQP|rH5&I^RJpN^JX`&p{K%%rzqRtJ--TbE8iMeaLl0kE z>rO-kjuWwOnAt_$mW14TzwO7@R z`kCxItg25oty@=8R#tbw1RWSV3yY@$`#lgU_*ZMs1E@s0`Wn%^3zv)XgigZ`oM+Sj zI+4;pTUYG5HPS)|B)4rFSzzl~YeUIlHq#QlYdg%gQD@}XaSJnCF!!c7u#x8svIavP z8Ld`x*V~@XkkKpNQQDR({kme0vdnx57&oMS=8BGcD(_n!IIHG0o(=%_Gw*g%fbhSs zB(GsNgnaO0gAddrQKPV3pv(3WHM~L%kobU`jIYCB!&6(gShv}oG{BXBbCBcbN6-;I zHsS$7H)cE3;#;kH4%-P}0&R>$D+C3S24H0Z#8OSO$ZW+>lT@lbfNcjg&~k~W7y{!` zeun>VjN1lISBN!;lp|NE{tt6!B;7<5Z$f;ND1Z0fyvy$WElPM-X5#;dgL(4lQwx~>Y_Yb~`wtNAFfO|;)i@LKZ;c6*2cd=M`GiG#q>V56l zuWLZgm0L{N40r7DdQo^v5HWVwI7X*IG&1a}hQ0U*8o$t$dTgd6T2) z@7XYJVn0onR#W76J`FHhy+P(~0jnF4(cLz+2@@k-MF0#2sv$bYJQyOM*?06iBtJma zTvx?%_EaTpH}^q~c0?j2S0eo+lY>!S-j z4He9Mi=LkCTF!oZ74?q<%Wfwl1P~Hg8zilBc%q-$7l+)^RM_S zus=H2cR)&Gh08R}@Ue&V_UFdUKU)FEz`~{hu$gTVxt`Oi&w{d#kV7@$heFE4`9Hpi zi2(PT4m}2wGj7Xi{EMs`rsi;44B0v1G|%i@69Fa>45$hEtYjs9gn#18jQt(0=IY;m zo1dS5W>k9tW<8m1!&9&h0qjSDaa2D(Z-gV~VMKu}d;vlH4Hr(_rG6#StAsxkunkoR zH!#U2m28tn=#ii)AUgFm081QU7g4~+lX*rgGZ(K z1$lx8#LWLc_P#rw>%IT`+b*M9KdN(`bFR+szW=@-zw^g=JkE6$-|y%19(dpDQze`cgA9)RVbWP zIoh$s!QT^G5Q5qQuWxe{j?|=0yu7@}*aO7Mj9;81-L200tR7M!dq>UV8BJZnrv$xg z)7N=95Jh+YtlbvGZv@e(Kpw*OM}57bU*`U8XQoAz^URs!G&?P(-|km4IygDlJOqE4 z@)#@+L1b>d;`r@5JnH-nYv@1i40y6TY!7{!e$E=Ivl1f6P)kGFw`Xt65}D`vZ7pvU zt2auu(**2bx2~5qJZmvK!!UqS^Oy87Fi&Wilym=q7 zWX)3`Nxh>_G^~;AO6!4gC~p$R=9DS*CeA$8sV495f3C(@Vl^KBx7Aqth4qF&t@l{5K@M_KoAZlR-lh{_r!c)|cp8`^Z_+=M!a4uWwhJ)XcSHJ2hOX#N%1 z(B5;yKe?B@_{OGwWP17oP&?CzL4ygF7|UiTw)P;`Q7?f|7_$0%dXfjW6>J|ud>`_< zH4R*YN7L#l_c*Y(%4db%xwB!zhR0XCsWtZ>!MCLz@TU5}nfGfsTE#I3$IwoF|Nct) zJCa>+C7Oo_?62tAAMN&KktsSbqJf~gCfd`7o{e9MHEWcX%4!pLwb{a!%V7RSX$q|V zsVVcz7+|5r+7XDwcxU);OEI?4QHxFBC*>f%Ox-msHhx*Y-mZb1_mjTY<9SCZJWVc6 zyl!GVPc@V%9dRa6)Us{P!7HdGN6$Vo;DBFRQkm_={31~`bhw^3Y#TbTOVd6-=WX2P zn$zL2c_O%{X$-Fk7cFeque!RTJicNo#WQmLiO7iYX1-zlxgAE*e`8k^SO|87yD;`i zwBM|1gASni$|Q}#@?yaSbJmxY6%%dl^m<2^h)?DI1E<7gby;&1aoZ>&urf#0(va zW^W22Ex1X$7F@c-z*)*N!Kz3>y+Yd<+suWy`mOZz)0OMRSTaMIvMW$8(P(ZTY{{z6 zJy(Cv#nlxz|M5nw=2%JOgw&Yie69ix;eOxt+b2DX`_u0;7YP_gw!lP`o9V8;&!=M+ z>5<*qy8f?YAkD=N=`Ay^oJi7uMGYHCD-@Z+uXM)S<+{uV<1`xL>>Hjr2;FaD5fdv% z@u$*<&YCsT^D$b)p>ksx_So$`5Gf4r<0R&!RcKQUYUD=fe?|>F*f%rxtt*AoVw@Cb z;D4&*MykuI%VD$A`pp8eYFj7wDCMug)*J&5bi2K7{WUb-$^{tSkrS17rAgx0nG>uf z`z+2yNF8tvu2>s19+_HYJ&V~Jr`SC^t7~hisHk+a4X?y%`^O71#cn^w>%{zk`ia(r zxBSi&8GZd7+aH^ob}dp8N#>HODQ#cBfo63VC05Qng|G`C|@&2W}ek zsYY$m4vn!BE?|hnfybAgq*C~WDJ?^6OcW_d;A&2tIyHW9<@Qg7;SmIbY+bo^5=$*E zw(j_SBEjHEVZA{IWrk79-i{0#fDk}gGcIuH? z6SZtCuh;K|IdroIvSLWl9sg{bu(lqv6Ds7&Bx>!4w|6L-`+tj0qwkY!#M07z36nCk zCa8eSH!sYTFGRSO^~1~@SJbr3p9^#m2sXoug-NccDgk(dfXBu44aWzfNVTWo!Ue0l z1%kySMaGCB_aW1P>3tn0cDeiF2HP`0Pm}^&$u|EK7Fb+`3`BE(09rwFO`_*dcRgxw z+?nqwB4eB-1h|4h&U7wX^vxM&A9k`3q!|%zDs?IC=CpFuB2*?)x3+EFu;I(QC(8y; zhC6-#vPY}xPF;SQ8Be2 z*JNSm?EXV;vxj=){ZkT?Z+Jet8+$38tL;E+LmIVpQ2aMFlj5&7?lbLj+@(GCLMe*a zJ?P`&%ruzIZ+V)n@~7HS%^|6|^8-zUxXR{VoQ1gQhB^tCOZmsQIE2JMPoMDhOy&)s zkTzj0Ub^+H1J{R)l#guS{Ne?@2d0Cnim8G>=ZL6Wh}^_qmmMkFT~VhQ5i^T0<0MHU zwQS-x1t%Zmk?d`@dlg0Q0YfBTyvcj>#*G{?Qf*WOwH~3T{y4ews2csm%H|#r59;Nq ztgMY+uAhFB<~`()fgBYTcUsoe({s&rIkf$!x}EF3&{L3Jg#H6w#~LD)1pE*=zgl_8 ztD>X|dH^edc7)Aj$#3I1eH~Y}7qFy;4(z!-bZ_#^H`m179#<*f9S3&y_N`m%C@CZM zpQ=FZa7-}(GQ?I>g;ndeWt;1FNWu)rxN&1lVZ}Pj@aK2Z841ThpISVz6gF5ab)XwM z8NzgNOFFgi4m34ugOQJGlY1=iJ}s+L5La6vJhCzNlN}cTuO8Trm57cXmi`=xyuy(~ zur<7h3Jx~Twe}v+kQONY4`X5>I%E{c&a3umS#;Ix^jJUH8Fptn#v? zPbS7B%PUiE^y5kR63No~^R1VBQERk@LBD21AUQ>rmt zJQ|X{kOPdW8)7d_`?>0KxJbx22UYk9cWsDSZew!W;5RQ~MhW}k;(!7mT6i$-1w!Lq zNXa*fifW!~&%qIZBiMVOIINyH6HrE*QK@E;RUqxjIPEOy@xqnFBH7z=@JIwxDwTXo zvhuak$BL}qL)b5MSi5a8GBs^nVgyan@V*IQ<1@supyH$$WJ%xfQJvyoYSmlS>PI|$ ze0)21Mg#rKi(Mp>93%t!JUtyZRKN4DRk2^ei&C1IKjy=T!NRoW;5MNNr76f~)l9vF zln%?0&%Ab)I;OT&W(Dpby(_-?LZM$@tJw$BHOrH?J+*h0HPZ8V@$F5fn4(uWOc)8a z-F;~pl9w3QuAfXz1spI?&cEJq@`@^*JaOaiWjSu-!HJ zi@N>KyGABH^gRmeg3NrDTAx;oW9hU`G9lDy_8@nf{GET=$Tfv0qhgBi-kqH&M>!;xNkOXl3=)i@@>hI zB?5JE_LY7!KNuKPg8TXT`T6+H<08*n?ROJy%7P%;j4B**Z0>+=py`^Po>qtukmu1m z2!Bn4{&m_UNwh5AIwr0#2eJbnpj^Mc{M-i*opq}E%N`rKWoi~tD;rk>%6kk2brrymr** zg_`|7YUM2CG~NyxK{oE-Rkk)CNC;jeY5Y-Mod1G@>@)j$VcrH{mL2H}2~2d%Zszh( ziE~?7>H_mb^X7nr6o?l*^KH3bDkIol(GF@X%zRSXOa zWWSA#sV?*rdA^geSFJN`lYw3|DCUbdBO=d55AF2K#E>bw)2;T>OBZzF3k6&Gl8`t9M`-p7&dNfz|^7_GIRSOXq@odX)fZtr?IRr-2g(1T zYr+^;;>$w#Mr%yDb}iI>{3C}f>~EO)p8MIJ6)4BPRSg@K%EgyI*_{<{uE}h1%j}I( z4)_NCjw8%}S#r^P)y}tZ4Sp-(GAKJC|B0MHIm0SgVb;Pmz(Xl=EyLX8>>xXLDnrY* zkqgr&UOyi#&ePl1mJXP}bo|GSS50G`+s0%sbXUw>G((T46J1&CTGRO^KFCO+PDO#A z6Xo1jFFy@^N@)8vDs#DZz$p`aGl3@v`Z31SId~F-+xbqu`*=wq(KS3pRJtBUJ9)vu3lCY@#`G%SbWRI%su1&tKoSdiof5wK+L=vaQwPO!r8Y^to|S>9>stlTSg zgUZ5_O{!PVyzN%vD<7CugE+`llrL2K*i5G-czHcOk1<)+}wdSqRJM2{_7`->NO57Cweq)m&KqG7*-Zvcvyvfux#m4OclxV(!sfi zS(K+61LUP{5dKBQ;D8_#741(|sc2o54u;@~0K7s$H4+^i4QIfYF?^TD?Zkq3O#j0y zBfEz9Wd8ktgC`znbi5|~Z&5mTMNK^A8cbiEKHr52t&ckAu@I66 zU~G8UY6))nYm_#n?TTD!ZaZ8FAsE@GnW4jP6(1UTDuZhC#0it#*yd2T0xBTywevwK zY~cEB%keU%DP0A84ek9MxK|;gXI_YoX}qDx869PO%7+dQ%XVYsv7?Y?5z-KAYc8>) zI}aZ|%)-KgRATue*O`LKZmma-8R4;?nTTH&t_@8Gw=6HS+Grofj#wUl4Ug{)(Pzq0 zbyTi&<}xM?hmw}b36^P6;akg6{M$0kCHsui^PI+1GfN~=VBNqIV0kwHgLlly%+mvl z=7e_a9&cJ`cgiZeKSE&{ekDfzriVwac|jH40;IaVs8*D#Ed)}Hu(d1&7*2AxKDv;F zlG2`^?8Esokz2pykm2LY5QZq@h^h5wwg?SSdxxYBGK|Yn1LVC{B$G$v1!z$ z7}TIrfxIKd2RV^EMpYXmTLdjA*q`X|S79bovJY?#>8Ie$U?l(mW&|o(&5nR*Z!<0o zxAKK>r3UA7W+tB3Drjm_8(eE4jbL+#H6c1r@%fWo=<@TyoBQ!bzUBm!$!OS$3PLF_Uh^2EQ7iT)P9_oL-qjk zn+~SKt+tjyb+^(J`Jm1jA+%?KL#sws##+LsbfytYAkG8oqp-OHf;-_9BD@{h+C7-L zp++Q4yh&UD#N13o{Jl%~*QF}MRO*;`-!e>?*Xf-5bZFvK>k7D&=nq=E6p1@J3dns1 z!>**Hgfk1T)1{|sV`UHs!tc}5u&3ICeI!ggoz`OLsJq|emF2ctq7!4$8Y%bN%I85w zF8Xa{x2ptHyj9Bx?(1juA=#fQyr~t*yy+oQPphEb5 zaBr#xB1tL zy38Soo@(vN$-W1FLfbkeuvrBOLgvp_PRRVNwb*M;mKa(Izo6Z=t+pc4d2(1LKcP-G z!VbVvOiYYLUSJsmjrrJp1yjfcU0j4`QiAW@OJC2!tad2)3lNr^DBSJX%-j)wrv@&< z-0_55R2T0z{WqUPa>m_L${t50PKL(^N}h?cbTkS{1|b_HK$at~|0^`Fy$H?Aud9Nk zU1t!du_f198VhcDBO@avA^xxgsHZM}lR!Chng55gENIg)XTp}~w1=RQy~o>v9aH<< zpZUHObN%GC0{-+xy>#lkN>Ab>(-NY5P-xqIH9SzR=+d{$%5EhCQ-_6l*GHY19_m-l!oT5jMo z%`N;gn~L6SucXNSJe|TxNYl&9#VAh|xlHjIH@XSFwB_tbnx>k0ec$5HeFdU$Kigiw z*(>Hayk!sA!Cdr?9j1GLu^qjE*z+rMzWC?XEt5u%{M?eKk}N09%vfeT`%#Rg6ky_q zhMQa2`@saLD;`)*TL&G8GRKTE`cz}7AHcNPh&Q{AXIt*6%9UL81W?YeCN@xIwO7Cu zcH+S)0y?(0pw#5?V3!qR)-soL%0=*m=buH-WUHSjMjc^(-$4Cg%ZSaoJ=8%(gs=qt1LxXuqAIez&AuvwF4RE)MMI zcx@DSs-{~rC8=MZxqCW>UTsNuK6WNTazHY`LDARKQyV4L)oqKj@mQTAkw^AICQgXF z=g^@-JUPpd5)E0NhlQR3?QoM?g+H`FQr)E{8%v!ozkohIVuN6?!*ruBrZ1@Mg3?|K zf<}4tOm`AglR$&=h>DhB0p*eF#TM=*Fjyx-TBf>#?Meds4fefkI0b7j?erdJdwqGfy=#7wEXNJ!B>l=?f_}hRYOB{eS()H%d=c^-UrNeexhVR& ztOD&d{zp<)4;-_{{PkmeR@DmTi2IGln#*?c6=AfMq?FWXiqt7u-4~#aEpHf@VpQx5 zdU1g|V+BRUq*`=O8mf2kzfFJt-qYL5Dk+&$f`}mRvos)%b{sH!g#q3QVv_#)#IQJL z=!jD`Ozb)8;pLHYShkx2!f+jixHvNjE#QsT?AzSpw`BZ!=mfH<&7oxe6WLUBO>?|8 zh_r?D)72~TxZMMqWLf)Y=^9J|k2$jz6AL^h+^n40Y$c_g4scTS0nE2H@B1dxQbC#3Y)&%HmOQp?|q1z zrnL<0dT`Jbpxz|%o0>P&EtDhkNW~&c#jpAKM4x((Pxp&06rtV1HQ@Apf}SM4_3?jq z0ldobnve27NPUjVlyYuZj6mU7<(a)RiNOA%{>1+F*Peh>Wy7XTb~u0dq4=tM{`~mN z{X;U;ls@CQ2>k1M5#gs4j~s}!J8#}->D+Kk(2YGcysjou<8mUf&yAZmSDNH-E9Y(q zS(IZ(6MS`@%DJ;K0;x7^D!!?MCj7Jay}DGT5!6Vn8xs${0GAj?5#j^o2m8TeEBJ5bL9 zb3%(7^OS(fHo4DDXiiVTWM_6Bl9tN{c{dLvtaNHnC&4AP!>x2BNonPe;2D-Z#Jc_^ zdZ8Z3hfG>X=IHzN%r8Z9E<-^3Yds%3w(a$IP-!%A`zc*zfd-|jr3CyXOysb~bS*Ro z6B84JvlR?Bz|8gA4kqTV+oofDFh;Kf4G)!Wm9SYqECRp*yrjjj{Q)ke$<_ptEswEI8dHXsz+# z&jgTD78Yz1BcPkiLn^za<>by#TCCkJ)b#xMP1@Okq$q`Zhhn6zRiAxIeb$G8Y_eI> z*{fK&$z>F>5_0`wqK6JFgNw3Y9Ya8Tc{}}%7MNE7#bN2awq6weo{9SARERjEM0W0c ztg&Grf!b7@EmQAp-*kFEez6t>WlTGi(A~axBkx?9{q?6w+_I-02+umNB}G%cTg(Gd zk|pj1{Qrws77JPK+=@$c4xR4Txh_V`)7-e|k9Me)Vg}-HRtTUz9gvGqjj}^|hf=Y9 z#8HRs(4p^;tEid|@CD+01pTF?r;LJ-&~ChJ=BkL*GI@Eg+D&B|GO*Th{3Tc=D-zF~ zJ`M5u%f#lV_Z9Z-5!$wnZ5J=E9sXMEu@RMy1DaQ$kwM{%bg**>X2Cj0uv=8}BKHf> z))yiH=#R59ii)P(Os9EHO}{)>PX7a=5*X5QcV9qVH8VXeV9~_F#}{a=I6Vl0S3`qVEbf>Hgqx_5O*Z)q;i$@PwZtF+W!3*kgC|wtk+_3z8e}aY1ugkauReBNI*abe>C^9{ zk6c3@Jrp=}w6wG!@SZvF5My~16s z>vi++5hd5i4;$MI%9U3EmLAxUQPxI4G9_(*Me9~MrTqJ5*~(P<;u&gIbW%EKgCU9m zEZSM-8d0yjS2&(t5GAxZO&i9-}F5 zhau_2mEe-PYJZVrhnm3IuLs_eEwbKpqE{q*&!YJfhkwOws2JKsJ3l?NgmjrMgnl4_ zck^g(cgtDQrY)sPD*Ho-5BYb@g^xV+1Kcq|r7Um`mppDBfO2ieGSHBs^2r&1^TiQF z$Cp|6I0*#YS0(9?ajM;vGc+`WH~P_jNFG0a{<)T*;$aRsSw0z& z%W3*~mthavF9QT3;QIgk+&X;6+pU2W921mbrts_$a(+4(lB z+zANag;ZKp{iX)~|5AtrsTf5|00gP^qv9D2lU3E%*N0vJ{6%Fw%l5sGBzxTss2~F# zs|*i=7`F}8C;b+eTLD@=`@YncIYfnZ)+zaKXKH<3$G~%X`AE_K1S!=vuB!p4Rz=P%v6>L7Mx3YjvC+daTM8p!FdeDknIN@b;|1T};9#mO4 z$8k2b9g_@|4_H*M(mPTff8^=t? zpi@Z1$kZI?R5em|3D~P#{>ba@=M9zosXgZfL3I8#StE9bp?CXwU2oBAAugG+zd@fK z^R2Jhc5$qzNR5Ynp^aL^^~#SwjM3F}-69D*KUxfx=N> zZhSy>8ccLEKmcVoOw!?xf1I8CLvz|V_!AkD#RS=ETUgA?octr(VN-qTW}&sM*PK|KnkV z(ru*3E>VGeCufyt*pCo^Si>yH1K(H{{7tj?+q{UitnVr)G1383m`fpLLXa7m$wKyCq*#L9_cTKQ!4h!#~T4xbKqJa{j-ow>ufuREC&M@XP%kc zi=J!Xy(d93U@)^!A|EgBu;UCsghFA=O7p2RQ7zwYvPFeRaRX98;4b5{vo7xL?yeu# zXa-I4oq{L-+@Wp5#(K<y8-i za8c)R7WR8=S%rfdpbx?efifjLI4I1zVuFaqEtj(g&c(GS_48b@`-12MbMRv~vd&)> zkmN-LB$mP>IH(6}E^TROX{6H3kgm}jV0h`!0RLf2mVx4C94oPX$pdUU*Bx&{XpkEP zE)+_aIHtF@!-3~5qJ%F^*4j#&Z57C__?D5pjOJ^b{3q*eeA{EQgddhOygr_rfl53< z)yn*_(mcvq<@ad0Q0~{cu2X-zep<&|)q5Lr?6RvNVR2VZHxcj&z#;Xc`L$o}Rp!RB zW>hH%Y-8{qB3U=0DGe-^-fF3VGLDG|m0J5RwZ^f3;v6(v1nrE(#UEq0hj8i1ZiW-h zXn=^TfCSye#RWYg$VW6~FUf0^O!3SnE ze~JYUW-uZ5NI$*6qwhQ%1r3Q8Z@%L-Gr$B~Jc3%Hk!ZSZ$cjk^D?6`;=Ig@>O? z`qHcHWR+!5vHkdJS2#Zi(w?P*X$G+e3~bb7ynC5QC;F(LI-&*8V|eyt5JEQl$v{Ed zcbDbI-f|ORVgy{p>2+mio|MJ*vxnt2O76x%voX{rw|nn7AKx7!;S{wPL26Y9;`?k% z^2Z8;aViF_?ir1yE8b2c0iE)hRqGls*uh{`*<+KPzK56|Xi82pj^0xXatUR*^D{C;!GWCxlBHpB0J4_M-)xn**6 zmtTf!{mreP=6x$gwWZAu0C*1XtBieuqw1L(5KpBsLYw0zdwOTnA1EF`JwOc2e&dm3 zjcv1cp-bS}gI*`&e~QbTDwXA7W+8wmx5UIml@&b=(jIHmzqqmwic6L_R)5l9zIgK^ zyG>y^`;DR9t*=3kWSfh=p`)Wa?w8PJQF(hy;GE&z({6X9?+Vf<=XJ7}m%aB+iM0f4 z;?8Ax_2#w^8hP`+!$t8#^zBA;8Y>Y!=(948PL|@?COpZ%3mYKS%N-fbp3!qZj*lM5$8^+;jXyvH9vvib*@_-+wyW$4I-jD*SbY?rV zBotM*-Qc?k&4AA`27){&f#-h$GS99a+bZe&b6E!c;fNWTckFT(^;m*uPS1;7y0Bx1 zWH6Uo$>!V*%a+GRh8!1}Ng~y)Xzxe5M_csNL4)`}#}NzDrY*y@WY_}pNoff2yIbYpq@UV>SRZBx>8TY}5w~HqpNC=CS zWDV&}375@h5ZdcU=ts)GKjntZ!x4EgC=RO=KYsiOS*`hD`YF}*Wh%4ClAJAK_?{|d zki=bvN!i+SP=@5G?>1k|$WYCCP;J$!6&@8lymesD&G~CjAXiBqj{SP#>zF6$auvdh zQ|WcMuihxYwQaa@k$~S;-S@$GufP5hLZw&JJJ=9+lP3q+B|OIHh{=fDuHJvX?}QAT z-DeOk8uGl5h-?R`B3A&Jz{@bcBz$P+k6u}^$mAmCr}C$9+)Bl$CCHirfe!Z4~h}ays8mp zPAUEMBWW%V-S>UkH?<#CILeLyiJk+vQC%^h%PKI-y$~;{S(V~msz{2M^`tLK=r1JZhQjgivf z2D@ub*!*Z{Ij;HikR$zyBHv}dKJdT0-(<|;;1_kjy-C~)+aOqY9YTZlG9V-|QQtJM zJvZlo7`wJPLqO)-&`_TD#O#It>nnQVJwDotHQjbrPgYJ2(%7Dd;c+DZV2~j}O-Gl; zaKcB(c|3UsA2ViOK;XeqK0&>C?^Cwf`hjMkOGqX9geK@CD;<~a9lM^OwM89-o%F{u2%qZ&>yjS4J8BY|%E3PG`EHCsToziB?=od)rEUjViIWwZ zHRHZ5PaM*Cvcwh3xDEyuXB@ksc6HQdglmSP$);?|1j%k>Z>p`OlzBUR*&3wTo@nx0 z_$Cn<;27@hRI1O$`AVZd?S7%W53l*Am=vS9SBx7;8)%O?$E3zgFlm_)mA)d|`0ECv3QgmX)Lmbn9+K?B01|bzVrmZk@dI#G+*7CU#n;O&Ow$~G^<>xc3 zdNDG@V!$sxO?z4Q(0Fg+IS|$S2T>h)NOP<4=jkt}w8E|Pm}!wFJrq#)yarX%eNO$7 zLKN=MHW56|sZNsmt zK(_nuzmc^t85G2Bq}Isuo1veu4+Am}R~KSUR$1KIN$6%#fi*Xgo<4tGj)_RqgT(Jf zvlNAn2k0TpF&tc60zDa8nBR@rHQ~<7Txj5m_>Nb3gNHnXX)3oxCbc9ai1w+;3ZLcj zgy*<~`q3fD>{kTn#6eKfq|3WoT}p@6%V`}*tSJ5Tj;yH5>2sDCkvn!C5MeC*}nUOUY{Gz~Qprr5IKKO)ZI zaC#lgxPWVq2#>@|CXrs_$^ZU|vqShKC+C-jj{q%A+bDZh$$Pt^AWg;K5T3-30~RU? zTWV6iXg!nWp1KF00|@B51&B0!bJDsfAvsz4*2e8NQ|&fRZV({sYLn5pq>JO ztjpB`l0Uy0ab+;!Nb|O&s-H#jB9>+|8Rjct+jo!gn$Uu{S6p9{JA*95e0g9njF|LW z-~#C~Y*e5E)J_KLO;3)T)s5siBZY^IxeJ|cjF@AiaeEvhwV=j^kf+E8*vW{bk9=ou z1yOwqi_~yuk^Ssw#(>SKaDsafb)PRONJ&mMgA8W$D~>&*E^LpFm%=PZX$G2+fS0n> zHQ$crW14r+i`thjKeawcDv%k5PJ@ClYvfJ07CWSs5e43AAh*BYC464v(;r_&(oQMv zQ~1PHZmiwua-WCHE+SG2&p9fOFu-dV^%TF)!e1Zl^h>DSPMj!l`Wjncj++Mcpnv@x z3_Ad}a%s|%)AilsD{u;6Il;|yQAa1drk5OtA-Vy;XA(K1gfFTH)ZG(QJ;^V1q}mQ* z931C(FhKA>t((;v-L)rzc26QJC#T=-+l;(Mo{_ON_4UZB^a*#KJ9EJDjV(?d=v?kp z5P_Ul0Uw_I@dsSw?#K&L5ra<(j?IfVB3vY$@!G1k4D=4gcO?FJHrqs;^M)PJrdXZD z0U5!6b}uCumf&%*xdBBTAv~WAvj4VJ`q;^5M`G#+OFPegNj#V3DkS4plN+BL_F~KK zQhFfRnRn`G3ckBqBg3(TSy*3UuOK5}k z$%n^VVaH6JuNS$1qtyzH!2hr?#<0TdKD|4_U~q4C%4p6pkg>5cJQJ-g4f$%Zcuaj!csyR8K6D5FU8jqq-sh$u)ve#B>9L$ zdca}MGDZ|8`Q=YQ}5URg3I(6Oy?-9$+k^%ooff9Aony>2l58SDAiz zkdQ|O%;Py&5M6X*Zm+>ZB!I{u2iYf{Tet9wv%lL4wj%l6rEKTY@%pP0aeNL%90SDY zYY?EdtM?2Qlou}uA{E5cFxx^!HWrRdcdlV>^@wtGA5LaGvM>~31r~O{-sanNLT6ud zRF`1dFzZOeamMCNa&mI+6KMvRw5dt!8wQy6@`iuC>J0q#ztu4aI5i#;AIPTTan7^NjHBe*rPOflXfB#<6^E>Znr{BlP%0jSJSqk>$)ttNWt4ON8Ap@t)S!XWK+3yF0xa2K3{QPwT*TN zHNWas5pr5yo;{Kbu(ReqJ^GAj>!Ief3*8kf9_}K`&0_1NqQFEL3J!1PG^l8SR_Y+l z8O$mn?wR9P1CO4C4Ce@&GC@FNPy`j~a)~Gn;58!M?HTS21PstIGJZCV4}GNae6aJ; z!=SiOBJHW>H7-gC#fA)&_rq^;EG$}|d;0mgf)K-{JcIBH!M%I?K!`O7I1G>_Zyi4K z%opzkTeimdd!lrpd}M!u{{ts%D8IBag%|NlUDf?tuD$5iHSTIkao^q#eI9df+-*^| zC^V#`)hqt(sK<`(<)WOl5OF_N$9lWk#^97bQH$RmFYb@L1edrTmnLA;n~ZMB##K1x zWn>!06vGe5@cPp8ztEeUOj)vQCHA+pEN0Zq_Yu;v<}3q)O}HZjp<4M6y8aV%1`s_4 z$pgWjM+CCbDfoQa5&;st$Po_ZciWMM+GRSY3~h%t1gU8S)0oWy`-S#Njj91=X6ED+ zV;+^Cox>=uap#|{LnG?2^LBR3$^v^3=zm{Gy{pD3u>Yd@r@{~GKGZy8)4WoaS~YZp zm`FxUY)wi+2DY>VYuAPUd8LFMb5?%|nG_~?BqoNl{TPQjE3h{t2+5ds@r8w2A%0h6 z!=W>x*PPSr&Y?y@K#cW8t}>BEhI;zm;R_0Nrv?eF9S4VfXzAw{LuDxLF-Gpr`e^I@ zojoalXs~J)Ft{>3Nv(KksfK?N(DLMD7QyQUZ0h3}pj-w91cwOw|K;6LI>(372rmnk zFo&E1;KAt0+ZMUtU)K>S9Ka3+J$R2~iI2=#P0N*c7x^E%9oR`*uMZfUoSHL3IJOZK?#fB-7s(?)#J5~VGJh@7_IAzqOIe(Q%+&K zf2hbGZ~M26xN%Wqv2*Fa{e)Jq&A1?A6aw&zNSDuJnksRj3>qAE%bw~wdwI?8`sIc1 z&&7ywB-x>xU5P?^lZ0p5O42>gqO;Fdec_h-@WMCxca;C^GyZVenhu5@{pV#{D*X9^O- z`++r&H@jy&Df+LY^I6RXdw8n5KH+k!sF0ZAtQj=Xf?7}&^EpOOYD*clBf&^Y>KU9B zzFsdz^a^BmRGXhzZpbJsvc&0W*I8Sxf4(oTue{4UQ6}Vl^RKcgyUG@n_u1+|*>kx| z<#b)$TYwRMD^E&Hr0?oW_=-=sqndRp*q-G0xN-Ak&B*okk6C~F5vQs1Ma}(QeeoR{ z^_`RG(atrhMmdv|I9*sOr%;`hxHNl7WF)C%bXt7Xwk!W!x2H>}o+P+V1x@CwJ~O^9 zj*ErJTVj^=j%WAsWX6$;Q0dU{!4H#Mf_uutDRy=^IWPV4bZFUj+vUIea-pMpHxb{< zDM_>0z6-N=3T= zL8onKxj=fH>&-Zi&sOOaAU#Jr&ex};h+2ORP#sN6Ays%M?IUg0XZ(11_kV3Y-_TuJ zF0Rc%S@v4}SXg%EW2JuTe{{hpiuvN7%NO)zzWrw*oaz~39bn%suKr<4eAT_Hzk8LZ zM<+LC*|1+pD9lR>0*r;g3*92Sr+1U{mb9{6WKQDQDE{W__;SNr3fu4b{PqX%?y}8~TLl zK*pEY`6CQCnAzzrUu|Fd+s98EV}65fVtpIw-7(!F5_JddZy$5^YI*jOWcODqN&DWv zSP}iMfb_eqaZS=pr(1IFngHq0Moli#iiax>(fwxAaY!^$a1S!(EqUx!Xt#u=kn{2H z4no6?;TlfL3(;#y3V#Gsia)Vh^1HXT(&trPh0pXVE0Qf!rY?!Xn)0`g`hOqUFCYrn z*8e`TU!BUcn*Uv8zpz-;NdLPre}V2>xc|R6%W~c45Lk2pS{_x>s&J&Zf!!N&eAH~R zwqyTHSLu@Lck65@fj{7qixP53oz7lP+Gz{NVZwAg8VwC50=p*|i1Rq^&2NO(4Y@-M zgM#h+vRfFZObjSZ;bbU0B~X58*=mu9E?Se?ySwU-P4KKCi6>x!-++G4%3n=YRZhy7no>X{FTkaJGld(q!FTZ*)WpxTlpTT9DNS7J*TeTgS zI0a)D$I)LPdLQYfBrcDL7BPQ)PZCI9ia&oh0X{5m!52&uwL~Xl{0oez--hc&r`vdJ zdLNl`<7H`XttWjKY)CPtW9>`9LR@}Fe9Oy9|NUJTq!w}Vhc3AjMI9U0+grB88dD0Y zPIYFUd9?9Npvo7Qebv5>vfoW^oM0fkFW0< zuMPF z`*m3bE;c4_6J6Wu7;Tg40oH~lR$S9>&l zNLRi8@%6q0+P^$rem8r}<(&Ai?$QrS6v0n-GLDz? zb!D{d#+Y1-BcxOk(eJL_^NYIWTV>0IDxtMxewp96v*-mQ{Pc;N1uSFYY3p1LoUPn8 za@N3CEP(IP%(b}Zw=^j2a)ALt*`qB#u^+l&XeClo_P+tj1&RF**YSoGl(fn1OA(6j zx2O93%y40jAU?`)?aW|(s6*d*k6ZMav_^w~2obkJ*anN2tell!GDDDEzgtRT(b8E~ zj5c!S_j3oui|9zcVWOFCaVvqAXY%?*@K1dye;pikKqsPYx{T0ha%P@@b2GMvm|2HO z+Rj9r-8Kzp%qav`mQ<2p2t)_)Eda4Vo(2|ncJKsxC$S$1F0007;UH@ddS)fn47#^$ zH0VF!|FTHEN#r6vfHU(moWDR#;;q*~$CiDy?(D)UA+lzyWN`S^K`{M})&IFGbxT2zc$*rn#R?@-6g-rY33wi#yb8twA z=$&Tk_p>t3%wxKIrxmT3o|`=lO$%<_-J0h5e4WZwo#giWk&$r9KZHer2m^W8Vdpbk zW?VzdA87p6eZf`mJ-{SCFQ~wwXn96`I$gF)KzUxIHjp| zxG&6snNd>}sRg|u+78Gw$$B-gk-vRSLxtk^+V^vVUY117U2IL0zgeJvcub1O&5@Q) z*35bfq3f+}g1NTc6%p3O#IUw~3ip&AtUT#-`0>W6gDc+cC0_EY|2{9e7NoNjzqy3J z=Bhi?`@n7?{Q4iutpq;CxOG0OyZ7p>ZPc4Wt$J{3)m4^QaXa!~j=-;wA%-kAR$%V8EM zmacPQes*qzEZUlXlrygc@V}I#q$?bH&MzQsi0`3T7HmKNO^l{{gmk>8i~4c|afD0w z{MSM5zOcJg>UNE*;g=E(*f(`{C#a>&4>;@2dumB$B<|guD zz{V+@IAMvwQ^?{>FvfP!got9?DGvJ@!_UkO9=uO8`jGDHNNoi>K}{~(^HhWKvYy+1 ze$A%FCA9o_mQ(xf4ozK${Vy;GrfxVVs#9c6gZ2BWzC3cDD9rBFaaR0XH%n#xFbtRr z!>M9i;*sN5)oMO~^nkhB3*XmISz={9Y)Wb$?_kGa_qW61Zp0Vz^;6t_O2r@NzxDU7 zzv6$!EsfT~7BM(rcoD_VG5}P_29mM-UVw({83az81e>2{&kA8qYKDHXy*b9QlJ(Mo zaUSR%WWbwq@0Ri zz5mJ&T1WEn@F+*D0B`=l(xNrj7_p~6Cy@@SvbII6MD|!r2D~~LvYy$ND^oq4?#p|0 zGXuk6r!Vio3MVBb6j5>S|Dw}`udb@1V*O~O0I(+zd42X>d-o=~FU%7G1{Pl4-qV=i zHnEI#Uu0BNR(-Ys+D}QN$_Z`mn)`G?MbEnN zeAb44?s=}m`%Vtju4;-3b>%y3l6r$)no;pZ*a7o^0IvJuGA(6~d01IfpqAH}2F$(3 z6>qC8bzBE-;obL(p|`-RLxRZJ0a--{(ABvua1G~YkQXe$%(k!me|Qn`J@I>@vJSlb z7GF?W-)jeVNyf~WNqy_i-s6*2VZ*%)bL7TG8$1on>g#|$6qBfKi>4ZVM_9ogy@kQe zR(7YM-0M9*=VSU3yVJse@d0v@GQPZjfBHh}&~k{b(v67-5!Iwyjvc^~UkniHjRmf+ zLiGV6rp5|UqT3l5+7VO9skaVtnf@ttep%&bHabM0KC(_Q@gc7nBvRE)f2y|BYA^N* z{RG)~%@ZeTarhcfLHv|kgDH`TR^+nMuaMJx@_tz=@sH~3YEe&+Q34;MlDqz7>BHVq zii3hYz7P4W5`*fyU(d-fJ^C9EI-o$=JjMBsCt zSwk!&aFDt_RiEtJ$Ju#k_j~u3xHJo?7OLj~@}i!NDH!IOsmIOx6}qXw^*bpc*m@B1 zNwIo*6zh4=N-zZAAS4d|OE_yiWxZT+$jJ)3^?YsP9&BuZ-Aad|~kGOhkc}a8M9UHE- zp^6vdo_YKByJNo6HK1*>%8)i?24t4r7(&K{b(gLaZvv8hnWo}<)u|`wx4rXC0Q@lRGh@W3$o$51xuLXzH=#QgD@_>En;r7 zV)I|uPwX<-rl!#+|7LYE$@u(p4po;JHw#vOJ3WR7t0P) zacwPfxISUHC0LP>vr>O7-0OS5+h$*dB4y9Q?%Tq#d#1H>%Sv$1S3j`rmf-BPx*N>H z`r;7#gNtJ(twGrIp|5ZegWfZ%nXi9wy;PQc`9Gy}!47fRF4NO0u zO>@rq=V52N_+EaqcjjnU-|JrE@?(S7y{y)toZw-HG=ZMg5f#g)A%m%dkONo+@(LnM zdrW)lKu*=5-i1yY8k&3rS8_Jg2Q1bAg@uLihMNySCgJDhg>b49-h*#TAI(3zx=3gz zMLNr#EJgVl^a}cHtL6pmuxw3pRL8aTr4qY*#se&N)l!n)?He#eJt^-RLbPFbYpSa+ z+H~qBVDy5!zR=iqAqOQ&PDN)|6UEhk+kBJrAT-noD5 zM10HlHJd#YoL(O48jC7Y43(!U+QIO>FtX6Lf7Q@@x*NCe?CfN)va{!H{}$~q-1M?J z^}=JdM1sYG1^$Ht_8*o0^T57VP;yIqphf~q!ub?+QO$qx!c|;t>Ao_`NV6+Wx5g$q zY>gW>ez`drc3%_@p_V$O&iVaU4yd%@d=nuqm|)LwyNJk3Hza5WdKV^^k}e;6O)&7+oi=Es;stMe9w5gbnOjD=X_cp%oTxe3VfLT&I3mq4qsVNbEfX{x zZ(QSbFyp&jJ})1$*ocsk>>7(0>kCp+h=TGCA9VaS)WV%ui=Kzj1Jy6X1Px`!H3yOe z*dP2=nJTvd%Ct}_q>=95JFS{~?jrH>hgw1{VIRE5XR3fQAzyoIAfbHCquXR;Y+O`R z_7tP1j}NMXF+}YfaM{X2GO!f= zzJE8T_k{jQXLlOvG(o+A(5B=pRKWVY(#p=V*>_!5-dGU4mS)$#Bln{HLKdBPlEb-# zqwJk+A;x;T10Q8CXbP3upS$8om%Fctf8{BqjThfb-*lONedm|r-m1jl9NBe5DykqNgo~+HMOAe;^wt)zjtL! zh?zz&>|? z4`Xiu)zzA|5C04-R4i0fKvDq#ML>}<>5y(v=@KcCwh&PiX(SctR6-gQ6{VGw5|xrh zQu@0#c;4fgGw=KT&swu))|wd>?EUQfx$moP%af08o6!h9=_lJ#ZV)q!cf?1Bz%UHPUcVQ+H@*$Bo8ie{4E+@5azizeQws}&O2ZtVf8Oxn;By>z zkeZYyUwQL@-q?>D+MID^QRS@ED!qjg2O8216BotSs^-3~p^CXrem3fn;M0^N>sBp_ zWzGHk;$_A^P^hQu&`g3qNl4Xo{TK6I7@Y!FwFf;`roYVzQs-=o!z~3E5F*$ zFlR|<$HK3D{}$e+OnYeR&hAuUp98=(3T7t_m^WVcu3SsYaHvLd=oJ8j&SzeBQ$2+R z-Ct+kJ52e_wPsz6e^mKwtwX_+GM|ue8@1?;zUpN8Q87c++_$Z)H$H4%K2%?6laDT5 zi_kVLYU-R88(p~V;B#Qd`EyPG{8(-i-2dX0>dWE7cba~sa<2Pj)NqHd*{=1+GSZU6 z`B090<$1Rzr;#JY^aZW@V`r?U3WWvD`y#Uhhri5Jk5d@n)r-p*+_{j6UrXh?!>M}4 zFs0r!hpUzalNQGUaPlQ9`YHbYy^bXxjR^M^a_n^sDV)7!cuafNzJESGxppY_D21Z_ zf4pHi0>;RYF)ir3K9g|kNbUQ2i@N=+tYu0umg&s23yp}X?36VR%boWfG_icj^A`@} zZ3NXQu6JbxLB+5QH#QN!{wRF`w-v=OXwuoFNnPf`>S^q~E9;xK z_wBiLc-^Ch$HR~Oc@`$t-+y^XZQ`Bi=wbC2cJ=wv*NshTbR}!YjaRC2s-imgdZj*UFZh zeTK{i4~zV57Whu)WO7#xvSc^IPTEnpxkHl(6q>BnwZCD{l2ZJ$XB~ zWdFvMqJ}ir`Tq0I&cX$ImAaW_OoMGIRa{K!qd^f(U!!?z#rlFZQyvfQPlT?QG!0zn z4VSGyT`nmrD=Q(v71P<>Em3M%6?%kOS*9!IekVg4U?%(>)Q2y;f>4s4)&TQ~33E9y zDOtURT58XBWW6AF`2ov@jyW}L?Jwx42{_G_RqrpDiNL8}zhC!oe5DyZzI{#3xJNeU zqeIkl7Lw=0rc_Uq;^C7uM<|}S08hz{fPI>O{Ar~9pUs3muOywkO(^>>kZno2(mL^2AH02Yy|A_P#5@Eucp>O2wG!Ou)U`OtR`; zdYwF@4Cztt@kUQV$179;1^1;2g^TNF(iZF@&fPJ3^&C1%=+vi%h=W zGI`4jCIDsfCV>-;23^ygtfeV3OEkNFnE)$qH|{wgmycEV^qnnb9focL|Po9`_;e* z;T8Z(PC>}j%5|o#OJ6+}iq~rjX}Z$~4De7pjt{l*V73Ij>2A0|#(#hxlS!XfH_yILgWX_Ur`O;&R1GuVT-afsjF7T)5?-9ET z(gFbrdyz=UZQf>JUkg2p5QuL|a6t8;w_N;kf0=}fQc(~2M@i=xo zIA+q26ff(5#Ze->$*M0-YoJ<~qhZX{_w|{WKB~`Asp58x-2_K()XSyCJc|e=$LmyI z4}Ops@hbd#(l#d3bDtEVV>ejSIiA+i-Li(X#q2-sh>Iy` z8v7TbWbFRH2=W6l$S#f6A4dVlXnn!bvu;=tkRaBqvEeN2T}Zf_E@&f?^7R@DIlISu zYkv#Lc`0}8BJjuBbIj+AeNUosZd7j5r|o^&a(ORS&O->s<|aJzTQL0) zu*R%8M(BIHfP0&`mG{^LI&Xha_c9=l@6Jm(Q#eY-r$M{vG)%WMZ z^v7QBB$4QsXe*5%xLTy_onux00R-S&zQ^RmcznWlz{u4(`~~pJsh(-3uyu%{0c@eD4FMeh&tF&;VYu7tE=0kfP^hE zV_;_LxsA7S3;e&zF5@z(XReKw9@xuk7RR1fuC2SDb^++Z=nB1Wkb*YU%(JNJ@WyY+ z8jkcFGi+8_Nfle6UyB`I@$8P_$1fCj-}0J7z8Tw&E5W$7tqY!<4j&#LU3x_G_OU7_ z=f#257X&KF%hU7eIP@}^^L+FXeDLlyAqHqS5AHJ3p16+ zbL?Y+v4x((X%@3Gga5poa?9WtFmGWdNAW2wy8QF|yP>qjpAnBAt0B|}WvmLHZp17= z*87JbXFty=u~hb2S{Tpge&e^aDcsyQdGK|0XgB`4xAp(TRm|k+n9ou5R72Q4m+Jas z&Z*!wYAla&%~_4fq!X`hqgnJAUzxNMqXw>Lu@i9;yBZglnw7um{i=K88{+gF5>C4P zzL@{-+iUUhYzFW4$zXRd`ZTM;Yw@&OF_wv z_wOhA5wD4CHl3A&vU~V14839~kdlar-Jp2ze}BV+@b_rBUoGow7%?W;A0UJ#prHjzy zf@FKg&YdPKE&*nmlS+8+1q(C%X}M6l4rb#^^WFwh9$w!>-Pye8LP^)D$Lm9myUH6V$M`+j zsZPlGw)OI0!6pl_@c>7>Ul@T@K|#C4;U}(N^m0M6-lejQR9sPj-_vXXH~AFekO1~6 zH^DLKsd%ga$EjdVxr!Y6dcW!??527=Oib^BB7fSRuiiFS8ebWKtW|jpWC6PZYZ%}5 zc42;&=?u!Jr^kYynI?*W&N<2*J3jQ5nB>iov{Rd2OeLbL+ZM|fw?0+8`TzApi9F4Jb-*aB z!J+;JRy;J4D_HfCJEL40(R{*o_CQPhcUCy;mL~L;plf|~EQ3X( zfdK(nr}tyb96AjovarC8XwYEKUgnAdP`Vg;V?&0X?}j5RefVmyA+}DXIzpI}D(avh z**ZVG|)AEGt)=SZ<%RPO&S@m@9e zy@}65O?C1 zXZBXi&aT;pSp*gTT6;9z207Q-6GJztX?JgDGQ2vq)>@}R>Gz2EBH^3^%$NPc(l5jS zpP*|crJ60io4aP@gFML9tR%@%K;JKC)t_yRap`may<)A=Y*|2}oaw(Clc10W=h%;_Z z0u~xN`S3C~Qn-+{&h$x3sHXp^J52)YVxaij3Wd#2QbwM2@Bk>At(gJ_D`98W-2V=;kXf`%#^=ORF$E8touMJX5<$gaUGd!=_6OBx`pe+q&KE@L$PvvA&dHX+QLFmldsD!qc0 zvf{MDF8Q6f$bH+ojKjmi+OTzD{t0&9_>F_I7Lh$N8e4u*lY^C&i1;3-?YvTRrUm^? zz!&sEf!Yq@8ro@k9{Vi8RyFsbi#&!MHd({9$9jJ#e^3#Xo2>}9?V5Dn&>aFinHv{W?JtX6j3nKWqvsc~I?ZQ@xnAfwTuz{sec8>HN0> zX~Tu?j+?98R5;*Ho1`4zfv5QM=g+vG34<|mce|{5w_m`{+c?mw`{+42IZvEGAbOL! z1O9NM9m{z_k)1-e=y}K(Ld7FKmd#rIatZ+xOX}E#xVmv8SdgEQ}9qbD75e9AnW>Mejd0#%_u`Ex=IFnGfqRrnn1* zfs5`V0{tTm)2JwnJ%}@7k`oSw@_oG6-Uf*tWtt5&pZteXY#e&OuiVN> zbTox)FA8+z3MjP3RCi&FV{ahFxX~YhGBSTK`8U2ccjSS0f&tE3$V0F8Qu@{5FJV4D zR+!twWiOzh)v)+TBloaj(x(k?KZf0LLtObcj()$tt-vsrFMEM=@&=+W*|pgQ2K0D~ z(tIkKoPk9TTd2o|U8eZ|ez~7iv~rvyZcZ};@Kk;KC;0i*^wCzR^wOrkK05;gz0Szo zONQAACFuI!OuF(T><7CQB7~eX>hW|i!<(-hSRUC3$1gALOnn0blX7^GjT%$JCWF}? zh#Q!5nJq3X&K}k_Oh^2_MqoLQ#TNnd`o7q!B$sgP)rU(sW@+cgW>HD^ZvN zOCob5!pb>#;&-gA^4>yC$~m&QFW5=}81uYwbM6B)CN|#KvJFHBm-d zT3S-FHsC?~7r3opAT~Skhk=;un{412hjmsPz|MTEsSf4aPD#n+9?%78Nww0>gI6*7 z5#l9${m?`CjbqxD4BxJwA6_UfIwkTefz4Opa8u`G!|=-MPyPY+|Jno2ZhtoB$R8iY zQq>h4!i%iLb^P_kkC-iHfmcAU3re|{1r&Jm>d(Y%7t%TITgJ%D3~{Mq`50}qvISv+p9sRqrk9?{$U^`8=(T{u=m|@cA{GjLgtg6 z#*0gCFNwe#iN@liA-lPa&OinMC4kkA!A_QUg#8H`HK6g^6Veh~e>O6gc?rzhp&yI`E2^_d*Dq*|iOy?F6xJSWHHyfh)*x zGBmG70qfE5$D{o5TXlYb;6&v(Ssct&9-aFRU$`E=4F{4g4??7JdA}VTYk8(KhEB3F zwlUQ7BhlQ){@2JiX2+aWe7AelTJo#T@OlmPqnmk^NDT7RG`D}ktc4()oB`LUM*Q!Y zdQhD@C-06!P7+|&{6g1#+z=8-IYF(hMuEDhZYgP3IQ||R3;R>@Q2Y3x5CT;E3(w8R z8iy>a?P?3|uHH%K8D{FXz26d3q-0*}`L;YeNm{q_KMOR*<#LSOo0l$Ci`vIU)7f87 ze)E?c)gZjkomUa0Tk`H5_FqV8;8+_;NqO?FxQgx5n6ALI2DH4!Vx%ZcGWb0C!BmSI zROhe>>f=k|2sFhkxdddWff#++qg~PkuP;3v-BY-0N-PvN{`j#VcI>PJg6Yl(eMYA& zEtFhRy+NFlw$~OoIK&&0nZyWf&Yi+=RDP>f@Do|wG*r}dy8B3b(*mSHp0h; z{v0G3GO{YGo4bx%b>8i?|I2ADHjFz&rnwKTIC>yw$Q_IDsirx=?_@&z6?eqt_E?LW zPX${G`^q|ZNb%+fZdiT&!izr}7%8|U0R|`_J*5VasQJ<-%4w(eyz#I0WRRyqvi4uI zBhKD|S2M^MK@<=mJ%mCK8MV!Ow}SF?-$<2)D+m%24u1YTG$4q_8S!r#G#`?XZ32t9 zkFbTS6}c4bU@9kEuC0)Cv;0T_S)esOI}q2;r~*6gQY(oB2AJWqDc!N3}@zv zEmOTAHa2XXiO-DWRhVNhq{VM@K0q3A|8pvM-MF8DM0yPzOteSDVVc-W05;q%NAqtw zd}94`2sf7v+8-J~QV+gc6&)Qt)oLwkW0S$i45L4IO6JGs@T`ynnW10phYJ19kBUoA z4498zI|2Y$?Z=l8L0=~k%tF>{t!$n_qlobRxcJLi1Cf**wxb^yybh^nh)GV(7_Um+ zQZRytj9_v>Z2u)1CuSW-GKY25=`Ur&94XOa?1kM$F8leVDF(rZQ- z#@jR}>)jm$6n>N7H06drBe!WigaS)arZ+5M@7&jk@k$I8BZyKkJZhy8gZ z=nmdO!oA`L6g4GqI_pxGkVFz`rCnO7)^e=U;TY)%xJ2sD@noyK0^Jw7_yba%V( zQIg`#fBc|){GjUzZ}5ZuCSpkY_Y?Rv`P6J%-oU}*f~843hbh-?T(s&i)v6-v7Wabv1_riAo_ z`Cp8v#mSH4w}}Qb@dIQr>jHk0+N5>7f4)o*ln_QQBlpMR2G~naHNc{)M%%xw3oi8!SYKw+;w8d$}TP$_2 zUtr)dTn;=uC(k;Zd-<=50jiy}j&=4A+O&Ab0zV6BKO=e?)#&Bqqw*3Z-P~YBmKD_f z@Ob103@i4%Ob0Sd8B|*l z&)s0{mDqdm+cQ~XWCF}5424N&Cz`_prXjg@!$Mf7YCa8E1|6DCu1);Q1b++7l(#Ps z99JOXP`Xx3T3SgVb*({HPtP&ah5^JR^Pykr>5$lQxZaa47jnQ&fNK-PTux37Ld669 zP|m=Ai%L|Lm*0Q*khoq0tp8v0g-XQ8x>QB5gatsPoI)yX-11b>`|;_m0ilb(Uh0zYs%%(=N%(H;E^5w{d`=&T(D)&a--Ea^TsixYOeA< z+1d@Mnm+AmbBj%RV?PciOB3CxcE_3WXOHJ*xtnHXGQ~1|MTXrKQzNsV8~x7NszmdL zar=+BP;ZW%L5R3gmc>Lt&U`Ox;ss919kwH1PffsU<%>mGxGj}9w{P2q&?WAvuv~h2 zdhA6@sIh3x-bzKKmMxY_n(88N^3Jy;OdJkKn(ZK{ks)1QEadns7mfHaUPi_!{FKQ= zZu)|IY99+lvvP@t!D=K}XU>d|cq&;FrgImtA8MQyt(1I1<8f6AeAFuCW()Gyhky3oN z5=gfqksf~S6fePiXN_K^yROElIl~xXBHfAZ{3b>~}T1cdV`?PFh)a?}SaX{m)O5UHut-Mowv0X#6V!O{q<yr7AM|PXD!M5TkG$afov{zW=dtX5)AFYA~2f&Z>Tw3l9$Tqru4cUUOXmTigfN3<<` zfw+(MZhzp}&W25XedxtmvN#!vnq>D}>JdiIU)c77k4E!y%~P>z`Zs&6V=kTCwR2tW^OdRdHFP6= zH;c?T2I)I>k8;GUxzO%r{4fIAt|xwkp5p7e6*6395vhoXEg`n?eP}O$XoQD(r_8tR z=FUenNc=;Mfd*g}(Hg$Dny@v2PvOO5Vb{U|OO)o4v(u*ePzsjp*xqsWBsONEQy%TFk~@3$Es||VkShxClUG2%33$4R5_-$%PVA#V!V*%H z)Fgiid$Ls`*`^e1p_!KeiN`57(#@j~4prm`xL)v%5`}bQUt4dh0 z!{ZWrYvRhO&z9b}sjrj7&z@2=`k#YGn)NpM=n&VkLbe!7Rt{o61w!DV%fNhl*E7Bh zQHW1ZyFqjnoW7GM_wa20hc#M3oQ*ET5&83n|M>$sq^#%kAWw{5qM}9DUGX{c$z3c} z;Mkdfo3-^fdo)ApneVAHxkt4dNVQ$=1oeKjo8|dx=ccL987mnXnPt1fxE~V9Zr`~B zWI#ps=bHynB;nFlfB&4_t_eK z&&j!l;8oChOyr=@*)(1z%{zahtUj$6*=X}FyDT;I4v))Nt9MbozD$}}oxPT+M1~1z zQlR>rp;Q)YtBJ-tgFy&>gS@>jO8uO-F}qj4LESV1W+xQ<#|pzZ;4dvmy#52Fe%3g8 z*zVnqs6$VW6YjD?0UyOUE2#%26iXgi`JO0URKBPkoM+E%+E5WhACU#s^kxc*z(Ov1 z`qM?J^;n+(MdTq5OG`^=z<4KxAWTTbLhYmkL}ft@qIVJUY!m+%bEk(TbLmob(uv_a zca3#I-VrSB%tp4P{Asx2Fh`BY8i&FmjB(oMht=YU1FpFlW#0ceFfE##LZeFu#*;QZ zCUhadOi!~*MaDVjxQLpAfk=YGy&jL2#-|=V-NDsb`QCx3PbtHFnmuFgZs@;_s4^G*wGVNdcyu>1$e>5w%LVTykiBwZ* z59Lj-!h3Rlc=js0X_zN|PKqW^zf@*i`|pav+$`dNZGzFb7AaX3?;;Tqs%iS5?IfO$Bpq8d#V-?9u;o}eaJ&FrA5Z!;FR?AqH?zv zDwURakTQ2=nkmp}-`{i8z;mDHfXu_^phtYHP|R@I5T-Vq%m+o;69PX0o8a5;qta`^ zD2ZUHGq~XaqChC8;xS2<0=Z6~&KH)_m{g$4kNlEcOt41uT4l@AJ!GoxNP7GjL3Xvf zf~x5q40!dDiFX(~)gLvaU3k5cFAs~Wq-BrE#j<4n1cq5gCB7=#rq@SZ-_|T#$vh(c z6>oR%bWemVATFI0AR`jTF?iQM9Ow!6%d00PRlVyg7!#1GE+!W+>&Vj`#jGW1?XxLb zEn$a_%=>iJj%afQm70NiCHOk0$~Bm&Knb1U*9hmCe(j#-FTS9jHJ{;Np? zUBIP29^!a}whTj}c>7h9IICbnt79m5m#{>wNYXA)ueRtMDShv=x0iB%&PjA2QVJ!Q zys^~st^**jy~soVB_5uI-G;h`#*X|mrhOGN3Q{KSBGzkE+ZfI+I1wnr6xH}ZlY-Yc=7p>| zxfwhyBF3-10xmB_jfue)JM{1<#0p+gKEldMxpSq|TelM41dvL{%$w`xTcPDjX_lI)-bldb}f&*M=G=s>L=k}-hdvO$OGuu?ff`MhwP z7NARq>58M(8K#Xg>@9vtva5rb>62OCn#vK3I4&ZbLXf^8j~~ZNtV7*8rVn~Wo}G@4 z4k^H&?DPbFA_iFU-JSzFdKxS_kUJrY2e6d}TAdqYCHUw4dy3tMzapsD+Z?z>vT`XE zZedvykQKL0LY?58xSAXH7GWpVX%6hR+@rzK$_zUkh2WW?z z#8Ow{f3aC@IMrFtiEXhw&E8fBXHwg7MPjvmk%aO&%E5#5ujB$O zAA2V_^jc7J$?Hd{{~$lb#OkSd|LSsgd%^ecsP>0xxS2lraaaUIC9XZb^ZS{SIz}@S ze~zRrDjZrt!;L~(sxNp+iPkS1h6TK8)340Fi6JMK*%ia*k_IP*{E}CIK~fZT&kW{!mu>l z*Nd0(k{)Z>HI*@p>*58yMf?1Zo!czJ6&Dz@9g^T-tvh_{lzMRSDs%d;B;QCup@WRM z?!v5lev|lb6P1(_6pbM-T}YRE*S%(7MZ?qj&Sy$z%F4@qeSMno>%Y+Z0!1n#!o3o4 zZH9ZPJfapHd9`Y3;A08lHg6uUI;8zD*{CHb7T12SMLQO1()UDGXR(I!r$spB-{17A zKS#B|PTNa?{OjrSZ~~vexPV=m68xb^CGGv-%tu{)Njfm6F;~92>LbMjzP@mkf{eBC zq3A_n@`LkAWYIsps8V&aNOO>%FxGtg8!43%>3y2hz61F1*c4(sXD*kT3f_go`A7TC zAPkV+Vw`L>8RN1P`?s8$rD^MPP;wBW)HCEeKEseVh*%st$m>YRIcA}wgo^+w`|<wH7&P_3=x%(qMkM7rKtyVbf(!`QD zZoH?~1N+Yl)YDQw{aVSra$>(t_{VwbhzTKN5X$DWDfnIw+Ym0?A&QKyxHxrsj}z_4`JrUvF* zHPj-2#Q-87*h1fyGa9-PiS7Os$lXu?@3GY=BXdbjgq(c<{$h%LRn{pF&q|LkCz?K z(yQM5E--ZR+1-;OYBO96^`{%@7?g033b$~JB+&RLQGOER0pv0Giuqz82va^zD#ehR z`Ue;5#xm#UAAQQ_S)ZC2EVfHIjxCU*V#>5#)dCmiCz3!l(OWo#s*`rz6xr1+R~r1z zJ-N~0W72=j=dVqCUJQtGK4|BYi_nv58?&5?lIfNjdMq@(w?2sL(%W@`{57V8O7;4Ty7jdB{6A9A5BJY699cq3*yMZ zOex*n89#wQ3p5ch>gJg35Um~b`ABINIfll4USA-Lz{{55jn+QQ49mC zukd93usDhu<$x^)Q{lGgx z6bf(dzuKwY#@DPwtc*iybgq4K!|$D_?<%avZ6RH3n#^3|M%h;uO+Gf?e5_%wmZ~K; zsrrxdf{{Tn&EV(7MEk_GmAT}#`-Gcd&tO?{1#V4Zrs}Vl@%`Bo)$y`=WR5T1U@u`_ z_rQj|>J|ya&&qRQ_q@@xT}?Qjb<80w6*wy*vKdkJ`si&`uU*TYNo+|tSlOcU%i{|( zZSvIwd%v%`GP52}^YaDl)v*7GZvbL-DW)0Kv_kapyyr^W=VmzH)Hz*37)D(=fvP+O zs?rzT`!-dlh=!Uvc~MjLp8qXu8N3mGYAp6-b2Cb61DF-cW!Z2GfPwQ+lifH?Vj)D(69 zWa0~}?4h=|wcC5W=kL4cV<{zFeYDH{X~^*Gzwov%{Lg{#KLk2%9utakV%-}xPhT&L zjX}`hV3~+&q0=->K_{!u=_uVbIAorLNeKXpQY>mm@GRd-ppG!d`e-GorI%!vDN?Ohi9G?$Ny{iUHN3;iO0-AI3x6Hae! z-v54Ns2P-=(Nis5MuW4A6`RY&gTT(&ij;xs=*l18vf|$-roXvS2d77L)ri2Z#Hp%& zOOq9v>rUhzW=N%dd2d)NsQcF+nCAta(qGe48f?;ot*&i9rtD<)%}=rL#7>n}G@DlG z?d@eM$20LOI?dFDlG~JH9Xqr48q!;QzF`CDhl&cbw%p7^#FAblk2RgC{A764q8cG4h<#L62Lq+^5?J; zr_Ke#4;xcdbTmY)f(|yYjk39p%B35LEd_%6v5bwp zq2N@{_yH9<*0y^~pFVR2OVpBHa`{l7JA3xS>&0IkUWn=0L_t9d;aB(Ai|KG;HWcR# zlqP^VjiJ1}+3aUDf)0ww>Jy;n9r()H%tH4rfu~{Qy1V3;0 zcBuB~=F7pnJn#^?(fCv|pRhucvobS_48N1eed6qO*|y+=(MxspsT=+6-anJ)ILo!) zX9X{Ih=*vu8s{6fD1FC$@8I~s@@y2dE6c@f|E`-`8I+uTUx_B1>VJB9t-$(p=h>?{ z8GE^no|`su#8&{0`QRvr0Ttar{Kf^B4@O^tZ+FWj?$J^u5pB5_(Ux!7bG=uS`~H+n z`td4^nhd#z@e}`j&BXJ!R>uZO^KEw~5cJ({#-M(6JIujmP3S2nTmk3gYV`}5qUq3r|BFGiTSn$K@ zTYYyRayf`qRQ-PN-Wq|Wqk08FDY&Zxlwb`~#a5X^SXXf-In6{2qhzXl^u2O+F0Rqc zMr~gKFM-j!CZ!@)8DQ|S6Vap7&*29QDGRI4>O8ER3MG4aL>7m}R~i`Ev)Es0&tNOj zu355Dvvm#e{&kZW;w{EPSb_Ya4_}rKrtUo@E#o2QO*8`8K!`>kTC}{BzRHcficE|o za@ckw4Ec&fZ|RhQnZR|ZeI+X6$SV_k-a(3^dB^aWYW*#4!V}l4@p!o(59=A2F4+GU z4lNx5&^lubf8(C*7%QP^GM75CK7aGvHdQ_OsUlj>|vC!{A3^5@YkuUu%3#f11j^>d9C z-L**aS^*)mn8ySOx!p9R~>ECEJ8M5m`|4Z%dw%U!s+t5z# z-}E^s@`Grcli1{sPiJKLAR0C@BC6`dj_RYMY>9)|K;2Hyor&K^Ou(cLcqxaL0#u z$GgC}_)EXvbAj`MLYl`g-+Y%vsi&e~Q)o8cWb`X)g!)hD$b~&Dkmp@$obrA!U+mn} z2JN^HlO&=c6IQOoOfZ3&`iJRo#R7k-?T=E^WObGi^@i#2TAhUesa@TrczAQ>T0+_Y zr<%3QN!sm1b;hu_1D3V-+ARIW-0x*!SUz7yxb3gpjttg28-E1bk_HCMtXW5=C%T-y z`CS*BR#}*Z?^gz1v}S&IaUqqD(oP)6Cj>Rvtl?MC-rD)wa*y z$>FmrNUe z)7n61XN3G7JsL>wwLc&|9lYQH52zR+hiZuECh{+_=Nj7bICQX}>jMKqLqb|`sIa;O zW3}rt-Qq$@!5gu@FFaGP)r^Tw+0OJFSfrj)9U#nJLFo53!H>rneN zrjI1uLl6AnsRW(X9O%zRYu3NuT=gJc^WaWJ+I(e0y@5kOUiYhHs0*Pm44f8xayC6h zmX3iNYsdbESvfxu)LP}lO`nI}34$UC2bH6*Edw||rHau)Okj7#+#A}3^NPcFy)rix zeROMjMt%0GGR?hG9^*qUf9Lh@@cdbh!p`)W??Z(|BNc*ZVf{_JIIzrF93@ge_n^zU5vw~(PRQMQHBqU(#To7_);L{&t zk_?CoMCyzbeDvs_B_nImf+C!~v*oIvXVPC2j7t5(-78nsaDnw^C*6GW zUrBz<5XS?{m7t&jH~uBpR#F~5#zQQyHZZ*Ll#@WjeLfa|sJpnt$F0u72a1cx{xV{V z=mNiORwd$o1{B$Ka;)^B355(DXTe_p(M$5ZWTOsos1)93bt?r>oE^A>>eY^g#`F(FBkI=$jdVzw+B>oMxis@71w@_o z_CyGyj$LMCVp2*{wM2dsK>l&u7X43CkgT_@>+rZAg0$+A)D+k?!rU$;Y)F10#!0Ef z3)eNv*b*GU`}?Ir58vXGa*SDD9-)uzm8|Hu{a4(izJZt zaS*`F6DdL)ajHZ&y1Tdf-EEGIC*!~UsRudlPdP^FF;GaNbMM~wt{25DNip8X!O#CP`Y$UEY;-xsyoaiY73%!@ zqtyb|Ju~e)QclmM5gk@nd3g%~S3vInSY|b8194Go+tZ7SBCBCs*t|-}&wBnII&z;& zReDz-l0>a{b8|!7+$7pboO;*;4tKq{=Y0aDuG0ePlGHhEc=zfc{-O+tA>T^@yuE?T z3bGN0IASgOX;ipq?e6aGJMQjTW=--187IiYUa)f8MFqOt=aRLzx3}8Kb?wocUzq0< zBP*$>ra0V_g}bew7QhM_C1+sma-%=wY>1j@W@Q58s5Fd9GJJWA*x>=~M9IsG+b)!@ zxD>VFtM*PpgJLODd>4oN1RdS$E@tX`3rI?+=%NGSLz!el$RN6w|?wuEaTwSPAH0#E~97jz6+((EY#NR@Q zPTl`sA;h7Gzx51KqzmQCAGD=*UQJ2R) zV!LW@$O*flxv8Q>XKdKTCH>J%HwrRys+~KTsb`=fB2o?oCqD#=rQ#QsnAvNQ@BR2O z%lrLAB7~y7r(Sa7m$Lq+P}TEd3okpnIePyz39dtcTD!7NkS8Ym!fqqR>Rmcc-oCzL zEgZv)^GSMlA3kh2`Z?6wau}11zl$|Y=s?*57MlHOd!yCrh_y7;kRA#Ea0M}o->(%V zL34=HbZMkz%~`&Mw;cx#9r zhOxvJG3}*-4nRT2;Lp#AP!g;;x1=Pfn-?YDs90m~a(r)7QY85^@>N%M@j3m$Y<-sE zGB6l)2Jn4!->thmxI3vO|omFDg4m1Eedoqein(1Iw>3eXjA6{>yKB1WYCEjrTB;PJ} zb!0#b@_j%O2u4isjA*XV6U-6Ym6~ug_wC*5I6bOAVTHyN=tiIMN@b?K2WacH>(Zo& zyba90R)^F0`HBgP12JI1o5LK->_POb3*Q^Y-eQ3CY&WL`@?v5EjXbs!?ZCJ>qInu+j`4c^}pH4YrdcKV)f-j_tLm`di=FY&i9y5+E z9;qAgUFdB#0(oUeF%l87f_O1bd**m*4TS6P|Hms`LLVf5*HiUJ@sDCs>$!jQA)u2Y zT#GVm>Z;}&AGo;oy#3@FA#d%#>Dohuh0CzId~;rdd!mk^0E^JH@T#HPIgWdVo7)Cf zb(2K+EzoLRf!eW;N(v0MQZL>#5R@P7MT_Vna1u=B2r3<28wyW~d~_L7eP5b2MYc`P zKQ?1>8)z@mS$f;NSPy=wPEQ9Nvz`(}#L$00B6}O^0OykP^G}prpAgqxEuxSi`$!X- zHVVF*k+3E896T+ALje6TCX34k1~II35bu5Q1J^2I-hzKRM44zn=Z`cT zI0leBEl9R}Q#wLFmz}rVvC%(kGBIvjo8l^p7gKa-mcOumZlA2f=2v=tlzaC=dPbP{ z;cq)AlRTCHU$H)WoQ>tn=tJ zIo`A>IftrH2{~n(A!a7JL4snGV7P5A+FT?JvHp35txgm#Ig!3l_ZQ8VJ$N*{Z1<(A zC}a2zX|Svd&lVVbq&xc zQMU!31OA<-(Llj3_!OdvpE$(lP{dKknv&>~UhIm? zXR$i$bE<$l?AKJgD`!^}bnt-^aFvZeRv?YIEkWKZ?`bT{Qp1Dz;}&y2&HPdhV0sr? zTIq7PzwuhlSnq>x-@c(3`gg%!FIk13qmw+Er6-cm$Ak~$2041qywA)R;TvY8y#tv+ z_R&1%0?#OdeN2BiKI*L9MZ5UR-7NaDA+fvxS6tj@uH3`9he>vj75pJ8sb|z}^3vW@ zWF09~8kF19@k_j@JrWIdmjnWVAwbjsvX6&V3GNGI4>)PLV->PeQck!@s&?m3G-zm5t(N9oK^DJ3fauB+|3?>b-o= zyLTTwGpUVv;1?szT-qw2t+E6NgcJ4u;9g}vwHA4s!=!$Mj5GihEO_oG*~^m~6G!GVOD8s>J?wn5 zr7`tq6qZK{5x$pzPA5!D^^&fV22lxz<;k{W6HwTF^KIQkbPvTDDvJu*vNH{DJenv|iPBD+L(t@+Af_2)qFJXp`^ng~TlwfJJb@y(uUaV+0m04-xQ z6k$b#&ts&45CTY{iYclPB(a{;qMp0I5v+D=w%kr=$%Dg(iSW=?;Xo+~i3HUb-|>iW z#^Yr}&5?B)AUxfL-8IsAV>ecwNDMQfVfqzR>oO`=IfJ(+I$DI_Hr7w? zeJ1onHh}y-KAr6{@6Z@lv=5;pgj~8lt@kbbIP{MRN;r01Y0}~$N-RbjDMj$X_3t~E z#-6}6)-!wGXJKVtx0KLE%lSRBGuUvc0`Q3vP0`9-zsokkIl5n5T^`&&c?8?CLmpe!q>_e4xJ2VP;Sj%2Ey`7p_O(O_SHc035ryyC>%GCPs35QE^vZ z8vSGv8!QT5B_qPgPu(YwSf~7EVX1TXLb?oOA_|I-lZ?}LCrrO3B+r2$;^j|6JykDR z>j7n;AbjB;9<>`jCglA)cgDDOttS;;S)#w0#8A(}?YpV0S@&@+D{B)ehEv8Z4V`}< zxYyQ8U-xlR?a)5`>21CG3S10IZr-fdUy(r-tySTB7{p7T+M6Y=YV5q%dlL|V3#ui+ zNb^P+3g&`Uyakcm542m1S0~-zfkf1QXKm`oIW23e<7>>DCN1+&ua=fS_gV zag+Wvz3Ybc#Lm@i6M^``GdtU}EF$R0NjnG+z*z@AQ7k+}l5}PK8f>y~TA{p+_-aG? z^}C9$Hb@RLbZAWL1XLzEe;vM7!%aH+FpZenS)g}%h=)ib9-=w_dSAXu8>)V7l0Id^w8axk>9TN{nHm-j$qG-dDQr{h%wVimd1K&})6gjb` zdm0=A)lt&P8<3%2lRf8vgonqztsdI7lpU<8O#{cW44XfWXYe!3YJE<9r?m@T`~69W zBR?VY-E*BvR1J;)z~>iz(M3#-n?F01mWol51eT6$sPEz6*^Vsy^b{vlF+gcGjYHre z;Ue+ThGz+_N@+0>3(eZzqx2S}2V)D6yNMnD<=a2~LWXN6E^SjaHMP;ABR@fG_t`zd zM-TF7ChO(0bn^qcSSY9%(ds2e9nkOquz{I!JUH<+EE2LWh^-zd>yTYK z!#;sl?ic8n3O>@S0NlWm&QU5z62O1|5*7z^%F1!)FJgR|N%)u6S1JS!%->kCthjh- zW#u6FE{xnDjEZLZ*!&0aV$n(XauFCO1x-?W+v|foJejb}b}LRDySfZoCz%OBXe&+y z0k0n|_O$R1qNfUQ-EC}a3>hQskxRG3BPE{marO@DCGVS_pK9mqVWR3hJf69(5J&;d zuL=3%g%q#m^#1_-SNQE;q7wDDi3myB;r-~9`rszQs&JeIw2AWwN}p-wPhYHhZ|^@o zK8|5*`q8n}k&^DC?Qf?-7tl|jAz-@yXG3s$3p16Ri6^bF5I?`h!jz>17T6HZ1*;|J zg3w=ce&sC}xcs;N*(JW~vcjLFk=%!<##c91LCq8s&S^dVL(bV3!cocvv=9F&9QDeC zV$}|4e&;$YhyamHTxvBBkjICzVJc%Q+#ib)i~z@zPu~5Lo4m_&21M%sfOAsNZFG6g#OUK z43#l5kiOC&E5Tssc4*Y!wz4x%^p?F?o)3u*2>>+FB9;GBTPK7y>DAJh%NP@}o-|UM zaBkym`??WP6uEWUH#P9F0O3`n(ed1SOolfwG6s3!!fho-Yb1p?R_{n8s21NtvdFD( z$5QBfVySum&3Pt5#Ld4Z7EZm|3P|<-$onuj(`?~Rz$&L8e!2rJPrbE&`kv6rbvgGN zR_9N=8}~1;^w^Tf%jXLwcId z4AYQE7SK!px4bkYd9SiyUoQ`MY^3y5ckRE1GyxoU1F0qeSD;f+jBP;H>E?3YoBNu) zAs+%(fCBp0&9%24LJ-J(&-QCEj9;%1UcN0-OOC#a5Qt#q#gWAu>qsX*VNpjXppS+5 zVb_q~f7XrmT2sIYX`$ZUPrHQYi48O1A*$zow?R>WdRPmtbY84=iJ<^h zx*<-E!8+kJx=w0`1GTzoxAsG%Tw)vk-k9e$`AUVii>NbYft;?GEtc(O;(}qVcIRA1 zl*!84&*Qx2-uKq#`v2H_&#wbD#U%KX3gw#}=&Gwf9y7xhg`jSl@LqXy7Q09|71%k zc+eGDLVPO_{m@m#1}8FkyN(O}A+WQ!%2_JL(f?b-_!a(E10> zC7GX+;2#pg&miQPkDXTp9~TrBR^+%17!QcvWyJfFR(c?qd1k2a5oV0ES=EyM((kpo zx0e1q7c*jUGz7^&1^)1`xj7T@=q3H2&HSyEo$;|@BvIQ@vny|((81A=GZUU4SqiT= z+ih>J!GqMZ67m#@(OvZR?2}at2b>fK);Jqs{8id%JVuxhk ze&aicVu1K1_RVMU!I-kIYagTaw(mnXuCnndRmFJWCh>T`F>AKA4e;R1I$jbSZ_M`F z6ndA2%?M*UR6Eg8Iz^_PKely^%ld~xfT9Tmwjx~jyepQ{Vi zp3wo6+lOfPmTLKGBv&n7ZdSezYE)C+zJ|}De@m< z6O)G1b%w3e8Hc-@T#O#9$|hqut`qazQ200W-XjzG#V>ImzG*br~ib#WQNtRKD&3Kx*2 zm~}VU%asD0sLR2#0=cidI^K`^1-EhiILHbCtpp*w)0yHiPUE8BR(YRVe&4I#cg6=y zH;05spcTC{Cv;l)#vvB1=&2d0GYKygAhf=L&lsKKf~aKt_G@b52HU;GYoxxQQs;Yy ze4|zGgCc_X7-r7w-MhEr1{KGonzgw$7r;SQCjt(735bePeDZGxdwdGZh|&(fGR}w2 z6Vf_|j`H0eW)ktpnTmc(p!lAEf3W#5*!*gm;A5x@CM6uC*CMO2JqVxYdoC)J@ea|& zPtN>j?_&kWKFnW7myZV036vUxBG8kGLmGy-gJ7AxW7*kDWc66CrMGeEP)uHhA5)VQ zx$S4^5UF7pr3t+hHY%C40k|IdCF3$&xjKf1)i>t0`E2mId^uh{zEZL$hbUD7i#N0a zLp_ZK9&~YNXII^aQL-jYqpK^kW#T>e-zOZfW(6(UC0PIzA`v{ua92D zF0|K9#yu6iaiHpzjgJU^bak82o0S|K5_WBh^q1ImK)f*=f-r~DlDzt}PYxxPa1K-TM&G_1ASl<;kp#muO^0HVO0s`-onqBlI$QIkkJ z7`hL^H%bhk)wMPW;0KTOobIp$(izwc8L6(oqro;Uu@OopWg)ar_hR;aU zMNaLaAddE13h_j`MNi17)e{JprMSi5)>6;+GRb<_|brjWV0?HW&hwanC8)HGUAO5Ia<6DyTIz>kpT)JR)(b3LL zv(pkbgxIBOM>{W%BaZM?xMpWq+Ntf)IX?|oVTu$sj&nnNyDQ(sK#E6UFBGREEN&Lu5prsT<)=d(UEmFTu!T*ZV^YSQQZb8 zfup@Qum}7Dr^PmiIdM8PB4J#L$C|7SvrU}GU}02e7LmRNz7PqHH zrvhgIwkf;_PUF}`wOVcMJOETtK8SRcunMB~81YMQOu(_9c8Y!uy?vcm-3^&4Diwvz z;24-GXCzJC&sKK(=mPD78#oPgLe)Wdf+c#OfW8C*U0mEoP4}q4a=8rOCG*x$6)$Zq;uGBGv} zDJBx+8w)|CfC)hs4lJF3(9opr!KjOJWFP?5XN|NDJrO`Du+Zu>c-0vD9th3oU3Ik> z(UxHSAC+xk9SPBrc8lI1M3)1A!s7zXuL19Kx$qwt&4u)w0~5b8k(a)I_wIOEn0|~R zyYxnL+?dbU^V7(dbJ;Tu1dA1`SD#RJs8vG(N`EyK&4pfFsE}POZIn}YixG8I#TusE z9;nNW$&m!SYQqAU^{dhn6AC(&m3rda9-G}(4`et8vT&XM_x&XB_f+jEc7uBUBs#DT z_h}IkE$wn%WE`7w#^~KMF6xJ26AH;8ijMA=YD7d|R9gBN6|?jC#Yk~(1_W%F?MlIiGBNvruubr5nfHj9BwK?cF&p-dYul_!b?wGEld)=<(9dVAf;)`kdJ>faK zjQeRv#|L8u>Nm_^yoL7#9wY;)r}Oy`lPFD3sg|mq+)3($JO)kP{$nLeK5^Xe{5y%p zl(IVy$(iT*Y#kkA5^(E}D-X2cZ3J^Z5xngs|B}ssya3rG?+|6liQP4iOo*E<+_64M z?y<{;3{PgccmNf!JlDTZ2d*`YfZ$;Bu#(yG9ONftgDI_>pV&046 z$mQGCFTa5^Z>&|&qe7&lF_F9ta3H8sP5@nKD_zRMGP#=6$5n8>csG?w;ftK_TSr$- zgt=ts_3OV+hG>%AM_yBdvGMb{H>g8tlS7jeE&RhqbvYc;tHudFEkDNW2;#!B9 zmT(Xan1nzB2vUe9MxalEB5!w&gOm`b3kib{5Nj$wUVDj{vNN! z;(z|mbLpvboBZH0c^G(2UAdo$UZBZGJlW~jKd)8-POb3L9JAKJeV=;mIzZOI^wS>_ za^OxO-&ZR0+x5O-n;I$2@@Dy7m!{%sVJ^0?hF_=uCCjIOewT+xTNF6oWO;x6Axp}C zE_FdVxnJbv$@cA0U-~@b#Pr|6S!`-wlL#4cdKc%nzttkk8?W1EH*%MMyIdBHzu&fK z?*G2+@Be!fuwVZ7Cj9?@6W)k}cLv$eX9Lei?O+^i<$b$GmXqb=sgiJ+Ns#%jIbZ)8 z#Z0DS)t8zxGv_}3@@~N*mK1noT+d}0!PN@O=o$AIlDQ^Ds+3V5?{95k7Du#EgJ z8Q22>`4cJi>9FfLlbowGpk7V*JJG|2 zXzzN&C!_T&K=6I1^;OymlhtOG>G75p0<0|8ul?+X75WAS)&gPNq;S*af^$jpsa=cv zmdZ{DJ@bD{FI$meTBjzzbtSU|@J?;kiMq5_pmuFFXDSw~MDuA%2XSEAYtlolz3mbU z5;3u5H8%J>bJ~uDJn)m#C9S6c(jouNXnndo*tei;tKhJ>>F0cbK>oEtpKn}PWPEpD zyFi%p((v&}|04p`AxK=%mcEE??IAS#Jw_W^Uheqi&ird&s=lv;O{9Bk5u4rPwJ1%K zpmz#B+++0ey@LB!3oP=n|9qUjt?-Lly|Y)gY>B||(8WMW%mt885pm9%WYLcM@?>V1 z^T@TyBh|M~y*%$i{CNDY!`i*Oak8wrX_9iNeUe*7@6uYnG^35{H6F~P9qi^~7J02a z_sB{u;tZo!lr5E_yKi~GUb|X(WBsx6{441q3i~umK1V3_B`jzfJRCBg$J~NC^N*9I z9-rJ+H}8-v4Ps}#)0MhrNLSoiIAy5yCHn}&IV4L@RrU9Ll%`^i=9@*Gm6d(C0s{ll zlWqq*t;UWtGqrOyV8y$>zDo@$?P#v1c_TqisB#&d`K9-dsa=PC6>@MYA+lOe_jFYN z#rSj6sMI<=T|vEtix!{S&Lx|#QZUg%VeZrBXI&#^ulvB&dUE%G$piRo8-KyR`S67> zqPQ?Bt*{rRCXz?LfPjHVE#t{|?z}-FUVj}~>p?e67xDP=j5~owqY$wo8Py&A1*R?* z;hyS#*04`zLYC^Y!?=?tLf^}`1rDn9oS$x z9A-)AWAzIYCgCWtv)7S`N&eK(bYOXWZ8|Gr@w8q$^(`OX=>MgA3wojkqt`rKc^Fnr)PVZE1}mDRV<%7N)D88U}a1~MYLr3@_ynwFXL=x7B4}8 z9B93p<$h7qd3CXyd%>#SiH0cXcCYw|!;*v;eZDMrmlJyGI(hs#0?L^{Zs#PizM<}( z&ZJnLh~sNup*G@y4c+vqsL(AEaN?oo(XXde>Z?eL8^4Q?nJZ?&lTY^;m6R1{AKeA5 zsGKyKoduspdvXmXx@uEe0PIodF){mB`v(NbRS|)y8LBGqGLw8nF{a_Vb9FC}@lHa~ zG28@Z{$#8{=$9`}+NH+Q3A+`DoM~cWg3J+9i3fw4W=Nxz4^?nmpobSV*_hShF;O{M zGoz7zdQGvgeBtpW5zCWPPVi0hQj=cg6a!X{C|{~eQp1H4(v#M1;_RHAFC^*Rxswy9 z$ZGMlm{eb?5N%3O3Mdzr-Zlwam&iZ#}vFLyO~Lsoy6vhU?0h zX;hyLJzW(;{;A`0ScQ~b9s#N-dIF5lA^7&~&9S1QqUgFilbO2CA8ud-Xv=u_DYeb~ z{D5(R%ACHnRE5zzSuEpq3Bq@dY`Po^BW&&@OC!XLMksRsg z`u#`X9hNaXz(#KQwwG`0C5+85?*hZSPbl|j&ON#Kr#rg1(YY^eMULq~mo3e`K9Qy8 zR<4XM@*QflzP)tP+A8dE`}48$hv937FYxZ&G4_X;Ccopc&HMdmErYqw$IlPrwZXpd zN#X*kR#s2|aDD4SDM(4*YwT5|3v`k)`tG&h(^WA_I>wL=s5!s8%zIlowq~QZxIzw^ zm}>Cd3p9Jd-*NW0X3~3z#h3f2{vn37uXx^&FmfN3A?*Jq)yX zq`$}dpo{U#mo~B4Ts~*%+;Q@~S=KrathNN?kMJ^FCz#^7&XaF;zmLi+E-48(gF_9o zP>SzlU)zIzO|jbI#fv9Vd=BFwkg6U#Gxy62L0nxmSmEhtP2-sXZ7gqT@c{OrrU#ey zg_uhzjmZIEuabFw6m@k|zg#rlNo#ZSHnYm8Cr_Thpf0W>peAn4mOnzHC(!XQ*NjSe zt#|&_0mkrNT2&@Fj9^cHUntd{Q6FrwS$VH{dTTD?%qYv zt@e_hv(W!o-rT11ML{`tq(9LLH$CJr|w?WZ>ulbtO4vz;8)2Lw>+6|FXeSE2uCip!+m zgpIUo_v=Ts+x2Dja-33gavCWsxASk=QnOS?O$z;_6Z)NmtAWW`$aZ2a;>r569ec&x+$ zRgV7ZPu{We(sue6CZo!p#9mmudf48fseSeg7LA{M&>G6&!@`DxAG@Vp>7VlEl-UOk zhNtHZd<+VbzMq|4zkN2#8^@n5QI!U|wLwc%l)-qL__8)Ztp~0x7Q7Q#T_M)320LyR zr7ZREE6?@l?QY70)v)l--XXzRB zLBbo*#fqO?H^S=qpDZm%hyP#was#?-WNQTC{oU)EPxmQJMR5Gr^b8 zWPfrlp_luUFNy;{(jc+(ggxnkDR2a4A;IsQp~poGzUre z@ffl#N=K_7^i0Ey|N8IO)74+n`u!qYo>7%!4|~*?J6%8OL{}V@>|905>5|rS)rSY+x1xwx;nHXeS_POb%9z zpCC%kI-?}eU@er87t1RvTOp1k<8CVrwOEygRRC!yfO?4ZZUzPx?;)wp$iOJjE%nTz zq9S6~a2o`bBnyT$tqBPUgzkbIXVsD=OTf#kjq^%tM}Otco!{99 zVA^FqenOz6Z?F^;>On!jf_=u22uia#v@7)_l+3XVCQH~|?fZosVpdr!T;HmF2qImy ztC51jP9qD}NR;Y#yV10<+0Mnsj7p)sfAi)|K|uk?^@A|6&SuE!ghhGa3xW#As}xMo zIr&N1i;r6f6F(#%fOwFmr;EfB=?f>`I^vxH#3Q~j2$>LC_drHT++}X=;FNT<)Y5tl zvA?aI-T3(Uf&~jGbgHdB7FC|PzOBM5GLozD`q{H*QHI7JJ96X=IGJE5)IflOlNwZX z+JsnOo3kr?YRbWB0=4U)F*?neug1bk^fT%_mB<13LdiX!V(183=C_`oI2=+ercGj54Vhf5_$pZvB)#7 zepF=zAk9Aj58qQsXk1suALgxzwW&Tgayo?6pvy^5n1b$jhRCgw=%8lmXjC9$>OuGw z8zPdplT>@^Nqoy=$qICEO)utai?(chxJ^Ky^zF&3n6^QIW*k~vSP(4v?YBc}Y7qnJ zaxO|xs2+c4+v=sU?Vgt`MN^ZPhX*M&2zf~;bneQf5W#-v%BD29r%qiK(vepyApvhK zcYC1*Cu%bBZ?&#|@H=N$x{8b0shZ<6#gqiD&6~mU#Re(r)Rp~RziG$`)+Tudj+jPL zUMj>VCBb-kF>V^XWIHvaIv~;ovCbLFV9Fty>zXUD`6CA9k^@F;7x@GPZoWrh@W{$- z1Q%9rcZpKj3C9c!_P~JQLjy5>(go)T$z!F0yu8r>aEG`mB>Y%a0D%$?(-f*!S@nQD zlSq|1?x1->>`2vz&$pJacyfz>e{>x8>$j~L5)+KAg0(g=5JYlLEMBl*z#J0Lmof!o zZ};xq$YbIY6RT@$Y{2nYA)x03(J#;)d?I8oj5e_}FIgfB^?@)m7j{2&e{z|?-HJ6; z-sLj1-E(Knf>a`WyA83-L0C96;8N&?25eqJG1yN67MOfOhdU)UPzwzDmrrwK7tEgz zT!2TZ@+j)igxs2F?IvoLS)~c`ZxDjMxEJbLcK^4~NqFH8J_b}l*6~&Nenjl^9*g|yYDtX?3KvmDn5EoLs0Fe6&p-e4rUZ5( zyCb@n%zY9c+S?V#HU%PJ8?Cl*-aO~w*1(Jjjlkm$t_lhYsBZ=KWnHXa@1_3k{rj)6 zx8HRp%bNo~)X+5{{Rx_=&k#gXb-25X4+#-XW?tKzY)BGao(5DgHgDMy;NdOJJWQd0 zJ}QSJvs??0HO;TSUdOE$1w`0BSB=ae(B#7E9zui_KYC<(xy(Y)oArIrvv8@T*(k~^ zZ~{To>Ufk@hqLBzff&%Q#XlU=$S+LV_MqH)f9SpyJ2VJ^cN`0`rVf;?u zsilR5+cfCq9cN_jUFh~Bsm0K&A2vjIf3}`u$1{p_tAXLOE|ew{_TRDqTJp8KAz|i1 zt6wjV;SXLR8k5wlcjt`zrJW38(OfhAR5M)SsU_dvw)=7}@wYS?y!*tCrT{;Qjfnwu zMQHQp%`!3ue5f%&`j|I=KImM91qIiOfa8J4*?{6{SXmHzcT1DLMj5%lI|`Dc0xeY?nTaA#hDUtOi9tYFLFpnb%U- zKEq$o%WJ+{1@rv{qR_!H3*!R`%F!4yU!(Jg=)K*rzUb-cnZ)F&jw_JYUOxsPNrH~> z93CFNIab-2_sp3yWX$LLv^1f*59nX2AO2II+}k1gwqoE`Y}l|*A_dyuni}y%8CC+<&UoKH)kD=bhR|i? z9YnZM4~+_!Caqmyc4PCn@&~@CcGPOs@!~7vw&~X!OXd!V&&BgQ@x${IX0!^q{uyYp z?>?j%NOdkg+h+UWAf;mNU7&p++dg~t4B9shEiF^-<7x7$q6L74jRQdO>%4+g)A!h+ z3XgXdV2D6-pph>ow^`F|Wt>TNda=vIoF*>7!I?iKzg1Czor9)c?G_gH3AJ~sqF18fWeo&_4ysMue1E3k_3^5x4$B*A? zXWMx2vdiC|L<1Zx2u@;k@gCC;h`q~5feof-b99rdsjf{bxc#3)sSo}2|Jy@}va~p4 z!5EGr#lQ!_xx4>|=fT5hP3Sp+dgDH5F+l5BFGeER^3|+|?KcVdFQDq(QBqLwYocFJ z5T+5T#uHy%CeXhQP%_>3JbU7zgwc-Mx5M5si!2>jN@i?hTn`Tyd;v-TW(fKGY2$r#p&tl6ZE9cuKt-J5ji<}uM(1yYF1)zb!(@$m(1q4C2%5o`fL9XMv|JN zYCT>cqsNXlwPg&)+c?YCEthRwh$6dJ-OF>A62Km%bg$6 zSYN7X-0nZ;zze=s3ot?Rf$x_KQ;B5m910I(;hZnQ%bTy2pd6#Z3|b>ZSchT= z=@<+zMHg<`xDj{}C^yNO?I5HeIM+Wo5fT!jOQi}ZKu3cbq{mNXXN8N4njtJ)mabfh z`IBNe50c_97bET{-`cvn4Q4f=LdNn+O5S3B($OKv&(G(i320I%H2|=PbtN!#u(h*- z5;nTt)Lp)O`TEFaw;}zc+>+?kGVW5KOS}IX-;O-S7@jL>9zlBr_|~nH?PR!ll(i^O zsuzld#K*;5*U0h%z7*bQ!ub8vE(_d)xj)>4ze{EqrI8ck>Q$T{$AMX{X1#bb)Mc>F z1XKLbet=wuX8`s;9T&mjMk3kMkXiQFv3(c_8pXJzHJIaSft>4*#Lbzzb0^KwtIW!e=b3Kk8y_--=1LbVPh8J2%3ls`< zAmyvicCgsJ`zbb>`nIiGPa^G4c|2mSr*}I%yanE>6ps)E1$_AB%NScv#i8<&CjibZ zK)vap%&XNQZYPQ6wkwgl!6&3za^yaHR)nV~OO`%S;)6*nGR{!(7;y&%b$aRd%UW2; z#d-fDDSmmRqbNiHbXquYaC5gHdue#|ko0#iK1+pY-66qO7QW4lE_$PsD-m~L6wb}} zs5=#^;Oc)!U%xA1^sggGl?MzL8Cjz6#Y~vihlz=bc>-wlmdE~994h0{444&)B=dvF zig7IDh9@7YK1U2BA3MPVd{azJOhOeR7Dk;FuBnbMiH0%O*CIERPt3ruKPI=m$M~R2 zkX0LMlM#iu_;@5Tq`~va<|k(o0H64s^`>#OvhDJ;$8n3tF9EKYHER}T($`Ri0-pU{ zId13jfjjpt*50&sgz0EA1Z`$NsQ;I*URBSJ={K~nurU5ePC~Q8Hybd}vlJ;}U&~YsU`OhFj9f7Lvc7dS3HM|iyVrIKmXExIeQ zMxM|;zrUOyTu$bJM~TO%0@qfR8(x!!FkfKqix)3gFB*ako2<({z`uF3$m(~-DzuIO zHrgz;Wr4_M$RftfVs$#hXtB^yNICjnAbr+$1Fwvk4i{%EcqpTp)yzr}HO0RRR+>PT z@#MR0qZ8f=E`_}?TMN8-GbWfAgipa=Ki(|u4Y;~rsLV+3m~DcZ`sK06QgKvCAr!$k z3F{G|CdwW2wvd~+k9`6A5vmO>AME$^KSn-W50p-d(9}p=dQi#03i}VaEwr&1?X}(M z(;L88>U3(_F|=1xnYPdk6zc#o2bFIE1r37U+82;pl$Vzy!^C!%^PBDsT058l;TIOR zL(?0}#8&|)u)ec%R&{Ibjh&Fxg0G%8r0}XYjokQS#A2o%O)HesWOSWRYfL;3w(E2| zK;*GXtQ1wzI=%>QE~S0j?SuvHDLLp zQ`Y0_oBP!(Xb`U`gn~#a0TD#VQ$P1a`QK5V#aHnNoWi1q14q$G1|h3$Z|jS!m}x|d~<|0bdbdz9%h>8@=`jQQvN4Rqnq{?_CC=tqrs5L2mDSwUr} zYiKw^_$S+m)1$`qE(&b)Q^zbi?({xxUtQ5pz(!?^#F*sZNlgAuT=7?xh3RCTGmMI{o1kkmv&1I`et)WGy7*BCrDVE>WU~?a#D&$w9qA#b zjW{3kz_JdT3sY0kwZ)7ma0?!jZU%TQkALX$h;Cy904&A|G#t37MzW5Vt54V56en-A zzk8RC4oqj8$T(;i)ZnmXcl~KSxy+BWPh~j14{&Ia{R~tOzSXaTau4a0H>G9JpyfWn zQctRk&Ty~8XAs>kJY(`MjF7@NE~eZ73$N^;#G9lQ-+$WLl(Uj8P9}=P#jX-JU)(&t(hwxnzxXNh^4_dRT-+D=HTsmWHz5SaEjhVqgn2>NKAjW>qZ*DBhY zg-yV0VL*M?ViJPWrKijF$BogA($mt~=%I&hKbX3Qfe-^ujtGW($Xb;){6(L21$Bfd zVTm6MFE1uaK7js=^vBUppA46q@rHN0CxU13jcV|(mchv@6!#axw_1bxZC_P5q`u#A zH>^Y|Oi9Ca(6{{@acH%5fVgL?*e(4ScR+hy?I(NK=df~$Z59*LFt7bo}XN zw@O-Cnk|%G&`$gf_TP91dc?#PgRx^M9uqu(0~|Z{4nej$zWrQ8LV`K)IwY7t^573k zZ~<|AXBfx6hC+lwRCwN(FKeUQDgkWmr^zVK3lRp?JPB~SK}H7QfE6UMI{GJ`*o%!f zEB5$4#S(92UIo?#U=x6vP}agSgr*`aY^b+BSQR)R7(U$mpuJ8>|B-pXBfi{%|MVgP zKaIO&-g3M*yrudBX@MB*e!$n1&SNdGyR6?0Fmnr=Y+SALqAX{Kh-k#nSfbCOC$4rpzI5*U|BXJHo)w zkl^Oc>XFCcqV7h{!hG~@0s>j`7w2PyCY;24O?yUW4!i*<~ za_c<~#Di5}V`cpD^yyQ8H%M{eoRurWShhppN>uH?dLd@gaM4X@cp0POqTRGXy6!aC zWT`r*9{n4iDQE_z18WUJR`P5p(u<7%L!&^vKl; zCB@07AVtV;(y)}2Ym}_dmf(&jUsyG$ol;+44?j1M{xvl6LkjGd~{seSnH zvL#El;=BjefU1Ltb8ebwSp+!41(x6AFRaeAOjx$;xA^5}P<3$s=c|s+8q3*c)Zh=X)Ja12=|h8riW6u<}Y1z?LKP7RjZM z+a3-@y91vv>SkDxzI6|}T0g=P>gIxwRK z`0!)X0fy|e!G%o=bzMH(IFQaWvx;?KV#PmUqr9)M(eAQ7tGRRMdSFVu&fGGu{W61K zaKygX__YVmAJhk}bkiHmL2%sYpNsh6h=oO_R&8C`&-2hSMg4G3X=i|+-#S{{k=v*X zgkT#8r->kKfw!PKXbd2EO^_)B2Vyf6mT+sc9Rp9oZ00@(2M26A`El%{E1w0Ai#IQy?gp84q0*nkm zR6F1v>{big&Oe|xtDJMw-#^`|Nk;-9*bv9n5Mh-22&F&zi)Nw7kb_Qrri?=8_04g-PY?Idj5L>QGMY z1MSV<3g(ZESReg;4>wz#EgqCl(im!trIYa`*ZWi2Dv=@M1iCe5Q)rv4tKx*A5F^Xt zl9O-pWKrMW%hqaulzwAqtIBbtXL-lb^!eeW4wDlMtmDj?uHbO*p>%{S69sO1w#in0 zNy&yof&KM#*Gw)nsnR-bqFyy?BDyi6Ws@*6HfHP(Q3Mn(aIw4LN(3Gzs33z%0-e&X z;r+oFkd=;ta~};Pv+wH;zc&?SF`{)X8?2|>V9H7nd?UB~O9p|DnJbV!R`5ba$?8#E zt=4e80sXUKC9O_v(F@r^rkI%@`iYg1$$LofR9^%K2cxhl+5il?4YpQWa~MTfhlwfG z#~sQ-8=PQufKY}VYhhV_s3lSgN-{3V&{8x#79qS@D9Op0!CKleL7hTjTfY3@I2lbl zsTt?Lie>E54-mjt;E?jN*n$75Eyfb!aFH76h(yCi&7thb&71uY&VH>~`jd)av_a^` zgr|om;8!|wt=w5zOHFO98<}UITwGi{b0%tWF4L9|Y0Y-X=h6k&gWc75G_>D$H9CD3 zu>$v_G;M5B)u+M8jK>6wG!hPZWn>qaqp7PK5*D^*$&x$Cr1M{Y<*DU^*q*k^6LQ&w zH$MoNDb0ylor5zf)ud8^EeVHHo2^uz+6AwY*GR%3t|RhxwXxBb$>c>gHPW<7B|29( z$WB)VXB?;sd6V{7Eu=>Jl$9|yM_SxSd6YMZipp)ZJLe)AmLY#>Vb~{tD5NFJ(v2CJ zZg0-a1-SF*=`!D$dQ?3amCzG{D9ZBn)xbG@-*tbb6wN=djpZ?E#C2qa@_u&{0(- zm?;|ZK^{{rI3*li5Ng!{oTsDrg{!v0T(0+nQJOz#3dZxi5N0@_!iz^H=#Iz=UaVtB zv)Xatke!W&4uSnfpOL`IRxs?*FScrU(1r9a%^vu(y5a#1{}W%qTCs+zQ+7>{qx<{q z&3s3R!v}yKcQiCei{5OmwflnFu3=tlfw!X@I$!Jgm{5yUQ`z}3<*++$^itG>Y&eIr zEo4V*byQqIs|%%~pGQkSzJwVjiJ>iIb0R^F6!Zc|f*pqIX*HQ~ismf6J+i-XNF^!&ViamPA5)|p7!>@;9$OdHIemn7`ZV{ZpRYcoR6j^W_|*zxucE}H>UX$8EiE& zI%*L8l#U&x6{d&Di@ix}4!axTu7FaS6aJUM+OJB=$|eaM zF6lI^8#i{CN)0RSoC?k3OTA29m?wV0?&#h+$`MI*b{;0dROY6HD1DxWCg__@cHx9- znjQutR)ggPJbdp6cwB=pVQj0VkNadxI>TyceAh5deRMf0zMJ0hBS>+PfA!)ZWJ=C_ zqB7%qK<&PY%jJ5Gq0!{-3#dx*kBV~hF3ib>Y#Jr&3bo#}!Xj)x?+r~20bnn1^m|1T zbz-K9Oy4hrn%vtqRzG?*h6GrZm#3Z0UN?Saqxuu z{!G@eu3R8+zo+AE>@K>_%l;GQlWe$hcT|hs6qYBUKlHtVefujtwy-`?x!5}i^v&=G zf--&qy~!`zemJhC%Ge)1e<~~9^}{a<()%lcI#bD8nYlv$EB754qd_633L>*RKO+O; zufMPBr`ZTUkZb-&Xdi|5Pky=PS7M9+j$^7zJAjrBBvg4!m6s^D`1$y*Qbg*S++93Y zof_lg5IOp%#ApnRZwd1;kMBQ4m)8`y_U6^|DX+A#P7phpI115(@=QIj%+&7+J^&+v z(8XkzY%&8C3Ep2RsV5iiqhRTIs0|!;?p$BV7R1e@#tI-kdkQKlJwrU~&EWrzbNP=O8Hr z@dIosSUTiZF+`v*2$BLt2YIc~BuY4ATWwPJ<+-0yx3cPn4c*n628P|5=Ki5(9GOI# zjj`A4oZUX(%I{aqE{_ADqgg)d#rF^ZywVAENI&e>q$Sk3c^T>siX?2IyWr2X zxfcd5X8Xzx=`?Ajbth_xI{Ty*Ilu0^eLzJNw;1kCq!*Q56B3b^UZctdryfho#K*_p zxOr5yiVP;rA$>8(c)8$#kc$Mb`LtoFy}Py5L&uM9D*6iJilgE-J4WBe^p6jyq%fog z`*cOwnK9SA#Dzmx`_+3W4--2D?(>Ywn9F*MmWD|M-Z!al33=4+oG8e_MEg%>w5|-1 zqJJOD_YhAPD-YcrGL|{BW+AaF=>4HpKMpBVvZ`4k)m#*7_Cf6c!Rn4{IJ8YRsMJuCv^~W~muSKV3j{dBrs(P(Yv>Gf{JIMc6A! zCkhG;an-(JX$BtKN4w{je#7ylsiYxuyZu6!D_qcb3up`meQiG#tVUVXLR_f^`i<<~ zD(RIncc&d28Hv?MO@l?4V$3JAeZSr{qu|z>%O_is*Kp0Kj%o)c7?*e>VtBa zghP?>;8;j^dG+GS*8~xpC`T(dM(Nil`@XgDG^Y>PMoV96!()l%xk9u71(gZ&0sk)E zYpX&!*RNl1-}#E95-8DohlXk&>ka;dqR`2`Y}sKwy&Oz5hxk0<9hi0CY8qXDSRg3s z-aXY$%Y*0=zM3<8HqQPQcmE-U^&2i^?{@^M#3HwMxB7h=$c%ebfr~~Jo7XzP#B#1oP^lztaIaQ_i>P<-zciLI=3!_v8%%RRYR7F<%UdI1 ze^Au9`Q}f%OQVlWzBQJ%eAieCRIu`oEQP0;K9!nWv#6RmjV<^e*fV1B$EpzS(tAfk z!ce>MX$hN_|8C~no`alCHVwj!|9NyT+G;b0XQrA} z%4EBQX|`87P+`uxIccr^NVdd-`n&OY;{r;~mcWCtbSWoScwYFvYk|Iin0snUlW+Rv zo|n{P z74Nt+q{k&efzaUheO+{eX|5zErYK1S%tQTvoNiM-Y>|W-Nb&C1e!`~CeN$P;#Neqi zb73%cs|@xiDJcPekat0r5HAi_z@0m(BV@jz+89I(MZ40JY(op~*i^>X4mTNUkaXltPF0gQ!@zmV-{nJvrjJ*pr4<@FfQ z7H%P2LuO+S$KH8r6;^Io$WLuYDN7jhUnK?>;=qxQiqT7L7ssim)AUL42 zJ!C#!`2dj{oC<&cCxd`zdj1|!TJxV zff?6t-?kKnK*=djvL6DOtsizQ6n=@>M-qbCX?sImaz_quyRDZ-(Uiy?S9aqPX!Z== zm9~>ue(rm+92q;To249>&boRJ;yJ8GT&a(0LMyCcj3I5C1M<`fb+W!H6_WKamB&sc(cV*LjfPdk{Fd%&5zC_Y_o2Zym5Dw9nX2ZqU~ZYr!-EPgmz-*+OXd3hfG770S>xGH2`26x_7Qrem$D`5UwwGgyxy zLuYMr&E0!#jWm1;Yf_c8p10cQ>J3DjGrO$qh8E_JlyJcx$3qxX-vj3tqQ#`-13xaF ze4J9qJP1uSqm<(ra~ZEPh5;w*^?tr+=RCel*Vr^sOWz3u2;6gQ6n581%K>G}#1%DFcWi(jOx(;&R zz4dzDbMT6drY$HB$b7^}iPuDO{G`AA8Kke=&2 zzs-Czp|*-~IN2osr#I$qh7!{KB6g7ABr@h-G40QMK?zJq^$_%T^9Xrlvi+6yexDwA z^P^&}fnsBhnVKB&{3%SmxtE;~(Pv~m0R=zKE9~gNG~2habzpJ3n+k2AHye$_-2W^> z?Nn!V4iP(gS=6y_yIzV%WUF2%b91gb>^j!C^&g^CGsE%)npl%Wun3c__W8Tq`yEQ;eX=!0*JH7i13z3J=9{;FP@FApEKAkXiZ53nnj_m5J_dfnD5} zl>FM2^VgOTu7VZFmCNcYGD?d8c2CmwA#4|CX#4PR>_59sy zjyY%sXXw&_a6IBj8^P1nO*g%(--b^FwvsHsyL~$Z6b4>|HmUo^&|WWO6R@L76VsEq zJO2t`>Y5WEgc9fH<$m_PLOr9d-7Wp453O3R(z+ewAx|M^BD5H-j|=wz=hak#tuF|p zs;2}uZtQ@A-p$cLG$S!uM%$shU=1RcYk$YvIM+S#tW`ZKVN>Go~lrzT>GRh<)7{$&z z585JZ>FMhybq;XHlwAwRJ5d&LAbPj3#mpoDrLaY!A&iusv~lEXLdFh|w1t;lFfVTs zHg>Ya>^V%?Y3TQ!A+z)E6YHzkv#Wapz1$R$6aBP2=Cy+;C?V}deZr#>#+~K&u#2v{l}-BkzD}o3r&TChR6?3{*kL(3R)~*YRxdJ z4HPSzH&135UgIg}SqU)p>Xj?N8iX9PtG=n&1{`5Dip~l1b;!gbsG`GA6HqZ?1bF&E zMa9JAWU)b9uF|e=bLGtbw-GP!ve0}U+`V!!`>2V4*z%_JQ# z8OW?aWSS+RlA4_!XaiJNSEGQvaQ=L2dpqrzv2iOBxhP=L5}3>q9LzxxUr*l)82{N@ zOd3yTueq}U#NL0h(?>jEfZ<(7VWg>EiDG4K5zfkr@i>hrtKwr zk_Y74Ha5NRz(5ls!E2g#=*JGqgRw7K4oUa_fB;gLbNTXWv@%BzH4ENAhRwyr^>^Eq zQlX}&0d0Kb>f&aN=7{e7IB|2a4FYRvn&{}!yiRWdCJV9}UmeVxx_|v1LOdSOujBI3 z`;%r^@R!n$v*)fX%)K$2J?3Z%;WDCGf&vx9{pbYZt%vq$vaW%pIvCR*heMwtgWeMi z+u3;Kb!*omIL0=QM&JIMEyzUgKN+YM^R+NzgM{P9Rm+wcl0-i)u?Di|1P8Hkp~$y< zVB!b=U3`(rmcTD2z)mjW12ciCK0I9JvD2tvi5p}eB0q@z@5{SLf62T$Pts(|&K#|A z@e@O5!)UP_BcL5!ICpNWO+42OcLQ5ta-wGvn!pSsS$y)q%9e0)x`Mri%n5uze4)_gBE{%T9oSv(wMGOce@s{@5ly`E4AeG;eG>UAQF4XaVaogmH- zWw&oWKIXtSD3=29qI^4L8D zP*7nXIgLt@jQHk)4>P=}d4+`1ka*Q=asZJrcyuP%Kh!k@jE0vC$OE@<(q+K6k^fzz>pXQ~)E zut0Q7P;qgCt0pLhSVF-1Z11@Ym~VpXU!e`SC}PhkLvGK&699n-@dgUVQgA@}XP&?C zv-JD*dOEI;kKq7j1@LhM*N)s{jBzG$seF4lcA}k^G+q_TZ5?opjGtViMR6|c-p#9b zd`)O&R9~A7Pd2!JzLe^h1TOUdaY{=Q*l_c2@tYhSwGYZjHH?q5-?eL(qvPOo>ulp; zGrt1|4)kF1Slc9A7V1$g1o2^7Tt={udB;*QIYCspS1WyBpYDO-E;wONBWi{>Mm#pg zmqOR&dW7SYb2aJ1)Hsl!^8+0o_4zSmvAbUIz3PJ^(Hgd^? z+yqST{5P#|n(BwD_cmgv1K{w4K9EoHd{*;^MiW;86!siELw$X&=qX}hw_x;Qjge@= zT?Gi?c4<_!iKr{4{8fHHvN_iyw?3&E)u#R;?Q!I1!~$KQ4{!yyi0Spm5O0~T{UOl! z^=G?c#9~~tX{)^iBy6n)loT+kVN{W15jx#-VdlDaEUG$m>f}5c&2*NaCJ>!*_=CHk zibvj`pO;56o7Z@IkstauqbckE&PG04LnZR_s=(A9|b9My4e#OAEj^SyP+_1)6Q-cAmYKj&{; z_VV2Yj#H7h4vNg%o_y)-8?P<$k!dwM`XU5II40G+Ys-e8U zEfvcIS&Bfa51eLzv%K#;U!;ncj}Pm-c}I<1>n$Me96?eQaA@xD25o&0Jtikmg#}db ziHa5#N5^O+(K7`zP^`Ro{#^AaFc73{Ma-4&hpkOmSSSTw1-_8$D1QC(y|^2Sg4Wj7 zkrf@?-N`f|m}-Dw%-2v8hr<`mVJ&ty-yCo0F45Cy2cWY6w+M;YM>Ljp>M;E#N~S3k%B zFMnoxyQX9hpX--TcON|(#ftW4`^C$6X9xyjfZqr_-3nnJhwM0PirE&K8~NwnHtg=Y zGMG+t=L1+6v1MeqJv<)Fjt(Ys1ieB&PU#JNh)iKa0u<{Le*W_Wi z5Av^~moG6$_$YJ>`}WPga!>sl2qvhz4r_uq)s2IRTgvH4sf5#~-<2%EXUm!UY69j> z`BA(lnsc;W?f-lV^}!*>gJ`n@5F_R-*YFY|293%_fo}x^3V?S&pvky2^AH&`w*AmZpRRSUhKr z7auTsz0p1ZP^df|Drs_X=4d#y{5l|vg9k{Z2gDdi)uV$x@%`2?TRvr^S>9Y$Ap?v+ zi&*J%V`-(qq6#UseXWPz<5cOr$rY-+nwYX{AI(2U$@EWoF%e%sykM5+q|MLPWqCn= zeZaWIsJEZNsE2I!dbjlU&(=juK7@xVhCOtopO1hup|7VGM{JW^ot*l+n?`Y`?-XEc zbpZ#uaNBq60Go1)fPetTs?6T!O}>Y$2$aTH6UfzCZ{Y0IAVZd6zJe@A@hJey;<9%q zoObNo+3eeFjDWwdmoU!^`|)Mr|9du|5D18rv~>J#dwY>ZMO6K~vyUG?#tOBnjJhl} z;JpY7Lzfw)nL<^MnRkz`LFo%->|(~eiMcQ)eFp;#97?#5p}JZp(xWT%Mi1|zYA`Xt zDmXWi3r0tc=j03Jc?%bUp$#d?uK}{Mvf2TrEie;rY-$=G8v_ix+oWO>;b~Z3Ggn{v zrKl%~S)Os7Y+AZx$&(`7#za+B)jL%T zFceNS?5DP^*sQgyOJ?+=uw$IW2oeHpo!6P03c&?|H3JzTfiBsKKafda)G-=S=nzIf z!})k96HV4*86qO9;YV??2-IhFpDR}kDG4FSK5!P5@A}PumaIbXxW&h-$7HIis(2M| z?K%(c3}4^&1F=pnE@`J@p#H4qs$ao(@T?o=oDM`t1N+?;z_5k~QCMZHyu+E4vE~F; zeM#EQ=e5d)WI_Re{~-Fgp102~dKJsB{=9sb>uceo4O=LU^%3zqy9Af8?AjAEdtRj@M`Wi8JL53$-~cQwG{;>cFG(+Z(4_VvDM_Nnvtmk$kj5))^8oMln*brjR`qI9x1qxo^#*$e1aQUkX!Lk! zwB~br7@bh$se*({58A8HP(qgY?U13lTrZOFPZO;-;6DHwIJ%xnK|;hHFxqMN?lTeI z5f_V!C`^qH2wGqL0DN?S%kar zcn1o*%D3Q=m$IG^e~VSHKN7WEP~w@}%yN$LhWo;fYPZ#>)MhknFJ1aoF2_1uz-uKN zTk2svo_!YytV{{y`);qUg~0?_zKLG?8WT!+n9cSlYpY;Of<^|pZQi=NJOA5lGjw`M+p;6R;fj zwQW3>3=sq$cIf1O>@Z(f+R!m`9z@W4CtJ`}6%-aCyoYb=P(D+Z zr^j{IOks+_vyP=oNSh9b@N5kCT#PnT3iWoz7*6AOy%$Ncc! zlNtvW#_qaq6}RJIWi^IWKsN3nczHZ=EW*Np7Fb(12e!L@k^Kc^mtm`ecycIp&bqiP zz(r==%HN#W@5!Et;2DzHI5s{$2wfXi*%XNo}QeRcAL89K`O6mADtryEDZP_Z@3>e6`xo z9WpUt%Z-A4c)O)Z&Awkx@|lt+6rMFT3H#9q-FJPjoMR2jK83?|tli{<)$$sj(=Ye0gpUS_~I3LLj*+ z%QDzKv^EFZX?B^KnvxSr(4Nb0^g>b8RaxojhI{qC+i|ln^ak2!shY3SjlTd#CHY~! z+1C9RjWjf9BEG@XhofV393bF~<^Ji5{PiCZB0qilG?xHy)ff}rmG0NVRGslYX?Qp} z86@m84Kk7p!9K>fni%alTwbRDGY{C0)K-zh59(tXaHtzt^>aM3wq`yHBkc_0)Z4^z z0E9tt7p-I#iZu5&Dw}46Xp8wTI+)&5} z)|Zhf2Pzk!`a5=}qb>e`+6rANJp;qQ;9!+#CYYrFR)LPVj<2(S>;q~{iS5gcW^>Dz zQRM6-Xky=guuJ>LpZ{1MYA|j8N>pS%gOi8nwvP`re!kmC98*$y&z}hA!?+Ii@ZXyD ze1E1QOI7VVzJJtJ>A$k{nO|9&^2c%BveaK|(n!=o84oMbbLY-EIPBl>0B{UEUa~Z6 zlM`nhRw642g(_4f|CW415}P0d^firXBIS5bWCV9%T8ro^djmI2%5n0Tj=uMd0u8iw zjSUSj&j_H+?T1YU_=^RwO3GSJVX=Ox8x|?m$So+CjTq}#Y+!0E#OUtkrcHvel^*6B zMiZtx2a^!NZgRnVlbGq$u${uJ7Hb@5?}QGpcK9dZ4lrPolFS})@j{frHo}q;5^#^9 z%^h85@Nvpf_)$Rtq{2xW+UP{g%*@~ylO^K=3Y#^i!2zn=2R0KaR}`uO6J`PBesuo? z*X;6TtY%VcS$2?msmCdk8)`t?zaemEC{o%}oXW;VL0nS&7J`Bk09t`5u1!r(8KzT} zqM7{i1?xn0uxlHIP;qfFnkppsG|Mk2+~YC*;Eof)6T^UMufw>Jak)3>3H$0J+cF+K z3dw_K?G6r(7sSA#C{zobu8?ILk+Sius8_E>)D4JOMYrCz*rKNK!EDOt92teaV?3n& zy6v&DNNxN;wi$9a89UY&?=gL~)i}ov29oyn_Lkr-=`5oVUJ**j`M&?$S@ZMHbRD4v z8_ty{vFC}>-q+C7U;y@^lq8NZT~^ug$gbEhUJdhv+q#v#u{;b^03=7B0)PMGkAq># z2cTF|=`q5%UBZNa+mL!4NS+n_?9o4dP}y41)(dyAkY z&0%`|jMl{)pJ{)y?_cT`9@^D7RGL1sS&r8_;xiX&i%TEw7-Vc%yH;IO<5W8@rl@8( zf~Z{4qLij$rw&Y=j!?CvYJDaazVY*$juA09RFDw-qOOA2iYG=ok~Q0~bon4JJNwbB z%1IXVz)b@-FxJyhQc!@PR7t^NSQZ&aV6rmne z8EVgr1nSSD2}_K+CSi4Jy*U#S*CF1x*jW1$(zd5Df<~igObzaZxeWAc!*zDc^Yls! zn%|HdHn5N{rRJG7&*wzM$LaGc{itK^v}|z;I+%+&-k0g=#2ez`;uCXZ2uWrsvFL5A z;x%}v=CodhXzSbcYll1Y@3MtPMV%b!(9t==b`dLtCnw%}cx9Vi6B5--xIk}aO;hq3 z8H`EHh9i{)&oD^|nY!BUJ!**}Dhdm_r2+?vA)cDloa7HBi`xuzX~<#2gv}F5MA*j2 z+=m<9#N=d}R>m7JL_O9q9P$~U(G))S`Vodyfc-5XoLT993jZe0_RX6Q*I>~S#=8&j zA0(Hksiy+PfC^KBN@^=a8nFkath_t{30-5ml*=3U#hQ&-S-whdl!@>)C5i?|gr#0Ygx5$sh!)#hz=EE^h#JU< z95rHHd(6lR%X~N6)Q72F+mC2`NQBf_%8Gr!tkqk6TY;S>Z$X^!&1ld4;^NBi6aq&B zmR#JVu{km-ItbMq#_5jcFM^{_QwqNv3s*Q8+ik%$hT~pJLGHwys!!+(!aOc=AmKt# zg?{uy)$wXY?$~S)_g`AX#l?X&mVzv-Jcfy4);@}+eM_a8WE02A#-cXnW}^&LM1wX3 zh)>n-7a{eMjT^)4B=(}T^fKWEaNm;Ql~3(nx(8b279MaKg@gj0BPSSL(ayYo8y-?n zZ8*c&TH;*zfQ*6b{M6gGh7Nr&6%(4o^KXm!xYlOe1Q(&HQmsmZ-EQK&BGvd8m#$(b zEmY%2ey{KFyn9y}(@x-vZ98{`1rFBvnJnHv-NO^u2cP~vYQPZ0tIq^bp?k-uCNqW> z&+YQZx@)gsVVCq4V`|3j+aJu_OE5dlxSua?b7q&9#br{xJ6H2#Qs?*Q&bj~Plph|v zh?bSpQTcZ}ajOPQMNU6k-2z7J?N8?%Tu3NPFVPSZN5I@gRLXZ=o&Ibu7^;9Yjk?{KH0k^eGy(K^uhuV%Hd!j1 zl@VumuE#U}p5BMZvr8VBbp zd3b1u>2yEJ{v31l?ZF=|?rpk@>N_}C3&WnT&tL6ER-7U%7j#Pe^1wm{QFqyID^>El zohPWzM!(QhwVDP8TFn97ewxqVGcb&fm!kR{TWwoCVR_^%JI1B4hjlkvZ6iI5=I}s~ zDwplrOv|aXF^08~6Xi3650MBL1VU~y0p6ndo-N6G4)XQSj_l|2>%dtrThMQg78CvE zFmOMG)hXJ`0!X^APtZ#?z-h96}2LhEM^dND?>=w5Ei_M*zymf+;{6pJZTd$WbY zf@-NiWGPsDE9GsUXS~SxWye4oC1qu2by$l-;1i)FidX5Nq7=|~;bYxSuDe_IvcwR6 zFL!G(>wV*CG?Ijf4ii2AKmgPFFLWwo0NhmB04*&yH#g+8Q{&_CK9~i%W$UKEuPVrR zqYA*@sTvLTJdji(hKo-UtV38tr19vAPhg>V{@K<$R?EF_T{P412zoZ}tr@>h#t2`@ zrV9QjDffedWc%^9AmfCNiBs2$jjif}?~2VTmN(`L$(&yjb9CP+kbKd0~ zARhgmSy};mz2>;WcDpVHNn$Xa*gACS(xn0V8I6(z3)3x37V zES}!{tZlJ@^*8f8H@D?p00A^Nn$ANo*o;_$gN4v+d_g8r3*CW{(e9cLp#34u#`i#p z5>K|SNCy@o949g-DHdx2UI)=wO&ud|KGSZ9O3K*7Bs=sb(aW{Rn2l_uL_muGPIs{{ z8+TZD(-(eS-*+^=3G%@WoD$!RVBaPrmM$MzUv`U4cH@F{0mM_0y)2&WJG!a9T_(8? zz8?Pkm9@YC@KWn5vJCMAV;?1X}?mM1Nmj-7U12$aoF@*|W9xNE#k=QyC9gIyE-wLGFC{(xtO+ zioT-dQeX~S4aQc{v&B;%_V6ch|T3pI#M&%C4+sv0MYIT3)` zN_RiQb9U3jS*OHVH*Jm;*A-d;UKYI~gmA{7|HdesERd78Yh(Cscley?TNwf$tkrjb8{CGT*d)`>QwoPYKw|jFyQB z+vpEQTKa~ER~z_0-SqfK4Q6ir@84I5Yecjm7n`dvM!2E&|ULzB@*O+=vM>z)NW>mFqKMa>~rioc9ogD#$NQB*b$CHvia!!DnC&Zlj?&;)@M3 zS5PWzXy>2Xb~YpAsu}n2Yf>VHcum82TjSBYL&75@OHQ=P|EeeHsHGtUL4(9O4gt4S zTjsTMqLG|3!MU*SNK4xTmuuZH0gJ$pkYmMgGKxAne4?;Ip$}1-&9x@v9naTRCgD%Z zokYAkAus+^$$zn7d&A_6hw-xLils8+A@N3UjR3tjk)(7u@=*2#R9 zb0Xo0a9_P0BHIDmw^e(f|4unP8?FUHPH;egnW(&?B4M&+Zq6wsZ+jZfCPa(n+%l7~i)DrIe;PihUp{whwX~~5Y~elPk}RD=Yxjw3-UTQ%)+xQO;R*1(lO`yTFxp6QwkAcQ}9kxmF+Q>72Q^Ab&&(GIr@5LOgXa3sze%x_CFL&9Se5x#ow8oo#oTb zIo5*8e9KY^@!kL>e=dG)&chV0H-Iw}3so4dtj8yQE}D1+i?9G%icyxO-V0z5;`dy) z)Tdf-HKxKV5P4BlG{30m{wgeY$%eX2C)HF#eZGw#!=o{!TJVU?6P9>UO&0wgm-%9E3f=jtzVEUewnR* zf`R`{sDfS6D%LMGbqG~$)rJj_g_pQodH!;8lT}$GRzlwn4i07siHPV*RAee}#*G8O z>7{GGl7G^%m~o~n|9npw{F{J(8GAD}gP5~j(vc%h)9V9;D8vV7Q|51k8X(_ogUSJD zsH&=O)_MwqbxW1p8sP&Z)ddv>zpwB|!x#YrJs6!qZ6qKlSTZ}93Z`r(>|yOTP92tp zmyYWTP}Dh?%>7L5;W?LQR(~3Jqq2yDDzYfV2kE!HJVi=ffOde_h#@TSR}+GQRa3-; z<>%R=&}F1z7szI-O$2TwpI@qSo+pxi4VBS~VH# zbP5{eDzlMT(=ZQ@=g?OYN8|KTCl*(B=*`rw0Z)AeO7=inVt-A1;{Zxaa$2Szdtox$ z29hpkoaXo=4)dFCVB}VP^w;?ILE7QwQM_KLw4gn5?bI><5`8>Zb0gMN5GLvpr{#0j z{0)t`1Dm)14K$+r3Ly}0%j`kJve^0QYx4T^XtB+Y(W`VeDLXmlO|4@puaiMucI|O0 zr&wrR@*4wgmC8@+`Y*tlb+<~ zf5AG^_rt?41tp-{!^GgF9{JUEwgqCDzvRWJP%~yVJolwUM1q(xn)n}q5C$Ae z-LYE&#oA$7=Bl-rFV6XzU$@92td0QkVW2{DfscphWn*JD!Zm`@b^)W+!innI%}C^o zLS~up6Tezur*Y8YChn|dRf||d=_A`4viA(|iMj{+;>8A0zP_a$ zXV)E{Soa-q_<$xkS=8%3>@-llq4l64#JkNQi!lTQfzui#U|fYbimNC)20(`{NgbK$ zinFts{&4YGAh8Knz%yfZSj&Dq^f3*p&6g&Ece#_5(5V}NhLTo_S|UZ-*;zt7C*tae zX689zJ2c0)24Ckm(TyaH?A|uwc;QEFoS#|odu*X{){~~H=4Mi4QF;CR0mDBiWcKj! z-RbBqynJ^X*!_e79r@gd#3>EnMuh&x)Y1Gtff!k$DQ@)omqu@Gpif4!LmvxGK+vD#RuRp9=U%dR8H< zHO)YnA5HAFU$^opa<@)4)~MIjschdsMddejs#Hw~rv9Jay&DHFY+@g!tpK87QSsm- zd7hFMnp4%g4E5EM)~N-D3|NPXPd*%@wYI%;ZV z>lx}VkD*r+`t|{uyn|zCd>$SSIzA2t{P;=+1_pSg6WH}m-lJJ2ZFOE|dbolIKR_I! zK8hlXdcy`S=ND>1dwsUjcdltWCzD%9{wN(d_?kSTlM|KaAF%bkV`a*E{qWSh;v1}E zzcXHDZiGS?BV3ncST%WfXClQUMh<9c0h>$I$`w3C$bq(Oc`>mzw{}w(Wd{>$$!k#g z;>%Q|WZx*4FqjBTPfNNmkuYBFago7r`H* zdZ3%@brkM)H9#KR{Xmwj-^qJz+Ka5M5^xw8aeVtCN&=vvn@}R-_<6ZPfsmJUtIlsA z0Fz_9GO#!^a8XUNzrt!lXv?~$^dewCv0LfotN@apT6|!k5)nQxS#sn@F?%9+gqO$D zqwdkS5TtGha($RJy(>oAv)O4i)3kfuzc&#G9X{cNCtXxrJP`UcimSua^V4#1Q7=$( z<>4iQT9ep$EW~L2`cdgSjAokFbOnxAP>i}Ql_Y@ic)u=rJby%u`>S~I_U@sm$Tqou zM;|8sLLaD{w$Xe41Nty1v3vKCmQkrAy;)5{(|)^eey~u<*8t0okxnb35*!iRtS>IU z2>FyNR%B+Gsk{dv$-4EyHa+1#@rK~QKv*;y%#O~4+H2>9O+!7W)r|#JdC&5tQr&;!0`XJ%z(K?z6nb8ba@DT;P1HPBP3ne>ZP zm{wDq@Jln_3d+}BMjy18S{i#}@889&cxcM8lRp=BJ}N~x5nlU-*txk=K{taN07%Gu z-cnYHgsYCXcQr;lIwYVuijn;msG%_1pJ?5c^6I*=yU#Z9plx9_CSvm-;F);DO7EwV zJ$h7p|Ne(x!IvG+|MntfJ+J3CsKD3*{R!0KZa>oTo9XY!!=MrKldZxQG(Jj0ex^Bl zVm(!_yWZnFa3J!-qhs&Zy!cNv3{FJ-ZACZ>avTkMAPU;KrJ*oVZ zd$#t-IoRkCR3qbGPY*d+ORE(IFnM~jP*V6*X-k6_O^VfNf_uq@?=yd4iAzn z!sxS+wTcb8fgHdn59%0f2j|L+Q(kCsqM^yYfQ0exA#m39S zc&MT18>;YuQJk1zl{+F9_;;(4X?Q_pbhI@9TKi4 zNcI&~JRi=Kx={{eSZxpHi)@^)8&cR@u{iow*TwlS)GL20@9OGmPipL&k55c&-~dLI zC_vf%=rstS(PkN2L?tD=fS|Hq)ny0j1q=f1A5_4n@#DSXt;aUK>;oYMZf-)$s4(11 z(|+hC9Q4c`bLJ;w6-;SS5G(|FABHBRz1pd7!1(rHUF=0C6C8=gfm}x=K7rLPN ztj6ThxpRE3%E~pd#DUh;)J#mvO!Ot}C3A8Dj%t{Wzb*Z(Gdd4l7qCv_rdjHJWHs4z zz+XVK);kTU85^@k$hdOrnf;gef+4Cl5`WZpoTb{6ZD2>My!4OJ9UYx&@i)MUZ*T@+ z*yAwj(3Wl29Lj-4;LBk15R#AtiOtZBD2VClF-)3VP0~4FZvDa)Kei0Fp&Y&_M2B?yT8X^49bR4I>p=ae<2(GD~;i8|HYveUgOnoGxop>6SWd&TR&&su=lkN&Z+WgZ@8a4wEnELuyRIAnP>%yLrQbOV(8UHkEytHnRE4G1yWF zKa%xDaoRY|6*sD2(c@S=jLMrB92z%0Y%Vh;=wh;by@ZF-9On$)nAgsVQPNp;O84xd#S z9}5U`8epxirxJ;p7t_~wpFSCAXvC+v2Qx4Ac5rCO9InahDlyk%#zjX=#cc$d53x1e zgh*gCYg;Myv)r1EiB?Kt+IN1(U3i5?u?YEN!G)`> z8C3pbNsVwM*3db{S}UWX*q)Mud*63KRq40tNfsg>Z^Wgf!gyXe^3={j#Up#4(&rnc z39hE zQ!4?yD~79`!Zu;BYf`3rFEIY*`9gVP1fQ2+NA7(K!R8%Fx=;4-JJxp+dTqMuw$&=~SOGp8pl zhe9uVo?BLIut@(zYn{Q?rA{?CVYJ-_msnEz(j&c3wO~^+=L{+*rQ>lHhfwRS0t1__7?44R-2DhUA zOg7cs_??-dQ{w)r$&=!`?o>AV~E*0Y5C|5%nO~IoEpn8EFcMb z^(~Z9g6zF3n51M&;~3O19|8k=Gld}jlS=ZMD=;5oW@4(|@MWa)C^z&e8Fq2n?XQM# zQlv%2r8Mr#Fde#dhQwIAVkC;XI{|YYa0vrQzJLnU*)ixb7Qcjo(tt8!NeuE|@sXk& z4h`Ys#V7`xWpd@->{xn z^XJ)zi8h{cNb`&qt>mrbSBizE^)4Ms4fPM`lf-OB(sU>H)NgTP141W(N|7+L#^caP z2vgntg`Q94JKeJ+?IJl2a#4)Fs{Hf!IbK{3q1(pzq`kQ%mp^Y82lg5NAycDEc5GEf zM62<;XP)B<{65)2k!u*Gn7;BoT)aZi{8D`&#ag#6{t()ka(;uN7w<;7mh1p55`&56 zUR7}#t3y(ik~*=BT!I5{)!ma_t_W&h!~}(ik0>F_20O@&CVJW z+WBm=!%lfTgN92yI-fuTq3O;s-z;wAN$I-qm0i3DRfSTJYhnTWzkx7U>O$Oq5JAkJ zg9kEe2^IlC1es<;E|I->QGgb%8po=A)AqCGuz=UwVI_ugH^L40!dZL!M=V;(z+BSS z|9@aES3-{cJO5)lC7D6y^~ooH(A((jujhydeFA)_s^o*3nslztU7&(Yhkh!x5cQI@ zA1UGkN0xfsy1q~gfCQ0iI*1p9iIkF7;J{gd(2uTWkcU-~!Eqy65VWe$68}4E2|O!8PCj59W zNLfCbi;gBC1pS)%wDku@QvE+dG{cSe?*pPqTmO#`&C?_QMi#LM#|;YRAC)<&iI;-M z4r08zZ23p7$>DZ?DojPsU%CYHjorC`h}Lp6J&|uDl$Aht5G;KaMcoK`0JMnpi(wc^ zRhS7uCE;FZ?qiiM9Q*Mf-#=m)?2G2Ck3rOxgvY^C25ux0;xm%;Ck(-_UXi}rk zc1hjs0h{|-;OTg)3aH|-Wb^}Ny}&X8FSF=;Gk^W)Ar`gWy;};I5aSIe}bLLcF9+QK86~8 zsJ*F!nX>Q!i0`MS!7h1d2#P!qN(7f2h1&*uxrprfGw4(tyqf=q>rot0IN6s4H#iT2f?+uV8s^*;5ki^t;~D=Tophi6MLKy}`ki#LCJ&?& zeOrPq^PjjGG$yB5JUs}P#S0fg#ca7!kYFP_Ks}_a?umuE?&xcvlIC zls|QlV{&!ETU^nc|rx-Lwd(9<|A)FHN&EJSBYV16GI_ex4g~+iZnUCN%%m9%&JTNMXSuq7e zE#b{mY{j0{+Lx3|vF8i>x=a`%1 zV}}V7NUMF6q|t?8q1I@l%%$jghh861Z7B?gdHmh`-oMXkZN6UFPz@aym@UfLvLvVi zzKo5XVj6n)ZWAr7j6U30%b;n|B`XbM6oiR44Y92U$eYX!$e|xjd#$;ZSN2NZc=pR@ z+RQ!5vIZSB4Ng}yn zd(W&CR+mlRw0U!iKja7#w|=~`ztLMF*G$h@{=}dPSV#5)gEFBvU|kB)u6s4fLfaqo zMW2+KnYm}zE_c^8^-AEy!-Gd)KK)jB&3m9T3kO0>)pc|n0BK^B%f&H7etL394GLDG zQO|R{$qF#qqd3ze@yOby5N#}Vhmr$Q1&1TH%G)LE4VjtzBGQI~wJQ)&(MgnA^)=ye_bnXK)K< z<{PR$2ZvAi*Qv=y9fq}r_~)W*>=-eoEQ(zU!@c$cG+2^4CLB0GQd9H8`lRpvv#*G~ z(mK#mr8NsWzIOr0T>~`&%4WA!QIGRWUZcBGWb+poq_8+84+X74$=?5K4bR1wwc^Vq zHZ1jZ|NC&1vhY6p(dbgcM|LBOfhfqaMTJlufo5c4b)*=3EAvr!RV7o8NT1vq=8Eyr zHo->uoCM_|+uw1^i7N=V4}oWsuvj^BRlMoUdFNu;x;~{w~W^ z4jv`ne-2t5{Gq72`rnlOT;BxQ4dh!0^uxLPh~+YIi3NaFNGZskl3}z zHlbOXfay(uDifo7m2Pt;%=e+{Rfv?((HT39y=vbnhqRlmQsxQAOf@wsDk^MtduamN zO}GOIHcLp68CW5LF*$5!K<96FFziujO>L1FAxBZwW^nQF#DC~SZ6C;M5m52;XuyEX zmok_O2h?|vR8;}aKZH}GG36iCw@n?f*EkuPH4I(jT&3y`*S59>FC+@ca46*}FE~;C zd>Rx6JU@?sHgN8)LYIA#54}^~#%IM=!8Hzj1giHyTFvq6o0?Zd9OpJ}I=-ErH8C@u zI}3I_bUkufY4^gyX8RcEV&5F05p3ELkYBHjZ3rIZ8cSv6W5-Zrb7S4nD%P=qs(ZKp z4rML({6{D&^gp01b;tiMlofgMFW_pXWF+$LU>y}%(0A?n^?8c(IZ38^wVA5x^lg4Z zS8rtuLk$SmMp$Fo^;gj@d}eiQ851Z^3F;VK{p%SOnf=m!!`z|Z^8Bc0{97i|Z{B{z zSQ{1BIt07r09umvp-QZH2a?o^CkNN2Q8MlUw*2|JVT0i}cr2l?(V2sI5oiQR>7oAq z{v{<+)jRL8C-P`#UUkG!%QsC<3$JYtqfb+$Sb&k7mh0TuDq6GEc0u=(^Fu;Hz>Ag0q?@wM-sDYO0Eavr$VV`8%CPK`}PsiIvg*-@S3J{ z%-|8t&GXVi&Gdex;8!FZAwB{wg)e&+X4-^p$&R7A zr%&CDYbQrKgUJMw5(GBT!N+r34SMCalRL3{>5#DlpYI@_YMq%7VL*%614OoQXbLQq zwBm{z(fvR+QGj1U2x(%H!BMUUrBX^t$_sq_B#W1e-wi>0sAINGkB!CHKD=Bu(p4DT z66xo6Nc!vA1~X9`O|Xf<#(z$$!A`enQ&|bYFI2Snote3Iy%oD*A#IwTk3MN~N359W zNTkd+b8)$&g$9KBBio|++p&hN{{f4YPo#oPfw^pdrQTLa$(8H2M6YgmdhJhkQA74I zkc;Me;`VNSjB2(@uvmzgvRje~Swn&IKR>bsFjd2Ni-C zW+t?NoTb4BwQ>d4Y*7Y+?{R9+mPF;KS7E>efh&*O!#Fi`;dMJ1b%srxfIySRnszu-S@@`m3Qh zYXoOZcfGjLk?wMcBpQaJvb%o2eEAD(ApAw)!UNHAVi~YF^ZkCpPj71W4G$}PQ~n!g z$>_5uTcU68Y4K&9>B)A0I+N8R^m5?|+GywJ_w>Xs14DGA@E*_N-O#9O`8JM1*zX|2X< z?SMFlmy1zQd%NizurbANv`+Qx+| zdsDauj%T?r`zR5fMl^C-DC!WMF#>Zeb^+$lQCw-t%`e~5`T;#MR9bS))Uz1hp$mLg zQ2}K4svA^SK2{z)8~e~bnR*Z+&#%YcS$%~^2`2`8b}a_B!G9{Sj^Ps>B7Hs{y7!$4 zrFiwhu7A;BIf)#(9;A?DiKPg@iV!71<`WICIqC8>q14c@yQc5R=FR<&j#)tT_8)4O z_hhTjyW}K5Fknx{Zh_-(JX2Fs@veSAX}uoJu@^8P;?z009-Y_UI8bXU)Vp&CvYFjE znqNrTW?T66LI4EG5Km-4z>$bLeNO9jqiRFlC9Y_v#!t#a4rRdrJJ#Fq_55+^*8X|v zIu-cUY|cFQjMs!BOY({64#|i9?;;EUCS&pd&gppceU6NGxELDSQTQDSg#F}p!i%D4 zb7hAzdTW>vfuIND^r~Ko0WTG6n@<>8*otJdin%TnVZdWswq6FWCH0t12y_;<)d!v@ z?uD{k$IL7_IJgz9BFo~0Sx z#{N3snx5bCFC9JtBvB^mb%|?K6*8E{9UmW`Ter-b$$_yyX=i(um20+@q%vxJFmWXi zf?rxgX1RAewHvscWEkRJWW>rjl$qMNJ=%LJ$$SsJqF?QMDR13s>B)yD_@_ zXOH#A-w?Lre?!>DxqcyRH~$%7<5MocZ=s2r-&WI$K$XXYgA`dko&0MxeLvRyfY&rz zw%7nV(l~bfxF7imbw2hOwWz&`0S76E_b**n;j^q#xc^nJuQ3tS4<^ihwt4ZbI9iHg z2zHZsOa#g{a^NS*_WJk#Qrh)jplk>Ho*jk-J8)KLCjv=OhBQ8dUx{pFP9LfkY50GX5al%>Hpvb2Dvtx zJOjk870loh>d-tWG68*)--W78Zi#scQ0d{}{T<2Q ztr|3i=pvfo$>c?@RqS|dhx$=98%v2!x^Rfef2RoTV^lJozsa`vkym~dv1t+d8-sK9 zN%U7GH9r5W53kZw{hS8S{gVJ}adEiIL4!tXR%+psNs=(%ks}%>&g{5V@r?5BmfNv2 zdrS3&#I^@VZxL4Q4LTBWM9QV>Rv16Wkx;`;T1}5O#)X*KY??ZI;=FV@Z^vn~b!Q_4 z7i&Mqd{!x`PA`yoZ2N~p2{ad^+G5+_4{DN^?$i!M?z_Np7EPiSq_Sp7u z5KI88hLVo+V}E~wOMVS1V0bd0&Ti*`hx&7u$lJ{9fR;?K5nzYD`n{E>E|iltHpCs> z;7E8>5J?H`iXI6>bu&4zqtn7Ig$``rwr$&{O_(mQ=cV8Xrrc#xIG&FtVbVtK*fGL| zJs~UEjrl&w@e1^q!*&SOp!gWKX62v|e~pIp%Km#Sl?{M}ur9(ZmnNrk1WM{N5wu^W z;jiWL)mTIcpkHeFPT+vU)lM_x0PCMjQSCJu z2+4D;x7R3-mAo+4<&^`awtH7Tfui_jSA3>LPUCui1P^?*JN8JUM`YJMzpw^4%6G>t_7^$Of7~ zeT2;U*-HAZ+|aF|?0QDj`}wbZYWmck`^m}ZYRe^b&OI|A;WN_FO(!!iU-@!a|1zuF z%*+h1LxV@>rF}+~#{vy*m+Bb`sDjI(nHrdAm_K7iV&N=@sHoQMLq5JCAv5^$-m1wp9~0EihFb(6 zR^nJv!w%H)e7&Zl}qR6;w?QU`PtAZa{vi>y}qYo}r& ziFLl$_x<7e+X&N7amqX3 zLhhG_!NsWMGoRi5^RL_M1{&aA12zMr3_}r;I{;#= zN8@ZA+ABG|PbtY?(-ueu`U>Hhwzw1E1Cw|q!HI#|Dhy{ykxQe4$Nls?HqJZ?BOfd2ai zbB{lN-N%dUl%w6N1AqG3ymk3?Q%3s&4d7(tjAdf!nyG|iPd57AG-5L(hCHM~srBvq zP#8dG;H*P1-K|70^KAX-h{MoSrP)6;6do8@KKnv;2(=Tqb>+!7E!&cARiwcNwI*%S z&-k-y#DObfJ9Zpg{l2e{*jN{!UD)*m?LbWKd+kg^X($|E-`h5-!7wL1J2T@9C&$wo zs_$!~xu%O`3=BL#bND_29wyO+Kz5ME zVILsrF#g>X{K>-XP}-C^iL$aHCc6AI1HvjJMpXPVW~``^K*`GSgYJEPB5Luzn5~7K zoygEGCRnaIfR#-XM`BnP9uy>kvqeG4;E*j?u>425)^MBO{F~v2K<^3@)rIpJIC<4(b|dcWSP{ zU28Y6v9qHkd*9zbzc_!w=6O9e*+%b1^rtM!tn7O}8BC_h1LzDy!g(bmBrxuS0n@qs z)ROCM5aa@ztt&@gi&b2y^EZyTdm7CgHM(2<4mnoR$qr}5+so_O`{%|IoN?2>Bu6MA zEY7Z|xt&HD+3yu|+{QvPb&7w^U@yg0_G`FLf=j&Im4OD7mxGw)oCc=b`La%DphfSp z$c0qEn>tXNL~Mk^LS?AO2tjo20Ok{jf$@eIizF&VK*?J54&^<87q(|50K7YYeorcW zPpbC;FmM@1!0h!(ZAittM|0T}wNm5J@eHCQBbFqa0Yk(_tN3Z7U6_0eV<{C9 zXvZqJ3$0wgHF>&KaWy4psL*oBV+?KJ=el1()AAcr47#T;wZAn1o@Euj8F9dk^`nwV|g&i5e2}LhN<1Q?Ok;U7tC9v?3)_ z%f8gP)sv#K@-;7CYJ5uuBj)(swWY|~Y`b?S=i?y9&>CP6-yzp7Z0vas5tn((mSc}$ ztkIA@>E+{-Ad#G3rfy@DBhq4YkFULub9W5Z^`O=^i2BZPxwp(J2 zyVA_D;DjK$A+%u(U@6jxvPs7o?6)R>vZ|=d(dTsF-ZFVKn_T(YAKXNC(f|EB)`wBK zzZ>4n!!nX%{S+L>j<+sONGZr^_~9{4_n z!a8su$HbRIz-4X*qakZJ9sune^lS1ZNR1dJ;oDPfprfNx6Vc|~7#IFKm7}90Vz(H) zJXu)EEOH5V<83E{E_LXenSF#@#GH>&v0hI^`Lc!knBuumf~=a@2o_LMbcat}w|luU zmM1DDsegZmFwa@I^8qDX@>7(Y?df*QIy5p*QD<@8R>72{xA!T%b;?J6G6L(Ndke=? z7J+QFTb($ub$%yjvm$vxT1^y_t;=Bc!C~eTjMhe!@*B>A#O9n3T&liuz^^#`(55!0 z%MjnSFfud4lZmMSkhWNPZIo2)I|_>2wOqv%FMp;!3W`U}_^-qd*GEmqF=K;ase*C? zjF_^tdC*h6buU8KsH|KIp52`XhB0=>Ap|$Wx*}=AroTg?buSz|g`IvX(dWoUdE^2=tv6 z8b-!h;EY|MMs+R!=Zh4bKFP&>B_x8;<(s8x?o03a4;70{{t+Fay3LW82xn{aKv>il z`M@nB0?=-@hRZ|?Ixyu{4Cj0J>fEh*~HEppFw9KuIpPR?C-gOBBruy@{#V>-PQYbpx5kbcr)-K z*^|;Z(4at_`(|%=cNU#h=yu$-Y8+|!b2N}i+)0gJu@1J~Qe?XDK39905hC=PfsVUoiTiMtpFZQjr)x)^AqvrYZqk03h2xzX&7GJ~0 zutdD_jiL_y-&4oUfhxHA(jF8X4fFwby9Xp_cs~1*3e)u@W6P#Db^x|L&h59OovQ6 zpp^dNxobS{*((5bCtu(|eiRcF^nZYzBB#%sK`F;R8NjQcSrC7WZby8XvnHvjYEk2K zZV->o>0Dh{eVC`*72@PhG3s`!KpX&;15q9K_aVy=8XHTeLrKe05C3)FtaTDrkSf-sxlB~dgZa#a^fkyA{BDhfXFWth@y|PP(-ji0w%S_d z`7*Aq>zNjrAY5hYB{j+&9ep2eou#MqibQk!?%gk=qlQc$Oh5ejFnJA%Lbj`Vd%<-= zCc6=faad*Z_IM?i2tGn#n`Y~)@QQL6;{Q0%&bv1j=MpD4cs`RQ|9j&kSsZH4_6#+cF1QRr8?!DlwQ z6Gv)Hav6oiS~M#mM6vY!=da%79?6k2u-styC{wPn!Alg+>6&Lze_>u#jaGdTcClz1 z;UIZBJ&U|U047|RjexR015B1im z18-M%m2B*b2PrQ895x7pW~mQ*e%r?M$=Gu+MeVURR%VFDJG1aVXeQ=8ba_uR^C4qf z7ZfVV9UCd4?T}QjGW=|~C@8)h{?T3@q(tl4FI8^PAi)1!Fx;5vQ(kV7d-LW^V%RN= z7BLlGF~eab$}8iQ?8AA{(T2!`C{bx9p+PEn{t?wa{`rUPmNeMnaz;w#`CWfsU+L_1 zTld|2z3i_M_(f0K>i!*m^1B%&^Q9C|2Q5O@XJ@tDYaXKyhdTrBZ8y8ZD+u3%W?A>u zFB<%bHr-JZ%AT-E3i8R2s0y-0K*&YL;K|29!ptf<2GaA9^ZTwx7OWMASt!Z`&IVL_ z@YJd+C#C|fr9F}W~9?itZ?jJ871ZVgmLeFbMRhZ2so932L%nm z{0#)DT$q|KhVAX)TxeyYZeVp1&6V2$)ILXJey`$eYIJ`}$w4X#l|uAXf2{l2@l#y= z_6w45yO2Q7$(=s)B-MflG64Dp`FFz9O2Y<))2#K*Pc~u*i_M=U9VH;G!J^0mh`jo@ zteRCzo^XKa3abTcf$h_fW>}2060Y%2IJ_Mj>}AJ76jlaQw1S2f^-z6Y3XugNjg4 zH0l0B?!EdW%%KHbvK5YOJ)Qw!AjX#(w-=ft2grY+DGHZsPQZi(%e!xvow@MTq1g_M zRvcCDE$OEs>*aj|1E(Oc_EHt~V=aN?4GY2c@7J+BAB^(?U2d$&!UJxJP5%&S?aPj5 zV4|zX>gu|Pd@DM4*a?t4DttcKRIKa49vALHk;apRJCJ6Rv&73LRWZhhIvOQ6g6m`Fqg+!JZb5!OZg9v4X+yoCCANu z2*9w^hC3sKxDLRNVYpU)I#k3etnG6OJc-^Qft8z)oO8WG7X*Zk!HB`^GD_ea;SNIw zhsSM|IZ33$yNG2wKj4sOH%)i(@>*foaa!Y38KsXJh8BG0+fy?3kKgg44umrdVO07CaSp|K#p#FlB^=bKg9?-L zolmT*6c@~58&SWjl^(mzW2GmSk7k(T_tftde-RY_QP^B7A)_Q8FW=2MGx}C6KR*=YV67For zbDJ&Z*Oq9li=_I8v%DvHvcUDsqHj*H^*r4fm0?y5M_-_^dOShUP!_nLsloV~NytnE zjXD~iprD|v1Hd;K5mGSA5C(F5i_$paxepUP4r@R_6ULk6V|5#GO{3%!>O9M{&*myZW>+sM0G6FwM`$Vw``%e!u1s>aI3mbD&} zgM@9yMn;)>BWOJgpE8;TGE2)|wrakU7Op(Pa<;=E#U{zF_JMImWGPJ!rG@^o#vNDz zLm_uWS_2*xE=WvPudA!&^V@Ejnvgn*#+c8o9EwrinHNca(%HA=@HQYazX?!nEm)*_5Wem$GlE zcSiU!8UIvNZ|k776!ry`t#Job%BMoxiLGrbayR}%SO0>mSUXhfg3Dd_Grd=S{=3e@ z;Jk*^w6vFMdecX9!Z`;)jR3Q7OOLe-M8PSt?=F@ z+wf`Vp&l*_Zt%jVyh5pn*%qvWApHU;i1gbmGM4IBW0o0*;-B!v#3lyd!Lf;PN4b^a z!GPKR;jE|GvL-Q$CXOmAHMItmygGG;q=H@Cj_hEW_=1pxmhw6aNc80U6H+!wB3rr* zv&&)-tHb{fd+#02_5S~lJJr!1N-Wd+d#-bx_xmcv>-l&-9*_I|w(iv){{ENGrR)w` zqi_vFgxihJ)TN)jt2z-z1m4uQ!`D))irqRWlS!ga{~?}Key8BGDkb01;zSFbUGg>W zL_)Yy%uSihCpU!#+Tt+C#z;#{OErNlJN(j*WnWKoEpbxfBS2GaT5ugt9UQjTtB-}e ze;4aZHIxXl2^mt;9Zb@YETP(cwBJ%satRvoq-JD&$f{UMM|?@IDY^FRZn{(pwv#R2Rnp_zxRdk;Luqu&fll7Q`oS=nQzRHJ zx!KqzK<;t)>f;(>yx58@^}z&mAUf;3oIQ>#z2%Ef7NG2t<{B3uiA3{(ZkLGVQVhDz z->V`c!+{5d(MeNGtfWbIO%~K>VPd42ve5ux8ob!wpp9C;QYR(x;A)#Awu(>koal$1 zB5f~s?h9AOJ0y~Y=3+3Su_b=!3>j-?C+8O6xTUJ}QknFvt~;~cB-!}7L#zE1SoWxd zv_{|R1-CSZc$7Xhq;n+iEtEFk=R&thi28VZ{rtr8kX1!@zOz@eB?bi z4D;7|eK7;bns*fG6H-bpGhX~v6w;Idz<7Pdp}`xC*^<}Hj{ zkGMfdnupa0KkV^VyhPc;X4AUY#Avx*x~UY?Ep~4j8UVl*Mn73h13&liRBwAr=c1z?DI7B(w#A2OGUwkNr z=uSP&sYIGiT1aN%vTzl{+;!tHnN3BUN%B-ptUQ2rJn>3%!kCLf?Q+;S+~PP=*cjWc zrpDj8lxG*5h7DG(RrlaaQ@P7E$GR3acuV{Rwr@maVs9MW5(I= zLr&6}@O)O;AaFACoMv*#APxZhRMYk>)bWs587JTvQc+Q{d!ss*j>GfBi4!2BVxmr3 z2~TzGzH!!E@;f4gjo7yz?lS!~>iVJe(HeVizu~8919p>X))q5G(i}z|O0Q3zY4E ztb_e==}FU)Ce_#^Up5sx*DvTY+?v^tZ|O{dKJ6+xPo?FxxN-7D3z^E45h&x0vQv42 z{sic;YlbXXLRF;=(#f)pSaEs5tQoBC?LG_!gXrQ@;+X{ z5fk*l>>M32$$&^_#?1k=H;>r@62ZcvA~ZWKIClb*rUE|H6$7JSq7YF~cp*76pov?o zj<-;S2C4}Z$Vjwb*g~s*!dy1CdH|RQTOn#)d80argXCKJjH^9~RSQY{BAj-qUFM)~ zRoBz$M3;^ZwI0NVL6jVZkI7ni9pxs0qo)P=Icmdt)o+i&J{D@CP%s8WLs2UB$0R zNMO(&#{3q)fJp4}#u|#$=2MKn*A0s##Z(f7(l7PQ~Oxe?EK?f7N?jy>F#l#E|xzWL4a_D0v@qIE;c|S3de3l=Bmbk=$RTB@kV6; zM=cciLNfZGGW_x7K0fym>V~QXRbg?Tap@TbGh$C5S6k}^5x#}XIyk7;3^}V!VYLJ3 z#vq`^_y>!xt#@;!=#L$f=)&$m%vf;i6^ucs)k%R;=V1qsK-5q`-?z8o+0^DQSOuTk zkxSo7CHCcFxG@!n9%V|R?sgg)@ffyA*yW$Ox+WlYrf?#1+EwG|WM5c-WB~4~q}ove zv@pD##QF_L3aM#KzUlU+T`tGswDa|(MqJbdvCnNWyC??~a~nE4NW1&u@(;#MJYN>Z zpc6w{RTuCZ3klcgiY{Vl*DNn>Mx6h_fQN*0nj-Z^$#Zn{RY(0p5)*}8_e7OocZJU7 zg=p8KPo~Tms*R}eHOy(ux_>7lbm*ANw4}C{mxiF+6o{$5DM-}klQu2rmm_-HDdWBI zgcSO+QhMvM>Mo<*hXRCJAxO$^EA?l+H>yGP{i>TW70l?VWo9!%P?`| z5XlTZ0(}6^Yzj_;4%x%LRpn3R8toLW+=b8^$2j{qGNmaI7+Mw&C*+*KNw=sDAx}Rk zoH%nwe6?eXwNSFlP-*mX*Ra+}X zt%}(;It9zi){v+nvZ(v^QP{MKA=~$r!+d}m$w{G$ecsyl`wjc}nQT`$9^ZN>zlxp+ zqBO%$Spm%X=(1*VB}a}(clRinU|LcF7;`_%8c~#~cvuT*AKoMj`7Hp13Z$xw3ukF8 zsPP+RF?Dx!tpWpzGmgE(_)N;i6R+w02VW5{UWv{(bebXW@exow%>d_L-*uqR`Jwg>f6ezS|eJMbX#RBNn(0na&GE8 zd8)ohu180UCF2A4j;+8jPyH3%pMK3EHno|6IrCw26%I%DX`NeqTUbK|)AI7q#t z1vxN4RWsklx zK61A|y$yHqbG~mO;ji1R4Q_xy;E2qv_@7Bkc|>W+*1oZEM!B+L(^afO^RWHHXI)c}FSWV-`BK{))Bf9MpB zd&sqPl#4yz^{$j&crAooBO|vaIS`r!bt!Ifbn!azEdtryooW|9`na;+3^2=@-8pnB zQJ6UhA(6{)*OdvuD9=&aXu8v<8ygy+K@d-?6O{;Q*3r~mwMfQ0o;YgKxrrStR2N-?HBcf`E#6VV_O(JQPrX0tnwnGH? zt%Bs|U!}xnF?|bH2k_N!4A4R~j>-1&0XXtE?>Y4z?8*xWp$Y(tpo4Zqh>ozZPE&Fp z0vKx7>57SoIU~BQ-F6qknh?xIlMpDGVkI!70tp8cB?{7)FF!pP;1@Tc)(M*l)4_ue z&E7#MTZq6_!?b41f4G?paS^qXjGWv>o7y;)CCtWrRaboq=!u3{qEK?Pi-SY(V1kUK zloT5PAPBbM1xDEfKx{+xSTC7^G`eR*S%pn`4e?iT?HZ~_wV6~t@RXU0acJM(Eo;TT zzT+Bx-*!~xHGkSf1GpN&{?nMv#D4s}k{s4rP3_>oEvVL-t_TW}X4V})>$`y?+DK-G z?1piJ%usR0OzrW+P(Lr>yE~D}jR#{G5l6<9`>eWYH z2YFllm#|mB5-J;W?QqbhvgR#=O*h7nq|)asV`v*TO-_|Hok1nR_PW0&tP+FJoSMzWDjK+@4-nKW{r|6x$Nai zMZO0l3*MZD{uP>vnWizbQs1;ZIF52LRh`1!5$nBlBv!?vsYW%upO7j)3-scbZ&6H;WX7a z2mTx`^G8X7jD3U&ApgS1Umd>5r8Lw%a!ZSrX7{>8A@YhTkTl}sk-59x z?jtsMrUq`iLUE+|@o+zL1fJ z@B62yx}iwESgEO{b#(-jG#s8hA+su$Og&-qa4UgRhjT>bugh58lLSf`QR}@d%YO%1 zK4U8#?pzUTO`t(qtpFfuzt%qRA)0y%(Z1NCPj}wTiv($Fauz#r_%LTrNb2b^(y-j> zucezjNz4sS<~FN}sG>dZ{#|}V71SMA#7sKIY;{F8bW&vC&=d%xa{5_NHLR8 zHeFZ}fo*EIiYh_z9`8!c#_}DjYN|6ml;l?jY%*Z?lA)fdj+Rb0*MN*! zWWVSq8!eY-uvv2#eRi#pcH=}bk*H=c)3mOU@TZZhr0DD%5JVjzclzNVnLyGs5qocj z74m3JTpK3l8)_F-a^RY^Sb~XD4oji2`b}lXi#CD~1YTOarpK7cc@T zS*NbF&)90JQ43ws<8Jd(3X0=&(-IRDfnrdFP`_95opIHzx{o%~v?n&oGHIIbDW;e= zK%XJI_Db8;)tWLP6~2S&4k|8rJ&*qa9ziXBj8Wv|RdXU81go#asF+&b(9qC+%bVN4 ztz_$_O`9Ni8R&Nkc>b-ouZ0lsBT6_#fu321vjO09;yr{?ZRS7S!*yPNrRuUtn7N~v z>xCcnJL@p7@vo;FBm62X!Wz)RGf|Xb#v?{-p528vNIcfv-#^xL4oVqFZ{^lzu=hqU z2;F5zTZD|5o!hoyP$7{!t#GLDSpGVA5Oz*t{B|@oi}wNxefEu)VEUa@g7Q6Ri}zh& zbIgS>$`-KUR=jAkLuZjft=pdS)e(LzxT6HNHD?>=z`g%a8jnV37kd}8x z1MVc%#SjU$q}?|JeMQggnw(23mrK0yq)w*-$?9HTT$O3uN|1Q(;^cHKS(_}A{ZIT5 zve2M+7(E(X1(H{vf{~fodMKp6-wgo>ZijD%3x#vIGcLbXdGB3J3HhxPD*o5H3C2vNq&jDVmZ z1?JA%cg$L{H4c7e$gUl>adj4S$(rtPguGQF4I4I??ECw@fDTU~7bsS;u9<|=fj5zP z@L;?#@Vk7}uNbI9iNR*mAkw-!7%|}twEQ4VTbF7H7|k)ziCFLiP0N z{CCyUKi==kSg{=Wd2&>{xMEQ`NB4m{NuCZ_S`$dBM)FgE|vaysWI_u7>n zy-Z(-6oq*LjeafDxa2htW%PSE15iEAK$ApEON;j$!`<^003Q#vx3ge@(SR&Xce+F` z24eCDz8vF>AzQ`!eX};)wWiPAL}p^KO39hfG_ke9>W30u;C$62>gN>khz6*))^FJY zZ~qJilUPMaNk{}1YjGkh3XoIv5Q=zbA(#U;nLr8s7v#emeQCFUxY^F-2{j(S(Q{CbSTQ{dH@m}kFi1m1r48m2 zpoAsuw-_<_MKHcm4|ZQQ*^>OXh~7pWVwk&Nik@YH^ZE}R6p_)6ncxI(#~XgJUh_7w zgT6KKCk;JE&Oop67kH*Dg3~ zBTXME5Z;HMSs~Erx-XHNUnMd1i71E`ebAS{B=4it_!D0$? zp~5|s=e?uJ&&S*>tEkXW`MP~5GVi(bXX7(?kizN^p1hzqe~Fk%qWhdDxOEXBC5S|- z<0kIQ;%5gK0|18)?yA7OBA|87j{n>@sB6;b?+aJhqDu9{lxL^;f6A2Sdq3%sGvYee zl9Eck!uJQoI*}2faXzC+=QhDjli3ipnzuEo@-kLhM&DE*=!T2u2+>t9TVc3}jt;%^ z3F}1*cD1qe&Ce@!8xs#Nv8(4_osZ+B&YDi#qpNb1q>XXsKQXKKRtDVFB0-1CHYrZwj7MS(tVy=@MVg<}HA;FwK45c<;}Ft$ zWbJ@n4rHx7>6$;CdhS!-v{>;9s`va?sEGJeJd{Vs@pXn^k5Jm<)clS~rPR~P|A}DP zJS7s7z5`gZ%a zuTU`uR+ssKuEK5B1Y#ZsDn>36Q3GmQ?87$+=dKii}@ zivddgvBGE0A6Mujg8m`sbf|jKLl--aihPURd8c|3aU&O2Vth9vBl*h_xt3eXDXqky zX}!jSg1X*X6OtHqx_~T1wOZ#JC7A2}uDl%MJSld!bmON-9~bV!XS&{HC1IL>d^H0r zYqbnQvH4)&*u3=qBdRQ%$c|N!u%>{9D2=U{@Cw>ooilBng+_%>e+m-5YjH(IapRYW zIjd+2HQ|Sh;lX%~zuVj>919K7a6Bt$+ZK(8Ru0U3>g*iPTT5eK71n-BEM6K}Th_^)}WNYEJFo0;Vu=Vxzp^g-X zE)yWN93zO?9dkU=L@d_nJE4>@4skLpH7buugZ9F0e%5&qIWq@wi*zFlB1}^H>a}YK zWgCD(^vUK*K?Q{-NKXpGTik{d0s|i`z6IC*-#Od%NQGbN>E>|B7!W$hz!52v5@q&$ zD?{B?Yr1KTHW0IDdtp3BJc6XU4B&ZZc`COQ8HCe2_Gj> z8+4)UoMzcvACbv5^!(m`09N#CIy*Wr^m5vsVyW0|cy!t8=Db)9ojkV9plRmpoDpsc z9kA?5jMvfu_vALUd7SjV_}KcwR6653%Ct!1%sx`-j2QNrtYl-mYC^_EW71Ifg@2RL zIr#)v&l%~ycj2rCJGuKsf~5AU_)@9DJWmY6Q@wJ9tfBjfccW5D$=1!A>tr%tP|1t< z{^EabM@W-S%A#!>1F870E9_ZHDYMqxgr$p3WocFe{~u_#HdljALVE$kNs=Z+Cj|P| zWw7Wzz#?iU7~unq@fMQ95xNL{@9&p;a5xQ`n!}P~HPgMT-Z=)E%h$jg-M96R;M|Ts z()c`i{S$y$7Kz`%tUU_x-#mK^T!Ej63yBPYR!zuInyX#Z`vby4BCN`|R!qOzzZQGw z=0>)4L%IM{bi~o1r3$r1yx5fTeRSFf(4q z#YF`sA3eFw=rP*j-q@HXSCjDwr5j>g%pS}B>`~tku3zQ(!ZU}@89pE*gaYv zE$qv=_@?4I4?r0`9(0@s;mu%#6jh&n2CPp*g_CLHM4wQnmZql6-ndmvHd`*Q1D@!$ zz`P1;zmK{f^>E!j&P)!Ud5B8PUe+nL)A0(BGUphOl8ePclyefLL;Zy;4I)ZhCh+8yu|_qYzE{6(MP#2XQgHm1`oRYwDN_Z%9s^^w2)| zf{4Gzz%&_xm$ja2ZbPufB^yw_MZ$H$%uSiIZ=Mp0plMK|b(e-rxftyGfWfm9Gi*_0 z2Ut$Y1NpBzNSc}na}q(#J{N4QT}9pa{Lv#&Sdt7XB5VdNr>M1H|8sA~tW$*(8-M1! zBf{MNLe+X3UkWYVsc&*S0|6keG?cXbt~fQM-_6iuTqV#ji*GWpZ)n)!#=2vC6kcSs zf~Wj06R4;6=;(SVh#qd%eI~8ChN?A%%7w8k%+!^AC<_=3hVt(SN+p=&UQ9owV- zsbYmqNf$BoIBtUVUg@X8hKdKlB|GO-9uc}PnOSbbn$XQkn4;>}0hCzFC_H4Pjwh|! zk$GHg$#tjsP3Tr|8=OCX9-PtQVuJ-vex1VZUp4ZO(xw4{EGd0gu4KDCyC>d3RsH%|Kv0rludA z=lhqV@Ai&mN8e%Re>nQ)pM~hDzAZY+c-GfJCyCxEP=pY4F0ZSw^J!*yNWQeB31Ez`a7>-u#(@1MpS5wPD zY=UFqc5-s^FZ_96CE~Y$KYbO7?S-@ePY;hPz&cfC1D(0?0dWulK!JMVB^hDl)2A6) zhq$x@CdvtFzh<&~`@vEatFq@MFR*n^mA;V6r5pCbWVYLMjvx#^rnHhbG*sWacdx6b zXE)=edtCq}gZ)9{YNQS3VOT-LUUFHgHMuI=DJVkg8%I`G8_ChE0DU&8#oQ zG{2b$-wHWZJ>W5$2y_H&KQlXfX3rM4B7N2w@Ovn^b(H-6lq{Jc-Wc)H^2*AW*S7cd z5%GHz;vyn1&mHRl$fLB1t`;MU&d%Ilu-Q%cgOh>H{u+*wIviM zpojstKv_?5U%?d1mQhv1-Aq`OQQE%H8 zNO}Cyy;te!-lngtc(!-{w(pf~1eV}0hoRQQH;3W5Ck}jch0;?&R&|^4LJRQblythu zBZQ16*i+4kn%zM&%yP7QualnY5f_)Du>Vwxp+&WFz>Fi@@0c)AZ;Uos!8`TCMX%8x zTOeovdUFiA42s5X6ss+$SN{QY{vSl!YR{}(kVw)yW*aOZ=d@hJXeU1+9ML#o?q?51 z(g03Hml9wxwq6$#o|5hCia@Dhhb&++ccP9BIu2Nj%gf8ba>67S24xlO^7Zmnb4N|t z$MENCjCULn{g9%&YqLNDYLj~25M^Ri4!Xx#$#_CL6QOIYstjO&h0=xQKs7D+R|0&Nave z{!>im!_6z;4=_Rl;3|T&c1(G_sZsJRA!vg2%O-=0EO~wwc_MUH^_vB8uVsfkJwp_E zNy3Y3kOf*4T<1}L>lDXS z(S}5={yV58GBE0v@DKK-{$0)GKfg*YqygD$WdHHATi225A=I3CUkOy@x|j z4nexQ&zUayKKo{CjPxPY+s_W1mqP~J{0HV2C`uhK+u>(#HBiBn)!9>g`*CQdm?gR) z*+--8#*PXPFP4m}Wp8E6_Xhk1(>n*!e>*ychIl}nQ%6GH2MnV(BJ+e>QCRU+I7~&6 zaS+jrys4SMgYv}kHY~G1m9bdf{I{4Yhap>Zk|>oCylB>1n|PpAo&7bv{>N$iJTr7o z5FBJ0_wmylnMe@aL4+=``}`jS?1DU35KsNuDaGb^!)2ljwq)ShFxo)s~fDepvQ7-V6mc&dKSus5q$FgutwHD{9eAK2z{9rrs+Rw6e^oV+B*M$g%bNq8C(P9nwDVUjLUyT- zbd<5~M^bC5LJZrlnIXw2lo76FBfa(f&`R1nL=T5k>f~(8%K={Jqb9FIsahfy6+PIS-nB_L=D1fWUo+mI8N^}VLl%05ggMJDT zPQ#5!LV6FHR)W+2Yord5U4*&}d;O>O^Lxq++29*ejQb>6X65k8!YzilPz>`tlFDO_ zjfk8EwPezJ4pg3q(*1uYH@j!Gf^#B&hm0B6uqOJMxjCT=7t-4Uy1<~p&U=?dLE6~Z z7=FIS6qp%dMhvu+zlL!8q{PI6ecQ!ZBOF4bz9m<6oSZ*|duZ>rZTr{UxqX|6Cn$Z5 zV*pqE`wcGbKK>2kdAMS1w(@R!DgNf_4BNf`(w7;q^WVPA9`Y6N94W;Li9~&1*5WVNF6rIlh-`KJRKj2fL2obfQAEc8N4Xq!2Yi!G4Wd1$ zIrIqEI06xH4nyO6r}CUFwTZI9czCAOp+vQpI?|buN0-g1N zLMu%0)c?St*>KP)>F%&{lL+)k4c&bBYyj^H!X5Qoos1Zm|5T&d4?GPdT$CHm+3by& z7Mk8v_O`+KWUVm*E1-_I<^ykxeP)`ew6Ktls7p*Xd3YQX&U%N3RfdL3sYDOG;X7!4 zjY7*wQ97g5*oMBf{)L6ILdN-Jqz^c!&fNo#(*vVFTr8W9G}e-$O53n+GDITsX*hkO zDg^#ZH0F2rDGQju5cqNM!264IiZ_x1A3obJz0H?o)h~?f#~jIm+zZ!H+&sXjN+!jq zA##AD_+Yqw;_$;_C<-2RkP1H&b0>NJ{+Y&X+t;s^U++G@`kBjzX*Fkg%cHND)#-D( zr~I@Quhy3!-mf*U6CwA!bm5Y|yoAIFoPN-(BWDb{qLSp*SB{zOuyH6!)^9e&@u*|& zd(L^3^P{V0-+R{l&;>;%2Nq%UBWmdg{FmXjYbxJqM1L?B{bbb`C|a2^6Vaod&!4lx z#nJc)-R<_fuRixv9lgHEcCel|vT0wm_q&*Uf3eP+zu$uIk}Q*)N1XVPi_e}2|9yIRqaOu<~hCL8Nf8%oiB5j7Uw{V z1q+9A0da7=seR|k<1KsXbp*`G63{8&7%Rz#lMUnv5opQF`*HXy&8b^wQ`4wwDXlyA z-t^g`Uz1xA+#8&X#CftQ0HOB$DL(rt@?}3`vEfR*O04&heZ?@6m5~Bi+qId3QEtDu z^Ntgb`Av0qNGolX5$(}zOOobxcH5LXDe1Fi=$(?HzIp9QALP-l+@7D0$+Gl_7u>~szpc&#@G%Y z78vvt7AT7m`@>}WJkUt(li7N)i8G&k1<$e+2)DSV_oLNFq8H85 zm#UX`y{BPDgro7Q`TKlMY6cN|$%UQGU6oaVA-vxN~A3h%5>ZqWvULzWZ^BPGUz{lVBjI(RM4>X~=@&S!a z<8|-^!Ssk=K&6S}JGdY;f#XuX+-+Ro=rzJZLMHK&O^o1i?{20vr{uHB(&oPV<=TCn zlNpkpnh9_sL5?xIun1_dlwaMzuHsNiQHNEb9L}blMJOi8i?A}XaSl#S?oT$t$hk`z zU88IF?Z@Cdf}14iL~P!FwA~;2>T{#q=1A{C6_yrPoPvd^)<+%H1X>c)Zvd2sCtBx2 zd^^wA7B?@iuK=+gKYCq0Ku{rU5mYX)|C zaX6F^A5oiiW-cn4cbbFjL~QN(tvt2S@+T8|9BtQa+=x&3JEKa5aYXNhf@{r`bvu2O zAME%(+n_~gdB~AOsdwMuF8`Su!_PUI?wWNkoYEM6Zs(U(GXSERH((gCRDk5{P9duK z?9^r=^2`@iFg-7?GRL+s4rgbTw^4@ytmE9m-Hd%FDkI}rdGL}z!yBMmObQskbb%>> zN@=p&OGWU)1^d{pn;~7MNNhRFr6u5&erv4jQoxa+^Y3oK{jMXTihGy0!aVm8WJWNW zUD&6%nZEDOozj~7Mj+v!+Xyjs?I|vn{ZDJEt5F@8AR4ewK|!pXzWscH_k-i)?_TP> zF*bN-9?L%vf-UBISAUi)m0ArKWQSZ%uqdk-2W#Z5fA54)xm}YBikGvdnslvl`7o2y zqSv6mv-89>aS(h+=mb626|o>KLu28)j#5?!$uPmAI4=YY#kofxF*4H8%~Tj#jlbP( zXun!tT}t+6w^WTNbBINvm-GuSwc-hSdU|0c(j;l>lmsmz-)FLhfn)dO<7 zF}aq|scaPvx7xkBcen~hg&6zLdWAyNdgj(%RX{qIS@M>htEyoWGWB#(wZ1G1oG&9|yad z+S?nnSErI#-!lEt`p1kNKZ}#W4yxAVjT<)>?uGpOa?Pt%2ekpz2Gg))6B#i^SuO8u zU{V-qTUz`&_F<7eYHN{^M=wMlTuX0X`P=AzdIu|A~&%&rTwb zzL1uSQ_uODv|oGKR-KFprDpw37cIy@1gPGse_dLuj@U9^8 z0C+2Cfcf#q5YW?8yo|$l1YSo(Kf|kbtZg!Q(X4?XF6-cBn7$a9(|lfik@I@Tid8Xc zf^iN10)vs;<9NC_60Ppt*P|O)4zROJ*G>&I3?qKT45LKqW0e>-Ks~>QzHQF-G*5QrdZmX%jpZ%KqI5XYd-CL}e7Kj%v9^e-1u7b#fkq_!FPp;JRnjEg=9v7AK!K4Bd zPEl=NbeqGA@RVJX>Y8ves?x6huh1+ia%bDA=nlg>LU_LG zZ(S*1qQS`wo(61FRRfjxWziPUf|lV%;1tH$)%N-+5?s6lL%&Ou`|sst0qZi}An0 z(%yZx&GfXi>ZtXQgn&&HiG2v}Ecw1tJ}xd8yOR&EqgQKRobTZq5V=x#KQVge7t%DB z4_dV?p@Fw?4&hAUo2^#efCe2deaIR5Hn zKV9bk$>u#s6pd%`-~are4We;q*DKNJtC)#^M1jA67##=Ew`J?l*OH?F7&X){VsrMe z;D=I7Du9G>G9>-*@n~7;uZU`j24JT`-6B`7^NB;>7}e1{DEAm<6W6-6gj@x%S@FAf z^|I;R&^aO!CS~TeBnsK1-<~o_y36uo50rY~qYTDi)9WB`8l$75$1N6<}NvoShn$N>o4l9JW5ng#rx|0@N@u z+B-TbB9=P-gIdb;YO~Xjc(rjr(p=pe929>;X zdN|X7LV8Gp%JMs*%0KhDyJaje5|SGtvLDF@J(D}rglzA=+HudJ1SfBy8-gu-z}$Cr zcN2t;P8~Lx^-P(H6~Z_H7aO1yggEr`8TSp5lea4>K2C}y2#XrkRD8VtsVwqN(vEcb zUksem%*`S^ z`fZc}(=YrDl_1Lsva`nDalJUQJqXPowu5)Rhjc5Zx#pnv$2LEEuZfLlG&eYd96lkhRg$HS|3_OQE}^Y$)+d zq#mWpGD=VS))=Jj(0`Ip?|$=SXL@MORmS78jSa$E)=F+-G8xo0F))33byGr0z!dcT zR#*opS+rlQDJW@;(8p6m&BCU6f~&8wnDQ4UUwSf~+&05WWtN}3Pwrx&4c&K|rc4o+`Hq%AI7AgEVt6aA4IEI4lPs3Cn)_P1^Kh}*bqo$r)k%CWb{(3m;2 z`$O|Jx<@BzPeFwJJhB!9$^fh>Fg39F$q5UW!hmqY1{SPKEv_%3w0?iULY}BN7p`L- zuXZMFgE@zDn9=jRRAtoMt*>=!T;kQZ9;N>}(}#-DKYbJy=9&U>rmcqWjeCXVWju^l zOv;L@-u;9TjK#@lxdE8bD)NCazcjG=}S?eLj12#uSCAQ&>{=ZAGDh|ER7 zr+Z$b7sRj6SmfaHi;#`buT^JBE9A8Qt>753%*1^p=duVC(ZRs_Yi8TcwirUD2NnRM zuNpdTDL zkmu0XGH9Oa@b_0G$|b&Ho0=MON-9y+W8X9*z^BbwJYX~NwrKk<`Y}h9p8CZ%oceB- zw>PDaH-v1QENU=LVE{QCY<1W}5hZ7pe%E&j#Vb?EJ0_DB(Rt&5Q}*dBvZ%evx6`Yr zggBLUbtXgbhQNcA62(Z&jR82@zX9QhN1FgLT=EZn^~&D*7Y~Py=(l<8YjscxH;FR) zM*VnUo^WlK^*d$6U+>Tp|1X5^%nI$Y{tK^pb&o;7N872PbAdn;*D`b#sA&W#95iuH zj1kjo;UqxO-G7+FxqDX{X6nl9*3DIr!N-zCGEnJ zs8{XK#Z>p-RUz-`iZF)KZ>Sq`{)xGTe$HMQ8+y%A*-dv}vF=q!7*f%=h6RVcFdp$Q zMkCcC%ukxHluGU>*lTNNm!{t=a}C;jQT(&Y211R>O@psV>E2O3ls9A^Q49~i8?orUZ;`n zd@74P4BXJ7bmn)SQ;t44>c8!Zbm=Vl(y{Og`WDI*W48w4bZBk~^;|w3x`@-EXSbgk zWvix=Q)T5pu)%4A`OG`W;$`7UxGzJgMYYzBCj2`(SdpESTdH$1?a71VGMH;>n=YI~ zah#Krlb&7&H+`b;e4IPqLZ7&rb5{h#&k-o;YsUI*)iQh*Gx0AzA71*MYpURX3mlx< zXrf*MYo;f&iod64J!Y0xy#a)5pr<~liXu076oE$F5f#0{jk067QzGP(LfeLkVKt0w zpMUuvDrwI6Mb?Skq+iM?3!za)7{6dK8Hp_1nZsXEAPdw1O}z2?cOqpjJXNYRhqd7w zI{5H^4;|bS_`i$}7LM;WR+UfLf!G=7jadn zBI?H)8injL>kR_Q^u)TTkpGdbtsmFj%bv_oej6WDi`8dDhkfeYw*l#YSbhT&L!5k+ zh5NX&IjBDN)it+sWfMWg<1@wxjezqXZc7@+BHyISGmVBJPQ89}=mR z1|Zy(9^YA@uhTZCaq?1Y0>{>~dzSiTbCF~d5Uqgi6aHM~Hsl3LTF3ea`RF)Z9vq!K_Zu|96uZnM5_QYDs&v$LfN+5k2& z`u)7?{ti3t(dwZIM}iVi$6T+XDOq{_&jiknSS|xhoZ{zym~H`)apDN9#bjZ)NIg0j(%D<`Bl3C`f_Pe-fr70?~vKbk-sVD#nr~(0gEa5vW81x)fqT z&o)&|33wF}q7RY*m^v}17l<$&lc(E9@`=l7t5iqUsIAC)S ztpMm^yY5iZyNSdNwr|3PQ9k;Vwb)fxU~N9A`RvWd?$M zQ>TkWen*g`gn7&%H7?csHR$13eov1CWLU^)RaUL~yFRakLa;nkZYg0hvW$Yz7GW-R0vDe^&&-3$NP{l6Q$ayHO-kwmjZ^z4U%YI@1`=5Q{St02~ z(v(c@`ufx>E}&XzwW3lG;(`^1CcG~E%6Sf5JTdfJfIu_?(8!MMJ)l(jJYn!?1dr!^ z5*^lS%E})>@jzw8hsY=v9x_i*@@0`|zy$>aB1VaU&iJ$%EpQ8V$Eo=7St}P@Tcbk$ zwxEEB=HrlwUYp{O`{gMx{?vXIqts&@XrHd;T3J#}p`a&P9^=UYm8CP7yVy`|tOl0~ z{AISs5CuiB?S*+jSTxLA*F^KTpNNzs%CID8S}!Yx%avECR!ZxB=MKd9@*O6(<>Qqf zfY?A7MoM6s2S<&rUKRcFL8DIWk4sX{hgoX|P^q|usolv0z~@|HpgNY(ciJiIMn>os zV!OZjej~oEim4ai)Hf=__Nh@0r$%POJ%@=94Gg|GXy(m*KT)CM#5)d}V==hb`!yLpb-a&tJ+g@MQww9QgHr4rhe4Y2aA(9=CELsMwDbiT-b`e-)51o#D> z`pCn?1|z-zlugPZWKgxdoQ>Sshirciil!uo+={(m{SW^kK$d2K5gNdJm0sT#P|>=6 zhQ)}s>FVxfuy^zis2X-rQ1mmDf|*gRRFHAo^n9|KWiP@|IjkNHJ()pJe093T-RZ>s zBe#;S#E^5iHHcNJcInqoP*8MGP~M&PZR&N3t{1p$4)Hqr?F@^V#Mmj%(@&D>)(SI# zut&p1jDJ-K&KCCVJG{I--Xl+NYHmSo-F^CeVulLzL8aV=v_EMLrGP`F$3S=t>kR@l zPXkLwBsKzsF8DSa#!OXOka3C+0}oPsskB~9$|0BDQ>L(RFEMoImytA=>9q3|`Wxus z!yj(TUAijH6B2h!y?kQBGYhBhFEvZ?m`AfA+1(eUv{cB&Z1>RR!wh@sT%M zT_{;Ppl+I_SZ9C%Fg7{sq-nl=x4{w4D2$1NNVMLI^b_zp0>uPMG`X|>XPDA*VRZ3l zX91o73CSzCc^8(XR$V{)uSyE$7Tp=elc9>P|-tiF>&eAWX99pCIO^T=bvZ zG#_WMNAbz80yNDu^U2ER+o6xWfBa{u1sZ*84>l*}SJHrFZ@K@T<<+{_7j=tI1}1 zjPFJI*Iz_`;h*a^;(h$L2mj5NJRcRxb2=QZ;KZQK_#2OUfz#nXhSV)SIvpk<`RCF; z@Dgp?@uu>T^v%B>!oMU>Bw06JoVotu#)HU*?3?$nJW9K_>X(049S^jkt+td$?#Zjv z8Hz4dy|I%a>UQ95d7hgx-6Xe)mO*yBW8dU7B=_Ea-pmqe=zeZQU2L_`rgkR(vn03d z|H(6aqVj$9i?7t`H7EaCO1pnOtB>(Z2Tsf>tT{R-ofKz#gXZv@!v0%RmEM+2BrP}p z{k7pEttU8!JmmsSm7K;9_g)$KS zv2S9(X;IF`e`-$bxBKgI=zqWZw^ZoVO$b2}k zJe>IZq49q|{Qq6~?}x?zeeM5$zvrbHYlv`o07Cw&i9;lP^XGSdnb-4H30#?2Vlj=H zCjDMctReaHl#>n-jRV;UwdIxNgQbN7{5ZU*)k|ML#B}U_|Kl?L^IVhlV9iEr8Md@x z`J9tzEU>odTQVP%8QrY?Dz`WNJ^{+#1M|CDK5dDF$K&Y(5 zfp0a;KaTsex8QZV8+P39%puc@zT7%_Z>_TyN+OxszHGC0RKGHIOKnbwYiY`6>)l>v zJVB2Yf0FB05MD~BUTw3L@05B;IsSt9Sz4VP`-CY^E>;F-=Ya2)peml&K)+nQ{q1oR zpK;v=#5qQ+4(O{2>v{2Vw^O5124Aq)SNE=?YqqU?f@jqrI7?y_q()Ke+h~BoHF3@H6d0B+>oo0rfb> z`(j?7C+!lf-PbECMDZ%V)IW)5(`I^^oTrzI9UiGCkY8a;lcj*h0MM-B&Fnh0_AV}! zpy)Xx_0Ytb1Av$e={A8h4xP`~hfC%pf9!Q!>7%#|p+QLVvx*WKHya+w==Ik2X`P%t znSGSWyL$NbFYRRQ8KTUiJ?#Zk=6oNchHJ~gAZpm5F{^5jjzsK!L1AGGCO0G5lh9Xy zk)xbIQf+No6cN+}5U9q>Gpu6bcJ;pH;))@B+qbIp&y7InE&otQr?i(x-|4uu?({1* zACJ0$zP1S4jhxI)BXu%LWj#k-X3Gi^W-o6>j|d7_;icf_DtMwjhn(Zq)_A(RS4q7f zwk%MAx*C|Cu(2GC_?G7Hq`Z%0h~lrgT@qP(4-%5H)9QQ*9MU8YB3FJKCgNXmuD{_k zo>6S|7xwf~-pHvj5NT{(kaEezr24K-yl%tss%At|xd7iGydLSu%cq773vv}qs0426 z=kITzkO++}q`NBf9lHQ6`LSv^WW_@bAkH)C-ULj@Tp?BOK89*2g?hzf3t#$8qhg5*Zl{WGg#`q?DPxi9$9B znQ1GMl94TCz3eR`g%nb@5K_qs5z7AFFV5+7-tW%m^ZVm>``*6iuTB})>$;xT^Z9t( zANO%x!`GKTfF-lpAy;-vo;PO>=!!1bNSQ_8k8ld}i;_i$?rQk2yF9vX)RxKlWN=B- zWZfDM@u;qmuAenRXPkm3{qiR-3vI^wg4g~D;Nb=a20A+Z?WMW4U8x#aN&gxy@^K?u z;WzsKxhX(UN4tR(mXCs6Vl0uEmp)w=%hNVKwp&)*QYM%oFes3G5>mH}tZCza zzCnaTZ$;Wfzn;Q~<(KbMF=s4jpr6E}^Q9B6zo26PGd48pYc|m_-`PwrveT6jab`N4 z--BSbVx<}bH`=uF9yGGsUlP+Aks#h0Oapwqy+h%obULU%HlV{4Ny1P|P*YIwA+kZ6 zEfj&Tm7f6IAlKD9krez+Kc~B(esl*$4}rzz1gj;p`9a=ePIiELva%p!!SVVGTrb^2-{Wnk z_HKaC0AuZGjO6ZK#~2(8Q*Tq=qHm=Dg3F)7i#O92Tg~-0t0s~<7)F_wMRLro_|Jy5 zwi&w?|C){XhtV;RDb?KVr&9Z?RsMC561~oc46N2W5s|6YUDIc#_l5XPe6D?J(VZz~ zYdtHyaM17VNk&2OGgqFf`oaa$3q#c%!o!W5Fh0eD1i?PZ%J8*rePFU~p5kj`Y_T7I zg6jWK1kxD|5FMnYrCFH+o?f;h;BTeieswjq0Dpf_D#2#XKt%!4J*F#(Iigq_cuP*Z zVm6w+^ci$aTp12I@52-yJPa6UW**H?{6DXE_+)yj^fK$uHy3&}AC*2n*)rC!) zm)FhuRlZT(enAb7Tu1WM0Xf0=>i}IID-oZss;?jlJf7do2)ts)HScdHGHt5oB86QGIkEi1ugB zrG%$+jo5;YjU~N?$vwImcgYbF`54Z+orezTJ=KwaUka)N69vWY^|+2=1aya0c(-oM zVbREHT0)$^cYUxRFvtJPX4Tn_t)Yy8(crxCRi4&CUQfBSxuiCWX=S~J!WR0DgyvN7 z%WjK6p@HfZYkJ}#R5uK?YvIR-KZ#DK(uGt z-bFT9**@pKjTd*|zh2z6>*1iF*dLtP|I}`2Y+H>0H9i-lh7pts^^G+IPcry4q zFi1wGX7XQ8c%=^%=SaMfc;DTvZTn`w>4ij30|UOSj1mDo3zV=E3N0%FFNGzWvP?iZG5H5D*4rHOZVfQ7cT?PLf3a zbdeV{;xwhDD^R9<9)j~>~Ye=*^ z#vFFwUHbYlR7&M)M4&@jx=CAL(-!>ROL_nGdr|l!fP!ib-tar10o}Z5)|%PF|Mt)x zSwb;!y8I@JhL;r;AS4uEOy^dK<#VjMaJYaILQrVK(H(vyBGr5W8h3B zA1;ys78x=+Ksh?Cq%DF&5u_|#d3C*5kEWpTc3c!eL=-s6pHoG%@=SP6c8CGUY-3aI zusTt;*?2D`gq`&+T*!l71(9o(o2E387{y$1%2ZC4V&-rx3@3K`n$`#XJzqqLwwh<> zA4*|O2EO9?rUA)MOdgN;^a~sihIUot9TXK%dVuqX1G&h&fmNArNgV653lkXp3#ybx zIq*;ino|y%R0Y6M7lb;39LLHE#bgpnaFqtXqj^ijyof$%i6(?sH#YblB$S@rL{*&9 zmjZg1Y-=<~^7#Cy*GJwz$uip`9c-QaMf>4jyfL}z`pBaTnCwzEz}gh~m|iyz8)x^Y zHub56f4{oXt;Y&9_46@s-RZ?``Me?a8ty!jloEp*N$P_LdQ`3IZ2J6tD$@DmEwHd# zrEt8OWG&UmUwV71Rd=+VD}h#0aAxl>E);GG<|aQe4l~IDkrYjbK}JMx$~}f$NHuhw zK_XLrhn!ItS7fr6bn(Vxo$~& zn1%BMFo4$*Z-`wYVIN*XH1eq2+h2cgenpO+kw7YP^umC(m2oM@7AzPNun_NH-{-@AMq?-3_21RJqPul z&r8{%cNt~9-(d{9bLIwQ(KNgnm7EkuUEJM^z8>cms5fDN<&2VECf;;BV#`w&u{B#< zA$C3*26jyA;zjRO2z|^=EYgvRuvDVGTa+iZ8@sZb64$KaS*%=LBcJvU$>(SF0ZkfX zDE@30*I9zzpAN#|K6&1WW3ogV-^?6z@Y5x6!XmFZ{c%fGRaHS$#4DP>-BN!iDPZp1 zsU^ZmpUYCky=xpy)@Crbhy?@z*X_P^OhDR7u@QP#A~SiBb_0!yBf-0AJL_6`#CnUv zkE9;cxL_ypHquhbe{*%rVg&oSE&ta`eJ`IzL{#;Dx9%*Og7p8RLv6Gqb~w;*Q8&!N zL_U~X*R-gdBQ4?2D!IMwH2oD+(~E_69TDoSy?Zr$ZmGEunp=o9hHF&_7g5&GuE{!r zQBLSSqbpCtBe?g+8C{Mt zf~fUMcpm_PW8r_5#_*1aVMcB2aXoO7B1Cf>q^QaUuyr~xo|o13Z}_WRwm`YeeLpt2 zuYzicGqBA&h6J_`I;w3wP@&<(Ap~Mo7Lin7AXqs#WaCpp(pry=`G8BEA?RQ+-@yBY zRPD5xGR?Ma{BDz0ImJRd`5G)Ssr7c;a{EUT#oSE}{f8T00STo? zn}At0QOxWtK?fQ$ixGA6b`G1AJ^0ukmj9_zXhH$B1+TKkecNj=l!xE`%@RR{aEduX z2Xe|n@}P~AQ*PIYgv;1tousD@vJTErljP`8y*i`--#Qp+B=F|=Uqra&nTKLYJNrI< zy%iQwR zbpF#*+S4$Y%f`m0WmNHVGVV7S(ROg(Z!;X!&^`VC!;c{J=wwRdf7mIW9^`DW#K0Ya zll8$GB*MiOL^vGP)9a6Iy-tW(U=1}vwU#b${+gPr7k(;a&?P7*-PR#jD109g+j zQ@kFCnyta^R7pa$_|yF^vPbmvip+B_C+wsY14QMp+n@PL> zvJm$OENo!7v7k0_f<%sZ-53IPUxVgC+&f8a74G>HfWS-EzFe zkA;4gG0pG%^39W)<^j3rUj^Sz94JsffOK1Fe@^vZ#oBDh32hTc)iHmRGx729BW*d= zq#oE(Q&8NGn>mMtPbPCzQjG%UC~R>VC?aFI;yJjutZ*WL4e#ye_hV*m4LN=KK-Ljx zppc*27#!rg`^!GN4~NfND5H)vUB4EwTd+s~`Qt>P!nY zc2(EfP2jWmHTc+zU=-{LU@Op^GX+5N=oFZ(J?1zmmfSw7^D_CtI^+cC|33A1~W1LCJy-WA=9ymzlv6Yz9@v z>E-Y=&`7qedT`OWNhORDXDW|!to|zH*f?X_nIge4#ibhU`$NZSi`$P?l;eWU_gS+V zs>afY5*r9<<)2<-W7ojAl~mAFv#@|reipHrM5*#~ZXTp2 z%MHhR+gi@813Y8{fpFZdbsf>zZ|}Zr6;9U5IFj4gLjf(z`IsJ9FI(BjUbv+oXRXqR zM{+cfMyEKPKtBkUcVJ*W^9X@zwH@h|8ssaclwuAHgZlfbIsdXSju*ANaKTC}e?Cr< z1X#>4NBZczXs!^o0CRf0>5?$1qV%{P1Da|7^EC?xV}aegd-skQ zj`V~*s3mtr9!;GKTpq`LH$FLfIvVsfwp`)Z!tyv1Sy}Jtv2>y+BY|68-GG!cc=(_< zt!k)}HK*9N`$>%Q@;e3N!bIe9_&zT89$L+cFbjoES$|?kwYj=L=YDmD-3p+qDG2#R)ywd zTRimCgvJ!KXJUzaPAp{5{jb`tiRmV#Fcl-?d=+OJ5mt>~2(N}Pk#jMpJygditf%iO z$knBYbf6y~B%bEK(}9ucD51<^Q@O>2YaJtv0`@p$i9U|M)aR%KKhz3cSR zZ3;)X-u3NWvzzhgk6!7lE0R~4wo55}R~EjxhH>=fj%_7XbeYCtG186Bt9?_C3yhw) z-4Y6`;0vdVo?qHG*W3HOWu#bDF1~-5BQ(Uc?{drc?y}=2)gATqRXfD=U!PDxK3I?Z z6xHdfli{=Td0)KrQx z>I1<3l*6As-46|g$6!T_!w#0FuWQa#p}QjN^krgetKotOj8v7Kl7gOomZ(M#n0-%1 z+NPqRVYH~4Kg>yl;Wyg6BH&ViBA;INSo)Z&N)sE)`ddCe4MXyht5z!WI4o8}hp(2& z^2$jv9VshayOQj~^Nov?A~Leb78(uLkRDv-n zyg_V)`0p)l-O`^Dmi@=7X+Q*wRcq!8AL=BjWgGW-e0vZ{Y)WL8wEyFB1yceI09FwE zZZB6qv=}(uPcp1$G@AafUyLXd$;h()`)X|cgM)=3VRB@9a28uH8a+)f(GYQG`L_g; zM)r(LtKWpZPs&V-<}w-Cp$AL+FtTUgLx*K~y~>pN$0RNn**V@-im2Z}u^}d4BP;(A zVNQd*eN}87#veQMAB8=%iIx}Epb~)_3-&P%DdQY+##>B0{l|=Ai6W0oYrBT4_WJ29 zblatOl96pTT_muPk$o$wNUtA^(swgkNZfWHBS#R85`tsRag9ibrO$yC2?oh88Qqf6 z$D;TSD#JV&ezP}`MJ+1Ff_u(PMLC1lkZpvrCP<|V;5*y9`?M6vw)+aS@ zVMRF(uR0`HU_QAN?FHF1n-8Icgj5>@-f(~aBi%3@INgo40#O%2Y}&o4H~}lo>l)An zxELBD3e4HYW*A5s8?&gWD-2n=CL!nuAX4Ca%8Np8KKh&^dBqs0V@CTBcnpLs9aPiD zh!G~2Y%p=ZYI%^pV>Q)+*%uoL5D5mjM6wzod+ae&^8!{}cNuT~_lXH^Ha5fV92A1| ze8x9L8=u(wRK={W&v^CrEfR8sHz18l?&Qe@kgOrhMj|Csb)Y{<*DM&7o%{D1;cO4!*WNH+2nHg{e4wN<8KKzOu$gltRU*IX z9Z%y9;Lr<|Z&(5i8+NIVlbRO~ny2fipfWnVg-k!yy@Tw?spW<_)rKWCy z0UNRP1zcN7I5#x{{4f$QK6`dEE#I|L31o$D7e}G% zO1pJy2CQn^uCE%X=Xt;Q8OseRd6BX>W9Ejpg3DU~ph)i`-}HZ~<5^W8YtZr{4~@EPIPb6KbD`oT?^^#lQkG+kI!FIUSgt>KD;G}uwc zCT##T9l24m8mg9xqYr1nd^V~YVZfL~@KoYMZROMCv{vp=7SEhjWw&51pAw0X`Q zn&<4fHp?^+9X2x_dXS6Z&*5%zuRRA3y1^_AKydUofcXJIK^**QSQ)g!HhNHCp_xFi zO)H$^-X@Rl#=JW=81)AsyXtx>X5IVcOD3CsQL=MKOxtxNt~`#9Zy$2vm;)aG`z7Ep z!3}9tfg<2nI3_S7@l#nFI~OJ+Q|KNsLzlfQbz|eYO`B@ozJ*_^$T8(B=&aMni{eJ_ ze1!~%y#}ud(;???QM;3rHRk8%13n-v2^DH8ZVjd|S^?3^udoeWT6}8h|8-9L8pQ^m zTd{g$Uqk%ncGJO&U@}%4VCvKMmK`4*`<_rQiOZ|3E>@2E)TvXhFh;3qrW$4AKMSm+ z6CR;$d3cS{?Zx|IyEql5rM~T|@)cuz7#ssYJ2hQhry*uYn8)1bjB>$B?S3a83+mi@ zOBBLiS*YO9buf1hk=?g%Z)}U8_&GCEed?@w5*S+WHpWdsac+wS{_9PpE5OF(-khpH zmK$<2A3po=;REz;Cl%jX(v7?Vlc2n!Ld8%;#Xo$V)GiE9h$>LdBsMM%$tD?WM9tQ= zYz47=4Yv||M9@Il!c55mL5$)vlQmmOx=KbSPqZu(Q*q)U&OBus*VR%wJKtHPUM8rc z5@EsQN?}q#k=*Oi+5i>~ntn9+2jQ>ppM1x`J&>h1_w30=vVp4m=a=d}d@6Ne=py@5y-J&8 zb|^xm2Fna+s4(}3ufld(T5V-zqkEyckC*DUotLn?oQ@FJL(DOw?+UU@{q*Esw^|ra ziv%w_tnXsK^vU-v=PVw8i@SRY(^F(PR>E>`u-*sHuo$RulmxZ zTPOLFvt%pXwBt9Y*lCiJk@@=n^&>BBI3#p@aUs%RTU-2cGNr4(ef>G&%O}dqEjRBE zuLhjQ81`uKt8U}nHQNW^0(P?*qKluEj4t%w-xy~nLJztjZ1xn#d@3`}WeAk^FFdcT zq&(71nbf(AER<|pnpn9VPZ{&Z56k^(lox-nv|%i@zyq*F2yZf}#Y>BR81j?3Of)H= zDA;j&%Y~i~Pa*1q`@p`3o~2P;RW2p@-#$IsaY6r`+yd{yxUKE$kj9bg7iCuXv-!FT zlbL;$FPhw9`LUNzzLYF=^c_7hXC^aTso^Sk8`46BC~pO0?yHm05OvT1LYlhN@KA0_nb zla2THT{`&dp4L%ny7pgOlT#+cprasM^^>P90B(9fpOW~lZ8c_V+HM(cBVKTsuS4sq zuZqfWj9&kX>QlnuTaPY&?n?*d-TjRs)MY!XMLo=#^$!S01_lPEVQMM2$IJFWmQ-Q- z;R(O`B9YT(ZG8gC{A6aLiyt*~@uS*|{rypo;x%!^92ge0Nan_?WdTr_3n#4?4me5* zIyzDFdgdu|p~Ye}1>HO_n{4EW4xm=iZp45YqbnxN5wOofDjBw_st|U*L{)+efna-p zg{Y^H!ULf;XkT%6;bH~vvNoUP0C$igyXRGw2Do`~@{JGQsK9@^4vvI{9gJJIN-CVW z{4oamDc!bhQgc$3pV_QWTI`5@tSg|48l}XhM22T#kr+YN82H=5>L}s#V#Qgn&Ff2V z;BMpRB=h`BLwi@()UKIT`=^*<-OrWZrR6`Hz`y*GbQRWZMx4vy3S<4X!US#v8Z3Nm zlbSgh@hTCoI4&HO8sQcNCtz(uFu`Cm!S)>?3CQF{V9WMMggnsD&}`khAMw1XBigNm zTq+5DHLLss!ubRLyuQSt-`_s?+qZA9AH+HHO$C{G!GOpy6pgi@q^6d8vq~N`MogDL zh{VwEHi*Aav^%>rlhV`ez*HJgI?Jx+1?Wzx9p=8cteWMkj)BE??ZypaCJJCM&I5;N zRZO;6qIH13P2H7Q#~I%tm6p!M_vTUo->A$DM-6rt-of!*BdPR7cvDRu-!Z=$qtXqi!Ht+dj1=}k67+6xX{Ddtjpo&Sf=-j8(O-6w9zV-kI?pqy3 zksf^I(BQS4Y&6ML&vbkyzki2}o7x)o{(%D}p!RQ%9g?}VFz8!wOs;g+q{5BZj>*Vg zpZ<7%<6yGNm_c*DRHy!dOP9*JX)uca=ogfrK{I>dP1L)#<*~k9R?2Z9CH8e2R!pms z56BB5aHI)gB`(ERqN1WERd3#C!Vs&=0=Dx+Nb$^@L8=LNNGls33TE)?oo$z{U(vX2 z@x^a@@_NO6JJqnR_itre&)gn3Pu)8|9ESrXvQparxZ$r$Al1L;r zV>lpFj=_^h`rxWHYcBNFUS`qgT<@Qp%vIQN5t)pYQ&;`4(4jkJ=fyzTw>` z67?t@5lH2&l6xoS^GW6$mx3EP4gmS94u3kPdO^7gfMj}bTV%jb&SD3jpleg#r)!dz z)(F|M-?p}~;i_dTVK?VrE1{fIYS>U|efjxiE2HNl$2W&Pad)a3d^EdaR^4Y~->I}~ zodH)x8$uPsMYe9)vW0>o6Rj;_js{pT;zFkjAgHGPfzyBY=FQhRys&vA&mkGrA|@Xg zDY$>Uwbwy{W4|WOKad!k9tyHcnD6&zjE;QZJhZF1@r?=NgKInHX5&KNc2s&BiRCIv z&R;5i8qygQS9a#_qg25%mbx|n+!+MbbXea(;*tT5ykKi;jYnZBK`J>3eF*l855QsT zGTx^Q#s>(rXkZYVuyXM3O7=jX82C;rC|5~10?AsL-BlSwX|wkl-X8(Qj?9zj~(e zrnlaBI<`=Gd1PeP?&XiDM3p;Hg6DKP1svl9=ejq0MknK}ioTN|Gn*qo((3RNp;sgw z4iQ^Flt28+o*eFt4J2RUJj0u;b0Qm~6KvlQKR+Oe_G9{D{+9VMy=GWtsfC zx3&dmS5g_I(5NSqUJe}9y_;JqJJIp4`(zUv{8>*8HL+=4yDi{SO!t|XqEPOUwwc?k zavSg4x_!I!4(xf44mRNklxZqC0DFw+LZ6*19jcY57@bhidt;c(<)*EpGtk>Bj5)_- zea=A@ZW38eHd`=qu3NdGQJesq3euRUPuxjN>XcPz_ z;!YLh#d31(1&)@WOAxy=?S?4ilH1wsi}myNrb8gr=h=Z#yg9Pl7LT*X#BA|Pv`6Y& z@i|x^2K}6h68CV$zJgboQV`h7_E&PRIqpYAo%F4#sR@+Q`if(&U+WO~rr6>`#N327 z1Xx_G-yNTpkbt((QcVFE-TeU-(ZdmcFW3pOb#lID7aMAhAB^Jkaq6br(?3CT0JCkJ zXrD)paDrDXFCV`D%xX88Rdr72Rfe44Yr1l#+WOoD_O^I#z7>TO?wZkopKw>fstgD7tu8B9Es8MVm=|$is0yj7ht!1$p9t|*M?vAnNEP? zi3W!<$E13D$06V7j}D%vFAcwBJ6p8?TMgKth;@X?-0;yzE&sTPE*Bj8K1MwrwxM{j zN+EMJ`5$}jVYrRGd?}O|L|#5IC@DN6E-oH5Z<*(0ba{+vsGVDSPDHOC0CPYSF1u-K z6CXc6LYxq04SjkU%)B_p(HnCSv)kXnBEBA}C(1vAPhFI0vT4s90xE>rAUiYUKv==! z+g~jLHtO?|q0i~F-%enAUA}zz^pAxf6zdJtCs`-DE}Y+4X@hO@~D~;c5=kRZ$x5l{JvUn{jvd~6wZiq;z=5j z(Xu%DJYS3oJeLP7JOh#uCXyR3A97>{r(WPOWh^{s4+fGj zo?Tc@zK zqe3aaq@-kQM+&^lK)h@9um$X=txfAgyb4jOPEM0V654ZsV(ji1Q^AqY$h@2#J567% zw*l*cg@JK^W|&B;t-ro<&6*N)Z1&`Bhb#l{-OmIqF6L?j12MQ*yHx&p%w+AEQ(M=j(3P^>i*?B0-bF!8!F)i3HPH^7>Q`rMX8Q zQ5FjUqN>-ym8lwl$Fs_Dk&gUxWi2fi{yy=6qTSfc^u_=)H;_ueCXge|D~_((usxlv zXG9kkw-J0Hd?xGN(C$V&cK|VWoKgwVfeZ!wd-N2a>x2vhjJe_Wj z%lrL7o=$}!8_UZp z%t{nlP;K=Yf83?#quDwoD8v$4w#-fC68IK{wS!qS?U36!w`Wd!|R;Zcndz|Jc2WYvB$$I~BkytGsg1~>g+<`N8=Qux?g zrpwSX#(tv|xuLDqO#xA{r_e^iU@+i;>q&BBu{{gvkN9d&TtHDuJf%xzFgElg`FDQ#hi1XYawm8&VN zq`a>=_NBI*@{CZ)+`IN)D+>)Q0c8-JC8-^1SXw$_RcX7I4q&_czcox^?waJjWgtMY zzMadm=zkVv|FSjQ;0-+-n$mXYDCD zO#VXl*kfTDxzml^*+C4b-c+?R7S5MXpZFd6lqOXw4axn#Jh^CM!om_=6)xtcaaTg> z0P-wahbA!=Sx2!!;|Snz-+^33E4B|tKtJ$nWemqWsV^ry9Q*Uv&c zILm&D^3lM4?PJGYAdRLFK((={sme65o7<5#Psl?&5O~Y?0<{Ssm5N*iTe*hrj05Y5 zMez*y+9Fs)c8Tt{ZR%#Bz1?%LN#_TzFQ{-cyt8wc%X;=jC=A%<-ku5N4H^q9X9n`0 zeTXJngxIekwSzuorxN&6%<-E7-hzh)JbnPmj!_~Mf{P2y+}VuZK|yC(+4WQfI8V2; zI6D;EbsurX+584m(b{Sx$QE`)hK0G|=>iN;m2|AR?2iz%;r6@{kWps{0~2%|-q>Gw z!@;tj38}!yly)aRR56 z%%dUy%hWqdzrMbnZ4JlAr9yxJi&=~=AgxU`r$79}n$ov#Z81UOs`}Ua3212PeN1@% zTjiY3xrQ3M+_DvGc=V>In+7hAvoBaTC~@;WKm+Es_SYxkycud)d~J7u+|L|9 z&d=r@LboUNpSnNc@GT-{BO1D~fCFV6+5b5x_%_Rz`kG$+)bl9xZD4DGllMJ0`CL#w zk+O0{^yvItIePrdd|zAAnA}|8(20eX$+%(T#&Ar^%SU)fXE7TGSGUGR32ab|pS1$| zt<6P$p+^6S#HAi^{`O(Sb>8NCKLg2ewe8cec9J9K)PV~}y_|I4xO2QznSR%MW+7vt z>txraX&?reNCC#@cD%;ifwX3TY9x{@!!C!ODype|5q4f)3D5bWv6iP6u~m}t!k%q& z0EVl!NDF7YBMznDd=Yx`0bd+b}j?p$TZ`0KbI?cB$k4|U%pl&DG1_|c3c!3#s-w^{C<6cBCFWo>FFhqmh83ZZzb>hz^e!G)6agX z`C7++alYyphE!t`-o75heH zkJN7{-ZpLgHZ*^>p~S=8;Zy1cw|>vIxVw?-il-+Q(u&tik}j;cRIvomTwMIwbpQ9C z%}!7L66?|Qb?7|-Hg-|gP-&65E>ER}a9Y*POb6sM1{lbq*X_f-*tm!y^86}Eao#M| z`-eBNidUw;;b0jti4ZT>KR`yd1cKP{tRSOyw)zL5Uixs+tA7I>KBm&+0p0o|`m9g~ zp$wwclgS0&;$4K5aSFNhX~agH($I(_UzOMNqik_SxdD<0lyEXmD1H;2c%=(%}Es3S36EghAXm zPm4|RAFSbAYzt~N^lVmE$)crJ7^Y05z(|~O+cs4#tpr8m+`nlIIvA3v;3aR(y*KWd ziK_-C?%FTQtLpj*^i6c%S*=z8NKqnc9>3}q@TkQtq|;l}x&qTbg8SFpB>qf^ zp|wTV)8ZO-IAP*c(x^b>TQ>InuN*cQ-&G|@_ow7_%F4@s=C=IpV?Wfs(1VA=L6joh zdaKF)dB{gq_4+Y?<(hQpg?HP4i0Z^}$3YCPiAp?(D+GxZF!7YUPKc-?-k|7k0aUE+ z)%@7~qA7FnIVvhDSd+g-JK3~#;>_Q8&{$JwXF%tx*RS2tqVk@4dI;hnj5EE;9x5)g zNoa{L$<*;$@AsTR!S+}L-)9yflUZRAi#9l)O`wVu+q36t=PiN3VW0pJuPU!ka$Hbm zu%x!%gQ2Qk?>Gj7%If{&7e8TL6lHFo`-cJpr41z1krJp@a$B&i9}6T)%d$2(q_oin*(L zgy+FmI3kvg5wzpA--|1ALrN;DVvO+(NtiGZ*Z{GR8Uy$C{tf(L#Emf>eh+9LVKqVb z??1Ye8mAxeXyZ8%_T3Z2{S_6}xu~t8Qjdd=;|I_&`<=X;2GKSmWj^)8J#F9lt;J=z z01^{OGkX3eUqK4C24D465Wg3JU|h9@>Qld?&;46x)ZsUG_{?n~bg{?xD0~YO;p>?7 zb;vKWJ`}q<&Z(fkgG;ffkjKQer?08zc(??wELG}3wcDSQ3m<8uq}=`4?Qan9Qz1o` zS1~!3TTx!P_+Dp&4d)8SvYZ5SRJc}dQ)4{>Jx?c^bp`MDQSVC1;k*6(OiHQcE1VjM zBv2k=MUR{Svu3MKfx?y%1IymN)ug^4&giiC{K$fUeoK$d-rswV_1`GG8#t<;&F<2{ z`AUhzo!dO@PyA|1+wG*Boz`wW|4r2iv=BQ?A)#0AWAW|YK6q`0x?v*x${;Q-uAYUy z`Z3U-ef#WCRS7!PKGJ1NyK&nlfcQlnE}uZWnIqKAym$xC#0J06ir=j8gmVoUSuL^a zW2YmtyZmdXr>m4r`}qCTgr4A3#)X9w3k|uVI^7s)3xy5Ydd}zqeF7~-S6!XuxQVH0 zTx{%L6b%?d3LE!S1){6=6Pwfmr5!0ZHBR&x1T!uCJboYw%04ua5vYxGkPM1qSQgG7 zaYKJGbOfQphA2l(Tf4G8{C{Cp$tk-w7-baX1X_qo+;0G!;Q&mJ#5$?4x?Jl{Ci$3!5(tap6UvkA++f^;3K1ut z5Q(`>kSg8Dw3L#}A1eddIXNE@k$|~29igH@6hzF)9m2A)pDj&0>qe#r+*Lo@Q3Xj% z$iU?|Arfl%A0u67m5Wxyr=*LRfG!{yG!POTtf`|TdrWCFK%8)xq$?(}nB|AP7+p=_ zH~iD+QOorK_8EoBS4#UIWH}vYY+m2-h}Ze*+8F1})j28mEm$K_{Z4#F$;(_knx-qI z-%Kl16=+~p8U;g+#|O0R*UFiv^NsPeo#8%S{PUxamH%1z^6|@_M`?3TDx0&|`Rw-R z54Tc3UmN5DNP+u&QvCe% z!1#(0oJ4(ci?J*%%Z z`1crWCvQgXjjFSz1v%=m_wo{LI7!NqYO)yk5+wXeyMDChlu7P7;UOV1J$GpNZ_q(Z zQ3Ars_P*ZU;K;~%B#6RV70ea-gHG~q_WcXW8v+EajKNJ1HdQ_$As}cA}-1ffY ze=R}j;HQlXjk_=!^bb#(vl1*>Jx0(I63I)3q90-#)Ld2k(lWrQb|B8-yYGmdNMClW z-XpHxmLxGO#FA9_^OBq>3|!zhdi(Xo%k5d7*$TS`jw<5OgIkSBW;RGa`@_E1rO{VM zy2Eo-Wy|gvNI}hiK$BQInb&oZQzGSw#|)t@rsmdR?oS!tjWP^?J>o73($aWm;%Fy@>Y&uqlal+a>`>DibUB{>gtFg+gI4}Cg?dW@0=IY#dLNJ z-*g5X*{==wz#NP|JmppbRc{ZV2;dTv{(Ru&{hATlgEF_wr{2k@d?AspQp@$+$SB8o z?42gtmiTb*_;tL>B)h@V0elxQ4H`!EDx7+%^H zW5(TWS7R+~Qv#KTVj@mzHNw=`x{1FVcGvRTN`dcMTHkbvr5<@*dQc!|`}1$1JKrsB zcluSta?4yDF0)d-Cr7c;xgP`8;S|Tt4?T&cN$ER1B?HvX({o_k%NBe4$U4nAmO72~ zBin`4-OkS1?B;9aQ*3pgFKu!{AVP5*Gk7=wyW0DFdWhc)|KK^_>&bTX8~^*ZBddz5 z2E|y0&V4SHsqy$E0ee)Obm}+u{njOX?g#`hm0yWA=zq{i%ru@pdU--7$C6?M+ z^`_{(2H>sMLhXPNzZEwSnNO6I%$|e(ljiq@K4a|h&qTD^`#Ka)-_hebh|pta!q~hJ z3#(kap9*R0;o(I9GTS0JwhSG;j6f*EbwpjH44x}?W)le>_7lk|5BaWX>Ned!p-v9k z)1z{G+a0`ffV~6k@zbgp0tZh#9$->cWvn6~(zhQ1X;s?UdjO=ple5k{5gNE%R=VD@ z{mme)i3v){zrgZg-MtPg)qYB<1;xXN{qw>J$^vn#hWv-jHvB(91E1qR% zO+DIHophTc#8CVpi4~dT6+ly3(0za<*3!0RNS623dDCu&P#qsbXN4_aZPL#>tO?^$ zZ)rNtZ?Z|`{#sI%WduebF6@CFgKb3*Uo0)6$CXN7O3&3z9`ehrHS3n;HBi_nJ?g)1 zaT$S$xqmE|YNK*w#eRwhK)_Ub%!dP|cuqZ)Kal<+PTtg%m4RU@HYis~GHuND-!a{U$?FxC79b^%j440nbsg;$TV>Kn?AWDo6^6kIKE9oV zVCRHJ_Oqi80!Ek4FnW?fj@OH2eIr*$IkvBeb*+=|y9556h7GX; z1=D76$;-}CNUFOK1=P;iOgH^VVKrx}?VovX;#XJciSYQx^}1wV7kVYj`&@nHW?oLo zJQ|nw^*7i~exg|iZ#5PHIaHC-v?oG1OYZp8e(QUe@o4w0I~Ai9@$b5uPEE%e|AvKt zx$)nR-17TouhRK0rc(=6U#^t-^Z^^$;<#I;z`n;jEo}sS6tDV0=zKeD5GuY?F4|-4 z;rdnx-oc_q*ofMkDj(c;xCZd%!g9;U*EjYV)JFlUCR3l(CuL^Z!%+z^B9!c~3JL{Z zV0h&5K6Q0cwgnn+DGhJ0oYIn;o!j)H7BPO5xb`-BV(kD zMuGB0WF3!A_RZX$TTn6`C5(~URfS;E;J~9_hsqo0{wp|B z9M5(teNWi{V_o+Yn|bZuleBuXu# zWB7%B5e%=-pKKTE5_gLAMFeAMXdFM7!Bhv_*PqW0r)g^j>2;GFnz|7)w2@i>Gp@?q49vhB`m8+XYY_PNV z!(hspM%9z*>I*k%(sp4`!7DTJdbfzc$K5oN+nft`^wSfYOhkc#Ijijnfe-SfNgQd8 z6>`*%)f{ajzHBmJ8sp$v_nrEvxli+r9S3-dB3oj)9p2}kLorJDD`3E-zwqu*X1(0U zQ^&r2%lzmFMssJo#>dTd6=D#>=(aO}*Ht^ywu31C zMN3QYa^&2!t}w@7DD6ho76a=*^Up&l#4_4A2$dd5t{)L!jwnicOgopz+sOwoB1iUU zaJaouiKZsZy?J}& zLj@86MxhC4v{kD`5uw!x!~k4C?Gey+ipHuq8*K?J5bI5QIc*c+#Un1>`GtNL&;s0c zuBum;`6Kjh*b}juRN8?7mLO|G&n{Uzp9;7Nfc<^}_iL ziNQtT(K{sn{Dl={3*P&gqRMIjf{KX%0r&l-6W z5iK&xKs@}VoHrQ}5mM`szMameRDUpQExB+0TIt%Aox{?iUc&Dj%;RlTLo0Vspy>HV z;xLOCMa`q$p&RdVwZ$tkBvY+h`p$;5UPto{Vi#wf!3#3)!Xbi9Awq~KDXdScqXb$< zlt2#aGV6!7H}MqZrIa(p__{G?+jO*PY%6?kV&U_eC4ktCAhEnl>eGCS3`TpiJGJ>MyeW+2AkKJ!W0X zIA1j}y@{%Bn6p6asC$c!mR8@VPv;>Rqf4|@H88jcSfD43#UFw)gcx%a+ZyjZGZN3oEQ!Mg&u108x>wVOqUVEBCl$4q7fp`2cJ3VDbiBL9JZ<-YcMErg zxtCc3{W?C2F9ec+SDLhE{M-7bNs?gKPu*Oreh{*A#c%&MGv~Hnq{%N5?}nqQ8O7Zn z1O@`oPJ;0dyiYQ00V;@^xJdGc z50f?7VTVw0j6jcr((dKc@CVn^>EBIa9-Am0fGE*B;ZF`ytxo@)Mjw2D{*A<7%iQun zRx=R3p`sqBl}6+W;gSe)4Op4*r}DXdTP@X!|HQ=)Ejw|fHRx}?o^-!iVxU3-vlD#% zbGNX#gW~(G4$1#`9ph%k_3EeD{-h8C0cJh3h_lYhOk*@m&YMpB;3!oQe0f5NkCW5# z>1cn9{(TSTAvKzV-XNg`;oTX*x?opJv}k^Mrz?^I)R&$v4gL{iw3?>2+GLV7<<8O?qJ(ZBKA!m6L=9A3Cd$KVG|$%mKB)bI5y5-dFU%0Jgbd4k>(IPnAVlz|Ao)yA zP6k4ss7iA;I5>W`T4*yTFYl?OmpQy+=g<_+Jtnu{D#|l2__VF8qRinfSAkc>mD_&X zvqJliNtIr2cDX@4vCD7ta?7RW0sUiIq%SnXa8TQ`hQJ;|DL~991J#ZaWt2Dg&M+IXh%fo zqX?j$2a!De5*EXY+@PHY4rpiG7w@4VLYN;Uc5-a|AoGiO3ED!!Wt%5x z<^GvKD&+k@50)f~JBb_NCq21ek}$6P%#Q-xs-edH4(O)sJSP#0->L~VKy z^YnPy*$2e1PbnR)(D?eEWMa=61Xt96lBWR3Bf{nrwBBNEbJ@DNwNP@LYFI=-8d zaoe`Cs@P!Eb&rNNi~l^VXxLoJt}f{>1N~20DH-FZzk6WNTu9w;S#l~A6B5#3Fvwh_CH=X&^SDuDv*zl84yT*1UU*?4e6d z5B`zc)CLreVa7MnS6BA(<;yP+ezZVb<`}cOsoeHm)7H*s0iDE<44hXp`PFOI04vjD z*fd<1Nk>`Oe2dP9IOzuq9krj|vMZwW1~~)ij@`WLCvbWW zioV1&rQSFbaG|4j=Ey6wCoPZ+*$dgUT!MZ zr0txUaja&s2F)}6-(O6@*XZgzn&mIFV2W9%z}t}u2c6&8=n1t1@YWCl>AWq#@`2jW z0O8Nl^*fL^I0~!T+e{LXxx|Z)=^y}g(zYc<&Z^&U&0OIaHc^aMYUe)Sbc81#{4^3l zi0_^1jna%y^7&g{q(e=j5B<5Ra82XH-KPJ;Ftj$6JaKalIThp8gQ34>#6LEU_Fg8+ z%+WU{ZI1eFTUh@`*8vwD({94QV*UDQpzaspHI0LWkTD0SoNuAK4dnU>+b_8!%^_zy zRLgKHU=KItkY!?GlCb;m35c5#n`KO0P_Y~AVPAaTw0_^`p!->X>CfQ{Ptn~d z9dBgLe;y!^L1GFzefxcEmD+(1H}t72nU&&pB&}~0GnTDr7~H;h+e^|$nthi%Y->=V z!Vhd^$^N|!HC-pXs@p46IZj)|hjrF`EH4~XiPOAe(BWQ=bYivc0;v}#-V_|PXlh%( z=mK!7tC2MRv0SI^W4S}aj()MBTs|c#o}Yie&0nMbasUu>{Y_G)zQAYW+O;=*eA=_l`q94_-jCg< z>M6^y`N3pRA0VYsbuEx%01;ZPU7vK1-mXk>&FSBL4y?MbY&d?resH_B7bmUE{}+ay zK6%-H8hS=D30--+LIHs1`R{tHkM_8sa_>;LjC<5CSNQ+1_7+fCrfb-!GmefUV4!rU zC`conf{K8mfRvPgpfrNgC72)~2$E9Lp>&8ysDw(Wgc6Df2uewabe!u2ond01|6l7I z*V=onJ$r`v_}=%qpZmV*rq%#GD>m?E+1EPYukjksk5!&wfPEVW=||o_FEzrX<@3se z;@i~Ft*YJ2KnUIKz`(8a^rx`7AUayXF*03A@7J|!5hY-2YumPChlMnx;lc(_ui;## zBqqN83ORiIW2C1w3Uy58xuGP(t+J>8;`vkR>J(eHyoR>;h1PA98)aAQ@N`>g}|6umYX83Vl8*wA@==7iOD!aaw8 zMZCG8RvNy(zRX>^=}(qlj4L$^{Klk$d!(d1pj+e2&iw1e_ap_>YjI; zievvuu!F!J*3yyb`S@}%fyC7CUAMaa#(NEC-JiN9*vd7= zX0o1!`MWISMUZUbiC;2{oXQ!;flOA6E`}@~dW2k}7M+b34Qx z{4TOEk35%T6$Prg^YA3{A)CJ9`Q9Bye8$N|wO#^BjTF|;Hw{djdctdlZJV%N0Le#l z4;#eOU)eAvF}>Tgd9%`yBPSNuh3o{wTpYWD&4R;Bl2IioD?J_gYvCPMCbb{^!WNPC z#VU2pkjN&7c!phiximc9xJuafrBBxxqe2I@J8*soxX}>4CQF{LSFyW?prI8q@GCF8 zCGZl-yu+87kt%^yNrV;-8Y0RKXrJqkocz=PK_0z8*& zc?eJihA+f$oEKq5l#vuSw|}F@SQXWFC%E5%$P7EaJFz$sx*U9Q^w9*AFvjH3YfV0F z+w&qK7sCm$MDo-8NvFT^HN-EkkF(LI(5nbJ#rl)rc{4CJtH39ucDA6e?w#^=$BA{; zTMh;%PRSbE={zHE3XG2fkbPFYs3b#2nz6;-H?qQW>SsfxwI4c8%oO!JYZK_9MEi5{ z;JnkF=)zIE-QqjCT$w*xqXtAERV`k0dz(q)8^C3}WEy#>**i*~juDwlPf2+4k-x^o z)J;q@c$`o|y_6J=d!!IqKMD7t+sFjmitE>{d*M-;w(v=Y?$8Xd{2#)9P7cb&`EReV z0lJ~j+ zBE&DTr7*gMzorIVaX=x0Us*=pfYmQ-^levE#3kU96hD6o`>u1M2qE#%g#V4m{XM!HA0xJS ze5oD<rtgK{QA2Z^ZLzwDV2u zKOdsqMB<`Uka3@MZr0%;KXa8lPvMcTaGmC3xy7dTm$1wtL>pYk-o2q|@*Zf3*%oll zNf||6jPB~oi0kSSL=FCJ?a{EW(}C|ZW4Ol%NV}Vtt%u>_6S~7&n9caq8Vmi&;d0Le z^xf6fHBlI%I$m9#m>NeP-`#iN!nxK_$;|>#kNG)5_qydzne1W6c#KA~ywsty1^C%E ziBgJ75fU7iw04Xf!wz$J7Fxd!@8wCqg&&P*ie(FCr-L43IPs~$2wty3X2wUX9IpA* zwPpTe(SNZ~E#dtC!AAAOLA@`wZ(la%_nNFZAw3rvnRUaN^N}xsUMO$-6ymVbU@`o? z!HTjn#(X8~Sk`%QDq1YlrL+MKytZ1{4CK>XH8OQmm_2m-o;*@JxJl)9xk1Vyvu8wB z%pZG%{r%}#9f{|`b;0G}NLpb?NZc?WDYOmQtdlzNmPswhJ~!3T^Cq_L4E$pL5d~7~ zMo{_$UQ#gEM^~5zK>>nk(26>}v%ir+D(Kyto~@)IV!fvZ!_PX&>5s18N@U!qt7V+= z?mq$s>&&bDQ}iUk6$S5t;yop-7^$c{Z+`rCUZ3>=`-6yPF+>{=u`r^k5O)D(W}T!CLAsGb@mV?7GrE;4U!%Q-x}8q@YD1-m-0Pu&#UOo1}^6X0?sM`WTpeY8DVgM{#uJ z;v-*udKPtO@B}WpxiNaoUnq8lu69Q``U?c?Oiw#eiX#sdI3;|B0I%>YTDMEFJ=gI+ zKyXGpgeGC0TRm#6RV$#%)Kg-=!7cJ5*oOU~ogFf92F^!3nP{IKob*c+eZ8EWBk*DU z|B+Eb&J?ilGve&Z7=9Mjm}wsiu;U{j@nIK@L0-FGD7h?vzldHeUGn&C zk)CJu18LMW?DjQUg4Iq6IDbc{@x;w6n8tMW?u9+p0~fG@!cdEhdQYr|wC?}uc?W$v z(_2Kb?GR$Zmt2@o)u|uJOu2YY5mN_b$ZEK~5RJK6baKUB z5=_B7IyGhDG4T1k2(}RX=_I+$_kTgY5GA@@64F!r`P(f9|K8lx2zcvlkFpZQyHitB zakEg`_f(S=izgrOfl|{QpF^$rTx395*%DXgC4E0g*<-udG&kOtZkR?*-y9FL{pC6N(R7n#06Mq)w)r^Vsn zb~zXcLs>MyemJY|Wss1DmZ5|A9OIf9A8!bG55ORB7MWtpX)tU4hBPRYa4fBuXIPeI z!y9oW_fr=9>741kvi_=LntVEarQJ7cdf_3PBXGY=9w<7Gqw{odv^d$Z9>Oh4p?7eh zeA;3@2hciThm<=c9x{gnXGm_Q2DJwW`t1XGztDd9FwfexYjc=_q+=BKdS!m?fhOlcyJIJj!SXtSVmpRbvTC7$f`vXy9iK$(4_b=ZtOd4;* zy}l`peJaGIH+D*XjJ`?5#gMDyx;-|0j(3A0CgtqA*vDnaCGH zzOK^0RYpKqbFbl~VB?)8!$3Ml(GO)8br{Tl=@YvBj6X?Jp~=!dx&+!Gw2R3%aYqo< zd%%?V-cPLVR!zRv!14teNEh9@mR6eoTL0NH=CiT97 zQSRDEc!uvNFbvdJwut^U*lTl?61xX<5K_pBr54%QC!(KQV&EJ=qPAE*WCTQlQr@}U z{p-GXCgO9yEqS9R)Irl+O`Qll z!>|m;b#(WR%V)v7z`SP^Vtr1znf5?vwl1TmOrP+&7#c8T(nFDq#6(UDJWO;d| zq!bs2D)BVEQH{tcdo|WBxMG|2mltlj2ieFxP6d^DNMu718a8pz5_~V~~Es`qn_JObSVKeS#F%-7%!B zj_3_AADc3SJrZnaEZDe=lxq$vJ}f*{8LCQ|MEvu|-VKtw?%Ml@w_7q*goLvVAR%Nz zPsh4VwpwTB@2T(9`(D_i_vH;`QEUR%Iu*88xq7`u#>$4W6hJr`f^sU{Uw8I znkR+I9~6seS8ikk#qbyH5C3&dcHa}%%@#%;JoiRN*3~#Fd1tEo<)8G?Obh4W6V{w4 zn(MX*=p6p6aq^i~R)`(S7(kKyeUM;fXYcbhc^;)%mdo8?#ibt4*Kx&po9`TbmTm$* z&zdzusXO^g3uETGW+<#R77{lvDAkS+F!d=Dfx~9>F?a6B*TS%J3F+oD z@|)c~=VPRJcmmcNU#K!VdzN~(9dV$kX);N)0xZZ$kjKOZeGefFq4HMkhJq*!)~AD5 zYlXT?_3BmnhkP?tH#Z3i#kOg7+bzjTv5bt2iq}uvL$~+bmaisVOE{!=km-!SiGzcX zx-iVAM0&rd-`Ro_HxX^s{1G?m0tDZdA>39-uT@k2KJX^isr!%g=sUuwGfTm#@k6Jt z2V~@$k4$Jk7~xF6%bndpOG9&%VKXV|C#(_FEk3;09q7`lx`xaYz2|9@w3eIFoMv?d z-rPh|HI{tjjDOrqQ^tQRZGJqOI`pDirY(|UQkstT&^pU(6|QFJ6Q69{#8JnrHl4Du zuRZBADdknRHJ5TnKbCqGe!JkaM@;T(wXt=A(Nw^SR_TfS@ za49|Z9f!2NYUc%}FHBT9GM2x4VSRC@mO%BaR`1?ew?n_r6aJ>wU)HW4wflp^1BSk4 zMs{m)#`m=FDP1dn0)p%`L6%)eM!`*yUfFF zx`T5zHq>7F!nf4iyLT_Gm*Od%Am<`%$5vm{C~57dXJ&B8gj>rbY^BY?Mn+;k0H<72dbw@^)I?T3Y;&^pc!bfy@kLU|{z{EZ7^E!wte3XtFIw!PFG% zH1@RTsnPEE$krp98ZAJZQUK+VAX$sqHc93qa&1pG?$9xM^P#`Ms#8ntAQ^1Y^t^_Z zK#B;o`0HEDFdsjjo?N3C6dL*#b_&rqdROarg(#jw?zsq3un}g>vDrPSOFS>QhNsip zpiQn<%+C7wgC{#KP6U?3-=OQ+^o_yQ%!{IroPAPtU15giqZ!ewRi`(uxyvcxG-8l3 zG-5>2S9(Cpf2LH4^X<(CXDZ%IA^Sd0<}1>S8;N+)HjJ=xwUGQKoSShpV*BxSwDw%& zE$3o?*Dw3Rb6^AS1O2mm%fDYf+dw^N5|U3s&yB3k=PzD#^^>zBh9s)KY@jiTq}RG3 zUIyeXgl6@m=t%If4$4C?7W9AwDh&Q`Gwe?0*jTTNCpan_+eL5tI@2p+qkXg3Cr7l7e zXqFm*q)t7RHv$_wfYx(072T1aL#}Zfo;~S8%R!ENLY%dq>+rabuI&M!(fAZ#;DL^= ze)@ANAYYc_Pf%3=_-Digydwhh!wHOumG!wx%+1`Z6q1EC>7{KJ-^%zW)ZZ7|a{!^h zx)M$uclWY<9pb}RRvuo=J?uane>-!I$bo8P>mp&h$a(ZOX=g-|n){3*X{{vttLM*Q zbb5-H1^KFvRYH066?<;rGHGBKhc?H@WJ$^@K)h1iLD-YRvp=TXP)dE@@q%NoXu=ye zC8Iw7Sr+`JehpOfpK+$*s2P56rv3dc%{*hWW3Os!T_L@^r zSDw5LJyDIN197$+_FbyJRG|(oY1kOPC-Zt zZ`DC&H{cU}5`E+>3U>}iI8WIZG==*#!YspT+|zlfeyFotpVQ}cYrtl?s`Rv!;BSC? z#a+!dT``~)v#CiZs~sOcT+L#38%{G1k0mIW2f7O#NA%>eaP61QJt88l|9-0UP)LP- zu8(|166jz7R0S8zGyTx#ia5J(qT3DsJiEfH&n}HzuYgcoc&5yCiwAU)xz5yk zUH-Z=XXbv;tl~ZF#y*c}2ctI%Ki}THpFu|>aIok0v}n#eVhS5QiAK>CDGaC09~wN= z31LuUVGlU#tEZ`E{$<3r#Nj4np=;J;Cot7bn3wHgHk#Wmxhcg+K9K)m__HoRfbs8U z5%35e)r)d=Y9#jLwI%zlaR-m!3a&lC!^NjV8jECDT;W)FBWU%$2x72r%3k>)YESVE z9TdefhH6#2f~Los^rhLB=)!yHf>6iBe3tfG5md6FVQa3H-LoSH_Z^p(Q`9PmLH2HQXfO$GvPl*^%NGc! zu$<{c4Kc1{qE~n_F2w!kaa8$3R>mX!ba-J%4F5hWQk+KlPs?qX8xKEwjq7C@(c;g# zR^<$lyQ_)02}pRbGjwVa$}?LU-HWE1PFFNt9E*N7a@>1{YttUHw!S=hA^lMT@QsRz zQLKf=4s9j&r*uV#=D2kn=ke_@PZcv&Y-S+NTBe%gKk96Co>$EDlHQJ-GXq|o_29rF zR6ZT&ZcH7AX-zFkd3N4Eiip&Jvv z%-x#V{CLn)6J?%+jO-kuub`jO^68rGGcX#4Lq0fSiDIkz!8YxD(_MWA%TDmzF!T=1 z3kWldC~dy^RfKngr^Of6#Zr=#`|Yp8toiwbjz&T%dPmm9Q_`wAXm5;DJOJGx=DCI~ zgU&)Vn@&!*vfrCj%(9<*`C8+`(&ED1yLa)y^VBsmPsMqTb=*O&T}W;~uzXeVlfGL6 zisy3DtmrQjuVz5xKYC_meA8&|bdn!+19)ywn1dx#MWQA4J)`3d#~~|H4$`LmOC%Jt zX;%!=bzNSb4mQ}gZq4cXt5b|`YZmoR@_r!UtZCRkVly|a=|e3y!Uq|gCFBbr5fx{U zBKov3Wb>|JFJCD#A&CyEPUrcTTAv??+)6Zxe8p~3f2VhgyN4}Q(c6C+xI5iah}POF zIjqXcC~?!BZT51xGCZ9B?xXH6I4kv3Nmne6(XKSu0{J(*z1vWwV0|X=iN@*BuOppM z;ubm}kIHU`)P?R!92UaCZ0V+=sTqFf&YhSTs9e?!X6R z;zMwxqP(fgIwV;7K0zv8+AAXB1gKYv@}b94SzJ~rGV$_7byx&G#%Y^Md_$9kpX2}u zPH-z=0UTb4XGYO&=hy6V>&dsWOCfnGx8verXJDSy+RQ2^GdPHY8Lt4GF6|rNYkd#6L^Yp5fTQzKSbyK~MeW^|m|1npy zGC=WDOo2%Hj@<*Lgoi|o5Es`?tDrV*wA!Bi{v9_BuB$yIp;$<}^3b9GUtLvC>En2M z-_N>VOBuf1xX{dA@qHcfdO;z)fI^BDs20ts7qD-y&>Lk~rpQj|>i!Q@JDlgO_{*y< z@8Npqc5()UJ&M1?%%|IUiLfd=1}tF)YGUp4=cnm>D#z{lOG)dk)E!Plm|oa3=n{9Y zIlE+4pS_WCMof;639;8a{C z4su?@9d7=9Y;>Iv|7utRa%Sx*)8mbKCQ9uN=-yNq%iKmk9(=3a5VPMy(&+UY#j9Ir zEyfg)7B+&sQIngS$;e)lGINC_cMo$Q!#b_0X!kvNh=n4!_bvnkVe zVyLq3rJH0rvrRA=qnyAs+ad=6vT{Ot!LIw>^f<9u7q3Ypb-+`_`WU1~>bxm+b*ypg zdb(~hNYx?x>9dns1&%Hm?;MNSNn4aE4$I1_$cM12hr-m6vOcz7=1~FO1xqbHNYe-I z1e@le0Qj&`Dio~r&Wq%X^Lr{BjoCu<%eGbI2GnGr`{NN3dfRnK+7J1>!NE&&y_~C_ z_Mt~Ui)v3!J(`GmVu+J}f|9XhD*NQ*RPM%adUrXVbvuW-T0fI8e2)e7_Q*=wxM3-z z0>W37Wyd8C4!?a@yaSBjtg-7|OL!#5r#p<@2iG2Lp{^L$>II89*qrw5v!0y@#92go zh3luZl$dV)<{Izbya>Jg&bDLhg-B1d)LOZ0X=iu0#Z%SDlhv-Cx=-Sub zB$q`%q^_ohT$S3$*h1L)!&wg%>D}9CT^g2bHoXfjfC#V<0&di0iR+#MYFlr_Y^ z+^3adelp2Zw6@b9wc_teVZr zn877ham~wTYFUY5oG}$mQ}7wYXXDp*2&qLi2zllyC`>!FzJK`!oj&HYs+le2XD=rj z*95t$&M#f>sU4}4mq%Gr)j!?__YTT#tEqb{AySs7CGPR^<0LV?945Z`zUV2w-gR$( z??l858Ez%3@w(M_er&|QaX;ClrM}zeF;}y1kDkq=qjAS21`4S2k)zUcO_sh6 zb5pU@%G`2jXs!4CBMD-rYE_1W3mm~BjUV~#blh~bd1*kw1+LQA0T~G1(S|HIz zq+P%pwq8Wku*ERc2#X!$)+=F6Sxn;eKY&Z+Qu(!2x5}1;ae3eUCZkWDY+s{BO?+t2 zsazkq`H%x6siOg%9MyR>jgwDjC7)TetVE=U?`tA?j0Ri*f)V5^jzL5K(&`j4GqYw< zTCe%73Ap}WmCH~Ks@wqY-$(Y}?<&3D9RafyYHqI@>s6nz`;B>}qd&2%O?5vb;0#wc zG1TxR!&^agAx=DN*9iaBj59~~hag-5naXu_bzn}%Dv>~mZ%6KVZ*pU(YWsX|2NCI& zm)EPd(|6A#(p84^Y;Jo*|A#?6r#-8E&q0U9X90nayw4^2_= zC8p5nbePmz?rVL6@e%$jY=mOtWU<=xnF#=S4ffV(L2Nb!+`)^B z^+%u7sL;2HQ2~--N^zmm^@1V~Rz0RHoUqitci%fg9tnTq-0dr_u1K%n`XWm;!mIRD zo5k3=GMabKGV)8gL!R*-=E`|uBpUss_9y7UY}0dPCqrHLBk$jpXoP85a%_{HHZi8& z`fF;jsh@CxW`$wXGiY^sDY&~eHAJ_jyp~b4-`Zq<##r7Gdq$(uYpj(6l}osdgyte| zufV+HVJf@fd^vOG44WxDE+4)7#*+?F+ZN{M=R-XW7L&JOpWq9oK-J8GCU)bOmzRc6h>l=>-_Nv?BqBb*tToauGvwMHBjEq<}OL4t@zu$Ll#R!Fn z=WH#rF!&Snv_!FYW;CFl0Up~@YW{d{*KCF)#_=EOf{$WwG=@u znJWt};JJ*@!^M>N3nQ6nFNI92Cb4`Fdr<_q{yu_+pu+$)SlMWH zX+L(?!z_U4ML9XSyoLl3V*+$Y%Lmy>m%O(n>)UWSRFr$sK`&1*zYKVB2Vtt`aJ#%2b86K4fF z?^HP;T}C|hWc$3XP*^ai=lsTC^iG~ri$=+I_r-G_7l0%+4K~KS^c>`+%t$(R`0Uv| z_7eN{-I9{UIVWeh3`?Q}Kj3Hjf$PDo=$#zi@iN$iteUvO5-db!fLT95Tc9V;ZFp?Bn zwjJ7CM_|Y{t!ujpKu~+}nRGBU9i3|-u@h0Nc=~{r#@61rU!>^Fh!hH+bAJayy-rd_ zay)WC(+1b5tc(mmA7X6u9LRA+**%^JMkWiCY4gClnQ+}%dfl^3!`WAes1tU5s! z62k!1TxJoZR}I_*?8iKA>1o0GHpZ0hb1ha2Xt7TKbSjcFMc>2z{CouY^)EM%+{ z=eWN=CDyoh==1JY>n)#qd(|_vza!O_pL4TN@4ACx;q@adR#AL4wK8UO)k18;Asdxk z?;aZe*{S(sfE)A(T0AzN5(R>wLku0ac7eQ}^0oCo5T_99ta@>u)Xc-@(m0M1WhxZX$ItkT{tpdVvQ08*XmxWG$EXXc2HJ(m<@wSoWF)|VSUJPIbH9I zCSkecI!}T2N(l*tzT(OMAn!=2`Mdo44#eic>lTekJUUA;$n>7z&=62b*mv0qMc3)wy*koRQGUWY~UsS-~c}(Z5Q0L?~ zarHpw?9(y*Rah_gdN{SbTxzaxkM3}YLn}v|!k4?H#B#u+XSy)m(#{q&WE4@~Mr+L` zw}t6v0nBUZyJ+&|UN&PlO%i=P?J^nolMM*C`r{QFf@sdMh~*HG=Z6*ni)EpzzdM0i z)YvAs*Ede8^)TgTjU>ly$!aNn<2D9GZ}xpNGrG9k>!kkG>yXz^5F9AkJTx+3iA-yuD`}+0)VNc@DbfL1q|z=T18~E%s{*5qAvO z4@V4R(RE5M>=wBaHD881%VWu_7!<0;Q^+YxQPbC#CW^dXOj74mp1P!>RbZf1mMhoD zBGzoweils<1UBA2J}wBTvbC`x#J3>V*-zG`S%iO0^NKUaTQr$qey~kwjyWu00ie@x zyy>sWzOZ(lK2@k-bFZZ|eLo=afvkG94?nsqz zH#4u9WV7{uX|QCv46;&6EBgMtIWOJ~H#EsU&24~n*WJKe%dg^tfsvoUuZX z%mTP9Xw&?Uc4F2aN{+S^lW!K1_Bgm@Gy1b@Y;TCmlG;kJ&P`jZ0^RW6-w-j6MTwhV z5xUKp#TrjXWRQA=LZb)V{vrd_u~;$tbj=%G>?vr7ke!Dy>!H&alaj~5?}y)Q8F-_< zr;m4nztqx-o2=(pR6qW2wi+qShR{T!u+rWO0I~>Aes{P&=i#uMhq|^fMzJM4fX-ZQ zOiGJb!-q9DI)z`>#a%**P~L{@?Hz07jox^cx#|h-!^i3~T^K|wJ4WTDMAljqUgRFO;&zVVYz?M!dDYI;n;x# zkAaReW!W~|v_}^_U?*1J84w*3BGW%aQY>>n3Jei!Pz8XOV5&9l=LwH7^F94dw%atQYRbBF zhR_scHDk{kWfQ}phc+kbk0j; z6Dtol^Ni8_o?tfhI` zyUDo!P6qOmHVXPli4)d9d2}p~_1X_ILz19OlI8=@ldf>is)M{C61H(HR>eBv3_Fv{ z^#^z%bw;y;J}$Ao9Km>@(@0rptmQX(c|#Ns)8kdsRw`Y{gHvKEvy9sbVoZ}%l*?+E zdQ7jKDQ`ydR!S>9=Z#vz?;L0e#2vDq=PINNx~9Mc_B3YkD_a`5QXwS+;R-R}7uBTJ>rQWK_h7Xr$XZYcXJ|LURKqnb@E{k&8QUNLgA| zcKzyCggQy;&sXFg`9DwwZ(|pl%yPR#WkUc4AYPoio?c%;%rmg>*)qfG{xMHdnnM-+ zfF7Xc9(XiT)?;fIbo(}&4uCE~u8sc1sy+WGrwRVIKroo2{d0km@>mty#(~{(o@!Z{ zOuPXgMC$94GB3j7G+_gYgutlKHCbYsi(Q)ED;V<@t4-$e2MFrIi1r?qJ>iFD=1af~ zX1j~B4ZofomqD#3iwpYCRLql56hVxtc#r<6W5}S3@+vaKIX#B}&P7E%(=3>b-V~2> zxtw(`Iz9Pch@?cc9_7fhpYSNyM1|7Dv*y0!dFEskl|@wKY**(wS<8$jA>&t`j}ods&wDN zbPTTt8puiv-#e@zOBAbWFhr&5ln=EqtA;}jja;-&W} ze*rSB8ILk2Yea`aUb7%3r@4@Xiu?6TvJD%;v3^D;$@d-Z&9p`!Hzo7qwPdscca3T) zP8!@`$2}XZH#ixcxv|3LhDQ6Y^!oLY(&-WfWU8uM{s%^BmoKL|?5|1M6oyXLMbu$P zQ`_q8eVSJ*rKyo9O~I4FyaHh)!nDSc8S>ZuKEbVv=r>y2Yr;+>jYGB~^{ji7S5rUY zLJ-wsa1S%Xdt!BKU3KyN1^$~kpo}T8&D$Hl!hFDPtTK_?eH49yJV*;8{o`Dr(reAq zlQgoV$_FFKwMyx4o=KW7_NkPxOs0DG_WVs(sLxD1Y||_vA|i&YV_JLGemG+8u)?cU zm(_aFh@3xt35z1lp)z5RsjyDlqFabZc>UV7(O*Lv9=R`wsmm9r8ag>m1J`jLF4o&l zNht~9<$e@FyX>X%OjBQe)yOUeR4Q;AXl8M*T+YnNZOWPtR+!+5m~w{`r7RlKNNWMcP8rJFU5S+28 zr>j9m`bV_Yd>hU1TL{mxjb0FXI18KfS^#xv`4EPE+a7uGfvGnpPTB4qiSjz$ou92Q zP`3WDeX3r#Q^aS<{gD z>}qCYEN#DoHMy0BbF>%uNA6o6uytp?SY+i_=xtr5fZ(>iP~>0-e;Wo{f&{X$v4JuW zNBtedStnZ4+W3v@PT$*im}2>NvY%7bxNbn(9b$CDd={5(W zo*Wtah#nfwO+p>S@Rj6vyD^5(v(KhWwxTXY-Fr0uclJGhsTVi!m%cxbDI6T;c&B=P zKaeyKg4;ZDFC)`BuEFVGgX4$b=uD=__pS5DJD7iRuK-%-+;T1s$YJ!FmfS*cbG<`b z9VuWI6c+aEfr{)1rW@hC+6n1xI~tF27AN1=mTTD^nOci0T5=^d=#xE5ji<6)Wfl5=M`iG~$92ex9-YU^B&?(IWT-!MY6Br^$Z@9Hu^!0zjMGoruhX-Bl(`Tcj2 z8loWyOEBO819Xqx6YIg?^;xnJp+_rW!oz!5P?b35IwRuzy^miH?@Fg5bGT~v+m#mL zcDdvDp_Wtg)RxMt5#^CZ7i*~R)L!?OsgPgy_eob?tchgt5bj4bU%{$RO#B%4&w^hG zRE?8Jxa}`BJPubd4UXDiQ%XR|)2jKQEWeGq9_wB%kp@ShX+z-cw9YyF9{j7&fL*e^ zLI$lm+IZ-Loy%L{%noQ{(nRF9r1~c5W}j!jd!Sn13xl0Ap;`)GeFk{hy`G)LMF_DHpq?rWX|X{; zHVD}(+bFFz`m68mEhW{2Xkb)tvIVd+Ys#Oa*joNl{4o5vyBgTQuLAuS{uLi8Xg^@_ zFxj8*KB%gdzyE~a-&iLb9LnRwAs`zuTJv%JU$1o{e<@CuQj7$u*bMZxF-51JTtQ&p zhKKLZDk}o=dE*Mbb1T90JLB)FQ zRxrO<{j)1;lIa8aQ8a2UE-vuWmps*hWapsu76ixyYv3bZdbFBt;?T$}L6W3f5&oZG z1p|Y)72b+;jeKq7Pa^F9hQL9GiQ%hyfb5Sypn1rON|?V}jmfe@*uD-_@kFS zm#6sFuyR@J{gg$6p#9n835Jk{rz)}?eKaPLK_h!FsMxqF?_VM>mE`~;F z7J4*SM5jYX7BueEguQKu+2TxTza17fg#f{u^r9+yV@|<^X*JVfHGmrd``<=97n&xd z{(`w0Q-=fx&g4G8+4vb)XM~*{td_rfjHfO13MLKPr;X02L$?@T+k(g(d;x+e!q6_^ z3n-4zv*SJzk<<&q#m7*`&5WaWyciiL~jQLfe&I&-bcBPR>lH+Ar^t;=H>=l4DYe2DG-WeCl_X`br(2g zv6)^3T^JGH`xk){TQ~R*0%b8c=Kni^qAE2UY}qG!m%68M!V6(S*#L}mNb?ES#JGgbR#?$;BMEVQ z=V3>_Nh>%$H5K6RZ+x4yGJ=D!C5JeGD8q?^ul&TWlH-aRfQ<>FBdrb%5F&kls?guy zB8TGRB&7AYgovevC9H)n&=>p=(d)j%yN#f6OgdFnRb=!cug}|Gn?0tZY`DT^7%3a$ z+eW=}T5q&Pp7R9FXH0Y|FPgRFW3eMP&O99$T$Q_;Y{iN1yyD`K>2$D5Lnz3kNEaWL zzXOL*K@^FOkDHilJQ21=3{%9y1Ycu^v+m)`~F5|v0p(NI~!YJ;aoEbTMil>DBb3Jfj6cG zV&-7W8L@1OXO4$_R;*;^m>I{w&Vrj6=#KBNt#WiEj`2i)#mPW49xA(V%MkUwr64JgOf0D1%P0Yq7E|D*>nYb{B+EjL(C-Rf=_^{{K=f(|Ud;nvBkDw4? zwyn?{>GWW%?yiShzaDGA0A+Aq#DfVYQZ9k!Yr*x3`l%&qncRYA!HjFkKLXHYQ*Aj0 z^Tr1T{TowkaMi<`fUOq*)p!~T-EwQ`tV?*!n^VD`PYk~cYeb~d9xD~pG|W)BS=_39 z5_n0_|0Tr76ZMDu#P$Z;8mR*~;23K5Q35nh`-u-G>1NxqN47kf)|d zL&>FGsdtC&^rm$jZ<*3n{t&Av)C#-roANNQtgu{US<+thN9MgN|6&4W)c;}vxCQ^s z1TctE+FTMx7A4R$x)&aEXpP_(=KV%eN$2D?d7M4OSF+8^5 zt;Q}h+bapD#E(DW@&Zj37>H4H5cRY2?6Aj%h+yGD=D2d-W~upGp%B6JVXH5JoM+%y zTn(Ln+p_|lPfWhE{x*S|4m*>hePGsE!nCg$pLxDQT@gQjITIhd{L=CLSw@H>CV-*{ z$q|!53f|Lb&3!)4-VRos&v}S`NtJH8#SW_Scl~zb&U7jfU{>rmG_?dDWX(BX6m=9Y zmzcv)cw}U)9$#^1mFmfJnxU^ks2`vS%{=umh*EO;hlckl+TLw7VEIR(kyx;v7ZcZQ@9Nr@3 z1Nfv^QvQi21NpB(vDw5jfuR0W4jigv4M1U7Mz@2GuJ$vPwsn#?jui9PuNd&#lm&(b z#l^+p7sG2~sebCzd)Vge(dtZ+<0;hq`megke5W5%Ik#5@FC^RWtw@$%Mg;kZzVfAo zk^B;5)oBx6I9pA6! zHC@BJr#kQSjEo?;Mz`WSzX=2!fC7gb5`I6o*k%&TCYEwyOV!ptaldRB^}>&a{|mEBfWx*7L+@fyfo1-}zG2_9dcWf1k(RC5#3{xg z59iNW2pq7?a_IACxhfw~d$Okb3%qKeY5$2RwGEOhozL;X9o#gI`^jk+!Gg`Fqr=Fz zXz?%S-1_ES&KWuFaB)W~s7D+e3hT?lTFF_ka+BN9Z6Nad$>O}n#&^RBuP#P0J5k;2 z(+7dQ;XBlvMK6%LMU11W4qx?0#=41dwi~;CzWi&}>@~ zMgf-s?kR}X9ypB|dbzLnlTo~2Sc9*H;c1IqATR(TS>7n^_`p^pJt*W|(@3u@{F)>x z@Cn!nu^E!rfNkZAy*NYJuuqAZ7xNMMIU6{FwH2|_xfj-I`~*n#kNo&j1;}n4GLTBA z3_h2qZzI~Sk0JTPkiGZbBF%M?w`EB>ag%Ys#=}r9tOQ*CE{FU^;wBeAvNiQ~kTgypo2? zFVi6SsmCoVFwSoNzH!!asTnMUd_<;qAy9nsmV{ec- zbu3#5p`2C>-*>q*|Em1xw{HoQDikP!LYA<1Fvk<&vB)bis{IL!Ljrd7>Q&r!MpVB{4&3g58-T~g1xZlv1KzV`Kft0td28z^!4+Cc!}w-!PQDxAM$sC*fr~eE2YtnS-8@Y||!( zFBoVJ8StmqL2rPA3dm*;3+)|X0uSkjR{(+b?%y;{9@KLilQD0FrvhUII(_MT)5qD0 zJ^v?`_)4Mue`1NRKb7CAOlx>f><=R#^B1fR0mK( zoo52$XhHA!^N{s&hH~7tdZ&Bt(8>H={rAWqtD=E8Z;v+fc1MPbJFc*(|YG zk&6>`LY5fEwn+bVxK3ky=IO&V4_aA$F*E);ObA#b=D!%$h{}R3^D|++UvQD?p)&=* zoWCUmR=w_yiZ|r_@El?n@rBzInSL@6C_>z=3#Jk5Hl20Jk^7yZabP@rhPHb_PWd zkZ^%v1~dW?&e?U|V^1l$RmlKBn1JNo+OVv$7 zuq+Dy{!aRjXW1N_i8LxZgUxvOW5Yh}2kxo-+e>j9_Fxmc#<7PAlFSf#;z(mne4s{A zxQR>1);VLr#U%YtI952W(Y$9oZ(+ybnwsDK+1!xggk(bTbaRK4p5nUf&xppleS6K~ zM%=DM0Ctr2dcar+6{*3<@`+GVeH8uIXC&~Z&b?sVE z{QNIbtsBL^YE_M3(;$SuH~jte;ORgoCL6%WKtt1iUgU%O+&R%$Iq+2Hh-DY%7rH05 z;x|gY1-wyp1oF5vi{>YYRS~^?F6K^iyZ{zJdDTK+*=x^;m2s;u7z9ZhLMCmKuGe@E&#%7XpZzf40>kyXw@Kfy+uo}a z)K1~=Qx9%L(T308ybI(&QbClB^o6#lC)nD;g#~sT9LMA}tnU3g;o#Qa5)Q<&w{6=7 z7@dxh@ui1UrtRmK+fB3yIfu-n%Fd9y)FX254?lRw9i5|B%a%vTNwxJq=o{C>2YW}^ zoHKLPHRSoUXP2^Y+w(g2d%=P>Z!MUU_OtnQ_eSpCEl6n6@qM~YkH+0fIzBX!S^4o< zRaJz^qjpGK>3<2VV&7QM)IU#Bt^rzJp5&jW^>|WDzYON!q4OfxJZ(0!0>fa8Cx-hU zTGMf&ox`03aZSECY6hI=&UlKT06>A=*U0)%>AlT)qs}8dQVd|wcNL(0fKrt4n1GMc zj;lv4&8`b~4h9e7d4y;LO9LG@sm7}D9_3tV z;PF?cLDa)TJZvv9KqW_kdivN;Zd4Hz6om6q&j-JdD6UYiwCHbKWXb9DA)? zm{A!NvRVcBHoBiu{REZiIfNkW-n~1m2b^2Y3t1-d48CUyC865+UfeGC_Y)~51zvnm z%6erLIIDzPXvkK-AA)5^c?RuMRqfn1!K)5Y%fi*k^_958ulj(Hmj@ES^^VjXDzE5< z`K0_1Y9`-p`ZT{(Z0G1m3jb54IxX_Afrv1bdkCL92g=Zf_Z897Z`ioer9Uam)cFU1 zqYY>dXaF(Wlo7)$nn>gy7Gf21Xlm_ylr2Pwq3j*U5>McmoY!B4xq$SA2B-kJ7@$hU z=>75W$1AI^7Gf8 z06H8Gg%!5%4Rt&c&JeTtv_Ypzo@DdpS1(>1g*aKgae~iwP11Iwq-HH`Nr)pk_JXb! z5)wj^gEq%Y=J-VwVkvV&=BXdhQ@qR;I|kkz)aV1y(iy3#ZBMcUL7w_@DdB#5yql45 z8;i;TG`g~`up$ZuKhLAdeD!(R$bZ-Lo1J&AfnD;%P}^;zA`qEInov-472Tv-NDQ9UH*>vjpmxzb#Y_sZY&P%#F|*`q$tZhxlQc0?<+ZiWL#OT zkd4+HNTl@b+I7%8p#JvLQ;+!g`i!Y4DZ!rm-hNO7)jSd5=xx^(KMyw7fCod8_JhT5 z3$-qe-$YtT-R0$dM4D<1IexwYy-DGem?94KqYW_XM{%6{cX7nnv2=SvzgudKzw`*? zj)22(l750fN7_IIwA!pdG0)5BeRH1INq$=dJmO?Lrt16^Zz}+$Wi6z@)q^$q(C5M) zhha=;cTM~x)v5B<=XMw&7Ou1sidm^8y?anrj=K*OPhMj+>ClCw@SaM{T=$v zT=nfQ5by(z^EDxcVaTN6lBr5v%bIlFFbUHTKUdy}O3llcoBsF%s+PBaybxBPM?H81 zoodw~dD1JHyZhEw>{|$?g9bO7GnW6^$&DMXUsx@*wA=PSq?TTs_5h7We@ZPMDE${` z)Ekj`@9&@yhD8-cA@Vk}5K*h{0_Bz%)C-@>E)!q2S_drLe!B0C)m9qYeLvz1c&nb` z!kiHt0B+DMA=UuZC1}{I<(LavTQwz<8eKR#ysfwX!gjLe7_W|ubpeFjl*79T49SiD zpI13`-2@+6d&15LxCp^#ATRp3gK>hTLkX`$KD(Hh3qbNA$Msx%zP4NI*bp?MS?XdB zZXUc!>NUu<>Y|>VdJ3g4EB{ED%y7N|NW#rKBqb2^3|TC0xA)~9u?uSP)cb2H`T{lY z^IZ$oY&K1i+b*C@?BR|sJq4|Ft#kEtA2Je>9{tQSU&};gH2M*-*#g2GsU5ILAqxK# zBv*u}k(AiZK%*&#PGfi}*hqYXXBzRmPAJTshFmGMcd*!O(+wK?2%$DyxM-V*xMH{Q zqdudn0Va#gh*5)7+S8k^FQjUpD6DsX(QE4AjkA{5Qp2ySu}=4#sq=>t=aO4U4Ec6; zw|Df(h#r>YFYS2;Z+YlgxNZ*D|g-OUC4x-fok zaq)M3UkhpG5$uTSGv;iM;a<_rcSHD8@Qg}bqsD#BgV#^g5rEUjyni38$p}5b(_n^? z4@9gd;hGrfl*)LH!QQEmfHEW{V~p;GL5Usf{4ID{`gaZg7PR_=_HR@DsV!;OVB)=E zvkB=hDVoiSbSmO)e32()A|VrR+U1r-f!>->0&*=skuT=?ZM)3|UI17c+NXszcFxj9 zJ~Byo<=9Fkkn%p<+oI=sQw8(Hmo3Q`v;B`pi-m+4w<6eK;D&+NKGHY&n`M`C0pcV3 zwnXH#UH)Gh!fXFSLm2tWPFlYTrNcDhq6|$!l;zozhWF|&Y*V!xHqhVp{Hpba;T#VY z>g0AVrZbyZhN%`8bR6np_5=IHu-bT3BfaUF@hJM@)e^%$zii8*GSy)Km)N7g#&sj& zmo<+~43fi?4*tmeB_@JPY0dnlD38G~$gDQ$`^LV<)plf+N&lP42MHr!PAFVeJ`}PI zuWlk!r?n)c$PEu4R~j1VyiS9&oaP<}!~2PBs&qrN!j^?i=u@>^zzW+Fh@g-U%ON%m znnTCz1lxxKMKG_)cob3tJ=>jB_a?-=di4~gS)%r_Z!?74uz6u-(w1q zu7^kOfq|>zyUmNMrG0zLWPYo2t#M;xfgymSRKm8;FMJy+6wN;?R5bbiR$FyG7G#GMME2Q!AbF} zHFcf?{MIq!NdG=zkEx%S=hIlV83oOQojJ(X!?DRZj!IiZY0{KZNK$FrOLVNGMkdjJiFX==>llHFP^$hR#Iga<|`}y3y-`nr6k3Y|$Ua#l#@wkuceqGlc zC+wvHL7vN4pz_L%;R5Wt&rXD1If(A*9`F!=*oK`p$D;A6q-b0X$@SN2liP10CGjHD}9^!#)t@W600Re zC3ojr)xSYpk`!v3Jhih~U$~19= zjkIOFdfQSXs1_yZPiV_gRI?Fmm`3$M-lQ!%c7$U;yi|_P{%lFrh(~m34!g}xYop19 z9qWtwJd6+JJTS0$$$Zf5cCy0wSNhg?Cq~V{AZPCs!`lk<)EZl3aBLUExI<3-D)?0J z5Fny9{x<8K(Se6oRr>Q557#}-gr)@L?-8wU3U#q#Q;musyDG>SmfoQkc@L?#q{-XI z&oPfQ?gsnVa4u@YCjz%Ti`aUw1HkFaQ=$!gA^QVUR$2I92i90?ll36XK)XQNVt4^N zQLXdGOhhX?O*54Ha&H|ZAHkWUgbN^Mlb)cEs>;V3BgvcjqsY)I;NVioh^y+8qT$9Q zy*=a`f9=Ls{#rrD-r1+9&2Q;)A28p)>=;pYE5+MQK*eKF;cUUJhp$|vC~$k}|8aW( zYgT0tu5*wwkG1TS!1#2b{NOFFj8%qL%2h~M36l6qFHN?8_B6~j9+~!ZQR-juKcgP8 z(a9h@xjr+KC#Jyxqm;uF|7L(Gg3DIDltuZ=z0qg6;1ws`SJVdR_$lAycbhqEK|wEA zV)r?$u;x_Tp~0K8_18Ie@kL0!QpS6MHB{jXu{Jz7Z)=~)drSM}3Ca~~t@YMMx}yWt z1+{uP`E@M(i~r(f^&gBnda&C1-uXAgJHb6A*kMUFA&)wfwiYuB2+WmH=q`dk>fn{@ zf26@X?Z}wTZ+FiG>TOy0#tS>Zx{l;{p4*R;5bzuxe>m4g_Ois}G!Jm7>guxsWX|OX zFkKG)v;t(6c_jupG9i3PsO*S%(~c!8WWWEuuV&mi@zc?L(%e(O{f)^b)R1tyI`9Kb z5)j$~UGu0g$KCofOpN8u?c29ibsP-Ah92MY#eq<5h5pjprJJq^!b<}<=IE^m>q!96 z=-2(P9KZZ;)Gc?{IufOAKl`y?fwiAPZD0SF9D(WmZK{m&bA0nwa<(Au3wJ`djG{9m zrgou&>k3mNY99#(hJ>)jT-Pj2EvYPky%A=HCuF7$`wm2YXG+C5-s6~sg6+fOt;;y6U{#N}+wng_V}pAw$ip)U%y=9_ zcxI7*7KO>dI#_9Y63RN%f#|3C(IWr@M>fP%y=qQ~a1Z?bz}dTs-oG>XLBBl#%L8JT zCc~=^Pa%T*-1y1_$^gG9&Tf206N8h9<=hnC<%-1hOYIYP54{dVVAj0*af zj{04QoF0cbe}hzIfS+F@%q9<)$@#179g?19(J)5$f|-ZAFJm$k?`5YYo zgxXFSGVcFy;KQ9}|CF;AjGK@#P)C0{gvos(#^(0+M^=_{F^p9VU6qaR8rkWpTJv-- z?d9J)`|_>J9ob{5qY22)#lbcBptr&S(5S!wyH#}e!HrX$2K%@dk`$UN;PmM?9eKzr z(DKgh#^HY}$xjAwr8N}n{DYo?;zHPnX^a8)m0wPgConhuiwMOm_+Mf!_lz9x;Q$EI z+<~vV##NwJ*s_iJ21t5*uzJC$B29=%Hf$I`F&@VM*#Gl)N&Dr(!a_heY}5nib{5!IR=-i4DcPc3x`fH z{Q4qRmnkm80S$b}faGdR8Tk!KIQxLnx_fEhXqSHl=Mws*c6Fg8@Piej&zdyG-YY3_ zwYKI7u|0lk*LIfh>u>SxP%Dis=0B#4FMUQMaWCC8JHo%0wZJ5H?R_jAYT8aGH2XkS z__qtmZ>78@pjAKE@3v;0eg3JoREWO-2V`s`_<3}&It?h|`A(jSia5C{ic~3wC{njW zHysNSkfx{}5^O6Z}VL zWvMuuvLZ3hITpSYtOLXnfc1A@&qQQor7F0p;NX&T>Qv`=VRseqcvxyeN&RA{O|YQN z;I371GQo7h;59tzi@Mg|<oZq%d0|7P6DVhc!`JPJ~UimtBkW@1Ymct1*O!<8R*ynN>pARr_p#KgqJ%j>`8 zH>Sfu6CsLzCqfRLU(1e4>yG~eFruibLqbBNe17ZSxt(4(G+kcY_!WGv2*W(Kf9tSs z`TAn8jbm*%XLEvE$@7}PeH6#!c=fOO?yXISS?HE!1VxyIa%+W`3uqChKXrWs-ukKV zQ(Fd8)up9*o61xK=rp7MtpBg3aU(>Pq{|K?k(fzYA9sWNeYXr#& zoSbUm^($YYwJVN)gVtjH2Ca!#KD9N8R>iy?t*VItE30?>S4+;ZjTP2W+OWr|pPSLg z7Xh#K=9?XF&GlmQWiNZ*yt#XPCBv@2PFZQ-#fog-jdSbv{<`ZRdLVK8IgVocd*BZsu{h>(wVoB#bLAyORkrWm(}9hAm&jByjh)^syihfp1H__Qy)PzuEfe7nO6epXBQKrPWLJyjMv!uVzpV^5vl=(N!G zkt4H0fh`zmni~5D!d>y!t|Qs6>)m&b5U?bMlzOqvyH61!aRFu z<2f0zH1#aO7{`D#GQo6h;WsDp*Y!CMsLNKJeThL1_3N0zqhZ?G-v(B zuv3OLA$G)(kbTf1 zWN=uPtjii_EnGSJ!mh%NK{X&pFH7ob8di9^`d^6@UQ1F*;}X?EFucG)uCi=GlUtQN z8g5MYMDn#$&v(Y&W4VD|(E6k$CFjShIJG%cwY0PzoUB)a%&qA>K4&_su<%uIKL_9Z zLHcN_X>(ryh#dqGjF*?td2zh})Mh!VPj?bN&1wSSlm2Gf#^Gx=P@xc3I24fjN;0%awnW}@8p%_m2sG0I&lg$B&IWr z6=0*mTjVpWLXTpt-f0`T%Xg@F2VGy~Pq0WV*-0ooX=?lW+BE%Lm;)3GXkX=MMhh?) zr5gwsATXgKO#%a3bjLA9N@Bq%xSob;F0uvB9=7gs&P`f-DCWgP;?dOGZzk?ly`8Ji z2+ikF)gE?F4A+AiE*&HXGxJ|Zvj2ScAhz0}A*Z$Mex)@1s+bhsw zw}HfuK_jXK@1}P~44^`SujS83u*bMqfsZKxn5DIM#-$Q)q5UH7WoZvWlqdSc?_l(Sw)?JsQ+~%n#kkxV3 z+0*c$qCvFj8npQw9mJ~c5wOg9dV1hP*!Z@A<50o%9XZk@9!mCM${PdH9E7bXkLo%G zCvD4`9gKj6XB!uhIZY82G5+Mt8?`1y1AQ{7yCtAXS+SqpM2g%!YtZDuRAEO z<0~{?0lbGMW?xCn=wP>w(m@Abn(rh4KP&A4%$!?5pTUU)D-@It4o1e8-TSpbsX*%k z90^S5%b(1aS#z7yfpY~`Wr2!1^N8Xufu1@0U0nbd5L_A|)!5zzK#)FCQx z+Ks%RuIKJXI{U{su7d=)XZVXU{W-gv9hr+@(B1Ix0BvDAEWn9`X!_MFpzk&M5rN{F@j~=n>l2qAO^YX;YFHq%r z8!6OUndU6bl2-A=RG6Xgvbw3_Rfi2X!P?DHoS)@}*FGR088Jhn^>&N!yXiHb6uTW% zXw}O5<|+(7t;VsV3DaLrHp>E%@Bv(n`YS=(>YCKKKD~WXHS)m|(Uxi6ue$kq=ft}C z-i+R*6m5kod-~qIvVr_vqMc-hG@C8aOIrBK=Jda&2gMA=90}Qv{(3`z(A{u`ePmEE z6Uk$Nl5meVJWH>DVK2v$fk@I3n$(jL_ahVc*-1s zL+GEP&Om}&^vy50%Zu6biWBZrg{1<;{}-V7qtH}4Su_FqS_cCi^BbN?$w(1 z*RhTJawtI(GgY)~CbN3E=6VyCdbq5Mx3R@=JW_VDVxS(S1I!utjF_Q-w=HK8lPu`3 zY!T8hcwVWma6pshLt24!XOr0Zuucwck5pFx(sS_LJ+YML<;;KJY|uF~cE*O+@{mJR zmP~L+?U2n89iNH}c}G1(KXS(^_sa;^xf=hDL6t<7Jw!Uo+(+`b`iSdt;UX2UP-Vhd z?&Xg3#Ld_De}CuBdv~)G3AMogUG)igDR}cxImC&_GlNgFo5xtr-agkF13fukC0J?L z52w9C$d5{c8a{qgX>!J=*0hM~r#>de1NdF`PY{j39x!oLX_=|ZMn|3Sw5bD;wd3kE zUa_ga&ir9z^BXD+0l~p>VI}oXQkg3)GT~N2c&`OvLVx!h<7T{7)q-Kt!)ztE4;Ude z3$vi_4~W42W!jv$5<_q8`jjYv9NgU0rf)Q_H>dWYBWcGY&F3BV`BhZlgLd?2Wgy?s(bPU12!% z{Tlb2pTgb2wxD|Vi-7$h zmX|9*Bk3`t(%j0fov(BnQe>~@58VT{XNqA#F*WH+$xRdG>J(AxZW*}dO7c6E96bT) zong})+9b!-c|h+2qgrP9^7+JI7RC}mI05Ragbno0kQ7qFDJiBb!ngxVp6`Cyd?UkGlO zhzSN^gFsBO2?IEU%>ls_Y@A0mR|JA^Gde(aaTDKKdAQ>5xDvr#kaCUT0g_Kgnr5`8 z!D}=R$E-iS1*Gh=aF%V|1NToNM^mNTJ=OhFFbO+rVUc`UoS~{!h(^7Zqk=?0cLUN^ zP5kHSlL7WUPr1W|JsTW%$ak)rFdt0j*uq^<9h*wPWf)STVxpXW&n+vHqdh(a!zDZc z*AFi@CyBZG71v8$UcC_Ka>=CHOR%F0Bp~I7$Wald9wGOtKdheq|2NA^!7xR$<#-4$x&_(t_Bi7!*$>t1Lk_38*w+UzDlZ3b8PJ6 ztB)T(WO^p7A*p1ZdlfjZ+KK`u%hRc|DWZ_)YKp?R6UqCnf4Q*NB{^FqWo17DTmT*# z4(=^rA>_}R*3uL%F0L?#zF@p)D!V;@Y8Tqqwcbdt<&5EdW~sO)7ViM2T8Fb8uW248 z`Gqy9UMkkp=@{OZ-4rvYPgjE9BAwgJ^>drQf9vqa^{X5{xf{j!tUvuIDQ<^AXTYS3 zQgfZG`mKgxFht%|R&r%;a8o!l0LTR-&D%-2Oi`DLEAxNbcREq0sJ)fyoaCpcLV7m=l<>~3`Q?RL>YxQ=Ld)m)>1eJCX ztpCeZbieeyk3CrD{lSO-J*Lmv#Od{v73g`+F$e4<4rw#LoC$f7RQ9lH~v- zR`W(yzl$V9A`H3%fT{UVwF(L@fJ)hHOW-z`=&fKHh8;0#$hE+UIxo-qx*gSx>a$RF zQ62X3@lrNZdjF1^SGa_E^1N=bbDmzA7l8AF?PafM#?J*hs}F!e=93h~ijfc>pDhOA z<+MNh#_yCJLAgD(5ELA&4svQ>)fDC{CO+%kGkxc6^&hxgD6I$x*wRYi$*MnZtS5X|jX-W>eZDv&C7FNn3VRPop zP5N-w4J5gm|2W|`QGsX{A64~AN=y5XpgAN&HYiu%2o1E@Ku0HR@CwL#m}e@X&$E3K zbXb(P-3FT`FG)&P0)e7){_-5z(}dmhGdQkb8ZA%8h@f{dhb|_*PCL{2)Q~Gwz`(C~ z*;ugL-dv<$TRr|AN^#Ul67+U;k|}s>fSI(WK=Mq#oefX?rAVmM{K|1#Ai5S16ht6< zkH-h8*b>f~5=1&+s{zn4NpqBg5i@~Os9t57im77hb%eL6>Kb604Nt2x?b@% zq{5_j9GqL@kD!IAHe10b5`@Fo0}bt9i}GSO(rekTL|qoayX6=^RLmlH-hYNLadD|> z7`ImX%$d8!Q#K}joaNvMGU{{PJlmO~E0Pq0PDwJZcQ&BPT5~@^?u>SVfdDboaq0DP z_7j4}P0JD3i|R%G)NP5amfpf7S6CWTYt(t2S=rRfRfa19=6E(z8uv@-3)l=Kw$Gi+ z4m}yL$Emki9?Tncdu-n|OuHAxL=@&Ffk$6Lu^REg;m>Ou8R-TNU2JAEPw^y@dsTH% zX+TKQ?Gn)Go_<{NyurX!^LBQ!K{i46cqK+ehOy{Gb~)uYWqZDsm5~Wx)mSh-A{oBd zb88pZIt#_*VT&>r!r}6*?HZD`H2ykk_HPRK9+tn{Iu{F3=V{*%*V~V_1hW=F?+tEZ zxZ~i#Hae7SI3@-G2)&SabHLwMFdm-)Frj9;!E4M~l_RwKah{+}!X^fN7~JATs<3O2 zwZNQ_2U8w`+&tJMwGzwjLT|3Ar)lMRmN7#qS!)hfk*LpmpOq~3a>5V9|9K23h8!9L z`!BZW4BG?xF~KI0YkVeVW{L4~g!B3^F%iMEv&(TPX<@WLHi1Ph!P}Qun^?#woo_4(0>O2&_~!F>UGMaQPiGBcL=u0Qu@9dY=+v1*^BPaVYL&{tc%&*W zl;1L}N1PYtvO9JkI)^|5$diGA0dSSvlHoM8WGeAW1OAw?!2_tbl~`jw!sU7x?;I6F z24G6bDj@5l)pILqG9!nId%4ib-@pu8{eE~@7>Cb%f6nWHOJsu`IVlF3#38Ak>(JZu zEOZNRqNvK7t}RjlX#&1xfwEWbUb8LcS*=oNISdL8GNz(T#`1?b^j{a@TQi)_##cYV z$a3ZV(OpHd?PdEMAkcc??u^rj4ut#V$8Ms;=i=^5-MVE9h*Fbfnh#N0Ve~~s)my%Q z327i+7&=W@;;l?9RLxmmbog>;4wY$>s-pl+@1<@{qi5!o{=G?Re87_SjbQ4kIzr<1 zO#FuwvlmU>vgJ(4Cs(1A$(=~L7Eu2IxDpi=MLm#26{QK>uhAB^*>&$zGiU*o43oqmq^G;POgh0(MBBqZl?H(-=&06$9tJWuZ>VBEhD}@* z)0hHjxs$QC>s&#MI2~S2AZ_T5E~u-kr!T_13~D7Us;n9JxFcXhJf=UTz~Iw0x)3&0y*Zv_DWmL zVlOL{(08ve{se(s&fX1B>uGCZ`y<6;RjppMZ5-i!dpg%#DV{___eQxxyCOhQtJqn+ z*a*`U`Ocnb%!N(V%_93H(9PK}JBDZ8?#B>w{#0*ougRGGRry@$3_*kP&}wly2Szln zT_66$e6Rf&7E4L(4AU|$3$yUwxZ^Q19L$#J)cde+Ck{H;n26a;k^ex2ZwS?6gX!%1(E&_@ri?1}7Fl{`B;3y+N0nQcd{ zn_KnGX}fW%T|5a@|59nfw{d4d8O zOUhD1__}>ov(wohw_*$0`k91`x>}A4T{ivaO)L^PJv!otMZY4*om_7=AAYdEiUBQQ zF|3A>QqY_;y#4~ME*TY7yv|Tu+Sck)OK&|H_kMMobCerdntjaRZJ?@X9<1Z60yAAy_}DL4|H8pi`< zEi`!en#Oo%zP(Th^SkIaS}uK==unE0 zIn6M_rCs#oNl&6n+aRY3m309Q?|6)+FY(U6tCq%2IKYkI8^qpDr{ZS?Wn zx#*+1gs~$E&8nW>2b>8d?}9H=2DTYF^~#Ruw9>44E0a&g*C&A6*}jlX&ZhQwX>*sh zwL&dx5f*xnp|i-R73HEKX0u=_g0&P@{1HLcFVPktaXOHC1|P&ZoJySP2Pk{_C96>G z?7!Cj@m^%f%YzQN+^w#$rm2XL@xI8IJ|IyL%)^)^~8jL`;| z$lPngbf)*$q+Jmhr*IV{O6k6T(z?E{J4Z}5d`oS{;4?11T5%51eyLik!Fu&9Pm1)b zUSO|c?+BIxYK`3AsWa7Jysd4I$(hqLFlpjy8<6*igBBMkJuw1Ux}H6yA7~33uZs2{i?aO5!XaK-q^p5*|&_ly2xwf_83jBL(w4;RGVnNA1NI42`A2F84`S3fwG>0R^IN&R; zaxCxe_A-ON62fq1sQc^^IsRquhfk)qpsyx*Qb@2WKkBs)(UNcnBZEHwG=-V zwtM0xxmI=yl9^%*lpu%p9zrBYb{f|y`QdnC%_Xytkk(O1ieop%!fiolx>X-4%=*?y ziQkp2&bO#r54Xx2)s^#PP7bwj7RrH&icT?88qw=8M*b(jlB(14X}B>0hYzv()XHxaziY%$|{}8NVvXJnaX&k z42Y7FZ2G`sR!&8>m~84U^OCbyPO@PL7mfBU`6Rj`Fsl5Y&|RJFhV!7PY}GTN#q8V> z#qRSe{&+ z#-U%=)X<^bL@Mijzu!(i*ch`*)4=~%*yW!;7B9bT^VccHolipTKiCz(43=Tz?=joh zfKn{YbTvijVt`3xf|7DNx&qI(PWR7)Tzn40sFGOhUzek>yv5)3lhHn!P~5Rq{lh))8s~W$nW1B+Y<39G_52P@1B7=Ib~_vSpfJh@|d7)Df*&TgpR+-g)gG(S`IK#Wjlx#+jRc43Dvs zC%?$mZmAFBiQotL0otNI>)LWukYFDx>$6rKDG6;x>o+sdZ~+<$E~jrOWy(04yjA#N zzu*lwK|chSuH?&$t@u9G{yI8bU0&$P=qM;+j%jTtkvkwaKqmJC2>2ZB^V8H+=CRE`_s@&7Z31@sYbPQ=tTimJ4Ka=QY z<$n1g0BmOYY8xl^&ws$WhgeMj+^)RY30O1XN`zTKe}6yq%=$-Y^7w$=w^ETf+n*eP z))9LiU$uHUDQxLaNTkLlTAXvAq&3kuIJ_{_TKY)8awt1sZ$S@$eyE|LXV8vU)DnSe}+D$`%0#`?fmN;Brjpo6qef4hq<{k;4p@v zCW2%=)z&R0^iw0{2Nr6)IyolfXH<;!c3(ifpB?}-;Zy#i2*@Fppv0wR-POM9HKDU^ zKnrY+DY-O2Q@icD&eJJ&>B-!QLg0ar0nH~>JG*Zd0UPr29A%V?5IN;~a-=-ROx2(z z?3fcKXuU%Z!M&oOfZ;?!kw`M&l=~Ojf`nc24GLOkDh19Oh`ZkG?6w`juktbEuR871 z`~JAFu2F!fI-e=q%=?jeZ*BK9i56p3GlM<{r2uZz&>54BuDsym4c8EKiTb?Y`&_2c4J*F2~e;?4#F@ zISJ}X+Uoe-|KUTH4y@mxf#3=V6Xaz)Ry`HOoV6cs9QQp|?#cDxhcFc|%^ZS<+MiJK zpvymoq={4Apwajq&NSGNu{0p-8V_MIu9WOcW%Sz?v)-Pbiub@HMZP>+x3k1L2sYW-c9=Tu zduN;yHjLd#wHZjgd>iV#<)X0k;Wsa5FQ@6tcQZ^ zD=k^M?HZ5d7p~&OB7A%>gIneW6YHGw-)wHo2-SEbS2e~SIFK!Q1|8tp8FazL6E%YK zm1J|w4mtqECx?L>HCvpcRKo`W%_#XO0S>4{`fqr+?oiCh?L(o;OPg%j^jU2Us+=GG zu`P2VDlIhMTE*Pq)g?h01}QlTBAgm_Lr)S=cG_{3$%JE1N0eRc-1?-jerw=bhM|<# zof-O_9-&7>KLS2ax|+lc)~x>%AVG@511cSK2Sk7^BpZ)JbThkn(Qr6dZOfI;OD`Zx zsKzuwv|~NVCaNE!!u81dp%vQ|@8wq$k}2Rcf{PFn<|vuHaXXb#lq6ZOA!H^fw$KXI z-+@nDH^vayPneGRXp?bE9^xND4!ZZ<7#ssUR`ymYo5Fw`stq%IBRpNJJT0`j&3EeO zjXQRB+!r+18ytn63C5b%9koOxs7hT~>RL&1ZEZr64xCN}+v6xNV8&&-#dD8g0p<-j zca9ipgt;y|P<}z#rd)uHcJ$=r2QrAwIcOOkXwT2DGx7EDc~esZ*DQbS`Mn#eD7Ui* z5Xy^0vv45?1s~wy3h?E{{Zr2>4lu?LxnBCkgWq|uNC04VTscs16nktsg+~A?GBWlc z=EawkQoV`k2tAGgGHrQ|R`k)AckiMKtWt;7Q{d^Okb*BM7Re`xO3duy$cBJxuV+f| zKH^Iu6p1XozJ6887%-!U|++1JtAKx6Ru5vR{;Jysy-QMzlV8d?hg zH;X79Kz6BDp47|fAz-Arp1%JsTBvPNGx|X$r}%x#gC4jfE9nmOUh>1}ICxFYL4wZK zb_A2%OhB+&S?fryZ~h_u-Wt~#*pH!iC)y;?!~h_}w^M^xlJF9W8^IOL1l5y?NnG&d zlZ^SHS%3<$Hq9$bI#-5U4}+j%@OtM|o!rp5PvO`sgbtaQwhHzhT0m_Uc6Hu_60+`T zkR@79A1b_6EpVodbjOaabVF~m@MBIYrvcV2ALu|rec+JAWP(Or?DT0<|6lHh1JEVi zedu^L;f=|XXe?jwj*pv4gJ-^Hap|*bp!pPARAOQx!tP)3!5grYJ}y#$$3Izz6;b;c z8BZm6rD{fW3|bdRZ*BzeYfGc6zf8J&=Ux-SMacl-_xE>ubGKGW8;IfV;oS!66DiIF z0$NuEh5OxN0k+o!b~y*(7XN27Q1kua;po5f5eGSK1y^rzAU}OA=aw83ThHpC2Xhts zd>NUThBRrgVq2|19KlKA#e=O$tqn=zf1V%5Xhj>dv82fQIp%_`T@33ywA9~wHF3zv(9zICjzsr2|5&3-BL~KvoWpWC;cn02#@Hhv4V2#jMe{4pIP_V+7 z-L%8P$E*AMt;nYDIv?D(D>&|92}~ZVrjck21bKORA+!R|gLg7>YjyIUrRKl8F_48_ zXu4)-7Urwv@wKVUGp!Qz=-h>bi930dt1P{>BC!=T&x!HAkKd_lSGal$jcdEcUm|wX z?%a7lIQSq%r?$2*-GLPxL6FQqp^&5h8+WZBHGB4NxZa+B)aCyP*Ar0v5!b_m{wuCm zX7HbIJuxHOjG<%T3uA+ysb)Z&>u8|pT@Q1YG(@V_6q?knQVJOWEEoM9(X)EW{_$|j+t|}1KfaDPNb96^ zl82G)I5Vp9CwpnVw9nN)EqY`Q7bT77o*lv@E-XT|@#{dKq0ig)h!c5A>OvE#-L`^* zAnIWxApncjEGdplo2#|V3|F%GuCYB)F?-G5@>1g%kDMCJ$>hh?u`Ap)7VrT2OY;tO|Y2fJYCfi1ZNCm$;n z?WVqvjo4@awu^Qq79$>g$8e@J`$;k3zc!vG=1q=E6t7*7Z6>v?KKZ>r7Py!+NyB_T zpd7_~zIRC7NDxgO+%Z(UHM_AeR7r|ZM89*;3;yq7c@{plF&%e_`T+zqwP*n`Bf=XH zEP7C>Gf@R0g~4c`YSaCm+qbvrtA;$&0RV~2cNH_t2M46@rvy}igR=@p40M$cv-It{ z+rEN2xPRAHiwNAmj;mYh(9&)m29;y^OX-f@?16km_1LR~#87qW70Y;M(4q6!(c7G55(i+wx>8fXc1);~^mWSv3oFY;*G$36?iV>#ZUXR0 z(oBnY(?V{lyF=o3?#HY6b1q@hKe&V%KXM6={AVtq#SdIUqiGx}g5PeF046%vn_w6< zf=m)Tc!G^~OF~5GAB~m?dRvora|jALfzbm9pXSgxw;N0*!RW6tQJv<(yeZz-2vw=o zu;Ayyj~o`K%Qyt|a1xWBS{4feNgx(xqD*NYO;9B%gb>P z3);JFFJ=mMdi?U0Fxqi7xbKFV21-`6GFxQRS-H4~Wgc9O;6R7^`x|~Tp=<@VM8#vg zhaJ~}pe&jZk$Q^%mvezzc4Wj0EloDmj{xUx;?G|tji%eI&KMslqpEl}t#}iR!+g*) z>aAe)4%Y)U4*n#wit$Xx-TnfW^W>iP!xqA$1$p1!E?b+kw<5+Q`z|!JY8c}xalJq{ zl}Y}UFN$tI#z-l|yt$b-ML2;cPo-?9j= zZzI{n^<&(NoqVAkB;;TfF6=@GL;H|PST-R9nWMjtlOr|%Vz}CTD-G){#H-@eU z5WzRKdU4fo#x!yA(~JH0XoA-Pl>Utm0@Umh1*V5TLE@O#K&D(PG*ONC>m&H<7nq0` zo1JXy4{R6=43Q0PMzsMe{N0*G&yseNR8s#~!zekf)-zs@e;72&2e1&Jrs3iOv2}yw zSqp|*`inEIMdMEX_q*18(fMm3WEfX}5s*5tAD-pSt3UZCAH(9?ZNzO6UqqQ4|AMbY?Lu*`?wu;oYwS7yLhbnufbK8*$y1RVAWYs#m=FH%SNz8z``@=n91XeuJ*fYC7yn6J zCyvJdhMWJtB5G>Vqy_*+kPZ8Y2TyV-1+=%@(lb2~zQP24W4P#!l=%5>x~NZTfA$x@1=30n{C?_{IgQXg%n!EwU4B4v{4wOottGB2 zesPL|Og1vc0l!jEv?MxYK;{qni-ceb84~xmpM>95$xY1l)||(vN!G@hB~AN7>cM^F zW{ZC|SgM-O8OAKCW{b;EFX@hSfD0orzk3I&ie7+|t4{(ScKo&^Cy84)Ktbssp0P0| z&1$uySE@J#N3I%igiM{PVj}EhmwaFw?KXZ5fA#C1;|`~zC`g`#qhXt$9$K*WO}==? z?2xJ*<<&^poUqzraM*S^ts#*Umj9Yp@voR`iNrnIa6{tv`}rb82lWe{#9o~0p4!UK zsq*k2e#n=QPTdiU<(D55c2GDxY?;L_AQ82F z&^0Q@+AbZvxNoE-!4bJgZZ`EY{`hm?>a(o+w z;)nNA5|3g9&)m2xZRvIt_mr}hE9Hc%(zU?%@t<2hEmYKY&=)o2UAaK{{7CF;Y>sXO zA%a&1hCAq#0rEtRjG$4%$j`cSr3G$*psn~M*>M7}pS%MeJ(Ql2QBjnFa}OECRZKDU zE3uWGUq|xmrf*dYK7!u`;%zPxOOMz)vg=zcU6w!Q2es~2_MbXiV)20d?8uZ=_|1w< zSE2$JGhN~z-9AT?8B6%WzI>?!;yHRP;w%GcWdUV9&#D*basnx-zfM&kr|Wdv1)n53 zHJB#c*!+8@FV|J50^uNrDIo?Z01j=`JE8Nj7N33p@44iE{)F!$$5PHxCUd^0;yS48 z@34Pn$ujA3cV8Lx9dlk)$D---R-91EjqHOkQQow9^BjZ^Spn$CDrZxQ=i}#NQ*2qL zH=kecemlv1a^&0CZ(6?G@-I`vouzohk-Y6bW-Z2T$*m(?^u2Pueb0pMfY=WsCJ1!! z#E3uNPM}D;ooUIr(v9;Ul4>{^<0MnuL+Y!ev^~PtQ;VFDl;k3fC!``Eg%RZ6cI=TL zTD&-OhqDsW&|h?0a9v%0EE@gK7+!_b3@ z(J#x(FsSANXqjDx7r+E{#y(YPioKNqvKSlQ=X}F z1R8%J`+8n-)#AQaU>J2AiLD`I$(c}kQMa#5=afh+00H~Rk*EL@5zN868k5mL=9sl9 zm|yhQ0dR)Zo=~1=n&KErAZTPxV>3pqt#2p`QdrtJ7JDbiwNFR&)pL~k(sb;P^S&(i2xJ+`LBjqq6P75R?(UFDb(qI1 z+^?~!09UpX9~uM`Nqsc$^`mEGWn0>@b|aEDd6(vZO;5#d0+#^e+wNoiPSAZfeLhz@ z;cd=8kb6&m9awk9P15if-)**1%~(ewXZ6oOTKzKZYnYlB`KY7duT#5YG>-Rb=F9^h zCa=OC`K8;AOHJPb6_69K1V7-sWd?w~gWYJDuO|3%@DGcjH4 z^aErm>4dTA_7Se!=|a|=xO!GjPT8Zdrl&vV*l1xOy$Xwa{lX@7>62M>q z8Ed}a*?g+(6nG>Mi0W|8%yo!c?x0#wIBVvv+?8@z)p1F6AsfRVep0XjikwPIOOc*f zj=|pncU1+)Iw&Xz8-rsZPa!nN_RxW2^Jfde{X8lgdPIJt9)d8pHR~{^2cymo;2z;6 ziKe%UU7)4-&MpAx{u#Y>(VH~WA7mLs5yH}}lu z4yb8tvE06UiDF8P^VpTBmJq3~(Z;w3NRo|&_ISs!$-8_?m_=aP8o!#V5!|Edl+|>a zA99ZcOkVP_obtJS1H4g2OOMe1>^q9tgDPg0^Bbb6<_A{>y{dcTx zNpW#6aT;aA8cQ1FKtLoGsn*uE@P`RpIn7GN8qix|m3u16QvN$DkP9!6QAw7iXZT$y zBH8S(Kjt41pWs8;QZtc=VB2L!G{!n9J|~5hnAI|Q*bW3QE^>ox$Vb|<4=e;4WJssa zMIhw>xV!WbW%!?}|A;YuFs;b2tmWu@&`fi1+<>!+e&7Lq%F_JIgNWPf=D-S3L1_p3 zdW=VHp^5tWkGUEU7|3t*qSZ*2Cp^tMIxk;p;a(AYnAu^6@t*sv6TryU-1*@-@7XiF zY--mL)1GbC!D3VS1*OC6WQVfm)wY8x{v)c<+blad#^UbC5*C~GyOD)te~dY6#ZH`f zj{Nvama6N?70>8556jESUb_m~4)8cs8khtYm80rDE+C4U`Rkv@LJ{BezkEMtH~a;^ z?LR&o{71ueKRkc@x8rTc|MDX<&>W%u!%@PYUp#;Z6Se)ethtO!ixcGt>#zz?f^q>c6Vw|CYQAMdOqmmnOnjV5U-!=EdhX z{C~fv=yO&u2`OKR!eiac%XkY-0*S<_6H0hSuf9DazwJ>f1BAawWg-4=7ul{|g~&8t z|H+SkZR)+#XUcwj!Y>=Y{bI*&52A7d@gI&me0ze&IWMsmoxZ(04MG+Di*X?s0iz|n zopj=PztqH>8}Z>Ei$_t&HRIR8rOg#$Iqm!Tj69YHRE4XYS7zd_ zSr0c3l(et3=*IYHq>lX|TcVxS8~A8kw~da^=G2hwE%axSL<8nF?(_A%xar(da{QMJ zxnS4qUyAlMMqdelhqB47)Y^;2{_?F(6U|yMSMRL=*}|;hm5%W$nSyXisSCo(Js*E( zlJ#3IXCQf8`1I=md#t+GU&km+huC7|C^avSX$Q6qNP?hr`DR1Rf9_)!~EXg*a2 zY`zxUm7739B0L+XU57I+s;)uf1lL{NXr$yBOn;x)s)HBR9CUa^#L4ahd6WOBcS$_+ z0r`86PaLnyy!CX`Cu#4#jh9bVXZ>-@`0by)N1pV_7pzy3YdqzXBrb4+XG0e6$Xylr z%U+^9GPfwdFfzH&9>0A1!!KT&7DQ%?w1?8uTTAuUDKn2PI5;~`>on;6zP`Y|jhE@j zk=D}EeOz4QsDg#O#W)A}vM?(`^E7tf3hD51KvUcuDQxFT0m;C^!U8sS)(ip0jr4q( zsCl5IYgnz*LMf+PAaOSaG=z=e{Y*~{Td1Ky*SwT^DOGuf%R{98X6fb zn@mDTLf=?!W6s$=_4<9*us+S42n!{(i1VoP5|iILl0swr-PM0Z^3+4jamlV$xZQQ| zq|LsopZ4(ZWWq8=M8p*oRhzBNhoSeivzr0&6Ye2dDBsDw-NhaEGchg9&D9+<2P^Q6 zQPrC_{xOOh3yX^WxPBe84yZlPNVBV@x)}~UmFgIo2J(Q)6W>HLsTrL_Dw~8N0!7sQ zlB~Tj8bVNyk+IQw*iIvIRY+RK)|QYOsy&Sq0ZVCmYU&ZxA(#Y;+Q8o7O?sxH3zn^+ z0D1Q8xFkGs6N~y*_EA2JTz8-C)Yo~4n-oL+*2iT~Mz#(uE$0@US>j2V?S9!;?tbDha&ss(&Q;&{Qrmkc00A=1t0H6LUmt3tUil zSUbZ|%e!nG`t5YK&bRXL`_cONFh2r-!I8WqtF!s%j{!MP~tYzNY=A^0M#kKW?{)_lxvm zl)7UVlnJW?A)(M?U7bQ zLnq2m!;~os9XqBT*#f&5<^)h?&y&J70nDj;k*p8zMxfEn&C5f>?i+Ixb(G}D&Cefa z;6E*{EAi0OF_MD%1)}fEQxi*1<|6L{C^Lx3S7i5{tfyUlv0@E-R?n*272?erVlJsP z`OH{3sD(mgm;Hi$#;4?*a-Y!fj6LTE)$DfIDMwN)4N=gFvBy#;v9hqlLt}^Ci|STZ z<4{qbGKUmjPP>8uWF1~!{%O68fNePjy&0JY9S zV!z;hJOk3RSPUSE!a6YKCMnI4<9Q$Gybn$v|dB@Q2$oLWYg4NKyCGOH;~CK{T2 znsHdkuny@CCh)OsAW<~2kAD{Tj#D_LmmC?{vz`1F)yBi_M`^IwTvkd_5^?c#=Q5g7 zho{-(vZ_p!6h^nxGqb2>lJ8{G-ecTKQjNp*HDKI)xDVDXFBw6%&&NB>yCQzJA3oNf zy1T)*-ewD<0n?lgoCMtXM3o`zWf@dDB%{hh`>7$ux1^-xuC6$&9m@2A;dCj;&dC`g zwS$uD25}1eZ_W@kepHxBu)}06pm&o(o~Qdht_1 z8e9F)gBL=|0fV|Vqa{TGJ<>K2Hn;BS3`_K&>5Bdco6iHV%fE18gUx zI^b}oNVce#lm>@sGk`AR!d2Ow)&RLl7nDJ@CY@PM7&t!aZ^7NN4yCJ13Q~@4);=~%8bI5vZ zb+M_=!zk4rf)t2L+E#EB&$ch?<=pvKjX8@N)(rWQXo!J@#PReDlDs|j{mYWb|FN$q zbEVOJmm!$TP*JPWbc=(1pW0?d?!BLl?Y8@2$~j2Bh~<+kZRkR9M;sj-#?GVwOodFh zW5l-7#?G#P$2~4ddYDB(V~0%8rs;`u85bLSPCcI>j8Rid?T;(;^{oX;64;U$)THo4bC^=u+uM+1oSy@@Ba62X+7M^?eUf*f5 zr|`GaU*DEq*VnrpN{SQ5E`=I)W>Jc^rYXv)#kFMPhXzUN_NaMr8$p}VNQ=y5^w!Uw zJ)4}IL_HmJlDmOFWj`MpIL4YQRS* zAvX4Ae1C6m-58SlyUtETCxS4N(bn2fMr{AX-W9>-(~bx4+}g5zyMH4VX=9fjc~|HC zT>-w2h>fPP{kUwyO8oWS3CYQHDD^@@I)H}wZ_xSMeKA#wRQ;%=q@-2ksQf5CCOFQ3Yhjp=3e5bL*gw zijGclQKp4!&+X{^%uFTfp#zju`v%+)5{W<0#8zYSjiF-=tU`lbu6K>H)VHGaI&F6g zX#Clf_fsMbRh^whaC3kk3!&@zOlqRgTUs#ehnem}(J8LH2lA$`mA{p!8UMXzh(Ym!H{E^=cWh z2oOYcWaP`TGWo3p%9VXP+Z~RXEY-Ty)Ydj6#(Te2NF;8t0(*;2fyg|PV`+6!WR?{veIdw?Jf@S<{62s?h8Ap0(wPJimcdp2H z@_QD>;Z!hpH&BbU=Xl_|J)|4Ra-OqFXwpzn*a<&E+hH|H0qak{W=Xtq$U-^ya?8bi zMTkn`?jqPVF2R2CSmeF*wO*4u@29CME2DhE@;bx;L4N)ggUD4QDwg2T&}v1hAHGH2 zz9JS@R{nuH;kbl@xY@wpBP6Yxqu>@vEMA1|{H5*}ptc-IQ2+W(?yiG-ee>aHqf zmP_L8jN}7TH81OgE|-qg&MfLq^$W>Vg&w}36Q5s~|B$=hTO?c3Ul}VYDY!$M~JbSJ6uYmw74f)0a`#0O`u9|H9DR1dmZi1D7Vct29G zz>ud^ob^6#KMYf$hC&Gr!k85#c5IJKku|_}x5uHKe8`8-6(8j9zdue{Q4xxabo>;U z1%X_SXt z|915LmDApG?IEf;n9ERdSyzY;39GnY+W%%*WH?P{uX1F|eVeMM8_VQ~;&l)WINH3U z%JLg_(4AF3eelC!@5y<{ds9E zfhf`~NaAr8GBS7Kw}}X2&CO5}T6s}P(PUB*=^NkQ)314q^%pTMK`$p4bJE*={c3CF z*1rawghnWe;iZ(TDVCh=Nn57pt8^O{+ZV?EeDav%xnRvmcb<~)hpCEEao^Ywr)Ehh zDHN=YapgGGoS-yb9eqNXpYyE|W4LG{4u#6eU7zzmDJt#|t59wp(~^{uq%)c_(Z+nXd(+FMHmHv1|&0G)C!I{j*t3UIt6%h{hJ7Pe9>5q8fMDv|1 zgG^2)EAqkT$4bRZ0*_}kZeK%Ec=!Kf?5o47%G-8*#~GY)YzYMwMNvRP8Ueweq`O1u zMrlyM7=sdNK|<*iK|(fR0ZNIKNGnpClomla_X1;PzW1E-@y}c{7XzEMe(^kaJwIE_ z0l@~DIr0SWrlBTnl2(7ZxlF~&m#F_$WX~Sh$THIxncRNMmLd7BmAxWEw$I~x5~IUO z+(F+?pDE&mJqd<~2P1RG>6eL>kz22~NZ%(>x+g-ApXw}%q+LHALDNI2tmUy*$pr)rjfErtignSZ*s#JM)fe8{rjrRR@DQ+4|LIGOFteHI>Ea7> z?1#70(|0Ea$m?BCgT;uNlCpPTV7x8Qml5>|(eg+CX!%XZjz{h6#sQaBD|dSYm`QQhm;BIn+(kqOZyFr3oTQlS192BKY3 z#!z%?g*hM0ySk06uia2OR-DbUF?!?bV>(K#e@B=kaQIc}-acyl?snJK67u1YC3+sm zbM6v?i68I3U$aL0$GQ*vbAJhj42_|iL10*zrmAXLd?_k{zOk{G;9!;HNc=H-1qDfQ zaaWQdwf@%iN8|9owe`@5qzlA8OSka3Jo?Lpnc=n6Do=mj|1cVrak8S00r&Lju%(f#E=jeJU~?ZYLxownTtcJ#XqkUaloc?Ad< zm1U`j?Mk^|A>Jlp=6QY9&_cUzrBC=2_qW!RiVWnkcYIv*-23B8JAHlj3m+B~jNAlY z1i7zIO%x~x716sV{;hXEdu@Jy*_|J~yTbX4@3ETc&;sGrq%IvSI5yiWy%P+pBg+kGb0gLNk{#|LxTokud> z9podxXmpz#nLcI8Jlv@}B;B!yIBgBM>|RHHTSG)m3`F@~PnU{H4e7`@0ML+i7dqTX z3=a!yv(Eqg*%hD-%7nM6@hCf2YXN`l$H-u6w%pBW_!sH+!ITt0S(u#TsHmuToCb2F z66J-6t0)afY6loo3l=||EiW$*;XV8OS7&W~ecOU|;_8x*rfL`4eJ>CWSshs(FAJLl z8kt`1)TZ4bQh2WC7lQs@&lN}($Ec{&zI{~#xX{qhg3xir6wSIEO;)%odSVZx{9ms6 zkeHAVu&79HbViUTT2!RDTnpL|w0}H4K0_RVj{KaGxp4S37?m>IhBWlSk(wMlL zCp+qeL}(;=bRnVG@JoZ?fv|enGz!Lsl3XSHrB-F%R?sV6vxFAJ7cUXl-6vTDVpIKS znb87-pN4%MvpqzGpgDMi=g(_NDWnITe7Rv|P0eCvt^{t<)$2cW!=HZ|J(KADN6Aor zNE>z0^k{o{16lif4~8x9NC@qL->#!U>yhuy02VC8ds(5NfM)A21zkIDz`TQ|HWf8e2o`;7%Ap8kdY33FC~S^i6!?}%~dMPbq~HF${eO9zI7ZNS(w;4ifmQ&@DyGk zr~F;6rvL+{GE@ecBi?d2QyR4hu?b;BXIs?^uEOQ zkb1mwC zC?c_OJz(%%JnV@PK$vlq@%)8sA0=rMlfI~<4k^@(kW=}1ji=i@(kHkT38I9k`8&75 z!xP5zguve|)Ga(yK&-q@a8_jKlzEibXk*~g6(UhfvGQgw>Hg_6ZQtq7!cmCH+$3Tq zlOBGyo7+*nD`PY0)1M$mQD0fyNt6KNfOv!t>=E^hYFOz52mEbohG%wlE&BxOqo&N$ zWCaGPK23ck@nO)xL$Mn5vzN_wmUuD58UxsKc(8xX8XnP~<=NRl{pHR_0kg4bvX+)< z$;kt_)LJcYoWzPOv%lD1^6qZXNT<$zRj$8tHLRRRkG2Bi8nZ@3@+!t9lN?s^cTUEC z%H=6^GdxH`M8eIX0|ykpK;%@;0(t{wD?TSLi`x%&Wk}-e+50`Nr{3BY9Aad|SSUVW z;SS3@ko^@YweIx?05hbj?AEw1;zutUQxOB~5F=f~m7;($gXfOPh?(70kJZh=Rv zqq3Ikh|@a(MXZq;t>E`6wobS~=7MBK3A3rLOMI2|m(QOce#!zYs;mwZAL9Ly1=f}% zN4F<9A(2F%u;7w*0q9Mb3>D@wCrJs}IU4C_4SZVC@SBc1ucU(OUTvEC9luo!OU|d%kC-+GktvH#!K)K zs(Grv{PGK4GEJDTH(qs|K` zng>7QL~mL~m3Z64!c3WSsrUCznZpgUN2jI^J4CWMMV%`?nh!a5d6^4P*%O7 zErvdol{CIP365qwwn?b6O^TyWD+?R=@ju$|ENm>WoxtEB3BzBVQwCw=Z=fD1C@6mY zl@f~V%=<<-+YpKhLN)Ikg5{i}G_26nWF!ogRD*6+t|Y>L{{@E)+MH)#W-i@#0eelR zvo0EmCU#O%zYD!BrRhM~4dpJ)_F4n&8To>^h|}MmOZj7u%D+DsI&xnJom%iS36kpE zRYcVPp(g4)vZM2f@8-OQ(Z4@|)CICX!|2zHJBId?<%WP3Mi&mv$miH5v^>(2#2wE3 z4wh&qbu<1FJ;e@5%-YIv^=s=~oeRgQv=jQ1ZF z8tUfmE+HnSxF2boXT2q&!#nQq-x`xMpXyj67I*^o#1{Wn2gmQ zc2jp7u-Yz#+;7G6ou}Prh3$K9;@E%yj!6Damd}igjKosL!Ht=l=V6A1Yz`8L3lo?T3wgpfF1T;LE@24Aj0bMmHjnv(OF(Mv~28_27S zi&QdVWYG)*d%)?3-0gcAyM>$w^DQX!Y*DYHI6N&Yn-G@z^>4h5tbz8$Yxr%`^lGaogb&-UJf?=O&7f-AdOp8-0c0sEk`|H}Z>^Zkeh@KJKJ?bo!SX5Nx>s3#;ZCeB8W=JQSzVzFvqNMaJ z2Q8?X3%uPskJ=xgB8FuQIZNp0BqaRxRS8wMJW})tibUf+<}t=XmpMtDYxC9$>|9q@ z7oJBUJ_4Zf)(wi6f%q^banyE^UlY8@f3LsigvHz~mQ(*c`gmGGjkWTMKb#4FI^)$+ z?%GwO^9BzIX$~)y=k`-FM)Q+6vsxTnmt{s3!&sE+b$;hWDdk(P>Ys83?geq^AO2YZ*Ksurqtz{$ zQ6!O4LWZtxj#>A!nrGu|7>+pNrBJo!TB3V`%2h$TCGGcuat1ghTy1||9QYaOIXU*h zG1r%lT1ZG#pkQlCtqXZ{eYN6RLsVSu`TS}9EHxf}i`&=4e*h44*CcTYyI$8h*(>u`{2 zBnx`W(5+j2TDw<%%~M~BA3x9jbV3V4eNodkrJjjIRc5d>N#m3j{5W^Q%n-0J5m_zR zyc6>k&p3RVoFsDLM3z1qIeBaQ4_+li7I6TsG74CLehtN~{1Ue9|D(;~wMuCD-e~-` zF`UAvF!#Jhic32N;UG#iO(ptr{&`?onECPuy=S<-d!=Fat`$YY{jDBb(o-tl-F*8B z&4q{yyv|%syx4frcx@Vbl*DhmXJYwUDvJ=tQsLj;N3;>sXuq{x$D1+&^;a7V)nwZA z)YST8)Z3jJcb*PAyhHCbQ*{0Ac)lIgi&Fm5(zM}kMq^$L+WQ^wh5eubpSPS+jjb|2 zuz;hE_iFxmOo$ai^k%juD|EAIItel9O+uIbjQzGr1S4~wVrU3leA7;4lAHwxLWgJL z;uttrAoF{zJZ1^uU)qR|TKCJ(5B7IRH$meEr27M9B_clj=`;!|><-FDL8tr}1v?7> z#UjA1Fc?9XpxB8JBADT0s0g{cwKXy5TgY+n;hAT@sLh}{BD77G%|0v$5xz7~1#Ff9 z4O{fk&F2xEMifG*%=nzFacqr*=-HyW;*kJe3_$mjHi`mA+FiS3PbHa_o1Mtk#yK2v zH!Mto8L5p)VzlFk%8-3=9+d7gP2dcXTqf&z$A*V7!KVgiDlM;}s&d2Q2c|k#0ChB! zH7vsH^Dtz!X;NaNEe~RpVG=L0$z5y4obg+w5BSW7Zsy&k$DHo0f8#Tyt7n+df_{pP zx*7^zDhH1gmtWkd;yD|h{adGCnfum{ufYnp5NvGhqQ^jF@;=t;5Ht8oW6M| z$jazeJl^Je{>N@vt(GbGHTa50^%CSQ-XAp1Klt`$Crc$gdU|?lVIIdp#k4LIE_mFC zl*_khyuPkcHj;;!t&AO}fD4L?;L@A_(U)i$ZVB2o!_CevADzYo^8*|+#xD^DagPuD z@H=L`2iQ125nrZZyXwfoL&QQR?Y4h*d78cH;UDH^*l@gw_F|AnN-z z=&vkqtTXziTl;$PyKarwvMePb;k;h$!(WN6^MhQ|GR_4w0e2D`^Z(emk&TJzo?MPq z3%j^oyZJhH32JF|W9Yq6!tlr}W3(P*_(Rd_5<$zVC9n_;i0t&UnqMbbNJhq5ptfRS zVnDN+s3FdAVS0W}BdT7T8x^DF4P``DJe5z~jO$S)!PmsmduV6~^ld3DHt1<{{{wMB zWy1;>6G_lW|HNVnk2DN}d%-sX6X_wFip1R-!lUlTEH{;13VQ(Rfs}VvQw!}$0f1(v zHcw#CRRHoIsibwG7)1=_!$w5Nf#3P6PEzU()c>32tm+FCxmuieYxyjjnAAtmD66N3 zeyOu^yKsTf>W)l95ivG42AtR=nMX5{pZYIHq>WqNI3_85e)<41ICrPha;g-7yqq}VO33+Cf1yEKo?|E@lINIaFOt+-6 zfB>)R3$oqLkY{G`NPX0D@ko(m71pL%iA`Lu+|b3XZ6!}fowDU zuGvE+zizzYPPJ>-$j6Vt5fK*C?^f%Zfz>PFZ@?0RhPXRw&iRD}B$z2K>K+Xa)E8d7 zcC8Qxgnu-VeA&b*r7$r)ZG1wC;Pf-lI$l2tZ3<4$YoSW3=fKt$w*SZx z+KbdrguQEd$wU9TPO&RzUjrlbc5+jd+x+A1IjZ=n_hNrL7Ms@6>ZfBh<3eKv(d9;`91*1ND1RMu5_>l9Ssgcja62 zv-5X@40n!aSop3`2B`*>zMJ2%vix-aJGroH*RCBqc5K=m8-|h87uF`p$%*rR;~#(2zh!`#E#WyJruWRkzmtLF zhwwtNxuTadG*R{65gNi{TjnJ53448U@nYl++-bzXl(`d%j+vi6o#UepWAMJxkhCN7 z6>y|7d6t9yCsz8EDUTzO$JID1ci@--n*?o}IepGiPOKDu=))95?w4WZDhc(xsC1-B z?~=KV))lA{-bcP&cZ@zKs`msI;{I9l-tp$N`+pGTY+CL^HKaN~Xd|?=A_QlCa{va> z+?e-_S-0fE-5ZUP_4g>~RCnC#!-S_#h&5_X&HF)p66*_V7FxVKAX#WsFb?Z18MiD+ zfnr;PcM!66?oF@uJ8v+GBRx|d2PK|jodR7l4vxk6VI(cH9%Lwi^^EL_AaB<6;^Ge5 z0%+#MbbN&`qBws6V0z~WL1?ajv^N1Ll~(3k4DASK^_p6T#;@xjMMeSSqY) z$rA3k@xHZAZ((lHjH@@Sqw%&d?`j1j_v(MKCY96cdgC-si9vNHh0h-uX*e5oCi2T==P8hjb)>T;_l*=sa!mzz z8bqjw&v^s&TP)dhj(W6c9b4ea!}nh=WU?&kz&0!-4(w^Z;18u01ed1+)Ym)Dic@$p=?@$H~}8KaWdJ0b1PXKbQuWc zM~@ys)N=Rs?c-X+@SwMbT^Fb1STMtB5=IMFq#$lMi9rX*$&rET4eJC^(esUkxhq@Y zLAqPmrTj7^)(}(FaD>A-p#swOry@|wMw$B0eabd;qfg5zD}7||9Jwrym|r2|S6gQH z1@UOG5;i5UuGki)$-1fz;_j6%rIJJ1k%zYA9VTH_J1F5Eh-yM-7yYeDQ5CfuO^I*; z+~&AE2M;qKk=HxccSTh2MiH;n*E1nG_5+!n72$J<;rem(<+wdl*n4jy^E@&#O+Iv6 zdWOLh{o-I7F{=$ucWkMl`Vn)ngpbt~*g$F>?k(kT2Nv!Us_}rD5dLxetzMsB(1XcK zdVOwVvvhNM*Q9)eKkAHzrDFTO^_^UZ#C_vmNcxrM@@(f?RK)2!IJN4@@#czGC9Xy1 zEXNjx%|sibs*4qpjS-F@MMgwa5}Z>y`MK{TwoYKm!N?{c-zZda zn6b5{`u2cdwVYb5PMK>^H-mJ zUl&Ki?-dtc#F^b>Q@)klyxL4ty?Fi{d|hP~_P6tULmy-DL2U@{M_RJz{d-V3INpaM z;!y?`x=JM|yljp)rHI=8=U~p#I{x#Jd;wY1p(?3tm03yQ0d>z^S3E zJfrpLV6(tY=BBfxtsj#egBvn+_=jfUntruCFVB@ESo!#fQAlE@3FW}PWE;t{9F*;Y z6!X9iNrk4{j&|y*8I~M2DJ>rB6L5R5zSA@3kZj{ddmI`EVs}@N^X*KZ&u7mEos|FT zSj|6SKRHAyo9r2Dwvp^AMH-TxOZpuPt%5l9l6XbGMye9ld78Ym;^K#4v-b9+zS^3Y zSxwm{xfaXw-OM}UpBxEkw5b~0rcEmEZB`35DowZ@pLKsKwLK|c1`MSKF?!BtRgZL9(d%WM`q!VrY9BgEY-J+80Hr1rZ zkKYaM>~swF!d=p-<3ZIKG+9AcOC@vs!l?z3qMl-#7Z;H(N9}8Z6Ky2Kw5Gkiojld3 zxN&#tM_B^Zbz(6H^eG$`|9l%XiyCr>A ziFM#vLi#>@IMIg=>yYV2dJ$np#%rO6;1o^fa%`OVmjXIibV7rQERL+el=h6R@!Gii z;wAiHgQYTI)5`gak(MeffJpya9ZrYfgBJ+k)r?c-e|bdF0~alvVi3DhqD&)g#7($!m;`H z&(?;SO6MORt%PMZV!NeeedyCfVHqWA+NG7WP~Y{d6lQTXs)wM^3+7)o9NLcB11-_fa_qQRr!l~cG?p)UU+ zlFTPz6!1HQoUP%Pfmjo22MpuEJ^wt1sSmLv4xK$u_<3(hCZ)zK&2+F+6HDaM10XCy*X-;%^Iv(XTyqU+Yd3yLptTZ(x;V z6&FWgp`-(zPE1a247)ceeCA}%xwK6((vhvRqyua1diwnMg0^;kZG1eI+An8pntsPx zOQ-&(@eHHE-XPZV!#=t3Dt|p^CEdLC#+y9yF69P^wt)S?J3b}0QK8@9bcl0i>U)0e z&ykQXZ*VY*lXxa&jsy(_h1$;?4zLu77MP8Uq}ATUIeY7;4I@S_K?9`c!DDh>j$1nS z`Fi=hd^~2)7CziB=JH3(Ivx_nAOJR8o(S-Y;xZvbtFF`w9#6;HQArU~{~%BI^{yK= zT&dFr-TMReJ*GsZj^57hsaZc8aEnZj$s-z1R;Auw zzIyy1pmevW2Ojej5D_WG8QI2?R(HEcYb3r`OO=>w{12Tsx6yZ<_pJso_pKyDbMur0 z_2b8nBiHfsIm6Ru=ijYJrrcK~Q)*N3ECzad$LxEh`1$!~%l1xbEF-0-eBg%0MJPmC znH?aalJ2ehN^%&u)ohvghgovdy%pJ1Y>%rfSKjQZYATm0GIU!6Ge_*P_}6cuvjqME z`r_{D3S0@#RXW)pA*`qSh)8K^VVH|BBysk1dy|L;b7J}eTe#{#pv!7IP9LCv$;%xxs1+)11= z>fA$X(LoaMXlG*kwDQ`&AT^jRFHja58Ym1=daL+_Cw0jjk!Tig3+4KP3(;KFDgQP!)h%8{_0_qy|a$0pZooT=Gg(w4C!ueX;AuB4YCaqPWYsHmV?>w*p7 z-Me?NpH7IT)n6A#@${+-XytfcVAEb9Pt1#e+0TYEzPtPIt!{eBe^7cTk5Ae(ME&)> zQKh=o;5!}nOOw~>Oq35Q)J{ZrJibC0m|5uwy8#Bz-w6uZMnfaXb`gWP+ql}O;RZ}S zV!$z_A?h?l8QOvIQ<_SC`;{z3W#u|H@H7iYN?PBpkY}V}*L@|Q*BEE6PV7eK5ee@7 z&iy~y+-jUA;_mhDn5}Rmpe@?CVZ%j4%~w@dgCB-6+nmkSO~PsBr&5ix;GADXP>@Yl zwfTGLM)pIkQY6Q@fQH^Ni-=a1ex0z9(}DFvGNs24X!#_akauxZy`zi+6t+bs&!@5V zOBzFC3VL$7G-ft*iNAR!pZRCcT=M?iC}EI49C`UuV(Q#BKP9K~4rxwPY3U@T@RiL9 zNeMCAYcb^KZv9blvc2FAm>w!|9t!c8a!sJwt>QzveJbQrgf7D<$9=uIg@u0+hssr; z!&Br0U#I6;G#*qJkls#qLIexT;0}J?rtx5cyN+Q zJn_@W`xM}{cvTwG%_+($4Gwnp{NMK}X7s>l=Jp?ZP>8;tIyk_ttjOV5`BK(XEAgzn zgT$`MpjMULzR>_V{RAR>wvfxO^g>9b@Dk8o(nkmb zk>$uXZXf2Nb=}VK^P!W2>_RE>Si6Ixem?X-XGc{5eBpT6yZ2J5wcF|VuUWqz>t$y7 z+jDo^UqX!Rkw!?$j=cRMQL-);fOd>jJA0*><@8ndr_DR|ydzg1D4iv{{4_WGO<^uP zC6%Q&ppds*SFbWxx4e4c5hvUIqh4MdBAdi&SlHO|TCG(twargfb5OlBn@3^Qsc_vV z4Y<<(QrO?*c}E*_*7Cz#7jZzkU$}tDrvRGO=?$?*y-3FW`=lW%&S579>zd`;9GA_$Za$_-DE7dI&t7pbe zSD3F}MdFS3d@LO^j%2E$SHjDDz0Hj@tGU(PJi&XoC&MN__vtvLpKXE$kdEYJGcmDW zO%PgegOQd^t|a`7U)o(=<|#(T#uORe*w?fdfccCr!fNG2@g1wb$Nu6czkoC9{rp4p z5-2;wm*%Up$Gl{0^LlJhbTqf-MUKwR(R)m9rE15=0PClwH4zyPkN7)=q(EO)iEW> zG7}6cDW6)j)M=Qy_Bse0;QFOm<)%*;o53xf@?PZO`GEpG7FYjwh^iJ{Z&U{d73PMyf4rUs0FS0Lrj)p9W zE>DT#T+b?=tU{R$qzOh@aV@^Pqu78MaW~t5BqRfPcl36?)@d7y$+?E^A8NuwtS{(E zthM`slA-~<+S;{iF&DW;{wS)8va!@Vtt=ZYwenv2T{q4B;xqlHSWx1qx1q40{^wO? z=X67vh@NWRvcG#uI$mj+&GzPoQk5g5Kz(DtnA9%^>?Z44Ls4x$u~i1U$Fv|)J;tfD!8rmusNN!$&UEbmqK=@nVg3y8wyk(e}9wB zE`d#Hsj1}p_#3sR@nslLLEUDk`oFVdED<{oPP(&L9%y*#tp&jL%7n4rFN5;tjp~~y z#kg;VIj8Is)U3~c`RJDo}rQlIRH zG8Jer#K(W==!nC#!cyjxCkt zTbT0RO3q2$Q=3@C)6bjjzCEJ*r2I}H5AJPi%T<5e^gnK-D95fuciLD;tZ z`K72l@;89N4{bXLY8T9vWOSSEikXemeba53&SE!}=;;gf_BWD>M6+!oTmN3PlVpta zx2N+5&a?IUWT*e6=zqTK|E&D&|B$THkuh8q{ZbqR0%~8r;lnD) zrDs4&DJm)5m%nza&SF+G=DhXroHZ)o=jsN2VlhF$!wbyPReYOSf<4E31#sh#(I*ImFEox%&AtSv0)G5C^0j^U`|L{L5d9d zX+H^&$_mSK3Z+?EB6ZmyCg;8K_cygB5K3;S5Rsfgu+ivv0Tp8^6S5f6(B#54X!hHI zCrZRr)!3!!Lr!Ubpze$na$y%uoV|MG3P4rjJCTf1yf|46um}_QPHr5ie)UR9PEIZP zE#s|DS+^;G0+TmH7tdn-4Q*&qlyfZ^VjB->y(4hG2Z0EVfE@qWeh|$f22H2P9N#Wg zY9F1_m1$UJES?+?cVZ(gm2=gSm&neIh4oQg@41cb8~OC6WVNSs%gMUg>*ZtD$5TX4 zHcUkQO10Bp$>RCu8|-}zZVnb7A1IEu1ggxYvA6Nzfd7J7vq8bZJjR8UqHOk_lWtM8#`xfWd%g}43uA`#@fyw)R))S3)d{|%F=aPkkCqV?94PwGU@cu zp1F0BQ(j{_r`MnM%sV08rWKS7 zI~|+NS?=JsjuLEiiQI;^`}_Tsc;j@SKlsabPD~=)=zvxSNR78y1{_H#mODLmGe-uo zOzLu*wACqN%FyF_$1o~W@RW1`^C%-oG<{Xo z14&XlN{V?Li)ZBH^J5v*-gXo^7+_{bRh2Yn;6kUEdtOGS?}F8QJ_HAUR}sz!>Vx;l zZncJ}Eo~aYNi6V(MzglotM)r&a`2kg+yQa;FatO~vCDUhVpbe9q)5$!Kmhmm#V^y$ zGFcfJQT%rL5NvmLbRe!Ig@_k~K4J6b00enLWXc@r5_kHmdkIgVuiL&Yc}Y!qsZi zrrwONBe-v*z0t+2EFUj{*R*&DW>CiH-SU}W9nCdAq>D~Bf4OJmv>;?{CklxZ4B8Gk zRw~VG!{6!>GiB0?VI{GgMU>`8GE0U>=Wg>=XwtSd=Ng5~*P2(a2t}dHn+;-;l4#`T ziW9=V6&_r1MPBd5Y{cfu+_t0RJ*e|morl5gYv9GpQaOH}B?-Hul?%?Pt5etZqLHU6 z`I^;!N{^#0zdrf}D1k@eE~XIl^W>sfh+$~Zqm6$i9rohlvXhJ@f2Q$Wi*}xd4e4ii z+DS4md{Y-oHSV|So0Wxc>SS)7LAmOEYdit@l3a4vii(6bvv6tu67N{qFqr1zN0Rdv z-9_si5D@!aQ^Ph03ZXT%S6sP)e$<}duXi)5e3S-qFY&SN^x{ z?Lx>0K6VTW`O6`%yVG$nJ!rNxc?oke7OvyryMcjcAGLz{)A|B;WNH;2BZiZPu1M-H zBiaHpm4Bt6=pPuMp{8bW9~XmL58&yWz5{G3nOM+QuKZ$ogVxMj;#w;cs?{I3ZBfn7 z3=5>*r4)es>(6uD=_%_`oh42am!1o@7EjlQoUWm&s`%iuuh}ST_7CW^4K#b?5cbq3 z3g|6Hhlgbj&k%}!J#FbQ0%!lrwL9A*GtNpy_7iC z)cn}VqOe`UWs{1E%CTd|aBoysm92u#8I1p0xfk!A?iXwNwsMVn=StQGZIWpVH=Za| z+uG=qtV*Nz3b9V`+7o{)Zdviq@|L;3N|1vBhk^p?QwbplGA6nA;~ zO+uj~%kB&N*nzHl1n7S7%NbLMw>mj7u z&}uoFW#jbH(098w=3&0};f3}4FYfJ;DR3?($;un;pFImjM{U}U8wcF?FqAk)i#8v& z&Luj z`jG5o3+zctkS3HrE6P=$k9tjLiU{9>2@bXu-@}wa|7rkM_7iLMT~D6+dV7B$L;S)b zGte8`^~w=&6%S8SipjPuTej@ptp^Qny43ndb64PySf{UfF+73@_Ar0H66`S-ZT^5n zaz}h9`u~yCZT(qGU~GJsZLe#n);8d|GX*Z|O=1I?r&)BpW9CKh!rW-PDQmy2OeHf&01s~Z0D~~3QX?9d-~$eURz|+vyNbvz4ROWWe)mpu^pLi+^WJ1V z0ks=PZ7PX7M}dRT$eEOUooz=A=VP?Ze7ld6njZzbWm(?=y3^rfOG>ou$Ku^oYHX+; zbcOk|r0vKo?In8gL63dhq^K{uTIGn@dQ1K)Y>%lRU?#=-=?I!CPhwZD&tDM^)S1CVD|(IQ^oGET#ia*%Ym@n zzGaT1AwwjH5!qVbWgE3JdwiH0Pmqu~6Y^k3fT~7`5szgWIZ&Up@T6<$W_9OHHx-^$ z9gXpA@9^`1vwxPE=Tp60TY)O2Z+v`wU;r7$T+K-hofc_!&)PVs&u7tQ-t2uT{D&pq z57gg!kEVNx#}V$!hE$_Fw8F+@;_9^>+N82#y_Q;)>4sF*)%*MU%9rdb%>SF}if_xP zOhE*Fx~%;EmU|wb+pMzucW_>b^@(vyXo;CJ6U>l5!(Tovx&nf}K#PNIj8YG=O8did zY&!+r^OUsTzx8*|9?#lY`LALj1tzJii(H;nrEZ5`XPjA94q#pW=suHW4-<|IEVu^C zGX`mnvo1r(sC+_MEA$Yyv-1uPz?xzh7P-c;ja5t0`+d(T`#^3p*q7e*{H@2KNLp`y ze_qQ7Oc}kC^CRpmbBD{RdcTvQlmCyL6|dAYOG8lS#s#4Z-Euh1l$`R>=tNn!<{Q6> zOKY-E&-R1K=vU(eS~6EQgci*nK29rSV$)sv6>J~` z8$gew-Q4C8b_D;?a_#yeQ9Q{OXJ3;1C?4>P{tf#J165gS zQW-iA z>3_)*-1zRMhZN%P{2}|8(ya#~zkZojyqG!3NLq=;enZsTzFPin>y`(*Yb(rRJuv){ zy=@=sNb1TFy08=(X#KBVmX?~_JoHhN?P#Ijlhm&h5o)Dg9vW&y7LQ@JEP_HqMGVV+ zN9qbN9HvMYrPL#8XJdCg^NMhR?MHeSNL>9)T!RzS*aA~SvL%6ph3k=kri!$w|8)5H>_L%*&|WM#vH%EvXFb$FZf9ScuZz?bD4*UYa4A5wjQ5ip zIz^>}i;`tZ)o7b?E-Ki6XS^aQ#M|nXK72RuulbVG$LK%%M0t)%Sz~)kVz~`n{83C? zKI*Y>Z~Vk`Pu-yosd$5-=mq|DZAH?bW4Efg6TNK&}HJV4iac;PG0#C(zd7LFSt>3XQO^?hrYU`^QJC*zDxVRT7S| zi?We3adCO1)6J1mt?Sdo>zFNDjG5tx$WHg$M3&$Ts^sF-T8NG ze@|h`5ik2=uk^0tCfz21yHEV4Z>p+z<-o{)WS<|{mpTwN5a9NDB5F>ga5JyCjq0IJ zvg2pZTQ5~ShTrO?+a;4c9m(9xRmkAzo!SDKS-Idr3P{O~p%=8z>W(Ij(vJ*VRrcrp zy5?#6H|W8<5Y=sO{QWks(#8JEoBf`U88JUNA85j4He~}Ol{omC?8KeAJ)Wh{87}n(?R)FhmR-Bhep#dksX_Ju7M^k=wcf)@ z>nXWu#Ej^&x4^v}QlyZmm1FEZ!8AIHrwkD}LNZg9F4&g4Z=pOj3Mp>SxfvH-S;^C$ zI)vI_o{OJfV}lefgWD8Y?U}Aev{( zjvY+$Yn7Ui+38dV>aU>bf^*@Um|T;iwW@u5e|Qk zvf-L$UoLZpPrh-wNk@Nf!A_ggi)Wd+UWP0-H6jw*>>^7_tyzH~lR>y4?|we7{#J8? zTOYX8J$Tr?)g3aqkoxxe^`<}nv}(;se3$1oWg215t2L`eNlgvrAs41Zj0JavceI?G zS$961wfnK7(EOvS$|GT8!jz*lX5qAyi66nDy{&#Z=-DWfFvz_V=0z*7b4}y&owJ)~ zXY%ZyG@?DqV)&L8+^3&_T+WMn7fv+18dd2Q+-W~c=W$TH75MzQbLZd- z0Y(@V9bJMu7^?$Tyv6B81+G&dbb*m}c`l4Xvre4Clo7=I7#9n>enh<=z?2oJO>o6R z26>w{ha2f8;nkrbA=8jFX8|8T)R~@DN`jR{DdZhw!MPJm zP7AQRqQxQRGvwPWjIp0D)#vvz}iWU^Ggo2zLipR(A`Wl39pVYZG``~W# z!$At&z9Ubvzb5UE?`Yp~7G|Ly6KE$;*B^{!KR_XwKpf$}Z{BRzlu{2czFdpnYw2S4 z;Uh;r0U4e=&X&&o=0n-hItz!j6(MRbtM#Lsy$R7GFtKP+Fa1(gtY(b+y%nrdo*Cpc za7V2r!_*+#}uG@z*C1V+g zzYTcsD3Uh)wYJ=isoD14rs!PTXw%Z@-^#6XZIUFC8|tp8U8QQDv~k{<{x(r(V`{2d zjGKh&^jOh2I~v}_?B0f78#U!FtC8dsSqBRUOV!&D5Up5Ds4fTVdw8QcA4hpmFZ|Mo?w(u9vn2!j$wLh7Fn=d zqmq$a>fv^+`rTZ%@7dG2kye#F4Kjo1(b9XBT!yYv+8nG-^8sGUYulk&ydNS`(-|JM z(6+6e4VlAP%!giRlBPbPv1S;+k<%-)J66)&Tjsrc>e^tJgqyyG6JFUi?n>5mD+_vY zChx1oA8RgYd~1*1*mE?{s)}qUeJ`Y+t>5^#>a3^Hf}Es8VF9OfrGl*=<|<`tcwOD$}rzJYb|) zuT}MbZrn(SAj=*fn|){0=5>t2n-4LpkujI$559JjcU#+!SACm9{4S8{tgti2jT2nz zW=;$<7-W+GkeXvMv1)pe*=WjfR}9N*nYX*mn|bffyzJj-_^A5bwsMk7TMbm5+kPwk z^n6)(O!BU+gJ&em$KuZ|7V(+^_dg+_*7qb{@a%X8g}RDSv({bmxh~K2C{pm-%*L96 zNB8dd=hrq3s(#U8igl8>Ys;IEgxDWNc#i`g;dlVxL**r$azb2Pl7jtg& zHqlL)72qpAA{t?95iOrJ;C6}Z2}p;k^!Nsz$X)RJ=UTN1JD=XzmFd0R%e`dkwb0~* znYx+w(ZvWe-kCTir95_}^T`|e)~3{&c1wN?GUsh+ASQ)3Y~C%HAVRu5j|uG=pG%sftPJ%HUv&$W1C2Ga5A;h|inMffStD7Nvg$tE zdC{hksok7w(FnMSx7;xVM>M}t+_Cht*|g_erovyNQ0})c1OpMDbh8xdy)Ss6J-Zr> zn}+S@46Nzuj+aM!JH#~ZuhNg65ZlJFpMhchpMUZeF4ayiW-F8Wj~-R)V9`4ECe4a( zIKX&{BD>Y3D$Qkfq)x%5kk>tl<-LW9Gv4?}##cuHyC-t;ozDk9@fcC7zHYY*ZhZ7e zF=p5=tob&r_henPkePL%aTM;>h16`rHp#mu8gaMs_6OaO^axs;G|H()I?v5jYhmD; z8WA&_cvm2_IikN=bZR8IwBvERWMg4|U|1OSmMwc<|H|7}8r)|~WqZEhiF$|N=9WyI zmSQ)D#@EtR`x>gp9}9&h3T4R#^D8@`xLC}DJm~yvmu!_*prTbeuNR?#wZiflZ z{A|UJ?OL14j+9PR(0yr=e&$tV>h5XZ_PAPQzp3DEs{cGv+^X8E^{MH7J9jj#f||{j zmuJQII0Q^JNzq2g>x!S5GV8i}WTu=^^ismY3`eYj`h4t-9(xJ8VN(`sy)c&^=KD-RaY^zU z-TP+pL_!N>sNnB(8DWfskcGg#oa~4MlLEV}$|XDGkZ;_y>1{G83pLMW7fi`w1R%=B zCKp@TNOBoxcTZC&3C|ywpDZ%LfsV556?o~R4yLGwki;Ug;!9Sw_M{}w?A3Km3y=7+ zo9a@n%b&JH9=fV(h{z1PLUWISaI@7y_KX!u6tDSegE9#>&$TKQ1>Bc>{JuR4bvH?O zc_>q1lbrW3DhIn#AGD@D9 z`i1FlU}gz3K2Fu}>KRxStZscOh9(R&;-CtmOp1aRUn6}^821A%$!+c6VbZnphH%Er zL=X@6p5auyRF<^Yht!f9)^()eFAF*Iw$JW^V&e2bYk^a^vbGizw-siN3MbscNfrnIUpB@;HHodbUOw%^4a)Rd2+0I0@VWX3y)WiLR@9`#0^k`==74W zjYcth{!Eb#z}I6(jyy#9Nt%BA_%V98N}GBAvq)k`R$01gY6FHrc6%3T_U%b>r+jv|i47c=iSZnSxu(TZw=@&(P< z^Oa^!!`?net`g7W;)iQAV!>q(z=2hZrPlz;q8B)K#?q1~#Sh6xr6j#70b33_t>@I{ zW2%VF1{zx}*4Jex)4Ygw59$&-=PZy6Ok+(kw{P#I<(OL!CXME6XRbwXDx$8*<_z4b)4Z)I|cH(&JZ2V_ciA zOpx@eb1hrt8YeR)Dg!3R6t(oQ6g?h0q-HF$ z*ZWzlJN)%sq`IC+Nq(fzT^2E#-rTpC749eupO*hL{#OavlEG^t&01IePo;S*wDaUq zn(bW^`+ZFkT@Z%1_ypw(toeDx|tElH2SSJ27^R;n?BB zGR*T8N6-u-pB_ac>|hyE8c%jbAxZD}@kbRhrLU$C(JQPkQWNNshuv_njgdEVmu(aql!^9gvVr$D^WLFAINko1T4tDij zEivKYhi0odmJ)EZy{jJf+`t#d=fvZ%)iohziUHJE{k0>=T4r-(_EqNw6M@X^`Bt#DY*nQC;o53>b& z0@F+EZBK!P25um=F>FUQEc@PkTC&qbPdS{;sKP3Vjf#X+-V%5nxb#exrzKL+CEyJ` zV$n(g0|fwZYI3salr>kiT?c%~7kD4d((yMV8EUT}5sEplJeL{8?u8jcAic0%dquUK z^oc2yOqPMmOKLNi@d18Z=I-haio%;|WA$Qllk{;{V$B!#5mE83^7xQiRKruU#Y|j zNsR4fVNuSwdw+-feVMJNaxr=c$s5q&`D_#UGPvJpkI^5XS+_+rFKm2mC3^Am!&iks z%y`8I;eSSQT`n_mbSpla2TIx2L6b{UZm0tkB{XIA;%M}pK;dEOyRGb6A#G87ruMXI zZxqC67cF-ET7FJ1iz`z*o2|R@m4NZg#_P?GN4rXN5;)+4K6ZeWwMOK1Mefy5Piwh! z_BwsK0r~6)J&@KIV&~3V?ju<^&C%^Rw2^O9YO{_`dy{h1+!HV_mL zl`NnjIjQ8VA}Am#S&<+)Ne0Q(H(yYV3irbImo^lBLTY zH2Q{yCPj$@@;<7ZZTz4PI#$pBBBo%;lvDy}0rQ4)KXYyQg;jZPqX0qehBXxyMpe%U z;(#32lLai9X8VnuH}JWxrjLp`l#ID7=GmMhS5TxISIsBRvWx1F?E|^%kvr3VUPypD znFDjSJ*eQhiArP{QoHZyS@!kNCX`tp;$EZRcv&d;>uF$ zinF8=;@`oIyz>*3*xeJAwz2t1Lk5gQnw`FWFkvK)34im$d1sQTypr96D6NYa*Xdco z-Ij0tQkuK>H^xK0jGtf0k&t)r!~tUlU@W=eaH$53hITE zRTJL>s?*|J)Nr%#$m=$t*%VT-hBA*K45WjSP59IBmArw5`KE*&FY8czq<+UcP;a4q+E2m?BT1V4O zt9idduNK5O(ve7+T^=I*%RO4M$y$nO>MHq#KBg~w=~u;@ZeWi^X9*^TI%HvzS_Nt5 z5Pj7e+380I60;rb3=dd)SW@%x@xcS3N!=$0^uleMqt5Hc7X0C zasdidaWcRvXx+nkd@?~*Mi?5|zH$ORGf2P@D9xcH)&1^K#5>mB$9uD|xqN)Kh>HX% zv!mv3j>^HbBc+Ic<xnO&h<6^h>+HfZ{@c-cY8qqhvhJ^sXz6d8z|3JDbiX4qi~^01v5!Rth`{W2N7n$ ze zjC6IKxbjWQ?>+m5_gX!Wd%xv~%|oa(NZ+Q8fUmlG84 z)FS+R{`@&;1tMFGWXw!Whc}2H*?t{z!nd2b6t$qo+RvgVQC1zfYBLXWrVzdajxF6o34!N}Yb7tf5SPtAQrNVjKzf4pAZk<6!&A zYi??^<)H*>#>7!0+=+-&7#QtWM_8pFpOq4K0;4vMffy+y0^uP)4i%QB&3X^~%MWr9 zQLRc9(_sT#khHzLVrhI!mq^QhO>iC7_AsF!g?Ync=wZzs!}Tn24h;wlgaETxe-gf% zNN9p@g@vIFNTEN1=>cW{K?VsLONOoBd{-xfT9vA4nyKTp-zDwefRo=1e*{jRQ-JhDH!q~c)MTdXV{yN=YeflA z*J36F7{fP%f)0Z$h*>po9tWh)KgdNwIHB$89PiTncM4L_tJX}JMtz|7)d1QwFpM47iMKbSIxzisgjtq_A`>u1WgCW-n?vJzWI*!S^c{T zh)=AGk%&+~Wv82?K!f@TNXM1YO&zg{v)7~T3MUX8Lxz{e$ljEEJCaEiXoKTtNgus%{Lt4eMDbschWNOo)Avj=8kf+z{UACT8g9-g zcVW1%X_hi9ZMHzz>Bt8UAWd;R%#PDA!0Yy`EW(Mc_MaZXc=TA?yg-F;w|HoRc$(~I zod^FLcmOdmQ6^E*vgO&;X@-Fu^QeAa&bY=2&vv*kmz~bcM zx^PY%!;hgO3q#`R-NLHDKJYc==PZ`hQoN%ZUTTq?lb3JIId(Qk=s=|?q}xUcsRZwa zg;53_ULP`ksH-9U*&a#ON9)r4Ks`!ZCz_p&Rm0((;2yqc=`#C{AWg>fxsPU9U|JVp z8!}Gcpp!uFDegFI-eRTh~zHx*b~KX=(cr0f{2@C5vCWB|l0XE7gp z!THHHm|NGab}>MSpyBK9UYe(NSZ^M6VLa!-oI2EqH}=(oS12Sk=obfZDRFc(K*MtN ziWMI2?mpge8y6FF)C&x2;%e~aHM5U

>0aZr7g)^IH0wuEoC4VB-6Vb%~oXkUK~U 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 H@$df+6Yxzg diff --git a/_sources/api/file_oas_validator.hpp.rst.txt b/_sources/api/file_oas_validator.hpp.rst.txt index c6eabf4..8073f76 100644 --- a/_sources/api/file_oas_validator.hpp.rst.txt +++ b/_sources/api/file_oas_validator.hpp.rst.txt @@ -24,7 +24,7 @@ Detailed Description Muhammad Nawaz -2023 +2023 diff --git a/_sources/benchmark.rst.txt b/_sources/benchmark.rst.txt index a206284..c383fd8 100644 --- a/_sources/benchmark.rst.txt +++ b/_sources/benchmark.rst.txt @@ -11,15 +11,15 @@ Context * - Key - Value * - date - - 2023-11-25T18:39:00+00:00 + - 2023-11-25T18:53:35+00:00 * - host_name - - Mac-1700934014912.local + - fv-az849-910 * - executable - build/test/perftest/oasvalidator-perftests * - num_cpus - 4 * - mhz_per_cpu - - 3190 + - 2608 * - cpu_scaling_enabled - False * - caches @@ -33,21 +33,21 @@ Context * - Data - 1 - 32768 - - 0 + - 2 * - Instruction - 1 - 32768 - - 0 + - 2 * - Unified - 2 - - 262144 - - 1 + - 524288 + - 2 * - Unified - 3 - - 12582912 - - 0 + - 33554432 + - 4 * - load_avg - - [1.7583, 1.32617, 1.00049] + - [2.42578, 0.880371, 0.327637] * - library_build_type - release @@ -65,92 +65,92 @@ Benchmarks - CPU Time (µs) * - 1 - InvalidMethod - - 10000000 - - 0.413 - - 0.412 + - 38749832 + - 0.125 + - 0.125 * - 2 - ValidRoute - - 28649794 - - 0.173 - - 0.173 + - 67617815 + - 0.073 + - 0.073 * - 3 - InvalidRoute - - 837959 - - 5.886 - - 5.876 + - 2172173 + - 2.225 + - 2.225 * - 4 - ValidPathParam - - 684526 - - 7.479 - - 7.452 + - 1713336 + - 2.854 + - 2.854 * - 5 - InvalidPathParam - - 319398 - - 15.051 - - 15.050 + - 971971 + - 5.123 + - 5.122 * - 6 - ValidQueryParam - - 4297345 - - 1.130 - - 1.129 + - 13042061 + - 0.377 + - 0.377 * - 7 - InvalidQueryParam - - 530050 - - 9.200 - - 9.193 + - 1805367 + - 2.712 + - 2.712 * - 8 - ValidHeaderParam - - 5096204 - - 0.973 - - 0.973 + - 13499474 + - 0.367 + - 0.367 * - 9 - InvalidHeaderParam - - 544703 - - 8.991 - - 8.991 + - 1799880 + - 2.693 + - 2.693 * - 10 - ValidBody - - 1000000 - - 3.531 - - 3.530 + - 4072546 + - 1.203 + - 1.203 * - 11 - InvalidBody - - 1467633 - - 3.374 - - 3.373 + - 4594331 + - 1.066 + - 1.066 * - 12 - ValidRequest - - 286476 - - 17.167 - - 17.166 + - 814442 + - 6.026 + - 6.025 * - 13 - InvalidRequest1 - - 9955505 - - 0.561 - - 0.561 + - 28331883 + - 0.166 + - 0.166 * - 14 - InvalidRequest2 - - 824351 - - 5.845 - - 5.845 + - 2180042 + - 2.247 + - 2.247 * - 15 - InvalidRequest3 - - 223091 - - 22.181 - - 22.180 + - 632199 + - 7.517 + - 7.517 * - 16 - InvalidRequest4 - - 205402 - - 23.988 - - 23.984 + - 522963 + - 9.397 + - 9.397 * - 17 - InvalidRequest5 - - 191955 - - 25.530 - - 25.527 + - 542362 + - 8.926 + - 8.926 * - 18 - ComplexValidRequest - - 67775 - - 70.595 - - 70.593 + - 197357 + - 24.678 + - 24.678 diff --git a/benchmark.html b/benchmark.html index 0625e48..a074e76 100644 --- a/benchmark.html +++ b/benchmark.html @@ -238,10 +238,10 @@

Context

date

-

2023-11-25T18:39:00+00:00

+

2023-11-25T18:53:35+00:00

host_name

-

Mac-1700934014912.local

+

fv-az849-910

executable

build/test/perftest/oasvalidator-perftests

@@ -250,7 +250,7 @@

Context

mhz_per_cpu

-

3190

+

2608

cpu_scaling_enabled

False

@@ -273,22 +273,22 @@

Context

Data

1

32768

-

0

+

2

Instruction

1

32768

-

0

+

2

Unified

2

-

262144

-

1

+

524288

+

2

Unified

3

-

12582912

-

0

+

33554432

+

4

@@ -296,7 +296,7 @@

Context

load_avg

-

[1.7583, 1.32617, 1.00049]

+

[2.42578, 0.880371, 0.327637]

library_build_type

release

@@ -320,111 +320,111 @@

Benchmarks

1

InvalidMethod

-

10000000

-

0.413

-

0.412

+

38749832

+

0.125

+

0.125

2

ValidRoute

-

28649794

-

0.173

-

0.173

+

67617815

+

0.073

+

0.073

3

InvalidRoute

-

837959

-

5.886

-

5.876

+

2172173

+

2.225

+

2.225

4

ValidPathParam

-

684526

-

7.479

-

7.452

+

1713336

+

2.854

+

2.854

5

InvalidPathParam

-

319398

-

15.051

-

15.050

+

971971

+

5.123

+

5.122

6

ValidQueryParam

-

4297345

-

1.130

-

1.129

+

13042061

+

0.377

+

0.377

7

InvalidQueryParam

-

530050

-

9.200

-

9.193

+

1805367

+

2.712

+

2.712

8

ValidHeaderParam

-

5096204

-

0.973

-

0.973

+

13499474

+

0.367

+

0.367

9

InvalidHeaderParam

-

544703

-

8.991

-

8.991

+

1799880

+

2.693

+

2.693

10

ValidBody

-

1000000

-

3.531

-

3.530

+

4072546

+

1.203

+

1.203

11

InvalidBody

-

1467633

-

3.374

-

3.373

+

4594331

+

1.066

+

1.066

12

ValidRequest

-

286476

-

17.167

-

17.166

+

814442

+

6.026

+

6.025

13

InvalidRequest1

-

9955505

-

0.561

-

0.561

+

28331883

+

0.166

+

0.166

14

InvalidRequest2

-

824351

-

5.845

-

5.845

+

2180042

+

2.247

+

2.247

15

InvalidRequest3

-

223091

-

22.181

-

22.180

+

632199

+

7.517

+

7.517

16

InvalidRequest4

-

205402

-

23.988

-

23.984

+

522963

+

9.397

+

9.397

17

InvalidRequest5

-

191955

-

25.530

-

25.527

+

542362

+

8.926

+

8.926

18

ComplexValidRequest

-

67775

-

70.595

-

70.593

+

197357

+

24.678

+

24.678

diff --git a/covhtml-oasvalidator/index.CMakeCCompilerId.c.f56694ea3193a6e08142d7b5e3a654ae.html b/covhtml-oasvalidator/index.CMakeCCompilerId.c.cc1fdc5f9508bfa65e57c053db1bc262.html similarity index 96% rename from covhtml-oasvalidator/index.CMakeCCompilerId.c.f56694ea3193a6e08142d7b5e3a654ae.html rename to covhtml-oasvalidator/index.CMakeCCompilerId.c.cc1fdc5f9508bfa65e57c053db1bc262.html index 0d86ebc..9caf9fa 100644 --- a/covhtml-oasvalidator/index.CMakeCCompilerId.c.f56694ea3193a6e08142d7b5e3a654ae.html +++ b/covhtml-oasvalidator/index.CMakeCCompilerId.c.cc1fdc5f9508bfa65e57c053db1bc262.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -23,11 +22,11 @@

GCC Code Coverage Report

- + - +
File:build/CMakeFiles/3.27.6/CompilerIdC/CMakeCCompilerId.cbuild/CMakeFiles/3.27.8/CompilerIdC/CMakeCCompilerId.c
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -42,13 +41,7 @@

GCC Code Coverage Report

Lines: 0 - 10 - 0.0% - - - Functions: - 0 - 1 + 9 0.0% @@ -59,37 +52,10 @@

GCC Code Coverage Report

-
- -
-
- - +
-
@@ -98,6 +64,8 @@

GCC Code Coverage Report

+ + + + + + + + + + - + + + + + + + + - + + + + + + + - + + + + + + + + + + + + - + + + + + + + + + + + + + + - + + + + + - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + - + + + + + + + + + + - + + + + + + + + + + + - + + + + + + - + + + + + + + + + - + + + + + + + + - + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + - + + + + - + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + + + - + + + + + + + + - + + - + + + - + + + + + - + + + + + - + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + - + + + + + + + + - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + - + + + + + + + + + + + + - + + + - + + + - + + + - + + - + + - + + - + + + - + + + - + + + - + + + + + - + + + + - + + + - + + - + + - + + - + + - + + + - + + + + - + + + - + + - + + - + + - + + + - + + + - + + + - + + + + + - + + + + + + + - + + - + + - + + + + + + + + + + + + + + + + + + + + + + - + + - + + + - + + + + + - + + + - + + + - + + + - + + + + - + + + + - + + + - + + + - + + - + + - + + - + + - + + + - + + + + - + + + + - + + + + - + + + + - + + + - + + - + + - - + + + - + + - + + + +
Exec Source
1 @@ -105,6 +73,7 @@

GCC Code Coverage Report

#ifdef __cplusplus
2 @@ -112,6 +81,7 @@

GCC Code Coverage Report

# error "A C++ compiler has been selected for C."
3 @@ -119,6 +89,7 @@

GCC Code Coverage Report

#endif
4 @@ -126,6 +97,7 @@

GCC Code Coverage Report

5 @@ -133,6 +105,7 @@

GCC Code Coverage Report

#if defined(__18CXX)
6 @@ -140,6 +113,7 @@

GCC Code Coverage Report

# define ID_VOID_MAIN
7 @@ -147,6 +121,7 @@

GCC Code Coverage Report

#endif
8 @@ -154,13 +129,15 @@

GCC Code Coverage Report

#if defined(__CLASSIC_C__)
9 /* cv-qualifiers did not exist in K&R C *//* cv-qualifiers did not exist in K&R C */
10 @@ -168,6 +145,7 @@

GCC Code Coverage Report

# define const
11 @@ -175,6 +153,7 @@

GCC Code Coverage Report

# define volatile
12 @@ -182,6 +161,7 @@

GCC Code Coverage Report

#endif
13 @@ -189,6 +169,7 @@

GCC Code Coverage Report

14 @@ -196,6 +177,7 @@

GCC Code Coverage Report

#if !defined(__has_include)
15 @@ -203,13 +185,15 @@

GCC Code Coverage Report

/* If the compiler does not have __has_include, pretend the answer is
16 always no. */ always no. */
17 @@ -217,6 +201,7 @@

GCC Code Coverage Report

# define __has_include(x) 0
18 @@ -224,6 +209,7 @@

GCC Code Coverage Report

#endif
19 @@ -231,6 +217,7 @@

GCC Code Coverage Report

20 @@ -238,6 +225,7 @@

GCC Code Coverage Report

21 @@ -245,13 +233,15 @@

GCC Code Coverage Report

/* Version number components: V=Version, R=Revision, P=Patch
22 Version date components: YYYY=Year, MM=Month, DD=Day */ Version date components: YYYY=Year, MM=Month, DD=Day */
23 @@ -259,6 +249,7 @@

GCC Code Coverage Report

24 @@ -266,6 +257,7 @@

GCC Code Coverage Report

#if defined(__INTEL_COMPILER) || defined(__ICC)
25 @@ -273,6 +265,7 @@

GCC Code Coverage Report

# define COMPILER_ID "Intel"
26 @@ -280,6 +273,7 @@

GCC Code Coverage Report

# if defined(_MSC_VER)
27 @@ -287,6 +281,7 @@

GCC Code Coverage Report

# define SIMULATE_ID "MSVC"
28 @@ -294,6 +289,7 @@

GCC Code Coverage Report

# endif
29 @@ -301,6 +297,7 @@

GCC Code Coverage Report

# if defined(__GNUC__)
30 @@ -308,6 +305,7 @@

GCC Code Coverage Report

# define SIMULATE_ID "GNU"
31 @@ -315,6 +313,7 @@

GCC Code Coverage Report

# endif
32 @@ -322,13 +321,15 @@

GCC Code Coverage Report

/* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
33 except that a few beta releases use the old format with V=2021. */ except that a few beta releases use the old format with V=2021. */
34 @@ -336,6 +337,7 @@

GCC Code Coverage Report

# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
35 @@ -343,6 +345,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
36 @@ -350,6 +353,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
37 @@ -357,6 +361,7 @@

GCC Code Coverage Report

# if defined(__INTEL_COMPILER_UPDATE)
38 @@ -364,6 +369,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
39 @@ -371,6 +377,7 @@

GCC Code Coverage Report

# else
40 @@ -378,6 +385,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
41 @@ -385,6 +393,7 @@

GCC Code Coverage Report

# endif
42 @@ -392,6 +401,7 @@

GCC Code Coverage Report

# else
43 @@ -399,6 +409,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
44 @@ -406,6 +417,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
45 @@ -413,13 +425,15 @@

GCC Code Coverage Report

/* The third version component from --version is an update index,
46 but no macro is provided for it. */ but no macro is provided for it. */
47 @@ -427,6 +441,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(0)
48 @@ -434,6 +449,7 @@

GCC Code Coverage Report

# endif
49 @@ -441,13 +457,15 @@

GCC Code Coverage Report

# if defined(__INTEL_COMPILER_BUILD_DATE)
50 /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
51 @@ -455,6 +473,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
52 @@ -462,6 +481,7 @@

GCC Code Coverage Report

# endif
53 @@ -469,13 +489,15 @@

GCC Code Coverage Report

# if defined(_MSC_VER)
54 /* _MSC_VER = VVRR */ /* _MSC_VER = VVRR */
55 @@ -483,6 +505,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
56 @@ -490,6 +513,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
57 @@ -497,6 +521,7 @@

GCC Code Coverage Report

# endif
58 @@ -504,6 +529,7 @@

GCC Code Coverage Report

# if defined(__GNUC__)
59 @@ -511,6 +537,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
60 @@ -518,6 +545,7 @@

GCC Code Coverage Report

# elif defined(__GNUG__)
61 @@ -525,6 +553,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
62 @@ -532,6 +561,7 @@

GCC Code Coverage Report

# endif
63 @@ -539,6 +569,7 @@

GCC Code Coverage Report

# if defined(__GNUC_MINOR__)
64 @@ -546,6 +577,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
65 @@ -553,6 +585,7 @@

GCC Code Coverage Report

# endif
66 @@ -560,6 +593,7 @@

GCC Code Coverage Report

# if defined(__GNUC_PATCHLEVEL__)
67 @@ -567,6 +601,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
68 @@ -574,6 +609,7 @@

GCC Code Coverage Report

# endif
69 @@ -581,6 +617,7 @@

GCC Code Coverage Report

70 @@ -588,6 +625,7 @@

GCC Code Coverage Report

#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
71 @@ -595,6 +633,7 @@

GCC Code Coverage Report

# define COMPILER_ID "IntelLLVM"
72 @@ -602,6 +641,7 @@

GCC Code Coverage Report

#if defined(_MSC_VER)
73 @@ -609,6 +649,7 @@

GCC Code Coverage Report

# define SIMULATE_ID "MSVC"
74 @@ -616,6 +657,7 @@

GCC Code Coverage Report

#endif
75 @@ -623,6 +665,7 @@

GCC Code Coverage Report

#if defined(__GNUC__)
76 @@ -630,6 +673,7 @@

GCC Code Coverage Report

# define SIMULATE_ID "GNU"
77 @@ -637,6 +681,7 @@

GCC Code Coverage Report

#endif
78 @@ -644,6 +689,7 @@

GCC Code Coverage Report

/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
79 @@ -651,6 +697,7 @@

GCC Code Coverage Report

* later. Look for 6 digit vs. 8 digit version number to decide encoding.
80 @@ -658,13 +705,15 @@

GCC Code Coverage Report

* VVVV is no smaller than the current year when a version is released.
81 */ */
82 @@ -672,6 +721,7 @@

GCC Code Coverage Report

#if __INTEL_LLVM_COMPILER < 1000000L
83 @@ -679,6 +729,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
84 @@ -686,6 +737,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
85 @@ -693,6 +745,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
86 @@ -700,6 +753,7 @@

GCC Code Coverage Report

#else
87 @@ -707,6 +761,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
88 @@ -714,6 +769,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
89 @@ -721,6 +777,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
90 @@ -728,6 +785,7 @@

GCC Code Coverage Report

#endif
91 @@ -735,13 +793,15 @@

GCC Code Coverage Report

#if defined(_MSC_VER)
92 /* _MSC_VER = VVRR */ /* _MSC_VER = VVRR */
93 @@ -749,6 +809,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
94 @@ -756,6 +817,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
95 @@ -763,6 +825,7 @@

GCC Code Coverage Report

#endif
96 @@ -770,6 +833,7 @@

GCC Code Coverage Report

#if defined(__GNUC__)
97 @@ -777,6 +841,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
98 @@ -784,6 +849,7 @@

GCC Code Coverage Report

#elif defined(__GNUG__)
99 @@ -791,6 +857,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
100 @@ -798,6 +865,7 @@

GCC Code Coverage Report

#endif
101 @@ -805,6 +873,7 @@

GCC Code Coverage Report

#if defined(__GNUC_MINOR__)
102 @@ -812,6 +881,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
103 @@ -819,6 +889,7 @@

GCC Code Coverage Report

#endif
104 @@ -826,6 +897,7 @@

GCC Code Coverage Report

#if defined(__GNUC_PATCHLEVEL__)
105 @@ -833,6 +905,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
106 @@ -840,6 +913,7 @@

GCC Code Coverage Report

#endif
107 @@ -847,6 +921,7 @@

GCC Code Coverage Report

108 @@ -854,6 +929,7 @@

GCC Code Coverage Report

#elif defined(__PATHCC__)
109 @@ -861,6 +937,7 @@

GCC Code Coverage Report

# define COMPILER_ID "PathScale"
110 @@ -868,6 +945,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
111 @@ -875,6 +953,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
112 @@ -882,6 +961,7 @@

GCC Code Coverage Report

# if defined(__PATHCC_PATCHLEVEL__)
113 @@ -889,6 +969,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
114 @@ -896,6 +977,7 @@

GCC Code Coverage Report

# endif
115 @@ -903,6 +985,7 @@

GCC Code Coverage Report

116 @@ -910,6 +993,7 @@

GCC Code Coverage Report

#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
117 @@ -917,6 +1001,7 @@

GCC Code Coverage Report

# define COMPILER_ID "Embarcadero"
118 @@ -924,6 +1009,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
119 @@ -931,6 +1017,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
120 @@ -938,6 +1025,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
121 @@ -945,6 +1033,7 @@

GCC Code Coverage Report

122 @@ -952,6 +1041,7 @@

GCC Code Coverage Report

#elif defined(__BORLANDC__)
123 @@ -959,13 +1049,15 @@

GCC Code Coverage Report

# define COMPILER_ID "Borland"
124 /* __BORLANDC__ = 0xVRR */ /* __BORLANDC__ = 0xVRR */
125 @@ -973,6 +1065,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
126 @@ -980,6 +1073,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
127 @@ -987,6 +1081,7 @@

GCC Code Coverage Report

128 @@ -994,6 +1089,7 @@

GCC Code Coverage Report

#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
129 @@ -1001,13 +1097,15 @@

GCC Code Coverage Report

# define COMPILER_ID "Watcom"
130 /* __WATCOMC__ = VVRR */ /* __WATCOMC__ = VVRR */
131 @@ -1015,6 +1113,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
132 @@ -1022,6 +1121,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
133 @@ -1029,6 +1129,7 @@

GCC Code Coverage Report

# if (__WATCOMC__ % 10) > 0
134 @@ -1036,6 +1137,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
135 @@ -1043,6 +1145,7 @@

GCC Code Coverage Report

# endif
136 @@ -1050,6 +1153,7 @@

GCC Code Coverage Report

137 @@ -1057,6 +1161,7 @@

GCC Code Coverage Report

#elif defined(__WATCOMC__)
138 @@ -1064,13 +1169,15 @@

GCC Code Coverage Report

# define COMPILER_ID "OpenWatcom"
139 /* __WATCOMC__ = VVRP + 1100 */ /* __WATCOMC__ = VVRP + 1100 */
140 @@ -1078,6 +1185,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
141 @@ -1085,6 +1193,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
142 @@ -1092,6 +1201,7 @@

GCC Code Coverage Report

# if (__WATCOMC__ % 10) > 0
143 @@ -1099,6 +1209,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
144 @@ -1106,6 +1217,7 @@

GCC Code Coverage Report

# endif
145 @@ -1113,6 +1225,7 @@

GCC Code Coverage Report

146 @@ -1120,6 +1233,7 @@

GCC Code Coverage Report

#elif defined(__SUNPRO_C)
147 @@ -1127,6 +1241,7 @@

GCC Code Coverage Report

# define COMPILER_ID "SunPro"
148 @@ -1134,13 +1249,15 @@

GCC Code Coverage Report

# if __SUNPRO_C >= 0x5100
149 /* __SUNPRO_C = 0xVRRP */ /* __SUNPRO_C = 0xVRRP */
150 @@ -1148,6 +1265,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
151 @@ -1155,6 +1273,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
152 @@ -1162,6 +1281,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
153 @@ -1169,13 +1289,15 @@

GCC Code Coverage Report

# else
154 /* __SUNPRO_CC = 0xVRP */ /* __SUNPRO_CC = 0xVRP */
155 @@ -1183,6 +1305,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
156 @@ -1190,6 +1313,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
157 @@ -1197,6 +1321,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
158 @@ -1204,6 +1329,7 @@

GCC Code Coverage Report

# endif
159 @@ -1211,6 +1337,7 @@

GCC Code Coverage Report

160 @@ -1218,6 +1345,7 @@

GCC Code Coverage Report

#elif defined(__HP_cc)
161 @@ -1225,13 +1353,15 @@

GCC Code Coverage Report

# define COMPILER_ID "HP"
162 /* __HP_cc = VVRRPP */ /* __HP_cc = VVRRPP */
163 @@ -1239,6 +1369,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
164 @@ -1246,6 +1377,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
165 @@ -1253,6 +1385,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
166 @@ -1260,6 +1393,7 @@

GCC Code Coverage Report

167 @@ -1267,6 +1401,7 @@

GCC Code Coverage Report

#elif defined(__DECC)
168 @@ -1274,13 +1409,15 @@

GCC Code Coverage Report

# define COMPILER_ID "Compaq"
169 /* __DECC_VER = VVRRTPPPP */ /* __DECC_VER = VVRRTPPPP */
170 @@ -1288,6 +1425,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
171 @@ -1295,6 +1433,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
172 @@ -1302,6 +1441,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
173 @@ -1309,6 +1449,7 @@

GCC Code Coverage Report

174 @@ -1316,6 +1457,7 @@

GCC Code Coverage Report

#elif defined(__IBMC__) && defined(__COMPILER_VER__)
175 @@ -1323,13 +1465,15 @@

GCC Code Coverage Report

# define COMPILER_ID "zOS"
176 /* __IBMC__ = VRP */ /* __IBMC__ = VRP */
177 @@ -1337,6 +1481,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
178 @@ -1344,6 +1489,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
179 @@ -1351,6 +1497,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
180 @@ -1358,6 +1505,7 @@

GCC Code Coverage Report

181 @@ -1365,6 +1513,7 @@

GCC Code Coverage Report

#elif defined(__open_xl__) && defined(__clang__)
182 @@ -1372,6 +1521,7 @@

GCC Code Coverage Report

# define COMPILER_ID "IBMClang"
183 @@ -1379,6 +1529,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
184 @@ -1386,6 +1537,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
185 @@ -1393,6 +1545,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
186 @@ -1400,6 +1553,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
187 @@ -1407,6 +1561,7 @@

GCC Code Coverage Report

188 @@ -1414,6 +1569,7 @@

GCC Code Coverage Report

189 @@ -1421,6 +1577,7 @@

GCC Code Coverage Report

#elif defined(__ibmxl__) && defined(__clang__)
190 @@ -1428,6 +1585,7 @@

GCC Code Coverage Report

# define COMPILER_ID "XLClang"
191 @@ -1435,6 +1593,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
192 @@ -1442,6 +1601,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
193 @@ -1449,6 +1609,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
194 @@ -1456,6 +1617,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
195 @@ -1463,6 +1625,7 @@

GCC Code Coverage Report

196 @@ -1470,6 +1633,7 @@

GCC Code Coverage Report

197 @@ -1477,6 +1641,7 @@

GCC Code Coverage Report

#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
198 @@ -1484,13 +1649,15 @@

GCC Code Coverage Report

# define COMPILER_ID "XL"
199 /* __IBMC__ = VRP */ /* __IBMC__ = VRP */
200 @@ -1498,6 +1665,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
201 @@ -1505,6 +1673,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
202 @@ -1512,6 +1681,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
203 @@ -1519,6 +1689,7 @@

GCC Code Coverage Report

204 @@ -1526,6 +1697,7 @@

GCC Code Coverage Report

#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
205 @@ -1533,13 +1705,15 @@

GCC Code Coverage Report

# define COMPILER_ID "VisualAge"
206 /* __IBMC__ = VRP */ /* __IBMC__ = VRP */
207 @@ -1547,6 +1721,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
208 @@ -1554,6 +1729,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
209 @@ -1561,6 +1737,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
210 @@ -1568,6 +1745,7 @@

GCC Code Coverage Report

211 @@ -1575,6 +1753,7 @@

GCC Code Coverage Report

#elif defined(__NVCOMPILER)
212 @@ -1582,6 +1761,7 @@

GCC Code Coverage Report

# define COMPILER_ID "NVHPC"
213 @@ -1589,6 +1769,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
214 @@ -1596,6 +1777,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
215 @@ -1603,6 +1785,7 @@

GCC Code Coverage Report

# if defined(__NVCOMPILER_PATCHLEVEL__)
216 @@ -1610,6 +1793,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
217 @@ -1617,6 +1801,7 @@

GCC Code Coverage Report

# endif
218 @@ -1624,6 +1809,7 @@

GCC Code Coverage Report

219 @@ -1631,6 +1817,7 @@

GCC Code Coverage Report

#elif defined(__PGI)
220 @@ -1638,6 +1825,7 @@

GCC Code Coverage Report

# define COMPILER_ID "PGI"
221 @@ -1645,6 +1833,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
222 @@ -1652,6 +1841,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
223 @@ -1659,6 +1849,7 @@

GCC Code Coverage Report

# if defined(__PGIC_PATCHLEVEL__)
224 @@ -1666,6 +1857,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
225 @@ -1673,6 +1865,7 @@

GCC Code Coverage Report

# endif
226 @@ -1680,6 +1873,7 @@

GCC Code Coverage Report

227 @@ -1687,6 +1881,7 @@

GCC Code Coverage Report

#elif defined(_CRAYC)
228 @@ -1694,6 +1889,7 @@

GCC Code Coverage Report

# define COMPILER_ID "Cray"
229 @@ -1701,6 +1897,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
230 @@ -1708,6 +1905,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
231 @@ -1715,6 +1913,7 @@

GCC Code Coverage Report

232 @@ -1722,6 +1921,7 @@

GCC Code Coverage Report

#elif defined(__TI_COMPILER_VERSION__)
233 @@ -1729,13 +1929,15 @@

GCC Code Coverage Report

# define COMPILER_ID "TI"
234 /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
235 @@ -1743,6 +1945,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
236 @@ -1750,6 +1953,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
237 @@ -1757,6 +1961,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
238 @@ -1764,6 +1969,7 @@

GCC Code Coverage Report

239 @@ -1771,6 +1977,7 @@

GCC Code Coverage Report

#elif defined(__CLANG_FUJITSU)
240 @@ -1778,6 +1985,7 @@

GCC Code Coverage Report

# define COMPILER_ID "FujitsuClang"
241 @@ -1785,6 +1993,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
242 @@ -1792,6 +2001,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
243 @@ -1799,6 +2009,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
244 @@ -1806,6 +2017,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_INTERNAL_STR __clang_version__
245 @@ -1813,6 +2025,7 @@

GCC Code Coverage Report

246 @@ -1820,6 +2033,7 @@

GCC Code Coverage Report

247 @@ -1827,6 +2041,7 @@

GCC Code Coverage Report

#elif defined(__FUJITSU)
248 @@ -1834,6 +2049,7 @@

GCC Code Coverage Report

# define COMPILER_ID "Fujitsu"
249 @@ -1841,6 +2057,7 @@

GCC Code Coverage Report

# if defined(__FCC_version__)
250 @@ -1848,6 +2065,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION __FCC_version__
251 @@ -1855,6 +2073,7 @@

GCC Code Coverage Report

# elif defined(__FCC_major__)
252 @@ -1862,6 +2081,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
253 @@ -1869,6 +2089,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
254 @@ -1876,6 +2097,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
255 @@ -1883,6 +2105,7 @@

GCC Code Coverage Report

# endif
256 @@ -1890,6 +2113,7 @@

GCC Code Coverage Report

# if defined(__fcc_version)
257 @@ -1897,6 +2121,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
258 @@ -1904,6 +2129,7 @@

GCC Code Coverage Report

# elif defined(__FCC_VERSION)
259 @@ -1911,6 +2137,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
260 @@ -1918,6 +2145,7 @@

GCC Code Coverage Report

# endif
261 @@ -1925,6 +2153,7 @@

GCC Code Coverage Report

262 @@ -1932,6 +2161,7 @@

GCC Code Coverage Report

263 @@ -1939,6 +2169,7 @@

GCC Code Coverage Report

#elif defined(__ghs__)
264 @@ -1946,13 +2177,15 @@

GCC Code Coverage Report

# define COMPILER_ID "GHS"
265 /* __GHS_VERSION_NUMBER = VVVVRP *//* __GHS_VERSION_NUMBER = VVVVRP */
266 @@ -1960,6 +2193,7 @@

GCC Code Coverage Report

# ifdef __GHS_VERSION_NUMBER
267 @@ -1967,6 +2201,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
268 @@ -1974,6 +2209,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
269 @@ -1981,6 +2217,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
270 @@ -1988,6 +2225,7 @@

GCC Code Coverage Report

# endif
271 @@ -1995,6 +2233,7 @@

GCC Code Coverage Report

272 @@ -2002,6 +2241,7 @@

GCC Code Coverage Report

#elif defined(__TASKING__)
273 @@ -2009,6 +2249,7 @@

GCC Code Coverage Report

# define COMPILER_ID "Tasking"
274 @@ -2016,6 +2257,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
275 @@ -2023,6 +2265,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
276 @@ -2030,6 +2273,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
277 @@ -2037,6 +2281,7 @@

GCC Code Coverage Report

278 @@ -2044,6 +2289,7 @@

GCC Code Coverage Report

#elif defined(__TINYC__)
279 @@ -2051,6 +2297,7 @@

GCC Code Coverage Report

# define COMPILER_ID "TinyCC"
280 @@ -2058,6 +2305,7 @@

GCC Code Coverage Report

281 @@ -2065,6 +2313,7 @@

GCC Code Coverage Report

#elif defined(__BCC__)
282 @@ -2072,6 +2321,7 @@

GCC Code Coverage Report

# define COMPILER_ID "Bruce"
283 @@ -2079,6 +2329,7 @@

GCC Code Coverage Report

284 @@ -2086,6 +2337,7 @@

GCC Code Coverage Report

#elif defined(__SCO_VERSION__)
285 @@ -2093,6 +2345,7 @@

GCC Code Coverage Report

# define COMPILER_ID "SCO"
286 @@ -2100,6 +2353,7 @@

GCC Code Coverage Report

287 @@ -2107,6 +2361,7 @@

GCC Code Coverage Report

#elif defined(__ARMCC_VERSION) && !defined(__clang__)
288 @@ -2114,6 +2369,7 @@

GCC Code Coverage Report

# define COMPILER_ID "ARMCC"
289 @@ -2121,13 +2377,15 @@

GCC Code Coverage Report

#if __ARMCC_VERSION >= 1000000
290 /* __ARMCC_VERSION = VRRPPPP */ /* __ARMCC_VERSION = VRRPPPP */
291 @@ -2135,6 +2393,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
292 @@ -2142,6 +2401,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
293 @@ -2149,6 +2409,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
294 @@ -2156,13 +2417,15 @@

GCC Code Coverage Report

#else
295 /* __ARMCC_VERSION = VRPPPP */ /* __ARMCC_VERSION = VRPPPP */
296 @@ -2170,6 +2433,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
297 @@ -2177,6 +2441,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
298 @@ -2184,6 +2449,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
299 @@ -2191,6 +2457,7 @@

GCC Code Coverage Report

#endif
300 @@ -2198,6 +2465,7 @@

GCC Code Coverage Report

301 @@ -2205,6 +2473,7 @@

GCC Code Coverage Report

302 @@ -2212,6 +2481,7 @@

GCC Code Coverage Report

#elif defined(__clang__) && defined(__apple_build_version__)
303 @@ -2219,6 +2489,7 @@

GCC Code Coverage Report

# define COMPILER_ID "AppleClang"
304 @@ -2226,6 +2497,7 @@

GCC Code Coverage Report

# if defined(_MSC_VER)
305 @@ -2233,6 +2505,7 @@

GCC Code Coverage Report

# define SIMULATE_ID "MSVC"
306 @@ -2240,6 +2513,7 @@

GCC Code Coverage Report

# endif
307 @@ -2247,6 +2521,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
308 @@ -2254,6 +2529,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
309 @@ -2261,6 +2537,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
310 @@ -2268,13 +2545,15 @@

GCC Code Coverage Report

# if defined(_MSC_VER)
311 /* _MSC_VER = VVRR */ /* _MSC_VER = VVRR */
312 @@ -2282,6 +2561,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
313 @@ -2289,6 +2569,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
314 @@ -2296,6 +2577,7 @@

GCC Code Coverage Report

# endif
315 @@ -2303,6 +2585,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
316 @@ -2310,6 +2593,7 @@

GCC Code Coverage Report

317 @@ -2317,6 +2601,7 @@

GCC Code Coverage Report

#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
318 @@ -2324,6 +2609,7 @@

GCC Code Coverage Report

# define COMPILER_ID "ARMClang"
319 @@ -2331,6 +2617,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
320 @@ -2338,6 +2625,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
321 @@ -2345,6 +2633,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
322 @@ -2352,6 +2641,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
323 @@ -2359,6 +2649,7 @@

GCC Code Coverage Report

324 @@ -2366,6 +2657,7 @@

GCC Code Coverage Report

#elif defined(__clang__)
325 @@ -2373,6 +2665,7 @@

GCC Code Coverage Report

# define COMPILER_ID "Clang"
326 @@ -2380,6 +2673,7 @@

GCC Code Coverage Report

# if defined(_MSC_VER)
327 @@ -2387,6 +2681,7 @@

GCC Code Coverage Report

# define SIMULATE_ID "MSVC"
328 @@ -2394,6 +2689,7 @@

GCC Code Coverage Report

# endif
329 @@ -2401,6 +2697,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
330 @@ -2408,6 +2705,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
331 @@ -2415,6 +2713,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
332 @@ -2422,13 +2721,15 @@

GCC Code Coverage Report

# if defined(_MSC_VER)
333 /* _MSC_VER = VVRR */ /* _MSC_VER = VVRR */
334 @@ -2436,6 +2737,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
335 @@ -2443,6 +2745,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
336 @@ -2450,6 +2753,7 @@

GCC Code Coverage Report

# endif
337 @@ -2457,6 +2761,7 @@

GCC Code Coverage Report

338 @@ -2464,6 +2769,7 @@

GCC Code Coverage Report

#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
339 @@ -2471,6 +2777,7 @@

GCC Code Coverage Report

# define COMPILER_ID "LCC"
340 @@ -2478,6 +2785,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
341 @@ -2485,6 +2793,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
342 @@ -2492,6 +2801,7 @@

GCC Code Coverage Report

# if defined(__LCC_MINOR__)
343 @@ -2499,6 +2809,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
344 @@ -2506,6 +2817,7 @@

GCC Code Coverage Report

# endif
345 @@ -2513,6 +2825,7 @@

GCC Code Coverage Report

# if defined(__GNUC__) && defined(__GNUC_MINOR__)
346 @@ -2520,6 +2833,7 @@

GCC Code Coverage Report

# define SIMULATE_ID "GNU"
347 @@ -2527,6 +2841,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
348 @@ -2534,6 +2849,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
349 @@ -2541,6 +2857,7 @@

GCC Code Coverage Report

# if defined(__GNUC_PATCHLEVEL__)
350 @@ -2548,6 +2865,7 @@

GCC Code Coverage Report

# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
351 @@ -2555,6 +2873,7 @@

GCC Code Coverage Report

# endif
352 @@ -2562,6 +2881,7 @@

GCC Code Coverage Report

# endif
353 @@ -2569,6 +2889,7 @@

GCC Code Coverage Report

354 @@ -2576,6 +2897,7 @@

GCC Code Coverage Report

#elif defined(__GNUC__)
355 @@ -2583,6 +2905,7 @@

GCC Code Coverage Report

# define COMPILER_ID "GNU"
356 @@ -2590,6 +2913,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
357 @@ -2597,6 +2921,7 @@

GCC Code Coverage Report

# if defined(__GNUC_MINOR__)
358 @@ -2604,6 +2929,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
359 @@ -2611,6 +2937,7 @@

GCC Code Coverage Report

# endif
360 @@ -2618,6 +2945,7 @@

GCC Code Coverage Report

# if defined(__GNUC_PATCHLEVEL__)
361 @@ -2625,6 +2953,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
362 @@ -2632,6 +2961,7 @@

GCC Code Coverage Report

# endif
363 @@ -2639,6 +2969,7 @@

GCC Code Coverage Report

364 @@ -2646,6 +2977,7 @@

GCC Code Coverage Report

#elif defined(_MSC_VER)
365 @@ -2653,13 +2985,15 @@

GCC Code Coverage Report

# define COMPILER_ID "MSVC"
366 /* _MSC_VER = VVRR */ /* _MSC_VER = VVRR */
367 @@ -2667,6 +3001,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
368 @@ -2674,6 +3009,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
369 @@ -2681,6 +3017,7 @@

GCC Code Coverage Report

# if defined(_MSC_FULL_VER)
370 @@ -2688,13 +3025,15 @@

GCC Code Coverage Report

# if _MSC_VER >= 1400
371 /* _MSC_FULL_VER = VVRRPPPPP */ /* _MSC_FULL_VER = VVRRPPPPP */
372 @@ -2702,6 +3041,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
373 @@ -2709,13 +3049,15 @@

GCC Code Coverage Report

# else
374 /* _MSC_FULL_VER = VVRRPPPP */ /* _MSC_FULL_VER = VVRRPPPP */
375 @@ -2723,6 +3065,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
376 @@ -2730,6 +3073,7 @@

GCC Code Coverage Report

# endif
377 @@ -2737,6 +3081,7 @@

GCC Code Coverage Report

# endif
378 @@ -2744,6 +3089,7 @@

GCC Code Coverage Report

# if defined(_MSC_BUILD)
379 @@ -2751,6 +3097,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
380 @@ -2758,6 +3105,7 @@

GCC Code Coverage Report

# endif
381 @@ -2765,6 +3113,7 @@

GCC Code Coverage Report

382 @@ -2772,6 +3121,7 @@

GCC Code Coverage Report

#elif defined(_ADI_COMPILER)
383 @@ -2779,6 +3129,7 @@

GCC Code Coverage Report

# define COMPILER_ID "ADSP"
384 @@ -2786,13 +3137,15 @@

GCC Code Coverage Report

#if defined(__VERSIONNUM__)
385 /* __VERSIONNUM__ = 0xVVRRPPTT */ /* __VERSIONNUM__ = 0xVVRRPPTT */
386 @@ -2800,6 +3153,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
387 @@ -2807,6 +3161,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
388 @@ -2814,6 +3169,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
389 @@ -2821,6 +3177,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
390 @@ -2828,6 +3185,7 @@

GCC Code Coverage Report

#endif
391 @@ -2835,6 +3193,7 @@

GCC Code Coverage Report

392 @@ -2842,6 +3201,7 @@

GCC Code Coverage Report

#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
393 @@ -2849,6 +3209,7 @@

GCC Code Coverage Report

# define COMPILER_ID "IAR"
394 @@ -2856,6 +3217,7 @@

GCC Code Coverage Report

# if defined(__VER__) && defined(__ICCARM__)
395 @@ -2863,6 +3225,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
396 @@ -2870,6 +3233,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
397 @@ -2877,6 +3241,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
398 @@ -2884,6 +3249,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
399 @@ -2891,6 +3257,7 @@

GCC Code Coverage Report

# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
400 @@ -2898,6 +3265,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
401 @@ -2905,6 +3273,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
402 @@ -2912,6 +3281,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
403 @@ -2919,6 +3289,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
404 @@ -2926,6 +3297,7 @@

GCC Code Coverage Report

# endif
405 @@ -2933,6 +3305,7 @@

GCC Code Coverage Report

406 @@ -2940,6 +3313,7 @@

GCC Code Coverage Report

#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
407 @@ -2947,6 +3321,7 @@

GCC Code Coverage Report

# define COMPILER_ID "SDCC"
408 @@ -2954,6 +3329,7 @@

GCC Code Coverage Report

# if defined(__SDCC_VERSION_MAJOR)
409 @@ -2961,6 +3337,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
410 @@ -2968,6 +3345,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
411 @@ -2975,6 +3353,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
412 @@ -2982,13 +3361,15 @@

GCC Code Coverage Report

# else
413 /* SDCC = VRP */ /* SDCC = VRP */
414 @@ -2996,6 +3377,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
415 @@ -3003,6 +3385,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
416 @@ -3010,6 +3393,7 @@

GCC Code Coverage Report

# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
417 @@ -3017,6 +3401,7 @@

GCC Code Coverage Report

# endif
418 @@ -3024,6 +3409,7 @@

GCC Code Coverage Report

419 @@ -3031,6 +3417,7 @@

GCC Code Coverage Report

420 @@ -3038,6 +3425,7 @@

GCC Code Coverage Report

/* These compilers are either not known or too old to define an
421 @@ -3045,13 +3433,15 @@

GCC Code Coverage Report

identification macro. Try to identify the platform and guess that
422 it is the native compiler. */ it is the native compiler. */
423 @@ -3059,6 +3449,7 @@

GCC Code Coverage Report

#elif defined(__hpux) || defined(__hpua)
424 @@ -3066,6 +3457,7 @@

GCC Code Coverage Report

# define COMPILER_ID "HP"
425 @@ -3073,13 +3465,15 @@

GCC Code Coverage Report

426 #else /* unknown compiler */#else /* unknown compiler */
427 @@ -3087,6 +3481,7 @@

GCC Code Coverage Report

# define COMPILER_ID ""
428 @@ -3094,6 +3489,7 @@

GCC Code Coverage Report

#endif
429 @@ -3101,6 +3497,7 @@

GCC Code Coverage Report

430 @@ -3108,6 +3505,7 @@

GCC Code Coverage Report

/* Construct the string literal in pieces to prevent the source from
431 @@ -3115,6 +3513,7 @@

GCC Code Coverage Report

getting matched. Store it in a pointer rather than an array
432 @@ -3122,20 +3521,23 @@

GCC Code Coverage Report

because some compilers will just produce instructions to fill the
433 array rather than assigning a pointer to a static array. */ array rather than assigning a pointer to a static array. */
434 char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
435 @@ -3143,13 +3545,15 @@

GCC Code Coverage Report

#ifdef SIMULATE_ID
436 char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
437 @@ -3157,6 +3561,7 @@

GCC Code Coverage Report

#endif
438 @@ -3164,6 +3569,7 @@

GCC Code Coverage Report

439 @@ -3171,13 +3577,15 @@

GCC Code Coverage Report

#ifdef __QNXNTO__
440 char const* qnxnto = "INFO" ":" "qnxnto[]";char const* qnxnto = "INFO" ":" "qnxnto[]";
441 @@ -3185,6 +3593,7 @@

GCC Code Coverage Report

#endif
442 @@ -3192,6 +3601,7 @@

GCC Code Coverage Report

443 @@ -3199,13 +3609,15 @@

GCC Code Coverage Report

#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
444 char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
445 @@ -3213,6 +3625,7 @@

GCC Code Coverage Report

#endif
446 @@ -3220,6 +3633,7 @@

GCC Code Coverage Report

447 @@ -3227,6 +3641,7 @@

GCC Code Coverage Report

#define STRINGIFY_HELPER(X) #X
448 @@ -3234,6 +3649,7 @@

GCC Code Coverage Report

#define STRINGIFY(X) STRINGIFY_HELPER(X)
449 @@ -3241,13 +3657,15 @@

GCC Code Coverage Report

450 /* Identify known platforms by name. *//* Identify known platforms by name. */
451 @@ -3255,6 +3673,7 @@

GCC Code Coverage Report

#if defined(__linux) || defined(__linux__) || defined(linux)
452 @@ -3262,6 +3681,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "Linux"
453 @@ -3269,6 +3689,7 @@

GCC Code Coverage Report

454 @@ -3276,6 +3697,7 @@

GCC Code Coverage Report

#elif defined(__MSYS__)
455 @@ -3283,6 +3705,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "MSYS"
456 @@ -3290,6 +3713,7 @@

GCC Code Coverage Report

457 @@ -3297,6 +3721,7 @@

GCC Code Coverage Report

#elif defined(__CYGWIN__)
458 @@ -3304,6 +3729,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "Cygwin"
459 @@ -3311,6 +3737,7 @@

GCC Code Coverage Report

460 @@ -3318,6 +3745,7 @@

GCC Code Coverage Report

#elif defined(__MINGW32__)
461 @@ -3325,6 +3753,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "MinGW"
462 @@ -3332,6 +3761,7 @@

GCC Code Coverage Report

463 @@ -3339,6 +3769,7 @@

GCC Code Coverage Report

#elif defined(__APPLE__)
464 @@ -3346,6 +3777,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "Darwin"
465 @@ -3353,6 +3785,7 @@

GCC Code Coverage Report

466 @@ -3360,6 +3793,7 @@

GCC Code Coverage Report

#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
467 @@ -3367,6 +3801,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "Windows"
468 @@ -3374,6 +3809,7 @@

GCC Code Coverage Report

469 @@ -3381,6 +3817,7 @@

GCC Code Coverage Report

#elif defined(__FreeBSD__) || defined(__FreeBSD)
470 @@ -3388,6 +3825,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "FreeBSD"
471 @@ -3395,6 +3833,7 @@

GCC Code Coverage Report

472 @@ -3402,6 +3841,7 @@

GCC Code Coverage Report

#elif defined(__NetBSD__) || defined(__NetBSD)
473 @@ -3409,6 +3849,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "NetBSD"
474 @@ -3416,6 +3857,7 @@

GCC Code Coverage Report

475 @@ -3423,6 +3865,7 @@

GCC Code Coverage Report

#elif defined(__OpenBSD__) || defined(__OPENBSD)
476 @@ -3430,6 +3873,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "OpenBSD"
477 @@ -3437,6 +3881,7 @@

GCC Code Coverage Report

478 @@ -3444,6 +3889,7 @@

GCC Code Coverage Report

#elif defined(__sun) || defined(sun)
479 @@ -3451,6 +3897,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "SunOS"
480 @@ -3458,6 +3905,7 @@

GCC Code Coverage Report

481 @@ -3465,6 +3913,7 @@

GCC Code Coverage Report

#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
482 @@ -3472,6 +3921,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "AIX"
483 @@ -3479,6 +3929,7 @@

GCC Code Coverage Report

484 @@ -3486,6 +3937,7 @@

GCC Code Coverage Report

#elif defined(__hpux) || defined(__hpux__)
485 @@ -3493,6 +3945,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "HP-UX"
486 @@ -3500,6 +3953,7 @@

GCC Code Coverage Report

487 @@ -3507,6 +3961,7 @@

GCC Code Coverage Report

#elif defined(__HAIKU__)
488 @@ -3514,6 +3969,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "Haiku"
489 @@ -3521,6 +3977,7 @@

GCC Code Coverage Report

490 @@ -3528,6 +3985,7 @@

GCC Code Coverage Report

#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
491 @@ -3535,6 +3993,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "BeOS"
492 @@ -3542,6 +4001,7 @@

GCC Code Coverage Report

493 @@ -3549,6 +4009,7 @@

GCC Code Coverage Report

#elif defined(__QNX__) || defined(__QNXNTO__)
494 @@ -3556,6 +4017,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "QNX"
495 @@ -3563,6 +4025,7 @@

GCC Code Coverage Report

496 @@ -3570,6 +4033,7 @@

GCC Code Coverage Report

#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
497 @@ -3577,6 +4041,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "Tru64"
498 @@ -3584,6 +4049,7 @@

GCC Code Coverage Report

499 @@ -3591,6 +4057,7 @@

GCC Code Coverage Report

#elif defined(__riscos) || defined(__riscos__)
500 @@ -3598,6 +4065,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "RISCos"
501 @@ -3605,6 +4073,7 @@

GCC Code Coverage Report

502 @@ -3612,6 +4081,7 @@

GCC Code Coverage Report

#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
503 @@ -3619,6 +4089,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "SINIX"
504 @@ -3626,6 +4097,7 @@

GCC Code Coverage Report

505 @@ -3633,6 +4105,7 @@

GCC Code Coverage Report

#elif defined(__UNIX_SV__)
506 @@ -3640,6 +4113,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "UNIX_SV"
507 @@ -3647,6 +4121,7 @@

GCC Code Coverage Report

508 @@ -3654,6 +4129,7 @@

GCC Code Coverage Report

#elif defined(__bsdos__)
509 @@ -3661,6 +4137,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "BSDOS"
510 @@ -3668,6 +4145,7 @@

GCC Code Coverage Report

511 @@ -3675,6 +4153,7 @@

GCC Code Coverage Report

#elif defined(_MPRAS) || defined(MPRAS)
512 @@ -3682,6 +4161,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "MP-RAS"
513 @@ -3689,6 +4169,7 @@

GCC Code Coverage Report

514 @@ -3696,6 +4177,7 @@

GCC Code Coverage Report

#elif defined(__osf) || defined(__osf__)
515 @@ -3703,6 +4185,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "OSF1"
516 @@ -3710,6 +4193,7 @@

GCC Code Coverage Report

517 @@ -3717,6 +4201,7 @@

GCC Code Coverage Report

#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
518 @@ -3724,6 +4209,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "SCO_SV"
519 @@ -3731,6 +4217,7 @@

GCC Code Coverage Report

520 @@ -3738,6 +4225,7 @@

GCC Code Coverage Report

#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
521 @@ -3745,6 +4233,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "ULTRIX"
522 @@ -3752,6 +4241,7 @@

GCC Code Coverage Report

523 @@ -3759,6 +4249,7 @@

GCC Code Coverage Report

#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
524 @@ -3766,6 +4257,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "Xenix"
525 @@ -3773,6 +4265,7 @@

GCC Code Coverage Report

526 @@ -3780,6 +4273,7 @@

GCC Code Coverage Report

#elif defined(__WATCOMC__)
527 @@ -3787,6 +4281,7 @@

GCC Code Coverage Report

# if defined(__LINUX__)
528 @@ -3794,6 +4289,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "Linux"
529 @@ -3801,6 +4297,7 @@

GCC Code Coverage Report

530 @@ -3808,6 +4305,7 @@

GCC Code Coverage Report

# elif defined(__DOS__)
531 @@ -3815,6 +4313,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "DOS"
532 @@ -3822,6 +4321,7 @@

GCC Code Coverage Report

533 @@ -3829,6 +4329,7 @@

GCC Code Coverage Report

# elif defined(__OS2__)
534 @@ -3836,6 +4337,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "OS2"
535 @@ -3843,6 +4345,7 @@

GCC Code Coverage Report

536 @@ -3850,6 +4353,7 @@

GCC Code Coverage Report

# elif defined(__WINDOWS__)
537 @@ -3857,6 +4361,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "Windows3x"
538 @@ -3864,6 +4369,7 @@

GCC Code Coverage Report

539 @@ -3871,6 +4377,7 @@

GCC Code Coverage Report

# elif defined(__VXWORKS__)
540 @@ -3878,6 +4385,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "VxWorks"
541 @@ -3885,13 +4393,15 @@

GCC Code Coverage Report

542 # else /* unknown platform */# else /* unknown platform */
543 @@ -3899,6 +4409,7 @@

GCC Code Coverage Report

# define PLATFORM_ID
544 @@ -3906,6 +4417,7 @@

GCC Code Coverage Report

# endif
545 @@ -3913,6 +4425,7 @@

GCC Code Coverage Report

546 @@ -3920,6 +4433,7 @@

GCC Code Coverage Report

#elif defined(__INTEGRITY)
547 @@ -3927,6 +4441,7 @@

GCC Code Coverage Report

# if defined(INT_178B)
548 @@ -3934,6 +4449,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "Integrity178"
549 @@ -3941,13 +4457,15 @@

GCC Code Coverage Report

550 # else /* regular Integrity */# else /* regular Integrity */
551 @@ -3955,6 +4473,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "Integrity"
552 @@ -3962,6 +4481,7 @@

GCC Code Coverage Report

# endif
553 @@ -3969,6 +4489,7 @@

GCC Code Coverage Report

554 @@ -3976,6 +4497,7 @@

GCC Code Coverage Report

# elif defined(_ADI_COMPILER)
555 @@ -3983,6 +4505,7 @@

GCC Code Coverage Report

# define PLATFORM_ID "ADSP"
556 @@ -3990,13 +4513,15 @@

GCC Code Coverage Report

557 #else /* unknown platform */#else /* unknown platform */
558 @@ -4004,6 +4529,7 @@

GCC Code Coverage Report

# define PLATFORM_ID
559 @@ -4011,6 +4537,7 @@

GCC Code Coverage Report

560 @@ -4018,6 +4545,7 @@

GCC Code Coverage Report

#endif
561 @@ -4025,6 +4553,7 @@

GCC Code Coverage Report

562 @@ -4032,6 +4561,7 @@

GCC Code Coverage Report

/* For windows compilers MSVC and Intel we can determine
563 @@ -4039,6 +4569,7 @@

GCC Code Coverage Report

the architecture of the compiler being used. This is because
564 @@ -4046,6 +4577,7 @@

GCC Code Coverage Report

the compilers do not have flags that can change the architecture,
565 @@ -4053,13 +4585,15 @@

GCC Code Coverage Report

but rather depend on which compiler is being used
566 */*/
567 @@ -4067,6 +4601,7 @@

GCC Code Coverage Report

#if defined(_WIN32) && defined(_MSC_VER)
568 @@ -4074,6 +4609,7 @@

GCC Code Coverage Report

# if defined(_M_IA64)
569 @@ -4081,6 +4617,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "IA64"
570 @@ -4088,6 +4625,7 @@

GCC Code Coverage Report

571 @@ -4095,6 +4633,7 @@

GCC Code Coverage Report

# elif defined(_M_ARM64EC)
572 @@ -4102,6 +4641,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "ARM64EC"
573 @@ -4109,6 +4649,7 @@

GCC Code Coverage Report

574 @@ -4116,6 +4657,7 @@

GCC Code Coverage Report

# elif defined(_M_X64) || defined(_M_AMD64)
575 @@ -4123,6 +4665,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "x64"
576 @@ -4130,6 +4673,7 @@

GCC Code Coverage Report

577 @@ -4137,6 +4681,7 @@

GCC Code Coverage Report

# elif defined(_M_IX86)
578 @@ -4144,6 +4689,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "X86"
579 @@ -4151,6 +4697,7 @@

GCC Code Coverage Report

580 @@ -4158,6 +4705,7 @@

GCC Code Coverage Report

# elif defined(_M_ARM64)
581 @@ -4165,6 +4713,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "ARM64"
582 @@ -4172,6 +4721,7 @@

GCC Code Coverage Report

583 @@ -4179,6 +4729,7 @@

GCC Code Coverage Report

# elif defined(_M_ARM)
584 @@ -4186,6 +4737,7 @@

GCC Code Coverage Report

# if _M_ARM == 4
585 @@ -4193,6 +4745,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "ARMV4I"
586 @@ -4200,6 +4753,7 @@

GCC Code Coverage Report

# elif _M_ARM == 5
587 @@ -4207,6 +4761,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "ARMV5I"
588 @@ -4214,6 +4769,7 @@

GCC Code Coverage Report

# else
589 @@ -4221,6 +4777,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
590 @@ -4228,6 +4785,7 @@

GCC Code Coverage Report

# endif
591 @@ -4235,6 +4793,7 @@

GCC Code Coverage Report

592 @@ -4242,6 +4801,7 @@

GCC Code Coverage Report

# elif defined(_M_MIPS)
593 @@ -4249,6 +4809,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "MIPS"
594 @@ -4256,6 +4817,7 @@

GCC Code Coverage Report

595 @@ -4263,6 +4825,7 @@

GCC Code Coverage Report

# elif defined(_M_SH)
596 @@ -4270,6 +4833,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "SHx"
597 @@ -4277,13 +4841,15 @@

GCC Code Coverage Report

598 # else /* unknown architecture */# else /* unknown architecture */
599 @@ -4291,6 +4857,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID ""
600 @@ -4298,6 +4865,7 @@

GCC Code Coverage Report

# endif
601 @@ -4305,6 +4873,7 @@

GCC Code Coverage Report

602 @@ -4312,6 +4881,7 @@

GCC Code Coverage Report

#elif defined(__WATCOMC__)
603 @@ -4319,6 +4889,7 @@

GCC Code Coverage Report

# if defined(_M_I86)
604 @@ -4326,6 +4897,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "I86"
605 @@ -4333,6 +4905,7 @@

GCC Code Coverage Report

606 @@ -4340,6 +4913,7 @@

GCC Code Coverage Report

# elif defined(_M_IX86)
607 @@ -4347,6 +4921,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "X86"
608 @@ -4354,13 +4929,15 @@

GCC Code Coverage Report

609 # else /* unknown architecture */# else /* unknown architecture */
610 @@ -4368,6 +4945,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID ""
611 @@ -4375,6 +4953,7 @@

GCC Code Coverage Report

# endif
612 @@ -4382,6 +4961,7 @@

GCC Code Coverage Report

613 @@ -4389,6 +4969,7 @@

GCC Code Coverage Report

#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
614 @@ -4396,6 +4977,7 @@

GCC Code Coverage Report

# if defined(__ICCARM__)
615 @@ -4403,6 +4985,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "ARM"
616 @@ -4410,6 +4993,7 @@

GCC Code Coverage Report

617 @@ -4417,6 +5001,7 @@

GCC Code Coverage Report

# elif defined(__ICCRX__)
618 @@ -4424,6 +5009,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "RX"
619 @@ -4431,6 +5017,7 @@

GCC Code Coverage Report

620 @@ -4438,6 +5025,7 @@

GCC Code Coverage Report

# elif defined(__ICCRH850__)
621 @@ -4445,6 +5033,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "RH850"
622 @@ -4452,6 +5041,7 @@

GCC Code Coverage Report

623 @@ -4459,6 +5049,7 @@

GCC Code Coverage Report

# elif defined(__ICCRL78__)
624 @@ -4466,6 +5057,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "RL78"
625 @@ -4473,6 +5065,7 @@

GCC Code Coverage Report

626 @@ -4480,6 +5073,7 @@

GCC Code Coverage Report

# elif defined(__ICCRISCV__)
627 @@ -4487,6 +5081,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "RISCV"
628 @@ -4494,6 +5089,7 @@

GCC Code Coverage Report

629 @@ -4501,6 +5097,7 @@

GCC Code Coverage Report

# elif defined(__ICCAVR__)
630 @@ -4508,6 +5105,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "AVR"
631 @@ -4515,6 +5113,7 @@

GCC Code Coverage Report

632 @@ -4522,6 +5121,7 @@

GCC Code Coverage Report

# elif defined(__ICC430__)
633 @@ -4529,6 +5129,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "MSP430"
634 @@ -4536,6 +5137,7 @@

GCC Code Coverage Report

635 @@ -4543,6 +5145,7 @@

GCC Code Coverage Report

# elif defined(__ICCV850__)
636 @@ -4550,6 +5153,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "V850"
637 @@ -4557,6 +5161,7 @@

GCC Code Coverage Report

638 @@ -4564,6 +5169,7 @@

GCC Code Coverage Report

# elif defined(__ICC8051__)
639 @@ -4571,6 +5177,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "8051"
640 @@ -4578,6 +5185,7 @@

GCC Code Coverage Report

641 @@ -4585,6 +5193,7 @@

GCC Code Coverage Report

# elif defined(__ICCSTM8__)
642 @@ -4592,6 +5201,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "STM8"
643 @@ -4599,13 +5209,15 @@

GCC Code Coverage Report

644 # else /* unknown architecture */# else /* unknown architecture */
645 @@ -4613,6 +5225,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID ""
646 @@ -4620,6 +5233,7 @@

GCC Code Coverage Report

# endif
647 @@ -4627,6 +5241,7 @@

GCC Code Coverage Report

648 @@ -4634,6 +5249,7 @@

GCC Code Coverage Report

#elif defined(__ghs__)
649 @@ -4641,6 +5257,7 @@

GCC Code Coverage Report

# if defined(__PPC64__)
650 @@ -4648,6 +5265,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "PPC64"
651 @@ -4655,6 +5273,7 @@

GCC Code Coverage Report

652 @@ -4662,6 +5281,7 @@

GCC Code Coverage Report

# elif defined(__ppc__)
653 @@ -4669,6 +5289,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "PPC"
654 @@ -4676,6 +5297,7 @@

GCC Code Coverage Report

655 @@ -4683,6 +5305,7 @@

GCC Code Coverage Report

# elif defined(__ARM__)
656 @@ -4690,6 +5313,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "ARM"
657 @@ -4697,6 +5321,7 @@

GCC Code Coverage Report

658 @@ -4704,6 +5329,7 @@

GCC Code Coverage Report

# elif defined(__x86_64__)
659 @@ -4711,6 +5337,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "x64"
660 @@ -4718,6 +5345,7 @@

GCC Code Coverage Report

661 @@ -4725,6 +5353,7 @@

GCC Code Coverage Report

# elif defined(__i386__)
662 @@ -4732,6 +5361,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "X86"
663 @@ -4739,13 +5369,15 @@

GCC Code Coverage Report

664 # else /* unknown architecture */# else /* unknown architecture */
665 @@ -4753,6 +5385,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID ""
666 @@ -4760,6 +5393,7 @@

GCC Code Coverage Report

# endif
667 @@ -4767,6 +5401,7 @@

GCC Code Coverage Report

668 @@ -4774,6 +5409,7 @@

GCC Code Coverage Report

#elif defined(__TI_COMPILER_VERSION__)
669 @@ -4781,6 +5417,7 @@

GCC Code Coverage Report

# if defined(__TI_ARM__)
670 @@ -4788,6 +5425,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "ARM"
671 @@ -4795,6 +5433,7 @@

GCC Code Coverage Report

672 @@ -4802,6 +5441,7 @@

GCC Code Coverage Report

# elif defined(__MSP430__)
673 @@ -4809,6 +5449,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "MSP430"
674 @@ -4816,6 +5457,7 @@

GCC Code Coverage Report

675 @@ -4823,6 +5465,7 @@

GCC Code Coverage Report

# elif defined(__TMS320C28XX__)
676 @@ -4830,6 +5473,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "TMS320C28x"
677 @@ -4837,6 +5481,7 @@

GCC Code Coverage Report

678 @@ -4844,6 +5489,7 @@

GCC Code Coverage Report

# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
679 @@ -4851,6 +5497,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "TMS320C6x"
680 @@ -4858,13 +5505,15 @@

GCC Code Coverage Report

681 # else /* unknown architecture */# else /* unknown architecture */
682 @@ -4872,6 +5521,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID ""
683 @@ -4879,6 +5529,7 @@

GCC Code Coverage Report

# endif
684 @@ -4886,6 +5537,7 @@

GCC Code Coverage Report

685 @@ -4893,6 +5545,7 @@

GCC Code Coverage Report

# elif defined(__ADSPSHARC__)
686 @@ -4900,6 +5553,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "SHARC"
687 @@ -4907,6 +5561,7 @@

GCC Code Coverage Report

688 @@ -4914,6 +5569,7 @@

GCC Code Coverage Report

# elif defined(__ADSPBLACKFIN__)
689 @@ -4921,6 +5577,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "Blackfin"
690 @@ -4928,6 +5585,7 @@

GCC Code Coverage Report

691 @@ -4935,6 +5593,7 @@

GCC Code Coverage Report

#elif defined(__TASKING__)
692 @@ -4942,6 +5601,7 @@

GCC Code Coverage Report

693 @@ -4949,6 +5609,7 @@

GCC Code Coverage Report

# if defined(__CTC__) || defined(__CPTC__)
694 @@ -4956,6 +5617,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "TriCore"
695 @@ -4963,6 +5625,7 @@

GCC Code Coverage Report

696 @@ -4970,6 +5633,7 @@

GCC Code Coverage Report

# elif defined(__CMCS__)
697 @@ -4977,6 +5641,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "MCS"
698 @@ -4984,6 +5649,7 @@

GCC Code Coverage Report

699 @@ -4991,6 +5657,7 @@

GCC Code Coverage Report

# elif defined(__CARM__)
700 @@ -4998,6 +5665,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "ARM"
701 @@ -5005,6 +5673,7 @@

GCC Code Coverage Report

702 @@ -5012,6 +5681,7 @@

GCC Code Coverage Report

# elif defined(__CARC__)
703 @@ -5019,6 +5689,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "ARC"
704 @@ -5026,6 +5697,7 @@

GCC Code Coverage Report

705 @@ -5033,6 +5705,7 @@

GCC Code Coverage Report

# elif defined(__C51__)
706 @@ -5040,6 +5713,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "8051"
707 @@ -5047,6 +5721,7 @@

GCC Code Coverage Report

708 @@ -5054,6 +5729,7 @@

GCC Code Coverage Report

# elif defined(__CPCP__)
709 @@ -5061,6 +5737,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID "PCP"
710 @@ -5068,6 +5745,7 @@

GCC Code Coverage Report

711 @@ -5075,6 +5753,7 @@

GCC Code Coverage Report

# else
712 @@ -5082,6 +5761,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID ""
713 @@ -5089,6 +5769,7 @@

GCC Code Coverage Report

# endif
714 @@ -5096,6 +5777,7 @@

GCC Code Coverage Report

715 @@ -5103,6 +5785,7 @@

GCC Code Coverage Report

#else
716 @@ -5110,6 +5793,7 @@

GCC Code Coverage Report

# define ARCHITECTURE_ID
717 @@ -5117,6 +5801,7 @@

GCC Code Coverage Report

#endif
718 @@ -5124,13 +5809,15 @@

GCC Code Coverage Report

719 /* Convert integer to decimal digit literals. *//* Convert integer to decimal digit literals. */
720 @@ -5138,6 +5825,7 @@

GCC Code Coverage Report

#define DEC(n) \
721 @@ -5145,6 +5833,7 @@

GCC Code Coverage Report

('0' + (((n) / 10000000)%10)), \
722 @@ -5152,6 +5841,7 @@

GCC Code Coverage Report

('0' + (((n) / 1000000)%10)), \
723 @@ -5159,6 +5849,7 @@

GCC Code Coverage Report

('0' + (((n) / 100000)%10)), \
724 @@ -5166,6 +5857,7 @@

GCC Code Coverage Report

('0' + (((n) / 10000)%10)), \
725 @@ -5173,6 +5865,7 @@

GCC Code Coverage Report

('0' + (((n) / 1000)%10)), \
726 @@ -5180,6 +5873,7 @@

GCC Code Coverage Report

('0' + (((n) / 100)%10)), \
727 @@ -5187,6 +5881,7 @@

GCC Code Coverage Report

('0' + (((n) / 10)%10)), \
728 @@ -5194,6 +5889,7 @@

GCC Code Coverage Report

('0' + ((n) % 10))
729 @@ -5201,13 +5897,15 @@

GCC Code Coverage Report

730 /* Convert integer to hex digit literals. *//* Convert integer to hex digit literals. */
731 @@ -5215,6 +5913,7 @@

GCC Code Coverage Report

#define HEX(n) \
732 @@ -5222,6 +5921,7 @@

GCC Code Coverage Report

('0' + ((n)>>28 & 0xF)), \
733 @@ -5229,6 +5929,7 @@

GCC Code Coverage Report

('0' + ((n)>>24 & 0xF)), \
734 @@ -5236,6 +5937,7 @@

GCC Code Coverage Report

('0' + ((n)>>20 & 0xF)), \
735 @@ -5243,6 +5945,7 @@

GCC Code Coverage Report

('0' + ((n)>>16 & 0xF)), \
736 @@ -5250,6 +5953,7 @@

GCC Code Coverage Report

('0' + ((n)>>12 & 0xF)), \
737 @@ -5257,6 +5961,7 @@

GCC Code Coverage Report

('0' + ((n)>>8 & 0xF)), \
738 @@ -5264,6 +5969,7 @@

GCC Code Coverage Report

('0' + ((n)>>4 & 0xF)), \
739 @@ -5271,6 +5977,7 @@

GCC Code Coverage Report

('0' + ((n) & 0xF))
740 @@ -5278,13 +5985,15 @@

GCC Code Coverage Report

741 /* Construct a string literal encoding the version number. *//* Construct a string literal encoding the version number. */
742 @@ -5292,13 +6001,15 @@

GCC Code Coverage Report

#ifdef COMPILER_VERSION
743 char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
744 @@ -5306,13 +6017,15 @@

GCC Code Coverage Report

745 /* Construct a string literal encoding the version number components. *//* Construct a string literal encoding the version number components. */
746 @@ -5320,34 +6033,39 @@

GCC Code Coverage Report

#elif defined(COMPILER_VERSION_MAJOR)
747 char const info_version[] = {char const info_version[] = {
748 'I', 'N', 'F', 'O', ':', 'I', 'N', 'F', 'O', ':',
749 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
750 COMPILER_VERSION_MAJOR, COMPILER_VERSION_MAJOR,
751 @@ -5355,13 +6073,15 @@

GCC Code Coverage Report

# ifdef COMPILER_VERSION_MINOR
752 '.', COMPILER_VERSION_MINOR, '.', COMPILER_VERSION_MINOR,
753 @@ -5369,13 +6089,15 @@

GCC Code Coverage Report

# ifdef COMPILER_VERSION_PATCH
754 '.', COMPILER_VERSION_PATCH, '.', COMPILER_VERSION_PATCH,
755 @@ -5383,13 +6105,15 @@

GCC Code Coverage Report

# ifdef COMPILER_VERSION_TWEAK
756 '.', COMPILER_VERSION_TWEAK, '.', COMPILER_VERSION_TWEAK,
757 @@ -5397,6 +6121,7 @@

GCC Code Coverage Report

# endif
758 @@ -5404,6 +6129,7 @@

GCC Code Coverage Report

# endif
759 @@ -5411,13 +6137,15 @@

GCC Code Coverage Report

# endif
760 ']','\0'}; ']','\0'};
761 @@ -5425,6 +6153,7 @@

GCC Code Coverage Report

#endif
762 @@ -5432,13 +6161,15 @@

GCC Code Coverage Report

763 /* Construct a string literal encoding the internal version number. *//* Construct a string literal encoding the internal version number. */
764 @@ -5446,41 +6177,47 @@

GCC Code Coverage Report

#ifdef COMPILER_VERSION_INTERNAL
765 char const info_version_internal[] = {char const info_version_internal[] = {
766 'I', 'N', 'F', 'O', ':', 'I', 'N', 'F', 'O', ':',
767 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
768 'i','n','t','e','r','n','a','l','[', 'i','n','t','e','r','n','a','l','[',
769 COMPILER_VERSION_INTERNAL,']','\0'}; COMPILER_VERSION_INTERNAL,']','\0'};
770 @@ -5488,13 +6225,15 @@

GCC Code Coverage Report

#elif defined(COMPILER_VERSION_INTERNAL_STR)
771 char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
772 @@ -5502,6 +6241,7 @@

GCC Code Coverage Report

#endif
773 @@ -5509,13 +6249,15 @@

GCC Code Coverage Report

774 /* Construct a string literal encoding the version number components. *//* Construct a string literal encoding the version number components. */
775 @@ -5523,34 +6265,39 @@

GCC Code Coverage Report

#ifdef SIMULATE_VERSION_MAJOR
776 char const info_simulate_version[] = {char const info_simulate_version[] = {
777 'I', 'N', 'F', 'O', ':', 'I', 'N', 'F', 'O', ':',
778 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
779 SIMULATE_VERSION_MAJOR, SIMULATE_VERSION_MAJOR,
780 @@ -5558,13 +6305,15 @@

GCC Code Coverage Report

# ifdef SIMULATE_VERSION_MINOR
781 '.', SIMULATE_VERSION_MINOR, '.', SIMULATE_VERSION_MINOR,
782 @@ -5572,13 +6321,15 @@

GCC Code Coverage Report

# ifdef SIMULATE_VERSION_PATCH
783 '.', SIMULATE_VERSION_PATCH, '.', SIMULATE_VERSION_PATCH,
784 @@ -5586,13 +6337,15 @@

GCC Code Coverage Report

# ifdef SIMULATE_VERSION_TWEAK
785 '.', SIMULATE_VERSION_TWEAK, '.', SIMULATE_VERSION_TWEAK,
786 @@ -5600,6 +6353,7 @@

GCC Code Coverage Report

# endif
787 @@ -5607,6 +6361,7 @@

GCC Code Coverage Report

# endif
788 @@ -5614,13 +6369,15 @@

GCC Code Coverage Report

# endif
789 ']','\0'}; ']','\0'};
790 @@ -5628,6 +6385,7 @@

GCC Code Coverage Report

#endif
791 @@ -5635,6 +6393,7 @@

GCC Code Coverage Report

792 @@ -5642,6 +6401,7 @@

GCC Code Coverage Report

/* Construct the string literal in pieces to prevent the source from
793 @@ -5649,6 +6409,7 @@

GCC Code Coverage Report

getting matched. Store it in a pointer rather than an array
794 @@ -5656,27 +6417,31 @@

GCC Code Coverage Report

because some compilers will just produce instructions to fill the
795 array rather than assigning a pointer to a static array. */ array rather than assigning a pointer to a static array. */
796 char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
797 char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
798 @@ -5684,6 +6449,7 @@

GCC Code Coverage Report

799 @@ -5691,6 +6457,7 @@

GCC Code Coverage Report

800 @@ -5698,6 +6465,7 @@

GCC Code Coverage Report

801 @@ -5705,6 +6473,7 @@

GCC Code Coverage Report

#if !defined(__STDC__) && !defined(__clang__)
802 @@ -5712,6 +6481,7 @@

GCC Code Coverage Report

# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__)
803 @@ -5719,6 +6489,7 @@

GCC Code Coverage Report

# define C_VERSION "90"
804 @@ -5726,6 +6497,7 @@

GCC Code Coverage Report

# else
805 @@ -5733,6 +6505,7 @@

GCC Code Coverage Report

# define C_VERSION
806 @@ -5740,6 +6513,7 @@

GCC Code Coverage Report

# endif
807 @@ -5747,6 +6521,7 @@

GCC Code Coverage Report

#elif __STDC_VERSION__ > 201710L
808 @@ -5754,6 +6529,7 @@

GCC Code Coverage Report

# define C_VERSION "23"
809 @@ -5761,6 +6537,7 @@

GCC Code Coverage Report

#elif __STDC_VERSION__ >= 201710L
810 @@ -5768,6 +6545,7 @@

GCC Code Coverage Report

# define C_VERSION "17"
811 @@ -5775,6 +6553,7 @@

GCC Code Coverage Report

#elif __STDC_VERSION__ >= 201000L
812 @@ -5782,6 +6561,7 @@

GCC Code Coverage Report

# define C_VERSION "11"
813 @@ -5789,6 +6569,7 @@

GCC Code Coverage Report

#elif __STDC_VERSION__ >= 199901L
814 @@ -5796,6 +6577,7 @@

GCC Code Coverage Report

# define C_VERSION "99"
815 @@ -5803,6 +6585,7 @@

GCC Code Coverage Report

#else
816 @@ -5810,6 +6593,7 @@

GCC Code Coverage Report

# define C_VERSION "90"
817 @@ -5817,20 +6601,23 @@

GCC Code Coverage Report

#endif
818 const char* info_language_standard_default =const char* info_language_standard_default =
819 "INFO" ":" "standard_default[" C_VERSION "]"; "INFO" ":" "standard_default[" C_VERSION "]";
820 @@ -5838,13 +6625,15 @@

GCC Code Coverage Report

821 const char* info_language_extensions_default = "INFO" ":" "extensions_default["const char* info_language_extensions_default = "INFO" ":" "extensions_default["
822 @@ -5852,6 +6641,7 @@

GCC Code Coverage Report

#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
823 @@ -5859,6 +6649,7 @@

GCC Code Coverage Report

defined(__TI_COMPILER_VERSION__)) && \
824 @@ -5866,13 +6657,15 @@

GCC Code Coverage Report

!defined(__STRICT_ANSI__)
825 "ON" "ON"
826 @@ -5880,13 +6673,15 @@

GCC Code Coverage Report

#else
827 "OFF" "OFF"
828 @@ -5894,13 +6689,15 @@

GCC Code Coverage Report

#endif
829 "]";"]";
830 @@ -5908,13 +6705,15 @@

GCC Code Coverage Report

831 /*--------------------------------------------------------------------------*//*--------------------------------------------------------------------------*/
832 @@ -5922,6 +6721,7 @@

GCC Code Coverage Report

833 @@ -5929,13 +6729,15 @@

GCC Code Coverage Report

#ifdef ID_VOID_MAIN
834 void main() {}void main() {}
835 @@ -5943,6 +6745,7 @@

GCC Code Coverage Report

#else
836 @@ -5950,13 +6753,15 @@

GCC Code Coverage Report

# if defined(__CLASSIC_C__)
837 int main(argc, argv) int argc; char *argv[];int main(argc, argv) int argc; char *argv[];
838 @@ -5964,13 +6769,15 @@

GCC Code Coverage Report

# else
839 int main(int argc, char* argv[])int main(int argc, char* argv[])
840 @@ -5978,41 +6785,47 @@

GCC Code Coverage Report

# endif
841 {{
842 int require = 0; int require = 0;
843 require += info_compiler[argc]; require += info_compiler[argc];
844 require += info_platform[argc]; require += info_platform[argc];
845 require += info_arch[argc]; require += info_arch[argc];
846 @@ -6020,13 +6833,15 @@

GCC Code Coverage Report

#ifdef COMPILER_VERSION_MAJOR
847 require += info_version[argc]; require += info_version[argc];
848 @@ -6034,6 +6849,7 @@

GCC Code Coverage Report

#endif
849 @@ -6041,13 +6857,15 @@

GCC Code Coverage Report

#ifdef COMPILER_VERSION_INTERNAL
850 require += info_version_internal[argc]; require += info_version_internal[argc];
851 @@ -6055,6 +6873,7 @@

GCC Code Coverage Report

#endif
852 @@ -6062,13 +6881,15 @@

GCC Code Coverage Report

#ifdef SIMULATE_ID
853 require += info_simulate[argc]; require += info_simulate[argc];
854 @@ -6076,6 +6897,7 @@

GCC Code Coverage Report

#endif
855 @@ -6083,13 +6905,15 @@

GCC Code Coverage Report

#ifdef SIMULATE_VERSION_MAJOR
856 require += info_simulate_version[argc]; require += info_simulate_version[argc];
857 @@ -6097,6 +6921,7 @@

GCC Code Coverage Report

#endif
858 @@ -6104,13 +6929,15 @@

GCC Code Coverage Report

#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
859 require += info_cray[argc]; require += info_cray[argc];
860 @@ -6118,41 +6945,47 @@

GCC Code Coverage Report

#endif
861 require += info_language_standard_default[argc]; require += info_language_standard_default[argc];
862 require += info_language_extensions_default[argc]; require += info_language_extensions_default[argc];
863 (void)argv; (void)argv;
864 return require; return require;
865 }}
866 @@ -6160,6 +6993,7 @@

GCC Code Coverage Report

#endif
867 @@ -6167,13 +7001,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.array_deserializer.cpp.188ff15eb20092c1f63731cfbc97f82c.html b/covhtml-oasvalidator/index.array_deserializer.cpp.188ff15eb20092c1f63731cfbc97f82c.html index 639eb94..5ddb92d 100644 --- a/covhtml-oasvalidator/index.array_deserializer.cpp.188ff15eb20092c1f63731cfbc97f82c.html +++ b/covhtml-oasvalidator/index.array_deserializer.cpp.188ff15eb20092c1f63731cfbc97f82c.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,66 +40,22 @@

GCC Code Coverage Report

Lines: - 28 - 30 - 93.3% - - - Functions: - 2 - 2 - 100.0% + 31 + 32 + 96.9% Branches: - 16 21 - 76.2% + 29 + 72.4%
-
- -
-
- - +
-
@@ -109,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + + - - + + + - - + + + - - + + + - + + - + + - + + - + + - - + + + - - + + + + - - + + + - + + - - + + + + - - + + + + - - + + + - + + - + + - - + + + + - - + + + + - - + + + - - + + + - - + + + + - - + + + - - + + + - + + - + + + - - + + + - - + + + - + + + - - + + + - + + - + + + - - + + + - - + + + - + + + - + + - + + - + + + - - + + + + - - + + + - - + + + - - + + + - + + - + + + - - + + + - - + + + +
Exec Source
1 @@ -116,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -123,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -130,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -144,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -151,13 +113,15 @@

GCC Code Coverage Report

7 #include "deserializers/array_deserializer.hpp"#include "deserializers/array_deserializer.hpp"
8 @@ -165,69 +129,79 @@

GCC Code Coverage Report

9 1742ArrayDeserializer::ArrayDeserializer(const std::string& param_name, char start, bool skip_name, PrimitiveType items_type, char separator, bool has_running_name,871ArrayDeserializer::ArrayDeserializer(const std::string& param_name, char start, bool skip_name, PrimitiveType items_type, char separator, bool has_running_name,
10 bool has_20_separator)871 bool has_20_separator)
11 871 : BaseDeserializer(param_name, start, skip_name) : BaseDeserializer(param_name, start, skip_name)
12 871 , items_type_(items_type) , items_type_(items_type)
13 871 , separator_(separator) , separator_(separator)
14 871 , has_running_name_(has_running_name) , has_running_name_(has_running_name)
15 871 , has_20_separator_(has_20_separator) , has_20_separator_(has_20_separator)
16 2613{{
17 1742}871}
18 @@ -235,27 +209,31 @@

GCC Code Coverage Report

19 2697635std::string ArrayDeserializer::Deserialize(const char* beg, const char* const end)6653436std::string ArrayDeserializer::Deserialize(const char* beg, const char* const end)
20 {{
21 2697635 const char* cursor = beg;6653436 const char* cursor = beg;
22 @@ -263,13 +241,15 @@

GCC Code Coverage Report

23 2697635 CheckNSkipStart(cursor);6653436 CheckNSkipStart(cursor);
24 @@ -277,6 +257,7 @@

GCC Code Coverage Report

25 @@ -284,36 +265,40 @@

GCC Code Coverage Report

4/4
✓ Branch 0 taken 44 times.
-
✓ Branch 1 taken 2697591 times.
-
✓ Branch 2 taken 8 times.
-
✓ Branch 3 taken 36 times.
+
✓ Branch 1 taken 6653392 times.
+
✓ Branch 2 taken 36 times.
+
✓ Branch 3 taken 8 times.
2697635 if (skip_name_ && !has_running_name_) {6653436 if (skip_name_ && !has_running_name_) {
26 36 CheckNSkipName(cursor, end); CheckNSkipName(cursor, end);
27 36 CheckNSkipChar(cursor, end, '='); CheckNSkipChar(cursor, end, '=');
28 36 } }
29 @@ -321,13 +306,15 @@

GCC Code Coverage Report

30 2697635 CheckData(cursor, end);6653436 CheckData(cursor, end);
31 @@ -335,41 +322,52 @@

GCC Code Coverage Report

32 +
+ 1/2 +
+
✓ Branch 1 taken 6653436 times.
+
✗ Branch 2 not taken.
+
+
2697635 std::string ret;6653436 std::string ret;
33
1/2
-
✓ Branch 0 taken 2697635 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 6653436 times.
+
✗ Branch 2 not taken.
2697635 ret.reserve(static_cast<size_t>(end - beg + 64));6653436 ret.reserve(static_cast<size_t>(end - beg + 64));
34
1/2
-
✓ Branch 0 taken 2697635 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 6653436 times.
+
✗ Branch 2 not taken.
2697635 ret.push_back('[');6653436 ret.push_back('[');
35 @@ -377,6 +375,7 @@

GCC Code Coverage Report

36 @@ -384,37 +383,48 @@

GCC Code Coverage Report

4/5
✓ Branch 0 taken 31 times.
-
✓ Branch 1 taken 2318544 times.
+
✓ Branch 1 taken 5247681 times.
✓ Branch 2 taken 21 times.
-
✓ Branch 3 taken 379039 times.
+
✓ Branch 3 taken 1405703 times.
✗ Branch 4 not taken.
2697635 switch (items_type_) {6653436 switch (items_type_) {
37 case PrimitiveType::BOOLEAN:31 case PrimitiveType::BOOLEAN:
38 +
+ 2/2 +
+
✓ Branch 1 taken 26 times.
+
✓ Branch 2 taken 5 times.
+
+
31 DeserializeBooleanArray(cursor, end, ret); DeserializeBooleanArray(cursor, end, ret);
39 break; break;
40 @@ -422,27 +432,38 @@

GCC Code Coverage Report

41 case PrimitiveType::INTEGER:5247681 case PrimitiveType::INTEGER:
42 +
+ 2/2 +
+
✓ Branch 1 taken 3746574 times.
+
✓ Branch 2 taken 1501107 times.
+
+
2318544 DeserializeIntegerArray(cursor, end, ret);5247681 DeserializeIntegerArray(cursor, end, ret);
43 break; break;
44 @@ -450,27 +471,38 @@

GCC Code Coverage Report

45 case PrimitiveType::NUMBER:21 case PrimitiveType::NUMBER:
46 +
+ 2/2 +
+
✓ Branch 1 taken 16 times.
+
✓ Branch 2 taken 5 times.
+
+
21 DeserializeNumberArray(cursor, end, ret); DeserializeNumberArray(cursor, end, ret);
47 break; break;
48 @@ -478,27 +510,38 @@

GCC Code Coverage Report

49 case PrimitiveType::STRING:1405703 case PrimitiveType::STRING:
50 +
+ 2/2 +
+
✓ Branch 1 taken 1405702 times.
+
✓ Branch 2 taken 1 times.
+
+
379039 DeserializeStringArray(cursor, end, ret);1405703 DeserializeStringArray(cursor, end, ret);
51 break; break;
52 @@ -506,27 +549,31 @@

GCC Code Coverage Report

53 default: default:
54 break; break;
55 } }
56 @@ -534,13 +581,22 @@

GCC Code Coverage Report

57 +
+ 1/2 +
+
✓ Branch 1 taken 5152318 times.
+
✗ Branch 2 not taken.
+
+
CheckEnd(cursor, end);5152318 CheckEnd(cursor, end);
58 @@ -548,48 +604,54 @@

GCC Code Coverage Report

59
1/2
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 1981882 times.
+
✓ Branch 0 taken 5152318 times.
+
✗ Branch 1 not taken.
1981882 if (',' == ret.back()) {5152318 if (',' == ret.back()) {
60 1981882 ret.back() = ']';5152318 ret.back() = ']';
61 1981882 } else { } else {
62 ret.push_back(']'); ret.push_back(']');
63 } }
64 @@ -597,27 +659,23 @@

GCC Code Coverage Report

65 return ret;5152318 return ret;
66 -
- 1/2 -
-
✓ Branch 0 taken 5945646 times.
-
✗ Branch 1 not taken.
-
-
14588927}1501118}
67 @@ -625,13 +683,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.array_deserializer.cpp.af57d12a11d90ea410353ab1ffb5cbd8.html b/covhtml-oasvalidator/index.array_deserializer.cpp.af57d12a11d90ea410353ab1ffb5cbd8.html index 38216c1..8012b0b 100644 --- a/covhtml-oasvalidator/index.array_deserializer.cpp.af57d12a11d90ea410353ab1ffb5cbd8.html +++ b/covhtml-oasvalidator/index.array_deserializer.cpp.af57d12a11d90ea410353ab1ffb5cbd8.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -45,139 +44,18 @@

GCC Code Coverage Report

25 100.0% - - Functions: - 9 - 9 - 100.0% - Branches: - 24 - 58 - 41.4% + 32 + 107 + 29.9%
-
- -
-
- - +
-
@@ -186,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - + + - + + - + + - + + - - + + + + - + + - + + - + + - + + - + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + +
Exec Source
1 @@ -193,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -200,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -207,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -221,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -228,20 +113,23 @@

GCC Code Coverage Report

7 #include "deserializers/array_deserializer.hpp"#include "deserializers/array_deserializer.hpp"
8 #include <gtest/gtest.h>#include <gtest/gtest.h>
9 @@ -249,90 +137,103 @@

GCC Code Coverage Report

10 enum : size_tenum : size_t
11 {{
12 INPUT, INPUT,
13 START_CHAR, START_CHAR,
14 SKIP_NAME, SKIP_NAME,
15 ITEMS_TYPE, ITEMS_TYPE,
16 SEPARATOR, SEPARATOR,
17 HAS_RUNNING_NAME, HAS_RUNNING_NAME,
18 HAS_20_SEPARATOR, HAS_20_SEPARATOR,
19 EXPECTED, EXPECTED,
20 SHOULD_THROW SHOULD_THROW
21 };};
22 @@ -340,125 +241,155 @@

GCC Code Coverage Report

23 class ArrayDeserializerTest: public ::testing::TestWithParam<std::tuple<std::string, char, bool, PrimitiveType, char, bool, bool, std::string, bool>>35class ArrayDeserializerTest: public ::testing::TestWithParam<std::tuple<std::string, char, bool, PrimitiveType, char, bool, bool, std::string, bool>>
24 {{
25 protected:protected:
26 35 void SetUp() override void SetUp() override
27 { {
28 35 auto params = GetParam(); auto params = GetParam();
29
1/2
-
✓ Branch 0 taken 35 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 35 times.
+
✗ Branch 2 not taken.
35 std::string input = std::get<INPUT>(params); std::string input = std::get<INPUT>(params);
30 +
+ 1/2 +
+
✓ Branch 1 taken 35 times.
+
✗ Branch 2 not taken.
+
+
35 char start_char = std::get<START_CHAR>(params); char start_char = std::get<START_CHAR>(params);
31 35 bool skip_name = std::get<SKIP_NAME>(params); bool skip_name = std::get<SKIP_NAME>(params);
32 35 PrimitiveType items_type = std::get<ITEMS_TYPE>(params); PrimitiveType items_type = std::get<ITEMS_TYPE>(params);
33 35 char separator = std::get<SEPARATOR>(params); char separator = std::get<SEPARATOR>(params);
34 35 bool has_running_name = std::get<HAS_RUNNING_NAME>(params); bool has_running_name = std::get<HAS_RUNNING_NAME>(params);
35 35 bool has_20_separator = std::get<HAS_20_SEPARATOR>(params); bool has_20_separator = std::get<HAS_20_SEPARATOR>(params);
36
1/2
-
✓ Branch 0 taken 35 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 35 times.
+
✗ Branch 2 not taken.
35 std::string expected = std::get<EXPECTED>(params); std::string expected = std::get<EXPECTED>(params);
37 +
+ 1/2 +
+
✓ Branch 1 taken 35 times.
+
✗ Branch 2 not taken.
+
+
35 bool should_throw = std::get<SHOULD_THROW>(params); bool should_throw = std::get<SHOULD_THROW>(params);
38 @@ -466,62 +397,86 @@

GCC Code Coverage Report

39
- 1/2 + 3/6
-
✗ Branch 0 not taken.
✓ Branch 1 taken 35 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 35 times.
+
✗ Branch 5 not taken.
+
✓ Branch 6 taken 35 times.
35 deserializer_ = std::make_unique<ArrayDeserializer>("test", start_char, skip_name, items_type, separator, has_running_name, has_20_separator); deserializer_ = std::make_unique<ArrayDeserializer>("test", start_char, skip_name, items_type, separator, has_running_name, has_20_separator);
40
1/2
-
✓ Branch 0 taken 35 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 35 times.
+
✗ Branch 2 not taken.
35 input_ = input; input_ = input;
41
1/2
-
✓ Branch 0 taken 35 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 35 times.
+
✗ Branch 2 not taken.
35 expected_ = expected; expected_ = expected;
42 +
+ 2/2 +
+
✓ Branch 0 taken 6 times.
+
✓ Branch 1 taken 29 times.
+
+
35 expect_throw_ = should_throw; expect_throw_ = should_throw;
43 +
+ 2/2 +
+
✓ Branch 0 taken 12 times.
+
✓ Branch 1 taken 23 times.
+
+
35 }47 }
44 @@ -529,70 +484,90 @@

GCC Code Coverage Report

45 std::unique_ptr<ArrayDeserializer> deserializer_; std::unique_ptr<ArrayDeserializer> deserializer_;
46 std::string input_; std::string input_;
47 std::string expected_; std::string expected_;
48 bool expect_throw_; bool expect_throw_;
49 };};
50
- 5/10 + 8/22
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 35 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
+
✗ Branch 11 not taken.
+
✓ Branch 13 taken 1 times.
+
✗ Branch 14 not taken.
+
✓ Branch 15 taken 1 times.
+
✗ Branch 16 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 18 not taken.
+
✓ Branch 19 taken 1 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
107TEST_P(ArrayDeserializerTest, Deserialize)119TEST_P(ArrayDeserializerTest, Deserialize)
51 {{
52 @@ -604,89 +579,127 @@

GCC Code Coverage Report

35 if (expect_throw_) {70 if (expect_throw_) {
53
- 6/16 + 5/41
-
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
-
✓ Branch 2 taken 4 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 4 times.
-
✗ Branch 5 not taken.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 4 times.
+
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 4 times.
-
✓ Branch 8 taken 4 times.
✗ Branch 9 not taken.
-
✓ Branch 10 taken 4 times.
-
✗ Branch 11 not taken.
+
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✓ Branch 23 taken 4 times.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✓ Branch 28 taken 4 times.
+
✗ Branch 29 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 41 not taken.
+
✗ Branch 44 not taken.
+
✗ Branch 45 not taken.
+
✗ Branch 47 not taken.
+
✗ Branch 48 not taken.
+
✗ Branch 52 not taken.
+
✗ Branch 53 not taken.
+
✗ Branch 55 not taken.
+
✗ Branch 56 not taken.
+
✗ Branch 60 not taken.
+
✗ Branch 61 not taken.
+
✗ Branch 62 not taken.
+
✗ Branch 63 not taken.
8 EXPECT_THROW({ deserializer_->Deserialize(input_.c_str(), input_.c_str() + input_.size()); }, DeserializationException);16 EXPECT_THROW({ deserializer_->Deserialize(input_.c_str(), input_.c_str() + input_.size()); }, DeserializationException);
54 4 } else { } else {
55 31 std::string result = deserializer_->Deserialize(input_.c_str(), input_.c_str() + input_.size());62 std::string result = deserializer_->Deserialize(input_.c_str(), input_.c_str() + input_.size());
56
- 2/12 + 3/18
-
✓ Branch 0 taken 31 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 31 times.
+
✓ Branch 1 taken 31 times.
+
✗ Branch 2 not taken.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
+
✓ Branch 4 taken 31 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✓ Branch 17 taken 31 times.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
31 EXPECT_EQ(result, expected_);124 EXPECT_EQ(result, expected_);
57 31 }62 }
58 39}70}
59 @@ -694,131 +707,142 @@

GCC Code Coverage Report

60
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
-
✓ Branch 7 taken 1 times.
+
✓ Branch 2 taken 35 times.
37INSTANTIATE_TEST_CASE_P(72INSTANTIATE_TEST_CASE_P(
61 ArrayDeserializerTests, ArrayDeserializerTest, ArrayDeserializerTests, ArrayDeserializerTest,
62 ::testing::Values(std::make_tuple("true,false", '\0', false, PrimitiveType::BOOLEAN, ',', false, false, "[true,false]", false), ::testing::Values(std::make_tuple("true,false", '\0', false, PrimitiveType::BOOLEAN, ',', false, false, "[true,false]", false),
63 std::make_tuple("1,2,3", '\0', false, PrimitiveType::INTEGER, ',', false, false, "[1,2,3]", false), std::make_tuple("1,2,3", '\0', false, PrimitiveType::INTEGER, ',', false, false, "[1,2,3]", false),
64 std::make_tuple("1.1,2.2,3.3", '\0', false, PrimitiveType::NUMBER, ',', false, false, "[1.1,2.2,3.3]", false), std::make_tuple("1.1,2.2,3.3", '\0', false, PrimitiveType::NUMBER, ',', false, false, "[1.1,2.2,3.3]", false),
65 std::make_tuple("abc,def,ghi", '\0', false, PrimitiveType::STRING, ',', false, false, "[\"abc\",\"def\",\"ghi\"]", false), std::make_tuple("abc,def,ghi", '\0', false, PrimitiveType::STRING, ',', false, false, "[\"abc\",\"def\",\"ghi\"]", false),
66 std::make_tuple("test=true,false", '\0', true, PrimitiveType::BOOLEAN, ',', false, false, "[true,false]", false), std::make_tuple("test=true,false", '\0', true, PrimitiveType::BOOLEAN, ',', false, false, "[true,false]", false),
67 std::make_tuple("test=1,2,3", '\0', true, PrimitiveType::INTEGER, ',', false, false, "[1,2,3]", false), std::make_tuple("test=1,2,3", '\0', true, PrimitiveType::INTEGER, ',', false, false, "[1,2,3]", false),
68 std::make_tuple("test=1.1,2.2,3.3", '\0', true, PrimitiveType::NUMBER, ',', false, false, "[1.1,2.2,3.3]", false), std::make_tuple("test=1.1,2.2,3.3", '\0', true, PrimitiveType::NUMBER, ',', false, false, "[1.1,2.2,3.3]", false),
69 std::make_tuple("test=abc,def,ghi", '\0', true, PrimitiveType::STRING, ',', false, false, "[\"abc\",\"def\",\"ghi\"]", false), std::make_tuple("test=abc,def,ghi", '\0', true, PrimitiveType::STRING, ',', false, false, "[\"abc\",\"def\",\"ghi\"]", false),
70 std::make_tuple(".true,false", '.', false, PrimitiveType::BOOLEAN, ',', false, false, "[true,false]", false), std::make_tuple(".true,false", '.', false, PrimitiveType::BOOLEAN, ',', false, false, "[true,false]", false),
71 std::make_tuple(".1,2,3", '.', false, PrimitiveType::INTEGER, ',', false, false, "[1,2,3]", false), std::make_tuple(".1,2,3", '.', false, PrimitiveType::INTEGER, ',', false, false, "[1,2,3]", false),
72 std::make_tuple(".1.1,2.2,3.3", '.', false, PrimitiveType::NUMBER, ',', false, false, "[1.1,2.2,3.3]", false), std::make_tuple(".1.1,2.2,3.3", '.', false, PrimitiveType::NUMBER, ',', false, false, "[1.1,2.2,3.3]", false),
73 std::make_tuple(".abc,def,ghi", '.', false, PrimitiveType::STRING, ',', false, false, "[\"abc\",\"def\",\"ghi\"]", false), std::make_tuple(".abc,def,ghi", '.', false, PrimitiveType::STRING, ',', false, false, "[\"abc\",\"def\",\"ghi\"]", false),
74 std::make_tuple(".true.false", '.', false, PrimitiveType::BOOLEAN, '.', false, false, "[true,false]", false), std::make_tuple(".true.false", '.', false, PrimitiveType::BOOLEAN, '.', false, false, "[true,false]", false),
75 std::make_tuple(".1.2.3", '.', false, PrimitiveType::INTEGER, '.', false, false, "[1,2,3]", false), std::make_tuple(".1.2.3", '.', false, PrimitiveType::INTEGER, '.', false, false, "[1,2,3]", false),
76 @@ -826,153 +850,175 @@

GCC Code Coverage Report

// std::make_tuple(".1.1.2.2.3.3", '.', false, PrimitiveType::NUMBER, '.', false, false, "[1.1,2.2,3.3]", false), // NOT a valid serialization
77 std::make_tuple(".abc.def.ghi", '.', false, PrimitiveType::STRING, '.', false, false, "[\"abc\",\"def\",\"ghi\"]", false), std::make_tuple(".abc.def.ghi", '.', false, PrimitiveType::STRING, '.', false, false, "[\"abc\",\"def\",\"ghi\"]", false),
78 std::make_tuple(";test=true,false", ';', true, PrimitiveType::BOOLEAN, ',', false, false, "[true,false]", false), std::make_tuple(";test=true,false", ';', true, PrimitiveType::BOOLEAN, ',', false, false, "[true,false]", false),
79 std::make_tuple(";test=1,2,3", ';', true, PrimitiveType::INTEGER, ',', false, false, "[1,2,3]", false), std::make_tuple(";test=1,2,3", ';', true, PrimitiveType::INTEGER, ',', false, false, "[1,2,3]", false),
80 std::make_tuple(";test=1.1,2.2,3.3", ';', true, PrimitiveType::NUMBER, ',', false, false, "[1.1,2.2,3.3]", false), std::make_tuple(";test=1.1,2.2,3.3", ';', true, PrimitiveType::NUMBER, ',', false, false, "[1.1,2.2,3.3]", false),
81 std::make_tuple(";test=abc,def,ghi", ';', true, PrimitiveType::STRING, ',', false, false, "[\"abc\",\"def\",\"ghi\"]", false), std::make_tuple(";test=abc,def,ghi", ';', true, PrimitiveType::STRING, ',', false, false, "[\"abc\",\"def\",\"ghi\"]", false),
82 std::make_tuple(";test=true;test=false", ';', true, PrimitiveType::BOOLEAN, ';', true, false, "[true,false]", false), std::make_tuple(";test=true;test=false", ';', true, PrimitiveType::BOOLEAN, ';', true, false, "[true,false]", false),
83 std::make_tuple(";test=1;test=2", ';', true, PrimitiveType::INTEGER, ';', true, false, "[1,2]", false), std::make_tuple(";test=1;test=2", ';', true, PrimitiveType::INTEGER, ';', true, false, "[1,2]", false),
84 std::make_tuple(";test=1.1;test=2.2", ';', true, PrimitiveType::NUMBER, ';', true, false, "[1.1,2.2]", false), std::make_tuple(";test=1.1;test=2.2", ';', true, PrimitiveType::NUMBER, ';', true, false, "[1.1,2.2]", false),
85 std::make_tuple(";test=abc;test=def", ';', true, PrimitiveType::STRING, ';', true, false, "[\"abc\",\"def\"]", false), std::make_tuple(";test=abc;test=def", ';', true, PrimitiveType::STRING, ';', true, false, "[\"abc\",\"def\"]", false),
86 std::make_tuple("?test=true&test=false", '?', true, PrimitiveType::BOOLEAN, '&', true, false, "[true,false]", false), std::make_tuple("?test=true&test=false", '?', true, PrimitiveType::BOOLEAN, '&', true, false, "[true,false]", false),
87 std::make_tuple("?test=1&test=2", '?', true, PrimitiveType::INTEGER, '&', true, false, "[1,2]", false), std::make_tuple("?test=1&test=2", '?', true, PrimitiveType::INTEGER, '&', true, false, "[1,2]", false),
88 std::make_tuple("?test=1.1&test=2.2", '?', true, PrimitiveType::NUMBER, '&', true, false, "[1.1,2.2]", false), std::make_tuple("?test=1.1&test=2.2", '?', true, PrimitiveType::NUMBER, '&', true, false, "[1.1,2.2]", false),
89 std::make_tuple("?test=abc&test=def", '?', true, PrimitiveType::STRING, '&', true, false, "[\"abc\",\"def\"]", false), std::make_tuple("?test=abc&test=def", '?', true, PrimitiveType::STRING, '&', true, false, "[\"abc\",\"def\"]", false),
90 std::make_tuple("?test=true%20false", '?', true, PrimitiveType::BOOLEAN, '%', false, true, "[true,false]", false), std::make_tuple("?test=true%20false", '?', true, PrimitiveType::BOOLEAN, '%', false, true, "[true,false]", false),
91 std::make_tuple("?test=1%202", '?', true, PrimitiveType::INTEGER, '%', false, true, "[1,2]", false), std::make_tuple("?test=1%202", '?', true, PrimitiveType::INTEGER, '%', false, true, "[1,2]", false),
92 std::make_tuple("?test=1.1%202.2", '?', true, PrimitiveType::NUMBER, '%', false, true, "[1.1,2.2]", false), std::make_tuple("?test=1.1%202.2", '?', true, PrimitiveType::NUMBER, '%', false, true, "[1.1,2.2]", false),
93 std::make_tuple("?test=abc%20def", '?', true, PrimitiveType::STRING, '%', false, true, "[\"abc\",\"def\"]", false), std::make_tuple("?test=abc%20def", '?', true, PrimitiveType::STRING, '%', false, true, "[\"abc\",\"def\"]", false),
94 std::make_tuple("true-false", '\0', false, PrimitiveType::BOOLEAN, ',', false, false, "[true,false]", true), std::make_tuple("true-false", '\0', false, PrimitiveType::BOOLEAN, ',', false, false, "[true,false]", true),
95 std::make_tuple("abc-true-5.3", '\0', false, PrimitiveType::INTEGER, ',', false, false, "[1,2,3]", true), std::make_tuple("abc-true-5.3", '\0', false, PrimitiveType::INTEGER, ',', false, false, "[1,2,3]", true),
96 std::make_tuple("abc-true-5.3", '\0', false, PrimitiveType::NUMBER, ',', false, false, "[1.1,2.2,3.3]", true), std::make_tuple("abc-true-5.3", '\0', false, PrimitiveType::NUMBER, ',', false, false, "[1.1,2.2,3.3]", true),
97 std::make_tuple("abc%true-5.3", '\0', false, PrimitiveType::STRING, ',', false, false, "[\"abc\",\"def\",\"ghi\"]", true))); std::make_tuple("abc%true-5.3", '\0', false, PrimitiveType::STRING, ',', false, false, "[\"abc\",\"def\",\"ghi\"]", true)));
98 @@ -980,13 +1026,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.array_deserializer.hpp.d821d73f0d767098b4df6f7604c8c3c5.html b/covhtml-oasvalidator/index.array_deserializer.hpp.d821d73f0d767098b4df6f7604c8c3c5.html index b2e7a3c..1339470 100644 --- a/covhtml-oasvalidator/index.array_deserializer.hpp.d821d73f0d767098b4df6f7604c8c3c5.html +++ b/covhtml-oasvalidator/index.array_deserializer.hpp.d821d73f0d767098b4df6f7604c8c3c5.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,121 +40,22 @@

GCC Code Coverage Report

Lines: - 59 - 60 - 98.3% - - - Functions: - 7 - 7 - 100.0% + 53 + 54 + 98.1% Branches: - 21 - 32 - 65.6% + 22 + 34 + 64.7%
-
- -
-
- - +
-
@@ -164,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + + + + - + + + - + + - + + - + + - + + + - + + - + + + - + + - + + - + + - + + + + - - + + + - + + - - + + + - + + - + + - - + + + + - - + + + - + + - - + + + - - + + + - + + - + + - + + - - + + + - - + + + - + + - - + + + - - + + + - - + + + + - + + - + + - - + + + - + + - + + - + + - + + - - + + + - + + - - + + + - - + + + - + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - - + + + + - + + - + + - - + + + - + + - + + - + + - + + - - + + + - + + - - + + + - - + + + - + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - - + + + - + + + + +
Exec Source
1 @@ -171,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -178,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -185,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -199,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -206,6 +113,7 @@

GCC Code Coverage Report

7 @@ -213,6 +121,7 @@

GCC Code Coverage Report

#ifndef ARRAY_DESERIALIZER_HPP
8 @@ -220,6 +129,7 @@

GCC Code Coverage Report

#define ARRAY_DESERIALIZER_HPP
9 @@ -227,13 +137,15 @@

GCC Code Coverage Report

10 #include "deserializers/base_deserializer.hpp"#include "deserializers/base_deserializer.hpp"
11 @@ -241,34 +153,39 @@

GCC Code Coverage Report

12 class ArrayDeserializer final: public BaseDeserializerclass ArrayDeserializer final: public BaseDeserializer
13 {{
14 public:public:
15 explicit ArrayDeserializer(const std::string& param_name, char start, bool skip_name, PrimitiveType items_type, char separator, bool has_running_name, bool has_20_separator); explicit ArrayDeserializer(const std::string& param_name, char start, bool skip_name, PrimitiveType items_type, char separator, bool has_running_name, bool has_20_separator);
16 @@ -276,20 +193,30 @@

GCC Code Coverage Report

17 std::string Deserialize(const char* beg, const char* const end) override; std::string Deserialize(const char* beg, const char* const end) override;
18 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 35 times.
+
+
70 ~ArrayDeserializer() override = default; ~ArrayDeserializer() override = default;
19 @@ -297,34 +224,39 @@

GCC Code Coverage Report

20 private:private:
21 const PrimitiveType items_type_; const PrimitiveType items_type_;
22 const char separator_; const char separator_;
23 const bool has_running_name_; const bool has_running_name_;
24 @@ -332,6 +264,7 @@

GCC Code Coverage Report

const bool has_20_separator_; // style=spaceDelimited, explode=true separator is %20
25 @@ -339,55 +272,62 @@

GCC Code Coverage Report

26 6282304 inline void CheckElementData(const char*& cursor, const char* const end) const15552313 inline void CheckElementData(const char*& cursor, const char* const end) const
27 { {
28
1/2
-
✓ Branch 0 taken 6282304 times.
-
✗ Branch 1 not taken.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 15552313 times.
6282304 if (cursor >= end) {15552313 if (cursor >= end) {
29 throw DeserializationException("Data for item of parameter '" + param_name_ + "' is missing"); throw DeserializationException("Data for item of parameter '" + param_name_ + "' is missing");
30 } }
31 6282304 }15552313 }
32 @@ -395,34 +335,38 @@

GCC Code Coverage Report

33 3963811 inline void CheckSeparator(const char*& cursor, const char* const end) const10304683 inline void CheckSeparator(const char*& cursor, const char* const end) const
34 { {
35
2/2
-
✓ Branch 0 taken 1981882 times.
-
✓ Branch 1 taken 1981929 times.
+
✓ Branch 0 taken 5152365 times.
+
✓ Branch 1 taken 5152318 times.
3963811 if (cursor < end) {10304683 if (cursor < end) {
36 @@ -430,76 +374,86 @@

GCC Code Coverage Report

2/2
✓ Branch 0 taken 15 times.
-
✓ Branch 1 taken 1981914 times.
+
✓ Branch 1 taken 5152350 times.
1981929 if (has_20_separator_) {5152365 if (has_20_separator_) {
37 15 CheckNSkipChar(cursor, end, '%'); CheckNSkipChar(cursor, end, '%');
38 15 CheckNSkipChar(cursor, end, '2'); CheckNSkipChar(cursor, end, '2');
39 15 CheckNSkipChar(cursor, end, '0'); CheckNSkipChar(cursor, end, '0');
40 15 } else { } else {
41 1981914 CheckNSkipChar(cursor, end, separator_);5152350 CheckNSkipChar(cursor, end, separator_);
42 } }
43 1981929 CheckElementData(cursor, end);5152359 CheckElementData(cursor, end);
44 1981929 } }
45 3963811 }10304677 }
46 @@ -507,20 +461,23 @@

GCC Code Coverage Report

47 31 inline void DeserializeBooleanArray(const char*& cursor, const char* const end, std::string& ret) const inline void DeserializeBooleanArray(const char*& cursor, const char* const end, std::string& ret) const
48 { {
49 @@ -528,90 +485,101 @@

GCC Code Coverage Report

2/2
✓ Branch 0 taken 63 times.
-
✓ Branch 1 taken 31 times.
+
✓ Branch 1 taken 26 times.
94 while (cursor < end) {89 while (cursor < end) {
50
2/2
-
✓ Branch 0 taken 46 times.
-
✓ Branch 1 taken 17 times.
+
✓ Branch 0 taken 17 times.
+
✓ Branch 1 taken 46 times.
63 if (has_running_name_) { if (has_running_name_) {
51 17 CheckNSkipName(cursor, end); CheckNSkipName(cursor, end);
52 17 CheckNSkipChar(cursor, end, '='); CheckNSkipChar(cursor, end, '=');
53 17 CheckElementData(cursor, end); CheckElementData(cursor, end);
54 17 } }
55 63 DeserializeBoolean(cursor, end, ret); DeserializeBoolean(cursor, end, ret);
56 63 CheckSeparator(cursor, end);59 CheckSeparator(cursor, end);
57 63 ret.push_back(',');58 ret.push_back(',');
58 } }
59 31 }26 }
60 @@ -619,111 +587,125 @@

GCC Code Coverage Report

61 2318544 inline void DeserializeIntegerArray(const char*& cursor, const char* const end, std::string& ret) const5247681 inline void DeserializeIntegerArray(const char*& cursor, const char* const end, std::string& ret) const
62 { {
63
2/2
-
✓ Branch 0 taken 3921357 times.
-
✓ Branch 1 taken 2318544 times.
+
✓ Branch 0 taken 8994266 times.
+
✓ Branch 1 taken 3746574 times.
6239901 while (cursor < end) {12740840 while (cursor < end) {
64
2/2
-
✓ Branch 0 taken 42 times.
-
✓ Branch 1 taken 3921315 times.
+
✓ Branch 0 taken 8994224 times.
+
✓ Branch 1 taken 42 times.
3921357 if (has_running_name_) {8994266 if (has_running_name_) {
65 3921315 CheckNSkipName(cursor, end);8994224 CheckNSkipName(cursor, end);
66 3921315 CheckNSkipChar(cursor, end, '=');8994224 CheckNSkipChar(cursor, end, '=');
67 3921315 CheckElementData(cursor, end);8994224 CheckElementData(cursor, end);
68 3921315 } }
69 3921357 DeserializeInteger(cursor, end, ret);8994266 DeserializeInteger(cursor, end, ret);
70 3921357 CheckSeparator(cursor, end);7493164 CheckSeparator(cursor, end);
71 3921357 ret.push_back(',');7493159 ret.push_back(',');
72 } }
73 2318544 }3746574 }
74 @@ -731,20 +713,23 @@

GCC Code Coverage Report

75 21 inline void DeserializeNumberArray(const char*& cursor, const char* const end, std::string& ret) const inline void DeserializeNumberArray(const char*& cursor, const char* const end, std::string& ret) const
76 { {
77 @@ -752,90 +737,101 @@

GCC Code Coverage Report

2/2
✓ Branch 0 taken 47 times.
-
✓ Branch 1 taken 21 times.
+
✓ Branch 1 taken 16 times.
68 while (cursor < end) {63 while (cursor < end) {
78
2/2
-
✓ Branch 0 taken 31 times.
-
✓ Branch 1 taken 16 times.
+
✓ Branch 0 taken 16 times.
+
✓ Branch 1 taken 31 times.
47 if (has_running_name_) { if (has_running_name_) {
79 16 CheckNSkipName(cursor, end); CheckNSkipName(cursor, end);
80 16 CheckNSkipChar(cursor, end, '='); CheckNSkipChar(cursor, end, '=');
81 16 CheckElementData(cursor, end); CheckElementData(cursor, end);
82 16 } }
83 47 DeserializeNumber(cursor, end, ret); DeserializeNumber(cursor, end, ret);
84 47 CheckSeparator(cursor, end);42 CheckSeparator(cursor, end);
85 47 ret.push_back(',');42 ret.push_back(',');
86 } }
87 21 }16 }
88 @@ -843,118 +839,133 @@

GCC Code Coverage Report

89 379039 inline void DeserializeStringArray(const char*& cursor, const char* const end, std::string& ret) const1405703 inline void DeserializeStringArray(const char*& cursor, const char* const end, std::string& ret) const
90 { {
91
2/2
-
✓ Branch 0 taken 758091 times.
-
✓ Branch 1 taken 379039 times.
+
✓ Branch 0 taken 2811419 times.
+
✓ Branch 1 taken 1405702 times.
1137130 while (cursor < end) {4217121 while (cursor < end) {
92
2/2
-
✓ Branch 0 taken 379058 times.
-
✓ Branch 1 taken 379033 times.
+
✓ Branch 0 taken 1405697 times.
+
✓ Branch 1 taken 1405722 times.
758091 if (has_running_name_) {2811419 if (has_running_name_) {
93 379033 CheckNSkipName(cursor, end);1405697 CheckNSkipName(cursor, end);
94 379033 CheckNSkipChar(cursor, end, '=');1405697 CheckNSkipChar(cursor, end, '=');
95 379033 CheckElementData(cursor, end);1405697 CheckElementData(cursor, end);
96 379033 } }
97 758091 DeserializeString(cursor, end, separator_, ret);2811419 DeserializeString(cursor, end, separator_, ret);
98 758091 CheckSeparator(cursor, end);2811418 CheckSeparator(cursor, end);
99 758091 ret.push_back(',');2811418 ret.push_back(',');
100 } }
101 379039 }1405702 }
102 };};
103 @@ -962,6 +973,7 @@

GCC Code Coverage Report

104 @@ -969,6 +981,7 @@

GCC Code Coverage Report

#endif // ARRAY_DESERIALIZER_HPP
105 @@ -976,13 +989,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.base_deserializer.cpp.7caf4bece2110eac03067060fd97e26a.html b/covhtml-oasvalidator/index.base_deserializer.cpp.7caf4bece2110eac03067060fd97e26a.html index c4a34db..1777be2 100644 --- a/covhtml-oasvalidator/index.base_deserializer.cpp.7caf4bece2110eac03067060fd97e26a.html +++ b/covhtml-oasvalidator/index.base_deserializer.cpp.7caf4bece2110eac03067060fd97e26a.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,14 +40,8 @@

GCC Code Coverage Report

Lines: - 6 - 6 - 100.0% - - - Functions: - 1 - 1 + 5 + 5 100.0% @@ -59,37 +52,10 @@

GCC Code Coverage Report

-
+ -
-
+
- - -
@@ -98,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + + - + + - - + + + - + + - + + - - + + + - + + + - + + - + + - + + - + + - + + - + + - + + +
Exec Source
1 @@ -105,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -112,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -119,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -133,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -140,13 +113,15 @@

GCC Code Coverage Report

7 #include "deserializers/base_deserializer.hpp"#include "deserializers/base_deserializer.hpp"
8 @@ -154,48 +129,55 @@

GCC Code Coverage Report

9 2857BaseDeserializer::BaseDeserializer(const std::string& param_name, char start, bool skip_name)BaseDeserializer::BaseDeserializer(const std::string& param_name, char start, bool skip_name)
10 2857 : param_name_(param_name)5714 : param_name_(param_name)
11 2857 , start_(start) , start_(start)
12 2857 , skip_name_(skip_name) , skip_name_(skip_name)
13 2857{{
14 2857}}
15 @@ -203,55 +185,63 @@

GCC Code Coverage Report

16 const std::array<char, 256> BaseDeserializer::kHexLookupTable = []() {const std::array<char, 256> BaseDeserializer::kHexLookupTable = []() {
17 std::array<char, 256> table{}; std::array<char, 256> table{};
18 for (int i = 0; i < 256; ++i) { for (int i = 0; i < 256; ++i) {
19 table[i] = (i >= '0' && i <= '9') ? i - '0' : (i >= 'A' && i <= 'F') ? i - 'A' + 10 : (i >= 'a' && i <= 'f') ? i - 'a' + 10 : -1; table[i] = (i >= '0' && i <= '9') ? i - '0' : (i >= 'A' && i <= 'F') ? i - 'A' + 10 : (i >= 'a' && i <= 'f') ? i - 'a' + 10 : -1;
20 } }
21 return table; return table;
22 }();}();
23 @@ -259,13 +249,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.base_deserializer.hpp.c87cf280df18f57b3fef6b218dec93a8.html b/covhtml-oasvalidator/index.base_deserializer.hpp.c87cf280df18f57b3fef6b218dec93a8.html index 56f64e4..532976d 100644 --- a/covhtml-oasvalidator/index.base_deserializer.hpp.c87cf280df18f57b3fef6b218dec93a8.html +++ b/covhtml-oasvalidator/index.base_deserializer.hpp.c87cf280df18f57b3fef6b218dec93a8.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -42,197 +41,21 @@

GCC Code Coverage Report

Lines: 97 - 108 - 89.8% - - - Functions: - 14 - 14 - 100.0% + 106 + 91.5% Branches: - 109 - 198 - 55.1% + 117 + 243 + 48.1%
-
+ -
-
+
- - -
@@ -241,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + + + + - + + + - + + - + + - + + - + + + - + + - + + - + + - + + + - + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + - + + - + + + - + + - + + - + + - + + + - + + - + + + - + + - + + - + + - + + + - + + + + + - - + + + - + + - - + + + - + + - + + - + + - - + + + - + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - + + - - + + + - + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - + + - - + + + - - + + + + - - + + + - + + - - + + + - + + - + + - - + + + + - - + + + - + + - - + + + - - + + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - - + + + - + + - - + + + + - - + + + - + + - - + + + - - + + + - + + - - + + + - - + + + - - + + + - + + - - + + + - - + + + - + + - - + + + - + + - - + + + + - + + - + + - + + - - + + + - + + - + + - - + + + - + + - + + - - + + + - + + - + + - + + - + + - + + - + + - + + - - + + + - + + - - + + + + - + + - + + - + + - - + + + - + + - + + - - + + + - + + - + + - + + - + + - + + - + + - - + + + - + + - + + - - + + + + - - + + + - + + - - + + + + - - + + + - - + + + - - + + + - + + - - + + + - + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - + + - + + - + + - + + - + + - - + + + - + + - + + - - + + + + - - + + + - + + - - + + + + - - + + + - - + + + - - + + + - + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - + + - - + + + - + + + + +
Exec Source
1 @@ -248,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -255,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -262,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -276,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -283,6 +113,7 @@

GCC Code Coverage Report

7 @@ -290,6 +121,7 @@

GCC Code Coverage Report

#ifndef BASE_DESERIALIZER_HPP
8 @@ -297,6 +129,7 @@

GCC Code Coverage Report

#define BASE_DESERIALIZER_HPP
9 @@ -304,13 +137,15 @@

GCC Code Coverage Report

10 #include "utils/common.hpp"#include "utils/common.hpp"
11 @@ -318,34 +153,39 @@

GCC Code Coverage Report

12 #include <array>#include <array>
13 #include <cstring>#include <cstring>
14 #include <stdexcept>#include <stdexcept>
15 #include <string>#include <string>
16 @@ -353,34 +193,39 @@

GCC Code Coverage Report

17 class DeserializationException: public std::exceptionclass DeserializationException: public std::exception
18 {{
19 private:private:
20 std::string ex_msg_; std::string ex_msg_;
21 @@ -388,50 +233,56 @@

GCC Code Coverage Report

22 public:public:
23 18420810 explicit DeserializationException(const std::string& message)20692117 explicit DeserializationException(const std::string& message)
24
2/4
-
✓ Branch 0 taken 6140270 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 20692117 times.
✗ Branch 2 not taken.
-
✓ Branch 3 taken 6140270 times.
+
✓ Branch 4 taken 20692117 times.
+
✗ Branch 5 not taken.
6140270 : ex_msg_(R"("description":")" + message + R"(")")20692117 : ex_msg_(R"("description":")" + message + R"(")")
25 18420810 { {
26 12280540 }20692117 }
27 @@ -439,41 +290,47 @@

GCC Code Coverage Report

28 6140255 [[nodiscard]] const char* what() const noexcept override20692102 [[nodiscard]] const char* what() const noexcept override
29 { {
30 6140255 return ex_msg_.c_str();20692102 return ex_msg_.c_str();
31 } }
32 };};
33 @@ -481,34 +338,39 @@

GCC Code Coverage Report

34 class BaseDeserializerclass BaseDeserializer
35 {{
36 public:public:
37 explicit BaseDeserializer(const std::string& param_name, char start, bool skip_name); explicit BaseDeserializer(const std::string& param_name, char start, bool skip_name);
38 @@ -516,20 +378,33 @@

GCC Code Coverage Report

39 virtual std::string Deserialize(const char* beg, const char* const end) = 0; virtual std::string Deserialize(const char* beg, const char* const end) = 0;
40 +
+ 1/5 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 74 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✗ Branch 4 not taken.
+
+
74 virtual ~BaseDeserializer() = default; virtual ~BaseDeserializer() = default;
41 @@ -537,34 +412,39 @@

GCC Code Coverage Report

42 protected:protected:
43 const std::string param_name_; const std::string param_name_;
44 const char start_; const char start_;
45 const bool skip_name_; const bool skip_name_;
46 @@ -572,13 +452,15 @@

GCC Code Coverage Report

47 static const std::array<char, 256> kHexLookupTable; static const std::array<char, 256> kHexLookupTable;
48 @@ -586,6 +468,7 @@

GCC Code Coverage Report

49 @@ -593,6 +476,7 @@

GCC Code Coverage Report

// Utilities
50 @@ -600,34 +484,38 @@

GCC Code Coverage Report

51 42567609 inline void CheckNSkipStart(const char*& cursor) const135752324 inline void CheckNSkipStart(const char*& cursor) const
52 { {
53
2/2
-
✓ Branch 0 taken 42567502 times.
-
✓ Branch 1 taken 107 times.
+
✓ Branch 0 taken 107 times.
+
✓ Branch 1 taken 135752217 times.
42567609 if (start_) {135752324 if (start_) {
54 @@ -640,71 +528,90 @@

GCC Code Coverage Report

107 if (start_ == *cursor) { if (start_ == *cursor) {
55 102 ++cursor; ++cursor;
56 } else { } else {
57
- 8/16 + 10/28
-
✓ Branch 0 taken 5 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 5 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 5 times.
-
✗ Branch 7 not taken.
+
✓ Branch 5 taken 5 times.
+
✗ Branch 6 not taken.
✓ Branch 8 taken 5 times.
✗ Branch 9 not taken.
-
✓ Branch 10 taken 5 times.
-
✗ Branch 11 not taken.
+
✓ Branch 11 taken 5 times.
✗ Branch 12 not taken.
-
✓ Branch 13 taken 5 times.
✓ Branch 14 taken 5 times.
✗ Branch 15 not taken.
+
✓ Branch 17 taken 5 times.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✓ Branch 20 taken 5 times.
+
✗ Branch 21 not taken.
+
✓ Branch 22 taken 5 times.
+
✗ Branch 23 not taken.
+
✓ Branch 24 taken 5 times.
+
✗ Branch 25 not taken.
+
✓ Branch 26 taken 5 times.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 34 not taken.
+
✗ Branch 35 not taken.
5 throw DeserializationException("Parameter '" + param_name_ + "' should start with '" + std::string(1, start_) + "'");10 throw DeserializationException("Parameter '" + param_name_ + "' should start with '" + std::string(1, start_) + "'");
58 } }
59 102 } }
60 42567609 }135752319 }
61 @@ -712,105 +619,116 @@

GCC Code Coverage Report

62 21779082 inline void CheckNSkipChar(const char*& cursor, const char* const end, const char c) const70406034 inline void CheckNSkipChar(const char*& cursor, const char* const end, const char c) const
63 { {
64
1/2
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 21779082 times.
+
✓ Branch 0 taken 70406034 times.
+
✗ Branch 1 not taken.
21779082 if (cursor < end) {70406034 if (cursor < end) {
65
2/2
-
✓ Branch 0 taken 21779075 times.
+
✓ Branch 0 taken 70406027 times.
✓ Branch 1 taken 7 times.
21779082 if (c == *cursor) {70406034 if (c == *cursor) {
66 21779075 ++cursor;70406027 ++cursor;
67 } else { } else {
68
- 5/10 + 4/10
-
✓ Branch 0 taken 7 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 7 times.
-
✗ Branch 5 not taken.
+
✓ Branch 5 taken 7 times.
✗ Branch 6 not taken.
-
✓ Branch 7 taken 7 times.
✓ Branch 8 taken 7 times.
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 7 times.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
7 throw DeserializationException("Invalid serialization of ' for parameter '" + param_name_ + "'");14 throw DeserializationException("Invalid serialization of ' for parameter '" + param_name_ + "'");
69 } }
70 21779075 } }
71 21779082 }70406027 }
72 @@ -818,77 +736,89 @@

GCC Code Coverage Report

73 19797115 inline void CheckNSkipName(const char*& cursor, const char* const end) const65253631 inline void CheckNSkipName(const char*& cursor, const char* const end) const
74 { {
75
- 2/2 + 4/6
-
✓ Branch 0 taken 19797113 times.
+
✓ Branch 0 taken 65253629 times.
✓ Branch 1 taken 2 times.
+
✓ Branch 2 taken 65253629 times.
+
✗ Branch 3 not taken.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 65253629 times.
19797115 if (std::distance(cursor, end) < static_cast<long>(param_name_.size()) || !std::equal(param_name_.begin(), param_name_.end(), cursor)) {65253631 if (std::distance(cursor, end) < static_cast<long>(param_name_.size()) || !std::equal(param_name_.begin(), param_name_.end(), cursor)) {
76
- 5/10 + 4/10
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 2 times.
-
✗ Branch 5 not taken.
+
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
-
✓ Branch 7 taken 2 times.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 2 times.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
2 throw DeserializationException("Parameter name mismatch for the parameter '" + param_name_ + "'");4 throw DeserializationException("Parameter name mismatch for the parameter '" + param_name_ + "'");
77 } }
78 19797113 cursor += param_name_.size();65253629 cursor += param_name_.size();
79 19797115 }65253629 }
80 @@ -896,55 +826,62 @@

GCC Code Coverage Report

81 42567591 inline void CheckData(const char*& cursor, const char* const end) const135752306 inline void CheckData(const char*& cursor, const char* const end) const
82 { {
83
1/2
-
✓ Branch 0 taken 42567591 times.
-
✗ Branch 1 not taken.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 135752306 times.
42567591 if (cursor >= end) {135752306 if (cursor >= end) {
84 throw DeserializationException("Parameter '" + param_name_ + "' has no data"); throw DeserializationException("Parameter '" + param_name_ + "' has no data");
85 } }
86 42567591 }135752306 }
87 @@ -952,34 +889,39 @@

GCC Code Coverage Report

88 1981932 inline void DeserializeBoolean(const char*& cursor, const char* const end, std::string& ret) const5152368 inline void DeserializeBoolean(const char*& cursor, const char* const end, std::string& ret) const
89 { {
90 constexpr std::size_t true_size = sizeof("true") - 1;5152368 constexpr std::size_t true_size = sizeof("true") - 1;
91 constexpr std::size_t false_size = sizeof("false") - 1;5152368 constexpr std::size_t false_size = sizeof("false") - 1;
92 @@ -987,107 +929,120 @@

GCC Code Coverage Report

93
4/4
-
✓ Branch 0 taken 1981927 times.
+
✓ Branch 0 taken 5152363 times.
✓ Branch 1 taken 5 times.
-
✓ Branch 2 taken 878346 times.
-
✓ Branch 3 taken 1103581 times.
+
✓ Branch 2 taken 2903321 times.
+
✓ Branch 3 taken 2249042 times.
1981932 if ((cursor + true_size) <= end && std::strncmp(cursor, "true", true_size) == 0) {5152368 if ((cursor + true_size) <= end && std::strncmp(cursor, "true", true_size) == 0) {
94 1103581 ret.append("true");2903321 ret.append("true");
95 1103581 cursor += true_size;2903321 cursor += true_size;
96
- 2/2 + 4/4
-
✓ Branch 0 taken 189561 times.
-
✓ Branch 1 taken 688790 times.
+
✓ Branch 0 taken 2249042 times.
+
✓ Branch 1 taken 5 times.
+
✓ Branch 2 taken 702893 times.
+
✓ Branch 3 taken 1546149 times.
1981932 } else if ((cursor + false_size) <= end && std::strncmp(cursor, "false", false_size) == 0) {2249047 } else if ((cursor + false_size) <= end && std::strncmp(cursor, "false", false_size) == 0) {
97 189561 ret.append("false");702893 ret.append("false");
98 189561 cursor += false_size;702893 cursor += false_size;
99 } else { } else {
100
- 5/10 + 4/10
-
✓ Branch 0 taken 688790 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 688790 times.
+
✓ Branch 2 taken 1546154 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 688790 times.
-
✗ Branch 5 not taken.
+
✓ Branch 5 taken 1546154 times.
✗ Branch 6 not taken.
-
✓ Branch 7 taken 688790 times.
-
✓ Branch 8 taken 688790 times.
+
✓ Branch 8 taken 1546154 times.
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 1546154 times.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
688790 throw DeserializationException("Invalid `boolean` value for parameter `" + param_name_ + "`");3092308 throw DeserializationException("Invalid `boolean` value for parameter `" + param_name_ + "`");
101 } }
102 1981932 }3606214 }
103 @@ -1095,151 +1050,171 @@

GCC Code Coverage Report

104 41809432 inline void DeserializeInteger(const char*& cursor, const char* const end, std::string& ret) const132940819 inline void DeserializeInteger(const char*& cursor, const char* const end, std::string& ret) const
105 { {
106 41809432 const char* start_cursor = cursor;132940819 const char* start_cursor = cursor;
107
2/4
-
✓ Branch 0 taken 41809432 times.
+
✓ Branch 0 taken 132940819 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 41809432 times.
-
✗ Branch 3 not taken.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 132940819 times.
41809432 if (cursor < end && '-' == *cursor) {132940819 if (cursor < end && '-' == *cursor) {
108 ++cursor; ++cursor;
109 } }
110
- 2/2 + 4/4
-
✓ Branch 0 taken 106420798 times.
-
✓ Branch 1 taken 41809432 times.
+
✓ Branch 0 taken 359357283 times.
+
✓ Branch 1 taken 105128398 times.
+
✓ Branch 2 taken 331544862 times.
+
✓ Branch 3 taken 27812421 times.
148230230 while (cursor < end && isdigit(*cursor)) {464485681 while (cursor < end && isdigit(*cursor)) {
111 106420798 ++cursor;331544862 ++cursor;
112 } }
113
- 4/4 + 5/6
-
✓ Branch 0 taken 36358002 times.
-
✓ Branch 1 taken 5451430 times.
-
✓ Branch 2 taken 1326604 times.
-
✓ Branch 3 taken 35031398 times.
+
✓ Branch 0 taken 113794906 times.
+
✓ Branch 1 taken 19145913 times.
+
✓ Branch 2 taken 4919928 times.
+
✓ Branch 3 taken 108874978 times.
+
✓ Branch 4 taken 4919928 times.
+
✗ Branch 5 not taken.
41809432 if (cursor > start_cursor && (cursor - start_cursor != 1 || *start_cursor != '-')) {132940819 if (cursor > start_cursor && (cursor - start_cursor != 1 || *start_cursor != '-')) {
114 36358002 ret.append(start_cursor, cursor);113794906 ret.append(start_cursor, cursor);
115 } else { } else {
116
- 5/10 + 4/10
-
✓ Branch 0 taken 5451430 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 5451430 times.
+
✓ Branch 2 taken 19145913 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 5451430 times.
-
✗ Branch 5 not taken.
+
✓ Branch 5 taken 19145913 times.
✗ Branch 6 not taken.
-
✓ Branch 7 taken 5451430 times.
-
✓ Branch 8 taken 5451430 times.
+
✓ Branch 8 taken 19145913 times.
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 19145913 times.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
5451430 throw DeserializationException("Invalid 'integer' format for '" + param_name_ + "'");38291826 throw DeserializationException("Invalid 'integer' format for '" + param_name_ + "'");
117 } }
118 41809432 }113794906 }
119 @@ -1247,34 +1222,39 @@

GCC Code Coverage Report

120 83 inline void DeserializeNumber(const char*& cursor, const char* const end, std::string& ret) const inline void DeserializeNumber(const char*& cursor, const char* const end, std::string& ret) const
121 { {
122 83 const char* start_cursor = cursor; const char* start_cursor = cursor;
123 bool has_decimal_point = false;83 bool has_decimal_point = false;
124 @@ -1283,46 +1263,48 @@

GCC Code Coverage Report

✓ Branch 0 taken 83 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 83 times.
-
✗ Branch 3 not taken.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 83 times.
83 if (cursor < end && '-' == *cursor) { if (cursor < end && '-' == *cursor) {
125 ++cursor; ++cursor;
126 } }
127
- 6/6 + 4/4
✓ Branch 0 taken 399 times.
✓ Branch 1 taken 28 times.
-
✓ Branch 2 taken 128 times.
-
✓ Branch 3 taken 271 times.
-
✓ Branch 4 taken 74 times.
-
✓ Branch 5 taken 54 times.
+
✓ Branch 2 taken 345 times.
+
✓ Branch 3 taken 54 times.
427 while (cursor < end && (isdigit(*cursor) || *cursor == '.')) { while (cursor < end && (isdigit(*cursor) || *cursor == '.')) {
128 @@ -1331,128 +1313,148 @@

GCC Code Coverage Report

✓ Branch 0 taken 74 times.
✓ Branch 1 taken 271 times.
-
✓ Branch 2 taken 73 times.
-
✓ Branch 3 taken 1 times.
+
✓ Branch 2 taken 1 times.
+
✓ Branch 3 taken 73 times.
345 if (*cursor == '.' && has_decimal_point) { if (*cursor == '.' && has_decimal_point) {
129
- 4/8 + 4/10
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
+
✓ Branch 8 taken 1 times.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 1 times.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
1 throw DeserializationException("Multiple '.' in number for '" + param_name_ + "'");2 throw DeserializationException("Multiple '.' in number for '" + param_name_ + "'");
130 } }
131 344 has_decimal_point |= (*cursor == '.'); has_decimal_point |= (*cursor == '.');
132 344 ++cursor; ++cursor;
133 } }
134
- 4/6 + 5/10
✓ Branch 0 taken 72 times.
✓ Branch 1 taken 10 times.
-
✓ Branch 2 taken 72 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 72 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 72 times.
+
✗ Branch 4 not taken.
✗ Branch 5 not taken.
+
✓ Branch 6 taken 72 times.
+
✗ Branch 7 not taken.
+
✓ Branch 8 taken 72 times.
+
✗ Branch 9 not taken.
82 if (cursor > start_cursor && (cursor - start_cursor != 1 || (*start_cursor != '-' && *start_cursor != '.')) && (!has_decimal_point || *(cursor - 1) != '.')) { if (cursor > start_cursor && (cursor - start_cursor != 1 || (*start_cursor != '-' && *start_cursor != '.')) && (!has_decimal_point || *(cursor - 1) != '.')) {
135 72 ret.append(start_cursor, cursor); ret.append(start_cursor, cursor);
136 } else { } else {
137
- 4/8 + 4/10
-
✓ Branch 0 taken 10 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 10 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 10 times.
-
✗ Branch 7 not taken.
+
✓ Branch 5 taken 10 times.
+
✗ Branch 6 not taken.
+
✓ Branch 8 taken 10 times.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 10 times.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
10 throw DeserializationException("Invalid 'number' format for '" + param_name_ + "'");20 throw DeserializationException("Invalid 'number' format for '" + param_name_ + "'");
138 } }
139 83 }72 }
140 @@ -1460,167 +1462,187 @@

GCC Code Coverage Report

141 29 inline void DeserializeString(const char*& cursor, const char* const end, std::string& ret) const inline void DeserializeString(const char*& cursor, const char* const end, std::string& ret) const
142 { {
143 29 ret.push_back('"'); ret.push_back('"');
144 -
- 2/2 -
-
✓ Branch 0 taken 151 times.
-
✓ Branch 1 taken 22 times.
-
-
173 while (cursor < end) {29 while (cursor < end) {
145 151 char c = *cursor++; char c = *cursor++;
146
2/3
-
✓ Branch 0 taken 130 times.
-
✓ Branch 1 taken 21 times.
-
✗ Branch 2 not taken.
+
✓ Branch 0 taken 21 times.
+
✗ Branch 1 not taken.
+
✓ Branch 2 taken 130 times.
151 switch (c) { switch (c) {
147 case '%': {21 case '%': {
148
1/2
-
✓ Branch 0 taken 21 times.
-
✗ Branch 1 not taken.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 21 times.
21 if (cursor + 1 >= end) { if (cursor + 1 >= end) {
149 throw DeserializationException("Incomplete percent encoding for '" + param_name_ + "'"); throw DeserializationException("Incomplete percent encoding for '" + param_name_ + "'");
150 } }
151 +
+ 2/2 +
+
✓ Branch 0 taken 7 times.
+
✓ Branch 1 taken 14 times.
+
+
21 const char dec1 = kHexLookupTable[static_cast<unsigned char>(*cursor++)]; const char dec1 = kHexLookupTable[static_cast<unsigned char>(*cursor++)];
152 21 const char dec2 = kHexLookupTable[static_cast<unsigned char>(*cursor++)]; const char dec2 = kHexLookupTable[static_cast<unsigned char>(*cursor++)];
153
2/2
-
✓ Branch 0 taken 14 times.
-
✓ Branch 1 taken 7 times.
+
✓ Branch 0 taken 7 times.
+
✓ Branch 1 taken 14 times.
21 if (dec1 < 0 || dec2 < 0) { if (dec1 < 0 || dec2 < 0) {
154
- 4/8 + 4/10
-
✓ Branch 0 taken 7 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 7 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 7 times.
-
✗ Branch 7 not taken.
+
✓ Branch 5 taken 7 times.
+
✗ Branch 6 not taken.
+
✓ Branch 8 taken 7 times.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 7 times.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
7 throw DeserializationException("Invalid HEX character for '" + param_name_ + "'");14 throw DeserializationException("Invalid HEX character for '" + param_name_ + "'");
155 } }
156 14 ret.push_back((dec1 << 4) | dec2); ret.push_back((dec1 << 4) | dec2);
157 21 } break;14 } break;
158 @@ -1628,27 +1650,31 @@

GCC Code Coverage Report

159 case '+': case '+':
160 ret += ' '; ret += ' ';
161 break; break;
162 @@ -1656,55 +1682,70 @@

GCC Code Coverage Report

163 default:130 default:
164 +
+ 2/2 +
+
✓ Branch 1 taken 151 times.
+
✓ Branch 2 taken 22 times.
+
+
130 ret += c;303 ret += c;
165 130 break; break;
166 } }
167 7 } }
168 22 ret.push_back('"'); ret.push_back('"');
169 29 }22 }
170 @@ -1712,169 +1753,194 @@

GCC Code Coverage Report

171 2084674 inline void DeserializeString(const char*& cursor, const char* const end, const char terminator, std::string& ret) const7731326 inline void DeserializeString(const char*& cursor, const char* const end, const char terminator, std::string& ret) const
172 { {
173 2084674 ret.push_back('"');7731326 ret.push_back('"');
174
- 4/4 + 2/2
-
✓ Branch 0 taken 12508031 times.
-
✓ Branch 1 taken 1705620 times.
-
✓ Branch 2 taken 379052 times.
-
✓ Branch 3 taken 12128979 times.
+
✓ Branch 1 taken 44982227 times.
+
✓ Branch 2 taken 1405716 times.
14213651 while (cursor < end && *cursor != terminator) {54119269 while (cursor < end && *cursor != terminator) {
175 12128979 char c = *cursor++;44982227 char c = *cursor++;
176
2/3
-
✓ Branch 0 taken 12128933 times.
-
✓ Branch 1 taken 46 times.
-
✗ Branch 2 not taken.
+
✓ Branch 0 taken 46 times.
+
✗ Branch 1 not taken.
+
✓ Branch 2 taken 44982181 times.
12128979 switch (c) {44982227 switch (c) {
177 case '%': {46 case '%': {
178
1/2
-
✓ Branch 0 taken 46 times.
-
✗ Branch 1 not taken.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 46 times.
46 if (cursor + 1 >= end) { if (cursor + 1 >= end) {
179 throw DeserializationException("Incomplete percent encoding for '" + param_name_ + "'"); throw DeserializationException("Incomplete percent encoding for '" + param_name_ + "'");
180 } }
181 +
+ 2/2 +
+
✓ Branch 0 taken 2 times.
+
✓ Branch 1 taken 44 times.
+
+
46 const char dec1 = kHexLookupTable[static_cast<unsigned char>(*cursor++)]; const char dec1 = kHexLookupTable[static_cast<unsigned char>(*cursor++)];
182 46 const char dec2 = kHexLookupTable[static_cast<unsigned char>(*cursor++)]; const char dec2 = kHexLookupTable[static_cast<unsigned char>(*cursor++)];
183
2/2
-
✓ Branch 0 taken 44 times.
-
✓ Branch 1 taken 2 times.
+
✓ Branch 0 taken 2 times.
+
✓ Branch 1 taken 44 times.
46 if (dec1 < 0 || dec2 < 0) { if (dec1 < 0 || dec2 < 0) {
184
- 4/8 + 4/10
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 2 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 2 times.
-
✗ Branch 7 not taken.
+
✓ Branch 5 taken 2 times.
+
✗ Branch 6 not taken.
+
✓ Branch 8 taken 2 times.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 2 times.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
2 throw DeserializationException("Invalid HEX character for '" + param_name_ + "'");4 throw DeserializationException("Invalid HEX character for '" + param_name_ + "'");
185 } }
186 44 ret.push_back((dec1 << 4) | dec2); ret.push_back((dec1 << 4) | dec2);
187 46 } break;44 } break;
188 @@ -1882,27 +1948,31 @@

GCC Code Coverage Report

189 case '+': case '+':
190 ret += ' '; ret += ' ';
191 break; break;
192 @@ -1910,55 +1980,70 @@

GCC Code Coverage Report

193 default:44982181 default:
194 +
+ 2/2 +
+
✓ Branch 1 taken 46387943 times.
+
✓ Branch 2 taken 6325608 times.
+
+
12128933 ret += c;97695732 ret += c;
195 12128933 break; break;
196 } }
197 2 } }
198 2084672 ret.push_back('"');7731324 ret.push_back('"');
199 2084674 }7731324 }
200 @@ -1966,77 +2051,85 @@

GCC Code Coverage Report

201 36427349 inline void CheckEnd(const char*& cursor, const char* const end) const115060217 inline void CheckEnd(const char*& cursor, const char* const end) const
202 { {
203
2/2
-
✓ Branch 0 taken 36427339 times.
-
✓ Branch 1 taken 10 times.
+
✓ Branch 0 taken 10 times.
+
✓ Branch 1 taken 115060207 times.
36427349 if (cursor != end) {115060217 if (cursor != end) {
204
- 5/10 + 4/10
-
✓ Branch 0 taken 10 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 10 times.
-
✗ Branch 5 not taken.
+
✓ Branch 5 taken 10 times.
✗ Branch 6 not taken.
-
✓ Branch 7 taken 10 times.
✓ Branch 8 taken 10 times.
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 10 times.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
10 throw DeserializationException("Invalid serialization of parameter '" + param_name_ + "'");20 throw DeserializationException("Invalid serialization of parameter '" + param_name_ + "'");
205 } }
206 36427349 }115060207 }
207 };};
208 @@ -2044,6 +2137,7 @@

GCC Code Coverage Report

209 @@ -2051,6 +2145,7 @@

GCC Code Coverage Report

#endif // BASE_DESERIALIZER_HPP
210 @@ -2058,13 +2153,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.base_validator.cpp.5788c696cfdf592f70aa62831a0eae93.html b/covhtml-oasvalidator/index.base_validator.cpp.5788c696cfdf592f70aa62831a0eae93.html index 9966981..0de508a 100644 --- a/covhtml-oasvalidator/index.base_validator.cpp.5788c696cfdf592f70aa62831a0eae93.html +++ b/covhtml-oasvalidator/index.base_validator.cpp.5788c696cfdf592f70aa62831a0eae93.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,88 +40,22 @@

GCC Code Coverage Report

Lines: - 22 - 24 - 91.7% - - - Functions: - 3 - 4 - 75.0% + 12 + 14 + 85.7% Branches: - 15 - 32 - 46.9% + 11 + 30 + 36.7%
-
+ -
-
+
- - -
@@ -131,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + + - - + + + - + + - - + + + - + + - + + + - - + + + - + + - - + + + - + + - - + + + - + + + - + + - + + - + + - + + + - + + - + + - + + - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + +
Exec Source
1 @@ -138,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -145,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -152,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -166,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -173,13 +113,15 @@

GCC Code Coverage Report

7 #include "validators/base_validator.hpp"#include "validators/base_validator.hpp"
8 @@ -187,48 +129,68 @@

GCC Code Coverage Report

9 54BaseValidator::BaseValidator(ValidationError err_code)27BaseValidator::BaseValidator(ValidationError err_code)
10 +
+ 1/2 +
+
✓ Branch 1 taken 27 times.
+
✗ Branch 2 not taken.
+
+
27 : code_on_error_(err_code) : code_on_error_(err_code)
11 27{{
12
1/2
-
✓ Branch 0 taken 27 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 27 times.
+
✗ Branch 2 not taken.
27 InitErrHeader(); InitErrHeader();
13 +
+ 0/2 +
+
✗ Branch 0 not taken.
+
✗ Branch 1 not taken.
+
+
27}}
14 @@ -236,68 +198,99 @@

GCC Code Coverage Report

15 6594BaseValidator::BaseValidator(const std::vector<std::string>& ref_keys, ValidationError err_code)3297BaseValidator::BaseValidator(const std::vector<std::string>& ref_keys, ValidationError err_code)
16 +
+ 1/2 +
+
✓ Branch 1 taken 3297 times.
+
✗ Branch 2 not taken.
+
+
3297 : code_on_error_(err_code) : code_on_error_(err_code)
17 3297{{
18
1/2
-
✓ Branch 0 taken 3297 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 3297 times.
+
✗ Branch 2 not taken.
3297 InitErrHeader(); InitErrHeader();
19
- 4/8 + 7/18
-
✓ Branch 0 taken 3297 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 3297 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 3297 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 3297 times.
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
✓ Branch 7 taken 3297 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 3297 times.
+
✗ Branch 11 not taken.
+
✓ Branch 12 taken 3297 times.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
+
✓ Branch 15 taken 3297 times.
+
✗ Branch 16 not taken.
+
✓ Branch 17 taken 3297 times.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
3297 err_header_ += R"("specRef":")" + JoinReference(ref_keys) + R"(",)";9891 err_header_ += R"("specRef":")" + JoinReference(ref_keys) + R"(",)";
20 +
+ 0/2 +
+
✗ Branch 0 not taken.
+
✗ Branch 1 not taken.
+
+
3297}}
21 @@ -305,34 +298,39 @@

GCC Code Coverage Report

22 std::string BaseValidator::GetErrHeader() conststd::string BaseValidator::GetErrHeader() const
23 {{
24 return err_header_; return err_header_;
25 }}
26 @@ -340,34 +338,39 @@

GCC Code Coverage Report

27 3324void BaseValidator::InitErrHeader()void BaseValidator::InitErrHeader()
28 {{
29 3324 err_header_ = kErrHeaders.at(code_on_error_); err_header_ = kErrHeaders.at(code_on_error_);
30 3324}}
31 @@ -375,122 +378,71 @@

GCC Code Coverage Report

32 -
- 2/6 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
-
✓ Branch 3 taken 2 times.
-
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
-
-
2const std::unordered_map<ValidationError, std::string> BaseValidator::kErrHeaders = {{ValidationError::NONE, "NONE"},const std::unordered_map<ValidationError, std::string> BaseValidator::kErrHeaders = {{ValidationError::NONE, "NONE"},
33 -
- 1/2 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
-
2 {ValidationError::INVALID_METHOD, R"({"errorCode":"INVALID_METHOD","details":{)"}, {ValidationError::INVALID_METHOD, R"({"errorCode":"INVALID_METHOD","details":{)"},
34 -
- 1/2 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
-
2 {ValidationError::INVALID_ROUTE, R"({"errorCode":"INVALID_ROUTE","details":{)"}, {ValidationError::INVALID_ROUTE, R"({"errorCode":"INVALID_ROUTE","details":{)"},
35 -
- 1/2 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
-
2 {ValidationError::INVALID_PATH_PARAM, R"({"errorCode":"INVALID_PATH_PARAM","details":{)"}, {ValidationError::INVALID_PATH_PARAM, R"({"errorCode":"INVALID_PATH_PARAM","details":{)"},
36 -
- 1/2 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
-
2 {ValidationError::INVALID_QUERY_PARAM, R"({"errorCode":"INVALID_QUERY_PARAM","details":{)"}, {ValidationError::INVALID_QUERY_PARAM, R"({"errorCode":"INVALID_QUERY_PARAM","details":{)"},
37 -
- 1/2 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
-
2 {ValidationError::INVALID_HEADER_PARAM, R"({"errorCode":"INVALID_HEADER_PARAM","details":{)"}, {ValidationError::INVALID_HEADER_PARAM, R"({"errorCode":"INVALID_HEADER_PARAM","details":{)"},
38 -
- 1/2 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
-
2 {ValidationError::INVALID_BODY, R"({"errorCode":"INVALID_BODY","details":{)"}, {ValidationError::INVALID_BODY, R"({"errorCode":"INVALID_BODY","details":{)"},
39 -
- 1/2 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
-
2 {ValidationError::INVALID_RSP, R"({"errorCode":"INVALID_RSP","details":{)"}}; {ValidationError::INVALID_RSP, R"({"errorCode":"INVALID_RSP","details":{)"}};
40 @@ -498,13 +450,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.base_validator.hpp.5ead94b4d817e0638e7c62ad2a8fef9a.html b/covhtml-oasvalidator/index.base_validator.hpp.5ead94b4d817e0638e7c62ad2a8fef9a.html index db647d2..dcf32aa 100644 --- a/covhtml-oasvalidator/index.base_validator.hpp.5ead94b4d817e0638e7c62ad2a8fef9a.html +++ b/covhtml-oasvalidator/index.base_validator.hpp.5ead94b4d817e0638e7c62ad2a8fef9a.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -45,51 +44,18 @@

GCC Code Coverage Report

1 100.0% - - Functions: - 1 - 1 - 100.0% - Branches: - 0 - 0 - -% + 3 + 8 + 37.5%
-
- -
-
- - +
-
@@ -98,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + + + + - + + + - + + - + + + - + + - + + - + + - + + - + + + - + + - + + - - +
+ 3/8 +
+
✓ Branch 0 taken 1186 times.
+
✗ Branch 1 not taken.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✓ Branch 4 taken 1 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✗ Branch 7 not taken.
+
+
+ + + + + - + + - + + - + + + - + + + - + + - + + - + + + + +
Exec Source
1 @@ -105,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -112,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -119,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -133,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -140,6 +113,7 @@

GCC Code Coverage Report

7 @@ -147,6 +121,7 @@

GCC Code Coverage Report

#ifndef VALIDATOR_HPP
8 @@ -154,6 +129,7 @@

GCC Code Coverage Report

#define VALIDATOR_HPP
9 @@ -161,13 +137,15 @@

GCC Code Coverage Report

10 #include "utils/common.hpp"#include "utils/common.hpp"
11 @@ -175,20 +153,23 @@

GCC Code Coverage Report

12 #include <string>#include <string>
13 #include <unordered_map>#include <unordered_map>
14 @@ -196,41 +177,47 @@

GCC Code Coverage Report

15 class BaseValidatorclass BaseValidator
16 {{
17 public:public:
18 explicit BaseValidator(ValidationError err_code); explicit BaseValidator(ValidationError err_code);
19 explicit BaseValidator(const std::vector<std::string>& ref_keys, ValidationError err_code); explicit BaseValidator(const std::vector<std::string>& ref_keys, ValidationError err_code);
20 @@ -238,27 +225,44 @@

GCC Code Coverage Report

21 virtual ValidationError ValidateJson(const std::string& content, std::string& err_msg) = 0; virtual ValidationError ValidateJson(const std::string& content, std::string& err_msg) = 0;
22 std::string GetErrHeader() const; std::string GetErrHeader() const;
23 - 1188 virtual ~BaseValidator() = default;1215 virtual ~BaseValidator() = default;
24 @@ -266,27 +270,31 @@

GCC Code Coverage Report

25 protected:protected:
26 ValidationError code_on_error_; ValidationError code_on_error_;
27 std::string err_header_; std::string err_header_;
28 @@ -294,13 +302,15 @@

GCC Code Coverage Report

29 void InitErrHeader(); void InitErrHeader();
30 @@ -308,27 +318,31 @@

GCC Code Coverage Report

31 private:private:
32 static const std::unordered_map<ValidationError, std::string> kErrHeaders; static const std::unordered_map<ValidationError, std::string> kErrHeaders;
33 };};
34 @@ -336,6 +350,7 @@

GCC Code Coverage Report

35 @@ -343,6 +358,7 @@

GCC Code Coverage Report

#endif // VALIDATOR_HPP
36 @@ -350,13 +366,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.body_validator.cpp.4065ab7ad005c697676bd4662b5956ae.html b/covhtml-oasvalidator/index.body_validator.cpp.4065ab7ad005c697676bd4662b5956ae.html index 431312c..e2c03a0 100644 --- a/covhtml-oasvalidator/index.body_validator.cpp.4065ab7ad005c697676bd4662b5956ae.html +++ b/covhtml-oasvalidator/index.body_validator.cpp.4065ab7ad005c697676bd4662b5956ae.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,407 +40,22 @@

GCC Code Coverage Report

Lines: - 119 - 119 - 100.0% - - - Functions: - 33 - 33 + 118 + 118 100.0% Branches: - 279 - 998 - 28.0% + 220 + 1233 + 17.8%
-
- -
-
- - +
-
@@ -450,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + - + + + - - + + + - + + - + + - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - - + + + - + + - + + + - + + - + + - + + + - - + + + - + + - + + + + + + + + + + + + + + + + + + + + - + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - + + + + + + + + + + + + + + + + + + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - + + + + + + + + + + + + + + + + + + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - + + + + + + + + + + + + + + + + + + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - + + + + + + + + + + + + + + + + + + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - + + + + + + + + + + + + + + + + + + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - +
+ 1/2 +
+
✓ Branch 0 taken 1 times.
+
✗ Branch 1 not taken.
+
+
+ + + + + - - + + + - + + - + + + + + + + + + + + + + + + + + + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - + + + + + + + + + + + + + + + + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - +
+ 1/2 +
+
✓ Branch 0 taken 1 times.
+
✗ Branch 1 not taken.
+
+
+ + + + + - - + + + - + + - + + + + + + + + + + + + + + + + + + + + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - + + + + + + + + + + + + + + + + + + + + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + +
Exec Source
1 @@ -457,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -464,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -471,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -485,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -492,20 +113,23 @@

GCC Code Coverage Report

7 #include "validators/body_validator.hpp"#include "validators/body_validator.hpp"
8 #include <gtest/gtest.h>#include <gtest/gtest.h>
9 @@ -513,41 +137,47 @@

GCC Code Coverage Report

10 10class TestBodyValidator: public ::testing::Testclass TestBodyValidator: public ::testing::Test
11 {{
12 protected:protected:
13 10 void SetUp() override void SetUp() override
14 { {
15 @@ -555,6 +185,7 @@

GCC Code Coverage Report

10 schema_doc_.Parse(R"({
16 @@ -562,6 +193,7 @@

GCC Code Coverage Report

"$schema": "http://json-schema.org/draft-05/schema#",
17 @@ -569,6 +201,7 @@

GCC Code Coverage Report

"title": "UserProfile",
18 @@ -576,6 +209,7 @@

GCC Code Coverage Report

"description": "A user profile with various attributes",
19 @@ -583,6 +217,7 @@

GCC Code Coverage Report

"type": "object",
20 @@ -590,6 +225,7 @@

GCC Code Coverage Report

"properties": {
21 @@ -597,6 +233,7 @@

GCC Code Coverage Report

"userId": {
22 @@ -604,6 +241,7 @@

GCC Code Coverage Report

"description": "The unique identifier for a user",
23 @@ -611,6 +249,7 @@

GCC Code Coverage Report

"type": "integer",
24 @@ -618,6 +257,7 @@

GCC Code Coverage Report

"minimum": 1
25 @@ -625,6 +265,7 @@

GCC Code Coverage Report

},
26 @@ -632,6 +273,7 @@

GCC Code Coverage Report

"username": {
27 @@ -639,6 +281,7 @@

GCC Code Coverage Report

"description": "The user's username",
28 @@ -646,6 +289,7 @@

GCC Code Coverage Report

"type": "string",
29 @@ -653,6 +297,7 @@

GCC Code Coverage Report

"minLength": 3,
30 @@ -660,6 +305,7 @@

GCC Code Coverage Report

"maxLength": 20,
31 @@ -667,6 +313,7 @@

GCC Code Coverage Report

"pattern": "^[a-zA-Z0-9_]+$"
32 @@ -674,6 +321,7 @@

GCC Code Coverage Report

},
33 @@ -681,6 +329,7 @@

GCC Code Coverage Report

"email": {
34 @@ -688,6 +337,7 @@

GCC Code Coverage Report

"type": "string",
35 @@ -695,6 +345,7 @@

GCC Code Coverage Report

"format": "email"
36 @@ -702,6 +353,7 @@

GCC Code Coverage Report

},
37 @@ -709,6 +361,7 @@

GCC Code Coverage Report

"age": {
38 @@ -716,6 +369,7 @@

GCC Code Coverage Report

"description": "Age in years which must be a positive integer",
39 @@ -723,6 +377,7 @@

GCC Code Coverage Report

"type": "integer",
40 @@ -730,6 +385,7 @@

GCC Code Coverage Report

"minimum": 18,
41 @@ -737,6 +393,7 @@

GCC Code Coverage Report

"maximum": 100
42 @@ -744,6 +401,7 @@

GCC Code Coverage Report

},
43 @@ -751,6 +409,7 @@

GCC Code Coverage Report

"phoneNumber": {
44 @@ -758,6 +417,7 @@

GCC Code Coverage Report

"type": ["string", "null"],
45 @@ -765,6 +425,7 @@

GCC Code Coverage Report

"pattern": "^\\+?[1-9]\\d{1,14}$"
46 @@ -772,6 +433,7 @@

GCC Code Coverage Report

},
47 @@ -779,6 +441,7 @@

GCC Code Coverage Report

"address": {
48 @@ -786,6 +449,7 @@

GCC Code Coverage Report

"type": "object",
49 @@ -793,6 +457,7 @@

GCC Code Coverage Report

"properties": {
50 @@ -800,6 +465,7 @@

GCC Code Coverage Report

"street": {"type": "string"},
51 @@ -807,6 +473,7 @@

GCC Code Coverage Report

"city": {"type": "string"},
52 @@ -814,6 +481,7 @@

GCC Code Coverage Report

"state": {"type": "string"},
53 @@ -821,6 +489,7 @@

GCC Code Coverage Report

"zipCode": {
54 @@ -828,6 +497,7 @@

GCC Code Coverage Report

"type": "string",
55 @@ -835,6 +505,7 @@

GCC Code Coverage Report

"pattern": "^\\d{5}(-\\d{4})?$"
56 @@ -842,6 +513,7 @@

GCC Code Coverage Report

}
57 @@ -849,6 +521,7 @@

GCC Code Coverage Report

},
58 @@ -856,6 +529,7 @@

GCC Code Coverage Report

"required": ["street", "city", "state", "zipCode"],
59 @@ -863,6 +537,7 @@

GCC Code Coverage Report

"additionalProperties": false
60 @@ -870,6 +545,7 @@

GCC Code Coverage Report

},
61 @@ -877,6 +553,7 @@

GCC Code Coverage Report

"subscriptionType": {
62 @@ -884,6 +561,7 @@

GCC Code Coverage Report

"type": "string",
63 @@ -891,6 +569,7 @@

GCC Code Coverage Report

"enum": ["basic", "premium", "gold"]
64 @@ -898,6 +577,7 @@

GCC Code Coverage Report

},
65 @@ -905,6 +585,7 @@

GCC Code Coverage Report

"preferences": {
66 @@ -912,6 +593,7 @@

GCC Code Coverage Report

"type": "object",
67 @@ -919,6 +601,7 @@

GCC Code Coverage Report

"properties": {
68 @@ -926,6 +609,7 @@

GCC Code Coverage Report

"newsletter": {
69 @@ -933,6 +617,7 @@

GCC Code Coverage Report

"type": "boolean",
70 @@ -940,6 +625,7 @@

GCC Code Coverage Report

"default": false
71 @@ -947,6 +633,7 @@

GCC Code Coverage Report

},
72 @@ -954,6 +641,7 @@

GCC Code Coverage Report

"themes": {
73 @@ -961,6 +649,7 @@

GCC Code Coverage Report

"type": "array",
74 @@ -968,6 +657,7 @@

GCC Code Coverage Report

"items": {
75 @@ -975,6 +665,7 @@

GCC Code Coverage Report

"type": "string",
76 @@ -982,6 +673,7 @@

GCC Code Coverage Report

"enum": ["light", "dark", "colorful"]
77 @@ -989,6 +681,7 @@

GCC Code Coverage Report

},
78 @@ -996,6 +689,7 @@

GCC Code Coverage Report

"minItems": 1,
79 @@ -1003,6 +697,7 @@

GCC Code Coverage Report

"uniqueItems": true
80 @@ -1010,6 +705,7 @@

GCC Code Coverage Report

}
81 @@ -1017,6 +713,7 @@

GCC Code Coverage Report

},
82 @@ -1024,6 +721,7 @@

GCC Code Coverage Report

"additionalProperties": false
83 @@ -1031,6 +729,7 @@

GCC Code Coverage Report

},
84 @@ -1038,6 +737,7 @@

GCC Code Coverage Report

"createdAt": {
85 @@ -1045,6 +745,7 @@

GCC Code Coverage Report

"type": "string",
86 @@ -1052,6 +753,7 @@

GCC Code Coverage Report

"format": "date-time"
87 @@ -1059,6 +761,7 @@

GCC Code Coverage Report

}
88 @@ -1066,6 +769,7 @@

GCC Code Coverage Report

},
89 @@ -1073,6 +777,7 @@

GCC Code Coverage Report

"required": ["userId", "username", "email", "createdAt"],
90 @@ -1080,6 +785,7 @@

GCC Code Coverage Report

"additionalProperties": false,
91 @@ -1087,6 +793,7 @@

GCC Code Coverage Report

"dependencies": {
92 @@ -1094,6 +801,7 @@

GCC Code Coverage Report

"phoneNumber": ["address"]
93 @@ -1101,6 +809,7 @@

GCC Code Coverage Report

},
94 @@ -1108,6 +817,7 @@

GCC Code Coverage Report

"allOf": [
95 @@ -1115,6 +825,7 @@

GCC Code Coverage Report

{
96 @@ -1122,6 +833,7 @@

GCC Code Coverage Report

"if": {
97 @@ -1129,6 +841,7 @@

GCC Code Coverage Report

"properties": {"subscriptionType": {"const": "gold"}}
98 @@ -1136,6 +849,7 @@

GCC Code Coverage Report

},
99 @@ -1143,6 +857,7 @@

GCC Code Coverage Report

"then": {
100 @@ -1150,6 +865,7 @@

GCC Code Coverage Report

"properties": {
101 @@ -1157,6 +873,7 @@

GCC Code Coverage Report

"preferences": {
102 @@ -1164,6 +881,7 @@

GCC Code Coverage Report

"properties": {
103 @@ -1171,6 +889,7 @@

GCC Code Coverage Report

"themes": {
104 @@ -1178,6 +897,7 @@

GCC Code Coverage Report

"minItems": 2
105 @@ -1185,6 +905,7 @@

GCC Code Coverage Report

}
106 @@ -1192,6 +913,7 @@

GCC Code Coverage Report

}
107 @@ -1199,6 +921,7 @@

GCC Code Coverage Report

}
108 @@ -1206,6 +929,7 @@

GCC Code Coverage Report

}
109 @@ -1213,6 +937,7 @@

GCC Code Coverage Report

}
110 @@ -1220,6 +945,7 @@

GCC Code Coverage Report

}
111 @@ -1227,6 +953,7 @@

GCC Code Coverage Report

],
112 @@ -1234,6 +961,7 @@

GCC Code Coverage Report

"patternProperties": {
113 @@ -1241,6 +969,7 @@

GCC Code Coverage Report

"^S_": {
114 @@ -1248,6 +977,7 @@

GCC Code Coverage Report

"type": "string",
115 @@ -1255,6 +985,7 @@

GCC Code Coverage Report

"minLength": 3
116 @@ -1262,6 +993,7 @@

GCC Code Coverage Report

}
117 @@ -1269,56 +1001,67 @@

GCC Code Coverage Report

}
118 })"); })");
119
- 5/10 + 6/12
-
✓ Branch 0 taken 10 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 10 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 10 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 40 times.
✓ Branch 8 taken 10 times.
-
✗ Branch 9 not taken.
+
✓ Branch 9 taken 10 times.
+
✓ Branch 10 taken 30 times.
+
✓ Branch 12 taken 10 times.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
10 std::vector<std::string> ref_keys{"paths", "/pets/test", "get", "requestBody/content/application%2Fjson/schema"};50 std::vector<std::string> ref_keys{"paths", "/pets/test", "get", "requestBody/content/application%2Fjson/schema"};
120
- 1/2 + 3/6
-
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 10 times.
+
✗ Branch 5 not taken.
+
✓ Branch 6 taken 10 times.
10 validator_ = std::make_unique<BodyValidator>(schema_doc_, ref_keys); validator_ = std::make_unique<BodyValidator>(schema_doc_, ref_keys);
121 10 } }
122 @@ -1326,27 +1069,31 @@

GCC Code Coverage Report

123 rapidjson::Document schema_doc_; rapidjson::Document schema_doc_;
124 std::unique_ptr<BodyValidator> validator_; std::unique_ptr<BodyValidator> validator_;
125 };};
126 @@ -1354,40 +1101,38 @@

GCC Code Coverage Report

127
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST_F(TestBodyValidator, ValidJson)5TEST_F(TestBodyValidator, ValidJson)
128 {{
129 12 std::string json_str = R"({
130 @@ -1395,6 +1140,7 @@

GCC Code Coverage Report

"userId": 12345,
131 @@ -1402,6 +1148,7 @@

GCC Code Coverage Report

"username": "johndoe_2023",
132 @@ -1409,6 +1156,7 @@

GCC Code Coverage Report

"email": "john.doe@example.com",
133 @@ -1416,6 +1164,7 @@

GCC Code Coverage Report

"age": 28,
134 @@ -1423,6 +1172,7 @@

GCC Code Coverage Report

"phoneNumber": "+12345678901",
135 @@ -1430,6 +1180,7 @@

GCC Code Coverage Report

"address": {
136 @@ -1437,6 +1188,7 @@

GCC Code Coverage Report

"street": "123 Main St",
137 @@ -1444,6 +1196,7 @@

GCC Code Coverage Report

"city": "Anytown",
138 @@ -1451,6 +1204,7 @@

GCC Code Coverage Report

"state": "CA",
139 @@ -1458,6 +1212,7 @@

GCC Code Coverage Report

"zipCode": "90210"
140 @@ -1465,6 +1220,7 @@

GCC Code Coverage Report

},
141 @@ -1472,6 +1228,7 @@

GCC Code Coverage Report

"subscriptionType": "gold",
142 @@ -1479,6 +1236,7 @@

GCC Code Coverage Report

"preferences": {
143 @@ -1486,6 +1244,7 @@

GCC Code Coverage Report

"newsletter": true,
144 @@ -1493,6 +1252,7 @@

GCC Code Coverage Report

"themes": ["dark", "light"]
145 @@ -1500,6 +1260,7 @@

GCC Code Coverage Report

},
146 @@ -1507,6 +1268,7 @@

GCC Code Coverage Report

"createdAt": "2023-04-05T08:00:00Z",
147 @@ -1514,77 +1276,113 @@

GCC Code Coverage Report

"S_example": "This is a pattern property"
148 })"; })";
149 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string error_msg;2 std::string error_msg;
150
- 3/14 + 3/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
-
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::NONE);2 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::NONE);
151
- 2/12 + 2/22
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✓ Branch 20 taken 1 times.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
1 EXPECT_TRUE(error_msg.empty());4 EXPECT_TRUE(error_msg.empty());
152 +
+ 1/2 +
+
✓ Branch 0 taken 1 times.
+
✗ Branch 1 not taken.
+
+
1}4}
153 @@ -1592,40 +1390,38 @@

GCC Code Coverage Report

154
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST_F(TestBodyValidator, InvalidParsing)5TEST_F(TestBodyValidator, InvalidParsing)
155 {{
156 14 std::string json_str = R"({
157 @@ -1633,6 +1429,7 @@

GCC Code Coverage Report

"userId": 12345
158 @@ -1640,6 +1437,7 @@

GCC Code Coverage Report

"username": "johndoe_2023",
159 @@ -1647,6 +1445,7 @@

GCC Code Coverage Report

"email": "john.doe@example.com",
160 @@ -1654,6 +1453,7 @@

GCC Code Coverage Report

"age": 28,
161 @@ -1661,6 +1461,7 @@

GCC Code Coverage Report

"phoneNumber": "+12345678901",
162 @@ -1668,6 +1469,7 @@

GCC Code Coverage Report

"address": {
163 @@ -1675,6 +1477,7 @@

GCC Code Coverage Report

"street": "123 Main St",
164 @@ -1682,6 +1485,7 @@

GCC Code Coverage Report

"city": "Anytown",
165 @@ -1689,6 +1493,7 @@

GCC Code Coverage Report

"state": "CA",
166 @@ -1696,6 +1501,7 @@

GCC Code Coverage Report

"zipCode": "90210"
167 @@ -1703,6 +1509,7 @@

GCC Code Coverage Report

},
168 @@ -1710,6 +1517,7 @@

GCC Code Coverage Report

"subscriptionType": "gold",
169 @@ -1717,6 +1525,7 @@

GCC Code Coverage Report

"preferences": {
170 @@ -1724,6 +1533,7 @@

GCC Code Coverage Report

"newsletter": true,
171 @@ -1731,6 +1541,7 @@

GCC Code Coverage Report

"themes": ["dark", "light"]
172 @@ -1738,6 +1549,7 @@

GCC Code Coverage Report

},
173 @@ -1745,6 +1557,7 @@

GCC Code Coverage Report

"createdAt": "2023-04-05T08:00:00Z",
174 @@ -1752,225 +1565,267 @@

GCC Code Coverage Report

"S_example": "This is a pattern property"
175 })"; })";
176 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string error_msg;2 std::string error_msg;
177
- 3/14 + 3/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
-
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);2 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);
178
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(error_msg.empty());2 EXPECT_FALSE(error_msg.empty());
179
- 1/2 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✗ Branch 4 not taken.
1 rapidjson::Document doc;4 rapidjson::Document doc;
180
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 doc.Parse(error_msg.c_str());2 doc.Parse(error_msg.c_str());
181
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(doc.HasParseError());2 EXPECT_FALSE(doc.HasParseError());
182
- 5/18 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
-
✗ Branch 16 not taken.
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");6 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");
183
- 6/20 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
1 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "parserError");8 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "parserError");
184 +
+ 2/3 +
+
✓ Branch 0 taken 1 times.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1}4}
185 -
- 4/8 -
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
-
4TEST_F(TestBodyValidator, InvalidIntegerType)2TEST_F(TestBodyValidator, InvalidIntegerType)
186 {{
187 12 std::string json_str = R"({
188 @@ -1978,6 +1833,7 @@

GCC Code Coverage Report

"userId": "not-an-integer",
189 @@ -1985,6 +1841,7 @@

GCC Code Coverage Report

"username": "johndoe_2023",
190 @@ -1992,6 +1849,7 @@

GCC Code Coverage Report

"email": "john.doe@example.com",
191 @@ -1999,6 +1857,7 @@

GCC Code Coverage Report

"age": 28,
192 @@ -2006,6 +1865,7 @@

GCC Code Coverage Report

"phoneNumber": "+12345678901",
193 @@ -2013,6 +1873,7 @@

GCC Code Coverage Report

"address": {
194 @@ -2020,6 +1881,7 @@

GCC Code Coverage Report

"street": "123 Main St",
195 @@ -2027,6 +1889,7 @@

GCC Code Coverage Report

"city": "Anytown",
196 @@ -2034,6 +1897,7 @@

GCC Code Coverage Report

"state": "CA",
197 @@ -2041,6 +1905,7 @@

GCC Code Coverage Report

"zipCode": "90210"
198 @@ -2048,6 +1913,7 @@

GCC Code Coverage Report

},
199 @@ -2055,6 +1921,7 @@

GCC Code Coverage Report

"subscriptionType": "gold",
200 @@ -2062,6 +1929,7 @@

GCC Code Coverage Report

"preferences": {
201 @@ -2069,6 +1937,7 @@

GCC Code Coverage Report

"newsletter": true,
202 @@ -2076,6 +1945,7 @@

GCC Code Coverage Report

"themes": ["dark", "light"]
203 @@ -2083,6 +1953,7 @@

GCC Code Coverage Report

},
204 @@ -2090,6 +1961,7 @@

GCC Code Coverage Report

"createdAt": "2023-04-05T08:00:00Z",
205 @@ -2097,223 +1969,275 @@

GCC Code Coverage Report

"S_example": "This is a pattern property"
206 })"; })";
207 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string error_msg;2 std::string error_msg;
208
- 3/14 + 3/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
-
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);2 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);
209
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(error_msg.empty());2 EXPECT_FALSE(error_msg.empty());
210
- 1/2 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✗ Branch 4 not taken.
1 rapidjson::Document doc;4 rapidjson::Document doc;
211
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 doc.Parse(error_msg.c_str());2 doc.Parse(error_msg.c_str());
212
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(doc.HasParseError());2 EXPECT_FALSE(doc.HasParseError());
213
- 5/18 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
-
✗ Branch 16 not taken.
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");6 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");
214
- 6/20 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
1 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "type");6 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "type");
215
- 6/20 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
1 EXPECT_EQ(std::string(doc["details"]["instance"].GetString()), "#/userId");8 EXPECT_EQ(std::string(doc["details"]["instance"].GetString()), "#/userId");
216 +
+ 1/2 +
+
✓ Branch 0 taken 1 times.
+
✗ Branch 1 not taken.
+
+
1}4}
217 @@ -2321,40 +2245,38 @@

GCC Code Coverage Report

218
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST_F(TestBodyValidator, InvalidStringType)5TEST_F(TestBodyValidator, InvalidStringType)
219 {{
220 12 std::string json_str = R"({
221 @@ -2362,6 +2284,7 @@

GCC Code Coverage Report

"userId": 12345,
222 @@ -2369,6 +2292,7 @@

GCC Code Coverage Report

"username": 123,
223 @@ -2376,6 +2300,7 @@

GCC Code Coverage Report

"email": "john.doe@example.com",
224 @@ -2383,6 +2308,7 @@

GCC Code Coverage Report

"age": 28,
225 @@ -2390,6 +2316,7 @@

GCC Code Coverage Report

"phoneNumber": "+12345678901",
226 @@ -2397,6 +2324,7 @@

GCC Code Coverage Report

"address": {
227 @@ -2404,6 +2332,7 @@

GCC Code Coverage Report

"street": "123 Main St",
228 @@ -2411,6 +2340,7 @@

GCC Code Coverage Report

"city": "Anytown",
229 @@ -2418,6 +2348,7 @@

GCC Code Coverage Report

"state": "CA",
230 @@ -2425,6 +2356,7 @@

GCC Code Coverage Report

"zipCode": "90210"
231 @@ -2432,6 +2364,7 @@

GCC Code Coverage Report

},
232 @@ -2439,6 +2372,7 @@

GCC Code Coverage Report

"subscriptionType": "gold",
233 @@ -2446,6 +2380,7 @@

GCC Code Coverage Report

"preferences": {
234 @@ -2453,6 +2388,7 @@

GCC Code Coverage Report

"newsletter": true,
235 @@ -2460,6 +2396,7 @@

GCC Code Coverage Report

"themes": ["dark", "light"]
236 @@ -2467,6 +2404,7 @@

GCC Code Coverage Report

},
237 @@ -2474,6 +2412,7 @@

GCC Code Coverage Report

"createdAt": "2023-04-05T08:00:00Z",
238 @@ -2481,223 +2420,275 @@

GCC Code Coverage Report

"S_example": "This is a pattern property"
239 })"; })";
240 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string error_msg;2 std::string error_msg;
241
- 3/14 + 3/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
-
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);2 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);
242
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(error_msg.empty());2 EXPECT_FALSE(error_msg.empty());
243
- 1/2 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✗ Branch 4 not taken.
1 rapidjson::Document doc;4 rapidjson::Document doc;
244
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 doc.Parse(error_msg.c_str());2 doc.Parse(error_msg.c_str());
245
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(doc.HasParseError());2 EXPECT_FALSE(doc.HasParseError());
246
- 5/18 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
-
✗ Branch 16 not taken.
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");6 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");
247
- 6/20 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
1 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "type");6 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "type");
248
- 6/20 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
1 EXPECT_EQ(std::string(doc["details"]["instance"].GetString()), "#/username");8 EXPECT_EQ(std::string(doc["details"]["instance"].GetString()), "#/username");
249 +
+ 1/2 +
+
✓ Branch 0 taken 1 times.
+
✗ Branch 1 not taken.
+
+
1}4}
250 @@ -2705,40 +2696,38 @@

GCC Code Coverage Report

251
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST_F(TestBodyValidator, InvalidArrayUniqueItems)5TEST_F(TestBodyValidator, InvalidArrayUniqueItems)
252 {{
253 12 std::string json_str = R"({
254 @@ -2746,6 +2735,7 @@

GCC Code Coverage Report

"userId": 12345,
255 @@ -2753,6 +2743,7 @@

GCC Code Coverage Report

"username": "johndoe_2023",
256 @@ -2760,6 +2751,7 @@

GCC Code Coverage Report

"email": "john.doe@example.com",
257 @@ -2767,6 +2759,7 @@

GCC Code Coverage Report

"age": 28,
258 @@ -2774,6 +2767,7 @@

GCC Code Coverage Report

"phoneNumber": "+12345678901",
259 @@ -2781,6 +2775,7 @@

GCC Code Coverage Report

"address": {
260 @@ -2788,6 +2783,7 @@

GCC Code Coverage Report

"street": "123 Main St",
261 @@ -2795,6 +2791,7 @@

GCC Code Coverage Report

"city": "Anytown",
262 @@ -2802,6 +2799,7 @@

GCC Code Coverage Report

"state": "CA",
263 @@ -2809,6 +2807,7 @@

GCC Code Coverage Report

"zipCode": "90210"
264 @@ -2816,6 +2815,7 @@

GCC Code Coverage Report

},
265 @@ -2823,6 +2823,7 @@

GCC Code Coverage Report

"subscriptionType": "gold",
266 @@ -2830,6 +2831,7 @@

GCC Code Coverage Report

"preferences": {
267 @@ -2837,6 +2839,7 @@

GCC Code Coverage Report

"newsletter": true,
268 @@ -2844,6 +2847,7 @@

GCC Code Coverage Report

"themes": ["dark", "dark", "light"]
269 @@ -2851,6 +2855,7 @@

GCC Code Coverage Report

},
270 @@ -2858,6 +2863,7 @@

GCC Code Coverage Report

"createdAt": "2023-04-05T08:00:00Z",
271 @@ -2865,223 +2871,275 @@

GCC Code Coverage Report

"S_example": "This is a pattern property"
272 })"; })";
273 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string error_msg;2 std::string error_msg;
274
- 3/14 + 3/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
-
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);2 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);
275
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(error_msg.empty());2 EXPECT_FALSE(error_msg.empty());
276
- 1/2 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✗ Branch 4 not taken.
1 rapidjson::Document doc;4 rapidjson::Document doc;
277
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 doc.Parse(error_msg.c_str());2 doc.Parse(error_msg.c_str());
278
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(doc.HasParseError());2 EXPECT_FALSE(doc.HasParseError());
279
- 5/18 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
-
✗ Branch 16 not taken.
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");6 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");
280
- 6/20 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
1 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "uniqueItems");6 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "uniqueItems");
281
- 6/20 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
1 EXPECT_EQ(std::string(doc["details"]["instance"].GetString()), "#/preferences/themes");10 EXPECT_EQ(std::string(doc["details"]["instance"].GetString()), "#/preferences/themes");
282 +
+ 1/2 +
+
✓ Branch 0 taken 1 times.
+
✗ Branch 1 not taken.
+
+
1}4}
283 @@ -3089,40 +3147,38 @@

GCC Code Coverage Report

284
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST_F(TestBodyValidator, InvalidIntegerMinimum)5TEST_F(TestBodyValidator, InvalidIntegerMinimum)
285 {{
286 12 std::string json_str = R"({
287 @@ -3130,6 +3186,7 @@

GCC Code Coverage Report

"userId": 12345,
288 @@ -3137,6 +3194,7 @@

GCC Code Coverage Report

"username": "johndoe_2023",
289 @@ -3144,6 +3202,7 @@

GCC Code Coverage Report

"email": "john.doe@example.com",
290 @@ -3151,6 +3210,7 @@

GCC Code Coverage Report

"age": 17,
291 @@ -3158,6 +3218,7 @@

GCC Code Coverage Report

"phoneNumber": "+12345678901",
292 @@ -3165,6 +3226,7 @@

GCC Code Coverage Report

"address": {
293 @@ -3172,6 +3234,7 @@

GCC Code Coverage Report

"street": "123 Main St",
294 @@ -3179,6 +3242,7 @@

GCC Code Coverage Report

"city": "Anytown",
295 @@ -3186,6 +3250,7 @@

GCC Code Coverage Report

"state": "CA",
296 @@ -3193,6 +3258,7 @@

GCC Code Coverage Report

"zipCode": "90210"
297 @@ -3200,6 +3266,7 @@

GCC Code Coverage Report

},
298 @@ -3207,6 +3274,7 @@

GCC Code Coverage Report

"subscriptionType": "gold",
299 @@ -3214,6 +3282,7 @@

GCC Code Coverage Report

"preferences": {
300 @@ -3221,6 +3290,7 @@

GCC Code Coverage Report

"newsletter": true,
301 @@ -3228,6 +3298,7 @@

GCC Code Coverage Report

"themes": ["dark"]
302 @@ -3235,6 +3306,7 @@

GCC Code Coverage Report

},
303 @@ -3242,6 +3314,7 @@

GCC Code Coverage Report

"createdAt": "2023-04-05T08:00:00Z",
304 @@ -3249,223 +3322,275 @@

GCC Code Coverage Report

"S_example": "This is a pattern property"
305 })"; })";
306 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string error_msg;2 std::string error_msg;
307
- 3/14 + 3/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
-
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);2 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);
308
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(error_msg.empty());2 EXPECT_FALSE(error_msg.empty());
309
- 1/2 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✗ Branch 4 not taken.
1 rapidjson::Document doc;4 rapidjson::Document doc;
310
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 doc.Parse(error_msg.c_str());2 doc.Parse(error_msg.c_str());
311
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(doc.HasParseError());2 EXPECT_FALSE(doc.HasParseError());
312
- 5/18 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
-
✗ Branch 16 not taken.
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");6 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");
313
- 6/20 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
1 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "minimum");6 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "minimum");
314
- 6/20 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
1 EXPECT_EQ(std::string(doc["details"]["instance"].GetString()), "#/age");8 EXPECT_EQ(std::string(doc["details"]["instance"].GetString()), "#/age");
315 - 1}4}
316 @@ -3473,40 +3598,38 @@

GCC Code Coverage Report

317
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST_F(TestBodyValidator, InvalidIntegerMaximim)5TEST_F(TestBodyValidator, InvalidIntegerMaximim)
318 {{
319 12 std::string json_str = R"({
320 @@ -3514,6 +3637,7 @@

GCC Code Coverage Report

"userId": 12345,
321 @@ -3521,6 +3645,7 @@

GCC Code Coverage Report

"username": "johndoe_2023",
322 @@ -3528,6 +3653,7 @@

GCC Code Coverage Report

"email": "john.doe@example.com",
323 @@ -3535,6 +3661,7 @@

GCC Code Coverage Report

"age": 101,
324 @@ -3542,6 +3669,7 @@

GCC Code Coverage Report

"phoneNumber": "+12345678901",
325 @@ -3549,6 +3677,7 @@

GCC Code Coverage Report

"address": {
326 @@ -3556,6 +3685,7 @@

GCC Code Coverage Report

"street": "123 Main St",
327 @@ -3563,6 +3693,7 @@

GCC Code Coverage Report

"city": "Anytown",
328 @@ -3570,6 +3701,7 @@

GCC Code Coverage Report

"state": "CA",
329 @@ -3577,6 +3709,7 @@

GCC Code Coverage Report

"zipCode": "90210"
330 @@ -3584,6 +3717,7 @@

GCC Code Coverage Report

},
331 @@ -3591,6 +3725,7 @@

GCC Code Coverage Report

"subscriptionType": "gold",
332 @@ -3598,6 +3733,7 @@

GCC Code Coverage Report

"preferences": {
333 @@ -3605,6 +3741,7 @@

GCC Code Coverage Report

"newsletter": true,
334 @@ -3612,6 +3749,7 @@

GCC Code Coverage Report

"themes": ["dark"]
335 @@ -3619,6 +3757,7 @@

GCC Code Coverage Report

},
336 @@ -3626,6 +3765,7 @@

GCC Code Coverage Report

"createdAt": "2023-04-05T08:00:00Z",
337 @@ -3633,223 +3773,275 @@

GCC Code Coverage Report

"S_example": "This is a pattern property"
338 })"; })";
339 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string error_msg;2 std::string error_msg;
340
- 3/14 + 3/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
-
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);2 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);
341
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(error_msg.empty());2 EXPECT_FALSE(error_msg.empty());
342
- 1/2 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✗ Branch 4 not taken.
1 rapidjson::Document doc;4 rapidjson::Document doc;
343
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 doc.Parse(error_msg.c_str());2 doc.Parse(error_msg.c_str());
344
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(doc.HasParseError());2 EXPECT_FALSE(doc.HasParseError());
345
- 5/18 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
-
✗ Branch 16 not taken.
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");6 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");
346
- 6/20 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
1 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "maximum");6 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "maximum");
347
- 6/20 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
1 EXPECT_EQ(std::string(doc["details"]["instance"].GetString()), "#/age");8 EXPECT_EQ(std::string(doc["details"]["instance"].GetString()), "#/age");
348 +
+ 1/2 +
+
✓ Branch 0 taken 1 times.
+
✗ Branch 1 not taken.
+
+
1}4}
349 @@ -3857,40 +4049,38 @@

GCC Code Coverage Report

350
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST_F(TestBodyValidator, InvalidRequired)5TEST_F(TestBodyValidator, InvalidRequired)
351 {{
352 12 std::string json_str = R"({
353 @@ -3898,6 +4088,7 @@

GCC Code Coverage Report

"userId": 12345,
354 @@ -3905,6 +4096,7 @@

GCC Code Coverage Report

"username": "johndoe_2023",
355 @@ -3912,6 +4104,7 @@

GCC Code Coverage Report

"email": "john.doe@example.com",
356 @@ -3919,6 +4112,7 @@

GCC Code Coverage Report

"age": 28,
357 @@ -3926,6 +4120,7 @@

GCC Code Coverage Report

"phoneNumber": "+12345678901",
358 @@ -3933,6 +4128,7 @@

GCC Code Coverage Report

"address": {
359 @@ -3940,6 +4136,7 @@

GCC Code Coverage Report

"street": "123 Main St",
360 @@ -3947,6 +4144,7 @@

GCC Code Coverage Report

"zipCode": "90210"
361 @@ -3954,6 +4152,7 @@

GCC Code Coverage Report

},
362 @@ -3961,6 +4160,7 @@

GCC Code Coverage Report

"subscriptionType": "gold",
363 @@ -3968,6 +4168,7 @@

GCC Code Coverage Report

"preferences": {
364 @@ -3975,6 +4176,7 @@

GCC Code Coverage Report

"newsletter": true,
365 @@ -3982,6 +4184,7 @@

GCC Code Coverage Report

"themes": ["dark"]
366 @@ -3989,6 +4192,7 @@

GCC Code Coverage Report

},
367 @@ -3996,6 +4200,7 @@

GCC Code Coverage Report

"createdAt": "2023-04-05T08:00:00Z",
368 @@ -4003,223 +4208,275 @@

GCC Code Coverage Report

"S_example": "This is a pattern property"
369 })"; })";
370 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string error_msg;2 std::string error_msg;
371
- 3/14 + 3/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
-
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);2 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);
372
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(error_msg.empty());2 EXPECT_FALSE(error_msg.empty());
373
- 1/2 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✗ Branch 4 not taken.
1 rapidjson::Document doc;4 rapidjson::Document doc;
374
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 doc.Parse(error_msg.c_str());2 doc.Parse(error_msg.c_str());
375
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(doc.HasParseError());2 EXPECT_FALSE(doc.HasParseError());
376
- 5/18 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
-
✗ Branch 16 not taken.
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");6 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");
377
- 6/20 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
1 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "required");6 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "required");
378
- 6/20 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
1 EXPECT_EQ(std::string(doc["details"]["instance"].GetString()), "#/address");8 EXPECT_EQ(std::string(doc["details"]["instance"].GetString()), "#/address");
379 - 1}4}
380 @@ -4227,40 +4484,38 @@

GCC Code Coverage Report

381
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST_F(TestBodyValidator, InvalidPatternProp)5TEST_F(TestBodyValidator, InvalidPatternProp)
382 {{
383 12 std::string json_str = R"({
384 @@ -4268,6 +4523,7 @@

GCC Code Coverage Report

"userId": 12345,
385 @@ -4275,6 +4531,7 @@

GCC Code Coverage Report

"username": "johndoe_2023",
386 @@ -4282,6 +4539,7 @@

GCC Code Coverage Report

"email": "john.doe@example.com",
387 @@ -4289,6 +4547,7 @@

GCC Code Coverage Report

"age": 28,
388 @@ -4296,6 +4555,7 @@

GCC Code Coverage Report

"phoneNumber": "+12345678901",
389 @@ -4303,6 +4563,7 @@

GCC Code Coverage Report

"address": {
390 @@ -4310,6 +4571,7 @@

GCC Code Coverage Report

"street": "123 Main St",
391 @@ -4317,6 +4579,7 @@

GCC Code Coverage Report

"city": "Anytown",
392 @@ -4324,6 +4587,7 @@

GCC Code Coverage Report

"state": "CA",
393 @@ -4331,6 +4595,7 @@

GCC Code Coverage Report

"zipCode": "90210"
394 @@ -4338,6 +4603,7 @@

GCC Code Coverage Report

},
395 @@ -4345,6 +4611,7 @@

GCC Code Coverage Report

"subscriptionType": "gold",
396 @@ -4352,6 +4619,7 @@

GCC Code Coverage Report

"preferences": {
397 @@ -4359,6 +4627,7 @@

GCC Code Coverage Report

"newsletter": true,
398 @@ -4366,6 +4635,7 @@

GCC Code Coverage Report

"themes": ["dark"]
399 @@ -4373,6 +4643,7 @@

GCC Code Coverage Report

},
400 @@ -4380,6 +4651,7 @@

GCC Code Coverage Report

"createdAt": "2023-04-01T14:30:00Z",
401 @@ -4387,6 +4659,7 @@

GCC Code Coverage Report

"S_": "This should be invalid",
402 @@ -4394,6 +4667,7 @@

GCC Code Coverage Report

"S_example": "Valid pattern property",
403 @@ -4401,223 +4675,275 @@

GCC Code Coverage Report

"T_example": "Another invalid property"
404 })"; })";
405 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string error_msg;2 std::string error_msg;
406
- 3/14 + 3/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
-
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);2 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);
407
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(error_msg.empty());2 EXPECT_FALSE(error_msg.empty());
408
- 1/2 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✗ Branch 4 not taken.
1 rapidjson::Document doc;4 rapidjson::Document doc;
409
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 doc.Parse(error_msg.c_str());2 doc.Parse(error_msg.c_str());
410
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(doc.HasParseError());2 EXPECT_FALSE(doc.HasParseError());
411
- 5/18 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
-
✗ Branch 16 not taken.
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");6 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");
412
- 6/20 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
1 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "additionalProperties");8 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "additionalProperties");
413
- 6/20 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
1 EXPECT_EQ(std::string(doc["details"]["instance"].GetString()), "#");8 EXPECT_EQ(std::string(doc["details"]["instance"].GetString()), "#");
414 +
+ 1/2 +
+
✓ Branch 0 taken 1 times.
+
✗ Branch 1 not taken.
+
+
1}4}
415 @@ -4625,40 +4951,38 @@

GCC Code Coverage Report

416
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST_F(TestBodyValidator, InvalidEnum)5TEST_F(TestBodyValidator, InvalidEnum)
417 {{
418 12 std::string json_str = R"({
419 @@ -4666,6 +4990,7 @@

GCC Code Coverage Report

"userId": 12345,
420 @@ -4673,6 +4998,7 @@

GCC Code Coverage Report

"username": "johndoe_2023",
421 @@ -4680,6 +5006,7 @@

GCC Code Coverage Report

"email": "john.doe@example.com",
422 @@ -4687,6 +5014,7 @@

GCC Code Coverage Report

"age": 28,
423 @@ -4694,6 +5022,7 @@

GCC Code Coverage Report

"phoneNumber": "+12345678901",
424 @@ -4701,6 +5030,7 @@

GCC Code Coverage Report

"address": {
425 @@ -4708,6 +5038,7 @@

GCC Code Coverage Report

"street": "123 Main St",
426 @@ -4715,6 +5046,7 @@

GCC Code Coverage Report

"city": "Anytown",
427 @@ -4722,6 +5054,7 @@

GCC Code Coverage Report

"state": "CA",
428 @@ -4729,6 +5062,7 @@

GCC Code Coverage Report

"zipCode": "90210"
429 @@ -4736,6 +5070,7 @@

GCC Code Coverage Report

},
430 @@ -4743,6 +5078,7 @@

GCC Code Coverage Report

"subscriptionType": "invalid",
431 @@ -4750,6 +5086,7 @@

GCC Code Coverage Report

"preferences": {
432 @@ -4757,6 +5094,7 @@

GCC Code Coverage Report

"newsletter": true,
433 @@ -4764,6 +5102,7 @@

GCC Code Coverage Report

"themes": ["dark"]
434 @@ -4771,6 +5110,7 @@

GCC Code Coverage Report

},
435 @@ -4778,6 +5118,7 @@

GCC Code Coverage Report

"createdAt": "2023-04-01T14:30:00Z",
436 @@ -4785,6 +5126,7 @@

GCC Code Coverage Report

"S_": "This should be invalid",
437 @@ -4792,6 +5134,7 @@

GCC Code Coverage Report

"S_example": "Valid pattern property",
438 @@ -4799,223 +5142,275 @@

GCC Code Coverage Report

"T_example": "Another invalid property"
439 })"; })";
440 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string error_msg;2 std::string error_msg;
441
- 3/14 + 3/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
-
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);2 EXPECT_EQ(validator_->ValidateJson(json_str, error_msg), ValidationError::INVALID_BODY);
442
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(error_msg.empty());2 EXPECT_FALSE(error_msg.empty());
443
- 1/2 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✗ Branch 4 not taken.
1 rapidjson::Document doc;4 rapidjson::Document doc;
444
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 doc.Parse(error_msg.c_str());2 doc.Parse(error_msg.c_str());
445
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(doc.HasParseError());2 EXPECT_FALSE(doc.HasParseError());
446
- 5/18 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
-
✗ Branch 16 not taken.
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
1 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");6 EXPECT_EQ(std::string(doc["errorCode"].GetString()), "INVALID_BODY");
447
- 6/20 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
1 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "enum");6 EXPECT_EQ(std::string(doc["details"]["code"].GetString()), "enum");
448
- 6/20 + 4/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
1 EXPECT_EQ(std::string(doc["details"]["instance"].GetString()), "#/subscriptionType");10 EXPECT_EQ(std::string(doc["details"]["instance"].GetString()), "#/subscriptionType");
449 +
+ 1/2 +
+
✓ Branch 0 taken 1 times.
+
✗ Branch 1 not taken.
+
+
1}4}
450 @@ -5023,13 +5418,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.body_validator.hpp.5900e7eb1296030f36726ff534d10e68.html b/covhtml-oasvalidator/index.body_validator.hpp.5900e7eb1296030f36726ff534d10e68.html index 4197338..f111047 100644 --- a/covhtml-oasvalidator/index.body_validator.hpp.5900e7eb1296030f36726ff534d10e68.html +++ b/covhtml-oasvalidator/index.body_validator.hpp.5900e7eb1296030f36726ff534d10e68.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,66 +40,22 @@

GCC Code Coverage Report

Lines: - 4 - 4 - 100.0% - - - Functions: 2 2 100.0% Branches: - 0 - 0 - -% + 1 + 2 + 50.0%
-
- -
-
- - +
-
@@ -109,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + + + + - + + + - + + - + + - + + - - + + + - + + - - + + + - - + + + - + + + + +
Exec Source
1 @@ -116,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -123,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -130,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -144,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -151,6 +113,7 @@

GCC Code Coverage Report

7 @@ -158,6 +121,7 @@

GCC Code Coverage Report

#ifndef BODY_VALIDATOR_HPP
8 @@ -165,6 +129,7 @@

GCC Code Coverage Report

#define BODY_VALIDATOR_HPP
9 @@ -172,13 +137,15 @@

GCC Code Coverage Report

10 #include "validators/json_validator.hpp"#include "validators/json_validator.hpp"
11 @@ -186,62 +153,78 @@

GCC Code Coverage Report

12 class BodyValidator: public JsonValidatorclass BodyValidator: public JsonValidator
13 {{
14 public:public:
15 1028 explicit BodyValidator(const rapidjson::Value& schema_val, const std::vector<std::string>& ref_keys)514 explicit BodyValidator(const rapidjson::Value& schema_val, const std::vector<std::string>& ref_keys)
16 +
+ 1/2 +
+
✓ Branch 1 taken 514 times.
+
✗ Branch 2 not taken.
+
+
514 : JsonValidator(schema_val, ref_keys, ValidationError::INVALID_BODY) : JsonValidator(schema_val, ref_keys, ValidationError::INVALID_BODY)
17 1542 { {
18 1028 } }
19 };};
20 @@ -249,6 +232,7 @@

GCC Code Coverage Report

21 @@ -256,6 +240,7 @@

GCC Code Coverage Report

#endif // BODY_VALIDATOR_HPP
22 @@ -263,13 +248,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.common.hpp.97f37bf742f5052b8438bb61c517ae68.html b/covhtml-oasvalidator/index.common.hpp.97f37bf742f5052b8438bb61c517ae68.html index b617bad..4b47568 100644 --- a/covhtml-oasvalidator/index.common.hpp.97f37bf742f5052b8438bb61c517ae68.html +++ b/covhtml-oasvalidator/index.common.hpp.97f37bf742f5052b8438bb61c517ae68.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,110 +40,22 @@

GCC Code Coverage Report

Lines: - 20 - 22 - 90.9% - - - Functions: - 5 - 6 - 83.3% + 17 + 19 + 89.5% Branches: - 16 - 20 - 80.0% + 27 + 54 + 50.0%
-
+ -
-
+
- - -
@@ -153,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + + + + - + + - + + + - + + - + + - + + - + + + - + + - - + + + - - + + + - - + + + - - + + + + - + + - + + - + + - + + - + + + + + + + + - + + - + + - + + - + + - + + + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - + + - + + + + + + + + + - + + - + + + - + + - + + - + + - + + - + + - + + - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - - + + + - + + - - + + + - - + + + - + + - - + + + - + + + - - + + + - + + - - + + + - - + + + - + + - + + - + + - - + + + - + + - + + - - + + + - - + + + + - + + - + + - + + - + + - - + + + - + + - - + + + - - + + + + + +
Exec Source
1 @@ -160,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -167,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -174,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -188,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -195,6 +113,7 @@

GCC Code Coverage Report

7 @@ -202,6 +121,7 @@

GCC Code Coverage Report

#ifndef COMMON_HPP
8 @@ -209,6 +129,7 @@

GCC Code Coverage Report

#define COMMON_HPP
9 @@ -216,20 +137,23 @@

GCC Code Coverage Report

10 #include <string>#include <string>
11 #include <vector>#include <vector>
12 @@ -237,34 +161,39 @@

GCC Code Coverage Report

13 class ValidatorInitExc: public std::exceptionclass ValidatorInitExc: public std::exception
14 {{
15 private:private:
16 std::string ex_msg_; std::string ex_msg_;
17 @@ -272,41 +201,76 @@

GCC Code Coverage Report

18 public:public:
19 3 explicit ValidatorInitExc(std::string message)1 explicit ValidatorInitExc(std::string message)
20 +
+ 2/24 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✗ Branch 4 not taken.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✗ Branch 7 not taken.
+
✗ Branch 8 not taken.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
+
1 : ex_msg_(std::move(message))2 : ex_msg_(std::move(message))
21 3 { {
22 2 } }
23 @@ -314,41 +278,47 @@

GCC Code Coverage Report

24 [[nodiscard]] const char* what() const noexcept override [[nodiscard]] const char* what() const noexcept override
25 { {
26 return ex_msg_.c_str(); return ex_msg_.c_str();
27 } }
28 };};
29 @@ -356,6 +326,7 @@

GCC Code Coverage Report

30 @@ -363,6 +334,7 @@

GCC Code Coverage Report

#define CHECK_ERROR(err) \
31 @@ -370,6 +342,7 @@

GCC Code Coverage Report

if (ValidationError::NONE != err) { \
32 @@ -377,6 +350,7 @@

GCC Code Coverage Report

return err; \
33 @@ -384,6 +358,7 @@

GCC Code Coverage Report

}
34 @@ -391,41 +366,47 @@

GCC Code Coverage Report

35 struct ParamRangestruct ParamRange
36 {{
37 const char* beg; const char* beg;
38 const char* end; const char* end;
39 };};
40 @@ -433,6 +414,7 @@

GCC Code Coverage Report

41 @@ -440,6 +422,7 @@

GCC Code Coverage Report

#ifndef VALIDATION_ERROR
42 @@ -447,83 +430,95 @@

GCC Code Coverage Report

#define VALIDATION_ERROR
43 enum class ValidationErrorenum class ValidationError
44 {{
45 NONE = 0, NONE = 0,
46 INVALID_METHOD = -1, INVALID_METHOD = -1,
47 INVALID_ROUTE = -2, INVALID_ROUTE = -2,
48 INVALID_PATH_PARAM = -3, INVALID_PATH_PARAM = -3,
49 INVALID_QUERY_PARAM = -4, INVALID_QUERY_PARAM = -4,
50 INVALID_HEADER_PARAM = -5, INVALID_HEADER_PARAM = -5,
51 INVALID_BODY = -6, INVALID_BODY = -6,
52 INVALID_RSP = -7 INVALID_RSP = -7
53 };};
54 @@ -531,6 +526,7 @@

GCC Code Coverage Report

#endif
55 @@ -538,97 +534,111 @@

GCC Code Coverage Report

56 enum class HttpMethodenum class HttpMethod
57 {{
58 GET = 0, GET = 0,
59 POST, POST,
60 PUT, PUT,
61 DELETE, DELETE,
62 HEAD, HEAD,
63 OPTIONS, OPTIONS,
64 PATCH, PATCH,
65 CONNECT, CONNECT,
66 TRACE, TRACE,
67 COUNT COUNT
68 };};
69 @@ -636,20 +646,23 @@

GCC Code Coverage Report

70 enum class ParamStyleenum class ParamStyle
71 {{
72 @@ -657,6 +670,7 @@

GCC Code Coverage Report

SIMPLE, // Path, query, header
73 @@ -664,6 +678,7 @@

GCC Code Coverage Report

LABEL, // Path
74 @@ -671,6 +686,7 @@

GCC Code Coverage Report

MATRIX, // Path
75 @@ -678,6 +694,7 @@

GCC Code Coverage Report

FORM, // Query
76 @@ -685,6 +702,7 @@

GCC Code Coverage Report

SPACE_DELIM, // Query
77 @@ -692,6 +710,7 @@

GCC Code Coverage Report

PIPE_DELIM, // Query
78 @@ -699,20 +718,23 @@

GCC Code Coverage Report

DEEP_OBJ, // Query
79 CONTENT CONTENT
80 };};
81 @@ -720,55 +742,63 @@

GCC Code Coverage Report

82 enum class PrimitiveTypeenum class PrimitiveType
83 {{
84 BOOLEAN, BOOLEAN,
85 INTEGER, INTEGER,
86 NUMBER, NUMBER,
87 STRING STRING
88 };};
89 @@ -776,69 +806,79 @@

GCC Code Coverage Report

90 enum class ExtendedTypeenum class ExtendedType
91 {{
92 BOOLEAN, BOOLEAN,
93 INTEGER, INTEGER,
94 NUMBER, NUMBER,
95 STRING, STRING,
96 ARRAY, ARRAY,
97 OBJECT OBJECT
98 };};
99 @@ -846,69 +886,79 @@

GCC Code Coverage Report

100 enum class SecurityTypeenum class SecurityType
101 {{
102 HTTP_BASIC, HTTP_BASIC,
103 HTTP_BEARER, HTTP_BEARER,
104 APIKEY_QUERY, APIKEY_QUERY,
105 APIKEY_HEADER, APIKEY_HEADER,
106 OAUTH2, OAUTH2,
107 OIDC OIDC
108 };};
109 @@ -916,64 +966,87 @@

GCC Code Coverage Report

110 36091239inline const char* Seek(const char* beg, const char* end, const char c)inline const char* Seek(const char* beg, const char* end, const char c)
111 {{
112
- 4/4 + 12/12
-
✓ Branch 0 taken 197000464 times.
-
✓ Branch 1 taken 8318185 times.
-
✓ Branch 2 taken 169227410 times.
-
✓ Branch 3 taken 27773054 times.
+
✓ Branch 0 taken 498629920 times.
+
✓ Branch 1 taken 16680722 times.
+
✓ Branch 2 taken 431326372 times.
+
✓ Branch 3 taken 67303548 times.
+
✓ Branch 4 taken 97702969 times.
+
✓ Branch 5 taken 7515595 times.
+
✓ Branch 6 taken 82671767 times.
+
✓ Branch 7 taken 15031202 times.
+
✓ Branch 8 taken 25788 times.
+
✓ Branch 9 taken 748 times.
+
✓ Branch 10 taken 23400 times.
+
✓ Branch 11 taken 2388 times.
205318649 while (beg < end && *beg != c) {620555742 while (beg < end && *beg != c) {
113 169227410 ++beg;514021539 ++beg;
114 } }
115 +
+ 2/2 +
+
✓ Branch 0 taken 840 times.
+
✓ Branch 1 taken 4728 times.
+
+
36091239 return beg;106534203 return beg;
116 }}
117 @@ -981,41 +1054,46 @@

GCC Code Coverage Report

118 12216inline std::string EscapeSlash(const std::string& str)2088inline std::string EscapeSlash(const std::string& str)
119 {{
120 12216 std::string escaped_str;2088 std::string escaped_str;
121
2/2
-
✓ Branch 0 taken 2088 times.
-
✓ Branch 1 taken 57120 times.
+
✓ Branch 0 taken 57120 times.
+
✓ Branch 1 taken 2088 times.
163320 for (char ch : str) {59208 for (char ch : str) {
122 @@ -1028,71 +1106,79 @@

GCC Code Coverage Report

57120 if (ch == '/') { if (ch == '/') {
123
- 2/2 + 1/2
-
✓ Branch 0 taken 46992 times.
-
✓ Branch 1 taken 52056 times.
+
✓ Branch 1 taken 5064 times.
+
✗ Branch 2 not taken.
5064 escaped_str += "%2F"; escaped_str += "%2F";
124 } else { } else {
125 +
+ 1/2 +
+
✓ Branch 1 taken 52056 times.
+
✗ Branch 2 not taken.
+
+
52056 escaped_str += ch;109176 escaped_str += ch;
126 } }
127 } }
128 return escaped_str;2088 return escaped_str;
129 -
- 1/2 -
-
✓ Branch 0 taken 2088 times.
-
✗ Branch 1 not taken.
-
-
210312}}
130 @@ -1100,85 +1186,89 @@

GCC Code Coverage Report

131 3297inline std::string JoinReference(const std::vector<std::string>& ref_keys)inline std::string JoinReference(const std::vector<std::string>& ref_keys)
132 {{
133 3297 std::string reference = "#"; std::string reference = "#";
134
2/2
-
✓ Branch 0 taken 3297 times.
-
✓ Branch 1 taken 15971 times.
+
✓ Branch 0 taken 15971 times.
+
✓ Branch 1 taken 3297 times.
19268 for (const auto& ref_key : ref_keys) { for (const auto& ref_key : ref_keys) {
135
- 2/4 + 3/6
-
✓ Branch 0 taken 15971 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 15971 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 15971 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 3953 times.
+
✓ Branch 4 taken 12018 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
15971 reference += "/" + ref_key;35895 reference += "/" + ref_key;
136 } }
137 return reference;3297 return reference;
138 -
- 1/2 -
-
✓ Branch 0 taken 3297 times.
-
✗ Branch 1 not taken.
-
-
3297}}
139 @@ -1186,6 +1276,7 @@

GCC Code Coverage Report

140 @@ -1193,6 +1284,7 @@

GCC Code Coverage Report

#endif // COMMON_HPP
141 @@ -1200,13 +1292,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.content_deserializer.cpp.57f26e76ce06904e4bd4af5b174aef20.html b/covhtml-oasvalidator/index.content_deserializer.cpp.57f26e76ce06904e4bd4af5b174aef20.html index fa91a2c..3f56b5a 100644 --- a/covhtml-oasvalidator/index.content_deserializer.cpp.57f26e76ce06904e4bd4af5b174aef20.html +++ b/covhtml-oasvalidator/index.content_deserializer.cpp.57f26e76ce06904e4bd4af5b174aef20.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,143 +40,22 @@

GCC Code Coverage Report

Lines: - 20 - 20 - 100.0% - - - Functions: - 9 - 9 + 19 + 19 100.0% Branches: - 22 - 54 - 40.7% + 28 + 103 + 27.2%
-
+ -
-
+
- - -
@@ -186,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + - + + + - + + - + + - + + - + + - + + - + + - + + + - - + + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - + + - + + - + + - - + + + + - + + - + + - + + - + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + +
Exec Source
1 @@ -193,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -200,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -207,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -221,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -228,20 +113,23 @@

GCC Code Coverage Report

7 #include "deserializers/content_deserializer.hpp"#include "deserializers/content_deserializer.hpp"
8 #include <gtest/gtest.h>#include <gtest/gtest.h>
9 @@ -249,55 +137,63 @@

GCC Code Coverage Report

10 enum : size_tenum : size_t
11 {{
12 INPUT, INPUT,
13 START_CHAR, START_CHAR,
14 SKIP_NAME, SKIP_NAME,
15 SHOULD_THROW SHOULD_THROW
16 };};
17 @@ -305,13 +201,15 @@

GCC Code Coverage Report

18 1static const std::string EXPECTED = R"({"boolTrue":true,"boolFalse":false,"int":123,"number":123.456,"string":"abc xyz"})";static const std::string EXPECTED = R"({"boolTrue":true,"boolFalse":false,"int":123,"number":123.456,"string":"abc xyz"})";
19 @@ -319,83 +217,108 @@

GCC Code Coverage Report

20 class ContentDeserializerTest: public ::testing::TestWithParam<std::tuple<std::string, char, bool, bool>>4class ContentDeserializerTest: public ::testing::TestWithParam<std::tuple<std::string, char, bool, bool>>
21 {{
22 protected:protected:
23 4 void SetUp() override void SetUp() override
24 { {
25 4 auto params = GetParam(); auto params = GetParam();
26
1/2
-
✓ Branch 0 taken 4 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 4 times.
+
✗ Branch 2 not taken.
4 std::string input = std::get<INPUT>(params); std::string input = std::get<INPUT>(params);
27 +
+ 1/2 +
+
✓ Branch 1 taken 4 times.
+
✗ Branch 2 not taken.
+
+
4 char start_char = std::get<START_CHAR>(params); char start_char = std::get<START_CHAR>(params);
28 4 bool skip_name = std::get<SKIP_NAME>(params); bool skip_name = std::get<SKIP_NAME>(params);
29 +
+ 1/2 +
+
✓ Branch 1 taken 4 times.
+
✗ Branch 2 not taken.
+
+
4 bool should_throw = std::get<SHOULD_THROW>(params); bool should_throw = std::get<SHOULD_THROW>(params);
30 @@ -403,48 +326,71 @@

GCC Code Coverage Report

31
- 1/2 + 3/6
-
✓ Branch 0 taken 4 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 4 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 4 times.
+
✗ Branch 5 not taken.
+
✓ Branch 6 taken 4 times.
4 deserializer_ = std::make_unique<ContentDeserializer>("test", start_char, skip_name); deserializer_ = std::make_unique<ContentDeserializer>("test", start_char, skip_name);
32
1/2
-
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
+
✗ Branch 2 not taken.
4 input_ = input; input_ = input;
33 +
+ 1/2 +
+
✓ Branch 0 taken 4 times.
+
✗ Branch 1 not taken.
+
+
4 expect_throw_ = should_throw; expect_throw_ = should_throw;
34 +
+ 1/2 +
+
✓ Branch 0 taken 4 times.
+
✗ Branch 1 not taken.
+
+
4 }8 }
35 @@ -452,34 +398,39 @@

GCC Code Coverage Report

36 std::unique_ptr<ContentDeserializer> deserializer_; std::unique_ptr<ContentDeserializer> deserializer_;
37 std::string input_; std::string input_;
38 bool expect_throw_; bool expect_throw_;
39 };};
40 @@ -487,35 +438,50 @@

GCC Code Coverage Report

41
- 5/10 + 8/22
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 4 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
+
✗ Branch 11 not taken.
+
✓ Branch 13 taken 1 times.
+
✗ Branch 14 not taken.
+
✓ Branch 15 taken 1 times.
+
✗ Branch 16 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 18 not taken.
+
✓ Branch 19 taken 1 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
14TEST_P(ContentDeserializerTest, Deserialize)26TEST_P(ContentDeserializerTest, Deserialize)
42 {{
43 @@ -527,89 +493,127 @@

GCC Code Coverage Report

4 if (expect_throw_) {8 if (expect_throw_) {
44
- 6/16 + 5/41
-
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
-
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
-
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
+
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✓ Branch 23 taken 1 times.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✓ Branch 28 taken 1 times.
+
✗ Branch 29 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 41 not taken.
+
✗ Branch 44 not taken.
+
✗ Branch 45 not taken.
+
✗ Branch 47 not taken.
+
✗ Branch 48 not taken.
+
✗ Branch 52 not taken.
+
✗ Branch 53 not taken.
+
✗ Branch 55 not taken.
+
✗ Branch 56 not taken.
+
✗ Branch 60 not taken.
+
✗ Branch 61 not taken.
+
✗ Branch 62 not taken.
+
✗ Branch 63 not taken.
2 EXPECT_THROW({ deserializer_->Deserialize(input_.c_str(), input_.c_str() + input_.size()); }, DeserializationException);4 EXPECT_THROW({ deserializer_->Deserialize(input_.c_str(), input_.c_str() + input_.size()); }, DeserializationException);
45 1 } else { } else {
46 3 std::string result = deserializer_->Deserialize(input_.c_str(), input_.c_str() + input_.size());6 std::string result = deserializer_->Deserialize(input_.c_str(), input_.c_str() + input_.size());
47
- 2/12 + 3/18
-
✓ Branch 0 taken 3 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 3 times.
+
✓ Branch 1 taken 3 times.
+
✗ Branch 2 not taken.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
+
✓ Branch 4 taken 3 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✓ Branch 17 taken 3 times.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
3 EXPECT_EQ(result, EXPECTED);12 EXPECT_EQ(result, EXPECTED);
48 3 }6 }
49 5}8}
50 @@ -617,117 +621,126 @@

GCC Code Coverage Report

51
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
-
✓ Branch 7 taken 1 times.
+
✓ Branch 2 taken 4 times.
6INSTANTIATE_TEST_CASE_P(10INSTANTIATE_TEST_CASE_P(
52 ContentDeserializerTests, ContentDeserializerTest, ContentDeserializerTests, ContentDeserializerTest,
53 ::testing::Values(std::make_tuple("%7B%22boolTrue%22%3Atrue%2C%22boolFalse%22%3Afalse%2C%22int%22%3A123%2C%22number%22%3A123.456%2C%22string%22%3A%22abc%20xyz%22%7D", '\0', ::testing::Values(std::make_tuple("%7B%22boolTrue%22%3Atrue%2C%22boolFalse%22%3Afalse%2C%22int%22%3A123%2C%22number%22%3A123.456%2C%22string%22%3A%22abc%20xyz%22%7D", '\0',
54 false, false), false, false),
55 std::make_tuple("test=%7B%22boolTrue%22%3Atrue%2C%22boolFalse%22%3Afalse%2C%22int%22%3A123%2C%" std::make_tuple("test=%7B%22boolTrue%22%3Atrue%2C%22boolFalse%22%3Afalse%2C%22int%22%3A123%2C%"
56 "22number%22%3A123.456%2C%22string%22%3A%22abc%20xyz%22%7D", "22number%22%3A123.456%2C%22string%22%3A%22abc%20xyz%22%7D",
57 '\0', true, false), '\0', true, false),
58 std::make_tuple("?test=%7B%22boolTrue%22%3Atrue%2C%22boolFalse%22%3Afalse%2C%22int%22%3A123%2C%" std::make_tuple("?test=%7B%22boolTrue%22%3Atrue%2C%22boolFalse%22%3Afalse%2C%22int%22%3A123%2C%"
59 "22number%22%3A123.456%2C%22string%22%3A%22abc%20xyz%22%7D", "22number%22%3A123.456%2C%22string%22%3A%22abc%20xyz%22%7D",
60 '?', true, false), '?', true, false),
61 std::make_tuple("test%7B%22boolTrue%22%3Atrue%2C%22boolFalse%22%3Afalse%2C%22int%22%3A123%2C%" std::make_tuple("test%7B%22boolTrue%22%3Atrue%2C%22boolFalse%22%3Afalse%2C%22int%22%3A123%2C%"
62 "22number%22%3A123.456%2C%22string%22%3A%22abc%" "22number%22%3A123.456%2C%22string%22%3A%22abc%"
63 "20xyz%22%7D&test2=123", "20xyz%22%7D&test2=123",
64 '\0', true, true))); '\0', true, true)));
65 @@ -735,13 +748,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.content_deserializer.cpp.d77221e0e65297e6662cf81e0b74f82b.html b/covhtml-oasvalidator/index.content_deserializer.cpp.d77221e0e65297e6662cf81e0b74f82b.html index 483efbd..9d713df 100644 --- a/covhtml-oasvalidator/index.content_deserializer.cpp.d77221e0e65297e6662cf81e0b74f82b.html +++ b/covhtml-oasvalidator/index.content_deserializer.cpp.d77221e0e65297e6662cf81e0b74f82b.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,66 +40,22 @@

GCC Code Coverage Report

Lines: - 25 - 29 - 86.2% - - - Functions: - 2 - 2 - 100.0% + 24 + 28 + 85.7% Branches: 14 - 37 - 37.8% + 45 + 31.1%
-
- -
-
- - +
-
@@ -109,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + + - - + + + - + + - - + + + - - + + + + - - + + + - + + - - + + + + - - + + + - - + + + - + + - + + - - + + + + - + + - + + + - + + - + + - + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - - + + + + - - + + + - + + - + + + - - + + + - - + + + - + + - + + - - + + + + - + + - - + + + - - + + + +
Exec Source
1 @@ -116,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -123,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -130,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -144,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -151,13 +113,15 @@

GCC Code Coverage Report

7 #include "deserializers/content_deserializer.hpp"#include "deserializers/content_deserializer.hpp"
8 @@ -165,34 +129,39 @@

GCC Code Coverage Report

9 344ContentDeserializer::ContentDeserializer(const std::string& param_name, char start, bool skip_name)172ContentDeserializer::ContentDeserializer(const std::string& param_name, char start, bool skip_name)
10 172 : BaseDeserializer(param_name, start, skip_name) : BaseDeserializer(param_name, start, skip_name)
11 516{{
12 344}172}
13 @@ -200,27 +169,31 @@

GCC Code Coverage Report

14 10std::string ContentDeserializer::Deserialize(const char* beg, const char* const end)11std::string ContentDeserializer::Deserialize(const char* beg, const char* const end)
15 {{
16 10 const char* cursor = beg;11 const char* cursor = beg;
17 @@ -228,48 +201,54 @@

GCC Code Coverage Report

18 10 CheckNSkipStart(cursor);11 CheckNSkipStart(cursor);
19
2/2
-
✓ Branch 0 taken 3 times.
-
✓ Branch 1 taken 7 times.
+
✓ Branch 0 taken 7 times.
+
✓ Branch 1 taken 4 times.
10 if (skip_name_) {11 if (skip_name_) {
20 7 CheckNSkipName(cursor, end); CheckNSkipName(cursor, end);
21 7 CheckNSkipChar(cursor, end, '='); CheckNSkipChar(cursor, end, '=');
22 7 } }
23 @@ -277,27 +256,37 @@

GCC Code Coverage Report

24 +
+ 1/2 +
+
✓ Branch 1 taken 10 times.
+
✗ Branch 2 not taken.
+
+
10 std::string ret; std::string ret;
25
1/2
-
✓ Branch 0 taken 10 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 10 times.
+
✗ Branch 2 not taken.
10 ret.reserve(end - cursor); ret.reserve(end - cursor);
26 @@ -305,140 +294,155 @@

GCC Code Coverage Report

27 -
- 2/2 -
-
✓ Branch 0 taken 10 times.
-
✓ Branch 1 taken 438 times.
-
-
448 while (cursor < end) { while (cursor < end) {
28 438 char c = *cursor++; char c = *cursor++;
29
2/3
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 272 times.
-
✓ Branch 2 taken 166 times.
+
✓ Branch 0 taken 166 times.
+
✗ Branch 1 not taken.
+
✓ Branch 2 taken 272 times.
438 switch (c) { switch (c) {
30 case '%': {166 case '%': {
31
1/2
-
✓ Branch 0 taken 166 times.
-
✗ Branch 1 not taken.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 166 times.
166 if (cursor + 1 >= end) { if (cursor + 1 >= end) {
32 throw DeserializationException("Incomplete percent encoding for '" + param_name_ + "'"); throw DeserializationException("Incomplete percent encoding for '" + param_name_ + "'");
33 } }
34 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 166 times.
+
+
166 const char dec1 = kHexLookupTable[static_cast<unsigned char>(*cursor++)]; const char dec1 = kHexLookupTable[static_cast<unsigned char>(*cursor++)];
35 166 const char dec2 = kHexLookupTable[static_cast<unsigned char>(*cursor++)]; const char dec2 = kHexLookupTable[static_cast<unsigned char>(*cursor++)];
36
1/2
-
✓ Branch 0 taken 166 times.
-
✗ Branch 1 not taken.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 166 times.
166 if (dec1 < 0 || dec2 < 0) { if (dec1 < 0 || dec2 < 0) {
37 throw DeserializationException("Invalid HEX character for '" + param_name_ + "'"); throw DeserializationException("Invalid HEX character for '" + param_name_ + "'");
38 } }
39
1/2
-
✓ Branch 0 taken 166 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 166 times.
+
✗ Branch 2 not taken.
166 ret.push_back((dec1 << 4) | dec2); ret.push_back((dec1 << 4) | dec2);
40 166 } break; } break;
41 @@ -446,27 +450,31 @@

GCC Code Coverage Report

42 case '+': case '+':
43 ret += ' '; ret += ' ';
44 break; break;
45 @@ -474,41 +482,56 @@

GCC Code Coverage Report

46 default:272 default:
47 +
+ 3/4 +
+
✓ Branch 1 taken 272 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 438 times.
+
✓ Branch 4 taken 10 times.
+
+
272 ret += c;720 ret += c;
48 break; break;
49 } }
50 } }
51 @@ -516,41 +539,38 @@

GCC Code Coverage Report

52
1/2
-
✓ Branch 0 taken 10 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 10 times.
+
✗ Branch 2 not taken.
10 CheckEnd(cursor, end); CheckEnd(cursor, end);
53 return ret;10 return ret;
54 -
- 1/2 -
-
✓ Branch 0 taken 10 times.
-
✗ Branch 1 not taken.
-
-
554}}
55 @@ -558,13 +578,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.content_deserializer.hpp.583a616222c0a36ca90d4a01a951bc87.html b/covhtml-oasvalidator/index.content_deserializer.hpp.583a616222c0a36ca90d4a01a951bc87.html index ab5874d..2289e52 100644 --- a/covhtml-oasvalidator/index.content_deserializer.hpp.583a616222c0a36ca90d4a01a951bc87.html +++ b/covhtml-oasvalidator/index.content_deserializer.hpp.583a616222c0a36ca90d4a01a951bc87.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -45,51 +44,18 @@

GCC Code Coverage Report

1 100.0% - - Functions: - 1 - 1 - 100.0% - Branches: - 0 - 0 - -% + 1 + 2 + 50.0%
-
- -
-
- - +
-
@@ -98,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + + + - + + + - + + - + + - + + - + + + - + + - + + - + + + + +
Exec Source
1 @@ -105,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -112,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -119,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -133,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -140,6 +113,7 @@

GCC Code Coverage Report

7 @@ -147,6 +121,7 @@

GCC Code Coverage Report

#ifndef CONTENT_DESERIALIZER_HPP
8 @@ -154,13 +129,15 @@

GCC Code Coverage Report

#define CONTENT_DESERIALIZER_HPP
9 #include "deserializers/base_deserializer.hpp"#include "deserializers/base_deserializer.hpp"
10 @@ -168,34 +145,39 @@

GCC Code Coverage Report

11 class ContentDeserializer final: public BaseDeserializerclass ContentDeserializer final: public BaseDeserializer
12 {{
13 public:public:
14 explicit ContentDeserializer(const std::string& param_name, char start, bool skip_name); explicit ContentDeserializer(const std::string& param_name, char start, bool skip_name);
15 @@ -203,27 +185,38 @@

GCC Code Coverage Report

16 std::string Deserialize(const char* beg, const char* const end) override; std::string Deserialize(const char* beg, const char* const end) override;
17 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 4 times.
+
+
8 ~ContentDeserializer() override = default; ~ContentDeserializer() override = default;
18 };};
19 @@ -231,6 +224,7 @@

GCC Code Coverage Report

20 @@ -238,6 +232,7 @@

GCC Code Coverage Report

#endif // CONTENT_DESERIALIZER_HPP
21 @@ -245,13 +240,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.css b/covhtml-oasvalidator/index.css index 76d71bc..b51dc2e 100644 --- a/covhtml-oasvalidator/index.css +++ b/covhtml-oasvalidator/index.css @@ -1,30 +1,13 @@ :root { font-family: sans-serif; - --tab_size: 4; -} - -.theme-green, .theme-blue { - --unknown_color: lightgray; + --unknown_color: LightGray; --low_color: #FF6666; --medium_color: #F9FD63; --high_color: #85E485; --covered_color: #85E485; --uncovered_color: #FF8C8C; - --excluded_color: #53BFFD; - --warning_color: orangered; - --takenBranch_color: green; - --notTakenBranch_color: red; - --takenDecision_color: green; - --uncheckedDecision_color: darkorange; - --notTakenDecision_color: red; - --invokedCall_color: green; - --notInvokedCall_color: red; -} - -.theme-blue { - --high_color: #66B4FF; - --covered_color: #66B4Ff; - --takenBranch_color: blue; + --takenBranch_color: Green; + --notTakenBranch_color: Red; } body @@ -110,11 +93,6 @@ table.legend td.legend font-size: 80%; } -table.legend td.warning_text -{ - color: var(--warning_color); -} - table.coverage td, table.coverage th { @@ -162,8 +140,7 @@ table.legend span.coverage-high } table.legend span.coverage-unknown, -table.coverage td.coverage-unknown, -table.file-list td.coverage-unknow +table.coverage td.coverage-unknown { background-color: var(--unknown_color) !important; } @@ -171,26 +148,24 @@ table.file-list td.coverage-unknow table.legend span.coverage-none, table.legend span.coverage-low, table.coverage td.coverage-none, -table.coverage td.coverage-low, -table.file-list td.coverage-none, -table.file-list td.coverage-low +table.coverage td.coverage-low { background-color: var(--low_color) !important; } table.legend span.coverage-medium, -table.coverage td.coverage-medium, -table.file-list td.coverage-medium +table.coverage td.coverage-medium { background-color: var(--medium_color) !important; } table.legend span.coverage-high, -table.coverage td.coverage-high, -table.file-list td.coverage-high +table.coverage td.coverage-high { background-color: var(--high_color) !important; } + + /*** End of Summary formats ***/ /*** Meter formats ***/ @@ -331,13 +306,7 @@ span.uncoveredLine background-color: var(--uncovered_color) !important; } -td.excludedLine, -span.excludedLine -{ - background-color: var(--excluded_color) !important; -} - -.linebranch, .linedecision, .linecall, .linecount +.linebranch, .linecount { font-family: monospace; border-right: 1px gray solid; @@ -345,16 +314,15 @@ span.excludedLine text-align: right; } - -.linebranchDetails, .linedecisionDetails, .linecallDetails +.linebranchDetails { position: relative; } -.linebranchSummary, .linedecisionSummary, .linecallSummary +.linebranchSummary { cursor: help; } -.linebranchContents, .linedecisionContents, .linecallContents +.linebranchContents { font-family: sans-serif; font-size: small; @@ -378,31 +346,6 @@ span.excludedLine color: var(--notTakenBranch_color) !important; } -.takenDecision -{ - color: var(--takenDecision_color) !important; -} - -.notTakenDecision -{ - color: var(--notTakenDecision_color) !important; -} - -.uncheckedDecision -{ - color: var(--uncheckedDecision_color) !important; -} - -.invokedCall -{ - color: var(--invokedCall_color) !important; -} - -.notInvokedCall -{ - color: var(--notInvokedCall_color) !important; -} - .src { padding-left: 12px; @@ -416,10 +359,7 @@ span.excludedLine } span.takenBranch, -span.notTakenBranch, -span.takenDecision, -span.notTakenDecision, -span.uncheckedDecision +span.notTakenBranch { font-family: monospace; font-weight: bold; @@ -432,31 +372,6 @@ pre margin-bottom: 0; } -.listOfFunctions td, .listOfFunctions th { - padding: 0 10px; -} -.listOfFunctions th -{ - text-align: center; - color: white; - background-color: SteelBlue; -} -.listOfFunctions tr > td { - background: aliceblue; -} -.listOfFunctions tr:nth-child(even) > td { - background: LightSteelBlue -} -.listOfFunctions tr:hover > td -{ - background-color: #ddd; -} -.listOfFunctions tr > td > a -{ - text-decoration: none; - color: inherit; -} - .source-line { height : 15px; @@ -533,7 +448,6 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ .gd { color: #A00000 } /* Generic.Deleted */ .ge { font-style: italic } /* Generic.Emph */ -.ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .gr { color: #E40000 } /* Generic.Error */ .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .gi { color: #008400 } /* Generic.Inserted */ diff --git a/covhtml-oasvalidator/index.functions.html b/covhtml-oasvalidator/index.functions.html deleted file mode 100644 index db8e820..0000000 --- a/covhtml-oasvalidator/index.functions.html +++ /dev/null @@ -1,4969 +0,0 @@ - - - - - - GCC Code Coverage Report - - - - - -
-

GCC Code Coverage Report

- -
- -
-
- - - - - - - - - -
Directory:./
Date:2023-11-25 18:43:34
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - -
ExecTotalCoverage
Lines:1626175392.8%
Functions:32434992.8%
Branches:2238572739.1%
-
-
- -
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FunctionFileLineCall count
- (anonymous namespace)::GetArrayItemsSeparator(ParamStyle, bool) - - src/validators/param_validators.cpp - - 45 - - called 836 times -
- (anonymous namespace)::GetDeserializer(rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) - - src/validators/param_validators.cpp - - 149 - - called 2783 times -
- (anonymous namespace)::GetKTMap(rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) - - src/validators/param_validators.cpp - - 128 - - called 564 times -
- (anonymous namespace)::GetObjKVSep(bool) - - src/validators/param_validators.cpp - - 85 - - called 564 times -
- (anonymous namespace)::GetObjVKSep(ParamStyle, bool) - - src/validators/param_validators.cpp - - 93 - - called 564 times -
- (anonymous namespace)::GetStartChar(ParamStyle) - - src/validators/param_validators.cpp - - 14 - - called 2783 times -
- (anonymous namespace)::HasArrayRunningName(ParamStyle, bool) - - src/validators/param_validators.cpp - - 69 - - called 836 times -
- (anonymous namespace)::HasNameAtStart(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, ParamStyle, bool, ExtendedType) - - src/validators/param_validators.cpp - - 26 - - called 2783 times -
- ArrayDeserializer::ArrayDeserializer(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char, bool, PrimitiveType, char, bool, bool) - - src/deserializers/array_deserializer.cpp - - 9 - - called 1742 times -
- ArrayDeserializer::CheckElementData(char const*&, char const*) const - - include/deserializers/array_deserializer.hpp - - 26 - - called 6282304 times -
- ArrayDeserializer::CheckSeparator(char const*&, char const*) const - - include/deserializers/array_deserializer.hpp - - 33 - - called 3963811 times -
- ArrayDeserializer::Deserialize(char const*, char const*) - - src/deserializers/array_deserializer.cpp - - 19 - - called 2697635 times -
- ArrayDeserializer::DeserializeBooleanArray(char const*&, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const - - include/deserializers/array_deserializer.hpp - - 47 - - called 31 times -
- ArrayDeserializer::DeserializeIntegerArray(char const*&, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const - - include/deserializers/array_deserializer.hpp - - 61 - - called 2318544 times -
- ArrayDeserializer::DeserializeNumberArray(char const*&, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const - - include/deserializers/array_deserializer.hpp - - 75 - - called 21 times -
- ArrayDeserializer::DeserializeStringArray(char const*&, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const - - include/deserializers/array_deserializer.hpp - - 89 - - called 379039 times -
- ArrayDeserializer::~ArrayDeserializer() - - include/deserializers/array_deserializer.hpp - - 18 - - called 70 times -
- ArrayDeserializerTest::ArrayDeserializerTest() - - test/unittest/src/deserializers/array_deserializer.cpp - - 23 - - called 35 times -
- ArrayDeserializerTest::SetUp() - - test/unittest/src/deserializers/array_deserializer.cpp - - 26 - - called 35 times -
- ArrayDeserializerTest::~ArrayDeserializerTest() - - test/unittest/src/deserializers/array_deserializer.cpp - - 23 - - called 35 times -
- ArrayDeserializerTest_Deserialize_Test::AddToRegistry() - - test/unittest/src/deserializers/array_deserializer.cpp - - 50 - - called 1 time -
- ArrayDeserializerTest_Deserialize_Test::ArrayDeserializerTest_Deserialize_Test() - - test/unittest/src/deserializers/array_deserializer.cpp - - 50 - - called 70 times -
- ArrayDeserializerTest_Deserialize_Test::TestBody() - - test/unittest/src/deserializers/array_deserializer.cpp - - 50 - - called 35 times -
- ArrayDeserializerTest_Deserialize_Test::~ArrayDeserializerTest_Deserialize_Test() - - test/unittest/src/deserializers/array_deserializer.cpp - - 50 - - called 105 times -
- BaseDeserializer::BaseDeserializer(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char, bool) - - src/deserializers/base_deserializer.cpp - - 9 - - called 2857 times -
- BaseDeserializer::CheckData(char const*&, char const*) const - - include/deserializers/base_deserializer.hpp - - 81 - - called 42567591 times -
- BaseDeserializer::CheckEnd(char const*&, char const*) const - - include/deserializers/base_deserializer.hpp - - 201 - - called 36427349 times -
- BaseDeserializer::CheckNSkipChar(char const*&, char const*, char) const - - include/deserializers/base_deserializer.hpp - - 62 - - called 21779082 times -
- BaseDeserializer::CheckNSkipName(char const*&, char const*) const - - include/deserializers/base_deserializer.hpp - - 73 - - called 19797115 times -
- BaseDeserializer::CheckNSkipStart(char const*&) const - - include/deserializers/base_deserializer.hpp - - 51 - - called 42567609 times -
- BaseDeserializer::DeserializeBoolean(char const*&, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const - - include/deserializers/base_deserializer.hpp - - 88 - - called 1981932 times -
- BaseDeserializer::DeserializeInteger(char const*&, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const - - include/deserializers/base_deserializer.hpp - - 104 - - called 41809432 times -
- BaseDeserializer::DeserializeNumber(char const*&, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const - - include/deserializers/base_deserializer.hpp - - 120 - - called 83 times -
- BaseDeserializer::DeserializeString(char const*&, char const*, char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const - - include/deserializers/base_deserializer.hpp - - 171 - - called 2084674 times -
- BaseDeserializer::DeserializeString(char const*&, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const - - include/deserializers/base_deserializer.hpp - - 141 - - called 29 times -
- BaseDeserializer::~BaseDeserializer() - - include/deserializers/base_deserializer.hpp - - 40 - - called 74 times -
- BaseValidator::BaseValidator(ValidationError) - - src/validators/base_validator.cpp - - 9 - - called 27 times -
- BaseValidator::BaseValidator(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, ValidationError) - - src/validators/base_validator.cpp - - 15 - - called 3297 times -
- BaseValidator::GetErrHeader() const - - src/validators/base_validator.cpp - - 22 - - not called -
- BaseValidator::InitErrHeader() - - src/validators/base_validator.cpp - - 27 - - called 3324 times -
- BaseValidator::~BaseValidator() - - include/validators/base_validator.hpp - - 23 - - called 1188 times -
- BodyValidator::BodyValidator(rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) - - include/validators/body_validator.hpp - - 15 - - called 1028 times -
- BodyValidator::~BodyValidator() - - include/validators/body_validator.hpp - - 12 - - called 30 times -
- ContentDeserializer::ContentDeserializer(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char, bool) - - src/deserializers/content_deserializer.cpp - - 9 - - called 344 times -
- ContentDeserializer::Deserialize(char const*, char const*) - - src/deserializers/content_deserializer.cpp - - 14 - - called 10 times -
- ContentDeserializer::~ContentDeserializer() - - include/deserializers/content_deserializer.hpp - - 17 - - called 8 times -
- ContentDeserializerTest::ContentDeserializerTest() - - test/unittest/src/deserializers/content_deserializer.cpp - - 20 - - called 4 times -
- ContentDeserializerTest::SetUp() - - test/unittest/src/deserializers/content_deserializer.cpp - - 23 - - called 4 times -
- ContentDeserializerTest::~ContentDeserializerTest() - - test/unittest/src/deserializers/content_deserializer.cpp - - 20 - - called 4 times -
- ContentDeserializerTest_Deserialize_Test::AddToRegistry() - - test/unittest/src/deserializers/content_deserializer.cpp - - 41 - - called 1 time -
- ContentDeserializerTest_Deserialize_Test::ContentDeserializerTest_Deserialize_Test() - - test/unittest/src/deserializers/content_deserializer.cpp - - 41 - - called 8 times -
- ContentDeserializerTest_Deserialize_Test::TestBody() - - test/unittest/src/deserializers/content_deserializer.cpp - - 41 - - called 4 times -
- ContentDeserializerTest_Deserialize_Test::~ContentDeserializerTest_Deserialize_Test() - - test/unittest/src/deserializers/content_deserializer.cpp - - 41 - - called 12 times -
- DeserializationException::DeserializationException(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) - - include/deserializers/base_deserializer.hpp - - 23 - - called 12280540 times -
- DeserializationException::what() const - - include/deserializers/base_deserializer.hpp - - 28 - - called 6140255 times -
- DeserializationException::~DeserializationException() - - include/deserializers/base_deserializer.hpp - - 17 - - called 12280540 times -
- EscapeSlash(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) - - include/utils/common.hpp - - 118 - - called 12216 times -
- HeaderParamValidator::HeaderParamValidator(rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) - - src/validators/param_validators.cpp - - 260 - - called 1600 times -
- HeaderParamValidator::~HeaderParamValidator() - - include/validators/param_validators.hpp - - 67 - - called 16 times -
- HeaderParamValidatorTest::HeaderParamValidatorTest() - - test/unittest/src/validators/header_param_validator.cpp - - 18 - - called 8 times -
- HeaderParamValidatorTest::SetUp() - - test/unittest/src/validators/header_param_validator.cpp - - 21 - - called 8 times -
- HeaderParamValidatorTest::~HeaderParamValidatorTest() - - test/unittest/src/validators/header_param_validator.cpp - - 18 - - called 8 times -
- HeaderParamValidatorTest_ValidateParam_Test::AddToRegistry() - - test/unittest/src/validators/header_param_validator.cpp - - 52 - - called 1 time -
- HeaderParamValidatorTest_ValidateParam_Test::HeaderParamValidatorTest_ValidateParam_Test() - - test/unittest/src/validators/header_param_validator.cpp - - 52 - - called 16 times -
- HeaderParamValidatorTest_ValidateParam_Test::TestBody() - - test/unittest/src/validators/header_param_validator.cpp - - 52 - - called 8 times -
- HeaderParamValidatorTest_ValidateParam_Test::~HeaderParamValidatorTest_ValidateParam_Test() - - test/unittest/src/validators/header_param_validator.cpp - - 52 - - called 24 times -
- JoinReference(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) - - include/utils/common.hpp - - 131 - - called 3297 times -
- JsonValidator::CreateErrorMessages(rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::CrtAllocator> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, bool) - - src/validators/json_validator.cpp - - 48 - - called 14 times -
- JsonValidator::GetString(rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::CrtAllocator> const&) - - src/validators/json_validator.cpp - - 133 - - called 23 times -
- JsonValidator::HandleError(char const*, rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::CrtAllocator> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, bool) - - src/validators/json_validator.cpp - - 65 - - called 14 times -
- JsonValidator::JsonValidator(rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, ValidationError) - - src/validators/json_validator.cpp - - 9 - - called 3297 times -
- JsonValidator::ValidateJson(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/validators/json_validator.cpp - - 18 - - called 49728176 times -
- JsonValidator::~JsonValidator() - - src/validators/json_validator.cpp - - 163 - - called 1161 times -
- MethodValidator::MethodValidator() - - src/validators/method_validator.cpp - - 9 - - called 54 times -
- MethodValidator::ValidateJson(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/validators/method_validator.cpp - - 14 - - called 192270232 times -
- MethodValidatorTest_Negative_Test::MethodValidatorTest_Negative_Test() - - test/unittest/src/validators/method_validator.cpp - - 36 - - called 2 times -
- MethodValidatorTest_Negative_Test::TestBody() - - test/unittest/src/validators/method_validator.cpp - - 36 - - called 1 time -
- MethodValidatorTest_Negative_Test::~MethodValidatorTest_Negative_Test() - - test/unittest/src/validators/method_validator.cpp - - 36 - - called 3 times -
- MethodValidatorTest_Positive_Test::MethodValidatorTest_Positive_Test() - - test/unittest/src/validators/method_validator.cpp - - 10 - - called 2 times -
- MethodValidatorTest_Positive_Test::TestBody() - - test/unittest/src/validators/method_validator.cpp - - 10 - - called 1 time -
- MethodValidatorTest_Positive_Test::~MethodValidatorTest_Positive_Test() - - test/unittest/src/validators/method_validator.cpp - - 10 - - called 3 times -
- OASValidator::OASValidator(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) - - src/oas_validator.cpp - - 11 - - called 50 times -
- OASValidator::ValidateBody(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator.cpp - - 21 - - called 10029397 times -
- OASValidator::ValidateHeaders(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator.cpp - - 35 - - called 16142647 times -
- OASValidator::ValidatePathParam(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator.cpp - - 25 - - called 2787760 times -
- OASValidator::ValidateQueryParam(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator.cpp - - 30 - - called 14359570 times -
- OASValidator::ValidateRequest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator.cpp - - 46 - - called 1 time -
- OASValidator::ValidateRequest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator.cpp - - 57 - - called 31234304 times -
- OASValidator::ValidateRequest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator.cpp - - 41 - - called 17 times -
- OASValidator::ValidateRequest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator.cpp - - 51 - - called 3 times -
- OASValidator::ValidateRoute(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator.cpp - - 16 - - called 117716506 times -
- OASValidator::~OASValidator() - - src/oas_validator.cpp - - 63 - - called 48 times -
- OASValidatorImp::GetValidators(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, ValidatorsStore*&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::unordered_map<unsigned long, ParamRange, std::__1::hash<unsigned long>, std::__1::equal_to<unsigned long>, std::__1::allocator<std::__1::pair<unsigned long const, ParamRange> > >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) - - src/oas_validator_imp.cpp - - 202 - - called 192270205 times -
- OASValidatorImp::OASValidatorImp(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) - - src/oas_validator_imp.cpp - - 11 - - called 50 times -
- OASValidatorImp::PerMethod::PerMethod() - - include/oas_validator_imp.hpp - - 34 - - called 450 times -
- OASValidatorImp::PerMethod::~PerMethod() - - include/oas_validator_imp.hpp - - 34 - - called 450 times -
- OASValidatorImp::ValidateBody(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator_imp.cpp - - 74 - - called 10029397 times -
- OASValidatorImp::ValidateHeaders(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator_imp.cpp - - 106 - - called 16142647 times -
- OASValidatorImp::ValidatePathParam(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator_imp.cpp - - 84 - - called 2787760 times -
- OASValidatorImp::ValidateQueryParam(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator_imp.cpp - - 95 - - called 14359570 times -
- OASValidatorImp::ValidateRequest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator_imp.cpp - - 132 - - called 1 time -
- OASValidatorImp::ValidateRequest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator_imp.cpp - - 169 - - called 31234304 times -
- OASValidatorImp::ValidateRequest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator_imp.cpp - - 117 - - called 17 times -
- OASValidatorImp::ValidateRequest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator_imp.cpp - - 150 - - called 3 times -
- OASValidatorImp::ValidateRoute(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/oas_validator_imp.cpp - - 68 - - called 117716506 times -
- OASValidatorImp::~OASValidatorImp() - - src/oas_validator_imp.cpp - - 191 - - called 48 times -
- OASValidatorImpTest_ValidateRoute_Test::OASValidatorImpTest_ValidateRoute_Test() - - test/unittest/src/oas_validator.cpp - - 11 - - called 2 times -
- OASValidatorImpTest_ValidateRoute_Test::TestBody() - - test/unittest/src/oas_validator.cpp - - 11 - - called 1 time -
- OASValidatorImpTest_ValidateRoute_Test::~OASValidatorImpTest_ValidateRoute_Test() - - test/unittest/src/oas_validator.cpp - - 11 - - called 3 times -
- OASValidatorPerf::OASValidatorPerf() - - test/perftest/src/perftest.cpp - - 16 - - called 18 times -
- OASValidatorPerf::~OASValidatorPerf() - - test/perftest/src/perftest.cpp - - 13 - - not called -
- OASValidatorPerf_ComplexValidRequest_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 185 - - called 12 times -
- OASValidatorPerf_ComplexValidRequest_Benchmark::OASValidatorPerf_ComplexValidRequest_Benchmark() - - test/perftest/src/perftest.cpp - - 185 - - called 2 times -
- OASValidatorPerf_ComplexValidRequest_Benchmark::~OASValidatorPerf_ComplexValidRequest_Benchmark() - - test/perftest/src/perftest.cpp - - 185 - - not called -
- OASValidatorPerf_InvalidBody_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 112 - - called 16 times -
- OASValidatorPerf_InvalidBody_Benchmark::OASValidatorPerf_InvalidBody_Benchmark() - - test/perftest/src/perftest.cpp - - 112 - - called 2 times -
- OASValidatorPerf_InvalidBody_Benchmark::~OASValidatorPerf_InvalidBody_Benchmark() - - test/perftest/src/perftest.cpp - - 112 - - not called -
- OASValidatorPerf_InvalidHeaderParam_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 94 - - called 14 times -
- OASValidatorPerf_InvalidHeaderParam_Benchmark::OASValidatorPerf_InvalidHeaderParam_Benchmark() - - test/perftest/src/perftest.cpp - - 94 - - called 2 times -
- OASValidatorPerf_InvalidHeaderParam_Benchmark::~OASValidatorPerf_InvalidHeaderParam_Benchmark() - - test/perftest/src/perftest.cpp - - 94 - - not called -
- OASValidatorPerf_InvalidMethod_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 29 - - called 16 times -
- OASValidatorPerf_InvalidMethod_Benchmark::OASValidatorPerf_InvalidMethod_Benchmark() - - test/perftest/src/perftest.cpp - - 29 - - called 2 times -
- OASValidatorPerf_InvalidMethod_Benchmark::~OASValidatorPerf_InvalidMethod_Benchmark() - - test/perftest/src/perftest.cpp - - 29 - - not called -
- OASValidatorPerf_InvalidPathParam_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 60 - - called 14 times -
- OASValidatorPerf_InvalidPathParam_Benchmark::OASValidatorPerf_InvalidPathParam_Benchmark() - - test/perftest/src/perftest.cpp - - 60 - - called 2 times -
- OASValidatorPerf_InvalidPathParam_Benchmark::~OASValidatorPerf_InvalidPathParam_Benchmark() - - test/perftest/src/perftest.cpp - - 60 - - not called -
- OASValidatorPerf_InvalidQueryParam_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 76 - - called 14 times -
- OASValidatorPerf_InvalidQueryParam_Benchmark::OASValidatorPerf_InvalidQueryParam_Benchmark() - - test/perftest/src/perftest.cpp - - 76 - - called 2 times -
- OASValidatorPerf_InvalidQueryParam_Benchmark::~OASValidatorPerf_InvalidQueryParam_Benchmark() - - test/perftest/src/perftest.cpp - - 76 - - not called -
- OASValidatorPerf_InvalidRequest1_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 131 - - called 16 times -
- OASValidatorPerf_InvalidRequest1_Benchmark::OASValidatorPerf_InvalidRequest1_Benchmark() - - test/perftest/src/perftest.cpp - - 131 - - called 2 times -
- OASValidatorPerf_InvalidRequest1_Benchmark::~OASValidatorPerf_InvalidRequest1_Benchmark() - - test/perftest/src/perftest.cpp - - 131 - - not called -
- OASValidatorPerf_InvalidRequest2_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 142 - - called 14 times -
- OASValidatorPerf_InvalidRequest2_Benchmark::OASValidatorPerf_InvalidRequest2_Benchmark() - - test/perftest/src/perftest.cpp - - 142 - - called 2 times -
- OASValidatorPerf_InvalidRequest2_Benchmark::~OASValidatorPerf_InvalidRequest2_Benchmark() - - test/perftest/src/perftest.cpp - - 142 - - not called -
- OASValidatorPerf_InvalidRequest3_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 152 - - called 14 times -
- OASValidatorPerf_InvalidRequest3_Benchmark::OASValidatorPerf_InvalidRequest3_Benchmark() - - test/perftest/src/perftest.cpp - - 152 - - called 2 times -
- OASValidatorPerf_InvalidRequest3_Benchmark::~OASValidatorPerf_InvalidRequest3_Benchmark() - - test/perftest/src/perftest.cpp - - 152 - - not called -
- OASValidatorPerf_InvalidRequest4_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 163 - - called 14 times -
- OASValidatorPerf_InvalidRequest4_Benchmark::OASValidatorPerf_InvalidRequest4_Benchmark() - - test/perftest/src/perftest.cpp - - 163 - - called 2 times -
- OASValidatorPerf_InvalidRequest4_Benchmark::~OASValidatorPerf_InvalidRequest4_Benchmark() - - test/perftest/src/perftest.cpp - - 163 - - not called -
- OASValidatorPerf_InvalidRequest5_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 174 - - called 14 times -
- OASValidatorPerf_InvalidRequest5_Benchmark::OASValidatorPerf_InvalidRequest5_Benchmark() - - test/perftest/src/perftest.cpp - - 174 - - called 2 times -
- OASValidatorPerf_InvalidRequest5_Benchmark::~OASValidatorPerf_InvalidRequest5_Benchmark() - - test/perftest/src/perftest.cpp - - 174 - - not called -
- OASValidatorPerf_InvalidRoute_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 44 - - called 14 times -
- OASValidatorPerf_InvalidRoute_Benchmark::OASValidatorPerf_InvalidRoute_Benchmark() - - test/perftest/src/perftest.cpp - - 44 - - called 2 times -
- OASValidatorPerf_InvalidRoute_Benchmark::~OASValidatorPerf_InvalidRoute_Benchmark() - - test/perftest/src/perftest.cpp - - 44 - - not called -
- OASValidatorPerf_ValidBody_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 104 - - called 15 times -
- OASValidatorPerf_ValidBody_Benchmark::OASValidatorPerf_ValidBody_Benchmark() - - test/perftest/src/perftest.cpp - - 104 - - called 2 times -
- OASValidatorPerf_ValidBody_Benchmark::~OASValidatorPerf_ValidBody_Benchmark() - - test/perftest/src/perftest.cpp - - 104 - - not called -
- OASValidatorPerf_ValidHeaderParam_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 84 - - called 16 times -
- OASValidatorPerf_ValidHeaderParam_Benchmark::OASValidatorPerf_ValidHeaderParam_Benchmark() - - test/perftest/src/perftest.cpp - - 84 - - called 2 times -
- OASValidatorPerf_ValidHeaderParam_Benchmark::~OASValidatorPerf_ValidHeaderParam_Benchmark() - - test/perftest/src/perftest.cpp - - 84 - - not called -
- OASValidatorPerf_ValidPathParam_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 52 - - called 14 times -
- OASValidatorPerf_ValidPathParam_Benchmark::OASValidatorPerf_ValidPathParam_Benchmark() - - test/perftest/src/perftest.cpp - - 52 - - called 2 times -
- OASValidatorPerf_ValidPathParam_Benchmark::~OASValidatorPerf_ValidPathParam_Benchmark() - - test/perftest/src/perftest.cpp - - 52 - - not called -
- OASValidatorPerf_ValidQueryParam_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 68 - - called 16 times -
- OASValidatorPerf_ValidQueryParam_Benchmark::OASValidatorPerf_ValidQueryParam_Benchmark() - - test/perftest/src/perftest.cpp - - 68 - - called 2 times -
- OASValidatorPerf_ValidQueryParam_Benchmark::~OASValidatorPerf_ValidQueryParam_Benchmark() - - test/perftest/src/perftest.cpp - - 68 - - not called -
- OASValidatorPerf_ValidRequest_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 120 - - called 14 times -
- OASValidatorPerf_ValidRequest_Benchmark::OASValidatorPerf_ValidRequest_Benchmark() - - test/perftest/src/perftest.cpp - - 120 - - called 2 times -
- OASValidatorPerf_ValidRequest_Benchmark::~OASValidatorPerf_ValidRequest_Benchmark() - - test/perftest/src/perftest.cpp - - 120 - - not called -
- OASValidatorPerf_ValidRoute_Benchmark::BenchmarkCase(benchmark::State&) - - test/perftest/src/perftest.cpp - - 37 - - called 18 times -
- OASValidatorPerf_ValidRoute_Benchmark::OASValidatorPerf_ValidRoute_Benchmark() - - test/perftest/src/perftest.cpp - - 37 - - called 2 times -
- OASValidatorPerf_ValidRoute_Benchmark::~OASValidatorPerf_ValidRoute_Benchmark() - - test/perftest/src/perftest.cpp - - 37 - - not called -
- OASValidatorTest::OASValidatorTest() - - test/unittest/src/oas_validator.cpp - - 16 - - called 6 times -
- OASValidatorTest::SetUp() - - test/unittest/src/oas_validator.cpp - - 19 - - called 6 times -
- OASValidatorTest::~OASValidatorTest() - - test/unittest/src/oas_validator.cpp - - 16 - - called 6 times -
- OASValidatorTest_ValidateBody_Test::OASValidatorTest_ValidateBody_Test() - - test/unittest/src/oas_validator.cpp - - 90 - - called 2 times -
- OASValidatorTest_ValidateBody_Test::TestBody() - - test/unittest/src/oas_validator.cpp - - 90 - - called 1 time -
- OASValidatorTest_ValidateBody_Test::~OASValidatorTest_ValidateBody_Test() - - test/unittest/src/oas_validator.cpp - - 90 - - called 3 times -
- OASValidatorTest_ValidateHeaders_Test::OASValidatorTest_ValidateHeaders_Test() - - test/unittest/src/oas_validator.cpp - - 68 - - called 2 times -
- OASValidatorTest_ValidateHeaders_Test::TestBody() - - test/unittest/src/oas_validator.cpp - - 68 - - called 1 time -
- OASValidatorTest_ValidateHeaders_Test::~OASValidatorTest_ValidateHeaders_Test() - - test/unittest/src/oas_validator.cpp - - 68 - - called 3 times -
- OASValidatorTest_ValidatePathParam_Test::OASValidatorTest_ValidatePathParam_Test() - - test/unittest/src/oas_validator.cpp - - 43 - - called 2 times -
- OASValidatorTest_ValidatePathParam_Test::TestBody() - - test/unittest/src/oas_validator.cpp - - 43 - - called 1 time -
- OASValidatorTest_ValidatePathParam_Test::~OASValidatorTest_ValidatePathParam_Test() - - test/unittest/src/oas_validator.cpp - - 43 - - called 3 times -
- OASValidatorTest_ValidateQueryParam_Test::OASValidatorTest_ValidateQueryParam_Test() - - test/unittest/src/oas_validator.cpp - - 60 - - called 2 times -
- OASValidatorTest_ValidateQueryParam_Test::TestBody() - - test/unittest/src/oas_validator.cpp - - 60 - - called 1 time -
- OASValidatorTest_ValidateQueryParam_Test::~OASValidatorTest_ValidateQueryParam_Test() - - test/unittest/src/oas_validator.cpp - - 60 - - called 3 times -
- OASValidatorTest_ValidateRequst_Test::OASValidatorTest_ValidateRequst_Test() - - test/unittest/src/oas_validator.cpp - - 99 - - called 2 times -
- OASValidatorTest_ValidateRequst_Test::TestBody() - - test/unittest/src/oas_validator.cpp - - 99 - - called 1 time -
- OASValidatorTest_ValidateRequst_Test::~OASValidatorTest_ValidateRequst_Test() - - test/unittest/src/oas_validator.cpp - - 99 - - called 3 times -
- OASValidatorTest_ValidateRoute_Test::OASValidatorTest_ValidateRoute_Test() - - test/unittest/src/oas_validator.cpp - - 26 - - called 2 times -
- OASValidatorTest_ValidateRoute_Test::TestBody() - - test/unittest/src/oas_validator.cpp - - 26 - - called 1 time -
- OASValidatorTest_ValidateRoute_Test::~OASValidatorTest_ValidateRoute_Test() - - test/unittest/src/oas_validator.cpp - - 26 - - called 3 times -
- ObjectDeserializer::Deserialize(char const*, char const*) - - src/deserializers/object_deserializer.cpp - - 18 - - called 9286129 times -
- ObjectDeserializer::DeserializeKey(char const*&, char const*, char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const - - include/deserializers/object_deserializer.hpp - - 29 - - called 2653235 times -
- ObjectDeserializer::ObjectDeserializer(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char, bool, char, char, bool, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, PrimitiveType, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, PrimitiveType> > > const&) - - src/deserializers/object_deserializer.cpp - - 9 - - called 1158 times -
- ObjectDeserializer::~ObjectDeserializer() - - include/deserializers/object_deserializer.hpp - - 21 - - called 30 times -
- ObjectDeserializerTest::ObjectDeserializerTest() - - test/unittest/src/deserializers/object_deserializer.cpp - - 29 - - called 15 times -
- ObjectDeserializerTest::SetUp() - - test/unittest/src/deserializers/object_deserializer.cpp - - 32 - - called 15 times -
- ObjectDeserializerTest::~ObjectDeserializerTest() - - test/unittest/src/deserializers/object_deserializer.cpp - - 29 - - called 15 times -
- ObjectDeserializerTest_Deserialize_Test::AddToRegistry() - - test/unittest/src/deserializers/object_deserializer.cpp - - 53 - - called 1 time -
- ObjectDeserializerTest_Deserialize_Test::ObjectDeserializerTest_Deserialize_Test() - - test/unittest/src/deserializers/object_deserializer.cpp - - 53 - - called 30 times -
- ObjectDeserializerTest_Deserialize_Test::TestBody() - - test/unittest/src/deserializers/object_deserializer.cpp - - 53 - - called 15 times -
- ObjectDeserializerTest_Deserialize_Test::~ObjectDeserializerTest_Deserialize_Test() - - test/unittest/src/deserializers/object_deserializer.cpp - - 53 - - called 45 times -
- ParamValidator::ErrorOnMissing(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const - - src/validators/param_validators.cpp - - 223 - - not called -
- ParamValidator::GetParamInfo(rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, bool, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) - - src/validators/param_validators.cpp - - 229 - - called 2783 times -
- ParamValidator::IsRequired() const - - src/validators/param_validators.cpp - - 218 - - not called -
- ParamValidator::ParamInfo::~ParamInfo() - - include/validators/param_validators.hpp - - 19 - - called 5566 times -
- ParamValidator::ParamValidator(ParamValidator::ParamInfo const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, ValidationError) - - src/validators/param_validators.cpp - - 199 - - called 2783 times -
- ParamValidator::ValidateParam(char const*, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/validators/param_validators.cpp - - 207 - - called 42567535 times -
- ParamValidator::~ParamValidator() - - include/validators/param_validators.hpp - - 33 - - called 1151 times -
- PathArrayParam::PathArrayParam() - - test/unittest/src/validators/path_param_validators.cpp - - 98 - - called 34 times -
- PathArrayParam::SetUp() - - test/unittest/src/validators/path_param_validators.cpp - - 101 - - called 34 times -
- PathArrayParam::~PathArrayParam() - - test/unittest/src/validators/path_param_validators.cpp - - 98 - - called 34 times -
- PathArrayParam_ValidateParam_Test::AddToRegistry() - - test/unittest/src/validators/path_param_validators.cpp - - 139 - - called 1 time -
- PathArrayParam_ValidateParam_Test::PathArrayParam_ValidateParam_Test() - - test/unittest/src/validators/path_param_validators.cpp - - 139 - - called 68 times -
- PathArrayParam_ValidateParam_Test::TestBody() - - test/unittest/src/validators/path_param_validators.cpp - - 139 - - called 34 times -
- PathArrayParam_ValidateParam_Test::~PathArrayParam_ValidateParam_Test() - - test/unittest/src/validators/path_param_validators.cpp - - 139 - - called 102 times -
- PathObjectParam::PathObjectParam() - - test/unittest/src/validators/path_param_validators.cpp - - 184 - - called 9 times -
- PathObjectParam::SetUp() - - test/unittest/src/validators/path_param_validators.cpp - - 187 - - called 9 times -
- PathObjectParam::~PathObjectParam() - - test/unittest/src/validators/path_param_validators.cpp - - 184 - - called 9 times -
- PathObjectParam_ValidateParam_Test::AddToRegistry() - - test/unittest/src/validators/path_param_validators.cpp - - 239 - - called 1 time -
- PathObjectParam_ValidateParam_Test::PathObjectParam_ValidateParam_Test() - - test/unittest/src/validators/path_param_validators.cpp - - 239 - - called 18 times -
- PathObjectParam_ValidateParam_Test::TestBody() - - test/unittest/src/validators/path_param_validators.cpp - - 239 - - called 9 times -
- PathObjectParam_ValidateParam_Test::~PathObjectParam_ValidateParam_Test() - - test/unittest/src/validators/path_param_validators.cpp - - 239 - - called 27 times -
- PathParamValidator::PathParamValidator(rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) - - src/validators/param_validators.cpp - - 244 - - called 1838 times -
- PathParamValidator::~PathParamValidator() - - include/validators/param_validators.hpp - - 49 - - called 158 times -
- PathPrimitiveParam::PathPrimitiveParam() - - test/unittest/src/validators/path_param_validators.cpp - - 21 - - called 36 times -
- PathPrimitiveParam::SetUp() - - test/unittest/src/validators/path_param_validators.cpp - - 24 - - called 36 times -
- PathPrimitiveParam::~PathPrimitiveParam() - - test/unittest/src/validators/path_param_validators.cpp - - 21 - - called 36 times -
- PathPrimitiveParam_ValidateParam_Test::AddToRegistry() - - test/unittest/src/validators/path_param_validators.cpp - - 59 - - called 1 time -
- PathPrimitiveParam_ValidateParam_Test::PathPrimitiveParam_ValidateParam_Test() - - test/unittest/src/validators/path_param_validators.cpp - - 59 - - called 72 times -
- PathPrimitiveParam_ValidateParam_Test::TestBody() - - test/unittest/src/validators/path_param_validators.cpp - - 59 - - called 36 times -
- PathPrimitiveParam_ValidateParam_Test::~PathPrimitiveParam_ValidateParam_Test() - - test/unittest/src/validators/path_param_validators.cpp - - 59 - - called 108 times -
- PathTrie::DeleteNode(PathTrie::Node*) - - src/utils/path_trie.cpp - - 115 - - called 1913 times -
- PathTrie::Insert(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) - - src/utils/path_trie.cpp - - 10 - - called 746 times -
- PathTrie::Node::Node() - - include/utils/path_trie.hpp - - 27 - - called 3826 times -
- PathTrie::Node::~Node() - - include/utils/path_trie.hpp - - 27 - - called 3826 times -
- PathTrie::PathTrie() - - include/utils/path_trie.hpp - - 17 - - called 454 times -
- PathTrie::Search(char const*, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/utils/path_trie.cpp - - 39 - - called 2256613 times -
- PathTrie::Search(char const*, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::unordered_map<unsigned long, ParamRange, std::__1::hash<unsigned long>, std::__1::equal_to<unsigned long>, std::__1::allocator<std::__1::pair<unsigned long const, ParamRange> > >&) - - src/utils/path_trie.cpp - - 73 - - called 8312815 times -
- PathTrie::~PathTrie() - - src/utils/path_trie.cpp - - 108 - - called 454 times -
- PathTrieTest::InsertAndSearch(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - test/unittest/src/utils/path_trie.cpp - - 19 - - called 2 times -
- PathTrieTest::PathTrieTest() - - test/unittest/src/utils/path_trie.cpp - - 13 - - called 2 times -
- PathTrieTest::~PathTrieTest() - - test/unittest/src/utils/path_trie.cpp - - 13 - - called 2 times -
- PathTrieTest_InsertAndSearchSimplePath_Test::PathTrieTest_InsertAndSearchSimplePath_Test() - - test/unittest/src/utils/path_trie.cpp - - 34 - - called 2 times -
- PathTrieTest_InsertAndSearchSimplePath_Test::TestBody() - - test/unittest/src/utils/path_trie.cpp - - 34 - - called 1 time -
- PathTrieTest_InsertAndSearchSimplePath_Test::~PathTrieTest_InsertAndSearchSimplePath_Test() - - test/unittest/src/utils/path_trie.cpp - - 34 - - called 3 times -
- PathTrieTest_SearchNonExistentPath_Test::PathTrieTest_SearchNonExistentPath_Test() - - test/unittest/src/utils/path_trie.cpp - - 42 - - called 2 times -
- PathTrieTest_SearchNonExistentPath_Test::TestBody() - - test/unittest/src/utils/path_trie.cpp - - 42 - - called 1 time -
- PathTrieTest_SearchNonExistentPath_Test::~PathTrieTest_SearchNonExistentPath_Test() - - test/unittest/src/utils/path_trie.cpp - - 42 - - called 3 times -
- PrimitiveDeserializer::Deserialize(char const*, char const*) - - src/deserializers/primitive_deserializer.cpp - - 14 - - called 104781093 times -
- PrimitiveDeserializer::PrimitiveDeserializer(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char, bool, PrimitiveType) - - src/deserializers/primitive_deserializer.cpp - - 9 - - called 2470 times -
- PrimitiveDeserializer::~PrimitiveDeserializer() - - include/deserializers/primitive_deserializer.hpp - - 17 - - called 40 times -
- PrimitiveDeserializerTest::PrimitiveDeserializerTest() - - test/unittest/src/deserializers/primitive_deserializer.cpp - - 23 - - called 20 times -
- PrimitiveDeserializerTest::SetUp() - - test/unittest/src/deserializers/primitive_deserializer.cpp - - 26 - - called 20 times -
- PrimitiveDeserializerTest::~PrimitiveDeserializerTest() - - test/unittest/src/deserializers/primitive_deserializer.cpp - - 23 - - called 20 times -
- PrimitiveDeserializerTest_Deserialize_Test::AddToRegistry() - - test/unittest/src/deserializers/primitive_deserializer.cpp - - 48 - - called 1 time -
- PrimitiveDeserializerTest_Deserialize_Test::PrimitiveDeserializerTest_Deserialize_Test() - - test/unittest/src/deserializers/primitive_deserializer.cpp - - 48 - - called 40 times -
- PrimitiveDeserializerTest_Deserialize_Test::TestBody() - - test/unittest/src/deserializers/primitive_deserializer.cpp - - 48 - - called 20 times -
- PrimitiveDeserializerTest_Deserialize_Test::~PrimitiveDeserializerTest_Deserialize_Test() - - test/unittest/src/deserializers/primitive_deserializer.cpp - - 48 - - called 60 times -
- QueryArrayParam::QueryArrayParam() - - test/unittest/src/validators/query_param_validator.cpp - - 92 - - called 34 times -
- QueryArrayParam::SetUp() - - test/unittest/src/validators/query_param_validator.cpp - - 95 - - called 34 times -
- QueryArrayParam::~QueryArrayParam() - - test/unittest/src/validators/query_param_validator.cpp - - 92 - - called 34 times -
- QueryArrayParam_ValidateParam_Test::AddToRegistry() - - test/unittest/src/validators/query_param_validator.cpp - - 133 - - called 1 time -
- QueryArrayParam_ValidateParam_Test::QueryArrayParam_ValidateParam_Test() - - test/unittest/src/validators/query_param_validator.cpp - - 133 - - called 68 times -
- QueryArrayParam_ValidateParam_Test::TestBody() - - test/unittest/src/validators/query_param_validator.cpp - - 133 - - called 34 times -
- QueryArrayParam_ValidateParam_Test::~QueryArrayParam_ValidateParam_Test() - - test/unittest/src/validators/query_param_validator.cpp - - 133 - - called 102 times -
- QueryObjectParam::QueryObjectParam() - - test/unittest/src/validators/query_param_validator.cpp - - 183 - - called 3 times -
- QueryObjectParam::SetUp() - - test/unittest/src/validators/query_param_validator.cpp - - 186 - - called 3 times -
- QueryObjectParam::~QueryObjectParam() - - test/unittest/src/validators/query_param_validator.cpp - - 183 - - called 3 times -
- QueryObjectParam_ValidateParam_Test::AddToRegistry() - - test/unittest/src/validators/query_param_validator.cpp - - 236 - - called 1 time -
- QueryObjectParam_ValidateParam_Test::QueryObjectParam_ValidateParam_Test() - - test/unittest/src/validators/query_param_validator.cpp - - 236 - - called 6 times -
- QueryObjectParam_ValidateParam_Test::TestBody() - - test/unittest/src/validators/query_param_validator.cpp - - 236 - - called 3 times -
- QueryObjectParam_ValidateParam_Test::~QueryObjectParam_ValidateParam_Test() - - test/unittest/src/validators/query_param_validator.cpp - - 236 - - called 9 times -
- QueryParamValidator::IsEmptyAllowed() const - - src/validators/param_validators.cpp - - 255 - - not called -
- QueryParamValidator::QueryParamValidator(rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) - - src/validators/param_validators.cpp - - 249 - - called 2128 times -
- QueryParamValidator::~QueryParamValidator() - - include/validators/param_validators.hpp - - 57 - - called 2128 times -
- QueryPrimitiveParam::QueryPrimitiveParam() - - test/unittest/src/validators/query_param_validator.cpp - - 19 - - called 19 times -
- QueryPrimitiveParam::SetUp() - - test/unittest/src/validators/query_param_validator.cpp - - 22 - - called 19 times -
- QueryPrimitiveParam::~QueryPrimitiveParam() - - test/unittest/src/validators/query_param_validator.cpp - - 19 - - called 19 times -
- QueryPrimitiveParam_ValidateParam_Test::AddToRegistry() - - test/unittest/src/validators/query_param_validator.cpp - - 57 - - called 1 time -
- QueryPrimitiveParam_ValidateParam_Test::QueryPrimitiveParam_ValidateParam_Test() - - test/unittest/src/validators/query_param_validator.cpp - - 57 - - called 38 times -
- QueryPrimitiveParam_ValidateParam_Test::TestBody() - - test/unittest/src/validators/query_param_validator.cpp - - 57 - - called 19 times -
- QueryPrimitiveParam_ValidateParam_Test::~QueryPrimitiveParam_ValidateParam_Test() - - test/unittest/src/validators/query_param_validator.cpp - - 57 - - called 57 times -
- Seek(char const*, char const*, char) - - include/utils/common.hpp - - 110 - - called 36091239 times -
- TestBodyValidator::SetUp() - - test/unittest/src/validators/body_validator.cpp - - 13 - - called 10 times -
- TestBodyValidator::TestBodyValidator() - - test/unittest/src/validators/body_validator.cpp - - 10 - - called 10 times -
- TestBodyValidator::~TestBodyValidator() - - test/unittest/src/validators/body_validator.cpp - - 10 - - called 10 times -
- TestBodyValidator_InvalidArrayUniqueItems_Test::TestBody() - - test/unittest/src/validators/body_validator.cpp - - 251 - - called 1 time -
- TestBodyValidator_InvalidArrayUniqueItems_Test::TestBodyValidator_InvalidArrayUniqueItems_Test() - - test/unittest/src/validators/body_validator.cpp - - 251 - - called 2 times -
- TestBodyValidator_InvalidArrayUniqueItems_Test::~TestBodyValidator_InvalidArrayUniqueItems_Test() - - test/unittest/src/validators/body_validator.cpp - - 251 - - called 3 times -
- TestBodyValidator_InvalidEnum_Test::TestBody() - - test/unittest/src/validators/body_validator.cpp - - 416 - - called 1 time -
- TestBodyValidator_InvalidEnum_Test::TestBodyValidator_InvalidEnum_Test() - - test/unittest/src/validators/body_validator.cpp - - 416 - - called 2 times -
- TestBodyValidator_InvalidEnum_Test::~TestBodyValidator_InvalidEnum_Test() - - test/unittest/src/validators/body_validator.cpp - - 416 - - called 3 times -
- TestBodyValidator_InvalidIntegerMaximim_Test::TestBody() - - test/unittest/src/validators/body_validator.cpp - - 317 - - called 1 time -
- TestBodyValidator_InvalidIntegerMaximim_Test::TestBodyValidator_InvalidIntegerMaximim_Test() - - test/unittest/src/validators/body_validator.cpp - - 317 - - called 2 times -
- TestBodyValidator_InvalidIntegerMaximim_Test::~TestBodyValidator_InvalidIntegerMaximim_Test() - - test/unittest/src/validators/body_validator.cpp - - 317 - - called 3 times -
- TestBodyValidator_InvalidIntegerMinimum_Test::TestBody() - - test/unittest/src/validators/body_validator.cpp - - 284 - - called 1 time -
- TestBodyValidator_InvalidIntegerMinimum_Test::TestBodyValidator_InvalidIntegerMinimum_Test() - - test/unittest/src/validators/body_validator.cpp - - 284 - - called 2 times -
- TestBodyValidator_InvalidIntegerMinimum_Test::~TestBodyValidator_InvalidIntegerMinimum_Test() - - test/unittest/src/validators/body_validator.cpp - - 284 - - called 3 times -
- TestBodyValidator_InvalidIntegerType_Test::TestBody() - - test/unittest/src/validators/body_validator.cpp - - 185 - - called 1 time -
- TestBodyValidator_InvalidIntegerType_Test::TestBodyValidator_InvalidIntegerType_Test() - - test/unittest/src/validators/body_validator.cpp - - 185 - - called 2 times -
- TestBodyValidator_InvalidIntegerType_Test::~TestBodyValidator_InvalidIntegerType_Test() - - test/unittest/src/validators/body_validator.cpp - - 185 - - called 3 times -
- TestBodyValidator_InvalidParsing_Test::TestBody() - - test/unittest/src/validators/body_validator.cpp - - 154 - - called 1 time -
- TestBodyValidator_InvalidParsing_Test::TestBodyValidator_InvalidParsing_Test() - - test/unittest/src/validators/body_validator.cpp - - 154 - - called 2 times -
- TestBodyValidator_InvalidParsing_Test::~TestBodyValidator_InvalidParsing_Test() - - test/unittest/src/validators/body_validator.cpp - - 154 - - called 3 times -
- TestBodyValidator_InvalidPatternProp_Test::TestBody() - - test/unittest/src/validators/body_validator.cpp - - 381 - - called 1 time -
- TestBodyValidator_InvalidPatternProp_Test::TestBodyValidator_InvalidPatternProp_Test() - - test/unittest/src/validators/body_validator.cpp - - 381 - - called 2 times -
- TestBodyValidator_InvalidPatternProp_Test::~TestBodyValidator_InvalidPatternProp_Test() - - test/unittest/src/validators/body_validator.cpp - - 381 - - called 3 times -
- TestBodyValidator_InvalidRequired_Test::TestBody() - - test/unittest/src/validators/body_validator.cpp - - 350 - - called 1 time -
- TestBodyValidator_InvalidRequired_Test::TestBodyValidator_InvalidRequired_Test() - - test/unittest/src/validators/body_validator.cpp - - 350 - - called 2 times -
- TestBodyValidator_InvalidRequired_Test::~TestBodyValidator_InvalidRequired_Test() - - test/unittest/src/validators/body_validator.cpp - - 350 - - called 3 times -
- TestBodyValidator_InvalidStringType_Test::TestBody() - - test/unittest/src/validators/body_validator.cpp - - 218 - - called 1 time -
- TestBodyValidator_InvalidStringType_Test::TestBodyValidator_InvalidStringType_Test() - - test/unittest/src/validators/body_validator.cpp - - 218 - - called 2 times -
- TestBodyValidator_InvalidStringType_Test::~TestBodyValidator_InvalidStringType_Test() - - test/unittest/src/validators/body_validator.cpp - - 218 - - called 3 times -
- TestBodyValidator_ValidJson_Test::TestBody() - - test/unittest/src/validators/body_validator.cpp - - 127 - - called 1 time -
- TestBodyValidator_ValidJson_Test::TestBodyValidator_ValidJson_Test() - - test/unittest/src/validators/body_validator.cpp - - 127 - - called 2 times -
- TestBodyValidator_ValidJson_Test::~TestBodyValidator_ValidJson_Test() - - test/unittest/src/validators/body_validator.cpp - - 127 - - called 3 times -
- ValidatorInitExc::ValidatorInitExc(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) - - include/utils/common.hpp - - 19 - - called 2 times -
- ValidatorInitExc::what() const - - include/utils/common.hpp - - 24 - - not called -
- ValidatorInitExc::~ValidatorInitExc() - - include/utils/common.hpp - - 13 - - called 2 times -
- ValidatorsStore::AddParamValidators(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&) - - src/validators/validators_store.cpp - - 16 - - called 1560 times -
- ValidatorsStore::GetPathParamIndices(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) - - src/validators/validators_store.cpp - - 127 - - called 1560 times -
- ValidatorsStore::ValidateBody(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/validators/validators_store.cpp - - 36 - - called 13300888 times -
- ValidatorsStore::ValidateHeaderParams(std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/validators/validators_store.cpp - - 103 - - called 17934941 times -
- ValidatorsStore::ValidatePathParams(std::__1::unordered_map<unsigned long, ParamRange, std::__1::hash<unsigned long>, std::__1::equal_to<unsigned long>, std::__1::allocator<std::__1::pair<unsigned long const, ParamRange> > >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/validators/validators_store.cpp - - 44 - - called 6059268 times -
- ValidatorsStore::ValidateQueryParams(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) - - src/validators/validators_store.cpp - - 59 - - called 16867606 times -
- ValidatorsStore::ValidatorsStore() - - include/validators/validators_store.hpp - - 19 - - called 3168 times -
- ValidatorsStore::ValidatorsStore(rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) - - src/validators/validators_store.cpp - - 11 - - called 1008 times -
- ValidatorsStore::~ValidatorsStore() - - src/validators/validators_store.cpp - - 118 - - called 4176 times -
- gtest_ArrayDeserializerTestsArrayDeserializerTest_EvalGenerateName_(testing::TestParamInfo<std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char, bool, PrimitiveType, char, bool, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool> > const&) - - test/unittest/src/deserializers/array_deserializer.cpp - - 60 - - called 35 times -
- gtest_ArrayDeserializerTestsArrayDeserializerTest_EvalGenerator_() - - test/unittest/src/deserializers/array_deserializer.cpp - - 60 - - called 1 time -
- gtest_ContentDeserializerTestsContentDeserializerTest_EvalGenerateName_(testing::TestParamInfo<std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char, bool, bool> > const&) - - test/unittest/src/deserializers/content_deserializer.cpp - - 51 - - called 4 times -
- gtest_ContentDeserializerTestsContentDeserializerTest_EvalGenerator_() - - test/unittest/src/deserializers/content_deserializer.cpp - - 51 - - called 1 time -
- gtest_HeaderParamValidatorTestHeaderParamValidatorTest_EvalGenerateName_(testing::TestParamInfo<std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, ValidationError> > const&) - - test/unittest/src/validators/header_param_validator.cpp - - 57 - - called 8 times -
- gtest_HeaderParamValidatorTestHeaderParamValidatorTest_EvalGenerator_() - - test/unittest/src/validators/header_param_validator.cpp - - 57 - - called 1 time -
- gtest_ObjectDeserializerTestsObjectDeserializerTest_EvalGenerateName_(testing::TestParamInfo<std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char, bool, char, char, bool, bool> > const&) - - test/unittest/src/deserializers/object_deserializer.cpp - - 63 - - called 15 times -
- gtest_ObjectDeserializerTestsObjectDeserializerTest_EvalGenerator_() - - test/unittest/src/deserializers/object_deserializer.cpp - - 63 - - called 1 time -
- gtest_PathParamValidatorTestsPathArrayParam_EvalGenerateName_(testing::TestParamInfo<std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, ValidationError> > const&) - - test/unittest/src/validators/path_param_validators.cpp - - 153 - - called 34 times -
- gtest_PathParamValidatorTestsPathArrayParam_EvalGenerator_() - - test/unittest/src/validators/path_param_validators.cpp - - 153 - - called 1 time -
- gtest_PathParamValidatorTestsPathObjectParam_EvalGenerateName_(testing::TestParamInfo<std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, ValidationError> > const&) - - test/unittest/src/validators/path_param_validators.cpp - - 253 - - called 9 times -
- gtest_PathParamValidatorTestsPathObjectParam_EvalGenerator_() - - test/unittest/src/validators/path_param_validators.cpp - - 253 - - called 1 time -
- gtest_PathParamValidatorTestsPathPrimitiveParam_EvalGenerateName_(testing::TestParamInfo<std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, ValidationError> > const&) - - test/unittest/src/validators/path_param_validators.cpp - - 73 - - called 36 times -
- gtest_PathParamValidatorTestsPathPrimitiveParam_EvalGenerator_() - - test/unittest/src/validators/path_param_validators.cpp - - 73 - - called 1 time -
- gtest_PrimitiveDeserializerTestsPrimitiveDeserializerTest_EvalGenerateName_(testing::TestParamInfo<std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, PrimitiveType, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char, bool, bool> > const&) - - test/unittest/src/deserializers/primitive_deserializer.cpp - - 58 - - called 20 times -
- gtest_PrimitiveDeserializerTestsPrimitiveDeserializerTest_EvalGenerator_() - - test/unittest/src/deserializers/primitive_deserializer.cpp - - 58 - - called 1 time -
- gtest_QueryArrayParamTestsQueryArrayParam_EvalGenerateName_(testing::TestParamInfo<std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, ValidationError> > const&) - - test/unittest/src/validators/query_param_validator.cpp - - 147 - - called 34 times -
- gtest_QueryArrayParamTestsQueryArrayParam_EvalGenerator_() - - test/unittest/src/validators/query_param_validator.cpp - - 147 - - called 1 time -
- gtest_QueryObjectParamTestsQueryObjectParam_EvalGenerateName_(testing::TestParamInfo<std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, ValidationError> > const&) - - test/unittest/src/validators/query_param_validator.cpp - - 250 - - called 3 times -
- gtest_QueryObjectParamTestsQueryObjectParam_EvalGenerator_() - - test/unittest/src/validators/query_param_validator.cpp - - 250 - - called 1 time -
- gtest_QueryPrimitiveParamTestsQueryPrimitiveParam_EvalGenerateName_(testing::TestParamInfo<std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, ValidationError> > const&) - - test/unittest/src/validators/query_param_validator.cpp - - 71 - - called 19 times -
- gtest_QueryPrimitiveParamTestsQueryPrimitiveParam_EvalGenerator_() - - test/unittest/src/validators/query_param_validator.cpp - - 71 - - called 1 time -
- main - - build/CMakeFiles/3.27.6/CompilerIdC/CMakeCCompilerId.c - - 839 - - not called -
- main - - test/perftest/src/perftest.cpp - - 201 - - called 1 time -
- main - - test/unittest/src/main.cpp - - 9 - - called 1 time -
-
-
- - - - diff --git a/covhtml-oasvalidator/index.header_param_validator.cpp.4ce9f19df31ad583fe98b36cf2181703.html b/covhtml-oasvalidator/index.header_param_validator.cpp.4ce9f19df31ad583fe98b36cf2181703.html index d5152c9..0e4e797 100644 --- a/covhtml-oasvalidator/index.header_param_validator.cpp.4ce9f19df31ad583fe98b36cf2181703.html +++ b/covhtml-oasvalidator/index.header_param_validator.cpp.4ce9f19df31ad583fe98b36cf2181703.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,143 +40,22 @@

GCC Code Coverage Report

Lines: - 19 - 19 - 100.0% - - - Functions: - 9 - 9 + 16 + 16 100.0% Branches: - 24 - 56 - 42.9% + 29 + 82 + 35.4%
-
- -
-
- - +
-
@@ -186,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + - + + + - + + - + + - + + - + + - + + - + + - + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + + + + - - + + + + + - - + + + + + - + + - + + - + + - + + + - + + - + + - + + - - + + + - + + - + + - + + + - - + + + - + + - - + + + - - + + + + - - + + + - + + - + + - + + - + + +
Exec Source
1 @@ -193,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -200,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -207,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -221,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -228,20 +113,23 @@

GCC Code Coverage Report

7 #include "validators/param_validators.hpp"#include "validators/param_validators.hpp"
8 #include <gtest/gtest.h>#include <gtest/gtest.h>
9 @@ -249,55 +137,63 @@

GCC Code Coverage Report

10 enum : size_tenum : size_t
11 {{
12 INPUT, INPUT,
13 EXPLODE, EXPLODE,
14 TYPE, TYPE,
15 EXPECTED_ERROR EXPECTED_ERROR
16 };};
17 @@ -305,90 +201,130 @@

GCC Code Coverage Report

18 8class HeaderParamValidatorTest: public ::testing::TestWithParam<std::tuple<std::string, bool, std::string, ValidationError>>class HeaderParamValidatorTest: public ::testing::TestWithParam<std::tuple<std::string, bool, std::string, ValidationError>>
19 {{
20 protected:protected:
21 8 void SetUp() override void SetUp() override
22 { {
23 8 const auto param = GetParam(); const auto param = GetParam();
24
1/2
-
✓ Branch 0 taken 8 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 8 times.
+
✗ Branch 2 not taken.
8 input_ = std::get<INPUT>(param); input_ = std::get<INPUT>(param);
25 +
+ 2/2 +
+
✓ Branch 0 taken 4 times.
+
✓ Branch 1 taken 4 times.
+
+
8 const auto* const explode = std::get<EXPLODE>(param) ? "true" : "false"; const auto* const explode = std::get<EXPLODE>(param) ? "true" : "false";
26 +
+ 1/2 +
+
✓ Branch 1 taken 8 times.
+
✗ Branch 2 not taken.
+
+
8 const auto& type = std::get<TYPE>(param); const auto& type = std::get<TYPE>(param);
27 +
+ 1/2 +
+
✓ Branch 1 taken 8 times.
+
✗ Branch 2 not taken.
+
+
8 expected_error_ = std::get<EXPECTED_ERROR>(param); expected_error_ = std::get<EXPECTED_ERROR>(param);
28 +
+ 1/2 +
+
✓ Branch 1 taken 8 times.
+
✗ Branch 2 not taken.
+
+
168 std::string json = R"({
29 @@ -396,6 +332,7 @@

GCC Code Coverage Report

"name": "param",
30 @@ -403,6 +340,7 @@

GCC Code Coverage Report

"in": "header",
31 @@ -410,6 +348,7 @@

GCC Code Coverage Report

"required": true,
32 @@ -417,24 +356,34 @@

GCC Code Coverage Report

"style": "simple",
33
- 3/6 + 5/14
-
✓ Branch 0 taken 8 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 8 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 8 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
+
✓ Branch 7 taken 8 times.
+
✗ Branch 8 not taken.
+
✗ Branch 9 not taken.
+
✓ Branch 10 taken 8 times.
+
✗ Branch 11 not taken.
+
✓ Branch 12 taken 8 times.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
8 "explode": )" + std::string(explode) +16 "explode": )" + std::string(explode) +
34 @@ -442,6 +391,7 @@

GCC Code Coverage Report

R"(,
35 @@ -449,34 +399,41 @@

GCC Code Coverage Report

"schema": {
36
- 1/2 + 2/6
-
✓ Branch 0 taken 8 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 8 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 8 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
8 "type": ")" +16 "type": ")" +
37
1/2
-
✓ Branch 0 taken 8 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 8 times.
+
✗ Branch 2 not taken.
8 type + R"("
38 @@ -484,48 +441,59 @@

GCC Code Coverage Report

}
39 })"; })";
40
1/2
-
✓ Branch 0 taken 8 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 8 times.
+
✗ Branch 2 not taken.
8 doc_.Parse(json.data()); doc_.Parse(json.data());
41
- 1/2 + 4/8
-
✗ Branch 0 not taken.
✓ Branch 1 taken 8 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 8 times.
+
✗ Branch 5 not taken.
+
✓ Branch 6 taken 8 times.
+
✓ Branch 7 taken 8 times.
+
✗ Branch 8 not taken.
8 validator_ = std::make_unique<HeaderParamValidator>(doc_, keys_); validator_ = std::make_unique<HeaderParamValidator>(doc_, keys_);
42 8 } }
43 @@ -533,72 +501,63 @@

GCC Code Coverage Report

44 std::unique_ptr<HeaderParamValidator> validator_; std::unique_ptr<HeaderParamValidator> validator_;
45 std::string input_; std::string input_;
46 rapidjson::Document doc_; rapidjson::Document doc_;
47 -
- 6/12 -
-
✓ Branch 0 taken 8 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 8 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 8 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 8 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 8 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
-
✓ Branch 11 taken 8 times.
-
-
8 std::vector<std::string> keys_{"paths", "/pets/xyz", "get", "parameters", "param"}; std::vector<std::string> keys_{"paths", "/pets/xyz", "get", "parameters", "param"};
48 std::string error_msg_; std::string error_msg_;
49 ValidationError expected_error_; ValidationError expected_error_;
50 };};
51 @@ -606,64 +565,87 @@

GCC Code Coverage Report

52
- 5/10 + 8/22
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 8 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
+
✗ Branch 11 not taken.
+
✓ Branch 13 taken 1 times.
+
✗ Branch 14 not taken.
+
✓ Branch 15 taken 1 times.
+
✗ Branch 16 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 18 not taken.
+
✓ Branch 19 taken 1 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
26TEST_P(HeaderParamValidatorTest, ValidateParam)38TEST_P(HeaderParamValidatorTest, ValidateParam)
53 {{
54
- 1/10 + 1/16
-
✓ Branch 0 taken 8 times.
-
✗ Branch 1 not taken.
✗ Branch 2 not taken.
-
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
+
✓ Branch 3 taken 8 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
-
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 14 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
8 ASSERT_EQ(expected_error_, validator_->ValidateParam(input_.data(), input_.data() + input_.size(), error_msg_));32 ASSERT_EQ(expected_error_, validator_->ValidateParam(input_.data(), input_.data() + input_.size(), error_msg_));
55 8}}
56 @@ -671,54 +653,54 @@

GCC Code Coverage Report

57
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
-
✓ Branch 7 taken 1 times.
+
✓ Branch 2 taken 8 times.
10INSTANTIATE_TEST_CASE_P(HeaderParamValidatorTest, HeaderParamValidatorTest,18INSTANTIATE_TEST_CASE_P(HeaderParamValidatorTest, HeaderParamValidatorTest,
58 ::testing::Values(std::make_tuple("123", false, "integer", ValidationError::NONE), std::make_tuple("123", true, "integer", ValidationError::NONE), ::testing::Values(std::make_tuple("123", false, "integer", ValidationError::NONE), std::make_tuple("123", true, "integer", ValidationError::NONE),
59 std::make_tuple("true", false, "boolean", ValidationError::NONE), std::make_tuple("true", true, "boolean", ValidationError::NONE), std::make_tuple("true", false, "boolean", ValidationError::NONE), std::make_tuple("true", true, "boolean", ValidationError::NONE),
60 std::make_tuple("123.456", false, "number", ValidationError::NONE), std::make_tuple("123.456", true, "number", ValidationError::NONE), std::make_tuple("123.456", false, "number", ValidationError::NONE), std::make_tuple("123.456", true, "number", ValidationError::NONE),
61 std::make_tuple("abc", false, "string", ValidationError::NONE), std::make_tuple("abc", true, "string", ValidationError::NONE))); std::make_tuple("abc", false, "string", ValidationError::NONE), std::make_tuple("abc", true, "string", ValidationError::NONE)));
62 @@ -726,13 +708,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.html b/covhtml-oasvalidator/index.html index 5c228f8..a44a9d6 100644 --- a/covhtml-oasvalidator/index.html +++ b/covhtml-oasvalidator/index.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -23,14 +22,14 @@

GCC Code Coverage Report

- + - +
Date:2023-11-25 18:43:342023-11-25 18:58:14
Coverage:Legend: - low: ≥ 0% - medium: ≥ 75.0% - high: ≥ 90.0% + low: >= 0% + medium: >= 75.0% + high: >= 90.0%
@@ -46,59 +45,43 @@

GCC Code Coverage Report

Lines: - 1626 - 1753 - 92.8% - - - Functions: - 324 - 349 - 92.8% + 1533 + 1624 + 94.4% Branches: - 2238 - 5727 - 39.1% + 2468 + 8060 + 30.6%
-
+
-
-
+
- - -
- - - - - + @@ -109,14 +92,12 @@

GCC Code Coverage Report

include/deserializers/array_deserializer.hpp - - - - - - + + + + @@ -125,14 +106,12 @@

GCC Code Coverage Report

include/deserializers/base_deserializer.hpp - - - - - - + + + + @@ -145,10 +124,8 @@

GCC Code Coverage Report

- - - - + + @@ -160,11 +137,9 @@

GCC Code Coverage Report

100.0 - - - - - + + + @@ -177,26 +152,8 @@

GCC Code Coverage Report

- - - - - - - - - - - - - - - - + + @@ -205,14 +162,12 @@

GCC Code Coverage Report

include/utils/common.hpp - - - - - - + + + + @@ -224,11 +179,9 @@

GCC Code Coverage Report

100.0 - - - - - + + + @@ -241,10 +194,8 @@

GCC Code Coverage Report

- - - - + + @@ -256,11 +207,9 @@

GCC Code Coverage Report

100.0 - - - - - + + + @@ -272,11 +221,9 @@

GCC Code Coverage Report

100.0 - - - - - + + + @@ -288,11 +235,9 @@

GCC Code Coverage Report

100.0 - - - - - + + + @@ -305,10 +250,8 @@

GCC Code Coverage Report

- - - - + + @@ -317,14 +260,12 @@

GCC Code Coverage Report

src/deserializers/array_deserializer.cpp - - - - - - + + + + @@ -336,9 +277,7 @@

GCC Code Coverage Report

100.0 - - - + @@ -349,14 +288,12 @@

GCC Code Coverage Report

src/deserializers/content_deserializer.cpp - - - - - - + + + + @@ -365,14 +302,12 @@

GCC Code Coverage Report

src/deserializers/object_deserializer.cpp - - - - - - + + + + @@ -381,14 +316,12 @@

GCC Code Coverage Report

src/deserializers/primitive_deserializer.cpp - - - - - - + + + + @@ -400,9 +333,7 @@

GCC Code Coverage Report

100.0 - - - + @@ -413,14 +344,12 @@

GCC Code Coverage Report

src/oas_validator_imp.cpp - - - - - - + + + + @@ -432,11 +361,9 @@

GCC Code Coverage Report

100.0 - - - - - + + + @@ -445,14 +372,12 @@

GCC Code Coverage Report

src/validators/base_validator.cpp - - - - - - + + + + @@ -461,14 +386,12 @@

GCC Code Coverage Report

src/validators/json_validator.cpp - - - - - - + + + + @@ -480,11 +403,9 @@

GCC Code Coverage Report

100.0 - - - - - + + + @@ -493,14 +414,12 @@

GCC Code Coverage Report

src/validators/param_validators.cpp - - - - - - + + + + @@ -509,14 +428,12 @@

GCC Code Coverage Report

src/validators/validators_store.cpp - - - - - - + + + + @@ -525,14 +442,12 @@

GCC Code Coverage Report

test/perftest/src/perftest.cpp - - - - - - + + + + @@ -545,10 +460,8 @@

GCC Code Coverage Report

- - - - + + @@ -560,11 +473,9 @@

GCC Code Coverage Report

100.0 - - - - - + + + @@ -576,11 +487,9 @@

GCC Code Coverage Report

100.0 - - - - - + + + @@ -593,10 +502,8 @@

GCC Code Coverage Report

- - - - + + @@ -609,8 +516,6 @@

GCC Code Coverage Report

- - @@ -621,14 +526,12 @@

GCC Code Coverage Report

test/unittest/src/oas_validator.cpp - - - - - - + + + + @@ -640,11 +543,9 @@

GCC Code Coverage Report

100.0 - - - - - + + + @@ -656,11 +557,9 @@

GCC Code Coverage Report

100.0 - - - - - + + + @@ -672,11 +571,9 @@

GCC Code Coverage Report

100.0 - - - - - + + + @@ -689,10 +586,8 @@

GCC Code Coverage Report

- - - - + + @@ -704,11 +599,9 @@

GCC Code Coverage Report

100.0 - - - - - + + + @@ -717,22 +610,20 @@

GCC Code Coverage Report

test/unittest/src/validators/query_param_validator.cpp - - - - - - + + + +
File LinesFunctions Branches
- build/CMakeFiles/3.27.6/CompilerIdC/CMakeCCompilerId.c + build/CMakeFiles/3.27.8/CompilerIdC/CMakeCCompilerId.c 0.0 0.0%0 / 100.0%0 / 10 / 9 -% 0 / 0
- 98.3 + 98.1 98.3%59 / 60100.0%7 / 765.6%21 / 3298.1%53 / 5464.7%22 / 34
- 89.8 + 91.5 89.8%97 / 108100.0%14 / 1455.1%109 / 19891.5%97 / 10648.1%117 / 243
100.0% 1 / 1100.0%1 / 1-%0 / 050.0%1 / 2
100.0%11 / 11100.0%2 / 287.5%7 / 810 / 1080.0%8 / 10
100.0% 1 / 1100.0%1 / 1-%0 / 0
- include/oas_validator_imp.hpp - - 100.0 - 100.0%1 / 1100.0%2 / 2-%0 / 050.0%1 / 2
- 90.9 + 89.5 90.9%20 / 2283.3%5 / 680.0%16 / 2089.5%17 / 1950.0%27 / 54
100.0%7 / 7100.0%3 / 3-%0 / 04 / 450.0%1 / 2
100.0% 1 / 1100.0%1 / 1-%0 / 037.5%3 / 8
100.0%4 / 4100.0%2 / 2-%0 / 02 / 250.0%1 / 2
100.0%0 / 0-%0 / 0-%0 / 01 / 137.5%3 / 8
100.0%4 / 4100.0%5 / 5-%0 / 05 / 540.0%8 / 20
100.0% 2 / 2100.0%1 / 1-%0 / 037.5%6 / 16
- 93.3 + 96.9 93.3%28 / 30100.0%2 / 276.2%16 / 2196.9%31 / 3272.4%21 / 29
100.0%6 / 6100.0%1 / 15 / 5 -% 0 / 0
- 86.2 + 85.7 86.2%25 / 29100.0%2 / 237.8%14 / 3785.7%24 / 2831.1%14 / 45
- 95.3 + 97.1 95.3%61 / 64100.0%2 / 265.0%52 / 8097.1%67 / 6957.0%65 / 114
- 95.5 + 100.0 95.5%21 / 22100.0%2 / 284.6%11 / 13100.0%24 / 2485.7%18 / 21
100.0%26 / 26100.0%11 / 1124 / 24 75.0% 3 / 4
- 96.9 + 97.9 96.9%155 / 160100.0%12 / 1258.0%182 / 31497.9%142 / 14551.6%163 / 316
100.0%76 / 76100.0%5 / 567.1%47 / 7070 / 7070.0%49 / 70
- 91.7 + 85.7 91.7%22 / 2475.0%3 / 446.9%15 / 3285.7%12 / 1436.7%11 / 30
- 76.5 + 80.8 76.5%88 / 115100.0%6 / 649.2%116 / 23680.8%80 / 9944.8%121 / 270
100.0%12 / 12100.0%2 / 252.1%25 / 487 / 740.9%9 / 22
- 87.1 + 87.3 87.1%135 / 15582.4%14 / 1744.8%165 / 36887.3%110 / 12636.4%118 / 324
- 83.7 + 81.4 83.7%82 / 98100.0%8 / 843.6%82 / 18881.4%70 / 8639.8%74 / 186
- 87.3 + 99.2 87.3%124 / 14266.7%38 / 5754.0%243 / 45099.2%119 / 12047.0%279 / 594
100.0% 25 / 25100.0%9 / 941.4%24 / 5829.9%32 / 107
100.0%20 / 20100.0%9 / 940.7%22 / 5419 / 1927.2%28 / 103
100.0%28 / 28100.0%9 / 941.2%28 / 6822 / 2226.3%26 / 99
100.0% 22 / 22100.0%9 / 941.4%24 / 5829.4%32 / 109
100.0% 3 / 3100.0%1 / 1 -% 0 / 0
- 100.0 + 98.1 100.0%100 / 100100.0%24 / 2430.3%379 / 125098.1%102 / 10424.6%501 / 2035
100.0%14 / 14100.0%9 / 928.9%22 / 7635 / 3518.9%64 / 338
100.0%119 / 119100.0%33 / 3328.0%279 / 998118 / 11817.8%220 / 1233
100.0%19 / 19100.0%9 / 942.9%24 / 5616 / 1635.4%29 / 82
100.0% 38 / 38100.0%6 / 626.1%122 / 46821.2%146 / 690
100.0%87 / 87100.0%27 / 2737.5%99 / 26479 / 7930.4%130 / 428
- 94.3 + 94.9 94.3%82 / 87100.0%27 / 2735.3%91 / 25894.9%75 / 7928.5%117 / 410
-
-
+ +
diff --git a/covhtml-oasvalidator/index.json_validator.cpp.3eeaf15e69166b359a6654da3c7a400c.html b/covhtml-oasvalidator/index.json_validator.cpp.3eeaf15e69166b359a6654da3c7a400c.html index 28ee7b6..961fb30 100644 --- a/covhtml-oasvalidator/index.json_validator.cpp.3eeaf15e69166b359a6654da3c7a400c.html +++ b/covhtml-oasvalidator/index.json_validator.cpp.3eeaf15e69166b359a6654da3c7a400c.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,110 +40,22 @@

GCC Code Coverage Report

Lines: - 88 - 115 - 76.5% - - - Functions: - 6 - 6 - 100.0% + 80 + 99 + 80.8% Branches: - 116 - 236 - 49.2% + 121 + 270 + 44.8%
-
- -
-
- - +
-
@@ -153,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + + - - + + + - + + - - + + + - + + - + + - + + - - + + + - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - - + + + - + + - + + - + + + - - + + + - - + + + - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + + - + + - + + - + + - + + + - + + - - + + + + - + + - + + - + + - + + - + + - + + + - + + - + + - + + - - + + + - + + - + + - + + - - + + + - + + + - + + - + + - + + - + + - - + + + - - + + + + - - + + + - - + + + - + + + - + + - + + + - + + - + + - + + - + + - + + - - + + + - - + + + - - + + + - + + - + + + - + + - + + - + + + - - + + + - + + - + + - - + + + - - + + + + - + + - - + + + - - + + + + - + + - + + - - + + + + - + + - + + - + + - + + - - + + + - + + - + + - + + - + + - + + - + + - + + - - + + + - + + - + + - + + - + + - - + + + - - + + + - + + - - + + + - + + - + + - - + + + + - + + - + + - + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - - + + + - + + + - + + - - + + + + - - + + + - - + + + + - - + + + - - + + + + - - + + + +
Exec Source
1 @@ -160,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -167,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -174,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -188,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -195,13 +113,15 @@

GCC Code Coverage Report

7 #include "validators/json_validator.hpp"#include "validators/json_validator.hpp"
8 @@ -209,49 +129,55 @@

GCC Code Coverage Report

9 6594JsonValidator::JsonValidator(const rapidjson::Value& schema_val, const std::vector<std::string>& ref_keys, ValidationError err_code)3297JsonValidator::JsonValidator(const rapidjson::Value& schema_val, const std::vector<std::string>& ref_keys, ValidationError err_code)
10 +
+ 1/2 +
+
✓ Branch 2 taken 3297 times.
+
✗ Branch 3 not taken.
+
+
3297 : BaseValidator(ref_keys, err_code) : BaseValidator(ref_keys, err_code)
11 6594{{
12
- 4/10 + 2/4
-
✓ Branch 0 taken 3297 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 3297 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 3297 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 3297 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 3297 times.
-
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
-
✗ Branch 9 not taken.
3297 schema_ = new rapidjson::SchemaDocument(schema_val); schema_ = new rapidjson::SchemaDocument(schema_val);
13 @@ -264,38 +190,47 @@

GCC Code Coverage Report

3297 if (schema_) { if (schema_) {
14
- 2/4 + 1/2
-
✓ Branch 0 taken 3297 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 3297 times.
✗ Branch 2 not taken.
-
✓ Branch 3 taken 3297 times.
3297 validator_ = new rapidjson::SchemaValidator(*schema_); validator_ = new rapidjson::SchemaValidator(*schema_);
15 3297 } }
16 +
+ 0/2 +
+
✗ Branch 0 not taken.
+
✗ Branch 1 not taken.
+
+
3297}}
17 @@ -303,41 +238,46 @@

GCC Code Coverage Report

18 49731473ValidationError JsonValidator::ValidateJson(const std::string& json_str, std::string& error_msg)148278368ValidationError JsonValidator::ValidateJson(const std::string& json_str, std::string& error_msg)
19 3297{{
20 49728176 rapidjson::Document doc;148278368 rapidjson::Document doc;
21
1/2
-
✓ Branch 0 taken 49728176 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 148278368 times.
+
✗ Branch 2 not taken.
49728176 doc.Parse(json_str.c_str());148278368 doc.Parse(json_str.c_str());
22 @@ -345,6 +285,7 @@

GCC Code Coverage Report

23 @@ -352,67 +293,90 @@

GCC Code Coverage Report

2/2
✓ Branch 0 taken 2 times.
-
✓ Branch 1 taken 49728174 times.
+
✓ Branch 1 taken 148278366 times.
49728176 if (doc.HasParseError()) {148278368 if (doc.HasParseError()) {
24
- 5/10 + 9/26
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 2 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 2 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 2 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 2 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 2 times.
+
✗ Branch 11 not taken.
+
✓ Branch 13 taken 2 times.
+
✗ Branch 14 not taken.
+
✗ Branch 15 not taken.
+
✓ Branch 16 taken 2 times.
+
✗ Branch 17 not taken.
+
✓ Branch 18 taken 2 times.
+
✗ Branch 19 not taken.
+
✓ Branch 20 taken 2 times.
+
✗ Branch 21 not taken.
+
✓ Branch 22 taken 2 times.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
6 error_msg = err_header_ + R"("code":"parserError","description":")" + rapidjson::GetParseError_En(doc.GetParseError()) + R"(","offset":)" +4 error_msg = err_header_ + R"("code":"parserError","description":")" + rapidjson::GetParseError_En(doc.GetParseError()) + R"(","offset":)" +
25
- 3/6 + 4/8
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 2 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
+
✗ Branch 7 not taken.
+
✓ Branch 8 taken 2 times.
+
✗ Branch 9 not taken.
+
✓ Branch 10 taken 2 times.
4 std::to_string(doc.GetErrorOffset()) + "}}"; std::to_string(doc.GetErrorOffset()) + "}}";
26 2 return code_on_error_; return code_on_error_;
27 } }
28 @@ -420,34 +384,38 @@

GCC Code Coverage Report

29
1/2
-
✓ Branch 0 taken 49728174 times.
+
✓ Branch 0 taken 148278366 times.
✗ Branch 1 not taken.
49728174 if (!validator_) {148278366 if (!validator_) {
30 return ValidationError::NONE; return ValidationError::NONE;
31 } }
32 @@ -455,78 +423,78 @@

GCC Code Coverage Report

33
1/2
-
✓ Branch 0 taken 49728174 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 148278366 times.
+
✗ Branch 2 not taken.
49728174 std::unique_lock<std::mutex> lock(mutex_);148278366 std::unique_lock<std::mutex> lock(mutex_);
34
3/4
-
✓ Branch 0 taken 49728174 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 49728162 times.
-
✓ Branch 3 taken 12 times.
+
✓ Branch 1 taken 148278366 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 148278354 times.
+
✓ Branch 4 taken 12 times.
49728174 if (doc.Accept(*this->validator_)) {148278366 if (doc.Accept(*this->validator_)) {
35 -
- 1/2 -
-
✓ Branch 0 taken 49728162 times.
-
✗ Branch 1 not taken.
-
-
49728162 validator_->Reset();148278354 validator_->Reset();
36
1/2
-
✓ Branch 0 taken 49728162 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 148278354 times.
+
✗ Branch 2 not taken.
49728162 lock.unlock();148278354 lock.unlock();
37 49728162 return ValidationError::NONE; return ValidationError::NONE;
38 } }
39 @@ -534,62 +502,69 @@

GCC Code Coverage Report

40
1/2
-
✓ Branch 0 taken 12 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 12 times.
+
✗ Branch 2 not taken.
12 error_msg.reserve(1024); error_msg.reserve(1024);
41
1/2
-
✓ Branch 0 taken 12 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 12 times.
+
✗ Branch 2 not taken.
12 error_msg = err_header_; error_msg = err_header_;
42
- 1/2 + 1/4
-
✓ Branch 0 taken 12 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 12 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✗ Branch 4 not taken.
12 CreateErrorMessages(validator_->GetError(), std::string(), error_msg); CreateErrorMessages(validator_->GetError(), std::string(), error_msg);
43
1/2
-
✓ Branch 0 taken 12 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 12 times.
+
✗ Branch 2 not taken.
12 error_msg.append("}}"); error_msg.append("}}");
44 @@ -597,20 +572,23 @@

GCC Code Coverage Report

45 12 return code_on_error_; return code_on_error_;
46 49728176}148278368}
47 @@ -618,66 +596,69 @@

GCC Code Coverage Report

48 14void JsonValidator::CreateErrorMessages(const rapidjson::GenericValue<rapidjson::UTF8<>, rapidjson::CrtAllocator>& errors, const std::string& context, std::string& error_msg,void JsonValidator::CreateErrorMessages(const rapidjson::GenericValue<rapidjson::UTF8<>, rapidjson::CrtAllocator>& errors, const std::string& context, std::string& error_msg,
49 bool recursive) bool recursive)
50 {{
51
- 4/6 + 2/2
✓ Branch 0 taken 14 times.
-
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
-
✓ Branch 3 taken 14 times.
-
✓ Branch 4 taken 14 times.
-
✓ Branch 5 taken 14 times.
+
✓ Branch 1 taken 14 times.
28 for (const auto& error_type : errors.GetObject()) { for (const auto& error_type : errors.GetObject()) {
52
1/2
-
✓ Branch 0 taken 14 times.
-
✗ Branch 1 not taken.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 14 times.
14 const char* error_name = error_type.name.GetString(); const char* error_name = error_type.name.GetString();
53 14 const auto& error_content = error_type.value; const auto& error_content = error_type.value;
54 @@ -685,41 +666,46 @@

GCC Code Coverage Report

55
1/2
-
✓ Branch 0 taken 14 times.
-
✗ Branch 1 not taken.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 14 times.
14 if (error_content.IsArray()) { if (error_content.IsArray()) {
56 for (const auto& content : error_content.GetArray()) { for (const auto& content : error_content.GetArray()) {
57 HandleError(error_name, content, context, error_msg, recursive); HandleError(error_name, content, context, error_msg, recursive);
58 } }
59 @@ -732,43 +718,48 @@

GCC Code Coverage Report

14 } else if (error_content.IsObject()) { } else if (error_content.IsObject()) {
60
1/2
-
✗ Branch 0 not taken.
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
14 HandleError(error_name, error_content, context, error_msg, recursive); HandleError(error_name, error_content, context, error_msg, recursive);
61 } }
62 }14 }
63 14}}
64 @@ -776,55 +767,62 @@

GCC Code Coverage Report

65 14void JsonValidator::HandleError(const char* error_name, const rapidjson::GenericValue<rapidjson::UTF8<>, rapidjson::CrtAllocator>& error, const std::string& context,void JsonValidator::HandleError(const char* error_name, const rapidjson::GenericValue<rapidjson::UTF8<>, rapidjson::CrtAllocator>& error, const std::string& context,
66 std::string& error_msg, bool recursive) std::string& error_msg, bool recursive)
67 {{
68
- 2/2 + 1/2
-
✓ Branch 0 taken 2 times.
-
✓ Branch 1 taken 16 times.
+
✓ Branch 0 taken 14 times.
+
✗ Branch 1 not taken.
14 if (!error.ObjectEmpty()) { if (!error.ObjectEmpty()) {
69 16 int code = error["errorCode"].GetInt();14 int code = error["errorCode"].GetInt();
70 16 std::string message(GetValidateError_En(static_cast<rapidjson::ValidateErrorCode>(code)));14 std::string message(GetValidateError_En(static_cast<rapidjson::ValidateErrorCode>(code)));
71 @@ -832,51 +830,49 @@

GCC Code Coverage Report

72
- 5/8 + 2/2
-
✓ Branch 0 taken 16 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 16 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 16 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 64 times.
-
✓ Branch 7 taken 16 times.
+
✓ Branch 0 taken 64 times.
+
✓ Branch 1 taken 14 times.
80 for (const auto& insert : error.GetObject()) {78 for (const auto& insert : error.GetObject()) {
73
3/6
-
✓ Branch 0 taken 64 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 64 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 64 times.
-
✗ Branch 5 not taken.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 64 times.
+
✓ Branch 3 taken 64 times.
+
✗ Branch 4 not taken.
+
✓ Branch 6 taken 64 times.
+
✗ Branch 7 not taken.
64 std::string insert_name = "%" + std::string(insert.name.GetString());128 std::string insert_name = "%" + std::string(insert.name.GetString());
74 64 size_t insert_pos = message.find(insert_name); size_t insert_pos = message.find(insert_name);
75 @@ -884,27 +880,37 @@

GCC Code Coverage Report

76
2/2
-
✓ Branch 0 taken 43 times.
-
✓ Branch 1 taken 21 times.
+
✓ Branch 0 taken 21 times.
+
✓ Branch 1 taken 43 times.
64 if (insert_pos != std::string::npos) { if (insert_pos != std::string::npos) {
77 +
+ 2/2 +
+
✓ Branch 0 taken 7 times.
+
✓ Branch 1 taken 14 times.
+
+
21 std::string insert_string; std::string insert_string;
78 @@ -912,6 +918,7 @@

GCC Code Coverage Report

79 @@ -924,28 +931,24 @@

GCC Code Coverage Report

21 if (insert.value.IsArray()) { if (insert.value.IsArray()) {
80
- 5/8 + 2/2
-
✓ Branch 0 taken 7 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 7 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 7 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 9 times.
-
✓ Branch 7 taken 7 times.
+
✓ Branch 0 taken 9 times.
+
✓ Branch 1 taken 7 times.
16 for (const auto& item : insert.value.GetArray()) { for (const auto& item : insert.value.GetArray()) {
81 @@ -958,80 +961,90 @@

GCC Code Coverage Report

9 if (!insert_string.empty()) { if (!insert_string.empty()) {
82
1/2
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 2 times.
+
✗ Branch 2 not taken.
2 insert_string += ","; insert_string += ",";
83 } }
84
2/4
-
✓ Branch 0 taken 9 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 9 times.
+
✓ Branch 1 taken 9 times.
+
✗ Branch 2 not taken.
✗ Branch 3 not taken.
+
✓ Branch 4 taken 9 times.
9 insert_string += GetString(item);18 insert_string += GetString(item);
85 } }
86 7 } else { } else {
87
- 1/2 + 2/4
-
✓ Branch 0 taken 14 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 14 times.
14 insert_string = GetString(insert.value); insert_string = GetString(insert.value);
88 } }
89 @@ -1039,34 +1052,40 @@

GCC Code Coverage Report

90
- 1/2 + 2/4
-
✗ Branch 0 not taken.
✓ Branch 1 taken 21 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 21 times.
21 message.replace(insert_pos, insert_name.length(), insert_string); message.replace(insert_pos, insert_name.length(), insert_string);
91 21 } }
92 64 } }
93 @@ -1074,6 +1093,7 @@

GCC Code Coverage Report

94 @@ -1081,92 +1101,137 @@

GCC Code Coverage Report

2/2
✓ Branch 0 taken 2 times.
-
✓ Branch 1 taken 14 times.
+
✓ Branch 1 taken 12 times.
16 if (recursive) {14 if (recursive) {
95
1/2
-
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
+
✗ Branch 2 not taken.
2 error_msg.push_back('{'); error_msg.push_back('{');
96 } }
97
- 13/26 + 21/58
-
✓ Branch 0 taken 14 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 11 times.
+
✓ Branch 2 taken 3 times.
✓ Branch 4 taken 14 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 14 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 14 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 14 times.
+
✗ Branch 8 not taken.
✓ Branch 10 taken 14 times.
✗ Branch 11 not taken.
-
✓ Branch 12 taken 14 times.
-
✗ Branch 13 not taken.
-
✓ Branch 14 taken 14 times.
-
✗ Branch 15 not taken.
+
✓ Branch 13 taken 14 times.
+
✗ Branch 14 not taken.
✓ Branch 16 taken 14 times.
✗ Branch 17 not taken.
-
✓ Branch 18 taken 14 times.
-
✗ Branch 19 not taken.
-
✓ Branch 20 taken 14 times.
-
✗ Branch 21 not taken.
+
✓ Branch 19 taken 14 times.
+
✗ Branch 20 not taken.
✓ Branch 22 taken 14 times.
✗ Branch 23 not taken.
-
✓ Branch 24 taken 14 times.
-
✗ Branch 25 not taken.
+
✓ Branch 25 taken 14 times.
+
✗ Branch 26 not taken.
+
✓ Branch 28 taken 14 times.
+
✗ Branch 29 not taken.
+
✓ Branch 31 taken 14 times.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✓ Branch 34 taken 14 times.
+
✗ Branch 35 not taken.
+
✓ Branch 36 taken 14 times.
+
✗ Branch 37 not taken.
+
✓ Branch 38 taken 14 times.
+
✗ Branch 39 not taken.
+
✓ Branch 40 taken 14 times.
+
✗ Branch 41 not taken.
+
✓ Branch 42 taken 14 times.
+
✗ Branch 43 not taken.
+
✓ Branch 44 taken 14 times.
+
✗ Branch 45 not taken.
+
✓ Branch 46 taken 14 times.
+
✗ Branch 47 not taken.
+
✓ Branch 48 taken 14 times.
+
✗ Branch 49 not taken.
+
✓ Branch 50 taken 14 times.
+
✗ Branch 51 not taken.
+
✗ Branch 52 not taken.
+
✗ Branch 53 not taken.
+
✗ Branch 54 not taken.
+
✗ Branch 55 not taken.
+
✗ Branch 56 not taken.
+
✗ Branch 57 not taken.
+
✗ Branch 58 not taken.
+
✗ Branch 59 not taken.
+
✗ Branch 60 not taken.
+
✗ Branch 61 not taken.
+
✗ Branch 62 not taken.
+
✗ Branch 63 not taken.
+
✗ Branch 64 not taken.
+
✗ Branch 65 not taken.
+
✗ Branch 66 not taken.
+
✗ Branch 67 not taken.
+
✗ Branch 68 not taken.
28 error_msg += R"("code":")" + std::string(error_name) + R"(",)" + R"("description":")" + message + R"(",)" + R"("instance":")" + error["instanceRef"].GetString() + R"(",)" +56 error_msg += R"("code":")" + std::string(error_name) + R"(",)" + R"("description":")" + message + R"(",)" + R"("instance":")" + error["instanceRef"].GetString() + R"(",)" +
98
- 4/8 + 7/16
-
✓ Branch 0 taken 14 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
+
✓ Branch 0 taken 3 times.
+
✓ Branch 1 taken 11 times.
✓ Branch 4 taken 14 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 14 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 14 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 14 times.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✓ Branch 12 taken 14 times.
+
✗ Branch 13 not taken.
+
✓ Branch 14 taken 14 times.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
14 R"("schema":")" + error["schemaRef"].GetString() + R"(")";70 R"("schema":")" + error["schemaRef"].GetString() + R"(")";
99 @@ -1174,45 +1239,55 @@

GCC Code Coverage Report

100
2/2
-
✓ Branch 0 taken 12 times.
-
✓ Branch 1 taken 2 times.
+
✓ Branch 0 taken 2 times.
+
✓ Branch 1 taken 12 times.
14 if (!context.empty()) { if (!context.empty()) {
101
- 3/6 + 4/12
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 2 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
+
✓ Branch 6 taken 2 times.
+
✗ Branch 7 not taken.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 2 times.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
2 error_msg += R"(,"context":")" + context + R"(")";6 error_msg += R"(,"context":")" + context + R"(")";
102 2 } }
103 @@ -1220,50 +1295,45 @@

GCC Code Coverage Report

104
- 3/4 + 2/2
-
✓ Branch 0 taken 14 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✓ Branch 3 taken 13 times.
+
✓ Branch 1 taken 1 times.
+
✓ Branch 2 taken 13 times.
14 if (error.HasMember("errors")) { if (error.HasMember("errors")) {
105
- 2/2 + 1/2
-
✓ Branch 0 taken 3 times.
-
✓ Branch 1 taken 2 times.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 error_msg += R"(,"errors":[)"; error_msg += R"(,"errors":[)";
106 -
- 2/2 -
-
✓ Branch 0 taken 1 times.
-
✓ Branch 1 taken 2 times.
-
-
3 const auto& child_errors = error["errors"];1 const auto& child_errors = error["errors"];
107 @@ -1271,77 +1341,77 @@

GCC Code Coverage Report

108
1/2
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 1 times.
+
✓ Branch 0 taken 1 times.
+
✗ Branch 1 not taken.
1 if (child_errors.IsArray()) { if (child_errors.IsArray()) {
109
- 5/8 + 2/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✓ Branch 7 taken 2 times.
+
✓ Branch 0 taken 2 times.
+
✓ Branch 1 taken 1 times.
3 for (const auto& child_error : child_errors.GetArray()) { for (const auto& child_error : child_errors.GetArray()) {
110
2/4
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 2 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 2 times.
+
✗ Branch 5 not taken.
2 CreateErrorMessages(child_error, error_name, error_msg, true); CreateErrorMessages(child_error, error_name, error_msg, true);
111
1/2
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 2 times.
+
✗ Branch 2 not taken.
2 error_msg.push_back(','); error_msg.push_back(',');
112 } }
113 @@ -1354,99 +1424,120 @@

GCC Code Coverage Report

1 if (error_msg.back() == ',') { if (error_msg.back() == ',') {
114 1 error_msg.pop_back(); error_msg.pop_back();
115 } }
116 } else if (child_errors.IsObject()) { } else if (child_errors.IsObject()) {
117 for (const auto& prop : child_errors.GetObject()) { for (const auto& prop : child_errors.GetObject()) {
118 CreateErrorMessages(prop.value, error_name, error_msg, true); CreateErrorMessages(prop.value, error_name, error_msg, true);
119 error_msg.push_back(','); error_msg.push_back(',');
120 } }
121 if (error_msg.back() == ',') { if (error_msg.back() == ',') {
122 error_msg.pop_back(); error_msg.pop_back();
123 } }
124 } }
125 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
error_msg += "]";1 error_msg += "]";
126 1 } }
127 @@ -1459,43 +1550,50 @@

GCC Code Coverage Report

14 if (recursive) { if (recursive) {
128
- 1/2 + 2/4
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 2 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 14 times.
+
✗ Branch 4 not taken.
2 error_msg += "}";14 error_msg += "}";
129 } }
130 14 } }
131 24}14}
132 @@ -1503,20 +1601,23 @@

GCC Code Coverage Report

133 23std::string JsonValidator::GetString(const rapidjson::GenericValue<rapidjson::UTF8<>, rapidjson::CrtAllocator>& val)std::string JsonValidator::GetString(const rapidjson::GenericValue<rapidjson::UTF8<>, rapidjson::CrtAllocator>& val)
134 {{
135 @@ -1529,22 +1630,32 @@

GCC Code Coverage Report

23 if (val.IsString()) { if (val.IsString()) {
136 +
+ 2/2 +
+
✓ Branch 0 taken 5 times.
+
✓ Branch 1 taken 10 times.
+
+
15 return val.GetString();30 return val.GetString();
137 } }
138 @@ -1557,22 +1668,25 @@

GCC Code Coverage Report

8 if (val.IsDouble()) { if (val.IsDouble()) {
139 return std::to_string(val.GetDouble()); return std::to_string(val.GetDouble());
140 } }
141 @@ -1585,127 +1699,145 @@

GCC Code Coverage Report

8 if (val.IsUint()) { if (val.IsUint()) {
142 8 return std::to_string(val.GetUint()); return std::to_string(val.GetUint());
143 } }
144 if (val.IsInt()) { if (val.IsInt()) {
145 return std::to_string(val.GetInt()); return std::to_string(val.GetInt());
146 } }
147 if (val.IsUint64()) { if (val.IsUint64()) {
148 return std::to_string(val.GetUint64()); return std::to_string(val.GetUint64());
149 } }
150 if (val.IsInt64()) { if (val.IsInt64()) {
151 return std::to_string(val.GetInt64()); return std::to_string(val.GetInt64());
152 } }
153 if (val.IsBool()) { if (val.IsBool()) {
154 return val.GetBool() ? "true" : "false"; return val.GetBool() ? "true" : "false";
155 } }
156 if (val.IsFloat()) { if (val.IsFloat()) {
157 return std::to_string(val.GetFloat()); return std::to_string(val.GetFloat());
158 } }
159 @@ -1713,20 +1845,23 @@

GCC Code Coverage Report

160 return ""; return "";
161 23}}
162 @@ -1734,20 +1869,23 @@

GCC Code Coverage Report

163 1161JsonValidator::~JsonValidator()2322JsonValidator::~JsonValidator()
164 1161{{
165 @@ -1755,6 +1893,7 @@

GCC Code Coverage Report

#ifndef LUA_OAS_VALIDATOR // LUA manages garbage collection itself
166 @@ -1766,9 +1905,10 @@

GCC Code Coverage Report

1161 delete validator_;2322 delete validator_;
167 @@ -1780,9 +1920,10 @@

GCC Code Coverage Report

1161 delete schema_;2322 delete schema_;
168 @@ -1790,13 +1931,15 @@

GCC Code Coverage Report

#endif
169 1161}}
170 @@ -1804,13 +1947,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.main.cpp.975bab4305855621fe73d7f6516e2412.html b/covhtml-oasvalidator/index.main.cpp.975bab4305855621fe73d7f6516e2412.html index bb85668..08a4397 100644 --- a/covhtml-oasvalidator/index.main.cpp.975bab4305855621fe73d7f6516e2412.html +++ b/covhtml-oasvalidator/index.main.cpp.975bab4305855621fe73d7f6516e2412.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -45,12 +44,6 @@

GCC Code Coverage Report

3 100.0% - - Functions: - 1 - 1 - 100.0% - Branches: 0 @@ -59,37 +52,10 @@

GCC Code Coverage Report

-
+ -
-
+
- - -
@@ -98,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + + - + + - + + - + + - + + - + + +
Exec Source
1 @@ -105,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -112,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -119,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -133,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -140,13 +113,15 @@

GCC Code Coverage Report

7 #include <gtest/gtest.h>#include <gtest/gtest.h>
8 @@ -154,41 +129,47 @@

GCC Code Coverage Report

9 1int main(int argc, char** argv)int main(int argc, char** argv)
10 {{
11 1 ::testing::InitGoogleTest(&argc, argv); ::testing::InitGoogleTest(&argc, argv);
12 1 return RUN_ALL_TESTS(); return RUN_ALL_TESTS();
13 }}
14 @@ -196,13 +177,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.method_validator.cpp.0f3ea50a524f7827df529d2b5efab1ab.html b/covhtml-oasvalidator/index.method_validator.cpp.0f3ea50a524f7827df529d2b5efab1ab.html index e305a15..cee974e 100644 --- a/covhtml-oasvalidator/index.method_validator.cpp.0f3ea50a524f7827df529d2b5efab1ab.html +++ b/covhtml-oasvalidator/index.method_validator.cpp.0f3ea50a524f7827df529d2b5efab1ab.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -45,106 +44,18 @@

GCC Code Coverage Report

38 100.0% - - Functions: - 6 - 6 - 100.0% - Branches: - 122 - 468 - 26.1% + 146 + 690 + 21.2%
-
+ -
-
+
- - -
@@ -153,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + - + + - + + - - + + + - + + - - + + + - - + + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + +
Exec Source
1 @@ -160,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -167,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -174,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -188,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -195,70 +113,77 @@

GCC Code Coverage Report

7 #include "validators/method_validator.hpp"#include "validators/method_validator.hpp"
8 #include <gtest/gtest.h>#include <gtest/gtest.h>
9 #include <rapidjson/document.h>#include <rapidjson/document.h>
10
- 5/10 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST(MethodValidatorTest, Positive)5TEST(MethodValidatorTest, Positive)
11 {{
12 1 MethodValidator validator;2 MethodValidator validator;
13 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string err_msg;2 std::string err_msg;
14 @@ -266,258 +191,340 @@

GCC Code Coverage Report

15
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("GET", err_msg), ValidationError::NONE);2 EXPECT_EQ(validator.ValidateJson("GET", err_msg), ValidationError::NONE);
16
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("POST", err_msg), ValidationError::NONE);2 EXPECT_EQ(validator.ValidateJson("POST", err_msg), ValidationError::NONE);
17
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("PUT", err_msg), ValidationError::NONE);2 EXPECT_EQ(validator.ValidateJson("PUT", err_msg), ValidationError::NONE);
18
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("DELETE", err_msg), ValidationError::NONE);2 EXPECT_EQ(validator.ValidateJson("DELETE", err_msg), ValidationError::NONE);
19
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("HEAD", err_msg), ValidationError::NONE);2 EXPECT_EQ(validator.ValidateJson("HEAD", err_msg), ValidationError::NONE);
20
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("OPTIONS", err_msg), ValidationError::NONE);2 EXPECT_EQ(validator.ValidateJson("OPTIONS", err_msg), ValidationError::NONE);
21
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("TRACE", err_msg), ValidationError::NONE);2 EXPECT_EQ(validator.ValidateJson("TRACE", err_msg), ValidationError::NONE);
22
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("CONNECT", err_msg), ValidationError::NONE);2 EXPECT_EQ(validator.ValidateJson("CONNECT", err_msg), ValidationError::NONE);
23
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("PATCH", err_msg), ValidationError::NONE);2 EXPECT_EQ(validator.ValidateJson("PATCH", err_msg), ValidationError::NONE);
24 @@ -525,265 +532,359 @@

GCC Code Coverage Report

25
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("get", err_msg), ValidationError::NONE);2 EXPECT_EQ(validator.ValidateJson("get", err_msg), ValidationError::NONE);
26
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("post", err_msg), ValidationError::NONE);2 EXPECT_EQ(validator.ValidateJson("post", err_msg), ValidationError::NONE);
27
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("put", err_msg), ValidationError::NONE);2 EXPECT_EQ(validator.ValidateJson("put", err_msg), ValidationError::NONE);
28
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("delete", err_msg), ValidationError::NONE);2 EXPECT_EQ(validator.ValidateJson("delete", err_msg), ValidationError::NONE);
29
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("head", err_msg), ValidationError::NONE);2 EXPECT_EQ(validator.ValidateJson("head", err_msg), ValidationError::NONE);
30
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("options", err_msg), ValidationError::NONE);2 EXPECT_EQ(validator.ValidateJson("options", err_msg), ValidationError::NONE);
31
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("trace", err_msg), ValidationError::NONE);2 EXPECT_EQ(validator.ValidateJson("trace", err_msg), ValidationError::NONE);
32
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("connect", err_msg), ValidationError::NONE);2 EXPECT_EQ(validator.ValidateJson("connect", err_msg), ValidationError::NONE);
33
- 4/16 + 6/28
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✓ Branch 26 taken 1 times.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 34 not taken.
+
✗ Branch 35 not taken.
1 EXPECT_EQ(validator.ValidateJson("patch", err_msg), ValidationError::NONE);4 EXPECT_EQ(validator.ValidateJson("patch", err_msg), ValidationError::NONE);
34 +
+ 1/2 +
+
✓ Branch 0 taken 1 times.
+
✗ Branch 1 not taken.
+
+
1}4}
35 @@ -791,63 +892,68 @@

GCC Code Coverage Report

36
- 5/10 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST(MethodValidatorTest, Negative)5TEST(MethodValidatorTest, Negative)
37 {{
38 1 MethodValidator validator;2 MethodValidator validator;
39 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string err_msg;2 std::string err_msg;
40
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 rapidjson::Document doc;2 rapidjson::Document doc;
41 @@ -855,303 +961,405 @@

GCC Code Coverage Report

42
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("GETT", err_msg), ValidationError::INVALID_METHOD);2 EXPECT_EQ(validator.ValidateJson("GETT", err_msg), ValidationError::INVALID_METHOD);
43
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 doc.Parse(err_msg.c_str());2 doc.Parse(err_msg.c_str());
44
- 2/12 + 1/20
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
1 EXPECT_FALSE(doc.HasParseError());2 EXPECT_FALSE(doc.HasParseError());
45
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("POSTT", err_msg), ValidationError::INVALID_METHOD);2 EXPECT_EQ(validator.ValidateJson("POSTT", err_msg), ValidationError::INVALID_METHOD);
46
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("PUTT", err_msg), ValidationError::INVALID_METHOD);2 EXPECT_EQ(validator.ValidateJson("PUTT", err_msg), ValidationError::INVALID_METHOD);
47
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("DELETET", err_msg), ValidationError::INVALID_METHOD);2 EXPECT_EQ(validator.ValidateJson("DELETET", err_msg), ValidationError::INVALID_METHOD);
48
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("HEADT", err_msg), ValidationError::INVALID_METHOD);2 EXPECT_EQ(validator.ValidateJson("HEADT", err_msg), ValidationError::INVALID_METHOD);
49
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("OPTIONST", err_msg), ValidationError::INVALID_METHOD);2 EXPECT_EQ(validator.ValidateJson("OPTIONST", err_msg), ValidationError::INVALID_METHOD);
50
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("TRACET", err_msg), ValidationError::INVALID_METHOD);2 EXPECT_EQ(validator.ValidateJson("TRACET", err_msg), ValidationError::INVALID_METHOD);
51
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("CONNECTT", err_msg), ValidationError::INVALID_METHOD);2 EXPECT_EQ(validator.ValidateJson("CONNECTT", err_msg), ValidationError::INVALID_METHOD);
52
- 4/16 + 5/24
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
1 EXPECT_EQ(validator.ValidateJson("PATCHT", err_msg), ValidationError::INVALID_METHOD);2 EXPECT_EQ(validator.ValidateJson("PATCHT", err_msg), ValidationError::INVALID_METHOD);
53 +
+ 2/4 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✗ Branch 4 not taken.
+
+
1}6}
54 @@ -1159,13 +1367,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.method_validator.cpp.5b94ca5d7c48a579eca14991e4c2d081.html b/covhtml-oasvalidator/index.method_validator.cpp.5b94ca5d7c48a579eca14991e4c2d081.html index 80eb3aa..436e6fe 100644 --- a/covhtml-oasvalidator/index.method_validator.cpp.5b94ca5d7c48a579eca14991e4c2d081.html +++ b/covhtml-oasvalidator/index.method_validator.cpp.5b94ca5d7c48a579eca14991e4c2d081.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,66 +40,22 @@

GCC Code Coverage Report

Lines: - 12 - 12 - 100.0% - - - Functions: - 2 - 2 + 7 + 7 100.0% Branches: - 25 - 48 - 52.1% + 9 + 22 + 40.9%
-
- -
-
- - +
-
@@ -109,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + + - - + + + - + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - + + - - + + + - - + + + + - - + + + - - + + + +
Exec Source
1 @@ -116,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -123,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -130,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -144,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -151,13 +113,15 @@

GCC Code Coverage Report

7 #include "validators/method_validator.hpp"#include "validators/method_validator.hpp"
8 @@ -165,34 +129,39 @@

GCC Code Coverage Report

9 54MethodValidator::MethodValidator()27MethodValidator::MethodValidator()
10 27 : BaseValidator(ValidationError::INVALID_METHOD) : BaseValidator(ValidationError::INVALID_METHOD)
11 81{{
12 54}27}
13 @@ -200,82 +169,103 @@

GCC Code Coverage Report

14 192270232ValidationError MethodValidator::ValidateJson(const std::string& method, std::string& err_msg)553133607ValidationError MethodValidator::ValidateJson(const std::string& method, std::string& err_msg)
15 {{
16
2/2
-
✓ Branch 0 taken 141563241 times.
-
✓ Branch 1 taken 50706991 times.
+
✓ Branch 1 taken 207663085 times.
+
✓ Branch 2 taken 345470522 times.
192270232 if (kValidMethods.find(method) == kValidMethods.end()) {553133607 if (kValidMethods.find(method) == kValidMethods.end()) {
17
- 4/8 + 7/20
-
✓ Branch 0 taken 50706991 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 50706991 times.
+
✓ Branch 2 taken 207663085 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 50706991 times.
-
✗ Branch 5 not taken.
+
✓ Branch 5 taken 207663085 times.
✗ Branch 6 not taken.
-
✓ Branch 7 taken 50706991 times.
+
✓ Branch 8 taken 207663085 times.
+
✗ Branch 9 not taken.
+
✓ Branch 10 taken 207663085 times.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✓ Branch 13 taken 207663085 times.
+
✗ Branch 14 not taken.
+
✓ Branch 15 taken 207663085 times.
+
✗ Branch 16 not taken.
+
✓ Branch 17 taken 207663085 times.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
50706991 err_msg += err_header_ + R"("description": "Invalid HTTP method ')" + method + "'" + R"("}})";622989255 err_msg += err_header_ + R"("description": "Invalid HTTP method ')" + method + "'" + R"("}})";
18 50706991 return ValidationError::INVALID_METHOD;207663085 return ValidationError::INVALID_METHOD;
19 } }
20 141563241 return ValidationError::NONE; return ValidationError::NONE;
21 192270232}}
22 @@ -283,68 +273,23 @@

GCC Code Coverage Report

23 -
- 10/20 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 2 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 2 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 2 times.
-
✗ Branch 9 not taken.
-
✓ Branch 10 taken 2 times.
-
✗ Branch 11 not taken.
-
✓ Branch 12 taken 2 times.
-
✗ Branch 13 not taken.
-
✓ Branch 14 taken 2 times.
-
✗ Branch 15 not taken.
-
✓ Branch 16 taken 2 times.
-
✗ Branch 17 not taken.
-
✗ Branch 18 not taken.
-
✓ Branch 19 taken 2 times.
-
-
2const std::unordered_set<std::string> MethodValidator::kValidMethods = {"GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "PATCH", "CONNECT", "TRACE",const std::unordered_set<std::string> MethodValidator::kValidMethods = {"GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "PATCH", "CONNECT", "TRACE",
24 -
- 9/18 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 2 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 2 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 2 times.
-
✗ Branch 9 not taken.
-
✓ Branch 10 taken 2 times.
-
✗ Branch 11 not taken.
-
✓ Branch 12 taken 2 times.
-
✗ Branch 13 not taken.
-
✓ Branch 14 taken 2 times.
-
✗ Branch 15 not taken.
-
✓ Branch 16 taken 2 times.
-
✗ Branch 17 not taken.
-
-
2 "get", "post", "put", "delete", "head", "options", "patch", "connect", "trace"}; "get", "post", "put", "delete", "head", "options", "patch", "connect", "trace"};
25 @@ -352,13 +297,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.method_validator.hpp.abe68f1a52bbdcec3c3f621092f431c8.html b/covhtml-oasvalidator/index.method_validator.hpp.abe68f1a52bbdcec3c3f621092f431c8.html index a731ed9..cdeb59a 100644 --- a/covhtml-oasvalidator/index.method_validator.hpp.abe68f1a52bbdcec3c3f621092f431c8.html +++ b/covhtml-oasvalidator/index.method_validator.hpp.abe68f1a52bbdcec3c3f621092f431c8.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,34 +40,22 @@

GCC Code Coverage Report

Lines: - 0 - 0 - -% - - - Functions: - 0 - 0 - -% + 1 + 1 + 100.0% Branches: - 0 - 0 - -% + 3 + 8 + 37.5%
-
- -
-
+ - - -
@@ -77,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + + + + - + + + - + + + - - + + + - + + - + + - + + - + + + - + + - + + - + + + + +
Exec Source
1 @@ -84,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -91,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -98,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -112,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -119,6 +113,7 @@

GCC Code Coverage Report

7 @@ -126,6 +121,7 @@

GCC Code Coverage Report

#ifndef METHOD_VALIDATOR_HPP
8 @@ -133,6 +129,7 @@

GCC Code Coverage Report

#define METHOD_VALIDATOR_HPP
9 @@ -140,13 +137,15 @@

GCC Code Coverage Report

10 #include "validators/base_validator.hpp"#include "validators/base_validator.hpp"
11 @@ -154,13 +153,15 @@

GCC Code Coverage Report

12 #include <unordered_set>#include <unordered_set>
13 @@ -168,41 +169,60 @@

GCC Code Coverage Report

14 +
+ 3/8 +
+
✓ Branch 0 taken 25 times.
+
✗ Branch 1 not taken.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✓ Branch 4 taken 1 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✗ Branch 7 not taken.
+
+
class MethodValidator: public BaseValidator54class MethodValidator: public BaseValidator
15 {{
16 public:public:
17 MethodValidator(); MethodValidator();
18 ValidationError ValidateJson(const std::string& method, std::string& err_msg) override; ValidationError ValidateJson(const std::string& method, std::string& err_msg) override;
19 @@ -210,27 +230,31 @@

GCC Code Coverage Report

20 private:private:
21 static const std::unordered_set<std::string> kValidMethods; static const std::unordered_set<std::string> kValidMethods;
22 };};
23 @@ -238,6 +262,7 @@

GCC Code Coverage Report

24 @@ -245,6 +270,7 @@

GCC Code Coverage Report

#endif // METHOD_VALIDATOR_HPP
25 @@ -252,13 +278,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.oas_validator.cpp.af843dc097d66a334d11a6ed57c45b3b.html b/covhtml-oasvalidator/index.oas_validator.cpp.af843dc097d66a334d11a6ed57c45b3b.html index 3826c75..1a37064 100644 --- a/covhtml-oasvalidator/index.oas_validator.cpp.af843dc097d66a334d11a6ed57c45b3b.html +++ b/covhtml-oasvalidator/index.oas_validator.cpp.af843dc097d66a334d11a6ed57c45b3b.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,14 +40,8 @@

GCC Code Coverage Report

Lines: - 26 - 26 - 100.0% - - - Functions: - 11 - 11 + 24 + 24 100.0% @@ -59,147 +52,10 @@

GCC Code Coverage Report

-
+ -
-
+
- - -
@@ -208,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + + - + + + - - + + + - + + - - + + + - - + + + + - - + + + - + + - - + + + - + + + - - + + + - + + - - + + + - + + - - + + + - + + - - + + + - + + + - - + + + - + + - - + + + - + + + - - + + + - + + - + + - - + + + - + + + - + + - + + - + + - + + + - + + - + + - + + - + + + - + + - + + - + + - + + - + + + - - + + + - + + - + + - - + + + - + + + - - + + + - - + + + - + + - - + + + +
Exec Source
1 @@ -215,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -222,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -229,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -243,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -250,13 +113,15 @@

GCC Code Coverage Report

7 #include "oas_validator.hpp"#include "oas_validator.hpp"
8 @@ -264,13 +129,15 @@

GCC Code Coverage Report

9 #include "oas_validator_imp.hpp"#include "oas_validator_imp.hpp"
10 @@ -278,41 +145,46 @@

GCC Code Coverage Report

11 50OASValidator::OASValidator(const std::string& oas_specs)25OASValidator::OASValidator(const std::string& oas_specs)
12
2/2
-
✓ Branch 0 taken 24 times.
-
✓ Branch 1 taken 1 times.
+
✓ Branch 2 taken 24 times.
+
✓ Branch 3 taken 1 times.
25 : impl_(new OASValidatorImp(oas_specs)) : impl_(new OASValidatorImp(oas_specs))
13 25{{
14 50}24}
15 @@ -320,34 +192,39 @@

GCC Code Coverage Report

16 117716506ValidationError OASValidator::ValidateRoute(const std::string& method, const std::string& http_path, std::string& error_msg)309928228ValidationError OASValidator::ValidateRoute(const std::string& method, const std::string& http_path, std::string& error_msg)
17 {{
18 117716506 return impl_->ValidateRoute(method, http_path, error_msg);309928228 return impl_->ValidateRoute(method, http_path, error_msg);
19 }}
20 @@ -355,62 +232,71 @@

GCC Code Coverage Report

21 10029397ValidationError OASValidator::ValidateBody(const std::string& method, const std::string& http_path, const std::string& json_body, std::string& error_msg)25493277ValidationError OASValidator::ValidateBody(const std::string& method, const std::string& http_path, const std::string& json_body, std::string& error_msg)
22 {{
23 10029397 return impl_->ValidateBody(method, http_path, json_body, error_msg);25493277 return impl_->ValidateBody(method, http_path, json_body, error_msg);
24 }}
25 2787760ValidationError OASValidator::ValidatePathParam(const std::string& method, const std::string& http_path, std::string& error_msg)8954210ValidationError OASValidator::ValidatePathParam(const std::string& method, const std::string& http_path, std::string& error_msg)
26 {{
27 2787760 return impl_->ValidatePathParam(method, http_path, error_msg);8954210 return impl_->ValidatePathParam(method, http_path, error_msg);
28 }}
29 @@ -418,34 +304,39 @@

GCC Code Coverage Report

30 14359570ValidationError OASValidator::ValidateQueryParam(const std::string& method, const std::string& http_path, std::string& error_msg)50636521ValidationError OASValidator::ValidateQueryParam(const std::string& method, const std::string& http_path, std::string& error_msg)
31 {{
32 14359570 return impl_->ValidateQueryParam(method, http_path, error_msg);50636521 return impl_->ValidateQueryParam(method, http_path, error_msg);
33 }}
34 @@ -453,41 +344,47 @@

GCC Code Coverage Report

35 16142647ValidationError OASValidator::ValidateHeaders(const std::string& method, const std::string& http_path, const std::unordered_map<std::string, std::string>& headers,51710956ValidationError OASValidator::ValidateHeaders(const std::string& method, const std::string& http_path, const std::unordered_map<std::string, std::string>& headers,
36 std::string& error_msg) std::string& error_msg)
37 {{
38 16142647 return impl_->ValidateHeaders(method, http_path, headers, error_msg);51710956 return impl_->ValidateHeaders(method, http_path, headers, error_msg);
39 }}
40 @@ -495,34 +392,39 @@

GCC Code Coverage Report

41 17ValidationError OASValidator::ValidateRequest(const std::string& method, const std::string& http_path, std::string& error_msg)ValidationError OASValidator::ValidateRequest(const std::string& method, const std::string& http_path, std::string& error_msg)
42 {{
43 17 return impl_->ValidateRequest(method, http_path, error_msg); return impl_->ValidateRequest(method, http_path, error_msg);
44 }}
45 @@ -530,34 +432,39 @@

GCC Code Coverage Report

46 1ValidationError OASValidator::ValidateRequest(const std::string& method, const std::string& http_path, const std::string& json_body, std::string& error_msg)ValidationError OASValidator::ValidateRequest(const std::string& method, const std::string& http_path, const std::string& json_body, std::string& error_msg)
47 {{
48 1 return impl_->ValidateRequest(method, http_path, json_body, error_msg); return impl_->ValidateRequest(method, http_path, json_body, error_msg);
49 }}
50 @@ -565,41 +472,47 @@

GCC Code Coverage Report

51 3ValidationError OASValidator::ValidateRequest(const std::string& method, const std::string& http_path, const std::unordered_map<std::string, std::string>& headers,ValidationError OASValidator::ValidateRequest(const std::string& method, const std::string& http_path, const std::unordered_map<std::string, std::string>& headers,
52 std::string& error_msg) std::string& error_msg)
53 {{
54 3 return impl_->ValidateRequest(method, http_path, headers, error_msg); return impl_->ValidateRequest(method, http_path, headers, error_msg);
55 }}
56 @@ -607,41 +520,47 @@

GCC Code Coverage Report

57 31234304ValidationError OASValidator::ValidateRequest(const std::string& method, const std::string& http_path, const std::string& json_body,106410367ValidationError OASValidator::ValidateRequest(const std::string& method, const std::string& http_path, const std::string& json_body,
58 const std::unordered_map<std::string, std::string>& headers, std::string& error_msg) const std::unordered_map<std::string, std::string>& headers, std::string& error_msg)
59 {{
60 31234304 return impl_->ValidateRequest(method, http_path, json_body, headers, error_msg);106410367 return impl_->ValidateRequest(method, http_path, json_body, headers, error_msg);
61 }}
62 @@ -649,20 +568,23 @@

GCC Code Coverage Report

63 48OASValidator::~OASValidator()24OASValidator::~OASValidator()
64 24{{
65 @@ -675,15 +597,17 @@

GCC Code Coverage Report

24 delete impl_; delete impl_;
66 48};24};
67 @@ -691,13 +615,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.oas_validator.cpp.fd288b227580f2e07776f24dbeb8d0d7.html b/covhtml-oasvalidator/index.oas_validator.cpp.fd288b227580f2e07776f24dbeb8d0d7.html index 0b0b2b3..229f040 100644 --- a/covhtml-oasvalidator/index.oas_validator.cpp.fd288b227580f2e07776f24dbeb8d0d7.html +++ b/covhtml-oasvalidator/index.oas_validator.cpp.fd288b227580f2e07776f24dbeb8d0d7.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,308 +40,22 @@

GCC Code Coverage Report

Lines: - 100 - 100 - 100.0% - - - Functions: - 24 - 24 - 100.0% + 102 + 104 + 98.1% Branches: - 379 - 1250 - 30.3% + 501 + 2035 + 24.6%
-
- -
-
- - +
-
@@ -351,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + - + + - + + + - - + + + - + + - - + + + - + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - +
✓ Branch 19 taken 1 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✓ Branch 22 taken 1 times.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 34 not taken.
+
✓ Branch 35 taken 1 times.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 39 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 41 not taken.
+
✗ Branch 42 not taken.
+
✗ Branch 44 not taken.
+
✗ Branch 45 not taken.
+
✗ Branch 46 not taken.
+
✗ Branch 47 not taken.
+
✗ Branch 48 not taken.
+
✗ Branch 49 not taken.
+ + + + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - + + - + + - + + - + + - + + - - + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - - + + + - - + + + - + + - + + - + + - + + - + + - - + + + - - + + + +
Exec Source
1 @@ -358,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -365,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -372,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -386,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -393,27 +113,31 @@

GCC Code Coverage Report

7 #include "oas_validator.hpp"#include "oas_validator.hpp"
8 #include "utils/common.hpp"#include "utils/common.hpp"
9 #include <gtest/gtest.h>#include <gtest/gtest.h>
10 @@ -421,72 +145,94 @@

GCC Code Coverage Report

11
- 5/10 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST(OASValidatorImpTest, ValidateRoute)5TEST(OASValidatorImpTest, ValidateRoute)
12 {{
13
- 7/18 + 6/43
-
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
-
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
-
✗ Branch 11 not taken.
-
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
-
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✓ Branch 27 taken 1 times.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✓ Branch 32 taken 1 times.
+
✗ Branch 33 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 39 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 41 not taken.
+
✗ Branch 42 not taken.
+
✗ Branch 44 not taken.
+
✗ Branch 45 not taken.
+
✗ Branch 48 not taken.
+
✗ Branch 49 not taken.
+
✗ Branch 51 not taken.
+
✗ Branch 52 not taken.
+
✗ Branch 56 not taken.
+
✗ Branch 57 not taken.
+
✗ Branch 59 not taken.
+
✗ Branch 60 not taken.
+
✗ Branch 64 not taken.
+
✗ Branch 65 not taken.
+
✗ Branch 66 not taken.
+
✗ Branch 67 not taken.
2 EXPECT_THROW({ OASValidator validator("invalid_path"); }, ValidatorInitExc);4 EXPECT_THROW({ OASValidator validator("invalid_path"); }, ValidatorInitExc);
14 2}}
15 @@ -494,69 +240,79 @@

GCC Code Coverage Report

16 class OASValidatorTest: public ::testing::Test12class OASValidatorTest: public ::testing::Test
17 {{
18 protected:protected:
19 6 void SetUp() override void SetUp() override
20 { {
21 6 validator_ = std::make_unique<OASValidator>(SPEC_PATH); validator_ = std::make_unique<OASValidator>(SPEC_PATH);
22 6 } }
23 std::unique_ptr<OASValidator> validator_; std::unique_ptr<OASValidator> validator_;
24 };};
25 @@ -564,407 +320,573 @@

GCC Code Coverage Report

26
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST_F(OASValidatorTest, ValidateRoute)7TEST_F(OASValidatorTest, ValidateRoute)
27 {{
28 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string err_msg;2 std::string err_msg;
29
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/integer_simple_true/123", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/integer_simple_true/123", err_msg));
30
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/integer_simple_true/123str", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/integer_simple_true/123str", err_msg));
31
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/integer_label_true/.123", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/integer_label_true/.123", err_msg));
32
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/integer_label_true/123", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/integer_label_true/123", err_msg));
33
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/integer_matrix_true/;param=123", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/integer_matrix_true/;param=123", err_msg));
34
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/integer_matrix_true/;123", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/integer_matrix_true/;123", err_msg));
35
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/string_simple_true/abc%20xyz", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/string_simple_true/abc%20xyz", err_msg));
36
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/string_simple_true/abc%2xyz", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/string_simple_true/abc%2xyz", err_msg));
37
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/string_label_true/.abc%20xyz", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/string_label_true/.abc%20xyz", err_msg));
38
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/string_label_true/abc%2xyz", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/string_label_true/abc%2xyz", err_msg));
39
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/string_matrix_true/;param=abc%20xyz", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/string_matrix_true/;param=abc%20xyz", err_msg));
40
- 5/18 + 8/34
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✓ Branch 31 taken 1 times.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 34 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 39 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 41 not taken.
+
✗ Branch 42 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/string_matrix_true/;param=abc%2xyz", err_msg));6 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRoute("GET", "/test/string_matrix_true/;param=abc%2xyz", err_msg));
41 1}2}
42 @@ -972,407 +894,573 @@

GCC Code Coverage Report

43
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST_F(OASValidatorTest, ValidatePathParam)7TEST_F(OASValidatorTest, ValidatePathParam)
44 {{
45 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string err_msg;2 std::string err_msg;
46
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidatePathParam("GET", "/test/integer_simple_true/123", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidatePathParam("GET", "/test/integer_simple_true/123", err_msg));
47
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidatePathParam("GET", "/test/integer_simple_true/123str", err_msg));4 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidatePathParam("GET", "/test/integer_simple_true/123str", err_msg));
48
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidatePathParam("GET", "/test/integer_label_true/.123", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidatePathParam("GET", "/test/integer_label_true/.123", err_msg));
49
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidatePathParam("GET", "/test/integer_label_true/123", err_msg));4 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidatePathParam("GET", "/test/integer_label_true/123", err_msg));
50
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidatePathParam("GET", "/test/integer_matrix_true/;param=123", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidatePathParam("GET", "/test/integer_matrix_true/;param=123", err_msg));
51
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidatePathParam("GET", "/test/integer_matrix_true/;123", err_msg));4 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidatePathParam("GET", "/test/integer_matrix_true/;123", err_msg));
52
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidatePathParam("GET", "/test/string_simple_true/abc%20xyz", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidatePathParam("GET", "/test/string_simple_true/abc%20xyz", err_msg));
53
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidatePathParam("GET", "/test/string_simple_true/abc%2xyz", err_msg));4 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidatePathParam("GET", "/test/string_simple_true/abc%2xyz", err_msg));
54
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidatePathParam("GET", "/test/string_label_true/.abc%20xyz", err_msg));4 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidatePathParam("GET", "/test/string_label_true/.abc%20xyz", err_msg));
55
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidatePathParam("GET", "/test/string_label_true/abc%2xyz", err_msg));4 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidatePathParam("GET", "/test/string_label_true/abc%2xyz", err_msg));
56
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidatePathParam("GET", "/test/string_matrix_true/;param=abc%20xyz", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidatePathParam("GET", "/test/string_matrix_true/;param=abc%20xyz", err_msg));
57
- 5/18 + 8/34
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✓ Branch 30 taken 1 times.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 34 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 39 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 41 not taken.
+
✗ Branch 42 not taken.
1 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidatePathParam("GET", "/test/string_matrix_true/;param=abc%2xyz", err_msg));6 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidatePathParam("GET", "/test/string_matrix_true/;param=abc%2xyz", err_msg));
58 1}2}
59 @@ -1380,137 +1468,186 @@

GCC Code Coverage Report

60
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST_F(OASValidatorTest, ValidateQueryParam)7TEST_F(OASValidatorTest, ValidateQueryParam)
61 {{
62 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string err_msg;2 std::string err_msg;
63
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateQueryParam("GET", "/test/query_integer_form_true?param=123", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateQueryParam("GET", "/test/query_integer_form_true?param=123", err_msg));
64
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_QUERY_PARAM, validator_->ValidateQueryParam("GET", "/test/query_integer_form_true?param=123str", err_msg));4 EXPECT_EQ(ValidationError::INVALID_QUERY_PARAM, validator_->ValidateQueryParam("GET", "/test/query_integer_form_true?param=123str", err_msg));
65
- 5/18 + 8/34
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✓ Branch 30 taken 1 times.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 34 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 39 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 41 not taken.
+
✗ Branch 42 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateQueryParam("GET", "/test/query_two_integer_form_mixed?param1=123&param2=456", err_msg));6 EXPECT_EQ(ValidationError::NONE, validator_->ValidateQueryParam("GET", "/test/query_two_integer_form_mixed?param1=123&param2=456", err_msg));
66 1}2}
67 @@ -1518,392 +1655,501 @@

GCC Code Coverage Report

68
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST_F(OASValidatorTest, ValidateHeaders)7TEST_F(OASValidatorTest, ValidateHeaders)
69 {{
70 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string err_msg;2 std::string err_msg;
71 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::unordered_map<std::string, std::string> headers;2 std::unordered_map<std::string, std::string> headers;
72
3/6
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
1 headers["intHeader"] = "123";4 headers["intHeader"] = "123";
73
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateHeaders("GET", "/test/header_single1", headers, err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateHeaders("GET", "/test/header_single1", headers, err_msg));
74
3/6
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
1 headers["intHeader"] = "123str";4 headers["intHeader"] = "123str";
75
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_HEADER_PARAM, validator_->ValidateHeaders("GET", "/test/header_single1", headers, err_msg));4 EXPECT_EQ(ValidationError::INVALID_HEADER_PARAM, validator_->ValidateHeaders("GET", "/test/header_single1", headers, err_msg));
76 1 headers.clear();2 headers.clear();
77
3/6
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
1 headers["objectHeader"] = "field1,123,field2,abc";4 headers["objectHeader"] = "field1,123,field2,abc";
78
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateHeaders("GET", "/test/header_single5", headers, err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateHeaders("GET", "/test/header_single5", headers, err_msg));
79
3/6
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
1 headers["objectHeader"] = "field1,xyz,field2,abc";4 headers["objectHeader"] = "field1,xyz,field2,abc";
80
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_HEADER_PARAM, validator_->ValidateHeaders("GET", "/test/header_single5", headers, err_msg));4 EXPECT_EQ(ValidationError::INVALID_HEADER_PARAM, validator_->ValidateHeaders("GET", "/test/header_single5", headers, err_msg));
81 1 headers.clear();2 headers.clear();
82
3/6
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
1 headers["objectHeader"] = "field1=123,field2=abc";4 headers["objectHeader"] = "field1=123,field2=abc";
83
3/6
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
1 headers["stringHeader"] = "abc";4 headers["stringHeader"] = "abc";
84
3/6
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
1 headers["intHeader"] = "123";4 headers["intHeader"] = "123";
85
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateHeaders("GET", "/test/header_triple5", headers, err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateHeaders("GET", "/test/header_triple5", headers, err_msg));
86
3/6
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
1 headers["objectHeader"] = "field1,123,field2,abc";4 headers["objectHeader"] = "field1,123,field2,abc";
87
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 34 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 39 not taken.
1 EXPECT_EQ(ValidationError::INVALID_HEADER_PARAM, validator_->ValidateHeaders("GET", "/test/header_triple5", headers, err_msg));6 EXPECT_EQ(ValidationError::INVALID_HEADER_PARAM, validator_->ValidateHeaders("GET", "/test/header_triple5", headers, err_msg));
88 +
+ 1/2 +
+
✓ Branch 0 taken 1 times.
+
✗ Branch 1 not taken.
+
+
1}4}
89 @@ -1911,175 +2157,253 @@

GCC Code Coverage Report

90
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST_F(OASValidatorTest, ValidateBody)7TEST_F(OASValidatorTest, ValidateBody)
91 {{
92 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string err_msg;2 std::string err_msg;
93
- 6/20 + 9/36
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
-
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 16 taken 1 times.
+
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✓ Branch 20 taken 1 times.
+
✗ Branch 21 not taken.
+
✓ Branch 22 taken 1 times.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 34 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 39 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 42 not taken.
+
✗ Branch 43 not taken.
+
✗ Branch 44 not taken.
+
✗ Branch 45 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateBody("POST", "/test/body_scenario1", "123", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateBody("POST", "/test/body_scenario1", "123", err_msg));
94
- 6/20 + 9/36
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
-
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 16 taken 1 times.
+
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✓ Branch 20 taken 1 times.
+
✗ Branch 21 not taken.
+
✓ Branch 22 taken 1 times.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 34 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 39 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 42 not taken.
+
✗ Branch 43 not taken.
+
✗ Branch 44 not taken.
+
✗ Branch 45 not taken.
1 EXPECT_EQ(ValidationError::INVALID_BODY, validator_->ValidateBody("POST", "/test/body_scenario1", "123str", err_msg));4 EXPECT_EQ(ValidationError::INVALID_BODY, validator_->ValidateBody("POST", "/test/body_scenario1", "123str", err_msg));
95
- 6/20 + 9/36
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
-
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 16 taken 1 times.
+
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
-
✗ Branch 19 not taken.
+
✓ Branch 19 taken 1 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✓ Branch 22 taken 1 times.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 34 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 39 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 42 not taken.
+
✗ Branch 43 not taken.
+
✗ Branch 44 not taken.
+
✗ Branch 45 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateBody("POST", "/test/body_scenario20", "{\"level1\":{\"level2\":{\"level3\":\"abc\"}}}", err_msg));6 EXPECT_EQ(ValidationError::NONE, validator_->ValidateBody("POST", "/test/body_scenario20", "{\"level1\":{\"level2\":{\"level3\":\"abc\"}}}", err_msg));
96
- 6/20 + 10/40
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
-
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 16 taken 1 times.
+
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
-
✗ Branch 19 not taken.
-
-
-
1 EXPECT_EQ(ValidationError::INVALID_BODY, validator_->ValidateBody("POST", "/test/body_scenario20", "{\"level1\":{\"level2\":{\"level3\":123}}}", err_msg));8 EXPECT_EQ(ValidationError::INVALID_BODY, validator_->ValidateBody("POST", "/test/body_scenario20", "{\"level1\":{\"level2\":{\"level3\":123}}}", err_msg));
97 1}2}
98 @@ -2087,972 +2411,1349 @@

GCC Code Coverage Report

99
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST_F(OASValidatorTest, ValidateRequst)7TEST_F(OASValidatorTest, ValidateRequst)
100 {{
101 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string err_msg;2 std::string err_msg;
102
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/integer_simple_true/123", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/integer_simple_true/123", err_msg));
103
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidateRequest("GET", "/test/integer_simple_true/123str", err_msg));4 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidateRequest("GET", "/test/integer_simple_true/123str", err_msg));
104
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/integer_label_true/.123", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/integer_label_true/.123", err_msg));
105
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidateRequest("GET", "/test/integer_label_true/123", err_msg));4 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidateRequest("GET", "/test/integer_label_true/123", err_msg));
106
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/integer_matrix_true/;param=123", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/integer_matrix_true/;param=123", err_msg));
107
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidateRequest("GET", "/test/integer_matrix_true/;123", err_msg));4 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidateRequest("GET", "/test/integer_matrix_true/;123", err_msg));
108
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/string_simple_true/abc%20xyz", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/string_simple_true/abc%20xyz", err_msg));
109
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidateRequest("GET", "/test/string_simple_true/abc%2xyz", err_msg));4 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidateRequest("GET", "/test/string_simple_true/abc%2xyz", err_msg));
110
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 1 times.
+
✗ Branch 5 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidateRequest("GET", "/test/string_label_true/.abc%20xyz", err_msg));4 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidateRequest("GET", "/test/string_label_true/.abc%20xyz", err_msg));
111
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidateRequest("GET", "/test/string_label_true/abc%2xyz", err_msg));4 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidateRequest("GET", "/test/string_label_true/abc%2xyz", err_msg));
112
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/string_matrix_true/;param=abc%20xyz", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/string_matrix_true/;param=abc%20xyz", err_msg));
113
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidateRequest("GET", "/test/string_matrix_true/;param=abc%2xyz", err_msg));4 EXPECT_EQ(ValidationError::INVALID_PATH_PARAM, validator_->ValidateRequest("GET", "/test/string_matrix_true/;param=abc%2xyz", err_msg));
114
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/query_integer_form_true?param=123", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/query_integer_form_true?param=123", err_msg));
115
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_QUERY_PARAM, validator_->ValidateRequest("GET", "/test/query_integer_form_true?param=123str", err_msg));4 EXPECT_EQ(ValidationError::INVALID_QUERY_PARAM, validator_->ValidateRequest("GET", "/test/query_integer_form_true?param=123str", err_msg));
116
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/query_two_integer_form_mixed?param1=123&param2=456", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/query_two_integer_form_mixed?param1=123&param2=456", err_msg));
117
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/header_single1", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/header_single1", err_msg));
118
- 6/20 + 9/38
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
-
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 16 taken 1 times.
+
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✓ Branch 20 taken 1 times.
+
✗ Branch 21 not taken.
+
✓ Branch 22 taken 1 times.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 34 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 39 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 42 not taken.
+
✗ Branch 43 not taken.
+
✗ Branch 44 not taken.
+
✗ Branch 45 not taken.
+
✗ Branch 46 not taken.
+
✗ Branch 47 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/integer_simple_true/123", "", err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/integer_simple_true/123", "", err_msg));
119 +
+ 2/4 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
✗ Branch 4 not taken.
+
+
1 std::unordered_map<std::string, std::string> dummy;4 std::unordered_map<std::string, std::string> dummy;
120
- 6/20 + 9/36
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
-
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 16 taken 1 times.
+
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
+
✓ Branch 20 taken 1 times.
+
✗ Branch 21 not taken.
+
✓ Branch 22 taken 1 times.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 34 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 39 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 42 not taken.
+
✗ Branch 43 not taken.
+
✗ Branch 44 not taken.
+
✗ Branch 45 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/integer_simple_true/123", "", dummy, err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/integer_simple_true/123", "", dummy, err_msg));
121
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/integer_simple_true/123", dummy, err_msg));4 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("GET", "/test/integer_simple_true/123", dummy, err_msg));
122
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_METHOD, validator_->ValidateRequest("GET1", "/test/integer_simple_true/123", dummy, err_msg));4 EXPECT_EQ(ValidationError::INVALID_METHOD, validator_->ValidateRequest("GET1", "/test/integer_simple_true/123", dummy, err_msg));
123
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
-
✗ Branch 15 not taken.
+
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::INVALID_ROUTE, validator_->ValidateRequest("GET", "/test/invalid", dummy, err_msg));2 EXPECT_EQ(ValidationError::INVALID_ROUTE, validator_->ValidateRequest("GET", "/test/invalid", dummy, err_msg));
124 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::unordered_map<std::string, std::string> headers;4 std::unordered_map<std::string, std::string> headers;
125
3/6
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
1 headers["param11"] = "true";4 headers["param11"] = "true";
126
3/6
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1 times.
1 headers["param12"] = "field1=0&field2=string";4 headers["param12"] = "field1=0&field2=string";
127
- 6/20 + 9/36
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
-
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 16 taken 1 times.
+
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
-
✗ Branch 19 not taken.
+
✓ Branch 19 taken 1 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✓ Branch 22 taken 1 times.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 34 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 39 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 42 not taken.
+
✗ Branch 43 not taken.
+
✗ Branch 44 not taken.
+
✗ Branch 45 not taken.
1 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("POST",6 EXPECT_EQ(ValidationError::NONE, validator_->ValidateRequest("POST",
128 "/test/all/123/abc/str1,str2/" "/test/all/123/abc/str1,str2/"
129 "field1,0,field2,string?param4=string1&param4=string2&param5=field1,0,field2,string&param6=field1,0,field2,string&" "field1,0,field2,string?param4=string1&param4=string2&param5=field1,0,field2,string&param6=field1,0,field2,string&"
130 "param7=field1,0,field2,string&param8=field1,0,field2,string&param9=field1,0,field2,string&param10=false", "param7=field1,0,field2,string&param8=field1,0,field2,string&param9=field1,0,field2,string&param10=false",
131 "{\"field1\":123,\"field2\":\"abc\",\"field3\":[\"abc\",\"def\"],\"field4\":{\"subfield1\":123,\"subfield2\":" "{\"field1\":123,\"field2\":\"abc\",\"field3\":[\"abc\",\"def\"],\"field4\":{\"subfield1\":123,\"subfield2\":"
132 "\"abc\"},\"field5\":{\"subfield1\":123},\"field6\":\"abc\",\"field7\":[123,456],\"field8\":[123,456],\"field9\":" "\"abc\"},\"field5\":{\"subfield1\":123},\"field6\":\"abc\",\"field7\":[123,456],\"field8\":[123,456],\"field9\":"
133 "\"abc\",\"field10\":\"option1\",\"field11\":{\"field\":123},\"field12\":[{\"name\":\"abc\"},{\"name\":\"def\"}]}", "\"abc\",\"field10\":\"option1\",\"field11\":{\"field\":123},\"field12\":[{\"name\":\"abc\"},{\"name\":\"def\"}]}",
134 headers, err_msg)); headers, err_msg));
135
- 6/20 + 9/36
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
+
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
-
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 16 taken 1 times.
+
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
-
✗ Branch 19 not taken.
+
✓ Branch 19 taken 1 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✓ Branch 22 taken 1 times.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 34 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 39 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 42 not taken.
+
✗ Branch 43 not taken.
+
✗ Branch 44 not taken.
+
✗ Branch 45 not taken.
1 EXPECT_EQ(ValidationError::INVALID_BODY,6 EXPECT_EQ(ValidationError::INVALID_BODY,
136 validator_->ValidateRequest("POST", validator_->ValidateRequest("POST",
137 "/test/all/123/abc/str1,str2/" "/test/all/123/abc/str1,str2/"
138 "field1,0,field2,string?param4=string1&param4=string2&param5=field1,0,field2,string&param6=field1,0,field2,string&" "field1,0,field2,string?param4=string1&param4=string2&param5=field1,0,field2,string&param6=field1,0,field2,string&"
139 "param7=field1,0,field2,string&param8=field1,0,field2,string&param9=field1,0,field2,string&param10=false", "param7=field1,0,field2,string&param8=field1,0,field2,string&param9=field1,0,field2,string&param10=false",
140 "{\"field1\":123,\"field2\":\"abc\",\"field3\":[\"abc\",\"def\"],\"field4\":{\"subfield1\":123,\"subfield2\":" "{\"field1\":123,\"field2\":\"abc\",\"field3\":[\"abc\",\"def\"],\"field4\":{\"subfield1\":123,\"subfield2\":"
141 "\"abc\"},\"field5\":{\"subfield1\":123},\"field6\":true,\"field7\":[123,456],\"field8\":[123,456],\"field9\":" "\"abc\"},\"field5\":{\"subfield1\":123},\"field6\":true,\"field7\":[123,456],\"field8\":[123,456],\"field9\":"
142 "\"abc\",\"field10\":\"option1\",\"field11\":{\"field\":123},\"field12\":[{\"name\":\"abc\"},{\"name\":\"def\"}]}", "\"abc\",\"field10\":\"option1\",\"field11\":{\"field\":123},\"field12\":[{\"name\":\"abc\"},{\"name\":\"def\"}]}",
143 headers, err_msg)); headers, err_msg));
144
- 5/18 + 7/30
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
-
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
+
✓ Branch 13 taken 1 times.
+
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
-
✗ Branch 17 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
1 EXPECT_EQ(ValidationError::NONE,4 EXPECT_EQ(ValidationError::NONE,
145 validator_->ValidateRequest("GET", validator_->ValidateRequest("GET",
146 "/test/content/123/abc/%5B%22string1%22%2C%22string2%22%5D/" "/test/content/123/abc/%5B%22string1%22%2C%22string2%22%5D/"
147 "%7B%0A%20%20%22field1%22%3A%200%2C%0A%20%20%22field2%22%3A%20%22string%22%0A%7D?param4=%5B%22str1%22%2C%22str2%22%5D&param5=%7B%0A%20%" "%7B%0A%20%20%22field1%22%3A%200%2C%0A%20%20%22field2%22%3A%20%22string%22%0A%7D?param4=%5B%22str1%22%2C%22str2%22%5D&param5=%7B%0A%20%"
148 "20%22field1%22%3A%200%2C%0A%20%20%22field2%22%3A%20%22string%22%0A%7D&param6=%7B%0A%20%20%22field1%22%3A%200%2C%0A%20%20%22field2%22%3A%" "20%22field1%22%3A%200%2C%0A%20%20%22field2%22%3A%20%22string%22%0A%7D&param6=%7B%0A%20%20%22field1%22%3A%200%2C%0A%20%20%22field2%22%3A%"
149 "20%22string%22%0A%7D&param7=%7B%0A%20%20%22field1%22%3A%200%2C%0A%20%20%22field2%22%3A%20%22string%22%0A%7D", "20%22string%22%0A%7D&param7=%7B%0A%20%20%22field1%22%3A%200%2C%0A%20%20%22field2%22%3A%20%22string%22%0A%7D",
150 err_msg));2 err_msg));
151 1}2}
152 @@ -3060,13 +3761,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.oas_validator_imp.cpp.1a3fd9ef774a0e08a679cfa8128980cd.html b/covhtml-oasvalidator/index.oas_validator_imp.cpp.1a3fd9ef774a0e08a679cfa8128980cd.html index 5635e30..a7ab438 100644 --- a/covhtml-oasvalidator/index.oas_validator_imp.cpp.1a3fd9ef774a0e08a679cfa8128980cd.html +++ b/covhtml-oasvalidator/index.oas_validator_imp.cpp.1a3fd9ef774a0e08a679cfa8128980cd.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,176 +40,22 @@

GCC Code Coverage Report

Lines: - 155 - 160 - 96.9% - - - Functions: - 12 - 12 - 100.0% + 142 + 145 + 97.9% Branches: - 182 - 314 - 58.0% + 163 + 316 + 51.6%
-
+ -
-
+
- - -
@@ -219,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + - + + - + + + - - + + + - - + + + - + + - + + + + - + + - + + - + + - + + - - + + + - + + - + + + - + + - + + - - + + + - + + + - + + - + + - + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - - + + + + - + + - + + + - - + + + - - + + + - + + + - + + - + + - + + - + + - - + + + + - + + - + + - + + + - - + + + + - + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + + - - + + + - - + + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + + - - + + + - - + + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + + - - + + + - - + + + + - - + + + - - + + + + - - + + + - + + - + + - - + + + + - - + + + - - + + + + - - + + + - - + + + + - + + - + + - + + - + + - + + + - + + - + + + - + + - + + + - + + - + + + - + + - + + - + + - + + - + + + - + + - + + + - + + - + + + - + + - + + + - + + - + + + - + + - + + - + + - + + - + + - + + + - + + - + + + - + + - + + + - + + - + + + - + + - + + + - - + + + - + + - + + - - + + + - - + + + - - + + + + - - + + + - - + + + + - - + + + - - + + + + - - + + + - - + + + + - - + + + - - + + + + - - + + + - - + + + + - - + + + - - + + + + - + + - - + + + - + + - + + - + + + - - + + + + - - + + + - + + - + + - - + + + - - + + + + - - + + + + - - + + + - - + + + - - + + + - - + + + + - - + + + + - - + + + - - + + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - + + - - + + + - - + + + - + + - - + + + - - + + + - + + - - + + + - - + + + - - + + + + - - + + + - - + + + - - + + + - - + + + - - + + + +
Exec Source
1 @@ -226,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -233,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -240,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -254,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -261,27 +113,31 @@

GCC Code Coverage Report

7 #include "oas_validator_imp.hpp"#include "oas_validator_imp.hpp"
8 #include <rapidjson/istreamwrapper.h>#include <rapidjson/istreamwrapper.h>
9 #include <fstream>#include <fstream>
10 @@ -289,55 +145,60 @@

GCC Code Coverage Report

11
1/2
-
✓ Branch 0 taken 25 times.
-
✗ Branch 1 not taken.
+
✓ Branch 2 taken 25 times.
+
✗ Branch 3 not taken.
50OASValidatorImp::OASValidatorImp(const std::string& oas_specs)25OASValidatorImp::OASValidatorImp(const std::string& oas_specs)
12 25{{
13
1/2
-
✓ Branch 0 taken 25 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 25 times.
+
✗ Branch 2 not taken.
25 rapidjson::Document doc; rapidjson::Document doc;
14
1/2
-
✓ Branch 0 taken 25 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 25 times.
+
✗ Branch 2 not taken.
25 std::ifstream ifs(oas_specs); std::ifstream ifs(oas_specs);
15 @@ -345,6 +206,7 @@

GCC Code Coverage Report

16 @@ -352,92 +214,98 @@

GCC Code Coverage Report

// Check if input is a file path
17
- 3/4 + 2/2
-
✓ Branch 0 taken 25 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✓ Branch 3 taken 24 times.
+
✓ Branch 0 taken 24 times.
+
✓ Branch 1 taken 1 times.
25 if (ifs.is_open()) { if (ifs.is_open()) {
18
1/2
-
✓ Branch 0 taken 24 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 24 times.
+
✗ Branch 2 not taken.
24 rapidjson::IStreamWrapper isw(ifs); rapidjson::IStreamWrapper isw(ifs);
19
1/2
-
✓ Branch 0 taken 24 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 24 times.
+
✗ Branch 2 not taken.
24 doc.ParseStream(isw); doc.ParseStream(isw);
20
1/2
-
✓ Branch 0 taken 24 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 24 times.
+
✗ Branch 2 not taken.
24 ifs.close(); ifs.close();
21 24 } else { // Otherwise input is a json string } else { // Otherwise input is a json string
22
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 doc.Parse(oas_specs.c_str()); doc.Parse(oas_specs.c_str());
23 } }
24 @@ -445,81 +313,108 @@

GCC Code Coverage Report

25
2/2
-
✓ Branch 0 taken 24 times.
-
✓ Branch 1 taken 1 times.
+
✓ Branch 0 taken 1 times.
+
✓ Branch 1 taken 24 times.
25 if (doc.HasParseError()) { if (doc.HasParseError()) {
26
- 10/20 + 14/40
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✓ Branch 12 taken 1 times.
-
✗ Branch 13 not taken.
-
✓ Branch 14 taken 1 times.
-
✗ Branch 15 not taken.
+
✓ Branch 13 taken 1 times.
+
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
-
✓ Branch 18 taken 1 times.
-
✗ Branch 19 not taken.
+
✓ Branch 19 taken 1 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✓ Branch 22 taken 1 times.
+
✗ Branch 23 not taken.
+
✓ Branch 24 taken 1 times.
+
✗ Branch 25 not taken.
+
✓ Branch 26 taken 1 times.
+
✗ Branch 27 not taken.
+
✓ Branch 28 taken 1 times.
+
✗ Branch 29 not taken.
+
✓ Branch 30 taken 1 times.
+
✗ Branch 31 not taken.
+
✓ Branch 32 taken 1 times.
+
✗ Branch 33 not taken.
+
✓ Branch 34 taken 1 times.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 39 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 41 not taken.
+
✗ Branch 42 not taken.
+
✗ Branch 43 not taken.
+
✗ Branch 44 not taken.
+
✗ Branch 45 not taken.
+
✗ Branch 46 not taken.
3 throw ValidatorInitExc("Unable to parse specs: " + oas_specs + " \nError code: " + std::to_string(doc.GetParseError()) + " at offset: " + throw ValidatorInitExc("Unable to parse specs: " + oas_specs + " \nError code: " + std::to_string(doc.GetParseError()) + " at offset: " +
27
- 5/10 + 5/12
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
-
✓ Branch 3 taken 1 times.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
-
✓ Branch 9 taken 1 times.
+
✓ Branch 2 taken 1 times.
+
✗ Branch 3 not taken.
+
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
+
✓ Branch 8 taken 1 times.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 1 times.
+
✗ Branch 12 not taken.
+
✓ Branch 13 taken 1 times.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
2 std::to_string(doc.GetErrorOffset()) + " Error message: " + rapidjson::GetParseError_En(doc.GetParseError()));4 std::to_string(doc.GetErrorOffset()) + " Error message: " + rapidjson::GetParseError_En(doc.GetParseError()));
28 } }
29 @@ -527,164 +422,169 @@

GCC Code Coverage Report

30 -
- 1/2 -
-
✓ Branch 0 taken 24 times.
-
✗ Branch 1 not taken.
-
-
24 const rapidjson::Value& paths = doc["paths"]; const rapidjson::Value& paths = doc["paths"];
31 +
+ 1/2 +
+
✓ Branch 1 taken 24 times.
+
✗ Branch 2 not taken.
+
+
24 std::vector<std::string> ref_keys; std::vector<std::string> ref_keys;
32
1/2
-
✓ Branch 0 taken 24 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 24 times.
+
✗ Branch 2 not taken.
24 ref_keys.emplace_back("paths"); ref_keys.emplace_back("paths");
33
- 4/6 + 2/2
-
✓ Branch 0 taken 24 times.
-
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
-
✓ Branch 3 taken 2112 times.
-
✓ Branch 4 taken 3720 times.
-
✓ Branch 5 taken 1608 times.
+
✓ Branch 0 taken 2088 times.
+
✓ Branch 1 taken 24 times.
2112 for (auto path_itr = paths.MemberBegin(); path_itr != paths.MemberEnd(); ++path_itr) { for (auto path_itr = paths.MemberBegin(); path_itr != paths.MemberEnd(); ++path_itr) {
34
- 4/4 + 3/4
-
✓ Branch 0 taken 2088 times.
-
✓ Branch 1 taken 1632 times.
-
✓ Branch 2 taken 3720 times.
-
✓ Branch 3 taken 1632 times.
+
✓ Branch 0 taken 24 times.
+
✓ Branch 1 taken 2064 times.
+
✓ Branch 3 taken 2088 times.
+
✗ Branch 4 not taken.
3720 std::string path(path_itr->name.GetString());4176 std::string path(path_itr->name.GetString());
35
2/4
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 3720 times.
+
✓ Branch 1 taken 2088 times.
✗ Branch 2 not taken.
-
✓ Branch 3 taken 3720 times.
+
✓ Branch 4 taken 2088 times.
+
✗ Branch 5 not taken.
3720 ref_keys.emplace_back(EscapeSlash(path));2088 ref_keys.emplace_back(EscapeSlash(path));
36 3720 const rapidjson::Value& methods = path_itr->value;2088 const rapidjson::Value& methods = path_itr->value;
37
- 4/6 + 2/2
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 3720 times.
-
✓ Branch 2 taken 5808 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 3720 times.
-
✓ Branch 5 taken 2088 times.
+
✓ Branch 0 taken 2088 times.
+
✓ Branch 1 taken 2088 times.
5808 for (auto method_itr = methods.MemberBegin(); method_itr != methods.MemberEnd(); ++method_itr) {4176 for (auto method_itr = methods.MemberBegin(); method_itr != methods.MemberEnd(); ++method_itr) {
38
- 4/4 + 2/4
✓ Branch 0 taken 2088 times.
-
✓ Branch 1 taken 1632 times.
-
✓ Branch 2 taken 3720 times.
-
✓ Branch 3 taken 1632 times.
+
✗ Branch 1 not taken.
+
✓ Branch 3 taken 2088 times.
+
✗ Branch 4 not taken.
3720 ref_keys.emplace_back(method_itr->name.GetString());4176 ref_keys.emplace_back(method_itr->name.GetString());
39
- 5/6 + 3/6
✓ Branch 0 taken 2088 times.
-
✓ Branch 1 taken 1632 times.
-
✓ Branch 2 taken 3720 times.
-
✓ Branch 3 taken 1632 times.
+
✗ Branch 1 not taken.
+
✓ Branch 3 taken 2088 times.
✗ Branch 4 not taken.
-
✓ Branch 5 taken 3720 times.
+
✗ Branch 5 not taken.
+
✓ Branch 6 taken 2088 times.
3720 auto method(kStringToMethod.at(method_itr->name.GetString()));6264 auto method(kStringToMethod.at(method_itr->name.GetString()));
40 3720 auto& per_method_validator = oas_validators_[static_cast<size_t>(method)];2088 auto& per_method_validator = oas_validators_[static_cast<size_t>(method)];
41 3720 auto& per_path_validator = per_method_validator.per_path_validators;2088 auto& per_path_validator = per_method_validator.per_path_validators;
42 @@ -692,108 +592,88 @@

GCC Code Coverage Report

43
- 6/10 + 1/2
-
✓ Branch 0 taken 504 times.
-
✓ Branch 1 taken 3216 times.
-
✓ Branch 2 taken 504 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 504 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 504 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 504 times.
-
✗ Branch 9 not taken.
+
✓ Branch 3 taken 504 times.
+
✗ Branch 4 not taken.
4224 if ((method_itr->value.HasMember("requestBody")) && (method_itr->value["requestBody"].HasMember("content")) &&2592 if ((method_itr->value.HasMember("requestBody")) && (method_itr->value["requestBody"].HasMember("content")) &&
44
- 4/8 + 3/4
✓ Branch 0 taken 504 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 504 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 504 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 504 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1584 times.
+
✓ Branch 5 taken 504 times.
+
✗ Branch 6 not taken.
504 (method_itr->value["requestBody"]["content"].HasMember("application/json")) &&2592 (method_itr->value["requestBody"]["content"].HasMember("application/json")) &&
45
- 4/8 + 1/2
-
✓ Branch 0 taken 504 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 504 times.
-
✗ Branch 3 not taken.
✓ Branch 4 taken 504 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 504 times.
-
✗ Branch 7 not taken.
504 (method_itr->value["requestBody"]["content"]["application/json"].HasMember("schema"))) { // if "method+path" has json body
46
1/2
-
✓ Branch 0 taken 504 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 504 times.
+
✗ Branch 2 not taken.
504 ref_keys.emplace_back("requestBody/content/application%2Fjson/schema"); ref_keys.emplace_back("requestBody/content/application%2Fjson/schema");
47
- 7/14 + 3/6
-
✓ Branch 0 taken 504 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 504 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 504 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 504 times.
-
✗ Branch 7 not taken.
+
✓ Branch 5 taken 504 times.
+
✗ Branch 6 not taken.
✓ Branch 8 taken 504 times.
✗ Branch 9 not taken.
-
✓ Branch 10 taken 504 times.
-
✗ Branch 11 not taken.
-
✓ Branch 12 taken 504 times.
-
✗ Branch 13 not taken.
+
✓ Branch 11 taken 504 times.
+
✗ Branch 12 not taken.
504 per_path_validator.emplace(path, new ValidatorsStore(method_itr->value["requestBody"]["content"]["application/json"]["schema"], ref_keys)); per_path_validator.emplace(path, new ValidatorsStore(method_itr->value["requestBody"]["content"]["application/json"]["schema"], ref_keys));
48 @@ -801,27 +681,42 @@

GCC Code Coverage Report

504 ref_keys.pop_back(); // pop body ref
49 504 } else { // Otherwise validators without body } else { // Otherwise validators without body
50 +
+ 2/6 +
+
✓ Branch 1 taken 1584 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 1584 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✗ Branch 7 not taken.
+
+
per_path_validator.emplace(path, new ValidatorsStore());1584 per_path_validator.emplace(path, new ValidatorsStore());
51 } }
52 @@ -829,68 +724,70 @@

GCC Code Coverage Report

53
- 4/4 + 2/2
-
✓ Branch 0 taken 2376 times.
-
✓ Branch 1 taken 1872 times.
-
✓ Branch 2 taken 1560 times.
-
✓ Branch 3 taken 816 times.
+
✓ Branch 1 taken 1560 times.
+
✓ Branch 2 taken 528 times.
5042088 if (method_itr->value.HasMember("parameters")) { // if "method+path" has parameters
54
1/2
-
✓ Branch 0 taken 1560 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1560 times.
+
✗ Branch 2 not taken.
1560 ref_keys.emplace_back("parameters"); ref_keys.emplace_back("parameters");
55
- 3/6 + 2/4
-
✓ Branch 0 taken 1560 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1560 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1560 times.
-
✗ Branch 5 not taken.
+
✓ Branch 1 taken 1560 times.
+
✗ Branch 2 not taken.
+
✓ Branch 5 taken 1560 times.
+
✗ Branch 6 not taken.
1560 per_path_validator.at(path)->AddParamValidators(path, method_itr->value["parameters"], ref_keys); per_path_validator.at(path)->AddParamValidators(path, method_itr->value["parameters"], ref_keys);
56 1560 ref_keys.pop_back(); ref_keys.pop_back();
57 1560 } }
58 @@ -898,41 +795,47 @@

GCC Code Coverage Report

59
- 1/2 + 3/4
-
✓ Branch 0 taken 744 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 744 times.
+
✓ Branch 2 taken 1344 times.
+
✓ Branch 4 taken 744 times.
+
✗ Branch 5 not taken.
23762088 if (std::string::npos != path.find('{') && std::string::npos != path.find('}')) { // has path params
60
- 2/2 + 1/2
-
✓ Branch 0 taken 2088 times.
-
✓ Branch 1 taken 1344 times.
+
✓ Branch 1 taken 744 times.
+
✗ Branch 2 not taken.
744 per_method_validator.path_trie.Insert(path); per_method_validator.path_trie.Insert(path);
61 } }
62 @@ -940,34 +843,53 @@

GCC Code Coverage Report

2088 ref_keys.pop_back(); // Pop the method key
63 } }
64 +
+ 2/2 +
+
✓ Branch 1 taken 2064 times.
+
✓ Branch 2 taken 24 times.
+
+
2088 ref_keys.pop_back(); // Pop the path key
65 2088 } }
66 +
+ 1/2 +
+
✓ Branch 6 taken 1 times.
+
✗ Branch 7 not taken.
+
+
21026}28}
67 @@ -975,41 +897,47 @@

GCC Code Coverage Report

68 117716506ValidationError OASValidatorImp::ValidateRoute(const std::string& method, const std::string& http_path, std::string& error_msg)309928228ValidationError OASValidatorImp::ValidateRoute(const std::string& method, const std::string& http_path, std::string& error_msg)
69 {{
70 117716506 ValidatorsStore* validators;309928228 ValidatorsStore* validators;
71 235433012 return GetValidators(method, http_path, validators, error_msg);309928228 return GetValidators(method, http_path, validators, error_msg);
72 117716506}}
73 @@ -1017,27 +945,31 @@

GCC Code Coverage Report

74 10029397ValidationError OASValidatorImp::ValidateBody(const std::string& method, const std::string& http_path, const std::string& json_body, std::string& error_msg)25493277ValidationError OASValidatorImp::ValidateBody(const std::string& method, const std::string& http_path, const std::string& json_body, std::string& error_msg)
75 {{
76 10029397 ValidatorsStore* validators;25493277 ValidatorsStore* validators;
77 @@ -1045,27 +977,30 @@

GCC Code Coverage Report

78 10029397 auto err_code = GetValidators(method, http_path, validators, error_msg);25493277 auto err_code = GetValidators(method, http_path, validators, error_msg);
79
1/2
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 10029397 times.
+
✓ Branch 0 taken 25493277 times.
+
✗ Branch 1 not taken.
10029397 CHECK_ERROR(err_code)25493277 CHECK_ERROR(err_code)
80 @@ -1073,20 +1008,23 @@

GCC Code Coverage Report

81 10029397 return validators->ValidateBody(json_body, error_msg);25493277 return validators->ValidateBody(json_body, error_msg);
82 10029397}}
83 @@ -1094,34 +1032,46 @@

GCC Code Coverage Report

84 2787760ValidationError OASValidatorImp::ValidatePathParam(const std::string& method, const std::string& http_path, std::string& error_msg)8954210ValidationError OASValidatorImp::ValidatePathParam(const std::string& method, const std::string& http_path, std::string& error_msg)
85 {{
86 +
+ 1/2 +
+
✓ Branch 1 taken 8954210 times.
+
✗ Branch 2 not taken.
+
+
2787760 std::unordered_map<size_t, ParamRange> param_idxs;8954210 std::unordered_map<size_t, ParamRange> param_idxs;
87 2787760 ValidatorsStore* validators;8954210 ValidatorsStore* validators;
88 @@ -1129,34 +1079,37 @@

GCC Code Coverage Report

89
1/2
-
✓ Branch 0 taken 2787760 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 8954210 times.
+
✗ Branch 2 not taken.
2787760 auto err_code = GetValidators(method, http_path, validators, error_msg, &param_idxs);8954210 auto err_code = GetValidators(method, http_path, validators, error_msg, &param_idxs);
90
1/2
-
✓ Branch 0 taken 2787760 times.
+
✓ Branch 0 taken 8954210 times.
✗ Branch 1 not taken.
2787760 CHECK_ERROR(err_code)8954210 CHECK_ERROR(err_code)
91 @@ -1164,27 +1117,30 @@

GCC Code Coverage Report

92
1/2
-
✓ Branch 0 taken 2787760 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 8954210 times.
+
✗ Branch 2 not taken.
2787760 return validators->ValidatePathParams(param_idxs, error_msg);8954210 return validators->ValidatePathParams(param_idxs, error_msg);
93 2787760}8954210}
94 @@ -1192,34 +1148,46 @@

GCC Code Coverage Report

95 14359570ValidationError OASValidatorImp::ValidateQueryParam(const std::string& method, const std::string& http_path, std::string& error_msg)50636521ValidationError OASValidatorImp::ValidateQueryParam(const std::string& method, const std::string& http_path, std::string& error_msg)
96 {{
97 +
+ 1/2 +
+
✓ Branch 1 taken 50636521 times.
+
✗ Branch 2 not taken.
+
+
14359570 std::string query;50636521 std::string query;
98 14359570 ValidatorsStore* validators;50636521 ValidatorsStore* validators;
99 @@ -1227,34 +1195,37 @@

GCC Code Coverage Report

100
1/2
-
✓ Branch 0 taken 14359570 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 50636521 times.
+
✗ Branch 2 not taken.
14359570 auto err_code = GetValidators(method, http_path, validators, error_msg, nullptr, &query);50636521 auto err_code = GetValidators(method, http_path, validators, error_msg, nullptr, &query);
101
1/2
-
✓ Branch 0 taken 14359570 times.
+
✓ Branch 0 taken 50636521 times.
✗ Branch 1 not taken.
14359570 CHECK_ERROR(err_code)50636521 CHECK_ERROR(err_code)
102 @@ -1262,27 +1233,30 @@

GCC Code Coverage Report

103
1/2
-
✓ Branch 0 taken 14359570 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 50636521 times.
+
✗ Branch 2 not taken.
14359570 return validators->ValidateQueryParams(query, error_msg);50636521 return validators->ValidateQueryParams(query, error_msg);
104 14359570}50636521}
105 @@ -1290,34 +1264,39 @@

GCC Code Coverage Report

106 16142647ValidationError OASValidatorImp::ValidateHeaders(const std::string& method, const std::string& http_path, const std::unordered_map<std::string, std::string>& headers,51710956ValidationError OASValidatorImp::ValidateHeaders(const std::string& method, const std::string& http_path, const std::unordered_map<std::string, std::string>& headers,
107 std::string& error_msg) std::string& error_msg)
108 {{
109 16142647 ValidatorsStore* validators;51710956 ValidatorsStore* validators;
110 @@ -1325,27 +1304,30 @@

GCC Code Coverage Report

111 16142647 auto err_code = GetValidators(method, http_path, validators, error_msg);51710956 auto err_code = GetValidators(method, http_path, validators, error_msg);
112
1/2
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 16142647 times.
+
✓ Branch 0 taken 51710956 times.
+
✗ Branch 1 not taken.
16142647 CHECK_ERROR(err_code)51710956 CHECK_ERROR(err_code)
113 @@ -1353,20 +1335,23 @@

GCC Code Coverage Report

114 16142647 return validators->ValidateHeaderParams(headers, error_msg);51710956 return validators->ValidateHeaderParams(headers, error_msg);
115 16142647}}
116 @@ -1374,41 +1359,61 @@

GCC Code Coverage Report

117 17ValidationError OASValidatorImp::ValidateRequest(const std::string& method, const std::string& http_path, std::string& error_msg)ValidationError OASValidatorImp::ValidateRequest(const std::string& method, const std::string& http_path, std::string& error_msg)
118 {{
119 +
+ 1/2 +
+
✓ Branch 1 taken 17 times.
+
✗ Branch 2 not taken.
+
+
17 std::unordered_map<size_t, ParamRange> param_idxs; std::unordered_map<size_t, ParamRange> param_idxs;
120 +
+ 1/2 +
+
✓ Branch 1 taken 17 times.
+
✗ Branch 2 not taken.
+
+
17 std::string query; std::string query;
121 17 ValidatorsStore* validators; ValidatorsStore* validators;
122 @@ -1416,20 +1421,22 @@

GCC Code Coverage Report

123
1/2
-
✓ Branch 0 taken 17 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 17 times.
+
✗ Branch 2 not taken.
17 auto err_code = GetValidators(method, http_path, validators, error_msg, &param_idxs, &query); auto err_code = GetValidators(method, http_path, validators, error_msg, &param_idxs, &query);
124 @@ -1442,8 +1449,9 @@

GCC Code Coverage Report

17 CHECK_ERROR(err_code) CHECK_ERROR(err_code)
125 @@ -1451,20 +1459,22 @@

GCC Code Coverage Report

126
1/2
-
✓ Branch 0 taken 17 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 17 times.
+
✗ Branch 2 not taken.
17 err_code = validators->ValidatePathParams(param_idxs, error_msg); err_code = validators->ValidatePathParams(param_idxs, error_msg);
127 @@ -1477,8 +1487,9 @@

GCC Code Coverage Report

17 CHECK_ERROR(err_code) CHECK_ERROR(err_code)
128 @@ -1486,27 +1497,30 @@

GCC Code Coverage Report

129
1/2
-
✓ Branch 0 taken 10 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 10 times.
+
✗ Branch 2 not taken.
10 return validators->ValidateQueryParams(query, error_msg); return validators->ValidateQueryParams(query, error_msg);
130 17}}
131 @@ -1514,41 +1528,61 @@

GCC Code Coverage Report

132 1ValidationError OASValidatorImp::ValidateRequest(const std::string& method, const std::string& http_path, const std::string& json_body, std::string& error_msg)ValidationError OASValidatorImp::ValidateRequest(const std::string& method, const std::string& http_path, const std::string& json_body, std::string& error_msg)
133 {{
134 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::unordered_map<size_t, ParamRange> param_idxs; std::unordered_map<size_t, ParamRange> param_idxs;
135 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string query; std::string query;
136 1 ValidatorsStore* validators; ValidatorsStore* validators;
137 @@ -1556,20 +1590,22 @@

GCC Code Coverage Report

138
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 auto err_code = GetValidators(method, http_path, validators, error_msg, &param_idxs, &query); auto err_code = GetValidators(method, http_path, validators, error_msg, &param_idxs, &query);
139 @@ -1582,8 +1618,9 @@

GCC Code Coverage Report

1 CHECK_ERROR(err_code) CHECK_ERROR(err_code)
140 @@ -1591,20 +1628,22 @@

GCC Code Coverage Report

141
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 err_code = validators->ValidateBody(json_body, error_msg); err_code = validators->ValidateBody(json_body, error_msg);
142 @@ -1617,8 +1656,9 @@

GCC Code Coverage Report

1 CHECK_ERROR(err_code) CHECK_ERROR(err_code)
143 @@ -1626,20 +1666,22 @@

GCC Code Coverage Report

144
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 err_code = validators->ValidatePathParams(param_idxs, error_msg); err_code = validators->ValidatePathParams(param_idxs, error_msg);
145 @@ -1652,8 +1694,9 @@

GCC Code Coverage Report

1 CHECK_ERROR(err_code) CHECK_ERROR(err_code)
146 @@ -1661,27 +1704,30 @@

GCC Code Coverage Report

147
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 return validators->ValidateQueryParams(query, error_msg); return validators->ValidateQueryParams(query, error_msg);
148 1}}
149 @@ -1689,48 +1735,69 @@

GCC Code Coverage Report

150 3ValidationError OASValidatorImp::ValidateRequest(const std::string& method, const std::string& http_path, const std::unordered_map<std::string, std::string>& headers,ValidationError OASValidatorImp::ValidateRequest(const std::string& method, const std::string& http_path, const std::unordered_map<std::string, std::string>& headers,
151 std::string& error_msg) std::string& error_msg)
152 {{
153 +
+ 1/2 +
+
✓ Branch 1 taken 3 times.
+
✗ Branch 2 not taken.
+
+
3 std::unordered_map<size_t, ParamRange> param_idxs; std::unordered_map<size_t, ParamRange> param_idxs;
154 +
+ 1/2 +
+
✓ Branch 1 taken 3 times.
+
✗ Branch 2 not taken.
+
+
3 std::string query; std::string query;
155 3 ValidatorsStore* validators; ValidatorsStore* validators;
156 @@ -1738,20 +1805,22 @@

GCC Code Coverage Report

157
1/2
-
✓ Branch 0 taken 3 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 3 times.
+
✗ Branch 2 not taken.
3 auto err_code = GetValidators(method, http_path, validators, error_msg, &param_idxs, &query); auto err_code = GetValidators(method, http_path, validators, error_msg, &param_idxs, &query);
158 @@ -1764,8 +1833,9 @@

GCC Code Coverage Report

3 CHECK_ERROR(err_code) CHECK_ERROR(err_code)
159 @@ -1773,20 +1843,22 @@

GCC Code Coverage Report

160
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 err_code = validators->ValidatePathParams(param_idxs, error_msg); err_code = validators->ValidatePathParams(param_idxs, error_msg);
161 @@ -1799,8 +1871,9 @@

GCC Code Coverage Report

1 CHECK_ERROR(err_code) CHECK_ERROR(err_code)
162 @@ -1808,20 +1881,22 @@

GCC Code Coverage Report

163
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 err_code = validators->ValidateQueryParams(query, error_msg); err_code = validators->ValidateQueryParams(query, error_msg);
164 @@ -1834,8 +1909,9 @@

GCC Code Coverage Report

1 CHECK_ERROR(err_code) CHECK_ERROR(err_code)
165 @@ -1843,27 +1919,30 @@

GCC Code Coverage Report

166
1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
1 return validators->ValidateHeaderParams(headers, error_msg); return validators->ValidateHeaderParams(headers, error_msg);
167 3}}
168 @@ -1871,48 +1950,69 @@

GCC Code Coverage Report

169 31234304ValidationError OASValidatorImp::ValidateRequest(const std::string& method, const std::string& http_path, const std::string& json_body,106410367ValidationError OASValidatorImp::ValidateRequest(const std::string& method, const std::string& http_path, const std::string& json_body,
170 const std::unordered_map<std::string, std::string>& headers, std::string& error_msg) const std::unordered_map<std::string, std::string>& headers, std::string& error_msg)
171 {{
172 +
+ 1/2 +
+
✓ Branch 1 taken 106410367 times.
+
✗ Branch 2 not taken.
+
+
31234304 std::unordered_map<size_t, ParamRange> param_idxs;106410367 std::unordered_map<size_t, ParamRange> param_idxs;
173 +
+ 1/2 +
+
✓ Branch 1 taken 106410367 times.
+
✗ Branch 2 not taken.
+
+
31234304 std::string query;106410367 std::string query;
174 31234304 ValidatorsStore* validators;106410367 ValidatorsStore* validators;
175 @@ -1920,34 +2020,37 @@

GCC Code Coverage Report

176
1/2
-
✓ Branch 0 taken 31234304 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 106410367 times.
+
✗ Branch 2 not taken.
31234304 auto err_code = GetValidators(method, http_path, validators, error_msg, &param_idxs, &query);106410367 auto err_code = GetValidators(method, http_path, validators, error_msg, &param_idxs, &query);
177
2/2
-
✓ Branch 0 taken 3271490 times.
-
✓ Branch 1 taken 27962814 times.
+
✓ Branch 0 taken 7724934 times.
+
✓ Branch 1 taken 98685433 times.
31234304 CHECK_ERROR(err_code)106410367 CHECK_ERROR(err_code)
178 @@ -1955,34 +2058,37 @@

GCC Code Coverage Report

179
1/2
-
✓ Branch 0 taken 3271490 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 7724934 times.
+
✗ Branch 2 not taken.
3271490 err_code = validators->ValidateBody(json_body, error_msg);7724934 err_code = validators->ValidateBody(json_body, error_msg);
180
2/2
-
✓ Branch 0 taken 3271489 times.
+
✓ Branch 0 taken 7724933 times.
✓ Branch 1 taken 1 times.
3271490 CHECK_ERROR(err_code)7724934 CHECK_ERROR(err_code)
181 @@ -1990,34 +2096,37 @@

GCC Code Coverage Report

182
1/2
-
✓ Branch 0 taken 3271489 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 7724933 times.
+
✗ Branch 2 not taken.
3271489 err_code = validators->ValidatePathParams(param_idxs, error_msg);7724933 err_code = validators->ValidatePathParams(param_idxs, error_msg);
183
2/2
-
✓ Branch 0 taken 2508024 times.
-
✓ Branch 1 taken 763465 times.
+
✓ Branch 0 taken 5950493 times.
+
✓ Branch 1 taken 1774440 times.
3271489 CHECK_ERROR(err_code)7724933 CHECK_ERROR(err_code)
184 @@ -2025,34 +2134,37 @@

GCC Code Coverage Report

185
1/2
-
✓ Branch 0 taken 2508024 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 5950493 times.
+
✗ Branch 2 not taken.
2508024 err_code = validators->ValidateQueryParams(query, error_msg);5950493 err_code = validators->ValidateQueryParams(query, error_msg);
186
2/2
-
✓ Branch 0 taken 1792293 times.
-
✓ Branch 1 taken 715731 times.
+
✓ Branch 0 taken 4449397 times.
+
✓ Branch 1 taken 1501096 times.
2508024 CHECK_ERROR(err_code)5950493 CHECK_ERROR(err_code)
187 @@ -2060,27 +2172,30 @@

GCC Code Coverage Report

188
1/2
-
✓ Branch 0 taken 1792293 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 4449397 times.
+
✗ Branch 2 not taken.
1792293 return validators->ValidateHeaderParams(headers, error_msg);4449397 return validators->ValidateHeaderParams(headers, error_msg);
189 31234304}106410367}
190 @@ -2088,20 +2203,23 @@

GCC Code Coverage Report

191 48OASValidatorImp::~OASValidatorImp()24OASValidatorImp::~OASValidatorImp()
192 24{{
193 @@ -2109,64 +2227,68 @@

GCC Code Coverage Report

#ifndef LUA_OAS_VALIDATOR // LUA manages garbage collection itself
194
2/2
-
✓ Branch 0 taken 4392 times.
-
✓ Branch 1 taken 4152 times.
+
✓ Branch 0 taken 216 times.
+
✓ Branch 1 taken 24 times.
240 for (auto& per_method_validator : oas_validators_) { for (auto& per_method_validator : oas_validators_) {
195
- 4/4 + 2/2
-
✓ Branch 0 taken 2304 times.
-
✓ Branch 1 taken 2088 times.
-
✓ Branch 2 taken 2088 times.
-
✓ Branch 3 taken 216 times.
+
✓ Branch 0 taken 2088 times.
+
✓ Branch 1 taken 216 times.
6480 for (auto& per_path_validator : per_method_validator.per_path_validators) {2304 for (auto& per_path_validator : per_method_validator.per_path_validators) {
196
1/2
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 2088 times.
+
✓ Branch 0 taken 2088 times.
+
✗ Branch 1 not taken.
2088 delete per_path_validator.second; delete per_path_validator.second;
197 } }
198 } }
199 @@ -2174,13 +2296,22 @@

GCC Code Coverage Report

#endif
200 +
+ 1/2 +
+
✓ Branch 0 taken 24 times.
+
✗ Branch 1 not taken.
+
+
12528}48}
201 @@ -2188,48 +2319,54 @@

GCC Code Coverage Report

202 192270205ValidationError OASValidatorImp::GetValidators(const std::string& method, const std::string& http_path, ValidatorsStore*& validators, std::string& error_msg,553133580ValidationError OASValidatorImp::GetValidators(const std::string& method, const std::string& http_path, ValidatorsStore*& validators, std::string& error_msg,
203 std::unordered_map<size_t, ParamRange>* param_idxs, std::string* query) std::unordered_map<size_t, ParamRange>* param_idxs, std::string* query)
204 {{
205 192270205 auto err_code = method_validator_.ValidateJson(method, error_msg);553133580 auto err_code = method_validator_.ValidateJson(method, error_msg);
206
2/2
-
✓ Branch 0 taken 50706982 times.
-
✓ Branch 1 taken 141563223 times.
+
✓ Branch 0 taken 345470504 times.
+
✓ Branch 1 taken 207663076 times.
192270205 CHECK_ERROR(err_code)553133580 CHECK_ERROR(err_code)
207 @@ -2237,13 +2374,15 @@

GCC Code Coverage Report

208 141563223 auto enum_method = kStringToMethod.at(method);345470504 auto enum_method = kStringToMethod.at(method);
209 @@ -2251,41 +2390,53 @@

GCC Code Coverage Report

210 141563223 auto query_pos = http_path.find('?');345470504 auto query_pos = http_path.find('?');
211
2/2
-
✓ Branch 0 taken 123932160 times.
-
✓ Branch 1 taken 17631063 times.
+
✓ Branch 0 taken 58361458 times.
+
✓ Branch 1 taken 287109046 times.
141563223 if (std::string::npos != query_pos && query) {345470504 if (std::string::npos != query_pos && query) {
212 +
+ 1/2 +
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 58361458 times.
+
+
17631063 *query = http_path.substr(query_pos);58361458 *query = http_path.substr(query_pos);
213 17631063 } }
214 @@ -2293,13 +2444,15 @@

GCC Code Coverage Report

215 try {345470504 try {
216 @@ -2307,38 +2460,43 @@

GCC Code Coverage Report

// 1st. try, no path params
217
- 6/6 + 7/8
-
✓ Branch 0 taken 123932160 times.
-
✓ Branch 1 taken 17631063 times.
-
✓ Branch 2 taken 106301097 times.
-
✓ Branch 3 taken 17631063 times.
-
✓ Branch 4 taken 10569426 times.
-
✓ Branch 5 taken 95731671 times.
+
✓ Branch 0 taken 287109046 times.
+
✓ Branch 1 taken 58361458 times.
+
✓ Branch 3 taken 58361458 times.
+
✗ Branch 4 not taken.
+
✓ Branch 6 taken 313698989 times.
+
✓ Branch 7 taken 31771515 times.
+
✓ Branch 8 taken 127840758 times.
+
✓ Branch 9 taken 185858231 times.
141563223 validators = oas_validators_[static_cast<size_t>(enum_method)].per_path_validators.at(std::string::npos == query_pos ? http_path : http_path.substr(0, query_pos));792191823 validators = oas_validators_[static_cast<size_t>(enum_method)].per_path_validators.at(std::string::npos == query_pos ? http_path : http_path.substr(0, query_pos));
218
- 2/2 + 1/2
-
✓ Branch 0 taken 4513222 times.
-
✓ Branch 1 taken 15082648 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 31771515 times.
106301097 } catch (const std::out_of_range&) {31771515 } catch (const std::out_of_range&) {
219 @@ -2346,203 +2504,254 @@

GCC Code Coverage Report

// 2nd try, if path has dynamic path parameters
220 +
+ 1/2 +
+
✓ Branch 1 taken 31771515 times.
+
✗ Branch 2 not taken.
+
+
15082648 std::string map_key;31771515 std::string map_key;
221
1/2
-
✓ Branch 0 taken 15082648 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 31771515 times.
+
✗ Branch 2 not taken.
15082648 map_key.reserve(http_path.length() + 32);31771515 map_key.reserve(http_path.length() + 32);
222 +
+ 2/2 +
+
✓ Branch 0 taken 24046581 times.
+
✓ Branch 1 taken 7724934 times.
+
+
15082648 const char* beg = http_path.c_str();31771515 const char* beg = http_path.c_str();
223
2/2
-
✓ Branch 0 taken 3271490 times.
-
✓ Branch 1 taken 11811158 times.
+
✓ Branch 0 taken 24046581 times.
+
✓ Branch 1 taken 7724934 times.
15082648 const char* const end = http_path.c_str() + (std::string::npos == query_pos ? http_path.length() : query_pos);31771515 const char* const end = http_path.c_str() + (std::string::npos == query_pos ? http_path.length() : query_pos);
224
- 4/4 + 3/4
-
✓ Branch 0 taken 2256611 times.
-
✓ Branch 1 taken 12826037 times.
-
✓ Branch 2 taken 10569426 times.
-
✓ Branch 3 taken 2256611 times.
+
✓ Branch 0 taken 24255922 times.
+
✓ Branch 1 taken 7515593 times.
+
✓ Branch 3 taken 24255922 times.
+
✗ Branch 4 not taken.
15082648 bool found = param_idxs ? oas_validators_[static_cast<size_t>(enum_method)].path_trie.Search(beg, end, map_key, *param_idxs)31771515 bool found = param_idxs ? oas_validators_[static_cast<size_t>(enum_method)].path_trie.Search(beg, end, map_key, *param_idxs)
225 +
+ 1/2 +
+
✓ Branch 1 taken 7515593 times.
+
✗ Branch 2 not taken.
+
+
2256611 : oas_validators_[static_cast<size_t>(enum_method)].path_trie.Search(beg, end, map_key);7515593 : oas_validators_[static_cast<size_t>(enum_method)].path_trie.Search(beg, end, map_key);
226
2/2
-
✓ Branch 0 taken 6059277 times.
-
✓ Branch 1 taken 4510149 times.
+
✓ Branch 0 taken 16679171 times.
+
✓ Branch 1 taken 15092344 times.
10569426 if (found) {31771515 if (found) {
227 try {16679171 try {
228
- 1/2 + 2/4
-
✓ Branch 0 taken 6059277 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 16679171 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 16679171 times.
+
✗ Branch 4 not taken.
6059277 validators = oas_validators_[static_cast<size_t>(enum_method)].per_path_validators.at(map_key);16679171 validators = oas_validators_[static_cast<size_t>(enum_method)].per_path_validators.at(map_key);
229 } catch (const std::out_of_range&) { } catch (const std::out_of_range&) {
230 error_msg = R"({"errorCode":"INVALID_ROUTE","details":{"description": "Invalid HTTP method ')" + method + "' or path: '" + http_path + R"('"}})"; error_msg = R"({"errorCode":"INVALID_ROUTE","details":{"description": "Invalid HTTP method ')" + method + "' or path: '" + http_path + R"('"}})";
231 return ValidationError::INVALID_ROUTE; return ValidationError::INVALID_ROUTE;
232 } }
233 } else { } else {
234
- 4/8 + 9/22
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 4510149 times.
+
✓ Branch 1 taken 15092344 times.
✗ Branch 2 not taken.
-
✓ Branch 3 taken 4510149 times.
-
✗ Branch 4 not taken.
-
✓ Branch 5 taken 4510149 times.
-
✓ Branch 6 taken 4510149 times.
-
✗ Branch 7 not taken.
+
✓ Branch 4 taken 15092344 times.
+
✗ Branch 5 not taken.
+
✓ Branch 7 taken 15092344 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 15092344 times.
+
✗ Branch 11 not taken.
+
✓ Branch 13 taken 15092312 times.
+
✓ Branch 14 taken 32 times.
+
✗ Branch 15 not taken.
+
✓ Branch 16 taken 15092344 times.
+
✗ Branch 17 not taken.
+
✓ Branch 18 taken 15092344 times.
+
✗ Branch 19 not taken.
+
✓ Branch 20 taken 15092344 times.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
4510149 error_msg = R"({"errorCode":"INVALID_ROUTE","details":{"description": "Invalid HTTP method ')" + method + "' or path: '" + http_path + R"('"}})";30184656 error_msg = R"({"errorCode":"INVALID_ROUTE","details":{"description": "Invalid HTTP method ')" + method + "' or path: '" + http_path + R"('"}})";
235 4510149 return ValidationError::INVALID_ROUTE;15092344 return ValidationError::INVALID_ROUTE;
236 } }
237 -
- 0/2 -
-
✗ Branch 0 not taken.
-
✗ Branch 1 not taken.
-
-
10569426 }31771515 }
238 95731671 return ValidationError::NONE; return ValidationError::NONE;
239 207352853}}
240 @@ -2550,106 +2759,47 @@

GCC Code Coverage Report

241 -
- 1/4 -
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 2 times.
-
✗ Branch 2 not taken.
-
✗ Branch 3 not taken.
-
-
2const std::unordered_map<std::string, HttpMethod> OASValidatorImp::kStringToMethod = {const std::unordered_map<std::string, HttpMethod> OASValidatorImp::kStringToMethod = {
242 -
- 5/10 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 2 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 2 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 2 times.
-
✗ Branch 9 not taken.
-
-
2 {"GET", HttpMethod::GET}, {"POST", HttpMethod::POST}, {"PUT", HttpMethod::PUT}, {"DELETE", HttpMethod::DELETE}, {"HEAD", HttpMethod::HEAD}, {"GET", HttpMethod::GET}, {"POST", HttpMethod::POST}, {"PUT", HttpMethod::PUT}, {"DELETE", HttpMethod::DELETE}, {"HEAD", HttpMethod::HEAD},
243 -
- 5/10 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 2 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 2 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 2 times.
-
✗ Branch 9 not taken.
-
-
2 {"OPTIONS", HttpMethod::OPTIONS}, {"PATCH", HttpMethod::PATCH}, {"CONNECT", HttpMethod::CONNECT}, {"TRACE", HttpMethod::TRACE}, {"get", HttpMethod::GET}, {"OPTIONS", HttpMethod::OPTIONS}, {"PATCH", HttpMethod::PATCH}, {"CONNECT", HttpMethod::CONNECT}, {"TRACE", HttpMethod::TRACE}, {"get", HttpMethod::GET},
244 -
- 5/10 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 2 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 2 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 2 times.
-
✗ Branch 9 not taken.
-
-
2 {"post", HttpMethod::POST}, {"put", HttpMethod::PUT}, {"delete", HttpMethod::DELETE}, {"head", HttpMethod::HEAD}, {"options", HttpMethod::OPTIONS}, {"post", HttpMethod::POST}, {"put", HttpMethod::PUT}, {"delete", HttpMethod::DELETE}, {"head", HttpMethod::HEAD}, {"options", HttpMethod::OPTIONS},
245 -
- 3/6 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 2 times.
-
✗ Branch 5 not taken.
-
-
2 {"patch", HttpMethod::PATCH}, {"connect", HttpMethod::CONNECT}, {"trace", HttpMethod::TRACE}}; {"patch", HttpMethod::PATCH}, {"connect", HttpMethod::CONNECT}, {"trace", HttpMethod::TRACE}};
246 @@ -2657,13 +2807,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.oas_validator_imp.hpp.aa166028d6ebb2dc49f6fdd005e4d10f.html b/covhtml-oasvalidator/index.oas_validator_imp.hpp.aa166028d6ebb2dc49f6fdd005e4d10f.html deleted file mode 100644 index 5bcb62b..0000000 --- a/covhtml-oasvalidator/index.oas_validator_imp.hpp.aa166028d6ebb2dc49f6fdd005e4d10f.html +++ /dev/null @@ -1,457 +0,0 @@ - - - - - - GCC Code Coverage Report - - - - - -
-

GCC Code Coverage Report

- -
- -
-
- - - - - - - - - - - - - -
Directory:./
File:include/oas_validator_imp.hpp
Date:2023-11-25 18:43:34
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
ExecTotalCoverage
Lines:11100.0%
Functions:22100.0%
Branches:00-%
-
-
- -
-
- - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LineBranchExecSource
1 - /*
2 - * Copyright (c) 2023 Muhammad Nawaz
3 - * Licensed under the MIT License. See LICENSE file for more information.
4 - */
5 - // [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 -
7 - #ifndef OAS_VALIDATION_HPP
8 - #define OAS_VALIDATION_HPP
9 -
10 - #include "utils/common.hpp"
11 - #include "utils/path_trie.hpp"
12 - #include "validators/method_validator.hpp"
13 - #include "validators/validators_store.hpp"
14 -
15 - class OASValidatorImp
16 - {
17 - public:
18 - explicit OASValidatorImp(const std::string& oas_specs);
19 - ValidationError ValidateRoute(const std::string& method, const std::string& http_path, std::string& error_msg);
20 - ValidationError ValidateBody(const std::string& method, const std::string& http_path, const std::string& json_body, std::string& error_msg);
21 - ValidationError ValidatePathParam(const std::string& method, const std::string& http_path, std::string& error_msg);
22 - ValidationError ValidateQueryParam(const std::string& method, const std::string& http_path, std::string& error_msg);
23 - ValidationError ValidateHeaders(const std::string& method, const std::string& http_path, const std::unordered_map<std::string, std::string>& headers, std::string& error_msg);
24 - ValidationError ValidateRequest(const std::string& method, const std::string& http_path, std::string& error_msg);
25 - ValidationError ValidateRequest(const std::string& method, const std::string& http_path, const std::string& json_body, std::string& error_msg);
26 - ValidationError ValidateRequest(const std::string& method, const std::string& http_path, const std::unordered_map<std::string, std::string>& headers, std::string& error_msg);
27 - ValidationError ValidateRequest(const std::string& method, const std::string& http_path, const std::string& json_body,
28 - const std::unordered_map<std::string, std::string>& headers, std::string& error_msg);
29 - ~OASValidatorImp();
30 -
31 - private:
32 - static const std::unordered_map<std::string, HttpMethod> kStringToMethod;
33 -
34 - 225 struct PerMethod
35 - {
36 - std::unordered_map<std::string, ValidatorsStore*> per_path_validators;
37 - PathTrie path_trie;
38 - };
39 -
40 - std::array<PerMethod, static_cast<size_t>(HttpMethod::COUNT)> oas_validators_;
41 - MethodValidator method_validator_;
42 -
43 - ValidationError GetValidators(const std::string& method, const std::string& http_path, ValidatorsStore*& validators, std::string& error_msg,
44 - std::unordered_map<size_t, ParamRange>* param_idxs = nullptr, std::string* query = nullptr);
45 - };
46 -
47 - #endif // OAS_VALIDATION_HPP
48 -
-
-
-
- - - - diff --git a/covhtml-oasvalidator/index.object_deserializer.cpp.7f42f2f40b50f119b875ed85b762f27d.html b/covhtml-oasvalidator/index.object_deserializer.cpp.7f42f2f40b50f119b875ed85b762f27d.html index e7a9b74..9715574 100644 --- a/covhtml-oasvalidator/index.object_deserializer.cpp.7f42f2f40b50f119b875ed85b762f27d.html +++ b/covhtml-oasvalidator/index.object_deserializer.cpp.7f42f2f40b50f119b875ed85b762f27d.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,66 +40,22 @@

GCC Code Coverage Report

Lines: - 61 - 64 - 95.3% - - - Functions: - 2 - 2 - 100.0% + 67 + 69 + 97.1% Branches: - 52 - 80 - 65.0% + 65 + 114 + 57.0%
-
+ -
-
+
- - -
@@ -109,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + + - - + + + - - + + + - + + - + + - + + - + + - - + + + - - + + + + - - + + + - + + - - + + + + - - + + + + - - + + + - - + + + - - + + + - - + + + + - - + + + + - - + + + - - + + + + - - + + + + - - + + + - - + + + + - - + + + - - + + + - - + + + - + + - + + - + + - + + - - + + + - - + + + - + + - + + - + + - - + + + - + + - + + + - - + + + - + + - + + + - - + + + - + + - + + + - - + + + - + + - + + - + + - - + + + - + + - + + - - + + + - - + + + - + + - - + + + - + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - + + + - - + + + - - + + + - + + + - - + + + - + + - + + + - - + + + - - + + + - + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - + + - + + + - - + + + + - - + + + - - - - - - - - + + + + + + + + + + +
Exec Source
1 @@ -116,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -123,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -130,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -144,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -151,13 +113,15 @@

GCC Code Coverage Report

7 #include "deserializers/object_deserializer.hpp"#include "deserializers/object_deserializer.hpp"
8 @@ -165,69 +129,85 @@

GCC Code Coverage Report

9 1158ObjectDeserializer::ObjectDeserializer(const std::string& param_name, char start, bool skip_name, char kv_separator, char vk_separator, bool is_deep_obj, const ObjKTMap& kt_map)579ObjectDeserializer::ObjectDeserializer(const std::string& param_name, char start, bool skip_name, char kv_separator, char vk_separator, bool is_deep_obj, const ObjKTMap& kt_map)
10 579 : BaseDeserializer(param_name, start, skip_name) : BaseDeserializer(param_name, start, skip_name)
11 579 , kv_separator_(kv_separator) , kv_separator_(kv_separator)
12 579 , vk_separator_(vk_separator) , vk_separator_(vk_separator)
13 579 , is_deep_obj_(is_deep_obj) , is_deep_obj_(is_deep_obj)
14
1/2
-
✓ Branch 0 taken 579 times.
-
✗ Branch 1 not taken.
+
✓ Branch 2 taken 579 times.
+
✗ Branch 3 not taken.
579 , kt_map_(kt_map) , kt_map_(kt_map)
15 1737{{
16 +
+ 0/2 +
+
✗ Branch 0 not taken.
+
✗ Branch 1 not taken.
+
+
1158}579}
17 @@ -235,27 +215,31 @@

GCC Code Coverage Report

18 9286129std::string ObjectDeserializer::Deserialize(const char* beg, const char* const end)4919918std::string ObjectDeserializer::Deserialize(const char* beg, const char* const end)
19 {{
20 9286129 const char* cursor = beg;4919918 const char* cursor = beg;
21 @@ -263,13 +247,15 @@

GCC Code Coverage Report

22 9286129 CheckNSkipStart(cursor);4919918 CheckNSkipStart(cursor);
23 @@ -277,43 +263,48 @@

GCC Code Coverage Report

24
4/4
-
✓ Branch 0 taken 947550 times.
-
✓ Branch 1 taken 8338579 times.
-
✓ Branch 2 taken 1 times.
-
✓ Branch 3 taken 947549 times.
+
✓ Branch 0 taken 3514210 times.
+
✓ Branch 1 taken 1405707 times.
+
✓ Branch 2 taken 3514209 times.
+
✓ Branch 3 taken 1 times.
9286129 if (skip_name_ && !is_deep_obj_) {4919917 if (skip_name_ && !is_deep_obj_) {
25 947549 CheckNSkipName(cursor, end);3514209 CheckNSkipName(cursor, end);
26 947549 CheckNSkipChar(cursor, end, '=');3514209 CheckNSkipChar(cursor, end, '=');
27 947549 } }
28 @@ -321,13 +312,15 @@

GCC Code Coverage Report

29 9286129 CheckData(cursor, end);4919917 CheckData(cursor, end);
30 @@ -335,27 +328,37 @@

GCC Code Coverage Report

31 +
+ 1/2 +
+
✓ Branch 1 taken 4919917 times.
+
✗ Branch 2 not taken.
+
+
9286129 std::string ret;4919917 std::string ret;
32
- 2/2 + 1/2
-
✓ Branch 0 taken 1326593 times.
-
✓ Branch 1 taken 7959536 times.
+
✓ Branch 1 taken 4919917 times.
+
✗ Branch 2 not taken.
9286129 ret.reserve(static_cast<size_t>(end - beg + 128));4919917 ret.reserve(static_cast<size_t>(end - beg + 128));
33 @@ -363,20 +366,22 @@

GCC Code Coverage Report

34
- 2/2 + 1/2
-
✓ Branch 0 taken 9286129 times.
-
✓ Branch 1 taken 7959536 times.
+
✓ Branch 1 taken 4919917 times.
+
✗ Branch 2 not taken.
1326593 ret.push_back('{');4919917 ret.push_back('{');
35 @@ -384,27 +389,37 @@

GCC Code Coverage Report

36 +
+ 1/2 +
+
✓ Branch 1 taken 4919917 times.
+
✗ Branch 2 not taken.
+
+
9286129 std::string key;4919917 std::string key;
37
- 2/2 + 1/2
-
✓ Branch 0 taken 1326593 times.
-
✓ Branch 1 taken 7959536 times.
+
✓ Branch 1 taken 4919917 times.
+
✗ Branch 2 not taken.
9286129 key.reserve(128);4919917 key.reserve(128);
38 @@ -412,176 +427,214 @@

GCC Code Coverage Report

39 +
+ 2/2 +
+
✓ Branch 0 taken 2 times.
+
✓ Branch 1 taken 4919915 times.
+
+
1326593 if (is_deep_obj_) {4919917 if (is_deep_obj_) {
40 +
+ 2/2 +
+
✓ Branch 0 taken 10 times.
+
✓ Branch 1 taken 2 times.
+
+
1326601 while (cursor < end) {12 while (cursor < end) {
41
- 2/2 + 1/2
-
✓ Branch 0 taken 10 times.
-
✓ Branch 1 taken 1326591 times.
+
✓ Branch 1 taken 10 times.
+
✗ Branch 2 not taken.
1326601 CheckNSkipName(cursor, end);10 CheckNSkipName(cursor, end);
42
1/2
-
✓ Branch 0 taken 10 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 10 times.
+
✗ Branch 2 not taken.
10 CheckNSkipChar(cursor, end, '['); CheckNSkipChar(cursor, end, '[');
43 +
+ 1/2 +
+
✓ Branch 1 taken 10 times.
+
✗ Branch 2 not taken.
+
+
10 key.clear(); key.clear();
44
1/2
-
✓ Branch 0 taken 10 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 10 times.
+
✗ Branch 2 not taken.
10 DeserializeKey(cursor, end, ']', key); DeserializeKey(cursor, end, ']', key);
45
- 2/2 + 1/2
-
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 10 times.
+
✗ Branch 2 not taken.
10 CheckNSkipChar(cursor, end, '='); CheckNSkipChar(cursor, end, '=');
46 try {10 try {
47
- 2/2 + 1/2
-
✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
+
✗ Branch 2 not taken.
20 auto param_type = kt_map_.at(key);10 auto param_type = kt_map_.at(key);
48
1/2
-
✓ Branch 0 taken 10 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 10 times.
+
✗ Branch 2 not taken.
10 ret.append(key); ret.append(key);
49
1/2
-
✓ Branch 0 taken 10 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 10 times.
+
✗ Branch 2 not taken.
10 ret.push_back(':'); ret.push_back(':');
50
- 4/4 + 4/5
✓ Branch 0 taken 4 times.
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 2 times.
+
✗ Branch 4 not taken.
10 switch (param_type) { switch (param_type) {
51 case PrimitiveType::BOOLEAN:4 case PrimitiveType::BOOLEAN:
52
- 2/2 + 1/2
-
✓ Branch 0 taken 8 times.
✓ Branch 1 taken 4 times.
+
✗ Branch 2 not taken.
4 DeserializeBoolean(cursor, end, ret); DeserializeBoolean(cursor, end, ret);
53 break; break;
54 @@ -589,27 +642,38 @@

GCC Code Coverage Report

55 case PrimitiveType::INTEGER:2 case PrimitiveType::INTEGER:
56 +
+ 1/2 +
+
✓ Branch 1 taken 2 times.
+
✗ Branch 2 not taken.
+
+
2 DeserializeInteger(cursor, end, ret); DeserializeInteger(cursor, end, ret);
57 break; break;
58 @@ -617,27 +681,38 @@

GCC Code Coverage Report

59 case PrimitiveType::NUMBER:2 case PrimitiveType::NUMBER:
60 +
+ 1/2 +
+
✓ Branch 1 taken 2 times.
+
✗ Branch 2 not taken.
+
+
2 DeserializeNumber(cursor, end, ret); DeserializeNumber(cursor, end, ret);
61 break; break;
62 @@ -645,225 +720,279 @@

GCC Code Coverage Report

63 case PrimitiveType::STRING:2 case PrimitiveType::STRING:
64 +
+ 1/2 +
+
✓ Branch 1 taken 2 times.
+
✗ Branch 2 not taken.
+
+
2 DeserializeString(cursor, end, vk_separator_, ret); DeserializeString(cursor, end, vk_separator_, ret);
65 break; break;
66 } }
67 +
+ 2/2 +
+
✓ Branch 0 taken 8 times.
+
✓ Branch 1 taken 2 times.
+
+
8 if (*cursor == vk_separator_) {10 if (*cursor == vk_separator_) {
68
1/2
-
✓ Branch 0 taken 8 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 8 times.
+
✗ Branch 2 not taken.
8 ret.push_back(','); ret.push_back(',');
69 8 ++cursor; ++cursor;
70 8 } }
71 20 } catch (const std::out_of_range&) { } catch (const std::out_of_range&) {
72 throw DeserializationException("Invalid format for '" + param_name_ + "'"); throw DeserializationException("Invalid format for '" + param_name_ + "'");
73 } }
74 } }
75 } else { } else {
76 +
+ 2/2 +
+
✓ Branch 0 taken 9839873 times.
+
✓ Branch 1 taken 4919904 times.
+
+
1326634 while (cursor < end) {14759777 while (cursor < end) {
77 +
+ 1/2 +
+
✓ Branch 1 taken 9839873 times.
+
✗ Branch 2 not taken.
+
+
1326634 key.clear();9839873 key.clear();
78
- 2/2 + 1/2
-
✓ Branch 0 taken 6632987 times.
-
✓ Branch 1 taken 5306353 times.
+
✓ Branch 1 taken 9839873 times.
+
✗ Branch 2 not taken.
1326634 DeserializeKey(cursor, end, kv_separator_, key);9839873 DeserializeKey(cursor, end, kv_separator_, key);
79 try {9839873 try {
80
2/2
-
✓ Branch 0 taken 2653219 times.
-
✓ Branch 1 taken 3979768 times.
+
✓ Branch 1 taken 9839867 times.
+
✓ Branch 2 taken 6 times.
6632987 auto param_type = kt_map_.at(key);9839873 auto param_type = kt_map_.at(key);
81
1/2
-
✓ Branch 0 taken 2653219 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 9839867 times.
+
✗ Branch 2 not taken.
2653219 ret.append(key);9839867 ret.append(key);
82
1/2
-
✓ Branch 0 taken 2653219 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 9839867 times.
+
✗ Branch 2 not taken.
2653219 ret.push_back(':');9839867 ret.push_back(':');
83
- 4/4 + 4/5
✓ Branch 0 taken 37 times.
-
✓ Branch 1 taken 1326584 times.
+
✓ Branch 1 taken 4919908 times.
✓ Branch 2 taken 17 times.
-
✓ Branch 3 taken 1326581 times.
+
✓ Branch 3 taken 4919905 times.
+
✗ Branch 4 not taken.
2653219 switch (param_type) {9839867 switch (param_type) {
84 case PrimitiveType::BOOLEAN:37 case PrimitiveType::BOOLEAN:
85
2/2
-
✓ Branch 0 taken 1326634 times.
-
✓ Branch 1 taken 1326597 times.
+
✓ Branch 1 taken 36 times.
+
✓ Branch 2 taken 1 times.
37 DeserializeBoolean(cursor, end, ret); DeserializeBoolean(cursor, end, ret);
86 break; break;
87 @@ -871,27 +1000,38 @@

GCC Code Coverage Report

88 case PrimitiveType::INTEGER:4919908 case PrimitiveType::INTEGER:
89 +
+ 2/2 +
+
✓ Branch 1 taken 4919906 times.
+
✓ Branch 2 taken 2 times.
+
+
1326584 DeserializeInteger(cursor, end, ret);4919908 DeserializeInteger(cursor, end, ret);
90 break; break;
91 @@ -899,27 +1039,38 @@

GCC Code Coverage Report

92 case PrimitiveType::NUMBER:17 case PrimitiveType::NUMBER:
93 +
+ 2/2 +
+
✓ Branch 1 taken 16 times.
+
✓ Branch 2 taken 1 times.
+
+
17 DeserializeNumber(cursor, end, ret); DeserializeNumber(cursor, end, ret);
94 break; break;
95 @@ -927,69 +1078,92 @@

GCC Code Coverage Report

96 case PrimitiveType::STRING:4919905 case PrimitiveType::STRING:
97 +
+ 2/2 +
+
✓ Branch 1 taken 4919904 times.
+
✓ Branch 2 taken 1 times.
+
+
1326581 DeserializeString(cursor, end, vk_separator_, ret);4919905 DeserializeString(cursor, end, vk_separator_, ret);
98 break; break;
99 } }
100 +
+ 2/2 +
+
✓ Branch 0 taken 4919958 times.
+
✓ Branch 1 taken 4919904 times.
+
+
1326634 if (*cursor == vk_separator_) {9839862 if (*cursor == vk_separator_) {
101
1/2
-
✓ Branch 0 taken 1326634 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 4919958 times.
+
✗ Branch 2 not taken.
1326634 ret.push_back(',');4919958 ret.push_back(',');
102 1326634 ++cursor;4919958 ++cursor;
103 1326634 } }
104 @@ -1001,57 +1175,57 @@

GCC Code Coverage Report

7959547 } catch (const std::out_of_range&) {11 } catch (const std::out_of_range&) {
105
- 4/8 + 4/10
-
✓ Branch 0 taken 6 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 6 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 6 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 6 times.
-
✗ Branch 7 not taken.
+
✓ Branch 5 taken 6 times.
+
✗ Branch 6 not taken.
+
✓ Branch 8 taken 6 times.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 6 times.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
6 throw DeserializationException("Invalid format for '" + param_name_ + "'");12 throw DeserializationException("Invalid format for '" + param_name_ + "'");
106 -
- 1/2 -
-
✓ Branch 0 taken 6 times.
-
✗ Branch 1 not taken.
-
-
6 } }
107 } }
108 } }
109 @@ -1059,13 +1233,22 @@

GCC Code Coverage Report

110 +
+ 1/2 +
+
✓ Branch 1 taken 4919906 times.
+
✗ Branch 2 not taken.
+
+
CheckEnd(cursor, end);4919906 CheckEnd(cursor, end);
111 @@ -1073,41 +1256,45 @@

GCC Code Coverage Report

112
1/2
-
✓ Branch 0 taken 1326582 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 4919906 times.
+
✗ Branch 2 not taken.
1326582 ret.push_back('}');4919906 ret.push_back('}');
113 - return ret;
114
1/2
-
✓ Branch 0 taken 1326582 times.
+
✓ Branch 0 taken 4919906 times.
✗ Branch 1 not taken.
41124305}4919906 return ret;
114 + 4919917}
115 @@ -1115,13 +1302,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.object_deserializer.cpp.955e96ca9264e962c4a850bfd2b09782.html b/covhtml-oasvalidator/index.object_deserializer.cpp.955e96ca9264e962c4a850bfd2b09782.html index e19ec88..ab8762d 100644 --- a/covhtml-oasvalidator/index.object_deserializer.cpp.955e96ca9264e962c4a850bfd2b09782.html +++ b/covhtml-oasvalidator/index.object_deserializer.cpp.955e96ca9264e962c4a850bfd2b09782.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,143 +40,22 @@

GCC Code Coverage Report

Lines: - 28 - 28 - 100.0% - - - Functions: - 9 - 9 + 22 + 22 100.0% Branches: - 28 - 68 - 41.2% + 26 + 99 + 26.3%
-
+ -
-
+
- - -
@@ -186,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - + + - + + - + + - - + + + + - + + - + + - + + - + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + +
Exec Source
1 @@ -193,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -200,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -207,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -221,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -228,20 +113,23 @@

GCC Code Coverage Report

7 #include "deserializers/object_deserializer.hpp"#include "deserializers/object_deserializer.hpp"
8 #include <gtest/gtest.h>#include <gtest/gtest.h>
9 @@ -249,76 +137,87 @@

GCC Code Coverage Report

10 enum : size_tenum : size_t
11 {{
12 INPUT, INPUT,
13 START_CHAR, START_CHAR,
14 SKIP_NAME, SKIP_NAME,
15 KV_SEPARATOR, KV_SEPARATOR,
16 VK_SEPARATOR, VK_SEPARATOR,
17 IS_DEEP_OBJ, IS_DEEP_OBJ,
18 SHOULD_THROW SHOULD_THROW
19 };};
20 @@ -326,80 +225,47 @@

GCC Code Coverage Report

21 -
- 2/6 -
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
-
✓ Branch 3 taken 1 times.
-
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
-
-
1static const ObjKTMap KT_MAP = {{"\"boolTrue\"", PrimitiveType::BOOLEAN},static const ObjKTMap KT_MAP = {{"\"boolTrue\"", PrimitiveType::BOOLEAN},
22 -
- 1/2 -
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
-
1 {"\"boolFalse\"", PrimitiveType::BOOLEAN}, {"\"boolFalse\"", PrimitiveType::BOOLEAN},
23 -
- 1/2 -
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
-
1 {"\"int\"", PrimitiveType::INTEGER}, {"\"int\"", PrimitiveType::INTEGER},
24 -
- 1/2 -
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
-
1 {"\"number\"", PrimitiveType::NUMBER}, {"\"number\"", PrimitiveType::NUMBER},
25 -
- 1/2 -
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
-
1 {"\"string\"", PrimitiveType::STRING}}; {"\"string\"", PrimitiveType::STRING}};
26 @@ -407,13 +273,15 @@

GCC Code Coverage Report

27 1static const std::string EXPECTED = R"({"boolTrue":true,"boolFalse":false,"int":123,"number":123.456,"string":"abc xyz"})";static const std::string EXPECTED = R"({"boolTrue":true,"boolFalse":false,"int":123,"number":123.456,"string":"abc xyz"})";
28 @@ -421,104 +289,132 @@

GCC Code Coverage Report

29 class ObjectDeserializerTest: public ::testing::TestWithParam<std::tuple<std::string, char, bool, char, char, bool, bool>>15class ObjectDeserializerTest: public ::testing::TestWithParam<std::tuple<std::string, char, bool, char, char, bool, bool>>
30 {{
31 protected:protected:
32 15 void SetUp() override void SetUp() override
33 { {
34 15 auto params = GetParam(); auto params = GetParam();
35
1/2
-
✓ Branch 0 taken 15 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 15 times.
+
✗ Branch 2 not taken.
15 std::string input = std::get<INPUT>(params); std::string input = std::get<INPUT>(params);
36 +
+ 1/2 +
+
✓ Branch 1 taken 15 times.
+
✗ Branch 2 not taken.
+
+
15 char start_char = std::get<START_CHAR>(params); char start_char = std::get<START_CHAR>(params);
37 15 bool skip_name = std::get<SKIP_NAME>(params); bool skip_name = std::get<SKIP_NAME>(params);
38 15 char kv_separator = std::get<KV_SEPARATOR>(params); char kv_separator = std::get<KV_SEPARATOR>(params);
39 15 char vk_separator = std::get<VK_SEPARATOR>(params); char vk_separator = std::get<VK_SEPARATOR>(params);
40 15 bool is_deep_obj = std::get<IS_DEEP_OBJ>(params); bool is_deep_obj = std::get<IS_DEEP_OBJ>(params);
41 +
+ 1/2 +
+
✓ Branch 1 taken 15 times.
+
✗ Branch 2 not taken.
+
+
15 bool should_throw = std::get<SHOULD_THROW>(params); bool should_throw = std::get<SHOULD_THROW>(params);
42 @@ -526,48 +422,67 @@

GCC Code Coverage Report

43
1/2
-
✓ Branch 0 taken 15 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 15 times.
+
✗ Branch 2 not taken.
15 deserializer_ = std::make_unique<ObjectDeserializer>("test", start_char, skip_name, kv_separator, vk_separator, is_deep_obj, KT_MAP); deserializer_ = std::make_unique<ObjectDeserializer>("test", start_char, skip_name, kv_separator, vk_separator, is_deep_obj, KT_MAP);
44
1/2
-
✗ Branch 0 not taken.
✓ Branch 1 taken 15 times.
+
✗ Branch 2 not taken.
15 input_ = input; input_ = input;
45 +
+ 1/2 +
+
✓ Branch 0 taken 15 times.
+
✗ Branch 1 not taken.
+
+
15 expect_throw_ = should_throw; expect_throw_ = should_throw;
46 +
+ 1/2 +
+
✓ Branch 0 taken 15 times.
+
✗ Branch 1 not taken.
+
+
15 }30 }
47 @@ -575,34 +490,39 @@

GCC Code Coverage Report

48 std::unique_ptr<ObjectDeserializer> deserializer_; std::unique_ptr<ObjectDeserializer> deserializer_;
49 std::string input_; std::string input_;
50 bool expect_throw_; bool expect_throw_;
51 };};
52 @@ -610,35 +530,50 @@

GCC Code Coverage Report

53
- 5/10 + 8/22
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 15 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
+
✗ Branch 11 not taken.
+
✓ Branch 13 taken 1 times.
+
✗ Branch 14 not taken.
+
✓ Branch 15 taken 1 times.
+
✗ Branch 16 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 18 not taken.
+
✓ Branch 19 taken 1 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
47TEST_P(ObjectDeserializerTest, Deserialize)59TEST_P(ObjectDeserializerTest, Deserialize)
54 {{
55 @@ -650,89 +585,127 @@

GCC Code Coverage Report

15 if (expect_throw_) {30 if (expect_throw_) {
56
- 6/16 + 5/41
-
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
-
✓ Branch 2 taken 6 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 6 times.
-
✗ Branch 5 not taken.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 6 times.
+
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 6 times.
-
✓ Branch 8 taken 6 times.
✗ Branch 9 not taken.
-
✓ Branch 10 taken 6 times.
-
✗ Branch 11 not taken.
+
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✓ Branch 23 taken 6 times.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✓ Branch 28 taken 6 times.
+
✗ Branch 29 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 41 not taken.
+
✗ Branch 44 not taken.
+
✗ Branch 45 not taken.
+
✗ Branch 47 not taken.
+
✗ Branch 48 not taken.
+
✗ Branch 52 not taken.
+
✗ Branch 53 not taken.
+
✗ Branch 55 not taken.
+
✗ Branch 56 not taken.
+
✗ Branch 60 not taken.
+
✗ Branch 61 not taken.
+
✗ Branch 62 not taken.
+
✗ Branch 63 not taken.
12 EXPECT_THROW({ deserializer_->Deserialize(input_.c_str(), input_.c_str() + input_.size()); }, DeserializationException);24 EXPECT_THROW({ deserializer_->Deserialize(input_.c_str(), input_.c_str() + input_.size()); }, DeserializationException);
57 6 } else { } else {
58 9 std::string result = deserializer_->Deserialize(input_.c_str(), input_.c_str() + input_.size());18 std::string result = deserializer_->Deserialize(input_.c_str(), input_.c_str() + input_.size());
59
- 2/12 + 3/18
-
✓ Branch 0 taken 9 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 9 times.
+
✓ Branch 1 taken 9 times.
+
✗ Branch 2 not taken.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
+
✓ Branch 4 taken 9 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✓ Branch 17 taken 9 times.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
9 EXPECT_EQ(result, EXPECTED);36 EXPECT_EQ(result, EXPECTED);
60 9 }18 }
61 21}30}
62 @@ -740,138 +713,150 @@

GCC Code Coverage Report

63
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
-
✓ Branch 7 taken 1 times.
+
✓ Branch 2 taken 15 times.
17INSTANTIATE_TEST_CASE_P(ObjectDeserializerTests, ObjectDeserializerTest,32INSTANTIATE_TEST_CASE_P(ObjectDeserializerTests, ObjectDeserializerTest,
64 ::testing::Values(std::make_tuple("boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", '\0', false, ',', ',', false, false), ::testing::Values(std::make_tuple("boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", '\0', false, ',', ',', false, false),
65 std::make_tuple("boolTrue=true,boolFalse=false,int=123,number=123.456,string=abc%20xyz", '\0', false, '=', ',', false, false), std::make_tuple("boolTrue=true,boolFalse=false,int=123,number=123.456,string=abc%20xyz", '\0', false, '=', ',', false, false),
66 std::make_tuple(".boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", '.', false, ',', ',', false, false), std::make_tuple(".boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", '.', false, ',', ',', false, false),
67 std::make_tuple(".boolTrue=true,boolFalse=false,int=123,number=123.456,string=abc%20xyz", '.', false, '=', ',', false, false), std::make_tuple(".boolTrue=true,boolFalse=false,int=123,number=123.456,string=abc%20xyz", '.', false, '=', ',', false, false),
68 std::make_tuple(";test=boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", ';', true, ',', ',', false, false), std::make_tuple(";test=boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", ';', true, ',', ',', false, false),
69 std::make_tuple(";boolTrue=true;boolFalse=false;int=123;number=123.456;string=abc%20xyz", ';', false, '=', ';', false, false), std::make_tuple(";boolTrue=true;boolFalse=false;int=123;number=123.456;string=abc%20xyz", ';', false, '=', ';', false, false),
70 std::make_tuple("?boolTrue=true&boolFalse=false&int=123&number=123.456&string=abc%20xyz", '?', false, '=', '&', false, false), std::make_tuple("?boolTrue=true&boolFalse=false&int=123&number=123.456&string=abc%20xyz", '?', false, '=', '&', false, false),
71 std::make_tuple("?test=boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", '?', true, ',', ',', false, false), std::make_tuple("?test=boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", '?', true, ',', ',', false, false),
72 std::make_tuple("?test[boolTrue]=true&test[boolFalse]=false&test[int]=123&test[number]=123.456&test[string]=abc%20xyz", '?', true, '=', std::make_tuple("?test[boolTrue]=true&test[boolFalse]=false&test[int]=123&test[number]=123.456&test[string]=abc%20xyz", '?', true, '=',
73 '&', true, false), '&', true, false),
74 std::make_tuple("boolTrue,true,boolFalse,false,int,str,number,123.456,string,abc%20xyz", '\0', false, ',', ',', false, true), std::make_tuple("boolTrue,true,boolFalse,false,int,str,number,123.456,string,abc%20xyz", '\0', false, ',', ',', false, true),
75 std::make_tuple("boolTrue=true,boolFalse=false,int=123,number=123.456,string=abc%2xyz", '\0', false, '=', ',', false, true), std::make_tuple("boolTrue=true,boolFalse=false,int=123,number=123.456,string=abc%2xyz", '\0', false, '=', ',', false, true),
76 std::make_tuple(".boolTrue,true,boolFalse,false,int,123,number,1.23.456,string,abc%20xyz", '.', false, ',', ',', false, true), std::make_tuple(".boolTrue,true,boolFalse,false,int,123,number,1.23.456,string,abc%20xyz", '.', false, ',', ',', false, true),
77 std::make_tuple(".boolTrue;true,boolFalse=false,int=123,number=123.456,string=abc%20xyz", '.', false, '=', ',', false, true), std::make_tuple(".boolTrue;true,boolFalse=false,int=123,number=123.456,string=abc%20xyz", '.', false, '=', ',', false, true),
78 std::make_tuple("test=boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", ';', true, ',', ',', false, true), std::make_tuple("test=boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", ';', true, ',', ',', false, true),
79 std::make_tuple(";boolTrue,true;boolFalse=false;int=123;number=123.456;string=abc%20xyz", ';', false, '=', ';', false, true))); std::make_tuple(";boolTrue,true;boolFalse=false;int=123;number=123.456;string=abc%20xyz", ';', false, '=', ';', false, true)));
80 @@ -879,13 +864,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.object_deserializer.hpp.1df0915a2bf5439047281a5175fde2c9.html b/covhtml-oasvalidator/index.object_deserializer.hpp.1df0915a2bf5439047281a5175fde2c9.html index 09f021d..ce0fae1 100644 --- a/covhtml-oasvalidator/index.object_deserializer.hpp.1df0915a2bf5439047281a5175fde2c9.html +++ b/covhtml-oasvalidator/index.object_deserializer.hpp.1df0915a2bf5439047281a5175fde2c9.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,66 +40,22 @@

GCC Code Coverage Report

Lines: - 11 - 11 - 100.0% - - - Functions: - 2 - 2 + 10 + 10 100.0% Branches: - 7 8 - 87.5% + 10 + 80.0%
-
- -
-
- - +
-
@@ -109,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + + + + - + + - + + + + + - + + - + + - + + - + + + - + + - - + + + + - + + + + - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + + + +
Exec Source
1 @@ -116,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -123,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -130,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -144,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -151,6 +113,7 @@

GCC Code Coverage Report

7 @@ -158,6 +121,7 @@

GCC Code Coverage Report

#ifndef OBJECT_DESERIALIZER_HPP
8 @@ -165,6 +129,7 @@

GCC Code Coverage Report

#define OBJECT_DESERIALIZER_HPP
9 @@ -172,20 +137,23 @@

GCC Code Coverage Report

10 #include "deserializers/base_deserializer.hpp"#include "deserializers/base_deserializer.hpp"
11 #include <unordered_map>#include <unordered_map>
12 @@ -193,6 +161,7 @@

GCC Code Coverage Report

13 @@ -200,6 +169,7 @@

GCC Code Coverage Report

using ObjKTMap = std::unordered_map<std::string, PrimitiveType>; // Object Key-name to PrimitiveType
14 @@ -207,34 +177,39 @@

GCC Code Coverage Report

15 class ObjectDeserializer final: public BaseDeserializerclass ObjectDeserializer final: public BaseDeserializer
16 {{
17 public:public:
18 explicit ObjectDeserializer(const std::string& param_name, char start, bool skip_name, char kv_separator, char vk_separator, bool is_deep_obj, const ObjKTMap& kt_map); explicit ObjectDeserializer(const std::string& param_name, char start, bool skip_name, char kv_separator, char vk_separator, bool is_deep_obj, const ObjKTMap& kt_map);
19 @@ -242,20 +217,30 @@

GCC Code Coverage Report

20 std::string Deserialize(const char* beg, const char* const end) override; std::string Deserialize(const char* beg, const char* const end) override;
21 +
+ 1/2 +
+
✗ Branch 1 not taken.
+
✓ Branch 2 taken 15 times.
+
+
30 ~ObjectDeserializer() override = default;45 ~ObjectDeserializer() override = default;
22 @@ -263,13 +248,15 @@

GCC Code Coverage Report

23 private:private:
24 @@ -277,6 +264,7 @@

GCC Code Coverage Report

const char kv_separator_; // key-value separator
25 @@ -284,13 +272,15 @@

GCC Code Coverage Report

const char vk_separator_; // value-key separator
26 const bool is_deep_obj_; const bool is_deep_obj_;
27 @@ -298,6 +288,7 @@

GCC Code Coverage Report

const ObjKTMap kt_map_; // key-type map
28 @@ -305,115 +296,129 @@

GCC Code Coverage Report

29 2653235 inline void DeserializeKey(const char*& cursor, const char* const end, const char terminator, std::string& key) const9839883 inline void DeserializeKey(const char*& cursor, const char* const end, const char terminator, std::string& key) const
30 { {
31 2653235 key.push_back('"');9839883 key.push_back('"');
32
4/4
-
✓ Branch 0 taken 18572811 times.
-
✓ Branch 1 taken 2 times.
-
✓ Branch 2 taken 15919578 times.
-
✓ Branch 3 taken 2653233 times.
+
✓ Branch 1 taken 68879347 times.
+
✓ Branch 2 taken 2 times.
+
✓ Branch 3 taken 59039466 times.
+
✓ Branch 4 taken 9839881 times.
18572813 while (cursor < end && *cursor != terminator) {78719232 while (cursor < end && *cursor != terminator) {
33 15919578 key.push_back(*cursor);59039466 key.push_back(*cursor);
34 15919578 ++cursor;59039466 ++cursor;
35 } }
36
3/4
-
✓ Branch 0 taken 2653233 times.
+
✓ Branch 0 taken 9839881 times.
✓ Branch 1 taken 2 times.
-
✗ Branch 2 not taken.
-
✓ Branch 3 taken 2653233 times.
+
✓ Branch 2 taken 9839881 times.
+
✗ Branch 3 not taken.
2653235 if (cursor < end && *cursor == terminator) {9839883 if (cursor < end && *cursor == terminator) {
37 2653233 ++cursor;9839881 ++cursor;
38 2653233 } }
39 2653235 key.push_back('"');9839883 key.push_back('"');
40 2653235 }9839883 }
41 };};
42 @@ -421,6 +426,7 @@

GCC Code Coverage Report

43 @@ -428,6 +434,7 @@

GCC Code Coverage Report

#endif // OBJECT_DESERIALIZER_HPP
44 @@ -435,13 +442,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.param_validators.cpp.3cc93d57ba443c5b70311b3394adf05f.html b/covhtml-oasvalidator/index.param_validators.cpp.3cc93d57ba443c5b70311b3394adf05f.html index a4e4f4a..7e09842 100644 --- a/covhtml-oasvalidator/index.param_validators.cpp.3cc93d57ba443c5b70311b3394adf05f.html +++ b/covhtml-oasvalidator/index.param_validators.cpp.3cc93d57ba443c5b70311b3394adf05f.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,231 +40,22 @@

GCC Code Coverage Report

Lines: - 135 - 155 - 87.1% - - - Functions: - 14 - 17 - 82.4% + 110 + 126 + 87.3% Branches: - 165 - 368 - 44.8% + 118 + 324 + 36.4%
-
- -
-
- - +
-
@@ -274,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + - + + - + + - + + - + + + - + + - + + - + + - + + - + + - - + + + - - + + + - + + - - + + + - + + - + + - - + + + + - + + - + + - - + + + - + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - - + + + - - + + + - + + - - + + + - + + - - + + + + - + + - + + - + + - + + - + + - - + + + - + + - - + + + - + + - + + - + + - - + + + - + + - - + + + - + + - + + - + + - - + + + - + + - + + - + + - + + - - + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - - + + + - - + + + - + + - + + - + + - - + + + - - + + + + - + + - + + - + + - + + - + + - - + + + - - + + + + - + + - + + - + + - + + - + + - - + + + - + + - - + + + - + + - + + - - + + + - + + - - + + + - + + - + + - - + + + - - + + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - - + + + + - + + - + + - + + - + + + - - + + + - + + + - - + + + - - + + + - - + + + - + + - + + - - + + + - + + - + + - + + - + + - - + + + - - + + + + - + + - + + - - + + + - - + + + - - + + + - - + + + + - - + + + + - - + + + - - + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - - + + + - + + - + + - + + - + + - - + + + - + + - + + - + + - + + - + + - + + - + + - - + + + - - + + + - - + + + - - + + + - + + - - + + + + + - + + - - + + + - - + + + - + + - + + - - + + + - + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - + + - + + - + + - + + + - + + - + + - + + - + + - - + + + + - + + - + + - + + - - + + + - - + + + + - + + - - + + + - - + + + - - + + + - + + - + + - + + - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - + + - + + - + + - + + + - - + + + - - + + + - - + + + - - + + + +
Exec Source
1 @@ -281,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -288,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -295,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -309,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -316,41 +113,47 @@

GCC Code Coverage Report

7 #include "validators/param_validators.hpp"#include "validators/param_validators.hpp"
8 #include "deserializers/array_deserializer.hpp"#include "deserializers/array_deserializer.hpp"
9 #include "deserializers/content_deserializer.hpp"#include "deserializers/content_deserializer.hpp"
10 #include "deserializers/object_deserializer.hpp"#include "deserializers/object_deserializer.hpp"
11 #include "deserializers/primitive_deserializer.hpp"#include "deserializers/primitive_deserializer.hpp"
12 @@ -358,98 +161,103 @@

GCC Code Coverage Report

13 namespace {namespace {
14 2783inline char GetStartChar(ParamStyle param_style)inline char GetStartChar(ParamStyle param_style)
15 {{
16 -
- 3/3 -
-
✓ Branch 0 taken 218 times.
-
✓ Branch 1 taken 2303 times.
-
✓ Branch 2 taken 262 times.
-
-
2783 switch (param_style) { switch (param_style) {
17 case ParamStyle::LABEL: case ParamStyle::LABEL:
18 262 return '.'; return '.';
19 case ParamStyle::MATRIX:218 case ParamStyle::MATRIX:
20 218 return ';'; return ';';
21 default:2303 default:
22 2303 return '\0'; return '\0';
23 } }
24 2783}}
25 @@ -457,141 +265,168 @@

GCC Code Coverage Report

26 2783inline bool HasNameAtStart(const std::string& in, ParamStyle style, bool explode, ExtendedType type)inline bool HasNameAtStart(const std::string& in, ParamStyle style, bool explode, ExtendedType type)
27 {{
28
- 3/4 + 2/3
-
✓ Branch 0 taken 168 times.
+
✓ Branch 0 taken 1210 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1210 times.
-
✓ Branch 3 taken 1405 times.
+
✓ Branch 2 taken 1405 times.
2783 switch (style) {2615 switch (style) {
29 case ParamStyle::SIMPLE: case ParamStyle::SIMPLE:
30 case ParamStyle::LABEL: case ParamStyle::LABEL:
31 1405 return false; return false;
32 case ParamStyle::MATRIX:1210 case ParamStyle::MATRIX:
33 case ParamStyle::FORM:1210 case ParamStyle::FORM:
34 case ParamStyle::SPACE_DELIM:1210 case ParamStyle::SPACE_DELIM:
35 case ParamStyle::PIPE_DELIM:1210 case ParamStyle::PIPE_DELIM:
36 case ParamStyle::DEEP_OBJ:1210 case ParamStyle::DEEP_OBJ:
37 +
+ 4/4 +
+
✓ Branch 0 taken 626 times.
+
✓ Branch 1 taken 584 times.
+
✓ Branch 2 taken 312 times.
+
✓ Branch 3 taken 314 times.
+
+
1210 return (ExtendedType::ARRAY != type && ExtendedType::OBJECT != type) || !explode; return (ExtendedType::ARRAY != type && ExtendedType::OBJECT != type) || !explode;
38 case ParamStyle::CONTENT:168 case ParamStyle::CONTENT:
39 168 return "query" == in; return "query" == in;
40 default: default:
41 return false; return false;
42 } }
43 2783}}
44 @@ -599,155 +434,165 @@

GCC Code Coverage Report

45 836inline char GetArrayItemsSeparator(ParamStyle param_style, bool explode)inline char GetArrayItemsSeparator(ParamStyle param_style, bool explode)
46 {{
47 -
- 2/2 -
-
✓ Branch 0 taken 438 times.
-
✓ Branch 1 taken 398 times.
-
-
836 if (explode) { if (explode) {
48
- 4/4 + 2/2
-
✓ Branch 0 taken 52 times.
-
✓ Branch 1 taken 29 times.
-
✓ Branch 2 taken 197 times.
-
✓ Branch 3 taken 160 times.
+
✓ Branch 0 taken 241 times.
+
✓ Branch 1 taken 197 times.
438 switch (param_style) { switch (param_style) {
49 case ParamStyle::LABEL: case ParamStyle::LABEL:
50 52 return '.'; return '.';
51 case ParamStyle::MATRIX: case ParamStyle::MATRIX:
52 29 return ';'; return ';';
53 case ParamStyle::FORM: case ParamStyle::FORM:
54 case ParamStyle::SPACE_DELIM: case ParamStyle::SPACE_DELIM:
55 case ParamStyle::PIPE_DELIM: case ParamStyle::PIPE_DELIM:
56 160 return '&'; return '&';
57 default: default:
58 197 return ','; return ',';
59 } }
60 } else { } else {
61
2/2
-
✓ Branch 0 taken 5 times.
-
✓ Branch 1 taken 393 times.
+
✓ Branch 0 taken 393 times.
+
✓ Branch 1 taken 5 times.
398 if (ParamStyle::SPACE_DELIM == param_style) { if (ParamStyle::SPACE_DELIM == param_style) {
62 5 return '%'; return '%';
63 @@ -760,162 +605,176 @@

GCC Code Coverage Report

393 } else if (ParamStyle::PIPE_DELIM == param_style) { } else if (ParamStyle::PIPE_DELIM == param_style) {
64 5 return '|'; return '|';
65 } }
66 } }
67 388 return ','; return ',';
68 836}}
69 836inline bool HasArrayRunningName(ParamStyle param_style, bool explode)inline bool HasArrayRunningName(ParamStyle param_style, bool explode)
70 {{
71 -
- 2/2 -
-
✓ Branch 0 taken 398 times.
-
✓ Branch 1 taken 438 times.
-
-
836 if (explode) { if (explode) {
72
2/2
-
✓ Branch 0 taken 189 times.
-
✓ Branch 1 taken 249 times.
+
✓ Branch 0 taken 249 times.
+
✓ Branch 1 taken 189 times.
438 switch (param_style) { switch (param_style) {
73 case ParamStyle::MATRIX: case ParamStyle::MATRIX:
74 case ParamStyle::FORM: case ParamStyle::FORM:
75 case ParamStyle::SPACE_DELIM: case ParamStyle::SPACE_DELIM:
76 case ParamStyle::PIPE_DELIM: case ParamStyle::PIPE_DELIM:
77 189 return true; return true;
78 default:249 default:
79 249 return false; return false;
80 } }
81 } }
82 398 return false; return false;
83 836}}
84 @@ -923,62 +782,63 @@

GCC Code Coverage Report

85 564inline char GetObjKVSep(bool explode)inline char GetObjKVSep(bool explode)
86 {{
87 -
- 2/2 -
-
✓ Branch 0 taken 245 times.
-
✓ Branch 1 taken 319 times.
-
-
564 if (explode) { if (explode) {
88 245 return '='; return '=';
89 } }
90 319 return ','; return ',';
91 564}}
92 @@ -986,141 +846,150 @@

GCC Code Coverage Report

93 564inline char GetObjVKSep(ParamStyle param_style, bool explode)inline char GetObjVKSep(ParamStyle param_style, bool explode)
94 {{
95 -
- 2/2 -
-
✓ Branch 0 taken 319 times.
-
✓ Branch 1 taken 245 times.
-
-
564 if (explode) { if (explode) {
96
- 4/4 + 2/2
-
✓ Branch 0 taken 98 times.
+
✓ Branch 0 taken 148 times.
✓ Branch 1 taken 97 times.
-
✓ Branch 2 taken 25 times.
-
✓ Branch 3 taken 25 times.
245 switch (param_style) { switch (param_style) {
97 case ParamStyle::LABEL: case ParamStyle::LABEL:
98 25 return '.'; return '.';
99 case ParamStyle::MATRIX: case ParamStyle::MATRIX:
100 25 return ';'; return ';';
101 case ParamStyle::FORM: case ParamStyle::FORM:
102 case ParamStyle::DEEP_OBJ: case ParamStyle::DEEP_OBJ:
103 98 return '&'; return '&';
104 default: default:
105 97 return ','; return ',';
106 } }
107 } }
108 319 return ','; return ',';
109 564}}
110 @@ -1128,122 +997,71 @@

GCC Code Coverage Report

111 -
- 2/6 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
-
✓ Branch 3 taken 2 times.
-
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
-
-
2const std::unordered_map<std::string, ParamStyle> PARAM_STYLE_MAP = {{"simple", ParamStyle::SIMPLE},const std::unordered_map<std::string, ParamStyle> PARAM_STYLE_MAP = {{"simple", ParamStyle::SIMPLE},
112 -
- 1/2 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
-
2 {"label", ParamStyle::LABEL}, {"label", ParamStyle::LABEL},
113 -
- 1/2 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
-
2 {"matrix", ParamStyle::MATRIX}, {"matrix", ParamStyle::MATRIX},
114 -
- 1/2 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
-
2 {"form", ParamStyle::FORM}, {"form", ParamStyle::FORM},
115 -
- 1/2 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
-
2 {"spaceDelimited", ParamStyle::SPACE_DELIM}, {"spaceDelimited", ParamStyle::SPACE_DELIM},
116 -
- 1/2 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
-
2 {"pipeDelimited", ParamStyle::PIPE_DELIM}, {"pipeDelimited", ParamStyle::PIPE_DELIM},
117 -
- 1/2 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
-
2 {"deepObject", ParamStyle::DEEP_OBJ}, {"deepObject", ParamStyle::DEEP_OBJ},
118 -
- 1/2 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
-
2 {"content", ParamStyle::CONTENT}}; {"content", ParamStyle::CONTENT}};
119 @@ -1251,66 +1069,39 @@

GCC Code Coverage Report

120 -
- 2/6 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
-
✓ Branch 3 taken 2 times.
-
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
-
-
2const std::unordered_map<std::string, PrimitiveType> PRIMITIVE_TYPE_MAP = {{"boolean", PrimitiveType::BOOLEAN},const std::unordered_map<std::string, PrimitiveType> PRIMITIVE_TYPE_MAP = {{"boolean", PrimitiveType::BOOLEAN},
121 -
- 1/2 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
-
2 {"integer", PrimitiveType::INTEGER}, {"integer", PrimitiveType::INTEGER},
122 -
- 1/2 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
-
2 {"number", PrimitiveType::NUMBER}, {"number", PrimitiveType::NUMBER},
123 -
- 1/2 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
-
2 {"string", PrimitiveType::STRING}}; {"string", PrimitiveType::STRING}};
124 @@ -1318,46 +1109,23 @@

GCC Code Coverage Report

125 -
- 4/10 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 2 times.
-
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
-
✓ Branch 7 taken 2 times.
-
✗ Branch 8 not taken.
-
✗ Branch 9 not taken.
-
-
2const std::unordered_map<std::string, ExtendedType> EXTENDED_TYPE_MAP = {{"boolean", ExtendedType::BOOLEAN}, {"integer", ExtendedType::INTEGER}, {"number", ExtendedType::NUMBER},const std::unordered_map<std::string, ExtendedType> EXTENDED_TYPE_MAP = {{"boolean", ExtendedType::BOOLEAN}, {"integer", ExtendedType::INTEGER}, {"number", ExtendedType::NUMBER},
126 -
- 3/6 -
-
✓ Branch 0 taken 2 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 2 times.
-
✗ Branch 5 not taken.
-
-
2 {"string", ExtendedType::STRING}, {"array", ExtendedType::ARRAY}, {"object", ExtendedType::OBJECT}}; {"string", ExtendedType::STRING}, {"array", ExtendedType::ARRAY}, {"object", ExtendedType::OBJECT}};
127 @@ -1365,51 +1133,46 @@

GCC Code Coverage Report

128 564ObjKTMap GetKTMap(const rapidjson::Value& param_val, const std::vector<std::string>& ref_keys)ObjKTMap GetKTMap(const rapidjson::Value& param_val, const std::vector<std::string>& ref_keys)
129 {{
130 564 ObjKTMap kt_map; ObjKTMap kt_map;
131
- 7/12 + 2/2
-
✓ Branch 0 taken 564 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 564 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 564 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 564 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 564 times.
-
✗ Branch 9 not taken.
-
✓ Branch 10 taken 1116 times.
-
✓ Branch 11 taken 564 times.
+
✓ Branch 2 taken 1116 times.
+
✓ Branch 3 taken 564 times.
1680 for (const auto& prop : param_val["schema"]["properties"].GetObject()) { for (const auto& prop : param_val["schema"]["properties"].GetObject()) {
132 @@ -1417,6 +1180,7 @@

GCC Code Coverage Report

// Ensure each property has a "type" member, and it's a string
133 @@ -1425,30 +1189,30 @@

GCC Code Coverage Report

✓ Branch 0 taken 1116 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1116 times.
-
✗ Branch 3 not taken.
+
✓ Branch 3 taken 1116 times.
+
✗ Branch 4 not taken.
1116 std::string prop_name(prop.name.GetString());2232 std::string prop_name(prop.name.GetString());
134
- 2/4 + 1/2
-
✗ Branch 0 not taken.
✓ Branch 1 taken 1116 times.
-
✓ Branch 2 taken 1116 times.
-
✗ Branch 3 not taken.
+
✗ Branch 2 not taken.
1116 if (prop.value.HasMember("type")) { if (prop.value.HasMember("type")) {
135 @@ -1456,121 +1220,140 @@

GCC Code Coverage Report

136
- 3/6 + 2/6
-
✓ Branch 0 taken 1116 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1116 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1116 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1116 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✗ Branch 7 not taken.
1116 std::string prop_type(prop.value["type"].GetString());2232 std::string prop_type(prop.value["type"].GetString());
137 try {1116 try {
138
- 4/8 + 6/14
-
✗ Branch 0 not taken.
✓ Branch 1 taken 1116 times.
✗ Branch 2 not taken.
-
✓ Branch 3 taken 1116 times.
✓ Branch 4 taken 1116 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1116 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 1116 times.
+
✗ Branch 8 not taken.
+
✗ Branch 9 not taken.
+
✓ Branch 10 taken 1116 times.
+
✗ Branch 11 not taken.
+
✓ Branch 12 taken 1116 times.
+
✗ Branch 13 not taken.
+
✓ Branch 14 taken 1116 times.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
1116 kt_map.emplace("\"" + prop_name + "\"", PRIMITIVE_TYPE_MAP.at(prop_type));2232 kt_map.emplace("\"" + prop_name + "\"", PRIMITIVE_TYPE_MAP.at(prop_type));
139 } catch (const std::out_of_range&) { } catch (const std::out_of_range&) {
140 throw ValidatorInitExc("Type '" + prop_type + "' of property '" + prop_name + "' of parameter '" + JoinReference(ref_keys) + "' is not supported"); throw ValidatorInitExc("Type '" + prop_type + "' of property '" + prop_name + "' of parameter '" + JoinReference(ref_keys) + "' is not supported");
141 } }
142 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1116 times.
+
+
1116 } else { } else {
143 throw ValidatorInitExc("Type id missing for property '" + prop_name + "' of parameter '" + JoinReference(ref_keys) + "'"); throw ValidatorInitExc("Type id missing for property '" + prop_name + "' of parameter '" + JoinReference(ref_keys) + "'");
144 } }
145 1116 } }
146 return kt_map;564 return kt_map;
147 -
- 1/2 -
-
✓ Branch 0 taken 564 times.
-
✗ Branch 1 not taken.
-
-
564}}
148 @@ -1578,87 +1361,95 @@

GCC Code Coverage Report

149 2783BaseDeserializer* GetDeserializer(const rapidjson::Value& param_val, const std::string& default_style, bool default_explode, const std::vector<std::string>& ref_keys)BaseDeserializer* GetDeserializer(const rapidjson::Value& param_val, const std::string& default_style, bool default_explode, const std::vector<std::string>& ref_keys)
150 {{
151 +
+ 2/2 +
+
✓ Branch 1 taken 2423 times.
+
✓ Branch 2 taken 360 times.
+
+
2783 std::string param_name(param_val["name"].GetString());5566 std::string param_name(param_val["name"].GetString());
152
- 3/6 + 2/6
-
✓ Branch 0 taken 2783 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2783 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 2783 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 2783 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✗ Branch 7 not taken.
2783 std::string in(param_val["in"].GetString());5566 std::string in(param_val["in"].GetString());
153
- 4/6 + 2/2
-
✓ Branch 0 taken 2783 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2447 times.
-
✓ Branch 3 taken 336 times.
-
✓ Branch 4 taken 2447 times.
-
✗ Branch 5 not taken.
+
✓ Branch 1 taken 2447 times.
+
✓ Branch 2 taken 336 times.
2783 auto explode(param_val.HasMember("explode") ? param_val["explode"].GetBool() : default_explode);5230 auto explode(param_val.HasMember("explode") ? param_val["explode"].GetBool() : default_explode);
154
- 8/12 + 7/10
-
✓ Branch 0 taken 2783 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2423 times.
-
✓ Branch 3 taken 360 times.
-
✓ Branch 4 taken 2423 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 2423 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 2063 times.
-
✓ Branch 9 taken 360 times.
-
✗ Branch 10 not taken.
-
✓ Branch 11 taken 2063 times.
+
✓ Branch 1 taken 2423 times.
+
✓ Branch 2 taken 360 times.
+
✓ Branch 4 taken 2389 times.
+
✓ Branch 5 taken 34 times.
+
✓ Branch 7 taken 2423 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 2783 times.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✓ Branch 13 taken 2783 times.
2783 auto param_style = PARAM_STYLE_MAP.at(param_val.HasMember("style") ? param_val["style"].GetString() : default_style);5566 auto param_style = PARAM_STYLE_MAP.at(param_val.HasMember("style") ? param_val["style"].GetString() : default_style);
155 @@ -1666,13 +1457,23 @@

GCC Code Coverage Report

156 +
+ 3/3 +
+
✓ Branch 0 taken 218 times.
+
✓ Branch 1 taken 2303 times.
+
✓ Branch 2 taken 262 times.
+
+
2063 auto start = GetStartChar(param_style);2783 auto start = GetStartChar(param_style);
157 @@ -1680,422 +1481,473 @@

GCC Code Coverage Report

158
- 6/8 + 3/4
-
✓ Branch 0 taken 2615 times.
-
✓ Branch 1 taken 552 times.
-
✓ Branch 2 taken 2615 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 2615 times.
+
✓ Branch 2 taken 168 times.
✓ Branch 4 taken 2615 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 564 times.
-
✓ Branch 7 taken 3179 times.
2063 if (param_val.HasMember("schema") && param_val["schema"].HasMember("type")) {5398 if (param_val.HasMember("schema") && param_val["schema"].HasMember("type")) {
159
- 6/8 + 2/6
-
✓ Branch 0 taken 2615 times.
-
✓ Branch 1 taken 564 times.
✓ Branch 2 taken 2615 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 2615 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 3179 times.
-
✓ Branch 7 taken 564 times.
+
✓ Branch 5 taken 2615 times.
+
✗ Branch 6 not taken.
+
✗ Branch 7 not taken.
+
✗ Branch 8 not taken.
3179 std::string type(param_val["schema"]["type"].GetString());5230 std::string type(param_val["schema"]["type"].GetString());
160
- 2/2 + 1/2
-
✓ Branch 0 taken 2615 times.
-
✓ Branch 1 taken 564 times.
+
✓ Branch 1 taken 2615 times.
+
✗ Branch 2 not taken.
3179 auto skip_name = HasNameAtStart(in, param_style, explode, EXTENDED_TYPE_MAP.at(type));2615 auto skip_name = HasNameAtStart(in, param_style, explode, EXTENDED_TYPE_MAP.at(type));
161
- 3/5 + 4/6
-
✓ Branch 0 taken 2615 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 836 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1779 times.
+
✓ Branch 1 taken 2615 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1215 times.
+
✓ Branch 4 taken 836 times.
+
✓ Branch 5 taken 564 times.
+
✗ Branch 6 not taken.
2615 switch (EXTENDED_TYPE_MAP.at(type)) { switch (EXTENDED_TYPE_MAP.at(type)) {
162 case ExtendedType::BOOLEAN:1215 case ExtendedType::BOOLEAN:
163 case ExtendedType::INTEGER:1215 case ExtendedType::INTEGER:
164 case ExtendedType::NUMBER:1215 case ExtendedType::NUMBER:
165 case ExtendedType::STRING:1215 case ExtendedType::STRING:
166
- 4/6 + 3/6
-
✓ Branch 0 taken 1215 times.
-
✓ Branch 1 taken 564 times.
-
✓ Branch 2 taken 1215 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1215 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1215 times.
✗ Branch 5 not taken.
+
✓ Branch 7 taken 1215 times.
+
✗ Branch 8 not taken.
1779 return new PrimitiveDeserializer(param_name, start, skip_name, PRIMITIVE_TYPE_MAP.at(type));1215 return new PrimitiveDeserializer(param_name, start, skip_name, PRIMITIVE_TYPE_MAP.at(type));
167 case ExtendedType::ARRAY: {836 case ExtendedType::ARRAY: {
168
- 6/12 + 2/4
-
✓ Branch 0 taken 836 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 836 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 836 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 836 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 836 times.
-
✗ Branch 9 not taken.
-
✓ Branch 10 taken 836 times.
-
✗ Branch 11 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 836 times.
836 if (param_val["schema"].HasMember("items") && param_val["schema"]["items"].HasMember("type")) {1672 if (param_val["schema"].HasMember("items") && param_val["schema"]["items"].HasMember("type")) {
169
- 5/10 + 2/6
-
✓ Branch 0 taken 836 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 836 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 836 times.
-
✗ Branch 5 not taken.
+
✓ Branch 3 taken 836 times.
+
✗ Branch 4 not taken.
✓ Branch 6 taken 836 times.
✗ Branch 7 not taken.
-
✓ Branch 8 taken 836 times.
+
✗ Branch 8 not taken.
✗ Branch 9 not taken.
836 auto items_type_s(std::string(param_val["schema"]["items"]["type"].GetString()));1672 auto items_type_s(std::string(param_val["schema"]["items"]["type"].GetString()));
170 try {836 try {
171
1/2
-
✗ Branch 0 not taken.
✓ Branch 1 taken 836 times.
+
✗ Branch 2 not taken.
836 auto items_type = PRIMITIVE_TYPE_MAP.at(items_type_s); auto items_type = PRIMITIVE_TYPE_MAP.at(items_type_s);
172 +
+ 2/2 +
+
✓ Branch 0 taken 438 times.
+
✓ Branch 1 taken 398 times.
+
+
836 auto separator = GetArrayItemsSeparator(param_style, explode); auto separator = GetArrayItemsSeparator(param_style, explode);
173 +
+ 2/2 +
+
✓ Branch 0 taken 438 times.
+
✓ Branch 1 taken 398 times.
+
+
836 auto has_running_name = HasArrayRunningName(param_style, explode); auto has_running_name = HasArrayRunningName(param_style, explode);
174 836 bool has_20_separator(ParamStyle::SPACE_DELIM == param_style && !explode); bool has_20_separator(ParamStyle::SPACE_DELIM == param_style && !explode);
175
- 2/4 + 3/6
-
✗ Branch 0 not taken.
✓ Branch 1 taken 836 times.
-
✓ Branch 2 taken 836 times.
-
✗ Branch 3 not taken.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 836 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 836 times.
836 return new ArrayDeserializer(param_name, start, skip_name, items_type, separator, has_running_name, has_20_separator); return new ArrayDeserializer(param_name, start, skip_name, items_type, separator, has_running_name, has_20_separator);
176 } catch (const std::out_of_range&) { } catch (const std::out_of_range&) {
177 throw ValidatorInitExc("Type '" + items_type_s + "' of items of array parameter '" + JoinReference(ref_keys) + "' is not supported"); throw ValidatorInitExc("Type '" + items_type_s + "' of items of array parameter '" + JoinReference(ref_keys) + "' is not supported");
178 } }
179 -
- 2/2 -
-
✓ Branch 0 taken 564 times.
-
✓ Branch 1 taken 272 times.
-
-
836 } else { } else {
180 throw ValidatorInitExc("Array parameter '" + JoinReference(ref_keys) + "' does not have type of items"); throw ValidatorInitExc("Array parameter '" + JoinReference(ref_keys) + "' does not have type of items");
181 } }
182 } }
183 case ExtendedType::OBJECT: {564 case ExtendedType::OBJECT: {
184 +
+ 2/2 +
+
✓ Branch 0 taken 245 times.
+
✓ Branch 1 taken 319 times.
+
+
564 auto kv_separator = GetObjKVSep(explode); auto kv_separator = GetObjKVSep(explode);
185 +
+ 2/2 +
+
✓ Branch 0 taken 245 times.
+
✓ Branch 1 taken 319 times.
+
+
564 auto vk_separator = GetObjVKSep(param_style, explode); auto vk_separator = GetObjVKSep(param_style, explode);
186 564 auto is_deep_obj(ParamStyle::DEEP_OBJ == param_style); auto is_deep_obj(ParamStyle::DEEP_OBJ == param_style);
187
1/2
-
✗ Branch 0 not taken.
✓ Branch 1 taken 564 times.
+
✗ Branch 2 not taken.
564 auto kt_map = GetKTMap(param_val, ref_keys); auto kt_map = GetKTMap(param_val, ref_keys);
188
2/4
-
✗ Branch 0 not taken.
✓ Branch 1 taken 564 times.
-
✓ Branch 2 taken 564 times.
-
✗ Branch 3 not taken.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 564 times.
+
✗ Branch 5 not taken.
564 return new ObjectDeserializer(param_name, start, skip_name, kv_separator, vk_separator, is_deep_obj, kt_map); return new ObjectDeserializer(param_name, start, skip_name, kv_separator, vk_separator, is_deep_obj, kt_map);
189 564 } }
190 } }
191
- 3/4 + 1/2
-
✓ Branch 0 taken 2051 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 12 times.
-
✓ Branch 3 taken 552 times.
+
✓ Branch 1 taken 168 times.
+
✗ Branch 2 not taken.
2615 } else if (param_val.HasMember("content")) {2783 } else if (param_val.HasMember("content")) {
192 12 auto skip_name = HasNameAtStart(in, ParamStyle::CONTENT, explode, ExtendedType::OBJECT);168 auto skip_name = HasNameAtStart(in, ParamStyle::CONTENT, explode, ExtendedType::OBJECT);
193
2/4
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 12 times.
+
✓ Branch 1 taken 168 times.
✗ Branch 2 not taken.
-
✓ Branch 3 taken 12 times.
+
✓ Branch 4 taken 168 times.
+
✗ Branch 5 not taken.
12 return new ContentDeserializer(param_name, start, skip_name);168 return new ContentDeserializer(param_name, start, skip_name);
194 } }
195 throw ValidatorInitExc("Invalid type of parameter: " + JoinReference(ref_keys)); throw ValidatorInitExc("Invalid type of parameter: " + JoinReference(ref_keys));
196 +
+ 2/2 +
+
✓ Branch 0 taken 144 times.
+
✓ Branch 1 taken 2639 times.
+
+
6143}2927}
197 @@ -2103,6 +1955,7 @@

GCC Code Coverage Report

} // namespace
198 @@ -2110,62 +1963,70 @@

GCC Code Coverage Report

199 2783ParamValidator::ParamValidator(const ParamInfo& param_info, const std::vector<std::string>& ref_keys, ValidationError err_code)ParamValidator::ParamValidator(const ParamInfo& param_info, const std::vector<std::string>& ref_keys, ValidationError err_code)
200 2783 : JsonValidator(param_info.schema, ref_keys, err_code) : JsonValidator(param_info.schema, ref_keys, err_code)
201 -
- 1/2 -
-
✓ Branch 0 taken 2783 times.
-
✗ Branch 1 not taken.
-
-
2783 , name_(param_info.name)5566 , name_(param_info.name)
202 2783 , required_(param_info.required) , required_(param_info.required)
203 +
+ 1/2 +
+
✓ Branch 2 taken 2783 times.
+
✗ Branch 3 not taken.
+
+
2783 , deserializer_(param_info.deserializer) , deserializer_(param_info.deserializer)
204 5566{{
205 2783}}
206 @@ -2173,55 +2034,63 @@

GCC Code Coverage Report

207 42567535ValidationError ParamValidator::ValidateParam(const char* beg, const char* end, std::string& error_msg)135752250ValidationError ParamValidator::ValidateParam(const char* beg, const char* end, std::string& error_msg)
208 {{
209 try {135752250 try {
210
2/2
-
✓ Branch 0 taken 36427280 times.
-
✓ Branch 1 taken 6140255 times.
+
✓ Branch 1 taken 115060148 times.
+
✓ Branch 2 taken 20692102 times.
42567535 auto ret = deserializer_->Deserialize(beg, end);135752250 auto ret = deserializer_->Deserialize(beg, end);
211
- 1/2 + 3/4
-
✓ Branch 0 taken 36427280 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 115060148 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 10072195 times.
+
✓ Branch 4 taken 104987953 times.
36427280 return JsonValidator::ValidateJson(ret, error_msg);115060148 return JsonValidator::ValidateJson(ret, error_msg);
212 @@ -2229,57 +2098,59 @@

GCC Code Coverage Report

1/2
✗ Branch 0 not taken.
-
✓ Branch 1 taken 6140255 times.
+
✓ Branch 1 taken 20692102 times.
42567535 } catch (const DeserializationException& exc) {135752250 } catch (const DeserializationException& exc) {
213
- 2/4 + 5/8
-
✓ Branch 0 taken 6140255 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 6140255 times.
+
✓ Branch 2 taken 20692102 times.
✗ Branch 3 not taken.
+
✓ Branch 5 taken 20692102 times.
+
✗ Branch 6 not taken.
+
✓ Branch 8 taken 20691969 times.
+
✓ Branch 9 taken 133 times.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 20692102 times.
6140255 error_msg = err_header_ + exc.what() + "}}";41384071 error_msg = err_header_ + exc.what() + "}}";
214 6140255 return code_on_error_;20692102 return code_on_error_;
215 -
- 0/2 -
-
✗ Branch 0 not taken.
-
✗ Branch 1 not taken.
-
-
6140255 }20692102 }
216 48707790}}
217 @@ -2287,34 +2158,39 @@

GCC Code Coverage Report

218 bool ParamValidator::IsRequired() constbool ParamValidator::IsRequired() const
219 {{
220 return required_; return required_;
221 }}
222 @@ -2322,41 +2198,47 @@

GCC Code Coverage Report

223 ValidationError ParamValidator::ErrorOnMissing(std::string& error_msg) constValidationError ParamValidator::ErrorOnMissing(std::string& error_msg) const
224 {{
225 error_msg = err_header_ + R"("description":"Missing required parameter ')" + name_ + R"('"}})"; error_msg = err_header_ + R"("description":"Missing required parameter ')" + name_ + R"('"}})";
226 return code_on_error_; return code_on_error_;
227 }}
228 @@ -2364,52 +2246,61 @@

GCC Code Coverage Report

229 2783ParamValidator::ParamInfo ParamValidator::GetParamInfo(const rapidjson::Value& param_val, const std::string& default_style, bool default_explode, bool default_required,ParamValidator::ParamInfo ParamValidator::GetParamInfo(const rapidjson::Value& param_val, const std::string& default_style, bool default_explode, bool default_required,
230 const std::vector<std::string>& ref_keys) const std::vector<std::string>& ref_keys)
231 {{
232 +
+ 2/2 +
+
✓ Branch 1 taken 2423 times.
+
✓ Branch 2 taken 360 times.
+
+
2783 std::string name(param_val["name"].GetString());5566 std::string name(param_val["name"].GetString());
233
- 4/6 + 2/2
-
✓ Branch 0 taken 2783 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2495 times.
-
✓ Branch 3 taken 288 times.
-
✓ Branch 4 taken 2495 times.
-
✗ Branch 5 not taken.
+
✓ Branch 1 taken 2495 times.
+
✓ Branch 2 taken 288 times.
2783 auto required(param_val.HasMember("required") ? param_val["required"].GetBool() : default_required);5278 auto required(param_val.HasMember("required") ? param_val["required"].GetBool() : default_required);
234 @@ -2417,116 +2308,107 @@

GCC Code Coverage Report

235
- 3/4 + 2/2
-
✓ Branch 0 taken 2783 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2615 times.
-
✓ Branch 3 taken 168 times.
+
✓ Branch 1 taken 2615 times.
+
✓ Branch 2 taken 168 times.
2783 if (param_val.HasMember("schema")) { if (param_val.HasMember("schema")) {
236
- 3/6 + 2/4
-
✓ Branch 0 taken 2615 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2615 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 2615 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 2615 times.
✗ Branch 5 not taken.
2615 return {name, required, GetDeserializer(param_val, default_style, default_explode, ref_keys), param_val["schema"]};5230 return {name, required, GetDeserializer(param_val, default_style, default_explode, ref_keys), param_val["schema"]};
237
- 7/14 + 3/6
-
✓ Branch 0 taken 168 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 168 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 168 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 168 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 168 times.
-
✗ Branch 7 not taken.
✓ Branch 8 taken 168 times.
✗ Branch 9 not taken.
-
✓ Branch 10 taken 168 times.
-
✗ Branch 11 not taken.
-
✓ Branch 12 taken 168 times.
-
✗ Branch 13 not taken.
168 } else if (param_val.HasMember("content") && param_val["content"].HasMember("application/json") && param_val["content"]["application/json"].HasMember("schema")) {504 } else if (param_val.HasMember("content") && param_val["content"].HasMember("application/json") && param_val["content"]["application/json"].HasMember("schema")) {
238
- 5/10 + 2/4
-
✓ Branch 0 taken 168 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 168 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 168 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 168 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 168 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 168 times.
-
✗ Branch 9 not taken.
168 return {name, required, GetDeserializer(param_val, default_style, default_explode, ref_keys), param_val["content"]["application/json"]["schema"]};336 return {name, required, GetDeserializer(param_val, default_style, default_explode, ref_keys), param_val["content"]["application/json"]["schema"]};
239 } else { } else {
240 throw ValidatorInitExc("Cannot generate deserializer for parameter: " + JoinReference(ref_keys)); throw ValidatorInitExc("Cannot generate deserializer for parameter: " + JoinReference(ref_keys));
241 } }
242 2783}}
243 @@ -2534,43 +2416,52 @@

GCC Code Coverage Report

244 1838PathParamValidator::PathParamValidator(const rapidjson::Value& param_val, const std::vector<std::string>& ref_keys)919PathParamValidator::PathParamValidator(const rapidjson::Value& param_val, const std::vector<std::string>& ref_keys)
245
- 2/4 + 3/8
-
✓ Branch 0 taken 919 times.
-
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
-
✓ Branch 3 taken 919 times.
+
✓ Branch 2 taken 919 times.
+
✗ Branch 3 not taken.
+
✓ Branch 5 taken 919 times.
+
✗ Branch 6 not taken.
+
✗ Branch 7 not taken.
+
✓ Branch 8 taken 919 times.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
919 : ParamValidator(ParamValidator::GetParamInfo(param_val, "simple", false, true, ref_keys), ref_keys, ValidationError::INVALID_PATH_PARAM)1838 : ParamValidator(ParamValidator::GetParamInfo(param_val, "simple", false, true, ref_keys), ref_keys, ValidationError::INVALID_PATH_PARAM)
246 2757{{
247 1838}919}
248 @@ -2578,61 +2469,69 @@

GCC Code Coverage Report

249 2128QueryParamValidator::QueryParamValidator(const rapidjson::Value& param_val, const std::vector<std::string>& ref_keys)1064QueryParamValidator::QueryParamValidator(const rapidjson::Value& param_val, const std::vector<std::string>& ref_keys)
250
- 2/4 + 2/6
-
✓ Branch 0 taken 1064 times.
-
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
-
✓ Branch 3 taken 1064 times.
+
✓ Branch 2 taken 1064 times.
+
✗ Branch 3 not taken.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 1064 times.
+
✗ Branch 6 not taken.
+
✗ Branch 7 not taken.
1064 : ParamValidator(ParamValidator::GetParamInfo(param_val, "form", true, false, ref_keys), ref_keys, ValidationError::INVALID_QUERY_PARAM)2128 : ParamValidator(ParamValidator::GetParamInfo(param_val, "form", true, false, ref_keys), ref_keys, ValidationError::INVALID_QUERY_PARAM)
251
2/6
-
✓ Branch 0 taken 1064 times.
-
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
-
✓ Branch 3 taken 1064 times.
-
✗ Branch 4 not taken.
+
✓ Branch 2 taken 1064 times.
+
✗ Branch 3 not taken.
✗ Branch 5 not taken.
+
✓ Branch 6 taken 1064 times.
+
✗ Branch 7 not taken.
+
✗ Branch 8 not taken.
1064 , empty_allowed_(param_val.HasMember("allowEmptyValue") && param_val["allowEmptyValue"].GetBool())3192 , empty_allowed_(param_val.HasMember("allowEmptyValue") && param_val["allowEmptyValue"].GetBool())
252 3192{{
253 2128}1064}
254 @@ -2640,34 +2539,39 @@

GCC Code Coverage Report

255 bool QueryParamValidator::IsEmptyAllowed() constbool QueryParamValidator::IsEmptyAllowed() const
256 {{
257 return empty_allowed_; return empty_allowed_;
258 }}
259 @@ -2675,43 +2579,52 @@

GCC Code Coverage Report

260 1600HeaderParamValidator::HeaderParamValidator(const rapidjson::Value& param_val, const std::vector<std::string>& ref_keys)800HeaderParamValidator::HeaderParamValidator(const rapidjson::Value& param_val, const std::vector<std::string>& ref_keys)
261
- 2/4 + 3/8
-
✓ Branch 0 taken 800 times.
-
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
-
✓ Branch 3 taken 800 times.
+
✓ Branch 2 taken 800 times.
+
✗ Branch 3 not taken.
+
✓ Branch 5 taken 800 times.
+
✗ Branch 6 not taken.
+
✗ Branch 7 not taken.
+
✓ Branch 8 taken 800 times.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
800 : ParamValidator(ParamValidator::GetParamInfo(param_val, "simple", false, false, ref_keys), ref_keys, ValidationError::INVALID_HEADER_PARAM)1600 : ParamValidator(ParamValidator::GetParamInfo(param_val, "simple", false, false, ref_keys), ref_keys, ValidationError::INVALID_HEADER_PARAM)
262 2400{{
263 1600}800}
264 @@ -2719,13 +2632,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.param_validators.hpp.9e6a761189c68ef54b1690c025bc79cd.html b/covhtml-oasvalidator/index.param_validators.hpp.9e6a761189c68ef54b1690c025bc79cd.html index e4a3854..9962343 100644 --- a/covhtml-oasvalidator/index.param_validators.hpp.9e6a761189c68ef54b1690c025bc79cd.html +++ b/covhtml-oasvalidator/index.param_validators.hpp.9e6a761189c68ef54b1690c025bc79cd.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,99 +40,22 @@

GCC Code Coverage Report

Lines: - 4 - 4 - 100.0% - - - Functions: 5 5 100.0% Branches: - 0 - 0 - -% + 8 + 20 + 40.0%
-
- -
-
- - +
-
@@ -142,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + + + + - + + - + + - + + - + + - + + + - + + - + + - + + - - +
+ 7/18 +
+
✓ Branch 0 taken 144 times.
+
✓ Branch 1 taken 656 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 800 times.
+
✗ Branch 4 not taken.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 1064 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 1064 times.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✓ Branch 13 taken 919 times.
+
✗ Branch 14 not taken.
+
✓ Branch 15 taken 919 times.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
+
+ + + + - + + - + + - + + - + + - + + - + + + - + + - + + + - + + - + + - + + - - + + + + - + + - + + - + + + - + + - + + - + + - + + - + + + - + + - + + - + + - + + - - + + + - + + + - + + - + + - + + - + + - + + - - + + + + - + + - + + - + + + - + + - + + - + + - + + - - + + + - + + + +
Exec Source
1 @@ -149,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -156,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -163,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -177,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -184,6 +113,7 @@

GCC Code Coverage Report

7 @@ -191,6 +121,7 @@

GCC Code Coverage Report

#ifndef PARAM_VALIDATOR_HPP
8 @@ -198,6 +129,7 @@

GCC Code Coverage Report

#define PARAM_VALIDATOR_HPP
9 @@ -205,41 +137,47 @@

GCC Code Coverage Report

10 #include "deserializers/base_deserializer.hpp"#include "deserializers/base_deserializer.hpp"
11 #include "validators/json_validator.hpp"#include "validators/json_validator.hpp"
12 #include <rapidjson/schema.h>#include <rapidjson/schema.h>
13 #include <unordered_map>#include <unordered_map>
14 #include <utility>#include <utility>
15 @@ -247,76 +185,110 @@

GCC Code Coverage Report

16 class ParamValidator: public JsonValidatorclass ParamValidator: public JsonValidator
17 {{
18 private:private:
19 - struct ParamInfo2927 struct ParamInfo
20 { {
21 std::string name; std::string name;
22 bool required; bool required;
23 BaseDeserializer* deserializer; BaseDeserializer* deserializer;
24 const rapidjson::Value& schema; const rapidjson::Value& schema;
25 }; };
26 @@ -324,20 +296,23 @@

GCC Code Coverage Report

27 public:public:
28 ParamValidator(const ParamInfo& param_info, const std::vector<std::string>& ref_keys, ValidationError err_code); ParamValidator(const ParamInfo& param_info, const std::vector<std::string>& ref_keys, ValidationError err_code);
29 @@ -345,34 +320,46 @@

GCC Code Coverage Report

30 ValidationError ValidateParam(const char* beg, const char* end, std::string& error_msg); ValidationError ValidateParam(const char* beg, const char* end, std::string& error_msg);
31 bool IsRequired() const; bool IsRequired() const;
32 ValidationError ErrorOnMissing(std::string& error_msg) const; ValidationError ErrorOnMissing(std::string& error_msg) const;
33 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1151 times.
+
+
1151 ~ParamValidator() override = default;2302 ~ParamValidator() override = default;
34 @@ -380,27 +367,31 @@

GCC Code Coverage Report

35 protected:protected:
36 static ParamInfo GetParamInfo(const rapidjson::Value& param_val, const std::string& default_style, bool default_explode, bool default_required, static ParamInfo GetParamInfo(const rapidjson::Value& param_val, const std::string& default_style, bool default_explode, bool default_required,
37 const std::vector<std::string>& ref_keys); const std::vector<std::string>& ref_keys);
38 @@ -408,41 +399,47 @@

GCC Code Coverage Report

39 private:private:
40 const std::string name_; const std::string name_;
41 const bool required_; const bool required_;
42 BaseDeserializer* deserializer_; BaseDeserializer* deserializer_;
43 };};
44 @@ -450,48 +447,55 @@

GCC Code Coverage Report

45 class PathParamValidator final: public ParamValidatorclass PathParamValidator final: public ParamValidator
46 {{
47 public:public:
48 explicit PathParamValidator(const rapidjson::Value& param_val, const std::vector<std::string>& keys); explicit PathParamValidator(const rapidjson::Value& param_val, const std::vector<std::string>& keys);
49 158 ~PathParamValidator() override = default;79 ~PathParamValidator() override = default;
50 };};
51 @@ -499,48 +503,55 @@

GCC Code Coverage Report

52 class QueryParamValidator final: public ParamValidatorclass QueryParamValidator final: public ParamValidator
53 {{
54 public:public:
55 explicit QueryParamValidator(const rapidjson::Value& param_val, const std::vector<std::string>& keys); explicit QueryParamValidator(const rapidjson::Value& param_val, const std::vector<std::string>& keys);
56 bool IsEmptyAllowed() const; bool IsEmptyAllowed() const;
57 2128 ~QueryParamValidator() override = default;1064 ~QueryParamValidator() override = default;
58 @@ -548,27 +559,31 @@

GCC Code Coverage Report

59 private:private:
60 bool empty_allowed_; bool empty_allowed_;
61 };};
62 @@ -576,48 +591,55 @@

GCC Code Coverage Report

63 class HeaderParamValidator final: public ParamValidatorclass HeaderParamValidator final: public ParamValidator
64 {{
65 public:public:
66 explicit HeaderParamValidator(const rapidjson::Value& param_val, const std::vector<std::string>& keys); explicit HeaderParamValidator(const rapidjson::Value& param_val, const std::vector<std::string>& keys);
67 16 ~HeaderParamValidator() override = default;8 ~HeaderParamValidator() override = default;
68 };};
69 @@ -625,6 +647,7 @@

GCC Code Coverage Report

#endif // PARAM_VALIDATOR_HPP
70 @@ -632,13 +655,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.path_param_validators.cpp.39bfe9356b9cc6be8b977c2189b79a83.html b/covhtml-oasvalidator/index.path_param_validators.cpp.39bfe9356b9cc6be8b977c2189b79a83.html index e69e4c2..8aef05c 100644 --- a/covhtml-oasvalidator/index.path_param_validators.cpp.39bfe9356b9cc6be8b977c2189b79a83.html +++ b/covhtml-oasvalidator/index.path_param_validators.cpp.39bfe9356b9cc6be8b977c2189b79a83.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,341 +40,22 @@

GCC Code Coverage Report

Lines: - 87 - 87 - 100.0% - - - Functions: - 27 - 27 + 79 + 79 100.0% Branches: - 99 - 264 - 37.5% + 130 + 428 + 30.4%
-
- -
-
- - +
-
@@ -384,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + - + + - + + + - + + - + + - + + - + + - + + - + + - + + - + + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - + + + + + - - + + + + - - + + + + + - - + + + + + - + + - + + + - + + - + + + - + + - + + - + + - - + + + - + + - + + - + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - + + + + + - - + + + + - - + + + + + + + - - + + + + + + - + + - + + + - + + - + + + - + + - + + - + + - - + + + - + + - + + - + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - + + + + + - - + + + + - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + - + + - + + + - + + - + + - + + - - + + + - + + - + + - + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + +
Exec Source
1 @@ -391,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -398,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -405,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -419,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -426,27 +113,31 @@

GCC Code Coverage Report

7 #include "validators/param_validators.hpp"#include "validators/param_validators.hpp"
8 #include <gtest/gtest.h>#include <gtest/gtest.h>
9 #include <tuple>#include <tuple>
10 @@ -454,62 +145,71 @@

GCC Code Coverage Report

11 enum : size_tenum : size_t
12 {{
13 INPUT, INPUT,
14 STYLE, STYLE,
15 EXPLODE, EXPLODE,
16 TYPE, TYPE,
17 EXPECTED_ERROR EXPECTED_ERROR
18 };};
19 @@ -517,6 +217,7 @@

GCC Code Coverage Report

20 @@ -524,106 +225,136 @@

GCC Code Coverage Report

// Create a parameterized fixture class using the struct
21 36class PathPrimitiveParam: public ::testing::TestWithParam<std::tuple<std::string, std::string, bool, std::string, ValidationError>>class PathPrimitiveParam: public ::testing::TestWithParam<std::tuple<std::string, std::string, bool, std::string, ValidationError>>
22 {{
23 protected:protected:
24 36 void SetUp() override void SetUp() override
25 { {
26 36 auto params = GetParam(); auto params = GetParam();
27
- 2/4 + 4/8
-
✓ Branch 0 taken 36 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 36 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 36 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 36 times.
+
✗ Branch 5 not taken.
+
✗ Branch 7 not taken.
+
✓ Branch 8 taken 36 times.
+
✗ Branch 9 not taken.
+
✓ Branch 10 taken 36 times.
36 input_ = "/pets/" + std::get<INPUT>(params) + "/xyz"; input_ = "/pets/" + std::get<INPUT>(params) + "/xyz";
28
1/2
-
✓ Branch 0 taken 36 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 36 times.
+
✗ Branch 2 not taken.
36 std::string style = std::get<STYLE>(params); std::string style = std::get<STYLE>(params);
29 +
+ 1/2 +
+
✓ Branch 1 taken 36 times.
+
✗ Branch 2 not taken.
+
+
36 bool explode = std::get<EXPLODE>(params); bool explode = std::get<EXPLODE>(params);
30
1/2
-
✓ Branch 0 taken 36 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 36 times.
+
✗ Branch 2 not taken.
36 std::string type = std::get<TYPE>(params); std::string type = std::get<TYPE>(params);
31 +
+ 2/2 +
+
✓ Branch 0 taken 22 times.
+
✓ Branch 1 taken 14 times.
+
+
36 expected_error_ = std::get<EXPECTED_ERROR>(params); expected_error_ = std::get<EXPECTED_ERROR>(params);
32 @@ -631,13 +362,15 @@

GCC Code Coverage Report

33 7236 std::string json = R"({
34 @@ -645,6 +378,7 @@

GCC Code Coverage Report

"name": "param",
35 @@ -652,6 +386,7 @@

GCC Code Coverage Report

"in": "path",
36 @@ -659,22 +394,30 @@

GCC Code Coverage Report

"required": true,
37
- 2/4 + 3/10
-
✓ Branch 0 taken 36 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 36 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 36 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 36 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 36 times.
+
✗ Branch 8 not taken.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
36 "style": ")" + style +72 "style": ")" + style +
38 @@ -682,22 +425,34 @@

GCC Code Coverage Report

R"(",
39
- 2/4 + 6/14
-
✓ Branch 0 taken 36 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 36 times.
-
✗ Branch 3 not taken.
+
✓ Branch 0 taken 22 times.
+
✓ Branch 1 taken 14 times.
+
✓ Branch 3 taken 36 times.
+
✗ Branch 4 not taken.
+
✓ Branch 6 taken 36 times.
+
✗ Branch 7 not taken.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 36 times.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 36 times.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
+
✗ Branch 15 not taken.
36 "explode": )" + (explode ? "true" : "false") +108 "explode": )" + (explode ? "true" : "false") +
40 @@ -705,6 +460,7 @@

GCC Code Coverage Report

R"(,
41 @@ -712,34 +468,41 @@

GCC Code Coverage Report

"schema": {
42
- 1/2 + 2/6
-
✓ Branch 0 taken 36 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 36 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 36 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
36 "type": ")" +72 "type": ")" +
43
1/2
-
✓ Branch 0 taken 36 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 36 times.
+
✗ Branch 2 not taken.
36 type + R"("
44 @@ -747,27 +510,30 @@

GCC Code Coverage Report

}
45 })"; })";
46
1/2
-
✓ Branch 0 taken 36 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 36 times.
+
✗ Branch 2 not taken.
36 doc_.Parse(json.c_str()); doc_.Parse(json.c_str());
47 @@ -775,27 +541,45 @@

GCC Code Coverage Report

48
- 1/2 + 4/8
-
✗ Branch 0 not taken.
✓ Branch 1 taken 36 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 36 times.
+
✗ Branch 5 not taken.
+
✓ Branch 6 taken 36 times.
+
✓ Branch 7 taken 36 times.
+
✗ Branch 8 not taken.
36 validator_ = std::make_unique<PathParamValidator>(doc_, keys_); validator_ = std::make_unique<PathParamValidator>(doc_, keys_);
49 +
+ 2/4 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 36 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 36 times.
+
+
36 } }
50 @@ -803,72 +587,63 @@

GCC Code Coverage Report

51 std::unique_ptr<PathParamValidator> validator_; std::unique_ptr<PathParamValidator> validator_;
52 std::string input_; std::string input_;
53 rapidjson::Document doc_; rapidjson::Document doc_;
54 -
- 6/12 -
-
✓ Branch 0 taken 36 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 36 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 36 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 36 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 36 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
-
✓ Branch 11 taken 36 times.
-
-
36 std::vector<std::string> keys_{"paths", "/pets/{param}/xyz", "get", "parameters", "param"}; std::vector<std::string> keys_{"paths", "/pets/{param}/xyz", "get", "parameters", "param"};
55 std::string error_msg_; std::string error_msg_;
56 ValidationError expected_error_; ValidationError expected_error_;
57 };};
58 @@ -876,173 +651,235 @@

GCC Code Coverage Report

59
- 5/10 + 8/22
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 36 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
+
✗ Branch 11 not taken.
+
✓ Branch 13 taken 1 times.
+
✗ Branch 14 not taken.
+
✓ Branch 15 taken 1 times.
+
✗ Branch 16 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 18 not taken.
+
✓ Branch 19 taken 1 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
110TEST_P(PathPrimitiveParam, ValidateParam)122TEST_P(PathPrimitiveParam, ValidateParam)
60 {{
61 +
+ 1/2 +
+
✗ Branch 1 not taken.
+
✓ Branch 2 taken 36 times.
+
+
36 const char* beg = input_.c_str() + std::string("/pets/").size();72 const char* beg = input_.c_str() + std::string("/pets/").size();
62 +
+ 1/2 +
+
✗ Branch 1 not taken.
+
✓ Branch 2 taken 36 times.
+
+
36 const char* end = input_.c_str() + input_.size() - std::string("/xyz").size();72 const char* end = input_.c_str() + input_.size() - std::string("/xyz").size();
63 36 auto result = validator_->ValidateParam(beg, end, error_msg_);72 auto result = validator_->ValidateParam(beg, end, error_msg_);
64
- 1/10 + 1/14
-
✓ Branch 0 taken 36 times.
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
-
✗ Branch 3 not taken.
+
✓ Branch 2 taken 36 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
-
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
36 EXPECT_EQ(result, expected_error_);72 EXPECT_EQ(result, expected_error_);
65
2/2
-
✓ Branch 0 taken 28 times.
-
✓ Branch 1 taken 8 times.
+
✓ Branch 0 taken 8 times.
+
✓ Branch 1 taken 28 times.
36 if (result != ValidationError::NONE) {72 if (result != ValidationError::NONE) {
66
- 1/10 + 1/20
-
✓ Branch 0 taken 8 times.
-
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 8 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
8 EXPECT_FALSE(error_msg_.empty());16 EXPECT_FALSE(error_msg_.empty());
67 8 rapidjson::Document doc;16 rapidjson::Document doc;
68
1/2
-
✓ Branch 0 taken 8 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 8 times.
+
✗ Branch 2 not taken.
8 doc.Parse(error_msg_.c_str());16 doc.Parse(error_msg_.c_str());
69
- 2/12 + 1/20
-
✓ Branch 0 taken 8 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 8 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 8 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
8 EXPECT_FALSE(doc.HasParseError());32 EXPECT_FALSE(doc.HasParseError());
70 8 } }
71 36}72}
72 @@ -1050,187 +887,206 @@

GCC Code Coverage Report

73
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
-
✓ Branch 7 taken 1 times.
+
✓ Branch 2 taken 36 times.
38INSTANTIATE_TEST_CASE_P(74INSTANTIATE_TEST_CASE_P(
74 PathParamValidatorTests, PathPrimitiveParam, PathParamValidatorTests, PathPrimitiveParam,
75 ::testing::Values( ::testing::Values(
76 std::make_tuple("true", "simple", false, "boolean", ValidationError::NONE), std::make_tuple("true", "simple", true, "boolean", ValidationError::NONE), std::make_tuple("true", "simple", false, "boolean", ValidationError::NONE), std::make_tuple("true", "simple", true, "boolean", ValidationError::NONE),
77 std::make_tuple("false", "simple", false, "boolean", ValidationError::NONE), std::make_tuple("false", "simple", true, "boolean", ValidationError::NONE), std::make_tuple("false", "simple", false, "boolean", ValidationError::NONE), std::make_tuple("false", "simple", true, "boolean", ValidationError::NONE),
78 std::make_tuple("123", "simple", false, "boolean", ValidationError::INVALID_PATH_PARAM), std::make_tuple("123", "simple", false, "integer", ValidationError::NONE), std::make_tuple("123", "simple", false, "boolean", ValidationError::INVALID_PATH_PARAM), std::make_tuple("123", "simple", false, "integer", ValidationError::NONE),
79 std::make_tuple("123", "simple", true, "integer", ValidationError::NONE), std::make_tuple("123.0", "simple", false, "integer", ValidationError::INVALID_PATH_PARAM), std::make_tuple("123", "simple", true, "integer", ValidationError::NONE), std::make_tuple("123.0", "simple", false, "integer", ValidationError::INVALID_PATH_PARAM),
80 std::make_tuple("123.0", "simple", false, "number", ValidationError::NONE), std::make_tuple("123.0", "simple", true, "number", ValidationError::NONE), std::make_tuple("123.0", "simple", false, "number", ValidationError::NONE), std::make_tuple("123.0", "simple", true, "number", ValidationError::NONE),
81 std::make_tuple("abc", "simple", false, "number", ValidationError::INVALID_PATH_PARAM), std::make_tuple("abc%20xyz", "simple", false, "string", ValidationError::NONE), std::make_tuple("abc", "simple", false, "number", ValidationError::INVALID_PATH_PARAM), std::make_tuple("abc%20xyz", "simple", false, "string", ValidationError::NONE),
82 std::make_tuple("abc%20xyz", "simple", true, "string", ValidationError::NONE), std::make_tuple(".true", "label", false, "boolean", ValidationError::NONE), std::make_tuple("abc%20xyz", "simple", true, "string", ValidationError::NONE), std::make_tuple(".true", "label", false, "boolean", ValidationError::NONE),
83 std::make_tuple(".true", "label", true, "boolean", ValidationError::NONE), std::make_tuple(".false", "label", false, "boolean", ValidationError::NONE), std::make_tuple(".true", "label", true, "boolean", ValidationError::NONE), std::make_tuple(".false", "label", false, "boolean", ValidationError::NONE),
84 std::make_tuple(".false", "label", true, "boolean", ValidationError::NONE), std::make_tuple(".123", "label", false, "boolean", ValidationError::INVALID_PATH_PARAM), std::make_tuple(".false", "label", true, "boolean", ValidationError::NONE), std::make_tuple(".123", "label", false, "boolean", ValidationError::INVALID_PATH_PARAM),
85 std::make_tuple(".123", "label", false, "integer", ValidationError::NONE), std::make_tuple(".123", "label", true, "integer", ValidationError::NONE), std::make_tuple(".123", "label", false, "integer", ValidationError::NONE), std::make_tuple(".123", "label", true, "integer", ValidationError::NONE),
86 std::make_tuple(".123.0", "label", false, "integer", ValidationError::INVALID_PATH_PARAM), std::make_tuple(".abc%20xyz", "label", false, "string", ValidationError::NONE), std::make_tuple(".123.0", "label", false, "integer", ValidationError::INVALID_PATH_PARAM), std::make_tuple(".abc%20xyz", "label", false, "string", ValidationError::NONE),
87 std::make_tuple(".abc%20xyz", "label", true, "string", ValidationError::NONE), std::make_tuple(";param=true", "matrix", false, "boolean", ValidationError::NONE), std::make_tuple(".abc%20xyz", "label", true, "string", ValidationError::NONE), std::make_tuple(";param=true", "matrix", false, "boolean", ValidationError::NONE),
88 std::make_tuple(";param=true", "matrix", true, "boolean", ValidationError::NONE), std::make_tuple(";param=false", "matrix", false, "boolean", ValidationError::NONE), std::make_tuple(";param=true", "matrix", true, "boolean", ValidationError::NONE), std::make_tuple(";param=false", "matrix", false, "boolean", ValidationError::NONE),
89 std::make_tuple(";param=false", "matrix", true, "boolean", ValidationError::NONE), std::make_tuple(";param=false", "matrix", true, "boolean", ValidationError::NONE),
90 std::make_tuple(";param=123", "matrix", false, "boolean", ValidationError::INVALID_PATH_PARAM), std::make_tuple(";param=123", "matrix", false, "boolean", ValidationError::INVALID_PATH_PARAM),
91 std::make_tuple(";param=123", "matrix", false, "integer", ValidationError::NONE), std::make_tuple(";param=123", "matrix", true, "integer", ValidationError::NONE), std::make_tuple(";param=123", "matrix", false, "integer", ValidationError::NONE), std::make_tuple(";param=123", "matrix", true, "integer", ValidationError::NONE),
92 std::make_tuple(";param=123.0", "matrix", false, "integer", ValidationError::INVALID_PATH_PARAM), std::make_tuple(";param=123.0", "matrix", false, "integer", ValidationError::INVALID_PATH_PARAM),
93 std::make_tuple(";param=123.0", "matrix", false, "number", ValidationError::NONE), std::make_tuple(";param=123.0", "matrix", true, "number", ValidationError::NONE), std::make_tuple(";param=123.0", "matrix", false, "number", ValidationError::NONE), std::make_tuple(";param=123.0", "matrix", true, "number", ValidationError::NONE),
94 std::make_tuple(";param=abc", "matrix", false, "number", ValidationError::INVALID_PATH_PARAM), std::make_tuple(";param=abc", "matrix", false, "number", ValidationError::INVALID_PATH_PARAM),
95 std::make_tuple(";param=abc%20xyz", "matrix", false, "string", ValidationError::NONE), std::make_tuple(";param=abc%20xyz", "matrix", false, "string", ValidationError::NONE),
96 std::make_tuple(";param=abc%20xyz", "matrix", true, "string", ValidationError::NONE))); std::make_tuple(";param=abc%20xyz", "matrix", true, "string", ValidationError::NONE)));
97 @@ -1238,106 +1094,136 @@

GCC Code Coverage Report

98 34class PathArrayParam: public ::testing::TestWithParam<std::tuple<std::string, std::string, bool, std::string, ValidationError>>class PathArrayParam: public ::testing::TestWithParam<std::tuple<std::string, std::string, bool, std::string, ValidationError>>
99 {{
100 protected:protected:
101 34 void SetUp() override void SetUp() override
102 { {
103 34 auto params = GetParam(); auto params = GetParam();
104
- 2/4 + 4/8
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 34 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 34 times.
+
✗ Branch 5 not taken.
+
✗ Branch 7 not taken.
+
✓ Branch 8 taken 34 times.
+
✗ Branch 9 not taken.
+
✓ Branch 10 taken 34 times.
34 input_ = "/pets/" + std::get<INPUT>(params) + "/xyz"; input_ = "/pets/" + std::get<INPUT>(params) + "/xyz";
105
1/2
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
34 std::string style = std::get<STYLE>(params); std::string style = std::get<STYLE>(params);
106 +
+ 1/2 +
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
+
+
34 bool explode = std::get<EXPLODE>(params); bool explode = std::get<EXPLODE>(params);
107
1/2
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
34 std::string type = std::get<TYPE>(params); std::string type = std::get<TYPE>(params);
108 +
+ 2/2 +
+
✓ Branch 0 taken 20 times.
+
✓ Branch 1 taken 14 times.
+
+
34 expected_error_ = std::get<EXPECTED_ERROR>(params); expected_error_ = std::get<EXPECTED_ERROR>(params);
109 @@ -1345,13 +1231,15 @@

GCC Code Coverage Report

110 6834 std::string json = R"({
111 @@ -1359,6 +1247,7 @@

GCC Code Coverage Report

"name": "param",
112 @@ -1366,6 +1255,7 @@

GCC Code Coverage Report

"in": "path",
113 @@ -1373,22 +1263,30 @@

GCC Code Coverage Report

"required": true,
114
- 2/4 + 3/10
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 34 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 34 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 34 times.
+
✗ Branch 8 not taken.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
34 "style": ")" + style +68 "style": ")" + style +
115 @@ -1396,22 +1294,34 @@

GCC Code Coverage Report

R"(",
116
- 2/4 + 6/14
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 34 times.
-
✗ Branch 3 not taken.
+
✓ Branch 0 taken 20 times.
+
✓ Branch 1 taken 14 times.
+
✓ Branch 3 taken 34 times.
+
✗ Branch 4 not taken.
+
✓ Branch 6 taken 34 times.
+
✗ Branch 7 not taken.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 34 times.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 34 times.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
+
✗ Branch 15 not taken.
34 "explode": )" + (explode ? "true" : "false") +102 "explode": )" + (explode ? "true" : "false") +
117 @@ -1419,6 +1329,7 @@

GCC Code Coverage Report

R"(,
118 @@ -1426,6 +1337,7 @@

GCC Code Coverage Report

"schema": {
119 @@ -1433,6 +1345,7 @@

GCC Code Coverage Report

"type": "array",
120 @@ -1440,34 +1353,41 @@

GCC Code Coverage Report

"items": {
121
- 1/2 + 2/6
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 34 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
34 "type": ")" +68 "type": ")" +
122
1/2
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
34 type + R"("
123 @@ -1475,6 +1395,7 @@

GCC Code Coverage Report

}
124 @@ -1482,27 +1403,30 @@

GCC Code Coverage Report

}
125 })"; })";
126
1/2
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
34 doc_.Parse(json.c_str()); doc_.Parse(json.c_str());
127 @@ -1510,27 +1434,45 @@

GCC Code Coverage Report

128
- 1/2 + 4/8
-
✗ Branch 0 not taken.
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 34 times.
+
✗ Branch 5 not taken.
+
✓ Branch 6 taken 34 times.
+
✓ Branch 7 taken 34 times.
+
✗ Branch 8 not taken.
34 validator_ = std::make_unique<PathParamValidator>(doc_, keys_); validator_ = std::make_unique<PathParamValidator>(doc_, keys_);
129 +
+ 2/4 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 34 times.
+
+
34 } }
130 @@ -1538,72 +1480,63 @@

GCC Code Coverage Report

131 std::unique_ptr<PathParamValidator> validator_; std::unique_ptr<PathParamValidator> validator_;
132 std::string input_; std::string input_;
133 rapidjson::Document doc_; rapidjson::Document doc_;
134 -
- 6/12 -
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 34 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 34 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 34 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 34 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
-
✓ Branch 11 taken 34 times.
-
-
34 std::vector<std::string> keys_{"paths", "/pets/{param}/xyz", "get", "parameters", "0"}; std::vector<std::string> keys_{"paths", "/pets/{param}/xyz", "get", "parameters", "0"};
135 std::string error_msg_; std::string error_msg_;
136 ValidationError expected_error_; ValidationError expected_error_;
137 };};
138 @@ -1611,173 +1544,235 @@

GCC Code Coverage Report

139
- 5/10 + 8/22
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
+
✗ Branch 11 not taken.
+
✓ Branch 13 taken 1 times.
+
✗ Branch 14 not taken.
+
✓ Branch 15 taken 1 times.
+
✗ Branch 16 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 18 not taken.
+
✓ Branch 19 taken 1 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
104TEST_P(PathArrayParam, ValidateParam)116TEST_P(PathArrayParam, ValidateParam)
140 {{
141 +
+ 1/2 +
+
✗ Branch 1 not taken.
+
✓ Branch 2 taken 34 times.
+
+
34 const char* beg = input_.c_str() + std::string("/pets/").size();68 const char* beg = input_.c_str() + std::string("/pets/").size();
142 +
+ 1/2 +
+
✗ Branch 1 not taken.
+
✓ Branch 2 taken 34 times.
+
+
34 const char* end = input_.c_str() + input_.size() - std::string("/xyz").size();68 const char* end = input_.c_str() + input_.size() - std::string("/xyz").size();
143 34 auto result = validator_->ValidateParam(beg, end, error_msg_);68 auto result = validator_->ValidateParam(beg, end, error_msg_);
144
- 1/10 + 1/14
-
✓ Branch 0 taken 34 times.
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
-
✗ Branch 3 not taken.
+
✓ Branch 2 taken 34 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
-
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
34 EXPECT_EQ(result, expected_error_);68 EXPECT_EQ(result, expected_error_);
145
2/2
-
✓ Branch 0 taken 26 times.
-
✓ Branch 1 taken 8 times.
+
✓ Branch 0 taken 8 times.
+
✓ Branch 1 taken 26 times.
34 if (result != ValidationError::NONE) {68 if (result != ValidationError::NONE) {
146
- 1/10 + 1/20
-
✓ Branch 0 taken 8 times.
-
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 8 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
8 EXPECT_FALSE(error_msg_.empty());16 EXPECT_FALSE(error_msg_.empty());
147 8 rapidjson::Document doc;16 rapidjson::Document doc;
148
1/2
-
✓ Branch 0 taken 8 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 8 times.
+
✗ Branch 2 not taken.
8 doc.Parse(error_msg_.c_str());16 doc.Parse(error_msg_.c_str());
149
- 2/12 + 1/20
-
✓ Branch 0 taken 8 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 8 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 8 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
8 EXPECT_FALSE(doc.HasParseError());32 EXPECT_FALSE(doc.HasParseError());
150 8 } }
151 34}68}
152 @@ -1785,229 +1780,254 @@

GCC Code Coverage Report

153
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
-
✓ Branch 7 taken 1 times.
+
✓ Branch 2 taken 34 times.
36INSTANTIATE_TEST_CASE_P(70INSTANTIATE_TEST_CASE_P(
154 PathParamValidatorTests, PathArrayParam, PathParamValidatorTests, PathArrayParam,
155 ::testing::Values( ::testing::Values(
156 std::make_tuple("true,false", "simple", false, "boolean", ValidationError::NONE), std::make_tuple("true,false", "simple", true, "boolean", ValidationError::NONE), std::make_tuple("true,false", "simple", false, "boolean", ValidationError::NONE), std::make_tuple("true,false", "simple", true, "boolean", ValidationError::NONE),
157 std::make_tuple("false,true", "simple", false, "boolean", ValidationError::NONE), std::make_tuple("false,true", "simple", true, "boolean", ValidationError::NONE), std::make_tuple("false,true", "simple", false, "boolean", ValidationError::NONE), std::make_tuple("false,true", "simple", true, "boolean", ValidationError::NONE),
158 std::make_tuple("123,456", "simple", false, "boolean", ValidationError::INVALID_PATH_PARAM), std::make_tuple("123,456", "simple", false, "integer", ValidationError::NONE), std::make_tuple("123,456", "simple", false, "boolean", ValidationError::INVALID_PATH_PARAM), std::make_tuple("123,456", "simple", false, "integer", ValidationError::NONE),
159 std::make_tuple("123,456", "simple", true, "integer", ValidationError::NONE), std::make_tuple("123,456", "simple", true, "integer", ValidationError::NONE),
160 std::make_tuple("123.0,456.0", "simple", false, "integer", ValidationError::INVALID_PATH_PARAM), std::make_tuple("123.0,456.0", "simple", false, "integer", ValidationError::INVALID_PATH_PARAM),
161 std::make_tuple("123.0,456.0", "simple", false, "number", ValidationError::NONE), std::make_tuple("123.0,456.0", "simple", true, "number", ValidationError::NONE), std::make_tuple("123.0,456.0", "simple", false, "number", ValidationError::NONE), std::make_tuple("123.0,456.0", "simple", true, "number", ValidationError::NONE),
162 std::make_tuple("abc,xyz", "simple", false, "number", ValidationError::INVALID_PATH_PARAM), std::make_tuple("abc,xyz", "simple", false, "number", ValidationError::INVALID_PATH_PARAM),
163 std::make_tuple("abc%20xyz,def%20ghi", "simple", false, "string", ValidationError::NONE), std::make_tuple("abc%20xyz,def%20ghi", "simple", false, "string", ValidationError::NONE),
164 std::make_tuple("abc%20xyz,def%20ghi", "simple", true, "string", ValidationError::NONE), std::make_tuple(".true,false", "label", false, "boolean", ValidationError::NONE), std::make_tuple("abc%20xyz,def%20ghi", "simple", true, "string", ValidationError::NONE), std::make_tuple(".true,false", "label", false, "boolean", ValidationError::NONE),
165 std::make_tuple(".true.false", "label", true, "boolean", ValidationError::NONE), std::make_tuple(".false,true", "label", false, "boolean", ValidationError::NONE), std::make_tuple(".true.false", "label", true, "boolean", ValidationError::NONE), std::make_tuple(".false,true", "label", false, "boolean", ValidationError::NONE),
166 std::make_tuple(".false.true", "label", true, "boolean", ValidationError::NONE), std::make_tuple(".false.true", "label", true, "boolean", ValidationError::NONE),
167 std::make_tuple(".123,456", "label", false, "boolean", ValidationError::INVALID_PATH_PARAM), std::make_tuple(".123,456", "label", false, "integer", ValidationError::NONE), std::make_tuple(".123,456", "label", false, "boolean", ValidationError::INVALID_PATH_PARAM), std::make_tuple(".123,456", "label", false, "integer", ValidationError::NONE),
168 std::make_tuple(".123.456", "label", true, "integer", ValidationError::NONE), std::make_tuple(".123.456", "label", true, "integer", ValidationError::NONE),
169 std::make_tuple(".123.0,456.0", "label", false, "integer", ValidationError::INVALID_PATH_PARAM), std::make_tuple(".123.0,456.0", "label", false, "integer", ValidationError::INVALID_PATH_PARAM),
170 std::make_tuple(".abc%20xyz,def%20ghi", "label", false, "string", ValidationError::NONE), std::make_tuple(".abc%20xyz,def%20ghi", "label", false, "string", ValidationError::NONE),
171 std::make_tuple(".abc%20xyz.def%20ghi", "label", true, "string", ValidationError::NONE), std::make_tuple(".abc%20xyz.def%20ghi", "label", true, "string", ValidationError::NONE),
172 std::make_tuple(";param=true,false", "matrix", false, "boolean", ValidationError::NONE), std::make_tuple(";param=true,false", "matrix", false, "boolean", ValidationError::NONE),
173 std::make_tuple(";param=true;param=false", "matrix", true, "boolean", ValidationError::NONE), std::make_tuple(";param=true;param=false", "matrix", true, "boolean", ValidationError::NONE),
174 std::make_tuple(";param=false,true", "matrix", false, "boolean", ValidationError::NONE), std::make_tuple(";param=false,true", "matrix", false, "boolean", ValidationError::NONE),
175 std::make_tuple(";param=false;param=true", "matrix", true, "boolean", ValidationError::NONE), std::make_tuple(";param=false;param=true", "matrix", true, "boolean", ValidationError::NONE),
176 std::make_tuple(";param=123,456", "matrix", false, "boolean", ValidationError::INVALID_PATH_PARAM), std::make_tuple(";param=123,456", "matrix", false, "boolean", ValidationError::INVALID_PATH_PARAM),
177 std::make_tuple(";param=123;param=456", "matrix", true, "integer", ValidationError::NONE), std::make_tuple(";param=123;param=456", "matrix", true, "integer", ValidationError::NONE),
178 std::make_tuple(";param=123.0,456.0", "matrix", false, "integer", ValidationError::INVALID_PATH_PARAM), std::make_tuple(";param=123.0,456.0", "matrix", false, "integer", ValidationError::INVALID_PATH_PARAM),
179 std::make_tuple(";param=123.0;param=456.0", "matrix", true, "number", ValidationError::NONE), std::make_tuple(";param=123.0;param=456.0", "matrix", true, "number", ValidationError::NONE),
180 std::make_tuple(";param=abc,xyz", "matrix", false, "number", ValidationError::INVALID_PATH_PARAM), std::make_tuple(";param=abc,xyz", "matrix", false, "number", ValidationError::INVALID_PATH_PARAM),
181 std::make_tuple(";param=abc%20xyz,def%20ghi", "matrix", false, "string", ValidationError::NONE), std::make_tuple(";param=abc%20xyz,def%20ghi", "matrix", false, "string", ValidationError::NONE),
182 std::make_tuple(";param=abc%20xyz;param=def%20ghi", "matrix", true, "string", ValidationError::NONE))); std::make_tuple(";param=abc%20xyz;param=def%20ghi", "matrix", true, "string", ValidationError::NONE)));
183 @@ -2015,92 +2035,121 @@

GCC Code Coverage Report

184 9class PathObjectParam: public ::testing::TestWithParam<std::tuple<std::string, std::string, bool, ValidationError>>class PathObjectParam: public ::testing::TestWithParam<std::tuple<std::string, std::string, bool, ValidationError>>
185 {{
186 protected:protected:
187 9 void SetUp() override void SetUp() override
188 { {
189 9 auto params = GetParam(); auto params = GetParam();
190
- 2/4 + 4/8
-
✓ Branch 0 taken 9 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 9 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 9 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 9 times.
+
✗ Branch 5 not taken.
+
✗ Branch 7 not taken.
+
✓ Branch 8 taken 9 times.
+
✗ Branch 9 not taken.
+
✓ Branch 10 taken 9 times.
9 input_ = "/pets/" + std::get<0>(params) + "/xyz"; input_ = "/pets/" + std::get<0>(params) + "/xyz";
191
1/2
-
✓ Branch 0 taken 9 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 9 times.
+
✗ Branch 2 not taken.
9 std::string style = std::get<1>(params); std::string style = std::get<1>(params);
192 +
+ 2/2 +
+
✓ Branch 0 taken 6 times.
+
✓ Branch 1 taken 3 times.
+
+
9 bool explode = std::get<2>(params); bool explode = std::get<2>(params);
193 +
+ 2/2 +
+
✓ Branch 0 taken 6 times.
+
✓ Branch 1 taken 3 times.
+
+
9 expected_error_ = std::get<3>(params); expected_error_ = std::get<3>(params);
194 @@ -2108,13 +2157,15 @@

GCC Code Coverage Report

195 189 std::string json = R"({
196 @@ -2122,6 +2173,7 @@

GCC Code Coverage Report

"name": "param",
197 @@ -2129,6 +2181,7 @@

GCC Code Coverage Report

"in": "path",
198 @@ -2136,22 +2189,30 @@

GCC Code Coverage Report

"required": true,
199
- 2/4 + 3/10
-
✓ Branch 0 taken 9 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 9 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 9 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 9 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 9 times.
+
✗ Branch 8 not taken.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
9 "style": ")" + style +18 "style": ")" + style +
200 @@ -2159,29 +2220,43 @@

GCC Code Coverage Report

R"(",
201
- 2/4 + 4/8
-
✓ Branch 0 taken 9 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 9 times.
-
✗ Branch 3 not taken.
+
✓ Branch 0 taken 6 times.
+
✓ Branch 1 taken 3 times.
+
✓ Branch 3 taken 9 times.
+
✗ Branch 4 not taken.
+
✗ Branch 5 not taken.
+
✓ Branch 6 taken 9 times.
+
✗ Branch 7 not taken.
+
✗ Branch 8 not taken.
9 "explode": )" + (explode ? "true" : "false") +27 "explode": )" + (explode ? "true" : "false") +
202 +
+ 1/2 +
+
✓ Branch 1 taken 9 times.
+
✗ Branch 2 not taken.
+
+
R"(,9 R"(,
203 @@ -2189,6 +2264,7 @@

GCC Code Coverage Report

"schema": {
204 @@ -2196,6 +2272,7 @@

GCC Code Coverage Report

"type": "object",
205 @@ -2203,6 +2280,7 @@

GCC Code Coverage Report

"properties": {
206 @@ -2210,6 +2288,7 @@

GCC Code Coverage Report

"boolTrue": {
207 @@ -2217,6 +2296,7 @@

GCC Code Coverage Report

"type": "boolean"
208 @@ -2224,6 +2304,7 @@

GCC Code Coverage Report

},
209 @@ -2231,6 +2312,7 @@

GCC Code Coverage Report

"boolFalse": {
210 @@ -2238,6 +2320,7 @@

GCC Code Coverage Report

"type": "boolean"
211 @@ -2245,6 +2328,7 @@

GCC Code Coverage Report

},
212 @@ -2252,6 +2336,7 @@

GCC Code Coverage Report

"int": {
213 @@ -2259,6 +2344,7 @@

GCC Code Coverage Report

"type": "integer",
214 @@ -2266,6 +2352,7 @@

GCC Code Coverage Report

"format": "int64"
215 @@ -2273,6 +2360,7 @@

GCC Code Coverage Report

},
216 @@ -2280,6 +2368,7 @@

GCC Code Coverage Report

"number": {
217 @@ -2287,6 +2376,7 @@

GCC Code Coverage Report

"type": "number",
218 @@ -2294,6 +2384,7 @@

GCC Code Coverage Report

"format": "double"
219 @@ -2301,6 +2392,7 @@

GCC Code Coverage Report

},
220 @@ -2308,6 +2400,7 @@

GCC Code Coverage Report

"string": {
221 @@ -2315,6 +2408,7 @@

GCC Code Coverage Report

"type": "string"
222 @@ -2322,6 +2416,7 @@

GCC Code Coverage Report

}
223 @@ -2329,6 +2424,7 @@

GCC Code Coverage Report

}
224 @@ -2336,27 +2432,30 @@

GCC Code Coverage Report

}
225 })"; })";
226
1/2
-
✓ Branch 0 taken 9 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 9 times.
+
✗ Branch 2 not taken.
9 doc_.Parse(json.c_str()); doc_.Parse(json.c_str());
227 @@ -2364,27 +2463,43 @@

GCC Code Coverage Report

228
- 1/2 + 4/8
-
✗ Branch 0 not taken.
✓ Branch 1 taken 9 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 9 times.
+
✗ Branch 5 not taken.
+
✓ Branch 6 taken 9 times.
+
✓ Branch 7 taken 9 times.
+
✗ Branch 8 not taken.
9 validator_ = std::make_unique<PathParamValidator>(doc_, keys_); validator_ = std::make_unique<PathParamValidator>(doc_, keys_);
229 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 9 times.
+
+
9 } }
230 @@ -2392,72 +2507,63 @@

GCC Code Coverage Report

231 std::unique_ptr<PathParamValidator> validator_; std::unique_ptr<PathParamValidator> validator_;
232 std::string input_; std::string input_;
233 rapidjson::Document doc_; rapidjson::Document doc_;
234 -
- 6/12 -
-
✓ Branch 0 taken 9 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 9 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 9 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 9 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 9 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
-
✓ Branch 11 taken 9 times.
-
-
9 std::vector<std::string> keys_{"paths", "/pets/{param}/xyz", "get", "parameters", "0"}; std::vector<std::string> keys_{"paths", "/pets/{param}/xyz", "get", "parameters", "0"};
235 std::string error_msg_; std::string error_msg_;
236 ValidationError expected_error_; ValidationError expected_error_;
237 };};
238 @@ -2465,173 +2571,235 @@

GCC Code Coverage Report

239
- 5/10 + 8/22
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 9 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
+
✗ Branch 11 not taken.
+
✓ Branch 13 taken 1 times.
+
✗ Branch 14 not taken.
+
✓ Branch 15 taken 1 times.
+
✗ Branch 16 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 18 not taken.
+
✓ Branch 19 taken 1 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
29TEST_P(PathObjectParam, ValidateParam)41TEST_P(PathObjectParam, ValidateParam)
240 {{
241 +
+ 1/2 +
+
✗ Branch 1 not taken.
+
✓ Branch 2 taken 9 times.
+
+
9 const char* beg = input_.c_str() + std::string("/pets/").size();18 const char* beg = input_.c_str() + std::string("/pets/").size();
242 +
+ 1/2 +
+
✗ Branch 1 not taken.
+
✓ Branch 2 taken 9 times.
+
+
9 const char* end = input_.c_str() + input_.size() - std::string("/xyz").size();18 const char* end = input_.c_str() + input_.size() - std::string("/xyz").size();
243 9 auto result = validator_->ValidateParam(beg, end, error_msg_);18 auto result = validator_->ValidateParam(beg, end, error_msg_);
244
- 1/10 + 1/14
-
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
-
✗ Branch 3 not taken.
+
✓ Branch 2 taken 9 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
-
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
9 EXPECT_EQ(result, expected_error_);18 EXPECT_EQ(result, expected_error_);
245
2/2
-
✓ Branch 0 taken 5 times.
-
✓ Branch 1 taken 4 times.
+
✓ Branch 0 taken 4 times.
+
✓ Branch 1 taken 5 times.
9 if (result != ValidationError::NONE) {18 if (result != ValidationError::NONE) {
246
- 1/10 + 1/20
-
✓ Branch 0 taken 4 times.
-
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 4 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
4 EXPECT_FALSE(error_msg_.empty());8 EXPECT_FALSE(error_msg_.empty());
247 4 rapidjson::Document doc;8 rapidjson::Document doc;
248
1/2
-
✓ Branch 0 taken 4 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 4 times.
+
✗ Branch 2 not taken.
4 doc.Parse(error_msg_.c_str());8 doc.Parse(error_msg_.c_str());
249
- 2/12 + 1/20
-
✓ Branch 0 taken 4 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 4 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 4 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
4 EXPECT_FALSE(doc.HasParseError());16 EXPECT_FALSE(doc.HasParseError());
250 4 } }
251 9}18}
252 @@ -2639,96 +2807,102 @@

GCC Code Coverage Report

253
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
-
✓ Branch 7 taken 1 times.
+
✓ Branch 2 taken 9 times.
11INSTANTIATE_TEST_CASE_P(20INSTANTIATE_TEST_CASE_P(
254 PathParamValidatorTests, PathObjectParam, PathParamValidatorTests, PathObjectParam,
255 ::testing::Values(std::make_tuple("boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", "simple", false, ValidationError::NONE), ::testing::Values(std::make_tuple("boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", "simple", false, ValidationError::NONE),
256 std::make_tuple("boolTrue=true,boolFalse=false,int=123,number=123.456,string=abc%20xyz", "simple", true, ValidationError::NONE), std::make_tuple("boolTrue=true,boolFalse=false,int=123,number=123.456,string=abc%20xyz", "simple", true, ValidationError::NONE),
257 std::make_tuple(".boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", "label", false, ValidationError::NONE), std::make_tuple(".boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", "label", false, ValidationError::NONE),
258 std::make_tuple(";param=boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", "matrix", false, ValidationError::NONE), std::make_tuple(";param=boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", "matrix", false, ValidationError::NONE),
259 std::make_tuple(";boolTrue=true;boolFalse=false;int=123;number=123.456;string=abc%20xyz", "matrix", true, ValidationError::NONE), std::make_tuple(";boolTrue=true;boolFalse=false;int=123;number=123.456;string=abc%20xyz", "matrix", true, ValidationError::NONE),
260 std::make_tuple("boolTrue,ture,boolFalse,false,int,123,number,123.456,string,abc%20xyz", "simple", false, ValidationError::INVALID_PATH_PARAM), std::make_tuple("boolTrue,ture,boolFalse,false,int,123,number,123.456,string,abc%20xyz", "simple", false, ValidationError::INVALID_PATH_PARAM),
261 std::make_tuple("boolTrue=true,boolFalse=false,int=1.23,number=123.456,string=abc%20xyz", "simple", false, ValidationError::INVALID_PATH_PARAM), std::make_tuple("boolTrue=true,boolFalse=false,int=1.23,number=123.456,string=abc%20xyz", "simple", false, ValidationError::INVALID_PATH_PARAM),
262 std::make_tuple("boolTrue=true,boolFalse=false,int=123,number=123.456,string=abc%2xyz", "simple", false, ValidationError::INVALID_PATH_PARAM), std::make_tuple("boolTrue=true,boolFalse=false,int=123,number=123.456,string=abc%2xyz", "simple", false, ValidationError::INVALID_PATH_PARAM),
263 std::make_tuple(".boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", "label", true, ValidationError::INVALID_PATH_PARAM))); std::make_tuple(".boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", "label", true, ValidationError::INVALID_PATH_PARAM)));
264 @@ -2736,13 +2910,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.path_trie.cpp.35e3154b11baecb6f497e36935dac256.html b/covhtml-oasvalidator/index.path_trie.cpp.35e3154b11baecb6f497e36935dac256.html index 13cacb7..cdfff95 100644 --- a/covhtml-oasvalidator/index.path_trie.cpp.35e3154b11baecb6f497e36935dac256.html +++ b/covhtml-oasvalidator/index.path_trie.cpp.35e3154b11baecb6f497e36935dac256.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,143 +40,22 @@

GCC Code Coverage Report

Lines: - 14 - 14 - 100.0% - - - Functions: - 9 - 9 + 35 + 35 100.0% Branches: - 22 - 76 - 28.9% + 64 + 338 + 18.9%
-
- -
-
- - +
-
@@ -186,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + - + + - + + - + + - + + + - - + + + - + + - + + - + + + + - + + - + + - + + - + + - + + + + - - + + + - + + - - + + + - - + + + - + + - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + + - + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + +
Exec Source
1 @@ -193,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -200,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -207,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -221,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -228,41 +113,47 @@

GCC Code Coverage Report

7 #include "utils/path_trie.hpp"#include "utils/path_trie.hpp"
8 #include "utils/common.hpp"#include "utils/common.hpp"
9 #include <gtest/gtest.h>#include <gtest/gtest.h>
10 #include <string>#include <string>
11 #include <vector>#include <vector>
12 @@ -270,34 +161,39 @@

GCC Code Coverage Report

13 2class PathTrieTest: public ::testing::Test4class PathTrieTest: public ::testing::Test
14 {{
15 protected:protected:
16 PathTrie trie_; PathTrie trie_;
17 @@ -305,6 +201,7 @@

GCC Code Coverage Report

18 @@ -312,41 +209,47 @@

GCC Code Coverage Report

// Utility function to simplify the test cases
19 2 bool InsertAndSearch(const std::string& insert_path, const std::string& search_path, std::string& out_oas_path) bool InsertAndSearch(const std::string& insert_path, const std::string& search_path, std::string& out_oas_path)
20 { {
21 2 trie_.Insert(insert_path); trie_.Insert(insert_path);
22 2 return trie_.Search(search_path.c_str(), search_path.c_str() + search_path.size(), out_oas_path); return trie_.Search(search_path.c_str(), search_path.c_str() + search_path.size(), out_oas_path);
23 } }
24 @@ -354,6 +257,7 @@

GCC Code Coverage Report

25 @@ -361,48 +265,55 @@

GCC Code Coverage Report

// Helper function for parameterized path searches
26 bool InsertAndSearchParam(const std::string& insert_path, const std::string& search_path, std::string& out_oas_path, std::unordered_map<size_t, ParamRange>& param_idxs)1 bool InsertAndSearchParam(const std::string& insert_path, const std::string& search_path, std::string& out_oas_path, std::unordered_map<size_t, ParamRange>& param_idxs)
27 { {
28 trie_.Insert(insert_path);1 trie_.Insert(insert_path);
29 return trie_.Search(search_path.c_str(), search_path.c_str() + search_path.size(), out_oas_path, param_idxs);1 return trie_.Search(search_path.c_str(), search_path.c_str() + search_path.size(), out_oas_path, param_idxs);
30 } }
31 };};
32 @@ -410,6 +321,7 @@

GCC Code Coverage Report

33 @@ -417,101 +329,131 @@

GCC Code Coverage Report

// Test inserting and searching for a simple path
34
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST_F(PathTrieTest, InsertAndSearchSimplePath)7TEST_F(PathTrieTest, InsertAndSearchSimplePath)
35 {{
36 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string oas_path;2 std::string oas_path;
37
- 5/18 + 6/34
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
-
✗ Branch 15 not taken.
+
✓ Branch 14 taken 1 times.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 39 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 41 not taken.
+
✗ Branch 42 not taken.
1 EXPECT_TRUE(InsertAndSearch("/api/data", "/api/data", oas_path));2 EXPECT_TRUE(InsertAndSearch("/api/data", "/api/data", oas_path));
38
- 2/12 + 3/18
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
+
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✓ Branch 18 taken 1 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
1 EXPECT_EQ(oas_path, "/api/data");4 EXPECT_EQ(oas_path, "/api/data");
39 1}2}
40 @@ -519,6 +461,7 @@

GCC Code Coverage Report

41 @@ -526,101 +469,135 @@

GCC Code Coverage Report

// Test searching for a path that does not exist
42
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
4TEST_F(PathTrieTest, SearchNonExistentPath)7TEST_F(PathTrieTest, SearchNonExistentPath)
43 {{
44 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
1 std::string oas_path;2 std::string oas_path;
45
- 5/18 + 6/34
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
+
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
-
✗ Branch 12 not taken.
+
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
-
✗ Branch 15 not taken.
+
✓ Branch 14 taken 1 times.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 39 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 41 not taken.
+
✗ Branch 42 not taken.
1 EXPECT_FALSE(InsertAndSearch("/api/data", "/api/none", oas_path));2 EXPECT_FALSE(InsertAndSearch("/api/data", "/api/none", oas_path));
46
- 2/12 + 2/22
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✓ Branch 20 taken 1 times.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
1 EXPECT_TRUE(oas_path.empty());4 EXPECT_TRUE(oas_path.empty());
47 1}2}
48 @@ -628,167 +605,503 @@

GCC Code Coverage Report

49 //// Test inserting and searching for a path with a parameter// Test inserting and searching for a path with a parameter
50 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
//TEST_F(PathTrieTest, InsertAndSearchParameterizedPath)7TEST_F(PathTrieTest, InsertAndSearchParameterizedPath)
51 //{{
52 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
// std::string oas_path;2 std::string oas_path;
53 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
// std::unordered_map<size_t, ParamRange> param_idxs;2 std::unordered_map<size_t, ParamRange> param_idxs;
54 +
+ 6/32 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 1 times.
+
✗ Branch 5 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✗ Branch 9 not taken.
+
✓ Branch 10 taken 1 times.
+
✗ Branch 11 not taken.
+
✓ Branch 12 taken 1 times.
+
✗ Branch 13 not taken.
+
✓ Branch 14 taken 1 times.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 28 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 39 not taken.
+
✗ Branch 40 not taken.
+
+
// EXPECT_TRUE(InsertAndSearchParam("/api/data/{id}", "/api/data/123", oas_path, param_idxs));2 EXPECT_TRUE(InsertAndSearchParam("/api/data/{id}", "/api/data/123", oas_path, param_idxs));
55 +
+ 2/16 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 1 times.
+
✗ Branch 6 not taken.
+
✗ Branch 7 not taken.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
+
// EXPECT_EQ(oas_path, "/api/data/{id}");2 EXPECT_EQ(oas_path, "/api/data/{id}");
56 +
+ 1/22 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1 times.
+
✗ Branch 3 not taken.
+
✗ Branch 4 not taken.
+
✗ Branch 6 not taken.
+
✗ Branch 7 not taken.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
+
+
// ASSERT_TRUE(param_idxs.find(3) != param_idxs.end());2 ASSERT_TRUE(param_idxs.find(3) != param_idxs.end());
57 +
+ 6/24 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 1 times.
+
✗ Branch 5 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✓ Branch 13 taken 1 times.
+
✗ Branch 14 not taken.
+
✓ Branch 15 taken 1 times.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
+
// //EXPECT_EQ(std::string(param_idxs[3].beg, param_idxs[3].end), "123");6 EXPECT_EQ(std::string(param_idxs[3].beg, param_idxs[3].end), "123");
58 +
+ 1/4 +
+
✗ Branch 0 not taken.
+
✗ Branch 1 not taken.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 1 times.
+
+
//}2}
59 //
60 //// Test parameterized path with multiple parameters// Test parameterized path with multiple parameters
61 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
//TEST_F(PathTrieTest, InsertAndSearchMultiParamPath)7TEST_F(PathTrieTest, InsertAndSearchMultiParamPath)
62 //{{
63 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
// std::string oas_path;2 std::string oas_path;
64 +
+ 1/2 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
+
// std::unordered_map<size_t, ParamRange> param_idxs;2 std::unordered_map<size_t, ParamRange> param_idxs;
65 +
+ 2/4 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 1 times.
+
✗ Branch 5 not taken.
+
+
// trie_.Insert("/api/data/{id}/edit/{action}");2 trie_.Insert("/api/data/{id}/edit/{action}");
66 +
+ 2/22 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 1 times.
+
✗ Branch 6 not taken.
+
✗ Branch 7 not taken.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 28 not taken.
+
+
// EXPECT_TRUE(trie_.Search("/api/data/123/edit/update", &"/api/data/123/edit/update"[25], oas_path, param_idxs));2 EXPECT_TRUE(trie_.Search("/api/data/123/edit/update", &"/api/data/123/edit/update"[25], oas_path, param_idxs));
67 +
+ 2/16 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 1 times.
+
✗ Branch 6 not taken.
+
✗ Branch 7 not taken.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
+
// EXPECT_EQ(oas_path, "/api/data/{id}/edit/{action}");2 EXPECT_EQ(oas_path, "/api/data/{id}/edit/{action}");
68 +
+ 2/18 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 1 times.
+
✗ Branch 6 not taken.
+
✗ Branch 7 not taken.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
+
// ASSERT_EQ(param_idxs.size(), 2u);2 ASSERT_EQ(param_idxs.size(), 2u);
69 +
+ 6/24 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 1 times.
+
✗ Branch 5 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✓ Branch 13 taken 1 times.
+
✗ Branch 14 not taken.
+
✓ Branch 15 taken 1 times.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 29 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
+
// EXPECT_EQ(std::string(param_idxs[3].beg, param_idxs[3].end), "123");4 EXPECT_EQ(std::string(param_idxs[3].beg, param_idxs[3].end), "123");
70 +
+ 6/24 +
+
✓ Branch 1 taken 1 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 1 times.
+
✗ Branch 5 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✓ Branch 13 taken 1 times.
+
✗ Branch 14 not taken.
+
✓ Branch 15 taken 1 times.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 26 not taken.
+
✗ Branch 27 not taken.
+
✗ Branch 30 not taken.
+
✗ Branch 31 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
+
// //EXPECT_EQ(std::string(param_idxs[5].beg, param_idxs[5].end), "update");6 EXPECT_EQ(std::string(param_idxs[5].beg, param_idxs[5].end), "update");
71 +
+ 1/4 +
+
✗ Branch 0 not taken.
+
✗ Branch 1 not taken.
+
✓ Branch 2 taken 1 times.
+
✗ Branch 3 not taken.
+
+
//}4}
72 @@ -796,13 +1109,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.path_trie.cpp.896a18332bbfae02710ee5d03cd51299.html b/covhtml-oasvalidator/index.path_trie.cpp.896a18332bbfae02710ee5d03cd51299.html index f61086c..8d5ae8e 100644 --- a/covhtml-oasvalidator/index.path_trie.cpp.896a18332bbfae02710ee5d03cd51299.html +++ b/covhtml-oasvalidator/index.path_trie.cpp.896a18332bbfae02710ee5d03cd51299.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,99 +40,22 @@

GCC Code Coverage Report

Lines: - 76 - 76 - 100.0% - - - Functions: - 5 - 5 + 70 + 70 100.0% Branches: - 47 + 49 70 - 67.1% + 70.0%
-
+ -
-
+
- - -
@@ -142,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + - + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - - + + + - - + + + - + + + - - + + + - - + + + - + + - - + + + - - + + + - - + + + + - + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - - + + + - - + + + - + + - + + - - + + + - - + + + - + + - - + + + - - + + + - - + + + - + + + - + + - - + + + + - + + - + + - - + + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - - + + + - - + + + - + + - - + + + - - + + + - - + + + - + + + - + + - - + + + + - - + + + - + + - - + + + + - - + + + - - + + + + - - + + + - - + + + + - - + + + + - - + + + + - - + + + - + + + - - + + + - - + + + - + + - - + + + + - - + + + +
Exec Source
1 @@ -149,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -156,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -163,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -177,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -184,20 +113,23 @@

GCC Code Coverage Report

7 #include "utils/path_trie.hpp"#include "utils/path_trie.hpp"
8 #include "utils/common.hpp"#include "utils/common.hpp"
9 @@ -205,55 +137,63 @@

GCC Code Coverage Report

10 746void PathTrie::Insert(const std::string& path)748void PathTrie::Insert(const std::string& path)
11 {{
12 746 auto* node = root_;748 auto* node = root_;
13 746 const char* dir_start = path.data();748 const char* dir_start = path.data();
14 746 const char* const path_end = dir_start + path.length();748 const char* const path_end = dir_start + path.length();
15 const char* dir_end;748 const char* dir_end;
16 int fragment_index = 0;748 int fragment_index = 0;
17 @@ -261,41 +201,53 @@

GCC Code Coverage Report

18
2/2
-
✓ Branch 0 taken 3126 times.
-
✓ Branch 1 taken 746 times.
+
✓ Branch 0 taken 3136 times.
+
✓ Branch 1 taken 748 times.
3872 while (dir_start < path_end) {3884 while (dir_start < path_end) {
19 3126 dir_end = Seek(dir_start, path_end, '/');3136 dir_end = Seek(dir_start, path_end, '/');
20 +
+ 2/2 +
+
✓ Branch 1 taken 843 times.
+
✓ Branch 2 taken 2293 times.
+
+
3126 std::string dir(dir_start, dir_end);3136 std::string dir(dir_start, dir_end);
21 3126 fragment_index++;3136 fragment_index++;
22 @@ -303,48 +255,53 @@

GCC Code Coverage Report

23
2/2
-
✓ Branch 0 taken 840 times.
-
✓ Branch 1 taken 2286 times.
+
✓ Branch 0 taken 843 times.
+
✓ Branch 1 taken 2293 times.
3126 if (dir[0] == '{') {3136 if (dir[0] == '{') {
24 840 node->is_param = true;843 node->is_param = true;
25
1/2
-
✓ Branch 0 taken 840 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 843 times.
+
✗ Branch 2 not taken.
840 node->dir = dir;843 node->dir = dir;
26 } }
27 @@ -352,80 +309,83 @@

GCC Code Coverage Report

28
- 4/6 + 2/2
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 3126 times.
-
✓ Branch 2 taken 3126 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1440 times.
-
✓ Branch 5 taken 1686 times.
+
✓ Branch 1 taken 1696 times.
+
✓ Branch 2 taken 1440 times.
3126 if (node->children.find(dir) == node->children.end()) {3136 if (node->children.find(dir) == node->children.end()) {
29
1/2
-
✓ Branch 0 taken 1686 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1696 times.
+
✗ Branch 2 not taken.
1686 auto* new_node = new Node();1696 auto* new_node = new Node();
30 16861696 new_node->frag_idx = fragment_index; // Set the fragmentIndex for the new node
31
1/2
-
✓ Branch 0 taken 1686 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 1696 times.
+
✗ Branch 2 not taken.
1686 node->children[dir] = new_node;1696 node->children[dir] = new_node;
32 1686 } }
33
1/2
-
✓ Branch 0 taken 3126 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 3136 times.
+
✗ Branch 2 not taken.
3126 node = node->children[dir];3136 node = node->children[dir];
34 @@ -433,27 +393,38 @@

GCC Code Coverage Report

35 +
+ 2/2 +
+
✓ Branch 0 taken 672 times.
+
✓ Branch 1 taken 2464 times.
+
+
31263136 dir_start = dir_end + 1; // skip '/'
36 3126 }3136 }
37 746}748}
38 @@ -461,41 +432,47 @@

GCC Code Coverage Report

39 2256613bool PathTrie::Search(const char* beg, const char* const end, std::string& oas_path)7515595bool PathTrie::Search(const char* beg, const char* const end, std::string& oas_path)
40 {{
41 2256613 auto* node = root_;7515595 auto* node = root_;
42 const char* dir_end;7515595 const char* dir_end;
43 2256613 oas_path.clear();7515595 oas_path.clear();
44 @@ -503,48 +480,46 @@

GCC Code Coverage Report

45
2/2
-
✓ Branch 0 taken 6769851 times.
+
✓ Branch 0 taken 22546797 times.
✓ Branch 1 taken 13 times.
6769864 while (beg < end) {22546810 while (beg < end) {
46 6769851 dir_end = Seek(beg, end, '/');22546797 dir_end = Seek(beg, end, '/');
47 6769851 std::string dir(beg, dir_end);22546797 std::string dir(beg, dir_end);
48 -
- 1/2 -
-
✓ Branch 0 taken 6769851 times.
-
✗ Branch 1 not taken.
-
-
6769851 auto it = node->children.find(dir);22546797 auto it = node->children.find(dir);
49 @@ -552,22 +527,22 @@

GCC Code Coverage Report

50
- 3/4 + 2/2
-
✓ Branch 0 taken 6769851 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2256612 times.
-
✓ Branch 3 taken 4513239 times.
+
✓ Branch 0 taken 7515594 times.
+
✓ Branch 1 taken 15031203 times.
6769851 if (it == node->children.end()) {22546797 if (it == node->children.end()) {
51 @@ -575,101 +550,128 @@

GCC Code Coverage Report

2/2
✓ Branch 0 taken 12 times.
-
✓ Branch 1 taken 2256600 times.
+
✓ Branch 1 taken 7515582 times.
2256612 if (node->is_param) {7515594 if (node->is_param) {
52
2/4
-
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
-
✓ Branch 3 taken 12 times.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 12 times.
12 oas_path += node->dir + "/";24 oas_path += node->dir + "/";
53 12 node = node->children.begin()->second; node = node->children.begin()->second;
54 } else { } else {
55 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 7515582 times.
+
+
2256600 oas_path.clear();7515582 oas_path.clear();
56 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 7515582 times.
+
+
2256600 return false;7515582 return false;
57 } }
58 12 } else { } else {
59
- 2/4 + 3/6
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 4513239 times.
-
✓ Branch 2 taken 4513239 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 15031203 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 12 times.
+
✓ Branch 4 taken 15031191 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
4513239 oas_path += dir + "/";30062406 oas_path += dir + "/";
60 4513239 node = it->second;15031203 node = it->second;
61 } }
62 @@ -677,27 +679,30 @@

GCC Code Coverage Report

63 +
+ 2/2 +
+
✓ Branch 0 taken 13 times.
+
✓ Branch 1 taken 15031202 times.
+
+
451325115031215 beg = dir_end + 1; // skip '/'
64 -
- 2/2 -
-
✓ Branch 0 taken 4513251 times.
-
✓ Branch 1 taken 2256600 times.
-
-
6769851 }22546797 }
65 @@ -705,34 +710,38 @@

GCC Code Coverage Report

66
1/2
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 13 times.
+
✓ Branch 0 taken 13 times.
+
✗ Branch 1 not taken.
13 if (!oas_path.empty()) { if (!oas_path.empty()) {
67 137515608 oas_path.pop_back(); // remove trailing '/'
68 13 } }
69 @@ -740,20 +749,23 @@

GCC Code Coverage Report

70 13 return true; return true;
71 2256613}}
72 @@ -761,41 +773,47 @@

GCC Code Coverage Report

73 8312815bool PathTrie::Search(const char* beg, const char* const end, std::string& oas_path, std::unordered_map<size_t, ParamRange>& param_idxs)24255924bool PathTrie::Search(const char* beg, const char* const end, std::string& oas_path, std::unordered_map<size_t, ParamRange>& param_idxs)
74 {{
75 8312815 auto* node = root_;24255924 auto* node = root_;
76 const char* dir_end;24255924 const char* dir_end;
77 8312815 oas_path.clear();24255924 oas_path.clear();
78 @@ -803,48 +821,46 @@

GCC Code Coverage Report

79
2/2
-
✓ Branch 0 taken 29312694 times.
-
✓ Branch 1 taken 6059265 times.
+
✓ Branch 0 taken 83978702 times.
+
✓ Branch 1 taken 16679161 times.
35371959 while (beg < end) {100657863 while (beg < end) {
80 29312694 dir_end = Seek(beg, end, '/');83978702 dir_end = Seek(beg, end, '/');
81 29312694 std::string dir(beg, dir_end);83978702 std::string dir(beg, dir_end);
82 -
- 1/2 -
-
✓ Branch 0 taken 29312694 times.
-
✗ Branch 1 not taken.
-
-
29312694 auto it = node->children.find(dir);83978702 auto it = node->children.find(dir);
83 @@ -852,138 +868,166 @@

GCC Code Coverage Report

84
- 3/4 + 2/2
-
✓ Branch 0 taken 29312694 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 8691837 times.
-
✓ Branch 3 taken 20620857 times.
+
✓ Branch 0 taken 25661611 times.
+
✓ Branch 1 taken 58317091 times.
29312694 if (it == node->children.end()) {83978702 if (it == node->children.end()) {
85
2/2
-
✓ Branch 0 taken 6438287 times.
-
✓ Branch 1 taken 2253550 times.
+
✓ Branch 0 taken 18084848 times.
+
✓ Branch 1 taken 7576763 times.
8691837 if (node->is_param) {25661611 if (node->is_param) {
86
2/4
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 6438287 times.
+
✓ Branch 1 taken 18084848 times.
✗ Branch 2 not taken.
-
✓ Branch 3 taken 6438287 times.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 18084848 times.
6438287 oas_path += node->dir + "/";36169696 oas_path += node->dir + "/";
87
1/2
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 6438287 times.
+
✓ Branch 1 taken 18084848 times.
+
✗ Branch 2 not taken.
6438287 param_idxs.emplace(node->frag_idx, ParamRange{beg, dir_end});18084848 param_idxs.emplace(node->frag_idx, ParamRange{beg, dir_end});
88 6438287 node = node->children.begin()->second;18084848 node = node->children.begin()->second;
89 } else { } else {
90 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 7576763 times.
+
+
2253550 oas_path.clear();7576763 oas_path.clear();
91 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 7576763 times.
+
+
2253550 return false;7576763 return false;
92 } }
93 6438287 } else { } else {
94
- 2/4 + 3/6
-
✓ Branch 0 taken 20620857 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 20620857 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 58317091 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 8954225 times.
+
✓ Branch 4 taken 49362866 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
20620857 oas_path += dir + "/";116634182 oas_path += dir + "/";
95 20620857 node = it->second;58317091 node = it->second;
96 } }
97 @@ -991,27 +1035,30 @@

GCC Code Coverage Report

98 +
+ 2/2 +
+
✓ Branch 0 taken 9657071 times.
+
✓ Branch 1 taken 66744868 times.
+
+
2705914476401939 beg = dir_end + 1; // skip '/'
99 -
- 2/2 -
-
✓ Branch 0 taken 27059144 times.
-
✓ Branch 1 taken 2253550 times.
-
-
29312694 }83978702 }
100 @@ -1019,34 +1066,38 @@

GCC Code Coverage Report

101
1/2
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 6059265 times.
+
✓ Branch 0 taken 16679161 times.
+
✗ Branch 1 not taken.
6059265 if (!oas_path.empty()) {16679161 if (!oas_path.empty()) {
102 605926540935085 oas_path.pop_back(); // remove trailing '/'
103 6059265 } }
104 @@ -1054,20 +1105,23 @@

GCC Code Coverage Report

105 6059265 return true; return true;
106 8312815}}
107 @@ -1075,20 +1129,23 @@

GCC Code Coverage Report

108 454PathTrie::~PathTrie()229PathTrie::~PathTrie()
109 227{{
110 @@ -1096,20 +1153,15 @@

GCC Code Coverage Report

#ifndef LUA_OAS_VALIDATOR // LUA manages garbage collection itself
111 -
- 1/2 -
-
✓ Branch 0 taken 227 times.
-
✗ Branch 1 not taken.
-
-
227 DeleteNode(root_);229 DeleteNode(root_);
112 @@ -1117,13 +1169,15 @@

GCC Code Coverage Report

#endif // LUA_OAS_VALIDATOR
113 454}229}
114 @@ -1131,20 +1185,23 @@

GCC Code Coverage Report

115 1913void PathTrie::DeleteNode(Node* node)1925void PathTrie::DeleteNode(Node* node)
116 {{
117 @@ -1152,48 +1209,46 @@

GCC Code Coverage Report

#ifndef LUA_OAS_VALIDATOR // LUA manages garbage collection itself
118
2/2
-
✓ Branch 0 taken 1913 times.
-
✓ Branch 1 taken 1686 times.
+
✓ Branch 0 taken 1696 times.
+
✓ Branch 1 taken 1925 times.
3599 for (auto& pair : node->children) {3621 for (auto& pair : node->children) {
119 1686 DeleteNode(pair.second);1696 DeleteNode(pair.second);
120 } }
121 -
- 1/2 -
-
✓ Branch 0 taken 1913 times.
-
✗ Branch 1 not taken.
-
-
1913 delete node;1925 delete node;
122 @@ -1201,13 +1256,15 @@

GCC Code Coverage Report

#endif // LUA_OAS_VALIDATOR
123 1913}1925}
124 @@ -1215,13 +1272,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.path_trie.hpp.87d33e3be6926dc64bf6db654e8baf19.html b/covhtml-oasvalidator/index.path_trie.hpp.87d33e3be6926dc64bf6db654e8baf19.html index 627f488..c6e8293 100644 --- a/covhtml-oasvalidator/index.path_trie.hpp.87d33e3be6926dc64bf6db654e8baf19.html +++ b/covhtml-oasvalidator/index.path_trie.hpp.87d33e3be6926dc64bf6db654e8baf19.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,77 +40,22 @@

GCC Code Coverage Report

Lines: - 7 - 7 - 100.0% - - - Functions: - 3 - 3 + 4 + 4 100.0% Branches: - 0 - 0 - -% + 1 + 2 + 50.0%
-
+ -
-
+
- - -
@@ -120,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + + + - + + + - + + - + + + - + + - + + - + + - - + + + - - + + + - - + + + - - + + + - + + - + + - + + - + + + - + + - - + + + - + + - + + - - + + + - - + + + - + + - + + + - + + - + + - + + + + +
Exec Source
1 @@ -127,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -134,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -141,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -155,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -162,6 +113,7 @@

GCC Code Coverage Report

7 @@ -169,6 +121,7 @@

GCC Code Coverage Report

#ifndef PATH_TRIE_HPP
8 @@ -176,13 +129,15 @@

GCC Code Coverage Report

#define PATH_TRIE_HPP
9 #include "utils/common.hpp"#include "utils/common.hpp"
10 @@ -190,20 +145,23 @@

GCC Code Coverage Report

11 #include <string>#include <string>
12 #include <unordered_map>#include <unordered_map>
13 @@ -211,83 +169,95 @@

GCC Code Coverage Report

14 class PathTrieclass PathTrie
15 {{
16 public:public:
17 454 PathTrie()229 PathTrie()
18 227 : root_(new Node())229 : root_(new Node())
19 227 { {
20 454 }229 }
21 void Insert(const std::string& path); void Insert(const std::string& path);
22 bool Search(const char* beg, const char* end, std::string& oas_path); bool Search(const char* beg, const char* end, std::string& oas_path);
23 bool Search(const char* beg, const char* end, std::string& oas_path, std::unordered_map<size_t, ParamRange>& param_idxs); bool Search(const char* beg, const char* end, std::string& oas_path, std::unordered_map<size_t, ParamRange>& param_idxs);
24 ~PathTrie(); ~PathTrie();
25 @@ -295,62 +265,78 @@

GCC Code Coverage Report

26 private:private:
27 +
+ 1/2 +
+
✓ Branch 1 taken 1696 times.
+
✗ Branch 2 not taken.
+
+
1913 struct Node1925 struct Node
28 { {
29 std::string dir; std::string dir;
30 1913 bool is_param{false}; bool is_param{false};
31 1913 int frag_idx{0}; int frag_idx{0};
32 std::unordered_map<std::string, Node*> children; std::unordered_map<std::string, Node*> children;
33 }; };
34 @@ -358,27 +344,31 @@

GCC Code Coverage Report

35 void DeleteNode(Node* node); void DeleteNode(Node* node);
36 Node* root_; Node* root_;
37 };};
38 @@ -386,6 +376,7 @@

GCC Code Coverage Report

39 @@ -393,6 +384,7 @@

GCC Code Coverage Report

#endif // PATH_TRIE_HPP
40 @@ -400,13 +392,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.perftest.cpp.4c97977041b39d6fcaa8dec102770462.html b/covhtml-oasvalidator/index.perftest.cpp.4c97977041b39d6fcaa8dec102770462.html index c3ddaab..6071035 100644 --- a/covhtml-oasvalidator/index.perftest.cpp.4c97977041b39d6fcaa8dec102770462.html +++ b/covhtml-oasvalidator/index.perftest.cpp.4c97977041b39d6fcaa8dec102770462.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,671 +40,22 @@

GCC Code Coverage Report

Lines: - 124 - 142 - 87.3% - - - Functions: - 38 - 57 - 66.7% + 119 + 120 + 99.2% Branches: - 243 - 450 - 54.0% + 279 + 594 + 47.0%
-
+ -
-
+
- - -
@@ -714,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + - + + - + + - + + - + + + - - + + + - + + - + + - - + + + - - + + + - + + - - + + + - - + + + - + + - + + - + + - + + + - + + - + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - +
✓ Branch 7 taken 12108546 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 12108546 times.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 12108546 times.
+
✗ Branch 12 not taken.
+
✓ Branch 14 taken 12108546 times.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+ + + + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - +
✓ Branch 7 taken 13384727 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 13384727 times.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 13384727 times.
+
✗ Branch 12 not taken.
+
✓ Branch 14 taken 13384727 times.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+ + + + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - - + + + - - + + + - + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - + + - - + + + - + + - + + - - + + + - - + + + - + + +
Exec Source
1 @@ -721,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -728,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -735,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -749,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -756,41 +113,47 @@

GCC Code Coverage Report

7 #include "oas_validator.hpp"#include "oas_validator.hpp"
8 #include <benchmark/benchmark.h>#include <benchmark/benchmark.h>
9 #include <memory>#include <memory>
10 #include <string>#include <string>
11 #include <unordered_map>#include <unordered_map>
12 @@ -798,118 +161,138 @@

GCC Code Coverage Report

13 class OASValidatorPerf: public ::benchmark::Fixtureclass OASValidatorPerf: public ::benchmark::Fixture
14 {{
15 public:public:
16 54 OASValidatorPerf()18 OASValidatorPerf()
17 +
+ 1/2 +
+
✓ Branch 2 taken 18 times.
+
✗ Branch 3 not taken.
+
+
36 {18 {
18
1/2
-
✓ Branch 0 taken 18 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 18 times.
+
✗ Branch 2 not taken.
18 validator = std::make_unique<OASValidator>(SPEC_PATH); validator = std::make_unique<OASValidator>(SPEC_PATH);
19 constexpr static double K_MIN_WARM_UP_TIME = 5.0;18 constexpr static double K_MIN_WARM_UP_TIME = 5.0;
20 constexpr static double K_MIN_TIME = 3.50;18 constexpr static double K_MIN_TIME = 3.50;
21
1/2
-
✓ Branch 0 taken 18 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 18 times.
+
✗ Branch 2 not taken.
18 SetDefaultTimeUnit(::benchmark::kMicrosecond); SetDefaultTimeUnit(::benchmark::kMicrosecond);
22
1/2
-
✓ Branch 0 taken 18 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 18 times.
+
✗ Branch 2 not taken.
18 MinWarmUpTime(K_MIN_WARM_UP_TIME); MinWarmUpTime(K_MIN_WARM_UP_TIME);
23
1/2
-
✓ Branch 0 taken 18 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 18 times.
+
✗ Branch 2 not taken.
18 MinTime(K_MIN_TIME); MinTime(K_MIN_TIME);
24 18 } }
25 @@ -917,20 +300,23 @@

GCC Code Coverage Report

26 std::unique_ptr<OASValidator> validator; std::unique_ptr<OASValidator> validator;
27 };};
28 @@ -938,90 +324,109 @@

GCC Code Coverage Report

29
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
19BENCHMARK_F(OASValidatorPerf, InvalidMethod)(benchmark::State& state)40BENCHMARK_F(OASValidatorPerf, InvalidMethod)(benchmark::State& state)
30 {{
31 +
+ 1/2 +
+
✓ Branch 0 taken 18 times.
+
✗ Branch 1 not taken.
+
+
16 std::string err_msg;36 std::string err_msg;
32
5/8
-
✓ Branch 0 taken 16 times.
+
✓ Branch 0 taken 18 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 16 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 24997732 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 24997716 times.
-
✓ Branch 7 taken 16 times.
+
✓ Branch 3 taken 18 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 116554404 times.
+
✓ Branch 6 taken 18 times.
+
✓ Branch 7 taken 18 times.
+
✗ Branch 8 not taken.
24997732 for (auto _ : state) {233108916 for (auto _ : state) {
33
- 3/6 + 4/12
-
✓ Branch 0 taken 24997716 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 24997716 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 24997716 times.
+
✓ Branch 1 taken 116554404 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 116554404 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 116554404 times.
+
✓ Branch 9 taken 116554404 times.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
24997716 validator->ValidateRoute("GETT", "/test/dummy", err_msg);466217616 validator->ValidateRoute("GETT", "/test/dummy", err_msg);
34 } }
35 16}36}
36 @@ -1029,38 +434,47 @@

GCC Code Coverage Report

37
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
21BENCHMARK_F(OASValidatorPerf, ValidRoute)(benchmark::State& state)40BENCHMARK_F(OASValidatorPerf, ValidRoute)(benchmark::State& state)
38 {{
39 +
+ 1/2 +
+
✓ Branch 0 taken 18 times.
+
✗ Branch 1 not taken.
+
+
18 std::string err_msg;36 std::string err_msg;
40 @@ -1069,134 +483,162 @@

GCC Code Coverage Report

✓ Branch 0 taken 18 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 18 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 90462197 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 90462179 times.
-
✓ Branch 7 taken 18 times.
+
✓ Branch 3 taken 18 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 185858231 times.
+
✓ Branch 6 taken 18 times.
+
✗ Branch 7 not taken.
+
✓ Branch 8 taken 18 times.
90462197 for (auto _ : state) {371716570 for (auto _ : state) {
41
- 3/6 + 4/12
-
✓ Branch 0 taken 90462179 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 90462179 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 90462179 times.
+
✓ Branch 1 taken 185858231 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 185858231 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 185858231 times.
+
✓ Branch 9 taken 185858231 times.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
90462179 validator->ValidateRoute("GET", "/test/dummy", err_msg);743432924 validator->ValidateRoute("GET", "/test/dummy", err_msg);
42 } }
43 18}36}
44
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
17BENCHMARK_F(OASValidatorPerf, InvalidRoute)(benchmark::State& state)18BENCHMARK_F(OASValidatorPerf, InvalidRoute)(benchmark::State& state)
45 {{
46 +
+ 1/2 +
+
✓ Branch 0 taken 16 times.
+
✗ Branch 1 not taken.
+
+
14 std::string err_msg;32 std::string err_msg;
47
5/8
-
✓ Branch 0 taken 14 times.
+
✓ Branch 0 taken 16 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 2256613 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 2256599 times.
-
✓ Branch 7 taken 14 times.
+
✓ Branch 3 taken 16 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 7515581 times.
+
✓ Branch 6 taken 16 times.
+
✓ Branch 7 taken 16 times.
+
✗ Branch 8 not taken.
2256613 for (auto _ : state) {15031258 for (auto _ : state) {
48
- 3/6 + 4/12
-
✓ Branch 0 taken 2256599 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2256599 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 2256599 times.
+
✓ Branch 1 taken 7515581 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 7515581 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 7515581 times.
+
✓ Branch 9 taken 7515581 times.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
2256599 validator->ValidateRoute("GET", "/test/invalid", err_msg);30062324 validator->ValidateRoute("GET", "/test/invalid", err_msg);
49 } }
50 14}32}
51 @@ -1204,90 +646,109 @@

GCC Code Coverage Report

52
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
17BENCHMARK_F(OASValidatorPerf, ValidPathParam)(benchmark::State& state)36BENCHMARK_F(OASValidatorPerf, ValidPathParam)(benchmark::State& state)
53 {{
54 +
+ 1/2 +
+
✓ Branch 0 taken 16 times.
+
✗ Branch 1 not taken.
+
+
14 std::string err_msg;32 std::string err_msg;
55
5/8
-
✓ Branch 0 taken 14 times.
+
✓ Branch 0 taken 16 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1873955 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1873941 times.
-
✓ Branch 7 taken 14 times.
+
✓ Branch 3 taken 16 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 6379612 times.
+
✓ Branch 6 taken 16 times.
+
✗ Branch 7 not taken.
+
✓ Branch 8 taken 16 times.
1873955 for (auto _ : state) {12759320 for (auto _ : state) {
56
- 3/6 + 4/12
-
✓ Branch 0 taken 1873941 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1873941 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1873941 times.
+
✓ Branch 1 taken 6379612 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 6379612 times.
✗ Branch 5 not taken.
+
✓ Branch 6 taken 6379612 times.
+
✗ Branch 7 not taken.
+
✓ Branch 9 taken 6379612 times.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
1873941 validator->ValidatePathParam("GET", "/test/integer_simple_true/123", err_msg);38277672 validator->ValidatePathParam("GET", "/test/integer_simple_true/123", err_msg);
57 } }
58 14}32}
59 @@ -1295,38 +756,47 @@

GCC Code Coverage Report

60
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
17BENCHMARK_F(OASValidatorPerf, InvalidPathParam)(benchmark::State& state)32BENCHMARK_F(OASValidatorPerf, InvalidPathParam)(benchmark::State& state)
61 {{
62 +
+ 1/2 +
+
✓ Branch 0 taken 14 times.
+
✗ Branch 1 not taken.
+
+
14 std::string err_msg;28 std::string err_msg;
63 @@ -1335,50 +805,60 @@

GCC Code Coverage Report

✓ Branch 0 taken 14 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 913821 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 913807 times.
+
✓ Branch 3 taken 14 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 2574586 times.
+
✓ Branch 6 taken 14 times.
✓ Branch 7 taken 14 times.
+
✗ Branch 8 not taken.
913821 for (auto _ : state) {5149256 for (auto _ : state) {
64
- 3/6 + 4/12
-
✓ Branch 0 taken 913807 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 913807 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 913807 times.
+
✓ Branch 1 taken 2574586 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 2574586 times.
✗ Branch 5 not taken.
+
✓ Branch 6 taken 2574586 times.
+
✗ Branch 7 not taken.
+
✓ Branch 9 taken 2574586 times.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
913807 validator->ValidatePathParam("GET", "/test/integer_simple_true/not_an_integer", err_msg);15447516 validator->ValidatePathParam("GET", "/test/integer_simple_true/not_an_integer", err_msg);
65 } }
66 14}28}
67 @@ -1386,90 +866,109 @@

GCC Code Coverage Report

68
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
19BENCHMARK_F(OASValidatorPerf, ValidQueryParam)(benchmark::State& state)38BENCHMARK_F(OASValidatorPerf, ValidQueryParam)(benchmark::State& state)
69 {{
70 +
+ 1/2 +
+
✓ Branch 0 taken 17 times.
+
✗ Branch 1 not taken.
+
+
16 std::string err_msg;34 std::string err_msg;
71
5/8
-
✓ Branch 0 taken 16 times.
+
✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 16 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 12837655 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 12837639 times.
-
✓ Branch 7 taken 16 times.
+
✓ Branch 3 taken 17 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 44004625 times.
+
✓ Branch 6 taken 17 times.
+
✗ Branch 7 not taken.
+
✓ Branch 8 taken 17 times.
12837655 for (auto _ : state) {88009352 for (auto _ : state) {
72
- 3/6 + 4/12
-
✓ Branch 0 taken 12837639 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 12837639 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 12837639 times.
+
✓ Branch 1 taken 44004625 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 44004625 times.
✗ Branch 5 not taken.
+
✓ Branch 6 taken 44004625 times.
+
✗ Branch 7 not taken.
+
✓ Branch 9 taken 44004625 times.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
12837639 validator->ValidateQueryParam("GET", "/test/query_integer_form_true?param=123", err_msg);264027750 validator->ValidateQueryParam("GET", "/test/query_integer_form_true?param=123", err_msg);
73 } }
74 16}34}
75 @@ -1477,90 +976,109 @@

GCC Code Coverage Report

76
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
17BENCHMARK_F(OASValidatorPerf, InvalidQueryParam)(benchmark::State& state)36BENCHMARK_F(OASValidatorPerf, InvalidQueryParam)(benchmark::State& state)
77 {{
78 +
+ 1/2 +
+
✓ Branch 0 taken 16 times.
+
✗ Branch 1 not taken.
+
+
14 std::string err_msg;32 std::string err_msg;
79
5/8
-
✓ Branch 0 taken 14 times.
+
✓ Branch 0 taken 16 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1521942 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1521928 times.
-
✓ Branch 7 taken 14 times.
+
✓ Branch 3 taken 16 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 6631893 times.
+
✓ Branch 6 taken 16 times.
+
✓ Branch 7 taken 16 times.
+
✗ Branch 8 not taken.
1521942 for (auto _ : state) {13263882 for (auto _ : state) {
80
- 3/6 + 4/12
-
✓ Branch 0 taken 1521928 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1521928 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1521928 times.
+
✓ Branch 1 taken 6631893 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 6631893 times.
✗ Branch 5 not taken.
+
✓ Branch 6 taken 6631893 times.
+
✗ Branch 7 not taken.
+
✓ Branch 9 taken 6631893 times.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
1521928 validator->ValidateQueryParam("GET", "/test/query_integer_form_true?param=not_an_integer", err_msg);39791358 validator->ValidateQueryParam("GET", "/test/query_integer_form_true?param=not_an_integer", err_msg);
81 } }
82 14}32}
83 @@ -1568,115 +1086,146 @@

GCC Code Coverage Report

84
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
19BENCHMARK_F(OASValidatorPerf, ValidHeaderParam)(benchmark::State& state)38BENCHMARK_F(OASValidatorPerf, ValidHeaderParam)(benchmark::State& state)
85 {{
86 +
+ 1/2 +
+
✓ Branch 1 taken 17 times.
+
✗ Branch 2 not taken.
+
+
16 std::string err_msg;34 std::string err_msg;
87 +
+ 1/2 +
+
✓ Branch 1 taken 17 times.
+
✗ Branch 2 not taken.
+
+
16 std::unordered_map<std::string, std::string> headers;34 std::unordered_map<std::string, std::string> headers;
88
3/6
-
✓ Branch 0 taken 16 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 16 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 16 times.
+
✓ Branch 1 taken 17 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 17 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 17 times.
16 headers["intHeader"] = "123";68 headers["intHeader"] = "123";
89
- 5/8 + 4/6
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 16 times.
-
✓ Branch 2 taken 16 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 14606169 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 14606153 times.
-
✓ Branch 7 taken 16 times.
+
✓ Branch 0 taken 17 times.
+
✗ Branch 1 not taken.
+
✓ Branch 3 taken 17 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 45047063 times.
+
✓ Branch 6 taken 17 times.
14606169 for (auto _ : state) {90094228 for (auto _ : state) {
90
- 3/6 + 4/10
-
✓ Branch 0 taken 14606153 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 14606153 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 14606153 times.
+
✓ Branch 1 taken 45047063 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 45047063 times.
✗ Branch 5 not taken.
+
✓ Branch 6 taken 45047063 times.
+
✗ Branch 7 not taken.
+
✓ Branch 9 taken 45047063 times.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
14606153 validator->ValidateHeaders("GET", "/test/header_single1", headers, err_msg);270282378 validator->ValidateHeaders("GET", "/test/header_single1", headers, err_msg);
91 } }
92 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 17 times.
+
+
16}34}
93 @@ -1684,115 +1233,139 @@

GCC Code Coverage Report

94
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
17BENCHMARK_F(OASValidatorPerf, InvalidHeaderParam)(benchmark::State& state)36BENCHMARK_F(OASValidatorPerf, InvalidHeaderParam)(benchmark::State& state)
95 {{
96 +
+ 1/2 +
+
✓ Branch 1 taken 16 times.
+
✗ Branch 2 not taken.
+
+
14 std::string err_msg;32 std::string err_msg;
97 +
+ 1/2 +
+
✓ Branch 1 taken 16 times.
+
✗ Branch 2 not taken.
+
+
14 std::unordered_map<std::string, std::string> headers;32 std::unordered_map<std::string, std::string> headers;
98
3/6
-
✓ Branch 0 taken 14 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 14 times.
+
✓ Branch 1 taken 16 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 16 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 16 times.
14 headers["intHeader"] = "not_an_integer";64 headers["intHeader"] = "not_an_integer";
99
- 5/8 + 4/6
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 14 times.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1536502 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1536488 times.
-
✓ Branch 7 taken 14 times.
+
✓ Branch 0 taken 16 times.
+
✗ Branch 1 not taken.
+
✓ Branch 3 taken 16 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 6663887 times.
+
✓ Branch 6 taken 16 times.
1536502 for (auto _ : state) {13327870 for (auto _ : state) {
100
- 3/6 + 4/10
-
✓ Branch 0 taken 1536488 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1536488 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1536488 times.
+
✓ Branch 1 taken 6663887 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 6663887 times.
✗ Branch 5 not taken.
+
✓ Branch 6 taken 6663887 times.
+
✗ Branch 7 not taken.
+
✓ Branch 9 taken 6663887 times.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
1536488 validator->ValidateHeaders("GET", "/test/header_single1", headers, err_msg);39983322 validator->ValidateHeaders("GET", "/test/header_single1", headers, err_msg);
101 } }
102 14}32}
103 @@ -1800,92 +1373,115 @@

GCC Code Coverage Report

104
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
18BENCHMARK_F(OASValidatorPerf, ValidBody)(benchmark::State& state)36BENCHMARK_F(OASValidatorPerf, ValidBody)(benchmark::State& state)
105 {{
106 +
+ 1/2 +
+
✓ Branch 0 taken 16 times.
+
✗ Branch 1 not taken.
+
+
15 std::string err_msg;32 std::string err_msg;
107
5/8
-
✓ Branch 0 taken 15 times.
+
✓ Branch 0 taken 16 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 15 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 4200225 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 4200210 times.
-
✓ Branch 7 taken 15 times.
+
✓ Branch 3 taken 16 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 12108546 times.
+
✓ Branch 6 taken 16 times.
+
✗ Branch 7 not taken.
+
✓ Branch 8 taken 16 times.
4200225 for (auto _ : state) {24217188 for (auto _ : state) {
108
- 4/8 + 6/18
-
✓ Branch 0 taken 4200210 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 4200210 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 4200210 times.
+
✓ Branch 1 taken 12108546 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 12108546 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 4200210 times.
-
✗ Branch 7 not taken.
-
-
-
4200210 validator->ValidateBody("POST", "/test/body_scenario20", R"({"level1":{"level2":{"level3":"abc"}}})", err_msg);96868368 validator->ValidateBody("POST", "/test/body_scenario20", R"({"level1":{"level2":{"level3":"abc"}}})", err_msg);
109 } }
110 15}32}
111 @@ -1893,38 +1489,47 @@

GCC Code Coverage Report

112
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
19BENCHMARK_F(OASValidatorPerf, InvalidBody)(benchmark::State& state)36BENCHMARK_F(OASValidatorPerf, InvalidBody)(benchmark::State& state)
113 {{
114 +
+ 1/2 +
+
✓ Branch 0 taken 16 times.
+
✗ Branch 1 not taken.
+
+
16 std::string err_msg;32 std::string err_msg;
115 @@ -1933,52 +1538,66 @@

GCC Code Coverage Report

✓ Branch 0 taken 16 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 16 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 5829199 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 5829183 times.
-
✓ Branch 7 taken 16 times.
+
✓ Branch 3 taken 16 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 13384727 times.
+
✓ Branch 6 taken 16 times.
+
✗ Branch 7 not taken.
+
✓ Branch 8 taken 16 times.
5829199 for (auto _ : state) {26769550 for (auto _ : state) {
116
- 4/8 + 6/18
-
✓ Branch 0 taken 5829183 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 5829183 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 5829183 times.
+
✓ Branch 1 taken 13384727 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 13384727 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 5829183 times.
-
✗ Branch 7 not taken.
-
-
-
5829183 validator->ValidateBody("POST", "/test/body_scenario20", R"({"level1":{"level2":{"not_a_level":"abc"}}})", err_msg);107077816 validator->ValidateBody("POST", "/test/body_scenario20", R"({"level1":{"level2":{"not_a_level":"abc"}}})", err_msg);
117 } }
118 16}32}
119 @@ -1986,129 +1605,160 @@

GCC Code Coverage Report

120
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
17BENCHMARK_F(OASValidatorPerf, ValidRequest)(benchmark::State& state)32BENCHMARK_F(OASValidatorPerf, ValidRequest)(benchmark::State& state)
121 {{
122 +
+ 1/2 +
+
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
+
+
14 std::string err_msg;28 std::string err_msg;
123 +
+ 1/2 +
+
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
+
+
14 std::unordered_map<std::string, std::string> headers;28 std::unordered_map<std::string, std::string> headers;
124
3/6
-
✓ Branch 0 taken 14 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 14 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 14 times.
14 headers["param11"] = "true";56 headers["param11"] = "true";
125
- 5/8 + 4/6
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 14 times.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 914019 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 914005 times.
-
✓ Branch 7 taken 14 times.
+
✓ Branch 0 taken 14 times.
+
✗ Branch 1 not taken.
+
✓ Branch 3 taken 14 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 2200413 times.
+
✓ Branch 6 taken 14 times.
914019 for (auto _ : state) {4400910 for (auto _ : state) {
126
- 3/6 + 6/16
-
✓ Branch 0 taken 914005 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 914005 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 914005 times.
+
✓ Branch 1 taken 2200413 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 2200413 times.
✗ Branch 5 not taken.
+
✓ Branch 7 taken 2200413 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 2200413 times.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 2200413 times.
+
✗ Branch 12 not taken.
+
✓ Branch 14 taken 2200413 times.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
1828010 validator->ValidateRequest("POST", "/test/all/123?param4=123&param4=456",17603304 validator->ValidateRequest("POST", "/test/all/123?param4=123&param4=456",
127 -
- 1/2 -
-
✓ Branch 0 taken 914005 times.
-
✗ Branch 1 not taken.
-
-
914005 R"({"field1":123,"field2":"abc","field3":["abc","def"],"field4":{"subfield1":123,"subfield2":"abc"}})", headers, err_msg); R"({"field1":123,"field2":"abc","field3":["abc","def"],"field4":{"subfield1":123,"subfield2":"abc"}})", headers, err_msg);
128 } }
129 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 14 times.
+
+
14}28}
130 @@ -2116,129 +1766,160 @@

GCC Code Coverage Report

131
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
1940 BENCHMARK_F(OASValidatorPerf, InvalidRequest1)(benchmark::State& state) // Check 1: Invalid method
132 {{
133 +
+ 1/2 +
+
✓ Branch 1 taken 18 times.
+
✗ Branch 2 not taken.
+
+
16 std::string err_msg;36 std::string err_msg;
134 +
+ 1/2 +
+
✓ Branch 1 taken 18 times.
+
✗ Branch 2 not taken.
+
+
16 std::unordered_map<std::string, std::string> headers;36 std::unordered_map<std::string, std::string> headers;
135
3/6
-
✓ Branch 0 taken 16 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 16 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 16 times.
+
✓ Branch 1 taken 18 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 18 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 18 times.
16 headers["param11"] = "true";72 headers["param11"] = "true";
136
- 5/8 + 4/6
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 16 times.
-
✓ Branch 2 taken 16 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 25709281 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 25709265 times.
-
✓ Branch 7 taken 16 times.
+
✓ Branch 0 taken 18 times.
+
✗ Branch 1 not taken.
+
✓ Branch 3 taken 18 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 91108671 times.
+
✓ Branch 6 taken 18 times.
25709281 for (auto _ : state) {182217450 for (auto _ : state) {
137
- 3/6 + 6/16
-
✓ Branch 0 taken 25709265 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 25709265 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 25709265 times.
+
✓ Branch 1 taken 91108671 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 91108671 times.
✗ Branch 5 not taken.
+
✓ Branch 7 taken 91108671 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 91108671 times.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 91108671 times.
+
✗ Branch 12 not taken.
+
✓ Branch 14 taken 91108671 times.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
51418530 validator->ValidateRequest("POSTT", "/test/all/123?param4=123&param4=456",728869368 validator->ValidateRequest("POSTT", "/test/all/123?param4=123&param4=456",
138 -
- 1/2 -
-
✓ Branch 0 taken 25709265 times.
-
✗ Branch 1 not taken.
-
-
25709265 R"({"field1":123,"field2":"abc","field3":["abc","def"],"field4":{"subfield1":123,"subfield2":"abc"}})", headers, err_msg); R"({"field1":123,"field2":"abc","field3":["abc","def"],"field4":{"subfield1":123,"subfield2":"abc"}})", headers, err_msg);
139 } }
140 +
+ 1/2 +
+
✓ Branch 0 taken 18 times.
+
✗ Branch 1 not taken.
+
+
16}72}
141 @@ -2246,247 +1927,313 @@

GCC Code Coverage Report

142
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
1736 BENCHMARK_F(OASValidatorPerf, InvalidRequest2)(benchmark::State& state)// Check 2: Invalid Path
143 {{
144 +
+ 1/2 +
+
✓ Branch 1 taken 16 times.
+
✗ Branch 2 not taken.
+
+
14 std::string err_msg;32 std::string err_msg;
145 +
+ 1/2 +
+
✓ Branch 1 taken 16 times.
+
✗ Branch 2 not taken.
+
+
14 std::unordered_map<std::string, std::string> headers;32 std::unordered_map<std::string, std::string> headers;
146
3/6
-
✓ Branch 0 taken 14 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 14 times.
+
✓ Branch 1 taken 16 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 16 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 16 times.
14 headers["param11"] = "true";64 headers["param11"] = "true";
147
- 5/8 + 4/6
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 14 times.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 2253563 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 2253549 times.
-
✓ Branch 7 taken 14 times.
+
✓ Branch 0 taken 16 times.
+
✗ Branch 1 not taken.
+
✓ Branch 3 taken 16 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 7576762 times.
+
✓ Branch 6 taken 16 times.
2253563 for (auto _ : state) {15153620 for (auto _ : state) {
148
- 4/8 + 6/16
-
✓ Branch 0 taken 2253549 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2253549 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 2253549 times.
+
✓ Branch 1 taken 7576762 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 7576762 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 2253549 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 7576762 times.
+
✗ Branch 8 not taken.
+
✗ Branch 9 not taken.
+
✓ Branch 10 taken 7576762 times.
+
✓ Branch 11 taken 7576762 times.
+
✗ Branch 12 not taken.
+
✓ Branch 14 taken 7576762 times.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
2253549 validator->ValidateRequest("POST", "/invalid/path", R"({"field1":123,"field2":"abc","field3":["abc","def"],"field4":{"subfield1":123,"subfield2":"abc"}})", headers,45460572 validator->ValidateRequest("POST", "/invalid/path", R"({"field1":123,"field2":"abc","field3":["abc","def"],"field4":{"subfield1":123,"subfield2":"abc"}})", headers,
149 err_msg); err_msg);
150 } }
151 +
+ 1/2 +
+
✓ Branch 0 taken 16 times.
+
✗ Branch 1 not taken.
+
+
14}64}
152
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
1716 BENCHMARK_F(OASValidatorPerf, InvalidRequest3)(benchmark::State& state) // Check 3: Invalid Path param
153 {{
154 +
+ 1/2 +
+
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
+
+
14 std::string err_msg;28 std::string err_msg;
155 +
+ 1/2 +
+
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
+
+
14 std::unordered_map<std::string, std::string> headers;28 std::unordered_map<std::string, std::string> headers;
156
3/6
-
✓ Branch 0 taken 14 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 14 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 14 times.
14 headers["param11"] = "true";56 headers["param11"] = "true";
157
- 5/8 + 4/6
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 14 times.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 763479 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 763465 times.
-
✓ Branch 7 taken 14 times.
+
✓ Branch 0 taken 14 times.
+
✗ Branch 1 not taken.
+
✓ Branch 3 taken 14 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 1774440 times.
+
✓ Branch 6 taken 14 times.
763479 for (auto _ : state) {3548964 for (auto _ : state) {
158
- 3/6 + 6/16
-
✓ Branch 0 taken 763465 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 763465 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 763465 times.
+
✓ Branch 1 taken 1774440 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 1774440 times.
✗ Branch 5 not taken.
+
✓ Branch 7 taken 1774440 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 1774440 times.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 1774440 times.
+
✗ Branch 12 not taken.
+
✓ Branch 14 taken 1774440 times.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
1526930 validator->ValidateRequest("POST", "/test/all/not_a_number?param4=123&param4=456",14195520 validator->ValidateRequest("POST", "/test/all/not_a_number?param4=123&param4=456",
159 -
- 1/2 -
-
✓ Branch 0 taken 763465 times.
-
✗ Branch 1 not taken.
-
-
763465 R"({"field1":123,"field2":"abc","field3":["abc","def"],"field4":{"subfield1":123,"subfield2":"abc"}})", headers, err_msg); R"({"field1":123,"field2":"abc","field3":["abc","def"],"field4":{"subfield1":123,"subfield2":"abc"}})", headers, err_msg);
160 } }
161 +
+ 1/2 +
+
✓ Branch 0 taken 14 times.
+
✗ Branch 1 not taken.
+
+
14}56}
162 @@ -2494,129 +2241,160 @@

GCC Code Coverage Report

163
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
1732 BENCHMARK_F(OASValidatorPerf, InvalidRequest4)(benchmark::State& state)// Check 4: Invalid Query param
164 {{
165 +
+ 1/2 +
+
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
+
+
14 std::string err_msg;28 std::string err_msg;
166 +
+ 1/2 +
+
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
+
+
14 std::unordered_map<std::string, std::string> headers;28 std::unordered_map<std::string, std::string> headers;
167
3/6
-
✓ Branch 0 taken 14 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 14 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 14 times.
14 headers["param11"] = "true";56 headers["param11"] = "true";
168
- 5/8 + 4/6
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 14 times.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 715745 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 715731 times.
-
✓ Branch 7 taken 14 times.
+
✓ Branch 0 taken 14 times.
+
✗ Branch 1 not taken.
+
✓ Branch 3 taken 14 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 1501096 times.
+
✓ Branch 6 taken 14 times.
715745 for (auto _ : state) {3002276 for (auto _ : state) {
169
- 3/6 + 6/16
-
✓ Branch 0 taken 715731 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 715731 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 715731 times.
+
✓ Branch 1 taken 1501096 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 1501096 times.
✗ Branch 5 not taken.
+
✓ Branch 7 taken 1501096 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 1501096 times.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 1501096 times.
+
✗ Branch 12 not taken.
+
✓ Branch 14 taken 1501096 times.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
1431462 validator->ValidateRequest("POST", "/test/all/123?param4=not_a_number&param4=456",12008768 validator->ValidateRequest("POST", "/test/all/123?param4=not_a_number&param4=456",
170 -
- 1/2 -
-
✓ Branch 0 taken 715731 times.
-
✗ Branch 1 not taken.
-
-
715731 R"({"field1":123,"field2":"abc","field3":["abc","def"],"field4":{"subfield1":123,"subfield2":"abc"}})", headers, err_msg); R"({"field1":123,"field2":"abc","field3":["abc","def"],"field4":{"subfield1":123,"subfield2":"abc"}})", headers, err_msg);
171 } }
172 +
+ 1/2 +
+
✓ Branch 0 taken 14 times.
+
✗ Branch 1 not taken.
+
+
14}56}
173 @@ -2624,129 +2402,160 @@

GCC Code Coverage Report

174
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
1732 BENCHMARK_F(OASValidatorPerf, InvalidRequest5)(benchmark::State& state)// Check 5: Invalid Header param
175 {{
176 +
+ 1/2 +
+
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
+
+
14 std::string err_msg;28 std::string err_msg;
177 +
+ 1/2 +
+
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
+
+
14 std::unordered_map<std::string, std::string> headers;28 std::unordered_map<std::string, std::string> headers;
178
3/6
-
✓ Branch 0 taken 14 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 14 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 14 times.
14 headers["param11"] = "not_a_bool";56 headers["param11"] = "not_a_bool";
179
- 5/8 + 4/6
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 14 times.
-
✓ Branch 2 taken 14 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 688792 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 688778 times.
-
✓ Branch 7 taken 14 times.
+
✓ Branch 0 taken 14 times.
+
✗ Branch 1 not taken.
+
✓ Branch 3 taken 14 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 1546142 times.
+
✓ Branch 6 taken 14 times.
688792 for (auto _ : state) {3092368 for (auto _ : state) {
180
- 3/6 + 6/16
-
✓ Branch 0 taken 688778 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 688778 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 688778 times.
+
✓ Branch 1 taken 1546142 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 1546142 times.
✗ Branch 5 not taken.
+
✓ Branch 7 taken 1546142 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 1546142 times.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 1546142 times.
+
✗ Branch 12 not taken.
+
✓ Branch 14 taken 1546142 times.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
1377556 validator->ValidateRequest("POST", "/test/all/123?param4=123&param4=456",12369136 validator->ValidateRequest("POST", "/test/all/123?param4=123&param4=456",
181 -
- 1/2 -
-
✓ Branch 0 taken 688778 times.
-
✗ Branch 1 not taken.
-
-
688778 R"({"field1":123,"field2":"abc","field3":["abc","def"],"field4":{"subfield1":123,"subfield2":"abc"}})", headers, err_msg); R"({"field1":123,"field2":"abc","field3":["abc","def"],"field4":{"subfield1":123,"subfield2":"abc"}})", headers, err_msg);
182 } }
183 +
+ 1/2 +
+
✓ Branch 0 taken 14 times.
+
✗ Branch 1 not taken.
+
+
14}56}
184 @@ -2754,187 +2563,219 @@

GCC Code Coverage Report

185
- 3/6 + 2/4
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
+
✗ Branch 6 not taken.
15BENCHMARK_F(OASValidatorPerf, ComplexValidRequest)(benchmark::State& state)32BENCHMARK_F(OASValidatorPerf, ComplexValidRequest)(benchmark::State& state)
186 {{
187 +
+ 1/2 +
+
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
+
+
12 std::string err_msg;28 std::string err_msg;
188 +
+ 1/2 +
+
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
+
+
12 std::unordered_map<std::string, std::string> headers;28 std::unordered_map<std::string, std::string> headers;
189
3/6
-
✓ Branch 0 taken 12 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 12 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 12 times.
+
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 14 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 14 times.
12 headers["param11"] = "true";56 headers["param11"] = "true";
190
3/6
-
✓ Branch 0 taken 12 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 12 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 12 times.
+
✓ Branch 1 taken 14 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 14 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 14 times.
12 headers["param12"] = "field1=0&field2=string";56 headers["param12"] = "field1=0&field2=string";
191
- 5/8 + 4/6
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 12 times.
-
✓ Branch 2 taken 12 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 189520 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 189508 times.
-
✓ Branch 7 taken 12 times.
+
✓ Branch 0 taken 14 times.
+
✗ Branch 1 not taken.
+
✓ Branch 3 taken 14 times.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 702840 times.
+
✓ Branch 6 taken 14 times.
189520 for (auto _ : state) {1405764 for (auto _ : state) {
192
- 2/4 + 6/16
-
✓ Branch 0 taken 189508 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 189508 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 702840 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 702840 times.
+
✗ Branch 5 not taken.
+
✓ Branch 7 taken 702840 times.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 702840 times.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 702840 times.
+
✗ Branch 12 not taken.
+
✓ Branch 14 taken 702840 times.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
379016 validator->ValidateRequest("POST",5622720 validator->ValidateRequest("POST",
193 -
- 1/2 -
-
✓ Branch 0 taken 189508 times.
-
✗ Branch 1 not taken.
-
-
189508 "/test/all/123/abc/str1,str2/" "/test/all/123/abc/str1,str2/"
194 "field1,0,field2,string?param4=string1&param4=string2&param5=field1,0,field2,string&param6=field1,0,field2,string&" "field1,0,field2,string?param4=string1&param4=string2&param5=field1,0,field2,string&param6=field1,0,field2,string&"
195 "param7=field1,0,field2,string&param8=field1,0,field2,string&param9=field1,0,field2,string&param10=false", "param7=field1,0,field2,string&param8=field1,0,field2,string&param9=field1,0,field2,string&param10=false",
196 -
- 1/2 -
-
✓ Branch 0 taken 189508 times.
-
✗ Branch 1 not taken.
-
-
189508 R"({"field1":123,"field2":"abc","field3":["abc","def"],"field4":{"subfield1":123,"subfield2":"abc"},"field5":{"subfield1":123},"field6":"abc",)" R"({"field1":123,"field2":"abc","field3":["abc","def"],"field4":{"subfield1":123,"subfield2":"abc"},"field5":{"subfield1":123},"field6":"abc",)"
197 R"("field7":[123,456],"field8":[123,456],"field9":"abc","field10":"option1","field11":{"field":123},"field12":[{"name":"abc"},{"name":"def"}]})", R"("field7":[123,456],"field8":[123,456],"field9":"abc","field10":"option1","field11":{"field":123},"field12":[{"name":"abc"},{"name":"def"}]})",
198 headers, err_msg); headers, err_msg);
199 } }
200 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 14 times.
+
+
12}28}
201 @@ -2943,14 +2784,15 @@

GCC Code Coverage Report

✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
-
✗ Branch 2 not taken.
-
✓ Branch 3 taken 1 times.
+
✓ Branch 4 taken 1 times.
+
✗ Branch 5 not taken.
1BENCHMARK_MAIN();BENCHMARK_MAIN();
202 @@ -2958,13 +2800,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.primitive_deserializer.cpp.94bfeb2e505185c760bb10353a0598d1.html b/covhtml-oasvalidator/index.primitive_deserializer.cpp.94bfeb2e505185c760bb10353a0598d1.html index f761222..27ea19a 100644 --- a/covhtml-oasvalidator/index.primitive_deserializer.cpp.94bfeb2e505185c760bb10353a0598d1.html +++ b/covhtml-oasvalidator/index.primitive_deserializer.cpp.94bfeb2e505185c760bb10353a0598d1.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,66 +40,22 @@

GCC Code Coverage Report

Lines: - 21 - 22 - 95.5% - - - Functions: - 2 - 2 + 24 + 24 100.0% Branches: - 11 - 13 - 84.6% + 18 + 21 + 85.7%
-
+ -
-
+
- - -
@@ -109,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + + - - + + + - - + + + - + + - - + + + - - + + + - - + + + - + + - - + + + + - - + + + + - - + + + - - + + + - - + + + - - + + + + - - + + + + - - + + + - - + + + + - - + + + - - + + + - - + + + - + + + - - + + + - - + + + - + + + - - + + + - + + - + + + - - + + + - + + - + + - + + + - - + + + + - - + + + - - + + + +
Exec Source
1 @@ -116,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -123,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -130,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -144,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -151,13 +113,15 @@

GCC Code Coverage Report

7 #include "deserializers/primitive_deserializer.hpp"#include "deserializers/primitive_deserializer.hpp"
8 @@ -165,62 +129,71 @@

GCC Code Coverage Report

9 2470PrimitiveDeserializer::PrimitiveDeserializer(const std::string& param_name, char start, bool skip_name, PrimitiveType param_type)1235PrimitiveDeserializer::PrimitiveDeserializer(const std::string& param_name, char start, bool skip_name, PrimitiveType param_type)
10 1235 : BaseDeserializer(param_name, start, skip_name) : BaseDeserializer(param_name, start, skip_name)
11 1235 , param_type_(param_type) , param_type_(param_type)
12 3705{{
13 2470}1235}
14 104781093std::string PrimitiveDeserializer::Deserialize(const char* beg, const char* const end)124178959std::string PrimitiveDeserializer::Deserialize(const char* beg, const char* const end)
15 {{
16 104781093 const char* cursor = beg;124178959 const char* cursor = beg;
17 @@ -228,13 +201,15 @@

GCC Code Coverage Report

18 104781093 CheckNSkipStart(cursor);124178959 CheckNSkipStart(cursor);
19 @@ -242,41 +217,46 @@

GCC Code Coverage Report

20
2/2
-
✓ Branch 0 taken 90231961 times.
-
✓ Branch 1 taken 14549132 times.
+
✓ Branch 0 taken 51339415 times.
+
✓ Branch 1 taken 72839540 times.
104781093 if (skip_name_) {124178955 if (skip_name_) {
21 14549132 CheckNSkipName(cursor, end);51339415 CheckNSkipName(cursor, end);
22 14549132 CheckNSkipChar(cursor, end, '=');51339413 CheckNSkipChar(cursor, end, '=');
23 14549132 } }
24 @@ -284,13 +264,15 @@

GCC Code Coverage Report

25 104781093 CheckData(cursor, end);124178953 CheckData(cursor, end);
26 @@ -298,27 +280,37 @@

GCC Code Coverage Report

27 +
+ 1/2 +
+
✓ Branch 1 taken 124178953 times.
+
✗ Branch 2 not taken.
+
+
104781093 std::string ret;124178953 std::string ret;
28
- 2/2 + 1/2
-
✓ Branch 0 taken 38543363 times.
-
✓ Branch 1 taken 66237730 times.
+
✓ Branch 1 taken 124178953 times.
+
✗ Branch 2 not taken.
104781093 ret.reserve(static_cast<size_t>(end - beg + 2));124178953 ret.reserve(static_cast<size_t>(end - beg + 2));
29 @@ -326,44 +318,56 @@

GCC Code Coverage Report

30
4/5
-
✓ Branch 0 taken 1981828 times.
-
✓ Branch 1 taken 36561489 times.
+
✓ Branch 0 taken 5152264 times.
+
✓ Branch 1 taken 119026643 times.
✓ Branch 2 taken 17 times.
✓ Branch 3 taken 29 times.
✗ Branch 4 not taken.
38543363 switch (param_type_) {124178953 switch (param_type_) {
31 case PrimitiveType::BOOLEAN:5152264 case PrimitiveType::BOOLEAN:
32 +
+ 2/2 +
+
✓ Branch 1 taken 3606115 times.
+
✓ Branch 2 taken 1546149 times.
+
+
1981828 DeserializeBoolean(cursor, end, ret);5152264 DeserializeBoolean(cursor, end, ret);
33 break; break;
34 @@ -371,27 +375,38 @@

GCC Code Coverage Report

35 case PrimitiveType::INTEGER:119026643 case PrimitiveType::INTEGER:
36 +
+ 2/2 +
+
✓ Branch 1 taken 101381834 times.
+
✓ Branch 2 taken 17644809 times.
+
+
36561489 DeserializeInteger(cursor, end, ret);119026643 DeserializeInteger(cursor, end, ret);
37 break; break;
38 @@ -399,27 +414,38 @@

GCC Code Coverage Report

39 case PrimitiveType::NUMBER:17 case PrimitiveType::NUMBER:
40 +
+ 2/2 +
+
✓ Branch 1 taken 12 times.
+
✓ Branch 2 taken 5 times.
+
+
17 DeserializeNumber(cursor, end, ret); DeserializeNumber(cursor, end, ret);
41 break; break;
42 @@ -427,34 +453,46 @@

GCC Code Coverage Report

43 case PrimitiveType::STRING:29 case PrimitiveType::STRING:
44 +
+ 2/2 +
+
✓ Branch 1 taken 22 times.
+
✓ Branch 2 taken 7 times.
+
+
29 DeserializeString(cursor, end, ret); DeserializeString(cursor, end, ret);
45 break; break;
46 } }
47 @@ -462,13 +500,22 @@

GCC Code Coverage Report

48 +
+ 2/2 +
+
✓ Branch 1 taken 104987973 times.
+
✓ Branch 2 taken 10 times.
+
+
CheckEnd(cursor, end);104987983 CheckEnd(cursor, end);
49 @@ -476,27 +523,23 @@

GCC Code Coverage Report

50 return ret;104987973 return ret;
51 -
- 1/2 -
-
✓ Branch 0 taken 33118865 times.
-
✗ Branch 1 not taken.
-
-
171018823}19190980}
52 @@ -504,13 +547,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.primitive_deserializer.cpp.c7ae8039f1ae5dec9fb958e1f83f0b46.html b/covhtml-oasvalidator/index.primitive_deserializer.cpp.c7ae8039f1ae5dec9fb958e1f83f0b46.html index d88ce5a..778240c 100644 --- a/covhtml-oasvalidator/index.primitive_deserializer.cpp.c7ae8039f1ae5dec9fb958e1f83f0b46.html +++ b/covhtml-oasvalidator/index.primitive_deserializer.cpp.c7ae8039f1ae5dec9fb958e1f83f0b46.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -45,139 +44,18 @@

GCC Code Coverage Report

22 100.0% - - Functions: - 9 - 9 - 100.0% - Branches: - 24 - 58 - 41.4% + 32 + 109 + 29.4%
-
- -
-
- - +
-
@@ -186,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + - + + - + + - + + - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - + + - + + - + + - + + - + + + - + + - + + - + + - + + - + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + +
Exec Source
1 @@ -193,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -200,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -207,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -221,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -228,41 +113,47 @@

GCC Code Coverage Report

7 #include "deserializers/primitive_deserializer.hpp"#include "deserializers/primitive_deserializer.hpp"
8 #include <gtest/gtest.h>#include <gtest/gtest.h>
9 #include <memory>#include <memory>
10 #include <string>#include <string>
11 #include <tuple>#include <tuple>
12 @@ -270,69 +161,79 @@

GCC Code Coverage Report

13 enum : size_tenum : size_t
14 {{
15 INPUT, INPUT,
16 TYPE, TYPE,
17 EXPECTED, EXPECTED,
18 START_CHAR, START_CHAR,
19 SKIP_NAME, SKIP_NAME,
20 SHOULD_THROW SHOULD_THROW
21 };};
22 @@ -340,104 +241,138 @@

GCC Code Coverage Report

23 class PrimitiveDeserializerTest: public ::testing::TestWithParam<std::tuple<std::string, PrimitiveType, std::string, char, bool, bool>>20class PrimitiveDeserializerTest: public ::testing::TestWithParam<std::tuple<std::string, PrimitiveType, std::string, char, bool, bool>>
24 {{
25 protected:protected:
26 20 void SetUp() override void SetUp() override
27 { {
28 20 auto params = GetParam(); auto params = GetParam();
29
1/2
-
✓ Branch 0 taken 20 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 20 times.
+
✗ Branch 2 not taken.
20 std::string input = std::get<INPUT>(params); std::string input = std::get<INPUT>(params);
30 +
+ 1/2 +
+
✓ Branch 1 taken 20 times.
+
✗ Branch 2 not taken.
+
+
20 PrimitiveType type = std::get<TYPE>(params); PrimitiveType type = std::get<TYPE>(params);
31
1/2
-
✓ Branch 0 taken 20 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 20 times.
+
✗ Branch 2 not taken.
20 std::string expected = std::get<EXPECTED>(params); std::string expected = std::get<EXPECTED>(params);
32 +
+ 1/2 +
+
✓ Branch 1 taken 20 times.
+
✗ Branch 2 not taken.
+
+
20 char start_char = std::get<START_CHAR>(params); char start_char = std::get<START_CHAR>(params);
33 20 bool skip_name = std::get<SKIP_NAME>(params); bool skip_name = std::get<SKIP_NAME>(params);
34 +
+ 1/2 +
+
✓ Branch 1 taken 20 times.
+
✗ Branch 2 not taken.
+
+
20 bool should_throw = std::get<SHOULD_THROW>(params); bool should_throw = std::get<SHOULD_THROW>(params);
35 @@ -445,62 +380,86 @@

GCC Code Coverage Report

36
- 1/2 + 3/6
-
✗ Branch 0 not taken.
✓ Branch 1 taken 20 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 20 times.
+
✗ Branch 5 not taken.
+
✓ Branch 6 taken 20 times.
20 deserializer_ = std::make_unique<PrimitiveDeserializer>("test", start_char, skip_name, type); deserializer_ = std::make_unique<PrimitiveDeserializer>("test", start_char, skip_name, type);
37
1/2
-
✓ Branch 0 taken 20 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 20 times.
+
✗ Branch 2 not taken.
20 input_ = input; input_ = input;
38
1/2
-
✓ Branch 0 taken 20 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 20 times.
+
✗ Branch 2 not taken.
20 expected_ = expected; expected_ = expected;
39 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 20 times.
+
+
20 expect_throw_ = should_throw; expect_throw_ = should_throw;
40 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 20 times.
+
+
20 } }
41 @@ -508,41 +467,47 @@

GCC Code Coverage Report

42 std::unique_ptr<PrimitiveDeserializer> deserializer_; std::unique_ptr<PrimitiveDeserializer> deserializer_;
43 std::string input_; std::string input_;
44 std::string expected_; std::string expected_;
45 bool expect_throw_; bool expect_throw_;
46 };};
47 @@ -550,35 +515,50 @@

GCC Code Coverage Report

48
- 5/10 + 8/22
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 20 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
+
✗ Branch 11 not taken.
+
✓ Branch 13 taken 1 times.
+
✗ Branch 14 not taken.
+
✓ Branch 15 taken 1 times.
+
✗ Branch 16 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 18 not taken.
+
✓ Branch 19 taken 1 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
62TEST_P(PrimitiveDeserializerTest, Deserialize)74TEST_P(PrimitiveDeserializerTest, Deserialize)
49 {{
50 @@ -590,89 +570,127 @@

GCC Code Coverage Report

20 if (expect_throw_) {40 if (expect_throw_) {
51
- 6/16 + 5/41
-
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
-
✓ Branch 2 taken 4 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 4 times.
-
✗ Branch 5 not taken.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 4 times.
+
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 4 times.
-
✓ Branch 8 taken 4 times.
✗ Branch 9 not taken.
-
✓ Branch 10 taken 4 times.
-
✗ Branch 11 not taken.
+
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
-
✗ Branch 14 not taken.
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✓ Branch 23 taken 4 times.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✓ Branch 28 taken 4 times.
+
✗ Branch 29 not taken.
+
✗ Branch 32 not taken.
+
✗ Branch 33 not taken.
+
✗ Branch 35 not taken.
+
✗ Branch 36 not taken.
+
✗ Branch 37 not taken.
+
✗ Branch 38 not taken.
+
✗ Branch 40 not taken.
+
✗ Branch 41 not taken.
+
✗ Branch 44 not taken.
+
✗ Branch 45 not taken.
+
✗ Branch 47 not taken.
+
✗ Branch 48 not taken.
+
✗ Branch 52 not taken.
+
✗ Branch 53 not taken.
+
✗ Branch 55 not taken.
+
✗ Branch 56 not taken.
+
✗ Branch 60 not taken.
+
✗ Branch 61 not taken.
+
✗ Branch 62 not taken.
+
✗ Branch 63 not taken.
8 EXPECT_THROW({ deserializer_->Deserialize(input_.c_str(), input_.c_str() + input_.size()); }, DeserializationException);16 EXPECT_THROW({ deserializer_->Deserialize(input_.c_str(), input_.c_str() + input_.size()); }, DeserializationException);
52 4 } else { } else {
53 16 std::string result = deserializer_->Deserialize(input_.c_str(), input_.c_str() + input_.size());32 std::string result = deserializer_->Deserialize(input_.c_str(), input_.c_str() + input_.size());
54
- 2/12 + 4/18
-
✓ Branch 0 taken 16 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 16 times.
+
✓ Branch 1 taken 16 times.
+
✗ Branch 2 not taken.
✗ Branch 3 not taken.
-
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
+
✓ Branch 4 taken 16 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✓ Branch 17 taken 1 times.
+
✓ Branch 18 taken 15 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
16 EXPECT_EQ(result, expected_);64 EXPECT_EQ(result, expected_);
55 16 }32 }
56 24}40}
57 @@ -680,117 +698,126 @@

GCC Code Coverage Report

58
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
-
✓ Branch 7 taken 1 times.
+
✓ Branch 2 taken 20 times.
22INSTANTIATE_TEST_CASE_P(42INSTANTIATE_TEST_CASE_P(
59 PrimitiveDeserializerTests, PrimitiveDeserializerTest, PrimitiveDeserializerTests, PrimitiveDeserializerTest,
60 ::testing::Values( ::testing::Values(
61 std::make_tuple("true", PrimitiveType::BOOLEAN, "true", '\0', false, false), std::make_tuple("123", PrimitiveType::INTEGER, "123", '\0', false, false), std::make_tuple("true", PrimitiveType::BOOLEAN, "true", '\0', false, false), std::make_tuple("123", PrimitiveType::INTEGER, "123", '\0', false, false),
62 std::make_tuple("123.456", PrimitiveType::NUMBER, "123.456", '\0', false, false), std::make_tuple("abc", PrimitiveType::STRING, "\"abc\"", '\0', false, false), std::make_tuple("123.456", PrimitiveType::NUMBER, "123.456", '\0', false, false), std::make_tuple("abc", PrimitiveType::STRING, "\"abc\"", '\0', false, false),
63 std::make_tuple("test=true", PrimitiveType::BOOLEAN, "true", '\0', true, false), std::make_tuple("test=123", PrimitiveType::INTEGER, "123", '\0', true, false), std::make_tuple("test=true", PrimitiveType::BOOLEAN, "true", '\0', true, false), std::make_tuple("test=123", PrimitiveType::INTEGER, "123", '\0', true, false),
64 std::make_tuple("test=123.456", PrimitiveType::NUMBER, "123.456", '\0', true, false), std::make_tuple("test=123.456", PrimitiveType::NUMBER, "123.456", '\0', true, false),
65 std::make_tuple("test=abc%20xyz", PrimitiveType::STRING, "\"abc xyz\"", '\0', true, false), std::make_tuple(".true", PrimitiveType::BOOLEAN, "true", '.', false, false), std::make_tuple("test=abc%20xyz", PrimitiveType::STRING, "\"abc xyz\"", '\0', true, false), std::make_tuple(".true", PrimitiveType::BOOLEAN, "true", '.', false, false),
66 std::make_tuple(".123", PrimitiveType::INTEGER, "123", '.', false, false), std::make_tuple(".123.456", PrimitiveType::NUMBER, "123.456", '.', false, false), std::make_tuple(".123", PrimitiveType::INTEGER, "123", '.', false, false), std::make_tuple(".123.456", PrimitiveType::NUMBER, "123.456", '.', false, false),
67 std::make_tuple(".abc", PrimitiveType::STRING, "\"abc\"", '.', false, false), std::make_tuple(";test=true", PrimitiveType::BOOLEAN, "true", ';', true, false), std::make_tuple(".abc", PrimitiveType::STRING, "\"abc\"", '.', false, false), std::make_tuple(";test=true", PrimitiveType::BOOLEAN, "true", ';', true, false),
68 std::make_tuple(";test=123", PrimitiveType::INTEGER, "123", ';', true, false), std::make_tuple(";test=123.456", PrimitiveType::NUMBER, "123.456", ';', true, false), std::make_tuple(";test=123", PrimitiveType::INTEGER, "123", ';', true, false), std::make_tuple(";test=123.456", PrimitiveType::NUMBER, "123.456", ';', true, false),
69 std::make_tuple(";test=abc", PrimitiveType::STRING, "\"abc\"", ';', true, false), std::make_tuple("invalid", PrimitiveType::BOOLEAN, "invalid", '\0', false, true), std::make_tuple(";test=abc", PrimitiveType::STRING, "\"abc\"", ';', true, false), std::make_tuple("invalid", PrimitiveType::BOOLEAN, "invalid", '\0', false, true),
70 std::make_tuple("invalid", PrimitiveType::INTEGER, "invalid", '\0', false, true), std::make_tuple("invalid", PrimitiveType::NUMBER, "invalid", '\0', false, true), std::make_tuple("invalid", PrimitiveType::INTEGER, "invalid", '\0', false, true), std::make_tuple("invalid", PrimitiveType::NUMBER, "invalid", '\0', false, true),
71 std::make_tuple("inva%lid", PrimitiveType::STRING, "invalid", '\0', false, true))); std::make_tuple("inva%lid", PrimitiveType::STRING, "invalid", '\0', false, true)));
72 @@ -798,13 +825,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.primitive_deserializer.hpp.daa35f6213c12a081cd56a92be9e89c4.html b/covhtml-oasvalidator/index.primitive_deserializer.hpp.daa35f6213c12a081cd56a92be9e89c4.html index 37af731..ddd4bf5 100644 --- a/covhtml-oasvalidator/index.primitive_deserializer.hpp.daa35f6213c12a081cd56a92be9e89c4.html +++ b/covhtml-oasvalidator/index.primitive_deserializer.hpp.daa35f6213c12a081cd56a92be9e89c4.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -45,51 +44,18 @@

GCC Code Coverage Report

1 100.0% - - Functions: - 1 - 1 - 100.0% - Branches: - 0 - 0 - -% + 1 + 2 + 50.0%
-
- -
-
- - +
-
@@ -98,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + + + - + + + - + + - + + - + + - + + + - + + - + + + - + + - + + - + + + + +
Exec Source
1 @@ -105,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -112,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -119,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -133,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -140,6 +113,7 @@

GCC Code Coverage Report

7 @@ -147,6 +121,7 @@

GCC Code Coverage Report

#ifndef PRIMITIVE_DESERIALIZER_HPP
8 @@ -154,13 +129,15 @@

GCC Code Coverage Report

#define PRIMITIVE_DESERIALIZER_HPP
9 #include "deserializers/base_deserializer.hpp"#include "deserializers/base_deserializer.hpp"
10 @@ -168,34 +145,39 @@

GCC Code Coverage Report

11 class PrimitiveDeserializer final: public BaseDeserializerclass PrimitiveDeserializer final: public BaseDeserializer
12 {{
13 public:public:
14 explicit PrimitiveDeserializer(const std::string& param_name, char start, bool skip_name, PrimitiveType param_type); explicit PrimitiveDeserializer(const std::string& param_name, char start, bool skip_name, PrimitiveType param_type);
15 @@ -203,20 +185,30 @@

GCC Code Coverage Report

16 std::string Deserialize(const char* beg, const char* const end) override; std::string Deserialize(const char* beg, const char* const end) override;
17 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 20 times.
+
+
40 ~PrimitiveDeserializer() override = default; ~PrimitiveDeserializer() override = default;
18 @@ -224,27 +216,31 @@

GCC Code Coverage Report

19 private:private:
20 const PrimitiveType param_type_; const PrimitiveType param_type_;
21 };};
22 @@ -252,6 +248,7 @@

GCC Code Coverage Report

23 @@ -259,6 +256,7 @@

GCC Code Coverage Report

#endif // PRIMITIVE_DESERIALIZER_HPP
24 @@ -266,13 +264,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.query_param_validator.cpp.3d4791b0689ac2bdc3e8eb3cb4518c3c.html b/covhtml-oasvalidator/index.query_param_validator.cpp.3d4791b0689ac2bdc3e8eb3cb4518c3c.html index c07f8dd..5cc0870 100644 --- a/covhtml-oasvalidator/index.query_param_validator.cpp.3d4791b0689ac2bdc3e8eb3cb4518c3c.html +++ b/covhtml-oasvalidator/index.query_param_validator.cpp.3d4791b0689ac2bdc3e8eb3cb4518c3c.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,341 +40,22 @@

GCC Code Coverage Report

Lines: - 82 - 87 - 94.3% - - - Functions: - 27 - 27 - 100.0% + 75 + 79 + 94.9% Branches: - 91 - 258 - 35.3% + 117 + 410 + 28.5%
-
- -
-
- - +
-
@@ -384,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + - + + + - + + - + + - + + - + + - + + - + + - + + - + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - + + + + + - - + + + + - - + + + + + - - + + + + + - + + - + + + - + + - + + + - + + - + + - + + - - + + + - + + - + + - + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - + + + + + - - + + + + - - + + + + + + + - - + + + + + + - + + - + + + - + + - + + + - + + - + + - + + - - + + + - + + - + + - + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - - + + + - + + - + + - + + - + + - + + - + + - + + - + + - + + + - + + + + + - - + + + + - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + - + + - + + + - + + - + + - + + - - + + + - + + - + + - + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - + + - + + - + + - - + + + - - + + + + - - + + + - + + - + + - + + - + + +
Exec Source
1 @@ -391,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -398,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -405,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -419,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -426,20 +113,23 @@

GCC Code Coverage Report

7 #include "validators/param_validators.hpp"#include "validators/param_validators.hpp"
8 #include <gtest/gtest.h>#include <gtest/gtest.h>
9 @@ -447,62 +137,71 @@

GCC Code Coverage Report

10 enum : size_tenum : size_t
11 {{
12 INPUT, INPUT,
13 STYLE, STYLE,
14 EXPLODE, EXPLODE,
15 TYPE, TYPE,
16 EXPECTED_ERROR EXPECTED_ERROR
17 };};
18 @@ -510,104 +209,132 @@

GCC Code Coverage Report

19 19class QueryPrimitiveParam: public ::testing::TestWithParam<std::tuple<std::string, std::string, bool, std::string, ValidationError>>class QueryPrimitiveParam: public ::testing::TestWithParam<std::tuple<std::string, std::string, bool, std::string, ValidationError>>
20 {{
21 protected:protected:
22 19 void SetUp() override void SetUp() override
23 { {
24 19 auto params = GetParam(); auto params = GetParam();
25
- 1/2 + 2/4
-
✓ Branch 0 taken 19 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 19 times.
+
✗ Branch 2 not taken.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 19 times.
19 input_ = "/pets/xyz?" + std::get<INPUT>(params); input_ = "/pets/xyz?" + std::get<INPUT>(params);
26
1/2
-
✓ Branch 0 taken 19 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 19 times.
+
✗ Branch 2 not taken.
19 std::string style = std::get<STYLE>(params); std::string style = std::get<STYLE>(params);
27 +
+ 1/2 +
+
✓ Branch 1 taken 19 times.
+
✗ Branch 2 not taken.
+
+
19 bool explode = std::get<EXPLODE>(params); bool explode = std::get<EXPLODE>(params);
28
1/2
-
✓ Branch 0 taken 19 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 19 times.
+
✗ Branch 2 not taken.
19 std::string type = std::get<TYPE>(params); std::string type = std::get<TYPE>(params);
29 +
+ 2/2 +
+
✓ Branch 0 taken 10 times.
+
✓ Branch 1 taken 9 times.
+
+
19 expected_error_ = std::get<EXPECTED_ERROR>(params); expected_error_ = std::get<EXPECTED_ERROR>(params);
30 @@ -615,13 +342,15 @@

GCC Code Coverage Report

31 3819 std::string json = R"({
32 @@ -629,6 +358,7 @@

GCC Code Coverage Report

"name": "param",
33 @@ -636,6 +366,7 @@

GCC Code Coverage Report

"in": "query",
34 @@ -643,22 +374,30 @@

GCC Code Coverage Report

"required": true,
35
- 2/4 + 3/10
-
✓ Branch 0 taken 19 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 19 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 19 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 19 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 19 times.
+
✗ Branch 8 not taken.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
19 "style": ")" + style +38 "style": ")" + style +
36 @@ -666,22 +405,34 @@

GCC Code Coverage Report

R"(",
37
- 2/4 + 6/14
-
✓ Branch 0 taken 19 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 19 times.
-
✗ Branch 3 not taken.
+
✓ Branch 0 taken 10 times.
+
✓ Branch 1 taken 9 times.
+
✓ Branch 3 taken 19 times.
+
✗ Branch 4 not taken.
+
✓ Branch 6 taken 19 times.
+
✗ Branch 7 not taken.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 19 times.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 19 times.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
+
✗ Branch 15 not taken.
19 "explode": )" + (explode ? "true" : "false") +57 "explode": )" + (explode ? "true" : "false") +
38 @@ -689,6 +440,7 @@

GCC Code Coverage Report

R"(,
39 @@ -696,34 +448,41 @@

GCC Code Coverage Report

"schema": {
40
- 1/2 + 2/6
-
✓ Branch 0 taken 19 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 19 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 19 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
19 "type": ")" +38 "type": ")" +
41
1/2
-
✓ Branch 0 taken 19 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 19 times.
+
✗ Branch 2 not taken.
19 type + R"("
42 @@ -731,27 +490,30 @@

GCC Code Coverage Report

}
43 })"; })";
44
1/2
-
✓ Branch 0 taken 19 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 19 times.
+
✗ Branch 2 not taken.
19 doc_.Parse(json.c_str()); doc_.Parse(json.c_str());
45 @@ -759,27 +521,45 @@

GCC Code Coverage Report

46
- 1/2 + 4/8
-
✗ Branch 0 not taken.
✓ Branch 1 taken 19 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 19 times.
+
✗ Branch 5 not taken.
+
✓ Branch 6 taken 19 times.
+
✓ Branch 7 taken 19 times.
+
✗ Branch 8 not taken.
19 validator_ = std::make_unique<QueryParamValidator>(doc_, keys_); validator_ = std::make_unique<QueryParamValidator>(doc_, keys_);
47 +
+ 2/4 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 19 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 19 times.
+
+
19 } }
48 @@ -787,72 +567,63 @@

GCC Code Coverage Report

49 std::unique_ptr<QueryParamValidator> validator_; std::unique_ptr<QueryParamValidator> validator_;
50 std::string input_; std::string input_;
51 rapidjson::Document doc_; rapidjson::Document doc_;
52 -
- 6/12 -
-
✓ Branch 0 taken 19 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 19 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 19 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 19 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 19 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
-
✓ Branch 11 taken 19 times.
-
-
19 std::vector<std::string> keys_{"paths", "/pets/xyz", "get", "parameters", "param"}; std::vector<std::string> keys_{"paths", "/pets/xyz", "get", "parameters", "param"};
53 std::string error_msg_; std::string error_msg_;
54 ValidationError expected_error_; ValidationError expected_error_;
55 };};
56 @@ -860,173 +631,228 @@

GCC Code Coverage Report

57
- 5/10 + 8/22
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 19 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
+
✗ Branch 11 not taken.
+
✓ Branch 13 taken 1 times.
+
✗ Branch 14 not taken.
+
✓ Branch 15 taken 1 times.
+
✗ Branch 16 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 18 not taken.
+
✓ Branch 19 taken 1 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
59TEST_P(QueryPrimitiveParam, ValidateParam)71TEST_P(QueryPrimitiveParam, ValidateParam)
58 {{
59 +
+ 1/2 +
+
✗ Branch 1 not taken.
+
✓ Branch 2 taken 19 times.
+
+
19 const char* beg = input_.c_str() + std::string("/pets/xyz?").size();38 const char* beg = input_.c_str() + std::string("/pets/xyz?").size();
60 19 const char* end = input_.c_str() + input_.size();38 const char* end = input_.c_str() + input_.size();
61 19 auto result = validator_->ValidateParam(beg, end, error_msg_);38 auto result = validator_->ValidateParam(beg, end, error_msg_);
62
- 1/10 + 1/14
-
✓ Branch 0 taken 19 times.
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
-
✗ Branch 3 not taken.
+
✓ Branch 2 taken 19 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
-
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
19 EXPECT_EQ(result, expected_error_);38 EXPECT_EQ(result, expected_error_);
63
2/2
-
✓ Branch 0 taken 8 times.
-
✓ Branch 1 taken 11 times.
+
✓ Branch 0 taken 11 times.
+
✓ Branch 1 taken 8 times.
19 if (result != ValidationError::NONE) {38 if (result != ValidationError::NONE) {
64
- 1/10 + 1/20
-
✓ Branch 0 taken 11 times.
-
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 11 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
11 EXPECT_FALSE(error_msg_.empty());22 EXPECT_FALSE(error_msg_.empty());
65 11 rapidjson::Document doc;22 rapidjson::Document doc;
66
1/2
-
✓ Branch 0 taken 11 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 11 times.
+
✗ Branch 2 not taken.
11 doc.Parse(error_msg_.c_str());22 doc.Parse(error_msg_.c_str());
67
- 2/12 + 1/20
-
✓ Branch 0 taken 11 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 11 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 11 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
11 EXPECT_FALSE(doc.HasParseError());44 EXPECT_FALSE(doc.HasParseError());
68 11 } }
69 19}38}
70 @@ -1034,159 +860,174 @@

GCC Code Coverage Report

71
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
-
✓ Branch 7 taken 1 times.
+
✓ Branch 2 taken 19 times.
21INSTANTIATE_TEST_CASE_P(QueryPrimitiveParamTests, QueryPrimitiveParam,40INSTANTIATE_TEST_CASE_P(QueryPrimitiveParamTests, QueryPrimitiveParam,
72 ::testing::Values(std::make_tuple("param=123", "form", false, "integer", ValidationError::NONE), ::testing::Values(std::make_tuple("param=123", "form", false, "integer", ValidationError::NONE),
73 std::make_tuple("param=123", "form", true, "integer", ValidationError::NONE), std::make_tuple("param=123", "form", true, "integer", ValidationError::NONE),
74 std::make_tuple("param=123.123", "form", false, "number", ValidationError::NONE), std::make_tuple("param=123.123", "form", false, "number", ValidationError::NONE),
75 std::make_tuple("param=123.123", "form", true, "number", ValidationError::NONE), std::make_tuple("param=123.123", "form", true, "number", ValidationError::NONE),
76 std::make_tuple("param=abc%20xyz", "form", false, "string", ValidationError::NONE), std::make_tuple("param=abc%20xyz", "form", false, "string", ValidationError::NONE),
77 std::make_tuple("param=abc", "form", true, "string", ValidationError::NONE), std::make_tuple("param=abc", "form", true, "string", ValidationError::NONE),
78 std::make_tuple("param=true", "form", false, "boolean", ValidationError::NONE), std::make_tuple("param=true", "form", false, "boolean", ValidationError::NONE),
79 std::make_tuple("param=true", "form", true, "boolean", ValidationError::NONE), std::make_tuple("param=true", "form", true, "boolean", ValidationError::NONE),
80 std::make_tuple("param=string", "form", false, "integer", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=string", "form", false, "integer", ValidationError::INVALID_QUERY_PARAM),
81 std::make_tuple("param=string", "form", true, "integer", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=string", "form", true, "integer", ValidationError::INVALID_QUERY_PARAM),
82 std::make_tuple("param=123.123", "form", false, "integer", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=123.123", "form", false, "integer", ValidationError::INVALID_QUERY_PARAM),
83 std::make_tuple("param=123.123", "form", true, "integer", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=123.123", "form", true, "integer", ValidationError::INVALID_QUERY_PARAM),
84 std::make_tuple("param=true", "form", false, "number", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=true", "form", false, "number", ValidationError::INVALID_QUERY_PARAM),
85 std::make_tuple("param=true", "form", true, "number", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=true", "form", true, "number", ValidationError::INVALID_QUERY_PARAM),
86 std::make_tuple("param=123", "form", false, "boolean", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=123", "form", false, "boolean", ValidationError::INVALID_QUERY_PARAM),
87 std::make_tuple("param=123", "form", true, "boolean", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=123", "form", true, "boolean", ValidationError::INVALID_QUERY_PARAM),
88 std::make_tuple("param=123.123", "form", false, "boolean", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=123.123", "form", false, "boolean", ValidationError::INVALID_QUERY_PARAM),
89 std::make_tuple("param=abc%2yz", "form", true, "string", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=abc%2yz", "form", true, "string", ValidationError::INVALID_QUERY_PARAM),
90 std::make_tuple("param=abc%2yz", "form", false, "string", ValidationError::INVALID_QUERY_PARAM))); std::make_tuple("param=abc%2yz", "form", false, "string", ValidationError::INVALID_QUERY_PARAM)));
91 @@ -1194,104 +1035,132 @@

GCC Code Coverage Report

92 34class QueryArrayParam: public ::testing::TestWithParam<std::tuple<std::string, std::string, bool, std::string, ValidationError>>class QueryArrayParam: public ::testing::TestWithParam<std::tuple<std::string, std::string, bool, std::string, ValidationError>>
93 {{
94 protected:protected:
95 34 void SetUp() override void SetUp() override
96 { {
97 34 auto params = GetParam(); auto params = GetParam();
98
- 1/2 + 2/4
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 34 times.
34 input_ = "/pets/xyz?" + std::get<INPUT>(params); input_ = "/pets/xyz?" + std::get<INPUT>(params);
99
1/2
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
34 std::string style = std::get<STYLE>(params); std::string style = std::get<STYLE>(params);
100 +
+ 1/2 +
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
+
+
34 bool explode = std::get<EXPLODE>(params); bool explode = std::get<EXPLODE>(params);
101
1/2
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
34 std::string type = std::get<TYPE>(params); std::string type = std::get<TYPE>(params);
102 +
+ 2/2 +
+
✓ Branch 0 taken 18 times.
+
✓ Branch 1 taken 16 times.
+
+
34 expected_error_ = std::get<EXPECTED_ERROR>(params); expected_error_ = std::get<EXPECTED_ERROR>(params);
103 @@ -1299,13 +1168,15 @@

GCC Code Coverage Report

104 6834 std::string json = R"({
105 @@ -1313,6 +1184,7 @@

GCC Code Coverage Report

"name": "param",
106 @@ -1320,6 +1192,7 @@

GCC Code Coverage Report

"in": "query",
107 @@ -1327,22 +1200,30 @@

GCC Code Coverage Report

"required": true,
108
- 2/4 + 3/10
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 34 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 34 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 34 times.
+
✗ Branch 8 not taken.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
34 "style": ")" + style +68 "style": ")" + style +
109 @@ -1350,22 +1231,34 @@

GCC Code Coverage Report

R"(",
110
- 2/4 + 6/14
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 34 times.
-
✗ Branch 3 not taken.
+
✓ Branch 0 taken 18 times.
+
✓ Branch 1 taken 16 times.
+
✓ Branch 3 taken 34 times.
+
✗ Branch 4 not taken.
+
✓ Branch 6 taken 34 times.
+
✗ Branch 7 not taken.
+
✗ Branch 8 not taken.
+
✓ Branch 9 taken 34 times.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 34 times.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
+
✗ Branch 15 not taken.
34 "explode": )" + (explode ? "true" : "false") +102 "explode": )" + (explode ? "true" : "false") +
111 @@ -1373,6 +1266,7 @@

GCC Code Coverage Report

R"(,
112 @@ -1380,6 +1274,7 @@

GCC Code Coverage Report

"schema": {
113 @@ -1387,6 +1282,7 @@

GCC Code Coverage Report

"type": "array",
114 @@ -1394,34 +1290,41 @@

GCC Code Coverage Report

"items": {
115
- 1/2 + 2/6
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 34 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
34 "type": ")" +68 "type": ")" +
116
1/2
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
34 type + R"("
117 @@ -1429,6 +1332,7 @@

GCC Code Coverage Report

}
118 @@ -1436,27 +1340,30 @@

GCC Code Coverage Report

}
119 })"; })";
120
1/2
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
34 doc_.Parse(json.c_str()); doc_.Parse(json.c_str());
121 @@ -1464,27 +1371,45 @@

GCC Code Coverage Report

122
- 1/2 + 4/8
-
✗ Branch 0 not taken.
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 34 times.
+
✗ Branch 5 not taken.
+
✓ Branch 6 taken 34 times.
+
✓ Branch 7 taken 34 times.
+
✗ Branch 8 not taken.
34 validator_ = std::make_unique<QueryParamValidator>(doc_, keys_); validator_ = std::make_unique<QueryParamValidator>(doc_, keys_);
123 +
+ 2/4 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 34 times.
+
+
34 } }
124 @@ -1492,72 +1417,63 @@

GCC Code Coverage Report

125 std::unique_ptr<QueryParamValidator> validator_; std::unique_ptr<QueryParamValidator> validator_;
126 std::string input_; std::string input_;
127 rapidjson::Document doc_; rapidjson::Document doc_;
128 -
- 6/12 -
-
✓ Branch 0 taken 34 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 34 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 34 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 34 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 34 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
-
✓ Branch 11 taken 34 times.
-
-
34 std::vector<std::string> keys_{"paths", "/pets/xyz", "get", "parameters", "param"}; std::vector<std::string> keys_{"paths", "/pets/xyz", "get", "parameters", "param"};
129 std::string error_msg_; std::string error_msg_;
130 ValidationError expected_error_; ValidationError expected_error_;
131 };};
132 @@ -1565,173 +1481,228 @@

GCC Code Coverage Report

133
- 5/10 + 8/22
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 34 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
+
✗ Branch 11 not taken.
+
✓ Branch 13 taken 1 times.
+
✗ Branch 14 not taken.
+
✓ Branch 15 taken 1 times.
+
✗ Branch 16 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 18 not taken.
+
✓ Branch 19 taken 1 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
104TEST_P(QueryArrayParam, ValidateParam)116TEST_P(QueryArrayParam, ValidateParam)
134 {{
135 +
+ 1/2 +
+
✗ Branch 1 not taken.
+
✓ Branch 2 taken 34 times.
+
+
34 const char* beg = input_.c_str() + std::string("/pets/xyz?").size();68 const char* beg = input_.c_str() + std::string("/pets/xyz?").size();
136 34 const char* end = input_.c_str() + input_.size();68 const char* end = input_.c_str() + input_.size();
137 34 auto result = validator_->ValidateParam(beg, end, error_msg_);68 auto result = validator_->ValidateParam(beg, end, error_msg_);
138
- 1/10 + 1/14
-
✓ Branch 0 taken 34 times.
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
-
✗ Branch 3 not taken.
+
✓ Branch 2 taken 34 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
-
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
34 EXPECT_EQ(result, expected_error_);68 EXPECT_EQ(result, expected_error_);
139
2/2
-
✓ Branch 0 taken 24 times.
-
✓ Branch 1 taken 10 times.
+
✓ Branch 0 taken 10 times.
+
✓ Branch 1 taken 24 times.
34 if (result != ValidationError::NONE) {68 if (result != ValidationError::NONE) {
140
- 1/10 + 1/20
-
✓ Branch 0 taken 10 times.
-
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
10 EXPECT_FALSE(error_msg_.empty());20 EXPECT_FALSE(error_msg_.empty());
141 10 rapidjson::Document doc;20 rapidjson::Document doc;
142
1/2
-
✓ Branch 0 taken 10 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 10 times.
+
✗ Branch 2 not taken.
10 doc.Parse(error_msg_.c_str());20 doc.Parse(error_msg_.c_str());
143
- 2/12 + 1/20
-
✓ Branch 0 taken 10 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 10 times.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
-
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
-
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
-
✗ Branch 11 not taken.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 15 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
10 EXPECT_FALSE(doc.HasParseError());40 EXPECT_FALSE(doc.HasParseError());
144 10 } }
145 34}68}
146 @@ -1739,264 +1710,294 @@

GCC Code Coverage Report

147
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
-
✓ Branch 7 taken 1 times.
+
✓ Branch 2 taken 34 times.
36INSTANTIATE_TEST_CASE_P(QueryArrayParamTests, QueryArrayParam,70INSTANTIATE_TEST_CASE_P(QueryArrayParamTests, QueryArrayParam,
148 ::testing::Values(std::make_tuple("param=3,4,5", "form", false, "integer", ValidationError::NONE), ::testing::Values(std::make_tuple("param=3,4,5", "form", false, "integer", ValidationError::NONE),
149 std::make_tuple("param=3&param=4&param=5", "form", true, "integer", ValidationError::NONE), std::make_tuple("param=3&param=4&param=5", "form", true, "integer", ValidationError::NONE),
150 std::make_tuple("param=3.3,4.4,5.5", "form", false, "number", ValidationError::NONE), std::make_tuple("param=3.3,4.4,5.5", "form", false, "number", ValidationError::NONE),
151 std::make_tuple("param=3.3&param=4.4&param=5.5", "form", true, "number", ValidationError::NONE), std::make_tuple("param=3.3&param=4.4&param=5.5", "form", true, "number", ValidationError::NONE),
152 std::make_tuple("param=abc%20xyz,def%20xyz,ghi%20xyz", "form", false, "string", ValidationError::NONE), std::make_tuple("param=abc%20xyz,def%20xyz,ghi%20xyz", "form", false, "string", ValidationError::NONE),
153 std::make_tuple("param=abc%20xyz&param=def%20xyz&param=ghi%20xyz", "form", true, "string", ValidationError::NONE), std::make_tuple("param=abc%20xyz&param=def%20xyz&param=ghi%20xyz", "form", true, "string", ValidationError::NONE),
154 std::make_tuple("param=true,false,true", "form", false, "boolean", ValidationError::NONE), std::make_tuple("param=true,false,true", "form", false, "boolean", ValidationError::NONE),
155 std::make_tuple("param=true&param=false&param=true", "form", true, "boolean", ValidationError::NONE), std::make_tuple("param=true&param=false&param=true", "form", true, "boolean", ValidationError::NONE),
156 std::make_tuple("param=string,abc,xyz", "form", false, "integer", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=string,abc,xyz", "form", false, "integer", ValidationError::INVALID_QUERY_PARAM),
157 std::make_tuple("param=string&param=abc&param=xyz", "form", true, "integer", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=string&param=abc&param=xyz", "form", true, "integer", ValidationError::INVALID_QUERY_PARAM),
158 std::make_tuple("param=3.3,4.4,5.5", "form", false, "integer", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=3.3,4.4,5.5", "form", false, "integer", ValidationError::INVALID_QUERY_PARAM),
159 std::make_tuple("param=3.3&param=4.4&param=5.5", "form", true, "integer", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=3.3&param=4.4&param=5.5", "form", true, "integer", ValidationError::INVALID_QUERY_PARAM),
160 std::make_tuple("param=true,false,true", "form", false, "number", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=true,false,true", "form", false, "number", ValidationError::INVALID_QUERY_PARAM),
161 std::make_tuple("param=true&param=false&param=true", "form", true, "number", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=true&param=false&param=true", "form", true, "number", ValidationError::INVALID_QUERY_PARAM),
162 std::make_tuple("param=3,4,5", "form", false, "boolean", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=3,4,5", "form", false, "boolean", ValidationError::INVALID_QUERY_PARAM),
163 std::make_tuple("param=3%204%205", "spaceDelimited", false, "integer", ValidationError::NONE), std::make_tuple("param=3%204%205", "spaceDelimited", false, "integer", ValidationError::NONE),
164 std::make_tuple("param=3&param=4&param=5", "spaceDelimited", true, "integer", ValidationError::NONE), std::make_tuple("param=3&param=4&param=5", "spaceDelimited", true, "integer", ValidationError::NONE),
165 std::make_tuple("param=3.3%204.4%205.5", "spaceDelimited", false, "number", ValidationError::NONE), std::make_tuple("param=3.3%204.4%205.5", "spaceDelimited", false, "number", ValidationError::NONE),
166 std::make_tuple("param=3.3&param=4.4&param=5.5", "spaceDelimited", true, "number", ValidationError::NONE), std::make_tuple("param=3.3&param=4.4&param=5.5", "spaceDelimited", true, "number", ValidationError::NONE),
167 std::make_tuple("param=abc%20xyz%20def%20xyz%20ghi%20xyz", "spaceDelimited", false, "string", ValidationError::NONE), std::make_tuple("param=abc%20xyz%20def%20xyz%20ghi%20xyz", "spaceDelimited", false, "string", ValidationError::NONE),
168 std::make_tuple("param=abc%20xyz&param=def%20xyz&param=ghi%20xyz", "spaceDelimited", true, "string", ValidationError::NONE), std::make_tuple("param=abc%20xyz&param=def%20xyz&param=ghi%20xyz", "spaceDelimited", true, "string", ValidationError::NONE),
169 std::make_tuple("param=true%20false%20true", "spaceDelimited", false, "boolean", ValidationError::NONE), std::make_tuple("param=true%20false%20true", "spaceDelimited", false, "boolean", ValidationError::NONE),
170 std::make_tuple("param=true&param=false&param=true", "spaceDelimited", true, "boolean", ValidationError::NONE), std::make_tuple("param=true&param=false&param=true", "spaceDelimited", true, "boolean", ValidationError::NONE),
171 std::make_tuple("param=string%20abc%20xyz", "spaceDelimited", false, "integer", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=string%20abc%20xyz", "spaceDelimited", false, "integer", ValidationError::INVALID_QUERY_PARAM),
172 std::make_tuple("param=string&param=abc&param=xyz", "spaceDelimited", true, "integer", ValidationError::INVALID_QUERY_PARAM), std::make_tuple("param=string&param=abc&param=xyz", "spaceDelimited", true, "integer", ValidationError::INVALID_QUERY_PARAM),
173 std::make_tuple("param=3|4|5", "pipeDelimited", false, "integer", ValidationError::NONE), std::make_tuple("param=3|4|5", "pipeDelimited", false, "integer", ValidationError::NONE),
174 std::make_tuple("param=3&param=4&param=5", "pipeDelimited", true, "integer", ValidationError::NONE), std::make_tuple("param=3&param=4&param=5", "pipeDelimited", true, "integer", ValidationError::NONE),
175 std::make_tuple("param=3.3|4.4|5.5", "pipeDelimited", false, "number", ValidationError::NONE), std::make_tuple("param=3.3|4.4|5.5", "pipeDelimited", false, "number", ValidationError::NONE),
176 std::make_tuple("param=3.3&param=4.4&param=5.5", "pipeDelimited", true, "number", ValidationError::NONE), std::make_tuple("param=3.3&param=4.4&param=5.5", "pipeDelimited", true, "number", ValidationError::NONE),
177 std::make_tuple("param=abc%20xyz|def%20xyz|ghi%20xyz", "pipeDelimited", false, "string", ValidationError::NONE), std::make_tuple("param=abc%20xyz|def%20xyz|ghi%20xyz", "pipeDelimited", false, "string", ValidationError::NONE),
178 std::make_tuple("param=abc%20xyz&param=def%20xyz&param=ghi%20xyz", "pipeDelimited", true, "string", ValidationError::NONE), std::make_tuple("param=abc%20xyz&param=def%20xyz&param=ghi%20xyz", "pipeDelimited", true, "string", ValidationError::NONE),
179 std::make_tuple("param=true|false|true", "pipeDelimited", false, "boolean", ValidationError::NONE), std::make_tuple("param=true|false|true", "pipeDelimited", false, "boolean", ValidationError::NONE),
180 std::make_tuple("param=true&param=false&param=true", "pipeDelimited", true, "boolean", ValidationError::NONE), std::make_tuple("param=true&param=false&param=true", "pipeDelimited", true, "boolean", ValidationError::NONE),
181 std::make_tuple("param=string|abc|xyz", "pipeDelimited", false, "integer", ValidationError::INVALID_QUERY_PARAM))); std::make_tuple("param=string|abc|xyz", "pipeDelimited", false, "integer", ValidationError::INVALID_QUERY_PARAM)));
182 @@ -2004,90 +2005,117 @@

GCC Code Coverage Report

183 3class QueryObjectParam: public ::testing::TestWithParam<std::tuple<std::string, std::string, bool, ValidationError>>class QueryObjectParam: public ::testing::TestWithParam<std::tuple<std::string, std::string, bool, ValidationError>>
184 {{
185 protected:protected:
186 3 void SetUp() override void SetUp() override
187 { {
188 3 auto params = GetParam(); auto params = GetParam();
189
- 1/2 + 2/4
-
✓ Branch 0 taken 3 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 3 times.
+
✗ Branch 2 not taken.
+
✗ Branch 4 not taken.
+
✓ Branch 5 taken 3 times.
3 input_ = "/pets/xyz?" + std::get<0>(params); input_ = "/pets/xyz?" + std::get<0>(params);
190
1/2
-
✓ Branch 0 taken 3 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 3 times.
+
✗ Branch 2 not taken.
3 std::string style = std::get<1>(params); std::string style = std::get<1>(params);
191 +
+ 2/2 +
+
✓ Branch 0 taken 1 times.
+
✓ Branch 1 taken 2 times.
+
+
3 bool explode = std::get<2>(params); bool explode = std::get<2>(params);
192 +
+ 2/2 +
+
✓ Branch 0 taken 1 times.
+
✓ Branch 1 taken 2 times.
+
+
3 expected_error_ = std::get<3>(params); expected_error_ = std::get<3>(params);
193 @@ -2095,13 +2123,15 @@

GCC Code Coverage Report

194 63 std::string json = R"({
195 @@ -2109,6 +2139,7 @@

GCC Code Coverage Report

"name": "param",
196 @@ -2116,6 +2147,7 @@

GCC Code Coverage Report

"in": "query",
197 @@ -2123,22 +2155,30 @@

GCC Code Coverage Report

"required": true,
198
- 2/4 + 3/10
-
✓ Branch 0 taken 3 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 3 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 3 times.
+
✗ Branch 2 not taken.
+
✓ Branch 4 taken 3 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 3 times.
+
✗ Branch 8 not taken.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
3 "style": ")" + style +6 "style": ")" + style +
199 @@ -2146,29 +2186,43 @@

GCC Code Coverage Report

R"(",
200
- 2/4 + 4/8
-
✓ Branch 0 taken 3 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 3 times.
-
✗ Branch 3 not taken.
+
✓ Branch 0 taken 1 times.
+
✓ Branch 1 taken 2 times.
+
✓ Branch 3 taken 3 times.
+
✗ Branch 4 not taken.
+
✗ Branch 5 not taken.
+
✓ Branch 6 taken 3 times.
+
✗ Branch 7 not taken.
+
✗ Branch 8 not taken.
3 "explode": )" + (explode ? "true" : "false") +9 "explode": )" + (explode ? "true" : "false") +
201 +
+ 1/2 +
+
✓ Branch 1 taken 3 times.
+
✗ Branch 2 not taken.
+
+
R"(,3 R"(,
202 @@ -2176,6 +2230,7 @@

GCC Code Coverage Report

"schema": {
203 @@ -2183,6 +2238,7 @@

GCC Code Coverage Report

"type": "object",
204 @@ -2190,6 +2246,7 @@

GCC Code Coverage Report

"properties": {
205 @@ -2197,6 +2254,7 @@

GCC Code Coverage Report

"boolTrue": {
206 @@ -2204,6 +2262,7 @@

GCC Code Coverage Report

"type": "boolean"
207 @@ -2211,6 +2270,7 @@

GCC Code Coverage Report

},
208 @@ -2218,6 +2278,7 @@

GCC Code Coverage Report

"boolFalse": {
209 @@ -2225,6 +2286,7 @@

GCC Code Coverage Report

"type": "boolean"
210 @@ -2232,6 +2294,7 @@

GCC Code Coverage Report

},
211 @@ -2239,6 +2302,7 @@

GCC Code Coverage Report

"int": {
212 @@ -2246,6 +2310,7 @@

GCC Code Coverage Report

"type": "integer"
213 @@ -2253,6 +2318,7 @@

GCC Code Coverage Report

},
214 @@ -2260,6 +2326,7 @@

GCC Code Coverage Report

"number": {
215 @@ -2267,6 +2334,7 @@

GCC Code Coverage Report

"type": "number"
216 @@ -2274,6 +2342,7 @@

GCC Code Coverage Report

},
217 @@ -2281,6 +2350,7 @@

GCC Code Coverage Report

"string": {
218 @@ -2288,6 +2358,7 @@

GCC Code Coverage Report

"type": "string"
219 @@ -2295,6 +2366,7 @@

GCC Code Coverage Report

}
220 @@ -2302,6 +2374,7 @@

GCC Code Coverage Report

}
221 @@ -2309,27 +2382,30 @@

GCC Code Coverage Report

}
222 })"; })";
223
1/2
-
✓ Branch 0 taken 3 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 3 times.
+
✗ Branch 2 not taken.
3 doc_.Parse(json.c_str()); doc_.Parse(json.c_str());
224 @@ -2337,27 +2413,43 @@

GCC Code Coverage Report

225
- 1/2 + 4/8
-
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
+
✗ Branch 2 not taken.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 3 times.
+
✗ Branch 5 not taken.
+
✓ Branch 6 taken 3 times.
+
✓ Branch 7 taken 3 times.
+
✗ Branch 8 not taken.
3 validator_ = std::make_unique<QueryParamValidator>(doc_, keys_); validator_ = std::make_unique<QueryParamValidator>(doc_, keys_);
226 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 3 times.
+
+
3 } }
227 @@ -2365,72 +2457,63 @@

GCC Code Coverage Report

228 std::unique_ptr<QueryParamValidator> validator_; std::unique_ptr<QueryParamValidator> validator_;
229 std::string input_; std::string input_;
230 rapidjson::Document doc_; rapidjson::Document doc_;
231 -
- 6/12 -
-
✓ Branch 0 taken 3 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 3 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 3 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 3 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 3 times.
-
✗ Branch 9 not taken.
-
✗ Branch 10 not taken.
-
✓ Branch 11 taken 3 times.
-
-
3 std::vector<std::string> keys_{"paths", "/pets/xyz", "get", "parameters", "param"}; std::vector<std::string> keys_{"paths", "/pets/xyz", "get", "parameters", "param"};
232 std::string error_msg_; std::string error_msg_;
233 ValidationError expected_error_; ValidationError expected_error_;
234 };};
235 @@ -2438,134 +2521,171 @@

GCC Code Coverage Report

236
- 5/10 + 8/22
-
✓ Branch 0 taken 1 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 3 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 1 times.
-
✗ Branch 7 not taken.
-
✓ Branch 8 taken 1 times.
-
✗ Branch 9 not taken.
+
✓ Branch 7 taken 1 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1 times.
+
✗ Branch 11 not taken.
+
✓ Branch 13 taken 1 times.
+
✗ Branch 14 not taken.
+
✓ Branch 15 taken 1 times.
+
✗ Branch 16 not taken.
+
✓ Branch 17 taken 1 times.
+
✗ Branch 18 not taken.
+
✓ Branch 19 taken 1 times.
+
✗ Branch 20 not taken.
+
✗ Branch 21 not taken.
+
✗ Branch 22 not taken.
+
✗ Branch 23 not taken.
+
✗ Branch 24 not taken.
+
✗ Branch 25 not taken.
+
✗ Branch 26 not taken.
11TEST_P(QueryObjectParam, ValidateParam)23TEST_P(QueryObjectParam, ValidateParam)
237 {{
238 +
+ 1/2 +
+
✗ Branch 1 not taken.
+
✓ Branch 2 taken 3 times.
+
+
3 const char* beg = input_.c_str() + std::string("/pets/xyz?").size();6 const char* beg = input_.c_str() + std::string("/pets/xyz?").size();
239 3 const char* end = input_.c_str() + input_.size();6 const char* end = input_.c_str() + input_.size();
240 3 auto result = validator_->ValidateParam(beg, end, error_msg_);6 auto result = validator_->ValidateParam(beg, end, error_msg_);
241
- 1/10 + 1/14
-
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
-
✗ Branch 2 not taken.
-
✗ Branch 3 not taken.
+
✓ Branch 2 taken 3 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
-
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
+
✗ Branch 13 not taken.
+
✗ Branch 14 not taken.
+
✗ Branch 16 not taken.
+
✗ Branch 17 not taken.
+
✗ Branch 18 not taken.
+
✗ Branch 19 not taken.
3 EXPECT_EQ(result, expected_error_);6 EXPECT_EQ(result, expected_error_);
242
1/2
-
✓ Branch 0 taken 3 times.
-
✗ Branch 1 not taken.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 3 times.
3 if (result != ValidationError::NONE) {6 if (result != ValidationError::NONE) {
243 EXPECT_FALSE(error_msg_.empty()); EXPECT_FALSE(error_msg_.empty());
244 rapidjson::Document doc; rapidjson::Document doc;
245 doc.Parse(error_msg_.c_str()); doc.Parse(error_msg_.c_str());
246 EXPECT_FALSE(doc.HasParseError()); EXPECT_FALSE(doc.HasParseError());
247 } }
248 3}6}
249 @@ -2573,54 +2693,54 @@

GCC Code Coverage Report

250
- 4/8 + 1/2
-
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1 times.
-
✗ Branch 5 not taken.
-
✗ Branch 6 not taken.
-
✓ Branch 7 taken 1 times.
+
✓ Branch 2 taken 3 times.
5INSTANTIATE_TEST_CASE_P(QueryObjectParamTests, QueryObjectParam,8INSTANTIATE_TEST_CASE_P(QueryObjectParamTests, QueryObjectParam,
251 ::testing::Values(std::make_tuple("param=boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", "form", false, ValidationError::NONE), ::testing::Values(std::make_tuple("param=boolTrue,true,boolFalse,false,int,123,number,123.456,string,abc%20xyz", "form", false, ValidationError::NONE),
252 std::make_tuple("boolTrue=true&boolFalse=false&int=123&number=123.456&string=abc%20xyz", "form", true, ValidationError::NONE), std::make_tuple("boolTrue=true&boolFalse=false&int=123&number=123.456&string=abc%20xyz", "form", true, ValidationError::NONE),
253 std::make_tuple("param[boolTrue]=true&param[boolFalse]=false&param[int]=123&param[number]=123.456&param[string]=abc%20xyz", "deepObject", std::make_tuple("param[boolTrue]=true&param[boolFalse]=false&param[int]=123&param[number]=123.456&param[string]=abc%20xyz", "deepObject",
254 true, ValidationError::NONE))); true, ValidationError::NONE)));
255 @@ -2628,13 +2748,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.validators_store.cpp.89e1f199a2616c1c90c54209fd6cc330.html b/covhtml-oasvalidator/index.validators_store.cpp.89e1f199a2616c1c90c54209fd6cc330.html index be5b174..77f2aee 100644 --- a/covhtml-oasvalidator/index.validators_store.cpp.89e1f199a2616c1c90c54209fd6cc330.html +++ b/covhtml-oasvalidator/index.validators_store.cpp.89e1f199a2616c1c90c54209fd6cc330.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -41,132 +40,22 @@

GCC Code Coverage Report

Lines: - 82 - 98 - 83.7% - - - Functions: - 8 - 8 - 100.0% + 70 + 86 + 81.4% Branches: - 82 - 188 - 43.6% + 74 + 186 + 39.8%
-
+ -
-
+
- - -
@@ -175,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + - + + + - + + + - - + + + - + + - - + + + - - + + + + - + + - + + - + + - + + - - + + + - - + + + - + + - + + - + + - - + + + - - + + + - - + + + - + + - + + - + + - + + - + + - - + + + - + + + - - + + + - + + - - + + + - - + + + - + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - - + + + - + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - + + - + + - + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - + + - + + - + + - + + - + + - - + + + - + + - + + - + + - - + + + - - + + + - - + + + - - + + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - + + - + + - - + + + - - + + + - - + + + - - + + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - + + - - + + + - + + + - - + + + + - + + - + + - + + - + + - + + - - + + + - + + + - + + - + + + - + + - - + + + - - + + + + - + + - + + - - + + + - - + + + +
Exec Source
1 @@ -182,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -189,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -196,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -210,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -217,13 +113,15 @@

GCC Code Coverage Report

7 #include "validators/validators_store.hpp"#include "validators/validators_store.hpp"
8 @@ -231,13 +129,15 @@

GCC Code Coverage Report

9 #include <set>#include <set>
10 @@ -245,41 +145,46 @@

GCC Code Coverage Report

11 1008ValidatorsStore::ValidatorsStore(const rapidjson::Value& schema_val, const std::vector<std::string>& ref_keys)504ValidatorsStore::ValidatorsStore(const rapidjson::Value& schema_val, const std::vector<std::string>& ref_keys)
12
1/2
-
✓ Branch 0 taken 504 times.
-
✗ Branch 1 not taken.
+
✓ Branch 2 taken 504 times.
+
✗ Branch 3 not taken.
504 : body_validator_(new BodyValidator(schema_val, ref_keys)) : body_validator_(new BodyValidator(schema_val, ref_keys))
13 504{{
14 1008}504}
15 @@ -287,239 +192,267 @@

GCC Code Coverage Report

16 1560void ValidatorsStore::AddParamValidators(const std::string& path, const rapidjson::Value& params, std::vector<std::string>& ref_keys)void ValidatorsStore::AddParamValidators(const std::string& path, const rapidjson::Value& params, std::vector<std::string>& ref_keys)
17 {{
18 1560 auto path_param_idxs = GetPathParamIndices(path); auto path_param_idxs = GetPathParamIndices(path);
19
- 5/8 + 2/2
-
✓ Branch 0 taken 1560 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1560 times.
-
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1560 times.
-
✗ Branch 5 not taken.
-
✓ Branch 6 taken 2640 times.
-
✓ Branch 7 taken 1560 times.
+
✓ Branch 0 taken 2640 times.
+
✓ Branch 1 taken 1560 times.
4200 for (const auto& param_val : params.GetArray()) { for (const auto& param_val : params.GetArray()) {
20
- 3/6 + 2/4
-
✓ Branch 0 taken 2640 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2640 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 2640 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 2640 times.
✗ Branch 5 not taken.
2640 std::string in(param_val["in"].GetString());5280 std::string in(param_val["in"].GetString());
21
3/6
-
✓ Branch 0 taken 2640 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 2640 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 2280 times.
+
✓ Branch 2 taken 360 times.
✓ Branch 4 taken 2640 times.
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✗ Branch 7 not taken.
2640 std::string name(param_val["name"].GetString());5280 std::string name(param_val["name"].GetString());
22
1/2
-
✗ Branch 0 not taken.
✓ Branch 1 taken 2640 times.
+
✗ Branch 2 not taken.
2640 ref_keys.emplace_back(name); ref_keys.emplace_back(name);
23
2/2
-
✓ Branch 0 taken 840 times.
-
✓ Branch 1 taken 1800 times.
+
✓ Branch 1 taken 840 times.
+
✓ Branch 2 taken 1800 times.
2640 if ("path" == in) { if ("path" == in) {
24
4/8
-
✓ Branch 0 taken 840 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 840 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 840 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 840 times.
✗ Branch 5 not taken.
-
✓ Branch 6 taken 840 times.
-
✗ Branch 7 not taken.
+
✓ Branch 7 taken 840 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 840 times.
+
✗ Branch 11 not taken.
840 path_param_validators_.emplace_back(PathParamValidatorInfo{path_param_idxs.at(name), new PathParamValidator(param_val, ref_keys)}); path_param_validators_.emplace_back(PathParamValidatorInfo{path_param_idxs.at(name), new PathParamValidator(param_val, ref_keys)});
25
2/2
-
✓ Branch 0 taken 1008 times.
-
✓ Branch 1 taken 792 times.
+
✓ Branch 1 taken 1008 times.
+
✓ Branch 2 taken 792 times.
2640 } else if ("query" == in) {1800 } else if ("query" == in) {
26
4/8
-
✗ Branch 0 not taken.
✓ Branch 1 taken 1008 times.
✗ Branch 2 not taken.
-
✓ Branch 3 taken 1008 times.
-
✗ Branch 4 not taken.
-
✓ Branch 5 taken 1008 times.
-
✓ Branch 6 taken 1008 times.
-
✗ Branch 7 not taken.
+
✓ Branch 4 taken 1008 times.
+
✗ Branch 5 not taken.
+
✓ Branch 7 taken 1008 times.
+
✗ Branch 8 not taken.
+
✓ Branch 10 taken 1008 times.
+
✗ Branch 11 not taken.
1008 query_param_validators_.emplace_back(QueryParamValidatorInfo{name, new QueryParamValidator(param_val, ref_keys)});3024 query_param_validators_.emplace_back(QueryParamValidatorInfo{name, new QueryParamValidator(param_val, ref_keys)});
27
1/2
-
✓ Branch 0 taken 792 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 792 times.
+
✗ Branch 2 not taken.
1800 } else if ("header" == in) {792 } else if ("header" == in) {
28
- 3/6 + 3/8
-
✓ Branch 0 taken 792 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 792 times.
-
✗ Branch 3 not taken.
+
✓ Branch 1 taken 792 times.
+
✗ Branch 2 not taken.
✓ Branch 4 taken 792 times.
✗ Branch 5 not taken.
+
✓ Branch 7 taken 792 times.
+
✗ Branch 8 not taken.
+
✗ Branch 10 not taken.
+
✗ Branch 11 not taken.
792 header_param_validators_.emplace(name, new HeaderParamValidator(param_val, ref_keys)); header_param_validators_.emplace(name, new HeaderParamValidator(param_val, ref_keys));
29 } else { } else {
30 throw ValidatorInitExc("Invalid 'in' value '" + in + "' for parameter '" + name + "'"); throw ValidatorInitExc("Invalid 'in' value '" + in + "' for parameter '" + name + "'");
31 } }
32 +
+ 2/2 +
+
✓ Branch 1 taken 144 times.
+
✓ Branch 2 taken 2496 times.
+
+
2640 ref_keys.pop_back(); ref_keys.pop_back();
33 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 2640 times.
+
+
2640 }4200 }
34 1560}}
35 @@ -527,62 +460,70 @@

GCC Code Coverage Report

36 13300888ValidationError ValidatorsStore::ValidateBody(const std::string& json_body, std::string& error_msg)33218212ValidationError ValidatorsStore::ValidateBody(const std::string& json_body, std::string& error_msg)
37 {{
38
2/2
-
✓ Branch 0 taken 13300886 times.
+
✓ Branch 0 taken 33218210 times.
✓ Branch 1 taken 2 times.
13300888 if (body_validator_) {33218212 if (body_validator_) {
39 13300886 return body_validator_->ValidateJson(json_body, error_msg);33218210 return body_validator_->ValidateJson(json_body, error_msg);
40 } }
41 2 return ValidationError::NONE; // No validator, no error return ValidationError::NONE; // No validator, no error
42 13300888}}
43 @@ -590,120 +531,123 @@

GCC Code Coverage Report

44 6059268ValidationError ValidatorsStore::ValidatePathParams(std::unordered_map<size_t, ParamRange>& param_idxs, std::string& error_msg)16679162ValidationError ValidatorsStore::ValidatePathParams(std::unordered_map<size_t, ParamRange>& param_idxs, std::string& error_msg)
45 {{
46
- 4/4 + 2/2
-
✓ Branch 0 taken 6438284 times.
-
✓ Branch 1 taken 4381982 times.
-
✓ Branch 2 taken 1677286 times.
-
✓ Branch 3 taken 4381982 times.
+
✓ Branch 0 taken 18084842 times.
+
✓ Branch 1 taken 12330122 times.
12497552 for (auto& param_validator : path_param_validators_) {30414964 for (auto& param_validator : path_param_validators_) {
47 try {18084842 try {
48
1/2
-
✓ Branch 0 taken 6438284 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 18084842 times.
+
✗ Branch 2 not taken.
6438284 auto const& range = param_idxs.at(param_validator.idx);18084842 auto const& range = param_idxs.at(param_validator.idx);
49
1/2
-
✓ Branch 0 taken 6438284 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 18084842 times.
+
✗ Branch 2 not taken.
6438284 auto err_code = param_validator.validator->ValidateParam(range.beg, range.end, error_msg);18084842 auto err_code = param_validator.validator->ValidateParam(range.beg, range.end, error_msg);
50
2/2
-
✓ Branch 0 taken 1677286 times.
-
✓ Branch 1 taken 4760998 times.
+
✓ Branch 0 taken 4349040 times.
+
✓ Branch 1 taken 13735802 times.
6438284 CHECK_ERROR(err_code)18084842 CHECK_ERROR(err_code)
51 -
- 0/2 -
-
✗ Branch 0 not taken.
-
✗ Branch 1 not taken.
-
-
4760998 } catch (const std::out_of_range&) { } catch (const std::out_of_range&) {
52 return param_validator.validator->ErrorOnMissing(error_msg); return param_validator.validator->ErrorOnMissing(error_msg);
53 } }
54 } }
55 @@ -711,20 +655,23 @@

GCC Code Coverage Report

56 4381982 return ValidationError::NONE; return ValidationError::NONE;
57 6059268}}
58 @@ -732,269 +679,291 @@

GCC Code Coverage Report

59 16867606ValidationError ValidatorsStore::ValidateQueryParams(const std::string& query, std::string& error_msg)56587026ValidationError ValidatorsStore::ValidateQueryParams(const std::string& query, std::string& error_msg)
60 {{
61
2/2
-
✓ Branch 0 taken 189521 times.
-
✓ Branch 1 taken 16678085 times.
+
✓ Branch 0 taken 55884173 times.
+
✓ Branch 1 taken 702853 times.
16867606 if (1 == query_param_validators_.size()) {56587026 if (1 == query_param_validators_.size()) {
62
- 1/2 + 2/4
✗ Branch 0 not taken.
-
✓ Branch 1 taken 16678085 times.
+
✓ Branch 1 taken 55884173 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 55884173 times.
16678085 if (query.at(0) != '?') {55884173 if (query.at(0) != '?') {
63 error_msg = query_param_validators_.front().validator->GetErrHeader() + R"("description": "Query string should start with '?'"}})"; error_msg = query_param_validators_.front().validator->GetErrHeader() + R"("description": "Query string should start with '?'"}})";
64 return ValidationError::INVALID_QUERY_PARAM; return ValidationError::INVALID_QUERY_PARAM;
65 } }
66 16678085 return query_param_validators_.front().validator->ValidateParam(query.data() + 1, query.data() + query.size(), error_msg);55884173 return query_param_validators_.front().validator->ValidateParam(query.data() + 1, query.data() + query.size(), error_msg);
67 } }
68 189521 std::set<size_t> starts;702853 std::set<size_t> starts;
69 189521 std::unordered_map<std::string, size_t> start_map;702853 std::unordered_map<std::string, size_t> start_map;
70
- 3/4 + 2/2
-
✓ Branch 0 taken 189521 times.
-
✓ Branch 1 taken 1326571 times.
-
✗ Branch 2 not taken.
-
✓ Branch 3 taken 189521 times.
+
✓ Branch 0 taken 4919895 times.
+
✓ Branch 1 taken 702853 times.
1516092 for (const auto& param_validator : query_param_validators_) {5622748 for (const auto& param_validator : query_param_validators_) {
71 1326571 auto start = query.find(param_validator.name);4919895 auto start = query.find(param_validator.name);
72
1/2
-
✓ Branch 0 taken 1326571 times.
-
✗ Branch 1 not taken.
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 4919895 times.
1326571 if (std::string::npos == start) {4919895 if (std::string::npos == start) {
73 if (param_validator.validator->IsRequired()) { if (param_validator.validator->IsRequired()) {
74 return param_validator.validator->ErrorOnMissing(error_msg); return param_validator.validator->ErrorOnMissing(error_msg);
75 } else { } else {
76 continue; continue;
77 } }
78 } }
79
3/4
-
✓ Branch 0 taken 1137059 times.
-
✓ Branch 1 taken 189512 times.
-
✓ Branch 2 taken 1137059 times.
-
✗ Branch 3 not taken.
+
✓ Branch 0 taken 4217051 times.
+
✓ Branch 1 taken 702844 times.
+
✗ Branch 2 not taken.
+
✓ Branch 3 taken 4217051 times.
1326571 if (query[start - 1] != '?' && query[start - 1] != '&') {4919895 if (query[start - 1] != '?' && query[start - 1] != '&') {
80 error_msg = param_validator.validator->GetErrHeader() + R"("description": "Query parameter ')" + param_validator.name + R"(' should start with '?' or '&'"}})"; error_msg = param_validator.validator->GetErrHeader() + R"("description": "Query parameter ')" + param_validator.name + R"(' should start with '?' or '&'"}})";
81 return ValidationError::INVALID_QUERY_PARAM; return ValidationError::INVALID_QUERY_PARAM;
82 } }
83
1/2
-
✓ Branch 0 taken 1326571 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 4919895 times.
+
✗ Branch 2 not taken.
1326571 starts.emplace(start);4919895 starts.emplace(start);
84
1/2
-
✓ Branch 0 taken 1326571 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 4919895 times.
+
✗ Branch 2 not taken.
1326571 start_map.emplace(param_validator.name, start);4919895 start_map.emplace(param_validator.name, start);
85 -
- 1/2 -
-
✓ Branch 0 taken 1326571 times.
-
✗ Branch 1 not taken.
-
-
1326571 } }
86
1/2
-
✓ Branch 0 taken 189521 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 702853 times.
+
✗ Branch 2 not taken.
189521 starts.emplace(query.length() + 1);702853 starts.emplace(query.length() + 1);
87 @@ -1002,75 +971,75 @@

GCC Code Coverage Report

88
- 3/4 + 2/2
-
✓ Branch 0 taken 1326571 times.
-
✓ Branch 1 taken 189521 times.
-
✗ Branch 2 not taken.
-
✓ Branch 3 taken 189521 times.
+
✓ Branch 0 taken 4919895 times.
+
✓ Branch 1 taken 702853 times.
1516092 for (auto& param_validator : query_param_validators_) {5622748 for (auto& param_validator : query_param_validators_) {
89 try {4919895 try {
90
1/2
-
✓ Branch 0 taken 1326571 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 4919895 times.
+
✗ Branch 2 not taken.
1326571 auto start = start_map.at(param_validator.name);4919895 auto start = start_map.at(param_validator.name);
91
- 3/6 + 1/2
-
✓ Branch 0 taken 1326571 times.
-
✗ Branch 1 not taken.
-
✓ Branch 2 taken 1326571 times.
+
✓ Branch 2 taken 4919895 times.
✗ Branch 3 not taken.
-
✓ Branch 4 taken 1326571 times.
-
✗ Branch 5 not taken.
1326571 auto end = (*std::next(starts.find(start))) - 1;9839790 auto end = (*std::next(starts.find(start))) - 1;
92
1/2
-
✓ Branch 0 taken 1326571 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 4919895 times.
+
✗ Branch 2 not taken.
1326571 auto err_code = param_validator.validator->ValidateParam(query.data() + start, query.data() + end, error_msg);4919895 auto err_code = param_validator.validator->ValidateParam(query.data() + start, query.data() + end, error_msg);
93 @@ -1078,78 +1047,78 @@

GCC Code Coverage Report

1/2
✗ Branch 0 not taken.
-
✓ Branch 1 taken 1326571 times.
+
✓ Branch 1 taken 4919895 times.
1326571 CHECK_ERROR(err_code)4919895 CHECK_ERROR(err_code)
94 -
- 1/4 -
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 1326571 times.
-
✗ Branch 2 not taken.
-
✗ Branch 3 not taken.
-
-
1326571 } catch (const std::out_of_range&) { } catch (const std::out_of_range&) {
95 if (param_validator.validator->IsRequired()) { if (param_validator.validator->IsRequired()) {
96 return param_validator.validator->ErrorOnMissing(error_msg); return param_validator.validator->ErrorOnMissing(error_msg);
97 } }
98 } }
99 1326571 } }
100 189521 return ValidationError::NONE; return ValidationError::NONE;
101 16867606}57289879}
102 @@ -1157,162 +1126,171 @@

GCC Code Coverage Report

103 17934941ValidationError ValidatorsStore::ValidateHeaderParams(const std::unordered_map<std::string, std::string>& headers, std::string& error_msg)56160354ValidationError ValidatorsStore::ValidateHeaderParams(const std::unordered_map<std::string, std::string>& headers, std::string& error_msg)
104 {{
105
- 4/4 + 2/2
-
✓ Branch 0 taken 18124452 times.
-
✓ Branch 1 taken 15709672 times.
-
✓ Branch 2 taken 2225269 times.
-
✓ Branch 3 taken 15709672 times.
+
✓ Branch 0 taken 56863197 times.
+
✓ Branch 1 taken 47950322 times.
36059393 for (auto& header_validator : header_param_validators_) {104813519 for (auto& header_validator : header_param_validators_) {
106 try {56863197 try {
107
1/2
-
✓ Branch 0 taken 18124452 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 56863197 times.
+
✗ Branch 2 not taken.
18124452 const auto& param = headers.at(header_validator.first);56863197 const auto& param = headers.at(header_validator.first);
108
1/2
-
✓ Branch 0 taken 18124452 times.
-
✗ Branch 1 not taken.
+
✓ Branch 1 taken 56863197 times.
+
✗ Branch 2 not taken.
18124452 auto err_code = header_validator.second->ValidateParam(param.data(), param.data() + param.size(), error_msg);56863197 auto err_code = header_validator.second->ValidateParam(param.data(), param.data() + param.size(), error_msg);
109
2/2
-
✓ Branch 0 taken 2225269 times.
-
✓ Branch 1 taken 15899183 times.
+
✓ Branch 0 taken 8210032 times.
+
✓ Branch 1 taken 48653165 times.
18124452 CHECK_ERROR(err_code)56863197 CHECK_ERROR(err_code)
110 -
- 0/2 -
-
✗ Branch 0 not taken.
-
✗ Branch 1 not taken.
-
-
15899183 } catch (const std::out_of_range&) { } catch (const std::out_of_range&) {
111 if (header_validator.second->IsRequired()) { if (header_validator.second->IsRequired()) {
112 return header_validator.second->ErrorOnMissing(error_msg); return header_validator.second->ErrorOnMissing(error_msg);
113 } }
114 } }
115 15899183 } }
116 15709672 return ValidationError::NONE; return ValidationError::NONE;
117 17934941}}
118 4176ValidatorsStore::~ValidatorsStore()2088ValidatorsStore::~ValidatorsStore()
119 2088{{
120 @@ -1320,6 +1298,7 @@

GCC Code Coverage Report

#ifndef LUA_OAS_VALIDATOR // LUA manages garbage collection itself
121 @@ -1332,29 +1311,32 @@

GCC Code Coverage Report

3096 for (auto& param_validator : query_param_validators_) { for (auto& param_validator : query_param_validators_) {
122
1/2
-
✗ Branch 0 not taken.
-
✓ Branch 1 taken 1008 times.
+
✓ Branch 0 taken 1008 times.
+
✗ Branch 1 not taken.
1008 delete param_validator.validator;2016 delete param_validator.validator;
123 } }
124 @@ -1362,13 +1344,22 @@

GCC Code Coverage Report

#endif
125 +
+ 2/2 +
+
✓ Branch 2 taken 744 times.
+
✓ Branch 3 taken 1344 times.
+
+
4176}2088}
126 @@ -1376,55 +1367,63 @@

GCC Code Coverage Report

127 1560std::unordered_map<std::string, int> ValidatorsStore::GetPathParamIndices(const std::string& path)std::unordered_map<std::string, int> ValidatorsStore::GetPathParamIndices(const std::string& path)
128 {{
129 1560 std::unordered_map<std::string, int> param_idxs; std::unordered_map<std::string, int> param_idxs;
130 1560 const char* dir_start = path.data(); const char* dir_start = path.data();
131 1560 const char* const path_end = dir_start + path.length(); const char* const path_end = dir_start + path.length();
132 const char* dir_end;1560 const char* dir_end;
133 1560 int frag_idx = 0; int frag_idx = 0;
134 @@ -1432,27 +1431,30 @@

GCC Code Coverage Report

135
2/2
-
✓ Branch 0 taken 1560 times.
-
✓ Branch 1 taken 5568 times.
+
✓ Branch 0 taken 5568 times.
+
✓ Branch 1 taken 1560 times.
7128 while (dir_start < path_end) { while (dir_start < path_end) {
136 5568 dir_end = Seek(dir_start, path_end, '/'); dir_end = Seek(dir_start, path_end, '/');
137 @@ -1460,6 +1462,7 @@

GCC Code Coverage Report

138 @@ -1468,37 +1471,42 @@

GCC Code Coverage Report

✓ Branch 0 taken 840 times.
✓ Branch 1 taken 4728 times.
-
✗ Branch 2 not taken.
-
✓ Branch 3 taken 840 times.
+
✓ Branch 2 taken 840 times.
+
✗ Branch 3 not taken.
5568 if (*dir_start == '{' && *(dir_end - 1) == '}') { if (*dir_start == '{' && *(dir_end - 1) == '}') {
139
- 2/4 + 3/6
-
✗ Branch 0 not taken.
✓ Branch 1 taken 840 times.
✗ Branch 2 not taken.
-
✓ Branch 3 taken 840 times.
+
✓ Branch 4 taken 840 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✓ Branch 7 taken 840 times.
840 param_idxs.emplace(std::string(dir_start + 1, dir_end - 1), frag_idx);1680 param_idxs.emplace(std::string(dir_start + 1, dir_end - 1), frag_idx);
140 840 } }
141 @@ -1506,41 +1514,39 @@

GCC Code Coverage Report

5568 dir_start = dir_end + 1; // skip '/'
142 5568 frag_idx++; frag_idx++;
143 } }
144 return param_idxs;1560 return param_idxs;
145 -
- 1/2 -
-
✓ Branch 0 taken 1560 times.
-
✗ Branch 1 not taken.
-
-
1560}}
146 @@ -1548,13 +1554,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/covhtml-oasvalidator/index.validators_store.hpp.baaec323cc1432d58a25fa435cb12334.html b/covhtml-oasvalidator/index.validators_store.hpp.baaec323cc1432d58a25fa435cb12334.html index 22556c6..80cc3f9 100644 --- a/covhtml-oasvalidator/index.validators_store.hpp.baaec323cc1432d58a25fa435cb12334.html +++ b/covhtml-oasvalidator/index.validators_store.hpp.baaec323cc1432d58a25fa435cb12334.html @@ -1,20 +1,19 @@ - + GCC Code Coverage Report - + -
-

GCC Code Coverage Report

+

GCC Code Coverage Report

-
+
-
+
@@ -27,7 +26,7 @@

GCC Code Coverage Report

- +
Date:2023-11-25 18:43:342023-11-25 18:58:14
@@ -45,51 +44,18 @@

GCC Code Coverage Report

2 100.0% - - Functions: - 1 - 1 - 100.0% - Branches: - 0 - 0 - -% + 6 + 16 + 37.5%
-
- -
-
- - +
-
@@ -98,6 +64,8 @@

GCC Code Coverage Report

+ + + + + - + + + + + + + - + + - + + - + + - + + + - + + - + + - + + - + + - - + + + - + + - + + - + + - + + - + + - + + - + + + - + + - + + - + + - + + - + + - + + + - - +
+ 5/14 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 1008 times.
+
✓ Branch 2 taken 912 times.
+
✗ Branch 3 not taken.
+
✓ Branch 4 taken 552 times.
+
✗ Branch 5 not taken.
+
✗ Branch 6 not taken.
+
✗ Branch 7 not taken.
+
✓ Branch 8 taken 96 times.
+
✗ Branch 9 not taken.
+
✗ Branch 10 not taken.
+
✓ Branch 11 taken 1008 times.
+
✗ Branch 12 not taken.
+
✗ Branch 13 not taken.
+
+
+ + + + - + + - + + - + + - + + + - - + + + - + + - + + - + + + - + + - + + + + +
Exec Source
1 @@ -105,6 +73,7 @@

GCC Code Coverage Report

/*
2 @@ -112,6 +81,7 @@

GCC Code Coverage Report

* Copyright (c) 2023 Muhammad Nawaz
3 @@ -119,13 +89,15 @@

GCC Code Coverage Report

* Licensed under the MIT License. See LICENSE file for more information.
4 */ */
5 @@ -133,6 +105,7 @@

GCC Code Coverage Report

// [ END OF LICENSE 7982e23aed1dc8eda1fdc979fee617354ae998dc ]
6 @@ -140,6 +113,7 @@

GCC Code Coverage Report

7 @@ -147,6 +121,7 @@

GCC Code Coverage Report

#ifndef OAS_VALIDATORS_HPP
8 @@ -154,6 +129,7 @@

GCC Code Coverage Report

#define OAS_VALIDATORS_HPP
9 @@ -161,34 +137,39 @@

GCC Code Coverage Report

10 #include "utils/common.hpp"#include "utils/common.hpp"
11 #include "utils/path_trie.hpp"#include "utils/path_trie.hpp"
12 #include "validators/body_validator.hpp"#include "validators/body_validator.hpp"
13 #include "validators/param_validators.hpp"#include "validators/param_validators.hpp"
14 @@ -196,90 +177,110 @@

GCC Code Coverage Report

15 #include <vector>#include <vector>
16 class ValidatorsStoreclass ValidatorsStore
17 {{
18 public:public:
19 +
+ 1/2 +
+
✓ Branch 1 taken 1584 times.
+
✗ Branch 2 not taken.
+
+
4752 ValidatorsStore() = default;1584 ValidatorsStore() = default;
20 explicit ValidatorsStore(const rapidjson::Value& schema_val, const std::vector<std::string>& ref_keys); explicit ValidatorsStore(const rapidjson::Value& schema_val, const std::vector<std::string>& ref_keys);
21 void AddParamValidators(const std::string& path, const rapidjson::Value& params, std::vector<std::string>& ref_keys); void AddParamValidators(const std::string& path, const rapidjson::Value& params, std::vector<std::string>& ref_keys);
22 ValidationError ValidateBody(const std::string& json_body, std::string& error_msg); ValidationError ValidateBody(const std::string& json_body, std::string& error_msg);
23 ValidationError ValidatePathParams(std::unordered_map<size_t, ParamRange>& param_idxs, std::string& error_msg); ValidationError ValidatePathParams(std::unordered_map<size_t, ParamRange>& param_idxs, std::string& error_msg);
24 ValidationError ValidateQueryParams(const std::string& query, std::string& error_msg); ValidationError ValidateQueryParams(const std::string& query, std::string& error_msg);
25 ValidationError ValidateHeaderParams(const std::unordered_map<std::string, std::string>& headers, std::string& error_msg); ValidationError ValidateHeaderParams(const std::unordered_map<std::string, std::string>& headers, std::string& error_msg);
26 ~ValidatorsStore(); ~ValidatorsStore();
27 @@ -287,48 +288,55 @@

GCC Code Coverage Report

28 private:private:
29 struct PathParamValidatorInfo struct PathParamValidatorInfo
30 { {
31 int idx; int idx;
32 PathParamValidator* validator; PathParamValidator* validator;
33 }; };
34 @@ -336,41 +344,66 @@

GCC Code Coverage Report

35 - struct QueryParamValidatorInfo5136 struct QueryParamValidatorInfo
36 { {
37 std::string name; std::string name;
38 QueryParamValidator* validator; QueryParamValidator* validator;
39 }; };
40 @@ -378,34 +411,39 @@

GCC Code Coverage Report

41 1584 BodyValidator* body_validator_ = nullptr; BodyValidator* body_validator_ = nullptr;
42 std::vector<PathParamValidatorInfo> path_param_validators_; std::vector<PathParamValidatorInfo> path_param_validators_;
43 std::vector<QueryParamValidatorInfo> query_param_validators_; std::vector<QueryParamValidatorInfo> query_param_validators_;
44 std::unordered_map<std::string, HeaderParamValidator*> header_param_validators_; std::unordered_map<std::string, HeaderParamValidator*> header_param_validators_;
45 @@ -413,20 +451,23 @@

GCC Code Coverage Report

46 static std::unordered_map<std::string, int> GetPathParamIndices(const std::string& path); static std::unordered_map<std::string, int> GetPathParamIndices(const std::string& path);
47 };};
48 @@ -434,6 +475,7 @@

GCC Code Coverage Report

49 @@ -441,6 +483,7 @@

GCC Code Coverage Report

#endif // OAS_VALIDATORS_HPP
50 @@ -448,13 +491,14 @@

GCC Code Coverage Report

-
-
+ +
diff --git a/searchindex.js b/searchindex.js index b919094..fd829d1 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["api/classOASValidator","api/define_oas__validator_8hpp_1a838ca36f37b19a874eabd4eeff5be860","api/enum_oas__validator_8hpp_1a1ff35fa09f5edbd315e3fa9999983f2b","api/file_oas_validator.hpp","api/library_root","api/program_listing_file_oas_validator.hpp","api/unabridged_orphan","benchmark","classdiagram","codecov","genindex","index","oasvalidator"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["api/classOASValidator.rst","api/define_oas__validator_8hpp_1a838ca36f37b19a874eabd4eeff5be860.rst","api/enum_oas__validator_8hpp_1a1ff35fa09f5edbd315e3fa9999983f2b.rst","api/file_oas_validator.hpp.rst","api/library_root.rst","api/program_listing_file_oas_validator.hpp.rst","api/unabridged_orphan.rst","benchmark.rst","classdiagram.rst","codecov.rst","genindex.rst","index.rst","oasvalidator.rst"],objects:{"":[[1,0,1,"c.VALIDATION_ERROR","VALIDATION_ERROR"],[0,1,1,"_CPPv412OASValidator","OASValidator"],[0,2,1,"_CPPv4N12OASValidator12OASValidatorERKNSt6stringE","OASValidator::OASValidator"],[0,3,1,"_CPPv4N12OASValidator12OASValidatorERKNSt6stringE","OASValidator::OASValidator::oas_specs"],[0,2,1,"_CPPv4N12OASValidator12ValidateBodyERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateBody"],[0,3,1,"_CPPv4N12OASValidator12ValidateBodyERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateBody::error_msg"],[0,3,1,"_CPPv4N12OASValidator12ValidateBodyERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateBody::http_path"],[0,3,1,"_CPPv4N12OASValidator12ValidateBodyERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateBody::json_body"],[0,3,1,"_CPPv4N12OASValidator12ValidateBodyERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateBody::method"],[0,2,1,"_CPPv4N12OASValidator15ValidateHeadersERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateHeaders"],[0,3,1,"_CPPv4N12OASValidator15ValidateHeadersERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateHeaders::error_msg"],[0,3,1,"_CPPv4N12OASValidator15ValidateHeadersERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateHeaders::headers"],[0,3,1,"_CPPv4N12OASValidator15ValidateHeadersERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateHeaders::http_path"],[0,3,1,"_CPPv4N12OASValidator15ValidateHeadersERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateHeaders::method"],[0,2,1,"_CPPv4N12OASValidator17ValidatePathParamERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidatePathParam"],[0,3,1,"_CPPv4N12OASValidator17ValidatePathParamERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidatePathParam::error_msg"],[0,3,1,"_CPPv4N12OASValidator17ValidatePathParamERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidatePathParam::http_path"],[0,3,1,"_CPPv4N12OASValidator17ValidatePathParamERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidatePathParam::method"],[0,2,1,"_CPPv4N12OASValidator18ValidateQueryParamERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateQueryParam"],[0,3,1,"_CPPv4N12OASValidator18ValidateQueryParamERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateQueryParam::error_msg"],[0,3,1,"_CPPv4N12OASValidator18ValidateQueryParamERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateQueryParam::http_path"],[0,3,1,"_CPPv4N12OASValidator18ValidateQueryParamERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateQueryParam::method"],[0,2,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest"],[0,2,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest"],[0,2,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest"],[0,2,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::error_msg"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::error_msg"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest::error_msg"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest::error_msg"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::headers"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::headers"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::http_path"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::http_path"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest::http_path"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest::http_path"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::json_body"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest::json_body"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::method"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::method"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest::method"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest::method"],[0,2,1,"_CPPv4N12OASValidator13ValidateRouteERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRoute"],[0,3,1,"_CPPv4N12OASValidator13ValidateRouteERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRoute::error_msg"],[0,3,1,"_CPPv4N12OASValidator13ValidateRouteERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRoute::http_path"],[0,3,1,"_CPPv4N12OASValidator13ValidateRouteERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRoute::method"],[0,2,1,"_CPPv4N12OASValidatorD0Ev","OASValidator::~OASValidator"],[2,4,1,"_CPPv415ValidationError","ValidationError"],[2,5,1,"_CPPv4N15ValidationError12INVALID_BODYE","ValidationError::INVALID_BODY"],[2,5,1,"_CPPv4N15ValidationError20INVALID_HEADER_PARAME","ValidationError::INVALID_HEADER_PARAM"],[2,5,1,"_CPPv4N15ValidationError14INVALID_METHODE","ValidationError::INVALID_METHOD"],[2,5,1,"_CPPv4N15ValidationError18INVALID_PATH_PARAME","ValidationError::INVALID_PATH_PARAM"],[2,5,1,"_CPPv4N15ValidationError19INVALID_QUERY_PARAME","ValidationError::INVALID_QUERY_PARAM"],[2,5,1,"_CPPv4N15ValidationError13INVALID_ROUTEE","ValidationError::INVALID_ROUTE"],[2,5,1,"_CPPv4N15ValidationError11INVALID_RSPE","ValidationError::INVALID_RSP"],[2,5,1,"_CPPv4N15ValidationError4NONEE","ValidationError::NONE"]]},objnames:{"0":["c","macro","C macro"],"1":["cpp","class","C++ class"],"2":["cpp","function","C++ function"],"3":["cpp","functionParam","C++ function parameter"],"4":["cpp","enum","C++ enum"],"5":["cpp","enumerator","C++ enumerator"]},objtypes:{"0":"c:macro","1":"cpp:class","2":"cpp:function","3":"cpp:functionParam","4":"cpp:enum","5":"cpp:enumerator"},terms:{"0":[5,7,12],"00":7,"00049":7,"050":7,"051":7,"1":[5,7,11],"10":[7,12],"1000000":7,"10000000":7,"11":[7,12],"12":7,"12582912":7,"129":7,"13":7,"130":7,"14":7,"1467633":7,"15":7,"16":7,"166":7,"167":7,"17":7,"1700934014912":7,"173":7,"18":7,"180":7,"181":7,"191955":7,"193":7,"2":[5,7,11],"200":7,"2023":[3,5,7],"205402":7,"22":7,"223091":7,"23":7,"25":7,"25t18":7,"262144":7,"286476":7,"28649794":7,"2f":12,"2fabc":12,"2fall":12,"2fjson":12,"2ftest":12,"3":[5,7,11],"3190":7,"319398":7,"32617":7,"32768":7,"373":7,"374":7,"39":7,"4":[5,7,11],"412":7,"413":7,"4297345":7,"452":7,"479":7,"5":[5,7,11],"5096204":7,"527":7,"530":7,"530050":7,"531":7,"544703":7,"561":7,"593":7,"595":7,"6":[5,7,11],"67775":7,"684526":7,"7":[5,7,11],"70":7,"7583":7,"7982e23aed1dc8eda1fdc979fee617354ae998dc":5,"8":7,"824351":7,"837959":7,"845":7,"876":7,"886":7,"9":7,"973":7,"984":7,"988":7,"991":7,"9955505":7,"\u00b5s":7,"boolean":12,"byte":7,"case":0,"class":[1,2,5,11,12],"const":[0,5],"default":12,"enum":[0,1,5,12],"final":12,"function":0,"public":[0,5],"return":[0,5,12],"true":12,A:[11,12],For:12,If:12,In:12,No:[0,2],OF:5,ON:12,The:[0,2,9,12],Then:12,To:12,With:12,accompani:12,across:12,addit:12,address:12,against:[0,11,12],align:12,all:12,although:12,an:[0,12],ani:12,api:[0,11,12],applic:12,ar:12,argument:0,arrai:12,avail:12,b:12,backend:12,base:0,below:12,benchmark:11,bodi:[0,2,12],broad:12,browser:12,build:7,c:[5,11,12],cach:7,can:[0,9,12],categor:1,cd:12,check:12,cmake:12,code:11,com:12,command:12,compat:12,compil:12,complexvalidrequest:7,compliant:12,compon:12,comprehens:[0,12],conclus:11,concurr:12,configur:12,confirm:12,consist:12,constructor:0,contain:0,content:12,context:[11,12],copyright:5,coupl:12,covarg:12,coverag:11,covhtml:12,cpp:12,cpu:7,cpu_scaling_en:7,data:[7,11],date:7,dbuild_coverag:12,dbuild_exampl:12,dbuild_perf:12,dbuild_test:12,declar:1,deepobject:12,defin:[0,2,5],delet:0,depend:12,depth:12,descript:12,deseri:11,detail:12,diagram:11,did:12,differ:1,directli:12,directori:12,document:5,doesn:12,down:12,dure:[1,12],e:0,effici:12,elucid:12,end:5,endif:5,engin:12,ensur:12,entir:0,enumer:[2,12],error:[0,1,2,11],error_msg:[0,5],errorcod:12,etc:12,except:[3,5],execut:7,expans:12,explicit:[0,5],explod:12,extens:12,fals:[7,12],fast:11,featur:11,field6:12,file:[0,1,2,11,12],follow:[0,12],form:12,format:[0,12],forward:1,found:9,four:12,from:[0,12],g:0,gatewai:12,gcov:12,get:[0,11],git:12,github:12,googletest:12,ha:12,handl:11,header:[0,2,3,5],here:[9,12],hierarchi:11,higher:12,host_nam:7,hpp:[0,1,2,4,6,12],html:12,http:[0,2,11,12],http_path:[0,5],id:0,ifndef:5,impl_:5,implement:1,inaccuraci:12,includ:[0,5,12],index:[7,11,12],indic:[0,12],inform:5,insight:12,inspect:12,instanc:12,instruct:7,integ:12,integr:12,introduct:11,invalid:0,invalid_bodi:[0,2,5,12],invalid_header_param:[0,2,5,12],invalid_method:[0,2,5,12],invalid_path_param:[0,2,5,12],invalid_query_param:[0,2,5,12],invalid_rout:[0,2,5,12],invalid_rsp:[2,5,12],invalidbodi:7,invalidheaderparam:7,invalidmethod:7,invalidpathparam:7,invalidqueryparam:7,invalidrequest1:7,invalidrequest2:7,invalidrequest3:7,invalidrequest4:7,invalidrequest5:7,invalidrout:7,issu:12,iter:7,its:12,j:12,json:[0,12],json_bodi:[0,5],kei:[7,11],label:12,later:12,lazi:12,lcov:12,level:7,librari:[3,11,12],library_build_typ:7,licens:5,line:12,list:[3,12],load_avg:7,local:7,logic:12,mac:7,make:12,match:12,matrix:12,mean:12,messag:[0,12],method:[0,2,5,12],meticul:12,mhz_per_cpu:7,might:1,mit:5,more:5,muhammad:[3,5],n:12,name:0,navig:12,nawaz1991:12,nawaz:[3,5],none:[0,2,5,12],nproc:12,num:7,num_cpu:7,oa:[0,11],oas_spec:[0,5,12],oas_valid:[0,1,2,4,6,12],oas_validator_hpp:5,oasvalid:[3,4,5,7,12],oasvalidatorenum:4,oasvalidatorimp:5,object:12,occur:[1,2],offer:0,one:12,oneof:12,onli:12,open:12,openapi:[0,11,12],optim:12,order:12,overload:[0,12],param1:12,param2:12,param3:12,param:12,paramet:[0,2,11],pars:12,pass:12,path:[0,2],perform:0,perftest:[7,12],pinpoint:12,pipedelimit:12,popul:0,possibl:0,post:[0,12],preced:12,prerequisit:12,primit:12,prior:12,privat:[5,12],process:[1,12],program:3,project:12,properti:12,provid:[0,12],put:[0,12],queri:[0,2],rang:12,rapidjson:12,reach:12,read:12,real:7,recurs:12,refer:[0,11,12],releas:7,relev:12,report:11,request:[0,2,11,12],requestbodi:12,requir:12,resourc:0,respond:12,respons:2,rest:[0,11,12],result:[0,12],rigor:12,root:12,rout:[0,2,12],runtim:12,s:12,safe:12,schema:[0,12],see:5,sequenc:[0,11],sequenti:12,serial:12,server:[11,12],servic:12,share:7,simpl:12,size:7,solut:12,spacedelimit:12,spec:[0,12],specif:[0,11,12],specifi:[0,1,12],specref:12,spectrum:12,stage:12,stai:12,standalon:12,start:11,std:[0,5],step:12,stop:12,store:0,streamlin:12,string:[0,3,5,12],structur:12,style:11,sub:12,sudo:12,support:12,swagger:12,systemat:12,t:12,tabl:12,take:0,target:12,target_link_librari:12,test:7,thi:[0,1,12],thread:12,time:7,type:[1,7,11],under:5,understand:12,unifi:7,unittest:12,unordered_map:[0,3,5],us:1,util:12,v1:0,valid:[0,1,2,11],validatebodi:[0,5],validatehead:[0,5],validatepathparam:[0,5],validatequeryparam:[0,5],validaterequest:[0,5],validaterout:[0,5],validation_error:[3,4,5],validationerror:[0,3,4,5,12],validatorinitexc:5,validbodi:7,validheaderparam:7,validpathparam:7,validqueryparam:7,validrequest:7,validrout:7,valu:[0,2,7,12],variat:12,variou:[0,12],view:12,well:12,when:12,where:0,whole:12,wide:12,without:12,x:12,you:12,your:12,your_target:12},titles:["Class OASValidator","Define VALIDATION_ERROR","Enum ValidationError","File oas_validator.hpp","API","Program Listing for File oas_validator.hpp","Reference","Benchmark Report","Class Diagram","Code Coverage Report","Index","cpp-oasvalidator","OAS Validator"],titleterms:{"1":12,"2":12,"3":12,"4":12,"5":12,"6":12,"7":12,"class":[0,3,4,8],"enum":[2,3,4],api:4,benchmark:[7,12],build:12,clone:12,code:[9,12],conclus:12,context:7,coverag:[9,12],cpp:11,data:12,defin:[1,3,4],definit:3,descript:3,deseri:12,detail:3,diagram:8,document:[0,1,2],error:12,exampl:12,featur:12,file:[3,4,5,6],gener:12,get:12,handl:12,header:12,hierarchi:4,hpp:[3,5],includ:3,index:10,initi:12,instal:12,introduct:12,kei:12,list:5,oa:12,oas_valid:[3,5],oasvalid:[0,11],paramet:12,path:12,perform:12,program:5,queri:12,refer:[4,6],report:[7,9,12],repositori:12,run:12,sequenc:12,start:12,struct:4,style:12,test:12,type:12,valid:12,validation_error:1,validationerror:2}}) \ No newline at end of file +Search.setIndex({docnames:["api/classOASValidator","api/define_oas__validator_8hpp_1a838ca36f37b19a874eabd4eeff5be860","api/enum_oas__validator_8hpp_1a1ff35fa09f5edbd315e3fa9999983f2b","api/file_oas_validator.hpp","api/library_root","api/program_listing_file_oas_validator.hpp","api/unabridged_orphan","benchmark","classdiagram","codecov","genindex","index","oasvalidator"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["api/classOASValidator.rst","api/define_oas__validator_8hpp_1a838ca36f37b19a874eabd4eeff5be860.rst","api/enum_oas__validator_8hpp_1a1ff35fa09f5edbd315e3fa9999983f2b.rst","api/file_oas_validator.hpp.rst","api/library_root.rst","api/program_listing_file_oas_validator.hpp.rst","api/unabridged_orphan.rst","benchmark.rst","classdiagram.rst","codecov.rst","genindex.rst","index.rst","oasvalidator.rst"],objects:{"":[[1,0,1,"c.VALIDATION_ERROR","VALIDATION_ERROR"],[0,1,1,"_CPPv412OASValidator","OASValidator"],[0,2,1,"_CPPv4N12OASValidator12OASValidatorERKNSt6stringE","OASValidator::OASValidator"],[0,3,1,"_CPPv4N12OASValidator12OASValidatorERKNSt6stringE","OASValidator::OASValidator::oas_specs"],[0,2,1,"_CPPv4N12OASValidator12ValidateBodyERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateBody"],[0,3,1,"_CPPv4N12OASValidator12ValidateBodyERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateBody::error_msg"],[0,3,1,"_CPPv4N12OASValidator12ValidateBodyERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateBody::http_path"],[0,3,1,"_CPPv4N12OASValidator12ValidateBodyERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateBody::json_body"],[0,3,1,"_CPPv4N12OASValidator12ValidateBodyERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateBody::method"],[0,2,1,"_CPPv4N12OASValidator15ValidateHeadersERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateHeaders"],[0,3,1,"_CPPv4N12OASValidator15ValidateHeadersERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateHeaders::error_msg"],[0,3,1,"_CPPv4N12OASValidator15ValidateHeadersERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateHeaders::headers"],[0,3,1,"_CPPv4N12OASValidator15ValidateHeadersERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateHeaders::http_path"],[0,3,1,"_CPPv4N12OASValidator15ValidateHeadersERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateHeaders::method"],[0,2,1,"_CPPv4N12OASValidator17ValidatePathParamERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidatePathParam"],[0,3,1,"_CPPv4N12OASValidator17ValidatePathParamERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidatePathParam::error_msg"],[0,3,1,"_CPPv4N12OASValidator17ValidatePathParamERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidatePathParam::http_path"],[0,3,1,"_CPPv4N12OASValidator17ValidatePathParamERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidatePathParam::method"],[0,2,1,"_CPPv4N12OASValidator18ValidateQueryParamERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateQueryParam"],[0,3,1,"_CPPv4N12OASValidator18ValidateQueryParamERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateQueryParam::error_msg"],[0,3,1,"_CPPv4N12OASValidator18ValidateQueryParamERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateQueryParam::http_path"],[0,3,1,"_CPPv4N12OASValidator18ValidateQueryParamERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateQueryParam::method"],[0,2,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest"],[0,2,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest"],[0,2,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest"],[0,2,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::error_msg"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::error_msg"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest::error_msg"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest::error_msg"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::headers"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::headers"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::http_path"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::http_path"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest::http_path"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest::http_path"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::json_body"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest::json_body"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::method"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERKNSt13unordered_mapINSt6stringENSt6stringEEERNSt6stringE","OASValidator::ValidateRequest::method"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest::method"],[0,3,1,"_CPPv4N12OASValidator15ValidateRequestERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRequest::method"],[0,2,1,"_CPPv4N12OASValidator13ValidateRouteERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRoute"],[0,3,1,"_CPPv4N12OASValidator13ValidateRouteERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRoute::error_msg"],[0,3,1,"_CPPv4N12OASValidator13ValidateRouteERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRoute::http_path"],[0,3,1,"_CPPv4N12OASValidator13ValidateRouteERKNSt6stringERKNSt6stringERNSt6stringE","OASValidator::ValidateRoute::method"],[0,2,1,"_CPPv4N12OASValidatorD0Ev","OASValidator::~OASValidator"],[2,4,1,"_CPPv415ValidationError","ValidationError"],[2,5,1,"_CPPv4N15ValidationError12INVALID_BODYE","ValidationError::INVALID_BODY"],[2,5,1,"_CPPv4N15ValidationError20INVALID_HEADER_PARAME","ValidationError::INVALID_HEADER_PARAM"],[2,5,1,"_CPPv4N15ValidationError14INVALID_METHODE","ValidationError::INVALID_METHOD"],[2,5,1,"_CPPv4N15ValidationError18INVALID_PATH_PARAME","ValidationError::INVALID_PATH_PARAM"],[2,5,1,"_CPPv4N15ValidationError19INVALID_QUERY_PARAME","ValidationError::INVALID_QUERY_PARAM"],[2,5,1,"_CPPv4N15ValidationError13INVALID_ROUTEE","ValidationError::INVALID_ROUTE"],[2,5,1,"_CPPv4N15ValidationError11INVALID_RSPE","ValidationError::INVALID_RSP"],[2,5,1,"_CPPv4N15ValidationError4NONEE","ValidationError::NONE"]]},objnames:{"0":["c","macro","C macro"],"1":["cpp","class","C++ class"],"2":["cpp","function","C++ function"],"3":["cpp","functionParam","C++ function parameter"],"4":["cpp","enum","C++ enum"],"5":["cpp","enumerator","C++ enumerator"]},objtypes:{"0":"c:macro","1":"cpp:class","2":"cpp:function","3":"cpp:functionParam","4":"cpp:enum","5":"cpp:enumerator"},terms:{"0":[5,7,12],"00":7,"025":7,"026":7,"066":7,"073":7,"1":[5,7,11],"10":[7,12],"11":[7,12],"12":7,"122":7,"123":7,"125":7,"13":7,"13042061":7,"13499474":7,"14":7,"15":7,"16":7,"166":7,"17":7,"1713336":7,"1799880":7,"18":7,"1805367":7,"197357":7,"2":[5,7,11],"2023":[3,5,7],"203":7,"2172173":7,"2180042":7,"225":7,"24":7,"247":7,"25t18":7,"2608":7,"28331883":7,"2f":12,"2fabc":12,"2fall":12,"2fjson":12,"2ftest":12,"3":[5,7,11],"327637":7,"32768":7,"33554432":7,"35":7,"367":7,"377":7,"38749832":7,"397":7,"4":[5,7,11],"4072546":7,"42578":7,"4594331":7,"5":[5,7,11],"517":7,"522963":7,"524288":7,"53":7,"542362":7,"6":[5,7,11],"632199":7,"67617815":7,"678":7,"693":7,"7":[5,7,11],"712":7,"7982e23aed1dc8eda1fdc979fee617354ae998dc":5,"8":7,"814442":7,"854":7,"880371":7,"9":7,"910":7,"926":7,"971971":7,"\u00b5s":7,"boolean":12,"byte":7,"case":0,"class":[1,2,5,11,12],"const":[0,5],"default":12,"enum":[0,1,5,12],"final":12,"function":0,"public":[0,5],"return":[0,5,12],"true":12,A:[11,12],For:12,If:12,In:12,No:[0,2],OF:5,ON:12,The:[0,2,9,12],Then:12,To:12,With:12,accompani:12,across:12,addit:12,address:12,against:[0,11,12],align:12,all:12,although:12,an:[0,12],ani:12,api:[0,11,12],applic:12,ar:12,argument:0,arrai:12,avail:12,az849:7,b:12,backend:12,base:0,below:12,benchmark:11,bodi:[0,2,12],broad:12,browser:12,build:7,c:[5,11,12],cach:7,can:[0,9,12],categor:1,cd:12,check:12,cmake:12,code:11,com:12,command:12,compat:12,compil:12,complexvalidrequest:7,compliant:12,compon:12,comprehens:[0,12],conclus:11,concurr:12,configur:12,confirm:12,consist:12,constructor:0,contain:0,content:12,context:[11,12],copyright:5,coupl:12,covarg:12,coverag:11,covhtml:12,cpp:12,cpu:7,cpu_scaling_en:7,data:[7,11],date:7,dbuild_coverag:12,dbuild_exampl:12,dbuild_perf:12,dbuild_test:12,declar:1,deepobject:12,defin:[0,2,5],delet:0,depend:12,depth:12,descript:12,deseri:11,detail:12,diagram:11,did:12,differ:1,directli:12,directori:12,document:5,doesn:12,down:12,dure:[1,12],e:0,effici:12,elucid:12,end:5,endif:5,engin:12,ensur:12,entir:0,enumer:[2,12],error:[0,1,2,11],error_msg:[0,5],errorcod:12,etc:12,except:[3,5],execut:7,expans:12,explicit:[0,5],explod:12,extens:12,fals:[7,12],fast:11,featur:11,field6:12,file:[0,1,2,11,12],follow:[0,12],form:12,format:[0,12],forward:1,found:9,four:12,from:[0,12],fv:7,g:0,gatewai:12,gcov:12,get:[0,11],git:12,github:12,googletest:12,ha:12,handl:11,header:[0,2,3,5],here:[9,12],hierarchi:11,higher:12,host_nam:7,hpp:[0,1,2,4,6,12],html:12,http:[0,2,11,12],http_path:[0,5],id:0,ifndef:5,impl_:5,implement:1,inaccuraci:12,includ:[0,5,12],index:[7,11,12],indic:[0,12],inform:5,insight:12,inspect:12,instanc:12,instruct:7,integ:12,integr:12,introduct:11,invalid:0,invalid_bodi:[0,2,5,12],invalid_header_param:[0,2,5,12],invalid_method:[0,2,5,12],invalid_path_param:[0,2,5,12],invalid_query_param:[0,2,5,12],invalid_rout:[0,2,5,12],invalid_rsp:[2,5,12],invalidbodi:7,invalidheaderparam:7,invalidmethod:7,invalidpathparam:7,invalidqueryparam:7,invalidrequest1:7,invalidrequest2:7,invalidrequest3:7,invalidrequest4:7,invalidrequest5:7,invalidrout:7,issu:12,iter:7,its:12,j:12,json:[0,12],json_bodi:[0,5],kei:[7,11],label:12,later:12,lazi:12,lcov:12,level:7,librari:[3,11,12],library_build_typ:7,licens:5,line:12,list:[3,12],load_avg:7,logic:12,make:12,match:12,matrix:12,mean:12,messag:[0,12],method:[0,2,5,12],meticul:12,mhz_per_cpu:7,might:1,mit:5,more:5,muhammad:[3,5],n:12,name:0,navig:12,nawaz1991:12,nawaz:[3,5],none:[0,2,5,12],nproc:12,num:7,num_cpu:7,oa:[0,11],oas_spec:[0,5,12],oas_valid:[0,1,2,4,6,12],oas_validator_hpp:5,oasvalid:[3,4,5,7,12],oasvalidatorenum:4,oasvalidatorimp:5,object:12,occur:[1,2],offer:0,one:12,oneof:12,onli:12,open:12,openapi:[0,11,12],optim:12,order:12,overload:[0,12],param1:12,param2:12,param3:12,param:12,paramet:[0,2,11],pars:12,pass:12,path:[0,2],perform:0,perftest:[7,12],pinpoint:12,pipedelimit:12,popul:0,possibl:0,post:[0,12],preced:12,prerequisit:12,primit:12,prior:12,privat:[5,12],process:[1,12],program:3,project:12,properti:12,provid:[0,12],put:[0,12],queri:[0,2],rang:12,rapidjson:12,reach:12,read:12,real:7,recurs:12,refer:[0,11,12],releas:7,relev:12,report:11,request:[0,2,11,12],requestbodi:12,requir:12,resourc:0,respond:12,respons:2,rest:[0,11,12],result:[0,12],rigor:12,root:12,rout:[0,2,12],runtim:12,s:12,safe:12,schema:[0,12],see:5,sequenc:[0,11],sequenti:12,serial:12,server:[11,12],servic:12,share:7,simpl:12,size:7,solut:12,spacedelimit:12,spec:[0,12],specif:[0,11,12],specifi:[0,1,12],specref:12,spectrum:12,stage:12,stai:12,standalon:12,start:11,std:[0,5],step:12,stop:12,store:0,streamlin:12,string:[0,3,5,12],structur:12,style:11,sub:12,sudo:12,support:12,swagger:12,systemat:12,t:12,tabl:12,take:0,target:12,target_link_librari:12,test:7,thi:[0,1,12],thread:12,time:7,type:[1,7,11],under:5,understand:12,unifi:7,unittest:12,unordered_map:[0,3,5],us:1,util:12,v1:0,valid:[0,1,2,11],validatebodi:[0,5],validatehead:[0,5],validatepathparam:[0,5],validatequeryparam:[0,5],validaterequest:[0,5],validaterout:[0,5],validation_error:[3,4,5],validationerror:[0,3,4,5,12],validatorinitexc:5,validbodi:7,validheaderparam:7,validpathparam:7,validqueryparam:7,validrequest:7,validrout:7,valu:[0,2,7,12],variat:12,variou:[0,12],view:12,well:12,when:12,where:0,whole:12,wide:12,without:12,x:12,you:12,your:12,your_target:12},titles:["Class OASValidator","Define VALIDATION_ERROR","Enum ValidationError","File oas_validator.hpp","API","Program Listing for File oas_validator.hpp","Reference","Benchmark Report","Class Diagram","Code Coverage Report","Index","cpp-oasvalidator","OAS Validator"],titleterms:{"1":12,"2":12,"3":12,"4":12,"5":12,"6":12,"7":12,"class":[0,3,4,8],"enum":[2,3,4],api:4,benchmark:[7,12],build:12,clone:12,code:[9,12],conclus:12,context:7,coverag:[9,12],cpp:11,data:12,defin:[1,3,4],definit:3,descript:3,deseri:12,detail:3,diagram:8,document:[0,1,2],error:12,exampl:12,featur:12,file:[3,4,5,6],gener:12,get:12,handl:12,header:12,hierarchi:4,hpp:[3,5],includ:3,index:10,initi:12,instal:12,introduct:12,kei:12,list:5,oa:12,oas_valid:[3,5],oasvalid:[0,11],paramet:12,path:12,perform:12,program:5,queri:12,refer:[4,6],report:[7,9,12],repositori:12,run:12,sequenc:12,start:12,struct:4,style:12,test:12,type:12,valid:12,validation_error:1,validationerror:2}}) \ No newline at end of file

6U2EykKIv+k)OIDfld9HmE@0hl4|% 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 z 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 literal 674412 zcmcG0bwHKrx-aS|Dgt8w0s<-m(o)i(q9D@UAf3{kCMYQ^V9`jIfOLb3ba#i+i*8ud zeU>wO&unJ)xo6*VE`KoNV#W8p@jSnJ*E?xR5!~}6=drM`a77W%+UB-)&&-%~ zEuPu8Hd0_=;bhs95BOmoh-7SFMz0C zMVO^Pfhu;W-KL|+gW1aVh=1a4tL=zC5$7kiJ0}ZIO+UvCBcIBn`Knj&+Wg+i6%nc1 zaaB=Tf@#lLD2FqjFMGP-9u%Hh&Kc*=(^dD@C|Q+>YkKhU+d0*3>r32pTURN$Z*HA; zdZcuBY`gLc?>C#ugh(7$2VzgorkZb+TP!~31`(A{<#=PH{Y7SXEG#7Nmsx}}RwgXI zG!J;w(AyFEiRF|7wmMq(jy0(fX9Uk9Hfu%erB`hBNmF4w8a3jpio`X+UhI_<&pd@-Fb#7=%0 zmX9JhLzvta>YXTaojhOt=}?UfL&6B_SxTe2ERG@~no9xV1l})Z!Y0+XaKtC5u@oF? z(TwD4r7vhIL@UmYibWHaZU=Skgmw$Blz(HEUT9t!E;N587|Eg_z*B!Z|8ibvFVmyF z2_!Q?-m7Oe`DVYIMttLNz|(A}FuSS{-Kjjy<-bTPw-pdB5k_&T;n9;9%d@t5jpuJw zlFHh=&62fyOD<+s{8js1-sjg(G~bXKe}4P*O=w*!0$WEV_K_)*A)5`6Xe9Ua%c7SQOIwT+WiyGy*Jjv!T06Gq*T_b8<6Hg0UOLsht?4Dcfn%zT2p|3u zk0R-pe;q>ftE6UWGrweF@l|TQU6QjK=avgLuAWr$)Q>dDJ+nMU`&5u%{i5gQb?P>+ z^}Bi6^ntulxMk$%C4vju1Owr13eu;Fr5}(QsgYXVW~_;NNH3;LPE~)JPWjY&o!^%a zjy4xOETb6%jD4&_-d{V>5OcceoKJfonfR(Pf6FVrZKfG%5r$RSlLz>(+e`*L$buE; z^VO6yL-TasW)kL$6_1nzYqTU*;dy#QiN+`nM1NUNk76C*5dZp%q*Ck^J)trzr*j9i zD?B62F_A4>ge< z*VaY1!Qr8%S;(`ta;L~9 zG$4uW4ogqS2C8RZw+ge87Vr2}Y`h~txCoYoH4m^SkX^x)^& zen;&4Z9clrPe0-5UBMO}PFH6LCRmr`y629yS-N_g439Ti=MQ+7G2gD3cFDqkmN%xK=OE zY;Un~X}ne2xyg?fW#;gZadF_`eNj@6OUNRAwDXCN$>U=m8a@$=~II{lhjaE?leTyySL zs${IZ66vO#=MBB&NknVeTKt2)XJ~4+FX>7IH=-+D`mHr`g!DZbPC7E2pvZc{AiGfe z#oE7__oR`hhG*KZzL_1Vn**uQxMz?C85Z582k)HB{e4xB(jA14@LL7K7T?K`N(qk~ zI@KokOG;BO-mhwV+u!;%)vj60Mu()p<}x``vm$o?1)7oj9%kL1nWB3q4{>YTIm=%P zB4je28Tf{usAaEuLM+w%I)OX?9znvE`yCW^oCa|$mzmQl2{5t5NmNm6)Jv5Gux@@ddBiY}-f zvELdp^9!R@Q$qOY?u;$wv$ZDO@<*+u*$pfz8@_6t`9T|~kE@oTm~FHej_|pk;&^6W zvz}d?vBZkKIG((bqE6`Q-UkZ--HKpCWQ#$LTaqb`kNN|-QiGV04g*h|c7<@Udf2)_s2O^mtxz5ac+;%$UZj=X(SjPeW1 z&2H%nJ&Nsb-k?-gu6nPREhr`DsW`{fglo}yu%^wxp46WUTBSi?%$o3nLI*!{g#earh_X2lG68KnH_a5A^e z-#9h?Dm<2jW_m)KUVkQJ#FaJU*7$m%$qBPZN~I#Bm%0Ye)pzoze_BikpDF#M+KKkQ z>UM%=cgwB#^&7$09H*T+`bftY<9s4tL6oX#-Zx z{nE)bni5Q%Y#9TxraB7vN<&5Z);_kV_pO;-kojSU{P|$|f@Lzx!jQ&|QyKx0v zr3=$X9~OlBI%aty$htc&xba?Bsu1hfdBk#1y4=%NS4CcRxZ9I)P$k5Aw-#pu#o@eJ z=(L}_i{>be$iKKKcxS843waw48Tcx2z9VtMS+siQ^Ul+;L8JT&Z#nBE*pRhL4gY?#FZcq%zPHMN zj7+zMroR@;vh~OO2XfW1TDUTMPU6xyWhw(gdDjb8vS>Q+o)~yettO@_CvPkcJqoz@ zAja$b?GJBT_fJ=i&3v+sZHWnQd27_V;w<30(!ZD2tLd^>aE51wWx39G>Ieht|M*!l zC)EAdM=X&y=1%|d1o%G(-XP6?dBC!W@_+D@&m!0Oooxql^_zZvFuBW2w8N;!k(*bw z_I{Nz7S{NZP$$mM&)a#)@3Q5Jo=d^Q{PVL!`p1vz1tuY@NBSqQo|oZ^GXH$mIL@fs zw#Gyx!OwrS)gL9X9#%16VOehf<3?Oh{Pt8MR?Lk!p8oxIJ`=s)z;LGL)R^0Ou5|tP zoBH{5qlPSvszSq~nY^wT3igGn((Q%OI3es^Zb#+);Wz7t?kmgoWh0Jo3r24fiLkIV zUtoU2&&ugr6<8l?2E&oO*WI619id`#9a|fv1ovm_xA>2CWZfHcLvM~!_tvoy*K zuEDi;|J{`vqfjVvF;~~gVj14bp{b}P)_sHkWu0Hl9pjtYFlOpE|K@g$4U$@kxy`$m z5H7fJSy5l56x|Ai-MkVGV>hmGm~X@*35l^;6;xDIl$Dh=G@h9m`KsR}3JnfcuW}#h zw`XHzWesIiGx*5kbhtZXV{PrLfQ7{;jG4#md;gftlQ8b>@vd7_h85)RnrO{dj5TrC zG)?+)Dtb%`y5~2ZHn$$_=4+odQ;KzWt3spbCoHp~xU6p8y{m|;pEqy@mqcD(UT@Y0 z)lDlXSXEriCFItXEOFz;4bP+gyMM~j%c9Oy);WOca9+f%gv7XmGc0PeMPJsE1`O(5$ttwvG$YGrbHls?F zeC!XjVA@e;kb?72z+(G$poeu&`*$JzUnV}_5)cxe!NwL57M`A*yh1?mY`B=^)~!T| z$h%dC=#0vtA2mKbeu-6z<@SrJwzeCT0erI3(w1Q#z(c)UVmW24#Kp;Ei~ zeD8`Fdz4YwhIO)?y`(cYK8N{m@zO}yJiWKmQcF1j);QbWjj6vAj#gNKqrX7;=CBwo z-E_!GvvOuJDvzVgeSesHj$w_9`kTC+GY3?}KxP2YXZg z6z)6P4sLBWR>TpFDf^%*4c`&Yvu)zszB|!eu)>#-Eh4vAH?8_cRWnksa1^{J-0O+&{c( zvWGY01j;#nq{-0D6__}L+T=H_NM&&xef>r$;$JTV_b zZ5tfyG1a^wnkL|eeyk5mB`GOMRc3N}`U$M=MU-v(hx_NwokKa+`V!|EwzW1ih>D8` z3s6x}rDsVw6U%CyIB|l_uywfbncC6e!PF(jxhd<^{r&yo;^NfQRJ-}!#nB2izwzbe z*x=xNgO&)*3TKtf-j^>=E((A7@?~+TNbA$nFEG>!7qP~N{&o(@`CVM)S8@c(dtBP9 zf)o@pHoIciqY^YcJ*=N)7i-qux694T)6Z{-CPG&8c&~o_&!8RCMh&mRk6A-kasuo+5XNdYUAr099H7F z50VO<^E;~(s4H0QmoP>CGyQL+9t*4TIn?R=YeyY(f&vF=_v16xtGCq{LdV;Gol!@w z3zihhrAWeURPOx1AznP#9^>rp>g-HB?2-~}ScM8Vx$_ENU?)e@3yisBnF{MXkcQASoxYZ?wWC zsjb$JRAD4e%sKo5T;0M)5kBL#JY; zpUYn6_BeE2_C-1gVhmB8e29?6jGo16fAF{49roz#indrUbI(js z(DXs<7^@0Tt7x`wRk@(fx3k1wxKc^=_4QAmK21PCP^>D5$1=b~hRUntcQWQF$ zu_PUeXoqRGR+T1z5G5r;vpZxcs8s05fg~|x;;Rcu0C*TLV{m5q$=}c>);JDqihDk5 zJxW@ei`%i>Z^|}kvv!+^9u5=5)s)BcIt;Ilq@eL)_uC9%5570`t3H9%{v+^j$`$+E z+?PcU5(|uXf|Nu3nc9I%Foi{V5qO&`K(;w1jXsCpI8)}(t%NG|VIMT|3wHlxRRp`Rr)*Jei2r)KRd z4zm$KiN#E7bdRA!QgX7%W_dYZn%PLHLdI<<^8mc$lEpjdp!@)a87Z|>tc z+vlNgjxE5YAkCw$ihy-N-4y4p6scHtUfwc5xqv%GrKGa6vSRLNKY%wG|MCi& zike%|$B!SeDO~T|y7iDpz0_8eBU~im0-&GXG6xHxRlrzqsm)<5p3Y`wW{!@<_N5+2 z?r^IBErbD}KYFB5<*w1AA0#U!DcS36a_REr>aSk`Np~9y3kw5sL!)W|!3U6VpkiE> z-ue2v?oJ^K#5MvFv{LDnvg*?qWXkLp6Fu(Tdmg%B&D{+|N*{O1KKIixP=4Fzlf$xR zPnXq%Fm$@k(x+ceic}}|WiHD&Ih8bjA25v7sC4DVR4J@{%VP}tj;J$-s?3HqH8&nE zuEND6Sp3Qip)mP)vbyI>fWCNIxwWKW> zxAns_FgR&(0;atTX~>X}v@YYWX2N4*#<1bw*f`5*HoII=Y?&{|krwDzf-qFOQW@OlOd+a_}@Y+b2!CpSknU3T`F^0HxN4T;~agDhMF;1oSaO}z`#IDE9#GP{(NHA zk!mfB6_jr=7HHBF0fN1#f`WpJ7cZ_ow050tCeG+7HSVI$RM=guqnLWINKd9gUC|mV zNb&2hcdULqR6uT?yKsTs)g__Y`1U~&CrnPSL7pFlpk}mYvE_YgO0w>>^TuR??&{Gz zQ9+tT#Ui;nq@3o#ulh7yBn;xc;a2Z8J^WY7{L(T2w&(2!|h6xD?(Pi%@ zC-nf&G&Vk&Nv7WU;ln&xxm#;Mp0Zx#ZbNQ_-y?h1!<<4fZdTdwM4JF)m$%s|S1kU*W_O{0T5e zk|Bs1HgcD*5D_&Qu_njGynjDFGvly{Qs5>Ra4oKRw~lRluu_c=0GO33GybL`wDAy8 zfy14NbY&$aA_|HzXkSk2)0vtTgPqEqrZBCYB5n+!@l+M!nCn?vTT7&+rxzoQvly#n zVPQe_JKABv{^&MzkQ}XQW-n~9#{@PuHdCUUX8qUe zfcsjPJ8zowOj=uk4gsWPra3$T#Y*Af;SsXIO8kU+ti;C9PF-I9mIQPqg_NG29@dw4 zJ!Uw{HxrTW0ho(5I##Zq25nd$8ZOAU>4!CRD0|<&eto=!bBxaoy#W;!wY+=;v(FRI zo;p(Iz^s~IuWZMKca7`1E`ZH-kWYa6fHV@#V|V^Pfc0xC!zzpcW=eXx+%*6mj3OH4_rXJFvI-op9r-Mh|w-8#G( zQd$Wy=aQknotR=VXD9RDFtx3KB5gd7Y2|2YDk{5$ei<_0~#d!W;x0)83Eg&YzbRWk$q#`}j=!_%Uf~bWkJ;JKP>Ln_OqvbGW!} zAPaX-;VGH+S9y3a&e_eo07}KW_fs4GLsNXICgsfWVk<`$Rtqrh+UaTFri#+i(lRpI zW_R?9hNNNzG?bNZW7po@28Am{;F(w!9TSuJ#vp86A_4+fGsL9gUOYC_z5-TubDdOk z*M*EjrmgF?&cdgym>g>xJ8lTgB_IGBwo?XdYDT%j+nA?4fAzEF{-jozSDmgB`>En_ zaP%nmq-AD~{P6Df)39=3FBO45V_p0CrkDPy_U>r>CPIyn~dZ1I#8U1km0>vi31_cGd_>&Hq10bjc zC%{*MrcLn36_{hr;IRKSZdpxD^N)php#7w$rLicwbyvFWWvQ3we1rz}x$oF*eNYL~ z{1Z@x_6oR@b%Wau6&xF@rLGz{rg|-o=Ho$!#gE%*)R0h*VmVp^0>7DPAveT zI6nS?RyQeBcc3=it8Xt->XG0Mc~HJ;jujkJex|r~1+da;XCktp(`g9`8^80$dwyJ8 zT#XXzq?`ewimgG@)zwu`B1RZTSMp!SW7N2v%k9z z`W5^oCI>?g1pJOc$fB5yW4bXTVG|B>`3Hpsdzb$d*@`=Jck%GjR781^aGI+Fv)d%7 z;mb)>&CAVw`SRrxF)@uoXW8yzvrWr%lD56F^61*~o~Ka9awn`;0PZ(ca-s`7m(Dnh zl4P1QlxTN$=_AT`dDJ&K@61khwxQ28$<)C2zF62trF`;l0*5%U0E8u zbAV<(P*teo6*#W`Xm6J;(I_$>p_Yna2pJq4?C$RNC*ysR>se2%THoIkGh`(mASp=S9&w0eh_+QOGz;%7b=|cd7yx;;=~Eluy00SV z9TjY(+Jxn%^iuIcTFhhn?_aPff|Ji(rv3^00Y9r~dUuw9bZj%zT4BE!kzO`@ANdLy z99%EAJXjzW4g2u})iIUw1#qgFw%rkdDDqOXsQqAFU7HGMb%3uyDj`9^q6~6YQ3>aX zzWYqo$jAuXnkP@ZyEk9N{6qEj#Q)OR(h>sF(ooObhx@NUG3#FSC1x{di-|@cK<&Tn z_TE)LlrJXBwxnH1ZioF zTOv3roHuh-GePMY^aE!D@OahJFE0=Fw)?uf`_1kWgv(B<5<4{p)5f~4i5eIfXliOE zobr70roenewRfd~CN|hqKTrX|Cj+ynr?02O8d2RNzsWae5muExi|iQDn|ud?yPn|@ zy05CXu5MnbN9M>LnKa7Q#z(oA)q^YE`(>(^OPxQMm&ql4#?Rj$pzQaA00BBmQx;aI z(6?{ThC4Ysmzwg2PA29GBqp!CY7#!c~x6A(>fS#R^f%6AKSGx8aLN})9vitt^bhxjrbP64}?f#CH z9U3E_bD?x&zhze)()9^!vpWFhFd@^sOr^$Nm5 zcO$V%`!GFTOBjie(MnF^|5{+$m#+ZouPl;dd8Djp1D^Zg3dpT|Cf&D%!rENP*gZ3? zcBPq07HFlqfskmq?>>rdyak+Pxj07-RBbuTp5NJV%rx)6?-lvwQD2ru!Q-1Stg0Aq z^3TpNfTvA$Ha4d=pQiJnX&%-L1iCa{6R;6KDKq@v$U*#36iwMkrTYQ;)2BNbJrU8- znLUQhVIAoT89;{!=oRa~)c6o79IQ<>MRHn5ii*O@_9ap20rqp89Mr{O$N|xli2T`r z!(@N-V}$K!j;V3O9v%4x6h(tGqlA3(bJ3OB~in6 zP@7nbQ@0-IS}6zZ7GV4ui5xE#b8EjdST@nT4)(RCTf}_SReg_n>t&hu8k9{NTaM*x0e245cZ@ot5u|G_4fvn^1&*IdcY& zj7L5r^;Y{}fhqQdt1CMb0U0{r`MA2e4i!F|X^AWXRv@M;nhlQJlUP4e&h%0tq$m&q z3a`edro35!WHHD^a8gqXlaU4qJ$m$rP~#U=6LVE?7gEz%bbh=z`~)zo9I({D027tj z3uZ+mBCB5=0+dc`Gw2F!ic{->Ht_`EJq3VO%pchN$;MZ z?@m)m^qHU-o1`SF_2Q}(npwf9)Hqq*SaX2p!ioxhIArV6Lw^bE7HC^L7ccaB^I zEECw28o+2XqWGLT+uEe2G+O^HVd|TmHCpU8FKSA=lBqZ^LgAL^T~bm)=%WuJmOtqj zP4Q2{#2PQJpg?f-Dwkoa1p>Ldv$vNa9@HSs>a-as=}-DS^H1(a)eUajO;peL_|rwo z4|>YsuHaz&TvP4bb4lI^YKb5YdDE=ebg}7!$k2_TiM^#VW)>D1jx^>~`HWKAIazK+ z7Frhl#w#i(obI{xOR}h7BQj+!;Ol>FhqVL5%6OE((d zs6{%gQS2b}Csrodkc6w{2{M zl|;u7AX!Kkz*C^d>h|jXL=4K~sYhmokZoYnD1~y~G_PIbP0)F3$Zc&>)GjWj%+9ii zV~M;myewwzAy~h;XF=U_-|SJEO4)y>@#GxoW-bxDdsUDR+~IWHMXYscG>bKWiP)LsGvx^v=MF$5Jq?-$rLeD2|41ML zK{*o2tObAB!XRt~AV=2L))Eqal{4V;BpL7ToYA@l)}G#xGbmgE{99qR%7B@>y>LnI zLgDBU@o-%k|6;#5C|b0#vch57`^)LmX#lgOL1Km;Zk^7mX4n=(#$giNV-oTNG)ms( z@&qOa_VU2B%|5LrMvPHw=e+u(CMDK=&>&9*MQJJ)%3$Tl_u;%!1=tY&=-Ez+!xd}} zNi(yLPkgzflG9f|0X!OEOmJuQM+b~Yfcpjr5D^rFq57Q82b+BgU4Y7<7ae6w6exr4 z5bHEetnwY3-0?$sxw>6@*vD5*nO57g-i;9_lX>+ zms_-^t-Q15E1-b!Rt*BO{)?*)dPJ$ppPeWBvIEE{KtZs6YGwm=r45QQZ8H7Gj~~L> zP$`@N(r9Qz=X|kE1&?$VVTfeX2*P6xRzLwzx?Y`+w>KszgtfzStWLh)c+h1wkW0nFk^{33 zCb5{LBojS7+g359iK%H(@sIsD^(W5G&L$@55aPkYVkbC8xiFUpY60RHRm7P8n5PpT zd-{@iXGU&r?x#f2{vNTHv?+V(^zOGHA7 zpu6Dy{ri~a{G&fdmy(ha%HsyVQl=_+!WrJ)=iOv1K;s98P`VEG+mVYeVRT20i1joIRb0>!7LIrz;jn9Lc(CV~-5_wcP`u%M{00p;o zVx`UpDd(h=l$4|-4!9;7(QMe$3>evLvl-SQh2!`Ol{|xn)!p?O(EmqWmicvQFqb#_ zn_TioV6KQ`ZnIlX3bH65mK%ovyijEb{ol+b#YMg_X=!YPJECJ`RH%96Lpb8HTmf1% zZYf3)Um-tM1Hm0w6tLS6>^mA;nUZRh;=X&AbNat&dteNdG#VNjQ+^JR>3~*)@r`1K zX}xnt+RbhPkeY}eiCr82_CsOe%Kf#bL8|}dToM;b(8UbGFsfcbL6@9rHOlObF(w<< z=-(JaWm05*txUs-1E2Z=DMc6vn>v%ka5rK4L@Pdi6pxmSyvxYWo)3Zv z71bjYI#E7Wz%7y0enELr=u`0UuzDH@i5k&(B<#0u+_+B$2^frI%FWG<5h|hWJ?z;O zWfnrwU%&ozx;Y%`!TeZNl{)Cn>Ubfsu@po^pu_>gDh1g!jJYEO5!>uL=V=p2|#lX}qq zo3()n;O6MOxu#z3DAS`a@PA`3zgZi7(*H;_r9sZ*(@z4UXw~g;eE{sH&7VtC^Yt;o z2|UY+-sD@$PBLQ74LS0@(bxQ;2yKC%h6fOzh*9+l85!BHzrKgt2>J0t$ESuB@=n!M z5RQY=s+6r6G6C5EwJ0u+dwtLqe+49LJ1hOW6+(9B>1Xhwvb;ff0L>1BgJ{TR0pDiy zqpH|i8liW)Yd)Nc!qb3A&25NdGBdYzuIQG68bNyba)LkD9l)CAq5=cs6kgl*3Y@wC zlk>dqSn+>Rme`kt5V<)f5w*K3W^qlGPH;+@u2xbK1T%0a?FYeXhP4GzN23t1HPO4f zX=YvFY=&lc)l^kg8*ni}nO?XD(*q7z0-zK0N=^y?Yw8IW>?iG4*N~y1jjI^70MV4F z1n}eO)A1c9_<@u z$|@<*v}L@s`nl3B{&l5&qoKifXp6Y`yP%VY4PXg^gkumxgq#NwiJY05vV&kQ7uU{A ztVd{X(WrBiLEirgA{TdlcSFcC-+TnUSTv?tX8%lF+*dt5NRwKq0sy!*8hqZgJ%3_0 zVd47b=KbkN3-Fs6OP3AVZ&iGIeeUu`tT?q4%>iU`O*MWt|Iy=%jaoF@AP}f%k{D4F zE>xL=!@Xq%xd3v0Vc)AApUNm{XhcdGwJKeqMPtIo>Cna}CnqB!NZi`~3(F%(z^wn% zi&NO?0_X`?yM?BGlBI9Fys}mDsBhnXjF}hkA^d%O5ON^{JP-p;l}Y%hm?8f_NNCJy zhRm)c;k#cjka<;e*tS}!T^J0RjhP)R=D&3J=nYvA7BJn7j?Nc18Im)<#h0c&_fL;P z+PFLAS%U)LX+KRDfKq_LppNUlnv*tcjq0Fj19EYTOz(E)k5=F-kg@#^;_*^{P68;B z7)OQt=aRrawj=;B;Wz`(re$IZjRlHbdl&OG&EqWwQ<49J@C(K_`8~~&j(~L}Ktoff zd=Tx(6^^mWkVw)D#%ADr5GC;K8LF*DBDnFli)u`4r6To-mM$>p0l;Bp&CSY^)cSK|rQ){)%ssMzt1LPYy8V+A z5F~iG8c^sAeO-!g^`X0aWsZn0UwAX{A4n5VB!Q*nw=xX=m&?Yic8)U4CVaZFStb7l za|-pko<~J%^l+EKz#HCbpX5P32kUt)=Q%1cG<7$(j6y5Qs;d?pteIWgOtUKpDJU#< z#;*FAgmPd%k32r-YU0jdNHpl=K=xHc%lDsv%%ezv|DW-3CqYaw@@KXsx_L1{UpgY2^GQr=fV@^R0aTsFLT4Tjb@1pJkk1)gbI>j^3C95owvZYM&Lh zc34tty0zNiL43(_NlL0|#EsJ1z4DeTf~1a9dDO_d&NI z%_tJdThLfP%pFs3`R;--_X!EN;7!4Fb1I(pTOz}9^gmYni^4X*Ck2Z&hE?BN5sYXE z9|61RqT6yFOiRddm@jB;U9RK(BX*9bG%{%qx^AaGNK0_F@yp{&em01Pt9m~peIdYs zP)s8BDi}{;^2;XQ^75KJ$-3ez?P^auD2#ZT9tWGiU8O4R!~`pwT)3B$zpHF8(;z9i z_)-T^^>fO2;r08CI}Ns~Z)JN_gh_nXOZT%L7}J-T$nA0U zZ2iZloWd^}4KFJz&Y+*p^rms?Gdf6iABY|~aM8{-{5U#3te48=(9UMjGh0?t{!PCl z=?`pL>lrz-J9^@C%dw!_7e?xehdMesa1aB45Kl{e{n-l_8PN^o61f zWtg~duLNV0+x7@e(@ipnvLqJ(cpKKqF&iyc@pPLGH_R`6K_Uo=lxa#KAS6mkN>X8W z?o)F+u8f0>qiAPS64}}ouPMo7Xqr2|wAJ?u%wEcp{g*pZ4qc%&kn6ynIx(ehIoFwV zMu=0dbF8}R(o(X?%S_GzH0*$EP&*(4QRtt{6f9=4tiDv)pfP-qTehd0rEnoCcFBAQ z2kF5^wq%%;9mep%#tZy2;Ca*is4g{Tf^#(43hVR$H3AumZL6GRl=(_*v4Are$sS}_SH^=bv0=)nY4jmjE zoLVX{r~laP^e?|OM{(N#vIZ*yDVD$D*AxfS1S;15AiQ$LNP>xmvafL!3a@+- zs9XFyG5M%91wvtaMcLA!+EVE5(aMZ(CyN z#}aa6io(WjA!xm8ILgY(cBg47D)s{D z@l|N+9d=sA8dp4)LjJ7LIgdbiExT;b{fkW_pIumZ_vTGF_Ym`b0wf(sUBk%-Vl<|9 zf~Y&vjAw;PwLsDCDaJZMwskW^5N`&*wHKOBLZAFeXs)fCaS7KwiX{BU(kLbEaA|`HnFPQ zT`!PqbA6#Z4N+~&868_QWhOy5tmiSJEk!yahn(Pznx5lZ1V6xNESYW_1+1|b)r>f# z_Mp0!ENAyFlXJ}3t+UCgP(t%Ia(EH;rMUZm#vzN+h`O~qPu)m95w!=KM(YzT7L|K5 ztxFd+$MMUmdsrj*Dmx*2#CU({oK)}d_k0H|OZsDa);QB#k4;PSBtJ6~y>jy5PYz-Z zGc1frwbIioeN?`IO~kAzzuAOjwiqqvrlQh^KqSyBI36NxS6%iA#U&`Hg|0uF&ZKvH zu|m^9Xl^X+r)whtak{seL?k4GkY4J!RrKE6+6Rt0fcUwyvjdF}Hn5n-!THA&Av1Sk zo8i=$H7Kq_i(6paz~0n?UIj^{P7gShl>REB0R!F_t+lOrMXEV4a@B_GRESdd+yFvz8*453-38KhG654v1+we^Vgf-J=64sUq6-H%**! zD0R5kxTJZX1=E-=Sq}1I6%+iG*PqwA>)sHTq}nNlF*|KvIU^kZgOe;S*?oGq4|of} zA53DGh~i?I_heKnOrD%ZOf_yf?OvW()=~G zwdwe5^mKHcRWg|dYn@`u#z-8*5V!c4A0a#&xtoz9N3dR$O1ikb-&)ZmVZ|OL4u-4y zDp{$%O0i`ed)oUk$mCCQffak>#&?L#_VSqWo%S&u& z_<`G&6hc5H<7)Bz@^`IsUUTvqI`b_>nz0+!TrFFQgkS-TaF+P&GMBAW*w{F%YliK& zu*Zf>7!)?Vu8b@bT=3Q=mLS&(4EHTtJ)s-3qSrzu>4J?_bo?*~&~7)FA7HHi9N7`` z0Du3b!Geq)lLM%r@+_R3eb9LOKYg*9phqZXYi35MSK_Gs({6I$hA0&rxN(LtPKBJd zF@>6}q9XNW%Uv?5Q?{bn*_G%g!jHwoi9j07G!{*X2oB#^7?6vmqb{-ut0c`NfMa}<5PAfoS)>}^}aj}G3!8r_t@Ro4D2z#oD{e3npD}y<500&Kd^hp zzv(I!J#hu?6d_dxi80UwdL*Mu{$;R7-)~s6M=dfk1;6-Xu-Ao03S6|;IJ;aG@wzbW z!T;xQlN?}bOo9N4ab!|(;Ha{gCFWyEwejCK2Gi}d1Twai<_4E3KOwQHlxt!&{i22t z7$o$e0@*7){fPpcm7@!piE%N9w9KDEgUes>{^C__J4<*vLqu?DBd<+BZd>BX6X>XF zaIOym_YM#OSgf!tc?7nBz|p=J!=?GY(55&%D29VlYIbF;Frue2URDIU4TJo=`MKpt*A8mQPf4w1%c;rB2OxV>l{B zBNZc0gmSui*0Ly)x=kl6v*Bgr!g4UJ8~_>!e{`pL@^4y7;ZBfZ8pQMGShSe*2;JW;BFSQn5n3ya_Yztco1?AMt{<-K7)5H6+Ih( zPtMnmNeU5?lUKs2%nu)~FCI8L2oVqwWd!IFtH$O+SBSX#EW#G?1Y;@%-m=CK<0r<1 zrpL;i^3r2}OHC?fC`9}&9w<13NeW}m&4+qw&2E8BCKk(Fx$_`ev)pkNGo=G&p=hk( zAS$tI$wgh+ubeqC183J=#eC=`xPRa8GAU`sO=`Rp>^{eSEf3zBk>pvLiPWQyNRSe? zmN7w^IZ*Db6JT64I512AG!v8PQ@{CS18@K7lg-vCy?FjJb=vrejMrYiZV9vJE@1W? z;((0bIlmjWTBe<1za0K{_nk`Z7*Dxf;>(x2iY&C!>RErwq)ykSGKFnyuVlY&kRL!( zn;n1(Uyz7w8n~++Hyk*#2r-Z*OzCT2hQ>}|gJeGCAmyO6_@=BXd^%57oUpwlPYi9o zboi-EO&C#!Tm(MKzZHz}mE{?H#fGr1dJLu8*-h6x8V;)BkNXF=^eXF6xLlSMVH6t&}hO|mF zEG<9TXlP4C*4~j?w4L>n8V*d!`1rA#r&xD%Y`y9dQ_iMDKN_GroZFD*wc{M3W(Z~r ze>bRwEL*npAabZ$z*F*Qme4%26tl!MfKxLvCN5R1_IY~BoS5KXV)-|{hiSXCgnfDR zgi+2hIAmFd&=e4LqkFeyMfDd&gF_!(#+2!9}?4S=)? z`Wzgr*2Q1mZu2Eurz$y_#2e;JO+B!*>9FNZCg+xAHn?Z7DVBON`slOE zt+y6bj$co|HI9oF%}Dadzz?bbe5|Eo*#6&nitflnrN5+Gowtp*oXEjED=!~bex@xM z&7&YEr~7gAE_o$&3&$S)mpb;+l$Kl^2Tvl2O$RGA4+#3F0t*f73m?hK_;V z2C35;<}0L35ODmaKMVa>Dv+?Vr1iQC9UiRYSU4ruNprj zmyGikzD9q4BzK@O+&lJWh-YUxUd6pBq9Z!IZTZmfdzRY`jwZBAae3v;?@s0Za;Gpy zQ$)g>V<+e_>IQtSUXC)%WCAl}=mH=Pti{q^Wfd6{14lA?KOJz!l;f0vdIMSsafali zJ$y?5y7A>{9KC7adF@1zwFoEY*<-3!MhZsNGI#!qs&%z&#C)OS+J&}G2JM#yu2k$Q z2`+l=Mn}9QDb!_8!weI;%7Qe5&qe4jR*kQq!Am4#he;ONGDxCFEMsP^TfLS33F2)2d z{EOWk{iH>3_{%{%`j3RHSB81at%|5@ll&|^zVMWo%7%7EFr#kYPR-Ak*RtiZW1}@u zFC_71Qj%(0KV-5oJWCLStJA0g;-$T4UAix;-tjMB?< z$b=FGcxi+nlI@5vZoNbRzQF zD~-44@sIW(ibBe_-Fe#-L;Wh!lAE93p-4_Vf*qnLqhL=|>J&HXnKsvPT5JwS$HI9q zNp0=8oWb_YBb9bI`^|wc*PvY)q6nJ+g_+%AIgC!j@YNahlVKs<=8PVj-g&?8MDp!Vj9X_HG-*`wT{zrr^Jx6qh_3g*R;WQ_TDh+n>@wQSZAS$7!dalnuP_Iu z2e{^|Z7-`2aB4?dBg)?o<4%=xwThX1Em@CN@$jl^n%{lJt7MLndM%c&mQa=6+BAE| zZ69N5Z^4A6$??xo%5f<2tJ%y{oZ2|nupn3iDY99QtfQ*$O|ikT)@EjvH-4io|1VB; z1l$8yFvx^QPO_4m}Gjry*oth!2 z26<*?Ps%52$Ai`(VQY(sgy<*nqryVLj2 z(bLag@T>3ZLr$YW1$-9}Fhe8lz)#nuUK>E61*bT^o$hvj{P?WPdqHqu8w33O$ha)W zA^8f45MPnPPw%UQ*j^gbn{I10?PW>Y>6LC$G?rp*I{hq+g-PF~?R$JVln z`2G)XZvmBcp8gH%D8`s5NGXhBAgNMHstBlvh%{0nohsd90fLx>#0@CY-3=mwAl(gu z0#YK~@O*C6*_pwa{r{iyyzibp>p43+3-kNdb$#jz(v%~ozTO8h5zwvT6g2DS#k)U! zic>C7sI}V}v$G&u&1#z>*S->I4x{28uRGm}iH}NHx8+0cuF$l8LXe56WIAs@uh=zO zOG2xrCv}A2)Nn^flJ3rhM4Ii}Pd=LmN}YIocy;bB(-{)_D+&eo_UpgrJJEAk=ExyI zznKO@iP(i(zVw{4E^!)TvYZk@F}rhW`ZjOgd_hd?T4q*jYbzLAS4kTaBNg6Nw2VaV zi|?1^KZq>YYnmd)>`DK*gU5Ie8#>G;Tx0soW?15q4bl$x+X!xlYI8}+CyyQx^EU4J z5mk*fNfR=$reywM@k3y_0so+(j<!m)Nu0w^m0^hw$ zG~^+%`E)o9YW*&$b&IcD>=}Ik*PzxeGd~Ai0J;vH`CZiT+^T+N9`v#wkEq974Nl*HJ1g_gYgi&*t7Wng*u=9B29Y`F(Ub5L<7ERMXb& zpJ$cQX?P_${|Mk}b|9|VX*K8q#6Q)hF0$(%|4V8hgWOF%pI7A5D}&rGKa zd!qIHMGC%pqp77{ie1AySekC6_)jbAuOxV_zt{DcgjT|mj_*G8%N{t%5HqXf+S_%% z_aJ)Kx9lQ*Pl&!?g>>9T7o*#Z4Oh|iW+!Kg9l}1|zt|=3cS)+ygjYdoUMdwxiObex z!xpYWK>x3x-yGadcnMOrz;9_LV5v&UL&Zfx!C$&cLRf14u{YX}%Qq2?gre_DM{aB; z?c2*5zzCUdCBvE&I}$+jt&+^h1a;DM)6Xk}iNCiUh)!*cnK8{6^$sT3js-Hy$;P&O zgQ>1IN4m?%;cLI>4w^Dx3&4dBiWJH$2;P8pS{&b0YY#-qtZp za%Yb2%1L$ED5tdXn7q`SKI3ND&!HJD;o;#qIXUBQ8fVtJ*p_6f$oWftjtF*Co~6_b z_Ucv`oD!F7|I0GoVO7;H=ss0bonvQno~UMZbLg`)_Y5f?K6bCLG624pN*0M?msfUcxS(lK~XV*>yAM-4p;9r^yO%+)~u@49JalBQePpITkTP;+-fL6K9 z+Y;D&GjxYmS%wkKa9=kp|3N&TtBik(9RIasH{piCJ;^@d7BbRj5pnD7aoIv7)B(5C z>)YVNp%}r>hKEHlQOj*4Nydv$5|r1fZrkZjC*~NFiXk%b5s5YkyTo`nkc-vI2$77I z(`PdHXbpV5xsCmMBF3NEoj1QMET}2o_cYWWoQ)0e|3*=rDfG7U&&2ARUkbZUKN{@F zRsCo`<@&au0Ir`z!-9|J+Dv)c+StWXaqlX`M5$!616KGXcd7T_byV`E&UF$%`<+sd zS40#pfNh~~QtRCquP#h>t@DplmYf^X-#gH6BthWu5P;T1@66f++a~2$rV1SuibSl- zb00bDreWWhEDExzz)ELksj9RG1h(}BinvMJCTdRMV}x4iG$-|;x_Lks-j%NG!;@Q5 zOPwMJB|HicU}uJP5p~GRC}DK_wn9a+vN!e?`&36C6ixNHOk#4=t|E7#FS_dWy|ZpP z`!ohyBOV-abLnKSeI_X*ctp#IaH2t6fBkErVCXe|7d=V*WBFf}YZQVTb`Dfuo?_u( z%w9fZ0|CYl()Q}aA>?8w4|6;3rPHbpER<+pV;ihxs3+|l3B>~p$xeh=(it)Nx-$a!L zk^DzFhtIES6%7oS11ci&4qo&tGA}79=^GSs+ zZlrSh`%*cPhDZzbp3}2uWV^;RR80`kFqF_{Z|U zvTj9H57ZyE3A-Cuw5 znVfa8K=ASKsDOkJ(;6v>&>C+~&lE_A!JBwcKXP_flgPvWRLomM@$%&zoc_CB6C-oI3Otc=8Kx@;kUzLg6r7`1@*={SMAVBK5pmP+RQsB3$lO9Twmr^bd22XO2SxopuB!l_g+XPxs)q7mT(k< zN$L#Q+^jxqv-IkF8X2>CZVb=9`IlDjm<;F~^XF;nGG-Oyved|!BGVo-`&NrTqxVH) zzQpOH;=3mG0iMA(PYG9KxZDytpTYO!Z;pGTz}(7IhFL!D2O|e{DfEtJ{{r z84Lk@v~ngF14EJJuT1(8=<8sSOyVt)`3)I2T)Nf!&j&e!WEdISVfyQfYS--cFo;Y? zzMtHJZBiEe>4VU!=XVBj^ixL8{05NjWj)aUj5V7TA87Xj$G(HVD8SQCGI-xjMO-YwX^sjid_NrVWoAK(Z%7>Ix?V5bThhEXo<~ zdz#~~iK49H@IpKtEDtpr=KZzzqsbl_2k`H0&#~ie3D#;!)_<3xi6ib>xqQU$q9J|Q z)mst3{S=42jFY^XV)pQ0b;sw=pAl>6Qpo|~b^ScM7@u&?V2s=a_sY7$l<`+Ef}kog z4MPn9Rn3mAH>Y#$(BkrYeCIB zeWydyQ%-r!q&DJAP$aRivT9{&nT;m@mZ_#eTz(Dljl|V2ezEiEhSvff=BFU5#N7YH<1@>r86(!y6Oq^>FzVF8KlzlQRStx8-Eg_iy#}$eH@d-Ai==E4=A3My4F02 zc3y}tI;doRpt27>&$1iq^c8te3%a$Pk`c^19mKx$`(tk&Rr7{{kgf81eqyniTkr3s zK`~;^b|k^3vh!+gAtQ5Bal&Et zF?X&vGqF|U&AZbM%&C%YJI&>`S#Ta`H`uDgT^2ERW|`(6I4>b2Yt;wRk`f>9qaY(P9t;fUw^JyqSIzN+C3{vtKZKPV|ehKEB@qFm;RnQR!hC|H|01R zEQi-yODlwu(+bt#*w|Qsj!;}v=Q`7_xAy@C9G!JO0evepE^l?R!=FXI98vn@_N;|7 z`k9O+1YD8pQpbkvkm_UETfXNgydr^jmw%NpVR@M^ClGehkU}yA&YRJZi6h?|-*+#*O%bJ*a<=i+|`kaxD5`>JnUm>L z>MJojiTQQyS?Nx))`wYF&6WG}w?N7+UIVWOp6s{z6GAs+8s(fQtUit$X-K*#+u3QU zqipvazo#d&!VWq*w)vnQSwiUvI8s@czm4VEAD?K|@7$KJ&&R^_sOOVn+#w)9i8w2R z#v=mzJ}}W%*VNz{yRtAHFi4gMiuP*WZ4&j`yBDXBv4`(tRQ>84cOhj*}jw(vlszZ%C_35rhGq#VJRf_QB!B=)iI9z{Q3*-@Q=MB&U+OqjSB1_dB`>$%7VWD$2^X{Q7H#?aVQ{T5(;Mz`W5g zYpv43-Yfp)fdY(_e3sX-mO9rU_7eBuh#wo}EO4hjH6c$XcQ4Pd)%FRKe2Nwohdiy! zqmoklobJBO{XxI@>PN_vya-7ClH#qIGhi)gcCt!_(=3tCERpyZ$10w`D`%(Mv9D*X z|7_STiNtwl&B|)v(TXVs3X+n0X~Ry;=_8bbc8dowxQ=%9@*l+0@L>yWT(#@|g9q`p zw`Z8S4rxKLxOQ!v9Jf6*Y3QFJ1|sI7f}nMK^p$)YD36Qh&#Sj!zrSe1We5|x&*;L! zg4;gIl8|=Gk8V)W@hC&NeDK2alTRQ;0O66MQ}q%)4v34gkRw_0X&@du`IT-nO5;K9 z5}quil0k)g75t09!G`pc#3Un|&` z)l5rX`E5(XOAY(SglENCx;hyVO;*i8Y;p`N&{D#YrPcyvfwzF2HGo}p^?ltS@17LQ zoM(H{U((Ux&|e#llLrwWo84Q6+wlhdi2s3a8AdE5XD>h^b@-TW^(!P-R0iVs?%Ddz zhf}}t-HbIe&;Tg92f4)vo40H+L?sNTmkPwf@A;68#iFPs4)!2bw?+&3QrORzwNbvr zH9vuHx%vf6?pP&AB>9+`AIOlmVrMxP%bl*=eOc?~%~3=tCMG7L;HtQd-x#F~;-P}u zXQ!u$_T%HO>N?0a37iPF3amGc^zI~LJ*sJx8iW_5GqbbRn;k}r51|L1Pkxcg6xzmE0Z4X^sd;}d9p+^v-`!v8@MmFP_ z8rMz5lKEqi4rK4x*RL;sHbrCXA=kg7YOB6duY6q4w>R5OT1GChYXO1r+;ioWgDw!5 zr(zJML;b8`J0jeS)Ys9Gk*2g8L667ADg^a?QgZq|9=;K}k)o`mG&npgXw-UqS8P<& z<_#N;P~>e8A7RTU`VDq(T|ak@1;pY`I=YIKJ~D7?049g)A}Q?rCOkuRWG&2K*+xld zmt;3Hs`*|i#ej-ey2ew1Bp>x|r1pYfPbsQbs8BsqkW^4g9jaTU+@{}=!*2-h7aN(j z;OHy4vXc;GEE-gGgR>&zu%8-0ca|hl`%8<==4jji2u0SJzK&^>t z^8BT18_<%n$7~6$Id>!DCdAr8Gbo>5d_WDlbH|QShl8wJ5XZY=xx%LM7+&^Qq!E2?IX`L*Xz%@=Y5F1$stLc^k_JeG^F651tklzZz&@wU6Y9SCq{#yXkseOu~D`^Y*sOc@iMo zomW&gTThhl=Cgd9f@GQp5>yTA+z4Bd+6==DQj3rv6pt$r#p+h4I|u8Fv>l6lUoojiv77N0rj9--?w}V~+ztoKms^n5x`Bcp~yn%R{)<<5#1xGLqe%6nDOZ zQ`#cEF>WA4Yxc@2rD<2tHeVDIqdBU61`pQ*jXQ+HGD^ZO@n5rLE~Its^UCvSR+Tc7 zam#3d6F#^C^%phiEoRjl_+G%KybJl3TzrMwn6eKx#N8(F`j8U8m!tKui2n73gK^(L zy?^{#MhlU;b2Vt1n?szROBeK+;-NAdYOZ_tt{1I}Rvri?U7r+4at4Ag$c@zGIvl%JsI-!@~U|Y+1A}5Mn|o+Fgn`W*&((x#8<2E z0>PN|LtGZ+ct7FAkZiOfG;9e%2%Ix@R;EFec%WfW&i)f8ytRH`S0pDz_2>OYPLaO3 zzIM^aCsJ?PJ|c4g%#fp#6HTU8f^7jy)Nx=&MI6mDa;?n$Dt(;kj^u-_Ro{Uek~DXs z!*|KPaSyLajBhsqKS)=dqs=?kb(gKc8+eu?v0sQmc5H@9xmGc5kg}s=IHk--E8oZ?L6kdgEz2fK2 zjZ91sZFmraVMM~wAdVLSGW?zkTI3R6^qUhd<*BhtNxnS-!|8jCmi>nh-#>;M8J4aA z)U$)F>CbNCCJDV?R$dOHW}p!D)Em*JO23QRfEbWTLv%Rz%Y(m#@y^JH>Q0%h$!e!T z_3b@Y=pd44C@8p*y$5cthAaA50lb%?XtdFQ_jGr|zZRvG{&ee!-49`OOV~DQa4~!k zhg|qG4!I^p`WMD<#Fs)J;jDe$JjCzYO~c1RPui{|Dw~x@!nA)XKB%Tn+0tUsh1|^f3;`pT0D+y4v&g5K&#*`LJDKjM+)`N zWbTD2R$RW_yv6>l2%3IARG*}ob9l}>%K0ihaR%H64g}-;7|g+5$RP>02T4md*bb zmMMr&@K^6H0AFpqpIu(cSD!J7ZCt7`I2Xh_)TLxEbP*0bh?XcqF*&fvtL=@;{T&&4 z>EpCVmlB9qOkoda)a%e<;>!FL_-MPMUOVYm@`V#!qv^^*Brt3|VyDCW$ojdF9icTC zm2%dh;6Xq57zaQu$QK>?Js}+C(VX)^FEKYQ-DJGMnW51*C4`J+)1bCubAqNAF2*nI z+4^VTat+_(bAeSX*J>=}M3_i^uI)?$rANgD@iF~gSKC zY=29LELxP;*vXn%)Mtuh;hy7nIHUKx2q=sh$rt0uAV%(OJl0R#h}tj7zHh_9umVn{ zO$oXh)15>W7_icw12IB?EfCC2xw0lcWhZBymya??5~*V%*+dB#9(7E8K*A9zEiLVy zJ!Nt!R_m#oi4t^?Y`OfHaLM!nCKeXA^U!uV&1CO^;6c1lSWUuF3FFf6OPzhHB$^=L~{KERKGvqc#_>LEBsEO}`d+ z64#X%X`1%Rx{rf9S_6Oll*Ylm`Dnkscl>{8{Fj#yjaV4x%064?@p;sPQKh99j_Qr} zN5=N__PSQBH-V%Cy%f~puIsbffCfX1`t~z@4^|UvwLjcRz$;dKL_l`epvWohOtKrI%qo zGz0LZ$eSaovOe8y6@7F2I=@;PYbr0XO`E!BMI{L z;j|$_E=Z(;rwDNy2WT%Poai-bz!OM)=;!~GhzJ2}48H^Y&F=T)PWkbWgwl7J9yK?! zAlV|4kX~5Oiu}?b>&d}lQPapIhxw0m0s;c~hl(a`O4j!Z(Vf)SDK#7=bJBVB1I2jp zj1{i8<9fMG)S5R%$Dtv>>jRo~>{Oe3$OdZWN57sbA@6LeNaZ7(vXednM;qGr%0g7E z_+;w6-TE$vIdAvJe{D$D+?3&#Hp6-;&Y>es5nU+fJy`iP({u>VZyM!pHjH33>Pq$PpDm~fMX2o~55_%4}D zE`JsFpMDj#r;vS8Q(F(zv!wWXc#v=3{#vDN8aaad_wVO`f)Ms5NLo1r-cWE{@aH>$ z$J-FWy-wyJMuBft9CEvT@K*H$ zAy}+mcs9ibX%bNnrZ?YEk9$Bpu&{ZYJ|$q$0Pw>}AQf7S1-|fUiZ86}4ISS3KNjuffo@ zt)*LXtC`G$W?z#rWD@-z`cnwMq1~iozWdJ7Mw=;&EFt0^gYV)Y%P2HQBHIzn%t+za zeD97Hx3{+!AoAsM)H(`&vEw@;a**EvG!cf6)Z}#Xx%Pr z5TQuLq`*`7*1WqP!ftr!E0o0JPaxQc3)zhBFzC3=t!o!9l!78sm?!qd7+!ES)6=j& z#(({vfe*wtvD)?H_8ruL6A$p`M1O9du(;$!7;adpo}??7X+eGzxrd6!lwps{pXEpL zGI^)~!YXVJtQ9||dGOF7)IYquyf$Dem_MVb=o@#BoEs0F|Mp9E3n zA<|w-J3OyFnUFo&>5_SJoqmK0`tp1B?=$w0lXE&O&SNZxr$AAIg3sYm7UQcW?26_; z)>X{5|zlEY_Dx7}EE|_n6xyjAzcHyu+YEZXbPZa;IT;lZMHV^v& zqm=&#MyXQ=j8gs`Mq#C0hEbCKfKh&9u|`1QjGHG`>&Cg~@6?;X+_hwFvXqxf)z@pv zG3pOZZvhOLZQ8e^CD>$QsHNe!p4K7Nk%?fYOvaj`Uez0k@{=x)(y|>jJD&0JS|k~9 z5;YF^B{}tchW_YRrB;?$AkHHzX8XeDc4_&SYAjWu(|W}Sj1g)0SvWsvJay5r(=gkk z_{KjMNTDrAjH^jPEf7#}PrKb<4j7}m5KG+g7ag*?D{*OFb!nDDj6F`Z6DV$Vw}(ms*F=Ai+9J|RiC5gkPf=C{lJKMGzz` zW=h=>k&~3nd#Xu)j9dTE7#?%#sS-W-%^^Q>|H7CXIF05>-fs(0>3uD8vrXuJhXa-F z)E+|f3aEr7ykRli)uNnXdU&Y%KDu0CC;3Z~;cACE_-soeg}+OXxWqF@4u9-=5nuBH zZ8zjn*dF+QMe~fPxz^6>m2atM9uVP!9pB-DS=P9_oY1zsQEQX69%;KME@-pu^H)Vayft9wqMRJs@3vUHQ&Ema)F4`LO(W z%A2t9mxeCR=VTh`XK=+~j>Ygj3Kg|H&=~M-!JsPT$SmQX`9=i{(SHGV@d844z z>mSAB(-q+A0NtIb4$Ad(87|}Y3nSo1UBIa)M|27^yE@M_9+$Sqv>LUG^K75%kV zi_6Qkr?p>I#UEBDH4DDoVmlV4sKNp~3mEUy04hSJWlu$bgp>S4C;DR@UKSQZ_ySOG zu|M6iyx$oL-%S0uob(*T>ts0ljcO=1*rg;T)jDs0GU1B+4UsXR3O#@Qq(9T~pn?76 zrwyz`l-N%D8dpf={#C_8Ax-?AQ1SFA|4{L4-o*wucWmsML_N7Uagx~dljks1U0ToF z5hfhEVapa`R59rZo5`ry*jUL&i7fEg{EMTI&>5ge^Xptd1K$(YR zD4z>l+4C;)mwSD+>qhmeA}t(Ku3$vz^XEldS;+B?g9ZFA#F---!ErOyX;-n9Bn`49IDpVG@xYkwJD8HJV1HcM|M^;9F6TJc=u@iUO z&!LFI=MPB&69FsdIua5pPS%7FNDrEfb++6jXNRs4T6&|51ORE3eWFmc%`-Q~gjCEwbjp8`&Nv3`gK5JiroV$i*|Q4rl5g;F&E%}k z;KwQOqW6!=ILjUFoTml$BO&tM@PjY2#Q_M*0%qq`Xg~e+Do+*qp{5s*U4SGLG1<6b z1ErunpSTw4P_*arxAS`3-?MHkkiQEiMCk?vABO6Yfsx93Qu+sKchzeVsmbpO3MB7_ z5XZ=(nUBB%F2nT)&wu{g0{#+kFf&NACX7;m|5TD>-DpQBGtLpdDo zXIwMQ24v|^Ut5Be6a#x8SIs*hu)XQPRR`vTjo9g?8Bjc$_~rT3Kdh9v)-c_9fVvG2 zp4(a~vz)G7DeRIi!BfsNUTw_gwO!OPBuyO0=D%7DHdZBSON{Mkc#)yZi^p`sO4^?& zexXi8KyC+yKFoJ4PIBk0?LQUQ;n?YLHfjVCO7{_6+^AjM`OM?B*pCVTybYYXN^U8nIbXQ+jM1-l^3Mc zS5P}X6;FmkJ~x%Sv;bC+V%y1u7Nh_oUB|#+5P3EpK0emy^pEC`5ktY$iy}D(ec&Uk z@Mag?03E48$`4E{H~my^hd{wg=Wx#WCLzadt5&%IyaKZH7X!fZuYvzEuzux7S@lB| zko*&HXv^h3oKX*C;)sZ=*iF>U&)XjDAG+vwT=MeeeIj&6v0bp1o|MttTx@5PMaOO? zR}A^o7c=thrmdB^(*hs|2oR|Lhm;T^g{@zSTz>uCLxnhj11Pzs<^ejTY-=+$H8ow` z!*rjB!KL7p3~auokcQdMOVkzt_%G0j=35xA+3E$r;_ltM#OXbyI=i8?X~Y-Y7CnBM zIoJ+p;t;HbA-V`oL#$9&=WL$p<78PUFa3X%zKnhPCVk=4TltNMdJ$qcpKdc+%V{+X zO~!LI?fiS}v$GNskcJygd~`^V;z>li5BS1aawkvQwMYDLEM*`n2g4Vf@<)&`?tE?= zp>hUq9fW$iNbOQO&!2F@Y+dS%OK=hqN&=^lg;*5yqr~x07ek**QrwNNJ=gh=P?G## zbuSk>CJ_;`V;e)0pGhiF_3?;oWi?4e%>D&SGTQ+x$+Ym#SP}JG%O*!sQqO#6T}e>?4euXVlbVS*IaC&j^=({#c;rsRMUIy<1=o zeie9rV@#6FsZi5CRn?9m2vf1`+ePFs}RZA!II2w^?+= zbCh%+d2~xdebA%hp}Ed1<T{lhx1Q5zZ+arc!`yYH9vT zJ99>sobB5o&eB6y60AghLnY<5F5#u+n8Xl}1my?DaVj(}dKVTK%*8{TvdWNrVz}s%k>EOw8b^XMV#L8O6@A zPgPabCrm`dDnWZ&P>iG$m*$e3qjqcKzI3Ofp@BW*HB`7x_wG^M zqxLMh`or*c`X3E%%Hc4)^-N)u=C5uJi!8>wl&hKczRYpFry<5QtTV>Z|Gtx#Q2zS$ zYgltqN=nMg_F(KAWioefPx2ZVCU&oUc);J92k^J|FFo-7b06^OvZN&1M^{v5Pf|c} zgPz0n%J69(Vo0Bm=veFEpsx%BL*(;9q5g=5`(Xh*$7_E1r8JoRwA4IPlKtEew^RO6 z%s)&)HtKhY3=mmxZ0?mP#o%F_5UnLVK|iZV58jUI`1L?ZmBO!tC8*Fjz7U>9g%c4R z?iMpvqVo)dJg1ML-rb?<3kXETL4K5icK<>&&gFwWH*L&s5o~2&-vEFlfJM;MZY<$< z+uNFHQSn@!2;TTiA_3&mA}CJ=OJGirhm6s%gxe`r{t(|>m@y@(KGqjw58KWhZuxoCw797-1&Ic08lnp^u7K;NN7YS}z)%l6 zDXQH#El#yg&@%bU- z3>E@ljjIRaIt4b35(Mq%j~_s(duJ#iM8#%^Go@rVqN#4rKdpM__I|IuY#*8XO#Kz( zc;!@WipJtz3GIhPJSJa1oN6wA|NfYO<^|?|)WgVj6lqUSR`{I=x{=E`MVvNOVb*=~ zJE+jl^mYePtnlj{vnzcC7QRL%I7_oU$M*dqoI@C~l-YX}k|ena=kTmlrrM z_$Lq7wn6gc&-*tI*Q`u-_6QL#>t<~02VR`D7xgT_F)>?u7+ ziUuEd2aThMf$IUOgmIRzt|H3YMlDuH507f0afMR)&3im*GcRN8Wjs`B>v9){jPYm> za$Ze%1pY()+BG*hU$}R5@K+P+H$#sofvlp52_kf(l062fam&`NT=rk@JDwA-y8ob} zU#3nCaXcECup!n)A`v)FSy=KmsXL+VDNl#e>#ONefVV2miN)8>olP%r_3*qsX#NxU zC1ZQR-?!pVbThuoXI{_EoOtFlj&P>kZ$lv@=|F{=n_$A6_mTcoS zn&QdvW***m@CF81Me8bFzkXdofy&hu>RvL8xt2rrG%uvw&He&*JiPmD+!t4(FRxYp z9ep9$vJkJ!oGP26OZZ@4kQ4D!KOo7e#GTE=0{}-HlAibtYfL5QffKwm>%(*djMD-l1O&V9aen7s7s>PEINIMXHDzxk_Tjm6R_hdND_Pv5~6exGefBg(5dfRBZm zLs3S!7BPqzD^+oGdI)Z3WK;W8zj^bfK1P{_j7-D5yvPUR7KrHL(AJxEXa9<>#B3(q zu5L_GnULZ}r73B9=JVzykvM=)cnK?C;Q9v*<;w-+w`{9IN{=ZI`jju%k26qWh;qM; zsZ=k(Vqu|0xWyZ*Fzpt05l1`5AZZF zWxUbc;5y%#`98{~gi&kw?MO#5L@Hh-*HyXq)YYoLoDz z)&TnF#*{xT*iAdkGG(w|oVTL)2A28F()NaR0h#4Uw+`AM{t@erGGC@Hf@HZG6_#W1 zYNzi}HBSt)DQL`cB%kJJ+QZ_DbESL2aqFJtVc$^5+uHkhnIE55Q_{g2S5 zc;~+fZBqUtv`N#PAJhFK)(i})od-C_9SHfsH_gO0d$IjLL?-e`I;5m*5l z@79hBNv0pKY2>uGyf0$0Fl$DCN`zp%WK;N5y^mjgQIp$sPjZ^0{;5A1g=(_inuRS3 z5BMln)^4>H!CnnVh5u1kM4^OHM)=Z)GK-jLnYr zXG0X@_MSxr3fm}hmn%ID9_til9SII|WUl){>hBs%k1J!OHOWyLAQ7}Hp%DNV2Gk(o z@nRM*)V9KBfI9%;q5+rziHU^(+MTKVhru>c2&qJ0ZQ$VNCuHCE04EgR^lJgj*ueQa zaB8jl@#EfVZKDzZ26J@fv-88*dop^Z^ykzaX=}XHnp#>elFy(5=0u$41M5t@0BGf% zt3*o?Mus=?fXIMb*`~`wRar_yCVvQSl8;``9N#8Ih$8g154!2G&=RKyAPHUc!7r<7 zeVKj~~dt8;)s6VqI3lK!K!VJlLM%r8kE`JuD1yd5D`oD5vKz`lh#P3>hT;h8l&r}Hik_c?AZ38iJ*)1F-FFdBFVejL(|fp zFIK67C9ynN+~b!Cl<=nj-5ObI+?;SZz$s1h1iKCzC!misq@k|yk(oC2M*DpOLVSJU z;g-e=HsfsMAriXmq@RQ{okJXLQTNVLx}#m{MeBT{HxfcwacD8n(pzlCVUXhh1Tq4d ze+Xo-J-%SZjv*?$Bm^9qw`UZj8e6fB-P~}klkIHDE>oHtW8D#IO+K2HYF5(xtn70$ zo}uhvkA5|X30Eh-YhRzyqUAXgGay{IT3D_vp)_?flsgeNI$DAqqo(U7ByW`kb3Y>p z@6xUnrQ+4^ocsk>I))oG-PIwrKp8Bx(VLU;j2v z4}X8u8Uhdu_kTiIVeZ@)UQey`-O$r)s$SO9D8>92J{PM>v2EHaw>t|~fGjfrg+q-LSSgkasu)Xk8EIhWnc3XP)rFJ;A^@;)tW z=F45XDy%_;IncqUlmzYWkNDoQ|1L_k^44egmKF2mj$D4b-TlSt6w5SXxF%j9m?2t- zGfXg}xN#Ep3Jmr24+sc&{`~9-a8DXHa;n9`W=E%{0(i{&5kLsUON{R5d2ME29_w)( z6c-pp)Brz*#juJCa=OCdkl_d$A2)@XO{+6wE}ogSBr40s3IYOVUWb&oxI9loX({>Ee7+S=N~9k~G{3-j~P zgAg{#rYYF4`bfJTP zqzlPf@E`hsoXm574N6X z!C!Dfix(gUo7s>X~8HpSt19a52N>V%7j3XpQM(wp>ZQuh>bQdZjpFOR!~+;1$; zzVvHjs{$tYuCPTNEYS4>a{NmA_1DS{e&j(veA4 zN5V3OtHC{?rt4W6R6|pv$dJR%0&yJKPMwRMR2m;$mH*>!;{5!>-}IH?C;Xj4uw1}I z&Hp8YQ*r4p5RQZ%Ae;(?{|@1ZF#g{{IHRQhKR`I-v*BO3+Iol)KW57jKfKF*vuE6R ze{e5Tc4>C>#2JOB(K%hr{k{va4hsXgB)^#Q=+dIvA)<%$Wu<&P*+--Ab@56Otvw~L zpu5j$G>g=g-W))6MC~Nhcy7w6-;l7$n>Z{qJx zDAl?anx%n~0s-M&>sbi^RO1J9_oCII4}T;4|&r=GxeH z04;?GK80K&$jm~U+r-z{{-*IVI6>6js0t8#8^0N%4*tXtb$itcY$BrMaBZ7Ej~U}1 z;v249ZBtD-maBbrVij`MeIe}vMQ6N=WmRwNnkdTwInOhTaAw~{Wwl(x@cQQsr$-3k zUp!QvXNiGgBvwziOlUE9^VENI5a z`N~KY%OpG<=0&4adWbbVdGa;7Qu!1^ZW`7+qk0qu{H|aYdH2d%Kahx!-plc>HZ=XF~~uh5?w> z_=tqyf;&ka^$_u*smreRAl@^b#1H@7aaGXucgGd2=E?>ame$$v!D45b`%;3cNrR2Q zLWE03`s_Gbih2$f#DYgfJrKtDP8t{Zt(b`7S}p@hLy3UJ-Z?tWic2dUSN^q(|LVB< zc+Q--EWm1WF)j|3;GOKW^OMW5CoPO1>Y)C}fs_38>yyzDkaGI`MP;*qWSwP|4S|l= zoVjeBzSI5#2db)2H-M?P1|di+=ssX>LAV?WIn?2%XFsY;GuTiYjuBCbo3WSN9SK0oXISBpC+Mho3u7f9R_GuaFo$X;*)>QZZuxtg*e88l#c_j!P ziE}$-WX^1%+qTt)|e_tAt7h*o%FhNy;o2k9u)UE zqf0gdA-(;jyBAOC8eEB;b$f;+egpmo6!U3+hQ=ni(%#K5jK3D zE%s{6c*G$pDk^MN^;*|gp`qXqSs}5p8I{L?j}*lCZc1>SY!?CBFGpWRYwk0!JoyN);Nb9^G=2imynK@4`e94+KAg z;kKl-t4{KtS{WTDZQaCSJ^mR8f~#a$`u`yNhR0?n6GlC%CoV&1(V!K3BLaJTlw;9Ot1P7y%KQ# zSHaK!)|e(~Z1IygoOr8K5&S-0k#@vA{;J<8nfAE#V(b)g zP!@sL;w{5#p<63uhyNuVXJKiu&B~NqCS`iW*Z0=lyGJ+gJ-c0!h9ocP7xA4Q=Pb9X z(TL=KJal@M*FN@BBxDAU9XCu8nehBf?K-Np?wXW4_piO|kdr!_ zT5oLeFg&LA`eiECy(4o9QBe`fp%;gELL+u$ns>B>KU4eyIutkBd7~u{(_@Hkut`!{ z{OTmQ*7c02C`<$ckhCVHrX2;55d_J6T~f6eyT>9j&_9>+4sTxj3yKYBIg*UGZW$m^ zF!HcWZ$BQ>>nHo3S&6QWp^lNX+Gg)7g53S{=_QO+6UCwL={9i>-jhE3aoEIC-ye+* zX4*C`GO)-5KRB@rV%B|AI0H{T7^W87fDq1KZoNkH9i0cX5)x}gdainlRGb7zR2b41 zmI3Lu@n|c4zmO5MLu=R*a&eqLPx*5z2YE4F}y~c(05ik}190^NNTYwWjWl z(*jQA(t0*!(z8==mVk=;3NJq;k15gkf>iBnVa+&#STNbn>2xKb=-Lwrhm#j3{G`g5 z8%LQrht5;DYzn!lymYi`Ltpmx>T;nMwc+9JnWecj`vY7AcQJ-Vu)Z2#Uledk?SWk4 zN$v;);>I0;-6o}C1m5{VNhDaEO#T7bhHYe&@AL5W1?kVOQM8@?CQ?q+j-(+doBgu< zTP4o(HWvC^<~h!0=5?qWc)z6OQy*>hDenA|F~FM42W`m7-{Lficj&L_Wz}k>9nI4= zPWf~o80lvSxKZ?(cMXU!P)hB8^yO1-_CV)_*=R0E)AgGYf|>Cy2SIUSpW|5EoI4Qj zS96t@Vt}Nt`A#SOmn9{|aQBG> zBsS{5P4Uvw8($bmowZmPD=se=u>2axuXwqDZj)AA)Q#j1S&y^KC8K;f%KQx6V)LhI za-8Hw9J*piwbw8$$V!Fh4^W$OT8(}}E+u@VE!^&erSvtMiLg)D!5?Rx^ArhF_89`RrX?sMP6lp4Aj0;@Pew=#2BqyF2L2L*L6K->J<-oUR>}_hoD55}hYG5Jt!saQ zJ6JAKCA0DAlQzhjg1BI5vB3A%I{|Uc!yH(l?2G|#4+1+v8KPMO-^Z5JPg0jJzjD)K zgBBmEpPOJZkvRcBSVT3)MvOAf0b-YM4Q>-CE{sy-=+kd}6gemJa9>%excx(;?$B%= zB?NozXGfw9`%CM}{q$Zg)Q#BeP3vS!3A}PzqCICbkQW_Dl`6TQt*LoVpjrme8vypu z6&@%C9A=L~CBl2a^mv7^^5d8$y>&_^>DE^-a+>sWZc5?HuJ+7>i!|9UP-z{YG3F|> za}bFHu&adYNq5%j`^)(Rx%>D|@Km*KikS-3KcvFKNyr?Xxqh9XZ(`9Q@do&ck`2TQ+vqmMFXzLN>F+!M-NMxh;yxPr05(@b?>+5=_=N5}$`Z zpDzv%P&t!9Evj^~a}|%?ODLomvl5f)ad3>xP{XaZfz(t#NY7H18I) zS1Q1QrbNU-MGGZN4v-+IqTQ8CDdJ<4hnf;Y;h+L}e*wc(TqWRXKEb*wnL1B(kro5tWRxdyGIdiD24>qCKRpSZibmA_I*WFz zch~o`&78Fv;FUag(wg>|hI3LyX=!VUq3^HI@x2NTMoyx1IYhlkeYT6pexQL{4%-?l(*KSGhi#VGXrYOB}3)f0z4kM#3rF!*r#g?>aw4tO4hmnDo$VzvD48awPq`qK$JRXi^WMM!Jj03px@g5@I7OeH!XhQP zT#@-2uV$%wM1?&v{c%>t&8-hj&T{&>#a0lniH4>7y!4vZXVONkB6*yuD*f$&UgB>D z$A=hQP#M-!Uko43(wOwNuI3`vS(jLrYYE7R^?r#xA1l5zomQnvOEm}gNBB-gb zZ&E}U2a<+E=PP*2_oHZ%f&Ia1rKvxLNTYSX-0Ch+?bERd5Aig)c@u*XVCf9(LRSWL zP&s!~N=%e$$QW>%b$9a6cSY0z@c>I4rg`EFfyeCWvuDAla2-RlIiC6X*+_)n*M4!> ze3OtOrDf%1pBO!L)6K5;hZzQ^4x$oy`=LpGm5I(e;0W)QGZM=zQGMHrwDDd9{G>ssjid zZ&%5-K7nb1vtAn)pjFef0x(gn5_8h~U=TwE)HjsPeb@b6^;3LSH>mE7d0un5w>H@! z|4AtO5agwpaeONJeLTz_I!0!rH7a9%N0Y)cBAUaetW~JmMGtdw51747r{I_hjNTdR z=~JFPZFOA!gaf}W>mwMmD}1@x1O!y<2g(rZ$F<2mB&2%ym|H}dXrYpQ5T|iF9~YN7 zAk`kxAer~q@&<0lCzMC^oUS(Q-o3kF??hMg@!F5W4wfaRT`6b1X-QRV+at=a*81h# zY%xsrUh-NaIR7BM^EvP9Wf6G9Hw)*gRVT$i$n@12^%ap`2`z2n7F~FzdB2f{92zl8 zY!!^v6~qr#NW0#7+hqwYJTCN$5)#Ac?S9*Ci3CZR*2&A_EC@XlZ9cn=k@XeRSRFx5 zuAai!VXmb^Lkh0zmVGFRptFSSKE=Q)0t(PrV=7O9A;_Vosb51cC$rrwy`m#qT-J7^unCcfX9g8x~ zHlh{s=e^!E&3%=AuAEoOejkY4E>{}9bRwA$#Uf$XeA5>XPszuk2aP(-b5`Y)&C<#; zL$x;iv73j3rYp)S+c){xRMy{@6BF-MndjTRc{sgZiS`&XJjjm=0Wl=a=$F5*sFj{o z4!J@9$plGW>D|FMY;CiAoX=Y^TPh!Md{?T+x?fzbJnzPy%WN@jLi~%1PN^3T8M(Um zk#-jJ5^wjiJ|>{%eXZ$<=@|EZ&FFZ~);J;#@Vnl(qI%V;OFJ!Ptn0jMjC0IdtfN%CqnBF^SiTq`JO9-sN&)LNIi8YG5`AHn78U z{=63D4;n3#r)K_o#zq2sUu6IFgz5A&4~!mh5#Z55Idg0)2ugy0UB=8_8QI{A;=vu7 z)-t{l$g9)R(!zE{1{2(Gk&JGP-SHpH@+`}6#76tyU#HofZ%Dja|F%38(GiV~k|wh* z8r7-OYYOMTviCS%`?88=x&GSqNBwn6E?91qM&eO3S6S5f)8!M!#LRr*!iB8=!`^#G zRhebqqLh}FWzGqNQa}X+B#9(3A(AslRtZWL5P?H7l_&yA&VpnPNy+Je3CW;D$tp=e zKqTikKd`DxtGZv`JKk^HKi)l~$7r+!&e`AIYp*reoO2CiG$Vwzk@{J;wWJv+{I(Iv z`|onI>yF|HDFFpu(! zoGucc=iua&cewDdfh|z?Gzc~2?0jl4eGbdAcoENALrApN?cPdD>j;Pa2wkEGz-7fD zJSHlwkmI>LU}kq=-FXPKl;Y9H@l?VQtRv&u?Hc9JVR5kQiPvZ_;1S{671 zK+@Co+WoFE^-@{NRJ3jJ!@Zo#EN<3YkL(vVyUSDam~Y3Qfl^_?vd_N2v_c_t9F5gI z7(t%IZ~Nary^>V5-4eo^iRR1a*?q!u#DP*KGnc?o={)>4d0Ve4fb2@l;mN*TF6Hy} z+?Sm5dHTwhdu^@svevm@q?V`j3x0R7suB%T)<<-Yx`i9b1WNfI{?IPq_qxiT+C6)@ zG4b5O)c(-a)c&mHqouyysY%eXn2WB`rnjTj>yS-IRZy&N|-#VaOGJAMgSy=@I z?NMh#O7g1?oZW!LP9W@&-zoj%dEySdM1fW12pA+R>K1sK7M?{clp zN|?F0ERpi2FrA-zA)4Iab?kxZ*T%Lf<_04*lOb_jjLh*U+7Rwlw140Kl5yB9f9gzk z6ny6a#{-yvvDPEw)hln|AIb};P1&FN%)jT(xQ6j!zWn=I%#cLrMPjNFzrVY-C%9=k zv#VE909*7X4zVp#Z2Eosz*UxSiC>dEJ|D^zsA!fJ$D3Bgk{q!!-%^2l;%0-;r_ZnA zQ8=kM(ykB89?uap?rd<@sN$R_rp-UTGZbh3$Y#Y5=gSUq{0sYIvtM4KI4)D-g*`~m zM67bX&hxRGZ_9CrEe1-jtaWdA*e2Vd9sOa<_G6L2Ik^b$z)Z4nvt~K{#V~*tlgYcN1)<+~4H;#uv%T)g! z{5^UX08+wuD>pu_z6B}~F$+HZDH}TExuAelCm?+UXBsrNBigSprWD~A;jpZ4xd@Lu zj22$rS?8s{8SY=)!WT}i-&;|eA~*YZ2QlpN^F@i*)2+wRzbJqop`HS06m7OWdsNS* zUG`||Y*NR7s3FIR-1CPIK1XIn-nZeU2VwZIKV}x5DY1z##IXV4woVIKFpP${UGnV{ zmwZk(ySlkyCX`Urd`zJjN%GZ0@SPH5tspxGZpGFz$Q#4vu0yMTb<;;kB>4EKhkG-S*~K za-RFe$x12IR9X{Zsf!7erm9`NAWdGknx*a05+7m61;m=a2=P>INuJc~CeMOzG&|D|#l~R`H~Dhzfe3 zG<UeoV(a`sD10=8Tb=faGz$y-Rq$Yq!&^>;p zPSXrIYW`xH^O&&k0=g7mYh1lct#%l3){C=?tT)t5w-}J(6hyYl6MoK%IGD(y9U%*} zG}6*~6r7-Y@ysg}1R*Dcghex%jb^^uq7Ghu;~8#9lQW$ygiRgrVC}3c&#RxD)QEX` zuq@kVT~rS&bwhfHmu+`~j3_%@Pemi({U{3gwMytPq+2v4`-Sd_s zIXku{+r24CkIEmhunaMp>yjf|NJ{a&8|17|Qem8$lv91MqG8QzD}A?WHim|z;NVlF zw1OQ82qb2mot zoW%%32zxlWxQbkNLE#bV?X8<=9KWlx_L1EnpIurvxrvWQ!ZHE%Vne0dE6rvV-}a_j zm2DNXO+mhLXW1XPylK%>vZyooI+b`~mgnTvcv49I>3Nzvf4>y`Pb$goK2cJgC1)DD`on4!mvmhxMR#&eamyb-O}$ zM7EiYSd1mt@+Eq!W*sBTk$G>*$IO$+-q{`c6ZDZ0TdOP0Lwu(1#(Fo`*O`4d$!rBY z5e2$NzI`L@I-wtbIq)D_(x=C`2SB$zcMFjO$YMR1j|nH@i7~72$u!Ky{e`rX38-Rq z39Q&YzqOcpNjJao(B?gRT2Tn_w%gaVeSG}{j}wGWl^St&0En0b{1}rpxHhhWIVGD$ z)|-4j?t~q>*-9U~NF7;^EY+A&uQ(`1D3%S7r02k(#s%>C?VDKd?064eyQnq22Y*i+ zVU}aE)?myzHZ^H~TCvomzwZv^A+z4B!+Ns{Etpz4z@Rl_D9wyirPyO{g^y_@FosgVlM*>-NS zRZY&&v;~5$ zC^}yoD(sZ+aLc!fqoI7y4|^@_rjHhG5X5(IcEr*Su1(U_`A^dG&AGIdk?n>xkp2VfDSd(J&9EV9pl8N9VJ?@pjBihdeeo8LsLF*l4So$%^c zcDVEBZ|Jb>3(0f;xJ_kLeVeeQiea84Z!Sy2sjQV!N$PVl@iKp4toq)o@1LVr&XCqn zH{@@)B2`t|f5k=Ls~1QW7&=eR7~2^{pJ^{}jCX1f4uuOjSeZ=`j8pcfy-Cfaim?4j z+k6tqzBf{1{ zU?w+LE0gYl#tf1huJ^b)2!&6Jh{PqE+QWYgz^D@Ri8yc&rjK;9)%#t8#;+5QX)Q2T zKfQD`6X2BKF%AR7Zt9~ANsy{;r>16c1~sw*IRzupKX={95q{#2nDYxd|$SAsA)WTHxxVaR9J7-9{*=!OsIHvMd^)$!^mU zbQ{i6*J)vD5ypjfVPeku4I5-6B^9F#HUsgqM^UC%1o;=xwN~TgGZuh|J;^j8fdN6Y zG_9pFc2-%Cx{B!|Z`D6N7AAIvZ5z)M)CMW*68uqhm%EpHT!lvQIG1U}bX94or+s8R zh~{Xw!#qO56MjW=5F03R0Y`guKj$~i)Vj4<-4FpEf|z$%c+Qz{^vRNInWncsa-i`NdM-G$K@;eZMv zPdPP>IXpp|f|&Exau;N9FM=>U9X#T9iXz^nFC`Iik0j>yd?1wt<>qP~ID!h)_lD1~ zN5Sukuc~T~%H+up9#v8Dc`&+V?Ml5Oh%)>KOze;C<9?u#yymr$KFpK*r3>0menEl(G9+C1#ecdVf=ZnMBKywB2 zXwq|4dwsmTYH$I(dv`9CyTWLP6ep^92Y9d4eFcoc5CkXw*deLSmusTkTzw*^(e2vl z-pNR3VCJxE|F37O5O6%k;j#}BslxNSckjX?7D#d_(V&IgQYPKc!}b1sTpDd~F{HKo z%+WZ3`BQR1;zFch4kzICG;I6#M+1iT9Kn6B^ol=GtE70>??7IT&w(lh%a5n)6XZr8 z9g-!C^H81Yx15>w6H_$1VmJC}?*PpB8t^}S#=1C#B72n{{yj-OAAJ(_pYf>N-O;Tm z9FsKH{B=|umLKLYh=anQ;PYjN(UI`%9^h{y2~5 za8Ba^N&nx&OGyQ7R1lQt+(~8u@jXI?y`1GxTB1>0>2<>Lo3rdfaI-+L+b}`Y`CV>4xc` z^TWZgIb!~G3!k;}4`GRba#@{)O)}2EDV~VQA00Nv#?mU(f<-0_7;Hx0it0_lkpS2* zeqKuY6d0aJF~5FHzM4jnk}HF`0z%UAm1|{(Atj29J=nt{sjgCQCP$2kzxDh*G&psH z{TKQ*wJ9{=sBKU%R)?YNL5Vo6Ia*>v;hgyY4#-_U^uGt>x`kK0^%%EUQOdnb#1@k) zUc8ZZ9?{SsV$S?(^TJ?XeryqHcfk;Y0}Ko(-8L91xz}O-l4ZPC=y+g{>tm_9Z3@Yu zB%>%lu4ao3-Ym(D4KyN_sS6WM3)W#-D?h=v0<;6LsFW*$$>W?~rqlIo=%Q*{5*l3f zy}2J;R9|cY+1WlT8d}BDqs^4maL)pG6#7_&MMY(F!kir$s$aNxd>o4m6itqCc7Ju2 zLb!l9CPpeq-;rC5fOLNaUZ`9jP^WP=kk}vmky;wm&ZOD74Q2t-E!&BH(ETd)IzHFH z8Wq#rfg>XewjZ5CIe2L-FNyq+DSaW2_C2v5y_=}e{W&ONz9i-JXEzs^z2yPS$MmRB z)b)p8&VHhha1{eq4$TM9Ac2jm@=$Xyo7x41`%Zjrq&JEDW!sKwpQ*~%@htt+euNS; zg=z2J$0i<_6oJ%$EM;*Q(Z+oz$H|*8LK&(UiXLtf33Y8?vHV{KeOs^p9|e6m#-`&k zl}UW5tP{txzXm$s{PWHT!S4qp*^ceoOOL|fWEKK0eXbxf1$KHS0Q?Csat~ug#Jg|! zaDtHCocrNCGu!0;R|j|dqMdNI0}95bS)-ywjCfDX9~kl6H;fn%Mc!s$S!*BsS5F-v zF~PjCOjmS#-EyV;Zx_t7`0Dt|U`Hg{`aRh$4E72fQ!O#(M&Pn$&1s(bu$InBed}dfB^bm3<6AOnRaIdK00t%n3ZNlh_pFVw?bSa{j zjNG8RXhSf+mH6f>b4k9^g+5xIeRKb(-iYgCl zc&pjlEYSWTTRL8jbC;?q6y2C%(S$+uj6t=};FzTDTcP4gWD}bnZb{4c=9#kPi49m^ zk$vvZP(2;0&~snO=+Sf2@Mx6N{Tqfz)4VBCtuuK_^-kiLjN>;JQ1|KZ3{7n8GNNh6ap zbZwj=S*-HWqPKSlXOc_!@q~F@l7tM7TzGNYX-H%DVoRseWf5rnt}!<@_}D?Jd*b^R z>~^H#YkppaDi5_DGr>9(?}ULlVe*a-s%Ja;NxNX-ZNEt=X1W94qo`=v>Y)!LCMMP` zKrN*L33p0DK5*y0EXX*)mV@$<-~|!f>yZ%Un2+M@!+_{98Wux<&Nw`|-N2?*vQwm8 zdDo5|nW$3Wi(gMxVmWWCH%LH^7vR$lB4GiB43reWoWIW@hII-Fe%a+%$5$wCbd3xR z`#@itKz;_eT<#`ZdVLds`aqY@9<(+kASnH$B3qO668k&4tTVg}#dkAKDP7ATPT% zJ87P7cv0G+GA_{xBf8QcPhzxz${L;|9Q*cN!~mH>O3oL4eVYRoNMOv+$nNJ-M!3p+j(Zb({H}A|;jIr-*<_6wL9aXyR5T*Ra;mpY*!kzak=l zAb2$SeAr2oyqEI$b%Er|{*hOjOPza50*-9xy^n_`uS`rQO*dpz`F*zfsi?z)>~0Q; zzhCQ|E-sWNwmq8!Vv=WT{cP`n%JB2D8+dN2w@~%EAM||mXdda!FD}}w)?oi4LXzFA zY;n00)u%ps3aU9*4dBO!+95t3mq6SG1>3OLGt9ia#1z$P$$dnDD!Qh4Z)AYl5f|Zs z^Ke87)HE(RSFlwdorKIbQoOO@+wek^X7p=-E6E3G*rC@o+dAa9W9>@DcZm99*V?Zz zEHqvUEn#xPG%~|}xX;l#&6=mHz?K>8AGdI`R)8cb=g#^6j06Zh5v96!2l+hvD7E+5 z^Dj>x%PF~J*Z*N_vO)TOovjXiFS)7&Yd|PK&4Hq_zoeORFLyBVo>dulVpdd_tzC_>~vwK7on>(-x9*kz!uu;_MB^WgN0vo%RA(KfULl z35>XGdTn?xcW9-!BWs7-wOu=#wAHmlIqZ9)FP|ytm;3y!t5N@mr+_}s)V4z5h1lRt z6fj~h53Kv>64w0zh#T|&8rYp=Df+_^TxAud;`Sk7bhQT{ z7FvO8<+O<>;P$n0?aqe*0es;2!ps+<4kJDFir-?!TP&*pg{#z6#;JN;K%Xf4nkmCz zQ+~?fvH6&Jki^he_iaCcR3atU!E(iA{r0xB7q!k6{-HM`X6xB*kvHeuTi>e?zK`2l z!$-p^(B9E#r<2>pRscnnNsGn5|V2TM)C*us2HT<^KK5JX*f zn)lT*+1>9O!ml2ebyH5a3zHJ(QYT6q-fwmvsrjhBBnwY-<^>7lT zqUyo`s_($vZ|&GpXe!W;``0xo%jly8$_J*$x(oGv8Lg24F47!P_lDpwq7`K~%G-_3 z3n;xQqNiT>@I{~Bp*K0Mb~xD<#1V6FGwilfT_^weiwWNCsSQH4 zfWU9wTxN6yzEZjq7sUB@@tOt;sj)dtzNEV; z5*`s@H`X_X3#>`~b~&u3`w)AiSSZ}79qpK@H<&k4i54<7buPGXGu>~VXz6q*-&1+- z)@{yoH|C)hqIfC>hh1oJ`iW|w#eY|fdXZ87^8F0 zpsl~_mL3Zt7NNezdn=U*sen!iK&J5n{^Ad&$Y9{>37boppsl#|JUM^5v@Q0KJ?#XH zRM5#Q16cE!`sB+?%F*)8M*2ksSkn}=dWha8o-*2XXnPH?GT$1|V2-*{RJCoVVN|7u zRNO%FH+(nFKqW_34dw$;FB|JGxaU9atCuHSV89(+PLZv#$Gf%dqUH&A+*RR0<>*t)T?)M3%Yj^)Z8(y z-OB$Kz%FZ80V*4y6-h+YDXZM zLosF2k~IuRQM18|tYjO^O#Eft?nrdC@(;xm=ej!bUfKinj{A)@as!W;V4i#eO%i&v zxchwx_a06-KoQOp@hU@@gPslQuc1NWs2W^3K|LYbwG~xW04oXTH!5@q`qeCS3*WH- zKafQ*$if?m+-^NSQ~2MapXM?%)9@5M*1s@x4Y{P28D1gm-by5Ts>@rh!r7}g8(8e- zP(I7(557J=q2qm5P$7Ai19z&p+jqjtwLCvC3#`qO&u4EzT;#6~+fkO~Y%kebp}T(L z+8jF%Rv-giFEesD%tCisnD^8LF|Pn~x9iHSVnceulQco|UMjoL@Hb3H zEI_MDt_(dqjQ6;D?HVzvFO3gB-bI~-VyvW%GzwUZ*}B{{d^ICpNrp1tgjAQdTth3{{H@GO^8aSfKUvB_Hd0tRLc zXwCJ%+9i^lzf1&K7aXrIy*7z-3fQ6Kj+^X93a$R*JN>e`kM64wWJ--2TK)=i!8zk# z0s-Pdlw^-ktl^R#f2sh1p8= zp6&;f9UzENhwwP}bXf;|d+2m^QEFGrA&FOQv1h>oyR~v1t;49C>M>Nv=gz%DSJc>q z;5s9$=1sEfF&S#DLq|ngSGNX?~JRWIrEmrgsV3!{WOyb}|^64dYjOh71B z^F4(o=K(%G)!l#!cv)B^h&gZv?)lT@T7iRAqCL%RcO`L@b9T?f61#Q3JWnpj9d+bz znd2)DpiDuIo?`#CQ>=FY(?R5eaHi3}QAyR3dTT%9A39FH-mwITMr(MUopw=LB1EBKew`>vC)6{r zVgDtaxu_4im+ZO{8M}&zmv5r`x>nLTRaATo^x={3<1ub-^$8Vdx zUP3T_p}Ow$53uw#2~qcV{Cbu7e0`ydPv9MHYNI-`6-L|%Chi&CA_JpG5D+0eM`4zA6yYnXFpHr*IN+O}xt-=6t z>}S=s`LH6LU+48&RVhiyV02!M^Hh+5Upj~4?ULC4u*n4yv|M<-}=`218@7DQerIeGJ(o4|)zBAg!oMmRN&^U#AJ0VT0cR*IiHFrcI1|I-C|q%6?v?ZJGKhm9x}hozY}=#JWs^*$WK958aZW_^7W- zv_q;d4}M6FK<-t#BwY|dS9OGiqDv6C3l&wLrRbHx!eg|U{z2?{2sjbRVR#H6A5sS6 z#HUvrhG5_IC*Ef^!2`Un!s$QaeJ*Cu(4C)p$Laxwzqfa!uY)qlb`Oyh)st4#87~5U zZx4hqiEqSy_VSWP zeArN0+e31CyVEm&xI1bm! zxc7*E5Md#Ya{b6&q6Uz(sdKtbh?kd_nb{D!7G_5@MDN~RHFizAMhOsR#Rf8;Ri8J* z`{_ij5Em8-L!I#a@B_sEK7m3-j(Q|gN~!Rc;k!)mEe#3M=8%9oLE6-fQi&^~d_&f5 z$arRRdmT$O8U6LL%jWX;fL30-dL?xBTp@OdI^g>y%o^4%vHsul3xeL92-Cw5;%6O zO~dNzA4{2g;rpeOswXy|oZ=))1*U<2848i;xKzHb2z+?aI98=FieA#=Kdf}n!OGG{ZN_g+1Vhoe2>Sbbz~)F z<$92NdMbhr1l@f89{GQ*yYjLAlX-X4EZH)Mz-zT)w+JH-$}+e$XQ}aU#2o9XtuJ7e zxzvOWvl+^uVn84}H*Mm;kgShdnjk)z=zX9DR?(mOxYH*7pOuMv!y($pf_ zW$(}$28?|Vq@jE~Nc~hih;~wc;$|%2U!WvZCK&7Ll?pfS4Yhqsu+i}O!#fX>U4oEX zK9+jMf0TUi0|pRryOh#{3)vp$2n*?W^8K}<%HQaW`lSS&(L?xebVjT|A=fuMlc!*bfbzg6Auf4)$B-2wy1c#C%iZ<*TGnX|M1YD$!B1=0c!svu0t}V> zqLzNG+$cg`{a1d}M)x6s(|ekJ);VimG7K51;a; ztP1Hwc`)AyZl>|e>pVR?IL<%2US3{~c`mPtis0d)%F=AOk}tjIkzFNiVmA4jbVVs^ zJP^%vOM3H$ai1vh=zPPXcHxT1cR{|tH}saJ0uhTCuLnPm=ZD=7SR^(JVu#4+=nSKV zK}?a|!*THypzhDCVXQwBFO` zz+gBM{p~CI++N$uif4%4sgujdZ70KQxFvKQp<;8y_Zi&PQ z?oEvgENiH!T5SH*7rX+^mzcJ!@)K3oUa8Pyt+dOi-mg52ei@$C?mHJ2WDZeLUFlf# zj#&Ij*WXNI`yfY!EDmOkczs#KRTjUbI{9f~u3%x}90$aK7!yoI^^A^Kucg;iM=Gk{ZrAqM%t2+) zX-B>Io!b@#|KEOMWd2LJ58wX75%V(fj`uh6naMYzsuj>zq8Wk_u6MtD! zi*H{u-z74`rPoRKrLT{#_{$m=fBQQ2xBvSl|L;ov&J(nru2P=>9L6)> zPVn)H6d5(V z$oR)UnR{OWS5c+WK#7ud${Ai8y= zC)RympbLY1M|libR&poOMWi?4WYnIBqU_4U{y-TG!c-~joCDz2$0NpSz#=C@?UI zIca*Weeqg0l38!JS-Z6|Ny?v(Fb*c(dg%OU4DeDS8*n8|FsGg1H(q`g^*#tub(gH& z=!Dx`fon+Z17DMeUfk5w6#Z$C3(AX;7@~Xwal7K|g-w=q2UUB!bdOvEJ1m!=UGK4O zx!`tiTIQ&NI)#~%Fk?9V))@I%CUM-3pZ#{v9#>l29yN2VL)uwW1qp@fLi4o}N+i~% zlvk=vdNY}mtx*)xSc}1w=jxfL!7Ugrcz4Qek!bxEyBMrS)(F*v-g7sjUa_&?~+fJ`ot#+YbfeXgd%~ zJ_n;zMhRay+7tSy>h~x{3Xveb&m@wOzpYA$b-II5JIQER*_qAymt{BboU9j~RuBtw zU-Qg&WP4c2@Rrfff&PnOx5sx02>Fj4T;_S0i$ z=|_SFD+>`881n!3j4p`v0GL95sTK1*uv`#Vi;QjDw8_KQHv_yoq62jXd)uM=2By3L zr$qtw3Q!}lCc5##S>{E9(r>P#y54^DAELA* zZ+cd5>yWtO)%3i%ZbEdb-mKctHH*~%nYArWL|NH)Gy{iBeHJ*e=Ojd=hsscNVhFv2 zgoIZYx&mS?)9J2gz7d=Y#+~RmI?j=}VDQ@xCDGY!#ZZm_^(i+mAZGU z@aHI#V9blMef`eE#|t591Ea#Yz3uYRoD@g94p76lu3b4Z)*qt`D2l%1EapGBq@igO zro2uxN(I{US{3!drgVw*doMBY?G$l7T%;Vx_>EzkjvWMvl42Rs`RYzD86tH?e zd?*Vz4G2xDIkb_~W_g=np}BoKI#7DA(U;KzCkz8p;JY9Lc6(OXM}o?QCI}dY@I6c< zDVsNlCxbqJmb&*u;qO=V0BKt3Vf>u7kip#YQ%72XPZ&0mWDAvh^-P6qzMOydl}S%V zaQO7ai{YsOJ2@_%Mqea2YZq{_OxJ(-d3Guut)*|EtdibyM64mHl-Nlhyoml+>u zjE|ux+z0zcOof;NQ3%507O1wN3{)M&Ma&=WGqOAfCXGRG9EM!$nQQFkcrXt?(ZMY;Sf+#~CSV9oDvK;VsVbYVk#n>|53*wTyM=E*uWu6~lmf=oNU1mO&pFu!iuPs4r<*YK)oPo-Zmp__t62y>P}&3-XQP#G7yAgY8VU{j~sqDRy>GNYgUzJ2=?qx_;- z#9$KcYdD1>Kg9qXGD9AAb{W#)kqshI4S$Hvmr;G8CNkQ;eX0nd+(GCz)$+#1=hvlQ z42Pf>6#Ks7pV$-a_1@k7!0|M_!6E;-YHwXvzA(%}8rlrRu(@3B-o4zA6p|)rH~ty7 zwp!ZdOw(1mYr*9g&kXRBrwH|!3F>vI^HgBmLR_wZo!@T52=wN+Fo7r!j<+q z8R?EJCZC;F(m=S$PT|N^pD?YyMNx1j6eWgrrJtGk_@)2}DF+cG1`MqCHa6A0bV(u= zDv~7F@x)OFzG;)~2IrqVt&UYmY)4Xkv0w6C* zXgcQy6PDIUu`LG5(66Dxf#Ip~;_Ol?kRBVg=Tj2MW?r-4JR)m^=zTvyG{+DJr2$iK z!H0136iuxz%TZDyB@$R&bW{|4Q#4r14rSLK<^)NpK~V7PZQ^a z22wYeW+g~6hp&_pI)_mYihvp3T~p@JLaOzFK_%~= zj)kg{{AC_ICr)mXJ)EF){Mcy^3fr6A8xMQ0xxH$8-0i~iazAg4@?7Stbo|#hRBFd% zBlSEE-W{%yN&ihu^5OPX63cEsEFWT@Y;7MYzRIb-{^84ela87i+4_S$NR;%t8TMy# z*`h1XwIhq1ltgqV9Ub$9ne=i1PQ}NVl*mD7lTNFyq=ccmaECNtyJAAl%6jK-ZZ-T- zBE5r${j%eC zoJ-9eb&_uyyJ5Km69CjZ-C}8-!-x+*+ui*BS3*bebEPaXvCIJGfDL(?);zm`(A_+9ck&xAmXi3 zy+1(MwEgg#E-fwKm7?GNzMlA=|FORxW34e7{#c09%Png51_)SaP>_*(+acjx#mobV zp|ioOtuv3xIgWqWUbVQ;!gAlg@wj|F5=cCmpec2KTIb^GY7aw*inl>}pXEU$#SN^P zIxA{rSIs~A=G2DYZ{OC{*WZ1M&T01P&nSB?udOGWs`NZ9q9wMIo?g^bq+n66mB6rxk z|4RpGEi^w38Vk+#ltEe!Cb80bDeNpES{cM{s5ZDz)k~ zI1uA<75joW4e`5}q@)H|b;zBRj4*l(%Vm!u(Q&R{TY?~0$g{e_clOYsLl`KH6b0G- zIEeyvA_ja0f?iG06W#z^Z?I;m#2hQee5j;0O1V*cuTL z5%Nur^kQ%Q&a3jx(FwP#c6kIJ;PNpt1n@fy|j#HLxbniCMvPa=qb#Oryd zCwANEUKDbm0AT0n+F_|^AN0VV9E(wFFQy3REKfH$o9$&_&_y4=?;$eF+FHeQ69?h* zNENU{^l~F3PpjDtq&Mi!fbCNK0wQU}bWlV|6fHjG3={@PUXNXTwMvO0#{KTyDbaG4u#Mz{8_QlTdaytv^l#M?fhz^Q0aL zoi`cMSKuRB*%nbKT8HvR+#mIBdsP<~8+-Qb*@tV+WZb`hzbh8onY^!cPX-O~5tnY5 ze?{y#X->*$IknH}DB0Pmw53?8sDEIo>CZ@?o%x~~}Bfc|IKRcL5hpe@Co0cUtrGWmT{<>YV& zqXkBv#nDs4w?)=GhHo~G9Ydd~magojvyVSrKc6EMphfr`z5;#s>1+;2fbsl}-J5Zb zmRZi7&=3c!05)8DI{1HiqM6hulCDo8jFGjHGtqKoWE2rvMNUcKh>B_^y2z8%P=bFgMYza>DOFuID}>At7$=tB4WWPIF_xxWM->azNQ{J>B?E_Owb1u)m-Oma1{=8V=A?jOOVKieRTu^U>lcq! z-=y%Tusp|HHmmIwR_mRZ%NE;ICr*5y(r9o}5*EsR?7?Mwix3=V;?tXMJEET+1dBE3 zgwnCbN5FZ;^N-s|OPeIj8V7_0oW;$bVJxPc%Ht!!eW{Wr-3|vHlap|ce|?S4JW-Fa z5ef+0q4zMnI{Dnweay_{ddXz81SRIcZ0PsEo%8#YuCA^i=;87?@ZwF>_j5(K$G+#r zzTYL&8H4)->Y|{C!2JWoPypeGXs5BPI@;&vAH`M2@? zCyW_3ht6lp&;^w}VV1Hr4GC`{hS`n%#zuc{>(;G`%F2Nsd5M9GeZ$gqb#)forwo(i zyvoEh13A~#8=TJ6c2M8r$CuV+vE47aZ@_{$V$Y<0xJoklYWlCCJkdBHu$fmSv3=10 z2J!ExmboGQJAT|_sa1LWaO?8`Ell(7A2=7Ps#Mj=v3&92{Ja~v^SXpm zq`>&Ge@oeLv!~k(f5i0|7;y~uITVJtE|BbZrw9a=1y2s4n5?R(;1S)V_>-ph^&{@h zt{aG7{qve1e)E`QGWH!%tQwlSG=$05uU^^M1JS|X=p=mz15p9B_z}^$?O4u>G1w5@ zWF8^pU-GP6Ts1oheJdln@uE6Ul%*{#PJvjiZ9gnxIhv7G$e49&#Z|dwO*XPW51#bQ zO-CF4buq*|UCOw%c~+Wjr6ZEStmO}}R;vyYmk?g7qN(&q2&k+~OuaXLp#@$j0EP=j zPhpcKyDX(@<$-lZ#h44Mr`GZiw;H8q1bh~f;3Mp|_*U#4|M+@_h=3qN34+wv)B6bM!boB8vr-h#fn=;j=F=r%D#2NL3%1@b6 zB|0(`3F8A!c|K+qmiW9p7;b#v6ag2}BS=~)Ra0;7ifS0po>GRg8{kaVO1KfmdS$Ol zXJJVkcUM?KXOE3$Ynd`zfL63S-&oBx+P)Fz>sOg@iIG4K{FQPHkLNs*gZ-rn4d$fG zXX^0w3tKYM;m*)g?hQB&tlp~?eCz}ySjqNqzQ8C~hW-1Kz%B)~st@BiKLLt|?7;!R z&+C5GQ!%~MN*YB zBS4GLl&)DLAtR&x^r8s12<{wMkTH9D&5vgm3?Qq6C$r*d@>p+850Pkk33gt^PT({^ zeSt0`8YVR~E4ym(^v-^t`u5-58t?%ZXi!A{JiMVUAUUme17YfTYX3XrI0vKxy@P^+ ze0}#1U>aGYG8fzPqwVqix*1UwxL6Sx<|e!=w`ttz<>Z@R`}`myV;5W}RGN{$dq(>n zQVqYRS^2Szx2En>%E62sw@m1zc{F!tGP1&8nmn6G*vvR&YjkZ65q5Hf7JeYdgw_ zBNi8$F(Ml({4<$MMvZu2&;7f1ACApU6f7iu#PhuV>-VwNqGXiJ6CSJUj(96_`gGox z7i&nf0AIi`|7s(M;|5#2`i^?*VBCd}2-NQ6(09HKx0IG_g$xOC@kki1+DT=|JQCcs zc{3-bHxo@iBa3l0E($z0^aT50IDyJ&I^vp=XAuaAov}EDUy*bWrXD>Z)}ss$2s`5S z7}iH7V*9(K=ZS)RrZgeERGH1p*vZ%;^`UJW?Y{rbT&9m-ZCZ(j5Dwe66j!| zqiPi0fNY=fB2CKZ=_+}7FM(5-AQg4}* zG-kem*EF{2cbTwPjAkRokoD@QE? zokL5VpP^ric?|46UAI&U7THk0f1lCRiAAg6bYo60wyTz`?0L5OG^hEIP}~*rQUf`i zr_Rw!H*QAB`+Dp43O2?UflC+UhdIx1AULpsF;r)?jXjTJkMd+VUVBdb+8EaE*wpFu zev@DO3D+ujt6knto7wifLpOM!b#B} z)(HJc@m^rl-0fazusLBI0akGf;`qXGF*za`7}R4i5La&B831?So@h>r>&O?c$&Ki+ z6jxT7VvEA6xD7Qb`lLYwXYc(b_rEU{6bX=b0qwYgJ~df#jTexE{tYy^a$@JV(o}d_ zU2r+7CsBM2KMT`n6y+d@+gb;}M^^SX56~K8F>>rHGI2s?uPIal->|kXlX<9O0{515 z{8>Q>AG!3N^PosHRRtf)%%Tp!coH_ay&=p;7%d@pe&?54xACO}OO+Au9{zM?6 zq#$xlqy}xcToIuODlniAcFmmHj$sfawd)9Dn$LsKpd=)e+hnDmsL5brxs3WTr5SlE zv1&W2K!4QS##ArK&Vku8FrU%Cbcybm{ZUp{DQ07IY`67_(E=;iO2+)kGmP?|#Aug_ zJw@qJ7==NjA?q~lUKS>agZ%7=T25&F6dQmNLdC{(PE#|)!($lz3rBoB*dtwTN{j2u zd#VF9b+$1v0<`*Ot;Yb8qqvuv)4~|F#pIbZKVat6j2s5HM{?+hXa;eyapPk9P^6&6 z3p5DMai}s2Myn-2_NEm^&0R1Pops2irtti?w8WKFK#!E2kU~RCOUpK53!wqza=10{ zgeA7^Dw)d#C=sxL=u>>t(2?EE>V2joJ2A$AgX1Y6l7T)_jy@@XUwr$kha%N8&=jF{_@ANX;8LuuUd z%}fUm#wH|i7tR5>Wn$tGHM;hhD4PRLrLa~1($SYST9B95lJSzidA0P*s~@U1N=6pb ze7&{cV5z+|=Kk~2jA*+K-im8JV=3DcDTtsCgk^FXSKBoK6Tz^F&jYeZ|lTl|?!1!6dV zqeoVD-#X5GnI~H2*?x>)A??c7A5&K{>mk-AcFXravR9dtB1m=>_peysitZ{61YIu>AkY zzbC(xOvaY$>FEJECTNWzy>s!6KQIL9r+OEVV$)#@Y~ zvE^?CYB6yNgQG6G6VL6q$=`D?!bKYXQM93e(UC*JT-Lu2drXj z0wqPm+~d8@1EG3Q#7axWbt;Hn@0l|M_h2VCXjEp1Np;tN*GEzFlsPfDVJvU3>T} zbkRHq8NI>2S6d!|B4j~Gs|JEA%sM&m>c5kV0#|(4+Zg#S6o*PCLsI|=Lk-PX)vXQ3 z-hqv0IjXOTo(MdSZ3(*BiW}w;%ahad%T7+3K@&w7DnME!44;V3&d$C*LrXV-O4O-P z=MpKT<>Ic(`g`AJEU104LF zGc`oL@g`9`!bP&*1EaC-+`gTlmM;E4apqI5T7@J#3nhi8rmU$J{VSr^=6Z0D?+m$? zsiw>(K|&xp9ONfa5fLA6@13^-qXH#lFRAzSJhPf_$P@~xq||o46{Yj(7d@f{-ZFh#>)U8+D=^Al@QoVrC?3Wbey`RhMCXLO|_?4I3J`D8@m7LUz}noexd| zM+sZP^Q?$SAvP)^I@9xS4Y0b}q|k!`0_x)MZ%nEyAC->+WKivW^|wDEgK9@q=DL%w z4Usc~NN56wEJfIDhBIS&0)cKe)!PdNV27|f4&Q(C=1pWI1K;Tt(5fvp-pV?uYd*t& zI!cc(EjO5^+feA*x z`4&IhCz_WlOl75wjdBjP;F)#3@GbpU!%wm0+6ohDc4lTzIYQfMxY!Vy{X34FLAQ|C zOfE5B<6NTBcx1;64gb~Rj$!a#pKT=wlMId!C#PeVfQa!9*{iGT+I!RrS8}ZS_j>@j zC?9=CMus6~kCivf1RMlwFS%w|mWFa0$b(U-rWRPs#LO&jt`qIY)X%as1p!g>Gr^S$ zM-6nu>POgv{5vw_(b3UuEXr30TN+W;b#?U~fKRb$Tiz5dEHpae@i;u?cV(5b^?`pF zeA4AF-M$s#Jf7a(-0(9HrL{dxjx&x#WI}s6)|*L$v@Z$`*Lkp~Q&Ll{2b!X8vbCb4 zWc2RIjMiig2ujICpSu|HqbgSNBN;J5(ocC)?zSR-Q`yXp}?UK8EIacEULE%O~ za5IXWnwR}BY&+c>)5Tofv7c?^eD0gT*0A7r^;gx7R#;b{t8ump&IY=h{8-haKW1Qn zu#J_Km9B1N3+F#S4}e6(^C{ zTSA4P{>jMr5&Sow?(hadbURV-Fc8c?v;u^*E$V3;; zB5Ynn45b}b0Y<24h|S4S`{B8lJ&?AQJN{Sgucp@C!%t1Kk;pkQhPHZWfF*MxCL9%?E$ z@d6}^_f={+Qqzytv%IJpWbIPD0b0^hySDh(#vgFo!YD#YaUYI!VXBc}hfBxA&PVd& zeMWeM@#&&sXPyU1s&o)y07OO8NIRr_@*@P;(L~(QdMeXjApPqf zs<~P+y10RjcZkF{27uaCJdPZ3EMk<$^QnZKsp%lHt<77uG^ZKRt5gEMI(71-?!f4@ zn#sufv^N>IQuNeo3_jF~mqb1K0|%+Nu!6_=HBWoQXW+AXvEblSQKkRTP(g2gc#U&~ zP}cFPQBRY5{wxM+7&KYb5pdKzoavZu@k4||tX=6fSd0j6um9yLp~-T+d-oICQ?zo~ z0xT*?z`uGhy6N%FAK?MPbUo4l2nv09fVr8IcBS0a2;|&nAH9)-&cWtElo z5Q#!|Wn8xGO-n?`xJXtga@l+HyT5ea=Y2Zod_TX>@Av!X=XQI)Z|BxcalM|;*Yo*! z+}C3iw0CizEN@=;!ZVAM5={dp^UCtfjpe$wV9U;>N6oPMl#&o3ihsW zx!cW|ZLZ^S{<<6o(cEfmOuO;^dV_VMRq)yd=}I$unRMvLy?uQn-D)_GP?<34;BY!A z;K|lQj;SB7t@-pco3ikLI3tf_9iZB3W}*l=EfvqJo2qjpIC>EEV7;$Xk@k9G?*tL_ z+J7mdeH6LG-XbZhv9W>sEO{eeUN0RYrSHYVB8&yN8Gw$ujMW>X5WsnYKqQi_?MT7g zDDQp}?-x!E4t`7#EZ(pZ72O5g$e0&QjNAeJ1FbY|@Je`oQU?sy>_<%F)!J;M}zfX97mr&G!a-yD{U)0=SS59vyp8PC=nI1=}p(4|w8O@MR3ftU79M zKZZGqn3y7QM}$MuCeV_n8dsdQg5%G|z1SHVQCWH-cQ>(B)EKDg6PfV!#OO2>X+(@u zS$`kn<5+Olkd6?uZBU~syl;k(W>iwX`jy?)T5QMa7f-9o@i|y?P#g8vC5CECB_9H1 zQ#Kx+0q_d?5LA-I)HEOi`@J7@g1)02W~De>)HIj*(F zI-!^!KzcEQ$hC~7iKaru33m%7^U!VH9QF`#p+N`Ezd_OOE(C;vL;CF<>Xl31kT~_m z8F^_$9$+*v%Jn{?S;J5;E7`d>pz5|lk*4y%)03bnkc?C^Vr?3OMaLDM9Ggr`))7MB zd}19Zp$kP8q3n(Xs)Sb+G&qNtQPZ4HfjEYEj$C5-4wkRmTE!+IvcV#j{sJ-8tj7OHT78dwskDHe$dl( zyQK33l3MP#jRkeQHhmtvj7*O2%D)I!xeW}@5S1d6oUf6c-Qw>s`nq$8#!zzhgz~!^PCP+hkbli>a1MqTqxVz()3*s}WfrkuDd`vGvj)|E0 z&Yxr==5Uo&WO{;kGNh| zk-~z!jDcYs)l4AgLVJ8w;h(?i)#1Pvpq4mce|VuGhJ2s}k+hEC+1bS9MyuB$IPG>^ z7~aKr0Y>gA0a)L$m>+QWM4bF%Ebh+va>aBs4qrcL=zx#C&iMIF&1WVfXGkkjr z0!ybu%oU;V*ki6J;;``g(h~zX_YzK*yhxs3rI27_XjBipv&;uCo&%JKZhs2j+uVoP&b{L6CH4=0^tdNgRM?Nv@;EG zcTGAwx=co*L>gVF2ETUR`IS0BZDlc0aOO*%z`hO-w(qeQ0w0*$z`u&p1%q&vXRy|f zCjbOe0sZ6GH7Lb!UVi>PmLH$cYU2Zs69Xk?lSn0C4ff>2FOt@Pn-CdiQN57Yoe2=! zk8B>`|1>&!`shr)>e45p^bjP%o`pv<2HWMjN}}Z#!_9$r3B|4&G>=F?q8^0<1o6f& z9}d156|rh|Mn?%mmuhC@cq)30c7)exe~X^NEdnYJpJ029ehydyWY1{^TMU8XUX$V$5xjT^h-Q^>S42rxf=r|8 zhHXN!%I`A>Dvkqk2G^Iq?wVq(^fd{mt1vPx>I;<%mHpr#jp_@O|FLrMz3}w`{d9Pq zRk5f*+Ay6^EeDNeFWUPHMEIR`F<4!aHlfT58TonoG5!tSLa(r&bD!L2QSP zwO+U>NTP=rS_j}_8}urWd02lhfvf;&Y&0PAgi0JJQFZ8?q1YY)0p&KL)4YJ$H@fL9 z4xPbP&Od!R%DTD>4ZI`B6` zdrKJmMN~F8LE{*#5z37t{cx|FB+E39dNBZdogogI>NksHO zX6p4JRdw^`eR3<-uJyU@iUQTT7<$2x-DTrfQt5ieZj@gjW<{0 zr_}r2%kqxw1)_m*?a5~~HN|kcpqE7oJJE+;Am3gqFFeUF|z7Z3LnMp4D~9yWCR;C#9a#SuLnUGaOOZQQ+!QX9(te_Y1` z?b)18`!e(thFZHjPH#bnj5>X)4|nob28PSfUmdc>7DqMedZf1(&@p9{<&%a|IqxoKl>1sKr~|DSO_y7!iqS#xtm~r1popu|2$^d zoa*}7MPrJ$`&}ZH>jrQRe1bq66mT-x;b6fz;V8izZ520(0ZFG7HE|y*djXl(-i=Af zJpe3#HScTyhpa?=%r=mamWa566)PWa0dlHEkAox>Bt}NpHzgU|73;^gjkx`%Qq^G% zh6aG8g1Sny3;PBBV%A|%3{NBpq6}`gDK|_A_reUwqn-;N{O?!)W9;k>*)hk9WvkaV z&v-cJ-52Ej{{Ol3r~Ln>^hcnoVelE^qra+H^(#q3XnKyZoe9BkcyW|dS+7WN4dDr* z5+c9V?pUD9Otq|4;31DMQYDe_UJ&}z)!Km^JUqfiA(*IfmgA(dV|c<3&pD3$`$b*n za-(gb*g{d=kGD1BLOtPOGbak#fBtkr>78j>t9CfxW3V{1+lu*!dU^`?EWV^5bN2E7KB8gX7-xUUJH&b!yzOYef=b zOSz{dTbiz#NO(wv!>me%EJ6}K#qvG#SS)4NxbwF(z=-IhpN9SRD&y+rU(Y}lHh*0r z10L5?o^E0hn}oy+<~|6hStEnUQwR-ba&pyHZKT#CloRcP`;oAp5?5slj2I{YR9{#%<)G8_XiB2fu9R#$xBA_tuQE$V%+{E+Usq&f7?ZyO@A*;Z zZ^J||t5xpcoh+GajN%6_etktWQrcn6FK728&TI3;OxfJbw5@U-wYW|gJc-J?LZOe= z;HkwEKY6Mk%`RhCTEMSW6X2^lIBziZej_klfNf~G5aCRNY6Q&A-7H;sP{#gHD}2!f zv|H3(PZ*evq9%jx+ z0+vWv?#A`aB48wkFnT+?v@98&10LUHHebFlX;ZdDGv3@#$$YjUE0QPn9L+esDZwV= z%In7SEUH*H=-C{G>xh8g=J`;ZqqC#P1yRTp#zs0lEjoxE>!w^U;6 zHYKah85ydhyj?S5L8(m$J})_8PcD`xBFNLt4R1c*G9g(Zzh~v? zH5GH+Gl^DCV!=+)ACOA&1=myk6+pD8qGuee9+WF4LA;yJPG;p;n$8X?}VBCUYhA!+rN0 z1RA!GU!aq`vxcz>^$o_o%}xytXIq~Sj&c<5OdA^R35bZikKbi2_jNlr_c-auducbk zoT3wIyVBM!yHR~VsLjn{em0BAL(T&{hH2w%i*ffL1xhAemqO6NBp{6j??S^aWL=i& zwB}^|&?y7v3NtI9!m$V$;7tsZImbL42>?JLXnqs{2;l-edZ=qfD-pM*o5 z&Si*>pRV3s)4-D9uKhk%<8*{UGSB;aK50jk-)X)s);#@d(`Ct5-3_J)4j5pD9XGmp z^ztQu3E&Iep8`f9qGR2JaS@;ZFJMp(oL&g0-s^>d1DTlzXN9&9aneeojt_BUuit*~ zC9FtLrn_KN)~K&XK^Y5P7pSMHW2mtVGjQ6VGI>0OLVC(-*dj35KJvv2eV7)3h&(xm zm&3!;Mv)E4vA$J6Y-ADG=ZZlanC`;=9;aE18A$9+HJ;wfP~VI`(3{yUC@2W4{%mDJ zZ3>uPLT6tUr&9eOj*>FgLePUp7(1&Y1d?^lVu&P<;r;Z)sT|0gI3dsdL|4TSJx)R()M_hGJQ2h$c&Q z8N1(WG&k>%w9^;2Mijs@>lm~ndBmE zY}i}P+k?Is^kmX8dGzYlK}DA2JfEPgo8u95!#Q3E)lu4)WtQ3-#{<&JUnVWKmOZ_E z0VHhFO3&M=li*CLe|#1joBR%~Kmr~_I6P^Yi1U@mRD6952`;i2HPd6~JIjCCb~ z84AH(8*ksaQ?hCPJFn|0d3hm)H2iZniaG(R^6>K3wePFC3etXR`ZOUMx%!LCbGCxx zs_sdiJUjo3e&+92n$z+l(|ZG_x@vmSL4m}P7%FD9em1!NiYm|OY;JvUHmyxz>g6Uv zfj`Cqe4$-nh1KBk^vkh8Anv}y3f6d2r1SD1}GWRXfZO_nBtS0|Z8_O`t9U~I^S z{$M@k&u))5ma_EMw3!ULtjRB`9og2gSX|w;(ZJiKj5_((y?>>9{Nxhnt$tW} z%wG`5L*XI8T!F*6Y^fxMP#imX@}A@N8y(ZrM~ER}!g+LnKX>oi)e0K#NpD-5eqx=u z#V`@RYZIS6_hnr}O9#Z8`>>G_lEk5_p@Gur{A_n*^nL?lPzQTmYD0?w#%Xl9t0?Bs z#=91br!U~Y1*%gyzm5$-@LHa&7UE``@GDT%KFu7I{ksEJ#cR|yfXweP6K%EQiK(T9 zcv$m`7wcQ`{Zmk)tI29_d4bKoKvM_s?nf1Py;el?^fVxo6A!mnI?s0()cBPi-l8x( zngYb}i--0}1!BueB{H(srq&9jS?HyVRDbD(!qXY8ubEmo72HN%O-bk!k4R3(7ZTg$ zs=Gc1e^UM5=-@J#dTfxYbWjMP?Aq|(jew$5j{RXoHDdI zz=kc|CtmHsOG^tspR`^dKI^byqu4~27B0aYQ(MOT)qd{FDZd`P!4sl+V%erYnnY!4ferjC9WR?NhGuT@@) zU8Ka;X;z0a`mQ^f26&LZDapiQCKLK2*wS80hqVjuyuxzBy~9LufRY@j)-5a#IuhZz=YtG00dV69u-_#$Lh^9V~ML%hSvc1sjR@i@DOY zmXpOZG|S3?_5R^htGBe566a`C1gqx1&T9RA1VTgF2j zIv6p#gO$Ns*-B?$<7_}uVZc;DWaR6BsjlYUKST${H<fC1lxC3wI2kkNB(U zf~K)l#AUZ%4wZH%fzvb|W~Jmo#Hi!8^YQgHE8k42=xp@0Ap3FFGF{3J>Hb!0uc0xn zYbqjXmF`Xr%GWTlul~XB%&>nQA5Ay&Tt#2qmYY_s~=v(MYEu4}9a;1S@mLu}O4@M~GQMen2#<-*x7i?Fl5jJ&R|( zbUDY9C01q8UUDTzTW z`@ODfetF918A}>N{r@D8Fq^f=FOg85=goP6OFROHAA#)gNqEWH_BS8GtO|>UIY}2( z1;{f{Wu-d1vJ7pVTNJjh70F`!%x&`;arJDG)u#53O;yZYx}RO>RE2T`Dx>!8W_O}h zT_2KMJtzN=Lm0sDjXpO~SHt*1OP8npoZip#?B^9c9}uw2oJMiVKxxHZMC0vAv5x8Q z{Bs+TM=D(B1R&visFd^P7K#N+-PAn_k}xtnJZdgSuI7w>d3>CYPJ+7myDrCs$65_! za+6a;Q%$Z0W2~r4ilW@Y{!#e1?c=ZO_jCIY(+Pj^giP472alGB2oYW-*)H7qqxY&m z2WPsfQAY)H^Uik8znYEf5_}u*d@-Q}3NMdM%#Ufin%>jt(O=PnW(2%thDqfM=>M(q zCnJTXYwuSVe(l^KSg^dC-y?m*z&!8B9KgWBckfOHFaOd2il0^>4^|#?vk^ zj~HWIgb^`>c3?ftUl;Jzh+|%QB5f-KzFm{Q0fR;Rjq}g%ShMTA3q7Kd1B=>Wzx1%5 z<=*-eOD!nl<>Y)^E*B!9Q3yR8k}_+ohGC$#m-%k$!6+a@==)_?6Jh!}3I%8U9JWFw z3;Y=eHN00$J9flN4V)_9%ZmEpaZ>)gaZ;HiUx-3Vpxowh^egq{@v12T$wcPU=zwtV zl#>Kig%|QdgDborfMbxC8D4u|ko?2FSA4dze17$Z=nS6Ceb!|M&&$v1DOaD9pSA6` zM|u=8DC7DyMXBS%Ms?abw6=$nFZt;|+#8X4+%j@syH7QCTXuq>+c)tCwsPwxVPqDn zyFV5EF^iO!2RD3ep4ykP^1%B^n9R94_!5)Oo&KYet)q31|8T_AtzBFF-E71)CfF=n zuVs1j-{S5N*Z6hCJ-)n-eo?xt3*V20x^umo}~4MMjp-G;x2ROQ81fL zh#5&O9T{@{dbQRz;C$Jq-zH^-rRImF&=k_-Z~xpkl1^Z2IaT8_AzK2eAqe<3%ezcS zTU2Mw)pf7u19+-UWTk3nmwB0w!n+w^t2JjM^JN|ip^+_5re+q-9dVbR$IcU9Ur4F# zyQ-wu&3Eg~$K0?!`(Y1}pJQGd6Ec$-!KgVrZ__-YOs)tl8yWi7lja=~T)vGuVlYe+ z3LwNn&@(U~(zBhTS~i?QxqIi1LZ~DW2rmh-;apKWzQ;i#1pZ!3a_y4OgKlJ#`@@H| zHwin;@el}du))@EJ@Cq4qNUryHIVn8`kDEO)~YAb0>oXo1?o!}C4zi?JNRbXS0 z#(XNQ@F|~xVFpfLVyE^SdEc&e#vn{LH#3}d80uqc+66=;{3OqPV(#T)5BJ`jnac8t z)gK~=9cNo+lAn7QR4hu&v{(cAS#4$I>By^^IXhs*c@5nK>T5PGt_yIj*J-7-s@rXEMfix+CYx`4=RZ4YUoLc4wlq4q zls@*Lhu{XHEzTZ4J?PpTw3Rs0E(XX@TFuv$KA&u6f>WPO>T~XYJwvJ6wntV|qne6U z#HoO1e5Ib^&X}|9q%IdVm zQMWV1k+$EnzszT<`^0y)wfBiIC?U={spJy${DLPEW7(uE8MTIoZJGnR_EMS+cCuJT z9-}jVS0SMJH)WEa9B;RjO++`Qid5rbb4Y;wq_4KOs04fv7IrP>LS6y=Jy)<3S&%XF z4LOOsSZO$DHZeky&AbunhgHKLii@uxYvfSfJWSSMo?|qsES1j^aB=|-MkQ`ZNg|OD zCWa}N13>}&b{#*xOE_0IAwR|iGni{yHOmn7BlWEju1jE%N&+w*MNFIIcb+MBpeh@` zLzV;aiAnPNj4}2xpvCyCD;qJxu*3Q1o;6jByr*m|*fOsw3A_~PdU)&l8#2x)gclf@ z;8cdiXnX?LlmtE{e=qRbGp44|G0z0j6X#4ah^PQ~j8(^Jz&y{$xq2RObneL?FDGGFKCtBguc^%9fmPD=}lk6ph{ z+kCDlpQ_E2QLCT_&)W>0b(heWj^309AtpKTb#c9Vwrw$04qg0~4ttNk-RI)Df1HwCM!<@ri9se!0&sr(kXq8#{;*5lQQbIaLpKE>_ zt;vJ##dI#MXWpY<&DmSBk=M=GqgI=i9 zoI0jy9pk)BvdWyylrz}t@w2P7ThRvfcPynttDNjR1r=JH4aUA9kbPintBT zuU;(=^p$H138;xM4?g^F+Y++Hz>9cRxw*NxiW5r4Q|ZHS_JBRvrk4{2QD@E!w<3m# zn~u5?ogy()Ud_fMAbc^rDYzIqey@v^3(g`mTQ46Lo_+`nd2+r!XLBceOq%Q0;13F$ zcHMfpWaaNS4*y>4wDjBFk}a>7Djr?IN4NCOBHiQmFMdD!iQVtp@2ZQuq_?cyx%e6t}zeKwIPaz-cfLzAQWC>23@#@1F+Laa*w zYr?@o0npCm1#yeb?J+Grbzw^2lvR}3B&{AGbEGL;!os@+$6&Jfj-m;FQwd zCnMd(ZCZy*lisb>i7c91c&s{BwmGjmWcD}VM|NsG&J}}wMlTDNn>|n)Q{qmD6RnQD z6O_;|&|YBRIk())Yjmj{ky5be>sf;ITlgB-XXtn&4RM*0kRC}&&LL3`u7Luid#Ja~ zT^^;8_*4=dF3aOruD4PdM8jOC^*ob2`K9WUFEhJ0VijQ6a6c|C60ak6}Td%xwfX{TrDSIE5aiFrQ6a24?Eg(ho*Bpiqd=5rvr z->p{cTzF>8ga`fSmldIwTKGDgcb)jt0d}G(TKKxMz!NU~Cv7e9r`Jvpy19j~SAn_S zT|UTP3J&I$k=Mm;oSAXvqwN(Iw?UK#;(_?Syu!$Pg7nv~F}PsKCKTA+a4t)yT2te8 z_9YfODnq8uRJIDI`Q`cM9?7&Vb_O^eAXVEK#(d7kys01%VlF18fBaChr(L6vmoG=K#o!TLAd)CN${vDUCNy{@b@MVlnCYtHu38F5LEpud>({eD^$QVL z;ikUNT_1tR0>8HoHFDg)5y4m0i0e z%`A=jy$Wf@ygPRuc6XGCkJH)F(qoskWwheP($$+bZMs#!SL57Uu}RuOn9=psRwm6i zNVHU0{Eyu#^l?NJgkhv9IJvf)0FhCXb+GtI8v-oHi3y1^eu1;V-sJh^RY#Y@qPHyeiBZojmG4+59UA)r(^ zBk&a~_Ca{1K^DtnDXuIX*6R&J_)Ko34O3m|4Qb_@w?*2M>=YV(6H6oXQ0HS544cfM zFxA=wdn@};%?DEy3}FPMhxo^~rJ{P%DaX$S%GV@ePUYGl2w0OaF6J%}bNU6HB~!?y`1!l$%=t|`*K&+ZOC4f^WTVn&uZLoSuMhY5Wn3tKmd~;Ez`4Vy z{JPGyzPSy9S@LkKmh-Hyg}<8e*3|{UT;`uF-ZdrgRwN5A{6$A?qp?ygVPi!-`p??R zg&ZqpgqmOUNc`H1nIh%#G=L?ms)^TgF(Uwp7@!S+3TNt2`=^-@dlo zBKNdNj(>mR?P_Uv)dPB)c6ai?-5yOg-pRZp-Q-NL z*42`1`N#Fok1c1~X>k+Rq-snyzqCVO|EA;wj&oh~vN&?9;4Dlwu(2AYDLmPmZtokL zXd-Q&Qri5{os&76`io*uS2FB|u?LBxJokXF(fDt`Il`+S3Y7YV@I=7*_oIo}IA8gHGIEo%F| z3U-G&K?_uwJ*gl_QS_6GAYFTk`NbHKs-(2ZNAz;v_6NhBDz}Sbv9xG@h_@cS{*S#2 z%e)RqKTs|pD)A5$U_t0G6I<*GV+TW#%7Fkh&-=kkxhN&U|*ta^Zfa9V6@L9QBr$K zPe^;&-I4j$-+yL!2Gju>l>zhcoDg;s9=HK{K-RbY9wWuY<$h=fi=fE{9}2Y#mK(H+ zFwwZ*ZS##a72Tp?MZcLxOK)jhw4*$CH^bEaZhH)i0OE>h##4^FLa&~WWCvt&w3f7# zD^I_x^P~SU1LLBOW*Rk^UDl1NmbyEqp1b8^ebV0HAI=usTrC22rxI`7)BnBfHuq@8 z_y>u}HXX~a-$uOU{xXuUP=n1?! z;uazSpG(h^vx1bIj$J!<5(K%eGcv4Wddoyw4E-S7tW4CCYVSU^wXpvfUR~xvB&-K{ z4m{AWXB^w6{(b}K17o=d)m`BSexabCZtw=qfa zHu|w8%a=nJ>GHvQukFS5_iMKl07HhP9S#}@JYJZ7fnukk&DT=}+}lZV)UqvXDn5fJ zNviboCr1I^M9M;h;BK>W^=fm>Z_PO_ugGVnk1HOEBCH~I64aJqLo;g>8GS3B_kEPY z+|s+uj!2?IlG2hTOSF+j3p^%l2uCA%srnfRm+0HSAFmA3bx?qqC;A&uvDXUNPbVoj zi(x~EkmZUxxi(2T#HxI|mz@!6DqFcQVO_G^YL8%^@130}m53Sk5C}sP`CtpT^}+3_ z_A(B466etdFpYobger0OsJ2={q&}B3u~NEvvg*py<{WEOe^9a;p!}Jen;S9GKfc6m z$i8{6Em@8Gd>2)=!r0N@NvrpM@*XW0X--;T(~OZNoq&L+!gxfQVytHS1U=Q;v6sgc6aSQY3{dl@t|M{vO(>4TYIRbRT6uYEzP|Xt>aFrUk$yMXjTgSX;@MA=Mgk_?* zO>F!m=`67}fRkUyqA_=%cTdcJwht@%{^9p;tF=WVqyozXc^Xt)%=B%FJr2 zRl%$<56?pv^I{Zb6U(V_Y#8A#psPSv)>T5uB^;qOuEJtl&W7LlAzTv3GN{Sprkf=I z(y^6IuQQU2#?Ieb6k~KUwY0Yi&j4vV-xTApP%sj@M|fyeut*wkr%|_#c?pW z9OWKXXKHd1fu|?9GNIm=uLcqqrZz)Y3H|=(y`?8&u%9vQ81}65g9t6h{(X5O#x3T~ zdKOD(ix1G;MlJR&7_12_9hrieB>E1XWAaEG!1LrQr%tU*L$2dtoqEQmQE|Q3uU}&o zD1L;Dn-0M)mau&f#!Jm8Ao6={kK70;Jz2$Zh!HxNZ%AYOv(xQm#2(c}G{l{EBj z^BFTcXxa~wSgVaszP zto{`h{b(5ISojTBq&*D`l%?PqGL5fxPcA=zTA@a}K*|mT))qz~Gdhn#_D9~{N0&yG zgMTrCup4!FwNKfHkRh?)azM#Is)6sZ2#z5I16W3r;KiF|Lmek_lchH@i+b)5_fjnilh&OW=w{XbDQOvwUt#mMvpy(K#Y-!lN>b_Kg_z zu?16SPh(I{Xef&gB97si9#_{^v%lkvS4#6ci!JJGcArUjnCiRWb^*ZOb@8BJ-Qy0Z zEp_U*ORewO-wzqRU7gJ!QXFnkH#0C4DaqMZzgjC?I$Xw=EZr&|mXl9M1eQbdg5sv3 zz*R~p^=>cv@ zEAmKknfflF0Bhaw$-l6FJST6F5Up77=}haBIS<6@*Qc;an=qa5V8Y*tchlr%Cyql! zTY6bNkBCs1;JmuX^~AES@yLLpWTC3Rl+vwg)#2N4SXeAnb9KE_WVV|7LajGgXlT`w zY^t&*)YkxNxgPZcNP@~{Dg5uku67DLQ^;~)nQ&5v9p8xy>2OqyE(90+f;hR!C29_W zDosjEyC@b6d_KapaFY*&*hG36tj)R4;%IQTINP5D>j6;jhaT$-`{54xm`4Fy+T6;K zbOU)vB}oz?DeobTY07h|y9b-iQ*&P-%Hc3VjS6TEN8yj9hu9sQ+8q3+_Q-nKvsRq zjLQYXydkx8SJtqKLXA z#UqDYJxROUOgUFpUFiZdfH>~6B9A}DPH*{b(W~x%AWB2Fk!pGG@_pV-WYg*XoX1^g zatJ;X|Dd3tz(8@J?GV007b}?(fA!h(JUB1)Q|E^I0+{@@a-p!k!bz9GrKk0BWXx|4 z7#0qI$TN>nB36|amI^&ncS$nw(8%|9B5$iPJav+uKL)7Pt9AeAz8-av z)`F3BMn(wC)~g4PE+)eNAW1`tCOn)NEHDc{lm7kb7HCZi74tfpgvvgC4B|7mvw@47 zTgU2lo9}n?)xNr1yVTUx;lwWnMnPnst0ib}!^v!C<(e+9p-UK_fs`~-^L z_KOG2_CAlILh9h_>oQDGUb>F*j?tu>FloSm4)Igz7MRyX&A zRAaPxwz4}a?)l!C->wlkl8Xio5PM_c>&k{{jzru$so!j^&+GM(klY1%f>{9O9`Z;& zee~!60+A$le`WCm`hY0cl%dgrdIyPgj9Nk%;Jve(&3I4!nPq_6*)I{v33Oz~ZQ>|G?sc6)5U2gjX0u`xxHPY+On0u=iMESz7l!fJ61j z4@!e&o!A)!7m>zoUVN=|dL8EDbfY06+9&6uBum$svX(7o#ai2w&U8j&uB3vH&>f$$)eF6e}^9T&!{>0C-IIu;<7EASIgu;h7ID1l@X>> zi~?=@x+1)B9`~vX4^o>BWeTkdWbyQmWs-Eh0^jDuJxkI@g-E|il4X0(D+MWsnZ3`| zb#-+yHwER@A=RWUTefCsIE)$Ed6-Zp|oQSE%x_7^BDD|&qJww>HcJgx~pgH4p)*g zxJtE_t@Tx-9*SF5s%q;H)SAdt)Zz46B0}Q%rc!UW5_+zjqQ^o->^zKM&hwy?m)xCu zI!TZ=MOEvKot}ehAJKhB-BneGGnTTdQxA$Cu-a2EyLHa{#Z!O9%yk`l8He)RXRm9? zd|Y~k7P~B?+MF>JA^kxpA$@&)-5B;b51-Mv?l|#=G|ZA`)UoRJy{tuNT<8}$|Muro z{vyw*lwc zh*4BQYBlJ^3P&5m2hBUxa&4W&PS*+^4A1_)1b#v5Wu-MPhv2 z82vt$`5Sv0Q*s>?XUsUnj^*5zKL;Mrq_V($QMu7!HM8MGbzeMvk0?i9aCD1&2 z@gvKy^vdBq&1 zc&WTIrjCss+`i7S71jWcp&Ly3+&_lavTA7*%6OB=A=`(aa6DaIS2oj~PN|!FRp!N! zC#|ku*w`G?VOrz!Rtg}UhYR3_o+l^BQL*|pMRQNSo7;$g@O64SbAs1Em%-+p#RE$} z?2#pZ*&}J7jn^z3Mc0;NfWl1w{G1hT*}^r6xaH8Equc~4K71yAiTD|p76aK+z=D@n$9X9I?StUuagfs zEIT+LlW>5j>ALG`l(jS;v+01MW;ON^qJ)A4aedfFg|p zJ9l22LMd8;YZJdC(*5365lUh$H%ho+Ut;{tYdB-WDvc z=9`h*&8?N%6LW*XPZCp)FfxQ(gj@Z23|8U20)2ec^uC_Wg?Z;3)@!Qn=8TSN^ez)w zUYcga>u0h4EedmutII~E*w~6D-s};VHDJCH-$?e&rH10|L77@vWT~jQL4F8Dg+`Ft z+l-|;`R5HeV?Uovj`{f5AVg`YO>4HlYtz`s7nV#>rHG6bvcguR1*};-xcuwauSj{b z2f|ajjo^6f8lkGUGQjSOMcXLO%q^xTzGJGeL(O|1B{1tBmwK*QU1U6P;y6Pa+ByA{t zXTyQq?8zS0ms~wvlNnNZB&N&_(N$Wv+{?765*}`?0%)lPmC||!f~ClI3BnnVFJy_> zR0CP6in{@!Hz2yP4JHE>wTBrXn)GLi|RrRAJMT%@ia`C|B0Rv zj`?-#@=+7RBJtxZ4g{{N044Fu5fSQePgkcRFEg}|o5gd7#Fa-Sifg$PqBzV>J~GxO8}5i_?w?FB{#ez zI_vfK6Z76xuTjTJI1>jFzaRo?=_Dzvbz2v!Gp7ohk2B)AKSyVYHjP~LTDWX{Ib+rO z2;#QuAl|zxK77{&?X#aC3I=E&AV3hfh|J{DOf7D`_(^l?cgFlV+;}F98JCD?(;6F{ ztle%&1Ane^Z({TT_2;29OA3WDJw075?!9p%dx=)_Xm+yn^H|^9oRLc&9f z&8yv<6r&cd6!&0}1>%BQ8oQ~H2k#HM*f92pW{vik^?fJ-hLmwLvn}` zS57r@^}b!P!VT%ngU(A?PnGBLgs7`78rb+J*LwKaLhX)NgY2UG##l6=J+Zm&nV=wc zI~}imUMLgEKmbT8*AFowR+$7e7=tTBw{UTC;^x2S=7toLFTm~^C7ByQ`}q)>Vh!z1 zX3zaGZ7iNdik-ll4xOPZgg74OiUIHQ zY6!_p8XwE5Heg)BgkKLL;@b1aAAAY`jGAmvXdu;86J+U_$$n9*S%SUPhst@m11`Rq zRkX$>2qF#SNh*p(%;mFophp0w>}fS0*e|>szJ(b`e_yuG9AroNpo3nzS`Y#sUy?kO zoTICjZlcQ|(9h$dO%=%dmo+QYEKR@LH${7fSGih((2cL&!gU}&+^y4o;k6vLbj9gs zV`GCbsd|jugRIPt%tS3|xN+fav8rm4mm#T3^>LV%eDsa1zb&A>CF$>I>l5l9Xshf* zm>*x_12*5k6#;)JDPCPJ=Ff{63D#Ah2<+Pz3HcldKny_LxY}~zuE$;bgI5`CNAkxN}wdui9c_m4hhab)z@O;-EBL>f_6 z_2F@qP{phfZ|^n`aEJZ^r?OMGu&`A48P}h~&m~hp3DishbgGYTOA6g67*New5wh3L zVfY!Bnkqz=VwOM-!A<4>Sl^fZZr?@BfnpjLI0pZu;9|kUbI+q+mv2TcIQvg5+bwwK z&7WBI?W-|4vk>{oNJ}$PjQ+D&Sv}pqv z&*d%_cE3QpaH>9*LZa>mBFyY0=Eo=*rx!EqCOJNMlw=djGyw!i?{e=U4q?#t^G-=? z|MJS+YmSt1WE{@EqObAWs}n@9;vxwmr(o?yqKLzn^IfiL^UmmgEiU`582I|H&TTI0f{kkMSwDl{J2;=z2J3z0o(_a!Whmi zSmQl9?cHLU9lN>3i1}q2IZzRRXhBUqg~3zncZeBE)Co$B@Dp#Ik|0Mn-n^!fD<8XT zjSLN8Lj=V;_pAg_QT56LDDKam3R6FQdKD=Ip~~R&5KMjv;4IyC0@V!(40P)G%$FU0 zNos=KsfW#6;prg)m^Hqd>_Z=N1Q7p!fZ4-i$|iyabn^)9hvym?dj@2Gh&qD|<m+yQehwwfJLnoxyP<>-8t#v( zt!=pR{m$9AIDJ+P)ri1-Cxjy;h2}{Cx`B%`+*P``-*^XWk%T>xTOWsBow~08LbF7{ zA(fMe?2zG{C=P`>Oqi`cs7qSD|2r{K`i<;Xn|DSJ7JZ%m6WzIXX9aQZ;w%4{Z&yT) zcV2dU$%+c*Bl9uUxy7hRh&!7J;1(ecei`rlIp_z^c*JvvdkwEeI0?-KKOa@)Gj1IubS7_Lr3QITjvYsWX}u!G;dY35;@= z5{g-fj+MpK^PNR=_Lxg&G>OPu;w|nwVzW0H2mtq>5NGptL-Y90%tooh82){{sn&wm z!{Mt?K`GbeV1{V{D9pe*A=Trha*C#d)+39p^(7p_-fE6q;J}XmLdER=6I49&cmnDSkb;#3GVj)v{ye??RLC+e`9Om=;4L+gN~>y zS(E9Lq_))GDz*Pzh=Ga8?4f{qHErXRY0y~W#EXqg!IP_ReXRLTzMN-CySBGQ+p)>+ z6hxi{R>@A+y_#+s`R=9qs0Du4jLo>KMO6D79-0Ocf)PPR&WIq8uF8)KocvP#6~O?CnwaA zE;9QsO!aBQpZDSwvFg<^yEr+!q4Cg9W&VH!CX8t=D+}f)pT=N?3m3RT>s6&beIioO z`7~W2q4cQPj?Cq=x%6&YzKPsxExPiglk)W|Ifj0WMXfB<>G08^{5W&$=A_!dr+AKS zlCw+gIzBQc2`)PP_U6AWTk*(^?2P~CSh4IeEk~=faf#}wZW7st%=GhSc!o<7lt(Df zU(aw}`Jt-g8oGvM(JQTgJ3bcwagKm-SoRmd;Lm5Wa2F8=&9mmigl_W+9lncc_aDIK z#JWU7$M1+IGB$p2_AxOs7;`Gz9dDMcbE-szfbnC6CW~#r*Z|SJf7UbFN2gUhuu@Pj$9~kzv{;2bjbr_MfdB+Y6yL`VK8Wra4 z+qG3x-Ys`P`bd9Mj)*w3pot>J-9pc}jl_?1J3dWrVjRfZy?geAV`mcMWz~<~?|=F1 zj!>N&el9@aZ<1vrN*5MQBX_eNu}<>UxN^{t@6#PyQ<(5Faf?V+e^lvDh}*7~njJJh zW&HZaQiv(u+zkjwbXmt?mhxdjTR<@NmK5sZ>3`i?H3zEAkyacKiT``B9_aYM1S$dl>et)~a2j~M9HDi@^k?+9N}=OD^{iXkR!}*V1Yjp9Efmy0GA@azSy z@!77wE{YmzM5I>2u)Q%0D&x1U>UoZ78!u&VrDW&0FNf@MWyU{cmr3nVy_yE3BMq=U zCM#EwyQP(>_G3FQDSFRk>59@)%#(pMem6^vd?DSDo8L*JAD{joG2WuOpBV4io>ey+ zG94as{x1<;A-gmQyEFp+9jk$8~=9QTzD@K8CN+iBMf1 zUc2zZ{H0B2~P!+IWsYo6;@af7M3k|AyVjk>~GG%ssjSiTNM3)6MgrlP)cwF${IHMgw zlB;@G6rrOHjYQQXpQ6XzJwPZVH^n#uSd9zUEesfS8|>)lNVjZqL|JVqYYDw$_7NK* zj!j94->in6hTNXnt22WqRJnHTIuAen`&jfRe`qf!r>DWrfJ98%IqI(&eq{7V<<0q8 zzFN2Mp8)zD5yCjAdu>p{WK%y5^gIz+AKJ3Wt^Ct61E( z%6J%qB+k^044;FPN_7mGALy&G@6%5DKz_3 z2C<#PYNC20y&msu88WK;p4Y}|IetLzvv-;J7YUDS>k0g-VM)*v+zcLyT4P6YpZeUn zQ!lXLRC?pKWI0~q%Cyw7&56VLqG&1EnGBIIEcQ1l%E`8??TS4%s{) zom{%b9?!M~U1D-OG+MAt;;56_zyE$o5R{sQlWdJ|s{3BOdWGaLBr#@Tl-9_m_LUiA z63TG2rA`nJAlfm{rc=Ri&*&5u6r z9bSCpU$_L&f;!t!B!+dNQn0l7Ip;p**ya`N&}6DeZI#2T*p zGR8MF`q=G9wS!o*fQ?G+&cw7(KUF7o3{=YRH&3^TBE9DI4S@4z*Y?3p^6J%PuIG9m z?c5Yv2~`!WpS-f4)&%tXYa4#2Nj_@oh)q9Z2a@Ri7k>0jzFigS3($Z2|dbuc~aJ$w31R`!; z#19r^JFa^N2Lv^ndE&1aL4$EIl!$Tt$7!S)qdxa_`r+Kzvll$w1&*e>!F{EsBG36Q zo?N?G$jcip(C>SCvXD{rpbFDajM=+>kMQ(#muK2QPd9G7bMIc&N2tp1s&?<#2#`@d z@jJ-aq;BqqFfUvQJ30AG^G0*ft3Yat4$f#Frf%$iq_BM1G7^frH~c&fv%qmv-Yz~t zFhiydNrNdT`{((C;dM`t6nh=e&n8)g(zZ1g5KNR}3~dVM$5|AeN+<}Tq}$tGjF>b8 z8flAFpB8h%r7-quZ@^7OXRxW``14(^tW^q*BZKbMr@)U?HvP_zB&~_9KXU$^Fc{Sl z!z` zuS8?J3iau;k}pepbkApKjC=TGw>?k)cI1ATs8&`eI@1u$YxMD2b`v!{5jEH(`g47| z_GRj1{ocPY!9|M%f7z6#%cW!o_Vwj;8#9(0&)4pjdU22j4CHkT3@+eF5<^}wcp(}y z;BH_yLFB9hiHI?LQ{2S!xs?LL%D0`Ki>F>?g(Ov z1bklrzcxsM7(Z)1Rn{_%3Jw^=%3|FB4+J=)nuFqc^tS6hA9S zv;4DAz2{fd@!X=KeFZl+QC*76C(){9?y^z+e*NPJ79%A`Q_e%%M1nukhixzTDqhN> zE}hoL7C4OEuO8!${Efo+`^$fWM5TG17P!X(*OYAB(jH#=Xo6f3`l68v9u8EE?Cj={ z6hO0VIepa`c}*(ah|DuQALjflInKlF*(}`8YolR5pTGL$9>39USA*J98Cq>^8-~~$ zImP;)XdVxGVTmU9R;BtWeqQLE?J9nta-*bXej%ZtEgaXRE*b1{7M z`{jg@+_P6+H3PR$JnC73RKPk}D^i2!0G`Y^(?hm)D%?=R)Cg)kdKaxOap7u zutZr7jY&p|eaeJU9HMMeWrGy6p{>7i`7-RWpM3;tcIC>IrxdekRFMzRIzbx(@`ch0 zPB*K>ELDl1YI9qA#TSVx8G~^x#z!>QKgW6>oAO&cE|K)6%TeQ-*`B8tBR;QE0TtL( zA1`^C0?i@*%OKGMy1^q?FVAlf!+p-R?p)5M(TcDKp8%c$VoQ_76dNgf<{T%ihCaET z>gtJD6}y7lwxK^0}YJEnHK( z`%{J0MfKgTBkhr2+aLTFkXE?m?SDdAGGG5aq!qTzns@XmhrTb*lRmZJ}^$5f9U=54~l#d4nT1Fo8aF)c|h4#M%Sr2-8ABf!tI_15N z!#kX}zv>RCu=CUBJV;0mS~_z%qGSFWP-~$rYP9P6>Ny$Q#@Vm4Tj*QrWmN2cfJ_yD z9;qJEpnCW&5DNFb{Rg4&JMj2jPWb0a=e_9vDXGx^l;O`v(*S&de?poPCF54Hzw~w# zO6(FXzkdS;JKv-#0OrX5)3;IZ;u6kP9QzAPWzt z*UGlso|g$A0oF{W+~^3fCXXq{M*M=F-gb^tslw6esOg@sQPVkuCY2S%rG^k~y4f8& z;O{sj+r7FXC_#|~5VcbN6Fj}Jl2%npB$IM%=1RJ=3o9R4H{GftlCjb^kF=cYG@z>! zH_hWiy%hx(&0EOfc5~oc#Kz?J%;8rSP{Em;muekPS>NPyci*T68SaNBmC#rI3<~=7 zsd6C4glC+KSs``=c*baoMr1k`#h5i==WvrQKvg^2^3toiU0ht^w*AzzrzNRL>L*k^ zLdnKuwch;;@Ut~k?oog%sD#$XZe4SOa$`4pct}D}%6&wSnT9@rG@bdN!8~pQjv_lq z79O3tRc7Zmn^wkp@=1Ao4veC#?-hrt`Mg&A)G*<+oxW}C^V?fX`1*%EPBhg>vIWf* z-f?TL)|U|+w-o#ty}1*d%}U+!+@HjCP+jdO_y!f_SMB?UJ~^Ja&6q*3mZEt$cG%e1 z817=A1z>prmLEXx$*Lz)m#&Q?c)_D~sxt4ixuM0-Uz*&ZiaKZexdCNP4~TtDgL=(J;FC4%6g^;gi^CbNTI$M*fJKLAZ{wcKm7#OYlwQ({_F>RNAZGy%EJOhM< z{(k{z99Zf(VBL+-IY=n8#P!QOC7YUjoU1e z1ummO|Ddc`{Z?WZ&EsZ6mq(kvYho|@{AytErZ;wi3$R*!CR+KSVtfkdn?|S>&o2_? z=SQs!2~3%#TL`yK5fPDn`{wai$Ya-oy95(6Gg7}eX_L$NdEgxLh3KxKgrj>-h_x?htL_=A%LGQBqa2v z&&Gqr{0eW7){)jUYdVL}7Qyw|T)M&E$!QjO+MmVJ^lX$L8`}!ck13)eIjDYkC5~}u z(Gkf5Dh?Cim6niO6^kE>?w*MMAYIb>xy8U&=4{}=uLr@9V)C2)QQAoQW3=8`~6 zJ28@`=$w_j$Ne(?3-^QKU1wY`o_%DFM+ltU56ro$X@p1Pn8n z{g3N!Wdi6UIe=B(&tEj9O-=9jj#A7_UzA_>j zd`bZv%J4DG-}d1yW5ANJLHERlGzf2zSVi!%`xYdz9&=xy zp#|CY(}=%XAl;2&kG!06>&!E9o>W;wOqwd?JVi6lOq_^Ke?9i7F@642eKF>3L9Ll) z8w4e92mJ~EgxII8t;xzrT1ZSweyiwvdzzJtVtH3~d zy~u1c6sZ}<8w1%unRwPsYox6@I6Ik@uW93$GI66tyo&CL;fS}8;=@M_b6EJ9lCau8 z6)VPmNSg+d$^+$ZzfY^2^_9fw*+SdKP4xTOe+er8zCa0!E&N(&e%xVv->z0)rrdKgGjsaeprcXu&dn7p?&3uR5i50w{^m=44T6%eU zIzv67Ia3kHL9P4b%qG#tNy_$PMD{L>8L_M-Fe#LwK2^*|`syHZirDl%aV+T~t_-RD5r>>ZUa3fM;#HY&4Ki&{F;t-!8`G)|P zX(?8&JS;1F0$tSD8@%q|O-OTq`->4hrtiBDS0J3UeoZonoSBPF=i-Ih%%vRcD(+tA zA<=4@m`Y+K5qM5WWe*-)Qsij!_Tk!UBUox<9+5tI%H*hRc~I&fthrXQ|4Z;FB*Vj& zaXNz9Tv;yt%(>Tn_SWAlF{HNB$S1+p;t1~1wg>pd}-M1j4ZBbf~ z(LS@PG_}D)6AIgEjCb*i?(VwpXfHaoFg5FCUa`+vx$rBnuil1yrNyz z&*|(ujZB&pA8b05ZU6Otn&Ul%oh4?c3Bb34aj)gY%bC63$!(bcHMsP?3v4Y$xZmsj zL}Nqj!7$W3q=0vzcL$$u1Y%Xv68wmi;N|nG=%aBOiH7lf-gTp|x5Y&5Gc5%FMmD27 z`a?w9HkK1}{!NPRx%{ZLptC^Xu&{Rc*CiBSzi+Cy>+GwmCH$-B9xez7qiK^V^NQK>2#Y8;>^2RC@q`v!(s9>i*sdLF)g)gGIgvMkX(9|$&aD(`RL@VPu$3K=c@353IHAUL^r zanbl$Jr!17-a$W^tw-eKqH0k`)1ReNg(N;!9$t{Wy6=YURUet6Uyc?pbt6Z!T~H)Wf1j9Oc(_6&T>Z zf>0#8e+xn_`Wpy!kpQ7C{scmiJf*?pk{tr>uBI}Rh5D6?#R*9xsE;L4Im?N)z-7{k zeFg%><7Z#m+mCg-7Su*;^gEVZ?VrBm8v0MulZ8t**ML3N#Fl}ocWb(xrw*1r&a5!LlH-wQc(isfC(Cj+X=- z`!4mQvA+c3!CdH@9rd2=`+FY)A(WQf#*vckPQw-YR_bLifwcaG^lj23)XH%?pK}!6 ztYBrFjA-~FqLt`w+WqP~BM)(VjLG!AD~11{qF?M`rJE z0*`tyx@zID$upc>l!u;Y*Dg~S7IC`5&4hSt7oAXQgk#t(o}1X?t+#zTO!qkMCboj` zH{L{qicd{XZ=TeEv+>JU9^iz_C6 z9xvd5=zTE*ej*Q#TTZ`rO;8vg=jJmY5s@;ZqOKad0wp1-45fCgg!|`f!}Pu`^%wrR z`HpH__MVV4+q9yiL5#ND%~_qDEn+BJZ?YNbWaZ_fH$^NSj$glk39kPG6a2{STO9gM zSJ^s-u0zo_3#_(Ua3Vi7$btDo&Y_igl5SIYm|ID8EitfCUS`RK!Q> z<7t>FqHB5o*JEw?wcpsO8GHex&HsYvx`2uhgn50l;lJ%0&c`4=+)N8A(evkbdlC+L z)Q)}8!AL+B1|44HzL+B)aRcs(4ZYZa^VAigSy=VbY~FlYOjBKD3|6|eeLdlBHSgqQ zWkuVB=)~5a>B1_G#JK7)4uXwu;McAeqT@les`1@_0D$p_{|taRH+{7cK~fvECXiLS z9V>;B1aPEHy~oBgL3>^$oXJ`lvI3j-=z4sxwG4ZGX@kAZ%6HAdngArD%+qfzu${~t zC5p1_+UuV>%Wsq1#qKJzx8NQw=rT#%ueI3(aq5BV&mb!Jr!vzzYw6OZY!1j$!g{-Y za~X689OjP~UZiTSid^%Y(QhR)l@_$NDI4!DAii98rJD!KVJ0FO3r&epte938A*QNb zEisH{(Ae6)Iz*>oRHp_?Ww!jQf9Nh33I63t^;18H^snwF2YCskX zKIQX@!BRl9rtSH{G@dtZXyjNKfdcFIi7BxkcnnE2b1Kh21Y)StTbpG{cCFvI(bPqG zWnwK5M9_HQiz);b9BfLWm1QJ;!qlsQap zw{M}(3-jl^`2oy4<5=wY7I;wj-q9fhUHE6ot@^VAYHC4Wriv?GypY5abM-ZMcf^A_ zC#CA-(2S>oF*ljZA^s6(m)_Wml9DtMQ(Gp}^1EmZf(K{|`Ex(#>BT67y#qa+ej1UJ z@ekm8m@bRK?`&GoAya6Ac-TZOHE}lGhnhh*A{{n3;(Ur54sf+>itmO>@#599quTA{D zTd4_P^NK$KY?3=)`FLh*%^Cgb&-&kW(!Y6u;gs|EBi2azx=bH!M6m9Vo%dj2=iuSl zXWcEQsTtyMK(i5FZ(@hnUqq?>EO6e)#@-A*IA)J}rqBQz=}JF)q{cnxMr{j>ZFpv8 z#&qRJG7h|9q~OfVzw2#}i3_xxWSa%~t~-KWei}Uek~lLd3RNy$@y$YKB1+mYbJyX}Nl;wBdCZf0 zAH{c3mLrw5O-CUa^oag5env}3H;cb3i48g21u3C2)J^bhI zrh5SRQoi;7_|-{8iq|OdYfll$mET?HetP5o;L?GLwCDc}mMav+Dj)R8jb~3mfDK@o zYj^){p*>Mr&s!gj{|BTf{$GKRO3;#;+;?OZ5y?$T@}eYiZ}#rZj*GiNISgCNjy(Hw zc4DTlBha;}70&HRFhpt6&(s3^cK$jz`G@uOKO!LK#ri@$koDz51#%Sm3#es(sgONa zW}a9w&@cLjLRLD=_AxggL(SAv2M!**JUA59eLCFKSjIkC+c?08aa^f!CS^l2*J z&gcuU;DntQaZ>zDggUTMHhIUFrshZYeYc04k1_P=^29$pL4fnf$TYapmgcLIz9b_0hY=@)(a_xisK@9=uo z-Se@VuqSDcmZg)3JVEoYd%*_=;R+FES~@ygb)U|xXXd_kCROw9YsdcM--WI@O!MJk z3CkcvO}_hYC{PnqTrGS&*Li7O4{5!LXt{AWEAg_?*`NjPRCd)51H07kK75)37I!s+ z><8#nS5RxKDyvs2t0xw+rwY$|Ig-RiShnkPKULNh94z6~)&GYkb%T7w)FO1(B6@&g_TZH&!zQGL^NS|7m zA{489Nn&hVT!6*D9HJD5rx@dg4bP9)@7nv_#jc**d9*jpwk1kV)7lvWu4rRG-l#l|9t9Qr9$ zK@0l9$1?oE$Evatt}@WuT$fIW49}?ldvL79CEV}7B1!F}|20YKJ=d@54eaOMIrdKr z%`4pfHsEi+wn%2aE{(JK^uqT0{~aOA$sY6)`x`=5@WO%HLbDObJ9ZE4c*`M|`P!Ou zn+XuQrKrhoX+$ zzV9~Y=rn+5q?sivSv_-dk7yUM%X*D%;IZ&;11+UYGwDBcqc?x(MsGH1zuNJ$ZdB2; z%zp>i+>%|Ner9Pg?|Eh=%vs9xc|pY>2@SH2a^;je90j***uW0~G>o|Yb;?XW++lc%zc?rLpIB#MeILczwV+9yf(Ac79~sFvlo+QaH~hfAz@i&;c1Lo~Cl=dO zg8TN{+d36aIVWuNYV)6VWWKU!BoV=g2&Y~m4<14xOoB8OGcZ#E)8Wy?V$RB*kGLT) z41}{4C%iX6bT?E8qe}Sb_PHN1!07Pj)4s8`t5Tnsx9>4z)uS-*-S+U*IxnA#hx7R) zvm@WL$nEB&UAcH>JCnh&#bi7cOQ|e(-=J8(Uz+Lw70*b-$`p0YZTueBBoAL*XEn9Y z;oI%p*mKdji3&!0k364rg+9;u?HBF5@ka^P8jr=rVPIu<7xXi*xE{rOV&KI>-|rxX z3Bb;cK5=1ws!rueR50%BZ!gGG)p_|o42_;wae=abhC7DW(TwdAivDN0{EG zvXk`#&93F~X*zA)0;j;Ff{_~0r1EoLmxxS}qUJHXPgcGF=qKG_)<%ZJ3vUBAHT-Oj$` z(f#e-+hSd<`%ODCC(Z29_`L+d**L2~9mOqKO;lvcJA^sK zzTBws5DI$+YRf|m32N~{YrjlN@(Z7Ky+Yc%r^^48#1#W@4&E@U`l{j9FH)h4BV2;l z9Xr-Xwx9R%Q8YfppVli$b&1_Gi>=pIXRsIahVF>;_kpZON?IC@i{VhMMR)?v=9?q{ zv?R^jetxyEQhUw|?=ogqdoj9wpl0>?lCkbA3$W$p<}V5NbOVW^L2~}%Vb1N)m;sSV zx|tgX1vpCGkqNj)Y4EV#7LT-(R_kNQkS1W1Q1Dy8kI^`Jvg&I72rM31-3ih83FCg` zUmIk3!2{3FS8EXrP?8Lj?t zxb~sFeAXYAp3-hdK2&X3#^nz_BbU=qQ3*gEI33*{#G8YkJta=p0r6xX5fUS3Vb$|- zHPX~42wki^Tzz%ApHI#Da~Edqf$aEt6iUgNG3M1Ka*ol#RrCfZshvxePpxmC1faO_ zWWf@CL6{NQRl?dct9bScogWN=e0`rjqPadBQ`9~%(U=uJDjL(sIZ%Z?&E#mv$x~P~ z9F&$Rv!dBXajgV@SDpk$7q^Q>px6t@3`WVW3WU*ra;v{G35mFn_zSfX`f=;1Nj{ zMxB&B5)y^D5g^_W93oQqqfY-~Do&Ab@*c z)|Al15RUM(<5e(eDO+4hXKOp8>g1P*;lswkVXw3N9TJs0KanAsq<)u6C%|lWrzGK-RClL`B^ZVg3m8Z%ue&V3! zSMRv7ft|D7W`eS!hu(r5p(rnJBo7y!h8Igj!J)h2oTH(oMK1-;R`5}c-Ujzwbq_X@ ze@$k3-@obON~?r$W#?$Rud(k22sIlwcTMhN=K8m-CUVh<<|jA1mFO!u8wDAy<#?@G zOY5?c=J_63^Mu1^Vc{@;L1XEU>rK8PUDlDKVAOdTuJuLo1HZl2FW$|cvrmlftDSeb zG*|by>0~IH?@iaJwrmLt4}Y}-&joWiM@oJ=#$xR8>&IX>rE&XH&fX!oXg564o(9x# zB28Zk6NBxk6y7m{5k5et>ry-=uc%15W(~wP6;Nvt3Pc(K8(elO7@|PZ4oc+~XSWa% z6^6RV-YZvd?8cHx}B8y4uAkm9{ z19w>rw07W|0Jhh_F(uF?v~BnfPe-- z!r;=?3c7oCg2S+(D;f(l+#f_L62+0#r_>r5bK~25jJ0nVh{$zmEIUWDSiQ;@Yi4w; zu%f=%rnN0LRG5ZD?)t86EhXj74;W35U_Su!Z+zS7B#~|PZ#zt=ABn`w72YU1lNMK? zZ(5^ACc>db3l!@ncm|g&kmFcm;kc_30NRFViIc-OU!JI^NH3`K%x$k6f-5Mw4=-tb z^;Tk(et+;c#YQSxJp`PyD7}qKms7lV$7YM1V>>hRL-0ker7$G`Fai_8NMvRV7OV6^ zXAYZV2!ki6BWjSU2s6Je6u2Py)D2{?2p&h%#4PQ#P0;`9_3J10?LVmPOP?onVV~{D z%gyI@ZKb;Rp<^Y{Ph-2Gtc+bHY{M1kfcxpmd%wxo`O54g_HoGJFb?aoerLJ6Bj8EL zZg+zOJZTKr$kG*S4HcziWL|~vmvTC48bW_|`0&bA@QT4CxHRTWkoOKzk{f_i`GIyW zfw9Ri8`Cp~YwoZVt>H)ND>kec0|*kANV-l;4zL=q3O2DITLbC%xOfCB};La+b$Mj+oD|wUZeJHRD7DMW+gX?Bxr^iXVdJpxwdj z;&=7gUJTVmb5oTjjf>q2yCoi4Htrt#CN*P(%0_d@dM(HMMnmG}l?<|N!OmCz?UKy- zdV1==?i=r(!!_yWikF;z<*6On%#541=;TUvLhiea8pUm$7tRUdFX8ZfOfyi24?#VY z<1IUMQog~GVpP3hm;CwjL%^oMUwW}TIv(Kf;NvX_sV77bML{okynP011_N~{`U8r( z&Sy$*1zHst%JeV%^jmno}BN~`;NBZ?zD7KbY{A&bk)jw^NPH-cW!1xQTD(!EnT