From 9eda4faabcb6ab3fa8af0c206adbcec7d16f8893 Mon Sep 17 00:00:00 2001 From: Fernando Garcia Date: Fri, 31 Jul 2020 21:41:53 +0200 Subject: [PATCH] Adds descriptive code help. Minor changes --- CHANGELOG.md | 30 + README.txt | 17 + assets/helpimg.png | Bin 0 -> 228829 bytes nuget/BuildNuGet.bat | 2 +- ...EEDID.1.0.3.nuspec => iEEDID.1.0.4.nuspec} | 2 +- .../EEDID.cs | 12 +- .../EEDID/Blocks/CEA/CeaBlock.cs | 8 +- .../Blocks/CEA/CeaSectionsInformation.cs | 2 +- .../Blocks/CEA/Sections/ChecksumCeaSection.cs | 4 +- .../Sections/DataBlockCollectionCeaSection.cs | 8 +- .../Sections/DetailedTimmingsCeaSection.cs | 4 +- .../CEA/Sections/Helpers/CeaDataBlock.cs | 2 +- .../CEA/Sections/Helpers/KnownExtendedTag.cs | 12 +- .../Helpers/KnownShortDataBlockTag.cs | 4 +- .../CEA/Sections/InformationCeaSection.cs | 4 +- .../CEA/Sections/MonitorSupportCeaSection.cs | 4 +- .../DataBlocks/AudioDataBlock.cs | 2 +- .../DataBlocks/ColorimetryDataBlock.cs | 2 +- .../DataBlocks/KnownAudioFormatCode.cs | 2 +- .../DataBlocks/ReservedDataBlock.cs | 2 +- .../DataBlocks/SpeakerDataBlock.cs | 2 +- .../DataBlocks/VideoCapabilityDataBlock.cs | 2 +- .../DataBlocks/VideoDataBlock.cs | 2 +- .../ShortAudioDescriptorCeaSection.cs | 6 +- .../ShortExtendedTagDescriptorCeaSection.cs | 6 +- .../ShortReservedDescriptorCeaSection.cs | 6 +- .../ShortSpeakerDescriptorCeaSection.cs | 6 +- .../ShortVendorDescriptorCeaSection.cs | 6 +- .../ShortVideoDescriptorCeaSection.cs | 6 +- .../EEDID/Blocks/EDID/EdidBlock.cs | 8 +- .../EEDID/Blocks/EDID/EdidPropertyEnum.cs | 40 +- .../EDID/Sections/BasicDisplayEdidSection.cs | 6 +- .../EDID/Sections/CheckSumEdidSection.cs | 6 +- .../EDID/Sections/ColorCharacteristicInfo.cs | 6 +- .../ColorCharacteristicsEdidSection.cs | 6 +- .../EDID/Sections/DataBlocksEdidSection.cs | 6 +- .../AlphanumericDataStringDescriptor.cs | 6 +- .../Descriptors/CVT3ByteCodeDescriptor.cs | 6 +- .../ColorManagementDataDescriptor.cs | 6 +- .../Descriptors/ColorPointDataDescriptor.cs | 6 +- .../DetailedTimingModeDescriptor.cs | 7 +- .../DisplayProductNameDescriptor.cs | 6 +- .../DisplayProductSerialNumberDescriptor.cs | 6 +- .../DisplayRangeLimitsDescriptor.cs | 6 +- .../Descriptors/DummyDataDescriptor.cs | 6 +- .../EstablishedTimingsIIIDescriptor.cs | 6 +- .../ColorManagementDataDescriptorItem.cs | 4 +- .../Items/ColorPointDataDescriptorItem.cs | 6 +- .../Items/Cvt3ByteCodeDescriptorItem.cs | 6 +- .../StandardTimingIdentifierDescriptorItem.cs | 4 +- .../ManufacturerSpecifiedDataDescriptor.cs | 6 +- .../StandardTimingIdentifierDescriptor.cs | 6 +- .../Sections/EstablishedTimingsEdidSection.cs | 6 +- .../Sections/ExtensionBlocksEdidSection.cs | 6 +- .../Blocks/EDID/Sections/HeaderEdidSection.cs | 6 +- .../Sections/StandardTimingsEdidSection.cs | 6 +- .../Blocks/EDID/Sections/VendorEdidSection.cs | 6 +- .../EDID/Sections/VersionEdidSection.cs | 6 +- .../Collections/DataBlockCollection.cs | 20 +- .../EEDID/ComponentModel/DataBlock.cs | 4 +- .../Enumerations/KnownEdidSection.cs | 20 +- .../ComponentModel/MonitorResolutionInfo.cs | 10 +- .../Sections/CeaDataSectionCollection.cs | 2 +- .../Sections/DiDataSectionCollection.cs | 2 +- .../Sections/EdidDataSectionCollection.cs | 2 +- .../EEDID/EedidProperty.cs | 3672 ++++++++++++----- ...n.Core.Hardware.Specification.Eedid.csproj | 1 + .../Property/PropertyUnit.cs | 31 +- .../iTin.Core.Hardware.csproj | 2 + .../iTin.Core/ComponentModel/ByteReader.cs | 122 + .../iTin.Core/ComponentModel/Messages.cs | 35 +- .../Extensions/ByteArrayExtensions.cs | 2 +- .../iTin.Core/Extensions/StringExtensions.cs | 22 +- .../iTin.Core/Extensions/UInt16Extensions.cs | 128 + .../iTin.Core/iTin.Core/Helpers/WmiHelper.cs | 4 +- src/lib/iTin.Core/iTin.Core/iTin.Core.csproj | 4 +- .../iTin.Core/iTin.Core/iTin.Core.xml | 1627 -------- 77 files changed, 3153 insertions(+), 2929 deletions(-) create mode 100644 assets/helpimg.png rename nuget/{iEEDID.1.0.3.nuspec => iEEDID.1.0.4.nuspec} (97%) create mode 100644 src/lib/iTin.Core/iTin.Core/ComponentModel/ByteReader.cs create mode 100644 src/lib/iTin.Core/iTin.Core/Extensions/UInt16Extensions.cs delete mode 100644 src/lib/iTin.Core/iTin.Core/iTin.Core/iTin.Core/iTin.Core.xml diff --git a/CHANGELOG.md b/CHANGELOG.md index 14664bb..fc854d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,32 @@ ο»Ώ# Changelog All notable changes to this project will be documented in this file. +## [1.0.4] - 2020-07-31 + +### Fixed + +- Fixed the bug reported by [@nk64](https://https://github.com/nk64), please see https://github.com/iAJTin/iEEDID/issues/1 for more information. + +### Changed + +- Minor changes. + +- Adds descriptive code help. I Tried to adds a help most descriptive for the properties keys. + + - The image below shows an example. + + ![Help.png][helpimg] + +- Library versions for this version + +|Library|Version|Description| +|:------|:------|:----------| +|iTin.Core| **1.0.2** | Common calls | +|iTin.Core.Interop| 1.0.0 | Interop calls | +|iTin.Core.Hardware| **1.0.1** | Hardware Interop Calls | +|iTin.Core.Hardware.Specification.Eedid|**1.0.4**| E-EDID Specification Implementation | + + ## [1.0.3] - 2019-09-02 ### Added @@ -68,7 +94,11 @@ All notable changes to this project will be documented in this file. ### Added - Create project and first commit +[1.0.4]: https://github.com/iAJTin/iEEDID/releases/tag/v1.0.4 [1.0.3]: https://github.com/iAJTin/iEEDID/releases/tag/v1.0.3 [1.0.2]: https://github.com/iAJTin/iEEDID/releases/tag/v1.0.2 [1.0.1]: https://github.com/iAJTin/iEEDID/releases/tag/v1.0.1 [1.0.0]: https://github.com/iAJTin/iEEDID/releases/tag/v1.0.0 + +[helpimg]: ./assets/helpimg.png "help" + diff --git a/README.txt b/README.txt index 94aa5e2..9d32579 100644 --- a/README.txt +++ b/README.txt @@ -4,6 +4,23 @@ What is iEEDID? iEEDID is a lightweight implementation that allows us to obtain the the EEDID information. +Library versions +================ + +Library versions for current iEEDID version (1.0.4) + +•———————————————————————————————————————————————————————————————————————————————————————————• +| Library Version Description | +•———————————————————————————————————————————————————————————————————————————————————————————• +|iTin.Core 1.0.2 Common calls | +•———————————————————————————————————————————————————————————————————————————————————————————• +|iTin.Core.Interop 1.0.0 Interop calls | +•———————————————————————————————————————————————————————————————————————————————————————————• +|iTin.Core.Hardware 1.0.1 Hardware Interop Calls | +•———————————————————————————————————————————————————————————————————————————————————————————• +|iTin.Core.Hardware.Specification.Eedid 1.0.4 E-EDID Specification Implementation | +•———————————————————————————————————————————————————————————————————————————————————————————• + Install via NuGet ================= diff --git a/assets/helpimg.png b/assets/helpimg.png new file mode 100644 index 0000000000000000000000000000000000000000..4f1c6b4808b8de606397ae5eb9ebd21c71bc2f2e GIT binary patch literal 228829 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

CwV_!hNYk`1d#alM{AOrW?HkiU#r)e%OMi@ zeu}DH0FJdqTE#t$XAPorr2w!#Qj^yal_B{8=|pk%ll=gr<;Iyi4p?B&h<|ZMd3A{@`Df1e`tk21{h#Q8x`|0S%MR$pk&tYHG4T&QlMjbp_Kb{_gvH&cM2P5}XVO38@%NF=_&u7WeSNN9f}pr_B{U3Qh&e6%j)}0Mf~v$AKpCh0|R(Zu_>ew zM`0tl1uSyG5JVqE#x`M(*A|G1M=wFfAHLA!$ZIT2e0;-f#Kpi6wA z{U^?X;quM4oOhmngAE!s_B4XC;2%NwuORLWam@NxpYz?D7k@mx-)}ZNf0GDNgsf37 z=;XH*{47ju(6wD2p_$&*r&oTlu}AA?xxEQAo`K)7OurkU!=2zq`m?{6jKR?!K9eTNT^hqkB2(2A!h7F1jzo^#x+n z{ni|yf1}U$Jmjl;--q4i5=+R}>`uWhglk84l~EgF)97)$EPn0<4Tf%kXc!sg{sAe; zyNg3)npF$DZ|fy91=V2C_$%74-&wsXj0F5EeZOcv!p&}7F22|}=Sea^RJ=Q_^yhcm6|DlYDUjEGbsvQZtR({nGytbj)fYL6DmCnu->VHAu7#@4&viVGA-$oX@4 z5-{r{KYsl9W_)-J5gTzw3YW9DFzLR=cSYrsz?A!(^&&Ktp8UJ|FCJH068fd@Imyg# z-Uvzug0&vRhS~Cz&Lrr+uYr>PaI3SC1R~Hh&1N=HiaC5xk|KDT!JH(PTL1mllUQ)V zKY>gzzM4FG3w>=SALAAm6h4RfwE5dhMe2w$frL@mA_}O2ZHM#ejVY5|NkD++K7}-W}>2{l`=WCN0eBi zVPH%mzTIyUq02`{0QUdvTWSHouk;&{bF3muXCkNLJW@?myPQW`m2{4`>= z_3f~EsUA3k;>CCxb8j<}xFMwo*PDf}zuUj4S%!Q|PsCYVb&Xl@)-qY69fVZdSVY|j z`z!=VnP}wtNTWvt#G?>#d3Me@cT|QcHiX}r4Kc3HFCCQZ2d)bmn(K~9q?o`4@>d%9Yt1s>(OT@?mvt|0;tuju z*Asn5@22N>cc||VXZM$i+c%6fPwH}(KDAh$>o9hG!Mj`q%N6BX46IcxUC?k49YOrN z*fj#es=liL;gF^1(=oI9qZR_g#Q!F+TcB7Z7aP{G4xgqmq$D2m8?c_6b z;h7d6Yir>?-f%UpMiq1$HTj7`&2NomM1tM**wr~@g_)?hvEm20+15%B_}L9qj=_h4q+^+jYL^|m*QX450Qx0*@JYP1sNSn)c&M!3Yk0!{xcQ_Ds zp(A$2ddkf#rO=YM89r`=H^}QS=Z{@ze$@wGeBxF)@>Q(;J1p})tP?@L96SD1dv$t0 zWfjOZtRPRF19R?Fs0Ld`uE9(T3tfuvHJ?(7R>D{yTqUo4u8Ma7qbGp2JinmLE0@3v zSQYgk@Wg%E<=FOu?jkcl^qKmGYz?Ot97|3=IMrr8W{K*LN3)KJSep}AO!`&@^v?@W zHJYgUFMtMIdYwTF%qjY1EG@qA50f5C<+rW1j_lb>;O0E_=NvgXImBp;j*L{Jy#5i1 zM~{QBI%L1DmMG--_?DeVDi2leMn^_NfS}ofkg^g6d69GW>|)LTiWh_7OB5G8r~hK& zhWM0K>*f3V)+X?yVy|8$$506RAc+H}%6c3vxGChNhDQ7c?c7K2FYQ<$p3;=khd)pC zDs=IpLmBCgT`unsei6EWWT<6N^~IG*AJXm(d7I~rIm8)y5(Q*;k7D3EqpJ`;28gb1 z(rfuWS5UEDk%O+y6tJQ3hW68yGWN>~0ZGIa^cFvFQCtn+4%CNm#4BnCZz%y~g%+Ex zXZ3gagD2gD^UhCJ|Ek}ln^aw-aU=yc;0x*>cf z6nvCV@-@zQs$yPQA##w_nw<6;UpQqh#E2Fl|0a6TM3d~vPc$^K40?o@~2>2Oc#>8cDES*yLmb+iii~AkN+P5Xr)EHb) zr)h8^+YjFEp{LX5&c(^vRk}^sJPWitkRQ}_jGs=+Z8alWF8s-LGZ!Po?fRnIAZ;!$ z-Y`6x;-YJ1Z7ij6hrE;jneUyFXgyN!oF1eC!t9Xo>r_qg*=QJw1md;DDRk!d?Y*F1 zjO4H+kbRw9rQn|h2;RR#)(8HMZTv}2-c2$UY8ZejfpMm!fo zWc}V|+XR&$!eBs{bu!8&#$M3QN@!p740)jNaMU*`Q4nrUdt7sG-7XXEX%>e)s|@{Y zXPH!j>&Tp9lQ$6+XpHOfeLn%jgZ(}@NQ1YSGDmSHp3zxHt!SUs$}PH+Em-QRc5tX? z<^z@k^L#@HA0jgLFq)j+PFnMK-Qe*5A%gqb-_#u`?)K@2q3;w|1>PjEDxHHu9wl(N8;cxX;Pw12~PB{`&QHJon|vPTWg0M+5Yg&@*=u z+V0c_+5J8eL?1+a*d;&qKvqXB|G{V$TH?j^Dy3oR91e6^Bz^_6mV#-7jXLI9eXz9g zQBlkepexunP`H5IcD)0AtQ_nz!~sh6BRvwis#18P8NyNCsBcQ1DJ{cLKL?pw8+b}hJ=b6441C;Y4E{;(>OoIs+lg$su;i054Ii4B+7O?PbiWNVG6%b4nfj#=pi~7 z+_kkYP`L6s^qX&*#>XVuBebtZek#oXZKKp)fyXV4PH(eR{*33|Q~ z3YoERa;|$EXafqRe<#^9<9Waz3r&*PjJk4?)|d5oA;~A_qaW!ps!F<+#RnR775V8A zA|krfMQx);J+p4Uz@`WU^+0h2Wa(bueJ z@W#kI+RjWz#KgGei?(`$a$4gBxq_{`%6(QHL1584w7?Rv3rPGA@{MMn27jPlpL4Hh zeSjHl3TA0+cY4dmaP8&cNci$|`L$3vfWQUirL}!hP|P+ZpJ_{J^;T{!3or>f5U|g> zo_tcopN`Hk9V?Zl86q6GA9{12&aZuqUvyrt9a=9oAlCl<#p{bOG-WnQy3d&b#8*K( zS@*jkodab1S04HKwM8X2*XObZH3m%4e1V*?+2h2x@A`&vQ&&G(@AFOcVzTQswK=~r zF0~esIdKIHw%v%-ohT{pCiM&K8+?AooD_(@7o5nwHm?$?c##a)W$n5SlYt)nmc z^)N9(0k(@Irgs<*u;dD@y~~}(*w(z`WfNO=jMo`3i>t^3Tq?^^=c(^m*`&PI#&Z&Z zRq@%;7p%xvpwsDMUqL=KIEw|7=bWN&xwnhBH)|s7MHC^0#=#%UP?qaVC`vqHdWx^U z=u0Ad-c$x=R|3CI`~p}uxyrY3dgeYW&Q^l@9DIOP7D;hm%J0qe*jE@?hE<*bSUC{S z<@>$fE*UcE>f#rESyF;3;Yk*)Q|=}&?tZ*7(E*;mx6&iEPy#M{36BzM*}Gag0;@WS zbZYK@K1+RHhL$22kP>SW3>PvYH4&X3D{L)mYHz{n=ZJ{PGO?TJuBu`^O3q!NureK2 zBK94jylk)!Z+e+BY4VHg`f7Sxe?(hg8t@{=c++UP(fmAY7arkG&BXRHIEhZJ!_<9a z2`?gQP@+&(xM-C`+N3+?B@?s=S_&XGzxcur|JLT^uD_R*=AvTx zu#f&1?A-3w!MEpgn5+c6(&)FKBQ))igXbxf<4o>RHaUB%AX_RG16_?6_;-r;Jhb~i zQxb}gw@hmIgWtsXmSaX`O3*ZQO_Ic?B-J>V7$(Hci3u7S(9p zbKMyq?tlx?I|{skBO@+9xnzI+b>$!G!tAjZGv=8w@(Vy98c;0gB!XJ5y~BKY(DMc1 z(jvNm84u>pmOVHmhI-+s=VP0~#O;&YSJ@jRta_-hbsIAYY#7{&D7dpZRqZ3QCME|m zpG;I0?TppLronCn-d%!zWazvUWU`Z2*Jy7seSL%cE{$gk8`#+Jw#XLo5CZoGMHvn* z{F;hLPPq|8#*xy@3Iau&8^6rtLh+Zkw8!$?7x+}OCBM9Z6>Io8%7c1cKmj{A%3~Xo zDOEE#ngij_F!RhVLPvBkH2By;W$U7MM!DmqnU|a;1J|3c5jTs?A?O3QBdb=YJgK7$ zQTWmpt|J=AEW<(F-*M{MZ82kt7^}I?l~ka8)mEG4 zQ#=k|Idu|EOwf(Cbl;e)P7yWFIq_@vnnj}j?1Fy+eEHp9ZmwKJrhIS-Tb!?u1H_)< zV`F+~-V9;yPE|%Dob&b&x{-RJJleBoV+g6>*B3fmV&W3^4Kbn-!+vK20|PbKX|Us_ zo+u>(t{!ngF;F`={i|l`ptW9xZ-&`g^r7-nPWo?B^~5R0Cx_wl2$*TdHtT_+YKD9n zp|d3*0?|_)zTljCZCw8~*PYuyBB$05Uv{;M85FnNB9u+Q31&)XC9=_Cj(<(HnZawU zC4j@jIZGkJx?*av(z2Nu+wrByn8R)5wyt{lLqA~l*#;Tl6$bf{6DClrQd6dK-22Ua z#8jsU8}2QD37Gj8?@1o!eT4t)i_@e67vlQwdVh^AtgT~jn?8V^#@h~>t_wjTHsvEd?X9i4Q-e= zuS;ctH-6m>a)~L33YwM7*WtlQYLJw>0lQt?AsyG;q@#X&?YR^{)=Dj!coG4r+^2bB zzbfrj=a~L+CrmiAT|l<-RqNh)Kf~tMQ?ahcv*Wc!R=R-KVX3XlJhsOy+tm{2?oQtV5$6>0YO+dCuh?L6BNDOM4dWJO^kb8~%41pOxGAK3_+#q#4Py5dok`iNPW(h%8hN`L{<(o`>fT(ISyJ`yLO*_@ zU5FPLToPySSc{bv16~Xs#;a7K`ABI#nKbAxe>}GT+;8zS5E4#(H_+wf@x!A*%ezVy zQnCkr3o`2cu`1q7UytTclKh%|WxK_e!K4GorFni%h;MdrD^St(oV z&gXE?yRgpJYu!gNPNnVXcw}HrE(x}e1D=-# z`MI+Dak?8zIFpqbVgXx-y3+sq%A4=|TFjncfvB}usUYP4Lsm{mM)OwAYDK{tN&WuQ zxDu+xqe9*E;=)XRUh8`o{+teTr5_912g&tkJTZDA?KOo+vtbua1q-dPT{^N8RZW$8 z36ol($3Qh4qs*o{JI{19*-gToGDw2eX{iGLx4W0ROmEAZb?a$u@KHu+O?tcLZ~&TC zkmqciG@2jp{AN+sEzXA&uj#otnnn5Rs;;?sNYhyZ5+yv8OuI97-oJ_l+BVD z_^NFB>gKo$r$HJsj&P@CGXn7$^EF&JwvL#Uc@4>zPVGC^u<`ePqodekVk6xVed*Zw z1E-9NdpihNa_nLbmVeiS&PnkI3tK`df^ZMJwF^552*B3T2$%n6f%7ef{32r9nc0`N&E8iMuMKYY)U#!PG59wEoi4Ny-tIJ>tFfnTfMagPO@YFKyXSG{bV_ zT!X3->#`ojijuwnZ6O?mAaQj8gCH7dlm?dfrs&TaN=*ZK|(| za|BXcZ;?rL?8G9iHY{~|TyqX;3_#1pxjm~*%|-4u+t*iU{U6=_x(+d0j|J$9HrkA>#@DpxO>UF=R079%{v zaeGf+Uboj7Qmgm%SMbmN;XlOtF{Kc36-rg%3akJd6JwJXff$#vO%yz11e_Q2ZAD-f zDv+1}AU2c9?|I(97J9j~>O}IxZsJq-Kw^1X4OfSJ3W^%f zJLDnmRbmQ=x3P(QrWHLL{Ms4g5CSMJ{@{g^F;G>xl)d$F&fynMJ?jym!7R6yq)lmy zw!f>hdmKJjK&*e+EQ#scFXJf59=|qDq%MFXz3TCGI&;sNV_1MSdY9*Ui56p*!MD&v zDPm}ca^lHN97{-C%%hz-`zwdklvl~vmEV^y(Cep8jB(bMvaaHR7kfJ`9a`>5YMqG( zl}j6#b)#G85RdY(d;@X|3MruroeJ02{ax+bUpmc+qJr=!w0m;Um*B)b!f}H%>Thf& zlWNRXHQO&_^)G`YFhh$z+`Kd~Jq@Y{+I&;BXj^jVJ-RV0WP?A`qFe}D__+__6Vogu zD^R?$_T%PKH=-HjtG+u>)8F&LmNGb-^;ckCqI+?NI&|L3S?smM&Mq9;@~ie1(M0QU zg7{D-NKHdP>ISP9;2f56fUws<=sAU9>__NiR;Bff{av>eTWeScd{2F)W?ZNI(a5YY zeQmZDpXWCj1cxT;U-TH+RB>a?;+A7Mj6VWsGKD0{VyzBllc3$DqlA6+pOs)^1%eYc z+U;$G+$@EhD?_h-LFsGW+_%mVimLi|#hl;9n;P(b>_bGM=ucN_WEuxziU?0O&D?=j z0$pq0@7fkO4=)bzUq5 zsLpWWBCYgki0|FLz`pm#gTZF7iso1QF!sx05zBNc%Iwd|;-1TR8(SVf6OZytcu_dx zm3Jb(U*x_br1Cml2q;Mo9j&>dWG-@>{CuCBV;qKz?JE68FmxUNk7*}4<;d>AM6CA~ z?+Jc$7m9)H?#R6CDSbMUm0AL^mzC&km=Aslw%L2B^4^rESpu%F)ipFYoR;7EW2((b z@eGqpOnq?sa{EXgVIh&Wu*F;XrEqm-E_u6lFYjhPbU(a`b#6Iv)8dSP6nAEyz57dJ z<9;5~HiA|i;4thB3oYkZuMXFbt`*B^X=BbQrJ5u34QwZwtxA|`ApzRp{1_kOT4<`~ zi+3k;l$TZvtS6zKTpORJBXkooS;YDA*AD1znWJKMEjE>-)0gAC1&x!Jw1&vi?r{f& zQJGm!?Sz-txGIL@EA`Cph#bnO5~f@$oPx`78aDIj>~J-nZZK+PO^iYYw7TjiT|Mdg zi2Lr_eHz@YS>Kzh1Bz7kKC9EnvA^hg&c(h@#RBrw)DA>W>TdHEVbFwqDm!<0 z7FXJsEPB?U!J@P-RE>Z4V}%=>j8^IB04<^H$N25;H@M+6oTOJ&o6HfaR>`vUAxjd5 z-DtX2j;W^EftAz5m=+KIN)8nkZg|)kuZzC*w;3dzhwHpxlCJNc6#5Ky*MH@L*Pp{2 zlzQvY8%)r!Hg|c;Ie&TSK0n<^zUZ)hw=j9Y`{Hu7!9*CDRC;6R)*#>i6F)nypy3gk z3F#i#KT>96UITjPn_F@bhcXlr%Hf{r;Y11~{YTXT#X2vL92+pSj6jy5qGUO}2|>UiNsj z8b~hgF0`gA#WVWXaQ#<=(M{a!kQe++D76H*Q)S=oO_{g5-R%FDS7XW^|No6V5I+qB z&cjhsU1WoB>Z^3|-zoJDqG!RZ!H>4jp6Es)Z5#LLvHeVy$kB7(9;K3!l|^hi{?3`E z1H#@JGiZ{Up`LXkgd%b(m2c{8acl>Z(#>vXghsb0BJJY zu+)3bg_L7d+`0WtpLP%xQju}H{U|_TM5Cz_H2qz%7Lqo$2Vkymh>Vpf7`maf_1X%;6E2KWs!xB{UPMp9 zYK?wYzxOHrP`NFygqEj2(_|?Qf}Y#Ar4oNpI*_BDO_2uIu{>)S3i1uerj(jb>bGea zseh;b*ezh|al872fHE?#P6cHI7DB0i7f^ZpE9rF#EV>c;bg`_8y+y5*?k4gySpweK z%=HA$9)%`Rbm%vXdpg8Wx?{laXa4#oO~Uze>jH^CiOSh{0?*_ zG$<4DQFvY!Jf_m%WbMx;@yRyV4HY$;wTGZ6D#ONI?)-L|QY$!HE5A-YgZi*j2S!;|+g8~sZs+Oe z#-z?CmRVSq=|Rm;nw^pH@#lnrdb)?#1z70(Pb8%^y*keltNBF>suDG5SE1^8$}@M( zOSdpSBd(?t=Tj|~^foja6|a%a-wHpBtJtD2&r(wp9|0r5t!aD6dF~eQkVD93;zhE)D}&pLBg*Is-ok= zdHc9F<=@rD$l$V8LxcKLw2%H?v_9ss!sb#PLksRaCEwqw;6&pHUoW&_c>i&s1u5OJ zM9x?O5r36{l5OwPZaIuJp|>VT6lHK63WwwBPULeQ4w-Gk4lZMBSk#T7m+3Y7jJHd1 zCvruARl|KuM1)JG_LwVvT!y|?v^I2hb~AgsOHou1CA*sfcvJ+^?JG`c)jY!&2f5Q^ zeuL3-*f3xD|0P-1&>{Q>JFp?5jktM3_l+BZ3W4_i6Mnyo>iejV6E#Y4(--uI)6+Im zKPT>t5%WSGTu_cF*n^TXgk|vE!X3;1VBGkqw9g6@2j!(f{|9Bny&+xtN4zXa2XXVK zQeIwOooL?A-S?)3`F{NR-xcD2to*;p*HWe7|VyVehPkBCJA0kwad zj`H$nz2?+Y?mf#zU=V*J5SSq1=8CiiNnUeaaJ=>+_;8oaXV|&H@?yA+OnHR zv%P&FoQxq3IlbSVcyOyrpgs3?7}ygSw2k{-+C(+6%(P8haL0W6P1;IY^JlPa$~0~1 zi@65&Vo`QTfgq{1N}ZJQ{O2ZLJxSLVBUbK8r*a`J2SC`SY8*fj?XWB`x--SaphFw1 zCTSR+pgOPCRM5%mTEAQXrEn8Qup%d!+>-}#cl(_T2V2G3h}t-@u7BlP5iE??(4hfo z0H%!D?Z(-b@t2IeJ+p7S(1-vd)wYO#y5qkb5hMUjF?(M~nja1|E>O^{6VyP$hm`W$ z65-d`Ia}d}ouYHmmxf6Nt5y?rLU}oDPoYBAkCW#=Ad@YCX8RQv;y0nQTop90!w4o# zoayAmiTRtGL>n=U(G|faC-!k`6pMJd-0b-P*wM3>XBb$Hq@k=w3vn)b7;RCXEHc}O zR)88)2X}2QbgfZEfrw0BdLQKV;M^7CH%KYTw;<`-ow~nMd?_uY7eggQj^t`_ z8vP^Fq~Ep!--M|A`^a~zd!Pk=Atv;ke65IoIsaJy%lSu7X{5)uN~)?Rrc}s7bP?k1 zdZ(6sZ%`J_r`==UZ>9%Z{p3b4h)q5rdxZt9$q4qXxxKj3e8b}n!fL1VB=|c>sU2|) zesROVDb(p8Bty?A_WZ%FW>~;-*S$*r9i?voHVh-g*UwKZ39omi>@h!xdn9Iq>H&#4<1hf_6175HZ{owNS?Bn7w1kH|Y zkS!QKw;KI0ffvi;yu+@1D; zGXXui0MEb}085I3=loZ3_ttFNuN*Ia~&uFiP|N*oh%5W4&uNv%gL`?#|YmynN$1 zrhKwI*r2LKq^|?upY%f~76e+}3}-@IIqgB@(=F~fUE(iYwTzbBfl?D*(>1862Sv{Q z&&qif>?+qHaz~CqAE;sG z){sG-g>T30*0()&xwNt3`c7W^(-cqKDL?$UU3g*&TBO6m6%#3eyQ{H_a6k)y;s&HN zHT~#ZY$hxgz^hsAM0(4ogV)d&I6?xf`E^p~Y|?Sd!8a?g*e)W3;EFE0Gu96BM^46J zt_j>7O=dYU9QpdNyb3^!bJ58~4XP)Ehq5@E!}0{yCu-Ov`|s0)l=8?riUqpu&pKim z4?s{=?Ur`?Z^)x6R5)6v)V}n46CyNY`!Pyw+N9TSXKzfZ+P@zsmh-Vs)kLFGzrhdp z6u;MbGd!Uf=f#W92;pl_;X0f&ELu2-^D7M zMq2{cC?~cgA%`vsKQ$s^7sGg6^H|J85EYRjMFW<%il@?d|Jl z`lH=d07HJsCb&p;+%8>Q^9;QXlG6?vHD?8`aBA-BH9W_*XWk!UNx!ylq4QCxWPX2M zLRfM4@|LgDz**lQ71h3NGojcC#dYca`9f#(SSk;7Qp;wKis9DE5LNrR)<{zb-^Gz& zlO@OI7zZM9=;tdDuLuP48tYvKUf6D$whf&7k3Kb6C=coreYnsI!1*=hBE(7AWGZ6$ z1DM{kIYhWlB1D3ylasV^QE2tW=~)<>)yVb9n=cX)&aw+bFzgRDSGCcs>x|9T&)A!D zpIVH_0D4cjs{o|0{l$mei^p3MXZzL8|i9rrnfpS_1mk9~HMrxq1^sNf!T4h(=i`$Ca(Xf(Ezdck zp!C&;>sk#+%LArGCotyxzeIcA*Y6P~V`f9_gQt-+oHwu3?nukA6&1$5l&EQ5U+!A; zX1eOpF@0$DhGQ>W3236>u(}wEt$qZ*OrW1 zBN7nXww$U2Hu)yeH`YLalb^YKs{Z<%v6_8-WOYzMv=kdY;4RunGuT+7#VOqfdUwl_ z_D-GdjF_xyf3KEw3d8mU<@MqD@hkzDyGt+MZhCHWfj_0g6<&)>4XQ8*8A@h~E7=MR*!seD0+AE2)6f3cjl_=fR5w#O}ztOv*NcBfQ=mF9e!D zw}{zyi}FoRr*Q!a{P;L9b(s67#g~3_psYdTzNsPL%a4nvc$(lm(}7o#@R%PPPm|V2O!5ZA$X4MKx2` z;(*~*-opPvNB{~_xpH+NP z)q65xlYP4#zZ+(qpFz0;c#XYWC`P2)9j&1OZrYSd-7M{VKS&}pnY}xY3-rA;H2Z`T zcgX_HKU!`i7C%F%-ImGI>VJc*O|0v~TAYQW0coz35#D7r9O^r|fI9yb>mzZoUI0eUB^s)DH6xu}Th4sk^pEzY@Z zJeIl+%Vf&dXQ<7jyJM8=Q)92F2YyNyDPimmF}s~=sJ}2K0-%sB?QO?6MfziI6NeQw zf8GdhFL|ZQiK7+019G=NK1HCdIdgE&RDw;nFH zX{(Kp%BB1?~9l0lX?l$*AhlUp!tqE^_$^1m?RFiL!DgA0b4eW0+b1od6vvM=TwI$MNVz~Oa` z?f_1wPlU@cv3(i-H}csn1f6KfGWBHzVec>d+5)`bMlC2%#UsSNWI6NF<)WR_4ivz` z&or06WM(bECVhsmMtS-Of@ON}%zhy!)Zk1$>B&N)8wi8PTma_CY9%P@Dz21V(td3> z2j&(LbbiF_QBYz(SDZdqqM*(n<{yws`T=)xJON8(qeZSv- z=FNnFaABKS(z~0Uldtl$!Q+(;h-FN@pXTTdA8bb?Nlj?|~#uK&%uG*yBm zZ)1N%$J&X_)MZ-3Z58bo5ODS4{2L8Sr;!Y3INcN&nCf5IcFsN`@OWl?`aIcm89`B&Gb@IH%ZYU0C(aR|YnK;bw_L ziD;)`e1pS%0$Z`vN?{H3j41-0<4x-$nTx|nzL&@G`AJ2ywZ31o9t&E@Q*L20Nl^q_Dzcw`8Fus1+KrUj_SA? z&0IY$QQfA*@^^Wq8`KS=uVOg$Jq+T&Q>$}BB}qFa7Ys&PTfJ87Y>h;zS*yB^vsGh< z^Y~Q?qVCV=+bjIi@y6%7jP=0t5+)la&kxE4%Cjv(%{qnc>ZH>1Y}~<5e&yMGP;U8r z<*Jhn)*qf$>>?U+O<)J;MZT)P$P4Y{llp#qtTx8BK$7OB{rXPX);p&l#+eWY8ENnp z%NiUc-8!I+F7@?ZSR}7@OL8fL*>+&&b^(O;vVK(W{M3&+FL~|Wb3>ln(OQJBQskCE zoNbVG2c)2088%yUVinWI9C)?M-R*-R z4hQ{A9Gl5AJiYfn8gdf4w)<=9o>@yeq#5h>VlAO1x-}Kd8~eVT3m@{`Z1B%w(E)x` z5$JfVd2jZUs$79E+_AtqZGFM;JHNqrvKU@L+yk66!Vs%k5B z!1rnmVJU@&!wX~729FEqb?dp|?W z{y9jCuR@B>THl9&fp(#C&N)ifepwoxU@GAAZ+T_qCEPm|3D*8Gs?4fUZ!D7Es0oZ2 zui#x-T4LM}ozXD{mw}Ux?(i(XDz`*VQ7=G2ZTp+Nv_7jQWcXX!;sVNQYMilaN)z@X zCli^bXu>r_!6qQ{=<73XZ{*yw#zt0l%0>Lget({s$w`v!{H8&GCJ&PS*pOs% zMf)aC6Qbdu#T+Ad7Ob{D_Yxy?@HqSO&R@7!njn9u5SshMNcJD02xr`%gvP7$|3hdL z!*pPuc{0p=qTjyljOn4qkeOwpqkAZA97RxmzdfuPF6OU?PuwBklogAC#m_REL-G5T z&qgDea@i}Col3PCro=b}UbHERBgs9NfT)gLoC~hLi2am9n1%-y%{5LxK}#*{{`j}m z3XC8-kV8`~m?>jz@BY*0Hj;8HVCkDH8&e$|R-O+5&luTCFP34DxMk|hs*C#U{*0wS;*N}!|=HEs0j>)JmCVNWzF5Pq=K6D~^ zWmm^##n|2OU>2P+)X2bxRGmkDb5@uF9o=*-Y*o%u>8KvJadO$YFiI&a$2z)LWF!ZaVnHZA^Cu{piqFRPvD+TeQso+gNXD{X}S4-5D zuHyt;(bkBpDW!1x?{ZUn4(3udK=ware($7jKR|K=Hd{fQS_38GHxJu_ z7!U^VUK$;ST`|4#^NeKf?qh9byPp@yO{T#dbJlHLQ!vO(Jg9`+i6T)}5qP#{4ccKv zz)TEf>LWAjXiSGWXC(R^p2%|P80Lac3g}OU&&X|-l{K-At_G|+-2HBPucX(e%}i_8 zJ7GRPyI={>z(7~y)KM*2>(fE9$#>Du0A~Z=Lx+J`8K&SR=D4*p@ z=LKbv$wr-=jxgc#eV+~v{eb447Z)+PA}?}hFBl~fwP@;7PL7nS<3RZS@Vt(j1n&`e zf5P8vOIjw2Wosn@STEPrpDRCuwbTbs|3akl2^zisI343O>Tgl>Gn&Lk=LhNNSFgS& zMYKNq#i-`xJ^r`?qvG?!u^3@H*u}r49R&Nv_P}@;sVev$z zU)xJn^ow>0EjVvK4rK}8A&vSs>K4WVWMy@m$bF&{qeGto8qj-G!z%rD#(`BYwO?JRnUVib`b{SiRILUIBmo1nZ&d(59sd8OkTS<&y zSK>Rv2!9hqk&Ji6vNM|<^!+jSV*5gj;Zl87D92Ok|Ha#RhQqnG|2iv)=!EFeMRX#f zx9Ev3dL1RYA&4^S(mP4?9=*3PI->-M!4PFIYLpROF#61%tarWd%Da#K-}~G4!7=m2 z9LGG*G zV+i|6uTQetx)@9MN_}9nEjy>eLYr03m4-U;@@h+36bHV5nF5i5)m+@xbg2SL4u|L~ zQPyu%#Z{9f5~}=?iK+)ukr=O;!Wkz{&tg14yDa0e_hJ%XD9U`8)ou<%l=YNeVf)1o z*9X%NZGONObr2a3Nr$S)_0=K4&#Me7$K|VPS6>yl3?&+!xbmb-w(yi&O{x6q95f%5 z+8l}vS~6x2qC>vXRKP;s_|D&LVhSb+R6pjUIo91i!u{4|$Bm#r4}A~^Q8_y!!LH6C zt`V}3-SSBK=@lCc?fGsw&}?mc>&%TvM076#TlLfn^TjrteD`(u9{orIbubP_f-4e- zJ8YO`pWf9yfTPRU$aqg_Zeb@v^2<&XoV(<0v6sN%_2xM>i50z0;iWMO52)?Ij<$5`1 zz&w8$MDqR%8#wjSbLP;v#G9d^I>FISnIrA># zZ`uM}<8N19vmWKsNMBXXC}H^yn9ceK-kA#(r}@?S&w;00^^Z>lSU5qwYWTY3^a5Na z8#}H7E7tstL$e(deH5Dd0d}$^N~iOuX1BvaX=I_Jr(bwmuHZ<~E`uw_iT#MN+P%~1 zKW)^8+CVu1f-QIajc%ujD|G-C=&NvPyX^L5+>GDr!m$sU4Kwp+sVYS_SaXo*A zm~zt#(NL{lCHexR>o+r5(73ekvZN0v9}~0Aijn6p>ZoJOi|#x2&5E8wXySQy`n;L` zU-jLiF|!2*(o|2T?WYg)`I)XaLD%C@Zy;2!zeAyhMN5vrDON|f6VWUxwGRlF6O~ZN zquuZuea6~J*Y>#uTS_c{*0z_eT)yg&Q1gh3zF!7HD1AF;P0`35nXZxQIVx3QjZLTd z+#XEUXLb{iF|WGt(E556bi=>`i~qptXSHFr(}ut84cT7Db0xsqu9K21`a`4CemE0t z2wnrz{p*rA>~e49D!$V_c9sh-AGU)yL;2kU8{~5R-!D4 zBCXP}G>xT&KaB%-J&l=|Tsp#Y>x4b_?TYRH+B%atV*gyy z%ZQ!tYXurd>MuP9g#ImZ;KOch$*jhg^Po3aWCaHom+i?DZLIZRAeK^LwJ+lDe*ZA< zUlXmUuzY~6@H!WFi6$t7<-fEXg-!K;s~^4v!@m-82wLvn3dHvaC<}X}y{c2C7KwcEwJVCl}zc#k} z?M6xj&kZU4HIcmx|bolw{=dYc17jh@-4a3qx1TDe! zv@bjD=C*g;lBe5hBzJx2(Me-90p7%UkYPP<*5Ijn?j&v*;c0>a@wbM_-Q) z2|@I6S|x$R>ua)B&k=&NP3wj(8smoZ#rwFWK+3Dbeo;cti!6%^1_=5MmCgJ;!QIT4 ziTBq?P2corWQd}A9CxW8RmC~|^9sll@Q-Ae^4eYYfG)wT9bbC*RTs!b8)8R&p~x=pPTd>F6VPNcmUCW=EKGS_+`u0 zV>ohU@Dod#%@^o6-#@s~L@@EM+w`vhlXv&AC*pse^#}sWPzVIlz3%^7oNO{U@0UTz z6Lezo{?sz_UrLQnU9lwrzsggCeha_+6ZvM>{o8Yk563~fw>v37%7EnN*i|_P?y}qH zlJRa6$3Q+1xf$f%{Jj`^+ld-|b}w@~u{+gc~ zF!up?IZl)kU4%?(A3SpR$Ad)lTrBPo{~St+36T46`;E%Z@b)peS5*Os^3*ZyOM20v zvFy%GDgs+KCunJZFy1X8fxS|Ny<785h25x4W)8O=X9mW>PnY>D+vhE<9XZ7i>kUIf znkmJF2Nk}bqOJsKy=>gLvo1=$*K!TRzC3%O>4nC&O3M#K>Sc@fv2pcu0I#6 zS6ODlY&kz0yu3E6`Q}bix*SZOhn` z3gU?)!@Hmhuic2URCmr<@-PWKIQ(}GX+!G&6;YM~!3sQ&zlyA}TF!0!n*SNN^a5=v z5?zkoNE-I%(XwFk7Z0M&l>b$KIEc6xkf2w~E@OO6f~8PmqpCJW0vG_TcN0uB4{2C= z;XnRRbbXb$ir_EjzJ0e%v2u|i?sJf6g8agnhPL5ds7EHAkwM^Vo1zJSGBkdi^Ytwl3?X0xCESj@lbw>Rxq zD?zL|AI+KFJi3g!K;N(npVJ4ImC74z3Y~uTVeHQ?yuFprBpoS;yR+8l*ssHpu){-n z*nc=0^g`pbziiJVn50mW4mf)BU{o@~Yqa=L5gi zQROWb2M;Z2ciUtkN6%D4_#aH$+)sKqu{NO&_`PO~o!y4fKY|)I_$C_Ql=V&l9h>!& zHy+M*SyzqD|a}SHl z*Dt0^@6xNty#+3fxpxiwW*sgbVWT{ddiE|NmIKxqxv(^oCtmzCR!-;!JoaV^TmLRSU zrqR*2JMjRQnQ%$uuA4Mb4#Sm9P`nzZ!!!+Mb(%#p()Ef6=F>$hpBFJ+HO-K=95SUM z5-!xJyStrx{>=D73-O9l&@JPK&xjSnlUh}|KnmNm@{e<RTrROK-n{7+o zQXOr1a4+6KlUI3w{!4o%==6OoD*B%v9lzol1nDpfrRsKETh(7G$kq#1de-o^*ZZvT zQmZ2qRMF_BODIiq`zH}$bnxyQ)}_EBoX`)kf%f@fW9Df#tfK=jA*A2)^D zc9>~=G1n`iOnp+f_>0_}RAYuKA;WE6Y$1>d7>Rcygrw2^SZEt)VwPx#Qh-wd4__WX zo&S^oZO9%Q-4mS8Of+t)U9Nv497*3@3n{N3O%R~T$y5foI|^vrL_m3 zYagVqs7)8UNlqP&Fpkz9-ayKMd{Nwu`sk;(c;8ynEYU>eIlh(+2A# zSEF+i-E^nePxNtajOX}FgJN(|f0W<|w&OF#!~N3xVrGE^5Kf%`vazxZ>c0){*>;nt z(idYuf;+>Z-Z?{h^kK3Aw-1(e2KU^vT9BG1SE3F!1eHVM)~8~V=S?tJ#+o%uX8)<- zJ-6C0_xSxyvtPRq*>)mGc#~d|B(GmXdzX;(zPCT$qPzG#(zAG$QRmIgfZY)!QVgw# z^wl~mSn1?Y*WYv*%Fcv^3EWS8>Q79`qIxqM>e@e|6gbg0DwT5sd`cJax^B$m{vPJQ z>iP|U-RoueQ`z7zCZI;e$r+<(`%>oC!!2nG7|9}UXm}5@9a+My{+7R<2PTvGh6JR&% z3J6<;`(Wukg51Ogo7mOH@;%0|Jj3+j!o$U}{J=u5tGFum^vb-S(|S_IcQZ~|-$~JJ zA0MRTcgTOms13AffssEG^x~cIr62>xFx`sR+y)$K4#>^(I;Fr!12VSzk{%2nWL#>n z8(Gxm4Lo02doe8|&>kn*^-aD7xJdsIOm3nCSk(-0lvXF^2Ec_yv2dq_1(oM#Ri4g$Wn;i(X?GCLw7 zz4^a7xci&dRcgelmKNFV4J=R~q_UfHm&Ds_a{65n2cX_mC#%h_Ri_S5ple-WdioG| z`GKJREnzp_&GfNOhUX2CsS58=T=T~D9wo}cq{>?^80x1$ZrR3~T`I5(d$C)a0K zdgPdE>W7`UlV5yXG+Nx1#+_Ah1yQV;7bvU;cAYcPq|55!nRAFMe0WvRoYCZypoXJv zj8$jUnXm*H6?ZFNOoR8}vmKlG(BM1HSAHb#KQ(KRjW;nRxOVs+-%V`bB%sdQdZncw%bYnp#W9h`oHd6 z!8!z@)pf`>xaBKQDzB`}zh^{j2HEVtMDm}1Ib>v@p-cGF;ivy$oeEzS;Qklul+uW0 zofyLk++0=Vd!JGY@_s&U#*P?#U~w>A0)RXi++$3l=YU^yfAOWr>e08^K1qKJ$6+j2 zQbuQMFmhDvcXYrRKMx{wGur3y4E#%7&rA_Vsuf0bZB$(bMt3x^3{X%nYm6dBRxK!u<6a!0CQn2cJ~M?DYmwXT!X=1ue6DCV(^uK}SP@a_RfxICO#odsHDY zzerXt)e(MYNWg(d=y~`b=@99`Jv1(2^SLM4v2vixLyUkj@yUXWjP#O4lu1ox72k>| z&zVQgUMsoxfTg*$I}zio8DZJIdj;O_W(TQwqbG4oR;OYs9IRyTxx*Ir{49*S?2Jor zK)|z>l~rHxDWENg(c-9!yPox~k^h#feXGuk>xXAP=Twa(l1ch^uYwqknzP^8&y@c$ zjAm-b2hCI9D@|kTurXJHj$`gXbGoKq(<^;m)fdY?4(JR1Kw~!fOhotfh!-P&evdx} zdXaWGh&D%}o<5ew{DD0J1SQ3t9?TB%>{x&SLZk@&+JiM?pjWUfDHTi-Zz>os*J)?x zQ||@lqPMO-pKYDX?3}38Srv7iXI5{(LF7=qa0U<ddVp!i4<=_Y+3Q1i1;tP99pA4nMQAo3+&!p5%%h`+0Ob<#cnPBV1}vHJv}!qc!qE z2lowguIGKLNqq>P2fp27dPEY5tg9CYLidcpo)|>nU*x@^s^;s3aowDmJgVFYj%|*o z-of@pUIB(B$Zne*4S3F))wAF8DzB}Zo$F&K34)|IG@EPfdc7fWN z^rtG}VmAcdUg5kr#+tpet^(Hj5@%7x3(hUx^zoa+2b>iMn{T_rt1)=bo1aBU;do)p z7h2jOsD4WdJf=;&PnDEP`L$~efdPJ|5+SRJ+oz4tK?+x<+B$l; zVDP&nzv{N4Z{->NBGMhs2*J(1J40xoCm35kJf-7JkXRw=%u2zp2ubbtYwIG({O~S( zG3JBGg$}T!)19+>-%RfjdA(B$u;bLk`cxV2y*0#UQ?L6LJtH0(&P3u9Pnl$^l`^9u z79qPy-?)o^rf*1mRmS_Ruc)x^yY-}d!17(I%Z!s0ogkT%Fpm)xw2s1i*6WKY*ntCL z?);WT%_OI80)V9V?1#`Plmp18zZE3 zPo7b=aD=Fmkry(b;|+H!xrCwvT!9--o^(p}hY^{4Ag+~knW=oY9qZ?-AG0(YH(*}) z^Cn+`sJj7@{dB&kn^`Zx9X1n>_vjps*XHHX*i(ggrC03Q&FhAsQF^|MMbBM;-u-Fh zhhQQK7HP=7UDU;qZyxrZiD8;sDr-L? zw~lkUFo zdL0{^@4P!?$@=n-t*0NmKh-%q83|Pn&;&Gnz44xQ%1SomM1Y$?qKO+*p)b^!e-5MA zeNU0EH!{m(e@NXEL|5Dg#$V(#c~VWw)$py83UtGC*mXa|emrUvaKe7W1e+xMCAB_7 z4VXd}8lg!UTzJD~RKo1~Ci>~-NW;yqI>Z1)Xcu`Hc;|!priiJ@B0wzM+-a;)H!D^4 zrsIMOu3+|H!)Ie)DMGlUuOfqRVIs({q39 zYeiyUw92-)Y|FHiK8|xi@(VwUxsciZO9^WG!!;(AdP!!Ax7xRJZpZ%FQa@{ak{I`C0hq<0;SNHqDUHN&BNd(VbMA z%y5}hr@)7F#E-LsD+%0o=u&Dmw4zDMUZdFTA_sjYG2<;0+|W~!e${r*Ok zUQ6G~`Ow-yK9qGej(kC)Z(yClI&xF9c{U_2LpzpPjnZ8TWGrRYZr2TO73%Y%S6180 zT=j#!9b{z*3K3`hNB*%L1PN$gH0jZWYT0N9<0A@vp@fF-?reTiS=$OkLEyZBQaxby z_fxw|KOaT*QTvX-8u~J4QxtpBPS`h=>GF`sVF;Y9glys6TFS5KkznNQCPFLd+F88x4f~6?Wqe~=qD)smX z{3(G&dVd`LI+5%#C8b7VJKtY3T7Uh*4v}FUn$O>F?sbs>{{ik!kkVBtqrq0|N4K$I zUTpV}@RTz7YZh^?uPGxxtpo)Hx7lRH+`os@agNlfrf|i^mJ+nGI*7k{BdX^7hRm+| zZ}n2~Jx(T9H%EJZ)U-%bargQo`C@3Eb6Ldm)5ePDbvh(!y&Ex*HdoCa8u`4N)RU@7@AiZG+%EW7KfEHAYumPEm-A z=2;YlvzJ@xy$6f>^Cyula5=M~do5Art7>ZHdZbk%JMh7$QLJxv@H8s*`IhC3;*!j{ z>m}qn1>S-?Wm|2iI}vRe>@Hd6aNb7VE6kTU6F}FH%BlXH9Mro{maaYr)wli01XVuW zFCVk}>TKO$cCjmSQ;J3Xp4WAscY@<}AxzqTp?+9-!<&x|O7R!N9nC+M?(2(|sl!7{ zmq89Yt_Drm7|-SN!e6W(w4SO63&Ba;N#uJ{S$A9(kLOH6Ys@695%PkJV6o%q2}v}l z9xOw>7S-iv*glj>nRXNG0Ni05cYa5;qAnFKJR=WEGdO3}GbyvppbK5}84*78w}Og{ zJnI5*FEXwT+V6Fa4eTlK4i_EO$X#abvdHHx@1-6(2=C2arvUnKh5x8^z4vJ?n1?*1 zVY_8UcmMrpG)kMs`(PRO@W-6BFPh|xZ)$V|*raqQSm?n8rrYRUSKHoUU1(uJvreUL zO6MXT*c@z4>k*UF6{r_|uw8&4Q_gbxCp_V1@na|H7UcM5Sy4H5%dscDHUts{Iue%8VYBNGks<)1TwTy`L{2~R3e63VH%9fJU$ETrPp(X7YeCI`j zA&R|iQZw|3yUVLlmhqqIuG~OB7B+ZqosEE$En#YG>_;9XPvfi|eWaaWHdkLU%vDv% zsq)nKw`L{h+Al%5sOIVy&_~PXI%XDaBPLu(=&6x2IxM%(Va`H|m)=ceh3Vy&=?!SQ z`>MQwyboxnFB3W=vPm#Oa`P`q752z?b2{=t3y9r9)F8YZZE7cPmu(JbRs5Q@XisL# z)fW)RR~fNg!D?yVQuN-Q^ai7LH&sgv?+5R5YqR3jp5||!IKAfI z*I3s6BZ@`y!~RdqIs9dCMhP& z``+VR_^M~k#zl#cn1|xSI&On|`juO-Mx7WZ+m!C=s8C?@?ND&X9osBNF9`N*=rc*j&&mV3eu$(8hw>4bemu=B@2{XmwaskWNO%GjicztmT^_;{jzsjn`G zzSlM?FeU?u6hJ-XH9D*!V&)JhMf&m1181*o<#x z*ra6Aw|d(g;Z4$vI-DES5dQXzCiN*ps_?YIS=`~J!5Y*cv*q=M4|4ATOIYYXzdvs^@0qwYv53meZ3@X+2YBLh0TwFq(({8QTlf&fK?zPDBcG1Fl%M8(tkKm)a<~(Y91?B}SKYYt zKyZ5})Iq#FY_IkAXGGwyfYyJUTbdJw+y9ns!O_g?*vI4}ugt!qo40BTCWbrN{p&FD zIZ9#l7GKWezKojT5-Uo8;ZO)Hm%2-PmDibK$^VTwiDCy&< zwF;UFQ8!P{5o^f~5g+mO`Yx}cuQefZlNkyY|yn;G!H&hRzspw8|L$=82AvTEy|Jx(;u^S`hwJB zItb3w<*%GdQj-RhT%x54A_c3WM4R>Azp8TDcJti9nz$PDzIuMxP~@G<{d0};mqpdM zx#Jh1p*OD>0dpnmooU`sQY%!}X{E2a5QHQzaksx_u8b`-G!$S%H#HAS8UvGE*Gi>3 z*xpo)Xib02iI4Ct1tTNbh`93SqrV<22Jd{L5xxO}S@V6x!gBU$L$thh&orjI4^iIx z7L!%+jIud*Nm~rsN09HQD-)Dggk0C|m=L~k>whT0Evu6Jpuy_o zoVQdm!E&g{u(trcL|F1Aw_H;!psTmzq@?_C&i2o86Gtc0TDKN6jQ?VO`p@Wqf^LzS z{@9aw#wMInl&^e?PCLVvyrqN`c}|B*2)JNP%_nv- zQRMZjvEA7{G zzIg{XWo7oY{LZQVDzWkKIG7VUM(|CvaLC_fk)I|+i;c$74Y@DfMZS6ZVi)?F2GGO@ z_*FxxzUI%Fj!jcunZ#@Sg~vW(`aGO38uu!{{C#h=tzB){TW1v_*HW-s()8J$Y;lwi zaR0Zk3eMl6NpeS3*ni6jCHj>Lb^d4rhqiG>+>~hMA>=NbRjP#aT@B|QN_H2VE zTVNu{BUKCirnf3CMOP1?yjR|OqbIC6oSUc(GSmAw2mNWTAP|Gz>Zo9~r=Uw-7vnN- zoRVG_p47||or=4E7sdAgl>i?8w8pOBHx9HZlr=l~`62o-KLSXex{o$7J5t^5wHrh~ zAXyoGX-ZFNXnO&urV++v8st2aw*aTY3j2n=%0U-m$|SjKF8=!lR(d45u4z~u`&?be zv@llNjZkAMgu!N33?gY*)O3Y4FFYt@4ltQB5=-kpn?YMYN(oA6WZg&j>7TPq)fTtZ z!CU;DX5^)=p@P6%Tvkp$6=&Oe4_7v(3v6jKdtbm7u_pU=(fd_f~|;6@{lDl(VO61iKo?OJBu?&MM=}|O)x}m>z}Cgm_c`Y~MeF#w1)deQuaD1TgF8~&F=|at zXT;VcS1GPaL%o@#P7;;6-?;~u^eF_YJzP!iils|uqr_vqkpM7ncx`fuU}m*L#lHOu zGH5prB(dwT>8TdBl39&(VOxR(lp7=n@mQ&0%{t7tD-@KaBX)N3`&(b~937)XXhcs) zZlz#+1L@`3kv?@7UwJTR8j-#uk{uo;q!gWWLbQ80ZPPb1E!a)@Tp= zJ`Z;0G;OZ#9`uPB*24Np@Q9~*R4!?BG&~2Jz%;q*Xbb*-X#pY$F72^6`2Q|fa~kfI z3m3YIV=m`2V&(?MVpT*X;}KQhCqDR z^ZL2QBrB99FuQQ$OqBGx_}M(WaH&bjIFYL% zv8qgEgz#Scn#Mt=b{&pE@FcB%g1_?J=S*a)YG*^1;!90~b{-_*O@rLB6@use9EWHI z+ow{1NL`-NLZm5cCy#M$70cd@{jTqxO;?+pUEbzwr}^W*c1++t*cw0sd+xVv^Ea%9Iub2DJS7rF7 z_~bLYB4ZCruG)lu$>BmBCQ8UZq~*#-30MsB@D;ypiTQ|l;;92@da_UZZ-iI=AB6Ys z7H0Sl1m)C|Z3T$sf)2uWQqY&)=1G!<4TjYP)g*)4H@Ez_s8gQXC;Zn8+0gD{Nl7kf^m$`qSk{a?j#&8^-uCrRIQ- zKf6?AfaZD?7JxWYxmm4s$#i&IfRo#o$xs~da z)jsw(dU!-=O-?LQo&mGQWi>xQarAuMkKf2;u00p zGk3J;I|MMAdAYhPBm27@<27`pF$g%prM-a5dfi3>W6%$(6Ra^jqb#}R{Xi&&LW5SM}r0yE=}OG|u#OcurZV z++h~4SVhvR6Ee>tt1x%|M7ZCZq%V)lYv!39Bw$3!@mpsKgxTzm^1^%j187|k8aonq z4J%8=Lh$?~Hk;p++mPUB!OgY95^9>X3m#Dp9xe;49h1x)w-p356ME+sVS~Hc>n0Q(%w@j3?DM^sI~Fj3s@rwKHgb1&fNX-laZIIH@NX5a zw59>M2`CaDq&l;}FdwiPRmiw^Wz3b57fxSbWEZojROBBGo#|jwRP?1b^Z?d*xppgP$G3+G8U2tl_PJ-OfGV7|7&DcIjWANYI4t zz@M9fEeo&GPO+Sl%6iAN`4}`q=<3Li@qoJsu0C?qcaYuQCLlC4i5Bu04S4UcymUTC z-Ef?G61?;Riz&s`DaO6EAt5Nd!AK`+!0h+zQysWut|;wGp7PC}OLQOTsQ!YWq3Meu zWBhPE$;AG+1J7_N9QV#-gXJhBcUdrLG3t}ioRZ>+|FNwiarZ2qjz_YR%Qlz25p3?eS%F~tz+}!5{MQ5;so_0glPH(nVBS9 z{q{h8F|Ec%4*WI2@&d;9mhdmF-M@J2f&r;9hKXn(rcRQKxl4N!~=SL1uf0e_GHxWr%@Uz7R zkX(1?{UpkR2&UM#eP_V}0}A@InyiJpsc=f^1l8<&6H9>ySsdT4^ELJk$ZD1ltrc62 z;VK=PAG+rGe>zmbHm&3R8~@29ZYyw4uEuH_goug zHVFv{0}+JO0hdOk`O@)~HdWhdJ&3)f!E#j5343{6j9_0sG2`G_SGQq4A?rfh<{@1m z{<~$=qIcbIMiA7 zd?@}uWEPUWm;9C5ij85#N`1nyR=ar>2$0PhDi*#%fVqp$5G`-<);(2F#2t@ZjnGPyhOH&~!8e^r!cou7EhzJ)Q9E7j)Iwkv3gzik`$=NIKPX4PpV86|}oXSB@lxukns ztDFv*p0>O8-8tq$=G)vI5x4m$2=P)`{9pKEt`=`Tn0-*oE_TdLfnA+SWOtak0_aA{ zmIaidt4Gy0>C`WU63rnztWIfjl_`-DB5dUdC^-Gq4q`5~2=Z>U{TC&VkJg!p5~zhanrr0peVUH1(5fS_w~)uXFi0a_vX4K; ze|@EL;}T3I3uI^xKR;kPwSGFdHMAm0WC41i$!A0zeDzfAB8NhOU!SQ;_<52+$!XM{ z%KUs^J#1!BK(?;eFJjsCs~SILE+F(7A5p+_ca+ z%U=Ca25-#r9^pYvK`#G*U0T+W%Uobzb$O^*j|uIr5_pL z2DLPwo$Hq)LN@);z8TxN+-@R|z|j)DIH!jm4w7zVIXusHm%1Lld|7a`F_0(i|L(&F z)}c^DiCX%v07`LhkZ#J8g*Hy2xj8G}rmq{+Mn&VgHL&~F-TUIj!LvO1@@e*ma~UmC zk$6h8O$Tag@48*3?1(G5%BbQ8&txj=42j|*BcK&HLsa#2i?+9sb)uKP7#SA!iShnee~Shnjre(0TDkYv}TYv)^N@K1WbPI@j? z`mClHIBa!nd2&O~UZwfw&-mo$r!%>ML0VPcZoH&KB^e%otws*Bbqq8Gh_>4wkq zIHx@cN{JHFbi?#UO}31CeQ9WEW2h(-hC-U9LDJu4&uO6qKbH6$SoNAM5oGjKay_id zI>XE|?Y9f3T!1QSAAQtQ0!p9c4mdB5_IqX%>|eGQDp8(HCxyh?ft?C1f&xgOGO=Xy z5JU}kB=<1omX4%+Vv17IY~|qEZEfCWzRh^LXdv5_je*%qabe#I#B#6xKxNVL(0<5q ziO)2_MZJBSx6PBAn8+7&fs#wJgD{SN7K!zEIaq)tp|4186P^v}W>EAr;Y*t1eJLW< zHs&&lKqWD;6P$=s?MJE_a3J#9bGZ21GmR+O1Wi&W988S7O}GwpXPEJ5gxd z=#Fn00+5PUx?GN|nVUWGx8=6s8lnN1Nn67?q5Iod|Fh~m3?g#9OT|dt+nPdL<*qEb zPmH(=5_^j42Sstg)+S#`3)&7_PK~l(Pq)4_eIy-FGSB0A2)P#RNCk09yrHsN(_jnx0I#6JhU`CNg6?bNZjWCh*NQdkCu1S=s+xM z^&7u|AI_cGLr6(PDJj8|e>Ejz%xep&MtvQEKK(DY7E_2F`i{94dqcncqsVY0#aN<=5C=c^ogcGG8sdW2{?vb2J;u)ytF8EX>D8T&9&z5(AVL6M86& zD;YXoIB@w8K~c7yZJlSL@KFl`Q=XQAOm}k3yk6T*?BSmlH{;u6kYGAL_e1`u%t`>{ z->MCq7VH|xo|`=>KMoMt?sYK(5E}8OyDi;E1BC)we!D5U+eN`si=~3U31E2GX<(dq=4eEuHO}QK;hEDK_ ztKOAw=+V5ys33Ck;l$5F($<|?fc9o^lGWkqQTxNPSdBbh&^>J0D%YiYqN`(9`IraTRp{ zHe7AmgXhe{Tlt2%HT2h>tTkc^b#eACy%3tnjkaOnO=w`=PwR))^*vI-{8#q$Yp+~~ zhIw0#vF3TFG^lvfxzGug9Nm@<$nRbp{K*fJN;fcT>75j2TlXGWI2%emM$a`b9|f&k zNKov;!++$xU9ThkkZkKa^#F0{f_QS!BC+-K$oZsdXBL-CKKF2nM~qyOkrX1K2zi`fi-{4L?}P)+ zUj(DebC#W$6#aiXt}*tEC3}Ppdiev7=^bh{AbYpTHI6&RoNW*yi1z7NpYNOaup;wt z$1C8K_uJO)8|v;|H(6KKStkSlZfo2CREfwPl*vwtN!V%Vl=0)(l%9VG+4ZT04mQKM z^mEc}ygK#byfSH#ulcqUvywU_hGTs`IIz^Y_0uBPlGi{!bN7xLJlHEiBs`M00H@b? zzsA*s>e(zROPZojO~X(1rR zfL?04M^{hZ2P{&QMTsw_arhdQS}xgfI0+JMjpGZLQ|`M%J~!OB4AON5$@|xssRX{J zn?$$C2j9d^zjF8gF5^N;`9uTy%oAZ3ccIvEf~l4X?O)Z&@U#&Ruv)Ssy|NEZsJXO@ ziS<36(cE%u_sL0>r43C-h=~Avcy`3JsCJH#bPZ%R)4}HT98nc8+qhrNp^C5qr8Rar^&RQdMPwsrIe=`*P1NCN!Fs`~L$b9j1cGh+*{ z*q`R}poSWSu8jBwU2i(z8c=T~P4mv7i`v;*CgKw3Sjt*@Ckt%@s9SNw)_Y$`)=aFwPnd^P`K>0$574}t47?iA^O9WZ;$}>8z$8A~ zIsFmDOUo)N8h7XbMH>nGQp!}x5bW(iF+{0DEmJ&E+{A;{({6Pi`$K%(^{-!)evGmN`yK$!-kQGk zy&zCu_=J-reEMYhE7-Rkh}#(ufVb(ImH4m{86frVvr%+3=ZSc5l^m#)lYLy8TONC` zcB1z&LcZSRcX`o&#W9dhzvqEH1yWM7QnYPiaB@%H}`a%%K`e(7jEVvm5v#L+Dirvc!`Qft)O70e+JdL_Q;kVJ2MPE z*c+GaYplvCi(_7z=3jl;MSR{5u$q=dGu@F+nOhQn!dV@7=6^6BC+ZabP*HR5Q1%6k z%Wx}%@!qa87%i}v7_vXE8UH3X7;5s?&oa~Y%Gb@;lTlIan14|b^S$4wbFj^?qSDTK zO(1ynpwgXYsU=c|uh8Ib<;pXeD{J#w1iJ-f>#N~nvz(a_A1{grhU85;Iqfi84lUc8 zE?YhcL)<)B$mgyPcIz8U>GyllppdjsB@ugTZW}%?fyKnT1}z!=L!ynr=9_k1SvX24d;!T{s3ri<0ht1Gy>m{FMuUgK^mUbWG7LS0(cFV|$(Q7i7 zoY}D-trv?_5G(u7)8B$h`T7jtiMu}ou<;u73{8`c&dVh9J@0RZ5UNsqrTF>AR))mF(WeWdMi);npGw=wLIG2$1NSIQEMR{1z_2VtP{)Rrp8`AnaTe68ReH>RI~6}U7dt0W zvPRo_ah&kt^telzG$}{|#{QZsXCPY^*}YJoVbH3AhJ*xb<)T269wr!P&va7*eCabJ z$uq!ty7W3%v?FkHKgFi|Xj4iITmX}Z%@=)03Pdknw~)E;8PF7f z%>Ae%N1wc@$>mS(dw_gxj`)CVBHEvG=)~+ z50K11oj7iZ+h@f0=Te;z16AXt<>)rnwG1@-Q2p3a@K-sCVNEmvQSL3y>BfeYcMgpl z`#38-L=%1jM3ecUy1uW}P5&2LZyndx+C&T2pcE}FuB9A`ThXA!TPW^sr8pFKQi^*i zMOqw+1qmA5iaQhu1lM4}2@)V*dgMLlyZ7cFHb2PD&fd?nW@gQrnI=K}sc@?`H3)B; z<09oC%}J;iPUpxT&yCN?%d+b;0FSpzs!7L$Ah<|HG%p?!x80sHw-H07-hYzGu!>jb zfN!`ghPI}S@gZTtr#0c7&bUz(>=Eemgqc|0^0a|`qL$ZFvLbliV`1E;^p^b7Qp1>? z^nlC@`egCRE|X!+#}f`Gkt>C0Z3W8f;BNbg4=N5ZHTF>6bi@pSVe8Jvk$f!iKHsKX2cxM) z=&}>>M^c7KDvHtaF%xHzhw{;0h|Kva(g_{WdlHM8)jj8pH1sKC z$J@K|qT0Kq)7ChFDe$2gFZ<22wD@lbDz62Thw1@3`)SQD=Hv2&;t-w0l@}3ulSMXf zpD^@TJID3d0K@_hCXhU<3G~dX;Y);~wcbF)+*$pK9fD5-rgeQ0P5h$tcPMJ@tMcH@ zQwi4^D{>j9DVa0H&-4`Lif$C+ht#(hPJ$y{alNk_Xf4B*Fk^&122j^+<-9%FmCIM1 z^OY053S0H$aRd)<$CUZ9yBXs7%rzH&3G7kzw$&Ka_i@^aZp{ z%Mq!xXkym>-kh$5co$c|`2qw|72PCkFS#wU?Z_OUEs@m zVZKbGSsJlsc}4C%%DR?|2@8i#h*eix!n4M+fg>MkV!DjerczH^KX>ovv3nT#T;y{}8Qi1RThb|!As#reFtCzQ85j+$VaIv^^9=x48JJ*{f95O0M zabT_>VsSF(^`_oUUiVzUFet(~!2t&1Z2BJVkxDs=fxKmKAca zS~|Dl9N3vSR(wF@h{_9pQoE$T8vo3g-5^TwE5sw(+)~u%?Ayh28 z273!uWX;+dpgOb=%_=%wn_6b;=Z zyMA7JxK1U>8mZzC+spP{(z8E`R&X6ne(6_h6xt zoY`T}NrgG1pzZOvZ(!5^5 z`j_e@_2>~2)Do^Dv|M5xmjm;UaGI`O=P#^JUCbT>x2#uowF|f}7Qcm)3!=`Ml+D>R z3-B>)HEZuD!=u&iGwxWH156pl53F`4#1Zu%sgdcFi&4qa-RqZJ)HC-u_^>#!i2KAY zTqr;TCu%p?Tjm3teCaYdi;w3jEXcBJ`g-8;!qeP8zkB)PpH9=I-TwhByOV4qX*|~! zeR+^h6ZYaVz;O>nEh;x&5?97klfRZ}n=)oVWF5s*0BD}Qt#nCs4L+%B@hFdzqGlxD z$rW7m1wEy4gZ3PXQsrsY;@a$q05dkdJ&KU&G^A_iCc1YM_Kg}`nN$FV?EdW4o+t_=ijP7C#KDSo|~Kxq{JSyEXmA$Ag1u2 zzfBj$zW=Z{8<(&FQvi_+h36RDKef?@acbFxXqT+CO2t{);LTIzyqPMpo4p0d5~Xfv z1x?Yc2Kdxpo+WJYts3B$ZqW!5bO8pRPFxkvZ?Xh1l^+Q$+QbT{d?=Ml=hJNRGbEjn z>AeQsWB*#B{;BUPHxt=RUev2L zHFVzdo_CG*i%<3q3ZAcdm^Du1!j1fJw$<%#masgPI=>NJ0O)DHEL3U@pqH*e)ZZk)%DY~8H;HF=5tUC zo8{0pihwgCP28KN-K+a?vsLDp*n!U>+~2yJ!S|70qTro;gXhyt>DF;wyw^;fMG-T?t$_W?n~~zj;i9|L*6b(iwp+Ew zDl}cA;juhcYZoQ+uuRmTiM~e23zTpj`FS#+Xtvdppv9y4DeRWVCyVp8^m45-zFYASfMvSeRGTpnG}_V)3D~Qq%G>lT40G1R*-J zr{zm-uAhN?UgV=KwT?Lq2@;(n>+0f0@YILhw8LC@WW7&2Gr543U+8NPi}fC~nRDyj zXbu+-@;c8o-I}6Lt-d@OD6#8!Wab(hiba0ZEd)Qh8`3T01%cFQocFh}rZ#jINgFn* zSQdJ&DOR$~1M`Fi2__Z|tzHATYo`30depnMO3@unzA(c&QQle=@{VZ}PJ1eI4TSHk zJr^~C2|OyJN8ny+ySLkL^9|`(8?IdoB#m*fid(?W%;oPXB2Y?)HAUM(37l+W_7;L# z;^Hr1ZY_sheS}CLd1UgQ>Vl22;3T3UQ`PL#N=1BIj1Y9pi9O7$p(Z z5i0S+N28pJYHDIpRdBC|7|@@j(JF2-pAfsZS4KD2^z?rir9S>M+uD3UBnQ~=Vf!Lb zY#;WC6U9RJy@rO5kH++azJ`|g#jIy05CO$idixfCb#--J@59r%*;0Kz0NK3VWKj@i zMjC)D9qBNBJ3+HGJ3~=N+|l3YYT(+q)<~YjZ`c$_q(^77ci?1qK9A&owLlYg!E=;f zs29#V1FNQ230rJ6#?(|rjoAt;7nI;`4_1q4kE!{q+S$c(l`74D%o=5nh>dauZ5D$l zQw3JBWb3G%>343uVkN+7ag|%|Z&iMI%>R%o#I|{d3v7%_E8ZUD{V`arGB>s{-1b37 z;(%RlJLC~sm~BOmpiL6?pnKRf_bS)mL9X#jetC9hYe@3K<_&1~*Q&vXkXxh;V{{Bs)ExqcqfKdRz zc&`m5xTh*<=Zv6?a7!i!l($)6h5(05Aa}%Q(q6fg^=xN5?sjzgMjv;fXoB8~e`Pgv z%o3?5l6Vgms|sZ_&H9j{B%s>SV3(gAPEsh!W=aRBpoVj7PRLD4Ss_{`9sQJ(lpWc$ zqTO)c-MX>J`GLhgu6r2(=z|SmtEeSH`*2(4xcWs`(k6!T$dga8Yt7hR9$yh|0cJ$m z--F{t;XB$g#wA&>;O|c6+9is`Fc;O!$KdZsCH(TTtCMJ#k&iM`=fu{Uc%GWhpXS&P9k&e z<@oqH&e;)aeg9UX6Lq*|EE8iFDoN-N!d758CJag@#;$e23*9^vov>PLQ`VN}J3o*W z(wtKAWA`dKEHJ^Z}zf=C6#Mlbo7Hn8BVRDu74PjZe-_73h9enj9j<_~T-Er1PtO6*j=^j-rx2 zDBpS6sW`REdzOtOBEshJJ@VttPd|H`xwWE;Sy_m+mu4H5#W2?KuAsCr5t_?2pgb^I z4>6G}pluvRY#s;7GdCwV95Xl=A^+dDCQe|7qZw60Wwg(b?nv%>d1Uv4aUEsx;0@b2 zZnG$;eKeq|HqCKn9%^&s`9hrO4|YEdv)|L&bxpP%@vM)-=-zV5=1Om7H`#9?#+Q7? zh@F}ch6!JbVly*n-w=#%-Xyisuc2@IzG&iRHtri5-7J}w2In)pbq*5W5*MqNexc>c z!1kiG;R2u#?O@2mLliV>iIR)HZ2lr8XB0UjlG)mVd>g`yYULjp2hseQk*l$PnbL0k z@xqtRVTuLe*n5VXqHEEIKydsFARHl;SYS`}W#@r&gv{QHC(~xZ`)=QK486gZGU19z z-it#bim5l(UU!R*=Y;#&DnXHm=cRU25aSvIJ^JhTex`J)LoC;)v`g)bm+z)Z)k;maZ`vD5EmQ_Y6aUc^`aUR>B<_u>$0v)0UqemvSu zduK?*?8C~dk4Q=_(QBdZy5p8AyLZN2gY(Ur_U=TJh=XO2#nkwLUB zPrpF_u>XvDufl-zV;1TK3ckivSQ{(TSRL^GX;4%Kvn$~UNpuVD8Z}ln7LB@8mCdLV zIJ4OHNyZ>K5O}vb`OcI<=XsRe2Bz%jFMgm1n{^r?mO9tf%MZPE!N@D7IDSE6q2Vp29%FOOa3OW& z(~?om!#YSAh6%_DxUsm{22R~LEtG>wcp#thp2SU!ZI-<=dcw?oXAjY!Y~I(Y6xhw2 z+hlQq)U%R+K%NyogtQl?dW~0n5I?kag74$y4Q$!&!GH!TM;Vrq$2zs+WEYe19j7|J zf0mqxPXAz#6NM1iUD7F@pNU1ZzfW-@-NS^k9=c_r`@_w64LXPbf_+arLpn?ZkMJrV zyvhh8@|%_U5tvmiR`bTodMeY{?V18&e?VTF%RW2z727DuMtsY*9J!@0rv*~icFvbL zHdJ^vA*QFhG^wZE!10(4)=xhd&dBWMtncg`9{0V-Xpkj{h0QRizs)oNTr<613oxtpSA+VEZ{wZNr}Lm(^zhq)A%CDEBOzG&&my z^5{j9{j`E@^w}Kt`JuDRWGqy|CVeS{zc6_}@TGQ64d}XG z(~@_ET2hoK1Z6jN8ix$!M5}8%mA2LrYN=KgprDj1Pn2%{1bHr2Ks9XR z40+&-Lejd5DkUqxQ~mu4ho`=+S;r>t-~Gd&`(QZSUR^6-{xV)^Y7pqPQh2{dW^gBq zOjfSHKpaJJ61#VR69BS44BjSUZLtD}6dOzX+Kdw+AsaA{rBWSbv_YS}ES~QiJrE|7 z1*?MWOMaX*k_gAt_&e(dXi7O?xoJCcUwG5W^3*Cgu8C{cIHSiQ=x(+gH@twVc(xo9 z_BHgky+DNA(D26EY1{^1g}NwRE)%K{MVoQ=%aRilyw7wsJ~0{Cssb#n0TMM;#X9zl zEQX%L{9N``5#4cG2=OwHn|AH3f9JpEe(uHiG;Cz$b=M+^36WWDml{3QrDC-o8QEUv ziu;|`Y14uureYzDkcEf5We56Rx8ILq7$-6cnjg)5JLPy z7V|Ak!|hO$bz}PtExsQG>Y|b}BdqGn=X3-n(mt%_bZ43O)c|WUjwBpxyVFk0CW=g{ z@k_mN=mQ!ay8*8sBG40$GT4MS&)i!>Xz97z?fq(fto(q)A7bOUitEbhPj|wMM)MBf zZ?WH;JjM~ME(4;Qlf3O~$L00Z&{tUT;t(mK`OW;YW>98tfv%xVubh+~0)Ch_c=Xt@ zMf9|d(#necSg4hl)!06_+pYGycJ`0hUgm?_b-K(NGax}=XV^iDpK`XA6YRb^OwQZx zOf&U7nvuWwJy%B!)TD!0)p0>tqmAZ$jipfN^H`o$=ZozP>xzB7*T&nu=ArW@0I+8JubTOGmj`do?pPB7wiS63>UBc&Yb~$a=wF^9 z`0J{@^7k`85q8H)zNf4lLi?GhKObWqh)AYKv)^CZ4(JIAE=kUVZ}Rm-NS2od#ZAS0 ze&=gIwP_t?f5Z{^SE5fh%SlfA+!6_VetLu3bVf~chP=64A{m-zKs!!)+58(z0y&D4qUC~>cy?ssCf$W-1{uNjTCZl8(-Z#ZzQxsgBDOetV(c|I&;k}?8A>?*dO>2FgU%Q`o zi`B%`9*4(W;_&D!Zlj2~>Zog~y`;%?3A?hTO@cwDi0doa>S-Yg<{Jpz@KsVa zjceLJrkNzUJH{$Rks#FKc*Xd}S5BFoV80pbgw7#GW9F0YRbY7hYLoe(eTG`#5>bx` zOgJ9xF<6%Bbt5Ha=Eq^u6bNaJi}DhQH$CgJyz(p!Sks=>SyU93Z;_;lhkV&+#{EX; zNxj4ROpkOFcykAPaL059c`$BWgwvx>KWA|N%Dkg~+Sg2lh>j2=NWf`ijb;EZgu_Mp zx%&e2%AbAua+5V@=@Lgfmv$0(7eU`jUX9&f^GQBL2&HoJbq7ZuMMD%Hd~C>3nk@ znkcH$tL#GYAJ$7t)h@^rv%JiukVgoEH8dn5N?+aEb3sDPulB@OmSs03Qivi*9?z~@ z)a4`uKF%d=B*dC}ZsS}!%bmrquKx5WZ?mb^kX)*xU-NwvR)5Jt;kw8sb`58`j1lc^{sst_lZ!qg%s7q8*mM+dP9b#}aTpXh0F#==btJ@= z9A-@^e3+4m7!m{fP?x6G4YnG6?O+r_9)o@r7CKgn2&%wUIFr^yJXN4bzHT*bZ51OWzt}kdyVx^Loan>aysT}|i{cx$H|?Am z*vqrYFvz9|I7(+2W+@M~gLMKcgF5X3s89J;a40{a$u5%}I2&b%{sS*E05#BaQ0MHU5-NPto!1QQRkXQMxg| z(30{F$iS?)l;u``_>It0=v7z>EN6H^-i&uMpWwCM&z7rAq?bWnKO^-0|eV;Vvlv zaeC?0o7yE_X=c?#c(m~A*~!_43>hkaJpS7W za#Oes%XCzK&5vFHcKtBo>?#0Y4PcqYX}O&n@;0)kxT@i$`yPpFMB7{1YtMa4&(?1% z=!})I7*i`uo(!sy?G#=!@-81^?MEU+QXq&=CjBm_=T2~)2d>?% zR04E2j3b@21;~Td#wTS5Wy$s)Bd%H?q1$s``*c$zi-ZAV;YN@K1L4}iZjhHfd5Wf3 z3ABuSvnLJoIO_4Hfbr2pEwS&0A~52F=iP^gm|T=^z;A6)oRf*8<}+_hnaX2;*{ir9 z4bgzK3^*yu6Z$!5q?h9(Tis3wQJSw;K8(H4?s?wMGIq+6==(F@`5?%#={nKkhm50k z)hN$V6pqt|T-WDE2j^r2k6yyWUY|*#M=9AfbE;FY3ZO>WY~Eis~1;|T62G};XnpbS+!luqbMD& zizy69d@wrw<8a9&q2QnvT8Z)s-PcTPEGpXk%A{}cqFd}(f9@s8_VYQH_`qncawS1a zm3I^;pp{mG=+kVDf5|6OV@#0}kzy_4(~ofHQ(=eJ>RL@auY7M3x@Ny@%S?4407fRE zPLQWRDxoq+EMp!j7WpaCCPm^T&VfU0uSky>R;}u*?w7rwNWextAw6zN+3PYbleXhw z|LfFqh#;3eFC<-Fc4V(?FiohlB5uUo_IcHNr!143#+(#P-%>Tj^IpG`{hyasoxJ|? zjp>T-l%18^KF~wh%p+nz;p%0Ve&JlExeGVw{^`^FU4Dzc3B1DTmarV|1KH~?Zm~KC zU80rfTXQv%ZX6#rW!@vaFtLB17}rBg{f2swi2K#!#=z+*3IE1R&C8e-NY~unXv@`L zi7RMjJU?EfWxAg?+f-nDNA*Eotxz4VxwnTd#rJq@%w*z5Q(x_PP*I&DIVUV{F4l|6 z359GHRB*&^%i~o%i57n@dImNIe*gxN3J?+b)Kl6;(t?&k`3KBAdO#}P0Qom zOosUOX~xpV8#=jccLq|jO&y32HSLNeFOmjFpiy!vOs=nQTv%6^GNKFkG(LMvp_n}* zqbQ(EgbCLzGAWcTPy4I7du|RpoH#UUPzG{&JCy-Nf>UVTC1Pp`JC}bdT6atCrzC zhtHj0nI9Y6>J{}>Ys}s+Lkx!D%yO);ffFOks3!K++g;JVVp+Pc;7Gu^m-Ogh{S&SP z<)bL|RKq^RnvC4kK3cA=0Bm`AdRvs)d8F~xu088(?9yZsK?m<&!HZlNDS)|myUn^ zub_%0HA50e98O5zJL^XNVSio@ko3!ci#N~g`)DmeLs5S zTl+2KtMnov8POFMdgs#wu@1M6AS0LB8=_2c+d|&ks!O*PTe>dr;tf*i4;8$^C;krgfF5M-Skiufvff_xx^V^PkvgU$6AF*^d@~h-o+m#cIt`fE7e+I^|d}WFH zv`&j6CL;?=9=2Sc9P5qB{L1Lkp;q`Q&&?Hj`D+b`qgUmY+bt&lx`R;`k8} z;pjE(1X$FH$Ok(L^nQ5)?cT8q-|x(o!S~THV@W~>&oV<-zV$R6bpck6go!As9PJhs7gR~w&jlD8dW!}CWeRS1-)Ycfpn;cUu+yUGRV1hlB%60n*bdP9OwE}(_ivmWLi=dgqnx_!p_0*Co@)!?hEI=r^?M;D zZA`hwqHrI-)+Pe@Th#fS=+hWzerbC}c~A5CFu=(dk>-7K?gsNcUz=0setuP%B)oY% z-`Z6i0qrehI4U}+oJestXhR6(C~8+9y#YIf)b`6CGp$t$8(Z)ce2Z%nJea|S_+%9B z4&n^<{KOmSWtU`Cv@()JQu0e6nQon5l>A@CpTBPdJ`eG+(bxJ{*kXfb4sE_$dA?3Z zB_PE&iS|L1!Bu#yY=j!~WwL2t;|YQnK+XHn6@j32v{xP!BuxSY+!_I--`D_p-!8 zxLh)?et$$Laa;42xx)OYTaCs^!qj}%fcV-phGXnA%V#0-q! z0Gtf4%3gPz_;a`qqidhf>Ujfj%X|ns_zA{*R=+kCqVrqAh{n}|2s0{=c7y6cF|0GQ zIe3Btm#02$`w{#3+Iv@4%penISt=HYas8nSmTTGu16e(X**8@&vcc#pi_|9 zP*8#8=9#V?T<=IYWZ_JFWYdK@jI(cg8tXSf_O{;h=Iz74dX_AFc`NEX@M~W><)4|s zu2lcSkiQQSQhx8Ee3<7ETLdczSl%a$O;QqLo>4MTJnjEYXbh7&rWZS(cWWS&4f-+Z z5Ft9+|7t6TWwIh#vQ!5*MW~bP zw~5o`JD$|qM)$%@R%m)AS#+7r7O0Jh%}q=YVOtAt)1cC$y!Ux|q~mOSZ|kTHQsTyt zQy#a+6ugb#Kb1~s$MC4ylI$EMpWzaP*lvaU>;t?qh!Tsj>08*?3+YUHQ|Id)jjudL zz_#1RO&a%!&4%ftT$wDWY}=m3-NYFK2P6MwDE~e(u^6l7v7+s1)qHhy_)ECX{}IM< z+ogB`?it+#d11iA41J5@{*svJMjH`DC086O!u#BPd!CNA4ctq;i^j@*{&?+4_I!#k z=@BAR&b{gAO0Djum!jqNi~lqSZi|TS=XflrOCro;EdLEFAlHRfh4J%0^# zzZ9C}-w#eXXf#jD~4}*n<;bwyrU*T3lqqmO*V_CK8GlbTh9d&WWP!Qa5-lzPLrZdo1Dl3!j%FS#X^>{K>X= zdv-e)YtPLr=2m;&Uha(oc6rx|kl8ZU4o3E{FtF&3`P3^lk>;48Jp%7$+ed(IDeVc~ zlPmTdmZ)Baz48MW!SJ;VXXHK8vgCNYR8VG5Caq{tgrJR@oXUT)ynk7(<0rwHQrQmf zmP1<_%5jm%u79(=Dt*P+rknYLqYZBG4_BwQ0C@l|I9i^!y#vdw^2ix599s1Ga-yo* zsiXhY1KqjiXygl-n=Jn*QcxHOJdeHyu9(eMv6>N-0v}&4gFe_Y2S zEX*GWwmgRFphmIHW>qXvlj5^mwBXn*_8+D`))33_J;bYg@2<(u6aRXfe;+k>{h4ly zYupIpqx^OOsKX#V2ElmG+Es=)TBw{;OoF`z{xCl|=3$w;?fCSvZD(S!iJJgO-Y!ti zqP}&sv@84Tshc>HIB`(pS^1sm>lmFX$EJzH8AY0EM|%XDjh;N}5-vDDKg@ejRy{&F zO8yb1PF$~n+MayhdPCC;ujxfcL(4fGwaqKdlNnUChkKY?s?L169*gqh!zX!qcYjt@9)7}) zwmXR{TTZPzu{Vd+@SL(Uu_f7^Kz^IZ-Cg7mQtmNe^vdg89*>vr|J)u4L=>kSZ@cZ5 zVc+wE_VOrBZnyx%YTQ<411U`v6y0NBmHU>tn0u6t;PA@XBWVD zOZK4WrNRS%=xrU}02{7B4^*y$|HrxU(1N+%OM^HYOi?@DNXhH8%(92C@V?m0wFZnk zIK)$g=<=)*a zL#=tFJFK{qzl(c2xHxp?`RX<=A7FM|2*%BRg7E@7JfOzRh2GX{J+TbO@MuJkWG8B4f<}6Bqt|kqiks zC{6(d<4TIr|L(Bdu`2P6kGItxgT7azxgSZz@xE!iqyvjjViP3~CTsHli6rJH8D$xt z(lD6I!mN@$7M#|K|9t&h+Qr4i=SPgwAZ{}a$| z&E-^&Uu&J7>dsbKxnUwElDCsFs$)$fJRAythZcO&6UeAcxLA0RUmRsZ>BXP@Qb^dOi*pM>BIu6XFGRoxZ~ymsBz932a;m=rPJZ7R zw`JSrlR2C&eTa?MWmW0#<>daXoUN04ye|Vp*C8b2)xKD$$y1I6CjO03xoR3D26fSQ zSY)#PcRu$9i!r`-3>Z6BzaRe9CQQL^^EqAm??02kJ^{9D@jmQh>b%p0oaOE8*pPd( z!5B-B=ejXqGnReV7r7T%RK#+L`;XuLJaAJl+H+`EXNI)cc%~PO~ z5tYQQyOT588BW9q08lOkoYN+A=s$-*UF?Jehv?7ja2Tv3tPSR!usY_+w^%1Q<*3ik&o>`T z=5&qu`=6yVY@mS{UZDAErvz}zz$Wvb?h;*CT9@9DAk+M~1eU_kgiS2(9pSx)$H`T?Ah|&SD^>qk|dd*8b|I0 z4D0n}RY@dnn<$d|_S;J*nb|5@-pB)hPnEl@{*9g|$G}6^ZJagV zZQ)1FMt@$FG~R!&$qsWJn2r6#a-{i@4<>m)s+7!;po!aaO`noGytgpJ+{-N~&trQS zmgp)*PrDG?!A^MJPCtfb25+=$V4H-W>j0H==O8rKX;hG;f9H!uo9yyQ)osSgeabO= z5zpZC<+s{GW=4Er;x|mvnfE1aLm$nJSe*5lU58SI5nCzcto;Gl0h=VcAoslL{nmu} zEoTycUnR>A9t;DM>wUE9yUY9hZ29de0p0{Syn^c7Y{gt#Lgufv;C`v0y|&bgnE-yJ zs=F8_7V0<$*_L!1#HSE=;ygcx*OnIUl+feWd%nCq$Uk4}+(|dY{TY4W@pzQEz&spM ze!BqfURHE<}!RcPNO=niJEX0s7E913VTLIvEFc;8GvPcqZ;`2eafVa%sfinKDr zr;0pxW_n6bKI1{s9)R=?gjv3myYze0q~HX>uOeHnBy#m79Zf6PjZd0>T7lTpPxqjO zD8FJ4AUs~s7(&aUT+TId24V_dIQ}9{EyvywuO+7o&~7pi3=Ecg`&U#JijOT`tcD?~ za`da;W0q`pZ*QK@$tLDVPG0``pHY@1Cc0^ze#}95O8yTR$#r2Eu60K1RrFnN3ql{< za3cC?AXy*%LJy=Se9m)Edk%@m_%mwbfE|sVju?dcn;&dd3*hm@( zlv>A_zK|uI$(ROe{`FX-BBWGvpa1v=Xge?o&Fa(7*3m+Vr=aJv4<&ofwDq_DCcpZ~ z2CmPSfM;3dvY#~{h!{6up5hZG#XbeBKOi7t7{K#;2gKjy3Ez8ahEe%47~eYOp0}jh zGp+hxMLYVH96Nn)|nZoFXgxQ!AYe*Qeqcku*3Ee1G|1u$s>6l*J@mgok z$wo4RFTCKn-9rSgNzr*f@Bh`QWP3ICx}8T3bp$*i!=+fEv0my8=yre`CivydB*McEXOBjV>XTNjN=q8;%GA8 z#&R6wwG?I=10M?Z&k$9g)i6vB0JzSd!r(17Z|rJS2B8}j^nB|toff_2vpjlxYLQk1 ziywYTfW7zBVK3GM09v(%wX3>sMau8+D)Z)f_yDH(oROSrb7VLsS$Lwv{vHx=z<&6g zz}f(GW8+25ez;mA`8D|-G^QzFJG@dRq>0^#wNSX49(eM34Hbd99)Sbu0;Xq15_}H5 z9XE3|0_GX-#SBnhe|D1a1UQEupjJ@g=G|#)v_-pOj=!Q)%Ry>kf#Llv>#~v@wCZG5 z17BUJ2IBPCvIGpHh^+>59cGDPjLNV-+$Vd)TY5YiXqokC$FB7XI#4$QrimiSzow00 z67K2isU{GIH{P(&nm0@tCd}B-;kw}o_tK-J{jkdYU1DuhH&LBG*AB_m|H;OL2=_LN z5(R5;^|AhA0AydeyVv-?8zw`Zk{pvz2|BRQlYX6eE%_oaST>({gCEYfA126nl^^R`6AMS{#E;Oj4eY}7`%}m?W$x05V@B1bZvKfJzBRQ{$ z=^RAJsB3O2FcUa^8>o8(hXD>06`1buZTDEqghi4$Lo2D%!HnF#PEdVFx+-fpw;V zUEtq<7oEiOTUPUiXvv0NaA}t6Y#r^crr2Y-S`?%*8jT6sZZBSz|A0Khy4m3$ga1R~ z<&LE!Bn0Ivxe>8Nd@L;dTsT%=IsQgQAe8NRqLsie=9#jCw)>X}8p5?Tg7&_kmP1qv z?1QNiU{p#hE44tkG?*$Z+4i3KPmN8u7yYRN68oQz@gbq7tPkZ~03W}4! zX=0uR(NbO&Qv}ZzKyM^?dT_QJjCL8`!do#idDGn*m2sT~h*-<<`+U$A1DmKXzBFx@ zs)aEOf?sJjoYvY;hy0#l-#5`4Ft`ix$xZM00Z_^)S&Up^gr01THt-npm4mm*iZf2c zomQICv3z~P%v$Mbr1wldY@B(J-Gjz-w??2^fkKYogrMgbq5`aWENI7F@NiYM@a#<%rzVP4(+SUQj zA;FLv5FJUamA0jV$ynB$V8=yy<=KPY>k@^X#IX|e!quow9a7H3N#;+d4A%+Y7dtig z>#Or3Ohc2sNKv~1X0iGT27-eutuc_kXes@&f=6hyD34n&fF!;sbng40ErZ$l{=#cT z#V?i}j-#34uiv~$uNC(<2j$sRIf&9aY1-ciGg=2<=BD}vq_;CmK3*bpHiD!z*EZH^WDIWx|`kXB3M zWCPnysGn2S>1=u!nA#H^52;EP5qa9$%Ht@NP6)ixE|z%jE(96`wDk0J2CkQiVb@J2 zZ=2IQ^k%CsfcDL~j=smrpNS2^jW3&>eP$r94%du?e=mbbN81Mo|HoS!k2(S+XF`9q ze14eoVc0uYH>1WOx}0_}&2Nno`Yy$D(ZnVoKQLyvZ0x+>?wb?oAGMcRE+u4k9iC+o zca8)0;Vp@y&`&`BMIzIKNAdoE#i05TO>>e{hd6AVZSfScEl5Yhl@*74xy0HcQrzmNaJ+Vr9vr z@jr>zO#EWvu(GfZw%11}8}5tKNh^BfmcUG{1It>h$_qVubmY)9)7G{04ON_c2p*mO zH(`kvK44FLF+?~EH+DeQOe%)s4Q>_a;K;Ek-^ltB-hAO_1XPJll`d?hv(%r zIIA1?#XJr)W>oe@lIX0O1={gW+ z!LNg!!F5>gCFu2zwo&{+hc(yvEr=9Skt3!GcudL>YgZ9xR&~xfc;c0Ho=>0bcsRJ} ztGwYTX>{Sued*eK-y=c}mZMuh%v57kYcTZbXc@u|Teb2=xjIiA#F$aX`(!8>?P zRFU!t_B2B`4VLG(TSN*w@e{`|7jII-(YIkl0M%I?$vHUWYSrWCX_}(_oRh%UN%l|+ zONvqzzhw$-bvQqL_!1ORz z0oBIlP%m#R(dz1in^A5GL-gYU$up)eH@8_le?y;~!n3(r)l4x;S`qipn#YkC^Op`9 zu?@CIS-4u3blEsPZMJix@?2KjMJ~SI6ojz{cEsdeb$;xhfEe$4OJ2l4)0`c&IW*C{ zwH8ZFg^UY$-iVGnoC;~aHHDJwaDbY*V5d~ z@)5rxKg zYcZ{)xSU*2o7(ms@2yG(QN1^I)GidSQ}cH7KVC6y0=xVM@- zI@>Rlzf#ZmD{R8O|6i_I3e{`-=oGPZCm`Db9{JQ26rA_H@Y8#B0hy}rg*JuiRqx(l zD3B;}?(&SpF-#|ozg{F%{scZzJaEf+@vyo@U%aJ26ep(rf1YIEa?r!EVom0vsz&`S zmiQ5mSVfN$As@o6Ez&U(tk@kL52CetNVkA~lG8Oqt#`&{Eo8@glg%D04`WeFLCz<= z)G9C;`5QxD)0^>P$0LP(b5-;?=l{ppTgNs1cJcoPAt94)knU3HQY1u>?hcg(X$A}w zlrANuLjh?7HX3OGDTx82ksPB&=l2cziTius-{0f6Keq9BjO`uQb*}52^E%J7iC6;7 zz~F=`yN6VUUOilIOiWBjCePGJHZV8e9Sbhxd+C?TfY0)no*0k~I=*?-d0MkNd`1;f zl;4m+BOa0AS`@T8Rkd1C`OF%fqmFZzZ&|AIY->BcY-w}5Z^4~ToJe(wr;$84>J2Sh zGmOHb0H4aBN?Ew&Lly`9exb=@Ni`&%p&2^%h_2Dr*kIDSc_Z88@q%k|C!93qfguR| zdn{Apdz0l_%;g)>iCmVTK#u6Qz9zGUX?K+MG3cc|A|@sdtgaRTE@zuZSb|knrhFt- zNaW&-$)8y4yD-<~KJ(MVZK-z>a!MYm<|+b`Bo}5?DoBc)vyE-Z>T$;EYTI_A9ODwI zP#*(?j7py@VtUz_h`*%te$!}UpCn@7B~;sbmHFk5{ifSnQ4PV8*jW~ZYsl$x;oJRA zVnt4-nJH5#C^O3yN&}0VdsTz&iv=0?HZ!NY>iJ|pjQS>0vDhObe}|O zCt$q;JFn$bOqM>QFNw{m6FAIa*^jZx(LrrT=xz$0qk{Pk-U^yV!xZUC(I&CWX8HSd z##8)c&m@h-ZDL=+Mc}V3B_G&-E>?LftB{0zlWVTg`SK7;-tcgMnC4^zIjCe^oUfLb zC_7HrX9~-G_A~dk)1<;}yzbJL zblh*#6T;3u){>L~*{39+7b*x{Y@^xvp}69~^5u;c(R1skZ>@8A<*0|uFr2$Bo(BYv z4%#xyLpckv!ILI=t20wxX=uA=NRlj;A!LL(59`sOM~#Y`HtYofnf7GrFu#mc=Y0Xw zw=j#s<3XZ239OmPAB43oxO9szW^R-_e6Y@u=yacQd4(H#RNfH3w(xFr=OQpPGtK5a zML2!14}5=@KYdRnGcl13(^Xmozu|ZrQT$@f&b`-jvjQ>nrAuBpL^8Sg3hza@}tKOdzzn#f;PH6nNx#X4>n%Tw0`lbi%`{+L#NnT=T zSSkYQFyz0~Cisi8KwI4Pa??KvM_4OvaOQIOHEkN;_hn5OxgqVgePB;SS--sZT9`IT zFKk;y#>ER5YezJ%8;#m1a##3lT+H;D+*W&=YA_t533-8Q96I~HhRTv|pNAi@#3T*X ztt`8Mm_?Kq3*CFLWc=cx6=2WONp{cf3?ImFA5YtAt=PHSnL7ONf9KzOSi_gz2L?cR zXzrzk@d6$%F#ZN-bk)a6lhVKhQKOWzx|3IF-}jb0cUd>ew4R!!8L3i#avo3CE(JsFN&VBmPN&*kw8Gj(de zl}6ZThr!@51L*x>r02Zoh&-;(xx2r)^G}U>9M=pCOEjKJp1vb&h;Xi##I-9o4%YG#NGP^MDcLb@B71B(>gFn zi<4oU5xgT2&Wfc=HNKQsC=sV4-$yBeb_wV0Emvwh#u=K_adJUyKKVU!yfPbGQ!Sn_ zQ;pwwEA=PiWgOZU<02)w=l7eYJZB&xUIR6YrQS`&(Gr#?q2!+AKg2{s)d^&F{bu*%k61%Ca7>n)c^rtugs8FWYe@^Ih!W0mTSLCG zY~g4*l#@00zSb`&wz?}-<3rH*D~Z=VLFfxpa@5r8teLc4(YW8amuzSr&454Dk@Bbi z($ZT}N%W&HP~({0tw_4yUH~TnFvb2Qh}91gk;5E#DS6`Mo6bJ0)ikFVVV5~uYICN> z!;Nn)xY69wy5Zma2ZFDqCFnS*C*{%^V>Jl1bxodrS?%95i+73voWo!%GLjd&zAwc4549(i{}%BbrEtqyPAS+I>zIsqp&<|R@co62^Ts?uxw?ZOxn*&uOKX_T7=4*8 zxl-lHoeteUL`^ps&P=PlS{vq|5%*Az!juNKUM40-l*e02oLBafu~zvu;4S34b5A>IsgKd0JKjp9>}H?h z?r$hf{6woxWIL4+dbYw+mo@4IqfpaVvrq<*ZpqeEznZ)870Ax$z3Tb#Lsnishz9TW z(@61hc5%at7S5B|&gw?arpn(3lid@13*5LjYG^%_dmCsvUku_gs2s=>_@%FPnP@Q- zFcr^>H0Z?A_d)&pxbjy7kMNf!&u|<$HL+;fLZ3T2%G&LJc$J~8%m>85NKj})Arr_0 zLzRB|awc6sywEirte6<}@Z&wkB#PQlalU{_HVuXjJ8xt~AJ?XC_nlo$Uw z|7PpfT&**!h3e$vzmJQN5tj#{Nw6Yq2rJ6F;KtP(jK!6E{`}H`1a2_bU-Y9t>*~K> za0vp_wb*6<(uO4^QC#Y80UaGRb&u^oxwXHpy{z0VVDM;J-@AYR{rmR}ogwUc`G%&C z7pScmG_@B=JPY=X)_&P-87)Vb2?rmAaIzGi!T$HphJ;)S2!Sv9T@4e} zCBXTlpcdQ7mmhn3v(FuWle@)GocFt^Oh$4I$xx8IRjkNfA1E1!P=uA4flUG&ItE*$Mx%-xK}&(OI>`& zMOBTfER+zG9O8xxONSlmZ1S)FJs7VpOq?pkWy_3!V>lUp#yU~NsW)Df!0`Ni?PtxC z3fbF-y)cVr6Xb#wp5zisCYX5@`xN}s>l7Z8v7Hy}y4bsaD5DKpNDOt@L-}u@=$$9S z?PTpA?`$e|eBX{A`{*|5W%NzUor`s!B7~1qI#QTvTdpke-L9}8(X(UdeA$muL_vXkV zNN*PAVny5n3;8|Ip{eujrPUJbEVFtZTe!%CtzC12FcSG)AUHXYd@f^TLCwGC;?;?` z_%E%$Cd2PnT;|JMSgN!?omF2d5G`y*!Q{|`yNCw8G}KN4*o$w&;6qde1I0IuI0}jV zZw~?9HxqO(MD|lMPX@;m>{raKk^}4kAA&*Ww@C%nzZg`fuGMvKORCk?Z&!OG`|^wR zbkiihx=;zB5}Dq~s?QI6dR8x>QO-rxq5FW2yv%|4BHWq7+3PrV(Awwo$#%Di7)?Jp zGE&mS2)*_dd;5qScZ$2l|%{$JJzxKqj%>j-@2h9c}GBkIv3QMV4Zrq$xupWdDnxvx31yv{>> zCl7_Lchb3gKiFrSX1x;EFFAgbpJ1qCv@_viDhdX>ANP+i;BuglSOc3XChdlhcNLMi zuK^bSLt7Qo+(P}aTKjU%s)vQ}eDV+c$FzwB0kOIZ%QOkJ5x(&D0j-s4aiN3Z}pY+q`eE2EpQK1z>+hfJ< zi^H?p7yFpU&_<~}xyoqv!`YA4<5JsuByEysIP#{(Ix6mW;w73^&?LBW zFa(||4qq@J@<)$6JVo;k)1buR=_z5|o2nJT5)J^+66IJ=u0WT*ZZvZL?aCY7aI(>J zqPe=tgAzf`PsveV9K5`{Zo2ektCm_P_me6kqrpVNqj5}$Ik}#*@d&P-_utgwUb#_h zGkaU&nfSO85-cwqG5yEzs-*!EgCP6s{kgGZ=IhOqpz>QzQD9Fxtj|UjicX! zJj~1Izy4Uy@v{Eu^5e&B;#y*zW}eF2m73tt*twmQ9SB&^;7I}Yr6N{kKB9WLTc#I*3mN?-`i3sP4XAYL&K=1>=Y%6lc08=v;w~g#5aIDxRiQGU18Ph`lD3UwJEVU zLENR6MfR)uCscrO@spYPTRrIq z2BX-VG5Nf$6T$FRh6!k0pShan@&f&+U6^K!PMPhtBSFRl=i4xcNv365dL3NT61Ba| zf+T<6?LNKKg5w9Jkqv@PHfK=yp^|;)1dP6;T>GF7cEI{ z=Pqn5BwCO4fv5fGH|3!=2;KU_`t8~{If}97q=WL$iOQuAY)z<@4RR`c)l)inB@aIP zp~toErLw#v#1{)_Kk93=yO=WS@@*ky|gv#Uj_^Z?u;I&9w9LD9l0Slb=&SX5?XW z(rL=1mbw>cJME5dG@ZT_5Xv|BE!Z&a+PW_BZydk+{DOZ(moet>u$OjgmD5$NhLux66vi*z zV2R5bT}RKswusSdIx{)9Q+vt)b^f7QI-5^JE-SK|HwY*De(XR185*HesdARYDo75f ziI!c++5GT}B=Ca}-RAT`rO#{asW6s|+-uITOef+4+jOyU6=UNw{?YUNGiB8db;Ck; zV!}~F;e*F-B?ssos%FfyiB^}DdUhf9i`j$)+NZYsFcO+FS4vAU*B@e2r@*EWbFp3?^C!Wf#V-TMq5Ai1Xc}6(aan{?b&5`8-JxRjb ziTV^LMX0Jy0rOF@v6-3!$8X>AX#06ikCh^hww#Q90-BYEewrRKhJJHABWWw!9%?aB zRp4In(q%vhnKlZosH8W^WQ2&dB~whK@9dRhX7Hd>cO_~Z7?##Yqh?HpwzO12)d26H zNAI{2qixl6tBwFCDS_9DF%XmGc0fm_)oYHYIBwBlF!E$C%^6tN*wE86{b1L*Xxc~JU*)Z^?!{`O zk$`fku5yMW`egpOuZy~mAsp&C<__5fLnGH;Z)-=G^`#s8l(&(@?2cyGLCq{)CiJ+Z z%xw@&K*P+|J`_8?sYqpis;yP5j)_Y!yOKrh%`R|szAPn$Ch^s*{DPt`1qe zoKCFW1J8ke3EhjOov)$VdwXoXzC%0`tG6$Udt;Fm4#C31W7`x*#UA+67k8W&)1u$R z94{{DRm^}h*3onqG(9hi+zMWWHSGi4Uf!eE@l-`sS&GOVO?{i_mJm}+_IP;{`tP1wf`D<~QnsTgIWX>H@ildplakm6n^Vma!;L7Z zkD>dKdbO%o>2h?oixC(ivZeP{D*bn&oAXM2a#h7p$x-0;A5{$Y*EMFjS$`bS@!1PC zN|2)_os7M%)z#}^5iVxT3`J9s3XkkmBa^Lt#1AHDlP%po5q>wS@sBpVtMOKt&B*oh zd9{ZUn75y*+9MzG7VrR!ai5nGEVsf5bfahy+9h$5rR<=I_d zd~hEdCI*^wA4J>-$i_)nk*}H{H3HS5jrI7s>Fw$DZb275^ik;~BjSbgrMIP-9;-kZ z1Hz5dy&hrlb7i|cTYzj1oBFrZzK587a!e}K-66T&W9T?&88#u1A4YH%EYm+tKl3h! zF~{KAaG2*^^YuH!WN^KBGV8JLM-4M%siXxnV%N{ssNmVRU><99rP3baCJG+rt%RA6 zjEs>`)CW4pIEIIhYPJZ-$X#*fKN{4AKaIDUP`FKa>w(Ggt@~t{jHliT-)@AqyE=wD zFb2dh85gE;!Ws7cj>crQpJq3=z$(Q%1xzkJ`VgWfcuf~j^$C z4Gaz%ew^fxUV;*UzTZE0B(SuNa||p)zawCGG|@SeUx9x+UT|-54IHSerWs_O9LJ8V zJXlHcE7oB?c*M?olaeXvEBmaZ^UJcF=$mq#W-3nh5zGn7SET;-%OmOf2x@a0cU1=z;e+ zJ7=e$(+MHf!E2aT>EC0umPXH?_!%Y>l7Bz#Mp$rSN6n(ror?{l&dZ)@9!D+47*8&& z4X>+d`8L?5OPPkt`J1cC(*A&~7`Q=i@n94hRM}<$$%{X#LPnXl_JK2`x<+q^SX@dZ z6yLD5#Q3Mj?2Qy?%Ovh}Jbr}1V;9^5GYEh9JZ&c)m8Hg|^5*GyfU$qHmlfgkgt@_3 zmgbX&=Mw7%Tv&ulFLbzqz3*XHZvG;qN5C>#8j0mkOdBxIm=_up@b`5#^7`lcB`_qT zna^HJhr7$Q25G;x{37zoNJ_o@I_JBdPN8zhpz?XYrR!cFoNe+220i-CtuR`tL)f`q zrBsHSl5s?%r~y4q@g!*WNsvP;T3=Rj*lojlQyJ7p1(HkgL_ouur@NW?6_fetOtDB_E^ok{4z!1)>Xq|}#&>4a&I$VGCw zFX3Y4^LpYih0gA(q_W38pc3jgSiE@_@QAK__=Y~fKrIEiBm9GwJ@p(c@x9&d=kXbL zK3i+gbWL4lszp|Z-pW&HIuSiN-gBThO=*y;R~WGz7}jD)2Z9^86jVixd%$`4CmR`AXBNIx8x^pl^R1n_&4e$W<@%d3g5< z(+yMBM3vO`>qjD5TKQ_%0l`0@%z1_(nUkFjL~{y_>x8HTEvSbdexX&z@+P-iWZb85 z)%wY8?OuX<;|_xH8+=BL$z+&1ZGUm_F3VSIcyF)ihaoOpB%>GW7~(W=>qT^FTi+-D zT`TsnaZdM_bG6tc`GxdtEnjSQM9qbx90r%XGo>duC(w-7Yzuce=z3~o(h4@(S_s<9 z*B^r=rZ;#qwxjZM**Q)pcB=5(lJK zgKK+uf6nrW!Yf6e68`)(C$HL}JfKcV6d|-NO#!=4&|f6}nLY*8U)5WleA(7=F)!Xr zLuW@hspZbUis|(&2kukkb6)O{09?W_06sslkcqT+IHu%Q73a3PH&Mw3u&Tn<@h?^% zTtm>=M`HKbpuxA^5n$rmQ1X6B`B|nr6)M*cxs}8T;k@({J=3}a6OtQ9GRW=TN{_}r3|zdZt-5!RKr|&= z+LChC>|4~2IxOrd+n;k+3wLiBsf#Sg@Lp7#zg2f0-s28ua4)u@erZ%3tSzZN5;#_YV&|W=k#MUzU&epq>cZz? z-85QQRRSWz2ULtZQ4PJ;EhP2B+8Muu8_s-;QiryFJw5vLJf$=LE-tg`xgGUg$gQ|Y#|TQ}f-V6t#t`=jPzk8%0uhD>+3`e z{a2JV+_-sl3P1QYUrM$QmR17b1>Q>!)p=u5G*t>>5QRzq+1quJ*7co$3*b#A!$!V% zFEyI_eJc(>Sj*}b8jQcgQGl{VOE%q`qN_Z0?WOZ&dYs_MGt!WGUWM7pb`c`V_9Kf{ z;qa$C#v}1jA*g$Q3GE?&d;UYtiEcK>BkGUY?X?DU#tWsxc|J;S^$@c0BZi$Ri7C{3 zr>yl8jLJR@0TT=Uv6@q9)BCsg)9R^iBV=!C8)Ta26dc+e`HXS26xLL+gJQY`*Rm@2 zHJhErj_UR_oC#fYXeq2P=6%FS*Iq_h=5k5<8@F-Q<|z zmD!;L>iDcl9i5bT4N9q_cORzH&A$cO5a`kq_EymsZgfVJiAYl98+l^2OOKUACp3;2}eq>#xgU5cTNt;fqZBpYhk&$rM+~Ajy!P$(K6F%@I zV8gHbv`6nmbU5%Md>`ita{nQwHH3xpd5KZ-B3Y`ksW5IUwU2Fu38A~P>e=B>EdKqk0-}VP}2nXMMEqaS5ha*{Sl3 zCVcv2<$YpY-gbK<&#YO3h(scP0E;E~>p*^Noa8ib&#lk;JdY9VrGdANH)$hTC;ETM zaY?+Tsw_Txq$68J-HM?&T`(hl1E(4E~UT9X#E2)2jn9r@!UQ72oy;D>S0=NCC54@EFYgc#*g`qb3)U>UY4pmj|o*!XIZHM)E z;SnH0h!A&;0Q-G^5RjP*Z*N+-l{mU_C(uwXee$&4rutEkaWC(>URWuVD*8ax^zDpM zI_w>nJ1KRhMzxppeNHRRPS|{iR}(t0AlGbzX^;Zq`k-U-C$-%^^^oetJrced4c(0M z4q>0jP@&u6OeG21TLZ$zK>6g>VS}nUN}y)ywo_Y`L*W{z7d^I2d%|&E>2)Dk3YXgK zg-x_3`d^4p^>?q9HeB%Z*$&Ch?k*2@*rh_7vG+=-Lq$-v{CqtU)pR%IY=Wje+e1IG zk%6Cj+YWnr&x*=5qn(+Yl^b49Nw#d&^R$g`8&__!S`BkpUwp6guGR-Uf%6@bN=GLn z|EHY?&Swo-`hA)hROCiED3}Nq;MK@D;`lP7gLkf$y(*wDm>7!S0Jss;4*xDKmhv5bB~ zkCcre0raw753#tCBRW3Bk$f5pV!0Q=Uk;N@C6we=_jl~F-j49~EUl^EwE8+EmhcUl z(nXxtvVYHMBX$zpB-Q#ZZb_wuhwuo=$C9VmDG!uBb2s(0hlHk`i!j(ykImUIbF=gD>qqHkOUVduuD*2YBIy(}UhzZt6!nO9(8zJ~%K9 zna}cS`bPk~mGW!8P%E(YQ!|`|VzGKwhH6-Az7ASu?n*t7E(dt4EKqS0#F4nn$>!9(&;Qo;W#c5K(c(RwvdvFeoz09Z5adH1 zXiBA$8@t?_&t+~wJ@{nyQ8wIa#y1to#`*=IVpt@J5VTcS@8*ul#jmDj%us(-04!q#cj>mr& zbd7LV!ec!NsJghUl)QsWKqnDWS@}Rz{*Bi11f8C=?cEP_je}B2j}wG+&^1`xa(7+3 zZ&}izUH4aWj^_vEv)|@6OEf`VeeCQY6LC+6r8IoVi~M;=b-MC3O$F#0SF(YaaWN@e z$c(cMbxx^ZFnD?)dTuK^@+h>9e&J=FWwwyS$rE9%xKd$Ne@KgQe(^KdJMP{g3Bs&i z>KP%EO&hOuodXR~Mha2;TC{JeDufWllnU4WjF6SEO74^@wW<4ouoJA80+5)6c0Z6d zU}!V+c6!tsaP5%@uBb!sqCmbgle{z?w(rG_>62cuN#2(9{^wSJ=UKT2(B1+a7*t$G z+OgnS8zXix`<8J6;D%k|HehDPQWy80I$i z#>R^Cl#u(|V|6+~Y>9d1M=X|pg!{hEd#<@h5oDWF8Qxf{83zgr{Fd~)+wOsb%ecn|^$&LLy3`3>nR|<7^gU zn{H=98-!DrV)^6Z*xMe#%l=ekP3QwDq_88$@zZw9i-OAt;Y{6n_-0X5*! z4FZB5_dY+DF!9O1O~-9jFq&6jJyJw_Rk3Do`irZ5pva2ee#6k%X~zk2hI+_Fj5f4$h3V;SWuWMutZT7~~l?@V-XOPYEW%&vw;B$p=H6 zH$e1v8;km(PS5Tv_^IK&mPRCl;3*;(Ummhrt)Os}J2IlP}F%oKzyo(%EmKz|osW{l01i z4&*%rp3r8RSrWiy^xAUNe9@pTY%ZT@yQ6Q_j;v~@N#yh`>0!bp1tdV1>^@6btud0% zl=A+2obwtc4^MW4&2@5p)P{68erk@$6V8W0w)ERfe94t+mD^1;$26xzDP!sN0r3!S zLiU3ee^ZJe+p$OhmA?YFy_Dj#ctnmCyk=!=<1na%`4bGHIuOCNs_QM7>`$sIq8l`< z*nt2+l8@D=#(qJkV;Y4!!Fio~3eT@eNz)|_l9P%xhG{-tw(J6;(ok_NdgwL(7Y@4= zxIoyT)^}{eKaBBdv-V@fN}FejuD<+1NX~AV_$4Ju|!D7nYwuvlq7(V z`}%$vGQjD&xZ zJ*lvDw!@P+?AAGZKp9?n`$>k7J}8Pgf+APaGU255%%Caw4C)YE7$C+c1UAf2Lh2Le zh<*HC?B*%jmyT&WQ(RILAXS3dN!Yes?F22;y7PSoeJ9d9^y}Bc;Ih06Bs`(GX^z$6 z>ywvVmTTuyAIPJg_J+nvHsw)kV?gR)E=0-)@+N)Jo}1__v`LIVg7W(T>Y-6Zql4;P zTGPWuY>W-p(EfnaKO2@szAIM2--H4nU+{l(R<4u}fI4ZtwvqYqvo7L6ab5x(c^h`C zRe%&Ed%*v2w~R3AVcZL~2ed;(60jx}lggGwLAoVX)9Xy(W~5rLw8`aj?-I7A$rxCS zHUZ$M-3f2kk-XSgf?Wvk$%I^Cbe@4cV+ywSAWP^ ziX?XUX^eK`%7}<9eo4%4k#s;vF#~IFh3Xr*VnU1@CO2chRa9LcJ?LG09%9Gi=oQvb zTqAv>26W_4C;LKIVQgqmQa}~CIq}%P*oz+Q@|CXVs~7!t`iOItQ^tAv#%UwNp^wud zbLld(UI_?c=jxZye{#OWthEvE3!dp~6-4&z|5|n?bddIs0OI zd-vn-as*t`OVw?oc5A{Tmm3Gcqrk23O)9X#+J939dTP-2q7 z++Vat1PoFP!o9jZjRzmAYB4jaBPfs#U6859;+aYb!k=Y)d@3LxlHwWD(+`cCXdf5E;{rI+dn# zMxh$~=*A|a3L7CDWvO!Y^q4zhRolx+zo7Kz-91O!muKH9#*H~w{$26B-s!}@_qbm2 z$l0hK7%*T^%#H1uHa5(ik8Oi}Gqu{%za0hE|Dn?tz!d~AJ^=*<{};yRUq~g+WS#l0 z>bWPwfg*2;xSt%gdNj&rb~c$&D6S60+~w>Dd!;$gAC$!Y76WnO5pqs9=X34y_Xb~B z`gC7EvqC29?Pkbb=lVB360LeXa5!dG0{4z6A8&~RVi zduwEkRak*EG&KGt3I8*;fzNQVuOCI{~$8fI2GH$h-}uZvx3bl(l3x(Ee)Il-f_mADj(f~@3;!HjMv0eAm-U19mMXskMD=Yu zuHZ!e%Pilw5c0tnVVl>lK1?$Izo^Gybb#U$AUFW*QVO77Ld&|iK~{S9cdN8ZRw|Ea z&?Am0k0qT_bv|bEAJ}zedhaQXwVVCLW?ttR>hTFn_a+M}fsnVU9z0RmHqp=^0z~@* zf2+g8Mp1dH83dsYq_WfprWw^#w22b09jNIa5rYo?pas<*{ZqSfC8qzqL6Pa%kGpx? zKgxq#l@7n51F#_(XKP;V(>zG4d;$V5$%C94#rrva*(_?Tc{3+HP7lbQM`kQrY^etS zdOM(2@8!&nzjrmz|MO`v1Rz%2*WJeG{tYO7Nv&$|8_y>1Rbihd|HS)H{^U|Vw{M$n z(HN~m|BaWV)nDv(S$_q}&*4a|T);-yk05Il?(FPrJzDe;aEZ6Kw;41U?gJf|)z#Ji z#zOr*i{Ar}77*>_va<|Ga>@h=`OHTd)%qHb#RMIwa$dR_qabVcyxN|p(joLJH(ul{ zq)t?Fu`F!M)ZKCjvec`RQ~A`RQ{%FDhcL?+l=ZSlw!Vs8GwRNNo)+-e`%B_&rWS%% zG)TxncCVk5vh%e?yg-qwwx}Q*E>%!)PbWb;SG@eq=avW3!HXo>1DWh|)h{RAB8vTQ z4IOI_A&%hHRtyBeYVHPClkVS7*{7GJzizSrE(b>qhc)PF>9>WEp$uUbFM}*=y%}&W zU|ZKbIB-4EMHupk-o@;=4~pnWvHtrDf4^t@zp~9WciEnfD{K#ZT8vV&3YD*}P`5!f z>nk5Rrc2(LxN3OeMaAKEws#~+@%0l`5RVAP?;WMOw)(Gs=ITEaLzopK@J&Isc7?~~ zeT9q(edS{v{yv(U(Y*5@hqexA=QxD)p6{vta9nMy$5KB86Qi>3DYHe=6?tqn)Km|^j(~Q*mSo!0q z|GL|R>iL!chm#afVQS~w#|Y)qqHZ#jlm-AAJl?mQ_{uo&r6%>s-xuPaH*z)LyoK*0At3k|Me3vH`~L>gIjFB9L@hKjoq3j68(!z_s<29 zb^Kp8k$w0_vLIeTfyGsWCsHU-lgq%xg{Nx*{+vqWtF?#W2bs4uI$7g|7^xRnuADwQ zJUlKq7WsYT>gE%FSEK!ZSTtr%8K72)c9=nxt9M4PFXrz>;_vf+|GVLU1|UNBdXZ;x zTL(Xd&Ve!GioNrnlSvn#^8fvB|GdHEz>?(X*D2DQ69Q^@4ryJ+~N$J!PG6 z!~=L=9@J4ZqS?~Rihv!5+K)4K1|T-3>h@5#G4oW?TFNauf#Ak}J>H37Np?Azn|CbU zw;s3)GY5E&$F6d}aUSt3KuhzNFIfQ){{QP=|5RT7HLR{)14#b0H~Z^Af!9Z2|I|AD z>jGroZO>#Q4g3E6a>N5GyH2h$WgNG@#{ZZ$grqc={zgcq)#ct8&rv`?AS68eauXmV zMAn-kocI?{=3l=`vi84*$p35EtXlqSq1;Y|@fhY2UfTE0)I<)pOl|aj(%|Q00h8DN z(Le0Z6;-!J{Qns?z(N@DXCeGf_#OY+6>7;A7mOPg5NQa%M31@L_^*3JNJvV0iQsW< z@4ZKXD5X2jAMc3ejr*{jB=S3UYXjIu>Bb1IFFeYR04uNy))vG=_$jxXYMjHQ?Fvo#Wkr3?suAK zMDo(gpL%r;-)Qt|fF6D|ehalA#oI^y%zGE`Hz)Y75m8@3q}tKWz`LP{Qs-Cdti&i! zyVN1Gk#a6nzw0RHV$_lPLTl$-|9CMexVu44&gA=)c;hYT%al>TB?j1587kd{(nbH{-ZB;ZO0SDpQR`!%wIx@FO}*PZcN8*u#l`)qK=UPr|6g;6orIz}@hxMl@3YRz zE_t=$t`!!5n=}}dIG~*&^Nx?C6qfA~?bYJbS<$md#XlApS@YJ9m`!!4B$=itH7vAi zr`(v)Z;K6;boiKnq06mE?-!JDbFuU5&6>^M7xPiTqyD?|Uy}14Q>^KRd}|qZ9oW6J z>2V&%T9_BB!{o%a&wIds-8uF#IgnBu16^m?b2s8MQH5`v0`*$YKS&vGe`r(r7rB0#%w#oxn}YuG345yXnBO<}e;eeGH6O?Z|@p$PDsv z`IkxAhMu!XN(M8d;3Z8rn%2Kl;oAaWRsVF=sm(1A<2Ft{kObI{pOa| zsrkA%%kn?glhgj0g_^DuGb8=hbd7!J({x8U3F6$bi$_>_}~agZX2l1);sZa^BuAcIiagkiYJn6fnVX6a-Z!K_xH4$pAD`X!?K zZv*PlPO6&;^p5y@HyhR%?{$xtz&UrW%jgDvwnY-y&&gy#|59MY#|224eEY&2d@?GF z@>vWb)=4yaWP9gWYl;NzA+7AIo&MOxuw0Kp9X6p;(L($Gydc0`cndD8{=u1c=jNvUphriE)PpmA?NTWCuawD1C{0qw5W#nUJe9C1lv=K>=fHV5FAIxNRRK(q z5VY6Ezw!}62&q!sac;Rwly{UkM(}X{75!sLi;>*Dut#*{c@Ljd;(zwS5AAv#>Y?n? zvmy&pa+_FU&4nn^EKNjs60#!e>=2EKW+wHzh>bQFva=9P41|(gk{c<8+~>wJ>WzX$ z>2KQQ?%61L){j!OeO~K>`}EA7h~63&-E*XGsGG*!IQ4RUcH|LVy|X-d(mf<~;zfgZ zHjOjjw{qj8uDQd{W;4f?Uup+4Aj+&?btsCGk4J? z!4k)R?zTA(RhOv+a+Cx`-&}nTcnWKL&fNLzQJAJF+!|jg^#)US%#A!o3$8q>IV!?> zMVj1R8%7!VdpHXY;+j4&Ew*4|(|b20rN+33c^$R+s~mi~?hSnIo$(Ac98-E5VE^Xs zreQ_cLc;tsqpslr_3_sqZ|*ou6I#rC5O6M7eifUjI? z)GH^M%%GmU)L3;E-LeuhHwdLVb$ZqDfe${U!9I7|KMiSeV{b13k z^k2(0IJ15j$DV=0siQW8Kxx_so^_kEMu%S534cG_^_UKo)-GE~od|+h5j?R?-hC&@ zG+q_#3t(2Y(k8fTeN35V3+`9xdD;|jxb|rhkG;V5`^)&^{PDpr-OcFBHYYjh_->p} z1s)*Bu@!S1cQ}i_kVLlxdV<`zoreDpVQ(GQ^!NUcW1^^_0s>N^gmfbfN=bLel$4f+ zQ6`9VOO5UrAu(zyEit-7BnAu^Fvf(j?KjcayFSmC8Vpdz$uPdoPqN909;%j@#f4r3$|LGBcndQC*%&)2$ zdCGt^(*PUDB)6M&CHgFhR^!8vrMhzC+j^MOo}UW+mL z^`|nAUeCqK6WsQcs}SSfZN^4F50^hlt%fkKW6;}_Uh;Y?r{Sc0yaO^u#lFwW?RnX> zKt;?dQknPjyvlHd+=iU4E+e;r9(6F_&C3@+;#0#b}CA^gX<)vS`0B@)w zC)N}Zlo>HHwFV|XU#ggN1;p(HBx1hUgbfZgw6cHLhpv92)QuP`X-fI9?3qzvelw6o zvin6cVxpbaNOsec!PE9yU*xT^kRqzH$3>=I@w)5bJEz zWdASt#9t4UN>VX!A&JU7(8avz;kmH`iST$?-mkatPe1*ZzTX^SgH%oqtyv)@X@HQ%x@OAY*r zxU=3sR@H2~Z5oeh*zrAQ>MQ$?zZ6G2W}Cj z>KQAUW+uq@+eL_c;`s05GCqF|~C*(7fC< z5POt7+`<4C-Tp}_*C?ZX;2Cm&kQ~s|nsT(dbi(kfrB#00=6O~&$vlc_4GzJu%Ej0` z&&+785S9yhw9209mDNtFybKFEZOcJnfHBH`UIb6ggU+5H3YnJAe3*|@yaQS0*&JF_ zq4Ur7T3lN!Nm8=FSgkW=QZf8K>frB(>*v;Yz31y>NqDb|ucY~4cNzxXR`K(`wh|u{ z`mj7IwqRQbYC05Su)fAad$Q!FlIq`xV?b*?9z0QAD_F^E>wa&Akwf*m9um+{ zesL5U7{hcFCJ40@Vm~^nywvI{=PLc)JF7eaxb&^HTq4>rm3XBmd4Q#F2=cFcAwU$% zKWet*LnIUNipt1zaR!g8M$bQaYpCzF+tpV3K-#5KsXo34pnoKNNi*|2x5R$6Tc8hL zd3Cf&eIN-DS?*E0;C5d5I*Oga+Br4j!?M;j%DHj+$f&l@?B;{Nt6v-(2tjS4i@+(f zWZt{}d@lIs(s9l04TQj>BQ(+VLN;;Op$)^6wby+te~*|SwiNui`L}KQ<)?Y<8T-rI z!bmoPc$OLKYH*MDu?NGo-Ffj}bwgk9ZZA_;d=UEkcj*~5Fb1k`|Zos^VR z%Z#~L#$Eu_%Es5;!2uLt?<-~xJq6{BJja>}+h{351IXyDE!B|; z(dZnGvj>vlRqF4DLX7tWI|QnJJpKAGZ8?i!Kjo3uZf&`BseG)Bd4ALl>eP9*{7Q!v zTSGoCw;uAk!z`giQJ!i&9{ng>%LM_WPd)w(taz6A%I}$B)hhxg3PrsIpGb4V(=GM6 z3d?f4ihCfimtTh?R$4o0gj5T6BGe8~6%*GH)mkyQ(%}^6&?9t0t9SNW+lJI>!S41& zp@5K|(4vIE*v=*X2}36xrE=W!J|`-A!EglUIaIeH!sK%*|K{%%;CtQ^g#cdW<> zcpPw>&Oa)=#muP!R?vF?Dl?}nFnRmsvO)!SDaD+d`tvzQ$)m%iYrltmuk8vj@9`mG zO8YW7LkYarJeAL~fOuE|kguiQaZGu((H#u`!ybkKk_aZX$x0*@Cn{CVqHE}Lt4HBa ziZEvvE{&DcO^;%;Bxx9z{ZWHjz6cj!2inOP&Y5yM^bM9jlL?ab^Y(sfOyVw3Ed3c; za$<7-Dx>!YN&Z_sw~DD|nV_pf+6Ip8d=g;^t+*D~&|MfJ$`>_LxqgE55 z!TsrBp?!|<;+6}#1Xx8?UgpZRXCSH78%7cx-CkUB6EMoDND|GA`TcrM>G3pl=2XJ_ zr8dezUtUR@ge1WL52#%IUfTxbW4&3D6s{$uyNjOMV*B0MtD=&i7*P@Ted5)U^7#gq zY);kd)6^vAL;~i|geY?UqRhE_nzDeC+QSwMq}uVy~>V=qtG#~=n zZmk5(HW7)}3(UQ89K{airDZ`IB6I;5zBJrCckNVgO!;@aMS5hfdo26*)!*G}8beI- zyY5_r+|2PPv#QmZ++(_Y6!^Ex%fv24KFH@Nr{ECp_nxiFTwBB6!1_HDGJXBUt<>K( ziSCuRHWa#HT>HZ22#o+yAX5mc)xmNnfW#XBlUP4q{!|S8Lq+Y*<3hiR1Ie3P@@lOe*!^tEvfbUg>pkd^+rw@)c302 zoE&CN(oTHy=Df{aHsSG4JHf@hmMgTM8GnC8LL!g5zhN4C{#nI9(8_t4HL&WN4r5om|BvttbE6N~^-zzNTl3NI3s$`y9SJFYi z`uRX7uK-M=U%xu`Q0Qz7V>%Z1@uMD31}M+QL?R#jV8fJR`;`MB?V8sEBCl+i;nF3aZvd8>FjJS2Sz5dJ6D1ppzyn7im9!4 zjL>5e*H0n*t_et4pn|gGlX0iC47e|xFEv*BOuO=f@t0_@)>Zd#iFY{O zv5q$tTpPeP#B{}qq}pzPZ@$&fz1i~t&r*A}dt&0mJwYk@J-x}iN{d;Tgo;Q{$i?%? zda}qH$0IN3C*;ob^xoqVFDjU?^Dq84Xs%pb@Ia+_{Oy38_Ee1XgmG&_9ct;rcE|?TsC9vO0`QAjUb>1$YvBi(0;%OD?YMK%Y)3uW@yw zy&@83{Lp5g0N$g=$d(P}3cVA<$WB_~swJ+i{3ORgNswveXIEa+{#c{`@1LZ=9xZ?Xqu;bF}I#b3OTAl~-q+1-)r@yl1+r2df zNVcS`KS&GhiX-a7p4}69nPVYR0`?y7pF3jadF0#JU=DGN^qUq5LzXvwM-T*=XkFWu zlZJhzD2D3Zl-3%Hg`lz^JalDTaJi7l1%|Nss_C>bc&P1ZC*@!dSKRR;nR7t@nEm&z z9z?sV;L{-n*Gu=aI$E)_ncS4jZGyD7MeAiX$-I9Y^bBU3<_!+I3%*UU;%%(dHneG zby@*=m|bHC?xgR_>*y6*?~UQd&AvNj@Vkx3#@!^|t;av)>C%?EEbN^F6}dNUWe=_> zGWo}O%V@~O+@~rTSEz;sS)D9kGp}a@Ze0()d|tG6AG@$_;}~3W9r0YoAgJA9bFtyQ zXdPUxcGDU0yfx(4k=*3)fzy=}j>=%-Eo@7ZCJGR&lidPFZlhkm_zB2(;fPR>!N@eP z&j~<~tn3=|i(SY)qGI?S3^P0St4Hfx-Nwt~B_uvCqM17C2qyKq6?G$OaKUSEh5^1dF-OKE)pG zpe^n=jafA})-r`)gEgzIZHr3Fa>m##ZZdE!*oVm?Et49akI{cD(dCCeN2 z&II%IB$JMEj+JmF<9;+vHU}~!m*&4Z>ZN@Hnz5BDU5~(-s&4|TnbdIMl?T6CM#4E_ z4eN!)3z|hzcf%X%?y%?fb2>cj5{0Mf3mk6FJ%}uqjWw+ozWGbpYUy)FdPM%45_5zC zd2JZTxMKj|?N)tbX!H11sj?PuBw*(grp$HxkWl$ z@#XI$KPLarq1-$ixSdNp?tyN&UU))!gtc^UwR%OeuZC-NqdZv&*~(}nBU~Nara_o< zKKKcZwqtDWqYJ-#Z34(G_c>+Lhsm;BA*G6CVkI}s7H|ZnS)ET6+hj|5_G>iP>uau& zdFZK@8=#q8yaJ0Umy1_{3Now3R%O}Bzd=ql1gP}(k*Pz*7&l zkD3Ab-=c!~Ganvr?Z@`74k{TLYG;F^8Ke$*Q2SNJ9Q~BY&PIa0C9rq-#6xrD#w~?L z=06Ua3!tG-OqhpzLiO8 zah)p3wc@McJg&)j>aVym$7yFkzr7*b;VWOE=PzlT3(1354|a_%>3Nx8(v0ZeAl7}8 z%wg4&hK90m9FDF$S~#^2&|unV3`cCgEWIm8Vw2q7x_Kpt-CY`2wym?= z_k~igSuxxaF?u4xIh_0`%TUHko1R~8B6olS-`GM72>4x^_wkPg(Te0r9a83ok0);K z)rHtsVv8Y0$uI#@CN`BDR{@VeEK7!0&=Z^^b2()nQa~1}JnPQaItKz`7+KnEEUL=3;IZq+ z!8&e`P}lj#dcPTr&G1Y!(z$o((pZ#=<_z95Gff#PX1X>Og(@53h10ya+XQ%&>6B(( zanf$GZiG;hXBTOPdG6|y#L>;WW0?Cuh_F`WCRyR=9EUqEjZh4u;MB}oW&@N3G^EYI zz+eNiZDeT376Jtjbz)l}<~#AuvqOs`J%u7L-Uk3FvGc#A>GcqGO*_7hym9fu&gJWg zwf!e5RjG5j>y}cc4l5wLA}<2VE*Ud~lAXofkicD)=WLve!Z{@_#h+Q}W-|K0XP z(}>X70q0ICN6HwcL$T%%Y+*3a(FM%wFYnuT5wcb$n?Sh<6C<7Vf=TtvbtXL~Enx zt*-{hn`1+;m&WYOaa!66vtCY7X46}yvH9p;Cdf6CsI%&(<8^JVm zJ&BOIdS`+6!Y`P@@UZUpl1?up=7!d<+#f1+Q3IeP z(3ikiNauO&UcUE23(~P^$M2YaH@ws&ObAZECEG)`$%FAYEEOY9A|$)i~HK*7^{O?ppgnBuTIl7FhTFli>J3 zla($=9X1E70pZqX(PpcII@rEt_p2;CHH|q*I!5rKG2Yu^$WTnwiH>;4M~_DSG9@`0T|JfO^UQ)r4UP?xE?Lkfz~9UeN99-_O6evL>Xm zpcBb)i%H%y;h2YXSm2<$j}=|+waF9q>N1Hf)#Kl}CY@iQQfm`SjI5MHQZhoH(f|)_ z!WsGfLW7`DPE1mtOP}ORIXf3N95F(QUd7s-Q5vV}G%aa3!3trSEKB7P;eLHYOnt7P z1N1~@)tFKw^)mWe?L&3qvMq!L%3_={d-j!pS6_uaGp^^7l}T&iB+03%DFar;zgK?> zJWnDNu6XsXV!2Uefl}lhVyaQpebFMwVCuq;$M0pBX(udT?|%i!tUdy_E4}=kPmsTy z)c^U-dCr#_KG96ZGL7OcIDe}Z1KB~Krbopnn|-0Yjm%Wo&QzFY#CGfN+}jitj2hWC zhr1Ox4Ohf|DPP!sBxRN{-%lx*s&yn7J-YG;oF>TCl(hlpLQTc?`7kNq=oeM?0sN&$ zg-q@9HSH4)M+ZMkl7XY6%;Z*csMf_D+0Wq?0AU5?O|(t>qb#!GVriF!ZY~5c@{ZmB z_g!9lmoWgfbeOFbrDon#@H{T#O>+!?WmI4#*ZPd#cT308d!KX&oyW3A>me}q5WWYH z2FFGi$iiI%gJYYN{RyF&L3Fw}C&9XZi45b+P+J!Q&Cw^a8b2h}PyO>3u!*|7>H{^6 zk!<(jo04Hqk*&hU4n&X~_h6X}pm{p{%npw za2#iJ_FJ@X7Mn+_y?Fuzqf)0k(CE3pscNWll(O3n>vXUYxq%9N)`5?S??$D53zURl z>*}HB!8BE-4?$hmD7P|JVUJIS9B=o~8Ws&{OM**Zj85=xZZA#G2m1p@vwQk7d!9&G z-dF++Etw`OB4>2%wnB_az0CVU@jXuJW^!^{HCdaj6zuG;5zQ}~lQeaaAicCTH}HN- z{fyBH!9$Jmgb-u9Xl(Wb=eW~TF1OMyXMcFw!`UrH*{qx(+dzd}>-MqPsUsRkd=r5{ z>+@jast5}yqj%hAw*@oUS;pp7Q9plORR)XmNA*smaR*;{sm1`bpMG-S(}U&EVnYDy zhTKg|)_uFLQ?&YNcp;bWlIhT} zty>aLT;@z+hQYbZZhj~Dt6q8VQS-$nJyiW?W^|D1?`D z2L0OW1g9#-mRl6fJQu)tBva92({A1JtSM-bW7ru6yt&xupi#!DwyCIsCYCz%wx+Y| z7$bs@Q^*)ygcfh?(}0OqX{5_?E5RJ&N))0otiugCT!MPoY zZC1CXs(#QsvFa%d6OBFEQA)=?s9p9DjF@z{Xl2qh#UWdqBZ!n)+_=%VmF zo3Q1=b`YqOFgh|6HBS`lxR2$-vB9<6l?qTfK0awbhA(0}^^+b%j(s}2bdgy&6u%M= za+ce)QD3vF;`(q|0p!>UfAHbo0zFLT1hIW>jx;q;oP3&WbK3M{&pXi~^jRY{$PIUH z7C?RL;eoX=FmBY?BKc~WUEdS*)DP=4Dl{0fHo2z_JYbOJ8r)tnzP)*&{7Iz8C(3-o z3H9*KAv>VRHkwk8XBTOGpUtz4)z{)H|GPYC=Tj-+WTvat4i zwgX3*LnjU5^#|LS5WVc^5yenVtC5WlsDxdtezPno0wJls?w{C(>Cv+++zKc%J_#Z1 z8*s2W6+-{f(^aU{*+9vCtk=uXtCxU!$ChI8UU49=^m##G|LSomlEANO3@xY&MXWD` zN8q7OPVkY0_GOfQfLxbeD5k|^bpJTJ7x}nPtt~69nWCG26ETY?)hjD|aclw6sxNM0 zT_zx(?gS^#z~;kb2qOjXS?#0gg!a_(xMI`C;~SJuK4V!dx(OrF**~{i+xQ!IrkN#T^m-Ib#?9p^h=&c(U3n;>e?|7TTm%@I+Mztg2*> zonq+LAr;Xlw_c5=tdlQ5MSeYSoJ@uOu7f!qPx9QrQLY5f3*;@3etvUW0`LT?Zd*~U z)zttaOdtupuu zlYSAWzs5W=FA@cOdW6{%!Qnw5U;7PN+Q#uJ=ki(H-84bnOGh8yDm3))cVP_Q;L>Js zHP44a)qb`gCCW6218BZ(gvw|HNh*Wny)Vj)+~eZnTJ4~a8~2)V#hsw-{}h)=Zdwz{ zL*XxVC!r^?752}JbA+i={SChKTRA=ChAuIA_T%&J*W{+ff9eiu`%>7fR)PF*`-(6t zD%~Z)n05U_t|LXAQUAQ@Npy{USQHsH&p>nX}W4@^>gw)m_#jt-Il#u9^+)8z2 z!{IDCAbDbV@uT_^z&(HMtJnK&!_&s&tk#)f{aq)!12Q~SGK!$P&3)4juDMG+2)owZ4cKdimKbT`4A45|b7J*YuzGg<}sYrU2fbk^{?j_CA46 z|0JJKzmpCK!7y6dR#XzX;{75Dm!W#7UBHS|`U+DHY?^+N9qp)t|7duX)8A?f6_OPL z`|1sFC}nWZ!{Db6w!_9F!+tTcX5q$$p`?86+>Z9SOOGBed*i|p4_#k;+=8D(6fsrNXy@{0=P{+?E`3x7Vmm^Z>E<%1 zaq17t@8=XqoPKJ4;%uQo#KXk&2(0Du3#v%9>uRry_Bp@8*N1N&wT4mZ$QW0g2X%Qi zAMZF2O|Va>;8x~gTOWRO+QbNh>5j&plmq$}Bco8ZF%SS(ok6YQlFEHK`jxf2zLQ_e zH133033))ZPQ9w}Rdt=QkB$RFHGmsdp%p^ySMj?)3-O_(rLp+FaX3)=ZUb*$CUgK# zerG9ARCH68G{TL)t>@DWijp%J^UfQso-n7{ffGzvNNFa{)q0ePYpiybPwny|{Sx{n z7A04+^fnC8Q5x6AC`@<`yuO6kLu!e;0-m9D~bQZ8rU0roXJ< znmD=gstUE~x-$Wg0KnXKGmBWheNuA94$I5z3sE9sGioKzL52p19D1H)RQ!m$3ja9U5Ts}GsHxlmeo{n z@F93BvO1(XnTRmZJ&CO4TN6&~4 zY9N5YV%^#|WH#|JBC`RiNF3+)W}hH(`>o&-)<2%*_x?w~4smI4t%@pcH^E}5Sm6X) zjF+9FglgMv`9&ROK@Z!D5k{Cm(TOv#PJ5eetl)ZEr8zl`z-U z@20*@FxK3Wb`zlt3}%CVRX>FgV-Fhhg(-!FY(m5-(`wQpLM{tR;jli>>Ssw$aJOc9 zQIoV0Drirz(vcLb1-L}-<2RCKP|Q$UaB#70Y~}7$m!w}=t<%HpO+3M#Xi1gtUja_$ z%Rh^46(`Vb`XRl9HukA&zZyOltZsQyG;brr>?*l?Tn}_r?{wY`uyVt_`W}6SGd&1= z-Fbb?>yH*w%hlko!^^wlavQ#!b~wElT`qe^{n0ejU9&XlE*L}3Ix{hNeJl2KDEK>7 zn#e4WOE$)}lwX;lC#U@i58p_rM$9wD(4WCM?cUy%skwWGwFe)SRTylxLgm3=M31^8 zI8|~rIWi0W?I8h}BML7nZR$mU`sOzDNma~0J(+WjLZL)C0E^4yDMZKu%2a+qq{0#AN2 zf=klRG5w7e>on{6;&Ga`T(N1mlI8u~GuP!b`|XW=S&c3K#CA+io&r6dYYJm2bYM4p;wWVo9^n~o06fMA=*=HAdC~&Zw)zPW!*!IITLd8ZqG;oVxFTm%N7~C z{}E0wOtyvD)PK4p^C0Xk>~dP`QrB%5`X&M;H?s703w5GBh3rU^d=vqgS{q}(tAYfA zFNX39oOC5ixyG06RiO;^2K#%SU~d4je00(R8fay&MMbKib;U$P=*`;98iR3q>3 z9x|LsSN=irBQ3SJ3fSgDVt|PsE#TUi=@2NFBUfQ`g1l`0H7E#WAV#GCNv+#_A$bkd zr*G>tanGA$o_~y9(XOC4c=G(Sz-0TDTu?HrPt0!hD&SD^Oj+=8q!xUv#`>KW$O(z>_B&;Z-qkAQvVg>NF;P9hKUE@y@hvHI7st ztp@*r7WN8G`n1`to)#R3FlaUp1>c`j{e}PZsR<7-R9%=HNOE>yi zLvak|sUDOxV7G#tvq6}JD8#E4Q)S=t=oW=jmewS79DIhVhg~d#v%cUHQ;T5p8X$r= zThNY5B2kq7mKNDpx6mheH~a(Dx?1NbDEB?Lzomg`WthED`CBtJ;`N(oi?N(1plj-Y z;d3w}A@sJ^!N?n*15d1*5Fu5epcuTX7RfaZIay1!-R1~fr76yQ@aRUZRh?gl=W)Oc z6Xa;?x#!24tRF!9!suySm4~~WB?!31Sz1|{Ox(k|#nyZIHJYNgPsNfAN3)xVRneI_ z!zsN|toS#G?-efXu93N+s4n2P9X^tgB-#XR!D*EIZaj6maOKx+uh3`NUg-A$lB24o zkuYTvoeGv%2+bq~wodu|tdObFEqQ%ZO=#V**TxUfI;`l`N08$>it(Y6<(xXPfI-BT z-8$&EZKs?@MM&fOLJI=0e4ZonZ3DxtaF2t5f@S+&{r%%~Rl?XwpP{Rh9TFqe)hvCk z|3c$DKjQp#1jQc(#aehuU8Bs(9T(KzdMWPJfyCs?_^!k&0lSY5x+5fRJ8$xodcB+O zjv~@0(1EKPAFTGj&7w^ruYBvUf|NH_$}lB+P6fu+T`>yz3(1hHqm~>I`31D(q<~4P zdM>8%1bhB2!zx1D8DF2_mWUwHkO`rw)1yh9AW1`864o3GD?xYWE>Fovu{gEm!`mwr zMAPT>9i31VcE*>`VO<_J&E_}4B=_iV9S(@;mIWx+fq{{&wU(@n&f(7rwR0R`Ut1x6 zAUv-=jmN#}VoIJGKhPCYNM6xb7>j{lvmn_o`wjIg(OuaUw3B|^gwrDGX3jgDSr0Fb z-F2Q$B=+>75a?E;AtJjGsZOiMKoS>V`?dCI-h}i8B2aGIF2l}}SWO!80wM~dJE|;O z3W|!9VJunaUmLH^j?~#A_l50TT`R{Y+u4jU>=&>9;jg0E17T(Ar;lHI)jly(^HAmN z5IkREek>A97=GN;uD{CX#)K{Yw)qo-?OG}+Z{44{LNc-%%`J*VQK2r9h+HIs0$5)= zfw)#p4}JxD5@IHW(DToutJ2|NH|PgS1xrdw;wa=!bzq|Bm7!H-)R2Re@`6W(R)0D1 zkjxG^L$z5B|Mpu$1--s@kFJaDCqE;{>W^XZ-+hsg*mA!Cncg=T9OJmq>>Fb`D9p1O zfTuesuX=aIB%NN_fT!{3QJV|p4ITDbTC21lG z=1y~Zv51sLcb4ZnD_TyXm8^os#{F?d|F%Ue&R!t)_r-M3>nYSqH~je{1rS9=qLSs$knJbF-H zTZXN^zFx?8+obK{4Yq3hIf>(v^3~{Iqc3BA-+1<+0m+Ap+HX3}S}W-PXh=VhtwQ51 z7WxPJOG0utH5QjKn5{sH5eXH$WI%N0X|vt)l5QPb{7(X2vA@pY7{2&>ZS@~bs@=O8 zH#>{9yGUG*|M_`w`wH;BBbPx5k7+HdH4ruUXb}FN-xJFp#3<~(qwla6VzTnq*c2et zRhDMZ7!b^sA?7+t3^AvwEQz=B<^RuHy$t`4(Vrfp>|h|7v(dALP*YRa63?8V6Mvaw zmC$xq-~4PY$~zfV%s#_QH|NwHpJ_@WMZ--&+e&S1m; zCO)o^7(V{{-``KRoNxYT>X4Xz%;C7J2o1s6{`m6xcgBBnR7uijtKk2P=M6}nakk!> zBb+&;3H0BhzULK$1Y0m~jMqei1}lt6>ysK>=e8h495<&Q5RFP)skvvtF^i=go#vm|bA6=04$I~bJlc*w zvn7896g~Ik!j?yFCVVzaGevL_fIPnDPy(`A&yW5e1`QkB zJk$_&pw^E6Z3aP}_BoTl(XKx@(DS8D>#fy}=+!eMsA(l?+pP^fo01X`+%XwUX!7k2 z3pyAn8mwg@Lcjm0lz*82s_0dYL;7(LshaN8(Rv($dMYXoz%KlK>VNQ&Ve2xni2*Us z=acU!1oj%bw!STxsVFN`I}L#n7abrNo$NCES@lmU|DU!=;v_E0ARhOxXeF;z$=kP{ ze;r&4++;Up9V}=f+}zwmZ93dfL$sT*VBEoh3odnDaIG0)MuFHK*9OEj!?`!;UoD+I z2oXtbh|n7xyEARcqQ4uU{2PjPm<^HdKFR1Czcv(~aak1fzk2Ee1rhj_@Kh8Qm*v?b zOh_=7yRs4R-|hb9>;Suu0m>kV_oOe%nLqBM^N?^cg|c7LVy!lQ|D^xm7yGyWnVlkR z7iH=cOVW$AFMIDWIEZS;pK++C@sZdbb17b#-{oTZBX_=b@z`7c)!Qo^^<$VzZh3%O zU5D*Fr^*KL0RI1l=IN?c{I~FRVu>)ma}J^~796mT^QuAfe9Lo4RIo$F)4C&1AydWw z>VYJkidd?CHgzyn@CSHA`l$ClAZ8oqo0$0s72q|K(_`ElCNB?m{g9ttO!hY9a5V3S z?~dc}H-6hJkwn0C`V<{`sy|K2+ZghVk&zAPdXbS8(RoFvq0xW)5{e)yU-iQD;@@u7 z!MrHESM%+afIno5@C{XG2~xw7op2gDL|@6bD!<5ahOxgKWX`Z?1z+`vdTN56H`Oa+ zj@*A?{bowB3{3i`**MdGW(-jTk&?lC<+-E!q>{ny_Cn7()AT%cjt{0wRnq%gFHS|) z@cwy6gl$3y(@a;Z3`-+=>2hs4Fk2d_9}-T=CXpS)9A@+h%NF2Rgu1%W`mbUdp1yUc z_}1kApn(3Y3|nPl)`nGD*p!FO^zMPd>u;aVX%`qSHnrHQ0c2J@EKSbA&Zp6G&CwNA zP5sq1y?noOd&F~sc!{{eF{0uno&@_(ZcnHPSY<(TCv%%y|9g?TSogjG8|;I8ZkhBJ zrlsgM=cM)n!vLYG@!cugsz?LCUvKVS;=lBxDVt~SQM>+b0ue^So}qYA&#-%p+0Os? zNt#y4&A+m^tvvi!7x&)3rO-f=`qYt;Q#-K44Q?RaXeL)~&_8btM|Isk`h2G$>nEhU z+?qR^lIf|TtEN5GOG9dr@rGflkn1eF=;GuIbsMI9$%YRhwN|uML1xpElU!>;gEbnO zBeVAEho4-m;Ch{5bf8OF5&{dPwo*x-y+@;4$ zgfI+`8y7`s3#^sS$$dAZ9=B(F>-SJpBYAeHWbajlN0hK~>6F=Hg$b2gI0MNMsqIZ$ zx4^t6fK$UDqP~wQkz5s+rQQWd{`%6kc_@-Djz}JD@ZX8{h4S}akbmMp3*X;h<6l9t zGJn3-0hHNlO~>s7+o_pG4JhP6Q;{ zdFxu*bh#&$RcFyW4SCYhpW6Rfat>VbrHIi4Z6x_%)_2_b!P~IsY7Sl3d6btLa=r7) z@7mY)81Q;ID5?6}Tik{9clN$=(P6~>g<#%$_uKY`gtVLH<_PNSFbF(*_1ChMa5$?K zitt#{NQrMUiM2I#@`pf0lQlgIkk>D7k*yu>6%>m{0#m|MQAv_spb5jQ)8W<>b@ z!|Zjkb9YiN&Vh?=JD5j{I&^7Vx}zR}o86-^`_^E|KD4X*x~nYugot!+ss|vp%oR2( zhHql}m=n205Wp*Q3uJWZ-z%Uz!9Xf&2~v|#LL2sF`W+lL=nbhOj=Sgn(> z+|lBXuzWq9+tjIh{CV%NdMfR4Pqiz&uSs>;xpR~VnGhNpp$k~qC8OZE94i&wQxKL! zLEhs2Fq5xvNO?Tt5R|&tPAtnrk*oY&Od{6A9Z6?&zT(kcB^&8Wr}NA*?o#v<)fA>R zxtX4Kqb?V#PnNv590uqoCI+|QP1`k&(lb;OcfP-Z_dcwgfn=<^Db`w4?pco(9{N>R; z(G9w1m(3fj#}u^pI87$7L0TMaA$#NEq43!+?gP@)=`bh>=jUqN6lPa#!t0#1HsaQ60%ikHnzsE|TR#twh( zU8i(nXo11zYd!C1j?GvtxogG+PHG8rjV;eC{z(>ncXFUftCcKnvJbF!%i8;fcDA0~ zknQ`hHj0Qk%RYugkKG+FqxGsih<&cDv`R)j{L-J{PeX4KmF~ad9J@v|Vk%>2(CGCS zu7H{Wen^j&z}pn3yP+-|`@#F50juh=#ST!0m|OhLsIufbL6QH@Kufv2DVD3k_Q|;s zn`K3&lDZ#dZl@44qta!s!zkKzLf4Xq1@?&LqhJ1Bps>B+l3Hc^D6T!1NCQ~%&+}5% zTTJ-CuqaQ_&q1?_JueTG$CPOTu0OCMsBzp0e{Y=M$enD%mFoDly++aK*CAO}x5E1X zbcduU2=&(QhwY)VQODjfVDJgd7 zc6hG2_ODN*ywMeYgVoJ+6)0WqV?=~EwwbU;JC}&(Qd^T9+?$^o&1B&uyehJBc3lA3EC%NJ3IgxJLwD=!Q2q+MHrYkMY9JOlLHS2r(%% zh2MyFlV%od^=m!&*eSZz%p(1nw(&Q-!O!?!^jlz-%2N@&nxtRF>gV4pkCnMEZSeB& zaVA%1+Q=~Jd#Iiw;MCDE`8RY$68?)4psDci3aR*6Wr~f zL8y`P^>A>^gU_1C;4_;Y7uCx$Z|KuEtn+hyZxJsPk%Hmj+wb>=v0B+G>1;}wCG-WD zk=Zpb@#8<8``Rv4I6!?}L?I7f^4f4BB=kb~)objKa2;cVUO}}bb{~x@ma(i8t@zp( z*pKYH)%H};KU)9HdJ-(<-(brinIHuIk5Kdf1Y7GbH~s}!E!TX{1IR>GxwtKuD_eS( zd7}a-RI0v3do3F>2$@&^nC0lITJV{}@ro#nPSpRRk}_{~J|Gc_U9D zoP4xBI8Y{afq0Q58?V{tVXx?pqA6Uh#J$m)d+pV^WU5x)P9=xMbY&uL{;y+t!g!HD z&)42ZJ8?eDRYH>yR`myOV<*2KiM81!kq4w-z7Z!&8X2@4%3HxzJi0%<7gtQCeiD7* zB_HNET=ELjx?pcf95p`JZ`vEy6+K(H=nR$B}5v`U<~rlZMa zm!3%kexv>xSFFn15yM|LV55Wk>=9YBAm+NN)AkX`QQWI!bM5LM&$rgzf31U z^11Tg8PKct+c`8Cu5+HMA_lQ*aJV|r-v{-Flx^9j$q9|qs`v24$QRW*=9?UMDRiWi z@7ch$x=$&V`W=928DxfTi??q&E*NFzcbAjcW3;%~APVgx{Ymmao(lRh+mChg)>_Vf zsKLH`D;Zgj-D_)^;|#wGo}kdoXy_-;SG|QOeCVx#DA?}nCE-4!$h15tUHqfbN2=^0 zf%(5Qp2g#uA0%9UwPdjUs47Y;V4mbpnW=LK*K{gD`~PYW0;~_DQ6A0K)=M4M?N75H zXu_c(Lzx)cNLCMxrEP(RqT1r24aWt87wGph6p}{(c4xnLNPyv`tUdkm(GBYrf99Z< zprlZ>A7_qgTyPouP6pxAMCLbrklwfH)qm)yC#qM?cVuitK!57asBTQ#!*-TA#Ax%> z(=>tSPddGo7!(rAm&bcznTcQ)?xA=VkNV2!!@G3HK+$O4?V_oO#Hzi`s*86c>C&@s zf0obI3awm7(xD?I-Os}tvgYg-9`E;0YbJ+}?5^3eP5ki;qMrcL^u)59{)zG8x_;9k ze{V0X6+hlmD>1ALjJ-?g5GNE?MXFA3Ln-AOWaA<=^5tjlXt$c7GUH+!pCyIc1KAmt z?%lBmX)7a!@=|v?nbQpw=CXZU9P)SMo}N!T+tWaD_bE|{s@qwBK!4W*i7ne3(2JWb zzB>u&>33zq4TAUbL<{_TZ1@wtxp9U`-{7hi&w+it4`}7kZodOEu|R)wNi)Wmf+AOm z8ws@ds>6i%&8xY1Opa$pIo61Fze37I;>9bImQW!VT5sov=+1CuKc?7`f}Bq~M7p5A zq`j~E%FWI12wrH!58jTOO!)C||BV0REx$MJW3Y^r$85law4eEN<^WS@) zecl~kI53V3cg!!Y?{$5?)xVd^!^6L26!nh8|My|+Uz$-xbIIzx<&UQobcz!Syl;=+ zat3xFc6?q;+~GpZ4>-fiAHY*+D2D*l2`*xrT*xShp7;o|GIe_?PI@2{jsQp}-^%+Z zhzLo2-FKr1pw)V_3zUZ9_iWgj<$}HzyPaGI9;9h8p9vJ(Ya&Q~J z7$DmcuiVntv#6RrYxph{u-0`o?05UIXoH{nQyL9VpZ<}gYz+TB9s!G#(cgQo*SY^# zWUlczs&KCL3~&9uPyakzDpY^I{`L5O5W7B0xcm{XDhxvKD6)M|_PzcqZFTK+Kh4_v zTO*}L!h%3n0b}TFp2mHQw1_fFs&3u0$?D?l%NOHzDdyOXPFEl+&7zSdr(a=Xrpc~o?N<9D|B z@#FQJ_!}gV{CKjzfHI}fIkzV~<(oJ%%IJDPghl5FzY;8Gs9T1j2^9j=`GC`1zdvJ- zi4NXb%ZgBRb>#(o@XrEi{!uK$$Rvh%=++YFR|k^wsOVKets)0=5RBpDH)&x?-{bUc zIVIs;&%#rl7HKau2+4^DI#izr=nHNzNBMRN&YDPtyG>!jd$03|@4j~uzuUxD z^(7vQ>!g*jFPJoH(0nm=(RjGbB;H?-PtQuU>X{n_pX&MI7Jo12mX9g83Jd<2sR4m< zwnCg8Bo+9bvaY+Y(@uM?L(uK*=Gla(^z0IEhxpKzi^U3^O)(MaTrm*^2FiKmAz14d zIrrX?K*z{xpbPU(j{8*1<*h^XXR8M2w!8o=)t2pBb}&i=9w~J{2~XhrwKF>&5*b<@ zKH{AtyOkf@TvU7NnH{Tw)y|6zuK^)gi?GKYuQ)EH$S$mF-5!d=hUa9=!nmLV#BL_X z1gse!xqG+{4hlt5#CgR}S zMH7#5)|nLj^!(?`VVyOO%@?>wVu}|tNP&aYK|Y7GHTvo78?ouFty(Se2cCl(gOH7F zxs!UAJtyDWO-I;*tD`cbh(UbI1Qs~S-{akt7amu-AVTZVEXVl4^f&(RUPp(!*6<(g zX$c>p9*Qk9Y6~C#^O+iccyF&*4yZhMzG@+S`)KbFXZriGr0A73;DP9q%-rQPlOh-% zV$QAA+a$V+e_|*BQ~1LUP^IrDHMp#QHVMo9is*~-K7h-E!FcU8{P$ao1uGn&u7mqs zrn7{u^Tze8U3Dgk+B!UEa3?zWvHjN~1!gf%&3MC;zU;u)0blGqmxHh>42Jk)>28Ha zmex-$vv;M?QdIu*+H)nP(-F~U<6hP2b8RJ|W7|W!s3V-W&}?4pCs@~=daEE#3E)6f zY^%|j8eVp^b+4BRmjYkYE@Ocog2;2dusyrpIL)?2712Xc$r0b4)~Z|Tv9ajI^q<40 zp1mvpy8T@VDA8Q5N@p%R+wO~nwcsvu0Emy?s$B%epJ!ZJyaSBJy4GTNd*>fdVdDHr zrc%7~M?+Z7r%|h#B$>g?;#+Az@NKVkH(lOy&Dr{0MP>-tNj|-GudM09XgNRQaDDND z_P~*h)%|>nblv|&=&t_@Y)>0>y~e8nPgBh!J<&a!Zdr<$wz8g>M~(!Xg6@2{z# z9AZ{OT;h9De~@(w&YzzjwDy5(=W`MF^O*hd$OWDQpbSuE)fL$0^IMsMj!Wg3tJglO!r{3f}>p{CU(xo z5&M{o`04g#?Ak3ms7`AG6x^{8jyay1trCPP9mLwS3bHsBMj~9tIB<&G)^{-pcdTV@ zv4OCL%a$fCfPANb%gGVapHDX4-@DKfsc2!^N_{!C*Zi z@q6UY$tEvfo4=2iSAD4`8Vgs_>L-1;+Pk2@h`1+mZY6kmkr$LCSJ4By3#G&vvY zaQ<|mUGMuB=(mh?`RU2vq+Uz3`k!P8He-};+_2jwb8!n4U)$vGGiYIrYjW7Nw zRP{NwiaqNePEiR$;HctAzZH$crTp2N6&g{ zK|urtb;l;^5~}V`YFeh2WTEDb$CjcoH-~mJN;`@`^4v#a+~B{vdpcc9zgE@64h50) zR$p)6gMyO~#SxzZW~=g_B)AH_BN>WZb<;(e8vQlCYH)yEZ~p^KQbJU}yzC8MxWJ=w zJm2*smb-a(IY;sXe|<3YK%v^l14cdc>@y(VK%h>n-udu>7m?$5GP(CRU05D@)sUN= z?vZ~mN>>AsU_L?Aq60Bzye2Q3FcExW{{98lk3j0aPy4b;n5mD)ahDJ}Y$sh8=jl_f z)%-)kOdctPi((!wR!_(qj*X9~*s4zDSwGW)+K{GIaE~f@&X~(nXFpcDXiv z-=k~7aSZRDA5F23`#8Ez)AA~|YW6=XVmRlYq-vZT z8CnI7?jF%IsR`s$&(EF!YZ^1c+y|GQm1xsyTGYFyCSxf4C1yfU!#hWRNZ;Q`0W7Us z35ye~sO4ka^yCnQ-m5RHFE3&Y#gGRO5I#PI-RQhwF0O;Ah@akcn~CwhxSFG!Y!(N6 zs=4gJhxT?Toe8#*gLgPfVQH34j%MJWpT_slaQ#ZBZB@Ryx;C4!Sz5+^jR{hU6Tf;s z))~lgGvJ76RTKN-F*p&fpG5`Tra1T0KD%Et*q~1`S`O-g~Y^;VajcX9_+Jz4G-0Yf``h{VU$o58A_8_$EAG8At3) zHF!2}^7s`}zery$E^OQW5I)!&buI_xZuc6bnM5_Y=kE3M&Rk#&^>~JG1Sv7dgkr>b z{j=~fsa7hVnZ*^^uCkv6c$qC{fq9l=63cL6eDK|EIjp<Kf3lbrEtrNq%f%f{(5?IXB9hsn%Dds=A)Jx?3uCcs@a98BipeuI>Az z(W1J#$EqaBE^&KgEV*8pTqpaU4h*Y>iXS>1J7i`|%lyr9%ajKVc zitu7qHJA=WN$DJBcJefeqtooqDn-Z#{-@Q~PJ(_HB2!2NhZW zUhi-~iJ3f^O9}=ui>ZlzCQshkJB`()6_wEEMkE-VTx^ke1<*WlHqJV(I@d5_E~{Pj zEsC~ID0jaV0yzK{dW^*S0o^F^i~hUe3`(E^AI!|~&uy#WaZZQ27#uyKd6z8mG1cnj z=YqvCc=`+@!6j79kCU~Y?3BH7UY&}`E)lE6qH__@;Opa02iVZjjDe+%Lz~!y%xsUG zHFP~Ru{h3H7J1sUn7UeP@6X((g4p6O=pT_on%y%3(|yJfjSCEGV5n8~+yJfVjU$#OOeR+*?y zS-f~oa3QA=*Bf>v1ze8Dz=%u$RPp7D?b6z4W|Jw{-P6p2ytpiZ&1!{ddvMvh_{CAg zQ3`~F)R;qOLV2CR*)Z0<9`eMsqcr14J9??(GlW(u$L$a;BKK5Pokoh6yrJRS7E_+P z>Zp`i(H2-Y$8WW}o1Bo=*#SlweR6{!;%ly}#u@r2E7Ho=N!UoL2No861Tx$rO`PyzmvS7`32(iPr2>UXReA>z$O!di zijOeKsV#QH42qq@!HuWV`iT*vbPrqZ;x0OdfL6+AnFM-^j3`!OIa_N63ko-m+VEF3 z_<8$}O~?_G+c)?LH${rG65mWTowS#dBJp;NQIC3kyAsIgLYyLC0Tl4e9>is=J}B3| zt2@@O)Smi#On{MaGR@GQEm6yW%T`ud-s$Ew*v~Dmsr?_OT|ps2xOQuMX3e3;GYF`vPDRss+R1c+gP5OcCo1hp8;Rq?`8CwxEW ztzmQM)@TOb;ilK}9m$9{nU&-swo$&}{ppqWr|nwCg5KByEHRV%Tx~D4{wUvoTN@#2 zGVytgP|`L^p?OL^(dW^0f`Tnox5T&yN+XNH^DHc$C>IZAZpga76rz-K+0MD~E{c$a z>77KKm1mhr*nu|0MMPiKM5`DqKDLq z0=ElsQeen+{?c~)QOi7eO*4X%Ydh3xwF%q<_Kznx@MrT5tHilF55G=^FYQ_)z2t<5 zFIR>=;+F|PIKF1QrB;27Y!XEm3wCgI2^Yh+kp`2MX`PrW|x>(QYN(8O9hYNp*?3&mY5*KZyD?Qr65u@RIEvRETu zj`fem&I;$NE2gHgJKdCmJGKL>a0yC_nkNyF%WYrsd<{#N=GyCm6^8hjGfuy!OZ&NC zK_&!QXAzI~MF~RO5~MI?b9MqK4ztvda8G9&GNdV@+$lJSlg#_cZY15wC#lS$%vt}P z=N`l3X@1@k*7hqrWi0PEMZNp`4e+OZ@6~7ZSY=kKt3MX3%?3(Rny2d&{nR7YX!8eiC$^pTJZ6>_x3l(~dy_ z*Y&kS*b|}x=foq8icPD_T|8vwa6bp#m9??tn_u)n z$n{LY+je`#|Ip=qisx&01FgC`I}CqkhsZPZm>!zwKUelS2VfbxV>FT(jr%zSpEa)#iO#hAA zoBei~#tjtUAmuxy+HF01Si~T4%C$o2f;Tw`Lt9Z}6oKI$>5ti%5pmDs%nJC-qd3(t zu}2PWlA&c5w4qx@K5s?_qseVoH@IErg58qdtBA6as=c8!EN;K zJ6jiavaM~aD_!I(Md@wmKi{g(ota4~`%wMK zrosjy;_I4EK3ULww008FYw6ogjEi|lj&p{rudp%R6O(^i+1lb?Exk}7tDB&9&PU5L z?#p~ksEDEqJIkjT$wMwpP_$3WLB4h0=IZt^Vg-k9I^N;{-E&%BblfLz5OoZ9W3NZ` z02i~w;QW~_QxUwU!`@PjbWny?ze-#lZJF*^%$1%q5s@=9ME8f|Q^{(Ztz<0m%Z zbG$`=DEn4UqE_#>KI6y;`v-FfVwB?g52(!XL-~V;U%&n5>b~xO7yU$%L9oaZZym;B zX5*HQdM1ecdgqc<`ZaeVMy`({RVx$<03$C93+na_1rdxrSmDEm1sQYQDZ`PYg4Xa) z6WCDJU3x-k&80rt`TGLa@!5w5bu z_jd%d$XT5~T6W7WQY-vvL51KHy8a2+a3s1$mxog_%o%s3l`3-8*>Ht-G!JlFk>aBN zu9#_)=@9%@y8%6!T<2RG&OPzy2Y0@>B~O9)vQX+vIWE|^`ej&9a~5JuEEs+**A795 z|4~n7V%~aV=Dm?l6&^})>QzAx<&QZQmtx6=L7JT{rfEoSa7S&eX)FFFguspRe&$eO zW7vM|=F@Ymga!Jp_3w-OI{r+xXT_I5t0BnWs5b;L0~_I1bwBm(MG-Cs+{u_EB5N!K z!q2B&PLj}9&}2tIiAxmknSo)%$>{o8tKx+tMjQjVe{T3Jr1=5j1^V3meL8pJMs8*6 z=OB?*)?`-xjk9^o@b$_cdAqK_riFUFtg`EqZ_&-iYPZ5j*eE7C?ggH>N`!wXNk*hv zZ0{bYr#|5*RW3=Yg7`BlpZagNH2?h3J^b^%b@i(ZEa7%v`8YR)ps zkxaXL?ZL(4tC?}x_+1n6&Ff?_30mk z7(mz0LtF`H)H>W}bn7o1%#C!&HrF>pCY4H%keU6C#+=X2X^8VCd7<%F^Zzm@k{WMn z5kyzmAKAB+NnQNQX_(i3@5{hWY(Wz9mR!Pjt@n8}E-^(}6b1fdW&wYSqy@!(o1_4bX$1Pel4 zNU|lMBB;;K)eZ@}6bFC1_?8t>`QCGoNR~1|1?ySNZSO+rg`mp9m4-!+w-aqaG*zgmLFg z6e3qHdP5ggxVm9nYNbbdYJzO{yf`QpvRaGNp2~M3tPangPigwOJ(q`#s506ZkwDYLHTs<+bRUNd$mXhw5-ktV*MP2ybT@9@9R^TcGBQDzdE!gr zc!C8nsAH!sMyAwDGn-X067QMa_{)7Z*>~jJn(&gM_I7Q%y5pFL`<}aboy}VV-OM#M zN!JaCx;HOsg25<}eU+mvtW*qlmL#@_Au4b=6(I@jjw#EX5DSaiSp%>zI!8bISmc^jx9%4%{PH!-X9l4?ym4Jlg+hjn`&bF z04x4KJT1y9k?rw!rjw~-*sY{?!6JnJ!Abc^0-P$I?2~s@AtGS$^TRBMxjN2FU_%0! z&~zmvB(nbYWCjxCeKV1auluLUBtGL=x0=51p55q?pe>C$9g!}`Tvxg<3lh1}d_mhP z&>G{HYx^7|nkVibSY_hce0scqGyTBw(1}MZfNiK}{I*&*3?W8?f8Kgn=;>Eos?jn9 z7CoW_qqjOybz+P7=%ZuY3Q-m0TkmkzM5>gc)e}=IhQ}Yc=EzP27=E=i|YG zgKy;AH-&a z@d+G}sc(OhHeZ#xjMyU?@fsBt{7x?vLIj|*c+KAOT||@1fN+#RXWmrmF402nV8{~i z%zk~eD33fP*Y&S!&rYwb2z8U9ghM5h_SC}P2<{gf(svE&IjH)Vj`!`eG(@;id8jJY zths8I%bbfe`dv>3y6m=B&L!1nFnvZ>Iunpr zO*9V@tmLprO8U}{;P2Up-l*&Ug7}#z8U9P_oVrY})Z;K&~Eyo2t2WR@lpkYCda=%ChPO?-p4GbDp7Y@b_?TC7pZfm=4Je z+U6jJKOOnpfFG-+#eEcd*?Rq2#yV4iEdb3U*9~{`Y z`;%nB`m@z^w0hp;`!~wFQ)QbI?);~W>#2_V$8d~F@c>-*a&5QYtuldt|{lr#Hx;79{inLSB}dYxqA zcDmy!@w6Jq=(PJT9Qbr7riE#&XtO*okW5RH&>}1(XJteRW@mI+=ybEqN;-h)U;ryb9yU9h!|RU*t1BTEIL|?sw)@ke@#cnJy_T>@9x%%Q6`WE-Wf; z)!Q3DIi5?KR~u0#I|YeEkUC$d8Is)?LlrO0MA*S*PTzY?Rz~PeXx`e7&pn7IVX72s zm=|i1bBqZkWcy`R(fbH^lD`36KrI(rd;u#{0S!d!H^HJp#n><42r}@MUIQ%lp%jSU zJ$(4EJD+6r8LGmn^9jUQr2~Q~Dnclh>uZa^=8TVckVkLc*lKL=_+&dLt{N^X9aVkz z3yfJX<^qR4%)#wMZit9sH?j@dCUr?nBe7-^-og@^=($^~nI**d_FgoPtAI{ffw2b~ z4NKjH5Mk$u!w7DjxO9-2B9q5XG3Wxn1uLj~&xb9q_wD@1mHX8u5iqQDg9;fA`R0N5 z>H*U~x4bE(A{%`j--DqBjfT4jMzUJjeHHSiLABH~&3fh^y!-X#weCxbEU%AydTRrb zZ^N@n#ok>slv`}4=&<|fYu~)im93`M{CMt%Lj7nVsHlvIU)EI_ifPv|VU2Ny(8C}C zuHc>QcVIYPdZJ;+2xZJlXP@--07CShB!bASmTqUcY&8o?mF{soYi#XN3@_Yn*F{`y z&R?Gq{JL*)sr(KlD1pi4R%**BT4|p2+O>VE%revarfpw$xN@L7kb%1-ge-=MZ^IxT zEk6sg`!uXw%Z16pSYzpX5RYT-pB)yv&6sNDjlSQ8Xt5~~Z9KOlH#Oj3mUcG+6)&}j zehN@5x}HDwM#nsad+UqIC#NE~q|RZf!2*G^7BzLc&q1K^eY7n``$&4reHK6JFZHvz zPa+Y^@>K)xxoV*|D)Fr9UiD~;CcL(&fn|j#i#>jUu?_uh@tEcAx~t#kg9yCmEyrGTiQ*cFNnsrV;c^V5s+#%&o0x+m}-~78I zBMWv+Rr-vzctapK8nalC0+xT*6XLbZd(Ba4F^fHRx>h@li+gQKJ^1|lOLMDghMV-vK zpW|Q*8a~m_0Zh8&sA>zI!J@%#9lX=XK z>^7Ij-@U4O0Ipmuib@<3D3qTWbC5Go2{+gBT^DFMP(@N}fCveuLfNLbC|DB=1)g>0 z52uWX!wPC-OMGna;LcK&L+_wVzHIf@8U-kJ*4$U5~5ith$-j#$ry7QB9u&SPpDS67u?2H2fcfh0}9*8-;;$$fclmpwz!bmAfddLk`gT9#6rFssT=Y8kYzv`XN`9GnQ<=`;x%b_guZg$i!QQFxhzGJklOu5)S+~Sk zSW1TTVJ&!D^bv#J%;Us&=kV@ zVzI|wR+7i1dOKWwgsLYo4;JEDH$m+g5I zdf7WD-`{oqv&s#^4 z{z;Q={lwi{UcuTA93YW$)rt`3ATp$gthYQyAji_1`Cj47#$6v-Em}g)`87@YOsY_rIiLZvnWd=w zLBzT3vH8|FtPoOvt9Tv@f?nweDJ)H=(CBAdoX3b)I`?sP-2MByIi2fg_UY~zZWYG{ zsX;@h*{@F2zV)Tm4!ygZlaT>n`}rpZ|GIH&?Ux1;D|r7TLB;0atW%m&n=8OEuX^a zWAku*m0~(%*t1(a=}`u!_)K*RoUq{(M)lV+?^ZE=+GgfV?b$t?&Gpx&Px=c&!2I#) z4x7l>?UFD|ZLbD};ptu@DMUOE;fZ@YO+NVnA%e4$ZD4jRVCV&=Ps4gj6V;b7=>P2= zX0>Xju$V-Ie_hO&gUOIz0^>PISo8s2nP6b5=KiX?BWAN~>BuUmTUQH92_hU2vf@MW zJk-A%t*Cd9NhrHz?k4L6x}0_M_whH4tb_W-!`pM@ob2lk;_NL0>#1v`j}0ucL+ktN znnK-z3GbE|K2aU2*3kG zn`>~XK0#XB$3dV0ZT9rrL7=U7;~W>{IsMVPK+R(LZth&z?3V}GgXTZ2e=cL3Jy)U4Cl}GYzo0cG z#3@#6F*%e-xnl33U1ucr!tAd_+OvJl0A)zGtGS|1_n7t?h^wltII3_jwyl`aGa8DW z!Nh($^#O`$Kx+8l5$kSMM&g2ioBZBWo?IS)+Oo`Vn<_mSR5c&UzYj_DFG+CBuzO zNLk0{RIxNUwX`e`&z_X1SRcjNRI`G?XI^=b&Ow_$&4&8hUiWB&4ef=|*6A2jbuPrQ z@HL=IFT9t(bDXx-6byzsWtL?V3Sly4iPK%2IBFalB<;q1W!|Auav7?T3=l~|4($D! zu>dlQl6sqro5WZ_lhD3yJ*plGsW3awU&`)tFxA7F=!xlt12AWKCzldQj4BzOx>MVT7?7MtiJrLFJ44 zR{@5eU6Q~-@eG$;C#fhgyVKm`a@nYKnk<~JCV8=HEb;Y}VLJ}y(cpJ-WvMw2ax$h^ zV)X&=R{N}7S|GrF-WPg(Gu6=Lv$B|Uh$teD@f!?m)1v38*-{dHNA!9&l!GY-S?EI> zfQL@bEX`QWl@Iz3Qe9P}_wXBU5g9si^K|e#j68QuANz>` zr#sA%9`MGEy2jk(J#`0c%@!VW=Ak;h{Yy8BKP0sD(eqSzs;Oty7hPMzib-LTwLi=2 zz_AR@U!jyr)?t6hlC?(o;x5b_9k%*>{c=0`Z2PfMCYQxd_RU~bXbMw11QJLyl<8g^ zfB3H-&SQbA_GLJY}*vdKC(XbE+LrX*xtm_)*Gv`~rgQAtC$G1|j-{PX@kZn>PchM)#-Be>pc`9DFpU z0VB%yY^gLkTtSKRNAanU6e`z2I^&a?{?JDZE#Z(2oRjG|z0}!Oiw?Il2c7~${`WW_ zKf|LvNptoTQZFC73vH`=JUkc}aCv~WYUSft{3>P{=75kPe1nTy^+t}T^+&ONz1>>} z>C7yl=2XrnDDv5GtL*;cH8+yNuW6Ta9>Ohj{d$pr)gzQS7elj&_me$K*IR6<_l5BY zi<_3iGp(k^jz|g7TI}AP)6kK}V~aIWT%8`aFFM-MWv|#*DmY(lUZq}NpAkz8c@6*L zG;?u#qGgdcx6|JWpTsW~&&Xez^FRM#r3bt0S<*|e%Egm1-{{`g;(PLkiM9W?cE;W) zuyr{)(-2};;}}MFD%dKZ)#aH|fMLOAY*HsT_Ne`O4#Buz*uKYBLtVDk*Cah1vKX+G zNWWWrPwdYygMKmB8eSe&UjV+_X(%Lc-A%nngkf#i7(Mk?eRBAxYKSm!4LvUa!W|HmcFi|a!cPO-VPOep=v;~da zV07w`aj7-yYC|7`lA0*hs1(D+0FJE?J$cn8r(XO7U?5KjagwXwB#GdYHATU8>&z6l z1-#UZiKca0`c|e>g_nyT+sWs*wuhajPFQi5o&1@xzy0v`Upao37Y^QYu&Nfy~> zY7g+Cg|#Y*JtN|t5JGTzZu!R9%@rkR|YlEQ{zhVGH!GkaMD5C!7JaNnr*8oWRBd^4aq z*?T(4l(~$VqO z*tUx;%>Xi_M87(kh;952>ywOu@@c-6R5 zspl=|nNckd@U?nIj<#~#Gql~DE+qJFN`gdhG_t^tPe|RnHPwIRaOyYX)6+Syu(1A< z+j;D;^SH81vPk>Pa^u76!{7xP|K$FRU((;Vzzl0CyGiW^Du>g#S{37qVg2lz*H7Tf zh2V<81Ufc6M>bJR*(N~u!rk4rpZgE{r|bf4bY46T)EB>rTnTvZBK~*1M`14iAZdsT z{t#^N3*sg?S|6LAHDb6OOWp(w0@OoRR$qx+$Mv*OtPW)cdMAk|UuX8>qvn-9c}-y5i=8E$)LtcA@N^9lQ!w){mp*Wc zznq7DNR!uRCKPqwnxO}P7%_8mhCoT=@=wN+`p7Sh7(gZQGkaaP1$n@QsBh>%$XagCcYI~jET!=rfdbavYO8WCX@c4gt%WF(04(l=K?}7Ne zz=wLJ&2t59OP!Ja-*1`?P|iue{cpfc6`J2GbI{p%`ZHsJ7y3*AcW<&!v@Gs9CGa)N z^}N0P0REvoXmkKEHpEBiri(FQxn1zD(k$>hQT~daLI92)pw|K}<+hXx5OtZNG3&0< zcKL(;jGUxSs#ygeAX`{TTwHiihR6*wuxPA`3O^DbQTo@>0bj054nMGg`?Rz<@4saM zf_s_FNiA*GedVcPM;u}aATPZ$J2o(x=in}5p5bF1LxP2f|N8&K!zx?Z_iLn24*tI%8J*u!CqP*&`d%yL=2b}3zr}Vo(asvpSg%y;j z78!qHLph3Rgr`204L)ot(z>PHObrC3*_&l?V^V5~dS)oZZdU>6Kz1Qe0}1r@Wz<|B zoV+s$3W5=zv1w_H%Ot`bqflV73kJP68_ucF28Mga|1WB8v#RbOkS~H zIaaucECXP@bBOsIzTC_1BhQwCQTM6P_uNw$`czc*8l}1BH1s_y+V#EHM{mNVU3xyBh<$Ls=|iZ!tGCj zlQcvHdSVHAmTfMPe{9KGsJJ4NcP>4&t{4yGY1cd)rqHE~#PZgQczOp*%-pA>1K3n0 zaa&-oz9-fzeG)gaFT=ctCNXM8&@B%K4=iQEhZr*K?}pn~ao#o777FCIDc?udaRcAI z&_O<>FwM+?h)G8s;rr&*8R;p`QHHMuBg-~Y_&@)6$4HIkZdJ6~XngZx!l4)wV)EwV`tmRPAus|I08|tnn$^g4 zlw>27^5w3GXfZIYRLbSp_?D&gX`1*X z=}e15Kyh}%uPVgvQSUX+C5z*)fG^hQV@*`=>NB!+Q9EV8%JHayk`)}PvN^RAR=y>D z<70>-84HNS)#ISSMYJyL&?4kfqgsSTxSY;kTe|oBZM1R0{*%BUTysHv+d}cbj*y!9 zGFbk<+F03z|9^{^{~7YX_Z*z}VgghtKq*YS|1^Ocp6X8*zw(0shJgvCA3EylG?xpA zU&~*X*;zY0&X#Tt;m=yBT2lFHkGOSxD2K3r4fm{al)@5&BtLeVx@sm~ZVzUTfpndt z#C5_`?-?tMlPmfSHde@x_ZfoKGe_L{sYrJ8ldHG3+Auc)CP%%sp7h(*atwQG=_YTk z)R!)Qm@-Bhb1C9OP!q)aT+3LKO(W;rv!!t|vdQz%JEafa`H5T}$?MHpvx!@~h!L#R zfj_-&Uw5vUUs&xThTB93(p7+taJ=As;lGf@_oY zgg5du1QV)xqZwx2+sQXwd{6_cHdCw5B(n{+{JiKA={)#jZ7iD2YhG(g;tLPx$~Nn@Gt@&kM>FFqo+)8*3d3x8iHk$!OdCT0Acza>A5t!02O z3Rw2uykv1Yw5Pj6;tgyHYDLY&NWHr3rh!)Jjl(82O7q;w=dOJzX09yVRS&$~ThjpQ{>X44@s( zez>dBcT8&9TXnmhm`;`dG9{38$|r&}>3DhjES&M}6(V~2`kyC2^nJUY?+Ob4TuHIQ ziZO|rE#$D0VWjxEcf_7xZ3O1Zv*zGW#~!sWS0;TKSp4_RZ$QB;3N}Az4dkk<_CM~V zU5eb$ss$5%S&_v0g9go&{#m$b)?zcSa`OG9UEDZf?M5iEec|nSd2ZIgGotRe9^%m0 zgHCT{nbbYSg0;u~DNhv_l7AJA6tSUhCXpO+1@)}DN0R2%9swkL zS~O~?muWbIye=z!Jfx#?UK=6Ts-(Po%w^<0;fqh#Ro@0dM0DBfU&c1^x3q?iNK7KR z#H4-cM$KP7-JGr}4P^c7kEjeptNTNdz{cM4)$rv#O$J zyxp)l4Cpxdsi^d_LmeA0U{}H`g;L6afNpnTj<4ryK0$9+>N2dXDmrdIURE#s4DM^5 zOLCeh1iegph#K6o`v6>-#hiO+o{+y>H%(OP+pQII{KS-3lu1fwpy?(eJ$8*c>7HQz zZF42M#;`#qSP{)DDg&S}PuViC#4YO0GKHNs)VNRF={GnrxJRXw54>h!cRcIh*)F0t zk64ycN~@q1JKApdhXMigHp)BVpm@7W`z$Z1eGFS$Iqv+pIuo+7BUCGN0Dg}+o#}Ga zK^t*a`@fu*o`Fwj@d@Ga>g!|)kJb(>sK!u9Fa@|Drcd&SIGsUth5w)csH(yw&vC5DW(VO z9{v`6t9qM|Nm!G{)@I(+mi(!}p3gXD`GK1MEb^NO%8jbisHY03De8#ZXV2h$^Q$yw zSMSO`5u4(R5WDo1WbV&sjzi+T7CpCyc6m9&mpGfl0QvA!kzWOR>wAsXVs247i}eCg zaYkyd_~!eQgTD{XhR;Pp(WD1%&8RR;xr)+h7f_;!^t>q=Rdt7>>G`F=gScP$Z_myZ zPIXos>w2~GKtOeLj3&!L$(^;FZmR%HHCI!;>!7j5#fGbRcIhnO*#0oY=sclhSo@4? z;k4b&3JMC20t}H`sXzs`)ZoUoZobS&Gg_Lj9^hDJ zZj>(dk>~20r(_7CKA_#}a&};>n=V&>5(!tY2fLNcn9rH?E2jn*vnK*1gE&E6TWZY= z+O5)}!H;md)Cl7I!+5iOk60#UKdN!?oEuzPOTOFG-~~GQwfP1dbu^E)Bf5ww^_#vF zZt}npSuteMM*eM%*qtex&kTxD-TeLJ>)46c`g{L0t7fu9*W*>&mF>5UGdsjK-R z<_cY&q({Q_=J`WS#<#xxO(;vaEc)G7xuTeM^RDSg`Mmim`FHjfaoi_h*x-jTP?ZQPwMb6yCKZ%qc4>N!N>k!y)ZjS4o? zR++`6C+Dl6>s!7D+rr3GkE`qOgnNTiI;zxfq0BAkh3Ofg${DKI{_C`?_wiW}ao^{GlLKDOvqL>D^gbB9RtfD^T@dfqNEa2> zxkc$;38(P?n6@1)9M5=gVmn%x(7kBlZ&11|%4#*W3uq?s_R!`UiM&hW@Z_~?74LC8 zg`_?d9$N^tr%gbt^-TMIjLCEmwzK`R;v5b5!#57pU`U`Ts5EJ)9OP_TxH1ixBV zY~P2$Cc;NwdD42yaLp)s_1+&ce?rWSu&uIgnr8CUuxR6#C zF!x?zO>J$zw=S2mmWbHsO+_qJ5drBcN)=G5)JX5Wlcpk|Q~_zyrAhC-MCnBcJwSj6 z0YVEQKnNjiN7wT{&%3{}_jm9e?0Lj>WhTry<{bC9$6bE^!)Lpm0SbW?GOE6VgFG}d zb*Bpb$*;4@sOKcox}8l{l>PW?o*xo3;9rsCS3G4KvqR+pj2ZziJS~gn+>AXFuV8Gx zg_!(tNhBnv!>jS}tCI0`7fgT&$~v5Xii3cM;Q0S4`&dlv61o5MSw+t4bna>8nKSAN zEAhxniZbfi&2iY-A)(#f$@dph57xyThKJPIn?@W9L_u?B-T!3NF8*Nx{rWIMUSda4 z{Ww<05>p)U%<3@O!lSG*77ap!o>ZRQaA;>*IgEQumMNSHJSUxPbTVd_dTYXgQTIcP zTwpys_+cMX?-cSZ*=ls9f6JmzC(Io2U3z#2s5>HYz|{ z?e(udklU@b>u|h?_hh9UvSwITJ6U0mQ=Cg))D6l=Azf=~?=#$$6QlATXIAQgJl}o2 zL{;jfxT(;Wb`e}er9}K^%|wWpY#HyRLoP>X@)Pp2uW{}-X=Fxd;#YX_i6O&bkCIbj zz=qaV2=n`JmCDAqH*+;s2G=&BlwV|?GWyBEd;;sF*1np)&i$9vgAy~e_wk&o$+{xG z!>s*ALsqYx!uO`GQs00@t`KYXno^IojF%!?<1>K5UtP_wl-l+bv&T5nU;$_&z#~=lM8W&zO%eHS^hhF2f-i_ zC84R8XK3*jzHq5=+#*J?sFOn#iap*bH&H@t5Wku4jX-?FW@!JQJA%`ywoxIPE@fDy z%hRaH_BK?R$;yTp*+fA03V?{xAR)9@8W$FmOC`V$Wwsp=GAFJY$v<09sECYr`RZNz z*a47cQ^3|$ZYp?Mh|!r6r~BROD_2WhSN65A32YUHkyGvy0XuK|`lYdb_3P&`;XVgQ z?pO}8B=J^%cHXY^vj}>B&okrGrk(SQtJ{m%T#w*;9tm?5M9CTO&vX7IhfJYgOx40N zjL(DATsnJE=fc(ub6hNyAd-B%fB3EQ?Y+25;kf5x978H-altSupeR~ORW@PgK#U~Q z${;&^>YQR4(o#mQZT#!m;SE2e;EtVb`*W)4Wx4L+u~$bUgL0PqI2HU;8mxcZYIQc$L^*t%xR; z-xvY<;HK7pEp>l}`U-zsJFkDp=@uq+`Qr|D_Q&9dELAswU&&T2+IkCZ>iK%(d3X0S z>Y1v!(2`PnHA9*E({$S>_0L(8l8m1loj!BxT%xvxk&qsv-pp9wlJfaHfqe1@CzjrB29<=|97pxGgvQ-X8KzwIK_1ro7!n1)oC(T&n`CM9E#RZN{h+67evvvo z!ZPvuu4Dhe)4Z}O$4>z_=K~L=mkIoLk2k8Xm->`CLe=HMXU50iJl(?Ua?e9r;pJaM zq+3Jxm!>2V>5R26=jyh9FBncM3+g@suO7yAs-V?I&Qec(bb_hnd#0z6elLTkAL%i0 zSE>IK?utzr5If&`OWnoQmq8forPp2GB89B>*R)T|@#NB~ss;2B*rXw!XgZ0#8T#b# z@cS(&&ou-<%2cLFEdW1|&S-oD+~oW7+@HonJQAWG!z8_`2C|2vYCPn^n{ zeeuJeI%xqr*c$iU%)Lg}?~y~05UiO9aAsEOyfkAZR*RxMF8RzS3T?~LfGid> za7s`g+5^&Vrivy(p|O9PW!SMlU#tEB%Uq#| zcv$N~N%+B1%lmIxCiR*<{JP4U0qU{Ue^~P)50;Jomb9rUmFcOQ;eKo$AwU&ArXo8+Wb7@%k8SaPNExz&HE5G@LJOFI{69Q5 zK@a}OK6SlBD*S810;iC@Gixwz9(vFHe8*Z^|8rZgHUx#wMm;H@b?BkMB6GmjUbaY` zwYFPitC*V$NU31M^!v9=9!PR>^70m#ImGebBYixgv#0GHDk8ye3Ea}%4URJt4lF6y zvOhPc%Pn2^F>i$!g;M)3Y~HHA;&^)IjMSYa^k04-QBVG^2^dnizN7VJX>-TZDA+f8 zE@0KzM4@qLJf^q)Qn_VE<%)c}CGoKD3G-uar2G_`#SkOyTos{0+z$PdEFKi|1kAdw z{Gmpo()O!C4VBk!!8V4+@^j|_L;q~aQqGF%VavVe`vEjZQx{*{v`tSwCjaYQhKF4F zYdf9;W6oB2Mycbvi+}dFowI4n717eJX`+OeP=*FTC!!S-+)Oxy!xpMC(m(|O802rA zbASJR0{>#_es+*`Ch5T_Sz-@BpLYspnexM^aP;HVKkL~)d8nH(vGX?;phH)n|1DSR z`xg2#z&rdll+hgB?nmDzX|pm#M8X5IX;cXxT*G%C45}iY#-x@7MSVZDviOgPLgEx` zBxQoJn+b}et+jm~g!@oeMSmt!QExOvX@o4Zcq0+W=sw69i~8z)0W zeIXAXiYxik{|a_USJllFozP_uCLgx0u2wczoIHUS{xnf;lVm+EbH9oI3^=6jsvQcn zQ6Ug+sGS6$Zi|rO^}<(Hwci~7v$`j*Yq8 z>bmjBgliMojjcd9@!;d)+Dnvw^|ZG51#ZlRoWm-#2tun{yt71St_&;8n(YZ5;Frtv z4Chp8G-YMitAXtz$T8~CwxzZ3w)LxKzbhnRZqd>AN6=0p8+QWE*NxA_oBVZsq3_G& zQ1CdTD$>6HDUAfjYS`-{hKZV&)`CMPY(P_5jBc%=b?b<{OIv zS4S~Tot8$&+7gY=MjWv61a(Us5s@-u-8E&r+RJIkrdAqads~B({&AJy4@%Z6ZQQ(u z^R+d!s>=`H6^~dmBjVjvy4en%<-?xJf8esXKj+NAHIW@k+iHf7Hst;UUMYFJb`&2! z^~4=(4m>c=z=(cV{wp#lb20mS+2c~U&QU&j*cFh~cOmZJz;_ZwGW54KGBsyf!63K%C}P54hyV4GBSPJA3b4Hbf&~V3EDnU>>Cwn#wx#Rh)tDN zd}l@x)3#F<(!ned?yRA-glffIt#V!`#RdeU9Tw*wirnW^R%)W(RxL%6y;$XFgVMR! z5O*YhiG>mZXcN25ywabq>~iGZ=c*X49_QryIsAE?Q>AMw1G08@=l?)L+g4mSwvwjr zK{h4+blrhC)DoWj@y8pny*WVmp8y=c$6~V%re);L^o6}0ES1)2u!{497G>AZbp1&0 z+qObYvC0rf4+51wfszbbJ=?=AOfbH*8?FMI4^%^+n1TTCBw4E%%c%)hPAUoz?0WaA z3$e6$I}^An5yCe`{N90ImvuyL-n7m8#F>&~_7dWd1f0v4v(ks9r`~zbuGwR zE0yo*a&ez&#}{YFS&Tquj=`ghnCOi`MN{wB{m9Q z<^J(-aa(q!+VjWknJ*#|+}Fcx1!As zP&y~yd1DIx=vW|(Q~6mhh{`r~2Hx8cHR zOUic#(_6zU9JjK!zWPb4t+CbJHU1i(B2r#MZ(yhkg>DsZP|gqac5%Dct0^(E+_x zZ>ey_#o*15!;9mq`~frfzO?rS=(VVj8cOckFq_atg!?zn_e^sr%&+^qnZU{%6MhEs zPu2(3pS>r9ax7#yDL30RVw5_ayw`kJwb}R~Vy#|hKZ9^l$}63nZM8<1NfOO9K7W2o zsZ8Yc9B7MnHBhHbEN|+1AP5vUPev_u4MUZ2%kN)Xw;5{SZz6UH%Eig7IPMiL4Z}W0 zYd;~zo;9hB>s-QIZolE%Opnv5@MP8K>@3ylt^H!*JbvFDO&iwOyfx-noVzlOLM_O$ zHhfC>E*jTR@_OAs_FXohep`S}hT715qlWi&&+->-HnQ?(a-EH+=rE!6T|BNYMg*Pl zM1{O?@Vv|g8q+8)%5Ypb^hg8>Sc%HI`?nz&{v$$}WPSJ3*FQd8+`8?eaYRl|T^hOz zY#gEoyY0)ecJT3^Bg|EtcT{733GvJTigXtP@}>bK-A-$bYzdRIttF_f!+}n{(gXdd zv!)ORwZvEB@I&Z6Vf+HyXhzEs^K3{^hvL0CbTHpI?;#}U&*rr)7dhlClY59pZpn={ zGLNZ4%rtimnK{^YNPIx4t(5YE*Hs!~$!K@-E`M6GXd%I-KzNLdtl!JPZ+Xx(+w%b; zuJLDIp3gpr2YFbG=^D|4jC<#)FUGCmPriC>UJc|?uKWnNqI82!2|S<*-1CagKn))$ z(#bC5#Pu&@fA~nX$_+?{mdyN8#darsxJ;C5o7<6pIdu30Q3)Eo4POR z6EX^mV4V(D@zD(lSs_PJDiB0U0gPSx7|hV7MJW6FXg&A6gYZTlYgA`Qmgrc`^~p58wVc_iI3`b8o!I? zolgh&|Mg2%#7{tbZN$KfbNb1~(v~X1YR|o5U%pZuk8OoiOgW9yJ1X@E{)>6-CVAS# z!%NGh@ta?vo#aO)mi20zpLVcM?OCY9&{udRt5=a$@K7GaH}N~UP0UP#5Jy;$um zw(b^@2L9b&Jlc^?aHJ|C`HFl&z zyS2zJXPsO!y*@)6s<*}`PT=b2N{+#MCwqM>0w%esLH?c?k#n&$S%j&HNZ047GvpUx zPL&pgjiuR9P7&1$7h71bwDP&=_wf%UxR!s*$GtN%-ExcYb{l{^n87G6AH^JIugrV} zyU!wu8A=r`(08S5XR-deGQJSr9EG(SYI#W-GCm*OO;`GZKxwaM=iKT9+k1G zKix0;h-NS<210hSnO7bt9gx2lQ7t|E&M{|iUf4vc1ewY3-PeWSM|*!l48M7yOU~A^ zCq7pyF+qa|$5@BD%kYa$YN0&_FI5?9Z;mptDXKMk#Yo6-)yL{$0w|1aGz^&27M z{m%<%X}JU>?Jmh#o%-$&rzdOP6_@Qm6-=GFd?sy5#kBz}hJ!4HP_2XaI_=sQSEN>^ z1*3^TEUSKvu;T4I^{p#tfzPKSKC)J9{dNCLH!~*Yg3uu0N+XK8M15IMsg`nz_&t2esT+vq1+;E55%piBMH>1F*O>f&kro@s z%89tvgA}Of-}Os`V#|W^vAG0T-(Ttc_n!BD&BtI|?QBDhnNFU#%EpLa-xPSNi|~gd$We!1LXvKwZx$z%6x?&I@UD}8Z>H$1QWief zbp#zBn#A=omTS$wL3n|ZbA*0(DIqg8KSrtWN48$vi>2JInVO=(uY7HL-29Vg&)m3q zg&|Aj7Vuy!lyCHTrDfaCi;Uiwc$>9rDi*hrLU>MfacAz>4#e(XIoA<#m)!re?eLPP zF9;D#)v!ZtsK6FCabQ4pf*h{6%|wt9ME>ws*m#D~iLRMP4NVL?qMI9;qJ*5KXUv_C zSqleeJN#V^NJ)&+{WK84No{p66^$X$u}njE7RpP$FdGYT7DgBNB=M3rP1d?3LlY~_ zxb`2+tA;4FS-G>N$d!;U`fn@D(v)9{bAjH?hDR8?v09xf=5?hkD>yo=YUk->fj_=N z%_ceKbuew}L{fPvnKk!EErkfVojN$P);-cz!K5G)A!nEa-YZl zmj+=K4P(hNM%(9*9cpoi7-%wx22AGt_2=QhrisW34f~HkV%jAAZeDR!s7t^D-LO9^ zn@sbY@iV34g$k+Dwf!%XSNI-bw=zUxn0B6TT#9EpjI;>O;!aTT1DD+WqR^c(NMmdD zahe4$k%e2-fBalM1uyop+JjyNI@Y{nc~jB(&eJLr6gtc}mvhEoW%=>}I)we4UDk6E znk;x6Id*=k!Ib~n&^u0K2g+M4_4|V9htt>EQ?Uye<}mY#QOC`8sRY7MH==f* zdHDarxV%r=Di!}f2672QfvX=+S1dTxyZ%`3-z?(`*UDDL4&U8oVrGvlZ7SU8e<5YR zY1Gv@7yLVNcRDx*0j7rKfr@j7-VfP3nQv9Mquwi)=M6fIO>vw?`u}2vX+-!gAQvbD zK4{+a9~YIzUye*jTLjb7qJELUqEU~{hy05|{=6Ks3Z=}><}US_`+c&`G&5uL?1p?g zrSR@FkC6tx%{L;5N$Aw@%J>&wyTjeCVN>`++bSD-SyES3SDF18w&@J7gz6mzrgfEG z8z|vrjPR!&p&TE+c#cny{q*D^@2Sekl7c%?9Cbh3=CF-^v*T0U4~fJr^#&E;dLP*o z7|b%P`#yHr0ZHrDX1CEwb#OSln4{*Q|E@UwGl$`YH42;v>~LJmka9e8=F9^r#q7Ag zKsX69f&r>XZH;sU!BW^y#jhUn1~@4y(%w(+b3WMQ!z02_)jS1$3g>2Jdv^?HJZF{M7Sv%% z=-0=E0(Q(|rP$z8}&(rfU0a*25R)5ecx8mRWoOQNr=Q2y#F= zilieVNkhv^h`EGT;OJ`$L~ORqYrydB=xvOGyA z#oRATvofCo>sDBQQ_p%o7UuY3qH02Lct#0NI12f^Uv_S+AV~s4H=!Ui_40|7=*TaI z3sA8ILdN*k&WZwpUdA)gm|fhKV=S9BrBWh`TW@WY#I(_H!K;*=x~0CwI*bAx<}lU7 zQD08aklDd>2rl4j+a=-PM2NBL%na4PkB~B_)K^oqtmG>k>a3Z*L;PXN7I9B;#Uk!r*P$*BiOVwO27tFoC77n*a(Y@ho!@VDv7TRo#MM+_+*B8e zX?z1A{@CY>h?d<|4m@Z@Pi{0e(9WyW<)Os1i+YM+FZsN-Y4q5ytnGxB6R#K5Mtw!J zALsTQZjp}0sDb$>-wQfW?<8X(59evk=;e2vP`i|&N~;Trl`YcDTJv1!baHo(0O>i1 z^nNgSVWS>l6~!gxU??hL!fw8i99K=?Gc=NxA{7DE19uIq7PXXKl;n^~W6nv$QlFEb zJKq73mTF#ET>qQP3JB7^0l*y&!!3GBSTPAeghZK8dWYZEN4xbG_BXbZT&KGn0-| zi34~tAG=7X5dErGgT`Yi0&{N*0sUsRh_ixf+Z@0)DQ&sw0~-oy_CO+2(u*FbHqFvv zUKb{ToNG+!EWyWCj|FLz@6XBVK0r_OIDR%HfZ7gWL3(p#bl=%pv4v0<&8mGqa^ans zXIS!!5^i(8W$I&75h5ZBSjdp15xe@gx_D}kJ_Va|h)UTkNz%OPec)WwI1Jc#5fz*7 zRARy{D9_Az!h;<50@vz2y9H>5yjp}=$@90@;?1#logUhU6}rKk751Hb=r={gdZxEY zFDWkeTl+U2h8&+vDj)Z4m5p? zbMVYTeGwWMwO9g%%TBI`qPu`5^`7v#hBz?&Vp8tN+kF4yr9O*GsgYJack;b}F`@fODFc zE737HlRcuec;GoLF1q>MmH?X?Ien=e8 z$NWf5<1O0A=SI{kuKf_s>JACb^Y?UiHTrUxTVXA^@y2FGD*n&-1h0p!Ld^5^a?*t= zX<;dQJs+J&6q^}WKM;DLqG3lI>B;`&Hp-Jui%_$t<?aEq33ZdG&9X-lvJN|@>%b8HPioPgsOPbqy zwd@XKB6KICq6kc96;z61=*^V{``Ot1OZc7$V}4lOxvziadUX4u^0TM7Wn7?Jq=n?V z-44P|5S$>LyjO+fXX-(yIi764k!mc1%iA~U;j(3oN{r0*NYz;Y4DUm3GY6l4uc@<& zt*AX4{()f&*El+ebgx(VJgv$`6uo>Xa*9`-75UnDE_7K$$23*?Z^dL>Q5C3TI!;3! zeqF(%nC+N|;HeWu^lbIx*b-y8Kb~P9YSavkJnb00@KI)&#}}r3hV4{@1nffKO}Nj@ z;sUav&0s6o!TDwFajQ|`5V2xANVBQVEqz(P3DBcr5IAsB_0Xdct|yeFAmSFRq1bxj z1o*q=lShXA;GOM2^(Ep`NdtW?JrJME28$bC9gUhO`7waoYoJfh@Y4BSu!d|g5Nhqi z>{?gG(je+>g1V(8l)A$t*)N<07TJR?Iq6-DRw~sMmqRo!*CsTQr_gZmiP}n_mfW$e3flshef(!&4eM!DEA?o*(?0)cfvgBbNeelqC6+(Im*-`3JZ{uPt!p5#Kvea!-UF4?nbhXXr$yaKT~@w(ipUrw^NS+BSSRzzW6 zI$xqI1)a<(C+AR!36d5fmj$21#>h2ZapU7kgqH`uEf>SOHkRTv=ghjwNnlm0#rxJx5`DE_!zpNMbP-vyfG}n4Y8I|(Cj}hKX*=ZDe|6E-5I5Mcl z2Da7OpyRc9!1!uyZPJ&6ma|0bpoT@GuA531JQe+)a?6Woc3v@2B&ZGFwQaU8puy|S zqLYOo?2~1XX0D0?g)D>OIUBJ7<*X2NOi)gu#Mt{4h%vxqXS=Dq%5s=ITi`q5x2Ht^ zQO-l+Lp|pS*^UYB80hd6J7dw3pXfW6pG^*E!8-y4v&e;%vgvUG)gMI=xO?0bv?8b) zb*&~r6x3wRc2mTkNYhtkjZq&_5LY&`EcTg+$M*wpN#%A4%>w096(K1{lc}PwO)5$s z4Jnz1NwdY~x_AMaXINHAapcE@}-(zD>Nx$gWh}C^ zvB5b`8DD)_`3iuW(3k2xA?Q8qs(DljwE#^I;0L~A>FAbxfAYNURwmL&76tO%W(3(K zT_(S}Rz^ob9x$e@OGpFwkl7C z_}zqhYBNMuBDhhRu~|mtzQQp^OrH`PaG9Bbj(hM$E(Fz}+QxR=in5>5SU;^RtUw#G zr^{MtnRx&R0+Jr1Z&T%pUxs7AZ=lUi3aj(O(}&&pg8%EhSg-$!5dBj5#Cdvr+9@< z9wjsmjKGfVEDkb-@RPe;uHmxuz0&MH@3=O0oYH1{x%-4d0@O9wf*MNl-j7v9tJ{ms zmL|oL_95i%MiukfinhAAEtEJUz_0CMBOS4TU!^Y!b?n7gv#~uXg_qZ1vE<2)WS1VS zNe?Pc%vB2YK{j0=GH!ud6jUAxG^zlhFdg!;vFWJs9ZD(D#0(0750X>rEVEUBx)drd z&^-_)pI~@V2ZtOQ05i6ShC%cg|4fw>mUudK{%Bi{*pt8ty0Js)Q0BY<0S|m!~i16$|~}`Bb0~pN}gsJ zl-T9N6w3h9?Ut|ZD9e*nvl;!IIfO*HyW;oN-c z_=9T>g>Ob;OTg2`tFlifnu@FM{+%?USQNn|XKn5i_>6Zq{zw;e)5CI#FG=uZNQoo5 z6rscw*t_Vx8qA|#?<=KcHU+ofh9SW(=W9-WA1$wp-LW(|Xd<6GQDskUXntwqeGuP{ z$#!=u(D%8q=W5dJ&srCzn0UC=+!1QqSp<(x=OME>v|XIQIEn=;j0PT!dGAZMas(VY zh(aZK^38>=!Ebz;o49eZF0pA(c$X`{_q6XtfShP)(Fk3 z`$xnEL&c&MNDMUy&m~^A>7D|Tq4akKkiwe|KJNfM7CbbUfYj$pWF;k%_zjG?g_#+* zjPOd@?aFg$<_FMaq!j;lRak&{pi?v`(D>=znnbsyi0q0L_9Bkcuq=T%nCNSZpO)Y@ zGjJ6-P(fV?T$slztw-*W34?IQ?#f8MX>--AbhpV=&T74-2b$UkL$!yS_SkKO8e%b~ z=VBOEzII=kiCr~Iv+A%lWzub-dqMWg8JB3JD@kR2TAO^*F>E zwM9!ybgK*t8)rPrU+Pv^D=P0tAZ!%>ehS%)hdnvqx^RmHsP28&l}tlvvv&uxQUblp zc#_O|=tL>F->6Od@VC71-e!e%zD7lo(|p^qL^b9O)3lo}z#}3wE>c@<`$8#=OvJ-s z6knOo6vcxm>r;UmIK)#G(Dh``Z@$B;XS$oZh%vdPbOn!$+N*2Ijh3K;DjkM0$fDer zDik&fi-e}txub-1!MI0^UGiBnjvXgDT;OnNpbr`tAC3qI*y1ZmBDch>VIH6=P zHh*??`rg{L~p{6wEcw(|G|mZQ{O zoIshRCf5HgF?>gi!_Cf1(x@qU6P%@3?)6yuZCSxjn=frWfj+Q~=GzJpqIITVr440; z_%j+qS&y7y1(=VDwaks4K!*X^AdG{>{^XB3Hd4&RK7zAr`C<#aGte=yrG`jQZ=!ImmTwJ5A``Jwz1QdMBTi- zl4dwZ(GO@7sf|ouMH*$RUb>;Q6Y7{xl!=eK=H1OzRN2_+Ob94HzOiHq;wpl z0*=y&g;NHyPf7TMyLfteN235Wh&;LrRJnk`^5bV%aj``T{gXm$(h_Z()13YUtoM3g zN)MbFrbh#A7;J>pM3Xkg-PYFP-(8q6UJXM9ul6bV%_-qmG0ZAokvKNGPl!drjMTwfNU+O zg014eJKOi^CYSDf<#JoF?(dKcDC+Ehkc*CjVM@zKHYwve2}4*8N2;amHoY&!b}hpm z-|Of&PP(;X?%5cO3z1Iah;U7#d&2yh9Rkq!0s*dlB(~i`MZw+7f z4KJpfWWVwLDISLKm*}DDU5U6vqO=@gYf@}pR9rj8))*Ag^_Cfa;Sm5fDK6U5tdn{- z*8v%@sXneBay&sgZ=UHXZmV)-Otx6Qxgp@IM4-NE8O^jiAZ%Y`fDd^|ud%K>AL|ma zns8!+3KI#xq>%6@2OOGnZ6~eH`%P=?4NU9qXPXPv7W%W*t0pYc=C#>={uoSr#+FfO z-g1aGyfhCx{%VbSQ7U$;V@n&ig-pW4_v<))@bs`_oAJx870LFzK8tBNZ-q&RD?QLZDz^wLQ< zH4a&OPdUa#`Z5{P=CN|yqc6Q^Km;mF5p|2!u?wpzK@J4gp>{qZtu-u;@GQu{OLHK^ zo7SFDkhKTL<79X1DMon57c$TN^I0GL@D#p1bQ%>4Gh&y~DXVXkO~4P_WR;mx;Wr;Oc_BK2hl^nF0mECi+mLKp^jEY{a)s59VuWQy+u@&T@jF>xaS6Be; z4_6~ST6?~}$g7EG+3!=KNm>Ohg+18+AypfH$S(TwV}q&+Wmha!cR_;ysnBHW^JJq{ zHZk)@r!GADcz))-rUIF<$7lnZbyq5zkUVcB1Q2j4Hg) zvk{5;?UcS9$hAYc&35b`#paKdVe)J6tjkcCADKT8*N~jDMyuphIz-uy%5wCCUJiH6 zd-~t~M|(l@zW=-b=%#smT+zF@j|ws$Vfc@!?`|^o>ieq%zRwv7Lfp6V?G>ZcbYo|w z>fIx9H- zuJ@2SP+tLG9)xT8(uZ<9@mg%Fakxi3FE6f)LPrwpghM=@YDOJ)>B@=mtAJ5;I>6=| z=R(N&HvP3y8*R+3Dl4XY$6J*}--jzi;Yullb!@j45X;tz>u@$2Z1_Z@lGS05dKc_T zWTcSxm#%!T|(>dFTi`R-b8LbI`=mo~C z0Ud9it}YB^pK?>~`H0E3G5wX%K`+L~c*rrljUHDU_$k&ad-EqqDQmq5IE{Ejtwu%T zGGW$Jiu=&u`?P&}>wT6tR)oZ!StoZ=Qea=SwnU7!MEiA*VPXK3# zPX_gatt~tzwe-uaZ{hz!Bjq?6j3v4cGO!a0mbxm`g9q5U2^YxCmA?;eHYal15GH;( zC;)_%Y_8CB`Q^R&=@pc>E+x*BxcJd=8BC{Oj#gE$7opH;O{IG)vw70nR{*4RF`m6L znV)>B%eNk9@i_F)9Cef9VmwER8MwawZ%bXa^vpIVPkc+Nn{oA)FLX^$7&dRg`Aks`kP@_+l-O|DrTBQe4{7l?85 zAKHYW&r5p!{N@&ub<=sF!(sR{rwRllQ?rz?yVBynwY=NK${^XB=*gQfP@Zu66iaqS z~P?-DFy$OVwsE!$bJZ_1WP+m4Gt8fmAt-|3Xf!&xY8J)?Net!(RRM zi#a2VA2Hg7(P@%Sqd9Kn9au&RsG7Xf>d0`e|8-QY{yvAXFRjL80UcZkVtnz#X#<2Y+Xqgh#YfN_XB@Dp>(NuEPSJ zTI^>oQ}S>@@;v{!mJo(^{cz5eT}8jSvZkZi5l{S_5Uct`ebjP=#cZ2}GUOl%i8dfA zrLbH{`XejCN=l+4csTDr7qO^oR+Y}!aGFX%6HY6V`+5X;`HNP~BL$2#-=-s!s_wBr z%|4nT!=q1gKpt3T9lKel_xDjwN1-`P*+%VlqSN{BoKfUCd|#@Il2!Ao0{qwAoyZBi zaIo#rJbx$|u)8Dq^R=qY_pqYwTZco+U#%DR9MOv=f@jV-M@tCA52-Pe*JXt}0)Fg- z{r$@UvI_;D>G38L;_}Wb++=^IsI1!`4lLoY3c6-o_ApYQK3xde=Ig`wD!eHUN^JB1G4lGzRk+sGk4I-o~KSHG>Krw{(b7V2HnqIB3g6R z0wH^MynSt9ZZ{^X)GhpvJ0!1XSI$oJ{rk)rnZH6j>@{chs|<9b7^C0ho)!dZ!}ZA8 zzF5NZ)@?1$KKu8%ugnG4O(TAV8e(AJJ73^Ccv@HOcPodJUm7i&zI4Qe?i2!te??g z{IBEH(8XV73mqeCL)e^}H3MtE&5~$8(EpzY=s!50hnbgt6X;%NxsX`KCTBQfbY#2t z+`cxfdaD{(TiF`SkCM7s?#mY5=)*Qp{a0p>HvMbSN(hvtFKKh!jXQm(rw3oWVuh-C z0Lf;VI&=ZilRMkCAY3R$$Y<`xtkh02RV>E2kM%uc#qN83vahd>09HxXjY2b>dw;S| zPsHsvf{&p658Ps1t>=Q%#G20Q!W{}}f#<@r?cvC41A4**r4DEQ26pZhIwkrHK zH?OmFMia}wc%nMuhgNH(e~my$vZQygukU?Xc(iZ0ood>u?6bJES+YkWN~A)OI2n`= zB5k!tX1BMAcFenm#%7YKZT8-dadaMJ&e32ndO3bSHcAg0&tfk_INp=ZV!LerTR46F z^q)$z!rVMO=&G*sLyUoExQf4R_wRxK%G?#}#sZ}6q+uGDO0o=x7*fn^CK;I>^bz%& z;bp%ETPgD&Ydk8&f>apk#|T=5SdJ!Y73swxM@F71Lv2A%O!a=>!GnLefin)nF?V8O z#%3NA>{fu<-P80bIa-7O&7s3WKUz~U^8_Kxps#)>ZzFtl-U}d)Jz7V>pgs3~9yz}tOQQHL|9aY|w2YoaZLK0J zaEdN`db+=Xp#Qqr$TeMOW}^VW2_HdG*tO5xx4M70)!VJT+mWwam2@;_|07ensA`(e zDsELmsPdFeKmW$Vup4)eNcPQcG^?eG&}29=)W^Rw~SFh8C( zrf0g}_u1Q?1`jJbYTOg-&B_7?9M5#l75;idd+sh(wWF!CFVit-Ib~faK&*ban zzM-s=vmZLRQ7|E9Igv;mYkjg^ z9hmXSP#(NNI(j<150%-`jx~Ca0uwOi-B9iU?zdV;)MrfyV)%Iy14I@lP{ZbP6(uh9 zr=|nJmfkMYo#4eD{07T;?M1%JtYn)XB8n*%j6@nXMs_)-MranWtRNt#?1J0-aCBS* ztV}_LJrfHVfJh)+R43j=&0OLMnZhKxW={}KglN9vfG}3+DQu~+gIc9 zpje-?j*~KfUo&Z_PTm3X@R|GI5k*3V9QEmI!y0V&$ zB(ZqzDLH1e_fH@)?0n*Dn>!gnn7tZovUrTMgkv9h{gL-WnT$Df&Jk^~CkC&6fe)IA)de!VUUvoDZ|5c{Fw{$5*ey^SzV>ltf1~=*ni(4p8Ph^v##Ir#V!;x1yEowTn+5bMb{;{Z)X)XIM(1 z0<81^@CP-*ex`+!G{wKo8eE}PGei}?=caqFuK^p874U}&7fs%jDey^5qiPcRy zY(5~Boc&zcE0J}_0(uKkr73@Qu~%2}M)AGR=4?ZBeco9g-55qST3+P$A9|HAM%hLY zrl>NTq;Ird^P`x)&*NM$9AxvNmAdMahvuQz%JYBbyP z6c>vfublcK9sA44`quDhwD$km=NzcCy!gL#ItK)7nSGj-@fEqPeec7SmeUg>eX~FN zsm;&NNRaMkSyb0_MdmX8$BD^2NpJmX3x}{67gt8I-_7iNtz`JL;`&FH$=_u!J3 z)^*d>@@=sMF2i&0*Q{^6g*_1mf>vp&_tFC|@Q+Uk#u0#Y$Pu7c;^3^T_ug1Jgi~TjJM-8Hz+vFTRg(<1)W-Zh=tf_{pwXfZ6HDZ{`y?Fz4 z{9ZxJX?g6Yl7!^OcQ87>0N*-O44xX+e^`&;W>4%eFY6>_#yvZyGy3at*EJbtCX_E$ zS(0CQ|EHTf*vEVK+nZUk44610srE!$l%`!>&ge=zaiZPe(xID&xVYt6h8BAHlw)tZ z@5GzAWcUYD=0sUOqn-IP<^O}R?~ZFK`?u9`)Ug0c5d?ujQIsmuyACQM0v38zT4(_w zbO<;Wkggyd5~PUqo)D@92t9NN2}B4GdV~O>=bZ#~=HB~z_r3FnA2m5AXYX_N-rw)~ zuC;dYtBvsdumQFjlLwGlO4D3wA+A!tOqp1m|0Qpr-B)9xQKCGm3cO)B$a1BBj zjY6n(#Ft+Ba$1E0`NGc(MD%}OEO7_%^2lDPPeD9wkW{@^O8E%#^k4Ie7Y|z{%_ zFB+dpdJ@7L&&U`06C_DGQ57FaUvedja-qYJrFYGVSEYRAfElf3$_jP@)al?Y-tKCD zmp0hzp|0_^UyS&yN1YfEpgJ*SyWBI+*PdsNKm~OzZ0wYoja=K~zfF#bG^nPKywQgF z51;XZhx}@7b({PFwp2y{orx+z+?KG*H(#v*!N^w=lYYMzYfW29%3dBo!*nr=jm$Bj z*#_iUXs#O!JS3M6ou_tw99$Di^9tCCZjFWy8gKTPjF?mre3qL48r29u;|(i60VnPA zcnQJyHfC0`8NvSm7k`)`P>?N~_8emv+fTt4araK;M9=zOr(WdI*+<^DY_+8?mxv&>9&Yd{;|La#BIDe%Z#m@}Y#%SZz45JCC?V4zdp@^+C~J zGUrTSFqH`|_zqvmX?lJ_4UYh_`!VW7O6kY%KFlLB+g}}%!rqXKh0sDrPxvxImcC{) zzRu2aYxm@mf@|*X9WE|W?MOXI%*r>1R|1mjs}skfl%dW~zyO0ck`x&(5`rk6;bL%w z=9N3-ZC2g(nL@TJ{!MWt7`J7v{-mVJn7?(ei%b*}*Ii|+g3ixXPQ-=|-c93q7z&|N zi%@8<02r@1VY+*Kt+LXPFg!S$qthT$n1OvyU-R|zClKX0Olum{w7_KTx`( z0ey8B(`;Dme{CtEj@U*~{J3r$ZDDo}o{W+XL~fT4$^LiJYhC&&CY>V2qRgIWhi z=4)`@2IpYBoxD#!3G9O{r#E+!6J;nuK-9wvg5)Eyc-ia>((}V7tVXLn0sJ8Zbm12% ziA%;&PnP~*R}BDs7X>rwDGxCapoay|BC|4tQp{O@tAq9?nM#*vl49O~Sno1Eg8i2g zN8%ess!+pJ``i2&K&n3`i!Zo*{2;p1|Jy?4nMLk9Ne-O;~}j z;})Yy2mGSmhcsW<-{+t^^VmMR>HG#5P?YAT3u|VbQj!ZTK;rNyynXlv_D|qkV1YbF zhx~rwd~1b4w7s5U%LZpA`p1j|aqfmLB1~{b!RPxo02E~6Rg?xY;c`a4&G^Ew`%jll z`akF1{Vz!J10NqfhdFb&)~y*7m{bb?0~sE0q=OblWj31CtG}N(Bl=nh z=5zj^kLidan_sDaPzhAp%(R!v7N+;uI$^s{k6iiIb*FO+kUx#m`TniN4koS z?oji63W8hAzo^AD|g>b{dNR@Nzi2U>@jVou;9czD-4|axg4|TCC zh|_uCEKne2FJ+Mj%FaQ=kAZ|Tli){uA$9w%zz8Jf>M+3V&C zGpk3f7PH0PHVE>Ek3mu`@jp*4VS39s60x!=v)pIu68XT8z^8$imWcPb|K#d_O-y_i zQLZWhmblur4qIFthQQOu=X=#87%H#R)vVZSvPtmMMq|D1t~Gsyi?mk%qmq{)hi z2O=n@wO*}Xdps61szeNBB@&|fcPG|2`k@%xL$_M-%MF27Oxr!KBF7g06S%9=_*E^+ ziGpsdpu*0f)?UihJlrh5plP(a(at?lr)J#0rRr@gZXQ!=veHn0712-uwqW#n)R*o7 zNWMvVLQvpJ4Dtdz<#bM9B{;CGUokqXb9-z0ogRjFxkV!L;SOvN}M1NVr&W&Z4zG|K&GgujCEB;k}Q+CA`_rR=1)te@%RWXx!q*u7w_j| z@tICJRBiS5Q(+{_v)Aq|^}I@usYt=`#yqqBI@&j4i3`F%a$`1si!W9Wq&zMV!GWxr zG2F5X3LZ~gYp%(miUj{K4P@T5&AAQFL-DGF*eq=aR{sO6KLe)#UD7^6$`@5jE!S@_&Bv?pQ0uuRAK$SC#2bjba8zLCgcD$*k@)=~o_15#XrGKlN04vr z-ew6u;k6W1{d|=h(-F#FJIqRI*nYl-v?BjCg<*$e)9-n{v$0<%rTbsFkuAN6UhdI5VI8Re!<< zGM`fOYx~fqAYWA;2MM?(r|xdR4Pfbj+bgbqe@1h{fl}`EWRdeMnb+^Ekb&2pyc7iA(OzqN#G>fx0c>_lxC3kt5mghlB4u%3{ zihm}yr?DIAZsE6H6v(^_In!V|SfrYubXnDZYt_ecX=wQcfdhl6oN##JLJ_K#IGK`I zzB*#W^J@Eh>ro=)>&SYF1x`o@J7dl3v2}>!{h;2gLVtIhe~kbne8@Afqo~@_8jT4P ztT*P97290Pq***@l{vPgY6Sf?jh95SuHwVCPV$}l8gph*SM{u1q5TPkssA4DpScLv zuK&rIsZg>GfWWIZF7W4l{G$yaa_rKc&;Gbqyao_-(g#!b|OhT0Cn{qyWxcbAB~!erv8(vald6FhhjurA~@35^C?TI%%+CS75nS-AlCA_d-$CVw7}k z(h>QFN^~n(bc#l@fCkF{QyFFeX_c~UJwXg9P>Zj6AE$;y2%g;dbWyBl zrS+^scL{qpe)SXSh>xA7a(vyQMN^4`x7PFcAssT0kc6)i&#al@(&Drqv*zL6$^=AK z;rH!H$Z~h>i^IRn{L>@SNe1uQfz(x3^`eW*LPDes_m7g(BxP}=nzR)emdgnhJY%*o z?%}JP#5q5qK_xtTz)>-F@dhTr!taV{zN=QesAhuS&`3PbS8InVOlX!L|F7U#wM+Iz9*{xD&*r?*ET z;F?of;J5Gc*RWXy$89s#EI{+-hRPu;bJ?R4;|^})aMSb1?Ny)Zg%Oi_cij=$x(ntg zVBXdi4q_%0K6TBHvaGN0=sr`=z9E|C6&Yd6@{#r+w3 zeeP9)dAIm?Ij`Z(Qgc<#=msOc2GP6Evw%^TxSH>O9ET(XU5QAv^m42v=PV+N^-kKv zhn$UtRL|re<-~QkW=)=JW>!J?@QZJoHLYb2?eMGR`!4Ym6buBg-rXIPLsvSDj>Y-o z;!v}@L2eJF_cRu_EyZc`C#<(qgo|Yol&+{s*Se0IgPxfGYNgj7euM9KMmXGvu9jgl z<^Hv_@6M+Nt-E@itQYzECisW?!s_S?ObA}m5MA(M3xU|v8SzMvSTyyrKz(XV^7U)vJHJ$#I#SXuvx7O$u409!2{&tYRlHWrM{7u~#W^$CAmw)YDfJ^>CC8~iSs%_T@ZXsOqPah)&{cG30LzkCA zXfcJAL*B^GZtX%*VdE&X5XjMUPwyxPOn=6jJREQ}SN6nUtO6)=&RO?VIr){w)t9F( zAe=AH#hbc>$~X-+0!)bVw@m-iG3@3%^8W&$q@DriR#Mch2QLyL9u2ZZ)liS(&{rgO zO{H~fufL(+US5a)K0Rl*7oY|JhhIEFw)mc<2ET$bbdgDKwLnVqkJWWekiko3rP!{9 zr|luiasxnF%I{{2R4Hw58=ZdR1pw8={`XKayA95`9{mqzPkN>SBsKKBgpd?{V$M_NHY{XqW}dS+nT9)Al0fdD8koi$}tYISSB*mxL{bJN<| zdj6WNi!7tZy8#vgmagZCG^+FSq@%*=B!DyXjsdQCB%ma-MK2Hc^m=?Q(LZ-@IP;qhP6scsf^Q@0`jyYJ9bfD`H^`>Y{C}B$bA&S55=z-Z!qaEpTBZQDV}6H)(5{#r_Li#X2af~be35OU3}oPdrw&lnJnwMYYxqfsEl{J_FLsB3ocdQnEO)NfuNAsB0ii4>q1xAFM-`4? zEGM#K39cuO~^qujqVdl}VYBla5==xsvDgXwBE!CWWIjt#_{+ zPzgM8DCqaAAFTZ%Bqv=Nc~NUkrod2tdz~&FclK1Hj)f(HZsFEVsAYptBe-^Tw5{wU zmY(GvsDq~qt)Aah+c_V&0o)I=evO#e@aju^t0cd3po|xvq2e}!hBvbFUow;%6!qZc_#LJIAT$9I~wBUi*{E9tdQqLt%7 z<0`k}-RpyT1NC+0`P(*@`qYYkL|v?ZlHSoYMVAvtMdx?-@5dC#I#++&+~J?#RNFBy zQ`?^P0iOsFHB_cJ*K#YN>(vQKjCe3bJol->`-~TAW`$y2x5{(RgQF>Mdv#pOcL9k)-ErB5cdhr>HBV{Y7j)X{=)5XX6Yb1V3I z&HKt=l!bzAh;g@@C$ZSnY3zf*Elnc`Rtk$_dN5jF=S&0)-LkcC(EPkNCV^^q+ZS42 zm5byak8-(W4n@$P+jX+g%(1#pZ~2uaRJXCqlG6tSZUO&21MW??ymhCndUqq@GRA=! zkjvhZFV(uyx}+yxoJ8u6@`~qC*le>;krnJpGJ1PEa@y8hQ_7&y74GXgI1%96kyLrr z+$7HM4ljWCIoH=#se0c%gAfzdkCSPCk(r{w;>-B;PiHR9v>KH9EKksxQ@{)WYzP)_ zaBn7ZC3;t|XnU|zl1gnFBoCQ;n+MEKqn5V=>Nhs|15X2w)J=I;G|hAqyO3iUZnlK- zS>2lNQ&5A!p|Bv)KzDN-VhSFoydJyYV~a-lE|JT1FYJ8}=RXr=?6p${(R$Yz z@U1x0qtIt!TEI}I6ER9%Mymnrqz*vgXE)a^ikl{CKJjloL z*09tvK640dUVIKO>zXihoa75~dJU+aZvfXEmnUCYk^pYPj3XMqY1H}6j#Y1WcFns< zrpVc{o<1SZ{jE}sJ1mcUm$$wsMNY$wl+}p| z8jm5MzW8owfsu){w91&Hz-b4DSAJLdyM;_y+Nfb8Bo%Uq7>^NZudQs?=U4@N-{!Gy zz&n-BgpQ22#Gv5;iWZ~3HzSmYEiF@JUMm{s&KxDPF6T_I-{^!ADBc`kQf#_Cr7fVz zN1WQ_6GRMr>kodw&TJ{5K%{eJ^x-;>izNw68=i01SSPN%caOo5#VGOx`m$TVlq)(g0GHLkG4L^t08f{CVU z?{ELL{3(q6Nz8?g>4b*>87?yHY^$W!_Bpvq(No4G;Sr=n#48RVi!nr9`do55*|yNX z>W1u=s>{y)tnDX3k6HHV!#`_TV8roBoug^oq%?1fnyGRky7AyVN=Q>_4T4cY?jqp3 z_s><{phD<#{5npkeM9o74Mg_7!FYK!t34=YeVOJv>S{Hmb77)?L9t84+w5FzdHf>K z4rc{x@nYw3n4Zr)sU&OhXl$&AdJ2zK%W$8_q1OY!sciZRU$1FP`d)}adFoZVN*InI zRC-!vqEnSG$j-&cO{uy}{`;nZqSS|hqkhjPm06S)N}Rzwl0FH;3JD&@L6R$*MMrq3 zuhYVF+n8}R#h7pAUQuSXXI_2vj*djZ3XadzM+z0m_0#vSOVRZ_K^2_GvTMqb0qRM_ z^fZ?D$mtY2Y4j9FX!COcQey`;R*A_UusuaVyPr-@CXNR9MsynZKMz}9v=tsffMT4A zsykZJMUzmm%vPtJ+h(flU1d*sG8#> z(HWqC)~)m-*j{yh4jaAKT@GSnaP`}E&+i|2+}^697~~e%U9SYnH#MN~dcOvC!LxH(l}6&-wF->OFEvN= z!y^xT3a(iwYcKO&BgSZnw~ie=P*V8+>hIs?<1om^Tf65!6h|fwriNo8TWsM6oNEPV zu-)CKfXivgmaWz9ZOxZ@Et=3<^yAk3@8A7!^3?xAa4o z3+O5^KXer+de!6k{vOjRsQ^;Twp!py*SfD4%^x|*bqWOYwL{$2MOKRViPs}8GNb;S z$Wtu7G{W-&R(KGda9(FK-)%W48Y{4!^&K1A5J8--KULi5vMfP@ae-C|%0tG1%md8a zZhAX2{hv#rE|f81(eEmzWUV6MQ)&EF#^gtp0fBBi?GZT>)0JS-gWZ$uD&L9x=$BJs zSQ8Qz5kN@m%J-C5KYNCS*7=d^exd~MjIXQgCsP2kluia0e)U^iOni0CBEmEwei4Ba z$5mVZs@7zVO}R6e%Rve(iC-DavUvYDJ?L3ejzbS#uN(s`TMi+x|LX z6lZ2OozQOS$Zv=Laz-MVUt_o7Fb7E=>0aEZ2HlR5cUtGS>a6Lr^)kw`x6nHU8hB*yUGFqRXO}a1geGA_!zoo>2W^?lUB=wW= z{qYdMQhK1;a4FEQy-;#)4o7^QGTjuz{9Fa7N?NVxH~G%G5AZHmqLo-ay(9bg52%Hw z7&yZ|-FxWf2_#tNCUhpT^L&(;ahagGA25KeF9sYOF7G!6qbHa~x z!~a_}u4#6g%(WY)o?`j%G=;zG2Z=mc`dTxvLD*%bV!s%@>QuGd#ekrIjb}3nuAxo3 z5|K4>lubT)=VU*V8nx225j~%+1hON6gUYS7rn@}vK^OFXh z4piCz($>rWK-!w(z_*J@Qbc0+sreNq$>ncmQ?i^D>`@IcNRcGST5!mB zd_9h225qR$+u9S-T7wGDwk@}l&C5JiovUrSVatCnT126A&!`72_fwYpc)h~eyq#$N zANAHsWolufa(mTZk4IHb(}1dF9CW1AY$;tnkXDa1$==~7p|O3!RP2L`okbmm@fDYX zEYI{?5)}A1_P$O~`~|7=g&VtVRxPD^+K~Prl{ka0dm}kW7+N1f?2;RSt2d=GPfx9@ z3A?09f5^}dm|wQ^m)d({D;i6r`8DNP{YeR`sLawuG>pHj>-`gy8{;$^D6~l6OoiS% zHz<@gf=cs_@Qzo>FmoZx+kJl~#>xEi@yr}XSUfCAxcj5N_2g%L%lj1Gq~?5)|6^Ox zFu+iQnxL<|{f{!C@-NMN&c=kG-G{5A;D$u$kL&evNZLj;?R9a`?mU)zZK4l%>)wVf zF4}YNeXxCiWxe^ZRH@BvRRm+6!|gbsr)tjqac`tL8c@0?w6ZKYG%Tj_YX~NlMZ@uD z>m>xKKL%|!FJjF#3&6GU21y}38*JLMvS@Z}KxytD423BOA>#Ol4mQvusP zCA$}gXH`Ms(FDCwTykMc%~hm{`wk><`LEg-{lc9F^uilxndI2(l%S^?w%e;&1KUA} z(efyhf*eW_oVSlNA#N6bU&OGvPJ(mY5Xuru+GsCW+?vm~(nQP?)mGm#Rd)@Za#_KH z@Izaov0h6-lntj+Kf*3i>Z?blCy%Dwap>XCHE6mH;4mkQ6+SGnogVDj z4v+M=jO4nSC0QSE)ASGVAy>VC#l+DQY!+eL`HI0gH+q#~kEbg&k#v=n2MK~{;9IP7 z0ruwV_o|dEH()m_Dk>Tyh$iO)dEGD*&JU9?&>{hoF5PJkl0htmY<^1A?!DX$_BQ@<*(+zPmO8o>WWui);2K`BT z6)6bDsd^39mzu8|XEQksne$yLaDk{2KXDTfg54X7N+u%4e17x%6H_n7cqueHy_1)r zEN$ya1~Aby^<0ik_#PL*_~Dtmqn}U%y>Ce1cA}ivD<>6dV^~`fuLJmPJ;lXs=b*j- znzYAmSjS#SdN2AQHEZ5u&yKKCcT?@AbZopVC{=;F1j(D>}Dv+w)P zAYQq)3qSL^#d=%}W{QJsceCYBq#ZR>mHHXGC>mbS{Q6;Je1?rUF2&L{I4HzUtU&{t|`x#Oq#)nxrG zzh(s$*9K2+z45|rT-{^1P>*mGuV`ER5})X}9NaWHO7yuj#-xQpC|cgLtAZU|s1gl8%cj~!Xv&3KiXH__29;J0JK1c@%S#Y2Sy*Ye568e)TN z=rlJEN%pNAH8h4G8l|s=pp8R=F2g8CaUr5Cc+X;=jV>i(w*yO)T7%v>t-o>{?nBtJ z#=qs|4Tf7nFUn@D|I{LVlGOst4CkbLuAkI0sZiUr!B=F6-Fa7GNBg&O$=*%b0c&A? z&;tT2WkXiY5obBt+u}s}Fm32+E7~qK`o@bRbVRkdZaoa}!+EH;Mo!PmOLDv3*u%T? zE&=&a_nol4LC9IT{$Z9%mbmyY3H++4DvKDs*4p)r_&a5G+1XESs^6+vF1oXhoGhKJ z6wm?Rc@DGP2HRgoCO}2J~UUKP`p&KF%mz6>-OT0frz=*S;pwyOWUje zves#TxucaMKAzbWpYXg;^Tfu4s;O*sT|lLk(h`z5La0wffYq`pQ%NbM3r!Ub{=&Il zzUvjHriY@y0_eM#+8w)E4y6xqH`>)Soh4Ws1>CQl&V``Eh zyP{9Rq<`PwUkzs5D?6XnmoXCS;S^o9qG<)%f?T<&>6e7Od<)-Ik<#-D)3@)A0Qcu& z>a;z0Hy0xonc2`+AF1|pFjZFSvX@RdGpLt>rIg!dZl=ac6Ru*RHSTfIA1ZDA;VMK+ zHRbd7Zxx7KF_Gvy(7e9fn zQRifuP@3P$*#k#sK7mF?{Lx(18gP$FqxYqjA>$o8^qAWYSYMn!c@_ptb$X3sitaqm zp?Lrn&vJ4hY3rduD$=_qF-UnsqkN$cF z*1+5`S$p^|nq_eFKQzlh#8ROcE?P-kXZXvF_oH4ov7*|QwlLd`@8h$eDeHdtMaX$R z$58o+^iEou=5N8)Y8D$?@gqo(7$#rjiTI{Lqs*&i{L6TI2hHE!YjTNY*gnuYHU})!67Wo%Wi=?`zYxo7;H3%#?>sY|9>U3kR%VmhX-a zYvRa*&#a$pE{`voBFS=3(O-;gWxAJoZhV(wD!hHJqWzP-(sogY*a#Ua)YQOlRJ9Gf zQM&Jtkpx!93XtxSf9c9Jv)iXYaA?PVqH|P<+4s^qP9a$6>{ynGqo)?Npc1+u{b%sd zaK$6+Zhq1Ak&zfx0xM=`>XkE)&NGf@fX4M_9XkJyn_`LoReShWkCIwGk^N;7kTvX; zwZZ%Bnwl_|qOa!v;Rj?7L^bEnpH6$yQ^$zfbfd_!e;ka8ZF=i>$FhJI^R$p5G8S`A z>e}WWr@E~}9OjFkMjcrt3T;~l*KdqGn87bFKT^lWm@)nvao|ig$>T~H7G-xlWNeN9RL(%KK0zFlnUwRNvUrbsQWx-{G&f%8bg_eJ3V5X##ed+sfHjEyR!6#H)&o(t2e%z=J2K z-&(kbAS)G7C>>@?W_4Vf7fRz z5^<%5C&#i&VoZ65#@6}}_qU);!tj9@gE31*XHrGAHS4-)r*8Z)jNs`hVNI@O+|(25 zD>ur>mq6;MnyOT-QEQneeA#YF0lyVek+yT=XmkWc*2+bUzI=`ZD0;9i0!LSe4iBLohM08dFks-+g#>q325h2&% zy#G$89r>V=fKyfd-V?27uq!I6tF5R~#P#mw`z>@6DDCVCaYZTB)vlsfRkDLGkFm+- zns5Kor_SL_UF$gV4GP-^{i3qOHdb>eZk<<5r&B%U}*&A_KJ)Nn@*@5#FdBI6?Qz$JjqndL4D7gpFb&BFgD%M zsl`o7GtYIe?+Ts?)UY#01DYEF7b#psG;iuP*gp%oT0E z?kqk%qv9wGGKdGgg%AOG^V~j->qSl@v=OFO(8o)`i6Qmm~}1v4{@l> z-`i(8&olYDTq$nY^W(-Zw5{MF7+cdr*M}x4#Z5#SxlQ_azu7n>nyi=`lZ*SyVANu6G6vYVI6I}wZA|e8o>ii?ce(9&M@0_})xshN5em~Ti$o!_p=nf6vV|pg zIPJU1@~)E>advtFm%O*#YP6Lzfg1o8oLd-9!cc!4gVj%8Fg$N|$1+FqtJU{St@i0g z_vt7VPJ_}a!AJd~1S`CoSun31a&dYhgT1UT6=j%ke_mWva z1Eoa1s&oVKL4_s!$@Uq-Iu2wMFm@!Z%Eigrj zGXn-R&RKzLS&&yt2pmUE(;CQ(pC3A;(f7%M6|aR~TduLnS@gb35W0J?VJWpnVLfSh z1Y&N8!v_V-^IHQI)yQ!1>dV_U^P6MTdd~I)iD)fxlpqga7-1?yF1 zGsc0q+G|i==;Zg+O1b+zv5{WwV#vl$IYMfoXD6Lwa__18uW-5qyor276JuJu7?Ww(wA;*JcvVkXIykKue_wwd3(s!8n`%c$i8Agx(iqUQ66U3>@FYs z1K`(}WIu-idY>@2N1S#}^Fz{^3gY~+h0YiDVdrO&0{hMz2<>Bj;-(1EQABB}B+%tR z@pB82p%M`r07a(nR1_XpYx_ALg}NTWER*E zKq@&UMI;^@tMLIInW|hf3c{JRF!(ypWS_%I4hF6#eg3kKL(^~E+3h*(zPdQlFx6|6 z{{kGN(M~Q3^Cr2wVOYqKYG($2LK_DjYXN2t_vl^=GK78K4mZ>sg25q&BMen(GfJ?o z+fMC(<3X%iO+J|LYKo4qvI;bI62H+-TkeM3z|zZ0pW@}b?^;XC%HHl{YA=7wJ*}fj zlGaHw<$iso)sOh@OU=p}BHPpPXgr}?PqHBse3zoA(!flA5;KG#^x)Kn1NP{AsfS5J z*kX+Br)8+M!@BRQY$$Q#pi-7r2qZ(`(j_>{u|s}(x82r=M{nY4<(Cznj9j#O8o01%i)(dzbmnKDA<0OF{uvAdQ25ZJEt>jsl)f&mW_Y# z+@tyGoVKue91@KZK&H2^x?(>B`;{e#&4MbkD6SUl-c#IGpALppEGYqw_meYRV=tb^ zYQ75j%B&>H&{d>AQf~&V_p?A9xk*{6JPuuu$w_&nc~`l@hoC^m#z|}s9*?i?fTb>! zJf41;C!9ui=MrT%873^0fs;X?zx#5DZHTk1)_t)e_tfY*C3RrveBElU4G?$FBt+$m z`ACgj7DE<>??mD%Pdqyl2Tm~MM8>%q8Ue=58{SBAK$hjbd~*bZZE|8BzQnT}i4>07 z?B{4|AWgY0AU_}Mb3k)`%~&kj%|%*!h{J=;_1Eck8VByuHJD}%44@IMoVV`OkU`)A(YLm4{YIN@2Wz!Co z1ayUEeM}+!lFpjy6RDxvuZCVpu5GPz$R`l4sxa9NGMk7;$V0t4lyg>MfkG+Z@X%F@ zbcREUqbmRb&q}JV&eR@I!<7OFk{+P6%Zdg6Fo8xyiKZdUow}D>j}A7MI4gV3B}*?D zYc+Z04>smveOhz-2zS52HUrcHmI>8VU3jZ1(UlN(^pfo%Ky__^3|47?kdBdnQ#JQ|{1-l1I%=R9(Cf&#Vzp@R%;}0i02kCQ{kfyKZAy z-BEQ`_@UzHAg&7Oy|vw%Y%vl`^~T>DS_VnGmY*ZQK6xenr4JfAFM< zmo%TG&BCn1t1f$s!4dbm%ELR2d2c|Pv&wCV*}RLooV34JLG^kZ9-<1K+Gdi~y9A5D z8uQP&Gzi#)Lked9dP#IHN$=F|L;aR=o8j4c*^NYR(7~>#VkkJZ?rax7y_aWDfJW|} zO!!27+-ayc?n2b48qa)~Ck9Qn6meF2iuR$vu=K(WE`FA!0`USQg{6Grs&rkavl$-e zbFm3=#KIm}Jd*-cv{qe|tS=Gb+yEaVcIZ|6M3Tp2Ur{F=LSx4C)#J z4!iR_R?O}Dcjw24z};S7O(woidICaK&7+8C;^(AL!HtoiMXufLA(O3aeJ$k7CS#`e z)b56yxRdABRSkK7kHcM24VnOaUxo&Ip)U&kFT#9ftQOmYB50$)?9owC%LPyI(#2Q& zH4K6H`i%$?`AJOS5_p>XxbL*}G6x!6#6vkppO|DnCqjgBION-LA24-+j-sLwI;zNa z$^D|M-vJ=d5oPl2+R-$tEu-sN=t4nPEBUMNeXk$}|J$*5)~zW${>w&Q6=;@%&Dui# z!=qZ+& zst0j&6lwGdawtmSyx8tpw{@^Vqa!u_nEFj@$CP5vScuCW*6#7Ol7E33CJa)_|aH-$RSX?hdf!%`8B#`ameD zmHCL3UQYcY#GC85W?|=&%&P64VQq?3dukseSXjV4GJ5w3nvBPOh6`zZZWYd+ha5UvR3%#mq+=g(MIY6PdcCln^3kUCP@CSr2(PtHSrIZ&|t=v8_c4qGC8-eRs=tBBGwQt zA5n~hz3 zI-!JFJ0wJBDbs+-oU)jlgA@5)Hb)+5n2nZ`T^Nerb1*EzsPOjuQIHQ9HzbZe#vAZh zjJd7?=J|U%&E~8_S{Fd}$wVoL7guh+fmqp5781>r?_|G?wf3TP*o*w8C)=_t+>dkkRw{VR!D6{TMY68Eak8Xx`BNT}uF?&;1_2dE>E|1uvrKmTbj@SM zc|1EhUQedFnkE!-Ts+u~8yhZJG_@UidMh$78`a~Aj^!9Caien5yJ1Gmor`ME=cD3ETwbQ3Z*a=mM5!w0W{F?v|Fv;yxSXT?YH+N1*ZkKB`%?@z}%|KA&lAD~- zjT~rlauIztuY06>%&#l$p>y4sbmoh&RDiHf?|{d+K7e;&g8X_!ezO_HP|RLWO9ayV zdlo4Zg0tH6?>w{6?PhaqnOYC)E84c6q-=Viw)?h0j6B9!o8eY^7t{#2mFD#_$TB5N zr}mw+{D1%$h=0$-yGeRJc>Zr>Odg^rnSJMse~>q*grhZQ)hOXHg9Y%r53sv|H^UK#5XHNtoH2#Y>h_(RHGDkhBx*?x7mmC z-(mQFsH#Hpg30#>I1$#aN7 zW3~pVjPbY;MZVEunwEf9zU3BuWjt^lvx1wBo1LGz5Ry||_jed9<+CXZffKM1EEbzg zYMHXyi*1NvI1*mI`x|U1fHb&H@h>%VNs!+SqCw8Z7yi>(m2_?4Zj_Hk>KVGb><=yo zpNikmYPr6M#cNBO#Ws<=K-q=UhH3S#fXjFmT)!Q#GI=Dib!UF>Zu_IyuGe(me6RR$ z`UIQu4<~E&2%W>h-B$bk-NxiMMEvCL-dr6$0(c!SM`Q`=II?{*jJQ6}ufgkePZYqh zQ{OOowW`T81vHTIF{>2-veYak)Iw83-8>PciE_|x2rEPG>=xd@Ep*L+3rj$ zpCU1%5h-OJ+Fm3rLd}LlhcWQzmw0yfIn1;z`IZ}@?R9<4;%W2}JQAG8XVzIx7^iU& zc1d3+;&5p6K_;f2l6m9huWEk;{6ujMTvxb(5&IKv$yUB(1|%k4VHo(ZN}Qa(pA5## zC4@`SO7CChbp5~tos=zrNm2_9H(U>muA@x?jdwY2v;NHy7P^yB|4{;mK<&!AIktM)>d!V|Ldsb5#00n_sj=}BMu9w+&u z{41ix)4u&5UrhWyaP?Pjr4IpG%agFJ&F59qm0t=wr-*=Tk8Ye;XQeRl!M9WpuB)D+ zySGq;ST+s{yM+oiTH7X6M)5+?eOL>rynPu6{U<-ks&|(koz)&t9uhS@rE5q2^%KuV z{^JzRtk{V4kU-$a~Q|~$4W_w03^w)Ro$(XfP?~u35QbIlB zS#_81Abf4N6t`N&XPsQrGlWb#OrwJ?MA-wo74b$#1o@rkuSr#q>DtR*Q2*5*>AZA0 zEj}=zaTK{1?E_+QQDgb_VG1zCn07F01W59^I)nzO@{0x4N=KbpVI*?&Z#@I#L}fh| zftypSo?WR5i}6SK1Fr6#{B?n0A3#G>0Vt`miZN=mfSM^x&>m##?61#Dmj81v(7)hp z{=d(O91M4>{Y(AyEV!TWBPzr8vdf8LR2iQR2h*V*;9(d@%6+H^=2Egq&SHQ#2M`YX zgunafGdjGSk&%zATo4SU(i!rKv0`mTI%jl{T@1t0n|kL9ZA>Zcq4g|+mPU}6>Z#NP1OVK%C1bmpu%aL+{A<> zFThSxkK5EWWowQiE~-y5*bWHO5=vma!1ulB_w;{9H!2JW_x^%Ox%g#qeRm$dP^1VY zaJ_ZaRLhUY6o=OETmBILgSVlMy=UoWqhDU?yJ31sD@o4O0_zgFF;4Tm;MTH(_i;iY18`qigiV*O(A^&6d?x;oUg>R!L$aEK^ zUAKV6Wh?#eth8;yo`8~DHn+=-OmR9%L`8KsZM-3Ssxd3p) zH6Rc-`YS7I((Q1${ED3oP8wt1*4!rD*|M&n)aIS^`;7#Z*gCL2qPX{(zk3B3an-JK zR+(23@HRw%LGjO17CX}(o_z*RmXzvpNZYw5nqMm!M|vk(S;RoT(xZUM`-;<R5r@;8mH!Mmiopi|4;g|ex3X#SYG6L zw7%GAirr1)BhtYUDs|@{V^!Z7_e&F35XawJ>x8v!SU>8pADsnU{j7w>Tj+H6X=h7g z+^R=zo_uvlCYvUE(GxpUlX7be{uIYyrTn70w5)*u&lB5{39iGX^xioz2Pn(WyaC=t zV{h@W8g~YzOE}o|uRqHPr^&DTRshCr&xqmJ>o}}G{p)@S)3*9?R}&<{rx(D&Oj7Z} ze|NB4o_gg;`daf2?wWm0DT7(2}YZ48uS|}4;G}G4xF<;%89{)ye`*_^~)g2&T zraFCeGLWV!+@s1`BL}fHjTXOx!EEk@_*M%})(MdWid!kK<49^o{oa;weeDN1QdUe04Ri6s{H}Hbq%%rIICSC+{oJ47(TcHl}QzYFkhyE;~N802OUO zbwSVS3BCZl^o-aznVg2KEtl$8=rw z^9Y=m+&$K?EvTQ_pjEWCmrN@uI+e1Dh%x9NWu`(uDC8qbdi-0;QQ- z#J;5ayrf(JOf;ir+RD>L`_e-P#a^5leKF{RAErSRc9WuwcdAT^C1EXLt&RuzCSx0 zF9ui=@6{#^VQOj`Aqj`{}$|m zrH0wCfO4{^#6qkyyp3KyHj3bi0G}`D67bK*{73LMy!c!EBd~fg;mXIBp^;i_9hv{o zjQ8bGbG`CplFnZH?o|+$?(7s{=?j47P}dAq00dKLjxS4Ln8)ELnUUcWCGveLiN{2^ z%sCy*bMQQ!t;+00%s6g_8)#W$NC~z>(OzmyQ}Ld`lQx_92t)g>3Qnj?bLCx*ztUw% zuTjk23CnyApoY;O&(l#1Z++tn0IsSrBUZdn+2BH9^J!HSMVLDZs6B0ct z^-b85mU@8}-&GizTXETQQ&3$jv6EtTiVn82QD1`%57va$CiO-r_yFK#Ob)epJZb#| zRJ;d_u<#`7YNCNVsOpwR-Mey~CFsf^V=XIvw#NRviS0&%Tt2XDy-GcznQMg&RqQwo^ei>HWqe`-+yKv7 zBRzruW{Z-7VXuA_MxzjchGAYi%rMl62egWO4LW)M?k;G4g({e0opkOR&_7e~&l67{ zXGXv*1f5che&iz%hx>)WwI_L5IYUc2)cZHg%^_K9;sPQZnp0bX0IxE3oI~fuW$7Pa zA?@2fc&DIOo8>X%J;9UsOKv`GZW9_yIoHtdf07flS~A2T&nDE07WgOVA^VfLL|sW{ z@#`<3Tr@`J>F=7_TD)43EZ7Yac|5+N4HvlQeFldk9e#Df;E@Eo35WM{vM%+VLqB3c zyn)Z6ESN*BBG*9zKXoXW>l!D?;Vkd)LUVpJ`ED>juBZKglq*6;5Iy{Ou0gvmv?x1A zD5byKlRdT{kmp{S`r~#$hxWE@Z)f1#W(oCl`&^9YaW2&cZ(jQE9*rb_Jvbk!=dt6CmP2rfh(?8TC!-HhArvqW02-#`yZ!#`M=W*$6o@o$sySrq^P literal 0 HcmV?d00001 diff --git a/nuget/BuildNuGet.bat b/nuget/BuildNuGet.bat index 40d2290..98e1942 100644 --- a/nuget/BuildNuGet.bat +++ b/nuget/BuildNuGet.bat @@ -1,7 +1,7 @@ @ECHO OFF CLS -..\src\.nuget\nuget Pack iEEDID.1.0.3.nuspec -NoDefaultExcludes -NoPackageAnalysis -OutputDirectory ..\deployment\nuget +..\src\.nuget\nuget Pack iEEDID.1.0.4.nuspec -NoDefaultExcludes -NoPackageAnalysis -OutputDirectory ..\deployment\nuget pause diff --git a/nuget/iEEDID.1.0.3.nuspec b/nuget/iEEDID.1.0.4.nuspec similarity index 97% rename from nuget/iEEDID.1.0.3.nuspec rename to nuget/iEEDID.1.0.4.nuspec index bff20a3..a18faa8 100644 --- a/nuget/iEEDID.1.0.3.nuspec +++ b/nuget/iEEDID.1.0.4.nuspec @@ -2,7 +2,7 @@ iEEDID - 1.0.3 + 1.0.4 iEEDID iAJTin iAJTin diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID.cs index d8a2823..78be976 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID.cs @@ -9,7 +9,7 @@ namespace iTin.Core.Hardware.Specification using Eedid; ///

- /// Implementation of the E-EDID (Extended Display Identification Data) specification. + /// Implementation of the E-EDID (Extended Display Identification Data) specification. /// public sealed class EEDID { @@ -32,7 +32,7 @@ public sealed class EEDID /// /// Data /// - /// Returns the E-EDID information available. + /// Returns the E-EDID information available. /// private EEDID(IEnumerable rawData) { @@ -50,7 +50,7 @@ private EEDID(IEnumerable rawData) ///// ///// Propiedad que representa la clave de registro del monitor. ///// - ///// Obtiene la informaciΓ³n E-EDID disponible. + ///// Obtiene la informaciΓ³n E-EDID disponible. ///// //public EEDID(Monitor monitor) : this(((TypedMonitorDeviceInfo)monitor.GetTypedDeviceData()).GetNativeDeviceData()) //{ @@ -63,7 +63,7 @@ private EEDID(IEnumerable rawData) ///// ///// Propiedad que representa la clave de registro del monitor. ///// - ///// Obtiene la informaciΓ³n E-EDID disponible. + ///// Obtiene la informaciΓ³n E-EDID disponible. ///// //internal EEDID(MonitorDeviceInfo monitorNativeData) : this(NativeDeviceManagement.GetEdidRawDataFromMonitor(monitorNativeData)) //{ @@ -95,7 +95,7 @@ private EEDID(IEnumerable rawData) /// /// /// Object that contains the object collection for this . - /// If there is no object , null is returned. + /// If there is no object , null is returned. /// public DataBlockCollection Blocks { @@ -119,7 +119,7 @@ public DataBlockCollection Blocks /// Gets a value that indicates if there are available blocks. /// /// - /// true if there are blocks; otherwise, it is false. + /// true if there are blocks; otherwise, it is false. /// public bool HasBlocks { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/CeaBlock.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/CeaBlock.cs index 7e03d04..eb355eb 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/CeaBlock.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/CeaBlock.cs @@ -25,9 +25,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | Β· Checksum | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// Specialization of the class representing the block of the specification . + /// Specialization of the class.
+ /// Representing the block of the specification . ///
internal class CeaBlock : BaseDataBlock { @@ -36,11 +36,11 @@ internal class CeaBlock : BaseDataBlock #region [public] CeaBlock(ReadOnlyCollection): Initialize a new instance of the class with the data in this section untreated /// /// - /// Initialize a new instance of the class with the data in this section untreated. + /// Initialize a new instance of the class with the data in this section untreated. /// /// Raw data of this block. /// - /// Create a block (block 0) which belongs to the specification. + /// Create a block (block 0) which belongs to the specification. /// public CeaBlock(ReadOnlyCollection dataBlock) : base(dataBlock) { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/CeaSectionsInformation.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/CeaSectionsInformation.cs index 8a6d591..95e5888 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/CeaSectionsInformation.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/CeaSectionsInformation.cs @@ -6,7 +6,7 @@ namespace iTin.Core.Hardware.Specification.Eedid using System.Diagnostics; /// - /// Representa al conjunto de secciones disponibles para la informaciΓ³n de la especificaciΓ³n . + /// Represents the set of sections available for the information of the specification. /// internal sealed class CeaSectionsInformation { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ChecksumCeaSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ChecksumCeaSection.cs index 8937fa6..e382cfd 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ChecksumCeaSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ChecksumCeaSection.cs @@ -11,9 +11,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | 00h CheckSum BYTE Note: Please see, Status | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// EspecializaciΓ³n de la clase que representa la secciΓ³n de este bloque . + /// Specialization of the class.
+ /// Represents the section of this block . ///
internal sealed class CheckSumCeaSection : BaseDataSection { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/DataBlockCollectionCeaSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/DataBlockCollectionCeaSection.cs index c3450c3..c798c3a 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/DataBlockCollectionCeaSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/DataBlockCollectionCeaSection.cs @@ -2,20 +2,18 @@ namespace iTin.Core.Hardware.Specification.Eedid { using System; - using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; - using System.Diagnostics.CodeAnalysis; using System.Linq; // CEA Section: Data Block Collection Information // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ // | Offset Name Lenght Description | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - - /// + /// - /// EspecializaciΓ³n de la clase que representa la secciΓ³n de este bloque . + /// Specialization of the class.
+ /// Represents the section of this block . ///
internal sealed class DataBlockCollectionCeaSection : BaseDataSection { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/DetailedTimmingsCeaSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/DetailedTimmingsCeaSection.cs index d5e1479..dd26625 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/DetailedTimmingsCeaSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/DetailedTimmingsCeaSection.cs @@ -11,9 +11,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | Offset Name Lenght Description | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// EspecializaciΓ³n de la clase que representa la secciΓ³n de este bloque . + /// Specialization of the class.
+ /// Represents the section of this block . ///
internal sealed class DetailedTimingsCeaSection : BaseDataSection { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/Helpers/CeaDataBlock.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/Helpers/CeaDataBlock.cs index 5ca7420..2d109cb 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/Helpers/CeaDataBlock.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/Helpers/CeaDataBlock.cs @@ -12,7 +12,7 @@ namespace iTin.Core.Hardware.Specification.Eedid β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ */ /// - /// Estructura que contiene la informaciΓ³n sin procesar de los bloques de tipo AllcationDataBlock. + /// A structure that contains the raw information of the blocks of type AllcationDataBlock. /// internal struct CeaDataBlock { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/Helpers/KnownExtendedTag.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/Helpers/KnownExtendedTag.cs index 121b18a..a2c12d7 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/Helpers/KnownExtendedTag.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/Helpers/KnownExtendedTag.cs @@ -17,32 +17,32 @@ namespace iTin.Core.Hardware.Specification.Eedid β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ */ /// - /// Tipo de extensiΓ³n de un Data Block de la extensiΓ³n CEA + /// Type of extension of a Data Block of the CEA extension. /// internal enum KnownExtendedTag { /// - /// + /// Video Capability /// VideoCapability = 0x00, /// - /// + /// Vendor Specific Video /// VendorSpecificVideo = 0x01, /// - /// + /// Colorimetry /// Colorimetry = 0x05, /// - /// + /// Miscellaneous Audio Fields /// MiscellaneousAudioFields = 0x10, /// - /// + /// Vendor Specific Audio /// VendorSpecificAudio = 0x11, } diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/Helpers/KnownShortDataBlockTag.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/Helpers/KnownShortDataBlockTag.cs index 3ace694..f5a4cf3 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/Helpers/KnownShortDataBlockTag.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/Helpers/KnownShortDataBlockTag.cs @@ -2,12 +2,12 @@ namespace iTin.Core.Hardware.Specification.Eedid { /// - /// Tipo de bloques de la extensiΓ³n CEA + /// CEA Extension Block Type. /// internal enum KnownShortDataBlockTag { /// - /// + /// Reserved /// Reserved = 0x00, diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/InformationCeaSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/InformationCeaSection.cs index eb95664..dfae54d 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/InformationCeaSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/InformationCeaSection.cs @@ -15,9 +15,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | Note: Please see, Implemented | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// EspecializaciΓ³n de la clase que representa la secciΓ³n de este bloque . + /// Specialization of the class.
+ /// Represents the section of this block . ///
internal sealed class InformationCeaSection : BaseDataSection { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/MonitorSupportCeaSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/MonitorSupportCeaSection.cs index f35ac20..573dfc1 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/MonitorSupportCeaSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/MonitorSupportCeaSection.cs @@ -20,9 +20,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | included | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// EspecializaciΓ³n de la clase que representa la secciΓ³n de este bloque . + /// Specialization of the class.
+ /// Represents the section of this block . ///
internal sealed class MonitorSupportCeaSection : BaseDataSection { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/AudioDataBlock.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/AudioDataBlock.cs index 03b387e..7465316 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/AudioDataBlock.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/AudioDataBlock.cs @@ -8,7 +8,7 @@ namespace iTin.Core.Hardware.Specification.Eedid using Helpers.Enumerations; /// - /// Estructura que contiene la lΓ³gica para decodificar los datos de un bloque del tipo . + /// Structure that contains the logic to decode the data of a block of type . /// internal struct AudioDataBlock { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/ColorimetryDataBlock.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/ColorimetryDataBlock.cs index ec7278c..9a895c2 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/ColorimetryDataBlock.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/ColorimetryDataBlock.cs @@ -6,7 +6,7 @@ namespace iTin.Core.Hardware.Specification.Eedid using Helpers.Enumerations; /// - /// Estructura que contiene la lΓ³gica para decodificar los datos de un bloque del tipo . + /// Structure that contains the logic to decode the data of a block of type . /// internal struct ColorimetryDataBlock { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/KnownAudioFormatCode.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/KnownAudioFormatCode.cs index c64c178..b41da5c 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/KnownAudioFormatCode.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/KnownAudioFormatCode.cs @@ -21,7 +21,7 @@ namespace iTin.Core.Hardware.Specification.Eedid β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ */ /// - /// CΓ³digos de formatos de audio disponibles para el tipo . + /// Audio format codes available for type . /// internal enum KnownAudioFormatCode { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/ReservedDataBlock.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/ReservedDataBlock.cs index 7389a48..106e1ea 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/ReservedDataBlock.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/ReservedDataBlock.cs @@ -4,7 +4,7 @@ namespace iTin.Core.Hardware.Specification.Eedid using System.Collections.ObjectModel; /// - /// Estructura que contiene la lΓ³gica para decodificar los datos de un bloque del tipo . + /// Structure that contains the logic to decode the data of a block of type . /// internal struct ReservedDataBlock { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/SpeakerDataBlock.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/SpeakerDataBlock.cs index efd119c..b2b485c 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/SpeakerDataBlock.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/SpeakerDataBlock.cs @@ -6,7 +6,7 @@ namespace iTin.Core.Hardware.Specification.Eedid using Helpers.Enumerations; /// - /// Estructura que contiene la lΓ³gica para decodificar los datos de un bloque del tipo . + /// Structure that contains the logic to decode the data of a block of type . /// internal struct SpeakerDataBlock { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/VideoCapabilityDataBlock.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/VideoCapabilityDataBlock.cs index 1f3fecc..e304af5 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/VideoCapabilityDataBlock.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/VideoCapabilityDataBlock.cs @@ -6,7 +6,7 @@ namespace iTin.Core.Hardware.Specification.Eedid using Helpers.Enumerations; /// - /// Estructura que contiene la lΓ³gica para decodificar los datos de un bloque del tipo . + /// Structure that contains the logic to decode the data of a block of type . /// internal struct VideoCapabilityDataBlock { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/VideoDataBlock.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/VideoDataBlock.cs index d14eb18..e981bb8 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/VideoDataBlock.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/DataBlocks/VideoDataBlock.cs @@ -7,7 +7,7 @@ namespace iTin.Core.Hardware.Specification.Eedid using Helpers.Enumerations; /// - /// Estructura que contiene la lΓ³gica para decodificar los datos de un bloque del tipo . + /// Structure that contains the logic to decode the data of a block of type . /// internal struct VideoDataBlock { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortAudioDescriptorCeaSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortAudioDescriptorCeaSection.cs index ee3dd01..13c10cd 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortAudioDescriptorCeaSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortAudioDescriptorCeaSection.cs @@ -7,9 +7,9 @@ namespace iTin.Core.Hardware.Specification.Eedid using System.Collections.ObjectModel; using System.Diagnostics.CodeAnalysis; - /// /// - /// EspecializaciΓ³n de la clase que representa la secciΓ³n Short Audio Descriptor del bloque Data Block Collection. + /// Specialization of the class.
+ /// Represents the Short Audio Descriptor section of the Data Block Collection block. ///
sealed class ShortAudioDescriptorCeaSection : BaseDataSection { @@ -18,7 +18,7 @@ sealed class ShortAudioDescriptorCeaSection : BaseDataSection #region [public] ShortAudioDescriptorCeaSection(ReadOnlyCollection): Inicializa una nueva instancia de la clase. /// /// - /// Inicializa una nueva instancia de la clase . + /// Inicializa una nueva instancia de la clase . /// /// Datos de esta secciΓ³n. public ShortAudioDescriptorCeaSection(ReadOnlyCollection sectionData) : base(sectionData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortExtendedTagDescriptorCeaSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortExtendedTagDescriptorCeaSection.cs index 88fbe14..4ef8a4e 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortExtendedTagDescriptorCeaSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortExtendedTagDescriptorCeaSection.cs @@ -3,9 +3,9 @@ namespace iTin.Core.Hardware.Specification.Eedid { using System.Collections.ObjectModel; - /// /// - /// EspecializaciΓ³n de la clase que representa la secciΓ³n Short Audio Descriptor del bloque Data Block Collection. + /// Specialization of the class.
+ /// Represents the Short Audio Descriptor section of the Data Block Collection block. ///
internal sealed class ShortExtendedTagDescriptorCeaSection : BaseDataSection { @@ -14,7 +14,7 @@ internal sealed class ShortExtendedTagDescriptorCeaSection : BaseDataSection #region [public] ShortExtendedTagDescriptorCeaSection(ReadOnlyCollection): Inicializa una nueva instancia de la clase. /// /// - /// Inicializa una nueva instancia de la clase . + /// Inicializa una nueva instancia de la clase . /// /// Datos de esta secciΓ³n. public ShortExtendedTagDescriptorCeaSection(ReadOnlyCollection sectionData) : base(sectionData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortReservedDescriptorCeaSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortReservedDescriptorCeaSection.cs index 80c810c..0951a2b 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortReservedDescriptorCeaSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortReservedDescriptorCeaSection.cs @@ -3,9 +3,9 @@ namespace iTin.Core.Hardware.Specification.Eedid { using System.Collections.ObjectModel; - /// /// - /// EspecializaciΓ³n de la clase que representa la secciΓ³n Short Reserved Descriptor del bloque Data Block Collection. + /// Specialization of the class.
+ /// Represents the Short Reserved Descriptor section of the Data Block Collection block. ///
internal sealed class ShortReservedDescriptorCeaSection : BaseDataSection { @@ -14,7 +14,7 @@ internal sealed class ShortReservedDescriptorCeaSection : BaseDataSection #region [public] ShortReservedDescriptorCeaSection(ReadOnlyCollection): Inicializa una nueva instancia de la clase. /// /// - /// Inicializa una nueva instancia de la clase . + /// Inicializa una nueva instancia de la clase . /// /// Datos de esta secciΓ³n. public ShortReservedDescriptorCeaSection(ReadOnlyCollection sectionData) : base(sectionData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortSpeakerDescriptorCeaSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortSpeakerDescriptorCeaSection.cs index 3a5ebf4..3da95d8 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortSpeakerDescriptorCeaSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortSpeakerDescriptorCeaSection.cs @@ -26,9 +26,9 @@ namespace iTin.Core.Hardware.Specification.Eedid β€’β€”β€”β€”β€”β€’ β€’β€”β€”β€”β€”β€”β€’ β€’β€”β€”β€”β€”β€’ β€’β€”β€”β€”β€”β€”β€’ β€’β€”β€”β€”β€”β€’ */ - /// /// - /// EspecializaciΓ³n de la clase que representa la secciΓ³n Short Speaker Descriptor del bloque Data Block Collection. + /// Specialization of the class.
+ /// Represents the Short Speaker Descriptor section of the Data Block Collection block. ///
internal sealed class ShortSpeakerDescriptorCeaSection : BaseDataSection { @@ -37,7 +37,7 @@ internal sealed class ShortSpeakerDescriptorCeaSection : BaseDataSection #region [public] ShortSpeakerDescriptorCeaSection(ReadOnlyCollection): Inicializa una nueva instancia de la clase. /// /// - /// Inicializa una nueva instancia de la clase . + /// Inicializa una nueva instancia de la clase . /// /// Datos de esta secciΓ³n. public ShortSpeakerDescriptorCeaSection(ReadOnlyCollection sectionData) : base(sectionData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortVendorDescriptorCeaSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortVendorDescriptorCeaSection.cs index 96d9bcc..c786cb4 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortVendorDescriptorCeaSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortVendorDescriptorCeaSection.cs @@ -3,9 +3,9 @@ namespace iTin.Core.Hardware.Specification.Eedid { using System.Collections.ObjectModel; - /// /// - /// EspecializaciΓ³n de la clase que representa la secciΓ³n Short Vendor Descriptor del bloque Data Block Collection. + /// Specialization of the class.
+ /// Represents the Short Vendor Descriptor section of the Data Block Collection block. ///
internal sealed class ShortVendorDescriptorCeaSection : BaseDataSection { @@ -14,7 +14,7 @@ internal sealed class ShortVendorDescriptorCeaSection : BaseDataSection #region [public] ShortVendorDescriptorCeaSection(ReadOnlyCollection): Inicializa una nueva instancia de la clase. /// /// - /// Inicializa una nueva instancia de la clase . + /// Inicializa una nueva instancia de la clase . /// /// Datos de esta secciΓ³n. public ShortVendorDescriptorCeaSection(ReadOnlyCollection sectionData) : base(sectionData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortVideoDescriptorCeaSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortVideoDescriptorCeaSection.cs index 47063d2..c90b56c 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortVideoDescriptorCeaSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/CEA/Sections/ShortDescriptors/ShortVideoDescriptorCeaSection.cs @@ -3,9 +3,9 @@ namespace iTin.Core.Hardware.Specification.Eedid { using System.Collections.ObjectModel; - /// /// - /// EspecializaciΓ³n de la clase que representa la secciΓ³n Short Video Descriptor del bloque Data Block Collection. + /// Specialization of the class.
+ /// Represents the Short Video Descriptor section of the Data Block Collection block. ///
internal sealed class ShortVideoDescriptorCeaSection : BaseDataSection { @@ -14,7 +14,7 @@ internal sealed class ShortVideoDescriptorCeaSection : BaseDataSection #region [public] ShortVideoDescriptorCeaSection(ReadOnlyCollection): Inicializa una nueva instancia de la clase. /// /// - /// Inicializa una nueva instancia de la clase . + /// Inicializa una nueva instancia de la clase . /// /// Datos de esta secciΓ³n. public ShortVideoDescriptorCeaSection(ReadOnlyCollection sectionData) : base(sectionData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/EdidBlock.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/EdidBlock.cs index 7103dfb..bff8512 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/EdidBlock.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/EdidBlock.cs @@ -32,9 +32,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | Β· Checksum | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// Specialization of the class representing the block of the specification . + /// Specialization of the class.
+ /// Representing the block of the specification . ///
internal sealed class EdidBlock : BaseDataBlock { @@ -43,11 +43,11 @@ internal sealed class EdidBlock : BaseDataBlock #region [public] EdidBlock(ReadOnlyCollection): Initialize a new instance of the class with the data in this section untreated /// /// - /// Initialize a new instance of the class with the data in this section untreated. + /// Initialize a new instance of the class with the data in this section untreated. /// /// Raw data of this block. /// - /// Create a block (block 0) which belongs to the specification. + /// Create a block (block 0) which belongs to the specification. /// public EdidBlock(ReadOnlyCollection dataBlock) : base(dataBlock) { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/EdidPropertyEnum.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/EdidPropertyEnum.cs index cbae006..3753a0e 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/EdidPropertyEnum.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/EdidPropertyEnum.cs @@ -42,7 +42,7 @@ internal enum EdidVendorProperty IdProductCode, [PropertyDescription("")] - [PropertyType(typeof(uint?))] + [PropertyType(typeof(int?))] [PropertyName("Serial Number")] IdSerialNumber, @@ -122,32 +122,32 @@ internal enum EdidBasicDisplayProperty [PropertyName("Analog Composite Sync Signal Green Video Supported")] AnalogCompositeSyncSignalGreenVideoSupported, - [PropertyDescription("")] + [PropertyDescription("Analog Vertical Sync Supported")] [PropertyType(typeof(bool))] [PropertyName("Analog Vertical Sync Supported")] AnalogVerticalSyncSupported, - [PropertyDescription("")] + [PropertyDescription("Digital Color Bit Depth")] [PropertyType(typeof(string))] [PropertyName("Digital Color Bit Depth")] DigitalColorBitDepth, - [PropertyDescription("")] + [PropertyDescription("Digital Video Interface")] [PropertyType(typeof(string))] [PropertyName("Video Interface")] DigitalVideoInterface, - [PropertyDescription("")] + [PropertyDescription("Horizontal Screen Size")] [PropertyType(typeof(byte))] [PropertyName("Horizontal Screen Size")] HorizontalScreenSize, - [PropertyDescription("")] + [PropertyDescription("Vertical screen size")] [PropertyType(typeof(byte))] [PropertyName("Vertical Screen Size")] VerticalScreenSize, - [PropertyDescription("")] + [PropertyDescription("The display transfer characteristic")] [PropertyType(typeof(double?))] [PropertyName("Gamma")] Gamma, @@ -387,7 +387,7 @@ internal enum EdidCheckSumProperty internal enum EdidDataBlockDescriptor { /// - /// Descriptor Detailed Timing, for more information see . + /// Descriptor Detailed Timing, for more information see . /// [PropertyType(typeof(DetailedTimingModeDescriptor))] [PropertyName("Detailed Timing Mode")] @@ -395,7 +395,7 @@ internal enum EdidDataBlockDescriptor DetailedTimingMode = -1, /// - /// Descriptor Display Product Serial Number, for more information see . + /// Descriptor Display Product Serial Number, for more information see . /// [PropertyType(typeof(DisplayProductSerialNumberDescriptor))] [PropertyName("Display Product Serial Number")] @@ -403,7 +403,7 @@ internal enum EdidDataBlockDescriptor DisplayProductSerialNumber = 0xff, /// - /// Descriptor AlphaNumeric Data String, for more information see . + /// Descriptor AlphaNumeric Data String, for more information see . /// [PropertyType(typeof(AlphaNumericDataStringDescriptor))] [PropertyName("AlphaNumeric Data String")] @@ -411,7 +411,7 @@ internal enum EdidDataBlockDescriptor AlphaNumericDataString = 0xfe, /// - /// Descriptor Display Range Limits, for more information see . + /// Descriptor Display Range Limits, for more information see . /// [PropertyType(typeof(DisplayRangeLimitsDescriptor))] [PropertyName("Display Range Limits")] @@ -419,7 +419,7 @@ internal enum EdidDataBlockDescriptor DisplayRangeLimits = 0xfd, /// - /// Descriptor Display Product Name, for more information see . + /// Descriptor Display Product Name, for more information see . /// [PropertyType(typeof(DisplayProductNameDescriptor))] [PropertyName("Display Product Name")] @@ -427,7 +427,7 @@ internal enum EdidDataBlockDescriptor DisplayProductName = 0xfc, /// - /// Descriptor Color Point Data, for more information see . + /// Descriptor Color Point Data, for more information see . /// [PropertyType(typeof(ColorPointDataDescriptor))] [PropertyName("Color Point Data")] @@ -435,7 +435,7 @@ internal enum EdidDataBlockDescriptor ColorPointData = 0xfb, /// - /// Descriptor Standard Timing Identifier, for more information see . + /// Descriptor Standard Timing Identifier, for more information see . /// [PropertyType(typeof(StandardTimingIdentifierDescriptor))] [PropertyName("Standard Timing Identifier")] @@ -443,7 +443,7 @@ internal enum EdidDataBlockDescriptor StandardTimingIdentifier = 0xfa, /// - /// Descriptor Color Management Data, for more information see . + /// Descriptor Color Management Data, for more information see . /// [PropertyType(typeof(ColorManagementDataDescriptor))] [PropertyName("Color Management Data")] @@ -451,7 +451,7 @@ internal enum EdidDataBlockDescriptor ColorManagementData = 0xf9, /// - /// Descriptor CVT 3 Bytes Timing Codes, for more information see . + /// Descriptor CVT 3 Bytes Timing Codes, for more information see . /// [PropertyType(typeof(Cvt3ByteCodeDescriptor))] [PropertyName("CVT 3 Byte Code")] @@ -459,7 +459,7 @@ internal enum EdidDataBlockDescriptor Cvt3ByteCode = 0xf8, /// - /// Descriptor Established Timings III, for more information see . + /// Descriptor Established Timings III, for more information see . /// [PropertyType(typeof(EstablishedTimingsIIIDescriptor))] [PropertyName("Established Timings III")] @@ -467,7 +467,7 @@ internal enum EdidDataBlockDescriptor EstablishedTimingsIII = 0xf7, /// - /// Descriptor Dummy Data Descriptor, for more information see . + /// Descriptor Dummy Data Descriptor, for more information see . /// [PropertyType(typeof(DummyDataDescriptor))] [PropertyName("Dummy Data")] @@ -475,14 +475,14 @@ internal enum EdidDataBlockDescriptor DummyData = 0x10, /// - /// Descriptor Reserved, for more information see + /// Descriptor Reserved, for more information see /// [PropertyName("Reserved")] [PropertyDescription("Descriptor de tipo 'Reserved'")] Reserved = -2, /// - /// Descriptor Manufacturer Specified Data, for more information see . + /// Descriptor Manufacturer Specified Data, for more information see . /// [PropertyType(typeof(ManufacturerSpecifiedDataDescriptor))] [PropertyName("Manufacturer Specified Data")] diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/BasicDisplayEdidSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/BasicDisplayEdidSection.cs index 714923f..d4804e5 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/BasicDisplayEdidSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/BasicDisplayEdidSection.cs @@ -139,9 +139,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | Note: See IsContinuousFrequency | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// Specialization of the class that represents the section of this block . + /// Specialization of the class.
+ /// Represents the section of this block . ///
internal sealed class BasicDisplayEdidSection : BaseDataSection { @@ -150,7 +150,7 @@ internal sealed class BasicDisplayEdidSection : BaseDataSection #region [public] BasicDisplayEdidSection(ReadOnlyCollection): Initialize a new instance of the class with the data in this section untreated /// /// - /// Initialize a new instance of the class with the data in this section untreated. + /// Initialize a new instance of the class with the data in this section untreated. /// /// Unprocessed data in this section public BasicDisplayEdidSection(ReadOnlyCollection sectionData) : base(sectionData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/CheckSumEdidSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/CheckSumEdidSection.cs index 0bf9f35..b83ac25 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/CheckSumEdidSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/CheckSumEdidSection.cs @@ -11,9 +11,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | 00h CheckSum BYTE Note: Ver Status | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// Specialization of the class that represents the section of this block . + /// Specialization of the class.
+ /// Represents the section of this block . ///
internal sealed class CheckSumEdidSection : BaseDataSection { @@ -22,7 +22,7 @@ internal sealed class CheckSumEdidSection : BaseDataSection #region [public] CheckSumEdidSection(ReadOnlyCollection): Initialize a new instance of the class with the data in this section untreated /// /// - /// Initialize a new instance of the class with the data in this section untreated. + /// Initialize a new instance of the class with the data in this section untreated. /// /// Unprocessed data in this section public CheckSumEdidSection(ReadOnlyCollection sectionData) : base(sectionData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/ColorCharacteristicInfo.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/ColorCharacteristicInfo.cs index f271ff4..62d1ad8 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/ColorCharacteristicInfo.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/ColorCharacteristicInfo.cs @@ -32,9 +32,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | 09h White-y High Order Bits BYTE White-y: Bits 9 β†’ 2 | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// Specialization of the class that represents the section of this block . + /// Specialization of the class.
+ /// Represents the section of this block . ///
internal sealed class ColorCharacteristicDetail : BaseDataSection { @@ -43,7 +43,7 @@ internal sealed class ColorCharacteristicDetail : BaseDataSection #region [public] ColorCharacteristicDetail(ReadOnlyCollection, ColorManagementDataDescriptor.KnownColor): Initialize a new instance of the class with the data in this section untreated /// /// - /// Initialize a new instance of the class with the data in this section untreated. + /// Initialize a new instance of the class with the data in this section untreated. /// /// Color to get /// Unprocessed data in this section diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/ColorCharacteristicsEdidSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/ColorCharacteristicsEdidSection.cs index fbce558..320e186 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/ColorCharacteristicsEdidSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/ColorCharacteristicsEdidSection.cs @@ -19,9 +19,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | 03h White PointF Note: See Color(KnownColor) | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// Specialization of the class that represents the section of this block . + /// Specialization of the class.
+ /// Represents the section of this block . ///
internal sealed class ColorCharacteristicsEdidSection : BaseDataSection { @@ -35,7 +35,7 @@ internal sealed class ColorCharacteristicsEdidSection : BaseDataSection #region [public] ColorCharacteristicsEdidSection(ReadOnlyCollection): Initialize a new instance of the class with the data in this section untreated /// /// - /// Initialize a new instance of the class with the data in this section untreated. + /// Initialize a new instance of the class with the data in this section untreated. /// /// Unprocessed data in this section public ColorCharacteristicsEdidSection(ReadOnlyCollection sectionData) : base(sectionData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/DataBlocksEdidSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/DataBlocksEdidSection.cs index e64a1da..134928a 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/DataBlocksEdidSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/DataBlocksEdidSection.cs @@ -22,9 +22,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | Note: See Descriptor(KnownEdidDataBlockProperty) | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// Specialization of the class that represents the section of this block . + /// Specialization of the class.
+ /// Represents the section of this block . ///
internal sealed class DataBlocksEdidSection : BaseDataSection { @@ -33,7 +33,7 @@ internal sealed class DataBlocksEdidSection : BaseDataSection #region [public] DataBlocksEdidSection(ReadOnlyCollection): Initialize a new instance of the class with the data in this section untreated /// /// - /// Initialize a new instance of the class with the data in this section untreated. + /// Initialize a new instance of the class with the data in this section untreated. /// /// Unprocessed data in this section public DataBlocksEdidSection(ReadOnlyCollection sectionData) : base(sectionData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/AlphanumericDataStringDescriptor.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/AlphanumericDataStringDescriptor.cs index bb4c677..b5207d1 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/AlphanumericDataStringDescriptor.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/AlphanumericDataStringDescriptor.cs @@ -13,9 +13,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | Text string may be stored. | // •—————————————————————————————————————————————————————————————————————————————————————————————————• - /// /// - /// Specialization of the class that represents the section of type this block . + /// Specialization of the class.
+ /// Represents the section of type this block . ///
internal sealed class AlphaNumericDataStringDescriptor : BaseDataSection { @@ -24,7 +24,7 @@ internal sealed class AlphaNumericDataStringDescriptor : BaseDataSection #region [public] AlphaNumericDataStringDescriptor(ReadOnlyCollection): Initialize a new instance of the class with the data of this block untreated /// /// - /// Initialize a new instance of the class with the data of this block untreated. + /// Initialize a new instance of the class with the data of this block untreated. /// /// Unprocessed data in this block public AlphaNumericDataStringDescriptor(ReadOnlyCollection dataBlock) : base(dataBlock) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/CVT3ByteCodeDescriptor.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/CVT3ByteCodeDescriptor.cs index 4b7a467..393c59b 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/CVT3ByteCodeDescriptor.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/CVT3ByteCodeDescriptor.cs @@ -31,9 +31,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | #4 Priority | // •——————————————————————————————————————————————————————————————————————————————————————————————————• - /// /// - /// Specialization of the class that represents the section of type this block . + /// Specialization of the class.
+ /// Represents the section of type this block . ///
internal sealed class Cvt3ByteCodeDescriptor : BaseDataSection { @@ -79,7 +79,7 @@ private enum KnownCvt3ByteCodePriority #region [public] Cvt3ByteCodeDescriptor(ReadOnlyCollection): Initialize a new instance of the class with the data of this block untreated /// /// - /// Initialize a new instance of the class with the data of this block untreated. + /// Initialize a new instance of the class with the data of this block untreated. /// /// Unprocessed data in this block public Cvt3ByteCodeDescriptor(ReadOnlyCollection dataBlock) : base(dataBlock) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/ColorManagementDataDescriptor.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/ColorManagementDataDescriptor.cs index 378285f..53297a5 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/ColorManagementDataDescriptor.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/ColorManagementDataDescriptor.cs @@ -20,9 +20,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | 09h Blue QWORD Note: See Color(KnownColor) | // •—————————————————————————————————————————————————————————————————————————————————• - /// /// - /// Specialization of the class that represents the section of type this block . + /// Specialization of the class.
+ /// Represents the section of type this block . ///
internal sealed class ColorManagementDataDescriptor : BaseDataSection { @@ -68,7 +68,7 @@ public enum KnownColor #region [public] ColorManagementDataDescriptor(ReadOnlyCollection): Initialize a new instance of the class with the data of this block untreated /// /// - /// Initialize a new instance of the class with the data of this block untreated. + /// Initialize a new instance of the class with the data of this block untreated. /// /// Unprocessed data in this block public ColorManagementDataDescriptor(ReadOnlyCollection dataBlock) : base(dataBlock) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/ColorPointDataDescriptor.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/ColorPointDataDescriptor.cs index 1efed00..6efbcca 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/ColorPointDataDescriptor.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/ColorPointDataDescriptor.cs @@ -18,9 +18,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | Point 2 | // •———————————————————————————————————————————————————————————————————————————————————————————————• - /// /// - /// Specialization of the class that represents the section of type this block . + /// Specialization of the class.
+ /// Represents the section of type this block . ///
internal sealed class ColorPointDataDescriptor : BaseDataSection { @@ -56,7 +56,7 @@ enum KnownColorPoint #region [public] ColorPointDataDescriptor(ReadOnlyCollection): Initialize a new instance of the class with the data of this block untreated /// /// - /// Initialize a new instance of the class with the data of this block untreated. + /// Initialize a new instance of the class with the data of this block untreated. /// /// Unprocessed data in this block public ColorPointDataDescriptor(ReadOnlyCollection dataBlock) : base(dataBlock) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DetailedTimingModeDescriptor.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DetailedTimingModeDescriptor.cs index 50b6fb5..08143f4 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DetailedTimingModeDescriptor.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DetailedTimingModeDescriptor.cs @@ -124,11 +124,10 @@ namespace iTin.Core.Hardware.Specification.Eedid // | 1 _ _ 1 ------ Horizontal sync is positive (outside of V-sync) | // •————————————————————————————————————————————————————————————————————————————————————————————————————————————————————• - /// /// - /// Specialization of the class that represents the section of type this block . + /// Specialization of the class.
+ /// Represents the section of type this block . ///
- sealed class DetailedTimingModeDescriptor : BaseDataSection { #region private enumerations @@ -176,7 +175,7 @@ private enum KnownSyncSignalType #region [public] DetailedTimingModeDescriptor(ReadOnlyCollection): Initialize a new instance of the class with the data of this block untreated /// /// - /// Initialize a new instance of the class with the data of this block untreated. + /// Initialize a new instance of the class with the data of this block untreated. /// /// Unprocessed data in this block public DetailedTimingModeDescriptor(ReadOnlyCollection dataBlock) : base(dataBlock) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DisplayProductNameDescriptor.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DisplayProductNameDescriptor.cs index f8ff62d..74d553e 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DisplayProductNameDescriptor.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DisplayProductNameDescriptor.cs @@ -13,9 +13,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | Text string may be stored. | // •—————————————————————————————————————————————————————————————————————————————————————————————————• - /// /// - /// Specialization of the class that represents the section of type this block . + /// Specialization of the class.
+ /// Represents the section of type this block . ///
internal sealed class DisplayProductNameDescriptor : BaseDataSection { @@ -24,7 +24,7 @@ internal sealed class DisplayProductNameDescriptor : BaseDataSection #region [public] DisplayProductNameDescriptor(ReadOnlyCollection): Initialize a new instance of the class with the data of this block untreated /// /// - /// Initialize a new instance of the class with the data of this block untreated. + /// Initialize a new instance of the class with the data of this block untreated. /// /// Unprocessed data in this block public DisplayProductNameDescriptor(ReadOnlyCollection dataBlock) : base(dataBlock) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DisplayProductSerialNumberDescriptor.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DisplayProductSerialNumberDescriptor.cs index ec853f7..6d7838e 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DisplayProductSerialNumberDescriptor.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DisplayProductSerialNumberDescriptor.cs @@ -13,9 +13,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | Text number may be stored. | // •—————————————————————————————————————————————————————————————————————————————————————————————————• - /// /// - /// Specialization of the class that represents the section of type this block . + /// Specialization of the class.
+ /// Represents the section of type this block . ///
internal sealed class DisplayProductSerialNumberDescriptor : BaseDataSection { @@ -24,7 +24,7 @@ internal sealed class DisplayProductSerialNumberDescriptor : BaseDataSection #region [public] DisplayProductSerialNumberDescriptor(ReadOnlyCollection): Initialize a new instance of the class with the data of this block untreated /// /// - /// Initialize a new instance of the class with the data of this block untreated. + /// Initialize a new instance of the class with the data of this block untreated. /// /// Unprocessed data in this block public DisplayProductSerialNumberDescriptor(ReadOnlyCollection dataBlock) : base(dataBlock) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DisplayRangeLimitsDescriptor.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DisplayRangeLimitsDescriptor.cs index 22820c6..d4ae5c3 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DisplayRangeLimitsDescriptor.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DisplayRangeLimitsDescriptor.cs @@ -60,9 +60,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | Timing Data video Timing Data (00h -> ffh), If Byte 0ah = 02h or Byte 0ah = 04h. | // •—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————• - /// /// - /// Specialization of the class that represents the section of type this block . + /// Specialization of the class.
+ /// Represents the section of type this block . ///
internal sealed class DisplayRangeLimitsDescriptor : BaseDataSection { @@ -71,7 +71,7 @@ internal sealed class DisplayRangeLimitsDescriptor : BaseDataSection #region [public] DisplayRangeLimitsDescriptor(ReadOnlyCollection): Initialize a new instance of the class with the data of this block untreated /// /// - /// Initialize a new instance of the class with the data of this block untreated. + /// Initialize a new instance of the class with the data of this block untreated. /// /// Unprocessed data in this block public DisplayRangeLimitsDescriptor(ReadOnlyCollection dataBlock) : base(dataBlock) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DummyDataDescriptor.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DummyDataDescriptor.cs index 45a0c3d..8dbbb16 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DummyDataDescriptor.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/DummyDataDescriptor.cs @@ -12,9 +12,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | 00h -> 0ch Dummy Data 13 BYTEs All bytes filled with 00h | // •—————————————————————————————————————————————————————————————————————————————————————————————————• - /// /// - /// Specialization of the class that represents the section of type this block . + /// Specialization of the class.
+ /// Represents the section of type this block . ///
internal sealed class DummyDataDescriptor : BaseDataSection { @@ -23,7 +23,7 @@ internal sealed class DummyDataDescriptor : BaseDataSection #region [public] DummyDataDescriptor(ReadOnlyCollection): Initialize a new instance of the class with the data of this block untreated /// /// - /// Initialize a new instance of the class with the data of this block untreated. + /// Initialize a new instance of the class with the data of this block untreated. /// /// Unprocessed data in this block public DummyDataDescriptor(ReadOnlyCollection dataBlock) : base(dataBlock) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/EstablishedTimingsIIIDescriptor.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/EstablishedTimingsIIIDescriptor.cs index ac12ee1..9daad21 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/EstablishedTimingsIIIDescriptor.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/EstablishedTimingsIIIDescriptor.cs @@ -73,9 +73,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | 07h -> 0bh Future resolutions 5 BYTEs Shall be set to '00h' each byte. | // •—————————————————————————————————————————————————————————————————————————————————————————————• - /// /// - /// Specialization of the class that represents the section of type this block . + /// Specialization of the class.
+ /// Represents the section of type this block . ///
internal sealed class EstablishedTimingsIIIDescriptor : BaseDataSection { @@ -84,7 +84,7 @@ internal sealed class EstablishedTimingsIIIDescriptor : BaseDataSection #region [public] EstablishedTimingsIIIDescriptor(ReadOnlyCollection): Initialize a new instance of the class with the data of this block untreated /// /// - /// Initialize a new instance of the class with the data of this block untreated. + /// Initialize a new instance of the class with the data of this block untreated. /// /// Unprocessed data in this block public EstablishedTimingsIIIDescriptor(ReadOnlyCollection dataBlock) : base(dataBlock) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/Items/ColorManagementDataDescriptorItem.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/Items/ColorManagementDataDescriptorItem.cs index d07b426..f16572b 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/Items/ColorManagementDataDescriptorItem.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/Items/ColorManagementDataDescriptorItem.cs @@ -19,9 +19,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | 03h MSB Color a2 BYTE Value 00h -> ffh | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// Specialization of the class that represents the information of a of type . + /// Specialization of the class.
+ /// Represents the information of a of type . ///
internal sealed class ColorManagementDataDescriptorItem : BaseDataSection { diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/Items/ColorPointDataDescriptorItem.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/Items/ColorPointDataDescriptorItem.cs index 2cfc009..1f17395 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/Items/ColorPointDataDescriptorItem.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/Items/ColorPointDataDescriptorItem.cs @@ -50,9 +50,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | for example, DI-EXT | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// Specialization of the class that represents the information of a of type . + /// Specialization of the class.
+ /// Represents the information of a of type . ///
internal sealed class ColorPointDataDescriptorItem : BaseDataSection { @@ -61,7 +61,7 @@ internal sealed class ColorPointDataDescriptorItem : BaseDataSection #region [public] ColorPointDataDescriptorItem(ReadOnlyCollection): Initialize a new instance of the class with the data in this block untreated /// /// - /// Initialize a new instance of the class with the data in this block untreated. + /// Initialize a new instance of the class with the data in this block untreated. /// /// Unprocessed data in this block internal ColorPointDataDescriptorItem(ReadOnlyCollection blockData) : base(blockData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/Items/Cvt3ByteCodeDescriptorItem.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/Items/Cvt3ByteCodeDescriptorItem.cs index 4d8344c..db0f101 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/Items/Cvt3ByteCodeDescriptorItem.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/Items/Cvt3ByteCodeDescriptorItem.cs @@ -44,9 +44,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | supported | // •————————————————————————————————————————————————————————————————————————————————————————————————————————————————————• - /// /// - /// Specialization of the class that represents the information of a of type . + /// Specialization of the class.
+ /// Represents the information of a of type . ///
internal sealed class Cvt3ByteCodeDescriptorItem : BaseDataSection { @@ -55,7 +55,7 @@ internal sealed class Cvt3ByteCodeDescriptorItem : BaseDataSection #region [public] ColorManagementDataDescriptorItem(ReadOnlyCollection): Initialize a new instance of the class with the data in this block untreated /// /// - /// Initialize a new instance of the class with the data in this block untreated. + /// Initialize a new instance of the class with the data in this block untreated. /// /// Unprocessed data in this block public Cvt3ByteCodeDescriptorItem(ReadOnlyCollection blockData) : base(blockData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/Items/StandardTimingIdentifierDescriptorItem.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/Items/StandardTimingIdentifierDescriptorItem.cs index 5e616fa..0a39c93 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/Items/StandardTimingIdentifierDescriptorItem.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/Items/StandardTimingIdentifierDescriptorItem.cs @@ -29,7 +29,7 @@ namespace iTin.Core.Hardware.Specification.Eedid // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ /// - /// Represents an item of the . + /// Represents an item of the . /// public sealed class StandardTimingIdentifierDescriptorItem { @@ -42,7 +42,7 @@ public sealed class StandardTimingIdentifierDescriptorItem #region [internal] StandardTimingIdentifierDescriptorItem(IList): Initialize a new instance of the class with the data in this section untreated /// - /// Initialize a new instance of the class with the data in this section untreated. + /// Initialize a new instance of the class with the data in this section untreated. /// /// Unprocessed data in this section internal StandardTimingIdentifierDescriptorItem(IList sectionData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/ManufacturerSpecifiedDataDescriptor.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/ManufacturerSpecifiedDataDescriptor.cs index 606904f..f35018f 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/ManufacturerSpecifiedDataDescriptor.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/ManufacturerSpecifiedDataDescriptor.cs @@ -13,9 +13,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | Data bytes. | // •—————————————————————————————————————————————————————————————————————————————————————————————————• - /// /// - /// Specialization of the class that represents the section of type this block . + /// Specialization of the class.
+ /// Represents the section of type this block . ///
internal sealed class ManufacturerSpecifiedDataDescriptor : BaseDataSection { @@ -24,7 +24,7 @@ internal sealed class ManufacturerSpecifiedDataDescriptor : BaseDataSection #region [public] ManufacturerSpecifiedDataDescriptor(ReadOnlyCollection): Initialize a new instance of the class with the data of this block untreated /// /// - /// Initialize a new instance of the class with the data of this block untreated. + /// Initialize a new instance of the class with the data of this block untreated. /// /// Unprocessed data in this block public ManufacturerSpecifiedDataDescriptor(ReadOnlyCollection dataBlock) : base(dataBlock) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/StandardTimingIdentifierDescriptor.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/StandardTimingIdentifierDescriptor.cs index b99f2ee..e22551c 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/StandardTimingIdentifierDescriptor.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/Descriptors/StandardTimingIdentifierDescriptor.cs @@ -25,9 +25,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | 0ch Line Feed BYTE 0ah, all other values are reserved | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// Specialization of the class that represents the section of type this block . + /// Specialization of the class.
+ /// Represents the section of type this block . ///
internal class StandardTimingIdentifierDescriptor : BaseDataSection { @@ -83,7 +83,7 @@ enum KnownStandardTiming #region [public] StandardTimingIdentifierDescriptor(ReadOnlyCollection): Initialize a new instance of the class with the data of this block untreated /// /// - /// Initialize a new instance of the class with the data of this block untreated. + /// Initialize a new instance of the class with the data of this block untreated. /// /// Unprocessed data in this block public StandardTimingIdentifierDescriptor(ReadOnlyCollection dataBlock) : base(dataBlock) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/EstablishedTimingsEdidSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/EstablishedTimingsEdidSection.cs index 13e8d5e..4001b4c 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/EstablishedTimingsEdidSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/EstablishedTimingsEdidSection.cs @@ -37,9 +37,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | bits 06:00 - Reserved all set to 00h | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// Specialization of the class that represents the section of this block . + /// Specialization of the class.
+ /// Represents the section of this block . ///
internal sealed class EstablishedTimingsEdidSection : BaseDataSection { @@ -48,7 +48,7 @@ internal sealed class EstablishedTimingsEdidSection : BaseDataSection #region [public] EstablishedTimingsEdidSection(ReadOnlyCollection): Initialize a new instance of the class with the data in this section untreated /// /// - /// Initialize a new instance of the class with the data in this section untreated. + /// Initialize a new instance of the class with the data in this section untreated. /// /// Unprocessed data in this section public EstablishedTimingsEdidSection(ReadOnlyCollection sectionData) : base(sectionData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/ExtensionBlocksEdidSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/ExtensionBlocksEdidSection.cs index 789cc82..45fcee9 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/ExtensionBlocksEdidSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/ExtensionBlocksEdidSection.cs @@ -15,9 +15,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | Note: See HasBlocks | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// Specialization of the class that represents the section of this block . + /// Specialization of the class.
+ /// Represents the section of this block . ///
internal sealed class ExtensionBlocksEdidSection : BaseDataSection { @@ -26,7 +26,7 @@ internal sealed class ExtensionBlocksEdidSection : BaseDataSection #region [public] VendorEdidSection(ReadOnlyCollection): Initialize a new instance of the class with the data in this section untreated /// /// - /// Initialize a new instance of the class with the data in this section untreated. + /// Initialize a new instance of the class with the data in this section untreated. /// /// Unprocessed data in this section public ExtensionBlocksEdidSection(ReadOnlyCollection sectionData) : base(sectionData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/HeaderEdidSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/HeaderEdidSection.cs index 9bf8018..fea84f5 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/HeaderEdidSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/HeaderEdidSection.cs @@ -13,9 +13,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | Note: See Header | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// Specialization of the class that represents the section of this block . + /// Specialization of the class.
+ /// Represents the section of this block . ///
internal sealed class HeaderEdidSection : BaseDataSection { @@ -24,7 +24,7 @@ internal sealed class HeaderEdidSection : BaseDataSection #region [public] HeaderEdidSection(ReadOnlyCollection): Initialize a new instance of the class with the data in this section untreated /// /// - /// Initialize a new instance of the class with the data in this section untreated. + /// Initialize a new instance of the class with the data in this section untreated. /// /// Unprocessed data in this section public HeaderEdidSection(ReadOnlyCollection sectionData) : base(sectionData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/StandardTimingsEdidSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/StandardTimingsEdidSection.cs index a350284..56acecd 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/StandardTimingsEdidSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/StandardTimingsEdidSection.cs @@ -27,9 +27,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | 0eh Standard Timing 8 WORD Note: See Timing(KnownStandardTiming) | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// Specialization of the class that represents the section of this block . + /// Specialization of the class.
+ /// Represents the section of this block . ///
internal sealed class StandardTimingsEdidSection : BaseDataSection { @@ -95,7 +95,7 @@ enum KnownStandardTiming #region [public] StandardTimingsEdidSection(ReadOnlyCollection): Initialize a new instance of the class with the data in this section untreated /// /// - /// Initialize a new instance of the class with the data in this section untreated. + /// Initialize a new instance of the class with the data in this section untreated. /// /// Unprocessed data in this section public StandardTimingsEdidSection(ReadOnlyCollection sectionData) : base(sectionData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/VendorEdidSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/VendorEdidSection.cs index 397cfda..8297ee4 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/VendorEdidSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/VendorEdidSection.cs @@ -40,9 +40,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | or Model Year Note: See ManufactureDate | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// Specialization of the class that represents the section of this block . + /// Specialization of the class.
+ /// Represents the section of this block . ///
internal sealed class VendorEdidSection : BaseDataSection { @@ -51,7 +51,7 @@ internal sealed class VendorEdidSection : BaseDataSection #region [public] VendorEdidSection(ReadOnlyCollection): Initialize a new instance of the class with the data in this section untreated /// /// - /// Initialize a new instance of the class with the data in this section untreated. + /// Initialize a new instance of the class with the data in this section untreated. /// /// Unprocessed data in this section public VendorEdidSection(ReadOnlyCollection sectionData) : base(sectionData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/VersionEdidSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/VersionEdidSection.cs index 08203f7..956e60d 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/VersionEdidSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/Blocks/EDID/Sections/VersionEdidSection.cs @@ -15,9 +15,9 @@ namespace iTin.Core.Hardware.Specification.Eedid // | Note: See Revision | // β€’β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€’ - /// /// - /// Specialization of the class that represents the section of this block . + /// Specialization of the class.
+ /// Represents the section of this block . ///
internal sealed class VersionEdidSection : BaseDataSection { @@ -26,7 +26,7 @@ internal sealed class VersionEdidSection : BaseDataSection #region [public] VersionEdidSection(ReadOnlyCollection): Initialize a new instance of the class with the data in this section untreated /// /// - /// Initialize a new instance of the class with the data in this section untreated. + /// Initialize a new instance of the class with the data in this section untreated. /// /// Unprocessed data in this section public VersionEdidSection(ReadOnlyCollection sectionData) : base(sectionData) diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Collections/DataBlockCollection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Collections/DataBlockCollection.cs index 925caca..595c3f6 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Collections/DataBlockCollection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Collections/DataBlockCollection.cs @@ -38,7 +38,7 @@ public sealed class DataBlockCollection : IList /// Initializes a new instance of the class specifying the available blocks untreated and if they are read only. /// /// Available blocks untreated. - /// true if the collection should be read-only; false otherwise. + /// true if the collection should be read-only; false otherwise. internal DataBlockCollection(EEDID parent, bool readOnly) { _parent = parent; @@ -88,7 +88,7 @@ IEnumerator IEnumerable.GetEnumerator() /// /// El item a buscar. /// - /// Índice de base cero de la primera apariciΓ³n de item en la totalidad de , si se encuentra; en caso contrario, -1. + /// Índice de base cero de la primera apariciΓ³n de item en la totalidad de , si se encuentra; en caso contrario, -1. /// public int IndexOf(DataBlock item) => _blocks.IndexOf(item); #endregion @@ -194,7 +194,7 @@ public void Clear() /// /// Objeto que se va a buscar en la colecciΓ³n. /// - /// true si el objeto se encuentra en la colecciΓ³n; en caso contrario, false. + /// true si el objeto se encuentra en la colecciΓ³n; en caso contrario, false. /// public bool Contains(DataBlock item) => _blocks.Contains(item); #endregion @@ -243,7 +243,7 @@ public void CopyTo(DataBlock[] array, int arrayIndex) /// /// /// Tipo: - /// true si la colecciΓ³n es de sΓ³lo lectura; en caso contrario, es false. + /// true si la colecciΓ³n es de sΓ³lo lectura; en caso contrario, es false. /// public bool IsReadOnly => _readOnly; #endregion @@ -257,8 +257,8 @@ public void CopyTo(DataBlock[] array, int arrayIndex) /// /// Tipo: /// - /// true si item se ha quitado correctamente de la colecciΓ³n; en caso contrario, es false. - /// Este mΓ©todo tambiΓ©n devuelve false si no se encontrΓ³ item en la colecciΓ³n. + /// true si item se ha quitado correctamente de la colecciΓ³n; en caso contrario, es false. + /// Este mΓ©todo tambiΓ©n devuelve false si no se encontrΓ³ item en la colecciΓ³n. /// /// public bool Remove(DataBlock item) @@ -312,7 +312,7 @@ public IEnumerator GetEnumerator() /// Objeto especificado mediante su clave. /// /// - /// Si el elemento no existe se devuelve null. + /// Si el elemento no existe se devuelve null. /// /// public DataBlock this[KnownDataBlock valueKey] @@ -364,7 +364,7 @@ public DataBlock this[KnownDataBlock valueKey] /// /// Uno de los valores de que representa la clave del objeto a buscar. /// - /// true si el objeto con el valueKey se encuentra en la colecciΓ³n ; de lo contrario, es false. + /// true si el objeto con el valueKey se encuentra en la colecciΓ³n ; de lo contrario, es false. /// /// public bool Contains(KnownDataBlock valueKey) @@ -385,7 +385,7 @@ public bool Contains(KnownDataBlock valueKey) /// /// Uno de los valores de que representa la clave del objeto que se va a buscar en . /// - /// Índice de base cero de la primera apariciΓ³n de item en la totalidad de , si se encuentra; en caso contrario, -1. + /// Índice de base cero de la primera apariciΓ³n de item en la totalidad de , si se encuentra; en caso contrario, -1. /// /// public int IndexOf(KnownDataBlock valueKey) @@ -443,7 +443,7 @@ public int IndexOf(KnownDataBlock valueKey) /// /// Clave a comprobar. /// - /// true si el valor pertenece a la enumeraciΓ³n ; de lo contrario, es false. + /// true si el valor pertenece a la enumeraciΓ³n ; de lo contrario, es false. /// private static bool IsValidBlock(KnownDataBlock value) => SentinelHelper.IsEnumValid(value); #endregion diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/DataBlock.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/DataBlock.cs index ee7ab63..9c51912 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/DataBlock.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/DataBlock.cs @@ -41,7 +41,7 @@ internal DataBlock(KeyValuePair blockDictionaryEn /// Gets a value that indicates if there are available sections. /// /// - /// true if there are sections; otherwise, it is false. + /// true if there are sections; otherwise, it is false. /// public bool HasSections => SectionTable.Count > 0; #endregion @@ -74,7 +74,7 @@ internal DataBlock(KeyValuePair blockDictionaryEn /// /// /// Object that contains the object collection for this . - /// If there is no object, null is returned. + /// If there is no object, null is returned. /// [DebuggerBrowsable(DebuggerBrowsableState.Never)] public BaseDataSectionCollection Sections diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Enumerations/KnownEdidSection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Enumerations/KnownEdidSection.cs index 94217bd..577c140 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Enumerations/KnownEdidSection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Enumerations/KnownEdidSection.cs @@ -7,70 +7,70 @@ namespace iTin.Core.Hardware.Specification.Eedid public enum KnownEdidSection { /// - /// Header section of a block , for more information see . + /// Header section of a block , for more information see . /// [PropertyName("Header")] [PropertyDescription("Header Section")] Header, /// - /// Vendor and Product section of a block , for more information see . + /// Vendor and Product section of a block , for more information see . /// [PropertyName("Vendor")] [PropertyDescription("Vendor And Product Section")] Vendor, /// - /// Section Version and Revision of a block , for more information see . + /// Section Version and Revision of a block , for more information see . /// [PropertyName("Version")] [PropertyDescription("Version Section")] Version, /// - /// Section Basic Display Parameters and Features of a block , for more information see . + /// Section Basic Display Parameters and Features of a block , for more information see . /// [PropertyName("Basic Display")] [PropertyDescription(">Basic Display Parameters And Features Section")] BasicDisplay, /// - /// Color Characteristics section of a block , for more information see . + /// Color Characteristics section of a block , for more information see . /// [PropertyName("Color Characteristics")] [PropertyDescription("Color Characteristics Section")] ColorCharacteristics, /// - /// Established Timings I, II section of a block , for more information see . + /// Established Timings I, II section of a block , for more information see . /// [PropertyName("Established Timings")] [PropertyDescription("Established Timings I, II Section")] EstablishedTimings, /// - /// Section Standard Timings 16 Bytes of a block , for more information see . + /// Section Standard Timings 16 Bytes of a block , for more information see . /// [PropertyName("Standard Timings")] [PropertyDescription("Standard Timings 16 Bytes Section")] StandardTimings, /// - /// Section 18 Byte Data Blocks Descriptors of a block , for more information see . + /// Section 18 Byte Data Blocks Descriptors of a block , for more information see . /// [PropertyName("Data Blocks")] [PropertyDescription("18 Byte Data Blocks Descriptors Section")] DataBlocks, /// - /// Extension Block Count section of a block , for more information see . + /// Extension Block Count section of a block , for more information see . /// [PropertyName("Extension Blocks")] [PropertyDescription("Extension Block Count Section")] ExtensionBlocks, /// - /// CheckSum section of a block , for more information see . + /// CheckSum section of a block , for more information see . /// [PropertyName("CheckSum")] [PropertyDescription("CheckSum Section")] diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/MonitorResolutionInfo.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/MonitorResolutionInfo.cs index 4972328..a498162 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/MonitorResolutionInfo.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/MonitorResolutionInfo.cs @@ -40,7 +40,7 @@ internal MonitorResolutionInfo(int horizontalResolution, int verticalResolution, /// Horizontal resolution in pixels /// Vertical resolution in pixels. /// Vertical refresh rate in Hz - /// true if flicker is reduced; false otherwise + /// true if flicker is reduced; false otherwise internal MonitorResolutionInfo(int horizontalResolution, int verticalResolution, byte verticalRefresh, bool reduceBlanking) : this(horizontalResolution, verticalResolution, verticalRefresh, false,reduceBlanking) { } @@ -53,8 +53,8 @@ internal MonitorResolutionInfo(int horizontalResolution, int verticalResolution, /// Horizontal resolution in pixels /// Vertical resolution in pixels. /// Vertical refresh rate in Hz - /// true if it is interlaced; false otherwise - /// true if flicker is reduced; false otherwise + /// true if it is interlaced; false otherwise + /// true if flicker is reduced; false otherwise internal MonitorResolutionInfo(int horizontalResolution, int verticalResolution, byte verticalRefresh, bool interlaced, bool reduceBlanking) { Interlaced = interlaced; @@ -132,7 +132,7 @@ internal MonitorResolutionInfo(int horizontalResolution, int verticalResolution, /// Gets a value indicating whether this resolution is interlaced. /// /// - /// true if it is linked; false otherwise. + /// true if it is linked; false otherwise. /// public bool Interlaced { get; } #endregion @@ -142,7 +142,7 @@ internal MonitorResolutionInfo(int horizontalResolution, int verticalResolution, /// Gets a value that indicates whether this resolution reduces flicker. /// /// - /// true if it reduces flicker; false otherwise. + /// true if it reduces flicker; false otherwise. /// public bool ReduceBlanking { get; } #endregion diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Sections/CeaDataSectionCollection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Sections/CeaDataSectionCollection.cs index d8d70d8..f405604 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Sections/CeaDataSectionCollection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Sections/CeaDataSectionCollection.cs @@ -36,7 +36,7 @@ internal CeaDataSectionCollection(DataBlock datablock) : base(datablock, true) /// Object specified by its key. /// /// - /// If the element does not exist, null is returned. + /// If the element does not exist, null is returned. /// /// public DataSection this[KnownCeaSection valueKey] diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Sections/DiDataSectionCollection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Sections/DiDataSectionCollection.cs index ff55522..9b20132 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Sections/DiDataSectionCollection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Sections/DiDataSectionCollection.cs @@ -36,7 +36,7 @@ internal DiDataSectionCollection(DataBlock datablock) : base(datablock, true) /// Object specified by its key. /// /// - /// If the element does not exist, null is returned. + /// If the element does not exist, null is returned. /// /// public DataSection this[KnownDiSection valueKey] diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Sections/EdidDataSectionCollection.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Sections/EdidDataSectionCollection.cs index afe6dd8..2d2eb9a 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Sections/EdidDataSectionCollection.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/ComponentModel/Sections/EdidDataSectionCollection.cs @@ -36,7 +36,7 @@ internal EdidDataSectionCollection(DataBlock datablock) : base(datablock, true) /// Object specified by its key. /// /// - /// If the element does not exist, null is returned. + /// If the element does not exist, null is returned. /// /// public DataSection this[KnownEdidSection valueKey] diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/EedidProperty.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/EedidProperty.cs index d10a065..640bc0f 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/EedidProperty.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/EEDID/EedidProperty.cs @@ -1,11 +1,13 @@ ο»Ώ namespace iTin.Core.Hardware.Specification.Eedid { + using System; using System.Collections.Generic; using System.Collections.ObjectModel; + using System.Drawing; /// - /// Definition of available keys for the specification of a monitor. + /// Definition of available keys for the specification of a monitor. /// public static class EedidProperty { @@ -21,30 +23,55 @@ public static class Edid /// public static class Header { - #region [public] {static} (IPropertyKey) Signature: Gets a value that represents the key to recover the property + #region [public] {static} (IPropertyKey) Signature: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Contains the EDID header signature.
+ /// Always returns (00 FF FF FF FF FF FF 00). + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: where T is . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey Signature => new PropertyKey(KnownEdidSection.Header, EdidHeaderProperty.Signature); #endregion - #region [public] {static} (IPropertyKey) IsValid: Gets a value that represents the key to recover the property + #region [public] {static} (IPropertyKey) IsValid: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if is a valid. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// - public static IPropertyKey IsValid => new PropertyKey(KnownEdidSection.Header, EdidHeaderProperty.IsValid, PropertyUnit.None); + public static IPropertyKey IsValid => new PropertyKey(KnownEdidSection.Header, EdidHeaderProperty.IsValid); #endregion } #endregion @@ -55,93 +82,187 @@ public static class Header /// public static class Vendor { - #region [public] {static} (IPropertyKey) IdManufacturerName: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) IdManufacturerName: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// The ID manufacturer’s name.
+ /// These codes are also called the ISA (Industry Standard Architecture) Plug and Play Device Identifier (PNPID).
+ /// ISA Manufacturer PNPIDs are issued by Microsoft.
+ /// For more information, please see http://www.microsoft.com/whdc/system/pnppwr/pnp/pnpid.mspx. + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey IdManufacturerName => new PropertyKey(KnownEdidSection.Vendor, EdidVendorProperty.IdManufacturerName); #endregion - #region [public] {static} (IPropertyKey) IdProductCode: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) IdProductCode: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Vendor assigned code.
+ /// This is used to differentiate between different models from the same manufacturer. + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey IdProductCode => new PropertyKey(KnownEdidSection.Vendor, EdidVendorProperty.IdProductCode); #endregion - #region [public] {static} (IPropertyKey) IdSerialNumber: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) IdSerialNumber: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: uint?" + /// Gets a value representing the key to retrieve the property value. + /// + /// Contains a 32-bit serial number.
+ /// The ID serial number is a 32-bit serial number used to differentiate between individual instances of the same display model.
+ /// Its use is optional. + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: where T is . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey IdSerialNumber => new PropertyKey(KnownEdidSection.Vendor, EdidVendorProperty.IdSerialNumber); #endregion - #region [public] {static} (IPropertyKey) WeekOfManufactureOrModelYear: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) WeekOfManufactureOrModelYear: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Contains a week number or model year. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: where T is . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey WeekOfManufactureOrModelYear => new PropertyKey(KnownEdidSection.Vendor, EdidVendorProperty.WeekOfManufactureOrModelYear); #endregion - #region [public] {static} (IPropertyKey) YearOfManufactureOrModelYear: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) YearOfManufactureOrModelYear: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Contains the manufacture year or model year. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: where T is . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey YearOfManufactureOrModelYear => new PropertyKey(KnownEdidSection.Vendor, EdidVendorProperty.YearOfManufactureOrModelYear); #endregion - #region [public] {static} (IPropertyKey) ManufactureDate: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) ManufactureDate: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// The manufacuture data.
+ /// See property for known the strategy used. + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey ManufactureDate => new PropertyKey(KnownEdidSection.Vendor, EdidVendorProperty.ManufactureDate); #endregion #region [public] {static} (IPropertyKey) ModelYearStrategy: Gets a value representing the key to retrieve the property /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Returns a value indicating the strategy used for model year data. + /// + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey ModelYearStrategy => new PropertyKey(KnownEdidSection.Vendor, EdidVendorProperty.ModelYearStrategy); #endregion @@ -154,28 +275,50 @@ public static class Vendor /// public static class Version { - #region [public] {static} (IPropertyKey) Number: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Number: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Implemented version number. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Number => new PropertyKey(KnownEdidSection.Version, EdidVersionProperty.Version); #endregion - #region [public] {static} (IPropertyKey) Revision: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Revision: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Implemented revision number. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Revision => new PropertyKey(KnownEdidSection.Version, EdidVersionProperty.Revision); #endregion @@ -190,54 +333,107 @@ public static class BasicDisplay { #region public readonly properties - #region [public] {static} (IPropertyKey) VideoInputDefinition: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) VideoInputDefinition: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Video Signal Interface. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey VideoInputDefinition => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.VideoInputDefinition); #endregion - #region [public] {static} (IPropertyKey) HorizontalScreenSize: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) HorizontalScreenSize: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Horizontal screen size.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey HorizontalScreenSize => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.HorizontalScreenSize, PropertyUnit.cm); #endregion - #region [public] {static} (IPropertyKey) VerticalScreenSize: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) VerticalScreenSize: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Vertical screen size.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey VerticalScreenSize => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.VerticalScreenSize, PropertyUnit.cm); #endregion - #region [public] {static} (IPropertyKey) Gamma: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Gamma: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// The display transfer characteristic, referred to as GAMMA,
+ /// The values in the range of 1.00 to 3.54 or it may be stored (using a transfer characteristic curve) in an optional extension block. + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey Gamma => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.Gamma); #endregion @@ -249,60 +445,104 @@ public static class BasicDisplay #region [public] {static} (class) Analog: Definition of keys in the 'Analog' section /// - /// Definition of keys in the Analog section. + /// Definition of keys in the Analog section. /// public static class Analog { #region public readonly properties - #region [public] {static} (IPropertyKey) SignalLevelStandard: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) SignalLevelStandard: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Signal level standard. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey SignalLevelStandard => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.AnalogSignalLevelStandard); #endregion - #region [public] {static} (IPropertyKey) VideoSetup: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) VideoSetup: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Video setup. Blank level. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey VideoSetup => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.AnalogVideoSetup); #endregion - #region [public] {static} (IPropertyKey) VerticalSyncSupported: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) VerticalSyncSupported: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if vertical synchronization is supported. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey VerticalSyncSupported => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.AnalogVerticalSyncSupported); #endregion - #region [public] {static} (IPropertyKey) DisplayColorType: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) DisplayColorType: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Analog display color type. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey DisplayColorType => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.AnalogDisplayColorType); #endregion @@ -314,45 +554,78 @@ public static class Analog #region [public] {static} (class) Syncrhonization: Definition of keys in the 'Syncrhonization Types' section /// - /// Definition of keys in the Syncrhonization Types section. + /// Definition of keys in the Syncrhonization Types section. /// public static class Syncrhonization { - #region [public] {static} (IPropertyKey) SeparateSyncSupported: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) SeparateSyncSupported: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if vertical and horizontal signals separate are supported. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey SeparateSyncSupported => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.AnalogSeparateSyncSupported); #endregion - #region [public] {static} (IPropertyKey) CompositeSyncSignalHorizontalSupported: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) CompositeSyncSignalHorizontalSupported: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if composite synchronization signal on horizontal is supported. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey CompositeSyncSignalHorizontalSupported => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.AnalogCompositeSyncSignalHorizontalSupported); #endregion - #region [public] {static} (IPropertyKey) CompositeSyncSignalGreenVideoSupported: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) CompositeSyncSignalGreenVideoSupported: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if composite synchronization signal on green video is supported. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey CompositeSyncSignalGreenVideoSupported => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.AnalogCompositeSyncSignalGreenVideoSupported); #endregion @@ -365,45 +638,78 @@ public static class Syncrhonization #region [public] {static} (class) Digital: Definition of keys in the 'Digital' section /// - /// Definition of keys in the Digital section. + /// Definition of keys in the Digital section. /// public static class Digital { - #region [public] {static} (IPropertyKey) ColorBitDepth: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) ColorBitDepth: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Color bit depth. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey ColorBitDepth => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.DigitalColorBitDepth); #endregion - #region [public] {static} (IPropertyKey) VideoInterface: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) VideoInterface: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Returns a value indicating if is a digital or analog video interface. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey VideoInterface => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.DigitalVideoInterface); #endregion - #region [public] {static} (IPropertyKey) ColorEncodingFormat: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) ColorEncodingFormat: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Supported color encoding format. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey ColorEncodingFormat => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.DigitalColorEncodingFormat); #endregion @@ -412,51 +718,84 @@ public static class Digital #region [public] {static} (class) Features: Definition of keys in the 'Features' section /// - /// Definition of keys in the Features section. + /// Definition of keys in the Features section. /// public static class Features { #region [public] {static} (class) Other: DefiniciΓ³n de claves de la secciΓ³n 'Other Features' /// - /// DefiniciΓ³n de claves de la secciΓ³n Other Features. + /// DefiniciΓ³n de claves de la secciΓ³n Other Features. /// public static class Other { - #region [public] {static} (IPropertyKey) IsSrgbDefaultColorSpace: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) IsSrgbDefaultColorSpace: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if sRGB Standard is the default color space. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey IsSrgbDefaultColorSpace => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.SrgbDefaultColorSpace); #endregion - #region [public] {static} (IPropertyKey) IncludePreferredTimingMode: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) IncludePreferredTimingMode: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if preferred timing Mmde includes the native pixel format and preferred refresh rate of the display device. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey IncludePreferredTimingMode => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.PreferredTimingMode); #endregion - #region [public] {static} (IPropertyKey) IsContinuousFrequency: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) IsContinuousFrequency: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if display is continuous frequency. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey IsContinuousFrequency => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.ContinuousFrequency); #endregion @@ -465,45 +804,78 @@ public static class Other #region [public] {static} (class) DisplayPowerManagement: DefiniciΓ³n de claves de la secciΓ³n 'Display Power Management' /// - /// Definition of keys in the Display Power Management section. + /// Definition of keys in the Display Power Management section. /// public static class DisplayPowerManagement { - #region [public] {static} (IPropertyKey) StandbyModeSupported: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) StandbyModeSupported: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if standby mode is supported. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey StandbyModeSupported => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.StandbyModeSupported); #endregion - #region [public] {static} (IPropertyKey) SuspendModeSupported: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) SuspendModeSupported: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if suspend mode is supported. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey SuspendModeSupported => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.SuspendModeSupported); #endregion - #region [public] {static} (IPropertyKey) ActiveOffSupported: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) ActiveOffSupported: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if very low power is supported. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey ActiveOffSupported => new PropertyKey(KnownEdidSection.BasicDisplay, EdidBasicDisplayProperty.ActiveOffSupported); #endregion @@ -522,54 +894,98 @@ public static class DisplayPowerManagement /// public static class ColorCharacteristics { - #region [public] {static} (IPropertyKey) Red: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Red: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Red chromaticity point. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Red => new PropertyKey(KnownEdidSection.ColorCharacteristics, EdidColorCharacteristicsProperty.Red); #endregion - #region [public] {static} (IPropertyKey) Green: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Green: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Green chromaticity point. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Green => new PropertyKey(KnownEdidSection.ColorCharacteristics, EdidColorCharacteristicsProperty.Green); #endregion - #region [public] {static} (IPropertyKey) Blue: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Blue: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Blue chromaticity point. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Blue => new PropertyKey(KnownEdidSection.ColorCharacteristics, EdidColorCharacteristicsProperty.Blue); #endregion - #region [public] {static} (IPropertyKey) White: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) White: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// White chromaticity point. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey White => new PropertyKey(KnownEdidSection.ColorCharacteristics, EdidColorCharacteristicsProperty.White); #endregion @@ -582,15 +998,26 @@ public static class ColorCharacteristics /// public static class EstablishedTimings { - #region [public] {static} (IPropertyKey) Resolutions: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Resolutions: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Supported resolutions collection for established timmings. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: where T is . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Resolutions => new PropertyKey(KnownEdidSection.EstablishedTimings, EdidEstablishedTimingsProperty.Resolutions); #endregion @@ -603,106 +1030,194 @@ public static class EstablishedTimings /// public static class StandardTimings { - #region [public] {static} (IPropertyKey) Timing1: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Timing1: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Standard timming definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Timing1 => new PropertyKey(KnownEdidSection.StandardTimings, EdidStandardTimingProperty.Timing1); #endregion - #region [public] {static} (IPropertyKey) Timing2: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Timing2: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Standard timming definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Timing2 => new PropertyKey(KnownEdidSection.StandardTimings, EdidStandardTimingProperty.Timing2); #endregion - #region [public] {static} (IPropertyKey) Timing3: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Timing3: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Standard timming definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Timing3 => new PropertyKey(KnownEdidSection.StandardTimings, EdidStandardTimingProperty.Timing3); #endregion - #region [public] {static} (IPropertyKey) Timing4: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Timing4: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Standard timming definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Timing4 => new PropertyKey(KnownEdidSection.StandardTimings, EdidStandardTimingProperty.Timing4); #endregion - #region [public] {static} (IPropertyKey) Timing5: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Timing5: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Standard timming definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Timing5 => new PropertyKey(KnownEdidSection.StandardTimings, EdidStandardTimingProperty.Timing5); #endregion - #region [public] {static} (IPropertyKey) Timing6: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Timing6: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Standard timming definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Timing6 => new PropertyKey(KnownEdidSection.StandardTimings, EdidStandardTimingProperty.Timing6); #endregion - #region [public] {static} (IPropertyKey) Timing7: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Timing7: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Standard timming definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Timing7 => new PropertyKey(KnownEdidSection.StandardTimings, EdidStandardTimingProperty.Timing7); #endregion - #region [public] {static} (IPropertyKey) Timing8: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Timing8: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Standard timming definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Timing8 => new PropertyKey(KnownEdidSection.StandardTimings, EdidStandardTimingProperty.Timing8); #endregion @@ -717,54 +1232,98 @@ public static class DataBlock { #region public readonly properties - #region [public] {static} (IPropertyKey) Descriptor1: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Descriptor1: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// DataBlock definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: where TKey is , TValue is and T is . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Descriptor1 => new PropertyKey(KnownEdidSection.DataBlocks, EdidDataBlockProperty.Descriptor1); #endregion - #region [public] {static} (IPropertyKey) Descriptor2: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Descriptor2: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// DataBlock definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: where TKey is , TValue is and T is . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Descriptor2 => new PropertyKey(KnownEdidSection.DataBlocks, EdidDataBlockProperty.Descriptor2); #endregion - #region [public] {static} (IPropertyKey) Descriptor3: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Descriptor3: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// DataBlock definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: where TKey is , TValue is and T is . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Descriptor3 => new PropertyKey(KnownEdidSection.DataBlocks, EdidDataBlockProperty.Descriptor3); #endregion - #region [public] {static} (IPropertyKey) Descriptor4: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Descriptor4: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// DataBlock definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: where TKey is , TValue is and T is . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Descriptor4 => new PropertyKey(KnownEdidSection.DataBlocks, EdidDataBlockProperty.Descriptor4); #endregion @@ -782,19 +1341,30 @@ public static class Definition { #region [public] {static} (class) AlphanumericDataString: Definition of keys in the 'DataBlocks' of 'AlphaNumericDataString' type /// - /// Definition of keys in the DataBlock of type. + /// Definition of keys in the DataBlock of type. /// public static class AlphanumericDataString { - #region [public] {static} (IPropertyKey) Text: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Data: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Valor β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Represents alphanumeric datablock descriptor text. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Data => new PropertyKey(EdidDataBlockDescriptor.AlphaNumericDataString, AlphanumericDataStringDescriptorProperty.Text); #endregion @@ -803,60 +1373,104 @@ public static class AlphanumericDataString #region [public] {static} (class) ColorManagementData: Definition of keys in the 'DataBlocks' of 'ColorManagementData' type /// - /// Definition of keys in the DataBlock of type. + /// Definition of keys in the DataBlock of type. /// public static class ColorManagementData { #region public readonly properties - #region [public] {static} (IPropertyKey) VersionNumber: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) VersionNumber: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Version Number. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey VersionNumber => new PropertyKey(EdidDataBlockDescriptor.ColorManagementData, ColorManagementDataDescriptorProperty.Version); #endregion - #region [public] {static} (IPropertyKey) Red: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Red: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Contains the display color management polynomial coefficient. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Red => new PropertyKey(EdidDataBlockDescriptor.ColorManagementData, ColorManagementDataDescriptorProperty.Red); #endregion - #region [public] {static} (IPropertyKey) Green: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Green: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Contains the display color management polynomial coefficient. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Green => new PropertyKey(EdidDataBlockDescriptor.ColorManagementData, ColorManagementDataDescriptorProperty.Green); #endregion - #region [public] {static} (IPropertyKey) Blue: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Blue: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Contains the display color management polynomial coefficient. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Blue => new PropertyKey(EdidDataBlockDescriptor.ColorManagementData, ColorManagementDataDescriptorProperty.Blue); #endregion @@ -866,32 +1480,54 @@ public static class ColorManagementData #region nested classes /// - /// Definition of keys for an element of a block of type . + /// Definition of keys for an element of a block of type . /// public static class Item { - #region [public] {static} (IPropertyKey) A2: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) A2: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Contains the least significant byte. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey A2 => new PropertyKey(EdidDataBlockDescriptor.ColorManagementData, ColorManagementDataDescriptorItemProperty.A2); #endregion - #region [public] {static} (IPropertyKey) A3: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) A3: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Contains the most significant byte. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey A3 => new PropertyKey(EdidDataBlockDescriptor.ColorManagementData, ColorManagementDataDescriptorItemProperty.A3); #endregion @@ -900,36 +1536,58 @@ public static class Item } #endregion - #region [public] {static} (class) ColorPointData: DefiniciΓ³n de claves para un 'DataBlock' de tipo 'ColorPointData'. + #region [public] {static} (class) ColorPointData: Definition of keys in the 'DataBlocks' of 'ColorPointData' type /// - /// Definition of keys in the DataBlock of type. + /// Definition of keys in the DataBlock of type. /// public static class ColorPointData { #region public readonly properties - #region [public] {static} (IPropertyKey) Point1: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Point1: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Contains the additional point descriptor information. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Point1 => new PropertyKey(EdidDataBlockDescriptor.ColorPointData, ColorPointDataDescriptorProperty.Point1); #endregion - #region [public] {static} (IPropertyKey) Point2: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Point2: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Contains the additional point descriptor information. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Point2 => new PropertyKey(EdidDataBlockDescriptor.ColorPointData, ColorPointDataDescriptorProperty.Point2); #endregion @@ -939,47 +1597,80 @@ public static class ColorPointData #region nested classes - #region [public] {static} (class) Item: DefiniciΓ³n de claves para un elemento de un bloque de tipo 'ColorPointData'. + #region [public] {static} (class) Item: Definition of keys for an element of a block of type 'ColorPointData' /// - /// DefiniciΓ³n de claves para un elemento de un bloque de tipo . + /// Definition of keys for an element of a block of type . /// public static class Item { - #region [public] {static} (IPropertyKey) Index: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Index: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// White point index number. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Index => new PropertyKey(EdidDataBlockDescriptor.ColorPointData, ColorPointDataDescriptorItemProperty.Index); #endregion - #region [public] {static} (IPropertyKey) White: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) White: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// White point values. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey White => new PropertyKey(EdidDataBlockDescriptor.ColorPointData, ColorPointDataDescriptorItemProperty.White); #endregion - #region [public] {static} (IPropertyKey) Gamma: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Gamma: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: ? + /// Gets a value representing the key to retrieve the property value. + /// Gamma value. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: where T is . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Gamma => new PropertyKey(EdidDataBlockDescriptor.ColorPointData, ColorPointDataDescriptorItemProperty.Gamma); #endregion @@ -990,75 +1681,130 @@ public static class Item } #endregion - #region [public] {static} (class) Cvt3ByteCode: DefiniciΓ³n de claves para un 'DataBlock' de tipo 'CVT3ByteCode'. + #region [public] {static} (class) Cvt3ByteCode: Definition of keys in the 'DataBlocks' of 'Cvt3ByteCode' type /// - /// DefiniciΓ³n de claves para un 'DataBlock' de tipo . + /// Definition of keys in the DataBlock of type. /// public static class Cvt3ByteCode { #region public readonly properties - #region [public] {static} (IPropertyKey) VersionNumber: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) VersionNumber: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Version number. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey VersionNumber => new PropertyKey(EdidDataBlockDescriptor.Cvt3ByteCode, Cvt3ByteCodeDescriptorProperty.Version); #endregion - #region [public] {static} (IPropertyKey) Priority1: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Priority1: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Contains CVT descriptor. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Priority1 => new PropertyKey(EdidDataBlockDescriptor.Cvt3ByteCode, Cvt3ByteCodeDescriptorProperty.Priority1); #endregion - #region [public] {static} (IPropertyKey) Priority2: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Priority2: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Contains CVT descriptor. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Priority2 => new PropertyKey(EdidDataBlockDescriptor.Cvt3ByteCode, Cvt3ByteCodeDescriptorProperty.Priority2); #endregion - #region [public] {static} (IPropertyKey) Priority3: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Priority3: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Contains CVT descriptor. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Priority3 => new PropertyKey(EdidDataBlockDescriptor.Cvt3ByteCode, Cvt3ByteCodeDescriptorProperty.Priority3); #endregion - #region [public] {static} (IPropertyKey) Priority4: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Priority4: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Contains CVT descriptor. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Priority4 => new PropertyKey(EdidDataBlockDescriptor.Cvt3ByteCode, Cvt3ByteCodeDescriptorProperty.Priority4); #endregion @@ -1068,47 +1814,86 @@ public static class Cvt3ByteCode #region nested classes /// - /// DefiniciΓ³n de claves para un elemento de un bloque de tipo . + /// Definition of keys for an element of a block of type . /// public static class Item { #region public readonly properties - #region [public] {static} (IPropertyKey) AddressableVerticalLines: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) AddressableVerticalLines: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Number of addresable lines.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey AddressableVerticalLines => new PropertyKey(EdidDataBlockDescriptor.Cvt3ByteCode, Cvt3ByteCodeDescriptorItemProperty.AddressableVerticalLines, PropertyUnit.Lines); #endregion - #region [public] {static} (IPropertyKey) AspectRatio: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) AspectRatio: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Aspect ratio value. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey AspectRatio => new PropertyKey(EdidDataBlockDescriptor.Cvt3ByteCode, Cvt3ByteCodeDescriptorItemProperty.AspectRatio); #endregion - #region [public] {static} (IPropertyKey) PreferredVerticalRate: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) PreferredVerticalRate: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Preferred vertical rate value.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey PreferredVerticalRate => new PropertyKey(EdidDataBlockDescriptor.Cvt3ByteCode, Cvt3ByteCodeDescriptorItemProperty.PreferredVerticalRate, PropertyUnit.Hz); #endregion @@ -1118,73 +1903,128 @@ public static class Item #region nested classes - #region [public] {static} (class) SupportedVerticalRateAndBlanking: DefiniciΓ³n de claves de la secciΓ³n 'Supported Vertical Rate And Blanking Style'. + #region [public] {static} (class) SupportedVerticalRateAndBlanking: Definition of keys for 'Supported Vertical Rate And Blanking Style' section /// - /// DefiniciΓ³n de claves de la secciΓ³n Supported Vertical Rate And Blanking Style. + /// Definition of keys for Supported Vertical Rate And Blanking Style section. /// public static class SupportedVerticalRateAndBlanking { - #region [public] {static} (IPropertyKey) IsSupported50HzWithStandardBlanking: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) IsSupported50HzWithStandardBlanking: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if is supported 50Hz with standard blanking. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey IsSupported50HzWithStandardBlanking => new PropertyKey(EdidDataBlockDescriptor.Cvt3ByteCode, Cvt3ByteCodeDescriptorItemProperty.IsSupported50HzWithStandardBlanking); #endregion - #region [public] {static} (IPropertyKey) IsSupported60HzWithStandardBlanking: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) IsSupported60HzWithStandardBlanking: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if is supported 60Hz with standard blanking. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey IsSupported60HzWithStandardBlanking => new PropertyKey(EdidDataBlockDescriptor.Cvt3ByteCode, Cvt3ByteCodeDescriptorItemProperty.IsSupported60HzWithStandardBlanking); #endregion - #region [public] {static} (IPropertyKey) IsSupported75HzWithStandardBlanking: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) IsSupported75HzWithStandardBlanking: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if is supported 75Hz with standard blanking. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey IsSupported75HzWithStandardBlanking => new PropertyKey(EdidDataBlockDescriptor.Cvt3ByteCode, Cvt3ByteCodeDescriptorItemProperty.IsSupported75HzWithStandardBlanking); #endregion - #region [public] {static} (IPropertyKey) IsSupported85HzWithStandardBlanking: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) IsSupported85HzWithStandardBlanking: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if is supported 85Hz with standard blanking. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey IsSupported85HzWithStandardBlanking => new PropertyKey(EdidDataBlockDescriptor.Cvt3ByteCode, Cvt3ByteCodeDescriptorItemProperty.IsSupported85HzWithStandardBlanking); #endregion - #region [public] {static} (IPropertyKey) IsSupported60HzWithReducedBlanking: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) IsSupported60HzWithReducedBlanking: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if is supported 60Hz with reduced blanking. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey IsSupported60HzWithReducedBlanking => new PropertyKey(EdidDataBlockDescriptor.Cvt3ByteCode, Cvt3ByteCodeDescriptorItemProperty.IsSupported60HzWithReducedBlanking); #endregion @@ -1197,506 +2037,935 @@ public static class SupportedVerticalRateAndBlanking } #endregion - #region [public] {static} (class) DetailedTimingMode: DefiniciΓ³n de claves para un 'DataBlock' de tipo 'DetailedTimingMode'. + #region [public] {static} (class) DetailedTimingMode: Definition of keys in the 'DataBlocks' of 'DetailedTimingMode' type /// - /// DefiniciΓ³n de claves para un 'DataBlock' de tipo . + /// Definition of keys in the DataBlock of type. /// public static class DetailedTimingMode { - #region [public] {static} (IPropertyKey) PixelClock: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) PixelClock: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Pixel clock value.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey PixelClock => new PropertyKey(EdidDataBlockDescriptor.DetailedTimingMode, DetailedTimingModeDescriptorProperty.PixelClock, PropertyUnit.KHz); #endregion - #region [public] {static} (IPropertyKey) HorizontalResolution Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) HorizontalResolution: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Horizontal resolution.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey HorizontalResolution => new PropertyKey(EdidDataBlockDescriptor.DetailedTimingMode, DetailedTimingModeDescriptorProperty.HorizontalResolution, PropertyUnit.Pixels); #endregion - #region [public] {static} (IPropertyKey) HorizontalBlanking Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) HorizontalBlanking: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Horizontal blanking value.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey HorizontalBlanking => new PropertyKey(EdidDataBlockDescriptor.DetailedTimingMode, DetailedTimingModeDescriptorProperty.HorizontalBlanking, PropertyUnit.Pixels); #endregion - #region [public] {static} (IPropertyKey) VerticalLines Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) VerticalLines: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Vertical lines value.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey VerticalLines => new PropertyKey(EdidDataBlockDescriptor.DetailedTimingMode, DetailedTimingModeDescriptorProperty.VerticalLines, PropertyUnit.Lines); #endregion - #region [public] {static} (IPropertyKey) VerticalBlanking Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) VerticalBlanking: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Vertical blanking.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey VerticalBlanking => new PropertyKey(EdidDataBlockDescriptor.DetailedTimingMode, DetailedTimingModeDescriptorProperty.VerticalBlanking, PropertyUnit.Lines); #endregion - #region [public] {static} (IPropertyKey) HorizontalFrontPorch Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) HorizontalFrontPorch: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Horizontal front porch.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey HorizontalFrontPorch => new PropertyKey(EdidDataBlockDescriptor.DetailedTimingMode, DetailedTimingModeDescriptorProperty.HorizontalFrontPorch, PropertyUnit.Pixels); #endregion - #region [public] {static} (IPropertyKey) HorizontalSyncPulseWidth Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) HorizontalSyncPulseWidth: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Horizontal sync pulse width.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey HorizontalSyncPulseWidth => new PropertyKey(EdidDataBlockDescriptor.DetailedTimingMode, DetailedTimingModeDescriptorProperty.HorizontalSyncPulseWidth, PropertyUnit.Pixels); #endregion - #region [public] {static} (IPropertyKey) VerticalFrontPorch Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) VerticalFrontPorch: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Vertical front porch.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey VerticalFrontPorch => new PropertyKey(EdidDataBlockDescriptor.DetailedTimingMode, DetailedTimingModeDescriptorProperty.VerticalFrontPorch, PropertyUnit.Lines); #endregion - #region [public] {static} (IPropertyKey) VerticalSyncPulseWidth Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) VerticalSyncPulseWidth: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Vertical sync pulse width value.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey VerticalSyncPulseWidth => new PropertyKey(EdidDataBlockDescriptor.DetailedTimingMode, DetailedTimingModeDescriptorProperty.VerticalSyncPulseWidth, PropertyUnit.Lines); #endregion - #region [public] {static} (IPropertyKey) HorizontalImageSize Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) HorizontalImageSize: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Horizontal image size value.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey HorizontalImageSize => new PropertyKey(EdidDataBlockDescriptor.DetailedTimingMode, DetailedTimingModeDescriptorProperty.HorizontalImageSize, PropertyUnit.mm); #endregion - #region [public] {static} (IPropertyKey) VerticalImageSize Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) VerticalImageSize: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Vertical image size value.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey VerticalImageSize => new PropertyKey(EdidDataBlockDescriptor.DetailedTimingMode, DetailedTimingModeDescriptorProperty.VerticalImageSize, PropertyUnit.mm); #endregion - #region [public] {static} (IPropertyKey) HorizontalBorder Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) HorizontalBorder: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Horizontal border value.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey HorizontalBorder => new PropertyKey(EdidDataBlockDescriptor.DetailedTimingMode, DetailedTimingModeDescriptorProperty.HorizontalBorder, PropertyUnit.Pixels); #endregion - #region [public] {static} (IPropertyKey) VerticalBorder Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) VerticalBorder: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Vertical border value.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey VerticalBorder => new PropertyKey(EdidDataBlockDescriptor.DetailedTimingMode, DetailedTimingModeDescriptorProperty.VerticalBorder, PropertyUnit.Pixels); #endregion - #region [public] {static} (IPropertyKey) IsInterlaced Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) IsInterlaced: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if is interlaced. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey IsInterlaced => new PropertyKey(EdidDataBlockDescriptor.DetailedTimingMode, DetailedTimingModeDescriptorProperty.Interlaced); #endregion - #region [public] {static} (IPropertyKey) StereoViewingSupport Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) StereoViewingSupport: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Stereo viewing support value. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey StereoViewingSupport => new PropertyKey(EdidDataBlockDescriptor.DetailedTimingMode, DetailedTimingModeDescriptorProperty.StereoViewingSupport); #endregion - #region [public] {static} (IPropertyKey) SyncSignalType Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) SyncSignalType: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Sync signal type. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey SyncSignalType => new PropertyKey(EdidDataBlockDescriptor.DetailedTimingMode, DetailedTimingModeDescriptorProperty.SyncSignalType); #endregion } #endregion - #region [public] {static} (class) DisplayProductName: DefiniciΓ³n de claves para un 'DataBlock' de tipo 'DisplayProductName'. + #region [public] {static} (class) DisplayProductName: Definition of keys in the 'DataBlock' of 'DisplayProductName' type /// - /// DefiniciΓ³n de claves para un 'DataBlock' de tipo . + /// Definition of keys in the DataBlock of type. /// public static class DisplayProductName { - #region [public] {static} (IPropertyKey) Text: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Data: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Display product name text. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Data => new PropertyKey(EdidDataBlockDescriptor.DisplayProductName, DisplayProductNameDescriptorProperty.Text); #endregion } #endregion - #region [public] {static} (class) DisplayProductSerialNumber: DefiniciΓ³n de claves para un 'DataBlock' de tipo 'DisplayProductSerialNumber'. + #region [public] {static} (class) DisplayProductSerialNumber: Definition of keys in the 'DataBlock' of 'DisplayProductSerialNumber' type /// - /// DefiniciΓ³n de claves para un 'DataBlock' de tipo . + /// Definition of keys in the DataBlock of type. /// public static class DisplayProductSerialNumber { - #region [public] {static} (IPropertyKey) Text: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Data: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Display product serial number value. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Data => new PropertyKey(EdidDataBlockDescriptor.DisplayProductSerialNumber, DisplayProductSerialNumberDescriptorProperty.Text); #endregion } #endregion - #region [public] {static} (class) DisplayRangeLimits: DefiniciΓ³n de claves para un 'DataBlock' de tipo 'DisplayRangeLimits'. + #region [public] {static} (class) DisplayRangeLimits: Definition of keys in the 'DataBlock' of 'DisplayRangeLimits' type /// - /// DefiniciΓ³n de claves para un 'DataBlock' de tipo . + /// Definition of keys in the DataBlock of type. /// public static class DisplayRangeLimits { - #region [public] {static} (IPropertyKey) MinimumVerticalRate: + #region [public] {static} (IPropertyKey) MinimumVerticalRate: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Minimum vertical rate value.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey MinimumVerticalRate => new PropertyKey(EdidDataBlockDescriptor.DisplayRangeLimits, DisplayRangeLimitsDescriptorProperty.MinimumVerticalRate, PropertyUnit.Hz); #endregion - #region [public] {static} (IPropertyKey) MaximumVerticalRate: + #region [public] {static} (IPropertyKey) MaximumVerticalRate: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Maximum vertical rate value.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey MaximumVerticalRate => new PropertyKey(EdidDataBlockDescriptor.DisplayRangeLimits, DisplayRangeLimitsDescriptorProperty.MaximumVerticalRate, PropertyUnit.Hz); #endregion - #region [public] {static} (IPropertyKey) MinimumHorizontalRate: + #region [public] {static} (IPropertyKey) MinimumHorizontalRate: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Minimim horizontal rate value.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey MinimumHorizontalRate => new PropertyKey(EdidDataBlockDescriptor.DisplayRangeLimits, DisplayRangeLimitsDescriptorProperty.MinimumHorizontalRate, PropertyUnit.Hz); #endregion - #region [public] {static} (IPropertyKey) MaximumHorizontalRate: + #region [public] {static} (IPropertyKey) MaximumHorizontalRate: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Maximum horizontal rate value.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
public static IPropertyKey MaximumHorizontalRate => new PropertyKey(EdidDataBlockDescriptor.DisplayRangeLimits, DisplayRangeLimitsDescriptorProperty.MaximumHorizontalRate, PropertyUnit.Hz); #endregion - #region [public] {static} (IPropertyKey) MaximumPixelClock: + #region [public] {static} (IPropertyKey) MaximumPixelClock: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// + /// Maximum pixel clock value.
+ /// This value is measured in . + ///
+ /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// ///
+ /// public static IPropertyKey MaximumPixelClock => new PropertyKey(EdidDataBlockDescriptor.DisplayRangeLimits, DisplayRangeLimitsDescriptorProperty.MaximumPixelClock, PropertyUnit.MHz); #endregion } #endregion - #region [public] {static} (class) DummyData: DefiniciΓ³n de claves para un 'DataBlock' de tipo 'DummyData'. + #region [public] {static} (class) DummyData: Definition of keys in the 'DataBlock' of 'DummyData' type /// - /// DefiniciΓ³n de claves para un 'DataBlock' de tipo . + /// Definition of keys in the DataBlock of type. /// public static class DummyData { - #region [public] {static} (IPropertyKey) OriginalData: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) OriginalData: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Original data value. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey OriginalData => new PropertyKey(EdidDataBlockDescriptor.DummyData, DummyDataDescriptorProperty.OriginalData); #endregion - #region [public] {static} (IPropertyKey) PrintableData: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) PrintableData: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Printable data value. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey PrintableData => new PropertyKey(EdidDataBlockDescriptor.DummyData, DummyDataDescriptorProperty.PrintableData); #endregion } #endregion - #region [public] {static} (class) EstablishedTimingsIII: DefiniciΓ³n de claves para un 'DataBlock' de tipo 'EstablishedTimingsIII'. + #region [public] {static} (class) EstablishedTimingsIII: Definition of keys in the 'DataBlock' of 'EstablishedTimingsIII' type /// - /// DefiniciΓ³n de claves para un 'DataBlock' de tipo . + /// Definition of keys in the DataBlock of type. /// public static class EstablishedTimingsIII { - #region [public] {static} (IPropertyKey) Revision: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Revision: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Revision value. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Revision => new PropertyKey(EdidDataBlockDescriptor.EstablishedTimingsIII, EstablishedTimingsIIIDescriptorProperty.Revision); #endregion - #region [public] {static} (IPropertyKey) Resolutions Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Resolutions:Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Supported resolutions collection for established timmings iii descriptor. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: where T is . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Resolutions => new PropertyKey(EdidDataBlockDescriptor.EstablishedTimingsIII, EstablishedTimingsIIIDescriptorProperty.Resolutions); #endregion } #endregion - #region [public] {static} (class) ManufacturerSpecifiedData: DefiniciΓ³n de claves para un 'DataBlock' de tipo 'ManufacturerSpecifiedData'. + #region [public] {static} (class) ManufacturerSpecifiedData: Definition of keys in the 'DataBlock' of 'ManufacturerSpecifiedData' type /// - /// DefiniciΓ³n de claves para un 'DataBlock' de tipo . + /// Definition of keys in the DataBlock of type. /// public static class ManufacturerSpecifiedData { - #region [public] {static} (IPropertyKey) Text: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Data: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// A byte collection containing the specific manufacturer data. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: where T is . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Data => new PropertyKey(EdidDataBlockDescriptor.ManufacturerSpecifiedData, ManufacturerSpecifiedDataDescriptorProperty.Data); #endregion } #endregion - #region [public] {static} (class) StandardTimingIdentifier: DefiniciΓ³n de claves para un 'DataBlock' de tipo 'StandardTimingIdentifier'. + #region [public] {static} (class) StandardTimingIdentifier: Definition of keys in the 'DataBlock' of 'StandardTimingIdentifier' type /// - /// DefiniciΓ³n de claves para un 'DataBlock' de tipo . + /// Definition of keys in the DataBlock of type. /// public static class StandardTimingIdentifier { - #region [public] {static} (IPropertyKey) Timing9: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Timing9: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Standard timming definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Timing9 => new PropertyKey(EdidDataBlockDescriptor.StandardTimingIdentifier, StandardTimingIdentifierDescriptorProperty.Timing9); #endregion - #region [public] {static} (IPropertyKey) Timing10: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Timing10: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Standard timming definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Timing10 => new PropertyKey(EdidDataBlockDescriptor.StandardTimingIdentifier, StandardTimingIdentifierDescriptorProperty.Timing10); #endregion - #region [public] {static} (IPropertyKey) Timing11: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Timing11: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Standard timming definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Timing11 => new PropertyKey(EdidDataBlockDescriptor.StandardTimingIdentifier, StandardTimingIdentifierDescriptorProperty.Timing11); #endregion - #region [public] {static} (IPropertyKey) Timing12: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Timing12: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Standard timming definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Timing12 => new PropertyKey(EdidDataBlockDescriptor.StandardTimingIdentifier, StandardTimingIdentifierDescriptorProperty.Timing12); #endregion - #region [public] {static} (IPropertyKey) Timing13: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Timing13: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Standard timming definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Timing13 => new PropertyKey(EdidDataBlockDescriptor.StandardTimingIdentifier, StandardTimingIdentifierDescriptorProperty.Timing13); #endregion - #region [public] {static} (IPropertyKey) Timing14: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Timing14: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Standard timming definition. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Timing14 => new PropertyKey(EdidDataBlockDescriptor.StandardTimingIdentifier, StandardTimingIdentifierDescriptorProperty.Timing14); #endregion @@ -1711,158 +2980,290 @@ public static class StandardTimingIdentifier /// public static class Descriptor { - #region [public] {static} (IPropertyKey) AlphaNumericDataString: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) AlphaNumericDataString: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Represents the alphanumeric datablock descriptor. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey AlphaNumericDataString => new PropertyKey(KnownEdidSection.DataBlocks, EdidDataBlockDescriptor.AlphaNumericDataString); #endregion - #region [public] {static} (IPropertyKey) ColorManagementData: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) ColorManagementData: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Represents the color management datablock descriptor. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey ColorManagementData => new PropertyKey(KnownEdidSection.DataBlocks, EdidDataBlockDescriptor.ColorManagementData); #endregion - #region [public] {static} (IPropertyKey) ColorPointData: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) ColorPointData: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Represents the color point data datablock descriptor. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey ColorPointData => new PropertyKey(KnownEdidSection.DataBlocks, EdidDataBlockDescriptor.ColorPointData); #endregion - #region [public] {static} (IPropertyKey) CVT3ByteCode: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) CVT3ByteCode: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Represents the CVT3 byte code datablock descriptor. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey CVT3ByteCode => new PropertyKey(KnownEdidSection.DataBlocks, EdidDataBlockDescriptor.Cvt3ByteCode); #endregion - #region [public] {static} (IPropertyKey) DetailedTimingMode: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) DetailedTimingMode: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Represents the detailed timming mode datablock descriptor. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey DetailedTimingMode => new PropertyKey(KnownEdidSection.DataBlocks, EdidDataBlockDescriptor.DetailedTimingMode); #endregion - #region [public] {static} (IPropertyKey) DisplayProductName: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) DisplayProductName: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Represents the display product name datablock descriptor. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey DisplayProductName => new PropertyKey(KnownEdidSection.DataBlocks, EdidDataBlockDescriptor.DisplayProductName); #endregion - #region [public] {static} (IPropertyKey) DisplayProductSerialNumber: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) DisplayProductSerialNumber: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Represents the display product serial number datablock descriptor. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey DisplayProductSerialNumber => new PropertyKey(KnownEdidSection.DataBlocks, EdidDataBlockDescriptor.DisplayProductSerialNumber); #endregion - #region [public] {static} (IPropertyKey) DisplayRangeLimits: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) DisplayRangeLimits: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Represents the display range limit datablock descriptor. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey DisplayRangeLimits => new PropertyKey(KnownEdidSection.DataBlocks, EdidDataBlockDescriptor.DisplayRangeLimits); #endregion - #region [public] {static} (IPropertyKey) DummyData: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) DummyData: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Represents the dummy data datablock descriptor. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey DummyData => new PropertyKey(KnownEdidSection.DataBlocks, EdidDataBlockDescriptor.DummyData); #endregion - #region [public] {static} (IPropertyKey) EstablishedTimingsIII: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) EstablishedTimingsIII: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Represents the established timmings III datablock descriptor. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey EstablishedTimingsIII => new PropertyKey(KnownEdidSection.DataBlocks, EdidDataBlockDescriptor.EstablishedTimingsIII); #endregion - #region [public] {static} (IPropertyKey) ManufacturerSpecifiedData: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) ManufacturerSpecifiedData: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Represents the manufacturer specified data datablock descriptor. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey ManufacturerSpecifiedData => new PropertyKey(KnownEdidSection.DataBlocks, EdidDataBlockDescriptor.ManufacturerSpecifiedData); #endregion - #region [public] {static} (IPropertyKey) StandardTimingIdentifier: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) StandardTimingIdentifier: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Represents the standard timing identifier datablock descriptor. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey StandardTimingIdentifier => new PropertyKey(KnownEdidSection.DataBlocks, EdidDataBlockDescriptor.StandardTimingIdentifier); #endregion @@ -1879,28 +3280,50 @@ public static class Descriptor /// public static class ExtensionBlocks { - #region [public] {static} (IPropertyKey) Count: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Count: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Number of availables extensions blocks. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Count => new PropertyKey(KnownEdidSection.ExtensionBlocks, EdidExtensionBlocksProperty.Count); #endregion - #region [public] {static} (IPropertyKey) HasBlocks: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) HasBlocks: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if has availables extension blocks. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey HasBlocks => new PropertyKey(KnownEdidSection.ExtensionBlocks, EdidExtensionBlocksProperty.HasBlocks); #endregion @@ -1913,15 +3336,26 @@ public static class ExtensionBlocks /// public static class CheckSum { - #region [public] {static} (IPropertyKey) OK: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) OK: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if is a valid structure. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Ok => new PropertyKey(KnownEdidSection.CheckSum, EdidCheckSumProperty.Ok); #endregion @@ -1942,28 +3376,50 @@ public static class Cea /// public static class Information { - #region [public] {static} (IPropertyKey) Revision: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Revision: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Implemented revision number. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Revision => new PropertyKey(KnownCeaSection.Information, KnownCeaInformationProperty.Revision); #endregion - #region [public] {static} (IPropertyKey) Implemented: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Implemented: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Implemented version. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Implemented => new PropertyKey(KnownCeaSection.Information, KnownCeaInformationProperty.Implemented); #endregion @@ -1976,54 +3432,98 @@ public static class Information /// public static class MonitorSupport { - #region [public] {static} (IPropertyKey) IsDvtUnderscan: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) IsDvtUnderscan: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if dvt underscan. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey IsDvtUnderscan => new PropertyKey(KnownCeaSection.MonitorSupport, KnownCeaMonitorSupportProperty.IsDvtUnderscan); #endregion - #region [public] {static} (IPropertyKey) BasicAudioSupported: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) BasicAudioSupported: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if basic audio is supported. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey BasicAudioSupported => new PropertyKey(KnownCeaSection.MonitorSupport, KnownCeaMonitorSupportProperty.BasicAudioSupported); #endregion - #region [public] {static} (IPropertyKey) YCbCr444Supported: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) YCbCr444Supported: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if is supported the Ycbcr444. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey YCbCr444Supported => new PropertyKey(KnownCeaSection.MonitorSupport, KnownCeaMonitorSupportProperty.YCbCr444Supported); #endregion - #region [public] {static} (IPropertyKey) YCbCr422Supported: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) YCbCr422Supported: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if is supported the Ycbcr422. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey YCbCr422Supported => new PropertyKey(KnownCeaSection.MonitorSupport, KnownCeaMonitorSupportProperty.YCbCr422Supported); #endregion @@ -2036,15 +3536,26 @@ public static class MonitorSupport /// public static class DetailedTiming { - #region [public] {static} (IPropertyKey) Timings: Obtiene un valor que representa la clave para recuperar la propiedad. + #region [public] {static} (IPropertyKey) Timings: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// The timmings collection. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: where T is . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Timings => new PropertyKey(KnownCeaSection.DetailedTiming, KnownCeaDetailedTimingModeProperty.Timings); #endregion @@ -2057,15 +3568,26 @@ public static class DetailedTiming /// public static class CheckSum { - #region [public] {static} (IPropertyKey) Ok: Gets a value representing the key to retrieve the property + #region [public] {static} (IPropertyKey) Ok: Gets a value representing the key to retrieve the property value /// - /// Gets a value representing the key to retrieve the property. - /// β€” Key Composition β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Structure: - /// Property: - /// Unit: - /// β€” Value β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” - /// Type: + /// Gets a value representing the key to retrieve the property value. + /// Indicates if is a valid structure. + /// + /// Key Composition + /// + /// Structure: + /// Property: + /// Unit: + /// + /// + /// + /// Return Value + /// Type: . + /// + /// + /// Remarks + /// 1.4 + /// /// public static IPropertyKey Ok => new PropertyKey(KnownCeaSection.CheckSum, KnownCeaCheckSumProperty.Ok); #endregion diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/iTin.Core.Hardware.Specification.Eedid.csproj b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/iTin.Core.Hardware.Specification.Eedid.csproj index b824b9d..135e2bc 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/iTin.Core.Hardware.Specification.Eedid.csproj +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware.Specification/iTin.Core.Hardware.Specification.Eedid/iTin.Core.Hardware.Specification.Eedid.csproj @@ -9,6 +9,7 @@ true key.snk true + 1.0.4 diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware/Property/PropertyUnit.cs b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware/Property/PropertyUnit.cs index 75eae74..870e1d8 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware/Property/PropertyUnit.cs +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware/Property/PropertyUnit.cs @@ -13,6 +13,11 @@ public enum PropertyUnit /// None, + /// + /// Adimensional + /// + xcent, + /// /// Auto /// @@ -78,11 +83,22 @@ public enum PropertyUnit mm, /// - /// Milivolts + /// millivolts /// [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "m")] mV, + /// + /// Tenths of millivolts + /// + [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "m")] + d_mV, + + /// + /// 1/100th of a percent + /// + Percent_1_100th, + /// /// Miliwatts/hour /// @@ -101,6 +117,12 @@ public enum PropertyUnit [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Hz")] MHz, + /// + /// Megatransfers per second + /// + [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Hz")] + MTs, + /// /// Nanoseconds /// @@ -139,6 +161,11 @@ public enum PropertyUnit /// Watts. /// [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "W")] - W + W, + + /// + /// Variable unit, will depend on the version of the implemented structure, please see the documentation of the property to know the correct unit. + /// + Variable } } diff --git a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware/iTin.Core.Hardware.csproj b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware/iTin.Core.Hardware.csproj index 6e40ee1..be9ca7e 100644 --- a/src/lib/iTin.Core.Hardware/iTin.Core.Hardware/iTin.Core.Hardware.csproj +++ b/src/lib/iTin.Core.Hardware/iTin.Core.Hardware/iTin.Core.Hardware.csproj @@ -8,6 +8,8 @@ Hardware Interop Calls MIT true + 1.0.1 + Copyright Β© 2020 diff --git a/src/lib/iTin.Core/iTin.Core/ComponentModel/ByteReader.cs b/src/lib/iTin.Core/iTin.Core/ComponentModel/ByteReader.cs new file mode 100644 index 0000000..2d745f5 --- /dev/null +++ b/src/lib/iTin.Core/iTin.Core/ComponentModel/ByteReader.cs @@ -0,0 +1,122 @@ + +namespace iTin.Core.ComponentModel +{ + using System.Collections.ObjectModel; + using System.Linq; + + /// + /// Class + /// + public class ByteReader + { + #region constructor/s + + #region [private] ByteReader(): Initializes a new instance of the class + /// + /// Initializes a new instance of the class. + /// + private ByteReader(byte[] data) => Data = data; + #endregion + + #endregion + + #region public properties + + #region [public] (byte[]) Data: Gets + public byte[] Data { get; } + #endregion + + #endregion + + #region public static methods + + #region [public] {static} (ByteReader) FromByteArray(byte[]): + public static ByteReader FromByteArray(byte[] data) => new ByteReader(data); + #endregion + + #endregion + + #region public methods + + #region [public] (byte) GetByte(byte): Returns the stored value from the specified byte + /// + /// Returns the stored value from the specified byte. + /// + /// target byte + /// + /// The value stored in the indicated byte. + /// + public byte GetByte(byte offset) => Data[offset]; + #endregion + + #region [public] (byte[]) GetBytes(byte, byte): Returns the stored array from start with specified lenght + /// + /// Returns the stored array from start with specified lenght. + /// + /// start byte + /// lenght + /// + /// The array value stored. + /// + public byte[] GetBytes(byte start, byte lenght) + { + var bytes = new Collection(); + for (byte i = start; i <= lenght; i++) + { + bytes.Add(Data[i]); + } + + return (byte[])bytes.ToArray().Clone(); + } + #endregion + + #region [public] (uint) GetDoubleWord(byte): Returns the stored value from the specified byte + /// + /// Returns the stored value from the specified byte. + /// + /// start byte + /// + /// The value stored in the indicated byte. + /// + public uint GetDoubleWord(byte offset) => (uint)Data.GetDoubleWord(offset); + #endregion + + #region [public] (ulong) GetQuadrupleWord(byte): Returns the stored value from the specified byte + /// + /// Returns the stored value from the specified byte. + /// + /// start byte + /// + /// The value stored in the indicated byte. + /// + public ulong GetQuadrupleWord(byte offset) => (ulong)Data.GetQuadrupleWord(offset); + #endregion + + #region [public] (ushort) GetWord(byte): Returns the stored value from the specified byte + /// + /// Returns the stored value from the specified byte. + /// + /// start byte + /// + /// The value stored in the indicated byte. + /// + public ushort GetWord(byte offset) => (ushort)Data.GetWord(offset); + #endregion + + #endregion + + #region public override methods + + #region [public] {override} (string) ToString(): Returns a string that represents this instance + /// + /// Returns a that represents this instance. + /// + /// + /// A that represents this instance. + /// + public override string ToString() => $"Length = {Data.Length}"; + #endregion + + #endregion + } +} diff --git a/src/lib/iTin.Core/iTin.Core/ComponentModel/Messages.cs b/src/lib/iTin.Core/iTin.Core/ComponentModel/Messages.cs index f45d4f7..ccde9cf 100644 --- a/src/lib/iTin.Core/iTin.Core/ComponentModel/Messages.cs +++ b/src/lib/iTin.Core/iTin.Core/ComponentModel/Messages.cs @@ -10,17 +10,14 @@ namespace iTin.Core.ComponentModel public class Messages { #region private readonly members - private readonly List msgs; + private readonly List _msgs; #endregion #region constructor/s /// /// Initializes a new instance of the class. /// - public Messages() - { - msgs = new List(); - } + public Messages() => _msgs = new List(); #endregion #region public methods @@ -28,37 +25,25 @@ public Messages() /// Adds the specified message. /// /// The message. - public void Add(string message) - { - msgs.Add(message); - } + public void Add(string message) => _msgs.Add(message); /// /// Adds the specified messages. /// /// The messages. - public void Add(Messages messages) - { - msgs.AddRange(messages.GetMessages()); - } + public void Add(Messages messages) => _msgs.AddRange(messages.GetMessages()); /// /// Counts this instance. /// /// System.Int32. - public int Count() - { - return msgs.Count; - } + public int Count() => _msgs.Count; /// /// Gets the messages. /// /// IEnumerable<System.String>. - public IEnumerable GetMessages() - { - return msgs; - } + public IEnumerable GetMessages() => _msgs; /// /// To the HTML. @@ -66,9 +51,9 @@ public IEnumerable GetMessages() /// System.String. public string ToHtml() { - StringBuilder sb = new StringBuilder(); + var sb = new StringBuilder(); sb.AppendLine("
    "); - msgs.ForEach(it => sb.Append("
  • ").Append(it).Append("
  • ")); + _msgs.ForEach(it => sb.Append("
  • ").Append(it).Append("
  • ")); sb.AppendLine("
"); return sb.ToString(); } @@ -80,9 +65,9 @@ public string ToHtml() /// System.String. public string ToHtml(string ccsClass) { - StringBuilder sb = new StringBuilder(); + var sb = new StringBuilder(); sb.AppendLine("
    "); - msgs.ForEach(it => sb.Append("
  • ").Append(it).Append("
  • ")); + _msgs.ForEach(it => sb.Append("
  • ").Append(it).Append("
  • ")); sb.AppendLine("
"); return sb.ToString(); } diff --git a/src/lib/iTin.Core/iTin.Core/Extensions/ByteArrayExtensions.cs b/src/lib/iTin.Core/iTin.Core/Extensions/ByteArrayExtensions.cs index 2a31b90..453823a 100644 --- a/src/lib/iTin.Core/iTin.Core/Extensions/ByteArrayExtensions.cs +++ b/src/lib/iTin.Core/iTin.Core/Extensions/ByteArrayExtensions.cs @@ -47,7 +47,7 @@ public static int GetDoubleWord(this byte[] data, byte start) } #endregion - #region [public] {static} (long) GetQuadrupleWord(this byte[], byte): Returns a quadriple Word from this array of bytes starting in start + #region [public] {static} (ulong) GetQuadrupleWord(this byte[], byte): Returns a quadriple Word from this array of bytes starting in start /// /// Returns a Quadriple Word from this array of bytes starting in . /// diff --git a/src/lib/iTin.Core/iTin.Core/Extensions/StringExtensions.cs b/src/lib/iTin.Core/iTin.Core/Extensions/StringExtensions.cs index 07080a8..89544e8 100644 --- a/src/lib/iTin.Core/iTin.Core/Extensions/StringExtensions.cs +++ b/src/lib/iTin.Core/iTin.Core/Extensions/StringExtensions.cs @@ -1,6 +1,8 @@  namespace iTin.Core { + using System.Security; + /// /// Static class than contains extension methods for objects of type . /// @@ -48,5 +50,23 @@ public static string Mid(this string str, int start, int length) { return string.IsNullOrEmpty(str) ? str : str.Substring(start, length); } - } + + /// + /// Converts a string into a "SecureString" + /// + /// Input String + /// + /// A secure string instance + /// + public static SecureString ToSecureString(this string text) + { + SecureString secureString = new SecureString(); + foreach (var c in text) + { + secureString.AppendChar(c); + } + + return secureString; + } + } } diff --git a/src/lib/iTin.Core/iTin.Core/Extensions/UInt16Extensions.cs b/src/lib/iTin.Core/iTin.Core/Extensions/UInt16Extensions.cs new file mode 100644 index 0000000..b3c7de0 --- /dev/null +++ b/src/lib/iTin.Core/iTin.Core/Extensions/UInt16Extensions.cs @@ -0,0 +1,128 @@ + +namespace iTin.Core +{ + using System; + + using Helpers; + using Helpers.Enumerations; + + /// + /// Static class than contains extension methods for structure . + /// + public static class UInt16Extensions + { + #region [public] {static} (bool) CheckBit(this ushort, Bits): Returns a value indicating whether the specified bit is enabled + /// + /// Returns a value indicating whether the specified bit is enabled. + /// + /// Reference value. + /// Bit to check. + /// + /// true if specified is enabled; otherwise, false. + /// + public static bool CheckBit(this ushort value, Bits bit) + { + SentinelHelper.IsEnumValid(bit); + SentinelHelper.IsTrue((byte) bit > 31); + + return value.CheckBit((byte) bit); + } + #endregion + + #region [public] {static} (bool) CheckBit(this ushort, byte): Returns a value indicating whether the specified bit is enabled + /// + /// Returns a value indicating whether the specified bit is enabled. + /// + /// Reference value. + /// Bit to check. + /// + /// true if bit specified in parameter is enabled; otherwise, false. + /// + public static bool CheckBit(this ushort value, byte bit) + { + SentinelHelper.IsTrue(bit > 31); + + return (value & (1 << bit)) == 1 << bit; + } + #endregion + + + #region [public] {static} (byte) GetBit(this ushort, Bits): Returns the current state of the specified bit + /// + /// Returns the current state of the specified bit. + /// + /// Reference value. + /// Bit to check. + /// + /// Returns 1 if specified bit is active; otherwise 0. + /// + public static byte GetBit(this ushort value, Bits bit) + { + SentinelHelper.IsEnumValid(bit); + SentinelHelper.IsTrue((byte)bit > 31); + + return value.GetBit((byte)bit); + } + #endregion + + #region [public] {static} (byte) GetBit(this ushort, byte): Returns the current state of the specified bit + /// + /// Returns the current state of the specified bit. + /// + /// Reference value. + /// Bit to check. + /// + /// Returns 1 if specified bit is active; otherwise 0. + /// + public static byte GetBit(this ushort value, byte bit) + { + SentinelHelper.IsTrue(bit > 31); + + return (value & bit) == bit ? (byte)1 :(byte)0; + } + #endregion + + + #region [public] {static} (byte) GetByte(this ushort, Bytes): Returns the specified byte + /// + /// Returns the specified byte. + /// + /// Reference value. + /// Byte to retrieve. + /// + public static byte GetByte(this ushort value, Bytes onebyte) + { + SentinelHelper.IsEnumValid(onebyte); + + return value.GetByte((byte) onebyte); + } + #endregion + + #region [public] {static} (byte) GetByte(this ushort, byte): Returns the specified byte + /// + /// Returns the specified byte. + /// + /// Reference value. + /// Byte to retrieve. + /// + public static byte GetByte(this ushort value, byte onebyte) + { + SentinelHelper.IsTrue(onebyte > 3); + + return value.ToArray()[onebyte]; + } + #endregion + + + #region [public] {static} (byte[]) ToArray(this ushort): Returns reference value splitted into bytes as a 2 byte array + /// + /// Returns reference value splitted into bytes as a 2 byte array + /// + /// Reference value. + /// + /// A byte that contains the result. + /// + public static byte[] ToArray(this ushort value) => BitConverter.GetBytes(value); + #endregion + } +} diff --git a/src/lib/iTin.Core/iTin.Core/Helpers/WmiHelper.cs b/src/lib/iTin.Core/iTin.Core/Helpers/WmiHelper.cs index 2f8b089..70df9b5 100644 --- a/src/lib/iTin.Core/iTin.Core/Helpers/WmiHelper.cs +++ b/src/lib/iTin.Core/iTin.Core/Helpers/WmiHelper.cs @@ -18,9 +18,9 @@ public static class WmiHelper /// public static DateTime WmiDateToDateTime(string date) { - if (date == null) + if (string.IsNullOrEmpty(date)) { - throw new ArgumentNullException(date); + throw new ArgumentNullException(nameof(date)); } var year = int.Parse(date.Mid(0, 4), CultureInfo.InvariantCulture); diff --git a/src/lib/iTin.Core/iTin.Core/iTin.Core.csproj b/src/lib/iTin.Core/iTin.Core/iTin.Core.csproj index 666d725..3c67311 100644 --- a/src/lib/iTin.Core/iTin.Core/iTin.Core.csproj +++ b/src/lib/iTin.Core/iTin.Core/iTin.Core.csproj @@ -4,9 +4,9 @@ net35;netstandard2.0;netcoreapp2.0;netcoreapp2.1 true key.snk - 1.0.0 + 1.0.2 Base library containing various extensions, helpers, common constants - Copyright © 2019 + Copyright © 2020 MIT iTin.Core diff --git a/src/lib/iTin.Core/iTin.Core/iTin.Core/iTin.Core/iTin.Core.xml b/src/lib/iTin.Core/iTin.Core/iTin.Core/iTin.Core/iTin.Core.xml deleted file mode 100644 index 4d0acf7..0000000 --- a/src/lib/iTin.Core/iTin.Core/iTin.Core/iTin.Core/iTin.Core.xml +++ /dev/null @@ -1,1627 +0,0 @@ - - - - iTin.Core - - - - - Especialización de la clase que define una colección de claves de - y valores de asociados a los que se puede obtener acceso con la clave o con el índice. - - - - - - Initialize a new instance of the class. - - - - - - Initialize a new instance of the class. - - Object that contains the information needed to serialize the new instance of class. - Object that contains the origin and destination of the serialized sequence associated with the new instance . - - - - Inicializa una nueva instancia de la clase que es serializable y usa las clases y especificadas. - - - Obtiene el par clave-valor usando el indice. - - - Objeto que contiene el par clave-valor. - - - - - Obtiene o establece el asociado con la clave especificada. - - - Objeto asociado con la clave especificada. - - - - - Obtiene un array de string que contiene todas las claves de la colección. - - - de que contiene todas las claves de la colección. - - - - - Obtiene un array de string que contiene todas los valores de la colección. - - - Tipo: - de que contiene todas los valores de la colección. - - - - - Obtiene un valor que indica si la colección contiene no nulas. - - true if this instance has keys; otherwise, false. - - - - Obtiene un array que contiene todos los valores de la colección. - - - que contiene todos los valores de la colección. - - - - - Añadir una entrada a la colección. - - Clave. - Valor. - - - - Borrar todos los elementos de la colección. - - - - - Eliminar de la colección la entrada con el índice especificado. - - Índice de la entrada. - - - - Eliminar de la colección la entrada con la clave especificada. - - Clave. - - - - Borrar todos los elementos de la colección. - - - - - Convertir colección a ArrayList. - - - - - - Determina si la clave especificada existe. - - Clave a comprobar. - - true si la clave especificada existe; false en caso contrario. - - - - - Devuelve una cadena que representa la clase actual. - - - Tipo: - Una cadena que representa la clase actual. - - - El método devuelve una cadena con el total de - valores en la colección. - - - - - Class Error. - - - - - Initializes a new instance of the class. - - The type. - The code. - - - - Initializes a new instance of the class. - - The type. - The code. - The arguments. - - - - Initializes a new instance of the class. - - The message. - - - - Gets or sets the type. - - The type. - - - - Gets or sets the code. - - The code. - - - - Gets or sets the message. - - The message. - - - - Class Messages. - - - - - Initializes a new instance of the class. - - - - - Adds the specified message. - - The message. - - - - Adds the specified messages. - - The messages. - - - - Counts this instance. - - System.Int32. - - - - Gets the messages. - - IEnumerable<System.String>. - - - - To the HTML. - - System.String. - - - - To the HTML. - - The class. - System.String. - - - - Class Exception. - - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The code. - - - - Initializes a new instance of the class. - - The resource file. - The resource key. - - - - Gets or sets the resource key. - - The resource key. - - - - Gets or sets the resource file. - - The resource file. - - - - Obtiene un mensaje que describe la excepción actual. - - The message. - - - - Gets the message. - - System.String. - - - - Gets the message. - - The language. - System.String. - - - - Class NotAllowedException. - - - - - - Initializes a new instance of the class. - - The resource key. - - - - Initializes a new instance of the class. - - - - - Class ValidationException. - - - - - - Error list. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The resource file. - - - - Initializes a new instance of the class. - - The resource file. - The resource key. - - - - Returns the list of Errors as an string with line breaks - - - - - Returns the list of Errors as an HTML to display on a website - - - - - Adds the error. - - The resource key. - ValidationException. - - - - Adds the error. - - The resource file. - The resource key. - ValidationException. - - - - Adds the error formatted. - - The resource key. - The arguments. - ValidationException. - - - - Adds the message. - - The message. - ValidationException. - - - - Clears this instance. - - ValidationException. - - - - Returns the list of Errors as an Messages object - - - - - Static class than contains extension methods for objects of type . - - - - - Returns a byte array as a result of extracting n bytes of the specified array from a position. - - Target data. - Start byte - Lenght to extract - - A that contains the result. - - - - - Gets a Double Word from this array of bytes. - - Target data. - Start byte. - - A containing the value. - - - - - Returns a Quadriple Word from this array of bytes starting in . - - Target data. - Start byte. - - A containing the value. - - - - - Gets a Word from this array of bytes. ( { a, b, n, n + 1, ...}, n ) => (n + 1, n) - - Target data. - Start byte. - - A containing the value. - - - - - Returns an array of bytes by exchanging bytes. - - Byte to analyze. - - A byte that contains the result. - - - - - Static class than contains extension methods for structure . - - - - - Returns a value indicating whether the specified bit is enabled. - - Reference value. - Bit to check. - - true if specified is enabled; otherwise, false. - - - - - Returns a value indicating whether the specified bit is enabled. - - Reference value. - Bit to check. - - true if bit specified in parameter is enabled; otherwise, false. - - - - - Returns the current state of the specified bit. - - Reference value. - Bit to check. - - Returns 1 if specified bit is active; otherwise 0. - - - - - Returns the current state of the specified bit. - - Reference value. - Bit to check. - - Returns 1 if specified bit is active; otherwise 0. - - - - - Returns reference value splitted into bytes as a 2 byte array - - Reference value. - - A byte that contains the result. - - - - - Returns an array of bytes that contains the nibbles of this . - - Byte to analyze. - - A byte that contains the result. - - - - - Static class than contains extension methods for structure . - - - - - Returns a value indicating whether the specified bit is enabled. - - Reference value. - Bit to check. - - true if specified is enabled; otherwise, false. - - - - - Returns a value indicating whether the specified bit is enabled. - - Reference value. - Bit to check. - - true if bit specified in parameter is enabled; otherwise, false. - - - - - Returns the current state of the specified bit. - - Reference value. - Bit to check. - - Returns 1 if specified bit is active; otherwise 0. - - - - - Returns the current state of the specified bit. - - Reference value. - Bit to check. - - Returns 1 if specified bit is active; otherwise 0. - - - - - Returns the specified byte. - - Reference value. - Byte to retrieve. - - - - - Returns the specified byte. - - Reference value. - Byte to retrieve. - - - - - Returns reference value splitted into bytes as a 2 byte array - - Reference value. - - A byte that contains the result. - - - - - Static class than contains extension methods for structure . - - - - - Returns a value indicating whether the specified bit is enabled. - - Reference value. - Bit to check. - - true if specified is enabled; otherwise, false. - - - - - Returns a value indicating whether the specified bit is enabled. - - Reference value. - Bit to check. - - true if bit specified in parameter is enabled; otherwise, false. - - - - - Returns the current state of the specified bit. - - Reference value. - Bit to retrieve. - - Returns 1 if specified bit is active; otherwise 0. - - - - - Returns the current state of the specified bit. - - Reference value. - Bit to check. - - Returns 1 if specified bit is active; otherwise 0. - - - - - Returns the specified byte. - - Reference value. - Byte to retrieve. - - A that contains the result. - - - - - Returns the specified byte. - - Reference value. - Byte to retrieve. - - A that contains the result. - - - - - Returns reference value splitted into bytes as a 16 byte array - - Reference value. - - A byte that contains the result. - - - - - Static class than contains extension methods for type. - - - - - Static class than contains extension methods for generic List. - - - - - Moves specified item to new position - - Target list - Item to move - New position into list - Element type - - Returns the same list with item in new position - - - - - Returns the next item on the list from the specified current - Will return null if the current is the last - - - - - - - - - Returns the previous item on the list from the specified current - Will return null if the current is the first - - - - - - - - - Returns the next item on the list from the specified current - Will return null if the current is the last - - - - - - - - - Returns the previous item on the list from the specified current - Will return null if the current is the first - - - - - - - - - Returns a valid index to use in this List. - - Type element - Target list - Reference index - - A valid index. - - - - - Determines if specified value is a valid index in list - - Type element - Target list - Value to test - - true if is a valid index; otherwise false. - - - - - Try returns item in specified index. If index is not valid value is null (Nothing in Visual Basic) - - Type element - Target list - Reference index - Item - - - - - Static class than contains extension methods for objects of type . - - - - - Gets a Double Word from this array of bytes. - - Target data. - Start byte. - - A containing the value. - - - - - Returns a Quadriple Word from this array of bytes starting in . - - Target data. - Start byte. - - A containing the value. - - - - - Gets a Word from this array of bytes. ( { a, b, n, n + 1, ...}, n ) => (n + 1, n) - - Target data. - Start byte. - - A containing the value. - - - - - Returns a byte array as a result of extracting n bytes of the specified array from a position. - - Target data. - Start byte - Lenght to extract - - A that contains the result. - - - - - Static class than contains extension methods for objects of type . - - - - - Devuelve una cadena que contiene un número especificado de caracteres a partir del lado izquierdo de una cadena. - - Expresión de tipo de la que se devuelven los caracteres que estÑn mÑs a la izquierda. - Expresión númerica de tipo que indica cuÑntos caracteres se van a devolver. - - Tipo: - con el resultado. - - - - - Devuelve una cadena que contiene un número especificado de caracteres a partir del lado derecho de una cadena. - - Expresión de tipo de la que se devuelven los caracteres que estÑn mÑs a la derecha. - Expresión númerica de tipo que indica cuÑntos caracteres se van a devolver. - - Tipo: - con el resultado. - - - - - Devuelve una cadena que contiene un número especificado de caracteres a partir de la posición especificada. - - Nombre de la variable que se va a modificar. - Posición del carÑcter donde se inicia la extracción. - Número de caracteres que se van a extraer. - - Tipo: - con el resultado. - - - - - Static class than contains extension methods for structure . - - - - - Returns a value indicating whether the specified bit is enabled. - - Reference value. - Bit to check. - - true if specified is enabled; otherwise, false. - - - - - Returns a value indicating whether the specified bit is enabled. - - Reference value. - Bit to check. - - true if bit specified in parameter is enabled; otherwise, false. - - - - - Returns the current state of the specified bit. - - Reference value. - Bit to check. - - Returns 1 if specified bit is active; otherwise 0. - - - - - Returns the current state of the specified bit. - - Reference value. - Bit to check. - - Returns 1 if specified bit is active; otherwise 0. - - - - - Returns the specified byte. - - Reference value. - Byte to retrieve. - - - - - Returns the specified byte. - - Reference value. - Byte to retrieve. - - - - - Returns reference value splitted into bytes as a 2 byte array - - Reference value. - - A byte that contains the result. - - - - - Static class than contains extension methods for structure . - - - - - Returns a value indicating whether the specified bit is enabled. - - Reference value. - Bit to check. - - true if specified is enabled; otherwise, false. - - - - - Returns a value indicating whether the specified bit is enabled. - - Reference value. - Bit to check. - - true if bit specified in parameter is enabled; otherwise, false. - - - - - Returns the current state of the specified bit. - - Reference value. - Bit to retrieve. - - Returns 1 if specified bit is active; otherwise 0. - - - - - Returns the current state of the specified bit. - - Reference value. - Bit to check. - - Returns 1 if specified bit is active; otherwise 0. - - - - - Returns the specified byte. - - Reference value. - Byte to retrieve. - - A that contains the result. - - - - - Returns the specified byte. - - Reference value. - Byte to retrieve. - - A that contains the result. - - - - - Returns reference value splitted into bytes as a 8 byte array - - Reference value. - - A byte that contains the result. - - - - - Bits enumeration - - - - bit 0 - - - bit 1 - - - bit 2 - - - bit 3 - - - bit 4 - - - bit 5 - - - bit 6 - - - bit 7 - - - bit 8 - - - bit 9 - - - bit 10 - - - bit 11 - - - bit 12 - - - bit 13 - - - bit 14 - - - bit 15 - - - bit 16 - - - bit 17 - - - bit 18 - - - bit 19 - - - bit 20 - - - bit 21 - - - bit 22 - - - bit 23 - - - bit 24 - - - bit 25 - - - bit 26 - - - bit 27 - - - bit 28 - - - bit 29 - - - bit 30 - - - bit 31 - - - bit 32 - - - bit 33 - - - bit 34 - - - bit 35 - - - bit 36 - - - bit 37 - - - bit 38 - - - bit 39 - - - bit 40 - - - bit 41 - - - bit 42 - - - bit 43 - - - bit 44 - - - bit 45 - - - bit 46 - - - bit 47 - - - bit 48 - - - bit 49 - - - bit 50 - - - bit 51 - - - bit 52 - - - bit 53 - - - bit 54 - - - bit 55 - - - bit 56 - - - bit 57 - - - bit 58 - - - bit 59 - - - bit 60 - - - bit 61 - - - bit 62 - - - bit 63 - - - - Bytes enumeration - - - - byte 0 - - - byte 1 - - - byte 2 - - - byte 3 - - - byte 4 - - - byte 5 - - - byte 6 - - - byte 7 - - - byte 8 - - - byte 9 - - - byte 10 - - - byte 11 - - - byte 12 - - - byte 13 - - - byte 14 - - - byte 15 - - - - Word enumeration - - - - word 0 - - - word 1 - - - word 2 - - - word 3 - - - word 4 - - - word 5 - - - word 6 - - - word 7 - - - - La clase estÑtica Logical proporciona métodos estÑticos y expresiones Lambda para manipular expresiones lógicas. - - - - - Obtiene un valor Word a partir de dos bytes de referencia. (a, b) => (b, a). - - - - - Obtiene un valor Word a partir de la posición indicada en el array. { (a, b, n, n + 1,...), n } => (n + 1, n). - - A word. - - - - Obtiene un valor DoubleWord a partir de la posición indicada en el array. - - A word. - - - - Obtiene un valor QuadripleWord a partir de la posición indicada en el array. - - A word. - - - - Devuelve array con 7 words. - - MÑscara. - - - - - Devuelve array con 7 words donde 4 últimos a 0. - - MÑscara. - - - - - Devuelve el word seleccionado. - - MÑscara. - word a devolver. - - - - - Devuelve el word seleccionado. - - MÑscara. - word a devolver. - - - - - Devuelve array con 16 bytes. - - MÑscara. - - - - - Devuelve array con 14 bytes, 7 últimos a 0. - - MÑscara. - - - - - Devuelve el byte seleccionado. - - MÑscara. - Byte a devolver. - - - - - Devuelve el byte seleccionado. - - MÑscara. - Byte a devolver. - - - - - Convertir int en string. - - Valor a convertir. - - - - - Convertir byte en string - - Valor a convertir. - - - - - Obtiene el estado de un bit. - - MÑscara. - bit a devolver. - - - - - Obtiene el estado de un bit. - - MÑscara. - bit a devolver. - - - - - Obtiene el estado de un bit. - - MÑscara. - bit a devolver. - - - - - Devuelve el estado del bit seleccionado. - - MÑscara. - bit a devolver. - - - - - Devuelve el estado del bit seleccionado. - - MÑscara. - bit a comprobar. - - - - - Obtiene un valor que indica si el bit indicado estÑ activado. - - - - - Static class than contains methods for perform tests and validate data types and parameters. - - - - - Performs a test on the method argument, and throws an exception of type if is null. - - Type of the argument to be checked - Argument value. - - - - Performs a test on the method argument, and throws an exception of type with specified error message if is null. - - Type of the argument to be checked - Argument value. - Error message. - If is null. - - - - Performs a test on the method argument, and throws an exception of type if less than the specified threshold. - - Type of the argument to be checked. - Parameter name. - Argument value. - Threshold value. - If is less than the specified threshold. - - The value of the must be greater or equal to the threshold indicated. - - - - - Performs a test on the method argument, and throws an exception of type if greater than the specified threshold. - - Type of the argument to be checked. - Parameter name. - Argument value. - Threshold value. - If is greater than the specified threshold. - - The argument value must be less than or equal to the specified threshold. - - - - - Performs a test on the method argument, and throws an exception of type - if is over the maximum specified, or is less than the specified minimum value. - - Type of the argument to be checked. - Parameter name. - Argument value. - Value Minimum permitted. - Value Maximum permitted. - If is over the maximum specified, or is less than the specified minimum value. - - - - Performs a test on the method argument, and throws an exception of type - if is over the maximum specified, or is less than the specified minimum value. - - Type of the argument to be checked. - Parameter name. - Argument value. - Value Minimum permitted. - Value Maximum permitted. - Error message. - If is over the maximum specified, or is less than the specified minimum value. - - - - Performs a test on the method argument. - - Type of the argument to be checked. - Check value - - true if is a valid enum; otherwise, false. - - If isn't an enumerated type. - If not part of the enumeration. - - - - Performs a test on the method argument, if is false throws an exception of type if the specified value doesn't belong to enumeration. - - Type of the argument to be checked. - Check value - true for performs only a test. - - true if is a valid enum; otherwise, false. - - If isn't an enumerated type. - If not part of the enumeration. - - - - Performs a test on the method argument, and throws an exception of type if the specified expression is false. - - Expression to evaluate. - If the result is false - - - - Performs a test on the method argument, and throws an exception of type if the specified expression is false. - - Expression to evaluate. - Error message. - If the result is false - - - - Performs a test on the method argument, and throws an specified exception if the specified expression is false. - - Expression to evaluate. - Error message. - If the is null. - - - - Performs a test on the method argument, and throws an exception of type if the specified expression is true. - - Expression to evaluate. - If the result is true - - - - Performs a test on the method argument, and throws an exception of type if the specified expression is true. - - Expression to evaluate. - Error message. - If the result is true - - - - Performs a test on the method argument, and throws an specified exception if the specified expression is true. - - Expression to evaluate. - Error message. - If the is null. - - - - Performs a test on the method argument, and throws an exception of type ArgumentException if the specified value is empty. - - The value. - Name of the parameter. - System.String. - - - - - Performs a test on the method argument, if not null is returned, otherwise throws an type. - - Type of the argument to be checked - Argument value. - - Original object. - - - - - WMI helper methods - - - - - Converts WMI date format into . - - WMI date format. - - A equivalent. - - - - - Clase de recurso fuertemente tipado, para buscar cadenas traducidas, etc. - - - - - Devuelve la instancia de ResourceManager almacenada en caché utilizada por esta clase. - - - - - Reemplaza la propiedad CurrentUICulture del subproceso actual para todas las - búsquedas de recursos mediante esta clase de recurso fuertemente tipado. - - - - - Busca una cadena traducida similar a T must be an enumerated type. - - - - - Busca una cadena traducida similar a The value of argument 'value' ({0}) is invalid for Enum type '{1}. - - - - - Busca una cadena traducida similar a Error desconocido. - - - - - Clase de recurso fuertemente tipado, para buscar cadenas traducidas, etc. - - - - - Devuelve la instancia de ResourceManager almacenada en caché utilizada por esta clase. - - - - - Reemplaza la propiedad CurrentUICulture del subproceso actual para todas las - búsquedas de recursos mediante esta clase de recurso fuertemente tipado. - - - - - Busca una cadena traducida similar a No estÑ permitido eliminar el elemento. - - - - - Busca una cadena traducida similar a No estÑ permitido modificar el elemento. - - - - - Busca una cadena traducida similar a Operación no permitida. - - - -