Files
sheq-analysis-tool/__pycache__/report_builder.cpython-314.pyc
T

246 lines
59 KiB
Plaintext
Raw Normal View History

2026-04-20 15:23:18 +12:00
+
2!×iÃãó¢Rt^RIHt^RIt^RIt^RIHt^RIHt^RIt ^RI
H t ^RI H
t
^RIHt^RIHt^R IHt^R
IHtHtHtHt^R IHt^R IHtHtHtHtH t H!t!H"t"]PF!]$4t%]!^ ^2^T4t&]!^^µ^ê4t']!^^n^G4t(]!^d^t^4t)]!^Ü^&^&4t*R
Rlt+R^ ]&R3RRllt,RRlt-RR^ ]&3RRllt.R@RRllt/R]'3RRllt0RARRllt1RBRRllt2RCR R!llt3R"R#lt4R$R%lt5R&R'lt6R(R)lt7R*R+lt8R,R-lt9R.R/lt:R0R1lt;R2R3lt<R4R5lt=R6R7lt>R8R9lt?R:R;lt@R<R=ltAR>R?ltBR#)Dug
report_builder.py — DOCX report generation for the SHEQ Analysis Tool.
Takes an AnalysisResults object from analysis_engine and produces a
fully-formatted DOCX report following the Ventia brand guidelines in
DESIGN.md.
Public API
----------
build_report(results: AnalysisResults, output_dir: str) -> str
Returns the path to the generated .docx file.
)Ú annotationsN)Údatetime)ÚAny)ÚDocument)ÚWD_TABLE_ALIGNMENT)ÚWD_ALIGN_PARAGRAPH)Ú parse_xml)Únsdecls)ÚCmÚInchesÚPtÚRGBColor)ÚAnalysisResults)ÚCONSEQUENCE_ORDERÚ DEEP_BLUEÚSKY_BLUEÚ
DARK_GREENÚMUTEDÚAMBERÚREDcó V^8„dQhRRRR/#)éÚ hex_colorÚstrÚreturnÚNone©)Úformatsreport_builder.pyÚ __annotate__r2s÷+˜+ dñcóŽ\R\R4 RV R24pVPP4P V4R#)z&Apply background fill to a table cell.z<w:shd Úwz w:fill="z" w:val="clear"/>N)rr Ú_tcÚget_or_add_tcPrÚappend)ÚcellrÚshds&& rÚ_shadingr(2s@ä
Ø
”'˜#“,˜¨ Ð3DÐ €Cð ‡HÑÓ×% *r Fc ó0V^8„dQhRRRRRRRRR RR
R /#) rÚtextrÚboldÚboolÚsize_ptÚintÚcolourr
Úitalicrrr)rs"rrr:s9÷  & & ð &°sð ð &Ø*.ð &Ø;?ñ &r có^VPV4pW&nWVn\V4VPn\
V\4'd5\P!VPRR4P44pWFPPn
RVPnR#)ÚúSource Sans ProN)Úadd_runr+r0r ÚfontÚsizeÚ
isinstancerr
Ú from_stringÚreplaceÚupperÚcolorÚrgbÚname)Úparar*r+r-r/r0Úruns&&&&&& rÚ_runrA:ssà
,‰,
€CØ„HØ„JÜw“K€C‡HH„MÜ&œ#×ÒÜ×% f§n¡n°S¸"Ó&=×&CÑ&CÓ&EÓFˆØ‡HH‡NØ%€C‡HH†Mr có(V^8„dQhRRRRRRRR/#) rÚdocrr*rÚlevelr.rrr)rs"rrrFs(÷'' '¨cð'°dñ'r có*VPWR7R#))rDN)Ú add_heading)rCr*rDs&&&rÚ_headingrGFs؇OOD€OÖ&r r3c ó0V^8„dQhRRRRRRRRR R
R R /#)
rrCrr*rr+r,r-r.r/r
rrr)rs"rrrJs9÷=ˆxð=˜sð=¨tðð=Ø%-ð=Ø9=ñ=r cóBVP4p\WQW#VR7R#)©r+r-r/N)Ú
add_paragraphrA)rCr*r+r-r/Úps&&&&& rÚ_pararMJsà ×ÑÓ€A܈t°V×<r có(V^8„dQhRRRRRRRR/#) rrCrr*rr-r.rrr)rs"rrrPs(÷0ðð0¨sð0¸0r cóNVPRR7p\W1V\R7R#)z List Bullet)Ústyle©r-r/N)rKrAÚNAVY)rCr*r-rLs&&& rÚ_bulletrSPs!Ø ×Ñ 
ÐÓ.€A܈˜'¬$×/r Úf0f5fac ó0V^8„dQhRRRRRRRRRRR R
/#) rrCrÚtitlerr*ÚfillÚaccentr
rrr)rs"rrrUs9÷  , , 3ð ,¨cð ð ,Ø+3ð ,Ø?Cñ ,r có4VP^^R7p\PVnRVnVP ^^4p\
Wc4RVnVP^,p\WqR^ VR7VP4p\W^
\R7R#)é©ÚrowsÚcolsú
Table Gridr3TrJrQN) Ú add_tablerÚLEFTÚ alignmentrPr&r(r*Ú
paragraphsrArKrR) rCrVr*rWrXÚtabler&Úp1Úp2s &&&&& rÚ_calloutrfUs}à M‰M˜q qˆ )€EÜ-€E„OØ€E„KØ :‰:Ó €DÜ ˆTÔØ€D„IØ
˜Õ €B܈˜ r°&Õ
× Ñ Ó €B܈˜2¤d×+r c
ó,V^8„dQhRRRRRRRRR R
/#) rrCrÚcardszlist[tuple[str, str]]r]r.rWrrrr)rs"rrrcs3÷ñÐ(=ðØðØ'*ðØ:>ñr c
ó”V'gR#\V4V,^,
V,pVPWBR7p\PVnRVn^p\
V4p\
V4pVPWx4p RV n\Y^,^8XdTMR4V\V48d~W,wr«V P^,p \WÊR^\R7\PV nV P4p
\WÛR^\ R7\PV
nV^,
p  R#)Nr[r^r3ÚffffffFrJT)Úlenr_rr`rarPÚranger&r*r(rbrAÚGREYrÚCENTERrKrR)rCrhr]rWr\rcÚidxÚcr&rVÚvaluerdres&&&& rÚ
_metric_cardsrscç ÙÜ ‹J˜Õ  Õ ! dÕ *€DØ M‰M˜tˆ /€EÜ-€E„OØ€E„KØ
€CÜ
4Ž[ˆÜt–ˆAØ—:‘:˜aÓ#ˆD؈DŒIÜ ¥7¨a¤<™4°XÔ ”S˜“ZÔØ$z Ø—__ 'ÜR U°A¼dÕ1×8 Ø×)ÜR T°2¼dÕ1×8 Ø 1HŠCóór có4V^8„dQhRRRRRRRRR R
R R
R R
/#)rrCrÚheadersz list[str]r\zlist[list[str]]Ú
col_widthsz list[float]Ú header_fillrÚalt_fillrrr)rs"rrr|sN÷))ð)
ð) ð)ð )
ð ) ð
)
ñ)0r có®VP^\V4,\V4R7p\PVnRVn\
V4wrxVP^,PV,p RV n V P^,p
V
PV4p RV n \^ 4V Pn\!^ÿ^ÿ^ÿ4V PP"nRV Pn\)W”4 \
V4wrÍ\
V
4wrïVPV ^,,PV,p RV n V P^,p
T
PVe \+V4MR4p \^ 4V PnRV PnV ^,^8XdTMRp\)V V4  \
VP4FWwrÍ\
V4FCwppV\V
P48gK"\-V4V
PV,nKE KY R#) z5Add a brand-styled table with a Deep Blue header row.r[r^r3Tr4—rj)r_rkrr`rarPÚ enumerater\Úcellsr*rbr5r+r r6r7r
r<r=r>r(rr Úwidth)rCrur\rvrwrxrcÚhr&rLr@ÚriÚrowÚciÚvalÚbgr"s&&&&&& rÚ
_add_tabler…|s´ð
M‰M˜q¤3 t£9}´3°w³<ˆ @€EÜ(×-€E„OØ€E„Kô˜"‰ˆØz‰z˜!}×" %ˆØˆŒ Ø O‰O˜AÕ ˆØi‰i˜‹lˆØˆŒÜ˜1›ˆŒ
Ü% d¨D°$ÓÔØŒ
ÜÖ˜T–?‰ˆÜ  –~‰GˆBØ—:‘:˜b 1+¨BÕ/ˆD؈DŒIØ Õ"ˆAØ—)‘)¨ªœC œH¸UÓCˆCܘq›EˆCH‰HŒMØ-ˆCH‰HŒMØ !V qœ[¨hˆ T˜ ó˜UŸZ™ZÖ(‰ˆÜ˜zÖ*‰EˆBØ”C˜Ÿ ™ “NÖ"Ü&,¨Q£i ˜"•
Ö)r c
ó,V^8„dQhRRRRRRRRR R
/#) rrCrÚchartszdict[str, str]ÚkeyrÚwidth_inÚfloatrrr)rs"rrr¨s8÷MñMM nðM¸MØðMØ)-ñMr cóìVPV4pV'dD\PPV4'dVP V\ V4R7R#\
VRV R2\^ R7R#)z"Insert a chart image if it exists.)r}z[Chart 'z' not available])r/r-N)ÚgetÚosÚpathÚexistsÚ add_picturer rMrm)rCr‡rˆr‰s&&&& rÚ
_add_chartr¨sSð :‰:c‹?€Dß ˜t× ˜¤F¨8Ó$4ˆÖ
ˆcX˜c˜UÐ"2Ð3¼DÈ!×Lr có V^8„dQhRRRR/#©rrCrrrr)rs"rrr²s÷ñð˜dñr có(VPR4R#)r3N)rK©rCs&rÚ_spacerr²sØ×Ñr có V^8„dQhRRRR/#r“r)rs"rrrs÷ñ $ñr có&VP4R#©N)Úadd_page_breakr•s&rÚ _page_breakrsØ×ÑÖr có V^8„dQhRRRR/#r“r)rs"rrr¾s÷ñ˜8ð¨ñr cóHVPR,pRVPn\^ 4VPn^^\
3^^
\ 3^^ \
33Frwr#pVPRV 2,pRVPn\V4VPnWEPPnRVPn Kt VP^,p\R4Vn \R4Vn
\R4Vn\R4VnR#) z9Apply brand typography to the Document's built-in styles.ÚNormalr4zHeading Tçø?gffffffö?gš™™™™™ù?N)Ústylesr6r>r r7rRÚTEALr<r=r+Úsectionsr
Ú
top_marginÚ
bottom_marginÚ left_marginÚ right_margin)rCrPrDr7r/ÚhsÚsecs& rÚ_bootstrap_stylesr©¾à J‰J €EØ'€E‡JJ„Oܘ“f€E‡JJ„Oð
ˆB”ˆ
Ø
ˆB”ˆ
Ø
ˆB”ˆ
ó ш
Z‰Z˜( 5 
ØŒ ܘ$“xˆŒ Ø"
ÔØˆŽ ñ ð ,‰,q/€Cܘ“W€C„Nܘ3›€CÔܘ“g€C„Oܘ#“w€CÖr có$V^8„dQhRRRRRR/#©rrCrÚresultsrrrr)rs"rrrÚs!÷$ñ$$¨ð$¸$r c
ó’VPpVPR/4PRR4pVPR/4PRR4pVPR/4PRR4pVPR/4PRR4pVP^^R7pRVnVP ^^4p\ VR4RVnVP^,p \PV n
\V R R
^\^ÿ^ÿ^ÿ4R 7VP4p
\V
R ^
\^×^ò^ÿ4R
7\V4\VRRV RV RV RV R2 R\ R7\V4\#VR\$P&!4P)R43RV RV 23RV RV 23R.^R7\+V4R#)ÚeventsÚ date_fromúN/AÚdate_toÚ
safety_energyr[r^Ú0b3254r3zSHEQ Safety Performance ReportTrJz5Safety Energy, event risk, and leadership focus areasrQz Report ScopezEvents window: u – z. Leading activity window: z_. Built for senior leaders as a concise decision-support pack rather than a compliance summary.Úeef6fb©rWrXÚ Generatedz%d %b %YzEvents Coverageú to zSafety Energy Coverage©r]N)ÚAudiencezExecutive / Board)Ú data_qualityrŒr_rPr&r(r*rbrr`rarAr
rKrrfrsrÚnowÚstrftimer) rCÚdqÚev_fromÚev_toÚse_fromÚse_toÚbannerr&rLres && rÚ _title_pagerÃÚØ×#€Bàf‰fX˜"×& {°EÓ:€GØf‰fX˜"×& y°EÓ:€EØf‰f_ )×-¨k¸A€GØf‰f_ )×-¨i¸A€Eà
]‰] ¨ˆ
*€FØ€F„LØ ;‰;q˜!Ó €DÜ ˆTØ€D„IØ ˜Õ€AÜ)€A„K܈Р,°4ÀÌHÐUYÐ[_ÐaeÓLfÕ
× Ñ Ó €B܈Ð
DÈbÔYaÐbfÐhlÐnrÓYsÕ ˆC„LÜ Ø ØØ
˜'˜  wÐ.IÈ'ÈÐRWÐX]ÐW^ð_hð hà
Üõ
ô ˆC„LÜ”h—l’l“n×-¨jÓ˜w˜i t¨E¨7Ð4Ø ! g Y¨d°5°'Ð#:Ðð
õ ôÖr có$V^8„dQhRRRRRR/#r)rs"rrrs!÷.ñ. .°ð.È4ñ.r có¾\VR^4VPpVPpVPpVPpVP R/4p\
VRRR\R7\V4\VR\VP R^443RVP R ^4 3R
VP R ^4R
3R
\VP R/4P R^443R\VP R^443R\VP R^443R\VP R^443RVP R/4P R/4P R^4R
3.^R7\V4\VR^4VP R.4R,Fp\W4K \V4\VR^4\WPRR4\V4\WPR R4\V4\VR!^4VR",F"p\
VR#VR$\R7\V4K$ \V4R%#)&z1. Executive SummaryÚtotalszLeadership ReadoutzŸThis summary highlights where event risk is concentrated, where leading activities appear strongest or weakest, and what senior leaders should prioritise next.r´z Total EventsÚtotalzModerate+ EventsÚ
serious_countzEvents / MonthÚevents_per_monthú.1fzMotor Vehicle EventsÚ
motor_vehicleÚcountÚLLCsÚLLCÚCCCsÚCCCÚOCCsÚOCCzCCC Avg QualityÚactivity_insightsÚ avg_qualityr¸z1.1 What Leaders Should KnowÚexecutive_summaryºNéNz1.2 Board Visual SnapshotÚ quality_mixçproject_quadrantz1.3 Priority ActionsºNéNzRecommended ActionÚf7fbffN)rGÚevents_summaryÚleading_summaryÚtrendsÚrecommendationsrŒrfrrsrrSrr‡rRr)rCÚevÚleadràÚrecsrÆÚrecs&& rÚ_section_executive_summaryræs'Ü ˆ(¨!Ô × "€BØ × #€DØ
^‰^€FØ × #€Dà
X‰Xh Ó
#€Fä Ø Øð
Üõ
ô ˆC„LÜœ˜RŸV™V G¨QÓ §¡ ¸Ó :ИbŸf™fÐ%7¸Ó;¸CФ R§V¡V¨O¸RÓ%@×%DÑ%DÀWÈaÓ%PÓ!QÐV—ZZ  V—ZZ  V—ZZ  ˜vŸz™zÐ*=¸FÀuÈbÓQ×UÐVcÐefÓgÐhkÐ ð
õ ô ˆC„Lä ˆSÐ0°!Ôz‰zÐ-¨rÓ2°2×ÜÖñ ˆC„Lä ˆSÐ-¨qÔˆs—N‘N M°3Ô ˆC„L܈s—NNÐ$6¸Ô ˆC„Lä ˆ(¨!ÔBxˆxˆÜÐ*¨C°hÄtÕŽ ñôÖr có$V^8„dQhRRRRRR/#r)rs"rrr:s!÷%ñ%˜%°/ð%Àdñ%r c óæ\VR^4VPp\VR^ \R7\ V4RVP R/4.RO3RVP R/4.RO3RVP R/4.RO3.pVwrEp\W^4VUUu.uF"wrxV\
VP VR 44.NK$ p pp\VR
R .V R R
.4\ V4VR8XgKhVP R/4p
V
'gK„\V
P44UU u.uFwrV\
V 4.NK p pp \VRR.V R R
.4\ V4 \V4R#uuppiuup pi)z2. Data Quality and Coveragez¤This section summarises the completeness and date coverage of each data source. Any gaps identified here may affect the reliability of subsequent analysis sections.rQÚEventsr®z
Safety Energyr²zLLC DataÚllcr°ÚFieldÚValueç type_breakdownú
Activity TypeÚCountN)©ÚRowsr\©z Date Fromr¯©zDate Tor±)uNull — Event TypeÚnull_event_type)uNull — ConsequenceÚnull_consequence)õNull — Business UnitÚnull_business_unit)uNull — Root CauseÚnull_root_cause)©uNull — LeaderÚ null_leader)Únull_bu))uNull — TopicÚ
null_topicrû) rGrMrRrrr…ÚsortedÚitemsr)
rCÚsourcesÚlabelÚdataÚfieldsÚkr\Ú breakdownÚbr_rowss
&& rÚ_section_data_qualityr
:s}Ü ˆSÐ0°!Ô× Ñ €Bä ˆ#ð aàœTõ ˆC„Lð
2—66˜( 
hð ið
˜"Ÿ&™& °"Ó
Uð Vð
R—VV˜E 
Pð Qð €Góˆ˜QÔÙ9?Ô±°”C˜Ÿ  EÓˆÑ3˜ *¨D°3¸°*ÔŒ ð  ŸÐ!1°2Ó6ˆI߉yÜ39¸)¿/¹/Ó:KÔ3LÔMÑ3L©4¨1˜Aœs 1v;Ñ3Lј3 °'Ð :¸GÀcÈ3ÀZÔ˜ ñÖùóAùóNs Â(E'ÄE-có$V^8„dQhRRRRRR/#r)rs"rrrfs&÷gñg˜ðg¨OðgÀñgr c ó¦ \VR^4VPpVPp\VRRR\R7\ V4\VR^4\
WRR4\ V4\VR^4\
WR R
4\ V4\VR ^4VPR /4p\VPR
^4^4pVP4UUu.uF$wrgV\V4Wu, ^d,R
R2.NK& ppp\V.RAOV.RBO4\ V4VPR/4p V 'dY\VR^4V P4UU
u.uFwrzV\V
4.NK p pp
\VRR.V RR.4\ V4VPR/4p V 'dY\VR^4V P4U
U
u.uFwrÚV
\V
4.NK pp
p
\VRR.VRR.4\ V4VPR/4pVPR/4pV'g V'\VR^4\VR^ \R7\
WRR4\ V4V'dMVP4UU
u.uFwpp
V\V
4.NK ppp
\VR R!.VRR.4\ V4V'dMVP4UU
u.uFwpp
V\V
4.NK ppp
\VR"R!.VRR.4\ V4VPR#/4pV'd\VR$^4\VR%VPR&^4R
R'2^ \R7VP4UUu.uFwppV\V4.NK ppp\VR(R!.VR)R.4\ V4VPR*/4pVPR+^4^8”E\VR,^4R-\VPR+^44.R.VPR/^4R
R2.R0\VPR1^44.R2VPR3^4R
R2..p\VR4R5.VR)R6.4\ V4VPR74'd]VPR7/4P4UU
u.uFwpp
V\V
4.NK ppp
\VR R8.VRR.4\ V4.pR9VPR:/43R;VPR</43R=VPR>/433FMwpp\VP44R?,F#wppVPVV\V4.4K% KO V'd\V.RCOV.RDO4\ V4\!V4R@#uuppiuup
piuup
p
iuup
piuup
piuuppiuup
pi)Ez3. Events Analysisz Event Storyz¬This section focuses on where event burden is building, where serious outcomes are concentrated, and what special risk signals are visible in timing and motor vehicle data.rÝz3.1 Monthly TrendÚevents_monthlyrÙz3.2 Consequence SeverityÚ consequenceç@z3.3 Event Type BreakdownÚevent_type_countsrÇÚ%rñÚ
crp_countsz$3.4 Critical Risk Protocols InvolvedÚCRPç@rŸÚroot_cause_countsz3.5 Root Cause Categoriesz
Root CauseÚserious_projectsÚserious_locationsz3.6 Serious Event Hotspotsz~These are the projects and locations with the highest counts of moderate, major, or substantial events in the analysis window.rQÚserious_hotspotsç333333ProjectzSerious EventsÚLocationÚserious_time_bucketsz3.7 Serious Event Timingz*Time-of-day information was available for Úserious_time_coverage_pctz% of serious events.z Time of Dayrîz3.8 Motor Vehicle EventszTotal Motor Vehicle EventszShare of All EventsÚ pct_totalzModerate+ MV EventsrÈzSerious Rate Within MV EventsÚserious_pct_within_mveÚMetricrìç top_projectsz MV Eventsz Road TypeÚ
road_typeszRoad ConditionÚ
conditionsz Vehicle TypeÚ
vehicle_typesrÖN)z
Event Typerñr)ç333333ó?çð?)ÚCategoryÚPatternrñ)r')rGr‡rfrrÚmaxrrr…rMrRÚlistr%r)rCÚchtsÚ event_typesÚ total_eventsÚtrqÚet_rowsÚcrprÚcrp_rowsÚrcrpÚrc_rowsrrrr\Ú time_bucketsÚbucketrÌÚmotorÚmv_rowsrÚvaluesrˆs&& rÚ_section_eventsr:fsrÜ ˆÔ × "€BØ N‰N€Dä Ø Øð wØ
Üõ ô ˆC„Lô
ˆSÐ% qÔˆsÐ*¨CÔ ˆC„Lô
ˆSÐ,¨aÔˆs˜-¨Ô ˆC„Lô
ˆ,¨aÔ—&,¨bÓ1€KÜr—vv˜g )¨1Ó-€LØEP×EVÑEVÔEXÔYÑEX¹T¸Q”3q“6˜an¨SÕÐ5°QÐ8ÑEX€Gш0°'º?Ô ˆC„Lð
&‰&˜
"€Cß
ÜÐ<¸@Ø,/¯I©I¬KÔ8©K¡D A˜A›“K©KˆÑ Ð(¨(°S¸#°JÔŒ ð
Ð# RÓ (€Bß ÜÐ1°1Ô5Ø+-¯8©8¬:Ô6©:¡4 1A”s˜1“v“;©:ˆÑ wи3À¸*ÔŒ à—v‘vÐ0°"ÓØŸÐ2°BÓß×Ð2°AÔ
ˆOؤõ 0°#ÔŒ ß Ø,<×,BÑ,BÔ,DÔEÑ,D¡D A q˜A“KÑ,Dˆ s˜YÐ(8Ð9¸4À#ÀsÀÔ CŒLß Ø,=×,CÑ,CÔ,EÔFÑ,E¡D A q˜A“KÑ,Eˆ s˜ZÐ)9Ð:¸DÀ3ÈÀ*Ô CŒLà—60°"Ó5€LßÜÐ0°!Ô
ˆ:¸2¿6¹6ÐB]Ð_`Ó;aÐbeÐ:fÐfzФõ;G×:LÑ:LÔ:NÔOÑ:N©¨°œ˜U›Ó$Ñ:NˆÑÐ(8Ð9¸4À#ÀsÀÔŒ à F‰F?  '€EØ ‡yy˜˜ ÜÐ0°!Ô
)¬3¨u¯y©y¸À!Ó/DÓ+EÐ
" u§y¡y°¸aÓ'@ÀÐ&EÀQÐ$GÐ
"¤C¨¯ © °/À1Ó(EÓ$FÐ
·±Ð;SÐUVÓ1WÐX[Ð0\Ð\]Ð.^Ð 
ˆô  7Ð+¨W°s¸C°jÔŒ Ø 9‰9^× $Ø,1¯I©I°nÀbÓ,I×,OÑ,OÔ,QÔRÑ,Q¡D A q˜A“KÑ,Qˆ s˜Y¨ Ð4°d¸SÀ#¸JÔ CŒL؈à
˜%Ÿ)™) L°"Ó
˜uŸy™y¨°rÓ
˜UŸY™Y ¸Ó 
‰MˆE
§¡£Ó×4‘ ˜U C¬¨S«Ð 
÷ Ü <¸dÂOÔ Œ äÖùóWZùó9ùó7ùóFùóGùóPùó Ss*Ã*V)Å!V/ÇV5ÊV;Ë&WÎWÒ0W
có$V^8„dQhRRRRRR/#r)rs"rrrÔs&÷DñD D°oðDÈ$ñDr có@\VR^4VPpVPpVPp\ VRRR\
R7\
V4\VR^4\WRR4\
V4VPR/4pVPR /4pV'dvR]Uu.uFLpVPV^4^8”gKV\VPV^44VPV^4R
.NKN pp\V.R^OV.R_O4\
V4\VR ^4\VR
VPRR4 2^ \R7\WRR4\
V4\VR^4VPR/4p \\RV P4444p
V
'drV
U U u.uFFp V .R]U u.uF.p \V PV /4PV ^44NK0 up ,NKH pp p \V.R`OV.RaO4\
V4\VR^4\VR^ \ R7\WRR4\
V4VPR/4p
V
'd\\#V
P%44R,UUu.uFwrïV\V4.NK ppp\VRR.VRR .4\
V4\VR^4\WR R4\
V4\VR!^4\WR"R4\
V4VPR"/4pV'd]\#VP%44R,UUu.uFwppV\V4.NK ppp\VR#R$.VRR .4\
V4\VR%^4\VR&VPR'R4 R(VPR)R4 R*2^ \ R7\WPR+R,4^
\R7\WR-R4\
V4\WR.R4\
V4VPR/.4pV'VUu.upVPR0R,4\VPR1^44VPR2^4R3
VPR4^4R3
VPR5^4R3
R62VPR7^4R3
R62VPR8^4R3
R62VPR9^4R3