├── create_load_database.sql ├── employees.zip └── 예제 ├── 12장-convert3857To4326.sql ├── 12장-convert4326To3857.sql ├── 12장-distanceInSphere.sql ├── 12장-getDistanceMBR.sql ├── 12장-st_contains_spatial_index.sql ├── 12장-st_contains_test-srid3857.sql ├── 12장-st_contains_test-srid4326.sql ├── 12장-testcase-spatial_index.sql ├── 14장-sf_divide.sql ├── 14장-sf_emp_count.sql ├── 14장-sp_remove_user.sql ├── 14장-sp_updateemployeehiredate.sql └── 14장-sp_updateemployeehiredate1.sql /create_load_database.sql: -------------------------------------------------------------------------------- 1 | CREATE DATABASE employees 2 | DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; 3 | 4 | USE employees 5 | SOURCE employees.sql 6 | -------------------------------------------------------------------------------- /employees.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wikibook/realmysql80/ef16b02989576b15bbac5fe731d0b00603b8c3ca/employees.zip -------------------------------------------------------------------------------- /예제/12장-convert3857To4326.sql: -------------------------------------------------------------------------------- 1 | DELIMITER ;; 2 | 3 | CREATE DEFINER='root'@'localhost' 4 | FUNCTION convert3857To4326(p_3857 POINT) RETURNS POINT 5 | DETERMINISTIC 6 | SQL SECURITY INVOKER 7 | BEGIN 8 | DECLARE lon DOUBLE; 9 | DECLARE lat DOUBLE; 10 | DECLARE x DOUBLE; 11 | DECLARE y DOUBLE; 12 | 13 | /* Check SRID for the safety */ 14 | IF ST_SRID(p_3857)=4326 THEN 15 | RETURN p_3857; 16 | ELSEIF ST_SRID(p_3857)<>3857 THEN 17 | SIGNAL SQLSTATE 'HY000' SET MYSQL_ERRNO=1108, MESSAGE_TEXT='Incorrect parameters (SRID must be 3857)'; 18 | END IF; 19 | 20 | SET x = ST_X(p_3857); 21 | SET y = ST_Y(p_3857); 22 | 23 | /* 적도의 지구 둘레의 절반 = (2 * π * R)/2 = (π * EarthRadius) = (π * 6378137 meters) = 20037508.34 meters */ 24 | SET lon = x * 180 / 20037508.34 ; 25 | SET lat = ATAN(EXP(y * PI() / 20037508.34)) * 360 / PI() - 90; 26 | 27 | RETURN ST_PointFromText(CONCAT('POINT(', lat,' ', lon,')'), 4326); 28 | END ;; 29 | 30 | DELIMITER ; 31 | -------------------------------------------------------------------------------- /예제/12장-convert4326To3857.sql: -------------------------------------------------------------------------------- 1 | DELIMITER ;; 2 | 3 | CREATE DEFINER='root'@'localhost' 4 | FUNCTION convert4326To3857(p_4326 POINT) RETURNS POINT 5 | DETERMINISTIC 6 | SQL SECURITY INVOKER 7 | BEGIN 8 | DECLARE lon DOUBLE; 9 | DECLARE lat DOUBLE; 10 | DECLARE x DOUBLE; 11 | DECLARE y DOUBLE; 12 | 13 | /* Check SRID for the safety */ 14 | IF ST_SRID(p_4326)=3857 THEN 15 | RETURN p_4326; 16 | ELSEIF ST_SRID(p_4326)<>4326 THEN 17 | SIGNAL SQLSTATE 'HY000' SET MYSQL_ERRNO=1108, MESSAGE_TEXT='Incorrect parameters (SRID must be 4326)'; 18 | END IF; 19 | 20 | SET lon = ST_Longitude(p_4326); 21 | SET lat = ST_Latitude(p_4326); 22 | 23 | /* 적도의 지구 둘레의 절반 = (2 * π * R)/2 = (π * EarthRadius) = (π * 6378137 meters) = 20037508.34 meters */ 24 | SET x = lon * 20037508.34 / 180; 25 | SET y = LOG(TAN((90 + lat) * PI() / 360)) / (PI() / 180); 26 | SET y = y * 20037508.34 / 180; 27 | 28 | RETURN ST_PointFromText(CONCAT('POINT(', x,' ', y,')'), 3857); 29 | END ;; 30 | 31 | DELIMITER ; 32 | -------------------------------------------------------------------------------- /예제/12장-distanceInSphere.sql: -------------------------------------------------------------------------------- 1 | DELIMITER ;; 2 | 3 | CREATE DEFINER='root'@'localhost' 4 | FUNCTION distanceInSphere(p1_3857 POINT, p2_3857 POINT) RETURNS DOUBLE 5 | DETERMINISTIC 6 | SQL SECURITY INVOKER 7 | BEGIN 8 | DECLARE p1_4326 POINT; 9 | DECLARE p2_4326 POINT; 10 | 11 | SET p1_4326 = convert3857To4326(p1_3857); 12 | SET p2_4326 = convert3857To4326(p2_3857); 13 | 14 | RETURN ST_Distance_Sphere(p1_4326, p2_4326, 6370986 /* Default Radius meters in MySQL server */); 15 | END ;; 16 | 17 | DELIMITER ; 18 | -------------------------------------------------------------------------------- /예제/12장-getDistanceMBR.sql: -------------------------------------------------------------------------------- 1 | DELIMITER ;; 2 | 3 | CREATE DEFINER='root'@'localhost' 4 | FUNCTION getDistanceMBR(p_origin POINT, p_distanceKm DOUBLE) RETURNS POLYGON DETERMINISTIC 5 | SQL SECURITY INVOKER 6 | BEGIN 7 | DECLARE v_originLat DOUBLE DEFAULT 0.0; 8 | DECLARE v_originLon DOUBLE DEFAULT 0.0; 9 | 10 | DECLARE v_deltaLon DOUBLE DEFAULT 0.0; 11 | DECLARE v_Lat1 DOUBLE DEFAULT 0.0; 12 | DECLARE v_Lon1 DOUBLE DEFAULT 0.0; 13 | DECLARE v_Lat2 DOUBLE DEFAULT 0.0; 14 | DECLARE v_Lon2 DOUBLE DEFAULT 0.0; 15 | 16 | SET v_originLat = ST_X(p_origin); /* = ST_Latitude(p_origin) for SRID=4326*/ 17 | SET v_originLon = ST_Y(p_origin); /* = ST_Longitude(p_origin) for SRID=4326 */ 18 | 19 | SET v_deltaLon = p_distanceKm / ABS(COS(RADIANS(v_originLat))*111.32); 20 | SET v_Lon1 = v_originLon - v_deltaLon; 21 | SET v_Lon2 = v_originLon + v_deltaLon; 22 | SET v_Lat1 = v_originLat - (p_distanceKm / 111.32); 23 | SET v_Lat2 = v_originLat + (p_distanceKm / 111.32); 24 | 25 | SET @mbr = ST_AsText(ST_Envelope(ST_GeomFromText(CONCAT("LINESTRING(", v_Lat1, " ", v_Lon1,", ", v_Lat2, " ", v_Lon2,")")))); 26 | RETURN ST_PolygonFromText(@mbr, ST_SRID(p_origin)); 27 | END ;; 28 | 29 | DELIMITER ; 30 | -------------------------------------------------------------------------------- /예제/12장-st_contains_spatial_index.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE st_test ( 2 | id int NOT NULL auto_increment, 3 | geom geometry NOT NULL /*!80003 SRID 4326 */, 4 | PRIMARY KEY (id), 5 | SPATIAL KEY sx_geom (geom) 6 | ); 7 | 8 | INSERT INTO st_test VALUES (1,0xE610000001030000000100000084000000575E8489CDBD5F408EAA59AD18B34240E6D28689CDBD5F4000E6DBAC18B3424032218E89CDBD5F4035225EAC18B34240B17F9B89CDBD5F405B5FE0AB18B34240D2B7AD89CDBD5F409C8C64AB18B3424078C9C489CDBD5F405199ECAA18B34240C5B4E089CDBD5F40249676AA18B34240B48FE589CDBD5F40883D63AA18B34240B8045C07D3BD5F40B30D8D2304B342409BEE7707D3BD5F402E532C2304B34240EB8C9D07D3BD5F407B1FBC2204B34240BC04C807D3BD5F4038CB4F2204B34240821FF607D3BD5F408A45E92104B342405DDD2708D3BD5F40189F862104B342407D745E08D3BD5F40C4B62B2104B34240B4AE9808D3BD5F40AEADD42004B34240DC8BD608D3BD5F402D73832004B342406FD51609D3BD5F406BF6392004B34240678B5909D3BD5F405F37F81F04B3424058E49F09D3BD5F40E946BC1F04B34240ADA9E809D3BD5F403014881F04B34240FAA4320AD3BD5F40039F5B1F04B3424044D67D0AD3BD5F405DE7361F04B34240F573CB0AD3BD5F4073ED191F04B3424098471A0BD3BD5F4012B1041F04B34240AB1A690BD3BD5F406721F91E04B3424045EDB70BD3BD5F40114FF51E04B34240D6F5070CD3BD5F40473AF91E04B3424081C7560CD3BD5F40A4E2041F04B342402562A40CD3BD5F4081371A1F04B3424053FCF10CD3BD5F40BB49371F04B342409B5F3E0DD3BD5F401A195C1F04B3424075AF5C0DD3BD5F40E6876D1F04B342404F96B8ECD9BD5F4089CDCE2D08B342406B3CE4ECD9BD5F4005EBE92D08B3424083FB2CEDD9BD5F4066341E2E08B34240494D73EDD9BD5F40C03A5A2E08B3424063FBB5EDD9BD5F408F0E9C2E08B34240293CF6EDD9BD5F40579FE52E08B34240980F34EED9BD5F4019ED362F08B342405E3F6EEED9BD5F404D088E2F08B342409BCBA4EED9BD5F409F01E92F08B34240A27DD6EED9BD5F408AB74B3008B342401D8C04EFD9BD5F40914BB23008B34240F0F62EEFD9BD5F400DAD1E3108B34240CB8754EFD9BD5F4075EC8E3108B34240C83E75EFD9BD5F40721A013208B34240C71B91EFD9BD5F405E26773208B34240D11EA8EFD9BD5F403710F13208B34240FA47BAEFD9BD5F40A0E86C3308B34240F560C6EFD9BD5F401FC0E83308B3424083D6CEEFD9BD5F406686663408B34240C53BD1EFD9BD5F400F3BE63408B3424064C7CEEFD9BD5F40A3FF633508B34240D242C6EFD9BD5F4047C3E13508B34240F41ABAEFD9BD5F4059865F3608B3424003E3A7EFD9BD5F402959DB3608B342408DD190EFD9BD5F40844C533708B3424074E674EFD9BD5F40CC4FC93708B34240BDC557EFD9BD5F4089C7313808B34240F2001E65D3BD5F405595D6B71DB34240EF5C1A65D3BD5F40C830E2B71DB34240A5BEF464D3BD5F40267550B81DB34240287DCB64D3BD5F409FC9BCB81DB3424044629D64D3BD5F404C4F23B91DB34240D96D6A64D3BD5F408AF585B91DB3424074D63364D3BD5F4036CDE2B91DB34240A5D2FA63D3BD5F4023E737BA1DB3424052F5BC63D3BD5F40A62189BA1DB3424097AB7C63D3BD5F406C9ED2BA1DB34240FEBE3863D3BD5F40475D14BB1DB34240E165F262D3BD5F40BC4D50BB1DB34240C8D6AA62D3BD5F40A88084BB1DB3424049DB6062D3BD5F40D6F5B0BB1DB342405C731462D3BD5F404CADD5BB1DB342407AD5C661D3BD5F4037A7F2BB1DB3424010387961D3BD5F40CAE307BC1DB34240C7642A61D3BD5F407D7313BC1DB34240895BDA60D3BD5F40A04517BC1DB3424030898B60D3BD5F409F5A13BC1DB342404DB73C60D3BD5F4043B207BC1DB3424003E6ED5FD3BD5F40365DF2BB1DB34240A14BA05FD3BD5F40FD4AD5BB1DB34240981E555FD3BD5F40D07BB0BB1DB3424076280B5FD3BD5F4077EF83BB1DB34240D24E065FD3BD5F405FFF81BB1DB34240FFCCAF75D0BD5F40C5B924C91BB342406FE76B75D0BD5F405160F2C81BB3424097952575D0BD5F40C959B6C81BB3424068E7E274D0BD5F40D28574C81BB3424098A6A274D0BD5F40E0F42AC81BB342401CD36474D0BD5F40F7A6D9C71BB342404CA32A74D0BD5F409B8B82C71BB342407B4DF573D0BD5F40599227C71BB342400265C273D0BD5F4022DCC4C61BB342408A569473D0BD5F40FA475EC61BB34240BBEB6973D0BD5F4068E6F1C51BB342403F914573D0BD5F406C9683C51BB342406ADA2473D0BD5F4002790FC51BB3424008C70773D0BD5F40D76C99C41BB3424012C4F072D0BD5F40F0821FC41BB342406CD1DF72D0BD5F40A9AAA3C31BB342401D82D272D0BD5F40F2D227C31BB342401B43CB72D0BD5F40DD0CAAC21BB3424085A7C772D0BD5F4000582AC21BB342407B52CB72D0BD5F40A193ACC11BB34240BDA0D272D0BD5F40CECF2EC11BB3424035FFDF72D0BD5F40F90CB1C01BB34240DD00F172D0BD5F40053A35C01BB342407F120873D0BD5F40B746BDBF1BB3424031342573D0BD5F40AE4347BF1BB342407CD63973D0BD5F4018F2F7BE1BB3424006DDEBADD0BD5F404CFF79F61AB34240ECFC4C8CCDBD5F4037BF3EB418B342401367278CCDBD5F4034B321B418B34240B64BE28BCDBD5F40D0ACE5B318B3424025679E8BCDBD5F409BD8A3B318B342405C265E8BCDBD5F409E475AB318B34240E952208BCDBD5F40A9F908B318B342409759E78ACDBD5F4077DEB1B218B3424061CDB08ACDBD5F40F6E456B218B34240F6E47D8ACDBD5F40B32EF4B118B3424084D64F8ACDBD5F40819A8DB118B3424034A2268ACDBD5F40133921B118B342404F11018ACDBD5F40E4E8B2B018B342408B5AE089CDBD5F4073CB3EB018B34240A47DC489CDBD5F4074BFC8AF18B34240BC7AAD89CDBD5F4089D54EAF18B34240B0519B89CDBD5F400BFDD2AE18B3424069028E89CDBD5F40532557AE18B3424072C38689CDBD5F40385FD9AD18B34240575E8489CDBD5F408EAA59AD18B34240),(2,0xE6100000010300000001000000800100008B0AEB838FBD5F40D870C229ADC142407B44EDC58FBD5F4049FF53E5ACC142401CF49CFE9ABD5F40D242B6709DC1424055020231A4BD5F4075BA8CA98FC142405DA2F945B0BD5F40684371707DC142401C549B64B3BD5F40FA8814A078C14240F911E73DB8BD5F4081C2107F71C142400723B64EBEBD5F40A62E256068C14240864A3A25C2BD5F4033731D7262C14240F6E910B2C2BD5F407E779FD861C14240C9697060C6BD5F4012E822475EC14240E7732C18D9BD5F408894070F4CC142404E7A42FDE0BD5F401CAD2A5044C142402E802608E2BD5F4037FDEC8943C1424040E30C52E3BD5F400705E79642C14240660FCA18F3BD5F40D9C5DE123AC1424061FD34A1F9BD5F40FE54C19B36C142405593FB0C02BE5F4048D10D2132C14240E4F8C7AF09BE5F40FC3D03002EC1424073A3A3940EBE5F404A0122562BC14240E2B7C39D10BE5F408248553D2AC14240CC1A0FC612BE5F40C73BC21829C14240FB8A747814BE5F4058FB903128C1424075588DAD15BE5F40C0EE5C8C27C14240DF9E1BFF15BE5F40CA44EE6127C142402D5A1E1616BE5F404EE6BB5327C14240BFA57A7616BE5F4075176A1627C14240211A45B517BE5F4081D4F22026C142405AF1B3FA18BE5F40B668B92625C14240C64646341ABE5F40B706993324C142407429A4571BBE5F40A8DD025123C14240E6ADD8721CBE5F400071F17722C14240DF26FAFD1DBE5F407994114521C142405F96CAE420BE5F4017A528051FC142400CCC06EC24BE5F40D89EC2E91BC14240B7D071D232BE5F40CF48592E11C14240EDD374963EBE5F40E8194F1208C14240B67AB9834EBE5F40B79176A4FBC0424084699BFA56BE5F4012CCD213F5C04240241BCFFF54BE5F40A9763086F1C042403671CA4F4BBE5F40FC6A7E73E0C04240529B14E546BE5F4068529796D8C04240A1EDE0EC45BE5F401D8D1DDFD6C042407A45E7AD45BE5F4046962170D6C04240918FFCCC3FBE5F40EDBFDC60CCC04240B8C2041441BE5F40B7C3366DC9C04240DAAA05603CBE5F40C299ABF7BFC04240AAC32DBF3BBE5F402D6CFDA3C0C042407DC357603BBE5F40366BA5E4BFC0424035936C043BBE5F408E8C1FA0BFC042408AFAD4543ABE5F409FF49A50BEC042403905CF433ABE5F40E355912FBEC042409753FE7D37BE5F401AFA53F6B8C0424095B9E24737BE5F40F7BDED9EB8C042402454115A36BE5F40060ECC1DB7C04240B2D87A5735BE5F40195D4879B5C04240E747464135BE5F404E8751A2B4C04240DD8C5F3835BE5F4085FC484DB4C042403ACD223935BE5F4018E4633AB4C042408D919F3D35BE5F40BDB355AAB3C04240E241165635BE5F401D55F2FDB2C042407BE0BD8A35BE5F40F80D8EFBB2C04240AA53306035BE5F40656B208FAAC04240911B864E35BE5F40EA1EEF29A7C04240D68BF43C35BE5F40790BA3BDA3C0424055A9612835BE5F40BF617DB59FC042401A3AD12F35BE5F40F02EA5FF9EC042409D6AB57634BE5F40C3C8B5829BC04240A7E81FE034BE5F400786946B98C04240D14079ED34BE5F406351590898C042402E9CD0692DBE5F401195C2AE8EC04240D65BEF5D29BE5F40241DD1B989C04240B3427C5426BE5F40358AD87588C04240691F5BF422BE5F40E134529886C0424005BBD27E21BE5F40F5E5323086C042405274F63716BE5F40AC919EF385C04240C99BBD6715BE5F40EF14A1B484C04240DAE8539810BE5F409A0B02847DC04240784D870B10BE5F40D77CDFD97CC04240919E941A0DBE5F407B9635437BC04240CBAEDD020DBE5F40DE0210357BC0424028E1E6860ABE5F40A93EB1127CC042405B52F071FFBD5F40B370900E77C04240DE565E00FBBD5F40CDB4A30875C042408F39E368F6BD5F40A1F5A30D74C042409CB987AEF4BD5F4030C4000172C04240B07DBA56EFBD5F40E1FD86A26BC042404CB6EB1CEFBD5F40D15B045E6BC04240A4CD814DEBBD5F408136EC876BC04240152582EFE8BD5F40C6B20EF466C04240D918EE38E7BD5F40E853DAA363C04240355EA5D5E6BD5F401FB127E262C0424010EDF120DFBD5F40391828A05EC0424024289F70DCBD5F407E53FAA05AC042400CABF9C8DCBD5F4003A26DBB57C0424078A78BABDCBD5F407AFEF0E354C04240E75209AADCBD5F40CC5D26BE54C042406609956ADCBD5F40DDEE55C04FC0424071A8A3FADABD5F40EAEB754F49C04240D9671C29DABD5F403097548945C042405C8186C5D4BD5F40088609D93DC042402D5E088FCBBD5F40589DBF3534C042409DD03C69CBBD5F40410E840D34C04240604DE492C8BD5F400248436128C04240CADAEBF2C7BD5F405FBE4D7826C04240B079A953C7BD5F4083C19C9124C042408D736F0EC8BD5F40162E6AE424C042400569C310C8BD5F40849EBF4B23C0424068DD8A0DC5BD5F40AF7003EF1DC042409B810975C4BD5F40672986FD1AC04240E3D1A2D2BDBD5F406B852E7E16C04240F5086B20B8BD5F40D14C8DE310C042408589A46BB7BD5F400676D34210C0424075EEB03DB7BD5F4012BCE61510C042407F2FD9D5B3BD5F40DB4E184008C0424072EB8086B4BD5F4091474F4D04C042403BA091A0B2BD5F4046E0185A00C042406A30E753B1BD5F40169F9A6EFEBF42402BFDFDCEADBD5F40A3870896F9BF42408ED57B3EADBD5F40E9A35B4AF9BF42402FD608ABACBD5F40F73CAEFEF8BF4240A2249860ABBD5F40CDA6C42AF7BF4240063CEA10AABD5F4085D1E868F6BF424070F5B407A7BD5F405546A269F2BF42406FE6CBF6A6BD5F406E07B09AF0BF42403A1CEA8DA6BD5F4008F5ADEBEABF42406F7BB5A2A3BD5F40D27D1746E2BF42408FA0DE57A3BD5F403B33676AE1BF42409177C824A3BD5F405CF434B9E0BF42403C23EDB7A2BD5F4053485546DFBF424038EEF71AA2BD5F40B6410E2EDDBF424007230AADA1BD5F40C6EDC3ADD5BF4240EF215A4FA1BD5F4019C1B454CFBF4240994D70C498BD5F4012E2E015C2BF4240965FC26397BD5F40133CEA54C0BF424051148B0796BD5F40CE7D5383BEBF4240828B346494BD5F4020A34953BCBF424034F10F0A94BD5F403950896EB8BF424071DD6EBF93BD5F40B6516F31B5BF4240773E414293BD5F4025F0FEE1B3BF424017C11D6290BD5F408CACB936ACBF424020B270668BBD5F40083E33E4AFBF42408203D33D82BD5F404E71EBA5B6BF424033E9E73482BD5F40C47A99AAB6BF424099FFC7307EBD5F40B82AC569B9BF4240B899BD2072BD5F400A7285A9C1BF4240C1819B196EBD5F409C0EBB90C4BF4240E6DE3E596CBD5F409416F66CC4BF42405BE98E706BBD5F40A569F93FC4BF4240B0CA6E6D67BD5F407BDD2C7BC3BF4240A037C5E866BD5F401F0DF26CC3BF4240A53B22EA64BD5F400A0DAE3FC3BF42402491E3D364BD5F400A1A523DC3BF42407BC416C564BD5F40A7F9FE41C3BF4240F05E6C9364BD5F401C208352C3BF424019A92B7D64BD5F4063F97E6CC3BF4240D477027564BD5F406B0EF075C3BF42401F9DE5D864BD5F40094F4525C6BF4240653A70E564BD5F40B39E8488C6BF4240A0F3795D65BD5F4087F4CB5AC7BF4240FFCA5D8B65BD5F409EE2DBAFC7BF4240B4D8FCB965BD5F40DF92CC0FC9BF4240DD1136F964BD5F40B38FF4E8C9BF42402B5513DD64BD5F40ABF19E07CABF4240F2E56FBC64BD5F40886C911ACABF4240A0C4BC7964BD5F40C7113C40CABF424069074F4764BD5F400EA6F55ECABF42404FB9A01864BD5F40DEC2447BCABF4240CC965C9D61BD5F40B34FB6F4CBBF4240C8E5380160BD5F400572F951CDBF4240D8E590515FBD5F406C24888ACDBF42401832C73C5FBD5F40576F69B7CDBF42408508D4DA5CBD5F40A7279309CEBF42400AA8F9F657BD5F401E51A21ACFBF4240C54FEBD556BD5F40BE8CA82FCFBF424006882C1856BD5F40A01EF76CCFBF4240524B0D2855BD5F406D4D5EB8CFBF424091C0F92651BD5F40A24B4D57D1BF42401FCFEF6950BD5F40EDC015A5D1BF4240E0C2337E4FBD5F404731D540D2BF42401CD750A14EBD5F408AA27CD5D2BF4240E212D84B4CBD5F409541BC5AD4BF4240E577899749BD5F405A6B481DD6BF4240DC756FF547BD5F402CEB7838D7BF4240F16414CA45BD5F4084B59BA6DABF4240FF050ADF44BD5F40C29B4E19DCBF4240479833283FBD5F40405A92FBE3BF42409485FADE3DBD5F400F3141CAE5BF42404061CC513BBD5F40DD209860E9BF4240D05C32FB39BD5F40740038D2EBBF424079CCA1AC36BD5F405B37DDDCF1BF4240FA54C50436BD5F4083B5840FF3BF4240AE81BCA835BD5F40C107907DF4BF4240D9B6901635BD5F40C799C1BDF6BF42404F541B0F34BD5F4092334545FBBF4240391892B733BD5F40DE30E6CAFCBF42409206C78833BD5F4078AF65B9FDBF42404C594E0E33BD5F40E0DB9B2D00C042408FFBDADD32BD5F4077F7F68603C04240A3B839D332BD5F408709DB4507C04240FAB7D7DE32BD5F40E0B03A640AC04240ECF70EE132BD5F40F4F70C910AC042402CAF973033BD5F4080E3A1D910C04240E2E4053233BD5F40F790E65D11C04240FE3C2A2C32BD5F40062B91C714C042407FBF84F131BD5F40AB1229A315C04240AEE336F830BD5F40893F7E3E19C04240477520D330BD5F40E404D6C919C042402DFF917B30BD5F4077EBFCF01AC042405AF44C3D2FBD5F401DFE521C1FC0424056F6CA552EBD5F40A1F5389422C042407458FA1B2EBD5F40F092C91A23C0424001E3BFEB2DBD5F40F011E29023C0424062AA239D2DBD5F409FE3385724C042409A7E71E12CBD5F40C02E752F26C042402A32E2B22BBD5F40E51CE6FA28C04240B295406325BD5F409C767F623AC04240651635FC1EBD5F40B7DF454648C0424060F2798523BD5F405E12C7EA5CC042403DF3DF7223BD5F4093D9EC9B5DC042403DDC932922BD5F40545A63AF69C042402D6686FE21BD5F4070F455A76AC04240156B3A9221BD5F404F9CC8E36BC04240B4FA932C21BD5F404010440D6DC0424031DB78F020BD5F4082639EB96DC042400ED7F61F1FBD5F40A0868E2C7EC042407506411C1FBD5F40FF88A84D7EC04240EC30E9531CBD5F40E5D82CFE7EC04240CB65060815BD5F403A53068080C04240BC38A17909BD5F40CE20A2D28DC04240E920331507BD5F40DC0FB49690C042402A3AD64A07BD5F40CCAC57F595C042401D29756A07BD5F400256131699C042404926138A07BD5F40D86699429CC04240F2CC0C9807BD5F40116FEFA49DC0424065C3F7B607BD5F40499B97ABA0C042402C26D9BC07BD5F4081912D45A1C04240006E84C007BD5F403C2100A6A1C04240C335A10708BD5F40ECA8FB27A2C04240D853D11D08BD5F40C7B8CA4DA2C0424051ED554B09BD5F4070D00072A4C04240A8CF0E000ABD5F4007BB0EB8A5C04240E603728D0CBD5F408598F757AAC042401FBF2EDE0CBD5F400D156FEAAAC04240F495B3FE0CBD5F40247119C6ABC042407ED315000DBD5F408FCEE66CADC04240C43F7DE40CBD5F403159D007AFC0424067DF02E30CBD5F400A35781FAFC042405DE4339B0BBD5F40B2C853C0B1C042409FC120D50ABD5F40BC7C56D8B3C04240577F4ADA0ABD5F40BC63ECEFB3C04240D0CBADE80EBD5F40CDABE893C6C0424081986EED12BD5F409633DD79D9C042407E28193E13BD5F40BFD3D5F3DAC04240A156AADE13BD5F40774017FDDDC04240253ED71F14BD5F401177EA34DFC04240B7504B0215BD5F4084779B7AE3C042404C34DE0316BD5F409FEE3755E8C042406A1D2C3616BD5F404D417341E9C0424082CA17F018BD5F4062F78D04F6C04240ECE3D68018BD5F40CFC6C2C3F6C04240FAE25D5418BD5F40D2604E0FF7C042403ED200BE19BD5F40E9C78C00F8C04240D5C23D631ABD5F4011C8A26FF8C04240AA0895941BBD5F402EE19F38F9C04240E7541BDF1CBD5F403A969A14FAC042405F4463131EBD5F409BB547E2FAC0424047FE9B4A1FBD5F40CD7E60B2FBC042409C4442AC1FBD5F4094278D66FEC04240E4807EBC1FBD5F40E47047DAFEC0424032A373D31FBD5F403C45E87AFFC0424041BAE4E81FBD5F4051016E1400C142409D8B051320BD5F4000E9AE3B01C142408544433A20BD5F40FC37B24D02C14240B37C56E420BD5F40613BA7F606C142409BBCF56A21BD5F404E812EA50AC14240C6A10D9B21BD5F4050CD92F40BC142407F1D055F22BD5F40ED956D5A11C142404D04FBBC22BD5F401E72D6EF13C14240B661C4F022BD5F404DA3E35615C14240ACF2E60923BD5F404144120816C142408EF63D8023BD5F4029FB364519C14240354185A123BD5F405DDD532A1AC14240FA81F0CA23BD5F4046F3E44C1BC14240960A14E423BD5F40E1D035F21BC142409E2D9A3D24BD5F4089EECB401EC14240E779499C24BD5F403A7F6AB020C1424040BD616224BD5F407DAC09AD21C142408234284924BD5F40880D771E22C142401E8CABFF23BD5F401234F86123C142409F2188C623BD5F40F9E5AA4424C14240052DAEE522BD5F40489C5BC827C142400C9310BF22BD5F409DE92C6428C14240BA48A18922BD5F40DEEE153B29C14240D1C1222124BD5F40113400EE2AC142409A5824D425BD5F40B7DA2CD02CC142401E03D26626BD5F404DB3E6702DC142407D7A64A827BD5F40259AD2D52EC14240C9B627CD2ABD5F404FA407B531C142401E08D93A2BBD5F4069E6B92132C14240DD67363E2CBD5F408225042133C142401FC4E0552CBD5F40DAE7453633C14240037C5FE92CBD5F40FC0F50B833C14240C84A21332EBD5F40327850CF34C142407686814A2FBD5F40E14DF6EA35C14240B966D0AA2FBD5F40EDEA4D6F36C14240EA97C2C12FBD5F40A87C8F9E36C14240C0CC02EC2FBD5F40368347D736C14240533EC36132BD5F40DB0B6E813AC14240C0E74BDB32BD5F40F1CCEC2D3BC14240EDF82F8A33BD5F40806367643BC1424060C5303634BD5F4023DDB7E93AC14240632DB60237BD5F40BCBE52F33DC1424047F7CB1337BD5F409D50C1DB3DC14240B042190938BD5F405739B08A3EC14240EBE9E0AC38BD5F405EF29AE43EC14240BA181A463EBD5F4082940DAE42C14240B1492A2343BD5F40EE71A21D46C142404C7DC8BB43BD5F40284D1FA946C14240CC14B7A547BD5F40D4C4969649C142403156E40E48BD5F4087FA18CC4AC1424038D9344748BD5F4025A901BE4AC142402C5B35014ABD5F40DD65C33252C142408724101E4ABD5F40B8B59AAD52C14240AFBA796A4BBD5F40F8EC575358C14240A5722C934BBD5F4033BBCD0659C14240663C500D4CBD5F40B9F983285BC14240E8B2AF504CBD5F406C36C94F5CC14240FC47AAC54CBD5F40530777505EC142405A5A49F44CBD5F40AC1E961B5FC1424016ECFBF74CBD5F401E6D09255FC1424099D010BA4DBD5F40BFDEE0F860C142409D95E2404EBD5F407530184D62C1424076B9424B4EBD5F403E28577C62C14240A9B831874EBD5F406323438763C14240BA287EF84EBD5F40EFA8BA4565C14240CF24E3604FBD5F404DAC9BD266C142409C1BE1E94FBD5F4075D839ED68C14240764EF31F50BD5F40DEC4B61069C14240F1A51B2850BD5F404F1DD31769C14240070D378050BD5F401C7501386AC1424012B06E8250BD5F40FE3B8F626AC14240858DD5A550BD5F403FB1AEC86CC14240D4B7A3FE50BD5F40A26821BB6EC1424038B9870751BD5F4016DFF41B6FC1424063212D5D55BD5F400408F2656FC1424054A9ACFF57BD5F40A999E46F6FC14240F94B03585DBD5F403F491CB36FC14240652236285EBD5F40AF728A3671C14240FA40A4E35EBD5F4047CCA89672C14240C2A51DCB60BD5F406611921F76C14240AD211C3962BD5F40F50DEFD378C14240C037461D63BD5F408FCCCB737AC14240006827F265BD5F40919246317BC14240F4EE764166BD5F4058B45C527BC14240AD70EB4C6ABD5F407FCEBF487CC1424025361A096EBD5F405B106B417DC142405D70BD4E6EBD5F40B23805527DC142408823CFDD6EBD5F4019D7E9777DC14240228A8AEE6FBD5F40FA4A45297EC142407F1BFC1A70BD5F403B36A5457EC142409ABC363470BD5F40C195C4667EC1424045F3739D70BD5F4056D0CBD57EC14240E45813FA70BD5F40AD7A713B7FC14240D5D6B1E571BD5F40346A0A2380C14240039584F072BD5F402BAE493581C142405E5F40BF73BD5F40AA0BF80982C1424050ECCD2174BD5F406CB69E6F82C14240AC3ACFA774BD5F404DC692A684C14240A881D11975BD5F4098D47B8886C142405287CD4175BD5F407F65415187C142404D92E34C75BD5F40DC2A9B8787C142400F59F65D75BD5F402F75839A87C142409202E2F277BD5F4073244C428BC1424008D5420078BD5F400F904E428BC14240468D75807ABD5F400C1313D08EC1424032DEEDC07CBD5F4047BCD7EE91C1424035A0693D7DBD5F40BD3A04A092C14240A789E2A87FBD5F40E9B3BC2696C142401DC6DBC682BD5F4018A8E7A79AC14240713E1F5188BD5F407A58AEA8A2C14240E9104AFC8ABD5F405CC19992A6C1424079871A6B8CBD5F408E1C9BA8A8C142408B0AEB838FBD5F40D870C229ADC14240),(3,0xE6100000010300000001000000840000001E6B5997BFBD5F408F39340F2AC042404F541DE1BEBD5F4098E067B427C042400D5997D5BEBD5F40EE8827A827C04240C63AD1CFBEBD5F4021C2177327C04240A9FF014BBEBD5F40D4D8ED9E26C04240FCD13B14BDBD5F40944D58F527C04240BE480373BDBD5F407B362F9625C04240D03D9A7FBDBD5F40F4679F4525C04240A74056BFBCBD5F407BA849CB24C04240307C1A0DBBBD5F408CEDEAB623C042402B1988EAB8BD5F40DE3BDAE225C042402F528B97B8BD5F40423DA38C25C042400813C835B7BD5F403D5F1EDA24C04240DBB941B4B6BD5F40D216BC9824C04240F9DDA97EB6BD5F4016E8B77D24C042403A71A058B6BD5F40DE110B6A24C0424010CB5662B6BD5F40E67F9B9824C04240A74F1594B6BD5F404C22478E25C042407A314098B6BD5F40304809A925C04240026E64B2B6BD5F4039EE4B5126C0424012016EC9B6BD5F4053080E4E27C0424007186E5BB7BD5F40AA95DEFB39C042403503FDF2B7BD5F4023399D9D3DC04240F50E0309B9BD5F40D905255D64C04240B5D909C9B9BD5F40455C70B265C042405A2F283BBABD5F408AAD82D965C04240F2895F17BBBD5F40C0E72E3966C0424057193A11BCBD5F40C739AABE66C0424036914DDEBCBD5F4065C3654167C0424099695EB8BDBD5F4029E598E267C0424010BE02A7BEBD5F40AC3592AF68C04240A71235BABFBD5F40F51F20C569C0424097B606B3C0BD5F40EAE597EB6AC04240029E9680C1BD5F409D0725036CC04240A3AA1545C2BD5F40E4561A336DC0424050125321C3BD5F402DCD94BB6EC0424037F13628C4BD5F40D9EA0CEF70C042405E391323C5BD5F40FEE44E9A73C04240ADC207D7C5BD5F4047C6761D76C0424029587536C6BD5F4064ED92D477C0424032594E91C6BD5F40BAA041FA79C04240112E8CA9CABD5F403E8A65C297C042405360631ACBBD5F40D2711D399AC0424063B22786CBBD5F404CAE14E39BC0424051C7AEE1CBBD5F40EBCE1C0B9DC04240723D724ACCBD5F40E3AA502E9EC04240D8DC47DBCCBD5F405DC4C4859FC04240A14E4FF3CDBD5F406310649BA1C04240D01E1A79D3BD5F40055F22D3AAC04240671259C3D4BD5F409491E940ADC04240561B88DCD5BD5F403DBD15E9AFC042406E58B7BBD6BD5F40C8747D52B2C04240DA44119ED7BD5F40973B1AC7B1C04240270D8A8ED7BD5F4088F99443B1C042405C132CB6D7BD5F4064CD01DFB0C04240D4F4E8E9D7BD5F4030EC7A55B0C04240A101E4ABD6BD5F4077794982ACC04240CE336AA1D6BD5F4075F00162ACC04240DFA73575D5BD5F40DFC324B9A9C042402062666AD5BD5F409A19A6A0A9C0424095E7639CD4BD5F4017CDC8D4A4C042403DDC2E33D4BD5F40DF1AB361A2C042401E23B41BD5BD5F408A1457FCA0C042407B46EB46D5BD5F40BB87072EA0C04240C163C8CCD5BD5F404781879D9EC042402A0455DED5BD5F400A90DAA59EC04240F9FAE7C6D6BD5F40D821BA5A9CC04240CA034102D7BD5F4096D587799BC04240387CDF0FD8BD5F40279C2E6C98C04240F2CD1DFCD9BD5F40F51F3CD792C04240DC46BFB1DABD5F4069F92AA493C0424020A5A5D0DCBD5F406B1E75B08FC0424034C89D87DDBD5F409CB3EFE891C0424002F9A658DEBD5F406A56D85491C042409A83E5BDDEBD5F408DA12D0D91C04240F98DF5ECDCBD5F403FD0BB3B8AC04240DAD06DA7DCBD5F40120C17E186C042401127FA42DCBD5F401D7A5B0385C04240B3C60639DCBD5F4001353FD584C04240580BD5C6D8BD5F40DCAE632D6CC04240EE71F4DCD4BD5F40B05C70C066C042403BB191A5D4BD5F405AD4B07366C042408AD4609AD4BD5F4013DDCF6366C04240AACAD07DD3BD5F405678D2D764C04240D38AEA38D3BD5F405F63DBAC63C0424045D63537D3BD5F4054985FA563C0424080171828D3BD5F407636E96363C04240A8CDB3A2D2BD5F402700552161C0424076758800D3BD5F40EDFDB04460C0424075F782F9D1BD5F40B51E2E145DC04240E0036CC6D4BD5F408667C2A558C04240F140A809D4BD5F4014D9B92E51C04240F333B6DAD3BD5F401EB52CF150C04240C7E76F9FD3BD5F401DAD5DA350C0424011F172E7D2BD5F4018D951B14FC04240F05602DED1BD5F4028D600DD4EC04240A3F12C2AD1BD5F405A6C013F4EC042405313BFEDCEBD5F40A81B0E544DC04240FB0372C5CDBD5F40E52E8BC14DC0424047E1D016CBBD5F40EA1D54CF4EC042403EE01AF0CABD5F4054EB1FE24EC04240F439CB79CABD5F404F79040B4FC042406114D548C9BD5F403CD8C5234FC04240987952CEC8BD5F4028CAA3EE4EC042405D232211C8BD5F4097AE447F4EC042409F59C8FDC7BD5F403735FA744EC04240CB2E420FC7BD5F40F0E454504DC04240B00836F8C6BD5F4049D709394DC0424000F173AFC5BD5F40CF93758B4BC042406222FC8BC5BD5F40F02161564BC042403CEA3459C5BD5F40AD99A3F34AC042403E9089A2C4BD5F40D2103E6C49C042401E162544C4BD5F4053C8EDA148C04240E0A4AF16C4BD5F4073C39A2348C042403EC49B7FC3BD5F407D12C69B46C0424018A5D64CC3BD5F404970141846C04240F31E481BC3BD5F40504AC52345C04240491B93D9C2BD5F4083A73F0743C04240CFCA841EC2BD5F40C7A9CD983FC042408F61591AC2BD5F405574D4853FC04240D1E7345CC1BD5F40308754273CC042409B66532EC1BD5F40B02F3A123AC0424029ECE431C1BD5F40DFC1D86038C04240F16F9D5CC1BD5F40F24E216036C04240958D0859C1BD5F406B03D23D35C04240C0E35B43C1BD5F40D73D22EB32C04240354A8E31C1BD5F40037FABA531C04240A9B645F2C0BD5F40ED93B67A2FC04240C08250C1C0BD5F40782D970F2EC042403DEBA43FC0BD5F40F32A13542CC0424079B04BDEBFBD5F409C8CEA0B2BC042401E6B5997BFBD5F408F39340F2AC04240),(4,0xE6100000010300000001000000BB0400007914FCF119BD5F4003E9204E0DC2424019EB12A827BD5F40050097C702C24240A5CE47C127BD5F4062215F9802C24240CEEB827E2FBD5F4032D3D439FCC14240CEFF921239BD5F4063A29953F4C142400CCF803B44BD5F4003F6AB0DEBC142405CE3A16647BD5F40F288296DE8C1424022DD7F9349BD5F40949B70AAE6C14240468E43774DBD5F40DD6FB17EE3C142409DC535E250BD5F40283BBFB3E0C142405C8C16ED51BD5F408FC64ED8DFC14240744DBC7A52BD5F40C758F766DFC14240F6C87E5754BD5F40D8786AEDDDC142400146DAC156BD5F40F8145C07DCC142400DB1CB985BBD5F40E9356836D8C1424084B64F7B5EBD5F40AE0FD3C9D5C14240C75904A261BD5F408934C41FD3C142405818810269BD5F4044965AF0CCC1424025169C746DBD5F401AF06840C9C14240C8B7018A71BD5F40CFBCED4AC6C142402A245E7373BD5F40DB2922F0C4C1424036CD455C7EBD5F402069A728BDC142401472B12284BD5F4084F3AEFBB8C142403F8BDB088BBD5F4022DE95C3B1C142408B0AEB838FBD5F40D870C229ADC142407B44EDC58FBD5F4049FF53E5ACC142401CF49CFE9ABD5F40D242B6709DC1424055020231A4BD5F4075BA8CA98FC142405DA2F945B0BD5F40684371707DC142401C549B64B3BD5F40FA8814A078C14240F911E73DB8BD5F4081C2107F71C142400723B64EBEBD5F40A62E256068C14240864A3A25C2BD5F4033731D7262C14240F6E910B2C2BD5F407E779FD861C14240C9697060C6BD5F4012E822475EC1424017E624C0C7BD5F409992D2F05CC14240E7732C18D9BD5F408894070F4CC142404E7A42FDE0BD5F401CAD2A5044C142402E802608E2BD5F4037FDEC8943C1424040E30C52E3BD5F400705E79642C14240660FCA18F3BD5F40D9C5DE123AC1424061FD34A1F9BD5F40FE54C19B36C142405593FB0C02BE5F4048D10D2132C14240E4F8C7AF09BE5F40FC3D03002EC1424073A3A3940EBE5F404A0122562BC14240E2B7C39D10BE5F408248553D2AC14240CC1A0FC612BE5F40C73BC21829C14240FB8A747814BE5F4058FB903128C1424075588DAD15BE5F40C0EE5C8C27C14240DF9E1BFF15BE5F40CA44EE6127C142402D5A1E1616BE5F404EE6BB5327C14240BFA57A7616BE5F4075176A1627C14240211A45B517BE5F4081D4F22026C142405AF1B3FA18BE5F40B668B92625C14240C64646341ABE5F40B706993324C142407429A4571BBE5F40A8DD025123C14240E6ADD8721CBE5F400071F17722C14240DF26FAFD1DBE5F407994114521C142405F96CAE420BE5F4017A528051FC142400CCC06EC24BE5F40D89EC2E91BC14240B7D071D232BE5F40CF48592E11C14240EDD374963EBE5F40E8194F1208C14240B67AB9834EBE5F40B79176A4FBC0424084699BFA56BE5F4012CCD213F5C042407DA11D6657BE5F40C85430C1F4C042400FDFBEAF68BE5F4042E3344DE7C04240DD2573756ABE5F4071D8D9EFE5C0424089AC1B246CBE5F401F741F6EE5C0424012D7CDA56CBE5F408E4C0C60E5C04240139B087D77BE5F404100A9F2E1C0424047B0406684BE5F408ABAF6D1DDC04240BE7DBB3E8DBE5F40ED8B8F02DBC04240A13967FD92BE5F406D3E7A2FD9C04240A3FA0CBE96BE5F40036F8C01D8C042405D9D99599ABE5F4072680CDDD6C042400F7E46A29ABE5F40CD8D49D1D6C04240F595BA3BA0BE5F40E51250C1D6C04240CE793D9FA2BE5F40F01587BAD6C042409AF46B60A4BE5F40B0BCF1B5D6C042407C3621AEA7BE5F405379D4ACD6C042400596EC6DB3BE5F401835E38CD6C04240F4FEB8EEBEBE5F4090043368D6C04240A674CEEDBEBE5F409C511DDFD2C0424026C5C2ECBEBE5F4002FAE0FACEC04240013417E7BEBE5F4095F695C8C7C04240C3D207DFBEBE5F405A819F4CB1C042405B5500DBBEBE5F40FB0E0861A5C0424094C03DD8BEBE5F400F7E265CA0C04240D7B4D6D6BEBE5F40F6278C289DC0424014EAC0D4BEBE5F400CC2832799C04240D0CA1BD4BEBE5F4074CC214F97C04240085A62D3BEBE5F40C22E7E5996C04240A6F722C0BEBE5F40029C240996C04240F4E4CC0ABBBE5F40BFC2C94292C04240CECAC7BABABE5F40A8556A2692C04240B7E68C26BABE5F40700077F991C04240F88F4034B9BE5F402821754C8FC04240B4B4BBAFB5BE5F40F60491558FC04240B6DF6C9DB5BE5F40BBC3E0DD88C042403775C376BABE5F40A470C74D79C04240BEF8DBC7BABE5F40FFBF81B470C0424018E3DCC4BBBE5F40848D9F4969C0424041D7A490BDBE5F40A4EAD09061C04240130E26AEBEBE5F40BA6C78C15DC04240A2CDC1D5C0BE5F40C0441BB858C04240461A2A1CC1BE5F409448355058C04240F1B91D36C1BE5F400222C52C58C0424091DB6C3BC9BE5F40D457531C51C042406C59AA9DCDBE5F40ACCCDA4A4DC04240BD276CEBD0BE5F40F3CDEB6E4AC04240D3C004B3D3BE5F40EDB2620448C04240DCCBCE3ED5BE5F40093AA5AB46C042408D14426BD8BE5F4010EFC4E943C04240D961B76BD9BE5F40DAC9740943C04240CE063284D9BE5F40031AE2F142C042407A3CE145DCBE5F40B0B934DD3FC04240661C2CFDDEBE5F40105313D93CC042403BDA8AC0E3BE5F4052B61F7637C0424099CC2E20E4BE5F40CB938B0937C04240DDBE3E42E4BE5F40780EC4E336C04240D7A4910FE5BE5F40B13939F535C04240BF1343D3E5BE5F409BA69E1235C04240E685E531E7BE5F40971C117A33C04240E1592B19E8BE5F40D7A59B7132C04240C5E5E844E8BE5F4052ACB23D32C04240C9F569ACE9BE5F402FD4CDA230C04240F60FFF4DEABE5F402F6652E82FC042402006A9FCEBBE5F407F741BFD2DC0424060E638A0EDBE5F4099542C202CC0424055299D67EEBE5F402073263B2BC04240BF2E3C31EFBE5F403F8CB5532AC042407346DB39F0BE5F4036E7772529C04240BF147274F0BE5F4029D7AADE28C04240958889C1F0BE5F40C620747B28C04240AC15DC4FF1BE5F40A445FEC727C042402E603BC4F1BE5F40DE11A13527C042406BB10928F3BE5F409ACE987225C0424048167A52F5BE5F405EE7A4B722C042400C0D7001F6BE5F4013440FDC21C042403668EEAAF7BE5F40B3B4C7C81FC042401EEE41C9FABE5F40E1BC42E41BC0424035CEB384FEBE5F40AE7B7D4017C04240D3F3B898FEBE5F401D3C272417C042405122EC4302BF5F40898C0C8611C0424019334A140EBF5F405ECD4476FFBF4240E0239CA10FBF5F40FF9FE9ECFCBF4240297BBDD70FBF5F4084027B95FCBF4240A630968C10BF5F40D928DD64FBBF424059387FE50EBF5F402784A297F7BF4240B45A0A2A0ABF5F40D1EF54BBECBF42403E72431B02BF5F40BCFF3C49DABF4240F9060CEDF8BE5F4068367ECFC5BF4240A2742519F6BE5F40764B9D78BFBF42406291EDFBF4BE5F401FE2BDBFBCBF42407FEED028F0BE5F403C77D8D2B1BF424093D9A80FEEBE5F40192A2A25ADBF4240F9CF4F94ECBE5F40F28AF6E0A9BF4240B320346EEBBE5F40573D9474A6BF42402177DFDBE9BE5F4040D97194A2BF424056B4B640E8BE5F405C1C16739DBF42400050EE2CE8BE5F401F80969997BF4240C8016226E8BE5F40EF97F83293BF4240CCA5EF13E8BE5F40D8BB041790BF42404B28F008E8BE5F40241A84EA8CBF4240711633FAE7BE5F408A85168A89BF4240926CC3EAE7BE5F4042208EBA85BF42401D3DF6E1E7BE5F40DE81969683BF4240FA8454DBE7BE5F40AE3E84D381BF4240831F6ECAE7BE5F4016150FD07DBF42406402CFAAE7BE5F401ABA7CE575BF4240750460A1E7BE5F40830F2CC56FBF4240A3EAEA89E7BE5F400EB070AB67BF4240B3B83073E7BE5F40C22FD0FC5EBF42404D3BCA4AE7BE5F400CA1873F54BF4240E5A057DDE6BE5F401201B9DD35BF42404E10F1C2E6BE5F4058D7ACE22DBF424023E586A5E6BE5F40358E913D25BF42404CB07A9AE6BE5F4027B750A723BF42405F0F439BE6BE5F40AE90F1E722BF4240B388C283E6BE5F40A84A03411CBF4240781AD35FE6BE5F403483B0E10FBF42400AC43B53E6BE5F4092CB481B0FBF4240822F1FE1E5BE5F404E3E7C160FBF42407F177DC3E5BE5F4055EEE4CA0EBF424078E1EF8FE5BE5F407152805404BF4240C4F4CDF8E3BE5F4009CE03EBF5BE424010EAFE12E4BE5F406A3F06ACEFBE42406684EB43E4BE5F40974AD9D9EEBE4240049DCB3BE4BE5F408786A7D3EDBE4240712AA836E4BE5F403E97ABDBECBE4240E5AA8C2EE4BE5F4045C0854CEBBE4240BC570A2DE4BE5F4018960B08EBBE4240C3821E2AE4BE5F40E385766EEABE4240DEC2EF24E4BE5F4036967A5CE9BE424097199020E4BE5F40AEB24135E8BE4240B418221CE4BE5F4076D78252E7BE42403373ED19E4BE5F407966E697E6BE4240253E4216E4BE5F40E3369AA4E5BE42407AFC9E0FE4BE5F408C78371AE4BE42406F5C4708E4BE5F40C1826959E2BE4240BCC6BBFEE3BE5F404F6FD5C8DFBE4240AA548EF9E3BE5F4011EBA38EDEBE42409881A8F6E3BE5F400FF2853ADDBE424058AA03F0E3BE5F404607B8E1DBBE4240CAE8E7EAE3BE5F40B22F33FBD9BE4240445216E2E3BE5F4050EDF96BD8BE42401CE8FCD9E3BE5F4021AA099DD6BE42408BB75FD5E3BE5F400318E48FD5BE4240DDEC62D0E3BE5F40206D4753D4BE4240C34F37CEE3BE5F40AD2E90F9D3BE4240BA9807C9E3BE5F40A4DC4306D3BE4240ACA45BC5E3BE5F4055DA9F2AD2BE424052B9EEC0E3BE5F40CF33C626D1BE4240F953C4BEE3BE5F40268B44A7D0BE4240C2EA69B7E3BE5F40A22AE93DCFBE42406C44CFADE3BE5F4076F16309CDBE424023BC9092E3BE5F40B2B627CEC7BE4240292B1286E3BE5F40EA376584C5BE4240B89B3B7AE3BE5F4010070278C3BE4240B361CA78E3BE5F407163069AC2BE42400F3EC073E3BE5F402652E291BEBE4240BC7F3B56E3BE5F402DA300C0BABE4240BE4A1B01E3BE5F403081B6A8B7BE4240057D5183E2BE5F40E0C87D32B2BE424086656B91E1BE5F4053E3AA4FA4BE4240A49CA7E5E0BE5F40D27B848A9FBE4240EC57E83CE0BE5F4073A134E099BE424047AB4E85DFBE5F405BA68B8194BE42401C7773F6DEBE5F40578473FF8EBE4240F8416B65DEBE5F409C95255589BE42404C3ED158DEBE5F405309E0EA88BE4240032C734EDEBE5F405A19655888BE424057C72737DEBE5F400C6CF9B585BE424088943B2DDEBE5F401FBB239784BE4240ED6C5C16DEBE5F40FCA4B01482BE4240942603EDDDBE5F408C84F48C7DBE424024B2F4B1DDBE5F403FF0AAAF76BE4240B0D42276DDBE5F408DB12BF86FBE4240662EC044DDBE5F40455AEA3B69BE42407A6DC9E4DCBE5F40098D91F65CBE4240C42330BCDCBE5F40626CD5BC58BE424001A615B1DCBE5F408B89887B57BE424023D4B4A9DCBE5F406D96AEDF56BE4240ECC1526FDCBE5F40AEB948A852BE42401A568A2DDCBE5F4066D68E0E4DBE4240B33135B3DBBE5F40BF87214538BE424054A6E34EDBBE5F4071AF376E2ABE4240EB94C00FDBBE5F403EA80FE120BE4240677002E4DABE5F404D0419441ABE42400E47D6A3DABE5F406475208110BE4240320D3F62DABE5F40B9748B9F06BE424012B1A958DABE5F40D36C1C5005BE424063E62E3BDABE5F402569377F00BE42402D17661EDABE5F40F9CB682BFCBD42406E8A370EDABE5F401E5CDBA1F9BD42409D68E303DABE5F4075EF92EAF7BD42400313F8FDD9BE5F40B42C70A8F7BD42403CCF46DBD9BE5F40F8AC8ABDF2BD4240A5CFFCC2D9BE5F404172BCB7EEBD4240EB0A9B91D9BE5F400980929BE6BD424018CE816AD9BE5F4097C35494E1BD4240262F394FD9BE5F4033E335C7DDBD42408B3DEE25D9BE5F40FD995BB7D7BD42406AFC55FDD8BE5F402763810FD2BD4240274AC9D4D8BE5F40DE608C7ACCBD42407384F0BDD8BE5F400DFE6150C9BD4240ABDFC59CD8BE5F40B8B5242FC4BD424093BF6F84D8BE5F4071327130C0BD4240616BDB23D8BE5F4085D8556DB1BD4240C99B963BD7BE5F40B77F25648FBD4240E99C0632D6BE5F4097F78A466CBD4240B5AD6C0CD6BE5F40BF8FCB8B66BD4240357D13F4D5BE5F40FA685CF762BD42406377F2B3D5BE5F403134639C59BD42404E976E50D5BE5F406EA5F6F74ABD4240E6AC996CD4BE5F40E2D1181D2ABD4240D46643E4D3BE5F401EA439EA13BD42400BCA66DED3BE5F404ACE41FA11BD42403BDEF6DCD3BE5F40E1AB320211BD4240A35012DAD3BE5F4000EB83360EBD424005EDDEDAD3BE5F40A6DB80030DBD42404BCE26DDD3BE5F40C1470B790BBD42402FBDA9E4D3BE5F4083DB9E1808BD4240F4A267F1D3BE5F40F635834B04BD42402157C707D4BE5F40B13328E8FEBC4240C9BDE540D2BE5F40979157EAFEBC4240FB826A88CFBE5F407F4A9314FFBC424089492356C9BE5F402B6F032EFFBC4240B5A583E6B6BE5F40B73BC5D700BD4240D422054FB3BE5F409397792201BD4240870B1F7C9EBE5F400EC396D302BD42407534D7428CBE5F4044DD7F5AFEBC424098B04DB35ABE5F404F72D31BF4BC42406567348939BE5F40FCF3BD95E6BC4240D8D4C50B1DBE5F4098D73017D9BC42407F8D71891BBE5F40E6EFD2D8DEBC42405A533D7419BE5F4030A99F8FE8BC424023C52F6019BE5F40D97D1E5DE9BC4240F6E11DFB18BE5F40F6C50E60FDBC42407C911EA518BE5F405F650AE9FDBC4240C5680B6C18BE5F400E70D47DFEBC4240D412CB3316BE5F4070D12D61FEBC42400ECED47E02BE5F4051FA1D6D00BD424084F2D01702BE5F40E9A353D700BD4240AFAB434E01BE5F4053ABED4A01BD42407B9CD753F7BD5F407F29673517BD424030354272F4BD5F408B57EF7E1EBD42400A914F75F0BD5F40A857B2D328BD424013DB5F22F0BD5F40EDD386AA29BD4240AAC85CE5E7BD5F401ED4938E2FBD4240A096CC6EE1BD5F40E7BD5F913DBD42407F1EB88CD8BD5F40612B2B524DBD42409C88C72DCDBD5F40894F199656BD42408EAC3F30BFBD5F40DB7877EC5FBD424035108AF9B8BD5F40C29B26916ABD4240B040AFFCB7BD5F40555412BB6DBD4240DEBD60CFB7BD5F4090E219CD6EBD4240B46BF6D9B2BD5F40E6C5462889BD42409CF01744B1BD5F40D9AD97F791BD42408EDECD51A6BD5F40D476A6A19DBD424021E25BC89CBD5F407C455B1EB4BD4240308D3A8799BD5F4078E7E81EB8BD42404ACA153192BD5F40552466C0C0BD4240D01BDB6E8FBD5F40E529FF09CDBD4240735E0A8E8EBD5F406204A40FD1BD42407B2836C287BD5F401FA28A46DCBD42408092014182BD5F4021732449E5BD42400D6D022D82BD5F4065CB2FBFE5BD4240168F612082BD5F40088E2DF3E5BD42402907B33D82BD5F4021329B99EABD4240CA325D478BBD5F400D6C6C21FBBD4240EDCEBA678CBD5F401B37FD6404BE42404BB8A7538CBD5F40E6AEBF4E05BE42404BC026558CBD5F40B2C5179F05BE4240FF0C9C6D8BBD5F40BBDFE4210ABE4240D9E609758BBD5F4009CB585F0ABE4240D5274D718BBD5F40AE0A67EF0ABE424090277D408FBD5F40C28B2E1615BE4240479C387890BD5F40F975725318BE4240627210D490BD5F40593F634419BE42401B1AC90D91BD5F4054D0EEDD19BE42406E86292C91BD5F4083BEA3301ABE42401D9193DA90BD5F4059A18FDA1BBE4240A82C40B08FBD5F4009B764F021BE42403DB3E89F8EBD5F406E2C045D27BE4240A4F58EF18CBD5F409521B02730BE4240D4A3C00D8CBD5F40D5DC7DC434BE424076101B2F8EBD5F404379B8993FBE4240F0F519538EBD5F4039A8997D44BE4240DD58DED18EBD5F404606FF7A59BE424093366B688CBD5F404AB62DAE5CBE4240A8E436BD8CBD5F40AC3FAFF662BE424021F6C73A8DBD5F40F00B66C468BE424095DE35D28DBD5F40D63B30BE6FBE42403506F8BD8EBD5F40860FD2BA78BE424053A64E3E90BD5F40A7CE416B87BE42402BFCC48690BD5F40BDC7E1498ABE4240A483AD7D8EBD5F40636BB3138CBE4240537A42DD8DBD5F404726EC5591BE42405243F9588DBD5F40664D252897BE4240B6BECB6887BD5F40B5D807D79BBE42400344C88586BD5F40D52C5BC79FBE42404F64A82782BD5F408EC315D3B3BE4240825EA04181BD5F40803EE221B8BE4240DCF44FEF80BD5F40B0AB413DB9BE42401DF25B357FBD5F405E0FB721BDBE4240B7B0AE1A7FBD5F404EB8B976BDBE42407099ACEF7EBD5F40A9B41809BEBE42408856A8EF7EBD5F40464D8B46BEBE4240337DE2B47EBD5F40FE7F1B2CC1BE4240CF6C31917EBD5F40AC75E2ECC2BE4240540E597F7EBD5F40B1C6DACAC3BE42408AB2AF757EBD5F4016B50248C4BE424047A036547EBD5F40A979942EC6BE42406A07B2187EBD5F4004B8098FC9BE42400B84E4E07DBD5F4038D664B4CCBE42401D5FFE9A7DBD5F40575346AED0BE424075AD546E7DBD5F40CB24CA37D3BE424045953D747DBD5F40103E457CD3BE42401D29F2B37DBD5F4049480003D4BE4240C62E85FE7FBD5F40702E66DBD8BE42406346CF8481BD5F401EF2D31FDCBE42400C7164F783BD5F403468F751E1BE42409202639585BD5F40A9FEE2C0E4BE42401EA9518987BD5F408A0822E8E8BE4240D0AEED9287BD5F40A6C49D2CE9BE4240A7D4D98F87BD5F40F99C212DEBBE4240FB2F087D87BD5F400F399230EFBE4240BD70867887BD5F4041B36AE6EFBE42409C715A6A87BD5F405159CAD8F1BE42400DF6546787BD5F401C78F355F2BE4240D2FD215987BD5F404849BEFCF3BE42406FD1BD3C87BD5F4028EC5330F7BE42404E8ADB2787BD5F401E3FC17EF9BE4240A853641D87BD5F404EE7F7A5FABE42405450CAFE86BD5F40AB4ABB92FDBE4240CFC1EAE986BD5F40C46206B9FFBE424011FA86D686BD5F4080E9BCAD01BF4240E2A4C89D86BD5F402651168007BF42401BA19A8F86BD5F40FC1CA4DD08BF42402B14CB9486BD5F40C5A9914509BF4240134C76C286BD5F4054A4D0CB0CBF4240D492E8D486BD5F400F9AF1390EBF4240B9A96E1C87BD5F4009E109BC13BF4240B686512287BD5F40545A4F5A14BF424005B3E63687BD5F4092887F7216BF42404ADD922980BD5F409C51D60918BF42402C9977E281BD5F4072958C0923BF4240B3BE53297ABD5F40309B60012DBF4240CCAB636175BD5F40882296F132BF424028C2C92C75BD5F40692FFFFA32BF424051E6CFCD72BD5F406D617D6233BF4240FA5295B06CBD5F407681027134BF4240B58481D46BBD5F404C02DA8A34BF4240E6D7261F68BD5F40DD028AC734BF42401F2CFF3866BD5F405788DFE534BF4240E1B8CFCC65BD5F400F73CBE534BF42401766A08865BD5F4058BB07A634BF424080F4D3605FBD5F40A21DE2652EBF424046A0D2275FBD5F400ED3EAAF2DBF424096C41A825EBD5F4057AE72CD29BF424004FB2D0A5EBD5F40659CB58A27BF42404E2278455CBD5F40A8F5F88A1CBF424026025B485BBD5F405FC72BD617BF42404A0AC56159BD5F405E09E28D13BF4240BBC6E04B57BD5F40DFCD78460EBF42408376884552BD5F40240322530CBF4240A60CE33E50BD5F4027FBF84E0BBF4240217973684CBD5F403563D74208BF4240DA68695349BD5F40A043CE7105BF4240CD17435447BD5F400DBFC30FF9BE42400EF72B3845BD5F40BC696BF2F6BE424033C68BF441BD5F403B8FAC24F3BE42402DB473D13EBD5F40ED6A24ABF0BE424024BF0F7E3DBD5F408DDB1EA6F0BE424068D671DB39BD5F407DB4ADB0EEBE42402ACC8B0739BD5F40DB6E3FF8EDBE4240A0632A2B37BD5F4023D5995AECBE424026B128A236BD5F405BD66F96EBBE4240F2C877DD32BD5F4033616155E9BE4240EEEC819F2FBD5F40F87D9912E9BE42404249905F25BD5F40E2B6BB83E7BE4240ACA45E9224BD5F4093D2B899E6BE424018FC2F9322BD5F406E59E751E4BE42403B1E873922BD5F405BD538FFE3BE42408A4B5B5821BD5F40294CA438E3BE42407FD1832421BD5F4042AEE2AAE2BE424055AC11FA1FBD5F40A25FA717E0BE424084387BA31CBD5F40360A55E2D8BE42400A3C0D601CBD5F40F1CB7CBCD8BE42402DDE56341CBD5F4042A6CB8AD8BE424093B7C56115BD5F405496B88CD7BE4240C647564011BD5F40D34B0BF7D6BE424028653FC10CBD5F40DF8B7AF4D0BE4240D5850F580ABD5F40A0F1E5B3CDBE424004376AA909BD5F40F1513EC8CCBE4240C1EFABE603BD5F4011D2270FD6BE424074CA076BFBBC5F40FD153ACAE3BE424059C94950FBBC5F40A5055E47E4BE42401FC1A9DEFABC5F40928F8892E7BE42404BAA0BB8FABC5F40E1915948E8BE42406BF1EE85F1BC5F40AF5FB687EEBE4240039C20A0EEBC5F40BFD5F86BF7BE42402AB5DD91E8BC5F40DBDAEDAEFFBE4240B6BAF240E1BC5F400C9844E302BF42406E26F5C6D0BC5F409000F7C309BF4240F44CED2ACCBC5F400D05A2AF0CBF4240294D07BEC5BC5F4044394BFC11BF42408E93C857C3BC5F4055419F7919BF4240B05B8A5DB9BC5F405ED894211FBF42409A59F33AB9BC5F40D635B39024BF424038E53CD0B8BC5F4078C66C6935BF4240D9E80877B1BC5F40ACC0340831BF424086AA06ECAABC5F40571C7BAD31BF42405CD0E467A4BC5F409B67255232BF4240FED3AD729EBC5F404BFBDA7E3BBF42403E90795C9CBC5F40643967243DBF4240C488A9369BBC5F40A982500C3EBF4240E9057C099BBC5F409CD7F94C3DBF4240A57C894598BC5F40FCFD0EF037BF4240529B133792BC5F40AC187F7431BF42408CDC095E91BC5F404B234F7C30BF424097E58FD48CBC5F40B3B181E12ABF4240C9B33F328CBC5F40B2A561022BBF424017F9FB1389BC5F40CA5378EB2BBF42405B5A83DA82BC5F403D36C40B26BF42409AEB911377BC5F401A52132521BF4240C8FC625073BC5F4057658B3D1FBF4240BA46AC2D73BC5F40FC2E93BC1DBF42408EEFDB1472BC5F40FF5023251DBF4240426AADB271BC5F404C7AF8330ABF424081D2B32371BC5F4081DF7CFD09BF4240AE9D568770BC5F40A2A6DBEC09BF4240FC5390806EBC5F40E586D3FC09BF42406BD4AD176DBC5F40BF9356080ABF4240957022C469BC5F403A72C43D0ABF42404DD5A0A667BC5F40BD6F9C8308BF4240E844033B66BC5F40BCBC196507BF424069DC46EB64BC5F405B7B9C5C06BF4240230FACBD63BC5F4010B96AFB05BF424027A9A29863BC5F40C4E596EF05BF42405300876263BC5F4085F1A3DC05BF4240A5528DD362BC5F402C9C7FA805BF42403EF814A762BC5F404273A27B05BF4240F55B445C62BC5F406063153705BF4240C87E36EC60BC5F4018C2FDF302BF42404605383560BC5F40B1A5102B02BF42409C236DC35ABC5F407996CB0401BF42407060A07C59BC5F40F48455C200BF42402BC6A00159BC5F402F1CA17600BF4240D8CC08B958BC5F404072514700BF4240DBFCC97357BC5F40068DE72DFFBE4240C2D3782A57BC5F403BA45A1DFFBE4240BD9BF77555BC5F40A56692E6FEBE42400A5BECDC53BC5F400F0ED1AFFEBE4240D6AAC4AC53BC5F40D4D7E6D7FEBE4240B6688F7F53BC5F40CC5883EFFEBE4240A2B1FB0253BC5F40DBA021B8FFBE42400A9F1B5C52BC5F408AC549E600BF42407768920A52BC5F40C6E219F900BF4240813A1F8B51BC5F4050B6501501BF42400EBB0D8C4EBC5F40B7E97DB701BF4240D0121D1F4EBC5F408DFEB1B201BF4240AF2481834DBC5F40F695C6AD01BF4240469B17AB4ABC5F4056B3F2E100BF42403BCE895C48BC5F40A75BF93B00BF424015639DE546BC5F40DDB1AAD3FFBE4240D56D934F45BC5F4056856E72FFBE424075AA621F45BC5F40047ED47BFFBE4240BC28AE5E44BC5F404689D789FFBE42402B7967D442BC5F40B7E6BB1400BF424090DA6BA942BC5F400964CB3500BF4240FD43F5EC41BC5F400E98AB6002BF42404734C92E3DBC5F401FC3784E05BF424002D8C7763ABC5F4004EBCA2307BF4240746B009F38BC5F400B9E144612BF4240DA34CA9736BC5F408A1EEBFE16BF424034020A4436BC5F4052A2EFEB16BF4240C7720B3032BC5F4026A0F89115BF42404C5E833C2FBC5F40D756653119BF4240F0ADA78A2ABC5F4088AAE29917BF4240885F361C28BC5F40957BF61417BF42401931A0E726BC5F4042D815E615BF4240B20DEAAC24BC5F40BE30F4B513BF42409B53619D24BC5F40E72E987F13BF4240FF685F7424BC5F40568975D40EBF424001FA0C4224BC5F4089AD08630EBF42405E05752124BC5F40767335090EBF42406672818522BC5F40D551070C0DBF42401A6B83D421BC5F408D2D2C0F0CBF4240AC78E39920BC5F4061C0653E09BF4240F7F5848F20BC5F404CE5E81309BF42408AF4358520BC5F408E0AF25608BF4240F9C8995720BC5F40C9010E0E05BF4240518DCF3720BC5F40C0C055BB04BF4240BA60DBD31FBC5F40B4DC1C9B03BF42407868A84F1EBC5F40CD7D954602BF4240F388286E1CBC5F40061B2A9800BF424063070AB61BBC5F406D41FF1301BF42409A3E35D71ABC5F40866FB6A901BF42405D39CBBF16BC5F40BA89087904BF4240AEAA03DA15BC5F40A851D8D404BF42404047AED30DBC5F40DBC22A0F06BF4240B99314990ABC5F405F255FE701BF4240DE0806B105BC5F4054FC51AD01BF4240D0988C9A01BC5F404E8057D0FBBE4240211CAAE7FDBB5F4098EA56F9F9BE4240588AACE9FCBB5F4077C77760F8BE42409414027FFCBB5F40752AAAF3F7BE4240D2F8A80DFCBB5F40543E107BF7BE42408D794376F0BB5F40BDBD0F7DF9BE42406EEC0338EDBB5F40E8B4C9D8FBBE42400FB31FCEE9BB5F405B82C63A04BF42404865D5D3E4BB5F40CCD5BD9207BF4240733E8748DFBB5F40AC4D86C20FBF424078193B28DDBB5F40442A61CD12BF4240682618B9D6BB5F403B54C8FB16BF42403E430406D2BB5F400ACC6EFC19BF4240A1427EE4CCBB5F40DABABDD41CBF4240386F9C66CCBB5F4048E189101CBF4240BF307DB5CBBB5F401392AD461CBF4240346D8748CBBB5F4048E8576C1CBF424091F38EF3C9BB5F40F34AC5E61CBF4240B87D03D1C8BB5F40806B044C1DBF42403FBD01D9C6BB5F406ADB85FC1DBF4240C7D3227AC6BB5F4084C72C1B1EBF4240B751BAB9C4BB5F40639066AF1EBF424078C96BD5C3BB5F403E5EA4621FBF4240F6BCECD6BDBB5F40B8602EE31CBF4240FDD3D222ADBB5F400882350D18BF424071C7416FACBB5F4020DB1CAF19BF4240D75D26C6A6BB5F4052B1DD501CBF424070E7476D9BBB5F40898F34A021BF4240D9E47B589BBB5F40E158D6D121BF424034A27B309BBB5F40B148ECF921BF42401B7D66169BBB5F400A91742323BF4240F9C8BBB69ABB5F4065C6069023BF4240AFC8E4519ABB5F40E9D29E0324BF4240AC84708397BB5F40901BB43827BF424091261D2294BB5F4097B0FA122BBF42404F3B7F7391BB5F40ED0DA6242EBF4240CC7DD0A48FBB5F4079FAD73930BF4240563FB5948EBB5F40635F0C7631BF4240859547798EBB5F40AE79B39431BF4240E9EC78B88DBB5F40D23E1B7032BF42404BFA31F48BBB5F409EE9D55A34BF42406F66386B8ABB5F40CC99432236BF4240ECB8445186BB5F40CEBFDDF13ABF42406A4BA4DE82BB5F40DF67431B3BBF4240CD888CDF7DBB5F40F9E4BC1D41BF424042D116C77DBB5F40DA625D0141BF4240668E409C7CBB5F401A88096F42BF4240DE74BAA77ABB5F408B7F62C644BF42403E5A9AB277BB5F405D8259B848BF4240B728027E77BB5F40ED41D6AE48BF424079077A2874BB5F40A9A25DD94CBF42402663D1C86FBB5F409A29AD2352BF4240E18EB0436DBB5F40861A222055BF4240070C39656CBB5F40DD0DCF1056BF4240B0229A2D6CBB5F40884D375556BF4240996110076CBB5F40C6F72A8956BF4240E2B4587F6BBB5F404140A31657BF4240C3B2E8F96ABB5F405327289D57BF424016B862F267BB5F403DAB1A495ABF42404D306BAA64BB5F403A3848D65CBF4240D2DCC5DE62BB5F400A8D81625EBF42400A5FBF6062BB5F408EE7DE6B5EBF424075A50CC460BB5F40E3D5A2C35DBF424026A3B0F85EBB5F40F74F72085DBF4240A77BAD4B5DBB5F408AC7D85D5CBF42403F7E054F5CBB5F4047034AFA5BBF4240DE82E61B5CBB5F40E46ABFE95BBF4240CB8790C95BBB5F40DC99B3455CBF42402E3BEC865BBB5F40D3F8E6EB5BBF4240AF0DA95F5BBB5F400A0CF5D85BBF4240CDD17BD358BB5F408FA60E0156BF4240A8763F8158BB5F40DD5DBEF255BF42400999F35657BB5F40AEE3C20C53BF42405788502C56BB5F40D055563C4DBF4240305D004753BB5F4085FD391249BF42400BABA7AB52BB5F4091D917F546BF42401ED2B5A84FBB5F40C4B963BA42BF424003C639094EBB5F408A651A8A40BF42400971FA894DBB5F4022DF2A043FBF42405F87B0664DBB5F407D3343CD3CBF42403DD13ECC4CBB5F401A624C3639BF4240AE02ADD94CBB5F40E46049C738BF424009B12AE14CBB5F4009C61A0F38BF4240126542D64CBB5F403B21F23136BF4240977BA5D64CBB5F4040E73C2B33BF4240FA4E9CB84CBB5F40A21985AD30BF42407580AF824CBB5F40D05CC82E2FBF4240C4456CA64BBB5F40860533C32ABF4240AC67B7694BBB5F408B19E25F2ABF424007B653C54ABB5F40E5DF954629BF424045DD892449BB5F40721713D525BF4240C972FC9F48BB5F40576EB60225BF424069F384C547BB5F40E77B3DFC23BF4240E2CB373D47BB5F400030098D23BF4240C3618DAA46BB5F40B09BFFF022BF424091778C8246BB5F406B70F2BC22BF4240270B73F445BB5F40454DF64921BF424068D396D745BB5F4075C6AF1A21BF42406776853D45BB5F409C23AB8520BF4240C6319C2045BB5F4002617F5D20BF4240615633F444BB5F403123FE1F20BF42402A62AD4A44BB5F407CE735C21EBF424035EBD7B843BB5F4085A31D961DBF42400C83A42D43BB5F40396C16781CBF4240C57B284D42BB5F404AF52F251CBF4240D608C13142BB5F40F8B041121CBF42408EE0A8FB41BB5F407D6AA2E71BBF42408550AB0240BB5F40014096C118BF4240EDA57C133FBB5F400D850E4C17BF42401B0662A03DBB5F40A24FAB0516BF4240F3F29A7A3DBB5F40C192B9D815BF42407B626BA53CBB5F408D0A61FB13BF4240F87F70913CBB5F40A106CDB613BF42408C4A63E73BBB5F40C27CF29510BF42401A6F9DB93BBB5F40629E3F860FBF4240ED7CADCC3ABB5F40C0E673F40DBF4240831F79A23ABB5F4088120E8A0DBF4240C40EAD8B3ABB5F400F9C40520CBF4240CE0DD8523ABB5F40748C8E980ABF4240DE5BB7DB39BB5F408898990B09BF4240C0985D9D39BB5F400C25EF52FEBE42409655405439BB5F40B9E25959FCBE4240946A384639BB5F4014F5B8ECFBBE4240D3A501B738BB5F401321B6C5F7BE4240BB442B2237BB5F4001AB48B8F3BE424013D2452B37BB5F407433D647F2BE4240DB65D4DB35BB5F400BADFCFFEFBE4240CE33AA2835BB5F40E6EEFAC7EEBE4240DC96461035BB5F40DDEF2081EEBE42405F0ACFA834BB5F4016385F2BECBE4240A8B937C534BB5F40C85D215AEABE4240D123CEAF34BB5F40BB2A63CCE9BE42401350B93534BB5F405DA71C5EE8BE4240CE786CFA32BB5F40381D4E1EE5BE4240BE02712B32BB5F40FE163D32E1BE42401FB9B5AE31BB5F407D6D198DDDBE4240A3CCB4D630BB5F403690DE70DABE4240B9059BAF30BB5F40F6582626D9BE4240846D4F3F30BB5F406C0EE084D6BE42400D82DC0430BB5F40CD9CFAEFD5BE42406F0634922FBB5F40EB93E454D4BE42407FEBF9592FBB5F40621922CED3BE4240379534722EBB5F40B3549451D2BE4240B0116B792DBB5F405A941BC2D0BE4240D09EBA5E2DBB5F409D6C6AAAD0BE42405C72C53C2BBB5F409E5DE56ACFBE4240545DE4AB28BB5F40410F88EFCBBE424093EB74D227BB5F40BE2C4CEDC8BE42406268869627BB5F40F5DF4316C8BE42400B66366427BB5F409636CC4FC7BE42407C45F05B26BB5F40E51F613EC5BE4240A01CF1E925BB5F4035B4EE64C4BE4240D96A894825BB5F4061A1F967C3BE4240E76383CF25BB5F40C633F6AFC2BE4240D34EC17A25BB5F40B09DDF24BFBE42402107CA7725BB5F40283951FABEBE42407228276F25BB5F4021813C37BDBE42405536F35B25BB5F4011DF2212B7BE4240B819DD7020BB5F402AAB277DB7BE42404302C91A1CBB5F402177F297B7BE4240CF9F2F9616BB5F403CB276AAB8BE42402BC69C4A0FBB5F400274502BBABE4240BE6F705E0DBB5F4063CBB5BABABE4240768499AF07BB5F40E496C95ABCBE42405865BF0205BB5F4026E60525BDBE42405A9DE5B404BB5F4045BEBC51BDBE4240A1077DF003BB5F40BAC99AC7BDBE4240B332C24603BB5F40F4B1310EBEBE42407683534302BB5F4066572F78BEBE42409D9E61EA01BB5F408DD4DA9DBEBE4240B8CAD7CBFFBA5F40AB80DC7FBFBE4240EA6B3ADBFDBA5F4061149645C0BE4240BC8E9296FCBA5F403641A6C4C0BE42403F6B4838FABA5F4004421EB7C1BE4240B5595BF3F9BA5F4013F55DD3C1BE4240C3FEE9B8F6BA5F4004C98F1AC3BE4240BB6E449BF6BA5F40C0FDF723C3BE424077A39D67F1BA5F40EBA3962BC3BE424072AC1C31F0BA5F409113812DC3BE4240495EBA73EEBA5F401E03E42CC3BE42405BD76C17EDBA5F40A5DAC02EC3BE42407A893F58ECBA5F40C94D7D2EC3BE42405452852CECBA5F4016D96D2EC3BE4240828028A7EBBA5F4041E2E62BC3BE4240A1474E3BEABA5F40DD8BF321C3BE424047CD4659E9BA5F40E916D915C3BE4240CF07B5A7E3BA5F400509E7C5C2BE42401E6D43FDE2BA5F40C1CE74B7C2BE4240544DD752E0BA5F40A370225FC2BE4240BCF4BD1DD9BA5F40E2C8056EC1BE424051A3CE60D8BA5F4059D81956C1BE4240D25AF489D7BA5F4051B65211C1BE42407C8E8C57D7BA5F40A439B300C1BE4240300E101DD5BA5F404130F242C0BE4240D471DEF9D3BA5F40B496B7E1BFBE424033F54E0BD3BA5F4029B76193BFBE42401820A61BD1BA5F40723363EDBEBE42404D972E03D1BA5F40FAC5E7E3BEBE42405320BC1DCDBA5F40282BB255BDBE4240F3F6591ECCBA5F4053F0C0EFBCBE4240D89FE6BDC6BA5F409174FD2DBABE424043B73120C4BA5F400A59D1D1B8BE42402F16D85EC3BA5F40A345616EB8BE424022440E39C3BA5F4036F35A5BB8BE42405EB8C600C3BA5F406BA2EE3EB8BE4240298E77E9C1BA5F4082F479AEB7BE42408E9DA897C0BA5F40E5A30AF1B6BE4240D8720D08BEBA5F408DC34D7DB5BE4240A8CFD5F3BABA5F40DCA57AC2B3BE4240B5322627B7BA5F40FF3D5491B1BE42406E01149AB5BA5F403AB9C6B2B0BE42404F6219A7B4BA5F4079144B22B0BE4240BB2F6E6DB2BA5F40B7CC6EB3AEBE424004F33070AABA5F405E8D7DA4A9BE4240C95857B1A7BA5F40202B3DFBA6BE4240BE5CCC13A2BA5F4005C18C80A1BE42405467BCB49DBA5F406EFCC6429DBE42408B46793A9ABA5F409875BCE599BE42406A39927F98BA5F406E36993998BE42408A416F1294BA5F40C55008F793BE42405E22F55E8FBA5F401F980F778FBE424074B016188DBA5F40FD7606448DBE424033B0AF988CBA5F40B8F239BD8CBE4240B614CB818CBA5F4041CAAFA58CBE4240907837FB86BA5F40693042F986BE4240D5A5B08982BA5F402447F35C82BE424053DCF7A07ABA5F404120DB097ABE42407406F3DF77BA5F40C059E12777BE4240C30A6BE475BA5F40560F790372BE4240652203C973BA5F4086849D9A6CBE4240B128C6DA72BA5F408833433B6ABE424049D93E6D72BA5F401BA6022269BE424059F508B571BA5F40EEF8CB5267BE4240D6280E3871BA5F40FFE8062A66BE4240292652E16FBA5F40AE0A07FC62BE4240368E08AC6FBA5F406003EB8C62BE424043A77A6B6EBA5F40B34F14BB60BE42402F70AC5B68BA5F4026CD0CC857BE4240041D13E266BA5F407564D39E55BE42403A969D6B66BA5F40154A2BF254BE424097A9EE0666BA5F403D04D35354BE424096B9199A65BA5F40F1A12EA753BE42404A70030C65BA5F40E492D96C52BE4240DDD54F6364BA5F4047B6AFF250BE4240608DF73064BA5F40E2D93C8150BE4240AEAC04D063BA5F40DF2ECBA74FBE424019DBB15363BA5F401795EF904EBE424095FC99AE62BA5F400E8948B04DBE4240401AA7C461BA5F40755827784CBE4240361C7FAD60BA5F404B02ED044BBE424089EB053C5FBA5F407D17AA1649BE4240009C2B735DBA5F403A5049B246BE4240E08515F35CBA5F40664E080846BE4240DB0E8F025ABA5F408DFD1FD743BE4240462E9F7258BA5F40675D1CA842BE4240C337440057BA5F40C0C11C8C41BE4240A84BCF9554BA5F4054A917AE3FBE4240CEE2D34453BA5F402002CDA93EBE4240E505D15752BA5F404AF482F33DBE42407EC92B2952BA5F408B1F69D23DBE4240879088E351BA5F4072A410A33DBE42403F1E8B9B4EBA5F4091FF0A933BBE4240AD33E0144CBA5F40890823FE39BE4240DA1C60264BBA5F4087BAF26839BE42402960D4C249BA5F407F4A6A8A38BE42408EA09F7F47BA5F408C84BE1D37BE4240EDFFAB9A46BA5F40BEB791BC36BE424005F5C86545BA5F40167AD23736BE42405CA5970944BA5F401343E1A435BE424087A0DFD942BA5F40FCAE7B2235BE4240CA0587FD40BA5F40E551FF5834BE424052DFA12C40BA5F40FB91E1FE33BE42406A1671D03EBA5F40690F986933BE42407340D4A03BBA5F40CCD5E3FE31BE4240B5465E7F33BA5F40201D99DA31BE42406576FA9823BA5F40B4684E2A29BE42406050C4E21DBA5F40CE24CBDC25BE42405BCEB5B905BA5F401267FAE117BE4240D9031282FDB95F408118932013BE4240F26547D9F8B95F40A97155F711BE424005F77EBDF7B95F4022F20CB011BE424087CB6F2AF4B95F40A036DE8F11BE424096D544CCD3B95F40C138651014BE42405CE67401CEB95F405FF2A08114BE4240C509D152D0B95F402202E12C1ABE4240C7140AD2D0B95F40C625CA641BBE42405FC40BE3D1B95F402A3BB0011EBE42404E576BB4D2B95F405D88360020BE42407CBA033ED3B95F406D66744D21BE4240083EABE6D3B95F409188BFE822BE4240841F3AF3D4B95F406311D97925BE42402D430893D5B95F40CA2DB5F826BE4240E2ECC6DAD6B95F40FEBEF6192ABE4240B5241CF6D7B95F40C99F75CE2CBE424004037D22D9B95F40571489AD2FBE42409EB0DF15DBB95F4021A9757334BE4240D80A098ADCB95F4044E9650138BE4240EFAFACB2DDB95F40B19C5CD93ABE4240398528C5DEB95F40CC5D42763DBE4240D09F3E1ADFB95F4003CF3F463EBE4240F2320CCBDFB95F40F91073F43FBE42401643C570E0B95F407E3D8E8841BE4240DD2E92B2E2B95F4012F1A91247BE4240D8C18AB2E3B95F40D86F0D8549BE424018D74436E4B95F40F8C37DC64ABE424098DB2D17E5B95F4030D42BED4CBE42404C014D55E5B95F40CE98C7864DBE42401AB70092E5B95F40F221B31B4EBE4240290835CAE5B95F40BAFEBEA44EBE42408C9C9F73E6B95F40213AB94450BE4240E866868DE6B95F40B1C7368250BE42404A8657BEE6B95F407275C5FA50BE424033663CB3E7B95F40BED4B85053BE4240A1FC6CDDE7B95F4044234CB653BE42400476594FE8B95F4011C13ACD54BE42402AA13DD8E8B95F40ACB31F1856BE424074AAD672E9B95F407A1F499257BE42403D3081E8E9B95F40E8B540B058BE4240A2905A96EBB95F40CC64F7C45CBE424038297346ECB95F407A6716735EBE42407E8C6C21EEB95F40210C3FF962BE424024711583EFB95F40298CAB5C66BE4240BE2236F7F0B95F406787F1EC69BE42409D51650DF2B95F40FAA0F9976CBE42402FB63B96F7B95F4062E496257ABE42402E584BA1F8B95F40076155B47CBE424039DEE863F9B95F40DEB4608F7EBE42400AD99A42FAB95F403CC2F1AE80BE42400CDC0958FBB95F40D536495583BE4240E611930CFDB95F40DF7A958187BE424010F60558FFB95F40BAE7951E8DBE42404294123F02BA5F403992563B94BE424051C6D56603BA5F4037DD091097BE42402BD6558A04BA5F40E1E030DC99BE4240F1572A4F06BA5F40AC0168359EBE424089E0EC7106BA5F4000DDBA859EBE42408AC2B7BA08BA5F40974D46C09DBE42404EBEB75A09BA5F40637EC5239EBE424010D3E05C09BA5F40E5A662909EBE42404591735509BA5F40B8C844BD9EBE4240AFA3A2B80ABA5F40CAAEFFE7A1BE4240EBD887830BBA5F40DD8E47BFA2BE424067C6E99E0BBA5F40AD887CEEA2BE4240014198BF0DBA5F40437E3064A7BE42408DDC80EA0DBA5F405238BCC2A7BE42406F454D8D0EBA5F40FDA58F54A9BE4240654038B50EBA5F40AEC2C9B7A9BE4240D52750F90EBA5F40D4DD9C5FAABE424086F2D9E30FBA5F40EC17A4A2ACBE4240DDC5EEA711BA5F40BBB681F9B0BE42409D60CEC714BA5F407C795A7DB8BE4240D232E3E816BA5F40A79F91F3BEBE424087536A6417BA5F40FBFF5B8CC0BE4240F7F652B117BA5F401ACC918BC1BE42406B302E4818BA5F40EB1E825FC3BE4240E8A1E5D918BA5F40EC4C3304C5BE42408CEF563919BA5F4075B2EA13C6BE4240C3BD169519BA5F408051411AC7BE4240936FF72B1ABA5F4088C916CDC8BE42408B10D2C51ABA5F4098A7D292CABE42404C7997621BBA5F40B5195A7ECCBE4240971623B31CBA5F403F2107A1D0BE4240E5216F501FBA5F40A5E60EEBD8BE42401793DA0A20BA5F40249D2F1BDBBE4240723C446A21BA5F40B3788AD3DEBE424015E7A95A23BA5F40C968360DE4BE424042D6A27124BA5F40A133E3B5E6BE424088AE3CB425BA5F40CC0CA9B3E9BE4240BE20486A26BA5F40FB09DB61EBBE42401A8920D426BA5F404D48595CECBE4240E9630E6B27BA5F403D6799C3EDBE4240B4F6F32928BA5F40C25A138EEFBE424086DFAED228BA5F40299F5A29F1BE4240096C838329BA5F40A42E1FD5F2BE424009A2115D2ABA5F40490289E6F4BE42408DA605AA2ABA5F406A349CA3F5BE424032A499B62BBA5F406671295FF8BE42407A28A14A2CBA5F400E23B186F9BE424013162F382DBA5F40EBB47A66FBBE4240C0AE9C1D31BA5F40B9C6713405BF42406C935AB231BA5F4090D2D2A906BF424012564A3532BA5F407BD35AF207BF424001CC6BD132BA5F4092314C7809BF424077139E9D33BA5F40EBE3CA760BBF42406C4A406034BA5F40FDE3ED580DBF424080828E6D34BA5F4020D6657C0DBF424075DD04AC35BA5F4002B7ABCE0EBF424077F5D7DC35BA5F4033FF25470FBF4240FF18C1E536BA5F40D4E836D811BF42403546F80C37BA5F40110C113212BF42407DE28F3E37BA5F40EE63699C12BF42403E6E655E37BA5F402868D5D912BF424025174CB137BA5F4057E9927A13BF42400DF42D5138BA5F40C34BE9AD14BF42407231B67438BA5F408A99AEED14BF4240DB9112CC38BA5F40220E168C15BF42400CE638E538BA5F406AC0CFC415BF4240F52D5AF039BA5F401FE9D91A18BF4240C57A2DDA3BBA5F40E95C870D1DBF424020A5E9933DBA5F40336E5B6421BF42406A7370E53FBA5F4097C66ED426BF4240D51EA41A40BA5F405C419AD327BF4240DF71DAE340BA5F402ED06E222ABF4240A420452441BA5F4019E752622ABF4240D479E93E41BA5F40258B9A772ABF42401EEB1CD541BA5F40C882FB062CBF4240BCC1EAF741BA5F4043962B632CBF42401654250B42BA5F40E71805902CBF424095E35F1E42BA5F40B5F4F1BC2CBF4240759C5A2443BA5F40383751FB2EBF4240676B04B64ABA5F404BA15BC543BF424036FCE6444BBA5F401FE474D044BF4240D3AFEDC24EBA5F4044A67D8151BF4240757F713152BA5F40C63520A75DBF42401659C95A55BA5F40A20CA1E466BF4240CA5706DF56BA5F408245ED4A6CBF4240ED4351BE59BA5F40A88E910D75BF424090B684075BBA5F4045B5D6D878BF4240782ADBFE5CBA5F40CE9289D37CBF4240927B55AB5DBA5F40D80E3B3D7EBF424001573E5F5EBA5F40084784707FBF42400D9BF1735EBA5F400A90719D7FBF42407BE4FA5260BA5F40B96BACCA82BF42409681952963BA5F40DAF21D7B85BF4240B3ADE5EA63BA5F405181423186BF4240C662AE2464BA5F407A9E086A86BF42405AC5C75764BA5F40B126099E86BF4240FEB90D9064BA5F40B44104CB86BF42404C9287D064BA5F40B52DB2FC86BF4240191E5FD066BA5F4081F0966B88BF4240C530E3386BBA5F40104C1AFA89BF42402EFAAFE06CBA5F40C079388D8ABF42409D7D0D2A6DBA5F40A1EBCE9D8ABF424048A7F9826FBA5F408C8ED9148BBF42403F19C58671BA5F406A3A227B8BBF4240990CDA5B75BA5F405566533E8CBF4240DC11B37476BA5F40D2B41E7C8CBF42401B92C4CB77BA5F40E86B37C88CBF4240B76B1F1878BA5F40BA568AD68CBF42409C763F0579BA5F40516D22068DBF424007532F7279BA5F40327431198DBF42408E28109C7ABA5F40005D53528DBF42403F787B887DBA5F40242929E18DBF4240A3C12A3F7FBA5F40939580348EBF42400662035B82BA5F409B5882CA8EBF424092625B4D83BA5F400127ACF88EBF424002B0471086BA5F4092766D7F8FBF4240BBF510A388BA5F40C98E91FD8FBF4240533F9DFB89BA5F407B9B733B90BF4240995574C78CBA5F405A9432C390BF424019365D238DBA5F40AF963AD690BF4240255DD17B94BA5F407EEE87F293BF4240812B972D99BA5F40F320931396BF4240B6BFE6C39FBA5F40E07D4DF998BF4240CCD72A9CAABA5F4080899C959DBF4240169F5752B5BA5F4095E56B2FA2BF4240EEB9B077BCBA5F4004ABFD4DA5BF4240951C78AEC4BA5F4088ECF6DBA8BF4240FD2BD4BFC9BA5F401FAA370BABBF42408380B657CABA5F40CB17FC4FABBF4240EAFD0E80CBBA5F40DE84D503ACBF4240B2EFA4CBCBBA5F40787A6327ACBF4240BB8FFFADCDBA5F40836056FAACBF4240E91E387ECEBA5F40F8AB5854ADBF42409E70336AD0BA5F404683A629AEBF424062FBB4C2D1BA5F402836E1BEAEBF4240A0EDD3EED2BA5F401EF33941AFBF424074238063D4BA5F40D520B4E4AFBF4240D1637FB3D4BA5F40177F4308B0BF4240E0E260B2D5BA5F40275AFE79B0BF424018D4899CD6BA5F40D348E7DFB0BF424087D7D18BD7BA5F40B6CF2948B1BF42402D5B7FA9D7BA5F40711A2162B1BF42403D8B2914D8BA5F40432CDCC7B1BF424010B7CF42D8BA5F403C497AF2B1BF4240F7BD9C79D8BA5F40B362D228B2BF42400DA5B7EBD8BA5F40B0DC6D9AB2BF4240BEC3C65DD9BA5F4052CC8A09B3BF4240DC110189DABA5F405ED07E2CB4BF4240CFF46247DBBA5F402B2D5FE7B4BF4240A17A4C79DCBA5F4092DE5C11B6BF4240BEFE2FD2DCBA5F400B3F2C64B6BF42409F5693F0DCBA5F4083E98E80B6BF424039F6467DDDBA5F40C695C809B7BF42404B3B5D53DEBA5F40E8EDDAD9B7BF42400A75915EE0BA5F402B06CF63BDBF4240C91BEA13E2BA5F40DB4CEDF7C1BF4240E0C2EFD5E4BA5F40E71D2079C9BF42403E99374DE5BA5F40BA4CC804CFBF4240C3E49574E5BA5F407ECFE9EFD8BF424072C9B707E6BA5F404679D2FA00C0424027229824E6BA5F404DEDC10D01C04240F4CEE405E7BA5F40D451DC1901C04240A2D20311E7BA5F4023431D4901C042407CF5CEC5E8BA5F4057C742F809C0424049A9D26CECBA5F400433616D1CC04240C46527FEEDBA5F4020B62D5D24C042402176DA6DEFBA5F403D7E53A32BC042400B8DDAFEF0BA5F401C39C69933C04240CDF77093F1BA5F4022A6AF8636C04240C792859EF1BA5F40C62126AA36C04240E723C48EF2BA5F40A91DE2363BC04240F0B1CC05F3BA5F40DAA7C5793DC042403F078CB0F3BA5F40D8914BB240C0424095DA2412F4BA5F4037349A9642C042405BA2D86AF4BA5F4014AF6B5044C042409622893AF5BA5F4078400D4D48C04240F62522CFF5BA5F4048ECC02B4BC04240DD2887B6F6BA5F400AE6C9994FC042403DEB97B1F8BA5F40CC4FC45F59C042407985920BFABA5F402C0A940960C042408EAA9EA2FCBA5F4040B4D8DF6CC04240515F19A8FEBA5F40EA3AA0E576C042401FADC03902BB5F40E7924AAE88C042409740D12805BB5F409897C94097C04240CC3D1DC708BB5F401E650B07A9C04240E4019BAA0ABB5F40DFC69B5BB2C04240551CCC5B0CBB5F401E3F99C8BAC042405E5EA3580DBB5F40940422AFBFC0424041F211C80EBB5F40EC6CB5D3C6C0424049468C0011BB5F407E362FCFD1C042401029B0A411BB5F40905DB1EDD4C042403B884AE411BB5F4062E64F10D6C042403465583813BB5F40DA3F0099DCC042407F73745815BB5F4022013431E7C04240D2B08CDF16BB5F40B52CBBD7EEC042404753C99F17BB5F40DEF24D99F2C042408DFC580118BB5F40D5805E82F4C042409C34E75418BB5F40E2ECDC26F6C042404D7A6BDB18BB5F40246A7BC3F8C042407870524A19BB5F407F4962F3FAC0424075A565E019BB5F40D60280EEFDC0424071B622E61ABB5F40E8F92C1703C1424000C09C1C1CBB5F406C2F732E09C142403DA34E8B1DBB5F404FBB045310C14240531773DC1EBB5F40F349C6C116C1424060E4E85C20BB5F408155B51C1EC14240CCD05F4622BB5F4070FEF37527C142405575FBE124BB5F40520C105834C142402FC9B83027BB5F403A3CB79C3FC142403C178E8D29BB5F40B212F03F4BC14240ACF9DE952CBB5F409C9EBA435AC142406F007B622EBB5F4058DD362963C142406CFCEBB22FBB5F40B5518BAF69C14240202DA72632BB5F40BC169C9975C14240729D6E2535BB5F40A017977784C14240C2C14F8639BB5F403911B54F9AC14240ADF0409D39BB5F40BC1587759AC142407308D31C3CBB5F4021AD06C19BC1424030ADCE443CBB5F404D27F9D39BC1424043B13D023EBB5F40665994779CC142407DA8434E3FBB5F409B35D4F29CC142406BFEFD9941BB5F40E65C3ACF9DC1424081B2F2B943BB5F40F31AE28C9EC142403A3867C346BB5F40E40EC3B29FC14240E6AE32124BBB5F40F73AC54CA1C1424078AC2D954EBB5F4010AAEE9AA2C1424046F8838350BB5F408CB0D453A3C1424054B0569250BB5F401621C687A3C14240149FEA5450BB5F409013FE40A8C142408629920550BB5F405D878A63AEC14240995C8D1251BB5F4086B42636AFC14240E16D5A6053BB5F400AA4F8F9B0C142407D50EEA153BB5F407EDC462FBAC142402CDD9C6E54BB5F40E7BF3440BFC14240F1F87B6B54BB5F40A3BA4959C0C14240FD9ADF4754BB5F40F5D9718CC6C14240C1F832A753BB5F40181882F0CAC142404E1947D84FBB5F40EE32A8F4D1C142402E3C01074FBB5F4082D2D87ED3C1424083317C884EBB5F40FB127A84D7C14240D85D06984EBB5F40CB28F9AED7C14240C0B2981250BB5F407E7CF1A8D9C14240B6F97AC151BB5F40EB09240CD8C14240917FE5D951BB5F40F1C3462DD8C14240B203425552BB5F40D902A5CDDBC14240FEA2AFF050BB5F40BE3AEABBE1C14240341313B950BB5F40773CBDCEE1C14240DBA4F1EC50BB5F4090EB87A3E7C14240B516854A51BB5F40856317E6F1C14240E43848B551BB5F4023808B4DFDC1424063C6528E5FBB5F400F2DB8EFFBC14240859C647F6FBB5F4035BC6CFBF9C1424001D92EAC74BB5F40ABBAE831F9C14240E368F65580BB5F4004ADC821FAC14240D080FAE88DBB5F40410AAA69FBC14240C3B16D1B99BB5F407985B07CFCC14240ADBF53C8A9BB5F409C392305FEC1424014434436ACBB5F40429F1C4FFEC1424097D6DCA9ACBB5F4052927C7EFEC14240394CB985AEBB5F404285E534FFC14240C8CD0D11B4BB5F4022D42F5801C2424030DBE340BABB5F40166E08B903C242401FA3DC96BFBB5F40C77301C705C24240CCA7E26FC3BB5F407090284907C242407E0926EAC8BB5F40F72F4B6509C24240A4FDEB40D2BB5F40334DE0B608C24240611EA3DCDABB5F409E08BD080AC242402FCB0C05DFBB5F400334009A0AC242406FAA116BE3BB5F40D5BDB7F20AC2424074A2E617ECBB5F40AD755E8C0BC242406D2274E5EEBB5F40DA08C0BE0BC24240AC6E64C8FABB5F40C3A634A70CC2424068A58A0A00BC5F4007B59B100DC242407DB3A9FA06BC5F40E064EB830DC242405CD9B95C09BC5F407EC4CA920DC242408A7054380FBC5F406F51FFC50DC2424071CC38A911BC5F40CC3976060EC24240140A07C917BC5F40831EBA6D0EC2424016ED6D0C1BBC5F40FD6B8BA20EC2424044263D301DBC5F40C99193C60EC24240DDB47A6322BC5F4040E9723810C24240EDAC490E27BC5F406FA1688B11C2424024CCB6042CBC5F4078BD69F112C2424020B22FFB30BC5F402BF9835E14C24240CA21C24B37BC5F40A3309C3F16C242406BA21D6B3EBC5F40D467535718C24240BD9A79BD43BC5F4025C2A1EC19C242409BBB097D50BC5F40B2CE82C61DC242404DAC4AC869BC5F402EBD167A25C242408E0D907D83BC5F40F3B9A04E2DC242408D2AFB9794BC5F402F0B6E7632C24240893290F3A0BC5F4022D77E2C36C242404CDC2BAFA6BC5F407EB0E4E937C24240360CAC92AABC5F408B46B71639C242406712C2F3B2BC5F409F26899D3BC24240167EDF40BBBC5F402E4601293EC24240D444479CC5BC5F40AAA4385A41C24240DF9812F2CABC5F40D209E9D93DC24240EFE886D5CCBC5F40FF6498C33CC24240A38921D2CEBC5F40B2F82A9F3BC24240E76DA02ED0BC5F40572213D93AC24240AB443D96D1BC5F405B8518E639C24240AB1F358FD3BC5F40B13E658B38C2424074DC6672DABC5F4035BB3F4034C24240A692E42BE2BC5F4085C0A2672FC24240BE889C7EEFBC5F409176850727C24240666C31F7F4BC5F406DB4269A23C24240AE5EF6F5FEBC5F40E4EEE1401DC2424073CADB7A02BD5F40523853011BC2424079BC1D0205BD5F40A522ED6619C242401DD4333B05BD5F402AD42E4119C2424064984CF805BD5F403F774FD218C24240B8CD6E5906BD5F40B6380C9C18C242401A0ED0C30FBD5F40E797759413C242407914FCF119BD5F4003E9204E0DC24240); 9 | -------------------------------------------------------------------------------- /예제/12장-st_contains_test-srid3857.sql: -------------------------------------------------------------------------------- 1 | SET @SRID := 3857; 2 | SET @polygon := ST_GeomFromText('POLYGON(( 3 | 14133753.7319204200 4494895.8380367200, 4 | 14133753.7321749700 4494895.8298302030, 5 | 14133753.7329324000 4494895.8216238810, 6 | 14133753.7343184350 4494895.8134177970, 7 | 14133753.7362073050 4494895.8053381685, 8 | 14133753.7385989610 4494895.7975112480, 9 | 14133753.7414934600 4494895.7898107800, 10 | 14133753.7419968230 4494895.7885484180, 11 | 14133791.0438697100 4494808.0103230635, 12 | 14133791.0467636340 4494808.0040114480, 13 | 14133791.0506637000 4494807.9966901790, 14 | 14133791.0550665450 4494807.9896216160, 15 | 14133791.0598464090 4494807.9829319630, 16 | 14133791.0650033370 4494807.9764949610, 17 | 14133791.0706629570 4494807.9705631730, 18 | 14133791.0766996440 4494807.9648840370, 19 | 14133791.0831133430 4494807.9595838100, 20 | 14133791.0897782990 4494807.9547887040, 21 | 14133791.0966945000 4494807.9504987085, 22 | 14133791.1039877220 4494807.9465876190, 23 | 14133791.1115321900 4494807.9431816510, 24 | 14133791.1192021930 4494807.9402807510, 25 | 14133791.1269977280 4494807.9378849130, 26 | 14133791.1350445170 4494807.9359941900, 27 | 14133791.1432168220 4494807.9346085330, 28 | 14133791.1513889020 4494807.9338541570, 29 | 14133791.1595607900 4494807.9336047940, 30 | 14133791.1678582100 4494807.9338604980, 31 | 14133791.1760297210 4494807.9346211680, 32 | 14133791.1840752720 4494807.9360130650, 33 | 14133791.1921206360 4494807.9379099840, 34 | 14133791.2000400950 4494807.9403118710, 35 | 14133791.2031826620 4494807.9414493730, 36 | 14133837.8976871690 4494825.2867733890, 37 | 14133837.9022124370 4494825.2885426760, 38 | 14133837.9097543800 4494825.2919544300, 39 | 14133837.9170447010 4494825.2958711020, 40 | 14133837.9239577150 4494825.3001663990, 41 | 14133837.9306191060 4494825.3049666140, 42 | 14133837.9370288680 4494825.3102717595, 43 | 14133837.9430613280 4494825.3159555225, 44 | 14133837.9487165340 4494825.3218916480, 45 | 14133837.9538686760 4494825.3283326090, 46 | 14133837.9586435600 4494825.3350259270, 47 | 14133837.9630411430 4494825.3420978750, 48 | 14133837.9669357600 4494825.3494221340, 49 | 14133837.9703274460 4494825.3568724580, 50 | 14133837.9732161520 4494825.3645751050, 51 | 14133837.9756018910 4494825.3725300680, 52 | 14133837.9774847000 4494825.3806110900, 53 | 14133837.9787389080 4494825.3886918770, 54 | 14133837.9796159100 4494825.3968987760, 55 | 14133837.9798642660 4494825.4052316910, 56 | 14133837.9796097860 4494825.4134381570, 57 | 14133837.9787267040 4494825.4216443870, 58 | 14133837.9774664680 4494825.4298504680, 59 | 14133837.9755776750 4494825.4379300640, 60 | 14133837.9731860900 4494825.4457569490, 61 | 14133837.9702916740 4494825.4534573920, 62 | 14133837.9672718700 4494825.4602740070, 63 | 14133793.5322600440 4494917.3948119620, 64 | 14133793.5318826000 4494917.3955693515, 65 | 14133793.5279825440 4494917.4027644400, 66 | 14133793.5237053730 4494917.4098331295, 67 | 14133793.5189254640 4494917.4165228530, 68 | 14133793.5136427640 4494917.4229598680, 69 | 14133793.5079830340 4494917.4290179770, 70 | 14133793.5020720550 4494917.4345709600, 71 | 14133793.4956582880 4494917.4398712460, 72 | 14133793.4889932700 4494917.4446664040, 73 | 14133793.4819512720 4494917.4489563980, 74 | 14133793.4746579770 4494917.4528675250, 75 | 14133793.4672391490 4494917.4562735820, 76 | 14133793.4595690690 4494917.4591745120, 77 | 14133793.4516477320 4494917.4615703260, 78 | 14133793.4436008670 4494917.4634610680, 79 | 14133793.4355541910 4494917.4648467900, 80 | 14133793.4273820260 4494917.4656011835, 81 | 14133793.4190843350 4494917.4658505000, 82 | 14133793.4109125500 4494917.4655948450, 83 | 14133793.4027409500 4494917.4648341690, 84 | 14133793.3945695930 4494917.4634422070, 85 | 14133793.3865241460 4494917.4615452720, 86 | 14133793.3787303300 4494917.4591434100, 87 | 14133793.3710624260 4494917.4562365730, 88 | 14133793.3705595860 4494917.4561101245, 89 | 14133773.5888180750 4494909.1312474940, 90 | 14133773.5817789250 4494909.1279621240, 91 | 14133773.5744885770 4494909.1240453740, 92 | 14133773.5675755300 4494909.1197500030, 93 | 14133773.5609141220 4494909.1149497070, 94 | 14133773.5545043400 4494909.1096444840, 95 | 14133773.5484718640 4494909.1039606360, 96 | 14133773.5429423700 4494909.0980244735, 97 | 14133773.5376645050 4494909.0915833910, 98 | 14133773.5328896250 4494909.0848899830, 99 | 14133773.5284920480 4494909.0778179620, 100 | 14133773.5247231260 4494909.0706199170, 101 | 14133773.5213315040 4494909.0630432560, 102 | 14133773.5183171000 4494909.0553404875, 103 | 14133773.5159313880 4494909.0473854430, 104 | 14133773.5141743330 4494909.0393043915, 105 | 14133773.5127944480 4494909.0312234840, 106 | 14133773.5120432120 4494909.0230165700, 107 | 14133773.5116691800 4494909.0146835390, 108 | 14133773.5120494370 4494909.0064770600, 109 | 14133773.5128068510 4494908.9982707150, 110 | 14133773.5141928740 4494908.9900646275, 111 | 14133773.5159560070 4494908.9819849360, 112 | 14133773.5183476580 4494908.9741580010, 113 | 14133773.5213678630 4494908.9664575610, 114 | 14133773.5235070740 4494908.9612819010, 115 | 14133775.0813205760 4494905.6121914040, 116 | 14133753.8058007800 4494895.9532106030, 117 | 14133753.8019041460 4494895.9513152510, 118 | 14133753.7947395330 4494895.9473985420, 119 | 14133753.7877007870 4494895.9431031170, 120 | 14133753.7810393900 4494895.9383028120, 121 | 14133753.7746296250 4494895.9329975850, 122 | 14133753.7687228900 4494895.9273137840, 123 | 14133753.7630676930 4494895.9213775680, 124 | 14133753.7577898500 4494895.9149364830, 125 | 14133753.7530149800 4494895.9082430690, 126 | 14133753.7487431470 4494895.9011710920, 127 | 14133753.7448485180 4494895.8939730080, 128 | 14133753.7414569220 4494895.8863963480, 129 | 14133753.7385682520 4494895.8786936320, 130 | 14133753.7361825670 4494895.8707385970, 131 | 14133753.7342998050 4494895.8626575020, 132 | 14133753.7329199330 4494895.8545766010, 133 | 14133753.7321687120 4494895.8463696890, 134 | 14133753.7319204200 4494895.8380367200 135 | ))', @SRID); 136 | 137 | SET @simplified_polygon := ST_GeomFromText('POLYGON(( 138 | 14133753.731920420000000 4494895.838036720000000, 139 | 14133791.043869710000000 4494808.010323063500000, 140 | 14133791.076699644000000 4494807.964884037000000, 141 | 14133791.135044517000000 4494807.935994190000000, 142 | 14133791.203182662000000 4494807.941449373000000, 143 | 14133837.897687169000000 4494825.286773389000000, 144 | 14133837.966935760000000 4494825.349422134000000, 145 | 14133837.979864266000000 4494825.405231691000000, 146 | 14133837.967271870000000 4494825.460274007000000, 147 | 14133793.502072055000000 4494917.434570960000000, 148 | 14133793.435554191000000 4494917.464846790000000, 149 | 14133793.370559586000000 4494917.456110124500000, 150 | 14133773.574488577000000 4494909.124045374000000, 151 | 14133773.518317100000000 4494909.055340487500000, 152 | 14133773.523507074000000 4494908.961281901000000, 153 | 14133775.081320576000000 4494905.612191404000000, 154 | 14133753.805800780000000 4494895.953210603000000, 155 | 14133753.753014980000000 4494895.908243069000000, 156 | 14133753.731920420000000 4494895.838036720000000 157 | ))', @SRID); 158 | 159 | SET @point := ST_GeomFromText('POINT(14133791.0666228350 4509381.8769587210)', @SRID); 160 | 161 | -- // Run test 162 | SELECT BENCHMARK(1000000,ST_Contains(@polygon, @point)) as original_polygon_performance_with_srid3857; 163 | SELECT BENCHMARK(1000000,ST_Contains(@simplified_polygon, @point)) as simplified_polygon_performance_with_srid3857; 164 | -------------------------------------------------------------------------------- /예제/12장-st_contains_test-srid4326.sql: -------------------------------------------------------------------------------- 1 | SET @SRID := 4326; 2 | SET @polygon := ST_GeomFromText('POLYGON(( 3 | 37.399190586836184 126.96566999365437, 4 | 37.39919052827099 126.96566999594106, 5 | 37.399190469707186 126.96567000274516, 6 | 37.39919041114509 126.96567001519612, 7 | 37.39919035348541 126.96567003216413, 8 | 37.39919029762917 126.96567005364875, 9 | 37.39919024267536 126.96567007965048, 10 | 37.399190233666616 126.96567008417225, 11 | 37.398563808320795 126.96600517259765, 12 | 37.398563763278034 126.96600519859423, 13 | 37.39856371102993 126.9660052336291, 14 | 37.39856366058524 126.96600527318054, 15 | 37.398563612844626 126.96600531611878, 16 | 37.39856356690706 126.96600536244428, 17 | 37.39856352457494 126.96600541328549, 18 | 37.39856348404588 126.96600546751398, 19 | 37.3985634462209 126.96600552512922, 20 | 37.39856341200069 126.96600558500153, 21 | 37.398563381385195 126.96600564713081, 22 | 37.39856335347378 126.96600571264696, 23 | 37.39856332916713 126.96600578042008, 24 | 37.398563308464894 126.96600584932085, 25 | 37.39856329136703 126.96600591934936, 26 | 37.398563277873926 126.96600599163487, 27 | 37.39856326798521 126.96600606504796, 28 | 37.398563262601606 126.96600613845901, 29 | 37.39856326082202 126.96600621186833, 30 | 37.39856326264685 126.9660062864053, 31 | 37.39856326807538 126.96600635981123, 32 | 37.39856327800863 126.96600643208565, 33 | 37.39856329154596 126.96600650435839, 34 | 37.398563308686974 126.96600657550009, 35 | 37.398563316804754 126.96600660373026, 36 | 37.39868710134312 126.96642606760109, 37 | 37.39868711396961 126.96642610825226, 38 | 37.39868713831747 126.96642617600268, 39 | 37.3986871662687 126.96642624149275, 40 | 37.39868719692196 126.96642630359342, 41 | 37.39868723117859 126.96642636343371, 42 | 37.3986872690386 126.96642642101358, 43 | 37.39868730960061 126.96642647520409, 44 | 37.39868735196364 126.96642652600569, 45 | 37.39868739792935 126.96642657228816, 46 | 37.39868744569606 126.96642661518167, 47 | 37.398687496164804 126.96642665468585, 48 | 37.398687548434204 126.96642668967176, 49 | 37.39868760160324 126.9664267201398, 50 | 37.39868765657296 126.96642674608948, 51 | 37.39868771334334 126.96642676752096, 52 | 37.39868777101333 126.9664267844345, 53 | 37.39868782868165 126.96642679570125, 54 | 37.39868788724998 126.9664268035795, 55 | 37.39868794671758 126.96642680581051, 56 | 37.398688005282814 126.96642680352448, 57 | 37.39868806384634 126.96642679559162, 58 | 37.398688122408835 126.96642678427071, 59 | 37.39868818006864 126.96642676730339, 60 | 37.39868823592499 126.96642674581945, 61 | 37.398688290878994 126.96642671981846, 62 | 37.39868833952557 126.96642669269109, 63 | 37.39934442498876 126.96602752618836, 64 | 37.399344430393796 126.96602752279772, 65 | 37.3993444817409 126.96602748776293, 66 | 37.39934453218597 126.96602744934046, 67 | 37.39934457992658 126.96602740640179, 68 | 37.399344625863776 126.96602735894648, 69 | 37.39934466909692 126.96602730810429, 70 | 37.39934470872529 126.96602725500505, 71 | 37.399344746550284 126.9660271973892, 72 | 37.39934478077052 126.96602713751632, 73 | 37.39934481138567 126.96602707425697, 74 | 37.39934483929707 126.9660270087402, 75 | 37.399344863604085 126.96602694209571, 76 | 37.39934488430633 126.96602687319422, 77 | 37.39934490140385 126.96602680203563, 78 | 37.399344914896965 126.96602672974942, 79 | 37.399344924786035 126.96602665746491, 80 | 37.3993449301697 126.9660265840531, 81 | 37.39934493194892 126.96602650951367, 82 | 37.399344930124464 126.96602643610527, 83 | 37.399344924695946 126.96602636269854, 84 | 37.39934491476235 126.96602628929399, 85 | 37.39934490122503 126.96602621702051, 86 | 37.39934488408437 126.96602614700748, 87 | 37.399344863339984 126.96602607812551, 88 | 37.399344862437594 126.96602607360845, 89 | 37.399285452778294 126.96584837120098, 90 | 37.399285429332515 126.96584830796722, 91 | 37.39928540138096 126.9658482424769, 92 | 37.39928537072741 126.96584818037593, 93 | 37.399285336470484 126.9658481205355, 94 | 37.3992852986102 126.96584806295544, 95 | 37.399285258047904 126.9658480087648, 96 | 37.39928521568499 126.9658479590925, 97 | 37.39928516971874 126.96584791168064, 98 | 37.39928512195179 126.96584786878716, 99 | 37.39928507148289 126.96584782928305, 100 | 37.39928502011466 126.96584779542626, 101 | 37.39928496604445 126.9658477649588, 102 | 37.39928491107428 126.96584773787993, 103 | 37.3992848543038 126.96584771644874, 104 | 37.399284796634056 126.96584770066482, 105 | 37.399284738965335 126.96584768826911, 106 | 37.399284680397365 126.96584768152063, 107 | 37.39928462092939 126.96584767816064, 108 | 37.399284562364535 126.96584768157656, 109 | 37.39928450380067 126.96584768838052, 110 | 37.399284445238614 126.96584770083139, 111 | 37.399284387578554 126.9658477166699, 112 | 37.39928433172229 126.96584773815447, 113 | 37.39928427676874 126.9658477652854, 114 | 37.399284239833094 126.96584778450227, 115 | 37.39926033932588 126.96586177857907, 116 | 37.39919140876594 126.96567065733296, 117 | 37.39919139523991 126.96567062232889, 118 | 37.39919136728861 126.96567055796808, 119 | 37.39919133663462 126.96567049473795, 120 | 37.399191302377616 126.96567043489762, 121 | 37.39919126451725 126.9656703773177, 122 | 37.39919122395525 126.9656703242566, 123 | 37.39919118159189 126.9656702734551, 124 | 37.39919113562555 126.96567022604344, 125 | 37.39919108785853 126.96567018315005, 126 | 37.39919103738989 126.96567014477552, 127 | 37.399190986021296 126.96567010978946, 128 | 37.39919093195103 126.96567007932224, 129 | 37.39919087698118 126.96567005337289, 130 | 37.39919082021067 126.9656700319419, 131 | 37.399190762540535 126.96567001502876, 132 | 37.399190704871806 126.96567000263316, 133 | 37.39919064630379 126.96566999588484, 134 | 37.399190586836184 126.96566999365437))', @SRID); 135 | 136 | SET @simplified_polygon := ST_GeomFromText('POLYGON(( 137 | 37.399190586836184 126.965669993654370, 138 | 37.398563808320795 126.966005172597650, 139 | 37.398563484045880 126.966005467513980, 140 | 37.398563277873926 126.966005991634870, 141 | 37.398563316804754 126.966006603730260, 142 | 37.398687101343120 126.966426067601090, 143 | 37.398687548434204 126.966426689671760, 144 | 37.398687946717580 126.966426805810510, 145 | 37.398688339525570 126.966426692691090, 146 | 37.399344708725290 126.966027255005050, 147 | 37.399344924786035 126.966026657464910, 148 | 37.399344862437594 126.966026073608450, 149 | 37.399285401380960 126.965848242476900, 150 | 37.399284911074280 126.965847737879930, 151 | 37.399284239833094 126.965847784502270, 152 | 37.399260339325880 126.965861778579070, 153 | 37.399191408765940 126.965670657332960, 154 | 37.399191087858530 126.965670183150050, 155 | 37.399190586836184 126.965669993654370 156 | ))', @SRID); 157 | 158 | SET @point := ST_GeomFromText('POINT(37.50249779176816 126.96600537699246)', @SRID); 159 | 160 | -- // Run test 161 | SELECT BENCHMARK(1000000,ST_Contains(@polygon, @point)) as original_polygon_performance_with_srid4326; 162 | SELECT BENCHMARK(1000000,ST_Contains(@simplified_polygon, @point)) as simplified_polygon_performance_with_srid4326; 163 | -------------------------------------------------------------------------------- /예제/12장-testcase-spatial_index.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE spatial_index ( 2 | id INT NOT NULL auto_increment, 3 | geom GEOMETRY NOT NULL /*!80003 SRID 4326 */, 4 | PRIMARY KEY (id), 5 | SPATIAL KEY sx_geom (geom) 6 | ); 7 | 8 | INSERT INTO spatial_index VALUES (1,0xE610000001030000000100000084000000575E8489CDBD5F408EAA59AD18B34240E6D28689CDBD5F4000E6DBAC18B3424032218E89CDBD5F4035225EAC18B34240B17F9B89CDBD5F405B5FE0AB18B34240D2B7AD89CDBD5F409C8C64AB18B3424078C9C489CDBD5F405199ECAA18B34240C5B4E089CDBD5F40249676AA18B34240B48FE589CDBD5F40883D63AA18B34240B8045C07D3BD5F40B30D8D2304B342409BEE7707D3BD5F402E532C2304B34240EB8C9D07D3BD5F407B1FBC2204B34240BC04C807D3BD5F4038CB4F2204B34240821FF607D3BD5F408A45E92104B342405DDD2708D3BD5F40189F862104B342407D745E08D3BD5F40C4B62B2104B34240B4AE9808D3BD5F40AEADD42004B34240DC8BD608D3BD5F402D73832004B342406FD51609D3BD5F406BF6392004B34240678B5909D3BD5F405F37F81F04B3424058E49F09D3BD5F40E946BC1F04B34240ADA9E809D3BD5F403014881F04B34240FAA4320AD3BD5F40039F5B1F04B3424044D67D0AD3BD5F405DE7361F04B34240F573CB0AD3BD5F4073ED191F04B3424098471A0BD3BD5F4012B1041F04B34240AB1A690BD3BD5F406721F91E04B3424045EDB70BD3BD5F40114FF51E04B34240D6F5070CD3BD5F40473AF91E04B3424081C7560CD3BD5F40A4E2041F04B342402562A40CD3BD5F4081371A1F04B3424053FCF10CD3BD5F40BB49371F04B342409B5F3E0DD3BD5F401A195C1F04B3424075AF5C0DD3BD5F40E6876D1F04B342404F96B8ECD9BD5F4089CDCE2D08B342406B3CE4ECD9BD5F4005EBE92D08B3424083FB2CEDD9BD5F4066341E2E08B34240494D73EDD9BD5F40C03A5A2E08B3424063FBB5EDD9BD5F408F0E9C2E08B34240293CF6EDD9BD5F40579FE52E08B34240980F34EED9BD5F4019ED362F08B342405E3F6EEED9BD5F404D088E2F08B342409BCBA4EED9BD5F409F01E92F08B34240A27DD6EED9BD5F408AB74B3008B342401D8C04EFD9BD5F40914BB23008B34240F0F62EEFD9BD5F400DAD1E3108B34240CB8754EFD9BD5F4075EC8E3108B34240C83E75EFD9BD5F40721A013208B34240C71B91EFD9BD5F405E26773208B34240D11EA8EFD9BD5F403710F13208B34240FA47BAEFD9BD5F40A0E86C3308B34240F560C6EFD9BD5F401FC0E83308B3424083D6CEEFD9BD5F406686663408B34240C53BD1EFD9BD5F400F3BE63408B3424064C7CEEFD9BD5F40A3FF633508B34240D242C6EFD9BD5F4047C3E13508B34240F41ABAEFD9BD5F4059865F3608B3424003E3A7EFD9BD5F402959DB3608B342408DD190EFD9BD5F40844C533708B3424074E674EFD9BD5F40CC4FC93708B34240BDC557EFD9BD5F4089C7313808B34240F2001E65D3BD5F405595D6B71DB34240EF5C1A65D3BD5F40C830E2B71DB34240A5BEF464D3BD5F40267550B81DB34240287DCB64D3BD5F409FC9BCB81DB3424044629D64D3BD5F404C4F23B91DB34240D96D6A64D3BD5F408AF585B91DB3424074D63364D3BD5F4036CDE2B91DB34240A5D2FA63D3BD5F4023E737BA1DB3424052F5BC63D3BD5F40A62189BA1DB3424097AB7C63D3BD5F406C9ED2BA1DB34240FEBE3863D3BD5F40475D14BB1DB34240E165F262D3BD5F40BC4D50BB1DB34240C8D6AA62D3BD5F40A88084BB1DB3424049DB6062D3BD5F40D6F5B0BB1DB342405C731462D3BD5F404CADD5BB1DB342407AD5C661D3BD5F4037A7F2BB1DB3424010387961D3BD5F40CAE307BC1DB34240C7642A61D3BD5F407D7313BC1DB34240895BDA60D3BD5F40A04517BC1DB3424030898B60D3BD5F409F5A13BC1DB342404DB73C60D3BD5F4043B207BC1DB3424003E6ED5FD3BD5F40365DF2BB1DB34240A14BA05FD3BD5F40FD4AD5BB1DB34240981E555FD3BD5F40D07BB0BB1DB3424076280B5FD3BD5F4077EF83BB1DB34240D24E065FD3BD5F405FFF81BB1DB34240FFCCAF75D0BD5F40C5B924C91BB342406FE76B75D0BD5F405160F2C81BB3424097952575D0BD5F40C959B6C81BB3424068E7E274D0BD5F40D28574C81BB3424098A6A274D0BD5F40E0F42AC81BB342401CD36474D0BD5F40F7A6D9C71BB342404CA32A74D0BD5F409B8B82C71BB342407B4DF573D0BD5F40599227C71BB342400265C273D0BD5F4022DCC4C61BB342408A569473D0BD5F40FA475EC61BB34240BBEB6973D0BD5F4068E6F1C51BB342403F914573D0BD5F406C9683C51BB342406ADA2473D0BD5F4002790FC51BB3424008C70773D0BD5F40D76C99C41BB3424012C4F072D0BD5F40F0821FC41BB342406CD1DF72D0BD5F40A9AAA3C31BB342401D82D272D0BD5F40F2D227C31BB342401B43CB72D0BD5F40DD0CAAC21BB3424085A7C772D0BD5F4000582AC21BB342407B52CB72D0BD5F40A193ACC11BB34240BDA0D272D0BD5F40CECF2EC11BB3424035FFDF72D0BD5F40F90CB1C01BB34240DD00F172D0BD5F40053A35C01BB342407F120873D0BD5F40B746BDBF1BB3424031342573D0BD5F40AE4347BF1BB342407CD63973D0BD5F4018F2F7BE1BB3424006DDEBADD0BD5F404CFF79F61AB34240ECFC4C8CCDBD5F4037BF3EB418B342401367278CCDBD5F4034B321B418B34240B64BE28BCDBD5F40D0ACE5B318B3424025679E8BCDBD5F409BD8A3B318B342405C265E8BCDBD5F409E475AB318B34240E952208BCDBD5F40A9F908B318B342409759E78ACDBD5F4077DEB1B218B3424061CDB08ACDBD5F40F6E456B218B34240F6E47D8ACDBD5F40B32EF4B118B3424084D64F8ACDBD5F40819A8DB118B3424034A2268ACDBD5F40133921B118B342404F11018ACDBD5F40E4E8B2B018B342408B5AE089CDBD5F4073CB3EB018B34240A47DC489CDBD5F4074BFC8AF18B34240BC7AAD89CDBD5F4089D54EAF18B34240B0519B89CDBD5F400BFDD2AE18B3424069028E89CDBD5F40532557AE18B3424072C38689CDBD5F40385FD9AD18B34240575E8489CDBD5F408EAA59AD18B34240),(2,0xE6100000010300000001000000800100008B0AEB838FBD5F40D870C229ADC142407B44EDC58FBD5F4049FF53E5ACC142401CF49CFE9ABD5F40D242B6709DC1424055020231A4BD5F4075BA8CA98FC142405DA2F945B0BD5F40684371707DC142401C549B64B3BD5F40FA8814A078C14240F911E73DB8BD5F4081C2107F71C142400723B64EBEBD5F40A62E256068C14240864A3A25C2BD5F4033731D7262C14240F6E910B2C2BD5F407E779FD861C14240C9697060C6BD5F4012E822475EC14240E7732C18D9BD5F408894070F4CC142404E7A42FDE0BD5F401CAD2A5044C142402E802608E2BD5F4037FDEC8943C1424040E30C52E3BD5F400705E79642C14240660FCA18F3BD5F40D9C5DE123AC1424061FD34A1F9BD5F40FE54C19B36C142405593FB0C02BE5F4048D10D2132C14240E4F8C7AF09BE5F40FC3D03002EC1424073A3A3940EBE5F404A0122562BC14240E2B7C39D10BE5F408248553D2AC14240CC1A0FC612BE5F40C73BC21829C14240FB8A747814BE5F4058FB903128C1424075588DAD15BE5F40C0EE5C8C27C14240DF9E1BFF15BE5F40CA44EE6127C142402D5A1E1616BE5F404EE6BB5327C14240BFA57A7616BE5F4075176A1627C14240211A45B517BE5F4081D4F22026C142405AF1B3FA18BE5F40B668B92625C14240C64646341ABE5F40B706993324C142407429A4571BBE5F40A8DD025123C14240E6ADD8721CBE5F400071F17722C14240DF26FAFD1DBE5F407994114521C142405F96CAE420BE5F4017A528051FC142400CCC06EC24BE5F40D89EC2E91BC14240B7D071D232BE5F40CF48592E11C14240EDD374963EBE5F40E8194F1208C14240B67AB9834EBE5F40B79176A4FBC0424084699BFA56BE5F4012CCD213F5C04240241BCFFF54BE5F40A9763086F1C042403671CA4F4BBE5F40FC6A7E73E0C04240529B14E546BE5F4068529796D8C04240A1EDE0EC45BE5F401D8D1DDFD6C042407A45E7AD45BE5F4046962170D6C04240918FFCCC3FBE5F40EDBFDC60CCC04240B8C2041441BE5F40B7C3366DC9C04240DAAA05603CBE5F40C299ABF7BFC04240AAC32DBF3BBE5F402D6CFDA3C0C042407DC357603BBE5F40366BA5E4BFC0424035936C043BBE5F408E8C1FA0BFC042408AFAD4543ABE5F409FF49A50BEC042403905CF433ABE5F40E355912FBEC042409753FE7D37BE5F401AFA53F6B8C0424095B9E24737BE5F40F7BDED9EB8C042402454115A36BE5F40060ECC1DB7C04240B2D87A5735BE5F40195D4879B5C04240E747464135BE5F404E8751A2B4C04240DD8C5F3835BE5F4085FC484DB4C042403ACD223935BE5F4018E4633AB4C042408D919F3D35BE5F40BDB355AAB3C04240E241165635BE5F401D55F2FDB2C042407BE0BD8A35BE5F40F80D8EFBB2C04240AA53306035BE5F40656B208FAAC04240911B864E35BE5F40EA1EEF29A7C04240D68BF43C35BE5F40790BA3BDA3C0424055A9612835BE5F40BF617DB59FC042401A3AD12F35BE5F40F02EA5FF9EC042409D6AB57634BE5F40C3C8B5829BC04240A7E81FE034BE5F400786946B98C04240D14079ED34BE5F406351590898C042402E9CD0692DBE5F401195C2AE8EC04240D65BEF5D29BE5F40241DD1B989C04240B3427C5426BE5F40358AD87588C04240691F5BF422BE5F40E134529886C0424005BBD27E21BE5F40F5E5323086C042405274F63716BE5F40AC919EF385C04240C99BBD6715BE5F40EF14A1B484C04240DAE8539810BE5F409A0B02847DC04240784D870B10BE5F40D77CDFD97CC04240919E941A0DBE5F407B9635437BC04240CBAEDD020DBE5F40DE0210357BC0424028E1E6860ABE5F40A93EB1127CC042405B52F071FFBD5F40B370900E77C04240DE565E00FBBD5F40CDB4A30875C042408F39E368F6BD5F40A1F5A30D74C042409CB987AEF4BD5F4030C4000172C04240B07DBA56EFBD5F40E1FD86A26BC042404CB6EB1CEFBD5F40D15B045E6BC04240A4CD814DEBBD5F408136EC876BC04240152582EFE8BD5F40C6B20EF466C04240D918EE38E7BD5F40E853DAA363C04240355EA5D5E6BD5F401FB127E262C0424010EDF120DFBD5F40391828A05EC0424024289F70DCBD5F407E53FAA05AC042400CABF9C8DCBD5F4003A26DBB57C0424078A78BABDCBD5F407AFEF0E354C04240E75209AADCBD5F40CC5D26BE54C042406609956ADCBD5F40DDEE55C04FC0424071A8A3FADABD5F40EAEB754F49C04240D9671C29DABD5F403097548945C042405C8186C5D4BD5F40088609D93DC042402D5E088FCBBD5F40589DBF3534C042409DD03C69CBBD5F40410E840D34C04240604DE492C8BD5F400248436128C04240CADAEBF2C7BD5F405FBE4D7826C04240B079A953C7BD5F4083C19C9124C042408D736F0EC8BD5F40162E6AE424C042400569C310C8BD5F40849EBF4B23C0424068DD8A0DC5BD5F40AF7003EF1DC042409B810975C4BD5F40672986FD1AC04240E3D1A2D2BDBD5F406B852E7E16C04240F5086B20B8BD5F40D14C8DE310C042408589A46BB7BD5F400676D34210C0424075EEB03DB7BD5F4012BCE61510C042407F2FD9D5B3BD5F40DB4E184008C0424072EB8086B4BD5F4091474F4D04C042403BA091A0B2BD5F4046E0185A00C042406A30E753B1BD5F40169F9A6EFEBF42402BFDFDCEADBD5F40A3870896F9BF42408ED57B3EADBD5F40E9A35B4AF9BF42402FD608ABACBD5F40F73CAEFEF8BF4240A2249860ABBD5F40CDA6C42AF7BF4240063CEA10AABD5F4085D1E868F6BF424070F5B407A7BD5F405546A269F2BF42406FE6CBF6A6BD5F406E07B09AF0BF42403A1CEA8DA6BD5F4008F5ADEBEABF42406F7BB5A2A3BD5F40D27D1746E2BF42408FA0DE57A3BD5F403B33676AE1BF42409177C824A3BD5F405CF434B9E0BF42403C23EDB7A2BD5F4053485546DFBF424038EEF71AA2BD5F40B6410E2EDDBF424007230AADA1BD5F40C6EDC3ADD5BF4240EF215A4FA1BD5F4019C1B454CFBF4240994D70C498BD5F4012E2E015C2BF4240965FC26397BD5F40133CEA54C0BF424051148B0796BD5F40CE7D5383BEBF4240828B346494BD5F4020A34953BCBF424034F10F0A94BD5F403950896EB8BF424071DD6EBF93BD5F40B6516F31B5BF4240773E414293BD5F4025F0FEE1B3BF424017C11D6290BD5F408CACB936ACBF424020B270668BBD5F40083E33E4AFBF42408203D33D82BD5F404E71EBA5B6BF424033E9E73482BD5F40C47A99AAB6BF424099FFC7307EBD5F40B82AC569B9BF4240B899BD2072BD5F400A7285A9C1BF4240C1819B196EBD5F409C0EBB90C4BF4240E6DE3E596CBD5F409416F66CC4BF42405BE98E706BBD5F40A569F93FC4BF4240B0CA6E6D67BD5F407BDD2C7BC3BF4240A037C5E866BD5F401F0DF26CC3BF4240A53B22EA64BD5F400A0DAE3FC3BF42402491E3D364BD5F400A1A523DC3BF42407BC416C564BD5F40A7F9FE41C3BF4240F05E6C9364BD5F401C208352C3BF424019A92B7D64BD5F4063F97E6CC3BF4240D477027564BD5F406B0EF075C3BF42401F9DE5D864BD5F40094F4525C6BF4240653A70E564BD5F40B39E8488C6BF4240A0F3795D65BD5F4087F4CB5AC7BF4240FFCA5D8B65BD5F409EE2DBAFC7BF4240B4D8FCB965BD5F40DF92CC0FC9BF4240DD1136F964BD5F40B38FF4E8C9BF42402B5513DD64BD5F40ABF19E07CABF4240F2E56FBC64BD5F40886C911ACABF4240A0C4BC7964BD5F40C7113C40CABF424069074F4764BD5F400EA6F55ECABF42404FB9A01864BD5F40DEC2447BCABF4240CC965C9D61BD5F40B34FB6F4CBBF4240C8E5380160BD5F400572F951CDBF4240D8E590515FBD5F406C24888ACDBF42401832C73C5FBD5F40576F69B7CDBF42408508D4DA5CBD5F40A7279309CEBF42400AA8F9F657BD5F401E51A21ACFBF4240C54FEBD556BD5F40BE8CA82FCFBF424006882C1856BD5F40A01EF76CCFBF4240524B0D2855BD5F406D4D5EB8CFBF424091C0F92651BD5F40A24B4D57D1BF42401FCFEF6950BD5F40EDC015A5D1BF4240E0C2337E4FBD5F404731D540D2BF42401CD750A14EBD5F408AA27CD5D2BF4240E212D84B4CBD5F409541BC5AD4BF4240E577899749BD5F405A6B481DD6BF4240DC756FF547BD5F402CEB7838D7BF4240F16414CA45BD5F4084B59BA6DABF4240FF050ADF44BD5F40C29B4E19DCBF4240479833283FBD5F40405A92FBE3BF42409485FADE3DBD5F400F3141CAE5BF42404061CC513BBD5F40DD209860E9BF4240D05C32FB39BD5F40740038D2EBBF424079CCA1AC36BD5F405B37DDDCF1BF4240FA54C50436BD5F4083B5840FF3BF4240AE81BCA835BD5F40C107907DF4BF4240D9B6901635BD5F40C799C1BDF6BF42404F541B0F34BD5F4092334545FBBF4240391892B733BD5F40DE30E6CAFCBF42409206C78833BD5F4078AF65B9FDBF42404C594E0E33BD5F40E0DB9B2D00C042408FFBDADD32BD5F4077F7F68603C04240A3B839D332BD5F408709DB4507C04240FAB7D7DE32BD5F40E0B03A640AC04240ECF70EE132BD5F40F4F70C910AC042402CAF973033BD5F4080E3A1D910C04240E2E4053233BD5F40F790E65D11C04240FE3C2A2C32BD5F40062B91C714C042407FBF84F131BD5F40AB1229A315C04240AEE336F830BD5F40893F7E3E19C04240477520D330BD5F40E404D6C919C042402DFF917B30BD5F4077EBFCF01AC042405AF44C3D2FBD5F401DFE521C1FC0424056F6CA552EBD5F40A1F5389422C042407458FA1B2EBD5F40F092C91A23C0424001E3BFEB2DBD5F40F011E29023C0424062AA239D2DBD5F409FE3385724C042409A7E71E12CBD5F40C02E752F26C042402A32E2B22BBD5F40E51CE6FA28C04240B295406325BD5F409C767F623AC04240651635FC1EBD5F40B7DF454648C0424060F2798523BD5F405E12C7EA5CC042403DF3DF7223BD5F4093D9EC9B5DC042403DDC932922BD5F40545A63AF69C042402D6686FE21BD5F4070F455A76AC04240156B3A9221BD5F404F9CC8E36BC04240B4FA932C21BD5F404010440D6DC0424031DB78F020BD5F4082639EB96DC042400ED7F61F1FBD5F40A0868E2C7EC042407506411C1FBD5F40FF88A84D7EC04240EC30E9531CBD5F40E5D82CFE7EC04240CB65060815BD5F403A53068080C04240BC38A17909BD5F40CE20A2D28DC04240E920331507BD5F40DC0FB49690C042402A3AD64A07BD5F40CCAC57F595C042401D29756A07BD5F400256131699C042404926138A07BD5F40D86699429CC04240F2CC0C9807BD5F40116FEFA49DC0424065C3F7B607BD5F40499B97ABA0C042402C26D9BC07BD5F4081912D45A1C04240006E84C007BD5F403C2100A6A1C04240C335A10708BD5F40ECA8FB27A2C04240D853D11D08BD5F40C7B8CA4DA2C0424051ED554B09BD5F4070D00072A4C04240A8CF0E000ABD5F4007BB0EB8A5C04240E603728D0CBD5F408598F757AAC042401FBF2EDE0CBD5F400D156FEAAAC04240F495B3FE0CBD5F40247119C6ABC042407ED315000DBD5F408FCEE66CADC04240C43F7DE40CBD5F403159D007AFC0424067DF02E30CBD5F400A35781FAFC042405DE4339B0BBD5F40B2C853C0B1C042409FC120D50ABD5F40BC7C56D8B3C04240577F4ADA0ABD5F40BC63ECEFB3C04240D0CBADE80EBD5F40CDABE893C6C0424081986EED12BD5F409633DD79D9C042407E28193E13BD5F40BFD3D5F3DAC04240A156AADE13BD5F40774017FDDDC04240253ED71F14BD5F401177EA34DFC04240B7504B0215BD5F4084779B7AE3C042404C34DE0316BD5F409FEE3755E8C042406A1D2C3616BD5F404D417341E9C0424082CA17F018BD5F4062F78D04F6C04240ECE3D68018BD5F40CFC6C2C3F6C04240FAE25D5418BD5F40D2604E0FF7C042403ED200BE19BD5F40E9C78C00F8C04240D5C23D631ABD5F4011C8A26FF8C04240AA0895941BBD5F402EE19F38F9C04240E7541BDF1CBD5F403A969A14FAC042405F4463131EBD5F409BB547E2FAC0424047FE9B4A1FBD5F40CD7E60B2FBC042409C4442AC1FBD5F4094278D66FEC04240E4807EBC1FBD5F40E47047DAFEC0424032A373D31FBD5F403C45E87AFFC0424041BAE4E81FBD5F4051016E1400C142409D8B051320BD5F4000E9AE3B01C142408544433A20BD5F40FC37B24D02C14240B37C56E420BD5F40613BA7F606C142409BBCF56A21BD5F404E812EA50AC14240C6A10D9B21BD5F4050CD92F40BC142407F1D055F22BD5F40ED956D5A11C142404D04FBBC22BD5F401E72D6EF13C14240B661C4F022BD5F404DA3E35615C14240ACF2E60923BD5F404144120816C142408EF63D8023BD5F4029FB364519C14240354185A123BD5F405DDD532A1AC14240FA81F0CA23BD5F4046F3E44C1BC14240960A14E423BD5F40E1D035F21BC142409E2D9A3D24BD5F4089EECB401EC14240E779499C24BD5F403A7F6AB020C1424040BD616224BD5F407DAC09AD21C142408234284924BD5F40880D771E22C142401E8CABFF23BD5F401234F86123C142409F2188C623BD5F40F9E5AA4424C14240052DAEE522BD5F40489C5BC827C142400C9310BF22BD5F409DE92C6428C14240BA48A18922BD5F40DEEE153B29C14240D1C1222124BD5F40113400EE2AC142409A5824D425BD5F40B7DA2CD02CC142401E03D26626BD5F404DB3E6702DC142407D7A64A827BD5F40259AD2D52EC14240C9B627CD2ABD5F404FA407B531C142401E08D93A2BBD5F4069E6B92132C14240DD67363E2CBD5F408225042133C142401FC4E0552CBD5F40DAE7453633C14240037C5FE92CBD5F40FC0F50B833C14240C84A21332EBD5F40327850CF34C142407686814A2FBD5F40E14DF6EA35C14240B966D0AA2FBD5F40EDEA4D6F36C14240EA97C2C12FBD5F40A87C8F9E36C14240C0CC02EC2FBD5F40368347D736C14240533EC36132BD5F40DB0B6E813AC14240C0E74BDB32BD5F40F1CCEC2D3BC14240EDF82F8A33BD5F40806367643BC1424060C5303634BD5F4023DDB7E93AC14240632DB60237BD5F40BCBE52F33DC1424047F7CB1337BD5F409D50C1DB3DC14240B042190938BD5F405739B08A3EC14240EBE9E0AC38BD5F405EF29AE43EC14240BA181A463EBD5F4082940DAE42C14240B1492A2343BD5F40EE71A21D46C142404C7DC8BB43BD5F40284D1FA946C14240CC14B7A547BD5F40D4C4969649C142403156E40E48BD5F4087FA18CC4AC1424038D9344748BD5F4025A901BE4AC142402C5B35014ABD5F40DD65C33252C142408724101E4ABD5F40B8B59AAD52C14240AFBA796A4BBD5F40F8EC575358C14240A5722C934BBD5F4033BBCD0659C14240663C500D4CBD5F40B9F983285BC14240E8B2AF504CBD5F406C36C94F5CC14240FC47AAC54CBD5F40530777505EC142405A5A49F44CBD5F40AC1E961B5FC1424016ECFBF74CBD5F401E6D09255FC1424099D010BA4DBD5F40BFDEE0F860C142409D95E2404EBD5F407530184D62C1424076B9424B4EBD5F403E28577C62C14240A9B831874EBD5F406323438763C14240BA287EF84EBD5F40EFA8BA4565C14240CF24E3604FBD5F404DAC9BD266C142409C1BE1E94FBD5F4075D839ED68C14240764EF31F50BD5F40DEC4B61069C14240F1A51B2850BD5F404F1DD31769C14240070D378050BD5F401C7501386AC1424012B06E8250BD5F40FE3B8F626AC14240858DD5A550BD5F403FB1AEC86CC14240D4B7A3FE50BD5F40A26821BB6EC1424038B9870751BD5F4016DFF41B6FC1424063212D5D55BD5F400408F2656FC1424054A9ACFF57BD5F40A999E46F6FC14240F94B03585DBD5F403F491CB36FC14240652236285EBD5F40AF728A3671C14240FA40A4E35EBD5F4047CCA89672C14240C2A51DCB60BD5F406611921F76C14240AD211C3962BD5F40F50DEFD378C14240C037461D63BD5F408FCCCB737AC14240006827F265BD5F40919246317BC14240F4EE764166BD5F4058B45C527BC14240AD70EB4C6ABD5F407FCEBF487CC1424025361A096EBD5F405B106B417DC142405D70BD4E6EBD5F40B23805527DC142408823CFDD6EBD5F4019D7E9777DC14240228A8AEE6FBD5F40FA4A45297EC142407F1BFC1A70BD5F403B36A5457EC142409ABC363470BD5F40C195C4667EC1424045F3739D70BD5F4056D0CBD57EC14240E45813FA70BD5F40AD7A713B7FC14240D5D6B1E571BD5F40346A0A2380C14240039584F072BD5F402BAE493581C142405E5F40BF73BD5F40AA0BF80982C1424050ECCD2174BD5F406CB69E6F82C14240AC3ACFA774BD5F404DC692A684C14240A881D11975BD5F4098D47B8886C142405287CD4175BD5F407F65415187C142404D92E34C75BD5F40DC2A9B8787C142400F59F65D75BD5F402F75839A87C142409202E2F277BD5F4073244C428BC1424008D5420078BD5F400F904E428BC14240468D75807ABD5F400C1313D08EC1424032DEEDC07CBD5F4047BCD7EE91C1424035A0693D7DBD5F40BD3A04A092C14240A789E2A87FBD5F40E9B3BC2696C142401DC6DBC682BD5F4018A8E7A79AC14240713E1F5188BD5F407A58AEA8A2C14240E9104AFC8ABD5F405CC19992A6C1424079871A6B8CBD5F408E1C9BA8A8C142408B0AEB838FBD5F40D870C229ADC14240),(3,0xE6100000010300000001000000840000001E6B5997BFBD5F408F39340F2AC042404F541DE1BEBD5F4098E067B427C042400D5997D5BEBD5F40EE8827A827C04240C63AD1CFBEBD5F4021C2177327C04240A9FF014BBEBD5F40D4D8ED9E26C04240FCD13B14BDBD5F40944D58F527C04240BE480373BDBD5F407B362F9625C04240D03D9A7FBDBD5F40F4679F4525C04240A74056BFBCBD5F407BA849CB24C04240307C1A0DBBBD5F408CEDEAB623C042402B1988EAB8BD5F40DE3BDAE225C042402F528B97B8BD5F40423DA38C25C042400813C835B7BD5F403D5F1EDA24C04240DBB941B4B6BD5F40D216BC9824C04240F9DDA97EB6BD5F4016E8B77D24C042403A71A058B6BD5F40DE110B6A24C0424010CB5662B6BD5F40E67F9B9824C04240A74F1594B6BD5F404C22478E25C042407A314098B6BD5F40304809A925C04240026E64B2B6BD5F4039EE4B5126C0424012016EC9B6BD5F4053080E4E27C0424007186E5BB7BD5F40AA95DEFB39C042403503FDF2B7BD5F4023399D9D3DC04240F50E0309B9BD5F40D905255D64C04240B5D909C9B9BD5F40455C70B265C042405A2F283BBABD5F408AAD82D965C04240F2895F17BBBD5F40C0E72E3966C0424057193A11BCBD5F40C739AABE66C0424036914DDEBCBD5F4065C3654167C0424099695EB8BDBD5F4029E598E267C0424010BE02A7BEBD5F40AC3592AF68C04240A71235BABFBD5F40F51F20C569C0424097B606B3C0BD5F40EAE597EB6AC04240029E9680C1BD5F409D0725036CC04240A3AA1545C2BD5F40E4561A336DC0424050125321C3BD5F402DCD94BB6EC0424037F13628C4BD5F40D9EA0CEF70C042405E391323C5BD5F40FEE44E9A73C04240ADC207D7C5BD5F4047C6761D76C0424029587536C6BD5F4064ED92D477C0424032594E91C6BD5F40BAA041FA79C04240112E8CA9CABD5F403E8A65C297C042405360631ACBBD5F40D2711D399AC0424063B22786CBBD5F404CAE14E39BC0424051C7AEE1CBBD5F40EBCE1C0B9DC04240723D724ACCBD5F40E3AA502E9EC04240D8DC47DBCCBD5F405DC4C4859FC04240A14E4FF3CDBD5F406310649BA1C04240D01E1A79D3BD5F40055F22D3AAC04240671259C3D4BD5F409491E940ADC04240561B88DCD5BD5F403DBD15E9AFC042406E58B7BBD6BD5F40C8747D52B2C04240DA44119ED7BD5F40973B1AC7B1C04240270D8A8ED7BD5F4088F99443B1C042405C132CB6D7BD5F4064CD01DFB0C04240D4F4E8E9D7BD5F4030EC7A55B0C04240A101E4ABD6BD5F4077794982ACC04240CE336AA1D6BD5F4075F00162ACC04240DFA73575D5BD5F40DFC324B9A9C042402062666AD5BD5F409A19A6A0A9C0424095E7639CD4BD5F4017CDC8D4A4C042403DDC2E33D4BD5F40DF1AB361A2C042401E23B41BD5BD5F408A1457FCA0C042407B46EB46D5BD5F40BB87072EA0C04240C163C8CCD5BD5F404781879D9EC042402A0455DED5BD5F400A90DAA59EC04240F9FAE7C6D6BD5F40D821BA5A9CC04240CA034102D7BD5F4096D587799BC04240387CDF0FD8BD5F40279C2E6C98C04240F2CD1DFCD9BD5F40F51F3CD792C04240DC46BFB1DABD5F4069F92AA493C0424020A5A5D0DCBD5F406B1E75B08FC0424034C89D87DDBD5F409CB3EFE891C0424002F9A658DEBD5F406A56D85491C042409A83E5BDDEBD5F408DA12D0D91C04240F98DF5ECDCBD5F403FD0BB3B8AC04240DAD06DA7DCBD5F40120C17E186C042401127FA42DCBD5F401D7A5B0385C04240B3C60639DCBD5F4001353FD584C04240580BD5C6D8BD5F40DCAE632D6CC04240EE71F4DCD4BD5F40B05C70C066C042403BB191A5D4BD5F405AD4B07366C042408AD4609AD4BD5F4013DDCF6366C04240AACAD07DD3BD5F405678D2D764C04240D38AEA38D3BD5F405F63DBAC63C0424045D63537D3BD5F4054985FA563C0424080171828D3BD5F407636E96363C04240A8CDB3A2D2BD5F402700552161C0424076758800D3BD5F40EDFDB04460C0424075F782F9D1BD5F40B51E2E145DC04240E0036CC6D4BD5F408667C2A558C04240F140A809D4BD5F4014D9B92E51C04240F333B6DAD3BD5F401EB52CF150C04240C7E76F9FD3BD5F401DAD5DA350C0424011F172E7D2BD5F4018D951B14FC04240F05602DED1BD5F4028D600DD4EC04240A3F12C2AD1BD5F405A6C013F4EC042405313BFEDCEBD5F40A81B0E544DC04240FB0372C5CDBD5F40E52E8BC14DC0424047E1D016CBBD5F40EA1D54CF4EC042403EE01AF0CABD5F4054EB1FE24EC04240F439CB79CABD5F404F79040B4FC042406114D548C9BD5F403CD8C5234FC04240987952CEC8BD5F4028CAA3EE4EC042405D232211C8BD5F4097AE447F4EC042409F59C8FDC7BD5F403735FA744EC04240CB2E420FC7BD5F40F0E454504DC04240B00836F8C6BD5F4049D709394DC0424000F173AFC5BD5F40CF93758B4BC042406222FC8BC5BD5F40F02161564BC042403CEA3459C5BD5F40AD99A3F34AC042403E9089A2C4BD5F40D2103E6C49C042401E162544C4BD5F4053C8EDA148C04240E0A4AF16C4BD5F4073C39A2348C042403EC49B7FC3BD5F407D12C69B46C0424018A5D64CC3BD5F404970141846C04240F31E481BC3BD5F40504AC52345C04240491B93D9C2BD5F4083A73F0743C04240CFCA841EC2BD5F40C7A9CD983FC042408F61591AC2BD5F405574D4853FC04240D1E7345CC1BD5F40308754273CC042409B66532EC1BD5F40B02F3A123AC0424029ECE431C1BD5F40DFC1D86038C04240F16F9D5CC1BD5F40F24E216036C04240958D0859C1BD5F406B03D23D35C04240C0E35B43C1BD5F40D73D22EB32C04240354A8E31C1BD5F40037FABA531C04240A9B645F2C0BD5F40ED93B67A2FC04240C08250C1C0BD5F40782D970F2EC042403DEBA43FC0BD5F40F32A13542CC0424079B04BDEBFBD5F409C8CEA0B2BC042401E6B5997BFBD5F408F39340F2AC04240),(4,0xE6100000010300000001000000BB0400007914FCF119BD5F4003E9204E0DC2424019EB12A827BD5F40050097C702C24240A5CE47C127BD5F4062215F9802C24240CEEB827E2FBD5F4032D3D439FCC14240CEFF921239BD5F4063A29953F4C142400CCF803B44BD5F4003F6AB0DEBC142405CE3A16647BD5F40F288296DE8C1424022DD7F9349BD5F40949B70AAE6C14240468E43774DBD5F40DD6FB17EE3C142409DC535E250BD5F40283BBFB3E0C142405C8C16ED51BD5F408FC64ED8DFC14240744DBC7A52BD5F40C758F766DFC14240F6C87E5754BD5F40D8786AEDDDC142400146DAC156BD5F40F8145C07DCC142400DB1CB985BBD5F40E9356836D8C1424084B64F7B5EBD5F40AE0FD3C9D5C14240C75904A261BD5F408934C41FD3C142405818810269BD5F4044965AF0CCC1424025169C746DBD5F401AF06840C9C14240C8B7018A71BD5F40CFBCED4AC6C142402A245E7373BD5F40DB2922F0C4C1424036CD455C7EBD5F402069A728BDC142401472B12284BD5F4084F3AEFBB8C142403F8BDB088BBD5F4022DE95C3B1C142408B0AEB838FBD5F40D870C229ADC142407B44EDC58FBD5F4049FF53E5ACC142401CF49CFE9ABD5F40D242B6709DC1424055020231A4BD5F4075BA8CA98FC142405DA2F945B0BD5F40684371707DC142401C549B64B3BD5F40FA8814A078C14240F911E73DB8BD5F4081C2107F71C142400723B64EBEBD5F40A62E256068C14240864A3A25C2BD5F4033731D7262C14240F6E910B2C2BD5F407E779FD861C14240C9697060C6BD5F4012E822475EC1424017E624C0C7BD5F409992D2F05CC14240E7732C18D9BD5F408894070F4CC142404E7A42FDE0BD5F401CAD2A5044C142402E802608E2BD5F4037FDEC8943C1424040E30C52E3BD5F400705E79642C14240660FCA18F3BD5F40D9C5DE123AC1424061FD34A1F9BD5F40FE54C19B36C142405593FB0C02BE5F4048D10D2132C14240E4F8C7AF09BE5F40FC3D03002EC1424073A3A3940EBE5F404A0122562BC14240E2B7C39D10BE5F408248553D2AC14240CC1A0FC612BE5F40C73BC21829C14240FB8A747814BE5F4058FB903128C1424075588DAD15BE5F40C0EE5C8C27C14240DF9E1BFF15BE5F40CA44EE6127C142402D5A1E1616BE5F404EE6BB5327C14240BFA57A7616BE5F4075176A1627C14240211A45B517BE5F4081D4F22026C142405AF1B3FA18BE5F40B668B92625C14240C64646341ABE5F40B706993324C142407429A4571BBE5F40A8DD025123C14240E6ADD8721CBE5F400071F17722C14240DF26FAFD1DBE5F407994114521C142405F96CAE420BE5F4017A528051FC142400CCC06EC24BE5F40D89EC2E91BC14240B7D071D232BE5F40CF48592E11C14240EDD374963EBE5F40E8194F1208C14240B67AB9834EBE5F40B79176A4FBC0424084699BFA56BE5F4012CCD213F5C042407DA11D6657BE5F40C85430C1F4C042400FDFBEAF68BE5F4042E3344DE7C04240DD2573756ABE5F4071D8D9EFE5C0424089AC1B246CBE5F401F741F6EE5C0424012D7CDA56CBE5F408E4C0C60E5C04240139B087D77BE5F404100A9F2E1C0424047B0406684BE5F408ABAF6D1DDC04240BE7DBB3E8DBE5F40ED8B8F02DBC04240A13967FD92BE5F406D3E7A2FD9C04240A3FA0CBE96BE5F40036F8C01D8C042405D9D99599ABE5F4072680CDDD6C042400F7E46A29ABE5F40CD8D49D1D6C04240F595BA3BA0BE5F40E51250C1D6C04240CE793D9FA2BE5F40F01587BAD6C042409AF46B60A4BE5F40B0BCF1B5D6C042407C3621AEA7BE5F405379D4ACD6C042400596EC6DB3BE5F401835E38CD6C04240F4FEB8EEBEBE5F4090043368D6C04240A674CEEDBEBE5F409C511DDFD2C0424026C5C2ECBEBE5F4002FAE0FACEC04240013417E7BEBE5F4095F695C8C7C04240C3D207DFBEBE5F405A819F4CB1C042405B5500DBBEBE5F40FB0E0861A5C0424094C03DD8BEBE5F400F7E265CA0C04240D7B4D6D6BEBE5F40F6278C289DC0424014EAC0D4BEBE5F400CC2832799C04240D0CA1BD4BEBE5F4074CC214F97C04240085A62D3BEBE5F40C22E7E5996C04240A6F722C0BEBE5F40029C240996C04240F4E4CC0ABBBE5F40BFC2C94292C04240CECAC7BABABE5F40A8556A2692C04240B7E68C26BABE5F40700077F991C04240F88F4034B9BE5F402821754C8FC04240B4B4BBAFB5BE5F40F60491558FC04240B6DF6C9DB5BE5F40BBC3E0DD88C042403775C376BABE5F40A470C74D79C04240BEF8DBC7BABE5F40FFBF81B470C0424018E3DCC4BBBE5F40848D9F4969C0424041D7A490BDBE5F40A4EAD09061C04240130E26AEBEBE5F40BA6C78C15DC04240A2CDC1D5C0BE5F40C0441BB858C04240461A2A1CC1BE5F409448355058C04240F1B91D36C1BE5F400222C52C58C0424091DB6C3BC9BE5F40D457531C51C042406C59AA9DCDBE5F40ACCCDA4A4DC04240BD276CEBD0BE5F40F3CDEB6E4AC04240D3C004B3D3BE5F40EDB2620448C04240DCCBCE3ED5BE5F40093AA5AB46C042408D14426BD8BE5F4010EFC4E943C04240D961B76BD9BE5F40DAC9740943C04240CE063284D9BE5F40031AE2F142C042407A3CE145DCBE5F40B0B934DD3FC04240661C2CFDDEBE5F40105313D93CC042403BDA8AC0E3BE5F4052B61F7637C0424099CC2E20E4BE5F40CB938B0937C04240DDBE3E42E4BE5F40780EC4E336C04240D7A4910FE5BE5F40B13939F535C04240BF1343D3E5BE5F409BA69E1235C04240E685E531E7BE5F40971C117A33C04240E1592B19E8BE5F40D7A59B7132C04240C5E5E844E8BE5F4052ACB23D32C04240C9F569ACE9BE5F402FD4CDA230C04240F60FFF4DEABE5F402F6652E82FC042402006A9FCEBBE5F407F741BFD2DC0424060E638A0EDBE5F4099542C202CC0424055299D67EEBE5F402073263B2BC04240BF2E3C31EFBE5F403F8CB5532AC042407346DB39F0BE5F4036E7772529C04240BF147274F0BE5F4029D7AADE28C04240958889C1F0BE5F40C620747B28C04240AC15DC4FF1BE5F40A445FEC727C042402E603BC4F1BE5F40DE11A13527C042406BB10928F3BE5F409ACE987225C0424048167A52F5BE5F405EE7A4B722C042400C0D7001F6BE5F4013440FDC21C042403668EEAAF7BE5F40B3B4C7C81FC042401EEE41C9FABE5F40E1BC42E41BC0424035CEB384FEBE5F40AE7B7D4017C04240D3F3B898FEBE5F401D3C272417C042405122EC4302BF5F40898C0C8611C0424019334A140EBF5F405ECD4476FFBF4240E0239CA10FBF5F40FF9FE9ECFCBF4240297BBDD70FBF5F4084027B95FCBF4240A630968C10BF5F40D928DD64FBBF424059387FE50EBF5F402784A297F7BF4240B45A0A2A0ABF5F40D1EF54BBECBF42403E72431B02BF5F40BCFF3C49DABF4240F9060CEDF8BE5F4068367ECFC5BF4240A2742519F6BE5F40764B9D78BFBF42406291EDFBF4BE5F401FE2BDBFBCBF42407FEED028F0BE5F403C77D8D2B1BF424093D9A80FEEBE5F40192A2A25ADBF4240F9CF4F94ECBE5F40F28AF6E0A9BF4240B320346EEBBE5F40573D9474A6BF42402177DFDBE9BE5F4040D97194A2BF424056B4B640E8BE5F405C1C16739DBF42400050EE2CE8BE5F401F80969997BF4240C8016226E8BE5F40EF97F83293BF4240CCA5EF13E8BE5F40D8BB041790BF42404B28F008E8BE5F40241A84EA8CBF4240711633FAE7BE5F408A85168A89BF4240926CC3EAE7BE5F4042208EBA85BF42401D3DF6E1E7BE5F40DE81969683BF4240FA8454DBE7BE5F40AE3E84D381BF4240831F6ECAE7BE5F4016150FD07DBF42406402CFAAE7BE5F401ABA7CE575BF4240750460A1E7BE5F40830F2CC56FBF4240A3EAEA89E7BE5F400EB070AB67BF4240B3B83073E7BE5F40C22FD0FC5EBF42404D3BCA4AE7BE5F400CA1873F54BF4240E5A057DDE6BE5F401201B9DD35BF42404E10F1C2E6BE5F4058D7ACE22DBF424023E586A5E6BE5F40358E913D25BF42404CB07A9AE6BE5F4027B750A723BF42405F0F439BE6BE5F40AE90F1E722BF4240B388C283E6BE5F40A84A03411CBF4240781AD35FE6BE5F403483B0E10FBF42400AC43B53E6BE5F4092CB481B0FBF4240822F1FE1E5BE5F404E3E7C160FBF42407F177DC3E5BE5F4055EEE4CA0EBF424078E1EF8FE5BE5F407152805404BF4240C4F4CDF8E3BE5F4009CE03EBF5BE424010EAFE12E4BE5F406A3F06ACEFBE42406684EB43E4BE5F40974AD9D9EEBE4240049DCB3BE4BE5F408786A7D3EDBE4240712AA836E4BE5F403E97ABDBECBE4240E5AA8C2EE4BE5F4045C0854CEBBE4240BC570A2DE4BE5F4018960B08EBBE4240C3821E2AE4BE5F40E385766EEABE4240DEC2EF24E4BE5F4036967A5CE9BE424097199020E4BE5F40AEB24135E8BE4240B418221CE4BE5F4076D78252E7BE42403373ED19E4BE5F407966E697E6BE4240253E4216E4BE5F40E3369AA4E5BE42407AFC9E0FE4BE5F408C78371AE4BE42406F5C4708E4BE5F40C1826959E2BE4240BCC6BBFEE3BE5F404F6FD5C8DFBE4240AA548EF9E3BE5F4011EBA38EDEBE42409881A8F6E3BE5F400FF2853ADDBE424058AA03F0E3BE5F404607B8E1DBBE4240CAE8E7EAE3BE5F40B22F33FBD9BE4240445216E2E3BE5F4050EDF96BD8BE42401CE8FCD9E3BE5F4021AA099DD6BE42408BB75FD5E3BE5F400318E48FD5BE4240DDEC62D0E3BE5F40206D4753D4BE4240C34F37CEE3BE5F40AD2E90F9D3BE4240BA9807C9E3BE5F40A4DC4306D3BE4240ACA45BC5E3BE5F4055DA9F2AD2BE424052B9EEC0E3BE5F40CF33C626D1BE4240F953C4BEE3BE5F40268B44A7D0BE4240C2EA69B7E3BE5F40A22AE93DCFBE42406C44CFADE3BE5F4076F16309CDBE424023BC9092E3BE5F40B2B627CEC7BE4240292B1286E3BE5F40EA376584C5BE4240B89B3B7AE3BE5F4010070278C3BE4240B361CA78E3BE5F407163069AC2BE42400F3EC073E3BE5F402652E291BEBE4240BC7F3B56E3BE5F402DA300C0BABE4240BE4A1B01E3BE5F403081B6A8B7BE4240057D5183E2BE5F40E0C87D32B2BE424086656B91E1BE5F4053E3AA4FA4BE4240A49CA7E5E0BE5F40D27B848A9FBE4240EC57E83CE0BE5F4073A134E099BE424047AB4E85DFBE5F405BA68B8194BE42401C7773F6DEBE5F40578473FF8EBE4240F8416B65DEBE5F409C95255589BE42404C3ED158DEBE5F405309E0EA88BE4240032C734EDEBE5F405A19655888BE424057C72737DEBE5F400C6CF9B585BE424088943B2DDEBE5F401FBB239784BE4240ED6C5C16DEBE5F40FCA4B01482BE4240942603EDDDBE5F408C84F48C7DBE424024B2F4B1DDBE5F403FF0AAAF76BE4240B0D42276DDBE5F408DB12BF86FBE4240662EC044DDBE5F40455AEA3B69BE42407A6DC9E4DCBE5F40098D91F65CBE4240C42330BCDCBE5F40626CD5BC58BE424001A615B1DCBE5F408B89887B57BE424023D4B4A9DCBE5F406D96AEDF56BE4240ECC1526FDCBE5F40AEB948A852BE42401A568A2DDCBE5F4066D68E0E4DBE4240B33135B3DBBE5F40BF87214538BE424054A6E34EDBBE5F4071AF376E2ABE4240EB94C00FDBBE5F403EA80FE120BE4240677002E4DABE5F404D0419441ABE42400E47D6A3DABE5F406475208110BE4240320D3F62DABE5F40B9748B9F06BE424012B1A958DABE5F40D36C1C5005BE424063E62E3BDABE5F402569377F00BE42402D17661EDABE5F40F9CB682BFCBD42406E8A370EDABE5F401E5CDBA1F9BD42409D68E303DABE5F4075EF92EAF7BD42400313F8FDD9BE5F40B42C70A8F7BD42403CCF46DBD9BE5F40F8AC8ABDF2BD4240A5CFFCC2D9BE5F404172BCB7EEBD4240EB0A9B91D9BE5F400980929BE6BD424018CE816AD9BE5F4097C35494E1BD4240262F394FD9BE5F4033E335C7DDBD42408B3DEE25D9BE5F40FD995BB7D7BD42406AFC55FDD8BE5F402763810FD2BD4240274AC9D4D8BE5F40DE608C7ACCBD42407384F0BDD8BE5F400DFE6150C9BD4240ABDFC59CD8BE5F40B8B5242FC4BD424093BF6F84D8BE5F4071327130C0BD4240616BDB23D8BE5F4085D8556DB1BD4240C99B963BD7BE5F40B77F25648FBD4240E99C0632D6BE5F4097F78A466CBD4240B5AD6C0CD6BE5F40BF8FCB8B66BD4240357D13F4D5BE5F40FA685CF762BD42406377F2B3D5BE5F403134639C59BD42404E976E50D5BE5F406EA5F6F74ABD4240E6AC996CD4BE5F40E2D1181D2ABD4240D46643E4D3BE5F401EA439EA13BD42400BCA66DED3BE5F404ACE41FA11BD42403BDEF6DCD3BE5F40E1AB320211BD4240A35012DAD3BE5F4000EB83360EBD424005EDDEDAD3BE5F40A6DB80030DBD42404BCE26DDD3BE5F40C1470B790BBD42402FBDA9E4D3BE5F4083DB9E1808BD4240F4A267F1D3BE5F40F635834B04BD42402157C707D4BE5F40B13328E8FEBC4240C9BDE540D2BE5F40979157EAFEBC4240FB826A88CFBE5F407F4A9314FFBC424089492356C9BE5F402B6F032EFFBC4240B5A583E6B6BE5F40B73BC5D700BD4240D422054FB3BE5F409397792201BD4240870B1F7C9EBE5F400EC396D302BD42407534D7428CBE5F4044DD7F5AFEBC424098B04DB35ABE5F404F72D31BF4BC42406567348939BE5F40FCF3BD95E6BC4240D8D4C50B1DBE5F4098D73017D9BC42407F8D71891BBE5F40E6EFD2D8DEBC42405A533D7419BE5F4030A99F8FE8BC424023C52F6019BE5F40D97D1E5DE9BC4240F6E11DFB18BE5F40F6C50E60FDBC42407C911EA518BE5F405F650AE9FDBC4240C5680B6C18BE5F400E70D47DFEBC4240D412CB3316BE5F4070D12D61FEBC42400ECED47E02BE5F4051FA1D6D00BD424084F2D01702BE5F40E9A353D700BD4240AFAB434E01BE5F4053ABED4A01BD42407B9CD753F7BD5F407F29673517BD424030354272F4BD5F408B57EF7E1EBD42400A914F75F0BD5F40A857B2D328BD424013DB5F22F0BD5F40EDD386AA29BD4240AAC85CE5E7BD5F401ED4938E2FBD4240A096CC6EE1BD5F40E7BD5F913DBD42407F1EB88CD8BD5F40612B2B524DBD42409C88C72DCDBD5F40894F199656BD42408EAC3F30BFBD5F40DB7877EC5FBD424035108AF9B8BD5F40C29B26916ABD4240B040AFFCB7BD5F40555412BB6DBD4240DEBD60CFB7BD5F4090E219CD6EBD4240B46BF6D9B2BD5F40E6C5462889BD42409CF01744B1BD5F40D9AD97F791BD42408EDECD51A6BD5F40D476A6A19DBD424021E25BC89CBD5F407C455B1EB4BD4240308D3A8799BD5F4078E7E81EB8BD42404ACA153192BD5F40552466C0C0BD4240D01BDB6E8FBD5F40E529FF09CDBD4240735E0A8E8EBD5F406204A40FD1BD42407B2836C287BD5F401FA28A46DCBD42408092014182BD5F4021732449E5BD42400D6D022D82BD5F4065CB2FBFE5BD4240168F612082BD5F40088E2DF3E5BD42402907B33D82BD5F4021329B99EABD4240CA325D478BBD5F400D6C6C21FBBD4240EDCEBA678CBD5F401B37FD6404BE42404BB8A7538CBD5F40E6AEBF4E05BE42404BC026558CBD5F40B2C5179F05BE4240FF0C9C6D8BBD5F40BBDFE4210ABE4240D9E609758BBD5F4009CB585F0ABE4240D5274D718BBD5F40AE0A67EF0ABE424090277D408FBD5F40C28B2E1615BE4240479C387890BD5F40F975725318BE4240627210D490BD5F40593F634419BE42401B1AC90D91BD5F4054D0EEDD19BE42406E86292C91BD5F4083BEA3301ABE42401D9193DA90BD5F4059A18FDA1BBE4240A82C40B08FBD5F4009B764F021BE42403DB3E89F8EBD5F406E2C045D27BE4240A4F58EF18CBD5F409521B02730BE4240D4A3C00D8CBD5F40D5DC7DC434BE424076101B2F8EBD5F404379B8993FBE4240F0F519538EBD5F4039A8997D44BE4240DD58DED18EBD5F404606FF7A59BE424093366B688CBD5F404AB62DAE5CBE4240A8E436BD8CBD5F40AC3FAFF662BE424021F6C73A8DBD5F40F00B66C468BE424095DE35D28DBD5F40D63B30BE6FBE42403506F8BD8EBD5F40860FD2BA78BE424053A64E3E90BD5F40A7CE416B87BE42402BFCC48690BD5F40BDC7E1498ABE4240A483AD7D8EBD5F40636BB3138CBE4240537A42DD8DBD5F404726EC5591BE42405243F9588DBD5F40664D252897BE4240B6BECB6887BD5F40B5D807D79BBE42400344C88586BD5F40D52C5BC79FBE42404F64A82782BD5F408EC315D3B3BE4240825EA04181BD5F40803EE221B8BE4240DCF44FEF80BD5F40B0AB413DB9BE42401DF25B357FBD5F405E0FB721BDBE4240B7B0AE1A7FBD5F404EB8B976BDBE42407099ACEF7EBD5F40A9B41809BEBE42408856A8EF7EBD5F40464D8B46BEBE4240337DE2B47EBD5F40FE7F1B2CC1BE4240CF6C31917EBD5F40AC75E2ECC2BE4240540E597F7EBD5F40B1C6DACAC3BE42408AB2AF757EBD5F4016B50248C4BE424047A036547EBD5F40A979942EC6BE42406A07B2187EBD5F4004B8098FC9BE42400B84E4E07DBD5F4038D664B4CCBE42401D5FFE9A7DBD5F40575346AED0BE424075AD546E7DBD5F40CB24CA37D3BE424045953D747DBD5F40103E457CD3BE42401D29F2B37DBD5F4049480003D4BE4240C62E85FE7FBD5F40702E66DBD8BE42406346CF8481BD5F401EF2D31FDCBE42400C7164F783BD5F403468F751E1BE42409202639585BD5F40A9FEE2C0E4BE42401EA9518987BD5F408A0822E8E8BE4240D0AEED9287BD5F40A6C49D2CE9BE4240A7D4D98F87BD5F40F99C212DEBBE4240FB2F087D87BD5F400F399230EFBE4240BD70867887BD5F4041B36AE6EFBE42409C715A6A87BD5F405159CAD8F1BE42400DF6546787BD5F401C78F355F2BE4240D2FD215987BD5F404849BEFCF3BE42406FD1BD3C87BD5F4028EC5330F7BE42404E8ADB2787BD5F401E3FC17EF9BE4240A853641D87BD5F404EE7F7A5FABE42405450CAFE86BD5F40AB4ABB92FDBE4240CFC1EAE986BD5F40C46206B9FFBE424011FA86D686BD5F4080E9BCAD01BF4240E2A4C89D86BD5F402651168007BF42401BA19A8F86BD5F40FC1CA4DD08BF42402B14CB9486BD5F40C5A9914509BF4240134C76C286BD5F4054A4D0CB0CBF4240D492E8D486BD5F400F9AF1390EBF4240B9A96E1C87BD5F4009E109BC13BF4240B686512287BD5F40545A4F5A14BF424005B3E63687BD5F4092887F7216BF42404ADD922980BD5F409C51D60918BF42402C9977E281BD5F4072958C0923BF4240B3BE53297ABD5F40309B60012DBF4240CCAB636175BD5F40882296F132BF424028C2C92C75BD5F40692FFFFA32BF424051E6CFCD72BD5F406D617D6233BF4240FA5295B06CBD5F407681027134BF4240B58481D46BBD5F404C02DA8A34BF4240E6D7261F68BD5F40DD028AC734BF42401F2CFF3866BD5F405788DFE534BF4240E1B8CFCC65BD5F400F73CBE534BF42401766A08865BD5F4058BB07A634BF424080F4D3605FBD5F40A21DE2652EBF424046A0D2275FBD5F400ED3EAAF2DBF424096C41A825EBD5F4057AE72CD29BF424004FB2D0A5EBD5F40659CB58A27BF42404E2278455CBD5F40A8F5F88A1CBF424026025B485BBD5F405FC72BD617BF42404A0AC56159BD5F405E09E28D13BF4240BBC6E04B57BD5F40DFCD78460EBF42408376884552BD5F40240322530CBF4240A60CE33E50BD5F4027FBF84E0BBF4240217973684CBD5F403563D74208BF4240DA68695349BD5F40A043CE7105BF4240CD17435447BD5F400DBFC30FF9BE42400EF72B3845BD5F40BC696BF2F6BE424033C68BF441BD5F403B8FAC24F3BE42402DB473D13EBD5F40ED6A24ABF0BE424024BF0F7E3DBD5F408DDB1EA6F0BE424068D671DB39BD5F407DB4ADB0EEBE42402ACC8B0739BD5F40DB6E3FF8EDBE4240A0632A2B37BD5F4023D5995AECBE424026B128A236BD5F405BD66F96EBBE4240F2C877DD32BD5F4033616155E9BE4240EEEC819F2FBD5F40F87D9912E9BE42404249905F25BD5F40E2B6BB83E7BE4240ACA45E9224BD5F4093D2B899E6BE424018FC2F9322BD5F406E59E751E4BE42403B1E873922BD5F405BD538FFE3BE42408A4B5B5821BD5F40294CA438E3BE42407FD1832421BD5F4042AEE2AAE2BE424055AC11FA1FBD5F40A25FA717E0BE424084387BA31CBD5F40360A55E2D8BE42400A3C0D601CBD5F40F1CB7CBCD8BE42402DDE56341CBD5F4042A6CB8AD8BE424093B7C56115BD5F405496B88CD7BE4240C647564011BD5F40D34B0BF7D6BE424028653FC10CBD5F40DF8B7AF4D0BE4240D5850F580ABD5F40A0F1E5B3CDBE424004376AA909BD5F40F1513EC8CCBE4240C1EFABE603BD5F4011D2270FD6BE424074CA076BFBBC5F40FD153ACAE3BE424059C94950FBBC5F40A5055E47E4BE42401FC1A9DEFABC5F40928F8892E7BE42404BAA0BB8FABC5F40E1915948E8BE42406BF1EE85F1BC5F40AF5FB687EEBE4240039C20A0EEBC5F40BFD5F86BF7BE42402AB5DD91E8BC5F40DBDAEDAEFFBE4240B6BAF240E1BC5F400C9844E302BF42406E26F5C6D0BC5F409000F7C309BF4240F44CED2ACCBC5F400D05A2AF0CBF4240294D07BEC5BC5F4044394BFC11BF42408E93C857C3BC5F4055419F7919BF4240B05B8A5DB9BC5F405ED894211FBF42409A59F33AB9BC5F40D635B39024BF424038E53CD0B8BC5F4078C66C6935BF4240D9E80877B1BC5F40ACC0340831BF424086AA06ECAABC5F40571C7BAD31BF42405CD0E467A4BC5F409B67255232BF4240FED3AD729EBC5F404BFBDA7E3BBF42403E90795C9CBC5F40643967243DBF4240C488A9369BBC5F40A982500C3EBF4240E9057C099BBC5F409CD7F94C3DBF4240A57C894598BC5F40FCFD0EF037BF4240529B133792BC5F40AC187F7431BF42408CDC095E91BC5F404B234F7C30BF424097E58FD48CBC5F40B3B181E12ABF4240C9B33F328CBC5F40B2A561022BBF424017F9FB1389BC5F40CA5378EB2BBF42405B5A83DA82BC5F403D36C40B26BF42409AEB911377BC5F401A52132521BF4240C8FC625073BC5F4057658B3D1FBF4240BA46AC2D73BC5F40FC2E93BC1DBF42408EEFDB1472BC5F40FF5023251DBF4240426AADB271BC5F404C7AF8330ABF424081D2B32371BC5F4081DF7CFD09BF4240AE9D568770BC5F40A2A6DBEC09BF4240FC5390806EBC5F40E586D3FC09BF42406BD4AD176DBC5F40BF9356080ABF4240957022C469BC5F403A72C43D0ABF42404DD5A0A667BC5F40BD6F9C8308BF4240E844033B66BC5F40BCBC196507BF424069DC46EB64BC5F405B7B9C5C06BF4240230FACBD63BC5F4010B96AFB05BF424027A9A29863BC5F40C4E596EF05BF42405300876263BC5F4085F1A3DC05BF4240A5528DD362BC5F402C9C7FA805BF42403EF814A762BC5F404273A27B05BF4240F55B445C62BC5F406063153705BF4240C87E36EC60BC5F4018C2FDF302BF42404605383560BC5F40B1A5102B02BF42409C236DC35ABC5F407996CB0401BF42407060A07C59BC5F40F48455C200BF42402BC6A00159BC5F402F1CA17600BF4240D8CC08B958BC5F404072514700BF4240DBFCC97357BC5F40068DE72DFFBE4240C2D3782A57BC5F403BA45A1DFFBE4240BD9BF77555BC5F40A56692E6FEBE42400A5BECDC53BC5F400F0ED1AFFEBE4240D6AAC4AC53BC5F40D4D7E6D7FEBE4240B6688F7F53BC5F40CC5883EFFEBE4240A2B1FB0253BC5F40DBA021B8FFBE42400A9F1B5C52BC5F408AC549E600BF42407768920A52BC5F40C6E219F900BF4240813A1F8B51BC5F4050B6501501BF42400EBB0D8C4EBC5F40B7E97DB701BF4240D0121D1F4EBC5F408DFEB1B201BF4240AF2481834DBC5F40F695C6AD01BF4240469B17AB4ABC5F4056B3F2E100BF42403BCE895C48BC5F40A75BF93B00BF424015639DE546BC5F40DDB1AAD3FFBE4240D56D934F45BC5F4056856E72FFBE424075AA621F45BC5F40047ED47BFFBE4240BC28AE5E44BC5F404689D789FFBE42402B7967D442BC5F40B7E6BB1400BF424090DA6BA942BC5F400964CB3500BF4240FD43F5EC41BC5F400E98AB6002BF42404734C92E3DBC5F401FC3784E05BF424002D8C7763ABC5F4004EBCA2307BF4240746B009F38BC5F400B9E144612BF4240DA34CA9736BC5F408A1EEBFE16BF424034020A4436BC5F4052A2EFEB16BF4240C7720B3032BC5F4026A0F89115BF42404C5E833C2FBC5F40D756653119BF4240F0ADA78A2ABC5F4088AAE29917BF4240885F361C28BC5F40957BF61417BF42401931A0E726BC5F4042D815E615BF4240B20DEAAC24BC5F40BE30F4B513BF42409B53619D24BC5F40E72E987F13BF4240FF685F7424BC5F40568975D40EBF424001FA0C4224BC5F4089AD08630EBF42405E05752124BC5F40767335090EBF42406672818522BC5F40D551070C0DBF42401A6B83D421BC5F408D2D2C0F0CBF4240AC78E39920BC5F4061C0653E09BF4240F7F5848F20BC5F404CE5E81309BF42408AF4358520BC5F408E0AF25608BF4240F9C8995720BC5F40C9010E0E05BF4240518DCF3720BC5F40C0C055BB04BF4240BA60DBD31FBC5F40B4DC1C9B03BF42407868A84F1EBC5F40CD7D954602BF4240F388286E1CBC5F40061B2A9800BF424063070AB61BBC5F406D41FF1301BF42409A3E35D71ABC5F40866FB6A901BF42405D39CBBF16BC5F40BA89087904BF4240AEAA03DA15BC5F40A851D8D404BF42404047AED30DBC5F40DBC22A0F06BF4240B99314990ABC5F405F255FE701BF4240DE0806B105BC5F4054FC51AD01BF4240D0988C9A01BC5F404E8057D0FBBE4240211CAAE7FDBB5F4098EA56F9F9BE4240588AACE9FCBB5F4077C77760F8BE42409414027FFCBB5F40752AAAF3F7BE4240D2F8A80DFCBB5F40543E107BF7BE42408D794376F0BB5F40BDBD0F7DF9BE42406EEC0338EDBB5F40E8B4C9D8FBBE42400FB31FCEE9BB5F405B82C63A04BF42404865D5D3E4BB5F40CCD5BD9207BF4240733E8748DFBB5F40AC4D86C20FBF424078193B28DDBB5F40442A61CD12BF4240682618B9D6BB5F403B54C8FB16BF42403E430406D2BB5F400ACC6EFC19BF4240A1427EE4CCBB5F40DABABDD41CBF4240386F9C66CCBB5F4048E189101CBF4240BF307DB5CBBB5F401392AD461CBF4240346D8748CBBB5F4048E8576C1CBF424091F38EF3C9BB5F40F34AC5E61CBF4240B87D03D1C8BB5F40806B044C1DBF42403FBD01D9C6BB5F406ADB85FC1DBF4240C7D3227AC6BB5F4084C72C1B1EBF4240B751BAB9C4BB5F40639066AF1EBF424078C96BD5C3BB5F403E5EA4621FBF4240F6BCECD6BDBB5F40B8602EE31CBF4240FDD3D222ADBB5F400882350D18BF424071C7416FACBB5F4020DB1CAF19BF4240D75D26C6A6BB5F4052B1DD501CBF424070E7476D9BBB5F40898F34A021BF4240D9E47B589BBB5F40E158D6D121BF424034A27B309BBB5F40B148ECF921BF42401B7D66169BBB5F400A91742323BF4240F9C8BBB69ABB5F4065C6069023BF4240AFC8E4519ABB5F40E9D29E0324BF4240AC84708397BB5F40901BB43827BF424091261D2294BB5F4097B0FA122BBF42404F3B7F7391BB5F40ED0DA6242EBF4240CC7DD0A48FBB5F4079FAD73930BF4240563FB5948EBB5F40635F0C7631BF4240859547798EBB5F40AE79B39431BF4240E9EC78B88DBB5F40D23E1B7032BF42404BFA31F48BBB5F409EE9D55A34BF42406F66386B8ABB5F40CC99432236BF4240ECB8445186BB5F40CEBFDDF13ABF42406A4BA4DE82BB5F40DF67431B3BBF4240CD888CDF7DBB5F40F9E4BC1D41BF424042D116C77DBB5F40DA625D0141BF4240668E409C7CBB5F401A88096F42BF4240DE74BAA77ABB5F408B7F62C644BF42403E5A9AB277BB5F405D8259B848BF4240B728027E77BB5F40ED41D6AE48BF424079077A2874BB5F40A9A25DD94CBF42402663D1C86FBB5F409A29AD2352BF4240E18EB0436DBB5F40861A222055BF4240070C39656CBB5F40DD0DCF1056BF4240B0229A2D6CBB5F40884D375556BF4240996110076CBB5F40C6F72A8956BF4240E2B4587F6BBB5F404140A31657BF4240C3B2E8F96ABB5F405327289D57BF424016B862F267BB5F403DAB1A495ABF42404D306BAA64BB5F403A3848D65CBF4240D2DCC5DE62BB5F400A8D81625EBF42400A5FBF6062BB5F408EE7DE6B5EBF424075A50CC460BB5F40E3D5A2C35DBF424026A3B0F85EBB5F40F74F72085DBF4240A77BAD4B5DBB5F408AC7D85D5CBF42403F7E054F5CBB5F4047034AFA5BBF4240DE82E61B5CBB5F40E46ABFE95BBF4240CB8790C95BBB5F40DC99B3455CBF42402E3BEC865BBB5F40D3F8E6EB5BBF4240AF0DA95F5BBB5F400A0CF5D85BBF4240CDD17BD358BB5F408FA60E0156BF4240A8763F8158BB5F40DD5DBEF255BF42400999F35657BB5F40AEE3C20C53BF42405788502C56BB5F40D055563C4DBF4240305D004753BB5F4085FD391249BF42400BABA7AB52BB5F4091D917F546BF42401ED2B5A84FBB5F40C4B963BA42BF424003C639094EBB5F408A651A8A40BF42400971FA894DBB5F4022DF2A043FBF42405F87B0664DBB5F407D3343CD3CBF42403DD13ECC4CBB5F401A624C3639BF4240AE02ADD94CBB5F40E46049C738BF424009B12AE14CBB5F4009C61A0F38BF4240126542D64CBB5F403B21F23136BF4240977BA5D64CBB5F4040E73C2B33BF4240FA4E9CB84CBB5F40A21985AD30BF42407580AF824CBB5F40D05CC82E2FBF4240C4456CA64BBB5F40860533C32ABF4240AC67B7694BBB5F408B19E25F2ABF424007B653C54ABB5F40E5DF954629BF424045DD892449BB5F40721713D525BF4240C972FC9F48BB5F40576EB60225BF424069F384C547BB5F40E77B3DFC23BF4240E2CB373D47BB5F400030098D23BF4240C3618DAA46BB5F40B09BFFF022BF424091778C8246BB5F406B70F2BC22BF4240270B73F445BB5F40454DF64921BF424068D396D745BB5F4075C6AF1A21BF42406776853D45BB5F409C23AB8520BF4240C6319C2045BB5F4002617F5D20BF4240615633F444BB5F403123FE1F20BF42402A62AD4A44BB5F407CE735C21EBF424035EBD7B843BB5F4085A31D961DBF42400C83A42D43BB5F40396C16781CBF4240C57B284D42BB5F404AF52F251CBF4240D608C13142BB5F40F8B041121CBF42408EE0A8FB41BB5F407D6AA2E71BBF42408550AB0240BB5F40014096C118BF4240EDA57C133FBB5F400D850E4C17BF42401B0662A03DBB5F40A24FAB0516BF4240F3F29A7A3DBB5F40C192B9D815BF42407B626BA53CBB5F408D0A61FB13BF4240F87F70913CBB5F40A106CDB613BF42408C4A63E73BBB5F40C27CF29510BF42401A6F9DB93BBB5F40629E3F860FBF4240ED7CADCC3ABB5F40C0E673F40DBF4240831F79A23ABB5F4088120E8A0DBF4240C40EAD8B3ABB5F400F9C40520CBF4240CE0DD8523ABB5F40748C8E980ABF4240DE5BB7DB39BB5F408898990B09BF4240C0985D9D39BB5F400C25EF52FEBE42409655405439BB5F40B9E25959FCBE4240946A384639BB5F4014F5B8ECFBBE4240D3A501B738BB5F401321B6C5F7BE4240BB442B2237BB5F4001AB48B8F3BE424013D2452B37BB5F407433D647F2BE4240DB65D4DB35BB5F400BADFCFFEFBE4240CE33AA2835BB5F40E6EEFAC7EEBE4240DC96461035BB5F40DDEF2081EEBE42405F0ACFA834BB5F4016385F2BECBE4240A8B937C534BB5F40C85D215AEABE4240D123CEAF34BB5F40BB2A63CCE9BE42401350B93534BB5F405DA71C5EE8BE4240CE786CFA32BB5F40381D4E1EE5BE4240BE02712B32BB5F40FE163D32E1BE42401FB9B5AE31BB5F407D6D198DDDBE4240A3CCB4D630BB5F403690DE70DABE4240B9059BAF30BB5F40F6582626D9BE4240846D4F3F30BB5F406C0EE084D6BE42400D82DC0430BB5F40CD9CFAEFD5BE42406F0634922FBB5F40EB93E454D4BE42407FEBF9592FBB5F40621922CED3BE4240379534722EBB5F40B3549451D2BE4240B0116B792DBB5F405A941BC2D0BE4240D09EBA5E2DBB5F409D6C6AAAD0BE42405C72C53C2BBB5F409E5DE56ACFBE4240545DE4AB28BB5F40410F88EFCBBE424093EB74D227BB5F40BE2C4CEDC8BE42406268869627BB5F40F5DF4316C8BE42400B66366427BB5F409636CC4FC7BE42407C45F05B26BB5F40E51F613EC5BE4240A01CF1E925BB5F4035B4EE64C4BE4240D96A894825BB5F4061A1F967C3BE4240E76383CF25BB5F40C633F6AFC2BE4240D34EC17A25BB5F40B09DDF24BFBE42402107CA7725BB5F40283951FABEBE42407228276F25BB5F4021813C37BDBE42405536F35B25BB5F4011DF2212B7BE4240B819DD7020BB5F402AAB277DB7BE42404302C91A1CBB5F402177F297B7BE4240CF9F2F9616BB5F403CB276AAB8BE42402BC69C4A0FBB5F400274502BBABE4240BE6F705E0DBB5F4063CBB5BABABE4240768499AF07BB5F40E496C95ABCBE42405865BF0205BB5F4026E60525BDBE42405A9DE5B404BB5F4045BEBC51BDBE4240A1077DF003BB5F40BAC99AC7BDBE4240B332C24603BB5F40F4B1310EBEBE42407683534302BB5F4066572F78BEBE42409D9E61EA01BB5F408DD4DA9DBEBE4240B8CAD7CBFFBA5F40AB80DC7FBFBE4240EA6B3ADBFDBA5F4061149645C0BE4240BC8E9296FCBA5F403641A6C4C0BE42403F6B4838FABA5F4004421EB7C1BE4240B5595BF3F9BA5F4013F55DD3C1BE4240C3FEE9B8F6BA5F4004C98F1AC3BE4240BB6E449BF6BA5F40C0FDF723C3BE424077A39D67F1BA5F40EBA3962BC3BE424072AC1C31F0BA5F409113812DC3BE4240495EBA73EEBA5F401E03E42CC3BE42405BD76C17EDBA5F40A5DAC02EC3BE42407A893F58ECBA5F40C94D7D2EC3BE42405452852CECBA5F4016D96D2EC3BE4240828028A7EBBA5F4041E2E62BC3BE4240A1474E3BEABA5F40DD8BF321C3BE424047CD4659E9BA5F40E916D915C3BE4240CF07B5A7E3BA5F400509E7C5C2BE42401E6D43FDE2BA5F40C1CE74B7C2BE4240544DD752E0BA5F40A370225FC2BE4240BCF4BD1DD9BA5F40E2C8056EC1BE424051A3CE60D8BA5F4059D81956C1BE4240D25AF489D7BA5F4051B65211C1BE42407C8E8C57D7BA5F40A439B300C1BE4240300E101DD5BA5F404130F242C0BE4240D471DEF9D3BA5F40B496B7E1BFBE424033F54E0BD3BA5F4029B76193BFBE42401820A61BD1BA5F40723363EDBEBE42404D972E03D1BA5F40FAC5E7E3BEBE42405320BC1DCDBA5F40282BB255BDBE4240F3F6591ECCBA5F4053F0C0EFBCBE4240D89FE6BDC6BA5F409174FD2DBABE424043B73120C4BA5F400A59D1D1B8BE42402F16D85EC3BA5F40A345616EB8BE424022440E39C3BA5F4036F35A5BB8BE42405EB8C600C3BA5F406BA2EE3EB8BE4240298E77E9C1BA5F4082F479AEB7BE42408E9DA897C0BA5F40E5A30AF1B6BE4240D8720D08BEBA5F408DC34D7DB5BE4240A8CFD5F3BABA5F40DCA57AC2B3BE4240B5322627B7BA5F40FF3D5491B1BE42406E01149AB5BA5F403AB9C6B2B0BE42404F6219A7B4BA5F4079144B22B0BE4240BB2F6E6DB2BA5F40B7CC6EB3AEBE424004F33070AABA5F405E8D7DA4A9BE4240C95857B1A7BA5F40202B3DFBA6BE4240BE5CCC13A2BA5F4005C18C80A1BE42405467BCB49DBA5F406EFCC6429DBE42408B46793A9ABA5F409875BCE599BE42406A39927F98BA5F406E36993998BE42408A416F1294BA5F40C55008F793BE42405E22F55E8FBA5F401F980F778FBE424074B016188DBA5F40FD7606448DBE424033B0AF988CBA5F40B8F239BD8CBE4240B614CB818CBA5F4041CAAFA58CBE4240907837FB86BA5F40693042F986BE4240D5A5B08982BA5F402447F35C82BE424053DCF7A07ABA5F404120DB097ABE42407406F3DF77BA5F40C059E12777BE4240C30A6BE475BA5F40560F790372BE4240652203C973BA5F4086849D9A6CBE4240B128C6DA72BA5F408833433B6ABE424049D93E6D72BA5F401BA6022269BE424059F508B571BA5F40EEF8CB5267BE4240D6280E3871BA5F40FFE8062A66BE4240292652E16FBA5F40AE0A07FC62BE4240368E08AC6FBA5F406003EB8C62BE424043A77A6B6EBA5F40B34F14BB60BE42402F70AC5B68BA5F4026CD0CC857BE4240041D13E266BA5F407564D39E55BE42403A969D6B66BA5F40154A2BF254BE424097A9EE0666BA5F403D04D35354BE424096B9199A65BA5F40F1A12EA753BE42404A70030C65BA5F40E492D96C52BE4240DDD54F6364BA5F4047B6AFF250BE4240608DF73064BA5F40E2D93C8150BE4240AEAC04D063BA5F40DF2ECBA74FBE424019DBB15363BA5F401795EF904EBE424095FC99AE62BA5F400E8948B04DBE4240401AA7C461BA5F40755827784CBE4240361C7FAD60BA5F404B02ED044BBE424089EB053C5FBA5F407D17AA1649BE4240009C2B735DBA5F403A5049B246BE4240E08515F35CBA5F40664E080846BE4240DB0E8F025ABA5F408DFD1FD743BE4240462E9F7258BA5F40675D1CA842BE4240C337440057BA5F40C0C11C8C41BE4240A84BCF9554BA5F4054A917AE3FBE4240CEE2D34453BA5F402002CDA93EBE4240E505D15752BA5F404AF482F33DBE42407EC92B2952BA5F408B1F69D23DBE4240879088E351BA5F4072A410A33DBE42403F1E8B9B4EBA5F4091FF0A933BBE4240AD33E0144CBA5F40890823FE39BE4240DA1C60264BBA5F4087BAF26839BE42402960D4C249BA5F407F4A6A8A38BE42408EA09F7F47BA5F408C84BE1D37BE4240EDFFAB9A46BA5F40BEB791BC36BE424005F5C86545BA5F40167AD23736BE42405CA5970944BA5F401343E1A435BE424087A0DFD942BA5F40FCAE7B2235BE4240CA0587FD40BA5F40E551FF5834BE424052DFA12C40BA5F40FB91E1FE33BE42406A1671D03EBA5F40690F986933BE42407340D4A03BBA5F40CCD5E3FE31BE4240B5465E7F33BA5F40201D99DA31BE42406576FA9823BA5F40B4684E2A29BE42406050C4E21DBA5F40CE24CBDC25BE42405BCEB5B905BA5F401267FAE117BE4240D9031282FDB95F408118932013BE4240F26547D9F8B95F40A97155F711BE424005F77EBDF7B95F4022F20CB011BE424087CB6F2AF4B95F40A036DE8F11BE424096D544CCD3B95F40C138651014BE42405CE67401CEB95F405FF2A08114BE4240C509D152D0B95F402202E12C1ABE4240C7140AD2D0B95F40C625CA641BBE42405FC40BE3D1B95F402A3BB0011EBE42404E576BB4D2B95F405D88360020BE42407CBA033ED3B95F406D66744D21BE4240083EABE6D3B95F409188BFE822BE4240841F3AF3D4B95F406311D97925BE42402D430893D5B95F40CA2DB5F826BE4240E2ECC6DAD6B95F40FEBEF6192ABE4240B5241CF6D7B95F40C99F75CE2CBE424004037D22D9B95F40571489AD2FBE42409EB0DF15DBB95F4021A9757334BE4240D80A098ADCB95F4044E9650138BE4240EFAFACB2DDB95F40B19C5CD93ABE4240398528C5DEB95F40CC5D42763DBE4240D09F3E1ADFB95F4003CF3F463EBE4240F2320CCBDFB95F40F91073F43FBE42401643C570E0B95F407E3D8E8841BE4240DD2E92B2E2B95F4012F1A91247BE4240D8C18AB2E3B95F40D86F0D8549BE424018D74436E4B95F40F8C37DC64ABE424098DB2D17E5B95F4030D42BED4CBE42404C014D55E5B95F40CE98C7864DBE42401AB70092E5B95F40F221B31B4EBE4240290835CAE5B95F40BAFEBEA44EBE42408C9C9F73E6B95F40213AB94450BE4240E866868DE6B95F40B1C7368250BE42404A8657BEE6B95F407275C5FA50BE424033663CB3E7B95F40BED4B85053BE4240A1FC6CDDE7B95F4044234CB653BE42400476594FE8B95F4011C13ACD54BE42402AA13DD8E8B95F40ACB31F1856BE424074AAD672E9B95F407A1F499257BE42403D3081E8E9B95F40E8B540B058BE4240A2905A96EBB95F40CC64F7C45CBE424038297346ECB95F407A6716735EBE42407E8C6C21EEB95F40210C3FF962BE424024711583EFB95F40298CAB5C66BE4240BE2236F7F0B95F406787F1EC69BE42409D51650DF2B95F40FAA0F9976CBE42402FB63B96F7B95F4062E496257ABE42402E584BA1F8B95F40076155B47CBE424039DEE863F9B95F40DEB4608F7EBE42400AD99A42FAB95F403CC2F1AE80BE42400CDC0958FBB95F40D536495583BE4240E611930CFDB95F40DF7A958187BE424010F60558FFB95F40BAE7951E8DBE42404294123F02BA5F403992563B94BE424051C6D56603BA5F4037DD091097BE42402BD6558A04BA5F40E1E030DC99BE4240F1572A4F06BA5F40AC0168359EBE424089E0EC7106BA5F4000DDBA859EBE42408AC2B7BA08BA5F40974D46C09DBE42404EBEB75A09BA5F40637EC5239EBE424010D3E05C09BA5F40E5A662909EBE42404591735509BA5F40B8C844BD9EBE4240AFA3A2B80ABA5F40CAAEFFE7A1BE4240EBD887830BBA5F40DD8E47BFA2BE424067C6E99E0BBA5F40AD887CEEA2BE4240014198BF0DBA5F40437E3064A7BE42408DDC80EA0DBA5F405238BCC2A7BE42406F454D8D0EBA5F40FDA58F54A9BE4240654038B50EBA5F40AEC2C9B7A9BE4240D52750F90EBA5F40D4DD9C5FAABE424086F2D9E30FBA5F40EC17A4A2ACBE4240DDC5EEA711BA5F40BBB681F9B0BE42409D60CEC714BA5F407C795A7DB8BE4240D232E3E816BA5F40A79F91F3BEBE424087536A6417BA5F40FBFF5B8CC0BE4240F7F652B117BA5F401ACC918BC1BE42406B302E4818BA5F40EB1E825FC3BE4240E8A1E5D918BA5F40EC4C3304C5BE42408CEF563919BA5F4075B2EA13C6BE4240C3BD169519BA5F408051411AC7BE4240936FF72B1ABA5F4088C916CDC8BE42408B10D2C51ABA5F4098A7D292CABE42404C7997621BBA5F40B5195A7ECCBE4240971623B31CBA5F403F2107A1D0BE4240E5216F501FBA5F40A5E60EEBD8BE42401793DA0A20BA5F40249D2F1BDBBE4240723C446A21BA5F40B3788AD3DEBE424015E7A95A23BA5F40C968360DE4BE424042D6A27124BA5F40A133E3B5E6BE424088AE3CB425BA5F40CC0CA9B3E9BE4240BE20486A26BA5F40FB09DB61EBBE42401A8920D426BA5F404D48595CECBE4240E9630E6B27BA5F403D6799C3EDBE4240B4F6F32928BA5F40C25A138EEFBE424086DFAED228BA5F40299F5A29F1BE4240096C838329BA5F40A42E1FD5F2BE424009A2115D2ABA5F40490289E6F4BE42408DA605AA2ABA5F406A349CA3F5BE424032A499B62BBA5F406671295FF8BE42407A28A14A2CBA5F400E23B186F9BE424013162F382DBA5F40EBB47A66FBBE4240C0AE9C1D31BA5F40B9C6713405BF42406C935AB231BA5F4090D2D2A906BF424012564A3532BA5F407BD35AF207BF424001CC6BD132BA5F4092314C7809BF424077139E9D33BA5F40EBE3CA760BBF42406C4A406034BA5F40FDE3ED580DBF424080828E6D34BA5F4020D6657C0DBF424075DD04AC35BA5F4002B7ABCE0EBF424077F5D7DC35BA5F4033FF25470FBF4240FF18C1E536BA5F40D4E836D811BF42403546F80C37BA5F40110C113212BF42407DE28F3E37BA5F40EE63699C12BF42403E6E655E37BA5F402868D5D912BF424025174CB137BA5F4057E9927A13BF42400DF42D5138BA5F40C34BE9AD14BF42407231B67438BA5F408A99AEED14BF4240DB9112CC38BA5F40220E168C15BF42400CE638E538BA5F406AC0CFC415BF4240F52D5AF039BA5F401FE9D91A18BF4240C57A2DDA3BBA5F40E95C870D1DBF424020A5E9933DBA5F40336E5B6421BF42406A7370E53FBA5F4097C66ED426BF4240D51EA41A40BA5F405C419AD327BF4240DF71DAE340BA5F402ED06E222ABF4240A420452441BA5F4019E752622ABF4240D479E93E41BA5F40258B9A772ABF42401EEB1CD541BA5F40C882FB062CBF4240BCC1EAF741BA5F4043962B632CBF42401654250B42BA5F40E71805902CBF424095E35F1E42BA5F40B5F4F1BC2CBF4240759C5A2443BA5F40383751FB2EBF4240676B04B64ABA5F404BA15BC543BF424036FCE6444BBA5F401FE474D044BF4240D3AFEDC24EBA5F4044A67D8151BF4240757F713152BA5F40C63520A75DBF42401659C95A55BA5F40A20CA1E466BF4240CA5706DF56BA5F408245ED4A6CBF4240ED4351BE59BA5F40A88E910D75BF424090B684075BBA5F4045B5D6D878BF4240782ADBFE5CBA5F40CE9289D37CBF4240927B55AB5DBA5F40D80E3B3D7EBF424001573E5F5EBA5F40084784707FBF42400D9BF1735EBA5F400A90719D7FBF42407BE4FA5260BA5F40B96BACCA82BF42409681952963BA5F40DAF21D7B85BF4240B3ADE5EA63BA5F405181423186BF4240C662AE2464BA5F407A9E086A86BF42405AC5C75764BA5F40B126099E86BF4240FEB90D9064BA5F40B44104CB86BF42404C9287D064BA5F40B52DB2FC86BF4240191E5FD066BA5F4081F0966B88BF4240C530E3386BBA5F40104C1AFA89BF42402EFAAFE06CBA5F40C079388D8ABF42409D7D0D2A6DBA5F40A1EBCE9D8ABF424048A7F9826FBA5F408C8ED9148BBF42403F19C58671BA5F406A3A227B8BBF4240990CDA5B75BA5F405566533E8CBF4240DC11B37476BA5F40D2B41E7C8CBF42401B92C4CB77BA5F40E86B37C88CBF4240B76B1F1878BA5F40BA568AD68CBF42409C763F0579BA5F40516D22068DBF424007532F7279BA5F40327431198DBF42408E28109C7ABA5F40005D53528DBF42403F787B887DBA5F40242929E18DBF4240A3C12A3F7FBA5F40939580348EBF42400662035B82BA5F409B5882CA8EBF424092625B4D83BA5F400127ACF88EBF424002B0471086BA5F4092766D7F8FBF4240BBF510A388BA5F40C98E91FD8FBF4240533F9DFB89BA5F407B9B733B90BF4240995574C78CBA5F405A9432C390BF424019365D238DBA5F40AF963AD690BF4240255DD17B94BA5F407EEE87F293BF4240812B972D99BA5F40F320931396BF4240B6BFE6C39FBA5F40E07D4DF998BF4240CCD72A9CAABA5F4080899C959DBF4240169F5752B5BA5F4095E56B2FA2BF4240EEB9B077BCBA5F4004ABFD4DA5BF4240951C78AEC4BA5F4088ECF6DBA8BF4240FD2BD4BFC9BA5F401FAA370BABBF42408380B657CABA5F40CB17FC4FABBF4240EAFD0E80CBBA5F40DE84D503ACBF4240B2EFA4CBCBBA5F40787A6327ACBF4240BB8FFFADCDBA5F40836056FAACBF4240E91E387ECEBA5F40F8AB5854ADBF42409E70336AD0BA5F404683A629AEBF424062FBB4C2D1BA5F402836E1BEAEBF4240A0EDD3EED2BA5F401EF33941AFBF424074238063D4BA5F40D520B4E4AFBF4240D1637FB3D4BA5F40177F4308B0BF4240E0E260B2D5BA5F40275AFE79B0BF424018D4899CD6BA5F40D348E7DFB0BF424087D7D18BD7BA5F40B6CF2948B1BF42402D5B7FA9D7BA5F40711A2162B1BF42403D8B2914D8BA5F40432CDCC7B1BF424010B7CF42D8BA5F403C497AF2B1BF4240F7BD9C79D8BA5F40B362D228B2BF42400DA5B7EBD8BA5F40B0DC6D9AB2BF4240BEC3C65DD9BA5F4052CC8A09B3BF4240DC110189DABA5F405ED07E2CB4BF4240CFF46247DBBA5F402B2D5FE7B4BF4240A17A4C79DCBA5F4092DE5C11B6BF4240BEFE2FD2DCBA5F400B3F2C64B6BF42409F5693F0DCBA5F4083E98E80B6BF424039F6467DDDBA5F40C695C809B7BF42404B3B5D53DEBA5F40E8EDDAD9B7BF42400A75915EE0BA5F402B06CF63BDBF4240C91BEA13E2BA5F40DB4CEDF7C1BF4240E0C2EFD5E4BA5F40E71D2079C9BF42403E99374DE5BA5F40BA4CC804CFBF4240C3E49574E5BA5F407ECFE9EFD8BF424072C9B707E6BA5F404679D2FA00C0424027229824E6BA5F404DEDC10D01C04240F4CEE405E7BA5F40D451DC1901C04240A2D20311E7BA5F4023431D4901C042407CF5CEC5E8BA5F4057C742F809C0424049A9D26CECBA5F400433616D1CC04240C46527FEEDBA5F4020B62D5D24C042402176DA6DEFBA5F403D7E53A32BC042400B8DDAFEF0BA5F401C39C69933C04240CDF77093F1BA5F4022A6AF8636C04240C792859EF1BA5F40C62126AA36C04240E723C48EF2BA5F40A91DE2363BC04240F0B1CC05F3BA5F40DAA7C5793DC042403F078CB0F3BA5F40D8914BB240C0424095DA2412F4BA5F4037349A9642C042405BA2D86AF4BA5F4014AF6B5044C042409622893AF5BA5F4078400D4D48C04240F62522CFF5BA5F4048ECC02B4BC04240DD2887B6F6BA5F400AE6C9994FC042403DEB97B1F8BA5F40CC4FC45F59C042407985920BFABA5F402C0A940960C042408EAA9EA2FCBA5F4040B4D8DF6CC04240515F19A8FEBA5F40EA3AA0E576C042401FADC03902BB5F40E7924AAE88C042409740D12805BB5F409897C94097C04240CC3D1DC708BB5F401E650B07A9C04240E4019BAA0ABB5F40DFC69B5BB2C04240551CCC5B0CBB5F401E3F99C8BAC042405E5EA3580DBB5F40940422AFBFC0424041F211C80EBB5F40EC6CB5D3C6C0424049468C0011BB5F407E362FCFD1C042401029B0A411BB5F40905DB1EDD4C042403B884AE411BB5F4062E64F10D6C042403465583813BB5F40DA3F0099DCC042407F73745815BB5F4022013431E7C04240D2B08CDF16BB5F40B52CBBD7EEC042404753C99F17BB5F40DEF24D99F2C042408DFC580118BB5F40D5805E82F4C042409C34E75418BB5F40E2ECDC26F6C042404D7A6BDB18BB5F40246A7BC3F8C042407870524A19BB5F407F4962F3FAC0424075A565E019BB5F40D60280EEFDC0424071B622E61ABB5F40E8F92C1703C1424000C09C1C1CBB5F406C2F732E09C142403DA34E8B1DBB5F404FBB045310C14240531773DC1EBB5F40F349C6C116C1424060E4E85C20BB5F408155B51C1EC14240CCD05F4622BB5F4070FEF37527C142405575FBE124BB5F40520C105834C142402FC9B83027BB5F403A3CB79C3FC142403C178E8D29BB5F40B212F03F4BC14240ACF9DE952CBB5F409C9EBA435AC142406F007B622EBB5F4058DD362963C142406CFCEBB22FBB5F40B5518BAF69C14240202DA72632BB5F40BC169C9975C14240729D6E2535BB5F40A017977784C14240C2C14F8639BB5F403911B54F9AC14240ADF0409D39BB5F40BC1587759AC142407308D31C3CBB5F4021AD06C19BC1424030ADCE443CBB5F404D27F9D39BC1424043B13D023EBB5F40665994779CC142407DA8434E3FBB5F409B35D4F29CC142406BFEFD9941BB5F40E65C3ACF9DC1424081B2F2B943BB5F40F31AE28C9EC142403A3867C346BB5F40E40EC3B29FC14240E6AE32124BBB5F40F73AC54CA1C1424078AC2D954EBB5F4010AAEE9AA2C1424046F8838350BB5F408CB0D453A3C1424054B0569250BB5F401621C687A3C14240149FEA5450BB5F409013FE40A8C142408629920550BB5F405D878A63AEC14240995C8D1251BB5F4086B42636AFC14240E16D5A6053BB5F400AA4F8F9B0C142407D50EEA153BB5F407EDC462FBAC142402CDD9C6E54BB5F40E7BF3440BFC14240F1F87B6B54BB5F40A3BA4959C0C14240FD9ADF4754BB5F40F5D9718CC6C14240C1F832A753BB5F40181882F0CAC142404E1947D84FBB5F40EE32A8F4D1C142402E3C01074FBB5F4082D2D87ED3C1424083317C884EBB5F40FB127A84D7C14240D85D06984EBB5F40CB28F9AED7C14240C0B2981250BB5F407E7CF1A8D9C14240B6F97AC151BB5F40EB09240CD8C14240917FE5D951BB5F40F1C3462DD8C14240B203425552BB5F40D902A5CDDBC14240FEA2AFF050BB5F40BE3AEABBE1C14240341313B950BB5F40773CBDCEE1C14240DBA4F1EC50BB5F4090EB87A3E7C14240B516854A51BB5F40856317E6F1C14240E43848B551BB5F4023808B4DFDC1424063C6528E5FBB5F400F2DB8EFFBC14240859C647F6FBB5F4035BC6CFBF9C1424001D92EAC74BB5F40ABBAE831F9C14240E368F65580BB5F4004ADC821FAC14240D080FAE88DBB5F40410AAA69FBC14240C3B16D1B99BB5F407985B07CFCC14240ADBF53C8A9BB5F409C392305FEC1424014434436ACBB5F40429F1C4FFEC1424097D6DCA9ACBB5F4052927C7EFEC14240394CB985AEBB5F404285E534FFC14240C8CD0D11B4BB5F4022D42F5801C2424030DBE340BABB5F40166E08B903C242401FA3DC96BFBB5F40C77301C705C24240CCA7E26FC3BB5F407090284907C242407E0926EAC8BB5F40F72F4B6509C24240A4FDEB40D2BB5F40334DE0B608C24240611EA3DCDABB5F409E08BD080AC242402FCB0C05DFBB5F400334009A0AC242406FAA116BE3BB5F40D5BDB7F20AC2424074A2E617ECBB5F40AD755E8C0BC242406D2274E5EEBB5F40DA08C0BE0BC24240AC6E64C8FABB5F40C3A634A70CC2424068A58A0A00BC5F4007B59B100DC242407DB3A9FA06BC5F40E064EB830DC242405CD9B95C09BC5F407EC4CA920DC242408A7054380FBC5F406F51FFC50DC2424071CC38A911BC5F40CC3976060EC24240140A07C917BC5F40831EBA6D0EC2424016ED6D0C1BBC5F40FD6B8BA20EC2424044263D301DBC5F40C99193C60EC24240DDB47A6322BC5F4040E9723810C24240EDAC490E27BC5F406FA1688B11C2424024CCB6042CBC5F4078BD69F112C2424020B22FFB30BC5F402BF9835E14C24240CA21C24B37BC5F40A3309C3F16C242406BA21D6B3EBC5F40D467535718C24240BD9A79BD43BC5F4025C2A1EC19C242409BBB097D50BC5F40B2CE82C61DC242404DAC4AC869BC5F402EBD167A25C242408E0D907D83BC5F40F3B9A04E2DC242408D2AFB9794BC5F402F0B6E7632C24240893290F3A0BC5F4022D77E2C36C242404CDC2BAFA6BC5F407EB0E4E937C24240360CAC92AABC5F408B46B71639C242406712C2F3B2BC5F409F26899D3BC24240167EDF40BBBC5F402E4601293EC24240D444479CC5BC5F40AAA4385A41C24240DF9812F2CABC5F40D209E9D93DC24240EFE886D5CCBC5F40FF6498C33CC24240A38921D2CEBC5F40B2F82A9F3BC24240E76DA02ED0BC5F40572213D93AC24240AB443D96D1BC5F405B8518E639C24240AB1F358FD3BC5F40B13E658B38C2424074DC6672DABC5F4035BB3F4034C24240A692E42BE2BC5F4085C0A2672FC24240BE889C7EEFBC5F409176850727C24240666C31F7F4BC5F406DB4269A23C24240AE5EF6F5FEBC5F40E4EEE1401DC2424073CADB7A02BD5F40523853011BC2424079BC1D0205BD5F40A522ED6619C242401DD4333B05BD5F402AD42E4119C2424064984CF805BD5F403F774FD218C24240B8CD6E5906BD5F40B6380C9C18C242401A0ED0C30FBD5F40E797759413C242407914FCF119BD5F4003E9204E0DC24240); 9 | -------------------------------------------------------------------------------- /예제/14장-sf_divide.sql: -------------------------------------------------------------------------------- 1 | CREATE FUNCTION sf_divide (p_dividend INT, p_divisor INT) 2 | RETURNS INT 3 | DETERMINISTIC 4 | SQL SECURITY INVOKER 5 | BEGIN 6 | DECLARE null_divisor CONDITION FOR SQLSTATE '45000'; 7 | 8 | IF p_divisor IS NULL THEN 9 | SIGNAL null_divisor 10 | SET MESSAGE_TEXT='Divisor can not be null', MYSQL_ERRNO=9999; 11 | ELSEIF p_divisor=0 THEN 12 | SIGNAL SQLSTATE '45000' 13 | SET MESSAGE_TEXT='Divisor can not be 0', MYSQL_ERRNO=9998; 14 | ELSEIF p_dividend IS NULL THEN 15 | SIGNAL SQLSTATE '01000' 16 | SET MESSAGE_TEXT='Dividend is null, so regarding dividend as 0', MYSQL_ERRNO=9997; 17 | RETURN 0; 18 | END IF; 19 | 20 | RETURN FLOOR(p_dividend / p_divisor); 21 | END;; 22 | -------------------------------------------------------------------------------- /예제/14장-sf_emp_count.sql: -------------------------------------------------------------------------------- 1 | CREATE FUNCTION sf_emp_count(p_dept_no VARCHAR(10)) 2 | RETURNS BIGINT 3 | DETERMINISTIC 4 | SQL SECURITY INVOKER 5 | BEGIN 6 | /* 사원 번호가 20000보다 큰 사원의 수를 누적하기 위한 변수 */ 7 | DECLARE v_total_count INT DEFAULT 0; 8 | /* 커서에 더 읽어야 할 레코드가 남아 있는지 여부를 위한 플래그 변수 */ 9 | DECLARE v_no_more_data TINYINT DEFAULT 0; 10 | /* 커서를 통해 SELECT된 사원 번호를 임시로 담아 둘 변수 */ 11 | DECLARE v_emp_no INTEGER; 12 | /* 커서를 통해 SELECT된 사원의 입사 일자를 임시로 담아 둘 변수 */ 13 | DECLARE v_from_date DATE; 14 | /* v_emp_list라는 이름으로 커서 정의 */ 15 | DECLARE v_emp_list CURSOR FOR 16 | 17 | SELECT emp_no, from_date FROM dept_emp WHERE dept_no=p_dept_no; 18 | /* 커서로부터 더 읽을 데이터가 있는지를 나타내는 플래그 변경을 위한 핸들러 */ 19 | DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_no_more_data = 1; 20 | 21 | /* 정의된 v_emp_list 커서를 오픈 */ 22 | OPEN v_emp_list; 23 | REPEAT 24 | /* 커서로부터 레코드를 한 개씩 읽어서 변수에 저장 */ 25 | FETCH v_emp_list INTO v_emp_no, v_from_date; 26 | IF v_emp_no > 20000 THEN 27 | SET v_total_count = v_total_count + 1; 28 | END IF; 29 | UNTIL v_no_more_data END REPEAT; 30 | 31 | /* v_emp_list 커서를 닫고 관련 자원을 반납 */ 32 | CLOSE v_emp_list; 33 | 34 | RETURN v_total_count; 35 | END ;; 36 | -------------------------------------------------------------------------------- /예제/14장-sp_remove_user.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE sp_remove_user (IN p_userid INT) 2 | DETERMINISTIC 3 | SQL SECURITY INVOKER 4 | BEGIN 5 | DECLARE v_affectedrowcount INT DEFAULT 0; 6 | DECLARE EXIT HANDLER FOR SQLEXCEPTION 7 | BEGIN 8 | SIGNAL SQLSTATE '45000' 9 | SET MESSAGE_TEXT='Can not remove user information', MYSQL_ERRNO=9999; 10 | END; 11 | 12 | -- // 사용자의 정보를 삭제 13 | DELETE FROM tb_user WHERE user_id=p_userid; 14 | -- // 위에서 실행된 DELETE 쿼리로 삭제된 레코드 건수를 확인 15 | SELECT ROW_COUNT() INTO v_affectedrowcount; 16 | -- // 삭제된 레코드 건수가 1건이 아닌 경우에는 에러 발생 17 | IF v_affectedrowcount<>1 THEN 18 | SIGNAL SQLSTATE '45000'; 19 | END IF; 20 | END;; 21 | -------------------------------------------------------------------------------- /예제/14장-sp_updateemployeehiredate.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE sp_updateemployeehiredate() 2 | DETERMINISTIC 3 | SQL SECURITY INVOKER 4 | BEGIN 5 | -- // 첫 번째 커서로부터 읽은 부서 번호를 저장 6 | DECLARE v_dept_no CHAR(4); 7 | -- // 두 번째 커서로부터 읽은 사원 번호를 저장 8 | DECLARE v_emp_no INT; 9 | -- // 커서를 끝까지 읽었는지 여부를 나타내는 플래그를 저장 10 | DECLARE v_no_more_rows BOOLEAN DEFAULT FALSE; 11 | -- // 부서 정보를 읽는 첫 번째 커서 12 | DECLARE v_dept_list CURSOR FOR SELECT dept_no FROM departments; 13 | 14 | -- // 부서별 사원 1명을 읽는 두 번째 커서 15 | DECLARE v_emp_list CURSOR FOR SELECT emp_no 16 | FROM dept_emp 17 | WHERE dept_no=v_dept_no LIMIT 1; 18 | 19 | -- // 커서의 레코드를 끝까지 다 읽은 경우에 대한 핸들러 20 | DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_no_more_rows := TRUE; 21 | 22 | OPEN v_dept_list; 23 | LOOP_OUTER: LOOP 24 | -- // 외부 루프 시작 ❶ 25 | FETCH v_dept_list INTO v_dept_no; 26 | IF v_no_more_rows THEN 27 | CLOSE v_dept_list; 28 | LEAVE loop_outer; 29 | END IF; 30 | 31 | OPEN v_emp_list; 32 | LOOP_INNER: LOOP 33 | FETCH v_emp_list INTO v_emp_no; 34 | -- // 레코드를 모두 읽었으면 커서 종료 및 내부 루프를 종료 35 | IF v_no_more_rows THEN 36 | -- // 반드시 no_more_rows를 FALSE로 다시 변경해야 한다. 37 | -- // 그렇지 않으면 내부 루프 때문에 외부 루프까지 종료돼 버린다. 38 | SET v_no_more_rows := FALSE; 39 | CLOSE v_emp_list; 40 | LEAVE loop_inner; 41 | END IF; 42 | END LOOP loop_inner; 43 | END LOOP loop_outer; 44 | END;; 45 | -------------------------------------------------------------------------------- /예제/14장-sp_updateemployeehiredate1.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE sp_updateemployeehiredate1() 2 | DETERMINISTIC 3 | SQL SECURITY INVOKER 4 | BEGIN 5 | -- // 첫 번째 커서로부터 읽은 부서 번호를 저장 6 | DECLARE v_dept_no CHAR(4); 7 | -- // 커서를 끝까지 읽었는지를 나타내는 플래그를 저장 8 | DECLARE v_no_more_depts BOOLEAN DEFAULT FALSE; 9 | -- // 부서 정보를 읽는 첫 번째 커서 10 | DECLARE v_dept_list CURSOR FOR SELECT dept_no FROM departments; 11 | -- // 부서 커서의 레코드를 끝까지 다 읽은 경우에 대한 핸들러 12 | DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_no_more_depts := TRUE; 13 | 14 | OPEN v_dept_list; 15 | LOOP_OUTER: LOOP -- // 외부 루프 시작 16 | FETCH v_dept_list INTO v_dept_no; 17 | IF v_no_more_depts THEN 18 | -- // 레코드를 모두 읽었으면 커서 종료 및 외부 루프 종료 19 | CLOSE v_dept_list; 20 | LEAVE loop_outer; 21 | END IF; 22 | 23 | BLOCK_INNER: BEGIN -- // 내부 프로시저 블록 시작 24 | -- // ----------------------------------------------------------------- 25 | -- // 두 번째 커서로부터 읽은 사원 번호 저장 26 | DECLARE v_emp_no INT; 27 | -- // 사원 커서를 끝까지 읽었는지 여부를 위한 플래그 저장 28 | DECLARE v_no_more_employees BOOLEAN DEFAULT FALSE; 29 | -- // 부서별 사원 1명을 읽는 두 번째 커서 30 | DECLARE v_emp_list CURSOR FOR SELECT emp_no 31 | FROM dept_emp 32 | WHERE dept_no=v_dept_no LIMIT 1; 33 | -- // 사원 커서의 레코드를 끝까지 다 읽은 경우에 대한 핸들러 34 | DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_no_more_employees := TRUE; 35 | 36 | OPEN v_emp_list; 37 | LOOP_INNER: LOOP -- // 내부 루프 시작 38 | FETCH v_emp_list INTO v_emp_no; 39 | -- // 레코드를 모두 읽었으면 커서 종료 및 내부 루프를 종료 40 | IF v_no_more_employees THEN 41 | CLOSE v_emp_list; 42 | LEAVE loop_inner; 43 | END IF; 44 | END LOOP loop_inner; -- // 내부 루프 종료 45 | -- // ----------------------------------------------------------------- 46 | END block_inner; -- // 내부 프로시저 블록 종료 47 | END LOOP loop_outer; -- // 외부 루프 종료 48 | END;; 49 | --------------------------------------------------------------------------------