From 7b4c6e9086d2448da57ed852fbe983ba5d54ccd3 Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Thu, 4 Aug 2016 15:59:04 +1200 Subject: [PATCH] NH-3943 - Use NuGet packages instead of local copies of dependencies --- Tools/.gitignore | 1 + Tools/NuGet.exe | Bin 1604096 -> 0 bytes build-common/common-project.xml | 17 +- default.build | 6 +- lib/mono/1.0/log4net.dll | Bin 241664 -> 0 bytes lib/mono/1.0/nunit.framework.dll | Bin 45056 -> 0 bytes lib/net/3.5/.gitignore | 0 lib/net/4.0/Iesi.Collections.dll | Bin 13824 -> 0 bytes lib/net/4.0/Iesi.Collections.license.txt | 460 - lib/net/4.0/Iesi.Collections.pdb | Bin 38400 -> 0 bytes lib/net/4.0/Iesi.Collections.xml | 541 - lib/net/Antlr3.Runtime.dll | Bin 103424 -> 0 bytes lib/net/Remotion.Linq.dll | Bin 207872 -> 0 bytes lib/net/Remotion.Linq.xml | 4236 --- lib/net/System.Linq.Dynamic.dll | Bin 45568 -> 0 bytes lib/net/log4net.dll | Bin 270336 -> 0 bytes lib/net/log4net.license.txt | 201 - lib/net/log4net.xml | 28655 ---------------- lib/net/nunit.framework.dll | Bin 147456 -> 0 bytes lib/net/nunit.framework.xml | 10892 ------ src/.gitignore | 1 + .../NHibernate.DomainModel.csproj | 10 +- src/NHibernate.DomainModel/packages.config | 4 + .../NHibernate.Test.VisualBasic.vbproj | 6 +- .../packages.config | 4 + src/NHibernate.Test/NHibernate.Test.csproj | 36 +- src/NHibernate.Test/packages.config | 9 + .../NHibernate.TestDatabaseSetup.csproj | 7 +- .../packages.config | 4 + src/NHibernate.sln | 1 + src/NHibernate/NHibernate.build | 2 +- src/NHibernate/NHibernate.csproj | 24 +- src/NHibernate/packages.config | 6 + 33 files changed, 97 insertions(+), 45026 deletions(-) create mode 100644 Tools/.gitignore delete mode 100644 Tools/NuGet.exe delete mode 100644 lib/mono/1.0/log4net.dll delete mode 100644 lib/mono/1.0/nunit.framework.dll delete mode 100644 lib/net/3.5/.gitignore delete mode 100644 lib/net/4.0/Iesi.Collections.dll delete mode 100644 lib/net/4.0/Iesi.Collections.license.txt delete mode 100644 lib/net/4.0/Iesi.Collections.pdb delete mode 100644 lib/net/4.0/Iesi.Collections.xml delete mode 100644 lib/net/Antlr3.Runtime.dll delete mode 100644 lib/net/Remotion.Linq.dll delete mode 100644 lib/net/Remotion.Linq.xml delete mode 100644 lib/net/System.Linq.Dynamic.dll delete mode 100644 lib/net/log4net.dll delete mode 100644 lib/net/log4net.license.txt delete mode 100644 lib/net/log4net.xml delete mode 100644 lib/net/nunit.framework.dll delete mode 100644 lib/net/nunit.framework.xml create mode 100644 src/NHibernate.DomainModel/packages.config create mode 100644 src/NHibernate.Test.VisualBasic/packages.config create mode 100644 src/NHibernate.Test/packages.config create mode 100644 src/NHibernate.TestDatabaseSetup/packages.config create mode 100644 src/NHibernate/packages.config diff --git a/Tools/.gitignore b/Tools/.gitignore new file mode 100644 index 00000000000..aaf208d49ac --- /dev/null +++ b/Tools/.gitignore @@ -0,0 +1 @@ +nuget.exe diff --git a/Tools/NuGet.exe b/Tools/NuGet.exe deleted file mode 100644 index 2c9369842a726da0644cf0316734b02edcac4ac6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1604096 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�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 z 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%0A5^@5i4stoA74iV3 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

W$N^J~-X#i!-c# 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 mK!UbO{yoHse~ - + + + + + + + + + + + + diff --git a/default.build b/default.build index a53b256ac88..87a49004228 100644 --- a/default.build +++ b/default.build @@ -228,7 +228,7 @@ - + @@ -271,7 +271,7 @@ - @@ -289,7 +289,7 @@ - diff --git a/lib/mono/1.0/log4net.dll b/lib/mono/1.0/log4net.dll deleted file mode 100644 index f377286443bab27a6dd01ba90cb0119da005faa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241664 zcmeFad7K<|nLl1rRa4zlGm~U8Gu@MOCMT72caljsl5m9^xo?vQCgBi>K!xf=g{EWV zP((mfRKyFj;C&!o$a<~1uIm}EU3FnZSJ!i0S6$b26~6EH^L*;)?rMnWZ~ysGd1bol zd7jVnd7kI@~b9}J^k#7E5nN~Sur^1FE*^t zIL@+8>2a*)k|U0eb9>a9wxGYqv#dRkY(k;)-)Qddp|l$mK11au1?89PQQ!gp{AO45 zk_SAezjCLv_`B~7j&(Ah!1wJ5lLT#9pK`2$%;SFFPFPkkLtMo3iJ9jWJ1=>`PCPGe z8olnQH?KvLd?ViV%b%D`XZr(q}HvB{t50pT2$C z0#94uX$w4Ufu}9-v<05Fz|$6Z+5%5o;AsmyZGrzkSb*bdTpXL)`0w7?V|}S;TYUs( zt}`Yu9M3#=yN#alqQ@8he&ho;ziaWS=iD&)`-k54wMRa3%Wr;q&D}lAe}4DxzWl#; zFWmgnf1Go7|25ye_%oANzwGAAzWBy>Km0N4-`D>7rV}5T_1>4Q|K?{ubL!z!drtnu zcYbd-md!Zeh{j0$s)e_1fBQqv*!rzko%p`n|8(aAyD$IG`#y5{jl2JG>#DbJe(uDZ z@B7u*dCUL%85hi`4X<*n)kZkG)Px!?etiCnH2e7zEVnG*wu1_O!YcmM%bw*mG2P$- zGbfwA!Q{1xsK>H)*bU4MxX}f;4Qfag{Gr$K>|my4c~b>DSOL((NZ*6;IqkT7xm9Sl z(eSDs3nExxH)J<@!OpK(-g0Yrm7UBL*iMs(PCDtG$oBi4SFU9VZ-cEH5k}d9C-68;J=q)8hG+ zn&*Ttk2lyiy6HGrLkgc0KhVyqOrLtzh+paR!s|dnBh>cU;VdMqqLjih+)N$NZ^Syh z$J$W{p949jhL;-HMSzKDQ`S_``0>M2g`z1~WYKdV{$N_?;4lh@jGtQ|pi352@;taII_AV`?*P+gai_p|?Mbtm{) zyWhFi`XoJFvsSgkxit4;W6*zx=7tm$A z>bMsk1Z-)tqJJ;JE0i_k-C3LP14TH{SQm=9r5Hnvp(9WQ%= zUfdj{nx!TJnrlxy{`lk5n+SG@pJ2x#9mWG=m)3PHGtz1%Z843AB&H#%qI}6dmzIcx z))(68-DrtuqlJg%^Cd#`gc|B&;WDT)aSF`-SWm__@EEzA>Yy#y5JvMV{b~hyNb-ai zKo=S&R~I5c>sp%)Pdk9f@C_QI8rTggP@6E``BM0T9RTG;Z^o^(Gvb|Ut@7kBJdEb4 ze-x3vISqFR_aky6??VD`@)qFtytbTP%PYj`RcD%1|SZz3DNpVJLXylt`;PW z^Y1f~uZpv-s>;=A`s+wGHTbp&bfEq!w7S%8(8;O;jx8k>&SfxBf%*$2XKz6Ss$AWI z7m1wkA?Sqa0}~79iCne7#WP&IYSCB+!mw1Tv$G;rJ9M?Fr(6i-w4exsV#tY0cG@Qi z=CS;vamU)xoQ-VI!~nt{xSea)*P>Q8M|oRnqGqyB64x<}M`%9seT|63FO`-VVs_^sxAV)=xUjEEgH%*}f4}EoV@-J{v7%09pJ>Z}cwE1c%|?bYWAGP0FpAl;t&N*$tLd_2?0V z2FdJjr1fode2#-kUU&o^rxx~m)qXELlK0NiDfEwgAft~WFVm^9Dn)xl(=6X+^~{}s zMsKu=_gRkiTbkC~*I5gBKVcnjU2a`rU4m$KzIBv!v9-d36DY|ceuAS>{Yf6^$vLqdSn+K4a9Jv zGJB{HBCz{A(U-CN3!2OeH$o#|jsd3j$kgaiVHaAmp5fw9v04}^N@+f9O7>XLEFJR7 z8;89iZ>Sg1^0k#KjQL42j+yZ*`o?GnL#;0;0wmtfz-lTJ^6#VRaExwzIf;D-_! zvhDChFbwd=--!s+)1*78RqO`CSBQ$^+jLaasx4sEZ)|oF;8T8~>J`+?Qx#+>9`;hm zqKQ*edD4wW%_9FPYx(PT_w*n#+17#9;8Cgmr=Dt6)b~<*WbY_DI$1Oxe2O8nTnb)- zeqR67;yC+nNcP0FXaCr2s4rs`@|-clTHKx&`R|0!B664*weB)J8uz_`w;7i)VM2oi zqmwv-`kO}N@MK!)m{_z?kCq{2yJ(t-5rW*rqFQM+7NPbEV%;qeJXM$62$-fErlYpp}b zv}dr~W9VOJ?da>7t!X#+3|<<;D?Nj2dk$?cZ|3&bzSz%RWSF84u>j?1W;jYsjHTF% z0GdCG@ssw~wSO=USZ*6iMAF`(7QsI!T4>Q;%Y}ge5#Z0PQ~oF-q@e`4{E0~TD=o#$ zr6nSvMZ^VP>XJ(^y_j7Q& zb1S?O@&xCiGP&XJ5D-J$`ba>zp`TnZ{xW1>*MEv$XcI^?NK^hwr{ztuS|R!qDhoOS zqXlb+T9N!*8UK;a3C}|&zTmyGMEL+!+^_Y)!^i@I4$V^MuFy)T91Z5}gg=8Anzv*9 z8W@D2A=?R{q6h7iM&?s~4#HjN1fh+s4i>`ag20oW2`qFFGAvJC z;)iMp%?xSAHbsXMxC!@u* z6A~j>r6mO>D4}t6FnAVHdExo^TY(A};1_Dr4`ELkYo>DxJ?x{%6^{jJk?wh83e9{INp_J=epqTGPr?Ysr;(n<&KHqLoijCnmeLgh2P;W4VW0nSCH^{TR zr8J3>*p#GK@R)+Pw1Hwm8d<8$Z4Lm+W;a9iAClvntcK8N`W9BPS=1LXb_P8g@ zZ*HI&lCsdcNLU)f5}%OHl_anOScVlTuIuBpALid~Kt^W%t^PNxR64CAbcjfDp@JTR z4DfR-e{|A&e8z1yYFqPY5$DP2od?_K9c$$i@pr|4`~#_2pOiuHBM!R=x-veukCZHoD9qF2r{GKumqsVKF>-4W zNPKXt8uAzab;1|Yc3x>^fAlY@BeoWU7hVq{^<@v^Y|BDtDDf$i+a|GZyQq|r#bV$_ z)UpH$gJy=*CEtG|hAnf0vsU zphR~iL~NqLgK-glB^P48)MfQqjZySDw`Mq%H&sjw@tx9Y*YPHoMz<8L9nP(Y{yov{ z>FrT{n8mpQHVJOQ{K2)_2Ee9TXN^~Kf=c~!Y;y&E=X=gd+kx?nX7p|Jp;WduRoa>u ziSOuHYdhkE*Tj{F`XzH{j;qCTts0It#T=uFBWa1HbxZL@+SO6~?wB#s<)xQkl=M$> z^4^o?os_5H{USvPU*stldKA|a%r=|tvR<-mV*gO(v$>nVQ53^ zo@o-hHVDJw3JBB=netGa8+USA{3OQpz=4sFJZbwr${{$B+{7ovLG~E;{8-R9oyf20 zUXbD(@jaA_Ntbb2@Bv=l*5a&xF?dQo4q>W+3_f(gXeIr0I^=K;3^bD z^#b_`(QEU=9R!@BJ0^Bd^dP!&)xJ7EC2_)On8`3R0wHE!{L0*JSoEvta>z5^Ua0hP z*|M(2`DX3=Ax*MBCSH3v1>Rr9j52@2*I>Mzv!`UvqGb4OIIHhbhKl&6a9QARy>wL9 zO9}D9SAyZvWO4LINI+SRL^{gCeG~W5Z6~47weij!m8I5i*I$9uO)^rD6TT`>zLK@z zkWTrS&r0M|6`lLdo)pQ{KpDGk|0}0A9-WxQ3X?MQ04!%{#sktNm z6xvT_tw4siqmAR-13XIDLrs0UqCc1S@UF{9f#rLI; z0ozGik;Z7pS}UoMUMF17N#wNyG_5|HP``N=q0z@t<(p^9?YDS~p$X^1GWrJJVTozM zNttK&&M{@KE<}iYjPY8&%rKXhh&Eb^5!1HM7iRklR4qH7tFlcOe>ykABhy!LnnYk< zpJV+9{e=~zHG5u&Xj?QVsN|3I+rbZL23hmNmL`fEpx=NwLWTsfWrIQo=rH*GQ+_&R z@T%LeKudcB=;ZpN@2cgQV8-+|5d4!H;eWP!V}sMar_Sp_`Jj!w|0Im!W` zxw2-3n*g0+T_LX=@70c(li_-SCdzXCq~V(Incc}}WS~V$uX<98;D@#7iIEb#Q56^e zQT4COfD?NRRH|NW*?v=Jt!Fn_#4`Du)$kjg8uksS-HKv2u1dEUiSXQ4zHP9jW$x8T1$#guA|7PqW8(+OUNK~>f5^DA@Aa^T5eQ%pDO>Lw~(f}m$e+6k*^S(DS@Cvq3!$sb1N zU-x?c82&iin=P?n6c-C*$Q|nS0(2Vvsez#a)-K~U>C=bd!O+$-ro_g8QuHdZTM^E} zV%$4a9E-lDpjpZepx9Z8;&em0e2sPM#HMetW_}=k4S9=o;on)OFM%0y4GLhl7<)W$ ztEBE~y_V&dF~l*{GVD?P2_)~YEOmB|C!IDUc{wFD8 z`Ltai`#9#c$VWs%yIOR?YL}s83(tm27#Hwj5(GxiE)B0pe|}v=6(@goS%h4)ja*ImhtZ zX_r*_xKCA_k*B+kqcAOm_JKy!vLWBY+W2yR`xhy?>~EigW*e=Zu?y!+MA-0sP`Wek z>VbKA=Z_@@kuNVh#A+3)^8etk>Z<#S4@`WcI%&-DB1VB^Gswx)xZ{H2=+1{LfX!59 z+JmJ%ING@vq@_;~{+{`dh(|#H;?^OhwDYpjrn*YA;r2!;7M6Go!4E2U;g1nMQKgM# zbXk&m{JDJott+22_$XiP7aWw>C%2waP}H-`UdVED6JSsji>|2pnAq`~&r%3{8w=V; zp`e=27Ua*hFqr;Snh_WJgMVK7G(NasZ1)Bpe?s(Uq?}nFePxZlp<51mfEN2_`(%_g zS3e?>IHEC!;^op3kMO-uMCe7|L^lGEg zJ;=<7euclf3lmY;OI|FJj(|#y9rDro8IZaUQumETx5|Aib)V_t^@-HF@z&9>=V}lO z`eBK`CuVb&7*Ob^O9>{hm@z163WkoSr{U&G=j)A__x#Av5_8p=C zu@p1hedBSz{oB^8|5P8bt!G#t>+Ok)(Rf|=AI8w6ZehKxRTP~&%;3}RQ}8(ai}*~e z4Q_+6Y%IIH6gR>=UK{c_58E}}Et1X)Uxr^z!Mu8s z%4RnxL3juHycL;&Ahx^ki?s=FqeRJ? zDXT|{4{wi=oX25b?y!t3YLD>cDUF?$tC3e|!aGEO*1G-*19Q{4n`|1lH+-c~Q0{Jg zUzPAhzeoDW=~^+pHSRZOY;h-&7z2`TF3qbuY1;J;U$Y-HuWhACd^)RVco&FtoHGJ> zd8wyiGWeJD%!5$w*Ge0F5^(TujDeHj(x5-19X4*W7PRX3QoMLKVTn*+A&G=#OzWCD z9s8cfd*51fcoK$12L9pv3}T^m1k2pKM;bHSq%}$N$MnlqdhI&8s8+nRmmRlLMQi!$ z&OBOtBDg!T1^PyEp*ej$fvxkLZtw=7q;F)`V%^}42|PP~3syt2q|b9C^=Vv`)Fk>r znqQL$&}Qb}Mg*qIfT%}v5F4Hk={87RSP#}=+C~gI!J8n1?{V?Xui*vTd+@u|tvO?r zp1J+DQy44P-vUtcV&s#ZXPH`t$sgh7Bg{pshS;d=z~5rH7xcm3;E#;r*plfy%1moz z>t6L`?QNPE(fr}K3F4c6T$|jONuod@t7Wzih6L&(Gp#`r`?EabSbUV&lpNw%(jJ>y z>`6j9IE`qOMAw-PXpKB3T>bL(JqU ztc@Kjy2Wc_!a1`x#^>-Ut&JVm!8fxuMz&9JZ7ioO5Q#-ju3W+^c%MdMt;a>{iPpxl zvdY>RS#WJk<@}4*#-4=tQ(hZeOeeyHT6;O9wRhjk@cLZd>go&TSmIg3I9{Q@fHq(| z5OKU}X#+?F}yP0sFlDFAcGC$`Ko&+4xnVrH3TuK;J5F%P{UO)^L3p%-a)?jB&Al}r6IdxCdE!r(plv)3DoJ|~D-lC}*wJK`ejUQgHdWG5c%Ljl@k!XP0d zQ$3ccdfES>Sd<|h59=HuO`coEL?k+#DrJB{Og=3U3GHb@i*8mvEfJvgtQy>xqev9nYeU4{(b2jcL4{J}I- z9n_w8`{md`fV=ShfG(Xn)0_;W^GgF*OT-9#$6hQYN}k~ZpxTS&#LWVom9g?(tSE}7 z7iGGsP);YwH0E2@s#VsR2-_&t^y(J#7Z?&-+831;%km<1_yI^^j|2#BMqk&u5cFq= zuh8(dLA(Az5D7^I!&xb*`iElB)VlbE)vKV0Vq5C1s3MbZcqfaqeI`4Z^o#Wg0&88T zKHA5m_~<{p4!&$U4H$MJbZv)p_JnO?r|?z0jUI*o!G|f>6?_gp!dsmFByEAlw=<<2 zF_z7*FGM7D>nx#Vwz+kd2+(HtTTrgFZ$aPrBV<1te6sIaH$)S&PJJW93vR-nesBD+ z@Igq7cceecpYbE)(QZ&EcJug)SG0eQ33|N7=7h6wBk!zv(XXJn+~T!ni(7Dvv8 zkT$Tiy4M~rPtJ(W8Nr<8t@xvJma?gQ9^h{x{GSqdrjrx5yXT62pMd7MzD9)jWoI8J z?H6DQ_3uDum+KF~f101>z1dcowC~!t{$#g&h(JCr=asDUC=<_F^Xh*KhIrraC)A@j z3SS!rz}{DjyGV9}DZSuh0PiHU`6+T@zrw`{5PI3c%UQmUd9T1v{o^2Y0x0I!u!?dA zG2(#HOz<}=k8lV- zg|tiU>uACNf8zIhZNC31m%$-BzqAT#NX$3e(97E5WbLOud_)RYZDd&jwevrOr8 z%kY04{#Q;wDTt*@O|f)I7PKp?VsKf&m5I1Ol&mr%el~bc9LDm?n54l1OJ&N8C5V9h zEo(fwhVvoJN+fGIuC*KTZ4&(`V0DAtpnHWMLFx0oJGxVVKRyn5@|ypECmZwJ^4s`4 zaUY_akjgFx@1x^1s3E9B9KC?uh8{O!z$rNI3XgXvKo!{2T1J%Gw=hwSg#ON zc>Y$hFBsVSfSu7(+U~p6mDyFm0VjYEK8~EKLkvGaQFBQ!Jy)et)78VJc7whKL7d?I zlxQ@16>5$XO_WE$G%Rj&RP~gB|m^fzPu1m zDwTJxGrr>18_}-YMr`R#%L`3-t4=*dZG9>7dlqe763s?rZ)au(-EMr18G$XQ(c#>! zyE!pK@^%L}4 ze?H`ubGO=r9WFW|=s;0sn)?ef?O#2)C~^-L`hvGX!~l+oeS?@yUR@gQtt{d8z`KQl zXaDqts4_mb*I`%R2HY)0cW5JfM?-jNarHMa3!OPUD0(-vEvSw)5Q~l;4kWUM;&3nz78b1wq|ULLuB+fti+SAyZ;k2ct?Q-}kX`*YNEA-%61WbyIrtbG zlflPK@ND%JjzNwWhl8yi772%#H${v0i;%rmd;|KUxB~6!+;0NR^}S;@a!zuE(9M0d&D*NiEV3@)weEB z)?N!^8*2+>#c+ZSSnFMj=|c`KXwPcz+Ee)?BdhQmEb~!sP48MPF`{(oJk|NSN7mca z@5pA^!bSzG=v_Ngs3d%xrqs3L`8seC;0I^osntiMm{gM4(F4%QjsDo8*;)o^7jI>U z--I|ATyjgV9N~qxcUfddya)uwW_IO3ywJkx1AbW8hr)C?JkxXi@wLY_spKLo7%?K+<$`c zptY4{Qa#O)@m%;VnqH3`8>r0Jmt}XN`S0nsF~PeUSRo1Cg+e#4&3-rMwb{fUO4jlX zdGE?P)_ur(8}ibnb_S4+i0-&@&5Y@ZNU_z;cdeY%)1RmZpL(H&($$qLFy1j zcVp4Z6*SAk)9mPP^l1(@iucC5>2*k_;jB8NSRI5mbi|rl7_3Y$lsEPl<{WV?&KMmv zOKLK2QbVq5A+u?#E?1|jZbMB=d@boah`+rDc51T!U`sDzbj_UTBM?UurcuEh&Hz4n zJ&p=CRf=~{m@aqEyktOu@R}J=7`j7Dr(~r@pV|R9=#0IT{D_uDEDaK^JM99W2{X|H zaU~$L%vL(KpxO06J9wug8pL0?f{6`}S!1OhACD~;-yuE$cD+#SD(%FdK%f??jT(({ z;-4P%wst;f^Yy?YC1b6ss;A>X|Xczl}`;l54OzZaKN8`egM1nSbl^D^z zLnQ4CPleS`Uy|*Lx~J_skoF?lRJ()gFxO()ZtwtdS3_`D+fS*p+10jWKJRC_+|VYC zVq4exKcEIoD4kJc?e4lV(1}{?-F_OI~=;WPz?T;-S?J0)-c{0!FYvl zjbu)|i(UzqP8yrEnK^0@^KkGfzdCNJ92*vALIfnTC+`2sks zo6Rt%gPp@(2X!=G)5oaV>F|ftlAnYgso(KfZj+AXL}DL-gcV5?WFfTc;i{6#zI<0dqxiNu*WslsaauGW!L z%K)!UJopmFlFMw1=a&yTzB^Dn4x>t|7yl2({}1M`fAcE1O!U*dx`z1gJqu~2U zKR&Q>bfz^v04yIjU7=hn3q=Kjpp#^j&G`qCGhP~aYB`(Cx^sRTEVVyI?a--%^E^QQ zRTUGVE2sZ;_?Cko(gxUZYL@23Z)QSnUN2lx zgmT53^Eg+R%)^zM$jY_HXElG!-~4&%M}f+n$08z`hl3|04xm)?X^Ci~h0*e9iD;vR zo%3ml5L(uxB4kMSx26p$Op(mZT`F=??OdIRXv-T$&Zi}!jTXkwrzIkx)%i`DJXZ!H zuqVZ}{u^>%#xh-vGOeG$f;Dd^@vS1f+*!af6((MM9HTG|i%!M6W!Xv2PrxZftACMs zmnlPCM+W{NURK0hxz9HieVj1Q0t$bs_bk}(XL`@V2!D=yyFuGv$E;4FKa7|veN4MS zdBL6coC0l4(0nD+{20SIj=__ zwMt9U;uIL?TH`WL_ts?h<;}ySUHkkva?Q6n5lQ)gFMJuY<6L7nL;jp#cfYafL13&Vv%^aJ4S2F<3^5(k4>A^L?tX`n3h4+5nr zvQQp?E#KeB_%vQhE)WjuGV&WL}XY4DQwirG9zskNM3V=G1J!`5AIqk-O0>NVq_#6J5Za>oGeH`oC zZNYLu1jXs)sN1r~FuE90+70HA-}x0({YNYda-N#zN8d#fFTiKDy~k$9@yWARueGLi z#;5GL9wP0yk@lzH7>kaf?ri82{u^M>vzPP!a+$4h|Amar@mgc$xpnaIo4+Nj!N0p9 zyzj`CneaEbRp^`$ICGDM-k*VW9en(e@OSvTRQD>MiCnfzjA0gd!}e(41}aO;{2AOA z2MRmkza#O~jHQL}m$<>q=}-7&EO!x;uIvCggLSoNEzJ357 z_kv}eYen?UIpBRo#+Lku!~cL+NxpWWy*Re#_k-?Ap=04WeDMt@M6X=}pW@rnKHq!y z+eWco{TDDfT1_zpxegS^M^;W2qC1cdO}+Z=$M7KIBPlTy)Q?$EeWu_rT`^RMehC^u zYiY{%)~SW+Gi;^BuR8tZ;pII61jos2OSfB?k=OlBH{Y!1y)$m!cAHF3kmyM-mc`Ye zLQF*)oAJHD%FI4J7GHf&Jg!fVIsCV&kv=`>o=Zf@3kSw1?}AZO`T+z1YEc~HTmSkI zjbiv%e9PECUFeVVtNfe-uT56ph4I<-msrIs<9o$E(OX-DWiL7rh@Fl#5%bfaYR)8rzrsC8gfodSuQjhea+GiBgB2%0l{3($~V`hlDRR05C8TX@j3?&H4k1!}w=Qz5?#%LkDKkgU|S}BqPrZOh~)svo@cPfSCrP zG`UcA2-z%Oglq1MLIA~2@L1yOnRl8SB+V@oBHGHD{BmiDNNAxC+9PI~OG^Z39eH=T z4%z_U6ZPtz_-t6fPZg2E4dy~!e4`0>^Hp)q`MnkzGG_4OPZSV~AMz_h;@UR5K}iVY zuL6s~b>Qz;j#i-gq{507C0j-}3YF26*h{2wf}4;ggVKRsMP=126=b`fZq1n|Lb4oY z#pNJ2sP;hvmQkgEo77iaY5jM$>Mx>-Df)3dmufg8qv877z+1&?RnjdCRHFS;uuw0; z#)Ex)kyJK{=pgSKXzpa2>}tG;Si%QzngpPekg>wB+lM&?ED8GPU*PXRWe`SUIn)RE zSk&ShvE5>b)jvPAOa+}H7JL<*v;zc9bmi&G9!1D6`3|au_R+|(3BQ#N>=toql z28-2Kqn2H3J}Si|{U{j;!H`w=w$gv2V}c|tm)j(5MyE1l;Dt(zb{6xB7fba;2xjiNN4If#}+hm;@TpFET0ghBtR`eO(4?(A0t5E$Q`9Smyf<(vyc6+Tu ziBFx@UkI_Q#E%YJfgZpx?(iZ<^c*}CWWZXfL~~Xm6;^_MHQ^`t$l@P}K9Ad?gcBu} ztr%t;H`|(XkR1DguK&?iu-!WC)e;3*(w$egc7QUfUpvWQA#0oZDkF>*mm^AYh}TV?xP9Ze?8~5g0m>>pgoK5LLrApTcoNC$A>Q7;SvZxX^AHlJHa+?% z#b<%6y#dS|E^7O_3-bICA1~gmb7qyxJg5b$wFeCpYV)EElk{awDP>%>C?z%GPoP(1 z1!KTXS%vbZCHID=VFRaR2%@0>*NB0UB<`(?`x2bp0*1Dhhd~4t`tA;iR zos)a4zIP;DP*8MUw8yUiz9zAUzJ?$c;cE!u%Cco;#cHnO_QELKvLfs6=DhSS44#fg+7i0>X`p36uEns$8o^FAU+Vt-U5m(y_`Z^98^f3oCfuH&U{J|cH5DWZ1URYX$AFL28#?RD@f#{3_S;?s@ zP94S+)N`Uw03v1ONstLKk;yg|>$*OI%*a6oTRBW&<;exnw*b^9op_i$7(^^04M#I= zEUF)X^b)H~CDwWT)z+eObv`I-p>Fjv?l;mdXxHSdBdwp@1R~y8h@BDV8%g~vz!k9* zV& zh1_2#IOQ;aZNp{wvy+X%0QP|48<)~X={XG`;S?|R!I!5Rl0D^96 z6XQ&tAc5hnTVD=d+)d7hutM%t{D}dKPhpLK@iW5}f_Th349x2*iNSytq*=&h2Lyc! zp*ftX)-ct9gp|XB@M9zK5kwq}hmq0I`XTsjVkpQ?5N*2&vhRlMTK0Ttbz(h=*DJdr zc3S$kz8zNJ8>{CD6dg9vgJrol-cI7Bu7FRVgZ0F3(UgtyG?w`NlK-oGGVlL3q!2{h zxP#3;&lvROh4lb*b+N;6J*3=uCIC%7%NV4C=FoPUUJG*qa@q3QP!l5*^f6idJSgIP z7)#$c-FH7YO9v6NCE$Wi7LiVLv;3XHUv0qqTm#IqaG5@zR_urY!C1h@w*54;z)ND3}1R#lFc-l1pk(d2W^45!KqXMA1#f~ z2TJoBww8A}8|Z_`4=r1po;kU5VA!E_HCFo4R;ANk%0B}UAC zEuHZ1(HAxOdEw!(GEV6_3+lCKr}OCxtXtldXG`0ffNs~bjFY)~Rp1El%N~v&&&y9Q z=kal5jtE^Q@EOdMet0C=c;O{**avT;;5e+I6r$Stg@Gx&G_VSH4|9$v=D(!Y$-kvO zE!mIy6w`FnCs*p_jg(W^V4e(vNT*(h*}@(8(^@Z=G%!YKsk?m6r%CfNG`-eMuq`iB zcQI(iJGXxejhh&-#<%D}{dH9+wTrc<1s(Z%pPpI--0}|o4vOjftrb)GrP%S(Yy4C z+a39`u0D0!=WRD=szOUdI)JbBY^Gkw6Q?I*kctQXZZp4I@mo1PyW_I=NQ&TG?W zevo#*3(qg<@P`(=YvpGg>~M~5anNqC3S`Qtzp(Dpkf0!Hxoctza6@bK4$;|VAzxtf0T0Q&hPz7Fh^%2zP4(HBFHD_jC)=A9C#L(m+4qRIoZkRW*mB-Mubza_$Crgb{7Ao5Rlz$K zYA?y_G~}g^?BHl#YxDCOJX-Q{6W$kC1Y~(*(pUs{r6Es`vNG-BV(Xv(Hz`V#qF(G* zvk$558JnHF_RO^~k7m8h*b^UBGcjLf<=bo$*@|VIk>eX|w^88YEGM`gUYz&FnzQc+ z*jD`tzI1*8PJJUMFc(~pVqQc+5G?;^wg0$u^5 zG*0yG7J|yzh0uY!SBr?Eyg9QF_VW4AwBxG~>HSvyUVS%GbdW3U z_!dZZYlm&(cdn2(x5j~VY=%ix^%%Ox@OM2m6RsETY5~tjHr2(a`R}VnTTnsBTj4)!wswo zwqrO_=IJr56WjnD6Gp_H1e}x=*U|mT2AthPn(ClqZU|i-L)}roGB3ekZ!Fg0Qafx? zGf1EQT*P-?IOyr|7e@1shwnWfeD`1$)}8p&H+!sTX#&Hft2=T3djMOXz~&Hk&x-*& zK7nB})}6QmN7zMYB`{3Ox)XaaT@ziLz%U)_PVB&{MieD5Ol7(gTYrXb_U;6Rc};iX zjL!gea{|LOr#rFX4S>BSfnmy1&mW2INnnc-*t-+hV!|dc0}*{Vfh|d3pH5(y19c~6 z900nnB(MV#*i-_;e4IN08}5mIk-#uLXX>S{tD+U__~!WE!qBED#An%e=7p8-l}L^s z%&nOL9zUPU+SOd4jOi0kNRN;5w$itJ|GSgF6W$JSGKnxlzZa0DoX=_b=6Ft8eses@ z4GI575;C@~RF(2|a?Id9oAll^PYfyK%C*OcS|Z*bq;ZU*#dSP;=5Z;!18fl*piB0f zrDE9jY6~romewj@=+h{x`=3 zzofzP$JrL*21?!e&2cFXL7MMl6M%1yzdgyqZit@z{B@S$5&_FM$BEDV=6IGq>w%_7 zXb=6K?<=X7Fs#268Droi*7Nj7G5UF6y%!IM37CQCXWn$7oiHTLd~=+9_|5U_z_#U^ z;}rS{zB%5S4(#J^j%&Iu-yDCNSdApAL8nbI-9a?JIWFaAe)v6a!kze=?RT-bsLM?BS+}cH@j7H{+sAZ|T z^38D~RgL7EnT8b*) z9H(@*U!Ht(oKYk3GkiglbmC&zze`g6=6DiY=&RXpj*A5(=ozb^W6N)FXW&wYoY;j^ z<7lkZywu)N@X%lzd0UL<+xNPJDKmg61GMQ zX6mK}+&q0RL7>u@;qc|2)^Co}hT*GGhD)FDo8uHK?%U~{?4-3H-yCPM@GXf?x5Vv$ z^-=w-y~JOKQJ)XDHwvE#Fz zPh&z{n48=wCcRUYW6b0J2JPP|iq_T|qkT={rOj~^e^(AZn_dEmF1JXG>B#%;G;h{N zUicQdi1m6!AzgNlpN1W_w`~8GQNQrbpltnK_yXYsUhz63R{MCY8P@ywJ#Y#4SoAY} zBmEw@w22KNY>+Osn%WZsR@2@xr7e`gsr`H4OpHJ)c?l<_l}eufJ#dm@ET8=z_(u}U z63#w3FKk1+4G0Xvuu2K(iA(I(Aj}D0p4cr@){1lE4hYlHe%fDQI*~5vBcy!`!M!3D zCQdgYby;w)OmX_nZ?&V!k~kjnV%mQE^2+Cdd_26Sf!-#tN>}6iHec`VGhcv-W;)JpR;A;2Z;nYi9TXnX~6v6A_*W5?Sk6gZ!``O!8Zp9Y71 zbKdbSR-WTqEF`$jy3@d>Tz>{E!NZisF+q6}?y<9LMln1Yci}1c+OqVfFOpj*!{K649$(=vO93T1Oz1a8Od26MvQ ztnomO*u(8?yFs?Nn=`&X2F|q`WC-BA@ntbk_O~=?L~b4ZAzfa#j-tMBZHLz}_>T#9 z>qh)%+jT$XK^@~Y zZ)lHfrCklachh%T__jvnOfF9NMXWWbxRO^keVSKpdgk1bei8D2eMkP89K$aq8B(__ zeVSiJw>J8$e5u`X<)amy@XJYdPffp;^p15%SNne9q_}0zXzNH|$_T-6N0vvbGj-_T zp*EgDA4~%F6|FOWNSvE?qaFfp@omj-Bs@ApYs;AcLhA&7j1lqN zPA3oA{+n&(=VUl)pPhY2!}GCjJX78Bc^(xf1TV%`j%VJ;a%9a9k4><|v9I+e;C3^7 zC3Q6OK8uNK)ayRbz8SRjEeLwPyiw5aMZbnl;Z{KKnjw9Nx6#v$U^oQwS!UnSl(2#n*d&9iUi!h0_l0fG6^i}@3eg17QvT5oe3e_bV+<~1+m z<8>F{Z*LPVv$;o;iAteee-k4+3y5~4>Fh8VXb&|fD|bSM+(%u~Sd=dBF+*hJqiAqqgGDx?3I zKo3r!82hk1AS|qh{mDbYi?H1xQ)k%p!?Z)HMuX)kSf(M4X$+3qw%}y#Rczm&Qy83{ zYkyCgjs~cel!@J-ht;Rx*crn#NTNb9U;6F@(>Lgbt?&Z{PJe8LOZ;ijrDJ$HhIgu1 zzZ73)e0D6z#<}5GFP8ZFJ%DL`wV5iaoYK-Hvhp0o?Ai!hVIP~QoB=7(QTPlch^vcY zJfFhPA<`>pcpz?-G%*JClYI;V*MtpbDN0aQ?$_s)!BvNGh&QW@P|6$kmCc$*^{k9o zq!SB@+)B6F2#HNWZQ@}_3i&FW&`zY1G`g>2FJyR2YBSb{_17nI@q1=|2$}q5T2mUl z#ZW|L<%14qPg6*+8=lzm;TK6ewQ^~6BK%kStA;U%!1wiX7;SZJVZ9t@PV(?Hog7^rx+a$xgdpp2OO^cwiGc`#50 zJHvtPfq~LX43zDGfwDm`P__pKO5+$P8vp~Pc@2~efPu0k1*&~h#`Jq>EBORnFb=zj zDOr{?W1JJr1sq=&M_Oa(I4(H=%bQvF@%(Z9P4F>7zF;5T`NuW`YNh(QH z6!@huTT|dOR1>XPgc!|uo5(%@8F<;;ATnL#m-)-N3dYI8gGObl7JpYSrb8bZjUf7p z41aW@ZO#_V9UL(Ls5g5{breUPB3VCHriq=sReDVs%s?AvzN9H3&7i@|H)+OaY^mY{ zNz;MCS#rv6d`66%5M-Ii-WWL%BR2?=UvV17C+S6!@eKw!u?LE7sm`{8G2#mbFW{Jj z4ZV=C_=bxy3Bd`8O_DJ?SPGJa06-;BA7cD`D}AW`I&6GwA~2gu$&EwlQ}}vdgZHA| zmcn1-7Qqz@SHydY`mvzyWHV5RQ3XLMS@3S4!k-|i0A&vMy~z7*%v)O()`ayKC!p;n z;~I{SUP8&`DSQKStuu1qlq2+jFyB=<0Uu^Su<)irrFqiaO!l)RdDetf%`GSG$=j zS&MUJe*-1NK9F7*)d{bJ3Gfo!1$d~R$YS|t_HGm&9s{WMuP#6unU@Yf4?MQQ?Ouek z2_Ipn57E#CU||A4Jttry0iY-dK!r3(P#grzNdVh%2a_W9^rmM)gdXzWjSvi9WG2o? zxE&cjIh~uK^JLCjbZ+M-{SF*3@mx5EVa;{=2@>P7+vy#*x0SYwtki#hWEHyokd<_Q zj;zXe|72y+?2oKMw;!^S?$41``R<>r^qT#VRp|CZR?_`BvMS&Gla&s=Ke7tle#lC? zKSx&O+a_yfZ>jjUR;%y|RH~#;&`CpgdNLXojxvZhx zlXgpbj&XU_FM@1)Vjh{8t1r=A0p`i%%$0mV{0)($z5(&Kd6neNF%5LK-cG%1?#Mvp zdFd;PcuOIRQy3aQSRgcXA*rBFkMgL?#Q(l z<=Hy@erIXBjpcD}-O_j>ik;O>3Q}T-yJ+3b=(RFS5_Fs3pF^OuLGh zl2MbcF4QRy{WRG>70>8CFSXGu$i)kC*$u+ePXd{l9_obnpkz|d;yUZHzBQhYL}{H( z$Jb3Fy2j8nu3m3!r2Asfmmk6l07)H7WG^?b13x=ZaoAVOpyEpz~F zvl}fDpmnU1LHjALu8jfEFG zTFRl^+zpB@x)7DC3lVL)ys#TB5pA@4y3rB=TASzT@~n*xy~)hH7lW7O23Xe`gav!h z?n6tza**91mv$n;f)~a_c#nfBU>`Jsce?*JY3Ox z%bWRi#5uqDV%%!~AoXjq$kmyMHl1(mMoUB+Ewjz#ON7|xR@mqM4qtFWPI+L^4hxWN z4TE>eU30PH<=J{)JwSiG5bcE@BBbIIUqByeHz>7igI|N1fiGo|MRgIpi8pfQ*C^f) z>aUDsNQ zKxLh9CVphn-jkUrOiXmDKhUmzp+)_HjQRtWHKPNm`h_<22QumpREi+w;iEjwu2uiN zM*nO(NSGb{>uH#NzE{vlqig8U%EDIGTcMUrhrO_Q8*fX^+xaund^vw)d{BQLCKZ}@ z$TM0rwB2#Me*ku~8!rPUwz2NNgG~V!)(zp>Ak+H8>HLGkv*qPNPw^4xkQT{qMbvFto$bDI-a@Rq>%6h ztOZ#0^DE~9L%mmSu*E`E5X(ZZpy6~x7B&U%ha{ERtU2ly9X>E83sH038V;Ut%QUB?9 zsoN_@)8%(88kOH!(YXB1jwa=IPIR{X?xFF-4lV7{D*&~Fx5sr#$1K|SAS%~4i4c8` zfIU9~ncQ95;9ZEG=y&7WzAWWs(W{Z|KEib=dIpS>z7!n&J+S&6c#+9T_HDyqIq7RO zZ|`@0NCf5C6_|>*ozb1Z~THGJ~3DlW`BK1JLOpZLMOxKlmSkrb}ixDqS_0o&u z*+qENwO+~yheQTWxC4LrZG&6Sh`()+^1`WnBYEF8$c`t}RxNFJK$u+$KY}0Q3v-Y+ z+ZZ>Lbq=(Eo^%gNlLeIJ!6r`X*-?}l<-_Ux@cZcf#D&xvzvFy6)BJEh(x5WRg?u=< zA7_C&kf&Qq9_+w{*X~CijH$e0U4F11X)Xi(Tj+14=BrRh>UPzQ`YT@tLBu==<|<7d z;~`4$6R*|9h0>~W840}4&@B6L79~0?L=INwdE+aJXEY zRw!-)Q4<2IiCg@{=qT=D{3LF(w9^>Jg>0F81tKz5rR^A|G)4*BkFpb=`qw8d2R$Fd zlpVV-u5=2dLnEQLOJ2PeibgI|aI;bNlHL>`dql#ZGBd`60bvhN0i?{=!Ie4m!%#*} z&`)us?grn*Exrh+yN&<8#l{Q3>mkr%xO^>2Xu2goK?C<(@W%+t->%l}mS;<>@VUf{^@Cm|3!D)hRB&7XDnFdqVz;JOgCosX^QYW=4S#eZk~;aIqrTCd$kG^-@Ysj#29w7= zocb#^&JZC!l+rSfTv{R$T5U5aNG>fApv|+ny8YEvq$Jdu)n<6g_$=s()Fd*;_KZIj}mc9PKqCPLvR~y zZi-(q1-2TQj!CM=Z@VELBjUQ86f@5T0x`6MRjC_df{5KYDHeA_98AQEa#F1ChB%gp z8*@^e*bT9fh?{a!oZk(xorpa-Dfm`SF5)Vtcu7u*s2k$OZiu^yxH*T_o4O$$AmXJt zDL&i{@mV5XoRi}7-4OeT$W!o}-4G8Gacxc>k9I@+mIzGUcR1YdyCM8@kOGq)9Vupa zLoDxxSWm>ua#$VFiI7+~Adv(KqBB4d{4XON;}zHJd6~l#--zg9Yd9=RI79?{Jz)+0 ztziJheCV?#! z2Y}3s_VB~8ovZ+X^caxVzGOEjcXt*8hK268Fgq<;S$O7y@Ql;PL%vV24aI<*LWhqr z#xI2s%{SoDZt$;PS?KM$28P2_4fbAq7$mhm(}q;g|9l4k7z+K1iT!KAlXC~0?~PzW zeTT8NHHjHd_t37~kMs$bUy9v^!Gjm(H(V?;IiZKYfsH>pF2xW_F6OZ?dCQG?r0+58 z!=@?qKR5o`!5)a?MxUTtTmf?`F)9yUu@t*Pn8RUm=8^3SK(Wlc4cmCT@g^}$+($q= zEEjx;2k}S9i^FG(=*+=<06k=I3Yp7|z+9EW1~ z+&bt&Od_LhV+I>NHzpa8}!u$RXDF6?vc)qRfG z`-pvxp6+vurRDewZ#6IMGc!K3AO(w7rRd9OW(Tv8RrNxhH5+z8$kI0Aa`1u<1qbA& z1li#RL}o(7ZV`tPfXIBCLfG*KL}sl7BC@M&%XLr6NY52}df1e;T&*!at=DOrnbyA~ zt{n}xNa9-hJt`+6B0y)vul7eL;a<=Bi~SgzD6P*h{zab#PMW4_;6^`;A8I&(mxV5n z43X?NbtCVYCQ+?w{B?1Qzm`mD(isFds;XmFCtI9$ksFOA?Baxk7%ELDZj6K(H%7ws z9SI3BR7~hZ=aVG2nra0dF3v2OBdL^yj!IeRsFa0{N?GVqDPcXWmyh&Z zb+VmPFI{;bftB@zbdre&&^5%j!hR&(-7bA#m*)dmpJiLYzW2toe?QopSxegD?iyz& z&*MSpUT?4xmad%S?!r7z5BvkbLT`Wpl21*b?oYGU>GdfV36wn2_%ut{&a#)nrzkWFdwD12=WH?YJZ zx}Uwe5)4=EcM1FRwY%})!tVhDl*M+goqZAMJ|})N!%aP9Etc}Egw+7H`LT4?z6DSW{#bg!A>hR&5n@80-3xXY|rM_V^9fn|uvyEv8@1L7aV7Tk9^ zJ*%m-dMsnu!TP+=WJk3;6rV+8PSJTI%!IM`q{D3z6a`N`Qqs*)ZfBtC{vDpv-uas2X z(wQ?@vq>*V^AuO_mgk6CA|69=?}Xi;TJadFR8V(OQk!HSr~Gg!Ak9J@i1{4-buzofzP$DwlK21?y|2CEdMAkBH9 z1mFzTZAlht7l&uCW*IIKbIBR3Op<#BYnDFifyNE!8+tb4mlFHek4DC*`eHp#e^i3_ z3|8hQ9taaK1JSSR8LZ^PGgzMsQ?{JJN;Xe$25W1&%o(hjuFDy$Tg7T5Q4Kn6ilGhB zJcCur&;0OwQ^J!oSOqC(uo8??6s9dj0Ec89slhMBf1U6w+OG2q)@(6&;kh7EU)D2N zznt+YEmWMrDzdbRN*RsJ8Bxnpb&;zgHBE8`YbI;WGd=$<-2<8j(|7g1LfPse)sjfZ z`Z^fvE5dZ1!AgB%E8`4SiYjNYQuNFjtoIV+8l~g8Zww}Q%7LcH4 zta7`a!J2_f9dcq9CQr>pV`Y2>YbHTX8EXm?1F~nZN-{ZvRrOlUGgxDw=G;;uPI?Aw zO!dUs$vn%Iu=N2+-AvA4HCgh^SrwmMM~xXdXRy+S;b|ztCq9FfoOFd1osk(xV@+E7 zaRw`sg_{$fZi(9g>!bQz+Zn7(rDw46?k_xpRn1Yw<`TVYKZ8}JW2}n@HA>muI%s_! zfXyeQPKKw%j?a3Y?1je}tYXqrRXMihoa5FQpeR~fYYcfRz9>8ue`XFon_dD*(znRT z`|LDt)<<4AgY_Pk^f`)>e37SIXw)U_u>PWG%^9p4LHQ(SuznGxgN>_S;*X=@{>!-6 zGSxF!rA=%IVS{w3)zqHHB0tf+!IZX83a9onSeY1sR`L=~N-LE-{|r`=qVK4&YJ&C+ zb|jW1JTnJ>JP?>p{|b|cZ4$dR2y?;{6T4;XtvEOCfRHEcr~MVC6X}vZ0&%LV;7*E# ziPMRU!ZSQM#pxNWYDbkNaXj#g^~3F7@eEeYr>h?to3#32dVb6Pp848Op>eg+r|nJl zyj9Gji|w*7+EdyfwHY0@#nzc}*p$WP=d1EFO{+ZJ;q3eKGGpDZqQH}P|MrO|>HA<9 zxbpkEI>(W$FQ(_1GNBnM-2-mfV>(T&%|FL9KJ#-QeLMMn7P-lHuj8V0NKc?oH zdDWuT?aa@u8985*42LjAY~hWQJi%ArF%)s_hAKdCd}L{yXBBI)M-px~Xp!&;+#5N@ ztjaN+@0)Qi)+FTknz2_ZNBZ_)nq7DWMuyqf1`~S?FYDyZx{}0c9eFv;uW3QWV+~!e zAy6YU)1+}ysoP**Cx_0xPr7D{jSd*QkR+F%Nvr3)L2ax{-3!YHFQ=W@t|UGd{Q_`D zrkn(eX!T7M9WfxgkATqJyo8+g-GF>#udWlk68Yd;lW)LJ^BYKLH}o%Q_thYd?0gQe zUD{vDjl2stXEwm;p5S3?{$$?%H`|&`g>Wg;02}N4rP%N$IRvkwh8n-pGQsvw?*00f zDn>h_f5W|bLk`~c;qicFIUbO$If=Y*AJ`=41pX^yx5keNq={cbC9FU}aG5Q35;wVT z`0L_lgL2|QeI-`A{Ysxx|2Vj&HpKjkT-c@eFl|)78gpLFM|f+zNI#wQ&nk9O9^`E| zz5{5=E8|N<$lM0wk+utDpG!-G&~kna?@J8flS89k0_S?z)(L77IVbr(KbiMv&?@0h*vD@C3vRLVrTz-O zJHiJAIpM1Sm_i8(?Jm$h9KVA)%UZBrjyyEn^@sT#f?Lc1LpDhjr8yLLABUxQe+qAn zFq8037GlD_PWEs#?X&h<^Otq!zaWo))!{4J{?wdU`d2?C{-|$q8TnHS;Z-x0`!(Q; z+Cd!>>D4%~>~jyumwg>LXJjXD2WQp@TfUi1mQMIuk$Yw<@3@L2_W8^5xa%qB5&Npf zU)H49|9a)TOd1b+$UlUN$;tg%VfR0QrqY9BJEpneLlR6FFBglIF$s+MxVsRn;xo^6 zMOl*LaJlgR@%AS0Q5D%6Xw|*FCxLX9PC^1nAPEiKAsb*=4V$2#f&vBvK~_Pqu>**N zU{FL$sJJ7(@0_Z8yR+ap|Mz~c`Ehc;I#s7m zRh?RIRo$m40Qv6#|Elg$H83M>kODq4)7ms5_rO=|N^`qDsWv@UpJ+Y011ipcU_TUZ zY@aJmp(cb*bgPmmb;oR1JGFMH2Q#t?@m9lZwI4QHcP&->Vp@OYx{dYM%|A}-NgHl=Jg(Yz5Y??PTx&TJd?khXapaJgZkQ|M}LwOuk>g|obGduc7`|g zw8nlqN>8=0Ce`b(zp8O?8;)i=GM~cswgp^lGggBeWAO5~(mEsJMO3JZSp1`wJ*&#H z=jX&}snXo^7wg>A28={X--^}IxH^Pu@?v!#`%I88iTLV)gb;9;}zJ>Zl~nK}l}Dx+qOw$v0Wi)u2&qO*1^9LQ z=+UUTf}Z!Y^IO=_Q1=l%2I@YcKf&L?G!}QlbKS=v&?kP}^&yrW%`I6<9~wIwwUmm+?l-VICCPF( zL@DBahuk9vk-EqVA~caoz)kp(S$M#X78=02BeOw^zckV!NAQ63sPAc!>P9W;5a|hb zqn5-+-bONXegz`mk$YO?4+>_tp{mWLe2wV>H~t~{#AsaJh1&jl{)PQne*Vfv3v2(o zjaq*G%0>%o|GSM^ewx{+DyKWSJje)RdEkeE&`)I~f7~NNUy#ta4dree&TfKpn&7rg zaJwcrw+YT`g7cf;_DyhyCb*ypE^LB}n&6I2aIguc%Esxn+D-aPzveIS#*DXnd$vcs z!dhsRWN)2kz@P5-n4R1g0nW()~e&1{2myE{pJ1EX?K6H7% ziC;1d_)SEmrKln&+WzC)g~(CTj^eZ1*uvVc5mdLs4^g{ExMe?VQ}KS{+r4!V9duE& zB;Q`kGHaOOw)KhQaa(ByV?2ZAi2OqX_!acPt1W6uX*XzXEUz7PpA#?c?fw@^XJzB6 zo>TCcjmOnqtN=s2xE-CDVns%?a;u7p7mb*#rN2V*?^DMqZz{$ zezgSEDz!|`!x$r36n0ZnzdT|68)UaZA8>pmH>O)arkh1SaZ^RDn^XcM|PyNYfjMaP1*B5@Ew6Wq>O-T8P{Shq(qKR`(OAIYfKWVGw^V zQm0b=AsflVBX*ZIU8BOf4dqWT2Z`dO(E7o8`27%mqc_3~jL63*irD@Kbq{dRN4f9> z6%waSUvp$czU1;tbp%qKp$tDhfO7L(N@0SVJ>yIC)pUWQAMb+7_Zv#e!w7<#9Giql z^hAi!ID~y6k`eqGOq7>Oce$9f+Fk-si3X)IIUj%bQJHXD>f*!u5mfcJkpuLoQjnm& z&l4fRDjoEN?QHtOHW#!jEkXfZ8Iim3$NtXthxP)T5&VXNrm2dLc$IEJ(REyN-Kb1x z?Sp<~XN~4Ew23yZV9dy72&TT(6r7*KXL2K5WBgWZGtgIMlZ;KB7D`BWqx?#aVc$BI`7Hq>ZKzm$u~xuyb6J}gvr#owl(Roqx_;yEGZd)ybAB8Lzk=F^c+@z>?37!_g=C*6*~|Rm#MTFWAeZIu|G})mi5Ql<(ZN!8DR+z42d2MdVo!l&eGR zL5R=TK4{X40Vg)>_^{ZAQ{Xri&ZoeWDlu!rzG^QY_og&(JBv$qIS;VivN!U8Hcu93 znKfOYJg(H$ESxf;3<{0Fy{}~RsUE*4oS2bl`aO{ih%hu149*&_-y2Twd$l!(@}j?^ ze6SZ22H}eiI15AZS$L``!xCdqVqOddaUfkO=neE9kE@J5#fheFw@5bkzb8TUgGe9V zsrSZiy_=wn)#%*`KRi`;Fpcbn{9@c%8({`Xa64E@S4K4%?XTdMKaEO4bJ8myS8BT& z1?^N{Wkw2-d>GfcaZVlJlwQ%_hX*=*BRhH}yem%hX-X{jwVBA8Y*1L1~3nJ^?!Ap>%dQd=ZS`OsX53f;49u@#e0RB)g zy;x2Du=dHn#w*U>ktf_H42!D!9?!A)mC84Ai{%@QTfRVA41DVy8&h-5d5z z?m!@%YoL$c#4hw`5Ye8Ku}gIY2P}s^!CR5kCTa9$RHUmcjL>){dN+coS zsoqK~5edDselA2w8rDVDftOLWj#$pQ=tCs6*jxg9JSg}s<-gBB2Xh?d)k2F|HU)7s zVUD+$YXwtPyI3SXHuuz2Qmk+3(o{ZThjc?ej-9 zRo1(sqae%gj>}OhVRSvJFh+wFvxp%^>;pG`cd##f@+WSnXVPmxShgoCMHfXw&`==y z4<-MksaA=RRj9R80n2XVlv&h58R8uIYWL>*^O5EDkLm-~h{RV^AEK)vkrRQz2h|ug z+@Prg9ntl;QyrCe!E;)oD?H6QmN4Fo++k&41ao{{>dsIB3K><~$Az2Z<>?U%cd0^f zcoRc(Ir{+kDSq=9N0dCpZK7+Tl`Hy-om#4mY1lK|*6;+oBjr#nN$abxwFMJLb*R3p zarG&p>>_(hPh8p^!iltf&1t9En@YRM$9MTTL9M2zCioKq(VS^$?fnTEE|ARVe1)>y zKzb3~pAcI`cjLUnWmMCLP!>=QCVE`hA4i>JtZpP${s49Si7KP0Zs3fHsu}Nr;Z+p_ zLmXwKS0GN#ydIBHFh{JwQk@Uga;Xs!KDR=d@7PDGXmHxc8l0O?Nc79L`{ z8)ziDA!F%7l3}l(O!pah4jmsax2F=6acsHUl@BGC3N7S?WRI#-iCpeIrK(ej>U3I? zKM6C~BsGKe%!7t%gyx3rJE1|e&pBiYv8IYDmM7KM&_C51uiK6Ah7{?NGH0kHtCGrA zh_&*2dF+-33Br$)*!XrOMmZ=fu>k*Fs6>nLKON83Zv-A9aNCCe{qbCgBBOUc_u=`Q zCUz7Zfv8+fnoL!fU6HR)m3au7;MNmjGwPYCO;9!KiP=2Rptd{^Z3o_ZOwHWtZI0iO z8J(t_vOFsy&;m@WC>=bqP`!|cr=U1F5eW7`X4$i1Bv#dpUSj(C=5tO;6U{llMVfRA zPt$mx%i8~8x-zsty}!d6|EGzB+?M4PBhLkX1c`#gD z4X`f2Ewx<xpYorB515*3>~M{pxGeT#o`q0vXDG-=YxX`_=G?&s21|zQCYld z>3Rl~#q0B!jlMhKP!>HLd}N-wVTC=+ORm|v2((;`&QHj9yX)}+oJ-{C5+i;M)U-Pj5lqr-d(k&e1`0^ z+CLAkyf$PdMYkYG+#pF+z1SUa7mMs$MHba3B**^IoDkDF@jcrO&k3Dj7Y{IT>X26D z;@jy&4=T!Rq{)K>;)UlFen#@}nv+|(_}82(z;vtfDs_evqw9cqq!-FzA!u#Rvr3-Y z8LT+cV6$=)l*6rd^j422KyIErG0zd9k*%Iabya3aI$a7u&$->+JjpR z!=wn^4f^@GzE0Jt9uUPN-eO!6iGGSkD#dO+AXaDH64DaWFz0u;UAf&N>(S3+F##i^ zJMk3udLtX~H!+l(mSnhH!9K_?9)h-p8Q%p?;O5BP)Hr?dGRzv+;k3?9PH8$(}C(0I|OjccYswZC8f6a;4wbl8Ivd}RlBev$sa?b>A zD{zaa`8}Rs9ux|DJm{f4iJ{Zl^2L{_oDDsdu#A|n%;?2B0?L{;(KQNX+p*Q2|=9q;M7UCq(WelcRN@2BG>gM-RM`ZIrI*EWnSI?*Fe6 z=65*qsJTqbPy+=@2&<=(c|UY2YB)VLv88mvuKuSaCdMZ*G$dZ++bUr}La{V4kk;|J zSGf}^<9qPWHql%eNJ`8=kemNa^%hNl6o@y0F{#NdrNlPGW0zVBNlA`RN@qC?iNKqz zA;6Lf0#SDZ!PJI5$@lJ)=oM`MPI zAm%XTvM;(9rH>&P+L8n_w`=4f*jFN2;XtZ8G@Rx(H)G26Fd1EM)#6}a%j+FyAVfG# zxnbGHb}NP(^=Z_>T|FbCf>+d2(Q8ywf8uvtJ)?Xh*2Xad#hN(1hdB+p{0Lpl*i4_h zg|IbVqJ>yT<2Bgy=qIFh+*F559$PVd_=p89;OGN5H2#~9dhiqEr(r~7_ia31SN(XF zqc|lxY(6?cl986`sT_n5SPblJ^>n_5+{7q#6>*Ce9z8Yke2@X(fh1@6Y^O_gXVo}& z&%K!=BPldg_YPPv4@5skEbILkwdh_EW0#5x*eT0tIkkyKlvAwhBAp&VE@60~Cd{dh zhQd^5^hJ17qN0NrU`@rz$EbsMqGUKN4Op{_O{RUJj_3yxz*MVDw4SsM1(i|J8Vfo+ zhrq;^S9E-8)nPYQ9eir)i5Wfy-3e;yi7TLa?rDwAG3Ic2!-;+j>bdjsgj{|{ss}~v zp?Or0Y_?n^^bxtr?w=RF*F+&b8$!yi-I|ZvDMU*@T4PPr43odY$w$I@t=g^KtqZQH z?2#4!4|>h$TX?iC7N9vl{d)BhnUqBj6 z89e+#?bp12Vfu&6$u?AGxi}-aX^lKc@1fB=VM+dBJX+@isr^gR5nzAg17InGh8x*B zYAgSu-$P0Dis_ho(EDuqDKXLWYMWk+9xZbtrKCxyRC}7=+|yv&Q-YyxB%=_h$Bolp zjbc{cPY$VQg&BMV#u0gx$dhCe$mV*;=Rs!UY_{z)CFSqtvy;D5^(*q3Kh5cj`}!u@ zayMS>@;5nSAKt{pH*RcUC0AFI&uyy2htth8yrknizZt&Nh0sZGAqLRBc&om)_nl3NPanCjP)Os{hGn7P&b#4kdP zT8h8?F}#b$#V;t9y$#8!j_7{qf!1CP$+0$t`f0!tPoEfjH$8KvNLKB&F5o7Atapjz zT(cQE)>8u1yDWQ;Z5vL$)g<%#rJnHrJJOrxvp!6X9G{5rxGqFJ*tK**UCZWU+fRP} z-?JZD$8XYp{sS?_+Rw(jBl(6r>C9TQQEQrcUo(W?+oGz=R8Ni& z-@3o0l`Hr-l;Gt_x=fOmDLI&FUnbeO&Y=?O`!Hke;?3GEe!pDs7IGvT#k)=Z(YL+U zvQN^bu{##6cx~5ei~fL)23{&+fla@KRAHt<(oxdCI4jz9F}5?Q(bp^lcht;c&x6%C zn%@1^!w25|staJ~weREXkY&;v-|N#cZp^RaL#(pk?$@j*CF-CBcki~I6a&K>E$Y=q z3|gBcyQAR`jKOb&3(Ro-Vp3Rt-H)H~4w&{_#E#~vb>|d;IhR$;D#4&+XI6iKuH*uw zF&G80;u-=!Sfuf*Sk%5i6^q(u_it#3YiqKN;CzIdr(ifydC?ctB-pzI-FmNoqNq5& zxh|A8iVwZ{G2>g^I6ejckMU7oJBXq~e8%oKth~;MV4Z}k2*zU8rfX>p`q(Y0{rtZOdP`V^ro>A|4a@Ww&GJS^eHr*Wwgd zcLa+TJ~g*WL=%VhA*tcaq6V1i)1;0&9CSyv;3=G^{!+1}tH;32VZ6s6X5i+ehN6bl z#NBrFGCkZREsS$f?W9-rU-Y)g+eMg{l0}MCaoSXo+B6@by8SD~$gNydU`*XjbjPW= zO59X^wwNR)<4YV<#Wc|mZ?Fc4fv~v~@V={BbP+x2eHOQ$nOaJ2_Ek#}UE%JrNO$lV z=v_}a&}2UH_wts?xP>yTp^LPs4DFWbZCR-)rpPay$r|Mg>YS9Kofi zF1X-0Qps~@4|Z6`-D~{Uws9=|%UP6vH^tJVd;34xAoWu)ipI8{;L@wolv8%&Zfk$6 zzQi79U$n>s^E3*{mGu)`?E!+{F|)ZUVxHteIBpWr1(v*pnmC*k!1=57=^ zwzmgm#6L@HOL|hBTMl1NDl2SOi=CM>YSSPMpQTF-%`$4!=@~bQvtwih=Hzwcq!_%J zwVXDy(%v`&%!YOe(bv%o(KmPT>X^D=9+;||-0;E|cSz70ju#6yyR^``@X4E`Ra-Ss zcu#Jrtunctri78ccloUScF0Mk5v!eOWYl2DldC0-_VOH!$Vb8(Y@XHxX_E81Dct4H&CcoiwGmP)_(W5@_hWGmzBjKxfD)s6$ zm&29NfZatHC%KA0Oyf40@_sC2xnr_MG!j&-1-a<0H|J@uCCAQFE&OF<1SeYM2NJ0A zv#szHwv?X++9q{w)lLU}o{&VCktK*%t3<_9>~1XFwDTlI%P=r-xE|F!cq521MYiQE z@ac!}0V)yR7hRV@kGx}y%7OA@D*k#nKgb)Mnx(&HWFXh`VMZ+liS$Raj~8C*Gi!6d zfLJoT6W}LI5A3-C>;dps{BDEa!|P0VY3A~(MJ81Mh)a!!I*8CId_4?YV!tN!l=bHL z^~O}Cvswr8+B)~V3K9%H#-Wm`RL0~I`wdZ(C;@u&DJhN~$p;p8&6HwII028b`!aDh znE%D6AzrdujA>FL?JcD^;&op~qpM+tUWhqxP&r#i2dvx1y@+ zQ!kF-!*FE1VIZ_e25nDPqr492JfJqQ(Rms2hRm?a34H>>QdFv(XdSZzVY`yM8N3hi zG!$Y78U>5~6DpW1Xbhq@(#(S5I9D+hZ@XiA2k;uvtJYh!3jBxU=G$_yc6&cbPPZh# zPwiMtlGR4x7SIHd-gI0=vZy?@jt`KeJWCSmsMITNte!p3hJJZXWm37={d0!O``|s4 z%am8@t{+MW&21lqvk{nCm#wlA?UX|d*ZP>@VW!?&H~{(g7l&*``_idzp`U7D&5V+wXu`!*qSL8F zvty5=@W@;0gIAzgS%}J=M+w07mS-b$T@HajU0e01o%)lDKgcU;vmZtr38=SC#t-(% zF%Dl#;ciB$#Sq_?NX{A6g-Lbv;5BL~<_b5W<9KQ*8s%7$jEp6S+o$MHC=Zx);?VRE zADWeo5A8@xXh=XGY#ma=$23%17!WJ(Zh8JWQ>V*114p;CQp|y}lPp!nuqsxfDAHIG z38m46ko0g&B^#@xb@GTYXSbx2i@#5RT@$!x$U2ut8mWS^)tg~(oCfE43HH9LJSRQq z20{wK7wd(pnzFduIq(>D^&STeU_w1tH!kvDodfcX?Pvp5+{C!;HhP635 z=c3!Q*j+rxsml*IHcmAfP3I%sGwXO&pqXsJa z>N?V6@OESp<&VkZ);yAXG_{tzsfmG-PyH6PF{vmoqn1Kin`^b_nz3XU^d&1AYU5MA z{bKRiM@g+dBuNxi*wt8N1}MdG(qF})rz{;T1+6$EXZ=-_x=l(F-TJo_ry5h{aei{T zeCiBie1KRSowyXJK$P9YeOtYj zyqFOTDqNAisIzq7Db8sYbsljJn6Se|m1Pg;k8(rXw^u#M7ep(U1oPRPji(l|Ki1&7+y~>~X_CIF3+0c`1GZ6fq zT9demEmoM-8(y;U*6>F^BZK{Eb5-pF&D-uIJFsQAF*zpNQhb`TH|FD(Kx|Z1V_<{t zOuif8qfgWL@Fk>c?w6EPuHrN^?B^M-k9n@(%V5U6caBe!vIMFNBM={r;RE%>NPVEb z3uy2agp8(Mf_KON##116LQ8S_HR1e%%%BVKB5=1>zbPNBadY?n&ENZ5eI2ziiz#Yt z#N=-GX{;0F3$%bd_Dc%3=$9BO4>K&kBsc6^Oq{?`8IroQp?YGi=LUa;^5NuY_oZ0L zS9|FU%5Cyf1Ud9me%dwlgK4U%_TO*_RsX1N+Ik|=__}Gwc|^r|QY=ohS)A;rU9^dx zSezW73Z|Sij)1ci#GAoVw_~B^b5XXVy}DJY*~vb>(nWBN2l? z;Zaw?zEs)S>)?(2nQ?v`{9Xi6V;-B0NWwYMrDRyOBqq8Xk7f|9m{09DptgY4V=&+6 z-~SS(pmCV&mgC`X*>9>Gg#6xGN4up3u@jmig(IfFblJgK(Rh$o3xENn%LuvV3DQ0j56{p+l9!nn~;WWCU#-%!qoX^l# zohD4h8H#%$EQiyP5FHI~dUY)J8mhu=CRS1pZv^Kd(F=*-PTc8Kj< zbtEDFS$gT54 zaHTJf@1$4YKqst7(!S*Yw>0aqjoARnjP9j``rSBOI2}IlWM!|~$x>5}ws@f@vpUi6 zcs(k5d@BvF1JD!tcmog}#lf3aya`~nFc?m#?1IB@ertV`#twPZc42+|npE z;Y~1gy<_dSS=Y;MyG_0eA)m@L7)0&y;pHH4UBOO3Mr{u~TjNx7O8e76;KYb)w56%LMbuqW~% zV#-7DUsOTy?o;uS^(q5hV`$1#c{z#`jmFKK*WS_#Oc$Ym?G#W+dyh08 z%RKg3?Zc*hD*+W&0%|LQ6t9_Er^=DeR|iUrP>P8Mm$rMSpZpjUgWu^1hESxTWNWtN zxO&F%vypBs`uNZP`14O1-#7%#ujpqj-usQ{efWZ=$;HT0X#c50;JuzGfKBBlsM?Bn z0?~n&aa)%`&3vcx&5P(yK%j3JvP<2{@KK+h{*GOpSkQf~aA9_Fk zQ+V_=+s^NHM()R04;S6go?JKY!dI_Mo!s07!^m42U#Yp)qoUO|(E;Nuq3z1dQRBAeV~DX>m>mvAsckvyR5G_L#L8396^2glqz5MRZDXeKmFP zU*8v;#YCd}PRHl!x6-%*ZJ3XjB^2W@Y-abfEie)<2V+|c4EpBn?&n%ykooQYR||}% zh_Sr|MjFMjqXkBk;&{FVMvy}6Y=J?a*xkLW1%{6pFSNjDb1X*Z<_r{W{5(ys7xhEV zT1(!{$NmfcHREGd@_6zb>Bbgll_BOM=r@RC^(T$iB8h=Z+6< zhggM}pMgBHrV#EvF5SpQumTJ~L(N{yC%7UV;Z1)Y*!mJMtyWp@C>pJiGi|Kbvw#-G2mE!iNW)?6rCPzZv)|O+atC86TvT{v56W7#rW#;O$j)|)nvm4 zUhfV@cHv{Zv|$5(X5bGu7jCsxP@CiAdvK`#T)nTik=<;C-+iTh`-! z$WI6rx+8n>5R3f-pkM={p`-V5hGMk4nA~ zFIH}mk7K;J?=Pt`bwoY^SGPMPGcMexv2ZG{y|xXp?KO&z(yR46&@^197|(}H(Bb08 z4fI}!+LHM8AxJN8*zOT8|7hORpM9$KmFzRmmfh5@TS%*FvN#@^OVQ6N5PFaCckJq~ z!u@r9iJeo_`80&0q<*4EsiHr=i%sWbFVR=YXjGGHm6dw60{vrl7hB&{ckAXMKeXK) zOAc@R=R!cd|5N;N`Pan${-$lVthc?V$4ck_V3U;I|IO|i+1NS^(YarN-SZC%JL{EO zY>;f(h28h?+OARa849p&5cN!|J+f`1mK@U~2W^{*-_u6C$mgo;!jmz3m-bCgj7`+QS4}Wou5~x|`#_{Q|NgUgf+e&+rHEZg>gWpha zYfpl~@2=Q=INT%O+DxjuX^<1+9U>3kSssW_@4cA+J+XeUSgZpY27XT+JZw8-E@$xG zQVO$p2(qnsWbj9@>*=|{Rm7jiUA#dARD?`wobVx=Z9@!JomEPDa_yhQM%^AdndH*i%+C#=xxksH&3du}s?5NJ)x`jW}x`&`rqz?V- z^pM{4P8a>VfAI+<@n>Xo@E4G9J9XCcSIT)}Aq9LOSpmV`?L4N&16z0f?Pd{cO$CoWijy;RH>e*KE9#Km5;FoFxe zimzmZ?eLU8eBsv!<)qedX-&hG)G(pZ-Ql-7!q!!HEb@94LW_J(i&WXlB0rB4S@S0% zT8IN!36w*^z)Gu{Lg_V&0+CeK+%BmPq&6dr{0T|~(#A#kO6_nlm80pXF=8yvQ)&%P3GUCnFziDl7u@2^#jjSl^$s#zgu%XD31d=om|zqG6(oYOZ{L} za_;xy$8on)*U4jwxV;doxuuG2@;}yI2=aHVy%1W)G511fe#?6y7M}!NgKiW<^Suzv za|JzMT2m(OkF4>2&ebihK zuQ;qU=r%5Xti^eS^eVsHW(IG8B&$7C?s?SiH*$~dv%p5BQ|$c4`qD50j=Gca$AMEW zCUdn-Qu%QlwdBi+!@=)tl{<+l&c~`Ih37Oy6HcXf)D(a_1{GT^d1L|B7zU!z3fG+q zcSJuNf0S)h5CcD>mfQm6os3%Y6V4CePzXJ7c^2tsDg@=TbiWE88wVp1bX;Qui{^G~ z9pqLZe`!B6Ih&DNQP=QQv-Fx9C=<1-D{>p0LpAPs-$4(oDb0xfaf+Ce=;rr;iQF{k zyTf=@JcOo&-V>@-@yiv;a>rj)hV}8}tJqhz2VSjyp*Fa1lx5NZyYvbpltgbxaMliq^OS#ti}}>`NL<&N=b?J9hm?z&k5T^hBVi$Y z#YOaAqmgMBAv@VH$j(&1*&TW&pJA?d$=WYCII&Om*joQ zcBrQ%JNQpKH01}yOFVpJgo6IZVm9V|+k~gu`Z#@`iiK;W@1f@UG~$2PoNw|$ub6Cp zogTC!XrAWpo6Bev#}Cc<+&)4Q*6I#}tINgi_h?KSd=5!cHWRbCAK7!`y8M&v);Ro* z7Q+8*`;E!`#df1P;zib&IQWv4rFI`fJR|txG29#b|9i5&K-^aUp!y&c$Cq*Ls;q6j zjNluV0%Ut+KP~g(<^2{X?^y0?jfmqngGa0Y6bFqR{)_w3WB8AASM~W;%HKaN->Uwk zLq6Ht;xkZ3jmWupBQbXpbs=i%kNkJ=*q|5HldESuaTPN$LdIt}4foAlA91?}nk#V2 zzf^~UA(M0`o4Ak4t)@S{=+I*WQ_wz4`lTIpy@mX&nFemnOptm~qN&|k?F7c*2-BPD zGTrTCa7T!qj>aQ6r+x&@i9Mc)-KC`b;`TE%OOV8RS>rJ+XBDK`;}g=0-6PkLGuvOx zUSqn@z6%=f1rNeo^kek3k-PB}xe+9mcd9%sZuOYt> z-T(BH`b#|wq4J(z)}^#d#c`$Rv+;9^S)hmhgFPsVg&2ngA8`SmPoEo|ao+SA@-gmY zDTZ7Hw^65y4cG!fb-lyjQ76*-?ajcMU4Z+~il931kH$P_eE9hBm^R=NCs`rzmlinQ z$NxX@e=P9lD42`ze*SD=j6lST_)B_F5b}#Wps_2*1+~OvU~HVk-4lv$;xGLtzw{rX za2Eyre2gjdczn&uC3Z6n%Pi><75Bq#m$)E_o}X?-@;mrR&ZT~O{+(%k3O&11ryH%rmW)jqt;D2E zqPKv$#M_ypMJsV?7P$;=LoVs7 zP@kCIaa>2A_^9J+phj?9N0+GXG#J~N9t@GRGfQ5B%PS=m)?4~>Ns5?VI;j-tEuC(p zh`D8xN`2x`8OiKYKDd)l^e&%n_(Tn;OU$nz{a5!Q?wNf_pO^bS-q$B?ty)}_BDM`6 zIqwc4KcAiQbBRj~IF)>UJL0twF7ZG10rG_}m zv1-C)69VEkP@jktQS6^jpcoH<>l5h{$z}aS3U%K^%3JendOqW9dOn-!MNF??dL7f- zm~LdBo6n|H@8xH65J#5hAuIZmsc$MhXHO;TI+>p*Go9X@(sKS(l6*O+Pq?QMy=+?8=@a*W zy2RJhC`MyC*;1?NBq57wC#K^;Q^aM{CzYm%>zLlb^dC&0WxAiK=Nz)nq34jCg-mZ^ zx(C!H5@(Rbc9=oWH8V(``k7hMCDt*0g6Z2cN!tmjM8BL#Wmj=7+0q5)lK=T$nClde5vY;j*2ndp4!_#@UOjd}0IB`#@psa8D7V&ZBfqX1X2J zC1ylML|kGaXo~1Qhg>$zAx)lP`Wa}7NI#$4hn`RFmxH1ui&p0Q#Ox^L-ua*|@llj& z)^}0Td1=k08lQN!W*xrvy>>3O22U_8pGUggJCAC8Xg>KIKcCVylb_F@Pu4P{-)L?v zsqLf|REj(BHz4xjP?@M=+ia2qDAb1Ez%i>|t2l0}WQIcZshx-oK zBMf#a;CF(!h3+5`%kbX|bQ_lMlEn=`PV7BU=nkN+VkpiFk(4cvk}QUar#Q8{Wfi0h z!~PlKeF9z@&~`?`AfG2=UQWDZM#IIMjM_08A>L&@OVBHY(Z?KQ-eBgPfiLP%xUoP} z=v{#%&6dJvzLG&vb7R|a^S!J7lrO?bHl6e;)Tjo|E(rg~WrHN<7<#Ii8c^Tpp$lF!Sy9vB= zfUaXH*tQ2f-xU9p4#<3x(K|pCZaatD2V_F#zk!@$pLl|$e84g66Hl>}FF4#m@f!2~ zVBS|6r8+2Iz7q}7fxqn?B;^P3DI*N(fqoKSakxJ0^B3_gm(eK4d5&W7tN2mM{A5uF zbP%^v{vstxY!#3b=vTP}GB>f$-^5W4x0BKDxXPEpy$AFQMm}zX!hONv{t#Y+tl&4G z!{DW{&s67m4&;H%Mdl`pvw$$Jk$J`)$cZJ+l{Cna?b+w;;9<>Fc3|`{&|%yG7vvar zb2vkW4YIm@2<1d=>&a4nbyh)$OCHZLB)O`0c9&1HloMFWaq@M}mr;x=wd}NFn9~(RN3DonMc^?xpD&Y5FjU&>P4Ug9m%D3j4*c_s5YFoUhnt^RVkk3 z0OSPvob&TBpi1LL`2+jh&OUFHKQZrB_IacH8Ayl&>~oF$)ucY>FeEy~ZPIj*?HY-# zF*#f(J!pWEMJSPCSSNjq`f8NKXgH%gq@U4bjZzt12vlj@A=4dX^UE~KWZr6^bBsG> z9;4eBZIeYD`(ugQ5&Ls8>>!JL56B5r%s#(h^eP1$LyVpWI$8W6yKuNSfi@XG$Pz{k?DGd%;Ut6k8B)9= z!KiYQ)}Gdtt$K)78Wn3aka^=Y8p1I=?7gb>KH16`hLWOstI#RTd$cv7*2V}%WX-YDiB0P>ivjWLXlYTlWQe$wH_Gs;X>QYJ7Omq5sGOlFz$fQ}e`V=AL=$*o~o zeq*{*<|T_0fI0!qM^ z0?eDlsH>5~D9WhPD0ERxy#g>2viMp9>?$#`y6DP&%Cr$AvuCr&l)WS@)J=Lq92Mk^VeX50fL#LcN+xt(I9aUb(GG8$z( z$mkhHXBdw#dVx{3@eZR`H2Q$iZjBDm!kD-vO1g|SzHp@?hNpn~i8Fyl)TgDj7bEIB zf=W@4z8JJP{Swfw>B~T?(ys(PHGL)MIHohwug7zg=_ToF5cZ{X3VT<8=%axjLH`-} z4Rm{ee7?-jdjo%peDN7v93nA`Xnxi(B(_V|aL}r(QJ`b9#(+-CqS!BFdIi%pS>xe; zH$qAA1k@+yVDD+mQQ*ZSKPJmrQ?Xqtdcbj;?Q;eTf)d9|Rpy-wjlXsoCUz zVfG)=yXF{p?w3Pa9mpYVf6kc(mp}R0-L}2xj@lTtW89ycW9Ey`bEEL{ zQ!e=@KbA{v-f?DpO06_Lkw+<=nNO*n%XAr2O1qWwPvoDDraRjHdQjzmcn1nKp#z1Q z+2KRDt1_C`;S)SB?r;$Ffeti6P|r_xAbp-^T3L7s`lxx#tt})8%L+-Fc7dK!>?^zx ze!gVxPlapo9A6d{MVlR?>-#Vrz;qbX)0mEBdN$Jts8u5Kif%-xMNF44UB>ikrfZqr z$@G4vo0$HC>C;SKV)`o6H<4(=(rj5)Q)7~ zWcgB@5=5^k&I(dqof{m4=SBRyJa`hGDW6e~*kxbg&2ag$@OIF~IkU-0IYV>+(_u_c zV>*`U*-Rs#v7EUX{udPyUBYx3)2o@TWqK#m`SFpsnL<*^)gKcrJUIW+O`wfM#oOnx0H3FJekqy-+11Emt#`A79#EkOuq}I z!Q~I8W;hGat;6j=+lDDrIn%*RtHb$lpB^TAi!!ZadTsa;+)}+RoaVCfB&|5#HM%}C zn`jn4w*$4f!Qw2q_h34R>8VW5U^+AZ1xzpQauT@L@$+p=@9oka zn*dd7^DVfe>kl*ijeRzklU+iRRlO@K83k#*N~o0{3M$2T{PLearB!nljkgB2^9xL?whxNDil{8;IIwCj`Z(e=+UeU<6^Ob;^sg{iCClRDn+ zVsQ6mX#FaRhz{lFKKwj@=?Hci#?RIKJeHrw^K*osC-L)irn8yWFs)^JF=)P6)}7kV z>$+3wZU>FE!{wg%cGybA{@hg_YHx1@w{Z(hE~>BG(fu;y%u$v(_&AbGt!TbDou4N% zoek<2*HoV6%@_Zyoa4p2g33#y&{-@^&pkMY}2>t))xyF?*@_G&R<%`a}PJz3!9BT2(#C^TVTDJ72 zzVAh*|6#hH={KObY_QL@2>U`GvY)s6?8WmpefIlMH~UiTB}@l_`o)sI?Oc9wW8Ywc zU)%+ke9_RiI3ZvBfM+T4j$dilua3v}N*G-qX4(}Lb?11p_Myjb$c>K&oS!(N{s{b!s5b`^O=6nGG|03s)4@zfF`dNpJf?L_mor_>bRE-& zm~LUZi|Lz8KVbS9)9*l~NEt*ln`sf#3Z{LSp3HPI(v0n6C9$g=kRxyxEneY_If#`W<^xL*J{`Pv#)jw#FBcEWw|zv~3DA97Jv zny*K^YMi!m@cZy{)8KueG_u0Tb};4eroo@WWgl~uOy7y8w?>=!lXvs+ny;2Mt_9C9g52N%>8b)!=7)Jh=4to{u)Gnd#KpP^t zT~fN`i;gE#`(JS~mFysv`o*r(t_OV! zl%&0wLUdnBcTqj!OGwT+oos+Cd_;Zu=|uaU{v+g^csiBK7^bho#j364BdN}+`rBjV zWp0vldg|Y+*Aw7hig!j&h5z%Fd;Vyw|eOPpMfkm$Y_?SsIbncoVFUq|~~_ZjC6lZc$Lc@yW;1#^Jo@ zERCLlOs`nMXoq|$Z8FdnjrM`(qd@rWa2`x+1@wyMeVaBDJG{~giMLc7O*;>0mW}4& zJ?TD1JG}n%nb==&Sn)UqTM17QhXdLQUKOKdo(A}AEvhv-n7$QgmPX&FZ^w$tQjKI_ z7tk7wk^`^6rZ#ERF7O7>4voU#rHH*69S>fLIK*hD_q4!FoTN|gNV@Fwo)_2(RH@Mw zfp_sPZ@5OQ0v`fRQ3!WMV{e0ah0zW{xs)!3(J>;}1m#k?sH6?`Vu!prZ~$+ZN80FX z?0%cVXc^~3rr4m6rz#^Iw-0X7XjDcP&~A-pf|n%@YE%bamN=r(O7PlBsq$SeeUK%>gc znb?W9L!*;3w*tMxXsKsTW?1G5+Uo_I@LYs}crLCGA+(e8EKiJMr1C6JY|!ZDz}F&A zJP;MxG9B(h<%>o7s>{-P&Z46pc=4bG|IXyg~8Cw3!byT%##%7Rip{ z9F3xF>VXz%R1aQItk&oX@PcBaMyuOw$9wN>8r|Av7tkIHrClmJi?1}=n06%)wg=$1 zQ{LTXl?-9tqR>Na*2u7Uf{{v57qL(AyaTh-u@}t4rx!l~I{k$w;+zWnu%PWgg1rGObC{SW|m7lZ0s}Kbm)q+Piw6Z4JZ#5p!vWK@cEHoC;< zA@(x56gBm7qo;7tAxN|nZQ5?feZ)Bm$%3|vj9#Lvjjl0zi@DlosO?PLnzd4+zHM(b z`iciM8rt?2pjR{++4c_Oc=3xua(vs3Mn5sKC&wqxZtKH&pQRd2hm`(ek4CfGJ_Ljl zsic{lk8t=>l}3vpbD-Fv(WPxS8z*1`t@62|?JhA`%vH#HJ@gzRmTPnuqqW-S=C)56 zL&Rpy`xnwaMC{h+HAopEO8Y38d)q#1oG3Qg=y~HLk=NJay;_+3gyP;o=>Iy#3mJYMdqxX*9Xr z7slx#v5I8wmzTCXWQ-DFjn=pO(HJd;X|w~pGsG;7K1H}{v0Ni(?r+9eu|cE4++E^K z@q|W$bN@8Pi9L+2&77O-p!31}+nKaAHzkIgFXhe@HqZHHt`F!ihr0xpH6Kz6`cc3G zUJ5r}3{gl@xbb3*Mig$mc!1G<@6p^Fjqzd!BPC_L*vDw6Ad5Up9I??g#srbspJGsX zcDCrsXs3rPd9oO;5n1bGF-s$|*2!YIMr5s%#YTXw&hMimRZ0eOXS=+r#yD7AT$@56!nZ$+82to zHX0=sip@6aZPtptDjfGRb;2=(rEo7(Cwendd4}&LD#Uqqkyy$|#c+{WXQNR#)38G! z&#JtcqF(IP=&ro2K!+G9nM*{@i4>pet1cF$jFila#atVW5*Le=3VGhiOBa`jjT(KD zmj$#%qeI{=6?-&tZ_KE`eCd!j|Z2FJts5be7Rg4R7j4`KgqmY^gcz!wWHgY`QqO7amz&p#aT-l(e>Kn?M#@4~i%mAV z%UmrIPbVqFd&s;|6foN9y|R6}xJmTZXm$H6pyA4==hpT!#m(XzjUH;h6=;!0d)hy4 z-Xd0Ow7>lppp6=lg{&3ZG$IRGEB0vgP5bTUt>P<<{%rpOkougtvYy+-J0m%@g7W1y zaabct`)vYKLi|+ixJ^vdi1O@qu~{R^v)hGdwDL)LeY?PhaQv2vw3L-QqB#o#Lwwznk}n z@EDS^Q~U(Qphj&A zwquvAW2}mytRUC%xCm<0y`ZDx2{DAxepv-6Pl|DxH@P6}coHiGD%^~MdbvfcQ^-?O zFcbS?H*0heqjxmAlF<>3))aJgJR|bXWGS9I84c8E6JmcxOkuP{JcHP`ilvN}iI*T{ ztN2Bux0pAMhX%@8w~9G7%A#;K>g{+|tYt*w@_~-$#Ach9CAO0y`0aFd>~NZ6hXO!U z(z|T*Qo)&y7^2vBi5HX<&w#>-;O*1sjKZlvhwb=$;sudBo?{Rc!wcdCjVOkfMb24@ zM=`uCx@tr*yetMXQt5kHOw>G*^0HW@5lMMftk8(0yebwNj5(pJ+t==If$rlJZIY z<{M%yBNh9b;uVEF*A%8>Kkp|Rtu4#~`bDFA3+FiYh~&v6Wtr#k!udc23ZY-AbNokC zF;cbvEwO@;s^M>mZ5mO#`?koOLQ+(3__hcuB)1nXb-XQhFuGQ}R(O@;9r7mX#kG0f zqT3zs*~nkC(eZ(eGK(DMhhi^>Tjpus@lVHx;;=>~9i7e(g=Z>xR;k@5avGr_jCRUF z9aEh9#9W1VRb`)8tr4xN>=RowqE(gsVvk0&s~_f%mCcrxCT~ z2gDN^QCogMyuxUy=c|rI&d=%Bsx(?#I16Z` zM)wxhIKLFLGG_S=$7ly^=`!axV!>?U-2hu! z>HJn~V?-A659fE{9gRvlJ`MDhLOe$KUWoH3oYMMx5md;tH<&KI7gZX48q5M3$w0H|BYw@Ev!aSwR zPh!y=;w|%B-65iXtcLeSL|v3N~5njbp#UU zE15?i^H))zQF7-jpdlI+bl#3V^Aj~XuJbOSxf-3+`3>jqVueO$c76xQ6IC*2b)JcD z8|P_sap$c-T^a2Vr5!Fd{}3ZJqPFg+*ryTo;eU#~H6&#zR`EW>uC-xv2`v#1b;fBq zxtGzk;-${-VOQ)C&HJSDC)fe`!aU{kNBDHe;01)1inI`+J&cx!{LmLphdk#(<@31E zA*V}zqS48rpPe4LW+CxZ*?Q%nT0%?3#L!mU(mb$Eq1lk)lM@#!G(U9InJ6F7Xh|pw zr(vq<6>kM%ZzT_FbQ5^3Wbk6edpu;iTFZ$`38{HFUbFCTXVSdlGM8W0Gw*;`p*4(@ zP59*ljnHm|JWGnxal_<6jg}W@0pVi__@VxRmmDeE=Oc~VZ)Gpg`>Yz%a>Mpy0Mlw?MuZ^608HH25OtxIkNab0! zT&oc0QnuWz5#>_0d_g11r5w3WBg&;5c~~RLrM5D0xzdbssjbY@=uc?fPF8A^RFVZW zOd}dm=gKJ>(TF-%E?}gz&Xb8(kW6KD`En^Em4omFosG~f>Xqo56l9{+owcu*y^S+W~d^9C|4WR?_OpJ*-$zK>z4ClH! z$zdyrw~S-xEaxy%K0`9|TIO*J9gC5zQ3Caw#L#TNKMp3US)I z$Q{ZjWMZvZ9@OFJom7d$6p(cB&^xITnWhl?ER{h_nVa!LowUh<$uC8euez2p&vI1RmJ@@k5YV#vb%1O<##`ufO9 zMk;-MczE^6-u1 zQ)xCzde+3F97YG^qO!fNQFcjRQue8AvqZHVsgP%7S-Kb_XK8d(Sr$;emO|mi z%Ds$siuLe0RyuC7;#&n?P$AEwWrO9JvPz@vWvg6g%8`sz`o_t9j8sXVB@Z)FC4H7m zzL{haTHrcMCf;J9J6scF*hU*&6XiG?J?fey7uo1b*JQcYMo+q?$SpQ{)-_eWveuIM zy=%H0c$%e6^F|dLJ7jv-Yu#5%$K4!`eO@Dj8j;VHau_3}=e2U5;<28qWa2$4zNgDO zxv!H;H6lG%%MFZ{i5JV)xNnd-_r|ooS?;}0A<}xSEVy4G()w1pl+iNLwd-9#n;syZ z((`t?htU!-uryTc?LgxbAB@-W3=mMa7VIya!ZZEpyQ7iEe%crxr+hp;$g_3%9 zd&~V#8;$JtkwzxBFW=Z`r@-n&3$Rc&wMYp=ET%L^iifZPQX z1QbonYf(z#g~UX`yrc#KDhj9wrlqB6rd_o>re&pR9W6~QPU+E1)4Y@w6`2;5mYKIx zR$5w?-!tdhyu4=h?~MQN`^Naj_;kDv^OPaaYWBkHfZh zAlo5kX1}!CI_I!=I-Hfet@azJEW5;qNVmtzVrGtUd#wAJEpi|3(A2%xTH~xBF9Tm4^*-e`XzXJZbgnkcG>D__xcKR<90OaSrPfljlBUb#qv5%xL#v ztHdy@wT^dxY3*?stzI3m&N+AtcyI_wU_JZg2`Xgu$Z z=^&0-6%M1dtmD=(!+5RrgmuATw3c=@nv%30?mFHmxPuKr{Va~Q3zp0lPoj8<3ATT2~AtE)d-8y!Zg zs~4;qhtcZluhub#(dz1Nb=w%$Q?I~N=2Q}z< zWQN0N3@VxDFdBnOPIDNIK_!@$FG~#L71V}uhQnyoHIxe-Pa1U%<$A|PqpqRc=P(*| z4doHXlSW;Dyx?K8+<`J=8?#~t#F6P5)WJLZX)-1SO*aylV4{~cTLCj z?nqf-nE0aO%U~A_!+3ev6(u+BWKXbn-O;l58z!CADOAMCJck7`o8qu&X7e4^irFfM zUCnG8Gc!AklQqoD{xeRt-9}ksD7j zde~>~=JJfg_ILW)ogmxqrkIPw{!ZVzTgVEBecI`~J6W#uFv~YZ);R22q-!Zd_Ly|v zB3-J?^{@uMZRBDP3-N6$YaMnTrM^&dwIWyCHQub z8y%M1`6G8nS?#dBs9z^}!DDOX+gXOZX>!vSWwyhTJGb{ulVd!#_P*E2l@2?3 zWmn&Ba+_i94xM{~9dKAy=Pa;O%od1(&N;s6a@kvy!vay>c@S8Y!)AhYmwTAe8D_C> z4|#;yE?=5Y^pqEv(U||vx2G)JM^T7Lzbv`b!vg&J$tq?PB|~S+GjEgUBKJ*QLj49v z|93bY-&r+4COfRKOFP#9nc=YVE}>$8%yZbxE>TFg%wbEqJSqpsjShRhOFV4V4x?Gn z0C|krEb&^G1z_S`lV3Gr=EyaMi6dR^QaQ4HwXvOtEmvXz1pnr^-B%M^>@Zs4$dy^| z8(S#b<~l6y>LkBhS?w^o%AYHbIgGCI=gJGrcBNl&b%q`&FMPmJ#I;wq_8TO_YwFll zV4WS-A2|$`*$yjYR^zZ+ul9rOl!t8v3;B?u%oev^{ka$-yX_}7Q``g3p>m7EmNQ%U z5!vR54Ogf64V8x+wheW-S(1g0GUHqPEWOz{zhNHR+-oNJjqqZ(`Q>@o@Qy#r0xves zuh7F*BHbu2cAMWA4;zeh^8p%9+ri2PV!>o{3<-`-$*yvi{0io z#l!j_zuUdoIKOEgwhQU*@M5?5&8TAy-@j(8nB`$#UBZ64g!!g2+>&5_XuxmPS|`MEO7!*27tS59#lwfqBenTL(@ zdrhf&L~k{3MeHoxa&axKU7rIueS zvm8b(zgA9g7`6ObxzJ(M@@wTrhf&L~m9@-fio4Th`>mB1n3?0zy1L%9e@VN~Z=DSP zl=7o}mLJ~VkjiY4JL1|!e(Pn1!&+av6l}1U=LT8AY?qaO?FzpQayB!Q!;73l-5FRN zqcgDeepQZ*&cHVL{maA3JM8k?D3@{+8ZYnqZIU%k4x_JK@Aq#x?K3W?yZqYyew*b& zW;?A}ux*yx9QN3?3w*Z7kk83;rdWIJY`<4MwQYFaDZkfbd$#Sgimz+hV7pw;Y?np0 z9dgDYN@wcuhFr#s%Hk*9kX4tk8fH5MMR`MJ9Y!)|PPAL*F*CN^vesjZ5PRi0W+uNk zJtdP}uWYcdjy3e{nknA)u*O}7fyI46Iqc#)Z{Ml2*_7@b*_LfbeJS0$vbV!1-Mexa zGt;-#aso3`qiQ*u*)Bm*s^wxY+k3LgF!#`|W5s)NpTkPJZUsB!usgb5A>Nng9QIJx z4q*OYaydEX2eOcv$*)GvFpOi?$i)t$m^E^Z!`?&859LmWeTJAH$^#BN3EO^o+F|El z+b{Kz`uskU)0mn34#>rZaefEndWTVd2jotNC3OoG2W73px^#;GJI&0r%g3_!SCoT^ z`H3uKW>x?`k@p)L=kSSK=`hOS6S>i0FCvFpS?#c$$e~sqaoB#?K9v_7_BCvu%0@@) zYxJ31#mwaXx!huyJ0d+)d@gGo7M~sgcFZf?A-U@7`cfa3TP|U>%*>cLEaQ%Gei%JH z8XT6L9o9O%4_KbVx~2CATj;PHGkaDB-xP9NOhOS#S1tcmHjH26v$ za@bVZj>>Jv$#bE&C%vS>G3kH8ux;s68k~^#JFGf=R)hb@JBu`W7)3PnI zUA|wYj}@n7Z-<>r-wH;4rYx1>J2{MP*cy@h4|0`FFIz)Z?PY7I&Uo1ZmHRZ8j9V~JWid1P1*tqQ zTacR1Y=Ibb{gVxX)iy8BP*vmQ8LCcu*}|0m&g4Kf3R7{+Ob+3yyr)3m%N9Y2Lu&nSnc>I{40 zxg|u2Q~uvmjduA`4sj~MVcV{c0PE~9$}e7JJM1mk;#Hx;DEDS+n!{+zX{P2gGwsq` ztuZ!!lBc=a;xH;p^Sb(>?yDLksw19s14Rpk*A7z2EV3o3w#>{{oUEq(L^hK{vRde2 z5qQsHtzqt--9tr+I^(cm-6O!<=P2DytGs(J|CVYMGqV?Nr7k#(O4dqsJI^_YIo)sc zZ>{n?Y@mM|wbL*@qPJBC4CB?nw(7LQXf?2{(m!()tS$Aj+No%VEy1c#J5Sx8=|0T= zN)M~*KGOdx)s{VvT4Zalavest4r;E6!nt=;OD|#T4dXp~N43Xcv}fPQ>Q&_t4LD` z7fid*9Sqm1G>6e04A-h`W~NuJQ+bBDX|!IarZ_gr;X0?ycG_=tAMM{w9Wqh4U9MMI zzj6*>TgCNiqham~8KI)Ps&<%9j|i|M%uIe6YW;7NZl|D_8LE+Gfti-*sS-SFtLUjZ z8|J>JN2utf=uJNGbU%Waz0?$DCQ5I$N|Viu-5WeT{m&j78s4Dxu+8MqSJg5*YLTt4 z8e>zsnPN+i%?-2FX@~9Uv8!Q@%EPn4WINvDy@ofbh0IJ2L)02(Cgu=TYnX`b`9;Ga zD#VA&3HEivp(+mVZ$PO<>z>~<9Hufn>}z#N^&A zP-i@BwB{UlHP>NuWp99UA-2%p`oes;5=@n3-P8){RfqnsHD$C#G zK-VM3t7#6S)q(M9pTkOHZVDK$G`+$XWtoh06I7bR?m*0mYKz0}ju{>>Nu6^TU8k*3 zC3u1!>3DUZQq6D}U8k*73k|cXVhRH))f&e}*J&%&9*5C&+Des-XYVQZ+L*BclhrB@ zn;3Ab3U5?r+b5@}^$w%efvIXAGqXA{RUPrL1M)W2K8VuI6tp@pO^sn@RtKgldK$iN zb>L35(qXhZFhgx~Jn7l1yVN0v(dxh~MW45&r;%uNV77{L7_AQ6tJDjhR^;xK|BkW}@7yDwyrUdO&i(eQLgkbqcs&tuc&O2Od;=97bdCL3PAo zGzK43xCspT?Q+u?d{D(XjK<(YsCiQdsxkN7>&9|)GCM3 zs9UJEIgCc#B6YxFH0mBzrw!xPfyGLPnzGQSTdcwj6Ex};tM-nKM%`kS?Jyd3i`5v% zlSbVVHN(Ru20W$~GowA&0-wj#Hp5Wc`2kB+bQ8*Nj(becM+2TvV+=!Whl8DV7?t`- zl@&&wbOeeJPpL7?cJcG?%hU{q(Q$g2T4`=#Y-mBVPi^t9T@Y^N`+-#)FX9rg%3 zpH@ehnLX_ab-}|T#0r%V&h6s6s%NNJsnQ%))iVMt+b}`-J)<@{jPiR{9b#tc{;ayd z?5IU|rv6j4jo_H#V9!V8s=ASE|Il+?z$%r&HX3Jmqq!Q)?5IVy)oKPa(-P0ADig(5 z^m;kqd9}}B4SH<>JLIq?y~c_)>YT$8du;{tk2E!E-|GsoR;4+tSFarbYgMkp2KL$u zHpXG}^zRF5hQsLT-xt(E!}yuBbxKE>m>uv;+Im%Jm_^T|tyeo8M)%flP;t@hY0mH=#GN7R02n#F|j3JpXz3qJGaBj0rZ}4`e)uo zQO{^x*R!L&`~%dU{u@}?5!@U^2jiTO@*4#YI-ruQd;JbBE>`yx-23C96x3JYS z8p(M3uPK=w+S!|>bO@-oH4N%KR=i*5*)Xp6R)@u*MpyJs4g7#@#L~fPJnW|4R|S6P zVWnXEJ?x&|R|kINVavb{Fr!wY6$iXu*eThT-tWtUYB1U}4)+CRWu^umRMQ-m2llaA z=CB2sR|S5eb~iikY+q0eW^FUP^k{1-uyykIE;Gp3s3#1$LbmN*q0s~ z_1Kqcm`P_*j~!8q9Y#HN#N$alc0^S>IZ%&%rH(m_dh9E8f!R@C>an9Lt~r(Ss4w-{ z*DAwd)MLlg7>7}h9ar}|jC$;ZTJJFGv6HICVbo)%JY}ICJEcysZKg=O!B3o0{)yZ! zR^J;`z$ul%Y^OEkhDm|ns0j`$1p8Jkb=Xv}(`p~HIbuH8cb*)+xS~pa@5QDD{-6#S zPxo^-%m_TAbPLLFj(a=US(R)U?{|Mx-8`%$@JBVw!|n#+UBqUeVz@p z^ciM{t%5#P_+B(CreFNsw6PV2rb{6hZ(5oCqa}>AU z=CE%&y%6ZuTT&_JPODMYmHsTkdpnHo)(X`#Jf2$un&_p> zXs_Qvgy}8D(@jU;a9!gtI>LtQQx2meY`BhY$2CH_y#WzA!!X=aIyEp-=e8%?Y&;=+ zp;461?qJvquxP!wlVK0uI5jXvmvlDlF|ek3i^EplsDom4$koQS9kyorjKkiAt+`H1 zGq#U!3=C?ale-hcdsS`>!j1D$2eUN52JLM`bZBd zwYd^}gTBCwN{x3@=te!sX0DWG=~`ySGfOA;BAfBNQKvC8wi|V|mn~Z#@v>#>yx#Tc z2IvZAy98YmAE2uoM%To1bTu;*bD%!vm2Qx}z|53vkj~4jk2y$JFf-`}={;VyA-dMf zHbf7;p+4Qsx`dgDd9$u!W}@7zC-fmtGYcB7=Q1;OAFfw2GoHh>JF7nCEjpT+vE8D_ zc-ivxG-l?iSiWBBFuE!>QrCES7U*M_unQg*AqsS(zIFMf=|Y{%jAq6edX(}AO zE;DG1rmwlty)o0;4G0>mtC^WQb4v9QW~P3ndf|=6b58dWL9lsPQP6lT`Wf4>ex*SZ z^#q3%_q#P{l0L+2ftb?o&Y%k2KASujh=;){buBYf+sXQZ!>G2m>bCvK)3oOl9-o-o z*qi$e^RH)n`rREgRcElLiE_IxbQndMrpFB6{P-;-)Ajw#Ow8$e88ee^y58n6N_U4o z+zIE>Cv?$^CE z;EXoS??HXWFr33a8uXA3AI!BCv$B)?=GXOYL-MR=xiKq(7U(1FX|Aw7qR)BQUFs1X zK7^vocGKG$7V5SRqqj9I)EUfnx#`)}f9O1i-Iu*K=pTBT!=B6z75~tS9rhgB>>s+y zFhS4aFVg#%?G!gBYy~^!*y!o|M>QUgK<>LlLBdNxkLqX-+ZeQ1clNLd@wm=qMx$U? z&{93yFn&A4lX|Jc=TM2t1CP5tr4KMOIXtD?-dva8#-L?-nup;$Tvt1cO1)B_ zVrKGNsr`r5rHc^H>eG0u{ZVujX@ovy+ecEB) zWFH86PR|};Z0E8Y+t2BeTbQAzKZC8>VHdM^i05@kp0O=XAU2qp*}pumOPDQkckBOs z(DQmWv!l3H`I&rPFEos=POjCf97b>DS*y1=jII-{)zwbAs+fyl$C#OY)>7l1>QrVXzqLBeFwSqC&UP5(w@w#2jPhHjr!YHg(UrD!dcLvYYN&7Hb$X@4 zXqLA@Z**8`%vrfX?{ipHOkm>|^$~~N9rLq%QJ*u6uW`Pl{YO%%kNVQprk8Y_!}9xw zG=52UcGy^E*$(RyGt&PhUFfh}l%+~fVP;z5Wj&vn*%Q62w|H2a#xHCBoF-<6GyCrl zn{;@A>9KkJcY~!mYyoWl))@|40^7g!V23U5KUQqk6CAd#|5mWs%*?)Ei(b!+uH~iq zZPC>Zqb>YZ-M*0X6L-f%h}ZNghfxb|(`T5?5|IP0ZM;o4Dq>HbhiucG4Z|L#J8aV& z)^)m<_vqkQr0jnDC)-?{heZU&9V-8yY+a7H`UAM^n6l{BR z$QX*b$o>8`s~YdsoejgcBV&E{>R}$Xq4Aq~zT^25Joo7}j%{$qSl@lR+QT+9ep~Be z6Vo?sRpWPcoM9phG2hi09=4%zwVuLkfmk~r*7tqA*kPN%KF}MPncCLqeI^~YqgNZ( z=p)SNn(?EuMxQf`uNl{9|FM+2xn^9WqYd+oNGH#>4y(emEj2pBVZRO7ftZ7tnf9#F z6PVTIKARbB#UI0Ssgus+zTPk=_ni)-E7mo-hFM+AQ_SjOig8rVU4riNs?j0LjOT|s zm6_RcKGeA$79l>=Q4W-^hee1_bfXf=VWvAEXRN5zy$$1$T&ssM zTZA|1{L;8qZ**9Bjurfwo>9vEhqDQv;6u7|nPJm&0)oHL^BwkJPLtpxI&HkMEzOAu zKB{XS_EJt_@NvCw0@)Ub-8rejC-pIARHF#-jczoNY;(k?IXxPDtJ4f~f0?u2?^~VA zY^FG$(<%5{z06@cHw|pxBuY0^G|r6>-{~_Bi_h&I{Jl=DG`2b2vx3j+Lc_SWKk6yW zj#^zi4i5fN?_p-z`kX#=3F~$%myFY$(|H~iA*2!Q;xJkd7k0H_9L2Ivd)T8vmObS*%FoQwrM-{Y95F7pQ?R!6 z?PS~KOZ!i4Cpe7uS+p_6`OWsRhcTP&o|L=a&uv#2PrkF*ZPzk8Y|Y6HZ0u*B zbJ$C{KTAKm(KO28uyru^tZZPnWoF(q;&1nMY}P>E#{PDmVZI3i@$Oo?!eIjjj`R<( zS32xAcm~>A9QO3Ukj6pw0f+5lcE(|65GBZNG~MJ*?=1|nQw{TNeiPn7Yxib$l;15G zY!^DVfj2!WgY6kkIyx2y+e?|5Ej8F)?_rMy1=~BB(e|F9L+n~+<`~e#zThxw&oDdu z4l0W|21MBHnVB|=w6h&XZ5C;lIE>mX%D$i3E?zH=wpThfYO`qjfMMKbP3=<-qc&@5 zC)~+(_oX(AwFf(l+AQ9#a2T~&yglDx)MoMaO2hbFkMZ_4$3|_|+^%&PwNi8Yoa0HY z)Z7l4!SzE++@+e^$%bK-<}Q_Br!m{bv)@EJ%j1c6$=W53=lq+9&2`w*%$7N~oIi2eA`_lk9|PTjYK+JI6Q0&UV=6HxVmw z*ac?yJ1lY#*;YBM{h(WeQ|xUH>&>>scTow`(0nbDIqN0y8tW$*?=mtF%J;PzchkOOLkeRv4*vnqS z?65U{$fL5Cz0-JNEd3PR%Rc9%dj&Bw?MC-<4(=VyvJHdh#o$c4gqeBgLmzvM$L1f> z$KJzi4(6u8AzAkP`zVSTgMICl%od5Lp{+yu+SBgmb`kA{b_nTb*Dy1l{q1AM#@8A8 z+aV8-=OTC9)z^gdw^Nzbd3N*IvS1tRup5UC0Gq(f^lg88@g?cj7*AXUFN5bE5339r zU?20a=^?qc`$5iKeA?-rkeloT4|@=-n};n58DtN0*tdu|*q-8Hl_5jy#U3_2kZr6I)s*n-(1rOU0l4nOhWOAoxp+?$m9VR;y>+NB&z9a2n9+u!+U{7#ZC_D@8 zxgHklTWBx!ums;Cd%eS6@3bXkl)cZxK5~z;k9gQ;?$P!Ihi$%cOUM{Ie7-3eJux=M zZtG#6xr^=I4omL*ddOJ2&|!P8d_82GJ;P)B$X#MD_Simhm)h$+wpPAn_8yO|mG1=m zkjK{Ex7iS?akw|7{6j8@a_EM_Lk zbUV-3+zW=@8a&;edx_^7hdn;@`;h5&jl-TDdJgQI!>$^V<9ml4_lU{8(~yfHci6oh zb~p07(;n=w7lzuQciM}YncQdCYm5zBj$h~ud#A%_>zHBJGBaDp3>%+278{2VzVVl6 zd@iz2^ziyrM&BJ8>BK2x>t9DRR+IKl_Mh{&Q+Y==sXpekM}SfoO~i=*?;4pn-Pn_` zuKY&-4D0{8WzMnBuZ*r+C`UJ=A7cPxV-HFZ&T@ATN~g^;S>ui5BgOAEb$xUr`x`WQ zWwVA*iUBN-Vx-*b^7ZyHb@Yy7ZI z9e-kdm-U2F>}T1;H!+R%&ooAF(2N9cPc#0F#>BrZk6Ovdv@O*2ly@p4d#9R*R7yPT zm6kM@ru9zc9c>9brIXfM-og<~8FsV0kCC=ADQX}q@d;3i!$4b{_#4*K>|^lvaqwj& zSf#kYKBk11`*_zPBA@C=C`CNWZCUQ%(OZJr!PHKPYgun1T&}-dWBT{cMum4tyti@F zr{8f&e&!sbMsf*(N{}93rDTmMzjquX|MkAY+y8RUzb=V)S~KQNuNm3f`q#1<6()D@ zF+;K?S{4v?Vk`zqQSK!_#`0RmO^iE%QoPNw8EM{eerBs*A;tXbQvI3r@6^utnA}Yq zQ@c}~uj#3@A}WJHGlqw;##k@k519RoiRQh}S<9&ir7(LT8V@*nvSv414={R1@Q!05 z)UuC>W8@>O`PNHsG{(p1y){O@yxqJ@;w@9zq%f(x^;eG~eL7Hyen3kMVljyHDEJdM5<1PRB$eiX$Yl;6h zj%gq7-Z9ah^pwF8B-fRsURIo!78^XCbv~vHdpOkrwwhc_?Z~Q}IvS0)^>W#}Y|eg| zBgnDTp7k0dTl_{@DQFL=*s28{#vo6g`ItRtCupR&j`clQHoa3XD?Z|AL7w=&8>1~S*pkwA5aN8%3#?TGQP6P`%JTC{a%*BFfzj zTC-RDeOj{>*OkFo3G235Z@GROzjWI-EmOaZpr)vA-JWd+*O6L4a!r*u36170(dI4D zIe-uy((kMss zf4jeFbJJG;x7X#rEx-5JJK;5-PvE}x-ou+#B9y#WSC{P7TeE+?Pu(`+9shbBIc78( z*<1(sYrXNI@n#8cPqT0F-p^bv|C#2`^xiRz&*h$%`%sOfb5^y5+re97gpL2TY^B+zCA?*0^{&O`b?NPuuXm2#@}K$qnf^1xl;Qx7 zABtm%Khx0l86~`Zen8qwHNSajC?>wF%EvO3%4kfR7)%{cxpx89ZQcKG2KB#V24#*! zX7+MDx3)o}F=Nm87&()Dy!FOv&Xi3mZ#15l6^71 z%Fzz*jVlr#Y7ERY%q_~?k ze>}gn#9z;B@8PuGR|Ed6FaFrajEcJPaCutqarO7}s*m&E#5dcQ!Sh@%vwgWMsg**2 zmUx}f%wvsg@O$HfURL5FWbO0_?Exff>iWokGDo}2^IF#T0h%kNxT22NV@fdunoDJ~ zW>H_qOIy#3c{BFR7Gy>#U9q>sO3q~+$MoLMn7zcmSx;j|idvS<@s8$!b;rIxyC(M6 zo~Ff293%hz>tp0uccx%ub4}i$nWNU@e{&7Z%tMZHO^y6#t@;i7m{vVASqnFM*k3fj zuOa^r0*2xjAsUGo{5p#u{*Uh}i7XL?Z@9uM_0X_+5){ly?^$L=Vx(x&dF| z>4RS`bORA(Akq#*yn%=}81V+<3nD}D4U-X~o0X3gBk>pCKgO?{RVdx$>W4 zhFmSG#Ped6T!V72!M9^Jh;6b;?7?rJd<`*o;I|9Ey@zk>$B6$4YV!%?PauDWbce+d{9?ox_#F}Lt*`L~>0{8JK>bd@_XK=T!1pBhN$`{4 zC&9lHovk0ZJ?S|WeDx*fD`0NS3E=RU(?ELKBLZ(DC;1N6(=#3sg5E2Vf_H{o#Mjg5 zZuLw&RfM-#Koi(_HJ&*58Fi+#s}aW+8hZL;HR6x-Uyb;rp=Ul;3wjP@wV>}l#|wII zO1z-wQrbzno4X5et4L=#ld(VJ5XOAQV#bL;yx#`6Rm^0Z$NB|~OBk0ku4dc-j0*J? zl*(7UHLRDlNz(Jf+vQioc0k_?`n~eZu>GNX<U{<=i}n!@Ci+p zIPFRAy+1B~8NLIrXKpZJa+Bj?Sy+VFj>uz!&&$*icLu#D214_mxMqYOJP(9LSjWY) zkt7cpvA2n@>JS-$ck~U3oNQUDJaPu`UdAUP@r44hV8pvkf)w3-?W-F0{aJ38%SKS$ zyLSAf$#%JR#BcU?c}L7wkY65gvPp#6GvaiU<#;kILPV&7gjnBrMeVlNGI%V+4%=%T z3-Mti z_TI2e_53aK!}=?F#-P6%-0_6nAGx2fhX7B73{i~}w8~dM-;x<#taM(en5dfO^$VY< zTICH#$=h|z4X2nxp-Im>6*5uf~#L-ZMvZE*{1UsZ_@>R%{HCmqzn3bZMvYZ)}{;kT5Y$`Hc^(|KeA)g5WInDtnk$*My5si>NCJ0)&oPw;!(HXMuxb8G?gdcy3k=jRD`Db z&O@{aG0&nFd(Rp*a$HnCN;NTRrfOX9v6`ux0;vV=idvvD3g$*_mwgLA+*V;1$S4d0T+b6zoIfnu1dy?etd#w+2V(9|~f9x64F~pL{E%a0g0~P#6-OZ?$K+ zE6X=94rEOp%f&30vpl;n3jPll#skws+5;eF<+u`mKiU&>3@^ew$~O<%^# z)NdBX`ey3euSky$l25n$+@7fp77lL`p$`|%jV?x<718NdSW!2-*h(l`4^2uDea(;B zv)F1|^h)#+LGLMB!u#GOyxkRB-HSefXT#(p(Z0MFD#lww&Ok#wI2Gj?=bEW$YnrKP zYnn$Tj2XhCZmRWIQE5yUMc-Ci!fn39x==J$EP>DJrb~3=QTUR!jv9q8XzPSg>zk6# z%fM9V4~t==hWSsmZey8nxqf0)i`dnAE9C8Ra?C4HQ>}MKmBwt)WSwVSGonN622Fe5 ze05=z9lBjlYnL6nS9cseBzC**JNg!2@#s;p2X*D>oAERfmH#le=W$?-`VM$!?05Q| z(Q|;OM?VmISgSF20z<|uj197BFBD{_jCmZI_G320F0i_e*&G{TQ;*EEhK~sq5jNE& z!X7_{aPFA>u_>^A;}c=8AM+_Zw=nJjwsZ8y#vFnE%$TjB3u~661y07UwmKI761&{$ zQEbI!+6N2$fp^FF$8ECc*tf}|W8Wt0;o`G$lSN0sP59c(Svf=;FMc-ey!f?vOWag$ z|LwAP?8mCVJv}cdeh4rueiP!y0BLJ2Mvhy7UyQvWexm*3*#7aGq!`!BDz+Ps+aV^} zO$)F;wBsQctDV5KFyY}yd0ik&DvSN zjQiYfXW1ngkONBkG|N|!C4+&~N51@Rq7C*_wcr zkoNtO6+wi}6H|EaaonQk<&InQoZLb9_+dOuO`nyx$)Y(!zSXa^z20jLDcz0juCSE0 zz7pVj*5uMH*wP<_d=TyMX5v9>W$F8g-`VR+$BOOZ?b0)ed$CX0fuj=k2H4NvQ4rlC z-#T8}&XsS;vXmC*?Vz#_EvOCg94J5Ex(V;u3v5isZa-nU==l-LRaW+73(GaVY%87} zy1y&}$Ro{K%JK_kC+r~C)9s#baoBpN%ukTKv&DIFqKuAll>2#Mmwbhu)#FdLI4pw3 z_p%O)rsG4CB3xDZBY`u=mnJRX{w-Gbj}H}7#rE-Qk~Ud1K9@kh8%X0}3D3l~OZo=X z0?U6wsF-O*PWarWxy0(o1y<68%H$xMW?u`e>nGff8?JAjuq64gcymIdly)vUrnGbI zpU}&iYM-4DnUd~O6MI=Rt!5MBQ`+gPCMLsYz{J)mDb~#s{%%UXE24)BFRvzj%RehS%FMN|c zUL4z!W=bb)Un{@7OG}zpbZc4cnqJDaL`$k*yT>6NJSI5zETNpmfH+ufqMB5fmatJ#(19ihIQbh^n*T{xWfewwH2F0fLJWHSOH?G_yD*J z->-6u^};3HIA3Z2+=y=rxy2R{3fv|lfjdPkaF0j;R*Tla8umZH{$gEHSE8h{j1o2qoi7F;aY6tTI}Rn?BQDM<62a6 zEo!(H2e=lsT#G|oiz8f%V_b_h}91AGERGSDqDH09M>Q(jq`^2*kf zSFWaLgEd7Prm3x}H1)+E_~VUgdY>CDZ&RwyHl<3l$-kRTEt6rBXK$OvXO>OlGuyt? z7cp%b^Mmb8z+pD!n`h64zR;fM8z9Em4+2Zkx32>j&T(mw&?mvECH{ta7CSH@Z3jx41HZ+g$yDJ6$7zdt8%%`&@Sbt6ld2Yg`L~ z2V748YhBMa#2EIW7D)D?w%X@IC8_o~7zj_F6TkyLzW{4}LK+2#Lq4&aRY-mHbE5{KOFg9Aiw z-*|l8Im(LnH-i#wgb2nMLliajB%PW9EF*}UxM=@9XQ7+9JkX*p1{3-Y2 z4L4f@qgCVb)XWymL&&;nK{c^vxDd>KSJ+ zE@Rxrc!*J4Pd;&s-GF_X<}n`WlheQ@GqMPeFlO{+nK9!=mKihpvCNo}O>#ni!r6=o z16XEE$YGf=A(v&wgn=wGis75BiugE#w`{gvkI!RV#wZHW3yIwbo8&PrJ3#*17!NV# z9i&vt7!NVVeM}lDD*fj*!+J=>yk?f@D1`V`yct>@`bp@a(4(QJLQjYO7V2)|-=uMq z@Fq!3dNs*vGN8$rCbu_vxXI!s%bKie^6w_EHQCYR!zO2&{L(~(MTWHu>l)TQtan)7 zu$-{LVI#r{!b-xXg)ItuJnY%9wPB;fXNEr#{&@Iz;Xj7|5^hDj67g!p>k)59d=_ym z;=72m5f>t?$mWq(M7EE-KC*XYcI4p5g2+jc(;^o|J`uS-^5w`ak%uBrM4pTMEmB7{ zj*5y(iMl>2D{5HO$f&7N4@Es2wLWTl)CWKXZ&4?|DeL8k$Y<29}Sf9A?xTbL}<2uK6jq4XT zFfKo?BJQ5J2jiZMdok|yxVPgzi8~&5I_{^qU*mLqgZLKlSHyRSzb<}I{B!Z^<6ntC z6aPzm!)61Tjc8WfY+AEci31ah63Y@FNL-rubmFSS7ZR%yUrpSRcrfu$;<3bU5`Rv# zTKKgHY!TX`S&J?$y0w_lVseXnTFh_pXp3iByx3xIi!WQ8Y4J-7o#dAkmDDn+ZBoai zYm+jPZb-^W8kRIEX=>8lN%ti!OnM?|Mbi4Dmy@<6y`J<=(!r#!lP)9$BsWcNp4>9I zZF0}#tmORUG0A1gGn1c6-jH0K{Au#hfP$bR=KT)w#sicsnuPr?r-&2tLIy7YV}sDQ?1Uoa;FBSCZ@JYO-s#6%}<@2 zIxF?@)Mrw6q`sN@e(HhLuToE?o=yEF)oSh2x?$^()^V*9TeoVRiFJesp8=+2lIGS-(o|=X=5n8RvNl3L z8z_;lM!q(VfG!;Wd_)sS(O5rdiYwl+xC-AK+Ll;1XoaiXsiLvCN(77cSUc!|E8ZR9 z-C2Z*t3|lzimUY9L?o_>N1-N7ML%4x%ofdXtu0aHiWay|o+Ji|WHADf@(?Lsv=Jk* zs!)uzhp~t{4iPI6@pi03Oc!0m9f&$ZTqkDYiry?log;dRdk}RlqTVY8i2D%renfpp z+=M4t2a89=5X^svil@ZQnEMVBPvffnKatxiQ*4nRr7? z#7aRqX26qh8^T_!ZtWR7J>o8YdFKnz+_*+#tV*N`ru{Ppr z)B8AXeSjHs4PMy%p=fID7qQkyI3^wtiPk~U!unXGSf7a2R;}o0eJZ+GpNp%lLpX9C z#@fmkqK9=v^sFADz@?!pfU84S1FJ&U0gZKY=)WNU+=LLX;6$nhVQye3 zV?r3|)4~Fvc`JgV)iR!B+!B@#{ZA3(bHQg6WS>Zq!z1Y>Ha|y_f3L{3klj%)0vj`i zM^P?Sp)UjHMUjsw!>=wX=cZ`-n&1w`x1;kRABZNO+hZx!%vg#)Kh~{;SQ6_Ge3CWK zG5(8v4#tK-Z}9J@GG&+;N8c$i=v}tGag?v|Sr|{{S<1ME(bU~o`@|O^g7Kfy>@mou z<&E{uW=}!$Ky!-laC3_JRx^6@uZi$fb9yW97YU?4!T3GnFA4P4Pnk$KE^!>tlrX*p z#cA2%1!zqCv?PC92=887klYWNr;@4lo?|pQRwWOFesl88ggge~TdaiKvc+@2w4~R8 zccxJM=Tiw^Nu>yHrcxR9v*svk&Zf3-p=_&l#VO^zRCIlLWx)|vWZTW3n!^O_;h550!Anlabh z0@>7b$~9#DfPIcJnh|AnA-%gx5j@Sde?=O#*maCqj6)fV8UNZk=-THHM_hLl7}b^b zKL(d|rI;^trS>th-Hqe`Mx*J|jY?wVb1b{kNt41D)%Ae}LM#t@1X#e;EV{?T}t0sX;P!oQzt zN$eBwpWAaK(Bx=F=6gM@&?i>gDWh&{T1oo4sgtHsx}AEbWDs#GZt;bAQ@4e@P%5-2Yc-X7aJX zw6Hl+4DR2w@gM2E`>3*i0(@>`ToRiC`Bjd*o$-zSl&^O=zZkFyK4%!ONFzCmaVX>9 z{_j9@kdIR->9pOw*pbkkQv?0r{$F{l$vG6cZ!T>emybh}~`R3^gXLr%fxE#BTg7(%_UBsMaHdb}s&NZ`n!V}So2 zO3~b1LPL$lEqY)!*+}$s=9IYa4EGBu%qDwD4SjE*1hX;Y^aVB&{iO>$8)#v^=>sdi z;0{d=t{ybPw~z7pc+5e4p(&7l&=dkK%tjkP-w@acZ|?Jl^#h=V*=a-Q8vz@M{Tf#` z@D9EJXreKTZX^!qM$mi&v_u?yCFZt4(AVn5(0>BNxgch?7G|u$(0`^wp#KzTi3H4a zCFa4Q&>zw?KmHtOVNM$ceIl@t_(6w5|2+^-)MF+rG25kUv}bfAtY?9E79BHViTgaF zp#M=vL;n*{Vh$Vw>y<#%*lr5F0$P}5$HICQ(2aL`#X;W;NN20@(02e@n0+^g+zDu5 zzMKfT3lL9+BY!Eb0b1fZv0KSY8S>hF-#1-+;K&$`)ccU!y z$?sBFtASFyFUCXOk23{{^8vyGI9rgoTc{HHTA;-F!L5)#V?2aXOYu457dV@-aJFze zG)Hk(BXI@&PH2uZek*1|^9|!^)X%~lM6;kdEAEE;BT(W@;vUEs#XQKr0dclw-3M7Q z+SUWmxPVglSPwyVGx}Kzpz#IbIcMt;$PE~it$#pHu^t7sw3Yx{S&su#tta5w8Ypp& z@f751fEXLra$tXJ1vCSI7z5TbkaK~!|Ihj-@D^(|GvYBF53yT4+Wwj#>cIF@hWr-eJ2=ymSU))l z{di#JL~dhr+lY=YN*?2#67j`_e3|_5J|4);bIP9A|@;I0Tg93+p`a zIL-?#@xApc26=comk~TCp&=O6g59CnBFzE|TIAf%20DT0| z5{a@QcE&el7szkP zYoLEeUJLnc#t&pyXlj6HNtq6;mED1dWDnqB*$eoE%mjWZ`v8x~zVNqHKgfd7rTRl| zpmKozY9O$o8UzebLx6$mW?&;V92lf-0XA0ozz|gcY@&*QVQMrmTonT&)Hqikw7U* z)IGpyY92Jxfl|y+_d%Ws#P+2gfP4>7;@ff$L7vC>fLZ{}{frN)N1%U*ae?{=^z(t( z2GygG7XmGOM{Nn@MLktX4z+3J}j^s^@`6)mq@!Y8~*H+5kMIUV_gz>R*um!}zUw1)9@9jDM^< zV_RVSRc(gm0;ATiLT@wr=+~fkF$U=E&<6t1FM0>$D4-NE`VC++y&Ib5j48MuLt@>G zu#0{Rc&&aL*h{|)ya9J%VXvz{0A}eAk*Y6HiktLDz(M*TG(+_#kcTjq=uaU}(4PZu z)rWyo^q0V?`YYgV`fK>#4#d$@9|z9XCxLVHf1tkyD8+sHTj2frJ7^Z@A0W?XT&T}N z^AE-)`X}fY196wOJ`Z^X(83$ze}ViA<3IJU(5%)Mp;^WFoVFx-2Z-nVwF17VZQ#q= z2e?D~!ukeQ3#Hh}xJx&LyjuqX_vj$tUL6ddHyPj8q0qd?cuF#&6XnC}5G$Fr}1 zoXD7Dw}U1bC`DWQDquUi12k6xrFh8h1bIFXBi!x+e9XQE_=J5e^iMKAZFhxcIpYdD z9r8-MJMbC12YjAoTxa)!<^{&}b|&;2?LN@F!uYD)7xGrSAMiE1KXAL91KeQ`1n#s4 z0pGBP0QcHA1K+ZT1NYgt0N=Lrfi-pk@I$)@xZfTP{Kzf_9jx8^B|(-Lj#GvlPx(nprk5!SVsNuzZ2ZRsi|*i0wE}@{EIPkwYXt+Z zwCGGE!wSP0Oco;GdOPkRA1H>}4S>0}4ZO+r0S>l(fdlZ-@_|?_r@Qw@*nz-2-1{_8 zjI@J+g?1>eo>$mmxQ@NwP4^A$a@)W?ZXe*AZeQR&cLU%%Zn`JG+8qdd-%a=C*SLd$ zJ8|;5QXF-MVQ!u3C;X~JTR-XdiCEeoRGbh``=Aw4|@H{EDA?8W(I%1v_yAboF z*n^lS#hZwEQtU&_lj0rZeo|B;=1K8BVxAN=h;<|>_y2;1| zku^zv$->$seOut7fwfr%@!wZvIR3UBfc>x3Gw7)gj9Hu=!$-u2p29Ujl8*QT@DKZK z=dZW!ra#cF4>SJWek0rdUN^GsJ zczjv!{IbFlFMId#PiqEgXsEiR?m`Q`bgMHR?3y=+o(_wgm;%X5p$ON-0$OFSuhlvS3p zIlZEyym(|~MbV^sZ;@3rxu~RX{)7q0yGL0?`BYE+238c87&FJ6W>zzhDd($J5+B$CuxlUtZ|d@S-~^Hol}jeMZs9N>8_l z9+Qj8Dze7cE4Tr#tW$Fn=1!eZByx+UR17LFM&Ec!(zDnrtQin(GW+2%!}6m1QjwWa zJZZxCNnF0H@de{hCdYyRCB+5#)Z{&;6cq7j6DWf>DHxYikzY}CsR|)5mWxWR&!1Ez zU@EDcR6Mzef{VVzWyPiWB`p6zBS4>Df+AuQ@D$(B91Iv#Ybp%~SbOFd6qgX?cJLVc z7L|@K_w;Hg0l z8nCFMZhJSZdr2|Eh)ai_XNwc*CB^xZ1{9%xi!qv~)*H}-ypO@C8&!>HIc8r`*IMY%_Si)K$|W^fyEhFe_-iR zUOv9OJB`Rp7CrHM7Ei(W9Z)o}vbemc5Iau{ZtS|9zk|y2afm4weKB4!94A#|pb(=m zkZDtgUwuy9vA^J*0qu+GqVpaoy?pefzjkMj%-r%~3W?HivL2K3ODcI_@mB2F>pS~- zln@&|#zx(a{||P?zwm!5-m7JVa@171C@pfHwO9b~i-9mevhGsz^2Rj;3Pm$TdlgU2A9M8f8n` zwRhuMyCQAbHRIh;ty0-kty590yfxmM>||?_ioF^CF_ZoMzVDoS?!A5SAgm<2QhOVV;$jebH6O@S!5ww9mQUxG3gsLG*XhrjthyCb;-G}2 zO{_RjS@dI2&D9rq6;ZEV)EldfeMy4w*S5ZjRnqKN9|e?(T6KjQ&};`D%hl>jxzf4S zsltNwlA@Ji0*Z{b>N0K~c=b4Np$G@0mS0+R<{z*G1>;)iomDr|rIt8pE-KN9^n^#M zLiK?kHDHubQM^uohOC%$z9#s`8c;OuK;umw`I(7m85W04M|rHUYBIH2ZdF_|(NvV< z<7ydK>9bJDqVJ%S$f$ZVyF3r6Dduzw@JlO=`RcVw0(z35#n@AYdZDrN>Vr#EF7uHF zC95}O^;vPES|(U>b@+x)7i-l@8B(}K;*8P*%avNn#|zg+A%|Pafw(-RYPMCVLG{g7 z%Q|>VvvXCrjJc2!Q}C1mjp>!;PJ6y?E>4*js6GNJEXr_u) zn3g60AmnfjlfRV@s7dvd~lIp93y46M02#*?)a^ukbe)!mf*lo;UG>lVBRPu$0BcSo3 z7D^(R1NG>9J6tJgM+=q3#*#XGD2$LDB3xr3o@5?UvsqySz70Y%^+JeB?5I%FfCUVP zD|T=#z%VNkm{5ppp<3QTgU#?7DTfA>e(`ypVJnkaX;dex%Tlf-t@Z14sVnsbSkfj! z=|qyU(76+1LxW}b`0c)tqd;t`a&a8#N zs`e7H!J5^BkU}-RMs%*8sY^trkg5AICn|~qi-F0S4RsAJ6+j-f34q4H-I6h_(^|I! zmgh=hotyGph1e_4HG&zI=L&RyodPY-Edg)~9_rMomWFb&+$7j-q_jH9U?A8~t76k!(R;=*`{8Q0!FnDtU#b(dg4sE0kzo)^2R$i9p zE=$B%SP_W444f4Lus|M}nEm#Ul;;+l-^}_@m}4vT#yNO&&wvh!jnLG6!`LJ@gP2ef zYRI;V#(h*`$P`)%qcz3PC-!_jDbiZyGSn~SmF>#k+W>%I6H-#@F#sEG$9wHM`W*g< zh!=!-V6W7rPP~l$#Kk)MikGq8R3Wc3pQs3{N{20l*`dpRjxl^$Fdh03?}sJgg8XP0 z0@sWbXw^yFm$r||R*GaU2puBhGJ?LLVFZ`3$f~8ML&Z{>)K2gOrdp}P94IX35U{ey zMImmn>S0*baZ``QOv-cf;pxd_U2lBit}Uj3cgrJShLZv{f4YlxrzY~6gt)d(| zEmu-TWg?8n3riHE#*hTcfPsK80u(7>5m~HYd&yoe2Lpq6(mlSVPe)d1?IBVaMAQHY z+#H!$Y0xy}rSkb?wXT*vTm}H;tDdU z3&nZFV#Ibqgnp@3U0Ga0 z71|wB5O5>40-iouD3z+$P`pwwV+fyAAchB5a}{%G2_OmV;#~>odSxL4gfK*~e6Y`k z>&xiZT_cF)HrIqvFT=UOieW_(4`i~v>~!N`W->FFop}<|$TYPBDm*gr2n6N1a%e0EYaFKV z_%LXLo(XH~;9Om;rL1cm4OXz1@^v0U3|onndGVO+lkjz@7WRaoJ?Ny-NmrA}w%`a7 z{jm2OCVXF>yV|&>?Q16dfDPg0sM?ncmH-KG1ZJwilSqLjgP6)Lq$KPa+z1+Mut}cK z--l9`Q~_0b;R2bjj5VEGfJa=Y$W3rDU1(gq1l_|@2^eX}>O7(*h*d0MW#z&E(*-Fh z2a#eL^FpP1U;~5)m!Tr_ivUZT4|xi%DQLZuR$(Pf7YbJ$MvS-!crobqL#i(3=lePKUQuCFG+>2is8TsC}+<2Kx)#Ds7c^C?l9w zat3Abd*zLaMijI+>C0`fso1l-ZSn*$eN8`M_rc9bp%G-Fj1(#e05hmrtV-Sr262rb zGF@i~Q^3J2!6FR?!_H*|0?O1S(Z%H9Qx|w2R0zf!M#dBD$UGwO$N+Iv#OJ6gI{J238E9%%m zk$0fAGb{-k{=oEWlJDfE=I#YjcN26ZVhg(!oFfcz1xE*S9fYRsCu!#p1IrpZ$~4j^ zrz5#kLN$6$BKJfnGP*?B=Wl$xDG-?S6f0L|Ym~6O!cHBouC5eT;O$tcsxE@XJ7ae_ zZfk(8D=Rr{Y+-0&4Ya#ftzEguwi4pkQUMS8-m(uNMl{21)ClFn_k51vD=m5Eg3qN>}Po{}1F^zMne52>&i&)Dhs7*Ikts0LM zum>o6QRTFQ~Xc>&&sv}Q7=-0%s7B~`8%FKiYmU=3vCRAklluBVo<}JUE_`pen;^ zDJxl3!#T(;G2@>OKLY|t+>VeXm9xI~%NlwWj7e6KULz&5wIXnp7re>S@QokQl_GK$ z!0sWicxQXxM280&BvD0Da0;-Wk>Faei9rN6z_eT-a3_g|0IA_(?AYs;yx*W^q=0k| zJ&!!&+#-`DU8qx#eK=NxSOi}-ux%%hQW?@}bL5qZWUU4o)R2`5!$NYR#e9)Wp`dSv z61y{sEkT>{0_ThpMKfQvYh&wz`2`@=W7-kbx@R?u#ZZCj*H8iKBmXlfV8Takex6Yx zqzVPaFat;q1<%l&eY&u9oh>^Evd|n3MXO;2FJaFL+^t*6_tgR%GmQ*dTr>GSR6=P9 zA#DyUXR}QeJD+W8O;om=Qzn|;PeO1h!`uo95i4~34B%QJc~X+ynYEppmu^4=C;%&a zTF?NMo2$o4#lQwr#cVNVODhpmBG zNd(@e=K&*#)ecukwRuc6CLO`mj>7Up5lFM4dIcJXkr#Unr^8+?Vy(v!4a`K@5rZOp z&oZn=bsE?X@q29O@QPs;8sUfhCct}Yu zYv%Dn?J|N3atGT5YZ5FVdto{$dm|IF*Wo#8rEm$&)MZw`PeWkD3VM|rvRV~R(xqZ! z$%VrGv+;~-n-Vxs#$!{mN^rxpx$%|qWr#aI8^bV0D|OH(t@gqiuN*#a1%n26BXzuCLuyz!;lSWo1lY) zp@3t}@YLA|L2Q1wO@WdkDmJJy{G=!CK`9ENd{(R4DFFzZ^JkE@Z;&*O+%w5uF*K^# z)K*yyLSjLI>pUnRtB4vEZ;f{z65fTN)?06_+gO?9HpzIm5{NYe=xv#9+<639(s0MP zFz*l|79ligq)>p8aD||Sw{9BJNr==T+>8_&Ix?KG90fmT;slc`3xEWQ0h;>X_9UOh zIwb4kRi@g@S&p1#ufW|3jX21iq0qf9=K#|HA@oq(-yFnA-Z^fOhY(Fjn)Q@My&U$$ zY9LkqiVFkaOh_q5VQW=x8N8WWq^9N;J2HZULy4ZkVeiTj&|=>a%C)lhadJpt6lw*L zQj^th04heFh*A59V%1(swAEgV=(X3RWVSB-S#2fs%+|U3q9yDtS|XiBi==N?6ze$J zX|^8j5XzF7alU1wBSh%2`U4Ri)p-%o5qbGp6v2E3|av_U!;3tU&M%KZA@d z*yh|0lDdGU7H&gOlyt5af)XuZoyb6}5-Et*k31^RUBT%RcEM97Y{_r_u}ry(v1H*e zK8_W!mZnlmV|xji2E!OZ8VzjQ^n_6GQivVGc)f%=TvB$*Sl1(PlVH@YUZh8` zP%O*`hSyM$Z+XB*Ap$)%v_MdR2*hj}qFs4!lL&aJ83>F|1U2ka`$W^LF)FdZYz4uv zt)rxnQY(HH=j0_95yu7s+`HED`rM)%te8Tqybf;ALn;WQ30*419K&?aBaF2E@9w**sfheFml*j4EI>MHuM*DbTaCnlTPq`bN7|h5`W@ct;ZggT~WO&NR^-LCH%w)zU^>!3vkJ={}riL>^ zdW}=~ne4b;XNLeC)ApqO?DX)|cxG%^?*>OR)6;r6Hav4-!Ztsj9kmrkv*Y&4H+noX zIy)@O8M!M9HtF165?xY;z1&h+J#M*l=Cs^E+0f2J4Oj=xbC7#gO7T*^@}!b87@0f6 z@yS5eNfMTJ*X~=*MZ2zHD$rMCAPt&TllAmEbf(D5gkd>1rxoI*;yPmd6paVNHBoyz!}(O7qp&4;;iO&$z%B4F8#-b zT@n~4b{AeYV~c_yZk%eImK(E}0l!$_9{3%)(c(g(K}Qf_cxEK%0@M+d2N1zP0v*T2 zdgLW1gEfggzNZ=G;FHiTpAJK|@z_j3RHiftP8v#mf5)9-mjr^8AtqLg7qD><U9a8BQv#8ocFl#*0i5>yetT~I>TG5`hGlm z!kxHL;!lI_HmeZp*iLTKt|QNrJC9TmUE;(YxQ^C6Y$4$ur0>jINdd_*QE_C@ohu=Z zpH95cQDG`ql!F|;x_d$v(M78ZI4MFOc_PcST!aFjAGasqaLCGLCy}p*H+#sIK}xrd ziR>qNKMUJMORUUwD;(-u(rn#*J>jVIz*Z-skyve4pKeroA?P2J>_K7wY+&A@v9c33i`x(dNy+rl9WGK_9gjoI-~ zdz+!#IU5n`k=%(70xks-5cP~S3c>Dna5g2f5Lg>Hcu8ChFY_uIVqRiEU9=?jc+Y1? zW~aownVZRsn5p6Mq2VbUy5mh|a#C)iH!!uNU@|k68IvoRN5dl%Q%`E~RCZzt7LMGg zu_Tu?S>|Zpct zq2Y70BU+LjpP^wj8ZNW7W+!3g4bP2D3|Sa-#@X?aIS-e`!ceFvJAPpp(;6O9L&Bze z%UciBGoS*i`?rtDozg^~2$7`JvD?IgK6e|*^3drvZKT{djmV%o;$t+RE*=|An$Rs) z0j%wY^9QYUpq3V`Z8fN!(mjV4wT&_T(J+7L8h6-@9+ijjgrmFjlI4I@8ysS$xnz6C zX1c!-8{XgIRSg&hW|E$$2|}R)7IKuV!-4)AFuLx`dp{xY3edeD=xO+2^VwyrO8U`| zo^o!DZG%9st*mFHq?G*LTH0EoQVlWK<%x=ya3P}vjuV!;Lzmj7aMlp&g-Zu}g7FmE zJ|X)UZ#LpXF-p{l!9$IFQV=_9mms?9glb|}@wg4lD`&Ro$(}s()R=i(H#mPifoK$9 z#1%|V857|Un~hYE+)co^P^`&37@8u;D`m19!)ox$rLt>82ty=t?jd5f>LWl~V!oS`N;MCucA85>AEdmQ@|+>ZuhQ;hP!kr|%GA-CbV z!3&uwEfo&3@sD6Z*YOTcsBcwh(%7L19;s}{*;k3U+n^;#&kzc}Y-}WWLMS9!5-NcO z5TrVc6dJ)o$Re)^hvr=tgk@XrzT&8vcU5D@r?#m)B`F*3V8Uiy0>;e`kA;SY7~QTb zWg53uc2s+_V{xH@$@y{yY@6wFbSqYNP*Vu7gL>hEXGzsPTJ@Y?^jPE$TKIErQBJU@ zIEYQ_;@Yzup%Pn1<6hzh+d82ViGf`a-iMxYhpqTN7tK-SyB3K$@PT(VxG;mr44;Zr za7itZCw5<56TY*064Y%J$45O6L5b5Anxau>G>-e-e)o_g*;VHYk?`G)CWCV4CoNM-2T#RW-5Cq=b|tYL=8py9NnWF0rYE_nd& zEeyXRlVT1fg?St1i}nR&6dNl%ZWxa6HCplI1#SXzGlb16{LByIwsY`Q?A7eJXpYRe z(c!t7iN~P9WHk-r%=~g;9#*jB8%d=W6~sMq5*qyMA_7E#jK%Ugu_ft*{Nhfewe0;R zt6kGKfzpteMtqT7SO|G$S|QI?mUtM46=3h^WBqiT4#7rd_hz(vfc*O0>NNH>S|1JK zh#ZqQ1Jm2Lk@x6g=OtHfeF`3$U&%LGA4Isf_3==lp05>U7pL{%OtBG$-bzrnt;{5; z>NPAfzVV{8I#a`YO!No}b{u?XgQL^5_yBe#1fK27*@VJYcn^_ALm4U0#uLL0-VG_$36FKd<95}ytF9uvwvA4qwhM&Q^Od18G#N$*F z)S(J`b^||_Q7eu8*tbIgZ(1SnY%tS`$=m99@yQURC|DHYhUnGG{+_Rh4Ly$DdUHZ% z7__R(s|!pS3WOfRaAm&E>;b8yo-GhWoJoo1c*u)#JqGQbgffLMX6n9yXw#QiOek^mQ6 z(YXIU!#!PObC?D)%c@B)$g^woQsJ_>&}b}UR&vS|P11O4RlM9`W#z|Ai5GWP<66J`1DZ@m|AA_znHK%0Gy;`#^NO$s}x6xH7x+V#8EwBtxzLd zfLpSaJVM8u5;A`56^se-omlacrwu{k(6pe0-FOXZ2uUNy(%enBmOVM45(+Ix5j+yn zF98JC!r=5=&?l>8vFXHj!6>>sp+pX`W*s4e(dsqG)Om0)Mx;S0%%81`3|;`{S_8ZpBN5*Q*K-7_wFK36W{u#+Cj60-qjU84#m zAU7GLdqI5bQNMGL@P;S4q3`qru_l1&K`z$QEG^qxu(g?+)rq&*H=iCDMigBvu&_(sM$EN@zFlnw@- zf0=k=2s~SpnM!2P zbg6*sB8n?qOpJx^r91r03EuKVv4YL#mTOB2 z_*X;Ky!hZeB}aDEfCuj&qWG>R%*mJ8EBB~c5w;}&v7%vlS-Z$ZbRb4xtcYiEI1JCE zk;@6H-Ce1lTg6Y)2!)7hidnw3O0VN=6H_GUuZ)w5c9Vj|FW(hC6u6=)#x{SXWG zRr&A(@gQ6h>P;*O73?)Ru>~>BS10Q=)IV*39JUKpu;I+L7!uJ}EAzQ6w>ThIa<>^+ zkrC>Ka=I4i8eL)dDOx)l9hGQS`ult84FCk&!XBaY>r^J~Z-qz%Q-0}UKJkzjmr@S< z2=Hh_3qDxsm@i&hpaTUmqaLnFuQhb9@`OYkgx46_X@Y>IKr945;6YQVuvIdA!6mU% zykMmpnEE&l1B5bh0%OWcXT)uiiO+|QCW$J>`6Gj$hcFDV=o?}O5s`yO!9$$Prg6uX zAdGbfDE1suopJ}>R!dEbO}qKW*n=9&n7F=fS2z6_0wgl@&YGa%ta38CG*E5H<`5fn z-|RUc=ahS~f#&x7kRn7T56SIXuuB`NvL<&6Ph-NtAsFFh`BfZuMn-)~9H!Ub)nb1W z)7DR>r-prST7!s6=z+F?F^t|nMh&L*lrYR*!_3fzLIGE52H^s3n!aOzgGAzMP9MAZ z5Aek-`QkD%qA#KU>NUJa92$WpCHk>V@#d4DR;Wi`m<<|Pb?>|9s~&77uq&Jl%KQ}F zGdikxLl6|aP6l~(`lBfeu(Hl!+o;M@XV{8_X1RjJrLhS3d$<>mQ>;!)Z7ueu*Q>oU!Wu; zYyNH>_C9`>1g~?fu4sDJ^on{1%em-wi>Ij5<#r<)%M&)_Yy}IfR>yn6xuL}mWF5Lbn1LSA{6jTbU9^q6Q8HI|5yai# z-{AN?-;xESGRUK{Xte^%G#_Y9u3FknkN|ukeK4aS3L`OhyS7~(i;EA4Hb?K&CtzR9 zLUNdvD@J5A>;TN(rx_AMV&4fbV(tN^1vJs})cSR2EeMX-iluVnM&``;VB#7E4lEn@ z)R9LelDlJ?kh=ymxyxc*l0ekL<#r@dq24qNbFh`Ja=_~z%Fymc;0hv2!k?__0#&Na zgIlQ$j`CAS<={qa9u$O}E58RzXefuBFkQs_WuMb43Ms0~R<6JZ3mJR4TzW>;G*1TW zLh_At<^mXoR=uTA9u-VO29r<2^IQPu-gyg8>a6OISrP47$? z_bikIUrW!QYY<092G$Jz`e)4DcVlwUcqgCvVbhy(}15$Lg4fsvk8>Kfv~BsppLTdG8SST0(7M;WY&Wt zwAK)KGBGNLifIS4Us(J~YtjE=mg!5bAz(MHO%~;XCQI#?L$TQ_8gmoZ> zq<@`3PzRPiymUVG;!QySudAI25(aNowTO{CANE9b-~}>Jt416U>=ZJu2%tOr$yT7K zcUi^B9--iX$aUtsAes<~;>FX5xrI$-6a_n)8maJ70kIaPTshjGjRjf{L48+(6AW5& zKXC;vry*Xw=3d|Ko&;4fzP+aEA)V-Xaf_g5d0&HL=1;%wPodcP>SnJ zlo1106%C9s-NXgxP9#21OOxIKR^a$+B2K#H7 z-?8(kQ7msTK)L#;}x{Og1@S{COs9fpOObGguIB-3Vtcse0o7f z;K#I2nFle#X*@lN zAJ%>lQ~hTdaDCN`qX=Q**xIHPh^{4aJEefGCIXd@Ox`^~YzlR90D!bAU}`!Uu3Cad z{z^g{k;ZmJJx4bO&!V=j`p+1HBYN@G(T{brBy=TjUPJ#yw2s0VhsHd--K@!X*a-|^ zp?p)QA>lfnGG;IXwwOr7n69N!%p$y&C~dL51YT761{v9gAA-U-oE;^JTfbFMfur@K zG>XOk7`BzwWX)uv@>8 zq2Tl68HIcBvW*<6>lQdq#MH7tr!6>(?R!U0w-P=i2H=w#gA18U%G?nzA4c!0V@%gU zvk#hWAAaB7?7ah8?j+{i)`7APU-D_w*7a#DF@w+h&nSk!fah*3H;sHE z$mH?16>6yI1SFDXi-69{3rD%=eB2nMug=SjuG*|9Xmy&6umf3NNyREK7wJH}n=-Yk>Sg_;O*VyRDq|+lvLrnu!|7;2 z)*}AhI7-7f^yXGl^ID69HMgpkQkCcDWI6!hG_3)Z)GEP~G}<6$p;&iXLTv$+@01Hv zx3s}Tp50DbFQ5c(^u!fc9yK5&$zeY6lGc{yb_N3%rb6%5v4fnJR~Uxr$Q{PLnd1_6 z4~;pqlTllGI;A~vT@ao{p{`2ZuniuX^G$x7EHt1QnFSow^ITyL8!C}ic!Y7w7PMZ8 zOXWXmAi?FsN&Pr&?t2dR7J}+1=RtAhC>q5eaCT)JW0LR5&CBvhJkyjS9Y|TVa@Er2 zh-#yf_Sb3u4o_?`it8;0C{)j@2gdb4I08TF80X|{U9J(e3BukAWx@=~pTRsXVJ0fV z@n(fs-?XIuhJ3A4TT z5E&tPKNydIN7-hxcDmfiE>75~TH@rrDG?v-5iHdSOJvvcap=5zjX81;My4QCcXk0+ z&ZPuVCtU4#k0fLk#yZ|w0l|wGMZiI#3p9oQC-66byMz(5_XG~TE>p*9oR@Q@s7@Dz zlq$rp;#!^m1=J#20tEuXNAqu*@ zQAOp90Cf}0O%x2iEnbs>WyA&T;fc7~-G{jNS@{?;p)}?6n zqnR$!#q9U$+zdLHd>I7}1wz~^BYlX)xcOo}>O|I}KtN@p<}!^7Rk5bv#-W(=(9&jW z6~i9`KhaEQU5@rK)N~B4o;n^(oZ}JS zvvLGEGU)dK*Kg~yEqi@3iJlZKYR!_8i=qr$RkL?|$&s8Tg*1Z{TtDV!NBw0xca)Wr zL?roI9aUXpYJhUK>~R)Uz%PDau3UL)nB>u8Jj#$T+Rdlnd^`Y3FrL6aIwaysKlS0x znn4+y^9NKke9QwH?a+HVqvT`4uPR;@FX4@v^QM=wFI+d;(=_H!!$_3~jfKs7A_c>B z4fs+WT$Nh7K1OY=5}dH}R^FLoo-^Z{&r*6C%9`iUmy2dW7_V*y4aZVeb_#||Um@Yr z_f{0gp!ie)P1f_en*k^tpO!tDQKO_7`9TucDJ)kj2}(MnRB?<0Q6!sN2S5`2|AZOC z|0hJ`v^D?Xlpu{9LqsUWl8uDzG+>x^P7V;@k`RFtR@ZVuzSS6X;|ZNVO2o3hBPscg zW)@`}&Psu_W^w26s(zV9Yp!zF?wm!*3RXJFz@F(ovVV?Fc|yb0)!!a3BmjHJixeTD zo!<4ZYcF0qc_zbHCw4v-YTraGJuTP}NH6WYbrv-C(vQxEMhCdMbp^YHg>kO!yx*N+ zItRQsUFk-i2*wRCk5_joRNG@d%t;=%Dl@*hJu~%V9pu1X+p&n6Ehh~7Qy_(z z*zuU^6o*uP_k%Qy*#U@8?;M61tCah(K_P7s&!DcU!CYxAJLSu8M4|%JP%vwJ%#BHn zOL!X64-vFgL;}#R4vYAqvBe#rA=FocmES5FI6L+GYxt%P)0t1>`6}*6env5zkE%kO z`1Fx2>S1-Ov?q)_J%)a0Tx)MzjqUq(8rDJLgw=8E4PtTh(!k_iCxt)9H{JcZdvYCA z8ABgW2T%dhgJi}N<}>(2#Pi`{P&&FVN$0@tyg1n0y!_HeUt^9^`qZ(1((eb zjceyx2)`g|Me!1iW^orw7maJ{<()agO+2^1O~)k6%ci;JhS?sx?a-jBw-pJxTGdl! zz=sS(Mx&Mnf<|@@L3kpnO7YQvCpcK&XjL zwj_h9%cqXvY4lCT$HwzkVA7JU1r`~_I{|RE{NDM>@ z%Ph)zck?tzdfDKZlyHyKn5FYdwXt0+%8eJNM`Gk=Wd?ngEV+|daS(9PUm^Rc>q~)7 zCy@+t0Z)ii_N~b$nxH}!B`d0W=BHy%Sp!dPH|qA--W&>ZX}jJt!Y3|yM`y)#+Zwm= zRwk(R@vZtLUAU}h93gsqiq^NTd|HWW6UO_m!!Y2MwQO5I!Wog5>BXMFA9;h=B#&04 zGzms}xoqEd?U>MrTNCP|sto_EVYv@`&|Eks^dem3eBNm!O=);cD4NF;LU9b^Yn(9$ zf4_ix-SAUGt69V| zmHW3J%{2ef69BrjDL5H)rWtG+V$d9xq_7(u8yq9V(2jsQxv**^@)%E2Bf&EaZS`49 zJByr!NkGHBe=Z?TC6v$cRPyxkD{nv-mzCe6j>_f%^c?M%y>rnan;sC+3N#-N*Jz#h zXTf9&%fpcMzd?Df@>Ao1gP59j$*rqNbgafFC(G@tBs8{`CP&OwL6LJPm&=fLs?5L< z_Y);d0wc{SnRUmYzXbvZJdEovei*Q~$~uj{)8N)QJ2e?0Ve^0ZFb3a=$h#i$s5hdb zfZim9km~pd@Y7qb6)s&BJAPR^ML@-nxTGH>0mJ*e1Cc($tB1t*29o*g_Ry%3qWB4` z=_r)p5!6}&Th%}OzPTc!P|&OOd7`?>wTM(cYfr5&ZVyBfBM|u-DvlF_0?HYNQDpXG zXDBK%xKrdrkV?}W2uLv#Mdrt_CTT8)$MPtpQ^({C67CAFb%&PPf3p^Bs}`D*;%8%! z(S21*qTig2jH^q_&9N?yF7=idjMRWWl{5^q(?Ofzr;b_BYEuK4xMEHw_wkBi-;nvw zihS}c>SI9rRC`ih-!bb#DR$ zp8$^9?x8wU?}NIXaa=~VX%k1WXPW=*?pQLMJrYLxFUKglTCWL^G)|OpT)xE?Jpl7N+^Fzex;dWwH8&6{ba$b#(D0ZC_Iji<9xOxa3xhw=m6-cs(*M z7p0i@%@?+xaGc-OM%Ha8<sX1x{wdJ>mB1zUVT&SLln|v6h zp1ozN4{txl7Ofv68eJfatWNd83=Wreog@#aTB*=Adw@2% zWi1dU_Csbwmecltd>E*o4h_1=de{L0h5@*Xri5cB)QxmGtUA0RGkODcibG zG9oZ9fok4Q|4@}k^Pg-FR+8A_y#3y}OI=s8B};XW8IL`U$h6{)#QyU3fVJYwg&DOi zy{7H473KI%giG@`|F*zMayvHxY6s4397T>_r@;M*&h4kSpXa7+$GA3j9_!kABy%PX zJM(a8KltSk^%lg$>k?7%amF(iKzw>Xcr$0hY+ZE4%ub>nqj@yL)wW_!JMV$p#*Yi5 zF};ax$-n=I$k3pX9H)gYsG%>x)OZ05|U(&#mWjq zr|!?v-Aigmdzw}*pS!^3&e0&#K2l47XWSy!+@3V5w3B2f70}~I9_B8Nj?9@@-Et=C z?lWgAOym>5Mk_Abs-%M#{j5V(&oFd+grqPoQy-~+C`tT|ux_EUuXrCOH-yrySuY9C zt--mZ*(i=Vqj3DmIpy-Su)Fbf9y?huGRmdx!Ln0aIK`0|W_@gT zW5?$pv%M#d@ub;H%}=lwUEJQkpqlq1TVr1Y#!TUB?5yCidlR)WI18Px#g!#{B*ThhT?PH#7xkxfIc%2A-nIFCJ~(>Co|s6Rq)muDJgc78kVQ@zcL( zL!%~~kHDCX9MJr1cple-7MBrCzoHe{M;RD>a(7EU2|J9bhc+tng!*sN00Z=gla`P9 z((dMzB*vn_Byx`1mZc+~#EKAWH&V^Ze=Wlp;UbtM^Jtu*;cMe%43TS{AuDe zD)OirS;q5f3`Qu|I0Jb!fW&l9Ap8D2pc_U|oM+2M@HvisgeP%^={)8#gTGN+^OMhK zBn6Qh(lhuQ)TamW^U1Ky`Ft34`K@Qv%-&0=!P9Hzpcm8G{|_-XVZkNn@|GUn`y+83v_RWJ2U2XUD@vN z#jwzV=DXR;6jFL6=Kf^7yXT1>h~yY=<$!o>`(2;#8gOb#ja`~`Oa@&A4m`)0+vfqF zH+OxXrUNGrn}0=_8s0<9g5y*883y)a~ibyVla1bzyemG5%L<7@tczM)OA;wRii?DRtZR2Q1L6rf)G|kH8`(mlD z{abd#^ILS%#!!j0(!1oTCuK4o2cI!|#c4C=P&bE%aIKkLTuY;Zjw_N{s<|}t$h(Q= zh9#kmQw|@sCOMWMFB+oe^ff>lgZKGQ-ZXK}Xe&fSadhrnpN@tGoT;12$95!cO>ggGhmIU-tKWR+Ok>Ke@vQX>DAogBomYGEN z*XbE^tOVHob~$x#)L{}+qgzcWa|f~L%@Ln^1DSp2acD!A?l=XkkVhCauv=7nDN)HC zrUNf-Ivl3QxXc4GWq)X`-ZX}mghlCO4$oLQ#qom{H_zBH7>y@3mLa{^chUkky|d_# z+#j^Rvz5o$lRG0}4r>mMo@d~E2$MM&=6BPZ1w^DXpNlkV{-K+m$^|b#lNTDT>fOs2 zN-HiM0-$MIyd#>(PD8S}wY7v97Q_+sczZ4rk`OG_eE;umQe5S9U>PH)Evnf;9^=~! z(eM;$J(3H&j^Xrv`gb=yr-GGcT;7~64}Wr3k0&O#(-Gn6#gP-4W;cF}5+dAmd=bZA zsiaK@GSNDo15+Qzn40*71=@ip2wdV53s?U)z3$3=o1^Y(vu~5x?8#2c%_mfEGIrQ1 z7!&fV_WSzgrYwZ}1YYU&Nu-G)3A{H0^NA&+FrxUf0JC=pDon1LUrs*mqWX^3sBS80 zb|p()9*eU|NHiT>Ig@@2fu05-U2>rt<2>3s^{ru1)i`7Yk-67gP1;%h@J%u_;pH9m zfhYvR`-*vt%fmuC8x>FVY!p_kgJ~xld0=<@ktrV;o~2Fg%#iT$AIZ&qfclg*D%h%~ zkfIOf-BR~bB0@u4s7-=A@DCl9yO1Y*7shrJBOH|7gr9np+CC12d2SX^<*{rOM?1mF zhe(gZ#0axNKLL!<_aS^tbEB>y6$!Pui6QB0xZ+c2(hk(=$YW8LKyPRBnGP)c{XEF5 zTHbWP*5B)BZ*Fc?L#6}%&R(}qW;!rZFMAAYSJMG6LSEaYBV!BxCaR2(?(P@^BrGF$ z%bCCq=;@A0^rp6q)331P4@XO^#_gzyr=s?Rt})T|9q>sGhQ+7pcm}==bp>YM@dU2R z_Bw|iH2aQvgwz&HcB}x3xX3g&(W=V_>%!eT9xyjWdBSvDLoZIRIHhTh9uwv1F>y?& z6Qa{WcSeDfG!M^+#pqHi-74iXpXZjG-3trsN;F=emLoZwncbH$8%KBN+bVCkRLKE| zL|QOZH{0c(_x%C7%ncjn=y3)8!yv{IZ zWq~a^X6E2S;2mOv^1<{z6vL{y^`XQb&9R5T``eDY{~=3fz#f>p@$3xOfGHelU z>gI`r`;56Z0a$gfU#aM&qtBp?>rWIcqt>KvP#sxWt zacf32Xm@blIxk0m-KN6JLF|h3ZluY%nRCYEFNS_-S4Cf*rrX5cQdONmnW}k@K9NtU zrIwdaUXttxleg1ovC>6^t|`aIC%)-)63c2s(LUh@7Htw{LaS>TmUYS*lz0BE!n6y$ zZlIilOSQYp>T1Feuq56#~UPlN0lCt%Whu4#CX*ggoX(aU&# zfm=ix=XCxe{ZlSJx+#u%wT2BcA7$TR!I+f=>BH^DssUv{E*F>a0h4h0f*_87 z32KRw+bQv)`yJtK=pC{{zcxqFgLbQ$jijZFRzJxP@9h>>U+qji-QogCaX|e^S|H}5 zek_leVeOd4wn05-#(8l9$_-i^g2q z4NSg$(nhTC8a9D6PGs!is_UDz-{EkwV(T%1-diWFv#PGnqX#bH>hcyn;y7RNEt-YBXpGfHV?S9Nz#;^ z=%HeBzK@eXL14^A!P5EJ7EN#i*V|B4!j5lt#vx5eSdRdmKZWT#Mh zTHkbY)CJ=Xs$SnLldWPO5GSt#g_7z?SX@LmZYP7(Pws|{)IMSMQ47_ZLNdC%w%W~^ zY5@@49%my>C0#IW_L$A};UNPms24}ts&^S5p#>`+r$wQfZri%M(|=PSt}D=;x5!DGq!HX|LmhjP@_JXfLcPQFE$0_?eJl1t7_eu_u6O*X>T8iGx0AUXGZOn6 zg`gs(MMd4uPrAedJ!5e&Vy!Y!ISjX&=5yRB*EI27xavMc9_$X%|6sr!$@lZKc1?JrR zce`O2%Ixr4d8p*#dqUCZy#{qiVxI)4VIxk9Yl+f@nuJ8Jgj{{1ksR&}3C(mKMj2~z zZF}}3S;>%U)pAFHXs13@uL(@}*ly;_-9B3TG>0f*tV9v}FX`n4x}WGQRzdVGbtCsB zBmKxv$9SSzGRi5wXcTL!ea&zLnY~l5hIUQn$n1_T8pq=DW0`(aLv7}<_@0t{7gBF` z4qws^fnNrGR5JCeyCX6Qt0qqw4C9OhZ|IOQbt@uiYR)S3>pm>Q0Mt>= z(k^V0h_S+M#@i}D(7M1d>*m^ShDkzw)J=(^H!Ai$ap*Uziqjg=RsgR%1L+AHVpj}8 zWcZg%F`L*&y{93CsW1EwjH&9`)heBUK=fO_e%U*txm6rfAw>5IHb)8-D zYvO?lCcH4--5O%@GeTP&2O#tsj{Q(Y@N>JFWil&LDyoUP0wOayA7!lsUs+@W)w2tD z>FN{~ZT@^19kyBm)WH;e6w(!&W3O>BEn{Pffd8M`CCzW{e%fJUXgA4?J2kzqI+}kN z&usbIqYJ%nvR5?Ihbq;-OH_Bqsl0cd9Bl4z$JaC1Tg$+n9L483d?Ni7Z*dI2k&Ro6 z%60u%z6y`}V6>0oyNizXbvH%d&QH6QdkAz!XuX{mE0&o|oSRyhHV3eqKNLHSUAtLW zv{`J1ndXmFe{tPVhL9M4_XJRF=U}3Xs%ChYFXKkKxjKa@)AXm0H;u^?Ews6IGM^;3 zJZzH@l@m}qUhhMiN)TI>AJr4b($ISr*A4uaC&-eP*p{y?5@ABs_c7lu# zN9s9lj<2p?_GE#1EUtX1Fr4I$o2PE$)SIvog^2fykZGKa2-wCjgbBI&bgtS$AYv`GC&>R!z>ts-(VPc9ny6oINpf$t$LJQWI zrppmLStuhY?|f)9X@`P`LBkYbI+4bYT$mvGd&TgUxst2 zDw!n5`E7qRLPNmZIny{K+?q=o!cR)()@Yx;aJD4YwsI$f<{X(^>R&hQVr@3@{zSZA z)h2{gqXqg4A~xe>2emH>)HE$j^M?wWeiEHY%PxF+#Q{#?!bqD=fN>I^T%*Qz)Lqu7 z+MvXfcm57tjW})lYSbW0S@Rh=50}p7$ng-~5T$3k@$5(xr4M1&?hH7dc0iSPk!8%W zu!@f^Zla&#Bs*ZlPBf2_wj1-IN+@?BASmRn$6yDVt}*!>;itT;B^qhd-ZW08BAm;R zo(LJ5xaTrt9N*=6GM|%d#RY^>a6W@eM>Vk7uM4S;Hs;}|_|6MEdfi#aJ+t0vdd1x? z%v^p5*y%VwLRhq-){$^8WZtk+GWTqc;|#_|KZClA!|r($Pr5Ue?DjHRi9SRtQ&Wc{ zzQE8^+e1P6?{t4Cwr|sQH*?b$3BP-nhekMAPk$dkSJP#{#XJpt85m)r;CE}yKc#>s z?R{dY3qN6wXQDQpr?x*g7d0ycGZOa=V?jzK2RZ6Nd=?^?5OLGtUMqfaee1o#h5Y@x z46c+4D4*CGns{6%%7I*Eeh*V1Iz=q%iU`+r5qRQ+xN&|wXj|ACf+V%HwISsKvCeK2 zxa3tn;gF+l2Dz7KIn#^0UjrX;?W(DgBy&ZAb(8i_V;?T+{?Pd`2gxVSxiMu1aC9x` zC%JtJyu&?iIx6lY4D&YCSfbkDDqw70ds4%Sa?4r2x+SNXUp}^G?&0sCuwDF&yzU5i zN6U0;P1F2+{RvhQr7ZRsMIa~nH|tu24+d$hJe>aR8H+Z+Fp#m?hL8F9h%8h+JjFD3 z`o^4#`w0h%Q9Uwb&QO`sM)khoBzBo*sO!P4eS3Kfc|*rybuLzt?q~qsixK z`TRCN*G~hi_D<6dm;huuI!^H-B_NC{JfpbjU2F2jex*0&yK#3!huxUxNTZ#5@D$yp zr2A2P;=U723teo9PeAaBcKHg*(?yos&%V8!M_GErqpKZz(qruP6`Kolj3c$Mvc$Z-9Q5j|ZQ5j%GP_#l??CD)?-_wPD*B@nHtAMsk(D3L- zl(}g|(asxyJf|!3EAe74!BTg?);S5DlR-`r$l6QZn?ah;2!74-JN@mq*HrLTl#eRG!O%30TP8x zP%byU(&TJ6Fp8oSP}7GJTS-^c=aP z55u6O50~=M&Z{pIQ>S(GBFQke2t-Vxk%st5E*0|q`Kn{JE}Sn@AH zPyc$Vzpb~qCVY%h2sNux{Y9XH^gwdV!JUsrT|U2eXqH{X<-Z|Tjqh~TgDL$1ClDE_*9>h-re z+p(It-M=LTZ^`w0I@Eit_@0#GGTrA6`SvXHKbzm9WD5wbaON){-NvXsPu#`n?D36 z_Vx9pn?C}a>Gh^Id^c$FZs*Ua)&SZM@v$y*{{!+gn*5Rd{xJwc_?q7b^tkBR*Wa%9 z>8mNZ>;Z`6nDw`1errRgX{`8!<(<8Fm{7crkF_D`W&P~~{he+cUG_b=-A_5t{QjYy zLqHBR*U5ccYgmD}M1!{URd5iXe^n;@Hi&^nyk0xYYkYEcx9Qy0E*!)d&6oPpYZt5l zfSP`O54uc|XSm*gE2?hGmwMF&S-v)zGB6Zo@K0ww(+xtioVUGekXV%CsD^ufambWD z=9j?q1fJoBO(DI}6yg_EIWbB==^6#fxabH|g#_SiW=ItQOWRN`ptSuFy!@aOOb#{& zc%T-c6zX*w%;RhiCxma{u&3J)z_TckZxn%pSdhND&s74J!KUntXyjx^eN~Av{Z=i>m2IeLq6d|lvjkQSkSxntWxh;Oa~G`P`%7gWvGoeaE(foRcp_R zoz&I`4TBrbWwL!wAHGpHC9O%4WfBG@_}qBIE~!^V1Ra6#L}va;&k?8|K^Dc-F?O-` z6~X6M6rW!a7J8*m&`4d8UV9WcJkZ|(=EVhh*OprKwf33-E$itu^tb+J0>=AfO3W*L z@lgC-Ln-&Fp`Peli6~3hqWM$KOg{cprvJ8Bk-cjoH2!bF)Cc_BSSAYP3-aos0`@_A z?SqazM}#TT7s24T-)AuUi)7B(z3vhQ2ypg+V2kXr_BF68v@c~dy2V0$zWsfQ^FTP9aEM`;@QOUd*bm)&##Pwi zJ|6@;zwpQkU9 z_Zz@}k6mIHNv8EiU$=abKu{13E(=P81{n{ZknihFk(|$`*P#zc(&y0xauP}u-@WTE zvyD`f9-CIa%j1;Rf~=Iv_>y5>L`^(mN09b-25FCBWXvXn$U1C39S+4J<}tR^5$V4E zJRj5MNw2@DkKZILxRdV13Q4cOCrDAj#s+WlgZ9XVx{hzkc<-qwTK}HYfa~9*6p@ae zl~0i%Yb6c`m7pf!Ssm}s^y|;{>u1v8v-0^GKi5hek`i&9vPWV!E{Tf?Dr_1bNYBLHP`!uE!Q8^| zQT(J1R#p6M1|P|zRqILLeS}>1t`3Axoc4w1r2%m6Pijo)SHce&Eb@=itQ$SFz-0iR z=N;jh<~zWpI#|tjAh+Sc{33mo_HrM-Pz83?J6I+(yw?8>%`=)#50h_z`sRN~!8+JD zp1#_*-*o5&6d%n16bbpz6yiL+ahjcU8*uInG%ytRugXw)YKAS z-dLha#U~3&Vj7A+{A4HE_Oe1rDwI0G*1ZG;Vg$xvs=a&9ookTy!le8JKi^Aa-V2k0 zuKvB41r&aJIx6NFaqEj0g?HF~CH~NF&A~WA$Oq9L;*utB2M{ihbE=Sbg!g%Y_jxQs z6v)FDS^T0D%jL_R+;M5&)6xE%flJvAXBjHCXCDYfGNW^7EShyfkZ#k_2R+t@+n%2E zEN@Y%z5N&i9?<6yf;~ri#Nq96s(P6gFSt;Biefop*_FgpdA70q)ZR~QXGk- zTRRM@q>rh&d{~A?5yjJCg7+`G3A+788QX2BDKB5?jUV(-`0`6biJkl+?$gb`=mE~? zB9LzyY}pV5H>7~ZV|qhGE`{L6d-CjA`FsykPOrU4H1kWX@fT^0iygi8Vz(IMFIuCV zPf&uYaJICGHO~2ji--OVYru>`4XL?y7Qg=u%l<`L_fqyKE&$2eZ!w0TV6PnpB&dEE z$Oo3lSh_A~&uzRdz`}8AZ)gZqnpZbsg^u<5E^`BpT^TZ=npb${%?Ng zKY#BpZ>j$N&ENiF`aiz*)#?BG;pXf|ihptDYyZN0spro7pM31Ezx3aIvHcVO$K${H zmv=n*yS2f8{#UjC{g40Zsh_+v_J{Z0{hxi|y?6iqixw7ae6V0R}1tXMzkL$F>^B8zCPjH{H? z9mOYX`ySSN9yolSzS;A8yFoFzJ=|sv&DIP3=ZnwuFW0Keg<1m#FfkUQoP^*N4vQ!$ zICd2X2Vk8LC*^K*P^K%u6;Wo<%165QqR(_+nqkf!87h4weXI*Lb3LpNAdlJatG(TH zEl?RB_=kENaur~A$>bizi0QR8`Fu$LS;LY7mjdoGC<)gQak5vyB1{PjOzS(MKw^&vY@Wh<_=JFL+LMcDF+q1L)JZ zZ%?(OHKLGg^QlyKXJ3jCr@GrwhJU0OA`^UiB=zPab6@KHqkRvNo7W_`wDv7NncUZn z^{yn?!;aIF{7R)KhuX{|*-E`p$j$e!fE10TLjQbWA-7U$^yjO1P+Q42s%nN~E z<>$ud2z~Q~&$gMzcZZXEu^vi={$K0QEH4)-^D|Ys4dZ95&0N@B-{`faH-Y^HPU9JV z91~>s>0&uT>!mGy6cgIp-PxW#mR>>;*V9Y*2aeshr@I4suEdt|u_SW&-5!|3Z9Tnf zf7HA7%2_)eYJP(FSzWUgLy?ku!pM$Mhv_Dx^ULd@fh0jCs<<8xbone z^7$>QGSp(+Ud*Q>T}L|LBr$xAsO;YEjw1+jzltaWG4LwZ9&3xVL`;dGk8rmqxAg+{d^8l+rkELG;heYmhkF@*DAerUbayu%!NZXX_a5nk;2|EQ zC$_ow2t&Y>L~HlPy1SQ4g%#jaA4#7OqraUJ9cJLahbaMVl74PqcPHJ{I4NKEnk8GY%uU<27^=EsOkKK(Cu6D`MaV=*WXG%MV-L?hLX&$B)8c7 zC~=~)4}oi;+ILez>hB-!20MHQf8TZgzMm2S4aEQOOq)4LCLJj>{Q3@aCLWAd7Z(dP z|5%s7+F6D5EICw>o;uZL?qzR-wL-2@@GZg}>NAxVkhPpIHipRBcgswFB%kk!i2SMe zV#v=~0UQRZqUlgf1Y<^{51R5t2jQeB{z^>r^c~-l zy;)CpnS*8@`rGP%&2x1LSsd>a{yr0Gc^1iPNn?B%a55u0KBJ_un9^QGY?<-18bV-v zAD*VUbM78`zSa69{_e;BC*|s-)Ektn)doHpHG3H0v4Z4}F!EQD8k4wZA{%o9AH&mC zq;FM`JjKA`!+7!l{?C~+czVWs5;%GgBb>(5llWPO2Z6EeG0jsrQD_y{J85}d!hVaG zsd5DS@o%;DX?Ec(Rn7jq3-3TyYVvK!Nw`(6(>hc(a8KR>yJD;BqiyC_?cyDNCSO=? z6swhKSOAqpx8U$<%-mu32>e4+#)KV)Te?xThDQ-SDhtgLqU@(Sj<*wO1hhoRUGBmHey z6@C1c_8;(bW0|Y3`BN@Pc)Ku9VXpo>{UlX@E?$`5urcYYx2HN%dtj(yOelxm_5UCS z;9E!lIfy#@P$1Uwt0?}pHoS|xx_G)$Xbh;cIWU#GrdO~eo<^LYfCC{k&2oK*V0vx5 zhG9AK#%t*(MWTL?Ui;UCYW+0zK_5C5*|5~L5Qi*K3vxV+^NzO zmjs&^gz|Y+9BL!1zsM=jWOz+3uyyhp!Crq2JALVm-gFic5(=w5ot5G@MMu7=+Cxg- z10|p^-h}B7;eHy9{->n;S=aH42mwDVMSmure=eUtvmLF!iH!~^c^xj)`kT;&>9IcO zwX?**E!~I`;*z!A1PXWq1qqEF+(E;pZek;pNtgmP=vLJ(31Env*N!)<9o zEOij}>F$vjJ%jHOMEO-XD^jGDM^SnJR76~*ht1%JVEi{hiZ|8iB@l1Itg_$f8*qHU1RF=G);Aa;H0fFHo%i+OS$g9h8XD!B`nw|c zf3N#yS~^$J1-1`x$-CyOed&!8{CCw}=s-}y&0nCiTjBE{{Dtj?<}Wy+d^LZ8g-4^K z@AmEk?5FuEBGh!!ew02y8wzuUy2b?FK`B{e1N#OaP`z%PB1>#cs-!v4y$4|`dVJWV z5dQcvwQ?UXH;&W5+Bgo=k1bB~U-Nxos7Y>5G~b6%!9=gNtC6*Ffx&Pz!IZ>ddja7b zM0q-Rv+*D-R-ml;byUVOe2}%US+emn#BO1y^=@R?bmMD%aCvS4K8>N%2*SL|m>2~S zZop`?LRgyq6gt8#Lm%e~OCO>Wc~OuTZwP+?{^m~(pay(z{M(qvE*UmN5tKU!3lT;9 zlVYHe7s81f^D^-z`IO)X1z);XKzl>6@;b-8H+?TQG9dOC>tnC!r?5KE=Ol{tnZ%R( z1m&`*vHw7q_~+91i;AcAZm`+D)V_UUxBmikR=EP?{sOD>DmYG2zdqT{B@5O$4b+3e z1VWfcVrHoxOp7ufh{6Im!dMTuVC@4&(iA)l2*zS?oj&wWAQjs?4j3>O{!al1==BT=0uEx-lke^di`+cjF>%F(@BD$;G)bOFjYv zK$(1>@d!jrJ1`b@rZC5LIP;8Arf&2GO;4@Bs2pvFwU~ z{Ln$bo;rx`4|30E-$9LNG~Y!uky#MEm?E0=3hLK{bZdttY`AuqK@B`ROxD`?0oB0| z7&Pg`%)wz;3j9w9)R50-Rb8c0S*;6*F|elhUB-$s1kmVtrK=|89N z>J|JHKv$daberk6#m0Q3&Ggcer*&|?mMa&oRcoj@&}Qzjb@~_Joez#?`%ev=>>q@A zoof^?Ba#@@W@uGH1fOa%_YYQ=S8K(^rAGgKCr_R_fsZr&GYGO|mUDT0O;;Bh*K#$q zuC7$((Nnd8EPYxmTUWwnRGaBIHGpI2doT&k+kZm?P# zDwW0%@-XFkzFI332Ifon*%|ZEbANrz^gpWAZhYRrz<=@>z#bXqc$+cJ=u|b9*09Xhfi*nPs8<`z{%t}eA^!%Mvd=x{=5IkmD?_>7cpr0 zHU>YdEB~=e?p=oe8^R5CJmA9B%z3y@OmA|zP^@=1cR1z54$tG%#ocmem-yV6H#^_J z@^1r7{%}`oPcKRxx}N&~X}FHSfjMi^Xv@rXThO|v`t0h=bH@MqNM z>Oz8=UpIFKZJDl8fpa>JZ}!9gW{kf2glFH~2`ru}<9h`f^5a5udf7J*Z!%BDJB)1q ztoeKB-_2zRb?Io+!Ssn_tQXB#@F$1{F^eqvSLa)gLo*dmN1;=#qsM2)`JXh1A_ikW zj+)+`=a}sCKKwl>j=h1ieE{`IId`~`4!p-k6vhF}m2W3A=4CkRZGe;6J#0ZrECY|6 z=P!eA=qU3_3>Kaf)AMIM$4{CQGk<&VJSsSyu(%*6 z5<`w3TwY$B{vNkV!%4JfYM&nK^c0D=GYGf9(m^O9Tt7~Er90_O{>T6$b{9nMhjUi>;)Q7K_Ovjw#X)n;u59kE}GKnuC}ThL6ne4 z9L*n%3t>z`W|WX<923oGGR7^KA?g@SG;!1<#*u`H{__#WNi>>h^#42OzIW?YcT?(o z&NuUY|1RzG?(dv)&pr3t_1*WXSaR<5dN&b)}<5q-mXNZE77`aWui0Jo^GzLt{Cf?UOta# zv2tkdMT=Vf(q5+c=t>nP;sO$e`{SFu^ev2M8U7ICH*?s3`MeAY{+oX$t{2z<_`i7d zAhYo4f!(t?aSPGS)(A7a&px6mKmB2@38H8~KMK4sfSY^Ln|gqsEr38KbrnC6_C5)s zwaxiLz71G>y9Ei>xgLLk&nyI_IiJqvpeVlXgOK%Z!C&Ari)c;&4kia9Fc^Ws2nvMR1O_887=ghE3`XGpqX^v1_tp6Dy{X2ZyO^kZ0a1*ZfzR@UxkU}I224Ks z_QmOMj~KV{y2i;rK6lL7U4Op$w&$O!{q6L_k?-8`=lSVp$1l8o&b6^0w0&jKt@Hly zt;e4IN!`XbTi?9(ooDa;>YsLh>(IDse{|F6Q?Kki_(;d|p#$e%aNsKsI15+4_l@mK zy5?T?FFzP^VEP?PX5IV8Kac;;yj%Wr&NqMk(;t2Avg=o0^!VAoedx5RL(hHcl%bO} z9qoChlhs5O+POlZUfR6^^>a^xZ0IDH_zHH7-omE@O~bX`B3fHmsj!DAd<6@PxT1l= z$S`!0BAiNaoN9(!o|ao}DA(vD4iLh*I0_Xh>(@db+?uT*ZbjWTzJx0qC?fVW!9)3o zeE1rX8y^)#JejG-Nhn`aC3swZ9^Q5r{vPFBX8Ek1PX+ld!5R5z$1OYr?d0b`q-@8w zv37efcT^dBMOmr6eP!$+jz{#bC@Z!1{WA8@M~-N( zC@Z!1NEv%0%GfK)O6~oijJ;#a*el9P?fr8Zd&iZrSCp07+h4}s=rZ<-vQm3LEMsqM z8G8fDoczzw)00V?&!q~})d_ulSaO0944o7r^f&o{A1aK;81@E1NniKuH5|!a;}Psl z2-*wQ*Bd+&{d|4=v;02(HNKC%$w#nf`F-q74B89PNIw=kMqvVUgd!?Gf>nQNz#P!W z*D1v^i}Q(BKPwB`MvsDRrtfR}lrpxhENC0EB5X5#U)$5m*tW7T)%Y<%|A@PVCre`y zk~x=Exc>}G&Jd%0`jr<9UlyiezRj$Yb+e^rIWN!S{4q8^UdHBtvXU0-*IskV)Z5DX z^poEeYu(Qt&gjjWF+l&evS1sP^sRtpv-XyZQ*1nrXxqwywoCd}dD~}{v2A5R+a-Og zyzQlBY+G5-_VLnhnWEp8w|!PD+}7@zNYD}&V`~|ER#vnpd%;(b=ScI~r_0#0GEL*id~{Px_5eeu zq1I_U%DFC6*AmlC5_^k^A*8)KHJ+2SeJ-qrCAV`a%&YS3cpC}J|Dg5{z|du|(Z~MZ z9KpWjALEsqj6zfA6lhbG&fyj_YVRh#Pa;M^>ph7(Diu5I%!90oLpneEcK7no#e3)C--{w?5Bfn+E=G| z?t*%Mn_d2Tz&HO)#+Tg|kXhfHhlk#TDAzqPJGS@e#fiBb0s4p73y^hA6lG9bVl+gtp^; zRugKfaNN4&cUYy?$zc(!aD^IPMfm6`U~^TCi%BdA6=+{Kc_*^yt!Q`8#p+mH*i;}U z-Z|mqy--Ph7o^e+fGQn{iYFR{N1}e=5h*qrC_MQO$SQp(Oh2_TO^7c{Ii?tk!I(0; z7}Efzu; zGINw=uCA+Sn20UcxZ!JtIJq&9%TSOU@R&19tkiiNa2PA$;cF_wad%?O6Hfl;fL4>Q zrSm8INw_NG`AS?d2y1jxG(R1}iiVB4mpfczJbwnTPL4%c6%A{3FXE*dN9WID?q&wd zDr;4~12Bn|u)cbx`>!1%h&(8WwsqZ>y%jYrF}ew4SY7ch?Cb&d8C(Lz!fULSM`&Btd_$Q#u% zB$}$^&}wLC+AfHkt(Yv_cXfrc6(h@CV|3niE5l7rT|>l((uRTxS1oQ9aE8a<~v z8e8Lm7T*B4;=)ij+*n=X=A}(0z=!cQu8ziXXpf4V;7C7tt^vZKp$3d_%t~ph&E%{t!x;fBRNcV6^^+yyOFAflOn^{R7S#+4+e8IyWy&aA(-8ppq<3n4HF#sRy>mj$3jU2AdGC-C-NhTTF%XD zAaWQTH{`2eKfy9%S99F9Fw3`F+{0kD4J99dUGc*$p65Gt@8W>K7s1D%Y*;^;^}&HG zkd^ZV*1;B3+*)NBHWJ2nZx1s$puloe(v!<16R>R7r@r~8^vRDsNuT^BCQz@C-A{8Y z5as(h8qCLn<>lRxz^vg4jl1!XsOZoYFmBpU)9;{(o>1d7Rk%%&;Z@Uq35L_?0Mu1Y z`!NHVu%>?+N!QF>n;kQ4B{?dMN4r79CT`|j9&;*Gn(BST8JglH8L-smP6oTGq21H+ z#OEYW0b6fjXW!*kt!kL#2A*-PPd!ZY2@@8$E+Bf zUhMRW8=Riy^okFhp6c|91DsAey_n#X(Kxe8OB&H{04$?oM#zrb#E_XUSpZ+~zvWWl_J9AI77sE-R-?D2Ig`cC9A zveL+fa|x6a5h{_Zs;h1oufs8kT*O>VzG=cMde~O=)9c|Vm{KI^g;JT=aIY9)vcs?7Gx9)wEI>sa zv(8|iN8exr{yGylzi_T#fnAeiE#Jb945%v}`sqRcItn~A)2Ej(x|bn;i+Crqh41{|7fKhDMGQ+k5z8*`Y9!hSPL z&z=Trx!a`4B$i;x$7?g$<6VIca>TZ>vfv(pnFGb*zj|N(Uyjp6FHXOGpExc4aB&)V z--G_n`ySlEb3f9A`Oj-ZW?^@}g|B)G>*YR%z}ww9w_S*)LtpxmynEs4-ELbf-y=@4 zjk;rVcUyk(B@N^spig;or$bj;e`J2F^5#LF`}3xg*twCzc7fp)C%?w2-gI&*cbd~d z8c*=%nZDCN?g)?bUGm-GUJq)G~`IPQ$w9H9nUs#;RlGtQd_?eN5>pCCT zAv~@nX89cmQ4Vvo*U9tyfz2rbZYYiSa$~qBlH((bzHhm(O^h_-lDt>b9~aLLb@K0E zgU4}@=Z|e&T&w*3H0~44I0}vxW)3t~t`P0gIRik!iOJ3Di+$qhO&&aV zpjiX`FaPV(Se7*79Rme#;5ZBvn?7gP)xqcbC42v2$-hd75#!>yt9PClkoB>L#r}wA z;b>idzhKuLv$r3Xw6Z?-aQJXUdrld9R@TQ}T^W1fGWM)27*p)jWGxwZPQs3m=Ok=h zxqq1TAuz|}s!&|Xs=%7LZw%DDXalp>a(;8zv4zbCP9z4Le=4{}oEIJ1>w{c~mdv@? zGNxUBSeKO18sgRKLzPkN=YcZjpbXp319j;6i0scjg8e%_tbMa*GV`9a+!n6I@MNn5 z3A3r~yUCKVYJ#MVw(QyZ&TJoiYzF711WF%pZeju2G}sUQc`ukBE8xKSS#ZSsxC@hy z*@GNuejT{Kp8&(??_-R8hi1T1u)mM%+uvE!EOGM?WZ4Q06g#Xj-uVZYkYim5%mC}{ z7{9+`rS|%}EktjT>{zwD4q4LQUzGmB8t*rzY#Hb!Wy zJ?7bXPH~CQo9Q~FACmN5_Xami54bEH8e%#}=*kfDpAG#}C``W<`Zp1l{yuUb5~j~r zTu~9G+l4+N^hKd>2#r^=bb`=Up`R4GQRwZJU#NuT%GvNPQuUve6_fxC)ATB~f058` zp_dBXD)jG#ep~3jRk8mwt6Bdpp^piT#hDWqI!x#>LK8wy6nZKse>g@=72S&Kal~^V zqfaB6%YZ^iJNO$yYX!MzEJhuILbQWaVhC*kib419MfNqIYM?!&)DU_Ms0KOi6PrH= zssg@WG!F?HN)HHn7buChvmX*vsSJ8p&`1w`U(k3D?Gtp0haM3$$3s65wA@4crSufg zSd{Rn$nro7(PMrjer^M*0eV`{mj#WaUx?;6CErN;rN|!gWG_kGp8|^EzWjh_{z^2D zp@V{c2UG>wD}vqwT8Q5HJ3&J<`%+Jb1SNom0sV)RFaf9r=no=0T{MrQw?wv3WXI9l zg3k8PJEGYM#Ald)mD*kgR0UL_xW%pk+Cd4b7W5?#4H5KB4-FOcu!rgtx8DmuHOMzo z&?_D~M$n%M}+gd&?{ps1K;IU!ZrE%g z-fXZhce~f22hOr+C;I037JU)-hnpwleSs(Fs-899{LkB*U)_y zeV5Lqr!9JzK1qi>R1tcdQZ#J5DZL`}45g{jq8DfbEwtz*x`?_hdWE{^YKsnIh2Cq? z>r|j8EqaeGrGpkl)n#N}SlC4sp&{yWN}TAIehlWCX%?NJK1-`CnxL+x9*d@^YiWl? zr>h(2c8lhyowVPgGt|xWqD2en%k-9qjt$LGUm@J^;zG6NTMef4_vk^IWl>ap zpU$^vg?faxTXdfKA?>zkoqC+^vuJ~Qf?l@h67^$x%c4!{85)M&9+!6_>i#pDWYHPw zd0J@E0<5C#9-0Wv7iG7|`6ePtFVoFdwt#*^_j>3w^re5N7cF{*{x7|5(F<5Nhu~2Q zTRAQC5*?;#7QKRXbGb!_=?%(S^g6vsJ1u$-tLU8;Mb*3XxJ4VV4SLO@OO&gkjedEX zR78!nXoZTY#TK2Xs#Uv1>(mgn&7!TUR_(Uv8daz6wdh7QQa$aVrKtO{>Me_&q2tvM z-u|MtOG7Wv398YemuRe7Wzj2?R9TA-Q-iwNqSvWO-EGl(*h4>VQB+M;2QAv5PEl3O zetDOu)6`gtHmR9vmPISn$JGXl&Qo*MHjCD&`D(XCTh&5!pGDWG#p-E`ZdA+EArGAs z`jR?RMJJll&k5~St5w3HJJlLB!$a#r_o#DKw?#YYe6`)8>GVmp+e01D{G@u?qMdZ1 zI%v^!TC3jiP*>=FwN{PAjW^K^BQ6b1r<9r|Xcw)e{VJsvTXY_^sdf)t6*@t+t8EsY zt~%6iix$vD>OPBJpsae*rNmr|P zEIO>NRzu_lkY#^V*Qlf*-cS5R{U0^U%0|<*>U@i4(&tr=LG)<&u=>2Z-lEZTy}Hvw zKZfi^^|Xgx0=h}P?x90rt#_&+c!68WxG@U236+nj+QuX0=VwcA6Wh z)n8Pvd9w2&BlMTmSUhAW+D=`OYF1ns1!BeUrns-BN|X(zoMnW_Ilt?|%N(RuotY8V~|p)b)1(KGa2YLlRybZT^k z{ztXn$fTd$qh|2K3fbiyR`;ki21S=f@dH|_+se+>_o|&1t=IRdy9GT;yaRkdJsyxf zpk5B3ht)e4b?Hach|~P?y7YcE)uN61F}2*Ht@;VoZP8WwDRsR?TlLfGZi}wcKU2?I zbgq6*9kS>~{R=e$k2eTo=<4Wh{cmarA0y#Ds)8q`c?IgAXD4ltEnG1R?dseq~ELaJ#;PF{r75zAhvRkKCJGw=&p_P73kSQJSJkKeX9?}~Gap^zTA-zM8(TwQ_4T|!e zMohbNIiG2+vJRqyluNfp(YIJKWTiLH}jm^a4r&S)hO;Eca6NwtV zsRZq?=&-8Mw;L4Qhq%=0eI9xe?NF{;N^;;gIir?tbdf0p}eHRX^4(V~a z(IVWF=!G7tgyu=Q-J(OfSzm6^b=0D7_RuhBPSN*TbV#47pS0*YI!(VS$i#Doe#fFe z>KQt*fPHyXYCB7>6|_G#p(0MR^maj*y91gl^!^g`LJ2x#(K~vD9`Xr^g!p-u zUL(jv_blBbh`oMCpQU#gO^F%ieWNKcJ6FFD&^%Ya7SOyv*Pp>9nCM=hX9+SkFVJfQ znRZyGFAr$0)3*dP*XjELn(Ot;0nPQAPYIu_aTX zoHq3Rbmoiwpq(N|5vL6;wbNf`SwA~Pjv`JgI=i1vkz=HaF6^gMmWzfU%!fb!v4F& zBXf$oJ71?ir?|WGb&7jApHtkq`J4};Q;bIGmN$JyKr7H@zrmv%G%)9qi2?*xL_k zIXEtY=_9uw`ybQ{rvLZk^2gB!jl=ute~=#XQI$229fzWL0{FIbSZx;iY0$89jihf7 z`bD9)3jK!AZwvjN&__TkoqqwHiFY%Y;>mGkoSs4Y3FiRKs;a~L8lSKFxf4@dN)0GZ zoFGLS^p8USqDCV9t}{~ot_l{^>s5#GjOO*K(URA74^Xta67+57DA1Fu<9OF$PW3Tv zO86;ST%B|$(1p-hL>Z*H#3`;)uU1ZX{|tYoyBR5w=}de>aclJ==zO+%8Tjn&0oql4 zAvlZOcF^0ZbM6HA+3SuLeWk8+cY*&x^_M{pf-3cg>RoOO`g`e=5`> z)>>$vdvv&k{vBmC;|c!ga5EiC$AV4~S}F8&ngPySdI|Il`oEy((OaM^A#J5Ly2tq{ z-9#@tj@qIwcgHH`%u-wEY3HD%uf(q|KIncG^q1~l&C=gUy4{hyj-$h&uR1z*kMqwC z>o_j!j{*HwXspXR2ZcJJE$Z3O7|;jZxkB4O4~MRl^jC%M4Y7WEnCaLE)4frq`(sQG zRxov|m~I!kw_2oe;SUjh4by|Q!WqVN?9ohH>zK9=XS#g^)4d~^?mvdK75Fj-H9vcpQzFX^;D96n2hdY3uP!+Y?N;k7l~}1g87PFg-YysXLzO*b|wyCYiQR zV7mPzNjEUvZ)gjr$4(aM$xIKP!nE~NrhA3D(>UEObidHC)0wkf=s}^ar-{DMv8Qu- zztDp-L~|z7){jei7E^b&q=mY3IDJrP`&{9-GTl3m>Hhg5UBI+`p`?YjFOsy-y`SLp z*fW^!6*_jYq=nw+Jmfs${LnetO}I_&$J|zTwVQFj?%wJCqx+ou7gu9$cd$CT_%Dh# zU54Skx#99QR|VcKsl+=aRd|ymPGj(W*0Go$#^KGC@#yU*Lh~fNN7jJ1Rhp4wBIcJ# zc+aZ^V_-7BmqI^tYC(s&O*XwXv`^vR5{WYZ?AQ-+f|ibPx*+rmLQO71UlYz-{rJ-> zI9Gpaa$O=)Lk*|DW|5;&cT@imQenK^qwyC5{T^zs=~=wRqv&5jH9dzID0&`L(+h}& zqMw6mdKvN1cs74D=wZY{)9Z+a!c%vqZz3X^{v`A-Gz#fTbv$U58V!1s8UtFZ#(^HK zP6QpHCV(ER8j!ahRO4;3CZvxC)p*i95p1ke%f2k&YX)b?pb9**R zi)I%J>3mN*PfJ&`biOa8&O%!*pUteJm75Da=}ua0)+%8N6F9z>ug-PKcMvb*e{)dFKBdVs~N(#Vx6q-l9J)w4dA?<|&9qPH^L zv${JVV>myvsRykU;L1DF#Dgd)=5@9AVX*H~YrK2S zZd%oqz34f`l2@fu`PST}T|rJE5LvEfKX(JnKGh3I2C%%jyXXfT%5-$4)@9T4^SMsz z9>RPC$)c`8PpYdey=?uepdDm5f`omcj&#q3{;2S;y%@TFI+e$(>FY~JPjg#OE-yLz z468n{E!T@)V>IV_=|x>_`E)0`lBtofNqSO&R;1Ub^J!GU!;1<$%xF< zl7~1@CMkt`6XgoDOr|s4yfU57V3xToB@=52TGX{Z$73y>>f|xP69E39t>yXj+-#VB$dAy<6=&4CfgpY>56oBF5ly88)tbu6nvIZ z4hp3HzF0s|>iNk1YF<``U4iCfE>88BWfy5rg%)*n_hNoWclExH;`NkO-0FrW{_=7t zt4SXodco{G26?+*Nt&POYG0Bmps=mTei17 zjR=}6JA}ztc6LR&s#c6D5E zYXGxTK^#o`vsik)H`mJ)*SRjc`Hb{tj#Y8F=DE)k%+F*85VWQ-v{z!S?VsnYbiTm5 zKD%4=jm_=NmTpjd!K!?!J>7}nJwTpZ_vU=2V?$u`;OAPN$5tA9-~Q$B3egqVoccL1 zjMis5dh-&}Vm>b}t(g=yc!i!!8)lC5y55csUSx`DeRk~B>1~UbV>RlOQB%}il`{jq zxW0CF=en?fWBZ@Z(mZU8bNM;>+@*!mGWrP6U9j6u(K>G~A+r>xy1e~=sx{Zk3t`GD zt<5gun3;N}Os3W5vJz_%)O_uHM+>I*j>+DvMk)WcW7)bwE}IVSB5{gV$7iP2! zuXUJZWQh~P)1G$|As1N(Bt`47oMh~T#@*Ii4GaDNrGi-%s0}+y>=x2pJnwHz)2iI! z+@&aQNeYYSl1vv0#`;7H(miGY$)?sJrk$xxGHT4`hznT6cS^Z+7g50r&+P8*bXPmA z?B&}ggoH9O9!<6lseFM7GNBWelq}D(wn10(4Uk1e{wjnq-BX}k_k}Wsap%G5MO|s{ zJ_LIoYzZ>Bo7>EHYwWblhjTWgVOI)86P+@Z+pFaiX)o^r9#>*Ts_SA*5gnMJyL#-* zMm=b!Ja1e@3EMJWsd<_*cY9I>XP=Lqj7)=8Bxs{7#%3#(UX>$MS8g}3`{URyTaOJD zZ?n>T-+JL}d_$su?^@)k2j>y8^&jE7o{_^xR)BGioZ$8b0>1K;=Y zH75`_N6o-@g^ZOG7+22l5YmwaIN!mmy?BEfuhBYqtQ9&R-VolpYv zyWw#g5J%W}ybfM*^e;sn3e2nVYnebfEvPMRyAp@6P{QbyY9-Kc9Oe%2HXu_1#xe-M zX@F)4%)CB@mFAi0RiP2Or4IDhV;2yd)8EgB6#U~3v`)Iy2Bb{TkoQxwA>&5c4DSDc z@28e4zl`5~>fATd3Dk(2j$5T2b>9@MbD+!*m9K4ybW=>c_;NG1Yp1j|cWEAaTxKzr zZQyZNW*&EZqrs`-ur9z}H~!YM_%#^^G?ib6@vT zq`3T&TrH)!xb7SaV}0Npt1ymuBH_MZCc6&k^NxdChbQhleC4p@k0eS{pPq0C6fU3_U;GppWX)eB3ssy$YqiRM;Hpe7!8ZQZavtCtK zvwIO}aViW)aAiSNRh1{;6bo?WGV0j{#z-(0JtLPgjh2`-=7fuXdL6p8qiaWdo=B2C z;RM&MzIL1x2*XHm<#FW;xDt@46QwBE3QdOMNM575l8kDWE+H#gmR+sL60-#YWTJ=Gmu&;RPN@o&w4=eHZ^0cVku`qHs?tT^hz z-fQOnq~Q~Py8rT)YW?($U;D|K4|lG3^{Odv=mlpin?LHam2IPU$G&>%X=9#mIqR_V z+++9bIOUnq$KUBH_~b@ZZM_pw_?=1>cOyEAc2laRGs+(F2fc*rI7-oo)rE9|@A~pR ziMA|mZxR`t^QKen*g$b8Pexqg@%nm*+&PfK&&?QHo3EUWN#4QUydcyNWMN>>^ z=E1-R&xtCb6AlnDsS?jfXe^G)wt= zDxFQtZBDGZG}oAzolS2_XA-lU6KCb}xN|P#HZ~^a;?^^pNhg-)a8uV@UD40{Bx8R0 zh78UN6La&aOb67^e-bPBXrz!>kw#bFm~O}Z7(d+=TFOrk@x!W$Vv=mmNf_^9;i|J$6U+zaR8^fQ}XlEQtsJe5qR<=G``y*G{$vr5$m(O?7yBQO|& z!3YdSU@!uM5g3fXU<3vuFc^UWBf!5SNcc@Qxt9xQm>Ycjh|RVD6G^#SqlHMVxrJyJ z-zR#XS?*M%&cdUP3qj}MnbJyHgx@1u3cLt(KGOVo$o-FZ*$%(c$^S}}f0ZBX0EbPo zB=~6sP_W8Jyz_DV$Oom1aDd6rxcDHEq$qc+kvFDfH3e5tJz4;*kKi4Yyoq+Bn#0cM81D9)k7XI?kF6vB%UH+SfKlXJY z-ekrv9->V1NPv%)vjLCz>6q^iA2l0KFBRV|hK+V;<0%_{dFjirvl!)dhy|`;H|oY- zcHkHsce@giQeFbj-{#^c%o6a4V>lU)K}>22c%Se}Jbd#-|CEl9@etwLyQ8ed@l|1w_&`!{DNOF?9 z8Sg(=d;sq!m3Y4#_P7<2S%o+eb9Do#G#!+EchWqJNg1Y))~0J5`O29 z`(CMT-yYbv|4oxT{`2Kdd91M+k$As+QsF@|7=ghE3`Sru0)r74jKE+71|u*Sfx!rT zv=O+T@Eus9r>A_hW(TbeMqn@kgAo{vz+eOhBQO|&!3YdSU@!uM5g3fXU<3vu@V_Sl F{}06(PwxN# diff --git a/lib/net/3.5/.gitignore b/lib/net/3.5/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/lib/net/4.0/Iesi.Collections.dll b/lib/net/4.0/Iesi.Collections.dll deleted file mode 100644 index f78f4ad940fc7b8c1d828efa2d9f98550881e477..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13824 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 Z0w@Q(7edv0LC78%do0jnfeT`R{{y)ns6_w( diff --git a/lib/net/4.0/Iesi.Collections.xml b/lib/net/4.0/Iesi.Collections.xml deleted file mode 100644 index d189350cd7c..00000000000 --- a/lib/net/4.0/Iesi.Collections.xml +++ /dev/null @@ -1,541 +0,0 @@ - - - - Iesi.Collections - - - -

- Implementation of ISet that also maintains a linked list over all elements. - Enumeration of this set is guaranteed to return the elements in the order - they were added. - - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - 1 - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - 2 - - - - Adds an item to the . - - The object to add to the .The is read-only. - - - - Removes all items from the . - - The is read-only. - - - - Determines whether the contains a specific value. - - - true if is found in the ; otherwise, false. - - The object to locate in the . - - - - Copies the elements of the to an , starting at a particular index. - - The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.The zero-based index in at which copying begins. is null. is less than 0. is multidimensional.-or-The number of elements in the source is greater than the available space from to the end of the destination .-or-Type cannot be cast automatically to the type of the destination . - - - - Removes the first occurrence of a specific object from the . - - - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - The object to remove from the .The is read-only. - - - - Modifies the current set so that it contains all elements that are present in either the current set or the specified collection. - - The collection to compare to the current set. is null. - - - - Modifies the current set so that it contains only elements that are also in a specified collection. - - The collection to compare to the current set. is null. - - - - Removes all elements in the specified collection from the current set. - - The collection of items to remove from the set. is null. - - - - Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both. - - The collection to compare to the current set. is null. - - - - Determines whether a set is a subset of a specified collection. - - - true if the current set is a subset of ; otherwise, false. - - The collection to compare to the current set. is null. - - - - Determines whether the current set is a superset of a specified collection. - - - true if the current set is a superset of ; otherwise, false. - - The collection to compare to the current set. is null. - - - - Determines whether the current set is a correct superset of a specified collection. - - - true if the object is a correct superset of ; otherwise, false. - - The collection to compare to the current set. is null. - - - - Determines whether the current set is a proper (strict) subset of a specified collection. - - - true if the current set is a correct subset of ; otherwise, false. - - The collection to compare to the current set. is null. - - - - Determines whether the current set overlaps with the specified collection. - - - true if the current set and share at least one common element; otherwise, false. - - The collection to compare to the current set. is null. - - - - Determines whether the current set and the specified collection contain the same elements. - - - true if the current set is equal to ; otherwise, false. - - The collection to compare to the current set. is null. - - - - Adds an element to the current set and returns a value to indicate if the element was successfully added. - - - true if the element is added to the set; false if the element is already in the set. - - The element to add to the set. - - - - Count the elements in the given collection and determine both the total - count and how many of the elements that are present in the current set. - - - - - Cast the given collection to an ISet<T> if possible. If not, - return a new set containing the items. - - - - - Unlink a node from the linked list by updating the node pointers in - its preceeding and subsequent node. Also update the _first and _last - pointers if necessary. - - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - - Gets a value indicating whether the is read-only. - - - true if the is read-only; otherwise, false. - - - - -

Implements a read-only Set wrapper.

-

Although this is advertised as immutable, it really isn't. Anyone with access to the - wrapped set can still change the set.

-
-
- - - Constructs an immutable (read-only) Set wrapper. - - The Set that is wrapped. - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - 2 - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - 1 - - - - Adds an item to the . - - The object to add to the . - is always thrown - - - - Removes all items from the . - - is always thrown - - - - Determines whether the contains a specific value. - - - true if is found in the ; otherwise, false. - - The object to locate in the . - - - - Copies the elements of the to an , starting at a particular index. - - The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.The zero-based index in at which copying begins. is null. is less than 0. is multidimensional.-or-The number of elements in the source is greater than the available space from to the end of the destination .-or-Type cannot be cast automatically to the type of the destination . - - - - Removes the first occurrence of a specific object from the . - - - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - The object to remove from the . - is always thrown - - - - Adds an element to the current set and returns a value to indicate if the element was successfully added. - - - true if the element is added to the set; false if the element is already in the set. - - The element to add to the set. - is always thrown - - - - Modifies the current set so that it contains all elements that are present in both the current set and in the specified collection. - - The collection to compare to the current set. is null. - is always thrown - - - - Modifies the current set so that it contains only elements that are also in a specified collection. - - The collection to compare to the current set. is null. - is always thrown - - - - Removes all elements in the specified collection from the current set. - - The collection of items to remove from the set. is null. - is always thrown - - - - Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both. - - The collection to compare to the current set. is null. - is always thrown - - - - Determines whether a set is a subset of a specified collection. - - - true if the current set is a subset of ; otherwise, false. - - The collection to compare to the current set. is null. - - - - Determines whether the current set is a superset of a specified collection. - - - true if the current set is a superset of ; otherwise, false. - - The collection to compare to the current set. is null. - - - - Determines whether the current set is a correct superset of a specified collection. - - - true if the object is a correct superset of ; otherwise, false. - - The collection to compare to the current set. is null. - - - - Determines whether the current set is a property (strict) subset of a specified collection. - - - true if the current set is a correct subset of ; otherwise, false. - - The collection to compare to the current set. is null. - - - - Determines whether the current set overlaps with the specified collection. - - - true if the current set and share at least one common element; otherwise, false. - - The collection to compare to the current set. is null. - - - - Determines whether the current set and the specified collection contain the same elements. - - - true if the current set is equal to ; otherwise, false. - - The collection to compare to the current set. is null. - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - - Gets a value indicating whether the is read-only. - - - True. - - - - -

Implements a thread-safe Set wrapper. The implementation is extremely conservative, - serializing critical sections to prevent possible deadlocks, and locking on everything. - The one exception is for enumeration, which is inherently not thread-safe. For this, you - have to lock the SyncRoot object for the duration of the enumeration.

-
-
- - - Constructs a thread-safe ISet wrapper. - - The Set object that this object will wrap. - - - - Adds an item to the . - - The object to add to the .The is read-only. - - - - Removes all items from the . - - The is read-only. - - - - Determines whether the contains a specific value. - - - true if is found in the ; otherwise, false. - - The object to locate in the . - - - - Copies the elements of the to an , starting at a particular index. - - The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.The zero-based index in at which copying begins. is null. is less than 0. is multidimensional.-or-The number of elements in the source is greater than the available space from to the end of the destination .-or-Type cannot be cast automatically to the type of the destination . - - - - Removes the first occurrence of a specific object from the . - - - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - The object to remove from the .The is read-only. - - - - Modifies the current set so that it contains all elements that are present in either the current set or in the specified collection. - - The collection to compare to the current set. is null. - - - - Modifies the current set so that it contains only elements that are also in a specified collection. - - The collection to compare to the current set. is null. - - - - Removes all elements in the specified collection from the current set. - - The collection of items to remove from the set. is null. - - - - Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both. - - The collection to compare to the current set. is null. - - - - Determines whether a set is a subset of a specified collection. - - - true if the current set is a subset of ; otherwise, false. - - The collection to compare to the current set. is null. - - - - Determines whether the current set is a superset of a specified collection. - - - true if the current set is a superset of ; otherwise, false. - - The collection to compare to the current set. is null. - - - - Determines whether the current set is a correct superset of a specified collection. - - - true if the object is a correct superset of ; otherwise, false. - - The collection to compare to the current set. is null. - - - - Determines whether the current set is a property (strict) subset of a specified collection. - - - true if the current set is a correct subset of ; otherwise, false. - - The collection to compare to the current set. is null. - - - - Determines whether the current set overlaps with the specified collection. - - - true if the current set and share at least one common element; otherwise, false. - - The collection to compare to the current set. is null. - - - - Determines whether the current set and the specified collection contain the same elements. - - - true if the current set is equal to ; otherwise, false. - - The collection to compare to the current set. is null. - - - - Adds an element to the current set and returns a value to indicate if the element was successfully added. - - - true if the element is added to the set; false if the element is already in the set. - - The element to add to the set. - - - - Returns an enumerator that iterates through a collection. Enumeration is inherently not - thread-safe. Use a lock on the SyncRoot to synchronize the entire enumeration process. - - - An object that can be used to iterate through the collection. - - 2 - - - - Returns an enumerator that iterates through the collection. Enumeration is inherently not - thread-safe. Use a lock on the SyncRoot to synchronize the entire enumeration process. - - - A that can be used to iterate through the collection. - - 1 - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - - Gets a value indicating whether the is read-only. - - - true if the is read-only; otherwise, false. - - - - diff --git a/lib/net/Antlr3.Runtime.dll b/lib/net/Antlr3.Runtime.dll deleted file mode 100644 index b963933d5f72162ebc0ba1030f019e285dccc7dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103424 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 diff --git a/lib/net/Remotion.Linq.xml b/lib/net/Remotion.Linq.xml deleted file mode 100644 index d783481a964..00000000000 --- a/lib/net/Remotion.Linq.xml +++ /dev/null @@ -1,4236 +0,0 @@ - - - - Remotion.Linq - - - - - Represents a data source in a query that adds new data items in addition to those provided by the . - - - In C#, the second "from" clause in the following sample corresponds to an : - - var query = from s in Students - from f in s.Friends - select f; - - - - - - Base class for from clauses ( and ). From clauses define query sources that - provide data items to the query which are filtered, ordered, projected, or otherwise processed by the following clauses. - - - - - Represents a clause within the . Implemented by , , - , and . - - - - - Transforms all the expressions in this clause and its child objects via the given delegate. - - The transformation object. This delegate is called for each within this - clause, and those expressions will be replaced with what the delegate returns. - - - - Represents a clause or result operator that generates items which are streamed to the following clauses or operators. - - - - - Gets the name of the items generated by this . - - - Item names are inferred when a query expression is parsed, and they usually correspond to the variable names present in that expression. - However, note that names are not necessarily unique within a . Use names only for readability and debugging, not for - uniquely identifying objects. To match an with its references, use the - property rather than the . - - - - - Gets the type of the items generated by this . - - - - - Initializes a new instance of the class. - - A name describing the items generated by the from clause. - The type of the items generated by the from clause. - The generating data items for this from clause. - - - - Transforms all the expressions in this clause and its child objects via the given delegate. - - The transformation object. This delegate is called for each within this - clause, and those expressions will be replaced with what the delegate returns. - - - - Gets or sets a name describing the items generated by this from clause. - - - Item names are inferred when a query expression is parsed, and they usually correspond to the variable names present in that expression. - However, note that names are not necessarily unique within a . Use names only for readability and debugging, not for - uniquely identifying objects. To match an with its references, use the - property rather than the . - - - - - Gets or sets the type of the items generated by this from clause. - - - Changing the of a can make all objects that - point to that invalid, so the property setter should be used with care. - - - - - The expression generating the data items for this from clause. - - - - - Represents a clause in a 's collection. Body clauses take the items generated by - the , filtering (), ordering (), augmenting - (), or otherwise processing them before they are passed to the . - - - - - Accepts the specified visitor by calling one of its Visit... methods. - - The visitor to accept. - The query model in whose context this clause is visited. - The index of this clause in the 's collection. - - - - Clones this clause, registering its clone with the if it is a query source clause. - - The clones of all query source clauses are registered with this . - A clone of this clause. - - - - Initializes a new instance of the class. - - A name describing the items generated by the from clause. - The type of the items generated by the from clause. - The generating the items of this from clause. - - - - Accepts the specified visitor by calling its method. - - The visitor to accept. - The query model in whose context this clause is visited. - The index of this clause in the 's collection. - - - - Clones this clause, registering its clone with the . - - The clones of all query source clauses are registered with this . - A clone of this clause. - - - - Aggregates all objects needed in the process of cloning a and its clauses. - - - - - Gets the clause mapping used during the cloning process. This is used to adjust the instances - of clauses to point to clauses in the cloned . - - - - - Acts as a base class for custom extension expressions, providing advanced visitor support. Also allows extension expressions to be reduced to - a tree of standard expressions with equivalent semantics. - - - Custom extension expressions can specify their own or use a default one. re-linq reserves - values from 100000 to 150000 for its own expressions. Custom LINQ providers can use 150001 and above. - - - - - Defines a standard value that is used by all subclasses unless they specify - their own value. - - - - - Initializes a new instance of the class with a default value. - - The type of the value represented by the . - - - - Initializes a new instance of the class with a custom value. - - The type of the value represented by the . - The value to use as this expression's value. - LINQ providers should use values starting from 150001 and above. - - - - Reduces this instance to a tree of standard expressions. If this instance cannot be reduced, the same - is returned. - - If is , a reduced version of this ; otherwise, - this . - - - This method can be called in order to produce a new that has the same semantics as this - but consists of expressions of standard node types. The reduction need not be complete, nodes can be - returned that themselves must be reduced. - - - Subclasses overriding the property to return must also override this method and cannot - call the base implementation. - - - - - - Calls the method and checks certain invariants before returning the result. This method can only be called when - returns . - - A reduced version of this . - This is not reducible - or - the method - violated one of the invariants (see Remarks). - - This method checks the following invariants: - - must not return . - must not return the original . - - The new expression returned by must be assignment-compatible with the type of the original - . - - - - - - - Accepts the specified visitor, by default dispatching to . - Inheritors of the class can override this method in order to dispatch to a specific Visit method. - - The visitor whose Visit method should be invoked. - The returned by the visitor. - - Overriders can test the for a specific interface. If the visitor supports the interface, the extension expression - can dispatch to the respective strongly-typed Visit method declared in the interface. If it does not, the extension expression should call - the base implementation of , which will dispatch to . - - - - - Must be overridden by subclasses by calling on all - children of this extension node. - - The visitor to visit the child nodes with. - This , or an expression that should replace it in the surrounding tree. - - If the visitor replaces any of the child nodes, a new instance should - be returned holding the new child nodes. If the node has no children or the visitor does not replace any child node, the method should - return this . - - - - - Gets a value indicating whether this instance can be reduced to a tree of standard expressions. - - - if this instance can be reduced; otherwise, . - - - - If this method returns , the method can be called in order to produce a new - that has the same semantics as this but consists of - expressions of standard node types. - - - Subclasses overriding the property to return must also override the - method and cannot call its base implementation. - - - - - - This interface should be implemented by visitors that handle the instances. - - - - - This interface should be implemented by visitors that handle VB-specific expressions. - - - - - Represents a VB-specific comparison expression. - - - - To explicitly support this expression type, implement . - To treat this expression as if it were an ordinary , call its method and visit the result. - - - Subclasses of that do not implement will, by default, - automatically reduce this expression type to in the - method. - - - Subclasses of that do not implement will, by default, - ignore this expression and visit its child expressions via the and - methods. - - - - - - Performs a reverse operation, i.e. creates a from a given resolved expression, - substituting all objects by getting the referenced objects from the lambda's input parameter. - - - Given the following input: - - ItemExpression: new AnonymousType ( a = [s1], b = [s2] ) - ResolvedExpression: [s1].ID + [s2].ID - - The visitor generates the following : input => input.a.ID + input.b.ID - The lambda's input parameter has the same type as the ItemExpression. - - - - - Provides a base class that can be used for visiting and optionally transforming each node of an tree in a - strongly typed fashion. - This is the base class of many transformation classes. - - - - - Determines whether the given is one of the expressions defined by for which - has a Visit method. handles those by calling the respective Visit method. - - The expression to check. Must not be . - - if is one of the expressions defined by and - has a Visit method for it; otherwise, . - - - - - Determines whether the given is one of the base expressions defined by re-linq. - handles those by calling the respective Visit method. - - The expression to check. - - if is a re-linq base expression (, - ) for which has dedicated Visit methods; - otherwise, . - - - - - Determines whether the given is an . handles such - expressions by calling . - - The expression to check. - - if is an ; otherwise, . - - - - - Determines whether the given is an unknown expression not derived from . - cannot handle such expressions at all and will call for them. - - The expression to check. - - if is an unknown expression not derived from ; - otherwise, . - - - - - Adjusts the arguments for a so that they match the given members. - - The arguments to adjust. - The members defining the required argument types. - - A sequence of expressions that are equivalent to , but converted to the associated member's - result type if needed. - - - - - Performs a reverse operation, i.e. creates a from a given resolved expression, - substituting all objects by getting the referenced objects from the lambda's input parameter. - - The item expression representing the items passed to the generated via its input - parameter. - The resolved expression for which to generate a reverse resolved . - A from the given resolved expression, substituting all - objects by getting the referenced objects from the lambda's input parameter. The generated has exactly one - parameter which is of the type defined by . - - - - Performs a reverse operation on a , i.e. creates a new - with an additional parameter from a given resolved , - substituting all objects by getting the referenced objects from the new input parameter. - - The item expression representing the items passed to the generated via its new - input parameter. - The resolved for which to generate a reverse resolved . - The position at which to insert the new parameter. - A similar to the given resolved expression, substituting all - objects by getting the referenced objects from an additional input parameter. The new input parameter is of the type defined by - . - - - - Represents a that is executed on a sequence, choosing a single item for its result. - - - - - Represents a that is executed on a sequence, returning a scalar value or single item as its result. - - - - - Represents an operation that is executed on the result set of the query, aggregating, filtering, or restricting the number of result items - before the query result is returned. - - - - - Executes this result operator in memory, on a given input. Executing result operators in memory should only be - performed if the target query system does not support the operator. - - The input for the result operator. This must match the type of expected by the operator. - The result of the operator. - - - - - Gets information about the data streamed out of this . This contains the result type a query would have if - it ended with this , and it optionally includes an describing - the streamed sequence's items. - - Information about the data produced by the preceding , or the - of the query if no previous exists. - Gets information about the data streamed out of this . - - - - Clones this item, registering its clone with the if it is a query source clause. - - The clones of all query source clauses are registered with this . - A clone of this item. - - - - Accepts the specified visitor by calling its method. - - The visitor to accept. - The query model in whose context this clause is visited. - The index of this item in the 's collection. - - - - Transforms all the expressions in this item via the given delegate. Subclasses must apply the - to any expressions they hold. If a subclass does not hold any expressions, it shouldn't do anything - in the implementation of this method. - - The transformation object. This delegate is called for each within this - item, and those expressions will be replaced with what the delegate returns. - - - - Invokes a given generic method on an input via Reflection. Use this to implement - by defining a strongly typed, generic variant - of ; then invoke that strongly typed - variant via . - - The type of expected as an input to . - The type of expected as the output of . - The input object to invoke the method on.. - A delegate holding exactly one public generic method with exactly one generic argument. This method is - called via Reflection on the given argument. - The result of invoking the method in on . - - The uses this method as follows: - - public IStreamedData ExecuteInMemory (IStreamedData input) - { - ArgumentUtility.CheckNotNull ("input", input); - return InvokeGenericExecuteMethod<StreamedSequence, StreamedValue> (input, ExecuteInMemory<object>); - } - - public StreamedValue ExecuteInMemory<T> (StreamedSequence input) - { - var sequence = input.GetTypedSequence<T> (); - var result = sequence.Sequence.Count (); - return new StreamedValue (result); - } - - - - - - Invokes the given via reflection on the given . - - The input to invoke the method with. - The method to be invoked. - The result of the invocation - - - - Gets the constant value of the given expression, assuming it is a . If it is - not, an is thrown. - - The expected value type. If the value is not of this type, an is thrown. - A string describing the value; this will be included in the exception message if an exception is thrown. - The expression whose value to get. - - The constant value of the given . - - - - - Represents a check whether any items are returned by a query. - This is a result operator, operating on the whole result set of a query. - - - "Any" query methods taking a predicate are represented as into a combination of a and an - . - - - In C#, the "Any" call in the following example corresponds to an . - - var result = (from s in Students - select s).Any(); - - - - - - - - - - - - - - - - - - - - - Represents a check whether all items returned by a query satisfy a predicate. - This is a result operator, operating on the whole result set of a query. - - - In C#, the "All" call in the following example corresponds to an . - - var result = (from s in Students - select s).All(); - - - - - - Initializes a new instance of the class. - - The predicate to evaluate. This is a resolved version of the body of the that would be - passed to . - - - - - - - - - - - - - - - - - - - Gets or sets the predicate to evaluate on all items in the sequence. - This is a resolved version of the body of the that would be - passed to . - - The predicate. - - - - Represents aggregating the items returned by a query into a single value. The first item is used as the seeding value for the aggregating - function. - This is a result operator, operating on the whole result set of a query. - - - In C#, the "Aggregate" call in the following example corresponds to an . - - var result = (from s in Students - select s.Name).Aggregate((allNames, name) => allNames + " " + name); - - - - - - Initializes a new instance of the class. - - The aggregating function. This is a taking a parameter that represents the value accumulated so - far and returns a new accumulated value. This is a resolved expression, i.e. items streaming in from prior clauses and result operators - are represented as expressions containing nodes. - - - - - - - - - - - - - - - - Gets or sets the aggregating function. This is a taking a parameter that represents the value accumulated so - far and returns a new accumulated value. This is a resolved expression, i.e. items streaming in from prior clauses and result operators - are represented as expressions containing nodes. - - The aggregating function. - - - - Represents aggregating the items returned by a query into a single value with an initial seeding value. - This is a result operator, operating on the whole result set of a query. - - - In C#, the "Aggregate" call in the following example corresponds to an . - - var result = (from s in Students - select s).Aggregate(0, (totalAge, s) => totalAge + s.Age); - - - - - - Initializes a new instance of the class. - - The seed expression. - The aggregating function. This is a taking a parameter that represents the value accumulated so - far and returns a new accumulated value. This is a resolved expression, i.e. items streaming in from prior clauses and result operators - are represented as expressions containing nodes. - The result selector, can be . - - - - Gets the constant value of the property, assuming it is a . If it is - not, an is thrown. - - The expected seed type. If the item is not of this type, an is thrown. - The constant value of the property. - - - - - - - Executes the aggregating operation in memory. - - The type of the source items. - The type of the aggregated items. - The type of the result items. - The input sequence. - A object holding the aggregated value. - - - - - - - - - - - - - Gets or sets the aggregating function. This is a taking a parameter that represents the value accumulated so - far and returns a new accumulated value. This is a resolved expression, i.e. items streaming in from prior clauses and result operators - are represented as expressions containing nodes. - - The aggregating function. - - - - Gets or sets the seed of the accumulation. This is an denoting the starting value of the aggregation. - - The seed of the accumulation. - - - - Gets or sets the result selector. This is a applied after the aggregation to select the final value. - Can be . - - The result selector. - - - - Represents a that is executed on a sequence, returning a new sequence with the same - item type as its result. - - - - - Represents a that is executed on a sequence, returning a new sequence as its result. - - - - - Describes the data streamed out of a or . - - - - - Takes the given and instantiates it, substituting its generic parameter with the value - or item type of the data described by this object. The method must have exactly one generic parameter. - - The generic method definition to instantiate. - A closed generic instantiation of with this object's value or item type substituted for - the generic parameter. - - - - Executes the specified with the given , calling either - or , depending on the type of data streamed - from this interface. - - The query model to be executed. - The executor to use. - An object holding the results of the query execution. - - - - Returns a new of the same type as this instance, but with a new . - - The type to use for the property. The type must be compatible with the data described by this - , otherwise an exception is thrown. - The type may be a generic type definition if the supports generic types; in this case, - the type definition is automatically closed with generic parameters to match the data described by this . - A new of the same type as this instance, but with a new . - The is not compatible with the data described by this - . - - - - Gets the type of the data described by this instance. For a sequence, this is a type implementing - , where T is instantiated with a concrete type. For a single value, this is the value type. - - - - - Describes a scalar value streamed out of a or . A scalar value corresponds to a - value calculated from the result set, as produced by or , for instance. - - - - - Describes a single or scalar value streamed out of a or . - - - - - - - - Returns a new instance of the same type with a different . - - The new data type. - The cannot be used for the clone. - A new instance of the same type with the given . - - - - - - - Takes the given and instantiates it, substituting its generic parameter with the value - type of the value held by this object. The method must have exactly one generic parameter. - - The generic method definition to instantiate. - - A closed generic instantiation of with this object's value type substituted for - the generic parameter. - - - - - Gets the type of the data described by this instance. This is the type of the streamed value, or - if the value is . - - - - - Holds the data needed to represent the output or input of a part of a query in memory. This is mainly used for - . The data consists of a sequence of items. - - - - - Holds the data needed to represent the output or input of a part of a query in memory. This is mainly used for - . The data held by implementations of this interface can be either a value or a sequence. - - - - - Gets an object describing the data held by this instance. - - An object describing the data held by this instance. - - - - Gets the value held by this instance. - - The value. - - - - Initializes a new instance of the class, setting the and - properties. - - The sequence. - An instance of describing the sequence. - - - - Gets the current sequence held by this object as well as an describing the - sequence's items, throwing an exception if the object does not hold a sequence of items of type . - - The expected item type of the sequence. - - The sequence and an describing its items. - - Thrown when the item type is not the expected type . - - - - Gets the current sequence for the operation. If the object is used as input, this - holds the input sequence for the operation. If the object is used as output, this holds the result of the operation. - - The current sequence. - - - - Describes sequence data streamed out of a or . Sequence data can be held by an object - implementing , and its items are described via a . - - - - - Returns a new with an adjusted . - - The type to use for the property. The type must be convertible from the previous type, otherwise - an exception is thrown. The type may be a generic type definition; in this case, - the type definition is automatically closed with the type of the . - - A new with a new . - - The is not compatible with the items described by this - . - - - - Takes the given and instantiates it, substituting its generic parameter with the - item type of the sequence described by this object. The method must have exactly one generic parameter. - - The generic method definition to instantiate. - - A closed generic instantiation of with this object's item type substituted for - the generic parameter. - - - - - Gets the type of the items returned by the sequence described by this object, as defined by . Note that because - is covariant starting from .NET 4.0, this may be a more abstract type than what's returned by - 's property. - - - - - Gets an expression that describes the structure of the items held by the sequence described by this object. - - The expression for the sequence's items. - - - - Gets the type of the data described by this instance. This is a type implementing - , where T is instantiated with a concrete type. - - - - - Describes a single value streamed out of a or . A single value corresponds to one - item from the result set, as produced by or , for instance. - - - - - Holds the data needed to represent the output or input of a part of a query in memory. This is mainly used for - . The data is a single, non-sequence value and can only be consumed by result operators - working with single values. - - - - - Initializes a new instance of the class, setting the and properties. - - The value. - A describing the value. - - - - Gets the value held by , throwing an exception if the value is not of type . - - The expected type of the value. - , cast to . - Thrown when if not of the expected type. - - - - Gets an object describing the data held by this instance. - - - An object describing the data held by this instance. - - - - - Gets the current value for the operation. If the object is used as input, this - holds the input value for the operation. If the object is used as output, this holds the result of the operation. - - The current value. - - - - Constructs a that is able to extract a specific simple expression from a complex - or . - - - - For example, consider the task of determining the value of a specific query source [s] from an input value corresponding to a complex - expression. This will return a able to perform this task. - - - - If the complex expression is [s], it will simply return input => input. - If the complex expression is new { a = [s], b = "..." }, it will return input => input.a. - If the complex expression is new { a = new { b = [s], c = "..." }, d = "..." }, it will return input => input.a.b. - - - - - - - Constructs a that is able to extract a specific simple from a - complex . - - The expression an accessor to which should be created. - The full expression containing the . - The input parameter to be used by the resulting lambda. Its type must match the type of . - The compares the via reference equality, - which means that exactly the same expression reference must be contained by for the visitor to return the - expected result. In addition, the visitor can only provide accessors for expressions nested in or - . - A acting as an accessor for the when an input matching - is given. - - - - - Represents the join part of a query, adding new data items and joining them with data items from previous clauses. In contrast to - , the does not provide access to the individual items of the joined query source. - Instead, it provides access to all joined items for each item coming from the previous clauses, thus grouping them together. The semantics - of this join is so that for all input items, a joined sequence is returned. That sequence can be empty if no joined items are available. - - - In C#, the "into" clause in the following sample corresponds to a . The "join" part before that is encapsulated - as a held in . The adds a new query source to the query - ("addresses"), but the item type of that query source is , not "Address". Therefore, it can be - used in the of an to extract the single items. - - var query = from s in Students - join a in Addresses on s.AdressID equals a.ID into addresses - from a in addresses - select new { s, a }; - - - - - - Transforms all the expressions in this clause and its child objects via the given delegate. - - The transformation object. This delegate is called for each within this - clause, and those expressions will be replaced with what the delegate returns. - - - - Accepts the specified visitor by calling its method. - - The visitor to accept. - The query model in whose context this clause is visited. - The index of this clause in the 's collection. - - - - Clones this clause, registering its clone with the . - - The clones of all query source clauses are registered with this . - A clone of this clause. - - - - Gets or sets a name describing the items generated by this . - - - Item names are inferred when a query expression is parsed, and they usually correspond to the variable names present in that expression. - However, note that names are not necessarily unique within a . Use names only for readability and debugging, not for - uniquely identifying objects. To match an with its references, use the - property rather than the . - - - - - Gets or sets the type of the items generated by this . This must implement . - - - Changing the of a can make all objects that - point to that invalid, so the property setter should be used with care. - - - - - Gets or sets the inner join clause of this . The represents the actual join operation - performed by this clause; its results are then grouped by this clause before streaming them to subsequent clauses. - objects outside the must not point to - because the items generated by it are only available in grouped form from outside this clause. - - - - - Maps instances to instances. This is used by - in order to be able to correctly update references to old clauses to point to the new clauses. Via - and , it can also be used manually. - - - - - Visits an tree, replacing all instances with references to cloned clauses, - as defined by a . In addition, all instances in - SubQueryExpressions are cloned, and their references also replaces. All referenced clauses must be mapped - to cloned clauses in the given , otherwise an expression is thrown. This is used by - to adjust references to the old with references to the new . - - - - - Takes an expression and replaces all instances, as defined by a given . - This is used whenever references to query sources should be replaced by a transformation. - - - - - Takes an expression and replaces all instances, as defined by a given - . - - The expression to be scanned for references. - The clause mapping to be used for replacing instances. - If , the visitor will throw an exception when - not mapped in the is encountered. If , - the visitor will ignore such expressions. - An expression with its instances replaced as defined by the - . - - - - Adjusts the given expression for cloning, that is replaces and - instances. All referenced clauses must be mapped to clones in the given , otherwise an exception is thrown. - - The expression to be adjusted. - The clause mapping to be used for replacing instances. - An expression with all and instances replaced - as required by a operation. - - - - Represents a calculation of an average value from the items returned by a query. - This is a result operator, operating on the whole result set of a query. - - - In C#, the "Average" call in the following example corresponds to an . - - var query = (from s in Students - select s.ID).Average(); - - - - - - - - - Represents a cast of the items returned by a query to a different type. - This is a result operator, operating on the whole result set of a query. - - - In C#, "Cast" call in the following example corresponds to a . - - var query = (from s in Students - select s.ID).Cast<int>(); - - - - - - - - - Represents a check whether the results returned by a query contain a specific item. - This is a result operator, operating on the whole result set of a query. - - - In C#, the "Contains" call in the following example corresponds to a . - - var query = (from s in Students - select s).Contains (student); - - - - - - Initializes a new instance of the class. - - The item for which to be searched. - - - - Gets the constant value of the property, assuming it is a . If it is - not, an is thrown. - - The expected item type. If the item is not of this type, an is thrown. - The constant value of the property. - - - - Gets or sets an expression yielding the item for which to be searched. This must be compatible with (ie., assignable to) the source sequence - items. - - The item expression. - - - - Represents a guard clause yielding a singleton sequence with a default value if no items are returned by a query. - This is a result operator, operating on the whole result set of a query. - - - In C#, the "Defaultifempty" call in the following example corresponds to a . - - var query = (from s in Students - select s).DefaultIfEmpty ("student"); - - - - - - Gets the constant value of the property, assuming it is a . If it is - not, an expression is thrown. If it is , is returned. - - The constant value of the property. - - - - Gets or sets the optional default value. - - The optional default value. - - - - Represents the removal of a given set of items from the result set of a query. - This is a result operator, operating on the whole result set of a query. - - - In C#, the "Except" call in the following example corresponds to a . - - var query = (from s in Students - select s).Except(students2); - - - - - - Gets the value of , assuming holds a . If it doesn't, - an exception is thrown. - - The constant value of . - - - - Gets or sets the second source of this result operator, that is, an enumerable containing the items removed from the input sequence. - - - - - Represents taking the mathematical intersection of a given set of items and the items returned by a query. - This is a result operator, operating on the whole result set of a query. - - - In C#, the "Intersect" call in the following example corresponds to a . - - var query = (from s in Students - select s).Intersect(students2); - - - - - - Gets the value of , assuming holds a . If it doesn't, - an Intersection is thrown. - - The constant value of . - - - - Gets or sets the second source of this result operator, that is, an enumerable containing the items intersected with the input sequence. - - - - - Represents counting the number of items returned by a query as a 64-bit number. - This is a result operator, operating on the whole result set of a query. - - - "LongCount" query methods taking a predicate are represented as a combination of a and a - . - - - In C#, the "LongCount" call in the following example corresponds to a . - - var query = (from s in Students - select s).LongCount(); - - - - - - - - - Represents filtering the items returned by a query to only return those items that are of a specific type. - This is a result operator, operating on the whole result set of a query. - - - In C#, the "OfType" call in the following example corresponds to a . - - var query = (from s in Students - select s.ID).OfType<int>(); - - - - - - - - - Represents reversing the sequence of items returned by of a query. - This is a result operator, operating on the whole result set of a query. - - - In C#, the "Reverse" call in the following example corresponds to a . - - var query = (from s in Students - select s).Reverse(); - - - - - - - - - Represents skipping a number of the items returned by a query. - This is a result operator, operating on the whole result set of a query. - - - In C#, the "Skip" call in the following example corresponds to a . - - var query = (from s in Students - select s).Skip (3); - - - - - - Gets the constant value of the property, assuming it is a . If it is - not, an expression is thrown. - - The constant value of the property. - - - - Represents calculating the sum of the items returned by a query. - This is a result operator, operating on the whole result set of a query. - - - In C#, the "Sum" call in the following example corresponds to a . - - var query = (from s in Students - select s.ID).Sum(); - - - - - - - - - Represents taking only the greatest one of the items returned by a query. - This is a result operator, operating on the whole result set of a query. - - - The semantics of "greatest" are defined by the query provider. "Max" query methods taking a selector are represented as a combination - of a and a . - - - In C#, the "Max" call in the following example corresponds to a . - - var query = (from s in Students - select s.ID).Max(); - - - - - - Initializes a new instance of the . - - - - - - - - Represents taking only the smallest one of the items returned by a query. - This is a result operator, operating on the whole result set of a query. - - - The semantics of "smallest" are defined by the query provider. "Min" query methods taking a selector are represented as a combination - of a and a . - - - In C#, the "Min" call in the following example corresponds to a . - - var query = (from s in Students - select s.ID).Min(); - - - - - - Initializes a new instance of the . - - - - - - - - Represents taking only the last one of the items returned by a query. - This is a result operator, operating on the whole result set of a query. - - - "Last" query methods taking a predicate are represented as a combination of a and a . - - - In C#, the "Last" call in the following example corresponds to a . - - var query = (from s in Students - select s).Last(); - - - - - - Initializes a new instance of the . - - The flag defines if a default expression should be regarded. - - - - - - - Represents taking only a specific number of items returned by a query. - This is a result operator, operating on the whole result set of a query. - - - In C#, the "Take" call in the following example corresponds to a . - - var query = (from s in Students - select s).Take(3); - - - - - - Initializes a new instance of the . - - The number of elements which should be returned. - - - - Gets the constant value of the property, assuming it is a . If it is - not, an expression is thrown. - - The constant value of the property. - - - - Represents taking only the first of the items returned by a query. - This is a result operator, operating on the whole result set of a query. - - - "First" query methods taking a predicate are represented as a combination of a and a . - - - In C#, the "First" call in the following example corresponds to a . - - var query = (from s in Students - select s).First(); - - - - - - Initializes a new instance of the . - - The flag defines if a default expression should be regarded. - - - - - - - Represents taking the single item returned by a query. - This is a result operator, operating on the whole result set of a query. - - - In C#, the "Single" call in the following example corresponds to a . - - var query = (from s in Students - select s).Single(); - - - - - - Initializes a new instance of the . - - The flag defines if a default expression should be regarded. - - - - - - - Represents the removal of duplicate values from the items returned by a query. - This is a result operator, operating on the whole result set of a query. - - - In C#, the "Distinct" call in the following example corresponds to a . - - var query = (from s in Students - select s).Distinct(); - - - - - - - - - Represents counting the number of items returned by a query. - This is a result operator, operating on the whole result set of a query. - - - "Count" query methods taking a predicate are represented as a combination of a and a . - /// - In C#, the "Count" call in the following example corresponds to a . - - var query = (from s in Students - select s).Count(); - - - - - - - - - Represents forming the mathematical union of a given set of items and the items returned by a query. - This is a result operator, operating on the whole result set of a query. - - - In C#, the "Union" call in the following example corresponds to a . - - var query = (from s in Students - select s).Union(students2); - - - - - - Gets the value of , assuming holds a . If it doesn't, - an Exception is thrown. - - The constant value of . - - - - Gets or sets the second source of this result operator, that is, an enumerable containing the items united with the input sequence. - - - - - Provides a way to enumerate an while items are inserted, removed, or cleared in a consistent fashion. - - The element type of the . - - This class subscribes to the events exposed by and reacts on changes to the collection. - If an item is inserted or removed before the current element, the enumerator will continue after the current element without - regarding the new or removed item. If the current item is removed, the enumerator will continue with the item that previously followe the - current item. If an item is inserted or removed after the current element, the enumerator will simply continue, including the newly inserted - item and not including the removed item. - - - - - Provides an implementation of that allows storing multiple values per key. The multiple values - are represented as an of value. Access to a key without values returns an empty . - - The type of the keys of the values to be stored. - The type of the values to be stored. - - - - Extends with events that indicate when the collection was changed. - - The type of items held by this . - - - - Returns an instance of that represents this collection and can be enumerated even while the collection changes; - the enumerator will adapt to the changes (see ). - - - - - Returns an instance of that represents this collection and can be enumerated even while the collection changes; - the enumerator will adapt to the changes (see ). The enumerable will yield - instances of type , which hold both the index and the value of the current item. If this collection changes - while enumerating, will reflect those changes. - - - - - Occurs after the items of this have been cleared. - - - - - Occurs after an item has been removed from this . It does not occur when an item is replaced, in this - case the event is raised. - - - - - Occurs after an item has been added to this . It does not occur when an item is replaced, in this - case the event is raised. - - - - - Occurs after an item has been set at a specific index of this . - - - - - Represents an item enumerated by . This provides access - to the as well as the of the enumerated item. - - - - - Gets the index of the current enumerated item. Can only be called while enumerating, afterwards, it will throw an - . If an item is inserted into or removed from the collection before the current item, this - index will change. - - - - - Gets the value of the current enumerated item. Can only be called while enumerating, afterwards, it will throw an - . - - The value. - - - - Provides event data for 's events. - - The type of the items managed by the . - - - - Represents a default implementation of that is automatically used by - unless a custom is specified. The executes queries by parsing them into - an instance of type , which is then passed to an implementation of to obtain the - result set. - - - - - Provides a default implementation of that executes queries (subclasses of ) by - first parsing them into a and then passing that to a given implementation of . - Usually, should be used unless must be manually implemented. - - - - - Initializes a new instance of using a custom . Use this - constructor to customize how queries are parsed. - - The used to parse queries. Specify an instance of - for default behavior. - The used to execute queries against a specific query backend. - - - - Constructs an object that can evaluate the query represented by a specified expression tree. This - method delegates to . - - An expression tree that represents a LINQ query. - - An that can evaluate the query represented by the specified expression tree. - - - - - Constructs an object that can evaluate the query represented by a specified expression tree. This method is - called by the standard query operators defined by the class. - - An expression tree that represents a LINQ query. - - An that can evaluate the query represented by the specified expression tree. - - - - - Executes the query defined by the specified expression by parsing it with a - and then running it through the . - This method is invoked through the interface methods, for example by - and - , and it's also used by - when the is enumerated. - - - Override this method to replace the query execution mechanism by a custom implementation. - - - - - Executes the query defined by the specified expression by parsing it with a - and then running it through the . - The result is cast to . - - The type of the query result. - The query expression to be executed. - The result of the query cast to . - - This method is called by the standard query operators that return a single value, such as - or - . - In addition, it is called by to execute queries that return sequences. - - - - - Executes the query defined by the specified expression by parsing it with a - and then running it through the . - - The query expression to be executed. - The result of the query. - - This method is similar to the method, but without the cast to a defined return type. - - - - - The method generates a . - - The query as expression chain. - a - - - - Gets the used by this to parse LINQ queries. - - The query parser. - - - - Gets or sets the implementation of used to execute queries created via . - - The executor used to execute queries. - - - - Initializes a new instance of using a custom . - - - A type implementing . This type is used to construct the chain of query operators. Must be a generic type - definition. - - The used to parse queries. Specify an instance of - for default behavior. See also . - The used to execute queries against a specific query backend. - - - - Creates a new (of type with as its generic argument) that - represents the query defined by and is able to enumerate its results. - - The type of the data items returned by the query. - An expression representing the query for which a should be created. - An that represents the query defined by . - - - - Gets the type of queryable created by this provider. This is the generic type definition of an implementation of - (usually a subclass of ) with exactly one type argument. - - - - - Visits a , removing all instances from its - collection and returning objects for them. - - - Note that this visitor does not remove fetch requests from sub-queries. - - - - - Provides a default implementation of which automatically visits child items. That is, the default - implementation of automatically calls Accept on all clauses in the - and the default implementation of automatically calls on the - instances in its collection, and so on. - - - This visitor is hardened against modifications performed on the visited while the model is currently being visited. - That is, if a the collection changes while a body clause (or a child item of a body clause) is currently - being processed, the visitor will handle that gracefully. The same applies to and - . - - - - - Defines an interface for visiting the clauses of a . - - - - When implement this interface, implement , then call Accept on every clause that should - be visited. Child clauses, joins, orderings, and result operators are not visited automatically; they always need to be explicitly visited - via , , , - , and so on. - - - provides a robust default implementation of this interface that can be used as a base for other visitors. - - - - - - Holds a , a for which the fetch request was created, and the position - where the occurred in the list of the . From - this information, it builds a new that represents the as a query. - - - Use to retrieve the instances for a . - - - - - Initializes a new instance of the class. - - The fetch request. - The query model for which the was originally defined. - The result operator position where the was originally located. - The will include all result operators prior to this position into the fetch , - but it will not include any result operators occurring after (or at) that position. - - - - Creates the fetch query model for the , caching the result. - - - A new which represents the same query as but selecting - the objects described by instead of the objects selected by the - . From the original , only those result operators are included that occur - prior to . - - - - - Creates objects for the of the - . Inner fetch requests start from the fetch query model of the outer fetch request, and they have - a of 0. - - An array of objects for the of the - . - - - - Provides common functionality for and . - - - - - Provides common functionality used by all expression nodes representing fetch operations. - - - - - Acts as a base class for s standing for s that operate on the result of the query - rather than representing actual clauses, such as or . - - - - - Base class for implementations that represent instantiations of . - - - - - Interface for classes representing structural parts of an tree. - - - - - Resolves the specified by replacing any occurrence of - by the result of the projection of this . The result is an that goes all the - way to an . - - The parameter representing the input data streaming into an . This is replaced - by the projection data coming out of this . - The expression to be resolved. Any occurrence of in this expression - is replaced. - Context information used during the current parsing process. This structure maps - s to the clauses created from them. Implementers that also implement - (such as or ) must add - their clauses to the mapping in if they want to be able to implement correctly. - An equivalent of with each occurrence of replaced by - the projection data streaming out of this . - - This node does not support this operation because it does not stream any data to subsequent nodes. - - - - - Applies this to the specified query model. Nodes can add or replace clauses, add or replace expressions, - add or replace objects, or even create a completely new , depending on their semantics. - - The query model this node should be applied to. - Context information used during the current parsing process. This structure maps - s to the clauses created from them. Implementers that - also implement (such as - or ) must add their clauses to the mapping in - in order to be able to implement correctly. - The modified or a new that reflects the changes made by this node. - - For objects, which mark the end of an chain, this method must not be called. - Instead, use to generate a and instantiate a new - with that clause. - - - - - Gets the source that streams data into this node. - - The source , or if this node is the end of the chain. - - - - Gets the identifier associated with this . tries to find the identifier - that was originally associated with this node in the query written by the user by analyzing the parameter names of the next expression in the - method call chain. - - The associated identifier. - - - - Gets the from a given that has to wrap a . - If the method is a generic method, its open generic method definition is returned. - This method can be used for registration of the node type with an . - - - The method call. - - - - - Wraps the into a subquery after a node that indicates the end of the query ( - or ). Override this method - when implementing a that does not need a subquery to be created if it occurs after the query end. - - - - When an ordinary node follows a result operator or group node, it cannot simply append its clauses to the - because semantically, the result operator (or grouping) must be executed _before_ the clause. Therefore, in such scenarios, we wrap - the current query model into a that we put into the of a new - . - - - This method also changes the of this node because logically, all operations must be handled - by the new holding the . For example, consider the following call chain: - - MainSource (...) - .Select (x => x) - .Distinct () - .Select (x => x) - - - Naively, the last Select node would resolve (via Distinct and Select) to the created by the initial MainSource. - After this method is executed, however, that is part of the sub query, and a new - has been created to hold it. Therefore, we replace the chain as follows: - - MainSource (MainSource (...).Select (x => x).Distinct ()) - .Select (x => x) - - - Now, the last Select node resolves to the new . - - - - - - Sets the result type override of the given . - - The query model to set the of. - - By default, the result type override is set to in the method. This ensures that the query - model represents the type of the query correctly. Specific node parsers can override this method to set the - to another value, or to clear it (set it to ). Do not leave the - unchanged when overriding this method, as a source node might have set it to a value that doesn't - fit this node. - - - - - Provides common functionality for and . - - - - - Parses query operators that instruct the LINQ provider to fetch a collection-valued relationship starting from another fetch operation. The node - creates instances and attaches them to the preceding fetch operation (unless the previous fetch operation already - has an equivalent fetch request). - - - This class is not automatically configured for any query operator methods. LINQ provider implementations must explicitly provide and register - these methods in order for to be used. See also . - - - - - Parses query operators that instruct the LINQ provider to fetch an object-valued relationship starting from another fetch operation. The node - creates instances and attaches them to the preceding fetch operation (unless the previous fetch operation already - has an equivalent fetch request). - - - This class is not automatically configured for any query operator methods. LINQ provider implementations must explicitly provide and register - these methods in order for to be used. See also . - - - - - Parses query operators that instruct the LINQ provider to fetch a collection-valued relationship starting from the values selected by the query. - The node creates instances and adds them to the as - (unless the already has an equivalent fetch request). - - - This class is not automatically configured for any query operator methods. LINQ provider implementations must explicitly provide and register - these methods in order for to be used. See also . - - - - - Parses query operators that instruct the LINQ provider to fetch an object-valued relationship starting from the values selected by the query. - The node creates instances and adds them to the as - (unless the already has an equivalent fetch request). - - - This class is not automatically configured for any query operator methods. LINQ provider implementations must explicitly provide and register - these methods in order for to be used. See also . - - - - - Replaces nodes according to a given mapping specification. Expressions are also replaced within subqueries; the - is changed by the replacement operations, it is not copied. The replacement node is not recursively searched for - occurrences of nodes to be replaced. - - - - - Wraps an exception whose partial evaluation caused an exception. - - - - When encounters an exception while evaluating an independent expression subtree, it - will wrap the subtree within a . The wrapper contains both the - instance and the that caused the exception. - - - To explicitly support this expression type, implement . - To ignore this wrapper and only handle the inner , call the method and visit the result. - - - Subclasses of that do not implement will, - by default, automatically reduce this expression type to the in the - method. - - - Subclasses of that do not implement will, - by default, ignore this expression and visit its child expressions via the and - methods. - - - - - - Transforms a given . If the can handle the , - it should return a new, transformed instance. Otherwise, it should return the input - instance. - - The expression to be transformed. - The result of the transformation, or if no transformation was applied. - - - - Manages registration and lookup of objects, and converts them to - weakly typed instances. Use this class together with - in order to apply the registered transformers to an tree. - - - - - defines an API for classes returning instances for specific - objects. Usually, the will be used when an implementation of this - interface is needed. - - - - - Gets the transformers for the given . - - The to be transformed. - - A sequence containing objects that should be applied to the . Must not - be . - - - - - Creates an with the default transformations provided by this library already registered. - New transformers can be registered by calling . - - A default . - - Currently, the default registry contains: - - - - - - - - - - - - - - Registers the specified for the transformer's - . If - returns , the is registered as a generic transformer which will be applied to all - nodes. - - The type of expressions handled by the . This should be a type implemented by all - expressions identified by . For generic transformers, - must be . - The transformer to register. - - - The order in which transformers are registered is the same order on which they will later be applied by - . When more than one transformer is registered for a certain , - each of them will get a chance to transform a given , until the first one returns a new . - At that point, the transformation will start again with the new (and, if the expression's type has changed, potentially - different transformers). - - - When generic transformers are registered, they act as if they had been registered for all values (including - custom ones). They will be applied in the order registered, but only after all respective specific transformers have run (without modifying - the expression, which would restart the transformation process with the new expression as explained above). - - - When an is registered for an incompatible , this is not detected until - the transformer is actually applied to an of that . - - - - - - Dynamically discovers attributes implementing the interface on methods and get accessors - invoked by or instances and applies the respective - . - - - - - is implemented by classes that transform instances. The - manages registration of instances, and the - applies the transformations. - - The type of expressions handled by this implementation. - - - is a convenience interface that provides strong typing, whereas - only operates on instances. - - - can be used together with the class by using the - class as the transformation provider. converts - strongly typed instances to weakly typed delegate instances. - - - - - - Transforms a given . If the implementation can handle the , - it should return a new, transformed instance. Otherwise, it should return the input - instance. - - The expression to be transformed. - The result of the transformation, or if no transformation was applied. - - - - Gets the expression types supported by this . - - The supported expression types. Return to support all expression types. (This is only sensible when - is .) - - - - - Defines an interface for attributes providing an for a given . - - - - detects attributes implementing this interface while expressions are parsed - and uses the returned by to modify the expressions. - - - Only one attribute instance implementing must be applied to a single method or property - get accessor. - - - - - - Chooses a given for a specific method (or property get accessor). - - - The must have a default constructor. To choose a transformer that does not have a default constructor, - create your own custom attribute class implementing - . - - - - - Detects nodes for the .NET tuple types and adds metadata to those nodes. - This allows LINQ providers to match member access and constructor arguments more easily. - - - - - Provides a base class for transformers detecting nodes for tuple types and adding metadata - to those nodes. This allows LINQ providers to match member access and constructor arguments more easily. - - - - - Detects nodes for and adds metadata to those nodes. - This allows LINQ providers to match member access and constructor arguments more easily. - - - - - Detects expressions invoking a and replaces them with the body of that - (with the parameter references replaced with the invocation arguments). - Providers use this transformation to be able to handle queries with instances. - - - When the is applied to a delegate instance (rather than a - ), the ignores it. - - - - - Detects nodes for and adds metadata to those nodes. - This allows LINQ providers to match member access and constructor arguments more easily. - - - - - Replaces calls to and with casts and null checks. This allows LINQ providers - to treat nullables like reference types. - - - - - Detects expressions calling the CompareString method used by Visual Basic .NET, and replaces them with - instances. Providers use this transformation to be able to handle VB string comparisons - more easily. See for details. - - - - - Detects expressions calling the Information.IsNothing (...) method used by Visual Basic .NET, and replaces them with - instances comparing with . Providers use this transformation to be able to - handle queries using IsNothing (...) more easily. - - - - - Analyzes an expression tree by visiting each of its nodes, finding those subtrees that can be evaluated without modifying the meaning of - the tree. - - - An expression node/subtree is evaluatable if: - - it is not a or any non-standard expression, - it is not a that involves an , and - it does not have any of those non-evaluatable expressions as its children. - - nodes are not evaluatable because they usually identify the flow of - some information from one query node to the next. - nodes that involve parameters or object instances are not evaluatable because they - should usually be translated into the target query syntax. - Non-standard expressions are not evaluatable because they cannot be compiled and evaluated by LINQ. - - - - - Implements by storing a list of inner instances. - The and methods delegate to these inner instances. This is an - implementation of the Composite Pattern. - - - - - Provides a common interface for classes mapping a to the respective - type. Implementations are used by when a is encountered to - instantiate the right for the given method. - - - - - Determines whether a node type for the given can be returned by this - . - - - - - Gets the type of that matches the given , returning - if none can be found. - - - - - Implements by storing a list of inner instances. - The method calls each inner instance in the order defined by the property. This is an - implementation of the Composite Pattern. - - - - - is implemented by classes that represent steps in the process of parsing the structure - of an tree. applies a series of these steps to the - tree before analyzing the query operators and creating a . - - - - There are predefined implementations of that should only be left out when parsing an - tree when there are very good reasons to do so. - - - can be implemented to provide custom, complex transformations on an - tree. For performance reasons, avoid adding too many steps each of which visits the whole tree. For - simple transformations, consider using and - which can - batch several transformations into a single expression tree visiting run - rather than implementing a dedicated - . - - - - - - Implements the interface by doing nothing in the method. This is an - implementation of the Null Object Pattern. - - - - - Maps the objects used in objects to the respective - types based on the method names and a filter (as defined by ). - This is used by when a is encountered to instantiate the right - for the given method. - - - - - Creates a and automatically registers all types implementing - from a given type sequence that offer a public static SupportedMethodNames field. - - A with all types with a SupportedMethodNames - field registered. - - - - Registers the given for the query operator methods defined by the given - objects. - - A sequence of objects defining the methods to register the node type for. - The type of the to register. - - - - Determines whether the specified method was registered with this . - - - - - Gets the type of registered with this instance that - matches the given , returning if none can be found. - - - - - Returns the count of the registered method names. - - - - - Applies a given set of transformations to an tree. The transformations are provided by an instance of - (eg., ). - - - The uses the to apply the transformations. - It performs a single visiting run over the tree. - - - - - Initializes a new instance of the class. - - A class providing the transformations to apply to the tree, eg., an instance of - . - - - - Analyzes an tree for sub-trees that are evaluatable in-memory, and evaluates those sub-trees. - - - The uses the for partial evaluation. - It performs two visiting runs over the tree. - - - - - Represents a for the - and methods. - It is generated by when an tree is parsed. - When this node is used, it marks the beginning (i.e. the last node) of an chain that represents a query. - - - - - Represents a for the different overloads of . - It is generated by when an tree is parsed. - When this node is used, it marks the beginning (i.e. the last node) of an chain that represents a query. - - - - - Encapsulates contextual information used while generating clauses from instances. - - - - - Represents a for and - . - It is generated by when an tree is parsed. - When this node is used, it marks the beginning (i.e. the last node) of an chain that represents a query. - - - - - Represents a for the , - , - , and - methods. - It is generated by when an tree is parsed. - When this node is used, it marks the beginning (i.e. the last node) of an chain that represents a query. - - - - - Represents a for the - and - methods. - It is generated by when an tree is parsed. - When this node is used, it marks the beginning (i.e. the last node) of an chain that represents a query. - - - - - Represents a for the - , , - , and - methods. - It is generated by when an tree is parsed. - When this node is used, it marks the beginning (i.e. the last node) of an chain that represents a query. - - - - - Represents a for the different - overloads that do take a result selector. The overloads without a result selector are represented by - . - It is generated by when an tree is parsed. - - - The GroupBy overloads with result selector are parsed as if they were a following a - : - - x.GroupBy (k => key, e => element, (k, g) => result) - - is therefore equivalent to: - - c.GroupBy (k => key, e => element).Select (grouping => resultSub) - - where resultSub is the same as result with k and g substituted with grouping.Key and grouping, respectively. - - - - - Represents a for - . - It is generated by when an tree is parsed. - - - - - Represents a for and - and - and - - It is generated by when an tree is parsed. - When this node is used, it usually follows (or replaces) a of an chain that - represents a query. - - - - - Represents a for - . - It is generated by when an tree is parsed. - When this node is used, it usually follows (or replaces) a of an chain that - represents a query. - - - - - Thrown whan an parser cannot be instantiated for a query. - - - - - Resolves an expression using , removing transparent identifiers and detecting subqueries - in the process. This is used by methods such as , which are - used when a clause is created from an . - - - - - Represents a for the different - overloads that do not take a result selector. The overloads with a result selector are represented by - . - It is generated by when an tree is parsed. - - - - - Represents a for - - or - It is generated by when an tree is parsed. - - - - - Represents a for - . - It is generated by when an tree is parsed. - When this node is used, it usually follows (or replaces) a of an chain that - represents a query. - - - - - Represents a for - - or . - It is generated by when an tree is parsed. - - - - - Represents a for , - , - and for the property of arrays. - It is generated by when an tree is parsed. - When this node is used, it marks the beginning (i.e. the last node) of an chain that represents a query. - - - - - Represents a for - and . - It is generated by when an tree is parsed. - - - - - Provides common functionality used by implementors of . - - - - - Replaces the given parameter with a back-reference to the corresponding to . - - The referenced node. - The parameter to replace with a . - The expression in which to replace the parameter. - The clause generation context. - , with replaced with a - pointing to the clause corresponding to . - - - - Gets the corresponding to the given , throwing an - if no such clause has been registered in the given . - - The node for which the should be returned. - The clause generation context. - The corresponding to . - - - - Caches a resolved expression in the classes. - - - - - Represents a for . - It is generated by when an tree is parsed. - When this node is used, it usually follows (or replaces) a of an chain that - represents a query. - - - - - Represents a for - It is generated by when an tree is parsed. - When this node is used, it usually follows (or replaces) a of an chain that - represents a query. - - - - - Represents a for - . - It is generated by when an tree is parsed. - When this node is used, it usually follows (or replaces) a of an chain that - represents a query. - - - - - Represents a for - . - It is generated by when an tree is parsed. - - - - - Contains metadata about a that is parsed into a . - - - - - Gets the associated identifier, i.e. the name the user gave the data streaming out of this expression. For example, the - corresponding to a from c in C clause should get the identifier "c". - If there is no user-defined identifier (or the identifier is impossible to infer from the expression tree), a generated identifier - is given instead. - - - - - Gets the source expression node, i.e. the node streaming data into the parsed node. - - The source. - - - - Gets the being parsed. - - - - - is implemented by classes taking an tree and parsing it into a . - - - The default implementation of this interface is . LINQ providers can, however, implement - themselves, eg. in order to decorate or replace the functionality of . - - - - - Gets the of the given . - - The expression tree to parse. - A that represents the query defined in . - - - - Defines a name and a filter predicate used when determining the matching expression node type by . - - - - - Implements an that throws an exception for every expression type that is not explicitly supported. - Inherit from this class to ensure that an exception is thrown when an expression is passed - - - - - Called when an unhandled item is visited. This method provides the item the visitor cannot handle (), - the that is not implemented in the visitor, and a delegate that can be used to invoke the - of the class. The default behavior of this method is to call the - method, but it can be overridden to do something else. - - The type of the item that could not be handled. Either an type, a - type, or . - The result type expected for the visited . - The unhandled item. - The visit method that is not implemented. - The behavior exposed by for this item type. - An object to replace in the expression tree. Alternatively, the method can throw any exception. - - - - can be used to build tuples incorporating a sequence of s. - For example, given three expressions, exp1, exp2, and exp3, it will build nested s that are equivalent to the - following: new KeyValuePair(exp1, new KeyValuePair(exp2, exp3)). - Given an whose type matches that of a tuple built by , the builder can also return - an enumeration of accessor expressions that can be used to access the tuple elements in the same order as they were put into the nested tuple - expression. In above example, this would yield tupleExpression.Key, tupleExpression.Value.Key, and tupleExpression.Value.Value. - This class can be handy whenever a set of needs to be put into a single - (eg., a select projection), especially if each sub-expression needs to be explicitly accessed at a later point of time (eg., to retrieve the - items from a statement surrounding a sub-statement yielding the tuple in its select projection). - - - - - Collects clauses and creates a from them. This provides a simple way to first add all the clauses and then - create the rather than the two-step approach (first and , - then the s) required by 's constructor. - - - - - Transforms an expression tree into a human-readable string, taking all the custom expression nodes into account. - It does so by replacing all instances of custom expression nodes by parameters that have the desired string as their names. This is done - to circumvent a limitation in the class, where overriding in custom expressions - will not work. - - - - - Takes a and transforms it by replacing its instances ( and - ) that contain subqueries with equivalent flattened clauses. Subqueries that contain a - (such as or ) cannot be - flattened. - - - As an example, take the following query: - - from c in Customers - from o in (from oi in OrderInfos where oi.Customer == c orderby oi.OrderDate select oi.Order) - orderby o.Product.Name - select new { c, o } - - This will be transformed into: - - from c in Customers - from oi in OrderInfos - where oi.Customer == c - orderby oi.OrderDate - orderby oi.Order.Product.Name - select new { c, oi.Order } - - As another example, take the following query: - - from c in (from o in Orders select o.Customer) - where c.Name.StartsWith ("Miller") - select c - - (This query is never produced by the , the only way to construct it is via manually building a - .) - This will be transforemd into: - - from o in Orders - where o.Customer.Name.StartsWith ("Miller") - select o - - - - - - Applies delegates obtained from an to an expression tree. - The transformations occur in post-order (transforming child nodes before parent nodes). When a transformation changes - the current , its child nodes and itself will be revisited (and may be transformed again). - - - - - Generates unique identifiers based on a set of known identifiers. - An identifier is generated by appending a number to a given prefix. The identifier is considered unique when no known identifier - exists which equals the prefix/number combination. - - - - - Adds the given to the set of known identifiers. - - The identifier to add. - - - - Gets a unique identifier starting with the given . The identifier is generating by appending a number to the - prefix so that the resulting string does not match a known identifier. - - The prefix to use for the identifier. - A unique identifier starting with . - - - - Represents a property holding one object that should be eager-fetched when a query is executed. - - - - - Base class for classes representing a property that should be eager-fetched when a query is executed. - - - - - Gets a the fetch query model, i.e. a new that incorporates a given as a - and selects the fetched items from it. - - A that yields the source items for which items are to be fetched. - A that selects the fetched items from as a subquery. - - This method does not clone the , remove result operatores, etc. Use - (via ) for the full algorithm. - - - - - Modifies the given query model for fetching, adding new instances and changing the - as needed. - This method is called by in the process of creating the new fetch query model. - - The fetch query model to modify. - - - - Gets or adds an inner eager-fetch request for this . - - The to be added. - - or, if another for the same relation member already existed, - the existing . - - - - - Gets the of the relation member whose contained object(s) should be fetched. - - The relation member. - - - - Gets the inner fetch requests that were issued for this . - - The fetch requests added via . - - - - Modifies the given query model for fetching, changing the to the fetch source expression. - For example, a fetch request such as FetchOne (x => x.Customer) will be transformed into a selecting - y.Customer (where y is what the query model originally selected). - This method is called by in the process of creating the new fetch query model. - - - - - - - - - - - Represents a relation collection property that should be eager-fetched by means of a lambda expression. - - - - - Modifies the given query model for fetching, adding an and changing the to - retrieve the result of the . - For example, a fetch request such as FetchMany (x => x.Orders) will be transformed into a selecting - y.Orders (where y is what the query model originally selected) and a selecting the result of the - . - This method is called by in the process of creating the new fetch query model. - - - - - - - - - - - Holds a number of instances keyed by the instances representing the relation members - to be eager-fetched. - - - - - Gets or adds an eager-fetch request to this . - - The to be added. - - or, if another for the same relation member already existed, - the existing . - - - - - Specifies the direction used to sort the result items in a query using an . - - - - - Sorts the items in an ascending way, from smallest to largest. - - - - - Sorts the items in an descending way, from largest to smallest. - - - - - Represents an that holds a subquery. The subquery is held by in its parsed form. - - - - - Provides a fluent interface to recursively fetch related objects of objects which themselves are eager-fetched. All query methods - are implemented as extension methods. - - The type of the objects returned by the query. - The type of object from which the recursive fetch operation should be made. - - - - Acts as a common base class for implementations based on re-linq. In a specific LINQ provider, a custom queryable - class should be derived from which supplies an implementation of that is used to - execute the query. This is then used as an entry point (the main data source) of a LINQ query. - - The type of the result items yielded by this query. - - - - Initializes a new instance of the class with a and the given - . This constructor should be used by subclasses to begin a new query. The generated by - this constructor is a pointing back to this . - - The used to parse queries. Specify an instance of - for default behavior. See also . - The used to execute the query represented by this . - - - - Initializes a new instance of the class with a specific . This constructor - should only be used to begin a query when does not fit the requirements. - - The provider used to execute the query represented by this and to construct - queries around this . - - - - Initializes a new instance of the class with a given and - . This is an infrastructure constructor that must be exposed on subclasses because it is used by - to construct queries around this when a query method (e.g. of the - class) is called. - - The provider used to execute the query represented by this and to construct - queries around this . - The expression representing the query. - - - - Executes the query via the and returns an enumerator that iterates through the items returned by the query. - - - A that can be used to iterate through the query result. - - - - - Gets the expression tree that is associated with the instance of . This expression describes the - query represented by this . - - - - The that is associated with this instance of . - - - - - Gets the query provider that is associated with this data source. The provider is used to execute the query. By default, a - is used that parses the query and passes it on to an implementation of . - - - - The that is associated with this data source. - - - - - Gets the type of the element(s) that are returned when the expression tree associated with this instance of is executed. - - - - A that represents the type of the element(s) that are returned when the expression tree associated with this object is executed. - - - - - Represents a being bound to an associated instance. This binding's - method returns only for the same the expression is bound to. - - - - - - Represents a being bound to an associated instance. This is used by the - to represent assignments in constructor calls such as new AnonymousType (a = 5), - where a is the member of AnonymousType and 5 is the associated expression. - The method can be used to check whether the member bound to an expression matches a given - (considering read access). See the subclasses for details. - - - - - Represents a being bound to an associated instance. - - This binding's - method returns for the same the expression is bound to or for a - whose getter method is the the expression is bound to. - - - - - Represents a being bound to an associated instance. - - This binding's - method returns for the same the expression is bound to - or for its getter method's . - - - - - Represents grouping the items returned by a query according to some key retrieved by a , applying by an - to the grouped items. This is a result operator, operating on the whole result set of the query. - - - In C#, the "group by" clause in the following sample corresponds to a . "s" (a reference to the query source - "s", see ) is the expression, "s.Country" is the - expression: - - var query = from s in Students - where s.First == "Hugo" - group s by s.Country; - - - - - - Initializes a new instance of the class. - - A name associated with the items generated by the result operator. - The selector retrieving the key by which to group items. - The selector retrieving the elements to group. - - - - Clones this clause, adjusting all instances held by it as defined by - . - - The clones of all query source clauses are registered with this . - A clone of this clause. - - - - Transforms all the expressions in this clause and its child objects via the given delegate. - - The transformation object. This delegate is called for each within this - clause, and those expressions will be replaced with what the delegate returns. - - - - Gets or sets the name of the items generated by this . - - - Item names are inferred when a query expression is parsed, and they usually correspond to the variable names present in that expression. - However, note that names are not necessarily unique within a . Use names only for readability and debugging, not for - uniquely identifying objects. To match an with its references, use the - property rather than the . - - - - - Gets or sets the type of the items generated by this . The item type is an instantiation of - derived from the types of and . - - - - - Gets or sets the selector retrieving the key by which to group items. - This is a resolved version of the body of the that would be - passed to . - - The key selector. - - - - Gets or sets the selector retrieving the elements to group. - This is a resolved version of the body of the that would be - passed to . - - The element selector. - - - - Replaces all nodes that equal a given with a replacement node. Expressions are also replaced within subqueries; the - is changed by the replacement operations, it is not copied. The replacement node is not recursively searched for - occurrences of the to be replaced. - - - - - Maps the objects used in objects to the respective - types. This is used by when a is encountered to instantiate the - right for the given method. - - - - - Creates a and automatically registers all types implementing - from a given type sequence that offer a public static SupportedMethods field. - - A with all types with a SupportedMethods - field registered. - - - - Gets the registerable method definition from a given . A registerable method is a object - that can be registered via a call to . When the given is passed to - and its corresponding registerable method was registered, the correct node type is returned. - - The method for which the registerable method should be retrieved. - itself, unless it is a closed generic method or declared in a closed generic type. In the latter cases, - the corresponding generic method definition respectively the method declared in a generic type definition is returned. - - - - Registers the specific with the given . The given methods must either be non-generic - or open generic method definitions. If a method has already been registered before, the later registration overwrites the earlier one. - - - - - Determines whether the specified method was registered with this . - - - - - Gets the type of registered with this instance that - matches the given , returning if none can be found. - - - - - Returns the count of the registered s. - - - - - Parses an expression tree into a chain of objects after executing a sequence of - objects. - - - - - Creates a default that already has all expression node parser defined by the re-linq assembly - registered. Users can add inner providers to register their own expression node parsers. - - A default that already has all expression node parser defined by the re-linq assembly - registered. - - - - Creates a default that already has the expression tree processing steps defined by the re-linq assembly - registered. Users can insert additional processing steps. - - The tranformation provider to be used by the included - in the result set. Use to create a default provider. - - A default that already has all expression tree processing steps defined by the re-linq assembly - registered. - - - The following steps are included: - - - (parameterized with ) - - - - - - Initializes a new instance of the class with a custom and - implementation. - - The to use when parsing trees. Use - to create an instance of that already includes all - default node types. (The can be customized as needed by adding or removing - ). - The to apply to trees before parsing their nodes. Use - to create an instance of that already includes - the default steps. (The can be customized as needed by adding or removing - ). - - - - Parses the given into a chain of instances, using - to convert expressions to nodes. - - The expression tree to parse. - A chain of instances representing the . - - - - Gets the query operator represented by . If - is already a , that is the assumed query operator. If is a - and the member's getter is registered with , a corresponding - is constructed and returned. Otherwise, is returned. - - The expression to get a query operator expression for. - A to be parsed as a query operator, or if the expression does not represent - a query operator. - - - - Infers the associated identifier for the source expression node contained in methodCallExpression.Arguments[0]. For example, for the - call chain "source.Where (i => i > 5)" (which actually reads "Where (source, i => i > 5"), the identifier "i" is associated - with the node generated for "source". If no identifier can be inferred, is returned. - - - - - Gets the node type provider used to parse instances in . - - The node type provider. - - - - Gets the processing steps used by to process the tree before analyzing its structure. - - The processing steps. - - - - Creates instances of classes implementing the interface via Reflection. - - - The classes implementing instantiated by this factory must implement a single constructor. The source and - constructor parameters handed to the method are passed on to the constructor; for each argument where no - parameter is passed, is passed to the constructor. - - - - - Represents the first expression in a LINQ query, which acts as the main query source. - It is generated by when an tree is parsed. - This node usually marks the end (i.e. the first node) of an chain that represents a query. - - - - - Represents an expression tree node that points to a query source represented by a . These expressions should always - point back, to a clause defined prior to the clause holding a . Otherwise, exceptions might be - thrown at runtime. - - - This particular expression overrides , i.e. it can be compared to another based - on the . - - - - - Determines whether the specified is equal to the current by - comparing the properties for reference equality. - - The to compare with the current . - - if the specified is a that points to the - same ; otherwise, false. - - - - - Gets the query source referenced by this expression. - - The referenced query source. - - - - Represents a for - . - It is generated by when an tree is parsed. - - - - - Represents a for - . - It is generated by when an tree is parsed. - When this node is used, it follows an , an , - a , or a . - - - - - Represents a for - . - It is generated by when an tree is parsed. - When this node is used, it follows an , an , - a , or a . - - - - - Represents a for . - It is generated by when an tree is parsed. - When this node is used, it usually follows (or replaces) a of an chain that - represents a query. - - - - - Represents a for the different overloads of . - It is generated by when an tree is parsed. - When this node is used, it marks the beginning (i.e. the last node) of an chain that represents a query. - - - - - Represents a for , - , - or - . - It is generated by when an tree is parsed. - When this node is used, it marks the beginning (i.e. the last node) of an chain that represents a query. - - - - - Represents a for - . - It is generated by when an tree is parsed. - - - - - Represents a for - . - It is generated by when an tree is parsed. - - - - - Represents a for , - , - for the Count properties of , , , and , - and for the property of arrays. - It is generated by when an tree is parsed. - When this node is used, it marks the beginning (i.e. the last node) of an chain that represents a query. - - - - - Represents a for or . - It is generated by when an tree is parsed. - When this node is used, it marks the beginning (i.e. the last node) of an chain that represents a query. - - - - - Represents a for or . - It is generated by when an tree is parsed. - When this node is used, it marks the beginning (i.e. the last node) of an chain that represents a query. - - - - - Represents a for , - , - or - . - It is generated by when an tree is parsed. - When this node is used, it marks the beginning (i.e. the last node) of an chain that represents a query. - - - - - Represents a for , - , - or - . - It is generated by when an tree is parsed. - When this node is used, it marks the beginning (i.e. the last node) of an chain that represents a query. - - - - - Represents a for . - It is generated by when an tree is parsed. - When this node is used, it usually follows (or replaces) a of an chain that - represents a query. - - - - - Represents a for - . - It is generated by when an tree is parsed. - This node represents an additional query source introduced to the query. - - - - - Constitutes the bridge between re-linq and a concrete query provider implementation. Concrete providers implement this interface - and calls the respective method of the interface implementation when a query is to be executed. - - - - - Executes the given as a scalar query, i.e. as a query returning a scalar value of type . - The query ends with a scalar result operator, for example a or a . - - The type of the scalar value returned by the query. - The representing the query to be executed. Analyze this via an - . - A scalar value of type that represents the query's result. - - The difference between and is in the kind of object that is returned. - is used when a query that would otherwise return a collection result set should pick a single value from the - set, for example the first, last, minimum, maximum, or only value in the set. is used when a value is - calculated or aggregated from all the values in the collection result set. This applies to, for example, item counts, average calculations, - checks for the existence of a specific item, and so on. - - - - - Executes the given as a single object query, i.e. as a query returning a single object of type - . - The query ends with a single result operator, for example a or a . - - The type of the single value returned by the query. - The representing the query to be executed. Analyze this via an - . - If , the executor must return a default value when its result set is empty; - if , it should throw an when its result set is empty. - A single value of type that represents the query's result. - - The difference between and is in the kind of object that is returned. - is used when a query that would otherwise return a collection result set should pick a single value from the - set, for example the first, last, minimum, maximum, or only value in the set. is used when a value is - calculated or aggregated from all the values in the collection result set. This applies to, for example, item counts, average calculations, - checks for the existence of a specific item, and so on. - - - - - Executes the given as a collection query, i.e. as a query returning objects of type . - The query does not end with a scalar result operator, but it can end with a single result operator, for example - or . In such a case, the returned enumerable must yield exactly - one object (or none if the last result operator allows empty result sets). - - The type of the items returned by the query. - The representing the query to be executed. Analyze this via an - . - A scalar value of type that represents the query's result. - - - - Represents the join part of a query, adding new data items and joining them with data items from previous clauses. This can either - be part of or of . The semantics of the - is that of an inner join, i.e. only combinations where both an input item and a joined item exist are returned. - - - In C#, the "join" clause in the following sample corresponds to a . The adds a new - query source to the query, selecting addresses (called "a") from the source "Addresses". It associates addresses and students by - comparing the students' "AddressID" properties with the addresses' "ID" properties. "a" corresponds to and - , "Addresses" is and the left and right side of the "equals" operator are held by - and , respectively: - - var query = from s in Students - join a in Addresses on s.AdressID equals a.ID - select new { s, a }; - - - - - - Initializes a new instance of the class. - - A name describing the items generated by this . - The type of the items generated by this . - The expression that generates the inner sequence, i.e. the items of this . - An expression that selects the left side of the comparison by which source items and inner items are joined. - An expression that selects the right side of the comparison by which source items and inner items are joined. - - - - Accepts the specified visitor by calling its - method. - - The visitor to accept. - The query model in whose context this clause is visited. - The index of this clause in the 's collection. - - - - Accepts the specified visitor by calling its - method. This overload is used when visiting a that is held by a . - - The visitor to accept. - The query model in whose context this clause is visited. - The holding this instance. - - - - Clones this clause, registering its clone with the . - - The clones of all query source clauses are registered with this . - A clone of this clause. - - - - Transforms all the expressions in this clause and its child objects via the given delegate. - - The transformation object. This delegate is called for each within this - clause, and those expressions will be replaced with what the delegate returns. - - - - Gets or sets the type of the items generated by this . - - - Changing the of a can make all objects that - point to that invalid, so the property setter should be used with care. - - - - - Gets or sets a name describing the items generated by this . - - - Item names are inferred when a query expression is parsed, and they usually correspond to the variable names present in that expression. - However, note that names are not necessarily unique within a . Use names only for readability and debugging, not for - uniquely identifying objects. To match an with its references, use the - property rather than the . - - - - - Gets or sets the inner sequence, the expression that generates the inner sequence, i.e. the items of this . - - The inner sequence. - - - - Gets or sets the outer key selector, an expression that selects the right side of the comparison by which source items and inner items are joined. - - The outer key selector. - - - - Gets or sets the inner key selector, an expression that selects the left side of the comparison by which source items and inner items are joined. - - The inner key selector. - - - - Represents the orderby part of a query, ordering data items according to some . - - - In C#, the whole "orderby" clause in the following sample (including two orderings) corresponds to an : - - var query = from s in Students - orderby s.Last, s.First - select s; - - - - - - Initializes a new instance of the class. - - - - - Accepts the specified visitor by calling its method. - - The visitor to accept. - The query model in whose context this clause is visited. - The index of this clause in the 's collection. - - - - Transforms all the expressions in this clause and its child objects via the given delegate. - - The transformation object. This delegate is called for each within this - clause, and those expressions will be replaced with what the delegate returns. - - - - Clones this clause. - - The clones of all query source clauses are registered with this . - A clone of this clause. - - - - Gets the instances that define how to sort the items coming from previous clauses. The order of the - in the collection defines their priorities. For example, { LastName, FirstName } would sort all items by - LastName, and only those items that have equal LastName values would be sorted by FirstName. - - - - - Represents a single ordering instruction in an . - - - - - Initializes a new instance of the class. - - The expression used to order the data items returned by the query. - The to use for sorting. - - - - Accepts the specified visitor by calling its method. - - The visitor to accept. - The query model in whose context this clause is visited. - The in whose context this item is visited. - The index of this item in the 's collection. - - - - Clones this item. - - The clones of all query source clauses are registered with this . - A clone of this item. - - - - Transforms all the expressions in this item via the given delegate. - - The transformation object. This delegate is called for each within this - item, and those expressions will be replaced with what the delegate returns. - - - - Gets or sets the expression used to order the data items returned by the query. - - The expression. - - - - Gets or sets the direction to use for ordering data items. - - - - - Preprocesses an expression tree for parsing. The preprocessing involves detection of sub-queries and VB-specific expressions. - - - - - Parses a and creates an from it. This is used by - for parsing whole expression trees. - - - - - Replaces expression patterns of the form new T { x = 1, y = 2 }.x () or - new T ( x = 1, y = 2 ).x () to 1 (or 2 if y is accessed instead of x). - Expressions are also replaced within subqueries; the is changed by the replacement operations, it is not copied. - - - - - Takes an tree and parses it into a by use of an . - It first transforms the tree into a chain of instances, and then calls - and in order to instantiate all the - s. With those, a is created and returned. - - - - - Initializes a new instance of the class, using default parameters for parsing. - The used has all relevant methods of the class - automatically registered, and the comprises partial evaluation, and default - expression transformations. See , - , and - for details. - - - - - Initializes a new instance of the class, using the given to - convert instances into s. Use this constructor if you wish to customize the - parser. To use a default parser (with the possibility to register custom node types), use the method. - - The expression tree parser. - - - - Gets the of the given . - - The expression tree to parse. - A that represents the query defined in . - - - - Applies all nodes to a , which is created by the trailing in the - chain. - - The entry point to the chain. - The clause generation context collecting context information during the parsing process. - A created by the training and transformed by each node in the - chain. - - - - Gets the used by to parse instances. - - The node type registry. - - - - Gets the used by to process the tree - before analyzing its structure. - - The processor. - - - - Represents the main data source in a query, producing data items that are filtered, aggregated, projected, or otherwise processed by - subsequent clauses. - - - In C#, the first "from" clause in the following sample corresponds to the : - - var query = from s in Students - from f in s.Friends - select f; - - - - - - Initializes a new instance of the class. - - A name describing the items generated by the from clause. - The type of the items generated by the from clause. - The generating data items for this from clause. - - - - Accepts the specified visitor by calling its method. - - The visitor to accept. - The query model in whose context this clause is visited. - - - - Clones this clause, registering its clone with the . - - The clones of all query source clauses are registered with this . - A clone of this clause. - - - - Provides an abstraction of an expression tree created for a LINQ query. instances are passed to LINQ providers based - on re-linq via , but you can also use to parse an expression tree by hand or construct - a manually via its constructor. - - - The different parts of the query are mapped to clauses, see , , and - . The simplest way to process all the clauses belonging to a is by implementing - (or deriving from ) and calling . - - - - - Initializes a new instance of - - The of the query. This is the starting point of the query, generating items - that are filtered and projected by the query. - The of the query. This is the end point of - the query, it defines what is actually returned for each of the items coming from the and passing the - . After it, only the modify the result of the query. - - - - Gets an object describing the data streaming out of this . If a query ends with - the , this corresponds to . If a query has - , the data is further modified by those operators. - - Gets a object describing the data streaming out of this . - - The data streamed from a is often of type instantiated - with a specific item type, unless the - query ends with a . For example, if the query ends with a , the - result type will be . - - - - - Gets the which is used by the . - - - - - - Accepts an implementation of or , as defined by the Visitor pattern. - - - - - Returns a representation of this . - - - - - Clones this , returning a new equivalent to this instance, but with its clauses being - clones of this instance's clauses. Any in the cloned clauses that points back to another clause - in this (including its subqueries) is adjusted to point to the respective clones in the cloned - . Any subquery nested in the is also cloned. - - - - - Clones this , returning a new equivalent to this instance, but with its clauses being - clones of this instance's clauses. Any in the cloned clauses that points back to another clause - in this (including its subqueries) is adjusted to point to the respective clones in the cloned - . Any subquery nested in the is also cloned. - - The defining how to adjust instances of - in the cloned . If there is a - that points out of the being cloned, specify its replacement via this parameter. At the end of the cloning process, - this object maps all the clauses in this original to the clones created in the process. - - - - - Transforms all the expressions in this 's clauses via the given delegate. - - The transformation object. This delegate is called for each within this - , and those expressions will be replaced with what the delegate returns. - - - - Returns a new name with the given prefix. The name is different from that of any added - in the . Note that clause names that are changed after the clause is added as well as names of other clauses - than from clauses are not considered when determining "unique" names. Use names only for readability and debugging, not - for uniquely identifying clauses. - - - - - Executes this via the given . By default, this indirectly calls - , but this can be modified by the . - - The to use for executing this query. - - - - Determines whether this represents an identity query. An identity query is a query without any body clauses - whose selects exactly the items produced by its . An identity query can have - . - - - if this represents an identity query; otherwise, . - - - An example for an identity query is the subquery in that is produced for the in the following - query: - - from order in ... - select order.OrderItems.Count() - - In this query, the will become a because - is treated as a query operator. The - in that has no and a trivial , - so its method returns . The outer , on the other hand, does not - have a trivial , so its method returns . - - - - - Creates a new that has this as a sub-query in its . - - The name of the new 's . - A new whose 's is a - that holds this instance. - - - - Gets or sets the query's . This is the starting point of the query, generating items that are processed by - the and projected or grouped by the . - - - - - Gets or sets the query's select clause. This is the end point of the query, it defines what is actually returned for each of the - items coming from the and passing the . After it, only the - modify the result of the query. - - - - - Gets a collection representing the query's body clauses. Body clauses take the items generated by the , - filtering (), ordering (), augmenting (), or otherwise - processing them before they are passed to the . - - - - - Gets the result operators attached to this . Result operators modify the query's result set, aggregating, - filtering, or otherwise processing the result before it is returned. - - - - - Represents the select part of a query, projecting data items according to some . - - - In C#, the "select" clause in the following sample corresponds to a . "s" (a reference to the query source "s", see - ) is the expression: - - var query = from s in Students - where s.First == "Hugo" - select s; - - - - - - Initializes a new instance of the class. - - The selector that projects the data items. - - - - Accepts the specified visitor by calling its method. - - The visitor to accept. - The query model in whose context this clause is visited. - - - - Clones this clause. - - The clones of all query source clauses are registered with this . - A clone of this clause. - - - - Transforms all the expressions in this clause and its child objects via the given delegate. - - The transformation object. This delegate is called for each within this - clause, and those expressions will be replaced with what the delegate returns. - - - - Gets an object describing the data streaming out of this . If a query ends with - the , this corresponds to the query's output data. If a query has , the data - is further modified by those operators. Use to obtain the real result type of - a query model, including the . - - Gets a object describing the data streaming out of this . - - The data streamed from a is always of type instantiated - with the type of as its generic parameter. Its corresponds to the - . - - - - - Gets the selector defining what parts of the data items are returned by the query. - - - - - Takes an expression tree and first analyzes it for evaluatable subtrees (using ), i.e. - subtrees that can be pre-evaluated before actually generating the query. Examples for evaluatable subtrees are operations on constant - values (constant folding), access to closure variables (variables used by the LINQ query that are defined in an outer scope), or method - calls on known objects or their members. In a second step, it replaces all of the evaluatable subtrees (top-down and non-recursive) by - their evaluated counterparts. - - - This visitor visits each tree node at most twice: once via the for analysis and once - again to replace nodes if possible (unless the parent node has already been replaced). - - - - - Takes an expression tree and finds and evaluates all its evaluatable subtrees. - - - - - Evaluates an evaluatable subtree, i.e. an independent expression tree that is compilable and executable - without any data being passed in. The result of the evaluation is returned as a ; if the subtree - is already a , no evaluation is performed. - - The subtree to be evaluated. - A holding the result of the evaluation. - - - - Represents the where part of a query, filtering data items according to some . - - - In C#, the "where" clause in the following sample corresponds to a : - - var query = from s in Students - where s.First == "Hugo" - select s; - - - - - - Initializes a new instance of the class. - - The predicate used to filter data items. - - - - Accepts the specified visitor by calling its method. - - The visitor to accept. - The query model in whose context this clause is visited. - The index of this clause in the 's collection. - - - - Transforms all the expressions in this clause and its child objects via the given delegate. - - The transformation object. This delegate is called for each within this - clause, and those expressions will be replaced with what the delegate returns. - - - - Clones this clause. - - The clones of all query source clauses are registered with this . - - - - - Gets the predicate, the expression representing the where condition by which the data items are filtered - - - - - TODO: add summary - - - - - This exception is thrown if an argument is empty although it must have a content. - - - - - This exception is thrown if an argument has an invalid type. - - - - - This utility class provides methods for checking arguments. - - - Some methods of this class return the value of the parameter. In some cases, this is useful because the value will be converted to another - type: - ("o", o); - } - ]]> - In some other cases, the input value is returned unmodified. This makes it easier to use the argument checks in calls to base class constructors - or property setters: - - - - - Returns the value itself if it is not and of the specified value type. - The type that must have. - The is a . - The is an instance of another type. - - - Checks whether can be assigned to . - The cannot be assigned to . - - - - Provides functionality to calculate hash codes from values and sequences. - - - - - provides code which is common in all registry classes. - - - - - Indicates the condition parameter of the assertion method. - The method itself should be marked by attribute. - The mandatory argument of the attribute is the assertion type. - - - - - - Initializes new instance of AssertionConditionAttribute - - Specifies condition type - - - - Gets condition type - - - - - Specifies assertion type. If the assertion method argument satisifes the condition, then the execution continues. - Otherwise, execution is assumed to be halted - - - - - Indicates that the marked parameter should be evaluated to true - - - - - Indicates that the marked parameter should be evaluated to false - - - - - Indicates that the marked parameter should be evaluated to null value - - - - - Indicates that the marked parameter should be evaluated to not null value - - - - - Indicates that the marked method is assertion method, i.e. it halts control flow if one of the conditions is satisfied. - To set the condition, mark one of the parameters with attribute - - - - - - Only entity marked with attribute considered used - - - - - Indicates implicit assignment to a member - - - - - Indicates implicit instantiation of a type with fixed constructor signature. - That means any unused constructor parameters won't be reported as such. - - - - - Indicates implicit instantiation of a type - - - - - Specify what is considered used implicitly when marked with or - - - - - Members of entity marked with attribute are considered used - - - - - Entity marked with attribute and all its members considered used - - - - - Indicates that the function argument should be string literal and match one of the parameters of the caller function. - For example, has such parameter. - - - - - Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes as unused (as well as by other usage inspections) - - - - - Gets value indicating what is meant to be used - - - - - Indicates that IEnumarable, passed as parameter, is not enumerated. - - - - - - Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), - so this symbol will not be marked as unused (as well as by other usage inspections) - - - - - Gets value indicating what is meant to be used - - - - - Builds a string from a sequence, separating each item with a given separator string. - - - - diff --git a/lib/net/System.Linq.Dynamic.dll b/lib/net/System.Linq.Dynamic.dll deleted file mode 100644 index 9b61fb4685bec341d2a2e696eda68a331ae7c80a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45568 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ℑv3ODEYC#@Ur}F6ycE5NW!qyx zv*IbSM^sn50tu59e?=~(J4AcM>wudo+~pl&M@1Rn6%{9yw~9|ztVDWK#d^SdD`ukB zH!G-LKdjhYew%o)q8o4T{sWL^$1uu-#$N^)AO8{5tr<@xXO5>aI&J)JP&$!*RoODW zJbaNDivAIl9GBTQ{wZ+yzW$!!G=b z%5{;hcqj8oXz?4%XXU;<1T0#qYMbUE{kaejle_5I>o? zKJ7Ph26= z(G7_X@qI5@POzHbPdOdu^kbZ^<8)&=<(`D}7uB}v>l0s8S2OHnm;rnh5#Boh-<|lc z#Et5^tDlIFg?}}17kc!=gj-xCexK(TLb~`6%oMuL;~;uQ3d#rm<0HUm*>7avq>x*#lUn3~NDAqr9vK z#S~?gD=3o6m4FS(7Xha$lZ>F4rJM!WqFf0$U->%VBIUP$OO#f;6?Ka8F~H@D&m9!2 zmHmM0lt%$KDGhiP;7nyZ;5o`YfIW)G8x-4=U4XsH4*>_1q%SB6%B6t2ls^FOQP%i_ zc((URz>AbfAc$A*wg4Vbz6^M|5(@^!Rmxt#k0^f!{HQWxTo7*nYyiAj$pd~;IRJQv zatq*{%C`XTR(=6^uksq;eM)0lP&}Zl1AIu?4fu$172spam&NSFSNd> z?&tIk3?E?l5YrEHS}4>?4Z|r4m0!f^i#YwfgeuWB?Lya!>STrwGJHrQ`m>x?bjn?# z6XhX>x{K0N7#Z;;Vj6gzMtZc+i>3vEb@cjxs#X6vLB7K=M2za^D2FjJn zd3dYf*JX{Ng`w|9$mb%DME(?cCi=_hDX~?tAICiLljEO>e>bl0 zr#+kV(+mWM%Hl^6mv8|Ma@ik6Jj^s7p2+!e1#ks%jl)%ji=NblaYb-Nah2nW;Y#4D zz%`z~CqgH%SD25-x=+KM2-C!4>KWqCp)Tdp*jDAK*mgyUXOX@{c_hAF`6<$m#Lp0q z#95yCE3!REF?`WT-#Ym+5Zm>FpI(dd*-uH)haRIjGS1P-Jb53u%kzGEYEJubfq{3h-A?N1>E0A^ z99_13$6%^AQy6lVZ0+fBqH6~?7jh8JNn4rT%FIU5vZIQ$_Yd}^bEG^+p%v-EwrtOm zR3Rl!Pv=EnzB`-i&1|;RD^_hjH{D$j9VAtOs-80g3b0kNA=NvWUN~#*JSex#pMtB?+4~ccD?Wn&!Ga#1bvV#MlwDu2)w(MYk0a})C zk%=Z68v*+OFA|_YU~9V2wUS7bU@~J4S(-|tmv@Y$9AmLO)wj7PRVpIMl1gc?E~Img z{8ADq1ARD=;c_jZvx zk8hC6nxeAbQU{|*N600XX41Vq9sOIfJchPttRE=Qnz__{n`HIaMxDwS$mTOVKWXe& z+ek5iN#B#+lIc(PkX__OAvc&_PMt{giY=+$d=cp%?CrHPwx@^A%jSAI3c^lhw%Ey) z>GSMlUgU@RHfMV=6r=Qszv+_BVS48UCN#B_7Z?ZrQ!fM{8zal%J-WAv0=p4(x*P7P zXl!|5QFyN91-SxlOxkAAcUexV=-U{#T+ynWWysPqwf6T&ye-=|kjiE9aB5r}yrIIK zX^E{E>@8#ldg04TwDtY46q&s`m+2detSzK+1(_|UsjWz6-_c)4Z-v!ZT4x%}siw@ypzSwbdDDauDBxIw>h1&3N6j__i$U8ZuT==qIK)m9Jygjfvvf%aJc=2<(a%C zp-sV{@|x0{rhJQKM}GAv8xL#lyWFWRx zHs7Ah!LLdE@oXpUS+jd+RgS#?vS}e&oXV%+7W#W6%E^xYp7bsZHaz4O2tq|jvb>YP zP6s5?HJm9dnR=evl7d?#c8k;bg2l2U-#Wl%4GC#-QLo0D81#X$wnhn>fI@h(aJM#M zF$ZCBx_}neZAkhS6CTQ?erVSVfy!nJtVaEaRm@aDkms0 zY8PZr&<;{W!7*Xs#WFpZAxkn_;R=_*X+SB=jX*v+HQ1piS_;4 z`?Kd^Cq|Z9at5Pa&KPgwbTrt&^rrf(*`Ll~xh;s+z5#4Z@?_dD+kVIbuiVy~&8KCu z728s{%I#ux?_iz=ye}nIWcra_k}Zg}SUIh1;Gk z$VO~rF|_FrPqJ8&9fYkqB($55*@Rg(17WD>5iL9UP!mgq?ME?I?8gukFrai-<+y z^z@Fw49))v=FTnYG7ZX*Sm3dCNU_Yg}meXY4%YRDd1&KV`6?cs|8SOkXzPCZ)d%2C%EI0qO_ zUj_%cbkA6iFxs-P`GpfI8s6HW{z7V(T&vh26?3FxvQIrUQt+KT*^5PrKBGt}`HodN z78vK1qh_)%DdxbNaCzy0ie%z%`G_KoTd;_$a--RltiM=1pB;p&!=WPGLwmZkbf>%( zNy!0fEnsojJcz73pUALiWA`i1#@&4U!Zx^gPC*gcy%cfGDC`)?utmCb#?DB}K*>jB zH=ipow=k6on+0}py*)T~!iAAzVGoZ@F*Z!ZV+O;S_|rSsK+tv>ZW{+QrizSx?AdCa zr!0Y3fDUp_k=&`Li}-DRN|ziG7qk9p_It z#wOlaWCzx!b2~HGFp5=!g_7b5=)PSs4>{q&1UAK6;ph8ih`yPK^A%=@!c2UVfIGFq z>i8CERJ#NYyEudOZSEafmnp#M7l*_qFG=USa~Tdr9GM9(um!#%$7|csvawI;A38Dv z6T1h_=E#h;?7$Ff>d35hIh+J>1lWFLRvQcfVU$t^jB`UKPada4TQ->KDPeZ^Hpnga zkr_)fz3C$|?IWc%G-zf3#d5{5kp$KTMO$`pDqmu5jVTpF*5(Y(X%6kQ?b{6or*bNc36x&XVB7-9sfSnmSmlLZZ zQjD8088g|AT=6-~fv*|FCf0K1v`cej@up4gr2C5tma1rr&H+5$Yb?%iXk=+`3iA^stW1g#*r5t)Svr0@pn$~?5fv&fm&a1v z1@R=gG|38Z5M3Sp*dA~Mt~e9fJ%GuQY+nkyA%{jRifz2b2CXS<;g(NX!tn<3v{tP`nK8neSqG54>>KbTou>$MT*ny`)1* z5gF090#R_b0T+um5d60gXgAes%Y+ScFU|){!<^Wh#@?9~DbpR;1Y!YOTj<4~;9cHB zaB+^}OUT4(!`h}0Q5zcJ@` zW)OR^_|FiVtf^}+FxIX`+PTe~O&K91?3Q{vw)P`#+XkbO(OzGA#6asXJ0{67`=CdqHN1mrLs|*KvxDYJzSYF6t$(7)sg5#}>U?KFMp;lxBG>aWP z$7paCms1%h4S0{i&3Qf=!$Tq5uxbm;qYsV@fexIP*28VhnI$j_c`wK~+?b@U#eSVa zseJUJ#_h8~YjGRDF8;>8=!dx88^)t#xkfeq-8;&Y$16CPYE!c0`@pqDv(^84pn4rIiGSQ8e3dc;6C8$E)ifYl| zBTD92f-vO@Vm<|_xYcxS;pQ%Qqyf>kcFO#PbGy3QQr+9qJ+1xO{-Hjc0;NYFSzodj-c9!G7$~TeRX7X#T?HuC4-fbhJuu*|oRXtue)xWKviV5UuK_UBc$Ut%%&8lIcOTtz=%Z zFFZ}G+78N!RDWtKp0?Qig}YrlI53dS!9q(rXE+e{`_NH$R~PB7H#NkTwB<iFn0~ZU-J<_!kJ4BJmZyfY&a`FVi|;BYMl zMGkMOr15h&14yMskH`Q|(ODONI(VblhC9*m+oyoNxVn*-1x*CjIw&GUv>s4$;D8M` zz1}cxRgtzBr(`jCG`<9-@#GS)pWEeHfpy$wzu+3RPVA`VJ?kLtcJL6MwYX>Cghib2 zAw1O`BXPCF`?y8y_QvLqTLyVaCj+u|vlWs-ZeJTy`_Xfu?Z%7w4Wb6A1-SO2-F`?w zJcXx#(gT#LT7s0MlRn#^xfJ?JI?O|JE5NS@?T|i2#j(l?tqVN2qD(nk<*rGFad8Xhkixm`%_7Bi4{ zJbvJTaA^}HcLufl(ceWvbjdNHdQ^+Fl0mx}q;udf4LpedG^EetwrjW?mFP#A9?<*1 zjjXB$b+@5RKT^b>Y(Z&jKT6A#zlF<74UcX|$|`M>T2Lz1vi=L;O}!$?Xk=lvCXGWk z>|NeR*`9~`!@1>lYE*v3H2j(`_3McCTsCjAWMNYO=-!Vz*-WEQrX9UkV>yXT8*3y7 z$!VrZo%TX^GEHMn`Wu9tGphh!~{CCN%wD`_$cA_3)zFe1dM_h@MQSRC=Zu`0G@D3^eXwP+WfO#%CQ;RPZe7mZ42V$ zb=Ihj9y9Wqq#?3@f^zIr#WuEpjyHyca+0L>`QyVz8u8u90t$o^m*lPi4hO|WMgWPTO{`1=3_-3PNXxANe&b=qs_ z==m#GQ)TbJuN@j|lG$FjZ8?ZGlh<-(TpLDTu0mwfB0xCxjBHz+Nc$+cx1<%5&MeYS z$aZLLAR5`@=zX1-daNC`)AK0PI(X!%1?L%I?7B+lC0bQzT|9EtrE?XnQIOq7=Nmfp zAnl^k!jyY7+H0q=vI?={-o~#qKRUnT{T)+=zWdy?FADb;&OdWQ#jL}Z80BG)60Qv6 zuaT99E0l>s!eCV;z9|r{3RfY8xBn^S_TsPJ69pufP(TB8hpV(2d{d_e1S6;!;aa0c zRf6GKy+(vIR)$;HRr93K&QgBKrjkCLR0~?U>SG>YFt*5Fya&l zQe8Boh1a8yiV|+RgKt^5(^sPblW7bC%MR{7p(1@2ScPlHp$OAEWibe>hBqNy>;rzc zPOXGAFeL7RS7^jOyeYg1h5`QcPxcd{P_+~b#SA!wkyUtjgJfQz=|NI$Xu1jA1fXvc zKH#PV4(S-{AjUs5oxbIQuX7QgFOkqshzp&Fx{H88z$AcL_|q{2@QrnW?*IY#2?PiP z3E(TuLdQ4Ug^sUi!)yse2t)~#6NnL@uYu?Z0u=VrmTU9iT+wBYW@qI^Vhh0;nqFS+LAJ^Y3}v6KW|6G}hZ6cXSqGi*5T)MM6&Mz!LY*1wv+xtx7BGTg5@9zthmg zadLO{R*{Ph_Q?Nh0~h!yF?s6$cf>7v|C7Or!vBj{#VJR(_IDnn*!=I0HY{BCe-&&v zRodylBGz#FJKg#_H||FdHT3^yBM4`|*^%h&9Vd?-jFDUY)hpm>>=?wqB7V^0Wa!+) zznK*8G_%TdQgKw{Mxn~ z$K&v@%ZJ1DuqQmMgof!<7G4m7z#zw3s5})6A`+s7hbs^&2n|;S5u6yVMJ+@>peaU= z2a0eJP#VnP89JEEMN?>NE@YuwxP$QU@bOiq7jYbSxC|V@2ozM15cMhcGrWNLgoaz~ zy0spQ$?yUzg-pr6)ruCOWd-pGNXo6HzzelOL88|5+s!OMMZ}cQGtfy6zSSm7Xp{x9 z^6U)!w0{tqV%2wGlqiUSP!*yq!z-lCLG@FEI^t|WQgS0koPtmkjN(dbAZ9Q;yk0j| zHwVEYh;AVKWSWSuOoi=mye0wZ!7gCx5=Ar(rfupdLjOFl=HX5b2%(Lsp$0^iD4teJ z88mCcwE+_$ILd%Hq3K>2FJqzUhN%*nERq1?FExrrp^P90G~AloFm(-xL55c5lQ*x& zbOn9hDza{-`{ga*F%5)q`~d{ez;XWz5E3&3^Q00DL7P*30=675ECP2!&eZ|bjv)*1N&g9FlTBh8i>MZP$TCvH4O8S zN*@B!!Q3ge|96#U(2aRO&7z5LD!iV#5T~k2zv-eZ%B*!)n?AT4*aOOukx`5MpM->! zuy?>PiYlnUlwrH6<4ltUL>=Y}?S^Z~A-P>7XAqhR4PT4tfq@*p7B0$S4?|+_!);B4 zis2e-EpJkbzal(*{kR>^}005#9@EWyEw*3L>o!ua~Z-mi&@*O5x#K$S-w9;0~-( zZnzovS+K?EbV3zgG&39K_q%YX3+4}rC7~0c9uZElM%TN*W&iIma&}2fxgUaxJ zR&#c6+4M?&kR0VZ)mRzgZ|o&)NI_^d2D2i;xtpCu!O%Q~K5b>fX~?BPdZqn8!%9$z z$g!N4chQ76ho&r#7R94BAv%@hc}1xnT$?CryD8jBp=uH+yoq}?NOdlze1`+0wP<~v$+ipPTmE;Mn(D?n zrm8B}t<^Ec8oWYix?9sIq^n_N2n|09_6W$E3g)jyjt+Ajy_B9(>J}al*7`I2_Ojpk z!#jwyQVAr`q(io8FVL-@M`i;!gb(FjXK^=^5pboaj%rD(JQSZx-GKfe!FHr~%OJ z@=MSr6;Yu&|`|9=?nCPp5IemA8H+|H6-am*f~ zDKU$6JG$;z4Ug4t3)g9d4(aJIy;UXOfPAZZ)ZYK6KM%;ipLm!C^M618zth0~0ga5^ AdjJ3c diff --git a/lib/net/log4net.dll b/lib/net/log4net.dll deleted file mode 100644 index ffc57e11254ad9530867b35d15aaf38eb4747d8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270336 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 - - - log4net - - - - - Appender that logs to a database. - - - - appends logging events to a table within a - database. The appender can be configured to specify the connection - string by setting the property. - The connection type (provider) can be specified by setting the - property. For more information on database connection strings for - your specific database see http://www.connectionstrings.com/. - - - Records are written into the database either using a prepared - statement or a stored procedure. The property - is set to (System.Data.CommandType.Text) to specify a prepared statement - or to (System.Data.CommandType.StoredProcedure) to specify a stored - procedure. - - - The prepared statement text or the name of the stored procedure - must be set in the property. - - - The prepared statement or stored procedure can take a number - of parameters. Parameters are added using the - method. This adds a single to the - ordered list of parameters. The - type may be subclassed if required to provide database specific - functionality. The specifies - the parameter name, database type, size, and how the value should - be generated using a . - - - - An example of a SQL Server table that could be logged to: - - CREATE TABLE [dbo].[Log] ( - [ID] [int] IDENTITY (1, 1) NOT NULL , - [Date] [datetime] NOT NULL , - [Thread] [varchar] (255) NOT NULL , - [Level] [varchar] (20) NOT NULL , - [Logger] [varchar] (255) NOT NULL , - [Message] [varchar] (4000) NOT NULL - ) ON [PRIMARY] - - - - An example configuration to log to the above table: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Julian Biddle - Nicko Cadell - Gert Driesen - Lance Nehring - - - - Abstract base class implementation of that - buffers events in a fixed size buffer. - - - - This base class should be used by appenders that need to buffer a - number of events before logging them. For example the - buffers events and then submits the entire contents of the buffer to - the underlying database in one go. - - - Subclasses should override the - method to deliver the buffered events. - - The BufferingAppenderSkeleton maintains a fixed size cyclic - buffer of events. The size of the buffer is set using - the property. - - A is used to inspect - each event as it arrives in the appender. If the - triggers, then the current buffer is sent immediately - (see ). Otherwise the event - is stored in the buffer. For example, an evaluator can be used to - deliver the events immediately when an ERROR event arrives. - - - The buffering appender can be configured in a mode. - By default the appender is NOT lossy. When the buffer is full all - the buffered events are sent with . - If the property is set to true then the - buffer will not be sent when it is full, and new events arriving - in the appender will overwrite the oldest event in the buffer. - In lossy mode the buffer will only be sent when the - triggers. This can be useful behavior when you need to know about - ERROR events but not about events with a lower level, configure an - evaluator that will trigger when an ERROR event arrives, the whole - buffer will be sent which gives a history of events leading up to - the ERROR event. - - - Nicko Cadell - Gert Driesen - - - - Abstract base class implementation of . - - - - This class provides the code for common functionality, such - as support for threshold filtering and support for general filters. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface for your own strategies for printing log statements. - - - - Implementors should consider extending the - class which provides a default implementation of this interface. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Log the logging event in Appender specific way. - - The event to log - - - This method is called to log a message into this appender. - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - The name uniquely identifies the appender. - - - - - Interface for appenders that support bulk logging. - - - - This interface extends the interface to - support bulk logging of objects. Appenders - should only implement this interface if they can bulk log efficiently. - - - Nicko Cadell - - - - Log the array of logging events in Appender specific way. - - The events to log - - - This method is called to log an array of events into this appender. - - - - - - Interface used to delay activate a configured object. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then the method - must be called by the container after its all the configured properties have been set - and before the component can be used. - - - Nicko Cadell - - - - Activate the options that were previously set with calls to properties. - - - - This allows an object to defer activation of its options until all - options have been set. This is required for components which have - related options that remain ambiguous until all are set. - - - If a component implements this interface then this method must be called - after its properties have been set before the component can be used. - - - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Default constructor - - - Empty default constructor - - - - - Finalizes this appender by calling the implementation's - method. - - - - If this appender has not been closed then the Finalize method - will call . - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Closes the appender and release resources. - - - - Release any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - This method cannot be overridden by subclasses. This method - delegates the closing of the appender to the - method which must be overridden in the subclass. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The event to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the abstract method. - - - - - - Performs threshold checks and invokes filters before - delegating actual logging to the subclasses specific - method. - - The array of events to log. - - - This method cannot be overridden by derived classes. A - derived class should override the method - which is called by this method. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - Calls and checks that - it returns true. - - - - - If all of the above steps succeed then the - will be passed to the method. - - - - - - Test if the logging event should we output by this appender - - the event to test - true if the event should be output, false if the event should be ignored - - - This method checks the logging event against the threshold level set - on this appender and also against the filters specified on this - appender. - - - The implementation of this method is as follows: - - - - - - Checks that the severity of the - is greater than or equal to the of this - appender. - - - - Checks that the chain accepts the - . - - - - - - - - - Adds a filter to the end of the filter chain. - - the filter to add to this appender - - - The Filters are organized in a linked list. - - - Setting this property causes the new filter to be pushed onto the - back of the filter chain. - - - - - - Clears the filter list for this appender. - - - - Clears the filter list for this appender. - - - - - - Checks if the message level is below this appender's threshold. - - to test against. - - - If there is no threshold set, then the return value is always true. - - - - true if the meets the - requirements of this appender. - - - - - Is called when the appender is closed. Derived classes should override - this method if resources need to be released. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Subclasses of should implement this method - to perform actual logging. - - The event to append. - - - A subclass must implement this method to perform - logging of the . - - This method will be called by - if all the conditions listed for that method are met. - - - To restrict the logging of events in the appender - override the method. - - - - - - Append a bulk array of logging events. - - the array of logging events - - - This base class implementation calls the - method for each element in the bulk array. - - - A sub class that can better process a bulk array of events should - override this method in addition to . - - - - - - Called before as a precondition. - - - - This method is called by - before the call to the abstract method. - - - This method can be overridden in a subclass to extend the checks - made before the event is passed to the method. - - - A subclass should ensure that they delegate this call to - this base class if it is overridden. - - - true if the call to should proceed. - - - - Renders the to a string. - - The event to render. - The event rendered as a string. - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Where possible use the alternative version of this method - . - That method streams the rendering onto an existing Writer - which can give better performance if the caller already has - a open and ready for writing. - - - - - - Renders the to a string. - - The event to render. - The TextWriter to write the formatted event to - - - Helper method to render a to - a string. This appender must have a - set to render the to - a string. - - If there is exception data in the logging event and - the layout does not process the exception, this method - will append the exception text to the rendered string. - - - Use this method in preference to - where possible. If, however, the caller needs to render the event - to a string then does - provide an efficient mechanism for doing so. - - - - - - The layout of this appender. - - - See for more information. - - - - - The name of this appender. - - - See for more information. - - - - - The level threshold of this appender. - - - - There is no level threshold filtering by default. - - - See for more information. - - - - - - It is assumed and enforced that errorHandler is never null. - - - - It is assumed and enforced that errorHandler is never null. - - - See for more information. - - - - - - The first filter in the filter chain. - - - - Set to null initially. - - - See for more information. - - - - - - The last filter in the filter chain. - - - See for more information. - - - - - Flag indicating if this appender is closed. - - - See for more information. - - - - - The guard prevents an appender from repeatedly calling its own DoAppend method - - - - - StringWriter used to render events - - - - - Gets or sets the threshold of this appender. - - - The threshold of the appender. - - - - All log events with lower level than the threshold level are ignored - by the appender. - - - In configuration files this option is specified by setting the - value of the option to a level - string, such as "DEBUG", "INFO" and so on. - - - - - - Gets or sets the for this appender. - - The of the appender - - - The provides a default - implementation for the property. - - - - - - The filter chain. - - The head of the filter chain filter chain. - - - Returns the head Filter. The Filters are organized in a linked list - and so all Filters on this Appender are available through the result. - - - - - - Gets or sets the for this appender. - - The layout of the appender. - - - See for more information. - - - - - - - Gets or sets the name of this appender. - - The name of the appender. - - - The name uniquely identifies the appender. - - - - - - Tests if this appender requires a to be set. - - - - In the rather exceptional case, where the appender - implementation admits a layout but can also work without it, - then the appender should return true. - - - This default implementation always returns true. - - - - true if the appender requires a layout object, otherwise false. - - - - - The default buffer size. - - - The default size of the cyclic buffer used to store events. - This is set to 512 by default. - - - - - Initializes a new instance of the class. - - - - Protected default constructor to allow subclassing. - - - - - - Initializes a new instance of the class. - - the events passed through this appender must be - fixed by the time that they arrive in the derived class' SendBuffer method. - - - Protected constructor to allow subclassing. - - - The should be set if the subclass - expects the events delivered to be fixed even if the - is set to zero, i.e. when no buffering occurs. - - - - - - Flush the currently buffered events - - - - Flushes any events that have been buffered. - - - If the appender is buffering in mode then the contents - of the buffer will NOT be flushed to the appender. - - - - - - Flush the currently buffered events - - set to true to flush the buffer of lossy events - - - Flushes events that have been buffered. If is - false then events will only be flushed if this buffer is non-lossy mode. - - - If the appender is buffering in mode then the contents - of the buffer will only be flushed if is true. - In this case the contents of the buffer will be tested against the - and if triggering will be output. All other buffered - events will be discarded. - - - If is true then the buffer will always - be emptied by calling this method. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Close this appender instance. - - - - Close this appender instance. If this appender is marked - as not then the remaining events in - the buffer must be sent when the appender is closed. - - - - - - This method is called by the method. - - the event to log - - - Stores the in the cyclic buffer. - - - The buffer will be sent (i.e. passed to the - method) if one of the following conditions is met: - - - - The cyclic buffer is full and this appender is - marked as not lossy (see ) - - - An is set and - it is triggered for the - specified. - - - - Before the event is stored in the buffer it is fixed - (see ) to ensure that - any data referenced by the event will be valid when the buffer - is processed. - - - - - - Sends the contents of the buffer. - - The first logging event. - The buffer containing the events that need to be send. - - - The subclass must override . - - - - - - Sends the events. - - The events that need to be send. - - - The subclass must override this method to process the buffered events. - - - - - - The size of the cyclic buffer used to hold the logging events. - - - Set to by default. - - - - - The cyclic buffer used to store the logging events. - - - - - The triggering event evaluator that causes the buffer to be sent immediately. - - - The object that is used to determine if an event causes the entire - buffer to be sent immediately. This field can be null, which - indicates that event triggering is not to be done. The evaluator - can be set using the property. If this appender - has the ( property) set to - true then an must be set. - - - - - Indicates if the appender should overwrite events in the cyclic buffer - when it becomes full, or if the buffer should be flushed when the - buffer is full. - - - If this field is set to true then an must - be set. - - - - - The triggering event evaluator filters discarded events. - - - The object that is used to determine if an event that is discarded should - really be discarded or if it should be sent to the appenders. - This field can be null, which indicates that all discarded events will - be discarded. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - The events delivered to the subclass must be fixed. - - - - - Gets or sets a value that indicates whether the appender is lossy. - - - true if the appender is lossy, otherwise false. The default is false. - - - - This appender uses a buffer to store logging events before - delivering them. A triggering event causes the whole buffer - to be send to the remote sink. If the buffer overruns before - a triggering event then logging events could be lost. Set - to false to prevent logging events - from being lost. - - If is set to true then an - must be specified. - - - - - Gets or sets the size of the cyclic buffer used to hold the - logging events. - - - The size of the cyclic buffer used to hold the logging events. - - - - The option takes a positive integer - representing the maximum number of logging events to collect in - a cyclic buffer. When the is reached, - oldest events are deleted as new events are added to the - buffer. By default the size of the cyclic buffer is 512 events. - - - If the is set to a value less than - or equal to 1 then no buffering will occur. The logging event - will be delivered synchronously (depending on the - and properties). Otherwise the event will - be buffered. - - - - - - Gets or sets the that causes the - buffer to be sent immediately. - - - The that causes the buffer to be - sent immediately. - - - - The evaluator will be called for each event that is appended to this - appender. If the evaluator triggers then the current buffer will - immediately be sent (see ). - - If is set to true then an - must be specified. - - - - - Gets or sets the value of the to use. - - - The value of the to use. - - - - The evaluator will be called for each event that is discarded from this - appender. If the evaluator triggers then the current buffer will immediately - be sent (see ). - - - - - - Gets or sets a value indicating if only part of the logging event data - should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the - event data to be fixed and serialized. This will improve performance. - - - See for more information. - - - - - - Gets or sets a the fields that will be fixed in the event - - - The event fields that will be fixed before the event is buffered - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - - Initializes a new instance of the class. - - - Public default constructor to initialize a new instance of this class. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Override the parent method to close the database - - - - Closes the database command and database connection. - - - - - - Inserts the events into the database. - - The events to insert into the database. - - - Insert all the events specified in the - array into the database. - - - - - - Adds a parameter to the command. - - The parameter to add to the command. - - - Adds a parameter to the ordered list of command parameters. - - - - - - Writes the events to the database using the transaction specified. - - The transaction that the events will be executed under. - The array of events to insert into the database. - - - The transaction argument can be null if the appender has been - configured not to use transactions. See - property for more information. - - - - - - Formats the log message into database statement text. - - The event being logged. - - This method can be overridden by subclasses to provide - more control over the format of the database statement. - - - Text that can be passed to a . - - - - - Connects to the database. - - - - - Retrieves the class type of the ADO.NET provider. - - - - Gets the Type of the ADO.NET provider to use to connect to the - database. This method resolves the type specified in the - property. - - - Subclasses can override this method to return a different type - if necessary. - - - The of the ADO.NET provider - - - - Prepares the database command and initialize the parameters. - - - - - Flag to indicate if we are using a command object - - - - Set to true when the appender is to use a prepared - statement or stored procedure to insert into the database. - - - - - - The list of objects. - - - - The list of objects. - - - - - - The security context to use for privileged calls - - - - - The that will be used - to insert logging events into a database. - - - - - The database command. - - - - - Database connection string. - - - - - String type name of the type name. - - - - - The text of the command. - - - - - The command type. - - - - - Indicates whether to use transactions when writing to the database. - - - - - Indicates whether to use transactions when writing to the database. - - - - - Gets or sets the database connection string that is used to connect to - the database. - - - The database connection string used to connect to the database. - - - - The connections string is specific to the connection type. - See for more information. - - - Connection string for MS Access via ODBC: - "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" - - Another connection string for MS Access via ODBC: - "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" - - Connection string for MS Access via OLE DB: - "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" - - - - - Gets or sets the type name of the connection - that should be created. - - - The type name of the connection. - - - - The type name of the ADO.NET provider to use. - - - The default is to use the OLE DB provider. - - - Use the OLE DB Provider. This is the default value. - System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the MS SQL Server Provider. - System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use the ODBC Provider. - Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for ODBC .NET Data Provider. - - Use the Oracle Provider. - System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - This is an optional package that you can download from - http://msdn.microsoft.com/downloads - search for .NET Managed Provider for Oracle. - - - - - Gets or sets the command text that is used to insert logging events - into the database. - - - The command text used to insert logging events into the database. - - - - Either the text of the prepared statement or the - name of the stored procedure to execute to write into - the database. - - - The property determines if - this text is a prepared statement or a stored procedure. - - - - - - Gets or sets the command type to execute. - - - The command type to execute. - - - - This value may be either (System.Data.CommandType.Text) to specify - that the is a prepared statement to execute, - or (System.Data.CommandType.StoredProcedure) to specify that the - property is the name of a stored procedure - to execute. - - - The default value is (System.Data.CommandType.Text). - - - - - - Should transactions be used to insert logging events in the database. - - - true if transactions should be used to insert logging events in - the database, otherwise false. The default value is true. - - - - Gets or sets a value that indicates whether transactions should be used - to insert logging events in the database. - - - When set a single transaction will be used to insert the buffered events - into the database. Otherwise each event will be inserted without using - an explicit transaction. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Should this appender try to reconnect to the database on error. - - - true if the appender should try to reconnect to the database after an - error has occurred, otherwise false. The default value is false, - i.e. not to try to reconnect. - - - - The default behaviour is for the appender not to try to reconnect to the - database if an error occurs. Subsequent logging events are discarded. - - - To force the appender to attempt to reconnect to the database set this - property to true. - - - When the appender attempts to connect to the database there may be a - delay of up to the connection timeout specified in the connection string. - This delay will block the calling application's thread. - Until the connection can be reestablished this potential delay may occur multiple times. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to insert - logging events into a database. Classes deriving from - can use this property to get or set this . Use the - underlying returned from if - you require access beyond that which provides. - - - - - Parameter type used by the . - - - - This class provides the basic database parameter properties - as defined by the interface. - - This type can be subclassed to provide database specific - functionality. The two methods that are called externally are - and . - - - - - - Initializes a new instance of the class. - - - Default constructor for the AdoNetAppenderParameter class. - - - - - Prepare the specified database command object. - - The command to prepare. - - - Prepares the database command object by adding - this parameter to its collection of parameters. - - - - - - Renders the logging event and set the parameter value in the command. - - The command containing the parameter. - The event to be rendered. - - - Renders the logging event using this parameters layout - object. Sets the value of the parameter on the command object. - - - - - - The name of this parameter. - - - - - The database type for this parameter. - - - - - Flag to infer type rather than use the DbType - - - - - The precision for this parameter. - - - - - The scale for this parameter. - - - - - The size for this parameter. - - - - - The to use to render the - logging event into an object for this parameter. - - - - - Gets or sets the name of this parameter. - - - The name of this parameter. - - - - The name of this parameter. The parameter name - must match up to a named parameter to the SQL stored procedure - or prepared statement. - - - - - - Gets or sets the database type for this parameter. - - - The database type for this parameter. - - - - The database type for this parameter. This property should - be set to the database type from the - enumeration. See . - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the type from the value. - - - - - - - Gets or sets the precision for this parameter. - - - The precision for this parameter. - - - - The maximum number of digits used to represent the Value. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the precision from the value. - - - - - - - Gets or sets the scale for this parameter. - - - The scale for this parameter. - - - - The number of decimal places to which Value is resolved. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the scale from the value. - - - - - - - Gets or sets the size for this parameter. - - - The size for this parameter. - - - - The maximum size, in bytes, of the data within the column. - - - This property is optional. If not specified the ADO.NET provider - will attempt to infer the size from the value. - - - - - - - Gets or sets the to use to - render the logging event into an object for this - parameter. - - - The used to render the - logging event into an object for this parameter. - - - - The that renders the value for this - parameter. - - - The can be used to adapt - any into a - for use in the property. - - - - - - Appends logging events to the terminal using ANSI color escape sequences. - - - - AnsiColorTerminalAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific level of message to be set. - - - This appender expects the terminal to understand the VT100 control set - in order to interpret the color codes. If the terminal or console does not - understand the control codes the behavior is not defined. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - When configuring the ANSI colored terminal appender, a mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - - These color values cannot be combined together to make new colors. - - - The attributes can be any combination of the following: - - Brightforeground is brighter - Dimforeground is dimmer - Underscoremessage is underlined - Blinkforeground is blinking (does not work on all terminals) - Reverseforeground and background are reversed - Hiddenoutput is hidden - Strikethroughmessage has a line through it - - While any of these attributes may be combined together not all combinations - work well together, for example setting both Bright and Dim attributes makes - no sense. - - - Patrick Wagstrom - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Ansi code to reset terminal - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Add a mapping of level to color - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colours - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - Target is the value of the console output stream. - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible display attributes - - - - The following flags can be combined together to - form the ANSI color attributes. - - - - - - - text is bright - - - - - text is dim - - - - - text is underlined - - - - - text is blinking - - - Not all terminals support this attribute - - - - - text and background colors are reversed - - - - - text is hidden - - - - - text is displayed with a strikethrough - - - - - The enum of possible foreground or background color values for - use with the color mapping method - - - - The output can be in one for the following ANSI colors. - - - - - - - color is black - - - - - color is red - - - - - color is green - - - - - color is yellow - - - - - color is blue - - - - - color is magenta - - - - - color is cyan - - - - - color is white - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - An entry in the - - - - This is an abstract base class for types that are stored in the - object. - - - Nicko Cadell - - - - Default protected constructor - - - - Default protected constructor - - - - - - Initialize any options defined on this entry - - - - Should be overridden by any classes that need to initialise based on their options - - - - - - The level that is the key for this mapping - - - The that is the key for this mapping - - - - Get or set the that is the key for this - mapping subclass. - - - - - - Initialize the options for the object - - - - Combine the and together - and append the attributes. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level - - - - - - The color attributes for the specified level - - - - Required property. - The color attributes for the specified level - - - - - - The combined , and - suitable for setting the ansi terminal color. - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a AppenderCollection instance. - - list to create a readonly wrapper arround - - An AppenderCollection wrapper that is read-only. - - - - - An empty readonly static AppenderCollection - - - - - Initializes a new instance of the AppenderCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the AppenderCollection class - that has the specified initial capacity. - - - The number of elements that the new AppenderCollection is initially capable of storing. - - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified AppenderCollection. - - The AppenderCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the AppenderCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire AppenderCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire AppenderCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the AppenderCollection. - - The to be added to the end of the AppenderCollection. - The index at which the value has been added. - - - - Removes all elements from the AppenderCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the AppenderCollection. - - The to check for. - true if is found in the AppenderCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the AppenderCollection. - - The to locate in the AppenderCollection. - - The zero-based index of the first occurrence of - in the entire AppenderCollection, if found; otherwise, -1. - - - - - Inserts an element into the AppenderCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the AppenderCollection. - - The to remove from the AppenderCollection. - - The specified was not found in the AppenderCollection. - - - - - Removes the element at the specified index of the AppenderCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the AppenderCollection. - - An for the entire AppenderCollection. - - - - Adds the elements of another AppenderCollection to the current AppenderCollection. - - The AppenderCollection whose elements should be added to the end of the current AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a array to the current AppenderCollection. - - The array whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Adds the elements of a collection to the current AppenderCollection. - - The collection whose elements should be added to the end of the AppenderCollection. - The new of the AppenderCollection. - - - - Sets the capacity to the actual number of elements. - - - - - Return the collection elements as an array - - the array - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the AppenderCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the AppenderCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - - - - - Appends log events to the ASP.NET system. - - - - - Diagnostic information and tracing messages that you specify are appended to the output - of the page that is sent to the requesting browser. Optionally, you can view this information - from a separate trace viewer (Trace.axd) that displays trace information for every page in a - given application. - - - Trace statements are processed and displayed only when tracing is enabled. You can control - whether tracing is displayed to a page, to the trace viewer, or both. - - - The logging event is passed to the or - method depending on the level of the logging event. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the ASP.NET trace - - the event to log - - - Write the logging event to the ASP.NET trace - HttpContext.Current.Trace - (). - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Buffers events and then forwards them to attached appenders. - - - - The events are buffered in this appender until conditions are - met to allow the appender to deliver the events to the attached - appenders. See for the - conditions that cause the buffer to be sent. - - The forwarding appender can be used to specify different - thresholds and filters for the same appender at different locations - within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Interface for attaching appenders to objects. - - - - Interface for attaching, removing and retrieving appenders. - - - Nicko Cadell - Gert Driesen - - - - Attaches an appender. - - The appender to add. - - - Add the specified appender. The implementation may - choose to allow or deny duplicate appenders. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Returns an attached appender with the specified. - If no appender with the specified name is found null will be - returned. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Gets all attached appenders. - - - A collection of attached appenders. - - - - Gets a collection of attached appenders. - If there are no attached appenders the - implementation should return an empty - collection rather than null. - - - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Send the events. - - The events that need to be send. - - - Forwards the events to the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this buffering appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Appends logging events to the console. - - - - ColoredConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. It also allows the color of a specific type of message to be set. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes directly to the application's attached console - not to the System.Console.Out or System.Console.Error TextWriter. - The System.Console.Out and System.Console.Error streams can be - programmatically redirected (for example NUnit does this to capture program output). - This appender will ignore these redirections because it needs to use Win32 - API calls to colorize the output. To respect these redirections the - must be used. - - - When configuring the colored console appender, mapping should be - specified to map a logging level to a color. For example: - - - - - - - - - - - - - - The Level is the standard log4net logging level and ForeColor and BackColor can be any - combination of the following values: - - Blue - Green - Red - White - Yellow - Purple - Cyan - HighIntensity - - - - Rick Hobbs - Nicko Cadell - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - Add a mapping of level to color - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the foreground and background colors - for a level. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to color mappings set on this appender. - - - - - - Flag to write output to the error stream rather than the standard output stream - - - - - Mapping from level object to color value - - - - - The console output stream writer to write to - - - - This writer is not thread safe. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - The enum of possible color values for use with the color mapping method - - - - The following flags can be combined together to - form the colors. - - - - - - - color is blue - - - - - color is green - - - - - color is red - - - - - color is white - - - - - color is yellow - - - - - color is purple - - - - - color is cyan - - - - - color is intensified - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and the color it should be displayed in. - - - - - - Initialize the options for the object - - - - Combine the and together. - - - - - - The mapped foreground color for the specified level - - - - Required property. - The mapped foreground color for the specified level. - - - - - - The mapped background color for the specified level - - - - Required property. - The mapped background color for the specified level. - - - - - - The combined and suitable for - setting the console color. - - - - - Appends logging events to the console. - - - - ConsoleAppender appends log events to the standard output stream - or the error output stream using a layout specified by the - user. - - - By default, all output is written to the console's standard output stream. - The property can be set to direct the output to the - error stream. - - - NOTE: This appender writes each message to the System.Console.Out or - System.Console.Error that is set at the time the event is appended. - Therefore it is possible to programmatically redirect the output of this appender - (for example NUnit does this to capture program output). While this is the desired - behavior of this appender it may have security implications in your application. - - - Nicko Cadell - Gert Driesen - - - - The to use when writing to the Console - standard output stream. - - - - The to use when writing to the Console - standard output stream. - - - - - - The to use when writing to the Console - standard error output stream. - - - - The to use when writing to the Console - standard error output stream. - - - - - - Initializes a new instance of the class. - - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - - The instance of the class is set up to write - to the standard output stream. - - - - - Initializes a new instance of the class - with the specified layout. - - the layout to use for this appender - flag set to true to write to the console error stream - - When is set to true, output is written to - the standard error output stream. Otherwise, output is written to the standard - output stream. - - - - - This method is called by the method. - - The event to log. - - - Writes the event to the console. - - - The format of the output will depend on the appender's layout. - - - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - Target is the value of the console output stream. - This is either "Console.Out" or "Console.Error". - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - debug system. - - - Events are written using the - method. The event's logger name is passed as the value for the category name to the Write method. - - - Nicko Cadell - - - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - If is true then the - is called. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Writes events to the system event log. - - - - The EventID of the event log entry can be - set using the EventLogEventID property () - on the . - - - There is a limit of 32K characters for an event log message - - - When configuring the EventLogAppender a mapping can be - specified to map a logging level to an event log entry type. For example: - - - <mapping> - <level value="ERROR" /> - <eventLogEntryType value="Error" /> - </mapping> - <mapping> - <level value="DEBUG" /> - <eventLogEntryType value="Information" /> - </mapping> - - - The Level is the standard log4net logging level and eventLogEntryType can be any value - from the enum, i.e.: - - Erroran error event - Warninga warning event - Informationan informational event - - - - Aspi Havewala - Douglas de la Torre - Nicko Cadell - Gert Driesen - Thomas Voss - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class - with the specified . - - The to use with this appender. - - - Obsolete constructor. - - - - - - Add a mapping of level to - done by the config file - - The mapping to add - - - Add a mapping to this appender. - Each mapping defines the event log entry type for a level. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create an event log source - - - Uses different API calls under NET_2_0 - - - - - This method is called by the - method. - - the event to log - - Writes the event to the system event log using the - . - - If the event has an EventID property (see ) - set then this integer will be used as the event log event id. - - - There is a limit of 32K characters for an event log message - - - - - - Get the equivalent for a - - the Level to convert to an EventLogEntryType - The equivalent for a - - Because there are fewer applicable - values to use in logging levels than there are in the - this is a one way mapping. There is - a loss of information during the conversion. - - - - - The log name is the section in the event logs where the messages - are stored. - - - - - Name of the application to use when logging. This appears in the - application column of the event log named by . - - - - - The name of the machine which holds the event log. This is - currently only allowed to be '.' i.e. the current machine. - - - - - Mapping from level object to EventLogEntryType - - - - - The security context to use for privileged calls - - - - - The name of the log where messages will be stored. - - - The string name of the log where messages will be stored. - - - This is the name of the log as it appears in the Event Viewer - tree. The default value is to log into the Application - log, this is where most applications write their events. However - if you need a separate log for your application (or applications) - then you should set the appropriately. - This should not be used to distinguish your event log messages - from those of other applications, the - property should be used to distinguish events. This property should be - used to group together events into a single log. - - - - - - Property used to set the Application name. This appears in the - event logs when logging. - - - The string used to distinguish events from different sources. - - - Sets the event log source property. - - - - - This property is used to return the name of the computer to use - when accessing the event logs. Currently, this is the current - computer, denoted by a dot "." - - - The string name of the machine holding the event log that - will be logged into. - - - This property cannot be changed. It is currently set to '.' - i.e. the local machine. This may be changed in future. - - - - - Gets or sets the used to write to the EventLog. - - - The used to write to the EventLog. - - - - The system security context used to write to the EventLog. - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - A class to act as a mapping between the level that a logging call is made at and - the color it should be displayed as. - - - - Defines the mapping between a level and its event log entry type. - - - - - - The for this entry - - - - Required property. - The for this entry - - - - - - Appends logging events to a file. - - - - Logging events are sent to the file specified by - the property. - - - The file can be opened in either append or overwrite mode - by specifying the property. - If the file path is relative it is taken as relative from - the application base directory. The file encoding can be - specified by setting the property. - - - The layout's and - values will be written each time the file is opened and closed - respectively. If the property is - then the file may contain multiple copies of the header and footer. - - - This appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - The supports pluggable file locking models via - the property. - The default behavior, implemented by - is to obtain an exclusive write lock on the file until this appender is closed. - The alternative model, , only holds a - write lock while the appender is writing a logging event. - - - Nicko Cadell - Gert Driesen - Rodrigo B. de Oliveira - Douglas de la Torre - Niall Daley - - - - Sends logging events to a . - - - - An Appender that writes to a . - - - This appender may be used stand alone if initialized with an appropriate - writer, however it is typically used as a base class for an appender that - can open a to write to. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initializes a new instance of the class and - sets the output destination to a new initialized - with the specified . - - The layout to use with this appender. - The to output to. - - - Obsolete constructor. - - - - - - Initializes a new instance of the class and sets - the output destination to the specified . - - The layout to use with this appender - The to output to - - The must have been previously opened. - - - - Obsolete constructor. - - - - - - This method determines if there is a sense in attempting to append. - - - - This method checked if an output target has been set and if a - layout has been set. - - - false if any of the preconditions fail. - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - This method writes all the bulk logged events to the output writer - before flushing the stream. - - - - - - Close this appender instance. The underlying stream or writer is also closed. - - - Closed appenders cannot be reused. - - - - - Writes the footer and closes the underlying . - - - - Writes the footer and closes the underlying . - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Clears internal references to the underlying - and other variables. - - - - Subclasses can override this method for an alternate closing behavior. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Called to allow a subclass to lazily initialize the writer - - - - This method is called when an event is logged and the or - have not been set. This allows a subclass to - attempt to initialize the writer multiple times. - - - - - - This is the where logging events - will be written to. - - - - - Immediate flush means that the underlying - or output stream will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logging events are not actually persisted if and when the application - crashes. - - - The default value is true. - - - - - - Gets or set whether the appender will flush at the end - of each append operation. - - - - The default behavior is to flush at the end of each - append operation. - - - If this option is set to false, then the underlying - stream can defer persisting the logging event to a later - time. - - - - Avoiding the flush operation at the end of each append results in - a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - Sets the where the log output will go. - - - - The specified must be open and writable. - - - The will be closed when the appender - instance is closed. - - - Note: Logging to an unopened will fail. - - - - - - Gets or set the and the underlying - , if any, for this appender. - - - The for this appender. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Gets or sets the where logging events - will be written to. - - - The where logging events are written. - - - - This is the where logging events - will be written to. - - - - - - Default constructor - - - - Default constructor - - - - - - Construct a new appender using the layout, file and append mode. - - the layout to use with this appender - the full path to the file to write to - flag to indicate if the file should be appended to - - - Obsolete constructor. - - - - - - Construct a new appender using the layout and file specified. - The file will be appended to. - - the layout to use with this appender - the full path to the file to write to - - - Obsolete constructor. - - - - - - Activate the options on the file appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This will cause the file to be opened. - - - - - - Closes any previously opened file and calls the parent's . - - - - Resets the filename and the file stream. - - - - - - Called to initialize the file writer - - - - Will be called for each logged message until the file is - successfully opened. - - - - - - This method is called by the - method. - - The event to log. - - - Writes a log statement to the output stream if the output stream exists - and is writable. - - - The format of the output will depend on the appender's layout. - - - - - - This method is called by the - method. - - The array of events to log. - - - Acquires the output file locks once before writing all the events to - the stream. - - - - - - Writes a footer as produced by the embedded layout's property. - - - - Writes a footer as produced by the embedded layout's property. - - - - - - Writes a header produced by the embedded layout's property. - - - - Writes a header produced by the embedded layout's property. - - - - - - Closes the underlying . - - - - Closes the underlying . - - - - - - Closes the previously opened file. - - - - Writes the to the file and then - closes the file. - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - Calls but guarantees not to throw an exception. - Errors are passed to the . - - - - - - Sets and opens the file where the log output will go. The specified file must be writable. - - The path to the log file. Must be a fully qualified path. - If true will append to fileName. Otherwise will truncate fileName - - - If there was already an opened file, then the previous file - is closed first. - - - This method will ensure that the directory structure - for the specified exists. - - - - - - Sets the quiet writer used for file output - - the file stream that has been opened for writing - - - This implementation of creates a - over the and passes it to the - method. - - - This method can be overridden by sub classes that want to wrap the - in some way, for example to encrypt the output - data using a System.Security.Cryptography.CryptoStream. - - - - - - Sets the quiet writer being used. - - the writer over the file stream that has been opened for writing - - - This method can be overridden by sub classes that want to - wrap the in some way. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - Flag to indicate if we should append to the file - or overwrite the file. The default is to append. - - - - - The name of the log file. - - - - - The encoding to use for the file stream. - - - - - The security context to use for privileged calls - - - - - The stream to log to. Has added locking semantics - - - - - The locking model to use - - - - - Gets or sets the path to the file that logging will be written to. - - - The path to the file that logging will be written to. - - - - If the path is relative it is taken as relative from - the application base directory. - - - - - - Gets or sets a flag that indicates whether the file should be - appended to or overwritten. - - - Indicates whether the file should be appended to or overwritten. - - - - If the value is set to false then the file will be overwritten, if - it is set to true then the file will be appended to. - - The default value is true. - - - - - Gets or sets used to write to the file. - - - The used to write to the file. - - - - The default encoding set is - which is the encoding for the system's current ANSI code page. - - - - - - Gets or sets the used to write to the file. - - - The used to write to the file. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - Gets or sets the used to handle locking of the file. - - - The used to lock the file. - - - - Gets or sets the used to handle locking of the file. - - - There are two built in locking models, and . - The former locks the file from the start of logging to the end and the - later lock only for the minimal amount of time when logging each message. - - - The default locking model is the . - - - - - - Write only that uses the - to manage access to an underlying resource. - - - - - True asynchronous writes are not supported, the implementation forces a synchronous write. - - - - - Exception base type for log4net. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class with - the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Locking model base class - - - - Base class for the locking models available to the derived loggers. - - - - - - Open the output file - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - Gets or sets the for this LockingModel - - - The for this LockingModel - - - - The file appender this locking model is attached to and working on - behalf of. - - - The file appender is used to locate the security context and the error handler to use. - - - The value of this property will be set before is - called. - - - - - - Hold an exclusive lock on the output file - - - - Open the file once for writing and hold it open until is called. - Maintains an exclusive lock on the file during this time. - - - - - - Open the file specified and prepare for logging. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Does nothing. The lock is already taken - - - - - - Release the lock on the file - - - - Does nothing. The lock will be released when the file is closed. - - - - - - Acquires the file lock for each write - - - - Opens the file once for each / cycle, - thus holding the lock for the minimal amount of time. This method of locking - is considerably slower than but allows - other processes to move/delete the log file whilst logging continues. - - - - - - Prepares to open the file when the first message is logged. - - The filename to use - Whether to append to the file, or overwrite - The encoding to use - - - Open the file specified and prepare for logging. - No writes will be made until is called. - Must be called before any calls to , - and . - - - - - - Close the file - - - - Close the file. No further writes will be made. - - - - - - Acquire the lock on the file - - A stream that is ready to be written to. - - - Acquire the lock on the file in preparation for writing to it. - Return a stream pointing to the file. - must be called to release the lock on the output file. - - - - - - Release the lock on the file - - - - Release the lock on the file. No further writes will be made to the - stream until is called again. - - - - - - This appender forwards logging events to attached appenders. - - - - The forwarding appender can be used to specify different thresholds - and filters for the same appender at different locations within the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Closes the appender and releases resources. - - - - Releases any resources allocated within the appender such as file handles, - network connections, etc. - - - It is a programming error to append to a closed appender. - - - - - - Forward the logging event to the attached appenders - - The event to log. - - - Delivers the logging event to all the attached appenders. - - - - - - Forward the logging events to the attached appenders - - The array of events to log. - - - Delivers the logging events to all the attached appenders. - - - - - - Adds an to the list of appenders of this - instance. - - The to add to this appender. - - - If the specified is already in the list of - appenders, then it won't be added again. - - - - - - Looks for the appender with the specified name. - - The name of the appender to lookup. - - The appender with the specified name, or null. - - - - Get the named appender attached to this appender. - - - - - - Removes all previously added appenders from this appender. - - - - This is useful when re-reading configuration information. - - - - - - Removes the specified appender from the list of appenders. - - The appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - Implementation of the interface - - - - - Gets the appenders contained in this appender as an - . - - - If no appenders can be found, then an - is returned. - - - A collection of the appenders in this appender. - - - - - Logs events to a local syslog service. - - - - This appender uses the POSIX libc library functions openlog, syslog, and closelog. - If these functions are not available on the local system then this appender will not work! - - - The functions openlog, syslog, and closelog are specified in SUSv2 and - POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. - - - This appender talks to a local syslog service. If you need to log to a remote syslog - daemon and you cannot configure your local syslog service to do this you may be - able to use the to log via UDP. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a local syslog service. - - - - - Add a mapping of level to severity - - The mapping to add - - - Adds a to this appender. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Close the syslog when the appender is closed - - - - Close the syslog when the appender is closed - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - - The facility. The default facility is . - - - - - The message identity - - - - - Marshaled handle to the identity string. We have to hold on to the - string as the openlog and syslog APIs just hold the - pointer to the ident and dereference it for each log message. - - - - - Mapping from level object to syslog severity - - - - - Open connection to system logger. - - - - - Generate a log message. - - - - The libc syslog method takes a format string and a variable argument list similar - to the classic printf function. As this type of vararg list is not supported - by C# we need to specify the arguments explicitly. Here we have specified the - format string with a single message argument. The caller must set the format - string to "%s". - - - - - - Close descriptor used to write to system logger. - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - syslog severities - - - - The log4net Level maps to a syslog severity using the - method and the - class. The severity is set on . - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facility defines which subsystem the logging comes from. - This is set on the property. - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Stores logging events in an array. - - - - The memory appender stores all the logging events - that are appended in an in-memory array. - - - Use the method to get - the current list of events that have been appended. - - - Use the method to clear the - current list of events. - - - Julian Biddle - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Gets the events that have been logged. - - The events that have been logged - - - Gets the events that have been logged. - - - - - - This method is called by the method. - - the event to log - - Stores the in the events list. - - - - - Clear the list of events - - - Clear the list of events - - - - - The list of events that have been appended. - - - - - Value indicating which fields in the event should be fixed - - - By default all fields are fixed - - - - - Gets or sets a value indicating whether only part of the logging event - data should be fixed. - - - true if the appender should only fix part of the logging event - data, otherwise false. The default is false. - - - - Setting this property to true will cause only part of the event - data to be fixed and stored in the appender, hereby improving performance. - - - See for more information. - - - - - - Gets or sets the fields that will be fixed in the event - - - - The logging event needs to have certain thread specific values - captured before it can be buffered. See - for details. - - - - - - Logs entries by sending network messages using the - native function. - - - - You can send messages only to names that are active - on the network. If you send the message to a user name, - that user must be logged on and running the Messenger - service to receive the message. - - - The receiver will get a top most window displaying the - messages one at a time, therefore this appender should - not be used to deliver a high volume of messages. - - - The following table lists some possible uses for this appender : - - - - - Action - Property Value(s) - - - Send a message to a user account on the local machine - - - = <name of the local machine> - - - = <user name> - - - - - Send a message to a user account on a remote machine - - - = <name of the remote machine> - - - = <user name> - - - - - Send a message to a domain user account - - - = <name of a domain controller | uninitialized> - - - = <user name> - - - - - Send a message to all the names in a workgroup or domain - - - = <workgroup name | domain name>* - - - - - Send a message from the local machine to a remote machine - - - = <name of the local machine | uninitialized> - - - = <name of the remote machine> - - - - - - - Note : security restrictions apply for sending - network messages, see - for more information. - - - - - An example configuration section to log information - using this appender from the local machine, named - LOCAL_PC, to machine OPERATOR_PC : - - - - - - - - - - Nicko Cadell - Gert Driesen - - - - The DNS or NetBIOS name of the server on which the function is to execute. - - - - - The sender of the network message. - - - - - The message alias to which the message should be sent. - - - - - The security context to use for privileged calls - - - - - Initializes the appender. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified. - - - The required property was not specified. - - - - This method is called by the method. - - The event to log. - - - Sends the event using a network message. - - - - - - Sends a buffer of information to a registered message alias. - - The DNS or NetBIOS name of the server on which the function is to execute. - The message alias to which the message buffer should be sent - The originator of the message. - The message text. - The length, in bytes, of the message text. - - - The following restrictions apply for sending network messages: - - - - - Platform - Requirements - - - Windows NT - - - No special group membership is required to send a network message. - - - Admin, Accounts, Print, or Server Operator group membership is required to - successfully send a network message on a remote server. - - - - - Windows 2000 or later - - - If you send a message on a domain controller that is running Active Directory, - access is allowed or denied based on the access control list (ACL) for the securable - object. The default ACL permits only Domain Admins and Account Operators to send a network message. - - - On a member server or workstation, only Administrators and Server Operators can send a network message. - - - - - - - For more information see Security Requirements for the Network Management Functions. - - - - - If the function succeeds, the return value is zero. - - - - - - Gets or sets the sender of the message. - - - The sender of the message. - - - If this property is not specified, the message is sent from the local computer. - - - - - Gets or sets the message alias to which the message should be sent. - - - The recipient of the message. - - - This property should always be specified in order to send a message. - - - - - Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. - - - DNS or NetBIOS name of the remote server on which the function is to execute. - - - - For Windows NT 4.0 and earlier, the string should begin with \\. - - - If this property is not specified, the local computer is used. - - - - - - Gets or sets the used to call the NetSend method. - - - The used to call the NetSend method. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appends log events to the OutputDebugString system. - - - - OutputDebugStringAppender appends log events to the - OutputDebugString system. - - - The string is passed to the native OutputDebugString - function. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Write the logging event to the output debug string API - - the event to log - - - Write the logging event to the output debug string API - - - - - - Stub for OutputDebugString native method - - the string to output - - - Stub for OutputDebugString native method - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Logs events to a remote syslog daemon. - - - - The BSD syslog protocol is used to remotely log to - a syslog daemon. The syslogd listens for for messages - on UDP port 514. - - - The syslog UDP protocol is not authenticated. Most syslog daemons - do not accept remote log messages because of the security implications. - You may be able to use the LocalSyslogAppender to talk to a local - syslog service. - - - There is an RFC 3164 that claims to document the BSD Syslog Protocol. - This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. - This appender generates what the RFC calls an "Original Device Message", - i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation - this format of message will be accepted by all current syslog daemon - implementations. The daemon will attach the current time and the source - hostname or IP address to any messages received. - - - Syslog messages must have a facility and and a severity. The severity - is derived from the Level of the logging event. - The facility must be chosen from the set of defined syslog - values. The facilities list is predefined - and cannot be extended. - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - Rob Lyon - Nicko Cadell - - - - Sends logging events as connectionless UDP datagrams to a remote host or a - multicast group using an . - - - - UDP guarantees neither that messages arrive, nor that they arrive in the correct order. - - - To view the logging results, a custom application can be developed that listens for logging - events. - - - When decoding events send via this appender remember to use the same encoding - to decode the events as was used to send the events. See the - property to specify the encoding to use. - - - - This example shows how to log receive logging events that are sent - on IP address 244.0.0.1 and port 8080 to the console. The event is - encoded in the packet as a unicode string and it is decoded as such. - - IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); - UdpClient udpClient; - byte[] buffer; - string loggingEvent; - - try - { - udpClient = new UdpClient(8080); - - while(true) - { - buffer = udpClient.Receive(ref remoteEndPoint); - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); - Console.WriteLine(loggingEvent); - } - } - catch(Exception e) - { - Console.WriteLine(e.ToString()); - } - - - Dim remoteEndPoint as IPEndPoint - Dim udpClient as UdpClient - Dim buffer as Byte() - Dim loggingEvent as String - - Try - remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) - udpClient = new UdpClient(8080) - - While True - buffer = udpClient.Receive(ByRef remoteEndPoint) - loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) - Console.WriteLine(loggingEvent) - Wend - Catch e As Exception - Console.WriteLine(e.ToString()) - End Try - - - An example configuration section to log information using this appender to the - IP 224.0.0.1 on port 8080: - - - - - - - - - - Gert Driesen - Nicko Cadell - - - - Initializes a new instance of the class. - - - The default constructor initializes all fields to their default values. - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The appender will be ignored if no was specified or - an invalid remote or local TCP port number was specified. - - - The required property was not specified. - The TCP port number assigned to or is less than or greater than . - - - - This method is called by the method. - - The event to log. - - - Sends the event using an UDP datagram. - - - Exceptions are passed to the . - - - - - - Closes the UDP connection and releases all resources associated with - this instance. - - - - Disables the underlying and releases all managed - and unmanaged resources associated with the . - - - - - - Initializes the underlying connection. - - - - The underlying is initialized and binds to the - port number from which you intend to communicate. - - - Exceptions are passed to the . - - - - - - The IP address of the remote host or multicast group to which - the logging event will be sent. - - - - - The TCP port number of the remote host or multicast group to - which the logging event will be sent. - - - - - The cached remote endpoint to which the logging events will be sent. - - - - - The TCP port number from which the will communicate. - - - - - The instance that will be used for sending the - logging events. - - - - - The encoding to use for the packet. - - - - - Gets or sets the IP address of the remote host or multicast group to which - the underlying should sent the logging event. - - - The IP address of the remote host or multicast group to which the logging event - will be sent. - - - - Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to - 239.255.255.255). Multicast packets can pass across different networks through routers, so - it is possible to use multicasts in an Internet scenario as long as your network provider - supports multicasting. - - - Hosts that want to receive particular multicast messages must register their interest by joining - the multicast group. Multicast messages are not sent to networks where no host has joined - the multicast group. Class D IP addresses are used for multicast groups, to differentiate - them from normal host addresses, allowing nodes to easily detect if a message is of interest. - - - Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: - - - - - IP Address - Description - - - 224.0.0.1 - - - Sends a message to all system on the subnet. - - - - - 224.0.0.2 - - - Sends a message to all routers on the subnet. - - - - - 224.0.0.12 - - - The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. - - - - - - - A complete list of actually reserved multicast addresses and their owners in the ranges - defined by RFC 3171 can be found at the IANA web site. - - - The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative - addresses. These addresses can be reused with other local groups. Routers are typically - configured with filters to prevent multicast traffic in this range from flowing outside - of the local network. - - - - - - Gets or sets the TCP port number of the remote host or multicast group to which - the underlying should sent the logging event. - - - An integer value in the range to - indicating the TCP port number of the remote host or multicast group to which the logging event - will be sent. - - - The underlying will send messages to this TCP port number - on the remote host or multicast group. - - The value specified is less than or greater than . - - - - Gets or sets the TCP port number from which the underlying will communicate. - - - An integer value in the range to - indicating the TCP port number from which the underlying will communicate. - - - - The underlying will bind to this port for sending messages. - - - Setting the value to 0 (the default) will cause the udp client not to bind to - a local port. - - - The value specified is less than or greater than . - - - - Gets or sets used to write the packets. - - - The used to write the packets. - - - - The used to write the packets. - - - - - - Gets or sets the underlying . - - - The underlying . - - - creates a to send logging events - over a network. Classes deriving from can use this - property to get or set this . Use the underlying - returned from if you require access beyond that which - provides. - - - - - Gets or sets the cached remote endpoint to which the logging events should be sent. - - - The cached remote endpoint to which the logging events will be sent. - - - The method will initialize the remote endpoint - with the values of the and - properties. - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Syslog port 514 - - - - - Initializes a new instance of the class. - - - This instance of the class is set up to write - to a remote syslog daemon. - - - - - Add a mapping of level to severity - - The mapping to add - - - Add a mapping to this appender. - - - - - - This method is called by the method. - - The event to log. - - - Writes the event to a remote syslog daemon. - - - The format of the output will depend on the appender's layout. - - - - - - Initialize the options for this appender - - - - Initialize the level to syslog severity mappings set on this appender. - - - - - - Translates a log4net level to a syslog severity. - - A log4net level. - A syslog severity. - - - Translates a log4net level to a syslog severity. - - - - - - Generate a syslog priority. - - The syslog facility. - The syslog severity. - A syslog priority. - - - Generate a syslog priority. - - - - - - The facility. The default facility is . - - - - - The message identity - - - - - Mapping from level object to syslog severity - - - - - Message identity - - - - An identifier is specified with each log message. This can be specified - by setting the property. The identity (also know - as the tag) must not contain white space. The default value for the - identity is the application name (from ). - - - - - - Syslog facility - - - Set to one of the values. The list of - facilities is predefined and cannot be extended. The default value - is . - - - - - syslog severities - - - - The syslog severities. - - - - - - system is unusable - - - - - action must be taken immediately - - - - - critical conditions - - - - - error conditions - - - - - warning conditions - - - - - normal but significant condition - - - - - informational - - - - - debug-level messages - - - - - syslog facilities - - - - The syslog facilities - - - - - - kernel messages - - - - - random user-level messages - - - - - mail system - - - - - system daemons - - - - - security/authorization messages - - - - - messages generated internally by syslogd - - - - - line printer subsystem - - - - - network news subsystem - - - - - UUCP subsystem - - - - - clock (cron/at) daemon - - - - - security/authorization messages (private) - - - - - ftp daemon - - - - - NTP subsystem - - - - - log audit - - - - - log alert - - - - - clock daemon - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - reserved for local use - - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - A class to act as a mapping between the level that a logging call is made at and - the syslog severity that is should be logged at. - - - - - - The mapped syslog severity for the specified level - - - - Required property. - The mapped syslog severity for the specified level - - - - - - Delivers logging events to a remote logging sink. - - - - This Appender is designed to deliver events to a remote sink. - That is any object that implements the - interface. It delivers the events using .NET remoting. The - object to deliver events to is specified by setting the - appenders property. - - The RemotingAppender buffers events before sending them. This allows it to - make more efficient use of the remoting infrastructure. - - Once the buffer is full the events are still not sent immediately. - They are scheduled to be sent using a pool thread. The effect is that - the send occurs asynchronously. This is very important for a - number of non obvious reasons. The remoting infrastructure will - flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - Because the events are sent asynchronously using pool threads it is possible to close - this appender before all the queued events have been sent. - When closing the appender attempts to wait until all the queued events have been sent, but - this will timeout after 30 seconds regardless. - - If this appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. If the runtime terminates the threads before - the queued events have been sent then they will be lost. To ensure that all events - are sent the appender must be closed before the application exits. See - for details on how to shutdown - log4net programmatically. - - - Nicko Cadell - Gert Driesen - Daniel Cazzulino - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Send the contents of the buffer to the remote sink. - - - The events are not sent immediately. They are scheduled to be sent - using a pool thread. The effect is that the send occurs asynchronously. - This is very important for a number of non obvious reasons. The remoting - infrastructure will flow thread local variables (stored in the ), - if they are marked as , across the - remoting boundary. If the server is not contactable then - the remoting infrastructure will clear the - objects from the . To prevent a logging failure from - having side effects on the calling application the remoting call must be made - from a separate thread to the one used by the application. A - thread is used for this. If no thread is available then - the events will block in the thread pool manager until a thread is available. - - The events to send. - - - - Override base class close. - - - - This method waits while there are queued work items. The events are - sent asynchronously using work items. These items - will be sent once a thread pool thread is available to send them, therefore - it is possible to close the appender before all the queued events have been - sent. - - This method attempts to wait until all the queued events have been sent, but this - method will timeout after 30 seconds regardless. - - If the appender is being closed because the - event has fired it may not be possible to send all the queued events. During process - exit the runtime limits the time that a - event handler is allowed to run for. - - - - - A work item is being queued into the thread pool - - - - - A work item from the thread pool has completed - - - - - Send the contents of the buffer to the remote sink. - - - This method is designed to be used with the . - This method expects to be passed an array of - objects in the state param. - - the logging events to send - - - - The URL of the remote sink. - - - - - The local proxy (.NET remoting) for the remote logging sink. - - - - - The number of queued callbacks currently waiting or executing - - - - - Event used to signal when there are no queued work items - - - This event is set when there are no queued work items. In this - state it is safe to close the appender. - - - - - Gets or sets the URL of the well-known object that will accept - the logging events. - - - The well-known URL of the remote sink. - - - - The URL of the remoting sink that will accept logging events. - The sink must implement the - interface. - - - - - - Interface used to deliver objects to a remote sink. - - - This interface must be implemented by a remoting sink - if the is to be used - to deliver logging events to the sink. - - - - - Delivers logging events to the remote sink - - Array of events to log. - - - Delivers logging events to the remote sink - - - - - - Appender that rolls log files based on size or date or both. - - - - RollingFileAppender can roll log files based on size or date or both - depending on the setting of the property. - When set to the log file will be rolled - once its size exceeds the . - When set to the log file will be rolled - once the date boundary specified in the property - is crossed. - When set to the log file will be - rolled once the date boundary specified in the property - is crossed, but within a date boundary the file will also be rolled - once its size exceeds the . - When set to the log file will be rolled when - the appender is configured. This effectively means that the log file can be - rolled once per program execution. - - - A of few additional optional features have been added: - - Attach date pattern for current log file - Backup number increments for newer files - Infinite number of backups by file size - - - - - - For large or infinite numbers of backup files a - greater than zero is highly recommended, otherwise all the backup files need - to be renamed each time a new backup is created. - - - When Date/Time based rolling is used setting - to will reduce the number of file renamings to few or none. - - - - - - Changing or without clearing - the log file directory of backup files will cause unexpected and unwanted side effects. - - - - - If Date/Time based rolling is enabled this appender will attempt to roll existing files - in the directory without a Date/Time tag based on the last write date of the base log file. - The appender only rolls the log file when a message is logged. If Date/Time based rolling - is enabled then the appender will not roll the log file at the Date/Time boundary but - at the point when the next message is logged after the boundary has been crossed. - - - - The extends the and - has the same behavior when opening the log file. - The appender will first try to open the file for writing when - is called. This will typically be during configuration. - If the file cannot be opened for writing the appender will attempt - to open the file again each time a message is logged to the appender. - If the file cannot be opened for writing when a message is logged then - the message will be discarded by this appender. - - - When rolling a backup file necessitates deleting an older backup file the - file to be deleted is moved to a temporary name before being deleted. - - - - - A maximum number of backup files when rolling on date/time boundaries is not supported. - - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - Edward Smit - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Sets the quiet writer being used. - - - This method can be overridden by sub classes. - - the writer to set - - - - Write out a logging event. - - the event to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Write out an array of logging events. - - the events to write to file. - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Performs any required rolling before outputting the next event - - - - Handles append time behavior for RollingFileAppender. This checks - if a roll over either by date (checked first) or time (checked second) - is need and then appends to the file last. - - - - - - Creates and opens the file for logging. If - is false then the fully qualified name is determined and used. - - the name of the file to open - true to append to existing file - - This method will ensure that the directory structure - for the specified exists. - - - - - Get the current output file name - - the base file name - the output file name - - The output file name is based on the base fileName specified. - If is set then the output - file name is the same as the base file passed in. Otherwise - the output file depends on the date pattern, on the count - direction or both. - - - - - Determines curSizeRollBackups (only within the current roll point) - - - - - Generates a wildcard pattern that can be used to find all files - that are similar to the base file name. - - - - - - - Builds a list of filenames for all files matching the base filename plus a file - pattern. - - - - - - - Initiates a roll over if needed for crossing a date boundary since the last run. - - - - - Initializes based on existing conditions at time of . - - - - Initializes based on existing conditions at time of . - The following is done - - determine curSizeRollBackups (only within the current roll point) - initiates a roll over if needed for crossing a date boundary since the last run. - - - - - - - Does the work of bumping the 'current' file counter higher - to the highest count when an incremental file name is seen. - The highest count is either the first file (when count direction - is greater than 0) or the last file (when count direction less than 0). - In either case, we want to know the highest count that is present. - - - - - - - Takes a list of files and a base file name, and looks for - 'incremented' versions of the base file. Bumps the max - count up to the highest count seen. - - - - - - - Calculates the RollPoint for the datePattern supplied. - - the date pattern to calculate the check period for - The RollPoint that is most accurate for the date pattern supplied - - Essentially the date pattern is examined to determine what the - most suitable roll point is. The roll point chosen is the roll point - with the smallest period that can be detected using the date pattern - supplied. i.e. if the date pattern only outputs the year, month, day - and hour then the smallest roll point that can be detected would be - and hourly roll point as minutes could not be detected. - - - - - Initialize the appender based on the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Sets initial conditions including date/time roll over information, first check, - scheduledFilename, and calls to initialize - the current number of backups. - - - - - - Rollover the file(s) to date/time tagged file(s). - - set to true if the file to be rolled is currently open - - - Rollover the file(s) to date/time tagged file(s). - Resets curSizeRollBackups. - If fileIsOpen is set then the new file is opened (through SafeOpenFile). - - - - - - Renames file to file . - - Name of existing file to roll. - New name for file. - - - Renames file to file . It - also checks for existence of target file and deletes if it does. - - - - - - Test if a file exists at a specified path - - the path to the file - true if the file exists - - - Test if a file exists at a specified path - - - - - - Deletes the specified file if it exists. - - The file to delete. - - - Delete a file if is exists. - The file is first moved to a new filename then deleted. - This allows the file to be removed even when it cannot - be deleted, but it still can be moved. - - - - - - Implements file roll base on file size. - - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. Moreover, File is - renamed File.1 and closed. - - - A new file is created to receive further log output. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - - - - Implements file roll. - - the base name to rename - - - If the maximum number of size based backups is reached - (curSizeRollBackups == maxSizeRollBackups) then the oldest - file is deleted -- its index determined by the sign of countDirection. - If countDirection < 0, then files - {File.1, ..., File.curSizeRollBackups -1} - are renamed to {File.2, ..., - File.curSizeRollBackups}. - - - If maxSizeRollBackups is equal to zero, then the - File is truncated with no backup files created. - - - If maxSizeRollBackups < 0, then File is - renamed if needed and no files are deleted. - - - This is called by to rename the files. - - - - - - Get the start time of the next window for the current rollpoint - - the current date - the type of roll point we are working with - the start time for the next roll point an interval after the currentDateTime date - - - Returns the date of the next roll point after the currentDateTime date passed to the method. - - - The basic strategy is to subtract the time parts that are less significant - than the rollpoint from the current time. This should roll the time back to - the start of the time window for the current rollpoint. Then we add 1 window - worth of time and get the start time of the next window for the rollpoint. - - - - - - This object supplies the current date/time. Allows test code to plug in - a method to control this class when testing date/time based rolling. - - - - - The date pattern. By default, the pattern is set to ".yyyy-MM-dd" - meaning daily rollover. - - - - - The actual formatted filename that is currently being written to - or will be the file transferred to on roll over - (based on staticLogFileName). - - - - - The timestamp when we shall next recompute the filename. - - - - - Holds date of last roll over - - - - - The type of rolling done - - - - - The default maximum file size is 10MB - - - - - There is zero backup files by default - - - - - How many sized based backups have been made so far - - - - - The rolling file count direction. - - - - - The rolling mode used in this appender. - - - - - Cache flag set if we are rolling by date. - - - - - Cache flag set if we are rolling by size. - - - - - Value indicating whether to always log to the same file. - - - - - FileName provided in configuration. Used for rolling properly - - - - - The 1st of January 1970 in UTC - - - - - Gets or sets the date pattern to be used for generating file names - when rolling over on date. - - - The date pattern to be used for generating file names when rolling - over on date. - - - - Takes a string in the same format as expected by - . - - - This property determines the rollover schedule when rolling over - on date. - - - - - - Gets or sets the maximum number of backup files that are kept before - the oldest is erased. - - - The maximum number of backup files that are kept before the oldest is - erased. - - - - If set to zero, then there will be no backup files and the log file - will be truncated when it reaches . - - - If a negative number is supplied then no deletions will be made. Note - that this could result in very slow performance as a large number of - files are rolled over unless is used. - - - The maximum applies to each time based group of files and - not the total. - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size in bytes that the output file is allowed to reach before being - rolled over to backup files. - - - - This property is equivalent to except - that it is required for differentiating the setter taking a - argument from the setter taking a - argument. - - - The default maximum file size is 10MB (10*1024*1024). - - - - - - Gets or sets the maximum size that the output file is allowed to reach - before being rolled over to backup files. - - - The maximum size that the output file is allowed to reach before being - rolled over to backup files. - - - - This property allows you to specify the maximum size with the - suffixes "KB", "MB" or "GB" so that the size is interpreted being - expressed respectively in kilobytes, megabytes or gigabytes. - - - For example, the value "10KB" will be interpreted as 10240 bytes. - - - The default maximum file size is 10MB. - - - If you have the option to set the maximum file size programmatically - consider using the property instead as this - allows you to set the size in bytes as a . - - - - - - Gets or sets the rolling file count direction. - - - The rolling file count direction. - - - - Indicates if the current file is the lowest numbered file or the - highest numbered file. - - - By default newer files have lower numbers ( < 0), - i.e. log.1 is most recent, log.5 is the 5th backup, etc... - - - >= 0 does the opposite i.e. - log.1 is the first backup made, log.5 is the 5th backup made, etc. - For infinite backups use >= 0 to reduce - rollover costs. - - The default file count direction is -1. - - - - - Gets or sets the rolling style. - - The rolling style. - - - The default rolling style is . - - - When set to this appender's - property is set to false, otherwise - the appender would append to a single file rather than rolling - the file each time it is opened. - - - - - - Gets or sets a value indicating whether to always log to - the same file. - - - true if always should be logged to the same file, otherwise false. - - - - By default file.log is always the current file. Optionally - file.log.yyyy-mm-dd for current formatted datePattern can by the currently - logging file (or file.log.curSizeRollBackup or even - file.log.yyyy-mm-dd.curSizeRollBackup). - - - This will make time based rollovers with a large number of backups - much faster as the appender it won't have to rename all the backups! - - - - - - Style of rolling to use - - - - Style of rolling to use - - - - - - Roll files once per program execution - - - - Roll files once per program execution. - Well really once each time this appender is - configured. - - - Setting this option also sets AppendToFile to - false on the RollingFileAppender, otherwise - this appender would just be a normal file appender. - - - - - - Roll files based only on the size of the file - - - - - Roll files based only on the date - - - - - Roll files based on both the size and date of the file - - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - The code assumes that the following 'time' constants are in a increasing sequence. - - - - - - Roll the log not based on the date - - - - - Roll the log for each minute - - - - - Roll the log for each hour - - - - - Roll the log twice a day (midday and midnight) - - - - - Roll the log each day (midnight) - - - - - Roll the log each week - - - - - Roll the log each month - - - - - This interface is used to supply Date/Time information to the . - - - This interface is used to supply Date/Time information to the . - Used primarily to allow test classes to plug themselves in so they can - supply test date/times. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Default implementation of that returns the current time. - - - - - Gets the current time. - - The current time. - - - Gets the current time. - - - - - - Send an e-mail when a specific logging event occurs, typically on errors - or fatal errors. - - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. - For these features to be enabled you need to ensure that you are using a version of - the log4net assembly that is built against the MS .NET 1.1 framework and that you are - running the your application on the MS .NET 1.1 runtime. On all other platforms only sending - unauthenticated messages to a server listening on port 25 (the default) is supported. - - - Authentication is supported by setting the property to - either or . - If using authentication then the - and properties must also be set. - - - To set the SMTP server port use the property. The default port is 25. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - - Send the email message - - the body text to include in the mail - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of recipient e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the name of the SMTP relay mail server to use to send - the e-mail messages. - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - The name of the e-mail relay server. If SmtpServer is not set, the - name of the local SMTP server is used. - - - - - - Obsolete - - - Use the BufferingAppenderSkeleton Fix methods instead - - - - Obsolete property. - - - - - - The mode to use to authentication with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - Valid Authentication mode values are: , - , and . - The default value is . When using - you must specify the - and to use to authenticate. - When using the Windows credentials for the current - thread, if impersonating, or the process will be used to authenticate. - - - - - - The username to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the username will be ignored. - - - - - - The password to use to authenticate with the SMTP server - - - Authentication is only available on the MS .NET 1.1 runtime. - - A and must be specified when - is set to , - otherwise the password will be ignored. - - - - - - The port on which the SMTP server is listening - - - Server Port is only available on the MS .NET 1.1 runtime. - - The port on which the SMTP server is listening. The default - port is 25. The Port can only be changed when running on - the MS .NET 1.1 runtime. - - - - - - Gets or sets the priority of the e-mail message - - - One of the values. - - - - Sets the priority of the e-mails generated by this - appender. The default priority is . - - - If you are using this appender to report errors then - you may want to set the priority to . - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Values for the property. - - - - SMTP authentication modes. - - - - - - No authentication - - - - - Basic authentication. - - - Requires a username and password to be supplied - - - - - Integrated authentication - - - Uses the Windows credentials from the current thread or process to authenticate. - - - - - Send an email when a specific logging event occurs, typically on errors - or fatal errors. Rather than sending via smtp it writes a file into the - directory specified by . This allows services such - as the IIS SMTP agent to manage sending the messages. - - - - The configuration for this appender is identical to that of the SMTPAppender, - except that instead of specifying the SMTPAppender.SMTPHost you specify - . - - - The number of logging events delivered in this e-mail depend on - the value of option. The - keeps only the last - logging events in its - cyclic buffer. This keeps memory requirements at a reasonable level while - still delivering useful application context. - - - Niall Daley - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - Sends the contents of the cyclic buffer as an e-mail message. - - The logging events to send. - - - Sends the contents of the cyclic buffer as an e-mail message. - - - - - - Activate the options on this appender. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert a path into a fully qualified path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - - - - The security context to use for privileged calls - - - - - Gets or sets a semicolon-delimited list of recipient e-mail addresses. - - - A semicolon-delimited list of e-mail addresses. - - - - A semicolon-delimited list of e-mail addresses. - - - - - - Gets or sets the e-mail address of the sender. - - - The e-mail address of the sender. - - - - The e-mail address of the sender. - - - - - - Gets or sets the subject line of the e-mail message. - - - The subject line of the e-mail message. - - - - The subject line of the e-mail message. - - - - - - Gets or sets the path to write the messages to. - - - - Gets or sets the path to write the messages to. This should be the same - as that used by the agent sending the messages. - - - - - - Gets or sets the used to write to the pickup directory. - - - The used to write to the pickup directory. - - - - Unless a specified here for this appender - the is queried for the - security context to use. The default behavior is to use the security context - of the current thread. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Appender that allows clients to connect via Telnet to receive log messages - - - - The TelnetAppender accepts socket connections and streams logging messages - back to the client. - The output is provided in a telnet-friendly way so that a log can be monitored - over a TCP/IP socket. - This allows simple remote monitoring of application logging. - - - The default is 23 (the telnet port). - - - Keith Long - Nicko Cadell - - - - Default constructor - - - - Default constructor - - - - - - Overrides the parent method to close the socket handler - - - - Closes all the outstanding connections. - - - - - - Initialize the appender based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Create the socket handler and wait for connections - - - - - - Writes the logging event to each connected client. - - The event to log. - - - Writes the logging event to each connected client. - - - - - - Gets or sets the TCP port number on which this will listen for connections. - - - An integer value in the range to - indicating the TCP port number on which this will listen for connections. - - - - The default value is 23 (the telnet port). - - - The value specified is less than - or greater than . - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Helper class to manage connected clients - - - - The SocketHandler class is used to accept connections from - clients. It is threaded so that clients can connect/disconnect - asynchronously. - - - - - - Opens a new server port on - - the local port to listen on for connections - - - Creates a socket handler on the specified local server port. - - - - - - Sends a string message to each of the connected clients - - the text to send - - - Sends a string message to each of the connected clients - - - - - - Add a client to the internal clients list - - client to add - - - - Remove a client from the internal clients list - - client to remove - - - - Callback used to accept a connection on the server socket - - The result of the asynchronous operation - - - On connection adds to the list of connections - if there are two many open connections you will be disconnected - - - - - - Close all network connections - - - - Make sure we close all network connections - - - - - - Test if this handler has active connections - - - true if this handler has active connections - - - - This property will be true while this handler has - active connections, that is at least one connection that - the handler will attempt to send a message to. - - - - - - Class that represents a client connected to this handler - - - - Class that represents a client connected to this handler - - - - - - Create this for the specified - - the client's socket - - - Opens a stream writer on the socket. - - - - - - Write a string to the client - - string to send - - - Write a string to the client - - - - - - Cleanup the clients connection - - - - Close the socket connection. - - - - - - Appends log events to the system. - - - - The application configuration file can be used to control what listeners - are actually used. See the MSDN documentation for the - class for details on configuring the - trace system. - - - Events are written using the System.Diagnostics.Trace.Write(string,string) - method. The event's logger name is passed as the value for the category name to the Write method. - - - Compact Framework
- The Compact Framework does not support the - class for any operation except Assert. When using the Compact Framework this - appender will write to the system rather than - the Trace system. This appender will therefore behave like the . -
-
- Douglas de la Torre - Nicko Cadell - Gert Driesen -
- - - Initializes a new instance of the . - - - - Default constructor. - - - - - - Initializes a new instance of the - with a specified layout. - - The layout to use with this appender. - - - Obsolete constructor. - - - - - - Writes the logging event to the system. - - The event to log. - - - Writes the logging event to the system. - - - - - - Immediate flush means that the underlying writer or output stream - will be flushed at the end of each append operation. - - - - Immediate flush is slower but ensures that each append request is - actually written. If is set to - false, then there is a good chance that the last few - logs events are not actually written to persistent media if and - when the application crashes. - - - The default value is true. - - - - - Gets or sets a value that indicates whether the appender will - flush at the end of each write. - - - The default behavior is to flush at the end of each - write. If the option is set tofalse, then the underlying - stream can defer writing to physical medium to a later time. - - - Avoiding the flush operation at the end of each append results - in a performance gain of 10 to 20 percent. However, there is safety - trade-off involved in skipping flushing. Indeed, when flushing is - skipped, then it is likely that the last few log events will not - be recorded on disk when the application exits. This is a high - price to pay even for a 20% performance gain. - - - - - - This appender requires a to be set. - - true - - - This appender requires a to be set. - - - - - - Assembly level attribute that specifies a domain to alias to this assembly's repository. - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's domain to its repository by - specifying this attribute with the name of the target domain. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required domains. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies a repository to alias to this assembly's repository. - - - - An assembly's logger repository is defined by its , - however this can be overridden by an assembly loaded before the target assembly. - - - An assembly can alias another assembly's repository to its repository by - specifying this attribute with the name of the target repository. - - - This attribute can only be specified on the assembly and may be used - as many times as necessary to alias all the required repositories. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - The repository to alias to this assemby's repository. - - - Initializes a new instance of the class with - the specified repository to alias to this assembly's repository. - - - - - - Gets or sets the repository to alias to this assemby's repository. - - - The repository to alias to this assemby's repository. - - - - The name of the repository to alias to this assemby's repository. - - - - - - Initializes a new instance of the class with - the specified domain to alias to this assembly's repository. - - The domain to alias to this assemby's repository. - - - Obsolete. Use instead of . - - - - - - Use this class to quickly configure a . - - - - Allows very simple programmatic configuration of log4net. - - - Only one appender can be configured using this configurator. - The appender is set at the root of the hierarchy and all logging - events will be delivered to that appender. - - - Appenders can also implement the interface. Therefore - they would require that the method - be called after the appenders properties have been configured. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Initializes the log4net system with a default configuration. - - - - Initializes the log4net logging system using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the log4net system using the specified appender. - - The appender to use to log all logging events. - - - Initializes the log4net system using the specified appender. - - - - - - Initializes the with a default configuration. - - The repository to configure. - - - Initializes the specified repository using a - that will write to Console.Out. The log messages are - formatted using the layout object - with the - layout style. - - - - - - Initializes the using the specified appender. - - The repository to configure. - The appender to use to log all logging events. - - - Initializes the using the specified appender. - - - - - - Base class for all log4net configuration attributes. - - - This is an abstract class that must be extended by - specific configurators. This attribute allows the - configurator to be parameterized by an assembly level - attribute. - - Nicko Cadell - Gert Driesen - - - - Constructor used by subclasses. - - the ordering priority for this configurator - - - The is used to order the configurator - attributes before they are invoked. Higher priority configurators are executed - before lower priority ones. - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Abstract method implemented by a subclass. When this method is called - the subclass should configure the . - - - - - - Compare this instance to another ConfiguratorAttribute - - the object to compare to - see - - - Compares the priorities of the two instances. - Sorts by priority in descending order. Objects with the same priority are - randomly ordered. - - - - - - Assembly level attribute that specifies the logging domain for the assembly. - - - - DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - Assemblies are mapped to logging domains. Each domain has its own - logging repository. This attribute specified on the assembly controls - the configuration of the domain. The property specifies the name - of the domain that this assembly is a part of. The - specifies the type of the repository objects to create for the domain. If - this attribute is not specified and a is not specified - then the assembly will be part of the default shared logging domain. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute that specifies the logging repository for the assembly. - - - - Assemblies are mapped to logging repository. This attribute specified - on the assembly controls - the configuration of the repository. The property specifies the name - of the repository that this assembly is a part of. The - specifies the type of the object - to create for the assembly. If this attribute is not specified or a - is not specified then the assembly will be part of the default shared logging repository. - - - This attribute can only be specified on the assembly and may only be used - once per assembly. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Initialize a new instance of the class - with the name of the repository. - - The name of the repository. - - - Initialize the attribute with the name for the assembly's repository. - - - - - - Gets or sets the name of the logging repository. - - - The string name to use as the name of the repository associated with this - assembly. - - - - This value does not have to be unique. Several assemblies can share the - same repository. They will share the logging configuration of the repository. - - - - - - Gets or sets the type of repository to create for this assembly. - - - The type of repository to create for this assembly. - - - - The type of the repository to create for the assembly. - The type must implement the - interface. - - - This will be the type of repository created when - the repository is created. If multiple assemblies reference the - same repository then the repository is only created once using the - of the first assembly to call into the - repository. - - - - - - Initializes a new instance of the class. - - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Initialize a new instance of the class - with the name of the domain. - - The name of the domain. - - - Obsolete. Use RepositoryAttribute instead of DomainAttribute. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Each application has a configuration file. This has the - same name as the application with '.config' appended. - This file is XML and calling this function prompts the - configurator to look in that file for a section called - log4net that contains the configuration data. - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Each application has a configuration file. This has the - same name as the application with '.config' appended. - This file is XML and calling this function prompts the - configurator to look in that file for a section called - log4net that contains the configuration data. - - The repository to configure. - - - - Configures log4net using a log4net element - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The element to parse. - - - - Configures the using the specified XML - element. - - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration file. - - A stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Assembly level attribute to configure the . - - - - AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - Gert Driesen - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - If neither of the or - properties are set the configuration is loaded from the application's .config file. - If set the property takes priority over the - property. The property - specifies a path to a file to load the config from. The path is relative to the - application's base directory; . - The property is used as a postfix to the assembly file name. - The config file must be located in the application's base directory; . - For example in a console application setting the to - config has the same effect as not specifying the or - properties. - - - The property can be set to cause the - to watch the configuration file for changes. - - - - Log4net will only look for assembly level configuration attributes once. - When using the log4net assembly level attributes to control the configuration - of log4net you must ensure that the first call to any of the - methods is made from the assembly with the configuration - attributes. - - - If you cannot guarantee the order in which log4net calls will be made from - different assemblies you must use programmatic configuration instead, i.e. - call the method directly. - - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Default constructor - - - - - - Configures the for the specified assembly. - - The assembly that this attribute was defined on. - The repository to configure. - - - Configure the repository using the . - The specified must extend the - class otherwise the will not be able to - configure it. - - - The does not extend . - - - - Attempt to load configuration from the local file system - - The assembly that this attribute was defined on. - The repository to configure. - - - - Configure the specified repository using a - - The repository to configure. - the FileInfo pointing to the config file - - - - Attempt to load configuration from a URI - - The assembly that this attribute was defined on. - The repository to configure. - - - - Gets or sets the filename of the configuration file. - - - The filename of the configuration file. - - - - If specified, this is the name of the configuration file to use with - the . This file path is relative to the - application base directory (). - - - The takes priority over the . - - - - - - Gets or sets the extension of the configuration file. - - - The extension of the configuration file. - - - - If specified this is the extension for the configuration file. - The path to the config file is built by using the application - base directory (), - the assembly file name and the config file extension. - - - If the is set to MyExt then - possible config file names would be: MyConsoleApp.exe.MyExt or - MyClassLibrary.dll.MyExt. - - - The takes priority over the . - - - - - - Gets or sets a value indicating whether to watch the configuration file. - - - true if the configuration should be watched, false otherwise. - - - - If this flag is specified and set to true then the framework - will watch the configuration file and will reload the config each time - the file is modified. - - - The config file can only be watched if it is loaded from local disk. - In a No-Touch (Smart Client) deployment where the application is downloaded - from a web server the config file may not reside on the local disk - and therefore it may not be able to watch it. - - - Watching configuration is not supported on the SSCLI. - - - - - - Class to register for the log4net section of the configuration file - - - The log4net section of the configuration file needs to have a section - handler registered. This is the section handler used. It simply returns - the XML element that is the root of the section. - - - Example of registering the log4net section handler : - - - -
- - - log4net configuration XML goes here - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Default constructor. - - - - - - Parses the configuration section. - - The configuration settings in a corresponding parent configuration section. - The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. - The for the log4net section. - The for the log4net section. - - - Returns the containing the configuration data, - - - - - - Assembly level attribute that specifies a plugin to attach to - the repository. - - - - Specifies the type of a plugin to create and attach to the - assembly's repository. The plugin type must implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Interface used to create plugins. - - - - Interface used to create a plugin. - - - Nicko Cadell - Gert Driesen - - - - Creates the plugin object. - - the new plugin instance - - - Create and return a new plugin instance. - - - - - - Initializes a new instance of the class - with the specified type. - - The type name of plugin to create. - - - Create the attribute with the plugin type specified. - - - Where possible use the constructor that takes a . - - - - - - Initializes a new instance of the class - with the specified type. - - The type of plugin to create. - - - Create the attribute with the plugin type specified. - - - - - - Creates the plugin object defined by this attribute. - - - - Creates the instance of the object as - specified by this attribute. - - - The plugin object. - - - - Returns a representation of the properties of this object. - - - - Overrides base class method to - return a representation of the properties of this object. - - - A representation of the properties of this object - - - - Gets or sets the type for the plugin. - - - The type for the plugin. - - - - The type for the plugin. - - - - - - Gets or sets the type name for the plugin. - - - The type name for the plugin. - - - - The type name for the plugin. - - - Where possible use the property instead. - - - - - - Assembly level attribute to configure the . - - - - This attribute may only be used at the assembly scope and can only - be used once per assembly. - - - Use this attribute to configure the - without calling one of the - methods. - - - Nicko Cadell - - - - Construct provider attribute with type specified - - the type of the provider to use - - - The provider specified must subclass the - class. - - - - - - Configures the SecurityContextProvider - - The assembly that this attribute was defined on. - The repository to configure. - - - Creates a provider instance from the specified. - Sets this as the default security context provider . - - - - - - Gets or sets the type of the provider to use. - - - the type of the provider to use. - - - - The provider specified must subclass the - class. - - - - - - Use this class to initialize the log4net environment using an Xml tree. - - - - Configures a using an Xml tree. - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - - - Automatically configures the log4net system based on the - application's configuration settings. - - - - Each application has a configuration file. This has the - same name as the application with '.config' appended. - This file is XML and calling this function prompts the - configurator to look in that file for a section called - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - - - - - Automatically configures the using settings - stored in the application's configuration file. - - - - Each application has a configuration file. This has the - same name as the application with '.config' appended. - This file is XML and calling this function prompts the - configurator to look in that file for a section called - log4net that contains the configuration data. - - - To use this method to configure log4net you must specify - the section - handler for the log4net configuration section. See the - for an example. - - - The repository to configure. - - - - Configures log4net using a log4net element - - - - Loads the log4net configuration from the XML element - supplied as . - - - The element to parse. - - - - Configures the using the specified XML - element. - - - Loads the log4net configuration from the XML element - supplied as . - - The repository to configure. - The element to parse. - - - - Configures log4net using the specified configuration file. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
- - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures log4net using the specified configuration URI. - - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - The must support the URI scheme specified. - - - - - - Configures log4net using the specified configuration data stream. - - A stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the log4net configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The log4net configuration file can possible be specified in the application's - configuration file (either MyAppName.exe.config for a - normal application on Web.config for an ASP.NET application). - - - The first element matching <configuration> will be read as the - configuration. If this file is also a .NET .config file then you must specify - a configuration section for the log4net element otherwise .NET will - complain. Set the type for the section handler to , for example: - - -
- - - - - The following example configures log4net using a configuration file, of which the - location is stored in the application's configuration file : - - - using log4net.Config; - using System.IO; - using System.Configuration; - - ... - - XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); - - - In the .config file, the path to the log4net can be specified like this : - - - - - - - - - - - - - Configures the using the specified configuration - URI. - - The repository to configure. - A URI to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The must support the URI scheme specified. - - - - - - Configures the using the specified configuration - file. - - The repository to configure. - The stream to load the XML configuration from. - - - The configuration data must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - Note that this method will NOT close the stream parameter. - - - - - - Configures log4net using the file specified, monitors the file for changes - and reloads the configuration if a change is detected. - - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the using the file specified, - monitors the file for changes and reloads the configuration if a change - is detected. - - The repository to configure. - The XML file to load the configuration from. - - - The configuration file must be valid XML. It must contain - at least one element called log4net that holds - the configuration data. - - - The configuration file will be monitored using a - and depends on the behavior of that class. - - - For more information on how to configure log4net using - a separate configuration file, see . - - - - - - - Configures the specified repository using a log4net element. - - The hierarchy to configure. - The element to parse. - - - Loads the log4net configuration from the XML element - supplied as . - - - This method is ultimately called by one of the Configure methods - to load the configuration from an . - - - - - - Class used to watch config files. - - - - Uses the to monitor - changes to a specified file. Because multiple change notifications - may be raised when the file is modified, a timer is used to - compress the notifications into a single event. The timer - waits for time before delivering - the event notification. If any further - change notifications arrive while the timer is waiting it - is reset and waits again for to - elapse. - - - - - - The default amount of time to wait after receiving notification - before reloading the config file. - - - - - Watch a specified config file used to configure a repository - - The repository to configure. - The configuration file to watch. - - - Watch a specified config file used to configure a repository - - - - - - Holds the FileInfo used to configure the XmlConfigurator - - - - - Holds the repository being configured. - - - - - The timer used to compress the notification events. - - - - - Initializes a new instance of the class. - - The repository to configure. - The configuration file to watch. - - - Initializes a new instance of the class. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Event handler used by . - - The firing the event. - The argument indicates the file that caused the event to be fired. - - - This handler reloads the configuration from the file when the event is fired. - - - - - - Called by the timer when the configuration has been updated. - - null - - - - The implementation of the interface suitable - for use with the compact framework - - - - This implementation is a simple - mapping between repository name and - object. - - - The .NET Compact Framework 1.0 does not support retrieving assembly - level attributes therefore unlike the DefaultRepositorySelector - this selector does not examine the calling assembly for attributes. - - - Nicko Cadell - - - - Interface used by the to select the . - - - - The uses a - to specify the policy for selecting the correct - to return to the caller. - - - Nicko Cadell - Gert Driesen - - - - Gets the for the specified assembly. - - The assembly to use to lookup to the - The for the assembly. - - - Gets the for the specified assembly. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. The results of this method must be repeatable, i.e. - when called again with the same arguments the result must be the - save value. - - - - - - Gets the named . - - The name to use to lookup to the . - The named - - Lookup a named . This is the repository created by - calling . - - - - - Creates a new repository for the assembly specified. - - The assembly to use to create the domain to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the domain - specified such that a call to with the - same assembly specified will return the same repository instance. - - - How the association between and - is made is not defined. The implementation may choose any method for - this association. - - - - - - Creates a new repository with the name specified. - - The name to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the name - specified such that a call to with the - same name will return the same repository instance. - - - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets an array of all currently defined repositories. - - - An array of the instances created by - this . - - - Gets an array of all of the repositories created by this selector. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Create a new repository selector - - the type of the repositories to create, must implement - - - Create an new compact repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - throw if is null - throw if does not implement - - - - Get the for the specified assembly - - not used - The default - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Get the named - - the name of the repository to lookup - The named - - - Get the named . The default - repository is log4net-default-repository. Other repositories - must be created using the . - If the named repository does not exist an exception is thrown. - - - throw if is null - throw if the does not exist - - - - Create a new repository for the assembly specified - - not used - the type of repository to create, must implement - the repository created - - - The argument is not used. This selector does not create a - separate repository for each assembly. - - - If the is null then the - default repository type specified to the constructor is used. - - - As a named repository is not specified the default repository is - returned. The default repository is named log4net-default-repository. - - - - - - Create a new repository for the repository specified - - the repository to associate with the - the type of repository to create, must implement . - If this param is null then the default repository type is used. - the repository created - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - If the named repository already exists an exception will be thrown. - - - If is null then the default - repository type specified to the constructor is used. - - - throw if is null - throw if the already exists - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - Notify the registered listeners that the repository has been created - - The repository that has been created - - - Raises the LoggerRepositoryCreatedEvent - event. - - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - The default implementation of the interface. - - - - Uses attributes defined on the calling assembly to determine how to - configure the hierarchy for the repository. - - - Nicko Cadell - Gert Driesen - - - - Creates a new repository selector. - - The type of the repositories to create, must implement - - - Create an new repository selector. - The default type for repositories must be specified, - an appropriate value would be . - - - is . - does not implement . - - - - Gets the for the specified assembly. - - The assembly use to lookup the . - - - The type of the created and the repository - to create can be overridden by specifying the - attribute on the . - - - The default values are to use the - implementation of the interface and to use the - as the name of the repository. - - - The created will be automatically configured using - any attributes defined on - the . - - - The for the assembly - is . - - - - Gets the for the specified repository. - - The repository to use to lookup the . - The for the specified repository. - - - Returns the named repository. If is null - a is thrown. If the repository - does not exist a is thrown. - - - Use to create a repository. - - - is . - does not exist. - - - - Create a new repository for the assembly specified - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the assembly specified. - - the assembly to use to create the repository to associate with the . - The type of repository to create, must implement . - The name to assign to the created repository - Set to true to read and apply the assembly attributes - The repository created. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The type of the created and - the repository to create can be overridden by specifying the - attribute on the - . The default values are to use the - implementation of the - interface and to use the - as the name of the repository. - - - The created will be automatically - configured using any - attributes defined on the . - - - If a repository for the already exists - that repository will be returned. An error will not be raised and that - repository may be of a different type to that specified in . - Also the attribute on the - assembly may be used to override the repository type specified in - . - - - is . - - - - Creates a new repository for the specified repository. - - The repository to associate with the . - The type of repository to create, must implement . - If this param is then the default repository type is used. - The new repository. - - - The created will be associated with the repository - specified such that a call to with the - same repository specified will return the same repository instance. - - - is . - already exists. - - - - Test if a named repository exists - - the named repository to check - true if the repository exists - - - Test if a named repository exists. Use - to create a new repository and to retrieve - a repository. - - - - - - Gets a list of objects - - an array of all known objects - - - Gets an array of all of the repositories created by this selector. - - - - - - Aliases a repository to an existing repository. - - The repository to alias. - The repository that the repository is aliased to. - - - The repository specified will be aliased to the repository when created. - The repository must not already exist. - - - When the repository is created it must utilize the same repository type as - the repository it is aliased to, otherwise the aliasing will fail. - - - - is . - -or- - is . - - - - - Notifies the registered listeners that the repository has been created. - - The repository that has been created. - - - Raises the event. - - - - - - Gets the repository name and repository type for the specified assembly. - - The assembly that has a . - in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. - in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. - is . - - - - Configures the repository using information from the assembly. - - The assembly containing - attributes which define the configuration for the repository. - The repository to configure. - - is . - -or- - is . - - - - - Loads the attribute defined plugins on the assembly. - - The assembly that contains the attributes. - The repository to add the plugins to. - - is . - -or- - is . - - - - - Loads the attribute defined aliases on the assembly. - - The assembly that contains the attributes. - The repository to alias to. - - is . - -or- - is . - - - - - Event to notify that a logger repository has been created. - - - Event to notify that a logger repository has been created. - - - - Event raised when a new repository is created. - The event source will be this selector. The event args will - be a which - holds the newly created . - - - - - - Defined error codes that can be passed to the method. - - - - Values passed to the method. - - - Nicko Cadell - - - - A general error - - - - - Error while writing output - - - - - Failed to flush file - - - - - Failed to close file - - - - - Unable to open output file - - - - - No layout specified - - - - - Failed to parse address - - - - - Appenders may delegate their error handling to an . - - - - Error handling is a particularly tedious to get right because by - definition errors are hard to predict and to reproduce. - - - Nicko Cadell - Gert Driesen - - - - Handles the error and information about the error condition is passed as - a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - The error code associated with the error. - - - Handles the error and information about the error condition is passed as - a parameter. - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - The that was thrown when the error occurred. - - - See . - - - - - - Prints the error message passed as a parameter. - - The message associated with the error. - - - See . - - - - - - Interface for objects that require fixing. - - - - Interface that indicates that the object requires fixing before it - can be taken outside the context of the appender's - method. - - - When objects that implement this interface are stored - in the context properties maps - and - are fixed - (see ) the - method will be called. - - - Nicko Cadell - - - - Get a portable version of this object - - the portable instance of this object - - - Get a portable instance object that represents the current - state of this object. The portable object can be stored - and logged from any thread with identical results. - - - - - - Interface that all loggers implement - - - - This interface supports logging events and testing if a level - is enabled for logging. - - - These methods will not throw exceptions. Note to implementor, ensure - that the implementation of these methods cannot allow an exception - to be thrown to the caller. - - - Nicko Cadell - Gert Driesen - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - the exception to log, including its stack trace. Pass null to not log an exception. - - - Generates a logging event for the specified using - the and . - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - - - - Gets the name of the logger. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Base interface for all wrappers - - - - Base interface for all wrappers. - - - All wrappers must implement this interface. - - - Nicko Cadell - - - - Get the implementation behind this wrapper object. - - - The object that in implementing this object. - - - - The object that in implementing this - object. The Logger object may not - be the same object as this object because of logger decorators. - This gets the actual underlying objects that is used to process - the log events. - - - - - - Delegate used to handle logger repository creation event notifications - - The which created the repository. - The event args - that holds the instance that has been created. - - - Delegate used to handle logger repository creation event notifications. - - - - - - Provides data for the event. - - - - A - event is raised every time a is created. - - - - - - The created - - - - - Construct instance using specified - - the that has been created - - - Construct instance using specified - - - - - - The that has been created - - - The that has been created - - - - The that has been created - - - - - - Test if an triggers an action - - - - Implementations of this interface allow certain appenders to decide - when to perform an appender specific action. - - - The action or behavior triggered is defined by the implementation. - - - Nicko Cadell - - - - Test if this event triggers the action - - The event to check - true if this event triggers the action, otherwise false - - - Return true if this event triggers the action - - - - - - Defines the default set of levels recognized by the system. - - - - Each has an associated . - - - Levels have a numeric that defines the relative - ordering between levels. Two Levels with the same - are deemed to be equivalent. - - - The levels that are recognized by log4net are set for each - and each repository can have different levels defined. The levels are stored - in the on the repository. Levels are - looked up by name from the . - - - When logging at level INFO the actual level used is not but - the value of LoggerRepository.LevelMap["INFO"]. The default value for this is - , but this can be changed by reconfiguring the level map. - - - Each level has a in addition to its . The - is the string that is written into the output log. By default - the display name is the same as the level name, but this can be used to alias levels - or to localize the log output. - - - Some of the predefined levels recognized by the system are: - - - - . - - - . - - - . - - - . - - - . - - - . - - - . - - - - Nicko Cadell - Gert Driesen - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - The display name for this level. This may be localized or otherwise different from the name - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Constructor - - Integer value for this level, higher values represent more severe levels. - The string name of this level. - - - Initializes a new instance of the class with - the specified level name and value. - - - - - - Returns the representation of the current - . - - - A representation of the current . - - - - Returns the level . - - - - - - Compares levels. - - The object to compare against. - true if the objects are equal. - - - Compares the levels of instances, and - defers to base class if the target object is not a - instance. - - - - - - Returns a hash code - - A hash code for the current . - - - Returns a hash code suitable for use in hashing algorithms and data - structures like a hash table. - - - Returns the hash code of the level . - - - - - - Compares this instance to a specified object and returns an - indication of their relative values. - - A instance or to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the - values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - This instance is less than . - - - Zero - This instance is equal to . - - - Greater than zero - - This instance is greater than . - -or- - is . - - - - - - - must be an instance of - or ; otherwise, an exception is thrown. - - - is not a . - - - - Returns a value indicating whether a specified - is greater than another specified . - - A - A - - true if is greater than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than another specified . - - A - A - - true if is less than - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is greater than or equal to another specified . - - A - A - - true if is greater than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether a specified - is less than or equal to another specified . - - A - A - - true if is less than or equal to - ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have the same value. - - A or . - A or . - - true if the value of is the same as the - value of ; otherwise, false. - - - - Compares two levels. - - - - - - Returns a value indicating whether two specified - objects have different values. - - A or . - A or . - - true if the value of is different from - the value of ; otherwise, false. - - - - Compares two levels. - - - - - - Compares two specified instances. - - The first to compare. - The second to compare. - - A 32-bit signed integer that indicates the relative order of the - two values compared. The return value has these meanings: - - - Value - Meaning - - - Less than zero - is less than . - - - Zero - is equal to . - - - Greater than zero - is greater than . - - - - - - Compares two levels. - - - - - - The level designates a higher level than all the rest. - - - - - The level designates very severe error events. - System unusable, emergencies. - - - - - The level designates very severe error events - that will presumably lead the application to abort. - - - - - The level designates very severe error events. - Take immediate action, alerts. - - - - - The level designates very severe error events. - Critical condition, critical. - - - - - The level designates very severe error events. - - - - - The level designates error events that might - still allow the application to continue running. - - - - - The level designates potentially harmful - situations. - - - - - The level designates informational messages - that highlight the progress of the application at the highest level. - - - - - The level designates informational messages that - highlight the progress of the application at coarse-grained level. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates fine-grained informational - events that are most useful to debug an application. - - - - - The level designates the lowest level possible. - - - - - Gets the name of this level. - - - The name of this level. - - - - Gets the name of this level. - - - - - - Gets the value of this level. - - - The value of this level. - - - - Gets the value of this level. - - - - - - Gets the display name of this level. - - - The display name of this level. - - - - Gets the display name of this level. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a LevelCollection instance. - - list to create a readonly wrapper arround - - A LevelCollection wrapper that is read-only. - - - - - Initializes a new instance of the LevelCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the LevelCollection class - that has the specified initial capacity. - - - The number of elements that the new LevelCollection is initially capable of storing. - - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified LevelCollection. - - The LevelCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the LevelCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - Copies the entire LevelCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire LevelCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the LevelCollection. - - The to be added to the end of the LevelCollection. - The index at which the value has been added. - - - - Removes all elements from the LevelCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the LevelCollection. - - The to check for. - true if is found in the LevelCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the LevelCollection. - - The to locate in the LevelCollection. - - The zero-based index of the first occurrence of - in the entire LevelCollection, if found; otherwise, -1. - - - - - Inserts an element into the LevelCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the LevelCollection. - - The to remove from the LevelCollection. - - The specified was not found in the LevelCollection. - - - - - Removes the element at the specified index of the LevelCollection. - - The zero-based index of the element to remove. - - is less than zero - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the LevelCollection. - - An for the entire LevelCollection. - - - - Adds the elements of another LevelCollection to the current LevelCollection. - - The LevelCollection whose elements should be added to the end of the current LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a array to the current LevelCollection. - - The array whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Adds the elements of a collection to the current LevelCollection. - - The collection whose elements should be added to the end of the LevelCollection. - The new of the LevelCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero - -or- - is equal to or greater than . - - - - - is less than zero - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the LevelCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - The zero-based index of the element to get or set. - - is less than zero - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false - - - - Gets or sets the number of elements the LevelCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - A value - - - - - Supports simple iteration over a . - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - An evaluator that triggers at a threshold level - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - Nicko Cadell - - - - The threshold for triggering - - - - - Create a new evaluator using the threshold. - - - - Create a new evaluator using the threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Create a new evaluator using the specified threshold. - - the threshold to trigger at - - - Create a new evaluator using the specified threshold. - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Is this the triggering event? - - The event to check - This method returns true, if the event level - is equal or higher than the . - Otherwise it returns false - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - the threshold to trigger at - - - The that will cause this evaluator to trigger - - - - This evaluator will trigger if the level of the event - passed to - is equal to or greater than the - level. - - - - - - Mapping between string name and Level object - - - - Mapping between string name and object. - This mapping is held separately for each . - The level name is case insensitive. - - - Nicko Cadell - - - - Mapping from level name to Level object. The - level name is case insensitive - - - - - Construct the level map - - - - Construct the level map. - - - - - - Clear the internal maps of all levels - - - - Clear the internal maps of all levels - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - - - Create a new Level and add it to the map - - - - - - - Create a new Level and add it to the map - - the string to display for the Level - the level value to give to the Level - the display name to give to the Level - - - Create a new Level and add it to the map - - - - - - Add a Level to the map - - the Level to add - - - Add a Level to the map - - - - - - Lookup a named level from the map - - the name of the level to lookup is taken from this level. - If the level is not set on the map then this level is added - the level in the map with the name specified - - - Lookup a named level from the map. The name of the level to lookup is taken - from the property of the - argument. - - - If no level with the specified name is found then the - argument is added to the level map - and returned. - - - - - - Lookup a by name - - The name of the Level to lookup - a Level from the map with the name specified - - - Returns the from the - map with the name specified. If the no level is - found then null is returned. - - - - - - Return all possible levels as a list of Level objects. - - all possible levels as a list of Level objects - - - Return all possible levels as a list of Level objects. - - - - - - The internal representation of caller location information. - - - - This class uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. - - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - Nicko Cadell - Gert Driesen - - - - When location information is not available the constant - NA is returned. Current value of this string - constant is ?. - - - - - Constructor - - The declaring type of the method that is - the stack boundary into the logging system for this call. - - - Initializes a new instance of the - class based on the current thread. - - - - - - Constructor - - The fully qualified class name. - The method name. - The file name. - The line number of the method within the file. - - - Initializes a new instance of the - class with the specified data. - - - - - - Gets the fully qualified class name of the caller making the logging - request. - - - The fully qualified class name of the caller making the logging - request. - - - - Gets the fully qualified class name of the caller making the logging - request. - - - - - - Gets the file name of the caller. - - - The file name of the caller. - - - - Gets the file name of the caller. - - - - - - Gets the line number of the caller. - - - The line number of the caller. - - - - Gets the line number of the caller. - - - - - - Gets the method name of the caller. - - - The method name of the caller. - - - - Gets the method name of the caller. - - - - - - Gets all available caller information - - - All available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - Gets all available caller information, in the format - fully.qualified.classname.of.caller.methodName(Filename:line) - - - - - - Static manager that controls the creation of repositories - - - - Static manager that controls the creation of repositories - - - This class is used by the wrapper managers (e.g. ) - to provide access to the objects. - - - This manager also holds the that is used to - lookup and create repositories. The selector can be set either programmatically using - the property, or by setting the log4net.RepositorySelector - AppSetting in the applications config file to the fully qualified type name of the - selector to use. - - - Nicko Cadell - Gert Driesen - - - - Private constructor to prevent instances. Only static methods should be used. - - - - Private constructor to prevent instances. Only static methods should be used. - - - - - - Hook the shutdown event - - - - On the full .NET runtime, the static constructor hooks up the - AppDomain.ProcessExit and AppDomain.DomainUnload> events. - These are used to shutdown the log4net system as the application exits. - - - - - - Register for ProcessExit and DomainUnload events on the AppDomain - - - - This needs to be in a separate method because the events make - a LinkDemand for the ControlAppDomain SecurityPermission. Because - this is a LinkDemand it is demanded at JIT time. Therefore we cannot - catch the exception in the method itself, we have to catch it in the - caller. - - - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - - Return the default instance. - - the repository to lookup in - Return the default instance - - - Gets the for the repository specified - by the argument. - - - - - - Returns the default instance. - - The assembly to use to lookup the repository. - The default instance. - - - Returns the default instance. - - - - - - Returns the named logger if it exists. - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified repository. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns the named logger if it exists. - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger found, or null if the named logger does not exist in the - specified assembly's repository. - - - - If the named logger exists (in the specified assembly's repository) then it - returns a reference to the logger, otherwise it returns - null. - - - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - All the defined loggers. - - - The root logger is not included in the returned array. - - - - - - Retrieves or creates a named logger. - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Retrieves or creates a named logger. - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - - - - Shorthand for . - - The repository to lookup in. - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shorthand for . - - the assembly to use to lookup the repository - The of which the fullname will be used as the name of the logger to retrieve. - The logger with the name specified. - - - Gets the logger for the fully qualified name of the type specified. - - - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The repository to shutdown. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - The assembly to use to lookup the repository. - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository for the repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Resets all values contained in this repository instance to their defaults. - - The repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - The assembly to use to lookup the repository to reset. - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name. - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The name must be unique. Repositories cannot be redefined. - An Exception will be thrown if the repository already exists. - - - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Creates a repository for the specified assembly and repository type. - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - - - - Gets an array of all currently defined repositories. - - An array of all the known objects. - - - Gets an array of all currently defined repositories. - - - - - - Internal method to get pertinent version info. - - A string of version info. - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - Called when the event fires - - the that is exiting - null - - - Called when the event fires. - - - When the event is triggered the log4net system is . - - - - - - Initialize the default repository selector - - - - - Gets or sets the repository selector used by the . - - - The repository selector used by the . - - - - The repository selector () is used by - the to create and select repositories - (). - - - The caller to supplies either a string name - or an assembly (if not supplied the assembly is inferred using - ). - - - This context is used by the selector to lookup a specific repository. - - - For the full .NET Framework, the default repository is DefaultRepositorySelector; - for the .NET Compact Framework CompactRepositorySelector is the default - repository. - - - - - - Implementation of the interface. - - - - This class should be used as the base for all wrapper implementations. - - - Nicko Cadell - Gert Driesen - - - - Constructs a new wrapper for the specified logger. - - The logger to wrap. - - - Constructs a new wrapper for the specified logger. - - - - - - The logger that this object is wrapping - - - - - Gets the implementation behind this wrapper object. - - - The object that this object is implementing. - - - - The Logger object may not be the same object as this object - because of logger decorators. - - - This gets the actual underlying objects that is used to process - the log events. - - - - - - Portable data structure used by - - - - Portable data structure used by - - - Nicko Cadell - - - - The logger name. - - - - The logger name. - - - - - - Level of logging event. - - - - Level of logging event. Level cannot be Serializable - because it is a flyweight. Due to its special serialization it - cannot be declared final either. - - - - - - The application supplied message. - - - - The application supplied message of logging event. - - - - - - The name of thread - - - - The name of thread in which this logging event was generated - - - - - - The time the event was logged - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Location information for the caller. - - - - Location information for the caller. - - - - - - String representation of the user - - - - String representation of the user's windows name, - like DOMAIN\username - - - - - - String representation of the identity. - - - - String representation of the current thread's principal identity. - - - - - - The string representation of the exception - - - - The string representation of the exception - - - - - - String representation of the AppDomain. - - - - String representation of the AppDomain. - - - - - - Additional event specific properties - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - - - - Flags passed to the property - - - - Flags passed to the property - - - Nicko Cadell - - - - Fix the MDC - - - - - Fix the NDC - - - - - Fix the rendered message - - - - - Fix the thread name - - - - - Fix the callers location information - - - CAUTION: Very slow to generate - - - - - Fix the callers windows user name - - - CAUTION: Slow to generate - - - - - Fix the domain friendly name - - - - - Fix the callers principal name - - - CAUTION: May be slow to generate - - - - - Fix the exception text - - - - - Fix the event properties - - - - - No fields fixed - - - - - All fields fixed - - - - - Partial fields fixed - - - - This set of partial fields gives good performance. The following fields are fixed: - - - - - - - - - - - - - The internal representation of logging events. - - - - When an affirmative decision is made to log then a - instance is created. This instance - is passed around to the different log4net components. - - - This class is of concern to those wishing to extend log4net. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino - - - - The key into the Properties map for the host name value. - - - - - The key into the Properties map for the thread identity value. - - - - - The key into the Properties map for the user name value. - - - - - Initializes a new instance of the class - from the supplied parameters. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - The name of the logger of this event. - The level of this event. - The message of this event. - The exception for this event. - - - Except , and , - all fields of LoggingEvent are filled when actually needed. Call - to cache all data locally - to prevent inconsistencies. - - This method is called by the log4net framework - to create a logging event. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - The fields in the struct that have already been fixed. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - The parameter should be used to specify which fields in the - struct have been preset. Fields not specified in the - will be captured from the environment if requested or fixed. - - - - - - Initializes a new instance of the class - using specific data. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The repository this event is logged in. - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Initializes a new instance of the class - using specific data. - - Data used to initialize the logging event. - - - This constructor is provided to allow a - to be created independently of the log4net framework. This can - be useful if you require a custom serialization scheme. - - - Use the method to obtain an - instance of the class. - - - This constructor sets this objects flags to , - this assumes that all the data relating to this event is passed in via the - parameter and no other data should be captured from the environment. - - - - - - Serialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Ensure that the repository is set. - - the value for the repository - - - - Write the rendered message to a TextWriter - - the writer to write the message to - - - Unlike the property this method - does store the message data in the internal cache. Therefore - if called only once this method should be faster than the - property, however if the message is - to be accessed multiple times then the property will be more efficient. - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - The data in this event must be fixed before it can be serialized. - - - The method must be called during the - method call if this event - is to be used outside that method. - - - - - - Gets the portable data for this . - - The for this event. - - - A new can be constructed using a - instance. - - - Does a fix of the data - in the logging event before returning the event data. - - - - - - Gets the portable data for this . - - The set of data to ensure is fixed in the LoggingEventData - The for this event. - - - A new can be constructed using a - instance. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Obsolete. Use instead. - - - - - - Returns this event's exception's rendered using the - . - - - This event's exception's rendered using the . - - - - Returns this event's exception's rendered using the - . - - - - - - Fix instance fields that hold volatile data. - - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - incurred by calling but it - is essential to maintaining data consistency. - - - Calling is equivalent to - calling passing the parameter - false. - - - See for more - information. - - - - - - Fixes instance fields that hold volatile data. - - Set to true to not fix data that takes a long time to fix. - - - Some of the values in instances of - are considered volatile, that is the values are correct at the - time the event is delivered to appenders, but will not be consistent - at any time afterwards. If an event is to be stored and then processed - at a later time these volatile values must be fixed by calling - . There is a performance penalty - for incurred by calling but it - is essential to maintaining data consistency. - - - The param controls the data that - is fixed. Some of the data that can be fixed takes a long time to - generate, therefore if you do not require those settings to be fixed - they can be ignored by setting the param - to true. This setting will ignore the - and settings. - - - Set to false to ensure that all - settings are fixed. - - - - - - Fix the fields specified by the parameter - - the fields to fix - - - Only fields specified in the will be fixed. - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Lookup a composite property in this event - - the key for the property to lookup - the value for the property - - - This event has composite properties that combine together properties from - several different contexts in the following order: - - - this events properties - - This event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - - Get all the composite properties in this event - - the containing all the properties - - - See for details of the composite properties - stored by the event. - - - This method returns a single containing all the - properties defined for this event. - - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The internal logging event data. - - - - - The fully qualified Type of the calling - logger class in the stack frame (i.e. the declaring type of the method). - - - - - The application supplied message of logging event. - - - - - The exception that was thrown. - - - This is not serialized. The string representation - is serialized instead. - - - - - The repository that generated the logging event - - - This is not serialized. - - - - - The fix state for this event - - - These flags indicate which fields have been fixed. - Not serialized. - - - - - Indicated that the internal cache is updateable (ie not fixed) - - - This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler - changes in the caching strategy. - - - - - Gets the time when the current process started. - - - This is the time when this process started. - - - - The TimeStamp is stored in the local time zone for this computer. - - - Tries to get the start time for the current process. - Failing that it returns the time of the first call to - this property. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating and therefore - without the process start time being reset. - - - - - - Gets the of the logging event. - - - The of the logging event. - - - - Gets the of the logging event. - - - - - - Gets the time of the logging event. - - - The time of the logging event. - - - - The TimeStamp is stored in the local time zone for this computer. - - - - - - Gets the name of the logger that logged the event. - - - The name of the logger that logged the event. - - - - Gets the name of the logger that logged the event. - - - - - - Gets the location information for this logging event. - - - The location information for this logging event. - - - - The collected information is cached for future use. - - - See the class for more information on - supported frameworks and the different behavior in Debug and - Release builds. - - - - - - Gets the message object used to initialize this event. - - - The message object used to initialize this event. - - - - Gets the message object used to initialize this event. - Note that this event may not have a valid message object. - If the event is serialized the message object will not - be transferred. To get the text of the message the - property must be used - not this property. - - - If there is no defined message object for this event then - null will be returned. - - - - - - Gets the exception object used to initialize this event. - - - The exception object used to initialize this event. - - - - Gets the exception object used to initialize this event. - Note that this event may not have a valid exception object. - If the event is serialized the exception object will not - be transferred. To get the text of the exception the - method must be used - not this property. - - - If there is no defined exception object for this event then - null will be returned. - - - - - - The that this event was created in. - - - - The that this event was created in. - - - - - - Gets the message, rendered through the . - - - The message rendered through the . - - - - The collected information is cached for future use. - - - - - - Gets the name of the current thread. - - - The name of the current thread, or the thread ID when - the name is not available. - - - - The collected information is cached for future use. - - - - - - Gets the name of the current user. - - - The name of the current user, or NOT AVAILABLE when the - underlying runtime has no support for retrieving the name of the - current user. - - - - Calls WindowsIdentity.GetCurrent().Name to get the name of - the current windows user. - - - To improve performance, we could cache the string representation of - the name, and reuse that as long as the identity stayed constant. - Once the identity changed, we would need to re-assign and re-render - the string. - - - However, the WindowsIdentity.GetCurrent() call seems to - return different objects every time, so the current implementation - doesn't do this type of caching. - - - Timing for these operations: - - - - Method - Results - - - WindowsIdentity.GetCurrent() - 10000 loops, 00:00:00.2031250 seconds - - - WindowsIdentity.GetCurrent().Name - 10000 loops, 00:00:08.0468750 seconds - - - - This means we could speed things up almost 40 times by caching the - value of the WindowsIdentity.GetCurrent().Name property, since - this takes (8.04-0.20) = 7.84375 seconds. - - - - - - Gets the identity of the current thread principal. - - - The string name of the identity of the current thread principal. - - - - Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get - the name of the current thread principal. - - - - - - Gets the AppDomain friendly name. - - - The AppDomain friendly name. - - - - Gets the AppDomain friendly name. - - - - - - Additional event specific properties. - - - Additional event specific properties. - - - - A logger or an appender may attach additional - properties to specific events. These properties - have a string key and an object value. - - - This property is for events that have been added directly to - this event. The aggregate properties (which include these - event properties) can be retrieved using - and . - - - Once the properties have been fixed this property - returns the combined cached properties. This ensures that updates to - this property are always reflected in the underlying storage. When - returning the combined properties there may be more keys in the - Dictionary than expected. - - - - - - The fixed fields in this event - - - The set of fields that are fixed in this event - - - - Fields will not be fixed if they have previously been fixed. - It is not possible to 'unfix' a field. - - - - - - Implementation of wrapper interface. - - - - This implementation of the interface - forwards to the held by the base class. - - - This logger has methods to allow the caller to log at the following - levels: - - - - DEBUG - - The and methods log messages - at the DEBUG level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - INFO - - The and methods log messages - at the INFO level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - WARN - - The and methods log messages - at the WARN level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - ERROR - - The and methods log messages - at the ERROR level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - FATAL - - The and methods log messages - at the FATAL level. That is the level with that name defined in the - repositories . The default value - for this level is . The - property tests if this level is enabled for logging. - - - - - The values for these levels and their semantic meanings can be changed by - configuring the for the repository. - - - Nicko Cadell - Gert Driesen - - - - The ILog interface is use by application to log messages into - the log4net framework. - - - - Use the to obtain logger instances - that implement this interface. The - static method is used to get logger instances. - - - This class contains methods for logging at different levels and also - has properties for determining if those logging levels are - enabled in the current configuration. - - - This interface can be implemented in different ways. This documentation - specifies reasonable behavior that a caller can expect from the actual - implementation, however different implementations reserve the right to - do things differently. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - Log a message object with the level. - - Log a message object with the level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Logs a message object with the INFO level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Logs a message object with the level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - Log a message object with the level. - - Log a message object with the level. - - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - The message object to log. - - - - - - Log a message object with the level including - the stack trace of the passed - as a parameter. - - The message object to log. - The exception to log, including its stack trace. - - - See the form for more detailed information. - - - - - - - Log a formatted message string with the level. - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Logs a formatted message string with the level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the String.Format method. See - for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - For some ILog interface log, when you write: - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, string construction and concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed (who isn't), then you should write: - - - if (log.IsDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in and once in - the . This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. This is the preferred style of logging. - - Alternatively if your logger is available statically then the is debug - enabled state can be stored in a static variable like this: - - - private static readonly bool isDebugEnabled = log.IsDebugEnabled; - - - Then when you come to log you can write: - - - if (isDebugEnabled) - { - log.Debug("This is entry number: " + i ); - } - - - This way the debug enabled state is only queried once - when the class is loaded. Using a private static readonly - variable is the most efficient because it is a run time constant - and can be heavily optimized by the JIT compiler. - - - Of course if you use a static readonly variable to - hold the enabled state of the logger then you cannot - change the enabled state at runtime to vary the logging - that is produced. You have to decide if you need absolute - speed or runtime flexibility. - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Checks if this logger is enabled for the level. - - - true if this logger is enabled for events, false otherwise. - - - For more information see . - - - - - - - - Construct a new wrapper for the specified logger. - - The logger to wrap. - - - Construct a new wrapper for the specified logger. - - - - - - Virtual method called when the configuration of the repository changes - - the repository holding the levels - - - Virtual method called when the configuration of the repository changes - - - - - - Logs a message object with the DEBUG level. - - The message object to log. - - - This method first checks if this logger is DEBUG - enabled by comparing the level of this logger with the - DEBUG level. If this logger is - DEBUG enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the DEBUG level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the DEBUG level including - the stack trace of the passed - as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the DEBUG level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - - - This method first checks if this logger is INFO - enabled by comparing the level of this logger with the - INFO level. If this logger is - INFO enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger - and also higher in the hierarchy depending on the value of - the additivity flag. - - - WARNING Note that passing an - to this method will print the name of the - but no stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the INFO level. - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the INFO level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the INFO level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the WARN level. - - the message object to log - - - This method first checks if this logger is WARN - enabled by comparing the level of this logger with the - WARN level. If this logger is - WARN enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the WARN level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the WARN level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the WARN level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the ERROR level. - - The message object to log. - - - This method first checks if this logger is ERROR - enabled by comparing the level of this logger with the - ERROR level. If this logger is - ERROR enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the ERROR level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the ERROR level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the ERROR level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a message object with the FATAL level. - - The message object to log. - - - This method first checks if this logger is FATAL - enabled by comparing the level of this logger with the - FATAL level. If this logger is - FATAL enabled, then it converts the message object - (passed as parameter) to a string by invoking the appropriate - . It then - proceeds to call all the registered appenders in this logger and - also higher in the hierarchy depending on the value of the - additivity flag. - - - WARNING Note that passing an to this - method will print the name of the but no - stack trace. To print a stack trace use the - form instead. - - - - - - Logs a message object with the FATAL level - - The message object to log. - The exception to log, including its stack trace. - - - Logs a message object with the FATAL level including - the stack trace of the - passed as a parameter. - - - See the form for more detailed information. - - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - A String containing zero or more format items - An Object to format - An Object to format - An Object to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - The string is formatted using the - format provider. To specify a localized provider use the - method. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Logs a formatted message string with the FATAL level. - - An that supplies culture-specific formatting information - A String containing zero or more format items - An Object array containing zero or more objects to format - - - The message is formatted using the method. See - String.Format for details of the syntax of the format string and the behavior - of the formatting. - - - This method does not take an object to include in the - log event. To pass an use one of the - methods instead. - - - - - - Event handler for the event - - the repository - Empty - - - - The fully qualified name of this declaring type not the type of any subclass. - - - - - Checks if this logger is enabled for the DEBUG - level. - - - true if this logger is enabled for DEBUG events, - false otherwise. - - - - This function is intended to lessen the computational cost of - disabled log debug statements. - - - For some log Logger object, when you write: - - - log.Debug("This is entry number: " + i ); - - - You incur the cost constructing the message, concatenation in - this case, regardless of whether the message is logged or not. - - - If you are worried about speed, then you should write: - - - if (log.IsDebugEnabled()) - { - log.Debug("This is entry number: " + i ); - } - - - This way you will not incur the cost of parameter - construction if debugging is disabled for log. On - the other hand, if the log is debug enabled, you - will incur the cost of evaluating whether the logger is debug - enabled twice. Once in IsDebugEnabled and once in - the Debug. This is an insignificant overhead - since evaluating a logger takes about 1% of the time it - takes to actually log. - - - - - - Checks if this logger is enabled for the INFO level. - - - true if this logger is enabled for INFO events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the WARN level. - - - true if this logger is enabled for WARN events, - false otherwise. - - - - See for more information and examples - of using this method. - - - - - - - Checks if this logger is enabled for the ERROR level. - - - true if this logger is enabled for ERROR events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - Checks if this logger is enabled for the FATAL level. - - - true if this logger is enabled for FATAL events, - false otherwise. - - - - See for more information and examples of using this method. - - - - - - - A SecurityContext used by log4net when interacting with protected resources - - - - A SecurityContext used by log4net when interacting with protected resources - for example with operating system services. This can be used to impersonate - a principal that has been granted privileges on the system resources. - - - Nicko Cadell - - - - Impersonate this SecurityContext - - State supplied by the caller - An instance that will - revoke the impersonation of this SecurityContext, or null - - - Impersonate this security context. Further calls on the current - thread should now be made in the security context provided - by this object. When the result - method is called the security - context of the thread should be reverted to the state it was in - before was called. - - - - - - The providers default instances. - - - - A configured component that interacts with potentially protected system - resources uses a to provide the elevated - privileges required. If the object has - been not been explicitly provided to the component then the component - will request one from this . - - - By default the is - an instance of which returns only - objects. This is a reasonable default - where the privileges required are not know by the system. - - - This default behavior can be overridden by subclassing the - and overriding the method to return - the desired objects. The default provider - can be replaced by programmatically setting the value of the - property. - - - An alternative is to use the log4net.Config.SecurityContextProviderAttribute - This attribute can be applied to an assembly in the same way as the - log4net.Config.XmlConfiguratorAttribute". The attribute takes - the type to use as the as an argument. - - - Nicko Cadell - - - - The default provider - - - - - Protected default constructor to allow subclassing - - - - Protected default constructor to allow subclassing - - - - - - Create a SecurityContext for a consumer - - The consumer requesting the SecurityContext - An impersonation context - - - The default implementation is to return a . - - - Subclasses should override this method to provide their own - behavior. - - - - - - Gets or sets the default SecurityContextProvider - - - The default SecurityContextProvider - - - - The default provider is used by configured components that - require a and have not had one - given to them. - - - By default this is an instance of - that returns objects. - - - The default provider can be set programmatically by setting - the value of this property to a sub class of - that has the desired behavior. - - - - - - Delegate used to handle creation of new wrappers. - - The logger to wrap in a wrapper. - - - Delegate used to handle creation of new wrappers. This delegate - is called from the - method to construct the wrapper for the specified logger. - - - The delegate to use is supplied to the - constructor. - - - - - - Maps between logger objects and wrapper objects. - - - - This class maintains a mapping between objects and - objects. Use the method to - lookup the for the specified . - - - New wrapper instances are created by the - method. The default behavior is for this method to delegate construction - of the wrapper to the delegate supplied - to the constructor. This allows specialization of the behavior without - requiring subclassing of this type. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the - - The handler to use to create the wrapper objects. - - - Initializes a new instance of the class with - the specified handler to create the wrapper objects. - - - - - - Gets the wrapper object for the specified logger. - - The wrapper object for the specified logger - - - If the logger is null then the corresponding wrapper is null. - - - Looks up the wrapper it it has previously been requested and - returns it. If the wrapper has never been requested before then - the virtual method is - called. - - - - - - Creates the wrapper object for the specified logger. - - The logger to wrap in a wrapper. - The wrapper object for the logger. - - - This implementation uses the - passed to the constructor to create the wrapper. This method - can be overridden in a subclass. - - - - - - Called when a monitored repository shutdown event is received. - - The that is shutting down - - - This method is called when a that this - is holding loggers for has signaled its shutdown - event . The default - behavior of this method is to release the references to the loggers - and their wrappers generated for this repository. - - - - - - Event handler for repository shutdown event. - - The sender of the event. - The event args. - - - - Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings - - - - - The handler to use to create the extension wrapper objects. - - - - - Internal reference to the delegate used to register for repository shutdown events. - - - - - Gets the map of logger repositories. - - - Map of logger repositories. - - - - Gets the hashtable that is keyed on . The - values are hashtables keyed on with the - value being the corresponding . - - - - - - Formats a as "HH:mm:ss,fff". - - - - Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". - - - Nicko Cadell - Gert Driesen - - - - Render a as a string. - - - - Interface to abstract the rendering of a - instance into a string. - - - The method is used to render the - date to a text writer. - - - Nicko Cadell - Gert Driesen - - - - Formats the specified date as a string. - - The date to format. - The writer to write to. - - - Format the as a string and write it - to the provided. - - - - - - String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. - - - - - String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. - - - - - String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. - - - - - Renders the date into a string. Format is "HH:mm:ss". - - The date to render into a string. - The string builder to write to. - - - Subclasses should override this method to render the date - into a string using a precision up to the second. This method - will be called at most once per second and the result will be - reused if it is needed again during the same second. - - - - - - Renders the date into a string. Format is "HH:mm:ss,fff". - - The date to render into a string. - The writer to write to. - - - Uses the method to generate the - time string up to the seconds and then appends the current - milliseconds. The results from are - cached and is called at most once - per second. - - - Sub classes should override - rather than . - - - - - - Last stored time with precision up to the second. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Last stored time with precision up to the second, formatted - as a string. - - - - - Formats a as "dd MMM yyyy HH:mm:ss,fff" - - - - Formats a in the format - "dd MMM yyyy HH:mm:ss,fff" for example, - "06 Nov 1994 15:49:37,459". - - - Nicko Cadell - Gert Driesen - Angelika Schnagl - - - - Default constructor. - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" - for example, "06 Nov 1994 15:49:37". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - The format info for the invariant culture. - - - - - Formats the as "yyyy-MM-dd HH:mm:ss,fff". - - - - Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Formats the date without the milliseconds part - - The date to format. - The string builder to write to. - - - Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". - - - The base class will append the ",fff" milliseconds section. - This method will only be called at most once per second. - - - - - - Formats the using the method. - - - - Formats the using the method. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The format string. - - - Initializes a new instance of the class - with the specified format string. - - - The format string must be compatible with the options - that can be supplied to . - - - - - - Formats the date using . - - The date to convert to a string. - The writer to write to. - - - Uses the date format string supplied to the constructor to call - the method to format the date. - - - - - - The format string used to format the . - - - - The format string must be compatible with the options - that can be supplied to . - - - - - - This filter drops all . - - - - You can add this filter to the end of a filter chain to - switch from the default "accept all unless instructed otherwise" - filtering behavior to a "deny all unless instructed otherwise" - behavior. - - - Nicko Cadell - Gert Driesen - - - - Subclass this type to implement customized logging event filtering - - - - Users should extend this class to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface to provide customized logging event filtering - - - - Users should implement this interface to implement customized logging - event filtering. Note that and - , the parent class of all standard - appenders, have built-in filtering rules. It is suggested that you - first use and understand the built-in rules before rushing to write - your own custom filters. - - - This abstract class assumes and also imposes that filters be - organized in a linear chain. The - method of each filter is called sequentially, in the order of their - addition to the chain. - - - The method must return one - of the integer constants , - or . - - - If the value is returned, then the log event is dropped - immediately without consulting with the remaining filters. - - - If the value is returned, then the next filter - in the chain is consulted. If there are no more filters in the - chain, then the log event is logged. Thus, in the presence of no - filters, the default behavior is to log all logging events. - - - If the value is returned, then the log - event is logged without consulting the remaining filters. - - - The philosophy of log4net filters is largely inspired from the - Linux ipchains. - - - Nicko Cadell - Gert Driesen - - - - Decide if the logging event should be logged through an appender. - - The LoggingEvent to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Points to the next filter in the filter chain. - - - - See for more information. - - - - - - Initialize the filter with the options set - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Typically filter's options become active immediately on set, - however this method must still be called. - - - - - - Decide if the should be logged through an appender. - - The to decide upon - The decision of the filter - - - If the decision is , then the event will be - dropped. If the decision is , then the next - filter, if any, will be invoked. If the decision is then - the event will be logged without consulting with other filters in - the chain. - - - This method is marked abstract and must be implemented - in a subclass. - - - - - - Property to get and set the next filter - - - The next filter in the chain - - - - Filters are typically composed into chains. This property allows the next filter in - the chain to be accessed. - - - - - - Default constructor - - - - - Always returns the integer constant - - the LoggingEvent to filter - Always returns - - - Ignores the event being logged and just returns - . This can be used to change the default filter - chain behavior from to . This filter - should only be used as the last filter in the chain - as any further filters will be ignored! - - - - - - The return result from - - - - The return result from - - - - - - The log event must be dropped immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This filter is neutral with respect to the log event. - The remaining filters, if any, should be consulted for a final decision. - - - - - The log event must be logged immediately without - consulting with the remaining filters, if any, in the chain. - - - - - This is a very simple filter based on matching. - - - - The filter admits two options and - . If there is an exact match between the value - of the option and the of the - , then the method returns in - case the option value is set - to true, if it is false then - is returned. If the does not match then - the result will be . - - - Nicko Cadell - Gert Driesen - - - - flag to indicate if the filter should on a match - - - - - the to match against - - - - - Default constructor - - - - - Tests if the of the logging event matches that of the filter - - the event to filter - see remarks - - - If the of the event matches the level of the - filter then the result of the function depends on the - value of . If it is true then - the function will return , it it is false then it - will return . If the does not match then - the result will be . - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - The level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - This is a simple filter based on matching. - - - - The filter admits three options and - that determine the range of priorities that are matched, and - . If there is a match between the range - of priorities and the of the , then the - method returns in case the - option value is set to true, if it is false - then is returned. If there is no match, is returned. - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when matching a - - - - - the minimum value to match - - - - - the maximum value to match - - - - - Default constructor - - - - - Check if the event should be logged. - - the logging event to check - see remarks - - - If the of the logging event is outside the range - matched by this filter then - is returned. If the is matched then the value of - is checked. If it is true then - is returned, otherwise - is returned. - - - - - - when matching and - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Set the minimum matched - - - - The minimum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Sets the maximum matched - - - - The maximum level that this filter will attempt to match against the - level. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a string in the event's logger name. - - - - The works very similar to the . It admits two - options and . If the - of the starts - with the value of the option, then the - method returns in - case the option value is set to true, - if it is false then is returned. - - - Daniel Cazzulino - - - - Flag to indicate the behavior when we have a match - - - - - The logger name string to substring match against the event - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the equals the beginning of - the incoming () - then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - The that the filter will match - - - - This filter will attempt to match this value against logger name in - the following way. The match will be done against the beginning of the - logger name (using ). The match is - case sensitive. If a match is found then - the result depends on the value of . - - - - - - Simple filter to match a keyed string in the - - - - Simple filter to match a keyed string in the - - - As the MDC has been replaced with layered properties the - should be used instead. - - - Nicko Cadell - Gert Driesen - - - - Simple filter to match a string an event property - - - - Simple filter to match a string in the value for a - specific event property - - - Nicko Cadell - - - - Simple filter to match a string in the rendered message - - - - Simple filter to match a string in the rendered message - - - Nicko Cadell - Gert Driesen - - - - Flag to indicate the behavior when we have a match - - - - - The string to substring match against the message - - - - - A string regex to match - - - - - A regex object to match (generated from m_stringRegexToMatch) - - - - - Default constructor - - - - - Initialize and precompile the Regex if required - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The rendered message is matched against the . - If the occurs as a substring within - the message then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - when matching or - - - - The property is a flag that determines - the behavior when a matching is found. If the - flag is set to true then the filter will the - logging event, otherwise it will the event. - - - The default is true i.e. to the event. - - - - - - Sets the static string to match - - - - The string that will be substring matched against - the rendered message. If the message contains this - string then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - Sets the regular expression to match - - - - The regular expression pattern that will be matched against - the rendered message. If the message matches this - pattern then the filter will match. If a match is found then - the result depends on the value of . - - - One of or - must be specified. - - - - - - The key to use to lookup the string from the event properties - - - - - Default constructor - - - - - Check if this filter should allow the event to be logged - - the event being logged - see remarks - - - The event property for the is matched against - the . - If the occurs as a substring within - the property value then a match will have occurred. If no match occurs - this function will return - allowing other filters to check the event. If a match occurs then - the value of is checked. If it is - true then is returned otherwise - is returned. - - - - - - The key to lookup in the event properties and then match against. - - - - The key name to use to lookup in the properties map of the - . The match will be performed against - the value of this property if it exists. - - - - - - Simple filter to match a string in the - - - - Simple filter to match a string in the - - - As the MDC has been replaced with named stacks stored in the - properties collections the should - be used instead. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Sets the to "NDC". - - - - - - Write the event appdomain name to the output - - - - Writes the to the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - Nicko Cadell - - - - Abstract class that provides the formatting functionality that - derived classes need. - - - - Conversion specifiers in a conversion patterns are parsed to - individual PatternConverters. Each of which is responsible for - converting a logging event in a converter specific manner. - - - Nicko Cadell - Gert Driesen - - - - Initial buffer size - - - - - Maximum buffer size before it is recycled - - - - - Protected constructor - - - - Initializes a new instance of the class. - - - - - - Evaluate this pattern converter and write the output to a writer. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the appropriate way. - - - - - - Set the next pattern converter in the chains - - the pattern converter that should follow this converter in the chain - the next converter - - - The PatternConverter can merge with its neighbor during this method (or a sub class). - Therefore the return value may or may not be the value of the argument passed in. - - - - - - Write the pattern converter to the writer with appropriate formatting - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - This method calls to allow the subclass to perform - appropriate conversion of the pattern converter. If formatting options have - been specified via the then this method will - apply those formattings before writing the output. - - - - - - Fast space padding method. - - to which the spaces will be appended. - The number of spaces to be padded. - - - Fast space padding method. - - - - - - The option string to the converter - - - - - Write an dictionary to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the to a writer in the form: - - - {key1=value1, key2=value2, key3=value3} - - - If the specified - is not null then it is used to render the key and value to text, otherwise - the object's ToString method is called. - - - - - - Write an object to a - - the writer to write to - a to use for object conversion - the value to write to the writer - - - Writes the Object to a writer. If the specified - is not null then it is used to render the object to text, otherwise - the object's ToString method is called. - - - - - - Get the next pattern converter in the chain - - - the next pattern converter in the chain - - - - Get the next pattern converter in the chain - - - - - - Gets or sets the formatting info for this converter - - - The formatting info for this converter - - - - Gets or sets the formatting info for this converter - - - - - - Gets or sets the option value for this converter - - - The option for this converter - - - - Gets or sets the option value for this converter - - - - - - Initializes a new instance of the class. - - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The on which the pattern converter should be executed. - - - - Derived pattern converters must override this method in order to - convert conversion specifiers in the correct way. - - that will receive the formatted result. - The state object on which the pattern converter should be executed. - - - - Flag indicating if this converter handles exceptions - - - false if this converter handles exceptions - - - - - Flag indicating if this converter handles the logging event exception - - false if this converter handles the logging event exception - - - If this converter handles the exception object contained within - , then this property should be set to - false. Otherwise, if the layout ignores the exception - object, then the property should be set to true. - - - Set this value to override a this default setting. The default - value is true, this converter does not handle the exception. - - - - - - Write the event appdomain name to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output . - - - - - - Date pattern converter, uses a to format - the date of a . - - - - Render the to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter pattern based on the property. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Convert the pattern into the rendered message - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone. - - - - - - Write the exception text to the output - - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - Nicko Cadell - - - - Default constructor - - - - - Write the exception text to the output - - that will receive the formatted result. - the event being logged - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - - - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - - - - Writes the caller location file name to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location file name to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Write the caller location info to the output - - - - Writes the to the output writer. - - - Nicko Cadell - - - - Write the caller location info to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the output writer. - - - - - - Writes the event identity to the output - - - - Writes the value of the to - the output writer. - - - Daniel Cazzulino - Nicko Cadell - - - - Writes the event identity to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the - to - the output . - - - - - - Write the event level to the output - - - - Writes the display name of the event - to the writer. - - - Nicko Cadell - - - - Write the event level to the output - - that will receive the formatted result. - the event being logged - - - Writes the of the - to the . - - - - - - Write the caller location line number to the output - - - - Writes the value of the for - the event to the output writer. - - - Nicko Cadell - - - - Write the caller location line number to the output - - that will receive the formatted result. - the event being logged - - - Writes the value of the for - the to the output . - - - - - - Converter for logger name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Converter to output and truncate '.' separated strings - - - - This abstract class supports truncating a '.' separated string - to show a specified number of elements from the right hand side. - This is used to truncate class names that are fully qualified. - - - Subclasses should override the method to - return the fully qualified string. - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Get the fully qualified string data - - the event being logged - the fully qualified name - - - Overridden by subclasses to get the fully qualified name before the - precision is applied to it. - - - Return the fully qualified '.' (dot/period) separated string. - - - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - Render the to the precision - specified by the property. - - - - - Gets the fully qualified name of the logger - - the event being logged - The fully qualified logger name - - - Returns the of the . - - - - - - Writes the event message to the output - - - - Uses the method - to write out the event message. - - - Nicko Cadell - - - - Writes the event message to the output - - that will receive the formatted result. - the event being logged - - - Uses the method - to write out the event message. - - - - - - Write the method name to the output - - - - Writes the caller location to - the output. - - - Nicko Cadell - - - - Write the method name to the output - - that will receive the formatted result. - the event being logged - - - Writes the caller location to - the output. - - - - - - Converter to include event NDC - - - - Outputs the value of the event property named NDC. - - - The should be used instead. - - - Nicko Cadell - - - - Write the event NDC to the output - - that will receive the formatted result. - the event being logged - - - As the thread context stacks are now stored in named event properties - this converter simply looks up the value of the NDC property. - - - The should be used instead. - - - - - - Property pattern converter - - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - the event being logged - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - Converter to output the relative time of the event - - - - Converter to output the time of the event relative to the start of the program. - - - Nicko Cadell - - - - Write the relative time to the output - - that will receive the formatted result. - the event being logged - - - Writes out the relative time of the event in milliseconds. - That is the number of milliseconds between the event - and the . - - - - - - Helper method to get the time difference between two DateTime objects - - start time (in the current local time zone) - end time (in the current local time zone) - the time difference in milliseconds - - - - Converter to include event thread name - - - - Writes the to the output. - - - Nicko Cadell - - - - Write the ThreadName to the output - - that will receive the formatted result. - the event being logged - - - Writes the to the . - - - - - - Pattern converter for the class name - - - - Outputs the of the event. - - - Nicko Cadell - - - - Gets the fully qualified name of the class - - the event being logged - The fully qualified type name for the caller location - - - Returns the of the . - - - - - - Converter to include event user name - - Douglas de la Torre - Nicko Cadell - - - - Convert the pattern to the rendered message - - that will receive the formatted result. - the event being logged - - - - Write the TimeStamp to the output - - - - Date pattern converter, uses a to format - the date of a . - - - Uses a to format the - in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the TimeStamp to the output - - that will receive the formatted result. - the event being logged - - - Pass the to the - for it to render it to the writer. - - - The passed is in the local time zone, this is converted - to Universal time before it is rendered. - - - - - - - A Layout that renders only the Exception text from the logging event - - - - A Layout that renders only the Exception text from the logging event. - - - This Layout should only be used with appenders that utilize multiple - layouts (e.g. ). - - - Nicko Cadell - Gert Driesen - - - - Extend this abstract class to create your own log layout format. - - - - This is the base implementation of the - interface. Most layout objects should extend this class. - - - - - - Subclasses must implement the - method. - - - Subclasses should set the in their default - constructor. - - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by layout objects - - - - An object is used to format a - as text. The method is called by an - appender to transform the into a string. - - - The layout can also supply and - text that is appender before any events and after all the events respectively. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text and output to a writer. - - - If the caller does not have a and prefers the - event to be formatted as a then the following - code can be used to format the event into a . - - - StringWriter writer = new StringWriter(); - Layout.Format(writer, loggingEvent); - string formattedEvent = writer.ToString(); - - - - - - The content type output by this layout. - - The content type - - - The content type output by this layout. - - - This is a MIME type e.g. "text/plain". - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handle exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - - - - The header text - - - - See for more information. - - - - - - The footer text - - - - See for more information. - - - - - - Flag indicating if this layout handles exceptions - - - - false if this layout handles exceptions - - - - - - Empty default constructor - - - - Empty default constructor - - - - - - Activate component options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - This method must be implemented by the subclass. - - - - - - Implement this method to create your own layout format. - - The TextWriter to write the formatted event to - The event to format - - - This method is called by an appender to format - the as text. - - - - - - The content type output by this layout. - - The content type is "text/plain" - - - The content type output by this layout. - - - This base class uses the value "text/plain". - To change this value a subclass must override this - property. - - - - - - The header for the layout format. - - the layout header - - - The Header text will be appended before any logging events - are formatted and appended. - - - - - - The footer for the layout format. - - the layout footer - - - The Footer text will be appended after all the logging events - have been formatted and appended. - - - - - - Flag indicating if this layout handles exceptions - - false if this layout handles exceptions - - - If this layout handles the exception object contained within - , then the layout should return - false. Otherwise, if the layout ignores the exception - object, then the layout should return true. - - - Set this value to override a this default setting. The default - value is true, this layout does not handle the exception. - - - - - - Default constructor - - - - Constructs a ExceptionLayout - - - - - - Activate component options - - - - Part of the component activation - framework. - - - This method does nothing as options become effective immediately. - - - - - - Gets the exception text from the logging event - - The TextWriter to write the formatted event to - the event being logged - - - Write the exception string to the . - The exception string is retrieved from . - - - - - - Interface for raw layout objects - - - - Interface used to format a - to an object. - - - This interface should not be confused with the - interface. This interface is used in - only certain specialized situations where a raw object is - required rather than a formatted string. The - is not generally useful than this interface. - - - Nicko Cadell - Gert Driesen - - - - Implement this method to create your own layout format. - - The event to format - returns the formatted event - - - Implement this method to create your own layout format. - - - - - - Adapts any to a - - - - Where an is required this adapter - allows a to be specified. - - - Nicko Cadell - Gert Driesen - - - - The layout to adapt - - - - - Construct a new adapter - - the layout to adapt - - - Create the adapter for the specified . - - - - - - Format the logging event as an object. - - The event to format - returns the formatted event - - - Format the logging event as an object. - - - Uses the object supplied to - the constructor to perform the formatting. - - - - - - A flexible layout configurable with pattern string. - - - - The goal of this class is to a - as a string. The results - depend on the conversion pattern. - - - The conversion pattern is closely related to the conversion - pattern of the printf function in C. A conversion pattern is - composed of literal text and format control expressions called - conversion specifiers. - - - You are free to insert any literal text within the conversion - pattern. - - - Each conversion specifier starts with a percent sign (%) and is - followed by optional format modifiers and a conversion - pattern name. The conversion pattern name specifies the type of - data, e.g. logger, level, date, thread name. The format - modifiers control such things as field width, padding, left and - right justification. The following is a simple example. - - - Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume - that the log4net environment was set to use a PatternLayout. Then the - statements - - - ILog log = LogManager.GetLogger(typeof(TestApp)); - log.Debug("Message 1"); - log.Warn("Message 2"); - - would yield the output - - DEBUG [main]: Message 1 - WARN [main]: Message 2 - - - Note that there is no explicit separator between text and - conversion specifiers. The pattern parser knows when it has reached - the end of a conversion specifier when it reads a conversion - character. In the example above the conversion specifier - %-5level means the level of the logging event should be left - justified to a width of five characters. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - a - Equivalent to appdomain - - - appdomain - - Used to output the friendly name of the AppDomain where the - logging event was generated. - - - - c - Equivalent to logger - - - C - Equivalent to type - - - class - Equivalent to type - - - d - Equivalent to date - - - date - - - Used to output the date of the logging event in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - exception - - - Used to output the exception passed in with the log message. - - - If an exception object is stored in the logging event - it will be rendered into the pattern output with a - trailing newline. - If there is no exception then nothing will be output - and no trailing newline will be appended. - It is typical to put a newline before the exception - and to have the exception as the last data in the pattern. - - - - - F - Equivalent to file - - - file - - - Used to output the file name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - WARNING Generating caller information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - l - Equivalent to location - - - L - Equivalent to line - - - location - - - Used to output location information of the caller which generated - the logging event. - - - The location information depends on the CLI implementation but - usually consists of the fully qualified name of the calling - method followed by the callers source the file name and line - number between parentheses. - - - The location information can be very useful. However, its - generation is extremely slow. Its use should be avoided - unless execution speed is not an issue. - - - See the note below on the availability of caller location information. - - - - - level - - - Used to output the level of the logging event. - - - - - line - - - Used to output the line number from where the logging request - was issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - logger - - - Used to output the logger of the logging event. The - logger conversion specifier can be optionally followed by - precision specifier, that is a decimal constant in - brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the logger name will be - printed. By default the logger name is printed in full. - - - For example, for the logger name "a.b.c" the pattern - %logger{2} will output "b.c". - - - - - m - Equivalent to message - - - M - Equivalent to method - - - message - - - Used to output the application supplied message associated with - the logging event. - - - - - mdc - - - The MDC (old name for the ThreadContext.Properties) is now part of the - combined event properties. This pattern is supported for compatibility - but is equivalent to property. - - - - - method - - - Used to output the method name where the logging request was - issued. - - - WARNING Generating caller location information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - See the note below on the availability of caller location information. - - - - - n - Equivalent to newline - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - ndc - - - Used to output the NDC (nested diagnostic context) associated - with the thread that generated the logging event. - - - - - p - Equivalent to level - - - P - Equivalent to property - - - properties - Equivalent to property - - - property - - - Used to output the an event specific property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are added to events by loggers or appenders. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the event properties - - The event has that can be set. These - properties are specific to this event only. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - - r - Equivalent to timestamp - - - t - Equivalent to thread - - - timestamp - - - Used to output the number of milliseconds elapsed since the start - of the application until the creation of the logging event. - - - - - thread - - - Used to output the name of the thread that generated the - logging event. Uses the thread number if no name is available. - - - - - type - - - Used to output the fully qualified type name of the caller - issuing the logging request. This conversion specifier - can be optionally followed by precision specifier, that - is a decimal constant in brackets. - - - If a precision specifier is given, then only the corresponding - number of right most components of the class name will be - printed. By default the class name is output in fully qualified form. - - - For example, for the class name "log4net.Layout.PatternLayout", the - pattern %type{1} will output "PatternLayout". - - - WARNING Generating the caller class information is - slow. Thus, its use should be avoided unless execution speed is - not an issue. - - - See the note below on the availability of caller location information. - - - - - u - Equivalent to identity - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - WARNING Generating caller WindowsIdentity information is - extremely slow. Its use should be avoided unless execution speed - is not an issue. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - w - Equivalent to username - - - x - Equivalent to ndc - - - X - Equivalent to mdc - - - % - - - The sequence %% outputs a single percent sign. - - - - - - The single letter patterns are deprecated in favor of the - longer more descriptive pattern names. - - - By default the relevant information is output as is. However, - with the aid of format modifiers it is possible to change the - minimum field width, the maximum field width and justification. - - - The optional format modifier is placed between the percent sign - and the conversion pattern name. - - - The first optional format modifier is the left justification - flag which is just the minus (-) character. Then comes the - optional minimum field width modifier. This is a decimal - constant that represents the minimum number of characters to - output. If the data item requires fewer characters, it is padded on - either the left or the right until the minimum width is - reached. The default is to pad on the left (right justify) but you - can specify right padding with the left justification flag. The - padding character is space. If the data item is larger than the - minimum field width, the field is expanded to accommodate the - data. The value is never truncated. - - - This behavior can be changed using the maximum field - width modifier which is designated by a period followed by a - decimal constant. If the data item is longer than the maximum - field, then the extra characters are removed from the - beginning of the data item and not from the end. For - example, it the maximum field width is eight and the data item is - ten characters long, then the first two characters of the data item - are dropped. This behavior deviates from the printf function in C - where truncation is done from the end. - - - Below are various format modifier examples for the logger - conversion specifier. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format modifierleft justifyminimum widthmaximum widthcomment
%20loggerfalse20none - - Left pad with spaces if the logger name is less than 20 - characters long. - -
%-20loggertrue20none - - Right pad with spaces if the logger - name is less than 20 characters long. - -
%.30loggerNAnone30 - - Truncate from the beginning if the logger - name is longer than 30 characters. - -
%20.30loggerfalse2030 - - Left pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
%-20.30loggertrue2030 - - Right pad with spaces if the logger name is shorter than 20 - characters. However, if logger name is longer than 30 characters, - then truncate from the beginning. - -
-
- - Note about caller location information.
- The following patterns %type %file %line %method %location %class %C %F %L %l %M - all generate caller location information. - Location information uses the System.Diagnostics.StackTrace class to generate - a call stack. The caller's information is then extracted from this stack. -
- - - The System.Diagnostics.StackTrace class is not supported on the - .NET Compact Framework 1.0 therefore caller location information is not - available on that framework. - - - - - The System.Diagnostics.StackTrace class has this to say about Release builds: - - - "StackTrace information will be most informative with Debug build configurations. - By default, Debug builds include debug symbols, while Release builds do not. The - debug symbols contain most of the file, method name, line number, and column - information used in constructing StackFrame and StackTrace objects. StackTrace - might not report as many method calls as expected, due to code transformations - that occur during optimization." - - - This means that in a Release build the caller information may be incomplete or may - not exist at all! Therefore caller location information cannot be relied upon in a Release build. - - - - Additional pattern converters may be registered with a specific - instance using the method. - -
- - This is a more detailed pattern. - %timestamp [%thread] %level %logger %ndc - %message%newline - - - A similar pattern except that the relative time is - right padded if less than 6 digits, thread name is right padded if - less than 15 characters and truncated if longer and the logger - name is left padded if shorter than 30 characters and truncated if - longer. - %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline - - Nicko Cadell - Gert Driesen - Douglas de la Torre - Daniel Cazzulino -
- - - Default pattern string for log output. - - - - Default pattern string for log output. - Currently set to the string "%message%newline" - which just prints the application supplied message. - - - - - - A detailed conversion pattern - - - - A conversion pattern which includes Time, Thread, Logger, and Nested Context. - Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. - - - - - - Internal map of converter identifiers to converter types. - - - - This static map is overridden by the m_converterRegistry instance map - - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternLayout only - - - - - Initialize the global registry - - - - Defines the builtin global rules. - - - - - - Constructs a PatternLayout using the DefaultConversionPattern - - - - The default pattern just produces the application supplied message. - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - As per the contract the - method must be called after the properties on this object have been - configured. - - - - - - Constructs a PatternLayout using the supplied conversion pattern - - the pattern to use - - - Note to Inheritors: This constructor calls the virtual method - . If you override this method be - aware that it will be called before your is called constructor. - - - When using this constructor the method - need not be called. This may not be the case when using a subclass. - - - - - - Create the pattern parser instance - - the pattern to parse - The that will format the event - - - Creates the used to parse the conversion string. Sets the - global and instance rules on the . - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string as specified by the conversion pattern. - - the event being logged - The TextWriter to write the formatted event to - - - Parse the using the patter format - specified in the property. - - - - - - Add a converter to this PatternLayout - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternLayout - - the name of the conversion pattern for this converter - the type of the converter - - - Add a named pattern converter to this instance. This - converter will be used in the formatting of the event. - This method must be called before . - - - The specified must extend the - type. - - - - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - Wrapper class used to map converter names to converter types - - - - Pattern converter info class used during configuration to - pass to the - method. - - - - - - default constructor - - - - - Gets or sets the name of the conversion pattern - - - - The name of the pattern in the format string - - - - - - Gets or sets the type of the converter - - - - The value specified must extend the - type. - - - - - - Type converter for the interface - - - - Used to convert objects to the interface. - Supports converting from the interface to - the interface using the . - - - Nicko Cadell - Gert Driesen - - - - Interface supported by type converters - - - - This interface supports conversion from arbitrary types - to a single target type. See . - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Test if the can be converted to the - type supported by this converter. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Converts the to the type supported - by this converter. - - - - - - Can the sourceType be converted to an - - the source to be to be converted - true if the source type can be converted to - - - Test if the can be converted to a - . Only is supported - as the . - - - - - - Convert the value to a object - - the value to convert - the object - - - Convert the object to a - object. If the object - is a then the - is used to adapt between the two interfaces, otherwise an - exception is thrown. - - - - - - Extract the value of a property from the - - - - Extract the value of a property from the - - - Nicko Cadell - - - - Constructs a RawPropertyLayout - - - - - Lookup the property for - - The event to format - returns property value - - - Looks up and returns the object value of the property - named . If there is no property defined - with than name then null will be returned. - - - - - - The name of the value to lookup in the LoggingEvent Properties collection. - - - Value to lookup in the LoggingEvent Properties collection - - - - String name of the property to lookup in the . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in local time. To format the time stamp - in universal time use . - - - - - - Extract the date from the - - - - Extract the date from the - - - Nicko Cadell - Gert Driesen - - - - Constructs a RawUtcTimeStampLayout - - - - - Gets the as a . - - The event to format - returns the time stamp - - - Gets the as a . - - - The time stamp is in universal time. To format the time stamp - in local time use . - - - - - - A very simple layout - - - - SimpleLayout consists of the level of the log statement, - followed by " - " and then the log message itself. For example, - - DEBUG - Hello world - - - - Nicko Cadell - Gert Driesen - - - - Constructs a SimpleLayout - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a simple formatted output. - - the event being logged - The TextWriter to write the formatted event to - - - Formats the event as the level of the even, - followed by " - " and then the log message itself. The - output is terminated by a newline. - - - - - - Layout that formats the log events as XML elements. - - - - The output of the consists of a series of - log4net:event elements. It does not output a complete well-formed XML - file. The output is designed to be included as an external entity - in a separate file to form a correct XML file. - - - For example, if abc is the name of the file where - the output goes, then a well-formed XML file would - be: - - - <?xml version="1.0" ?> - - <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> - - <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> - &data; - </log4net:events> - - - This approach enforces the independence of the - and the appender where it is embedded. - - - The version attribute helps components to correctly - interpret output generated by . The value of - this attribute should be "1.2" for release 1.2 and later. - - - Alternatively the Header and Footer properties can be - configured to output the correct XML header, open tag and close tag. - When setting the Header and Footer properties it is essential - that the underlying data store not be appendable otherwise the data - will become invalid XML. - - - Nicko Cadell - Gert Driesen - - - - Layout that formats the log events as XML elements. - - - - This is an abstract class that must be subclassed by an implementation - to conform to a specific schema. - - - Deriving classes must implement the method. - - - Nicko Cadell - Gert Driesen - - - - Protected constructor to support subclasses - - - - Initializes a new instance of the class - with no location info. - - - - - - Protected constructor to support subclasses - - - - The parameter determines whether - location information will be output by the layout. If - is set to true, then the - file name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Produces a formatted string. - - The event being logged. - The TextWriter to write the formatted event to - - - Format the and write it to the . - - - This method creates an that writes to the - . The is passed - to the method. Subclasses should override the - method rather than this method. - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Subclasses should override this method to format - the as XML. - - - - - - Flag to indicate if location information should be included in - the XML events. - - - - - Writer adapter that ignores Close - - - - - The string to replace invalid chars with - - - - - Gets a value indicating whether to include location information in - the XML events. - - - true if location information should be included in the XML - events; otherwise, false. - - - - If is set to true, then the file - name and line number of the statement at the origin of the log - statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - The string to replace characters that can not be expressed in XML with. - - - Not all characters may be expressed in XML. This property contains the - string to replace those that can not with. This defaults to a ?. Set it - to the empty string to simply remove offending characters. For more - details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets - Character replacement will occur in the log message, the property names - and the property values. - - - - - - - Gets the content type output by this layout. - - - As this is the XML layout, the value is always "text/xml". - - - - As this is the XML layout, the value is always "text/xml". - - - - - - Constructs an XmlLayout - - - - - Constructs an XmlLayout. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SmtpAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Initialize layout options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - Builds a cache of the element names - - - - - - Does the actual writing of the XML. - - The writer to use to output the event to. - The event to write. - - - Override the base class method - to write the to the . - - - - - - The prefix to use for all generated element names - - - - - The prefix to use for all element names - - - - The default prefix is log4net. Set this property - to change the prefix. If the prefix is set to an empty string - then no prefix will be written. - - - - - - Set whether or not to base64 encode the message. - - - - By default the log message will be written as text to the xml - output. This can cause problems when the message contains binary - data. By setting this to true the contents of the message will be - base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the log message. - - - - - - Set whether or not to base64 encode the property values. - - - - By default the properties will be written as text to the xml - output. This can cause problems when one or more properties contain - binary data. By setting this to true the values of the properties - will be base64 encoded. If this is set then invalid character replacement - (see ) will not be performed - on the property values. - - - - - - Layout that formats the log events as XML elements compatible with the log4j schema - - - - Formats the log events according to the http://logging.apache.org/log4j schema. - - - Nicko Cadell - - - - The 1st of January 1970 in UTC - - - - - Constructs an XMLLayoutSchemaLog4j - - - - - Constructs an XMLLayoutSchemaLog4j. - - - - The LocationInfo option takes a boolean value. By - default, it is set to false which means there will be no location - information output by this layout. If the the option is set to - true, then the file name and line number of the statement - at the origin of the log statement will be output. - - - If you are embedding this layout within an SMTPAppender - then make sure to set the LocationInfo option of that - appender as well. - - - - - - Actually do the writing of the xml - - the writer to use - the event to write - - - Generate XML that is compatible with the log4j schema. - - - - - - The version of the log4j schema to use. - - - - Only version 1.2 of the log4j schema is supported. - - - - - - The default object Renderer. - - - - The default renderer supports rendering objects and collections to strings. - - - See the method for details of the output. - - - Nicko Cadell - Gert Driesen - - - - Implement this interface in order to render objects as strings - - - - Certain types require special case conversion to - string form. This conversion is done by an object renderer. - Object renderers implement the - interface. - - - Nicko Cadell - Gert Driesen - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a - string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - - - - Default constructor - - - - Default constructor - - - - - - Render the object to a string - - The map used to lookup renderers - The object to render - The writer to render to - - - Render the object to a string. - - - The parameter is - provided to lookup and render other objects. This is - very useful where contains - nested objects of unknown type. The - method can be used to render these objects. - - - The default renderer supports rendering objects to strings as follows: - - - - Value - Rendered String - - - null - - "(null)" - - - - - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - , & - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. - - - For example: {a, b, c}. - - - All collection classes that implement its subclasses, - or generic equivalents all implement the interface. - - - - - - - - Rendered as the key, an equals sign ('='), and the value (using the appropriate - renderer). - - - For example: key=value. - - - - - other - - Object.ToString() - - - - - - - - Render the array argument into a string - - The map used to lookup renderers - the array to render - The writer to render to - - - For a one dimensional array this is the - array type name, an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - int[] {1, 2, 3}. - - - If the array is not one dimensional the - Array.ToString() is returned. - - - - - - Render the enumerator argument into a string - - The map used to lookup renderers - the enumerator to render - The writer to render to - - - Rendered as an open brace, followed by a comma - separated list of the elements (using the appropriate - renderer), followed by a close brace. For example: - {a, b, c}. - - - - - - Render the DictionaryEntry argument into a string - - The map used to lookup renderers - the DictionaryEntry to render - The writer to render to - - - Render the key, an equals sign ('='), and the value (using the appropriate - renderer). For example: key=value. - - - - - - Map class objects to an . - - - - Maintains a mapping between types that require special - rendering and the that - is used to render them. - - - The method is used to render an - object using the appropriate renderers defined in this map. - - - Nicko Cadell - Gert Driesen - - - - Default Constructor - - - - Default constructor. - - - - - - Render using the appropriate renderer. - - the object to render to a string - the object rendered as a string - - - This is a convenience method used to render an object to a string. - The alternative method - should be used when streaming output to a . - - - - - - Render using the appropriate renderer. - - the object to render to a string - The writer to render to - - - Find the appropriate renderer for the type of the - parameter. This is accomplished by calling the - method. Once a renderer is found, it is - applied on the object and the result is returned - as a . - - - - - - Gets the renderer for the specified object type - - the object to lookup the renderer for - the renderer for - - - Gets the renderer for the specified object type. - - - Syntactic sugar method that calls - with the type of the object parameter. - - - - - - Gets the renderer for the specified type - - the type to lookup the renderer for - the renderer for the specified type - - - Returns the renderer for the specified type. - If no specific renderer has been defined the - will be returned. - - - - - - Internal function to recursively search interfaces - - the type to lookup the renderer for - the renderer for the specified type - - - - Clear the map of renderers - - - - Clear the custom renderers defined by using - . The - cannot be removed. - - - - - - Register an for . - - the type that will be rendered by - the renderer for - - - Register an object renderer for a specific source type. - This renderer will be returned from a call to - specifying the same as an argument. - - - - - - Get the default renderer instance - - the default renderer - - - Get the default renderer - - - - - - Interface implemented by logger repository plugins. - - - - Plugins define additional behavior that can be associated - with a . - The held by the - property is used to store the plugins for a repository. - - - The log4net.Config.PluginAttribute can be used to - attach plugins to repositories created using configuration - attributes. - - - Nicko Cadell - Gert Driesen - - - - Attaches the plugin to the specified . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - Gets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - - - - A strongly-typed collection of objects. - - Nicko Cadell - - - - Creates a read-only wrapper for a PluginCollection instance. - - list to create a readonly wrapper arround - - A PluginCollection wrapper that is read-only. - - - - - Initializes a new instance of the PluginCollection class - that is empty and has the default initial capacity. - - - - - Initializes a new instance of the PluginCollection class - that has the specified initial capacity. - - - The number of elements that the new PluginCollection is initially capable of storing. - - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified PluginCollection. - - The PluginCollection whose elements are copied to the new collection. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified array. - - The array whose elements are copied to the new list. - - - - Initializes a new instance of the PluginCollection class - that contains elements copied from the specified collection. - - The collection whose elements are copied to the new list. - - - - Allow subclasses to avoid our default constructors - - - - - - - Copies the entire PluginCollection to a one-dimensional - array. - - The one-dimensional array to copy to. - - - - Copies the entire PluginCollection to a one-dimensional - array, starting at the specified index of the target array. - - The one-dimensional array to copy to. - The zero-based index in at which copying begins. - - - - Adds a to the end of the PluginCollection. - - The to be added to the end of the PluginCollection. - The index at which the value has been added. - - - - Removes all elements from the PluginCollection. - - - - - Creates a shallow copy of the . - - A new with a shallow copy of the collection data. - - - - Determines whether a given is in the PluginCollection. - - The to check for. - true if is found in the PluginCollection; otherwise, false. - - - - Returns the zero-based index of the first occurrence of a - in the PluginCollection. - - The to locate in the PluginCollection. - - The zero-based index of the first occurrence of - in the entire PluginCollection, if found; otherwise, -1. - - - - - Inserts an element into the PluginCollection at the specified index. - - The zero-based index at which should be inserted. - The to insert. - - is less than zero - -or- - is equal to or greater than . - - - - - Removes the first occurrence of a specific from the PluginCollection. - - The to remove from the PluginCollection. - - The specified was not found in the PluginCollection. - - - - - Removes the element at the specified index of the PluginCollection. - - The zero-based index of the element to remove. - - is less than zero. - -or- - is equal to or greater than . - - - - - Returns an enumerator that can iterate through the PluginCollection. - - An for the entire PluginCollection. - - - - Adds the elements of another PluginCollection to the current PluginCollection. - - The PluginCollection whose elements should be added to the end of the current PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a array to the current PluginCollection. - - The array whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Adds the elements of a collection to the current PluginCollection. - - The collection whose elements should be added to the end of the PluginCollection. - The new of the PluginCollection. - - - - Sets the capacity to the actual number of elements. - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets the number of elements actually contained in the PluginCollection. - - - - - Gets a value indicating whether access to the collection is synchronized (thread-safe). - - true if access to the ICollection is synchronized (thread-safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the collection. - - - An object that can be used to synchronize access to the collection. - - - - - Gets or sets the at the specified index. - - - The at the specified index. - - The zero-based index of the element to get or set. - - is less than zero. - -or- - is equal to or greater than . - - - - - Gets a value indicating whether the collection has a fixed size. - - true if the collection has a fixed size; otherwise, false. The default is false. - - - - Gets a value indicating whether the IList is read-only. - - true if the collection is read-only; otherwise, false. The default is false. - - - - Gets or sets the number of elements the PluginCollection can contain. - - - The number of elements the PluginCollection can contain. - - - - - Supports type-safe iteration over a . - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - - - Type visible only to our subclasses - Used to access protected constructor - - - - - - A value - - - - - Supports simple iteration over a . - - - - - - Initializes a new instance of the Enumerator class. - - - - - - Advances the enumerator to the next element in the collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, before the first element in the collection. - - - - - Gets the current element in the collection. - - - The current element in the collection. - - - - - - - - Map of repository plugins. - - - - This class is a name keyed map of the plugins that are - attached to a repository. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The repository that the plugins should be attached to. - - - Initialize a new instance of the class with a - repository that the plugins should be attached to. - - - - - - Adds a to the map. - - The to add to the map. - - - The will be attached to the repository when added. - - - If there already exists a plugin with the same name - attached to the repository then the old plugin will - be and replaced with - the new plugin. - - - - - - Removes a from the map. - - The to remove from the map. - - - Remove a specific plugin from this map. - - - - - - Gets a by name. - - The name of the to lookup. - - The from the map with the name specified, or - null if no plugin is found. - - - - Lookup a plugin by name. If the plugin is not found null - will be returned. - - - - - - Gets all possible plugins as a list of objects. - - All possible plugins as a list of objects. - - - Get a collection of all the plugins defined in this map. - - - - - - Base implementation of - - - - Default abstract implementation of the - interface. This base class can be used by implementors - of the interface. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - the name of the plugin - - Initializes a new Plugin with the specified name. - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - This method is called to notify the plugin that - it should stop operating and should detach from - the repository. - - - - - - The name of this plugin. - - - - - The repository this plugin is attached to. - - - - - Gets or sets the name of the plugin. - - - The name of the plugin. - - - - Plugins are stored in the - keyed by name. Each plugin instance attached to a - repository must be a unique name. - - - The name of the plugin must not change one the - plugin has been attached to a repository. - - - - - - The repository for this plugin - - - The that this plugin is attached to. - - - - Gets or sets the that this plugin is - attached to. - - - - - - Plugin that listens for events from the - - - - This plugin publishes an instance of - on a specified . This listens for logging events delivered from - a remote . - - - When an event is received it is relogged within the attached repository - as if it had been raised locally. - - - Nicko Cadell - Gert Driesen - - - - Default constructor - - - - Initializes a new instance of the class. - - - The property must be set. - - - - - - Construct with sink Uri. - - The name to publish the sink under in the remoting infrastructure. - See for more details. - - - Initializes a new instance of the class - with specified name. - - - - - - Attaches this plugin to a . - - The that this plugin should be attached to. - - - A plugin may only be attached to a single repository. - - - This method is called when the plugin is attached to the repository. - - - - - - Is called when the plugin is to shutdown. - - - - When the plugin is shutdown the remote logging - sink is disconnected. - - - - - - Gets or sets the URI of this sink. - - - The URI of this sink. - - - - This is the name under which the object is marshaled. - - - - - - - Delivers objects to a remote sink. - - - - Internal class used to listen for logging events - and deliver them to the local repository. - - - - - - Constructor - - The repository to log to. - - - Initializes a new instance of the for the - specified . - - - - - - Logs the events to the repository. - - The events to log. - - - The events passed are logged to the - - - - - - Obtains a lifetime service object to control the lifetime - policy for this instance. - - null to indicate that this instance should live forever. - - - Obtains a lifetime service object to control the lifetime - policy for this instance. This object should live forever - therefore this implementation returns null. - - - - - - The underlying that events should - be logged to. - - - - - Default implementation of - - - - This default implementation of the - interface is used to create the default subclass - of the object. - - - Nicko Cadell - Gert Driesen - - - - Interface abstracts creation of instances - - - - This interface is used by the to - create new objects. - - - The method is called - to create a named . - - - Implement this interface to create new subclasses of . - - - Nicko Cadell - Gert Driesen - - - - Create a new instance - - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Create a new instance - - The name of the . - The instance for the specified name. - - - Create a new instance with the - specified name. - - - Called by the to create - new named instances. - - - If the is null then the root logger - must be returned. - - - - - - Default internal subclass of - - - - This subclass has no additional behavior over the - class but does allow instances - to be created. - - - - - - Implementation of used by - - - - Internal class used to provide implementation of - interface. Applications should use to get - logger instances. - - - This is one of the central classes in the log4net implementation. One of the - distinctive features of log4net are hierarchical loggers and their - evaluation. The organizes the - instances into a rooted tree hierarchy. - - - The class is abstract. Only concrete subclasses of - can be created. The - is used to create instances of this type for the . - - - Nicko Cadell - Gert Driesen - Aspi Havewala - Douglas de la Torre - - - - This constructor created a new instance and - sets its name. - - The name of the . - - - This constructor is protected and designed to be used by - a subclass that is not abstract. - - - Loggers are constructed by - objects. See for the default - logger creator. - - - - - - Add to the list of appenders of this - Logger instance. - - An appender to add to this logger - - - Add to the list of appenders of this - Logger instance. - - - If is already in the list of - appenders, then it won't be added again. - - - - - - Look for the appender named as name - - The name of the appender to lookup - The appender with the name specified, or null. - - - Returns the named appender, or null if the appender is not found. - - - - - - Remove all previously added appenders from this Logger instance. - - - - Remove all previously added appenders from this Logger instance. - - - This is useful when re-reading configuration information. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The appender to remove - The appender removed from the list - - - Remove the appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Remove the appender passed as parameter form the list of appenders. - - The name of the appender to remove - The appender removed from the list - - - Remove the named appender passed as parameter form the list of appenders. - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - This generic form is intended to be used by wrappers. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the and . - - - This method must not throw any exception to the caller. - - - - - - This is the most generic printing method that is intended to be used - by wrappers. - - The event being logged. - - - Logs the specified logging event through this logger. - - - This method must not throw any exception to the caller. - - - - - - Checks if this logger is enabled for a given passed as parameter. - - The level to check. - - true if this logger is enabled for level, otherwise false. - - - - Test if this logger is going to log events of the specified . - - - This method must not throw any exception to the caller. - - - - - - Deliver the to the attached appenders. - - The event to log. - - - Call the appenders in the hierarchy starting at - this. If no appenders could be found, emit a - warning. - - - This method calls all the appenders inherited from the - hierarchy circumventing any evaluation of whether to log or not - to log the particular log request. - - - - - - Closes all attached appenders implementing the interface. - - - - Used to ensure that the appenders are correctly shutdown. - - - - - - This is the most generic printing method. This generic form is intended to be used by wrappers - - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generate a logging event for the specified using - the . - - - - - - Creates a new logging event and logs the event without further checks. - - The declaring type of the method that is - the stack boundary into the logging system for this call. - The level of the message to be logged. - The message object to log. - The exception to log, including its stack trace. - - - Generates a logging event and delivers it to the attached - appenders. - - - - - - Creates a new logging event and logs the event without further checks. - - The event being logged. - - - Delivers the logging event to the attached appenders. - - - - - - The fully qualified type of the Logger class. - - - - - The name of this logger. - - - - - The assigned level of this logger. - - - - The level variable need not be - assigned a value in which case it is inherited - form the hierarchy. - - - - - - The parent of this logger. - - - - The parent of this logger. - All loggers have at least one ancestor which is the root logger. - - - - - - Loggers need to know what Hierarchy they are in. - - - - Loggers need to know what Hierarchy they are in. - The hierarchy that this logger is a member of is stored - here. - - - - - - Helper implementation of the interface - - - - - Flag indicating if child loggers inherit their parents appenders - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl - - - - - Gets or sets the parent logger in the hierarchy. - - - The parent logger in the hierarchy. - - - - Part of the Composite pattern that makes the hierarchy. - The hierarchy is parent linked rather than child linked. - - - - - - Gets or sets a value indicating if child loggers inherit their parent's appenders. - - - true if child loggers inherit their parent's appenders. - - - - Additivity is set to true by default, that is children inherit - the appenders of their ancestors by default. If this variable is - set to false then the appenders found in the - ancestors of this logger are not used. However, the children - of this logger will inherit its appenders, unless the children - have their additivity flag set to false too. See - the user manual for more details. - - - - - - Gets the effective level for this logger. - - The nearest level in the logger hierarchy. - - - Starting from this logger, searches the logger hierarchy for a - non-null level and returns it. Otherwise, returns the level of the - root logger. - - The Logger class is designed so that this method executes as - quickly as possible. - - - - - Gets or sets the where this - Logger instance is attached to. - - The hierarchy that this logger belongs to. - - - This logger must be attached to a single . - - - - - - Gets or sets the assigned , if any, for this Logger. - - - The of this logger. - - - - The assigned can be null. - - - - - - Get the appenders contained in this logger as an - . - - A collection of the appenders in this logger - - - Get the appenders contained in this logger as an - . If no appenders - can be found, then a is returned. - - - - - - Gets the logger name. - - - The name of the logger. - - - - The name of this logger - - - - - - Gets the where this - Logger instance is attached to. - - - The that this logger belongs to. - - - - Gets the where this - Logger instance is attached to. - - - - - - Construct a new Logger - - the name of the logger - - - Initializes a new instance of the class - with the specified name. - - - - - - Delegate used to handle logger creation event notifications. - - The in which the has been created. - The event args that hold the instance that has been created. - - - Delegate used to handle logger creation event notifications. - - - - - - Provides data for the event. - - - - A event is raised every time a - is created. - - - - - - The created - - - - - Constructor - - The that has been created. - - - Initializes a new instance of the event argument - class,with the specified . - - - - - - Gets the that has been created. - - - The that has been created. - - - - The that has been created. - - - - - - Hierarchical organization of loggers - - - - The casual user should not have to deal with this class - directly. - - - This class is specialized in retrieving loggers by name and - also maintaining the logger hierarchy. Implements the - interface. - - - The structure of the logger hierarchy is maintained by the - method. The hierarchy is such that children - link to their parent but parents do not have any references to their - children. Moreover, loggers can be instantiated in any order, in - particular descendant before ancestor. - - - In case a descendant is created before a particular ancestor, - then it creates a provision node for the ancestor and adds itself - to the provision node. Other descendants of the same ancestor add - themselves to the previously created provision node. - - - Nicko Cadell - Gert Driesen - - - - Base implementation of - - - - Default abstract implementation of the interface. - - - Skeleton implementation of the interface. - All types can extend this type. - - - Nicko Cadell - Gert Driesen - - - - Interface implemented by logger repositories. - - - - This interface is implemented by logger repositories. e.g. - . - - - This interface is used by the - to obtain interfaces. - - - Nicko Cadell - Gert Driesen - - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - The name of the logger to lookup - The Logger object with the name specified - - - If the names logger exists it is returned, otherwise - null is returned. - - - - - - Returns all the currently defined loggers as an Array. - - All the defined loggers - - - Returns all the currently defined loggers as an Array. - - - - - - Returns a named logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Returns a named logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - Shutdown the repository - - - Shutting down a repository will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - The name of the repository - - - The name of the repository - - - - The name of the repository. - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - - These properties can be specified on a repository specific basis. - - - - - - Default Constructor - - - - Initializes the repository with default (empty) properties. - - - - - - Construct the repository using specific properties - - the properties to set for this repository - - - Initializes the repository with specified properties. - - - - - - Test if logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the repository. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the repository - - All the defined loggers - - - Returns all the currently defined loggers in the repository as an Array. - - - - - - Return a new logger instance - - The name of the logger to retrieve - The logger object with the name specified - - - Return a new logger instance. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - - - - Shutdown the repository - - - - Shutdown the repository. Can be overridden in a subclass. - This base class implementation notifies the - listeners and all attached plugins of the shutdown event. - - - - - - Reset the repositories configuration to a default state - - - - Reset all values contained in this instance to their - default state. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this repository. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are configured as an Array. - - All the Appenders - - - Returns all the Appenders that are configured as an Array. - - - - - - Adds an object renderer for a specific class. - - The type that will be rendered by the renderer supplied. - The object renderer used to render the object. - - - Adds an object renderer for a specific class. - - - - - - Notify the registered listeners that the repository is shutting down - - Empty EventArgs - - - Notify any listeners that this repository is shutting down. - - - - - - Notify the registered listeners that the repository has had its configuration reset - - Empty EventArgs - - - Notify any listeners that this repository's configuration has been reset. - - - - - - Notify the registered listeners that the repository has had its configuration changed - - Empty EventArgs - - - Notify any listeners that this repository's configuration has changed. - - - - - - Raise a configuration changed event on this repository - - EventArgs.Empty - - - Applications that programmatically change the configuration of the repository should - raise this event notification to notify listeners. - - - - - - The name of the repository - - - The string name of the repository - - - - The name of this repository. The name is - used to store and lookup the repositories - stored by the . - - - - - - The threshold for all events in this repository - - - The threshold for all events in this repository - - - - The threshold for all events in this repository - - - - - - RendererMap accesses the object renderer map for this repository. - - - RendererMap accesses the object renderer map for this repository. - - - - RendererMap accesses the object renderer map for this repository. - - - The RendererMap holds a mapping between types and - objects. - - - - - - The plugin map for this repository. - - - The plugin map for this repository. - - - - The plugin map holds the instances - that have been attached to this repository. - - - - - - Get the level map for the Repository. - - - - Get the level map for the Repository. - - - The level map defines the mappings between - level names and objects in - this repository. - - - - - - Flag indicates if this repository has been configured. - - - Flag indicates if this repository has been configured. - - - - Flag indicates if this repository has been configured. - - - - - - Event to notify that the repository has been shutdown. - - - Event to notify that the repository has been shutdown. - - - - Event raised when the repository has been shutdown. - - - - - - Event to notify that the repository has had its configuration reset. - - - Event to notify that the repository has had its configuration reset. - - - - Event raised when the repository's configuration has been - reset to default. - - - - - - Event to notify that the repository has had its configuration changed. - - - Event to notify that the repository has had its configuration changed. - - - - Event raised when the repository's configuration has been changed. - - - - - - Repository specific properties - - - Repository specific properties - - - These properties can be specified on a repository specific basis - - - - - Basic Configurator interface for repositories - - - - Interface used by basic configurator to configure a - with a default . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified appender - - the appender to use to log all logging events - - - Configure the repository to route all logging events to the - specified appender. - - - - - - Configure repository using XML - - - - Interface used by Xml configurator to configure a . - - - A should implement this interface to support - configuration by the . - - - Nicko Cadell - Gert Driesen - - - - Initialize the repository using the specified config - - the element containing the root of the config - - - The schema for the XML configuration data is defined by - the implementation. - - - - - - Default constructor - - - - Initializes a new instance of the class. - - - - - - Construct with properties - - The properties to pass to this repository. - - - Initializes a new instance of the class. - - - - - - Construct with a logger factory - - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Construct with properties and a logger factory - - The properties to pass to this repository. - The factory to use to create new logger instances. - - - Initializes a new instance of the class with - the specified . - - - - - - Test if a logger exists - - The name of the logger to lookup - The Logger object with the name specified - - - Check if the named logger exists in the hierarchy. If so return - its reference, otherwise returns null. - - - - - - Returns all the currently defined loggers in the hierarchy as an Array - - All the defined loggers - - - Returns all the currently defined loggers in the hierarchy as an Array. - The root logger is not included in the returned - enumeration. - - - - - - Return a new logger instance named as the first parameter using - the default factory. - - - - Return a new logger instance named as the first parameter using - the default factory. - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - - The name of the logger to retrieve - The logger object with the name specified - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - - Shutting down a hierarchy will safely close and remove - all appenders in all loggers including the root logger. - - - Some appenders need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - - The Shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Reset all values contained in this hierarchy instance to their default. - - - - Reset all values contained in this hierarchy instance to their - default. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set its default "off" value. - - - Existing loggers are not removed. They are just reset. - - - This method should be used sparingly and with care as it will - block all logging until it is completed. - - - - - - Log the logEvent through this hierarchy. - - the event to log - - - This method should not normally be used to log. - The interface should be used - for routine logging. This interface can be obtained - using the method. - - - The logEvent is delivered to the appropriate logger and - that logger is then responsible for logging the event. - - - - - - Returns all the Appenders that are currently configured - - An array containing all the currently configured appenders - - - Returns all the instances that are currently configured. - All the loggers are searched for appenders. The appenders may also be containers - for appenders and these are also searched for additional loggers. - - - The list returned is unordered but does not contain duplicates. - - - - - - Collect the appenders from an . - The appender may also be a container. - - - - - - - Collect the appenders from an container - - - - - - - Initialize the log4net system using the specified appender - - the appender to use to log all logging events - - - - Initialize the log4net system using the specified appender - - the appender to use to log all logging events - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - - Initialize the log4net system using the specified config - - the element containing the root of the config - - - This method provides the same functionality as the - method implemented - on this object, but it is protected and therefore can be called by subclasses. - - - - - - Test if this hierarchy is disabled for the specified . - - The level to check against. - - true if the repository is disabled for the level argument, false otherwise. - - - - If this hierarchy has not been configured then this method will - always return true. - - - This method will return true if this repository is - disabled for level object passed as parameter and - false otherwise. - - - See also the property. - - - - - - Clear all logger definitions from the internal hashtable - - - - This call will clear all logger definitions from the internal - hashtable. Invoking this method will irrevocably mess up the - logger hierarchy. - - - You should really know what you are doing before - invoking this method. - - - - - - Return a new logger instance named as the first parameter using - . - - The name of the logger to retrieve - The factory that will make the new logger instance - The logger object with the name specified - - - If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated by the - parameter and linked with its existing - ancestors as well as children. - - - - - - Sends a logger creation event to all registered listeners - - The newly created logger - - Raises the logger creation event. - - - - - Updates all the parents of the specified logger - - The logger to update the parents for - - - This method loops through all the potential parents of - . There 3 possible cases: - - - - No entry for the potential parent of exists - - We create a ProvisionNode for this potential - parent and insert in that provision node. - - - - The entry is of type Logger for the potential parent. - - The entry is 's nearest existing parent. We - update 's parent field with this entry. We also break from - he loop because updating our parent's parent is our parent's - responsibility. - - - - The entry is of type ProvisionNode for this potential parent. - - We add to the list of children for this - potential parent. - - - - - - - - Replace a with a in the hierarchy. - - - - - - We update the links for all the children that placed themselves - in the provision node 'pn'. The second argument 'log' is a - reference for the newly created Logger, parent of all the - children in 'pn'. - - - We loop on all the children 'c' in 'pn'. - - - If the child 'c' has been already linked to a child of - 'log' then there is no need to update 'c'. - - - Otherwise, we set log's parent field to c's parent and set - c's parent field to log. - - - - - - Define or redefine a Level using the values in the argument - - the level values - - - Define or redefine a Level using the values in the argument - - - Supports setting levels via the configuration file. - - - - - - Set a Property using the values in the argument - - the property value - - - Set a Property using the values in the argument. - - - Supports setting property values via the configuration file. - - - - - - Event used to notify that a logger has been created. - - - - Event raised when a logger is created. - - - - - - Has no appender warning been emitted - - - - Flag to indicate if we have already issued a warning - about not having an appender warning. - - - - - - Get the root of this hierarchy - - - - Get the root of this hierarchy. - - - - - - Gets or sets the default instance. - - The default - - - The logger factory is used to create logger instances. - - - - - - A class to hold the value, name and display name for a level - - - - A class to hold the value, name and display name for a level - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Value of the level - - - - If the value is not set (defaults to -1) the value will be looked - up for the current level with the same name. - - - - - - Name of the level - - - The name of the level - - - - The name of the level. - - - - - - Display name for the level - - - The display name of the level - - - - The display name of the level. - - - - - - A class to hold the key and data for a property set in the config file - - - - A class to hold the key and data for a property set in the config file - - - - - - Override Object.ToString to return sensible debug info - - string info about this object - - - - Property Key - - - Property Key - - - - Property Key. - - - - - - Property Value - - - Property Value - - - - Property Value. - - - - - - Used internally to accelerate hash table searches. - - - - Internal class used to improve performance of - string keyed hashtables. - - - The hashcode of the string is cached for reuse. - The string is stored as an interned value. - When comparing two objects for equality - the reference equality of the interned strings is compared. - - - Nicko Cadell - Gert Driesen - - - - Construct key with string name - - - - Initializes a new instance of the class - with the specified name. - - - Stores the hashcode of the string and interns - the string key to optimize comparisons. - - - The Compact Framework 1.0 the - method does not work. On the Compact Framework - the string keys are not interned nor are they - compared by reference. - - - The name of the logger. - - - - Returns a hash code for the current instance. - - A hash code for the current instance. - - - Returns the cached hashcode. - - - - - - Determines whether two instances - are equal. - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - - Compares the references of the interned strings. - - - - - - Provision nodes are used where no logger instance has been specified - - - - instances are used in the - when there is no specified - for that node. - - - A provision node holds a list of child loggers on behalf of - a logger that does not exist. - - - Nicko Cadell - Gert Driesen - - - - Create a new provision node with child node - - A child logger to add to this node. - - - Initializes a new instance of the class - with the specified child logger. - - - - - - The sits at the root of the logger hierarchy tree. - - - - The is a regular except - that it provides several guarantees. - - - First, it cannot be assigned a null - level. Second, since the root logger cannot have a parent, the - property always returns the value of the - level field without walking the hierarchy. - - - Nicko Cadell - Gert Driesen - - - - Construct a - - The level to assign to the root logger. - - - Initializes a new instance of the class with - the specified logging level. - - - The root logger names itself as "root". However, the root - logger cannot be retrieved by name. - - - - - - Gets the assigned level value without walking the logger hierarchy. - - The assigned level value without walking the logger hierarchy. - - - Because the root logger cannot have a parent and its level - must not be null this property just returns the - value of . - - - - - - Gets or sets the assigned for the root logger. - - - The of the root logger. - - - - Setting the level of the root logger to a null reference - may have catastrophic results. We prevent this here. - - - - - - Initializes the log4net environment using an XML DOM. - - - - Configures a using an XML DOM. - - - Nicko Cadell - Gert Driesen - - - - Construct the configurator for a hierarchy - - The hierarchy to build. - - - Initializes a new instance of the class - with the specified . - - - - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - The root element to parse. - - - Configure the hierarchy by parsing a DOM tree of XML elements. - - - - - - Parse appenders by IDREF. - - The appender ref element. - The instance of the appender that the ref refers to. - - - Parse an XML element that represents an appender and return - the appender. - - - - - - Parses an appender element. - - The appender element. - The appender instance or null when parsing failed. - - - Parse an XML element that represents an appender and return - the appender instance. - - - - - - Parses a logger element. - - The logger element. - - - Parse an XML element that represents a logger. - - - - - - Parses the root logger element. - - The root element. - - - Parse an XML element that represents the root logger. - - - - - - Parses the children of a logger element. - - The category element. - The logger instance. - Flag to indicate if the logger is the root logger. - - - Parse the child elements of a <logger> element. - - - - - - Parses an object renderer. - - The renderer element. - - - Parse an XML element that represents a renderer. - - - - - - Parses a level element. - - The level element. - The logger object to set the level on. - Flag to indicate if the logger is the root logger. - - - Parse an XML element that represents a level. - - - - - - Sets a parameter on an object. - - The parameter element. - The object to set the parameter on. - - The parameter name must correspond to a writable property - on the object. The value of the parameter is a string, - therefore this function will attempt to set a string - property first. If unable to set a string property it - will inspect the property and its argument type. It will - attempt to call a static method called Parse on the - type of the property. This method will take a single - string argument and return a value that can be used to - set the property. - - - - - Test if an element has no attributes or child elements - - the element to inspect - true if the element has any attributes or child elements, false otherwise - - - - Test if a is constructible with Activator.CreateInstance. - - the type to inspect - true if the type is creatable using a default constructor, false otherwise - - - - Look for a method on the that matches the supplied - - the type that has the method - the name of the method - the method info found - - - The method must be a public instance method on the . - The method must be named or "Add" followed by . - The method must take a single parameter. - - - - - - Converts a string value to a target type. - - The type of object to convert the string to. - The string value to use as the value of the object. - - - An object of type with value or - null when the conversion could not be performed. - - - - - - Creates an object as specified in XML. - - The XML element that contains the definition of the object. - The object type to use if not explicitly specified. - The type that the returned object must be or must inherit from. - The object or null - - - Parse an XML element and create an object instance based on the configuration - data. - - - The type of the instance may be specified in the XML. If not - specified then the is used - as the type. However the type is specified it must support the - type. - - - - - - key: appenderName, value: appender. - - - - - The Hierarchy being configured. - - - - - Delegate used to handle logger repository shutdown event notifications - - The that is shutting down. - Empty event args - - - Delegate used to handle logger repository shutdown event notifications. - - - - - - Delegate used to handle logger repository configuration reset event notifications - - The that has had its configuration reset. - Empty event args - - - Delegate used to handle logger repository configuration reset event notifications. - - - - - - Delegate used to handle event notifications for logger repository configuration changes. - - The that has had its configuration changed. - Empty event arguments. - - - Delegate used to handle event notifications for logger repository configuration changes. - - - - - - Write the name of the current AppDomain to the output - - - - Write the name of the current AppDomain to the output writer - - - Nicko Cadell - - - - Write the name of the current AppDomain to the output - - the writer to write to - null, state is not set - - - Writes name of the current AppDomain to the output . - - - - - - Write the current date to the output - - - - Date pattern converter, uses a to format - the current date and time to the writer as a string. - - - The value of the determines - the formatting of the date. The following values are allowed: - - - Option value - Output - - - ISO8601 - - Uses the formatter. - Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. - - - - DATE - - Uses the formatter. - Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". - - - - ABSOLUTE - - Uses the formatter. - Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". - - - - other - - Any other pattern string uses the formatter. - This formatter passes the pattern string to the - method. - For details on valid patterns see - DateTimeFormatInfo Class. - - - - - - The date and time is in the local time zone and is rendered in that zone. - To output the time in Universal time see . - - - Nicko Cadell - - - - The used to render the date to a string - - - - The used to render the date to a string - - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current date to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date and time passed is in the local time zone. - - - - - - Write an environment variable to the output - - - - Write an environment variable to the output writer. - The value of the determines - the name of the variable to output. - - - Nicko Cadell - - - - Write an environment variable to the output - - the writer to write to - null, state is not set - - - Writes the environment variable to the output . - The name of the environment variable to output must be set - using the - property. - - - - - - Write the current thread identity to the output - - - - Write the current thread identity to the output writer - - - Nicko Cadell - - - - Write the current thread identity to the output - - the writer to write to - null, state is not set - - - Writes the current thread identity to the output . - - - - - - Pattern converter for literal string instances in the pattern - - - - Writes the literal string value specified in the - property to - the output. - - - Nicko Cadell - - - - Set the next converter in the chain - - The next pattern converter in the chain - The next pattern converter - - - Special case the building of the pattern converter chain - for instances. Two adjacent - literals in the pattern can be represented by a single combined - pattern converter. This implementation detects when a - is added to the chain - after this converter and combines its value with this converter's - literal value. - - - - - - Write the literal to the output - - the writer to write to - null, not set - - - Override the formatting behavior to ignore the FormattingInfo - because we have a literal instead. - - - Writes the value of - to the output . - - - - - - Convert this pattern into the rendered message - - that will receive the formatted result. - null, not set - - - This method is not used. - - - - - - Writes a newline to the output - - - - Writes the system dependent line terminator to the output. - This behavior can be overridden by setting the : - - - - Option Value - Output - - - DOS - DOS or Windows line terminator "\r\n" - - - UNIX - UNIX line terminator "\n" - - - - Nicko Cadell - - - - Initialize the converter - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write the current process ID to the output - - - - Write the current process ID to the output writer - - - Nicko Cadell - - - - Write the current process ID to the output - - the writer to write to - null, state is not set - - - Write the current process ID to the output . - - - - - - Property pattern converter - - - - This pattern converter reads the thread and global properties. - The thread properties take priority over global properties. - See for details of the - thread properties. See for - details of the global properties. - - - If the is specified then that will be used to - lookup a single property. If no is specified - then all properties will be dumped as a list of key value pairs. - - - Nicko Cadell - - - - Write the property value to the output - - that will receive the formatted result. - null, state is not set - - - Writes out the value of a named property. The property name - should be set in the - property. - - - If the is set to null - then all the properties are written as key value pairs. - - - - - - A Pattern converter that generates a string of random characters - - - - The converter generates a string of random characters. By default - the string is length 4. This can be changed by setting the - to the string value of the length required. - - - The random characters in the string are limited to uppercase letters - and numbers only. - - - The random number generator used by this class is not cryptographically secure. - - - Nicko Cadell - - - - Shared random number generator - - - - - Length of random string to generate. Default length 4. - - - - - Initialize the converter options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Write a randoim string to the output - - the writer to write to - null, state is not set - - - Write a randoim string to the output . - - - - - - Write the current threads username to the output - - - - Write the current threads username to the output writer - - - Nicko Cadell - - - - Write the current threads username to the output - - the writer to write to - null, state is not set - - - Write the current threads username to the output . - - - - - - Write the UTC date time to the output - - - - Date pattern converter, uses a to format - the current date and time in Universal time. - - - See the for details on the date pattern syntax. - - - - Nicko Cadell - - - - Write the current date and time to the output - - that will receive the formatted result. - null, state is not set - - - Pass the current date and time to the - for it to render it to the writer. - - - The date is in Universal time when it is rendered. - - - - - - - Type converter for Boolean. - - - - Supports conversion from string to bool type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Convert the source object to the type supported by this object - - the object to convert - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Exception base type for conversion errors. - - - - This type extends . It - does not add any new functionality but does differentiate the - type of exception being thrown. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - A message to include with the exception. - - - Initializes a new instance of the class - with the specified message. - - - - - - Constructor - - A message to include with the exception. - A nested exception to include. - - - Initializes a new instance of the class - with the specified message and inner exception. - - - - - - Serialization constructor - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - An instance of the . - - - Creates a new instance of the class. - - - - - - Creates a new instance of the class. - - The conversion destination type. - The value to convert. - A nested exception to include. - An instance of the . - - - Creates a new instance of the class. - - - - - - Register of type converters for specific types. - - - - Maintains a registry of type converters used to convert between - types. - - - Use the and - methods to register new converters. - The and methods - lookup appropriate converters to use. - - - - - Nicko Cadell - Gert Driesen - - - - Private constructor - - - Initializes a new instance of the class. - - - - - Static constructor. - - - - This constructor defines the intrinsic type converters. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type converter to use to convert to the destination type. - - - Adds a converter instance for a specific type. - - - - - - Adds a converter for a specific type. - - The type being converted to. - The type of the type converter to use to convert to the destination type. - - - Adds a converter for a specific type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted from. - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Gets the type converter to use to convert values to the destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - Gets the type converter to use to convert values to the destination type. - - - - - - Lookups the type converter to use as specified by the attributes on the - destination type. - - The type being converted to. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - - Creates the instance of the type converter. - - The type of the type converter. - - The type converter instance to use for type conversions or null - if no type converter is found. - - - - The type specified for the type converter must implement - the or interfaces - and must have a public default (no argument) constructor. - - - - - - Mapping from to type converter. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - Gert Driesen - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an encoding - the encoding - - - Uses the method to - convert the argument to an . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Interface supported by type converters - - - - This interface supports conversion from a single type to arbitrary types. - See . - - - Nicko Cadell - - - - Returns whether this converter can convert the object to the specified type - - A Type that represents the type you want to convert to - true if the conversion is possible - - - Test if the type supported by this converter can be converted to the - . - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Converts the (which must be of the type supported - by this converter) to the specified.. - - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to an IPAddress - the IPAddress - - - Uses the method to convert the - argument to an . - If that fails then the string is resolved as a DNS hostname. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternLayout - the PatternLayout - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Convert between string and - - - - Supports conversion from string to type, - and from a type to a string. - - - The string is used as the - of the . - - - - - - Nicko Cadell - - - - Can the target type be converted to the type supported by this object - - A that represents the type you want to convert to - true if the conversion is possible - - - Returns true if the is - assignable from a type. - - - - - - Converts the given value object to the specified type, using the arguments - - the object to convert - The Type to convert the value parameter to - the converted object - - - Uses the method to convert the - argument to a . - - - - The object cannot be converted to the - . To check for this condition use the - method. - - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a PatternString - the PatternString - - - Creates and returns a new using - the as the - . - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Supports conversion from string to type. - - - - Supports conversion from string to type. - - - - - - Nicko Cadell - - - - Can the source type be converted to the type supported by this object - - the type to convert - true if the conversion is possible - - - Returns true if the is - the type. - - - - - - Overrides the ConvertFrom method of IConvertFrom. - - the object to convert to a Type - the Type - - - Uses the method to convert the - argument to a . - Additional effort is made to locate partially specified types - by searching the loaded assemblies. - - - - The object cannot be converted to the - target type. To check for this condition use the - method. - - - - - Attribute used to associate a type converter - - - - Class and Interface level attribute that specifies a type converter - to use with the associated type. - - - To associate a type converter with a target type apply a - TypeConverterAttribute to the target type. Specify the - type of the type converter on the attribute. - - - Nicko Cadell - Gert Driesen - - - - The string type name of the type converter - - - - - Default constructor - - - - Default constructor - - - - - - Create a new type converter attribute for the specified type name - - The string type name of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - Create a new type converter attribute for the specified type - - The type of the type converter - - - The type specified must implement the - or the interfaces. - - - - - - The string type name of the type converter - - - The string type name of the type converter - - - - The type specified must implement the - or the interfaces. - - - - - - A straightforward implementation of the interface. - - - - This is the default implementation of the - interface. Implementors of the interface - should aggregate an instance of this type. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Append on on all attached appenders. - - The event being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Append on on all attached appenders. - - The array of events being logged. - The number of appenders called. - - - Calls the method on all - attached appenders. - - - - - - Calls the DoAppende method on the with - the objects supplied. - - The appender - The events - - - If the supports the - interface then the will be passed - through using that interface. Otherwise the - objects in the array will be passed one at a time. - - - - - - Attaches an appender. - - The appender to add. - - - If the appender is already in the list it won't be added again. - - - - - - Gets an attached appender with the specified name. - - The name of the appender to get. - - The appender with the name specified, or null if no appender with the - specified name is found. - - - - Lookup an attached appender by name. - - - - - - Removes all attached appenders. - - - - Removes and closes all attached appenders - - - - - - Removes the specified appender from the list of attached appenders. - - The appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - Removes the appender with the specified name from the list of appenders. - - The name of the appender to remove. - The appender removed from the list - - - The appender removed is not closed. - If you are discarding the appender you must call - on the appender removed. - - - - - - List of appenders - - - - - Array of appenders, used to cache the m_appenderList - - - - - Gets all attached appenders. - - - A collection of attached appenders, or null if there - are no attached appenders. - - - - The read only collection of all currently attached appenders. - - - - - - This class aggregates several PropertiesDictionary collections together. - - - - Provides a dictionary style lookup over an ordered list of - collections. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Add a Properties Dictionary to this composite collection - - the properties to add - - - Properties dictionaries added first take precedence over dictionaries added - later. - - - - - - Flatten this composite collection into a single properties dictionary - - the flattened dictionary - - - Reduces the collection of ordered dictionaries to a single dictionary - containing the resultant values for the keys. - - - - - - Gets the value of a property - - - The value for the property with the specified key - - - - Looks up the value for the specified. - The collections are searched - in the order in which they were added to this collection. The value - returned is the value held by the first collection that contains - the specified key. - - - If none of the collections contain the specified key then - null is returned. - - - - - - Base class for Context Properties implementations - - - - This class defines a basic property get set accessor - - - Nicko Cadell - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Subclass of that maintains a count of - the number of bytes written. - - - - This writer counts the number of bytes written. - - - Nicko Cadell - Gert Driesen - - - - that does not leak exceptions - - - - does not throw exceptions when things go wrong. - Instead, it delegates error handling to its . - - - Nicko Cadell - Gert Driesen - - - - Adapter that extends and forwards all - messages to an instance of . - - - - Adapter that extends and forwards all - messages to an instance of . - - - Nicko Cadell - - - - The writer to forward messages to - - - - - Create an instance of that forwards all - messages to a . - - The to forward to - - - Create an instance of that forwards all - messages to a . - - - - - - Closes the writer and releases any system resources associated with the writer - - - - - - - - - Dispose this writer - - flag indicating if we are being disposed - - - Dispose this writer - - - - - - Flushes any buffered output - - - - Clears all buffers for the writer and causes any buffered data to be written - to the underlying device - - - - - - Writes a character to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a character to the wrapped TextWriter - - - - - - Writes a character buffer to the wrapped TextWriter - - the data buffer - the start index - the number of characters to write - - - Writes a character buffer to the wrapped TextWriter - - - - - - Writes a string to the wrapped TextWriter - - the value to write to the TextWriter - - - Writes a string to the wrapped TextWriter - - - - - - Gets or sets the underlying . - - - The underlying . - - - - Gets or sets the underlying . - - - - - - The Encoding in which the output is written - - - The - - - - The Encoding in which the output is written - - - - - - Gets an object that controls formatting - - - The format provider - - - - Gets an object that controls formatting - - - - - - Gets or sets the line terminator string used by the TextWriter - - - The line terminator to use - - - - Gets or sets the line terminator string used by the TextWriter - - - - - - Constructor - - the writer to actually write to - the error handler to report error to - - - Create a new QuietTextWriter using a writer and error handler - - - - - - Writes a character to the underlying writer - - the char to write - - - Writes a character to the underlying writer - - - - - - Writes a buffer to the underlying writer - - the buffer to write - the start index to write from - the number of characters to write - - - Writes a buffer to the underlying writer - - - - - - Writes a string to the output. - - The string data to write to the output. - - - Writes a string to the output. - - - - - - Closes the underlying output writer. - - - - Closes the underlying output writer. - - - - - - The error handler instance to pass all errors to - - - - - Flag to indicate if this writer is closed - - - - - Gets or sets the error handler that all errors are passed to. - - - The error handler that all errors are passed to. - - - - Gets or sets the error handler that all errors are passed to. - - - - - - Gets a value indicating whether this writer is closed. - - - true if this writer is closed, otherwise false. - - - - Gets a value indicating whether this writer is closed. - - - - - - Constructor - - The to actually write to. - The to report errors to. - - - Creates a new instance of the class - with the specified and . - - - - - - Writes a character to the underlying writer and counts the number of bytes written. - - the char to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a buffer to the underlying writer and counts the number of bytes written. - - the buffer to write - the start index to write from - the number of characters to write - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Writes a string to the output and counts the number of bytes written. - - The string data to write to the output. - - - Overrides implementation of . Counts - the number of bytes written. - - - - - - Total number of bytes written. - - - - - Gets or sets the total number of bytes written. - - - The total number of bytes written. - - - - Gets or sets the total number of bytes written. - - - - - - A fixed size rolling buffer of logging events. - - - - An array backed fixed size leaky bucket. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The maximum number of logging events in the buffer. - - - Initializes a new instance of the class with - the specified maximum number of buffered logging events. - - - The argument is not a positive integer. - - - - Appends a to the buffer. - - The event to append to the buffer. - The event discarded from the buffer, if the buffer is full, otherwise null. - - - Append an event to the buffer. If the buffer still contains free space then - null is returned. If the buffer is full then an event will be dropped - to make space for the new event, the event dropped is returned. - - - - - - Get and remove the oldest event in the buffer. - - The oldest logging event in the buffer - - - Gets the oldest (first) logging event in the buffer and removes it - from the buffer. - - - - - - Pops all the logging events from the buffer into an array. - - An array of all the logging events in the buffer. - - - Get all the events in the buffer and clear the buffer. - - - - - - Clear the buffer - - - - Clear the buffer of all events. The events in the buffer are lost. - - - - - - Gets the th oldest event currently in the buffer. - - The th oldest event currently in the buffer. - - - If is outside the range 0 to the number of events - currently in the buffer, then null is returned. - - - - - - Gets the maximum size of the buffer. - - The maximum size of the buffer. - - - Gets the maximum size of the buffer - - - - - - Gets the number of logging events in the buffer. - - The number of logging events in the buffer. - - - This number is guaranteed to be in the range 0 to - (inclusive). - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - The singleton instance of the empty collection. - - - - - Gets the singleton instance of the empty collection. - - The singleton instance of the empty collection. - - - Gets the singleton instance of the empty collection. - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - An always empty . - - - - A singleton implementation of the - interface that always represents an empty collection. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Copies the elements of the to an - , starting at a particular Array index. - - The one-dimensional - that is the destination of the elements copied from - . The Array must have zero-based - indexing. - The zero-based index in array at which - copying begins. - - - As the collection is empty no values are copied into the array. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Adds an element with the provided key and value to the - . - - The to use as the key of the element to add. - The to use as the value of the element to add. - - - As the collection is empty no new values can be added. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Removes all elements from the . - - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - Determines whether the contains an element - with the specified key. - - The key to locate in the . - false - - - As the collection is empty the method always returns false. - - - - - - Returns an enumerator that can iterate through a collection. - - - An that can be used to - iterate through the collection. - - - - As the collection is empty a is returned. - - - - - - Removes the element with the specified key from the . - - The key of the element to remove. - - - As the collection is empty no values can be removed. A - is thrown if this method is called. - - - This dictionary is always empty and cannot be modified. - - - - The singleton instance of the empty dictionary. - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets a value indicating if access to the is synchronized (thread-safe). - - - true if access to the is synchronized (thread-safe); otherwise, false. - - - - For the this property is always true. - - - - - - Gets the number of elements contained in the - - - The number of elements contained in the . - - - - As the collection is empty the is always 0. - - - - - - Gets an object that can be used to synchronize access to the . - - - An object that can be used to synchronize access to the . - - - - As the collection is empty and thread safe and synchronized this instance is also - the object. - - - - - - Gets a value indicating whether the has a fixed size. - - true - - - As the collection is empty always returns true. - - - - - - Gets a value indicating whether the is read-only. - - true - - - As the collection is empty always returns true. - - - - - - Gets an containing the keys of the . - - An containing the keys of the . - - - As the collection is empty a is returned. - - - - - - Gets an containing the values of the . - - An containing the values of the . - - - As the collection is empty a is returned. - - - - - - Gets or sets the element with the specified key. - - The key of the element to get or set. - null - - - As the collection is empty no values can be looked up or stored. - If the index getter is called then null is returned. - A is thrown if the setter is called. - - - This dictionary is always empty and cannot be modified. - - - - Contain the information obtained when parsing formatting modifiers - in conversion modifiers. - - - - Holds the formatting information extracted from the format string by - the . This is used by the - objects when rendering the output. - - - Nicko Cadell - Gert Driesen - - - - Defaut Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - - - Initializes a new instance of the class - with the specified parameters. - - - - - - Gets or sets the minimum value. - - - The minimum value. - - - - Gets or sets the minimum value. - - - - - - Gets or sets the maximum value. - - - The maximum value. - - - - Gets or sets the maximum value. - - - - - - Gets or sets a flag indicating whether left align is enabled - or not. - - - A flag indicating whether left align is enabled or not. - - - - Gets or sets a flag indicating whether left align is enabled or not. - - - - - - Implementation of Properties collection for the - - - - This class implements a properties collection that is thread safe and supports both - storing properties and capturing a read only copy of the current propertied. - - - This class is optimized to the scenario where the properties are read frequently - and are modified infrequently. - - - Nicko Cadell - - - - The read only copy of the properties. - - - - This variable is declared volatile to prevent the compiler and JIT from - reordering reads and writes of this thread performed on different threads. - - - - - - Lock object used to synchronize updates within this instance - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property from the global context - - the key for the entry to remove - - - Removing an entry from the global context properties is relatively expensive compared - with reading a value. - - - - - - Clear the global context properties - - - - - Get a readonly immutable copy of the properties - - the current global context properties - - - This implementation is fast because the GlobalContextProperties class - stores a readonly copy of the properties. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Reading the value for a key is faster than setting the value. - When the value is written a new read only copy of - the properties is created. - - - - - - Manages a mapping from levels to - - - - Manages an ordered mapping from instances - to subclasses. - - - Nicko Cadell - - - - Default constructor - - - - Initialise a new instance of . - - - - - - Add a to this mapping - - the entry to add - - - If a has previously been added - for the same then that entry will be - overwritten. - - - - - - Lookup the mapping for the specified level - - the level to lookup - the for the level or null if no mapping found - - - Lookup the value for the specified level. Finds the nearest - mapping value for the level that is equal to or less than the - specified. - - - If no mapping could be found then null is returned. - - - - - - Initialize options - - - - Caches the sorted list of in an array - - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove the value for the specified from the context. - - - - - - Clear all the context properties - - - - Clear all the context properties - - - - - - Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doings so. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Get or set the property value for the specified. - - - - - - Outputs log statements from within the log4net assembly. - - - - Log4net components cannot make log4net logging calls. However, it is - sometimes useful for the user to learn about what log4net is - doing. - - - All log4net internal debug calls go to the standard output stream - whereas internal error messages are sent to the standard error output - stream. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Static constructor that initializes logging by reading - settings from the application configuration file. - - - - The log4net.Internal.Debug application setting - controls internal debugging. This setting should be set - to true to enable debugging. - - - The log4net.Internal.Quiet application setting - suppresses all internal logging including error messages. - This setting should be set to true to enable message - suppression. - - - - - - Writes log4net internal debug messages to the - standard output stream. - - The message to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal debug messages to the - standard output stream. - - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net: ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The message to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal warning messages to the - standard error stream. - - The message to log. - An exception to log. - - - All internal warning messages are prepended with - the string "log4net:WARN ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The message to log. - - - All internal error messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes log4net internal error messages to the - standard error stream. - - The message to log. - An exception to log. - - - All internal debug messages are prepended with - the string "log4net:ERROR ". - - - - - - Writes output to the standard output stream. - - The message to log. - - - Writes to both Console.Out and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Writes output to the standard error stream. - - The message to log. - - - Writes to both Console.Error and System.Diagnostics.Trace. - Note that the System.Diagnostics.Trace is not supported - on the Compact Framework. - - - If the AppDomain is not configured with a config file then - the call to System.Diagnostics.Trace may fail. This is only - an issue if you are programmatically creating your own AppDomains. - - - - - - Default debug level - - - - - In quietMode not even errors generate any output. - - - - - Gets or sets a value indicating whether log4net internal logging - is enabled or disabled. - - - true if log4net internal logging is enabled, otherwise - false. - - - - When set to true, internal debug level logging will be - displayed. - - - This value can be set by setting the application setting - log4net.Internal.Debug in the application configuration - file. - - - The default value is false, i.e. debugging is - disabled. - - - - - The following example enables internal debugging using the - application configuration file : - - - - - - - - - - - - - Gets or sets a value indicating whether log4net should generate no output - from internal logging, not even for errors. - - - true if log4net should generate no output at all from internal - logging, otherwise false. - - - - When set to true will cause internal logging at all levels to be - suppressed. This means that no warning or error reports will be logged. - This option overrides the setting and - disables all debug also. - - This value can be set by setting the application setting - log4net.Internal.Quiet in the application configuration file. - - - The default value is false, i.e. internal logging is not - disabled. - - - - The following example disables internal logging using the - application configuration file : - - - - - - - - - - - - Test if LogLog.Debug is enabled for output. - - - true if Debug is enabled - - - - Test if LogLog.Debug is enabled for output. - - - - - - Test if LogLog.Warn is enabled for output. - - - true if Warn is enabled - - - - Test if LogLog.Warn is enabled for output. - - - - - - Test if LogLog.Error is enabled for output. - - - true if Error is enabled - - - - Test if LogLog.Error is enabled for output. - - - - - - Represents a native error code and message. - - - - Represents a Win32 platform native error. - - - Nicko Cadell - Gert Driesen - - - - Create an instance of the class with the specified - error number and message. - - The number of the native error. - The message of the native error. - - - Create an instance of the class with the specified - error number and message. - - - - - - Create a new instance of the class for the last Windows error. - - - An instance of the class for the last windows error. - - - - The message for the error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Create a new instance of the class. - - the error number for the native error - - An instance of the class for the specified - error number. - - - - The message for the specified error number is lookup up using the - native Win32 FormatMessage function. - - - - - - Retrieves the message corresponding with a Win32 message identifier. - - Message identifier for the requested message. - - The message corresponding with the specified message identifier. - - - - The message will be searched for in system message-table resource(s) - using the native FormatMessage function. - - - - - - Return error information string - - error information string - - - Return error information string - - - - - - Formats a message string. - - Formatting options, and how to interpret the parameter. - Location of the message definition. - Message identifier for the requested message. - Language identifier for the requested message. - If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . - If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. - Pointer to an array of values that are used as insert values in the formatted message. - - - The function requires a message definition as input. The message definition can come from a - buffer passed into the function. It can come from a message table resource in an - already-loaded module. Or the caller can ask the function to search the system's message - table resource(s) for the message definition. The function finds the message definition - in a message table resource based on a message identifier and a language identifier. - The function copies the formatted message text to an output buffer, processing any embedded - insert sequences if requested. - - - To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. - - - - - If the function succeeds, the return value is the number of TCHARs stored in the output - buffer, excluding the terminating null character. - - - If the function fails, the return value is zero. To get extended error information, - call . - - - - - - Gets the number of the native error. - - - The number of the native error. - - - - Gets the number of the native error. - - - - - - Gets the message of the native error. - - - The message of the native error. - - - - - Gets the message of the native error. - - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance. - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Gets the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current key from the enumerator. - - - Throws an exception because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current value from the enumerator. - - The current value from the enumerator. - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - Gets the current entry from the enumerator. - - - Throws an because the - never has a current entry. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - An always empty . - - - - A singleton implementation of the over a collection - that is empty and not modifiable. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to enforce the singleton pattern. - - - - - - Test if the enumerator can advance, if so advance - - false as the cannot advance. - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will always return false. - - - - - - Resets the enumerator back to the start. - - - - As the enumerator is over an empty collection does nothing. - - - - - - The singleton instance of the . - - - - - Get the singleton instance of the . - - The singleton instance of the . - - - Gets the singleton instance of the . - - - - - - Gets the current object from the enumerator. - - - Throws an because the - never has a current value. - - - - As the enumerator is over an empty collection its - value cannot be moved over a valid position, therefore - will throw an . - - - The collection is empty and - cannot be positioned over a valid location. - - - - A SecurityContext used when a SecurityContext is not required - - - - The is a no-op implementation of the - base class. It is used where a - is required but one has not been provided. - - - Nicko Cadell - - - - Singleton instance of - - - - Singleton instance of - - - - - - Private constructor - - - - Private constructor for singleton pattern. - - - - - - Impersonate this SecurityContext - - State supplied by the caller - null - - - No impersonation is done and null is always returned. - - - - - - Implements log4net's default error handling policy which consists - of emitting a message for the first error in an appender and - ignoring all subsequent errors. - - - - The error message is printed on the standard error output stream. - - - This policy aims at protecting an otherwise working application - from being flooded with error messages when logging fails. - - - Nicko Cadell - Gert Driesen - - - - Default Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - The prefix to use for each message. - - - Initializes a new instance of the class - with the specified prefix. - - - - - - Log an Error - - The error message. - The exception. - The internal error code. - - - Prints the message and the stack trace of the exception on the standard - error output stream. - - - - - - Log an Error - - The error message. - The exception. - - - Prints the message and the stack trace of the exception on the standard - error output stream. - - - - - - Log an error - - The error message. - - - Print a the error message passed as parameter on the standard - error output stream. - - - - - - Flag to indicate if it is the first error - - - - - String to prefix each message with - - - - - Is error logging enabled - - - - Is error logging enabled. Logging is only enabled for the - first error delivered to the . - - - - - - A convenience class to convert property values to specific types. - - - - Utility functions for converting types and parsing values. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Converts a string to a value. - - String to convert. - The default value. - The value of . - - - If is "true", then true is returned. - If is "false", then false is returned. - Otherwise, is returned. - - - - - - Parses a file size into a number. - - String to parse. - The default value. - The value of . - - - Parses a file size of the form: number[KB|MB|GB] into a - long value. It is scaled with the appropriate multiplier. - - - is returned when - cannot be converted to a value. - - - - - - Converts a string to an object. - - The target type to convert to. - The string to convert to an object. - - The object converted from a string or null when the - conversion failed. - - - - Converts a string to an object. Uses the converter registry to try - to convert the string value into the specified target type. - - - - - - Checks if there is an appropriate type conversion from the source type to the target type. - - The type to convert from. - The type to convert to. - true if there is a conversion from the source type to the target type. - - Checks if there is an appropriate type conversion from the source type to the target type. - - - - - - - Converts an object to the target type. - - The object to convert to the target type. - The type to convert to. - The converted object. - - - Converts an object to the target type. - - - - - - Instantiates an object given a class name. - - The fully qualified class name of the object to instantiate. - The class to which the new object should belong. - The object to return in case of non-fulfillment. - - An instance of the or - if the object could not be instantiated. - - - - Checks that the is a subclass of - . If that test fails or the object could - not be instantiated, then is returned. - - - - - - Performs variable substitution in string from the - values of keys found in . - - The string on which variable substitution is performed. - The dictionary to use to lookup variables. - The result of the substitutions. - - - The variable substitution delimiters are ${ and }. - - - For example, if props contains key=value, then the call - - - - string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); - - - - will set the variable s to "Value of key is value.". - - - If no value could be found for the specified key, then substitution - defaults to an empty string. - - - For example, if system properties contains no value for the key - "nonExistentKey", then the call - - - - string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); - - - - will set s to "Value of nonExistentKey is []". - - - An Exception is thrown if contains a start - delimiter "${" which is not balanced by a stop delimiter "}". - - - - - - Converts the string representation of the name or numeric value of one or - more enumerated constants to an equivalent enumerated object. - - The type to convert to. - The enum string value. - If true, ignore case; otherwise, regard case. - An object of type whose value is represented by . - - - - Most of the work of the class - is delegated to the PatternParser class. - - - - The PatternParser processes a pattern string and - returns a chain of objects. - - - Nicko Cadell - Gert Driesen - - - - Constructor - - The pattern to parse. - - - Initializes a new instance of the class - with the specified pattern string. - - - - - - Parses the pattern into a chain of pattern converters. - - The head of a chain of pattern converters. - - - Parses the pattern into a chain of pattern converters. - - - - - - Build the unified cache of converters from the static and instance maps - - the list of all the converter names - - - Build the unified cache of converters from the static and instance maps - - - - - - Internal method to parse the specified pattern to find specified matches - - the pattern to parse - the converter names to match in the pattern - - - The matches param must be sorted such that longer strings come before shorter ones. - - - - - - Process a parsed literal - - the literal text - - - - Process a parsed converter pattern - - the name of the converter - the optional option for the converter - the formatting info for the converter - - - - Resets the internal state of the parser and adds the specified pattern converter - to the chain. - - The pattern converter to add. - - - - The first pattern converter in the chain - - - - - the last pattern converter in the chain - - - - - The pattern - - - - - Internal map of converter identifiers to converter types - - - - This map overrides the static s_globalRulesRegistry map. - - - - - - Get the converter registry used by this parser - - - The converter registry used by this parser - - - - Get the converter registry used by this parser - - - - - - Sort strings by length - - - - that orders strings by string length. - The longest strings are placed first - - - - - - This class implements a patterned string. - - - - This string has embedded patterns that are resolved and expanded - when the string is formatted. - - - This class functions similarly to the - in that it accepts a pattern and renders it to a string. Unlike the - however the PatternString - does not render the properties of a specific but - of the process in general. - - - The recognized conversion pattern names are: - - - - Conversion Pattern Name - Effect - - - appdomain - - - Used to output the friendly name of the current AppDomain. - - - - - date - - - Used to output the date of the logging event in the local time zone. - To output the date in universal time use the %utcdate pattern. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %date{HH:mm:ss,fff} or - %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %date{ISO8601} or %date{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - env - - - Used to output the a specific environment variable. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %env{COMPUTERNAME} would include the value - of the COMPUTERNAME environment variable. - - - The env pattern is not supported on the .NET Compact Framework. - - - - - identity - - - Used to output the user name for the currently active user - (Principal.Identity.Name). - - - - - newline - - - Outputs the platform dependent line separator character or - characters. - - - This conversion pattern name offers the same performance as using - non-portable line separator strings such as "\n", or "\r\n". - Thus, it is the preferred way of specifying a line separator. - - - - - processid - - - Used to output the system process ID for the current process. - - - - - property - - - Used to output a specific context property. The key to - lookup must be specified within braces and directly following the - pattern specifier, e.g. %property{user} would include the value - from the property that is keyed by the string 'user'. Each property value - that is to be included in the log must be specified separately. - Properties are stored in logging contexts. By default - the log4net:HostName property is set to the name of machine on - which the event was originally logged. - - - If no key is specified, e.g. %property then all the keys and their - values are printed in a comma separated list. - - - The properties of an event are combined from a number of different - contexts. These are listed below in the order in which they are searched. - - - - the thread properties - - The that are set on the current - thread. These properties are shared by all events logged on this thread. - - - - the global properties - - The that are set globally. These - properties are shared by all the threads in the AppDomain. - - - - - - - random - - - Used to output a random string of characters. The string is made up of - uppercase letters and numbers. By default the string is 4 characters long. - The length of the string can be specified within braces directly following the - pattern specifier, e.g. %random{8} would output an 8 character string. - - - - - username - - - Used to output the WindowsIdentity for the currently - active user. - - - - - utcdate - - - Used to output the date of the logging event in universal time. - The date conversion - specifier may be followed by a date format specifier enclosed - between braces. For example, %utcdate{HH:mm:ss,fff} or - %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is - given then ISO8601 format is - assumed (). - - - The date format specifier admits the same syntax as the - time pattern string of the . - - - For better results it is recommended to use the log4net date - formatters. These can be specified using one of the strings - "ABSOLUTE", "DATE" and "ISO8601" for specifying - , - and respectively - . For example, - %utcdate{ISO8601} or %utcdate{ABSOLUTE}. - - - These dedicated date formatters perform significantly - better than . - - - - - % - - - The sequence %% outputs a single percent sign. - - - - - - Additional pattern converters may be registered with a specific - instance using or - . - - - See the for details on the - format modifiers supported by the patterns. - - - Nicko Cadell - - - - Internal map of converter identifiers to converter types. - - - - - the pattern - - - - - the head of the pattern converter chain - - - - - patterns defined on this PatternString only - - - - - Initialize the global registry - - - - - Default constructor - - - - Initialize a new instance of - - - - - - Constructs a PatternString - - The pattern to use with this PatternString - - - Initialize a new instance of with the pattern specified. - - - - - - Initialize object options - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - - - - Create the used to parse the pattern - - the pattern to parse - The - - - Returns PatternParser used to parse the conversion string. Subclasses - may override this to return a subclass of PatternParser which recognize - custom conversion pattern name. - - - - - - Produces a formatted string as specified by the conversion pattern. - - The TextWriter to write the formatted event to - - - Format the pattern to the . - - - - - - Format the pattern as a string - - the pattern formatted as a string - - - Format the pattern to a string. - - - - - - Add a converter to this PatternString - - the converter info - - - This version of the method is used by the configurator. - Programmatic users should use the alternative method. - - - - - - Add a converter to this PatternString - - the name of the conversion pattern for this converter - the type of the converter - - - Add a converter to this PatternString - - - - - - Gets or sets the pattern formatting string - - - The pattern formatting string - - - - The ConversionPattern option. This is the string which - controls formatting and consists of a mix of literal content and - conversion specifiers. - - - - - - Wrapper class used to map converter names to converter types - - - - Wrapper class used to map converter names to converter types - - - - - - default constructor - - - - - Gets or sets the name of the conversion pattern - - - The name of the conversion pattern - - - - Gets or sets the name of the conversion pattern - - - - - - Gets or sets the type of the converter - - - The type of the converter - - - - Gets or sets the type of the converter - - - - - - String keyed object map. - - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - String keyed object map that is read only. - - - - This collection is readonly and cannot be modified. - - - While this collection is serializable only member - objects that are serializable will - be serialized along with this collection. - - - Nicko Cadell - Gert Driesen - - - - The Hashtable used to store the properties data - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Copy Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Deserialization constructor - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Initializes a new instance of the class - with serialized data. - - - - - - Gets the key names. - - An array of all the keys. - - - Gets the key names. - - - - - - Test if the dictionary contains a specified key - - the key to look for - true if the dictionary contains the specified key - - - Test if the dictionary contains a specified key - - - - - - Serializes this object into the provided. - - The to populate with data. - The destination for this serialization. - - - Serializes this object into the provided. - - - - - - See - - - - - See - - - - - - See - - - - - - - Remove all properties from the properties collection - - - - - See - - - - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - The hashtable used to store the properties - - - The internal collection used to store the properties - - - - The hashtable used to store the properties - - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - The number of properties in this collection - - - - - See - - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Constructor - - properties to copy - - - Initializes a new instance of the class. - - - - - - Initializes a new instance of the class - with serialized data. - - The that holds the serialized object data. - The that contains contextual information about the source or destination. - - - Because this class is sealed the serialization constructor is private. - - - - - - Remove the entry with the specified key from this dictionary - - the key for the entry to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - an enumerator - - - Returns a over the contest of this collection. - - - - - - See - - the key to remove - - - Remove the entry with the specified key from this dictionary - - - - - - See - - the key to lookup in the collection - true if the collection contains the specified key - - - Test if this collection contains a specified key. - - - - - - Remove all properties from the properties collection - - - - Remove all properties from the properties collection - - - - - - See - - the key - the value to store for the key - - - Store a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - - - See - - - - - Gets or sets the value of the property with the specified key. - - - The value of the property with the specified key. - - The key of the property to get or set. - - - The property value will only be serialized if it is serializable. - If it cannot be serialized it will be silently ignored if - a serialization operation is performed. - - - - - - See - - - false - - - - This collection is modifiable. This property always - returns false. - - - - - - See - - - The value for the key specified. - - - - Get or set a value for the specified . - - - Thrown if the is not a string - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - A that ignores the message - - - - This writer is used in special cases where it is necessary - to protect a writer from being closed by a client. - - - Nicko Cadell - - - - Constructor - - the writer to actually write to - - - Create a new ProtectCloseTextWriter using a writer - - - - - - Attach this instance to a different underlying - - the writer to attach to - - - Attach this instance to a different underlying - - - - - - Does not close the underlying output writer. - - - - Does not close the underlying output writer. - This method does nothing. - - - - - - Defines a lock that supports single writers and multiple readers - - - - ReaderWriterLock is used to synchronize access to a resource. - At any given time, it allows either concurrent read access for - multiple threads, or write access for a single thread. In a - situation where a resource is changed infrequently, a - ReaderWriterLock provides better throughput than a simple - one-at-a-time lock, such as . - - - If a platform does not support a System.Threading.ReaderWriterLock - implementation then all readers and writers are serialized. Therefore - the caller must not rely on multiple simultaneous readers. - - - Nicko Cadell - - - - Constructor - - - - Initializes a new instance of the class. - - - - - - Acquires a reader lock - - - - blocks if a different thread has the writer - lock, or if at least one thread is waiting for the writer lock. - - - - - - Decrements the lock count - - - - decrements the lock count. When the count - reaches zero, the lock is released. - - - - - - Acquires the writer lock - - - - This method blocks if another thread has a reader lock or writer lock. - - - - - - Decrements the lock count on the writer lock - - - - ReleaseWriterLock decrements the writer lock count. - When the count reaches zero, the writer lock is released. - - - - - - A that can be and reused - - - - A that can be and reused. - This uses a single buffer for string operations. - - - Nicko Cadell - - - - Create an instance of - - the format provider to use - - - Create an instance of - - - - - - Override Dispose to prevent closing of writer - - flag - - - Override Dispose to prevent closing of writer - - - - - - Reset this string writer so that it can be reused. - - the maximum buffer capacity before it is trimmed - the default size to make the buffer - - - Reset this string writer so that it can be reused. - The internal buffers are cleared and reset. - - - - - - Utility class for system specific information. - - - - Utility class of static methods for system specific information. - - - Nicko Cadell - Gert Driesen - Alexey Solofnenko - - - - Private constructor to prevent instances. - - - - Only static methods are exposed from this type. - - - - - - Initialize default values for private static fields. - - - - Only static methods are exposed from this type. - - - - - - Gets the assembly location path for the specified assembly. - - The assembly to get the location for. - The location of the assembly. - - - This method does not guarantee to return the correct path - to the assembly. If only tries to give an indication as to - where the assembly was loaded from. - - - - - - Gets the fully qualified name of the , including - the name of the assembly from which the was - loaded. - - The to get the fully qualified name for. - The fully qualified name for the . - - - This is equivalent to the Type.AssemblyQualifiedName property, - but this method works on the .NET Compact Framework 1.0 as well as - the full .NET runtime. - - - - - - Gets the short name of the . - - The to get the name for. - The short name of the . - - - The short name of the assembly is the - without the version, culture, or public key. i.e. it is just the - assembly's file name without the extension. - - - Use this rather than Assembly.GetName().Name because that - is not available on the Compact Framework. - - - Because of a FileIOPermission security demand we cannot do - the obvious Assembly.GetName().Name. We are allowed to get - the of the assembly so we - start from there and strip out just the assembly name. - - - - - - Gets the file name portion of the , including the extension. - - The to get the file name for. - The file name of the assembly. - - - Gets the file name portion of the , including the extension. - - - - - - Loads the type specified in the type string. - - A sibling type to use to load the type. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified, it will be loaded from the assembly - containing the specified relative type. If the type is not found in the assembly - then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the - assembly that is directly calling this method. If the type is not found - in the assembly then all the loaded assemblies will be searched for the type. - - - - - - Loads the type specified in the type string. - - An assembly to load the type from. - The name of the type to load. - Flag set to true to throw an exception if the type cannot be loaded. - true to ignore the case of the type name; otherwise, false - The type loaded or null if it could not be loaded. - - - If the type name is fully qualified, i.e. if contains an assembly name in - the type name, the type will be loaded from the system using - . - - - If the type name is not fully qualified it will be loaded from the specified - assembly. If the type is not found in the assembly then all the loaded assemblies - will be searched for the type. - - - - - - Generate a new guid - - A new Guid - - - Generate a new guid - - - - - - Create an - - The name of the parameter that caused the exception - The value of the argument that causes this exception - The message that describes the error - the ArgumentOutOfRangeException object - - - Create a new instance of the class - with a specified error message, the parameter name, and the value - of the argument. - - - The Compact Framework does not support the 3 parameter constructor for the - type. This method provides an - implementation that works for all platforms. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Parse a string into an value - - the string to parse - out param where the parsed value is placed - true if the string was able to be parsed into an integer - - - Attempts to parse the string into an integer. If the string cannot - be parsed then this method returns false. The method does not throw an exception. - - - - - - Lookup an application setting - - the application settings key to lookup - the value for the key, or null - - - Configuration APIs are not supported under the Compact Framework - - - - - - Convert a path into a fully qualified local file path. - - The path to convert. - The fully qualified path. - - - Converts the path specified to a fully - qualified path. If the path is relative it is - taken as relative from the application base - directory. - - - The path specified must be a local file path, a URI is not supported. - - - - - - Creates a new case-insensitive instance of the class with the default initial capacity. - - A new case-insensitive instance of the class with the default initial capacity - - - The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. - - - - - - Gets an empty array of types. - - - - The Type.EmptyTypes field is not available on - the .NET Compact Framework 1.0. - - - - - - Cache the host name for the current machine - - - - - Cache the application friendly name - - - - - Text to output when a null is encountered. - - - - - Text to output when an unsupported feature is requested. - - - - - Start time for the current process. - - - - - Gets the system dependent line terminator. - - - The system dependent line terminator. - - - - Gets the system dependent line terminator. - - - - - - Gets the base directory for this . - - The base directory path for the current . - - - Gets the base directory for this . - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the configuration file for the current . - - The path to the configuration file for the current . - - - The .NET Compact Framework 1.0 does not have a concept of a configuration - file. For this runtime, we use the entry assembly location as the root for - the configuration file name. - - - The value returned may be either a local file path or a URI. - - - - - - Gets the path to the file that first executed in the current . - - The path to the entry assembly. - - - Gets the path to the file that first executed in the current . - - - - - - Gets the ID of the current thread. - - The ID of the current thread. - - - On the .NET framework, the AppDomain.GetCurrentThreadId method - is used to obtain the thread ID for the current thread. This is the - operating system ID for the thread. - - - On the .NET Compact Framework 1.0 it is not possible to get the - operating system thread ID for the current thread. The native method - GetCurrentThreadId is implemented inline in a header file - and cannot be called. - - - On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this - gives a stable id unrelated to the operating system thread ID which may - change if the runtime is using fibers. - - - - - - Get the host name or machine name for the current machine - - - The hostname or machine name - - - - Get the host name or machine name for the current machine - - - The host name () or - the machine name (Environment.MachineName) for - the current machine, or if neither of these are available - then NOT AVAILABLE is returned. - - - - - - Get this application's friendly name - - - The friendly name of this application as a string - - - - If available the name of the application is retrieved from - the AppDomain using AppDomain.CurrentDomain.FriendlyName. - - - Otherwise the file name of the entry assembly is used. - - - - - - Get the start time for the current process. - - - - This is the time at which the log4net library was loaded into the - AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime - this is not the start time for the current process. - - - The log4net library should be loaded by an application early during its - startup, therefore this start time should be a good approximation for - the actual start time. - - - Note that AppDomains may be loaded and unloaded within the - same process without the process terminating, however this start time - will be set per AppDomain. - - - - - - Text to output when a null is encountered. - - - - Use this value to indicate a null has been encountered while - outputting a string representation of an item. - - - The default value is (null). This value can be overridden by specifying - a value for the log4net.NullText appSetting in the application's - .config file. - - - - - - Text to output when an unsupported feature is requested. - - - - Use this value when an unsupported feature is requested. - - - The default value is NOT AVAILABLE. This value can be overridden by specifying - a value for the log4net.NotAvailableText appSetting in the application's - .config file. - - - - - - Utility class that represents a format string. - - - - Utility class that represents a format string. - - - Nicko Cadell - - - - Initialise the - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - - - Format the string and arguments - - the formatted string - - - - Replaces the format item in a specified with the text equivalent - of the value of a corresponding instance in a specified array. - A specified parameter supplies culture-specific formatting information. - - An that supplies culture-specific formatting information. - A containing zero or more format items. - An array containing zero or more objects to format. - - A copy of format in which the format items have been replaced by the - equivalent of the corresponding instances of in args. - - - - This method does not throw exceptions. If an exception thrown while formatting the result the - exception and arguments are returned in the result string. - - - - - - Process an error during StringFormat - - - - - Dump the contents of an array into a string builder - - - - - Dump an object to a string - - - - - Implementation of Properties collection for the - - - - Class implements a collection of properties that is specific to each thread. - The class is not synchronized as each thread has its own . - - - Nicko Cadell - - - - The thread local data slot to use to store a PropertiesDictionary. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Remove a property - - the key for the entry to remove - - - Remove a property - - - - - - Clear all properties - - - - Clear all properties - - - - - - Get the PropertiesDictionary for this thread. - - create the dictionary if it does not exist, otherwise return null if is does not exist - the properties for this thread - - - The collection returned is only to be used on the calling thread. If the - caller needs to share the collection between different threads then the - caller must clone the collection before doing so. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Implementation of Stack for the - - - - Implementation of Stack for the - - - Nicko Cadell - - - - The stack store. - - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Clears all the contextual information held in this stack. - - - - Clears all the contextual information held in this stack. - Only call this if you think that this tread is being reused after - a previous call execution which may not have completed correctly. - You do not need to use this method if you always guarantee to call - the method of the - returned from even in exceptional circumstances, - for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - syntax. - - - - - - Removes the top context from this stack. - - The message in the context that was removed from the top of this stack. - - - Remove the top context from this stack, and return - it to the caller. If this stack is empty then an - empty string (not ) is returned. - - - - - - Pushes a new context message into this stack. - - The new context message. - - An that can be used to clean up the context stack. - - - - Pushes a new context onto this stack. An - is returned that can be used to clean up this stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) - { - log.Warn("This should have an ThreadContext Stack message"); - } - - - - - - Gets the current context information for this stack. - - The current context information. - - - - Gets the current context information for this stack. - - Gets the current context information - - - Gets the current context information for this stack. - - - - - - Get a portable version of this object - - the portable instance of this object - - - Get a cross thread portable version of this object - - - - - - The number of messages in the stack - - - The current number of messages in the stack - - - - The current number of messages in the stack. That is - the number of times has been called - minus the number of times has been called. - - - - - - Gets and sets the internal stack used by this - - The internal storage stack - - - This property is provided only to support backward compatability - of the . Tytpically the internal stack should not - be modified. - - - - - - Inner class used to represent a single context frame in the stack. - - - - Inner class used to represent a single context frame in the stack. - - - - - - Constructor - - The message for this context. - The parent context in the chain. - - - Initializes a new instance of the class - with the specified message and parent context. - - - - - - Get the message. - - The message. - - - Get the message. - - - - - - Gets the full text of the context down to the root level. - - - The full text of the context down to the root level. - - - - Gets the full text of the context down to the root level. - - - - - - Struct returned from the method. - - - - This struct implements the and is designed to be used - with the pattern to remove the stack frame at the end of the scope. - - - - - - The ThreadContextStack internal stack - - - - - The depth to trim the stack to when this instance is disposed - - - - - Constructor - - The internal stack used by the ThreadContextStack. - The depth to return the stack to when this object is disposed. - - - Initializes a new instance of the class with - the specified stack and return depth. - - - - - - Returns the stack to the correct depth. - - - - Returns the stack to the correct depth. - - - - - - Implementation of Stacks collection for the - - - - Implementation of Stacks collection for the - - - Nicko Cadell - - - - Internal constructor - - - - Initializes a new instance of the class. - - - - - - Gets the named thread context stack - - - The named stack - - - - Gets the named thread context stack - - - - - - Utility class for transforming strings. - - - - Utility class for transforming strings. - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - Write a string to an - - the writer to write to - the string to write - The string to replace non XML compliant chars with - - - The test is escaped either using XML escape entities - or using CDATA sections. - - - - - - Replace invalid XML characters in text string - - the XML text input string - the string to use in place of invalid characters - A string that does not contain invalid XML characters. - - - Certain Unicode code points are not allowed in the XML InfoSet, for - details see: http://www.w3.org/TR/REC-xml/#charsets. - - - This method replaces any illegal characters in the input string - with the mask string specified. - - - - - - Count the number of times that the substring occurs in the text - - the text to search - the substring to find - the number of times the substring occurs in the text - - - The substring is assumed to be non repeating within itself. - - - - - - Impersonate a Windows Account - - - - This impersonates a Windows account. - - - How the impersonation is done depends on the value of . - This allows the context to either impersonate a set of user credentials specified - using username, domain name and password or to revert to the process credentials. - - - - - - Default constructor - - - - Default constructor - - - - - - Initialize the SecurityContext based on the options set. - - - - This is part of the delayed object - activation scheme. The method must - be called on this object after the configuration properties have - been set. Until is called this - object is in an undefined state and must not be used. - - - If any of the configuration properties are modified then - must be called again. - - - The security context will try to Logon the specified user account and - capture a primary token for impersonation. - - - The required , - or properties were not specified. - - - - Impersonate the Windows account specified by the and properties. - - caller provided state - - An instance that will revoke the impersonation of this SecurityContext - - - - Depending on the property either - impersonate a user using credentials supplied or revert - to the process credentials. - - - - - - Create a given the userName, domainName and password. - - the user name - the domain name - the password - the for the account specified - - - Uses the Windows API call LogonUser to get a principal token for the account. This - token is used to initialize the WindowsIdentity. - - - - - - Gets or sets the impersonation mode for this security context - - - The impersonation mode for this security context - - - - Impersonate either a user with user credentials or - revert this thread to the credentials of the process. - The value is one of the - enum. - - - The default value is - - - When the mode is set to - the user's credentials are established using the - , and - values. - - - When the mode is set to - no other properties need to be set. If the calling thread is - impersonating then it will be reverted back to the process credentials. - - - - - - Gets or sets the Windows username for this security context - - - The Windows username for this security context - - - - This property must be set if - is set to (the default setting). - - - - - - Gets or sets the Windows domain name for this security context - - - The Windows domain name for this security context - - - - The default value for is the local machine name - taken from the property. - - - This property must be set if - is set to (the default setting). - - - - - - Sets the password for the Windows account specified by the and properties. - - - The password for the Windows account specified by the and properties. - - - - This property must be set if - is set to (the default setting). - - - - - - The impersonation modes for the - - - - See the property for - details. - - - - - - Impersonate a user using the credentials supplied - - - - - Revert this the thread to the credentials of the process - - - - - Adds to - - - - Helper class to expose the - through the interface. - - - - - - Constructor - - the impersonation context being wrapped - - - Constructor - - - - - - Revert the impersonation - - - - Revert the impersonation - - - - - - The log4net Global Context. - - - - The GlobalContext provides a location for global debugging - information to be stored. - - - The global context has a properties map and these properties can - be included in the output of log messages. The - supports selecting and outputing these properties. - - - By default the log4net:HostName property is set to the name of - the current machine. - - - - - GlobalContext.Properties["hostname"] = Environment.MachineName; - - - - Nicko Cadell - - - - Private Constructor. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - The global context properties instance - - - - - The global properties map. - - - The global properties map. - - - - The global properties map. - - - - - - The log4net Logical Thread Context. - - - - The LogicalThreadContext provides a location for specific debugging - information to be stored. - The LogicalThreadContext properties override any or - properties with the same name. - - - The Logical Thread Context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Logical Thread Context provides a diagnostic context for the current call context. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Logical Thread Context is managed on a per basis. - - - Example of using the thread context properties to store a username. - - LogicalThreadContext.Properties["user"] = userName; - log.Info("This log message has a LogicalThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) - { - log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The LogicalThreadContext properties override any - or properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The logical thread stacks. - - - - - - This class is used by client applications to request logger instances. - - - - This class has static methods that are used by a client to request - a logger instance. The method is - used to retrieve a logger. - - - See the interface for more details. - - - Simple example of logging messages - - ILog log = LogManager.GetLogger("application-log"); - - log.Info("Application Start"); - log.Debug("This is a debug message"); - - if (log.IsDebugEnabled) - { - log.Debug("This is another debug message"); - } - - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - Returns the named logger if it exists. - - Returns the named logger if it exists. - - - - If the named logger exists (in the default repository) then it - returns a reference to the logger, otherwise it returns null. - - - The fully qualified logger name to look for. - The logger found, or null if no logger could be found. - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the specified repository) then it - returns a reference to the logger, otherwise it returns - null. - - - The repository to lookup in. - The fully qualified logger name to look for. - - The logger found, or null if the logger doesn't exist in the specified - repository. - - - - - Returns the named logger if it exists. - - - - If the named logger exists (in the repository for the specified assembly) then it - returns a reference to the logger, otherwise it returns - null. - - - The assembly to use to lookup the repository. - The fully qualified logger name to look for. - - The logger, or null if the logger doesn't exist in the specified - assembly's repository. - - - - Get the currently defined loggers. - - Returns all the currently defined loggers in the default repository. - - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified repository. - - The repository to lookup in. - - The root logger is not included in the returned array. - - All the defined loggers. - - - - Returns all the currently defined loggers in the specified assembly's repository. - - The assembly to use to lookup the repository. - - The root logger is not included in the returned array. - - All the defined loggers. - - - Get or create a logger. - - Retrieves or creates a named logger. - - - - Retrieves a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The repository to lookup in. - The name of the logger to retrieve. - The logger with the name specified. - - - - Retrieves or creates a named logger. - - - - Retrieve a logger named as the - parameter. If the named logger already exists, then the - existing instance will be returned. Otherwise, a new instance is - created. - - - By default, loggers do not have a set level but inherit - it from the hierarchy. This is one of the central features of - log4net. - - - The assembly to use to lookup the repository. - The name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Get the logger for the fully qualified name of the type specified. - - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The repository to lookup in. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shorthand for . - - - Gets the logger for the fully qualified name of the type specified. - - The assembly to use to lookup the repository. - The full name of will be used as the name of the logger to retrieve. - The logger with the name specified. - - - - Shuts down the log4net system. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in all the - default repositories. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - Shutdown a logger repository. - - Shuts down the default repository. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - default repository. - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - - - - Shuts down the repository for the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The repository to shutdown. - - - - Shuts down the repository specified. - - - - Calling this method will safely close and remove all - appenders in all the loggers including root contained in the - repository. The repository is looked up using - the specified. - - - Some appenders need to be closed before the application exists. - Otherwise, pending logging events might be lost. - - - The shutdown method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - - The assembly to use to lookup the repository. - - - Reset the configuration of a repository - - Resets all values contained in this repository instance to their defaults. - - - - Resets all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The repository to reset. - - - - Resets all values contained in this repository instance to their defaults. - - - - Reset all values contained in the repository instance to their - defaults. This removes all appenders from all loggers, sets - the level of all non-root loggers to null, - sets their additivity flag to true and sets the level - of the root logger to . Moreover, - message disabling is set to its default "off" value. - - - The assembly to use to lookup the repository to reset. - - - Get the logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Get a logger repository. - - Returns the default instance. - - - - Gets the for the repository specified - by the callers assembly (). - - - The instance for the default repository. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The repository to lookup in. - - - - Returns the default instance. - - The default instance. - - - Gets the for the repository specified - by the argument. - - - The assembly to use to lookup the repository. - - - Create a domain - - Creates a repository with the specified repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - Create a logger repository. - - Creates a repository with the specified repository type. - - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - The created will be associated with the repository - specified such that a call to will return - the same repository instance. - - - - - - Creates a repository with the specified name. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name. - - - - Creates the default type of which is a - object. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique amongst repositories. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository with the specified name and repository type. - - - - The name must be unique. Repositories cannot be redefined. - An will be thrown if the repository already exists. - - - The name of the repository, this must be unique to the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - The specified repository already exists. - - - - Creates a repository for the specified assembly and repository type. - - - - CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Creates a repository for the specified assembly and repository type. - - - - The created will be associated with the repository - specified such that a call to with the - same assembly specified will return the same repository instance. - - - The assembly to use to get the name of the repository. - A that implements - and has a no arg constructor. An instance of this type will be created to act - as the for the repository specified. - The created for the repository. - - - - Gets the list of currently defined repositories. - - - - Get an array of all the objects that have been created. - - - An array of all the known objects. - - - - Looks up the wrapper object for the logger specified. - - The logger to get the wrapper for. - The wrapper for the logger specified. - - - - Looks up the wrapper objects for the loggers specified. - - The loggers to get the wrappers for. - The wrapper objects for the loggers specified. - - - - Create the objects used by - this manager. - - The logger to wrap. - The wrapper for the logger specified. - - - - The wrapper map to use to hold the objects. - - - - - Implementation of Mapped Diagnostic Contexts. - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - The MDC class is similar to the class except that it is - based on a map instead of a stack. It provides mapped - diagnostic contexts. A Mapped Diagnostic Context, or - MDC in short, is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The MDC is managed on a per thread basis. - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Gets the context value identified by the parameter. - - The key to lookup in the MDC. - The string value held for the key, or a null reference if no corresponding value is found. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - If the parameter does not look up to a - previously defined context then null will be returned. - - - - - - Add an entry to the MDC - - The key to store the value under. - The value to store. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Puts a context value (the parameter) as identified - with the parameter into the current thread's - context map. - - - If a value is already defined for the - specified then the value will be replaced. If the - is specified as null then the key value mapping will be removed. - - - - - - Removes the key value mapping for the key specified. - - The key to remove. - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove the specified entry from this thread's MDC - - - - - - Clear all entries in the MDC - - - - - The MDC is deprecated and has been replaced by the . - The current MDC implementation forwards to the ThreadContext.Properties. - - - - Remove all the entries from this thread's MDC - - - - - - Implementation of Nested Diagnostic Contexts. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - A Nested Diagnostic Context, or NDC in short, is an instrument - to distinguish interleaved log output from different sources. Log - output is typically interleaved when a server handles multiple - clients near-simultaneously. - - - Interleaved log output can still be meaningful if each log entry - from different contexts had a distinctive stamp. This is where NDCs - come into play. - - - Note that NDCs are managed on a per thread basis. The NDC class - is made up of static methods that operate on the context of the - calling thread. - - - How to push a message into the context - - using(NDC.Push("my context message")) - { - ... all log calls will have 'my context message' included ... - - } // at the end of the using block the message is automatically removed - - - - Nicko Cadell - Gert Driesen - - - - Initializes a new instance of the class. - - - Uses a private access modifier to prevent instantiation of this class. - - - - - Clears all the contextual information held on the current thread. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Clears the stack of NDC data held on the current thread. - - - - - - Creates a clone of the stack of context information. - - A clone of the context info for this thread. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The results of this method can be passed to the - method to allow child threads to inherit the context of their - parent thread. - - - - - - Inherits the contextual information from another thread. - - The context stack to inherit. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This thread will use the context information from the stack - supplied. This can be used to initialize child threads with - the same contextual information as their parent threads. These - contexts will NOT be shared. Any further contexts that - are pushed onto the stack will not be visible to the other. - Call to obtain a stack to pass to - this method. - - - - - - Removes the top context from the stack. - - - The message in the context that was removed from the top - of the stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Remove the top context from the stack, and return - it to the caller. If the stack is empty then an - empty string (not null) is returned. - - - - - - Pushes a new context message. - - The new context message. - - An that can be used to clean up - the context stack. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Pushes a new context onto the context stack. An - is returned that can be used to clean up the context stack. This - can be easily combined with the using keyword to scope the - context. - - - Simple example of using the Push method with the using keyword. - - using(log4net.NDC.Push("NDC_Message")) - { - log.Warn("This should have an NDC message"); - } - - - - - - Removes the context information for this thread. It is - not required to call this method. - - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - This method is not implemented. - - - - - - Forces the stack depth to be at most . - - The maximum depth of the stack - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - Forces the stack depth to be at most . - This may truncate the head of the stack. This only affects the - stack in the current thread. Also it does not prevent it from - growing, it only sets the maximum depth at the time of the - call. This can be used to return to a known context depth. - - - - - - Gets the current context depth. - - The current context depth. - - - - The NDC is deprecated and has been replaced by the . - The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. - - - - The number of context values pushed onto the context stack. - - - Used to record the current depth of the context. This can then - be restored using the method. - - - - - - - The log4net Thread Context. - - - - The ThreadContext provides a location for thread specific debugging - information to be stored. - The ThreadContext properties override any - properties with the same name. - - - The thread context has a properties map and a stack. - The properties and stack can - be included in the output of log messages. The - supports selecting and outputting these properties. - - - The Thread Context provides a diagnostic context for the current thread. - This is an instrument for distinguishing interleaved log - output from different sources. Log output is typically interleaved - when a server handles multiple clients near-simultaneously. - - - The Thread Context is managed on a per thread basis. - - - Example of using the thread context properties to store a username. - - ThreadContext.Properties["user"] = userName; - log.Info("This log message has a ThreadContext Property called 'user'"); - - - Example of how to push a message into the context stack - - using(ThreadContext.Stacks["NDC"].Push("my context message")) - { - log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); - - } // at the end of the using block the message is automatically popped - - - - Nicko Cadell - - - - Private Constructor. - - - - Uses a private access modifier to prevent instantiation of this class. - - - - - - The thread context properties instance - - - - - The thread context stacks instance - - - - - The thread properties map - - - The thread properties map - - - - The ThreadContext properties override any - properties with the same name. - - - - - - The thread stacks - - - stack map - - - - The thread local stacks. - - - - - diff --git a/lib/net/nunit.framework.dll b/lib/net/nunit.framework.dll deleted file mode 100644 index 215767d2fb38837c02dffec220b3ce69b4859260..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147456 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