Compare commits

..

No commits in common. "470b909d0aef7c6abedf141b3d3d1f667e68d386" and "4ee343621cf024ea0e9fc4d18b85e7c830d8f067" have entirely different histories.

View File

@ -76,21 +76,6 @@ function event_list:push_back(x)
self.tail = x self.tail = x
end end
function event_list:strip(f)
local p, n = self, self.next
while n do
if f(n) then
p.next = n.next
else
p = n
end
n = n.next
end
self.tail = p
return p
end
function event_list:update() function event_list:update()
local p, n = self, self.next local p, n = self, self.next
while n do while n do
@ -408,26 +393,20 @@ phinstate_jump_full = {
yo=-8, yo=-8,
} }
phinstate_jump_wane = { phinstate_jump_wane = {
s={69}, s={1},
ws=3, ws=3,
hs=3, hs=3,
xo=-12, xo=-12,
yo=-8, yo=-8,
} }
phinstate_crest = { phinstate_crest = {
s={72}, s={4},
ws=3, ws=3,
hs=2, hs=2,
xo=-12, xo=-12,
yo=-8, yo=-8,
} }
phinstate_fall_wax = { phinstate_fall_wax = phinstate_jump_wane
s={1},
ws=3,
hs=3,
xo=-12,
yo=-16,
}
phinstate_fall_full = { phinstate_fall_full = {
s={7}, s={7},
ws=2, ws=2,
@ -444,14 +423,14 @@ phinstate_dive_wane = {
yo=-16, yo=-16,
} }
phinstate_return = { phinstate_return = {
s={104}, s={4},
ws=3, ws=3,
hs=2, hs=2,
xo=-12, xo=-12,
yo=-8, yo=-8,
} }
phinstate_rise_wax = phinstate_jump_wane phinstate_rise_wax = phinstate_dive_wane
phinstate_rise_full = phinstate_jump_full phinstate_rise_full = phinstate_dive_full
phinstate_error = { phinstate_error = {
s={0}, s={0},
@ -549,14 +528,14 @@ function toyphin:update()
y=new_y y=new_y
local wet, st = y > 64, phinstate_error local wet, st = y > 64, phinstate_error
if dy < -2.15 then if dy < -2.5 then
st = wet and phinstate_rise_full or phinstate_jump_full st = wet and phinstate_rise_full or phinstate_jump_full
elseif dy <= -1 then elseif dy <= -1.5 then
st = wet and phinstate_rise_wax or phinstate_jump_wane st = wet and phinstate_rise_wax or phinstate_jump_wane
elseif dy < 1 then elseif dy < 1.5 then
-- handle idle special case later -- handle idle special case later
st = wet and phinstate_return or phinstate_crest st = wet and phinstate_return or phinstate_crest
elseif dy <= 2.15 then elseif dy <= 2.5 then
st = wet and phinstate_dive_wane or phinstate_fall_wax st = wet and phinstate_dive_wane or phinstate_fall_wax
else else
st = wet and phinstate_dive_full or phinstate_fall_full st = wet and phinstate_dive_full or phinstate_fall_full
@ -879,38 +858,30 @@ __gfx__
00000000000000000000000000000000000000002222ee7e22222000000000000000000027770000777722e2777770002eee0000eeee2272eeeee00000000000 00000000000000000000000000000000000000002222ee7e22222000000000000000000027770000777722e2777770002eee0000eeee2272eeeee00000000000
0000000000000000000000000000000000000000000eeee7000000000000000000000000770000000002222e00000000ee000000000222270000000000000000 0000000000000000000000000000000000000000000eeee7000000000000000000000000770000000002222e00000000ee000000000222270000000000000000
00000000000000000000000000000000000000000eee2200000000000000000000000000000000000222770000000000000000000222ee000000000000000000 00000000000000000000000000000000000000000eee2200000000000000000000000000000000000222770000000000000000000222ee000000000000000000
00000000000066000000000000000000000002200000000000000000000002200000000000000000000000000000000000000000000000000000000000000000 00000000000066000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000022260000000000000000000222662000000000000000000222662000000000000000000000000000070220000000000220e220000000000000000 00000000000222600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000002222e000000000000000006227222e00000000000000002227222e0000000000000000000000000222026200000000022262220000000000000000 00000000002222e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000002712ee00000000000060026227c1eee0000000000006622227c1eee0000000000220000000000000e22e262000000000e2226220000000000000000 0000000002712ee00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000627ceee00000000000222222227ceee000000000006622266272eee000000000002620000000000000ee26220000000000ee22260000000000000000 00000000627ceee00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000022277eee000000000022226222222eee000000000022222622222eee0000000000022620000000000000ee22600000000000ee2220000000000000000 000000022277eee00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000222222ee0000000000000062222222ee0000000000000022222222ee000000000000022622000000000000e226000000000000e2220000000000000000 000000222222ee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000066226622ee000000000000006222222220000000000000002222222220000000000026222626622000000000eee2200002000000ee222000000000000000 000066226622ee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0006222622226e0000000000000622222226000000000000000222222226000002000002622222222222200000000ee22200020000000ee26200000000000000 0006222622226e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00022222222226000000000000022222e22600000000000000022222e226000026620222222222222777262000000ee22266022000000ee22620002000000000 00022222222226000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0022002222222200000000000062222ee000000000000000002222eee22e0000222622222eee222227c1226200000ee22226226000000ee22222022000000000 00220022222222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000002226ee2600000000000662eeee000000000000000002222eee022e00000e22222eeeeeee2222eee26200000ee22222226000020ee22226262000000000 0000002226ee26000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000002226ee2260000000222222eee000000000000000662222ee0002e00000e2622e00000ee2222eeeeee2000022ee22222200000266ee2222622000000000 0000002226ee22600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000222ee0022000000226622ee0000000000000000222622ee000000000002222e00000002262eeeeee000000222222222600000222226222260000000000 000000222ee002200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000022eee0022000000222222e00000000000000000222222e00000000000022ee000000022226000000000000222222222600000022222622220000000000 00000022eee002200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000022eee0000200000000e22e00000000000000000000e22e00000000000000e00000002222200000000000000006622222260000000222222220000000000 0000022eee0000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000022ee00000000000000222e00000000000000000000226e000000000000000000000000000000000000000000002222772200000000ee227720000000000 0000022ee00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000022e00000000000000002ee0000000000000000000002ee000000000000000000000000000000000000000000000eeec720000000000eeec720000000000 0000022e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0006622e00000000000000000ee0000000000000000000000ee000000000000000000000000000000000000000000000eeee1200000000000ee1720000000000 0006622e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0022226e00000000000000000000000000000000000000000000000000000000000000000022000000000000000000000eee2600000000000ee2220000000000 0022226e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
02222226000000000000000000000000000000000000000000000000000000000000000000262000000000000000000000ee26000000000000ee220000000000 02222226000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
022e022e0000000000000000000000000000000000000000000000000000000000200000002262000000000000000000000e620000000000000e200000000000 022e022e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0200022e000000000000000000000000000000000000000000000000000000000222000000022622000000000000000000002200000000000000000000000000 0200022e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000020000000000000000000000000000000000000000000000000000000000262000000222626622000000000000000000000000000000000000000000000 00000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000e26220002226222222220000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000002222262222666222277726200000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000222ee2662222222227c122620000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000ee00eeeee222222222eee2620000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000eeeeeee2222eeeeee00000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000eeee2262eeeee0000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000022226000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000222ee00000000000000000000000000000000000000000000000000
__label__ __label__
cssscccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc cssscccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
s777sccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc s777sccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
@ -969,25 +940,25 @@ cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc cccc2227cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ccccc2227ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc cccccc22227ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ccccc277222772cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
2ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ccc2772222222222cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
222ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 772222222222777272cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
77272ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 2222222222227c022721111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
c0227211111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 2eee222222222eee2721111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
eee27211111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 eeeeeeee2222eeeeee11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
eeeee111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 111ttttiiititttt1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
ttt11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 111111iiiti111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111iiii11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h1
h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1 h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1
h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111 h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111
1h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h11 1h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h11
@ -999,7 +970,7 @@ h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111
h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1 h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1
h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111 h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111
1h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h11 1h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h11
11h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h1 1hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh1
111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h 111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h
hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1 hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1
h11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11h h11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11h
@ -1008,7 +979,7 @@ h11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11h
hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1 hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1
h11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11h h11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11h
1hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh1 1hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh1
111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h 1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h
1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh 1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh
h1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hh h1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hh
hh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1h hh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1h