0,]']>SeUҝp8d%qy)6Y;]AsqlUH<4 02TvͫgE#2Tv2Tv .##3."223"∈ވވMMވޞޞވ툞툈ވވ툈툎݈툈."3##."∉322ވވMMޞޞވ툞ވވވ݈툎3BD3B3B3B3B3BD3BDDD$3M$3M$3M$3N$3D$3DD$33$D3$D3$D3$D3$D3$D3$DB$3B$3B$3B$3B$3B$3B$3DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDs  UUPUUUUPPPUUUUPUUPPP  PPPPUUPUUUUPPPUPUUUUU"3"3DUfwDUfwDNNHHDDDDNDNDDNDNDDDNDND興HHDNDDDDDDDDD興HHDDDDD舀莈DDDDDDNDDDDNDNDNDDDDDDDDDDDNDNDNDNDNDDDDDNDNDNDNDNDDDDDDDNNNDDDDDDDNDNDNDDDDNNNNNNNDDDDDDDDDDNDDNNDNNNDDDDDDDDDNDNNDNDNDNDNDDDDDDDNDDDDDNDDNDDDDDNDDDDDDNDDDNDDNDNDDDDDDDDDDDDNDDNNNDDDDDDDDDNDDNDDDDDDDDDD@BBBBBBBBBBBBBBBBBBBBBBBBBBBBA000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R00000011111111111100000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R00000022222222222200000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000 000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R000000   0010C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000020C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R000000$%$% 000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R000000''''000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R000000 "#"# 0000 "# 000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R000000''''''''0000''''000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R00000011111111111100000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R00000022222222222200000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000PSSSSSSSSSSSSSSSSSSSSSSSSSSSSQ000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@BBBBBBBBBBBBBBBBBBBBBBBBBBBBA@BBBBBBBBBBBBBBBBBBBBBBBBBBBBA000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000CR0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000CR0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000CR0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000CR0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000CR0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000CR0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000CR0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000CR0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000CR0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000CR0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000CR0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000CR0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000CR0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000CR0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000R0000000000000000000000000000CR0000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000PSSSSSSSSSSSSSSSSSSSSSSSSSSSSQPSSSSSSSSSSSSSSSSSSSSSSSSSSSSQ000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 F??????00?????????????????????? @`p???>= <0;09@5P3P1P0P0P0P3P6@90<0> ??????????? pppppp p  ?DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdffffffffffffffffffffffffffffffffffffffffffffffffffffffffFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdFDDDDDDDDDDDDDDDODDDDDDDDDDDDDDDDDDDDDDDDODDDdFDDDDDDDDDDDDDDDODDDDDDDDDDDDDDDDDDDDDDDDDDdFDDDDDDDDDDDDDDDODDDDDDDDDDDDDDDDDDDDDDDODDdFDDDDDDDDDDDDDDDODDDDDDDDDDDDDDDDDDDDDDd̈FDDDDDDDDDDDDDDDODDDDDDDDDDDDDDDDDDDODd̈FDDDDDDDDDDDDDDDODDDDDDDDDDDDDDDDDDDDd̈FDDDDDDDDDDDDDDDODDDDDDDDDDDDDDDDDDDODd̈FDDDDDDDDDDDDDDDODDDDDDDDDDDDDDDDDDDDDDd̈FDDDDDDDDDDDDDDDODDDDDDDDDDDDDDDDDDDDDDDODDd̈FDDDDDDDDDDDDDDDODDDDDDDDDDDDDDDDDDDDDDDDDDd܈FDDDDDDDDDDDDDDDODDDDDDDDDDDDDDDDDDDDDDDDODDDdFDDDDDDDDDDDDDDDODDDDDDDDDDDDDDDDDDDDDDDDDDDDdFDDDDDDDDDDDDDDDODDDDDDDDDDDDDDDDDDDDDDDDDDDDdݍݍݍݍݍݍݍFDDDDDDDDDDDDDDDODDDDDDDDDDDDDDDDDDDDDDDDDDDDdFDDDDDDDDDDDDDDDODDDDDDDDDDDDDDDDDDDDDDDDDDDDdffffffffffffffffffffffffffffffffffffffffffffffffffffffffFDDDDDDDDDDDDDDDODDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD.興鈈DDDDDDDDDDDDDDDD.興DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD#2鈈M툈興MDDDDDDDDDDDDDDDD#2鈈ވDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD#2툈鈈DDDDDDDDDDDDDDDD#2ޞDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD33M툈MDDDDDDDDDDDDDDDD33DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD.""∈DDDDDDDDDDDDDDDD.""∈ޞDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD.""∈DDDDDDDDDDDDDDDD.""∈ޞDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD33M툈MDDDDDDDDDDDDDDDD33DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD#2툈鈈DDDDDDDDDDDDDDDD#2ޞDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD#2鈈M툈興MDDDDDDDDDDDDDDDD#2鈈ވDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD.興鈈DDDDDDDDDDDDDDDD.興DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD興鈈興.興鈈興DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD興#2鈈興M툈DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD興鈈興#2鈈興툈DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD툈33M툈DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD툈.""∈툈DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD툈.""∈툈DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD툈33M툈DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD興鈈興#2鈈興툈DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD興#2鈈興M툈DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD興鈈興.興鈈興DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD3$DB$33$DB$3DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD3$DB$33$DB$3DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD.興鈈3$DB$33$DB$3.興DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD#2鈈M툈興3$DB$33$DB$3#2鈈ވDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD#2툈鈈3$DB$33$DB$3#2ޞDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD33M툈3$DB$33$DB$333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD.""∈3$DB$33$DB$3.""∈ޞDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD.""∈.""∈ޞDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD33M툈33DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD#2툈鈈#2ޞDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD#2鈈M툈興#2鈈ވDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD.興鈈䈎.興DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD3BDD$33BDD$3DDDDDDDDDDDDDDDD3BDD$3DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD3BM$33BM$3DDDDDDDDDDDDDDDD3BM$3DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD3BM$33BM$3DDDDDDDDDDDDDDDD3BM$3DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD3BM$33BM$3DDDDDDDDDDDDDDDD3BM$3DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD3BN$33BN$3DDDDDDDDDDDDDDDD3BN$3DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD3BDD$33BDD$3DDDDDDDDDDDDDDDD3BDD$3DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD3BDDDD$33BDDDD$3DDDDDDDDDDDDDDDD3BDDDD$3DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?-- title: Royal Game of Ur -- author: siorys88 -- desc: a TIC-80 implementation of the ancient board game -- site: -- license: CC Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) -- version: 1.1 -- script: lua -- saveid: rgour --Constants DLT=1/60 WDT=240 HGT=136 --API functions rnd=math.random tins=table.insert srt=table.sort flr=math.floor --Util functions function sgn(x) if x>0 then return 1 elseif x<0 then return -1 else return 0 end end function clp(x,mn,mx) if x>=mx then return mx elseif x<=mn then return mn else return x end end function rndn() return rnd() end function rndf(mn,mx) local r=rndn() return mn*(1-r)+mx*r end function vec(x,y) return {x=x,y=y} end function vadd(v1,v2) return {x=v1.x+v2.x,y=v1.y+v2.y} end function trn(c,t,f) if c then return t else return f end end function rct(x,y,w,h) return {x=x,y=y,w=w,h=h} end function drct(r,c,ov) rectb(r.x-ov,r.y-ov,r.w+2*ov,r.h+2*ov,c) end function inrct(r,mp) return mp.x>=r.x and mp.x<=r.x+r.w and mp.y>=r.y and mp.y<=r.y+r.h end function ease(t) return 1-(1-t)*(1-t)*(1-t) end function ctxt(tx,x,y) print(tx,x-#tx*0.5*5,y) end function eioq(t) return trn(t<0.5,8*t*t*t*t,(1-math.pow(-2*t+2,4)/2)) end function albk(m)--Function by blinry at blinry.org local t=time()/90 for x=0,239 do for y=0,135 do local a=x/2+t*2 local b=y/2+t local c=(a//1 ~ b//1)%m local cl=trn(c==0,4,13) pix(x,y,cl) end end end --Buttons function button(x,y,w,h,txt) return {x=x,y=y,w=w,h=h,txt=txt} end function bupd(b) rect(b.x+1,b.y+1,b.w,b.h,15) rect(b.x,b.y,b.w,b.h,14) rectb(b.x,b.y,b.w,b.h,8) rectb(b.x+1,b.y+1,b.w-2,b.h-2,8) print(b.txt,b.x+b.w*0.5-#b.txt*5*0.5,b.y+b.h*0.5-5*0.5) if inrct(rct(b.x,b.y,b.w,b.h),mpos) then rectb(b.x-1,b.y-1,b.w+2,b.h+2,6) return lmb end return false end --function BOOT()clear_save() end function TIC() cls() current_state=game_states[current_state]() end --Board auxiliary functions function move(pn,dr,b1,b2,c) return {pn=pn,dr=dr,b1=b1,b2=b2,c=c,b1int=b1,b2int=b2} end function mvtostr(mv) return " to move p "..mv.pn.." by "..mv.dr end function flp(t) if t==1 then return 2 else return 1 end end function occ(b,p) return b&p>0 end function btl(p) return p&BTL>0 end function ros(p) return p&RST>0 end function off(p) return p&BRD==0 end function xct(i,dr) return i+dr-14==0 end function bput(b,dr) return b|(1<<(dr-1)) end function brm(b,p) return b&(~p) end function badd(b,p) return b|p end function bmv(b,p1,p2) return badd(brm(b,p1),p2) end function setnp(b,np) b=b&(~(7<<14)) return b|(((7-np)&7)<<14) end function getnp(b) return 7-((b>>14)&7) end function incnp(b) local np=getnp(b) return setnp(b,np+1) end function decnp(b) local np=getnp(b) return setnp(b,np-1) end function settrn(b,s) return trn(s,b|(1<<17),b&(~(1<<17))) end function gettrn(b) return (b>>17)&1>0 end function setoff(b,s) return trn(s,b|(1<<19),b&(~(1<<19))) end function getoff(b) return (b>>19)&1>0 end function seteat(b,s) return trn(s,b|(1<<18),b&(~(1<<18))) end function geteat(b) return (b>>18)&1>0 end --Draw positions BX=7*8 BY=5*8 DICE=rct(20,36,16,64) PWNSP1=rct(7*8, 1*8,112,16) PWNSP2=rct(7*8,14*8,112,16) TIMER= rct(25.75*8,7.75*8,16,32) --Masks BRD=0x3FFF BTL=0xFF0 RST=0x2088 STS=0x1C000 --Game variables current_pl=1 bp1=setnp(0,7) bp2=setnp(0,7) dice={0,0,0,0} victory=0 moves={} selected_move=0 turn_time=30 timer=turn_time p2skill=0.0 function reset_game() current_pl=1 bp1=setnp(0,7) bp2=setnp(0,7) victory=0 timer=turn_time reset_dice() tanim=0 current_mode=MODE_PSEL end --Game states STATE_TITLE=1 STATE_PRELOAD=2 STATE_GAMEPLAY=3 STATE_INST=4 STATE_OPSEL=5 current_state=STATE_TITLE bgmenu=button(200,8,32,16,"Quit") function state_gameplay() map(0,0,30,17) input() draw_pawns() draw_dice() drawb(bp1,1) drawb(bp2,2) draw_timer() if bupd(bgmenu) then save() return STATE_TITLE end return update_game_mode() end bnew=button(88,56+24,64,16,"New") bload=button(88,56,64,16,"Continue") binst=button(88,56+48,64,16,"Tutorial") function state_title() rect(0,0,WDT,HGT,4) albk(5) spr(432,WDT*0.5-8*16*0.5,8,0,1,0,0,16,5) input() if bupd(bnew) then load_game=false return STATE_OPSEL end if has_save() then if bupd(bload)then load_game=true return STATE_PRELOAD end end if bupd(binst) then return STATE_INST end return STATE_TITLE end load_game=false function state_preload() reset_game() state_from_mode=STATE_GAMEPLAY if load_game then load_game=false load() end return STATE_GAMEPLAY end tutst=0 tutanim=2 tutanimdur=2 bnext=button(200,8,32,16,"Next") function state_instructions() input() map(0,0,30,17) draw_pawns() draw_dice() drawb(bp1,1) drawb(bp2,2) draw_timer() tutanim=tutanim-DLT if tutanim<=0 then tutanim=tutanimdur end local t=1-tutanim/tutanimdur t=eioq(t) if tutst==0 then bp1=setnp(0,7) bp2=setnp(0,7) ctxt("Roll the dice on your turn",112,30) if t==0 then dice=rdc() end elseif tutst==1 then dice[1],dice[2],dice[3],dice[4]=0,0,0,0 ctxt("If you roll a Zero you lose your turn",112,30) elseif tutst==2 then dice[1],dice[2],dice[3],dice[4]=0,0,0,0 ctxt("Click on the dice to pass",112,30) drct(DICE,5,1) elseif tutst==3 then dice[1],dice[2],dice[3],dice[4]=1,0,1,0 line(pnp1[2].x+8,pnp1[2].y+8,pnp1[4].x+8,pnp1[4].y+8,6) line(pnp1[4].x+8,pnp1[4].y+8,pnp1[5].x+8,pnp1[5].y+8,6) line(pnp1[5].x+8,pnp1[5].y+8,pnp1[12].x+8,pnp1[12].y+8,6) line(pnp1[12].x+8,pnp1[12].y+8,pnp1[13].x+8,pnp1[13].y+8,6) line(pnp1[13].x+8,pnp1[13].y+8,pnp1[14].x+8,pnp1[14].y+8,6) bp1=bput(bp1,2) bp1=setnp(bp1,6) ctxt("Move your pawn along the path",112,30) elseif tutst==4 then bp1=setnp(0,6) bp2=setnp(0,6) line(pnp1[5].x+8,pnp1[5].y+8,pnp1[12].x+8,pnp1[12].y+8,6) ctxt("Capture your opponent's piece on this area",112,30) anim_move_pwn(5,7,1,t) anim_move_stash(7,2,7,1-t) elseif tutst==5 then bp1=setnp(0,7) bp2=setnp(0,7) rectb(pnp1[4].x,pnp1[4].y,16,16,6) rectb(pnp1[8].x,pnp1[8].y,16,16,6) rectb(pnp1[14].x,pnp1[14].y,16,16,6) ctxt("Land on rosettes for an extra turn",112,30) elseif tutst==6 then bp1=setnp(0,7) bp2=setnp(0,7) bp1=bput(bp1,8) bp2=bput(bp2,6) current_pl=2 rectb(pnp1[8].x,pnp1[8].y,16,16,6) ctxt("Pawns on rosettes are immune to capturing",112,30) elseif tutst==7 then current_pl=1 bp1=setnp(0,6) bp2=setnp(0,7) dice[1],dice[2],dice[3],dice[4]=0,0,1,1 ctxt("Get off the board with an exact throw",112,30) anim_move_pwn(13,15,1,t) elseif tutst==8 then bnext.txt="End" bp1=setnp(0,0) bp2=setnp(0,7) ctxt("Get all pawns off the board to win",112,30) if bupd(bnext) then bnext.txt="Next" tutst=0 tutanim=2 reset_game() return STATE_TITLE end end if bupd(bnext) then tutanim=tutanimdur tutst=tutst+1 end return STATE_INST end beasy=button(88,56-24,64,16,"Easy") bmed=button(88,56,64,16,"Medium") bhard=button(88,56+24,64,16,"Advanced") bexp=button(88,56+48,64,16,"Expert") function state_opsel() rect(0,0,WDT,HGT,4) albk(6) input() print("Select opponent difficulty:",WDT*0.5-68,16) if bupd(beasy) then p2skill=0.15 return STATE_PRELOAD end if bupd(bmed) then p2skill=0.50 return STATE_PRELOAD end if bupd(bhard) then p2skill=0.75 return STATE_PRELOAD end if bupd(bexp) then p2skill=1.00 return STATE_PRELOAD end return STATE_OPSEL end game_states={state_title,state_preload,state_gameplay,state_instructions,state_opsel} --Game input modes MODE_DICE=1 MODE_P1=2 MODE_P2=3 MODE_VICTORY=4 MODE_MFIND=5 MODE_MAPPLY=6 MODE_PSEL=7 current_mode=MODE_PSEL state_from_mode=STATE_GAMEPLAY function droll() return dice[1]+dice[2]+dice[3]+dice[4] end function vct() if getnp(bp1)==0 and bp1&BRD==0 then return 1 elseif getnp(bp2)==0 and bp2&BRD==0 then return 2 else return 0 end end do local dice_timer=0 local intv=0 local dint=0.01 function reset_dice() dice_timer=0 intv=0 dint=0.01 end function mode_dice_roll() timer=turn_time dice_timer=dice_timer+DLT intv=intv+DLT if intv>dint then dint=dint+0.01 intv=0 dice=rdc() sfx(0) end if dice_timer>1 then reset_dice() return MODE_MFIND end return MODE_DICE end end function pass() sfx(4) moves={move(-1,droll(),trn(current_pl==1,bp1,bp2),trn(current_pl==1,bp2,bp1),MVPASS)} selected_move=1 end function human_p1_move() if droll()==0 or update_timer() then pass() return MODE_MAPPLY end local cm=-1 for i=1,#moves do if moves[i].pn>0 then local pos=pnp1[moves[i].pn] local pnrct=rct(pos.x,pos.y,16,16) if inrct(pnrct,mpos) then spr(266,pos.x,pos.y,0,1,0,0,2,2) local npos=pnp1[moves[i].pn+droll()] spr(264,npos.x,npos.y,0,1,0,0,2,2) cm=i end elseif moves[i].pn==0 then if inrct(PWNSP1,mpos) then spr(266,PWNSP1.x+(getnp(bp1)-1)*16,PWNSP1.y,0,1,0,0,2,2) local npos=pnp1[moves[i].pn+droll()] spr(264,npos.x,npos.y,0,1,0,0,2,2) cm=i end end end if inrct(DICE,mpos) then print("Pass",DICE.x,DICE.y-8) drct(DICE,5,1) cm=-1 if lmb then pass() return MODE_MAPPLY end end if lmb and cm>0 then selected_move=cm return MODE_MAPPLY end return MODE_P1 end p2timer=3 chance_to_overplay=0.1 --chance that player will play higher than their skill overplay_delta=0.15 function mode_p2_move() p2timer=p2timer-DLT if droll()==0 or update_timer() then pass() return MODE_MAPPLY end if p2timer<=0 then local s=p2skill p2timer=0.3*timer*(0.1*s+0.4*(1-s)+rndf(-0.1,0.1)) if #moves>0 then srt(moves, function(m1,m2) if current_pl==2 then return m1.b1>m2.b1 and m1.b2<=m2.b2 else return m1.b2>m2.b2 and m1.b1<=m2.b1 end end ) --there is a small chance (default 10%) --that CP will play over its level --by overplay_delta points local s=clp(p2skill+trn(rndn()=ANIMDUR) then bp1=trn(cp==1,m.b1int,m.b2int) bp2=trn(cp==2,m.b1int,m.b2int) local t=ease(tanim/ANIMDUR) local fr=m.pn local to=fr+droll() if mcode==MVREG or mcode==MVOFF then anim_move_pwn(fr,to,current_pl,t) if mcode==MVREG and t==0 then sfx(2) end if mcode==MVOFF and t==0 then sfx(3) end elseif mcode==MVSTASH then if t==0 then sfx(1) end local np=trn(current_pl==1,getnp(bp1)+1,getnp(bp2)) anim_move_stash(to,current_pl,np,t) elseif mcode==MVEAT then if t==0 then sfx(1) end anim_move_pwn(fr,to,current_pl,t) local np=trn(current_pl==1,getnp(bp2),getnp(bp1)) anim_move_stash(to,flp(current_pl),np+1,1-t) end tanim=tanim+DLT else tanim=0 if not (m.c==MVPASS) then local b1,b2=m.b1,m.b2 if current_pl==1 then bp1,bp2=b1,b2 else bp1,bp2=b2,b1 end current_pl=trn(gettrn(bp1),1,2) else current_pl=flp(current_pl) end victory=vct() if victory>0 then return MODE_VICTORY end return MODE_DICE end return MODE_MAPPLY end end function mode_psel() current_pl=rnd(1,2) return MODE_DICE end game_modes={mode_dice_roll,human_p1_move,mode_p2_move,mode_victory,mode_mfind,mode_mapply,mode_psel} function update_game_mode() current_mode=game_modes[current_mode]() return state_from_mode end --Pawn stash function draw_pawns() local p1=vec(PWNSP1.x,PWNSP1.y) local p2=vec(PWNSP2.x,PWNSP2.y) local sz=vec(PWNSP1.w,PWNSP1.h) drct(trn(current_pl==1,PWNSP1,PWNSP2),6,1) local dpos=trn(current_pl==1,p1,p2) spr(268,dpos.x-20,dpos.y,0,1,0,0,2,2) for i=1,getnp(bp1) do spr(256,p1.x+(i-1)*16,p1.y,0,1,0,0,2,2) end for i=1,getnp(bp2) do spr(258,p2.x+(i-1)*16,p2.y,0,1,0,0,2,2) end end --Dice function rdc()return {rnd(0,1),rnd(0,1),rnd(0,1),rnd(0,1)} end function draw_dice() for i=1,4 do local sp=trn(dice[i]==0,260,262) spr(sp,DICE.x,DICE.y+16*(i-1) ,0,1,0,0,2,2) end end --Turn timer function update_timer() timer=timer-DLT if timer<=0 then timer=60 return true else return false end end function draw_timer() print(flr(timer),TIMER.x,TIMER.y) end --Move codes MVSTASH=0 MVOFF=1 MVREG=2 MVEAT=3 MVPASS=4 --Move finder --get moves for b1 --Function is player agnostic, --assumes it's b1's turn function get_moves(b1,b2,dr) local pidx=0 local mvs={} local m b1,b2=setoff(b1,false),setoff(b2,false) b1,b2=seteat(b1,false),seteat(b2,false) local nb1,nb2=settrn(b1,false),settrn(b2,true) if dr==0 then return mvs end if not occ(b1,1<<(dr-1)) and getnp(b1)>0 then --pawn 0 denotes new pawn local ob1=b1 local rpl=ros(1<<(dr-1)) nb1,nb2=settrn(bput(decnp(b1),dr),rpl),settrn(b2,not rpl) m=move(0,dr,nb1,nb2,MVSTASH) m.b1int=decnp(ob1) tins(mvs,m) --return mvs end --cycle through pawns for i=0,13 do --cycle through pawn positions nb1,nb2=settrn(b1,false),settrn(b2,true) local p=1<0 then drawp(i,p) end end end function drawp(idx,p) local pnp=trn(p==1,pnp1,pnp2) local sp=trn(p==1,256,258) spr(sp,pnp[idx+1].x,pnp[idx+1].y,0,1,0,0,2,2) end --Input mpos=vec(0,0) lmb=false rmb=false lastlmb=false lastrmb=false function input() local mx,my,lb,mb,rb=mouse() mpos=vec(mx,my) lmb=lb and not lastlmb rmb=rb and not lastrmb lastlmb=lb lastrmb=rb end --Save/load function clear_save() pmem(0,0) end function has_save() return pmem(0)>0 end function save() pmem(0,1) pmem(1,bp1) pmem(2,bp2) pmem(3,current_pl) pmem(4,(p2skill*1000000)//1) pmem(5,timer*1000000//1) --pmem(6,current_mode) pmem(7,dice[1]) pmem(8,dice[2]) pmem(9,dice[3]) pmem(10,dice[4]) end function load() reset_game() --reset_dice() dice[1],dice[2],dice[3],dice[4]=pmem(7),pmem(8),pmem(9),pmem(10) bp1=pmem(1) bp2=pmem(2) current_pl=pmem(3) p2skill=pmem(4)/1000000 timer=pmem(5)/1000000 --current_mode=pmem(6) current_mode=MODE_MFIND --mode_mfind() end