Merge pull request #350 from Vincent-CIRCL/master

chg: [exportpdf] Add metadata, bugfixes cases (too long values, sanitization)
pull/362/head
Alexandre Dulaunoy 2019-02-25 16:13:03 +01:00 committed by GitHub
commit 345f055844
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 5444 additions and 789 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,391 +0,0 @@
%PDF-1.4
%“Œ‹ž ReportLab Generated PDF document http://www.reportlab.com
1 0 obj
<<
/F1 2 0 R /F2 3 0 R /F3 4 0 R /F4 6 0 R
>>
endobj
2 0 obj
<<
/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font
>>
endobj
3 0 obj
<<
/BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font
>>
endobj
4 0 obj
<<
/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font
>>
endobj
5 0 obj
<<
/Contents 26 0 R /MediaBox [ 0 0 396.8504 612.2835 ] /Parent 25 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
6 0 obj
<<
/BaseFont /Helvetica-BoldOblique /Encoding /WinAnsiEncoding /Name /F4 /Subtype /Type1 /Type /Font
>>
endobj
7 0 obj
<<
/Contents 27 0 R /MediaBox [ 0 0 396.8504 612.2835 ] /Parent 25 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
8 0 obj
<<
/Contents 28 0 R /MediaBox [ 0 0 396.8504 612.2835 ] /Parent 25 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
9 0 obj
<<
/Contents 29 0 R /MediaBox [ 0 0 396.8504 612.2835 ] /Parent 25 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
10 0 obj
<<
/Contents 30 0 R /MediaBox [ 0 0 396.8504 612.2835 ] /Parent 25 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
11 0 obj
<<
/Contents 31 0 R /MediaBox [ 0 0 396.8504 612.2835 ] /Parent 25 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
12 0 obj
<<
/Contents 32 0 R /MediaBox [ 0 0 396.8504 612.2835 ] /Parent 25 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
13 0 obj
<<
/Contents 33 0 R /MediaBox [ 0 0 396.8504 612.2835 ] /Parent 25 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
14 0 obj
<<
/Contents 34 0 R /MediaBox [ 0 0 396.8504 612.2835 ] /Parent 25 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
15 0 obj
<<
/Contents 35 0 R /MediaBox [ 0 0 396.8504 612.2835 ] /Parent 25 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
16 0 obj
<<
/Contents 36 0 R /MediaBox [ 0 0 396.8504 612.2835 ] /Parent 25 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
17 0 obj
<<
/Contents 37 0 R /MediaBox [ 0 0 396.8504 612.2835 ] /Parent 25 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
18 0 obj
<<
/Contents 38 0 R /MediaBox [ 0 0 396.8504 612.2835 ] /Parent 25 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
19 0 obj
<<
/Contents 39 0 R /MediaBox [ 0 0 396.8504 612.2835 ] /Parent 25 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
20 0 obj
<<
/Contents 40 0 R /MediaBox [ 0 0 396.8504 612.2835 ] /Parent 25 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
21 0 obj
<<
/Contents 41 0 R /MediaBox [ 0 0 396.8504 612.2835 ] /Parent 25 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
22 0 obj
<<
/Contents 42 0 R /MediaBox [ 0 0 396.8504 612.2835 ] /Parent 25 0 R /Resources <<
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>> /Rotate 0 /Trans <<
>>
/Type /Page
>>
endobj
23 0 obj
<<
/PageMode /UseNone /Pages 25 0 R /Type /Catalog
>>
endobj
24 0 obj
<<
/Author (\(anonymous\)) /CreationDate (D:20190222095950-01'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20190222095950-01'00') /Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
>>
endobj
25 0 obj
<<
/Count 17 /Kids [ 5 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R
16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R ] /Type /Pages
>>
endobj
26 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1591
>>
stream
Gb!;d9lJcG&A@C2&D;s\5V.[4,%[F&2JJ(#]#ejM*Z!s.Od/=gChI<,7fWFIA<A(l=K/]pXrYRFE6'tVL,5V2K]*m(s7q8.G;Jgd!taC$G"Y(u8S4U9qcWPeeFmh_XR4u;*2V"V@Ajc-)*n8$BRZ)sJkY);R=-<ddmj-dSAo;b7R7D7Lm!Jo0TPYTc._U^cC^I9ShtN%rd]'Z#+i<nPH4#-b8H/YA[*P2ACWT=$aM?CpLI;?CU.)GkfNMXnuC!AMO^%!I.^Ig`B5j?H,JQO_kaV3[Vdh%>p"u9;'T8T]Ns'GCf@L&0>e+4W)bBbi+SQ5D'[g77egONb+ONT`%`a8MM[S9+:+.F4cQE!=t1Zlhf`[B%M*sg<N4BEP)i)ol"F$e7\_^n(,][ja>'Vs%h'IJ:#ote"[<E<U>5tOg2F#Z=9JE=N$$k-br08a-bI.l]SXHO:7KS@R7RG`-.$CsI82+r^0I2_XGOj/+-HmHcs>lBi1J=uM[^a$6tIoBZRh*HaCHjL61IZ)^I@'39bj.=@(-A^\B,19RPq'+!D!#LgCug<TPo@(!.P,gc9TDM0sDgA;N2uX2(dq4Oh9=V@3hoMc7o_B"rIP&*5V,b[4I'B#sOXo2`++6j#4NQMekb\ii/jr]hi?l?=:bboY_;"84U]0GCJ@hHb7M%n*>#MLFq^3i"_Vubeb@Z`KJWj-E-KEG(CTST56gN!2fhr#Ym#n=3*,:'\m@i=/8?_V.P/#H2ghp2e;>XSl"IO1I<>+<$%#<a],RF:]jr3)p]6NKmm8%oC8\-fCuskj&"\ge^0%`E*G:,c3S<bO=&>#KM;Bb(q5mX&_:/so!NImM&D@o;[#;fQjWZ^eUU""4k_&]PGIGqJ(Bjd<DBX/WZ8#YG"HAd&^`hTpjDdLJ=_r(Kq;oTQLc&@]@k]qc/Y['qtrRI_u)hWNo6gj(,P,ujO^p28"GcAg+VSkG.71k87(1^;D"@_Nc_cgJPf,/L=,Gafq1GQNXpRoOU9uW&P5PO=$g>jMI]&!b1h[#<$arjGt'/RG"l[@k0Zqc;Fkc2CrWmb^cEa0);J2)UVjn)Gn1Dp,Zk1cZ$n[uVp:EY"0SleN,iDgnMoXXIIuqa>b5i974W<55IED]\8ArE'[q4eka,fk[_2j^W7e^qd=^i^*Hu%k7-AcfBYmp,&.(56oGkKOkP7m4\\=7ekIKj(V[hnAnGR<$53r+2@Cj-*]tJ=)odLYrD01\*OUP%Uq+2q.dQ?6t0RtuZ)3A\P5iKVo`0A06NfR-P]EGG?0+_1F7DaqP0AVl;7U`QNNDLUe#'jA7e[/TDjW"dREF*5BFa73Rm>]5WPJusKFRi@]MQs`!VHMW<.1j`3lP*Af/Y7k7,W'Y+!d%ui.6Oo)+B"cGO&RLt,LqYI8D,G]86N%oCSY"sEk.U@=-%K1`(foNF)k3]mc'#PH8?6W)l;H^o.@8)6WFqmKREb9;6@nt][p?ZG7dSNOmDK@b?(u)Ve#7rHmL:a9(l<.=0aTZAFH.<,qF%/p85r5Z8/=gn!&2G/$hk9p;g0Q199L(M**(3ZV'XTaA[+7X5kmZ4=)A]9$Ha8Xgj3<M>d\%=fOp~>endstream
endobj
27 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 2120
>>
stream
Gb"/)gN)%,&:N/3m'Mro2e1:GnWoS,36l*`8Rg:KqW&HKKIk-U-mW>'J):DU;PYnf'((XIes7u=@^-.C$XaJo;]tk0eaG0qGWg_TG8)HXi>AMt"UmW4gYq)fTP@n#8_([YG-o[t#iG?dn+[kN[CNi"@1!8+2].!riCi5/-\eV6)6p0])$e1q2Pl'M4>rD'\[ZG\-6Q!\UN[PY<9V%^5<.6*Lds8'apuF'']Ir-_NlUE@GaM)?ci7+_KB\@URo<,".+8HJ=D$#2oAsn]:()7\@+bL!#FZm-lB]=fKSn[6fI1b<EGN*l+.nc+h^a`GH35=]:m[->oV6J5W^:B$LFq%oi*15HK(r0g'j;)2q)KgHI_d;P\20HC/]m4@>l8D_:Pk4hUFQn\o"oS9F8,-jkYXJ]Td/Ig;6$m,a!Y:Pf6-FZ,ClDZ@"<7Q>i663$_stN:1"[QoX#m2WqL^XD+:tXY03Sd89;?hbCdGKKZ9KrEH<HP6jeX[4((IG:[WTnrWLPGn(WheP>R.*4t]eE(o9XC'uW5Qfhj#>/Y$5f?j@e-F4Jk:?10CfFGRL%C@Hc:Wlg07tiFX/AauW1<cRXPt<SASS(R@oAZdW_`U(kKR-.Q*mLum$YEsbDP]+Vf4-t*KsKjGSle$SV5876S7QsXb/B1s1<cq%Tq\<!>JR+R^]O?<91*$OHS5hGE;)>j/F:E67tP;:Rr\+S,=X5F=(gQDTo3lDMq'0q;!QbcO+i?TJo?#Ub8+\".r&Jhe-0_Gf5ht[(e!1A*7UhckK)WGP;FUYCf?iDBL5T1F+o>"iHc?JJo5OpTi-(^leirWBttC0ZQ<:u_4\b!*)$R??f"E;10.T3c"iY>Z;h8'1=#Nm17o;TZ8?IlhgZLiq5#sn9DqMI>LlBG8SamP5Odjj^_SPOH!i_7jLB1.IUIL4be$k9?.Z7!QGAi)4`38;[b@^[]Ig&$<]`/r[cQ#kC+$U/M;E=um8d,Qn'WaLBJ`A#D+*jE7ND/bi105.N@8FoNnZptQplL;f6^>NgD;`WXiNX!$+(:UX,20AD:F9s>8rQU73WXR67QI?!TB>`6Eu/$U*Sqqqm!M*G6gE()[-b8^(8da6!rl7iZL\GYcY:]T0OI&%Fi+decETp,"l%=(m':5#E8MAAeW?E:)5Nb(Q>V7"dr'3#N,#l-*[PYM+/d/K`jjgJ^-Pr/]0)=PVA`j0ImlcR:W9c1Y'>/[7,g2^5hm'%&O=i;C[;I%qd3kLfst97*/=OCW[0-iC,G`-+;nQUe8g$C'j"'..ULV`S"f9X3=KGq&&`l_$MV&E=<$[)-&("^&jf2P`!Nu0+`]e0LUD\O!`.e53-gCNYTl_O>s;Xcf68P/FfEc"S\\ujAmKokK"M&9p-$ec?Y-Vis85riu#>b.>^+Xqb0:)dqPOqZn\imV+*q)8Maiu@I$l.BM$cZT%F1,G(SD=_Z<MXAA^/s&=4N'1']TGo*J1P$=PgS0hq^TTKUjPN+92pVfI>\3J-q<-<8j494"E+7O=ScR4`O/+]A[O;!B.a"e;*2`(133H+5,K\7CJL,jl',\lRESZR2>%1HAXS)9R%\7\($]=$doA:.Dt58Y7+EXhmXuiNNX;R\UZ56Q:ebYoCm=A@=0"mocVS/+nCQ;K"C%>8>bu7QT/dYjGEE)Q-aD[[h/;m1aB`r4u+Ps2[g'Gtt--HRj5^^J\]4m&JQ@Vh\H!=:]OlmY(:'@_M13pngf5*%-d<7/FM"hH+tm_R!q>U%7=U[sWt)nePcCKCTfE#rT3EqE06Ph(t9nEN,5N'e'n_RDiaKmBKsd6s@2,hLf%+0!Ec6gMKilqngC8f6%&iU),2TT0Afp5!(uWIt%=[h1q&0^V%(d-rk7-LT8"sfYWh:V<limjQ@M)$`Oke\"\YuDu5rdZ[UWH3mX5Hq?^*IH+"DD%BNLs=K<G4DFs4m\>\RT]Q!E<$Pt,GF5cu1'eZ-R=L`b(Xc^X+/7G=DF5_Et>YeG2NmH#-*"S+8>,?4@jCLO+GaX<42="nT=ap$X"aSb@,3&Tj`SEDsJ#AJ%4anGW8U;@@9dL+E1B3`8Uub66_O;+;>s<X\dZ5FB5G.YO,`cq#odM0`T1jI[OkgME++MMMi#`t2`+8~>endstream
endobj
28 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1271
>>
stream
Gb"/gh/AcR&A[3%=,_7$PcM`grIfUCV9*"i:$#VNqn`^_91$gWMok)Od_Gb3FtcbGfZ&q$2dg..41dR9_p&#](ejnEoA:YopqqYA(Dnh,-N_L'"6TcV4/6_h\V'r@k7[@8YC#fg&iR%pc#!e),<G],:'rB@GAt9Ho6N=i8hX,&-76SF,nr>*#\0'3ocmu\MfB.i?AmQ8VIra5PRGE(.`!5S'FLSd,:%tWfaN>B5#&o=8\20oABqZXLK"Jec)UN;:Pnj_F5KHC^uDtn<t@%Tbgn]h'^XL.enc(5,/Pq6:p1kUaX8aP=-YFt[W(Z'VK8tudDD/XTt._i>-1n?`=8psJ,T?)dWMbbW-n(Ajgpdu:ukR2FPY8_(?Q-+f0-`!$C-mK<&'C(b]V83Rj<9Q$9diQ,tYMfPD_O0ob]h8:X_FYld@<+qap+6?F>/Lq`"p-0'Ue]Nd!RerR@"4pClq7;l-k_ViNj&%8DhYhs9mW#Vi"`$P95B"-A%_rZ!)>_a>/sBcU<eQ,%MWD[c`M"_P*uS9J>B8I8"U.C%/HZET0;;g!!.Biu4VIpX]#NN^#i90J7*3q^(ja<I[jBLBLS\T1TW-74%PqDjg,OFH/KGoc<32t,T]_n@3t+7>jZ1fhUXpInA;bVID("9sd[D+KM__3@G9f:CQQ3YIq(*iA3VDJ&U1=/t#fG[-]lQEN6V;SIdoj&p5gQ7<7VUainGZ?Vg]'eXKVb4R_k]2u/\$GY#t6J[)jNuc4[)mR\+%Sj)+<Agdum;A"U[jiTdqV2YG<[H*M\095$9(8A#@mo`\4gCE$PhXqj:[gQt>E-dC9lr6B]/>`$W-i4BnQrWb!7\%`pS"1m1/0pj)h,jcon^r&TjAhV+,kNX6[nAb-FjpZW06p_<HKsIoE"e3J4Fd<Gn_VUo2=+m]O(MbIc.?8a!Cl'Em?>YY?^i!kF5&A6Ne^gf7?t\RbJs>DCoSQ_AKI27U$_)29&/p@mh<"<g8dGBk;.Y'bP\`eVg/e'F(m29e/tU_\Z"q.Ni2neNg1-6`VN4##H<bW!MM^K?E$Z.P03PWg<pid'a".q'%SAl=k,bjo((0g@8b61!sb-bJ^/be`h>Vp=)+Q\4Z)=Ld@_$Q'JV@9O2jMfC?'Q;gX";aj'/bem&Y'f_'jKA^aJ^b@@Cmbt&^GK^r2TfC4lE']=:`aEiZK4-`L$IaT-"FZc=+\->KB:gnF'f7@IJ;XIc?HUc]F7=FnY>LrEh^p_')%LaEehdB<W3bnM7+h2<4_!$8ZcZP9~>endstream
endobj
29 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1144
>>
stream
Gb"/i?#S1G'Sc)J.uqQm5`5)Ei`u%+&4-ddDAY]XiiI]Sl.U6Us.7\UC"&&p-:D>/d^<k\A,G(BY2;`Ma+3.[bC>9\JEI#ZqO.HF0Sk9O,%9s^?4ED4-]`4S1lq.lqfnH5:SEU\>%n"r&[B'%_$#eZ@i5,o_39$)A"9F[bpd)8hu].].n2PA4%+-s.L%ihB4oLMN`$jMnqa"a!1+"Z=br\0,k.b9-/<m_*e\tA1oO`;HS(Jdh]E'M4CRSSP]jNdgPSghGnDYK_Vsd*2/:m^Aa>dKI4[^f-h5f0#XME4:_)ZJi95m:lrcAR'kMT5j7t0hf7?dgnl73YbCAttAQD\mqIipie3jl$EH5d&R^Y\hTL"Lc,hkn-YaX9?>._')ZjParBuS3HSstS=8V_S.d\2=EJ!8.o1L?=:fa1^B;^aTGkNgW.U[Q["]hHknI(]<I7.r`9il"=D:/@4uq8eSo,b0m1&f)K=T/iB"?9ZargCG`D-)K&>n*p"f+k"8`%n)9I",I2ShDiGTYUiI[ZJERR)T1aT84io1('-7M;?0oi!7NG%YZ1g>q**&A+'5rsH>qi'<Ft)i<KJ0OcKjsNb@\k8O]cqI=QR\CKVU$LE4sTn\qQo*WeI3K(k0.rL#LW6<>^1udQ\\bVqZ&=VRG7EjQ,^Oo!U$eWjbtOggFJ<6VUs"kd$:A<sBgjLXpKI`dSUM)KA7,)?Wk%5I.C&DdjqL>Gea!@)=J*9X6^f[DOmM;QFYLl"#CC]Zk7?gaTX<n,qYA.%P"+`9HB(8`Ea]aQ<bA&uLkaa&fVs_%KrU7$/mo!4Id#h'0A)>nFYpcYeC=mg7haHlms0+k<afA*jI$Mt)[Y4i)JspB9r:i0g!oU5S6eZmYX"&=`u2&7#.(i+Tnh_0^e&6#\tDGQntHmi$%s.u0#V"RcZR'>+^)0C<R5RV.PS-hr6(SEVX30)n[c`l,RoYCQ/\rW]_ETt5bo$T`-44:La*/\+.uHVs!!4f!G?pqD10gAo7f$"1m)NTSofi%*0-E=Y;)*l3nEc`[.t..-3UOT1%`[DsFHfEse2UL,MZmXd>Klutgd5Y?nL&f]GU)Qs;$LGl7c\LZC@YiQ(rBk>X3*W9/DFR@JZ$X7KNcK;Q?F7?g5s(;GZD_cXFhZ~>endstream
endobj
30 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1266
>>
stream
Gb"/iD/\/e&BE]*;\7S#YCK^rmmrQo]8$k8L10?%^#tTb'QLd_DM*?6;0HJARH<(i4#DY]-oQ>rO+3UB57.uVOagd12_5jDDS]Yn"pU5B.L*hJ/Uh7q/nXQb)iJ5L2AZ*bT53Co#f@)iAWQq3X?Wu/P0MOdD"3N;?IXrfnh<dR.6*P?OX[CmJ<8I_N*@l+6gX@?mH*[]pQCu=dTd*cX8le?M,c3@grPWmYfH2CST;>*S]#+Y\Oe$U0<:XV^2uNGpG4GTp358lD,<L"o]9k!VB2P7`ur3p.^Q`LDIi?'h=\h<X@1GpDAK+]1a%<e(\5C`GI%6l$QZ_J]=U/=]"YaqX*DV$C=uhiMk2O@,7D#e\<F=>QQKC24km1j4B^0P/%4kjl4!Va^>@*ol23"K='33SfBgaX1L;PSfBeu<]*WNBRf1Y#NK,0K)M@8)MbWl`_"Q#[B!Zo@7*2PXg4e'HeZ8B>p<%ki-h\#5_=)+$Lr^VV-Us)OP>^i9FP)e_,<XBQ0L"h0]4!80rtP?U$]PK+:i2<,IJ`UHh&tt7L4c:AHpX&G-_*m`'i&3daD4e#d_6i@cmfVRM!@5dcuOe=`*PY&hQ>8glLoZS[r3@SWt34r?Fdh_qs0N*/>ha6:T=#t7iL&8dNg38>%t&!1>T$9ANfXhZGuVFb2+D1"n>B-.!^l*d\H/Ws*$LeH_8TZ%t?U=L,3)K/0>U>T:`B7O.</UW//6Vat"L[Gn1I-KUDt9F0;rNMO;2*"1\JsYH&C9fh?99A]hfWfXtcq#IV+l+?8tkA&tLdOI=QPjAKK\*p0H@4SCIiGY\7%`&$ntI%()&1X<r=M>pBC?R<ek#B5A%mg??Q9`0Bpr0J)s^I8'*PIr*AJjpI2HEsf=W=7?H;59_Q;]\pC6aXr@ZH>I9pY"LI7#1l\`;d#ks![LWphubd^B?FaJ)^J?r"#J6"ecZb%l*0A5#2$Jpcn<K4T$!F7N[<s3otF*j[fi@el#CP6ASqZ)"7#EJ:tq*JcfpWP""(F!3@h2M2D7>!WU!g1[s9cc$sLeIV@a@`;daQa&Go%19/4'ORN2ud)>rsaFB`Ts!@4XN!nj#:l#gcPTopNcYmikJW:muTtO!a[mh'4;:ImaOd/UXp]$aD,msA(nS[@d1Z<g4>:bit^DoEF[eKg`dJV$><$$:ok-1c`$s5M:24juTo(9T-"0;gF']aZn>YLiaK]WQUNd?`L>_!jb.+&?O*L!YO`7NHoefh[IQa<o_J[!BaB7&!]c2I``Nb]+~>endstream
endobj
31 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1235
>>
stream
Gb"/igQ(#H&;KZP'Ei`g%3UDC)4iJ06])XJd7p1go=.N!c8HUh`P-b7n&gel>HqH9M[em&Chc@urh3pf8N&8"T<MYA"_6H7g%1QG5dGZD5b-L)=8([%p3sHY8-WO?OUpdD>'Ln$Ef3t$A,mTNhq3=m0(cVhrg(g$XZ!np_t7/+_82d4VFYb.+fkJX\'g?>pA*n=ea-T/7@Kpu>R>MR"(\m/Q"Mo@ZnRfukFW9U&4`:ekW;Lc!o2m/XS9DGdRS"5(5'-^<Nl&-T5i!@?h_6g%6@UFkP7b]Fu>(YNBt@F_s4CbS(P^XmdJq$YM6LfK/jDh#iP%,pQ!;kqHpE[np9ib0/(lL4C)i]!QW_>EWh`OCukNYY<S'>C`3!5JOr"NLR]cM%D`lq.6*lPM*=2Cie+X*":-.W'Lmsn84smNB;Oq3;87/g\N#.S+sM8dg%ADgNh>.&-hk(h[N'Q2%K/qJ^R]@JBfCu$>WiqUm+"lfDA;uGcah#V$ak-%roirgA>lWe!*]XE$t?kUXB/csW<oVD%lIdf>'Vce2RR9OpVh/uq^-\qB(h4;]b@nq7+)O`B=a+*[BoX%f+B6'W*%35i9:Qu7WVH^!=ikcT%C/qraD<[,MW4akoCk.50=9%ZHjOo*U?%L0$&P`Kd*$"8V/?(F[F7bU`s[kMXUL!?esMoD<,ThpWM*Nq6O#fn,DbO`[@)Cop\a&n@:n)\Po:q:0%hPDAJ0.DE0-"1@J;qq`[@"X6cl0rX#L&H@tp$6/+uH@RQ$?*&n1c@]5qX.:UjTTuWs*<M$7%KI1=cTSc>U\Uh1i=h2nPIF"o*C29k?E95Kg:g:W,11t-rXkrOqr$R&.i4o1Frt/f%J)gP0r"$>78)!4QK+AtkMiIars,I'AiP3l>,"7,e7\k>A=;O[U04Fr\1ao!#,#8eqar2DGAEu+e7^M'g'Iq&#A8M0n.f>W6T7R%>;gm[3S8.t?r',`37VU84ER["2TVFiQn\=V/nc(`LpXp9X2NtO0Q4ura!WbZ2-VP/Qk`W$`,XQ[rAqNW\7VN=JE!JY^S/_LC!rdgqBAc"&RK(:0rD;O(j8Ut9'?5@sDh[M)p8T?:Z15U!^[_=dr.boK2bIXc]Yl(2F`s0>'L_/ebRbpZY@Aj\BQU5F(haHQN*m<N$^E/prP/.dr]_G&.lh#5FT/<Cmf2=`r;ZeH$$ml^*Imj$T]]=4'm2]^Y+D/-od!oPHA<N1`uZ:<p+N`g1Q2~>endstream
endobj
32 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1186
>>
stream
Gb"/hbAJ7X'Sc@.$3K%^!G92iiGFuh;R@k+-;h?%3M`-0Z5Z;/iO:HdHShKcOtAtX`1X9N3@'+QkCEJB+:th@@Jq&[6MrMNcX28('XK?@>8FR&`Qtm4LWMT/!ouCopZK_&\=^XHQE7A;!*WPHM:k3hc1b]@?Hf"C3km/noY",1?jK?&eIb>'nrqY!@0PZ^n*>nRAJo&UOOC7oj?s(qY*6rQ-EYbF=;INYh[`V&kFf^bXA;Y:)@]%/3$k5'8ogK!d\X.fG1MF*8tjk)q_2_]gqE,F%36?h(#o$^&p?-h=j97^.Ruq1bhJ!=O+*KLY-)^?=uG()Fm6ob!t"A+e@kYPpO9(M,N\/srcWbP440o#]2*.fr'I2Y_4>$E>IJ:NG-tGJbN7Yu/%jbBYC2)1f?"grm3ar&M=_+?(q-G%]DX[*r+sFIqrrfqnFQ/lO%LKJ"0PY%fT@a8Za',2TAPV*C^'S1JV/FD%Qi'0NCkP^3O1DD;^)>%;FlnTLW%#sPVR@+W(`M),\5%M9@s3VWKT4].dn7TlRtFC?eqK8qo=t(Ng*"3s&S"F-S=ZT0VVRSHAGU[f=t!_UVqZ\?G%+uY0rbs2uS1e$C"R5.!t5-:g/:?bWZAu<Zcjo!"8lg4tkNc?gX]u45S=q?[hJs4hRKF3^GEbbNjB2AspS]\:5)!6BVP3*Ti#T-P38_D[60`8_Xc_TSE.5p?f%JNRuo5[XZ!`_FH.:je[1CVZo1,)pZ5n+OCS<`(nDa608829>u:tI)Z".0FnpIK+'IR%Oifad3;**3G2&@5Zql1Ce36AcPAQW<:lIgR,j"n`^@`C*NMZ./Zg)1h['8(Qo"6h4Nr;^](3W,rt5/fg2Os$EoWE`ALE_Ro)BZgs-oM$5HgiS=8[Q-pc$J!\Y.=%/u"EJBO$KW;AY]VV_"#j2C0"F6BFAXZFR:Slj!GdJZj:n:BCKojVdQ++3$NY=7KYfrs8P/=12O+Wc?=L,8X%mJ&QoVs&nj+\t?GYVqctK&Y/"6"[U(76J#dL&Td4MG>[N/QDMi6Ue\4#,]&Vt"Vn9$rs@U*R*L53pFuR]Y'%86^Z,8Irj>P`mN4PJAbX#q$#RY2`IGl,=n#cf!Tmc,A$Ql5A=4R=@$OVm8mdlhY[,:0>-!)D5%1l<9=M.!5D:(W`W$Ue5O*gB-f]^O;s6Dp@e)`Y**2&~>endstream
endobj
33 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1340
>>
stream
Gb"/g?#SIU'Sc)T.gYJg.j1.5LS)35\olXZFN`qb];8%JEGHr(j.sc20C;/neB,!JW9YEO?ab&%^-4XnTD&Ho9AcuLlPG6P1aUIT!Wc&n"T^mmRJoL$R8,q@2A&]7D'JoJHo_Xr6PsRb8:q%qiqa[`0$'IVSkS%(l*L'%k@p=SC<e5@j@CQF'S,^!5G;+4D$9\*Fa5^P8p;.E:b!q4>*8oLAL,7$#rPrq$09:]a."o(]r>4-g)`jQoh[uVh8IuT8q:bNCbrK`P-Tng;H7e1-:P)8qr<?Mo'l6i=*6e5lfpW_M8ZJ#dH`Li:lq(*d^Xju]m95(cXh+&Ao(E3HF8;)h5lT6\GfY2XU6r91[1:5dD\eui008RR4Em5KXYV@$QN9r=CgTS<#+ka.O(.d9(dmB`Ja'DrANJDI!</up^ucijmM<`/s$Y-Zb'=R[\P6dT@>h87TQKo0,F(m<Fs_en'8#a4sI>b[o\&3]pj4VKW<q@X;>YuruotFj["SMKo\dfk0e7K3g'M:HTbu"EiHP4]QNi#>!@r(mX1Z`+4ZMaRck<8b?=7X$is?"_&Aq-:uGo2d"%h4\O:A#;I6.n4+K2sr+p#_+Laer<SdbVlRm(8YO9fWI<A7b25T$R^Sft5'.VEM-r$YYobX<Zr;Gr7VX<bLM5j"P8#N+BH!TF.(.^r,+<dWu84R56@AO`17qEgbecP*7$pZ$;<IiWGZd%b+Ft*k%>:T*13;tUM@d=df1\]pE[@H?fX%9rlfXVd+6>5&.rt589i'4bFPDQ5rbiLTUn#RN!5N712ruh+2\b=5`TOm,tErap%["ukFA2,F`jgI_R5]^_8#a"6#1$o>0`7=p]/U5mR39's;n;g0MJ:G9Ts4eTQIr0Ks=g`U24nrsi%,FP.mMWU$Ge7V`b4o'#)r\OG4rXHTc]hl_p&)X<cK>N6.Q&1BnLscU_*d0g*q+8Y`RUmPja6"bC3DO?FlL0&ZPa&K`uCKa]6Ao"*;$Kk6\(dNmpfrOZ>d/8!e2j>oC]BGRLQL.dgJNcOoRY^qZ/Nr7[kto<J0S:U:P/;>ujqF#1]uQ3c@icX!-HHjUgq$rU:#Fs7>+Gd#RsUi-f(JHOM7K>)%W?69CB6D.FuHdu9('EjPXM6r1F=QbAj*rrh4rm:"\\PDoG"0;F"="1am]nojj3g#"i.42d[QjM'48PRPFRV<_=8-Y3fdZ(-b.'e9P='[MD1dP1&3((=\@OmAt=BH.6EqS.l,!7V)f#I3/G#dr%lUN%-16aq%`dUn]">XIS3;OK4DNQ,B`%StP5/:r7!^-N!2B^:labG-f&jkb@B#$=iTgl?jBeGKB9Hj5TrO/i~>endstream
endobj
34 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1447
>>
stream
Gb"/i>BALf'Z],,'Kab[RMgrFBCC-3-0_eckq+10fA5!"-39<^CtIRY$au/XJ,i#U)io@IUa,9!^Wo..-S7Ssr.XO5?P)eqPY>Bc!@6-a!)GVCr_-Wm7t6N,&L9WN&U[\&f>>E:3n6n3bm6SW2Qt2D6,r&&14;rq0/adL*eu2R7[ep<aG<YR"eZ^oA!h/OX,HhiPi-/Pa_SV;?Q8\.2at!?\a(H$YF'"ElkSNKmY"I_WR@;!IZD9HEA)rt$(2.C$qYu3<?V*q;6!K5!T`eB_bSA@h5O[Ob1]T]:K-8YK+_Z7P^r."W[DLb/^9`_N]e]b+g3>XqnL1N:#J4EN9JM/C,6'L'Ej>7ESQM3hnK'Zq_GiV1\ODKJO6q"6JYgAV(0toa268dC$-+G%8XKS+Yc!1KM.V0bQ;o*%[L6kV<MBQYuI+5l?BZB(X(@bc>GFefPW-eL>>p\(L_GtkJYAq]Cg!ri_<f1]"#YBCJhWH/f*EGW6@-9LX#?iF)m>N2qM-GY'fl-O?`\Tn/jtdDJ#3IS%^0).8P@%8l00&"]1Wk_jE:%BF%MYndUVMa]W3j)BF&,c5B9?c)'OGjI!Cr0.+;rID$DnG992clqaX6;YZ23R*Vp!Zrd@X.J94..+HPd4$13[\S20W]7F!Aq\"B]'Hbp[-^3<>g[o*d\m?2r_Tl)p>YO_A4A:b^J!YN8T);1UWL88:.MQMp9\LtjLOu`HlgkMDm!AG<8W&s7D<RVOs8,[9j$uKeOp\Yn+fQ`:r%La.+LbqR>Z=uR0$VM-Z9d%CEN'Ab-<LYoV)#h*!F>r(Cb63baoF7":^(N\4l*8)`!M%i!$q+pO>+dO"VNDu!6K\IBibqE""(6)k_&a]k)"XWFZPr`!$nC[(Ed-HpJD3$@K]\&4<;OBJ><R"o`c])o@IpSDSEIqahiFK'.V6if!tKNH)0!F\NI`NYUjr9(HW7a/ESkcb\6Gr8FSsm>t`=j1?hUhYN$MQa+Bs%(i?cpBQD^F]W_d5p;%tu5*rE*D-L"--a\2G)VOFF;6I=NKZlb01oS2`VDq(9OYW!.P"8SjDub[j-<KN\EG5Xf%AHZ6;2>ERLl*T_,J^;Z2M_EGTA[MPl2_mSEH"/q#B1Nqi<4+]3TCDV8g_gjQZ-BN!"K)j4ATouA;BUTIpq-:\^,dMpS\0/P%mQOKh)\WE/QHe""ub=?9k;Ln:EjL$\14\HjheQ-h)_,(jSFEOD+8*EnFWr$o9!OAEMq0!/=qEj*s,]d9H0+SbYMjAj2g(b_NaDXh[.38Bc&r@8I9$F'IU&+SgUCJTncBqJ8i=D_4Jn+Mk!P\3cOLG\2cI!;$CfkgUOI_LrEdiJcLu*Ets.P]2)XBVU5?,%0gQ7j#*m5WK;3K[W8DS5RP2:4Z/Q):-"IdX#[2k#u6LhD(Ao[YsZ>H9ruMk\E*9["`PhHLpAsmpu&$Vi%1<~>endstream
endobj
35 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1439
>>
stream
Gb"/igN)%,&;KZH'U\-ERi,*(G&bZ1%nW[i:0TYLVRJP4<[(\'/B@;8(QqIS9I3kOfqe=<B6"#(Qb_V\#`94_So"#_kCe4I+leoJ0MWqu@@/:-r(:9h7NY)=$R^mN/GssHg<8oRO?%h,)@0j-?Xto>B8h:4-?%#eft-g$C8WW.C!IE3+@=5@1!5^[;/RXZ)Th1"bDXbJWl67b+`frcOGj3C7T)>fjdI\6N-tVQ?R_8p;i,B%,8DXPDT5ZsB6qboTm[d>S8;Qe>#g-4X[=,D"JXM-W-'%MF"UF4QeDo0m#@Rl`:?T4:#kBSe5$OK/Dm&@HdDA;rMNk#F*hM8E7&V6,"D"6JOkDJc3+h(UJm%#lO-[O?9)rB$XLV\\M15qG@E5.X(WH\_pQ?C_>^kcX.#qie%_^QgJNtd4VZ!AX</^SjNjGf\J!u3*)H0@E29TRGu]lmRNZO5#$Tn[2nRBH%-uEbjfgo_']6o`]6r@$p"aAjS@Y1i,i9_-fM=S!M!!@fd@s#-.)*/g]-h$%PrLqP':99$^<W71L/=cn@A6AWf<9]'Z(<3ugYjD,*M8E>_U9:.F."iJ1Q4q:(0/FPCJ&l.e7mJh*D#$1<.Mu9n:P#cMoG7)(N.]N3*b.*5C:<H_qrWR2NSJ_duUd)\L03JH'`s_Std'$E/XNS?EL6[)WnrB@;B\":M?qLY's`(4!PX=b?ma=/dCldC<;seF-9^;]Pn4gO'8k\O[eJddmAkB;HljABAD__Yjbghl`H/Zd#t<t%U@s]bPC.p#AL\p+&A2Wdd[X]?ln#GGuU5mb'O\S4'-)+:,$CW6>o7C*!"ukj]cT&8TWT8,s1?mc&fA+6dhp%+`3JKBGdBtr0P'H*.$Os_\;jk&TD_@0:;^drr=]o;/n$Hn,i$ErcV';*Ba:9?I2tGZk$KiV[M^K(Ne#\(S%e!jW$$43Zc0H>stDG?8u4=?@5qqj])pnRm-8CVu*?aZ2qeV.PS46pO<;MkTmJt!!AaoZErfG]/F+PS\"e.0Z1Vb^Kdnt?U#WnDf9RcO4348okLb;ZeR4rj'k'-j5)hH>\;6J#tBV85W'U5A1O6/m5Gc(W!6S,$85ol04]bQfJ$]EJ-L2toEceuQl^d257Ag-l<s^'=MQn2!Q3;ABj.-3NC?/I3@nQ#R0=#DK%?rX7<"9-AgAj9R-.5T&.0,C(HY?K+_'rHn4Y(W"]JAI1f["#i==0nO)"dVqU2g3l:876TaIh6/Ps9Rd5"ut88!U"?82`uX[T,[])MtR+HM!uK5'0E35EGi@+`I0%cB$k6T[7u&Trhc'q)=)Af-(.i%T]!dfbFRFQZ"Z#7:&L2;Hpl8f'[aE1mgk5_'i!i<f"*'U=W$kCpft_5]R=E&941VLKNWTWMKtZddR!I(C_eJRuh)T:o-&>a0G(cb?4JoFsIN*l/Zlb7PWj%1bpfA,~>endstream
endobj
36 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1466
>>
stream
Gb"/hD0$US&BE]".5]L4DJ&=`8unl&CX]*.:8b3-P3H1B-eTb-,_5:WgK/od]5up>2l)9N0K-XL:<W(jpA[J]6IQIHrq\>m57^<b'bFb`&.)a)AFKhL3TtnVXXoD2?!5h9q/dD?L6+FY>%gY2f)LlKR%+3T8-\P)i7[\Wk@pIWm>U2#39*C\R0-9Or:b4VWR=?*^WnHXPB<(SKF=1UaplH0-*okrZX0f&6360HleP!3^Bf(0;7e4$4*Uh@bnF@dSDI0+[[Fr],;c5@(X"X_lK*u+TBkgC[q)^:C]>+sH9$pfNl"qZ=sSl;jFWo8R#]3qZ7,=929i0We-c9knl=MmXF8\bE913)rBectfpf%a?ScUj,U<?abMYU<Jm8g<GrKtC1_a,o(h2GDARHc5A&'mu>Z!m'T#L76SqS@riFVYSOm340b!;@M&qjbSq/bE6(RH/JKoc\[2q],)ILM]F2/Ts(<BB!.WmYZ-=/4a86VAh83gCb#c@jmSo?NB!C=+ks];'r.BXSZTEj>C!J)9YOgt^uB_qERf0jWF/m\f)o*0*AcBZ9GpM&kEtL\!\8TL'e,h/Abp8!jk]@Xe**3-[Xb3@0TPVqTM4Vr.6^*+aFEOpf!OOBdt#^\2[oaA(=qa&T`C7jIT%lut;h<e`G%c&drX"#LE_)//t2?(F1:dDRKi2"=jc@-]B%7U9&?ph@"#%GfPYO<7<cXR*q=;R<Q1BX+u8\+aj\3iI`d*Ro\1%\D<r1&Ji!UcPn1a?`e7e_@RJrDLD4C:;s-<U':/qass/$LM)1RA:]97V.U,SKSNC'bu9\%4r#WZ7Z4&)]e!n?%e.#m']f"^0_\=XnU/mE<!AUUT#h9&Os\(;#/lZ)N(^j(Tjq_8f(,\iPl2$FQ&Y\%$P.F00Ls.@`/gl,qrBa&<p*%*47tL*=GS-HND^,jGTG06l2p>`3rEnq5%qte^+Ve^-#V9NQ'$_\@*)6QVqK8$k6lPH4"Uh(,9dg<CIJV2$P=gX(cZ:.^_>E=j<%g8ja5lRNW\gpn2'RQ%:fKK#qMS"5!GVi#j*G#A2Tp*)>Fr#<56[5!p>5e"!BgoplaUSA=*?K#>+NrMAhBE<C_+%L`MqS/Z0!8k!SrG$3\#=r3>s]^SI:JOt+i?;M1(!_C!X0:;.Trr=]o;=UQu!3WqikV7<J+"j3*?GOWqL9f0o;j(^ZHHeXdcp]4?`X@P0`QQSc0Uj=b/QZIe@XC`E)#jgpSG"\Od=$t/Mnc5SD(Ya:pG%c%p+c!RZ_m\uiXXMS$WZ0)\$bf.aGp6GqI(KYYk!FE"cUn37QZ\k\Qlph*&='?R"3,F(,-f[!ljP6;agF=hZb@!JOc@c@4&SDKP"OHoFbYmP'[G.!g3VLFs.cAj)Re!$#_[V5Yb>FI_fMt_0ARV+-\jJWPHmf[#l_:nCC0g<*BVE&VLW#7Ws90rLV*hd4]'e9$k26K=R=5deahT)kV3~>endstream
endobj
37 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1374
>>
stream
Gb"/hD/\/e&BE]*;\7TNXFOt*O,n^uLN_<($qob!HV77Iims,o7no:f?eU>fWHB1b27b,r'AK4@jS@,sFhdErYl"Uhf.\T5k6W$@"9P)e&ck9%RJ]W_9L^*nCC;N*eeW^Y4^WoT.253-dNAS#rJOA3j957=AFc$[Sum=2k'?7[S5IYSO[u>u!9;c4Lg%d)&`iQXjk8iAO"ulk<)bW[U];[`8CFgV2-^LqjR`,X6(2^4[+geOX[/KEk6Yu9:L*S>Pl#;8`7@SN]@9^E`i<2=]I7g.g`K"MPM>!L;,)fI<oG"46t02\kg^XS-qMSMo"68/H2[U6?gHVc?/%Ekm:ZS(]&"F7j7[-adOV];Sk-n2BtQ*`NiWdI@UW5mKlFJ2]St&Rk\RQRN`<uE84B?&2H#$E<BOJ:D`2XJpA<t&c4?$6\%A%[>Y3'tRpO(Rk8%budQVY=:5+gi\A`h:0<.KGa*bW[Yu@.G,4/BP=V8>6;NQCGGms.N8ZnqN]U:l0?iUio+-IC'H>.UX>Qc?N8d^1Uam+q3;M$ej-AsJo.#jP/)8ST]dr*cDi3qOODsrD%c26/Mp3Z1Zg@54@?s^tr8jN&H_C1asUZ@E(I;DL>)"3ehHTj\%BPFh/LaiX&8E6EtXZ*41=a$b"%\7itJ@W#0K*-i5Mu7?VWg9R6e:6QBgCY/M5;]&H<t@V4H1fpJjr<<&S_WAP>s5Z/jI\Ja[1'TG)fh*V)02c9@)meW+X`bF+h)2R?BCHr[qZ"\?YA]JVq^gQ0X/[ZpFRB">rT"hN:k?l<)q,@s&__\6h;>u+uC6/BQ.<dYhO7!"2N82N@WN](rZ.'^Y9E2%o6OA%&Qf94U*U-__^K\(da+R&>g.q[9sANS_jYhqBUom!Q3lQil-CI>[FoXEV\_YEk:WR<)4Y4s%3\]`I4)kJA(O?&VpGu:U@Cl`OfEs@!fll)aM<LaIcPaqoe0_nb)Q4]p^Q<?<3!,c"L5'a([Smj.cd->^pV1+FtD=dAZS#,e)I5Q2GJ$*kK6*]&=%Ii="3*L$0@AA&&S!+<H_;;!K8:ao-F=N?bUUE.fqc@I-?,hM=L3["ST&$R+&,6o#`j4GkAB@%$#;7HQuL;CdG521UZM6;.kIH1OFKX(+h"=tN\PLW0MY!g?@&>%YVb3Pr9ghoSo[l3tQTJ7;Pg8i`Qeq#ie`K4"jqcLV=XR&K[C%cm/PAam?p^7H>>_rLg7%cf=*_]IlHHt`rH3%LN,R2i:GaC-3HVb.FpW;+2%WR*#F^+=nh`'lMCV<"`]VkY8_i<]JdE'+1Ui#YAtEpZ@*`K-_fn\A!(=/$6]5iG&PkR^*$MB>Wlq!fql@46SPVo=^l"i":>OBNc:6h03a'gKe''@Rg*g]~>endstream
endobj
38 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1469
>>
stream
Gb"/h?$"^h'Sc)P'g'k`2_u(np?ZG[dPg?se*44gan0bkA<VO80t-CthZ[4TEeOq--B:5s)_<"D&$O8eha\%cRXSZ9m,s'"0HoJ#5_+tg6%J-g9R\4)-_l/\Rg:6(2\C5B5OF0:+_6V3Kgl,_q]D6MaU-o"AFbRN?EK:f1Q><Sc=d[p)%rWb%R=1>T>G[`?Co_<VM)(l)Sb=e2muJ2nn,:5:>P"]P4&NlUhNQA[FutMNMK0fErS!C5#5g*5u>X-:c'F",g/`9=/0"V`<DA#YBM?Cep:5<-=LX:0tL^=1d*TKfgA\!Y2uI*OZ)UTCl7N3Vi)a:l^BVMqg6)b);NdYM-^^eemi[?6"!<O`XV"i_hVTJ.a+;=A,iSf:rkS$==.p(W%omQZCV=pA'iM4c;U<SjbleKb%9@Q7p1YtC"V*NPXs@m.Uk#(-1sd?MPlBobuS^<^0@c,r;<qErPRL9(,h6cB@En`j_U(!7Gar&aE"FP-#PH0a7E<-XV'ElNH]-$/^iKGRhXsc82BbF5E#M^%-2/<aiDM=!eh.c#n_;g)$ZBR#8?pEjrCL8&UaBa:EUQ+4\,Yf9lNcs$X05<OU'Lg$dA6Yqg'nhDSF&8g[EYtA`<ggi8Vt(8HIL7$I+u8>:CZ]m'<Lb&_sLbb^=pV:sAIj.,G8FZuAukQ3o0W0]%J7q#VFaZ5n72JBHQoMh<O8#E/P/5utBe[@r(EJ"K1jQg(27/o^b3\KpWn*p%*J]ImK-?;9m&CI\:QSZESt>@eqf<@s<@aoF=$=9XlRe,j?b%&=8/$`'m[5jS=3B(moFQS8D"Lkj(Q'g7_tOW=';#D8OY4;g`Q(rhM)0Lp.CP/@YRLO%N8Gs4$'Ygstb?keEIg7kl<6Ro'9>j5)[,;?b1?pN!B!!`6Q0JG-R"U<HDr=8lq*ugQP#;GXjn*ePTfH\k?JO0$Md34$++7>fP;M4L#9C?4EXc1E4A@N.(oJ)3=JDkIBGl-qZ0$ipDf^s9,0l<D3aoMWl;I\i(pIu8&p@?l;L]J$qg"H#qEu-U!?FBe?d*PhhZdn?a`U!'hqYE7fRP$6H<f<66jaJp+(XlM,%p&UJq6:fi!%J[QK^k0qDV_X2rh]`-e_gg8nV(fKKrk'$2ZgW!?irM&LEmMPkQ"#F*[VM-k.$(a>f,-G8@4Y=8.&oa)n\g3iqFX[itBA<=Mh;i'HhMY>"`3*=#aN:_rNe7W^&urMm.?#j?S:-BS)6OO^$sN\fV-rFGqk`$0*=[q%4l&TLcE>\nDY>@ogX3aq]kmd=;SL)^"a8*6@_Yb5dD%OMgKmW";C6o'ef`@0ZpW]<(5VkIf,E`XW:<cLbcUkiIaj5X5i]gd49q`>SfPa]sWVj-klh+Fl]<Z:+GXqdUcLT6+)-gXs53#jCHA"$f*^j6ZadUR*><JH1IpU,ED`9tnr!/:o<%7-1hbd8N:>D6s1iDL&`@m_#)3bS81_5;o4X;#~>endstream
endobj
39 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1390
>>
stream
Gb"/hgN)%,&;KZH'U\-ERi,*((5kQJH:U*aF?3-rA9nUpTWLVf&rF&t[gtlr,3_Y*`%Zs-P-"hr,SiVKbPaD.KZ65WIV*XfI\)YkF%-uoPFO=h$8VF@4I_;dO%Kd-N0Y6.G<?pXG?r9(5beP#f^1=IR?KERIO(+9AFa8Pp5@R!FZQEL;o!sW1+?^t8,o>`F!Zp1qqoTgdH0L?+Fl49$AKh2Ym_n-188?@nW[eXm31%5.=mJBpS3t:g]-#dC4!fUK-!5^U,RM!9c&DXBHVVZh0O*"Z0//[;UW"=$C_qOASF.NGCH#+rR`Q73'I.S6&LDp7b<..pR>#0A:,hh,&CR2Q/q%FUJrDIWMXE::KD;Va?QMP2NQ>Xn;BF;K<SXKI:MHL6PnL5.0olO;(SX5WX.Yj1clu<F!M=_#V_Dk/]dnZ]*L*<<s1Vs2TkC!W8!N#NJfbZb`e,O49>*DoZ=)*H,!Tl=QdQ%=24dhb_:dgIkKs1JD-D"BPHti\V,UeM/Y'm%\u]bD?Jua:oE"'0T/S<H:S3QV>W'U#j7--H7QIAh_2HZIY?KhrtSsfBkPB(O7d8!lRl"VJ3:e7l?Fd8f'4%BH+5D?E@pd2EM?C%gnF+HYh*<O?3<d?^Y)&sh?HcYVj=ue4=)nQS=pEZCRO;@j\Fm\J`E]-ne?/5qeD(&>(NS((pAPn&=-s6/&=3s+`pBpa8p%kqHZ(p#0<PA@5bfHgED9=?>D3-)CKVWk-^ac2:T!lqphoG27logU+"m#SrUiM2`L!oFEt8D(58<Ufj[.jVmA&uD"5PGg5Hn)MFmkMj0"45DP/+QcURGcXU5DEKkqT8X"qUCfJ(6EAIpGGW"%)T&#d<S!$W$1HodB\qCn%"IQ`od2"i)Uh&+W.#u(q*J3N>;G@Sj0-5+kpAi9XO<0$heM:Y93!P(n*L%m0ZGH1h%U^qh^7O6"Vf\^j8>?F[KQq_)d??\pRpf2m@;qo\b@Q9!F;3qGpQn^-*R<-Y(T0\R]KA@:gn-J6:7'EO'7Y(ZcOQKeW5iXmPN;'$p+b54f:St0#gD/;@(L)<:*8.;;)!M)_'\kK:%0MM@ZS\RBGLQmOF0IC2]9_m^+bs1])FZ]q[cGe%$<8;S[ZCQ+Uk"a3C'/At"d_T>"#)n=3UDh*XWu-EM&]:ODu_nK%3k?EKZ'SCM,8eqaPfMsO-CXH*ZkbLGcu_.hG\#k`],hJ>7hBb/TMZ/49<>E!![%S!+=^q"+sII+*$$43,O+d"%-[:"9p;L@_p_'%,i=:3,O-B5;ka?">QE)5JGOiO22V3j38+Me)n\\f_eRI#)3%E!XEOjR"L7VlTFV0HWh8ZHM;YdfN.I6A?=Y=MaV47,m(G6TR-?(c_66jnL8e"_u=)T3Z-P6d0IC@B70~>endstream
endobj
40 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1399
>>
stream
Gb"/hhf%7-&BE],<tO"W<^8L`49"O"f!WDM@9>S"fIKNjM-E&Z*@4kfqpKXu8V+"^RaH;5SCijD,0tH\hY.\P':++BqDHJ'q0><HD`H^-9FAY!,+8?p?;F%_7r+#*S?4C&iI!]0+/VjK^dnQ\o?CWQ1+-^>r^\@XaQ1>*lLQi.Fh(nECCi`V!9K`-jF9S"@bMrMr4]f\?):EH&s.uC#*reOO_#fWM\.g5UZCM+qnjOi%cU:olLlLQc9^9XdWIVUZ$!kHOt*s.%+Z;)"=9>61jg?A5rQKIEV1Uq?_qoC#)HDVUK=dPTP.kVQtFXcfrN)>*j<^9moeDX/jlrVS8l-C)iBXDjp/%0X,UKCn9aje]%a`j[m2_>:UlABA'E'^e<0KhQR&fPGd"M/kcK_9#NpA__KfW.oA'6.';":oQkh5d<5Jcs;6'8m(^nM0Dr!\AXb7#8,@/Bi['39VjSi*5k,N:QT<$-)mT`au>KOIjFM&h4Y53ggW/u<Eb'Q(ZBuJFTmZ448HpB7!k7O*qJA*FjdAbWpFtktWC]K1"dfm<"3oYi<<6ecS+'^fc37pG3Uhk9j9`9<aIMbpeh6!-meB--k:ds7?3hff@];fYklc,$HB&rE\1GoS;)cHEE(t)8m8DuE7l)6AAk'=C!ID2W81;.P6qpHTF=hq-LXRkp[=Y?WOVMsR@KmP>^FbF!_\$$b(UYBP2UT^<$K'5DpOd6KDos/o<m^HPlbGo"*^T8p*#HTH?=NlssA5#CW@Iu=]&MUbSMMXGNDn6ja&q-Pg=rl[h/*"TXH!b>54Kj[AcLnM"gqVYCCuKDta4W;Kk']a5!sb>M#L%77.N%(f2_s*;i&sSG*!@S(0k6G>V1q;82r`E8k&aR:FqV$6+WXR;mgBuJZ6K@erd0+[86GCe@'I8Nrs<)s,NDDh!!_5\rS=%FH?f;4^gR#;kV7V(*3Pr=@$!j3$m"JuF5Si*FEe9LoFZqT!Q3k_nbV,u0!F&h\Fafk4l+Y?WX5KrVSph!gil<ucqA#45R_VAbg*(e+1mWNp8\'mJ;.?p^F[Q(f.Y2)]=U.N4'g]JQ]';:BNWL!`H2m97k=SK=uKkC3O=<Q%HE"12X8s,Ip7P\DXiF`q*MLa6IgI7/HaQ.BRpE(0o8:HFT`mc:D4&dEnJ5G[P49uP)ss%&s7.P1'8FNbe4t(0MZ3fK,YULrJ(c>`DFL?UK?Xf@c/^H_6^6h.F036&"#.'0ipY\,75#'a,%Qh'A:5^V6;Xb:gO,t%fnRB-"J'5;'8E!F)PUS*7Dh\I$J[YHPmgj&]d7&9b,UQrSTpN"$(Ie6VP0?nH,Z5U37C]I+DWD5RmlVr"$p.KYI?i9%^up+IJ&7WB;*gWDZbWiE[l0!":4T$m9:*mgfih;?"Z#$Q_E^ec~>endstream
endobj
41 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1437
>>
stream
Gb"/hD3N[3&BE]".5]L4f?Dl\[B$4<lU0*7Vpjn,,h'6.,i=a"OT;rXIJX<<%!Dsf\7F#tb]/0GQI^QQir(#$j67**YC=XHO!?Q1#n-qUPmf&g2YruX(_&Y;eeZ)PY:\c(GWH1m6`;!P8:q?/i=d/)f`e>Cg#t",4^4J*RDu4$(H_q^!h&-6'6'*3%s"_\2T.e/T3i%F;D0O;8sN&0Q=YS_*a/;TO;jlb!rMooZ'2UX410E5Wn'c2_`X(Hi!HZ@-bs#Zpj-](.9.(OZ.dJdB4a<_*sT8`&'p#;gCl>EKl?`!R99un=(;g&+>LE"is'\sqXq$V=2E.M[WS\;d0:*V3]S\1okXN8=/^DXOH.@h$D/ag9Lbk7R<.(o'NE1CLqGFg8@$En<+S-^7EhUa9)Zj`j4.sp^QI9Xn!@6=5=4drJ!P)'j!N!HQi"aHd@s?m>]rslE\_[9DDn'*S)m[U_n9=r[>ImE[(V@b2U:nuA/Y:!?Ut,K#'N(Om*4`S"62KZ5fe6CAW20I7EuHi:r3$\<u6+T$6Cp-@,P(_/FX"*887%5,'b\B-4En`]WW^#kl-"3kP[]':cU]`&LQP-G:c_.G)AHQ>Y)O?o>XKgf$lO8qpds4RU)&j?7t+gSe$U#GB`lMGlD]fS1WPBpTs+g*)GS`Mo"<#Oc/qk&$)nY&0u2uS@BEEA]+lf_HeaR:Pbe;iK"j\ei_K;r[n)`*TX$E6aL%WlG7M[?MuY#[:FJ]opfpC7VYZM?WDf]),dLjUafJ&UfM'"L4QdfjL/YkXi^VQ")JFZI[mSP?g\+%d^0%/I1mtLk)D8%Z_"]LQHT*6ppc:L4(\0K_T!0+4HrBqlp;u00rEcjZlM+,]<I@KNA4e.89Cc!fa3J1Enl@>3!d[*#aeaiM+D*U9Eu,#(\g$/OW4m>J%GO!bQSdAA=Ug:I>]qFh\8Ub[C$$lfEEPO`'TWM?6SmV(1]c^1tl.MGQFIN;j*Z7"\KCECc!RSU]\<q%,;'u^1G/L(HO\_OGMr=FE-^%dMb0Oe^qj(SQ\.B!G(FH-&tgI#UkC.`]B66>\^+;O5+F#PJ]bQWtjmKg5nZ(.J+B)A-4:A(+HIr^o]mZO@#mEOon>ThoS1U09_#bW[ERn*"F(rccKg14_6NZ+pUQ6-\n95cBK<G6(SHD";aZ=(]j^P5(.'d6AZQ,JJ$>M*Z30'(^0@B!5ndtq8O#.kVka&c&VsW!OY_=TKQgSn0'#JZ/>J(P+*QNN#;E9O8nJ,a2rqjh#&i-[=s)$iuBsA;APdQ8G6t]DUCtWrD:7^d4\q8'+&ZON(D"5`%j1rfDQ?%;d@1i>sK$ui[#0R;\i77F@E2t_+JTS\eh2I`MOtbdQBq%.IP<0EE09N7++E?FAG)a-&cp!r89b"10j&T$?(XFW">3PJEcfAWCh7f6ta]7*7tp/b@#ru-Y<`g~>endstream
endobj
42 0 obj
<<
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1049
>>
stream
Gb"/%gN)%,&:N/3lqCbccOe$(EV3PbfU6>4S^q@-IH:X>Pt72kdrt]aKd9SB?&H'-:""g\64,]j*ZaU1HOtFHj5u^^!8\t4T-L"ZU]coU6LlXs-'Q(k)aj\s%3hD+_^n!*d#?$q97XPN"j$hCBRYWq'-nskX8`HFlH9?DBLi[_@i6I,JNpqt"0X?3OZA5?XS?&grn*ZgqGUCrB%^JOi<M^jRU.1Pc&RT?c&J"Xr#CNr_^_^;P\,f:K*Vca*m0ZQZbf7enGN3kaGA\A_bA4\(('t$-?:>uKH?g9>h?<\SYSujFGlmHqlhMaRo^qEqg"de#e.>jYj3ED*CD#<7=d)0/R\G6__5rooL<-Q5M8MdCf?$FEIU:)XOq!QWg*CtApL22[ZSdfNiYiA,YdF2-p5g,mO^4)>)\P8`0>&5rg[$gEk-MOamJ*bjm'\ZVcW<Tl/R/Z(/Xf%m+s[k4jp-8A+E0B8ZNbLbJh>*=,jWu]O.-Je>@Sg?2-6)@eU-?r0:Xbr3J'7I[7jkj:hrtGpt%C>@pJDP\(eBi=raB;27Y1r<K5q)I@Z1+n#FTT<3*%dKng>ecQj<gpjY.f0]%Qj4e/FW]I)8&#b+LTa$aS*i"BEU!-9Ra)ld^P0sC*9<"<iOQ&l@?(QCK3p!0$ML-gamW=?;Pc>SI8Ol<RH?jjV_WYBi^Fc-o0ss?_&)U.r-:;Wb"&.,="\chQ]*SiU`.tq7/XiS`(sV$c\q.8>0WK]NUfp##eGs^lC4OZI>!NqT5hM/6&4SOmg[feK]s!K44G%"'0,k,DoNK/jqKr5ML1*apf6W*YOSukBR#,JZdh`r-4/RoW__B`\46XsDUaG2cFKUS.Jd:ULZg9Q(@8)kERUJ1g;4RS`q:0UKLGTtlDeFKZTK7T9hpa@hMYgaA"rc$)O5Ll=n2<A#?%3p$$uT&4^Og1`bPY@?h;"UAn\`6H]:Z4nDQ@?6c<7kd`8th'itmpJG1ds4IU(bg0e26bOL?Y<mRXeBZdntZ@m!H*?^Si?k`3F)NPCPq5W/UbN!IaD7fnm(!N'tG^A~>endstream
endobj
xref
0 43
0000000000 65535 f
0000000073 00000 n
0000000134 00000 n
0000000241 00000 n
0000000350 00000 n
0000000462 00000 n
0000000667 00000 n
0000000786 00000 n
0000000991 00000 n
0000001196 00000 n
0000001401 00000 n
0000001607 00000 n
0000001813 00000 n
0000002019 00000 n
0000002225 00000 n
0000002431 00000 n
0000002637 00000 n
0000002843 00000 n
0000003049 00000 n
0000003255 00000 n
0000003461 00000 n
0000003667 00000 n
0000003873 00000 n
0000004079 00000 n
0000004149 00000 n
0000004433 00000 n
0000004606 00000 n
0000006289 00000 n
0000008501 00000 n
0000009864 00000 n
0000011100 00000 n
0000012458 00000 n
0000013785 00000 n
0000015063 00000 n
0000016495 00000 n
0000018034 00000 n
0000019565 00000 n
0000021123 00000 n
0000022589 00000 n
0000024150 00000 n
0000025632 00000 n
0000027123 00000 n
0000028652 00000 n
trailer
<<
/ID
[<0f16994cff7b04926980333b4fec6185><0f16994cff7b04926980333b4fec6185>]
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
/Info 24 0 R
/Root 23 0 R
/Size 43
>>
startxref
29793
%%EOF

View File

@ -6,16 +6,24 @@ from pymisp import MISPEvent
from pymisp.tools import reportlab_generator
import sys
import os
import time
manual_testing = False
class TestMISPEvent(unittest.TestCase):
def setUp(self):
self.maxDiff = None
self.mispevent = MISPEvent()
self.test_folder = "tests/reportlab_testfiles/"
self.storage_folder = "tests/reportlab_testoutputs/"
if not manual_testing :
self.root = "tests/"
else :
self.root = ""
self.test_folder = self.root + "reportlab_testfiles/"
self.test_batch_folder = self.root + "OSINT_output/"
self.storage_folder = self.root + "reportlab_testoutputs/"
def init_event(self):
self.mispevent.info = 'This is a test'
@ -24,30 +32,123 @@ class TestMISPEvent(unittest.TestCase):
self.mispevent.analysis = 1
self.mispevent.set_date("2017-12-31") # test the set date method
def check_python_2(self):
if sys.version_info.major < 3:
# we want Python2 test to pass
return True
def test_basic_event(self):
if self.check_python_2():
self.assertTrue(True)
else:
self.init_event()
reportlab_generator.register_value_to_file(reportlab_generator.convert_event_in_pdf_buffer(self.mispevent), self.storage_folder + "basic_event.pdf")
reportlab_generator.register_value_to_file(reportlab_generator.convert_event_in_pdf_buffer(self.mispevent),
self.storage_folder + "basic_event.pdf")
def test_event(self):
if self.check_python_2():
self.assertTrue(True)
else:
self.init_event()
self.mispevent.load_file(self.test_folder + 'to_delete1.json')
reportlab_generator.register_value_to_file(reportlab_generator.convert_event_in_pdf_buffer(self.mispevent),
self.storage_folder + "basic_event.pdf")
def test_batch_OSNT_events(self):
def test_HTML_json(self):
if self.check_python_2():
self.assertTrue(True)
else:
self.init_event()
self.mispevent.load_file(self.test_folder + '56e12e66-f01c-41be-afea-4d9a950d210f.json')
reportlab_generator.register_value_to_file(reportlab_generator.convert_event_in_pdf_buffer(self.mispevent),
self.storage_folder + "HTML.pdf")
def test_long_json(self):
if self.check_python_2():
self.assertTrue(True)
else:
self.init_event()
self.mispevent.load_file(self.test_folder + '57153590-f73c-49fa-be4b-4737950d210f.json')
reportlab_generator.register_value_to_file(reportlab_generator.convert_event_in_pdf_buffer(self.mispevent),
self.storage_folder + "long.pdf")
# Issue report : "We are not smart enough" : https://pairlist2.pair.net/pipermail/reportlab-users/2010-May/009529.html
# Not nice but working solution exposed ther e: https://pairlist2.pair.net/pipermail/reportlab-users/2016-March/011525.html
def test_very_long_json(self):
if self.check_python_2():
self.assertTrue(True)
else:
self.init_event()
self.mispevent.load_file(self.test_folder + '5abf6421-c1b8-477b-a9d2-9c0902de0b81.json')
reportlab_generator.register_value_to_file(reportlab_generator.convert_event_in_pdf_buffer(self.mispevent),
self.storage_folder + "very_long.pdf")
def test_full_config_json(self):
if self.check_python_2():
self.assertTrue(True)
else:
config = {}
moduleconfig = ["MISP_base_url_for_dynamic_link", "MISP_name_for_metadata"]
config[moduleconfig[0]] = "http://localhost:8080"
config[moduleconfig[1]] = "My Wonderful CERT"
self.init_event()
self.mispevent.load_file(self.test_folder + '5abf6421-c1b8-477b-a9d2-9c0902de0b81.json')
reportlab_generator.register_value_to_file(reportlab_generator.convert_event_in_pdf_buffer(self.mispevent, config),
self.storage_folder + "config_complete.pdf")
def test_partial_0_config_json(self):
if self.check_python_2():
self.assertTrue(True)
else:
config = {}
moduleconfig = ["MISP_base_url_for_dynamic_link", "MISP_name_for_metadata"]
config[moduleconfig[0]] = "http://localhost:8080"
self.init_event()
self.mispevent.load_file(self.test_folder + '5abf6421-c1b8-477b-a9d2-9c0902de0b81.json')
reportlab_generator.register_value_to_file(reportlab_generator.convert_event_in_pdf_buffer(self.mispevent, config),
self.storage_folder + "config_partial_0.pdf")
def test_partial_1_config_json(self):
if self.check_python_2():
self.assertTrue(True)
else:
config = {}
moduleconfig = ["MISP_base_url_for_dynamic_link", "MISP_name_for_metadata"]
config[moduleconfig[1]] = "My Wonderful CERT"
self.init_event()
self.mispevent.load_file(self.test_folder + '5abf6421-c1b8-477b-a9d2-9c0902de0b81.json')
reportlab_generator.register_value_to_file(reportlab_generator.convert_event_in_pdf_buffer(self.mispevent, config),
self.storage_folder + "config_partial_1.pdf")
def test_batch_OSINT_events(self):
# Test case ONLY for manual testing. Needs to download a full list of OSINT events !
if self.check_python_2():
self.assertTrue(True)
elif not manual_testing :
self.assertTrue(True)
else:
self.init_event()
file_nb = str(len(os.listdir(self.test_folder)))
file_nb = str(len(os.listdir(self.test_batch_folder)))
i = 0
for curr_file in os.listdir(self.test_folder):
t = time.time()
for curr_file in os.listdir(self.test_batch_folder):
self.mispevent = MISPEvent()
file_path = self.test_folder + curr_file
file_path = self.test_batch_folder + curr_file
print("Current file : " + file_path + " " + str(i) + " over " + file_nb)
i += 1
self.mispevent.load_file(file_path)
reportlab_generator.register_value_to_file(reportlab_generator.convert_event_in_pdf_buffer(self.mispevent),
reportlab_generator.register_value_to_file(
reportlab_generator.convert_event_in_pdf_buffer(self.mispevent),
self.storage_folder + curr_file + ".pdf")
print("Elapsed time : " + str(time.time() - t))