K i=]FddlmZddlmZmZmZddlm Z m Z m Z m Z ddl mZmZmZddlmZddlmZe ddd \ZZZZZe d d \ZZd ZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/d Z0d!Z1d"Z2d#Z3d$Z4d%Z5d&Z6d'Z7y()))Sum) deltaproductdeltasummation_extract_delta)EqSsymbolsoo)KroneckerDelta Piecewisepiecewise_fold)And)raisesz i j k l mT)integerfinitezx yF) commutativectttddfdk(sJtttddftdzk(sJtttztddfttzdzk(sJtttztddfttzdzk(sJtt t tt ddft t tk(sJttt t tzt ddftdzt t tzk(sJtttzt t tzt ddfttzdzt t tzk(sJyNr)dpxjyKDike/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/concrete/tests/test_delta.pytest_deltaproduct_trivialr! s  a!Q q  a!Q q!t ## # a!eaAY AEA: -- - acAq!9 !A# )) ) bAhAq "bAh .. . a1aj1a) $1R1X 55 5 ac"Q(lQ1I &1Q3(2a8*; ;; ;rctttttddfdk(sJtttttddfttdk(sJtttttddfttdk(sJtttttddfttdk(sJtttttdtfttdttdzttdzk(sJttttttdfttdttdzttdzk(sJttttttt fttt ttt zttt dzzk(sJyNrrr)rrrrrlrrr test_deltaproduct_basicr'sS bAhAq "a '' ' bAhAq "bAh .. . bAhAq "bAh .. . bAhAq "bAh .. . bAhAq "bAhr!Qx&7"Q(&B BB B bAhAq "bAhr!Qx&7"Q(&B BB B bAhAq "bAhr!Qx&7"QA,&F FF Frctttttztddfdk(sJtttttztddftttdzk(sJtttttztddftttdzk(sJtttttztddftttdzk(sJtttttztdt ftttdztt dztt dzk(sJtttttztt dftttdztt dztt dzk(sJtttttztt t ftttt ztt t ztt t dzzk(sJyr#)rrrrrrr&rrr test_deltaproduct_mul_x_kdr) s a1aj1a) $ )) ) a1aj1a) $"Q( 22 2 a1aj1a) $"Q( 22 2 a1aj1a) $"Q( 22 2 a1aj1a) $"Q( 2a8(;bAh(F FF F a1aj1a) $"Q( 2a8(;bAh(F FF F a1aj1a) $"Q( 2a8(;bAEl(J JJ Jrcntttzttt zt ddfdk(sJtttzttt zt ddfttzttdzk(sJtttzttt zt ddfttzttdzk(sJtttzttt zt ddfttzttdzk(sJtttzttt zt dt fttzttdztt dztt dzk(sJtttzttt zt t dfttzttdztt dztt dzk(sJtttzttt zt t tfttztttztt tztt tdzzk(sJyr#)rrrrrrrr&rrr test_deltaproduct_mul_add_x_y_kdr+*s q1ubAhAq *a // / q1ubAhAq *q1ubAh.> >> > q1ubAhAq *q1ubAh.> >> > q1ubAhAq *q1ubAh.> >> > q1ubAhAq * Q1aAq!Bq!H, -- - q1ubAhAq * Q1aAq!Bq!H, -- - q1ubAhAq * Q1aAq!Bq!a%L0 11 1rc tttttttztddfdk(sJtttttttztddfttdttdzk(sJtttttttztddfttdttdzk(sJtttttttztddfttdttdzk(sJtttttttztdt ftt dttdtt dzzttdtt dzzttdttdztt dzzttdttdztt dzzk(sJtttttttztt dftt dttdtt dzzttdtt dzzttdttdztt dzzttdttdztt dzzk(sJtttttttztt t ftt t dzttt tt t zzttt tt t zzttt ttt dz ztt t dz zzttt dz ttt ztt t dz zzk(sJyr#)rrrrrr&mrrr test_deltaproduct_add_kd_kdr.7s bAhAq!Aq!9 - 22 2 bAhAq!Aq!9 -AqBq!H1D DD D bAhAq!Aq!9 -AqBq!H1D DD D bAhAq!Aq!9 -AqBq!H1D DD D bAhAq!Aq!9 -Aq 1aAq2q!HR1X-2. 1aAq"Q("2#%'1XbAh%6r!Qx%?2@ @@ @ bAhAq!Aq!9 -Aq 1aAq2q!HR1X-2. 1aAq"Q("2#%'1XbAh%6r!Qx%?2@ @@ @ bAhAq!Aq!9 -Aq1u 1aAq2q!HR1X-2. 1aAq1ubAEl*2+-/1q5\"Q(-B2aQ<-O2P PP Prcn ttttttt tzztddfdk(sJttttttt tzztddftttdtt dzzk(sJttttttt tzztddftttdtt dzzk(sJttttttt tzztddftttdtt dzzk(sJttttttt tzztdt ftt dtttdztt dzzttt dztt dzztdzttdztt dztt dzztdztt dzttdztt dzzk(sJttttttt tzztt dftt dtttdztt dzzttt dztt dzztdzttdztt dztt dzztdzttdztt dztt dzzk(sJttttttt tzztt tftt tdzttttztt tzzttt tztt tzztdztttdz ztt tztt tdz zztdztttztt tdz ztt tdz zzk(sJyr#)rrrrrrr&r-rrr !test_deltaproduct_mul_x_add_kd_kdr0Gs aAqBq!H$%1ay 1Q 66 6 aAqBq!H$%1ay 1Q1a2a88K5L LL L aAqBq!H$%1ay 1Q1a2a88K5L LL L aAqBq!H$%1ay 1Q1a2a88K5L LL L aAqBq!H$%1ay 1R1X "Q( 2a861ajAq162 1R1X bAhr!Qx'6(*+Q$r!Qx-1a*@Aq*I6J JJ J aAqBq!H$%1ay 1R1X "Q( 2a861ajAq162 1R1X bAhr!Qx'6(*+Q$r!Qx-1a*@Aq*I6J JJ J aAqBq!H$%1ay 1R1q5\ "Q( 2a861ajAq162 1R1q5\"Q("2aQ</60 1R1X bAEl"2aQ</60 00 0rc tttzttt tt t zzt ddfdk(sJtttzttt tt t zzt ddfttzttdtt dzzk(sJtttzttt tt t zzt ddfttzttdtt dzzk(sJtttzttt tt t zzt ddfttzttdtt dzzk(sJtttzttt tt t zzt dtfttdttzttdzttdzzttztt dzttdzzttzdzttdztt dzttdzzttzdztt dzttdzttdzzk(sJtttzttt tt t zzt tdfttdttzttdzttdzzttztt dzttdzzttzdzttdztt dzttdzzttzdzttdztt dzttdzzk(sJtttzttt tt t zzt ttftttdzttztttztttzzttztt tztttzzttzdztttdz ztt tztttdz zzttzdztttztt tdz ztttdz zzk(sJyr#) rrrrrrrr&r-rrr 'test_deltaproduct_mul_add_x_y_add_kd_kdr2Xs  q1ur!Qx"Q(*+aAY 71 << < q1ur!Qx"Q(*+aAY 7 QAqBq!H$% && & q1ur!Qx"Q(*+aAY 7 QAqBq!H$% && & q1ur!Qx"Q(*+aAY 7 QAqBq!H$% && & q1ur!Qx"Q(*+aAY 72a8 Q1aAq!<"%&UBq!H$4R1X$=<> Q 2a8Bq!H$R1X-<. Q 2a8Bq!H$R1X-<. .. . q1ur!Qx"Q(*+aAY 72a8 Q1aAq!<"%&UBq!H$4R1X$=<> Q 2a8Bq!H$R1X-<. Q 2a8Bq!H$R1X-<. .. . q1ur!Qx"Q(*+aAY 72aQ< Q1aAq!<"%&UBq!H$4R1X$=<> Q 2aQ<1a(Aq1u5<6 Q 2a8Bq!a%L(Aq1u5<6 66 6rc |tttztttt zzt ddfttzdztttzdzzttdzzttztzttzzttdzzttzdztzttdzzk(sJtttztttt zzt ddfttztttdzzk(sJtttztttt zzt ddfttztttdzzk(sJtttztttt zzt ddfttztttdzzk(sJtttztttt zzt dt fttzt ztttztdz ztzttzt tz zztdtktt kfdzk(sJtttztttt zzt t dfttzt dzztttztt z ztzttzdtz zztt tktdkfdzk(sJtttztttt zzt t tfttzt tzdzztttztt z ztzttzttz zztt tkttkfdzk(sJyNrrr$rTr%) rrrrrrrr rr&rrr &test_deltaproduct_add_mul_x_y_mul_x_kdr6ns  acAbAhJAq *qsQh 1Q3( 2a8/ sAgqsmBq!H4/589!axz"Q(7J/K KK K acAbAhJAq *acAbAhJ.> >> > acAbAhJAq *acAbAhJ.> >> > acAbAhJAq *acAbAhJ.> >> > acAbAhJAq * 1q9cQU^A qsa!en ,c!q&!q&.A B      acAbAhJAq * 1Q)cQU^A qsa!en ,c!q&!q&.A B      acAbAhJAq * 1Q icQU^A qsa!en ,c!q&!q&.A B      rc Dtttttt zzt ddfttzdztttzdzzttdzzttztzttzzttdzzttzdztzttdzzk(sJtttttt zzt ddfttttdzzk(sJtttttt zzt ddfttttdzzk(sJtttttt zzt ddfttttdzzk(sJtttttt zzt dt fttzt ztttztdz ztzttzt tz zztdtktt kfdjzk(sJtttttt zzt t dfttzt dzztttztt z ztzttzdtz zztt tktdkfdzjk(sJtttttt zzt t tfttzt tzdzztttztt z ztzttzttz zztt tkttkfdzjk(sJyr4 rrrrrrrr rexpandr&rrr test_deltaproduct_mul_x_add_y_kdr:s aR1XAq *qsQh 1Q3( 2a8/ sAgqsmBq!H4/589!axz"Q(7J/K KK K aR1XAq *aR1X.> >> > aR1XAq *aR1X.> >> > aR1XAq *aR1X.> >> > aR1XAq * 1q9cQU^A qsa!en ,c!q&!q&.A B   &(    aR1XAq * A#!a9cQU^A qsa!en ,c!q&!q&.A B    68    aR1XAq * A#!a! ycQU^A qsa!en ,c!q&!q&.A B    68   rc tttdttt zzzt ddfttzdzdtzttzdzzttdzzdtztztztztzttdzzdttzdzztzttdzzk(sJtttdttt zzzt ddfttdttdzzzk(sJtttdttt zzzt ddfttdttdzzzk(sJtttdttt zzzt ddfttdttdzzzk(sJtttdttt zzzt dt fttzt ztdttztdz zztzttzt tz zztdtktt kfdjzk(sJtttdttt zzzt t dfttzt dzztdttztt z zztzttzdtz zztt tktdkfdzjk(sJtttdttt zzzt t tfttzt tzdzztdttztt z zztzttzttz zztt tkttkfdzjk(sJy)Nr$rrr5r%r8rrr #test_deltaproduct_mul_x_add_y_twokdr<s@ aQr!QxZ 1a) ,1q !QqS1H R1X1 !!Aa ! Bq!H 41578!A#z!|Bq!H7L1M MM M aQr!QxZ 1a) ,1qAqz>0B BB B aQr!QxZ 1a) ,1qAqz>0B BB B aQr!QxZ 1a) ,1qAqz>0B BB B aQr!QxZ 1a) , 1q9 !q1u~ a 1A .AFAF0C D   &(    aQr!QxZ 1a) , A#!a9 !q1u~ a 1A .AFAF0C D    68    aQr!QxZ 1a) , A#!a! y !q1u~ a 1A .AFAF0C D    68   rc tttztttt zzt ddfttztzdzttzttztzdzzttdzzttztzttzdzztzttdzzttztzdzttzzttdzzk(sJtttztttt zzt ddfttztttdzzk(sJtttztttt zzt ddfttztttdzzk(sJtttztttt zzt ddfttztttdzzk(sJtttztttt zzt dt fttztzt ztttztzdzttztztzzttzzttztzt zzttztzt zztdk\tt kzfdzk(sJtttztttt zzt t dfttztzdzttztzt zztttztztzttztzt zzttzzttztzdzzttztzt zztt k\tdkzfdzk(sJtttztttt zzt t tfttztzttztztzzttztzt zztttztztzttztzt zzttzzttztztzzttztzt zztt k\ttkzfdzk(sJyNrrr$r5r%) rrrrrrrr r&rrr &test_deltaproduct_mul_add_x_y_add_y_kdr@s q1uq2a8|$q!Qi 0a!eQYN Q!a%Qr!Qx'5( Q 1q51*Qr!Qx'5( a%QAr!Qx'5( (( ( q1uq2a8|$q!Qi 0QUQAq\4J JJ J q1uq2a8|$q!Qi 0QUQAq\4J JJ J q1uq2a8|$q!Qi 0QUQAq\4J JJ J q1uq2a8|$q!Qi 0 a%Q1uai2 Q A~ -q1u 5Aqy7q5!)r"#%&!VQ$7 9:CE E EE E q1uq2a8|$q!Qi 0 Q A5AqyQB'5(*3q1uai!^ Q aRE6a%6!#$q5!)a6023a%qb0A6B aAF5'+)5) )) ) q1uq2a8|$q!Qi 0 Q AE19q. 1q5!)r!22Y q5!)a!a%qb) )1q5 1AE19 3  1uaiA2  !"aAF 3 56?6A A AA Arc tttttzt ttt zzt ddfttdttttzzttttzt zdzzttdttttzzt zttttzdzzt zzttdttttzt zdzzttttzzzttttzt zdzzk(sJtttttzt ttt zzt ddfttttzt ttdzzk(sJtttttzt ttt zzt ddfttttzt ttdzzk(sJtttttzt ttt zzt ddfttttzt ttdzzk(sJtttttzt ttt zzt dtfttttzt ztztttttzt zdzttttzt ztzzttttzzttttzt ztzzttttzt zt zztdk\ttkzfdzk(sJtttttzt ttt zzt tdfttttzt zdzttttzt zt zztttttzt ztzttttzt zt zzttttzzttttzt zdzzttttzt zt zzttk\tdkzfdzk(sJtttttzt ttt zzt ttfttttzt zttttzt ztzzttttzt zt zztttttzt ztzttttzt zt zzttttzzttttzt ztzzttttzt zt zzttk\ttkzfdzk(sJyr>) rrrrrrrr r&rrr 'test_deltaproduct_mul_add_x_kd_add_y_kdrBs; q2a8|a"Q(l+aAY 7 1a"Q(Q,"Q(Q,!1A 55 1a"Q(Q,!2a8atttttttztddfk(sJJtttttt t fdk(sJtttttdt ftdtjtkfdk(sJtttttddftdtdtktdkfdk(sJtttttztttztt t fttttzk(sJtttttztt t ftk(sJtttttztt t ftk(sJtttddfdtzk(sJtttztttztt t fdtzk(sJy) NnT)rnonzerorrrr$r5) r rDrrrr rr rrrZeror)rGs r #test_deltasummation_basic_numericalrJs~T40A bAhAq "a '' ' bAq!tnq2#rl + Bq!tQTNQRL) ** * bAhAFAF 34i @ 2a8Bq!H q!Qi( ) 2a8Bq!H q!Qi( )) )) ) bAhRC % ** * bAhAr #y!QVVq[1A9'M MM M bAhAq "1c!q&!q&)*I6 77 7 a1ajAq!AsB< 0AbAhJ >> > a1aj1rc2, '1 ,, , a1aj1rc2, '1 ,, , a!Q qs "" " q1ubAhRC -1 44 4rc Ltttttddft dt dtktdkfdk(sJtttttddft dt tdfdk(sJtttttddft dt tdfdk(sJtttttddft dt tdfdk(sJtttttdtft dt dtkttkfdk(sJttttttdft dt ttktdkfdk(sJtttttttft dt ttkttkfdk(sJyNrrr5r$) rDrrrr rrrr&rrr "test_deltasummation_basic_symbolicrMs bAhAq "1c!q&!q&)*I6 77 7 bAhAq "iBq!H y&I II I bAhAq "iBq!H y&I II I bAhAq "iBq!H y&I II I bAhAq "1c!q&!q&)*I6 77 7 bAhAq "1c!q&!q&)*I6 77 7 bAhAq "1c!q&!q&)*I6 77 7rc tttttztddft tt dtktdkfdk(sJtttttztddft tttdfdk(sJtttttztddft tttdfdk(sJtttttztddft tttdfdk(sJtttttztdtft tt dtkttkfdk(sJtttttzttdft tt ttktdkfdk(sJtttttztttft tt ttkttkfdk(sJyrL) rDrrrrr rrrr&rrr test_deltasummation_mul_x_kdrOs a1aj1a) $1c!q&!q&)*I6 77 7 a1aj1a) $ 1bAh-(K KK K a1aj1a) $ 1bAh-(K KK K a1aj1a) $ 1bAh-(K KK K a1aj1a) $1c!q&!q&)*I6 77 7 a1aj1a) $1c!q&!q&)*I6 77 7 a1aj1a) $1c!q&!q&)*I6 77 7rc tttzttt zt ddft ttztdtktdkfdk(sJtttzttt zt ddft ttzttdfdk(sJtttzttt zt ddft ttzttdfdk(sJtttzttt zt ddft ttzttdfdk(sJtttzttt zt dtft ttztdtkttkfdk(sJtttzttt zt tdft ttztttktdkfdk(sJtttzttt zt ttft ttztttkttkfdk(sJyrL rDrrrrrr rrrr&rrr "test_deltasummation_mul_add_x_y_kdrR#s q1ubAhAq *1q5#a1fa1f-. : ;; ; q1ubAhAq *1q5"Q(#Y/ 00 0 q1ubAhAq *1q5"Q(#Y/ 00 0 q1ubAhAq *1q5"Q(#Y/ 00 0 q1ubAhAq *1q5#a1fa1f-. : ;; ; q1ubAhAq *1q5#a1fa1f-. : ;; ; q1ubAhAq *1q5#a1fa1f-. : ;; ;rc tttttttztddft t dtdtktdkfdt dtdtktdkfdzk(sJtttttttztddft t dttdfdt dttdfdzk(sJtttttttztddft t dttdfdt dttdfdzk(sJtttttttztddft t dttdfdt dttdfdzk(sJtttttttztdtft t dtdtkttkfdt dtdtkttkfdzk(sJtttttttzttdft t dtttktdkfdt dtttktdkfdzk(sJtttttttztttft t dtttkttkfdt dtttkttkfdzk(sJyrL) rDrrrrr r rrr&r-rrr test_deltasummation_add_kd_kdrT4s bAhAq!Aq!9 -1c!q&!q&)*I61c!q&!q&)*I6 728 88 8 bAhAq!Aq!9 -1bAh-+1bAh-+ ,2- -- - bAhAq!Aq!9 -1bAh-+1bAh-+ ,2- -- - bAhAq!Aq!9 -1bAh-+1bAh-+ ,2- -- - bAhAq!Aq!9 -1c!q&!q&)*I61c!q&!q&)*I6 728 88 8 bAhAq!Aq!9 -1c!q&!q&)*I61c!q&!q&)*I6 728 88 8 bAhAq!Aq!9 -1c!q&!q&)*I61c!q&!q&)*I6 728 88 8rc tttttztt tztddft tttdtktdkfdtdtdt kt dkfdzk(sJtttttztt tztddft ttttdfdtdtt dfdzk(sJtttttztt tztddft ttttdfdtdtt dfdzk(sJtttttztt tztddft ttttdfdtdtt dfdzk(sJtttttztt tztdtft tttdtkttkfdtdtdt kt tkfdzk(sJtttttztt tzttdft tttttktdkfdtdttt kt dkfdzk(sJtttttztt tztttft tttttkttkfdtdttt kt tkfdzk(sJyrL rDrrrrrr r rrr&r-rrr #test_deltasummation_add_mul_x_kd_kdrWLs6 a1aj2a8#aAY />1c!q&!q&)*I61c!q&!q&)*I6 748 88 8 a1aj2a8#aAY />1bAh-+1bAh-+ ,4- -- - a1aj2a8#aAY />1bAh-+1bAh-+ ,4- -- - a1aj2a8#aAY />1bAh-+1bAh-+ ,4- -- - a1aj2a8#aAY />1c!q&!q&)*I61c!q&!q&)*I6 748 88 8 a1aj2a8#aAY />1c!q&!q&)*I61c!q&!q&)*I6 748 88 8 a1aj2a8#aAY />1c!q&!q&)*I61c!q&!q&)*I6 748 88 8rc ttttttt tzztddft tttdtktdkfdtttdt kt dkfdzk(sJttttttt tzztddft ttttdfdtttt dfdzk(sJttttttt tzztddft ttttdfdtttt dfdzk(sJttttttt tzztddft ttttdfdtttt dfdzk(sJttttttt tzztdtft tttdtkttkfdtttdt kt tkfdzk(sJttttttt tzzttdft tttttktdkfdttttt kt dkfdzk(sJttttttt tzztttft tttttkttkfdttttt kt tkfdzk(sJyrLrVrrr #test_deltasummation_mul_x_add_kd_kdrYds= aAqBq!H$%1ay 1^1c!q&!q&)*I61c!q&!q&)*I6 768 88 8 aAqBq!H$%1ay 1^1bAh-+1bAh-+ ,6- -- - aAqBq!H$%1ay 1^1bAh-+1bAh-+ ,6- -- - aAqBq!H$%1ay 1^1bAh-+1bAh-+ ,6- -- - aAqBq!H$%1ay 1^1c!q&!q&)*I61c!q&!q&)*I6 768 88 8 aAqBq!H$%1ay 1^1c!q&!q&)*I61c!q&!q&)*I6 768 88 8 aAqBq!H$%1ay 1^1c!q&!q&)*I61c!q&!q&)*I6 768 88 8rc  tttzttt tt t zzt ddfttttztdtktdkfdtttztdt kt dkfdzk(sJtttzttt tt t zzt ddfttttzttdfdtttztt dfdzk(sJtttzttt tt t zzt ddfttttzttdfdtttztt dfdzk(sJtttzttt tt t zzt ddfttttzttdfdtttztt dfdzk(sJtttzttt tt t zzt dtfttttztdtkttkfdtttztdt kt tkfdzk(sJtttzttt tt t zzt tdfttttztttktdkfdtttzttt kt dkfdzk(sJtttzttt tt t zzt ttfttttztttkttkfdtttzttt kt tkfdzk(sJyrL) rDrrrrrrr r rrr&r-rrr )test_deltasummation_mul_add_x_y_add_kd_kdr[|s q1ur!Qx"Q(*+aAY 7>1q5#a1fa1f-. :1q5#a1fa1f-. : ;<< << < q1ur!Qx"Q(*+aAY 7>1q5"Q(#Y/1q5"Q(#Y/ 0<1 11 1 q1ur!Qx"Q(*+aAY 7>1q5"Q(#Y/1q5"Q(#Y/ 0<1 11 1 q1ur!Qx"Q(*+aAY 7>1q5"Q(#Y/1q5"Q(#Y/ 0<1 11 1 q1ur!Qx"Q(*+aAY 7>1q5#a1fa1f-. :1q5#a1fa1f-. : ;<< << < q1ur!Qx"Q(*+aAY 7>1q5#a1fa1f-. :1q5#a1fa1f-. : ;<< << < q1ur!Qx"Q(*+aAY 7>1q5#a1fa1f-. :1q5#a1fa1f-. : ;<< << 2a8a<Q!VQ!V!45yA 2a8a< <   q2a8|a"Q(l+aAY 7>2a8a<Aq*I6 AqAq <   q2a8|a"Q(l+aAY 7>2a8a<Aq*I6 AqAq <   q2a8|a"Q(l+aAY 7>2a8a<Aq*I6 AqAq <   q2a8|a"Q(l+aAY 7>2a8a<Q!VQ!V!45yA 2a8a< <   q2a8|a"Q(l+aAY 7>2a8a<Q!VQ!V!45yA QAqAq  !<" "" " q2a8|a"Q(l+aAY 7>2a8a<Q!VQ!V!45yA QR1X\"1$ %<& && &rc&ttdy)Ncpttttttt ztS)N)rrrrrr&rrr z$test_extract_delta..s~bAhAq.A1Er)r ValueErrorrrr test_extract_deltarks  :EFrN)8sympy.concretersympy.concrete.deltarrrrDr sympy.corerrr r sympy.functionsr rr r sympy.logicrsympy.testing.pytestrrrrr&r-rrr!r'r)r+r.r0r2r6r:r<r@rBrErJrMrOrRrTrWrYr[r^r`rbrdrfrkrrr rrsYY))KK' T$? 1aAu%(1<GK 1 P 0"6, ...A,5:95. 7 7;"808080<0M"M"O"'&&0Gr