Kumite (ko͞omiˌtā) is the practice of taking techniques learned from Kata and applying them through the act of freestyle sparring.
You can create a new kumite by providing some initial code and optionally some test cases. From there other warriors can spar with you, by enhancing, refactoring and translating your code. There is no limit to how many warriors you can spar with.
A great use for kumite is to begin an idea for a kata as one. You can collaborate with other code warriors until you have it right, then you can convert it to a kata.
- Made solution into one line
- Addded a "cheat" solution
- Made the tests cleaner
cheat_result=lambda x:int(str(x)[0]) if x>=70 else "fail" def result(perc): return 9if perc>=90else 8if perc>=80else 7if perc>=70else"fail"
def result(perc):if perc >= 90:return 9elif perc >= 80:return 8elif perc >= 70:return 7else:return "fail"- cheat_result=lambda x:int(str(x)[0]) if x>=70 else "fail"
- def result(perc): return 9if perc>=90else 8if perc>=80else 7if perc>=70else"fail"
import codewars_test as test # TODO Write tests from solution import result,cheat_result # test.assert_equals(actual, expected, [optional] message) @test.describe("Example") def test_group(): @test.it("test case") def test_case(): tests =((75, 7),(90, 9),(56,"fail"),(89, 8),(-10,"fail"),(0,"fail")) for (x,y) in tests: test.assert_equals(result(x),y) test.assert_equals(cheat_result(x),y)
- import codewars_test as test
- # TODO Write tests
from solution import result- from solution import result,cheat_result
- # test.assert_equals(actual, expected, [optional] message)
- @test.describe("Example")
- def test_group():
- @test.it("test case")
- def test_case():
test.assert_equals(result(75), 7)test.assert_equals(result(90), 9)test.assert_equals(result(56), "fail")test.assert_equals(result(89), 8)test.assert_equals(result(-10), "fail")test.assert_equals(result(200), 9)test.assert_equals(result(0), "fail")- tests =((75, 7),(90, 9),(56,"fail"),(89, 8),(-10,"fail"),(0,"fail"))
- for (x,y) in tests:
- test.assert_equals(result(x),y)
- test.assert_equals(cheat_result(x),y)
def cube(a, b, c): #your code here return a*b*c #return 0
def kube(a, b, c):- def cube(a, b, c):
- #your code here
- return a*b*c
- #return 0
import codewars_test as test # TODO Write tests from solution import cube # test.assert_equals(actual, expected, [optional] message) @test.describe("Example") def test_group(): @test.it("test case") def test_case(): test.assert_equals(cube(7, 9, 4), 252) test.assert_equals(cube(5, 12, 7), 420) test.assert_equals(cube(3, 7, 49), 1029)
- import codewars_test as test
- # TODO Write tests
from solution import kube- from solution import cube
- # test.assert_equals(actual, expected, [optional] message)
- @test.describe("Example")
- def test_group():
- @test.it("test case")
- def test_case():
test.assert_equals(kube(7, 9, 4), 252)test.assert_equals(kube(5, 12, 7), 420)test.assert_equals(kube(3, 7, 49), 1029)- test.assert_equals(cube(7, 9, 4), 252)
- test.assert_equals(cube(5, 12, 7), 420)
- test.assert_equals(cube(3, 7, 49), 1029)
a[:a.index(x)] + [x]*n + a[a.index(x)+1:] if len(a) else []
- walrus vs. twice index()
- boolean instead of len()
- lambda: because whatever
#include <criterion/criterion.h> int foo; Test(variable_foo, should_be_zero) { cr_assert_eq(foo, 0); }
- #include <criterion/criterion.h>
- int foo;
Test(function_foo, should_return_zero) {cr_assert_eq(foo, 0);}Test(function_bar, should_return_zero) {cr_assert_eq(foo, 0);}Test(function_baz, should_return_zero) {- Test(variable_foo, should_be_zero) {
- cr_assert_eq(foo, 0);
- }
well i guess it still works.
module BigIntExample where -- purescript-bigints now available on Codewars -- but fails with runtime JavaScript error due to -- missing JavaScript module import Prelude import Data.BigInt (BigInt, fromString) import Data.Maybe (fromJust) import Partial.Unsafe (unsafePartial) biiiig :: BigInt biiiig = unsafePartial fromJust $ fromString "917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937"
- module BigIntExample where
- -- purescript-bigints now available on Codewars
- -- but fails with runtime JavaScript error due to
- -- missing JavaScript module
- import Prelude
- import Data.BigInt (BigInt, fromString)
- import Data.Maybe (fromJust)
- import Partial.Unsafe (unsafePartial)
- biiiig :: BigInt
biiiig = unsafePartial fromJust $ fromString "917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937"- biiiig = unsafePartial fromJust $ fromString "917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937917389127398375893457348957389457128937189237189237894357389457438957348957348957348947128937128937128937"
module ExampleSpec where import Prelude import Test.Spec (Spec, describe, it) import Test.Spec.Assertions (shouldEqual) spec :: Spec Unit spec = describe "Is Data.BigInt available on Codewars?" do describe "Let's see" do it "This should compile with passed tests if it is indeed supported." do true `shouldEqual` true
- module ExampleSpec where
- import Prelude
- import Test.Spec (Spec, describe, it)
- import Test.Spec.Assertions (shouldEqual)
import BigIntExample (biiiig)- spec :: Spec Unit
- spec =
- describe "Is Data.BigInt available on Codewars?" do
- describe "Let's see" do
- it "This should compile with passed tests if it is indeed supported." do
- true `shouldEqual` true