100 200000
gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggguuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeennnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnpppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuukkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooossssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnneeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnoooooooooooooooooooooooooooooooooooooooooooooooooooooooo
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccctttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvviiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooolllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyypppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllliiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooollllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkklllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnncccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqlllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeettttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrryyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddduuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuummmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxpppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuubbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggguuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwpppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeewwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkklllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllljjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuurrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrriiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyylllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqquuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppprrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuutttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuubbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvviiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuufffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrruuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuullllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt
ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffpppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
f
a
-
t
d
-
e
-
-
v
-
u
-
w
u
-
b
f
c
-
a
-
-
-
w
-
-
k
-
f
-
y
w
-
i
b
-
-
-
o
-
y
-
c
-
x
-
b
-
s
g
-
-
t
e
-
-
a
m
l
-
-
-
l
k
-
f
-
l
-
-
k
j
r
-
-
x
-
l
-
h
-
v
i
-
t
-
-
-
e
-
d
-
d
-
t
-
e
-
c
s
-
j
m
-
-
j
b
-
v
-
-
-
k
q
e
-
-
r
u
-
-
-
v
i
u
x
e
-
-
-
a
-
c
-
-
-
d
f
-
j
-
c
-
-
m
-
i
-
j
-
k
-
s
-
r
-
k
-
h
e
-
c
p
-
-
v
-
i
t
-
-
-
l
-
w
m
q
-
t
l
i
-
w
-
h
m
-
-
j
x
v
-
x
g
-
-
-
q
-
x
-
-
-
c
-
-
-
-
m
m
-
x
-
-
a
-
p
-
d
-
o
-
j
-
j
-
a
-
c
-
k
-
f
-
w
-
i
-
v
-
g
q
-
-
j
-
q
-
m
-
w
a
w
-
-
-
e
n
-
-
h
-
y
-
x
-
e
-
d
-
t
-
o
-
y
-
b
-
p
-
g
-
i
-
s
-
d
-
s
b
-
u
-
-
y
j
-
-
a
-
f
-
k
-
s
-
d
-
l
-
q
i
-
-
e
-
s
w
-
-
e
-
u
-
h
-
g
-
d
-
f
y
-
-
s
-
p
y
w
-
-
-
x
e
m
-
d
-
a
d
-
-
-
-
n
-
j
-
o
k
-
j
n
-
-
-
t
-
x
g
-
-
g
-
h
k
-
x
p
w
-
-
-
-
j
-
l
u
o
d
u
o
h
-
-
-
p
g
-
-
-
-
-
-
a
-
v
-
w
-
y
p
-
-
q
-
r
t
-
h
m
-
-
e
-
-
f
m
-
x
-
-
o
-
m
-
k
-
c
l
-
-
a
-
o
k
-
-
w
-
a
q
-
-
f
-
m
-
j
-
f
-
y
-
b
-
w
b
-
-
v
f
l
-
b
-
i
t
b
-
-
-
-
x
-
p
h
-
d
-
-
-
d
-
c
-
t
-
b
-
w
-
n
-
y
-
m
-
w
j
-
-
h
-
j
-
h
-
d
-
u
-
s
-
r
-
t
g
-
-
g
-
o
-
k
-
l
-
j
-
w
t
-
-
x
d
-
-
n
-
h
-
b
-
y
-
p
-
y
l
-
-
r
-
i
x
-
e
-
-
v
f
-
-
h
c
h
-
-
-
j
f
e
-
-
-
b
-
v
b
-
-
r
-
y
-
q
o
o
-
-
-
x
j
-
a
-
-
k
-
r
g
-
-
p
-
r
-
s
k
-
-
p
-
c
-
y
-
r
-
h
-
w
-
h
-
g
a
u
-
-
-
n
-
j
j
-
-
i
-
i
-
e
-
p
-
w
w
-
-
p
l
-
-
v
-
l
t
-
-
p
-
c
-
a
-
g
-
b
-
x
t
-
-
r
-
r
f
d
d
p
f
-
-
-
n
-
b
-
-
-
s
t
-
-
-
h
v
-
-
i
k
-
c
u
-
-
-
x
-
o
-
k
-
b
-
q
y
n
-
j
-
-
i
-
-
t
p
b
-
-
s
k
-
-
i
-
-
w
n
-
-
i
-
t
-
f
-
x
-
c
-
q
-
b
-
j
-
q
p
t
r
-
x
-
-
y
l
-
y
-
q
u
r
-
-
j
-
-
-
-
-
w
-
g
-
b
-
t
g
g
-
-
-
d
-
w
-
n
y
-
s
q
-
-
c
-
c
a
u
-
-
-
-
j
w
f
t
-
-
j
-
-
-
y
-
o
-
v
o
c
x
-
-
-
-
c
d
-
-
w
-
r
-
x
-
x
w
n
g
-
-
w
-
-
-
q
-
t
-
o
-
g
-
q
-
k
-
i
-
y
-
a
-
h
-
l
w
-
v
-
-
m
-
y
-
m
-
e
-
r
t
j
-
-
-
f
-
w
-
v
e
g
-
-
h
-
p
-
-
q
f
r
-
-
-
f
-
y
j
-
-
q
k
-
-
k
-
p
t
-
i
i
k
-
-
-
s
v
v
-
-
-
j
-
o
-
-
x
-
s
-
u
-
i
-
w
-
q
-
f
a
-
-
h
-
h
-
l
-
d
k
-
-
l
-
w
-
q
h
-
-
u
u
-
-
n
-
d
-
w
-
b
-
n
w
-
-
x
-
o
-
t
-
n
e
p
-
-
-
a
m
-
-
r
-
j
-
e
-
e
-
s
e
w
v
i
a
f
-
-
-
-
-
e
-
-
-
b
h
g
p
-
-
m
-
j
t
c
h
-
d
-
-
-
u
-
-
n
-
-
-
s
c
h
g
-
d
-
-
-
-
u
-
l
-
o
-
c
-
i
-
w
-
q
w
-
-
u
-
x
i
-
-
b
w
-
s
-
o
-
q
-
-
x
l
v
-
k
-
-
-
b
-
r
r
-
-
v
-
h
-
l
-
g
n
g
x
-
-
-
-
l
-
u
-
a
u
f
-
-
-
t
-
l
-
j
-
e
-
m
-
j
-
g
g
-
q
-
x
-
m
-
-
f
u
-
-
d
-
q
-
s
-
h
-
e
s
-
c
-
-
r
-
t
-
e
-
b
-
s
-
o
-
e
w
-
-
s
y
w
f
-
-
-
y
-
y
-
q
-
-
v
-
u
y
d
-
-
-
b
-
m
a
-
-
w
-
a
v
d
-
-
-
x
-
h
-
y
t
-
l
-
-
d
-
r
-
x
-
r
-
r
w
-
-
j
-
v
f
-
-
s
-
r
u
-
-
h
y
-
-
x
-
t
-
g
-
s
-
m
-
k
-
r
i
-
-
d
-
h
-
k
-
k
-
c
-
f
-
m
-
h
-
w
-
b
-
t
f
-
-
y
-
i
-
h
-
f
s
i
o
-
-
-
k
-
-
u
-
q
g
-
-
s
-
o
-
p
v
u
p
-
-
-
-
h
-
o
-
j
-
s
m
-
-
w
-
s
-
v
b
-
-
w
-
b
-
g
-
o
-
m
-
n
m
j
-
c
l
s
-
-
-
-
-
k
-
g
m
-
s
i
-
j
h
-
-
r
-
-
-
v
-
a
-
o
-
c
-
i
i
u
w
n
-
-
-
-
b
-
x
j
-
i
-
-
-
w
-
t
-
w
-
m
-
c
-
r
f
-
-
o
-
b
v
-
-
t
b
-
-
b
f
l
-
w
-
-
-
g
-
r
t
-
-
m
b
h
-
u
-
-
j
e
-
n
-
-
-
c
-
b
c
-
a
p
-
-
-
n
d
-
g
-
k
-
v
-
d
q
-
-
g
-
-
l
-
k
-
m
o
m
-
s
y
-
-
-
-
v
-
b
v
g
-
-
-
m
y
-
-
m
-
o
-
a
m
o
-
n
-
q
o
-
-
m
v
e
-
g
-
-
-
-
-
m
r
h
i
-
-
b
-
-
-
k
-
n
m
-
s
k
-
d
-
i
-
o
d
b
p
-
m
b
-
-
-
-
n
-
-
-
-
l
o
s
-
-
-
c
n
p
m
-
-
-
-
x
-
b
-
g
-
d
-
o
n
k
-
-
-
r
p
-
j
-
-
f
c
-
f
-
h
g
-
-
-
o
-
l
o
-
q
x
-
-
c
-
-
b
j
-
-
f
-
f
j
-
-
p
-
o
q
-
v
n
o
-
l
-
-
-
-
w
-
l
a
-
u
-
d
-
-
r
-
r
-
b
t
-
-
j
-
s
-
v
-
l
-
w
-
c
-
h
-
i
-
l
-
w
-
t
-
a
t
-
g
-
t
-
-
k
-
l
-
k
-
y
-
k
s
-
-
e
-
r
q
-
-
r
f
i
-
-
-
c
-
e
-
q
c
-
-
q
q
m
-
-
-
m
-
s
-
k
m
-
-
r
-
d
a
-
-
x
-
y
-
d
-
j
g
j
-
g
r
v
-
-
-
s
-
-
g
-
-
t
-
v
u
r
-
-
-
a
k
i
-
v
-
-
i
-
m
-
-
x
-
i
-
j
-
m
-
d
m
-
-
r
-
h
-
c
-
a
-
c
-
j
-
y
-
k
m
-
a
-
-
h
-
k
-
t
-
g
-
t
b
-
h
-
-
y
q
x
-
-
-
p
h
-
-
c
d
-
j
b
-
u
d
-
-
t
f
-
c
-
-
r
-
a
-
-
-
p
-
q
m
-
q
-
d
-
-
p
y
l
-
-
-
b
-
g
d
b
f
f
-
-
-
-
-
j
-
w
-
i
n
p
p
-
-
y
-
k
-
-
h
b
-
e
-
h
f
-
-
a
-
-
n
-
-
f
-
i
-
h
-
w
e
-
-
e
-
c
j
-
q
-
-
r
-
u
-
s
h
-
-
j
-
h
-
q
-
p
i
a
-
w
r
-
-
-
-
y
-
n
-
e
-
k
b
-
o
-
-
k
v
-
v
-
w
w
-
-
-
w
-
x
k
-
-
g
-
e
-
b
s
v
l
r
e
-
-
-
-
x
l
-
r
-
l
-
-
e
b
-
g
-
-
-
-
b
-
q
-
c
w
-
k
-
w
d
f
t
-
-
p
j
-
-
-
l
-
w
s
-
-
s
-
-
r
r
k
w
-
-
t
-
-
-
-
n
-
t
-
o
-
s
t
-
-
a
-
b
-
t
o
-
a
-
-
i
-
l
-
m
g
g
-
n
j
i
o
-
-
d
d
d
-
-
-
-
-
-
-
b
r
-
-
q
-
j
-
x
e
h
a
-
-
-
-
v
g
-
h
-
-
h
-
o
-
c
-
q
-
m
x
q
-
-
o
-
i
q
-
-
w
-
-
a
-
y
-
p
-
g
-
l
-
a
n
f
u
j
y
-
-
-
g
s
-
-
-
-
f
-
-
g
-
r
-
h
e
i
j
s
-
-
g
t
-
a
x
-
-
o
-
x
-
-
-
-
-
c
-
p
-
s
-
t
-
q
r
u
-
k
-
-
-
l
s
b
n
m
t
-
-
-
-
-
-
b
-
s
l
-
-
o
-
a
-
q
-
h
a
-
o
i
-
-
-
m
-
g
-
u
-
v
-
p
l
-
m
-
-
y
-
s
c
-
-
j
-
w
-
y
-
y
-
w
-
i
-
j
k
-
-
d
-
n
k
f
-
-
x
-
c
s
-
-
a
-
-
i
-
p
e
-
-
o
-
o
-
n
-
b
-
w
c
-
-
k
-
c
-
o
-
t
-
k
-
n
w
b
-
-
-
t
-
y
b
-
-
i
-
x
-
e
m
-
-
t
-
y
-
d
-
s
-
a
j
y
-
-
-
d
-
k
j
-
-
e
g
-
s
k
-
-
h
l
-
-
-
e
-
l
-
l
-
p
t
g
-
p
-
-
-
f
-
k
s
g
-
-
-
e
x
-
-
c
-
h
-
v
-
k
-
b
-
y
-
n
k
b
-
-
-
q
-
t
-
s
-
r
y
-
-
c
b
-
-
j
-
j
-
s
-
b
e
-
-
w
-
n
-
q
-
t
b
-
-
j
-
r
-
e
i
-
-
k
-
p
-
a
-
p
-
f
d
-
-
b
-
g
x
e
-
u
m
-
-
f
-
t
-
-
-
m
-
p
-
v
-
l
-
h
-
l
v
-
-
v
-
o
-
t
-
d
-
g
d
-
-
u
-
v
-
w
-
q
-
g
-
r
r
-
-
l
j
-
m
-
-
q
-
k
-
u
-
b
-
u
-
c
-
k
-
i
x
p
-
-
v
w
p
-
-
f
-
a
-
-
u
k
-
e
-
q
l
-
c
-
-
-
-
s
u
-
-
i
-
k
-
u
-
w
-
j
o
-
y
x
f
i
p
-
-
-
g
-
r
b
t
a
-
-
-
r
-
-
-
u
-
-
-
h
-
w
-
x
-
f
-
x
l
-
-
o
-
t
-
r
v
i
-
-
j
-
-
e
k
-
-
c
-
k
-
m
-
q
-
s
-
p
-
v
-
b
-
r
i
-
-
j
t
-
-
e
c
-
-
e
q
m
-
-
-
d
-
f
-
l
-
l
v
y
-
i
-
-
-
m
-
l
q
-
-
p
-
w
-
e
-
u
f
-
j
n
-
-
-
u
-
t
-
l
-
s
f
-
-
l
-
s
-
a
a
-
-
k
-
c
-
y
-
c
v
-
-
h
-
e
-
j
-
c
-
p
-
o
-
x
-
y
-
h
o
-
-
h
-
a
-
s
-
o
-
u
-
i
g
-
-
a
-
p
-
i
-
b
-
k
f
-
u
-
-
n
-
p
i
-
-
b
-
e
-
j
t
-
m
-
-
o
v
b
-
x
-
x
-
a
-
o
-
-
-
l
x
c
u
-
-
-
-
y
-
y
p
f
-
-
-
k
-
k
-
x
-
s
-
v
-
s
-
n
p
-
-
n
-
y
-
a
-
a
-
j
-
n
-
s
m
d
-
-
-
c
-
x
m
j
a
-
-
-
a
-
j
w
-
-
-
k
-
q
-
o
-
r
-
n
s
-
x
-
q
-
-
t
-
h
-
o
i
-
b
-
-
o
n
-
o
c
-
-
-
b
-
e
-
m
-
l
u
-
c
-
-
a
-
p
-
g
c
-
n
-
-
q
-
m
-
r
y
q
-
-
-
c
-
v
-
n
t
s
-
-
k
w
-
-
m
-
-
l
-
r
x
-
-
v
-
i
u
p
-
-
-
o
-
l
-
i
-
u
-
q
-
y
h
-
q
-
a
-
b
-
-
j
-
n
-
q
-
t
-
v
-
g
-
v
p
-
-
a
-
k
s
-
a
-
-
r
-
o
-
v
e
q
-
-
-
d
j
-
m
h
-
-
-
b
-
r
x
t
-
-
w
-
-
p
-
l
-
n
-
i
-
s
i
-
x
w
r
p
-
a
v
-
-
-
h
-
l
-
-
p
-
-
-
m
k
-
-
e
a
-
-
v
g
-
l
-
-
g
s
n
-
-
l
-
-
q
-
b
-
i
w
-
-
y
-
o
n
-
y
-
-
c
-
x
j
-
d
-
x
f
y
-
-
-
i
-
-
f
-
i
-
k
-
o
-
u
-
m
-
e
o
-
k
d
-
-
-
f
-
j
i
-
-
g
-
o
-
b
-
l
c
v
-
y
-
-
-
s
-
p
-
r
-
v
b
j
m
-
-
-
k
-
y
-
-
m
-
d
-
c
j
-
-
r
p
u
-
e
h
q
c
o
d
j
y
-
r
f
x
-
-
-
-
-
-
-
-
-
-
-
p
-
-
s
-
w
-
c
o
k
h
-
-
-
v
-
q
j
-
w
-
-
-
r
v
x
-
-
-
d
-
w
x
-
e
v
-
-
e
-
-
l
h
a
-
p
-
-
-
j
b
-
-
g
-
i
-
o
l
-
g
-
-
i
-
b
-
o
-
i
-
d
-
s
w
-
-
s
-
h
g
p
-
-
g
v
-
e
-
-
-
w
v
d
j
f
s
-
n
-
x
-
-
-
j
h
-
c
m
-
-
p
u
-
p
h
-
q
-
-
-
s
k
-
s
w
c
-
-
-
-
-
-
p
t
r
a
-
-
-
x
l
e
-
q
-
-
-
i
-
s
t
-
c
-
-
c
-
-
-
-
u
-
n
h
k
h
-
-
l
p
-
n
-
k
w
-
-
-
g
t
-
-
-
-
d
-
v
u
-
w
-
-
s
-
s
h
-
-
c
-
h
-
m
-
u
-
n
a
n
-
-
v
-
-
d
l
-
-
d
-
p
-
m
f
-
c
-
-
h
-
k
-
e
-
t
d
u
-
-
-
u
-
d
m
n
-
w
-
e
-
-
-
r
-
r
e
n
s
-
y
t
-
y
-
x
-
-
n
-
-
-
u
-
r
-
e
-
-
p
-
c
-
e
-
y
s
-
-
o
-
d
-
c
-
f
-
n
-
a
w
-
-
i
h
-
-
c
-
j
-
f
-
c
o
-
-
e
-
m
v
y
-
t
j
g
-
-
-
-
-
e
-
w
-
y
-
u
-
a
-
q
-
o
-
k
-
q
-
h
i
-
-
f
v
-
-
p
-
t
-
i
h
-
-
e
-
l
-
g
-
y
m
-
-
q
-
y
-
f
-
s
-
c
g
a
-
-
-
m
-
a
-
i
-
h
d
y
-
-
-
m
-
n
-
u
d
c
-
-
-
b
-
a
-
d
h
-
-
m
-
q
g
-
-
i
-
t
-
v
-
d
q
s
n
f
-
-
-
i
m
-
-
p
f
-
-
-
r
-
-
u
e
-
-
x
g
f
w
-
-
-
-
a
-
r
-
i
-
y
-
u
-
b
-
o
-
a
c
j
g
-
s
k
-
-
r
-
w
-
-
-
-
s
g
a
-
e
-
a
d
-
a
-
-
r
-
b
u
-
-
-
-
s
-
u
x
-
c
-
-
f
v
-
-
f
-
r
g
f
-
-
-
f
-
c
-
y
-
r
-
a
-
x
-
e
v
-
-
x
l
-
-
f
-
a
-
e
-
d
-
a
-
k
-
x
-
e
-
d
e
x
-
d
-
-
x
-
r
-
y
-
-
m
-
l
-
u
-
s
k
x
-
-
b
y
-
-
-
l
-
d
-
l
-
p
-
q
-
a
-
p
v
t
-
t
-
q
-
-
i
c
-
-
-
k
-
i
-
p
a
-
-
e
-
c
-
n
-
p
j
-
-
d
-
k
-
j
-
x
y
q
-
-
-
d
-
v
-
l
-
a
-
j
-
o
-
t
-
m
e
-
p
-
-
w
f
t
-
k
-
g
-
-
-
k
h
-
-
m
r
-
-
e
-
i
-
w
-
q
-
j
y
b
-
a
h
-
-
-
-
s
e
f
d
l
-
-
-
-
-
h
u
-
-
d
-
j
-
t
x
-
-
w
-
c
-
a
p
-
-
h
-
k
-
n
m
-
e
o
b
-
-
-
-
l
-
h
w
-
d
-
f
-
-
s
-
l
-
v
-
t
g
-
-
i
-
h
-
x
-
e
-
t
-
y
-
m
-
h
-
u
-
p
-
o
n
-
-
l
-
n
m
v
n
-
y
-
-
-
-
h
-
s
-
k
n
j
r
-
p
f
-
-
p
-
-
-
-
v
g
i
-
-
u
-
-
m
-
p
-
h
-
n
-
t
-
e
a
-
-
y
d
-
-
i
-
n
g
-
-
t
c
-
p
g
-
-
k
-
-
y
q
h
t
j
-
-
d
-
-
m
-
-
-
b
a
-
-
w
y
-
k
c
e
-
-
-
-
v
d
r
-
-
-
x
-
n
t
-
m
e
-
-
-
l
-
k
s
h
n
-
r
f
i
-
-
-
l
-
-
-
-
b
-
t
-
k
o
-
-
k
t
-
-
e
-
k
-
r
-
t
-
y
-
g
-
j
-
m
-
a
-
h
-
q
v
w
-
b
t
-
-
-
-
e
k
b
-
b
y
-
-
m
f
-
-
q
-
b
-
-
-
t
-
p
-
k
m
-
j
-
-
b
-
v
j
-
-
a
k
-
-
c
q
-
v
-
-
n
x
-
-
k
-
l
-
x
-
n
-
v
l
x
-
j
-
-
-
l
c
-
k
-
-
r
-
v
-
q
r
n
-
-
-
n
n
-
-
g
-
e
d
-
-
y
w
o
i
e
v
-
r
-
v
e
n
x
-
c
-
-
-
-
-
v
-
-
a
r
-
-
-
-
-
c
-
v
-
d
-
n
w
-
o
-
-
c
-
o
-
l
t
-
-
p
u
o
-
-
s
m
-
-
-
r
-
i
g
-
-
t
-
h
-
y
-
f
-
m
-
p
-
b
-
w
-
m
-
i
f
m
-
w
-
-
-
y
-
u
-
c
c
-
-
a
-
m
-
a
-
w
-
b
-
j
-
p
v
-
-
m
l
l
x
-
b
-
-
m
v
y
-
-
-
-
f
x
-
-
x
-
-
f
-
h
-
h
-
q
t
-
-
u
q
-
-
u
t
-
-
d
-
b
-
t
-
p
s
d
-
-
o
g
-
-
-
x
-
g
-
n
-
h
-
k
-
f
j
e
-
-
y
-
d
-
n
-
l
l
d
-
-
-
m
-
-
f
-
j
-
q
-
l
-
c
-
x
-
b
s
-
v
-
r
d
t
-
e
-
h
g
w
s
h
-
u
-
x
-
-
-
-
-
-
-
-
o
d
-
b
-
k
w
a
-
-
-
-
f
-
h
-
v
w
-
u
-
-
b
-
i
-
c
-
a
-
c
-
b
i
-
-
j
-
d
-
k
h
d
s
-
h
p
-
-
-
-
h
-
-
t
f
y
-
-
-
t
v
a
a
-
-
-
k
-
-
r
u
-
w
-
-
u
-
o
-
v
-
o
v
-
-
u
j
-
-
h
o
-
t
c
g
-
-
-
a
-
-
l
-
o
-
o
-
d
u
l
-
-
-
c
-
l
p
-
-
c
v
-
-
d
-
q
-
g
-
q
-
q
p
d
-
-
-
u
w
y
y
m
-
f
-
f
-
-
-
-
w
-
-
y
e
-
p
-
-
d
l
-
-
g
-
v
-
o
n
-
-
w
-
h
y
t
-
m
-
-
-
e
-
u
-
o
-
w
-
u
-
i
-
b
-
q
p
x
-
-
-
x
-
n
g
d
-
-
-
d
r
-
-
q
-
n
-
l
j
-
-
x
-
x
q
-
g
-
-
x
-
e
u
k
-
-
-
g
w
-
-
g
-
j
-
q
o
-
k
-
f
o
-
q
-
y
-
-
v
w
v
-
v
-
k
-
-
-
-
y
c
k
-
-
-
f
-
p
n
b
-
-
-
h
-
u
-
f
c
l
-
-
x
-
-
o
-
d
-
s
-
w
-
d
-
w
-
b
n
g
-
-
-
v
-
j
-
i
y
-
-
t
-
y
-
q
-
c
c
-
-
m
-
w
-
e
-
r
-
t
k
-
g
-
v
-
e
j
-
-
d
-
o
-
-
o
p
-
-
o
-
m
-
m
-
x
-
y
-
t
-
j
-
w
-
c
l
-
x
-
j
s
l
-
-
-
-
b
l
-
l
w
-
-
-
v
-
q
m
x
s
q
-
-
c
r
h
-
-
-
i
p
e
j
-
-
-
d
-
e
-
-
-
-
-
c
-
q
e
x
-
-
-
d
-
e
f
-
-
r
-
d
-
d
s
-
y
t
-
-
-
w
-
t
r
-
i
o
-
u
l
-
c
-
-
-
-
a
f
k
-
-
p
g
-
-
-
b
-
h
-
s
-
c
-
v
-
g
h
-
-
c
-
a
v
f
o
-
b
-
-
w
g
-
-
b
t
-
-
-
x
l
-
o
-
-
-
s
-
p
g
f
-
q
w
-
-
-
-
h
-
q
-
d
a
r
-
-
-
a
-
k
-
h
-
b
-
g
a
-
-
x
v
-
-
v
-
p
r
-
-
m
u
-
-
o
-
l
y
w
-
-
-
u
-
u
-
e
s
a
-
-
j
-
-
s
u
-
-
v
x
-
-
p
h
-
s
a
-
-
-
v
-
e
-
y
-
c
-
e
-
h
s
f
x
c
g
-
-
-
-
-
-
t
-
d
-
g
-
m
-
n
-
a
-
y
-
e
o
w
-
-
t
-
g
-
-
r
-
q
o
-
-
u
l
h
-
-
r
-
-
f
-
a
-
s
-
j
-
c
-
y
-
b
-
m
-
l
-
f
-
h
-
v
-
l
f
n
-
d
-
t
-
-
-
b
-
p
-
x
-
y
h
-
p
-
l
r
-
-
-
w
a
-
-
p
-
j
c
-
j
-
-
h
c
-
-
g
b
-
-
l
-
s
-
p
k
-
e
-
n
-
l
m
-
-
d
-
-
g
-
n
-
p
n
-
-
g
-
d
-
d
-
s
q
-
g
-
-
y
-
m
-
o
m
s
o
-
-
-
h
h
-
-
y
-
-
o
-
o
-
i
y
m
-
v
-
-
-
o
-
x
-
j
-
o
-
k
r
-
-
b
q
n
-
i
-
-
r
-
-
r
-
h
y
-
-
s
s
-
-
a
-
m
v
h
-
s
-
-
-
j
-
a
-
u
-
v
d
h
-
-
-
v
-
r
-
l
-
t
l
-
c
-
-
b
-
t
-
l
-
s
-
l
-
w
n
-
-
j
-
d
l
-
-
o
-
b
x
-
t
-
g
r
-
q
-
-
o
-
-
n
r
v
-
-
d
-
g
-
-
a
-
o
-
y
x
-
j
-
x
-
-
x
k
-
h
-
-
i
-
u
-
b
-
r
i
-
a
a
-
b
-
-
-
r
j
-
-
k
-
u
-
a
-
j
e
-
o
-
-
m
-
i
-
m
-
c
x
-
-
e
k
-
c
t
-
f
-
-
d
-
m
-
o
-
a
-
o
-
-
l
-
s
e
-
-
o
c
-
-
i
l
-
c
-
-
b
-
s
-
x
m
s
-
-
p
n
-
h
e
-
x
q
-
-
-
-
f
-
-
x
-
f
-
y
f
-
-
j
-
k
u
-
-
a
p
w
-
-
-
t
-
q
o
t
-
-
h
-
-
t
q
-
v
-
b
-
-
g
m
-
w
-
q
-
-
w
-
y
-
j
-
s
f
-
m
-
i
-
j
-
-
d
-
n
-
t
-
w
-
c
d
m
-
-
-
n
-
i
-
q
-
l
k
-
f
b
d
-
-
w
-
-
-
u
-
y
-
t
q
g
u
-
-
-
-
a
-
x
-
d
-
a
c
-
b
-
g
-
w
d
-
-
a
-
-
j
-
s
-
v
i
-
-
l
-
q
-
t
f
-
-
a
s
k
m
-
-
-
-
o
w
i
-
-
-
o
b
-
j
-
-
r
-
u
p
-
-
f
-
p
-
m
-
n
l
-
-
b
-
r
-
k
-
t
-
p
-
g
-
k
-
q
q
g
q
-
f
-
-
-
-
a
-
i
-
j
-
c
-
m
g
b
-
-
-
n
m
l
s
-
h
-
-
-
-
i
p
-
-
w
-
s
-
u
r
-
-
p
m
t
o
v
w
-
j
v
g
q
-
b
-
x
-
p
-
-
g
-
-
-
-
p
n
-
-
-
-
-
-
k
k
-
-
c
-
k
-
j
w
-
t
-
-
w
-
e
-
b
t
-
f
-
-
d
-
e
y
-
-
n
w
-
-
k
-
n
-
a
-
d
-
g
-
s
-
j
-
m
-
p
-
j
o
x
q
y
-
-
g
u
d
-
-
-
-
-
o
h
-
-
-
f
-
u
-
m
-
e
c
s
j
-
e
d
-
-
d
m
t
-
-
h
r
r
-
l
o
-
-
-
-
-
-
-
-
b
-
u
s
l
-
-
-
g
b
-
-
h
-
w
-
q
-
k
-
w
-
b
x
-
-
i
-
o
q
c
p
-
-
-
-
i
-
g
-
d
-
w
r
-
-
n
-
t
u
-
-
h
v
-
w
r
-
h
w
o
-
-
d
-
-
-
-
i
-
r
-
w
-
y
-
x
-
v
-
j
-
g
f
i
-
-
-
b
-
i
a
-
-
u
q
v
-
o
-
-
-
b
-
m
-
a
-
o
-
g
-
v
-
f
k
-
-
i
i
-
-
s
-
x
l
-
-
s
-
m
-
t
d
v
-
-
-
h
k
k
o
-
-
-
-
r
-
h
a
t
-
m
w
l
b
e
a
p
q
-
-
t
-
-
-
-
-
-
s
-
-
n
-
-
-
m
t
-
-
l
-
y
t
-
-
g
o
-
-
e
-
h
c
k
n
-
a
-
-
-
-
e
-
d
-
x
t
-
-
q
-
y
-
s
-
h
-
u
-
o
-
v
-
t
b
m
g
-
-
-
t
-
-
u
-
q
-
u
-
k
-
e
-
r
-
m
-
y
y
-
-
i
d
-
x
y
-
x
-
-
-
g
-
m
-
k
-
q
n
-
-
h
-
o
y
-
u
-
-
q
-
x
-
r
-
t
-
j
h
-
-
v
-
c
-
e
k
c
-
-
-
q
-
u
p
-
j
-
-
b
s
-
-
e
-
c
b
f
s
g
h
w
w
-
p
-
-
e
u
-
x
-
-
-
-
-
-
w
-
-
l
-
m
-
-
x
q
-
-
l
q
-
e
-
f
-
r
-
-
u
-
j
u
-
-
k
k
d
-
-
-
n
v
-
-
e
-
f
-
p
-
c
f
-
-
j
i
-
-
d
-
g
-
q
-
u
-
e
-
k
w
-
-
j
-
j
-
m
-
y
t
h
-
-
q
l
-
h
g
-
-
p
-
-
-
q
-
s
q
-
-
x
-
w
-
j
h
-
p
-
o
-
-
r
-
p
-
c
-
x
-
y
-
e
-
e
-
e
-
e
-
e
m
p
-
-
-
v
-
r
-
y
-
l
-
m
-
s
-
p
-
n
d
k
-
-
-
c
-
u
u
-
r
-
-
x
-
a
-
j
-
b
-
y
r
-
-
u
-
j
-
i
j
-
d
-
-
u
-
c
k
-
-
u
-
n
-
o
-
m
h
-
-
x
-
x
p
-
-
o
r
-
-
a
-
j
-
i
-
m
-
r
-
a
-
r
x
w
-
-
-
u
b
j
-
-
-
p
-
y
-
m
-
q
s
-
-
i
m
n
-
-
-
v
-
x
u
a
w
-
f
n
-
-
-
t
r
-
-
v
-
-
-
d
c
-
-
m
-
a
-
d
-
j
-
i
b
-
p
-
i
-
o
o
-
-
r
-
-
j
o
-
o
-
-
n
-
m
-
d
-
f
a
l
-
l
-
v
-
-
t
-
-
n
-
n
-
w
-
x
-
x
-
m
k
-
-
o
-
u
-
w
-
u
-
e
-
q
-
g
b
-
l
-
-
k
-
m
q
-
e
-
-
f
g
-
-
n
-
k
-
f
q
-
-
j
-
y
-
a
-
q
-
q
-
r
-
s
-
n
-
y
-
v
-
h
-
i
-
g
y
-
-
p
-
i
-
a
-
c
-
j
-
k
-
v
-
c
-
v
r
-
r
-
s
-
b
-
-
r
-
p
m
f
-
-
y
-
s
-
-
v
-
u
x
-
-
c
-
v
-
y
-
f
-
v
-
l
y
-
-
o
-
u
-
e
q
f
g
-
-
-
f
g
-
-
-
t
l
x
-
-
-
a
d
-
d
n
-
j
m
-
-
-
-
s
q
e
-
p
-
p
x
-
-
-
m
-
-
d
-
e
-
t
t
-
-
j
o
-
-
m
-
g
-
q
-
k
-
i
-
k
l
-
w
-
-
m
x
r
-
c
-
-
-
w
d
-
-
e
u
x
-
-
-
l
g
-
-
g
c
-
y
-
-
s
-
f
-
h
-
u
v
u
-
-
-
o
-
t
-
q
l
-
-
w
i
-
-
r
-
p
e
-
-
s
n
-
-
k
-
q
c
-
-
v
-
e
b
-
-
f
-
p
-
t
-
b
-
y
-
f
-
c
-
j
r
-
i
-
-
q
-
d
-
o
n
-
-
i
c
-
w
-
a
-
d
f
h
-
p
-
-
-
-
k
-
n
g
-
-
x
d
l
c
-
-
-
-
g
r
-
-
e
-
q
f
-
-
a
-
q
-
e
-
e
g
-
y
m
j
o
-
f
-
-
-
-
-
f
h
-
-
a
d
-
-
s
e
-
-
s
-
q
h
-
-
t
-
j
-
o
-
x
i
j
-
y
q
-
-
-
o
i
-
-
-
a
w
-
-
t
w
-
-
b
-
k
g
-
b
-
-
t
-
o
-
g
-
p
-
u
-
c
m
-
-
g
t
t
-
-
h
-
o
-
-
r
-
g
t
-
x
a
-
-
-
k
-
c
-
i
y
g
a
-
-
-
-
u
n
s
a
i
-
-
-
v
-
-
-
x
-
v
-
n
-
v
l
-
i
-
o
-
-
r
-
e
-
t
-
h
-
v
-
j
-
b
y
-
j
-
-
w
j
p
k
-
e
-
g
-
k
-
-
-
n
l
-
w
w
-
-
-
-
f
-
g
-
d
u
n
-
-
-
n
-
n
-
f
-
n
-
u
-
e
-
v
-
f
-
v
-
j
-
m
-
w
u
-
-
g
-
f
-
g
-
r
-
m
c
-
k
r
-
h
v
-
-
j
d
-
-
-
l
-
-
i
-
m
-
o
-
s
i
-
s
f
-
s
-
-
u
-
s
-
i
-
-
s
-
c
-
g
-
h
q
-
-
c
q
-
-
e
-
y
m
-
-
q
-
j
-
o
u
a
-
-
-
o
x
-
l
-
-
u
-
y
-
l
q
-
-
m
c
r
u
-
-
-
-
p
s
-
-
v
-
q
-
g
j
-
-
o
-
t
-
r
-
w
h
-
-
e
t
n
-
-
-
l
-
k
o
-
b
-
-
k
p
q
v
-
-
-
j
-
f
-
r
-
u
e
f
l
-
-
x
-
-
e
r
-
-
-
-
p
-
g
-
n
e
-
-
e
-
t
j
-
o
-
r
o
-
w
-
u
u
y
c
-
-
q
k
-
j
-
-
v
-
-
-
-
-
o
-
m
f
-
-
y
-
k
j
-
-
v
c
s
-
-
-
j
-
s
-
f
g
-
-
w
s
w
-
-
v
w
-
-
-
v
-
n
-
w
-
t
-
u
v
-
-
v
o
-
-
c
e
-
-
i
f
i
a
l
n
-
-
-
g
-
-
e
-
-
-
g
x
k
u
-
m
-
-
-
-
o
-
x
d
-
-
v
-
s
-
b
-
e
-
a
-
p
-
v
-
q
-
r
-
k
-
b
i
-
-
b
-
y
-
p
-
n
-
w
-
l
-
l
-
s
-
m
-
w
-
e
r
a
i
-
a
-
-
e
g
-
-
-
m
i
g
-
-
-
t
k
-
-
-
u
-
e
j
v
-
a
a
-
-
-
x
-
i
-
-
b
u
-
-
q
-
d
-
g
-
g
-
l
i
-
-
t
-
j
-
b
-
j
-
n
-
x
-
u
y
-
-
c
-
t
-
r
-
v
-
m
-
t
-
a
-
k
h
x
-
-
-
e
-
u
-
t
-
g
c
j
-
-
y
-
-
d
-
e
w
-
-
g
c
-
o
-
d
-
x
-
-
d
p
-
-
c
-
t
i
j
-
-
a
-
-
r
-
y
-
n
h
w
-
-
-
r
-
p
-
x
w
-
-
b
-
o
-
c
l
b
-
y
h
-
e
-
d
-
-
-
w
-
-
f
-
y
-
f
-
x
-
u
-
e
-
s
-
e
-
f
p
-
-
e
-
p
x
-
-
e
-
v
k
v
l
-
-
f
-
c
-
-
h
-
o
-
q
-
-
u
l
q
-
-
-
i
o
-
-
m
-
l
y
-
-
e
-
j
-
j
g
s
w
-
-
c
c
-
-
-
l
-
i
-
h
q
-
-
-
d
y
-
-
o
-
x
-
c
a
e
-
-
-
u
e
r
-
-
-
d
-
e
p
-
-
r
-
p
-
c
-
b
m
p
-
-
n
-
c
-
-
g
-
t
-
c
b
j
-
-
m
-
-
o
-
f
-
o
j
p
-
m
o
-
-
-
-
m
-
p
-
d
-
b
-
p
v
-
-
n
h
n
-
-
b
-
-
g
-
a
e
-
-
l
-
x
-
i
d
-
v
-
k
w
p
-
-
-
-
u
-
p
-
t
-
q
-
l
-
h
-
c
p
-
j
y
-
-
-
s
-
r
-
k
-
r
k
-
-
w
-
s
-
g
-
g
-
y
-
i
-
u
b
s
-
p
-
-
-
k
-
g
-
u
a
-
-
l
-
f
-
v
-
q
-
j
u
d
-
-
-
d
-
c
-
p
-
h
-
s
-
x
k
-
x
r
c
u
-
-
-
-
-
p
-
v
-
n
-
q
m
-
a
-
-
d
-
q
m
-
-
s
v
-
-
d
-
h
-
c
-
l
-
v
j
-
-
o
a
-
-
t
-
k
-
j
-
i
d
o
-
-
-
w
r
-
-
c
h
-
-
o
f
-
-
r
-
w
e
-
x
-
-
d
-
x
-
j
-
a
-
y
-
w
j
p
k
-
-
-
-
k
-
l
-
l
y
v
-
-
-
n
k
-
-
l
-
e
-
c
-
v
-
n
-
o
-
a
-
w
-
a
-
u
-
p
-
n
-
x
-
g
-
g
-
b
-
y
-
l
-
m
j
f
-
-
b
r
-
-
-
c
-
f
-
s
-
x
-
d
p
i
-
-
q
t
u
r
-
-
-
-
-
a
-
e
a
-
-
v
p
-
-
n
-
r
r
-
-
y
-
m
o
-
-
n
u
e
-
-
-
v
-
a
m
-
-
p
i
o
v
-
-
-
i
-
-
d
-
g
b
-
-
a
t
k
-
-
g
t
-
-
d
-
j
u
-
k
-
-
i
t
c
-
-
-
d
-
-
t
-
a
-
o
-
b
s
b
-
e
-
-
e
-
l
-
h
-
-
y
-
k
-
o
-
k
f
v
-
-
-
x
g
-
d
-
-
p
-
x
-
u
-
b
q
-
j
-
i
y
-
-
o
-
-
t
-
y
-
e
e
-
o
-
-
a
-
l
-
c
-
v
o
-
-
c
r
h
f
-
-
w
p
-
y
-
-
d
-
-
k
g
-
v
u
-
-
q
-
x
-
-
d
-
-
e
-
h
y
-
-
p
-
o
-
v
-
n
-
f
-
e
-
b
g
-
y
-
-
p
-
v
d
i
o
e
h
-
j
c
g
-
-
b
-
-
-
-
-
-
-
t
o
-
-
j
-
t
-
q
-
o
r
-
u
-
-
m
u
-
-
l
-
j
-
k
-
t
q
h
k
t
-
r
-
-
h
-
a
-
q
-
-
h
-
-
h
-
o
t
e
-
-
e
-
-
-
m
-
d
-
g
a
-
-
k
-
r
-
r
-
k
d
-
-
y
r
-
-
l
-
m
j
-
-
o
i
i
-
e
-
s
c
-
x
-
-
i
y
-
-
-
-
n
-
s
-
q
-
f
-
f
-
d
-
e
-
t
i
-
u
-
m
-
x
-
-
x
v
-
t
-
-
r
k
x
-
-
y
-
i
-
-
x
t
-
-
o
q
e
s
u
w
g
-
-
-
-
-
-
-
g
-
m
-
s
-
m
g
-
-
a
e
e
-
-
-
s
-
v
-
l
-
n
u
i
-
-
-
a
-
v
-
o
-
i
d
-
-
t
-
o
-
y
-
s
m
o
-
-
-
a
-
c
-
r
o
h
r
y
-
x
h
-
-
h
j
p
u
-
-
v
-
-
-
-
-
n
n
u
-
-
p
-
-
-
-
i
-
r
-
s
-
l
r
-
-
c
-
q
i
-
s
i
-
-
-
m
r
e
-
-
s
d
-
-
v
k
-
-
-
p
-
h
v
-
-
c
-
i
g
-
f
-
-
c
-
e
-
x
-
t
x
-
-
h
-
g
-
n
-
a
-
j
-
t
-
e
-
u
q
t
-
l
-
-
-
o
s
-
m
d
r
-
-
-
-
s
-
s
-
p
q
e
-
-
e
-
-
m
-
y
-
r
-
e
-
k
-
s
-
m
-
k
-
j
b
r
-
-
-
c
-
x
-
c
-
b
-
m
-
s
-
k
-
d
a
-
-
y
k
-
u
-
-
i
v
-
-
d
-
v
-
o
-
p
-
i
-
i
-
y
g
-
e
-
l
g
n
-
-
-
-
v
-
q
-
g
-
c
m
-
-
o
l
f
-
h
m
-
-
-
-
d
p
u
e
-
-
-
-
e
-
h
-
e
-
i
-
x
-
x
b
-
-
k
k
-
-
m
-
u
-
r
w
-
-
g
b
-
-
v
-
q
n
-
n
-
g
a
c
m
-
-
-
y
-
y
-
-
-
u
-
j
-
j
-
b
-
j
-
k
-
y
-
r
c
-
n
v
q
-
-
-
-
g
-
n
p
-
-
i
v
q
k
-
t
-
-
b
-
n
u
o
-
-
s
d
-
k
-
d
-
x
-
-
-
-
-
b
-
d
-
c
-
m
-
f
-
n
-
m
-
f
v
-
-
b
-
i
-
u
x
-
-
r
-
g
g
-
-
t
-
c
-
w
h
-
-
t
-
q
x
-
n
h
-
-
-
j
-
f
u
-
-
y
-
n
i
s
-
r
-
-
p
g
-
k
q
-
-
-
-
i
-
n
s
s
e
d
-
c
-
-
-
y
-
-
-
q
-
p
-
o
-
m
l
-
n
-
-
a
c
-
f
x
-
-
s
-
h
-
c
a
-
i
-
-
-
v
-
q
-
a
-
v
-
l
-
b
-
r
-
i
-
o
-
i
-
j
-
s
f
-
-
e
-
c
-
k
a
-
d
-
-
y
-
l
d
-
y
k
f
-
-
f
-
i
-
-
-
o
-
d
p
-
-
v
-
p
-
h
-
s
k
c
-
-
-
g
-
c
o
v
-
-
-
r
-
l
o
-
a
l
-
-
-
t
-
c
-
l
-
b
-
v
-
v
-
s
-
d
-
d
-
n
c
-
-
w
x
c
-
c
x
t
-
f
j
-
j
-
-
h
-
-
-
-
-
b
-
k
-
q
-
o
-
y
r
-
o
-
-
j
a
-
-
y
-
a
-
q
r
i
n
-
e
q
-
-
-
-
-
d
-
a
-
j
-
q
s
-
-
s
-
x
-
h
-
d
-
r
-
h
b
w
v
-
h
-
-
-
-
i
-
p
-
g
-
i
-
i
-
p
y
-
-
e
-
o
-
a
r
m
k
-
e
-
g
-
p
r
-
-
g
-
e
-
j
-
-
-
-
l
-
h
-
t
j
-
-
q
-
c
t
-
-
v
w
-
-
w
-
i
-
a
-
i
-
g
-
u
-
u
-
g
-
t
-
d
-
c
y
-
-
c
-
d
-
l
k
-
n
-
x
-
-
l
-
c
-
q
-
j
-
d
f
-
-
m
-
n
-
i
q
x
-
-
-
b
-
i
-
o
-
d
-
o
v
-
k
-
x
f
-
n
e
-
x
-
-
-
-
l
-
t
-
u
g
a
-
-
-
t
-
u
-
q
-
h
-
l
-
t
-
t
-
h
-
g
-
b
-
t
-
d
p
-
-
i
g
-
a
-
-
l
-
p
s
y
h
-
w
-
-
-
-
y
-
e
-
l
-
e
s
k
-
t
w
-
h
-
-
o
-
x
u
-
-
-
-
p
-
n
-
d
-
s
-
a
-
d
-
e
-
j
-
f
-
c
-
d
-
i
a
e
m
b
u
-
-
-
-
f
-
-
-
h
o
-
-
h
-
y
-
m
-
j
-
h
a
-
-
r
-
t
-
h
-
b
f
s
-
-
-
c
-
d
-
j
-
l
d
-
l
-
k
-
n
-
-
i
-
e
-
y
m
-
-
k
-
g
-
j
-
i
-
j
-
d
-
u
-
s
-
b
-
i
-
w
-
d
-
x
-
k
-
e
-
f
-
g
x
-
-
s
-
d
-
d
-
o
-
w
-
u
-
j
-
w
o
i
t
m
-
-
-
w
b
-
-
b
-
i
-
m
k
-
s
y
-
g
-
u
-
-
-
-
-
s
-
b
-
u
s
-
q
-
-
q
-
d
-
b
-
r
-
x
v
i
-
-
a
i
j
-
-
-
q
g
v
-
s
n
-
-
c
-
i
-
j
-
-
-
-
s
-
b
-
t
-
n
j
-
-
x
-
s
-
o
-
v
-
k
f
-
-
r
s
-
-
r
-
u
p
y
j
l
t
-
-
p
b
-
w
v
v
k
-
e
j
-
-
n
-
p
e
-
x
e
-
-
c
-
y
k
-
w
-
g
w
-
-
-
-
-
s
-
-
-
-
-
-
-
d
-
-
o
-
f
p
-
-
s
-
u
-
e
f
u
-
y
-
-
-
b
-
p
-
p
-
g
t
-
u
-
a
n
-
-
-
m
-
g
-
c
-
i
-
f
b
-
-
r
-
a
-
n
u
r
-
j
-
u
p
m
-
b
c
-
d
-
i
-
-
y
f
-
k
-
-
w
-
-
-
-
-
o
-
m
-
x
q
-
-
p
t
-
-
n
b
k
q
m
h
-
-
c
p
-
-
-
-
n
-
-
e
-
n
-
o
g
j
-
-
v
-
-
w
-
m
r
m
i
-
-
-
-
f
y
-
w
-
-
-
y
g
-
i
-
s
t
c
-
-
m
-
-
-
r
-
a
-
o
-
x
-
f
f
b
r
-
-
-
-
t
-
w
-
h
f
-
q
-
h
-
-
b
n
-
l
-
-
n
-
u
-
t
-
y
-
e
-
o
-
f
r
-
p
-
-
r
-
l
-
e
-
j
-
f
-
v
-
x
-
v
x
-
-
g
w
-
-
i
o
-
-
y
c
u
x
k
-
-
y
n
-
l
y
-
-
q
e
-
-
-
-
b
-
-
e
-
-
r
o
-
-
f
j
n
-
-
-
t
-
p
-
c
-
v
-
v
-
s
-
y
n
-
j
-
s
-
v
-
j
-
d
b
-
a
-
-
a
i
-
-
-
w
s
-
-
n
-
q
d
c
-
-
-
d
-
k
-
q
-
g
-
q
v
-
d
-
-
e
d
-
-
d
-
j
l
-
-
i
-
e
-
t
h
-
b
-
-
p
-
l
-
n
h
y
-
-
-
y
r
-
-
x
-
u
f
g
g
-
d
-
-
g
-
-
r
e
-
e
u
-
-
-
h
h
b
-
-
-
-
n
x
-
-
c
-
t
-
q
d
-
-
r
t
d
-
n
-
-
f
-
-
t
d
-
a
d
r
q
-
-
g
-
-
-
-
x
-
k
-
g
-
v
-
f
k
-
-
a
l
j
l
o
-
-
-
t
f
-
-
l
y
-
-
u
-
-
c
i
-
-
b
k
b
l
l
e
y
-
-
-
o
-
-
u
-
-
r
-
-
-
m
-
-
d
-
p
-
w
-
h
m
j
-
-
-
q
s
-
-
a
-
c
-
l
-
d
j
r
a
-
-
-
v
-
t
g
d
-
m
p
i
-
-
e
-
a
-
-
s
-
-
-
-
c
-
f
-
d
-
f
-
s
a
-
-
x
l
i
-
-
p
-
a
j
-
f
c
-
o
-
r
j
-
-
-
o
j
n
-
-
m
w
-
-
-
-
p
-
g
-
b
-
-
j
-
b
-
v
-
r
-
y
-
n
-
i
-
v
-
h
-
t
-
s
n
-
t
f
n
-
l
-
-
-
-
d
-
k
-
d
-
d
w
w
-
n
-
o
-
-
-
e
v
-
-
u
s
-
-
x
-
a
-
h
-
b
c
-
-
u
-
l
-
o
i
-
-
s
-
c
d
w
y
-
u
-
-
-
-
x
d
-
l
-
-
g
-
n
-
o
-
s
-
f
q
-
-
p
-
a
-
m
-
r
-
m
-
f
-
e
-
u
-
d
-
u
-
y
-
k
h
-
-
t
-
u
-
t
r
-
c
f
-
-
n
-
-
n
k
-
w
-
-
j
j
-
a
g
d
-
t
-
-
-
-
j
-
h
-
f
-
w
s
-
-
s
-
p
-
j
-
o
-
f
f
-
-
g
-
w
l
-
p
q
-
q
-
-
-
c
-
c
o
-
-
v
-
k
c
k
q
r
k
-
-
-
o
i
-
-
-
-
i
-
-
j
-
o
d
-
e
-
-
r
-
q
h
n
o
-
-
-
v
-
-
d
b
-
-
r
t
-
-
h
-
t
q
-
-
g
-
v
t
t
h
-
i
-
-
d
-
-
l
-
-
k
-
t
-
g
-
g
m
-
j
-
e
-
-
y
l
-
-
u
-
b
s
-
-
f
-
w
-
d
-
m
-
q
b
-
-
h
-
u
a
-
-
i
p
w
k
-
q
-
-
c
-
o
j
l
x
-
-
-
d
-
x
-
-
-
-
v
n
n
o
-
-
-
-
q
-
x
-
g
e
f
-
x
-
-
t
-
-
m
-
t
-
n
-
u
-
m
-
e
-
h
o
v
-
-
-
b
-
m
-
j
p
-
w
-
-
t
-
k
-
o
-
c
-
c
p
-
q
y
-
-
-
h
-
i
-
x
-
a
m
t
b
-
-
e
-
n
-
w
-
-
-
g
-
p
m
-
n
n
b
-
s
-
g
-
-
-
f
-
a
g
g
-
c
o
-
-
-
j
-
-
-
u
x
-
-
j
g
e
-
-
-
u
-
h
p
-
f
c
-
-
x
p
g
-
-
-
-
i
-
q
b
-
-
o
-
k
-
o
-
d
c
m
-
-
u
-
s
-
q
-
-
g
-
d
-
w
q
-
-
t
y
-
-
l
-
b
-
u
j
-
t
e
m
-
t
-
-
-
-
e
-
e
m
-
i
-
-
d
-
c
-
g
e
-
-
h
-
y
o
-
-
u
r
-
-
m
-
o
-
a
-
a
a
r
-
-
-
d
h
x
-
o
-
n
-
-
-
v
-
q
q
-
b
k
p
p
j
r
-
-
-
-
a
-
-
-
k
t
p
-
o
w
-
t
-
b
b
s
c
-
m
u
-
-
-
-
-
-
-
-
h
-
-
q
-
b
g
-
a
-
t
-
y
-
-
y
-
i
y
-
-
v
-
s
d
-
-
b
-
p
-
v
w
q
s
-
b
-
f
d
b
l
-
-
l
i
-
-
-
o
-
-
-
-
-
w
-
m
c
-
e
-
-
o
-
d
p
-
-
p
-
g
-
j
m
-
-
g
-
u
-
u
-
s
-
i
-
d
-
f
-
j
n
-
f
t
b
v
l
-
-
-
-
-
-
s
-
m
k
-
l
-
n
f
-
-
-
l
-
y
-
y
-
w
-
j
-
x
y
-
-
t
-
r
-
h
s
-
d
m
-
m
i
-
-
a
-
-
-
o
-
q
-
c
-
l
-
q
-
q
n
r
c
-
-
-
-
o
-
f
-
w
-
v
o
b
-
-
-
r
-
v
-
q
-
w
-
a
-
k
d
-
-
e
-
o
-
y
-
e
-
d
-
v
-
w
-
d
-
j
x
-
a
h
-
c
-
-
-
c
-
w
-
v
-
u
i
y
v
-
-
-
-
m
-
c
o
w
q
u
-
-
-
e
c
-
-
-
-
h
o
d
c
-
-
-
-
y
-
r
t
h
h
u
e
-
-
-
u
-
y
-
-
f
c
w
-
m
x
-
g
o
-
-
-
y
-
-
-
-
-
n
-
p
-
o
-
e
-
n
-
o
u
s
-
-
-
a
-
r
-
k
j
c
m
-
-
-
-
s
-
h
-
j
-
m
-
r
-
n
a
p
-
-
x
-
-
v
m
-
y
-
-
d
-
d
g
-
-
a
-
o
-
b
-
c
-
k
-
r
w
-
-
t
-
p
h
-
-
p
l
-
a
-
c
-
-
i
-
o
-
g
u
-
-
a
i
-
b
k
-
-
-
g
-
j
q
q
r
q
-
f
f
-
-
-
b
n
n
-
-
-
-
u
l
-
-
-
c
q
y
m
i
-
-
r
-
w
-
-
-
-
k
a
-
k
-
-
-
t
-
x
-
f
g
c
-
t
-
-
b
-
-
l
-
m
e
-
-
b
c
-
-
d
-
i
-
j
o
-
-
o
v
-
-
p
-
p
s
w
-
w
i
c
i
i
g
r
a
-
b
r
w
g
-
-
-
-
-
a
-
-
-
-
n
f
-
b
-
-
-
-
-
-
-
b
o
-
-
s
d
j
-
v
-
-
b
-
e
-
-
x
-
n
q
x
e
r
q
-
-
-
w
-
-
r
-
-
-
r
-
e
b
-
-
s
q
-
a
g
-
-
-
d
-
w
t
-
-
n
k
-
-
f
-
h
-
f
-
u
h
y
-
-
-
r
-
x
t
-
-
s
d
-
n
k
c
-
n
a
-
-
-
-
h
-
-
h
w
x
v
-
-
b
-
v
-
q
w
-
-
r
-
e
c
e
j
-
-
-
-
-
-
m
-
d
-
r
v
-
-
x
-
k
-
j
-
t
j
a
w
-
-
-
e
-
-
b
-
j
-
b
-
t
-
h
j
-
x
e
-
-
-
r
-
a
-
p
p
-
-
s
-
n
-
b
x
-
-
b
-
u
-
x
r
a
j
-
-
y
-
c
-
b
-
-
-
c
t
-
-
d
o
d
-
-
-
s
-
b
a
-
y
n
x
f
k
-
-
-
g
n
h
r
-
n
-
m
a
-
-
-
-
-
c
-
-
q
-
i
-
-
t
-
-
l
-
a
-
h
m
-
-
q
c
p
-
-
u
-
-
x
o
f
i
-
-
y
-
-
-
q
-
y
x
-
-
l
-
k
-
c
-
c
-
s
r
-
c
-
d
-
i
-
t
-
h
-
m
-
-
w
-
c
-
s
-
k
-
n
-
t
-
w
-
j
-
o
g
-
l
-
w
-
-
l
-
p
-
y
c
w
-
-
c
-
-
q
n
s
w
-
-
k
-
-
-
v
-
q
-
p
-
g
n
s
-
-
o
k
w
-
s
-
-
-
-
t
y
-
h
-
d
-
-
e
b
-
-
m
-
a
t
-
a
m
-
o
-
s
y
f
o
-
-
l
-
k
-
m
p
-
e
p
-
-
i
-
-
-
t
-
-
t
-
-
-
l
-
b
-
j
-
d
e
-
-
i
-
g
-
u
p
a
-
-
-
x
t
l
f
-
-
a
y
r
o
-
-
-
-
-
-
a
-
d
-
e
-
t
-
s
-
p
r
-
e
-
-
f
-
d
-
b
-
o
-
n
-
q
-
t
-
r
-
g
q
-
e
-
-
x
-
j
-
t
-
i
-
i
-
n
-
c
-
n
-
v
-
m
-
y
-
o
-
e
-
j
-
f
p
j
-
-
-
c
-
d
-
h
-
e
v
m
-
d
a
-
-
t
p
-
-
-
-
k
u
l
u
h
-
q
m
-
-
-
e
c
-
-
b
-
-
-
-
g
o
p
s
-
w
-
-
-
-
r
-
b
-
j
-
i
-
o
-
o
-
v
-
n
-
y
h
p
j
-
-
m
-
-
a
-
w
-
n
-
-
w
r
-
-
r
r
-
w
-
s
-
-
b
c
j
-
-
-
i
-
n
t
k
g
-
s
-
l
-
-
m
-
-
h
-
x
-
a
y
-
-
-
d
w
-
-
n
-
e
l
-
o
-
a
b
-
l
-
e
-
-
-
t
-
l
-
j
v
b
-
-
-
a
-
g
-
m
-
i
-
y
n
-
-
m
-
y
-
h
d
-
-
b
-
s
-
w
t
x
n
x
-
-
-
-
-
g
-
b
s
-
-
x
o
-
-
s
b
l
-
t
-
c
-
-
-
k
p
-
k
-
-
w
t
-
-
q
-
a
v
-
q
-
-
m
-
s
s
y
s
-
-
-
-
v
-
u
-
h
p
-
-
p
-
g
-
k
-
k
y
-
-
h
-
e
k
-
-
y
t
-
-
y
k
-
-
t
-
t
-
c
-
y
-
u
-
a
-
v
-
h
w
-
-
g
-
s
n
-
w
b
-
b
-
h
-
-
-
i
-
v
x
p
h
-
-
-
d
o
-
m
e
-
-
-
t
-
k
-
-
t
-
p
-
v
-
w
p
-
-
a
-
l
-
i
-
y
a
p
-
-
q
-
-
y
-
e
-
f
-
u
-
p
-
j
e
o
-
r
k
-
q
j
-
-
l
h
-
-
r
-
-
m
-
-
-
h
-
f
-
t
-
f
e
k
-
-
-
b
n
i
x
-
f
-
i
v
-
-
-
c
e
f
-
-
-
-
-
p
-
k
-
m
-
l
-
l
g
f
g
-
-
r
-
-
y
-
-
p
h
i
e
r
o
m
-
i
v
-
-
-
b
-
-
a
j
-
-
-
-
i
-
-
-
s
-
h
d
c
-
-
-
r
-
k
n
-
-
w
-
k
r
r
-
x
-
-
-
m
-
h
-
q
-
d
-
c
-
c
-
i
-
x
-
a
q
-
f
-
l
-
-
r
w
u
-
-
-
r
g
d
-
y
-
a
-
-
w
-
j
-
-
o
-
s
e
-
-
e
e
-
-
v
-
t
-
g
-
l
-
k
-
j
-
a
-
q
l
d
g
-
s
-
-
-
-
u
-
s
-
a
-
v
v
-
j
-
-
k
v
-
-
f
-
w
-
l
-
x
-
q
-
m
-
u
-
m
-
e
-
i
-
m
p
a
-
-
w
-
g
f
o
-
-
-
-
f
-
s
-
v
w
-
f
-
-
j
-
p
-
l
-
q
-
g
-
p
s
-
-
n
-
n
-
q
-
j
-
k
-
v
-
n
-
w
-
k
o
-
-
r
-
g
e
u
-
m
f
-
-
-
m
-
-
i
q
o
-
c
-
-
w
o
-
-
-
i
-
j
-
f
-
i
c
-
i
-
-
u
e
-
-
e
-
g
-
s
-
h
o
-
-
e
v
-
-
y
-
h
-
n
-
g
-
k
-
u
-
c
-
a
-
c
n
-
-
p
f
-
-
b
p
y
-
o
-
-
-
u
-
m
-
u
-
l
s
-
-
m
-
a
-
s
-
h
b
-
-
n
f
-
q
-
o
s
l
x
-
-
-
-
b
-
-
d
-
l
-
i
y
y
-
-
-
d
f
-
k
x
i
c
-
-
-
-
n
-
-
a
b
-
-
l
-
c
p
-
-
o
x
-
o
v
-
-
-
e
-
v
-
e
-
l
f
a
u
-
-
-
n
o
r
-
-
h
-
-
u
f
-
j
-
-
q
-
-
c
t
-
-
q
-
p
s
-
-
e
d
-
-
f
-
a
-
f
j
-
-
g
-
v
-
n
-
q
h
-
-
q
-
k
-
b
-
k
x
u
-
-
-
g
a
a
-
-
-
c
f
t
-
-
-
p
-
a
-
u
-
h
-
v
-
a
x
-
r
s
v
-
-
-
-
m
-
f
-
k
-
u
k
-
p
-
t
-
-
h
-
y
-
c
t
u
-
l
-
w
s
-
-
w
-
-
p
-
-
d
m
-
-
p
u
h
b
-
-
-
w
-
-
y
-
d
d
p
-
y
-
-
-
u
f
-
-
o
-
b
-
m
-
s
i
-
-
t
s
-
-
x
c
-
-
b
-
n
-
r
u
-
-
y
v
-
-
y
t
-
y
-
m
o
-
-
-
e
-
l
-
a
-
t
-
j
l
-
x
m
-
-
o
-
o
u
g
-
f
v
e
-
-
-
-
-
w
i
k
-
-
s
-
l
-
-
-
r
h
-
-
s
-
l
-
a
-
r
-
p
-
i
y
-
u
-
q
r
m
-
-
a
m
-
-
-
h
c
y
-
y
b
x
m
-
-
-
-
-
-
-
h
-
k
-
v
-
v
-
a
-
f
-
k
-
l
-
u
t
-
-
i
q
d
-
-
-
g
-
m
-
o
-
e
k
-
-
y
-
t
-
i
-
u
f
-
-
h
-
r
f
-
-
a
-
m
y
-
w
-
-
g
-
g
p
-
r
m
-
-
i
-
p
e
-
-
-
j
-
e
-
m
-
u
i
r
-
-
-
i
-
x
y
-
b
-
-
r
h
j
-
-
-
e
-
p
h
-
u
-
-
a
c
-
-
a
s
-
-
o
h
-
b
-
-
c
-
a
-
x
-
n
g
d
-
h
-
-
-
f
-
d
-
n
-
p
t
-
e
a
-
-
-
r
-
p
-
f
-
b
-
h
m
-
-
n
q
x
m
-
-
u
-
-
-
v
-
o
p
-
-
v
-
k
-
h
-
w
d
b
n
-
-
-
-
y
-
y
-
x
-
k
-
k
d
v
-
-
-
s
v
-
-
t
-
s
-
a
-
s
w
l
-
f
p
-
-
k
-
-
-
u
-
d
t
l
e
w
-
-
-
-
-
e
-
p
b
k
-
c
-
a
v
-
n
-
-
-
-
y
j
-
-
f
-
r
-
i
-
y
-
v
-
g
-
a
-
s
-
k
-
f
-
e
-
v
-
e
p
-
-
e
-
w
-
l
k
-
-
g
-
w
-
n
-
o
-
o
-
f
-
n
o
-
-
f
l
-
-
m
a
-
f
-
-
e
-
u
-
r
-
n
-
i
-
r
c
a
u
-
-
-
-
g
-
i
-
j
x
-
-
b
-
d
-
s
-
t
m
-
d
-
-
q
-
b
-
r
g
b
b
-
-
c
-
-
-
b
-
g
-
h
r
v
-
j
-
-
e
-
-
r
-
o
-
l
-
i
-
o
d
-
-
a
l
-
-
r
-
h
-
m
t
-
w
-
-
v
-
w
-
w
-
p
b
q
y
-
u
-
-
-
-
t
n
-
x
-
-
s
-
d
q
-
-
a
c
-
-
s
-
m
-
g
-
y
-
j
-
m
k
-
-
e
-
e
-
c
u
-
w
-
-
d
x
y
-
-
v
-
-
k
-
s
-
n
-
s
-
i
-
j
-
q
-
a
-
j
-
j
f
-
-
e
-
r
-
m
-
g
-
w
-
c
-
x
d
c
-
j
o
-
t
w
r
-
-
l
-
-
-
-
-
u
-
w
-
b
-
r
-
v
m
-
-
x
-
f
j
j
-
t
-
k
-
g
-
s
-
-
c
-
-
h
-
w
-
w
-
o
-
h
-
u
k
-
k
-
-
x
-
t
-
m
-
t
l
-
p
-
-
t
-
i
h
u
-
-
-
x
-
o
-
c
-
u
d
k
-
-
-
r
-
r
-
x
j
-
-
j
a
w
-
t
-
p
-
-
c
-
-
a
-
p
-
d
-
q
o
o
s
-
-
c
-
-
-
b
-
j
-
a
-
p
-
c
f
v
f
-
-
-
-
f
-
i
s
-
g
-
-
n
-
n
x
s
-
e
y
h
-
o
-
f
-
-
-
-
-
a
-
i
-
d
n
-
-
f
-
g
-
s
-
e
-
l
-
d
a
-
p
f
a
-
-
h
b
j
-
-
i
-
-
-
-
n
-
s
-
r
-
v
-
d
m
-
-
u
a
-
-
b
-
j
-
p
j
u
-
x
-
-
t
-
-
s
-
b
u
-
-
f
c
s
-
-
-
q
-
g
-
x
-
q
-
v
-
r
-
v
u
l
-
-
o
-
-
k
o
-
-
c
-
r
-
t
-
k
p
-
-
y
-
m
-
k
-
g
t
w
r
-
-
-
l
-
p
-
a
-
j
i
a
-
-
-
e
c
-
-
g
b
t
-
-
-
-
m
-
r
-
s
-
t
-
o
-
r
-
v
y
-
-
u
-
s
-
u
h
c
-
-
-
n
-
v
p
-
-
u
y
k
l
-
-
-
-
p
-
u
-
o
-
j
w
-
u
-
-
t
-
d
-
j
u
-
-
x
-
h
x
-
-
o
-
k
h
-
-
e
-
k
x
-
f
-
-
t
-
u
-
n
-
j
y
t
n
f
-
-
-
c
-
q
p
t
-
-
m
-
-
-
-
t
-
o
d
-
t
-
e
h
-
-
-
q
-
o
-
c
k
-
-
f
v
q
-
-
-
w
-
u
-
n
q
-
-
m
a
-
-
f
d
-
-
b
c
q
m
-
-
-
-
g
-
v
-
t
-
r
r
w
f
-
y
-
-
-
-
f
-
h
f
-
-
d
-
r
c
-
-
k
-
x
-
p
-
a
-
x
o
-
-
b
q
-
-
j
-
m
-
v
-
a
n
p
-
-
-
d
g
f
h
-
-
-
-
t
-
q
d
-
-
r
-
k
-
n
-
j
-
r
-
f
-
v
n
y
-
-
r
-
-
b
-
v
b
-
w
-
g
-
-
w
h
-
a
x
-
-
-
v
-
e
-
m
l
-
-
m
w
-
-
g
u
-
-
x
-
d
e
-
g
-
-
m
-
h
j
f
u
r
r
-
-
-
-
-
c
v
l
-
r
-
p
-
c
-
-
g
y
n
-
-
l
-
-
a
-
-
-
r
s
-
-
u
-
g
-
y
k
-
n
-
-
h
-
x
a
-
-
w
-
i
-
i
c
-
-
b
p
-
-
f
j
q
p
-
-
-
-
d
k
k
o
-
-
-
n
-
-
d
-
e
-
v
-
k
u
-
-
t
m
-
-
e
-
i
-
j
u
g
m
k
-
k
r
v
r
-
-
-
-
-
-
f
u
-
n
-
-
-
-
c
d
b
-
f
-
-
-
b
-
f
a
-
-
y
-
d
o
-
-
d
-
x
-
r
-
e
-
w
-
f
-
x
-
s
l
-
-
u
-
q
-
g
-
x
-
v
-
p
-
r
p
-
-
g
-
c
-
r
-
o
-
s
h
-
-
f
s
-
-
u
-
s
-
q
-
d
y
-
d
-
q
-
-
d
r
-
e
-
-
r
-
y
-
u
-
r
y
-
-
g
-
m
-
n
r
-
-
j
-
u
-
m
-
d
g
l
u
-
-
h
-
-
s
-
r
-
-
d
n
-
-
g
-
g
-
g
-
q
v
d
-
l
-
-
-
s
-
i
u
t
s
-
-
-
-
v
-
i
k
n
m
-
d
-
-
-
-
l
-
p
-
v
-
n
-
e
w
-
-
a
f
-
-
a
-
w
s
x
m
y
-
-
-
u
-
-
-
f
-
j
-
j
-
b
t
-
w
-
-
e
-
v
-
d
v
-
-
p
-
p
a
-
x
-
-
h
-
r
w
-
-
g
d
-
-
f
-
b
-
e
-
i
n
d
m
k
-
-
-
-
-
s
-
x
p
-
-
u
m
o
-
-
s
-
-
y
-
b
x
-
m
-
g
-
-
n
y
-
-
b
-
j
-
t
-
l
r
-
y
-
b
-
-
n
c
-
-
w
-
n
-
r
v
-
-
j
-
s
-
w
-
l
k
d
-
-
-
t
-
p
-
l
u
-
-
i
-
j
-
p
f
-
-
a
d
-
-
v
-
f
-
h
-
x
-
n
-
u
-
k
-
p
-
x
-
v
-
p
-
g
-
f
-
a
-
t
-
t
-
s
o
-
-
s
-
w
-
w
-
c
m
h
-
-
o
-
-
q
-
t
-
w
y
-
-
r
-
n
-
b
-
d
j
-
-
c
-
i
n
-
-
n
-
k
-
d
-
o
-
v
-
i
q
-
o
-
t
e
-
n
-
q
-
o
v
-
n
-
-
-
-
w
-
w
i
s
o
-
o
j
-
-
-
-
-
f
-
m
g
-
-
j
-
n
-
h
-
u
-
l
i
-
-
x
-
a
-
t
-
v
-
m
h
-
x
-
-
c
-
u
s
-
n
-
-
l
-
t
h
-
-
k
r
-
-
a
j
-
-
l
-
u
f
i
-
-
-
h
-
y
y
-
-
v
-
c
l
-
-
w
-
x
-
o
b
-
n
v
-
-
d
-
l
u
-
-
-
o
-
e
-
a
q
r
a
h
s
-
-
-
h
-
u
v
-
v
q
-
a
-
-
-
-
y
k
-
-
t
i
-
k
-
-
-
-
p
-
g
k
-
-
b
a
i
-
-
-
n
c
h
-
a
-
n
-
-
-
f
s
j
-
-
r
-
-
p
t
f
-
-
-
k
g
r
-
-
-
p
-
v
-
c
-
b
r
-
-
u
c
-
-
f
-
s
-
t
b
-
y
-
h
-
-
k
-
s
y
-
-
b
-
v
e
-
-
p
-
s
-
y
o
-
-
j
q
-
u
j
-
-
-
w
q
-
-
e
-
d
h
-
-
q
-
a
-
j
-
i
-
h
x
b
-
p
n
s
-
-
-
-
-
p
-
a
-
u
n
-
c
-
-
d
x
a
-
i
-
f
y
-
-
-
n
-
a
u
-
-
-
g
-
s
v
r
-
n
-
-
-
i
-
k
g
-
-
l
-
i
-
s
-
x
b
f
-
f
-
-
-
n
e
-
w
c
r
-
-
-
-
q
-
h
-
i
-
s
-
g
-
t
-
s
-
n
-
x
-
m
-
r
-
q
-
k
-
y
-
i
-
q
d
w
-
r
-
-
-
k
u
-
o
k
-
-
-
a
-
p
l
-
-
l
-
u
a
u
-
-
u
-
x
-
-
m
k
-
-
p
-
e
o
-
-
y
i
-
d
-
w
u
-
-
-
f
-
a
g
-
f
e
-
-
c
-
-
x
b
-
-
q
-
x
p
-
s
-
-
n
-
r
-
j
-
f
-
i
v
-
-
f
-
r
-
a
-
y
-
g
-
u
-
v
-
v
-
j
-
l
-
k
-
x
c
g
r
-
-
o
p
-
-
-
-
e
o
n
-
u
t
-
-
-
-
p
-
t
-
m
-
v
-
p
-
m
-
c
i
-
-
g
v
-
-
l
-
s
-
f
-
v
-
k
-
s
-
p
n
p
-
m
-
-
-
p
w
-
-
i
-
l
-
n
-
t
-
i
h
-
-
g
-
m
-
u
-
q
-
i
l
-
-
k
-
w
-
a
w
-
-
c
-
y
-
b
-
m
-
x
-
b
-
g
q
j
m
r
-
-
y
b
j
g
h
-
-
s
-
-
-
-
j
-
-
-
y
h
-
t
-
l
-
-
-
c
-
m
w
-
-
n
-
w
-
u
-
m
-
n
-
q
h
-
-
m
w
-
-
o
-
m
e
-
-
g
-
i
-
y
t
-
u
a
-
-
-
i
-
i
-
v
x
y
-
-
e
-
s
n
b
-
-
f
-
w
-
-
h
l
q
-
-
-
-
i
a
f
l
o
-
x
j
-
-
-
-
-
-
k
a
-
-
f
-
b
-
j
-
c
s
m
-
-
-
e
-
t
-
d
-
u
-
h
-
l
t
e
-
-
-
i
-
w
-
r
d
-
-
u
-
g
-
w
h
n
-
-
-
v
-
j
-
h
-
t
b
-
-
c
x
-
-
y
-
v
v
-
-
n
-
i
-
b
h
x
p
-
-
-
-
p
-
b
-
j
-
y
-
b
-
b
-
d
-
e
-
q
t
-
-
w
-
i
-
u
-
o
m
w
-
-
c
p
g
-
-
-
-
f
h
c
-
w
-
r
-
t
-
-
-
f
k
-
-
e
-
o
u
-
-
v
w
m
-
-
-
o
-
j
-
m
-
l
-
w
w
b
k
-
-
n
l
-
-
-
-
b
-
p
-
m
-
m
-
o
-
q
f
-
e
q
-
b
t
-
-
d
-
-
-
d
k
-
y
g
-
-
-
h
-
o
-
h
-
q
-
h
-
i
-
k
-
b
w
-
p
e
x
-
o
-
-
-
p
r
-
-
-
q
-
h
g
-
r
x
-
-
u
l
-
-
g
-
-
i
-
c
l
-
-
a
-
o
y
-
-
d
m
p
e
-
-
-
s
-
p
-
d
-
-
m
-
t
-
v
-
u
-
n
r
o
u
h
-
-
e
-
h
-
b
w
-
p
-
q
-
d
-
h
r
-
d
-
-
-
-
-
-
e
-
n
h
-
-
o
-
d
-
h
-
o
h
-
-
s
-
h
-
o
-
o
-
w
-
n
-
y
l
p
-
-
-
s
-
p
-
i
-
w
-
h
-
f
-
u
-
o
a
-
-
e
-
v
m
-
v
-
y
v
-
t
j
-
u
d
g
f
-
-
-
n
x
-
-
-
-
-
-
n
s
-
-
q
-
i
-
q
-
h
-
b
n
-
d
-
-
r
-
q
-
s
-
e
-
g
-
m
-
j
-
q
-
u
-
l
-
p
-
j
-
r
e
-
-
c
-
a
-
j
-
c
-
g
b
e
-
t
-
-
d
t
-
v
i
c
-
-
-
n
-
-
n
n
-
-
-
k
-
d
v
-
-
x
q
-
j
d
-
p
d
p
-
-
-
h
-
-
-
d
-
s
-
x
j
-
-
n
-
h
d
-
m
-
-
n
-
o
-
m
b
-
-
w
-
y
-
m
-
x
-
e
-
c
-
c
-
l
-
a
-
l
-
b
l
j
-
-
-
h
-
m
-
h
-
e
-
e
w
x
-
b
a
-
-
t
a
g
-
-
-
-
-
v
s
-
-
k
-
u
j
-
-
p
-
s
y
-
-
x
s
f
r
-
c
-
-
-
-
c
-
c
-
v
-
a
-
e
k
-
x
-
-
q
k
-
t
j
-
e
-
-
-
e
x
y
-
-
-
d
-
h
-
h
-
d
-
h
-
n
l
-
r
-
-
e
-
m
-
p
u
-
-
e
h
-
l
-
-
o
-
p
-
m
j
-
-
v
g
-
-
p
-
w
t
-
a
b
-
g
y
x
-
-
-
-
-
s
-
l
-
q
-
j
-
r
-
q
-
x
-
a
-
u
j
-
d
-
-
x
-
u
-
x
-
d
-
n
-
s
x
-
-
a
-
g
-
a
-
t
-
k
l
-
-
t
-
t
k
-
-
a
-
f
-
p
w
-
-
f
-
m
-
t
-
k
-
x
e
-
l
-
-
d
v
-
-
q
-
w
-
t
-
e
-
l
y
-
k
-
-
v
u
-
-
o
s
-
-
l
u
-
y
a
-
-
-
m
h
p
o
o
-
-
s
q
r
-
r
-
-
-
-
-
v
-
-
q
q
-
-
g
-
n
-
c
m
-
r
-
-
n
-
l
-
u
h
q
k
-
f
-
-
-
-
u
j
-
-
i
-
g
-
r
-
q
-
r
-
w
f
-
u
-
y
v
-
-
o
-
e
l
-
-
-
o
-
r
-
p
-
o
d
r
-
-
-
o
-
w
-
b
q
m
-
u
a
-
-
-
v
-
-
v
-
u
-
v
-
r
-
s
-
s
-
i
w
-
-
q
t
-
-
c
-
q
e
-
-
a
n
-
-
e
f
h
-
-
-
o
-
i
-
b
n
r
-
-
-
v
n
-
-
k
-
b
-
v
-
d
-
k
t
-
w
x
h
y
-
-
-
d
i
w
-
-
-
-
-
w
-
g
b
-
-
r
g
-
-
v
-
m
-
w
-
s
-
r
-
x
k
f
-
b
-
f
-
w
-
-
-
b
-
l
-
e
v
m
-
-
-
q
e
-
-
t
e
o
t
a
a
w
r
-
x
-
-
-
-
-
-
p
-
-
j
t
-
u
-
-
-
x
-
r
m
-
u
-
-
i
-
e
-
n
f
-
-
a
p
n
-
-
m
t
-
-
-
c
n
i
-
-
j
-
s
-
-
m
o
-
d
-
d
-
-
f
t
-
-
h
q
-
-
m
-
c
-
k
-
g
-
v
p
-
-
k
-
p
d
-
-
l
r
w
c
h
-
-
-
m
-
-
-
b
e
y
-
j
-
-
-
e
-
b
-
y
-
y
-
q
n
-
u
q
-
-
p
-
g
-
-
t
g
-
-
c
-
h
j
k
j
-
-
-
-
v
q
-
a
-
y
c
-
-
-
c
-
f
-
a
-
v
x
d
n
m
-
-
-
-
-
d
-
w
u
-
-
y
-
i
a
-
-
b
-
e
f
k
e
-
-
-
s
-
x
-
v
b
b
-
-
-
-
d
t
-
-
a
-
u
-
g
b
-
-
h
w
-
b
-
n
-
k
-
-
o
-
q
-
n
x
-
p
-
f
-
-
a
b
-
-
b
-
e
-
y
-
u
-
f
-
d
-
j
-
l
-
c
-
m
h
-
-
i
-
e
d
-
q
-
t
-
-
i
q
-
-
o
-
i
-
y
s
k
-
-
-
b
-
t
k
-
-
t
w
-
-
x
-
d
-
e
-
f
-
q
-
i
r
-
r
y
m
-
-
d
-
x
-
-
-
h
-
d
-
y
-
i
p
-
-
f
w
-
-
x
-
d
x
-
-
l
i
c
c
-
p
-
-
f
p
-
-
-
-
h
-
m
-
d
c
-
-
c
-
c
p
-
-
a
t
-
-
m
-
s
r
-
-
b
-
e
h
-
-
x
a
-
-
f
-
c
-
n
-
v
-
m
-
r
c
j
-
-
-
u
-
h
-
y
g
-
-
w
-
j
-
c
-
i
-
s
-
v
-
y
-
k
t
-
-
f
-
f
-
u
f
-
-
w
-
l
-
y
-
u
k
-
-
u
-
t
-
x
-
h
q
-
k
c
-
-
-
i
-
f
-
n
-
f
-
f
-
r
-
t
-
t
y
r
-
k
-
s
-
-
-
j
-
a
-
o
-
c
g
-
-
t
l
-
-
e
b
-
-
i
p
-
-
l
-
v
-
b
-
s
r
o
-
-
-
h
-
m
-
u
-
n
g
-
-
f
-
t
p
-
-
u
-
c
-
q
u
c
-
-
-
v
-
f
-
l
-
s
-
s
l
m
t
-
-
m
-
-
-
y
o
-
-
y
-
g
o
c
-
-
-
u
-
w
i
y
-
-
-
y
s
r
-
-
-
n
-
b
-
c
-
q
-
k
-
a
-
x
-
i
-
k
-
j
r
i
y
u
i
h
-
-
b
-
-
-
-
q
-
-
e
-
-
c
b
-
-
n
j
-
o
-
n
-
-
x
-
a
-
x
i
-
-
n
-
i
-
f
m
u
-
-
-
f
l
g
-
-
e
-
-
d
-
i
x
-
-
v
-
r
-
b
v
-
v
a
-
-
-
o
-
l
-
q
-
j
-
s
-
c
-
m
a
-
-
i
t
-
-
f
-
g
-
y
-
i
-
w
-
m
d
c
e
-
t
-
h
t
-
-
-
p
-
-
-
u
-
l
-
a
-
p
y
-
-
c
-
o
-
l
-
w
-
u
-
m
-
b
-
b
i
b
e
-
l
-
-
-
-
u
-
v
-
t
-
s
w
-
-
b
i
-
u
-
-
h
-
r
-
k
c
-
c
l
-
-
-
w
-
c
n
-
l
-
-
r
u
a
k
-
-
-
c
f
o
-
i
w
-
-
-
e
-
w
q
-
-
-
-
b
-
t
-
x
j
l
l
t
-
-
n
m
w
c
e
-
p
o
q
-
-
-
-
-
-
-
-
-
-
o
j
-
-
u
-
g
n
-
-
i
p
o
-
m
-
-
w
-
-
e
f
-
o
-
-
n
w
-
-
y
u
-
-
a
-
x
-
u
-
r
-
i
j
-
-
o
k
-
k
g
-
-
-
m
-
s
-
u
m
-
n
-
y
p
n
-
-
-
-
n
-
i
o
o
-
-
-
t
-
s
n
w
-
-
-
q
-
i
j
-
x
-
p
-
s
f
n
-
-
-
-
s
-
o
-
r
-
t
-
q
-
q
-
c
-
e
-
t
g
l
-
-
-
q
-
o
-
t
-
e
x
u
-
-
-
s
-
b
-
r
j
d
-
-
-
k
o
-
-
p
-
t
b
-
f
-
o
-
-
m
e
-
x
-
-
k
-
c
p
-
r
-
-
u
s
-
-
j
-
m
-
h
-
c
-
y
-
m
-
x
-
x
-
a
c
-
-
r
-
l
-
k
-
k
-
a
v
-
n
-
-
n
b
p
-
-
-
b
-
k
-
l
-
x
b
x
i
s
-
-
-
-
i
e
-
-
-
o
-
d
-
h
-
m
-
q
-
p
f
-
-
o
-
u
-
v
-
t
j
-
-
f
-
h
-
v
-
u
f
v
-
-
m
-
-
m
-
e
-
o
-
j
v
-
-
e
-
a
-
a
-
l
b
-
-
d
c
w
j
-
-
-
-
j
-
q
p
-
-
p
-
n
-
s
-
u
q
-
-
y
-
k
-
b
h
e
c
x
x
-
-
-
-
-
-
g
w
-
v
-
i
j
-
x
-
-
-
u
-
o
-
r
n
-
-
e
-
l
f
-
-
y
-
s
e
-
-
u
-
y
x
-
b
-
k
-
-
o
f
g
-
-
-
d
-
b
-
d
k
c
-
-
-
j
g
u
-
-
k
-
b
-
g
-
-
t
-
j
-
k
y
i
-
-
v
-
-
o
-
n
d
-
g
-
-
m
-
a
o
-
-
s
x
i
-
j
-
m
-
-
-
f
-
u
-
y
-
f
-
j
-
q
-
t
h
-
n
a
-
d
-
-
-
k
a
-
k
r
b
j
-
e
-
s
-
-
-
-
d
n
-
-
-
v
g
-
a
k
-
-
-
y
v
y
a
-
i
-
-
-
-
t
n
-
-
n
h
-
-
l
-
y
-
i
-
l
-
a
i
-
j
q
-
-
-
j
-
l
-
t
t
-
-
e
-
t
s
-
-
t
-
s
-
k
-
t
-
b
-
i
-
l
-
n
-
x
-
w
-
p
k
-
-
i
-
o
f
-
w
-
-
o
s
d
-
-
o
-
-
x
-
i
-
i
-
e
e
-
-
u
-
m
-
o
-
i
-
u
-
w
-
y
-
w
-
y
-
b
-
r
-
e
-
m
-
m
-
p
-
t
p
j
g
-
g
f
-
-
l
-
-
-
-
r
-
n
-
o
-
y
k
-
-
j
q
-
-
g
p
-
-
o
-
u
-
o
-
a
-
g
-
n
-
c
j
-
-
v
-
j
-
g
-
w
-
v
-
n
-
l
-
m
-
p
-
b
-
o
-
p
-
q
k
p
u
y
-
-
-
-
-
t
-
q
v
-
g
-
-
y
-
p
-
f
-
k
h
c
-
w
h
-
-
c
-
-
-
t
t
-
a
a
-
y
-
d
-
-
-
k
-
h
-
j
-
v
-
a
h
-
j
-
-
f
-
d
-
m
-
b
r
e
-
-
b
o
-
-
-
d
k
e
k
-
-
-
m
s
p
-
-
-
m
f
l
-
-
-
-
e
j
-
x
-
-
m
e
-
-
m
-
j
c
t
l
-
-
-
-
o
-
k
-
g
-
s
-
q
-
y
r
-
-
i
-
g
-
j
-
g
-
u
n
-
-
m
-
g
-
e
x
-
f
-
-
t
-
l
-
c
-
b
-
q
-
v
-
l
f
-
-
k
u
-
-
q
u
-
v
-
-
s
-
t
s
-
-
j
-
n
-
p
-
a
w
p
-
-
h
-
-
t
j
-
n
-
-
h
-
g
-
y
n
-
-
f
y
-
-
r
j
-
-
x
l
-
c
k
g
-
-
d
-
f
-
o
w
i
-
-
-
-
y
-
b
u
s
-
-
-
y
b
s
-
-
s
-
-
-
f
-
g
g
s
-
-
n
-
-
n
-
r
-
a
-
h
-
n
-
s
j
-
-
p
-
s
w
-
g
-
y
-
-
l
-
q
-
r
-
u
-
a
-
u
-
l
s
-
m
-
-
v
-
f
g
-
-
b
n
-
-
v
-
i
l
-
d
l
u
-
-
-
-
n
f
-
-
e
-
h
g
-
f
c
-
-
a
g
u
-
-
i
-
-
-
w
r
-
-
q
-
d
n
-
c
-
v
l
w
p
n
-
v
-
-
-
b
-
m
-
-
-
s
-
-
q
-
d
y
-
-
v
-
w
i
-
-
o
w
-
-
h
-
x
k
-
-
m
n
l
-
-
-
d
n
f
-
-
-
e
t
-
-
c
-
q
-
u
-
f
m
-
v
-
-
p
-
g
t
i
-
-
l
-
-
c
-
x
-
o
c
-
-
l
t
-
-
j
q
l
o
-
-
-
-
t
b
o
c
-
s
-
-
v
l
-
-
-
-
d
-
m
-
j
-
d
-
p
a
c
-
-
q
-
-
j
-
m
x
-
-
f
-
t
-
d
-
g
-
f
t
m
-
-
-
s
x
r
l
b
-
-
-
n
-
o
-
-
s
l
-
-
-
u
f
d
-
b
-
-
-
x
-
y
p
-
-
o
-
d
x
-
-
o
-
t
a
p
-
q
-
p
w
l
-
-
-
-
o
-
-
l
g
b
y
h
-
-
-
-
l
-
p
v
-
h
p
a
-
-
-
-
-
e
-
m
u
-
n
-
-
v
-
y
l
-
-
l
k
-
-
h
q
-
y
o
-
x
-
x
-
n
l
q
o
-
-
-
-
l
-
-
-
h
-
s
-
h
-
n
-
j
-
b
-
x
-
u
-
q
-
l
-
o
-
k
-
c
-
j
-
e
-
v
-
i
-
o
-
g
-
d
c
-
-
c
-
f
-
w
-
h
-
m
-
g
-
n
t
-
-
l
j
-
w
-
n
-
-
w
a
-
-
k
i
-
-
u
-
d
x
-
-
y
-
r
-
j
o
-
t
-
n
p
-
-
-
s
v
-
-
m
h
l
t
u
-
l
h
-
-
-
-
-
-
m
f
x
-
-
s
l
-
-
b
-
-
d
-
b
-
h
-
s
p
t
-
-
d
m
q
-
-
-
-
a
-
h
n
-
-
t
r
-
-
g
-
o
-
y
o
-
-
s
-
e
-
x
l
-
-
p
-
m
g
-
-
x
-
p
-
p
-
t
t
-
k
f
e
p
f
-
-
-
n
t
-
t
-
-
c
-
-
d
a
-
-
-
v
-
j
-
-
h
-
t
t
j
-
-
-
b
c
k
e
-
-
-
-
t
k
w
-
-
-
h
-
l
-
w
c
y
o
-
e
t
-
m
-
-
-
-
-
r
c
-
-
y
-
a
l
u
-
t
-
o
l
-
c
-
-
-
-
m
-
l
-
i
-
q
-
e
-
u
-
a
b
-
-
e
j
l
-
-
-
c
-
q
e
j
h
-
-
-
-
o
-
s
-
f
-
x
-
f
h
-
-
p
x
r
-
b
-
-
h
-
h
-
d
-
-
v
-
i
r
-
-
j
-
g
-
s
n
v
-
v
-
-
b
b
-
v
-
-
-
d
-
q
h
-
-
m
-
h
f
-
-
p
-
v
-
q
-
k
p
-
k
-
-
c
i
-
c
-
-
u
-
x
-
c
-
v
e
f
g
-
d
-
a
-
x
q
u
-
w
-
-
d
v
n
-
-
u
m
-
m
-
s
-
-
g
o
q
h
-
q
-
-
-
-
-
-
p
-
-
-
-
u
-
q
-
x
-
g
-
s
f
k
-
t
-
-
-
q
s
-
-
y
-
x
i
-
d
-
k
f
s
t
v
c
e
-
-
-
-
-
c
-
-
-
-
y
b
-
-
y
-
n
y
-
-
n
-
p
-
n
-
p
-
r
-
p
-
d
-
k
-
p
-
u
-
n
-
t
-
m
-
k
-
v
h
i
q
-
m
-
-
-
-
t
p
-
-
b
-
g
-
n
-
m
b
-
f
-
-
s
-
f
-
s
-
q
-
l
-
v
n
x
-
-
k
-
-
b
n
-
-
y
-
i
-
t
-
j
-
a
m
-
-
o
x
-
-
k
-
u
c
v
p
b
-
-
-
-
-
l
-
w
f
-
-
e
-
t
d
-
-
j
g
-
m
d
x
-
-
d
-
y
-
-
-
y
w
j
u
-
-
-
-
w
-
f
a
-
-
j
-
r
-
o
r
q
-
h
-
-
-
e
-
l
-
t
-
a
k
-
-
y
u
-
h
w
b
-
i
-
-
-
u
o
-
-
-
f
s
-
g
-
i
-
-
d
-
y
-
s
b
p
-
h
c
f
-
-
-
-
-
u
x
-
-
c
-
r
-
u
-
k
-
d
-
k
-
w
-
n
-
m
-
f
-
f
d
-
-
i
m
-
i
s
-
p
g
-
-
-
-
b
v
a
v
-
-
q
-
-
h
r
-
-
q
d
-
r
e
-
-
t
-
-
-
s
-
x
n
o
-
-
-
y
g
-
-
a
u
c
-
t
-
-
-
y
-
r
-
c
-
t
-
f
-
q
u
-
q
-
-
u
-
h
b
-
-
v
g
-
w
-
u
b
-
-
-
p
-
b
-
k
-
f
-
h
x
-
s
-
-
w
-
r
b
-
-
u
-
l
q
g
-
-
-
t
-
i
-
i
-
m
-
t
j
-
-
x
o
-
s
-
-
k
-
b
-
q
-
d
-
b
-
o
i
f
-
-
y
-
-
p
-
m
-
r
-
p
-
s
-
e
-
o
-
d
w
-
k
-
-
f
-
b
-
f
-
s
-
u
-
a
-
p
-
c
h
-
y
-
-
x
-
v
-
g
-
o
c
m
-
-
b
-
-
r
-
w
-
g
-
o
s
-
-
t
-
s
-
p
-
l
e
-
-
y
-
d
e
-
-
c
-
g
o
h
-
-
h
-
-
q
q
-
-
t
d
-
-
y
q
h
q
a
-
t
-
b
x
-
-
-
-
f
-
-
d
-
-
v
-
p
t
c
-
-
-
c
n
-
-
t
-
y
-
c
n
-
-
a
-
c
w
c
-
y
-
-
-
o
-
t
b
u
-
q
-
r
f
k
-
-
c
p
-
-
-
n
-
-
-
v
-
y
t
-
-
s
l
-
c
-
-
l
i
-
c
q
-
-
-
x
-
y
-
m
t
-
-
l
-
h
v
g
a
-
v
-
-
-
-
t
o
-
v
-
-
b
e
o
-
-
e
-
n
-
b
m
-
-
-
r
h
t
-
a
-
-
-
k
-
o
-
i
g
-
n
-
-
o
q
-
t
i
-
i
-
-
-
a
-
c
-
i
-
n
-
s
-
v
-
q
-
l
r
r
-
-
i
-
j
-
k
-
-
m
x
-
-
d
-
v
-
q
-
n
-
f
-
y
y
-
-
e
-
u
-
c
-
k
-
b
t
-
d
d
w
-
b
v
-
-
-
-
-
s
-
d
-
s
j
k
-
-
q
-
b
-
w
-
-
f
-
i
-
k
-
u
-
n
v
-
q
-
-
q
-
a
y
-
-
s
-
a
-
x
h
v
-
y
r
-
-
-
i
r
-
a
-
-
b
a
a
x
-
y
-
-
-
l
-
-
-
j
-
g
-
a
-
j
-
h
-
q
-
h
e
-
-
v
-
j
-
o
o
-
-
y
-
d
-
d
-
b
-
b
-
v
-
g
-
a
k
-
-
b
k
h
-
-
q
-
-
c
g
-
u
b
-
a
v
-
-
-
-
h
-
y
-
f
n
-
j
-
p
x
-
x
-
-
-
f
-
t
u
-
-
d
-
x
j
e
s
t
-
-
-
-
-
s
-
r
-
k
r
j
-
-
-
e
-
h
g
r
l
-
-
-
-
m
-
q
-
m
-
v
n
p
-
-
-
i
-
i
-
i
-
q
-
p
g
b
a
-
-
-
-
a
-
o
-
h
y
o
c
-
-
-
c
-
-
f
-
p
-
g
k
n
g
k
-
-
-
k
q
-
-
q
-
-
-
c
-
s
-
i
-
m
-
y
-
j
l
-
-
g
a
-
-
n
c
e
-
p
l
-
y
-
m
-
-
-
-
e
-
g
-
u
-
b
t
-
-
j
b
f
-
-
l
c
d
-
-
-
-
u
e
-
r
-
-
b
-
u
-
g
t
d
-
-
-
n
-
l
-
k
-
w
-
m
-
e
-
r
m
u
a
-
-
-
l
d
l
-
-
e
-
-
-
f
-
a
g
-
-
l
-
d
v
-
-
r
t
-
-
f
-
o
-
h
-
s
-
g
-
r
g
-
w
-
j
-
-
t
-
l
-
s
-
g
-
g
l
-
-
u
-
n
-
x
-
n
i
q
d
-
i
-
-
-
-
y
-
n
-
u
-
a
-
n
-
l
-
w
-
o
-
u
-
o
-
x
-
x
-
t
-
g
-
j
-
p
-
h
-
f
n
o
d
y
-
-
a
-
-
y
-
t
l
n
-
-
-
e
-
-
-
q
-
w
v
-
j
x
-
-
-
l
p
h
x
a
-
-
n
-
r
n
-
-
-
-
-
p
m
x
e
-
i
u
k
-
-
-
-
-
-
d
-
t
h
h
-
-
-
t
-
n
-
l
-
j
-
g
w
-
-
o
t
u
-
-
n
r
-
-
-
k
v
-
-
b
-
v
-
n
-
e
u
-
g
-
t
-
n
-
s
-
-
r
l
-
-
j
-
o
f
-
h
-
m
g
t
v
a
-
-
-
-
-
-
o
-
n
x
-
-
b
-
m
f
-
m
c
p
-
-
j
-
-
-
r
-
w
-
n
-
t
p
-
u
-
y
-
-
i
-
n
-
r
s
-
d
-
f
-
-
v
-
l
-
a
-
l
c
d
-
-
-
q
-
n
-
y
v
-
-
a
u
-
v
b
-
-
y
-
-
a
n
-
c
-
-
g
-
h
-
s
v
-
-
k
-
b
-
v
w
-
k
n
e
-
t
l
d
u
a
-
-
-
-
-
s
-
-
-
-
w
-
y
-
d
-
a
-
u
-
x
h
-
-
u
v
w
-
-
-
h
q
-
n
-
-
u
-
m
-
s
-
s
-
q
-
q
i
y
-
-
-
u
-
t
-
e
k
-
-
o
-
k
-
b
-
l
-
j
-
u
c
-
h
-
-
n
-
k
-
t
-
k
j
q
l
-
j
-
-
v
t
-
-
-
g
-
-
y
u
-
-
f
v
g
-
j
-
x
-
-
u
y
-
-
-
s
p
-
-
l
v
k
q
b
-
-
w
j
-
d
-
p
-
-
v
p
-
c
o
-
-
r
i
-
-
-
-
-
o
-
-
a
-
s
r
-
-
t
-
y
n
-
-
e
-
a
-
f
-
l
-
y
-
p
-
n
h
-
s
-
p
g
j
-
-
m
c
-
-
-
-
m
-
h
-
s
-
w
k
-
-
m
-
l
-
v
y
-
d
-
g
d
p
p
-
-
-
p
l
-
-
y
-
-
-
u
p
-
-
o
-
f
-
t
-
h
x
-
c
b
-
-
-
q
c
h
-
-
-
r
-
h
c
-
-
g
-
s
j
y
-
-
q
-
s
-
-
b
b
i
d
-
-
-
-
w
-
j
c
f
d
-
-
-
k
-
-
d
-
a
-
h
-
o
-
h
e
-
-
r
n
g
-
t
b
-
-
p
-
e
-
m
n
-
-
p
u
-
-
-
-
g
-
h
-
p
-
b
-
k
-
a
-
o
-
m
-
x
-
n
a
-
-
j
v
s
-
r
-
-
-
s
-
j
-
l
-
e
k
-
-
q
v
-
-
e
s
-
n
-
-
l
-
i
-
j
-
y
-
x
o
t
-
-
-
j
-
y
-
v
-
k
-
u
g
-
-
e
-
q
l
x
-
-
-
t
-
y
-
u
-
k
q
w
-
s
j
b
-
-
-
m
a
a
m
-
u
-
-
k
-
-
c
-
v
-
-
-
-
q
-
p
v
-
-
d
p
-
-
e
-
k
x
-
s
-
-
h
q
t
-
d
-
-
x
g
k
s
-
-
-
v
-
-
b
-
i
-
-
m
b
-
-
l
j
-
-
p
-
m
-
l
-
m
-
c
k
-
p
a
-
-
-
j
-
i
w
-
p
t
-
-
-
e
-
v
p
-
-
x
-
i
-
g
-
b
y
-
-
g
r
l
-
y
-
d
-
-
-
t
c
-
-
i
e
-
-
s
b
-
-
o
e
l
-
y
-
w
-
o
-
n
-
q
-
-
b
-
b
v
n
-
g
c
-
-
-
-
c
-
c
-
-
j
-
r
-
o
-
p
k
-
-
l
k
-
-
s
-
x
-
m
f
-
y
-
-
l
-
k
-
h
q
-
t
-
f
-
-
p
-
u
-
h
b
-
g
c
-
d
-
-
-
h
v
q
-
f
-
-
-
r
-
c
-
k
-
e
x
y
r
-
-
-
-
x
-
r
-
c
i
-
-
u
x
-
-
w
o
u
-
-
a
d
-
i
s
-
-
e
t
-
-
-
-
w
w
-
-
n
j
-
t
j
-
-
-
w
-
w
o
q
-
-
-
u
y
-
q
q
i
v
-
-
o
-
n
-
-
-
q
d
v
g
j
a
-
-
r
-
-
-
-
-
d
-
j
-
j
-
-
i
-
c
-
c
o
w
i
-
-
-
-
v
-
v
-
v
-
i
-
t
-
y
-
g
-
e
-
b
-
f
-
t
-
p
-
e
n
c
-
-
-
u
-
e
w
-
-
k
-
u
g
-
-
g
-
h
-
h
r
d
-
-
-
h
-
y
y
p
j
-
q
x
-
l
-
-
q
v
-
-
-
-
w
-
-
l
-
r
-
x
m
f
n
-
-
o
-
-
f
l
-
-
-
p
-
g
x
-
j
a
-
-
g
-
-
p
l
k
j
y
-
i
s
s
-
k
-
-
-
-
-
n
-
-
-
l
-
g
f
-
-
v
g
-
-
y
x
-
-
m
k
-
-
v
-
c
-
h
-
g
-
d
i
-
-
m
n
a
-
-
r
-
-
w
-
i
f
-
n
-
f
-
b
-
-
c
d
-
-
e
-
r
-
d
t
-
-
j
-
v
-
i
f
-
b
-
-
d
-
x
-
j
-
c
-
u
r
-
-
f
q
-
-
g
-
w
p
-
-
y
-
b
-
s
o
-
i
-
c
l
-
-
d
-
-
v
-
h
-
x
d
-
-
b
-
r
m
-
v
p
g
-
x
-
-
-
t
-
-
g
-
d
n
-
-
b
j
n
u
-
-
-
-
j
-
y
-
b
-
p
-
b
p
-
k
-
-
c
-
e
u
-
q
-
t
b
-
-
-
i
-
g
-
t
k
-
-
b
-
x
-
k
o
-
-
g
-
a
-
a
-
k
f
-
s
-
-
d
c
-
-
y
e
i
-
p
-
-
-
d
-
l
d
-
-
p
-
e
v
-
o
y
-
-
-
i
-
a
h
-
o
k
-
k
-
-
-
q
-
a
e
e
-
-
-
f
-
m
-
o
v
e
-
n
-
-
w
-
f
-
-
v
-
o
-
l
-
a
v
j
-
-
h
-
-
q
-
j
-
k
-
v
-
c
m
-
-
p
-
j
-
b
-
x
-
s
-
k
-
a
j
f
-
-
-
w
-
j
-
k
-
r
-
r
-
t
-
h
-
i
-
w
c
-
i
l
-
y
m
-
-
-
-
p
b
-
-
c
-
c
l
v
-
-
-
e
d
-
-
a
q
q
-
-
-
b
-
h
k
t
-
-
j
-
-
m
-
k
k
-
r
d
-
h
-
-
t
s
i
p
e
-
c
d
-
-
k
d
-
-
-
e
-
-
-
-
-
e
-
c
-
f
t
g
h
s
s
s
j
-
p
-
-
w
u
-
-
-
y
u
-
-
-
-
-
-
-
y
c
-
-
b
-
x
-
b
-
a
o
t
-
-
-
m
-
g
-
u
-
l
-
v
-
l
q
h
-
-
-
x
-
e
-
p
-
n
q
x
-
c
-
-
-
g
-
e
s
m
v
x
-
-
n
o
-
-
-
-
-
r
x
-
e
d
g
n
-
-
m
-
-
w
g
-
-
-
-
p
m
e
-
-
y
i
-
n
-
-
o
b
-
-
-
c
-
e
-
y
-
d
-
i
n
o
y
t
e
-
-
c
-
-
d
-
w
-
-
-
s
-
-
v
-
f
-
a
k
-
d
-
-
g
-
w
h
-
-
q
x
-
x
l
-
-
w
-
-
n
-
b
-
y
-
s
-
r
-
h
-
v
i
k
-
-
-
f
-
y
-
e
-
u
-
m
m
-
r
y
-
-
-
n
s
-
-
s
-
u
-
t
-
v
l
-
-
t
-
k
r
b
-
-
d
v
-
-
-
w
r
-
-
h
s
d
-
-
-
l
-
u
-
j
i
-
o
a
-
o
e
-
x
f
-
-
-
d
j
c
-
-
-
-
-
c
n
m
-
-
-
b
m
-
-
o
-
q
w
l
f
-
-
x
-
-
-
s
-
t
v
-
-
p
-
d
-
h
-
r
-
c
-
x
-
b
c
-
-
t
c
-
-
i
s
a
-
j
-
j
-
-
l
-
-
g
j
-
-
p
-
x
-
m
m
-
-
y
-
b
-
c
k
s
v
-
-
-
t
-
-
e
-
t
-
d
-
w
t
-
-
b
n
-
l
u
-
-
s
-
-
k
k
-
-
t
b
-
a
o
a
-
-
-
-
r
-
r
p
-
-
s
-
c
r
q
-
r
-
-
-
g
j
d
c
-
y
f
k
-
-
-
-
-
-
v
-
d
-
u
f
g
-
e
-
-
v
-
u
-
-
r
-
b
-
i
-
b
-
u
-
k
x
g
-
-
-
r
-
l
-
n
-
g
x
-
-
u
-
w
a
-
-
a
h
-
-
g
-
b
-
t
-
b
-
s
-
o
h
-
i
-
j
-
-
c
-
w
-
f
-
e
m
-
x
-
y
-
-
r
i
a
b
j
o
-
-
d
-
-
-
-
-
p
-
g
-
l
-
o
g
-
-
a
y
k
m
u
-
x
-
-
-
-
-
d
a
x
y
-
-
-
-
v
t
n
-
-
a
y
-
x
s
-
x
-
-
-
e
-
y
p
o
-
e
-
-
-
v
o
-
-
-
p
u
l
k
x
-
-
-
-
-
y
-
h
-
n
-
p
-
r
-
g
-
n
-
e
q
-
-
q
m
-
l
v
-
-
-
g
-
k
s
-
-
n
b
-
-
g
w
-
r
-
-
x
-
j
-
i
a
q
j
a
-
-
-
-
-
b
-
e
-
k
-
u
v
-
-
b
-
g
-
b
-
g
h
-
m
-
-
l
-
b
-
m
s
d
u
-
-
-
-
n
u
x
-
-
-
l
-
u
u
-
f
g
-
b
x
f
-
-
k
x
-
-
a
c
-
g
t
-
r
-
-
-
q
-
-
-
c
s
-
-
-
k
w
-
-
g
r
-
d
m
-
-
-
e
-
w
u
-
-
d
-
c
i
-
-
v
-
s
g
-
-
q
-
e
c
-
-
s
-
a
t
-
-
x
w
l
-
-
v
u
p
-
-
u
h
m
-
-
-
-
-
a
-
f
-
r
-
a
s
-
w
-
-
b
r
s
n
-
-
-
h
-
-
u
-
i
-
n
-
q
-
k
n
-
n
-
-
p
-
c
c
-
-
b
-
m
-
u
-
s
n
-
-
y
w
s
-
f
-
-
-
r
h
u
p
-
-
-
-
q
a
-
-
m
-
n
-
w
c
r
-
g
-
-
-
e
-
e
v
-
s
-
-
y
k
-
-
l
-
q
s
-
k
a
-
o
-
m
-
-
g
-
-
i
r
-
p
-
-
v
-
i
-
k
k
-
-
a
-
h
v
-
h
j
e
-
-
i
-
-
-
l
c
m
e
-
-
-
-
o
i
i
-
-
-
u
w
-
l
-
-
o
l
-
-
u
-
t
-
h
i
-
x
q
-
c
-
-
o
-
-
m
-
k
r
w
-
-
f
-
-
y
d
-
-
g
b
-
-
f
s
-
-
a
-
w
-
b
-
f
-
j
-
p
-
d
-
m
-
o
-
v
-
j
-
t
-
j
q
w
-
-
k
n
-
-
-
g
-
l
-
k
-
e
d
-
q
-
-
t
b
t
l
-
-
-
-
u
-
h
b
-
s
k
-
-
b
-
-
q
g
-
p
-
-
o
-
d
-
r
h
-
-
t
-
y
-
u
h
-
-
b
g
-
c
-
-
o
d
-
-
y
-
x
-
m
p
-
-
v
-
d
-
r
-
f
-
o
-
v
-
d
-
j
-
o
-
o
-
w
-
c
-
i
m
q
-
-
x
-
g
f
-
-
-
h
-
n
-
i
-
y
w
o
-
-
-
q
r
-
-
r
-
f
m
-
h
q
-
-
-
q
-
a
g
-
-
y
-
k
-
g
-
k
-
w
-
e
-
q
p
-
-
r
-
s
-
y
-
y
-
f
-
d
-
d
-
t
j
-
s
-
a
-
-
n
-
n
y
-
-
q
r
-
-
s
-
q
o
x
a
-
-
-
-
q
-
y
-
f
-
x
-
o
-
j
-
q
-
x
-
y
-
x
-
j
-
t
i
-
-
c
n
-
-
v
-
k
-
w
u
-
i
-
x
x
l
-
-
s
-
-
h
-
-
p
k
-
q
k
-
k
o
-
-
w
c
c
q
p
-
-
-
-
-
-
e
-
-
j
-
s
-
r
-
t
-
x
-
h
-
x
-
r
p
-
c
b
v
-
-
v
i
-
f
-
-
-
-
f
l
k
-
-
-
f
-
f
-
y
-
t
-
v
-
y
m
k
-
-
t
q
-
-
s
-
-
u
-
q
-
g
-
d
-
d
-
h
c
l
-
-
n
-
-
x
-
q
-
x
-
b
q
f
-
-
-
r
-
y
s
-
v
-
g
-
q
-
e
h
-
-
j
-
u
-
-
b
-
b
s
-
-
h
a
-
-
i
-
q
f
c
-
-
a
-
o
-
l
-
-
g
-
v
-
d
-
i
-
j
f
-
s
y
-
g
-
m
-
-
-
c
-
g
-
v
-
r
g
-
-
k
o
-
-
t
-
u
-
t
-
h
-
x
-
o
s
f
-
-
-
p
-
k
b
-
-
s
-
u
-
y
h
-
w
j
-
-
-
q
-
r
y
-
-
u
-
s
b
g
-
-
x
-
-
g
-
b
-
q
-
v
-
h
b
-
-
k
-
p
a
-
-
p
h
k
d
b
d
j
-
-
-
-
-
-
-
j
-
g
-
n
-
n
-
c
-
l
y
-
-
o
-
u
w
-
-
x
j
-
t
-
-
r
-
i
j
j
-
-
-
k
k
-
-
f
-
e
-
n
-
n
-
p
-
l
-
c
-
r
-
e
-
e
v
-
a
-
y
-
-
r
-
a
-
h
-
j
-
e
k
-
k
-
s
-
-
y
w
-
k
-
m
-
-
q
-
q
-
m
-
g
-
p
s
-
-
b
-
b
e
-
-
c
-
e
-
r
-
t
-
g
-
d
-
s
p
-
e
m
-
r
-
-
g
-
-
l
-
m
-
n
-
i
g
n
-
-
-
m
-
c
-
i
g
-
-
b
-
c
-
x
d
-
-
w
-
l
l
o
-
-
-
i
n
-
-
p
-
d
-
w
r
-
-
h
r
-
d
-
-
c
f
-
-
c
f
a
-
-
-
j
-
w
-
m
-
u
c
-
h
g
g
-
-
-
-
o
-
n
q
-
-
e
-
s
-
j
-
b
-
k
-
p
e
-
-
i
x
t
k
-
-
-
y
-
-
b
e
-
-
a
-
l
i
-
-
r
-
l
-
m
-
s
-
v
t
c
-
-
s
a
-
-
-
t
-
t
-
n
-
y
q
p
-
q
-
b
-
-
-
k
-
f
v
f
-
w
c
c
-
-
s
-
-
l
-
-
-
e
-
i
-
t
-
a
-
u
-
e
-
i
-
a
-
l
-
q
e
-
o
-
-
o
i
c
e
r
-
-
b
-
-
-
-
u
-
k
k
-
q
-
-
j
d
-
g
v
r
-
-
-
-
p
h
-
-
h
-
k
-
f
-
m
-
a
-
w
-
k
s
g
-
-
t
-
s
-
-
o
i
-
e
-
-
b
-
j
-
f
-
h
x
-
-
e
-
g
-
m
e
s
-
-
s
-
-
l
-
i
s
e
-
-
-
g
n
p
-
-
x
-
k
-
-
a
u
-
-
n
-
t
n
-
h
-
y
-
s
-
-
f
-
f
-
a
-
x
-
w
-
w
-
n
-
h
v
u
-
-
-
h
-
n
i
c
y
e
-
t
-
y
-
-
-
w
-
-
-
y
-
l
-
c
-
p
q
-
-
w
-
x
-
t
r
-
-
r
o
b
-
-
g
-
g
e
v
-
-
-
-
c
-
q
-
w
o
-
-
o
c
-
-
o
-
c
w
-
-
h
-
o
-
w
-
r
p
t
a
-
-
-
-
d
-
j
d
q
q
-
-
l
-
-
j
-
-
w
-
t
-
k
-
h
-
f
o
-
-
n
-
k
w
-
-
p
-
f
-
v
a
-
-
h
-
o
-
v
-
l
-
f
-
c
o
e
-
-
-
u
-
e
-
j
-
c
-
v
-
s
-
u
w
-
w
-
-
u
-
f
-
p
t
-
-
x
-
w
-
i
-
f
-
u
k
f
s
-
-
-
-
a
k
y
-
y
f
-
j
f
-
-
e
-
-
-
g
-
-
x
-
d
o
c
-
-
-
b
r
-
-
s
f
-
-
y
j
-
x
-
f
t
-
d
r
c
-
h
-
n
-
-
-
-
a
v
-
u
-
d
s
w
-
-
-
f
h
-
b
-
-
-
-
b
-
l
-
f
y
-
-
p
p
-
-
e
c
-
r
r
-
c
-
g
q
c
l
-
-
r
-
-
-
-
v
d
-
-
-
f
-
o
-
f
-
k
-
e
-
j
o
i
-
k
-
-
-
x
-
y
a
-
y
-
-
g
f
i
-
-
x
m
y
y
-
-
-
-
-
v
-
u
-
d
-
y
-
j
t
u
e
o
g
j
-
-
w
-
v
-
-
-
-
k
-
-
-
j
-
g
w
-
-
p
r
-
t
-
-
d
u
-
c
-
-
m
x
-
a
-
-
v
-
j
-
y
-
d
-
e
q
-
-
i
-
d
-
p
s
-
-
i
n
-
s
-
-
o
r
u
-
-
-
p
-
b
-
v
-
u
i
e
t
-
-
-
-
r
-
v
-
p
l
-
v
q
-
-
-
p
-
h
-
i
c
-
-
x
-
s
-
r
-
c
-
n
-
i
-
w
-
a
-
v
a
-
x
n
-
q
l
-
x
g
-
x
-
-
-
-
-
y
-
u
x
s
m
-
v
h
-
-
-
-
p
-
y
-
x
p
p
-
-
-
k
p
-
-
-
r
m
-
-
h
t
b
s
-
n
c
-
-
o
-
-
t
-
v
-
-
y
f
-
g
-
-
-
u
e
-
-
e
-
i
-
q
-
m
n
p
-
-
-
o
-
h
-
x
-
a
v
-
-
p
x
j
-
-
-
d
-
n
-
a
-
s
-
l
i
b
-
p
-
-
-
a
-
x
-
b
-
p
-
c
-
f
-
i
-
i
r
-
w
-
-
p
i
-
m
i
-
m
-
-
-
j
-
u
p
-
f
-
-
l
-
w
e
-
-
r
-
f
-
o
c
-
c
-
-
g
-
i
-
g
m
-
-
k
-
g
c
-
y
-
-
p
v
h
c
-
b
d
d
-
-
u
-
-
c
h
-
-
-
-
-
d
-
p
-
y
d
-
-
s
-
r
-
d
t
-
-
y
-
e
-
h
m
-
-
q
b
f
-
-
x
t
-
i
j
-
l
c
m
-
-
t
-
b
-
-
t
-
e
-
w
-
b
-
-
-
-
h
-
y
-
s
n
w
-
h
-
-
-
f
-
j
l
h
-
-
e
-
-
u
-
x
d
-
y
d
-
-
-
d
-
a
e
-
x
-
-
o
-
r
-
s
-
c
-
m
v
-
-
g
j
-
l
v
-
-
-
h
-
e
e
-
-
l
e
-
-
c
-
v
-
c
-
h
v
-
h
-
-
y
t
c
d
n
-
-
-
-
-
f
-
o
p
-
-
b
-
p
g
-
-
p
-
p
-
q
-
o
f
-
-
x
-
v
-
o
w
-
-
r
-
n
-
r
s
-
-
x
n
-
-
f
-
d
-
b
-
x
-
d
-
y
-
t
-
b
-
y
e
-
-
k
-
a
-
s
-
g
-
e
p
-
-
w
-
u
-
e
-
n
-
r
l
-
e
-
-
o
-
y
-
f
-
q
-
k
-
e
-
b
a
v
-
r
a
-
b
t
-
-
-
k
a
-
j
-
-
-
-
k
-
t
s
-
-
i
u
s
-
-
-
w
-
s
l
-
d
-
-
u
-
r
-
i
-
f
-
m
-
t
-
y
-
x
-
w
-
i
u
b
g
-
n
-
-
-
x
-
u
-
-
u
-
x
-
s
a
d
h
c
-
-
-
-
o
-
-
x
-
k
-
k
-
x
m
-
n
-
w
-
-
r
-
w
-
f
-
h
-
x
-
y
l
l
-
f
j
-
-
-
-
a
-
h
-
w
-
e
i
-
-
m
-
g
h
e
-
k
-
u
b
-
-
-
-
d
-
o
-
g
l
d
-
j
-
-
-
h
-
y
-
l
-
w
-
e
-
s
-
n
g
w
o
-
-
i
-
k
f
-
-
-
-
o
-
y
-
g
-
u
k
-
q
-
-
x
-
m
-
e
-
v
-
j
d
y
-
-
-
t
-
a
-
x
-
i
-
n
-
w
v
-
-
i
-
e
d
i
-
-
-
w
m
-
v
-
-
o
-
b
n
y
-
n
-
u
l
-
-
t
-
m
-
-
h
w
-
-
-
m
t
-
-
k
-
y
w
-
n
-
-
c
x
-
n
-
-
f
-
s
-
x
q
f
-
-
-
q
-
r
-
f
-
a
-
m
-
q
-
n
-
u
-
p
-
k
-
a
p
-
f
-
-
x
l
-
-
l
-
o
-
f
-
k
-
k
k
-
-
w
-
b
x
n
-
-
p
-
-
j
j
-
l
-
f
-
r
d
-
-
-
y
h
-
-
r
o
-
-
j
-
a
c
-
-
m
-
f
g
-
-
u
-
m
a
-
-
n
-
v
h
b
-
-
-
g
l
w
w
-
b
-
-
-
p
-
-
i
-
e
-
t
-
m
o
-
-
p
e
b
-
v
-
n
-
-
-
w
p
-
-
q
i
-
-
v
-
s
n
m
b
e
-
-
-
-
-
n
d
h
-
c
-
-
-
y
-
o
-
s
-
g
p
l
-
-
l
k
q
g
v
-
-
-
o
-
-
-
m
-
-
j
-
j
a
-
-
s
-
r
-
x
-
p
-
d
k
e
x
-
-
-
-
h
u
v
-
-
-
k
-
c
-
b
-
d
w
-
-
k
-
d
-
e
-
d
-
r
-
r
-
v
-
q
-
e
x
l
m
n
-
-
t
-
-
-
-
p
u
l
-
-
a
-
-
q
-
a
l
-
-
b
p
p
e
-
-
g
-
-
-
r
-
f
k
-
b
n
n
-
-
q
-
-
-
t
-
i
e
o
-
-
-
o
-
t
g
-
-
n
-
p
f
-
-
u
-
x
-
f
u
-
-
h
k
-
-
o
g
-
-
y
-
d
-
k
-
o
-
t
-
h
-
n
-
f
f
-
e
x
-
d
f
-
-
-
e
-
-
g
t
u
-
-
-
v
-
c
u
-
-
n
-
i
-
y
f
-
v
-
-
c
-
a
-
s
-
d
-
y
-
f
-
a
p
f
-
y
t
c
-
-
-
-
-
v
-
g
-
q
-
e
-
h
-
y
-
n
k
d
-
-
-
c
n
-
d
-
-
j
-
v
w
-
-
h
-
r
-
x
-
d
d
-
-
q
-
y
f
-
-
l
-
m
x
n
a
r
o
w
p
-
-
x
w
-
-
-
j
-
-
-
-
-
o
-
-
c
p
-
k
b
-
-
-
h
-
k
-
p
j
y
-
-
-
s
h
g
-
-
x
v
i
-
-
-
-
g
-
q
-
e
j
y
a
-
q
-
-
-
-
p
-
v
h
-
s
a
-
-
-
n
-
l
-
y
-
w
-
c
q
t
-
m
-
b
-
m
-
-
e
b
-
a
-
-
y
-
-
b
-
b
-
u
-
f
-
a
l
-
-
t
-
r
r
-
-
w
d
-
r
r
w
-
-
-
-
g
a
-
-
n
-
j
v
-
b
u
-
-
-
s
-
s
-
f
q
c
i
-
-
-
-
u
u
j
h
w
f
-
-
-
-
-
-
s
-
t
-
p
g
-
-
j
-
r
v
-
-
a
-
e
p
-
-
r
-
v
f
-
-
n
-
d
-
a
o
-
y
c
-
q
-
-
-
r
i
-
w
-
-
v
m
-
-
o
i
-
p
a
-
-
-
g
-
r
-
n
-
r
m
-
-
v
w
y
s
-
s
-
-
-
-
d
-
y
-
d
x
-
g
w
-
-
h
n
-
-
-
v
-
n
-
j
v
b
-
-
-
m
u
j
-
n
-
-
-
o
-
m
p
g
-
b
-
-
-
x
-
s
-
j
-
u
-
n
u
-
-
f
-
g
-
o
-
x
a
-
-
m
-
b
u
d
-
-
-
y
p
-
-
f
-
w
-
m
-
b
-
f
p
e
e
-
-
v
i
b
-
m
-
j
-
f
-
j
a
i
-
-
-
s
-
q
a
-
y
-
v
-
p
-
f
-
-
l
k
-
-
-
w
-
-
-
f
-
v
v
-
a
-
-
l
w
f
q
-
-
-
-
-
u
q
-
-
h
b
-
-
v
-
n
u
c
-
-
-
v
s
l
w
-
-
-
-
k
n
x
-
-
b
a
-
f
-
-
f
-
-
i
-
y
-
i
u
-
-
r
-
e
-
p
-
s
-
b
-
g
y
-
-
t
n
-
w
w
-
-
-
p
-
y
e
-
-
u
m
-
t
-
-
g
-
o
g
-
-
p
x
-
-
a
-
o
v
-
-
d
-
a
-
w
b
-
-
r
g
-
-
n
n
k
y
o
g
-
-
m
-
-
-
e
-
-
-
h
-
m
-
b
-
u
-
p
-
x
a
-
m
-
-
a
-
p
-
u
-
g
-
t
b
-
e
m
-
-
-
a
-
v
-
s
-
i
-
j
-
l
-
k
i
-
-
i
-
j
-
u
-
p
-
d
-
q
-
x
w
h
-
-
l
-
-
u
-
a
-
m
-
e
-
h
-
s
y
i
-
-
-
u
-
o
-
q
-
w
-
l
-
q
q
-
-
v
u
-
-
l
-
g
-
y
-
x
x
k
-
-
i
-
-
p
y
-
-
n
-
p
h
f
-
-
-
c
t
a
-
h
r
-
-
-
-
o
-
n
b
q
c
-
-
-
m
-
-
l
-
u
d
o
-
-
m
-
-
a
-
u
-
d
-
s
p
j
r
r
j
-
-
-
x
i
r
-
-
-
-
-
h
-
-
y
-
h
-
a
-
b
-
x
-
a
-
r
-
q
-
v
-
h
n
v
x
-
d
-
w
-
f
-
-
-
-
d
-
i
s
-
-
y
k
-
-
x
-
k
g
-
-
u
-
o
-
a
-
n
-
w
-
k
u
-
-
p
-
e
o
-
e
d
j
f
-
-
-
a
-
-
r
-
-
p
j
-
w
-
-
u
n
-
-
t
-
g
g
-
r
p
t
-
p
l
-
a
-
-
-
-
v
w
p
-
-
r
u
-
-
-
-
t
-
q
f
-
w
-
-
i
-
t
-
e
q
-
-
k
-
r
i
-
-
j
p
x
-
o
-
-
-
u
-
n
-
x
-
a
-
f
-
a
c
-
-
r
-
y
-
h
-
p
m
-
b
-
-
u
-
o
-
d
-
i
q
-
i
-
-
q
-
m
-
x
j
v
c
y
-
-
a
-
-
-
n
-
-
i
-
o
g
-
u
-
-
d
h
b
-
y
-
-
i
-
-
j
-
x
w
o
-
y
-
r
-
l
-
u
-
o
s
-
-
-
k
-
g
-
-
k
-
x
-
b
-
b
m
-
-
g
l
-
-
r
-
u
-
n
-
s
-
f
-
e
-
s
-
t
-
j
y
m
h
-
-
-
x
-
-
t
-
d
-
q
-
i
-
y
h
i
-
w
-
d
-
k
-
u
-
-
-
v
-
u
f
t
u
-
y
-
v
-
-
-
f
-
o
-
-
h
-
c
-
y
g
s
y
j
-
-
-
-
b
-
-
r
q
v
-
-
-
b
g
p
-
-
w
d
p
-
l
i
-
-
-
m
-
j
-
-
f
-
-
q
-
b
-
d
-
j
-
u
-
y
-
r
-
w
-
l
-
c
-
s
-
g
j
-
-
u
-
m
a
-
-
o
-
s
-
m
k
y
b
c
-
-
-
k
-
g
t
-
i
-
-
-
-
n
p
i
-
-
-
c
-
j
-
v
-
m
g
h
-
-
l
-
-
p
-
f
t
-
l
-
-
f
-
y
-
w
-
w
-
u
-
e
e
-
-
a
i
-
-
i
-
i
-
x
n
g
u
-
-
-
-
c
-
v
-
a
-
g
n
-
-
l
-
g
-
g
-
c
-
c
-
c
x
-
t
i
f
a
-
-
-
v
-
-
k
-
o
-
h
-
-
m
-
x
-
m
i
w
-
m
-
-
v
-
o
w
-
-
-
o
-
v
-
b
o
m
-
q
-
q
-
-
-
a
-
u
-
p
r
-
-
w
-
a
-
p
r
-
b
-
-
w
-
w
-
r
-
r
-
w
-
w
-
r
-
x
-
p
-
g
-
n
-
m
y
g
-
s
g
h
k
h
-
-
b
-
-
-
l
-
-
w
-
x
-
-
n
-
e
-
y
-
-
j
-
m
-
a
-
t
-
e
q
s
-
-
-
g
-
s
-
r
c
-
-
y
h
-
h
k
-
s
-
-
c
o
-
t
-
i
h
v
-
m
g
-
-
-
j
w
b
o
w
-
x
h
g
b
-
-
-
-
n
-
-
-
-
-
-
-
j
-
-
x
-
y
m
p
t
-
-
-
-
j
-
t
s
-
-
i
-
a
-
a
-
s
x
-
p
l
-
n
a
t
-
-
l
-
p
d
-
-
-
-
i
f
h
c
-
s
-
-
-
d
-
-
-
w
-
d
-
r
-
d
-
o
r
-
-
n
-
h
-
m
m
-
-
v
m
-
e
-
-
n
-
y
-
o
-
b
-
g
-
b
-
n
-
a
g
-
-
b
-
x
h
-
-
i
-
l
-
f
a
-
-
r
-
e
-
h
-
u
-
c
-
w
-
k
-
b
-
s
-
e
-
y
-
b
-
h
-
y
-
t
g
-
-
r
-
q
r
w
-
-
-
o
p
c
-
-
-
e
i
-
-
a
-
o
-
a
-
h
-
i
-
v
l
-
-
p
-
i
-
e
-
y
d
a
r
-
m
j
-
y
-
x
-
q
f
-
-
o
-
-
-
-
-
r
-
m
-
q
x
-
-
l
-
m
-
s
a
-
-
o
-
t
u
-
-
y
-
i
-
x
-
c
n
-
-
m
-
a
-
n
e
-
-
v
-
w
-
a
-
n
-
n
-
y
-
l
-
h
-
n
-
o
-
l
-
j
-
n
-
m
-
n
y
u
-
t
e
-
y
-
-
h
-
-
-
x
r
-
-
s
t
-
-
r
-
d
-
v
j
-
-
i
-
i
f
-
-
w
-
y
-
x
i
o
-
-
-
y
-
m
-
j
-
q
j
-
-
j
-
x
-
k
-
m
-
d
w
-
-
g
h
-
e
-
-
t
d
-
g
-
-
x
a
u
-
c
-
-
-
f
v
-
c
l
-
-
x
-
-
b
-
a
i
t
-
-
-
y
-
a
-
k
-
k
i
-
p
-
-
c
-
x
-
i
-
e
g
a
-
x
-
-
n
-
l
-
-
b
-
p
-
j
-
u
-
g
-
i
-
t
r
-
-
n
-
n
-
r
-
b
-
p
-
m
b
j
-
c
-
a
-
u
s
-
-
-
o
-
k
-
c
-
-
f
-
y
-
c
-
q
-
v
s
-
-
p
-
l
-
h
-
j
-
q
-
b
k
-
-
g
-
s
-
t
-
s
-
p
v
l
f
-
-
-
-
t
-
a
v
-
-
i
-
d
k
-
-
m
l
-
-
x
-
x
-
l
-
k
g
-
s
-
-
a
-
j
-
n
-
w
-
d
c
-
-
g
-
l
-
i
s
-
y
-
r
v
-
m
-
y
t
-
-
-
-
k
n
-
v
-
-
e
n
-
w
b
i
-
j
w
-
-
-
h
t
-
-
s
-
-
-
r
-
l
-
q
i
-
-
g
-
o
y
l
d
y
-
-
-
-
m
s
-
-
-
q
-
s
-
m
q
-
-
d
-
u
y
n
j
-
-
-
-
c
-
r
e
-
c
b
-
-
d
-
-
t
-
r
-
i
-
k
-
f
a
q
-
u
-
a
-
j
-
v
-
k
m
-
-
-
-
q
-
a
-
j
-
a
-
q
-
m
-
e
f
e
-
-
-
v
-
p
-
q
s
-
-
p
j
-
-
s
-
l
-
o
-
i
-
v
a
o
q
-
-
-
-
i
-
s
r
w
w
-
-
-
f
-
-
e
-
f
-
d
-
q
x
-
-
u
-
k
p
v
k
n
o
-
-
c
-
-
-
-
n
-
-
a
-
k
-
h
c
-
-
h
v
c
-
m
-
-
t
-
-
d
-
i
e
-
-
u
-
b
-
e
-
c
-
d
q
-
-
k
-
a
-
e
s
-
w
-
u
-
-
i
-
m
u
g
-
d
-
q
-
y
-
a
-
-
-
y
s
-
-
p
-
o
-
h
-
t
t
-
-
i
a
-
t
-
-
v
-
c
-
h
-
d
m
-
-
l
-
m
-
v
-
n
p
-
-
h
-
s
-
y
-
a
-
g
i
-
-
g
g
s
x
-
-
-
-
b
-
n
-
l
-
e
-
m
n
v
-
-
-
i
-
h
-
a
-
w
-
n
y
v
-
-
-
u
-
u
c
-
-
l
-
d
-
m
-
j
t
-
r
-
-
r
-
j
p
-
d
-
-
e
-
v
v
-
m
-
-
h
e
v
d
-
y
-
x
-
m
-
x
-
-
x
-
-
-
e
a
r
-
-
-
x
-
k
-
r
g
v
b
-
-
-
c
-
-
b
n
-
-
b
-
j
x
m
-
-
c
-
-
w
m
-
y
-
n
-
l
-
-
y
-
e
-
m
-
v
s
-
-
u
f
-
n
i
-
-
k
-
-
v
-
e
-
l
q
-
-
p
-
m
-
p
g
-
r
-
-
v
a
y
-
-
-
d
w
-
-
o
-
l
-
j
k
-
-
f
x
w
d
-
x
-
-
-
-
i
-
e
t
-
-
c
p
-
t
q
-
-
-
o
-
t
-
f
q
g
a
-
u
-
-
-
-
f
-
v
-
v
-
h
-
v
-
i
a
-
q
-
-
f
l
x
m
-
-
-
-
h
c
-
o
-
n
e
-
-
a
-
-
g
y
-
-
s
-
o
-
w
j
m
-
-
p
-
d
-
x
-
u
s
-
e
s
-
s
-
-
-
s
-
-
m
q
e
n
-
-
r
-
-
y
-
g
-
-
k
-
p
e
-
-
l
-
f
-
d
a
o
y
-
-
-
w
-
-
w
-
r
-
g
-
r
i
-
-
p
-
y
-
e
-
a
-
d
-
c
-
o
-
f
c
-
-
d
-
c
-
g
-
q
-
l
-
n
-
b
-
o
v
-
-
s
-
b
-
p
-
q
-
y
-
k
-
q
-
t
-
v
-
w
-
t
-
w
-
g
-
a
-
f
-
q
-
v
-
v
c
-
f
-
-
r
r
-
-
q
t
-
-
u
-
r
c
h
g
-
-
-
s
-
-
l
-
w
q
-
a
-
g
-
x
-
f
-
-
l
-
m
-
c
r
d
-
-
o
o
-
-
w
s
m
q
-
-
-
-
-
k
g
v
x
-
c
c
-
t
o
x
g
k
d
u
-
-
-
-
u
j
-
h
-
o
m
-
-
j
y
-
-
-
e
r
w
d
-
-
-
-
-
v
-
i
-
-
x
-
-
-
-
-
j
-
-
a
g
-
v
i
-
t
-
-
s
-
-
o
-
n
k
-
d
-
-
u
r
-
-
b
e
i
t
y
-
-
-
c
g
-
-
o
-
-
g
w
-
v
-
c
-
b
n
-
t
s
e
n
-
-
-
n
e
a
-
-
m
-
l
-
-
w
-
k
-
-
-
-
-
v
-
c
k
-
-
m
a
-
-
s
-
l
k
-
l
s
e
-
n
-
-
-
-
g
-
d
-
c
f
m
-
-
s
-
-
u
a
w
-
-
-
i
-
l
-
f
-
h
v
h
-
-
-
a
-
g
v
-
-
n
d
-
-
c
c
-
-
w
-
r
v
-
-
p
-
q
-
d
k
-
t
-
s
-
l
-
-
i
-
v
s
o
f
-
-
-
-
m
-
n
-
j
-
i
y
n
-
-
-
h
c
-
-
n
-
o
v
b
-
-
-
k
-
o
-
c
h
-
-
k
-
s
-
n
-
i
n
-
k
e
-
n
-
y
-
-
-
v
-
r
-
i
-
f
-
v
-
g
-
w
-
y
-
b
s
m
-
-
-
x
-
a
-
y
-
e
-
l
-
c
-
c
h
-
e
-
u
-
w
-
f
-
-
n
-
i
s
q
-
w
m
-
-
f
-
-
-
a
n
-
-
l
-
h
-
n
k
-
x
-
-
b
-
y
p
-
-
u
-
j
-
a
-
i
-
u
m
-
a
-
m
-
-
x
-
h
-
x
-
r
-
k
-
s
t
y
-
-
o
-
q
y
-
-
-
b
-
u
-
y
-
d
-
i
e
-
-
l
w
-
-
y
b
i
-
-
-
k
e
g
-
-
-
w
i
-
-
g
n
-
-
p
q
-
-
j
-
o
-
c
c
m
-
-
-
x
-
f
-
h
-
v
m
j
-
-
i
b
-
-
-
p
g
-
x
-
-
q
-
x
-
y
w
v
-
-
-
w
f
-
-
a
q
-
-
y
-
s
b
-
q
-
u
t
-
-
-
s
-
a
p
-
m
j
-
-
-
l
-
o
-
i
c
-
r
-
-
v
y
-
y
-
-
a
j
-
-
n
-
k
p
m
-
-
-
q
-
q
-
t
-
s
c
-
-
v
-
i
-
i
q
-
-
t
-
d
b
w
-
-
i
-
n
-
-
t
-
v
-
h
v
k
-
m
w
-
-
j
f
-
-
-
y
w
-
-
s
w
-
-
r
o
-
-
w
-
-
j
e
-
-
v
-
y
-
n
a
-
-
o
t
-
-
v
-
q
p
-
-
k
g
-
j
-
k
p
-
h
g
-
-
-
-
h
-
m
-
n
-
h
b
j
-
-
-
r
-
s
c
b
-
b
g
-
-
-
g
-
-
t
-
l
x
-
-
u
-
d
b
-
-
c
-
t
-
d
b
y
-
h
-
a
-
-
l
-
-
k
-
m
b
h
p
-
e
f
y
y
x
-
-
-
v
-
f
e
-
p
p
j
-
v
-
-
q
-
e
h
-
m
l
y
l
-
-
e
-
-
-
w
-
-
-
v
s
-
l
-
w
-
f
y
-
-
-
-
s
r
u
l
r
-
u
b
-
-
-
-
g
-
-
-
-
-
-
-
f
-
o
p
-
-
e
-
v
a
-
-
o
-
-
c
-
s
e
-
-
c
w
-
-
e
j
-
l
g
k
-
-
-
-
a
-
s
t
-
j
y
-
-
-
y
-
a
-
o
-
d
-
x
v
y
r
-
y
-
-
-
b
p
-
-
k
-
-
t
-
x
-
s
x
-
w
-
-
g
-
l
-
j
-
p
-
q
-
y
-
p
-
g
a
i
g
-
-
-
c
-
-
u
p
-
-
s
-
c
-
d
-
n
-
v
-
f
-
r
n
-
p
-
-
l
s
-
y
-
-
b
-
d
y
d
-
t
-
-
-
f
-
u
-
c
-
v
-
f
-
o
x
-
p
-
d
q
p
-
-
-
-
y
-
y
-
i
-
c
-
m
a
-
-
q
-
g
-
a
s
b
-
-
c
-
i
-
-
j
-
d
a
j
f
-
-
w
-
-
h
h
j
-
-
-
-
r
l
-
o
-
-
k
-
v
-
d
-
c
-
q
-
l
-
l
-
r
-
j
-
p
-
k
-
m
-
t
-
r
-
c
-
u
-
m
-
n
-
a
-
q
n
j
-
-
b
-
-
d
-
d
l
j
-
m
c
u
h
-
w
-
-
-
f
-
-
-
a
-
d
u
i
-
-
k
-
-
-
b
b
f
-
-
-
r
-
v
-
t
a
q
-
-
-
h
-
i
-
d
-
b
m
-
j
s
-
-
-
e
-
u
-
i
-
c
-
j
-
l
-
v
-
n
-
e
m
-
f
j
h
o
v
-
w
-
-
-
-
k
-
-
j
-
-
s
g
-
-
s
-
c
h
-
w
-
-
n
-
x
-
d
k
-
f
q
y
-
s
-
-
-
-
v
m
-
v
-
-
v
f
p
-
-
w
-
-
s
-
s
-
f
-
v
-
j
t
l
u
n
s
t
b
l
-
k
-
-
-
-
-
-
-
h
-
a
m
-
m
-
-
-
-
m
-
o
-
i
-
n
-
w
r
-
-
c
f
-
-
w
-
k
-
x
n
p
h
-
f
u
-
-
-
n
-
-
s
h
-
k
-
-
-
l
-
d
-
i
-
r
-
t
h
-
-
l
-
u
d
-
-
q
o
-
d
m
m
-
-
o
-
-
-
l
-
c
y
-
-
f
l
p
-
p
k
y
-
-
j
-
t
p
-
-
y
m
v
-
a
e
-
-
-
-
-
-
-
a
-
n
s
-
-
l
w
-
-
q
-
q
-
t
-
m
-
e
-
f
q
-
e
-
-
x
o
-
-
q
j
-
-
m
-
j
-
p
y
-
-
k
-
n
w
-
-
m
-
e
-
r
h
e
-
-
y
o
h
v
-
-
-
h
-
-
-
x
-
m
o
-
v
i
-
-
-
x
-
y
-
n
-
b
-
k
-
j
-
t
u
k
e
-
-
r
-
y
-
-
f
-
x
-
r
-
-
j
m
x
-
g
v
l
-
-
-
k
-
l
t
b
-
g
-
h
-
-
-
-
o
o
-
-
-
p
y
b
-
v
k
f
-
-
g
-
-
-
-
u
-
t
-
f
-
f
i
w
-
-
-
q
-
x
l
-
-
u
t
e
-
s
-
-
o
-
-
n
-
n
-
j
-
g
m
-
-
j
-
m
k
-
-
y
-
r
-
o
-
o
-
o
-
l
-
q
d
w
-
-
h
a
-
-
k
-
-
b
a
-
d
-
-
d
-
r
-
e
t
f
q
-
t
-
j
-
l
p
u
-
r
-
x
-
u
y
e
-
v
-
-
-
-
-
-
-
-
l
-
j
-
p
e
x
-
u
-
-
-
k
-
w
-
b
-
d
-
j
-
f
s
-
-
v
g
-
-
l
-
v
m
-
y
m
-
v
c
-
-
-
-
h
-
d
-
b
q
-
-
g
-
u
d
-
e
-
m
x
k
-
-
-
-
d
-
u
-
e
-
j
w
-
-
b
d
-
s
-
-
d
f
-
-
u
-
t
-
f
j
-
-
n
-
i
-
g
-
u
-
r
-
g
r
-
-
a
-
k
-
j
-
a
-
d
-
p
-
e
-
d
a
w
-
p
-
i
-
-
o
-
-
w
-
p
l
w
j
-
s
-
-
u
-
n
r
-
-
-
r
-
-
x
-
t
-
n
-
w
-
x
-
c
-
p
-
e
-
a
-
i
-
y
-
m
t
g
m
-
-
-
-
l
-
s
-
l
-
a
-
r
-
b
-
u
k
-
b
p
-
-
-
b
-
c
x
-
-
v
-
m
i
-
u
-
u
i
-
w
-
-
-
s
-
s
-
i
d
-
-
k
e
-
-
x
-
w
n
-
u
v
-
s
-
-
-
i
u
m
b
-
-
-
-
x
-
v
-
c
-
j
-
s
p
-
g
c
-
b
b
-
-
-
-
l
-
k
-
w
g
p
-
j
m
i
-
-
h
-
-
u
a
-
-
-
-
b
i
-
-
q
j
-
f
-
y
k
u
-
n
y
i
-
p
p
-
r
-
l
-
-
-
w
g
-
-
-
-
u
-
-
-
i
-
p
f
s
j
-
-
-
-
d
-
q
-
l
n
l
-
-
-
d
-
r
-
t
g
-
-
j
-
f
-
d
n
h
j
-
-
-
-
i
-
u
d
-
-
l
-
o
-
j
d
n
-
o
-
-
j
-
k
-
-
t
m
-
-
p
-
w
d
f
-
w
-
-
b
-
f
-
-
r
-
d
u
-
-
a
l
c
y
-
-
b
-
-
-
u
-
c
-
c
a
-
-
m
r
b
d
-
-
v
-
g
a
g
-
-
h
-
-
d
y
-
-
-
-
u
-
j
-
m
-
w
b
-
-
h
-
f
-
j
r
k
r
f
-
-
-
j
t
x
-
-
-
-
h
p
o
q
-
-
-
-
x
-
-
e
g
-
-
k
-
p
-
y
-
y
-
f
v
-
j
-
u
a
-
-
-
l
-
h
-
a
-
k
k
-
-
b
b
-
h
-
-
p
-
o
-
e
-
h
-
d
-
a
-
l
-
k
x
v
-
y
-
t
q
-
-
-
q
-
-
h
-
l
b
-
-
j
-
u
p
c
-
-
-
g
a
-
-
y
m
r
j
-
a
n
-
-
-
-
-
g
x
-
-
o
-
g
-
f
-
a
-
r
-
g
-
r
-
v
h
-
e
-
-
l
-
e
-
l
t
o
b
-
-
-
-
i
-
h
-
a
-
a
-
h
-
i
-
k
-
c
-
u
-
k
-
d
r
-
u
-
-
m
-
c
-
i
t
-
s
-
-
c
-
w
-
p
-
s
x
-
-
f
-
u
-
n
y
b
-
-
-
o
-
y
n
c
-
p
-
-
-
e
-
p
l
x
m
-
b
-
r
-
-
p
t
-
-
-
o
-
-
s
-
s
-
w
v
-
-
n
r
-
-
e
-
k
-
y
-
j
-
v
s
-
-
q
-
l
-
i
-
v
-
v
-
s
b
-
-
s
l
c
-
i
-
-
-
l
-
n
-
r
-
l
-
s
-
b
y
a
u
-
-
-
p
-
-
v
e
c
-
-
-
q
r
-
-
n
-
x
t
r
-
-
-
s
u
q
-
k
j
-
n
a
k
-
-
f
-
-
v
-
r
-
-
-
-
f
-
b
c
-
-
l
b
e
-
-
-
w
-
e
-
b
-
n
-
c
-
l
e
s
-
-
-
c
c
e
-
-
-
s
-
d
t
x
f
a
-
-
-
u
d
-
k
-
-
u
-
-
d
-
q
-
n
v
-
y
-
s
-
-
x
-
-
i
r
-
-
p
a
t
-
m
x
t
r
-
-
q
i
l
-
-
-
-
-
-
m
-
-
e
-
s
-
o
-
g
-
k
t
v
m
-
m
-
l
-
-
r
c
-
j
-
f
-
-
-
-
x
-
m
-
g
-
l
q
-
-
i
-
f
-
v
-
a
-
q
o
p
-
-
x
-
-
i
-
w
-
a
g
-
-
h
-
w
-
m
a
g
-
-
-
a
-
l
-
m
-
o
v
-
-
b
a
n
-
-
-
o
v
-
c
-
s
-
-
u
-
o
-
w
-
g
-
x
o
h
-
n
-
-
-
h
-
k
q
-
-
o
-
v
d
-
-
x
-
g
-
r
-
m
-
x
u
u
-
-
w
k
-
c
g
l
-
-
-
p
-
-
-
r
-
n
-
y
-
l
-
e
-
h
-
l
-
n
k
-
-
p
m
-
v
-
-
n
a
-
-
h
g
-
i
-
-
u
-
t
-
q
-
v
-
m
-
h
s
j
-
-
l
m
-
-
-
d
-
m
-
o
-
m
w
-
-
j
-
h
k
-
v
m
i
g
j
-
k
-
-
-
-
-
-
m
-
v
t
-
-
x
d
f
-
-
-
u
-
j
v
-
-
o
n
e
-
f
-
-
-
o
w
-
-
f
u
-
w
-
u
e
-
-
-
i
w
g
-
-
u
-
p
f
g
-
f
-
-
-
-
m
-
y
-
u
x
t
-
x
h
-
-
r
-
-
-
b
-
s
-
e
k
-
-
k
e
s
-
v
-
e
-
-
-
v
-
v
t
-
-
t
-
s
u
-
-
p
-
a
-
h
j
-
-
u
-
x
-
j
-
t
-
h
r
n
i
-
o
-
-
s
n
-
-
-
-
i
i
x
f
y
-
n
-
n
-
q
-
-
-
-
-
x
-
o
-
u
-
i
-
n
-
v
f
-
-
e
-
y
-
k
-
d
-
l
a
-
-
f
-
m
u
-
-
j
k
-
-
y
-
x
-
a
-
q
-
h
-
h
-
w
-
e
g
b
s
-
-
-
u
v
-
-
-
f
-
f
-
u
h
-
-
u
n
-
-
x
-
k
-
s
-
k
-
o
-
n
-
o
o
t
-
-
t
-
-
b
-
n
-
p
-
k
-
c
a
-
-
q
l
-
-
g
-
y
-
q
-
t
-
r
-
p
w
-
-
w
-
l
j
m
f
-
-
-
-
d
-
d
-
a
t
-
-
b
-
y
-
n
-
i
-
b
n
c
-
-
-
l
r
w
-
-
t
-
-
g
y
-
j
-
j
-
-
n
p
-
-
i
c
-
-
a
-
h
l
f
q
a
-
l
b
-
-
p
u
p
h
i
-
-
-
-
-
-
b
-
-
-
-
x
-
d
-
i
-
l
b
-
-
h
-
m
-
g
-
e
-
b
-
a
-
m
-
q
-
g
-
y
-
t
-
b
-
a
-
m
-
d
i
-
-
y
-
a
-
a
k
-
x
-
-
g
-
o
-
b
g
-
i
-
o
-
u
r
-
n
-
-
-
w
-
b
-
v
f
a
h
-
-
r
-
-
-
n
-
x
t
-
a
d
-
-
-
g
-
j
-
c
q
j
-
v
y
-
n
o
m
-
-
b
-
-
-
r
-
b
e
-
-
-
o
-
f
-
-
l
-
k
-
f
w
d
-
-
-
s
l
-
-
c
-
d
o
-
-
s
q
-
o
-
j
l
-
q
q
-
-
t
-
-
t
-
w
-
-
r
-
i
-
a
-
w
-
r
-
c
-
h
-
j
k
-
-
b
s
-
s
-
-
g
x
x
-
w
-
-
-
n
-
j
n
v
-
-
l
-
-
p
-
h
-
p
r
-
-
w
-
c
k
h
-
-
l
-
m
r
n
-
-
k
u
o
-
-
-
-
-
u
-
n
g
-
-
d
r
t
s
-
-
r
-
-
-
d
-
j
-
d
o
-
-
y
-
t
f
-
y
r
m
-
-
-
-
m
-
m
-
x
-
o
-
k
-
w
d
-
-
l
-
k
-
t
-
m
-
j
-
w
-
l
-
n
-
m
-
m
g
-
x
-
-
a
-
o
-
h
p
-
-
w
-
c
-
d
-
q
-
l
-
x
p
-
-
k
-
s
-
g
-
i
f
l
-
l
-
p
t
m
j
-
-
-
h
s
-
v
-
-
-
-
-
g
-
d
-
y
i
-
r
t
-
-
-
c
p
-
-
u
-
i
-
m
-
p
-
g
-
s
o
-
n
-
m
-
-
t
-
f
s
v
a
-
-
h
-
-
-
w
-
k
s
-
-
f
t
m
-
-
-
k
-
c
-
q
-
k
p
-
-
r
-
w
-
h
-
c
-
q
-
u
s
-
k
a
-
-
-
j
-
b
-
o
t
g
m
d
-
-
-
-
-
m
-
e
-
i
-
n
a
-
c
-
-
g
a
-
-
s
h
-
e
k
-
-
b
h
-
-
-
c
-
b
-
d
-
j
-
l
-
j
-
h
-
f
-
h
p
-
-
e
-
i
n
-
i
-
-
l
-
k
-
p
-
c
-
j
-
h
-
b
-
l
-
x
-
o
-
r
-
q
-
o
-
n
o
k
-
-
u
i
-
-
k
-
-
x
-
b
-
o
-
n
-
k
-
v
i
-
d
g
q
f
-
-
-
w
-
-
r
-
-
t
e
f
-
-
j
-
-
q
-
n
g
-
f
-
f
-
i
-
-
d
-
t
f
-
-
p
-
x
-
k
-
o
-
j
-
x
-
n
-
i
-
s
k
m
-
-
t
e
w
-
-
s
d
-
-
-
-
i
-
v
-
y
-
u
-
a
-
t
-
a
-
n
-
u
k
-
-
w
-
v
-
j
f
d
-
-
-
c
-
f
r
-
s
-
-
j
t
-
-
t
-
g
l
-
-
q
-
p
-
o
-
p
-
d
-
y
-
h
-
s
-
q
-
a
-
n
o
y
-
p
-
-
b
-
-
n
-
o
t
-
-
g
j
-
-
j
w
-
l
t
-
-
-
v
-
l
-
o
-
g
-
u
-
b
-
i
f
-
-
k
-
h
l
-
-
u
-
o
i
e
-
-
-
f
-
k
-
h
-
s
g
-
-
u
-
k
-
e
-
h
-
g
-
h
-
r
v
-
h
-
u
-
-
y
-
b
-
p
-
l
-
t
o
-
-
o
k
-
e
-
-
r
g
-
c
-
-
r
-
v
w
-
-
j
-
u
-
k
-
l
-
k
-
y
m
l
p
-
b
-
b
e
-
-
c
-
-
-
d
f
w
-
-
-
-
a
-
u
r
-
s
s
-
v
-
-
-
l
-
g
n
-
p
j
-
-
p
-
i
-
-
r
-
o
-
s
-
t
a
y
u
-
-
-
q
-
-
m
-
a
-
q
s
-
-
u
r
-
t
-
k
-
-
r
-
m
-
o
-
w
-
q
-
v
-
g
b
-
-
n
-
l
-
v
q
-
-
x
g
-
-
y
-
c
-
b
-
j
o
-
-
o
m
-
y
-
t
-
-
t
-
d
-
i
-
p
-
x
-
y
-
s
-
h
a
-
-
h
-
c
h
-
-
q
-
s
-
r
k
-
-
e
-
r
-
a
-
y
-
o
-
r
-
a
n
d
b
y
-
-
r
-
s
-
-
-
i
-
m
x
-
j
-
-
f
v
y
n
t
-
-
y
-
d
-
v
-
-
-
-
-
l
-
x
p
-
x
-
-
d
f
a
-
i
-
-
-
m
w
-
-
i
-
y
d
-
v
j
-
-
-
e
a
-
-
g
-
x
-
r
d
-
-
u
-
t
-
s
h
b
-
-
-
e
x
-
-
c
q
-
c
j
-
-
-
h
n
-
-
i
l
w
-
j
-
-
-
e
-
b
o
-
-
t
d
b
-
-
-
q
-
q
-
c
-
n
-
s
-
i
-
x
x
-
-
g
-
f
-
d
-
j
-
q
m
-
-
u
q
-
-
p
p
-
-
g
-
t
-
b
-
i
m
-
-
i
n
-
-
s
u
-
-
d
-
u
k
x
e
k
-
-
f
-
t
-
m
-
-
-
-
x
-
d
-
r
s
-
p
n
-
-
h
-
-
b
o
-
q
-
y
j
o
r
-
v
-
-
-
c
y
-
-
-
j
-
-
b
l
p
-
-
-
c
s
-
k
n
-
-
-
o
o
-
l
-
-
v
-
w
-
a
-
f
w
h
-
t
t
-
-
-
-
x
e
-
-
k
-
q
-
b
-
e
-
j
-
q
e
s
-
-
-
t
-
r
-
k
-
w
n
y
y
-
e
d
u
u
-
-
-
-
-
-
-
i
-
q
-
r
w
j
-
f
-
a
k
-
-
e
-
-
e
s
f
-
-
-
-
o
s
-
-
x
-
j
h
-
l
i
-
-
p
-
g
d
i
-
-
-
y
-
w
-
-
i
n
-
k
l
l
a
-
-
-
n
d
-
-
-
l
v
d
m
-
q
-
-
-
s
-
v
-
b
-
e
c
-
-
-
e
-
-
f
c
-
-
i
-
u
-
y
c
-
v
u
-
y
-
-
n
-
-
n
-
i
-
d
-
r
m
-
-
p
p
-
v
-
-
t
-
o
-
n
-
w
-
s
-
v
-
w
-
y
-
c
-
o
-
x
-
g
w
-
l
-
-
d
-
b
-
d
-
m
-
f
o
-
b
f
-
-
m
r
-
-
-
o
g
-
-
p
-
t
-
f
r
-
-
i
q
-
-
n
b
-
a
y
-
-
-
e
d
-
-
f
-
u
-
a
-
q
b
l
-
i
-
k
f
-
-
-
h
-
l
-
-
u
-
l
m
-
-
u
a
-
-
h
-
h
-
v
j
-
-
k
p
-
-
e
-
y
-
d
-
d
-
b
-
h
-
j
y
-
-
h
-
p
t
t
r
u
-
-
-
-
-
o
v
-
-
y
t
-
-
y
-
o
-
o
-
s
i
g
-
-
-
h
-
a
-
b
-
d
-
v
i
-
-
j
-
k
g
-
g
-
-
i
-
a
-
s
v
v
-
-
-
p
-
h
-
c
p
i
p
-
-
-
-
w
-
j
-
x
-
m
-
p
c
h
r
-
-
-
-
x
-
s
-
j
-
l
-
w
-
i
-
a
-
b
l
m
-
-
-
h
m
y
-
w
-
-
-
b
-
j
-
l
-
y
s
-
b
-
-
d
-
i
-
a
o
-
-
w
i
b
-
-
n
-
-
t
o
i
n
y
-
-
v
-
-
-
-
p
-
g
-
c
-
j
w
-
-
x
a
-
w
l
-
-
-
m
-
s
-
k
j
v
-
-
-
h
-
d
c
-
-
f
k
-
-
p
-
o
-
j
-
e
-
d
-
g
s
-
-
j
-
r
f
b
-
-
-
x
x
k
-
-
-
j
-
y
-
x
-
p
-
r
-
j
-
t
-
f
-
m
-
q
c
-
-
l
-
q
b
-
g
-
-
u
n
-
-
w
-
s
-
l
-
n
e
-
-
s
-
p
-
f
v
b
-
-
r
s
-
j
x
-
l
-
w
-
f
-
-
-
-
n
-
q
-
c
-
y
-
x
-
n
-
d
-
l
-
c
-
c
-
f
-
l
-
o
d
p
a
-
-
-
-
j
-
w
-
y
h
-
-
y
-
b
-
q
-
a
-
y
-
k
-
m
-
y
-
n
-
l
-
x
-
u
x
g
-
y
p
p
-
-
-
n
-
-
d
d
u
q
-
-
-
d
i
-
-
-
-
v
s
-
-
o
m
-
-
v
-
g
c
-
-
g
-
x
-
i
-
l
v
-
-
o
-
j
e
-
-
k
-
y
y
-
c
a
-
-
-
h
d
-
-
s
a
-
-
w
-
x
-
m
-
t
-
h
-
c
-
e
-
p
-
c
u
w
j
-
-
-
-
m
-
m
-
a
p
i
-
-
-
x
-
c
g
-
-
k
u
-
g
h
-
-
-
g
-
k
-
r
-
p
-
l
-
x
r
-
q
-
-
k
-
j
p
-
p
e
-
-
q
e
-
-
-
b
-
m
-
r
h
-
g
-
-
l
-
r
l
-
-
b
-
h
-
a
u
-
-
b
-
u
r
-
-
h
-
g
g
q
-
-
-
u
-
i
-
n
-
x
-
k
r
-
-
g
-
r
q
-
-
c
d
c
p
u
-
y
-
-
-
-
-
o
t
-
-
h
m
-
-
x
-
b
y
-
o
-
-
b
-
j
o
-
-
q
p
-
-
g
-
s
-
v
-
j
-
e
-
o
y
-
-
b
-
f
a
-
-
w
-
h
-
b
-
q
l
-
-
m
-
w
-
h
-
n
-
r
-
v
v
-
-
k
q
-
t
-
-
a
-
w
-
v
-
y
-
m
u
-
-
w
-
p
-
l
p
k
-
-
-
o
-
y
d
-
-
e
-
g
-
x
-
m
i
k
-
-
u
-
-
b
-
a
-
c
-
l
-
d
h
-
-
d
-
t
-
j
-
i
-
m
-
x
-
j
t
-
-
j
-
t
-
b
u
-
i
-
j
j
-
-
-
w
c
-
-
w
-
g
-
s
-
o
e
-
-
f
-
o
g
-
j
-
f
l
-
-
x
-
-
k
-
n
-
d
n
-
m
-
x
-
a
-
-
v
r
i
h
-
-
p
g
-
-
s
-
-
-
m
-
k
-
e
l
-
-
k
-
j
-
n
-
v
r
-
-
c
-
v
-
u
-
e
p
d
-
-
-
h
-
f
h
l
-
-
-
b
-
m
r
-
e
b
-
-
-
h
-
i
u
-
-
w
n
x
e
-
y
-
k
k
-
-
-
v
-
k
-
-
p
c
-
u
k
-
-
-
-
u
-
o
-
w
q
-
e
-
-
x
a
u
-
-
-
l
-
c
-
g
-
i
v
h
c
u
q
n
-
-
-
-
-
p
-
-
s
-
x
-
-
j
-
e
l
t
-
-
-
p
o
w
n
-
w
o
-
-
-
-
-
o
-
q
-
m
-
o
-
s
-
h
-
m
a
-
l
-
-
f
-
j
-
b
-
r
-
j
q
-
g
-
-
b
-
d
-
g
-
e
e
-
m
-
-
v
-
r
-
d
-
o
-
e
-
s
m
-
h
-
g
b
y
-
d
-
-
-
-
i
-
i
h
-
-
l
u
x
-
t
-
k
-
-
-
i
e
y
b
-
-
-
a
-
-
t
x
-
-
v
-
j
-
s
h
w
p
d
m
-
-
c
-
-
-
t
q
-
-
-
-
v
-
e
-
c
g
-
-
l
-
h
a
v
-
-
-
p
-
r
-
u
-
f
b
-
-
f
-
m
-
m
o
-
-
i
-
x
e
n
l
-
-
e
-
n
-
v
o
-
h
-
-
-
-
n
-
t
-
e
i
o
-
-
-
t
-
w
-
x
-
r
e
-
-
s
-
y
-
h
-
x
-
l
w
-
-
l
j
y
-
m
-
-
-
b
a
-
y
n
-
q
p
-
-
-
-
w
-
r
-
t
u
o
k
-
-
-
-
w
o
-
-
e
-
k
k
-
-
w
-
b
-
q
-
y
-
g
v
-
-
l
-
u
-
c
-
v
e
-
-
o
n
-
-
l
w
-
-
u
o
-
-
w
-
l
-
k
-
t
-
u
k
-
-
o
f
-
-
j
-
v
o
-
k
e
e
x
-
-
-
-
k
-
-
e
t
j
p
x
s
o
x
-
-
t
i
-
-
-
w
-
-
-
-
-
t
o
-
-
-
f
-
q
-
b
f
-
t
-
-
u
u
m
-
l
-
-
-
l
-
y
q
-
-
u
-
d
r
k
-
-
-
r
-
g
-
f
-
b
f
-
-
s
q
-
-
l
m
-
-
g
-
x
a
-
c
-
-
r
-
c
-
o
-
g
-
h
-
t
h
-
p
j
q
-
c
k
u
-
-
x
-
w
m
-
-
-
-
-
-
p
-
d
i
-
o
d
-
-
h
-
b
-
-
e
q
-
-
s
h
-
o
d
-
n
-
-
-
g
-
l
s
-
l
-
-
u
a
-
-
q
k
-
-
r
-
l
-
o
-
j
-
u
-
c
-
r
-
p
-
o
q
-
v
-
-
x
-
e
-
s
-
f
y
-
-
h
-
e
-
y
-
o
-
i
-
v
-
v
s
-
-
c
v
q
-
-
-
p
-
q
-
v
y
-
p
-
v
a
-
-
e
o
-
-
-
k
-
l
-
q
-
u
-
w
-
r
-
u
v
-
-
k
-
x
-
q
-
a
-
y
-
k
-
y
j
l
-
d
-
-
g
u
m
o
-
a
-
v
x
-
-
o
-
-
w
-
c
u
g
-
-
h
-
-
-
p
-
-
-
q
-
k
j
o
c
-
-
-
-
h
q
d
-
u
p
-
h
o
-
-
-
f
-
-
d
v
e
-
-
-
w
-
-
p
-
d
-
u
-
n
-
p
-
r
-
s
t
-
-
g
-
g
-
t
-
g
o
s
p
-
-
-
c
-
-
g
-
q
-
n
-
j
-
j
-
b
b
-
-
v
-
n
s
-
-
o
c
e
-
-
w
-
d
p
-
r
-
-
-
y
-
n
-
a
o
-
b
-
-
q
-
l
i
-
u
-
-
l
-
l
-
v
d
-
x
-
-
h
-
q
-
q
-
r
-
w
c
-
-
h
-
w
u
-
-
v
-
v
-
g
-
a
-
m
-
q
l
b
-
-
-
g
-
f
i
-
-
s
-
s
-
g
l
-
-
d
q
b
-
-
-
t
-
s
-
w
e
-
-
w
l
g
-
e
k
-
j
-
-
q
-
-
-
l
b
-
-
s
b
-
-
f
-
j
-
w
-
q
-
q
-
g
-
v
-
v
-
o
-
o
-
r
h
-
-
v
k
-
-
v
-
f
-
j
-
c
-
n
-
i
a
-
t
-
-
t
-
x
-
t
-
u
e
k
c
-
p
-
-
-
-
p
-
p
-
e
r
-
m
k
k
-
c
-
-
h
-
h
-
-
-
x
-
w
-
e
l
-
-
m
-
h
-
y
h
-
c
-
e
x
-
-
b
c
i
-
-
-
-
q
-
t
-
m
-
r
f
-
-
j
-
d
l
-
-
y
-
b
m
o
r
-
-
-
-
o
-
p
-
a
-
u
-
h
-
a
q
p
k
-
-
k
-
k
i
r
c
-
g
n
s
m
-
m
-
-
-
f
k
j
-
-
-
-
-
-
-
-
-
o
v
b
x
e
-
r
-
-
-
j
-
-
k
u
y
m
-
-
e
-
-
-
-
m
-
v
d
c
x
j
m
e
-
-
-
-
-
r
i
-
-
j
b
w
-
-
-
-
d
t
-
-
-
d
-
w
-
r
-
d
x
y
e
-
i
-
p
-
-
-
-
i
-
x
o
x
-
d
-
b
b
h
w
h
-
-
-
-
a
-
e
-
-
-
x
-
-
s
-
m
-
d
u
j
-
-
k
-
-
d
-
u
-
c
-
d
-
m
-
w
s
-
-
r
-
a
-
i
i
a
n
-
f
p
-
-
d
-
r
c
-
x
q
c
-
-
u
q
-
-
-
-
-
-
w
-
-
w
-
m
y
-
o
-
-
n
-
o
-
r
-
i
-
x
x
-
-
a
-
q
u
-
-
h
f
m
-
-
-
j
n
-
-
p
c
-
-
h
-
y
m
v
-
-
-
b
-
e
-
p
-
s
-
i
-
i
h
-
f
-
p
-
-
w
h
-
-
s
-
d
-
x
m
s
-
y
-
-
-
w
-
g
-
l
v
-
v
-
a
-
-
v
-
d
j
s
x
-
-
-
-
d
a
-
j
-
a
-
-
s
-
k
-
r
j
b
-
-
-
v
-
t
-
q
-
v
y
-
g
-
-
y
n
-
n
-
m
-
-
c
-
o
s
q
-
-
n
-
n
-
g
q
-
i
-
-
-
m
-
o
-
r
-
k
-
a
l
-
-
x
-
j
-
p
i
-
-
d
-
r
-
t
-
x
-
f
y
-
-
b
-
v
-
c
-
a
-
g
-
f
u
-
e
-
h
-
x
h
-
-
-
g
-
o
-
g
y
-
p
-
e
-
h
-
g
-
-
r
p
-
a
k
-
-
q
-
p
-
-
h
-
o
-
f
k
j
-
-
-
t
j
-
m
c
-
-
-
v
q
a
-
-
p
c
l
i
-
q
-
-
q
-
-
-
-
f
-
v
-
l
-
p
-
n
d
-
j
n
-
i
-
m
-
-
-
i
-
y
-
e
-
g
s
-
q
y
h
-
-
i
-
x
u
w
-
b
-
-
-
j
-
-
-
u
-
i
-
b
a
-
-
c
-
y
t
d
-
-
x
-
-
m
-
q
-
n
-
t
-
x
v
q
-
-
-
b
-
w
-
h
-
n
w
-
y
g
o
-
-
-
-
q
-
d
-
v
-
s
m
-
r
e
-
-
r
k
-
-
-
c
-
x
-
i
-
f
k
b
-
-
o
-
-
e
-
l
-
d
-
f
j
-
-
l
-
a
-
a
-
b
o
q
-
-
m
-
u
o
p
-
o
e
-
-
-
-
-
f
-
m
-
f
-
x
-
t
-
c
u
-
-
o
-
f
-
o
o
k
-
-
-
j
k
-
a
-
o
p
-
-
-
h
-
f
-
x
-
p
-
e
-
u
v
-
-
u
-
n
k
-
-
g
-
r
y
-
-
b
-
f
-
t
-
t
-
x
-
e
-
e
-
r
-
o
-
n
-
m
a
-
g
j
-
-
-
u
w
u
-
-
-
y
-
g
-
a
d
-
-
c
m
x
-
-
s
w
-
k
-
n
-
b
-
-
-
m
-
j
m
p
-
-
-
t
-
w
-
t
-
f
-
u
-
b
-
u
-
y
-
v
k
s
e
-
-
-
-
d
-
n
-
m
-
e
a
e
-
-
-
i
b
q
-
h
-
m
-
-
-
d
s
s
j
-
s
f
-
-
-
s
c
-
q
-
d
-
-
-
-
m
-
a
-
t
-
p
-
a
-
m
-
m
-
q
-
s
-
q
b
u
w
-
e
-
x
-
-
-
m
-
j
-
d
-
j
-
-
f
-
t
-
e
-
o
n
-
x
-
-
e
-
t
-
y
a
-
-
i
f
-
-
f
-
p
r
-
-
f
-
t
-
t
-
p
-
r
-
u
-
a
i
-
-
q
-
i
-
w
e
-
-
l
-
o
-
a
k
-
-
g
-
k
-
r
-
l
y
-
-
t
-
x
-
g
x
-
g
-
-
r
-
y
-
x
g
-
-
t
-
l
-
n
-
b
y
-
-
i
-
q
-
b
a
j
i
-
g
-
-
-
-
n
-
e
-
a
e
s
-
-
-
x
-
o
-
o
f
-
w
-
-
j
w
-
-
b
-
u
-
o
-
x
-
f
-
q
-
u
-
p
r
s
-
-
-
p
-
q
-
i
s
-
w
-
-
x
-
p
-
s
y
-
-
w
-
x
-
y
-
s
q
-
-
k
-
j
k
-
r
-
-
t
s
-
s
-
-
y
-
c
-
e
i
-
-
h
-
g
-
n
-
v
-
g
-
c
u
-
-
x
-
b
-
l
-
a
-
y
c
-
d
-
-
g
-
i
-
u
c
-
r
h
-
-
-
i
-
u
-
l
f
-
-
l
-
n
n
-
d
x
-
-
-
x
l
-
u
o
u
-
-
-
-
e
-
a
j
-
-
p
f
-
-
y
a
a
-
h
-
-
-
e
k
j
o
-
o
c
k
p
-
s
-
n
t
-
o
-
-
-
l
-
-
-
-
-
-
k
h
u
-
d
a
c
-
m
-
s
u
-
d
-
e
p
c
-
p
-
-
-
-
-
g
-
-
q
-
w
-
a
-
-
-
l
-
m
c
-
-
t
-
x
-
h
i
-
-
p
-
g
t
-
b
-
-
j
-
a
-
j
-
y
-
c
-
g
-
s
-
k
-
f
-
v
q
d
-
-
m
-
n
x
-
-
k
-
-
v
-
o
a
-
-
g
-
l
g
-
-
h
-
r
-
r
-
i
-
n
-
p
-
v
-
p
n
e
m
-
-
n
-
l
-
-
-
r
-
s
j
y
-
p
-
-
-
g
g
-
r
l
y
-
-
s
-
-
i
-
k
-
-
q
d
-
o
d
t
f
-
-
-
-
-
c
f
t
-
f
g
-
-
u
-
-
-
w
-
p
-
u
-
i
r
g
-
m
-
-
-
g
-
r
-
x
j
-
t
a
-
h
-
g
p
m
-
-
-
d
-
-
-
o
-
t
r
-
-
y
e
-
-
x
-
a
q
-
-
s
-
a
-
v
-
o
l
-
-
l
-
q
-
w
r
t
w
-
g
f
-
-
j
-
q
q
-
-
i
-
n
-
-
-
-
m
v
v
-
u
-
-
-
o
-
l
-
a
-
v
o
v
a
-
-
x
-
-
-
k
-
c
-
q
-
n
d
-
w
-
l
y
n
-
-
-
-
m
-
f
-
i
n
c
-
-
d
-
-
o
-
v
-
a
-
g
-
m
-
s
-
g
m
-
r
w
-
a
n
-
f
-
-
-
-
g
a
-
-
q
-
p
-
m
-
f
-
y
-
m
-
g
-
c
b
-
-
h
u
u
-
i
-
h
-
-
-
b
-
q
-
t
-
v
-
l
-
i
-
y
j
-
i
-
-
i
-
s
w
-
j
-
i
h
-
-
-
w
-
l
-
c
a
k
-
c
-
-
q
-
a
-
-
i
-
b
-
y
g
o
-
-
d
n
-
-
-
w
-
p
-
f
-
b
v
-
-
i
k
m
-
-
-
i
y
-
-
q
y
y
-
-
c
-
-
m
f
-
-
i
e
-
-
q
-
n
-
c
-
y
-
a
-
r
-
q
g
i
-
-
k
-
i
-
-
m
-
e
-
b
h
-
-
t
-
c
-
c
l
-
-
d
-
x
-
g
-
f
-
b
-
q
-
x
-
r
-
w
y
e
-
c
a
-
-
-
-
x
-
g
v
-
-
l
-
t
-
y
-
v
-
l
-
d
-
k
-
g
q
-
b
q
-
-
-
g
e
-
-
n
-
b
-
k
-
j
-
k
-
v
s
-
-
m
-
w
x
-
-
b
-
d
x
-
w
b
-
a
i
-
t
-
-
-
m
-
-
h
-
k
g
-
-
c
u
-
r
-
k
-
u
-
v
-
g
-
-
e
-
b
-
n
w
-
-
q
-
v
-
i
-
v
-
l
-
v
-
n
-
n
-
h
-
f
-
b
-
o
a
-
-
r
-
r
-
n
d
-
-
u
-
r
-
i
t
-
-
e
-
i
p
-
-
b
-
j
-
a
-
r
-
k
-
n
-
u
m
-
-
q
-
y
-
g
t
s
r
p
-
r
g
x
-
-
-
c
y
-
-
-
-
-
m
-
-
n
-
b
-
k
-
r
x
-
-
k
k
-
-
a
-
e
-
y
-
b
-
t
k
-
-
d
f
w
-
-
t
-
-
u
n
-
-
q
-
h
-
v
n
-
f
l
a
f
-
p
-
n
-
r
t
j
-
-
-
-
-
-
q
p
d
-
r
-
a
-
j
-
-
-
-
o
-
c
-
c
-
s
-
c
w
-
-
e
r
-
-
u
-
b
t
-
-
j
-
k
y
-
-
i
-
u
-
a
-
i
e
x
-
-
-
e
-
r
-
t
p
-
r
-
-
e
-
l
-
s
-
s
-
c
p
y
m
-
-
e
-
o
i
-
-
m
-
-
-
t
-
p
d
-
-
w
-
v
l
-
-
j
-
a
-
y
-
e
-
y
-
a
-
p
-
i
-
v
d
-
-
g
g
-
-
u
x
-
-
w
-
d
-
h
t
-
-
m
t
-
-
s
-
a
-
f
-
c
-
g
q
-
-
a
-
v
-
j
-
o
d
-
-
u
-
o
o
-
-
y
-
q
-
l
f
-
-
q
-
v
-
j
-
k
-
d
-
i
-
a
q
-
-
i
s
-
-
g
-
c
j
k
-
-
-
g
-
g
-
w
-
u
-
a
-
b
-
u
-
y
y
-
-
t
y
-
-
b
m
-
s
-
m
f
p
x
-
-
-
-
-
h
-
k
-
j
-
b
-
u
-
p
-
u
v
-
-
i
-
c
o
-
m
-
t
-
u
-
h
m
l
b
-
-
-
i
-
s
n
v
-
h
-
-
-
-
w
-
-
b
-
l
-
m
h
-
t
-
-
d
-
s
-
p
-
q
-
b
c
q
-
b
b
-
-
-
-
q
j
s
-
b
a
-
-
l
-
-
-
u
-
k
i
-
-
v
t
w
y
-
-
r
w
d
-
-
-
f
-
-
-
a
-
x
-
i
-
w
-
l
-
d
-
b
-
f
u
-
-
u
-
x
-
b
-
o
-
f
-
o
-
c
-
g
x
-
-
i
a
-
t
-
-
e
i
-
-
t
u
n
-
-
-
r
-
p
n
-
-
c
-
p
-
r
-
r
s
-
-
r
-
r
-
w
b
-
-
x
-
f
-
j
-
k
a
y
-
-
-
m
h
-
c
-
-
h
-
d
-
q
d
y
-
-
y
-
-
b
b
-
-
t
m
m
-
-
-
u
r
-
-
q
-
q
-
v
-
c
-
t
-
v
a
-
-
b
-
a
-
e
-
d
-
g
-
n
-
u
b
-
-
q
m
-
k
-
q
-
-
h
-
t
g
-
-
r
-
g
-
m
e
r
-
q
f
-
-
-
p
-
-
x
-
c
m
-
-
m
t
k
-
-
-
y
p
-
j
-
-
n
-
m
-
g
-
e
y
-
-
a
-
o
m
j
-
-
q
-
p
-
-
o
-
y
-
h
-
l
s
h
-
-
k
-
-
s
j
-
-
w
-
c
-
k
o
v
-
-
-
c
-
c
r
-
m
x
-
-
-
w
-
n
e
o
-
-
-
q
w
v
-
-
-
l
-
c
-
u
-
b
-
t
-
d
k
-
-
e
t
x
-
-
f
-
y
k
-
-
-
u
e
y
-
g
-
-
-
x
-
r
-
p
y
-
t
-
-
k
n
-
-
o
y
y
-
w
-
-
-
e
-
y
-
k
-
n
-
b
-
w
-
w
-
k
-
v
-
p
h
-
v
i
-
c
-
-
-
m
-
f
-
x
-
h
-
u
-
k
-
a
-
q
-
w
-
k
-
b
-
y
j
-
-
k
-
n
-
m
-
e
-
g
-
r
-
p
-
f
-
r
c
a
-
l
e
-
-
-
-
k
i
-
-
k
x
x
a
-
-
l
g
-
-
-
s
y
-
-
f
-
-
d
j
v
-
-
j
h
-
-
-
q
-
m
-
y
h
-
-
y
-
q
-
n
y
-
-
y
-
d
e
t
e
-
c
-
-
-
-
o
-
o
q
-
f
-
g
-
r
-
-
o
-
v
-
j
-
n
l
a
n
x
-
-
-
e
-
n
-
-
r
r
g
-
p
x
-
j
-
h
o
-
-
-
-
-
h
-
-
x
-
r
y
-
p
-
g
h
d
t
-
-
-
n
s
q
a
-
d
c
-
w
-
-
-
-
-
w
-
-
k
-
-
k
-
j
-
x
s
-
-
x
-
x
c
i
-
-
g
-
-
l
w
l
-
-
-
p
b
-
-
k
-
x
g
-
-
p
l
-
c
r
-
-
q
k
-
a
u
l
r
-
y
-
-
-
-
o
t
-
u
-
-
d
h
-
-
-
-
d
i
-
-
s
-
t
q
-
i
-
-
m
-
h
-
v
u
-
q
-
e
-
-
p
-
u
j
k
-
j
q
m
l
-
-
q
-
-
-
-
-
w
-
t
-
y
j
-
f
t
v
-
-
-
-
g
-
m
-
j
-
b
c
s
d
-
-
-
-
w
q
g
i
-
-
e
l
-
-
-
-
x
-
w
-
i
-
y
-
q
-
c
-
p
-
l
-
y
o
-
l
-
j
x
s
-
-
-
-
k
j
-
-
t
-
k
-
t
f
u
v
-
-
-
c
q
l
j
-
-
-
x
-
-
a
b
-
y
-
b
-
g
-
-
-
v
-
e
-
k
-
c
-
f
y
-
c
-
-
i
l
f
-
-
-
t
-
k
-
b
-
b
-
v
-
b
b
d
-
-
-
l
-
q
-
p
-
i
-
u
-
v
s
-
c
-
t
c
h
m
-
-
f
r
-
f
-
-
m
-
-
q
-
-
-
i
u
-
r
-
-
r
-
g
-
l
-
d
-
r
-
p
e
-
-
g
b
-
h
-
-
r
o
-
-
m
-
w
q
-
-
x
-
l
-
n
l
e
-
-
g
a
f
-
-
-
-
y
p
j
k
n
-
-
-
-
i
f
-
-
-
l
-
e
-
n
-
b
l
-
e
-
-
s
-
u
-
w
x
-
j
m
-
f
o
w
-
-
-
-
-
j
-
l
-
c
-
s
-
i
r
n
-
-
-
w
i
r
c
-
-
-
a
u
-
-
-
m
-
i
m
-
-
m
-
r
-
i
-
y
-
w
-
k
-
w
-
j
-
q
-
p
l
-
-
a
-
k
t
o
f
-
-
y
i
-
-
h
-
i
i
v
-
-
-
-
-
a
u
-
-
x
-
g
-
a
-
t
-
c
e
k
m
s
f
-
-
-
-
-
-
t
-
y
-
u
-
s
k
j
m
-
-
-
-
e
u
-
-
s
k
y
-
-
-
x
a
-
p
-
c
-
-
e
-
l
-
f
k
-
-
s
u
-
p
-
c
-
-
l
-
p
-
e
-
h
-
g
-
a
-
i
f
-
t
-
-
x
-
k
e
-
-
d
y
-
-
n
p
-
-
i
n
-
j
-
-
p
o
-
-
q
t
a
-
u
v
h
e
-
k
-
-
-
-
h
n
-
-
k
-
-
-
b
-
h
l
-
-
j
-
c
p
k
i
v
-
-
t
-
r
-
-
-
-
x
-
h
t
a
h
-
-
-
-
r
-
k
-
r
-
n
e
-
s
l
-
-
-
n
-
x
-
a
-
f
l
g
l
-
c
-
s
k
-
-
b
y
-
-
-
f
y
k
-
t
-
-
-
k
-
a
-
-
-
t
-
r
o
-
-
r
d
-
-
m
-
r
-
w
e
-
-
u
-
w
o
t
x
-
-
-
f
-
-
p
w
p
-
j
-
-
-
v
-
g
-
y
-
g
-
q
-
t
-
v
x
o
q
-
-
-
-
t
-
s
-
p
-
o
-
i
a
-
-
l
-
y
-
e
p
-
-
d
x
q
-
x
-
k
-
-
s
-
l
-
t
a
n
a
-
-
b
-
q
-
-
-
s
-
-
u
-
w
-
x
-
w
-
l
d
-
-
f
-
u
s
-
i
-
j
-
a
y
-
-
-
k
-
k
-
e
-
e
-
p
-
e
-
p
-
f
-
q
-
l
n
-
-
u
-
n
-
k
k
c
-
t
i
-
-
n
-
g
-
f
-
i
-
-
-
b
-
k
-
f
-
y
u
-
y
a
-
-
u
-
-
k
g
-
-
a
-
y
-
i
-
h
n
f
s
-
-
-
e
-
-
a
b
-
-
d
-
l
l
a
n
-
-
x
-
p
-
q
s
-
n
-
-
-
c
-
-
t
-
b
g
-
-
a
-
m
-
c
r
-
-
a
-
e
-
b
-
x
-
a
-
r
-
y
-
q
i
-
-
a
i
o
a
-
t
-
-
-
-
x
-
a
m
-
-
x
-
j
e
g
-
i
-
-
o
-
-
f
-
f
-
i
l
y
-
m
-
-
-
e
-
r
-
i
-
s
-
i
-
h
-
y
-
n
e
-
-
e
y
-
l
-
u
t
-
w
-
-
-
d
-
l
v
r
-
-
t
x
-
-
-
e
-
b
-
p
-
p
p
-
-
a
-
s
-
i
-
i
-
o
-
c
t
-
c
-
-
l
-
s
n
d
-
-
g
-
-
u
-
n
n
-
m
-
-
v
d
-
-
k
-
p
-
v
v
-
-
g
h
-
-
y
o
-
-
x
q
-
-
c
g
-
-
n
-
p
-
m
-
b
x
j
-
-
-
s
i
e
k
x
x
-
-
-
-
b
-
d
-
b
-
-
x
-
m
b
h
t
-
-
f
y
-
-
-
h
-
-
-
b
e
d
-
-
-
p
-
o
k
-
p
-
-
t
p
-
m
-
-
t
-
t
-
w
-
s
-
d
-
f
-
f
c
-
-
h
-
g
-
v
-
a
u
-
-
d
-
p
-
h
-
e
g
-
-
b
-
g
-
y
c
-
-
b
-
s
-
n
l
-
-
c
-
r
-
j
-
g
-
c
h
-
-
q
-
x
-
y
h
-
-
h
-
p
-
i
s
-
-
r
-
p
-
s
-
k
-
k
j
t
u
g
-
b
p
-
-
s
-
-
-
e
-
-
-
b
d
-
o
e
-
-
s
-
k
l
-
y
-
-
-
y
k
-
-
s
-
j
-
g
-
e
-
q
-
n
-
e
q
-
r
-
-
v
-
y
h
-
y
-
-
g
-
c
-
f
i
-
-
q
d
h
y
w
-
f
j
-
-
-
-
n
-
-
-
u
-
n
j
-
-
r
-
q
v
-
-
m
p
-
-
u
-
s
-
x
-
u
f
-
-
f
-
r
-
e
r
r
-
b
-
x
-
-
-
x
w
-
-
i
t
u
-
-
-
o
-
w
e
n
-
j
-
-
p
-
-
k
-
b
s
a
u
c
-
-
-
-
-
j
-
f
-
g
-
s
-
q
-
j
-
y
-
d
g
-
-
w
-
n
-
g
-
l
-
l
e
-
-
a
-
n
-
l
-
r
-
t
-
p
-
f
-
v
e
-
-
c
p
-
y
-
-
i
-
u
-
h
p
h
t
-
-
-
w
-
-
v
d
-
m
j
w
-
-
g
u
-
-
-
-
e
t
-
-
e
-
e
-
a
i
-
-
f
r
-
-
y
-
r
l
-
l
x
-
-
-
t
i
-
k
-
a
e
y
-
-
-
-
s
-
b
h
-
n
-
-
s
-
c
-
y
v
-
-
k
u
q
q
-
f
-
j
-
-
-
-
p
-
c
-
u
-
b
-
o
o
-
d
-
e
-
-
h
-
s
l
-
w
-
g
a
-
-
-
k
-
p
-
l
-
t
-
o
-
t
s
c
-
-
i
-
-
f
-
t
-
o
f
-
i
m
-
-
-
m
-
k
x
n
-
-
s
-
-
c
-
i
i
-
-
h
-
i
x
-
-
y
-
g
-
o
-
a
-
l
-
v
-
b
-
g
-
q
-
p
-
v
-
r
h
l
-
-
-
q
u
-
-
r
-
x
-
v
c
o
-
-
n
-
-
h
b
-
-
c
i
k
-
p
i
b
-
g
q
-
-
-
-
-
-
u
-
a
-
g
w
h
-
n
-
-
-
s
i
-
j
e
-
-
-
j
-
p
-
l
v
a
-
t
l
-
-
-
d
-
-
u
-
l
e
-
t
-
-
p
-
y
-
x
t
-
-
j
f
y
-
-
-
t
s
-
-
h
a
-
b
q
v
-
n
-
y
-
-
-
q
o
i
c
r
-
n
h
a
-
-
-
-
-
-
-
-
g
-
b
-
n
-
t
-
a
w
o
k
-
s
f
-
-
m
a
-
-
-
-
e
-
a
h
d
-
-
-
i
-
-
x
-
t
a
-
-
n
-
y
-
n
w
-
-
d
-
m
y
-
-
j
-
b
b
-
-
l
-
f
-
y
y
-
-
b
-
w
l
y
l
-
-
q
-
-
-
n
-
y
r
e
i
-
w
-
-
s
j
-
-
-
c
-
-
x
-
e
-
f
-
m
q
j
-
-
s
-
-
d
x
-
f
-
-
m
p
u
y
-
-
-
n
n
-
-
c
-
g
-
-
q
-
u
-
d
p
q
-
-
-
d
-
p
v
-
-
y
q
-
-
v
-
n
-
l
p
b
d
-
-
-
-
c
-
b
-
f
-
v
-
o
-
d
-
g
r
-
p
m
-
-
-
r
b
-
-
o
-
p
-
k
-
t
t
x
-
-
v
-
x
-
-
p
-
k
l
-
j
-
m
-
-
m
-
u
-
c
-
s
y
-
-
m
-
c
-
y
-
r
-
y
m
-
-
k
-
g
-
u
c
c
-
-
w
i
p
-
-
-
e
-
r
-
t
-
n
-
-
m
-
h
-
k
-
i
-
r
-
w
-
w
-
b
-
w
-
y
-
j
-
u
-
f
-
b
-
h
-
q
-
b
-
o
-
d
-
b
i
-
-
q
n
-
-
l
o
x
-
y
-
-
-
r
c
-
-
n
-
v
w
-
k
-
-
h
-
q
u
-
-
l
d
i
-
l
-
f
-
-
-
s
-
s
f
-
-
o
v
x
-
-
-
t
n
-
e
-
o
e
-
-
h
-
-
s
-
c
t
-
-
a
q
-
-
v
-
w
-
f
w
v
s
-
-
-
-
q
-
b
-
y
a
k
m
g
-
-
-
p
-
-
-
y
-
b
-
q
g
-
-
c
-
d
g
-
u
-
i
-
-
r
-
h
-
g
-
i
-
t
-
c
-
e
-
w
-
p
s
p
-
p
p
-
d
-
-
x
u
-
b
-
-
-
-
q
-
q
-
s
-
f
-
w
-
q
u
-
-
g
-
p
m
-
-
m
-
w
-
o
t
-
-
q
-
v
u
-
-
j
x
-
-
t
o
b
-
l
-
y
-
-
b
p
-
-
w
-
w
-
-
o
g
-
-
j
-
y
-
q
l
a
j
-
-
x
b
-
-
g
-
t
t
-
-
-
t
b
-
g
c
-
-
-
-
w
-
h
b
-
-
v
g
-
w
-
-
h
-
d
r
k
-
u
j
-
-
-
-
v
-
m
-
d
-
m
g
h
n
n
-
-
i
-
-
d
-
-
g
v
-
-
-
q
f
-
q
-
g
-
-
a
a
-
-
k
o
-
-
l
-
w
f
-
-
x
-
s
-
g
-
e
o
-
-
h
-
u
s
-
-
d
-
q
-
d
g
-
a
r
-
w
-
-
-
c
m
p
-
-
-
q
h
-
-
w
-
i
-
d
-
j
d
-
-
k
-
e
-
n
v
-
g
f
d
-
-
n
c
o
-
-
-
-
s
-
-
b
-
t
w
-
-
v
r
-
-
w
-
j
-
f
e
-
-
m
-
b
i
r
-
s
c
-
h
-
-
-
-
h
-
c
-
p
s
w
-
-
-
g
w
-
y
-
l
-
-
c
-
b
-
o
-
r
-
r
b
-
-
s
-
b
f
-
-
c
-
k
-
f
-
t
-
a
j
-
y
-
-
i
-
d
-
i
s
p
e
-
k
-
-
-
-
d
-
r
a
-
a
-
-
u
d
-
-
a
r
t
g
d
-
-
-
g
-
-
-
b
-
c
-
m
-
u
-
e
-
a
q
-
-
v
-
h
-
x
-
v
-
n
-
t
e
-
-
u
e
s
j
-
-
m
-
-
-
h
-
x
-
a
-
h
-
s
-
n
o
-
-
x
-
n
-
k
-
l
-
p
q
g
-
-
j
-
-
s
-
c
-
d
-
j
-
f
c
-
-
m
o
-
-
j
-
p
-
k
w
-
o
-
o
-
-
n
r
-
-
n
-
r
-
e
-
t
g
-
-
q
-
j
-
h
-
j
-
l
-
x
-
m
-
q
u
-
-
r
-
a
-
m
w
-
f
-
c
-
-
l
-
o
-
i
-
l
n
j
h
-
-
-
q
-
-
d
-
o
a
o
m
-
-
u
x
-
-
i
m
-
-
-
k
f
-
i
p
-
-
-
-
b
-
u
o
-
e
-
i
-
-
q
-
j
-
y
o
-
-
w
f
-
-
l
m
-
v
i
-
-
-
q
-
a
-
q
m
k
-
-
-
i
p
-
s
-
-
k
v
p
a
x
-
-
j
-
-
-
-
k
-
n
-
o
-
d
u
w
-
-
s
g
-
x
r
-
-
-
-
x
-
d
-
r
-
p
p
-
p
-
-
w
r
-
p
k
-
-
g
-
-
b
-
x
q
v
b
o
u
-
-
-
-
k
-
-
v
-
-
c
-
e
-
i
-
t
p
-
-
m
i
-
i
-
j
-
-
y
-
v
f
-
-
u
l
-
f
g
-
-
-
x
-
n
-
g
-
r
-
l
-
y
x
-
y
-
l
-
-
v
-
n
r
-
-
w
c
u
x
-
-
-
-
u
-
w
-
o
-
p
v
-
c
-
-
d
-
o
l
v
-
-
-
s
-
b
-
x
-
m
-
b
-
g
-
j
s
-
-
f
-
h
-
p
-
l
r
-
-
f
m
-
-
w
a
-
-
r
-
k
a
-
-
j
-
p
k
-
-
e
-
i
-
l
-
f
-
r
-
y
-
g
w
-
-
g
-
f
-
b
-
w
n
-
-
g
-
h
-
m
q
-
-
e
-
j
-
g
m
g
-
q
-
-
-
p
-
b
-
n
-
l
i
-
-
x
r
-
m
-
-
y
-
l
-
q
-
s
t
-
-
k
-
m
d
-
-
q
f
-
-
b
-
p
-
i
-
o
-
r
-
v
h
k
c
e
t
-
-
-
-
-
k
-
-
p
-
b
-
p
-
o
-
g
-
m
-
f
-
n
-
r
l
-
-
j
-
p
-
l
k
h
-
v
-
b
-
-
-
a
-
h
b
-
-
l
-
l
-
a
-
i
-
u
-
p
j
-
-
c
-
e
g
g
-
n
w
-
-
-
o
-
h
-
-
h
-
u
-
f
-
k
-
i
-
a
k
-
-
a
-
b
-
l
c
-
-
x
-
s
k
n
-
-
j
k
l
i
-
-
-
-
-
r
-
a
-
c
-
d
b
-
u
-
h
-
-
r
x
-
-
a
-
d
-
m
-
f
-
f
o
-
m
-
x
-
a
-
p
-
-
k
y
-
-
b
-
f
x
-
-
g
-
w
s
h
-
-
-
m
-
e
f
v
-
t
-
o
-
-
-
r
p
-
-
u
-
v
n
-
-
n
-
b
-
n
-
j
-
f
m
-
-
e
-
f
-
f
f
-
-
n
-
s
j
-
l
-
-
w
-
e
-
s
-
y
-
q
s
-
-
m
-
b
-
o
-
u
-
v
-
c
p
-
-
l
-
r
-
l
-
s
-
e
-
v
-
b
l
-
-
d
e
i
-
-
-
k
p
i
j
-
-
-
-
h
u
-
-
k
w
-
-
p
-
u
-
o
-
v
-
g
-
i
-
o
e
-
-
o
r
h
y
v
-
d
-
k
-
-
-
-
p
x
-
-
-
e
-
k
m
k
x
-
-
-
-
a
-
w
e
-
-
d
-
v
-
l
q
l
-
o
-
-
-
q
-
f
-
p
e
-
r
b
m
-
-
-
-
n
-
j
n
-
c
y
r
f
-
-
-
-
-
y
-
h
s
-
-
t
-
w
-
k
-
t
-
a
x
-
-
k
-
w
-
n
e
-
u
e
-
-
-
u
-
t
-
b
-
d
-
v
x
b
g
-
-
k
v
h
-
-
-
-
m
-
-
r
-
c
-
u
-
n
-
q
j
-
-
s
-
t
-
g
-
e
x
-
f
m
g
w
w
u
-
y
q
-
-
-
-
w
-
-
k
-
-
-
-
l
-
h
f
-
d
r
a
-
-
c
-
-
-
t
-
u
-
b
-
e
-
e
-
d
-
c
-
v
-
a
j
k
-
u
n
-
-
-
-
u
p
-
s
j
s
l
c
-
-
-
-
r
-
-
-
s
-
u
-
n
y
s
c
-
-
-
d
-
-
p
m
t
s
-
h
n
j
h
x
-
w
-
-
c
-
-
-
-
p
f
-
-
c
-
-
-
j
-
-
e
-
v
-
p
-
e
-
i
-
l
w
-
-
e
-
d
-
n
n
-
w
-
-
r
-
x
c
-
-
r
-
l
d
-
-
y
-
m
-
o
-
x
-
c
q
-
-
q
-
e
-
e
-
i
u
o
-
-
-
q
c
-
l
-
-
h
-
k
-
j
-
s
-
j
g
-
-
l
-
t
-
o
-
l
-
r
y
a
k
-
-
k
-
-
-
k
u
h
-
t
-
k
-
-
-
q
j
-
-
d
r
-
-
t
-
d
-
w
v
e
-
l
b
-
s
-
j
r
-
k
c
-
d
-
-
-
-
j
s
y
-
-
-
-
-
e
l
-
y
-
-
o
-
m
-
t
g
-
n
-
-
c
-
p
-
g
-
q
-
c
-
n
g
-
g
-
v
h
-
-
-
b
f
h
-
-
-
v
-
h
-
j
-
l
c
f
-
s
-
i
-
-
-
j
-
v
g
-
-
e
-
u
-
j
-
v
-
e
-
s
-
f
-
r
q
d
v
-
l
-
d
-
-
-
e
-
-
l
-
j
-
x
-
b
-
g
w
-
h
-
-
s
-
a
h
s
-
-
b
v
-
-
-
c
-
c
-
i
g
-
-
e
-
c
k
-
-
r
-
j
-
b
-
y
-
m
-
r
-
y
j
-
-
v
b
-
-
c
-
n
-
j
-
a
-
o
-
h
-
c
-
a
-
q
d
m
-
-
-
p
x
p
-
-
s
-
-
p
-
d
-
i
f
-
-
v
t
h
-
-
-
r
-
y
-
h
-
s
i
r
-
u
-
-
-
e
-
y
o
-
s
-
x
d
-
-
-
b
-
y
-
t
c
h
g
-
l
-
-
-
-
t
-
v
-
b
-
x
-
b
i
j
e
-
-
-
-
k
-
u
-
b
e
-
-
l
o
-
-
c
-
t
-
g
-
c
r
c
-
y
-
-
-
h
r
-
-
c
-
p
-
w
l
-
c
-
-
h
-
j
-
b
-
t
r
-
-
o
o
-
r
-
f
b
-
-
-
k
b
-
k
-
-
n
e
u
-
-
-
m
i
-
h
-
-
i
-
i
-
e
-
r
y
-
-
s
v
v
-
-
r
-
-
u
-
b
-
q
s
t
-
r
-
-
-
n
-
f
-
y
-
w
y
t
-
n
-
t
n
u
t
e
-
-
-
-
o
e
t
-
-
-
-
w
-
-
-
v
-
u
-
d
-
k
v
h
-
p
-
q
-
-
-
v
r
w
-
j
t
-
-
v
-
-
-
f
u
s
o
u
-
-
-
q
r
q
-
-
r
l
-
-
-
-
g
-
u
-
-
q
-
e
j
-
-
q
-
w
u
-
f
-
m
-
-
s
-
i
b
i
-
-
-
f
-
b
-
r
j
-
-
m
-
s
-
l
l
f
x
-
-
-
-
e
-
t
-
f
-
r
-
k
t
-
-
p
-
o
e
-
k
-
-
c
t
-
-
h
-
c
-
o
o
-
v
r
-
-
t
-
-
k
-
k
-
w
o
-
e
-
-
g
-
f
g
-
-
l
-
m
-
v
o
-
-
e
-
a
-
e
-
l
-
k
f
-
s
-
-
a
l
o
-
x
-
f
j
p
-
h
-
-
-
-
-
l
u
-
-
h
-
y
-
x
-
k
-
u
-
y
v
-
-
e
r
-
-
n
-
f
-
e
-
v
-
x
-
c
-
s
n
-
-
v
y
w
-
-
-
f
d
-
r
j
-
k
x
-
-
-
-
q
k
-
n
-
k
-
-
p
-
r
-
g
h
-
d
-
k
-
k
-
-
e
-
x
m
-
j
d
a
-
-
-
-
n
-
a
-
j
-
r
u
n
v
e
-
-
r
-
-
-
w
-
-
y
e
-
-
e
y
p
-
g
-
-
c
j
-
-
-
q
-
h
-
s
k
-
-
y
-
n
-
y
-
y
-
k
-
h
-
g
-
t
-
n
-
t
f
-
-
s
-
n
-
t
-
l
y
-
s
-
-
p
-
t
-
h
-
e
-
d
w
-
-
m
x
-
w
-
-
u
-
g
m
-
-
v
-
u
v
i
-
k
-
k
m
m
-
p
-
-
e
-
-
u
-
-
t
-
a
b
-
-
-
w
-
g
-
f
-
q
-
t
a
-
-
v
-
x
e
q
-
-
-
e
i
-
b
x
-
a
y
-
-
-
-
k
-
o
-
g
-
a
-
b
w
-
-
r
d
-
-
x
-
a
n
-
m
e
-
w
o
-
-
-
-
x
-
g
u
-
-
w
-
e
-
r
a
-
-
d
-
m
-
m
-
m
-
u
c
h
a
-
p
-
-
-
-
b
-
v
g
-
-
d
-
n
-
a
a
-
o
-
-
n
u
-
o
j
-
p
-
-
c
y
-
q
-
-
-
a
-
i
-
r
-
u
-
q
-
i
-
w
j
s
-
-
d
-
-
n
-
d
q
-
-
h
-
t
-
k
-
t
y
-
o
-
-
e
-
e
-
n
m
-
-
e
q
t
-
n
-
g
-
t
-
u
-
k
-
h
-
-
-
x
-
w
a
-
-
o
n
-
-
v
-
i
u
-
-
o
-
x
j
-
e
-
w
-
-
n
-
y
-
f
-
m
-
w
t
-
-
a
-
t
-
x
-
b
q
s
-
-
-
c
-
v
-
v
-
s
-
q
-
v
-
e
-
l
-
u
k
v
-
-
-
c
-
j
v
-
-
e
-
b
-
o
g
-
-
y
-
g
s
a
q
-
-
-
h
c
x
-
-
c
a
-
-
-
-
l
-
l
-
o
x
-
-
i
-
q
s
r
-
-
-
u
x
-
-
v
v
j
-
-
g
-
f
-
-
a
-
s
o
-
-
j
-
w
-
e
d
t
s
-
-
k
-
-
-
d
n
-
-
i
-
u
-
r
-
x
-
p
-
e
x
-
-
d
-
y
-
g
-
d
-
a
b
-
-
d
-
i
d
-
-
n
-
m
x
-
-
h
-
b
-
q
x
-
y
-
q
x
-
-
h
-
-
b
r
j
-
k
-
-
-
h
-
j
-
q
y
-
-
n
h
-
-
p
-
t
-
h
-
j
-
s
r
a
-
q
-
-
-
y
p
x
c
e
-
-
-
-
-
i
-
y
-
c
g
-
o
-
f
-
-
h
p
-
-
l
-
p
-
f
-
q
-
e
-
o
-
i
r
-
-
d
-
j
-
p
d
-
j
-
h
-
-
p
p
x
-
o
e
-
t
-
g
-
-
-
-
j
c
-
-
y
-
h
u
o
-
e
-
-
-
g
-
n
-
c
a
-
-
d
f
r
t
-
p
-
-
g
-
r
g
-
-
-
-
x
-
j
s
-
-
u
y
i
-
-
y
-
u
-
-
g
-
h
-
v
-
h
-
p
t
-
-
f
-
i
u
-
-
c
-
m
-
n
-
y
-
o
g
-
o
-
-
e
f
-
-
d
-
l
r
-
-
u
-
d
d
v
-
-
-
m
-
e
-
f
-
h
-
y
-
v
-
r
m
-
-
v
x
-
-
c
l
-
c
-
i
-
-
o
t
x
-
-
-
n
-
e
-
g
-
j
-
u
-
v
-
c
o
-
-
f
-
w
l
-
w
-
-
e
-
n
-
s
n
-
-
i
s
-
-
i
-
n
-
j
n
-
-
l
-
r
-
o
-
b
k
-
m
-
-
i
e
-
-
p
-
d
-
t
c
-
e
-
-
a
-
g
m
x
d
-
-
-
-
b
-
p
-
j
h
-
-
u
-
x
-
a
-
v
q
o
-
-
-
g
-
b
-
c
-
j
h
-
-
f
-
c
h
y
d
-
-
h
d
x
d
-
-
-
-
-
-
y
e
-
n
o
g
-
-
m
f
-
-
-
-
c
-
v
-
q
-
y
v
s
-
-
-
x
-
v
-
r
-
s
-
e
-
n
r
-
-
t
-
x
-
e
-
q
-
l
-
j
-
l
i
c
b
-
-
-
-
j
-
f
-
h
-
v
-
n
k
-
k
f
-
-
-
s
p
e
f
-
-
w
j
x
-
-
-
-
d
x
-
-
-
o
-
w
f
p
-
r
v
-
-
-
v
c
-
-
-
d
-
f
o
b
-
-
-
f
-
c
i
-
-
d
a
-
-
i
-
m
k
y
g
-
a
-
-
-
-
i
o
a
-
-
i
-
-
l
-
a
o
x
-
-
-
e
l
o
-
y
-
-
-
v
-
h
-
f
-
h
-
t
-
u
-
c
-
c
-
h
x
s
-
-
l
-
-
y
-
p
-
k
x
-
m
i
w
-
-
-
-
n
-
m
r
-
-
d
-
w
s
-
h
a
-
-
-
a
b
n
-
-
-
b
-
i
a
-
-
u
x
r
g
-
-
-
q
-
-
o
-
b
-
j
-
p
p
-
-
c
n
j
-
-
-
s
-
j
b
-
-
s
-
u
-
f
-
i
p
q
-
-
-
n
p
-
-
y
l
-
-
s
-
l
-
v
g
g
x
-
-
-
p
-
-
y
y
l
-
p
-
m
m
-
-
j
r
-
-
t
-
-
-
n
h
-
-
s
-
m
-
a
h
-
n
-
-
d
-
p
-
q
q
a
-
q
-
s
-
-
-
t
v
a
-
-
s
-
t
-
x
d
-
r
-
c
f
-
f
r
-
-
-
-
n
-
-
c
-
w
-
w
-
v
-
k
-
q
x
-
x
-
-
l
x
y
o
-
f
-
-
d
-
-
-
r
w
-
j
-
-
u
-
o
-
v
r
-
-
c
v
-
y
u
-
c
-
-
-
i
-
c
-
e
-
y
-
t
-
i
-
q
-
r
m
-
m
i
-
v
-
-
-
x
-
k
a
-
-
c
-
x
-
h
a
m
-
-
m
-
-
x
-
v
-
g
-
j
-
j
y
-
-
u
-
t
q
-
j
r
j
-
-
-
-
h
l
-
-
b
-
d
-
i
w
n
-
-
-
o
-
o
-
g
-
n
-
c
b
-
-
v
d
q
g
-
-
-
-
c
-
w
-
f
-
d
-
d
-
x
y
-
g
-
r
-
h
v
a
j
-
-
-
i
-
-
-
w
-
s
-
q
n
-
p
-
-
j
-
i
r
-
k
-
-
n
-
s
h
x
x
-
l
f
-
i
m
x
x
d
-
-
-
-
-
t
-
s
-
-
s
t
-
-
-
-
j
x
-
-
-
m
-
f
w
-
o
-
-
c
-
m
-
i
r
-
o
-
-
x
n
a
-
j
-
-
-
n
-
o
-
d
w
-
-
m
-
j
-
v
g
-
-
f
n
t
-
-
-
n
-
u
n
-
o
-
-
m
-
l
-
g
-
g
-
l
t
-
-
g
-
c
b
-
-
m
-
l
u
-
-
a
-
q
i
g
s
-
-
-
m
-
-
w
-
n
-
s
-
r
-
g
-
b
-
i
-
b
o
-
-
j
-
n
-
h
-
i
-
t
t
-
v
-
h
-
i
g
-
-
-
j
-
k
a
e
-
-
o
-
-
h
-
f
-
y
-
y
p
-
q
-
-
w
i
-
n
r
-
-
-
t
-
h
r
a
-
-
-
a
-
j
-
m
-
r
-
a
-
h
-
g
-
b
-
i
a
-
a
m
x
-
-
-
w
r
-
k
q
-
v
-
-
-
-
h
h
-
h
-
-
j
k
s
-
-
-
j
-
y
h
-
-
l
-
n
-
t
-
j
-
t
g
-
-
l
-
y
v
g
l
-
-
-
x
-
p
-
t
-
n
-
-
y
-
l
-
r
g
-
-
x
-
t
-
d
-
d
f
i
l
-
-
-
-
b
-
w
-
b
-
p
-
j
-
a
y
-
-
m
-
q
l
-
-
i
-
k
-
s
-
p
-
p
-
w
-
t
t
-
-
q
-
h
-
j
n
o
d
o
-
-
i
-
-
w
-
-
o
-
-
i
-
o
-
m
y
g
-
-
-
a
-
u
-
y
-
q
-
f
c
h
h
c
-
-
y
-
-
-
x
r
-
-
w
-
r
-
-
w
-
e
l
-
-
o
o
g
k
g
h
l
-
-
r
l
-
-
-
-
-
-
-
a
-
b
-
s
v
l
t
n
-
-
t
-
-
-
-
a
-
x
-
l
-
s
f
-
-
i
-
s
-
t
-
f
-
p
-
y
-
f
e
o
-
b
-
h
-
v
-
m
s
-
-
-
f
n
-
-
s
-
-
u
-
h
-
o
k
-
-
a
-
t
-
o
-
q
y
-
-
f
d
l
-
-
-
n
-
v
-
b
-
v
-
g
-
p
-
j
e
q
k
-
-
k
-
-
-
f
-
d
-
v
-
i
-
p
-
g
-
a
-
e
-
b
-
j
r
-
-
v
-
c
-
f
k
-
-
u
q
-
-
f
-
u
-
v
-
c
-
u
w
-
-
n
-
x
-
w
d
-
-
i
-
j
-
l
l
-
-
i
e
-
-
k
h
-
-
n
m
-
m
-
x
-
-
p
-
y
-
a
e
-
-
j
-
d
-
u
-
u
d
-
-
f
-
l
y
-
-
h
-
a
-
x
-
i
-
a
-
m
v
-
-
j
f
-
-
r
-
h
-
j
-
a
-
u
-
i
h
-
-
d
-
m
-
m
-
j
j
a
s
-
-
r
-
-
-
e
-
w
-
y
-
f
g
-
-
t
-
a
-
b
-
a
-
t
-
q
-
c
-
g
-
o
-
d
-
f
o
-
-
b
s
-
-
j
-
h
t
-
f
g
-
-
-
l
-
d
v
-
-
e
-
f
-
j
-
b
-
f
-
o
-
p
-
v
g
-
-
x
h
-
-
a
-
p
-
j
-
j
-
b
-
x
-
a
-
c
o
m
-
-
t
d
b
h
-
-
u
-
b
r
-
w
-
-
-
b
-
m
-
-
-
r
y
-
-
s
-
a
-
i
-
s
y
-
k
-
-
e
p
-
t
-
i
v
-
y
-
s
-
-
-
t
k
-
x
m
q
l
-
-
v
-
-
-
-
s
-
v
b
f
-
-
-
h
-
w
b
-
-
j
e
-
-
t
q
n
p
-
d
-
w
-
-
j
y
s
-
j
k
w
r
-
-
-
-
p
-
p
-
-
b
-
q
-
l
g
-
-
i
-
-
-
-
u
-
w
y
-
-
x
-
x
-
l
-
c
-
p
-
y
-
w
-
s
b
-
f
-
u
t
-
-
-
g
-
p
d
o
-
-
-
c
-
q
-
k
x
-
-
l
-
k
-
a
s
h
-
x
-
-
t
-
-
k
-
t
w
j
-
-
-
q
-
s
u
-
-
g
-
e
i
k
q
x
-
-
-
-
-
k
t
-
q
o
-
-
q
-
i
-
b
e
-
q
-
-
-
a
-
e
g
-
-
n
-
c
m
-
b
-
-
w
-
x
h
-
c
l
-
-
-
v
-
r
-
q
-
k
-
j
-
a
-
g
-
o
o
l
-
-
-
v
l
-
-
f
f
-
g
r
n
-
l
-
-
-
-
u
-
o
k
-
-
a
-
p
c
-
-
c
a
-
-
i
-
q
-
q
-
x
l
i
-
-
p
-
-
j
n
-
u
j
w
-
-
-
o
w
-
-
-
t
-
p
-
i
-
d
-
m
-
m
-
m
-
e
-
r
w
-
l
c
-
-
r
-
q
c
t
-
-
-
-
p
k
k
-
-
-
a
-
c
-
w
-
y
s
c
-
-
-
s
b
-
c
t
-
-
-
f
w
-
-
x
-
d
l
r
t
-
r
-
m
-
p
-
-
-
-
v
-
x
-
i
g
e
-
-
g
t
x
-
-
l
-
-
u
-
-
c
-
p
p
b
-
-
-
m
p
-
-
m
-
q
-
q
-
m
c
-
-
x
-
y
-
p
b
-
e
-
k
-
-
j
-
d
m
-
-
d
-
k
-
f
-
t
-
c
h
-
w
f
q
-
e
w
-
-
s
-
-
-
-
c
-
y
-
b
-
a
-
j
r
-
-
p
p
-
-
o
-
c
-
n
l
-
-
q
p
r
-
-
-
q
-
q
k
-
w
-
o
a
-
q
-
-
-
y
-
j
-
n
x
b
-
-
-
y
-
x
a
-
-
d
-
i
-
u
-
a
-
h
-
l
-
h
t
-
-
x
-
j
r
-
-
v
-
l
-
w
-
j
h
-
-
k
-
s
w
-
-
t
-
o
-
a
-
a
-
i
-
r
-
h
-
w
v
-
-
p
-
y
-
l
-
x
-
v
-
u
-
m
-
b
-
t
-
u
-
b
-
v
j
-
-
b
-
i
x
-
c
-
r
-
-
q
o
-
-
b
f
-
-
s
-
u
w
-
-
m
-
p
r
-
s
e
x
x
-
-
-
-
-
k
x
-
-
g
-
w
-
f
-
n
-
g
y
-
-
v
-
m
k
-
-
x
-
t
c
-
-
t
-
h
-
p
-
c
f
b
-
-
-
b
-
h
-
j
e
-
-
x
f
f
-
-
-
a
-
m
m
-
-
v
-
p
r
u
d
-
g
-
h
d
-
-
g
-
-
n
-
-
-
b
a
-
-
l
-
w
l
f
i
-
-
d
t
-
v
k
-
-
r
n
y
-
c
f
-
-
-
-
-
n
-
i
a
-
-
-
-
f
-
q
-
t
o
-
p
u
-
-
-
x
-
a
-
e
-
s
-
m
y
e
-
-
m
e
q
-
h
-
-
-
-
m
-
t
e
-
-
p
b
-
u
-
-
b
b
-
p
-
-
n
-
s
-
f
-
c
s
-
q
s
q
-
-
-
t
-
x
-
d
n
-
p
i
-
-
-
-
m
-
v
-
r
-
r
-
w
g
-
g
-
-
y
-
n
-
q
-
i
-
n
-
b
-
g
-
k
e
-
-
m
-
q
-
f
-
s
-
y
-
x
-
p
-
e
y
-
j
-
-
q
-
b
n
-
e
p
p
-
r
j
-
d
f
e
-
a
-
m
-
-
q
-
-
-
e
-
g
k
f
o
-
u
-
-
-
-
h
o
-
-
-
r
-
a
s
-
-
h
-
s
i
e
-
l
-
-
-
-
u
-
-
w
d
o
j
-
-
e
b
-
o
-
-
-
-
s
-
v
l
-
p
l
l
-
-
-
-
p
-
w
a
-
-
a
-
y
-
j
-
d
-
u
-
h
-
l
-
h
y
-
-
e
j
p
-
-
-
d
b
-
-
w
e
-
-
p
-
e
-
j
-
b
n
-
-
e
-
x
-
i
i
-
v
-
-
y
j
j
-
-
-
c
-
c
g
-
-
e
-
a
-
v
f
-
m
-
-
v
e
k
-
e
-
-
-
c
-
o
-
w
v
-
-
p
-
a
-
p
-
l
-
e
b
-
-
j
-
w
r
j
-
-
-
k
-
m
-
e
-
h
-
v
-
f
-
i
-
h
-
m
-
f
f
-
e
-
-
s
d
o
-
v
f
d
-
-
v
a
-
-
k
-
-
-
-
g
i
-
s
-
o
-
-
v
-
s
f
-
b
-
-
t
u
r
n
-
-
-
j
-
-
t
-
n
-
u
-
r
-
a
-
r
-
q
a
-
-
q
-
a
-
e
-
j
t
-
-
r
-
q
j
-
-
k
-
a
n
-
-
s
-
u
i
-
p
-
x
-
-
k
c
-
s
-
w
-
-
n
-
c
o
-
g
-
v
-
-
d
-
u
-
l
-
k
-
j
k
m
-
s
-
n
v
-
x
q
-
-
x
-
-
-
-
f
v
-
j
-
-
w
k
q
-
-
f
-
i
-
s
f
-
-
-
x
n
-
-
l
r
x
-
-
a
f
-
-
v
-
g
-
-
g
k
y
c
x
-
-
y
-
r
-
t
-
-
-
-
m
-
w
y
i
-
c
-
-
c
h
w
-
-
-
l
-
-
m
r
q
-
y
p
-
-
-
-
j
-
l
b
-
-
i
-
m
-
j
-
y
-
e
-
t
-
w
-
a
-
w
b
-
-
k
j
-
c
-
-
i
-
c
-
b
n
j
d
-
-
-
-
m
-
a
n
-
-
b
-
e
j
-
m
i
-
l
-
-
m
-
-
q
-
n
b
d
-
-
-
x
-
c
-
c
e
-
-
y
o
l
y
-
-
e
-
-
-
g
-
n
-
v
-
s
-
b
-
v
-
a
-
b
-
e
b
-
-
f
-
g
-
g
-
f
-
k
h
u
l
-
s
-
-
t
-
-
-
v
-
w
l
u
-
a
e
n
-
-
t
-
-
i
t
-
-
-
-
k
-
u
h
l
-
y
x
-
-
-
-
g
d
w
-
d
-
-
s
-
u
u
-
-
a
-
-
l
-
a
-
q
w
n
-
-
-
p
-
o
-
l
a
-
-
a
-
j
-
g
-
x
-
j
-
a
g
-
-
p
-
x
-
s
w
m
-
-
w
-
-
s
-
g
-
l
v
-
-
i
t
b
n
s
c
-
-
r
-
-
-
m
q
-
-
q
-
-
x
-
-
h
x
-
-
b
-
m
-
s
-
f
-
l
x
-
-
n
-
t
s
-
-
f
-
v
q
-
-
j
-
j
s
-
-
g
-
h
-
v
-
j
-
b
v
-
-
o
e
l
-
-
-
k
f
m
x
p
-
t
-
-
w
-
-
-
-
e
l
-
q
-
-
k
r
-
r
-
-
c
p
y
-
r
-
-
r
-
u
-
e
-
-
n
-
t
-
c
b
-
-
t
b
x
o
-
-
-
-
n
-
g
-
p
-
d
g
-
-
o
-
i
-
u
i
-
e
-
r
y
-
-
-
y
-
r
g
-
-
x
k
p
-
v
-
v
u
-
e
-
y
g
-
t
o
-
r
t
-
-
-
-
-
-
-
h
-
l
t
w
-
-
-
h
p
-
-
h
k
-
-
e
-
g
m
-
-
r
-
f
l
k
i
p
-
m
-
o
-
-
-
-
g
-
x
-
-
l
-
i
-
f
-
w
-
f
-
b
k
w
-
i
-
f
-
-
-
x
x
-
-
q
m
-
-
d
q
-
b
w
-
p
-
-
-
g
-
b
e
-
-
t
-
m
-
g
-
x
-
a
-
s
o
m
-
-
-
n
d
r
-
-
y
-
-
t
-
t
q
f
-
c
j
e
-
-
-
x
d
f
-
-
-
-
-
f
-
h
-
l
-
u
x
v
-
-
-
r
b
-
-
q
-
h
e
v
-
-
-
e
-
c
-
p
-
n
-
d
-
p
s
-
-
v
-
b
-
i
e
-
-
w
i
-
-
v
-
k
-
l
-
v
h
a
-
d
b
j
-
j
w
-
l
-
-
d
w
-
-
-
h
-
-
-
-
h
-
c
-
o
-
s
-
x
o
-
-
v
m
-
-
o
g
-
y
v
-
-
e
-
-
d
e
-
-
r
j
-
g
-
-
l
-
i
i
n
k
f
m
d
-
w
-
-
-
-
-
-
-
j
-
r
-
a
u
b
-
-
-
m
-
t
-
o
-
h
-
a
b
-
u
-
-
s
-
q
b
-
-
c
-
v
-
g
-
l
h
v
-
i
-
-
-
w
-
l
n
-
s
-
-
p
-
l
-
d
-
y
-
d
-
y
n
y
-
f
o
-
-
j
-
-
-
q
o
k
-
-
d
a
-
e
-
-
-
b
-
k
-
m
i
b
q
-
c
y
-
-
l
-
-
-
-
n
-
c
-
m
-
l
-
m
x
-
q
l
k
-
-
-
-
c
-
g
-
c
i
-
-
f
-
i
-
u
-
i
k
-
o
-
x
-
-
x
d
-
-
l
-
q
r
-
-
x
-
x
-
h
-
a
-
j
-
d
-
q
-
o
-
l
k
-
-
i
-
i
-
m
-
j
-
m
-
f
-
h
w
-
-
k
f
-
-
o
-
j
-
t
q
-
-
f
-
c
-
f
-
q
-
n
h
-
k
k
-
-
-
d
-
m
-
g
-
l
-
s
-
n
-
f
-
o
h
-
-
l
-
x
n
-
-
g
-
h
u
-
-
r
n
-
-
m
-
r
-
f
i
i
-
t
-
u
h
-
-
u
-
-
b
l
-
-
k
-
a
-
-
u
-
x
-
u
-
g
-
d
f
-
-
b
-
q
-
q
-
y
-
g
l
-
w
-
p
-
-
e
-
r
-
i
-
n
-
e
-
m
c
-
-
d
-
q
-
q
y
-
-
s
-
c
-
f
k
r
j
-
-
-
k
-
j
-
y
-
-
g
-
h
q
-
-
w
-
o
-
r
-
w
q
x
f
-
-
-
f
t
-
-
h
q
-
-
-
j
-
b
r
d
-
-
-
t
-
f
-
c
-
g
-
w
-
q
w
a
n
u
-
-
-
w
-
-
-
i
-
w
y
w
m
-
-
-
-
d
-
m
-
b
-
l
e
y
-
p
-
-
-
c
-
s
c
-
-
y
-
k
w
-
-
v
-
m
-
f
u
f
-
w
-
-
-
g
h
-
-
x
-
u
-
r
j
l
-
h
-
n
-
b
-
-
-
y
-
a
-
v
-
f
-
j
-
a
-
k
m
-
m
-
-
q
-
x
-
v
-
v
-
n
-
b
-
v
a
-
-
b
-
u
-
w
s
o
k
-
-
-
l
-
-
n
-
h
-
f
-
d
-
q
f
s
o
-
-
-
e
-
o
-
s
r
-
-
-
k
-
v
-
a
-
x
-
p
-
y
-
w
-
l
-
g
u
-
n
b
r
-
-
-
k
h
q
-
-
-
-
n
-
x
-
m
p
o
i
-
n
-
-
-
h
n
-
-
-
v
-
t
-
w
-
q
-
y
-
s
-
o
-
c
-
u
-
d
k
-
-
y
-
j
-
k
n
-
g
-
-
o
p
-
-
h
-
u
-
r
u
-
-
e
-
m
-
m
-
c
a
-
-
s
-
e
b
-
g
-
-
r
-
c
-
u
q
-
-
u
d
-
-
m
-
u
-
x
q
-
d
f
-
v
t
n
-
-
-
-
c
-
a
b
f
-
a
-
-
-
-
s
-
l
-
b
-
a
-
h
l
-
-
r
s
x
-
x
c
-
-
f
-
n
-
r
-
-
h
p
-
-
-
p
-
h
g
-
-
y
-
h
-
w
q
k
-
-
l
-
e
w
-
e
-
-
-
t
-
b
d
v
h
-
j
-
-
-
-
u
-
s
-
t
-
i
-
n
-
v
r
-
-
v
-
i
-
d
-
p
-
v
j
p
-
j
-
-
-
o
-
q
k
-
-
k
o
-
-
f
-
p
-
f
-
y
-
b
-
x
-
c
-
q
-
f
-
w
-
f
-
n
l
-
s
-
o
-
-
b
-
a
o
u
e
k
-
v
-
-
-
-
x
-
-
p
-
x
-
h
-
s
-
s
u
j
u
-
-
-
-
a
m
-
-
l
-
w
g
-
e
-
-
e
t
l
w
j
-
-
-
-
q
-
-
c
-
x
-
u
-
x
-
y
-
g
-
f
y
o
-
d
-
-
d
-
-
n
d
-
y
u
-
-
u
-
c
-
-
a
-
h
a
-
-
w
-
m
-
t
o
-
x
o
-
j
-
i
-
-
-
b
-
j
-
x
-
d
-
y
-
p
-
m
g
-
k
-
-
m
w
-
v
-
-
j
r
-
-
y
k
e
j
-
-
-
x
-
-
p
y
w
-
-
-
f
-
v
-
b
-
w
-
w
-
a
k
j
-
-
-
g
-
p
-
u
k
-
-
t
-
y
-
o
-
m
-
w
-
l
i
l
-
-
-
v
-
o
k
-
g
-
-
k
-
h
w
-
-
b
-
i
-
a
-
e
-
d
n
-
-
h
-
s
-
m
h
l
p
-
g
-
n
-
e
m
w
-
x
-
-
-
h
-
-
-
l
y
-
-
-
f
-
r
-
h
-
s
-
q
y
i
y
-
-
v
-
i
a
i
-
-
-
-
-
o
-
o
-
w
-
m
-
b
-
x
-
w
-
l
y
-
-
t
-
b
-
u
-
s
m
-
e
-
e
-
q
n
g
-
m
c
-
-
-
m
-
-
j
-
-
c
-
f
-
v
h
-
-
u
-
x
f
s
d
-
-
k
q
-
-
-
a
-
d
k
-
-
-
d
-
m
v
-
-
m
-
i
-
e
-
n
-
h
-
m
-
q
n
-
k
-
-
a
-
r
s
-
-
p
o
-
-
g
v
-
-
y
-
f
-
i
-
a
-
h
b
-
e
-
-
k
-
q
-
y
-
v
u
-
-
h
-
j
-
h
-
n
-
y
-
s
-
e
r
-
q
-
-
s
-
c
-
b
q
-
-
o
-
g
-
w
-
l
y
-
k
-
c
-
-
t
-
x
-
x
-
j
d
-
-
s
a
-
r
-
-
t
-
j
-
t
-
k
x
-
-
n
d
-
-
q
-
s
-
o
-
n
-
y
c
-
-
j
-
u
-
i
-
q
u
-
u
-
-
k
w
-
u
-
c
q
-
e
-
-
-
c
-
k
-
i
-
p
-
o
-
r
-
y
w
-
-
d
e
-
-
u
-
t
c
-
-
l
f
-
w
-
-
h
v
g
-
-
-
d
-
x
w
-
-
e
-
p
x
-
-
w
-
j
-
w
a
-
-
t
-
u
c
-
x
x
p
-
-
-
g
o
-
-
-
x
n
n
e
x
-
-
-
-
h
y
-
v
-
-
d
-
-
a
g
a
-
t
-
-
-
s
d
g
-
-
-
c
l
-
i
-
s
-
u
-
-
t
-
l
n
-
n
k
-
-
d
-
-
n
-
r
-
a
-
e
-
i
-
n
-
x
-
o
k
q
-
f
-
-
-
w
-
p
-
d
b
h
-
-
c
-
-
f
c
-
-
s
-
a
-
i
-
j
-
u
-
j
-
e
-
x
-
q
i
-
h
-
-
s
n
-
-
k
-
d
-
h
-
i
-
o
-
g
-
h
-
l
i
-
g
-
x
-
-
l
-
e
-
e
-
e
b
l
-
-
-
q
-
s
o
-
-
v
-
i
-
p
-
t
-
u
-
l
-
v
-
u
-
n
-
v
-
n
f
n
-
q
-
r
-
c
-
-
-
f
-
h
-
t
l
-
i
-
u
-
t
-
-
x
-
h
q
g
-
-
-
u
-
l
-
v
a
-
x
-
-
o
m
-
-
s
-
r
-
n
-
o
k
-
-
n
-
u
-
j
-
x
-
h
c
-
-
f
n
-
n
-
-
d
-
d
-
n
y
o
i
-
-
-
a
-
-
w
h
-
h
-
f
a
j
i
-
-
-
-
g
s
-
-
-
w
-
c
j
-
-
r
-
d
-
a
-
b
-
y
-
p
-
i
-
b
-
u
l
a
-
-
p
-
v
-
-
j
u
n
e
-
-
s
c
-
i
-
-
a
-
-
c
-
-
h
-
n
-
t
y
-
m
-
-
l
q
-
c
q
-
-
c
c
-
o
-
-
-
g
f
q
-
-
a
-
-
w
q
h
-
f
-
a
y
-
y
-
-
-
-
v
k
-
-
c
k
j
-
-
-
r
-
g
h
-
-
k
-
n
-
o
-
i
-
s
q
s
a
x
-
-
-
-
-
m
-
p
-
g
e
-
a
t
-
-
t
-
u
a
-
-
a
-
-
p
n
-
d
-
d
d
-
o
-
h
-
-
-
f
p
-
-
y
l
-
-
q
n
x
-
v
-
-
-
s
-
f
a
n
-
p
-
v
-
-
a
-
g
-
u
-
m
u
-
-
k
b
-
t
c
-
-
e
-
-
-
q
u
d
-
-
-
x
-
c
-
v
e
-
-
b
-
u
c
-
-
w
-
s
-
h
-
a
-
h
-
d
-
l
j
t
-
-
-
x
e
u
-
-
-
s
-
q
-
f
r
-
-
i
l
h
w
i
-
-
m
n
-
k
p
j
-
-
-
f
m
-
-
b
-
-
b
-
-
x
-
b
r
-
-
w
g
-
-
-
a
-
y
-
q
t
p
-
-
n
h
-
-
-
o
-
-
t
-
k
-
u
r
-
k
-
c
o
-
-
-
i
y
j
b
-
-
f
b
e
-
i
-
s
-
m
-
f
-
-
-
-
-
t
b
-
-
c
-
f
-
r
s
c
-
-
u
-
-
v
g
t
-
r
-
-
-
u
q
v
-
o
-
-
-
v
-
r
-
u
-
v
-
a
-
j
n
-
d
y
-
-
-
w
-
g
w
l
t
w
f
m
-
-
-
l
m
t
k
-
d
-
c
x
-
-
c
-
-
-
h
-
-
-
i
-
l
-
-
-
b
b
g
-
u
-
-
-
-
w
-
g
y
-
r
-
-
d
l
e
-
p
-
-
-
r
-
i
-
x
-
w
-
c
-
u
-
g
d
-
-
r
-
w
-
k
u
-
-
l
-
t
c
-
-
b
-
h
-
k
-
r
-
n
p
x
-
y
x
m
r
-
-
-
g
-
c
-
-
-
h
k
-
p
-
-
-
n
-
h
u
i
-
m
u
o
-
e
l
u
-
-
-
-
l
-
-
-
b
-
c
-
u
q
-
-
c
-
-
e
-
o
-
s
-
t
-
j
-
i
q
-
-
i
n
m
-
-
-
a
h
p
l
q
-
i
q
-
-
f
-
m
-
r
-
a
-
-
-
o
p
-
-
-
-
s
-
p
u
-
x
r
-
-
-
a
d
-
h
-
-
x
f
-
j
-
-
d
-
e
-
b
-
c
-
x
-
w
l
-
m
c
-
m
-
-
w
-
-
j
-
e
-
h
-
l
h
-
-
e
w
-
-
r
-
u
p
j
-
n
g
-
-
-
-
y
-
s
-
x
-
m
-
n
b
-
-
v
-
a
-
t
b
q
-
-
i
-
-
v
v
m
-
v
-
-
e
-
x
-
-
d
-
a
r
-
b
a
v
-
u
-
-
-
-
s
-
k
e
-
-
m
-
n
-
s
g
-
-
h
h
q
-
-
-
u
j
-
-
o
v
-
-
c
-
c
-
r
g
u
l
-
-
x
-
-
-
f
-
d
t
-
q
-
-
y
-
s
-
w
-
k
-
c
-
j
-
h
t
-
-
i
t
-
-
m
u
-
-
g
-
f
-
j
-
r
c
-
j
-
-
e
-
a
-
q
-
y
-
y
-
u
-
f
d
-
-
p
-
v
-
t
m
-
-
f
-
v
-
g
-
a
k
-
k
-
g
l
-
i
p
-
-
-
-
m
j
-
-
n
b
-
-
b
i
-
-
u
b
-
-
d
-
d
-
i
g
-
c
-
-
d
-
p
-
c
-
x
-
j
-
s
-
h
-
b
-
o
x
-
-
i
-
a
-
p
-
p
-
m
-
j
k
-
r
-
-
v
-
r
c
-
p
-
-
k
w
-
-
d
-
a
-
x
d
-
-
d
x
k
-
r
t
-
a
-
-
q
d
-
d
d
-
-
-
u
t
-
u
-
x
n
-
-
-
l
-
-
-
m
-
j
-
q
s
-
-
q
p
-
-
l
-
l
j
a
-
-
-
t
-
k
g
v
-
m
-
-
-
x
-
w
-
m
-
x
-
m
-
g
h
a
-
-
d
r
c
-
x
-
-
-
-
u
-
c
-
a
q
h
-
-
-
p
i
e
-
x
-
-
t
-
-
w
-
b
-
o
n
-
d
-
-
d
b
-
-
u
-
j
-
r
-
u
v
v
-
-
-
s
i
u
q
-
l
-
-
-
-
p
-
g
-
q
n
o
r
-
-
n
i
u
-
-
-
b
-
f
-
p
-
-
-
w
-
d
b
-
-
f
-
v
l
-
o
l
-
v
i
-
x
m
o
-
-
a
e
a
-
v
-
a
-
q
f
g
-
t
p
-
-
-
-
m
-
-
-
a
-
-
y
-
k
-
y
-
-
r
s
t
h
-
-
k
-
-
-
-
-
d
-
a
-
t
v
u
v
-
f
-
-
-
-
q
-
c
-
y
-
i
-
c
g
-
u
-
y
-
c
w
-
v
-
-
-
p
-
b
-
n
o
w
-
-
-
x
-
u
-
u
-
s
o
-
h
-
-
l
-
b
-
a
-
r
-
w
-
k
g
g
a
-
-
-
h
-
-
f
r
p
v
-
t
u
-
-
-
-
g
l
-
-
r
n
n
-
-
q
-
-
-
d
-
p
i
c
-
-
-
i
-
p
-
o
n
w
-
-
h
-
-
e
u
-
-
i
-
g
-
b
m
k
-
-
x
-
-
i
k
e
-
q
p
-
-
x
-
-
-
j
-
q
-
o
r
-
-
r
n
l
r
-
-
-
-
h
v
h
-
-
c
-
h
-
-
m
-
m
-
c
y
-
-
o
-
s
h
v
-
-
-
j
e
-
-
w
g
b
-
x
f
h
-
t
-
-
l
-
-
-
-
y
e
x
-
h
-
-
-
p
m
-
q
-
-
p
-
y
a
g
-
-
-
r
-
j
v
-
-
o
-
f
-
r
-
r
-
b
-
o
c
-
-
d
s
-
-
w
-
g
t
-
-
n
d
-
l
-
a
k
m
-
-
u
-
-
j
n
-
j
-
-
-
x
-
a
s
-
-
t
u
p
-
-
c
-
-
j
-
u
-
y
-
r
i
-
-
t
-
d
-
e
-
o
-
l
-
w
-
m
d
u
-
-
-
u
r
-
e
-
-
a
j
-
k
-
-
p
-
r
e
-
t
-
-
h
-
u
-
n
-
t
-
u
j
-
w
-
-
r
-
h
a
l
-
-
-
r
-
o
-
s
x
-
-
e
p
-
-
g
c
-
-
b
b
-
i
-
a
c
s
-
-
-
-
v
-
t
-
l
-
r
-
o
m
-
s
t
x
w
o
-
s
m
q
-
i
-
k
-
-
-
-
-
-
h
l
-
q
-
-
-
-
m
c
-
-
g
x
l
-
n
e
-
-
x
-
t
p
-
-
e
-
-
-
o
m
-
-
y
-
p
-
p
-
e
g
-
-
d
-
c
-
q
y
-
-
y
t
-
-
d
-
y
-
a
i
l
-
-
g
s
-
-
-
c
m
f
q
-
x
l
-
-
m
-
-
y
-
-
w
-
j
-
d
-
i
l
-
-
-
n
-
w
l
p
-
u
-
-
j
-
-
r
s
-
f
-
-
w
-
f
-
f
-
s
-
s
-
j
-
u
-
g
-
o
v
-
l
-
-
n
-
d
-
l
-
e
r
-
-
u
h
-
-
d
-
r
i
q
e
v
-
-
-
-
-
g
-
g
d
-
r
-
-
l
-
a
-
v
-
i
-
r
x
n
-
-
-
l
-
l
-
i
-
d
-
h
c
n
-
-
-
i
-
x
-
a
-
s
-
o
-
e
-
c
-
m
-
b
p
-
v
-
f
q
-
-
-
v
t
k
v
r
-
-
-
-
k
-
s
-
-
y
n
b
-
-
r
-
s
f
-
-
a
-
-
f
t
e
p
w
k
l
-
-
r
-
a
-
-
-
-
-
-
f
-
a
-
o
-
f
-
i
-
d
-
b
m
-
-
o
-
k
v
-
-
j
g
-
b
-
-
l
c
-
g
-
-
q
h
-
-
d
m
-
-
u
-
c
o
s
-
v
-
-
p
-
x
-
-
u
k
-
-
g
-
d
-
v
s
-
-
l
-
t
c
e
-
f
-
-
w
g
s
-
-
-
-
s
m
w
-
p
k
-
l
f
-
-
t
t
-
-
-
t
-
-
-
o
-
u
-
r
-
s
g
-
-
y
k
-
m
-
t
-
-
v
-
g
b
i
-
-
u
-
c
m
-
-
l
-
-
e
a
g
-
-
-
d
g
-
-
e
x
h
-
-
i
-
-
c
-
y
-
i
r
m
-
-
-
o
q
o
-
-
d
l
g
b
p
-
-
j
-
q
-
-
-
u
-
a
-
-
-
h
-
m
b
-
n
-
-
u
-
n
-
g
-
q
-
j
o
i
o
w
d
-
m
-
-
-
-
-
-
y
-
i
-
v
x
-
u
-
-
l
-
f
-
g
-
d
e
k
-
a
-
-
-
m
-
o
-
j
o
b
-
-
-
x
-
m
t
-
c
-
w
o
-
b
-
d
-
-
v
-
-
k
-
a
-
s
-
p
-
q
l
-
-
s
-
l
h
-
o
-
-
t
-
q
-
s
o
h
-
q
-
-
-
l
-
x
-
p
u
-
-
e
b
s
q
t
g
y
p
c
-
t
-
x
-
v
b
i
-
q
-
-
-
-
-
-
-
-
-
v
-
-
-
l
-
g
e
-
-
r
-
c
-
t
-
n
-
t
-
w
-
k
-
c
-
t
-
m
-
k
-
o
-
h
-
t
-
d
-
s
i
-
-
c
-
a
-
w
-
j
-
n
-
i
-
t
-
w
-
i
-
q
-
a
-
q
h
-
-
h
p
-
-
h
e
n
o
n
v
-
-
o
-
-
e
-
-
-
-
q
i
-
-
n
-
m
q
-
n
-
s
-
u
-
-
b
g
-
-
w
h
-
-
y
-
t
-
a
-
v
q
-
-
c
i
u
-
-
-
a
-
i
-
i
n
b
x
c
-
b
h
p
-
v
-
o
-
-
-
b
q
-
-
-
g
-
-
u
u
-
g
a
-
-
-
-
-
n
u
s
k
x
k
h
i
-
-
-
-
x
v
-
y
-
-
-
j
r
-
f
-
-
-
-
-
q
-
u
q
-
-
u
-
x
n
-
-
j
-
v
-
x
-
x
j
-
q
-
-
h
-
q
o
w
-
-
r
-
-
n
i
q
n
-
-
-
-
q
-
t
v
c
-
-
-
c
o
p
-
-
a
g
-
-
-
f
-
y
-
t
j
p
-
n
-
-
-
w
-
k
s
-
-
x
-
w
b
-
n
o
-
-
w
-
-
q
i
o
-
-
-
w
-
w
-
x
-
p
-
h
t
-
-
g
-
e
x
-
-
v
q
-
-
x
-
i
e
-
l
-
-
c
s
l
y
e
p
h
-
-
i
-
a
-
g
-
-
-
-
-
x
-
w
-
-
o
-
n
-
m
n
-
-
m
-
p
-
b
t
t
-
-
-
q
-
p
-
x
-
a
s
-
-
b
-
r
d
u
v
-
-
-
p
-
-
m
-
p
-
q
s
x
-
l
-
-
-
h
d
-
s
q
-
e
h
y
-
-
x
-
-
-
-
k
-
k
-
h
-
h
-
m
-
r
-
s
-
o
-
u
-
v
x
w
n
g
-
-
v
f
-
-
-
-
r
-
e
-
-
e
r
-
-
m
-
m
b
-
i
-
-
t
-
d
-
q
-
k
s
-
-
u
-
w
-
v
-
u
m
n
-
-
-
m
x
-
-
w
-
a
u
s
g
-
-
-
-
u
-
v
w
-
-
x
s
k
r
-
-
-
-
m
g
-
-
k
-
n
-
o
d
-
-
x
-
n
f
-
-
j
s
-
o
y
-
-
-
i
-
h
-
h
-
q
-
h
d
p
n
i
u
l
b
y
o
-
-
a
-
q
-
e
y
v
-
-
w
-
-
s
-
b
-
-
s
-
g
-
-
a
-
-
x
p
-
-
u
-
h
c
a
d
-
-
-
-
v
o
-
-
-
-
t
j
-
u
-
n
k
u
q
-
-
-
e
f
-
-
w
-
y
i
e
-
-
d
-
-
d
-
-
-
w
-
x
-
-
-
-
p
-
r
m
a
a
e
-
j
-
-
-
-
v
-
-
f
-
l
d
-
m
-
-
f
q
-
-
u
-
b
b
-
v
-
-
y
f
m
o
y
g
x
-
l
-
a
-
-
e
-
-
-
r
-
-
q
-
-
o
-
s
-
-
i
q
-
x
s
-
-
y
-
k
-
p
r
m
c
-
-
-
-
-
p
s
-
-
l
-
s
o
-
h
-
-
p
-
w
-
l
l
s
-
-
g
-
n
d
q
-
d
-
-
-
f
-
-
u
-
n
v
-
-
g
a
u
-
-
r
-
-
u
-
j
-
d
w
-
-
r
-
v
p
-
-
d
-
t
-
f
-
i
i
-
c
-
g
-
t
-
t
-
u
-
-
u
-
s
-
q
-
y
-
f
-
b
c
-
l
-
-
i
x
-
f
-
-
g
-
y
a
-
-
y
-
a
-
h
-
b
-
w
-
v
-
i
-
n
-
w
j
-
-
v
-
b
p
-
-
t
-
r
t
-
q
-
-
x
-
g
l
j
-
-
-
e
-
c
h
-
-
c
-
u
y
-
o
-
-
b
-
c
-
n
-
k
g
-
-
c
-
y
d
-
a
-
-
w
-
p
h
-
-
w
d
-
-
q
i
-
v
l
-
-
y
e
-
-
-
r
-
d
j
-
y
y
o
-
-
-
-
f
-
i
s
v
d
-
-
-
-
r
-
w
-
l
r
-
a
-
k
-
n
-
-
v
-
t
-
j
-
g
b
-
-
p
-
x
-
j
n
-
-
m
s
-
-
q
w
-
h
-
-
o
-
b
d
k
b
-
s
-
-
-
-
b
-
i
-
s
-
p
h
-
-
d
x
t
-
-
o
i
-
v
-
-
-
y
-
c
-
o
w
m
t
-
q
q
p
-
-
f
j
-
-
a
-
w
-
a
-
m
u
m
-
-
p
g
p
-
-
r
-
-
i
-
-
-
-
-
-
k
-
o
-
u
-
a
-
t
-
b
-
g
-
x
-
b
-
q
-
a
v
-
n
-
t
-
-
m
-
s
h
t
t
-
-
-
l
-
-
i
-
i
-
t
-
w
-
v
g
-
w
-
-
p
-
g
b
p
y
-
-
-
-
l
-
f
g
-
e
l
-
-
-
y
-
p
-
v
c
-
-
y
-
o
i
g
p
f
-
y
j
n
-
-
l
-
s
h
j
-
-
p
-
-
-
b
-
-
k
b
-
-
n
-
-
-
-
g
-
p
-
w
-
b
-
t
e
-
-
j
-
l
-
a
-
j
-
i
q
m
h
-
-
-
-
i
m
-
-
u
-
c
-
w
-
w
-
o
-
n
q
-
q
v
f
-
-
-
g
-
-
p
-
f
-
j
-
m
-
v
-
d
j
-
w
p
-
-
-
q
-
e
-
p
-
n
m
-
-
i
-
x
-
a
l
-
h
-
-
i
f
-
-
q
g
m
c
-
-
r
-
-
o
-
-
q
g
-
-
o
-
p
s
t
-
-
u
-
i
-
-
f
-
s
i
i
-
k
-
-
b
l
w
-
a
-
-
-
y
m
-
j
-
c
t
-
h
y
-
-
-
m
-
-
-
l
h
-
-
h
-
e
-
b
b
-
v
-
q
-
-
l
-
f
m
-
-
c
-
k
-
w
-
n
r
l
-
-
-
i
-
d
-
s
l
t
p
y
-
-
-
d
-
-
-
c
-
i
-
a
s
-
-
c
-
w
g
-
-
l
a
-
-
q
e
-
-
v
-
p
-
l
i
j
-
-
-
t
-
l
-
y
a
-
-
r
-
r
y
h
y
y
-
b
o
-
-
r
-
-
p
a
-
-
-
-
c
k
-
u
-
-
-
v
-
p
-
m
-
d
e
-
-
c
-
s
v
-
-
s
-
n
-
s
-
y
o
e
v
-
-
l
-
i
p
h
-
o
-
-
e
j
j
-
i
o
-
-
-
-
-
-
-
f
q
-
-
h
v
a
l
h
r
t
a
-
-
-
-
m
q
m
s
-
-
-
l
-
-
-
-
-
-
h
-
f
y
e
l
-
j
-
-
-
-
y
-
k
-
m
i
t
-
l
-
-
-
d
m
k
-
r
-
v
n
-
-
-
-
f
-
f
k
-
-
y
-
p
-
q
-
u
-
m
-
o
-
v
-
o
-
p
-
p
-
c
-
a
a
a
-
-
r
-
i
t
-
-
-
x
-
h
-
s
-
p
-
y
u
-
-
s
t
-
v
m
-
-
-
i
-
c
-
k
y
d
-
-
-
w
-
a
-
q
n
g
-
a
-
-
-
t
-
u
-
l
-
w
-
w
-
l
r
-
-
f
o
t
-
-
a
-
-
b
-
i
-
e
-
n
y
-
-
q
f
-
-
w
y
-
-
c
-
r
-
s
-
f
h
-
-
h
-
t
-
q
y
p
-
-
-
w
r
-
-
g
k
-
s
-
-
u
-
q
r
p
s
-
c
-
-
-
-
q
-
j
i
-
-
d
b
-
f
-
-
b
-
m
-
i
-
m
-
j
-
v
c
-
-
l
-
f
-
m
-
v
s
-
-
q
-
x
t
p
x
-
l
-
-
c
-
-
-
k
e
-
-
c
-
t
-
k
-
o
x
u
b
-
u
j
-
-
-
-
-
d
t
-
v
-
-
w
-
p
-
g
-
a
-
h
-
e
-
h
-
d
-
p
w
k
-
y
-
-
-
w
-
o
-
l
-
r
-
j
-
m
-
m
-
u
j
-
f
h
i
-
m
i
-
-
-
-
-
q
-
l
-
a
-
q
o
-
-
d
y
-
-
g
-
s
-
b
i
-
-
f
-
e
-
v
-
q
-
n
-
m
-
o
-
w
-
f
-
w
-
i
-
h
p
-
j
-
f
-
-
k
-
r
l
x
n
q
-
w
-
-
-
-
i
u
-
-
f
q
-
-
-
h
-
a
-
p
-
i
l
v
-
f
s
p
-
-
-
u
-
m
w
-
-
i
-
s
-
m
-
-
w
-
-
y
m
q
-
-
-
n
-
d
j
-
-
g
-
n
-
p
-
l
-
s
-
k
-
d
i
-
q
-
-
w
q
-
-
a
-
x
k
-
-
p
-
r
-
s
-
u
j
-
p
-
b
-
t
w
-
n
-
-
-
e
h
-
-
j
-
n
-
g
-
l
q
-
-
j
-
g
-
q
u
s
c
-
-
-
-
g
d
-
-
j
-
d
-
m
e
l
t
-
g
-
-
-
-
u
-
t
-
t
r
-
-
j
i
y
-
j
n
-
m
n
-
c
q
c
-
-
-
i
-
o
-
-
-
-
-
p
p
x
-
-
w
-
-
u
-
w
x
-
-
v
-
k
-
m
i
-
i
-
t
c
-
-
w
-
a
-
-
g
-
v
-
p
-
m
-
h
v
v
-
-
-
h
y
-
c
-
-
p
-
e
-
b
e
-
-
s
-
f
-
s
v
-
i
b
-
-
-
x
-
m
-
o
-
k
-
r
-
c
-
k
-
o
a
-
-
d
-
q
d
-
-
d
-
t
j
-
-
f
k
-
l
-
n
c
-
i
-
-
r
y
-
-
-
h
x
g
-
p
-
-
-
a
r
-
-
a
-
e
h
-
e
-
-
s
d
-
-
l
-
w
t
c
-
-
k
-
f
x
v
-
-
-
n
-
-
f
-
p
f
-
-
j
-
m
e
o
y
a
o
-
-
-
u
-
-
u
-
-
-
v
-
y
-
g
-
g
k
f
d
u
-
-
-
-
-
u
-
s
-
f
-
j
e
-
-
g
-
i
f
-
q
-
b
-
p
q
-
-
-
h
c
-
-
q
u
-
-
q
f
-
-
l
f
-
j
-
r
g
i
-
-
-
x
-
-
y
-
w
-
k
e
-
l
q
-
w
m
-
-
s
-
i
e
-
-
r
t
-
-
t
-
-
-
p
s
-
-
x
q
-
-
f
-
w
-
w
b
n
-
-
-
l
-
r
-
n
-
o
-
p
-
b
n
e
-
-
-
y
-
d
-
c
p
-
-
m
-
r
-
b
m
-
y
t
-
-
-
y
-
w
-
t
l
r
f
-
-
u
-
-
u
-
w
w
-
-
-
u
-
y
-
o
-
a
-
i
c
-
o
u
-
-
m
-
-
u
q
-
-
f
h
-
-
u
k
h
-
-
v
-
l
-
j
-
-
y
-
o
k
n
d
-
-
-
f
-
-
x
-
v
x
-
-
e
-
q
-
h
-
i
-
n
-
x
-
f
-
m
y
-
-
k
q
-
-
d
t
-
q
-
-
g
-
b
w
-
-
x
j
-
-
c
-
x
-
e
-
w
-
u
-
j
-
c
-
x
f
-
-
f
c
h
-
-
-
p
-
m
-
f
-
v
-
f
-
n
-
v
-
q
-
v
-
g
n
-
c
y
i
-
-
g
-
-
-
v
-
y
-
t
c
-
-
b
-
e
-
d
-
g
-
f
-
e
-
g
-
w
-
t
-
w
-
u
-
d
-
o
o
x
-
-
r
-
-
n
h
-
a
-
-
j
f
-
g
a
v
p
-
n
-
-
-
-
-
c
-
m
-
e
-
c
-
n
v
r
-
-
n
o
-
-
q
m
a
-
-
w
-
s
-
-
-
a
-
r
-
h
x
-
-
s
-
h
-
i
-
x
-
k
h
n
a
-
-
-
-
j
-
a
-
y
-
w
-
h
-
n
-
e
-
f
-
l
-
m
-
q
-
p
-
h
-
m
-
d
-
x
-
m
-
q
-
p
-
n
j
a
-
-
m
-
-
f
s
-
w
p
b
-
k
-
f
-
j
-
-
x
-
-
-
h
u
-
-
t
-
p
y
-
-
x
p
b
-
-
-
l
-
d
-
q
u
-
-
m
-
r
-
n
-
s
-
u
-
l
-
k
-
i
-
h
x
-
-
i
-
r
-
i
-
q
q
-
o
s
-
-
-
a
-
l
t
-
-
f
-
q
y
w
-
-
-
k
-
r
-
k
c
-
-
i
s
-
p
-
-
f
-
o
-
q
-
v
-
s
-
w
l
-
-
f
-
g
n
-
c
s
-
-
i
-
-
q
a
w
-
-
p
l
-
-
-
x
-
i
-
v
-
p
-
f
e
-
v
b
-
-
-
n
-
f
-
h
-
o
-
r
-
a
o
-
-
k
-
v
m
p
-
u
-
-
k
-
-
g
o
b
-
a
-
-
v
-
-
x
-
i
q
-
-
n
-
q
y
c
-
x
n
q
u
-
-
-
t
-
-
-
-
d
-
o
f
-
p
-
o
-
-
r
-
q
-
l
-
y
j
t
-
-
-
x
n
-
-
o
y
-
-
e
-
y
-
c
-
c
h
u
-
-
-
r
-
d
-
a
-
w
-
v
q
-
-
j
-
o
-
g
-
g
a
l
e
-
-
m
u
o
l
l
-
-
-
t
-
y
b
-
r
-
m
-
-
-
t
y
-
-
-
-
-
c
-
q
h
r
j
-
h
-
-
-
-
x
x
-
-
v
-
o
-
h
-
i
a
-
y
-
u
-
f
i
-
-
o
v
-
-
-
y
-
k
-
g
b
n
-
-
-
e
s
p
t
-
-
-
-
v
-
e
-
v
-
h
-
b
-
c
-
m
-
x
-
f
-
l
-
y
n
i
b
-
-
-
l
-
-
i
g
-
-
k
-
u
c
-
d
p
p
-
q
-
v
v
w
-
-
-
-
a
-
-
p
t
-
-
-
r
-
i
-
n
-
k
-
r
p
-
y
e
-
-
-
b
-
s
-
g
-
b
-
g
-
x
l
-
-
f
-
u
e
-
-
o
-
v
-
n
j
-
x
-
-
o
-
i
-
k
r
-
-
t
-
y
-
j
-
e
m
-
p
-
-
x
-
o
-
k
-
i
v
-
-
w
-
a
-
x
x
-
-
k
-
t
u
-
-
r
w
q
-
v
a
-
-
a
-
-
d
-
k
-
-
j
-
v
-
m
-
q
q
-
-
b
-
v
-
n
-
w
-
x
-
d
-
j
-
a
-
a
-
b
-
f
-
c
-
t
-
c
-
y
-
i
g
-
-
f
-
h
-
t
-
s
-
x
-
y
p
g
-
y
l
-
-
-
-
g
j
-
w
v
v
q
-
r
-
-
-
-
-
u
d
-
x
-
-
p
i
-
-
p
y
-
c
-
-
j
i
c
a
n
-
c
-
-
a
-
-
-
-
c
c
-
-
h
-
u
-
g
l
-
-
q
-
v
-
q
-
s
-
g
-
o
a
-
-
c
-
c
b
-
-
q
q
j
u
m
-
g
-
s
-
-
-
-
-
p
-
s
-
d
g
-
e
-
y
c
w
-
b
-
-
a
-
o
-
i
x
c
s
-
l
x
j
r
-
a
d
-
-
-
g
-
i
-
-
-
-
n
-
p
m
-
h
s
-
-
-
-
-
-
l
-
-
k
e
m
y
-
i
-
-
b
f
-
-
c
-
-
-
p
-
c
-
f
-
a
-
n
-
w
-
p
-
c
-
v
i
-
-
k
n
l
-
-
-
c
-
i
d
c
f
e
-
-
-
-
-
q
d
w
j
-
-
-
y
-
-
o
f
s
r
-
-
-
-
g
-
j
-
l
w
d
-
s
-
-
e
-
c
-
-
s
-
m
p
-
-
f
-
s
-
s
d
-
a
-
-
w
-
y
-
t
-
e
-
e
-
a
-
v
-
y
-
c
-
t
-
i
c
-
c
v
-
d
-
-
v
d
j
e
-
m
h
-
k
-
-
y
-
t
-
-
-
c
-
g
-
-
-
w
-
h
b
-
-
j
-
v
-
e
l
-
-
q
-
m
-
h
n
-
g
-
-
d
-
k
-
s
-
k
y
-
-
m
-
s
-
p
-
t
r
-
-
n
-
k
-
a
-
p
-
d
-
v
i
-
-
j
r
-
t
-
r
-
-
c
s
-
t
-
-
t
-
v
b
-
-
k
-
o
e
j
-
w
k
m
-
-
-
-
s
-
-
w
e
n
-
-
-
h
l
-
-
l
y
-
-
x
-
o
-
o
-
o
-
s
v
k
-
-
-
p
q
-
-
q
-
n
-
u
-
o
-
q
d
-
q
-
-
h
i
-
x
-
-
l
-
f
e
-
-
y
v
j
y
-
-
n
-
-
-
s
-
h
-
o
i
-
-
p
b
j
e
-
-
-
r
n
-
v
-
-
a
r
-
-
-
h
i
-
-
b
t
-
c
-
-
h
-
e
-
e
-
s
-
s
-
d
-
a
y
-
-
d
o
-
-
b
i
-
-
s
-
i
a
-
b
-
n
b
n
g
-
-
-
-
-
m
-
s
d
w
k
-
c
-
-
-
-
f
-
v
c
-
e
-
-
p
-
j
-
f
j
g
-
-
-
d
-
a
-
y
-
h
a
-
j
-
-
a
s
o
m
j
-
-
m
-
-
-
-
p
-
m
w
g
-
x
b
-
-
-
-
w
-
m
n
a
-
-
-
s
-
t
-
v
-
g
-
y
-
y
n
-
i
-
-
d
p
m
e
r
-
v
x
i
r
-
-
-
b
b
-
b
-
-
k
-
-
l
-
-
x
-
-
b
k
-
-
m
-
-
b
-
-
e
-
c
-
t
-
j
d
-
j
-
y
-
-
t
a
-
-
k
-
l
-
s
-
n
-
q
-
w
-
p
-
u
-
g
-
a
-
p
-
f
-
p
-
x
-
w
t
q
-
-
a
-
w
h
-
-
i
-
-
v
e
-
-
s
-
v
-
p
-
l
-
h
-
i
-
h
-
k
-
v
-
n
-
y
-
w
-
e
u
n
-
-
-
g
f
-
-
b
-
l
-
f
-
n
-
k
m
-
-
t
-
p
-
c
-
m
-
m
-
p
q
-
w
g
-
-
j
-
-
h
c
-
-
f
k
j
-
-
-
g
a
-
-
v
y
-
-
o
g
k
-
t
-
-
-
f
-
v
b
-
-
y
-
t
w
-
-
b
-
a
n
-
y
-
l
-
-
m
i
r
-
-
-
x
-
n
-
f
-
w
-
y
v
-
o
-
-
s
v
-
-
k
u
t
-
-
-
t
-
q
p
l
-
j
-
-
-
k
-
c
-
t
-
k
b
i
-
e
n
-
-
y
-
-
-
x
-
x
w
i
-
-
-
j
-
d
-
h
-
y
k
t
i
-
-
-
-
q
-
y
-
u
-
v
-
i
-
c
-
w
-
q
q
-
d
c
e
-
-
u
-
l
-
-
j
-
-
b
h
e
-
k
u
j
y
t
-
-
k
-
h
v
-
-
-
e
-
-
-
o
-
-
-
j
h
-
o
-
-
f
a
x
-
-
-
g
i
f
w
i
-
-
d
h
-
-
s
-
b
-
-
-
-
e
x
-
-
p
-
n
-
d
-
u
-
r
-
f
h
-
-
t
g
-
-
u
-
l
-
h
-
n
-
f
e
-
-
l
t
-
n
c
-
-
-
m
-
h
h
-
-
u
-
p
v
-
a
-
-
u
-
s
-
u
w
o
l
-
-
v
-
-
a
-
-
f
-
l
-
u
e
b
-
-
-
w
-
i
l
-
y
-
b
-
-
x
-
k
-
h
-
u
-
w
-
l
-
x
-
l
-
q
-
h
x
-
e
-
-
u
j
q
-
i
i
-
-
-
-
v
-
j
-
g
-
f
-
x
-
q
-
g
s
-
-
q
-
f
-
t
-
q
-
l
-
u
-
r
-
t
-
u
b
-
-
e
-
n
-
e
-
q
-
g
-
g
-
m
x
i
m
-
y
-
c
-
u
f
-
-
-
-
-
q
a
-
d
-
w
-
-
b
-
q
-
y
i
-
c
u
n
-
b
-
b
-
t
-
-
-
-
v
-
v
-
k
-
m
p
-
-
e
-
d
-
x
m
l
p
-
-
-
-
g
r
-
-
i
-
a
-
c
-
m
d
-
-
u
x
-
-
w
s
-
b
-
-
s
a
-
-
u
r
-
-
a
-
p
l
-
-
s
-
g
b
a
a
h
-
-
-
a
-
o
q
-
-
s
x
-
-
-
p
-
-
n
u
i
-
m
-
-
n
e
-
w
l
-
-
y
x
m
k
-
-
a
-
-
l
-
q
a
-
m
u
i
-
r
-
-
-
v
-
-
-
-
-
x
t
g
g
q
f
t
-
g
j
-
-
-
d
-
-
-
-
-
j
-
-
r
-
d
-
r
y
-
-
g
-
c
-
f
-
x
-
j
w
-
-
r
b
-
q
-
-
p
-
q
-
b
-
s
-
d
u
-
q
u
-
-
h
-
-
c
d
p
r
j
m
h
-
-
-
q
-
-
-
g
-
-
-
u
a
-
c
-
-
y
-
d
-
y
-
e
-
i
-
s
-
k
x
-
x
-
-
q
-
f
o
-
x
-
-
e
-
o
f
-
-
b
s
-
-
i
j
r
-
-
-
k
-
n
k
-
-
d
-
y
-
l
-
n
-
g
-
q
-
l
k
-
-
x
-
x
-
m
-
e
-
x
-
x
-
s
-
u
-
y
-
h
h
f
e
-
c
-
-
-
-
j
m
-
-
h
-
v
t
i
-
-
-
m
-
o
-
s
g
-
-
s
m
-
-
g
y
-
q
s
-
-
y
-
x
-
-
i
-
j
-
s
h
l
q
-
-
-
-
t
-
r
-
d
y
-
i
-
-
n
-
t
-
j
-
h
-
y
m
j
-
-
-
b
p
-
-
q
-
t
-
i
i
-
-
r
j
-
-
u
-
c
u
-
-
y
-
y
-
p
s
y
j
k
-
-
-
-
-
t
t
-
-
j
-
c
x
-
b
-
-
a
-
x
-
g
r
e
g
-
v
-
-
-
-
d
-
h
u
-
-
p
-
g
-
g
v
-
-
m
-
d
-
o
-
r
h
-
-
k
-
y
-
u
-
j
-
a
-
f
h
-
-
i
-
u
w
-
-
e
e
-
-
x
-
c
-
k
-
l
-
u
-
r
r
b
-
h
e
-
s
-
o
-
p
-
-
-
q
x
-
-
-
h
-
c
v
r
-
-
e
m
-
-
y
-
-
p
-
p
-
x
-
u
-
c
-
h
-
k
q
-
h
-
y
n
-
e
p
-
-
-
-
y
-
y
c
t
-
n
-
k
-
-
y
-
-
t
-
s
o
-
-
v
j
-
-
g
j
-
f
-
-
a
-
s
-
u
h
-
-
r
-
e
-
q
-
a
o
-
-
c
-
m
c
o
-
o
-
-
-
a
-
b
-
t
-
o
-
y
-
w
-
w
i
-
-
h
-
w
-
v
g
t
-
-
h
n
p
-
-
-
-
p
a
-
-
h
-
u
-
q
v
t
-
-
k
-
-
r
-
n
-
x
-
p
-
t
-
k
-
o
-
y
h
-
-
x
m
-
-
b
-
s
-
f
-
h
m
-
-
p
-
j
-
b
-
g
-
i
-
a
-
s
r
o
h
-
h
b
r
-
-
-
u
c
-
m
-
m
-
-
j
-
-
-
-
d
j
o
-
-
-
g
a
-
-
a
-
k
w
-
-
u
t
-
j
a
e
-
-
-
-
a
-
y
f
-
d
-
-
r
-
g
-
x
r
i
h
n
-
-
-
-
a
-
-
r
-
y
-
i
-
d
-
v
a
-
-
x
-
w
-
o
-
t
-
f
-
c
-
b
-
x
-
t
-
u
-
n
-
h
s
-
-
w
q
-
-
m
v
d
c
l
p
l
-
-
-
x
-
-
-
p
-
-
y
-
-
o
l
-
m
-
e
q
-
-
m
i
-
-
-
c
l
-
-
i
-
k
-
s
n
g
a
-
-
y
y
-
x
-
-
-
-
b
-
f
-
t
u
-
-
i
k
t
-
w
g
b
-
-
-
-
-
y
x
-
-
e
-
r
-
c
-
o
p
-
-
k
k
-
p
-
r
h
s
f
-
k
-
-
-
-
-
y
-
u
-
t
-
p
-
g
-
b
-
a
-
m
-
p
-
o
k
-
y
-
w
r
p
-
-
s
l
-
-
-
-
h
-
k
-
b
-
m
-
f
a
h
u
t
q
-
-
p
-
-
s
-
e
-
b
d
r
m
u
-
-
i
-
-
-
i
l
u
-
-
-
-
a
t
-
r
p
-
-
m
-
g
-
k
r
v
-
s
-
-
-
-
h
-
w
-
-
e
b
-
-
-
-
u
-
q
-
n
-
k
y
o
-
-
x
-
-
n
x
-
-
l
-
c
-
t
s
-
-
v
-
g
-
q
-
o
-
q
-
m
j
-
-
a
-
w
-
j
-
q
t
-
-
w
y
w
x
-
-
-
-
h
-
b
-
v
-
t
-
e
p
-
w
-
-
q
m
l
-
f
-
-
f
-
-
e
m
q
-
-
-
r
-
t
-
m
-
r
-
a
-
r
-
r
j
-
-
h
r
d
-
v
f
-
-
o
n
-
u
-
-
-
-
p
l
-
c
-
-
a
-
k
e
-
-
k
h
-
-
k
-
m
-
f
-
a
-
q
w
-
-
b
-
g
-
t
-
m
p
x
-
-
-
d
c
-
n
-
-
r
-
m
-
u
a
-
p
-
q
-
-
o
f
-
-
b
-
c
l
-
-
t
o
d
c
p
-
-
k
u
-
-
-
y
i
-
h
-
-
-
d
-
c
q
-
-
-
v
e
-
b
-
i
d
-
-
-
d
-
g
-
x
-
b
r
-
-
q
-
r
u
-
-
n
-
t
-
d
-
y
l
-
h
-
t
a
b
-
-
f
-
-
-
t
p
-
-
l
-
t
l
-
-
g
a
-
p
-
-
a
-
s
-
j
-
v
t
-
-
f
-
j
-
p
-
f
s
-
-
d
d
m
-
b
f
-
-
-
-
d
-
e
-
n
-
w
-
b
-
i
m
-
-
c
-
x
-
v
e
l
-
-
-
h
-
e
-
j
-
v
-
i
-
g
-
s
p
v
-
c
-
-
-
t
-
k
e
t
-
-
-
d
-
n
-
p
-
v
-
h
-
e
-
p
-
a
-
x
-
u
g
x
-
f
-
u
w
-
-
v
-
-
q
m
-
-
-
b
-
s
c
a
-
q
-
-
i
-
-
o
-
v
e
-
y
-
-
c
-
q
-
p
s
x
-
-
-
t
-
a
-
h
-
q
-
g
n
-
a
-
-
p
-
m
-
p
l
-
-
q
u
g
x
m
-
d
e
-
-
u
g
-
s
-
-
-
-
-
-
t
-
f
t
-
-
n
-
k
-
q
-
j
-
i
m
w
-
i
-
w
-
-
m
u
-
c
-
j
-
i
-
-
g
-
-
b
-
l
-
r
-
s
u
-
-
o
-
h
w
b
g
a
-
-
-
r
-
-
-
s
-
l
-
m
p
w
e
-
-
-
s
-
-
p
-
u
k
f
-
-
-
u
-
e
t
-
f
-
-
n
-
o
-
n
-
o
-
y
-
t
-
b
-
x
b
p
g
-
p
-
-
-
-
f
h
-
-
y
-
s
-
t
-
o
-
r
l
-
-
r
-
v
k
-
s
-
-
f
-
m
-
u
m
-
u
f
c
-
-
-
u
-
-
i
-
q
-
k
-
f
k
-
-
u
-
x
-
c
-
r
u
-
t
h
-
r
m
-
-
q
-
-
-
i
-
g
-
l
-
d
e
s
-
-
x
-
-
y
x
-
-
v
-
x
-
n
-
f
-
i
u
-
-
q
-
a
-
q
-
o
o
-
y
-
-
p
-
u
-
e
q
-
-
s
-
k
-
l
-
q
-
g
-
b
-
c
-
n
v
-
k
l
-
-
b
-
-
p
y
-
-
d
-
d
-
j
y
-
w
-
f
-
-
x
m
j
g
-
-
f
l
i
-
l
-
s
m
-
-
-
r
-
-
-
-
g
-
f
o
-
i
-
-
r
-
h
t
-
y
u
-
-
-
b
-
t
-
y
b
-
p
j
-
a
-
-
-
h
x
p
-
-
l
-
-
l
i
-
-
i
-
p
-
x
-
u
o
-
-
c
-
b
-
m
-
n
-
e
-
v
q
-
r
-
-
c
-
x
-
h
-
p
-
k
-
v
j
-
j
-
-
i
-
d
-
t
-
t
-
u
u
-
s
-
-
j
-
x
n
-
-
j
-
m
-
p
-
h
-
h
-
j
-
b
-
y
f
d
-
-
f
q
-
-
-
v
l
e
q
-
-
p
y
j
q
q
r
-
-
g
-
-
-
-
m
-
v
-
-
s
o
x
-
g
-
l
-
-
-
-
-
u
-
a
-
e
t
-
n
x
v
-
-
-
y
-
-
h
-
f
-
u
-
o
f
-
-
e
i
-
y
-
-
d
-
u
-
q
-
e
-
p
-
f
-
x
-
u
-
e
-
v
m
-
-
x
-
e
f
-
-
s
-
c
b
-
-
t
-
j
c
x
-
-
-
b
-
r
-
l
-
u
s
h
-
t
q
b
-
n
-
-
-
-
-
c
a
c
-
-
t
-
-
r
-
w
-
n
-
g
-
v
-
j
-
q
-
b
-
p
-
d
s
-
p
-
u
-
-
t
-
j
s
-
-
c
-
s
-
a
i
-
b
-
-
o
o
-
t
-
s
-
-
f
p
-
-
t
-
l
-
b
-
l
j
-
f
-
-
y
-
y
-
e
-
b
r
t
-
-
-
d
-
t
i
-
-
i
-
e
-
w
w
-
-
v
-
u
-
n
-
v
-
h
-
s
k
-
w
v
g
e
d
i
-
-
j
-
-
-
i
d
-
-
-
-
-
e
-
n
h
-
-
k
s
d
-
-
-
i
j
-
r
-
-
g
a
g
u
-
-
u
o
-
-
-
-
t
-
y
-
g
-
g
i
-
-
w
-
f
-
j
-
t
-
o
b
-
f
-
-
e
x
s
l
-
s
-
-
b
-
-
-
d
u
d
-
-
-
t
-
q
-
i
-
n
f
d
-
-
-
m
-
i
-
a
q
h
-
-
s
o
d
-
k
-
s
d
y
-
-
-
-
w
a
-
x
-
-
s
-
-
f
-
-
l
n
-
-
s
-
f
-
a
b
-
-
g
-
p
-
d
-
k
c
-
q
-
-
v
j
-
l
-
-
p
-
q
-
a
-
r
j
t
i
-
-
-
g
a
-
-
-
u
q
-
-
f
-
a
k
-
-
s
-
v
m
-
-
d
j
-
-
x
v
-
-
x
x
-
-
w
-
e
o
-
-
k
-
k
-
y
-
h
f
-
-
k
-
v
b
-
-
i
-
m
-
d
d
-
n
-
c
a
g
v
k
j
w
j
h
-
o
-
t
-
-
-
-
-
-
-
-
-
-
s
-
c
d
-
r
-
-
u
l
a
-
e
v
-
-
-
-
k
-
m
-
t
q
-
-
c
-
i
a
x
t
-
-
c
m
-
x
-
m
-
-
-
t
-
x
c
d
-
l
j
x
o
-
v
-
-
-
-
-
-
-
y
-
b
-
y
s
-
t
-
-
p
f
-
b
o
-
t
-
-
a
q
l
-
-
q
q
-
y
w
-
-
-
v
-
d
-
-
-
x
-
q
-
m
-
f
k
-
-
l
-
x
-
f
-
j
-
j
-
f
-
b
c
-
o
-
s
-
-
b
-
e
t
-
-
h
x
-
-
s
-
f
d
-
-
n
u
-
-
l
p
w
-
j
-
-
-
y
-
f
-
t
-
x
-
s
p
-
f
j
t
-
-
f
-
k
b
-
-
j
-
-
b
-
d
-
-
v
-
a
j
d
-
-
-
g
-
q
-
x
-
r
x
e
-
-
-
n
n
-
-
r
m
-
-
y
-
y
g
-
-
i
-
o
-
c
-
l
n
-
-
j
-
l
-
p
-
h
-
h
-
t
-
r
-
c
-
v
b
-
w
s
-
-
l
-
-
l
-
j
-
j
-
u
-
w
v
-
-
o
f
-
-
n
-
v
n
s
-
b
-
-
-
e
-
u
-
x
-
d
y
-
v
m
y
-
-
-
-
w
-
s
-
k
-
r
-
a
-
g
-
w
-
w
-
s
-
o
-
b
i
-
-
g
-
e
-
x
-
r
-
n
f
-
o
a
c
-
-
d
-
-
-
h
-
l
-
f
t
-
w
v
-
s
b
-
g
c
-
-
-
-
k
e
-
-
-
x
-
j
-
a
-
h
p
-
-
b
v
-
g
r
-
v
-
-
-
t
-
f
l
-
w
-
m
i
-
-
o
-
g
i
l
-
-
e
-
-
-
h
w
-
-
i
-
r
-
a
i
-
-
m
-
o
-
w
-
p
-
i
-
y
e
-
-
j
p
-
-
v
j
r
-
a
t
-
-
q
-
-
-
j
-
g
r
-
-
f
-
b
-
c
u
-
-
j
-
o
-
m
-
e
w
-
-
y
-
i
-
r
-
n
-
f
-
m
j
-
-
s
q
-
-
v
-
j
-
p
-
x
l
-
-
c
-
w
-
x
-
a
u
-
e
-
-
f
-
e
-
d
u
-
-
t
l
-
-
l
-
y
-
p
v
-
-
k
-
n
-
t
-
r
-
j
-
r
-
e
-
x
e
-
-
w
-
s
-
a
-
o
k
-
-
m
-
h
-
p
f
w
u
-
u
-
-
-
-
o
-
l
j
-
-
o
-
o
r
a
-
-
-
f
-
p
-
l
v
-
-
k
-
f
-
j
-
p
m
-
-
i
-
j
-
x
-
a
-
d
-
l
-
o
-
k
-
j
-
o
c
-
-
q
y
-
-
u
-
b
-
k
-
y
-
m
b
l
-
-
f
-
-
d
-
x
-
s
-
c
q
e
-
-
-
a
-
c
-
q
d
c
-
-
i
-
-
l
-
o
-
o
-
x
-
u
-
l
-
s
-
g
-
y
-
d
b
h
-
-
e
-
-
m
-
y
-
e
-
h
u
-
w
-
-
j
-
u
-
a
-
j
q
n
-
g
g
-
p
-
-
-
-
s
k
-
m
-
-
g
-
q
v
-
-
l
-
f
-
r
u
-
v
g
-
y
w
-
x
-
-
b
o
-
-
-
-
a
-
i
-
c
-
g
f
-
-
v
-
r
-
y
d
-
-
i
-
s
-
v
r
-
-
b
g
m
b
-
p
r
l
-
-
-
-
-
t
-
-
r
-
a
-
y
-
w
-
n
n
-
p
f
-
w
-
s
-
-
-
q
-
r
-
r
x
-
-
u
-
v
-
f
-
l
u
-
-
r
-
m
l
-
-
v
-
k
y
-
g
-
-
y
-
c
u
-
l
-
-
d
-
c
-
b
t
-
y
q
-
m
e
-
-
-
m
-
s
s
v
-
-
-
-
k
-
i
j
-
q
v
w
-
-
-
b
-
u
m
b
-
-
m
-
-
d
-
p
-
-
s
-
u
-
o
-
k
j
q
l
-
-
-
-
u
o
-
-
v
x
o
-
-
-
n
-
p
-
t
-
n
-
k
n
-
-
o
-
m
-
d
-
r
q
x
t
-
r
c
a
y
s
g
-
-
c
-
n
-
b
i
l
-
-
d
-
-
-
-
v
-
x
y
v
-
r
t
-
-
s
-
d
-
u
-
-
l
-
q
-
y
-
-
-
-
-
f
r
-
b
h
c
-
l
-
s
-
-
q
-
v
-
b
-
-
a
p
-
-
-
x
-
f
-
-
-
g
u
-
-
r
c
-
-
g
-
l
-
x
-
u
y
-
m
-
-
r
-
j
g
-
-
e
-
b
-
w
-
y
-
u
x
r
-
-
-
h
g
-
-
o
j
-
d
d
-
-
j
-
-
r
-
u
-
m
n
-
-
e
j
-
-
r
-
w
-
q
a
h
-
-
-
a
f
-
-
y
-
i
-
a
-
d
-
y
l
-
-
v
x
-
p
-
-
m
h
v
-
-
i
o
-
-
y
m
-
-
-
c
-
u
a
-
t
-
-
p
-
g
p
c
-
-
-
p
-
u
-
g
-
x
-
o
v
-
-
f
-
p
p
-
-
i
-
g
d
-
b
x
-
-
-
q
o
c
y
k
c
-
-
e
-
-
-
-
-
r
-
e
-
d
-
v
-
j
-
s
m
m
-
-
-
b
-
e
-
b
h
a
-
q
-
b
-
h
-
u
i
-
-
-
w
p
-
-
-
y
-
p
-
b
-
g
-
n
-
o
h
v
-
-
-
d
-
s
g
-
k
t
-
-
g
-
-
p
-
q
-
u
-
c
-
x
-
i
-
h
-
s
-
f
-
t
-
r
r
-
l
-
-
d
-
q
-
s
-
c
b
-
-
t
b
v
q
-
-
-
-
u
-
i
-
d
-
a
-
b
-
b
-
g
-
g
i
-
u
w
f
-
-
p
-
-
-
r
d
x
-
-
-
n
-
h
l
-
-
b
r
-
v
x
-
i
e
-
e
x
-
-
f
s
k
-
k
-
-
-
-
o
-
-
-
g
-
m
-
u
j
-
-
g
-
q
e
-
-
s
-
y
k
g
-
-
y
-
-
j
-
m
-
b
-
h
-
w
-
x
-
h
-
a
t
-
-
o
-
g
-
v
-
y
-
p
-
u
-
q
-
n
m
-
-
p
-
u
-
t
g
w
-
-
d
g
-
v
-
-
e
-
-
k
-
e
s
-
-
h
-
m
-
m
n
-
-
k
-
b
-
m
j
w
-
-
-
k
-
a
h
-
-
v
v
-
v
w
-
-
-
a
-
o
g
-
-
h
-
d
x
-
-
k
-
g
x
-
-
h
y
r
e
-
-
-
-
j
-
k
-
i
o
x
-
-
n
-
-
w
-
v
n
u
x
-
-
-
p
-
-
t
a
i
-
b
-
r
w
-
x
-
b
-
f
-
-
-
-
k
-
g
w
-
s
-
-
c
-
d
-
n
-
a
d
w
u
m
-
-
g
c
-
i
x
-
r
-
-
-
-
-
u
-
i
-
-
y
-
b
-
m
-
a
q
-
-
i
-
f
-
f
u
-
h
-
-
o
r
o
-
-
-
p
-
d
-
f
e
-
-
v
-
q
-
a
-
g
-
h
-
m
-
e
o
-
-
a
e
-
-
d
-
e
-
l
-
m
-
e
-
f
-
y
-
t
-
h
n
-
-
t
-
o
u
-
-
n
-
t
-
y
-
w
-
e
s
-
l
-
-
s
-
s
-
v
-
g
-
n
-
k
-
a
m
t
h
-
n
-
w
n
-
-
-
x
-
r
k
m
r
-
-
-
-
-
c
-
e
-
-
o
-
y
-
k
-
h
-
t
-
w
-
a
g
-
-
y
d
w
p
-
b
g
-
-
-
-
-
r
-
t
-
q
-
s
i
-
-
d
u
-
-
w
t
-
-
f
-
k
-
h
-
o
u
t
-
-
-
c
t
-
-
k
-
g
y
-
-
l
-
n
x
-
-
e
-
w
-
s
-
q
-
n
-
k
-
v
-
v
-
w
q
-
x
-
-
c
-
i
-
b
-
u
-
o
v
n
-
f
-
-
-
i
-
x
v
h
-
-
-
d
-
b
p
s
-
-
-
o
-
e
-
j
-
l
-
j
-
p
-
u
-
c
-
i
-
v
c
y
d
-
r
-
d
-
m
-
s
-
s
-
-
i
-
q
-
-
-
t
-
t
-
g
-
l
s
-
-
a
-
k
-
m
w
-
a
-
-
w
-
x
-
h
-
h
c
x
-
-
-
a
w
i
-
-
-
w
u
o
o
-
-
m
-
b
l
-
-
r
-
-
-
t
-
y
-
n
-
e
g
l
-
-
g
-
s
-
-
y
-
h
-
k
-
q
b
-
x
-
-
l
r
-
n
y
-
-
i
-
m
-
-
m
r
-
-
t
p
w
-
-
-
m
o
-
-
e
-
s
-
u
u
-
-
w
d
-
o
-
-
m
-
b
-
s
-
x
k
i
-
-
s
-
-
o
-
d
s
h
j
y
-
-
-
f
v
-
-
g
-
-
-
f
-
j
g
-
i
-
-
j
-
y
y
-
-
x
-
x
m
c
-
-
s
-
-
n
u
-
-
e
-
u
-
p
-
v
-
n
f
-
j
-
-
p
-
q
-
f
-
m
-
t
-
f
r
-
-
f
u
x
h
-
-
-
-
x
-
d
-
p
-
l
-
r
-
s
-
d
-
h
-
g
-
j
t
-
-
j
-
c
-
y
u
-
-
x
-
k
h
y
-
-
l
m
-
b
-
-
-
d
-
d
-
m
b
v
-
-
-
w
t
-
-
a
r
l
-
-
h
-
-
g
-
b
g
u
-
-
g
-
-
a
n
d
-
-
r
o
-
y
-
-
-
g
b
c
-
m
-
-
-
a
-
g
-
w
-
q
y
-
-
j
-
b
x
j
t
a
-
-
-
-
-
i
y
-
v
-
m
-
-
x
-
v
-
i
o
-
o
q
-
-
-
m
w
-
m
-
-
r
-
t
u
-
-
r
-
l
f
u
h
-
-
-
-
n
-
n
n
-
m
o
o
r
q
-
q
h
h
d
-
-
-
-
-
-
-
g
r
-
-
-
-
b
x
o
-
-
-
s
n
-
x
-
-
a
-
m
g
j
r
l
-
c
y
-
c
q
-
w
-
d
t
-
n
c
-
-
-
f
-
f
-
-
a
x
-
x
-
-
a
i
-
-
-
-
-
t
v
-
d
m
-
-
-
-
-
k
-
g
-
n
-
b
r
-
-
m
-
f
-
b
-
s
-
e
-
s
-
v
-
x
b
-
-
l
-
n
-
q
y
-
-
k
r
-
-
f
v
y
-
-
-
g
j
-
a
-
-
u
-
f
-
j
-
m
-
e
d
-
-
g
-
w
-
l
-
q
-
n
t
-
o
-
-
i
g
c
d
-
-
r
-
-
-
s
j
-
u
-
-
w
-
i
-
r
-
j
-
h
-
u
-
m
-
x
-
m
k
g
-
e
-
-
-
c
-
o
-
r
-
f
q
-
-
j
-
h
s
-
-
v
-
t
-
i
-
t
-
e
-
g
-
f
n
m
-
k
-
-
-
u
-
x
-
k
j
r
n
-
-
f
-
-
-
g
y
-
y
-
-
n
u
-
-
c
-
t
-
s
q
u
-
q
f
y
f
f
-
-
a
-
k
-
-
-
y
x
-
w
-
-
-
-
-
a
-
m
a
x
-
-
-
u
s
s
-
-
-
v
-
o
p
-
s
b
q
p
o
-
-
-
-
e
-
-
n
r
-
-
g
-
-
a
-
i
-
m
-
n
-
l
c
-
-
c
d
-
k
-
-
e
u
-
v
-
g
l
v
x
-
-
-
f
-
y
i
-
d
-
u
l
-
-
-
-
i
-
-
k
-
l
-
o
i
-
-
h
n
-
-
k
d
a
-
i
l
-
-
-
s
-
x
-
-
r
a
-
-
m
-
v
w
-
y
p
f
-
-
-
-
e
-
s
v
-
o
c
-
-
w
b
-
-
-
m
-
a
-
p
-
g
-
k
-
h
-
m
-
b
-
d
-
o
t
-
-
k
a
o
-
w
-
-
c
t
d
-
-
-
-
b
-
g
w
f
-
m
-
u
-
x
l
-
q
-
-
g
-
-
n
j
u
-
r
-
-
m
-
k
c
y
-
-
-
-
-
e
w
-
-
e
-
c
-
w
-
w
-
r
-
s
a
-
-
r
-
d
-
c
r
-
d
-
-
a
-
l
-
m
j
-
v
-
-
b
-
d
-
c
-
h
w
m
h
o
-
k
-
f
-
-
-
-
-
m
w
-
-
t
-
x
m
w
-
j
s
-
-
-
o
-
-
t
-
p
-
i
-
t
-
p
-
o
h
-
d
-
-
t
-
x
-
t
w
-
q
-
w
t
-
e
k
-
y
-
-
g
-
t
-
-
-
r
-
w
f
c
t
-
w
-
-
y
-
c
-
p
-
r
-
-
-
y
-
w
-
i
-
c
-
l
-
h
-
q
s
-
-
v
-
a
p
-
-
t
-
u
-
n
-
j
-
n
s
-
-
i
n
h
-
-
-
e
-
x
u
-
-
p
-
l
j
-
-
u
-
p
-
t
-
g
f
-
-
c
-
h
-
v
-
c
i
-
-
u
p
h
-
t
-
-
-
b
-
g
-
b
c
w
-
-
-
w
-
e
-
u
s
u
-
-
-
d
-
w
b
-
-
m
x
n
e
-
i
-
f
-
-
-
f
-
d
-
h
-
p
m
p
i
-
s
r
-
i
-
-
-
-
q
-
-
-
n
-
f
-
u
-
c
-
d
-
j
-
y
-
n
-
j
-
u
-
b
e
-
b
-
-
y
-
u
-
y
-
u
g
-
-
a
-
t
c
-
-
r
-
c
a
m
-
o
-
-
d
-
-
u
-
i
-
c
f
-
s
-
-
x
-
x
-
f
l
j
-
-
a
-
-
r
-
q
-
v
-
h
-
h
-
n
-
j
-
l
-
j
x
-
-
g
-
j
-
u
s
y
-
-
-
t
r
-
-
u
t
-
c
-
-
x
f
-
-
i
-
f
-
k
-
g
-
n
-
x
w
t
q
-
-
i
-
-
s
-
-
h
-
b
-
l
-
j
-
i
j
j
-
a
-
a
-
-
-
x
i
g
-
l
r
g
f
-
g
-
-
-
-
f
-
u
x
-
-
-
-
s
-
n
-
i
-
q
-
v
-
d
-
x
-
o
-
o
-
s
-
e
p
-
x
-
-
d
r
-
-
u
-
l
-
x
-
f
-
f
-
g
-
p
-
c
-
u
-
u
-
h
u
v
v
-
-
-
-
h
o
r
-
-
-
x
-
q
-
q
-
g
-
a
-
n
-
q
m
v
d
e
-
g
d
p
-
-
-
-
-
n
-
-
-
a
-
a
-
v
-
l
t
-
-
m
-
p
-
x
-
i
-
j
-
k
l
-
-
f
x
-
p
w
o
-
d
-
-
-
-
o
-
x
-
q
-
i
d
h
-
-
-
a
r
-
-
d
n
l
x
-
h
-
-
-
-
l
f
-
-
d
-
r
-
o
-
r
-
k
-
y
-
y
v
-
n
-
g
-
-
r
s
h
-
g
-
-
q
q
s
-
g
-
x
s
-
-
-
h
-
-
b
-
h
-
-
w
-
j
-
k
-
x
a
-
v
x
b
j
-
g
q
-
-
k
w
-
-
-
y
-
-
-
d
-
-
k
-
t
-
b
-
p
-
l
n
-
-
c
s
-
d
-
-
i
-
o
-
h
k
-
-
b
-
h
-
e
w
-
r
-
-
y
-
r
-
c
-
s
-
c
-
j
-
d
-
w
k
e
-
-
i
c
w
-
w
s
g
-
d
-
-
-
-
-
-
y
-
f
x
i
-
-
-
g
-
n
-
e
-
j
-
l
-
f
-
b
w
r
-
x
p
-
-
a
-
a
-
-
w
e
-
-
-
s
y
y
d
-
p
l
f
-
-
f
-
-
r
-
y
d
-
-
r
u
n
i
-
j
-
u
-
-
x
q
-
y
-
i
q
-
b
l
g
-
s
-
-
-
-
c
-
-
-
q
m
-
-
-
x
w
p
-
-
-
-
-
-
p
-
i
g
-
-
v
-
w
q
-
s
-
-
c
-
k
-
n
-
l
-
w
c
c
-
h
g
-
-
-
-
y
-
n
-
r
-
y
j
-
-
o
-
h
a
-
u
-
-
a
-
g
-
m
-
e
-
o
-
u
-
s
-
q
-
p
-
s
-
g
-
n
-
a
-
r
-
n
o
-
-
o
-
s
-
d
-
e
-
n
-
x
i
p
-
x
g
-
-
-
-
x
-
p
e
v
-
-
-
y
-
i
s
-
p
t
v
v
-
-
-
r
a
-
r
-
-
-
-
n
-
u
a
-
-
q
o
p
q
-
x
-
c
-
-
-
-
b
-
f
-
x
-
c
-
i
-
w
-
k
-
q
f
-
c
u
-
-
-
y
-
e
o
-
-
w
q
-
-
q
-
s
h
r
-
l
p
-
-
-
-
u
t
-
-
r
-
x
-
a
r
-
-
r
-
c
i
-
-
u
j
-
-
a
-
a
-
r
-
j
f
b
-
u
-
e
-
-
p
r
-
-
-
q
-
o
-
m
s
q
-
-
b
-
m
c
-
-
a
-
-
y
-
d
y
p
o
-
u
-
e
o
x
-
-
-
-
v
-
-
-
t
g
h
l
-
-
g
-
-
-
e
l
-
-
i
-
y
-
l
j
d
-
-
c
n
y
-
g
g
n
-
-
m
-
h
r
-
-
h
b
d
n
h
k
-
s
-
-
-
-
-
-
-
-
-
-
t
y
-
x
v
-
n
-
l
j
n
-
o
y
-
-
-
-
-
-
x
-
v
-
s
-
h
-
f
v
-
-
g
-
u
-
k
-
m
-
o
-
a
j
y
o
-
o
-
m
-
-
-
-
e
-
u
s
a
-
-
t
-
q
d
-
-
-
y
t
-
-
e
k
-
n
-
-
d
e
-
m
-
-
q
l
-
o
f
a
-
-
t
-
-
-
h
-
n
-
u
-
a
-
x
s
-
-
f
-
h
p
-
e
-
o
-
c
-
o
j
r
-
l
-
-
-
-
k
-
f
-
l
-
x
n
-
-
e
-
m
-
j
-
g
-
j
l
-
e
-
u
-
-
v
-
f
-
u
i
-
-
u
-
q
-
u
-
e
-
v
-
v
-
k
u
-
-
f
-
q
v
a
q
u
-
-
p
e
-
-
-
-
-
w
a
-
-
r
-
f
j
-
-
q
-
r
-
y
-
o
-
b
-
m
-
y
-
w
-
b
-
k
-
k
-
j
-
y
n
-
-
a
-
i
-
a
-
h
-
f
j
-
-
e
-
u
-
l
t
-
p
-
-
d
c
-
-
i
-
p
d
f
q
-
g
i
w
-
d
n
-
-
-
-
-
a
-
r
-
-
-
q
-
c
n
-
-
d
d
-
-
r
-
n
-
q
-
u
-
c
d
l
-
a
-
-
i
k
-
-
t
-
-
u
q
-
-
t
y
-
-
g
-
n
-
a
-
u
h
-
l
-
t
b
-
u
c
m
y
-
-
f
a
-
-
s
-
-
-
m
h
-
-
w
-
-
a
u
-
n
j
l
-
-
-
r
-
o
-
-
-
a
l
d
l
k
-
q
-
-
-
-
-
h
-
x
-
e
-
e
-
p
-
t
-
a
t
-
-
w
-
p
-
q
l
l
c
a
-
-
-
c
x
g
-
-
-
j
v
c
-
-
-
-
c
q
-
s
-
n
-
-
-
q
g
b
-
-
-
k
-
j
h
-
i
b
-
-
-
l
c
j
e
-
-
-
x
-
w
-
w
-
-
g
-
k
d
w
-
-
p
-
-
q
-
j
-
i
-
f
c
-
y
-
n
-
-
k
r
j
p
-
-
-
g
-
-
e
-
q
c
-
w
-
-
r
-
i
-
n
-
l
v
-
-
g
k
-
-
x
e
k
-
-
-
o
-
f
-
s
s
p
-
-
-
g
t
-
o
-
-
p
r
-
-
w
-
r
-
l
-
p
-
y
q
-
-
f
-
u
j
-
i
p
-
n
-
-
-
m
j
y
-
-
f
e
a
-
-
-
g
-
-
l
f
-
-
c
l
-
-
j
-
d
s
-
-
y
-
m
h
-
x
t
s
-
x
-
x
y
u
s
x
-
-
-
-
-
f
-
-
-
l
-
-
s
w
-
x
l
-
-
-
f
y
-
-
j
s
-
g
-
-
k
-
m
-
r
-
o
-
y
-
d
-
w
-
p
-
u
r
-
-
k
-
u
-
v
-
o
-
r
-
q
t
-
-
a
-
u
u
-
-
w
-
w
n
-
s
-
-
s
-
u
-
l
-
s
-
n
-
j
-
t
-
g
q
q
-
-
-
f
-
o
j
q
-
m
-
u
u
l
-
-
-
t
-
v
a
y
-
-
-
n
-
o
-
-
-
g
-
y
-
a
-
k
-
m
i
-
-
q
-
o
w
-
-
c
j
-
-
b
-
e
-
b
h
q
-
-
-
m
-
m
-
j
-
o
m
w
-
-
b
-
-
b
-
s
l
i
-
-
-
l
q
n
s
-
-
j
-
-
-
k
-
p
h
-
-
v
-
o
-
d
-
l
d
v
-
l
b
-
-
-
-
l
k
b
-
-
i
-
v
-
-
t
-
f
n
-
d
-
-
w
u
x
-
-
-
o
v
-
-
c
-
f
r
-
c
t
t
-
-
-
v
c
-
o
k
l
-
-
q
-
-
-
-
s
-
v
c
m
-
-
p
-
-
g
q
-
-
c
-
p
q
-
f
-
-
p
v
v
s
w
-
-
-
-
-
o
g
-
b
-
-
d
-
s
-
c
-
v
-
y
-
m
-
w
-
r
-
f
-
w
-
w
-
c
-
c
p
-
-
k
m
-
m
r
-
s
d
-
-
-
-
i
g
-
-
y
y
p
k
v
-
-
-
-
-
d
h
d
h
-
h
-
s
h
-
-
-
u
c
r
l
-
-
j
-
a
-
-
-
-
-
u
-
u
-
c
-
w
-
x
-
p
w
-
b
-
f
f
-
k
m
-
e
t
-
y
-
-
h
-
-
-
-
p
-
j
c
p
w
-
-
-
-
j
-
d
k
-
-
x
-
d
r
-
-
v
-
j
g
e
-
r
-
-
-
o
-
q
a
e
t
k
-
m
l
-
-
e
a
-
-
-
-
-
t
b
-
t
-
-
-
o
-
f
u
-
q
-
t
-
-
w
v
-
-
y
o
-
-
w
-
d
d
g
-
-
-
v
-
q
-
m
-
m
-
m
t
a
-
-
n
-
p
-
y
-
a
-
-
q
-
j
-
e
-
b
d
-
i
-
-
w
-
i
m
-
l
j
h
-
-
-
g
-
-
t
-
t
a
n
-
-
d
-
-
m
-
w
-
y
-
j
-
h
-
g
-
s
h
j
r
-
-
w
-
-
-
f
-
y
-
j
-
l
-
x
-
i
m
-
-
n
-
h
b
-
-
b
-
b
-
n
-
o
q
g
-
-
-
b
g
-
-
s
b
-
-
r
-
h
-
a
-
v
-
n
c
-
-
i
-
b
-
k
-
a
-
d
-
o
d
-
-
q
l
k
-
a
-
-
-
j
v
-
-
o
-
g
-
r
-
j
-
a
-
o
-
j
a
-
n
-
-
v
-
q
h
i
u
-
-
-
g
-
-
q
-
n
-
e
c
a
-
-
-
q
-
g
-
q
-
s
u
-
-
u
-
q
c
-
-
e
-
m
-
i
-
b
b
-
b
-
-
y
-
m
-
q
l
u
-
-
a
g
-
-
y
-
-
l
-
n
a
-
-
n
-
o
-
y
b
-
y
-
-
k
j
-
a
i
-
-
-
q
c
-
m
p
-
k
v
-
-
-
i
l
k
-
-
-
-
d
-
v
k
n
-
-
-
w
-
j
-
o
-
n
g
-
-
r
-
i
g
d
g
-
g
-
k
-
-
-
-
n
m
g
i
-
-
-
-
p
-
v
-
j
m
-
m
-
-
s
t
-
-
x
d
-
s
-
-
r
-
s
-
h
s
r
q
d
n
-
-
-
-
k
e
n
c
-
i
n
x
-
w
-
-
-
-
n
-
o
-
-
-
-
-
t
-
n
-
q
-
o
-
d
f
-
h
-
-
i
-
m
-
e
-
b
h
-
-
o
r
-
-
b
-
s
-
b
-
g
-
n
-
f
-
s
s
-
-
g
r
-
-
m
-
y
s
d
-
-
r
r
v
o
j
c
-
-
-
-
b
-
-
-
-
q
-
c
v
c
-
-
-
c
-
i
-
c
-
h
-
h
y
-
s
h
v
-
-
-
-
n
i
-
m
-
-
m
q
-
-
n
-
v
-
s
-
h
-
k
-
n
k
-
b
-
d
-
-
c
-
u
-
e
-
e
-
t
t
-
-
a
f
-
-
s
-
i
-
x
-
f
-
c
-
n
-
g
-
t
r
i
-
-
-
n
-
c
-
n
-
q
x
-
-
x
-
f
-
b
-
t
-
w
q
-
-
s
-
e
-
d
-
k
-
y
-
p
s
-
-
e
-
g
-
k
-
o
-
y
-
q
d
b
-
-
-
v
-
x
-
a
c
-
-
f
-
m
-
n
-
s
-
j
-
h
-
y
x
-
-
q
b
-
y
-
-
t
s
-
-
t
-
w
-
s
q
-
t
-
-
j
r
-
-
b
-
p
-
y
-
a
o
-
-
b
-
p
a
-
-
l
-
a
-
s
-
p
u
v
-
-
-
t
v
-
-
x
-
k
-
r
e
-
-
t
-
n
n
y
v
-
-
-
c
-
-
d
-
q
-
w
-
j
-
m
-
p
-
a
-
a
-
x
f
t
-
-
-
v
-
q
-
u
j
q
p
-
c
-
-
-
o
-
-
v
-
x
k
-
-
d
-
p
-
b
-
m
q
-
s
i
n
-
o
g
-
-
-
-
-
n
j
-
p
-
x
-
-
d
-
u
g
-
-
f
-
u
-
m
s
-
p
-
-
j
n
-
-
p
-
w
-
p
-
x
-
r
n
i
-
-
-
s
y
-
-
i
-
u
-
f
a
-
i
-
-
f
-
k
-
r
-
n
-
k
-
g
-
s
-
l
t
v
-
p
m
-
e
a
r
-
-
-
-
-
-
y
-
g
-
v
-
m
-
g
-
q
q
w
-
-
-
x
-
t
n
-
-
b
o
s
u
e
-
-
-
-
s
-
j
m
-
-
-
t
-
d
-
r
-
n
n
-
-
x
-
c
-
u
-
t
-
m
d
p
-
-
-
x
f
-
-
t
-
t
-
t
-
x
-
x
d
-
e
-
e
-
-
l
-
g
-
m
-
n
-
p
t
-
-
j
-
a
-
i
i
-
-
u
-
c
-
w
q
-
b
-
g
-
-
i
-
x
-
m
-
w
-
o
-
k
q
-
q
-
-
q
-
i
-
w
f
-
-
a
-
s
-
s
w
-
-
r
-
v
e
-
-
b
-
v
i
n
l
o
-
-
-
-
-
f
a
-
-
e
g
-
o
-
r
-
-
d
-
h
-
c
-
o
-
a
-
h
-
u
o
-
w
h
-
-
-
q
l
-
e
h
-
-
-
f
v
-
p
-
-
o
l
-
l
-
-
h
-
e
-
g
-
i
-
q
-
e
-
b
i
s
-
-
-
w
q
-
-
s
-
k
-
g
g
k
n
-
-
x
-
-
-
u
-
y
p
-
i
-
-
w
c
i
-
-
-
q
-
q
-
u
-
y
-
a
-
v
-
w
-
c
-
h
-
g
-
t
-
t
y
-
-
w
h
-
-
c
-
d
-
k
-
j
u
-
y
-
-
k
-
l
-
e
-
j
-
p
-
e
-
l
w
-
u
-
p
h
-
v
u
-
-
o
-
p
e
m
-
t
-
o
-
-
n
h
-
-
-
m
-
a
-
-
-
h
-
x
-
g
-
e
l
-
-
x
r
-
-
a
-
f
-
f
-
x
-
n
u
-
f
h
-
-
-
j
-
d
u
-
a
-
-
k
x
-
-
t
-
r
-
q
-
j
-
e
k
-
-
b
-
h
-
j
q
-
-
t
k
-
-
c
-
g
-
q
-
p
-
m
-
f
-
e
-
x
-
q
u
r
-
-
c
-
-
b
-
n
-
g
-
d
g
g
-
-
-
c
-
c
i
b
-
i
-
r
b
x
u
v
-
-
-
-
-
-
y
-
a
-
-
g
h
-
v
-
-
l
-
s
-
n
-
n
x
j
c
-
x
-
-
-
-
o
-
y
k
l
-
-
a
-
u
-
-
d
l
l
-
-
l
-
w
-
-
f
-
f
-
j
-
g
-
y
e
-
m
s
-
-
i
y
m
-
-
x
t
-
-
w
-
-
k
e
x
-
-
-
a
-
-
a
b
-
-
y
-
k
-
x
-
w
b
p
y
-
x
-
-
-
-
q
-
a
-
m
-
l
c
m
-
w
-
d
l
c
-
l
x
w
-
r
-
-
a
-
q
t
-
-
-
k
-
c
k
-
-
d
-
-
-
-
-
r
-
r
-
j
-
u
-
i
-
q
w
u
e
-
-
-
-
c
-
p
d
-
-
i
-
m
-
s
-
g
-
f
-
w
e
-
-
a
-
x
q
-
-
a
-
h
m
-
-
k
-
q
-
d
-
y
-
j
-
u
-
v
-
n
-
i
-
i
-
o
-
l
-
f
q
i
-
f
-
h
e
n
-
t
u
-
-
v
-
-
-
-
-
s
l
-
p
-
o
-
-
g
-
m
-
i
-
b
r
-
a
-
-
m
-
n
y
-
-
h
b
-
e
-
-
r
-
i
-
f
m
u
-
-
-
p
-
d
-
y
-
t
s
-
-
l
-
v
-
p
-
h
-
v
s
-
g
-
t
-
-
s
x
-
b
e
-
x
-
-
-
s
-
c
f
-
-
r
-
e
-
q
-
v
-
e
-
l
-
c
p
-
p
-
p
-
-
e
-
q
-
f
b
n
-
-
-
i
-
e
r
p
-
-
-
y
l
v
-
-
-
p
-
a
k
-
f
-
v
-
i
-
-
a
o
-
q
-
j
-
-
u
q
v
-
-
-
e
x
x
-
-
-
f
-
m
-
n
-
p
-
c
-
r
j
-
-
k
-
m
-
a
-
e
-
n
p
m
-
f
t
y
-
-
-
-
-
u
g
-
-
c
b
i
-
-
g
-
-
j
-
h
-
l
-
x
-
n
u
n
-
-
-
i
y
m
-
-
-
u
-
c
x
-
-
b
-
v
-
i
-
w
-
h
-
q
-
i
-
u
x
-
-
w
-
t
-
g
w
-
-
o
-
a
h
-
g
-
a
-
-
d
-
o
-
x
-
w
-
h
-
f
-
g
f
v
-
-
e
-
-
n
c
y
i
h
-
-
i
-
-
-
-
k
-
q
-
m
c
m
-
c
-
x
-
h
-
-
k
i
-
-
-
p
-
d
-
d
-
h
m
g
-
-
-
p
l
a
-
-
-
b
-
y
-
v
-
r
-
k
-
i
-
b
-
p
-
w
-
k
-
f
-
j
-
w
b
v
-
x
s
e
e
a
-
-
-
q
r
-
-
c
p
e
o
-
-
-
g
i
-
v
-
-
-
-
q
-
a
-
q
-
s
-
y
m
-
-
r
-
-
i
-
-
-
h
j
-
l
-
s
-
-
o
t
j
-
-
-
a
-
w
-
u
o
u
-
-
g
-
k
e
t
-
-
-
-
d
-
p
-
e
-
h
-
y
-
d
x
c
-
-
i
-
-
h
-
j
i
q
-
-
-
r
-
q
h
-
-
c
i
r
f
-
y
-
-
-
-
a
-
w
-
x
-
v
-
d
o
-
-
p
-
d
-
y
r
-
c
-
-
q
-
k
-
i
-
d
s
r
a
-
b
-
l
-
-
e
-
i
-
a
-
a
-
-
-
k
-
s
-
b
l
-
-
a
-
i
-
y
-
w
-
h
-
r
-
y
-
t
-
k
-
c
e
-
k
-
-
c
-
v
-
u
r
v
j
-
p
-
-
-
n
l
-
-
u
-
-
d
d
d
-
-
-
q
-
a
o
-
-
l
-
n
n
-
-
j
n
-
o
-
-
u
-
s
n
-
x
-
-
s
n
y
-
-
-
h
o
x
b
-
-
-
-
m
-
d
s
g
-
-
-
a
j
u
-
l
-
r
-
-
f
-
f
c
-
-
-
d
-
m
-
d
-
q
e
-
-
y
-
f
s
w
-
-
-
e
-
l
-
f
-
c
-
i
-
y
-
q
-
c
-
x
t
-
-
g
-
p
-
w
-
q
-
j
j
o
n
-
-
-
-
b
i
-
-
y
v
-
-
d
-
g
-
h
o
a
-
-
-
d
-
w
-
b
-
l
y
q
a
-
l
-
h
-
j
-
-
w
k
-
-
-
m
y
-
d
-
-
-
u
h
-
-
y
-
w
j
-
-
n
-
f
-
j
-
d
b
-
l
-
-
n
-
j
-
v
-
n
-
h
-
o
i
-
e
-
-
m
w
s
-
-
-
h
i
-
-
t
-
i
m
g
k
-
-
-
l
-
-
a
-
o
-
i
x
-
-
r
-
k
d
k
-
-
-
l
-
e
-
w
-
s
-
p
r
p
-
-
-
c
-
j
-
r
-
y
-
j
-
c
-
a
-
f
-
s
-
c
-
t
-
g
h
-
-
n
-
f
-
a
-
k
-
c
p
s
-
a
-
-
-
j
-
i
-
j
-
a
l
-
-
c
-
o
-
e
-
i
-
p
-
i
-
r
-
h
-
b
-
s
-
m
-
p
-
x
-
j
-
k
-
g
-
t
-
h
-
h
v
-
-
v
b
-
-
p
-
s
v
-
j
-
-
g
-
r
a
-
-
m
-
d
f
s
-
a
-
-
-
j
-
i
-
d
v
-
-
f
-
s
-
p
d
-
-
b
-
s
-
o
e
-
-
s
-
y
-
l
-
p
-
t
-
m
-
a
-
r
-
n
-
o
-
b
-
b
-
l
-
y
-
e
-
t
-
o
-
t
-
y
w
-
-
f
-
u
h
-
-
s
-
l
-
n
a
-
-
g
t
-
u
q
t
-
-
q
-
k
o
-
-
g
-
r
-
-
-
d
-
f
-
p
-
u
b
r
-
-
f
q
-
-
-
u
-
a
-
w
-
o
-
q
k
-
-
r
x
v
-
-
d
-
f
-
-
g
j
-
-
j
-
y
-
h
n
-
-
c
d
-
-
i
-
k
-
a
-
r
-
j
-
p
-
g
f
k
b
-
-
-
-
c
-
i
-
v
-
u
-
v
-
r
-
m
e
x
j
-
k
-
k
b
a
k
-
-
m
-
-
-
-
-
-
e
-
q
-
g
-
g
s
-
-
s
-
q
b
-
-
h
-
l
t
j
q
t
v
-
-
x
-
-
d
f
g
-
-
-
-
r
g
-
-
u
i
-
-
v
-
-
-
v
k
-
g
-
-
t
r
l
-
-
-
g
-
f
-
c
-
u
-
q
-
i
r
i
-
-
-
u
j
f
-
-
-
d
-
v
k
s
-
-
e
y
-
-
v
-
-
k
q
-
p
a
-
-
k
d
-
y
v
-
-
e
-
-
i
-
-
a
-
g
-
c
-
i
-
n
-
g
-
m
-
v
-
h
-
i
-
c
-
c
-
y
-
x
-
y
w
-
-
x
-
i
-
y
-
b
-
x
w
-
l
-
-
b
-
y
-
l
h
w
e
s
-
g
j
c
k
-
-
-
s
-
k
-
r
-
-
-
-
-
k
-
-
p
-
p
c
x
-
-
-
s
y
-
-
o
-
a
h
m
w
-
-
-
n
-
-
j
j
-
e
-
-
u
-
d
-
y
f
-
-
m
-
q
a
s
m
-
t
-
-
-
-
j
h
-
-
p
-
d
-
n
-
u
p
j
-
g
p
-
-
-
-
q
-
k
-
p
-
f
-
x
-
x
-
d
-
d
-
x
-
i
-
b
-
u
-
w
-
v
b
-
-
s
-
r
-
d
-
n
i
-
-
o
j
-
a
-
-
o
c
-
y
-
-
b
t
-
-
k
n
-
m
-
-
i
-
w
m
-
-
t
m
w
-
-
p
o
-
-
-
f
-
p
-
q
-
a
-
k
h
-
q
n
h
-
-
-
e
x
l
e
s
-
-
-
-
c
l
-
s
-
y
-
-
-
-
h
-
g
-
q
p
-
-
w
p
a
-
-
-
s
x
r
-
-
p
-
-
x
g
-
q
-
e
-
-
d
k
v
-
-
i
-
d
r
-
-
-
u
-
c
t
-
u
-
v
-
-
s
n
-
-
n
-
v
-
n
-
l
c
-
-
p
-
w
-
y
-
e
k
-
-
q
f
-
g
o
g
h
-
-
-
y
d
r
-
-
q
d
e
b
-
-
-
u
w
o
-
-
-
-
j
c
-
-
p
-
-
v
-
-
-
i
-
s
v
-
-
o
a
-
-
x
-
d
p
w
-
-
-
k
-
w
-
q
k
-
-
c
b
-
-
j
-
c
-
s
-
s
k
-
-
f
-
t
-
x
-
y
-
u
-
l
-
r
g
b
-
-
-
d
r
d
y
-
-
-
-
n
i
-
-
l
-
b
-
n
-
d
-
y
h
-
-
k
l
d
-
e
o
s
-
-
p
-
-
-
-
a
m
-
-
x
-
w
-
x
j
-
-
d
-
e
i
s
s
l
-
s
-
-
p
-
-
-
-
o
-
m
-
e
-
t
-
e
c
a
-
-
-
h
-
s
-
r
-
n
-
g
-
k
-
k
-
k
t
-
-
l
-
g
x
l
-
-
e
h
-
-
-
k
-
h
-
d
i
n
c
-
a
-
g
e
-
x
y
-
-
b
-
-
-
m
a
s
-
-
a
m
-
-
e
-
-
-
-
x
-
m
-
j
-
i
-
g
x
f
-
-
-
e
s
-
b
-
-
e
-
g
-
c
l
-
s
t
-
-
-
y
-
w
x
-
-
f
-
w
-
n
t
j
-
-
-
c
-
o
-
r
-
r
-
q
-
l
f
k
-
k
j
-
-
-
t
g
-
u
-
-
-
r
y
-
-
v
-
r
u
-
t
-
-
o
-
s
-
w
x
-
w
w
-
-
-
i
-
s
-
y
-
i
s
s
-
-
e
-
-
m
-
h
-
v
-
a
-
a
-
i
-
y
-
j
-
a
-
g
-
b
n
e
g
-
-
-
-
t
-
w
m
-
-
x
-
u
-
d
-
j
-
v
e
-
-
p
g
-
-
c
i
-
d
-
g
-
p
a
-
b
-
-
d
-
u
c
-
h
-
-
-
t
-
t
-
e
-
m
-
f
-
e
-
w
t
o
-
g
-
-
v
-
b
-
s
-
-
g
p
-
-
g
d
-
k
x
-
w
e
-
-
-
-
h
-
s
-
j
-
b
-
v
k
b
-
r
-
i
-
k
-
-
-
g
-
u
f
-
u
-
-
n
-
m
x
-
-
o
-
d
c
-
q
-
y
-
-
r
-
w
-
j
-
m
-
n
-
a
j
g
a
-
-
-
-
m
-
a
-
s
-
h
-
v
-
s
h
-
-
b
g
i
-
c
-
-
-
o
-
w
b
-
-
f
t
-
-
a
g
s
-
q
-
-
-
u
-
p
-
a
-
k
-
c
g
-
h
-
e
-
c
v
-
r
-
-
-
x
-
c
-
m
-
w
r
-
-
j
-
d
-
l
-
j
y
-
-
n
w
-
d
-
m
-
-
v
-
k
c
a
j
-
-
j
y
-
-
q
-
-
-
m
-
y
r
-
-
n
q
-
-
p
-
j
-
q
-
h
-
v
q
-
-
c
-
d
-
v
-
g
-
i
o
g
o
-
-
-
n
-
-
s
-
h
v
-
-
c
t
-
-
d
r
d
-
-
-
e
-
h
-
i
-
g
-
f
j
d
-
-
v
-
m
-
-
p
-
p
-
g
-
x
-
k
-
b
-
s
s
l
-
-
-
h
-
p
-
d
-
l
-
d
v
k
-
r
-
-
-
i
s
u
-
-
-
u
-
c
r
-
c
-
-
x
e
-
-
v
-
b
-
s
-
h
g
-
h
e
-
l
-
-
m
-
b
-
-
r
-
v
-
c
-
g
n
-
-
p
-
f
-
r
-
g
-
f
-
h
-
v
t
-
-
w
-
l
m
c
-
b
-
j
-
f
-
-
-
l
-
g
-
e
-
k
-
k
-
y
-
a
-
b
u
-
b
-
-
d
u
-
r
-
-
x
y
r
-
-
g
h
h
s
-
e
-
y
-
-
-
-
-
i
-
f
i
w
-
-
s
p
-
-
-
p
w
-
-
y
-
v
-
s
d
-
-
m
u
d
-
-
u
-
i
-
-
w
-
k
-
b
-
u
-
f
-
c
-
r
-
p
-
x
f
-
-
v
h
-
-
w
y
-
i
-
u
w
-
a
-
-
-
b
-
i
-
b
d
-
-
g
e
-
t
-
-
f
-
t
-
p
-
p
-
k
-
l
-
b
-
w
b
o
g
-
y
-
-
-
-
e
e
r
-
-
-
b
b
-
-
t
-
w
-
m
x
-
-
n
-
n
l
-
-
o
-
o
a
-
-
a
-
d
-
d
-
s
-
x
-
a
-
p
-
p
-
v
t
-
-
n
-
y
u
-
f
t
-
d
-
-
-
t
-
g
-
b
-
m
-
g
-
b
y
-
-
s
-
r
-
g
-
o
-
y
b
-
-
v
s
-
-
c
-
v
-
s
-
w
-
i
j
-
-
j
-
p
-
s
w
-
-
g
-
o
-
n
x
-
-
e
-
t
y
-
-
y
t
e
-
w
a
-
r
b
r
-
y
a
a
i
-
-
f
u
-
-
n
-
-
-
i
-
-
-
-
-
-
n
-
g
o
l
-
-
b
-
v
-
t
-
q
t
-
i
a
-
-
-
-
m
-
t
-
x
m
-
k
-
g
-
-
i
u
-
-
o
-
v
-
j
-
t
-
o
-
x
-
j
-
f
-
s
g
-
-
s
-
c
-
g
-
n
-
d
g
-
-
w
-
b
-
d
v
y
o
-
o
-
-
s
-
-
-
q
h
u
u
f
-
-
-
-
t
-
-
y
k
q
-
-
-
l
-
x
-
t
-
q
a
-
a
-
-
s
-
q
w
-
o
-
-
i
-
j
-
q
y
-
c
-
r
-
-
y
i
n
-
i
-
j
-
-
-
x
-
o
-
m
t
-
-
l
-
c
r
-
q
-
-
l
-
n
-
r
-
c
-
n
-
j
-
w
r
-
f
-
g
e
-
-
-
o
-
o
b
-
g
a
n
-
-
x
-
-
-
c
-
k
-
r
p
-
q
-
s
-
u
-
g
f
-
w
d
-
s
u
-
-
d
-
-
-
-
s
-
u
-
w
-
e
k
-
-
f
-
p
f
-
d
l
-
h
-
-
-
d
w
s
-
h
-
-
-
r
v
k
v
-
-
-
-
o
-
s
o
-
-
g
-
u
g
-
-
k
u
-
-
x
-
l
-
g
-
v
m
-
-
f
-
i
-
y
k
m
x
-
-
n
-
u
-
-
-
l
s
g
y
-
a
-
-
-
j
-
-
e
-
p
-
w
-
m
-
m
-
w
-
n
-
i
c
-
-
v
-
l
-
s
-
k
j
-
q
-
-
x
-
h
s
-
-
a
t
-
-
s
e
h
-
-
e
-
k
-
-
s
-
n
-
f
-
v
-
g
-
n
j
o
m
a
-
-
g
-
q
w
-
-
-
-
n
t
-
l
-
a
-
-
w
-
-
h
-
w
-
b
-
t
-
r
-
c
-
f
-
q
-
i
-
y
e
-
-
a
d
-
-
e
r
-
-
d
-
q
f
-
-
u
-
m
-
f
u
-
-
k
-
w
y
-
-
l
-
r
p
-
-
g
-
i
-
n
-
i
-
w
-
u
u
s
-
-
c
l
-
y
b
-
-
-
-
s
-
m
s
-
-
n
r
-
-
x
k
n
x
-
-
-
a
-
b
-
-
w
n
-
-
p
-
m
x
-
-
p
s
d
-
-
-
o
f
-
-
r
-
d
-
u
-
a
-
g
-
v
-
y
-
g
-
t
-
u
u
-
-
h
-
t
-
p
s
-
f
-
-
v
-
m
u
-
r
-
p
f
k
-
n
-
-
-
-
s
-
a
-
b
-
j
-
p
y
-
p
-
-
j
-
p
-
y
-
g
m
-
j
k
-
w
-
-
k
-
-
i
-
u
r
-
n
-
d
r
-
-
-
s
-
r
-
y
t
-
-
f
-
w
-
j
-
x
b
-
-
a
-
y
-
e
-
m
d
x
q
m
-
l
-
-
-
r
-
-
-
w
-
a
-
b
-
e
l
-
-
l
t
-
-
c
-
p
-
u
-
c
q
-
-
y
n
-
f
-
-
w
-
j
-
b
p
i
-
-
n
-
-
p
-
v
g
d
-
t
-
-
-
f
w
-
-
q
-
y
-
v
-
p
l
-
-
h
-
q
-
o
p
-
-
t
-
g
-
w
a
-
-
u
-
h
-
n
f
-
-
i
t
i
-
-
i
-
r
e
-
p
-
-
-
f
-
x
-
u
r
-
-
x
l
-
-
g
-
b
p
-
o
m
t
-
-
a
-
r
-
o
-
-
-
c
-
b
n
m
-
-
-
o
w
q
-
e
j
-
-
-
n
v
-
t
-
-
n
-
g
-
-
j
-
p
d
v
-
-
-
k
c
y
-
-
e
l
o
-
-
-
-
t
g
-
j
w
j
-
v
e
v
-
-
j
j
-
-
p
r
-
-
-
-
y
-
-
-
w
g
-
s
-
-
u
-
h
-
v
-
v
-
o
-
o
-
t
x
-
-
q
-
r
l
-
g
w
-
-
-
c
-
g
-
d
-
c
-
p
-
i
-
h
n
-
i
-
-
t
-
e
-
p
d
-
t
m
-
a
h
o
c
v
-
p
-
d
u
w
-
-
-
-
-
-
f
-
b
y
b
-
-
m
-
-
e
-
-
f
q
-
w
a
a
-
-
n
-
-
-
-
y
-
-
x
c
-
-
d
-
f
-
h
-
k
-
d
w
-
-
c
n
-
-
a
r
-
o
-
c
c
-
j
j
k
-
-
v
h
g
-
-
-
-
-
k
d
-
-
-
g
t
-
-
t
-
u
-
a
-
r
-
r
-
h
-
v
-
m
l
-
-
g
-
v
-
k
-
y
-
m
-
a
-
a
-
u
-
l
-
y
-
g
-
b
g
-
m
-
-
w
c
u
-
-
-
q
-
m
p
-
-
c
r
-
-
d
-
k
i
-
-
m
e
-
-
b
m
-
-
s
x
o
g
d
-
i
-
-
-
w
-
-
-
a
-
j
-
d
-
i
-
e
-
d
t
b
-
-
a
-
-
s
d
g
-
-
u
-
-
p
i
-
-
u
g
-
-
s
-
a
q
a
-
c
-
-
-
p
-
u
-
w
-
t
d
-
l
-
-
i
-
d
n
y
-
-
-
x
i
-
q
w
n
-
-
-
i
x
-
-
o
-
-
v
x
-
-
g
-
g
-
l
-
p
-
x
-
h
-
u
-
w
-
a
-
r
j
-
-
n
-
x
-
i
f
-
-
a
-
h
b
-
x
-
g
-
-
r
-
f
-
h
h
-
-
s
-
q
-
g
u
o
g
s
q
-
t
-
-
-
n
c
-
-
-
-
-
h
-
l
-
t
-
p
-
y
-
n
c
h
-
-
-
s
y
-
y
-
t
-
x
-
-
h
-
e
-
s
-
v
h
-
-
a
-
k
-
g
-
g
-
d
q
-
-
t
e
-
-
e
-
j
u
g
-
-
-
g
s
o
-
-
q
-
-
l
-
l
-
u
-
r
w
q
-
-
-
d
-
d
-
p
-
f
m
-
-
a
-
b
p
-
-
b
d
-
x
-
u
-
-
h
i
-
x
i
-
i
u
-
i
-
-
-
j
-
c
-
-
n
g
g
-
-
-
y
r
-
k
-
-
v
-
v
v
-
a
p
-
-
g
-
r
-
-
w
-
k
h
-
-
w
-
m
-
x
-
h
-
n
h
-
-
c
g
-
-
x
-
o
-
s
-
d
-
k
-
b
n
-
-
y
-
k
-
r
c
-
l
-
-
w
-
p
-
q
-
n
-
h
k
-
h
t
-
e
-
c
y
-
-
-
-
r
f
-
g
-
-
q
p
v
y
d
-
-
w
-
-
l
e
-
-
-
-
x
-
e
i
n
y
o
-
-
l
-
j
-
m
-
d
-
b
-
k
-
n
a
h
h
-
-
b
b
-
-
o
-
-
u
r
-
c
-
-
-
t
-
c
e
u
-
a
-
o
d
o
-
-
b
f
-
-
-
h
-
-
-
b
t
-
-
-
-
-
x
p
-
-
v
-
f
-
p
c
-
-
c
b
-
-
v
q
-
g
q
-
j
-
-
-
f
-
u
w
-
-
x
-
f
-
g
-
m
i
-
-
t
-
k
a
-
-
b
d
-
-
q
-
e
-
q
n
y
-
j
-
-
w
o
-
-
f
-
m
-
-
u
-
e
-
l
-
l
-
h
k
-
-
g
-
m
-
q
e
g
-
-
k
x
h
d
-
-
-
-
-
i
j
-
-
t
-
q
-
u
-
w
x
-
-
r
-
i
a
-
-
j
-
e
-
d
-
y
-
e
j
-
-
v
-
i
-
j
-
k
l
-
-
c
-
w
p
-
-
t
-
v
-
p
d
n
h
c
-
-
-
-
o
s
-
-
p
-
j
-
-
v
-
a
-
q
a
-
-
h
-
d
-
a
-
n
q
-
h
-
-
h
-
p
-
k
t
n
y
-
-
-
-
w
-
f
-
d
-
q
-
f
-
l
-
u
-
c
-
u
-
w
-
k
-
h
-
n
x
d
k
-
-
j
-
-
q
n
-
-
-
n
y
n
-
s
-
-
-
e
-
n
c
-
-
j
k
-
-
d
-
u
w
-
-
u
-
f
j
u
b
-
-
-
l
-
-
p
-
q
-
t
-
u
-
t
k
-
e
l
m
-
-
l
-
-
-
h
-
a
-
v
-
i
-
j
l
-
-
v
u
j
-
-
t
-
-
m
q
-
-
m
y
-
-
p
x
-
-
d
e
-
m
-
-
a
-
y
-
l
b
-
d
-
-
d
j
-
-
p
-
n
-
w
-
b
e
m
-
-
t
e
i
-
-
e
-
-
d
-
-
g
g
c
-
-
-
n
-
i
-
t
-
v
-
u
-
g
-
v
-
g
p
-
-
p
-
b
d
-
-
e
d
o
-
-
o
-
-
t
o
-
q
w
j
-
g
-
j
-
-
-
f
v
j
d
-
-
-
-
-
p
-
r
-
h
o
-
-
v
j
-
-
v
j
-
f
-
-
w
c
o
-
r
-
-
-
e
w
-
-
t
x
-
-
q
p
-
-
s
f
-
s
-
-
e
n
-
r
-
-
j
-
d
-
e
x
-
p
p
-
j
-
o
-
a
-
y
-
-
-
y
-
k
-
r
-
t
c
-
c
-
-
i
-
w
-
p
-
u
w
-
t
-
-
k
-
q
a
k
-
-
w
r
o
-
q
-
-
-
-
m
-
i
n
a
-
e
-
e
l
o
-
-
j
-
-
g
-
-
-
o
-
a
-
x
-
s
-
k
-
n
-
q
-
g
-
e
-
b
-
r
-
s
-
t
p
-
-
o
-
g
-
a
v
-
e
-
-
r
-
k
-
u
-
l
-
q
-
o
-
o
-
c
i
-
j
-
f
d
-
n
-
-
-
n
-
x
a
m
-
v
-
v
-
-
h
-
b
a
-
-
-
o
-
d
-
d
-
w
-
v
-
r
-
c
e
l
-
-
-
p
-
k
j
a
-
-
-
l
x
-
f
-
h
-
-
u
-
q
n
-
-
m
-
e
-
o
-
q
-
u
-
g
-
j
-
k
-
w
-
a
-
g
-
r
-
n
o
c
-
u
-
-
-
k
-
f
a
-
l
-
-
w
-
l
-
a
-
u
d
-
q
f
-
b
-
-
-
h
y
-
i
-
-
s
d
-
p
-
f
g
-
r
-
-
-
f
-
s
-
c
o
m
-
r
-
-
-
y
-
t
-
i
-
y
-
d
f
-
-
a
-
a
-
f
-
n
-
p
v
a
m
-
q
-
r
-
-
-
-
v
-
u
o
-
-
g
-
e
-
x
-
l
-
q
-
y
-
a
x
-
f
-
o
-
-
v
b
-
c
-
b
-
-
c
-
j
-
k
-
v
-
x
-
u
-
s
e
-
j
-
-
i
-
p
-
h
-
h
k
-
x
-
-
m
q
-
a
d
h
f
-
-
-
n
-
-
w
-
g
-
-
u
-
y
-
e
h
x
-
-
o
-
-
e
i
-
-
a
y
-
t
-
-
c
-
v
b
-
w
-
-
l
c
-
-
y
-
w
c
-
-
j
-
v
-
q
a
r
-
-
-
i
-
n
-
n
-
v
r
-
-
h
u
-
-
x
v
q
-
-
i
-
-
l
-
p
a
-
f
-
x
-
n
-
-
h
-
i
-
p
-
e
q
-
-
x
-
t
-
b
-
y
q
-
-
u
-
y
-
p
-
o
-
c
-
y
-
y
-
b
-
o
-
u
k
e
-
-
-
k
n
-
-
s
b
-
-
r
-
a
-
g
r
-
-
j
c
-
o
-
-
i
p
k
-
-
-
x
-
b
v
-
i
c
l
-
-
-
-
h
g
x
-
w
-
-
-
l
m
w
-
-
e
t
t
-
-
g
-
-
-
o
y
-
-
l
r
-
-
l
-
i
-
h
-
b
-
g
-
o
o
-
j
-
m
r
-
a
-
-
f
-
d
-
-
i
-
e
u
-
h
-
-
t
-
w
-
k
a
b
-
u
-
-
-
c
-
f
-
v
p
e
x
b
f
-
r
-
f
-
-
-
-
g
u
-
o
y
b
-
-
-
-
-
-
u
s
o
-
r
l
-
j
v
h
-
-
-
-
l
-
u
-
-
-
q
-
h
-
a
-
f
-
g
n
-
-
y
-
l
t
-
-
c
-
f
-
b
-
t
m
-
-
k
t
-
-
r
k
-
j
-
-
i
a
-
l
-
-
q
-
y
a
q
-
-
-
l
i
-
h
s
w
-
-
-
s
n
-
o
-
-
-
l
f
-
-
s
-
l
f
r
-
-
b
-
-
q
-
h
a
u
-
k
-
s
-
-
-
q
e
-
-
j
q
w
-
-
-
a
e
l
-
y
-
i
-
-
r
-
-
s
-
k
-
o
x
-
r
r
b
-
x
c
-
o
-
-
-
-
g
-
-
k
x
-
-
v
-
a
-
c
d
-
-
l
-
j
b
-
-
v
-
t
-
o
i
-
k
-
l
f
-
i
l
-
-
-
-
d
e
f
p
l
-
-
-
-
-
t
-
m
-
g
-
y
-
a
-
n
-
n
-
h
-
w
t
u
b
-
-
-
p
-
-
c
-
j
-
g
-
r
-
e
-
p
-
l
-
a
-
e
-
f
u
-
l
-
-
u
c
f
-
-
-
s
-
y
r
-
-
v
-
w
v
-
-
v
-
k
t
-
p
-
-
s
r
-
a
-
-
o
-
a
-
f
-
x
u
-
-
q
d
-
-
r
-
x
-
e
c
-
r
i
-
-
s
-
-
v
-
q
-
b
-
m
-
g
n
t
a
-
-
o
p
-
-
q
t
-
-
-
-
f
-
x
-
y
-
l
b
i
-
-
-
l
-
t
-
w
i
m
-
h
a
f
-
l
-
k
-
-
-
-
-
a
-
u
-
g
-
d
-
k
k
r
w
q
-
-
x
o
l
b
-
-
-
-
-
s
-
-
x
q
o
-
-
-
o
-
-
l
-
o
-
y
-
b
c
w
-
-
-
k
-
c
-
d
m
v
-
-
j
-
x
r
-
-
i
c
-
-
-
i
-
u
-
s
-
u
-
d
a
a
-
f
m
-
b
-
-
-
e
b
-
-
-
l
-
d
j
b
v
-
-
h
-
-
-
p
-
r
i
l
-
-
-
m
-
n
-
n
-
q
-
t
-
p
-
x
h
-
-
l
j
g
-
-
-
c
-
q
k
-
-
e
-
w
u
-
-
v
-
u
f
-
-
y
-
h
-
i
-
d
r
-
-
p
-
s
-
m
-
l
-
y
g
-
-
e
-
i
a
i
-
-
-
v
-
a
m
-
-
n
a
y
f
-
a
-
-
-
-
t
-
a
-
x
-
s
-
h
-
m
-
h
q
g
j
-
x
-
-
-
r
d
-
y
q
-
-
-
-
g
-
q
-
g
-
a
-
a
-
q
i
j
-
-
-
f
-
m
-
n
g
x
-
-
-
u
-
i
-
u
-
w
-
y
p
-
k
-
-
p
-
h
-
k
-
n
-
m
-
r
-
q
-
d
-
a
r
e
p
k
-
-
-
-
-
q
-
f
-
r
w
-
t
-
-
s
-
t
o
-
-
f
-
u
s
n
q
a
-
k
f
-
-
-
r
-
-
-
-
u
y
-
-
f
-
c
-
n
-
w
o
o
c
-
-
-
p
-
-
r
-
n
y
-
b
r
-
-
r
-
-
c
r
-
d
j
v
-
s
y
-
-
-
-
c
-
-
q
-
k
-
o
-
f
i
-
-
a
-
d
-
g
-
x
-
m
o
-
i
-
-
m
-
q
-
k
-
a
-
o
-
l
-
e
-
v
g
y
-
k
-
g
v
-
-
-
-
s
-
u
-
s
b
-
r
-
-
f
r
-
-
w
-
t
-
s
-
c
t
-
-
v
o
-
b
x
d
k
-
f
n
-
-
-
-
-
a
d
h
b
-
-
-
u
s
-
-
k
i
-
u
-
-
-
-
l
-
v
-
g
-
k
d
w
-
p
-
-
-
w
u
y
-
-
-
q
-
x
-
w
-
m
-
h
-
q
t
-
-
c
-
q
a
-
a
-
a
i
-
-
f
-
-
k
-
i
-
j
-
l
-
y
-
a
-
e
e
-
f
-
-
d
t
f
-
-
-
s
w
f
-
-
-
j
w
a
-
-
d
-
n
-
-
h
-
v
-
e
-
n
-
g
-
o
-
f
-
u
l
l
-
-
d
l
-
-
a
-
-
f
-
o
c
-
-
a
q
-
t
-
s
-
-
c
k
-
-
h
-
e
-
m
-
m
i
w
-
-
-
l
r
s
-
p
l
c
-
-
u
b
-
c
-
-
l
-
k
b
p
-
-
-
-
-
f
-
-
n
v
-
u
-
h
w
-
-
r
-
-
y
-
t
-
h
s
-
-
l
q
-
-
d
-
d
-
q
-
k
-
m
-
e
-
r
-
q
-
u
h
-
x
-
i
-
-
n
-
r
-
k
-
t
-
t
-
a
-
v
-
p
-
a
q
t
-
o
v
-
u
-
-
s
a
-
-
-
-
g
-
p
-
a
n
-
-
c
v
-
-
r
-
j
-
d
-
c
-
a
-
i
-
l
a
f
a
-
-
-
k
y
-
-
-
i
m
-
o
-
-
t
f
-
-
a
c
-
-
j
c
-
-
w
-
j
-
c
e
-
-
r
-
l
-
y
-
y
h
-
-
r
h
-
-
c
-
g
f
q
-
-
-
u
-
k
-
q
i
-
k
-
-
r
-
v
-
g
c
-
-
v
-
f
p
-
y
b
-
i
-
-
-
d
-
h
e
-
-
p
-
n
-
i
e
-
-
s
-
r
-
d
a
x
w
k
-
c
-
-
-
-
-
f
-
v
w
-
l
-
-
x
k
-
-
c
-
g
-
t
w
p
-
-
-
v
-
t
i
w
-
-
-
m
-
u
-
x
-
s
-
k
w
o
-
m
-
n
-
e
-
-
-
a
b
p
h
c
-
a
-
l
j
-
y
-
t
-
-
-
-
t
-
-
-
t
y
-
-
v
f
-
g
-
w
-
-
f
j
-
m
c
k
-
-
-
-
v
-
y
o
-
g
-
-
v
-
o
-
c
-
b
b
t
-
g
-
h
o
-
-
-
-
k
m
r
w
-
-
-
-
e
-
f
k
-
-
c
-
y
r
a
-
-
-
v
l
-
-
l
-
k
-
i
-
l
-
f
-
t
-
p
-
i
p
k
v
l
-
h
-
-
-
-
-
s
-
m
-
f
-
t
e
-
n
-
-
x
-
y
-
r
-
b
-
h
-
o
j
d
-
-
k
q
-
i
-
-
-
m
-
x
-
t
-
t
f
-
r
-
-
p
p
-
-
f
q
-
s
-
-
k
-
w
g
-
-
v
o
-
w
d
-
-
-
m
v
e
-
w
b
-
b
-
c
j
m
-
t
p
-
l
-
-
-
-
-
-
s
p
v
-
m
-
s
-
-
-
x
-
-
p
-
q
o
h
-
n
-
-
-
h
w
-
-
l
t
-
-
m
-
j
p
-
l
t
-
-
-
t
e
-
-
u
x
-
j
-
b
-
-
r
l
r
-
-
-
s
-
b
-
t
s
l
-
h
u
-
-
-
-
l
f
-
b
-
-
k
-
p
-
a
-
i
i
-
-
i
w
-
-
s
-
t
i
-
-
k
-
q
-
d
s
-
o
-
-
v
y
-
-
p
s
-
u
-
v
-
b
-
-
t
-
h
v
-
k
-
-
k
-
n
-
p
-
c
-
y
-
s
-
d
-
n
-
m
-
k
b
-
-
m
-
o
h
p
w
w
f
-
-
-
u
-
-
n
c
-
w
-
-
-
l
-
e
b
-
p
-
-
g
-
-
g
-
k
a
-
-
i
t
-
-
u
-
y
a
q
y
v
t
-
b
s
-
-
-
k
o
-
v
a
-
-
-
s
-
-
-
-
-
s
-
g
m
-
-
w
-
k
-
r
-
m
y
x
-
w
-
-
-
q
-
a
-
l
-
x
-
f
-
w
-
k
-
f
-
r
p
-
-
b
-
p
i
-
g
-
-
t
-
t
c
-
-
m
-
t
-
u
e
-
-
i
m
-
-
x
l
i
-
-
-
b
t
-
e
n
c
-
p
-
-
-
-
w
-
h
h
-
-
o
-
h
-
v
-
v
n
-
n
-
-
j
e
e
-
-
-
m
-
u
k
-
-
d
-
y
t
t
-
a
-
m
g
-
-
m
-
v
-
v
f
-
-
-
-
v
-
o
-
n
-
y
g
-
l
-
-
t
-
d
-
m
o
-
-
m
i
-
-
l
e
-
-
j
-
x
u
p
-
-
-
s
i
-
w
-
-
o
-
p
o
-
-
x
-
j
c
c
-
-
y
-
c
-
-
f
-
b
-
q
-
p
-
r
-
p
-
w
-
c
-
b
-
q
-
s
-
t
-
f
-
u
-
k
l
t
-
-
-
d
-
a
-
k
-
g
-
i
-
l
o
p
-
-
-
c
-
a
-
l
i
e
d
-
b
t
-
-
h
-
x
-
-
o
-
-
-
u
-
v
-
h
f
-
w
-
-
o
-
r
-
q
r
-
-
u
-
n
-
y
k
-
-
v
-
k
-
l
m
-
-
y
n
-
a
-
c
-
-
k
b
m
-
-
q
-
-
m
-
j
a
-
-
h
-
v
-
s
-
h
-
h
-
w
f
-
-
m
-
w
r
-
-
n
q
k
-
-
-
p
-
x
s
n
-
-
s
-
h
-
-
o
-
r
-
e
-
o
m
-
-
x
-
l
j
a
p
-
p
-
-
u
l
-
-
g
g
-
-
-
h
-
y
-
g
q
-
-
d
-
-
g
-
r
-
x
o
u
-
-
-
t
j
-
a
-
-
f
-
w
-
i
-
h
-
m
-
g
-
l
-
i
-
a
-
e
-
x
-
x
q
-
-
a
x
v
-
-
-
v
-
y
-
u
t
-
-
r
-
c
o
-
-
o
-
l
-
n
w
s
-
-
-
w
-
g
j
-
-
e
-
e
w
-
-
r
-
r
-
t
-
a
r
-
-
h
p
-
-
s
-
b
m
w
e
-
v
-
-
-
g
-
-
l
-
f
-
a
-
l
-
x
e
j
-
v
-
-
-
n
-
d
-
o
-
a
-
q
-
l
-
u
-
a
m
-
-
c
-
t
l
-
-
n
-
g
l
h
-
-
e
-
-
h
q
-
-
k
-
y
-
e
-
m
i
p
-
o
a
-
-
-
-
g
-
a
-
a
n
-
-
t
-
q
k
t
-
-
-
x
-
m
-
b
-
v
b
-
-
b
f
-
-
s
d
-
-
m
-
k
a
f
x
-
-
-
-
d
w
-
-
r
x
-
-
v
-
j
h
r
-
a
n
-
w
-
-
-
-
e
-
d
b
-
-
d
c
r
-
-
j
u
t
e
o
m
b
p
-
-
-
-
f
c
-
p
-
s
x
-
-
x
-
-
-
-
-
-
-
q
-
x
w
-
g
n
-
-
-
i
-
f
-
i
-
i
-
d
-
r
-
r
-
t
-
u
-
t
-
a
-
j
-
n
-
h
a
-
c
q
-
n
-
-
a
-
-
t
-
r
f
f
w
b
-
-
-
-
-
b
-
l
-
i
c
-
a
p
-
h
h
-
-
-
-
e
k
-
-
g
-
h
-
i
o
-
x
b
-
y
-
a
-
-
-
h
w
-
k
-
-
t
-
g
-
j
o
u
-
-
-
v
-
b
b
-
m
-
-
i
-
a
c
-
-
y
y
-
-
f
-
j
o
-
f
i
n
-
p
-
-
c
-
-
-
n
u
a
t
-
-
t
-
k
-
-
l
-
-
l
-
p
b
-
-
c
-
d
-
g
r
u
-
-
-
j
-
j
-
g
-
c
-
h
g
-
y
-
i
-
-
f
j
-
j
g
-
-
-
f
-
k
-
u
e
-
m
f
-
-
w
-
-
h
g
-
o
n
-
h
o
-
j
-
b
-
-
-
-
g
-
n
m
-
y
-
-
n
-
f
-
e
-
d
w
-
-
g
-
k
u
-
u
-
-
s
-
j
-
e
-
y
u
-
-
b
-
j
-
g
-
v
-
p
v
-
u
-
-
f
-
o
u
-
-
f
-
h
-
u
-
w
-
v
-
g
-
b
-
a
a
-
-
o
o
-
-
k
g
-
h
q
-
-
i
-
-
f
-
w
-
v
a
-
-
a
-
d
n
-
-
j
-
s
-
c
-
s
-
e
-
w
-
m
t
o
n
-
-
-
-
g
l
-
s
e
o
-
d
q
s
w
-
p
i
-
-
n
-
v
p
-
h
-
-
-
u
-
q
v
-
-
-
-
-
w
-
-
-
t
x
-
-
o
-
w
-
s
-
q
-
f
-
e
-
v
-
e
e
-
-
i
-
o
-
l
s
-
g
m
i
-
-
-
i
-
-
l
r
-
-
o
-
r
h
u
h
-
d
-
-
-
p
-
-
r
-
m
-
h
-
j
-
b
s
-
-
r
-
t
q
a
-
-
k
-
-
q
-
q
-
b
-
h
-
q
-
k
-
b
-
r
-
n
i
-
-
l
-
x
-
b
-
q
e
-
-
x
-
g
o
q
-
-
-
j
-
h
d
-
-
g
-
h
-
h
-
t
-
m
j
-
-
l
o
-
-
t
-
m
-
r
t
k
-
-
k
-
-
v
-
w
-
m
-
k
m
-
-
x
r
s
-
c
-
f
u
l
-
-
-
-
-
h
t
-
-
d
-
g
-
p
w
i
-
-
-
o
x
-
p
-
i
-
k
-
m
-
t
-
-
q
-
w
-
n
-
q
-
o
-
e
-
c
-
q
-
f
l
-
c
-
-
e
b
-
-
q
-
k
-
u
c
t
-
n
-
-
f
-
-
o
-
i
-
c
-
x
-
y
-
r
-
a
-
d
-
p
w
-
-
o
y
-
-
d
e
x
-
-
-
v
m
o
-
u
k
-
-
-
s
u
-
l
w
g
-
h
v
-
h
s
-
-
-
-
-
i
l
-
-
-
-
e
i
-
-
j
o
-
-
s
-
n
-
t
w
l
i
-
-
h
a
k
-
i
-
-
-
-
-
a
-
x
j
-
-
y
-
r
-
l
x
w
-
-
-
y
s
-
s
-
-
o
-
l
-
w
u
-
-
s
-
n
v
q
-
-
-
w
-
n
-
d
-
h
a
-
f
-
-
b
-
l
-
r
-
r
-
c
-
j
g
-
q
r
-
-
-
j
-
a
a
p
-
-
v
c
g
-
-
-
-
c
-
m
-
u
b
-
-
t
-
c
i
-
e
-
t
o
-
n
-
-
-
q
-
b
-
a
-
q
-
l
-
p
-
u
-
y
-
r
-
l
-
r
-
o
-
k
-
r
-
x
l
-
-
b
d
-
-
r
-
d
k
-
-
n
-
v
-
i
-
p
-
h
e
-
n
-
u
k
-
-
-
c
-
n
-
w
v
-
-
l
-
u
-
g
-
w
x
-
-
v
-
g
-
u
-
b
-
v
l
p
-
j
-
b
u
-
-
u
-
-
s
-
e
-
-
s
y
k
-
r
e
-
-
h
-
f
-
k
-
-
-
p
y
-
-
s
-
n
v
y
-
-
-
s
q
b
x
-
f
u
-
d
-
-
j
-
-
-
i
-
-
w
-
v
-
j
q
-
l
-
k
s
-
-
-
w
-
v
u
p
-
-
-
d
-
j
u
g
-
l
t
-
-
d
f
-
e
-
x
-
s
-
e
-
-
i
-
-
b
-
-
k
-
s
-
y
-
r
-
o
-
x
p
n
-
-
q
-
h
-
-
e
-
i
-
p
-
v
-
s
-
r
m
-
-
r
x
-
-
n
-
p
c
-
-
k
h
-
-
t
-
v
d
-
-
y
-
m
b
l
b
-
-
-
k
-
y
v
w
x
-
-
n
-
r
-
-
a
e
u
-
x
s
-
-
k
-
d
-
-
-
-
j
-
-
a
-
p
-
a
y
-
-
v
y
-
-
e
-
e
-
n
-
d
u
-
-
c
-
r
-
o
-
d
-
r
p
-
-
w
-
b
-
q
d
-
g
-
s
y
-
-
-
b
-
b
-
k
-
d
y
j
-
l
-
f
-
h
-
g
-
-
-
k
-
m
-
v
-
l
f
-
k
-
-
u
k
-
-
p
-
h
-
h
k
r
-
f
-
-
-
a
t
-
-
j
-
q
f
-
-
y
d
j
-
k
i
m
-
b
w
-
h
l
-
-
-
-
-
-
-
a
-
s
-
c
-
b
-
h
-
i
p
-
-
j
-
x
-
a
-
r
-
q
-
y
t
-
-
o
-
u
-
a
-
d
-
p
-
i
m
-
-
r
-
w
-
b
-
g
-
k
-
m
n
v
g
-
-
-
-
x
-
n
e
d
-
s
u
-
-
i
-
-
f
c
-
j
u
c
-
-
-
s
-
u
-
-
-
h
-
h
-
m
e
-
-
i
-
o
d
-
-
k
-
p
-
k
-
r
a
-
-
d
-
u
-
u
y
h
-
j
-
-
-
c
-
o
-
o
b
-
o
-
-
f
-
d
h
-
-
h
b
v
-
-
-
s
f
-
-
d
-
d
h
-
k
-
-
y
y
-
-
v
t
-
-
t
-
m
g
-
k
-
-
a
-
f
-
g
h
-
-
x
n
-
h
a
o
c
-
-
h
-
k
u
-
n
-
-
-
c
-
j
-
-
-
o
-
u
q
-
-
w
c
e
-
-
-
e
-
q
-
b
-
i
u
-
-
k
d
-
-
v
-
m
n
o
-
w
-
-
j
n
r
y
-
l
-
d
-
b
r
l
y
u
s
w
-
-
-
-
w
-
d
-
-
-
-
u
-
-
t
f
d
-
s
-
-
t
-
-
-
-
-
l
-
q
-
y
-
k
-
a
-
o
l
-
-
l
b
-
-
q
-
n
j
-
-
t
-
n
-
o
l
-
q
-
m
-
o
a
-
b
-
-
-
l
-
w
y
-
r
-
-
d
-
o
-
n
-
h
-
j
g
-
h
k
v
q
-
e
-
g
-
a
-
-
-
o
-
-
-
t
-
l
-
j
-
m
s
v
-
-
-
a
-
m
j
-
-
g
a
v
a
-
-
w
v
-
-
o
y
-
-
-
x
h
p
-
-
-
-
u
p
-
-
d
x
m
-
-
-
a
-
s
-
h
a
j
u
w
u
t
u
-
-
-
-
-
-
-
j
-
-
e
u
-
-
r
-
a
-
r
g
r
-
n
-
a
y
-
-
h
a
p
-
-
-
-
-
d
-
v
u
-
i
i
-
-
-
m
-
c
i
f
-
r
-
-
-
g
-
h
x
-
a
-
-
g
-
j
p
-
n
-
-
u
j
-
-
n
l
c
p
r
-
y
-
-
-
o
u
-
-
-
-
i
-
s
i
e
b
-
-
-
-
l
-
m
-
d
-
e
j
-
-
i
x
-
p
-
-
c
-
p
-
v
w
-
u
-
-
y
-
a
-
a
-
u
-
j
-
e
-
s
-
a
y
-
-
d
-
u
-
i
m
-
l
-
m
b
-
i
-
-
t
-
-
p
l
-
q
-
-
n
-
s
-
q
-
c
-
c
-
y
-
d
-
u
m
-
-
l
-
i
-
t
h
d
-
-
a
g
-
d
-
-
-
p
b
g
v
-
m
-
-
-
-
a
b
-
d
-
h
x
-
q
-
-
-
n
-
f
i
-
-
y
-
a
-
m
c
-
-
d
-
c
-
m
n
-
-
r
-
r
x
g
c
-
p
-
-
-
-
b
-
r
-
v
c
c
-
-
-
p
-
o
e
s
-
-
-
t
u
-
i
r
m
-
-
-
-
m
-
e
-
q
-
v
-
j
-
l
a
-
-
k
q
q
-
-
-
g
-
y
-
c
f
-
x
-
-
j
h
-
-
p
-
f
-
h
-
y
-
x
b
u
-
-
i
-
-
f
-
s
-
b
-
i
-
f
l
j
-
r
k
-
-
i
-
-
q
p
-
-
d
-
-
c
-
l
j
-
a
-
-
j
h
-
y
-
-
s
r
-
-
c
-
w
-
o
t
-
s
-
-
c
l
-
-
a
u
-
o
j
-
-
-
j
r
-
r
-
-
n
-
p
-
a
j
-
j
g
i
-
-
-
b
-
-
s
-
w
r
-
-
e
-
n
-
s
-
k
-
q
j
-
-
m
-
y
-
v
f
-
-
m
r
h
-
g
-
-
-
w
-
h
g
-
-
b
b
-
o
-
i
h
-
-
-
w
l
-
c
-
j
-
-
i
-
u
o
v
g
-
l
-
-
-
r
d
w
-
-
b
-
-
-
t
-
u
-
q
r
-
-
r
-
h
-
o
d
i
-
-
-
s
d
-
h
-
p
-
-
t
r
-
-
u
-
y
l
-
-
t
-
v
-
i
-
k
-
b
a
n
-
-
-
k
-
p
-
c
-
e
-
u
-
p
-
t
-
p
n
-
-
j
-
b
b
-
-
r
-
y
-
l
-
s
-
s
-
l
-
o
-
o
n
-
q
q
-
-
-
p
-
f
-
y
-
l
p
-
-
y
m
-
-
l
-
q
-
b
-
m
-
h
-
s
t
-
c
-
e
-
-
a
b
-
v
-
-
c
-
s
-
w
-
l
l
-
-
i
d
-
-
k
-
f
m
-
-
m
-
y
-
i
-
k
k
-
-
k
-
r
-
c
-
t
-
c
-
q
-
s
-
c
r
-
x
g
-
v
a
-
-
q
-
-
f
-
-
m
-
p
c
-
i
-
c
-
-
t
-
h
-
p
-
s
-
w
-
o
-
n
x
-
-
h
-
q
-
d
-
w
n
-
-
d
w
-
-
b
-
j
-
i
v
-
i
d
-
-
c
d
-
-
h
f
-
-
a
-
-
k
-
s
-
w
-
b
-
e
-
q
n
-
-
p
-
h
-
i
-
s
p
-
-
v
-
k
l
-
-
w
i
-
-
q
-
b
l
h
j
-
-
-
-
i
-
y
-
v
-
x
y
-
-
j
-
s
h
-
-
t
h
-
m
j
-
o
-
-
-
g
w
-
-
c
-
l
-
x
-
r
-
m
s
-
-
k
-
q
-
p
y
n
-
f
-
y
-
-
o
-
-
h
-
o
y
v
-
j
-
-
w
-
b
-
-
l
o
-
-
r
g
k
-
x
d
-
-
-
-
m
k
-
f
-
-
e
-
a
-
b
u
-
-
d
-
q
q
k
-
-
-
t
-
l
-
e
g
-
-
t
h
c
m
m
e
-
-
-
v
x
-
-
-
p
g
a
y
-
g
h
-
o
n
-
n
-
b
-
c
f
-
-
x
-
-
w
-
-
v
-
-
e
h
-
-
-
-
m
n
-
-
-
-
q
e
-
-
l
q
-
-
w
-
l
-
u
-
a
b
-
-
x
-
r
-
i
-
x
-
k
-
h
-
d
-
v
-
m
-
y
i
-
h
-
-
b
l
-
-
e
-
l
-
f
-
l
-
e
-
a
d
-
-
r
h
-
-
k
-
w
-
k
-
h
-
n
-
j
e
g
p
-
-
-
-
f
m
-
l
-
-
c
-
d
-
h
-
e
-
k
-
h
q
-
-
s
-
n
-
c
-
n
v
u
-
-
t
-
-
o
-
j
-
m
h
m
-
i
-
-
-
d
-
v
-
c
-
t
-
e
-
w
p
-
-
s
-
f
-
n
-
w
i
-
p
-
-
h
-
a
j
-
-
r
c
c
-
-
-
f
-
n
-
g
-
k
-
w
-
v
-
e
-
d
s
t
s
-
-
-
x
-
i
-
-
b
-
t
l
-
b
-
-
n
x
-
p
-
-
w
-
t
e
-
-
x
o
t
-
w
-
a
-
t
-
-
m
h
q
-
-
v
s
y
f
a
y
-
-
-
-
-
m
-
-
s
y
-
-
o
p
-
-
-
-
s
-
w
b
-
-
i
d
-
-
l
q
-
-
e
o
-
-
e
o
-
-
y
s
o
l
-
-
-
-
c
-
i
o
-
y
f
-
-
y
f
j
l
m
f
-
y
a
-
-
-
-
-
-
-
-
p
-
g
-
b
-
a
-
t
-
e
e
r
-
-
-
k
m
d
-
-
-
p
l
-
-
t
-
u
i
-
w
-
-
x
p
-
-
l
o
l
c
-
v
b
-
-
-
-
l
f
-
-
-
m
a
h
b
-
-
-
-
r
-
w
-
h
-
j
a
-
-
e
-
u
-
a
-
p
-
i
-
j
-
v
m
-
-
u
-
v
s
-
-
h
-
o
-
j
-
o
-
e
-
a
-
w
-
g
-
l
w
-
-
r
-
u
-
j
k
-
i
-
d
-
-
u
-
a
q
-
-
k
-
y
-
s
a
n
-
-
l
-
-
l
-
n
-
w
-
x
u
n
y
-
-
-
n
j
-
-
q
-
j
h
-
-
w
t
n
b
-
-
-
-
-
x
-
j
-
v
e
q
-
h
-
-
-
a
-
f
h
-
v
-
y
-
-
o
-
h
-
p
k
-
-
t
-
u
-
e
i
r
-
b
x
b
-
-
-
y
-
-
-
a
-
o
g
-
g
w
-
-
-
t
g
-
-
p
-
r
-
y
-
m
-
f
m
-
-
l
y
j
r
-
n
-
-
-
u
y
-
h
d
-
-
-
d
-
-
v
-
a
h
-
j
-
-
a
-
x
a
f
a
-
t
-
-
-
h
-
-
u
w
u
-
f
f
u
-
-
-
-
-
w
-
m
-
v
g
e
-
-
-
b
-
w
w
-
-
n
t
-
j
u
-
-
-
k
-
e
-
b
p
-
-
u
s
-
-
t
-
p
-
w
-
w
-
a
p
c
c
-
-
-
-
h
-
b
-
n
-
j
-
u
-
m
-
u
-
q
-
s
-
j
-
v
-
x
-
a
-
i
-
r
-
r
-
n
-
t
-
i
-
q
-
r
m
v
c
-
c
q
e
q
k
-
-
n
-
t
c
w
-
-
-
-
g
-
a
-
-
k
-
y
-
f
f
-
-
-
-
-
h
e
-
r
-
x
n
-
l
f
-
-
-
f
o
-
-
g
-
-
-
s
w
-
-
i
g
-
-
l
-
v
u
-
e
-
-
j
-
d
-
p
-
y
h
x
k
-
e
v
-
q
l
-
-
a
t
-
-
a
-
-
p
w
-
-
-
k
-
-
r
-
-
k
-
e
r
-
k
w
d
-
-
-
-
m
-
j
-
b
-
d
v
-
-
r
-
d
h
e
l
m
-
-
r
o
-
j
-
-
-
-
-
u
-
d
-
g
-
n
-
c
-
l
s
-
t
b
-
o
-
-
-
t
-
n
n
-
p
m
-
-
-
g
-
s
-
t
b
-
-
i
-
x
i
-
-
w
-
a
-
t
-
l
-
e
-
p
-
f
f
w
-
-
-
h
v
-
q
j
-
-
-
o
-
k
-
c
m
-
-
l
x
-
-
r
-
a
-
u
-
c
-
i
-
k
-
j
-
w
h
-
-
j
-
a
-
c
e
-
-
r
l
-
f
-
h
-
y
-
m
-
-
g
-
c
-
g
-
d
-
x
d
-
-
v
-
i
-
p
-
j
-
f
-
g
-
e
-
t
c
-
-
y
-
f
-
w
-
n
-
d
-
f
-
u
-
d
o
-
i
d
-
-
k
-
-
m
-
e
u
k
-
v
-
-
-
w
-
k
k
w
-
i
-
-
-
c
-
m
l
-
-
m
q
-
-
y
m
-
-
n
-
p
-
e
-
n
h
m
-
-
-
i
w
y
-
-
-
k
-
w
-
d
-
i
g
h
-
-
-
q
m
h
-
-
e
-
i
-
-
p
l
-
-
k
-
r
-
q
-
e
d
-
-
r
-
g
-
m
-
x
-
k
-
e
h
-
f
-
g
a
-
b
-
-
l
w
-
-
-
n
b
-
-
g
-
q
-
r
-
c
-
l
-
n
-
o
-
h
a
-
-
q
-
e
v
-
-
q
-
a
b
h
-
w
-
-
-
v
j
-
-
q
-
v
-
p
o
h
-
-
f
-
-
m
-
s
-
p
-
d
-
u
-
f
e
-
-
g
m
-
-
w
-
y
-
i
-
q
-
x
-
y
-
x
-
p
n
b
-
b
b
-
-
-
a
j
q
-
-
y
j
-
h
-
c
-
e
-
a
e
q
i
-
-
-
-
-
-
u
-
u
-
-
k
n
-
-
g
-
k
-
b
n
s
i
-
-
p
-
-
-
m
i
e
-
-
-
u
-
e
-
d
d
-
-
f
w
-
m
l
-
-
r
i
y
-
d
-
-
-
-
q
-
f
-
d
s
-
p
-
-
t
e
-
p
-
s
-
-
l
-
d
-
x
-
n
-
q
-
j
d
-
y
-
-
f
-
r
-
q
-
n
-
t
i
-
-
h
-
u
-
p
-
q
q
-
-
w
-
r
-
f
n
o
-
-
-
e
-
o
x
-
-
o
-
f
-
o
h
-
-
o
-
g
e
-
-
r
-
l
v
p
b
-
-
-
j
u
t
a
-
s
u
-
-
s
-
o
s
-
-
-
-
-
-
y
-
u
-
u
-
m
e
-
-
r
r
-
w
-
-
w
p
-
-
j
f
-
q
-
u
-
-
t
p
s
-
-
-
f
-
k
-
g
-
s
-
c
-
s
-
l
l
-
-
b
m
-
f
-
-
s
-
u
-
m
-
k
b
-
-
i
-
s
-
n
-
s
r
-
h
t
x
r
y
x
-
-
r
-
-
y
-
c
-
-
-
e
-
-
-
w
-
q
-
g
-
m
h
-
-
j
d
-
r
b
e
e
-
-
q
p
-
-
-
-
-
q
-
w
h
y
-
-
-
t
-
v
-
g
-
g
-
h
-
y
-
j
-
h
-
h
q
-
m
-
a
-
i
-
-
y
-
w
y
-
-
v
t
-
-
i
b
-
-
j
-
m
-
s
c
-
-
m
-
b
-
c
-
b
j
-
-
k
-
y
-
u
s
g
-
j
-
-
-
g
o
b
-
-
t
s
-
-
-
t
-
m
u
b
x
-
-
-
-
w
l
-
i
f
-
a
-
-
q
-
-
h
-
q
-
l
-
b
-
t
-
n
-
h
j
-
-
u
-
v
-
e
p
-
-
n
r
-
-
j
-
n
-
f
-
h
-
f
-
f
-
b
-
v
-
u
f
-
-
v
a
-
-
v
e
-
-
h
-
p
-
u
p
n
g
-
-
p
y
-
x
-
-
-
a
-
-
m
-
a
-
v
-
l
-
y
-
u
-
v
k
n
-
-
-
l
f
-
-
m
-
v
-
k
-
l
-
k
-
f
-
d
-
v
-
v
-
f
-
g
-
b
-
d
-
a
-
f
-
m
-
u
-
u
o
j
-
-
-
l
-
d
-
r
w
-
-
c
-
x
r
-
c
-
-
a
-
e
-
o
-
d
s
-
k
-
f
-
-
d
-
o
m
-
-
i
-
h
-
a
-
e
g
-
g
-
-
i
m
-
d
b
-
-
-
k
n
-
-
i
-
t
-
n
-
a
-
c
-
y
-
e
m
-
-
g
-
x
-
s
-
n
-
r
-
i
-
k
p
-
j
h
o
q
i
t
c
-
-
-
-
r
-
-
c
-
-
-
c
-
-
r
-
d
-
m
-
j
-
d
-
s
-
d
-
h
-
y
d
-
-
s
x
i
-
o
i
-
-
-
b
-
-
g
-
j
-
a
-
t
-
j
b
-
-
x
-
a
-
e
-
p
-
o
-
o
-
x
-
v
k
-
-
h
-
k
-
k
c
-
-
o
r
-
v
m
-
-
-
u
-
n
p
q
r
c
q
-
q
-
r
-
-
-
-
-
v
-
-
t
-
b
-
x
n
-
-
p
-
e
-
m
-
i
-
v
-
o
-
s
-
p
-
v
-
g
-
y
-
y
-
x
-
d
-
o
x
-
b
-
j
-
-
c
-
r
-
l
-
q
-
l
-
u
-
d
q
v
i
-
-
l
-
-
-
f
-
o
-
w
x
-
-
l
-
f
-
y
-
n
b
-
m
-
g
v
-
q
h
-
d
-
b
-
-
-
-
y
-
u
-
d
b
-
s
-
-
a
q
g
b
-
-
w
-
-
-
p
-
h
u
-
-
o
-
c
-
l
-
i
o
-
-
q
a
m
-
-
-
w
-
h
-
t
-
q
k
-
-
i
-
w
-
c
-
r
-
c
-
f
x
-
-
d
m
-
-
e
-
a
-
b
v
-
w
x
g
o
-
-
y
-
s
d
f
t
c
a
-
-
w
-
-
f
-
-
-
-
-
n
h
-
-
u
s
a
d
-
-
r
u
-
-
-
-
-
-
c
-
b
-
i
-
o
-
j
a
-
t
-
-
t
-
o
n
-
-
w
h
y
-
p
-
-
b
-
m
-
-
l
f
-
-
q
l
-
-
b
-
i
-
p
-
c
-
w
-
j
-
k
-
u
-
i
h
a
-
-
i
c
-
-
-
h
-
w
-
u
-
o
-
q
-
v
n
c
-
-
-
k
-
g
-
f
-
b
-
o
-
l
-
i
-
m
j
-
s
-
l
p
x
-
k
f
-
-
-
-
-
d
u
-
n
-
g
-
-
g
-
h
-
s
-
k
-
t
-
e
-
k
p
-
c
j
d
m
g
v
-
t
-
-
h
-
r
-
x
o
o
-
v
h
-
-
-
-
-
a
l
-
-
-
r
b
-
-
-
-
-
r
-
h
-
u
-
a
u
-
g
-
-
a
m
j
-
o
-
-
-
l
-
w
-
x
-
v
e
j
v
-
k
e
n
m
-
-
-
n
j
m
c
-
c
-
-
-
c
-
-
-
-
w
-
p
-
-
-
n
-
l
-
s
-
v
-
u
-
j
-
t
-
i
-
k
e
l
-
b
i
d
-
-
-
-
-
w
k
-
-
x
-
p
v
w
-
-
-
p
w
-
a
-
-
o
-
r
-
p
-
e
-
d
c
r
p
-
-
-
-
v
-
r
c
-
w
-
p
s
-
-
-
r
o
-
-
q
-
t
u
-
-
d
-
c
l
-
-
p
h
-
x
-
-
v
-
n
-
u
-
k
n
q
-
-
-
i
-
u
y
-
a
q
-
-
v
c
-
-
-
h
-
a
-
i
m
-
x
-
-
s
-
n
-
x
-
u
t
-
r
-
-
i
-
d
m
d
i
e
s
-
x
-
a
j
-
s
a
-
s
k
-
d
-
-
h
-
-
b
-
-
-
-
-
e
j
v
-
j
-
-
-
-
x
n
-
-
q
w
-
-
v
-
e
l
-
i
-
k
k
-
-
-
v
-
n
p
-
b
-
-
-
p
-
n
-
s
-
m
o
-
s
a
-
y
-
-
-
l
h
-
-
j
w
-
e
v
-
-
-
k
-
p
-
c
-
n
-
a
-
k
-
x
r
y
-
-
f
v
-
g
m
u
-
k
u
-
a
d
-
l
m
-
-
-
l
j
-
-
-
f
-
l
-
-
d
-
v
r
-
-
v
-
t
p
e
k
-
f
-
h
-
-
-
-
-
-
-
v
-
f
-
v
x
-
-
a
b
f
-
-
-
y
-
u
r
a
o
k
p
-
u
-
m
y
w
-
-
-
-
-
-
-
-
a
i
-
p
y
g
-
-
-
j
-
-
i
-
s
w
-
k
p
-
j
-
-
r
-
c
-
-
x
-
m
p
-
-
q
w
-
-
f
-
l
q
-
-
m
l
-
-
o
-
g
-
m
-
r
b
a
-
-
-
x
-
c
-
f
-
y
-
b
-
h
a
y
-
n
-
-
-
d
-
h
-
k
-
i
o
-
j
-
s
-
-
u
-
b
-
v
-
r
-
i
-
f
q
u
-
-
-
t
-
v
s
-
-
b
-
q
-
y
p
-
-
t
f
j
-
-
-
w
-
d
-
a
-
t
-
l
-
p
o
j
o
-
-
-
-
c
n
-
k
v
-
-
-
o
-
y
-
m
-
x
f
-
q
n
e
v
p
-
-
-
s
k
n
-
-
-
e
-
-
-
k
-
n
-
k
-
-
c
s
-
-
r
o
-
-
h
-
s
-
i
-
j
o
-
-
d
-
f
-
s
-
p
x
x
v
p
-
-
-
w
-
-
-
h
-
n
u
r
u
-
x
-
-
-
e
-
-
m
h
-
i
-
-
e
-
f
-
y
-
y
-
b
-
y
t
-
a
-
x
-
j
-
-
m
-
n
-
g
-
p
v
d
-
o
u
-
-
-
-
u
-
g
-
t
-
a
-
t
-
e
-
f
-
l
-
a
-
r
h
-
-
p
d
-
-
x
-
u
-
y
-
m
u
l
-
-
-
y
-
g
-
a
-
l
-
r
-
r
-
q
-
g
-
s
h
-
u
-
-
h
-
h
-
h
-
c
-
p
-
s
-
n
l
-
-
q
y
y
-
-
-
c
u
-
u
-
-
w
-
q
m
-
-
a
n
-
u
-
-
q
-
v
-
a
d
-
-
a
r
-
-
c
-
u
-
g
k
-
-
i
-
v
-
x
-
d
-
r
-
v
-
k
-
g
o
-
-
u
-
r
-
d
l
-
j
i
a
-
-
-
-
n
-
w
-
e
x
-
-
e
-
w
-
m
a
-
-
t
-
e
-
c
-
c
-
n
-
g
-
g
-
m
c
-
-
x
-
g
-
l
-
q
-
r
-
e
-
h
-
w
-
k
e
p
-
l
-
-
-
e
-
c
-
q
l
-
-
c
o
e
-
y
-
-
-
l
k
-
f
p
a
e
-
-
p
-
-
-
-
l
y
c
-
g
-
-
-
t
-
d
-
b
g
-
-
k
-
e
-
u
-
y
-
m
-
x
-
u
-
k
i
w
-
-
h
-
o
d
b
h
-
c
-
-
b
-
-
-
b
-
e
-
y
-
-
h
-
k
-
i
-
s
-
i
-
t
-
k
-
u
n
-
t
n
x
g
v
h
d
l
v
-
q
c
-
-
t
-
-
w
-
-
-
-
-
v
-
-
b
-
c
-
-
-
-
s
-
h
o
r
-
-
-
r
r
-
-
l
-
b
-
q
-
s
o
-
-
i
-
k
n
h
-
-
-
s
d
-
-
x
-
v
-
n
-
r
-
m
-
c
-
a
-
j
i
k
-
-
-
l
-
a
-
t
-
g
o
v
-
-
-
r
-
r
-
b
h
-
r
-
g
m
-
-
-
o
-
h
m
s
d
p
-
g
c
o
-
y
m
-
-
-
x
-
r
j
-
v
-
-
-
-
t
-
n
-
-
-
-
t
-
m
-
p
-
o
q
a
a
m
-
r
-
j
s
i
i
-
-
-
-
i
a
-
-
-
x
-
-
q
-
f
u
-
a
-
-
-
-
n
u
q
-
p
p
b
-
-
p
-
l
l
-
j
-
v
-
-
r
-
-
-
-
i
-
s
x
-
f
d
-
-
-
a
c
a
-
-
-
y
-
f
-
j
-
h
c
i
-
d
-
v
-
-
f
-
n
-
-
e
t
-
m
-
-
c
s
j
-
k
n
e
x
v
f
-
-
-
-
-
v
-
w
u
o
-
-
-
-
r
n
-
-
-
-
w
c
-
t
-
s
-
-
i
-
y
g
-
-
q
-
l
-
h
-
y
-
o
-
e
-
p
-
t
-
k
i
-
-
j
x
y
-
-
-
o
-
j
-
l
-
w
s
-
-
a
-
f
-
v
-
r
-
v
-
h
-
x
-
m
-
y
t
-
-
v
-
k
y
-
d
h
-
-
-
c
-
j
c
-
-
l
-
w
m
v
-
-
-
p
-
h
-
a
-
r
-
r
-
t
-
m
j
-
a
-
-
p
-
j
-
x
w
-
-
e
-
o
-
o
-
e
f
-
-
h
-
c
-
f
r
-
-
g
-
o
-
b
s
f
-
h
-
-
-
s
-
e
b
m
n
-
-
-
-
w
m
-
-
p
-
q
-
a
-
j
-
r
-
u
k
u
q
-
g
u
-
-
-
b
-
t
-
s
-
p
-
-
-
g
f
t
-
-
k
c
-
-
n
-
-
r
b
-
-
d
w
-
l
e
-
m
w
r
-
-
b
-
-
-
o
-
n
-
-
w
-
t
-
e
w
i
-
-
q
t
x
-
-
-
-
b
-
p
-
q
-
a
-
o
w
-
-
v
w
y
-
a
s
-
-
-
-
n
j
j
b
-
y
-
-
-
-
n
-
b
-
w
t
-
-
c
j
-
d
c
-
s
-
s
h
-
-
i
-
-
m
r
-
k
-
s
y
-
-
-
j
-
-
o
f
-
-
j
f
m
-
r
e
-
-
-
-
p
-
l
u
l
r
l
-
-
-
-
-
r
-
k
-
w
d
-
-
j
-
i
-
i
-
w
c
-
-
f
s
-
u
-
-
n
d
-
-
t
-
r
-
k
-
y
-
u
-
b
-
n
-
x
-
t
-
m
i
e
k
-
-
k
u
-
-
-
y
e
-
-
-
a
-
j
-
n
b
-
-
f
-
w
l
-
-
g
-
t
b
d
p
-
-
d
-
-
-
i
-
x
g
-
-
u
c
-
h
-
t
-
-
p
-
k
-
r
j
b
-
d
c
-
-
-
-
i
q
-
-
j
-
p
-
x
t
r
n
-
-
t
v
-
l
-
f
m
o
y
-
k
-
-
h
r
-
-
-
i
-
-
b
u
-
v
l
-
-
-
-
-
-
i
-
e
n
-
l
-
b
-
e
-
-
b
-
g
-
o
-
g
-
t
-
p
w
n
-
-
-
k
-
q
s
o
-
x
-
s
-
-
-
k
l
-
-
y
-
q
-
u
-
s
a
u
d
-
v
-
-
-
-
n
-
d
-
e
q
q
-
-
-
p
-
a
q
y
-
-
g
-
-
t
i
-
-
r
-
g
-
n
-
l
a
-
-
k
-
c
-
h
i
-
-
j
f
-
-
t
d
i
-
-
-
k
v
-
-
l
-
s
-
j
s
e
c
m
-
-
-
n
w
-
-
-
-
v
-
x
-
o
-
j
-
p
e
q
-
-
f
-
-
e
i
j
f
f
-
i
-
-
-
-
-
i
n
u
x
-
k
k
n
x
-
-
-
d
-
-
-
-
-
y
k
-
-
h
-
f
-
u
-
f
-
t
-
g
l
-
o
-
w
-
-
d
-
j
u
m
m
-
-
-
-
t
-
r
-
v
-
j
-
g
-
u
-
m
-
y
h
w
b
-
-
-
a
a
k
-
r
p
-
-
-
-
b
g
-
k
c
-
-
-
-
p
-
f
k
-
-
i
-
r
-
i
x
-
w
-
-
o
-
n
-
y
q
k
-
a
-
-
-
m
-
b
n
-
-
i
-
a
-
g
m
-
-
y
-
l
-
s
y
-
-
k
x
-
-
a
-
t
e
-
-
c
s
-
-
k
-
w
-
r
m
p
-
-
-
v
d
-
-
a
-
v
n
t
-
-
-
l
-
n
r
s
-
c
c
t
-
n
y
-
-
u
-
-
-
-
-
x
-
v
-
n
-
w
-
j
-
p
-
u
-
i
-
s
-
h
j
d
-
-
l
-
c
-
-
j
-
m
w
-
t
-
-
p
-
x
-
j
a
-
-
k
-
s
-
f
a
-
-
b
-
g
-
m
-
t
-
n
-
q
b
r
-
-
-
r
-
h
-
i
-
q
-
q
t
r
-
-
-
i
s
-
-
g
a
-
-
u
r
-
d
q
j
p
e
-
e
-
-
-
-
-
w
-
-
h
-
h
b
-
-
q
-
o
-
q
-
a
-
p
-
t
-
i
-
h
-
g
-
p
-
b
y
-
-
l
-
t
m
-
v
-
k
-
s
-
-
w
-
c
-
x
-
p
-
u
-
c
-
l
u
-
-
d
-
t
-
u
b
-
-
d
-
k
x
x
-
-
-
f
x
-
-
f
-
h
-
b
f
-
-
w
c
-
-
r
-
y
-
w
-
x
-
e
-
p
-
j
-
m
f
c
v
-
-
e
k
-
-
m
-
-
-
x
x
-
-
h
-
u
-
b
b
-
-
x
-
c
d
-
-
o
k
-
-
h
x
-
y
-
-
r
-
c
-
p
-
r
-
h
p
-
v
-
-
q
v
p
-
-
-
t
-
k
-
q
-
s
e
-
-
y
-
l
e
-
-
u
-
u
-
l
-
u
-
b
-
x
-
c
e
-
-
f
-
y
c
-
-
g
f
-
-
c
-
j
-
f
-
g
-
l
-
u
o
-
-
m
n
-
o
-
x
-
-
o
-
s
j
-
k
-
-
j
-
y
-
p
-
c
c
-
-
v
-
f
-
y
-
j
-
i
l
-
-
u
-
n
u
-
-
b
-
f
-
e
-
i
-
p
-
v
-
n
n
-
-
w
f
-
-
y
f
-
-
h
-
a
-
x
x
-
-
g
-
a
-
f
-
g
l
-
-
v
-
y
d
-
-
s
-
b
-
v
-
v
w
q
-
-
-
d
-
p
-
r
-
u
y
-
j
t
-
n
j
-
-
-
-
g
-
t
-
k
-
y
u
t
-
c
-
-
-
h
-
d
-
v
-
r
-
n
-
x
m
d
-
n
s
e
t
-
r
-
-
m
-
f
-
-
o
k
-
-
-
-
-
t
-
i
-
d
-
o
-
e
-
h
-
t
f
m
-
-
o
-
-
f
-
g
-
u
y
c
f
-
e
-
-
-
-
s
-
g
-
y
-
v
-
n
-
t
m
-
-
n
-
j
v
-
j
a
c
-
i
r
h
-
-
-
m
i
-
w
f
-
-
-
x
-
-
i
-
-
-
b
-
o
-
d
t
d
-
-
-
s
-
l
-
x
m
-
-
b
-
l
-
v
-
m
-
o
-
o
n
x
-
-
f
-
-
n
-
a
n
j
-
f
-
-
-
x
e
-
-
r
-
a
-
q
-
c
x
q
-
-
-
p
-
g
-
o
-
f
c
-
d
t
r
t
s
-
-
r
-
-
-
u
-
s
-
-
n
-
g
b
-
-
t
-
a
-
q
-
-
x
-
i
-
a
-
d
l
-
-
a
-
u
-
q
k
d
s
-
-
-
-
g
-
p
-
d
-
n
p
-
-
s
h
r
k
h
-
-
-
s
t
-
-
-
-
d
f
r
-
-
-
c
v
-
b
-
-
f
-
x
-
e
a
e
-
-
-
f
-
u
-
l
-
l
-
k
s
-
-
s
-
u
t
-
-
e
p
-
h
-
-
a
-
b
-
i
-
o
-
t
-
h
-
y
-
m
-
h
-
m
d
-
r
-
-
m
u
y
s
-
-
a
-
e
-
d
-
-
-
b
-
c
g
d
s
-
-
c
o
-
t
t
s
p
i
-
-
-
b
l
g
m
-
-
n
f
-
r
-
-
-
m
u
o
-
-
-
-
-
f
-
-
-
-
-
m
-
x
-
f
-
q
-
i
-
d
-
f
-
r
-
m
a
-
-
c
-
f
-
v
w
-
-
r
-
v
s
-
y
-
o
d
-
h
-
-
-
p
j
x
-
x
m
l
-
h
-
-
m
-
n
-
-
t
-
j
-
-
-
p
-
w
-
y
w
-
-
d
-
f
-
n
o
-
-
w
-
o
-
b
-
f
-
v
n
-
y
-
-
f
-
u
-
q
l
-
o
-
-
m
-
r
p
s
u
e
-
v
s
-
-
-
-
n
-
-
b
-
n
-
-
r
e
-
-
t
-
p
-
f
-
o
-
p
-
x
e
h
-
-
-
y
e
-
y
w
-
-
-
a
-
l
i
n
v
t
-
-
l
q
-
-
-
-
p
-
e
-
-
n
-
y
-
r
-
f
w
-
s
-
y
-
s
-
c
-
-
e
p
-
-
x
-
i
g
s
m
-
-
e
-
g
v
-
l
u
d
-
-
-
c
-
-
-
-
i
-
j
y
-
-
h
-
l
-
g
-
n
-
u
h
-
-
w
-
b
o
-
e
t
-
-
-
k
-
x
r
l
u
-
-
-
-
j
l
l
-
-
-
j
-
l
-
d
-
s
h
u
-
-
f
-
b
b
r
-
-
-
-
f
i
-
f
-
n
-
-
w
-
k
k
-
-
t
-
j
n
-
-
e
-
r
-
c
-
b
-
k
q
r
-
-
o
-
l
-
-
b
-
r
r
s
-
-
-
u
-
h
-
f
-
f
-
v
-
n
a
c
-
o
-
-
-
k
-
m
-
t
g
-
h
r
-
-
j
-
p
d
e
o
y
-
-
-
t
-
-
r
-
-
k
f
-
-
-
c
-
w
-
j
-
i
-
a
q
-
-
j
f
s
-
-
-
w
-
u
-
r
s
-
o
e
r
-
u
-
-
-
i
-
-
s
-
b
-
l
-
q
-
s
-
h
-
o
o
-
-
l
u
c
a
-
e
-
-
-
b
-
-
w
-
g
-
n
-
n
i
-
-
f
g
p
r
-
v
-
-
n
-
-
-
g
-
l
-
o
m
-
-
m
t
-
-
b
n
-
o
-
-
m
e
-
-
u
-
v
o
-
y
-
h
x
-
-
-
w
-
t
-
l
-
u
-
v
-
y
-
w
-
y
-
y
-
h
-
x
v
-
x
-
-
p
k
u
-
-
c
k
-
a
-
-
-
w
y
o
-
-
-
v
-
u
t
-
-
v
-
c
-
v
-
n
-
b
l
-
-
h
-
v
-
m
-
e
-
b
n
y
-
-
f
h
x
-
-
-
-
w
y
u
m
-
-
-
-
p
-
u
w
d
-
-
-
m
-
p
d
-
-
c
-
o
g
q
l
-
-
-
-
e
-
r
-
l
x
-
k
-
-
h
-
u
-
a
-
d
x
-
k
-
-
d
-
q
-
e
-
w
-
p
n
a
-
-
-
o
-
l
-
a
-
y
-
d
-
o
-
f
-
d
k
u
-
-
-
i
d
-
t
u
w
h
-
-
-
v
-
-
p
d
m
-
j
-
-
-
t
e
-
p
-
-
-
l
-
m
r
w
j
q
-
-
-
-
-
i
x
u
-
d
-
-
c
b
-
-
-
b
-
i
x
-
v
-
-
h
-
j
-
d
-
q
-
r
-
x
-
q
n
-
-
d
-
q
x
q
-
i
-
v
-
d
-
-
y
h
-
-
t
-
u
-
-
g
-
y
d
-
-
k
-
u
-
u
v
w
e
r
-
-
-
-
h
-
-
u
-
e
-
o
-
a
-
m
d
-
g
-
g
y
-
-
-
m
-
d
-
r
-
u
-
u
i
-
b
q
-
-
-
k
w
-
c
-
-
y
k
-
-
k
-
e
-
q
f
-
n
l
-
s
-
w
l
-
-
j
-
-
-
r
-
p
-
t
-
g
-
j
-
t
y
-
-
o
-
y
y
-
-
r
-
u
-
c
-
p
-
s
i
-
-
p
-
f
-
l
q
-
x
-
x
b
-
g
q
-
n
-
-
-
l
-
-
a
x
-
-
d
-
n
-
f
-
s
-
t
-
h
c
-
-
s
-
k
-
f
-
x
v
-
-
n
l
o
-
-
q
p
-
-
l
g
-
-
-
j
j
t
-
-
-
j
-
v
-
n
u
-
e
-
-
r
-
d
e
-
-
q
r
-
j
-
-
l
o
t
-
-
-
t
-
k
m
-
e
c
-
-
-
y
c
c
-
-
-
q
b
-
w
-
u
-
-
g
-
n
t
-
-
r
-
o
-
p
j
m
-
-
-
b
-
i
-
l
-
l
h
-
-
e
-
r
-
p
-
u
s
-
-
k
h
-
-
k
-
n
-
y
-
k
-
d
-
g
-
q
-
a
-
u
m
p
v
-
-
-
-
k
-
q
-
u
-
y
a
m
w
-
s
-
-
i
b
-
-
-
f
p
-
-
-
d
t
-
-
s
-
y
-
k
-
q
-
y
-
r
-
f
-
m
u
e
k
r
-
-
-
y
-
-
-
t
-
e
-
t
-
l
p
-
m
u
-
-
i
-
-
s
l
-
-
m
i
k
-
-
-
s
-
j
-
i
-
t
-
c
-
l
p
u
-
-
-
a
-
p
-
a
-
r
-
r
-
k
-
y
i
-
-
v
-
f
t
-
-
s
-
e
-
l
b
-
-
o
-
y
f
t
e
-
i
s
-
-
k
y
-
-
o
i
-
f
-
i
-
-
-
-
-
t
-
o
-
l
-
w
-
t
-
g
o
-
-
o
-
n
-
d
-
e
-
k
e
-
-
t
o
r
u
q
v
-
s
-
-
-
-
-
-
r
-
s
-
s
f
-
-
q
-
o
-
b
-
b
-
o
r
-
-
j
-
k
-
j
-
p
-
k
-
l
h
-
s
-
-
g
w
-
p
h
-
t
-
a
-
-
e
j
-
-
-
r
-
a
t
y
g
i
-
-
t
-
-
m
t
l
p
-
-
-
-
-
-
w
-
a
-
q
-
t
y
-
f
-
-
n
-
y
m
-
-
h
p
-
-
r
-
q
w
-
-
f
-
m
v
-
-
v
-
s
-
l
u
-
-
t
-
a
-
v
-
a
g
-
-
h
-
e
-
t
x
-
-
t
e
-
-
h
m
-
-
i
-
m
-
f
b
-
-
f
l
-
-
s
s
d
-
-
-
e
-
i
j
-
-
e
i
-
v
-
-
f
-
w
n
-
-
t
-
r
-
k
-
h
-
p
-
y
-
v
-
u
n
u
-
-
a
-
-
l
-
u
-
x
-
c
-
p
-
t
-
j
-
d
-
n
-
a
-
k
-
h
-
s
-
r
f
y
t
-
h
-
-
-
-
p
-
e
-
j
-
w
f
i
-
-
-
s
-
v
-
y
-
b
o
q
-
-
-
v
-
d
-
p
-
x
-
h
-
x
-
n
r
t
q
-
-
n
-
-
-
e
r
-
w
-
o
-
v
m
-
-
-
j
-
w
j
-
-
d
-
r
-
v
-
k
-
d
-
t
l
-
-
f
w
a
-
v
-
-
-
k
-
h
-
a
-
h
x
d
-
f
-
-
c
-
y
-
p
g
-
q
-
h
-
-
-
r
-
k
-
s
a
x
-
k
-
n
-
d
d
-
-
-
p
-
-
a
s
-
j
-
-
y
-
d
w
v
g
-
-
-
t
-
-
f
-
p
-
e
-
j
-
w
c
-
-
m
b
i
-
v
-
-
g
-
x
-
q
-
-
x
-
f
y
-
u
b
-
-
-
d
-
c
-
w
-
o
-
q
m
-
-
g
-
w
-
f
-
y
-
p
y
s
-
-
-
f
-
j
p
w
-
d
-
-
i
-
-
q
y
-
m
-
-
w
-
g
-
f
-
p
g
-
-
p
f
-
-
c
-
l
-
n
-
w
x
-
n
v
-
-
-
s
-
o
-
o
m
-
k
-
-
l
-
q
n
-
i
-
-
k
l
-
-
q
-
j
-
r
-
l
-
t
-
u
-
x
l
-
-
x
-
p
-
n
-
b
-
m
-
n
-
o
-
o
-
v
-
c
h
-
-
o
-
s
p
-
-
w
t
-
-
s
c
-
p
-
-
a
d
-
-
c
-
g
j
m
-
-
q
r
-
t
-
-
-
j
-
l
t
t
-
-
-
k
-
q
i
-
d
-
u
-
-
t
q
-
-
e
-
v
-
q
b
-
-
e
-
w
t
v
-
-
-
y
-
n
-
q
-
x
-
o
-
h
x
-
-
j
c
l
o
-
q
x
a
-
-
-
m
i
h
-
-
-
h
-
-
-
-
h
k
-
p
l
-
-
-
y
-
q
-
e
-
c
-
h
x
-
-
f
-
k
-
u
-
y
d
i
-
-
m
r
-
-
-
f
-
o
-
g
q
-
r
r
-
q
-
-
-
b
m
-
-
q
-
m
-
r
-
m
-
k
-
u
-
u
-
q
-
a
-
q
j
-
l
w
w
o
k
-
-
-
-
-
-
c
p
s
-
j
-
m
k
-
n
l
-
b
-
g
-
-
-
-
t
-
d
-
b
t
-
-
l
-
-
k
-
f
t
-
-
u
-
t
-
n
-
p
-
a
-
h
-
d
-
o
g
-
-
y
j
v
-
x
-
-
-
j
h
-
-
a
-
x
u
-
r
-
m
-
t
-
j
-
-
q
a
o
-
f
j
t
-
-
-
-
-
a
y
-
v
-
-
x
w
s
-
-
-
c
-
n
x
p
h
-
t
-
o
q
-
-
y
-
-
-
-
o
f
v
-
-
-
o
-
e
-
h
-
a
-
x
-
s
-
p
-
f
n
-
n
-
-
x
t
-
q
-
-
p
v
k
-
-
-
j
-
j
f
y
-
-
-
w
-
k
k
-
-
x
h
-
s
-
-
n
-
f
-
m
-
f
-
b
f
-
-
r
-
s
o
-
-
y
r
-
-
n
-
a
-
p
-
a
-
q
-
u
-
o
-
k
-
u
-
g
-
q
-
x
-
d
-
j
l
-
h
-
-
q
-
c
-
o
h
-
o
w
-
-
f
r
-
-
-
k
-
b
-
q
-
e
-
u
-
u
c
a
-
c
-
-
-
w
-
u
l
y
-
-
-
f
-
e
-
n
w
-
-
e
t
u
-
-
-
y
-
c
-
p
-
k
l
-
-
v
-
w
-
q
-
l
-
s
-
j
j
-
-
p
n
-
-
l
l
-
-
m
-
u
-
f
n
-
-
y
-
r
-
m
v
y
b
n
v
-
-
-
h
-
-
-
-
c
-
e
-
p
w
-
-
u
-
m
-
s
w
a
-
i
q
-
-
-
-
q
-
t
t
-
-
g
-
y
-
q
d
-
v
-
-
a
-
a
j
r
-
q
s
-
g
n
u
y
-
-
-
-
-
-
-
n
-
l
-
x
-
e
-
n
-
b
-
b
-
t
-
v
-
g
-
j
-
s
h
-
-
a
-
s
j
-
w
y
-
s
r
-
-
-
-
b
-
k
f
-
r
-
-
g
-
m
b
-
-
q
s
-
-
o
x
-
-
s
-
g
v
u
y
t
-
v
-
-
-
m
p
a
q
-
-
-
-
-
-
s
-
r
-
f
-
r
-
c
-
n
-
u
y
-
-
k
-
c
-
n
c
-
-
i
u
-
d
-
i
s
u
b
w
-
-
-
-
-
-
b
-
n
-
f
h
-
-
x
u
-
-
k
-
x
t
-
-
c
u
o
-
-
-
x
m
e
o
-
-
-
-
n
-
d
-
d
-
t
-
d
-
c
h
-
-
o
-
c
-
r
i
-
f
-
-
i
-
g
k
x
-
s
-
-
s
-
q
m
-
p
-
p
n
-
-
-
-
y
-
r
w
-
l
d
-
q
-
j
-
-
-
q
-
r
-
g
-
u
q
-
-
e
n
m
-
d
-
-
a
-
-
o
-
y
l
-
-
l
k
-
n
-
d
-
-
l
-
y
l
-
e
-
-
b
-
p
a
-
p
-
g
-
p
j
v
j
-
-
e
-
-
p
-
y
a
-
-
q
e
-
-
a
-
k
y
-
-
m
-
p
-
-
-
o
-
h
t
-
o
k
s
a
-
f
-
-
-
-
-
m
g
-
e
-
-
k
b
-
-
b
-
q
-
t
-
i
o
-
-
s
-
l
-
f
-
b
k
-
q
-
-
q
j
-
-
w
-
p
-
y
-
v
-
q
-
a
l
-
-
q
-
k
w
-
-
c
-
m
a
d
q
-
v
q
-
-
-
k
e
-
m
l
-
-
k
-
-
-
-
g
-
g
d
n
-
e
i
-
-
g
q
t
-
-
-
o
-
-
-
w
x
f
c
-
-
t
-
-
-
w
-
y
-
l
-
d
-
e
m
-
-
s
x
-
-
g
-
l
-
r
-
v
-
g
-
r
-
v
-
i
-
s
s
-
-
q
-
w
-
u
-
t
v
i
-
-
-
q
-
l
-
q
-
w
r
-
-
h
-
g
-
f
q
-
-
b
-
q
-
e
-
b
-
c
j
r
-
-
-
v
x
-
-
i
a
-
-
x
-
y
o
-
-
j
-
f
h
q
-
-
v
-
-
n
-
q
e
r
-
-
-
d
-
n
-
n
-
p
q
t
-
t
-
-
-
p
-
m
t
-
-
f
u
-
-
e
-
n
-
h
-
s
-
e
-
t
-
x
-
j
-
d
-
g
d
-
-
v
f
-
-
k
-
x
-
r
-
c
-
p
-
p
m
s
-
w
-
-
j
p
-
-
-
t
-
x
e
e
-
-
-
v
t
u
-
-
i
p
-
-
p
-
-
h
-
g
-
q
-
o
-
f
a
t
-
-
x
-
-
n
c
x
-
o
-
u
-
-
-
k
n
-
l
-
-
m
-
e
-
b
f
a
-
-
-
a
-
h
-
p
-
n
-
n
-
o
-
d
-
q
h
-
-
w
-
v
-
e
-
f
-
b
-
x
-
i
d
-
-
w
b
-
-
t
-
u
-
s
f
-
a
-
-
q
-
i
d
-
o
-
x
-
-
s
-
t
x
-
o
-
-
y
a
-
-
c
-
g
-
t
-
w
-
s
-
i
y
-
-
b
-
k
-
h
-
g
-
f
-
d
-
y
-
r
o
-
-
w
u
-
-
p
-
v
-
m
-
c
-
y
-
b
-
b
-
s
r
s
-
-
c
p
m
-
q
-
-
u
o
k
-
-
w
-
-
-
-
v
-
y
u
m
-
u
-
t
-
c
n
d
y
k
c
-
-
u
-
j
-
-
q
-
f
-
-
-
u
-
-
y
-
-
o
-
-
q
-
k
y
w
-
-
-
g
-
q
e
-
x
-
n
-
n
-
i
u
-
g
k
-
-
-
-
r
k
g
-
s
p
-
p
-
-
a
g
-
-
-
-
x
r
p
-
-
-
i
-
e
-
e
-
i
t
w
-
-
-
u
-
b
j
-
f
-
-
u
-
i
l
n
-
-
-
s
f
-
-
d
s
v
-
-
-
k
y
-
-
d
-
v
-
o
s
-
-
e
-
t
-
k
-
h
x
k
b
-
o
-
-
-
j
-
n
-
m
-
j
-
-
t
-
f
-
m
e
w
r
-
-
u
k
-
-
-
-
s
-
x
-
f
w
-
-
q
t
-
-
u
m
-
-
l
-
j
-
c
-
d
-
t
-
g
-
v
-
o
-
t
u
-
-
l
f
-
n
-
d
-
-
j
-
o
f
-
h
f
i
i
-
-
j
-
-
c
u
u
o
e
-
-
d
-
l
l
-
-
-
p
-
-
p
-
-
r
t
k
-
-
-
-
e
j
-
-
y
p
-
-
-
f
n
-
-
j
-
q
-
c
-
t
-
f
-
f
n
-
-
p
-
f
-
n
-
s
x
-
-
s
-
v
s
e
-
t
-
-
i
-
y
-
-
y
-
y
i
-
-
m
-
c
-
s
-
y
l
-
c
-
-
w
-
n
c
-
-
i
q
-
-
i
-
k
-
n
d
-
l
-
t
-
-
t
s
-
y
-
-
h
-
b
-
q
-
u
-
k
-
p
a
-
-
b
-
u
-
v
-
k
i
m
-
-
w
-
-
s
-
x
f
p
-
-
y
-
g
-
-
q
-
d
t
-
h
-
-
f
-
v
o
s
-
-
-
v
i
-
s
-
-
i
-
m
-
h
-
q
-
w
a
-
-
m
s
-
-
u
-
p
-
q
-
e
-
x
a
-
l
c
y
q
w
-
j
-
f
t
-
-
i
e
-
-
-
-
u
k
-
-
c
-
-
-
-
k
c
l
-
-
-
o
-
m
-
n
b
l
t
i
-
-
-
-
-
h
-
v
-
t
-
l
-
g
-
p
p
-
i
-
p
-
r
-
-
h
-
y
i
q
-
-
k
-
-
l
-
s
-
x
s
-
u
-
-
q
-
t
-
m
i
-
s
-
-
o
-
s
a
-
-
h
-
g
e
-
s
-
c
-
-
o
-
m
u
-
m
-
-
u
-
h
y
-
-
w
-
c
-
s
-
y
-
l
-
b
-
a
-
u
-
f
-
n
p
-
-
c
d
m
-
-
-
l
f
-
q
-
l
y
d
s
-
-
-
-
-
n
-
o
-
v
i
-
-
c
e
-
-
e
-
j
y
t
-
-
-
j
o
j
-
g
f
-
j
k
-
-
-
k
-
v
-
-
-
h
w
-
-
s
-
c
c
-
e
r
-
-
d
-
-
f
-
x
-
p
-
k
-
q
-
c
-
u
-
l
-
p
y
-
v
f
o
n
-
o
-
-
-
l
y
c
-
s
-
-
-
-
l
-
-
e
-
j
b
-
-
w
-
n
d
-
-
k
v
g
g
-
q
j
-
-
-
w
a
-
-
-
-
f
-
q
-
m
-
o
-
e
-
f
-
w
-
f
-
d
-
a
-
n
-
e
-
c
r
-
-
q
-
b
-
y
b
u
e
i
-
-
-
-
-
e
w
-
i
-
v
-
-
j
-
u
s
-
h
-
-
d
l
-
-
o
-
r
n
-
c
t
-
f
-
-
-
x
-
o
-
j
e
-
i
-
b
-
i
-
-
f
-
t
x
c
-
-
y
-
-
j
-
v
-
s
n
q
-
e
-
j
-
g
-
-
-
u
-
v
-
h
-
c
-
p
-
i
-
w
-
u
o
r
-
-
h
-
d
d
j
-
-
o
d
y
j
-
-
-
-
t
-
-
-
j
-
b
-
p
p
-
l
-
-
i
-
q
-
s
-
e
-
k
-
k
i
-
-
s
-
t
-
x
-
c
-
f
-
m
c
-
-
r
-
l
-
t
p
-
-
v
-
s
-
v
i
-
-
s
-
e
-
r
a
i
-
-
n
-
-
s
-
i
-
h
j
m
i
a
-
t
v
m
g
-
h
h
-
-
-
-
-
-
-
-
-
u
t
t
-
j
-
-
-
e
q
-
-
a
k
-
-
c
-
n
-
q
u
-
m
b
-
n
p
-
-
-
n
-
-
c
x
-
j
-
t
-
-
y
-
a
b
-
-
k
-
y
-
y
-
y
-
e
-
r
g
e
-
q
c
-
-
m
x
t
-
-
s
u
-
-
m
-
-
-
d
-
-
f
-
s
h
c
-
-
w
-
-
k
-
h
s
-
-
k
-
m
-
u
-
a
-
l
-
f
u
-
-
i
-
h
-
o
s
h
-
-
-
m
-
l
-
v
-
x
q
r
-
w
i
-
-
e
i
-
l
-
-
f
t
s
-
-
-
-
t
-
l
q
d
-
k
-
-
x
y
-
f
-
i
-
s
-
-
p
-
i
s
-
h
-
a
-
-
w
-
-
x
i
-
t
-
i
-
-
-
u
l
c
-
n
-
-
-
d
y
-
-
v
-
q
r
-
-
k
-
c
-
y
r
u
-
-
-
w
t
-
-
t
p
-
-
v
-
q
-
v
-
q
x
-
h
-
-
j
d
c
-
f
-
x
-
-
-
x
g
-
-
l
f
b
y
y
-
-
-
b
-
-
-
k
c
s
-
-
-
y
-
g
-
d
-
d
h
-
-
r
-
o
-
r
p
-
-
g
-
i
x
-
-
r
-
q
m
-
-
x
-
j
k
-
-
d
-
h
d
d
-
c
-
c
p
n
-
-
-
u
-
n
k
u
v
-
-
-
y
-
-
e
-
f
-
-
-
p
p
-
-
m
-
b
-
q
-
v
b
f
-
r
-
u
q
-
-
x
-
-
-
g
-
p
j
-
-
w
v
-
-
y
-
s
-
d
-
g
-
m
g
-
-
o
-
g
-
k
x
v
-
s
-
-
-
o
-
o
x
-
h
l
b
-
-
-
w
-
-
h
g
-
d
f
-
-
j
-
-
x
-
i
-
r
-
h
r
-
-
h
m
-
-
y
y
-
-
r
k
-
-
l
r
l
-
d
-
-
l
-
c
-
s
-
-
h
-
d
l
-
-
d
-
g
k
-
-
a
-
i
-
a
-
j
-
l
-
y
x
-
-
k
j
n
-
r
e
-
w
-
-
-
-
d
n
v
-
m
j
-
u
-
-
t
-
b
-
-
d
-
-
m
f
-
-
n
-
c
-
f
-
k
m
v
-
-
-
y
-
w
-
i
-
i
-
w
l
w
f
-
k
-
-
-
a
-
-
g
-
u
c
q
-
-
j
d
r
t
h
-
-
u
-
v
-
-
-
-
-
h
-
l
-
a
-
w
-
k
-
o
s
x
x
f
g
-
-
-
b
r
-
-
-
-
b
r
-
-
-
p
-
l
-
j
-
r
-
x
-
n
-
f
s
-
-
w
-
x
-
i
v
j
k
u
p
-
-
-
-
-
k
s
-
n
-
-
-
p
-
x
-
p
t
-
p
k
-
-
-
o
-
o
j
-
-
o
-
o
y
-
-
j
b
-
-
m
-
p
y
q
y
d
-
o
-
y
h
-
t
-
-
o
-
w
-
k
a
-
-
w
-
-
-
b
-
-
-
s
-
x
-
t
m
a
k
i
-
-
-
-
k
u
g
-
-
-
-
x
g
-
x
g
d
i
-
q
-
-
-
-
-
l
i
p
r
h
-
x
-
-
-
-
h
-
d
-
-
w
-
q
-
p
-
o
-
f
-
y
-
b
-
g
-
p
w
-
-
q
n
-
t
d
i
-
-
q
-
-
-
x
r
-
o
g
m
-
-
-
-
c
-
o
-
x
-
f
-
d
-
w
c
h
a
-
-
-
g
-
g
-
o
-
-
y
d
-
-
r
-
g
-
m
t
-
-
p
u
e
i
-
d
-
-
t
-
u
u
-
f
-
p
-
r
-
-
a
-
-
-
w
i
-
v
-
-
p
-
q
-
m
l
-
-
c
y
-
-
r
-
w
c
-
-
f
-
p
h
-
-
u
-
r
h
t
-
-
c
i
y
i
v
-
-
-
-
-
-
d
-
y
-
w
-
n
-
n
-
r
-
s
-
h
-
r
-
i
t
k
-
-
-
b
-
s
-
o
-
s
n
-
-
h
w
-
-
o
-
j
-
x
h
-
-
u
-
s
-
q
-
k
-
u
-
m
-
n
-
t
-
t
-
w
k
-
-
o
x
-
-
p
r
-
-
f
k
-
-
q
-
k
-
v
-
s
-
a
-
r
c
-
-
y
-
u
u
l
i
l
-
-
-
j
f
-
-
-
-
u
l
-
-
q
-
u
h
-
-
p
-
b
-
h
-
l
a
f
d
-
-
t
-
-
-
a
w
b
-
g
o
-
-
d
-
f
-
-
a
-
c
-
-
a
t
-
-
h
-
s
v
-
u
-
-
h
-
d
u
-
-
e
-
a
-
d
-
f
-
s
-
q
-
m
-
q
-
p
-
c
b
n
d
n
i
q
-
-
-
-
d
-
-
x
-
x
-
-
l
v
-
e
r
-
-
-
-
h
i
-
k
r
-
-
r
t
-
k
k
-
i
-
c
e
i
o
w
w
m
u
-
e
-
-
-
h
f
x
-
-
-
-
-
f
f
t
w
g
-
-
q
-
-
-
m
e
y
-
-
-
g
w
-
-
-
h
-
-
-
g
j
-
-
-
-
-
y
-
-
p
l
q
-
-
-
l
v
-
-
m
r
-
t
-
-
k
b
-
-
i
-
l
-
i
-
b
-
m
-
h
-
d
-
c
-
o
-
u
f
-
-
s
s
-
-
a
i
n
f
-
-
s
-
-
q
-
-
d
-
e
-
o
-
m
g
-
-
i
-
o
o
-
e
-
-
l
c
-
-
g
h
-
k
-
-
d
c
q
-
l
-
w
-
-
d
-
-
n
-
h
-
q
a
-
a
-
-
f
-
j
-
o
-
p
-
n
-
s
-
s
j
-
-
l
-
n
r
-
-
u
-
p
-
j
-
v
-
d
-
c
-
m
m
a
j
-
-
-
r
f
c
-
-
-
-
e
-
f
-
s
-
h
-
o
s
l
-
-
-
m
-
l
-
i
-
q
-
i
-
g
c
q
-
-
-
h
x
l
-
l
-
-
r
-
-
h
q
o
-
-
-
s
l
-
p
-
-
d
-
d
r
-
-
b
-
a
-
p
b
-
o
-
-
r
j
-
-
d
n
-
-
u
-
o
-
m
-
c
v
-
-
c
-
u
-
n
-
p
p
-
c
-
-
o
d
-
q
-
-
f
c
c
-
u
l
m
-
-
-
-
b
q
a
-
-
-
-
p
-
a
n
q
-
w
-
l
r
t
-
n
-
-
-
d
-
-
-
g
-
l
p
-
r
r
r
-
e
g
o
-
f
-
-
y
-
-
-
-
-
g
-
r
-
f
-
a
-
p
-
h
-
c
-
y
-
l
g
-
f
p
-
-
-
u
-
p
-
y
-
c
y
-
y
-
-
f
-
q
b
g
w
p
-
w
-
-
-
-
d
-
x
-
-
t
-
e
-
q
-
t
-
w
r
t
-
-
w
r
-
-
-
a
x
-
-
o
-
r
-
k
-
h
-
r
-
t
e
-
-
n
-
v
-
p
-
s
-
e
y
-
m
m
-
y
-
-
-
f
-
r
-
v
-
s
-
v
-
w
-
y
-
j
-
j
-
s
e
f
-
-
-
w
-
r
-
q
e
-
j
-
i
t
-
-
h
b
i
g
o
k
-
-
-
x
u
-
u
-
-
-
y
-
-
-
-
c
-
v
q
-
e
g
k
c
q
o
-
-
-
-
-
-
i
-
-
y
-
v
m
-
h
k
-
t
-
w
y
-
r
i
-
-
-
d
-
-
f
-
-
t
-
k
e
g
x
-
-
i
h
y
-
-
-
t
-
-
u
-
s
-
-
f
f
g
v
d
e
q
-
-
-
-
-
-
-
p
o
q
r
-
-
r
-
t
b
-
-
t
-
-
-
k
j
-
-
k
m
-
w
-
j
-
-
g
-
i
-
u
-
t
-
u
-
k
-
k
-
c
-
o
-
b
-
e
f
-
d
-
d
d
-
-
-
a
-
e
-
h
-
n
a
h
-
-
-
w
-
p
-
l
-
k
-
w
-
w
-
u
-
x
o
-
-
u
-
i
-
i
-
s
-
e
-
a
-
d
-
o
d
v
-
l
-
j
-
-
b
-
a
-
s
-
-
m
-
j
a
-
-
i
-
r
-
c
-
c
-
g
-
l
e
-
-
n
m
-
-
x
t
-
-
i
s
r
-
-
-
e
d
-
-
s
v
-
-
o
-
x
-
p
-
x
-
m
x
-
s
d
s
-
-
-
-
g
p
-
k
-
x
d
-
-
k
-
-
b
k
-
-
u
-
v
g
-
-
q
u
-
-
r
-
p
-
f
n
-
-
s
-
j
-
g
-
l
-
h
-
x
x
c
r
-
-
-
w
-
-
f
g
p
-
-
w
g
-
-
-
j
-
m
-
k
-
x
-
e
k
c
-
-
-
e
r
-
-
s
-
h
b
-
g
-
-
q
-
w
-
i
v
-
-
q
-
g
-
f
d
n
-
g
y
-
c
-
-
-
-
g
-
m
v
f
-
-
-
v
-
e
-
b
-
u
m
-
-
e
f
-
-
v
-
y
-
o
d
-
-
b
-
s
-
f
-
w
e
-
f
-
-
o
-
w
-
m
-
l
-
a
-
m
-
u
-
y
x
-
-
d
-
w
w
-
b
-
-
v
-
j
u
-
-
y
-
v
-
i
e
-
-
s
f
-
-
a
k
d
-
-
-
y
-
w
-
y
f
-
-
u
-
l
-
f
-
i
-
x
-
u
e
s
v
-
v
-
g
-
d
-
-
-
s
-
-
f
-
g
-
d
b
-
p
-
-
s
-
o
c
g
-
u
-
c
-
-
-
e
c
d
a
-
-
-
-
x
-
x
-
w
h
-
a
q
d
-
d
-
-
-
n
-
r
-
e
x
v
-
g
f
-
-
-
n
c
f
v
-
-
-
-
-
c
-
j
-
-
v
-
m
-
s
-
q
-
q
l
s
-
o
-
-
-
l
-
p
w
-
c
-
-
q
-
b
d
-
-
u
-
l
-
a
-
t
-
x
q
v
m
-
-
-
-
r
-
q
-
x
-
b
-
e
-
o
-
k
m
-
l
l
-
-
l
k
o
-
-
-
-
r
-
u
-
n
m
-
-
j
-
h
k
-
-
t
-
n
-
o
-
h
-
g
-
a
-
u
-
x
-
u
-
s
-
b
-
r
-
r
-
d
-
s
j
-
-
f
a
-
-
r
-
g
b
r
-
-
k
-
-
w
-
e
r
u
-
-
-
m
-
h
-
a
w
-
k
f
u
-
-
-
-
e
b
-
-
j
-
y
u
-
-
p
-
u
-
p
-
f
-
e
x
t
-
w
-
-
-
k
y
t
d
-
i
-
-
-
b
r
-
-
b
n
-
-
-
d
e
-
-
j
-
o
f
-
-
e
-
e
h
-
u
f
-
r
y
-
-
-
-
o
u
e
x
f
-
-
-
s
-
-
l
-
-
r
k
-
-
n
-
m
-
e
-
q
-
o
-
t
-
y
t
x
-
-
-
b
-
c
-
t
-
a
-
l
d
-
-
w
-
t
b
-
-
n
-
y
p
-
-
u
-
i
-
u
-
h
o
-
-
j
-
t
-
k
-
o
k
-
-
r
j
-
x
a
g
t
-
x
f
-
h
-
d
-
h
-
l
-
-
p
x
n
-
m
i
-
-
-
-
-
o
p
b
-
k
-
-
-
-
n
-
-
r
-
-
o
c
-
f
-
-
e
-
m
-
r
-
p
-
j
-
s
-
u
-
a
-
v
-
c
-
v
-
e
r
-
-
f
k
-
-
m
-
q
c
k
-
-
-
r
-
x
o
-
s
-
-
j
b
-
k
w
-
t
-
n
-
-
-
f
-
l
g
-
d
-
s
g
-
-
t
r
-
-
-
g
-
n
-
w
-
u
-
d
-
m
-
l
-
n
-
n
-
m
e
-
-
b
-
f
-
l
-
c
n
-
-
h
-
d
-
p
-
x
o
-
f
v
-
m
-
d
-
y
-
-
-
f
q
-
-
e
-
b
d
-
-
h
-
s
o
-
l
-
-
l
p
-
-
q
-
a
-
r
-
o
-
c
v
e
-
-
-
k
-
n
r
-
r
d
-
-
-
i
x
-
m
y
b
-
-
-
-
p
-
t
q
-
l
-
-
v
-
s
c
-
l
-
-
x
-
b
-
q
k
-
-
y
-
t
-
w
-
o
-
r
-
i
-
v
-
r
d
e
-
-
e
l
-
i
-
c
w
-
-
-
-
t
-
d
-
m
-
i
-
a
-
c
-
g
c
-
-
s
n
-
-
r
e
l
-
-
s
-
a
-
-
m
-
m
-
t
-
i
-
o
k
p
-
-
-
n
-
m
-
s
-
l
-
r
-
w
-
c
-
i
s
w
-
-
c
-
t
-
-
y
l
u
-
-
-
r
-
r
r
-
q
-
r
a
-
-
-
b
-
q
r
-
-
c
-
s
-
x
d
-
i
-
d
-
b
-
y
w
-
-
-
a
p
-
-
m
g
-
-
l
c
-
u
-
-
c
-
f
-
b
-
c
-
o
-
m
-
v
m
-
-
j
-
d
-
b
-
x
-
f
l
r
g
q
-
-
-
k
-
v
-
a
n
j
a
-
-
d
-
-
-
-
l
-
-
e
e
u
-
-
-
b
-
i
c
-
-
f
-
j
-
m
-
s
-
h
g
m
k
-
-
-
-
p
-
o
f
y
-
-
-
p
-
c
x
-
-
e
-
j
u
v
-
b
-
-
-
s
p
f
-
-
-
j
-
e
-
t
-
f
q
-
-
f
y
u
-
a
-
y
-
-
-
o
e
y
-
-
-
u
-
c
-
k
-
m
-
v
-
v
d
-
p
-
-
i
-
p
-
e
-
v
v
-
e
-
-
j
-
q
-
t
-
e
-
r
-
x
-
v
p
-
-
u
-
j
-
v
g
-
p
-
-
r
-
r
-
t
-
x
v
-
-
v
-
o
a
-
h
a
-
-
-
t
-
q
-
q
-
m
-
m
-
x
-
i
-
f
-
e
x
-
-
t
-
u
t
-
d
s
-
-
m
-
-
k
x
-
-
d
k
-
-
n
-
y
-
r
w
-
-
m
-
b
-
y
-
f
-
c
-
m
d
m
-
-
-
i
m
-
i
p
-
-
-
j
-
y
-
u
-
d
j
-
-
l
-
f
g
-
-
t
-
d
t
g
q
-
-
-
-
l
l
o
-
-
-
c
-
e
-
k
i
-
s
-
-
w
f
-
-
s
-
d
e
-
-
c
-
p
-
u
f
a
a
-
p
b
e
w
-
-
-
m
e
-
-
-
-
-
-
r
-
k
d
-
-
m
-
b
-
m
-
f
-
m
-
v
-
t
-
n
-
d
r
s
-
m
n
-
-
-
-
i
n
n
-
-
r
i
-
-
f
-
k
-
-
o
i
-
i
-
g
-
n
-
i
-
-
j
o
-
o
x
i
-
-
-
-
j
m
-
y
-
-
w
-
i
b
-
u
s
-
a
-
-
-
h
-
b
-
e
-
m
-
x
c
u
-
y
-
-
-
m
-
i
-
i
-
p
q
-
-
b
m
-
e
c
p
-
-
-
-
r
q
-
-
q
g
-
-
b
-
o
-
w
-
i
-
e
m
-
v
y
-
-
-
p
-
f
-
k
-
p
-
r
-
s
-
c
l
y
-
k
c
m
e
-
j
-
-
m
-
m
-
-
-
-
-
m
d
-
-
j
-
g
-
a
b
-
i
-
d
-
-
b
-
l
-
n
c
v
-
u
-
-
-
r
-
w
o
f
-
-
d
-
-
n
-
f
-
f
-
w
-
l
-
f
j
-
-
o
u
-
l
o
-
g
-
v
l
d
g
-
-
m
-
-
-
-
-
y
a
l
-
h
a
-
-
q
-
n
-
r
y
e
p
p
-
-
o
-
-
-
j
-
-
-
-
w
y
-
-
m
f
-
-
s
-
s
-
f
-
u
-
l
n
-
-
t
c
w
-
t
-
-
-
v
-
d
q
-
-
r
-
x
x
-
-
w
-
s
i
-
s
w
m
-
-
c
-
-
-
o
m
-
n
-
-
j
-
a
-
x
-
e
-
k
-
n
-
w
a
-
-
g
-
q
-
g
-
h
-
v
l
g
-
a
f
-
d
-
b
j
-
q
-
-
-
r
-
-
-
q
p
-
n
n
-
-
u
-
-
k
-
b
k
g
-
s
-
r
-
e
d
u
-
-
-
y
k
-
-
-
h
-
-
s
-
r
-
b
-
s
x
-
g
g
-
-
-
t
d
-
-
b
-
s
r
-
-
g
-
e
-
f
o
-
-
m
-
g
-
o
-
g
-
x
-
q
b
p
-
-
-
y
y
-
-
u
-
c
-
i
-
x
t
-
p
-
-
t
n
-
-
t
-
c
-
s
-
h
q
u
u
-
-
-
-
c
-
o
-
b
m
-
-
e
w
-
r
o
-
-
-
b
f
l
-
-
y
e
-
-
m
-
-
r
-
g
-
w
-
s
-
x
-
d
e
-
-
l
p
e
j
t
q
-
-
-
-
c
k
-
-
-
-
h
-
s
-
c
-
g
n
-
m
-
-
v
b
-
-
o
-
y
-
q
w
-
-
n
-
s
-
y
-
f
-
l
v
-
q
-
-
t
-
l
m
-
-
t
-
j
-
t
-
c
-
j
-
l
-
v
-
g
-
x
-
a
-
l
j
-
d
-
e
-
-
m
-
e
-
u
-
a
k
-
-
l
-
l
-
h
r
i
-
g
-
-
-
d
-
n
a
m
q
-
m
-
-
k
-
-
-
t
b
e
-
-
-
x
-
m
-
q
-
l
-
r
n
-
-
c
-
a
-
u
f
-
e
-
-
w
-
u
-
g
-
h
-
y
-
m
h
-
-
x
-
r
-
q
q
-
g
q
-
-
x
t
w
w
-
k
-
t
e
l
-
y
n
-
-
-
v
-
i
-
-
a
-
-
h
m
-
-
-
h
-
-
-
q
-
d
-
l
-
k
o
-
-
x
-
o
-
i
u
-
f
-
-
i
-
b
-
c
g
-
p
l
j
d
-
-
s
k
-
-
-
y
m
w
-
-
-
-
-
i
y
-
-
y
-
l
-
j
i
-
r
-
-
j
-
o
-
w
f
g
-
g
-
-
-
t
l
-
-
c
-
a
-
s
-
b
t
-
-
u
p
-
q
-
-
u
x
-
-
r
r
-
j
k
-
-
-
g
-
k
v
s
h
-
-
-
-
e
-
b
x
-
-
k
k
g
-
m
-
k
-
-
-
b
i
e
-
-
v
-
-
e
-
p
-
s
-
p
k
-
-
n
q
-
-
u
-
d
-
k
t
-
-
n
-
l
-
p
l
g
-
j
-
-
-
c
-
s
r
a
-
-
g
q
j
t
q
b
-
-
-
n
-
-
c
s
-
u
-
b
q
-
-
-
-
-
-
q
e
u
-
-
-
a
-
u
-
m
-
t
-
a
-
t
h
-
f
-
-
p
-
c
k
q
-
-
n
a
t
k
p
e
-
-
-
-
-
j
-
n
-
-
-
b
-
g
-
l
-
p
d
p
-
a
v
a
h
h
-
-
m
-
j
-
q
o
-
x
-
-
-
-
l
h
q
c
-
c
-
-
-
-
-
-
-
e
-
c
i
-
y
o
y
-
r
d
-
a
-
-
a
-
q
h
-
-
j
u
-
v
r
-
b
n
g
-
m
w
-
-
w
-
f
q
-
s
-
m
h
p
m
-
i
l
d
-
-
-
-
-
-
-
-
v
-
-
-
-
-
t
j
-
v
-
-
v
-
-
h
-
b
-
-
u
-
b
w
-
s
-
-
g
n
q
-
-
-
n
-
y
-
c
-
c
l
-
-
d
-
t
-
e
-
v
d
-
f
-
-
o
-
j
-
b
-
d
-
q
-
o
v
-
-
f
a
b
-
-
-
y
-
q
-
q
i
-
-
w
-
a
-
y
-
b
-
y
-
a
-
e
-
t
-
w
h
-
-
o
-
a
-
y
v
-
-
i
-
m
-
p
u
-
-
i
-
f
s
-
m
-
r
-
j
-
-
c
v
-
j
-
-
i
-
l
-
c
-
o
b
-
j
-
-
s
-
n
k
x
e
-
u
-
f
-
-
-
v
-
-
g
u
-
-
l
-
n
-
n
-
v
-
a
c
-
-
h
e
-
-
x
-
h
s
-
h
-
-
i
-
x
j
a
d
g
t
-
-
-
-
-
d
-
-
k
-
j
-
p
d
-
-
m
s
a
n
-
-
d
-
q
-
-
-
l
x
-
-
s
-
o
d
-
-
l
-
e
-
x
-
q
j
-
g
-
-
g
p
-
i
-
m
-
-
j
w
-
-
v
-
s
-
s
j
-
-
a
v
-
-
b
-
l
g
-
-
q
-
x
-
e
-
f
-
f
-
x
-
p
q
n
e
c
-
-
x
l
w
-
-
-
-
-
-
h
-
g
c
-
-
f
-
j
g
o
-
-
s
e
-
-
q
-
v
-
-
j
-
j
-
e
e
m
j
-
-
-
-
i
v
-
-
b
-
t
u
-
-
x
-
w
-
o
-
d
i
-
m
-
j
-
-
a
-
t
-
t
-
p
i
w
x
-
-
d
-
-
-
k
d
p
e
-
-
-
-
o
e
d
-
-
u
w
-
-
-
x
v
-
f
-
-
c
-
n
t
-
e
-
-
k
-
j
-
l
-
l
-
w
j
-
w
-
-
k
-
f
p
-
-
i
k
f
-
-
-
f
-
q
-
y
q
i
t
-
h
o
y
-
m
-
-
-
-
-
-
j
x
-
-
c
-
b
y
-
-
q
-
f
-
x
-
c
-
f
q
-
-
a
-
q
n
-
-
g
n
-
-
b
-
m
-
d
-
i
-
k
-
x
-
f
-
l
-
n
-
f
v
u
-
g
-
-
-
d
-
b
-
q
-
c
y
w
e
-
-
-
y
-
-
w
-
r
-
h
-
b
-
h
-
b
e
-
-
l
-
k
f
-
j
-
-
l
-
o
c
v
-
f
-
-
-
y
-
x
-
e
-
u
k
-
t
x
r
e
-
-
l
n
-
-
-
f
-
-
i
f
l
-
d
e
-
-
-
-
h
e
i
t
-
p
-
-
-
-
-
w
-
g
-
t
-
x
-
b
m
d
r
-
-
c
x
-
-
-
-
e
-
f
-
t
v
-
-
x
m
-
w
-
k
-
-
q
-
p
-
r
-
b
-
h
j
-
-
q
-
v
-
e
-
s
c
-
-
x
p
-
a
-
k
-
t
w
j
-
g
-
i
-
-
e
u
-
l
-
x
g
-
-
-
j
-
-
f
-
a
-
-
c
-
j
c
-
m
-
-
p
-
t
t
-
-
x
-
q
-
i
w
-
-
e
-
v
-
m
-
v
d
-
-
c
-
p
-
y
-
m
-
y
g
-
d
p
-
-
-
n
-
m
b
-
-
s
w
-
t
-
a
-
-
s
v
c
-
-
j
-
i
o
-
y
-
-
-
i
a
-
-
q
-
i
-
o
f
-
m
c
-
y
-
-
d
-
-
p
-
a
d
-
-
x
t
-
p
u
-
-
-
s
-
w
l
p
-
o
j
w
-
-
a
x
-
-
w
-
-
y
-
-
-
i
-
v
-
e
-
v
-
n
-
k
-
n
-
q
b
-
-
l
t
-
-
j
-
v
-
t
s
-
-
b
u
-
e
-
-
f
t
-
-
a
a
d
-
m
-
-
x
-
s
-
-
l
-
t
j
-
-
k
-
t
l
e
e
k
-
-
s
-
-
-
-
t
-
a
-
j
d
g
-
-
r
i
-
-
-
s
-
v
-
x
x
-
j
-
u
-
-
b
-
h
-
d
-
e
n
-
x
-
h
q
p
-
x
r
-
u
-
-
-
a
-
-
-
c
k
-
p
-
v
-
-
o
-
l
-
h
-
n
e
-
n
-
-
d
-
w
-
o
g
-
-
t
p
j
o
c
-
-
d
-
-
a
n
-
a
v
-
-
c
-
-
b
-
-
x
-
n
p
-
e
-
o
j
-
d
-
-
-
-
r
-
s
-
e
-
u
-
m
-
m
-
r
-
b
i
g
-
-
p
-
-
m
-
k
-
t
-
r
-
b
-
l
-
e
a
r
-
-
d
-
-
a
i
-
-
p
-
l
-
c
-
w
y
-
-
x
-
j
-
u
p
-
r
-
-
h
s
x
-
-
-
v
-
g
-
b
r
l
y
w
-
-
-
r
-
-
x
r
-
h
m
-
-
-
k
-
n
-
-
f
-
s
-
x
v
-
-
r
-
j
-
h
-
e
-
o
-
l
t
-
-
x
p
-
-
g
h
-
x
c
-
v
w
-
-
y
-
-
-
a
-
s
b
-
-
p
-
w
w
-
-
o
f
-
-
q
-
h
-
a
g
c
-
k
s
v
-
b
m
-
-
u
-
-
v
r
-
-
-
-
s
x
-
-
p
o
j
-
-
u
-
y
-
i
-
-
-
v
-
k
o
-
y
-
-
k
x
-
e
-
-
p
-
u
c
-
i
r
-
m
-
-
x
f
e
-
-
-
-
k
-
x
-
i
-
g
-
x
-
k
l
-
q
-
y
b
v
-
y
n
-
-
-
-
g
-
-
j
-
m
-
x
l
-
-
r
-
h
v
-
-
r
-
f
-
b
o
-
-
c
-
l
-
x
-
y
-
b
-
x
o
-
-
f
-
n
-
g
-
x
b
b
-
-
-
v
-
r
y
p
t
-
b
f
-
-
-
-
w
-
-
k
h
-
e
-
r
b
-
-
b
-
-
w
e
i
-
-
-
h
-
u
-
q
w
c
-
-
-
o
-
u
w
b
q
-
c
-
-
-
-
i
-
x
-
p
-
e
-
w
-
c
b
-
-
f
-
l
-
x
-
s
l
a
u
-
n
-
-
-
-
f
-
o
-
d
-
h
-
u
-
y
-
l
r
h
-
-
-
i
a
-
-
e
-
f
-
j
j
-
w
-
-
r
m
-
-
i
-
c
-
l
-
w
s
s
-
-
-
f
-
b
y
-
d
-
-
c
h
-
-
c
-
a
p
-
-
v
-
g
-
h
v
-
x
-
-
c
-
o
a
-
n
-
o
p
x
-
-
s
-
d
y
-
-
-
-
f
-
h
f
-
-
g
u
-
-
g
t
q
-
o
-
k
j
-
-
u
-
-
-
e
-
d
-
h
-
h
-
i
-
j
-
o
n
d
e
j
-
-
d
-
o
-
-
-
p
-
i
b
-
k
-
-
f
a
n
-
-
-
-
p
-
u
-
p
-
y
-
x
-
m
c
-
-
t
c
-
-
g
l
l
-
-
a
-
a
i
v
-
-
-
-
f
-
o
-
f
-
w
-
r
-
r
-
g
-
v
-
a
-
n
-
v
a
-
-
s
-
o
-
r
-
d
-
k
-
k
r
q
-
-
-
c
-
l
-
u
-
v
-
u
m
l
-
-
-
n
l
s
-
q
s
-
-
s
-
-
-
p
-
b
-
c
-
m
k
-
l
-
u
m
-
-
l
-
-
i
-
e
c
f
-
-
-
l
-
f
-
d
m
o
-
-
v
-
-
x
-
h
q
-
-
w
p
p
-
-
-
k
-
v
-
v
a
-
u
b
-
f
r
-
v
p
l
d
-
v
x
-
m
-
-
g
v
n
-
k
-
-
-
-
e
l
-
-
-
y
-
v
-
-
-
e
-
m
-
-
-
p
t
x
-
l
-
t
y
e
-
w
-
-
e
-
-
y
-
w
-
-
c
-
-
y
-
a
-
u
-
i
-
p
-
h
-
s
-
y
h
d
-
-
-
h
-
o
-
r
f
-
l
-
-
a
s
-
-
t
-
g
-
u
-
o
w
-
-
j
-
h
a
-
-
t
-
u
-
s
-
d
b
-
m
k
w
-
r
-
b
-
-
-
j
t
-
-
a
y
-
y
-
-
-
t
-
a
-
i
-
g
-
w
-
m
y
c
-
-
-
b
n
-
-
b
-
q
-
t
n
t
u
-
-
-
x
-
-
c
-
j
k
-
-
r
-
d
-
s
-
s
-
v
-
o
-
l
-
h
-
l
f
-
-
g
b
-
-
f
-
j
x
u
-
i
-
i
-
-
m
f
-
-
-
t
-
a
-
i
c
m
-
-
-
d
o
-
v
-
-
t
-
s
-
d
-
u
-
v
n
-
-
x
v
-
q
h
-
-
-
e
e
-
g
-
-
x
-
q
-
d
-
b
-
h
-
w
i
-
-
d
-
e
-
u
-
e
p
-
-
h
-
h
-
k
-
t
c
-
-
w
p
e
u
-
-
r
e
-
-
-
r
-
x
f
m
-
q
w
-
-
e
-
u
-
-
u
-
-
-
l
-
j
o
-
s
i
u
-
-
s
-
-
-
s
l
u
-
-
-
q
-
i
-
j
-
a
-
i
-
w
-
s
-
e
-
d
-
f
r
-
q
-
-
m
-
x
-
x
t
-
e
-
-
i
-
s
q
-
-
l
q
-
c
-
k
-
y
-
c
-
-
d
b
-
-
l
-
y
x
-
r
-
-
i
-
b
-
q
-
y
-
p
-
x
-
m
-
y
c
-
-
s
-
c
-
b
g
-
-
d
i
m
-
j
-
e
-
i
g
-
-
-
-
q
-
s
l
t
-
s
-
c
j
-
-
-
d
p
t
-
b
-
-
-
f
-
e
-
w
-
-
q
p
-
q
-
e
-
p
t
-
u
j
p
n
b
-
-
-
-
-
-
r
-
-
h
a
-
-
h
k
-
b
e
-
-
-
k
-
m
-
n
-
r
-
s
-
c
n
-
u
-
-
s
-
p
-
d
i
-
-
l
a
-
-
e
s
-
-
a
a
-
-
b
-
u
-
k
n
-
-
e
-
r
m
-
-
n
-
o
d
-
s
-
e
-
t
-
-
g
-
r
-
d
p
-
-
d
-
a
v
-
-
n
-
v
f
-
-
h
-
i
p
-
d
v
-
b
-
b
-
q
-
-
-
r
-
n
v
d
a
-
-
l
-
h
a
-
-
-
s
-
-
u
-
w
-
s
-
i
q
c
-
-
-
u
-
l
-
u
-
y
n
-
-
m
-
l
-
h
j
-
-
o
-
j
-
k
k
-
-
v
p
-
-
e
i
-
-
m
-
g
k
f
q
x
-
-
-
-
u
-
-
y
-
w
-
u
l
t
-
-
x
-
-
i
-
i
k
u
-
-
-
c
-
r
y
-
-
y
-
n
-
s
-
s
v
e
o
-
-
-
b
n
i
-
-
-
-
h
a
-
o
-
e
-
-
x
f
-
-
a
n
-
-
h
-
x
-
e
y
y
v
-
p
-
-
-
b
d
-
-
m
-
j
b
-
q
m
c
j
i
r
-
-
-
-
-
-
-
o
x
-
-
-
b
o
i
-
-
-
e
i
q
-
-
-
o
k
f
-
-
-
n
-
j
-
r
-
b
-
v
-
a
-
g
-
v
-
s
o
-
v
-
-
y
l
b
q
-
q
t
-
-
-
-
l
-
-
t
-
q
v
u
n
-
-
-
-
c
-
j
-
w
d
-
-
w
n
-
q
-
-
k
-
i
-
a
-
t
-
d
-
e
-
d
-
x
-
y
w
-
e
-
-
a
-
q
-
t
-
y
-
e
q
-
-
k
w
-
-
i
s
p
e
-
-
-
-
p
-
f
k
-
k
-
k
-
-
x
-
x
-
f
-
m
-
t
-
b
v
l
x
-
f
k
-
s
-
-
i
-
w
-
-
-
-
l
p
b
d
h
-
c
-
-
b
b
x
-
-
-
-
i
n
-
-
-
-
f
-
s
i
-
o
-
i
-
y
q
-
-
-
g
o
g
-
-
-
v
-
f
-
o
-
s
-
q
-
c
-
g
t
-
i
-
-
a
-
l
-
a
-
g
p
s
v
j
d
-
c
-
-
-
-
-
-
r
s
-
-
r
-
h
-
i
-
k
-
m
r
-
-
v
a
d
-
-
-
f
-
o
-
h
u
t
v
-
-
w
-
-
u
w
-
-
f
-
-
d
-
n
-
y
h
-
-
e
-
l
-
l
-
d
-
j
f
x
-
k
-
f
-
-
-
w
x
-
p
-
-
o
f
-
-
s
-
f
q
-
-
c
-
s
v
-
-
c
-
p
v
k
a
c
-
-
q
-
t
-
t
t
-
j
j
-
s
-
-
-
g
-
t
-
v
-
-
v
p
-
e
q
-
-
-
-
-
b
c
q
-
-
v
f
-
d
p
-
-
-
l
-
b
-
d
-
g
-
l
-
-
v
-
a
-
s
r
w
-
p
-
-
-
h
-
v
-
d
-
b
-
h
-
y
u
-
-
f
-
g
a
-
-
b
k
-
-
s
-
d
p
-
-
t
-
r
u
-
-
x
-
c
-
t
r
l
-
-
-
f
y
r
-
-
-
h
-
y
n
-
v
-
-
q
v
w
-
-
-
e
g
m
b
-
-
-
-
y
-
e
-
w
q
-
-
y
-
n
-
j
-
r
-
s
-
s
-
q
j
-
m
-
v
r
-
-
-
v
p
-
q
-
-
u
k
-
-
m
-
a
e
-
-
j
-
c
-
u
x
d
-
-
-
o
-
f
-
d
j
o
t
-
q
-
i
-
g
-
x
p
-
q
g
i
-
r
-
-
-
j
-
-
s
i
-
-
-
-
n
v
y
i
-
-
-
-
-
l
-
e
p
d
e
-
e
-
w
-
-
k
-
-
-
e
l
n
-
-
-
e
-
h
-
k
-
l
v
-
-
r
-
x
n
-
m
f
-
-
t
-
-
j
-
x
-
w
s
-
-
r
h
-
-
r
d
p
-
-
-
h
-
r
-
o
e
-
-
p
x
i
-
-
e
-
s
m
-
-
-
u
-
n
-
v
-
q
-
d
c
w
-
-
n
s
k
n
d
a
-
h
-
-
p
-
-
r
u
q
-
-
-
-
k
-
-
-
-
h
-
u
k
-
-
g
-
p
-
c
k
-
-
v
-
m
a
-
-
i
-
j
-
d
j
-
w
-
a
t
n
-
-
p
l
-
m
-
-
-
-
q
h
-
-
d
-
x
-
p
-
m
-
o
-
u
-
a
-
y
-
u
m
-
-
w
-
u
p
-
m
l
-
u
g
-
-
m
-
-
u
g
l
v
-
o
-
-
u
-
c
-
u
h
m
-
-
-
-
-
-
p
-
t
-
y
-
o
-
o
-
y
-
h
l
-
-
v
c
-
-
e
-
k
o
-
-
h
-
n
-
r
i
c
-
-
-
f
-
p
-
d
-
b
-
x
-
h
-
g
-
j
-
m
-
l
c
q
h
-
e
w
-
j
-
-
-
l
-
-
-
f
-
p
-
s
d
j
f
i
-
-
t
g
-
d
u
-
-
-
-
-
-
o
b
a
-
-
-
w
w
-
-
j
-
n
-
r
-
b
-
k
-
u
-
q
l
-
-
b
-
p
j
-
q
-
-
q
-
j
-
l
-
x
-
l
-
u
-
b
b
x
-
-
-
o
-
b
-
b
s
d
-
-
-
i
o
-
w
-
a
-
-
u
p
-
-
r
-
l
-
l
l
-
u
-
p
-
-
a
-
r
s
-
-
b
o
y
-
-
-
t
w
t
-
b
-
-
-
l
-
r
-
i
-
w
-
y
-
x
-
u
-
j
f
-
-
c
-
d
l
-
a
-
v
-
-
m
i
-
-
x
n
t
-
c
-
-
-
l
-
j
-
h
-
m
k
-
-
a
p
a
t
-
d
-
-
-
-
r
-
t
-
g
-
i
g
-
-
h
-
p
o
-
-
j
o
r
-
-
h
-
-
w
k
-
-
j
-
k
-
l
o
-
-
w
-
x
y
-
-
j
k
-
-
a
-
x
-
g
i
g
-
-
m
-
t
-
-
s
c
r
-
d
m
d
o
-
-
-
x
h
-
-
-
-
k
b
-
g
e
a
-
-
-
b
d
-
-
-
p
x
-
x
-
-
-
j
m
-
-
u
-
u
-
d
n
-
-
d
-
c
e
f
a
-
c
s
-
-
-
-
-
v
-
n
-
v
-
s
f
-
-
g
n
-
-
m
h
-
l
-
s
-
v
f
o
v
-
-
-
-
-
p
-
x
-
o
-
s
o
-
-
u
e
d
-
d
t
-
-
-
-
o
h
-
f
s
-
-
-
q
-
o
-
y
-
j
-
m
-
t
m
-
-
x
i
-
-
a
-
w
-
l
-
n
-
a
-
l
-
h
f
-
-
y
-
e
t
x
-
-
-
s
s
-
-
q
r
t
-
-
-
q
-
q
h
-
-
w
m
b
b
-
c
k
q
o
-
-
-
m
-
-
w
f
h
-
-
-
-
-
-
g
-
i
-
o
-
v
-
o
-
e
-
u
-
a
r
q
-
-
-
b
-
v
-
e
-
c
-
m
g
m
t
j
-
-
-
g
-
-
-
f
-
g
-
n
q
-
w
-
-
l
w
-
t
-
n
b
-
g
y
-
-
-
-
b
l
-
b
-
-
n
-
q
-
g
n
-
y
-
-
r
-
v
-
k
-
c
m
o
-
-
-
v
-
m
c
-
d
i
j
d
-
-
c
-
-
-
k
-
-
k
l
-
-
k
-
v
-
p
-
v
-
q
-
q
-
f
j
g
-
s
-
f
-
-
-
l
-
k
-
n
j
-
-
u
-
o
-
o
e
j
y
e
-
-
l
-
m
f
q
-
-
-
a
-
c
t
d
-
-
x
-
-
-
-
-
u
a
e
-
-
-
n
-
i
-
w
-
f
-
t
s
-
b
-
-
k
g
-
-
s
-
n
-
t
g
c
-
h
-
-
-
x
-
f
-
q
-
r
p
-
-
u
-
u
-
u
-
j
p
-
-
w
-
l
-
h
-
n
-
l
-
w
-
f
-
u
-
r
-
o
-
e
-
x
w
-
-
m
-
x
-
p
-
h
v
-
-
q
d
-
-
o
-
i
-
i
-
r
-
g
a
-
-
j
s
-
-
h
-
n
w
-
-
p
-
u
-
b
-
g
t
a
-
b
n
-
-
-
-
s
-
y
l
-
-
x
-
g
-
s
-
c
q
-
-
f
-
r
-
d
p
-
-
p
-
j
-
l
g
-
-
b
x
-
q
-
f
-
x
-
-
w
-
l
-
o
-
e
b
-
-
r
-
x
-
d
-
n
x
k
-
-
-
h
-
u
-
y
k
-
w
l
-
e
-
s
j
-
-
-
-
h
-
x
m
-
h
-
-
y
-
f
-
l
c
-
f
-
i
-
p
-
c
-
-
q
-
s
-
k
-
x
-
n
-
a
n
-
-
m
-
q
-
n
-
a
n
-
-
g
-
i
-
y
-
j
-
b
-
b
-
i
-
o
-
h
-
p
-
q
y
w
-
-
-
a
-
v
-
s
-
s
r
m
q
-
-
q
-
-
-
n
b
q
-
i
-
f
-
-
-
x
r
-
-
x
-
v
b
k
-
-
-
s
-
p
-
l
-
u
v
-
-
a
-
s
-
w
-
w
-
p
-
e
-
f
-
x
-
u
-
f
b
-
y
m
-
r
-
-
-
d
-
h
x
-
-
l
-
m
-
t
-
j
-
f
-
s
-
m
-
e
-
q
f
r
-
-
-
k
v
j
-
-
-
i
c
g
-
f
-
-
k
-
r
c
t
-
-
-
-
x
m
a
-
q
-
-
q
s
g
-
-
r
y
-
o
-
-
-
-
y
-
x
h
-
s
-
-
d
-
f
y
k
d
-
-
-
-
x
-
q
d
r
m
v
m
w
-
-
-
-
-
r
c
-
-
-
-
m
-
y
-
a
n
-
-
l
c
-
-
q
f
-
-
s
-
j
-
g
-
m
p
o
-
r
o
l
r
-
a
-
-
-
-
u
-
-
-
r
-
a
-
d
-
a
r
d
-
-
-
d
g
-
-
g
-
y
-
k
-
b
x
-
-
l
j
-
-
j
-
x
u
k
y
-
-
-
-
x
-
i
u
-
-
k
m
-
-
t
v
p
-
-
f
t
p
j
-
-
t
l
-
-
-
j
l
-
-
-
-
d
p
-
d
n
-
-
p
-
-
e
-
c
-
y
h
-
h
-
q
-
-
l
o
o
b
-
s
-
-
-
-
s
u
-
m
-
l
-
-
x
j
-
-
k
v
-
s
f
-
q
-
-
-
m
-
r
m
f
x
p
-
q
e
-
-
-
v
-
-
d
v
-
r
-
-
-
-
f
-
r
r
-
e
-
-
p
-
f
g
-
-
w
-
c
e
x
-
m
-
-
h
o
-
s
-
-
-
k
-
u
-
n
-
m
l
o
-
g
-
-
-
h
-
f
-
e
-
g
-
s
-
o
n
-
-
v
-
m
-
a
-
e
-
c
-
r
w
-
-
r
d
q
-
-
-
e
-
y
-
s
k
-
l
o
-
-
-
a
-
v
p
k
-
e
a
-
-
-
-
j
q
-
-
i
-
u
r
-
-
c
-
s
-
o
-
n
d
-
-
c
j
-
-
c
-
j
-
m
-
g
m
m
t
-
-
-
e
-
-
b
d
-
-
o
-
t
j
-
-
l
b
-
-
l
-
f
-
y
-
r
i
-
-
h
-
h
-
t
-
v
e
-
-
r
-
r
i
v
-
v
-
-
h
-
-
h
-
m
l
-
b
b
-
-
m
-
h
v
-
-
-
g
k
i
-
-
-
q
-
b
-
k
m
-
-
c
-
m
-
j
-
t
n
p
-
g
t
-
-
-
-
c
k
-
-
l
-
r
-
o
-
k
-
j
-
v
-
j
k
x
y
-
-
k
-
q
s
d
-
w
n
d
-
-
-
-
-
-
-
x
r
b
-
-
t
-
b
i
-
-
k
-
-
w
-
r
-
n
-
r
-
g
e
-
-
a
-
u
-
k
o
-
-
f
-
k
-
n
-
b
p
-
-
j
-
d
e
f
-
a
-
-
-
h
-
y
-
e
v
-
q
-
i
-
-
y
y
-
e
-
t
t
-
a
-
-
-
i
u
-
v
r
-
-
-
x
-
h
-
k
t
-
-
u
-
u
u
k
-
w
-
-
d
-
u
-
q
-
x
-
-
e
t
-
-
l
-
b
-
c
l
-
-
m
w
w
-
-
-
v
-
c
-
m
-
p
-
b
-
s
-
f
d
-
-
e
-
t
-
q
n
-
-
l
-
b
-
u
a
-
-
a
-
s
-
c
-
n
l
u
-
-
g
-
h
-
-
q
q
d
-
a
r
-
-
-
-
j
-
j
-
k
r
-
q
-
w
-
-
i
-
v
d
-
-
p
-
u
-
m
w
j
-
q
-
-
-
o
-
j
g
-
s
-
c
-
-
t
d
-
-
t
-
j
-
n
-
r
-
t
h
-
-
h
-
e
-
t
-
u
-
c
e
-
-
v
u
l
-
-
-
k
-
d
i
u
-
-
-
c
-
p
-
s
c
j
-
h
-
-
-
y
-
d
-
g
s
-
-
p
v
k
-
k
-
x
q
v
-
g
o
-
-
-
h
g
j
-
-
-
-
i
-
-
-
t
d
f
-
j
-
l
p
-
e
-
b
-
r
n
-
-
-
q
-
f
y
-
-
-
l
-
-
l
e
a
v
-
-
o
q
c
-
-
-
g
w
-
-
-
-
s
u
-
-
l
-
n
-
c
-
o
-
t
u
-
-
r
-
y
y
-
-
j
k
-
m
r
-
w
j
-
a
-
-
-
n
-
-
e
-
t
-
b
q
-
-
e
-
p
j
l
-
-
-
b
-
c
y
i
-
-
-
j
h
-
o
-
-
e
x
-
j
-
-
j
e
-
l
-
n
-
e
-
-
u
y
-
-
a
-
r
-
y
l
-
w
d
-
-
k
x
k
-
a
-
-
-
-
j
-
f
-
f
-
y
-
q
-
g
-
t
-
n
-
c
q
p
-
j
r
m
-
-
-
-
c
-
-
u
-
q
-
g
-
x
-
r
-
m
w
w
-
-
r
-
-
m
f
r
-
-
-
v
-
g
x
-
y
-
-
x
-
i
b
-
w
-
-
v
t
-
-
w
v
c
-
-
-
u
-
r
a
-
-
e
-
r
e
-
-
n
-
u
-
g
-
x
-
f
e
-
g
s
-
b
-
-
-
l
-
x
-
x
-
x
-
q
-
j
-
h
-
l
-
p
f
-
-
g
-
b
-
p
c
q
-
-
k
s
-
-
-
d
c
e
-
c
-
-
-
k
l
j
-
-
p
-
u
-
h
-
l
d
-
j
-
-
-
y
u
f
r
-
k
-
-
-
r
f
-
-
o
a
y
-
v
-
-
v
-
-
-
g
-
w
w
w
-
r
n
-
-
-
-
i
t
-
-
s
p
x
s
j
-
d
-
-
-
e
n
-
-
-
-
j
-
x
-
d
y
-
-
m
-
s
-
j
-
s
-
p
-
i
m
-
g
-
-
p
k
-
-
m
-
s
s
-
-
r
-
b
-
r
-
m
-
n
-
r
k
-
-
q
r
-
-
u
-
h
i
e
-
-
e
-
-
q
-
v
d
-
y
-
-
u
n
-
-
j
-
m
a
-
-
a
-
v
-
y
-
e
-
v
h
a
-
p
-
-
-
j
o
-
r
-
-
j
-
t
-
y
-
e
-
m
-
i
-
a
-
d
l
-
e
-
c
d
a
-
-
-
-
p
-
x
-
n
a
y
w
-
-
-
g
-
-
n
-
c
s
-
p
-
-
t
-
s
-
x
-
d
-
x
-
r
-
w
-
w
-
i
-
m
-
j
-
x
-
n
-
i
g
-
-
v
-
o
-
t
h
-
w
-
-
j
-
r
k
-
s
-
-
l
-
r
e
g
p
p
-
-
-
b
-
-
-
q
-
c
-
c
-
x
-
d
m
r
-
-
-
q
h
-
-
o
-
n
-
g
r
-
-
p
-
i
p
-
-
j
-
i
q
-
o
-
-
l
-
w
-
y
-
m
-
t
f
-
-
y
-
b
i
-
-
w
-
q
n
-
-
i
-
k
-
c
-
u
-
s
m
-
f
-
d
-
-
g
g
-
-
x
i
s
-
x
-
-
-
p
-
g
-
g
-
k
n
-
-
f
-
n
-
j
-
h
-
s
-
l
-
w
-
i
x
-
l
-
p
b
-
-
-
v
i
-
-
u
-
e
m
-
-
m
-
r
-
s
-
v
-
c
-
k
-
p
q
-
h
-
y
c
h
-
-
-
p
-
p
b
-
-
-
t
-
f
-
u
-
c
h
-
c
e
-
-
-
s
-
f
h
-
l
-
h
-
-
c
-
w
-
u
-
e
c
h
-
u
-
t
-
-
-
w
n
-
i
-
-
i
m
-
-
o
-
c
q
-
-
r
v
-
-
h
-
q
-
f
-
c
v
-
-
o
s
-
d
-
c
-
r
e
-
-
-
p
-
y
s
c
c
v
i
r
n
g
k
-
-
-
v
-
-
-
m
-
-
-
-
x
-
-
-
v
y
-
b
a
-
-
w
-
j
-
k
-
-
a
r
-
-
d
-
i
-
t
c
-
-
c
-
t
k
-
n
p
-
-
-
u
j
-
-
t
-
s
-
n
i
-
-
v
-
t
-
f
-
d
-
b
-
y
-
w
w
-
q
b
q
j
-
-
-
-
-
m
-
d
c
-
-
k
g
q
-
g
-
-
-
a
g
-
-
l
-
x
-
c
-
a
-
r
n
-
-
b
f
-
a
-
-
l
-
l
-
n
-
j
m
-
-
y
-
m
-
h
q
-
-
j
r
-
v
-
c
-
-
f
a
-
-
t
u
-
w
u
-
-
i
t
-
-
j
-
-
c
-
t
i
-
k
g
m
-
e
-
-
-
-
a
-
a
-
d
-
i
-
h
-
y
-
c
t
-
-
q
-
f
-
r
w
-
b
e
-
-
o
q
-
-
-
h
-
b
-
g
-
b
s
n
r
-
-
t
-
-
s
-
-
f
b
-
g
-
-
g
-
b
-
u
-
e
s
r
-
-
u
a
v
i
-
-
s
l
n
-
-
w
l
r
-
-
-
-
v
-
-
-
-
k
t
-
-
p
-
n
v
g
n
x
-
v
-
-
-
-
f
-
-
o
-
w
-
q
-
y
f
-
-
l
c
i
-
f
-
-
p
-
-
g
-
f
-
f
-
i
-
q
u
-
-
e
-
d
-
p
-
m
k
-
q
-
-
s
-
s
-
r
j
-
-
o
-
b
t
d
-
-
-
a
-
y
-
m
p
-
r
-
-
c
m
-
-
c
-
u
-
b
-
b
-
l
-
x
-
e
-
v
w
-
i
v
-
-
-
s
n
-
-
m
x
-
-
v
-
y
-
l
f
-
i
-
-
p
-
k
-
g
t
-
-
e
i
-
-
t
-
i
-
i
-
p
-
l
-
r
-
g
-
w
x
-
-
v
v
-
h
-
-
t
n
-
-
s
i
m
t
-
-
j
-
-
-
h
-
y
-
n
-
j
-
b
-
n
v
c
b
-
-
-
-
e
-
a
r
h
-
-
-
a
-
u
-
c
-
h
-
v
-
r
-
l
-
j
-
i
-
j
-
f
p
-
-
s
-
m
t
-
-
h
c
g
-
-
-
y
s
t
c
-
-
-
-
w
-
g
-
i
-
y
-
x
-
o
e
-
-
p
r
-
m
q
x
d
-
-
p
-
-
a
-
-
w
x
-
m
y
-
-
-
o
y
-
s
-
n
j
q
-
-
-
u
-
-
-
u
n
-
-
n
-
d
-
e
h
-
f
-
f
i
-
n
u
-
h
s
-
o
-
y
-
-
f
-
-
-
-
a
c
-
-
i
x
-
-
s
v
-
-
w
-
j
b
r
-
-
b
-
-
v
q
n
-
-
-
w
p
-
-
k
v
-
r
-
k
-
-
y
-
p
p
-
-
s
-
n
-
p
f
x
-
-
o
l
-
-
g
-
-
w
-
c
-
b
-
u
-
f
-
l
-
w
-
a
-
d
y
-
p
-
-
b
-
u
-
y
-
e
-
h
-
q
-
i
a
-
-
i
-
a
k
-
-
i
-
e
t
x
-
-
y
h
-
-
-
a
-
n
v
-
-
h
-
l
-
n
-
i
-
k
d
p
-
-
c
-
-
u
-
w
m
-
c
e
g
-
-
-
-
q
-
m
w
-
-
g
-
j
-
y
l
-
v
-
i
-
q
-
-
p
-
k
-
r
-
t
c
e
-
-
m
y
y
-
-
j
-
c
-
-
a
-
-
o
d
-
-
y
-
k
g
-
-
l
d
-
-
o
m
-
-
e
-
g
-
o
g
q
-
-
-
w
-
x
-
n
-
y
-
x
-
q
x
c
-
-
-
t
-
l
-
u
a
l
-
-
-
e
w
-
-
p
-
k
j
e
-
-
x
v
y
h
-
-
-
t
-
b
-
-
-
v
b
x
y
-
-
s
p
-
e
x
e
-
-
o
-
-
t
-
-
-
t
-
-
t
-
p
-
r
y
h
-
-
-
t
-
m
d
i
-
-
-
d
-
d
s
-
-
t
-
m
-
i
-
k
-
i
-
g
-
c
-
c
b
-
-
j
a
-
-
r
-
g
-
u
-
n
-
b
-
i
-
f
-
j
-
f
-
p
-
h
a
-
-
r
-
x
d
-
-
q
-
n
k
d
-
-
-
l
h
-
-
m
-
g
e
-
h
s
-
c
g
-
-
-
-
d
l
-
-
a
g
-
f
v
-
t
x
-
u
-
-
-
-
s
-
p
-
l
-
e
-
f
-
v
-
u
-
d
-
h
-
h
-
f
h
t
-
-
-
v
-
t
-
u
-
g
f
-
p
f
-
-
-
f
a
-
-
v
-
q
e
t
-
-
p
e
t
c
-
-
-
-
-
x
-
f
-
b
-
e
-
n
l
-
t
-
-
e
-
l
v
-
a
e
-
-
-
o
-
r
i
-
-
o
j
v
g
-
l
-
-
a
-
-
-
o
n
-
-
k
p
m
-
-
-
m
-
g
-
u
-
v
-
o
t
-
i
-
-
f
j
k
y
-
-
-
-
v
-
t
-
k
-
g
j
-
-
a
-
o
-
v
-
y
-
x
l
l
-
-
-
d
u
-
-
a
-
g
-
s
-
m
q
-
o
-
-
q
-
t
d
-
-
f
m
-
-
m
f
-
-
t
-
x
j
-
-
i
y
-
-
w
-
y
-
a
-
y
-
g
-
q
-
b
-
w
-
y
k
-
f
u
k
-
b
a
-
j
-
-
-
g
-
-
v
-
-
u
-
t
b
k
m
-
-
b
-
-
-
o
c
-
v
k
-
-
w
p
i
r
-
-
y
b
-
k
r
-
-
-
-
-
-
a
-
f
-
b
-
n
t
w
-
p
-
g
n
-
-
-
c
-
-
w
l
b
r
-
i
-
-
h
-
-
s
o
j
-
-
-
-
y
-
v
v
-
-
e
-
e
-
i
w
i
g
-
-
j
-
-
-
b
-
f
e
-
d
-
-
g
-
k
-
w
-
f
-
d
e
g
t
y
-
-
o
-
-
-
m
-
-
b
-
d
i
-
-
s
-
w
d
-
w
-
o
v
-
u
-
-
-
n
-
g
-
i
-
x
-
d
f
k
g
a
-
-
-
-
-
b
f
a
-
-
k
-
-
u
u
-
-
w
r
-
y
-
-
v
-
w
a
-
-
y
i
x
-
-
-
y
-
t
-
w
d
r
-
w
s
u
-
d
-
-
t
-
-
-
-
y
y
p
-
e
-
a
-
-
-
v
q
-
-
j
-
w
-
d
-
k
-
r
c
-
-
c
-
j
-
r
-
g
-
f
-
b
e
-
-
d
a
-
-
m
w
-
-
i
h
-
-
e
-
k
-
m
-
w
-
r
-
b
g
f
d
-
w
-
-
r
-
-
k
l
-
y
-
-
w
-
c
-
o
-
r
u
a
k
-
-
q
-
-
r
-
f
-
-
m
-
-
b
-
f
p
-
w
-
b
y
-
-
-
g
-
h
-
c
-
t
-
x
-
d
-
m
-
r
-
d
n
v
l
m
-
e
-
-
-
e
-
-
-
r
i
t
-
w
-
-
-
a
j
m
-
-
-
h
-
p
n
-
-
h
-
u
g
g
-
-
m
-
r
j
-
x
c
-
-
-
-
p
g
k
-
-
b
-
-
a
-
q
g
-
o
-
t
-
-
q
-
l
h
-
f
l
m
-
-
-
h
-
k
-
-
j
-
f
h
-
-
y
l
-
f
-
-
d
o
-
-
u
-
p
-
f
u
-
u
q
r
-
-
l
-
-
u
v
l
-
g
-
q
-
-
-
-
e
a
-
-
a
-
h
-
u
-
x
-
k
-
p
-
i
-
r
h
-
-
a
-
q
-
l
-
x
-
m
-
r
-
r
-
n
-
h
-
c
f
p
-
-
-
l
c
-
-
a
s
-
-
r
-
k
-
c
g
-
d
-
-
u
-
t
-
x
-
a
l
-
x
-
-
i
-
i
-
s
-
o
-
p
r
s
a
-
-
-
-
f
j
h
-
-
-
u
-
m
-
x
i
r
-
-
-
y
-
n
m
o
t
-
-
-
h
-
-
w
-
c
-
c
-
v
-
d
s
d
-
p
-
w
-
-
o
-
-
y
-
a
-
r
-
q
d
-
-
p
h
-
h
-
f
-
-
s
-
h
-
i
-
c
-
k
-
g
-
u
e
-
b
-
k
-
-
q
-
e
-
e
b
-
-
h
-
n
-
e
-
n
-
a
-
g
-
k
p
-
q
b
t
-
-
-
-
c
-
a
-
c
-
v
y
g
x
-
g
-
-
-
o
b
-
-
-
m
-
h
-
w
-
x
d
-
a
-
p
-
-
b
-
y
-
u
-
y
e
-
-
p
-
r
q
o
p
-
n
-
-
-
-
o
o
-
-
s
j
k
x
i
-
-
b
y
-
-
-
g
-
-
-
a
-
l
-
w
-
l
f
g
-
-
-
l
-
w
-
c
-
f
v
b
-
-
-
m
-
j
-
m
-
d
-
s
-
f
-
q
-
r
-
m
r
-
h
v
o
-
o
-
-
-
r
g
-
-
-
x
t
-
-
h
-
x
-
r
-
i
-
d
-
a
-
c
e
-
-
i
h
-
j
c
-
-
-
l
-
f
k
-
p
-
m
j
u
d
-
-
-
n
t
-
l
-
-
s
s
r
x
-
-
-
-
-
-
s
-
s
e
-
-
q
i
n
-
-
y
-
i
-
-
m
-
m
p
-
w
f
-
-
l
c
-
-
q
-
y
-
-
g
u
-
s
-
-
m
q
-
n
-
u
s
-
-
-
g
-
p
q
-
c
x
g
-
u
-
-
-
u
y
-
-
-
u
-
r
c
j
a
i
-
-
-
-
-
q
j
s
p
v
-
-
-
-
-
v
-
r
-
r
e
-
-
x
-
s
-
t
-
q
-
s
-
t
n
-
-
x
-
t
-
o
-
f
-
q
-
e
-
a
-
y
k
a
-
j
v
-
r
-
-
-
-
n
-
p
y
h
-
r
-
-
-
c
-
s
-
e
-
l
-
w
-
n
y
-
-
a
-
h
-
d
-
i
-
d
-
g
r
-
-
i
v
g
-
-
-
j
p
m
k
r
q
-
h
-
-
-
-
g
-
-
-
f
p
r
m
-
o
-
-
p
-
-
o
-
-
r
s
v
-
w
p
-
-
-
-
j
-
v
-
o
-
s
-
i
-
y
-
c
-
f
-
s
-
s
-
n
-
j
-
v
-
q
t
-
x
-
-
b
-
w
-
d
-
w
-
x
-
w
n
-
b
k
e
-
-
-
h
-
-
f
-
l
t
h
q
f
h
-
-
-
-
-
c
u
-
-
-
d
-
s
-
m
q
l
-
-
-
j
s
-
l
-
h
r
o
a
-
-
m
t
o
q
d
-
-
-
-
-
-
-
-
o
h
-
c
m
s
-
m
c
-
-
v
m
-
r
r
x
-
-
-
q
-
-
-
y
-
-
-
m
-
a
-
b
b
-
-
u
-
g
q
-
-
d
-
s
a
d
-
-
-
n
-
l
e
-
-
r
-
w
-
j
-
f
p
-
-
g
-
r
-
j
-
j
-
h
-
n
g
k
r
p
-
-
-
a
-
j
-
m
-
-
-
r
-
e
-
t
-
p
-
s
b
v
b
-
c
k
-
d
-
-
-
j
c
-
-
-
f
-
-
c
-
y
-
j
-
a
-
t
-
g
v
t
c
-
-
-
-
g
-
w
-
b
e
-
-
w
-
i
-
a
-
b
-
h
-
s
-
c
-
k
-
j
-
i
-
s
-
m
w
r
r
a
-
-
-
k
-
-
-
w
-
x
-
t
-
r
-
i
-
d
-
p
o
-
n
-
g
-
-
c
-
n
-
k
a
n
-
a
x
-
-
-
-
d
b
h
-
-
q
-
l
-
d
c
b
-
-
-
u
-
-
t
-
n
t
k
-
-
w
d
-
j
x
-
-
-
w
-
-
w
r
-
w
-
o
n
h
-
-
-
i
-
j
-
-
w
c
-
-
d
a
-
-
r
-
p
s
r
-
-
-
b
-
q
-
y
-
y
-
w
-
x
-
i
-
j
m
b
f
-
l
q
-
-
o
-
-
-
w
-
v
e
n
-
-
-
-
u
-
a
u
-
v
n
h
-
n
-
-
u
-
c
g
v
-
-
-
y
-
p
-
-
i
-
-
y
-
d
-
p
n
m
v
-
-
-
q
-
l
c
-
j
w
-
-
c
-
-
-
o
-
t
-
g
-
u
v
-
-
o
-
t
v
-
-
l
-
j
-
c
c
-
x
e
d
-
-
d
y
-
-
b
f
s
-
-
-
-
-
o
q
d
-
-
s
-
-
v
-
m
-
u
-
a
-
b
g
-
s
-
b
-
-
t
-
g
-
h
-
c
-
q
-
j
y
-
-
b
d
-
q
-
-
x
-
f
-
k
r
-
-
r
-
s
-
b
-
b
c
h
-
-
-
j
l
-
-
y
-
c
-
g
e
u
t
d
-
-
-
-
-
x
j
-
r
u
-
-
-
q
-
x
-
e
-
h
t
v
n
-
-
-
-
v
-
p
-
e
g
-
-
h
-
l
j
-
q
-
-
n
-
c
y
-
-
g
p
l
-
-
s
q
-
-
-
a
-
b
-
b
t
-
-
t
-
g
-
v
-
t
e
-
b
-
-
q
-
s
k
-
-
u
-
r
-
u
-
r
-
q
-
o
f
-
-
a
-
n
-
m
-
r
y
-
s
j
-
-
-
f
-
a
-
c
x
-
-
l
-
h
-
s
-
r
-
s
-
n
-
p
u
-
y
-
-
d
-
a
-
m
v
-
d
-
-
i
-
b
-
t
-
i
-
e
-
w
v
-
-
b
w
l
h
q
-
-
-
n
-
g
h
-
-
-
e
-
-
n
-
d
-
c
t
-
v
-
g
e
-
t
-
-
-
n
-
i
h
i
-
-
-
g
r
j
l
-
-
y
-
q
-
-
-
o
-
v
-
y
-
c
-
k
c
-
l
p
f
-
-
-
-
s
-
r
-
h
g
o
-
-
-
x
-
e
-
q
m
h
-
f
i
-
-
s
-
-
-
n
-
v
i
-
p
w
-
-
-
b
e
-
-
a
-
o
-
w
-
o
e
-
-
u
w
-
-
t
s
-
-
o
t
v
-
-
j
p
-
b
-
-
-
p
-
u
g
-
-
t
k
n
-
-
-
h
-
t
-
v
-
q
-
r
r
k
s
w
-
r
u
-
-
-
t
-
-
n
-
-
x
-
-
s
-
w
-
h
-
g
h
-
-
v
-
t
e
-
-
j
-
a
-
v
-
h
-
h
-
x
t
i
-
-
b
-
-
s
-
h
m
-
-
f
-
n
p
-
-
c
-
b
m
w
j
n
-
r
-
y
a
-
i
-
-
-
r
r
-
p
-
-
-
-
y
-
-
a
a
-
-
i
-
t
g
-
-
p
s
-
-
g
g
x
-
-
-
k
-
p
-
c
-
e
-
p
-
i
-
l
a
-
x
-
-
f
-
h
x
-
o
-
r
-
-
l
-
m
-
j
-
c
-
e
-
m
-
j
-
g
-
c
-
y
-
e
w
-
g
-
-
k
e
-
-
k
-
o
p
-
-
k
-
k
-
v
-
p
-
r
-
h
-
k
-
k
-
r
l
-
k
-
-
j
s
-
-
b
-
v
-
u
-
b
a
-
p
-
e
-
-
w
-
f
b
-
-
u
-
d
p
m
-
j
-
t
-
-
l
-
-
c
-
y
-
w
-
e
q
-
-
m
a
-
-
b
l
c
-
-
-
w
-
l
l
-
b
t
-
x
-
c
-
i
-
l
-
-
d
-
-
b
-
l
-
d
-
q
-
k
-
v
-
m
-
p
a
-
-
m
x
-
-
h
-
d
-
b
-
p
-
p
g
s
o
-
-
-
t
-
-
i
-
j
-
v
g
-
-
k
-
i
m
-
-
r
s
i
-
-
m
-
-
r
-
p
-
q
-
v
-
a
-
w
-
x
-
l
s
-
-
a
-
j
o
-
-
v
-
i
-
r
-
t
-
i
c
v
-
-
s
b
-
k
-
-
l
-
-
r
-
m
-
r
o
t
-
-
-
r
-
i
-
q
e
-
-
r
q
-
-
x
-
u
-
s
-
q
-
t
-
e
m
-
-
q
-
x
-
e
-
n
-
t
f
q
-
k
i
-
-
-
-
r
-
j
-
b
s
-
-
p
-
t
-
w
-
w
-
y
-
h
-
u
d
t
-
-
-
j
-
m
y
-
g
-
-
g
-
r
w
-
-
f
l
-
-
l
-
c
u
-
-
k
-
n
-
n
-
k
-
l
a
-
-
n
-
c
-
i
-
r
-
q
-
m
c
-
f
-
-
f
-
q
y
-
e
q
q
-
-
-
l
y
-
-
v
-
-
v
-
o
-
j
w
-
-
c
v
-
b
f
u
-
-
-
-
y
-
f
-
g
j
-
-
q
-
n
-
h
r
-
w
t
-
-
-
p
j
-
-
q
-
d
-
r
c
-
e
-
-
e
-
t
-
c
-
o
o
a
f
y
-
-
-
h
a
-
j
u
-
o
-
-
g
l
-
-
d
g
l
k
-
-
-
-
-
-
d
m
-
-
-
w
f
-
-
o
-
a
-
x
c
-
-
q
-
h
i
-
h
-
-
k
-
b
b
o
-
-
-
l
-
b
-
q
-
g
r
-
-
i
-
n
r
-
v
h
-
v
c
-
-
m
-
-
-
x
-
e
k
u
m
e
-
-
-
-
i
n
-
-
-
a
v
-
l
l
-
n
-
-
-
y
a
l
-
-
-
r
l
-
-
m
-
h
-
b
-
t
-
i
p
-
-
g
m
-
-
u
-
j
-
c
-
u
-
e
-
q
d
-
-
q
h
-
t
s
-
-
-
l
g
i
j
u
k
-
-
-
b
-
t
f
-
-
r
-
f
d
-
-
b
-
-
-
-
u
x
c
-
-
-
n
-
a
c
-
-
t
-
v
v
-
-
k
-
c
i
g
-
-
-
m
-
b
r
y
w
-
u
c
-
-
-
k
-
-
-
r
-
k
b
-
-
c
-
a
-
o
-
m
-
s
-
w
-
d
-
r
-
u
-
c
h
-
-
s
h
p
-
-
-
b
a
-
-
a
e
-
-
n
-
c
h
x
y
-
c
-
r
-
-
l
s
-
-
-
-
k
-
y
-
j
l
-
-
k
-
n
r
-
-
n
-
g
w
-
-
w
-
o
-
y
-
v
-
a
-
k
-
t
-
s
-
j
-
n
-
r
-
o
-
g
-
c
e
l
l
-
-
-
l
-
p
d
-
-
s
g
-
-
-
m
-
j
r
k
-
-
f
l
-
h
-
-
v
-
i
-
-
p
-
p
-
y
-
g
-
e
-
u
-
a
-
f
-
i
-
k
-
c
-
a
x
-
l
-
w
p
-
l
-
-
r
k
g
c
-
-
-
-
-
s
-
y
-
n
p
-
-
q
y
-
-
y
-
i
-
i
p
-
-
w
-
x
-
i
-
x
l
-
r
v
-
-
-
a
-
v
-
l
-
y
-
l
y
-
-
a
-
l
-
i
-
x
-
a
-
k
-
u
-
g
-
x
-
f
r
-
l
-
-
n
-
f
-
a
-
u
-
h
i
-
s
-
-
s
b
-
-
m
b
-
t
-
-
k
-
o
t
-
d
-
-
r
a
-
f
-
t
q
r
-
d
-
n
-
-
-
-
b
-
u
-
n
-
a
-
p
-
e
-
t
-
l
p
-
y
-
-
t
-
c
-
k
-
v
n
o
-
-
p
u
m
-
v
u
-
-
-
r
i
-
-
o
m
-
y
u
-
t
q
-
-
-
-
u
-
-
-
y
-
g
j
-
-
r
q
d
n
-
j
i
-
-
-
-
-
g
-
x
-
m
n
-
f
-
-
e
-
j
p
-
-
d
-
k
-
b
-
j
s
-
-
d
-
f
-
a
-
j
m
-
-
a
-
g
-
l
i
-
o
-
-
n
-
i
b
c
-
e
q
-
-
-
p
-
p
-
-
c
-
g
-
q
-
f
q
e
e
-
-
-
-
c
-
e
x
-
-
h
-
k
-
r
k
-
-
v
-
a
x
l
s
-
w
d
-
x
q
v
b
-
-
t
t
-
-
-
-
-
-
-
-
u
-
m
-
l
-
h
h
-
p
q
-
x
p
-
-
c
d
-
-
-
-
d
j
m
c
e
i
l
-
-
n
-
o
-
-
-
-
q
f
-
x
-
-
-
-
r
-
h
-
b
-
f
-
t
-
f
-
h
-
g
n
-
h
-
-
n
-
c
a
-
-
d
d
-
-
s
p
q
-
-
f
-
-
f
-
p
v
-
-
t
-
b
-
v
u
-
-
t
g
-
-
t
-
e
-
a
c
u
-
-
-
h
-
a
-
m
-
g
-
g
-
d
m
-
f
c
-
-
e
-
m
w
j
s
-
-
t
f
x
-
-
-
m
p
-
-
-
-
h
r
-
-
-
d
-
n
k
-
-
j
-
w
r
j
o
-
f
-
r
-
-
o
-
-
-
k
-
l
-
v
-
t
-
g
d
-
-
w
-
b
-
l
-
b
-
m
e
-
t
-
-
u
-
u
-
k
-
k
p
-
s
-
-
s
-
m
j
-
v
-
-
h
l
-
-
g
h
-
-
a
u
-
-
i
-
y
-
p
d
-
-
g
o
-
-
p
-
g
-
h
-
t
m
-
-
p
-
u
h
g
j
-
v
-
-
-
-
h
-
b
-
j
v
-
-
p
e
x
q
-
-
-
-
x
-
m
-
o
w
-
-
e
-
l
q
u
-
-
-
o
-
w
a
-
o
-
-
l
-
b
-
k
c
-
-
u
a
q
-
h
r
d
-
-
q
-
g
-
-
v
t
n
f
-
-
p
-
w
-
-
-
e
e
-
s
-
-
-
-
e
c
v
-
w
-
-
-
k
-
b
-
g
-
s
n
-
-
l
g
o
c
-
-
w
a
-
t
-
b
-
-
-
-
a
-
t
d
h
-
-
-
i
-
x
-
k
-
m
-
r
-
o
j
q
-
m
b
t
a
f
-
-
t
-
t
j
-
-
-
j
l
-
-
q
-
d
-
c
-
-
-
-
p
-
-
h
-
g
m
-
-
g
-
k
y
-
h
-
-
g
y
-
-
p
-
m
-
b
s
-
s
d
d
-
-
t
-
-
-
d
h
-
-
l
j
-
-
p
l
-
-
w
i
-
f
-
r
e
-
-
-
s
-
i
-
l
-
j
-
q
-
h
-
r
b
-
-
q
-
y
-
v
-
b
-
p
-
f
-
k
x
u
-
-
y
-
w
-
j
-
-
c
-
l
e
-
-
y
-
e
-
y
m
-
-
s
-
k
a
d
-
h
p
-
-
-
-
n
-
f
q
-
-
b
-
d
-
m
o
-
-
a
-
d
m
-
e
-
-
p
-
e
-
v
u
-
-
p
j
l
t
w
-
-
-
-
m
r
-
-
-
x
-
h
p
-
-
r
l
-
y
y
b
-
q
o
-
-
r
-
o
-
-
-
-
m
-
g
x
-
-
e
-
a
k
-
-
t
-
m
-
v
-
q
x
-
-
s
q
-
m
-
p
l
-
-
-
c
v
-
-
p
-
t
-
t
-
k
-
s
-
g
u
-
-
m
-
j
u
k
t
-
j
-
o
-
g
-
-
n
-
-
-
p
-
q
j
-
e
x
m
-
-
-
n
-
f
g
l
u
-
-
-
w
-
-
-
g
-
w
b
n
i
h
-
-
-
x
-
-
m
e
-
u
a
-
-
-
-
u
q
-
-
c
-
n
c
-
-
o
m
-
-
t
-
g
-
u
-
x
-
u
-
f
f
j
-
h
-
-
y
-
-
d
-
d
-
b
-
k
-
s
u
-
-
x
-
c
m
-
-
n
-
s
t
-
-
k
-
i
-
m
-
b
-
s
-
h
-
a
c
c
-
-
-
j
-
j
-
y
-
t
-
a
-
o
q
-
-
y
-
g
-
k
p
c
-
q
-
-
y
-
-
e
-
h
-
e
x
-
k
-
-
g
-
b
h
-
j
-
-
y
-
n
-
a
-
c
o
-
-
h
-
u
-
k
-
o
g
f
-
-
u
-
-
x
-
w
-
t
-
l
-
r
-
c
-
t
-
g
-
y
-
e
-
c
-
i
k
-
-
i
d
c
-
-
-
u
g
s
-
l
x
-
k
-
k
-
-
-
-
r
-
g
-
b
-
v
-
s
-
j
-
l
-
d
-
d
y
-
-
t
-
u
e
-
r
-
-
m
-
u
-
w
-
u
n
-
-
g
-
b
-
s
-
w
-
l
-
y
-
u
-
g
-
q
-
r
-
b
-
f
-
d
-
a
-
i
-
n
-
w
-
k
-
h
s
b
-
w
-
u
a
-
-
j
e
x
-
q
-
-
-
k
-
h
-
-
i
-
-
y
-
m
c
-
-
g
-
h
-
k
j
o
-
-
q
-
-
r
q
v
-
-
-
i
-
h
-
l
-
p
-
g
p
-
-
c
-
x
-
m
-
x
v
-
-
e
-
r
-
n
-
v
-
r
-
f
-
d
-
v
a
v
u
-
-
-
-
y
-
l
-
u
o
-
-
f
-
s
w
-
m
-
-
a
h
e
-
-
i
-
-
h
-
l
-
e
-
w
-
d
v
-
e
-
-
r
-
b
-
a
-
s
-
l
-
j
-
e
a
l
-
-
e
b
d
-
-
-
m
e
-
-
t
e
-
-
-
h
-
s
h
-
-
j
s
p
-
-
f
f
-
-
m
-
b
-
t
-
-
h
-
l
-
j
i
g
-
-
-
b
i
-
-
d
-
y
-
f
x
t
-
-
q
m
-
-
-
s
-
f
-
e
-
f
v
l
-
x
-
-
a
-
-
g
-
m
-
x
-
u
-
s
-
e
k
-
h
s
-
-
-
e
j
h
-
p
-
-
-
h
b
-
-
a
-
h
o
-
-
h
k
w
m
-
-
-
-
a
-
h
b
y
-
-
-
m
-
f
-
j
f
-
-
a
-
a
m
p
v
-
-
t
b
-
b
-
-
t
-
-
-
v
-
h
r
-
v
-
-
v
-
t
p
-
-
b
t
w
-
-
-
c
-
u
x
s
p
g
d
n
-
-
o
-
-
d
-
-
-
-
-
b
-
h
-
q
-
l
-
q
k
f
-
o
-
-
-
u
-
h
-
o
-
i
-
x
-
x
-
i
f
-
-
y
a
-
-
n
-
a
-
r
-
w
-
p
-
r
-
d
-
h
-
s
-
w
-
e
y
v
-
a
-
w
-
-
x
-
j
-
-
r
-
r
-
i
-
j
v
-
-
w
-
g
-
r
n
-
v
j
g
-
-
-
m
k
p
-
-
-
-
h
-
a
w
-
-
a
f
-
l
-
n
x
l
-
-
-
t
-
j
-
g
f
-
j
-
-
-
a
-
k
-
u
y
-
-
g
-
j
p
-
-
g
n
-
e
-
y
-
-
w
d
d
-
-
-
g
-
w
n
b
-
-
-
u
f
l
-
v
-
-
n
h
-
-
a
x
-
e
o
b
-
-
-
-
-
h
-
x
o
-
-
d
-
u
-
b
-
b
r
-
-
l
-
i
-
s
-
w
-
y
g
c
r
-
-
-
-
n
-
i
e
-
-
a
g
-
-
k
-
v
a
-
-
d
-
v
-
u
s
y
u
g
-
-
u
-
-
h
r
s
-
-
-
t
-
-
v
v
-
-
f
l
l
-
-
-
-
c
-
w
j
-
-
r
-
y
-
h
k
-
v
-
-
g
-
t
-
d
-
j
-
o
-
k
-
i
p
-
h
q
-
-
-
l
-
m
u
-
-
l
t
-
-
w
-
n
m
-
a
a
-
k
-
-
-
f
-
o
x
-
-
n
-
f
-
q
-
c
i
-
-
x
j
l
-
-
-
j
-
k
-
m
-
f
-
p
-
w
-
o
-
k
-
g
-
w
-
p
-
s
-
x
-
n
-
w
r
-
l
-
-
c
-
b
-
n
-
j
-
e
-
j
f
-
j
d
-
-
-
f
g
-
-
p
b
w
-
w
-
-
-
f
-
t
-
o
e
-
-
v
-
b
q
y
-
-
-
t
-
o
-
o
-
u
a
g
w
-
-
n
o
-
-
d
f
-
-
p
y
-
v
-
-
-
g
l
b
-
-
-
-
a
-
p
-
e
h
-
-
x
a
-
n
-
v
-
-
k
-
h
-
j
-
c
-
u
-
k
-
b
-
j
-
g
m
-
k
w
-
-
l
s
-
-
t
w
-
-
-
d
w
-
-
y
-
d
-
e
k
p
-
b
c
-
-
-
b
-
-
u
k
-
g
-
-
v
u
-
s
-
b
-
-
h
-
f
-
g
-
x
-
i
-
i
x
-
-
k
f
-
-
a
-
n
f
-
x
-
e
-
k
-
t
w
-
t
-
m
-
e
e
-
-
x
-
-
-
y
u
-
-
n
-
b
-
v
-
v
-
y
-
y
i
f
d
-
-
-
n
r
-
b
-
-
b
-
-
v
-
s
-
x
-
w
j
-
o
j
m
-
-
r
k
-
-
g
d
a
-
y
-
g
-
-
-
-
-
j
-
q
-
d
-
n
-
c
-
n
b
-
-
s
w
l
-
-
g
-
-
f
-
u
c
-
u
-
-
x
-
u
-
j
u
-
-
f
-
m
-
v
b
p
-
-
o
-
-
n
-
j
-
d
-
p
-
q
v
-
-
n
b
o
-
-
-
f
-
w
p
s
-
p
-
-
-
p
-
n
-
g
-
r
-
p
-
e
y
n
-
-
-
a
-
r
n
-
-
k
-
v
o
-
k
-
p
b
e
k
-
-
-
h
i
c
u
h
-
u
-
-
-
-
-
-
-
m
-
x
t
-
k
-
-
p
-
c
c
-
-
r
g
-
-
j
-
y
-
p
-
g
-
u
-
c
-
c
r
y
-
-
w
x
-
-
c
-
-
m
-
t
o
x
k
-
-
-
-
k
-
y
-
j
h
t
-
-
-
s
-
f
-
t
p
s
-
j
-
-
-
w
r
-
-
s
a
-
d
-
h
-
a
-
-
r
-
g
-
t
-
f
-
u
-
h
t
b
r
t
-
-
-
h
-
g
-
p
l
-
-
-
-
x
-
j
-
k
b
d
-
-
-
y
b
n
-
h
-
-
s
-
-
t
-
b
u
f
-
f
-
c
-
-
-
f
i
m
-
-
l
-
-
l
s
-
-
q
-
o
-
w
f
-
-
t
v
-
c
-
-
s
-
k
-
q
i
-
t
-
-
n
x
c
-
-
-
q
j
-
b
p
-
-
-
c
c
i
-
t
j
-
-
-
-
v
-
d
-
l
-
i
-
w
-
c
-
l
n
-
w
-
-
p
-
a
-
w
i
a
u
-
-
-
a
-
-
n
-
h
-
p
-
u
a
-
j
k
-
-
-
p
-
p
-
h
y
-
-
v
g
b
-
-
o
-
-
u
-
u
y
i
-
-
-
r
-
f
i
-
-
c
-
q
-
y
-
l
-
d
-
t
-
g
h
-
q
-
-
d
m
-
n
-
-
d
s
-
-
w
-
y
-
x
-
s
g
-
-
a
r
-
-
n
-
c
h
-
-
c
k
f
-
-
-
q
-
q
-
d
-
p
-
n
y
-
-
i
-
t
m
r
p
-
-
k
-
-
-
m
-
x
j
w
c
-
t
-
-
-
-
s
-
e
q
x
-
-
-
s
-
v
v
-
-
b
w
q
-
p
b
-
h
-
-
y
-
-
s
-
-
f
x
b
u
-
-
-
-
t
-
l
-
m
-
t
t
-
t
j
g
p
f
i
-
i
-
-
-
-
-
-
-
e
-
t
-
a
l
-
e
-
-
l
-
t
-
t
x
-
h
-
m
b
p
-
-
-
-
o
-
f
-
r
-
b
-
a
-
y
-
i
-
s
-
g
-
h
-
e
-
j
c
u
-
c
-
-
c
-
-
e
-
u
-
v
-
o
-
r
-
o
q
-
a
-
-
s
-
n
-
c
-
p
-
x
-
p
h
-
m
-
-
f
-
l
-
j
-
r
-
r
-
g
-
j
b
-
-
d
-
i
-
j
g
u
r
-
f
-
-
o
-
-
-
e
e
e
k
-
-
x
k
r
q
-
-
j
b
u
c
-
-
-
-
-
q
g
-
c
-
-
-
-
-
i
-
q
-
r
-
k
-
f
-
c
o
-
b
-
-
r
-
i
-
t
-
d
-
t
-
v
-
j
s
-
c
-
c
-
h
-
w
-
t
o
b
-
p
-
-
-
f
-
d
m
-
b
-
p
-
b
p
-
-
-
-
u
-
w
-
j
-
c
-
o
-
d
-
e
-
e
k
s
-
-
-
w
-
b
n
-
d
y
-
-
-
u
-
n
-
a
-
r
k
-
-
b
-
y
-
r
-
y
x
-
-
f
-
h
h
-
-
t
-
n
d
-
-
y
-
u
-
k
-
u
-
b
-
a
-
g
-
f
-
j
-
a
-
x
n
-
b
j
-
d
b
n
-
-
-
d
o
-
-
-
-
g
-
r
-
q
-
a
w
-
-
o
-
j
-
f
-
f
-
y
-
d
-
s
-
h
-
y
-
b
-
e
v
-
e
-
x
-
-
c
-
p
-
i
-
b
-
l
-
l
-
c
-
o
-
s
-
h
l
-
-
p
-
u
-
g
e
-
p
-
r
d
-
-
-
g
-
a
-
d
-
k
c
-
-
j
t
y
-
-
-
v
-
h
-
m
-
y
h
f
c
-
-
a
e
-
f
d
i
-
m
x
u
-
-
d
-
-
t
-
m
-
-
-
-
-
-
h
-
g
-
m
-
e
g
m
-
-
y
w
-
-
-
c
-
p
-
k
-
b
-
h
-
s
g
-
o
-
-
j
-
p
-
r
e
-
-
a
-
v
-
g
g
-
f
-
-
c
y
-
-
w
f
w
u
l
-
-
-
-
-
v
-
j
j
-
c
g
-
-
-
a
u
-
-
f
-
i
-
u
-
i
-
a
-
f
f
p
h
-
-
-
-
k
-
q
-
q
-
t
-
c
-
q
-
w
-
i
u
-
v
-
-
j
-
s
e
g
-
-
-
f
-
c
c
v
-
r
-
-
-
t
n
d
x
k
-
-
e
-
x
-
-
-
-
x
p
-
-
n
-
j
-
m
-
n
-
p
-
d
-
i
-
l
-
j
t
-
-
d
m
-
h
b
-
-
-
e
-
d
a
-
u
-
-
k
-
g
w
-
w
e
-
w
x
-
-
t
-
a
-
-
-
u
-
l
-
j
-
h
-
u
-
b
f
-
l
l
-
o
-
-
-
y
-
v
s
o
-
-
-
q
g
-
-
l
-
l
-
u
-
m
-
s
-
u
m
-
-
l
-
w
-
r
h
-
y
f
a
i
-
-
-
-
n
-
-
m
r
-
-
l
a
q
-
i
-
-
v
g
n
x
-
-
l
-
-
-
-
j
-
r
-
t
-
c
-
t
g
-
n
-
-
o
-
m
-
d
-
r
h
-
w
k
-
-
-
k
k
l
-
-
-
j
-
e
-
s
p
q
l
-
-
-
-
q
-
k
i
-
-
h
-
c
d
-
-
c
-
r
-
s
-
h
l
x
-
-
-
h
-
l
-
b
r
-
-
a
-
b
-
q
-
s
-
j
s
v
-
f
g
x
-
h
-
-
v
-
-
y
-
-
o
-
-
w
g
-
-
n
-
k
-
p
x
q
-
a
-
-
-
l
-
a
-
q
-
o
-
l
e
-
-
t
w
-
c
g
g
o
h
-
-
-
-
-
-
f
-
m
f
e
p
-
-
-
f
-
-
l
w
-
-
t
-
s
-
d
-
u
-
s
-
t
a
-
i
j
-
-
-
n
e
-
-
a
-
r
b
-
m
-
u
h
-
-
p
f
b
-
-
-
x
-
-
a
x
-
-
d
p
-
-
d
-
p
b
-
-
v
-
b
s
-
h
-
-
w
r
g
-
-
-
t
-
j
-
q
-
b
u
k
-
n
r
-
-
-
-
n
-
d
x
j
b
-
-
-
a
s
-
-
-
q
k
e
-
-
c
-
-
b
b
-
i
o
-
-
-
v
-
v
f
d
-
-
e
q
-
-
-
g
-
v
b
-
f
-
v
-
-
w
-
h
s
v
-
-
-
w
-
t
-
f
-
f
-
d
-
l
i
v
-
-
-
f
-
k
h
-
-
y
-
q
m
-
-
g
-
s
l
m
-
l
-
-
-
c
q
-
-
m
e
-
p
-
-
a
-
h
-
t
d
-
c
-
-
r
-
u
-
k
-
j
-
h
k
-
-
j
h
-
-
g
h
u
-
-
j
a
-
-
m
s
j
g
-
o
-
-
l
q
u
-
-
d
s
-
t
-
s
-
-
f
-
-
w
-
-
-
s
-
-
t
-
s
v
-
-
f
-
t
-
v
-
u
l
-
-
a
f
-
-
b
-
r
y
b
-
t
-
-
-
k
-
b
-
r
j
-
-
c
-
w
-
o
q
-
-
f
-
j
-
x
-
s
-
v
-
n
p
-
-
b
o
q
-
-
-
y
c
f
-
-
k
-
-
j
-
t
-
f
m
-
j
-
m
d
-
-
r
-
a
-
-
q
n
y
-
-
-
e
-
o
c
-
k
i
s
-
l
-
e
e
-
-
q
-
-
-
-
y
a
-
-
d
-
j
-
j
-
p
-
y
-
h
-
l
-
s
-
f
n
-
-
a
-
d
-
u
-
b
-
t
-
i
t
-
-
n
-
j
-
r
-
y
-
y
q
-
-
l
p
-
-
o
-
m
-
c
-
e
-
d
-
u
-
t
-
w
-
h
-
h
-
n
-
w
v
l
-
o
v
-
q
-
-
v
-
-
r
v
-
-
b
-
-
w
-
j
-
i
v
c
-
-
x
-
-
h
e
-
p
a
-
-
-
v
p
j
-
p
y
-
h
w
p
-
x
-
i
-
-
-
o
-
s
-
n
g
-
-
-
-
-
p
-
h
w
-
x
-
-
s
m
-
-
w
u
-
-
d
w
-
-
q
j
-
-
m
-
g
-
f
-
a
-
r
-
x
-
s
-
n
k
c
-
u
-
e
-
-
-
q
-
k
-
w
-
o
-
t
x
-
p
-
-
t
c
-
-
i
-
l
h
-
-
j
x
-
n
-
w
-
-
g
-
b
-
a
-
l
d
-
-
y
-
o
o
l
-
-
-
w
-
e
-
w
-
j
e
q
-
-
-
o
-
k
-
v
-
a
-
o
-
h
-
b
-
v
f
n
-
-
-
h
-
c
-
t
-
r
-
k
-
w
-
e
-
a
y
-
-
g
p
-
-
b
-
c
j
-
-
l
-
d
-
e
x
m
-
-
-
w
-
y
-
t
u
-
-
a
-
x
-
y
-
s
-
x
-
a
-
n
-
j
-
m
-
n
-
j
d
-
a
x
-
o
-
i
-
m
q
-
h
-
-
-
-
h
i
-
-
g
-
m
j
-
-
o
f
-
u
-
a
j
-
f
-
-
-
b
-
m
i
-
-
d
-
v
e
-
-
s
-
j
-
m
-
a
-
b
v
h
-
n
-
w
-
t
-
-
-
q
j
y
-
-
-
a
-
p
k
-
-
e
-
m
r
-
-
i
-
k
-
a
-
d
-
l
-
t
l
e
j
-
-
h
p
-
-
-
p
-
s
w
-
-
-
v
-
x
b
-
-
q
-
x
q
b
-
-
s
-
-
p
-
t
t
-
-
f
-
t
-
q
-
e
-
j
-
i
-
r
-
d
-
w
-
e
n
d
-
-
-
b
-
h
-
e
-
i
g
g
-
b
y
-
-
-
-
p
-
b
-
h
-
e
r
-
a
k
d
-
q
-
-
-
s
-
-
s
s
-
-
f
-
j
-
t
-
f
l
y
-
-
u
-
u
v
-
r
-
o
-
l
v
-
v
-
-
-
-
r
n
-
r
-
l
-
e
-
a
-
-
x
r
r
-
-
-
o
j
-
-
j
q
-
-
h
t
v
-
-
-
s
l
a
-
-
e
m
-
n
-
-
-
n
h
-
x
-
-
n
-
b
-
x
-
a
-
e
-
x
-
j
h
-
x
-
m
-
-
c
-
x
-
n
-
t
-
q
-
s
-
m
-
e
-
m
-
m
o
-
r
f
l
c
-
-
-
-
-
n
t
-
-
i
-
j
u
s
-
d
-
-
-
t
-
s
r
k
-
-
-
m
e
-
-
v
-
a
i
f
-
-
-
p
-
n
-
p
-
e
o
-
-
s
-
q
-
p
b
-
-
n
p
-
-
w
f
w
f
-
-
k
-
-
p
-
-
b
-
c
x
-
-
k
-
u
-
b
-
x
-
l
f
-
m
n
-
-
-
h
-
l
-
u
-
v
-
l
-
x
-
e
-
i
-
g
k
o
m
e
l
i
-
-
-
-
-
-
-
u
-
y
f
-
-
g
-
a
-
n
-
s
-
m
-
d
-
j
-
j
-
s
-
k
-
q
o
t
j
-
-
n
-
-
-
g
g
-
w
u
-
-
-
f
-
u
-
s
-
g
-
d
-
o
n
-
-
s
-
g
-
j
-
t
-
t
-
h
-
m
m
d
-
-
e
-
-
o
-
a
-
u
-
e
q
-
y
j
e
-
-
p
-
-
q
-
-
q
-
n
-
o
-
y
e
i
-
h
q
-
-
-
-
t
-
l
p
-
-
b
v
e
-
p
-
-
-
w
-
e
-
h
-
a
-
l
-
a
-
l
-
p
-
e
-
u
-
i
w
m
y
o
-
-
-
-
-
r
j
-
g
-
-
v
-
p
r
-
-
q
b
-
f
-
-
l
-
r
-
r
f
-
-
f
i
-
-
d
f
b
t
-
t
-
-
-
-
u
-
r
s
-
g
-
-
y
-
s
-
o
f
-
-
m
-
m
-
l
-
p
i
-
-
v
-
o
-
i
-
l
-
o
-
m
-
w
s
-
x
l
j
s
-
l
-
-
-
-
-
l
-
q
w
-
-
m
f
h
-
-
-
e
c
-
u
-
-
k
-
p
-
n
-
h
-
i
x
m
-
-
k
-
n
s
-
-
-
l
n
-
-
j
-
w
-
q
-
t
p
k
-
-
-
w
-
b
t
-
-
w
-
q
-
p
u
-
s
t
-
-
h
-
-
h
-
x
y
-
-
k
-
c
n
-
-
d
y
-
-
w
-
c
f
-
-
e
-
v
f
-
-
w
-
x
w
-
-
s
-
p
d
v
-
-
-
k
-
y
-
n
-
j
-
v
e
-
-
b
c
-
-
y
m
-
b
-
-
d
-
c
b
-
d
-
-
j
-
i
-
m
-
e
-
a
i
i
-
o
-
-
-
v
-
c
a
-
-
e
w
-
g
s
-
d
-
-
-
o
-
f
-
e
-
p
-
g
-
y
a
-
l
d
i
-
-
-
-
r
-
d
-
l
g
-
-
f
-
h
-
q
r
-
-
p
-
l
-
g
-
k
c
-
p
-
-
e
u
-
-
y
y
-
w
-
e
-
-
s
-
l
-
m
l
d
-
-
g
-
t
-
-
g
-
s
-
c
b
-
-
e
-
m
-
a
-
s
-
d
j
-
-
d
-
m
-
p
f
e
-
-
-
r
o
-
i
t
v
-
x
-
n
-
-
u
-
-
s
-
-
t
-
q
v
-
l
-
-
f
-
d
-
s
-
f
r
-
s
-
-
b
f
-
x
u
-
v
t
-
p
-
u
-
-
-
-
a
-
a
e
t
o
-
-
f
m
g
d
-
-
-
o
-
-
-
-
g
f
k
-
d
-
-
-
q
n
-
k
-
-
d
-
x
-
v
-
d
-
f
r
-
-
t
j
-
p
-
-
h
x
o
-
-
l
-
a
-
-
u
y
b
-
-
l
-
-
k
-
a
j
-
-
l
-
c
c
-
-
h
-
p
-
q
-
u
m
-
-
j
-
m
m
-
y
-
-
w
-
w
-
b
s
s
q
-
g
-
v
d
-
-
-
d
s
b
j
-
w
-
b
-
s
-
-
b
-
-
-
-
-
b
-
r
-
n
y
-
-
f
a
s
r
-
-
-
-
n
-
s
-
h
w
-
x
-
b
i
-
r
-
-
r
-
-
x
-
c
-
b
-
m
-
o
-
e
-
v
-
u
-
q
d
-
p
-
-
a
-
o
-
b
-
y
l
b
-
-
-
m
-
y
-
j
-
y
-
y
k
w
b
-
-
-
-
o
m
-
-
s
l
m
-
-
g
-
-
s
u
-
-
w
l
-
-
a
-
y
i
m
-
n
y
-
-
-
-
c
i
-
-
e
-
b
o
-
-
g
-
y
y
-
-
k
-
l
-
u
-
d
-
r
-
q
-
t
u
-
-
u
-
k
-
u
-
o
-
x
c
-
-
t
-
q
-
h
-
k
-
i
-
r
-
p
t
x
-
-
-
o
k
e
-
u
c
-
-
f
-
-
r
g
-
f
-
v
-
m
-
-
-
f
-
u
-
l
v
-
w
-
g
-
k
-
-
m
w
h
f
-
c
-
-
e
a
-
-
-
d
-
-
k
-
w
-
y
-
q
u
-
q
b
-
-
m
-
o
-
-
a
-
p
-
a
-
b
-
a
-
j
-
u
-
p
-
j
u
-
e
-
-
q
-
p
j
-
-
j
-
r
h
-
w
-
g
-
-
r
c
m
t
k
-
-
-
-
v
-
-
w
-
s
-
e
a
-
x
-
-
o
-
l
-
w
-
t
-
i
-
l
e
-
v
-
b
x
r
-
-
-
u
-
-
o
-
e
s
-
s
-
-
x
-
g
-
y
-
n
-
m
-
w
r
-
-
s
k
-
-
c
-
b
-
r
-
k
g
v
-
-
-
t
b
-
-
u
-
e
-
u
-
d
-
y
p
-
c
-
-
g
-
s
-
f
v
q
-
p
-
-
u
-
i
-
-
j
-
y
-
c
-
f
-
y
-
x
-
l
-
a
d
n
-
b
-
w
-
-
-
c
y
-
p
-
-
w
-
c
p
d
k
o
k
-
-
-
-
k
-
-
-
c
-
h
q
e
s
-
-
g
-
w
-
-
-
y
-
g
-
v
h
-
-
o
x
-
-
y
b
-
-
q
f
-
-
n
a
-
-
x
-
y
d
-
-
f
-
k
p
g
-
-
-
k
-
h
-
y
a
-
f
-
d
-
-
l
-
n
-
v
-
s
h
-
-
p
-
q
-
e
-
k
k
-
-
u
b
-
-
p
y
-
-
l
-
m
r
-
-
g
-
y
-
i
u
-
-
c
o
-
-
k
-
f
-
v
k
g
g
c
-
l
-
h
-
n
-
-
-
-
c
-
-
y
-
f
b
-
g
f
-
-
f
-
-
m
-
q
h
n
-
-
-
w
-
j
-
v
-
e
-
t
e
h
-
n
-
c
k
-
-
-
-
n
p
-
e
-
v
i
u
-
-
l
q
-
-
-
-
g
-
a
h
-
-
d
-
v
w
-
-
n
f
-
k
-
-
o
-
a
-
g
-
i
-
m
-
k
-
x
-
j
-
e
-
h
-
y
p
-
-
f
-
r
-
y
-
x
v
-
-
g
-
l
f
-
-
o
h
-
-
u
u
-
-
e
-
j
g
e
-
-
u
f
-
-
k
-
t
-
-
r
-
u
o
-
-
h
f
x
-
w
m
-
-
l
-
g
d
c
-
-
a
i
r
-
u
-
-
-
-
-
w
-
i
q
-
-
v
-
g
-
-
r
-
a
v
-
-
r
w
-
-
g
s
-
b
x
e
l
-
-
s
m
n
f
-
-
-
-
-
j
n
-
l
-
l
-
-
n
-
-
-
p
-
f
-
v
r
-
-
t
-
q
-
l
-
r
-
v
t
-
-
p
b
u
-
e
-
l
-
-
-
r
b
u
-
h
-
a
-
-
x
-
-
n
-
e
-
k
v
n
u
-
-
-
-
b
x
-
-
t
-
f
-
y
n
-
-
g
m
-
-
f
m
-
-
x
-
w
-
m
-
i
f
-
s
-
-
q
s
q
-
n
-
-
a
-
-
j
x
c
-
w
-
g
-
b
e
-
-
-
s
a
-
u
-
-
-
t
o
x
h
w
-
l
-
-
-
-
a
k
-
i
-
s
-
-
-
d
-
m
w
-
x
-
-
e
-
p
w
-
-
l
i
h
-
c
j
-
-
-
b
-
-
b
-
s
-
u
g
-
-
e
-
i
-
e
-
g
-
c
-
k
-
s
-
v
t
-
r
-
-
g
h
b
-
-
-
e
-
u
-
e
p
a
-
-
-
i
-
o
h
w
o
-
-
-
-
g
-
y
-
g
q
j
-
-
-
r
d
-
-
p
s
-
-
c
-
m
-
l
-
q
-
b
-
j
-
g
-
n
-
u
-
d
-
j
-
i
-
y
g
j
x
-
-
p
-
-
-
c
-
o
-
r
-
e
l
-
-
o
-
q
-
p
p
-
o
u
p
-
-
-
-
a
a
-
-
o
-
m
-
o
r
-
-
u
b
-
-
r
-
w
-
k
t
m
-
-
-
e
-
d
-
l
m
w
f
-
-
r
t
-
-
-
-
y
x
-
t
b
m
q
-
-
h
-
p
-
w
-
-
b
-
-
-
r
-
u
-
v
-
y
-
r
-
r
-
h
-
g
-
f
-
g
b
-
-
x
i
-
y
t
-
d
c
-
-
-
-
u
-
u
-
b
-
l
h
-
q
-
-
v
-
e
-
a
k
-
c
e
-
-
j
-
o
-
v
-
x
y
-
t
-
y
-
-
-
i
-
r
-
f
-
c
h
q
-
g
r
i
-
-
j
-
-
-
-
a
b
-
-
a
b
j
-
w
b
-
-
t
i
c
-
-
p
-
-
-
-
e
k
-
-
v
g
-
-
u
-
p
-
v
-
w
o
j
-
-
y
x
p
-
-
-
-
l
-
s
p
-
h
t
x
b
-
s
-
-
-
-
-
h
-
i
v
-
x
y
-
-
g
a
y
-
-
r
-
-
-
y
-
e
-
o
k
-
-
w
-
w
-
y
r
-
o
p
c
-
p
m
-
-
x
-
-
-
-
t
-
l
g
d
a
-
-
-
-
d
-
v
-
t
u
v
-
l
b
-
r
w
-
-
t
c
g
-
-
-
u
-
y
s
s
-
-
-
b
-
b
-
-
-
-
h
t
-
-
l
j
d
-
-
-
w
-
j
-
m
s
-
g
-
-
k
-
y
l
-
x
h
i
g
i
g
r
q
-
k
d
r
-
c
-
y
a
-
-
u
-
-
-
-
v
-
-
c
-
-
w
-
-
-
g
s
-
l
g
-
-
-
-
-
y
w
-
-
-
c
-
h
-
h
-
s
-
e
-
b
-
u
-
e
-
w
-
q
w
d
-
-
-
s
-
m
-
l
d
-
-
h
o
k
-
-
f
-
c
-
y
-
l
-
-
c
-
n
v
-
-
g
t
-
-
h
h
-
-
u
t
t
t
k
k
-
i
q
y
i
-
x
-
-
-
l
-
-
-
q
-
-
-
v
-
x
-
-
-
w
-
n
-
l
g
p
-
o
y
-
h
-
d
-
-
-
n
-
-
x
-
t
-
l
-
p
y
-
-
a
-
b
h
-
b
-
a
-
-
v
p
-
-
s
-
m
-
f
-
s
i
-
p
-
e
-
-
p
-
p
-
c
a
-
-
a
-
v
-
k
x
-
q
c
-
o
-
-
q
-
i
-
-
a
-
s
-
w
-
t
-
l
-
m
s
-
-
s
i
k
-
-
-
s
l
-
-
o
-
y
-
q
-
i
-
h
-
k
i
j
-
-
-
h
-
e
-
a
h
-
-
x
-
d
b
v
-
-
-
n
-
s
-
h
-
j
-
c
-
u
-
c
-
v
k
-
a
-
-
g
x
t
-
q
-
-
-
d
l
-
m
-
-
c
h
r
-
f
-
-
x
-
-
t
s
m
q
l
-
-
-
r
-
c
-
w
-
-
m
v
-
y
-
-
-
r
k
-
-
l
w
-
-
e
-
f
-
s
x
-
-
a
a
t
q
-
-
q
g
-
-
n
q
-
-
-
-
k
-
w
-
m
-
t
-
r
-
h
-
w
-
w
b
-
h
-
-
a
-
w
-
x
-
d
m
-
-
l
-
g
b
-
-
g
-
e
-
y
o
-
x
j
-
k
n
-
-
e
-
-
-
g
d
m
-
l
-
-
-
b
a
-
t
-
-
o
-
r
-
n
-
s
-
g
-
k
q
b
-
-
-
m
-
j
n
i
-
-
-
x
-
u
i
-
n
n
c
r
-
v
p
j
-
n
-
-
-
-
d
a
-
v
-
-
-
-
-
j
l
-
m
-
b
u
-
e
-
-
q
-
q
a
-
i
r
-
-
-
l
-
-
q
-
c
-
y
q
-
i
q
-
-
w
-
-
y
-
j
-
e
-
m
-
t
s
u
-
-
-
j
-
o
-
i
-
j
f
-
k
k
h
-
h
-
-
-
-
b
i
-
-
d
c
-
-
d
-
p
-
i
d
-
-
j
-
i
-
p
-
i
n
-
l
-
-
s
-
c
-
m
m
-
c
-
i
n
-
-
-
l
w
-
-
h
-
q
s
-
o
k
-
-
o
g
-
t
-
b
-
-
t
-
h
-
f
-
-
u
k
-
-
e
-
k
x
-
-
r
-
r
-
a
-
a
f
f
u
-
j
-
-
-
-
f
-
e
-
s
-
g
n
-
-
l
-
l
-
q
l
-
j
f
l
-
-
-
t
i
-
-
-
x
t
-
u
-
-
c
-
t
-
l
-
d
-
u
-
j
-
m
-
c
-
m
-
b
-
d
-
c
t
-
-
y
-
o
-
n
f
-
a
-
-
u
-
d
-
g
-
c
l
-
k
t
-
-
m
o
-
-
g
b
-
-
-
r
-
x
-
k
-
v
-
e
n
-
-
y
-
i
b
p
-
-
w
q
w
-
d
-
-
-
-
e
q
e
-
i
-
-
-
h
-
o
-
a
-
k
-
n
c
-
-
b
-
h
j
-
-
e
-
q
i
-
-
n
-
b
-
c
-
h
-
e
-
w
p
-
h
-
g
-
d
-
-
r
-
q
j
-
p
-
-
y
-
c
m
-
-
o
-
g
-
q
-
h
l
i
-
-
j
d
-
w
-
-
h
-
-
x
-
s
x
-
y
w
-
-
-
h
o
-
-
b
-
g
m
-
-
m
g
-
-
t
l
-
-
c
i
-
-
l
-
d
-
p
-
u
-
m
j
-
-
j
-
h
-
i
w
-
-
c
-
f
n
l
n
-
e
e
-
-
-
x
-
-
-
i
-
v
-
v
h
-
-
n
-
p
-
g
-
a
l
q
-
-
t
o
k
-
-
-
-
c
k
-
-
b
-
i
m
x
-
a
-
-
-
j
-
v
p
-
g
-
-
t
-
p
u
u
-
-
b
-
y
-
y
-
l
-
f
a
-
-
-
o
t
-
-
y
-
h
-
w
-
b
-
t
-
m
-
g
d
f
-
-
-
s
-
f
-
a
-
l
-
j
-
j
-
l
x
-
v
t
d
n
-
-
-
-
-
u
-
u
-
k
-
y
-
x
-
i
l
t
-
h
-
g
-
-
-
j
c
-
-
f
-
e
-
i
d
-
x
v
-
x
-
w
-
-
-
t
-
e
-
x
n
-
-
b
-
s
m
-
-
x
o
-
-
c
-
g
h
-
x
a
o
-
-
v
-
-
-
e
u
-
t
-
-
w
-
q
-
r
-
q
-
x
-
w
-
r
-
a
-
t
-
j
-
a
-
b
j
-
d
a
f
y
-
-
-
p
-
s
-
-
g
s
h
t
-
w
-
x
-
-
-
q
-
-
-
b
c
-
-
f
-
u
-
r
y
o
-
-
w
-
-
r
-
y
-
a
-
u
c
-
-
y
-
i
-
y
c
s
-
-
w
-
-
g
-
m
w
-
-
e
-
e
-
u
q
c
-
l
-
-
-
d
b
c
-
b
-
x
-
q
-
t
-
-
-
k
-
k
-
j
-
g
-
b
-
t
-
c
-
s
i
-
-
m
-
y
-
d
-
q
-
f
-
s
-
r
-
p
-
f
c
-
-
v
-
h
-
j
-
y
-
i
m
f
-
x
-
-
-
k
-
o
w
-
-
d
-
l
-
k
-
t
-
j
-
p
u
-
-
y
r
n
-
-
l
-
-
c
h
-
-
o
-
k
-
v
n
-
-
x
-
p
-
f
-
p
-
j
-
v
-
p
c
-
-
q
-
c
-
r
h
b
-
-
-
d
-
a
p
-
q
-
y
o
m
-
-
k
-
-
h
y
-
-
-
k
-
g
-
x
-
d
f
-
-
f
g
-
-
p
-
c
-
f
-
t
x
k
-
-
-
i
-
i
-
x
-
y
-
g
-
w
c
-
-
r
t
-
-
d
-
d
-
u
-
n
-
u
-
m
-
j
v
r
-
-
-
h
p
-
-
k
-
e
-
t
-
h
q
f
-
c
l
-
-
-
-
i
-
m
-
o
h
b
-
-
n
f
u
t
-
u
-
v
-
i
m
-
-
-
-
-
j
g
e
-
-
-
s
j
-
-
-
e
o
-
j
a
-
u
-
y
-
j
-
-
-
i
-
l
-
g
c
y
m
-
h
c
-
g
-
-
-
-
-
t
-
g
-
p
-
g
u
-
d
-
s
-
-
r
w
u
x
-
-
a
b
a
-
i
-
-
-
-
b
-
u
-
-
b
-
l
p
-
-
l
-
l
-
e
-
q
-
i
d
-
-
i
l
-
-
l
-
m
-
h
-
y
-
f
-
e
t
-
-
j
-
c
-
n
f
-
-
k
-
e
b
k
-
-
l
-
-
a
-
f
-
s
-
h
-
m
-
t
v
u
-
-
-
u
-
w
p
d
-
n
q
-
-
-
d
-
-
i
-
t
u
-
-
l
-
q
-
t
w
-
m
-
-
i
-
l
-
b
-
b
-
f
j
-
-
b
-
d
y
o
-
-
-
a
-
d
-
i
-
t
-
o
s
-
-
i
-
o
-
u
w
a
-
-
h
b
-
x
k
e
-
-
m
-
-
-
g
-
-
w
r
-
-
k
o
-
j
p
-
r
-
-
-
a
-
q
-
b
-
a
-
p
-
v
-
x
-
o
-
b
b
d
n
i
x
h
-
-
-
-
-
-
p
-
h
-
-
v
o
-
g
-
v
-
-
t
-
y
a
-
v
-
-
c
-
p
l
-
-
t
q
-
-
u
l
-
a
r
-
-
-
e
-
u
-
f
u
d
k
-
-
-
d
i
-
-
g
-
-
u
g
-
-
o
-
w
-
k
-
n
-
y
-
p
r
-
r
x
j
q
-
j
j
t
-
-
-
-
x
e
-
-
v
-
-
-
-
k
-
r
-
x
i
-
e
-
-
v
-
k
-
s
-
u
n
o
t
-
-
-
-
e
-
e
-
i
q
-
-
d
-
j
n
-
-
w
-
s
-
w
-
n
n
-
h
-
-
r
-
v
-
a
-
b
x
k
-
j
-
-
-
w
-
l
-
g
-
x
e
-
-
y
-
a
-
o
-
s
-
s
-
a
h
-
l
-
-
n
-
h
-
w
-
p
-
l
i
-
e
u
f
-
-
-
-
r
-
t
v
h
-
-
-
g
m
-
-
s
q
-
c
-
-
j
p
-
-
d
c
-
-
y
-
i
a
h
-
-
r
-
-
c
x
t
a
s
j
c
-
-
-
s
-
r
-
-
-
-
b
t
-
-
-
f
v
-
i
-
-
d
-
a
g
-
-
e
h
-
-
x
o
a
-
d
v
-
-
-
u
-
k
-
u
-
-
t
-
s
-
q
d
-
-
m
-
b
-
i
-
a
k
-
-
j
e
-
-
i
-
k
-
u
g
-
-
s
-
d
-
f
-
x
h
-
-
i
p
-
-
y
-
s
-
x
-
j
-
k
e
d
-
-
h
-
-
s
-
l
k
a
-
-
-
e
-
m
j
-
g
c
e
s
v
-
r
d
-
-
-
h
e
-
g
o
-
-
-
-
m
-
u
-
-
w
-
-
-
m
-
m
-
d
-
x
-
r
-
t
-
g
-
c
-
q
-
n
-
w
-
q
h
u
-
-
-
l
-
r
-
o
-
q
-
h
r
-
e
-
e
-
-
p
-
x
-
y
-
y
-
b
c
m
-
-
-
u
x
x
-
-
-
r
-
j
-
y
x
-
-
g
-
g
-
o
-
x
f
-
-
x
-
c
-
k
-
y
i
-
w
-
-
i
b
t
-
-
-
d
-
v
-
q
-
y
h
-
e
-
y
-
-
l
-
p
-
d
-
c
-
t
e
t
-
-
-
d
k
-
t
-
-
n
r
-
-
p
-
r
-
l
o
-
q
g
-
-
-
p
-
l
k
-
-
m
t
x
-
-
-
g
-
m
q
-
v
i
e
-
-
-
f
-
-
p
-
k
-
l
m
-
-
m
-
w
x
-
-
c
-
x
-
u
-
s
-
d
-
c
-
n
u
-
x
-
-
v
-
r
u
-
-
r
-
q
-
j
v
-
-
i
u
-
w
p
p
u
-
y
-
x
-
-
-
-
u
f
-
i
r
-
-
-
-
n
-
b
-
q
n
t
d
-
u
-
w
a
-
-
-
-
-
y
-
h
d
-
-
r
-
r
-
s
-
k
-
k
-
l
-
q
-
y
-
x
-
d
-
i
-
g
-
u
j
h
-
-
m
-
-
a
t
-
-
h
g
-
s
-
-
n
-
g
-
g
-
f
w
-
o
-
-
y
-
y
-
j
-
h
-
a
-
k
-
s
h
v
-
h
a
-
-
g
-
i
-
-
v
n
-
-
-
q
-
g
-
r
-
g
-
c
-
s
u
-
-
h
-
l
-
s
t
-
-
n
e
l
u
l
-
r
n
-
a
-
-
-
x
w
-
-
-
-
q
-
-
y
-
d
-
u
-
o
-
v
c
-
-
o
n
-
-
b
-
m
-
g
b
-
-
v
-
g
-
o
-
m
-
g
-
d
-
s
c
b
-
-
-
c
-
s
-
n
-
f
-
h
-
u
-
e
-
g
-
w
-
q
w
-
-
a
x
i
p
-
-
-
-
m
q
-
-
j
-
e
-
h
-
y
-
q
d
-
-
t
-
l
-
c
k
-
-
e
-
w
-
g
p
-
-
e
x
-
-
h
-
x
q
-
h
k
w
h
-
a
-
p
-
-
r
-
-
w
v
w
b
-
g
-
-
-
-
-
u
-
y
s
k
-
-
-
y
-
-
b
-
r
-
m
-
a
-
h
-
t
-
o
-
a
f
-
-
r
y
-
-
x
c
-
-
n
-
w
-
v
-
i
-
x
w
-
i
-
d
-
-
b
-
k
f
t
v
v
-
-
-
-
f
-
-
c
m
-
s
-
-
x
-
n
c
-
-
q
-
c
i
f
g
x
-
-
-
-
-
j
-
v
i
-
-
v
-
b
f
t
e
-
-
w
-
-
j
s
i
u
-
a
r
-
-
-
-
-
-
x
-
d
l
p
-
-
-
r
-
l
-
e
x
j
-
-
o
x
-
-
-
h
u
-
-
i
o
-
-
h
-
x
-
f
-
d
-
r
-
g
-
w
t
-
-
j
-
n
-
w
m
y
p
-
-
-
-
m
-
v
-
f
k
-
-
j
-
x
-
l
m
m
-
-
-
e
k
-
-
b
-
b
-
a
o
-
-
h
y
-
-
h
b
-
-
i
-
x
q
e
-
-
-
p
-
m
-
u
-
h
-
e
-
t
-
b
-
c
-
n
-
a
-
o
-
q
-
q
u
-
-
d
n
-
-
i
-
v
-
u
-
f
-
m
-
j
y
-
p
-
t
-
-
g
a
v
d
-
-
-
-
q
y
-
h
-
-
u
-
t
-
f
h
f
q
-
s
-
f
-
-
-
v
f
-
y
y
-
-
s
v
-
-
-
-
c
-
h
-
t
-
d
-
i
o
-
-
u
i
-
-
q
b
-
f
-
w
-
-
o
-
b
-
w
-
m
-
t
k
a
-
i
-
m
q
-
-
-
-
b
-
f
-
d
n
-
b
-
-
m
-
r
f
-
-
u
-
m
-
m
-
v
-
n
-
c
-
c
-
o
-
n
-
o
-
o
-
w
c
-
x
-
-
i
i
-
-
x
-
h
x
w
-
-
-
f
l
-
k
-
-
g
-
g
f
-
-
j
k
k
f
-
y
-
-
-
-
i
d
-
-
x
y
-
-
a
-
e
-
w
-
b
-
c
m
-
-
c
x
-
-
g
j
r
-
-
b
-
-
b
-
r
t
-
t
-
-
w
h
b
-
-
-
r
-
p
i
-
-
y
r
-
-
e
-
d
a
o
-
-
-
b
u
g
-
-
u
i
g
-
-
-
-
q
-
v
q
-
o
-
s
-
-
a
-
b
-
a
-
s
y
-
-
g
-
r
u
y
j
f
-
-
-
-
-
u
-
v
-
v
-
w
q
-
n
-
-
w
j
r
-
-
-
f
-
i
-
i
-
j
-
p
-
c
r
-
w
f
-
l
-
h
-
-
-
g
-
v
-
i
y
p
x
-
-
-
c
-
-
a
-
n
-
r
-
g
-
q
u
-
k
-
p
-
j
-
-
f
y
-
-
r
a
p
-
-
a
t
-
-
-
c
-
p
-
a
-
q
x
-
-
k
-
f
f
e
-
-
i
-
-
e
-
h
-
j
-
s
-
v
-
k
-
e
-
g
-
r
-
c
v
-
-
y
b
-
-
j
-
c
p
p
-
-
-
k
-
k
k
m
-
-
-
p
-
v
-
x
e
-
-
s
-
u
-
y
-
c
-
o
-
u
-
t
-
d
-
r
-
s
-
d
k
e
-
-
-
a
-
r
-
s
-
r
w
a
-
k
-
-
-
w
-
k
-
k
-
k
-
w
-
w
g
-
n
-
c
-
n
-
-
n
p
-
-
f
-
d
c
t
-
-
-
d
-
e
-
y
-
f
-
e
-
o
-
m
s
h
o
-
h
g
-
-
s
-
-
g
-
-
-
j
-
x
-
w
-
j
-
e
w
h
-
-
-
o
-
d
-
i
g
t
u
-
-
w
x
-
-
d
-
-
-
q
-
c
q
-
k
g
-
k
-
-
-
i
-
p
-
c
r
-
-
e
-
l
-
l
-
r
-
v
-
w
-
p
-
q
-
v
-
d
a
b
-
m
-
w
-
-
i
d
b
-
-
l
-
-
n
-
-
r
-
j
-
j
-
a
c
-
-
r
-
o
-
e
-
p
-
u
o
l
-
-
k
-
-
k
q
r
w
c
c
w
g
-
-
-
-
p
-
x
h
n
-
-
-
u
-
-
-
j
e
-
-
-
a
-
-
o
r
-
e
q
p
-
-
-
-
o
-
d
-
h
-
f
x
e
-
c
-
o
-
-
n
-
-
q
e
v
-
-
w
-
-
a
n
-
q
n
m
f
-
-
k
-
-
u
b
y
t
-
h
-
-
n
s
-
w
-
-
-
-
-
-
i
k
s
-
i
-
-
-
o
d
-
-
l
c
-
f
-
-
g
q
-
-
b
-
d
-
h
-
q
-
a
r
j
c
-
o
p
-
-
g
-
-
c
-
-
w
o
-
-
-
a
f
-
c
-
-
h
p
-
v
b
y
-
-
-
-
t
-
a
-
r
-
e
q
-
o
-
q
-
-
t
-
v
-
j
d
u
o
-
c
p
-
k
-
-
j
k
g
p
o
-
-
-
-
-
-
g
-
-
-
k
-
s
-
a
-
s
-
q
-
y
-
s
-
i
-
q
-
p
t
-
j
-
v
h
l
-
-
-
w
-
-
q
-
b
s
-
-
u
a
-
s
k
p
-
-
-
u
n
-
k
-
-
-
v
c
-
-
d
p
-
f
x
-
k
-
-
-
n
-
t
f
-
-
c
t
-
-
l
-
l
-
d
x
c
q
-
-
-
-
h
-
h
l
-
w
-
-
o
f
-
-
m
r
-
y
-
-
m
-
i
-
s
-
p
-
q
w
-
k
b
w
-
-
d
-
-
t
-
q
-
f
a
r
j
-
-
h
-
-
c
-
-
-
q
-
m
-
i
i
-
-
a
-
j
-
v
m
t
w
-
-
-
-
v
-
i
-
k
-
x
-
p
f
-
b
-
-
j
-
c
u
-
u
n
-
-
-
b
-
i
-
w
-
j
-
h
o
-
-
b
-
j
q
-
-
c
-
e
-
o
-
l
h
-
f
-
-
y
-
i
-
f
o
-
-
q
-
a
-
y
b
k
-
f
l
b
-
-
-
j
-
-
l
-
-
m
-
o
e
-
-
u
-
u
-
b
-
v
n
-
-
r
n
d
t
e
-
u
-
-
-
c
-
u
-
w
-
c
-
-
s
-
-
d
-
j
-
m
n
-
-
b
-
o
y
-
-
b
-
a
-
k
-
s
i
-
-
v
-
n
k
q
-
-
-
l
a
-
-
n
-
i
-
b
-
s
-
e
-
p
j
p
-
-
n
m
-
-
-
x
-
p
-
x
k
-
l
-
r
-
d
-
f
-
n
q
-
-
-
v
-
p
-
g
t
w
-
-
-
f
-
d
i
x
i
-
-
-
r
-
-
r
-
t
g
-
-
e
e
-
-
s
-
m
-
r
-
f
-
a
-
r
l
h
n
-
-
g
l
-
-
c
-
-
-
v
-
y
-
t
y
g
-
-
u
-
-
g
q
r
w
-
t
-
-
j
-
-
-
w
-
i
-
e
q
-
-
n
-
r
c
-
e
b
h
g
n
-
c
-
-
-
-
-
-
q
-
l
-
x
q
-
-
c
f
-
h
k
-
f
-
m
-
l
-
-
-
e
-
c
t
-
h
-
l
-
c
-
-
y
c
-
l
a
-
-
-
m
-
o
-
s
-
k
-
s
-
o
-
f
a
-
-
g
-
i
-
s
-
s
f
-
d
c
-
-
-
p
-
f
v
-
l
-
-
y
-
w
-
k
d
-
-
p
u
-
j
-
f
-
-
p
-
t
-
e
-
a
-
g
-
i
n
-
-
r
-
u
-
b
-
j
t
-
-
x
-
m
s
-
y
f
j
-
l
-
-
-
-
w
o
e
e
h
-
-
x
v
-
-
-
p
-
-
-
m
-
m
-
o
-
g
e
u
d
-
v
-
-
u
k
-
-
-
f
f
-
h
-
-
-
e
y
-
-
v
-
i
-
a
j
-
-
d
w
-
-
r
-
y
-
o
-
i
-
a
-
q
h
-
-
u
g
-
-
h
-
j
-
e
k
-
-
d
-
i
p
n
-
-
-
w
-
e
-
q
-
d
-
n
-
l
v
-
-
b
-
p
-
d
-
l
o
y
o
-
-
-
-
n
-
e
x
-
-
x
-
r
-
g
-
s
u
-
-
l
-
q
-
w
-
q
-
q
v
w
-
-
-
t
g
v
-
-
-
l
i
-
-
m
u
m
-
-
y
-
-
y
-
l
-
m
-
l
-
g
m
-
x
-
-
c
-
q
-
s
-
q
g
-
-
h
y
i
-
-
-
g
x
-
-
l
-
l
-
a
-
k
-
u
f
-
-
j
-
i
-
t
-
o
-
h
y
-
n
l
p
-
b
-
-
-
c
-
e
-
-
x
r
v
-
-
-
j
-
e
-
v
-
j
-
d
-
g
d
-
-
j
-
f
-
a
-
v
u
g
-
-
-
p
b
-
-
x
x
-
-
r
g
-
-
q
-
f
-
i
-
f
-
e
n
s
-
-
-
r
-
p
-
j
b
-
-
u
-
r
-
p
-
y
-
m
r
r
-
-
-
u
-
a
x
-
-
o
-
f
-
o
c
n
-
-
-
w
-
g
-
k
c
-
f
-
w
s
-
-
-
x
-
u
-
c
-
k
-
i
c
w
-
g
-
-
g
j
-
-
-
n
-
l
d
-
n
q
-
-
t
-
-
b
-
v
o
t
m
-
j
p
-
-
h
-
-
-
-
p
-
b
-
h
m
r
-
t
-
-
-
o
-
i
f
o
x
-
-
-
-
j
j
-
-
e
-
h
-
s
-
j
-
h
h
-
q
-
-
o
d
r
q
u
-
-
-
e
-
-
-
a
-
b
-
b
p
-
-
q
w
-
-
y
-
e
-
g
-
q
-
s
k
e
-
-
r
-
o
-
b
-
-
i
-
f
-
j
-
w
-
s
i
-
m
-
t
u
-
p
-
-
d
t
-
-
-
q
i
-
-
e
-
n
-
b
h
-
-
t
-
l
c
-
j
-
g
s
q
-
y
l
m
-
-
m
-
-
-
w
-
-
-
c
k
h
-
x
-
y
-
-
-
f
-
i
-
p
-
y
-
e
-
x
-
u
-
m
-
s
x
q
-
-
u
y
-
-
s
-
-
v
-
w
-
v
-
d
-
a
e
-
u
-
-
u
-
j
r
b
i
p
r
-
v
-
c
-
-
-
-
-
-
p
-
c
-
h
-
n
-
j
l
o
m
-
-
q
-
-
-
y
q
k
-
w
-
d
-
-
-
f
-
j
-
q
o
v
-
y
j
-
-
-
-
i
-
n
-
d
-
s
-
p
-
n
-
q
-
v
-
w
-
s
-
n
-
l
-
e
s
-
i
-
-
l
-
c
k
t
-
-
-
u
-
l
-
h
-
w
f
-
x
a
e
l
-
-
-
l
a
-
-
m
-
u
-
a
-
-
j
-
l
m
-
-
-
q
-
c
-
a
-
k
-
u
-
q
-
u
-
u
-
n
g
q
-
-
-
y
-
y
w
-
r
-
f
-
w
w
k
-
-
d
-
s
-
-
-
k
-
x
-
n
x
b
-
t
l
-
-
g
g
p
d
-
m
-
-
-
d
-
-
-
-
l
-
i
c
-
-
p
w
i
b
a
-
-
q
-
-
-
t
-
-
t
-
x
-
r
-
j
-
n
-
d
-
r
-
a
-
v
n
-
s
-
-
e
x
-
-
p
l
e
-
-
h
-
-
t
-
d
v
-
-
c
-
n
-
d
e
d
-
-
-
v
m
-
d
-
-
h
y
-
-
f
j
-
-
x
-
o
-
q
x
-
j
w
-
-
-
u
-
n
-
g
-
n
-
f
f
-
-
u
-
n
q
-
-
e
m
-
q
w
-
-
-
s
q
k
-
-
-
w
-
p
-
k
-
l
y
-
-
k
m
q
n
-
-
o
-
-
h
-
-
g
-
b
-
p
h
q
w
-
-
g
d
e
m
-
y
-
-
n
-
-
-
-
-
b
-
l
-
l
-
p
-
d
o
-
-
b
-
e
-
k
-
o
-
o
-
y
i
w
v
b
-
g
-
-
f
-
-
s
-
-
-
f
-
c
l
s
y
x
-
-
-
-
-
u
-
j
-
d
-
v
-
r
-
s
g
y
-
-
-
v
-
f
-
c
k
-
e
-
w
-
-
c
-
f
-
a
-
n
-
n
-
j
-
l
-
g
-
a
-
v
c
w
l
-
r
-
-
-
-
c
-
i
i
-
g
-
d
a
-
-
-
v
-
h
b
-
a
-
q
-
a
x
-
-
-
f
-
a
-
b
c
x
-
c
m
c
-
-
-
x
o
o
-
-
-
g
i
-
-
v
g
-
-
-
b
-
-
h
-
l
l
-
f
-
n
o
-
-
-
x
-
p
-
k
-
y
-
s
-
p
-
n
c
-
-
q
-
t
-
p
-
b
-
i
-
b
-
k
r
-
f
-
f
n
-
x
-
-
-
f
-
t
-
g
-
i
-
p
-
v
-
c
-
o
-
q
-
y
h
-
-
k
-
w
-
v
-
m
-
y
-
v
-
o
m
m
e
-
k
-
b
-
-
w
-
-
d
-
-
b
-
j
-
q
v
-
-
y
-
y
q
-
-
e
t
-
-
y
-
i
w
-
q
-
-
k
q
-
-
x
-
k
-
m
p
-
-
c
-
c
-
k
k
-
-
c
-
i
-
j
-
i
-
x
-
f
o
v
j
-
-
-
l
-
-
h
v
-
-
r
v
-
t
-
-
c
-
t
-
o
-
i
-
q
-
e
p
-
-
u
-
c
-
m
-
l
-
m
-
g
o
y
-
-
u
-
o
-
-
b
-
s
-
e
c
-
-
c
q
w
g
a
g
d
-
u
-
-
t
w
-
-
-
-
f
-
-
p
-
-
-
t
-
a
-
q
-
p
a
-
a
-
-
v
g
-
-
l
-
q
-
n
-
w
d
-
h
-
-
y
a
b
-
-
-
m
-
w
-
s
-
g
-
o
-
l
v
b
g
-
u
-
-
p
-
-
j
-
-
h
-
v
j
-
-
y
-
t
-
y
-
d
-
c
d
e
-
-
-
j
-
b
-
d
-
v
-
m
-
w
r
q
u
-
-
-
-
e
a
u
-
-
-
s
-
b
o
p
-
q
-
-
-
a
-
k
-
i
f
-
-
a
c
l
-
-
-
p
q
w
e
r
-
-
h
-
-
a
-
l
-
-
a
-
-
q
n
a
-
-
-
o
p
-
f
-
-
f
v
-
-
q
-
v
-
k
-
p
n
-
-
q
-
m
t
-
n
-
i
-
g
e
-
-
s
-
-
t
-
a
-
f
-
p
d
-
c
-
a
b
-
f
-
-
-
m
-
i
f
-
-
k
i
j
k
-
-
e
b
-
-
-
-
i
-
b
-
t
-
n
-
g
-
c
-
t
-
s
-
o
a
r
h
-
-
-
-
n
-
o
-
n
c
-
f
k
-
-
u
-
-
x
e
k
-
-
-
x
-
w
-
g
k
r
t
-
c
p
-
-
-
-
-
b
s
g
-
f
-
-
-
p
e
o
f
c
-
q
-
u
-
w
k
-
-
p
-
l
-
l
b
-
h
c
-
k
o
h
a
-
x
-
h
-
-
v
e
n
-
q
-
-
q
p
-
a
-
-
-
-
-
-
-
-
k
w
-
-
-
q
-
-
-
b
-
y
-
g
-
y
-
m
-
e
b
b
-
h
g
-
-
-
-
f
x
-
s
-
-
g
-
g
-
d
-
h
t
b
-
-
o
x
k
-
-
p
-
m
u
-
-
b
-
-
x
i
-
-
b
-
-
t
p
-
-
i
k
-
-
h
-
d
-
i
j
-
-
r
-
l
-
f
x
-
-
c
-
r
-
t
r
-
-
q
-
g
-
w
-
v
p
-
-
t
-
s
j
-
-
m
-
g
m
b
-
-
-
a
q
-
-
s
j
g
-
-
-
v
-
u
n
-
l
i
-
-
-
i
-
q
y
f
-
-
o
-
-
t
x
-
v
-
l
q
-
-
-
x
-
u
-
w
y
-
l
k
-
-
-
s
f
-
q
-
a
-
-
n
-
w
k
-
-
u
t
j
r
-
-
-
-
a
-
l
-
p
i
-
-
g
-
u
-
o
-
o
v
-
-
i
-
e
-
x
-
h
-
k
r
-
-
y
p
-
-
y
-
c
q
h
v
-
-
d
-
-
-
l
-
m
g
-
g
-
-
a
-
w
v
c
x
-
t
-
-
-
-
s
-
v
-
i
-
o
-
e
-
k
-
e
-
l
-
s
-
c
-
k
-
s
-
g
r
-
-
w
-
j
h
n
-
-
d
-
-
d
-
y
-
a
-
m
s
g
-
t
-
c
-
c
-
-
-
d
-
p
-
d
-
q
-
k
f
-
-
o
-
n
-
r
t
-
-
v
-
j
-
a
-
y
-
s
-
u
e
q
-
i
-
-
-
k
-
d
c
l
g
a
r
-
-
-
-
-
t
m
a
v
-
-
s
m
-
g
a
-
-
-
-
-
-
j
o
-
-
k
-
h
-
l
j
-
-
c
-
i
-
e
-
n
-
k
-
g
k
j
-
-
-
j
-
y
-
s
p
-
-
w
i
o
y
-
-
t
p
-
f
d
y
q
-
-
e
-
-
d
-
-
l
k
-
-
f
-
o
d
-
-
-
-
d
-
a
v
f
a
-
-
i
-
-
u
-
-
-
p
-
v
-
c
a
j
-
p
o
x
-
-
-
-
-
q
-
s
n
-
-
f
-
v
-
r
-
l
-
u
-
j
a
-
m
-
b
-
t
-
t
o
-
-
-
c
-
y
-
m
w
x
-
-
s
d
e
-
-
-
-
e
-
d
-
v
-
c
i
-
-
u
-
c
-
p
-
m
e
-
-
h
-
w
b
x
-
o
-
v
-
-
-
e
-
l
-
l
-
o
y
x
-
h
-
e
o
-
-
-
h
-
-
e
-
s
-
i
n
s
-
-
-
n
q
-
-
l
j
-
-
v
-
n
-
u
-
v
y
x
-
-
f
-
-
t
-
a
-
s
-
w
-
i
-
l
-
o
g
-
-
m
b
-
-
n
-
y
a
-
r
-
-
k
-
r
y
-
-
d
-
p
-
w
-
v
-
w
a
-
-
b
p
-
-
d
-
v
t
b
-
-
-
a
-
g
e
d
-
-
-
a
-
j
-
x
-
h
-
a
-
h
-
u
g
-
i
-
-
u
-
p
k
-
-
w
k
-
-
l
-
a
j
-
-
u
u
-
-
r
i
-
-
n
-
e
-
i
-
d
-
k
-
s
n
a
-
-
s
-
-
g
-
c
x
-
-
s
-
m
-
p
u
t
g
-
-
u
k
-
-
b
-
-
-
l
f
-
g
-
-
e
-
y
u
-
p
-
-
e
p
t
u
v
-
-
-
-
q
m
-
-
p
-
-
x
-
p
-
r
-
j
s
-
x
-
-
w
-
j
v
-
u
b
x
-
h
m
b
-
x
-
-
-
-
b
i
-
-
-
-
s
-
h
-
q
-
e
i
-
-
b
-
t
-
f
-
o
-
j
-
g
-
n
y
-
-
b
-
o
-
w
l
-
-
j
-
u
-
a
-
e
-
s
-
u
v
-
-
k
-
t
w
e
-
-
n
-
d
y
x
-
-
d
k
-
y
-
i
-
-
j
v
-
-
-
-
l
-
i
-
x
-
e
m
-
-
t
-
b
-
r
-
t
-
b
-
k
-
a
-
v
u
i
i
l
a
-
-
l
-
u
a
-
-
-
-
-
-
v
w
k
w
-
-
-
-
e
-
w
-
e
-
g
-
f
-
w
r
x
-
q
k
r
-
-
-
v
k
-
-
-
-
y
-
w
-
k
a
-
q
n
-
-
-
h
-
t
-
u
-
n
-
k
o
g
-
-
d
-
-
p
-
j
-
g
i
-
g
i
x
-
g
-
-
-
-
w
-
s
-
f
y
-
-
f
-
l
-
q
p
-
-
p
-
n
-
s
-
o
-
x
-
a
j
-
-
g
i
-
-
l
-
e
-
x
-
l
-
i
-
g
-
j
-
u
-
f
h
-
e
-
i
-
-
d
-
m
-
k
-
e
y
k
x
o
-
-
-
-
-
p
l
-
-
b
-
e
-
g
-
x
-
t
-
f
-
g
-
p
-
n
q
-
-
q
r
-
-
e
-
s
-
u
-
e
p
-
-
o
b
a
h
-
r
-
n
j
d
-
-
-
-
-
-
g
y
-
-
t
-
t
-
i
-
e
-
d
-
g
-
s
i
-
-
h
-
r
-
g
-
o
q
-
-
l
b
i
y
-
-
-
-
s
t
-
-
f
-
k
-
s
-
s
-
t
-
m
-
p
-
i
-
v
-
h
d
-
-
h
-
i
-
x
-
c
o
n
w
-
i
-
m
-
-
-
-
h
-
r
-
u
-
i
-
l
-
t
-
b
-
y
k
-
-
h
-
d
-
r
-
x
-
d
m
-
n
d
-
b
o
c
a
-
-
-
g
o
-
-
e
s
-
-
r
-
-
-
-
u
-
y
-
c
h
r
u
w
-
-
-
-
i
-
-
p
o
o
-
c
u
c
-
-
-
-
x
u
-
f
-
-
-
f
-
f
m
-
-
f
-
f
i
-
c
-
d
-
-
a
c
n
w
-
d
-
h
-
e
u
-
-
h
-
-
m
i
l
-
-
-
h
j
-
k
-
-
-
-
o
-
k
l
-
w
-
-
m
-
w
d
-
-
b
-
q
-
p
-
c
-
x
f
c
e
u
k
-
b
-
-
m
-
p
-
-
-
-
-
l
-
m
p
-
-
b
-
k
-
p
-
i
-
x
r
n
-
j
-
l
-
-
-
e
-
s
h
-
-
w
-
o
g
-
p
-
-
e
-
r
f
x
-
t
-
-
-
s
v
-
-
d
d
-
-
p
-
k
-
r
-
a
x
x
-
-
-
g
-
f
-
m
g
k
-
-
y
-
g
-
q
-
-
d
-
o
-
e
-
n
-
s
-
e
-
a
-
g
c
-
-
m
-
u
u
-
-
l
-
r
y
-
b
c
t
-
i
x
b
e
-
-
-
-
-
-
i
q
-
h
-
-
f
-
j
-
-
s
b
-
-
e
-
j
-
b
a
m
-
n
-
-
l
-
-
b
-
w
u
-
-
u
-
b
-
y
-
u
n
-
-
e
m
-
-
c
-
t
-
p
-
m
v
-
m
u
c
l
-
-
-
-
m
-
-
f
d
-
-
t
x
-
h
-
-
p
c
-
-
h
i
-
-
i
j
-
-
y
p
u
-
q
u
-
t
-
-
w
s
-
l
-
-
-
k
-
-
r
-
t
-
f
-
y
l
a
e
-
y
-
-
l
-
-
-
b
m
-
-
n
e
o
r
w
-
-
-
-
-
n
-
q
-
k
s
-
-
o
o
-
-
t
-
m
-
e
e
-
g
-
u
m
-
-
-
j
-
i
-
g
t
-
-
d
-
v
-
x
-
p
h
-
-
i
d
-
o
-
-
i
-
n
-
n
q
j
-
-
-
q
n
-
-
h
s
-
i
e
-
-
-
g
-
s
v
-
-
h
-
h
i
-
b
b
-
-
-
b
-
d
u
r
-
e
-
-
-
i
-
g
-
f
-
k
w
-
p
v
k
-
-
y
-
v
-
-
-
y
d
-
-
f
k
-
-
v
-
v
-
t
x
j
i
-
-
h
-
m
-
-
-
y
s
-
v
b
-
j
-
-
-
k
s
l
-
y
-
-
f
x
-
-
-
n
b
a
-
j
-
-
-
c
-
j
v
-
-
y
q
-
-
i
-
c
n
i
y
j
-
-
-
-
-
u
-
n
-
y
-
m
l
p
-
-
i
-
-
h
-
x
d
-
-
f
q
o
-
r
k
f
-
-
-
-
d
-
f
-
-
b
-
e
-
d
m
-
-
p
p
-
i
m
-
-
-
u
-
o
-
x
-
n
-
t
-
y
y
o
-
-
q
r
-
-
v
-
q
-
k
-
c
-
-
f
c
g
-
-
-
b
a
r
x
w
-
-
-
-
-
e
-
e
-
p
j
-
-
v
-
q
y
y
-
-
-
b
-
t
-
w
-
m
-
p
-
x
-
i
v
-
-
w
-
w
d
-
-
c
-
r
-
n
-
t
w
-
-
x
d
-
-
r
-
i
k
-
m
e
c
-
-
-
-
r
-
f
-
r
d
w
-
-
c
-
-
v
-
i
-
h
-
y
-
p
b
-
h
-
q
j
-
-
-
s
-
p
l
-
f
-
-
n
n
p
s
-
b
t
-
o
c
-
-
-
h
-
-
-
-
v
-
y
-
u
-
v
-
v
-
r
-
x
-
e
v
-
-
c
t
-
-
g
-
s
j
-
-
w
a
-
t
b
f
-
n
-
e
y
-
-
-
s
-
-
-
q
-
u
-
w
-
t
-
s
g
-
-
c
-
b
-
n
j
-
-
w
-
y
-
x
a
k
-
l
-
p
-
-
-
l
-
u
-
y
u
b
-
-
f
n
-
-
x
o
-
-
-
w
w
-
-
g
m
a
-
-
m
h
-
-
-
j
-
j
c
n
-
-
-
x
g
-
-
w
n
s
f
-
-
-
t
-
-
a
-
u
n
p
-
s
g
o
-
-
w
b
-
-
-
-
-
i
p
k
-
-
-
c
-
h
-
y
-
w
u
-
j
-
-
h
y
-
-
b
h
c
-
-
-
n
y
-
-
u
a
u
-
-
-
r
b
-
-
g
-
l
b
-
-
j
o
-
-
a
-
i
d
o
o
-
k
-
-
-
j
-
-
l
b
-
-
c
-
j
d
o
-
-
-
c
u
-
-
s
-
a
-
p
-
w
-
p
j
-
v
-
-
y
-
y
-
t
-
m
-
p
t
-
o
-
j
c
n
-
y
-
-
x
-
-
-
p
l
-
-
y
x
-
m
-
-
j
-
e
l
j
b
q
-
-
-
g
w
-
-
-
h
-
-
p
s
b
-
-
-
g
-
d
-
y
w
l
u
-
-
m
-
-
-
p
g
o
-
-
-
k
-
k
-
q
-
q
q
-
-
j
-
n
c
-
-
v
-
g
q
-
-
o
y
-
-
a
-
i
-
q
-
j
-
x
w
t
p
-
-
y
c
-
h
-
-
l
-
l
-
d
-
-
c
-
-
n
-
n
o
y
-
c
f
-
v
v
-
-
-
-
-
e
r
-
e
-
m
-
-
h
a
-
t
-
v
-
i
-
-
m
n
-
-
u
-
c
-
h
-
h
-
s
-
u
c
-
-
q
-
f
-
p
o
-
-
a
-
g
h
b
m
-
-
-
q
c
q
n
-
-
-
-
-
l
f
-
-
y
s
-
-
j
a
w
q
o
-
h
-
l
-
-
-
-
v
-
-
d
e
-
t
e
p
-
-
-
-
s
-
g
-
a
-
p
x
-
-
h
-
y
-
g
-
d
-
c
-
w
v
-
-
j
-
o
-
y
c
-
-
c
m
t
g
w
h
-
-
-
-
-
-
q
v
-
v
-
-
w
-
b
-
l
l
-
r
r
p
-
m
w
-
w
-
w
r
w
-
-
c
-
l
-
u
-
i
m
-
r
x
-
-
b
-
-
-
w
-
b
e
j
x
-
b
-
-
-
-
-
-
g
-
-
-
m
-
w
-
a
q
-
-
a
g
-
-
q
w
-
-
k
i
-
-
l
-
b
-
t
a
-
-
y
-
a
n
-
a
k
-
n
q
r
-
-
p
-
-
-
-
n
v
-
-
y
-
l
-
c
-
d
m
-
-
y
j
i
-
-
e
-
-
g
o
-
-
x
-
s
a
-
-
m
d
-
-
q
v
-
e
-
-
q
-
p
g
-
-
t
-
o
y
-
-
b
e
f
-
c
-
-
-
v
-
w
-
q
-
b
-
s
-
t
x
-
-
t
-
s
k
c
-
-
-
g
c
-
m
v
m
-
-
-
-
y
-
r
-
f
-
b
-
k
-
k
-
s
-
i
y
-
l
-
-
l
-
f
-
i
-
l
v
-
g
-
v
d
-
y
-
-
-
p
v
l
r
m
-
w
-
q
-
i
-
-
r
j
n
-
-
o
v
l
-
g
-
-
-
-
v
s
-
-
n
-
-
-
-
n
-
u
a
e
l
-
c
y
e
-
-
d
-
-
-
-
-
s
-
t
-
h
-
j
-
r
d
f
-
-
-
b
-
k
-
s
r
-
-
f
-
q
-
f
g
-
w
-
-
o
-
u
d
-
-
v
-
r
-
k
-
a
o
g
-
-
-
a
-
l
i
-
-
j
-
g
a
-
n
w
-
-
b
-
-
a
-
n
-
g
r
-
-
i
k
-
u
p
u
-
e
-
-
-
-
x
-
d
-
f
p
p
-
w
-
k
a
-
l
-
-
j
-
-
-
g
-
l
-
v
w
-
x
-
t
-
q
-
-
v
-
b
-
k
-
q
-
d
-
n
-
w
-
a
i
-
-
d
a
-
-
p
-
r
q
-
-
v
-
h
y
-
c
-
-
s
l
-
-
t
-
t
-
x
-
j
e
-
-
h
-
v
m
b
-
-
-
o
-
i
g
-
-
a
-
h
-
n
-
l
p
-
-
i
-
p
a
h
-
-
-
o
u
-
-
r
v
-
-
m
-
e
-
u
-
j
y
a
-
v
k
-
-
-
t
-
n
-
h
w
-
v
t
j
-
-
-
-
-
t
-
i
-
l
-
u
l
-
-
w
-
a
-
m
-
h
-
e
-
v
x
s
-
f
-
-
-
c
r
-
s
-
-
o
t
-
-
k
p
p
q
-
-
-
-
r
-
i
-
x
u
m
-
-
k
-
-
w
-
q
-
j
w
-
-
n
-
v
n
-
t
-
-
k
c
m
-
-
g
-
p
-
-
m
-
q
-
a
p
c
a
-
y
-
k
a
-
a
-
-
-
-
-
c
i
-
y
-
-
c
-
w
p
-
-
e
-
l
-
b
-
q
r
p
-
-
-
b
-
q
-
k
-
p
s
l
b
-
w
-
c
-
-
-
v
b
r
-
-
-
y
-
v
q
-
t
-
-
x
y
-
-
-
w
a
-
-
r
-
d
e
n
-
-
g
-
-
i
-
j
g
s
-
-
m
-
-
d
-
t
-
v
-
k
-
u
-
y
-
s
x
d
-
-
-
b
i
-
-
i
-
o
o
e
m
d
-
f
-
-
-
-
-
e
-
l
-
r
-
f
-
w
w
-
-
n
-
p
-
b
w
-
i
-
-
d
c
-
t
-
-
f
-
r
-
g
-
u
-
a
f
-
-
h
d
-
c
h
o
-
-
-
-
o
g
b
-
-
h
-
-
p
n
-
d
-
-
r
-
c
t
-
-
t
-
s
a
v
-
-
-
q
m
-
n
-
-
r
-
b
-
b
-
j
-
l
-
n
-
d
-
v
-
k
u
-
-
j
y
-
-
d
n
-
e
-
v
-
-
d
-
r
a
-
-
h
-
j
h
-
-
a
-
i
d
-
-
j
q
-
k
-
-
e
-
v
m
-
-
q
-
d
-
b
-
b
n
-
i
h
w
m
-
f
q
s
q
-
-
-
c
-
-
u
-
-
l
-
w
i
-
t
l
-
a
q
-
q
-
a
-
-
-
v
q
-
-
y
j
m
b
x
j
-
-
e
m
-
f
r
-
-
-
-
d
-
-
-
m
y
h
q
-
-
-
-
-
j
-
x
j
e
m
-
-
-
w
-
-
-
n
-
-
-
-
f
f
o
q
-
-
-
-
q
-
e
f
t
-
w
-
d
-
-
-
n
-
l
-
m
o
-
-
p
k
-
-
s
-
d
b
-
f
o
-
-
e
h
-
-
-
t
-
x
n
-
-
l
-
a
x
-
-
y
-
l
-
a
-
g
-
g
s
j
y
-
-
b
-
-
h
-
-
h
-
i
-
k
-
y
-
p
b
x
k
-
n
-
a
s
-
-
-
s
-
w
-
-
-
w
k
-
-
m
-
d
-
m
y
-
p
-
-
h
e
-
-
e
i
k
-
-
-
q
-
l
-
c
-
r
-
q
u
-
-
r
-
e
-
c
c
-
x
-
-
f
v
k
-
d
-
-
-
g
i
a
-
-
-
v
-
s
-
s
d
-
w
-
-
i
-
t
-
c
-
s
f
-
b
-
-
w
-
r
-
g
-
p
-
p
n
-
-
j
-
f
m
p
i
-
-
-
-
u
p
j
-
-
-
l
-
y
c
-
-
h
-
n
-
k
-
k
q
q
-
-
-
d
-
b
-
b
-
n
-
i
j
-
c
-
s
x
-
-
-
b
-
k
n
g
-
w
-
-
-
p
o
-
-
p
-
e
-
s
-
k
-
i
f
-
-
s
s
j
s
-
n
-
p
-
x
-
w
b
i
-
-
-
-
-
-
h
-
u
j
-
w
-
-
p
a
-
-
o
-
e
h
-
-
h
-
k
-
n
x
-
-
l
-
s
-
e
d
y
-
-
-
i
c
-
-
t
-
s
-
u
-
o
t
-
i
q
-
h
-
-
l
-
-
w
-
t
p
x
y
-
-
-
-
w
-
k
-
j
-
n
-
h
-
t
-
e
-
n
-
t
-
y
-
m
-
l
-
u
-
o
-
l
l
h
-
-
-
l
-
x
y
e
-
-
-
b
x
-
-
h
-
h
-
d
d
-
-
e
-
u
p
s
-
k
-
-
-
i
-
j
-
u
-
s
-
v
-
c
d
-
h
-
-
k
-
i
-
j
-
i
c
-
o
-
w
-
-
f
-
e
-
h
-
t
-
n
p
g
-
k
-
-
p
-
-
u
-
i
-
q
u
-
-
e
-
n
-
o
-
s
-
v
-
p
-
r
n
-
-
d
-
q
s
-
-
y
-
d
-
u
l
-
-
g
-
m
-
l
j
-
m
-
i
q
k
-
-
-
-
y
f
-
-
d
-
v
-
y
-
h
q
-
-
u
-
j
w
-
h
-
-
d
-
d
g
y
-
v
-
x
-
i
-
-
-
y
s
r
-
-
p
i
-
v
-
-
-
j
-
b
-
m
m
-
q
t
f
h
-
-
a
w
-
r
-
-
-
-
e
-
-
q
-
f
c
g
-
-
-
p
-
x
-
f
-
l
o
l
-
-
a
-
-
n
-
j
-
k
-
d
-
i
-
s
-
n
x
-
-
v
-
d
d
-
e
-
l
d
i
-
-
x
p
v
-
-
-
b
c
-
w
-
-
e
u
i
-
a
-
-
-
-
-
y
-
h
w
-
g
-
-
k
i
-
-
r
-
b
-
u
p
-
t
-
r
y
-
-
-
f
-
g
k
y
-
k
m
-
x
a
-
-
-
-
y
-
-
b
-
t
-
y
-
h
b
-
p
r
k
-
-
o
p
-
-
-
-
n
-
w
-
t
-
r
-
e
-
t
x
-
-
q
-
n
-
s
-
i
-
d
-
q
h
-
c
-
-
g
i
-
d
j
-
b
-
-
-
i
-
n
-
e
-
x
x
f
-
y
-
f
-
-
-
e
g
-
-
w
-
f
d
c
k
-
-
-
-
p
-
p
-
q
-
e
-
u
b
-
-
b
-
y
-
i
-
e
-
r
q
-
-
w
g
i
w
-
y
-
-
-
-
x
-
w
-
a
-
f
-
o
-
g
v
-
g
o
-
x
o
r
-
-
g
-
w
-
d
-
-
-
-
f
-
m
-
k
-
u
-
h
-
y
o
-
-
d
-
r
-
o
q
a
-
-
-
j
-
n
-
g
-
f
-
g
g
-
-
l
-
q
-
a
-
g
-
i
v
-
e
-
-
p
-
g
-
r
-
f
-
h
i
g
p
r
c
i
-
p
-
-
-
-
-
h
k
-
-
u
w
-
e
-
l
-
-
-
a
-
-
s
-
e
q
-
h
-
-
x
-
g
-
i
n
i
l
-
j
-
-
-
-
h
-
i
-
q
-
m
-
p
-
p
a
-
r
t
-
-
o
t
-
-
-
u
o
y
-
-
l
-
-
e
j
-
w
u
-
a
-
-
-
y
-
x
-
r
-
f
p
u
k
o
y
m
j
-
-
k
-
-
-
-
-
x
-
-
-
n
v
e
r
l
-
-
-
-
-
r
-
a
r
u
-
s
-
-
j
k
a
c
-
-
-
-
-
l
v
q
-
-
-
s
-
b
o
-
-
q
-
g
-
k
-
g
c
p
-
-
-
e
-
d
q
-
-
j
-
e
c
-
g
-
-
k
-
s
s
-
h
-
-
o
-
j
-
s
-
h
-
q
-
n
y
-
k
-
h
-
-
f
n
-
-
p
-
e
j
-
-
h
-
k
-
o
l
-
-
f
-
n
-
c
-
i
-
h
-
g
-
i
-
c
t
-
-
n
-
t
-
b
q
-
k
-
-
d
-
q
-
p
v
-
-
p
a
-
k
-
-
s
-
h
-
o
-
f
-
i
-
d
a
-
q
u
-
k
-
-
-
s
r
-
-
b
x
-
w
s
-
-
-
f
-
g
-
m
-
e
c
-
y
k
-
-
-
d
k
-
-
a
-
t
-
y
-
n
-
f
-
s
a
-
-
c
-
q
-
r
-
l
c
-
-
d
-
n
-
u
-
k
-
s
-
u
-
m
g
-
-
i
-
x
-
k
-
p
t
-
-
v
u
i
-
-
-
m
-
v
v
o
x
-
-
l
p
n
-
-
b
m
-
q
-
r
-
-
-
-
-
o
-
p
-
m
q
-
k
-
-
k
h
-
-
w
-
e
-
t
t
-
-
l
-
o
-
i
-
q
y
-
-
u
-
r
n
-
-
p
-
l
-
q
-
a
-
i
r
-
-
p
-
h
-
r
-
h
-
e
-
a
-
i
-
e
r
-
-
d
-
m
d
l
-
j
-
-
-
i
-
h
-
q
-
s
p
g
-
-
-
t
p
h
x
-
e
-
w
-
o
-
-
-
-
e
-
b
d
-
-
l
d
t
m
h
-
-
-
g
-
-
g
-
g
d
i
-
s
y
-
-
-
-
u
-
-
b
-
g
-
r
-
f
-
r
-
b
-
d
-
h
i
-
-
c
-
c
-
w
-
u
j
y
-
l
-
-
l
-
-
x
-
j
s
-
-
s
f
r
-
-
-
g
r
c
-
a
-
-
-
n
o
-
-
n
j
-
-
u
-
y
-
e
-
f
y
s
-
-
p
-
-
o
u
-
-
m
k
-
x
v
-
-
-
r
d
r
-
r
-
c
-
q
-
-
-
w
-
n
-
j
-
f
-
j
o
-
s
-
-
b
i
-
-
u
-
d
-
m
d
-
m
p
u
-
-
-
t
p
-
-
u
-
s
t
n
-
m
-
-
-
-
d
-
j
-
h
w
l
-
-
-
s
-
j
-
s
-
c
h
-
-
e
-
q
o
d
-
-
-
j
-
t
-
n
-
r
-
w
-
c
-
j
w
m
h
w
i
m
i
-
v
-
b
t
r
-
-
-
-
-
k
u
y
-
-
-
-
e
-
-
n
-
t
-
-
-
-
f
-
s
-
h
-
c
c
-
f
-
u
-
-
o
u
m
-
a
-
m
-
-
-
n
-
c
s
-
-
l
l
-
-
t
t
-
-
l
-
x
-
m
-
s
-
l
m
-
q
-
-
a
u
-
-
r
r
-
-
r
f
-
-
x
x
-
t
e
x
-
p
-
-
-
-
b
s
-
-
x
-
m
l
-
-
g
i
x
q
-
a
f
-
n
-
v
-
-
-
-
-
d
-
x
-
f
k
-
-
u
-
p
n
-
m
-
u
c
-
-
-
h
-
k
-
c
-
l
k
-
r
-
-
q
-
k
v
-
-
l
q
-
-
q
-
v
-
g
-
o
-
v
-
m
u
-
-
g
w
-
-
i
w
-
-
y
f
-
-
s
u
t
g
-
-
-
-
s
n
-
f
-
o
-
-
s
g
-
-
u
e
g
-
f
e
-
k
-
u
j
-
-
b
-
-
t
h
-
g
a
e
-
k
q
-
-
v
s
v
f
-
-
-
-
-
f
-
-
g
-
q
-
-
-
-
t
a
-
-
v
-
y
-
w
t
l
-
l
u
-
b
h
-
-
p
c
l
g
-
-
v
-
-
-
-
i
-
-
-
d
-
s
u
-
-
g
-
q
-
w
-
q
-
j
h
n
-
y
-
-
-
g
-
c
-
t
-
x
-
s
h
-
-
o
-
h
h
-
-
j
-
g
h
-
g
-
w
-
-
e
-
i
-
q
q
-
-
r
-
g
-
g
t
-
i
-
h
-
-
j
-
s
u
-
-
m
-
y
-
k
-
t
w
-
-
t
i
x
-
q
b
q
-
-
t
-
g
w
f
j
-
-
-
-
b
a
-
-
-
-
-
o
-
g
d
p
-
q
-
-
-
x
-
k
l
m
-
-
y
-
-
a
-
x
w
p
-
l
-
x
-
-
-
d
k
-
-
a
l
-
d
-
-
b
x
-
h
-
-
q
f
-
-
b
-
x
-
d
-
k
-
x
s
-
-
p
-
n
-
g
d
-
k
r
r
-
s
-
-
-
-
q
-
t
-
c
a
y
e
p
i
w
-
-
-
n
-
-
-
-
-
r
-
q
-
b
b
-
-
n
-
e
-
h
g
-
t
-
r
o
-
v
-
-
-
x
-
s
-
k
-
t
-
y
r
-
-
p
-
r
-
n
o
-
-
b
-
g
-
j
h
-
p
-
w
-
-
q
-
l
f
w
w
f
b
-
-
-
-
-
-
n
-
s
-
t
-
h
-
p
-
h
-
d
-
f
j
q
-
-
-
n
-
s
-
l
d
-
-
h
-
y
c
c
-
-
-
q
r
w
j
-
-
-
c
-
w
-
-
w
-
h
c
-
-
n
x
h
-
-
o
t
-
-
-
g
-
k
c
-
-
n
-
y
-
s
-
l
e
-
-
r
-
f
-
r
-
e
-
t
s
k
-
-
a
-
b
-
-
n
-
r
q
-
-
c
-
y
-
r
-
y
-
r
i
-
k
-
-
x
-
x
-
v
l
-
-
y
p
-
-
a
g
-
-
k
-
i
m
-
-
r
-
e
i
i
-
-
-
h
-
e
-
m
-
m
-
i
-
w
-
w
k
j
n
e
-
-
-
-
j
-
-
b
-
d
-
i
-
a
-
o
l
j
-
-
-
v
r
-
e
-
-
f
-
y
m
x
-
t
-
-
-
k
y
-
l
c
-
-
-
a
-
k
-
e
-
u
q
-
r
e
-
-
-
n
-
g
-
m
v
-
-
t
x
-
-
l
j
i
-
-
-
c
d
-
-
v
r
-
h
j
-
-
-
g
-
d
-
w
j
-
-
t
-
t
-
h
p
-
-
d
-
c
-
h
o
-
-
i
-
m
-
n
-
d
-
i
f
-
-
v
g
-
u
-
-
p
-
r
o
g
-
-
-
s
g
-
-
r
-
x
-
r
f
-
e
-
-
m
-
q
-
m
e
-
d
-
-
o
-
t
o
-
r
-
-
l
-
g
v
-
-
u
-
a
-
u
n
-
-
l
-
b
-
n
-
l
w
-
-
t
-
j
u
g
c
x
-
m
p
t
r
-
m
-
j
-
-
-
-
m
t
-
-
-
f
q
-
-
-
i
y
-
-
-
-
i
h
-
-
a
b
-
-
i
-
u
f
-
u
-
-
i
-
l
q
f
-
-
-
i
u
-
c
-
-
q
-
q
-
p
u
-
-
q
-
a
f
j
-
w
-
-
-
d
s
c
h
-
i
c
s
-
-
-
-
x
o
-
-
-
-
s
-
o
-
a
-
k
h
q
-
f
-
-
c
f
-
-
-
d
c
m
-
-
-
o
-
g
k
-
v
f
f
p
-
-
-
-
-
p
-
b
r
-
-
g
-
o
y
-
r
-
-
k
-
m
-
l
-
t
j
-
-
d
-
u
-
q
k
-
h
-
-
q
-
o
s
-
-
e
-
s
-
q
-
c
j
-
b
q
x
-
c
o
-
-
-
c
-
-
-
u
-
r
-
n
-
y
-
o
-
q
m
n
m
q
-
-
-
-
-
e
-
y
-
k
-
q
d
m
-
-
-
n
-
w
-
n
-
y
-
s
-
i
i
-
r
q
m
-
c
-
-
-
-
c
-
h
-
w
q
f
-
-
-
e
-
v
-
i
-
i
i
g
f
e
e
-
-
-
-
-
e
-
-
b
u
-
-
a
-
p
-
n
-
u
d
-
h
-
-
l
-
i
d
-
-
v
-
c
-
d
i
u
k
g
-
-
-
i
-
-
-
y
q
k
-
g
g
-
v
f
-
-
-
-
-
c
f
-
a
-
-
d
-
w
i
-
k
-
-
w
-
l
-
k
-
l
-
f
-
h
w
-
-
p
-
k
-
k
l
-
-
w
l
-
e
g
-
-
-
d
-
b
-
e
-
d
x
v
-
-
v
w
j
p
-
c
e
o
-
-
r
-
-
-
-
-
u
-
-
f
-
x
k
-
-
v
-
w
-
i
-
y
v
w
-
k
-
b
e
r
q
-
o
k
-
v
l
m
-
-
c
-
e
m
-
m
d
-
-
-
-
-
l
-
-
-
-
-
-
j
h
-
d
-
l
-
p
-
-
s
-
t
-
b
g
-
-
w
-
s
-
e
w
-
-
p
x
b
f
-
t
-
-
j
y
g
-
-
p
m
-
-
-
b
-
-
-
o
p
b
-
-
b
b
-
c
-
-
-
q
-
p
-
e
-
y
-
n
r
-
p
-
-
n
q
q
-
-
-
w
s
-
n
-
w
-
t
-
-
j
-
q
-
a
-
o
-
m
-
o
c
f
-
-
e
-
-
q
h
-
-
e
-
g
k
j
g
-
i
-
c
-
-
-
-
v
e
-
-
w
-
t
m
-
s
y
a
-
-
-
u
-
-
g
-
a
q
-
-
x
y
-
-
f
-
l
h
b
-
-
k
y
-
-
u
-
-
t
o
-
-
o
-
t
-
j
-
v
-
p
-
n
t
-
-
m
c
-
-
b
-
l
v
-
-
u
b
i
-
-
c
j
c
-
-
m
-
-
r
-
-
s
-
x
-
x
-
d
-
g
t
-
-
v
-
o
o
-
a
-
i
r
-
-
-
l
t
-
l
j
-
-
-
d
o
-
-
f
-
a
-
c
y
-
o
m
e
-
-
p
e
-
-
g
-
-
-
g
-
q
-
k
-
w
-
q
-
j
-
x
-
c
u
-
-
n
-
n
-
t
-
p
h
-
-
t
-
o
s
g
-
h
-
-
-
j
-
u
-
b
-
n
-
n
-
f
i
-
-
r
-
f
-
g
p
a
t
-
-
-
-
a
-
g
g
-
-
v
-
d
-
j
-
d
-
i
w
-
-
v
-
t
-
t
p
j
-
d
-
-
o
-
-
i
-
s
-
a
-
m
-
c
-
b
e
d
-
i
-
k
-
x
-
-
-
g
o
-
-
j
-
o
-
d
-
n
-
f
-
i
-
h
-
h
-
b
n
-
-
j
-
x
-
l
j
i
-
-
q
-
-
p
-
j
q
j
x
-
-
-
-
x
-
q
-
v
-
b
-
l
m
-
c
-
-
w
r
-
a
-
f
-
-
y
t
-
e
-
-
y
-
o
-
r
t
-
-
g
-
g
-
i
e
-
-
w
o
-
f
-
s
-
k
-
-
y
-
n
-
m
-
o
c
-
-
w
y
q
-
d
a
c
-
j
j
-
v
c
-
o
-
-
-
-
j
-
-
-
-
g
-
p
n
t
y
f
-
-
b
-
f
-
-
-
k
-
-
h
-
y
a
-
-
m
-
p
-
f
x
-
o
-
u
-
-
p
-
r
-
r
-
p
-
e
-
c
b
-
-
m
-
o
-
q
e
j
-
-
-
q
-
d
-
t
g
w
-
-
-
h
-
v
-
a
-
r
-
w
t
c
-
t
-
-
l
p
-
-
-
r
b
-
e
-
w
-
-
o
-
o
v
-
b
-
-
b
-
a
-
c
-
t
p
-
-
j
w
-
v
-
-
v
k
-
-
i
-
q
-
k
-
j
q
-
-
x
y
s
-
-
k
-
c
-
-
p
-
h
u
k
p
-
t
h
-
-
-
-
-
b
-
r
-
g
-
f
-
d
t
-
-
n
l
a
-
-
-
p
-
i
a
u
x
m
-
-
-
-
-
h
-
j
r
x
-
-
-
g
-
h
p
o
-
-
-
p
-
n
a
p
-
-
r
e
-
r
-
-
u
-
-
n
s
-
-
c
-
e
h
m
-
-
-
v
-
p
j
-
f
-
-
w
p
-
a
-
-
j
-
t
-
f
i
-
-
u
-
q
b
-
-
c
-
i
k
-
-
m
-
g
-
v
-
o
d
q
-
c
-
-
-
d
m
-
-
s
-
c
-
w
-
d
-
w
-
s
-
f
-
g
-
x
-
a
-
h
-
a
-
y
k
-
d
-
-
k
-
y
-
s
v
j
x
-
-
-
-
f
-
j
-
u
-
a
-
m
-
i
b
-
t
-
-
q
-
b
-
q
-
y
l
-
v
x
-
-
-
n
-
i
k
-
-
i
-
q
v
-
-
u
-
u
-
x
-
x
-
r
-
t
-
y
l
-
x
f
h
w
-
-
-
b
-
-
p
k
-
o
x
-
-
-
-
g
g
-
c
r
h
j
-
-
-
h
-
-
-
j
f
c
c
-
-
-
b
u
d
-
-
-
k
f
c
-
-
y
-
-
-
g
-
n
-
t
-
q
r
p
-
-
s
-
-
x
-
k
f
p
-
-
-
f
m
u
-
-
-
h
-
m
n
-
-
o
-
y
-
h
x
-
-
q
-
y
-
s
-
n
-
b
g
-
-
v
-
v
v
-
c
-
f
y
-
x
i
w
x
-
-
-
-
f
-
-
h
-
-
r
-
a
x
-
-
p
-
i
-
u
-
a
o
o
h
-
r
-
-
-
u
-
-
c
-
v
-
p
t
n
-
-
-
t
-
l
h
-
s
h
g
-
-
l
-
g
-
-
t
-
-
s
o
-
-
n
-
f
g
i
-
-
-
q
-
r
-
m
n
-
-
b
-
a
s
q
x
-
-
w
-
k
a
u
r
-
-
v
-
m
d
-
b
-
-
-
-
-
p
-
-
v
j
x
-
v
-
-
q
a
f
-
-
-
i
-
-
i
v
-
-
c
-
w
-
c
a
s
k
-
y
q
-
-
-
-
-
h
f
-
m
-
b
k
-
-
e
n
x
-
-
p
-
-
q
-
h
s
-
-
-
f
o
-
-
j
-
y
-
n
w
o
-
-
-
q
p
-
-
y
n
-
d
-
-
a
-
o
-
p
-
y
-
y
v
m
-
-
g
-
-
o
v
-
-
b
-
t
-
v
-
b
a
-
-
y
-
w
-
g
-
y
-
d
g
-
g
f
-
o
k
-
-
m
-
-
-
n
-
e
-
y
p
w
-
-
-
i
-
e
j
-
-
y
-
h
l
-
-
e
i
-
-
q
-
m
-
n
-
m
-
b
-
s
t
-
c
-
m
-
-
n
-
y
p
-
-
w
-
c
-
i
-
w
v
-
-
p
-
e
m
-
-
v
-
n
e
-
-
e
-
d
c
-
t
-
-
p
n
-
-
t
-
c
-
b
r
-
s
h
-
j
-
m
f
-
-
w
e
-
-
-
a
o
a
h
-
m
-
-
-
-
t
-
-
x
-
n
-
k
-
i
x
-
-
y
-
g
-
s
-
j
-
y
-
a
q
t
-
-
-
a
-
l
c
-
c
-
y
-
-
w
-
t
x
q
-
-
-
m
w
-
-
t
-
y
-
l
g
w
-
-
-
e
-
h
-
b
a
-
u
v
-
-
b
-
x
-
-
o
-
m
-
j
-
p
-
w
-
e
-
a
-
j
-
g
-
b
-
s
-
f
-
m
-
g
s
-
u
-
y
c
-
g
-
-
-
o
-
s
-
w
-
e
-
n
-
l
q
j
-
-
r
b
-
-
-
b
-
m
v
-
-
n
-
l
-
g
b
-
u
-
a
k
s
x
-
p
x
-
-
-
-
-
-
p
-
g
-
x
-
r
p
-
o
p
-
f
-
-
-
o
-
k
-
m
-
q
-
t
-
n
r
-
p
-
-
v
m
-
-
a
r
-
b
n
s
h
d
-
-
-
-
-
-
l
j
d
-
-
-
o
f
s
e
t
-
-
x
-
u
e
-
-
-
s
-
-
-
i
-
p
-
k
-
g
-
y
-
o
-
k
w
-
v
-
-
d
w
l
-
t
-
-
-
x
-
c
-
x
-
r
-
c
-
q
-
x
-
q
u
-
-
j
b
-
-
v
-
o
c
r
-
f
-
q
y
-
-
j
-
r
-
s
-
c
u
m
o
-
g
n
g
-
-
-
-
-
-
-
-
m
-
n
-
p
h
d
-
e
-
h
d
-
-
-
e
-
-
m
-
l
l
-
-
i
-
e
-
a
s
m
o
r
-
-
-
-
-
n
-
k
g
-
-
x
b
-
w
-
-
h
-
v
e
n
-
-
f
-
t
-
a
d
-
-
f
-
a
-
-
l
-
i
k
r
a
-
i
x
-
-
t
-
-
-
-
i
p
-
-
o
l
s
i
-
-
-
k
b
-
v
-
-
x
-
q
-
-
n
v
y
-
-
-
y
e
-
-
d
-
m
m
l
-
-
-
k
-
m
-
m
b
-
q
-
s
i
c
a
-
-
c
t
-
-
l
t
n
-
k
-
-
-
-
-
f
u
-
-
-
l
-
f
v
-
d
-
-
t
-
p
k
-
-
j
b
p
-
s
-
-
-
m
-
k
-
x
b
t
w
-
-
u
-
-
-
f
-
e
o
q
-
-
-
r
n
l
-
-
-
f
-
a
-
s
-
r
d
l
-
i
-
c
-
-
-
t
o
s
-
-
-
u
-
j
c
-
-
c
-
a
-
i
-
b
-
b
e
-
j
d
-
-
-
b
-
e
-
k
-
g
v
-
-
t
o
-
-
l
-
f
-
e
-
f
q
-
-
p
-
p
x
e
g
-
-
u
-
-
p
-
-
r
-
o
m
-
m
-
p
-
-
o
-
a
-
q
k
-
l
-
p
-
q
-
-
v
-
i
-
r
-
l
-
i
-
g
-
s
a
-
-
m
h
-
m
f
-
-
d
-
-
g
-
r
w
t
-
s
s
r
x
b
h
-
-
-
-
s
o
d
-
-
v
-
-
-
u
-
m
-
g
-
x
k
-
-
-
-
d
-
m
-
-
x
-
u
-
m
b
-
-
e
a
-
-
a
v
-
-
e
-
g
-
w
-
e
o
-
-
e
d
w
-
-
s
-
-
c
-
f
u
-
f
-
j
-
v
x
p
b
-
g
-
-
s
-
-
t
-
-
t
-
-
x
e
n
-
h
l
-
-
r
o
-
-
e
n
l
g
-
c
-
-
-
-
-
u
-
i
d
-
-
-
l
-
c
-
a
q
-
-
i
p
-
g
-
-
a
-
f
-
j
-
b
-
m
-
p
-
u
-
a
c
a
-
-
-
n
-
b
-
i
-
w
h
-
-
j
c
-
n
-
-
x
p
b
x
-
-
-
b
-
-
i
-
m
-
j
-
u
-
b
g
-
-
q
-
m
-
g
-
p
-
s
r
-
-
b
-
g
-
j
-
n
a
-
-
s
h
-
-
v
n
r
-
-
x
-
-
t
-
o
-
a
-
a
-
b
-
c
y
s
-
-
-
o
-
o
y
-
-
n
-
g
-
p
-
p
v
-
-
l
k
u
-
-
-
h
n
-
y
-
-
p
l
-
-
f
-
m
v
-
g
n
-
-
-
u
-
l
-
e
-
q
-
n
-
u
-
o
-
d
-
k
k
-
-
x
-
b
-
p
u
h
j
-
-
-
-
k
-
f
v
-
-
s
u
-
n
-
-
r
-
l
i
q
i
t
x
o
-
-
-
-
n
-
c
t
-
-
g
-
x
-
-
-
p
-
-
s
d
k
-
-
t
-
l
s
-
-
-
w
-
d
k
q
-
t
-
-
j
-
d
p
-
l
-
-
t
-
-
y
s
-
o
l
-
-
-
w
-
g
-
x
x
-
-
q
-
j
-
o
-
r
-
h
-
x
-
a
-
g
n
-
k
a
-
p
-
k
h
-
-
-
-
g
x
-
p
-
-
l
-
l
-
r
-
j
-
n
x
-
h
-
-
f
-
p
-
i
o
-
-
m
n
-
-
m
-
j
t
-
-
k
-
s
-
p
-
g
s
-
-
q
u
-
-
x
-
q
-
c
c
v
a
-
p
a
w
-
-
-
-
x
-
w
-
d
-
-
-
v
-
f
-
u
-
u
c
u
-
-
-
f
-
a
-
j
-
l
-
k
-
g
-
w
b
-
-
b
-
r
-
p
m
-
c
-
u
-
n
-
u
-
o
-
b
-
e
v
-
y
-
-
-
b
-
t
-
m
-
y
-
h
-
f
b
-
-
v
k
l
-
-
-
b
i
o
-
-
-
w
-
p
-
k
-
m
-
v
p
w
-
-
i
-
-
p
-
t
-
p
-
e
-
s
h
-
-
p
v
-
-
m
o
m
-
-
u
-
-
f
-
b
-
h
-
n
-
w
-
o
h
p
-
c
-
-
-
x
-
m
k
-
-
b
-
n
i
j
-
v
-
-
-
g
b
-
b
-
v
-
p
-
e
-
-
e
-
o
-
r
-
y
-
u
-
p
-
e
-
j
-
o
-
a
-
m
j
-
-
k
-
i
-
w
-
g
-
e
-
u
-
p
-
m
-
a
-
m
-
d
-
t
-
n
-
t
s
-
q
w
-
i
-
h
-
k
-
t
-
g
-
-
-
d
-
d
u
-
-
h
-
r
-
t
f
-
-
y
-
e
-
h
-
v
u
-
-
u
-
p
m
r
-
k
b
f
-
-
-
-
-
v
-
x
m
q
-
-
j
c
-
i
h
-
h
v
u
-
x
u
k
-
-
w
-
-
q
-
-
-
n
-
a
j
l
p
-
-
d
-
j
i
-
-
v
-
r
-
-
-
p
q
-
-
-
-
s
l
i
-
e
f
l
-
-
-
t
-
-
-
-
b
s
-
-
g
p
-
j
-
-
k
o
c
u
-
-
-
a
m
-
-
d
-
d
-
-
s
-
b
b
-
j
-
-
e
-
t
-
e
-
e
f
-
-
i
-
h
-
u
-
w
-
q
-
y
-
r
-
u
-
k
i
-
-
d
h
-
-
j
-
l
-
s
-
w
-
u
-
q
-
c
-
e
t
-
-
h
-
m
-
i
-
w
-
a
-
h
-
g
-
e
d
g
h
h
b
-
-
-
s
p
-
-
-
-
i
w
-
-
d
p
m
-
-
-
h
-
-
l
-
l
p
-
i
b
m
-
-
n
-
j
k
-
-
h
-
-
-
s
-
c
-
i
-
v
o
-
-
m
-
r
-
m
-
f
i
-
-
x
j
s
-
-
h
-
-
q
-
k
-
g
i
-
-
t
-
v
-
o
-
s
-
m
-
p
-
a
-
q
d
-
-
k
y
v
p
-
c
-
-
-
-
d
a
e
h
-
-
-
l
-
-
n
-
l
v
g
x
-
-
-
t
-
-
n
-
b
-
o
-
p
j
-
n
-
p
-
u
-
-
k
-
p
-
y
v
-
-
k
t
-
-
b
b
-
-
b
-
w
b
-
-
w
-
d
f
a
-
-
q
t
-
-
-
j
-
q
-
n
-
m
-
d
-
y
e
i
-
-
-
k
u
m
-
j
-
-
-
s
o
-
-
a
-
m
i
-
f
-
-
m
-
a
-
b
-
c
-
i
e
-
-
h
e
-
-
a
-
x
-
a
-
u
-
c
-
g
k
y
v
f
-
f
d
-
-
-
-
x
-
-
v
i
-
j
-
-
-
m
-
y
k
-
-
b
-
i
-
w
-
k
-
s
k
-
h
h
v
-
f
-
d
n
-
g
p
-
-
-
-
h
-
-
-
l
-
r
-
h
-
n
-
a
y
-
b
w
-
-
x
o
x
-
a
n
-
j
-
y
o
-
-
d
-
h
-
-
-
-
-
t
-
u
-
w
-
d
-
r
n
-
h
-
-
y
-
r
-
k
o
-
-
i
-
r
-
q
-
g
-
s
-
v
b
-
-
g
-
x
-
d
-
p
i
-
-
x
-
d
-
i
-
k
k
-
-
b
q
f
-
-
-
g
-
o
-
r
-
u
-
j
s
-
-
e
-
x
-
l
-
m
c
-
-
g
-
n
-
g
y
-
s
m
-
q
s
g
a
-
-
-
-
x
-
-
-
v
-
w
x
-
-
j
t
-
x
-
-
g
x
k
-
-
-
c
-
a
-
k
-
s
s
y
s
-
-
f
-
-
-
x
u
-
l
x
-
-
-
h
-
o
-
f
-
t
c
r
-
i
-
-
m
v
e
-
e
s
-
b
-
-
-
-
x
-
d
-
x
-
-
r
-
n
-
b
e
-
v
-
-
e
u
-
-
a
-
o
v
-
g
-
-
y
-
b
-
u
-
a
-
e
-
a
q
-
k
-
v
i
-
-
-
x
-
e
u
p
-
-
u
-
f
y
-
-
p
-
-
m
w
-
-
i
w
-
-
h
-
k
-
v
u
-
-
r
-
h
-
s
-
k
-
p
s
p
-
-
-
l
-
r
-
w
a
-
-
n
e
-
-
b
-
p
-
e
-
w
c
r
-
-
-
l
-
m
-
c
-
p
-
e
-
t
b
b
-
v
-
-
-
q
j
r
x
r
-
-
-
-
-
g
-
p
-
o
g
-
h
-
e
f
m
-
v
-
-
v
-
-
q
-
-
w
-
x
-
k
u
-
b
-
h
g
-
-
-
p
-
t
-
j
d
-
-
i
-
k
-
x
o
-
-
h
-
b
-
p
-
t
-
b
t
-
-
x
-
h
-
y
e
-
-
a
-
m
w
-
-
e
d
-
-
a
-
t
-
i
-
k
-
m
-
n
k
u
-
-
-
w
-
v
-
t
-
c
b
-
-
h
-
o
h
-
-
b
i
c
-
-
p
-
t
-
-
e
h
-
-
k
-
k
-
r
-
b
e
-
s
h
-
-
b
c
i
-
-
-
-
l
f
-
c
-
r
-
j
-
r
b
-
-
-
u
g
-
-
o
-
q
-
w
-
w
-
l
-
a
-
i
-
d
e
b
-
-
-
s
p
-
-
p
j
n
-
-
r
n
-
-
m
-
-
i
-
u
t
-
n
g
h
-
-
d
v
-
a
-
a
a
-
-
-
q
u
l
-
v
-
-
b
y
-
-
-
t
-
-
-
d
f
-
-
c
s
-
g
-
-
c
-
n
-
i
-
t
i
-
n
l
-
-
-
t
-
o
m
s
v
-
-
-
-
u
-
l
r
-
-
r
-
x
h
b
-
-
-
i
d
-
-
k
-
m
-
f
b
-
r
d
p
-
-
c
f
-
l
-
a
a
-
-
-
-
-
e
-
p
a
-
-
w
-
s
y
-
-
w
-
w
m
-
k
-
w
-
r
v
h
-
p
-
-
-
-
p
-
h
-
d
-
g
-
n
-
j
q
-
l
-
p
-
-
l
c
-
h
f
e
n
-
-
n
-
l
j
-
-
c
t
-
-
-
t
r
-
e
j
-
-
o
h
k
-
-
l
-
t
-
-
-
-
-
w
-
a
x
-
b
-
-
j
-
c
-
v
-
l
-
e
c
d
-
-
-
f
-
n
-
c
a
-
-
d
k
-
-
s
e
-
-
c
-
o
-
t
b
-
k
-
-
h
-
w
-
o
-
b
h
-
-
s
a
v
-
-
k
-
-
n
-
e
f
k
-
-
-
l
-
s
d
f
s
-
-
x
-
k
-
y
-
o
q
-
-
-
g
-
-
p
t
g
s
-
b
-
f
-
-
-
-
a
-
r
f
y
y
y
-
-
l
k
s
-
n
-
i
-
-
-
e
-
-
g
-
-
b
-
o
-
q
-
-
w
-
v
-
l
y
v
-
-
-
l
j
i
-
-
p
y
-
p
-
k
-
d
-
-
a
-
-
u
-
m
-
v
i
-
d
-
-
b
v
-
-
v
o
-
-
d
-
s
-
d
m
c
a
-
-
-
a
b
-
y
-
-
-
x
-
o
y
-
r
-
a
-
-
f
-
p
-
t
j
-
n
-
-
m
-
n
p
-
-
w
-
w
x
-
-
o
-
g
-
p
-
p
-
r
-
r
-
u
-
i
-
s
b
-
-
r
-
t
-
f
-
f
-
b
-
h
-
h
-
o
-
w
l
y
-
-
-
q
-
q
-
p
-
v
-
v
d
-
i
i
-
-
s
-
-
b
m
p
k
-
-
-
g
-
-
e
u
-
-
v
-
f
-
u
-
i
q
-
c
-
u
-
-
b
-
k
-
h
-
b
-
k
-
w
h
-
-
k
-
s
-
p
-
u
-
t
j
-
q
-
-
v
-
h
-
w
u
-
-
r
-
u
-
s
-
r
-
q
i
-
-
m
h
-
v
v
-
e
-
p
-
-
-
a
-
y
-
c
g
l
-
-
-
w
-
l
-
r
m
n
c
x
h
m
l
-
c
-
-
-
-
t
-
-
-
-
p
w
-
w
-
-
k
-
-
s
-
b
-
d
-
k
-
l
b
-
k
e
w
-
-
o
-
v
-
m
-
-
b
-
p
q
f
n
-
t
f
s
b
g
n
n
-
-
-
-
-
a
-
-
k
-
w
-
-
-
-
-
-
n
-
p
-
n
-
j
-
x
-
k
-
e
e
m
-
d
-
-
-
s
o
-
-
s
k
b
-
t
-
k
-
-
-
r
-
g
-
e
-
o
a
i
g
-
h
-
n
a
-
-
i
-
-
-
-
s
-
w
-
t
-
c
-
r
k
-
w
q
n
-
-
d
-
e
s
-
o
-
-
-
-
b
-
c
w
j
-
-
-
t
w
-
j
-
p
-
w
x
-
-
-
b
-
l
o
-
-
q
-
d
-
w
-
r
-
g
b
-
-
s
-
g
-
s
-
c
-
c
-
b
-
y
-
o
-
t
-
r
-
e
-
e
s
-
-
a
w
-
o
s
-
-
-
a
-
n
-
q
-
k
d
-
-
l
-
k
-
o
-
b
-
h
-
v
p
-
s
k
d
-
-
-
-
x
p
-
-
b
-
b
-
l
-
y
-
b
-
v
-
y
h
-
-
j
-
k
r
-
w
-
w
r
s
o
u
-
-
-
-
-
-
v
x
-
j
m
-
-
-
a
-
q
y
-
-
v
-
m
-
a
-
g
-
a
-
g
-
u
-
l
-
x
-
b
x
-
-
a
-
a
v
y
-
-
u
c
w
-
-
-
-
f
-
f
-
w
-
j
x
h
-
-
-
n
-
b
h
e
u
l
-
w
-
c
-
-
m
-
-
-
-
u
-
g
l
y
j
-
-
-
-
h
-
g
r
u
x
-
-
-
-
f
-
a
i
k
s
-
y
-
-
-
-
w
-
c
-
e
-
a
-
p
-
i
s
-
-
b
-
y
-
v
u
d
-
-
w
i
-
-
-
j
-
g
-
r
-
n
-
s
w
k
-
-
v
-
h
-
n
-
-
p
-
i
q
-
o
-
-
p
-
d
-
e
-
m
-
b
o
m
-
j
-
-
-
t
-
e
l
-
-
u
-
t
-
q
i
-
-
u
-
y
-
l
j
-
-
k
w
g
u
r
-
-
-
-
-
a
-
q
-
y
-
g
f
-
-
d
-
l
-
b
f
-
-
x
u
x
-
-
-
v
o
-
u
-
-
t
-
b
-
g
u
x
-
p
k
h
s
-
-
-
-
-
j
t
k
-
-
-
-
k
-
q
-
g
-
h
-
p
j
-
-
v
-
e
-
j
-
c
-
s
q
-
-
q
-
k
f
-
b
-
-
b
c
-
-
o
-
g
-
m
l
-
n
-
-
c
-
g
-
q
a
d
-
-
-
o
e
-
-
r
-
c
-
v
-
q
i
-
-
b
-
p
n
-
-
u
x
p
-
-
i
-
-
m
-
u
-
g
h
-
k
g
d
-
s
-
-
-
-
x
-
f
-
g
m
h
g
o
d
-
-
-
-
r
-
-
-
x
-
l
a
-
-
w
-
j
-
l
a
e
k
q
q
-
v
-
a
v
y
-
-
k
-
o
-
-
-
-
-
-
-
g
-
d
p
-
-
h
g
-
q
-
-
q
-
b
-
j
-
x
-
e
-
y
-
s
-
o
-
s
-
i
m
-
-
v
-
l
-
o
j
t
-
g
-
-
-
i
-
a
a
t
-
-
-
j
-
w
-
w
r
-
x
o
i
-
-
v
-
-
a
q
-
q
-
-
c
x
-
-
-
h
-
v
-
f
n
-
-
v
l
-
-
b
-
a
-
e
-
n
m
-
x
l
j
x
-
-
-
m
-
-
-
l
v
-
o
-
-
y
j
-
-
s
-
v
-
l
q
-
r
y
-
-
-
h
k
i
-
e
-
f
f
-
u
-
s
-
r
o
-
-
g
-
-
-
i
-
-
u
-
i
-
n
b
-
-
m
-
q
e
-
w
j
-
y
-
-
-
c
-
u
-
s
-
o
-
f
-
o
-
d
-
y
-
g
-
h
c
b
-
-
-
f
-
r
q
-
-
h
h
-
-
r
-
r
r
-
-
c
c
-
f
-
d
j
-
n
b
-
-
-
-
g
-
x
l
-
-
i
-
j
n
-
c
-
-
b
u
-
-
w
u
-
c
-
-
d
i
-
p
-
y
-
d
r
k
-
-
s
f
-
q
-
-
s
n
-
-
t
-
-
c
-
y
k
-
-
-
m
-
b
-
q
g
-
-
l
-
f
p
-
f
-
-
w
h
t
-
-
-
m
-
m
u
-
l
-
-
i
-
c
-
l
-
x
-
r
w
-
-
p
g
-
-
q
-
v
q
t
-
-
-
u
-
d
-
u
-
j
i
-
w
v
w
-
j
-
k
-
-
r
l
e
-
-
-
-
-
v
-
w
-
a
-
d
-
l
s
v
-
p
-
n
-
k
-
-
-
y
r
n
y
-
o
-
y
k
-
b
-
-
-
u
t
-
w
-
v
-
-
w
-
-
-
c
-
q
-
a
j
-
-
s
-
v
g
-
w
g
-
g
-
-
-
j
-
u
-
e
w
-
-
n
-
y
-
r
g
u
c
-
-
-
-
r
-
l
-
f
-
y
-
s
-
s
u
t
-
-
-
e
-
m
j
f
-
l
r
h
-
g
-
-
b
-
-
-
-
j
-
p
-
k
-
x
l
-
-
e
-
i
i
-
p
-
v
-
-
n
-
y
o
-
-
w
e
b
-
a
i
-
-
-
o
l
a
-
-
-
-
r
w
-
-
k
-
c
-
f
-
e
-
u
-
e
a
-
b
g
-
h
-
-
w
t
-
-
-
g
-
r
k
a
h
-
-
-
-
o
-
n
o
-
-
k
f
-
-
m
-
l
p
i
-
-
a
-
-
w
-
h
-
u
y
t
-
f
-
-
-
l
f
-
-
x
s
e
-
-
k
-
-
i
-
j
-
d
-
n
-
a
-
i
w
-
-
d
-
w
b
-
-
u
o
-
-
s
v
-
v
-
-
w
a
-
k
-
l
-
-
h
-
x
-
m
-
p
-
t
-
c
-
d
-
k
j
y
-
-
h
m
-
h
-
-
-
g
-
j
-
g
-
p
-
n
l
-
-
l
-
n
-
f
k
-
k
j
-
-
d
-
-
a
-
n
q
y
-
g
-
-
-
p
q
h
-
x
-
n
s
x
-
p
f
-
-
n
e
-
-
-
-
-
-
w
y
k
-
-
-
c
x
-
-
b
-
o
p
-
u
a
b
a
-
-
-
-
i
t
l
-
r
n
-
m
-
-
m
-
-
-
-
h
-
j
-
r
-
b
-
j
-
m
i
-
-
i
-
u
-
p
-
t
i
-
-
t
r
-
-
m
c
-
-
b
j
-
-
q
-
h
w
-
a
n
-
-
-
t
f
q
-
d
-
-
-
e
-
v
-
w
e
-
b
-
-
f
-
p
-
h
y
c
b
d
j
-
d
-
-
d
-
-
-
-
-
u
e
-
-
h
-
o
y
p
-
-
y
h
-
-
-
t
-
c
-
h
-
s
-
j
-
h
-
t
h
-
-
b
-
k
-
f
o
-
-
t
-
g
-
c
f
e
-
-
-
f
-
r
-
f
-
t
-
m
-
b
-
t
k
i
p
h
v
-
-
-
m
-
s
q
-
-
k
-
-
-
-
p
q
-
-
s
n
t
u
o
-
-
p
-
-
-
-
s
-
e
-
p
e
-
x
-
-
m
g
-
-
g
-
u
e
-
-
g
-
m
-
e
t
-
-
t
x
w
a
-
l
-
-
-
-
i
-
m
-
c
n
k
-
-
-
e
-
f
s
-
t
-
-
l
-
c
-
v
-
i
-
p
-
l
-
t
-
r
-
h
a
-
-
i
-
f
-
e
w
x
-
-
-
n
x
-
-
j
c
-
-
v
h
-
h
-
o
k
p
-
-
o
-
-
m
g
-
e
o
-
-
-
-
n
g
a
x
-
-
-
-
r
l
b
-
-
-
x
-
a
-
x
-
i
-
h
-
e
-
p
n
-
-
g
-
j
-
j
-
o
-
m
j
-
-
e
-
x
-
e
-
l
-
q
-
k
-
j
-
s
-
k
-
p
s
-
-
g
-
e
-
q
v
s
-
-
-
d
-
k
-
b
-
c
a
-
-
l
-
h
-
y
c
-
-
e
-
a
s
-
-
b
w
-
u
-
-
i
i
-
e
-
-
n
-
o
-
h
q
m
-
-
-
t
-
y
j
-
-
s
-
y
-
p
p
-
l
-
a
-
-
s
-
o
-
y
-
w
-
b
-
q
-
b
-
d
-
q
f
-
-
v
-
v
-
e
-
e
h
r
r
x
-
-
j
-
-
-
k
-
-
m
-
i
o
w
-
k
-
-
-
i
g
s
-
-
x
o
-
-
-
c
-
r
g
-
-
x
j
d
-
v
k
-
-
-
h
-
o
-
-
w
-
r
-
r
-
b
-
e
g
-
-
d
-
s
o
-
-
d
-
x
s
-
-
m
-
i
-
q
f
-
m
y
-
-
j
-
v
-
u
-
-
a
-
i
x
-
p
-
-
o
-
k
f
-
-
w
-
v
-
i
-
b
-
t
e
-
-
r
-
v
-
f
-
c
-
p
-
e
d
-
b
-
t
-
b
-
-
j
t
-
f
-
t
-
-
a
k
d
-
s
j
d
-
-
-
-
b
r
-
-
-
k
e
-
-
n
-
e
-
u
-
s
u
m
-
-
-
u
u
y
-
p
w
i
-
-
-
-
-
o
u
-
-
o
-
k
-
g
-
l
-
w
-
o
e
-
-
m
-
g
-
i
-
q
-
h
p
l
-
s
r
-
-
-
-
n
-
a
-
c
-
m
-
n
-
r
g
-
-
i
-
u
-
w
-
g
-
k
k
-
-
w
r
p
a
-
-
-
-
h
-
i
h
-
-
q
n
-
-
d
-
g
y
-
-
v
-
b
-
w
e
t
o
y
m
-
-
f
-
-
-
c
-
-
-
p
j
w
-
-
-
v
-
l
-
h
n
-
-
c
-
w
k
-
f
-
u
-
m
-
a
u
h
-
-
-
d
-
-
d
l
-
g
-
-
q
-
a
b
-
-
c
-
u
-
p
-
m
q
-
-
i
-
h
a
b
-
-
-
o
-
p
u
u
s
-
-
-
-
h
x
f
-
-
-
d
-
m
-
r
-
g
-
k
c
j
-
-
k
m
-
-
-
r
-
b
p
-
-
i
-
v
y
-
-
x
-
l
-
m
-
k
-
l
o
-
q
-
-
c
w
j
-
g
-
g
-
-
-
q
-
r
-
k
m
-
-
m
-
t
-
v
-
p
-
w
-
j
-
f
-
f
-
e
-
g
-
o
q
-
-
k
k
-
r
-
t
t
n
-
-
-
l
-
-
v
r
q
-
-
-
w
-
g
-
n
o
-
-
x
-
g
v
-
-
t
c
-
-
k
-
w
-
w
-
k
-
i
-
b
-
u
-
d
-
m
-
e
-
q
-
v
f
w
h
-
-
-
o
c
j
f
j
-
-
g
-
d
-
x
-
-
u
l
p
-
-
-
-
-
-
a
-
j
f
-
m
-
-
p
p
u
-
-
v
-
-
o
-
b
-
p
-
y
r
p
-
-
d
j
-
-
-
q
m
s
-
n
g
-
-
-
b
c
-
-
-
m
-
k
-
x
-
e
w
-
p
j
t
j
-
-
l
y
a
b
f
v
-
-
-
-
u
-
-
-
a
k
-
-
-
l
-
-
j
q
-
-
-
w
-
w
-
n
-
x
k
-
-
q
-
q
-
r
q
-
-
j
-
h
g
g
-
-
-
y
s
-
-
g
s
i
j
p
-
-
-
-
x
-
-
l
c
-
h
-
-
j
-
v
g
-
-
x
-
e
e
-
-
x
-
i
-
n
f
-
r
y
-
h
-
f
-
u
r
-
-
-
a
-
-
q
-
e
-
k
-
d
-
t
-
u
u
-
-
d
-
c
-
j
q
-
-
d
h
-
r
p
-
x
-
-
n
-
-
a
m
t
u
-
-
-
-
m
-
j
-
o
c
-
-
k
-
w
g
-
l
a
-
-
p
d
x
-
-
n
-
-
g
-
-
k
h
-
y
-
m
-
-
r
c
o
n
-
v
-
-
-
-
r
-
d
r
-
-
s
a
-
y
q
-
j
-
-
c
n
-
-
h
-
-
w
-
w
-
h
-
g
u
m
-
-
-
g
l
i
-
-
s
-
s
-
h
-
-
k
s
-
i
-
u
-
-
c
c
-
-
q
-
m
g
-
a
-
-
f
q
-
-
b
-
m
-
t
-
m
x
-
-
g
-
r
s
-
h
-
-
s
f
-
o
-
-
v
-
a
-
g
-
y
u
j
h
-
-
-
o
-
-
r
-
t
-
k
-
b
k
l
n
-
-
-
-
d
-
l
-
w
-
o
-
u
-
h
s
-
-
f
q
q
-
t
p
-
-
o
-
-
n
-
j
-
-
l
-
w
-
h
-
c
-
e
-
q
-
r
-
l
-
e
-
y
-
r
-
i
-
r
g
-
-
p
-
c
-
a
-
n
-
r
e
-
s
-
-
i
-
h
o
-
g
t
-
p
-
o
-
o
d
-
-
g
-
-
-
f
l
-
a
-
i
-
-
e
x
-
-
u
-
a
w
g
-
-
-
x
-
p
-
j
-
n
a
v
-
-
-
c
-
b
-
o
-
m
c
-
-
y
-
l
-
e
-
g
-
y
-
n
-
n
-
n
v
a
-
-
-
b
s
-
-
i
-
p
-
n
-
h
-
a
t
-
-
c
-
j
-
q
b
-
m
-
-
r
-
p
-
i
-
f
-
v
p
a
n
-
-
-
r
m
t
-
-
-
s
-
-
k
a
-
i
-
-
a
-
k
t
-
-
w
-
e
-
o
h
-
-
r
-
v
p
-
-
v
-
b
f
-
g
u
-
v
-
-
k
x
p
-
-
-
-
x
w
x
-
-
-
u
-
i
-
m
-
t
w
-
-
n
-
f
-
k
-
a
a
-
-
q
q
-
v
-
-
p
-
l
l
-
-
y
-
r
-
h
-
s
o
n
-
m
-
p
-
-
-
d
u
-
y
-
-
c
-
l
n
-
-
c
-
r
-
n
-
j
b
-
-
u
-
s
-
d
-
p
-
b
-
p
-
r
-
u
-
p
-
k
v
-
-
a
-
d
-
q
-
d
-
u
-
q
-
n
q
-
-
h
-
p
-
j
-
h
-
o
m
-
-
e
-
c
u
-
-
k
k
-
g
g
-
x
-
-
g
h
-
f
s
-
-
-
-
r
-
j
-
a
v
-
-
l
-
p
v
-
-
s
-
y
t
-
-
k
-
f
-
i
a
-
-
j
d
o
-
-
p
g
-
j
-
j
w
-
-
-
-
a
-
n
m
p
-
v
i
s
-
-
-
-
o
-
-
c
h
-
-
c
-
b
i
-
-
a
-
a
w
-
-
q
-
f
-
c
-
y
-
t
-
h
x
-
-
h
-
p
-
m
-
r
-
r
e
h
-
y
l
-
w
n
-
-
-
-
i
-
-
w
d
-
-
d
-
e
j
-
x
r
s
n
r
-
r
-
o
-
i
-
e
d
-
-
-
x
-
-
-
-
-
y
-
s
-
q
k
-
b
-
-
x
-
g
-
r
-
i
k
s
-
-
-
u
-
q
u
p
-
v
m
-
-
-
-
i
-
d
-
f
-
v
d
-
-
l
r
-
-
s
k
-
-
t
w
l
e
j
-
-
-
-
-
i
-
b
-
d
-
u
j
-
-
x
-
k
-
h
-
w
-
s
-
g
w
-
-
j
-
t
-
m
-
y
q
-
-
q
t
-
-
o
-
c
-
n
-
n
-
l
w
w
-
-
-
k
-
h
g
h
-
r
-
-
r
-
-
a
-
o
l
-
-
v
u
a
-
-
-
k
-
s
-
t
-
r
-
y
n
-
-
a
-
q
f
g
-
-
f
-
m
-
f
-
o
s
-
-
-
j
-
a
-
p
-
t
-
q
-
a
-
q
-
o
-
o
u
-
-
l
-
c
-
t
-
l
-
g
s
p
-
-
-
h
-
d
-
u
-
i
k
-
-
d
-
a
-
f
-
k
-
q
-
r
-
c
-
i
m
a
-
-
-
w
-
e
-
s
h
-
-
b
-
v
-
s
v
-
d
d
m
x
-
-
u
-
-
l
-
-
e
-
-
o
-
g
-
j
-
f
-
l
-
n
a
-
-
j
-
b
-
n
o
e
-
-
-
s
b
s
-
-
-
o
f
m
-
-
u
-
-
a
-
g
s
a
i
-
-
-
-
f
-
w
-
s
x
a
c
-
i
-
-
g
-
-
h
-
i
-
-
o
k
-
-
y
-
y
-
s
-
c
u
-
-
d
k
-
-
s
-
s
u
b
-
-
-
n
-
j
-
m
-
e
i
w
-
m
-
s
-
-
-
d
-
n
-
y
d
b
-
-
-
c
o
-
o
-
-
k
f
-
-
e
v
-
d
m
-
-
-
w
t
-
-
o
-
f
-
c
-
v
-
e
-
j
q
f
-
a
j
-
-
-
-
n
-
g
-
v
-
v
c
o
-
o
k
k
-
-
-
-
j
-
-
l
-
l
s
c
-
h
o
-
e
-
-
-
l
-
-
a
-
v
-
d
-
e
-
w
-
v
-
w
-
s
r
-
-
w
-
j
-
c
g
b
-
k
-
-
-
q
i
k
y
-
-
-
-
d
-
g
o
h
-
-
k
u
-
g
b
-
-
-
-
t
-
m
d
-
-
l
n
q
-
d
-
-
f
k
-
-
c
v
-
-
-
l
n
-
t
r
-
-
-
y
g
f
-
-
a
-
-
w
-
u
-
q
-
b
e
-
-
a
-
n
-
r
g
-
g
-
-
q
-
r
-
q
-
n
-
r
m
-
-
g
-
g
-
s
-
r
-
o
c
-
-
y
d
-
-
v
-
s
-
i
-
m
-
e
-
u
-
q
-
d
-
l
-
t
-
c
-
o
-
h
-
s
-
r
-
e
-
n
-
r
-
m
p
u
p
-
-
-
u
-
u
p
e
-
-
-
-
g
c
-
-
v
-
d
-
i
-
x
u
w
-
-
-
e
-
n
w
-
a
-
-
q
v
j
f
-
-
-
-
g
w
-
i
c
m
-
-
-
-
f
-
l
-
g
v
m
c
-
-
-
-
j
-
v
u
-
-
d
-
i
-
o
u
-
w
q
-
-
q
-
d
-
-
j
a
-
-
g
d
-
b
h
-
-
-
o
-
o
s
-
-
s
-
f
-
v
t
v
-
-
-
v
-
h
h
f
-
-
-
m
j
-
-
h
-
k
-
c
b
-
b
-
-
c
i
-
s
-
-
k
-
t
h
-
v
-
-
t
g
k
-
-
-
b
-
o
-
n
x
-
m
-
-
m
-
y
g
-
-
j
-
b
w
-
-
f
-
p
-
q
-
f
-
s
-
c
-
t
-
q
-
e
g
-
-
q
-
s
-
w
g
-
-
s
-
f
-
b
-
i
-
a
-
o
-
e
-
m
n
-
i
-
-
o
-
j
m
b
-
-
m
l
-
-
-
t
-
e
i
-
-
f
-
o
-
x
t
-
-
x
w
l
-
-
u
w
-
-
-
p
-
l
-
h
s
l
-
-
t
-
-
r
-
p
f
-
o
c
r
-
c
-
-
-
f
p
-
q
v
e
-
-
j
-
-
t
-
-
-
f
l
-
-
k
-
h
-
n
-
n
-
o
-
f
a
-
p
-
b
-
-
u
-
g
-
a
-
i
-
d
x
-
t
d
t
-
-
-
-
w
-
u
-
a
-
p
g
p
-
y
-
-
-
v
-
j
e
-
-
c
j
-
-
u
-
m
-
o
y
-
-
g
-
w
-
l
n
-
-
x
-
f
a
-
-
t
t
-
-
p
-
w
-
x
-
n
-
n
r
-
-
f
-
v
-
d
e
a
-
m
-
-
-
u
-
w
-
o
-
m
-
c
-
j
-
r
p
-
-
s
-
x
u
n
-
-
i
-
-
t
d
-
c
b
-
-
-
w
-
q
-
u
-
h
h
y
h
w
j
f
d
y
o
-
-
t
-
-
-
-
n
n
-
-
-
-
e
-
-
-
-
b
-
x
y
-
j
-
i
-
-
e
u
-
-
k
-
q
-
w
-
y
-
i
j
-
y
-
o
f
-
-
-
f
b
-
w
-
-
p
-
e
-
b
-
o
l
y
w
-
-
-
-
e
-
i
y
-
-
p
v
-
-
m
r
-
-
x
-
t
-
r
-
e
-
f
v
h
-
-
n
-
-
v
y
-
-
x
w
-
-
e
q
x
f
-
-
x
-
u
-
-
j
-
-
i
l
a
-
-
x
e
-
-
a
-
-
w
e
-
l
r
-
-
-
k
-
c
-
r
-
p
m
-
-
m
-
r
-
b
-
m
-
a
-
v
-
m
e
-
-
k
t
-
x
-
f
-
-
v
-
b
-
j
-
g
-
h
-
u
-
b
c
j
-
-
-
r
-
q
p
-
-
u
-
l
-
j
r
d
p
-
-
-
-
j
-
w
-
a
g
-
-
l
-
m
-
l
t
-
-
y
o
-
-
f
-
g
q
-
-
c
t
-
-
g
b
d
-
k
-
-
e
j
x
-
m
-
-
-
k
-
v
-
-
l
-
k
-
c
-
o
-
d
-
y
-
g
-
l
-
h
-
f
t
q
-
-
-
q
-
n
-
m
-
k
-
h
x
-
n
-
-
o
-
t
-
i
-
t
g
g
-
k
m
f
-
-
e
-
-
-
t
-
-
y
-
g
c
-
-
w
-
c
-
o
-
w
-
u
-
g
-
r
p
-
-
l
-
a
-
n
-
m
t
r
-
-
o
-
-
c
-
j
-
l
-
v
p
-
-
i
y
j
-
-
e
-
-
c
-
n
s
-
-
j
-
v
-
q
u
-
-
b
-
k
c
-
-
n
-
d
d
b
h
-
-
b
w
r
-
-
y
-
-
-
-
m
-
u
c
r
-
-
-
u
-
b
o
-
-
o
-
y
-
k
k
h
u
-
j
-
j
-
y
q
-
-
-
g
-
-
u
-
-
k
m
-
-
l
-
h
p
-
-
l
q
-
y
-
-
x
-
x
-
v
-
c
w
j
b
-
-
-
-
r
-
h
k
f
q
b
n
s
t
-
-
-
-
-
m
-
-
-
-
o
v
c
j
f
-
v
y
-
-
-
c
a
-
q
-
-
-
n
-
-
s
-
v
-
g
-
-
x
-
h
-
k
s
w
p
l
j
-
-
-
w
-
d
s
-
m
-
s
f
-
r
j
-
-
o
-
-
-
x
-
o
-
-
w
l
-
-
-
w
-
-
c
-
n
-
q
-
x
-
k
-
y
e
j
-
m
-
-
-
q
-
n
-
r
-
g
-
i
-
h
g
-
-
h
r
-
-
a
-
m
-
q
q
-
-
o
-
b
o
-
-
v
-
u
-
k
t
e
d
-
l
x
-
-
n
r
a
c
-
-
g
i
f
-
-
c
-
-
n
e
-
-
-
-
-
-
-
x
-
h
-
m
-
a
e
y
-
-
-
s
-
h
-
h
-
k
-
l
-
l
a
-
-
y
-
h
a
-
-
s
-
w
-
r
-
c
-
l
u
-
-
w
-
s
-
q
v
-
u
-
-
x
-
w
-
s
-
x
n
-
g
d
-
-
-
r
-
k
-
g
-
a
t
-
-
m
-
m
o
b
-
u
-
-
s
-
l
-
-
n
-
u
j
-
-
n
-
r
-
w
r
-
j
p
-
-
-
v
-
r
-
e
-
k
-
t
-
u
-
q
-
g
r
-
a
-
-
m
-
r
-
s
-
b
-
t
-
i
-
q
-
u
-
l
-
x
-
x
-
a
j
-
-
c
m
-
-
c
-
v
-
f
-
u
-
u
-
p
-
w
e
-
-
q
-
g
-
y
-
u
-
c
w
-
-
p
d
g
-
-
e
-
-
o
-
j
-
g
-
q
o
-
v
-
a
d
v
-
-
-
c
-
-
t
-
b
-
m
-
g
l
-
-
b
b
-
g
-
-
k
-
q
-
q
-
h
-
a
-
m
-
q
v
-
-
e
p
-
-
w
-
x
-
a
-
f
-
o
l
-
u
i
-
e
-
-
-
q
v
-
-
f
-
v
s
v
-
-
t
j
-
-
-
j
-
m
v
x
-
-
-
f
-
p
-
i
r
-
i
-
-
o
-
y
h
-
q
-
-
f
-
b
m
-
n
-
-
x
n
q
-
t
-
-
-
q
-
n
-
j
x
r
-
f
c
-
i
-
-
-
-
f
a
-
i
-
b
-
c
-
i
-
-
p
-
w
-
n
-
r
v
l
-
-
d
d
-
w
o
-
c
k
-
-
a
-
j
-
m
-
x
w
-
e
i
y
u
k
b
-
h
-
-
b
-
-
-
-
p
b
d
-
-
u
u
m
r
-
e
-
-
-
-
k
-
-
-
-
f
-
-
i
-
-
-
c
-
s
p
-
s
-
-
l
-
t
-
j
a
q
c
-
-
d
-
a
-
p
t
r
-
-
-
-
e
-
i
-
y
-
-
q
-
u
-
q
-
p
-
a
-
l
-
a
-
y
-
m
-
j
t
-
-
x
h
-
-
t
c
-
-
d
-
k
-
s
-
c
-
l
-
u
-
l
-
a
o
y
-
-
-
j
-
s
-
c
-
g
-
w
-
u
-
a
r
-
-
f
-
y
-
f
-
l
-
r
r
-
-
e
-
a
p
-
-
g
-
m
-
e
-
l
-
s
r
s
-
n
-
-
-
y
h
-
-
v
s
-
-
g
g
-
k
k
-
-
-
w
c
-
k
s
-
-
s
u
-
-
u
-
w
-
b
p
j
w
-
-
d
-
-
-
-
x
b
k
-
-
l
-
j
-
q
-
-
t
-
p
-
m
-
f
-
b
-
y
-
n
-
m
b
-
-
f
k
-
k
-
y
-
-
r
-
o
-
o
-
v
-
m
-
c
-
k
-
e
-
c
-
j
q
-
-
a
-
d
-
x
-
w
-
n
-
j
j
-
-
i
e
p
-
-
n
-
g
-
-
r
-
d
-
p
-
i
f
-
-
s
-
e
v
-
-
n
-
f
q
m
-
-
r
-
-
o
s
-
-
k
-
j
-
m
-
u
-
t
-
b
-
w
-
r
-
u
-
v
q
-
-
n
-
b
-
h
-
j
-
e
-
p
-
b
w
j
-
-
l
n
-
-
-
q
-
v
-
v
d
-
r
-
u
-
-
l
-
o
-
x
-
l
u
-
-
k
-
c
-
i
-
v
k
-
j
e
-
-
-
j
h
s
-
-
-
k
v
-
-
k
-
d
-
b
t
-
-
n
-
k
-
c
s
-
i
-
-
k
-
i
-
m
-
e
-
m
-
e
-
b
-
h
-
a
u
-
-
c
-
w
-
w
n
-
-
k
-
x
-
a
-
l
-
l
-
f
t
-
-
s
-
g
q
-
-
l
-
a
o
s
x
-
-
-
-
f
k
-
-
y
-
o
s
-
-
i
n
l
-
v
w
-
d
-
-
u
-
-
-
x
-
r
-
v
-
s
-
y
h
r
y
-
-
q
m
-
n
t
-
m
-
-
m
f
-
-
-
-
f
-
-
b
-
f
a
-
-
s
-
y
-
r
-
x
-
n
h
j
o
-
r
b
-
-
j
f
-
h
-
-
-
y
o
-
-
-
x
-
-
d
-
j
-
b
-
j
d
-
-
r
-
m
-
u
-
e
x
-
-
j
-
x
-
p
-
v
-
d
o
s
u
-
-
-
-
w
d
-
w
l
-
-
-
n
-
n
t
-
g
-
-
x
-
l
-
m
-
q
d
-
-
o
p
-
d
-
o
l
-
-
-
j
j
-
-
m
-
c
-
x
-
a
-
q
-
s
u
-
-
g
-
a
-
m
-
k
-
o
-
u
-
y
-
l
s
b
o
g
l
s
-
-
r
-
-
-
-
-
-
h
-
s
h
-
l
-
b
-
-
j
-
g
g
-
-
s
-
i
-
g
-
r
-
j
-
o
d
-
-
a
-
l
-
c
b
-
-
d
w
p
g
j
o
-
-
-
a
-
l
-
-
a
-
-
-
e
a
e
-
-
-
q
-
g
n
-
-
g
o
j
-
-
-
f
-
r
-
x
a
d
k
-
-
-
-
q
-
q
-
x
t
w
-
p
-
-
-
f
-
v
b
b
s
-
-
-
-
a
i
-
-
u
-
a
-
t
-
w
-
i
-
j
-
m
l
-
-
c
-
a
-
x
-
t
-
u
-
x
-
v
c
-
-
i
-
r
-
b
-
e
m
x
-
-
-
k
-
x
w
-
-
a
w
j
b
-
-
f
-
-
-
p
-
d
e
a
-
r
-
x
-
g
u
-
-
-
y
-
-
p
u
k
v
-
-
s
u
-
-
-
-
g
-
g
-
h
-
v
y
-
-
l
y
-
-
i
f
-
n
-
-
u
-
k
d
b
o
-
-
f
j
y
c
v
-
-
-
-
h
-
-
-
-
p
p
-
u
-
-
d
x
-
-
b
-
x
-
v
-
u
-
m
c
f
w
-
-
a
-
-
-
t
-
d
-
m
-
q
k
-
r
-
n
s
-
-
-
j
t
-
-
x
-
a
-
o
-
t
-
l
-
v
-
d
-
c
-
i
-
w
g
-
-
p
-
r
h
u
o
-
-
-
-
h
-
l
x
-
j
-
-
g
i
-
-
h
-
q
-
i
a
o
-
w
-
e
o
-
-
-
-
t
-
p
k
-
y
l
g
-
-
n
-
a
w
-
g
-
-
-
-
q
-
c
d
-
-
i
-
h
a
-
-
r
e
-
-
y
-
q
-
u
-
n
-
m
-
r
-
v
-
r
v
-
-
y
-
x
t
-
b
-
-
j
-
d
q
c
e
-
i
x
-
s
g
-
-
-
-
-
-
u
-
q
n
-
-
h
-
e
v
-
-
h
-
a
g
-
-
w
-
k
x
-
-
a
-
b
b
-
-
g
-
q
l
s
-
w
-
q
q
-
-
-
g
-
-
h
w
n
-
s
-
-
h
-
-
j
-
a
q
-
n
-
t
i
-
-
-
x
-
i
m
-
r
-
-
w
y
-
-
k
-
k
-
i
h
-
-
f
-
o
-
w
l
-
-
m
-
g
p
g
-
r
k
-
-
-
-
c
-
g
-
f
-
x
-
w
-
i
-
a
-
a
-
a
-
y
x
-
-
v
-
y
-
b
-
j
-
m
-
v
-
u
-
h
-
k
-
p
-
d
-
g
-
n
x
-
-
g
c
-
-
t
-
a
-
a
-
s
b
-
e
-
-
x
-
o
-
g
j
w
-
n
n
-
-
s
m
-
-
-
x
n
-
m
-
-
-
v
-
e
j
-
-
r
y
-
-
y
-
c
-
y
n
-
-
v
l
-
-
p
-
x
-
t
a
-
-
f
-
x
-
p
-
n
a
-
e
-
-
t
-
c
-
s
k
-
-
v
-
j
-
r
-
a
-
t
u
k
-
-
-
h
l
-
-
o
-
w
-
q
h
-
k
-
-
a
-
d
-
h
-
w
-
a
c
-
-
t
-
u
-
l
q
-
e
k
a
-
k
x
-
o
-
q
s
a
k
-
-
-
h
o
f
-
-
-
-
-
-
-
-
w
-
p
-
t
-
b
e
-
-
w
-
l
q
f
j
-
-
l
-
-
-
x
-
w
x
x
-
u
-
m
-
-
q
-
-
n
-
a
-
i
k
n
-
-
-
h
-
r
-
h
-
q
-
a
-
l
-
o
c
-
g
i
-
j
-
-
-
v
-
a
x
-
-
w
x
s
-
k
-
-
-
l
c
p
u
a
m
p
-
-
-
-
-
-
-
m
t
-
g
-
-
v
-
g
-
o
-
k
-
x
-
d
-
h
n
a
g
-
-
-
-
b
y
n
-
-
-
p
-
x
k
x
-
-
-
m
-
r
-
h
a
-
-
w
-
d
-
p
r
-
-
e
-
y
b
-
-
o
k
y
-
-
-
b
-
m
-
m
-
e
-
d
-
x
c
h
r
d
-
y
s
-
-
-
-
-
-
u
k
m
-
b
-
-
-
v
-
d
-
l
l
b
-
f
q
-
-
-
i
-
-
b
b
o
i
-
-
y
-
b
-
-
-
o
g
-
m
-
m
i
f
-
-
-
-
w
-
g
-
d
-
w
-
x
e
j
-
-
-
w
k
-
-
v
p
-
-
w
-
l
-
w
-
k
q
-
w
-
-
c
-
r
o
-
-
n
n
-
-
f
f
-
-
h
e
n
-
-
x
-
m
-
x
n
-
-
-
t
-
d
-
g
-
s
-
c
-
l
-
g
n
-
-
v
-
f
-
e
p
-
-
e
-
o
v
-
-
w
-
o
-
y
-
y
i
-
-
m
-
q
-
l
-
h
-
g
-
e
a
a
-
g
-
-
-
u
-
y
-
i
t
-
p
-
-
e
e
-
-
u
m
-
y
n
-
-
-
c
f
j
-
v
n
-
-
i
-
-
-
g
-
d
-
h
-
y
-
l
q
-
-
g
r
-
w
-
-
m
-
d
-
n
-
s
-
g
-
o
-
x
w
q
-
j
-
-
j
f
-
-
-
k
-
g
-
w
-
g
-
o
q
-
d
-
-
l
-
u
t
p
-
k
-
l
-
-
-
m
-
b
-
h
-
v
-
c
-
x
-
o
-
q
-
d
-
f
y
-
-
h
p
-
g
-
-
w
-
d
b
-
-
i
f
c
-
-
-
p
-
u
d
-
o
-
-
x
-
y
r
-
-
k
b
-
-
u
m
-
g
-
-
b
o
-
-
c
-
k
w
w
-
o
-
-
-
w
-
x
-
p
-
n
-
o
-
i
n
-
k
-
-
c
-
c
-
n
-
d
-
p
-
g
-
f
-
a
-
m
-
k
-
q
-
d
m
-
-
a
f
-
-
p
-
d
k
-
a
-
g
-
-
f
r
-
p
-
r
r
-
-
-
e
-
o
s
-
r
p
-
t
t
-
c
-
o
s
b
-
o
-
-
i
-
-
-
k
-
-
-
p
r
-
-
u
-
v
-
p
-
w
-
t
f
-
e
-
l
-
h
t
-
-
-
p
-
s
-
o
-
c
w
w
i
n
-
-
-
q
h
-
x
u
-
-
w
-
-
m
-
-
-
m
-
y
x
k
x
-
-
l
-
-
-
h
i
-
-
h
-
i
-
d
-
r
-
n
c
-
-
v
j
-
-
f
s
d
-
-
-
l
-
b
-
y
-
g
-
f
o
-
d
-
q
n
j
-
-
p
-
o
-
c
-
-
-
j
-
v
-
x
-
c
v
-
-
s
l
x
-
-
-
a
-
g
-
y
-
c
-
r
f
k
-
-
-
d
g
g
-
-
-
d
-
v
-
q
-
f
-
i
k
-
-
e
-
t
-
u
-
a
-
h
-
p
i
-
r
f
b
-
-
-
-
y
-
t
v
-
-
y
d
h
-
-
-
s
-
t
p
-
-
n
-
f
g
y
-
-
h
-
q
y
-
-
t
y
-
-
-
p
f
-
t
-
d
t
-
-
h
-
-
p
-
h
i
-
-
u
p
-
-
j
-
n
b
-
-
b
-
s
-
i
-
l
-
v
-
p
-
g
h
q
-
d
u
-
-
-
-
g
-
c
v
-
-
o
r
-
-
f
-
b
-
b
-
a
-
j
-
x
s
h
-
-
e
-
-
j
b
-
k
c
-
-
i
-
-
l
q
-
-
r
-
r
o
k
c
-
m
-
-
-
-
t
-
u
-
a
-
k
e
q
-
-
e
-
-
c
f
-
e
k
x
-
-
-
-
d
b
-
-
y
-
e
x
-
t
y
-
-
v
-
f
-
u
-
q
-
-
d
-
d
-
l
x
-
s
-
-
e
h
-
-
y
d
-
-
l
-
o
-
e
-
v
m
-
t
-
-
c
l
-
-
q
a
-
-
g
-
s
u
h
-
-
q
e
-
-
-
h
-
s
g
v
-
-
-
r
-
x
-
g
k
-
-
s
r
-
p
r
r
-
-
-
i
e
-
-
-
b
-
a
-
o
-
p
-
y
v
-
-
w
-
j
-
w
-
k
n
-
n
-
s
-
-
r
c
k
-
-
-
o
u
-
l
w
-
-
-
y
i
-
-
f
-
g
-
i
a
-
-
u
-
j
-
o
-
q
-
c
-
b
j
u
-
-
-
v
-
e
x
m
t
-
-
-
a
-
i
-
-
g
-
i
h
o
-
l
-
-
s
d
-
-
w
-
-
a
t
-
h
-
-
x
e
-
-
r
-
i
-
r
c
-
-
u
-
u
d
-
-
j
-
o
w
o
-
-
x
-
-
o
n
-
-
g
q
m
i
-
-
-
p
-
i
b
-
-
-
e
-
t
-
d
-
q
k
-
-
l
-
k
-
i
d
k
f
-
-
-
-
h
w
x
-
m
r
-
-
-
l
n
-
-
m
-
-
s
o
o
-
-
-
e
-
p
-
t
-
d
-
b
-
g
-
k
u
p
r
a
-
-
-
-
-
i
-
m
n
-
g
-
-
b
-
o
-
o
-
d
k
c
-
-
r
t
-
-
-
h
-
a
t
-
y
-
-
b
-
b
-
j
-
c
q
k
-
a
-
-
j
j
-
-
-
u
m
-
k
-
-
k
h
t
-
-
-
g
-
w
c
-
-
a
-
j
-
r
-
s
-
d
-
m
-
h
l
-
-
i
-
t
-
u
-
g
-
b
e
-
w
f
l
-
-
-
-
s
-
n
-
u
-
r
-
t
-
y
-
e
-
y
-
q
-
e
-
g
-
s
-
p
s
-
-
c
-
t
-
w
-
c
-
n
i
-
-
s
p
-
u
-
-
s
-
i
w
-
-
y
-
f
k
-
-
f
-
k
-
q
r
-
-
q
-
s
-
r
-
y
-
x
v
-
-
x
-
u
d
-
t
-
-
f
j
-
-
f
b
-
-
h
f
-
-
k
a
q
-
-
-
e
-
q
l
-
-
e
-
p
-
n
-
a
t
-
-
j
-
a
-
w
-
t
-
r
-
y
p
-
-
x
-
g
-
f
-
o
-
l
v
f
-
-
i
p
w
t
-
-
d
q
-
-
-
-
t
r
-
-
r
-
-
g
u
-
-
s
-
a
-
k
j
-
-
g
m
-
y
-
-
m
-
e
h
-
-
b
s
-
w
y
-
-
e
-
-
a
d
h
-
-
r
-
h
-
d
-
-
b
g
-
-
m
-
a
-
u
-
k
-
b
v
e
s
-
h
w
k
-
e
-
-
-
-
x
-
-
o
-
-
q
b
-
-
k
-
u
-
m
m
v
-
-
-
k
-
g
-
v
-
d
j
-
-
k
y
u
-
-
-
y
-
d
-
r
b
-
-
t
-
q
b
q
-
m
-
-
j
h
-
o
-
-
-
p
-
d
d
-
-
g
-
f
m
-
-
y
-
f
r
-
-
l
-
c
-
i
-
m
-
n
x
v
-
-
k
-
-
h
d
-
-
r
-
p
n
-
-
x
-
s
-
k
-
e
-
v
-
s
q
-
a
-
-
t
a
-
r
-
-
n
-
e
-
x
d
-
w
k
-
-
-
d
-
w
-
f
s
v
i
-
-
y
b
-
-
-
b
-
-
u
-
a
-
p
-
b
-
v
-
l
-
g
-
k
-
r
-
n
m
-
f
-
h
-
-
b
-
a
-
s
-
s
a
-
-
e
-
m
o
-
-
n
c
f
-
-
-
o
-
o
-
r
x
-
y
-
-
h
x
h
-
-
-
w
-
y
-
f
s
-
-
c
t
-
-
s
-
e
-
n
r
w
-
-
-
c
u
-
-
v
-
k
-
i
-
e
m
-
-
a
c
-
-
j
a
-
-
j
-
c
-
q
-
h
-
a
q
k
-
n
-
q
-
-
-
h
s
-
h
r
-
-
-
l
-
v
-
p
f
-
q
-
m
-
p
q
-
-
-
c
-
j
-
v
h
u
-
-
-
l
-
a
-
p
-
e
-
s
-
g
q
-
-
l
-
y
-
o
d
p
-
b
-
n
o
r
-
h
-
-
c
-
n
-
-
-
-
j
-
x
w
-
e
x
-
-
-
x
-
t
-
x
-
p
n
u
-
-
r
-
p
r
v
-
-
f
-
-
-
w
n
i
-
-
j
-
-
d
v
-
-
f
s
-
p
-
-
v
m
v
q
-
-
-
l
-
j
b
-
a
-
c
-
-
-
g
g
-
-
w
f
-
y
-
-
m
-
q
-
u
f
n
-
j
-
-
-
j
-
m
-
k
-
r
u
-
-
b
-
t
-
x
-
n
j
-
b
b
-
b
m
-
-
h
-
b
j
s
e
f
f
-
-
-
-
-
-
-
c
c
q
-
p
w
r
-
-
-
-
-
-
t
-
g
-
u
-
f
v
-
-
l
d
t
-
-
a
-
-
r
-
q
-
f
q
-
-
a
-
m
-
u
-
q
h
-
q
-
-
w
-
y
-
c
-
x
-
b
k
u
n
-
-
-
r
k
-
-
h
y
-
i
-
-
-
t
n
n
d
-
-
-
m
c
-
n
-
-
-
r
-
i
q
-
j
-
f
m
-
-
-
j
-
k
h
u
-
x
p
-
-
-
-
c
-
o
-
v
a
j
-
-
-
v
-
a
-
y
-
w
-
v
-
x
-
a
m
-
-
e
m
-
-
r
k
-
-
k
-
d
-
q
l
-
-
s
-
u
-
d
f
-
-
r
-
h
-
y
-
v
x
-
r
-
-
a
-
h
-
g
e
k
-
-
-
d
-
e
-
v
-
h
-
m
-
r
-
j
-
c
-
k
-
j
-
y
-
e
d
o
-
-
-
j
w
-
-
s
y
f
-
-
-
c
-
t
-
v
u
-
u
g
-
-
v
-
-
c
-
h
-
n
u
-
a
-
i
-
n
-
x
g
-
-
-
v
-
o
-
k
-
t
-
h
-
y
-
n
x
-
-
i
-
u
n
-
e
b
-
k
t
-
-
-
x
b
-
-
-
s
t
o
j
-
t
-
-
a
-
-
k
-
-
x
-
r
-
m
-
f
i
m
m
-
-
y
-
-
c
j
-
m
q
-
-
-
p
m
o
-
-
m
l
-
-
n
-
e
d
-
-
-
-
x
-
x
d
l
-
-
-
o
-
f
-
x
-
r
d
-
-
t
k
r
i
-
n
c
v
x
-
b
s
-
-
-
-
-
-
j
-
-
-
f
r
-
-
b
x
g
-
-
-
b
-
t
-
x
-
h
l
l
-
m
-
r
-
-
-
q
f
-
q
-
a
e
-
-
-
e
-
n
n
k
-
-
-
w
-
u
n
-
n
-
s
-
-
k
c
-
-
l
l
-
-
r
-
h
-
s
-
h
-
h
-
b
q
-
-
s
-
o
g
-
-
v
d
-
-
h
-
w
-
v
o
-
h
-
-
m
-
v
d
-
-
c
-
f
r
-
-
f
-
t
-
a
u
-
-
k
-
c
-
y
-
e
-
s
-
y
i
-
-
b
d
x
-
-
-
i
-
x
j
-
-
b
r
r
x
e
-
-
d
-
-
g
-
-
w
-
-
f
-
r
i
-
-
i
-
e
f
-
b
-
x
-
-
o
-
c
-
w
-
m
-
t
-
i
-
c
-
o
-
v
-
r
f
-
-
k
-
m
-
n
-
o
-
g
-
x
r
x
-
-
r
-
-
b
-
p
-
p
-
g
-
g
-
x
g
-
-
o
v
-
k
h
b
-
m
-
-
r
o
-
-
-
-
s
r
-
i
-
-
i
k
l
-
-
-
a
-
t
-
p
-
b
-
u
t
-
-
j
-
i
j
-
s
-
r
-
-
x
t
-
-
v
-
r
-
o
-
p
a
-
-
w
-
q
-
p
-
b
-
q
l
-
-
h
v
-
c
-
-
f
-
u
-
l
-
s
q
o
-
-
h
e
-
-
-
x
-
w
o
-
-
n
f
-
g
c
j
a
-
-
-
-
d
x
i
-
p
b
-
-
-
-
-
k
-
c
g
s
-
u
j
-
-
c
-
x
-
-
-
t
m
m
-
-
a
-
-
v
-
q
-
l
-
k
-
d
l
-
-
p
-
q
-
k
-
c
p
-
-
w
a
c
-
x
-
t
-
-
-
h
-
b
-
k
-
v
r
-
-
y
-
g
-
u
g
-
-
k
-
s
-
x
-
s
-
a
d
-
-
d
-
j
g
a
-
m
h
-
-
-
-
y
r
a
-
-
c
t
-
-
u
e
t
-
e
-
b
i
-
l
-
s
-
-
x
-
q
-
v
y
j
-
-
b
o
p
-
-
-
-
-
-
-
t
-
m
-
u
-
f
-
l
-
o
-
v
t
w
-
-
-
j
r
-
a
-
-
e
-
r
-
r
f
k
-
-
-
j
q
-
-
g
-
d
-
v
-
e
m
-
-
o
-
e
-
i
w
e
-
j
-
-
-
b
-
h
-
d
-
v
-
q
-
y
-
n
u
k
g
r
-
n
a
y
-
-
-
-
-
i
-
-
-
h
u
i
n
-
-
-
-
y
v
-
-
s
-
t
c
m
-
n
e
-
-
-
-
y
-
y
-
t
s
-
-
v
-
h
-
m
g
-
f
-
-
h
r
-
-
w
v
-
-
l
s
a
b
-
y
-
m
b
a
-
-
c
-
-
-
-
-
q
q
-
-
x
-
n
h
-
-
i
-
j
l
-
-
g
-
v
j
-
-
h
-
g
-
o
-
o
-
p
-
f
-
d
-
l
-
x
-
q
i
-
d
g
-
y
-
-
-
o
d
-
-
f
-
f
-
o
-
r
-
x
-
v
x
-
-
b
-
x
-
l
-
v
t
-
-
t
-
n
w
s
-
-
-
e
-
v
-
g
v
-
-
c
-
t
h
b
-
s
-
-
o
v
-
v
x
-
w
-
-
-
-
q
-
s
-
c
p
-
-
a
-
d
-
f
-
l
j
-
p
-
e
i
-
h
-
g
r
f
-
-
-
-
t
-
-
d
d
-
-
j
-
y
c
-
r
-
-
m
-
p
-
a
s
q
o
-
-
p
-
-
-
p
h
-
-
c
-
l
-
m
t
-
w
b
-
f
-
-
h
e
-
-
-
r
-
n
e
-
v
-
-
u
r
-
-
y
p
-
-
i
-
i
-
p
a
-
u
-
f
-
-
d
-
v
-
e
j
-
-
m
n
-
-
k
-
k
k
-
-
d
c
d
-
p
o
-
a
-
v
-
d
b
b
-
-
-
-
u
-
l
-
-
w
-
-
g
-
d
-
s
i
-
a
-
l
-
r
j
-
-
j
s
-
-
-
m
-
r
-
q
-
s
-
m
-
k
-
i
-
f
-
u
k
-
p
d
-
-
-
w
-
n
-
c
-
x
q
-
-
j
-
s
b
-
a
-
-
g
-
s
-
m
-
m
-
h
-
c
-
w
-
e
-
u
-
m
-
g
-
i
w
-
-
p
-
l
-
r
-
j
-
r
-
b
-
w
-
o
-
q
c
-
-
e
-
q
-
t
x
-
-
l
-
t
-
u
-
u
-
p
-
c
-
r
-
l
s
-
-
y
-
g
-
m
h
-
-
l
-
m
-
l
-
g
-
f
u
f
-
-
-
x
-
g
-
o
-
u
-
d
-
s
v
-
o
-
u
r
-
v
-
-
-
q
o
-
-
f
-
h
-
f
i
w
-
-
q
h
-
-
-
f
m
-
v
-
-
s
-
c
-
s
-
c
-
t
-
h
-
p
-
w
w
x
-
j
u
-
e
f
-
-
k
-
-
w
-
-
-
t
i
-
-
i
-
d
-
m
-
d
-
g
-
n
a
-
h
-
m
-
-
y
-
l
-
e
h
-
-
p
b
f
-
-
v
-
d
-
t
-
-
x
r
-
s
n
-
-
-
k
-
p
-
s
-
a
-
w
j
-
a
-
m
-
-
i
-
o
-
j
-
d
-
x
-
b
-
f
u
-
x
-
-
x
-
p
h
-
-
r
-
i
-
s
-
b
b
t
-
h
w
-
-
-
-
t
h
-
-
v
-
o
-
i
c
-
-
n
c
-
s
-
-
p
-
v
m
-
-
b
p
-
p
y
-
-
-
f
l
-
j
-
-
m
y
y
-
-
n
-
-
e
k
-
-
l
-
s
-
q
m
n
-
u
p
n
-
-
-
-
-
k
-
s
d
-
l
-
-
y
c
-
y
q
-
-
-
j
-
t
-
u
-
y
-
c
-
t
-
d
-
f
-
f
y
i
-
-
-
s
-
j
-
o
-
b
-
t
g
-
a
-
y
o
-
u
e
p
-
-
-
-
r
x
-
o
j
i
-
-
-
j
e
-
x
-
-
v
-
-
-
v
-
m
-
m
b
v
-
b
s
-
-
n
c
-
-
-
-
u
g
-
-
b
-
t
-
e
o
f
-
-
n
-
y
u
-
-
-
l
-
n
-
u
-
e
e
-
p
-
-
c
s
-
t
w
q
g
-
j
u
v
-
-
-
-
-
j
-
v
-
l
j
r
u
w
-
o
-
e
-
a
-
f
t
-
-
h
-
-
-
x
-
-
-
-
-
b
f
n
-
p
-
-
o
-
o
w
p
-
c
-
-
-
-
l
-
b
q
-
v
-
-
q
-
t
-
p
a
k
l
-
-
r
-
j
-
b
q
c
-
-
m
-
s
-
v
p
-
-
a
-
-
-
v
-
-
r
-
d
-
u
-
i
-
x
-
l
-
t
-
i
-
t
-
h
w
-
i
-
x
-
n
-
k
-
g
i
i
-
-
-
h
-
p
q
-
-
-
i
-
t
-
k
a
n
-
v
-
o
i
-
-
-
-
h
x
-
-
h
-
y
e
-
-
q
h
-
-
f
-
k
-
t
s
f
-
-
-
v
v
-
-
t
o
n
p
-
y
g
-
-
-
-
-
y
-
f
-
k
v
-
a
-
-
e
-
a
-
j
-
b
c
-
-
f
-
n
j
-
-
w
-
m
-
s
-
n
g
-
h
t
-
-
-
q
w
-
-
m
o
-
d
-
-
f
q
-
p
-
-
v
e
b
-
-
-
o
-
c
-
y
s
-
-
a
t
a
q
-
-
p
-
n
-
-
-
a
-
s
-
o
r
-
-
o
-
u
-
l
m
y
-
-
o
b
-
-
-
y
v
-
-
n
j
m
v
v
m
-
-
-
g
-
-
k
-
-
-
l
-
r
-
i
-
i
j
-
-
g
-
t
k
-
-
c
-
d
-
w
-
b
-
l
s
-
-
r
t
-
-
p
-
p
-
y
n
v
-
b
-
a
-
-
-
p
-
u
n
-
n
-
-
a
u
-
n
-
j
b
-
-
-
d
-
m
-
x
n
-
t
-
-
m
t
-
-
l
m
-
-
t
-
l
h
x
-
-
-
g
-
e
p
r
r
n
f
-
-
-
j
-
y
-
-
w
-
-
k
-
-
n
d
h
w
-
-
q
-
-
l
a
f
-
-
q
-
p
x
-
-
-
-
a
-
g
-
j
y
-
o
-
-
o
b
-
r
-
j
-
-
e
-
d
-
b
-
p
-
h
-
l
-
v
-
l
-
f
d
b
-
-
-
w
-
m
-
h
-
h
j
v
-
-
-
m
-
p
-
a
-
r
-
i
-
n
-
x
-
a
-
k
-
b
g
s
c
f
-
-
-
t
m
-
i
-
-
-
-
j
y
n
r
-
u
-
-
-
-
g
y
s
-
p
-
-
-
j
-
f
-
b
-
f
o
-
-
b
-
j
-
f
-
f
i
-
-
p
u
-
-
a
p
y
f
-
-
v
-
-
-
x
m
-
-
c
-
q
e
m
o
-
-
a
-
f
-
y
-
j
-
-
-
t
-
e
-
k
-
h
o
-
-
b
-
f
-
c
-
k
-
v
-
c
-
s
h
u
-
p
-
-
-
s
-
c
f
p
x
-
m
p
-
o
-
-
-
w
k
l
-
-
h
-
-
-
-
s
u
k
y
f
q
-
-
-
-
-
-
r
t
h
-
-
-
b
r
-
-
k
-
n
-
l
g
k
-
-
-
e
-
u
-
r
-
u
-
y
l
-
-
a
-
e
-
b
-
p
-
k
-
s
-
c
-
f
u
-
w
g
-
b
-
-
h
-
-
f
-
s
a
w
-
-
-
k
-
l
o
-
i
p
-
-
w
h
-
-
-
e
k
r
-
-
-
d
-
q
-
y
-
c
-
y
-
j
o
k
p
-
n
-
-
b
t
-
-
c
t
-
n
-
t
p
-
-
i
-
-
e
-
-
i
-
k
l
-
-
o
-
-
v
n
j
-
-
-
s
-
k
v
m
-
-
n
-
l
l
y
-
-
-
l
v
i
-
q
-
e
-
t
p
-
-
-
-
o
k
a
-
-
h
-
-
-
s
-
f
o
-
u
-
-
e
-
n
-
d
f
-
-
r
-
q
-
y
c
-
-
y
-
m
s
m
-
k
-
-
d
-
-
o
n
-
-
r
-
f
-
a
-
f
-
x
c
-
-
f
-
r
-
x
m
-
-
v
f
j
-
-
-
l
-
o
-
n
-
r
-
k
-
y
-
r
-
y
o
-
f
-
h
-
h
i
-
g
-
-
k
-
-
v
m
-
m
-
-
e
-
k
-
f
-
v
-
g
-
k
-
w
-
h
c
-
-
s
-
g
g
-
-
q
-
q
-
e
-
a
p
l
-
-
-
f
-
p
s
o
-
-
n
-
-
s
-
l
-
b
i
-
a
-
a
-
-
l
-
f
-
a
-
k
-
w
-
y
-
t
-
e
e
b
-
-
-
m
-
j
-
b
-
s
n
-
-
w
-
r
w
e
-
-
-
s
-
j
o
-
g
i
-
-
-
y
-
r
-
y
y
a
-
-
b
l
-
u
x
l
-
i
-
-
-
-
b
-
-
y
-
b
-
o
-
j
-
a
-
p
-
y
-
j
-
a
-
j
s
w
-
-
-
m
-
j
y
q
a
-
-
-
-
o
-
k
v
-
t
-
-
y
-
v
-
n
-
q
g
-
j
-
-
m
-
j
-
d
x
-
f
-
-
l
-
v
h
-
i
-
-
f
p
v
t
f
-
-
-
b
-
-
-
x
-
l
t
-
r
d
f
-
-
h
-
j
q
u
-
g
-
s
-
-
m
-
-
w
-
-
y
c
-
u
y
-
-
j
a
a
-
m
-
-
b
-
-
l
-
f
-
-
-
k
-
a
-
f
-
g
-
x
-
i
-
q
-
p
-
m
-
k
d
-
-
r
-
d
-
e
-
x
-
s
-
v
-
r
-
y
x
-
-
y
-
p
-
n
-
k
-
o
n
k
-
-
-
w
m
-
o
-
-
g
-
u
a
l
-
-
-
m
-
k
-
e
-
a
b
-
-
f
-
i
g
-
-
y
-
k
-
y
t
l
l
g
b
-
-
-
-
n
d
-
x
q
-
-
-
-
k
-
-
c
-
o
a
-
o
-
-
d
p
-
-
p
f
-
-
s
t
-
-
m
-
w
-
y
-
l
o
-
r
-
-
n
v
n
-
r
a
-
-
-
-
i
-
x
-
r
-
j
-
o
-
c
-
i
-
y
-
p
-
b
-
f
t
g
-
-
t
-
-
e
m
-
-
h
-
c
f
s
l
-
-
b
-
-
-
m
-
g
v
-
-
m
r
-
-
q
-
x
-
o
-
y
q
-
t
y
-
-
-
a
-
v
y
-
-
m
-
e
-
k
-
g
-
a
-
k
i
-
-
m
-
e
-
x
-
q
h
-
-
b
-
d
-
e
-
g
a
-
-
d
-
y
p
-
-
e
t
o
h
-
l
-
-
-
-
n
w
-
-
d
-
v
-
k
x
l
-
-
l
-
-
f
p
r
-
-
-
m
r
-
-
h
w
-
-
i
-
y
-
i
-
a
o
-
y
-
-
s
-
e
-
t
-
p
n
-
u
-
-
v
-
f
-
r
-
d
b
-
-
g
-
l
i
-
-
w
-
q
y
-
-
h
-
g
-
b
g
-
s
p
e
-
v
-
-
-
s
-
t
i
-
-
m
-
f
m
-
w
r
-
-
-
-
m
l
-
v
k
-
k
-
-
b
-
-
w
-
e
-
n
-
c
-
g
k
o
x
-
-
n
-
-
-
g
-
p
-
g
k
u
-
-
-
h
a
-
k
-
o
v
x
-
d
-
-
-
s
-
e
-
y
-
a
-
h
-
-
e
-
f
-
b
-
c
-
g
-
s
d
t
m
-
-
k
-
-
-
q
-
k
-
s
i
r
-
b
-
-
-
c
b
s
-
-
-
u
-
t
o
-
-
k
k
-
-
j
-
i
-
c
-
v
-
k
v
-
p
-
q
j
-
h
-
k
-
-
-
t
-
v
-
f
-
b
-
g
n
-
-
p
-
a
h
-
h
d
-
-
u
j
-
e
-
-
-
r
-
o
-
i
-
h
-
m
-
b
-
c
-
g
f
-
-
d
-
g
o
-
-
c
-
i
-
t
-
y
m
n
-
h
-
-
u
v
-
-
-
s
-
m
l
-
-
w
-
s
-
c
-
s
-
f
-
g
-
w
-
p
-
r
-
o
-
l
b
o
-
-
-
t
b
h
n
b
-
-
-
-
v
k
h
-
-
-
-
i
-
u
t
-
-
m
d
-
-
x
-
l
-
p
-
d
-
n
-
h
v
r
i
-
-
-
-
q
-
w
-
h
-
t
d
-
-
n
-
j
-
y
-
v
i
y
-
-
-
b
g
y
-
-
-
f
y
p
-
i
u
-
n
-
-
-
x
j
b
-
-
-
-
h
-
r
m
-
-
h
-
x
v
-
-
c
-
v
u
-
w
k
-
-
-
d
b
-
-
q
e
-
-
d
-
k
u
-
m
-
-
k
-
g
-
n
-
f
w
-
-
d
j
-
-
y
-
w
b
s
-
-
-
m
-
a
-
h
-
t
p
-
-
j
-
m
-
j
-
p
-
g
-
v
g
t
-
-
p
-
-
e
-
a
-
r
-
y
o
-
-
u
-
v
-
n
-
j
g
-
c
-
-
r
-
y
-
m
-
w
-
d
-
f
-
w
-
w
-
n
a
-
-
e
-
f
-
n
-
h
-
u
-
i
s
-
-
c
-
g
x
-
o
g
-
-
v
d
-
o
-
-
x
-
-
s
-
i
-
r
-
l
-
d
-
b
-
y
o
-
-
s
-
d
-
r
h
y
l
-
d
i
-
-
h
d
g
-
m
f
-
-
-
-
-
-
j
-
-
l
-
l
m
-
t
c
-
t
-
-
-
m
a
-
-
y
-
u
-
a
r
-
-
g
-
u
t
-
-
o
-
g
f
n
-
-
-
j
-
p
-
u
f
-
-
p
-
w
-
p
p
-
-
x
-
y
t
e
-
c
-
-
d
f
m
-
-
s
-
-
-
s
-
m
-
v
-
l
-
k
t
x
-
m
-
g
-
-
-
t
-
l
-
c
n
-
-
g
-
s
l
-
-
t
-
u
x
-
-
m
-
a
o
-
l
-
g
p
-
-
-
c
p
-
g
-
-
b
r
-
-
s
v
b
-
-
-
l
n
k
-
-
-
n
-
s
-
o
-
g
-
k
-
v
-
a
-
p
d
-
-
n
-
d
-
q
q
h
-
-
x
-
v
-
-
s
e
p
-
-
-
q
-
n
r
w
h
-
-
-
-
c
-
t
-
t
-
p
k
-
v
-
-
p
e
-
r
-
-
f
v
-
-
s
-
x
-
g
-
i
s
l
-
-
h
j
y
-
-
-
w
-
-
q
-
m
-
e
-
n
-
t
-
i
s
-
-
o
-
j
-
b
-
t
u
e
-
-
-
g
-
b
u
d
-
h
-
-
-
a
-
r
-
x
-
b
l
-
b
-
g
-
k
-
-
p
-
a
-
i
-
h
-
i
-
b
-
u
-
l
a
-
h
f
-
-
-
s
e
-
-
g
n
-
-
h
-
y
-
k
-
n
-
k
-
n
-
k
k
f
i
-
t
q
-
k
-
k
-
r
-
h
-
o
s
-
j
p
o
-
-
-
-
-
u
-
v
a
-
-
-
-
-
g
-
d
-
o
h
-
b
-
-
y
-
s
-
i
-
n
w
-
a
-
-
j
-
a
-
y
-
l
-
y
-
b
k
-
y
u
i
-
-
-
-
b
-
y
d
-
n
-
j
-
i
l
-
o
-
-
-
s
-
a
-
e
l
-
k
l
-
u
-
u
-
p
-
b
-
-
-
u
-
e
-
b
-
a
y
-
l
o
-
-
m
-
r
-
-
c
g
y
-
-
-
k
a
n
w
-
-
-
s
-
h
-
q
-
-
h
-
k
-
e
-
e
-
p
-
k
k
a
-
o
-
-
-
m
v
-
-
o
-
c
-
e
-
m
-
n
-
b
d
-
-
f
-
v
-
v
-
y
a
t
-
f
j
f
-
y
-
-
-
-
-
c
-
v
t
f
-
-
-
a
-
i
-
r
-
e
-
s
-
n
-
p
k
r
-
-
c
-
-
i
q
r
-
r
-
y
-
-
-
j
-
l
-
r
-
a
f
-
-
w
-
n
-
s
g
x
-
f
-
-
-
e
-
t
-
b
-
p
-
i
-
v
m
-
-
b
-
r
-
g
-
q
-
y
-
h
-
y
-
t
g
-
-
m
-
n
-
a
-
q
g
-
-
j
p
-
-
x
s
-
-
h
-
p
-
u
-
a
-
n
-
t
n
b
-
-
-
w
-
x
-
c
-
o
-
a
-
p
k
k
-
-
-
u
u
-
-
q
j
h
i
w
-
-
p
-
-
s
-
p
-
-
j
-
-
l
-
c
s
u
-
-
-
i
y
-
c
i
-
-
-
t
u
l
q
a
m
-
-
-
-
-
v
-
-
i
-
k
-
w
-
l
v
-
-
h
-
y
-
m
b
-
-
h
l
g
x
d
-
-
-
-
-
t
-
n
-
y
-
y
b
-
-
b
-
o
-
d
-
d
w
-
-
p
-
v
-
n
-
c
-
n
-
m
-
e
-
r
r
-
b
-
-
q
-
b
d
-
-
w
-
r
-
c
-
b
-
o
c
u
-
-
-
g
-
q
-
s
l
-
e
-
g
-
c
y
b
h
-
u
o
-
-
-
-
f
-
l
-
-
v
-
-
t
-
i
-
m
-
p
-
x
s
-
a
-
-
s
-
p
-
y
h
v
d
-
-
r
-
c
-
-
f
-
-
v
-
d
-
h
-
j
t
v
q
-
d
-
-
-
-
j
-
f
-
u
m
-
-
n
-
x
-
f
a
o
-
f
u
o
-
o
-
d
-
-
-
e
-
t
-
-
-
e
-
u
-
a
-
d
-
r
p
o
-
y
-
q
-
-
-
v
d
x
x
-
-
-
-
b
g
-
-
w
c
k
u
h
-
-
-
v
q
-
k
-
-
-
-
c
-
g
-
y
v
v
-
-
g
g
-
b
s
-
-
-
-
p
-
y
e
-
n
m
-
-
-
h
-
k
p
m
-
-
-
e
-
b
-
e
l
-
c
f
-
-
-
q
-
g
d
-
l
-
-
n
c
-
n
w
-
-
-
a
b
-
-
j
s
-
-
p
-
b
n
-
a
-
x
j
a
-
-
a
n
-
-
-
f
-
-
b
-
y
-
e
-
q
y
v
-
k
k
-
-
-
-
p
-
t
-
r
-
a
-
x
a
o
-
-
-
h
m
-
-
a
o
-
-
b
-
o
-
i
-
e
-
u
n
-
-
h
-
i
e
c
-
t
m
-
f
-
-
-
d
j
-
l
a
w
-
-
-
t
-
f
o
s
-
-
-
b
-
-
-
j
-
u
g
-
-
b
b
l
j
-
-
-
-
y
m
-
d
-
e
j
-
-
-
k
-
q
-
e
-
m
-
k
-
j
-
y
-
o
d
-
n
-
d
i
-
c
-
-
-
y
-
q
-
f
t
-
-
w
y
-
-
j
v
-
-
f
x
-
-
f
-
h
-
f
-
c
b
-
-
l
-
p
-
h
f
-
-
u
-
r
h
-
-
v
-
b
-
d
-
e
-
p
-
f
a
u
-
-
-
o
i
-
-
e
l
-
-
p
w
-
-
i
-
l
-
o
v
-
-
p
-
r
i
-
-
s
-
w
-
c
-
u
-
v
f
t
d
k
-
-
-
-
-
l
-
b
v
-
-
k
-
v
n
-
-
r
-
i
-
a
-
n
b
d
-
m
-
-
-
u
-
w
-
u
-
b
-
y
-
r
w
h
p
o
a
-
l
u
-
o
-
-
t
-
-
-
-
-
-
k
-
y
-
m
t
d
u
-
-
-
-
u
q
-
-
o
x
-
-
y
q
g
y
-
-
-
-
o
-
f
-
b
f
-
-
u
-
h
-
m
q
-
g
-
-
d
m
-
-
a
-
w
l
o
g
-
-
-
-
t
-
f
-
q
-
b
-
u
-
c
-
j
-
q
f
-
y
-
a
-
o
-
-
a
-
j
-
g
-
m
j
-
b
-
y
s
-
f
-
o
d
-
v
-
d
k
-
-
-
-
f
-
-
m
r
-
-
w
-
h
-
n
-
f
m
-
j
i
-
l
-
-
-
c
-
e
n
-
-
a
-
u
-
y
-
e
-
n
b
q
-
h
-
-
-
o
-
u
-
a
f
-
-
x
s
-
-
j
q
r
-
-
-
v
o
-
-
o
u
-
-
k
h
-
-
x
-
r
-
c
-
p
m
r
l
i
-
-
-
x
-
-
l
n
-
-
-
v
-
j
x
-
-
t
-
g
k
-
-
c
g
-
q
-
-
p
-
c
-
v
-
a
-
a
-
a
-
b
-
f
-
m
-
k
-
v
-
v
-
f
t
-
-
s
o
-
-
h
t
-
-
e
j
-
-
m
-
p
-
n
i
l
-
-
-
p
j
-
-
g
-
u
d
j
-
-
-
x
o
c
-
-
g
-
a
-
-
x
-
d
t
s
e
f
d
-
-
t
i
-
k
-
-
-
-
-
-
n
-
r
-
p
-
o
-
v
t
m
-
-
k
f
u
n
-
-
-
-
-
w
-
a
o
d
r
-
d
q
-
-
s
s
a
-
x
g
-
-
-
n
v
-
-
-
-
-
-
x
-
l
-
q
e
-
j
-
-
q
-
h
u
-
-
f
-
x
-
g
-
l
r
-
l
-
-
c
h
-
d
u
-
i
f
v
l
-
e
a
m
a
-
p
-
-
-
-
-
-
-
-
-
s
-
p
l
-
t
-
e
w
l
f
-
-
-
o
-
x
-
-
p
q
-
-
-
l
-
m
-
y
b
-
l
-
m
-
-
u
-
s
-
w
f
w
-
d
o
-
-
n
-
-
-
t
-
t
-
w
l
-
-
s
-
y
y
-
-
v
-
l
-
b
-
y
-
l
-
w
-
x
f
j
-
p
-
g
-
-
-
e
a
-
i
-
f
m
-
-
-
t
-
c
-
w
-
v
c
-
-
r
-
s
-
y
-
d
-
k
-
j
a
p
-
-
-
o
-
w
-
l
p
-
-
b
-
f
-
e
-
f
m
-
-
g
i
-
d
-
h
-
-
s
-
p
-
e
-
u
-
h
-
x
-
a
-
w
-
m
a
a
-
j
-
-
n
-
a
e
i
-
-
-
-
c
-
g
-
b
-
v
h
-
-
o
f
p
-
-
-
a
-
h
-
w
g
-
f
a
-
v
w
f
-
a
-
j
-
-
-
t
-
-
-
i
a
-
-
f
-
c
-
h
-
l
-
h
i
y
-
-
o
-
-
s
-
u
-
l
-
n
-
f
n
-
-
j
-
j
-
t
-
h
v
-
-
k
-
b
p
-
-
r
n
m
k
b
-
-
-
o
-
x
-
-
-
s
m
-
m
-
e
f
i
-
-
-
-
q
-
q
-
j
-
a
c
-
-
w
-
m
-
y
-
q
-
j
-
x
-
i
y
-
-
p
t
-
-
s
f
-
-
u
-
i
-
u
v
-
-
x
w
p
-
e
-
j
q
-
-
-
-
p
-
i
-
v
g
l
o
-
-
-
-
t
-
c
-
i
g
x
-
-
-
k
-
t
-
k
-
a
f
t
y
-
-
-
-
p
-
g
p
-
r
l
k
a
-
-
e
b
-
-
k
-
g
-
h
-
-
-
-
i
-
v
-
g
-
d
-
f
-
y
-
a
-
k
-
n
h
-
l
-
-
c
-
k
-
q
m
x
-
-
-
f
-
h
-
x
c
-
-
x
x
-
-
c
n
-
-
b
-
x
-
j
c
n
x
c
-
i
-
-
w
-
m
e
g
-
b
-
k
-
e
m
-
-
-
k
j
-
-
-
-
v
i
-
-
-
f
-
-
s
-
k
n
-
b
-
-
g
d
-
i
-
o
-
-
r
-
e
-
d
-
s
-
w
-
u
-
p
m
-
-
c
-
x
v
-
j
o
-
-
-
y
o
-
-
t
c
-
-
r
b
k
-
q
l
-
-
l
f
o
-
-
-
s
-
-
j
j
v
-
-
-
-
k
-
h
s
-
-
b
-
d
-
s
-
r
-
s
y
p
x
-
-
-
-
o
-
m
-
q
d
d
n
-
-
-
-
e
m
i
-
c
-
t
-
u
w
y
-
i
f
-
-
g
s
c
p
-
-
x
u
-
-
-
s
a
a
w
a
-
o
j
-
t
-
-
-
-
-
-
-
n
-
e
o
-
a
v
-
f
-
u
h
-
-
-
h
m
-
-
-
-
-
-
-
g
s
-
-
f
-
u
o
-
f
b
-
-
-
n
-
h
-
x
-
x
-
j
-
d
c
e
-
-
c
-
p
-
o
l
e
w
-
-
-
-
-
a
x
a
-
-
-
v
-
p
-
y
-
f
k
j
g
-
-
p
-
-
-
i
m
-
-
b
h
j
-
l
b
-
c
-
f
-
-
-
d
-
-
x
-
b
-
w
-
l
-
y
o
-
o
-
-
u
-
j
-
i
d
-
-
p
-
m
-
e
-
b
i
w
-
-
-
r
-
s
-
j
-
y
-
c
-
q
w
-
-
f
-
k
o
y
c
-
-
o
-
-
-
l
-
p
-
p
-
x
-
p
-
f
-
n
-
r
f
-
-
w
-
o
-
s
c
-
-
t
-
p
y
-
-
c
-
j
-
s
n
-
-
r
-
y
-
j
-
u
-
g
-
p
-
d
y
-
-
r
-
y
-
w
-
x
-
u
-
f
-
t
c
u
-
-
-
m
-
m
-
r
-
r
i
-
-
h
u
-
l
-
-
p
-
e
-
r
-
a
-
n
d
d
-
-
-
t
q
-
-
h
-
d
f
-
c
w
-
-
-
a
-
s
-
v
-
a
m
-
y
-
s
-
m
-
h
-
s
-
-
f
t
-
i
-
-
m
-
o
-
p
-
t
e
-
g
-
q
-
l
c
-
c
f
-
-
g
f
k
-
-
-
-
q
-
y
-
c
-
-
u
w
-
-
m
q
-
-
n
-
w
-
p
-
g
-
y
w
s
h
o
i
-
n
-
-
g
-
t
o
-
p
-
-
-
-
j
y
-
-
j
j
-
-
-
-
x
-
n
-
f
-
x
-
f
w
c
-
-
-
s
m
-
v
l
-
-
y
l
r
j
t
-
-
-
p
-
-
-
f
-
-
u
-
l
-
b
-
s
-
q
-
b
-
v
-
q
-
o
-
p
l
-
-
o
-
h
-
k
-
y
-
p
-
e
-
l
-
e
-
m
f
-
-
a
q
x
-
a
-
e
-
q
-
-
-
a
-
c
-
q
-
w
-
f
-
i
g
f
x
-
-
m
-
-
-
p
-
y
p
-
k
-
-
b
-
w
p
j
-
-
c
-
-
j
e
-
-
h
-
c
j
w
o
k
-
-
-
-
-
d
-
y
v
-
s
-
-
j
g
-
f
-
v
-
-
x
-
g
-
a
-
i
-
a
-
p
-
g
-
f
-
j
-
i
i
v
b
-
a
-
g
h
l
c
-
-
a
o
c
-
l
-
a
-
m
-
-
u
x
-
f
-
a
-
-
c
-
-
-
r
y
-
-
o
-
t
b
-
a
-
-
-
-
-
-
p
r
-
-
d
-
c
-
s
-
p
-
t
-
j
-
o
-
c
-
c
-
s
c
c
-
e
-
-
-
s
-
y
-
x
s
y
-
-
-
l
-
k
-
o
-
m
b
-
-
g
-
o
-
l
-
l
-
e
l
a
a
y
r
-
-
p
-
-
c
-
-
-
f
-
r
t
t
-
-
h
-
-
-
y
-
m
f
-
-
l
-
r
j
-
m
d
-
-
l
-
-
b
-
x
-
d
y
-
g
-
-
e
-
y
-
n
-
q
-
h
-
k
c
-
f
u
-
-
-
i
t
-
-
e
-
i
-
p
-
w
q
-
-
e
w
-
-
l
-
v
i
d
x
-
n
o
f
-
c
-
h
-
-
p
-
-
-
e
-
y
-
n
-
g
-
l
e
-
g
f
-
-
i
-
y
-
d
-
-
l
-
-
f
-
-
j
-
s
v
b
-
-
q
-
-
p
-
v
-
t
-
f
-
y
-
h
-
s
d
-
-
k
-
r
-
y
-
b
x
-
-
y
-
u
-
h
-
x
-
f
o
-
-
m
-
q
h
-
k
-
k
-
-
j
-
o
-
y
-
w
-
v
-
w
-
k
-
u
-
l
-
p
-
x
i
-
k
a
-
-
-
o
y
-
-
q
-
i
-
q
-
l
-
g
u
-
-
k
-
h
d
y
-
-
-
g
-
f
-
j
o
k
-
-
-
r
-
j
-
f
-
f
-
q
-
g
b
-
-
j
d
p
-
b
f
o
-
-
-
-
-
k
-
s
c
-
k
-
-
l
-
v
-
q
-
x
-
s
-
w
-
o
s
-
h
-
n
i
-
d
-
n
-
-
v
-
-
p
-
h
-
f
-
e
-
x
-
r
-
n
-
p
-
p
-
j
-
q
-
d
-
o
-
v
-
b
-
y
-
i
-
v
-
u
-
h
n
-
-
h
-
m
u
x
-
-
-
i
-
t
t
a
-
-
-
m
-
y
f
-
v
-
o
-
-
m
-
y
e
-
j
f
-
-
-
k
-
y
x
-
-
w
-
v
-
j
n
-
i
-
l
-
-
d
-
u
-
h
o
-
-
u
v
-
-
p
g
-
h
-
s
-
-
d
-
s
-
o
u
-
-
m
-
k
m
k
-
-
-
g
-
u
-
g
-
k
-
l
-
a
k
-
-
d
-
s
w
-
-
d
e
-
a
-
-
e
-
j
e
e
-
-
-
n
-
v
w
t
v
-
j
-
-
-
-
u
-
t
e
-
-
d
l
j
-
-
l
p
-
-
-
d
-
a
j
-
x
-
-
i
-
s
p
-
k
-
-
c
-
g
-
g
-
p
-
m
-
o
-
d
-
x
-
d
-
v
-
h
-
w
-
d
-
v
-
g
-
m
-
y
-
o
-
f
-
e
w
a
-
-
-
f
m
-
p
-
w
g
o
q
s
n
-
-
-
c
m
-
-
r
r
-
r
-
-
-
-
r
-
v
-
-
m
-
n
-
-
s
t
-
-
y
-
s
g
y
-
y
-
-
-
b
-
o
-
g
-
x
-
v
f
f
r
-
m
-
-
-
j
-
-
l
o
-
-
b
-
d
-
r
y
-
g
r
u
-
-
r
-
i
-
-
-
b
r
-
y
-
p
t
o
-
-
q
-
-
-
e
-
d
n
-
-
q
r
-
-
n
-
r
-
p
-
a
-
d
c
-
v
-
-
r
-
q
-
k
d
h
d
-
-
-
-
y
-
o
q
-
-
x
-
f
-
g
-
w
-
w
-
s
o
-
w
j
-
-
-
v
-
c
a
-
f
-
-
x
d
-
-
p
o
f
-
-
-
r
-
m
e
-
p
-
-
m
-
h
-
j
i
-
-
x
x
-
f
-
-
c
-
w
-
s
p
-
j
i
-
-
-
i
p
-
-
l
-
o
-
x
-
s
-
b
-
n
p
b
-
p
g
-
-
-
r
-
-
l
-
p
-
b
c
-
u
-
u
-
f
-
-
o
s
-
-
f
-
t
-
p
-
m
b
-
-
v
j
-
-
e
-
o
v
-
w
-
-
w
-
o
d
u
-
-
-
v
-
c
-
t
-
u
-
e
k
v
-
g
-
-
-
t
b
-
-
l
-
k
e
c
y
-
l
g
-
-
h
l
-
-
q
-
v
r
-
-
o
-
e
-
-
-
-
k
-
h
k
-
-
r
m
-
-
e
-
j
-
b
-
s
f
-
-
f
-
c
-
r
k
-
-
x
-
u
-
x
w
-
-
u
f
y
-
v
-
-
-
g
-
t
m
a
-
v
f
r
x
-
-
o
-
-
-
-
e
-
-
y
-
e
-
t
-
r
i
-
-
l
q
-
-
s
-
d
m
k
u
l
b
s
k
-
c
y
q
-
u
-
-
-
-
-
-
-
-
-
i
u
-
e
-
-
l
s
b
-
-
l
-
-
y
-
m
a
f
-
-
-
w
l
-
-
-
v
-
n
-
h
-
o
a
-
t
n
-
m
-
-
-
i
-
n
u
-
-
x
-
g
o
r
-
-
-
d
-
j
t
-
b
-
-
k
-
o
-
a
-
v
h
-
-
c
-
m
y
t
-
m
x
-
-
d
-
-
j
m
-
h
-
j
y
-
-
-
-
n
-
k
o
-
-
h
u
-
-
i
-
n
-
p
-
t
-
m
o
f
-
k
x
y
-
j
x
-
-
-
-
-
-
s
-
q
n
-
-
n
-
n
-
s
-
f
-
e
-
n
-
t
-
p
n
-
-
k
-
x
v
-
w
-
-
w
-
i
-
o
-
w
-
g
j
-
-
e
l
-
q
-
q
-
-
e
k
-
-
h
-
j
-
r
-
d
s
-
w
-
b
-
-
v
-
q
-
o
v
-
-
p
k
s
f
c
w
-
-
i
-
-
-
-
y
o
d
-
x
-
-
-
k
-
i
j
-
-
-
j
-
h
c
-
j
-
-
q
-
w
-
r
-
m
-
p
-
j
-
q
x
-
l
f
-
-
-
g
-
j
-
a
t
-
-
l
-
o
-
o
-
c
d
-
-
l
-
y
-
x
-
a
q
-
-
r
-
t
-
k
-
g
-
l
-
n
-
u
-
m
-
f
-
q
-
k
p
l
-
-
-
i
-
h
d
-
-
o
-
s
n
-
-
b
-
q
-
e
-
d
r
x
-
i
-
-
-
v
-
r
-
l
-
l
c
-
-
l
v
-
-
g
n
k
x
-
c
-
-
-
-
u
r
-
-
b
-
h
e
m
d
-
j
d
-
-
-
-
-
u
-
g
e
h
x
-
n
-
-
m
v
-
r
-
-
-
-
w
-
w
-
u
n
-
-
b
-
q
s
-
d
v
l
v
-
b
-
u
q
-
-
-
-
-
-
d
-
m
-
f
-
i
-
j
-
v
w
-
-
j
-
n
x
-
-
p
i
-
-
d
-
o
g
-
-
b
-
m
-
i
-
b
-
g
-
y
-
c
-
h
-
m
c
y
-
-
-
f
d
m
-
m
x
-
t
-
g
-
-
a
-
-
-
a
t
-
-
f
e
g
-
-
-
l
w
-
k
f
-
-
-
s
-
h
-
o
-
i
-
o
-
m
j
-
-
j
-
b
v
-
-
m
-
y
-
x
-
i
e
-
-
f
-
f
-
o
-
t
-
q
-
r
-
n
q
-
-
y
f
-
-
e
-
i
-
e
-
s
p
-
-
p
-
l
-
v
b
q
t
-
-
o
e
-
-
-
-
o
s
-
-
r
-
g
-
n
-
p
-
l
p
u
s
-
h
-
-
-
-
v
s
-
-
g
-
f
-
e
-
s
-
v
-
i
-
k
-
n
-
u
-
f
-
t
-
f
-
g
-
x
-
h
-
r
-
a
-
l
-
e
-
n
-
b
u
-
-
y
j
v
-
-
-
d
s
-
-
h
j
-
-
t
q
-
n
-
-
k
-
l
-
v
-
n
-
n
m
-
-
q
-
s
-
j
-
e
-
v
g
d
-
i
-
i
k
y
-
-
-
-
r
-
-
f
-
l
-
t
b
-
-
u
b
u
-
-
i
u
-
-
-
e
i
-
-
p
-
r
l
y
d
-
-
-
u
-
-
n
k
-
-
y
l
t
-
-
-
k
-
b
-
t
j
-
-
o
-
s
m
-
-
l
-
r
i
o
-
b
-
u
-
-
-
q
-
h
-
b
r
q
-
-
-
l
n
-
-
i
-
f
-
u
f
-
-
u
v
-
p
-
-
o
r
f
-
-
-
q
-
e
f
-
e
-
-
q
j
a
t
-
-
c
-
-
-
b
-
g
-
e
-
o
-
t
-
s
-
c
f
-
-
d
-
r
p
-
-
o
p
y
e
h
-
-
q
-
j
-
t
-
-
-
p
x
-
-
-
d
t
p
-
-
-
c
-
t
t
-
-
p
-
f
l
-
-
x
-
f
-
a
-
x
-
b
-
f
-
e
-
g
e
-
v
-
m
-
-
k
-
p
-
l
-
v
-
t
-
t
-
y
x
-
-
b
i
g
w
v
-
-
-
-
t
-
-
o
-
x
-
f
k
u
c
-
-
-
-
e
-
m
-
c
-
c
-
f
-
k
-
d
a
l
-
m
-
g
-
-
-
a
-
w
b
-
-
r
-
f
-
m
g
y
-
-
d
-
-
b
-
e
-
w
l
-
-
g
-
a
-
j
-
s
y
-
-
s
t
e
r
-
-
-
-
l
c
-
-
n
-
v
i
-
p
-
-
c
-
r
j
y
-
w
-
-
-
p
-
o
-
s
-
g
-
t
h
-
a
d
m
q
-
-
-
-
-
y
-
n
-
a
-
r
k
-
-
j
-
h
-
y
-
h
-
c
a
m
g
-
u
-
-
k
p
-
-
-
-
l
s
-
-
x
-
c
-
h
l
-
q
-
x
y
c
a
-
-
-
-
-
i
-
s
-
i
t
y
-
b
-
-
p
-
-
p
-
b
-
v
-
a
-
t
-
y
i
-
-
o
-
h
b
c
-
-
-
f
b
-
-
a
w
-
w
-
-
t
-
l
-
v
-
r
-
e
-
j
-
l
-
v
g
-
-
r
-
f
-
n
-
m
-
y
-
j
-
s
-
n
t
-
-
o
s
k
-
g
m
-
-
-
-
x
i
n
-
r
u
-
w
l
t
-
-
-
-
-
m
q
-
x
-
-
-
j
-
c
k
h
-
-
-
d
-
k
-
w
p
x
-
a
-
c
m
-
x
-
-
-
c
-
q
u
o
-
f
-
-
-
-
o
-
x
-
l
l
-
-
s
-
r
-
a
h
-
l
-
-
w
-
e
c
-
-
g
-
q
-
j
a
-
h
-
n
m
-
u
-
m
-
-
-
t
-
g
-
r
-
u
-
u
-
e
w
-
-
b
j
-
-
w
-
o
l
-
o
-
t
-
-
b
-
k
-
f
m
-
-
r
-
f
-
b
-
n
-
w
-
n
-
m
-
x
-
y
-
f
-
m
-
j
-
h
-
t
-
k
-
e
-
p
n
-
b
-
-
q
-
y
b
-
h
-
w
-
-
g
f
h
-
j
-
-
r
-
-
q
-
i
-
v
-
r
-
r
-
b
-
o
-
t
-
b
o
-
e
-
-
r
-
h
-
u
r
-
x
h
-
-
-
p
-
e
-
a
-
f
k
-
-
e
-
o
e
-
-
j
p
g
-
-
-
u
-
e
-
c
-
s
g
-
-
s
-
e
-
b
-
v
-
j
l
a
-
-
g
c
h
-
o
-
-
-
-
s
-
n
-
p
-
r
-
x
-
v
-
d
w
x
-
-
-
k
h
-
x
-
d
-
-
o
-
o
e
-
-
a
-
x
p
-
n
-
-
e
-
q
-
m
-
d
-
h
p
t
-
l
g
v
-
-
c
-
-
-
-
k
-
o
y
-
-
i
-
n
g
-
-
i
-
m
-
n
d
-
w
-
-
a
o
e
-
-
p
-
-
r
-
l
-
a
-
c
-
d
-
j
-
b
o
-
-
w
-
o
a
-
-
l
-
w
-
b
-
f
d
-
s
r
u
k
-
-
-
-
x
e
-
a
-
x
v
-
-
-
-
j
c
-
-
v
-
x
g
l
-
-
-
d
-
t
-
e
-
j
-
x
-
t
-
s
-
d
d
-
-
o
-
l
-
m
e
-
-
x
-
r
-
p
v
-
-
u
-
d
o
-
-
v
-
f
-
w
-
j
-
s
m
h
-
-
-
g
-
k
-
t
-
t
b
-
-
l
q
n
-
-
b
-
-
w
v
-
a
-
k
m
-
u
-
-
t
-
u
-
-
d
-
a
-
q
y
g
o
-
-
h
i
-
-
-
-
k
u
q
c
c
a
-
-
-
-
-
-
u
v
-
-
v
-
s
n
-
l
-
-
u
-
v
m
-
-
p
n
-
r
-
-
s
-
j
o
-
-
e
-
r
-
y
o
-
h
o
-
-
-
d
-
j
-
u
-
q
x
-
r
r
j
-
j
q
-
-
-
-
-
t
g
-
-
c
-
d
m
-
-
p
-
r
-
d
g
w
-
y
-
-
-
p
-
b
-
p
-
v
s
j
-
-
-
b
-
t
r
-
-
l
-
t
q
-
r
-
v
a
h
-
-
-
-
x
-
j
-
m
u
-
x
-
-
p
-
v
-
q
-
g
c
-
-
p
-
x
-
l
m
-
-
l
-
f
-
j
-
f
-
h
-
s
-
f
-
w
-
s
v
-
r
-
-
l
w
v
-
-
-
m
-
v
-
u
p
-
-
p
-
g
g
-
-
x
p
v
f
-
-
d
p
-
-
-
-
k
-
b
-
o
y
-
-
w
-
s
-
a
d
l
g
v
-
-
f
n
-
-
-
x
-
-
-
v
-
x
s
d
-
e
-
-
s
-
m
-
-
y
-
w
-
g
-
l
-
i
r
e
s
v
-
a
y
-
r
f
-
-
-
-
i
o
-
-
-
-
-
e
-
s
-
k
-
b
-
q
-
g
-
b
r
p
-
c
-
-
p
t
o
-
o
-
-
-
-
e
-
d
-
t
-
s
j
-
-
g
a
-
-
i
-
m
-
e
-
v
-
l
-
c
-
q
-
x
e
-
o
-
t
-
-
j
-
f
-
k
r
w
-
-
m
m
-
-
-
u
-
w
d
-
v
-
m
-
u
-
-
b
o
x
-
t
f
f
i
-
-
m
-
k
-
t
i
s
s
-
-
-
-
-
-
s
t
-
-
e
o
-
-
-
t
-
-
a
r
-
y
-
-
o
-
n
-
w
-
s
m
k
-
-
-
u
-
p
-
a
-
f
-
x
-
n
-
x
-
p
-
k
n
y
d
y
-
q
-
-
-
e
-
-
x
-
-
k
-
n
i
-
-
d
-
b
e
y
y
-
-
-
h
-
v
-
-
s
-
d
-
k
-
g
-
p
y
-
-
b
u
g
o
-
-
-
-
w
-
f
m
-
y
m
-
-
-
k
c
-
p
b
-
-
v
-
-
r
q
f
f
-
r
i
-
-
-
c
l
-
-
-
-
m
o
-
-
c
-
l
-
p
r
l
-
-
-
a
-
l
u
-
-
y
-
c
-
w
-
v
-
l
-
d
-
d
-
n
-
p
-
q
-
b
n
-
-
k
j
-
y
q
-
-
-
a
-
v
-
a
-
l
-
h
b
-
-
j
-
q
-
v
-
k
-
m
l
q
x
-
-
h
-
-
-
a
-
m
-
i
-
i
-
o
y
-
-
e
i
-
c
-
-
f
-
f
-
f
h
-
a
-
h
e
-
-
-
w
-
v
t
-
-
m
-
b
-
a
-
e
-
r
-
a
-
i
-
w
i
-
-
o
f
-
-
g
-
g
-
d
q
-
-
t
-
r
-
u
-
o
-
m
-
q
o
-
-
m
-
h
d
d
-
r
q
-
u
u
-
-
-
-
-
k
-
h
u
-
-
a
-
m
-
a
i
-
e
-
-
n
f
u
-
-
q
q
-
e
l
-
-
-
-
a
-
k
-
m
i
e
e
-
-
t
-
d
-
-
-
l
x
-
-
y
-
h
-
m
q
-
y
l
-
-
-
f
l
-
-
m
-
w
t
-
-
c
-
l
g
k
-
-
-
t
-
f
-
r
-
b
o
a
s
m
-
q
k
p
-
-
-
k
p
-
-
i
-
-
-
-
-
n
-
p
-
p
-
j
u
-
-
h
-
w
-
o
-
k
-
l
-
g
-
s
-
e
-
c
e
-
-
r
-
s
d
-
u
-
-
h
-
s
-
w
-
g
-
m
-
v
-
p
-
h
-
w
-
f
-
o
y
t
n
v
-
-
f
b
-
-
x
-
-
-
-
b
-
h
-
k
-
t
t
-
-
c
l
-
-
o
-
e
-
e
-
n
-
c
s
y
-
-
-
n
v
s
-
-
-
o
v
i
-
-
l
-
-
l
-
e
-
u
-
n
o
-
c
-
i
k
-
-
-
c
c
d
-
w
p
-
-
-
l
-
b
-
-
l
-
o
-
f
c
-
-
u
-
x
-
j
-
v
-
p
j
-
-
q
-
n
-
a
-
q
-
v
x
n
-
-
-
b
h
-
k
-
-
r
-
h
w
-
f
e
-
u
-
-
-
a
o
-
-
q
-
s
h
c
-
-
-
e
-
x
-
k
-
x
-
h
-
u
-
m
s
f
w
r
a
-
s
y
l
-
-
t
-
e
-
-
-
-
y
-
-
-
-
x
-
c
-
n
h
o
-
-
d
i
g
-
-
-
-
y
t
-
-
t
h
-
j
p
s
-
j
a
-
-
-
p
-
-
-
h
j
w
v
-
-
-
r
r
-
g
-
-
r
-
-
i
-
y
-
o
-
k
-
k
o
s
v
a
c
-
-
-
-
-
-
d
-
g
-
o
-
s
-
k
-
g
-
m
-
k
-
j
-
i
-
l
q
c
-
-
-
n
-
u
o
-
-
v
-
y
s
-
e
-
-
c
-
f
-
r
-
o
-
a
k
-
g
-
-
e
p
e
-
r
-
-
-
y
-
w
-
e
m
-
g
f
-
l
-
h
-
-
-
p
-
d
-
a
e
-
-
l
-
u
-
r
-
u
-
l
-
u
y
p
-
-
-
p
-
o
y
r
-
t
-
-
-
t
b
-
c
n
-
-
-
t
-
b
u
-
-
q
-
o
-
f
x
-
-
l
-
q
-
s
-
t
x
-
o
-
-
j
-
a
-
p
-
l
n
f
-
o
j
-
-
-
-
v
-
v
-
c
-
s
-
j
-
a
-
q
d
g
x
m
-
c
h
f
g
i
-
f
-
e
n
l
g
-
r
c
-
-
a
-
y
-
-
u
-
-
-
-
-
-
-
-
-
v
b
-
-
h
-
-
e
-
-
l
-
o
-
s
r
-
r
-
b
b
-
-
-
n
q
-
-
h
m
d
-
-
g
c
-
-
-
e
s
-
-
m
-
f
e
c
-
-
h
y
-
o
-
-
m
-
-
a
-
u
-
w
-
m
-
d
-
e
-
d
s
r
-
-
l
-
-
b
-
a
n
h
o
-
-
-
f
-
-
u
-
a
-
t
-
l
y
-
j
-
-
g
-
t
-
x
-
c
-
h
-
n
-
v
-
x
j
-
w
q
k
-
-
-
w
q
-
k
-
-
-
f
-
u
-
s
-
y
-
p
-
h
-
e
-
i
l
-
-
a
-
c
-
l
-
g
j
x
-
-
-
l
g
s
y
-
-
-
-
x
-
u
f
-
-
o
-
k
h
r
c
k
-
-
-
-
-
q
-
a
-
n
-
k
-
o
v
-
-
s
-
q
-
i
x
-
-
p
-
l
-
e
-
x
-
b
-
c
-
v
-
k
-
u
-
m
b
r
-
q
-
-
s
x
-
-
-
g
m
-
-
s
-
x
-
b
-
j
-
g
-
r
-
k
-
p
m
-
-
s
n
-
u
-
-
q
-
o
q
-
-
c
-
j
x
-
n
d
-
-
j
-
j
x
-
-
b
-
-
j
-
r
-
i
-
n
q
-
-
v
e
-
j
a
-
i
u
-
-
-
-
i
-
t
w
s
-
-
-
d
-
q
-
d
-
h
c
-
-
q
-
l
-
h
-
u
-
y
-
y
-
i
-
l
-
c
x
-
w
-
-
g
y
-
-
n
-
g
-
h
-
v
v
n
-
e
-
j
-
-
-
x
e
t
-
g
x
-
-
r
-
g
b
u
-
-
-
i
-
e
-
-
-
h
-
t
-
v
-
n
-
k
-
i
-
u
-
n
-
n
-
l
-
i
t
c
a
-
-
-
-
h
-
s
m
-
-
o
-
g
-
y
-
o
-
x
-
e
p
-
o
-
c
p
u
y
-
x
-
-
-
s
i
n
-
t
-
t
n
-
-
-
e
-
-
-
-
x
u
r
f
-
-
-
c
-
b
b
-
i
-
a
-
-
-
e
-
p
u
-
-
e
-
t
-
y
-
u
-
b
e
p
-
-
-
x
-
k
x
-
w
q
-
-
-
w
-
w
-
r
-
a
-
o
-
t
-
b
s
-
-
u
l
-
-
c
-
d
-
x
n
-
-
x
f
-
-
w
k
-
c
k
-
l
-
b
-
-
-
x
-
g
m
k
-
a
-
-
r
-
-
k
-
c
n
-
-
x
r
-
-
i
h
-
-
q
m
-
v
-
s
-
-
i
-
w
h
q
i
-
r
-
-
-
-
m
-
d
-
n
-
x
t
a
a
-
-
-
m
-
-
j
-
n
b
-
-
d
m
-
-
v
-
y
-
y
-
u
-
m
-
b
-
o
d
j
-
-
-
q
-
b
-
h
-
u
s
-
a
f
-
-
d
-
s
-
q
-
k
t
-
-
-
n
-
w
p
-
-
r
-
c
c
-
k
a
i
-
-
-
-
b
-
m
-
p
x
b
q
-
n
-
x
-
-
q
-
a
-
-
y
-
y
-
-
i
-
r
-
w
-
v
t
r
y
-
j
-
-
-
-
k
-
m
-
o
-
t
a
v
-
-
-
k
-
u
p
r
-
a
v
-
-
-
g
-
-
v
n
-
-
j
l
-
y
-
-
p
s
-
j
d
-
-
w
v
n
-
-
-
-
l
-
o
-
f
y
j
-
-
r
-
-
l
-
w
w
-
f
s
-
-
n
s
-
-
-
r
x
u
-
u
-
-
-
e
i
h
-
k
-
-
-
l
-
a
-
p
-
m
-
l
-
y
-
b
-
y
-
b
-
b
-
e
-
e
e
i
t
-
p
-
-
-
-
d
-
e
-
u
p
i
o
l
-
-
u
-
-
l
g
-
u
y
-
-
-
-
-
m
n
-
n
-
-
n
-
l
-
e
-
r
-
p
m
c
b
-
-
-
w
w
b
-
-
a
-
q
-
w
j
f
-
-
-
-
-
w
-
l
-
u
u
-
c
b
-
-
u
-
l
h
-
-
t
-
-
s
-
b
-
m
-
d
-
b
w
-
-
d
-
a
-
h
-
q
-
s
-
y
-
d
-
c
-
u
p
w
-
-
-
o
-
c
-
v
-
w
-
k
e
w
-
-
x
e
q
p
-
-
c
-
-
-
-
y
-
m
-
q
-
g
x
-
f
-
q
-
-
m
-
b
-
j
-
p
-
g
o
n
-
-
-
v
-
k
-
v
i
-
-
o
-
l
-
l
-
j
-
h
-
d
-
p
j
-
l
-
-
b
-
l
u
-
-
a
-
f
-
l
-
k
-
j
-
r
-
l
s
l
w
n
-
-
-
w
-
-
b
-
-
m
t
g
-
l
a
-
-
-
-
p
-
n
n
v
-
f
-
-
c
-
-
a
-
u
-
b
h
-
-
v
-
a
-
q
-
a
-
v
c
-
-
v
-
i
-
b
m
e
-
a
-
-
y
s
-
m
-
x
-
o
o
-
-
-
-
o
x
b
-
-
f
-
-
f
-
x
-
h
-
l
e
p
-
-
-
m
-
j
-
j
-
v
-
r
-
s
-
i
y
-
-
q
-
a
k
-
-
v
-
s
o
f
-
c
-
-
-
y
-
j
-
a
-
v
-
q
-
b
-
y
-
f
q
w
x
-
-
m
-
-
-
a
-
y
-
n
-
c
a
-
n
-
d
-
i
-
-
q
a
e
f
b
-
-
a
c
-
e
l
-
-
-
-
-
-
f
v
-
-
g
t
-
-
t
-
y
o
-
u
q
-
-
-
x
-
j
r
-
l
q
n
-
-
-
-
v
-
o
-
q
h
-
-
v
b
-
-
m
i
-
-
e
c
-
-
x
c
-
-
r
-
w
-
t
-
v
-
l
w
-
-
p
-
u
m
-
-
i
a
-
p
a
c
-
b
l
x
-
n
-
-
q
c
-
d
p
-
-
-
-
-
-
-
b
-
d
-
x
e
-
-
i
j
-
-
a
r
-
g
-
x
c
-
k
f
g
f
-
-
r
-
-
-
-
b
y
-
e
o
-
j
a
w
h
c
-
-
f
s
p
-
x
r
-
l
-
-
-
-
j
-
g
-
-
-
p
m
x
-
-
-
-
-
-
-
w
-
i
-
b
-
q
-
j
-
o
-
f
-
e
-
w
-
g
-
u
-
w
-
b
d
-
a
m
v
-
-
-
-
d
-
r
-
o
o
-
-
p
-
k
-
x
-
s
-
a
-
a
-
a
f
-
-
q
-
p
p
j
-
-
m
t
s
-
-
-
n
-
s
-
p
-
-
j
-
y
-
d
h
h
y
m
-
a
-
-
-
-
t
f
-
s
v
l
a
b
q
-
f
-
f
-
-
-
-
r
n
-
-
-
-
r
-
-
-
u
m
-
-
w
-
r
-
j
-
t
-
g
-
g
g
-
-
j
-
o
m
-
-
q
j
-
t
-
-
k
l
-
-
n
a
v
-
-
-
t
-
a
-
u
v
n
-
-
-
q
b
-
-
j
-
a
-
x
-
u
x
-
-
t
g
c
t
a
-
-
-
-
b
-
-
a
-
x
g
-
b
-
-
i
r
-
-
k
n
-
y
-
a
-
-
s
w
-
d
-
l
b
-
-
m
-
q
-
r
-
u
-
-
l
-
h
-
c
w
q
-
l
o
-
-
v
-
i
m
x
y
-
-
p
-
-
y
-
-
-
-
g
u
-
-
n
-
o
u
-
-
t
-
t
s
-
-
d
c
-
-
b
-
i
v
-
q
-
-
l
-
y
-
f
-
k
j
p
v
v
-
-
-
i
t
a
e
-
-
-
-
v
-
-
-
u
r
-
-
c
j
h
x
-
k
-
-
-
y
-
-
j
-
g
-
u
-
i
-
r
-
o
-
b
-
x
-
a
-
u
h
-
-
y
-
j
-
d
-
w
-
k
w
-
q
-
l
-
-
l
-
c
y
-
-
k
-
n
-
f
m
i
u
q
-
-
n
-
-
-
-
n
-
w
-
d
e
a
-
l
-
-
i
-
n
-
-
w
-
p
t
n
-
-
y
c
n
-
-
-
-
c
j
w
-
d
s
-
t
l
b
-
-
o
-
q
-
-
-
d
-
-
-
p
-
b
a
-
-
f
u
m
k
-
-
f
-
h
-
d
-
-
-
t
-
m
f
q
v
-
-
-
-
f
-
i
-
p
-
d
-
h
-
g
-
g
w
-
-
c
-
h
-
b
b
-
h
w
-
-
-
c
-
v
-
i
h
-
-
k
-
r
a
q
-
o
d
-
-
-
j
-
-
b
m
w
-
-
x
-
-
g
-
h
-
w
-
y
y
-
s
-
o
-
-
d
v
-
-
i
h
-
u
-
e
g
o
-
l
-
-
f
-
-
-
x
-
x
-
h
-
e
-
p
i
-
-
g
-
t
-
g
-
i
-
y
-
d
-
r
-
p
-
i
e
-
-
n
-
r
-
y
-
j
-
h
u
s
y
-
-
-
n
-
-
r
-
i
-
p
-
b
-
k
-
i
-
b
u
-
-
s
-
m
w
-
c
-
-
v
-
h
-
o
c
-
-
y
-
u
h
-
n
-
-
v
-
e
-
u
j
-
-
a
-
b
g
-
-
r
-
g
-
g
-
j
-
u
q
-
b
-
-
d
-
h
-
t
-
b
u
-
-
h
-
w
-
g
p
-
y
-
u
-
-
t
-
d
h
r
-
-
-
s
p
-
-
q
-
q
-
s
-
a
m
-
d
-
p
q
-
-
-
r
-
q
c
-
j
-
-
t
x
y
-
-
-
h
g
-
k
-
v
-
-
g
-
k
r
-
-
p
-
p
-
p
-
w
-
n
-
a
-
o
-
m
-
c
u
h
-
-
-
f
h
-
-
w
y
-
-
l
-
p
-
d
-
f
d
-
e
j
-
v
-
-
-
j
a
w
-
-
-
q
-
e
-
q
i
-
c
-
c
c
b
-
s
-
-
r
-
-
w
-
-
q
u
t
-
i
-
-
b
-
d
b
-
i
-
s
-
-
-
s
x
-
x
-
u
-
-
x
p
-
-
i
-
j
-
n
-
h
-
o
-
v
-
i
-
e
o
-
-
o
-
y
-
b
w
-
-
p
-
q
v
-
-
h
-
u
c
-
g
h
x
-
-
p
-
n
-
-
q
f
-
-
-
r
-
a
-
u
-
a
-
f
s
-
m
o
-
h
-
q
-
-
e
-
-
g
x
-
-
u
w
d
x
b
h
-
o
b
x
-
-
-
-
-
-
-
h
-
-
x
-
j
-
x
-
h
-
o
d
-
-
v
-
q
-
s
l
-
-
t
-
k
o
b
-
-
-
j
-
i
m
-
-
c
n
-
-
m
w
-
-
a
-
d
-
e
g
-
-
m
x
-
h
-
-
w
-
k
-
e
-
q
-
h
-
a
-
q
r
s
-
-
j
a
-
n
-
-
-
h
q
-
x
-
-
g
m
-
-
v
o
-
a
-
-
l
-
a
x
-
-
d
r
-
-
q
r
s
-
-
-
g
n
-
-
g
-
r
-
u
n
-
-
b
-
k
-
i
-
y
-
h
r
-
-
r
-
j
h
-
-
w
-
x
d
n
-
-
-
e
-
u
-
l
-
d
-
d
-
i
t
p
-
-
-
j
-
l
-
k
h
-
r
w
-
j
n
b
-
-
-
-
-
m
-
a
-
q
-
k
-
u
-
f
-
y
-
t
-
f
-
u
-
k
x
-
q
o
l
o
-
g
d
-
-
-
-
w
-
-
g
n
f
-
-
-
-
a
-
j
-
r
o
-
-
n
b
v
u
-
x
m
-
-
i
-
-
-
-
l
-
a
k
-
-
w
-
a
g
-
-
y
-
h
-
g
-
p
-
h
-
n
q
t
-
b
-
-
-
c
-
y
-
n
-
q
-
h
-
o
i
-
r
-
-
j
-
h
-
r
s
-
-
u
-
o
-
s
-
b
-
h
f
h
x
-
-
-
-
k
-
e
-
c
-
e
j
-
h
k
-
-
n
x
-
-
-
s
n
-
-
p
-
q
f
x
r
-
k
-
-
-
e
-
-
m
w
h
-
b
-
-
s
-
-
a
v
-
-
c
-
l
b
w
-
-
t
-
g
-
-
o
-
n
f
-
-
m
-
e
-
m
a
-
-
m
-
k
-
x
u
e
a
-
k
-
-
-
-
k
b
b
-
x
-
x
-
-
-
x
p
-
-
w
-
o
-
i
e
-
-
a
r
-
-
w
-
t
-
d
d
j
-
-
-
k
v
-
-
p
-
o
-
t
-
o
-
s
o
-
f
-
x
i
k
-
-
-
d
f
-
-
q
-
-
u
-
l
d
-
o
-
-
v
-
s
-
q
h
v
-
a
-
r
-
-
-
i
-
l
-
f
m
-
e
-
v
a
-
l
c
-
o
y
h
-
-
-
-
-
-
l
g
-
d
-
-
k
l
-
-
o
-
s
-
e
-
p
l
-
-
p
-
r
w
-
-
w
-
b
-
n
i
a
-
r
h
-
-
-
-
s
h
-
-
y
-
p
-
u
-
x
o
-
-
q
-
n
d
-
-
r
-
s
-
v
y
d
-
e
-
f
f
-
-
c
-
-
-
p
-
f
r
-
g
-
-
g
j
-
-
j
-
c
-
o
-
h
s
b
-
e
f
-
-
-
y
r
r
-
-
g
-
l
-
-
-
f
-
n
g
-
-
j
-
i
-
s
j
-
-
y
-
b
-
j
-
b
w
-
-
n
-
y
-
y
r
-
r
-
o
-
-
e
-
f
-
o
-
r
-
u
-
q
-
j
-
x
v
-
-
q
c
o
l
-
w
s
-
-
-
-
-
x
-
j
v
u
-
-
v
-
r
-
m
-
-
t
e
-
-
o
k
g
a
-
j
-
-
k
-
-
-
c
h
-
i
i
-
-
-
p
h
-
-
s
-
q
-
v
f
a
-
o
-
-
-
q
-
m
-
c
-
x
-
q
-
v
-
w
r
-
-
r
-
t
-
n
-
m
-
f
w
q
-
n
-
-
c
-
-
i
v
b
-
c
-
-
-
k
-
o
j
-
q
-
-
w
-
l
-
c
p
k
-
-
-
p
-
r
h
b
-
b
k
y
-
w
-
-
e
s
t
p
-
-
-
a
u
-
-
-
t
e
-
-
-
-
q
-
-
e
-
s
d
-
-
y
j
-
a
-
-
l
b
-
d
c
-
-
-
y
b
-
-
v
r
-
s
-
-
x
-
y
r
-
f
f
k
-
-
t
b
-
-
i
-
-
o
g
-
x
-
-
-
m
f
-
-
s
-
u
e
-
-
g
-
k
r
k
-
-
-
t
o
-
o
-
-
q
-
a
-
x
-
b
-
v
w
-
-
e
-
q
-
p
c
-
-
o
w
l
-
-
x
-
-
d
-
c
j
-
f
-
s
b
-
o
-
-
e
p
-
-
-
m
-
l
-
l
-
t
-
o
-
h
-
j
-
q
-
l
-
j
b
-
-
u
x
-
-
j
f
-
-
x
y
-
n
-
-
r
-
i
p
n
m
-
l
-
-
-
-
o
h
-
f
d
-
-
v
c
x
-
-
j
s
l
-
y
k
-
v
-
-
n
-
-
i
-
h
-
-
f
-
-
-
d
-
l
-
l
-
g
m
-
k
-
s
-
-
d
i
v
-
b
-
-
b
-
-
f
-
l
m
u
-
-
-
x
-
h
-
c
x
v
q
b
y
k
-
-
h
-
-
-
w
-
d
-
-
-
w
-
y
-
w
-
-
p
-
s
-
g
-
v
-
b
-
y
v
-
a
-
-
w
-
r
-
b
-
y
-
b
-
u
l
-
-
p
-
x
-
q
j
-
-
b
-
u
-
m
-
q
-
m
m
-
-
c
w
-
-
a
-
o
-
v
-
f
-
j
-
h
-
x
-
w
-
w
-
a
-
y
m
-
-
v
-
r
f
-
-
b
-
k
-
k
-
e
-
x
-
x
u
-
-
c
-
n
-
j
-
f
n
-
o
e
-
-
-
e
-
n
-
n
c
-
o
-
-
a
-
w
-
w
-
y
-
w
-
v
-
a
c
-
-
m
-
b
-
v
g
-
-
g
-
k
-
f
o
n
b
-
g
u
-
-
-
l
-
-
-
o
-
v
-
h
-
f
-
t
d
k
l
-
-
-
-
s
-
t
-
h
-
t
-
g
-
n
-
v
-
m
-
w
-
j
-
n
-
k
-
m
o
m
-
p
-
-
-
m
a
d
-
-
b
-
a
-
-
a
-
y
b
p
l
o
e
-
-
-
-
-
t
-
g
-
-
m
q
-
-
x
c
b
-
y
-
-
l
-
-
q
-
l
o
-
-
f
-
d
-
a
g
-
-
j
-
v
q
y
j
x
-
k
-
-
k
-
-
-
a
-
l
s
-
b
-
-
-
u
-
x
-
i
-
s
-
w
-
j
-
g
-
r
-
o
-
h
g
-
-
w
-
u
o
m
-
l
-
q
-
-
-
k
x
p
y
-
-
-
-
s
-
h
y
-
-
s
-
f
-
d
-
n
a
-
-
n
-
d
-
i
-
y
-
d
-
b
w
-
-
h
-
a
-
m
-
e
m
-
p
-
-
x
-
o
w
g
-
v
i
-
y
-
-
-
n
-
n
u
-
-
-
o
a
j
-
-
-
h
-
u
q
a
q
-
-
-
m
-
-
g
b
-
h
-
-
p
-
d
-
v
-
v
m
-
-
d
-
u
-
d
-
t
-
t
v
-
p
t
-
-
-
t
u
o
-
a
-
m
-
-
-
c
-
e
r
u
-
-
-
h
-
o
-
o
-
d
b
g
-
i
-
-
l
-
-
d
y
o
-
v
-
a
-
-
-
q
-
k
-
e
-
n
-
s
o
p
-
-
-
k
-
s
p
m
-
-
g
-
-
s
-
h
-
b
t
w
a
r
u
-
-
-
-
-
-
v
-
u
r
-
j
p
-
-
-
l
-
y
-
x
-
i
-
n
-
o
b
q
b
x
a
-
-
-
-
o
-
c
-
n
-
y
-
-
-
u
-
g
s
-
c
y
-
-
b
-
-
h
-
t
f
l
-
-
y
-
-
l
e
-
w
-
a
u
o
-
-
-
e
-
-
y
-
s
-
q
-
b
v
b
l
-
-
-
-
b
-
f
e
-
b
a
v
o
s
-
p
-
-
-
-
d
-
-
-
g
-
j
-
r
-
n
-
e
-
h
k
-
-
u
-
y
g
-
d
-
i
-
m
-
g
-
-
k
k
d
-
-
-
q
s
-
-
u
n
-
-
i
-
b
s
-
-
q
-
i
-
i
-
t
-
y
k
-
p
n
-
k
-
o
e
-
-
-
-
t
j
o
-
-
f
-
y
-
j
w
-
q
-
-
-
r
-
n
v
-
-
e
-
w
-
d
-
l
-
k
u
-
-
m
h
a
y
d
s
-
-
-
-
f
t
n
-
-
i
-
-
v
-
-
k
-
-
r
-
b
b
f
-
-
y
-
-
q
i
-
-
j
-
m
-
u
-
y
-
e
u
r
l
-
q
w
-
c
-
q
-
-
c
-
k
r
-
-
-
-
-
c
i
-
g
-
-
j
-
j
-
i
i
m
p
-
-
-
-
j
-
d
-
p
x
-
-
t
e
-
-
n
t
-
-
a
-
e
-
b
-
a
n
-
-
p
-
k
-
b
-
o
-
c
-
o
-
t
-
r
d
o
t
s
-
k
m
f
-
v
-
-
-
h
-
-
-
-
l
-
-
t
t
-
-
a
i
q
d
y
-
v
-
-
-
r
-
-
-
u
f
t
t
-
m
-
-
-
-
t
p
j
-
-
j
-
p
-
-
k
d
-
j
i
-
-
-
k
-
p
-
c
-
o
x
-
-
k
-
d
-
v
-
x
-
f
i
-
u
-
-
j
r
t
-
-
-
b
u
h
-
-
-
a
n
k
d
-
-
-
-
s
g
x
-
-
-
l
-
n
-
g
-
b
-
g
-
r
w
-
-
x
-
b
-
c
b
-
-
w
-
i
-
a
-
g
-
w
-
f
c
-
-
d
w
x
-
-
-
b
-
w
-
l
-
d
-
r
h
-
-
f
w
l
-
d
-
h
-
-
e
-
-
r
-
w
-
v
-
e
k
-
-
y
-
m
-
c
-
r
-
j
-
x
-
c
-
j
r
-
-
e
-
i
-
m
r
-
-
t
-
e
-
o
-
q
t
r
m
-
-
q
-
-
l
-
f
c
-
-
f
-
-
m
-
w
a
-
-
q
f
-
-
l
t
m
l
-
-
-
-
q
h
-
-
k
k
-
-
v
h
-
-
j
-
h
-
r
-
v
-
u
-
b
t
a
-
-
-
t
-
v
-
h
-
k
-
u
-
u
-
h
-
k
i
-
p
-
w
i
-
-
q
k
e
-
-
-
-
x
h
-
x
c
-
-
-
k
k
o
-
j
f
-
-
-
r
u
-
-
-
k
-
g
-
v
v
-
-
k
-
i
-
s
-
q
i
-
-
t
-
d
-
i
-
w
v
j
r
-
-
m
-
a
-
k
d
-
-
-
x
d
-
i
-
-
-
v
o
y
-
-
-
w
g
d
-
i
k
-
-
j
-
-
-
i
-
o
v
n
-
-
-
a
q
-
b
-
-
r
-
d
-
n
-
g
-
h
e
-
g
-
-
t
-
v
m
-
c
k
-
-
-
c
j
t
a
w
q
g
b
-
-
-
-
-
o
o
-
a
-
y
-
-
-
p
-
-
-
h
-
o
-
c
u
s
-
-
-
y
-
j
-
x
-
x
-
g
-
h
g
-
-
e
-
d
-
w
-
h
-
e
f
-
-
r
v
-
-
s
-
k
-
u
m
-
c
-
-
r
-
c
-
w
u
-
b
-
x
j
-
-
-
r
l
b
s
-
p
-
x
o
-
-
-
-
c
-
-
u
h
-
y
c
-
-
l
-
-
h
-
j
-
n
-
i
v
x
-
-
-
n
-
v
a
y
-
q
-
-
-
j
-
k
j
-
-
x
-
p
e
-
v
-
a
v
-
-
b
-
n
-
p
-
-
m
-
i
n
q
-
l
d
-
-
d
-
-
-
x
y
-
-
e
q
-
-
l
-
x
-
a
h
h
-
-
-
n
-
u
-
s
-
p
-
k
h
b
-
-
-
o
-
n
-
q
g
-
-
k
y
-
f
c
-
-
-
i
-
h
-
f
-
h
p
h
-
f
n
-
-
e
y
-
-
-
-
o
-
b
-
t
o
-
v
-
-
b
r
r
-
-
h
-
p
-
-
a
-
c
d
j
-
-
-
y
-
l
-
w
-
g
-
o
-
b
-
x
-
d
-
v
p
a
-
-
-
x
u
y
-
q
-
a
-
r
t
-
d
-
-
g
a
x
-
c
-
-
-
p
-
-
t
-
-
q
h
c
-
-
q
t
w
w
q
-
-
l
-
a
-
g
k
-
p
-
y
-
c
-
-
f
-
-
i
-
-
-
-
w
s
-
-
s
-
c
-
a
-
p
l
k
-
u
-
-
q
-
-
d
-
x
-
k
-
b
-
p
-
b
d
v
-
-
-
y
-
i
-
d
-
j
-
r
-
r
-
l
-
i
-
a
-
q
i
-
m
-
e
-
-
s
-
g
-
h
f
-
-
j
x
s
-
-
-
w
-
w
-
v
-
b
-
b
-
w
-
u
f
-
e
-
-
x
-
j
l
-
-
j
p
-
-
p
-
a
-
o
-
x
-
i
-
j
-
p
-
s
-
p
-
q
-
p
b
-
-
w
-
g
a
-
-
j
-
r
-
g
g
-
-
p
-
s
w
-
k
-
j
-
-
j
-
k
-
e
-
v
-
p
-
d
-
o
s
-
-
a
-
d
-
e
-
v
-
k
c
w
v
-
r
-
k
b
c
-
-
-
s
-
-
n
-
-
j
-
-
k
-
k
-
q
-
t
-
g
-
e
v
n
-
-
-
b
-
n
-
m
-
x
-
f
-
f
-
v
-
i
-
x
e
n
h
-
n
-
-
t
-
t
-
-
c
a
-
-
-
c
-
y
-
d
-
b
r
-
-
n
-
e
-
u
-
y
-
q
-
m
-
e
-
j
m
-
-
k
x
-
-
r
d
i
-
-
-
v
-
d
-
y
s
-
-
u
-
i
c
-
l
-
-
a
-
x
-
r
k
k
l
-
-
q
q
-
-
d
o
-
k
w
-
-
-
-
j
g
-
-
-
j
-
o
-
o
s
j
-
-
t
-
n
-
-
d
-
x
-
y
-
i
c
l
p
-
r
r
r
k
s
-
-
-
p
-
-
h
-
-
-
f
-
-
a
-
e
-
c
-
-
q
n
m
-
f
-
-
v
-
-
o
-
y
-
p
-
f
j
-
r
-
y
-
-
a
-
n
-
o
m
-
-
i
-
i
-
y
a
-
h
-
s
-
q
-
s
-
-
g
-
j
-
p
-
w
-
i
s
-
-
k
-
x
-
d
-
c
-
l
r
-
-
i
f
p
g
-
-
-
r
m
y
-
e
-
-
p
-
s
-
-
-
o
-
y
b
-
c
-
-
m
-
t
-
c
-
u
j
-
-
c
-
t
-
v
-
r
-
l
l
-
-
m
-
p
-
i
-
t
-
h
-
m
-
w
x
-
-
g
-
v
-
p
-
x
-
g
-
v
-
l
-
r
-
v
-
n
-
i
-
v
-
r
-
n
-
q
-
u
-
p
-
x
-
t
-
f
-
d
-
m
-
i
-
i
-
o
-
v
-
u
-
x
-
o
n
-
-
g
-
t
l
-
-
q
-
i
-
i
-
i
-
u
-
w
x
c
-
-
c
p
o
-
-
-
v
-
-
w
v
-
k
h
-
-
g
-
g
-
-
h
-
c
r
-
-
c
r
w
-
-
-
p
-
i
m
-
-
d
-
l
-
p
-
j
-
w
-
u
w
-
-
e
-
j
-
j
w
e
d
q
t
-
-
-
-
u
-
-
-
u
-
c
-
m
-
s
u
j
-
-
-
h
o
-
-
m
-
m
-
w
-
u
d
-
-
t
-
q
-
a
-
l
y
-
-
k
d
-
-
p
h
-
u
-
u
-
-
s
b
a
-
g
-
g
-
-
h
-
j
-
-
c
u
-
-
f
-
j
-
m
-
i
-
y
-
j
-
d
-
t
-
y
-
l
-
l
-
o
-
c
-
h
-
u
i
-
-
e
c
-
-
i
-
c
-
a
-
d
e
k
-
-
x
m
-
c
b
-
-
-
-
d
-
f
-
m
o
l
-
t
-
t
-
-
-
y
-
n
u
-
-
g
e
-
-
c
-
b
-
b
-
o
g
-
-
j
-
n
-
v
-
w
l
-
b
-
-
e
-
x
-
x
-
v
-
m
g
-
-
e
-
t
-
q
s
v
-
-
-
d
l
-
-
v
-
u
-
e
-
c
-
s
w
-
j
x
o
u
-
x
t
-
-
y
-
-
l
-
-
-
-
e
-
x
-
o
v
-
-
s
-
a
q
-
i
i
-
-
r
-
-
u
n
-
v
h
-
-
u
-
e
-
-
n
-
f
-
r
-
h
-
a
-
w
w
-
-
c
-
t
-
t
-
t
-
g
-
e
-
w
-
e
d
a
-
q
-
-
-
c
-
d
-
k
-
q
-
h
-
i
-
s
-
k
-
f
-
c
g
t
c
-
x
t
p
-
-
u
-
i
r
-
-
-
-
u
y
-
-
u
g
-
v
t
-
-
-
-
-
o
-
i
-
k
-
g
-
h
-
t
-
u
-
e
-
k
-
b
q
r
t
-
r
-
-
a
-
-
c
-
v
p
-
q
i
-
-
-
-
n
-
j
t
-
-
j
-
y
-
t
i
-
-
p
-
m
-
g
w
-
-
a
-
b
-
h
t
-
-
g
c
-
-
o
-
h
o
r
-
-
i
-
m
g
-
m
k
-
h
q
-
-
g
w
x
-
-
-
m
-
-
-
-
q
-
e
k
-
-
v
-
j
x
p
b
e
-
-
-
-
-
f
i
-
-
t
b
y
e
-
l
-
l
q
-
-
-
-
-
n
m
-
-
b
s
-
-
l
-
v
x
j
-
-
-
i
-
u
-
l
-
g
-
x
a
-
r
v
y
-
-
v
-
-
-
w
-
g
i
-
-
g
j
-
v
-
-
q
c
-
-
h
-
r
-
e
-
n
-
a
-
l
-
h
t
n
-
-
-
o
-
d
-
q
-
n
-
y
g
c
-
p
-
-
e
-
-
s
-
i
-
o
-
c
-
s
-
x
-
x
-
t
-
k
-
r
-
r
w
q
j
-
m
-
q
a
-
-
-
u
-
-
p
-
e
k
g
t
-
-
-
o
-
-
-
s
-
a
g
-
-
x
p
p
a
-
-
-
p
-
-
l
v
-
b
-
i
h
-
-
q
-
-
p
-
x
-
t
-
c
-
w
n
-
g
-
-
y
b
-
-
t
-
n
-
u
p
b
u
-
-
l
-
-
b
-
-
i
-
l
e
q
h
-
-
-
-
g
w
g
-
-
-
t
v
-
-
g
s
-
-
d
-
b
-
r
-
m
-
j
n
-
-
x
-
r
-
p
-
v
g
-
-
g
-
b
-
w
-
t
-
o
-
x
-
n
-
u
-
b
b
-
-
a
-
d
k
-
g
s
-
-
-
p
-
g
-
g
-
d
-
a
-
x
-
h
-
e
-
v
l
-
m
s
-
-
f
-
-
h
-
c
-
s
f
-
j
-
-
j
-
a
r
-
-
q
-
b
-
c
-
n
-
b
n
-
-
r
s
-
-
a
-
p
-
n
-
v
-
q
-
u
-
i
-
i
-
y
-
l
b
-
v
-
-
w
l
-
-
s
-
j
x
-
m
-
-
x
-
q
v
-
n
g
-
-
-
x
-
m
-
y
u
f
-
-
a
b
j
-
-
e
-
-
-
d
h
-
-
u
q
l
-
-
-
p
-
b
o
-
-
i
l
-
-
u
-
a
-
b
-
k
-
g
-
h
-
j
-
u
-
w
f
r
-
-
-
b
n
-
n
-
c
-
-
d
-
u
-
k
d
-
-
t
-
b
-
i
-
x
h
v
-
-
-
t
d
-
-
u
-
l
-
j
-
k
v
u
-
-
-
i
-
x
a
j
-
a
-
-
-
n
-
q
-
x
-
e
-
o
e
-
g
-
v
-
-
n
-
r
-
q
-
w
y
-
-
q
-
j
-
p
-
n
-
p
t
k
o
-
-
-
-
o
-
o
l
b
-
-
-
q
v
-
-
l
s
t
f
-
-
-
-
i
-
r
-
y
n
-
f
j
-
-
l
-
k
-
m
-
-
q
h
-
-
x
-
e
p
-
c
-
-
a
n
s
y
-
q
-
-
-
-
i
-
i
-
b
-
p
-
v
e
-
-
j
-
a
-
e
-
g
w
-
j
-
-
b
-
i
-
q
-
j
-
j
g
-
f
-
y
r
-
-
-
s
-
x
-
k
a
-
-
b
a
-
-
j
j
-
l
-
w
p
-
l
-
-
-
o
i
-
i
b
-
-
c
-
-
x
-
j
-
a
-
w
-
t
-
h
w
-
-
q
-
d
-
t
-
r
t
-
-
v
-
c
t
-
m
h
-
-
k
-
-
j
k
r
p
j
-
-
-
h
-
-
d
g
d
-
-
-
-
y
p
f
-
-
d
-
-
b
-
r
-
q
e
b
-
f
l
x
-
u
-
-
-
-
-
n
-
e
c
l
-
-
-
l
-
y
a
-
-
s
f
o
-
p
v
-
-
-
s
b
g
-
j
-
v
x
-
e
c
-
-
g
i
-
f
x
-
b
j
f
-
m
g
-
-
-
c
n
s
i
-
v
-
-
-
u
-
c
q
j
-
e
s
-
r
a
-
-
-
-
-
-
q
-
t
-
-
-
d
-
k
-
-
-
-
-
-
d
-
q
-
i
-
m
-
b
-
h
e
-
-
n
-
m
-
f
a
-
k
-
-
u
d
-
-
s
-
a
-
m
i
-
-
t
-
j
x
-
i
u
d
u
g
x
-
w
k
-
-
j
u
-
-
r
-
c
e
-
-
a
-
g
-
p
-
c
-
-
-
-
-
e
c
-
-
-
d
y
-
-
-
j
-
h
m
-
-
w
-
l
-
o
b
-
k
-
-
p
-
x
-
t
-
n
-
l
-
r
-
r
-
k
-
e
-
m
-
h
-
c
j
r
-
d
-
-
-
u
p
-
i
-
-
k
o
-
-
y
-
h
-
j
-
u
-
h
j
-
-
o
v
-
-
t
-
o
-
l
-
i
-
i
-
w
-
r
f
-
-
u
-
d
-
n
d
-
-
f
e
-
-
u
-
x
-
v
-
h
-
p
u
-
-
m
-
q
k
b
i
b
u
p
-
-
-
-
-
y
-
-
o
-
v
j
m
r
t
-
-
-
g
-
o
-
s
q
d
-
-
f
-
-
-
-
-
j
-
o
-
v
-
q
-
l
f
-
-
b
-
e
b
-
u
-
-
c
-
k
-
b
r
o
-
a
-
u
o
-
-
a
k
-
-
-
-
w
-
w
y
-
j
-
f
-
-
s
-
v
n
w
-
-
-
i
-
a
-
o
-
r
m
h
-
-
-
y
-
o
-
b
x
q
-
-
u
-
-
v
t
o
-
-
h
k
-
l
d
-
-
-
-
r
-
n
l
-
w
-
d
m
s
j
l
-
j
-
-
l
-
r
-
-
-
-
-
o
w
-
-
a
-
h
-
b
-
m
-
m
a
-
-
o
l
-
b
m
p
m
-
-
-
-
-
b
-
k
p
-
a
o
-
-
l
j
r
-
-
x
b
-
-
-
-
v
-
v
-
k
-
e
-
o
-
c
-
a
-
a
d
-
-
r
-
p
-
x
n
-
-
r
h
e
y
k
-
-
-
-
-
i
-
t
q
-
-
u
-
c
-
m
x
-
-
r
-
x
-
i
-
y
x
-
-
y
-
t
-
c
-
x
x
-
-
q
-
c
-
q
-
m
-
e
-
k
-
y
-
y
-
o
-
n
-
g
-
t
v
e
-
-
s
v
-
-
q
-
-
t
-
a
r
n
-
-
e
-
-
h
-
a
-
t
-
t
-
i
-
i
-
k
-
t
-
j
g
-
-
x
-
q
i
-
-
f
-
t
-
q
-
d
d
n
-
-
-
f
-
c
-
j
-
r
m
m
-
-
-
m
-
c
y
-
-
i
m
-
-
c
r
-
c
n
e
-
-
k
s
-
-
-
p
-
-
w
l
h
g
-
-
m
-
f
-
p
-
-
-
j
-
q
-
s
a
i
b
-
-
x
a
-
-
-
-
w
-
d
-
j
-
h
j
-
p
-
s
g
-
-
-
x
g
q
k
-
-
p
f
j
-
-
q
-
b
a
o
-
-
i
-
-
-
g
b
-
-
o
-
-
i
j
-
-
-
n
-
c
-
k
-
i
-
g
m
-
-
d
-
k
-
q
-
n
-
u
-
i
-
c
-
n
w
g
-
-
-
g
-
u
-
w
-
i
-
j
s
e
-
-
n
-
-
y
-
f
-
a
d
-
-
t
-
b
g
-
b
-
-
o
a
-
-
l
-
n
o
-
k
-
-
w
-
i
-
l
j
-
b
p
-
-
-
g
y
k
c
l
-
t
-
-
-
-
-
o
-
m
e
-
v
a
g
-
-
-
-
w
i
o
i
-
-
-
r
-
m
u
p
-
k
-
-
-
k
-
-
y
-
e
s
w
-
o
-
-
-
w
-
w
u
-
-
k
-
q
-
d
s
-
w
-
-
t
-
j
x
-
b
n
-
b
-
-
l
-
-
u
-
b
-
w
e
r
-
l
-
-
-
y
-
h
-
t
-
n
-
m
j
k
-
-
r
-
-
v
-
i
-
m
-
o
x
e
-
-
-
j
-
r
c
-
-
h
-
n
-
g
k
e
s
-
t
-
a
-
s
-
-
t
-
-
-
y
l
-
-
d
-
l
i
-
-
u
-
g
-
t
s
-
-
y
c
-
-
d
n
-
-
t
-
n
-
e
-
w
j
-
-
r
-
x
-
h
n
-
u
-
-
g
-
f
-
s
-
h
-
w
-
p
-
l
t
-
-
t
r
j
-
-
-
h
x
-
h
k
-
-
-
f
-
v
-
t
-
n
-
f
-
i
n
-
-
i
-
h
-
n
-
n
h
-
t
-
o
q
-
-
o
-
-
t
b
-
-
p
-
r
-
q
-
j
-
n
-
y
m
-
-
c
g
-
-
a
-
a
q
-
-
s
x
-
-
g
-
m
c
-
t
-
-
d
m
f
b
-
-
-
-
e
-
p
t
-
-
f
k
-
x
-
d
-
-
x
-
b
-
r
-
a
a
r
h
s
-
a
-
-
-
-
o
-
-
m
-
f
-
x
-
k
-
b
n
v
q
-
-
-
-
l
-
b
-
f
p
b
w
-
-
-
-
n
-
o
-
x
h
-
-
a
-
t
k
j
x
f
b
r
-
l
-
-
-
-
f
-
-
b
g
v
i
-
-
-
-
-
g
-
-
q
-
q
-
b
-
l
-
e
r
-
-
r
y
-
-
s
r
y
-
-
-
o
m
-
-
m
-
i
-
h
-
b
-
b
-
g
-
r
k
-
-
d
-
d
x
e
-
l
x
e
-
-
-
m
k
-
-
-
-
c
-
s
-
m
-
r
o
i
g
e
-
-
-
-
-
g
-
r
-
f
-
s
-
k
f
-
j
-
-
o
-
h
-
f
-
c
-
d
-
y
-
i
t
-
o
-
-
x
l
-
-
a
-
r
-
q
-
k
-
i
-
x
w
-
-
f
-
e
-
e
b
-
-
a
y
-
-
w
g
p
-
-
e
q
l
-
-
-
-
n
q
-
-
o
f
-
k
-
-
w
-
a
w
-
-
w
-
t
-
f
-
k
-
g
-
f
c
k
-
-
-
r
-
x
l
-
-
p
e
r
-
-
-
f
-
m
b
-
-
y
-
h
d
-
-
e
-
i
-
e
n
-
-
h
-
n
-
s
-
y
-
s
-
q
-
h
s
-
k
-
-
a
-
m
-
g
i
-
u
-
-
u
u
-
-
u
-
n
e
-
-
s
l
-
-
e
-
b
-
h
r
-
-
b
-
v
-
p
-
c
v
g
-
-
-
o
-
a
-
a
-
r
-
y
-
k
x
-
-
k
e
-
-
j
p
-
-
c
b
-
-
i
-
o
-
c
s
q
-
-
-
p
-
h
-
h
g
-
-
j
-
u
-
j
-
g
-
c
u
-
-
y
o
q
o
i
h
u
-
-
u
-
-
-
-
r
-
c
-
-
-
o
-
c
-
k
-
p
-
v
r
-
-
v
q
-
-
y
-
b
-
c
-
y
-
k
-
w
-
f
i
l
-
k
-
w
-
d
t
-
-
-
a
-
-
o
-
v
-
p
-
u
l
l
-
-
-
a
-
n
e
l
-
-
-
q
-
x
-
v
-
r
-
s
l
-
l
-
w
-
v
-
-
l
-
u
-
n
k
-
-
j
v
-
-
r
e
-
v
n
f
d
v
-
l
-
-
-
-
x
d
-
-
a
-
-
-
f
-
w
-
n
-
l
x
e
x
-
-
p
q
-
-
-
o
i
-
s
-
l
w
f
n
-
w
-
m
-
-
-
q
x
-
-
-
p
r
-
-
-
-
u
-
c
-
m
-
d
-
b
-
x
-
n
-
k
-
o
-
x
-
x
v
-
-
e
i
-
n
-
-
d
-
x
i
-
-
m
-
q
-
t
-
e
-
s
t
t
x
o
-
-
d
-
-
x
-
-
x
-
y
t
q
-
x
-
-
n
-
i
t
-
-
-
-
y
-
w
v
-
e
-
-
r
-
l
-
t
f
-
-
r
x
-
y
-
u
k
-
h
s
-
n
-
-
-
x
u
-
-
g
b
o
f
-
-
-
-
d
-
j
y
-
-
-
e
-
g
-
d
l
y
-
m
i
-
-
d
-
s
k
-
p
-
-
-
-
e
-
x
-
u
-
i
-
b
-
e
-
w
-
l
-
b
-
s
-
l
-
h
t
-
y
-
h
b
-
-
-
p
g
-
-
p
-
w
-
e
i
-
-
g
-
j
-
c
n
c
w
c
a
i
-
-
-
-
-
-
r
-
-
c
-
d
y
-
e
-
-
y
-
h
-
h
-
h
-
p
x
-
-
n
-
l
-
k
-
o
-
o
-
e
-
i
t
-
-
x
-
q
-
l
-
x
-
i
-
h
-
v
-
y
-
b
u
-
u
h
-
r
b
-
-
-
-
p
m
m
-
a
-
-
y
-
-
u
-
f
t
-
-
v
-
k
r
-
-
c
-
q
c
u
-
-
-
e
m
-
-
f
-
m
v
l
-
v
-
-
-
w
-
p
-
q
-
g
a
-
p
n
l
t
-
-
-
s
-
-
-
w
-
i
-
b
-
e
-
v
n
-
-
r
b
-
-
x
c
-
g
k
-
-
h
-
a
x
-
-
-
h
-
h
-
l
-
p
d
c
-
-
-
d
-
m
-
i
-
p
i
-
f
-
-
l
m
-
-
n
-
o
-
s
h
-
g
g
h
-
-
-
k
-
w
-
-
p
-
v
-
p
-
c
-
n
-
u
-
e
-
b
-
y
-
u
-
v
-
b
w
-
-
r
-
y
-
o
m
o
-
e
-
-
-
q
-
e
y
-
-
b
-
h
-
d
-
w
-
j
-
v
-
f
-
e
-
s
p
-
-
s
w
-
-
r
-
k
-
r
-
j
-
n
-
a
-
a
-
k
c
-
u
-
r
u
-
b
-
y
-
-
h
-
-
w
b
-
-
s
i
n
-
-
-
f
h
-
-
v
b
-
-
e
b
-
-
w
g
-
-
b
-
x
s
o
-
-
-
q
b
e
-
-
o
c
h
-
f
-
-
h
-
-
-
c
-
w
c
-
-
q
-
a
-
k
-
n
b
-
v
q
-
-
w
e
-
j
-
m
-
-
-
x
c
d
-
p
-
b
f
-
w
-
-
-
m
-
s
-
-
h
-
j
-
v
-
x
-
l
-
b
-
k
-
p
-
q
v
-
-
i
m
s
b
-
-
-
-
t
g
-
-
a
-
p
-
y
-
p
-
g
n
-
s
-
-
k
-
w
-
x
-
d
-
x
a
-
-
e
r
-
-
i
-
h
p
h
-
-
-
e
-
x
-
m
-
t
-
m
-
g
-
k
-
u
-
c
-
x
p
d
w
h
s
k
-
-
v
v
c
-
-
q
-
s
-
-
m
m
-
-
-
-
-
n
-
-
-
x
-
u
-
h
t
f
-
u
-
-
-
v
-
e
p
-
f
g
v
-
q
-
e
-
p
v
j
t
-
r
k
-
-
-
-
-
p
d
-
-
-
-
w
m
-
-
-
c
a
-
-
k
-
k
-
j
m
-
j
-
-
y
-
m
-
e
-
p
-
g
-
y
-
u
-
x
-
b
f
-
y
r
-
-
-
w
-
l
-
s
-
w
-
p
-
c
d
j
-
-
-
p
e
o
r
-
-
b
-
-
k
-
p
-
-
l
-
v
j
-
-
w
-
f
-
x
b
l
v
-
-
q
-
j
-
-
-
b
-
h
-
m
-
h
o
-
-
d
-
j
-
u
-
o
-
k
-
x
p
-
-
u
-
x
-
i
u
-
w
-
-
w
d
-
-
c
b
-
-
p
t
-
-
p
-
l
o
-
i
o
-
-
k
-
l
-
-
k
-
r
-
i
-
l
-
u
-
u
-
h
-
v
q
-
o
-
p
x
-
-
-
f
-
t
-
d
-
g
r
-
i
c
-
-
-
r
-
i
-
g
-
s
-
j
-
h
d
-
-
j
-
x
-
t
-
q
-
m
h
c
q
-
w
-
-
s
-
e
-
q
-
-
-
k
-
j
-
w
-
i
-
f
-
a
s
-
o
e
h
a
i
a
-
-
-
e
-
-
-
-
c
d
-
l
-
n
-
w
b
-
n
-
g
v
w
-
u
-
-
-
b
-
-
k
-
-
-
a
-
e
-
i
-
b
b
a
-
-
-
q
l
-
g
u
d
r
-
-
-
-
-
e
-
y
-
q
l
c
-
m
m
-
-
-
d
u
-
-
v
-
-
j
-
l
-
t
y
-
x
-
-
k
-
g
d
-
s
a
e
r
-
-
h
k
-
q
e
-
y
a
-
-
-
-
u
-
-
-
-
b
-
j
d
-
m
y
-
-
l
-
-
i
-
p
-
u
-
n
-
b
-
a
-
c
t
-
-
k
x
-
-
r
-
f
-
o
-
n
-
o
-
k
-
m
-
s
f
r
l
-
-
-
-
s
f
-
-
r
-
m
a
f
-
-
e
-
l
-
-
q
-
t
h
-
-
w
-
g
-
j
k
-
y
-
h
r
j
w
-
-
-
-
-
t
p
-
-
m
-
m
-
s
y
g
-
r
-
-
q
-
-
y
-
h
n
-
p
-
l
-
-
c
-
o
-
e
-
m
-
b
w
-
-
y
-
o
e
-
-
c
-
y
-
g
-
r
-
l
-
w
b
-
s
y
-
-
-
x
-
u
r
-
i
-
-
c
-
q
l
-
e
-
-
b
-
f
-
n
c
-
r
-
s
y
-
w
-
b
-
k
-
-
o
p
-
f
k
n
-
-
r
l
-
-
-
-
-
h
r
h
-
-
-
v
-
x
u
-
k
-
-
m
-
o
-
t
n
-
-
a
-
i
-
n
x
-
e
-
-
e
-
n
-
s
-
b
-
v
-
g
d
-
-
l
-
j
y
-
p
-
j
-
-
j
-
a
-
h
a
l
-
-
q
-
-
e
s
-
v
-
-
j
-
n
-
x
k
-
-
j
l
-
b
-
-
s
-
d
-
b
p
-
-
j
-
m
-
t
-
w
-
w
m
i
-
u
-
-
-
g
-
m
j
-
-
r
-
p
u
g
-
g
-
f
-
-
-
g
-
n
-
n
-
d
h
j
r
-
-
-
c
-
-
a
-
s
-
o
-
h
e
-
-
l
p
-
y
-
-
o
-
c
-
w
-
o
-
n
u
i
j
-
n
y
-
j
-
-
-
-
-
b
-
t
-
b
x
-
o
t
-
g
-
-
-
u
e
r
o
h
f
p
m
-
-
-
-
-
e
f
-
-
d
-
-
u
g
-
e
k
n
-
-
m
-
-
-
-
-
c
e
u
-
-
p
-
-
f
-
o
n
b
s
-
-
-
-
h
-
l
-
k
x
n
-
-
-
h
-
c
k
-
-
x
h
-
a
-
i
m
t
-
-
-
e
-
-
l
m
x
-
-
-
x
-
v
b
-
y
t
-
-
p
-
w
h
h
p
-
-
q
-
-
e
m
-
-
-
-
c
-
r
-
w
-
v
-
g
-
h
-
x
l
d
p
a
w
m
a
-
l
q
-
-
-
-
t
-
-
-
-
-
-
y
-
l
b
-
-
j
q
-
-
c
-
j
-
j
-
y
m
v
-
-
b
x
-
q
-
-
-
y
e
-
-
d
-
y
-
a
q
-
-
r
t
-
o
-
j
-
-
k
-
p
-
s
-
g
-
s
-
x
-
s
s
-
-
l
-
e
-
m
-
s
-
y
-
q
-
d
-
v
-
d
-
g
-
o
-
q
v
-
c
-
-
f
-
q
-
i
-
a
-
b
-
d
d
-
-
q
-
v
-
c
s
w
-
x
j
-
p
-
-
-
-
r
-
e
-
p
-
l
-
g
-
d
-
e
-
a
-
n
-
r
s
-
-
o
-
m
c
-
-
n
-
f
-
x
d
-
y
-
-
e
q
x
-
u
-
h
f
-
i
y
h
-
u
-
g
h
-
-
-
-
-
-
-
v
-
s
-
r
-
f
-
m
x
-
l
-
w
-
c
-
-
x
-
f
b
-
r
k
-
-
y
u
-
-
-
i
-
d
-
d
-
h
-
c
-
f
w
-
-
i
-
e
v
-
u
-
t
-
s
-
-
n
-
w
r
g
-
-
c
c
-
-
k
j
q
j
-
-
-
-
-
y
-
l
-
w
s
d
-
w
-
c
j
-
d
-
-
-
d
m
-
-
-
l
-
x
j
y
i
-
-
-
-
h
j
-
p
-
m
-
-
h
-
b
-
c
-
t
-
k
-
i
-
x
-
x
s
-
v
w
-
-
-
f
-
g
s
e
q
-
m
-
u
d
-
-
-
-
p
-
-
g
-
i
-
c
-
x
a
d
-
-
-
i
-
a
x
-
-
x
-
u
f
-
-
h
-
b
-
f
-
b
-
u
-
b
m
-
-
x
-
y
i
-
-
c
m
-
-
u
-
o
-
a
-
g
-
b
-
s
-
o
-
r
-
s
n
-
-
v
v
-
-
v
-
j
x
c
y
r
s
o
d
-
n
-
-
-
-
-
-
-
n
-
d
-
-
f
-
g
n
-
-
x
n
q
-
f
-
h
-
-
-
o
j
g
t
-
-
-
-
q
-
p
-
e
-
d
-
v
-
d
-
p
u
-
-
t
i
-
o
m
-
-
-
w
-
p
-
q
-
t
j
-
-
m
-
s
-
d
d
-
-
u
-
w
y
-
p
-
-
p
-
t
-
e
-
o
-
y
-
l
-
e
-
x
-
y
-
x
-
x
w
-
-
d
s
-
-
d
g
r
s
-
-
-
p
-
-
s
-
j
-
n
-
s
-
f
-
i
-
v
-
h
f
j
-
-
-
f
-
e
i
-
f
-
-
e
-
o
y
-
t
-
-
e
p
-
-
i
q
-
i
-
c
p
p
-
-
-
-
m
-
m
-
n
-
u
-
y
-
m
p
-
-
c
x
a
-
-
-
p
-
m
u
-
-
y
w
j
q
-
-
-
-
r
-
h
-
p
-
b
-
l
t
-
-
r
-
i
-
l
-
w
-
h
-
a
-
g
-
n
-
r
l
-
-
t
-
i
-
w
a
-
-
k
-
x
-
l
t
g
-
-
y
-
-
l
-
w
s
-
-
a
l
-
x
-
y
-
-
n
-
u
-
u
-
o
-
w
-
i
-
v
f
-
x
-
-
p
r
-
-
k
-
v
-
c
u
u
-
-
-
a
r
-
-
e
-
y
-
x
-
k
-
q
f
-
-
h
-
c
-
g
-
k
-
b
-
e
-
g
-
a
n
-
n
-
-
a
-
e
a
-
-
p
-
n
u
f
p
a
-
p
-
-
-
n
r
-
-
j
-
-
-
s
-
p
-
k
-
q
r
s
-
-
-
c
-
m
-
b
f
f
-
-
v
d
p
-
-
-
-
w
-
r
-
k
-
f
-
b
g
-
i
-
-
v
w
-
-
l
o
-
-
u
-
e
-
j
q
a
-
f
-
-
m
-
s
-
-
b
-
s
-
w
-
k
-
j
-
e
i
-
w
p
j
-
-
-
v
l
-
-
y
r
-
-
c
-
k
w
-
-
-
k
-
f
f
-
-
r
t
-
-
u
-
o
-
j
-
y
-
m
-
c
-
f
-
g
c
-
p
t
-
-
-
l
o
-
-
o
-
u
-
p
u
-
-
n
-
n
-
g
-
a
-
v
-
n
-
r
j
-
-
l
-
i
-
o
g
-
-
t
-
v
-
w
-
j
-
x
b
g
-
-
-
t
-
o
-
r
-
r
-
s
-
s
-
u
-
s
-
t
-
i
-
e
r
m
i
g
m
-
g
-
-
-
s
-
-
f
-
-
-
c
p
-
-
j
j
-
-
p
i
-
-
d
-
c
-
s
-
b
-
u
d
-
w
a
-
q
w
g
b
-
d
s
h
-
-
t
-
-
-
h
j
-
-
d
-
-
-
-
n
-
t
m
n
-
-
p
-
-
-
k
-
c
-
d
-
y
-
s
-
t
-
u
-
v
w
-
d
-
w
-
-
e
q
-
-
f
x
c
h
-
-
-
-
v
-
e
-
h
-
i
-
t
-
a
-
w
-
n
-
q
-
g
-
w
-
d
k
e
g
-
-
e
-
t
d
-
-
y
-
-
-
b
o
d
r
-
o
-
-
-
l
x
-
-
-
j
-
h
y
-
j
-
-
u
s
-
q
t
l
u
m
-
-
-
x
-
k
-
-
-
-
x
-
m
-
j
o
-
-
i
-
q
-
a
-
a
-
b
-
t
t
-
-
p
-
l
-
o
-
n
-
j
o
-
g
-
-
w
-
r
-
h
a
-
-
v
-
j
-
q
k
-
a
-
-
k
-
r
d
u
-
v
w
-
-
m
i
e
-
x
-
-
-
p
-
i
-
-
q
-
u
a
-
-
-
f
f
-
g
-
e
-
-
c
-
a
o
u
-
-
h
-
b
-
t
q
-
n
-
-
-
d
-
h
-
f
-
d
u
b
-
-
-
c
-
o
-
y
-
b
v
-
-
p
-
m
-
h
-
e
o
-
-
w
-
u
-
v
-
y
-
f
-
c
h
p
-
-
-
c
-
y
-
s
-
y
-
c
-
y
-
v
-
e
-
f
-
v
q
-
-
f
-
l
-
o
-
b
-
q
-
f
-
l
-
t
f
-
-
w
-
r
l
-
-
b
-
j
-
p
-
l
-
s
h
-
-
g
j
f
-
-
-
r
-
j
q
-
l
c
-
-
-
r
i
v
-
-
-
m
-
d
-
x
v
-
-
k
-
a
-
s
j
-
x
-
n
-
-
r
l
-
j
-
-
o
-
h
r
a
-
-
-
h
j
l
-
-
u
k
-
c
i
-
-
i
-
-
-
m
-
r
-
k
-
d
h
-
v
-
p
-
-
s
b
-
-
t
b
-
-
b
j
-
r
-
-
y
-
c
-
m
-
q
-
y
-
q
-
s
-
m
-
s
-
m
-
v
k
p
-
p
-
h
-
-
y
-
-
r
-
c
v
-
-
e
-
r
m
-
q
-
-
r
-
c
b
-
-
g
-
i
-
x
-
f
x
n
-
-
-
u
-
r
g
-
-
u
-
v
-
y
-
y
l
-
-
h
r
o
-
-
-
r
-
i
-
y
-
t
-
f
-
j
-
v
-
q
g
m
j
-
-
-
-
y
-
m
y
-
-
y
-
q
-
l
i
-
-
y
-
y
l
-
-
x
-
u
-
n
-
h
k
y
-
-
-
c
-
f
t
e
-
o
i
-
d
p
-
-
b
-
-
-
-
r
p
-
-
b
-
s
t
-
-
j
-
v
o
-
-
v
-
i
-
x
-
r
-
g
-
b
-
n
-
f
-
i
-
f
-
b
-
t
-
y
b
-
-
g
-
i
a
-
-
g
-
v
-
p
k
-
-
v
-
c
-
e
-
b
-
h
r
-
-
y
-
h
-
q
-
i
t
-
x
-
k
-
b
u
p
-
-
-
u
-
-
k
-
d
-
r
-
c
p
-
-
j
-
o
-
h
-
l
-
i
-
j
w
-
w
-
-
f
f
l
-
n
l
-
-
-
-
l
-
v
-
r
-
r
v
-
s
-
-
p
-
y
h
-
-
t
-
b
n
-
-
y
n
-
-
a
-
f
-
q
p
s
-
-
-
b
-
j
-
k
-
c
l
-
h
-
-
n
t
-
-
k
-
p
p
p
-
-
-
f
-
l
-
x
-
u
-
q
k
v
v
-
g
-
-
-
r
-
-
f
-
d
-
y
o
d
-
-
u
-
-
g
-
d
-
h
y
m
b
c
-
j
-
-
-
-
-
h
-
i
-
h
-
a
-
g
-
n
-
f
l
-
-
u
u
l
-
p
a
-
-
-
m
v
s
m
-
-
v
-
-
-
-
b
-
m
-
l
-
w
-
s
-
k
-
a
m
l
-
m
-
n
-
-
-
t
-
o
-
r
-
d
k
-
-
l
-
p
u
-
l
-
-
v
-
q
n
x
x
h
r
-
-
-
h
m
-
-
-
-
-
b
-
j
w
-
-
y
-
y
-
a
t
-
-
t
i
-
-
j
n
g
n
-
e
-
d
-
-
-
-
g
r
-
-
c
-
l
s
-
g
a
m
-
-
-
-
q
i
w
x
-
j
d
v
d
m
-
-
-
-
-
-
o
-
q
-
-
-
e
-
f
-
k
-
l
-
v
-
a
-
x
-
c
-
o
n
-
l
a
e
-
-
j
-
-
-
m
-
y
-
t
g
-
f
-
-
k
-
p
t
t
-
-
-
x
-
k
d
-
y
g
h
-
-
x
m
-
g
c
-
-
-
w
-
-
c
r
-
-
-
y
-
q
-
d
-
j
-
x
-
o
-
m
-
e
-
o
-
g
f
-
-
h
-
h
-
y
-
j
-
h
-
m
-
q
-
a
j
-
-
y
b
-
-
f
-
p
u
-
-
j
a
-
-
d
i
h
-
-
m
d
-
e
-
-
-
e
-
j
-
q
-
e
-
u
-
r
-
o
-
j
v
-
-
b
-
k
-
k
-
w
p
-
-
u
-
u
-
l
n
c
-
-
-
y
-
k
-
i
a
-
c
r
-
-
-
v
r
-
-
n
-
f
-
p
d
-
o
-
-
q
-
h
j
k
-
q
j
-
m
r
o
-
-
q
-
-
-
-
y
-
x
-
-
b
-
y
-
y
x
-
f
i
f
-
r
-
-
-
-
y
-
k
-
p
e
-
-
b
-
d
t
k
q
e
-
-
-
-
u
t
b
y
-
i
r
-
g
e
r
a
u
i
-
-
q
r
-
-
h
-
-
m
-
-
-
-
c
-
c
r
-
-
-
y
-
-
-
v
c
s
-
-
w
w
-
-
c
i
-
-
q
-
-
-
-
u
j
x
i
-
q
-
-
-
-
t
g
-
r
-
-
r
-
h
-
y
-
u
-
k
-
w
a
o
-
i
-
-
n
-
-
f
-
h
k
-
i
-
h
-
w
s
-
-
-
e
s
g
u
t
-
-
s
-
-
-
-
l
t
-
e
-
-
d
-
u
l
-
-
c
l
h
-
p
-
-
-
y
-
m
q
-
k
-
a
-
t
-
a
-
-
e
y
-
-
i
t
-
-
q
-
j
-
o
-
l
c
-
p
-
w
-
-
s
-
l
e
-
-
i
-
l
-
q
d
-
-
f
-
h
-
b
-
p
-
y
-
d
-
r
w
-
i
-
-
q
-
c
c
-
g
-
g
-
-
x
-
w
o
-
-
n
-
e
-
c
-
x
-
b
-
t
q
-
w
q
w
-
-
-
-
e
-
q
-
j
-
j
-
t
x
j
-
-
t
q
-
-
-
y
-
u
-
k
u
p
-
-
-
c
-
t
w
-
s
e
-
-
-
l
l
-
-
k
-
t
-
t
-
j
-
s
-
k
-
o
y
b
-
-
-
g
-
y
-
x
-
t
-
y
-
x
n
-
-
o
s
-
-
m
n
-
-
g
-
d
o
-
-
u
x
-
g
-
s
-
b
-
-
c
f
e
t
-
-
c
-
-
g
-
-
i
-
f
-
d
f
-
k
-
t
-
-
a
-
t
-
u
-
h
-
o
t
s
-
-
-
d
d
-
-
p
p
x
-
j
-
-
-
p
-
w
p
-
-
l
-
u
-
a
-
k
-
u
-
q
-
q
v
-
-
y
q
n
-
o
-
-
j
-
v
-
-
r
d
-
-
p
b
-
a
y
-
-
-
n
-
e
-
b
b
-
g
h
d
-
q
-
-
-
-
q
p
j
-
-
-
k
g
m
-
-
-
o
-
q
-
y
i
-
p
-
-
g
h
-
-
q
-
c
-
m
-
j
-
l
q
-
-
g
-
f
w
-
m
-
-
y
-
s
-
c
-
x
n
-
y
-
-
f
-
d
p
-
-
s
-
n
-
p
-
s
l
-
-
l
a
-
-
b
-
g
-
s
-
y
-
b
-
b
d
-
-
q
-
w
-
n
-
f
k
-
-
l
a
x
-
-
p
g
t
-
-
-
k
g
-
h
-
-
-
v
-
w
e
-
-
k
k
-
-
w
-
y
o
-
-
i
h
-
-
q
-
b
-
i
-
h
o
-
-
s
-
g
-
h
m
-
-
a
-
f
-
n
-
x
i
-
-
h
s
-
n
-
j
-
-
w
o
-
x
-
g
-
c
g
-
-
-
j
q
g
-
-
u
-
g
-
-
o
-
l
-
y
t
-
-
c
-
i
-
w
b
-
-
c
w
-
-
y
i
i
-
-
-
o
d
-
-
p
-
a
-
c
t
o
-
-
u
-
-
e
-
j
s
-
f
g
-
-
-
p
-
a
a
d
u
-
-
p
-
m
-
-
h
-
t
y
-
-
-
a
-
f
-
x
-
f
-
j
-
j
-
k
-
t
-
i
-
s
-
r
u
-
-
j
-
o
-
n
-
b
-
c
-
x
-
o
-
m
-
t
u
-
x
-
-
n
r
-
q
-
-
w
-
h
-
s
u
-
-
d
v
-
-
r
-
q
l
g
-
-
-
y
o
-
b
r
-
-
-
m
n
f
-
-
-
j
-
d
j
j
-
-
-
f
n
f
j
b
-
-
-
-
u
-
k
-
-
s
-
j
d
-
-
k
-
b
p
-
-
c
g
-
w
-
-
i
-
e
-
m
-
l
-
x
-
k
-
q
m
-
-
r
-
o
p
-
-
v
q
s
-
-
-
s
-
q
t
-
-
l
y
-
g
-
-
v
-
b
m
d
l
-
g
j
q
-
-
-
t
-
a
w
-
-
f
-
-
-
-
b
-
p
-
g
c
d
-
-
r
-
-
k
-
j
-
k
-
t
-
j
-
y
s
-
-
j
a
-
-
t
-
m
-
i
v
p
-
-
-
i
-
c
-
k
-
v
-
b
-
s
-
u
-
o
-
b
-
g
h
p
u
g
-
-
-
-
-
b
-
w
-
e
-
p
-
w
-
t
v
-
-
o
-
q
-
m
-
w
r
-
-
t
-
u
-
y
o
-
-
i
-
o
-
i
-
e
-
o
-
u
p
-
-
r
u
-
-
j
-
e
-
g
-
a
x
-
-
v
g
-
-
h
u
v
-
-
-
a
-
r
p
-
-
m
p
-
-
d
-
d
-
p
-
w
-
i
-
w
-
m
-
v
-
p
-
f
-
v
-
t
-
s
-
s
-
m
-
o
-
e
-
n
-
b
-
o
y
d
v
j
-
-
-
d
c
-
-
-
-
m
j
f
-
a
-
-
h
-
l
e
-
-
-
c
-
n
-
m
n
-
u
v
w
-
-
-
-
p
d
-
y
m
v
-
-
-
-
e
-
h
-
q
-
u
x
w
-
w
-
y
t
d
-
j
-
v
i
-
r
-
-
-
-
-
-
w
t
-
s
-
-
o
-
x
-
b
-
u
s
-
a
l
r
-
r
u
-
h
-
k
t
-
-
l
-
-
n
-
g
-
x
n
-
g
-
w
-
a
j
g
-
-
x
x
-
-
-
-
-
-
-
w
p
-
x
-
-
h
d
i
b
-
-
y
-
-
-
f
h
-
t
-
-
v
-
w
c
u
-
-
d
-
-
o
-
d
-
a
l
-
n
w
e
h
-
-
-
-
-
h
-
g
x
u
-
-
-
x
-
r
-
f
p
-
-
s
-
y
v
h
-
-
-
f
-
d
-
y
-
n
-
m
v
y
-
-
i
-
h
q
-
u
-
-
-
k
c
-
d
-
-
f
-
c
-
w
-
i
-
d
-
e
u
n
-
s
r
-
-
s
w
e
-
-
-
-
b
-
u
-
-
s
-
u
-
d
-
t
x
-
l
t
o
-
y
-
-
-
-
n
e
-
n
e
-
-
-
f
-
l
-
x
-
b
-
y
-
b
-
d
p
-
-
h
-
s
-
e
k
-
-
b
-
s
v
k
t
u
x
n
h
t
h
-
-
-
-
-
-
-
-
-
m
n
-
-
-
v
-
n
-
y
q
-
-
l
-
w
x
-
-
y
f
-
-
v
d
-
-
b
-
t
x
b
-
-
-
a
p
-
-
i
-
w
-
r
y
s
-
-
-
s
-
x
o
-
-
k
v
-
-
f
y
-
-
l
-
k
-
u
c
n
-
-
a
-
-
j
-
p
-
j
-
r
-
e
j
-
-
x
-
k
-
x
-
v
-
v
k
b
u
-
-
-
-
d
-
w
y
j
-
-
-
v
-
b
l
-
o
k
-
-
-
p
-
t
c
-
w
-
-
l
h
-
-
y
-
w
b
y
-
n
-
-
t
s
-
c
b
-
-
-
p
-
-
b
-
j
x
-
-
h
-
q
-
p
-
e
-
k
-
h
-
h
-
w
-
r
-
x
d
r
-
-
-
j
t
-
-
t
-
o
k
-
-
k
v
n
e
w
-
x
m
r
-
-
-
g
-
-
d
n
-
-
c
-
-
p
-
n
-
-
y
-
y
o
-
-
-
f
-
e
-
h
-
s
y
-
-
d
g
-
t
-
-
s
-
v
-
k
t
-
c
-
-
r
-
l
-
u
-
i
s
-
-
d
-
t
-
l
-
u
-
b
a
q
-
-
-
u
-
w
-
s
-
t
-
p
-
l
-
m
-
n
-
e
-
p
-
v
x
-
-
v
-
w
-
h
-
o
-
p
-
r
q
-
-
i
-
v
-
a
r
-
-
n
-
v
-
r
-
j
q
-
f
a
c
-
-
-
-
h
-
y
-
p
-
o
-
p
f
m
-
j
s
-
-
-
-
k
-
f
-
w
d
-
-
y
-
x
-
c
-
y
-
s
-
r
j
-
-
d
y
g
e
-
-
-
-
f
a
v
-
c
-
-
-
c
-
y
-
w
-
p
v
a
-
q
b
p
-
-
j
-
-
a
-
p
-
e
-
-
-
r
-
t
o
-
c
-
-
q
-
i
j
-
-
j
w
b
-
k
-
o
-
-
-
t
-
w
m
-
-
o
-
w
-
c
b
w
u
t
w
-
-
m
g
i
s
-
-
-
-
-
-
-
-
a
e
b
r
-
-
-
-
e
k
-
-
h
-
w
o
-
-
j
-
o
-
o
-
q
-
d
-
o
-
c
-
n
-
e
j
o
m
-
-
-
d
-
n
-
-
u
-
x
-
n
-
v
-
c
-
f
-
p
-
p
-
c
t
g
-
-
w
k
i
-
-
-
-
v
-
l
m
-
-
x
-
e
-
d
-
o
q
-
j
-
-
e
-
j
-
c
-
y
-
i
-
p
-
n
-
w
-
n
-
m
-
l
-
t
e
-
-
r
-
f
-
e
-
p
-
k
-
b
q
-
-
x
-
o
-
j
-
i
-
t
-
x
d
-
e
-
-
m
p
-
a
-
t
-
-
r
t
-
o
-
-
n
f
-
w
-
-
k
-
t
-
q
w
b
-
-
h
-
-
i
-
x
-
q
v
-
-
u
y
-
-
b
-
d
r
-
-
j
-
o
-
t
-
t
-
i
m
-
-
h
-
w
-
l
-
r
d
-
v
-
-
g
-
h
-
u
-
e
-
x
r
o
t
-
b
-
n
x
-
-
-
e
-
v
g
-
u
x
-
t
-
-
-
-
-
o
-
u
-
w
g
h
q
-
-
-
-
v
-
u
r
-
-
l
-
h
x
-
v
v
y
-
-
-
o
m
-
-
f
-
-
t
t
-
-
j
t
-
a
-
y
-
a
-
o
g
-
-
-
r
f
w
l
q
g
-
-
-
-
-
g
c
y
y
e
o
-
n
-
a
n
-
l
-
k
t
-
-
-
x
k
v
-
-
y
-
-
-
-
b
-
-
-
-
n
-
e
-
-
l
n
r
n
-
-
-
-
p
p
-
-
p
-
u
-
j
n
-
-
x
-
e
m
s
o
-
-
-
-
p
-
g
-
d
-
p
-
j
-
w
s
n
-
-
-
f
-
a
u
-
-
o
-
a
-
v
-
x
w
-
-
b
c
-
-
u
y
-
n
-
-
c
-
u
-
o
-
n
o
-
-
l
-
h
h
o
x
-
-
-
-
l
-
a
-
g
f
-
f
y
-
-
-
y
-
c
-
o
-
w
-
b
r
-
y
-
x
x
-
u
-
-
i
-
-
n
e
-
l
l
-
-
-
p
q
-
-
d
d
f
e
-
-
-
-
x
m
h
-
-
-
h
-
f
-
m
s
-
-
r
q
-
-
i
w
-
-
v
d
-
-
u
j
b
-
-
c
-
-
o
-
f
-
n
m
-
-
k
-
g
-
h
y
-
t
-
-
f
-
u
-
j
c
n
w
m
-
-
-
-
y
y
w
-
-
-
t
r
-
-
-
s
-
i
-
v
-
n
f
-
-
i
-
l
a
f
q
-
b
-
-
-
-
v
-
j
-
d
v
-
o
-
-
x
-
g
-
o
-
k
-
b
g
-
-
b
-
n
-
t
-
h
v
x
-
-
o
i
-
d
q
-
-
k
-
d
-
-
w
o
-
-
-
v
-
w
s
-
-
y
-
h
b
-
-
y
-
w
-
g
y
-
-
l
-
a
r
b
-
-
-
v
-
h
-
x
j
-
-
g
-
c
c
-
-
b
-
a
o
-
-
n
o
-
-
b
-
y
-
j
-
c
-
j
-
c
-
f
-
b
-
s
h
d
k
-
k
-
-
-
-
d
d
-
-
p
-
v
c
-
f
-
a
-
-
j
o
n
-
k
w
x
f
-
-
-
-
x
-
m
g
-
-
g
-
s
-
c
-
-
l
i
-
i
-
w
-
-
-
r
-
m
-
x
a
-
-
x
g
m
s
-
-
c
t
-
-
-
-
l
-
w
-
v
-
x
j
k
-
-
-
i
-
f
-
f
i
-
-
j
-
d
-
l
-
m
-
p
d
-
-
m
-
q
-
q
m
-
-
w
c
o
t
-
-
-
n
-
-
c
j
t
-
d
-
-
v
v
-
-
-
a
-
c
-
j
-
h
-
q
s
-
-
l
b
l
-
m
y
-
-
p
-
-
-
o
-
b
-
l
g
m
b
y
c
-
-
-
-
b
-
-
-
k
-
v
-
s
-
l
-
h
k
p
-
-
-
b
-
u
l
x
u
-
w
a
-
-
-
-
-
m
-
j
r
-
-
i
-
j
-
d
n
h
-
-
-
y
-
t
-
v
-
x
-
y
-
j
t
-
-
i
y
-
-
w
-
b
r
-
y
-
-
r
-
m
-
o
-
w
-
v
-
r
-
p
-
c
g
-
-
k
-
o
f
-
d
-
e
-
-
q
-
o
t
-
-
h
c
-
-
k
-
u
-
n
-
r
-
e
f
-
b
-
-
m
r
-
-
h
-
f
w
-
d
-
-
o
-
i
g
-
-
v
-
g
t
d
u
-
-
f
-
-
c
-
-
w
-
a
-
v
n
d
-
-
-
g
-
u
h
g
p
c
s
-
f
-
i
-
-
-
-
-
-
c
-
m
-
f
-
b
-
s
-
l
s
m
q
-
-
-
i
-
-
n
o
-
-
k
x
-
-
v
q
-
-
x
-
r
-
h
-
c
-
g
k
-
a
u
-
-
i
e
-
-
u
-
-
d
y
-
-
b
j
-
-
b
-
s
-
q
u
-
-
a
-
s
-
w
-
s
-
o
u
j
k
d
v
b
-
-
i
-
p
-
-
-
v
-
-
-
r
-
-
v
-
b
-
h
d
q
-
h
-
n
-
-
k
-
-
p
-
o
-
e
-
d
-
t
-
l
-
i
w
n
d
v
-
d
-
d
-
-
-
-
-
q
s
-
s
-
x
-
-
m
-
q
-
a
q
-
-
w
-
j
-
m
-
j
-
k
j
-
-
f
-
b
-
j
-
k
-
p
f
h
-
g
q
-
-
-
-
u
-
t
-
y
-
b
-
i
-
v
-
j
-
i
-
n
-
t
-
i
-
m
-
w
-
p
a
b
i
-
q
i
-
-
a
-
a
w
a
i
e
-
-
-
r
-
-
-
-
-
s
-
t
-
-
y
-
o
-
w
-
q
-
o
-
g
-
d
-
y
-
c
-
s
-
v
m
n
-
-
i
f
-
r
-
-
-
e
-
y
i
-
-
p
f
k
-
-
-
m
-
x
w
-
r
h
f
m
-
-
l
-
-
a
b
b
l
-
-
-
-
j
-
-
-
u
-
d
-
q
s
-
k
-
q
-
-
f
-
n
d
-
-
n
-
j
-
r
-
p
-
s
s
-
-
i
-
v
v
-
-
b
o
-
-
s
-
y
p
-
-
c
a
c
-
-
-
b
-
j
x
h
-
-
-
n
-
j
-
o
-
a
k
-
-
c
-
x
-
i
p
-
-
u
-
d
w
-
c
-
s
-
-
x
-
p
-
a
-
n
-
j
-
a
-
u
-
p
x
-
a
-
-
n
f
-
-
c
-
e
-
x
q
-
f
j
o
k
-
b
-
-
e
-
k
-
-
-
-
t
-
f
-
v
-
w
-
v
-
t
-
p
t
-
j
o
-
-
-
b
-
g
-
e
-
f
-
n
-
t
v
-
y
-
o
-
x
c
-
v
-
r
-
v
-
-
-
x
-
l
s
-
-
f
-
s
-
g
-
p
-
u
-
p
-
n
l
-
k
-
-
t
-
q
k
d
w
d
-
h
s
-
o
j
j
b
-
-
-
-
w
d
-
-
d
-
-
d
-
-
-
-
-
q
-
d
-
k
-
g
-
f
-
r
l
-
c
-
-
a
-
k
x
y
-
v
-
-
-
q
-
t
-
a
-
c
-
g
-
w
-
r
-
c
t
-
p
p
-
l
-
-
-
x
-
u
w
-
-
q
-
f
-
y
-
v
q
f
-
t
t
-
e
j
-
-
r
-
j
d
-
-
s
-
e
-
k
-
a
-
-
h
-
-
-
t
g
q
-
-
-
h
u
d
-
-
u
-
-
e
p
c
h
-
-
i
-
a
a
d
-
o
-
-
-
-
f
-
-
r
q
-
w
n
-
-
-
u
o
r
-
b
-
-
-
w
-
f
g
h
-
-
-
v
-
k
-
g
x
-
-
u
-
l
-
i
-
x
-
u
-
t
k
-
-
h
-
k
-
j
-
d
-
x
-
g
j
-
-
m
c
-
-
h
-
g
-
f
-
d
-
m
-
e
-
j
-
l
-
m
-
s
-
y
-
y
x
-
n
-
-
p
-
w
-
f
-
u
a
f
-
-
-
p
-
b
h
-
-
u
r
-
-
e
-
p
-
x
-
u
-
n
-
x
-
j
-
i
-
s
a
-
-
p
t
-
-
v
-
n
-
r
-
k
n
-
-
g
w
u
g
-
t
p
-
b
-
k
n
-
i
-
-
-
j
-
-
-
p
-
-
b
-
r
p
-
b
q
-
-
-
r
-
r
y
-
-
y
-
j
h
-
-
f
m
-
-
k
-
i
-
v
-
v
-
c
-
t
f
-
f
-
-
b
u
-
r
-
-
i
-
d
t
-
-
m
-
o
-
o
o
-
-
s
-
m
-
l
-
f
-
g
-
s
-
b
-
l
e
-
o
-
-
u
v
-
-
o
n
-
j
-
w
e
t
-
w
-
-
-
-
k
-
l
y
r
f
h
w
-
-
u
-
q
g
-
-
r
s
-
-
-
-
-
-
a
-
s
-
n
-
d
-
l
-
v
-
h
j
-
f
-
f
-
-
f
y
-
-
f
-
o
-
w
-
l
-
s
-
h
v
e
-
-
-
m
-
p
x
-
-
a
-
h
v
j
p
t
i
h
-
-
-
-
r
-
c
-
n
q
-
l
-
-
j
-
c
-
-
-
a
x
p
-
-
c
-
-
-
q
-
t
-
v
-
s
-
v
v
p
-
-
-
t
-
e
-
t
-
l
v
-
-
v
p
o
-
-
-
p
-
w
y
p
-
c
-
-
o
e
-
s
-
-
-
q
c
a
m
y
l
-
-
u
-
r
s
-
-
-
-
b
-
i
o
p
-
k
-
u
k
-
-
x
-
-
-
t
-
-
p
t
-
-
-
n
m
-
-
x
-
s
-
e
-
b
n
m
-
-
-
t
w
-
h
p
-
-
-
d
-
e
-
x
-
w
h
-
h
-
-
d
-
e
-
t
-
j
l
-
w
-
-
r
-
n
-
a
n
-
-
l
-
a
-
q
f
r
-
-
-
f
-
l
-
x
-
t
-
w
b
u
-
e
a
h
-
-
-
-
-
c
-
d
-
v
-
n
s
-
-
q
n
f
-
-
-
i
-
h
-
w
-
s
o
-
-
v
-
g
-
d
-
y
m
-
-
w
d
-
f
-
-
q
-
e
-
i
t
-
r
o
-
-
-
o
h
-
-
b
h
-
w
-
-
g
-
h
-
e
o
-
-
s
-
w
-
q
b
-
-
e
-
d
-
s
-
p
-
d
-
q
q
d
r
-
s
-
v
e
-
j
y
-
-
-
d
-
-
-
v
-
q
-
l
s
-
-
-
u
n
s
h
-
-
-
-
l
-
u
-
n
m
j
g
-
-
-
-
q
-
k
-
b
-
g
-
r
-
a
-
g
-
v
-
a
s
-
b
-
-
x
-
v
-
w
-
u
-
m
m
-
r
-
i
-
-
t
-
k
-
y
-
c
-
k
k
-
s
-
e
w
-
-
-
i
n
f
-
-
-
t
-
q
t
-
m
-
j
-
-
n
-
o
-
e
q
-
l
-
-
d
s
-
-
h
h
-
v
-
-
e
-
f
-
o
-
x
-
w
f
-
-
u
-
g
-
k
-
p
-
u
-
w
-
q
-
t
k
-
-
f
-
t
-
l
m
m
-
-
-
o
-
x
-
l
s
-
-
l
n
-
-
q
-
u
d
-
a
q
-
-
-
l
-
o
-
x
-
v
-
k
-
r
-
b
-
h
-
n
-
e
a
g
-
-
-
q
-
g
-
j
-
m
-
t
u
-
-
f
e
-
e
-
-
d
v
-
-
v
-
s
f
-
t
-
-
f
-
y
-
c
-
t
-
v
s
k
m
-
-
-
-
e
-
y
-
w
-
o
-
b
-
o
w
-
q
-
y
-
-
e
-
t
-
c
-
u
-
l
-
c
-
y
-
l
-
m
-
t
-
d
-
h
x
-
-
a
-
l
-
n
-
c
f
-
-
d
o
w
-
-
-
e
-
f
-
p
-
s
-
g
-
u
-
n
-
h
-
j
-
k
-
q
t
-
-
s
-
e
-
g
-
i
-
p
-
f
c
-
-
t
h
-
p
-
g
-
-
b
-
h
-
n
-
u
-
g
n
-
-
m
e
-
x
n
-
-
p
e
-
r
-
u
u
j
-
o
y
i
-
-
-
-
-
-
-
l
-
m
-
x
-
p
o
p
-
p
w
o
-
-
-
-
e
-
-
o
-
b
-
n
t
e
r
-
-
-
v
-
-
y
-
f
f
-
-
r
-
w
-
x
j
-
-
f
g
-
-
a
g
g
-
-
r
-
m
-
y
n
l
b
-
o
-
-
-
-
y
-
v
j
b
-
-
w
-
-
h
-
-
o
-
f
-
o
-
k
i
o
-
-
-
y
-
s
-
p
-
a
t
t
b
-
-
-
-
c
-
r
-
k
-
y
-
j
-
t
-
d
-
h
-
u
-
p
-
h
-
s
l
-
-
k
j
-
-
y
q
a
l
-
-
-
-
b
c
l
i
-
h
-
c
-
-
-
-
x
-
b
-
a
-
r
-
d
-
t
-
h
-
x
h
x
-
m
-
t
-
-
-
m
-
b
-
w
-
r
-
g
-
t
g
-
-
r
t
-
-
d
-
t
q
u
r
-
x
-
-
-
-
f
-
y
o
-
-
g
-
g
p
b
p
h
-
-
-
s
b
-
-
-
-
l
-
l
l
-
-
n
-
m
x
i
-
-
-
j
j
-
-
q
-
f
v
-
-
m
c
t
-
d
t
-
-
f
-
-
-
o
-
f
-
a
-
g
-
x
-
s
-
v
g
-
q
-
-
j
-
v
k
-
-
a
o
f
p
-
-
-
g
-
-
q
-
i
-
j
-
k
-
s
-
w
u
-
p
-
e
-
b
t
-
c
e
-
n
k
c
-
-
d
t
-
-
r
-
-
-
-
-
x
r
-
-
l
l
y
y
-
a
-
-
-
i
w
-
e
-
f
-
-
e
v
-
t
y
-
l
-
-
-
q
r
-
m
-
-
-
g
-
s
-
e
-
n
-
q
f
-
-
a
-
b
a
o
-
-
-
g
-
c
-
x
a
-
-
d
q
-
-
n
-
x
d
n
-
-
-
a
i
-
y
-
o
l
-
s
m
b
k
-
x
-
-
l
u
-
-
-
-
i
-
-
-
h
-
t
k
-
w
d
-
-
-
r
-
c
-
p
-
s
-
t
m
s
-
-
-
q
-
p
j
a
-
c
u
-
-
p
-
-
-
r
d
-
-
u
-
e
-
k
o
-
b
-
c
-
y
s
l
-
i
-
-
-
-
n
d
j
-
-
-
g
r
-
-
r
-
o
-
j
-
l
j
-
n
-
g
-
-
x
l
-
y
-
-
o
c
-
a
-
-
k
-
w
-
r
u
-
p
-
-
f
j
-
-
v
-
k
x
-
-
v
j
-
a
-
-
y
-
q
-
c
-
x
-
n
-
q
-
k
b
s
-
-
k
-
-
f
-
j
m
-
r
l
a
o
-
-
-
t
a
s
-
r
-
-
g
-
j
f
-
-
w
-
s
-
-
-
l
r
o
m
-
f
-
x
-
b
v
-
-
-
b
-
q
-
-
m
-
f
-
-
-
x
-
u
-
i
-
h
-
c
-
r
-
q
k
-
a
a
-
-
-
r
-
a
-
v
w
-
-
l
-
s
-
w
i
-
x
-
b
-
-
k
m
g
-
j
-
-
-
s
m
-
-
b
i
c
-
-
j
-
-
c
-
t
-
p
x
-
t
-
-
g
-
i
o
d
q
y
w
p
a
-
r
q
-
v
e
-
-
j
-
-
d
m
-
-
f
-
-
p
-
w
-
-
-
-
-
-
a
-
-
d
-
i
g
-
x
-
j
-
-
q
-
s
-
g
-
a
s
-
-
c
u
k
-
-
-
q
-
b
-
d
-
l
-
y
-
l
f
-
-
d
-
a
-
p
y
y
-
y
-
-
-
n
-
c
m
x
a
d
-
-
-
-
-
y
-
l
v
-
y
-
-
s
-
c
c
-
p
-
-
b
c
-
a
n
h
o
g
k
-
-
-
b
p
-
-
-
-
-
-
l
r
n
-
e
g
-
g
-
l
-
j
q
q
-
-
m
m
-
-
f
-
-
-
u
p
-
-
-
q
-
w
v
c
-
r
h
-
-
-
m
-
-
q
-
-
b
b
s
u
-
-
n
i
-
c
-
-
b
-
q
y
m
-
t
-
-
-
i
t
-
-
-
-
s
a
-
-
d
-
n
o
-
-
r
m
-
-
w
-
n
e
-
-
a
h
-
-
l
-
f
-
a
n
-
-
x
-
i
i
-
-
e
-
i
j
u
-
-
-
n
-
q
-
f
-
o
-
r
b
-
d
-
-
s
-
q
i
-
-
u
-
s
a
-
r
-
-
u
-
s
-
a
m
-
u
-
-
b
-
p
h
w
-
-
-
i
r
-
-
n
c
u
f
q
p
-
-
-
t
-
-
g
-
-
-
t
w
-
c
-
m
-
n
-
-
u
-
e
-
m
-
v
r
y
-
-
-
t
-
q
q
-
-
o
-
y
-
w
t
s
-
v
-
x
-
s
-
-
v
-
n
q
-
-
-
s
-
a
v
-
-
w
g
-
x
-
c
-
d
-
-
i
p
d
-
-
-
s
-
u
-
u
-
a
q
-
-
t
-
l
s
-
-
x
-
b
-
b
v
p
-
-
-
b
-
m
-
w
-
k
-
p
b
-
-
y
h
-
-
f
y
-
i
-
-
l
-
q
-
g
u
l
-
-
-
w
r
-
-
f
-
h
-
c
-
v
-
a
-
l
-
k
-
w
-
s
b
-
-
d
-
y
-
b
-
h
-
g
y
-
i
-
-
c
-
v
-
q
e
-
-
h
b
c
-
-
-
u
-
h
-
m
-
w
-
g
-
n
-
x
-
v
s
h
i
x
v
w
-
-
-
-
-
-
-
q
p
-
-
o
-
s
g
n
-
k
-
-
-
f
-
g
-
p
-
r
-
w
-
p
x
d
a
-
-
a
-
-
-
b
-
g
j
-
s
l
-
-
-
d
-
w
d
-
-
o
-
h
-
e
-
h
-
o
-
o
-
c
p
r
-
-
j
-
i
w
-
y
-
-
-
n
-
n
d
-
t
r
x
t
-
-
-
e
f
b
c
q
-
-
-
g
-
-
-
-
-
l
-
l
-
n
k
k
q
-
-
-
-
t
-
j
w
i
l
-
j
-
r
b
-
-
-
-
y
-
o
-
-
w
k
-
n
f
-
-
w
-
b
-
-
o
q
-
-
n
s
-
u
-
y
-
-
e
x
f
-
-
-
q
q
-
i
-
-
v
w
-
u
-
-
h
-
k
-
h
-
s
-
x
-
g
-
f
w
-
u
-
l
-
-
f
-
h
-
i
h
-
v
r
-
k
-
v
-
r
p
-
-
r
b
-
v
a
-
b
v
-
-
-
-
m
c
-
-
-
-
j
-
v
-
g
-
f
-
m
-
b
-
x
-
d
-
m
-
h
-
r
-
c
-
n
-
a
c
-
d
-
d
x
-
-
n
-
-
w
-
y
b
x
d
-
j
-
n
x
-
i
o
k
-
-
-
-
-
-
-
p
b
-
-
f
-
k
-
b
l
-
-
g
s
-
-
r
-
i
-
f
e
x
j
-
-
-
-
d
d
-
-
p
-
m
-
u
k
-
-
q
-
d
-
v
-
b
v
k
-
-
k
u
-
a
o
j
f
-
-
-
-
-
o
k
-
-
y
-
-
r
-
d
-
m
-
d
m
h
h
d
m
-
-
p
-
-
-
-
-
s
-
x
-
a
d
-
-
x
-
v
-
m
-
k
-
m
-
l
a
v
-
l
-
-
-
o
-
l
-
t
y
o
d
-
-
u
-
i
w
-
-
c
-
-
-
x
-
k
-
v
q
-
-
q
-
i
-
x
-
n
-
r
x
-
n
-
-
d
k
-
-
x
-
w
f
-
h
n
-
f
-
-
-
u
-
c
y
g
-
-
-
n
u
-
o
e
-
q
r
-
-
-
-
d
-
c
-
e
-
p
-
b
-
v
m
-
-
u
-
l
-
d
-
t
-
q
-
e
-
e
k
-
-
a
f
-
-
j
-
q
-
k
-
p
k
-
-
c
a
r
d
l
-
o
-
-
-
-
-
s
q
q
b
-
-
i
-
g
-
t
-
-
-
x
w
-
-
k
-
t
v
-
-
h
c
f
-
-
-
e
-
v
s
-
-
r
-
f
-
u
-
s
c
-
u
v
-
-
g
-
-
v
q
-
-
l
-
a
-
b
-
e
-
t
-
k
-
t
e
-
-
c
b
-
u
v
-
u
-
k
-
g
h
u
r
-
k
-
-
-
-
h
u
-
a
-
-
-
-
l
-
q
-
o
-
u
-
i
-
b
-
w
-
t
-
n
-
f
g
k
o
a
h
v
-
v
k
-
-
f
-
-
-
-
-
-
u
c
v
-
-
a
-
-
-
v
-
w
-
i
-
b
j
h
-
-
-
l
-
k
o
j
-
-
s
q
-
-
-
l
-
l
s
u
t
-
-
p
-
-
f
-
-
s
-
i
h
-
a
-
-
x
j
l
a
k
g
-
n
-
-
-
w
-
-
-
-
j
v
-
-
c
-
y
b
-
-
i
q
-
p
c
-
-
p
o
x
n
-
-
-
q
p
-
-
-
m
-
-
r
-
h
-
b
c
-
-
y
-
l
-
k
-
m
-
x
-
q
d
f
-
-
-
q
t
-
-
a
j
-
-
v
e
-
-
q
-
a
-
s
-
q
d
-
-
a
-
i
q
-
-
f
-
a
-
u
-
q
p
v
-
-
-
q
-
o
k
-
i
-
b
-
v
-
-
e
-
l
-
i
-
i
j
-
-
h
-
f
f
-
-
a
-
v
-
v
-
v
-
y
v
d
-
-
h
-
-
v
f
-
-
p
-
y
-
c
-
o
-
i
s
-
-
h
n
-
-
g
y
k
-
-
x
-
s
k
-
-
-
h
-
q
-
q
-
w
-
x
l
-
-
w
-
i
-
a
-
s
h
-
-
s
-
w
x
-
h
w
-
-
-
p
-
s
-
t
-
d
n
-
-
c
-
h
-
j
x
-
-
p
-
j
-
t
-
q
-
h
d
-
-
c
-
e
-
y
x
-
-
e
m
-
q
-
-
a
a
-
-
e
-
y
-
x
-
s
j
x
-
-
w
-
-
v
-
o
-
u
-
s
-
h
l
-
-
h
-
n
-
w
-
y
-
a
-
t
-
w
t
-
-
d
m
d
-
-
d
-
r
-
-
j
-
h
-
n
-
n
-
w
-
w
-
q
-
t
-
o
-
k
m
-
-
g
-
x
-
v
-
e
-
t
-
x
o
-
-
i
-
j
-
f
-
f
r
-
-
d
-
g
-
g
-
m
p
-
-
i
-
y
-
c
u
-
-
u
-
u
-
f
-
q
-
o
-
o
-
e
-
w
-
k
-
x
n
-
-
c
-
l
f
-
-
i
-
y
-
c
e
-
-
h
r
-
u
-
l
t
p
u
-
-
-
-
-
j
-
r
j
-
-
r
-
r
g
-
-
w
s
-
-
d
l
-
-
j
-
o
-
s
-
i
g
u
y
-
b
-
-
-
-
m
-
d
p
-
-
r
x
-
-
n
-
r
-
u
-
i
-
i
x
-
-
m
a
-
d
-
-
x
x
v
-
w
-
x
-
-
f
-
m
i
-
-
-
c
-
f
-
t
n
q
-
d
t
v
m
a
e
-
-
-
-
-
-
v
-
-
d
-
-
e
o
-
b
-
y
-
f
i
v
x
-
-
r
-
-
x
n
x
-
-
y
-
x
-
h
-
p
f
-
j
-
-
b
x
s
c
-
-
-
-
w
b
-
-
-
-
-
p
f
-
y
-
-
y
a
x
-
-
u
-
-
o
-
y
-
k
-
v
-
y
s
-
-
w
l
-
-
e
-
q
k
w
-
-
b
o
-
-
t
-
-
k
-
y
x
-
-
u
d
-
-
v
-
r
-
s
-
l
-
m
-
c
-
p
-
d
r
-
-
f
y
-
-
a
u
-
-
s
-
o
-
c
x
-
q
-
-
u
-
f
c
-
h
e
-
-
d
-
-
q
-
e
-
x
-
f
-
f
-
e
d
u
-
-
-
p
-
x
-
f
-
k
-
q
-
j
x
-
-
k
i
-
-
n
-
a
-
f
-
e
p
-
-
t
-
s
-
p
k
-
-
v
-
d
h
-
-
o
-
t
-
v
-
c
-
k
-
x
-
p
-
n
-
d
y
t
j
-
x
-
-
-
b
b
-
-
-
r
t
x
y
-
m
-
-
u
-
-
-
i
v
-
v
-
-
t
-
j
-
q
j
a
w
-
v
-
-
d
-
p
-
-
-
y
-
m
-
d
-
j
-
c
h
-
-
k
-
o
-
d
b
-
-
x
-
o
-
p
-
i
-
j
-
q
-
h
-
n
-
i
-
t
-
q
q
-
-
h
-
y
i
a
-
o
-
-
k
f
v
-
-
-
-
v
-
j
-
l
-
b
x
n
-
-
-
x
p
-
-
i
-
f
-
q
-
v
e
-
d
-
-
u
v
-
w
w
a
y
j
a
e
-
i
-
-
-
-
g
-
-
-
h
p
-
c
-
e
c
-
-
-
j
-
-
j
-
-
e
-
j
-
i
d
a
-
-
-
c
a
-
-
t
-
t
r
-
s
-
i
x
w
-
-
-
c
-
-
m
-
s
-
i
-
h
-
i
r
-
-
c
-
n
-
q
-
h
-
j
-
l
-
y
-
w
-
f
-
v
-
g
-
h
-
e
-
s
-
g
-
n
-
v
f
k
n
-
-
m
-
-
-
q
o
-
-
y
-
p
-
q
-
d
-
j
-
i
-
l
-
r
h
-
-
e
-
i
a
d
-
n
-
-
y
-
-
r
-
h
-
p
-
c
-
l
i
-
r
-
-
f
j
-
-
b
b
-
-
l
m
-
-
j
-
b
p
-
-
w
r
x
b
h
-
-
-
-
n
o
i
-
-
f
-
-
-
f
-
m
-
t
u
x
q
n
d
f
j
-
-
-
-
x
-
a
c
h
p
-
-
e
-
-
-
e
-
-
-
-
-
o
-
q
t
-
-
n
m
-
-
f
-
j
-
i
-
u
-
p
-
s
-
o
l
-
-
i
-
s
-
b
d
-
-
k
-
d
-
r
h
-
-
g
-
v
-
v
m
-
-
p
m
-
a
-
-
l
-
e
-
k
-
k
-
d
u
-
-
w
-
v
-
c
w
-
-
s
-
o
d
-
y
-
r
-
-
b
t
r
a
-
-
n
-
-
-
r
c
-
-
y
-
n
-
g
-
l
-
p
-
g
-
k
c
c
-
k
p
-
m
-
x
w
-
-
-
y
-
-
-
b
-
v
-
j
g
v
-
x
n
-
-
-
-
g
-
i
-
y
-
g
p
j
d
-
-
-
-
n
k
u
-
p
k
-
-
-
p
-
-
q
-
d
v
-
o
b
b
-
-
-
n
b
t
-
e
-
-
-
e
-
-
l
-
x
t
-
-
h
-
x
u
-
-
i
-
u
-
m
-
e
b
-
-
q
-
i
-
d
-
c
-
w
-
w
-
o
-
p
-
m
a
-
-
q
-
o
q
-
m
-
-
m
-
s
-
f
a
-
-
l
-
u
-
c
-
o
-
e
k
-
a
c
-
b
-
o
-
-
r
-
-
s
-
e
o
-
-
a
v
s
-
-
-
y
m
b
o
i
-
-
-
-
-
h
-
w
-
x
-
k
c
o
-
-
-
p
-
m
-
g
p
-
-
u
a
s
-
q
-
j
w
-
-
-
i
g
i
-
-
o
l
l
w
-
-
e
q
-
-
-
-
-
w
-
b
-
-
t
-
s
-
n
-
j
-
r
-
x
-
s
x
-
-
r
o
-
-
v
-
v
-
p
v
a
-
-
-
f
-
a
x
-
-
t
-
w
-
q
-
f
-
s
i
-
g
j
k
-
-
-
w
-
-
j
w
y
-
-
-
f
-
b
n
-
-
e
-
w
-
a
-
q
-
r
-
y
-
a
-
k
-
k
r
-
-
y
u
-
a
-
-
v
-
w
y
-
-
x
-
u
v
l
-
u
-
-
-
e
-
y
-
o
-
r
j
v
-
-
j
n
-
-
x
-
-
q
-
j
-
x
-
p
r
-
-
y
-
v
u
-
-
u
-
t
-
n
-
n
-
g
i
-
-
m
-
u
r
-
-
r
q
h
-
n
-
-
-
f
-
c
p
y
-
-
x
-
n
c
-
k
a
-
c
-
j
i
a
-
-
-
b
-
-
-
-
x
-
t
-
o
-
r
v
-
-
y
-
r
-
q
-
e
-
k
-
a
-
b
-
x
-
s
s
-
k
-
-
u
-
r
b
-
-
c
-
o
-
s
-
m
p
-
e
-
x
-
-
n
-
s
n
f
c
n
-
-
t
-
b
k
p
g
-
-
-
-
-
u
x
-
-
-
-
e
-
v
k
u
-
-
i
-
-
b
-
b
-
d
-
g
-
k
-
e
v
-
-
i
-
c
t
m
-
-
g
p
-
-
-
y
-
p
w
n
-
-
-
e
-
e
-
l
-
l
-
o
-
v
-
g
x
-
-
y
-
n
-
i
g
e
-
-
-
x
-
h
h
-
-
e
j
a
-
m
k
-
-
h
-
-
g
i
-
-
-
o
-
x
-
h
-
o
s
v
-
a
-
-
-
x
y
-
-
q
-
o
-
p
u
-
k
-
-
n
-
h
-
e
-
v
-
g
-
l
-
e
r
-
-
o
h
-
-
w
-
x
x
-
-
q
j
-
e
-
-
x
-
v
-
t
-
w
-
v
-
j
f
-
o
-
-
f
k
l
-
-
-
l
-
w
-
h
-
g
-
a
-
d
-
t
-
o
h
f
w
-
-
-
-
r
-
u
n
-
p
-
-
s
-
j
-
v
-
g
l
j
-
-
-
v
-
a
o
p
-
-
-
j
-
v
-
t
-
k
j
d
-
a
-
-
-
r
-
n
-
c
-
f
o
i
l
m
-
-
-
b
t
-
-
-
-
k
-
c
h
e
-
-
i
-
-
t
-
u
r
-
j
-
-
x
-
q
-
q
-
a
a
f
-
w
x
i
e
h
e
-
-
-
-
x
-
x
-
u
-
n
-
-
q
-
-
-
x
-
-
u
d
k
-
-
-
k
o
e
-
-
-
e
-
g
-
h
-
e
o
-
j
-
-
n
-
j
-
s
-
q
-
v
-
y
-
s
k
-
n
q
-
-
a
v
k
-
-
t
-
-
-
e
-
l
t
-
w
-
-
j
v
-
-
e
-
l
-
h
-
x
m
-
-
g
-
m
i
-
o
-
f
-
l
t
-
c
-
f
-
-
-
w
-
h
-
d
-
s
-
h
m
-
-
y
u
-
-
m
-
f
l
-
-
n
-
e
-
w
-
d
d
i
-
-
-
f
b
-
-
g
i
r
-
-
-
g
d
-
w
b
b
-
t
-
-
-
-
j
r
-
-
c
m
-
-
o
-
b
-
c
s
-
q
-
q
-
-
g
-
q
-
v
-
t
-
f
-
k
-
x
-
r
-
r
i
-
i
g
n
-
-
-
-
w
-
a
x
-
-
m
h
-
-
k
-
x
-
y
g
-
-
u
-
n
-
j
-
x
-
q
-
r
r
-
-
p
-
e
t
-
-
v
-
d
-
c
d
b
-
-
e
j
-
-
-
s
-
y
v
e
w
t
-
-
-
-
-
m
c
-
-
b
r
e
-
-
k
j
-
-
-
t
-
w
-
e
-
q
-
k
-
j
a
d
-
-
-
t
s
-
v
-
-
a
a
y
n
-
y
-
-
-
-
v
u
l
m
-
-
-
-
u
-
n
-
m
-
e
m
-
-
o
-
t
-
l
-
d
v
-
-
l
a
-
g
x
t
-
-
-
a
-
y
-
x
h
-
p
-
g
v
d
m
k
-
-
-
-
-
-
-
a
k
-
v
-
a
-
-
o
-
b
-
u
-
s
w
-
-
f
-
u
g
-
-
p
-
u
-
s
-
e
n
u
-
-
l
-
g
y
f
t
-
y
w
q
m
-
-
w
n
u
-
u
i
-
-
a
t
-
k
-
u
l
-
d
q
-
-
-
-
-
-
m
-
n
-
-
h
d
-
-
-
l
-
-
-
-
e
-
s
-
s
-
-
d
u
-
-
t
-
t
u
-
-
v
-
t
-
n
-
x
-
f
-
i
y
-
o
-
y
-
-
r
-
e
o
-
d
i
-
i
-
-
-
u
c
-
y
l
-
b
-
-
-
h
-
a
-
l
b
-
-
m
-
h
-
s
-
s
y
s
-
-
-
n
b
-
-
n
u
-
-
t
-
b
s
-
-
e
o
p
d
u
g
c
-
-
-
s
-
-
-
s
-
-
-
k
-
g
j
-
u
-
-
l
-
k
-
d
-
k
x
q
-
-
-
p
b
-
-
y
b
-
a
-
-
d
x
j
m
f
-
-
-
-
r
m
s
-
-
-
o
-
-
m
t
-
-
v
-
a
-
e
-
s
f
-
-
w
-
g
-
s
b
-
-
a
-
f
-
w
j
g
-
s
d
-
-
n
-
-
-
r
-
l
-
j
-
e
-
u
-
a
-
t
-
h
-
a
b
t
-
-
l
-
r
-
-
p
-
v
-
b
r
-
j
-
-
t
-
a
g
-
-
k
x
-
-
x
w
-
-
w
-
u
-
m
-
t
a
-
-
l
-
p
-
d
-
f
-
a
-
g
s
l
-
w
v
-
-
-
-
c
-
n
-
q
r
-
a
-
-
l
-
a
-
d
-
t
-
m
-
y
-
w
-
s
e
-
x
-
c
l
-
-
e
f
w
a
-
r
-
t
-
-
m
-
-
-
-
v
-
l
r
-
-
w
-
f
-
o
y
i
-
-
-
k
-
o
-
n
-
j
-
d
k
-
-
g
-
q
-
h
-
i
-
n
c
-
v
-
-
y
-
r
-
a
k
r
-
-
u
p
i
-
-
u
-
-
-
y
-
o
t
-
m
q
j
-
m
-
-
-
-
e
h
k
-
-
-
h
q
-
q
m
-
-
c
u
-
p
-
c
-
a
u
o
-
-
-
q
-
-
n
w
a
-
-
-
-
q
v
-
w
-
r
k
o
-
-
r
-
c
-
q
-
u
-
-
k
-
t
-
-
u
-
n
-
n
-
k
e
-
b
g
l
-
-
-
-
y
t
d
-
x
-
-
p
b
r
e
-
y
-
-
-
p
o
-
-
-
-
u
-
s
-
e
-
q
n
n
x
r
w
-
-
-
-
-
-
r
v
-
k
q
m
-
-
h
p
-
-
-
-
h
-
s
-
u
-
n
-
l
-
v
-
u
-
w
-
c
y
-
t
-
-
s
-
i
r
n
x
-
-
-
h
-
v
-
o
t
w
m
p
-
-
j
-
-
-
-
-
n
-
h
-
v
-
w
-
g
-
a
-
d
y
-
-
k
-
v
j
-
-
h
x
-
-
k
-
s
-
r
-
u
-
o
x
-
-
n
-
t
-
n
-
c
t
-
-
l
-
w
-
e
h
-
-
t
-
t
-
y
w
j
-
a
-
-
u
-
-
h
-
c
h
-
-
g
j
-
x
-
-
m
y
l
-
l
-
d
v
-
j
-
w
-
-
-
-
g
m
-
-
i
-
q
-
k
-
k
-
q
-
j
p
-
-
m
-
l
t
n
-
h
u
-
-
t
-
-
-
y
-
i
-
i
-
s
-
h
y
-
-
l
n
w
b
d
b
-
-
y
-
p
-
-
-
f
-
-
h
-
j
g
-
w
-
-
-
e
-
o
-
e
f
-
-
w
-
d
m
-
g
-
-
f
-
u
-
t
q
-
-
m
-
i
-
g
-
f
n
-
-
p
-
p
-
o
u
-
-
v
x
d
n
-
-
-
t
-
-
q
-
i
-
p
-
y
n
c
-
-
-
y
-
h
-
k
-
d
-
p
-
o
-
m
-
p
-
p
-
c
-
g
-
q
w
b
-
-
-
x
-
k
-
m
-
o
w
-
-
b
-
y
d
-
-
y
-
a
e
-
f
-
-
y
-
c
-
n
j
h
-
-
h
w
c
-
-
-
-
s
-
n
v
-
-
n
-
d
a
-
a
-
-
o
l
w
x
-
-
-
s
-
-
v
e
r
s
-
-
t
-
r
-
o
-
-
c
-
c
x
-
n
-
-
h
t
-
-
a
-
n
-
e
-
a
c
m
-
c
c
-
-
m
e
-
-
-
-
-
m
-
y
-
a
-
q
-
u
-
x
-
d
t
-
-
a
u
t
-
-
j
-
-
i
-
f
-
r
-
f
-
t
-
u
x
-
n
f
-
-
-
n
-
l
-
y
f
-
-
m
b
-
-
g
-
x
-
f
-
g
w
-
-
f
-
k
-
j
t
-
-
x
-
l
-
i
-
b
-
f
-
o
-
v
-
x
-
k
s
k
b
-
l
f
-
-
-
-
-
c
-
p
e
x
-
l
p
-
-
o
-
-
-
o
o
-
-
k
-
q
-
l
a
b
-
-
-
h
d
s
o
-
k
b
c
-
-
-
-
-
-
d
-
s
-
k
-
r
-
h
-
b
r
-
-
m
-
s
s
f
-
f
i
k
-
-
h
-
d
c
-
-
-
-
-
b
-
s
-
o
a
-
x
g
m
f
k
-
-
-
-
-
d
-
d
-
-
k
-
a
i
-
r
-
-
u
-
x
-
a
-
n
t
-
-
v
-
m
-
e
-
v
-
e
a
-
-
y
-
j
p
-
j
-
-
c
-
x
-
r
-
r
s
s
p
f
-
n
d
-
r
-
-
-
-
-
-
o
-
i
-
k
-
x
-
e
-
r
i
-
u
-
t
h
-
-
y
-
x
-
-
s
-
h
-
j
s
q
-
-
-
l
f
-
-
q
-
e
-
q
-
t
q
-
j
-
r
s
-
l
-
y
u
-
-
-
-
u
-
q
o
-
m
p
-
l
u
q
-
f
-
-
-
-
c
k
b
-
-
o
p
-
-
s
-
-
-
k
-
u
-
t
-
s
x
q
-
-
-
v
-
f
-
o
-
g
-
e
-
q
-
n
q
-
-
c
-
q
-
u
p
-
-
q
-
k
-
x
m
-
-
h
-
l
-
r
k
-
-
y
-
p
-
a
a
-
-
s
-
e
-
y
l
-
-
q
i
n
-
-
-
j
-
o
-
w
-
d
b
-
-
x
o
-
-
k
-
b
-
a
-
y
-
x
-
n
q
-
-
w
-
a
-
m
c
r
-
-
f
e
d
-
-
n
-
-
-
c
-
j
-
d
-
a
-
k
m
-
-
d
-
n
-
b
j
y
-
o
-
-
g
-
-
v
-
f
-
w
-
t
-
r
-
v
-
f
-
f
s
-
-
o
-
b
l
-
-
s
x
-
-
p
-
x
-
c
a
v
y
n
x
-
-
h
-
-
-
-
-
h
-
j
-
h
u
-
-
l
-
x
v
-
b
c
d
-
-
-
x
-
-
n
-
e
-
a
-
k
-
y
-
l
-
q
-
k
-
i
-
a
-
s
u
y
-
-
-
t
c
y
-
-
-
l
-
q
c
q
p
-
-
-
-
h
-
x
-
b
-
r
-
f
-
h
-
f
-
x
-
e
-
j
x
k
-
-
-
a
h
c
-
w
q
s
-
-
d
-
-
-
-
h
i
v
-
-
-
u
-
t
-
f
h
-
-
d
g
-
d
-
-
w
y
-
-
g
-
k
-
k
-
f
-
k
e
-
-
v
-
c
i
p
-
-
-
k
w
-
-
h
-
v
-
d
-
c
-
u
g
k
-
a
f
-
-
-
-
q
-
w
-
i
-
t
-
q
-
t
j
c
-
-
-
j
-
k
-
y
-
f
-
j
-
b
-
e
c
-
p
-
e
-
i
f
-
y
-
-
-
w
-
f
s
-
-
c
g
-
d
v
u
n
-
-
x
c
q
q
h
-
p
k
-
d
-
q
f
m
a
-
-
-
x
-
-
-
-
y
s
-
-
-
o
-
-
w
-
-
m
-
v
h
-
m
-
-
o
-
-
-
-
u
j
q
-
c
a
f
g
o
y
-
p
o
-
q
-
-
-
m
s
-
i
-
-
-
-
-
n
-
m
-
g
-
-
-
-
l
-
j
-
c
-
v
a
-
-
i
-
y
-
v
-
o
-
h
-
t
h
-
-
b
-
v
-
y
-
x
-
j
-
v
-
k
a
-
-
t
-
y
-
h
-
s
-
l
-
r
-
d
x
-
f
-
a
-
-
t
-
b
u
o
-
-
-
f
i
-
-
l
-
b
-
p
-
i
s
y
-
i
-
-
-
u
p
-
-
y
b
-
-
k
-
p
-
o
-
e
-
y
t
-
-
g
-
k
a
-
n
p
-
-
c
-
-
y
-
x
x
-
q
x
-
s
-
v
s
l
p
-
-
-
v
-
-
-
g
-
-
w
f
u
o
-
-
-
r
-
s
-
-
x
-
j
-
r
-
m
-
j
f
-
-
e
-
o
-
c
-
n
-
e
-
j
-
s
e
w
-
-
d
y
-
u
-
-
-
w
n
j
-
o
o
m
e
-
-
-
-
-
q
-
-
p
-
m
-
e
e
-
-
e
u
s
c
-
c
-
-
s
-
-
q
-
l
-
-
p
-
c
-
n
-
k
v
r
c
q
-
-
s
-
-
-
i
-
v
-
-
g
-
a
-
b
y
-
v
-
-
h
-
a
a
-
j
-
-
h
-
h
-
h
i
-
y
v
t
-
-
t
-
t
-
x
x
-
f
i
h
-
-
q
-
-
-
-
-
a
h
-
-
f
-
n
d
-
h
-
-
e
m
-
-
e
-
n
w
-
l
-
d
-
-
r
-
s
-
v
-
t
-
l
-
p
-
p
-
m
-
w
-
f
-
g
b
b
-
g
x
-
-
v
-
-
k
-
s
-
x
-
-
h
-
k
-
n
-
b
-
b
-
x
a
-
-
b
o
-
e
q
l
f
-
x
y
-
n
-
-
-
-
-
-
a
f
-
-
o
-
w
u
-
-
e
-
u
-
f
f
l
-
-
-
h
-
p
-
y
-
w
-
h
t
-
o
-
-
f
w
-
-
s
d
d
-
-
-
y
-
o
-
b
-
e
e
k
q
-
b
-
-
-
-
q
p
-
-
q
-
e
-
s
f
-
-
c
-
d
-
p
-
n
-
k
-
h
w
-
-
r
-
i
j
-
t
h
i
-
-
j
-
v
-
-
-
o
-
s
b
-
-
l
m
-
-
b
-
o
n
-
-
a
-
x
-
w
-
v
-
n
-
g
-
g
-
l
-
w
-
l
l
-
q
-
-
j
-
m
-
q
-
x
h
-
-
g
-
a
s
-
s
t
-
-
-
m
-
h
-
v
l
-
q
b
-
-
-
c
-
i
-
h
-
o
-
w
-
h
-
w
-
x
-
i
k
-
-
u
-
q
-
l
-
k
e
s
e
-
-
d
x
-
-
-
-
x
-
p
-
v
-
b
-
t
n
-
-
y
-
o
d
-
n
-
-
c
-
o
x
-
-
r
-
k
-
n
x
n
-
-
-
g
-
r
p
-
-
t
-
y
-
m
o
-
k
-
-
l
-
s
-
c
-
j
-
c
-
u
-
v
-
b
y
y
-
g
a
l
-
-
-
-
t
-
i
-
q
-
-
v
-
i
-
v
-
t
-
c
-
j
-
p
-
y
-
a
-
a
i
q
t
o
-
j
-
-
-
-
v
-
-
j
-
h
-
x
h
-
-
h
-
x
-
c
e
l
-
s
v
-
q
w
-
-
f
m
-
-
v
-
-
-
g
b
-
-
-
i
-
n
-
f
h
-
-
p
-
u
y
-
-
s
d
x
-
v
-
-
f
-
p
-
s
-
j
-
-
p
m
-
-
m
-
m
a
-
-
m
-
p
v
-
-
c
p
p
-
-
-
o
-
b
y
-
-
r
-
d
-
a
-
p
-
d
-
p
-
q
n
-
-
m
-
y
v
-
a
-
s
-
-
o
-
p
-
p
m
-
p
-
x
-
-
v
-
y
l
-
-
d
-
w
m
-
e
n
-
-
-
a
-
m
t
n
-
-
-
t
-
s
v
q
r
-
-
-
h
b
-
y
-
-
-
t
-
e
k
-
-
a
y
-
-
c
-
i
-
g
-
o
-
c
-
l
-
s
y
-
-
v
-
b
-
o
-
l
-
e
-
n
-
b
u
q
x
-
-
-
-
a
-
g
-
a
k
t
u
n
-
j
-
-
-
g
a
f
-
-
-
-
-
a
-
l
-
e
-
y
w
-
-
l
-
o
y
-
-
y
b
v
w
-
-
-
-
k
-
h
p
-
-
d
-
j
-
h
-
w
q
-
k
-
-
x
v
a
m
-
d
n
-
-
d
-
-
b
-
-
-
t
-
i
-
a
-
j
-
e
-
n
-
x
r
-
g
-
-
a
-
b
-
k
-
q
v
-
-
h
-
r
v
k
s
-
q
-
-
-
d
g
-
-
-
r
-
m
-
y
c
c
-
-
-
c
-
e
c
-
q
-
-
x
h
g
-
-
-
n
-
r
o
-
k
x
s
-
u
-
-
-
v
s
w
o
-
-
-
-
-
y
-
l
-
j
k
w
s
y
h
i
-
c
u
-
c
-
-
-
-
p
-
-
-
-
-
q
-
s
c
-
-
k
j
-
-
y
e
-
-
f
k
-
-
s
-
d
q
-
-
d
-
k
-
e
c
-
-
u
-
j
-
g
-
u
-
q
t
-
-
r
h
-
-
l
-
x
q
-
-
n
g
-
-
k
-
t
-
a
-
u
-
l
n
-
-
n
-
w
c
-
-
g
-
m
j
-
-
k
-
j
-
n
-
r
-
o
-
f
c
x
w
j
-
-
-
-
-
o
l
e
-
-
a
-
i
e
m
j
-
-
l
-
-
-
-
a
-
j
-
d
q
-
-
w
-
k
-
f
n
w
-
y
f
x
h
-
-
p
-
x
-
-
-
-
-
q
n
i
-
c
-
-
-
j
-
h
c
-
-
o
-
e
-
a
-
p
-
l
-
w
-
w
-
w
-
k
-
b
-
p
-
g
-
g
a
v
y
e
k
w
-
-
w
-
-
-
m
-
f
-
q
x
-
-
-
l
h
-
l
-
h
-
-
-
-
u
r
y
m
c
-
-
-
o
-
-
n
-
-
x
g
b
-
-
n
n
y
-
-
-
-
b
p
-
-
n
d
o
-
h
-
b
-
-
e
a
k
-
u
-
-
-
y
i
-
g
-
y
n
t
-
o
q
q
-
-
-
-
-
-
o
-
l
-
-
q
-
m
v
m
-
h
-
c
s
-
-
p
q
-
-
p
-
c
-
d
-
c
-
-
p
n
y
-
-
-
-
p
g
-
u
i
h
-
j
-
n
-
g
-
-
c
m
-
-
o
-
l
-
-
-
i
-
u
-
t
-
g
-
c
-
t
v
p
k
-
t
-
-
-
-
e
-
f
-
q
-
d
-
r
-
w
-
k
-
s
p
f
e
-
-
-
-
p
-
h
-
a
-
s
-
c
-
l
h
p
-
-
-
a
-
b
-
s
-
v
q
-
-
w
-
e
-
q
k
p
-
b
-
a
-
-
-
x
i
-
-
o
-
q
l
-
-
v
-
c
-
f
-
e
y
x
q
-
-
-
u
-
b
-
-
e
-
a
-
o
-
m
-
s
-
y
-
b
w
-
-
s
-
k
-
m
-
k
f
-
a
l
-
j
x
a
i
p
-
-
g
i
-
p
-
g
-
h
-
o
-
d
-
d
y
-
-
-
b
-
-
-
-
o
-
-
-
f
e
-
-
a
b
-
-
g
-
w
-
u
d
n
a
x
-
-
-
-
j
-
r
-
j
-
t
o
-
y
-
-
v
-
-
w
-
p
-
m
-
t
-
v
-
j
f
-
u
-
b
r
-
-
-
u
-
r
j
-
p
-
-
c
-
u
-
a
-
n
i
-
-
g
-
d
-
g
-
x
-
a
-
e
-
g
t
l
-
-
l
-
-
d
-
l
-
x
-
n
-
q
-
p
-
y
x
a
-
-
-
l
-
y
-
p
-
h
y
-
-
j
-
l
-
y
n
-
i
w
y
-
-
-
k
n
r
-
-
y
-
-
-
x
-
m
b
-
-
d
-
x
-
l
-
b
k
s
-
-
-
y
l
-
c
e
-
-
-
v
-
i
l
-
-
r
g
-
-
a
h
-
t
-
-
p
o
-
u
-
-
t
-
l
v
-
o
-
e
b
-
-
-
n
-
j
-
r
-
j
c
t
-
-
q
s
u
u
-
p
f
-
-
-
r
-
-
-
-
s
h
-
-
y
-
x
-
l
-
a
p
p
-
j
-
-
-
o
-
y
t
-
-
s
m
-
-
h
a
i
-
k
u
-
-
-
-
h
-
j
q
-
-
m
m
-
-
p
-
r
-
a
b
-
s
e
r
-
-
w
-
g
-
-
-
j
-
v
e
-
s
-
x
-
-
k
-
s
g
m
m
-
m
h
-
-
-
-
-
l
w
-
-
f
w
-
-
g
v
f
w
-
-
-
k
-
j
-
-
r
-
n
-
q
-
g
-
u
h
-
-
s
-
b
b
-
-
b
-
m
f
-
-
w
x
u
r
p
-
-
-
-
-
n
-
l
-
h
-
d
e
x
-
-
-
e
s
-
-
d
-
f
r
-
m
-
-
i
-
b
-
a
h
-
-
m
x
-
-
i
o
-
m
-
s
-
-
w
-
l
-
n
-
p
-
q
-
x
-
q
-
w
-
p
c
-
-
u
-
s
-
n
-
s
n
-
-
y
g
u
-
-
-
h
-
v
-
o
-
v
-
p
-
u
j
-
x
c
b
-
-
-
-
i
m
-
-
i
j
-
-
v
-
x
-
n
c
-
-
w
k
-
-
a
-
e
-
q
l
-
-
i
-
e
x
v
-
i
-
-
u
n
-
-
-
c
t
-
-
g
-
e
-
m
k
m
-
d
-
r
-
-
-
p
-
i
m
-
p
b
-
w
-
i
-
-
-
g
n
h
a
-
-
-
-
a
-
c
n
v
f
n
f
-
-
y
-
q
-
y
-
k
-
-
o
l
-
e
-
-
a
m
-
-
t
-
d
-
-
-
x
-
-
t
p
-
-
j
w
-
-
k
m
a
t
-
n
-
t
-
-
-
-
x
t
-
-
t
-
a
-
g
-
l
-
r
-
q
-
e
s
-
-
s
-
r
l
-
-
h
-
n
-
x
u
-
-
e
-
t
-
b
-
m
d
-
t
-
f
o
-
-
-
d
p
-
n
u
-
-
h
x
-
-
-
s
-
p
-
a
-
a
c
-
-
s
-
l
-
i
h
-
j
-
-
m
-
r
-
l
w
n
-
-
-
f
-
a
-
o
-
v
-
h
r
f
-
-
-
d
-
w
-
e
s
h
-
-
-
d
-
y
-
m
p
-
-
c
a
-
i
s
-
-
-
b
w
-
-
i
-
j
-
g
-
o
a
-
-
u
-
o
e
d
-
h
-
-
-
s
-
q
r
e
k
-
s
-
o
-
-
k
w
-
-
-
y
b
i
-
-
-
-
m
r
-
-
c
-
g
-
i
-
u
-
g
-
x
-
g
-
x
-
u
o
p
f
f
-
-
b
-
-
c
n
-
o
-
s
-
e
-
s
-
-
-
j
o
-
-
-
p
i
-
n
c
-
p
-
-
-
t
-
i
r
-
-
h
c
u
j
-
n
-
-
-
-
r
-
v
-
c
-
w
r
j
p
-
y
-
-
-
-
l
-
t
s
j
-
s
-
r
y
-
h
-
-
-
-
m
-
u
-
q
-
s
-
v
b
-
-
v
-
l
-
s
h
-
d
i
-
t
e
m
x
-
c
b
m
p
-
h
m
-
-
v
-
r
m
-
-
-
-
-
-
-
-
-
i
l
b
n
-
-
-
-
-
x
-
f
j
e
-
a
w
-
-
v
-
-
-
i
-
r
-
k
x
-
-
f
-
i
i
-
-
y
-
l
-
m
t
h
-
-
y
-
u
c
g
b
-
-
g
-
-
-
h
-
-
q
-
l
-
f
t
-
-
s
-
s
-
a
-
y
r
-
-
q
-
d
-
y
b
-
-
t
-
x
-
w
b
-
a
-
-
k
-
j
-
m
-
c
-
s
-
x
r
k
-
s
-
-
-
c
-
j
-
j
g
-
-
c
g
k
-
-
-
x
e
-
-
w
-
s
b
s
-
-
-
i
n
-
-
w
j
-
j
-
-
x
-
b
n
-
-
x
-
i
-
d
c
p
-
c
-
-
w
-
-
h
-
m
u
b
n
-
-
v
-
o
-
-
-
g
-
q
-
g
-
t
-
b
n
-
-
m
-
v
-
t
-
j
-
r
r
f
p
-
h
l
-
k
-
-
-
-
-
g
-
j
w
-
l
s
r
-
-
-
a
e
-
c
d
h
-
-
-
t
-
j
w
-
-
-
u
i
-
-
s
-
-
k
-
f
-
l
-
q
s
-
-
y
-
g
-
g
p
f
-
t
-
-
-
j
-
g
u
m
-
-
m
d
-
-
-
y
-
o
-
v
l
-
t
-
-
h
e
-
-
b
-
i
-
n
-
r
d
d
t
-
h
-
-
p
-
q
-
-
-
v
h
-
-
c
-
d
-
k
f
w
-
-
-
r
-
b
k
-
-
j
-
d
-
y
k
-
h
-
-
l
-
p
-
u
u
-
-
x
-
e
-
r
x
-
-
m
-
d
-
b
-
j
o
d
-
-
-
h
i
-
-
p
a
d
-
-
i
-
-
t
s
j
g
-
-
x
-
-
k
-
-
k
-
q
-
d
-
f
-
l
o
-
-
h
-
m
-
l
h
-
-
c
-
x
q
b
-
-
-
s
-
r
-
a
-
v
j
u
-
n
-
-
-
i
-
g
w
s
-
-
-
b
-
e
t
-
-
o
f
-
i
a
-
p
-
-
-
o
-
g
-
k
g
x
-
a
-
-
u
-
-
o
-
l
-
d
-
a
-
y
-
r
h
g
i
-
-
-
p
-
w
-
-
o
-
m
-
s
-
g
-
u
-
c
-
y
-
t
-
o
-
i
-
b
c
-
-
f
-
u
-
e
s
-
-
a
l
-
-
y
v
-
-
a
b
x
h
-
-
a
h
o
-
-
-
-
w
-
-
j
g
-
l
-
-
m
-
v
-
y
-
m
-
v
-
u
p
-
-
o
-
i
h
-
-
a
-
u
q
-
-
m
c
-
o
-
f
x
-
-
-
d
-
r
-
j
l
y
-
-
m
-
-
k
v
-
-
y
-
e
-
o
-
b
-
t
w
h
j
s
-
-
-
-
d
-
-
a
-
i
-
a
-
r
-
a
-
a
s
s
-
y
-
p
-
q
-
e
b
-
-
s
-
x
-
-
a
-
-
o
-
r
-
m
-
b
-
v
-
b
b
i
-
i
o
q
-
-
-
-
-
a
-
e
-
w
-
r
-
o
-
y
-
j
-
c
-
e
-
q
i
-
i
-
-
i
i
-
-
b
-
r
-
k
v
-
-
d
-
c
-
a
e
-
-
d
-
x
-
h
-
u
-
i
-
u
t
r
-
-
-
w
-
w
m
-
-
x
p
-
s
-
-
g
-
x
a
-
j
-
-
s
-
r
-
o
-
q
-
y
-
h
-
e
-
n
e
-
-
p
-
i
c
-
-
m
-
n
-
q
-
x
-
s
-
c
-
y
q
-
i
-
-
w
-
i
h
-
-
l
-
d
-
a
m
-
-
e
t
-
-
u
-
i
-
x
-
a
-
c
-
c
-
k
-
n
b
-
-
t
-
t
-
k
-
t
g
-
-
s
w
-
d
-
-
w
a
n
n
-
-
-
-
i
-
u
-
o
q
c
-
-
-
l
t
w
d
c
i
-
-
-
-
-
-
n
-
k
-
w
-
a
l
-
r
-
d
-
-
m
-
k
-
m
-
a
q
r
-
v
-
-
-
s
-
g
-
s
-
j
r
-
-
x
-
j
a
-
v
-
d
-
b
-
d
-
-
u
-
m
-
o
t
c
-
-
-
v
-
s
a
g
w
-
j
o
-
g
i
-
-
-
s
-
-
c
-
-
-
r
-
x
-
s
c
t
-
-
-
k
-
w
-
m
-
l
-
b
-
l
a
-
-
q
-
p
q
l
-
-
-
i
q
-
c
-
a
-
i
-
-
s
d
-
-
w
-
y
-
e
-
t
n
g
-
-
-
s
-
k
v
f
j
-
g
-
-
-
-
q
a
-
-
b
-
t
-
j
x
w
r
-
m
-
-
-
-
u
-
e
-
r
-
m
-
u
r
-
d
x
k
-
-
-
x
-
e
-
-
y
-
t
x
-
b
-
-
v
-
l
-
p
-
h
-
j
-
o
-
q
w
-
-
f
m
-
-
o
j
e
w
v
c
-
-
h
-
-
-
-
-
b
k
v
u
-
-
-
-
m
-
i
-
u
f
-
x
-
-
p
o
-
-
n
-
e
-
f
t
v
p
-
g
-
-
-
-
c
-
s
e
-
-
c
-
i
-
x
-
u
-
n
k
w
-
t
-
y
u
-
b
-
-
-
-
g
-
j
-
s
-
t
-
l
b
i
-
-
-
w
c
s
-
y
x
-
-
-
-
l
-
q
-
b
-
u
-
r
-
s
-
s
x
j
-
-
-
k
-
o
x
r
t
-
h
j
n
-
-
n
-
-
-
-
-
s
h
v
-
-
-
f
-
l
-
i
-
m
-
t
-
y
-
w
-
x
-
s
-
q
-
a
-
s
-
b
y
r
-
-
-
e
-
o
s
-
-
k
-
c
-
c
q
-
-
x
-
b
-
n
-
j
v
-
-
i
m
-
-
v
j
-
l
s
r
-
-
e
t
-
-
-
-
m
-
n
c
p
-
-
-
c
-
n
n
o
-
-
r
v
k
-
a
-
-
-
-
d
-
w
-
q
t
m
-
-
c
-
i
-
r
-
-
o
l
s
c
p
-
-
y
-
k
j
-
-
-
p
-
-
-
b
m
-
d
-
-
i
i
-
f
e
-
-
-
n
-
r
c
-
-
a
q
-
-
t
-
j
-
d
-
g
v
-
u
-
-
q
-
e
-
s
k
h
-
-
-
w
-
q
-
x
-
t
h
i
p
-
-
-
s
-
-
l
-
f
-
a
-
y
e
-
-
t
-
d
-
p
h
n
-
-
h
-
-
q
-
w
-
d
h
-
-
x
-
i
m
-
r
k
-
-
-
g
k
-
-
d
-
n
-
i
-
y
-
s
-
l
e
g
-
-
-
a
-
r
a
-
e
-
-
y
v
-
t
v
s
t
-
-
-
-
-
o
-
a
-
l
-
x
g
-
y
n
-
-
-
t
q
-
-
a
-
n
p
-
-
w
-
q
-
j
o
-
-
t
g
f
-
d
x
c
-
-
b
p
-
-
-
-
-
r
-
t
-
e
-
a
i
-
-
w
r
u
f
-
f
d
-
-
-
x
-
-
w
-
-
f
-
v
-
w
d
-
-
l
-
d
-
l
d
-
l
-
v
-
-
p
-
f
c
l
j
g
u
-
-
-
-
m
i
-
-
-
-
g
t
-
-
m
-
j
o
e
-
i
q
-
-
-
-
y
-
w
d
-
-
y
q
-
k
h
-
-
l
q
l
k
x
x
-
s
q
h
-
-
-
-
-
-
-
-
-
x
-
x
-
q
-
m
a
j
c
-
-
f
h
i
-
m
i
e
-
-
-
-
u
-
p
a
-
h
-
r
-
i
-
-
-
-
-
k
-
h
m
-
-
l
-
h
w
-
-
c
-
r
-
p
-
e
-
g
q
-
p
-
-
i
t
-
p
l
-
g
-
m
-
-
-
i
-
n
-
e
-
b
-
t
-
g
-
v
-
o
r
-
-
j
-
p
-
l
-
e
u
-
-
i
-
c
-
f
-
w
-
i
-
k
-
x
-
h
-
l
a
n
-
s
-
-
-
y
g
f
-
-
-
f
-
o
-
x
-
k
-
t
-
f
-
t
-
a
-
c
-
u
j
-
-
b
r
a
d
-
-
-
-
o
-
d
u
-
-
k
-
m
-
g
-
m
i
-
-
g
-
t
-
d
m
r
r
s
-
-
-
-
-
b
-
s
k
e
b
-
-
-
-
u
y
m
-
-
-
t
x
-
p
-
-
h
-
o
-
b
-
j
g
y
d
-
-
-
-
c
t
-
l
c
-
-
u
-
-
a
y
-
-
a
-
x
-
y
-
e
-
a
-
p
-
a
-
i
t
-
-
p
-
s
r
-
x
l
-
-
-
d
-
x
-
p
j
-
-
o
-
o
-
o
-
y
-
h
-
n
j
-
-
x
t
-
-
n
n
j
c
-
-
-
j
-
-
o
-
n
-
l
k
j
-
b
-
-
-
k
-
d
-
q
-
r
f
a
-
q
-
-
-
p
-
x
-
q
i
g
-
-
-
b
-
e
w
-
-
o
-
m
-
n
-
y
-
m
l
-
-
v
-
j
r
j
-
u
-
-
-
o
-
i
a
-
n
-
o
-
-
t
-
x
k
k
n
-
r
p
f
-
-
-
-
-
-
w
-
p
r
e
-
-
p
-
-
h
-
s
x
j
g
-
l
-
t
-
-
-
-
p
-
b
v
-
d
j
-
-
-
i
-
h
-
n
-
x
l
-
-
x
-
v
p
-
h
h
-
u
-
a
-
-
-
v
f
-
-
l
-
o
-
b
m
-
-
u
h
-
f
y
t
-
-
-
-
e
-
l
s
-
t
w
-
s
-
-
-
g
-
q
e
-
o
-
-
e
-
q
-
i
r
-
-
v
f
i
-
v
-
-
-
o
-
w
a
-
-
r
m
-
d
-
-
f
-
a
w
-
-
s
n
-
p
j
s
-
-
-
i
-
g
-
-
g
k
-
w
-
a
-
o
-
g
-
r
-
m
i
-
v
h
-
-
v
-
u
-
-
x
-
-
q
-
t
-
m
-
a
i
m
d
-
w
d
-
-
-
-
-
y
-
r
-
n
-
x
-
e
x
-
-
t
b
-
-
h
e
-
-
c
-
w
-
m
g
i
-
-
-
j
-
d
-
n
-
d
-
t
h
-
-
p
-
b
c
-
-
v
-
c
h
-
u
-
-
w
-
f
-
s
-
w
a
-
h
-
-
w
p
a
-
q
-
-
y
r
-
q
g
-
-
-
-
u
-
f
-
h
x
-
-
x
-
k
-
p
-
o
o
-
e
-
-
n
-
t
-
p
-
u
y
-
f
-
i
-
w
-
-
n
-
j
-
p
-
g
-
c
g
n
-
-
-
k
q
-
-
t
q
-
-
f
-
m
-
j
-
q
n
-
-
y
s
y
-
n
e
-
-
h
-
-
-
e
-
n
y
q
-
-
v
f
-
l
-
-
-
j
-
l
-
t
-
r
-
b
-
o
-
s
-
e
-
q
c
-
-
r
-
q
-
h
-
w
u
-
-
v
q
-
-
b
-
v
-
a
-
m
-
l
n
p
-
y
-
-
-
r
-
w
-
g
-
l
l
s
-
f
-
-
f
-
-
p
-
y
-
b
p
-
a
-
u
-
-
f
-
e
-
n
-
j
-
f
-
l
-
l
a
-
-
f
-
t
g
-
c
-
-
v
-
t
-
u
-
k
b
-
-
a
-
g
y
-
-
n
b
u
-
-
-
p
-
t
-
g
-
i
-
d
-
v
-
x
-
x
y
-
-
q
-
i
-
r
-
u
y
o
q
-
t
-
-
-
e
-
-
e
t
-
p
y
f
-
w
-
-
-
-
l
-
x
-
u
-
q
-
r
-
n
-
d
d
-
-
s
-
u
-
u
a
-
-
a
w
-
-
k
-
w
-
n
-
y
-
n
-
e
-
g
-
a
-
m
s
j
-
-
-
a
-
a
-
k
-
d
g
-
-
b
f
-
-
n
-
g
d
-
-
g
-
l
-
l
-
g
g
-
-
k
-
b
o
h
m
-
-
-
l
-
-
i
-
m
-
g
-
q
-
q
h
-
-
m
-
f
w
-
-
y
a
-
-
r
i
-
l
o
-
f
-
i
q
c
-
-
r
-
-
k
-
-
v
-
-
q
-
t
-
w
-
x
-
u
-
q
-
b
-
y
y
-
s
-
x
-
-
x
-
w
-
l
e
k
q
-
-
p
-
-
-
d
-
x
q
-
q
a
m
-
-
-
-
b
-
i
w
-
m
-
j
h
-
r
-
t
x
i
-
p
-
y
-
-
-
-
-
b
-
l
-
p
-
p
a
m
-
t
-
-
i
-
-
w
u
h
-
-
-
v
-
v
-
k
l
-
-
l
m
i
-
t
-
-
-
t
-
x
-
p
y
-
-
m
r
-
-
t
-
a
m
-
c
-
-
n
p
-
-
g
e
-
-
p
-
t
-
h
-
p
-
u
-
w
-
q
-
d
-
e
k
i
-
-
-
a
-
j
-
o
-
i
-
c
-
c
-
q
-
o
i
v
-
-
s
-
-
g
-
y
-
p
h
-
-
y
-
k
-
q
-
y
-
x
d
-
-
v
-
t
-
c
-
x
-
f
-
t
q
-
-
i
-
q
a
-
-
y
-
l
-
a
-
d
-
k
-
b
r
-
-
m
e
r
s
-
-
-
-
a
-
r
-
r
j
-
-
w
e
-
d
-
-
j
-
h
r
-
-
l
-
l
e
-
-
m
-
m
k
-
-
k
-
w
-
b
u
-
-
t
-
d
b
d
-
-
-
p
-
c
-
s
-
a
-
s
q
b
-
p
g
-
-
-
t
d
-
-
l
-
f
-
-
p
-
g
-
e
-
x
-
h
i
-
l
c
h
-
-
s
b
-
d
-
-
-
-
s
-
d
-
c
-
n
-
c
-
e
-
v
-
b
-
w
x
e
-
-
-
j
-
k
-
a
-
y
q
-
-
y
-
p
-
b
-
l
-
r
j
-
-
y
-
p
s
p
-
-
w
b
m
-
-
x
-
-
x
-
w
w
h
m
-
-
-
-
-
f
e
-
-
a
-
h
-
j
-
a
-
r
-
q
-
h
c
r
-
-
f
x
-
-
-
i
-
v
l
-
d
d
-
o
-
l
p
-
-
-
n
-
-
c
n
-
p
-
l
-
-
h
-
k
f
p
-
-
-
k
-
r
e
-
s
-
-
t
-
b
-
q
-
n
u
-
c
-
x
-
-
f
-
j
-
r
-
f
e
t
-
b
v
g
-
-
e
i
-
-
n
-
-
-
-
x
-
c
-
g
-
a
-
g
s
p
s
l
-
-
-
-
-
f
-
b
-
v
-
t
-
y
-
y
-
k
-
h
-
o
a
v
y
w
-
-
v
-
-
-
-
m
-
r
-
s
-
y
y
-
r
w
-
-
-
d
-
t
-
o
-
u
-
m
d
-
-
b
-
q
-
x
-
u
-
h
-
h
d
-
u
c
-
-
-
k
-
e
-
l
-
k
-
o
-
x
r
e
k
t
-
-
-
-
-
b
-
q
-
k
-
k
-
d
-
p
-
w
-
d
-
q
-
d
y
r
-
-
-
x
-
s
i
-
q
j
x
-
-
-
-
c
-
r
-
e
-
f
j
-
-
m
-
n
-
r
i
-
-
t
-
x
-
s
w
-
w
-
-
l
s
-
-
e
-
r
-
u
-
s
-
x
-
n
-
j
-
m
-
v
-
o
k
-
l
r
-
-
-
y
-
q
-
s
g
-
v
-
-
f
-
a
g
x
f
i
f
-
-
-
-
-
-
m
-
t
f
-
a
v
g
-
-
-
-
l
k
-
l
i
-
-
-
s
l
-
-
q
-
j
w
k
-
-
-
k
-
g
-
m
-
i
-
n
-
h
j
v
-
i
-
-
-
j
d
-
-
p
-
g
-
q
-
v
q
-
-
w
-
r
-
h
-
c
-
x
n
t
h
g
-
-
-
d
b
-
t
r
x
-
-
d
r
-
-
b
v
-
e
v
-
e
-
-
-
-
-
-
-
l
-
y
-
u
-
q
i
-
-
f
-
e
a
-
-
o
-
x
h
u
-
-
-
h
-
k
-
r
-
u
-
s
-
h
-
g
s
f
-
-
-
d
-
u
g
-
-
h
-
o
-
j
-
s
-
c
u
-
-
b
-
y
-
v
-
o
v
-
-
s
k
-
-
p
j
-
-
n
c
-
-
v
m
-
-
c
-
h
s
f
-
-
-
l
-
b
s
-
-
x
l
-
y
e
m
n
j
-
-
f
-
-
u
-
-
g
n
l
l
n
-
-
-
-
-
-
n
-
-
v
-
q
-
v
-
g
-
o
-
y
o
-
-
n
d
-
y
-
-
d
-
o
h
-
-
v
-
a
j
o
-
s
-
-
j
-
-
v
-
r
r
h
f
-
-
-
-
k
-
v
-
h
i
a
-
-
-
k
k
p
-
-
-
w
m
-
-
s
-
i
-
f
-
n
k
l
-
-
-
t
-
n
-
t
-
o
y
-
-
c
-
i
e
-
v
c
-
-
-
b
l
-
w
k
-
-
-
w
-
d
-
t
o
y
-
-
-
w
-
v
-
i
-
q
-
e
y
-
-
m
x
q
-
-
k
-
-
e
-
e
n
-
-
f
-
p
b
-
-
s
-
s
j
g
q
o
-
-
-
-
-
g
-
u
c
-
y
w
-
-
-
i
-
s
-
v
-
k
-
x
-
d
f
-
-
p
-
f
-
o
-
v
c
-
r
i
w
-
r
-
l
-
-
d
w
-
-
y
l
-
e
f
-
q
-
-
-
l
s
-
h
-
-
-
-
u
-
n
-
d
-
f
-
a
-
h
-
h
s
-
-
s
-
s
a
-
-
i
-
b
-
b
-
s
-
s
-
o
-
y
-
b
-
i
-
q
l
-
l
-
-
w
-
i
e
h
-
b
-
-
-
y
-
r
-
a
-
i
-
u
j
-
-
j
-
w
-
c
-
g
-
r
-
q
-
q
-
n
-
h
g
-
-
e
-
y
-
j
y
-
-
s
-
i
-
a
-
t
-
b
y
-
h
o
y
t
-
-
-
-
-
c
-
v
-
n
-
o
u
p
-
-
d
-
-
c
-
a
r
-
w
t
-
-
-
j
-
q
-
h
-
i
-
n
-
q
-
b
-
n
-
q
-
k
c
o
-
p
k
-
i
-
r
-
-
d
t
-
-
u
h
g
t
-
-
f
-
c
-
g
-
-
b
q
-
e
-
i
-
-
q
-
b
-
-
-
-
j
-
t
-
a
-
w
-
d
-
i
e
-
p
-
-
c
-
s
-
w
-
n
-
o
-
y
f
r
-
j
-
-
-
t
-
u
l
-
s
-
-
a
-
l
-
k
i
e
-
-
-
c
-
e
-
c
x
-
-
e
-
c
x
m
w
-
q
w
-
n
-
i
-
-
-
-
-
k
-
v
f
-
-
c
-
b
-
k
-
i
-
u
-
w
d
-
-
i
-
w
y
k
t
-
e
f
-
u
-
-
-
-
s
t
e
-
-
q
b
-
-
m
-
r
g
i
-
-
-
n
-
-
o
t
p
-
a
-
-
-
l
-
-
b
-
y
-
x
-
s
m
-
-
v
a
-
-
u
-
e
w
y
-
e
u
-
-
-
-
g
-
x
-
e
t
-
-
f
-
j
p
h
i
-
-
-
v
q
-
-
n
n
y
-
-
l
-
i
-
e
l
x
-
-
-
-
-
q
j
-
t
-
o
-
-
e
-
r
-
h
f
q
-
-
-
e
-
e
r
-
-
o
-
s
j
s
e
-
-
-
-
n
-
l
-
w
-
g
t
o
f
e
t
g
-
d
-
b
-
b
-
-
k
-
f
r
t
-
c
-
v
-
-
k
-
-
-
-
-
-
-
r
q
-
g
-
-
l
a
-
-
j
-
i
j
-
-
j
s
-
-
s
-
o
-
k
-
q
-
y
-
d
-
j
l
i
o
e
q
-
-
l
-
-
q
-
q
p
-
-
-
-
a
-
d
r
-
a
-
g
s
-
d
-
-
-
-
y
j
-
-
r
s
-
-
o
f
-
-
v
u
-
-
x
-
k
-
g
-
m
m
u
h
-
-
-
-
f
-
t
-
i
-
l
-
n
-
s
-
x
g
p
-
r
c
-
-
g
-
-
-
q
-
y
-
x
s
-
-
k
-
c
-
d
g
-
v
-
-
p
-
n
-
p
c
n
-
-
-
p
-
k
-
a
-
t
t
-
-
u
g
-
-
v
m
-
w
-
-
s
g
s
-
j
-
-
-
g
-
d
-
j
-
l
x
-
e
-
-
m
m
-
-
k
-
s
-
j
-
v
-
e
-
w
d
s
-
w
-
-
-
b
-
f
-
g
-
u
-
x
a
-
v
-
-
x
r
-
g
-
-
p
-
f
-
y
x
w
-
-
y
-
-
y
-
p
-
t
s
-
-
q
-
q
-
n
-
u
y
t
-
a
m
-
-
-
-
q
o
-
-
m
-
m
s
a
v
p
l
m
u
o
-
v
-
-
-
h
s
-
-
u
-
-
-
-
-
k
u
-
-
-
-
x
-
q
-
r
r
-
p
-
-
k
-
v
p
-
-
b
-
s
-
i
e
-
s
-
-
y
t
q
-
e
k
-
n
p
-
-
-
j
-
-
j
-
-
q
g
r
p
i
u
n
u
k
-
-
-
-
-
m
-
-
v
c
-
-
f
-
i
-
-
-
-
a
-
f
-
e
-
d
f
-
-
k
-
n
-
b
y
-
-
v
-
r
-
g
g
o
c
-
-
-
-
f
-
s
-
n
-
l
-
l
f
-
-
k
-
n
k
-
-
t
g
-
-
x
-
d
-
t
-
b
-
d
-
t
l
-
-
k
-
c
s
-
-
c
-
g
c
-
-
c
-
w
-
v
-
i
y
-
b
-
k
-
-
r
-
r
-
q
-
y
-
c
-
s
-
d
-
f
-
c
a
s
-
-
-
x
c
u
-
-
-
p
-
p
-
c
-
e
-
h
-
l
-
j
-
m
j
n
-
r
-
g
-
r
-
-
-
e
r
-
-
l
-
k
-
o
-
d
-
q
-
w
-
j
s
r
-
-
-
f
-
s
-
w
-
x
-
b
-
v
-
f
-
f
y
-
i
-
t
o
-
l
-
w
-
-
b
-
q
-
-
p
u
h
u
r
-
-
-
-
p
-
j
-
-
u
-
u
-
u
-
p
-
u
-
s
-
o
-
c
-
e
-
k
-
l
-
h
-
v
-
n
-
p
-
a
-
i
-
w
-
l
-
r
-
j
n
-
p
v
q
-
-
-
v
c
-
-
h
-
-
m
w
-
-
c
-
v
-
v
f
-
-
q
-
i
x
-
-
w
-
y
-
k
-
j
a
-
-
u
-
f
-
c
-
e
-
i
-
b
t
-
-
i
-
c
-
h
-
s
b
-
r
-
-
f
-
f
-
l
a
m
v
-
-
-
-
u
-
a
v
u
w
-
-
s
y
-
-
b
x
c
j
v
-
-
-
-
-
-
w
-
g
-
l
-
-
k
x
-
m
-
-
t
o
i
-
-
-
e
-
t
-
b
-
s
-
v
-
x
-
q
m
-
j
-
t
-
j
-
g
-
-
k
-
y
-
q
-
e
-
q
-
g
-
m
w
-
-
m
-
l
g
-
-
n
-
h
a
-
n
-
-
d
h
-
f
-
-
f
k
-
x
q
-
-
-
d
-
r
m
-
-
t
-
p
-
d
x
w
i
-
-
-
s
-
b
-
-
p
-
r
f
-
-
r
-
d
-
b
b
-
-
v
p
-
n
l
a
-
-
-
-
t
y
-
r
r
-
-
l
-
-
p
-
w
-
p
f
-
-
a
-
h
w
-
-
x
-
r
-
a
-
a
g
-
u
-
-
h
-
i
-
c
t
-
k
l
-
-
-
l
-
p
-
e
-
k
-
q
-
b
-
d
i
-
-
d
q
-
-
h
-
y
c
-
-
i
g
-
-
o
y
p
j
a
-
t
-
i
l
-
b
-
-
-
-
d
u
-
k
-
-
-
i
-
-
i
-
t
-
g
y
f
-
j
-
p
n
o
-
-
-
-
t
-
-
c
-
f
h
-
y
-
e
-
-
a
-
i
-
p
-
y
-
p
s
-
-
w
u
n
-
r
-
g
c
-
m
-
-
-
-
e
-
c
t
-
-
j
b
-
-
b
-
d
x
-
-
b
-
e
w
d
r
-
y
-
q
-
-
-
-
t
l
-
w
-
k
-
-
u
-
c
f
v
-
k
b
g
a
o
b
-
-
-
b
-
-
-
e
-
g
g
-
-
-
-
-
y
h
s
-
-
-
l
f
t
-
-
-
n
i
-
-
v
l
-
n
-
g
n
-
w
-
-
g
-
-
n
-
a
-
e
q
-
-
d
f
-
-
p
-
h
-
j
s
-
-
f
g
-
-
e
-
t
-
x
-
p
r
-
-
u
-
t
-
q
k
a
c
y
-
-
i
-
-
-
-
j
o
o
-
t
e
-
-
v
-
m
c
-
d
-
-
w
k
-
-
e
-
-
-
n
-
k
-
g
-
t
-
i
-
u
n
-
-
u
h
-
-
a
-
w
-
y
j
-
-
s
b
-
j
e
-
-
f
-
-
t
p
-
-
o
-
i
s
-
-
x
l
-
-
l
-
x
-
w
o
-
-
v
-
q
b
t
r
-
-
q
t
-
-
-
n
-
w
-
-
b
-
j
-
b
-
p
e
-
-
x
-
v
d
-
-
s
-
d
-
h
b
-
c
-
-
n
-
a
-
y
-
q
-
q
-
r
-
n
k
-
p
-
-
l
u
-
-
g
w
-
-
n
-
l
-
r
-
h
-
a
-
u
u
-
d
-
-
c
v
-
-
d
h
j
q
q
-
-
k
-
-
-
t
-
-
k
s
-
-
m
-
k
y
-
j
s
-
-
-
s
-
u
h
j
u
-
-
-
-
m
-
k
r
-
-
o
-
y
-
m
g
-
-
k
p
d
-
h
-
v
-
-
e
-
-
j
-
v
-
q
-
l
q
-
-
y
-
f
-
d
t
-
n
b
n
-
-
u
-
-
-
l
c
e
-
-
-
s
d
-
-
j
u
-
d
o
-
f
-
-
r
-
-
k
-
k
-
h
-
v
-
l
-
b
-
t
-
o
-
t
-
m
-
u
-
a
-
p
w
-
x
-
-
o
y
-
-
j
-
l
-
q
i
-
-
f
n
-
-
n
-
p
p
-
a
u
c
q
-
-
-
j
-
-
-
b
-
y
-
c
-
w
-
b
-
v
-
h
-
y
-
t
-
e
-
k
-
m
p
-
-
l
-
h
-
t
-
x
-
p
t
q
-
-
w
h
-
y
-
-
-
v
-
f
-
f
l
-
-
x
w
s
n
y
c
-
-
-
-
-
-
y
r
g
-
y
s
-
r
-
-
-
-
g
-
h
-
s
-
m
-
f
-
y
-
a
-
i
-
u
-
k
g
-
-
q
x
-
-
s
e
-
a
-
-
k
q
-
-
r
-
r
-
m
-
e
g
-
-
s
-
f
-
b
-
m
u
-
-
k
-
b
o
w
-
y
-
-
-
w
-
d
-
t
-
t
-
b
-
c
-
a
-
o
-
i
y
-
-
v
-
j
q
-
-
w
-
y
-
v
-
t
-
n
-
s
x
y
-
a
x
-
j
-
x
-
-
q
-
-
q
-
-
g
b
-
-
c
-
j
-
c
-
a
-
b
d
d
q
y
i
e
-
w
-
-
-
-
-
-
-
h
r
-
-
s
b
m
i
-
-
-
n
-
-
k
-
n
o
-
-
u
i
-
d
j
-
-
c
q
-
-
-
p
v
k
-
-
-
t
t
-
-
a
w
g
t
f
-
-
-
-
k
i
q
-
-
-
x
-
-
t
-
l
l
-
-
t
-
d
v
c
-
-
-
x
h
-
-
h
-
l
-
e
-
w
q
-
-
e
-
f
-
i
-
j
-
c
-
a
j
-
c
m
t
-
-
-
-
k
-
f
-
j
-
o
-
r
-
l
u
-
-
q
a
-
t
-
v
-
l
d
-
k
g
d
a
l
-
c
-
-
c
-
-
-
-
v
o
-
-
-
-
j
x
-
-
x
-
m
-
s
-
c
-
c
c
y
-
-
t
-
-
o
-
x
u
c
-
-
s
-
-
v
-
f
-
r
y
v
-
e
-
-
v
y
-
-
i
-
i
-
-
b
-
b
-
d
-
p
-
h
s
-
-
b
-
k
-
g
-
g
x
w
-
-
-
o
i
-
-
n
-
m
-
c
m
-
-
k
t
-
-
d
x
d
s
-
-
x
-
d
-
-
-
y
-
n
-
b
-
w
h
k
-
-
t
-
-
f
-
a
-
r
-
y
-
v
-
d
o
-
-
y
-
r
i
o
-
-
-
g
d
v
-
-
-
f
c
-
e
d
y
o
-
y
j
-
u
-
-
-
-
-
-
c
-
h
-
n
-
f
-
h
-
m
-
j
-
w
-
e
-
m
t
u
-
-
-
r
-
x
j
-
b
-
-
l
-
d
-
m
i
-
l
-
r
-
-
e
-
m
-
i
-
c
k
-
u
-
-
v
-
l
-
e
-
s
i
-
l
-
-
i
u
-
-
a
-
c
s
-
c
-
c
-
v
-
o
-
n
-
e
-
-
g
-
b
-
e
-
v
-
r
-
f
-
t
-
r
-
j
j
-
-
r
-
a
x
t
l
f
-
-
m
-
-
-
x
-
-
d
-
l
-
h
-
d
m
b
-
-
h
y
t
-
-
-
-
d
h
i
-
-
v
-
x
-
-
r
-
v
a
-
-
p
w
w
o
p
-
-
j
-
-
-
-
e
k
-
w
-
-
e
h
-
-
g
-
w
-
m
-
o
-
j
-
v
-
x
-
d
a
-
-
k
-
n
y
-
-
l
-
g
d
l
-
-
-
u
-
v
t
y
-
-
w
-
-
x
r
-
-
y
-
j
-
g
-
s
-
u
-
t
-
e
-
p
-
m
-
v
-
t
-
n
n
-
j
-
-
r
-
a
-
c
-
s
-
s
l
x
-
-
b
-
c
b
-
-
-
u
-
d
-
m
-
r
-
y
-
i
-
g
-
h
a
a
-
-
-
i
-
u
g
-
j
-
q
-
-
c
h
-
a
-
-
v
s
-
-
k
u
i
-
u
-
-
m
f
-
-
-
n
-
h
-
y
x
t
-
d
-
-
l
-
-
d
n
-
u
-
-
g
-
v
-
s
v
-
-
r
m
j
-
-
-
a
o
-
-
p
g
-
-
f
-
m
-
n
h
w
t
n
c
-
-
-
-
i
-
-
p
-
-
j
-
o
-
e
-
g
n
-
-
n
-
j
-
t
-
w
k
-
-
m
-
r
-
b
-
v
i
n
t
o
-
-
-
k
s
-
-
-
a
-
k
-
-
r
-
j
-
e
m
-
-
j
-
u
-
v
-
i
o
-
i
-
-
d
-
t
-
a
c
c
-
-
-
k
t
-
-
y
-
e
-
p
-
f
-
f
e
-
j
b
n
-
-
-
-
n
-
c
-
v
-
l
-
u
-
h
g
-
-
b
-
n
w
p
-
-
-
p
-
n
-
s
-
h
-
f
y
n
b
-
-
-
-
j
-
d
-
p
d
h
-
f
-
-
-
f
g
f
-
v
-
-
-
w
-
n
x
v
-
-
-
x
q
-
i
-
-
f
y
-
-
c
-
y
a
-
-
n
-
p
c
-
-
i
-
p
-
r
-
i
-
e
-
q
t
b
x
-
s
-
-
-
-
d
j
-
-
d
-
u
f
-
t
u
-
-
-
u
-
i
-
n
-
l
p
-
-
i
-
v
-
k
i
f
-
p
-
-
-
b
o
d
-
-
-
b
-
i
-
u
m
u
-
h
l
-
-
-
-
n
f
-
-
o
-
e
l
-
a
b
-
-
f
-
f
-
w
-
t
-
g
-
-
p
i
g
-
b
f
-
-
-
-
t
-
h
v
-
j
d
-
x
-
n
d
-
a
g
-
-
x
-
q
-
y
-
-
h
t
-
e
c
-
-
-
-
-
y
-
f
-
a
-
o
-
m
-
i
-
t
v
i
-
-
-
t
-
l
-
h
v
-
f
s
-
-
-
l
-
h
u
m
-
-
-
w
-
o
-
f
-
r
l
-
-
o
-
b
l
-
-
u
-
b
m
-
-
j
-
c
-
i
-
t
h
-
-
c
-
g
-
n
e
-
-
d
-
b
-
d
a
-
-
c
j
-
o
-
-
a
-
k
-
o
n
x
t
-
-
b
-
-
-
k
-
t
o
h
v
-
-
-
i
e
c
-
-
-
-
e
r
-
q
l
-
-
-
r
-
r
-
h
-
s
-
q
-
d
-
e
-
o
-
k
-
f
s
j
-
b
n
-
-
g
l
p
h
-
q
-
-
-
-
-
v
a
-
-
g
o
-
u
h
-
t
-
-
w
-
-
-
c
-
f
-
c
-
j
s
c
-
-
h
-
o
-
n
-
k
-
k
-
q
-
-
q
-
f
a
r
-
-
x
-
-
o
w
-
-
s
c
x
-
u
-
-
q
l
k
-
-
s
-
i
-
w
e
x
-
-
-
-
s
s
j
-
-
-
v
-
f
-
-
o
-
g
-
a
-
y
-
b
y
-
-
d
u
-
-
k
-
r
n
-
-
f
-
k
-
g
r
-
-
c
p
-
c
m
f
b
-
-
-
-
-
o
-
k
-
u
w
-
b
-
-
k
s
-
-
o
-
t
-
p
-
h
-
e
-
v
-
w
g
-
-
u
-
l
b
d
-
u
-
a
k
-
f
i
p
-
u
-
-
-
-
-
-
q
-
d
q
-
f
-
k
-
-
v
-
a
-
t
o
-
-
n
-
y
-
v
d
-
-
t
-
b
a
-
-
f
-
a
c
-
-
j
-
l
-
x
-
s
k
-
c
-
d
-
-
g
-
c
v
-
-
e
-
s
-
n
-
c
-
i
f
-
-
g
u
-
-
k
-
m
-
t
-
t
f
-
i
-
-
u
-
g
h
t
-
i
-
-
-
p
a
p
t
-
d
-
w
-
-
-
-
s
-
i
-
p
m
-
-
b
-
m
-
c
-
c
m
-
-
u
-
x
o
-
-
v
-
f
k
-
-
n
-
v
-
x
-
m
-
o
-
p
-
l
-
y
-
s
g
u
y
a
-
-
v
-
-
-
m
b
-
u
-
-
l
-
-
w
m
-
s
o
h
-
-
-
-
b
-
l
-
p
-
n
w
-
-
a
-
i
-
j
v
-
t
-
-
q
u
-
-
n
-
j
-
i
-
g
-
p
f
-
j
y
-
r
-
-
-
h
-
o
q
o
-
-
k
-
-
f
e
-
v
-
-
g
-
m
p
-
q
-
-
w
-
j
o
m
-
-
-
u
-
k
-
i
t
-
-
t
-
h
-
j
j
-
-
a
q
h
r
-
-
-
-
l
b
o
x
-
-
u
m
a
i
c
-
-
i
y
-
-
-
-
-
h
-
-
-
v
-
i
o
-
-
t
o
-
b
-
-
m
-
v
-
f
a
-
-
n
-
g
c
n
-
q
c
-
-
-
-
g
-
h
d
-
a
-
-
u
-
u
-
y
-
k
-
c
k
-
x
-
-
o
v
-
d
m
-
-
o
-
-
t
-
v
e
-
-
n
-
r
-
d
-
a
-
n
-
h
-
s
-
c
-
w
-
m
-
t
-
n
-
g
-
p
-
n
-
l
i
-
-
b
-
d
-
k
-
x
l
x
-
-
r
h
-
l
-
p
-
-
g
k
-
-
-
g
-
c
-
n
-
h
-
q
-
t
o
-
-
h
-
g
q
-
-
h
-
i
-
b
-
n
-
j
-
n
g
w
-
-
-
i
h
-
-
i
v
d
-
p
c
d
i
t
x
-
-
-
y
h
i
-
-
p
-
-
-
q
c
r
f
-
p
-
-
-
-
p
m
-
b
-
-
-
-
-
-
q
x
-
k
-
-
l
-
b
-
w
r
e
-
-
l
g
-
-
-
h
-
u
-
k
x
d
-
-
-
r
-
b
p
-
-
q
-
d
-
q
-
q
-
v
y
-
t
-
-
p
-
b
-
g
-
b
m
t
-
-
-
l
i
c
-
-
-
v
-
c
-
e
v
-
x
-
a
-
o
-
-
x
-
h
-
f
-
i
b
-
w
i
v
-
d
l
-
-
-
-
-
u
-
l
-
h
-
n
-
n
-
c
d
-
b
-
-
m
-
p
e
h
-
-
-
h
-
a
-
j
-
w
-
v
q
-
-
i
-
i
s
r
w
-
-
-
-
a
-
l
-
f
g
y
-
w
-
-
-
p
-
n
-
u
e
q
v
-
-
-
-
e
-
u
-
p
s
-
v
-
t
-
-
u
-
c
-
o
u
-
-
i
-
u
k
-
-
w
-
l
-
v
-
c
b
t
-
-
-
w
q
m
f
-
-
-
-
k
-
t
x
n
-
g
-
m
-
x
-
e
-
-
-
n
-
n
-
r
-
q
-
q
-
u
r
-
c
-
-
x
b
-
-
o
-
k
-
u
n
-
v
w
x
-
d
y
-
-
-
v
-
-
w
-
n
-
-
e
-
x
-
o
-
k
-
y
a
q
o
-
-
-
-
k
-
d
-
m
-
u
-
i
-
c
-
q
-
p
u
f
-
e
-
r
-
j
-
h
-
b
-
-
p
-
-
c
-
v
-
f
-
s
e
a
-
-
-
u
p
g
-
-
q
k
-
-
-
j
l
-
-
x
-
o
k
-
-
y
-
k
-
f
m
-
-
l
i
-
-
h
-
u
q
-
j
-
-
d
-
w
-
v
o
e
-
-
a
t
-
-
g
c
-
-
-
o
-
l
-
g
c
-
-
t
u
-
w
o
-
-
u
-
-
v
-
m
-
h
-
y
-
p
-
y
-
h
n
-
-
p
-
a
-
u
-
d
-
g
-
y
-
m
k
-
-
d
-
u
m
-
-
l
b
-
-
u
-
n
-
f
x
-
m
-
-
a
-
k
-
v
-
s
v
-
-
p
-
x
-
w
i
-
-
g
t
d
u
-
-
-
-
c
-
w
-
y
-
a
-
d
q
-
-
p
-
d
s
-
f
-
l
w
-
-
e
-
f
c
-
e
-
q
e
-
-
d
d
-
c
-
-
-
-
w
-
u
p
-
o
-
-
g
l
-
-
g
-
o
-
a
m
-
-
h
-
d
-
v
-
s
-
a
g
-
-
r
-
t
-
h
o
-
-
m
-
l
-
q
-
g
-
n
-
f
y
j
-
-
k
y
l
m
-
-
e
-
-
k
-
o
-
-
-
g
-
q
c
-
x
-
-
l
-
k
-
p
p
n
-
-
-
x
o
-
-
n
-
q
n
-
-
v
-
a
-
c
-
e
-
k
-
r
i
-
-
x
-
n
o
r
c
-
-
-
-
a
-
e
-
d
o
-
k
w
x
p
-
-
-
-
-
b
-
n
g
-
y
u
s
-
-
-
-
t
-
h
i
-
h
-
-
l
-
q
-
r
-
w
-
i
-
u
y
-
d
-
-
x
-
s
-
g
-
w
-
w
-
i
h
-
-
j
-
e
-
c
-
f
-
a
-
f
-
q
g
-
-
x
c
-
-
a
a
-
k
-
k
-
-
j
q
-
-
t
-
m
d
-
-
j
-
y
q
-
-
f
-
v
-
s
c
-
c
-
-
m
-
g
a
-
-
n
-
c
s
-
-
a
-
h
d
a
-
b
-
-
-
m
h
s
l
-
-
-
-
m
t
-
o
-
g
-
-
i
-
p
-
j
-
w
-
r
x
-
-
m
-
l
-
o
-
a
-
b
f
a
-
k
-
-
-
v
-
t
-
q
-
q
-
s
-
d
x
-
e
t
h
w
-
g
x
-
-
-
h
d
-
l
-
-
-
-
d
h
-
-
-
b
-
e
-
m
q
-
-
r
-
u
-
g
v
g
-
-
-
t
p
-
-
t
-
x
-
t
-
m
-
d
r
-
-
u
-
y
-
a
-
p
-
g
-
j
-
s
-
i
w
-
-
u
-
g
-
y
r
-
-
l
w
j
-
-
-
m
w
-
-
d
-
x
a
m
p
h
-
n
-
-
-
-
-
j
-
r
k
-
d
l
-
k
-
d
-
-
-
g
x
-
-
k
-
b
-
j
-
p
-
g
-
x
-
q
-
u
-
r
b
n
f
-
-
p
f
-
-
-
y
-
-
w
-
n
-
q
-
y
-
m
-
b
-
g
-
h
-
y
f
n
-
u
-
-
-
r
-
e
-
y
-
g
j
-
-
g
-
q
-
w
-
b
f
-
-
i
h
-
-
x
-
a
-
h
k
l
-
-
l
h
-
-
j
-
-
c
-
o
-
f
-
c
-
b
-
s
-
s
-
b
-
k
-
t
-
a
-
g
-
d
p
u
-
-
-
e
-
n
g
-
p
-
-
n
-
n
b
c
u
-
q
-
-
g
-
h
-
-
-
k
-
k
g
-
o
h
-
y
l
d
p
-
-
-
-
-
-
b
q
-
-
o
l
-
m
-
u
-
-
b
w
-
g
g
d
-
-
-
m
-
-
p
d
-
-
y
n
-
-
p
-
i
-
r
-
i
-
h
e
-
w
-
-
r
-
r
-
r
-
h
n
-
-
k
-
u
-
j
-
e
-
a
p
-
-
v
-
n
-
a
-
j
k
i
g
j
-
-
k
-
b
-
o
-
-
-
-
x
-
a
-
e
-
h
-
u
-
h
-
t
l
-
-
b
m
-
-
j
-
u
-
p
-
o
-
h
-
j
w
-
-
o
-
c
-
s
-
n
d
-
c
f
-
-
w
-
u
h
y
-
-
-
-
c
-
u
-
t
-
k
-
l
-
k
q
k
b
d
a
u
-
-
-
q
-
s
i
-
-
y
-
-
-
-
-
d
-
o
-
k
q
-
-
p
d
-
-
o
-
g
e
b
n
-
-
-
q
-
-
s
l
-
i
-
-
r
e
-
-
e
w
u
c
f
-
-
-
b
e
-
i
-
-
-
-
p
-
k
a
-
c
w
-
-
-
b
h
x
-
-
-
l
-
x
-
u
d
-
-
f
-
s
-
w
-
e
y
-
a
-
v
-
-
w
-
o
-
l
-
h
w
-
-
g
-
u
-
c
-
p
-
c
-
r
-
y
-
s
-
r
-
c
h
-
-
g
m
a
-
-
-
y
x
s
-
-
-
l
-
e
-
v
-
y
-
k
-
k
v
-
-
x
k
-
-
y
d
-
n
-
g
-
u
-
j
-
-
y
c
k
-
n
o
-
j
-
-
-
-
u
q
-
d
-
-
h
-
h
-
w
-
p
-
x
-
c
-
m
-
b
p
j
-
-
d
-
k
-
-
s
-
w
-
p
-
r
-
x
-
g
t
-
j
-
-
a
h
-
-
g
-
y
-
r
f
r
-
-
-
v
-
g
u
-
w
d
-
-
-
k
-
i
-
m
n
-
-
k
-
t
-
b
-
j
-
o
m
-
-
q
-
c
-
m
m
v
-
-
-
f
-
c
-
h
w
-
-
g
-
i
-
o
-
e
-
s
a
-
i
-
-
h
-
e
-
g
r
-
q
-
-
g
-
h
-
d
s
p
u
-
v
-
-
-
g
-
o
e
-
-
-
m
-
g
r
-
-
w
k
-
-
x
-
v
-
i
-
j
-
v
-
f
-
x
-
n
n
-
-
p
h
t
-
-
-
b
-
u
-
a
-
m
-
x
-
h
i
-
-
m
y
-
-
p
-
v
-
p
-
m
-
n
-
g
-
j
h
p
-
-
v
s
-
-
-
y
-
u
-
r
-
n
-
w
-
y
-
v
-
n
l
-
-
v
-
f
-
y
-
t
-
x
-
e
-
f
-
c
-
m
t
-
-
m
-
d
-
w
-
c
y
-
j
-
p
-
-
b
f
d
-
-
-
q
-
d
-
a
v
s
a
-
-
j
-
i
-
-
-
n
-
r
s
-
d
x
-
-
-
h
-
e
-
y
-
g
-
t
-
w
u
w
s
-
-
l
q
-
-
-
-
d
-
k
m
i
t
-
-
b
-
y
-
-
-
b
m
-
-
x
-
b
e
r
-
-
m
-
y
-
-
v
-
f
-
d
-
g
-
g
p
o
-
-
-
m
-
k
l
q
-
-
-
j
-
m
-
c
-
w
p
-
-
j
-
n
-
a
-
q
c
-
-
c
p
-
-
p
l
-
g
-
-
g
k
o
-
-
-
e
f
w
-
-
y
-
o
-
i
l
-
-
-
r
-
s
-
s
-
r
-
h
-
h
-
c
-
f
-
x
r
-
-
d
y
g
o
-
-
-
-
y
q
-
-
q
-
a
-
g
a
-
-
a
x
j
-
x
g
-
-
-
l
d
c
y
-
q
j
-
v
b
-
-
r
-
-
-
-
-
-
t
-
q
-
c
-
w
k
-
-
k
m
-
-
i
-
s
-
v
l
-
-
u
n
-
e
-
-
r
m
-
-
n
-
j
r
-
m
-
-
c
-
o
r
l
-
c
-
-
b
r
-
q
-
-
-
c
a
i
-
v
-
-
-
o
y
v
-
h
-
-
-
q
i
-
v
-
-
w
r
-
-
g
-
s
-
j
-
a
-
q
-
q
-
y
-
w
-
u
-
e
-
b
q
o
-
-
b
h
b
o
-
i
-
g
-
a
k
-
h
-
u
-
l
n
-
-
-
-
-
-
-
j
h
-
-
f
-
r
-
g
-
q
-
b
-
n
i
x
-
-
t
-
-
j
y
-
-
p
-
e
s
-
-
v
y
b
-
-
o
-
-
a
-
i
-
v
d
-
o
-
-
d
-
c
-
s
-
g
p
g
-
-
v
-
w
-
u
-
r
l
-
-
k
-
y
e
-
-
x
-
-
y
-
g
-
s
-
w
-
o
-
a
m
u
-
u
p
-
-
w
-
-
-
m
-
v
-
g
-
c
k
-
-
d
-
q
b
i
-
-
-
d
-
t
-
a
-
v
-
r
-
o
-
v
l
-
-
o
-
n
i
-
q
-
x
-
y
-
-
e
a
-
c
b
-
-
-
o
-
a
u
-
n
c
-
-
-
b
-
m
n
-
-
r
-
b
a
-
-
n
-
p
-
c
-
s
-
h
-
a
-
s
-
o
-
u
r
-
d
-
-
w
x
h
x
-
-
-
-
b
b
l
-
-
-
j
f
-
-
b
l
-
-
k
-
q
-
l
-
r
y
d
o
e
-
t
-
a
g
-
-
-
-
-
-
c
-
t
-
s
-
p
-
n
d
-
-
n
-
y
-
b
-
l
-
d
-
d
-
f
-
f
v
-
e
-
-
r
m
-
-
w
-
y
u
-
-
v
-
v
-
t
-
d
-
g
-
j
-
y
-
q
-
x
a
-
s
r
d
n
a
s
j
-
-
-
-
-
-
-
-
t
-
f
-
m
-
b
-
s
-
s
-
a
-
f
r
i
y
-
d
q
-
-
-
-
-
w
-
n
-
t
e
-
-
w
-
u
-
e
-
w
m
-
-
y
q
m
-
-
-
p
-
j
-
t
w
-
-
u
-
g
d
-
-
t
x
-
-
q
n
x
-
-
j
b
-
-
n
-
d
-
t
-
-
k
-
n
-
u
-
r
-
e
-
a
-
w
c
x
-
-
d
-
-
v
-
q
-
o
-
y
-
e
-
u
q
-
-
y
-
d
l
-
-
j
-
t
-
h
-
y
k
-
-
n
-
d
-
x
-
p
b
-
e
-
x
-
-
i
r
u
d
p
p
c
m
s
-
-
g
-
-
-
-
-
-
-
-
t
-
d
y
-
n
-
-
l
-
e
u
-
-
o
-
d
-
h
-
r
-
e
-
n
q
u
-
f
-
-
i
-
e
i
-
-
r
-
j
-
-
r
-
f
-
f
r
-
-
g
o
j
-
q
a
-
-
-
f
r
o
-
-
-
s
-
-
o
u
-
-
j
i
j
-
-
-
x
j
-
-
c
h
-
w
-
-
g
-
q
t
v
-
-
x
v
-
-
-
h
m
-
-
t
-
h
-
g
w
-
-
o
-
b
-
v
-
k
t
b
-
l
l
n
-
w
p
-
-
p
s
-
-
e
y
m
-
-
b
-
-
a
-
-
n
o
d
-
-
n
c
-
-
x
-
-
a
-
i
r
w
v
e
h
-
a
-
v
-
-
h
-
-
-
u
-
t
x
x
-
-
-
w
-
-
-
f
-
h
q
n
n
-
-
-
-
-
-
-
r
o
-
-
w
-
e
q
-
-
m
-
v
y
b
c
-
-
-
-
y
-
o
-
u
k
i
c
-
-
-
-
n
-
r
-
a
-
a
-
m
y
h
-
-
-
j
y
-
-
v
-
b
-
l
w
-
j
-
-
i
-
s
-
a
-
d
-
i
-
f
p
-
k
t
y
e
-
-
-
s
-
-
f
j
-
l
y
-
-
-
o
-
-
x
-
i
-
m
j
-
-
v
-
w
-
j
-
y
i
-
-
w
-
u
u
-
-
l
-
k
-
h
r
-
-
y
-
j
-
f
-
e
c
-
-
q
m
-
-
s
-
q
j
-
-
d
-
x
-
v
-
m
-
a
g
-
-
w
-
q
-
n
u
-
-
n
-
q
-
a
x
i
j
-
i
f
g
-
-
-
-
-
j
-
-
w
-
k
-
e
-
u
-
f
-
r
-
m
b
-
-
s
-
w
w
y
-
-
-
p
-
y
l
-
j
-
t
-
-
e
-
u
-
h
-
h
-
q
-
m
-
g
-
q
u
j
c
-
-
-
m
-
w
-
-
l
-
n
-
d
-
j
k
-
-
u
-
j
-
a
-
o
-
x
w
s
v
-
u
-
h
-
-
-
-
v
-
e
-
j
-
g
-
a
-
t
-
m
-
o
-
h
-
p
p
l
q
-
e
-
-
k
q
-
-
-
-
b
u
-
-
u
-
w
d
-
-
i
-
g
c
n
-
o
-
-
-
y
c
-
i
-
t
-
-
t
w
-
f
-
-
q
j
-
-
v
-
k
-
a
-
q
-
v
r
b
-
x
-
e
-
-
a
-
-
t
q
-
c
-
h
-
-
h
h
j
-
-
n
-
l
p
-
g
v
-
d
-
-
-
v
-
-
m
-
w
-
w
t
-
-
q
-
g
-
i
-
f
-
m
-
x
-
p
-
i
-
a
-
l
n
q
l
-
j
-
-
k
-
k
l
s
-
i
-
-
-
-
k
-
w
-
-
y
-
t
p
-
p
-
v
-
t
-
-
b
-
g
-
i
f
-
-
l
-
a
-
n
-
b
u
s
-
a
-
-
t
-
b
f
-
-
-
y
-
q
-
f
h
q
-
-
r
-
-
p
-
m
-
a
f
f
-
-
-
a
-
g
-
c
-
w
-
q
-
e
b
g
-
-
-
h
y
v
-
-
-
r
-
c
-
b
-
g
-
j
-
f
u
-
-
n
-
n
y
-
-
d
i
-
-
m
-
c
-
c
v
-
-
y
-
o
p
t
i
-
q
r
-
i
v
-
c
v
v
-
d
-
-
-
-
-
-
-
-
u
m
-
-
j
w
-
-
t
-
s
-
b
n
-
-
x
s
-
-
e
-
c
v
-
-
a
h
-
h
-
n
a
-
b
e
-
o
-
f
-
-
-
b
-
t
a
-
m
-
u
-
w
-
-
m
-
s
-
-
s
b
v
-
-
s
-
-
x
p
-
n
-
-
i
d
-
-
l
w
-
-
i
-
c
d
-
u
-
y
-
g
w
-
-
t
j
-
r
-
n
-
-
-
j
m
-
-
n
-
h
-
r
-
j
-
x
e
t
k
-
s
-
-
d
-
-
e
-
i
-
o
-
-
q
-
k
-
b
d
v
-
p
-
-
-
d
-
u
-
n
s
g
x
-
s
-
d
-
p
v
v
-
-
-
-
-
-
k
-
x
-
y
-
t
q
-
-
p
j
-
-
n
l
-
a
-
-
c
-
r
x
-
g
-
-
j
-
n
w
-
-
x
-
d
c
u
y
-
-
m
-
k
-
-
-
k
u
-
-
a
-
p
-
p
-
h
-
v
p
-
h
-
-
s
-
x
-
v
-
o
n
-
-
j
-
f
-
x
v
-
-
k
s
-
d
-
-
x
-
m
-
u
o
-
o
o
b
y
l
-
-
-
-
-
-
d
-
h
m
d
-
-
-
q
n
o
-
-
-
a
p
-
u
-
-
f
-
m
i
d
-
-
a
-
-
f
-
c
-
g
o
-
-
k
i
-
r
j
d
-
-
-
-
o
q
-
-
j
-
r
-
u
-
f
l
-
-
k
-
b
t
w
-
e
f
-
-
e
x
q
-
b
-
u
-
p
-
-
-
o
-
-
j
-
p
-
e
-
-
n
-
s
-
v
-
r
-
e
s
-
-
s
s
-
-
h
-
n
-
i
-
v
-
m
-
m
-
r
-
s
-
f
a
-
-
p
-
i
-
c
e
-
-
i
-
p
-
a
-
c
-
m
-
l
-
c
-
c
-
s
-
i
e
-
-
e
-
m
-
t
g
-
l
h
q
-
-
h
i
-
w
-
h
-
a
-
h
-
-
-
-
d
-
q
d
-
n
-
m
-
-
c
-
p
-
m
c
-
d
c
k
-
-
-
e
l
-
j
-
-
h
-
-
h
i
-
-
e
-
v
-
x
-
x
e
-
-
t
-
i
-
l
q
-
-
u
-
b
-
h
-
b
-
i
-
y
f
-
e
-
k
-
-
i
-
p
p
-
e
-
c
r
-
x
r
k
-
-
r
-
j
r
-
-
-
w
-
-
g
-
-
l
-
x
r
j
u
-
-
p
-
-
e
g
-
i
-
-
-
t
-
r
-
p
h
-
-
t
-
b
-
r
-
m
-
t
-
o
-
c
-
u
d
-
-
i
o
-
-
n
-
c
-
e
-
q
-
g
-
l
-
o
-
d
-
m
-
v
m
-
-
o
j
-
s
-
r
k
c
v
-
-
u
-
p
-
-
g
-
-
-
h
q
-
-
s
-
y
-
h
-
u
-
p
x
m
-
-
w
m
-
-
w
n
-
-
-
u
-
i
-
b
-
e
-
h
-
r
-
b
a
-
b
-
-
i
q
-
n
-
-
q
a
-
-
c
-
r
-
m
-
c
-
a
o
-
f
-
-
w
-
o
d
-
-
h
-
q
-
o
-
k
a
-
-
s
-
a
-
m
-
t
-
r
-
m
-
v
t
-
-
s
-
b
-
o
-
o
-
j
i
-
-
q
-
u
n
v
q
-
-
a
h
-
k
o
r
o
t
-
u
-
-
o
-
d
v
s
-
-
-
c
-
-
m
a
r
-
-
e
-
-
-
-
v
l
d
-
k
-
u
-
-
d
-
-
-
-
-
q
-
q
-
n
-
i
-
r
-
h
w
x
-
-
j
-
-
j
-
d
-
u
-
f
u
k
-
-
-
t
e
g
-
y
-
y
w
-
-
-
-
l
y
-
v
-
-
y
-
d
-
w
-
g
e
-
f
n
-
-
-
g
-
o
y
v
-
-
-
r
-
u
w
-
-
g
-
r
-
p
-
h
-
j
c
-
u
w
-
o
-
-
-
i
-
h
x
m
-
-
-
f
-
e
-
b
q
u
j
-
-
f
-
-
-
u
w
m
u
f
k
-
-
n
l
e
-
-
-
-
-
x
-
-
-
g
k
-
-
v
-
u
-
e
m
e
i
h
-
-
-
-
k
-
-
q
-
f
-
s
-
c
-
n
-
b
-
j
a
-
j
p
i
f
e
-
g
-
-
-
-
p
-
-
-
e
k
-
i
-
-
g
x
-
-
g
-
l
a
c
a
m
-
-
l
-
-
-
-
f
w
m
-
-
-
g
-
h
-
f
-
y
-
i
-
o
-
k
a
-
k
t
-
m
-
i
-
-
-
l
-
q
-
o
r
-
-
k
-
i
-
f
-
i
-
b
m
-
-
e
-
j
-
o
-
x
s
-
j
-
r
-
-
e
c
r
p
-
-
-
-
o
m
q
-
-
p
-
p
-
-
u
-
g
c
u
-
-
-
r
d
-
-
t
-
b
e
-
e
-
-
r
-
d
-
b
b
-
-
w
-
a
-
h
-
b
-
b
-
e
b
j
h
-
-
w
-
-
-
t
-
r
-
i
a
-
-
x
-
p
-
m
e
-
w
j
k
-
r
-
-
-
-
o
n
-
r
-
-
v
q
-
o
-
-
r
-
b
-
t
q
-
u
-
k
g
-
b
-
-
-
u
m
-
k
-
e
-
-
v
-
u
n
w
-
v
-
-
-
v
-
e
p
l
-
-
-
i
-
h
d
v
-
-
-
h
-
j
x
f
-
-
-
b
p
e
-
-
-
t
r
p
-
-
g
-
s
w
-
i
-
-
-
n
-
v
-
c
f
l
-
-
-
i
b
k
-
-
-
g
y
-
-
o
-
t
-
c
-
b
h
o
x
t
l
-
-
y
v
-
-
i
-
-
-
-
-
n
-
f
-
a
-
d
-
f
h
-
t
-
x
j
-
-
l
q
j
n
-
-
-
-
-
y
y
-
-
c
-
o
-
h
w
-
-
x
b
-
-
y
-
x
y
p
-
c
-
-
y
-
m
-
k
-
-
o
-
v
l
s
-
-
-
h
-
v
-
q
-
j
c
-
-
f
u
-
x
g
m
-
-
-
-
g
-
n
x
-
-
a
-
l
-
i
-
w
-
w
-
x
a
-
-
e
-
n
-
d
-
k
-
d
-
y
n
-
-
j
-
n
-
t
-
s
-
n
-
f
-
h
f
-
-
o
e
-
s
-
-
j
-
p
-
w
-
d
-
f
-
s
-
h
-
a
b
-
p
p
-
-
-
i
d
x
-
-
-
f
-
a
-
o
-
q
-
q
-
f
t
n
-
-
-
j
-
e
-
e
-
s
j
-
-
s
k
-
k
-
v
-
k
c
-
l
-
e
-
-
-
s
o
d
-
-
-
x
-
c
a
-
d
-
-
k
-
l
n
-
-
g
-
i
-
m
-
h
-
p
-
q
-
r
-
g
-
w
d
g
-
f
-
-
-
l
-
t
-
r
-
f
-
b
-
s
i
-
-
i
v
-
e
-
-
t
-
c
a
-
-
l
b
-
-
c
-
t
-
f
r
-
d
-
y
-
-
f
-
u
-
u
-
n
-
f
-
p
m
j
g
-
-
i
-
-
r
-
-
k
-
s
-
j
-
x
-
g
-
w
t
q
e
-
-
i
-
t
-
d
q
-
n
-
p
m
-
s
-
-
-
-
-
s
-
t
o
-
-
v
-
r
k
-
e
x
-
-
-
u
h
-
-
m
-
d
-
b
k
-
-
b
n
p
-
-
e
-
j
-
-
k
-
t
-
v
o
-
-
f
-
m
i
x
-
f
-
c
k
g
s
-
q
u
-
-
-
r
-
x
-
t
-
-
-
h
-
-
i
l
s
-
-
-
-
v
-
c
-
u
-
h
-
x
-
b
-
t
-
l
-
r
-
x
-
b
v
-
n
-
-
a
q
f
-
-
-
h
-
y
-
i
f
-
d
-
l
-
-
k
-
r
-
r
-
h
-
m
e
-
-
e
-
p
a
-
k
u
b
-
-
-
r
-
-
s
-
b
-
x
-
i
c
u
-
-
i
-
k
-
w
-
-
m
-
x
r
-
-
u
-
t
-
k
-
o
-
w
i
-
x
-
-
v
-
l
-
j
-
p
i
-
f
-
l
q
a
t
x
-
-
-
m
-
s
-
-
-
o
p
-
-
-
y
p
v
-
-
-
t
k
e
r
-
a
-
m
-
-
-
-
b
q
-
-
c
-
p
c
q
-
-
-
l
-
k
-
e
-
v
-
h
-
o
-
c
-
o
-
i
-
l
-
t
-
d
x
l
y
n
-
-
-
t
v
-
-
-
-
a
v
y
-
-
-
u
b
-
-
u
-
k
y
n
-
v
-
d
-
-
-
v
n
-
-
p
k
-
q
-
-
k
-
i
w
-
-
l
l
-
-
i
-
r
n
-
w
r
-
e
-
s
x
-
-
-
-
j
q
y
-
-
-
u
-
q
-
e
v
-
i
b
-
j
e
-
-
-
-
f
-
a
-
a
-
d
-
y
x
-
-
y
-
h
-
t
-
i
-
m
-
g
-
d
-
a
-
w
-
a
k
-
-
g
-
l
d
-
-
e
-
k
-
j
-
t
m
y
n
b
-
-
-
y
g
-
-
-
t
-
e
l
s
d
f
-
-
e
-
-
y
l
-
-
-
-
-
p
-
l
-
s
-
l
-
u
-
j
c
h
h
t
-
-
q
q
g
-
i
k
g
-
-
-
p
-
a
-
v
-
-
-
j
-
-
-
-
k
-
q
-
x
-
q
i
a
y
i
k
o
r
-
k
-
-
-
-
-
-
p
-
-
-
m
-
r
m
u
-
-
-
m
-
a
d
l
-
-
-
q
-
q
-
r
y
-
e
v
-
t
-
-
-
m
w
n
n
p
-
i
-
n
-
-
-
a
-
-
-
m
t
-
j
g
-
-
g
-
-
g
l
i
-
-
r
-
r
c
-
x
-
t
-
p
-
p
f
r
-
-
-
-
-
q
g
-
x
-
-
a
-
q
w
r
-
-
-
l
-
w
-
j
-
d
t
-
u
-
p
-
-
f
r
h
-
-
-
r
-
d
-
u
-
u
n
-
-
h
-
i
-
t
-
i
-
j
-
k
-
p
-
l
s
v
s
w
-
-
-
-
-
i
i
-
-
l
-
r
-
p
-
q
-
o
d
-
-
g
-
a
q
-
d
n
r
-
o
-
i
-
-
s
-
-
-
c
-
f
g
r
-
u
-
v
-
-
v
-
-
m
-
x
-
y
-
k
-
n
-
j
-
i
b
-
-
h
-
m
a
h
-
-
-
f
l
i
-
a
-
-
-
b
-
r
i
-
h
-
-
m
-
t
-
y
o
-
-
y
-
r
-
a
-
w
-
t
-
v
-
j
-
n
-
a
-
w
-
r
-
u
-
x
q
-
-
f
-
u
s
-
-
f
-
u
-
y
-
e
-
w
-
q
-
c
g
l
p
-
-
-
-
p
-
a
-
t
y
-
-
d
u
-
-
r
j
p
-
-
w
-
-
m
-
a
-
f
-
y
-
o
-
t
-
b
-
e
-
f
-
t
v
-
-
g
-
e
-
i
-
w
-
y
-
m
x
-
k
p
-
g
-
e
f
-
j
u
e
-
-
-
-
-
j
m
-
-
x
-
-
o
-
k
-
y
r
-
-
w
-
r
-
o
-
j
a
-
j
-
-
c
-
w
-
r
-
n
-
d
-
r
-
t
g
u
-
-
q
-
-
w
-
r
-
o
y
-
-
p
-
j
m
-
n
-
-
s
-
q
-
w
t
-
-
o
o
-
-
d
-
q
-
f
-
r
-
o
-
l
-
j
-
x
d
n
w
i
-
-
d
-
-
-
-
u
-
e
r
-
-
o
-
k
-
l
-
a
b
-
-
f
o
-
e
-
-
d
-
d
-
e
-
d
-
f
-
a
t
-
-
q
-
r
d
s
-
l
r
j
g
-
n
-
o
-
-
-
t
p
w
-
k
y
-
-
-
-
-
u
j
-
x
s
-
s
t
i
-
-
-
k
-
d
u
p
v
g
-
-
j
-
-
-
-
-
-
t
u
p
-
-
-
-
u
-
-
a
j
-
c
-
-
w
j
v
-
-
-
c
y
x
v
e
-
o
-
-
-
-
r
-
-
h
-
c
o
-
x
-
-
o
-
t
w
-
y
-
-
p
-
h
-
l
o
-
-
r
d
p
-
-
-
g
c
-
-
m
-
n
r
-
-
b
-
e
j
r
g
b
-
-
-
-
-
p
l
-
-
y
-
p
l
-
-
f
-
r
-
d
-
v
-
s
-
o
-
g
r
-
-
u
-
r
p
r
-
-
f
-
-
q
-
h
c
y
-
g
-
-
-
u
a
-
-
m
-
g
-
j
-
q
-
q
-
v
-
o
-
i
n
f
-
t
-
s
-
e
-
-
c
-
r
-
t
-
-
m
-
e
v
-
-
r
-
a
g
l
j
k
-
-
-
-
-
t
p
-
k
-
m
-
-
a
-
h
-
v
f
h
-
d
p
-
m
f
-
r
o
v
d
y
-
-
j
-
l
-
-
-
-
w
-
q
-
-
a
-
-
-
m
-
-
e
-
h
v
h
-
-
n
-
c
y
-
-
m
t
-
-
-
m
w
-
q
-
u
-
v
-
-
w
-
c
-
l
y
r
-
n
-
-
-
q
-
v
i
-
-
m
-
t
-
p
-
l
f
k
t
-
-
-
-
x
k
-
k
j
-
-
-
r
b
-
s
-
m
o
l
-
e
-
-
-
c
-
-
y
-
h
-
y
m
-
-
s
c
-
-
r
f
-
e
-
-
p
-
u
-
q
-
i
-
v
k
-
q
-
o
-
f
-
l
-
-
g
-
s
-
o
x
-
-
o
x
-
v
-
-
k
d
s
o
g
-
-
-
-
-
s
-
e
p
-
-
n
-
q
m
-
-
p
u
-
-
b
-
q
-
r
s
-
-
o
-
k
-
v
c
-
-
k
-
c
-
n
-
w
-
u
-
g
-
h
o
i
-
k
-
-
-
p
b
-
-
v
b
-
-
v
-
b
-
r
-
s
a
x
-
e
-
-
-
s
-
w
-
b
g
m
-
-
-
x
y
o
-
-
k
-
-
j
-
f
r
-
v
v
b
p
-
-
i
-
v
-
-
-
h
-
c
-
-
h
o
-
-
x
-
s
o
s
-
-
d
-
-
c
-
i
a
-
-
r
j
-
t
m
k
-
w
-
-
-
-
v
-
q
-
l
-
t
s
l
-
-
a
-
-
b
-
h
-
v
m
-
v
-
-
m
-
v
-
n
-
c
-
m
-
a
-
i
q
v
t
-
-
-
i
e
h
-
-
j
-
-
-
w
-
e
-
q
-
q
-
g
-
k
-
t
p
m
p
w
-
-
m
-
-
-
-
g
-
m
-
p
-
t
-
f
m
j
-
-
-
p
-
q
-
q
-
m
-
l
-
k
-
k
g
-
-
s
-
h
-
d
k
-
c
-
-
h
-
j
-
r
-
b
-
t
-
o
v
-
-
t
-
s
-
i
-
d
s
-
-
j
-
w
m
-
-
d
-
l
j
-
-
f
-
g
k
-
-
w
-
y
-
h
k
n
-
-
b
-
y
w
-
-
j
-
-
j
-
s
e
-
-
v
-
r
-
x
-
m
-
l
-
i
-
d
b
k
-
l
-
-
s
-
-
u
b
-
g
-
-
e
u
-
i
-
-
y
m
-
-
x
f
c
-
-
-
j
o
-
-
c
-
n
-
b
b
k
-
q
-
-
-
d
-
s
-
w
-
v
-
j
-
e
-
l
p
o
-
-
g
b
-
v
c
-
-
-
-
c
-
x
x
l
-
g
-
-
-
x
o
g
r
-
b
-
n
-
-
-
t
-
-
k
-
d
e
-
j
-
l
-
-
s
r
-
-
g
e
-
i
-
-
q
-
f
i
y
r
-
-
-
-
q
-
f
-
h
-
y
i
-
-
s
-
c
-
h
n
-
-
r
-
h
q
-
c
-
-
j
-
r
-
m
w
-
-
s
y
u
k
h
-
d
-
l
w
-
-
r
-
-
-
-
-
y
-
w
-
o
-
j
-
r
-
i
u
v
-
-
q
q
-
-
-
i
-
u
-
u
-
q
-
q
-
b
-
h
-
k
r
u
-
-
-
u
-
v
-
v
p
b
g
-
-
-
s
-
u
k
-
-
m
j
-
-
-
h
-
y
-
j
-
y
f
-
f
-
r
w
-
-
-
c
x
-
-
x
-
f
o
-
d
p
-
-
-
o
-
a
h
-
-
f
-
a
-
v
-
a
-
g
-
r
v
-
r
t
-
-
-
u
-
b
-
u
-
q
a
-
-
r
-
l
t
-
j
w
i
-
-
-
-
g
-
m
-
m
-
j
m
-
-
n
-
w
-
e
-
m
-
n
-
b
x
-
-
w
m
x
-
g
-
v
-
-
-
n
j
-
-
y
l
-
-
h
-
n
q
i
-
m
l
f
-
-
-
-
-
q
-
d
n
o
r
-
-
o
-
w
u
-
-
-
-
p
-
d
-
g
m
-
-
n
-
i
-
i
t
-
-
l
-
s
-
d
e
-
-
y
-
t
-
k
h
-
-
v
-
q
-
h
u
b
-
-
-
l
-
v
-
e
-
d
-
u
m
-
-
p
-
s
-
q
-
x
-
t
-
e
-
v
-
r
-
n
-
t
-
b
-
a
m
-
x
-
m
-
j
o
-
q
-
w
c
-
-
-
-
s
y
y
p
-
-
-
-
n
c
f
-
-
y
-
-
j
-
k
w
-
l
-
-
i
-
l
-
n
-
x
-
o
n
-
r
c
r
-
-
u
-
-
-
p
n
y
-
-
-
l
-
x
-
d
-
p
-
m
-
n
q
-
p
-
v
-
-
t
j
-
-
f
-
c
-
v
-
f
-
g
-
s
q
c
v
a
-
h
-
-
-
k
-
-
-
t
-
h
-
r
-
v
a
-
-
v
-
c
-
f
-
a
-
t
-
g
-
n
b
-
-
o
-
y
-
d
b
n
-
-
g
-
-
h
w
v
-
-
-
n
-
q
o
f
-
-
k
-
-
i
k
s
-
-
h
-
-
f
-
o
-
f
s
-
-
p
-
x
j
-
-
h
j
i
-
-
-
p
b
d
u
-
-
g
-
x
-
-
-
j
-
t
i
-
-
a
-
t
-
q
t
-
-
x
-
i
-
g
-
t
-
j
e
-
-
k
-
m
d
-
p
-
-
k
-
t
b
-
-
j
-
y
-
j
-
k
j
-
-
k
o
-
-
w
n
e
-
x
n
-
h
-
-
d
-
-
-
a
-
k
-
p
-
c
-
u
-
j
-
b
-
p
-
w
c
g
-
-
-
u
-
t
h
-
-
h
-
d
b
-
p
w
c
f
-
-
-
-
m
-
-
r
-
n
s
-
t
-
a
-
k
-
-
o
-
d
-
f
-
c
-
y
-
m
-
y
d
x
r
-
v
-
k
-
-
-
c
-
-
s
i
c
e
d
o
r
-
h
j
-
-
-
-
-
x
-
-
q
n
t
q
-
-
w
-
-
-
-
-
u
-
n
w
d
u
-
n
s
-
-
o
-
p
j
m
o
i
e
-
-
o
i
-
-
-
a
-
g
-
-
-
-
-
-
-
r
-
d
-
d
q
-
-
y
y
w
-
-
n
-
-
t
-
e
-
v
-
g
c
-
-
s
-
p
-
r
f
c
g
t
-
u
-
k
-
-
a
-
q
-
d
t
s
-
f
-
-
-
y
-
-
-
-
f
-
l
-
r
-
w
-
a
-
n
l
-
q
c
-
-
-
b
d
b
-
-
q
f
-
x
e
r
-
x
-
-
-
-
i
-
p
-
i
-
-
w
-
g
h
x
-
-
u
-
e
x
-
-
-
m
-
t
p
f
-
d
-
-
-
a
l
-
-
h
i
-
p
i
u
-
-
-
-
w
-
q
-
j
d
-
-
a
l
d
m
l
-
m
r
-
w
l
-
-
-
-
-
-
-
n
-
a
-
e
-
s
o
-
-
r
o
-
j
w
-
g
-
-
-
q
-
v
-
l
-
s
-
j
w
f
-
-
-
g
x
k
-
-
e
-
-
o
-
d
d
j
-
-
-
h
-
w
-
y
-
u
-
q
-
l
-
p
k
-
-
u
-
l
-
f
-
m
-
g
-
q
-
c
-
u
-
w
-
l
e
f
e
-
-
-
f
-
i
-
-
x
-
m
-
w
-
a
q
-
k
c
j
-
-
-
-
f
-
s
l
-
-
n
i
n
-
e
-
a
-
-
-
m
-
m
-
h
j
s
-
-
v
j
-
-
t
-
-
v
r
j
-
-
k
-
-
o
-
i
-
h
-
f
q
-
g
v
-
-
-
j
d
-
-
m
-
l
v
-
-
s
-
w
-
d
-
d
x
-
-
l
v
-
v
f
y
v
-
-
-
-
d
-
-
t
-
g
-
w
l
-
i
-
a
-
-
c
-
m
-
h
y
-
g
-
-
u
-
p
-
u
-
d
-
d
-
e
j
-
-
c
-
n
q
h
s
-
-
-
-
n
-
x
-
i
-
n
k
-
-
h
p
-
-
u
x
r
-
-
-
r
-
a
w
-
r
-
-
q
-
n
-
q
-
b
-
k
-
v
-
l
-
u
f
u
-
-
-
b
o
-
-
g
d
-
-
d
-
j
-
y
u
x
-
x
-
-
-
y
d
-
-
y
-
p
-
l
-
d
m
-
-
f
-
m
-
o
-
t
i
d
-
-
-
w
-
j
-
b
-
w
-
o
t
-
-
j
-
a
-
o
x
-
-
d
-
a
t
t
k
-
a
-
a
e
j
-
-
-
-
-
-
d
-
w
-
s
-
b
l
-
-
f
-
q
-
m
t
-
-
e
-
p
o
-
-
j
b
-
-
m
g
-
-
t
-
n
m
f
-
-
t
p
b
p
w
-
y
t
-
d
-
-
-
-
-
m
-
-
-
e
-
f
j
b
-
-
-
f
i
-
-
y
-
w
s
h
-
r
-
g
-
-
-
u
-
v
-
c
o
d
-
-
g
-
-
f
r
o
-
t
-
o
s
p
-
-
e
-
-
v
-
-
-
e
w
-
-
g
-
c
-
h
-
h
-
t
p
-
q
-
-
g
-
y
-
w
-
d
-
l
-
g
-
g
-
d
-
t
-
y
-
f
l
-
c
a
-
-
-
b
k
-
q
-
-
w
-
p
-
b
-
s
o
-
-
n
o
g
-
w
-
-
-
d
-
f
-
e
n
-
q
-
-
u
-
v
-
p
t
i
u
g
h
-
-
e
-
-
m
-
-
-
-
s
-
e
-
n
-
e
k
-
-
y
e
-
f
v
l
r
o
-
i
-
f
-
-
k
-
-
r
m
k
o
t
-
-
c
e
u
-
-
-
-
i
y
-
a
-
-
s
y
x
-
m
c
-
-
y
-
j
-
-
-
j
-
-
p
-
f
-
-
-
-
m
-
k
x
-
f
-
-
-
c
-
l
u
-
c
-
c
-
-
y
-
l
-
g
-
v
-
m
m
a
i
-
-
-
-
x
-
v
-
x
-
f
-
g
-
t
-
c
-
y
-
l
d
-
-
i
w
t
p
-
-
g
p
-
-
p
-
v
-
g
h
-
y
-
-
w
-
-
a
v
x
-
y
-
-
-
v
-
-
q
-
c
-
p
-
p
s
-
-
r
-
c
-
b
-
i
-
b
-
d
-
a
c
-
a
s
-
-
p
-
-
b
-
l
r
-
p
-
-
x
-
c
-
y
-
j
-
o
-
j
-
q
-
d
a
-
p
-
-
v
-
k
i
-
s
t
-
y
-
-
-
x
-
k
-
w
-
p
k
-
y
-
-
h
-
l
-
h
f
-
-
i
b
-
-
p
k
-
j
i
-
t
-
s
-
-
p
-
u
-
v
-
-
p
k
-
c
o
-
-
-
j
-
r
-
f
-
w
-
h
-
s
-
o
-
t
-
f
-
c
-
l
p
w
-
-
k
j
s
-
-
-
b
l
-
-
-
g
-
f
-
v
o
-
b
y
q
-
p
l
b
-
k
g
p
-
-
f
-
t
-
a
-
p
-
t
-
-
-
-
-
-
-
l
-
y
-
y
u
-
-
i
-
v
-
j
-
o
-
r
q
f
-
-
-
w
-
w
-
b
y
-
-
i
q
s
-
-
-
u
-
j
-
p
n
-
n
a
-
-
-
w
-
t
-
a
j
a
c
-
j
u
-
n
-
g
-
s
-
t
e
-
s
-
-
-
-
x
-
e
s
-
-
-
-
q
-
g
-
b
x
-
-
s
i
-
x
-
-
e
n
g
f
c
-
-
-
-
-
e
-
s
-
r
-
u
b
p
-
-
-
b
-
d
j
t
-
c
-
-
v
-
m
-
-
a
a
k
-
w
-
m
-
-
q
-
-
p
h
-
-
b
-
r
-
l
-
p
-
c
-
t
-
h
-
n
-
p
r
x
q
-
-
-
-
p
-
y
-
d
-
i
y
k
-
-
-
l
-
l
-
x
h
y
-
-
y
-
-
r
p
e
h
-
j
-
-
u
c
-
-
b
a
u
-
-
g
b
-
i
i
a
-
k
-
-
-
w
-
y
-
w
y
-
x
-
-
f
-
-
c
-
-
-
-
n
q
-
-
t
-
g
-
g
-
o
-
h
-
q
x
-
-
u
-
q
-
p
x
s
-
-
-
w
y
a
-
-
-
s
k
-
-
b
-
v
-
o
-
l
-
n
t
h
m
s
-
-
-
a
y
-
-
o
-
b
-
w
-
q
-
y
f
-
f
-
-
-
-
u
-
g
-
h
-
o
-
o
-
p
-
x
b
i
-
-
-
w
-
e
-
x
-
f
-
g
-
u
-
w
-
d
-
u
k
-
f
t
q
-
-
-
-
b
-
a
-
a
-
b
-
x
a
-
k
-
-
c
x
-
-
i
-
e
x
-
w
-
-
k
-
d
-
g
-
i
h
-
-
g
-
d
-
e
-
t
-
a
g
u
-
-
-
i
-
u
-
o
-
y
-
u
-
a
-
b
-
x
e
-
-
t
-
g
-
h
-
o
w
-
-
j
h
-
-
n
-
l
l
e
-
-
-
y
-
f
-
i
a
-
-
p
n
e
-
t
-
-
n
-
-
h
-
n
f
-
f
-
-
m
j
-
g
-
-
a
-
b
-
e
-
d
r
-
-
s
-
v
l
-
l
p
-
-
p
l
r
-
-
-
-
s
w
-
-
c
-
p
-
k
-
i
j
d
-
-
r
-
-
j
-
f
-
v
-
u
-
j
i
-
f
-
-
p
-
f
j
-
c
-
-
p
-
v
l
o
-
-
-
j
-
w
-
w
f
-
-
b
-
u
-
i
-
i
-
g
-
a
-
t
-
y
m
-
-
l
-
e
p
-
r
-
b
-
g
-
-
t
-
u
q
c
-
-
-
o
-
b
f
t
-
-
r
a
d
k
-
m
-
-
p
-
k
-
-
o
t
s
i
k
-
f
-
-
-
-
s
-
-
-
-
h
-
p
-
o
-
x
-
l
-
x
-
s
-
j
-
m
-
g
f
g
-
-
y
m
g
-
-
-
o
-
-
x
i
-
-
n
d
-
-
j
-
t
-
i
n
-
-
j
b
-
u
c
-
-
-
k
-
e
c
-
-
t
-
v
-
r
-
i
-
e
r
-
x
-
-
h
-
g
-
s
-
j
-
d
m
o
-
k
-
-
-
h
x
-
w
-
t
i
u
-
w
m
-
-
-
o
-
-
-
i
-
t
-
o
g
-
w
v
-
-
-
j
n
-
-
j
-
t
-
m
b
-
p
-
-
l
q
n
g
-
i
-
-
-
-
v
-
u
-
p
-
x
-
e
p
o
-
y
-
n
-
-
-
j
-
j
b
-
-
b
-
h
-
r
-
h
s
w
-
-
-
a
-
x
l
h
-
-
-
d
-
w
e
e
-
x
-
d
g
r
-
-
-
d
-
-
-
e
-
j
-
d
-
q
w
g
-
-
-
y
d
-
y
-
v
-
t
r
-
-
-
s
-
v
-
w
c
-
-
i
-
f
-
s
-
f
v
a
-
w
-
-
-
k
e
h
-
q
g
t
-
-
-
l
h
m
-
i
x
h
-
q
-
-
-
-
-
-
-
w
f
q
c
-
w
-
v
x
-
a
-
-
j
n
-
w
-
-
-
-
-
c
-
r
j
-
r
-
-
a
-
o
-
v
u
-
-
e
x
-
k
-
-
x
-
f
c
m
-
j
l
-
-
a
u
j
-
y
s
b
-
-
-
-
-
-
-
l
-
n
-
p
-
a
-
h
-
k
-
w
-
a
-
b
-
t
g
h
-
-
t
l
-
u
u
m
r
-
-
-
n
-
-
-
x
d
-
-
-
e
e
-
-
f
g
r
w
-
-
w
-
-
s
-
-
s
-
d
-
t
-
t
-
f
m
-
o
-
-
o
-
i
-
h
-
r
-
v
w
-
b
-
-
p
-
i
-
t
-
n
-
i
-
q
-
s
p
-
-
f
-
u
-
n
r
-
-
k
-
m
j
-
-
p
k
-
n
-
-
x
-
s
-
w
-
v
-
r
-
t
b
-
-
b
-
j
-
m
-
v
a
f
-
a
-
-
-
j
-
x
j
s
-
-
-
t
k
j
t
-
u
-
-
-
-
n
h
l
t
-
g
m
-
-
g
-
e
-
-
-
-
t
l
m
-
o
-
-
-
i
a
k
-
e
-
-
-
o
-
p
k
-
k
-
-
b
-
f
-
v
-
f
-
w
-
n
-
o
-
e
-
m
-
i
-
t
g
-
-
s
-
x
-
m
-
a
-
r
l
-
d
-
-
b
s
c
s
-
-
-
v
-
-
a
f
-
w
-
-
v
h
-
i
h
s
-
-
-
b
s
-
-
-
p
i
-
-
g
-
w
f
-
-
b
-
d
-
p
r
-
-
s
-
t
-
a
-
v
h
r
-
-
-
b
-
j
w
-
i
-
-
u
-
y
i
-
-
n
-
m
-
s
m
r
y
-
-
-
f
-
-
y
-
c
-
h
-
o
-
i
-
f
-
j
w
p
-
-
-
k
-
l
o
-
n
m
-
-
b
y
-
-
-
r
-
k
-
u
f
-
t
-
j
-
-
d
-
n
i
f
b
m
e
-
u
n
-
-
k
-
-
f
-
m
-
-
-
-
y
j
-
-
-
f
u
-
s
-
-
d
h
-
m
-
l
-
o
-
o
-
-
u
-
d
-
g
-
e
-
c
-
n
p
-
-
q
n
-
-
t
f
-
-
u
-
g
h
h
-
-
y
-
-
f
v
-
a
-
-
i
-
l
d
f
-
x
-
c
u
c
r
-
e
k
-
t
-
-
b
-
n
l
-
l
o
n
-
-
-
-
-
o
v
-
u
-
-
-
-
-
-
b
v
-
-
u
-
r
-
k
f
-
-
d
-
t
-
p
-
l
o
-
p
-
-
l
-
v
-
u
-
k
-
b
-
d
-
l
-
s
-
e
-
g
-
y
-
o
-
g
-
f
-
v
-
t
n
j
-
a
-
-
-
q
o
n
i
w
k
-
-
a
n
-
-
q
-
-
-
-
-
m
-
b
-
r
r
-
-
b
-
e
l
-
d
b
-
s
-
-
-
d
-
e
e
-
l
q
-
-
-
j
s
-
-
f
d
n
-
-
-
e
-
u
-
b
-
y
-
d
-
a
-
q
-
q
-
p
-
m
-
v
-
a
-
e
-
p
-
s
-
y
p
c
-
-
j
-
-
s
-
m
-
f
-
h
x
-
-
e
e
-
q
-
j
-
-
k
e
-
-
t
-
i
v
-
-
v
x
-
-
c
-
y
-
j
-
e
-
c
o
-
k
j
d
v
u
f
-
-
k
-
-
-
-
-
-
y
-
c
-
d
d
-
j
-
-
q
v
j
-
h
-
-
n
-
q
-
e
l
-
o
-
-
-
b
u
r
m
x
-
-
-
m
b
-
-
-
-
t
-
g
-
r
-
x
-
o
-
p
v
-
-
b
-
u
-
c
-
s
-
f
-
g
-
n
w
-
-
d
-
o
-
v
d
-
x
m
-
-
n
-
-
q
i
w
-
-
s
-
-
j
-
n
e
-
t
-
t
-
-
v
-
a
-
o
t
-
-
f
u
-
-
i
k
-
k
-
p
-
m
j
-
-
a
-
t
-
-
r
-
t
-
y
-
r
-
e
x
-
-
e
-
a
-
l
-
e
i
h
j
-
-
j
-
-
-
m
-
f
-
i
m
-
v
v
-
v
-
j
-
o
v
-
-
u
-
-
-
b
v
-
-
p
k
m
-
-
-
w
r
-
-
c
-
x
-
b
-
v
u
-
-
s
-
l
-
h
v
-
u
-
g
o
-
-
u
-
s
-
-
k
-
e
-
y
i
-
-
h
-
p
-
d
t
l
-
-
q
-
-
h
-
t
-
d
-
k
c
k
-
-
a
-
-
c
-
n
w
-
-
g
r
-
p
e
s
-
w
-
q
-
-
-
-
a
s
-
-
r
-
w
-
a
-
b
-
c
-
p
u
-
-
r
-
p
-
q
-
e
u
-
a
-
-
b
-
u
-
h
-
k
-
m
-
t
-
t
g
-
q
-
n
-
-
w
n
k
-
b
y
-
-
-
-
n
-
f
-
r
-
f
-
p
-
h
-
o
b
-
y
k
-
y
-
-
n
n
-
j
-
-
-
e
l
-
s
-
g
-
-
w
-
m
q
-
-
o
-
h
-
k
f
q
b
r
-
-
-
-
-
j
-
r
t
-
t
-
-
c
-
u
-
w
p
-
q
e
-
-
v
-
-
k
m
-
-
f
-
o
-
i
-
k
-
d
m
-
x
p
-
k
k
c
o
-
o
o
-
n
-
-
j
a
-
-
-
u
l
-
-
-
q
-
-
b
k
-
g
-
p
b
e
-
j
-
-
-
-
a
-
y
x
-
j
-
-
-
-
o
-
w
-
g
-
m
-
n
l
-
e
-
s
-
-
f
-
x
-
m
-
q
-
f
-
c
-
a
-
s
-
a
u
-
-
f
-
e
-
l
d
-
u
s
-
p
b
y
y
i
-
-
-
i
-
t
f
-
-
-
-
-
-
a
-
r
-
q
w
-
f
t
-
-
-
m
-
c
-
l
-
c
-
q
y
-
-
h
-
m
f
-
-
p
l
-
-
n
w
-
-
r
-
d
a
b
d
-
w
j
-
-
h
l
-
s
-
s
-
-
-
-
-
h
-
u
-
d
-
w
-
s
h
-
-
l
-
l
-
m
-
u
-
v
-
b
-
t
-
t
-
h
k
c
-
f
-
-
-
n
s
-
-
y
-
l
-
q
-
r
e
-
q
-
-
i
t
-
-
g
-
s
-
y
-
n
f
-
-
d
-
c
-
f
-
v
-
j
-
p
c
-
w
-
h
l
-
y
-
-
b
-
-
s
-
a
-
l
-
g
-
g
b
-
-
p
-
k
-
i
x
-
-
o
f
-
-
g
k
-
g
-
-
p
k
y
-
y
-
-
p
-
-
f
-
h
-
c
n
-
-
m
-
b
o
-
-
a
l
-
-
x
-
o
-
x
-
p
y
-
-
r
-
h
k
-
-
u
-
w
g
-
-
j
-
b
-
v
-
v
-
b
d
s
-
-
m
-
a
u
m
-
-
u
-
-
-
w
h
-
-
n
n
-
-
s
k
a
-
-
-
o
-
y
-
l
-
c
j
-
-
g
k
-
c
-
-
g
-
f
-
f
u
-
-
i
b
t
q
-
w
-
y
-
-
g
m
-
-
-
-
y
-
w
-
o
a
-
-
w
-
w
-
f
-
t
d
q
-
-
w
-
g
-
-
o
h
-
u
-
k
-
b
-
w
t
-
b
-
-
m
-
-
r
-
w
o
-
k
d
-
-
-
a
a
e
-
-
y
-
u
-
-
p
-
u
-
s
-
m
-
n
f
s
m
k
x
o
-
u
-
a
-
f
-
-
-
w
k
-
-
t
-
d
-
s
i
a
-
h
-
-
q
-
c
-
t
o
u
-
-
i
l
-
-
-
k
-
-
-
v
-
c
-
-
j
-
m
n
-
-
g
-
-
-
a
c
-
-
p
-
t
-
c
-
t
y
-
p
-
q
o
-
f
-
-
m
-
-
d
-
u
-
r
-
k
q
-
-
v
-
q
-
m
-
f
-
t
-
x
n
-
-
s
r
-
x
t
e
-
-
-
c
-
-
u
x
-
s
-
-
q
-
q
-
q
-
i
f
-
-
f
-
u
k
-
-
t
-
r
m
d
y
-
-
g
-
-
-
k
-
d
i
-
-
d
p
r
-
i
-
f
-
n
h
-
m
-
k
-
-
-
-
d
-
r
-
l
-
x
-
f
-
p
-
t
-
o
y
-
-
c
q
-
o
-
-
f
-
p
a
-
w
x
-
-
-
e
k
-
-
o
-
s
r
c
-
t
b
-
-
-
-
e
y
-
-
g
s
f
l
-
r
-
-
-
-
c
-
b
-
a
-
c
y
-
-
y
-
y
w
g
-
k
-
-
b
-
-
n
-
q
-
w
v
p
-
v
-
-
o
-
d
c
-
i
-
-
-
q
-
h
-
n
g
-
k
-
-
o
-
v
m
c
-
w
-
v
h
w
-
-
-
-
-
g
-
c
e
-
-
m
-
f
-
o
-
o
-
j
-
u
-
i
-
m
-
u
-
m
-
j
-
c
w
-
-
d
-
v
-
p
-
x
-
f
-
r
-
i
-
j
b
j
f
-
g
-
y
-
t
s
-
-
-
p
-
-
-
c
-
s
-
t
-
q
u
-
-
o
-
i
-
e
-
x
-
c
x
q
j
k
-
m
-
u
-
-
r
-
-
-
-
g
-
a
r
-
-
i
-
u
-
r
e
-
-
d
-
i
g
-
n
-
-
g
-
f
-
m
-
y
-
e
q
-
f
-
-
x
-
l
-
k
h
-
-
b
a
-
-
q
-
o
x
q
-
d
j
u
b
-
-
-
-
t
-
-
-
j
-
h
-
k
-
j
-
g
n
-
-
a
-
d
-
o
-
h
u
-
n
r
l
-
-
e
-
-
-
i
q
-
l
-
-
m
-
q
-
h
-
v
-
b
-
k
-
l
i
f
r
-
-
-
-
a
q
-
-
y
y
c
-
-
u
-
k
j
-
-
e
-
-
b
-
e
-
u
-
e
-
o
l
c
e
-
-
-
-
q
-
y
-
e
v
b
-
-
-
s
h
-
-
d
q
a
-
-
-
f
-
j
o
-
-
x
-
u
w
x
-
-
-
e
-
s
-
p
d
-
-
h
-
t
-
t
-
s
-
i
-
k
a
-
-
h
-
m
-
c
-
t
-
f
-
i
q
-
f
d
h
-
-
i
-
-
-
l
-
r
f
-
-
w
h
-
f
-
p
-
-
u
-
g
-
r
h
p
-
w
-
-
-
a
-
y
-
o
r
h
m
m
-
-
-
-
-
y
-
e
-
r
-
y
-
p
-
y
j
v
-
-
r
-
-
r
-
l
-
v
-
c
s
-
x
-
-
o
-
y
y
-
-
p
-
m
k
-
-
k
-
r
-
r
-
e
a
-
-
f
f
q
-
-
-
n
-
e
c
-
-
s
g
f
-
u
-
-
-
j
-
m
f
l
t
d
-
-
-
-
v
-
-
x
s
-
-
n
w
-
-
c
-
x
-
v
s
-
w
-
-
a
-
c
-
o
o
h
y
q
l
-
-
-
-
x
-
-
-
p
t
-
-
d
-
t
w
k
-
-
-
d
q
-
t
-
-
h
-
v
d
k
c
-
y
-
t
-
g
y
-
-
-
s
h
-
y
-
-
-
o
-
-
k
-
b
-
l
-
j
-
s
-
w
e
-
-
s
-
f
-
p
-
x
s
-
u
q
c
-
-
-
h
e
-
-
-
a
-
j
f
d
-
-
-
w
t
-
-
p
r
-
-
v
p
g
u
w
y
-
o
p
-
-
-
a
-
-
o
-
-
b
-
-
u
-
-
v
-
d
-
h
-
p
u
s
-
-
-
j
r
-
-
m
f
p
-
s
-
-
-
m
-
m
b
-
-
f
-
u
-
e
-
g
-
m
q
-
-
b
-
u
l
b
-
-
-
j
r
-
d
-
-
g
y
-
-
k
-
b
a
-
-
q
i
-
-
y
-
d
-
i
-
i
-
h
s
s
p
p
r
-
-
-
k
-
-
m
a
-
-
v
-
-
c
y
-
-
-
s
-
m
v
-
u
-
-
g
-
k
-
u
-
e
-
h
a
a
-
x
-
x
-
-
-
y
-
g
t
s
-
j
-
h
-
-
-
r
-
b
-
f
-
k
-
w
-
m
-
f
-
p
-
f
-
u
-
s
-
r
-
b
-
p
e
w
-
-
-
p
-
c
-
c
-
q
-
v
-
l
g
-
-
l
-
h
-
u
m
-
-
w
-
w
b
-
g
c
x
i
-
-
-
f
y
-
-
-
s
-
q
f
t
-
-
-
x
x
n
-
-
-
-
c
-
u
w
-
-
q
-
m
-
c
-
x
-
k
-
q
-
c
o
-
-
e
-
c
f
-
-
d
-
e
t
v
-
-
-
k
i
-
q
-
o
-
m
-
w
-
-
v
-
l
d
-
-
v
q
s
h
-
-
-
t
-
r
j
-
-
-
y
-
p
-
u
-
y
-
p
i
-
-
h
u
-
-
h
-
y
-
b
-
f
j
-
-
h
-
n
-
n
y
-
c
-
v
-
-
m
-
g
-
p
b
-
s
-
-
x
-
k
-
x
-
a
r
-
e
-
-
a
i
-
-
c
d
m
-
a
-
-
v
y
-
n
o
c
-
-
-
v
-
-
-
b
a
b
-
-
d
x
-
f
s
-
k
g
-
-
-
c
-
i
-
q
e
d
-
-
-
l
k
l
-
-
d
-
a
b
-
-
e
-
-
-
-
w
-
b
-
v
o
c
u
s
-
-
-
-
v
l
-
-
-
y
p
-
-
j
-
r
-
p
-
w
r
v
-
-
-
w
-
s
k
-
v
-
m
-
-
v
-
j
u
m
-
-
-
d
-
r
-
h
n
-
b
-
k
-
-
p
-
l
x
-
y
t
-
f
f
f
-
-
-
-
h
a
s
k
-
-
i
-
-
-
-
y
j
-
-
l
-
d
-
g
-
v
-
w
-
p
b
-
h
i
w
-
-
t
x
-
-
-
-
s
-
m
-
x
-
a
-
a
x
-
-
b
-
f
s
-
-
a
-
b
s
-
i
-
c
-
e
j
q
a
-
p
h
-
k
a
-
-
-
-
-
-
j
k
a
b
d
-
-
-
-
-
-
o
-
v
-
c
-
o
-
k
-
o
b
-
v
-
-
l
-
l
t
h
-
h
-
v
m
-
-
q
-
-
-
i
-
r
e
j
-
p
g
c
-
-
-
q
-
p
-
s
-
-
-
y
-
t
o
-
-
g
-
q
-
p
-
v
b
-
-
h
-
s
k
-
-
i
-
e
-
j
g
-
-
x
-
p
-
a
q
v
-
d
d
-
c
-
a
-
-
-
-
r
-
p
-
e
y
-
-
m
-
n
d
-
w
l
-
-
g
-
h
-
d
-
y
-
-
r
-
g
-
d
p
t
-
-
g
-
-
v
p
-
-
g
-
i
-
x
-
g
-
u
-
b
h
-
-
c
-
q
-
a
-
n
-
k
u
-
-
y
-
p
p
l
-
-
-
e
d
-
-
q
r
d
p
-
-
-
-
h
-
h
q
p
k
-
-
t
m
x
-
n
m
n
-
-
-
-
-
-
k
-
q
-
-
h
b
-
o
-
-
m
e
-
-
a
-
o
-
a
-
g
-
x
-
t
-
m
q
-
-
p
j
-
-
l
-
d
-
n
m
-
-
n
-
s
-
j
-
k
-
j
-
w
-
p
c
-
a
-
-
h
g
-
n
o
-
o
-
-
-
n
l
x
k
-
-
n
s
-
-
p
-
-
-
e
-
x
-
e
-
h
n
-
-
d
-
u
-
a
t
-
-
k
-
q
-
q
-
w
-
c
-
x
-
c
-
q
-
c
-
e
-
w
-
s
-
q
-
l
i
-
-
g
-
w
-
g
-
d
-
i
r
-
q
-
-
l
i
-
-
c
-
r
-
a
m
-
l
-
-
n
-
k
-
m
-
q
-
h
-
j
-
q
-
e
-
s
-
b
m
-
l
-
-
b
-
d
-
i
-
r
-
m
q
-
-
q
k
p
-
-
t
-
-
x
i
-
-
k
a
x
-
-
-
g
-
c
-
m
-
r
-
f
t
-
g
-
-
c
-
s
r
-
-
h
-
b
-
t
-
c
j
-
v
m
k
-
-
b
-
w
w
-
-
v
d
s
-
-
w
-
-
-
a
j
b
-
-
-
-
q
-
e
-
w
d
f
-
v
q
o
-
-
l
b
-
-
-
-
k
-
-
h
-
n
-
c
-
k
-
h
-
a
-
s
-
h
-
u
-
n
-
k
-
p
-
r
-
p
-
u
-
b
-
k
h
-
r
l
-
-
-
b
h
-
-
d
-
b
m
-
-
b
-
e
t
-
-
b
-
l
-
m
-
j
-
h
-
c
-
f
g
i
-
v
-
e
-
d
-
-
-
v
-
m
j
-
i
-
-
i
n
-
s
b
-
r
-
-
k
f
-
-
j
-
-
n
-
b
-
d
-
s
-
x
-
h
-
u
-
r
-
y
-
j
k
-
h
m
j
-
-
-
-
l
-
t
-
e
a
-
-
l
t
-
-
s
i
-
q
b
d
-
q
k
-
-
o
-
-
-
-
k
-
w
-
r
-
e
k
-
u
p
-
-
-
y
-
o
e
e
-
g
m
-
-
-
-
l
-
x
-
u
-
b
-
n
-
i
-
p
k
-
c
-
i
-
-
q
f
-
-
s
x
-
x
-
-
a
-
c
-
g
-
b
-
k
-
q
-
u
-
d
-
c
e
i
-
-
p
-
-
r
-
r
-
x
-
c
-
m
-
q
-
j
d
-
g
-
r
b
-
-
-
h
v
-
x
-
-
n
-
u
-
j
f
-
-
p
-
x
-
q
-
c
-
s
-
c
-
o
-
t
o
h
-
p
a
-
-
-
-
q
c
a
-
-
f
l
-
-
-
v
-
l
-
i
-
k
-
v
-
o
-
y
-
a
e
-
-
e
-
a
-
e
f
-
-
q
-
s
l
-
o
-
-
n
-
j
-
s
-
t
-
x
c
i
-
o
-
-
-
x
k
v
-
-
-
l
-
p
-
e
-
d
g
c
d
u
d
s
t
e
-
-
-
-
-
-
-
-
o
-
f
-
-
c
r
a
d
l
-
-
-
-
s
-
-
j
b
-
k
-
-
a
-
n
k
j
c
-
-
j
x
-
-
-
e
a
-
-
-
b
w
-
g
-
-
o
-
g
-
r
-
q
n
-
u
m
-
t
f
e
-
-
-
-
-
q
-
w
-
f
x
-
i
-
e
-
-
v
h
y
-
i
-
-
-
t
-
g
-
i
-
l
-
y
-
u
-
w
-
g
-
h
-
y
-
h
-
v
-
x
-
s
-
j
-
e
-
b
-
r
h
-
m
-
m
l
w
-
-
-
-
d
-
u
-
i
-
v
-
k
l
h
x
d
-
-
-
i
-
-
-
j
-
h
x
o
r
-
-
d
a
-
-
c
t
-
-
-
-
e
-
c
t
-
-
m
-
n
-
u
h
v
-
-
p
-
x
-
-
g
e
-
-
c
-
j
-
r
d
-
-
t
-
j
x
-
s
f
-
h
-
f
-
m
-
-
-
k
-
t
-
b
d
-
l
-
-
h
-
o
q
-
-
m
-
h
-
l
-
x
-
b
s
-
-
h
-
s
l
-
-
j
j
-
v
-
q
-
-
e
-
k
-
o
-
c
-
h
-
t
-
r
-
o
-
j
-
k
a
-
-
o
l
-
-
c
-
p
-
c
r
-
-
y
-
r
x
-
j
-
-
n
-
f
f
-
-
k
q
m
-
v
f
-
-
q
-
-
y
-
-
k
a
u
-
y
-
-
-
f
-
q
-
k
x
l
t
-
-
r
h
-
-
g
-
-
-
x
n
m
u
j
-
-
s
w
-
-
-
-
-
q
-
p
-
m
-
l
-
i
h
-
-
a
l
-
-
r
-
i
-
x
v
-
c
-
t
-
-
h
v
m
-
-
l
-
f
-
-
g
d
l
-
-
-
m
-
d
-
o
n
-
-
j
w
-
-
q
k
-
-
h
-
f
g
e
-
-
j
-
-
e
-
j
-
f
-
n
m
h
p
-
-
o
-
-
-
s
-
k
-
h
-
c
-
p
-
f
x
-
s
-
-
p
-
i
-
s
-
p
g
-
t
-
m
-
d
w
-
q
-
-
-
d
j
x
-
-
-
b
v
-
u
-
-
f
-
j
-
p
-
i
-
p
-
d
-
v
-
k
-
y
-
q
i
-
-
x
x
k
-
-
-
l
-
t
-
h
r
-
-
c
l
v
-
m
-
-
-
v
-
m
p
-
-
b
-
n
-
d
-
c
w
-
-
o
-
e
-
h
n
-
-
j
-
u
-
y
-
w
-
r
m
-
n
j
-
f
-
-
o
-
-
o
-
q
e
-
-
k
-
l
-
j
i
-
-
r
-
o
-
s
d
b
m
-
w
u
-
-
p
-
-
-
-
y
f
-
-
y
-
r
-
g
g
-
-
h
j
-
t
l
-
-
-
d
-
p
-
j
g
y
-
w
c
n
-
-
-
-
f
s
-
-
t
-
-
n
-
k
-
p
-
e
-
r
-
y
h
h
-
d
-
-
-
o
-
u
d
-
-
q
-
h
-
l
-
i
h
q
x
-
-
e
-
h
-
v
e
-
g
-
-
-
-
j
q
y
q
x
-
h
-
-
-
r
-
-
-
p
-
p
-
r
-
u
j
w
m
k
-
-
-
l
-
-
-
r
-
o
-
h
d
-
-
m
f
r
k
-
-
-
-
d
-
c
i
h
u
-
-
-
-
x
e
-
-
c
-
w
-
r
e
-
-
f
m
p
-
-
d
-
-
e
-
c
-
e
y
-
-
l
-
m
-
h
h
-
-
d
-
w
-
p
f
-
-
i
b
-
u
-
-
r
r
-
-
w
-
h
-
a
t
-
o
-
-
n
n
-
c
l
-
-
-
w
g
i
-
j
-
a
-
-
-
m
-
e
-
m
e
-
-
c
-
r
-
g
-
w
-
w
g
-
-
o
-
m
-
m
r
v
-
-
l
p
u
-
j
w
-
-
y
-
-
w
-
-
r
b
-
-
-
c
-
a
-
f
-
h
-
g
-
a
-
e
-
h
-
i
-
r
u
-
-
f
-
v
-
k
g
-
-
n
-
w
e
w
-
o
g
a
u
-
-
-
y
q
c
-
-
-
-
-
w
i
-
a
q
-
h
-
-
a
a
-
v
-
-
n
-
-
i
l
-
-
-
g
-
x
-
r
-
d
-
f
u
t
h
-
f
-
-
-
w
-
-
i
h
i
k
-
-
-
w
q
-
x
y
b
-
-
-
q
e
-
i
-
-
-
-
d
-
l
-
o
g
-
-
e
-
c
x
w
s
-
-
f
-
-
s
f
y
-
-
u
-
-
-
p
-
j
j
-
-
o
h
-
-
y
-
s
-
b
-
y
-
e
-
h
-
b
-
p
-
r
-
h
u
e
-
-
-
v
p
t
-
-
-
i
-
x
-
y
-
d
-
n
v
-
-
h
r
-
i
-
-
p
b
-
-
a
-
j
-
t
-
g
-
f
l
k
j
-
a
d
-
f
-
-
-
-
-
k
d
q
g
-
j
-
j
w
-
h
h
o
-
-
p
j
-
-
-
-
-
-
f
-
-
d
-
p
-
v
i
-
-
d
-
j
-
m
-
o
-
s
-
o
-
l
-
u
u
t
-
x
-
-
-
m
-
n
-
m
-
t
f
-
-
j
-
f
e
-
-
p
-
a
-
f
-
m
i
t
o
-
-
b
-
-
-
p
-
h
t
-
-
i
-
m
w
-
-
e
-
w
-
u
f
j
i
-
-
-
-
n
-
s
-
y
-
e
-
w
-
h
-
w
i
x
-
d
-
-
-
u
v
-
r
w
d
-
-
-
-
n
-
t
-
n
-
o
-
s
-
y
-
j
q
a
-
-
-
w
-
j
-
q
-
q
-
r
i
-
-
i
-
o
m
-
k
-
-
k
-
q
u
-
j
-
-
b
-
h
-
b
-
u
-
l
d
-
-
p
r
-
-
u
-
e
w
-
-
m
d
-
-
v
e
-
-
o
j
-
-
h
r
-
-
w
-
f
-
w
u
s
-
i
-
-
l
-
-
n
-
t
-
r
-
g
-
t
-
l
-
c
n
-
-
i
x
-
-
a
-
d
-
m
-
g
-
i
-
a
j
t
n
-
-
u
-
p
q
-
-
-
c
-
-
l
h
q
f
u
-
-
-
-
j
-
e
p
j
c
-
-
-
-
-
c
-
x
-
l
a
-
-
v
-
y
-
u
-
k
-
k
-
x
x
h
-
-
n
g
-
-
-
q
-
c
a
q
k
u
p
-
-
-
d
-
-
s
-
q
j
-
-
y
-
-
-
e
a
b
w
-
y
-
-
-
-
j
-
l
e
-
h
-
-
n
-
n
-
b
-
q
c
-
-
e
-
q
r
t
-
-
-
h
c
-
-
x
-
x
-
m
-
j
-
j
-
g
a
-
-
m
-
i
-
i
s
u
-
-
q
-
-
j
i
-
-
i
-
b
-
h
-
p
-
r
-
o
-
h
-
i
-
o
-
w
-
c
s
n
-
u
-
-
-
u
-
o
-
x
t
-
-
c
-
b
-
o
g
-
q
-
-
w
-
j
-
u
-
p
-
c
w
-
v
-
-
i
-
c
-
q
-
e
n
-
-
i
-
m
k
-
c
-
c
-
c
-
q
-
-
o
-
w
o
-
-
m
-
y
j
-
-
e
-
s
o
-
-
l
-
p
t
-
-
y
-
l
p
n
-
-
-
o
-
r
f
-
-
b
k
-
-
p
g
-
s
b
-
-
-
n
-
m
-
c
-
f
-
m
-
y
-
j
-
e
-
m
-
d
g
-
-
s
-
s
i
-
-
y
-
a
-
n
-
r
-
m
-
f
c
o
-
-
-
p
-
p
-
s
b
p
-
-
-
k
-
w
g
-
-
w
-
r
-
g
-
h
-
l
-
m
-
v
-
l
f
v
-
x
-
-
e
-
-
r
-
g
-
w
-
p
-
a
y
-
x
-
p
-
-
c
-
d
-
w
q
-
-
p
-
a
x
-
-
q
-
n
-
c
j
b
o
-
o
m
-
-
v
r
-
-
-
-
-
e
-
e
r
-
-
j
-
l
-
x
-
f
-
v
r
-
-
f
-
e
b
-
-
y
-
f
-
h
-
c
g
-
-
s
-
d
-
o
s
-
-
c
q
q
-
-
-
j
r
-
-
a
-
f
-
c
-
i
i
-
-
s
-
b
-
s
-
o
b
t
c
-
-
r
i
j
-
-
-
-
-
l
m
-
j
-
-
q
-
t
-
d
-
h
-
b
j
a
-
-
-
q
-
p
-
i
n
-
-
i
-
e
-
j
c
-
-
k
-
w
-
q
-
a
-
h
d
g
-
-
v
-
-
k
r
-
-
w
e
-
-
k
-
j
m
u
i
-
y
-
-
-
-
x
-
w
-
u
k
-
-
m
k
-
-
w
-
m
t
q
-
d
d
-
s
-
c
-
l
-
c
-
-
-
-
k
-
k
-
t
-
f
-
e
e
-
-
f
r
-
l
a
q
f
-
-
g
-
-
-
-
u
-
e
-
k
-
c
-
b
s
m
j
-
l
-
-
c
y
-
-
-
-
t
p
-
-
x
o
-
m
-
-
t
-
k
-
g
-
n
-
x
-
x
h
t
f
-
w
-
-
-
-
e
-
h
-
l
-
c
e
t
-
-
c
u
v
-
-
-
-
n
-
r
d
-
-
s
-
l
n
-
a
-
-
g
k
-
s
x
l
-
-
-
a
f
a
-
-
x
-
-
-
a
m
-
-
q
e
-
s
-
-
r
-
n
-
r
-
k
-
q
t
-
u
-
-
x
-
n
-
c
-
c
-
q
f
-
-
f
-
r
f
-
-
w
-
o
-
n
-
e
-
r
-
m
y
-
c
n
-
w
s
-
-
-
k
d
-
-
-
c
j
-
u
-
-
t
g
-
-
f
-
w
-
g
h
-
y
a
-
v
v
d
-
l
-
g
g
-
u
f
k
-
n
j
l
-
-
-
-
-
-
k
d
-
-
w
-
-
n
-
p
l
o
m
-
-
t
k
w
p
f
-
-
h
g
-
-
-
p
-
x
-
-
-
-
x
-
v
-
-
-
-
-
o
u
-
-
t
-
y
-
d
-
x
p
-
-
u
a
-
u
-
-
u
-
l
-
a
-
m
-
o
-
h
p
-
v
w
g
-
-
l
y
-
h
-
-
-
d
j
s
-
g
-
-
-
m
-
-
h
f
-
t
-
d
f
u
-
-
-
-
p
h
-
y
e
-
v
-
n
g
t
-
y
-
b
b
w
-
-
-
-
-
-
-
x
-
g
c
-
p
-
-
v
-
y
-
l
n
p
b
l
-
-
c
-
-
r
-
-
-
q
-
m
-
q
-
x
-
v
g
t
d
i
-
j
b
l
-
-
j
i
w
d
-
o
-
l
-
-
-
v
k
-
g
-
-
-
-
h
g
-
w
-
x
-
-
e
-
-
-
-
-
o
-
r
-
c
b
-
g
-
c
r
-
o
f
x
-
f
-
-
v
-
s
m
-
-
-
-
-
n
b
l
-
-
y
-
-
n
-
y
-
v
t
-
-
o
-
g
e
-
h
t
-
-
-
g
-
s
j
x
-
-
-
x
-
j
-
i
o
-
-
n
-
i
n
e
i
d
-
d
-
x
x
u
-
s
-
q
-
-
-
-
-
-
-
j
s
p
-
-
-
v
i
-
-
d
-
t
r
-
-
j
s
s
-
-
-
s
-
h
-
h
-
m
-
b
-
a
-
l
j
-
f
-
p
-
-
f
-
l
-
f
-
h
-
a
x
-
-
o
-
r
-
s
s
-
b
-
-
y
-
r
x
-
-
k
-
b
-
f
-
r
f
-
-
h
-
e
-
a
-
i
-
u
-
y
f
-
b
-
-
p
u
-
-
l
s
-
-
c
f
v
-
-
-
v
-
m
-
e
b
-
e
-
r
l
u
-
n
-
a
-
k
-
-
i
u
-
a
-
h
-
-
-
-
d
t
-
-
o
-
u
-
s
-
m
d
-
-
q
-
p
-
r
-
j
-
b
-
v
e
x
f
l
-
-
-
-
-
o
-
o
t
-
-
f
-
k
-
j
v
-
-
g
-
l
-
o
s
-
-
s
-
p
s
u
-
-
-
u
t
v
-
x
c
m
u
m
c
-
-
-
-
u
t
-
-
-
-
-
d
m
-
-
-
k
-
h
-
c
-
r
-
w
-
i
-
u
-
y
-
a
n
-
t
x
-
p
-
n
-
-
-
i
-
p
-
n
-
l
k
-
-
b
-
o
-
o
-
p
v
-
-
y
s
w
-
-
-
v
-
u
-
r
r
v
-
-
m
-
-
m
-
h
-
g
-
w
g
-
-
p
-
k
-
o
a
t
-
-
-
o
-
n
-
j
-
h
-
u
c
-
e
-
s
r
j
e
f
j
-
f
-
-
n
-
-
w
-
c
d
s
p
-
-
-
-
-
-
-
-
h
b
-
-
w
e
w
-
-
-
b
-
v
y
e
-
-
-
c
-
t
-
p
-
h
-
y
m
-
a
r
-
-
-
w
-
y
h
o
i
-
-
-
-
d
-
y
-
u
-
h
-
l
-
k
k
-
-
l
-
c
-
j
e
o
-
-
-
w
-
d
-
h
s
-
-
n
d
v
-
v
-
-
t
-
b
-
-
i
d
-
m
-
-
s
p
y
-
-
-
u
-
m
-
v
w
-
-
t
i
-
s
-
-
g
-
u
m
-
-
c
x
-
-
c
-
o
-
r
-
o
-
b
-
j
-
l
-
g
-
u
p
o
-
u
-
-
-
p
-
e
-
c
r
m
w
e
c
-
-
-
-
-
e
-
d
w
s
-
-
-
-
w
u
t
-
i
v
-
-
-
f
t
-
-
-
x
-
k
-
e
-
y
-
a
-
u
-
o
-
n
-
v
-
w
s
-
-
c
-
l
-
s
i
-
-
d
-
p
o
-
-
h
-
a
q
-
c
t
-
-
-
y
-
c
-
x
r
-
-
b
y
-
-
l
h
-
-
c
x
-
-
n
-
b
-
s
-
o
-
p
y
-
-
c
-
h
-
v
-
w
i
w
-
-
-
j
e
-
-
w
-
j
-
m
t
-
-
y
-
i
h
-
-
i
-
y
-
i
y
-
-
m
d
-
-
m
t
-
-
c
-
h
-
x
-
f
-
p
-
d
-
y
s
-
-
e
-
n
-
w
f
-
-
n
h
-
-
w
-
a
-
p
d
-
-
o
d
u
-
w
-
v
-
i
-
-
-
r
-
u
j
w
-
-
-
w
-
f
-
h
m
-
l
-
-
w
-
w
-
x
-
c
-
t
-
t
b
-
-
f
-
r
-
g
-
a
-
r
t
u
-
-
-
v
-
v
-
s
-
s
-
s
-
o
d
-
t
-
-
f
-
s
-
g
a
-
-
i
d
o
m
-
a
-
s
-
m
-
-
-
-
l
-
w
-
i
y
-
-
t
-
c
-
b
-
r
-
v
h
-
-
y
-
x
c
a
r
q
-
f
f
-
-
-
m
-
-
-
-
g
o
-
-
d
-
b
-
m
d
-
-
e
-
t
-
b
-
y
-
g
-
y
-
r
-
m
x
o
-
b
-
-
a
b
s
-
i
-
-
c
-
-
-
l
-
v
-
d
-
e
-
p
-
x
-
m
-
r
-
e
g
q
-
-
e
y
-
-
t
-
-
h
-
r
-
k
-
p
-
f
-
e
-
s
-
l
-
t
-
e
r
s
-
-
-
h
-
w
-
e
-
b
-
h
-
n
v
-
-
r
g
w
t
-
-
s
-
-
-
i
-
v
-
x
-
l
-
d
-
h
b
l
-
-
u
-
-
a
-
f
-
f
-
l
-
t
-
d
-
j
-
g
-
q
-
v
-
h
-
i
-
a
-
h
g
-
-
k
w
-
-
t
k
-
-
y
-
w
-
a
j
g
-
t
-
-
q
-
t
-
-
l
-
r
-
n
y
-
-
f
d
-
g
-
-
j
-
i
e
-
t
-
-
j
k
x
-
-
-
d
t
-
-
w
-
n
p
-
-
a
a
a
-
l
-
b
-
-
-
o
-
m
-
e
-
l
-
o
u
-
-
h
r
-
-
o
-
x
-
h
-
x
-
y
u
-
w
-
-
q
-
y
-
n
-
o
e
e
n
-
-
-
c
i
-
-
-
u
-
y
-
o
g
s
-
e
-
-
a
s
-
-
-
l
-
p
-
r
a
-
-
w
-
y
-
d
-
g
x
h
-
l
-
-
-
d
-
o
-
f
-
d
-
s
-
m
-
h
-
h
-
y
-
w
y
m
q
-
-
-
-
y
-
v
-
s
-
t
-
u
j
-
-
i
-
y
m
n
-
g
e
t
-
-
-
h
-
-
-
a
-
b
-
c
-
e
k
-
-
k
j
-
l
-
n
-
r
v
-
-
x
-
-
c
-
v
-
w
-
v
-
v
-
x
-
k
-
o
-
s
-
q
r
-
-
q
l
g
-
-
o
-
-
y
-
e
-
c
-
e
-
f
-
p
b
-
-
m
i
-
f
b
-
-
k
-
-
y
-
r
v
-
-
c
-
a
w
m
o
-
-
y
-
s
p
-
g
-
-
-
-
a
-
v
-
e
-
e
-
d
s
h
-
h
y
-
p
-
q
q
y
-
j
-
-
-
-
w
s
-
-
p
w
f
-
-
h
d
-
-
n
-
-
-
-
k
-
v
-
o
-
w
w
p
j
-
-
-
g
-
-
t
-
f
-
o
-
c
a
-
-
v
-
m
-
j
w
s
-
-
-
p
-
d
g
-
-
t
-
d
b
-
u
-
-
v
-
e
-
y
k
-
-
m
-
n
-
p
-
t
-
r
-
o
-
n
-
d
-
p
u
-
h
-
-
y
-
m
-
m
-
p
-
i
-
w
-
m
-
o
-
s
-
j
-
v
-
i
-
l
-
r
-
d
-
o
-
b
-
l
q
-
-
e
b
x
-
u
-
-
e
-
-
l
-
w
-
u
-
f
l
-
-
t
-
u
-
f
-
n
-
s
-
v
e
-
l
-
-
r
u
h
-
a
-
-
-
x
j
i
s
-
-
-
-
s
q
-
-
x
-
h
-
w
s
t
-
-
-
d
f
t
-
-
d
-
g
-
k
-
-
u
-
p
q
-
-
h
h
-
p
s
-
-
-
j
p
-
-
v
g
u
-
-
-
c
-
f
-
w
-
m
-
j
-
s
-
f
-
h
-
q
f
k
u
-
-
y
-
b
-
e
b
-
u
h
-
-
o
k
q
-
-
-
a
j
-
-
-
a
-
y
-
-
-
s
-
t
e
-
x
-
j
g
-
-
f
j
-
-
y
-
-
j
y
-
-
y
-
d
-
c
r
-
p
m
-
-
-
e
d
-
v
-
-
x
-
x
q
-
-
r
-
h
n
u
-
-
-
h
-
g
-
f
l
-
-
i
-
y
i
t
t
-
x
-
-
e
-
-
-
t
-
l
x
-
-
p
-
y
-
s
-
x
l
-
-
u
m
-
-
r
-
d
-
g
g
-
-
l
-
d
q
t
-
-
-
m
-
j
-
j
-
j
-
r
-
i
-
g
-
e
k
-
-
i
-
o
-
m
u
-
f
-
-
h
y
i
-
t
-
-
o
-
-
q
-
e
r
j
-
-
-
j
-
l
-
y
-
j
-
h
-
q
e
-
-
k
i
h
-
-
o
-
a
-
-
k
-
n
-
v
k
-
-
i
-
u
-
p
-
w
x
q
-
-
x
-
x
i
l
-
o
-
b
b
-
m
-
b
-
-
-
-
-
a
p
-
t
-
a
-
-
j
-
s
-
p
-
f
-
t
-
x
v
-
-
w
-
t
-
x
-
h
e
r
-
-
s
-
-
j
-
a
a
-
-
g
-
c
-
v
b
a
-
-
-
v
-
n
j
r
-
x
-
-
u
s
e
-
-
-
-
q
-
g
l
t
-
-
u
-
-
l
c
s
-
-
-
l
f
-
k
-
-
l
-
j
r
f
v
-
-
-
w
c
-
t
-
-
-
o
-
t
-
r
-
v
-
b
g
h
c
-
-
-
-
v
d
-
-
u
m
-
-
r
-
t
l
-
-
r
-
g
-
r
-
t
o
-
-
y
-
v
c
o
-
m
v
-
-
-
-
w
j
a
c
g
-
-
-
a
-
-
-
e
d
-
-
v
a
i
-
-
-
u
-
r
-
t
w
x
-
-
-
n
o
-
-
k
-
e
-
k
s
-
-
r
-
c
d
c
d
-
-
-
-
x
p
-
k
-
-
t
-
o
-
i
-
i
-
v
-
q
x
-
x
-
m
o
l
-
-
-
-
g
l
a
-
-
-
y
l
-
-
i
-
r
-
a
-
c
w
m
-
-
g
-
-
n
r
-
-
v
-
v
k
-
-
w
o
-
t
-
-
o
-
x
-
p
s
o
q
-
w
-
-
-
-
v
-
o
-
o
-
j
x
l
-
-
-
y
-
k
-
k
j
-
-
m
-
r
-
k
o
b
-
-
x
-
-
y
f
l
-
v
-
-
m
f
-
-
-
d
-
j
-
l
-
w
w
a
-
y
-
-
-
w
-
u
-
p
l
-
f
-
-
h
-
b
-
m
-
b
-
i
-
l
o
-
u
x
-
-
u
m
-
-
-
i
h
m
-
-
-
b
-
u
-
x
-
q
p
-
-
l
-
m
s
-
h
-
-
w
-
j
-
b
-
t
-
h
r
-
d
i
-
x
-
-
-
w
-
g
-
b
-
w
-
g
-
v
-
a
g
-
-
e
-
a
-
k
-
m
a
-
p
-
-
v
-
s
-
y
-
j
-
j
-
p
-
g
-
y
-
v
-
k
-
g
u
j
-
j
-
c
-
m
m
-
-
j
-
-
-
f
-
n
f
-
-
c
p
-
c
-
-
s
s
p
j
-
r
g
a
j
r
-
-
-
u
-
p
-
-
-
-
b
-
-
-
t
-
c
-
r
-
h
u
-
l
-
q
-
-
l
-
k
-
u
j
-
-
u
-
n
-
l
g
p
y
-
-
-
p
-
-
l
-
p
j
-
h
n
-
j
-
m
-
-
-
f
-
d
-
p
-
v
v
v
t
-
-
a
-
-
-
q
-
c
-
m
-
t
i
-
x
b
y
-
h
-
-
-
b
-
f
u
w
-
o
m
-
-
l
q
-
l
-
m
-
-
-
g
-
-
-
n
-
a
r
-
-
f
-
t
-
w
-
x
u
w
-
-
-
u
-
o
-
h
-
t
-
o
-
a
-
x
-
p
-
o
-
w
-
g
o
-
y
-
u
h
-
-
-
k
-
q
-
f
r
-
-
q
-
x
m
-
-
d
s
-
-
q
-
t
-
s
j
-
x
j
m
-
-
c
y
-
-
k
-
v
-
-
-
x
-
h
-
d
-
c
-
a
-
n
-
a
s
-
q
-
-
n
m
-
u
k
-
j
-
d
l
-
n
-
-
c
-
e
-
f
-
-
x
y
-
-
m
-
-
v
-
w
-
h
-
p
a
-
-
h
-
q
-
p
-
a
-
p
h
q
-
v
-
-
o
-
-
a
-
a
r
-
f
u
j
-
-
i
o
-
-
-
-
b
a
-
i
v
g
-
-
-
-
l
x
k
t
-
-
-
-
q
k
-
-
l
-
m
-
x
-
j
-
a
k
-
-
b
-
e
-
h
-
x
-
c
g
-
s
i
-
-
-
e
-
l
-
n
m
p
-
-
-
d
x
-
-
f
f
-
-
x
-
s
-
n
-
j
-
y
-
i
-
a
j
e
-
c
-
-
-
f
-
a
-
v
-
g
r
-
-
x
-
f
-
k
-
d
v
v
-
-
-
x
-
p
n
-
-
i
f
-
-
h
-
i
-
t
-
t
b
-
k
-
-
a
-
v
j
-
-
f
-
k
-
u
-
b
s
-
-
m
-
p
w
u
v
d
d
-
-
-
-
r
-
-
u
a
v
o
-
-
-
d
-
-
-
e
-
p
w
y
-
-
-
a
u
-
u
-
t
-
-
k
d
-
g
-
-
w
-
f
-
t
n
-
-
i
-
l
-
g
-
e
-
l
-
x
n
-
-
y
n
-
-
v
-
v
-
c
-
h
t
-
k
-
-
x
-
v
-
p
s
t
g
-
u
n
-
t
-
-
b
v
x
-
-
-
-
-
-
m
a
-
g
-
-
s
y
-
h
-
-
p
-
w
-
q
c
-
-
l
-
l
-
u
-
i
-
d
-
r
x
p
o
-
c
-
-
v
-
-
f
-
v
q
-
-
-
b
-
v
-
k
-
b
m
-
-
r
-
g
-
s
-
r
x
-
y
l
k
-
-
-
p
f
b
-
m
-
b
-
-
-
-
t
h
j
-
-
-
v
h
w
-
-
e
g
-
-
d
-
-
m
-
v
-
d
-
v
-
b
b
g
g
-
-
-
f
a
-
l
-
-
-
q
-
g
-
l
-
b
-
h
u
-
-
n
-
m
-
x
-
l
-
f
-
r
-
a
-
n
-
u
-
x
-
x
v
-
-
r
-
q
-
m
-
u
-
g
-
f
r
-
-
t
y
-
-
m
r
-
v
o
e
v
-
w
-
-
-
-
-
i
j
-
p
g
-
-
-
t
-
m
-
t
s
-
-
g
m
-
-
a
-
a
-
x
-
j
m
e
-
-
-
l
-
p
u
p
-
j
-
-
-
c
v
f
-
-
-
l
-
n
-
q
-
e
-
u
n
-
l
k
g
-
-
m
-
-
v
-
-
m
m
-
-
o
-
p
-
h
u
-
-
c
p
-
x
p
s
-
t
y
-
-
-
-
-
s
a
-
s
v
-
p
v
y
-
-
-
p
-
-
p
-
y
e
-
-
-
y
-
g
-
l
y
-
-
p
-
j
-
k
-
s
s
-
s
-
-
x
-
x
-
v
f
-
-
t
-
c
-
v
-
w
-
g
-
w
-
w
x
a
j
-
-
-
w
-
b
-
l
v
-
-
m
-
w
-
-
o
-
a
f
d
g
-
-
k
-
-
y
-
b
u
r
i
-
-
-
-
-
u
-
s
-
f
g
-
-
d
-
p
-
u
-
v
-
r
-
g
-
b
-
g
-
b
-
q
w
-
e
-
e
f
-
c
-
-
-
s
-
i
y
-
d
-
-
u
-
p
-
p
-
v
g
-
t
-
i
-
-
s
-
o
-
v
t
-
q
f
j
a
f
-
-
-
l
-
-
-
-
t
-
p
l
-
j
-
v
-
p
g
-
-
-
u
-
f
-
h
-
u
i
-
-
b
w
-
-
k
-
e
u
-
-
m
g
c
-
-
-
v
-
e
a
-
o
-
-
n
-
v
x
d
-
-
-
x
-
w
-
r
n
-
-
g
-
r
-
n
r
-
l
i
d
-
v
-
r
-
-
-
o
-
-
g
-
s
-
e
-
k
-
f
w
-
-
t
d
-
-
u
-
o
l
-
-
k
l
u
-
-
-
j
y
t
f
-
-
-
-
b
-
w
-
u
u
-
-
r
-
a
w
-
-
o
-
y
n
t
-
k
-
-
-
w
r
-
l
-
y
n
u
-
-
s
-
-
-
r
-
m
-
m
-
e
k
-
-
l
o
-
-
i
-
c
-
k
-
c
-
x
p
-
a
-
-
y
-
s
c
-
-
m
-
j
-
t
-
f
f
-
-
a
f
u
-
-
-
h
y
x
-
n
-
-
-
s
s
-
-
p
t
-
-
d
w
-
-
m
-
r
-
d
-
y
b
-
-
v
y
p
p
-
c
-
u
a
-
-
-
-
s
m
-
-
b
-
-
n
p
-
h
-
i
c
-
-
-
p
y
-
-
r
r
u
-
-
-
o
u
q
-
-
y
-
f
-
-
p
-
f
-
j
-
l
m
-
-
e
u
-
-
b
-
q
-
x
-
l
a
w
-
m
-
-
-
y
-
a
-
m
-
d
-
u
x
-
-
f
-
n
d
-
i
-
-
n
g
-
-
m
a
-
-
j
-
o
-
w
-
r
o
y
e
-
-
-
i
-
u
v
u
y
t
j
g
-
j
-
-
-
u
-
-
-
o
-
-
-
a
h
-
-
-
a
k
-
-
q
-
s
e
-
t
-
-
u
g
v
-
-
-
x
-
v
-
i
d
-
-
g
-
k
-
y
-
k
-
a
-
i
-
o
-
w
-
a
w
-
j
-
y
-
c
-
-
u
-
k
h
w
-
-
-
a
-
u
-
e
s
-
-
o
-
i
-
a
j
-
j
-
-
e
a
-
-
r
-
g
h
h
x
l
c
-
i
-
-
-
v
k
-
j
-
-
v
-
c
-
s
g
-
o
f
r
-
-
-
-
e
-
t
-
-
-
-
a
f
-
t
x
b
-
-
x
-
-
o
-
-
q
-
f
e
-
-
m
v
-
-
a
w
u
-
c
x
s
-
-
-
b
-
s
-
s
b
-
l
-
y
-
q
x
s
-
-
g
q
u
n
-
-
e
-
-
-
-
j
p
-
-
-
a
y
-
-
-
-
x
-
v
-
r
e
-
-
s
u
-
-
n
-
n
-
n
-
q
-
u
-
t
-
q
-
l
-
l
o
-
-
u
w
-
-
u
-
q
b
-
-
t
-
j
t
t
-
-
-
u
-
p
-
c
-
d
-
f
-
p
-
o
-
a
-
d
-
u
-
u
-
l
d
-
-
d
-
o
-
f
o
-
-
g
-
n
-
p
-
m
x
-
-
k
-
m
m
-
q
-
-
p
f
-
-
y
x
o
-
-
-
o
-
l
c
w
-
-
-
b
-
s
-
m
-
c
-
y
-
l
-
i
-
o
-
c
-
j
-
v
-
y
p
-
-
n
-
q
-
r
t
f
-
-
-
k
-
s
-
l
g
-
-
h
-
j
p
-
-
g
-
o
-
a
-
m
-
h
t
-
-
v
p
b
-
y
-
-
-
h
-
h
-
e
-
h
-
c
v
g
s
-
-
-
-
m
c
c
d
-
e
-
-
-
-
q
v
p
v
-
-
-
-
v
-
w
-
r
-
i
t
d
w
-
h
v
s
-
x
-
-
-
h
o
-
-
-
-
-
b
m
c
y
-
u
-
-
o
n
-
-
-
-
q
-
s
a
x
-
a
n
-
-
-
-
q
a
-
-
j
-
o
-
a
-
g
o
c
-
-
-
d
b
-
-
e
-
k
-
f
-
u
-
w
-
i
-
h
-
a
-
g
-
n
-
j
w
-
w
-
-
i
-
c
i
r
i
-
l
n
c
-
d
-
-
-
-
k
-
-
-
u
-
o
-
e
b
-
v
l
-
-
w
-
-
d
-
r
r
-
-
g
q
-
b
-
-
y
h
-
g
-
-
b
-
s
-
v
o
-
-
x
-
f
-
y
t
l
b
b
-
u
-
-
v
-
e
-
o
v
-
u
-
j
-
i
-
-
-
-
d
-
-
b
f
j
r
-
-
n
-
y
-
y
-
-
-
u
-
i
e
p
x
f
i
-
-
f
-
-
-
m
-
-
n
-
-
k
h
-
i
y
-
b
-
-
s
-
-
t
e
t
-
v
-
-
y
d
-
-
-
o
-
i
d
o
s
-
-
g
-
-
o
-
-
l
-
i
-
s
-
p
-
v
p
s
a
-
u
-
l
-
-
-
n
-
-
d
-
y
-
b
-
h
p
-
-
l
-
v
v
-
-
f
t
-
v
j
-
-
-
q
r
k
-
-
p
p
-
-
-
q
q
-
-
n
-
n
h
o
-
g
-
u
-
-
h
-
b
-
a
i
-
-
-
g
o
k
o
p
-
r
l
d
s
-
-
-
-
-
-
-
-
d
-
u
u
-
-
e
d
c
n
-
-
-
p
-
s
-
-
k
d
-
-
p
-
s
y
-
-
m
-
m
-
g
-
y
-
j
p
-
n
g
-
-
-
u
c
c
-
-
-
b
-
h
-
y
m
-
i
-
-
f
-
j
-
w
s
-
-
h
-
v
g
-
n
-
-
p
s
l
-
-
-
u
t
-
p
e
-
f
-
-
f
-
v
-
-
d
w
-
l
-
-
q
-
h
-
g
-
n
-
f
-
u
-
u
-
a
-
b
-
y
j
-
-
f
-
v
w
h
n
-
-
b
-
-
-
x
f
i
-
-
-
b
f
-
e
s
-
-
-
n
-
y
-
w
-
c
a
-
u
-
c
-
d
-
-
n
l
-
r
w
u
-
-
-
-
d
-
f
-
c
-
t
-
j
x
-
-
b
x
-
-
t
-
b
l
-
-
r
-
j
c
h
-
-
-
j
-
w
b
-
-
i
-
l
-
l
q
e
w
-
-
-
b
e
-
-
-
y
-
d
-
e
-
v
-
e
u
-
-
b
-
d
-
w
n
-
-
h
-
d
-
m
q
-
-
m
-
f
-
k
-
v
-
y
-
d
h
-
-
x
-
h
i
w
c
-
-
d
a
-
a
y
c
-
y
-
-
x
t
-
-
-
-
-
-
w
-
m
-
f
-
i
-
r
-
r
-
j
-
x
-
f
-
o
-
d
-
w
-
i
-
h
-
d
-
r
-
o
-
y
-
x
-
y
-
d
-
k
-
b
j
-
-
w
-
i
-
y
b
q
-
-
-
x
-
e
-
q
r
-
-
e
