Property changes on: . ___________________________________________________________________ Modified: trunk-merged - /trunk:1-105595,105675,105677,105733-105734,105773,105785,105804,105840-105841,105864,105899,105933,106036,106040,106139,106186,106238-106239,106329,106346,106399,106438-106439,106501,106507,106518,106553,106607,106654,106684,106707,106789,106843,106892,106896,106946,107017,107019,107068,107100,107103,107157,107159,107162,107177,107292,107373,107406,107409,107462,107465-107466,107525,107638,107659,107710,107715,107718,107791,107827,107878,107960,107998,108032,108084,108137,108191,108238,108289,108293,108295,108346,108472,108508,108529,108531,108584,108586,108683,108738,108740,108793,108797,108799,108927,108962,109024,109108,109111,109166,109168,109227,109229,109282,109357,109389-109390,109396,109447,109451,109475,109545,109576,109651,109683,109714,109764,109775,109839,109942,109974,110020,110036,110084,110164,110268,110272,110303,110337,110339,110396,110475,110499,110578,110610,110615,110619,110629,110636,110689,110691,110726,110780,110831,110881,110911,110963,111017,111021,111025,111067,111123,111127,111130,111246,111285,111360,111410,111443,111497,111533,111565,111606,111659,111721,111857,111908-111909,111961,111998,112033,112069,112126,112148,112205,112210,112289,112357,112394,112431,112469,112600,112653-112707,112709,112711-112714,112785,112821,112972,113013,113066,113119,113172,113241,113243,113245,113297,113349,113400,113403,113455,113505,113559,113597,113647,113682,113785,113836,113838,113875,113928,113980,114022,114024,114027,114030,114036,114042,114046,114052,114061,114064,114073,114084-114085,114088,114090,114092-114093,114096,114098,114101,114104,114107,114113,114115,114118,114121,114134,114139,114141,114146,114150-114152,114185,114192,114196,114199,114202,114205,114208,114227,114233,114243,114254,114259,114271,114276,114279,114285,114300,114320,114323,114327,114389,114527,114538,114540,114548,114553,114559,114572,114575,114580,114588,114592,114595,114598,114601,114604,114609,114612,114617,114622,114625,114629,114633,114635,114651,114663,114674,114676,114690,114696,114700,114709,114713,114776,114824,114830,114849,114866,114876,114884,114888,114892,114899,114922,114931,115018,115104,115197,115277,115280,115283,115286,115288,115302,115305,115309,115313-115323,115325-115336,115338-115343,115345-115472,115474-115506,115508-115514,115516-115517,115519-115524,115526-115534,115536,115538-115581,115583,115585,115587,115589-115590,115592,115596-115736,115738-115783,115785-115812,115814-115849,115851-116137,116139-116178,116180-116221,116225-116228,116230-116236,116238,116241-116296,116298-116460,116462-116470,116472-116521,116523-116556,116558-116589,116591,116593,116595-116662,116664-116730,116732-116764,116766-116847,116849-116883,116885-117023,117025-117051,117054-117083,117085-117132,117134-117181,117183-117211,117213-117261,117263,117265,117267-117294,117296,117298-117400,117402-117430,117432-117516,117518-117523,117525-117624,117626-117657,117659-117692,117694-117724,117726-117793,117795-117801,117803-117811,117813-117821,117823-117824,117826-117827,117829-117833,117835-117869,117871-117949,117951-117982,117984-117987,117989-118058,118060-118100,118102-118156,118158,118160-118163,118165-118172,118174,118177-118222,118224-118416,118418,118420-118561,118563-118694,118696-118701,118703-118782,118784-118789,118791-118823,118825-118910,118912-119014,119016-119073,119075-119076,119078-119125,119127-119206,119208-119422,119424-119997,119999-120062,120065,120067-120128,120130-120165,120167-120173,120175-120229,120231-120371,120373-120425,120427-120634,120636-120671,120674-120731,120735-120788,120790-121041,121043-121196,121198-121283,121287-121333,121335-121364,121366,121368-121400,121404-121438,121440,121442-121495,121497-121500,121502,121504-121554,121556-121558,121560-121598,121600-121648,121650-121682,121684-121715,121717-121954,121956-121992,121994-122046,122048-122061,122063-122227,122229-122231,122233-122239,122242,122245-122314,122316-122370,122372-122398,122400-122433,122435-122460,122462-122492,122494-122522,122524-122525,122527-122615,122617-122663,122665-122715,122717-122765,122767-122801,122803-122833,122835-122922,122924-122925,122927,122929-122976,122978-123008,123010-123040,123042-123043,123045-123075,123077-123114,123116-123165,123167-123200,123202,123204-123274,123276-123357,123359-123392,123394-123445,123447,123449-123455,123457-123525,123527-123540,123542-123543,123545-123574,123576-123608,123610-123647,123649,123651-123827,123829,123831-123864,123866,123868-123987,123989-124022,124024-124048,124050-124101,124103-124124,124126,124128-124179,124181-124595,124597-124634,124636-124668,124670-124706,124708-124743,124745-124797,124799-124834,124836-124908,124910-125019,125021-125054,125056-125095,125097-125132,125134,125136-125331,125333-125385,125387-125437,125439-125592,125594-125595,125597-125646,125648-125795,125797-125855,125857-125879,125881-125893,125896-126020,126022-126114,126116-126151,126155-126186,126188-126307,126313-126318,126320-126395,126397-126447,126449-126479,126481-126514,126516-126570,126573-126680,126682-126834,126836-126958,126961-126990,126992-127016,127018-127088,127090-127168,127170-127209,127211-127329,127331-127361,127363-127400,127402-127501,127503-127544,127546-127557,127559-127563,127565-127608,127610-127621,127623-127684,127686-127719,127721-127830,127832-127851,127853-127855,127858-127930,127932,127935-127994,127996-128029,128031-128081,128083-128196,128199-128200,128202-128239,128241,128243-128246,128248-128253,128255-128273,128275-128283,128285-128293,128295-128343,128345-128377,128380,128382-128453,128456-128484,128486-128524,128526-128563,128565-128637,128639-128689,128691-129113,129115-129158,129160-129209,129211-129306,129308-129505,129507-129580,129582-129733,129735-129984,129986,129988-130042,130044-130231,130233,130235-130295,130298-130319,130321-130373,130375-130575,130577-130696,130698-130731,130734-130950,130952-131014,131016-131206,131208-131481,131483-131528,131530-131569,131571-131605,131607-131642,131644-132045,132047-132168,132170-132202,132204-132205,132207-132469,132471-132571,132573-132785,132787,132789-132826,132828-132974,132976-133237,133239-133565,133567-133569,133571-133650,133652-133709,133711-133769,133771-133818,133820-133859,133861-133903,133905-133940,133942,133944-134004,134006-134087,134089-134161,134163-134252,134254-134311,134313-134352,134354-134400,134402-134441,134444-134652,134654-134704,134706-134802,134804-134814,134816-134866,134868-134915,134917-134918,134920-134924,134926-135060,135062-135157,135159-135234,135236-135299,135301,135303-135331,135333-135370,135372,135374-135404,135406-135475,135477-135647,135649-135679,135682-135716,135718-136033,136035-136140,136142-136244,136246-136297,136299,136301,136303-136304,136306-136348,136350-136401,136403-136404,136407,136409-136476,136478-136480,136482-136503,136505-136561,136563-136675,136677-136678,136680-136719,136721-136750,136752-136786,136788-136818,136820-136887,136889,136891-136916,136918-137027,137029-137054,137056-137081,137083-137088,137090-137109,137111,137113-137348,137350-137455,137457-137530,137532-137581,137583-137677,137679-137850,137852-137900,137902-138085,138087-138123,138125-138147,138149-138154,138156-138309,138311-138408,138410-138516,138518-138569,138571-138693,138695-138737,138739-138813,138815-138850,138852-138886,138888-138938,138940-138942,138944-138950,138952-139019,139021-139145,139147-139152,139155-139209,139211-139344,139347-139524,139526-139557,139559-139562,139564-139621,139623-139703,139705-139770,139772-139774,139776-139831,139833-139927,139929-139980,139982-140051,140054-140056,140058-140060,140062-140115,140117-140166,140168-140200,140202-140245,140247-140300,140302-140354,140356-140417,140419-140421,140423-140432,140434-140488,140490,140492-140558,140560-140562,140564-140751,140753-140819,140822-140823,140825-140859,140861-140886,140888-140937,140939-141217,141219-141270,141272-141327,141329-141424,141426-141463,141465-141506,141508-141625,141627-141678,141680-141905,141907-141997,141999,142001-142079,142081-142145,142147-142180,142182-142218,142220-142317,142319-142535,142537-142634,142636-142807,142809-142991,142993-143033,143035-143225,143227-143270,143272-143339,143341-143399,143401-143475,143477-143696,143698-143798,143800-143839,143841-143973,143975-144148,144150-144198,144200-144257,144482,144523,144563,144569,144635,144678,144681,144829,144949-144951,145076,145249,145428,145487,145553,145579,145606,145692,145962,146198,146514,146555,146807,146920,146928,147050,147194,147518-147591,147593-147634,147636-147713,147715-147759,147762-147852,147855-147941,147943-147951,147953-148009,148011-148068,148072-148159,148161-148324,148326-148328,148330-148375,148377-148424,148426-148470,148472,148475-148518,148520-148569,148571-148678,148680-148694,148696-148736,148738-148753,148755-148824,148826-148866,148868-148984,148986-148990,148992-149039,149041-149198,149200-149208,149487,149756,150125,150307,150817,150906-150929,150931-150970,150972-151018,151020-151059,151061-151100,151102-151187,151189,151191-151245,151247-151326,151328-151370,151372-151419,151421-151427,151429-151438,151440-151511,151513-151553,151556-151599,151602-151641,151643-151681,151683-151721,151723-151731,151733-151738,151740-151760,151763,151765-151829,151831-151905,151907-151979,151981-152018,152021-152131,152133-152173,152175-152447,152449-152535,152537-152605,152646,152765,152812,152969-152989,152991-153056,153058-153123,153125-153222,153224-153295,153297-153361,153363-153364,153366-153402,153404-153434,153436,153438-153467,153469,153471,153473-153506,153508-153540,153542,153544-153576,153579,153581,153583-153616,153619-153651,153653-153746,153748-153786,153788-153802,153804-153851,153853-153903,153906-153946,153948-153982,153984-154022,154024-154148,154150,154152-154185,154188-154190,154192-154224,154226-154259,154261-154328,154330-154427,154430-154466,154468,154470-154506,154508-154541,154543-154577,154579-154614,154616,154618-154646,154648-154686,154688-154731,154733-154795,154797,154799-154800,154802-154836,154838,154840-154874,154876-154914,154916-154921,154924-154925,154927-154966,154968-155065,155067-155078,155081-155174,155176-155203,155205,155207-155240,155242-155243,155245-155263,155265-155281,155283,155285-155323,155325-155394,155396-155400,155402-155512,155514-155515,155517-155589,155591-155636,155638-155670,155672-155710,155712-155762,155764-155928,155930-155933,155935-155966,155968-156017,156019-156050,156052-156086,156088-156119,156121-156124,156126,156128-156161,156163-156297,156299-156354,156356-156442,156444-156534,156536-156540,156542-156574,156576-156611,156613-156646,156648,156650-156873,156875-156882,156884-156915,156917,156919-156961,156963-157005,157007-157038,157040,157042-157072,157074-157166,157168-157252,157254-157365,157367-157459,157462,157464-157511,157513-157561,157563,157565-157591,157593-157631,157633-157638,157640-157674,157676-157738,157740-157783,157785-157817,157819,157821-157869,157871-157873,157875-157892,157894-157905,157907-157938,157941-157972,157975-158060,158063-158069,158071,158073-158077,158079-158132,158134-158306,158308-158314,158316-158413,158415-158481,158483-158604,158607-158631,158633-158685,158687,158689,158691-158693,158695-158722,158724-158753,158755,158757-158807,158809-158850,158852-158856,158858-158875,158877-158923,158926-158958,158960-159049,159051-159053,159055-159158,159160-159161,159163-159188,159190-159249,159251-159276,159360,159475,159534,159554,159774,159818,159898,159911,160004,160097,160170-160172,160208,160308,160319,160333,160481,160552,160555,160559,160585,160626,160663,160699-160700,160760,160791,160854,160856,160945,161014,161147,161181,161252,161288,161349-161350,161427,161493,161726,161790,161951,162016,162079,162140,162197,162205,162266,162271,162275,162291,162342,162355,162414,162466,162488,162583,162619,162656,162664,162667,162739,162805,162891,162927,163081,163085,163089,163094,163168,163171,163254,163317,163384,163449,163512,163612,163642,163667,163670,163675,163762,163873,164203,164257,164268,164270,164272,164349,164351,164419,164423,164602,164606,164623,164648,164659,164675,164737,164798,164801,164807,164877,164882,164942,164978,165071,165142-165143,165180-165318,165320-165324,165327-165329,165331-165396,165398-165432,165434-165468,165470-165501,165503-165537,165539-165540,165542-165723,165725-165791,165793-165797,165799-165882,165884-165885,165887-165953,165955-165991,165993-166057,166059-166157,166159-166218,166220-166262,166264-166267,166269-166341,166343-166600,166602-166624,166626-166730,166732-166822,166824-166957,166959-167020,167022-167056,167058-167060,167062-167124,167126-167179,167181-167415,167417-167790,167793-167834,167836,167838-167887,167889-167972,167974-168053,168055-168264,168266-168268,168270-168478,168480-168521,168524-168538,168540-168574,168576-168578,168580-168584,168586-168590,168592-168598,168600,168602-168608,168611-168618,168620-168625,168627-168635,168637,168640-168718,168720-168724,168726-168727,168729-168731,168733,168735-168758,168761-168897,168899-169079,169081-169115,169117-169152,169154-169276,169278-169324,169326,169328-169366,169368,169370-169437,169439-169556,169558-169573,169575-169613,169615-169619,169621-169624,169626-169672,169674-169790,169792-169797,169799-169865,169867-169909,169911-170006,170008-170111,170113-170306,170308-170350,170352-170456,170458-170459,170461-170462,170464-170497,170499-170901,170903-171042,171044-171080,171082-171120,171122,171124-171262,171264-171363,171365-171399,171402-171452,171454-171557,171559-171756,171758-171792,171794-171796,171798-171879,171881-171923,171926-172098,172100-172130,172133-172233,172235-172267,172269,172271-172317,172320-172369,172371-172439,172441-172547,172549-172639,172641-172777,172779-172815,172819-172854,172856-172889,172891-172928,172930-172962,172964-173027,173029-173046,173048-173129,173131-173168,173170-173248,173250-173501,173504-173656,173658-173770,173772-173847,173849-173857,173859-173900,173903-174045,174047-174324,174326-174369,174371-174431,174433-174434,174436-174469,174471-174502,174504-174579,174581-174644,174646-174704,174706-174843,174845-174885,174887-174950,174952-175126,175128-175249,175251-175343,175345-175407,175409-175410,175412-175474,175476-175507,175509-175511,175513-175590,175592-175596,175598-175622,175624-175635,175637-175654,175656-175662,175664-175698,175700-175782,175784-175828,175830-175881,175883-175982,175984-176099,176101-176137,176139-176319,176321-176355,176357-176359,176361-176500,176502-176512,176514-176555,176558-176591,176593-176626,176628-176630,176633-176634,176636-176638,176640-176665,176667-176668,176670-176705,176707-176770,176772-176840,176842-176868,176870-176900,176902-176903,176905-177160,177162-177286,177288-177290,177292-177319,177321-177450,177452-177505,177507-177623,177625-177696,177698-177731,177733-177848,177850-177851,177853-177854,177856-177883,177885-177912,177914-177943,177945-177987,177989-178021,178023-178026,178028-178029,178031-178060,178062-178106,178108-178299,178301-178572,178574-178604,178606,178608-178640,178642-178702,178705-178732,178734-178763,178765-178800,178802-178847,178849-178869,178871-178918,178920-179020,179022-179121,179123-179153,179155-179163,179165-179253,179255-179290,179292-179322,179324-179360,179362-179464,179466-179674,179676-179744,179746-179902,179904-179936,179938-179971,179973-180010,180012-180078,180080-180154,180156-180258,180260,180262-180303,180305-180333,180335-180368,180370-180381,180383-180640,180642-180683,180685-180718,180720-180749,180751-180858,180860-180861,180863-180897,180899-180934,180936-180937,180939-180941,180943-181026,181029-181098,181100-181133,181135-181209,181211-181243,181245-181291,181293-181300,181302-181464,181466-181576,181578-181898,181900-181984,181986-182021,182023-182070,182072-182354,182356-182361,182363-182407,182409-182520,182522-182595,182597-182606,182608-182652,182654-182761,182763-182825,182827-182847,182849-182882,182884-182959,182961-182963,182965,182967-183031,183033-183123,183125-183147,183149-183195,183197-183238,183240-183311,183313-183344,183346-183510,183512-183552,183556-183651,183653-183830,183832-183994,183996-184042,184044-184150,184152-184218,184220-184338,184340-184343,184345-184511,184513-184530,184532-184627,184629,184631-184638,184640-184676,184678-184692,184694-184761,184763-184797,184799-184800,184802-184985,184987-185298,185300-185431,185433-185531,185533-185580,185582-185603,185605-185703,185705-185740,185742-185776,185778-185911,185913-186020,186022-186057,186059-186077,186079-186296,186298-186381,186383-186446,186448-186524,186526-186536,186538-186562,186564-186565,186567-186619,186621-186623,186625-186652,186654-186686,186688-186898,186900-186927,186929-186952,186954-186956,186958-187035,187037-187049,187051-187104,187106-187107,187109-187137,187139-187178,187180-187209,187212-187268,187270-187359,187362-187380,187382-187425,187427-187487,187489-187490,187492-187555,187557-187559,187561-187598,187600-187633,187637-187672,187676-187679,187681-187713,187715-187769,187771,187774-187829,187831-187865,187867-187962,187964-188149,188151-188282,188285-188341,188343-188377,188379-188514,188516-188543,188545-188704,188706-188741,188743-188900,188902-188941,188943-189349,189351-189537,189540-189734,189736-189991,189993-189999,190001-190153,190155-190216,190218-190249,190251-190348,190350-190420,190422,190424-190453,190455-190456,190458-190483,190485-190515,190518-190544,190546-190576,190578-190585,190587-190625,190627-190662,190664-190734,190736-190796,190798-190829,190831-190864,190866-190946,190948-190988,190990,190992,190994-191027,191029-191115,191117-191139,191141-191174,191176,191178-191210,191212,191214-191220,191222-191299,191301-191331,191333-191410,191412-191417,191420-191422,191424-191629,191631-191738,191740-191780,191782-191784,191786-191847,191849-191883,191885-191918,191920-191996,191998-192031,192033-192058,192060-192095,192097-192170,192172-192361,192363-192426,192428-192589,192591-192699,192701-192735,192737-192771,192773-192807,192809-192852,192854-193005,193007-193348,193350-193458,193460,193462-193501,193503-193677,193679-193717,193719-193756,193758-193831,193833-193885,193887-194059,194061-194100,194102-194282,194284-194429,194431-194476,194478,194480-194609,194611-194634,194636-194648,194650-194944,194946-194981,194983-195074,195076-195164,195166-195209,195211-195265,195267-195278,195280-195364,195366,195369-195588,195590-195762,195764-195797,195799-195948,195950-195991,195993-196071,196073-196113,196115-196186,196189-196226,196228-196245,196247-196267,196269,196271,196273-196307,196309-196343,196345-196376,196378-196380,196382-196416,196418-196455,196457-196487,196489-196519,196521-196553,196555-196584,196586-196621,196623-196724,196726-196757,196759-196791,196793-196892,196894-196906,196908-196944,196947,196949-197024,197026-197124,197126-197188,197190-197264,197267-197334,197336-197337,197339-197373,197375-197405,197407-197408,197410-197430,197432-197527,197529-197534,197536-197569,197571-197615,197617-197700,197702-197737,197739,197741-197774,197776,197778-197823,197825-197827,197829-197860,197862-197925,197927-197958,197961-197995,197997-198063,198065-198082,198084-198087,198089-198138,198140-198145,198147-198181,198184-198185,198187-198216,198218-198247,198249-198433,198435-198436,198439-198441,198443-198469,198471-198497,198499,198501-198510,198512-198528,198531-198557,198559-198560,198562-198564,198566-198596,198598-198660,198662-198665,198667-198669,198671-198724,198726,198728,198730-198761,198763-198891,198893-198953,198955-198957,198959-199090,199092-199367,199369,199371,199373,199375,199377-199408,199410,199412,199414-199445,199447-199478,199480-199513,199515-199546,199548-199587,199589-199695,199697-199742,199744-199922,199924-199957,199959-199999,200001-200037,200039-200107,200109-200189,200191-200253,200255-200289,200291-200325,200327-200427,200429,200431-200476,200478-200518,200520-200583,200585-200586,200588-200619,200621-200655,200657-200689,200726,200764,200943,200946,200985,201056-201090,201223,201262,201381,201445,201458,201462,201610,201678,201783,201829,201994,202183,202258,202262,202337,202343,202415,202417,202497,202574,202603,202672,202753,202761,202925,202967,203037,203116,203231,203376,203381,203444,203672,203699,203710,203721,203779,203802,203853,203909,204247,204301,204470,204475,204563,204710,204835,204948,205120,205151,205196,205216,205291,205350,205412,205479,205532,205600,205696,205770,205776,205840,205878,205939,205985,206341,206386,206489,206567,206636,206702,206707,206768,206808,206868,206873,206939,207029,207095,207156,207361,207424,207680,207723,207854,207946,208263,208314,208383,208388,208464,208548,208588,208593,208749,208924,209056,209098,209132,209256,209279,209317,209400,209554,209711,209760-209761,209839,209887,210238,210564,210640,210817,210908,210914,210992,211040,211113,211232,211275,211347,211539,211584,211767,211876,211957,212027,212067,212113,212431,212506,212627,212758,212922,212939,213093,213113,213179,213327,213404,213494,213560,213716,213833,213900,213971,213975,214071,214152,214195,214199,214360,214466,214518,214696,214702,214819,214945,215161,215338,215522,215681,215955,216009,216092,216222,216264,216438,216695,216842,216993,217033,217074,217199,217368,217445,217593,217730,217807,217916,217990,218184,218224,218361,218499-218504,218566,218579,218586,218687,218731,218799,218868,218918,218933,219061,219139,219264,219304,219324,219412,219451,219520,219587,219654,219721,219818,220028,220100,220217,220289,220365,220586,220721,220833,220906,221044,221085,221201,221266,221368,221432,221554-221589,221592,221697,221705,221777,221844,221920,221971,222030,222110,222176,222273,222298,222351,222463,222543,222692,222799,222873,222880,223088,223132,223136,223206,223215,223273,223330,223487,223652,223756,223832,224178,224261,224331,224448,224567,224671,224774,224856,224932,225033,225307,225360,225582,226018,226159,226305,226378,226532,226812,226890,227091,227162,227167,227361,227368,227372,227712,227739,227829,227945,228080,228145,228189,228268,228339,228410,228420,228499,228548,228620,228693,228858,229050,229168,229282,229351,229361,229460,229670,229912,229966,230039,230145,230247,230343,230381,230509,230583,230628,230726,230773,230877,230881,231095,231189,231299,231491,231556,231602,231688,231692,231741,231867,231927,232008,232012,232091,232269,232345,232351,232356,232576,232582,232660-232661,232854,233046,233093,233100,233121,233280,233394,233472,233577,233611,233718,234008,234129,234210,234256,234380,234526,234700,234893,235010,235053,235298,235422,235573,235656,235660,235822,235941,236063,236186,236300,236358,236434,236510,236613,236667,236713,236802,236847,236902,236982,237136,237319,237323,237406,237410,237414,237494,237574,237699,237839,237920,238010,238134,238181,238231,238361,238405,238412,238630,238635,238754,238835,238916,239308,239427,239473,239520,239571,239712,239834,239839,240078,240175 + /trunk:1-105595,105675,105677,105733-105734,105773,105785,105804,105840-105841,105864,105899,105933,106036,106040,106139,106186,106238-106239,106329,106346,106399,106438-106439,106501,106507,106518,106553,106607,106654,106684,106707,106789,106843,106892,106896,106946,107017,107019,107068,107100,107103,107157,107159,107162,107177,107292,107373,107406,107409,107462,107465-107466,107525,107638,107659,107710,107715,107718,107791,107827,107878,107960,107998,108032,108084,108137,108191,108238,108289,108293,108295,108346,108472,108508,108529,108531,108584,108586,108683,108738,108740,108793,108797,108799,108927,108962,109024,109108,109111,109166,109168,109227,109229,109282,109357,109389-109390,109396,109447,109451,109475,109545,109576,109651,109683,109714,109764,109775,109839,109942,109974,110020,110036,110084,110164,110268,110272,110303,110337,110339,110396,110475,110499,110578,110610,110615,110619,110629,110636,110689,110691,110726,110780,110831,110881,110911,110963,111017,111021,111025,111067,111123,111127,111130,111246,111285,111360,111410,111443,111497,111533,111565,111606,111659,111721,111857,111908-111909,111961,111998,112033,112069,112126,112148,112205,112210,112289,112357,112394,112431,112469,112600,112653-112707,112709,112711-112714,112785,112821,112972,113013,113066,113119,113172,113241,113243,113245,113297,113349,113400,113403,113455,113505,113559,113597,113647,113682,113785,113836,113838,113875,113928,113980,114022,114024,114027,114030,114036,114042,114046,114052,114061,114064,114073,114084-114085,114088,114090,114092-114093,114096,114098,114101,114104,114107,114113,114115,114118,114121,114134,114139,114141,114146,114150-114152,114185,114192,114196,114199,114202,114205,114208,114227,114233,114243,114254,114259,114271,114276,114279,114285,114300,114320,114323,114327,114389,114527,114538,114540,114548,114553,114559,114572,114575,114580,114588,114592,114595,114598,114601,114604,114609,114612,114617,114622,114625,114629,114633,114635,114651,114663,114674,114676,114690,114696,114700,114709,114713,114776,114824,114830,114849,114866,114876,114884,114888,114892,114899,114922,114931,115018,115104,115197,115277,115280,115283,115286,115288,115302,115305,115309,115313-115323,115325-115336,115338-115343,115345-115472,115474-115506,115508-115514,115516-115517,115519-115524,115526-115534,115536,115538-115581,115583,115585,115587,115589-115590,115592,115596-115736,115738-115783,115785-115812,115814-115849,115851-116137,116139-116178,116180-116221,116225-116228,116230-116236,116238,116241-116296,116298-116460,116462-116470,116472-116521,116523-116556,116558-116589,116591,116593,116595-116662,116664-116730,116732-116764,116766-116847,116849-116883,116885-117023,117025-117051,117054-117083,117085-117132,117134-117181,117183-117211,117213-117261,117263,117265,117267-117294,117296,117298-117400,117402-117430,117432-117516,117518-117523,117525-117624,117626-117657,117659-117692,117694-117724,117726-117793,117795-117801,117803-117811,117813-117821,117823-117824,117826-117827,117829-117833,117835-117869,117871-117949,117951-117982,117984-117987,117989-118058,118060-118100,118102-118156,118158,118160-118163,118165-118172,118174,118177-118222,118224-118416,118418,118420-118561,118563-118694,118696-118701,118703-118782,118784-118789,118791-118823,118825-118910,118912-119014,119016-119073,119075-119076,119078-119125,119127-119206,119208-119422,119424-119997,119999-120062,120065,120067-120128,120130-120165,120167-120173,120175-120229,120231-120371,120373-120425,120427-120634,120636-120671,120674-120731,120735-120788,120790-121041,121043-121196,121198-121283,121287-121333,121335-121364,121366,121368-121400,121404-121438,121440,121442-121495,121497-121500,121502,121504-121554,121556-121558,121560-121598,121600-121648,121650-121682,121684-121715,121717-121954,121956-121992,121994-122046,122048-122061,122063-122227,122229-122231,122233-122239,122242,122245-122314,122316-122370,122372-122398,122400-122433,122435-122460,122462-122492,122494-122522,122524-122525,122527-122615,122617-122663,122665-122715,122717-122765,122767-122801,122803-122833,122835-122922,122924-122925,122927,122929-122976,122978-123008,123010-123040,123042-123043,123045-123075,123077-123114,123116-123165,123167-123200,123202,123204-123274,123276-123357,123359-123392,123394-123445,123447,123449-123455,123457-123525,123527-123540,123542-123543,123545-123574,123576-123608,123610-123647,123649,123651-123827,123829,123831-123864,123866,123868-123987,123989-124022,124024-124048,124050-124101,124103-124124,124126,124128-124179,124181-124595,124597-124634,124636-124668,124670-124706,124708-124743,124745-124797,124799-124834,124836-124908,124910-125019,125021-125054,125056-125095,125097-125132,125134,125136-125331,125333-125385,125387-125437,125439-125592,125594-125595,125597-125646,125648-125795,125797-125855,125857-125879,125881-125893,125896-126020,126022-126114,126116-126151,126155-126186,126188-126307,126313-126318,126320-126395,126397-126447,126449-126479,126481-126514,126516-126570,126573-126680,126682-126834,126836-126958,126961-126990,126992-127016,127018-127088,127090-127168,127170-127209,127211-127329,127331-127361,127363-127400,127402-127501,127503-127544,127546-127557,127559-127563,127565-127608,127610-127621,127623-127684,127686-127719,127721-127830,127832-127851,127853-127855,127858-127930,127932,127935-127994,127996-128029,128031-128081,128083-128196,128199-128200,128202-128239,128241,128243-128246,128248-128253,128255-128273,128275-128283,128285-128293,128295-128343,128345-128377,128380,128382-128453,128456-128484,128486-128524,128526-128563,128565-128637,128639-128689,128691-129113,129115-129158,129160-129209,129211-129306,129308-129505,129507-129580,129582-129733,129735-129984,129986,129988-130042,130044-130231,130233,130235-130295,130298-130319,130321-130373,130375-130575,130577-130696,130698-130731,130734-130950,130952-131014,131016-131206,131208-131481,131483-131528,131530-131569,131571-131605,131607-131642,131644-132045,132047-132168,132170-132202,132204-132205,132207-132469,132471-132571,132573-132785,132787,132789-132826,132828-132974,132976-133237,133239-133565,133567-133569,133571-133650,133652-133709,133711-133769,133771-133818,133820-133859,133861-133903,133905-133940,133942,133944-134004,134006-134087,134089-134161,134163-134252,134254-134311,134313-134352,134354-134400,134402-134441,134444-134652,134654-134704,134706-134802,134804-134814,134816-134866,134868-134915,134917-134918,134920-134924,134926-135060,135062-135157,135159-135234,135236-135299,135301,135303-135331,135333-135370,135372,135374-135404,135406-135475,135477-135647,135649-135679,135682-135716,135718-136033,136035-136140,136142-136244,136246-136297,136299,136301,136303-136304,136306-136348,136350-136401,136403-136404,136407,136409-136476,136478-136480,136482-136503,136505-136561,136563-136675,136677-136678,136680-136719,136721-136750,136752-136786,136788-136818,136820-136887,136889,136891-136916,136918-137027,137029-137054,137056-137081,137083-137088,137090-137109,137111,137113-137348,137350-137455,137457-137530,137532-137581,137583-137677,137679-137850,137852-137900,137902-138085,138087-138123,138125-138147,138149-138154,138156-138309,138311-138408,138410-138516,138518-138569,138571-138693,138695-138737,138739-138813,138815-138850,138852-138886,138888-138938,138940-138942,138944-138950,138952-139019,139021-139145,139147-139152,139155-139209,139211-139344,139347-139524,139526-139557,139559-139562,139564-139621,139623-139703,139705-139770,139772-139774,139776-139831,139833-139927,139929-139980,139982-140051,140054-140056,140058-140060,140062-140115,140117-140166,140168-140200,140202-140245,140247-140300,140302-140354,140356-140417,140419-140421,140423-140432,140434-140488,140490,140492-140558,140560-140562,140564-140751,140753-140819,140822-140823,140825-140859,140861-140886,140888-140937,140939-141217,141219-141270,141272-141327,141329-141424,141426-141463,141465-141506,141508-141625,141627-141678,141680-141905,141907-141997,141999,142001-142079,142081-142145,142147-142180,142182-142218,142220-142317,142319-142535,142537-142634,142636-142807,142809-142991,142993-143033,143035-143225,143227-143270,143272-143339,143341-143399,143401-143475,143477-143696,143698-143798,143800-143839,143841-143973,143975-144148,144150-144198,144200-144257,144482,144523,144563,144569,144635,144678,144681,144829,144949-144951,145076,145249,145428,145487,145553,145579,145606,145692,145962,146198,146514,146555,146807,146920,146928,147050,147194,147518-147591,147593-147634,147636-147713,147715-147759,147762-147852,147855-147941,147943-147951,147953-148009,148011-148068,148072-148159,148161-148324,148326-148328,148330-148375,148377-148424,148426-148470,148472,148475-148518,148520-148569,148571-148678,148680-148694,148696-148736,148738-148753,148755-148824,148826-148866,148868-148984,148986-148990,148992-149039,149041-149198,149200-149208,149487,149756,150125,150307,150817,150906-150929,150931-150970,150972-151018,151020-151059,151061-151100,151102-151187,151189,151191-151245,151247-151326,151328-151370,151372-151419,151421-151427,151429-151438,151440-151511,151513-151553,151556-151599,151602-151641,151643-151681,151683-151721,151723-151731,151733-151738,151740-151760,151763,151765-151829,151831-151905,151907-151979,151981-152018,152021-152131,152133-152173,152175-152447,152449-152535,152537-152605,152646,152765,152812,152969-152989,152991-153056,153058-153123,153125-153222,153224-153295,153297-153361,153363-153364,153366-153402,153404-153434,153436,153438-153467,153469,153471,153473-153506,153508-153540,153542,153544-153576,153579,153581,153583-153616,153619-153651,153653-153746,153748-153786,153788-153802,153804-153851,153853-153903,153906-153946,153948-153982,153984-154022,154024-154148,154150,154152-154185,154188-154190,154192-154224,154226-154259,154261-154328,154330-154427,154430-154466,154468,154470-154506,154508-154541,154543-154577,154579-154614,154616,154618-154646,154648-154686,154688-154731,154733-154795,154797,154799-154800,154802-154836,154838,154840-154874,154876-154914,154916-154921,154924-154925,154927-154966,154968-155065,155067-155078,155081-155174,155176-155203,155205,155207-155240,155242-155243,155245-155263,155265-155281,155283,155285-155323,155325-155394,155396-155400,155402-155512,155514-155515,155517-155589,155591-155636,155638-155670,155672-155710,155712-155762,155764-155928,155930-155933,155935-155966,155968-156017,156019-156050,156052-156086,156088-156119,156121-156124,156126,156128-156161,156163-156297,156299-156354,156356-156442,156444-156534,156536-156540,156542-156574,156576-156611,156613-156646,156648,156650-156873,156875-156882,156884-156915,156917,156919-156961,156963-157005,157007-157038,157040,157042-157072,157074-157166,157168-157252,157254-157365,157367-157459,157462,157464-157511,157513-157561,157563,157565-157591,157593-157631,157633-157638,157640-157674,157676-157738,157740-157783,157785-157817,157819,157821-157869,157871-157873,157875-157892,157894-157905,157907-157938,157941-157972,157975-158060,158063-158069,158071,158073-158077,158079-158132,158134-158306,158308-158314,158316-158413,158415-158481,158483-158604,158607-158631,158633-158685,158687,158689,158691-158693,158695-158722,158724-158753,158755,158757-158807,158809-158850,158852-158856,158858-158875,158877-158923,158926-158958,158960-159049,159051-159053,159055-159158,159160-159161,159163-159188,159190-159249,159251-159276,159360,159475,159534,159554,159774,159818,159898,159911,160004,160097,160170-160172,160208,160308,160319,160333,160481,160552,160555,160559,160585,160626,160663,160699-160700,160760,160791,160854,160856,160945,161014,161147,161181,161252,161288,161349-161350,161427,161493,161726,161790,161951,162016,162079,162140,162197,162205,162266,162271,162275,162291,162342,162355,162414,162466,162488,162583,162619,162656,162664,162667,162739,162805,162891,162927,163081,163085,163089,163094,163168,163171,163254,163317,163384,163449,163512,163612,163642,163667,163670,163675,163762,163873,164203,164257,164268,164270,164272,164349,164351,164419,164423,164602,164606,164623,164648,164659,164675,164737,164798,164801,164807,164877,164882,164942,164978,165071,165142-165143,165180-165318,165320-165324,165327-165329,165331-165396,165398-165432,165434-165468,165470-165501,165503-165537,165539-165540,165542-165723,165725-165791,165793-165797,165799-165882,165884-165885,165887-165953,165955-165991,165993-166057,166059-166157,166159-166218,166220-166262,166264-166267,166269-166341,166343-166600,166602-166624,166626-166730,166732-166822,166824-166957,166959-167020,167022-167056,167058-167060,167062-167124,167126-167179,167181-167415,167417-167790,167793-167834,167836,167838-167887,167889-167972,167974-168053,168055-168264,168266-168268,168270-168478,168480-168521,168524-168538,168540-168574,168576-168578,168580-168584,168586-168590,168592-168598,168600,168602-168608,168611-168618,168620-168625,168627-168635,168637,168640-168718,168720-168724,168726-168727,168729-168731,168733,168735-168758,168761-168897,168899-169079,169081-169115,169117-169152,169154-169276,169278-169324,169326,169328-169366,169368,169370-169437,169439-169556,169558-169573,169575-169613,169615-169619,169621-169624,169626-169672,169674-169790,169792-169797,169799-169865,169867-169909,169911-170006,170008-170111,170113-170306,170308-170350,170352-170456,170458-170459,170461-170462,170464-170497,170499-170901,170903-171042,171044-171080,171082-171120,171122,171124-171262,171264-171363,171365-171399,171402-171452,171454-171557,171559-171756,171758-171792,171794-171796,171798-171879,171881-171923,171926-172098,172100-172130,172133-172233,172235-172267,172269,172271-172317,172320-172369,172371-172439,172441-172547,172549-172639,172641-172777,172779-172815,172819-172854,172856-172889,172891-172928,172930-172962,172964-173027,173029-173046,173048-173129,173131-173168,173170-173248,173250-173501,173504-173656,173658-173770,173772-173847,173849-173857,173859-173900,173903-174045,174047-174324,174326-174369,174371-174431,174433-174434,174436-174469,174471-174502,174504-174579,174581-174644,174646-174704,174706-174843,174845-174885,174887-174950,174952-175126,175128-175249,175251-175343,175345-175407,175409-175410,175412-175474,175476-175507,175509-175511,175513-175590,175592-175596,175598-175622,175624-175635,175637-175654,175656-175662,175664-175698,175700-175782,175784-175828,175830-175881,175883-175982,175984-176099,176101-176137,176139-176319,176321-176355,176357-176359,176361-176500,176502-176512,176514-176555,176558-176591,176593-176626,176628-176630,176633-176634,176636-176638,176640-176665,176667-176668,176670-176705,176707-176770,176772-176840,176842-176868,176870-176900,176902-176903,176905-177160,177162-177286,177288-177290,177292-177319,177321-177450,177452-177505,177507-177623,177625-177696,177698-177731,177733-177848,177850-177851,177853-177854,177856-177883,177885-177912,177914-177943,177945-177987,177989-178021,178023-178026,178028-178029,178031-178060,178062-178106,178108-178299,178301-178572,178574-178604,178606,178608-178640,178642-178702,178705-178732,178734-178763,178765-178800,178802-178847,178849-178869,178871-178918,178920-179020,179022-179121,179123-179153,179155-179163,179165-179253,179255-179290,179292-179322,179324-179360,179362-179464,179466-179674,179676-179744,179746-179902,179904-179936,179938-179971,179973-180010,180012-180078,180080-180154,180156-180258,180260,180262-180303,180305-180333,180335-180368,180370-180381,180383-180640,180642-180683,180685-180718,180720-180749,180751-180858,180860-180861,180863-180897,180899-180934,180936-180937,180939-180941,180943-181026,181029-181098,181100-181133,181135-181209,181211-181243,181245-181291,181293-181300,181302-181464,181466-181576,181578-181898,181900-181984,181986-182021,182023-182070,182072-182354,182356-182361,182363-182407,182409-182520,182522-182595,182597-182606,182608-182652,182654-182761,182763-182825,182827-182847,182849-182882,182884-182959,182961-182963,182965,182967-183031,183033-183123,183125-183147,183149-183195,183197-183238,183240-183311,183313-183344,183346-183510,183512-183552,183556-183651,183653-183830,183832-183994,183996-184042,184044-184150,184152-184218,184220-184338,184340-184343,184345-184511,184513-184530,184532-184627,184629,184631-184638,184640-184676,184678-184692,184694-184761,184763-184797,184799-184800,184802-184985,184987-185298,185300-185431,185433-185531,185533-185580,185582-185603,185605-185703,185705-185740,185742-185776,185778-185911,185913-186020,186022-186057,186059-186077,186079-186296,186298-186381,186383-186446,186448-186524,186526-186536,186538-186562,186564-186565,186567-186619,186621-186623,186625-186652,186654-186686,186688-186898,186900-186927,186929-186952,186954-186956,186958-187035,187037-187049,187051-187104,187106-187107,187109-187137,187139-187178,187180-187209,187212-187268,187270-187359,187362-187380,187382-187425,187427-187487,187489-187490,187492-187555,187557-187559,187561-187598,187600-187633,187637-187672,187676-187679,187681-187713,187715-187769,187771,187774-187829,187831-187865,187867-187962,187964-188149,188151-188282,188285-188341,188343-188377,188379-188514,188516-188543,188545-188704,188706-188741,188743-188900,188902-188941,188943-189349,189351-189537,189540-189734,189736-189991,189993-189999,190001-190153,190155-190216,190218-190249,190251-190348,190350-190420,190422,190424-190453,190455-190456,190458-190483,190485-190515,190518-190544,190546-190576,190578-190585,190587-190625,190627-190662,190664-190734,190736-190796,190798-190829,190831-190864,190866-190946,190948-190988,190990,190992,190994-191027,191029-191115,191117-191139,191141-191174,191176,191178-191210,191212,191214-191220,191222-191299,191301-191331,191333-191410,191412-191417,191420-191422,191424-191629,191631-191738,191740-191780,191782-191784,191786-191847,191849-191883,191885-191918,191920-191996,191998-192031,192033-192058,192060-192095,192097-192170,192172-192361,192363-192426,192428-192589,192591-192699,192701-192735,192737-192771,192773-192807,192809-192852,192854-193005,193007-193348,193350-193458,193460,193462-193501,193503-193677,193679-193717,193719-193756,193758-193831,193833-193885,193887-194059,194061-194100,194102-194282,194284-194429,194431-194476,194478,194480-194609,194611-194634,194636-194648,194650-194944,194946-194981,194983-195074,195076-195164,195166-195209,195211-195265,195267-195278,195280-195364,195366,195369-195588,195590-195762,195764-195797,195799-195948,195950-195991,195993-196071,196073-196113,196115-196186,196189-196226,196228-196245,196247-196267,196269,196271,196273-196307,196309-196343,196345-196376,196378-196380,196382-196416,196418-196455,196457-196487,196489-196519,196521-196553,196555-196584,196586-196621,196623-196724,196726-196757,196759-196791,196793-196892,196894-196906,196908-196944,196947,196949-197024,197026-197124,197126-197188,197190-197264,197267-197334,197336-197337,197339-197373,197375-197405,197407-197408,197410-197430,197432-197527,197529-197534,197536-197569,197571-197615,197617-197700,197702-197737,197739,197741-197774,197776,197778-197823,197825-197827,197829-197860,197862-197925,197927-197958,197961-197995,197997-198063,198065-198082,198084-198087,198089-198138,198140-198145,198147-198181,198184-198185,198187-198216,198218-198247,198249-198433,198435-198436,198439-198441,198443-198469,198471-198497,198499,198501-198510,198512-198528,198531-198557,198559-198560,198562-198564,198566-198596,198598-198660,198662-198665,198667-198669,198671-198724,198726,198728,198730-198761,198763-198891,198893-198953,198955-198957,198959-199090,199092-199367,199369,199371,199373,199375,199377-199408,199410,199412,199414-199445,199447-199478,199480-199513,199515-199546,199548-199587,199589-199695,199697-199742,199744-199922,199924-199957,199959-199999,200001-200037,200039-200107,200109-200189,200191-200253,200255-200289,200291-200325,200327-200427,200429,200431-200476,200478-200518,200520-200583,200585-200586,200588-200619,200621-200655,200657-200689,200726,200764,200943,200946,200985,201056-201090,201223,201262,201381,201445,201458,201462,201610,201678,201783,201829,201994,202183,202258,202262,202337,202343,202415,202417,202497,202574,202603,202672,202753,202761,202925,202967,203037,203116,203231,203376,203381,203444,203672,203699,203710,203721,203779,203802,203853,203909,204247,204301,204470,204475,204563,204710,204835,204948,205120,205151,205196,205216,205291,205350,205412,205479,205532,205600,205696,205770,205776,205840,205878,205939,205985,206341,206386,206489,206567,206636,206702,206707,206768,206808,206868,206873,206939,207029,207095,207156,207361,207424,207680,207723,207854,207946,208263,208314,208383,208388,208464,208548,208588,208593,208749,208924,209056,209098,209132,209256,209279,209317,209400,209554,209711,209760-209761,209839,209887,210238,210564,210640,210817,210908,210914,210992,211040,211113,211232,211275,211347,211539,211584,211767,211876,211957,212027,212067,212113,212431,212506,212627,212758,212922,212939,213093,213098-213215,213217-213247,213249-213283,213285-213339,213341-213413,213415-213449,213451-213453,213455-213631,213633-213696,213698-213737,213739-213747,213749-213789,213791-213903,213905-214271,214273-214308,214310-214354,214356-214513,214515-214610,214612-214649,214651-214653,214655-214776,214778-214862,214864-214897,214899-215022,215024-215068,215071-215109,215111-215211,215213-215300,215302-215381,215383-215418,215420-215461,215463-215465,215467-215478,215480-215566,215568-215607,215609-215621,215623-215664,215666-215756,215759-215799,215801-215837,215839-215890,215892-216000,216002-216005,216007-216093,216095-216185,216187-216334,216336-216367,216369-216430,216432,216434-216436,216438-216505,216507-216546,216548-216550,216552-216592,216595-216651,216653-216693,216695-216734,216736-216747,216749-216768,216770-216801,216807-216825,216827-216833,216835-216840,216842-216845,216847-216882,216884-216904,216906-216911,216913-216916,216918-216954,216957-217014,217016-217112,217114-217157,217159-217235,217237-217285,217287-217330,217333-217366,217368-217407,217409-217481,217483-217523,217525-217559,217561-217637,217639-217662,217664-217668,217670-217736,217738-217743,217745-217803,217805-217872,217874-217911,217913-217917,217919-217953,217955-217986,217988-218049,218051-218106,218108-218149,218151-218294,218296-218364,218366-218429,218431-218464,218466-218582,218584-218628,218630-218972,218974-219006,219008-219104,219106-219229,219231-219370,219372-219894,219896-219950,219953-219986,219988-220173,220175-220294,220296-220343,220345-220416,220418-220456,220458-220493,220497-220542,220544-220628,220630-220671,220673-220717,220719-220791,220793-220903,220905-220919,220921-220927,220929-220994,220996-221089,221091-221277,221279-221299,221301-221435,221437-221483,221485-221626,221628-221700,221702-221708,221710-221780,221782-221879,221882-222107,222109-222236,222238-222308,222310-222393,222395-222397,222400-222547,222549-222613,222616-222651,222653-222760,222762-222878,222880-222946,222948-222980,222982-223014,223017-223052,223054-223143,223145-223210,223212-223369,223371-223412,223416-223448,223450-223552,223554-223616,223618-223692,223694-223873,223876-223910,223913-223991,223993-224034,224036-224073,224075-224108,224110-224143,224145-224224,224226-224334,224336-224402,224404-224445,224447-224490,224492-224526,224528-224561,224563-224636,224638-224737,224739-224929,224931-225002,225004-225033,225035-225047,225049-225088,225090-225101,225103,225105-225169,225171,225173-225243,225246-225356,225358-225404,225407-225439,225441-225444,225447-225482,225484,225486-225514,225516-225649,225651-225689,225691,225693-225726,225728-225766,225768-225802,225804-225835,225837-225871,225873-225911,225913-225954,225957-226059,226061-226098,226100-226183,226185-226226,226228-226269,226271-226383,226385-226452,226454-226489,226491-226605,226607-226647,226649-226686,226688,226690-226747,226749-226881,226883-226969,226971-226972,226975-227048,227050-227236,227239-227275,227278-227297,227299-227423,227425-227434,227436-227447,227449-227461,227465-227508,227510-227544,227546-227578,227581-227613,227616-227642,227644,227647-227758,227760-227823,227825-227896,227899-227913,227915-228014,228016-228048,228050-228190,228192-228195,228197-228232,228234-228272,228274-228440,228442-228615,228617-228620,228622-228657,228660,228662-228690,228692-228765,228767-228797,228799-228896,228898-228946,228948-228978,228980-229014,229016-229092,229094-229101,229103-229227,229229-229355,229357-229430,229432-229498,229500-229567,229569-229605,229608-229638,229640-229749,229751-229752,229755-229787,229789-229818,229820-229839,229841-229870,229872-229969,229971-230110,230112-230216,230218-230313,230315-230437,230439-230583,230585-230696,230698-230875,230877-230963,230965-230993,230995-231024,231026-231057,231059-231133,231135-231233,231235,231237-231368,231370-231400,231402-231435,231437,231440-231615,231617-231636,231638-231813,231815-231849,231851-232016,232018-232163,232165,232167-232229,232231-232364,232366-232441,232443-232444,232446-232509,232511-232543,232545-232579,232581-232586,232588-232656,232658-232699,232701-232737,232739-232770,232772-232852,232854-232915,232917-232949,232951-232981,232983-233049,233051-233058,233060-233088,233090-233195,233199-233233,233236-233238,233240-233357,233359-233392,233394-233467,233469-233544,233546-233609,233611-233618,233620-233691,233693-233731,233733-233782,233784-233879,233881-233966,233968-234027,234029-234050,234052,234054,234056-234172,234174-234457,234459-234571,234573-234630,234632-234775,234777-234819,234821-234854,234856-234896,234898-234939,234941-234975,234977-235132,235298,235422,235573,235656,235660,235822,235941,236063,236186,236300,236358,236434,236510,236613,236667,236713,236802,236847,236902,236982,237136,237319,237323,237406,237410,237414,237494,237574,237699,237839,237920,238010,238134,238181,238231,238361,238405,238412,238630,238635,238754,238835,238916,239308,239427,239473,239520,239571,239712,239834,239839,240078,240175 Index: channels/chan_sip.c =================================================================== --- channels/chan_sip.c (revision 240175) +++ channels/chan_sip.c (working copy) @@ -177,6 +177,7 @@ #include "asterisk/ast_version.h" #include "asterisk/event.h" #include "asterisk/tcptls.h" +#include "asterisk/strings.h" #ifndef FALSE #define FALSE 0 @@ -6520,60 +6521,198 @@ int portnum = 0; enum sip_transport transport = SIP_TRANSPORT_UDP; char buf[256] = ""; - char *username = NULL; - char *port = NULL; - char *hostname=NULL, *secret=NULL, *authuser=NULL, *tmp=NULL; - char *callback=NULL, *peername=NULL; + char *userpart = NULL, *hostpart = NULL; + /* register => [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] */ + AST_DECLARE_APP_ARGS(pre1, + AST_APP_ARG(peer); + AST_APP_ARG(userpart); + ); + AST_DECLARE_APP_ARGS(pre2, + AST_APP_ARG(transport); + AST_APP_ARG(blank); + AST_APP_ARG(userpart); + ); + AST_DECLARE_APP_ARGS(user1, + AST_APP_ARG(userpart); + AST_APP_ARG(secret); + AST_APP_ARG(authuser); + ); + AST_DECLARE_APP_ARGS(user2, + AST_APP_ARG(userpart); + AST_APP_ARG(domain); + ); + AST_DECLARE_APP_ARGS(host1, + AST_APP_ARG(hostpart); + AST_APP_ARG(expiry); + ); + AST_DECLARE_APP_ARGS(host2, + AST_APP_ARG(hostpart); + AST_APP_ARG(extension); + ); + AST_DECLARE_APP_ARGS(host3, + AST_APP_ARG(host); + AST_APP_ARG(port); + ); if (!value) return -1; ast_copy_string(buf, value, sizeof(buf)); - /* split [peername?][transport://] */ - tmp = strchr(buf, '?'); - if (tmp) { - *tmp++ = '\0'; - peername = buf; - } else { - tmp = buf; + /*! register => [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] + * becomes + * userpart => [peer?][transport://]user[@domain][:secret[:authuser]] + * hostpart => host[:port][/extension][~expiry] + */ + if ((hostpart = strrchr(buf, '@'))) { + *hostpart++ = '\0'; + userpart = buf; } - /* tmp is set at the beginning of [transport://] */ - sip_parse_host(tmp, lineno, &username, &portnum, &transport); - /* First split around the last '@' then parse the two components. */ - hostname = strrchr(username, '@'); /* allow @ in the first part */ - if (hostname) - *hostname++ = '\0'; - if (ast_strlen_zero(username) || ast_strlen_zero(hostname)) { - ast_log(LOG_WARNING, "Format for registration is [transport://]user[@domain][:secret[:authuser]]@host[:port][/extension] at line %d\n", lineno); + if (ast_strlen_zero(userpart) || ast_strlen_zero(hostpart)) { + ast_log(LOG_WARNING, "Format for registration is [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] at line %d\n", lineno); return -1; } - /* split user[:secret[:authuser]] */ - secret = strchr(username, ':'); - if (secret) { - *secret++ = '\0'; - authuser = strchr(secret, ':'); - if (authuser) - *authuser++ = '\0'; + + /*! + * pre1.peer => peer + * pre1.userpart => [transport://]user[@domain][:secret[:authuser]] + * hostpart => host[:port][/extension][~expiry] + */ + AST_NONSTANDARD_RAW_ARGS(pre1, userpart, '?'); + if (ast_strlen_zero(pre1.userpart)) { + pre1.userpart = pre1.peer; + pre1.peer = NULL; } - /* split host[:port][/contact] */ - callback = strchr(hostname, '/'); - if (callback) - *callback++ = '\0'; - if (ast_strlen_zero(callback)) - callback = "s"; - /* Separate host from port when checking for reserved characters + /*! + * pre1.peer => peer + * pre2.transport = transport + * pre2.userpart => user[@domain][:secret[:authuser]] + * hostpart => host[:port][/extension][~expiry] */ - if ((port = strchr(hostname, ':'))) { - *port = '\0'; + AST_NONSTANDARD_RAW_ARGS(pre2, userpart, '/'); + if (ast_strlen_zero(pre2.userpart)) { + pre2.userpart = pre2.transport; + pre2.transport = NULL; + } else { + pre2.transport[strlen(pre2.transport) - 1] = '\0'; /* Remove trailing : */ } - /* And then re-merge the host and port so they are stored correctly + + if (!ast_strlen_zero(pre2.blank)) { + ast_log(LOG_WARNING, "Format for registration is [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] at line %d\n", lineno); + return -1; + } + + /*! + * pre1.peer => peer + * pre2.transport = transport + * user1.userpart => user[@domain] + * user1.secret => secret + * user1.authuser => authuser + * hostpart => host[:port][/extension][~expiry] */ - if (port) { - *port = ':'; + AST_NONSTANDARD_RAW_ARGS(user1, pre2.userpart, ':'); + + /*! + * pre1.peer => peer + * pre2.transport = transport + * user1.userpart => user[@domain] + * user1.secret => secret + * user1.authuser => authuser + * host1.hostpart => host[:port][/extension] + * host1.expiry => [expiry] + */ + AST_NONSTANDARD_RAW_ARGS(host1, hostpart, '~'); + + /*! + * pre1.peer => peer + * pre2.transport = transport + * user1.userpart => user[@domain] + * user1.secret => secret + * user1.authuser => authuser + * host2.hostpart => host[:port] + * host2.extension => [extension] + */ + AST_NONSTANDARD_RAW_ARGS(host2, host1.hostpart, '/'); + + /*! + * pre1.peer => peer + * pre2.transport = transport + * user1.userpart => user[@domain] + * user1.secret => secret + * user1.authuser => authuser + * host3.host => host + * host3.port => port + * host2.extension => extension + * host1.expiry => expiry + */ + AST_NONSTANDARD_RAW_ARGS(host3, host2.hostpart, ':'); + + /*! + * pre1.peer => peer + * pre2.transport = transport + * user2.userpart => user + * user2.domain => domain (regdomain) + * user1.secret => secret + * user1.authuser => authuser + * host3.host => host + * host3.port => port + * host2.extension => extension (callback) + * host1.expiry => expiry + */ + AST_NONSTANDARD_RAW_ARGS(user2, user1.userpart, '@'); + + /*! + * pre1.peer => peer + * transport = transport + * user2.userpart => user + * user2.domain => domain (regdomain) + * user1.secret => secret + * user1.authuser => authuser + * host3.host => host + * portnum => port + * host2.extension => extension (callback) + * host1.expiry => expiry + */ + if (host3.port) { + if (sscanf(host3.port, "%5u", &portnum) != 1 || portnum > 65535) { + ast_log(LOG_NOTICE, "'%s' is not a valid port number on line %d of sip.conf. using default.\n", host3.port, lineno); + portnum = -1; + } } + + /*! + * pre1.peer => peer + * transport = transport + * user2.userpart => user + * user2.domain => domain (regdomain) + * user1.secret => secret + * user1.authuser => authuser + * host3.host => host + * portnum => port + * host2.extension => extension (callback) + * host1.expiry => expiry + */ + if (!pre2.transport) { + transport = SIP_TRANSPORT_UDP; + } else if (!strncasecmp(pre2.transport, "tcp", 3)) { + transport = SIP_TRANSPORT_TCP; + } else if (!strncasecmp(pre2.transport, "tls", 3)) { + transport = SIP_TRANSPORT_TLS; + if (portnum < 0) { + portnum = STANDARD_TLS_PORT; + } + } else if (!strncasecmp(pre2.transport, "udp", 3)) { + transport = SIP_TRANSPORT_UDP; + } else { + ast_log(LOG_NOTICE, "'%.3s' is not a valid transport type on line %d of sip.conf. defaulting to udp.\n", pre2.transport, lineno); + } + + if (portnum < 0) { + portnum = STANDARD_SIP_PORT; + } + if (!(reg = ast_calloc(1, sizeof(*reg)))) { ast_log(LOG_ERROR, "Out of memory. Can't allocate SIP registry entry\n"); return -1; @@ -6585,26 +6724,31 @@ return -1; } + /*! + * pre1.peer => peer + * transport = transport + * user2.userpart => user + * user2.domain => domain (regdomain) + * user1.secret => secret + * user1.authuser => authuser + * host3.host => host + * portnum => port + * host2.extension => extension (callback) + * host1.expiry => expiry + */ regobjs++; ASTOBJ_INIT(reg); - ast_string_field_set(reg, callback, callback); - if (!ast_strlen_zero(username)) - ast_string_field_set(reg, username, username); - if (hostname) - ast_string_field_set(reg, hostname, hostname); - if (authuser) - ast_string_field_set(reg, authuser, authuser); - if (secret) - ast_string_field_set(reg, secret, secret); - if (peername) { - ast_string_field_set(reg, peername, peername); - } + ast_string_field_set(reg, callback, ast_strip_quoted(S_OR(host2.extension, "s"), "\"", "\"")); + ast_string_field_set(reg, username, ast_strip_quoted(S_OR(user2.userpart, ""), "\"", "\"")); + ast_string_field_set(reg, hostname, ast_strip_quoted(S_OR(host3.host, ""), "\"", "\"")); + ast_string_field_set(reg, domain, ast_strip_quoted(S_OR(user2.domain, S_OR(host3.host, "")), "\"", "\"")); + ast_string_field_set(reg, authuser, ast_strip_quoted(S_OR(user1.authuser, ""), "\"", "\"")); + ast_string_field_set(reg, secret, ast_strip_quoted(S_OR(user1.secret, ""), "\"", "\"")); + ast_string_field_set(reg, peername, ast_strip_quoted(S_OR(pre1.peer, ""), "\"", "\"")); + reg->transport = transport; - reg->expire = -1; - reg->configured_expiry = default_expiry; - reg->expiry = reg->configured_expiry; - reg->timeout = -1; - reg->refresh = default_expiry; + reg->timeout = reg->expire = -1; + reg->refresh = reg->expiry = reg->configured_expiry = (host1.expiry ? atoi(ast_strip_quoted(host1.expiry, "\"", "\"")) : default_expiry); reg->portno = portnum; reg->callid_valid = FALSE; reg->ocseq = INITIAL_CSEQ; @@ -10100,6 +10244,7 @@ char addr[80]; struct sip_pvt *p; char *fromdomain; + char *domainport = NULL; /* exit if we are already in process with this registrar ?*/ if ( r == NULL || ((auth==NULL) && (r->regstate==REG_STATE_REGSENT || r->regstate==REG_STATE_AUTHSENT))) { @@ -10165,9 +10310,10 @@ ast_string_field_set(r, callid, p->callid); if (r->portno) { p->sa.sin_port = htons(r->portno); - p->recv.sin_port = htons(r->portno); - } else /* Set registry port to the port set from the peer definition/srv or default */ + p->recv.sin_port = htons(r->portno); + } else { /* Set registry port to the port set from the peer definition/srv or default */ r->portno = ntohs(p->sa.sin_port); + } ast_set_flag(&p->flags[0], SIP_OUTGOING); /* Registration is outgoing call */ r->call = p; /* Save pointer to SIP dialog */ p->registry = registry_addref(r); /* Add pointer to registry in packet */ @@ -10235,14 +10381,27 @@ else snprintf(to, sizeof(to), "", r->username, p->tohost); } - + /* Fromdomain is what we are registering to, regardless of actual - host name from SRV */ + host name from SRV */ if (!ast_strlen_zero(p->fromdomain)) { - if (r->portno && r->portno != STANDARD_SIP_PORT) - snprintf(addr, sizeof(addr), "sip:%s:%d", p->fromdomain, r->portno); - else - snprintf(addr, sizeof(addr), "sip:%s", p->fromdomain); + domainport = strrchr(p->fromdomain, ':'); + if (domainport) { + *domainport++ = '\0'; /* trim off domainport from p->fromdomain */ + if (ast_strlen_zero(domainport)) + domainport = NULL; + } + if (domainport) { + if (atoi(domainport) != STANDARD_SIP_PORT) + snprintf(addr, sizeof(addr), "sip:%s:%s", p->fromdomain, domainport); + else + snprintf(addr, sizeof(addr), "sip:%s", p->fromdomain); + } else { + if (r->portno && r->portno != STANDARD_SIP_PORT) + snprintf(addr, sizeof(addr), "sip:%s:%d", p->fromdomain, r->portno); + else + snprintf(addr, sizeof(addr), "sip:%s", p->fromdomain); + } } else { if (r->portno && r->portno != STANDARD_SIP_PORT) snprintf(addr, sizeof(addr), "sip:%s:%d", r->hostname, r->portno); @@ -10269,7 +10428,6 @@ if (!ast_strlen_zero(global_useragent)) add_header(&req, "User-Agent", global_useragent); - if (auth) /* Add auth header */ add_header(&req, authheader, auth); else if (!ast_strlen_zero(r->nonce)) { Index: configs/sip.conf.sample =================================================================== --- configs/sip.conf.sample (revision 240175) +++ configs/sip.conf.sample (working copy) @@ -437,7 +437,7 @@ ;----------------------------------------- OUTBOUND SIP REGISTRATIONS ------------------------ ; Asterisk can register as a SIP user agent to a SIP proxy (provider) ; Format for the register statement is: -; register => [transport://]user[@domain][:secret[:authuser]]@host[:port][/extension] +; register => [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] ; ; ;