ChangeLog 1.4 MB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148221492215022151221522215322154221552215622157221582215922160221612216222163221642216522166221672216822169221702217122172221732217422175221762217722178221792218022181221822218322184221852218622187221882218922190221912219222193221942219522196221972219822199222002220122202222032220422205222062220722208222092221022211222122221322214222152221622217222182221922220222212222222223222242222522226222272222822229222302223122232222332223422235222362223722238222392224022241222422224322244222452224622247222482224922250222512225222253222542225522256222572225822259222602226122262222632226422265222662226722268222692227022271222722227322274222752227622277222782227922280222812228222283222842228522286222872228822289222902229122292222932229422295222962229722298222992230022301223022230322304223052230622307223082230922310223112231222313223142231522316223172231822319223202232122322223232232422325223262232722328223292233022331223322233322334223352233622337223382233922340223412234222343223442234522346223472234822349223502235122352223532235422355223562235722358223592236022361223622236322364223652236622367223682236922370223712237222373223742237522376223772237822379223802238122382223832238422385223862238722388223892239022391223922239322394223952239622397223982239922400224012240222403224042240522406224072240822409224102241122412224132241422415224162241722418224192242022421224222242322424224252242622427224282242922430224312243222433224342243522436224372243822439224402244122442224432244422445224462244722448224492245022451224522245322454224552245622457224582245922460224612246222463224642246522466224672246822469224702247122472224732247422475224762247722478224792248022481224822248322484224852248622487224882248922490224912249222493224942249522496224972249822499225002250122502225032250422505225062250722508225092251022511225122251322514225152251622517225182251922520225212252222523225242252522526225272252822529225302253122532225332253422535225362253722538225392254022541225422254322544225452254622547225482254922550225512255222553225542255522556225572255822559225602256122562225632256422565225662256722568225692257022571225722257322574225752257622577225782257922580225812258222583225842258522586225872258822589225902259122592225932259422595225962259722598225992260022601226022260322604226052260622607226082260922610226112261222613226142261522616226172261822619226202262122622226232262422625226262262722628226292263022631226322263322634226352263622637226382263922640226412264222643226442264522646226472264822649226502265122652226532265422655226562265722658226592266022661226622266322664226652266622667226682266922670226712267222673226742267522676226772267822679226802268122682226832268422685226862268722688226892269022691226922269322694226952269622697226982269922700227012270222703227042270522706227072270822709227102271122712227132271422715227162271722718227192272022721227222272322724227252272622727227282272922730227312273222733227342273522736227372273822739227402274122742227432274422745227462274722748227492275022751227522275322754227552275622757227582275922760227612276222763227642276522766227672276822769227702277122772227732277422775227762277722778227792278022781227822278322784227852278622787227882278922790227912279222793227942279522796227972279822799228002280122802228032280422805228062280722808228092281022811228122281322814228152281622817228182281922820228212282222823228242282522826228272282822829228302283122832228332283422835228362283722838228392284022841228422284322844228452284622847228482284922850228512285222853228542285522856228572285822859228602286122862228632286422865228662286722868228692287022871228722287322874228752287622877228782287922880228812288222883228842288522886228872288822889228902289122892228932289422895228962289722898228992290022901229022290322904229052290622907229082290922910229112291222913229142291522916229172291822919229202292122922229232292422925229262292722928229292293022931229322293322934229352293622937229382293922940229412294222943229442294522946229472294822949229502295122952229532295422955229562295722958229592296022961229622296322964229652296622967229682296922970229712297222973229742297522976229772297822979229802298122982229832298422985229862298722988229892299022991229922299322994229952299622997229982299923000230012300223003230042300523006230072300823009230102301123012230132301423015230162301723018230192302023021230222302323024230252302623027230282302923030230312303223033230342303523036230372303823039230402304123042230432304423045230462304723048230492305023051230522305323054230552305623057230582305923060230612306223063230642306523066230672306823069230702307123072230732307423075230762307723078230792308023081230822308323084230852308623087230882308923090230912309223093230942309523096230972309823099231002310123102231032310423105231062310723108231092311023111231122311323114231152311623117231182311923120231212312223123231242312523126231272312823129231302313123132231332313423135231362313723138231392314023141231422314323144231452314623147231482314923150231512315223153231542315523156231572315823159231602316123162231632316423165231662316723168231692317023171231722317323174231752317623177231782317923180231812318223183231842318523186231872318823189231902319123192231932319423195231962319723198231992320023201232022320323204232052320623207232082320923210232112321223213232142321523216232172321823219232202322123222232232322423225232262322723228232292323023231232322323323234232352323623237232382323923240232412324223243232442324523246232472324823249232502325123252232532325423255232562325723258232592326023261232622326323264232652326623267232682326923270232712327223273232742327523276232772327823279232802328123282232832328423285232862328723288232892329023291232922329323294232952329623297232982329923300233012330223303233042330523306233072330823309233102331123312233132331423315233162331723318233192332023321233222332323324233252332623327233282332923330233312333223333233342333523336233372333823339233402334123342233432334423345233462334723348233492335023351233522335323354233552335623357233582335923360233612336223363233642336523366233672336823369233702337123372233732337423375233762337723378233792338023381233822338323384233852338623387233882338923390233912339223393233942339523396233972339823399234002340123402234032340423405234062340723408234092341023411234122341323414234152341623417234182341923420234212342223423234242342523426234272342823429234302343123432234332343423435234362343723438234392344023441234422344323444234452344623447234482344923450234512345223453234542345523456234572345823459234602346123462234632346423465234662346723468234692347023471234722347323474234752347623477234782347923480234812348223483234842348523486234872348823489234902349123492234932349423495234962349723498234992350023501235022350323504235052350623507235082350923510235112351223513235142351523516235172351823519235202352123522235232352423525235262352723528235292353023531235322353323534235352353623537235382353923540235412354223543235442354523546235472354823549235502355123552235532355423555235562355723558235592356023561235622356323564235652356623567235682356923570235712357223573235742357523576235772357823579235802358123582235832358423585235862358723588235892359023591235922359323594235952359623597235982359923600236012360223603236042360523606236072360823609236102361123612236132361423615236162361723618236192362023621236222362323624236252362623627236282362923630236312363223633236342363523636236372363823639236402364123642236432364423645236462364723648236492365023651236522365323654236552365623657236582365923660236612366223663236642366523666236672366823669236702367123672236732367423675236762367723678236792368023681236822368323684236852368623687236882368923690236912369223693236942369523696236972369823699237002370123702237032370423705237062370723708237092371023711237122371323714237152371623717237182371923720237212372223723237242372523726237272372823729237302373123732237332373423735237362373723738237392374023741237422374323744237452374623747237482374923750237512375223753237542375523756237572375823759237602376123762237632376423765237662376723768237692377023771237722377323774237752377623777237782377923780237812378223783237842378523786237872378823789237902379123792237932379423795237962379723798237992380023801238022380323804238052380623807238082380923810238112381223813238142381523816238172381823819238202382123822238232382423825238262382723828238292383023831238322383323834238352383623837238382383923840238412384223843238442384523846238472384823849238502385123852238532385423855238562385723858238592386023861238622386323864238652386623867238682386923870238712387223873238742387523876238772387823879238802388123882238832388423885238862388723888238892389023891238922389323894238952389623897238982389923900239012390223903239042390523906239072390823909239102391123912239132391423915239162391723918239192392023921239222392323924239252392623927239282392923930239312393223933239342393523936239372393823939239402394123942239432394423945239462394723948239492395023951239522395323954239552395623957239582395923960239612396223963239642396523966239672396823969239702397123972239732397423975239762397723978239792398023981239822398323984239852398623987239882398923990239912399223993239942399523996239972399823999240002400124002240032400424005240062400724008240092401024011240122401324014240152401624017240182401924020240212402224023240242402524026240272402824029240302403124032240332403424035240362403724038240392404024041240422404324044240452404624047240482404924050240512405224053240542405524056240572405824059240602406124062240632406424065240662406724068240692407024071240722407324074240752407624077240782407924080240812408224083240842408524086240872408824089240902409124092240932409424095240962409724098240992410024101241022410324104241052410624107241082410924110241112411224113241142411524116241172411824119241202412124122241232412424125241262412724128241292413024131241322413324134241352413624137241382413924140241412414224143241442414524146241472414824149241502415124152241532415424155241562415724158241592416024161241622416324164241652416624167241682416924170241712417224173241742417524176241772417824179241802418124182241832418424185241862418724188241892419024191241922419324194241952419624197241982419924200242012420224203242042420524206242072420824209242102421124212242132421424215242162421724218242192422024221242222422324224242252422624227242282422924230242312423224233242342423524236242372423824239242402424124242242432424424245242462424724248242492425024251242522425324254242552425624257242582425924260242612426224263242642426524266242672426824269242702427124272242732427424275242762427724278242792428024281242822428324284242852428624287242882428924290242912429224293242942429524296242972429824299243002430124302243032430424305243062430724308243092431024311243122431324314243152431624317243182431924320243212432224323243242432524326243272432824329243302433124332243332433424335243362433724338243392434024341243422434324344243452434624347243482434924350243512435224353243542435524356243572435824359243602436124362243632436424365243662436724368243692437024371243722437324374243752437624377243782437924380243812438224383243842438524386243872438824389243902439124392243932439424395243962439724398243992440024401244022440324404244052440624407244082440924410244112441224413244142441524416244172441824419244202442124422244232442424425244262442724428244292443024431244322443324434244352443624437244382443924440244412444224443244442444524446244472444824449244502445124452244532445424455244562445724458244592446024461244622446324464244652446624467244682446924470244712447224473244742447524476244772447824479244802448124482244832448424485244862448724488244892449024491244922449324494244952449624497244982449924500245012450224503245042450524506245072450824509245102451124512245132451424515245162451724518245192452024521245222452324524245252452624527245282452924530245312453224533245342453524536245372453824539245402454124542245432454424545245462454724548245492455024551245522455324554245552455624557245582455924560245612456224563245642456524566245672456824569245702457124572245732457424575245762457724578245792458024581245822458324584245852458624587245882458924590245912459224593245942459524596245972459824599246002460124602246032460424605246062460724608246092461024611246122461324614246152461624617246182461924620246212462224623246242462524626246272462824629246302463124632246332463424635246362463724638246392464024641246422464324644246452464624647246482464924650246512465224653246542465524656246572465824659246602466124662246632466424665246662466724668246692467024671246722467324674246752467624677246782467924680246812468224683246842468524686246872468824689246902469124692246932469424695246962469724698246992470024701247022470324704247052470624707247082470924710247112471224713247142471524716247172471824719247202472124722247232472424725247262472724728247292473024731247322473324734247352473624737247382473924740247412474224743247442474524746247472474824749247502475124752247532475424755247562475724758247592476024761247622476324764247652476624767247682476924770247712477224773247742477524776247772477824779247802478124782247832478424785247862478724788247892479024791247922479324794247952479624797247982479924800248012480224803248042480524806248072480824809248102481124812248132481424815248162481724818248192482024821248222482324824248252482624827248282482924830248312483224833248342483524836248372483824839248402484124842248432484424845248462484724848248492485024851248522485324854248552485624857248582485924860248612486224863248642486524866248672486824869248702487124872248732487424875248762487724878248792488024881248822488324884248852488624887248882488924890248912489224893248942489524896248972489824899249002490124902249032490424905249062490724908249092491024911249122491324914249152491624917249182491924920249212492224923249242492524926249272492824929249302493124932249332493424935249362493724938249392494024941249422494324944249452494624947249482494924950249512495224953249542495524956249572495824959249602496124962249632496424965249662496724968249692497024971249722497324974249752497624977249782497924980249812498224983249842498524986249872498824989249902499124992249932499424995249962499724998249992500025001250022500325004250052500625007250082500925010250112501225013250142501525016250172501825019250202502125022250232502425025250262502725028250292503025031250322503325034250352503625037250382503925040250412504225043250442504525046250472504825049250502505125052250532505425055250562505725058250592506025061250622506325064250652506625067250682506925070250712507225073250742507525076250772507825079250802508125082250832508425085250862508725088250892509025091250922509325094250952509625097250982509925100251012510225103251042510525106251072510825109251102511125112251132511425115251162511725118251192512025121251222512325124251252512625127251282512925130251312513225133251342513525136251372513825139251402514125142251432514425145251462514725148251492515025151251522515325154251552515625157251582515925160251612516225163251642516525166251672516825169251702517125172251732517425175251762517725178251792518025181251822518325184251852518625187251882518925190251912519225193251942519525196251972519825199252002520125202252032520425205252062520725208252092521025211252122521325214252152521625217252182521925220252212522225223252242522525226252272522825229252302523125232252332523425235252362523725238252392524025241252422524325244252452524625247252482524925250252512525225253252542525525256252572525825259252602526125262252632526425265252662526725268252692527025271252722527325274252752527625277252782527925280252812528225283252842528525286252872528825289252902529125292252932529425295252962529725298252992530025301253022530325304253052530625307253082530925310253112531225313253142531525316253172531825319253202532125322253232532425325253262532725328253292533025331253322533325334253352533625337253382533925340253412534225343253442534525346253472534825349253502535125352253532535425355253562535725358253592536025361253622536325364253652536625367253682536925370253712537225373253742537525376253772537825379253802538125382253832538425385253862538725388253892539025391253922539325394253952539625397253982539925400254012540225403254042540525406254072540825409254102541125412254132541425415254162541725418254192542025421254222542325424254252542625427254282542925430254312543225433254342543525436254372543825439254402544125442254432544425445254462544725448254492545025451254522545325454254552545625457254582545925460254612546225463254642546525466254672546825469254702547125472254732547425475254762547725478254792548025481254822548325484254852548625487254882548925490254912549225493254942549525496254972549825499255002550125502255032550425505255062550725508255092551025511255122551325514255152551625517255182551925520255212552225523255242552525526255272552825529255302553125532255332553425535255362553725538255392554025541255422554325544255452554625547255482554925550255512555225553255542555525556255572555825559255602556125562255632556425565255662556725568255692557025571255722557325574255752557625577255782557925580255812558225583255842558525586255872558825589255902559125592255932559425595255962559725598255992560025601256022560325604256052560625607256082560925610256112561225613256142561525616256172561825619256202562125622256232562425625256262562725628256292563025631256322563325634256352563625637256382563925640256412564225643256442564525646256472564825649256502565125652256532565425655256562565725658256592566025661256622566325664256652566625667256682566925670256712567225673256742567525676256772567825679256802568125682256832568425685256862568725688256892569025691256922569325694256952569625697256982569925700257012570225703257042570525706257072570825709257102571125712257132571425715257162571725718257192572025721257222572325724257252572625727257282572925730257312573225733257342573525736257372573825739257402574125742257432574425745257462574725748257492575025751257522575325754257552575625757257582575925760257612576225763257642576525766257672576825769257702577125772257732577425775257762577725778257792578025781257822578325784257852578625787257882578925790257912579225793257942579525796257972579825799258002580125802258032580425805258062580725808258092581025811258122581325814258152581625817258182581925820258212582225823258242582525826258272582825829258302583125832258332583425835258362583725838258392584025841258422584325844258452584625847258482584925850258512585225853258542585525856258572585825859258602586125862258632586425865258662586725868258692587025871258722587325874258752587625877258782587925880258812588225883258842588525886258872588825889258902589125892258932589425895258962589725898258992590025901259022590325904259052590625907259082590925910259112591225913259142591525916259172591825919259202592125922259232592425925259262592725928259292593025931259322593325934259352593625937259382593925940259412594225943259442594525946259472594825949259502595125952259532595425955259562595725958259592596025961259622596325964259652596625967259682596925970259712597225973259742597525976259772597825979259802598125982259832598425985259862598725988259892599025991259922599325994259952599625997259982599926000260012600226003260042600526006260072600826009260102601126012260132601426015260162601726018260192602026021260222602326024260252602626027260282602926030260312603226033260342603526036260372603826039260402604126042260432604426045260462604726048260492605026051260522605326054260552605626057260582605926060260612606226063260642606526066260672606826069260702607126072260732607426075260762607726078260792608026081260822608326084260852608626087260882608926090260912609226093260942609526096260972609826099261002610126102261032610426105261062610726108261092611026111261122611326114261152611626117261182611926120261212612226123261242612526126261272612826129261302613126132261332613426135261362613726138261392614026141261422614326144261452614626147261482614926150261512615226153261542615526156261572615826159261602616126162261632616426165261662616726168261692617026171261722617326174261752617626177261782617926180261812618226183261842618526186261872618826189261902619126192261932619426195261962619726198261992620026201262022620326204262052620626207262082620926210262112621226213262142621526216262172621826219262202622126222262232622426225262262622726228262292623026231262322623326234262352623626237262382623926240262412624226243262442624526246262472624826249262502625126252262532625426255262562625726258262592626026261262622626326264262652626626267262682626926270262712627226273262742627526276262772627826279262802628126282262832628426285262862628726288262892629026291262922629326294262952629626297262982629926300263012630226303263042630526306263072630826309263102631126312263132631426315263162631726318263192632026321263222632326324263252632626327263282632926330263312633226333263342633526336263372633826339263402634126342263432634426345263462634726348263492635026351263522635326354263552635626357263582635926360263612636226363263642636526366263672636826369263702637126372263732637426375263762637726378263792638026381263822638326384263852638626387263882638926390263912639226393263942639526396263972639826399264002640126402264032640426405264062640726408264092641026411264122641326414264152641626417264182641926420264212642226423264242642526426264272642826429264302643126432264332643426435264362643726438264392644026441264422644326444264452644626447264482644926450264512645226453264542645526456264572645826459264602646126462264632646426465264662646726468264692647026471264722647326474264752647626477264782647926480264812648226483264842648526486264872648826489264902649126492264932649426495264962649726498264992650026501265022650326504265052650626507265082650926510265112651226513265142651526516265172651826519265202652126522265232652426525265262652726528265292653026531265322653326534265352653626537265382653926540265412654226543265442654526546265472654826549265502655126552265532655426555265562655726558265592656026561265622656326564265652656626567265682656926570265712657226573265742657526576265772657826579265802658126582265832658426585265862658726588265892659026591265922659326594265952659626597265982659926600266012660226603266042660526606266072660826609266102661126612266132661426615266162661726618266192662026621266222662326624266252662626627266282662926630266312663226633266342663526636266372663826639266402664126642266432664426645266462664726648266492665026651266522665326654266552665626657266582665926660266612666226663266642666526666266672666826669266702667126672266732667426675266762667726678266792668026681266822668326684266852668626687266882668926690266912669226693266942669526696266972669826699267002670126702267032670426705267062670726708267092671026711267122671326714267152671626717267182671926720267212672226723267242672526726267272672826729267302673126732267332673426735267362673726738267392674026741267422674326744267452674626747267482674926750267512675226753267542675526756267572675826759267602676126762267632676426765267662676726768267692677026771267722677326774267752677626777267782677926780267812678226783267842678526786267872678826789267902679126792267932679426795267962679726798267992680026801268022680326804268052680626807268082680926810268112681226813268142681526816268172681826819268202682126822268232682426825268262682726828268292683026831268322683326834268352683626837268382683926840268412684226843268442684526846268472684826849268502685126852268532685426855268562685726858268592686026861268622686326864268652686626867268682686926870268712687226873268742687526876268772687826879268802688126882268832688426885268862688726888268892689026891268922689326894268952689626897268982689926900269012690226903269042690526906269072690826909269102691126912269132691426915269162691726918269192692026921269222692326924269252692626927269282692926930269312693226933269342693526936269372693826939269402694126942269432694426945269462694726948269492695026951269522695326954269552695626957269582695926960269612696226963269642696526966269672696826969269702697126972269732697426975269762697726978269792698026981269822698326984269852698626987269882698926990269912699226993269942699526996269972699826999270002700127002270032700427005270062700727008270092701027011270122701327014270152701627017270182701927020270212702227023270242702527026270272702827029270302703127032270332703427035270362703727038270392704027041270422704327044270452704627047270482704927050270512705227053270542705527056270572705827059270602706127062270632706427065270662706727068270692707027071270722707327074270752707627077270782707927080270812708227083270842708527086270872708827089270902709127092270932709427095270962709727098270992710027101271022710327104271052710627107271082710927110271112711227113271142711527116271172711827119271202712127122271232712427125271262712727128271292713027131271322713327134271352713627137271382713927140271412714227143271442714527146271472714827149271502715127152271532715427155271562715727158271592716027161271622716327164271652716627167271682716927170271712717227173271742717527176271772717827179271802718127182271832718427185271862718727188271892719027191271922719327194271952719627197271982719927200272012720227203272042720527206272072720827209272102721127212272132721427215272162721727218272192722027221272222722327224272252722627227272282722927230272312723227233272342723527236272372723827239272402724127242272432724427245272462724727248272492725027251272522725327254272552725627257272582725927260272612726227263272642726527266272672726827269272702727127272272732727427275272762727727278272792728027281272822728327284272852728627287272882728927290272912729227293272942729527296272972729827299273002730127302273032730427305273062730727308273092731027311273122731327314273152731627317273182731927320273212732227323273242732527326273272732827329273302733127332273332733427335273362733727338273392734027341273422734327344273452734627347273482734927350273512735227353273542735527356273572735827359273602736127362273632736427365273662736727368273692737027371273722737327374273752737627377273782737927380273812738227383273842738527386273872738827389273902739127392273932739427395273962739727398273992740027401274022740327404274052740627407274082740927410274112741227413274142741527416274172741827419274202742127422274232742427425274262742727428274292743027431274322743327434274352743627437274382743927440274412744227443274442744527446274472744827449274502745127452274532745427455274562745727458274592746027461274622746327464274652746627467274682746927470274712747227473274742747527476274772747827479274802748127482274832748427485274862748727488274892749027491274922749327494274952749627497274982749927500275012750227503275042750527506275072750827509275102751127512275132751427515275162751727518275192752027521275222752327524275252752627527275282752927530275312753227533275342753527536275372753827539275402754127542275432754427545275462754727548275492755027551275522755327554275552755627557275582755927560275612756227563275642756527566275672756827569275702757127572275732757427575275762757727578275792758027581275822758327584275852758627587275882758927590275912759227593275942759527596275972759827599276002760127602276032760427605276062760727608276092761027611276122761327614276152761627617276182761927620276212762227623276242762527626276272762827629276302763127632276332763427635276362763727638276392764027641276422764327644276452764627647276482764927650276512765227653276542765527656276572765827659276602766127662276632766427665276662766727668276692767027671276722767327674276752767627677276782767927680276812768227683276842768527686276872768827689276902769127692276932769427695276962769727698276992770027701277022770327704277052770627707277082770927710277112771227713277142771527716277172771827719277202772127722277232772427725277262772727728277292773027731277322773327734277352773627737277382773927740277412774227743277442774527746277472774827749277502775127752277532775427755277562775727758277592776027761277622776327764277652776627767277682776927770277712777227773277742777527776277772777827779277802778127782277832778427785277862778727788277892779027791277922779327794277952779627797277982779927800278012780227803278042780527806278072780827809278102781127812278132781427815278162781727818278192782027821278222782327824278252782627827278282782927830278312783227833278342783527836278372783827839278402784127842278432784427845278462784727848278492785027851278522785327854278552785627857278582785927860278612786227863278642786527866278672786827869278702787127872278732787427875278762787727878278792788027881278822788327884278852788627887278882788927890278912789227893278942789527896278972789827899279002790127902279032790427905279062790727908279092791027911279122791327914279152791627917279182791927920279212792227923279242792527926279272792827929279302793127932279332793427935279362793727938279392794027941279422794327944279452794627947279482794927950279512795227953279542795527956279572795827959279602796127962279632796427965279662796727968279692797027971279722797327974279752797627977279782797927980279812798227983279842798527986279872798827989279902799127992279932799427995279962799727998279992800028001280022800328004280052800628007280082800928010280112801228013280142801528016280172801828019280202802128022280232802428025280262802728028280292803028031280322803328034280352803628037280382803928040280412804228043280442804528046280472804828049280502805128052280532805428055280562805728058280592806028061280622806328064280652806628067280682806928070280712807228073280742807528076280772807828079280802808128082280832808428085280862808728088280892809028091280922809328094280952809628097280982809928100281012810228103281042810528106281072810828109281102811128112281132811428115281162811728118281192812028121281222812328124281252812628127281282812928130281312813228133281342813528136281372813828139281402814128142281432814428145281462814728148281492815028151281522815328154281552815628157281582815928160281612816228163281642816528166281672816828169281702817128172281732817428175281762817728178281792818028181281822818328184281852818628187281882818928190281912819228193281942819528196281972819828199282002820128202282032820428205282062820728208282092821028211282122821328214282152821628217282182821928220282212822228223282242822528226282272822828229282302823128232282332823428235282362823728238282392824028241282422824328244282452824628247282482824928250282512825228253282542825528256282572825828259282602826128262282632826428265282662826728268282692827028271282722827328274282752827628277282782827928280282812828228283282842828528286282872828828289282902829128292282932829428295282962829728298282992830028301283022830328304283052830628307283082830928310283112831228313283142831528316283172831828319283202832128322283232832428325283262832728328283292833028331283322833328334283352833628337283382833928340283412834228343283442834528346283472834828349283502835128352283532835428355283562835728358283592836028361283622836328364283652836628367283682836928370283712837228373283742837528376283772837828379283802838128382283832838428385283862838728388283892839028391283922839328394283952839628397283982839928400284012840228403284042840528406284072840828409284102841128412284132841428415284162841728418284192842028421284222842328424284252842628427284282842928430284312843228433284342843528436284372843828439284402844128442284432844428445284462844728448284492845028451284522845328454284552845628457284582845928460284612846228463284642846528466284672846828469284702847128472284732847428475284762847728478284792848028481284822848328484284852848628487284882848928490284912849228493284942849528496284972849828499285002850128502285032850428505285062850728508285092851028511285122851328514285152851628517285182851928520285212852228523285242852528526285272852828529285302853128532285332853428535285362853728538285392854028541285422854328544285452854628547285482854928550285512855228553285542855528556285572855828559285602856128562285632856428565285662856728568285692857028571285722857328574285752857628577285782857928580285812858228583285842858528586285872858828589285902859128592285932859428595285962859728598285992860028601286022860328604286052860628607286082860928610286112861228613286142861528616286172861828619286202862128622286232862428625286262862728628286292863028631286322863328634286352863628637286382863928640286412864228643286442864528646286472864828649286502865128652286532865428655286562865728658286592866028661286622866328664286652866628667286682866928670
  1. Changes in version 0.3.3.8 - 2018-07-09
  2. Tor 0.3.3.8 backports several changes from the 0.3.4.x series, including
  3. fixes for a memory leak affecting directory authorities.
  4. o Major bugfixes (directory authority, backport from 0.3.4.3-alpha):
  5. - Stop leaking memory on directory authorities when planning to
  6. vote. This bug was crashing authorities by exhausting their
  7. memory. Fixes bug 26435; bugfix on 0.3.3.6.
  8. o Major bugfixes (rust, testing, backport from 0.3.4.3-alpha):
  9. - Make sure that failing tests in Rust will actually cause the build
  10. to fail: previously, they were ignored. Fixes bug 26258; bugfix
  11. on 0.3.3.4-alpha.
  12. o Minor features (compilation, backport from 0.3.4.4-rc):
  13. - When building Tor, prefer to use Python 3 over Python 2, and more
  14. recent (contemplated) versions over older ones. Closes
  15. ticket 26372.
  16. o Minor features (geoip):
  17. - Update geoip and geoip6 to the July 3 2018 Maxmind GeoLite2
  18. Country database. Closes ticket 26674.
  19. o Minor features (relay, diagnostic, backport from 0.3.4.3-alpha):
  20. - Add several checks to detect whether Tor relays are uploading
  21. their descriptors without specifying why they regenerated them.
  22. Diagnostic for ticket 25686.
  23. o Minor bugfixes (circuit path selection, backport from 0.3.4.1-alpha):
  24. - Don't count path selection failures as circuit build failures.
  25. This change should eliminate cases where Tor blames its guard or
  26. the network for situations like insufficient microdescriptors
  27. and/or overly restrictive torrc settings. Fixes bug 25705; bugfix
  28. on 0.3.3.1-alpha.
  29. o Minor bugfixes (compilation, backport from 0.3.4.4-rc):
  30. - Fix a compilation warning on some versions of GCC when building
  31. code that calls routerinfo_get_my_routerinfo() twice, assuming
  32. that the second call will succeed if the first one did. Fixes bug
  33. 26269; bugfix on 0.2.8.2-alpha.
  34. o Minor bugfixes (control port, backport from 0.3.4.4-rc):
  35. - Handle the HSADDRESS= argument to the HSPOST command properly.
  36. (Previously, this argument was misparsed and thus ignored.) Fixes
  37. bug 26523; bugfix on 0.3.3.1-alpha. Patch by "akwizgran".
  38. o Minor bugfixes (memory, correctness, backport from 0.3.4.4-rc):
  39. - Fix a number of small memory leaks identified by coverity. Fixes
  40. bug 26467; bugfix on numerous Tor versions.
  41. o Minor bugfixes (relay, backport from 0.3.4.3-alpha):
  42. - Relays now correctly block attempts to re-extend to the previous
  43. relay by Ed25519 identity. Previously they would warn in this
  44. case, but not actually reject the attempt. Fixes bug 26158; bugfix
  45. on 0.3.0.1-alpha.
  46. o Minor bugfixes (restart-in-process, backport from 0.3.4.1-alpha):
  47. - When shutting down, Tor now clears all the flags in the control.c
  48. module. This should prevent a bug where authentication cookies are
  49. not generated on restart. Fixes bug 25512; bugfix on 0.3.3.1-alpha.
  50. o Minor bugfixes (testing, compatibility, backport from 0.3.4.4-rc):
  51. - When running the hs_ntor_ref.py test, make sure only to pass
  52. strings (rather than "bytes" objects) to the Python subprocess
  53. module. Python 3 on Windows seems to require this. Fixes bug
  54. 26535; bugfix on 0.3.1.1-alpha.
  55. - When running the ntor_ref.py test, make sure only to pass strings
  56. (rather than "bytes" objects) to the Python subprocess module.
  57. Python 3 on Windows seems to require this. Fixes bug 26535; bugfix
  58. on 0.2.5.5-alpha.
  59. Changes in version 0.3.4.4-rc - 2018-07-09
  60. Tor 0.3.4.4-rc fixes several small compilation, portability, and
  61. correctness issues in previous versions of Tor. This version is a
  62. release candidate: if no serious bugs are found, we expect that the
  63. stable 0.3.4 release will be (almost) the same as this release.
  64. o Minor features (compilation):
  65. - When building Tor, prefer to use Python 3 over Python 2, and more
  66. recent (contemplated) versions over older ones. Closes
  67. ticket 26372.
  68. o Minor features (geoip):
  69. - Update geoip and geoip6 to the July 3 2018 Maxmind GeoLite2
  70. Country database. Closes ticket 26674.
  71. o Minor features (Rust, portability):
  72. - Rust cross-compilation is now supported. Closes ticket 25895.
  73. o Minor bugfixes (compilation):
  74. - Fix a compilation warning on some versions of GCC when building
  75. code that calls routerinfo_get_my_routerinfo() twice, assuming
  76. that the second call will succeed if the first one did. Fixes bug
  77. 26269; bugfix on 0.2.8.2-alpha.
  78. o Minor bugfixes (control port):
  79. - Report the port correctly when a port is configured to bind to
  80. "auto". Fixes bug 26568; bugfix on 0.3.4.1-alpha.
  81. - Handle the HSADDRESS= argument to the HSPOST command properly.
  82. (Previously, this argument was misparsed and thus ignored.) Fixes
  83. bug 26523; bugfix on 0.3.3.1-alpha. Patch by "akwizgran".
  84. o Minor bugfixes (correctness, flow control):
  85. - Upon receiving a stream-level SENDME cell, verify that our window
  86. has not grown too large. Fixes bug 26214; bugfix on svn
  87. r54 (pre-0.0.1).
  88. o Minor bugfixes (memory, correctness):
  89. - Fix a number of small memory leaks identified by coverity. Fixes
  90. bug 26467; bugfix on numerous Tor versions.
  91. o Minor bugfixes (testing, compatibility):
  92. - When running the hs_ntor_ref.py test, make sure only to pass
  93. strings (rather than "bytes" objects) to the Python subprocess
  94. module. Python 3 on Windows seems to require this. Fixes bug
  95. 26535; bugfix on 0.3.1.1-alpha.
  96. - When running the ntor_ref.py test, make sure only to pass strings
  97. (rather than "bytes" objects) to the Python subprocess module.
  98. Python 3 on Windows seems to require this. Fixes bug 26535; bugfix
  99. on 0.2.5.5-alpha.
  100. Changes in version 0.3.4.3-alpha - 2018-06-26
  101. Tor 0.3.4.3-alpha fixes several bugs in earlier versions, including
  102. one that was causing stability issues on directory authorities.
  103. o Major bugfixes (directory authority):
  104. - Stop leaking memory on directory authorities when planning to
  105. vote. This bug was crashing authorities by exhausting their
  106. memory. Fixes bug 26435; bugfix on 0.3.3.6.
  107. o Major bugfixes (rust, testing):
  108. - Make sure that failing tests in Rust will actually cause the build
  109. to fail: previously, they were ignored. Fixes bug 26258; bugfix
  110. on 0.3.3.4-alpha.
  111. o Minor feature (directory authorities):
  112. - Stop warning about incomplete bw lines before the first complete
  113. bw line has been found, so that additional header lines can be
  114. ignored. Fixes bug 25960; bugfix on 0.2.2.1-alpha
  115. o Minor features (relay, diagnostic):
  116. - Add several checks to detect whether Tor relays are uploading
  117. their descriptors without specifying why they regenerated them.
  118. Diagnostic for ticket 25686.
  119. o Minor features (unit tests):
  120. - Test complete bandwidth measurements files, and test that
  121. incomplete bandwidth lines only give warnings when the end of the
  122. header has not been detected. Fixes bug 25947; bugfix
  123. on 0.2.2.1-alpha
  124. o Minor bugfixes (compilation):
  125. - Refrain from compiling unit testing related object files when
  126. --disable-unittests is set to configure script. Fixes bug 24891;
  127. bugfix on 0.2.5.1-alpha.
  128. - When linking the libtor_testing.a library, only include the
  129. dirauth object files once. Previously, they were getting added
  130. twice. Fixes bug 26402; bugfix on 0.3.4.1-alpha.
  131. - The --enable-fatal-warnings flag now affects Rust code as well.
  132. Closes ticket 26245.
  133. o Minor bugfixes (onion services):
  134. - Recompute some consensus information after detecting a clock jump,
  135. or after transitioning from a non-live consensus to a live
  136. consensus. We do this to avoid having an outdated state, and
  137. miscalculating the index for next-generation onion services. Fixes
  138. bug 24977; bugfix on 0.3.2.1-alpha.
  139. o Minor bugfixes (relay):
  140. - Relays now correctly block attempts to re-extend to the previous
  141. relay by Ed25519 identity. Previously they would warn in this
  142. case, but not actually reject the attempt. Fixes bug 26158; bugfix
  143. on 0.3.0.1-alpha.
  144. o Minor bugfixes (testing):
  145. - Fix compilation of the doctests in the Rust crypto crate. Fixes
  146. bug 26415; bugfix on 0.3.4.1-alpha.
  147. - Instead of trying to read the geoip configuration files from
  148. within the unit tests, instead create our own ersatz files with
  149. just enough geoip data in the format we expect. Trying to read
  150. from the source directory created problems on Windows with mingw,
  151. where the build system's paths are not the same as the platform's
  152. paths. Fixes bug 25787; bugfix on 0.3.4.1-alpha.
  153. - Refrain from trying to get an item from an empty smartlist in
  154. test_bridges_clear_bridge_list. Set DEBUG_SMARTLIST in unit tests
  155. to catch improper smartlist usage. Furthermore, enable
  156. DEBUG_SMARTLIST globally when build is configured with fragile
  157. hardening. Fixes bug 26196; bugfix on 0.3.4.1-alpha.
  158. Changes in version 0.3.3.7 - 2018-06-12
  159. Tor 0.3.3.7 backports several changes from the 0.3.4.x series, including
  160. fixes for bugs affecting compatibility and stability.
  161. o Directory authority changes:
  162. - Add an IPv6 address for the "dannenberg" directory authority.
  163. Closes ticket 26343.
  164. o Minor features (geoip):
  165. - Update geoip and geoip6 to the June 7 2018 Maxmind GeoLite2
  166. Country database. Closes ticket 26351.
  167. o Minor bugfixes (compatibility, openssl, backport from 0.3.4.2-alpha):
  168. - Work around a change in OpenSSL 1.1.1 where return values that
  169. would previously indicate "no password" now indicate an empty
  170. password. Without this workaround, Tor instances running with
  171. OpenSSL 1.1.1 would accept descriptors that other Tor instances
  172. would reject. Fixes bug 26116; bugfix on 0.2.5.16.
  173. o Minor bugfixes (compilation, backport from 0.3.4.2-alpha):
  174. - Silence unused-const-variable warnings in zstd.h with some GCC
  175. versions. Fixes bug 26272; bugfix on 0.3.1.1-alpha.
  176. o Minor bugfixes (controller, backport from 0.3.4.2-alpha):
  177. - Improve accuracy of the BUILDTIMEOUT_SET control port event's
  178. TIMEOUT_RATE and CLOSE_RATE fields. (We were previously
  179. miscounting the total number of circuits for these field values.)
  180. Fixes bug 26121; bugfix on 0.3.3.1-alpha.
  181. o Minor bugfixes (hardening, backport from 0.3.4.2-alpha):
  182. - Prevent a possible out-of-bounds smartlist read in
  183. protover_compute_vote(). Fixes bug 26196; bugfix on 0.2.9.4-alpha.
  184. o Minor bugfixes (path selection, backport from 0.3.4.1-alpha):
  185. - Only select relays when they have the descriptors we prefer to use
  186. for them. This change fixes a bug where we could select a relay
  187. because it had _some_ descriptor, but reject it later with a
  188. nonfatal assertion error because it didn't have the exact one we
  189. wanted. Fixes bugs 25691 and 25692; bugfix on 0.3.3.4-alpha.
  190. Changes in version 0.3.4.2-alpha - 2018-06-12
  191. Tor 0.3.4.2-alpha fixes several minor bugs in the previous alpha
  192. release, and forward-ports an authority-only security fix from 0.3.3.6.
  193. o Directory authority changes:
  194. - Add an IPv6 address for the "dannenberg" directory authority.
  195. Closes ticket 26343.
  196. o Major bugfixes (security, directory authority, denial-of-service, also in 0.3.3.6):
  197. - Fix a bug that could have allowed an attacker to force a directory
  198. authority to use up all its RAM by passing it a maliciously
  199. crafted protocol versions string. Fixes bug 25517; bugfix on
  200. 0.2.9.4-alpha. This issue is also tracked as TROVE-2018-005.
  201. o Minor features (continuous integration):
  202. - Add the necessary configuration files for continuous integration
  203. testing on Windows, via the Appveyor platform. Closes ticket
  204. 25549. Patches from Marcin Cieślak and Isis Lovecruft.
  205. o Minor features (geoip):
  206. - Update geoip and geoip6 to the June 7 2018 Maxmind GeoLite2
  207. Country database. Closes ticket 26351.
  208. o Minor bugfixes (compatibility, openssl):
  209. - Work around a change in OpenSSL 1.1.1 where return values that
  210. would previously indicate "no password" now indicate an empty
  211. password. Without this workaround, Tor instances running with
  212. OpenSSL 1.1.1 would accept descriptors that other Tor instances
  213. would reject. Fixes bug 26116; bugfix on 0.2.5.16.
  214. o Minor bugfixes (compilation):
  215. - Silence unused-const-variable warnings in zstd.h with some GCC
  216. versions. Fixes bug 26272; bugfix on 0.3.1.1-alpha.
  217. - Fix compilation when using OpenSSL 1.1.0 with the "no-deprecated"
  218. flag enabled. Fixes bug 26156; bugfix on 0.3.4.1-alpha.
  219. - Avoid a compiler warning when casting the return value of
  220. smartlist_len() to double with DEBUG_SMARTLIST enabled. Fixes bug
  221. 26283; bugfix on 0.2.4.10-alpha.
  222. o Minor bugfixes (control port):
  223. - Do not count 0-length RELAY_COMMAND_DATA cells as valid data in
  224. CIRC_BW events. Previously, such cells were counted entirely in
  225. the OVERHEAD field. Now they are not. Fixes bug 26259; bugfix
  226. on 0.3.4.1-alpha.
  227. o Minor bugfixes (controller):
  228. - Improve accuracy of the BUILDTIMEOUT_SET control port event's
  229. TIMEOUT_RATE and CLOSE_RATE fields. (We were previously
  230. miscounting the total number of circuits for these field values.)
  231. Fixes bug 26121; bugfix on 0.3.3.1-alpha.
  232. o Minor bugfixes (hardening):
  233. - Prevent a possible out-of-bounds smartlist read in
  234. protover_compute_vote(). Fixes bug 26196; bugfix on 0.2.9.4-alpha.
  235. o Minor bugfixes (onion services):
  236. - Fix a bug that blocked the creation of ephemeral v3 onion
  237. services. Fixes bug 25939; bugfix on 0.3.4.1-alpha.
  238. o Minor bugfixes (test coverage tools):
  239. - Update our "cov-diff" script to handle output from the latest
  240. version of gcov, and to remove extraneous timestamp information
  241. from its output. Fixes bugs 26101 and 26102; bugfix
  242. on 0.2.5.1-alpha.
  243. Changes in version 0.3.3.6 - 2018-05-22
  244. Tor 0.3.3.6 is the first stable release in the 0.3.3 series. It
  245. backports several important fixes from the 0.3.4.1-alpha.
  246. The Tor 0.3.3 series includes controller support and other
  247. improvements for v3 onion services, official support for embedding Tor
  248. within other applications, and our first non-trivial module written in
  249. the Rust programming language. (Rust is still not enabled by default
  250. when building Tor.) And as usual, there are numerous other smaller
  251. bugfixes, features, and improvements.
  252. Below are the changes since 0.3.3.5-rc. For a list of all changes
  253. since 0.3.2.10, see the ReleaseNotes file.
  254. o Major bugfixes (directory authorities, security, backport from 0.3.4.1-alpha):
  255. - When directory authorities read a zero-byte bandwidth file, they
  256. would previously log a warning with the contents of an
  257. uninitialised buffer. They now log a warning about the empty file
  258. instead. Fixes bug 26007; bugfix on 0.2.2.1-alpha.
  259. o Major bugfixes (security, directory authority, denial-of-service):
  260. - Fix a bug that could have allowed an attacker to force a directory
  261. authority to use up all its RAM by passing it a maliciously
  262. crafted protocol versions string. Fixes bug 25517; bugfix on
  263. 0.2.9.4-alpha. This issue is also tracked as TROVE-2018-005.
  264. o Major bugfixes (crash, backport from 0.3.4.1-alpha):
  265. - Avoid a rare assertion failure in the circuit build timeout code
  266. if we fail to allow any circuits to actually complete. Fixes bug
  267. 25733; bugfix on 0.2.2.2-alpha.
  268. o Major bugfixes (directory authorities, backport from 0.3.4.1-alpha):
  269. - Avoid a crash when testing router reachability on a router that
  270. could have an ed25519 ID, but which does not. Fixes bug 25415;
  271. bugfix on 0.3.3.2-alpha.
  272. o Major bugfixes (onion service, backport from 0.3.4.1-alpha):
  273. - Correctly detect when onion services get disabled after HUP. Fixes
  274. bug 25761; bugfix on 0.3.2.1.
  275. o Major bugfixes (relay, denial of service, backport from 0.3.4.1-alpha):
  276. - Impose a limit on circuit cell queue size. The limit can be
  277. controlled by a consensus parameter. Fixes bug 25226; bugfix
  278. on 0.2.4.14-alpha.
  279. o Minor features (compatibility, backport from 0.3.4.1-alpha):
  280. - Avoid some compilation warnings with recent versions of LibreSSL.
  281. Closes ticket 26006.
  282. o Minor features (continuous integration, backport from 0.3.4.1-alpha):
  283. - Our .travis.yml configuration now includes support for testing the
  284. results of "make distcheck". (It's not uncommon for "make check"
  285. to pass but "make distcheck" to fail.) Closes ticket 25814.
  286. - Our Travis CI configuration now integrates with the Coveralls
  287. coverage analysis tool. Closes ticket 25818.
  288. o Minor features (geoip):
  289. - Update geoip and geoip6 to the May 1 2018 Maxmind GeoLite2 Country
  290. database. Closes ticket 26104.
  291. o Minor bugfixes (client, backport from 0.3.4.1-alpha):
  292. - Don't consider Tor running as a client if the ControlPort is open,
  293. but no actual client ports are open. Fixes bug 26062; bugfix
  294. on 0.2.9.4-alpha.
  295. o Minor bugfixes (correctness, client, backport from 0.3.4.1-alpha):
  296. - Upon receiving a malformed connected cell, stop processing the
  297. cell immediately. Previously we would mark the connection for
  298. close, but continue processing the cell as if the connection were
  299. open. Fixes bug 26072; bugfix on 0.2.4.7-alpha.
  300. o Minor bugfixes (documentation, backport from 0.3.4.1-alpha):
  301. - Stop saying in the manual that clients cache ipv4 dns answers from
  302. exit relays. We haven't used them since 0.2.6.3-alpha, and in
  303. ticket 24050 we stopped even caching them as of 0.3.2.6-alpha, but
  304. we forgot to say so in the man page. Fixes bug 26052; bugfix
  305. on 0.3.2.6-alpha.
  306. o Minor bugfixes (Linux seccomp2 sandbox, backport from 0.3.4.1-alpha):
  307. - Allow the nanosleep() system call, which glibc uses to implement
  308. sleep() and usleep(). Fixes bug 24969; bugfix on 0.2.5.1-alpha.
  309. o Minor bugfixes (onion service, backport from 0.3.4.1-alpha):
  310. - Fix a memory leak when a v3 onion service is configured and gets a
  311. SIGHUP signal. Fixes bug 25901; bugfix on 0.3.2.1-alpha.
  312. - When parsing the descriptor signature, look for the token plus an
  313. extra white-space at the end. This is more correct but also will
  314. allow us to support new fields that might start with "signature".
  315. Fixes bug 26069; bugfix on 0.3.0.1-alpha.
  316. o Minor bugfixes (relay, crash, backport from 0.3.4.1-alpha):
  317. - Avoid a crash when running with DirPort set but ORPort tuned off.
  318. Fixes a case of bug 23693; bugfix on 0.3.1.1-alpha.
  319. o Documentation (backport from 0.3.4.1-alpha):
  320. - Correct an IPv6 error in the documentation for ExitPolicy. Closes
  321. ticket 25857. Patch from "CTassisF".
  322. Changes in version 0.3.4.1-alpha - 2018-05-17
  323. Tor 0.3.4.1-alpha is the first release in the 0.3.4.x series. It
  324. includes refactoring to begin reducing Tor's binary size and idle CPU
  325. usage on mobile, along with prep work for new bandwidth scanners,
  326. improvements to the experimental "vanguards" feature, and numerous
  327. other small features and bugfixes.
  328. o New system requirements:
  329. - Tor no longer tries to support old operating systems without
  330. mmap() or some local equivalent. Apparently, compilation on such
  331. systems has been broken for some time, without anybody noticing or
  332. complaining. Closes ticket 25398.
  333. o Major feature (directory authority, modularization):
  334. - The directory authority subsystem has been modularized. The code
  335. is now located in src/or/dirauth/, and is compiled in by default.
  336. To disable the module, the configure option
  337. --disable-module-dirauth has been added. This module may be
  338. disabled by default in some future release. Closes ticket 25610.
  339. o Major features (main loop, CPU usage):
  340. - When Tor is disabled (via DisableNetwork or via hibernation), it
  341. no longer needs to run any per-second events. This change should
  342. make it easier for mobile applications to disable Tor while the
  343. device is sleeping, or Tor is not running. Closes ticket 26063.
  344. - Tor no longer enables all of its periodic events by default.
  345. Previously, Tor would enable all possible main loop events,
  346. regardless of whether it needed them. Furthermore, many of these
  347. events are now disabled with Tor is hibernating or DisableNetwork
  348. is set. This is a big step towards reducing client CPU usage by
  349. reducing the amount of wake-ups the daemon does. Closes ticket
  350. 25376 and 25762.
  351. - The bandwidth-limitation logic has been refactored so that
  352. bandwidth calculations are performed on-demand, rather than every
  353. TokenBucketRefillInterval milliseconds. This change should improve
  354. the granularity of our bandwidth calculations, and limit the
  355. number of times that the Tor process needs to wake up when it is
  356. idle. Closes ticket 25373.
  357. - Move responsibility for many operations from a once-per-second
  358. callback to a callback that is only scheduled as needed. Moving
  359. this functionality has allowed us to disable the callback when
  360. Tor's network is disabled. Once enough items are removed from our
  361. once-per-second callback, we can eliminate it entirely to conserve
  362. CPU when idle. The functionality removed includes: closing
  363. connections, circuits, and channels (ticket 25932); consensus
  364. voting (25937); flushing log callbacks (25951); honoring delayed
  365. SIGNEWNYM requests (25949); rescanning the consensus cache
  366. (25931); saving the state file to disk (25948); warning relay
  367. operators about unreachable ports (25952); and keeping track of
  368. Tor's uptime (26009).
  369. o Major bugfixes (directory authorities, security):
  370. - When directory authorities read a zero-byte bandwidth file, they
  371. would previously log a warning with the contents of an
  372. uninitialised buffer. They now log a warning about the empty file
  373. instead. Fixes bug 26007; bugfix on 0.2.2.1-alpha.
  374. o Major bugfixes (crash):
  375. - Avoid a rare assertion failure in the circuit build timeout code
  376. if we fail to allow any circuits to actually complete. Fixes bug
  377. 25733; bugfix on 0.2.2.2-alpha.
  378. o Major bugfixes (directory authority):
  379. - Avoid a crash when testing router reachability on a router that
  380. could have an ed25519 ID, but which does not. Fixes bug 25415;
  381. bugfix on 0.3.3.2-alpha.
  382. o Major bugfixes (onion service):
  383. - Correctly detect when onion services get disabled after HUP. Fixes
  384. bug 25761; bugfix on 0.3.2.1.
  385. o Major bugfixes (protover, voting):
  386. - Revise Rust implementation of protover to use a more memory-
  387. efficient voting algorithm and corresponding data structures, thus
  388. avoiding a potential (but small impact) DoS attack where specially
  389. crafted protocol strings would expand to several potential
  390. megabytes in memory. In the process, several portions of code were
  391. revised to be methods on new, custom types, rather than functions
  392. taking interchangeable types, thus increasing type safety of the
  393. module. Custom error types and handling were added as well, in
  394. order to facilitate better error dismissal/handling in outside
  395. crates and avoid mistakenly passing an internal error string to C
  396. over the FFI boundary. Many tests were added, and some previous
  397. differences between the C and Rust implementations have been
  398. remedied. Fixes bug 24031; bugfix on 0.3.3.1-alpha.
  399. o Major bugfixes (relay, denial of service):
  400. - Impose a limit on circuit cell queue size. The limit can be
  401. controlled by a consensus parameter. Fixes bug 25226; bugfix
  402. on 0.2.4.14-alpha.
  403. o Minor features (accounting):
  404. - When Tor becomes dormant, it now uses a scheduled event to wake up
  405. at the right time. Previously, we would use the per-second timer
  406. to check whether to wake up, but we no longer have any per-second
  407. timers enabled when the network is disabled. Closes ticket 26064.
  408. o Minor features (code quality):
  409. - Add optional spell-checking for the Tor codebase, using the
  410. "misspell" program. To use this feature, run "make check-typos".
  411. Closes ticket 25024.
  412. o Minor features (compatibility):
  413. - Tor now detects versions of OpenSSL 1.1.0 and later compiled with
  414. the no-deprecated option, and builds correctly with them. Closes
  415. tickets 19429, 19981, and 25353.
  416. - Avoid some compilation warnings with recent versions of LibreSSL.
  417. Closes ticket 26006.
  418. o Minor features (compression, zstd):
  419. - When running with zstd, Tor now considers using advanced functions
  420. that the zstd maintainers have labeled as potentially unstable. To
  421. prevent breakage, Tor will only use this functionality when the
  422. runtime version of the zstd library matches the version with which
  423. Tor was compiled. Closes ticket 25162.
  424. o Minor features (configuration):
  425. - The "DownloadSchedule" options have been renamed to end with
  426. "DownloadInitialDelay". The old names are still allowed, but will
  427. produce a warning. Comma-separated lists are still permitted for
  428. these options, but all values after the first are ignored (as they
  429. have been since 0.2.9). Closes ticket 23354.
  430. o Minor features (continuous integration):
  431. - Our .travis.yml configuration now includes support for testing the
  432. results of "make distcheck". (It's not uncommon for "make check"
  433. to pass but "make distcheck" to fail.) Closes ticket 25814.
  434. - Our Travis CI configuration now integrates with the Coveralls
  435. coverage analysis tool. Closes ticket 25818.
  436. o Minor features (control port):
  437. - Introduce GETINFO "current-time/{local,utc}" to return the local
  438. and UTC times respectively in ISO format. This helps a controller
  439. like Tor Browser detect a time-related error. Closes ticket 25511.
  440. Patch by Neel Chauhan.
  441. - Introduce new fields to the CIRC_BW event. There are two new
  442. fields in each of the read and written directions. The DELIVERED
  443. fields report the total valid data on the circuit, as measured by
  444. the payload sizes of verified and error-checked relay command
  445. cells. The OVERHEAD fields report the total unused bytes in each
  446. of these cells. Closes ticket 25903.
  447. o Minor features (directory authority):
  448. - Directory authorities now open their key-pinning files as O_SYNC,
  449. to limit their chances of accidentally writing partial lines.
  450. Closes ticket 23909.
  451. o Minor features (directory authority, forward compatibility):
  452. - Make the lines of the measured bandwidth file able to contain
  453. their entries in any order. Previously, the node_id entry needed
  454. to come first. Closes ticket 26004.
  455. o Minor features (entry guards):
  456. - Introduce a new torrc option NumPrimaryGuards for controlling the
  457. number of primary guards. Closes ticket 25843.
  458. o Minor features (geoip):
  459. - Update geoip and geoip6 to the May 1 2018 Maxmind GeoLite2 Country
  460. database. Closes ticket 26104.
  461. o Minor features (performance):
  462. - Avoid a needless call to malloc() when processing an incoming
  463. relay cell. Closes ticket 24914.
  464. - Make our timing-wheel code run a tiny bit faster on 32-bit
  465. platforms, by preferring 32-bit math to 64-bit. Closes
  466. ticket 24688.
  467. - Avoid a needless malloc()/free() pair every time we handle an ntor
  468. handshake. Closes ticket 25150.
  469. o Minor features (testing):
  470. - Add a unit test for voting_schedule_get_start_of_next_interval().
  471. Closes ticket 26014, and helps make unit test coverage
  472. more deterministic.
  473. - A new unittests module specifically for testing the functions in
  474. the (new-ish) bridges.c module has been created with new
  475. unittests, raising the code coverage percentages. Closes 25425.
  476. - We now have improved testing for addressmap_get_virtual_address()
  477. function. This should improve our test coverage, and make our test
  478. coverage more deterministic. Closes ticket 25993.
  479. o Minor features (timekeeping, circuit scheduling):
  480. - When keeping track of how busy each circuit have been recently on
  481. a given connection, use coarse-grained monotonic timers rather
  482. than gettimeofday(). This change should marginally increase
  483. accuracy and performance. Implements part of ticket 25927.
  484. o Minor bugfixes (bandwidth management):
  485. - Consider ourselves "low on write bandwidth" if we have exhausted
  486. our write bandwidth some time in the last second. This was the
  487. documented behavior before, but the actual behavior was to change
  488. this value every TokenBucketRefillInterval. Fixes bug 25828;
  489. bugfix on 0.2.3.5-alpha.
  490. o Minor bugfixes (C correctness):
  491. - Add a missing lock acquisition in the shutdown code of the control
  492. subsystem. Fixes bug 25675; bugfix on 0.2.7.3-rc. Found by
  493. Coverity; this is CID 1433643.
  494. o Minor bugfixes (circuit path selection):
  495. - Don't count path selection failures as circuit build failures.
  496. This change should eliminate cases where Tor blames its guard or
  497. the network for situations like insufficient microdescriptors
  498. and/or overly restrictive torrc settings. Fixes bug 25705; bugfix
  499. on 0.3.3.1-alpha.
  500. o Minor bugfixes (client):
  501. - Don't consider Tor running as a client if the ControlPort is open,
  502. but no actual client ports are open. Fixes bug 26062; bugfix
  503. on 0.2.9.4-alpha.
  504. o Minor bugfixes (code style):
  505. - Fixed multiple includes of transports.h in src/or/connection.c
  506. Fixes bug 25261; bugfix on 0.2.5.1-alpha.
  507. - Remove the unused variable n_possible from the function
  508. channel_get_for_extend(). Fixes bug 25645; bugfix on 0.2.4.4-alpha
  509. o Minor bugfixes (control interface):
  510. - Respond with more human-readable error messages to GETINFO exit-
  511. policy/* requests. Also, let controller know if an error is
  512. transient (response code 551) or not (response code 552). Fixes
  513. bug 25852; bugfix on 0.2.8.1-alpha.
  514. o Minor bugfixes (controller):
  515. - Make CIRC_BW event reflect the total of all data sent on a
  516. circuit, including padding and dropped cells. Also fix a mis-
  517. counting bug when STREAM_BW events were enabled. Fixes bug 25400;
  518. bugfix on 0.2.5.2-alpha.
  519. o Minor bugfixes (correctness, client):
  520. - Upon receiving a malformed connected cell, stop processing the cell
  521. immediately. Previously we would mark the connection for close, but
  522. continue processing the cell as if the connection were open. Fixes bug
  523. 26072; bugfix on 0.2.4.7-alpha.
  524. o Minor bugfixes (directory client):
  525. - When unverified-consensus is verified, rename it to cached-
  526. consenus. Fixes bug 4187; bugfix on 0.2.0.3-alpha.
  527. - Fixed launching a certificate fetch always during the scheduled
  528. periodic consensus fetch by fetching only in those cases when
  529. consensus are waiting for certs. Fixes bug 24740; bugfix
  530. on 0.2.9.1-alpha.
  531. o Minor bugfixes (documentation):
  532. - Stop saying in the manual that clients cache ipv4 dns answers from
  533. exit relays. We haven't used them since 0.2.6.3-alpha, and in
  534. ticket 24050 we stopped even caching them as of 0.3.2.6-alpha, but
  535. we forgot to say so in the man page. Fixes bug 26052; bugfix
  536. on 0.3.2.6-alpha.
  537. o Minor bugfixes (error reporting):
  538. - Improve tolerance for directory authorities with skewed clocks.
  539. Previously, an authority with a clock more than 60 seconds ahead
  540. could cause a client with a correct clock to warn that the
  541. client's clock was behind. Now the clocks of a majority of
  542. directory authorities have to be ahead of the client before this
  543. warning will occur. Fixes bug 25756; bugfix on 0.2.2.25-alpha.
  544. o Minor bugfixes (Linux seccomp2 sandbox):
  545. - Allow the nanosleep() system call, which glibc uses to implement
  546. sleep() and usleep(). Fixes bug 24969; bugfix on 0.2.5.1-alpha.
  547. o Minor bugfixes (onion service):
  548. - Fix a memory leak when a v3 onion service is configured and gets a
  549. SIGHUP signal. Fixes bug 25901; bugfix on 0.3.2.1-alpha.
  550. - When parsing the descriptor signature, look for the token plus an
  551. extra white-space at the end. This is more correct but also will
  552. allow us to support new fields that might start with "signature".
  553. Fixes bug 26069; bugfix on 0.3.0.1-alpha.
  554. o Minor bugfixes (path selection):
  555. - Only select relays when they have the descriptors we prefer to use
  556. for them. This change fixes a bug where we could select a relay
  557. because it had _some_ descriptor, but reject it later with a
  558. nonfatal assertion error because it didn't have the exact one we
  559. wanted. Fixes bugs 25691 and 25692; bugfix on 0.3.3.4-alpha.
  560. o Minor bugfixes (portability):
  561. - Do not align mmap length, as it is not required by POSIX, and the
  562. getpagesize function is deprecated. Fixes bug 25399; bugfix
  563. on 0.1.1.23.
  564. o Minor bugfixes (portability, FreeBSD):
  565. - In have_enough_mem_for_dircache(), the variable DIRCACHE_MIN_MEM_MB
  566. does not stringify on FreeBSD, so we switch to tor_asprintf().
  567. Fixes bug 20887; bugfix on 0.2.8.1-alpha. Patch by Neel Chauhan.
  568. o Minor bugfixes (relay statistics):
  569. - When a relay is collecting internal statistics about how many
  570. create cell requests it has seen of each type, accurately count
  571. the requests from relays that temporarily fall out of the
  572. consensus. (To be extra conservative, we were already ignoring
  573. requests from clients in our counts, and we continue ignoring them
  574. here.) Fixes bug 24910; bugfix on 0.2.4.17-rc.
  575. o Minor bugfixes (relay, crash):
  576. - Avoid a crash when running with DirPort set but ORPort tuned off.
  577. Fixes a case of bug 23693; bugfix on 0.3.1.1-alpha.
  578. o Minor bugfixes (restart-in-process):
  579. - When shutting down, Tor now clears all the flags in the control.c
  580. module. This should prevent a bug where authentication cookies are
  581. not generated on restart. Fixes bug 25512; bugfix on 0.3.3.1-alpha.
  582. o Minor bugfixes (testing):
  583. - When testing workqueue event-cancellation, make sure that we
  584. actually cancel an event, and that cancel each event with equal
  585. probability. (It was previously possible, though extremely
  586. unlikely, for our event-canceling test not to cancel any events.)
  587. Fixes bug 26008; bugfix on 0.2.6.3-alpha.
  588. - Repeat part of the test in test_client_pick_intro() a number of
  589. times, to give it consistent coverage. Fixes bug 25996; bugfix
  590. on 0.3.2.1-alpha.
  591. - Remove randomness from the hs_common/responsible_hsdirs test, so
  592. that it always takes the same path through the function it tests.
  593. Fixes bug 25997; bugfix on 0.3.2.1-alpha.
  594. - Change the behavior of the "channel/outbound" test so that it
  595. never causes a 10-second rollover for the EWMA circuitmux code.
  596. Previously, this behavior would happen randomly, and result in
  597. fluctuating test coverage. Fixes bug 25994; bugfix
  598. on 0.3.3.1-alpha.
  599. - Use X509_new() to allocate certificates that will be freed later
  600. with X509_free(). Previously, some parts of the unit tests had
  601. used tor_malloc_zero(), which is incorrect, and which caused test
  602. failures on Windows when they were built with extra hardening.
  603. Fixes bugs 25943 and 25944; bugfix on 0.2.8.1-alpha. Patch by
  604. Marcin Cieślak.
  605. - While running the circuit_timeout test, fix the PRNG to a
  606. deterministic AES stream, so that the test coverage from this test
  607. will itself be deterministic. Fixes bug 25995; bugfix
  608. on 0.2.2.2-alpha.
  609. o Minor bugfixes (vanguards):
  610. - Allow the last hop in a vanguard circuit to be the same as our
  611. first, to prevent the adversary from influencing guard node choice
  612. by choice of last hop. Also prevent the creation of A - B - A
  613. paths, or A - A paths, which are forbidden by relays. Fixes bug
  614. 25870; bugfix on 0.3.3.1-alpha.
  615. o Code simplification and refactoring:
  616. - Remove duplicate code in parse_{c,s}method_line and bootstrap
  617. their functionalities into a single function. Fixes bug 6236;
  618. bugfix on 0.2.3.6-alpha.
  619. - We remove the PortForwsrding and PortForwardingHelper options,
  620. related functions, and the port_forwarding tests. These options
  621. were used by the now-deprecated Vidalia to help ordinary users
  622. become Tor relays or bridges. Closes ticket 25409. Patch by
  623. Neel Chauhan.
  624. - In order to make the OR and dir checking function in router.c less
  625. confusing we renamed some functions and
  626. consider_testing_reachability() has been split into
  627. router_should_check_reachability() and
  628. router_do_reachability_checks(). Also we improved the documentation
  629. in some functions. Closes ticket 18918.
  630. - Initial work to isolate Libevent usage to a handful of modules in
  631. our codebase, to simplify our call structure, and so that we can
  632. more easily change event loops in the future if needed. Closes
  633. ticket 23750.
  634. - Introduce a function to call getsockname() and return tor_addr_t,
  635. to save a little complexity throughout the codebase. Closes
  636. ticket 18105.
  637. - Make hsdir_index in node_t a hsdir_index_t rather than a pointer
  638. as hsdir_index is always present. Also, we move hsdir_index_t into
  639. or.h. Closes ticket 23094. Patch by Neel Chauhan.
  640. - Merge functions used for describing nodes and suppress the
  641. functions that do not allocate memory for the output buffer
  642. string. NODE_DESC_BUF_LEN constant and format_node_description()
  643. function cannot be used externally from router.c module anymore.
  644. Closes ticket 25432. Patch by valentecaio.
  645. - Our main loop has been simplified so that all important operations
  646. happen inside events. Previously, some operations had to happen
  647. outside the event loop, to prevent infinite sequences of event
  648. activations. Closes ticket 25374.
  649. - Put a SHA1 public key digest in hs_service_intro_point_t, and use
  650. it in register_intro_circ() and service_intro_point_new(). This
  651. prevents the digest from being re-calculated each time. Closes
  652. ticket 23107. Patch by Neel Chauhan.
  653. - Refactor token-bucket implementations to use a common backend.
  654. Closes ticket 25766.
  655. - Remove extern declaration of stats_n_seconds_working variable from
  656. main, protecting its accesses with get_uptime() and reset_uptime()
  657. functions. Closes ticket 25081, patch by “valentecaio”.
  658. - Remove our previous logic for "cached gettimeofday()" -- our
  659. coarse monotonic timers are fast enough for this purpose, and far
  660. less error-prone. Implements part of ticket 25927.
  661. - Remove the return value for fascist_firewall_choose_address_base(),
  662. and sister functions such as fascist_firewall_choose_address_node()
  663. and fascist_firewall_choose_address_rs(). Also, while we're here,
  664. initialize the ap argument as leaving it uninitialized can pose a
  665. security hazard. Closes ticket 24734. Patch by Neel Chauhan.
  666. - Rename two fields of connection_t struct. timestamp_lastwritten is
  667. renamed to timestamp_last_write_allowed and timestamp_lastread is
  668. renamed to timestamp_last_read_allowed. Closes ticket 24714, patch
  669. by "valentecaio".
  670. - Since Tor requires C99, remove our old workaround code for libc
  671. implementations where free(NULL) doesn't work. Closes ticket 24484.
  672. - Use our standard rate-limiting code to deal with excessive
  673. libevent failures, rather than the hand-rolled logic we had
  674. before. Closes ticket 26016.
  675. - We remove the return value of node_get_prim_orport() and
  676. node_get_prim_dirport(), and introduce node_get_prim_orport() in
  677. node_ipv6_or_preferred() and node_ipv6_dir_preferred() in order to
  678. check for a null address. Closes ticket 23873. Patch by
  679. Neel Chauhan.
  680. - We switch to should_record_bridge_info() in
  681. geoip_note_client_seen() and options_need_geoip_info() instead of
  682. accessing the configuration values directly. Fixes bug 25290;
  683. bugfix on 0.2.1.6-alpha. Patch by Neel Chauhan.
  684. o Deprecated features:
  685. - As we are not recommending 0.2.5 anymore, we require relays that
  686. once had an ed25519 key associated with their RSA key to always
  687. have that key, instead of allowing them to drop back to a version
  688. that didn't support ed25519. This means they need to use a new RSA
  689. key if the want to downgrade to an older version of tor without
  690. ed25519. Closes ticket 20522.
  691. o Documentation:
  692. - Correct an IPv6 error in the documentation for ExitPolicy. Closes
  693. ticket 25857. Patch from "CTassisF".
  694. o Removed features:
  695. - Directory authorities will no longer support voting according to
  696. any consensus method before consensus method 25. This keeps
  697. authorities compatible with all authorities running 0.2.9.8 and
  698. later, and does not break any clients or relays. Implements ticket
  699. 24378 and proposal 290.
  700. - The PortForwarding and PortForwardingHelper features have been
  701. removed. The reasoning is, given that implementations of NAT
  702. traversal protocols within common consumer grade routers are
  703. frequently buggy, and that the target audience for a NAT punching
  704. feature is a perhaps less-technically-inclined relay operator,
  705. when the helper fails to setup traversal the problems are usually
  706. deep, ugly, and very router specific, making them horrendously
  707. impossible for technical support to reliable assist with, and thus
  708. resulting in frustration all around. Unfortunately, relay
  709. operators who would like to run relays behind NATs will need to
  710. become more familiar with the port forwarding configurations on
  711. their local router. Closes 25409.
  712. - The TestingEnableTbEmptyEvent option has been removed. It was used
  713. in testing simulations to measure how often connection buckets
  714. were emptied, in order to improve our scheduling, but it has not
  715. been actively used in years. Closes ticket 25760.
  716. - The old "round-robin" circuit multiplexer (circuitmux)
  717. implementation has been removed, along with a fairly large set of
  718. code that existed to support it. It has not been the default
  719. circuitmux since we introduced the "EWMA" circuitmux in 0.2.4.x,
  720. but it still required an unreasonable amount of memory and CPU.
  721. Closes ticket 25268.
  722. Changes in version 0.3.3.5-rc - 2018-04-15
  723. Tor 0.3.3.5-rc fixes various bugs in earlier versions of Tor,
  724. including some that could affect reliability or correctness.
  725. This is the first release candidate in the 0.3.3 series. If we find no
  726. new bugs or regression here, then the first stable 0.3.3 release will
  727. be nearly identical to this one.
  728. o Major bugfixes (security, protover, voting):
  729. - Revise Rust implementation of protover to use a more memory-
  730. efficient voting algorithm and corresponding data structures, thus
  731. avoiding a potential memory-based DoS attack where specially
  732. crafted protocol strings would expand to fill available memory.
  733. Fixes bug 24031; bugfix on 0.3.3.1-alpha.
  734. o Major bugfixes (performance, load balancing):
  735. - Directory authorities no longer vote in favor of the Guard flag
  736. for relays without directory support. Starting in Tor
  737. 0.3.0.1-alpha, clients have been avoiding using such relays in the
  738. Guard position, leading to increasingly broken load balancing for
  739. the 5%-or-so of Guards that don't advertise directory support.
  740. Fixes bug 22310; bugfix on 0.3.0.6.
  741. o Minor feature (continuous integration):
  742. - Update the Travis CI configuration to use the stable Rust channel,
  743. now that we have decided to require that. Closes ticket 25714.
  744. o Minor features (config options):
  745. - Change the way the default value for MaxMemInQueues is calculated.
  746. We now use 40% of the hardware RAM if the system has 8 GB RAM or
  747. more. Otherwise we use the former value of 75%. Closes
  748. ticket 24782.
  749. o Minor features (geoip):
  750. - Update geoip and geoip6 to the April 3 2018 Maxmind GeoLite2
  751. Country database. Closes ticket 25718.
  752. o Minor bugfixes (client):
  753. - When using a listed relay as a bridge, and also using
  754. microdescriptors, and considering that relay as a non-bridge in a
  755. circuit, treat its microdescriptor as a valid source of
  756. information about that relay. This change should prevent a non-
  757. fatal assertion error. Fixes bug 25691; bugfix on 0.3.3.4-alpha.
  758. o Minor bugfixes (controller):
  759. - Restore the correct operation of the RESOLVE command, which had
  760. been broken since we added the ability to enable/disable DNS on
  761. specific listener ports. Fixes bug 25617; bugfix on 0.2.9.3-alpha.
  762. o Minor bugfixes (distribution, compilation, rust):
  763. - Build correctly when the rust dependencies submodule is loaded,
  764. but the TOR_RUST_DEPENDENCIES environment variable is not set.
  765. Fixes bug 25679; bugfix on 0.3.3.1-alpha.
  766. - Actually include all of our Rust source in our source
  767. distributions. (Previously, a few of the files were accidentally
  768. omitted.) Fixes bug 25732; bugfix on 0.3.3.2-alpha.
  769. o Minor bugfixes (documentation):
  770. - Document that the PerConnBW{Rate,Burst} options will fall back to
  771. their corresponding consensus parameters only if those parameters
  772. are set. Previously we had claimed that these values would always
  773. be set in the consensus. Fixes bug 25296; bugfix on 0.2.2.7-alpha.
  774. - Revert a misformatting issue in the ExitPolicy documentation.
  775. Fixes bug 25582; bugfix on 0.3.3.1-alpha.
  776. o Minor bugfixes (exit relay DNS retries):
  777. - Re-attempt timed-out DNS queries 3 times before failure, since our
  778. timeout is 5 seconds for them, but clients wait 10-15. Also allow
  779. slightly more timeouts per resolver when an exit has multiple
  780. resolvers configured. Fixes bug 21394; bugfix on 0.3.1.9.
  781. o Minor bugfixes (onion services):
  782. - Re-instate counting the client HSDir fetch circuits against the
  783. MaxClientCircuitsPending rate limit. Fixes bug 24989; bugfix
  784. on 0.3.3.1-alpha.
  785. - Remove underscores from the _HSLayer{2,3}Nodes options. This
  786. expert-user configuration can now be enabled as HSLayer{2,3}Nodes.
  787. Fixes bug 25581; bugfix on 0.3.3.1-alpha
  788. o Code simplification and refactoring:
  789. - Move the list of default directory authorities to its own file.
  790. Closes ticket 24854. Patch by "beastr0".
  791. o Documentation (manpage, denial of service):
  792. - Provide more detail about the denial-of-service options, by
  793. listing each mitigation and explaining how they relate. Closes
  794. ticket 25248.
  795. Changes in version 0.3.3.4-alpha - 2018-03-29
  796. Tor 0.3.3.4-alpha includes various bugfixes for issues found during
  797. the alpha testing of earlier releases in its series. We are
  798. approaching a stable 0.3.3.4-alpha release: more testing is welcome!
  799. o New system requirements:
  800. - When built with Rust, Tor now depends on version 0.2.39 of the
  801. libc crate. Closes tickets 25310 and 25664.
  802. o Major bugfixes (relay, connection):
  803. - If we have failed to connect to a relay and received a connection
  804. refused, timeout, or similar error (at the TCP level), do not try
  805. that same address/port again for 60 seconds after the failure has
  806. occurred. Fixes bug 24767; bugfix on 0.0.6.
  807. o Minor features (geoip):
  808. - Update geoip and geoip6 to the March 8 2018 Maxmind GeoLite2
  809. Country database. Closes ticket 25469.
  810. o Minor features (log messages):
  811. - Improve log message in the out-of-memory handler to include
  812. information about memory usage from the different compression
  813. backends. Closes ticket 25372.
  814. o Minor features (sandbox):
  815. - Explicitly permit the poll() system call when the Linux
  816. seccomp2-based sandbox is enabled: apparently, some versions of
  817. libc use poll() when calling getpwnam(). Closes ticket 25313.
  818. o Minor bugfixes (C correctness):
  819. - Fix a very unlikely (impossible, we believe) null pointer
  820. dereference. Fixes bug 25629; bugfix on 0.2.9.15. Found by
  821. Coverity; this is CID 1430932.
  822. o Minor bugfixes (channel, client):
  823. - Better identify client connection when reporting to the geoip
  824. client cache. Fixes bug 24904; bugfix on 0.3.1.7.
  825. o Minor bugfixes (compilation):
  826. - Fix a C99 compliance issue in our configuration script that caused
  827. compilation issues when compiling Tor with certain versions of
  828. xtools. Fixes bug 25474; bugfix on 0.3.2.5-alpha.
  829. o Minor bugfixes (controller, reliability):
  830. - Avoid a (nonfatal) assertion failure when extending a one-hop
  831. circuit from the controller to become a multihop circuit. Fixes
  832. bug 24903; bugfix on 0.2.5.2-alpha.
  833. o Major bugfixes (networking):
  834. - Tor will no longer reject IPv6 address strings from Tor Browser
  835. when they are passed as hostnames in SOCKS5 requests. Fixes bug
  836. 25036, bugfix on Tor 0.3.1.2.
  837. o Minor bugfixes (networking):
  838. - string_is_valid_hostname() will not consider IP strings to be
  839. valid hostnames. Fixes bug 25055; bugfix on Tor 0.2.5.5.
  840. o Minor bugfixes (onion service v3):
  841. - Avoid an assertion failure when the next onion service
  842. descriptor rotation type is out of sync with the consensus's
  843. valid-after time. Instead, log a warning message with extra
  844. information, so we can better hunt down the cause of this
  845. assertion. Fixes bug 25306; bugfix on 0.3.2.1-alpha.
  846. o Minor bugfixes (testing):
  847. - Avoid intermittent test failures due to a test that had relied on
  848. onion service introduction point creation finishing within 5
  849. seconds of real clock time. Fixes bug 25450; bugfix
  850. on 0.3.1.3-alpha.
  851. - Rust crates are now automatically detected and tested. Previously,
  852. some crates were not tested by `make test-rust` due to a static
  853. string in the `src/test/test_rust.sh` script specifying which
  854. crates to test. Fixes bug 25560; bugfix on 0.3.3.3-alpha.
  855. o Minor bugfixes (testing, benchmarks):
  856. - Fix a crash when running benchmark tests on win32 systems. The
  857. crash was due to a mutex that wasn't initialized before logging
  858. and options were initialized. Fixes bug 25479; bugfix
  859. on 0.3.3.3-alpha.
  860. o Minor bugfixes (warnings, ipv6):
  861. - Avoid a bug warning that could occur when trying to connect to a
  862. relay over IPv6. This warning would occur on a Tor instance that
  863. downloads router descriptors, but prefers to use microdescriptors.
  864. Fixes bug 25213; bugfix on 0.3.3.1-alpha.
  865. o Code simplification and refactoring:
  866. - Remove the old (deterministic) directory retry logic entirely:
  867. We've used exponential backoff exclusively for some time. Closes
  868. ticket 23814.
  869. o Documentation:
  870. - Improved the documentation of AccountingStart parameter. Closes
  871. ticket 23635.
  872. - Update the documentation for "Log" to include the current list of
  873. logging domains. Closes ticket 25378.
  874. Changes in version 0.3.1.10 - 2018-03-03
  875. Tor 0.3.1.10 backports a number of bugfixes, including important fixes for
  876. security issues.
  877. It includes an important security fix for a remote crash attack
  878. against directory authorities, tracked as TROVE-2018-001.
  879. This release also backports our new system for improved resistance to
  880. denial-of-service attacks against relays.
  881. This release also fixes several minor bugs and annoyances from
  882. earlier releases.
  883. All directory authorities should upgrade to one of the versions
  884. released today. Relays running 0.3.1.x may wish to update to one of
  885. the versions released today, for the DoS mitigations.
  886. Please note: according to our release calendar, Tor 0.3.1 will no
  887. longer be supported after 1 July 2018. If you will be running Tor
  888. after that date, you should make sure to plan to upgrade to the latest
  889. stable version, or downgrade to 0.2.9 (which will receive long-term
  890. support).
  891. o Major bugfixes (denial-of-service, directory authority, backport from 0.3.3.3-alpha):
  892. - Fix a protocol-list handling bug that could be used to remotely crash
  893. directory authorities with a null-pointer exception. Fixes bug 25074;
  894. bugfix on 0.2.9.4-alpha. Also tracked as TROVE-2018-001 and
  895. CVE-2018-0490.
  896. o Major features (denial-of-service mitigation, backport from 0.3.3.2-alpha):
  897. - Give relays some defenses against the recent network overload. We
  898. start with three defenses (default parameters in parentheses).
  899. First: if a single client address makes too many concurrent
  900. connections (>100), hang up on further connections. Second: if a
  901. single client address makes circuits too quickly (more than 3 per
  902. second, with an allowed burst of 90) while also having too many
  903. connections open (3), refuse new create cells for the next while
  904. (1-2 hours). Third: if a client asks to establish a rendezvous
  905. point to you directly, ignore the request. These defenses can be
  906. manually controlled by new torrc options, but relays will also
  907. take guidance from consensus parameters, so there's no need to
  908. configure anything manually. Implements ticket 24902.
  909. o Minor features (linux seccomp2 sandbox, backport from 0.3.2.5-alpha):
  910. - Update the sandbox rules so that they should now work correctly
  911. with Glibc 2.26. Closes ticket 24315.
  912. o Major bugfixes (onion services, retry behavior, backport from 0.3.3.1-alpha):
  913. - Fix an "off by 2" error in counting rendezvous failures on the
  914. onion service side. While we thought we would stop the rendezvous
  915. attempt after one failed circuit, we were actually making three
  916. circuit attempts before giving up. Now switch to a default of 2,
  917. and allow the consensus parameter "hs_service_max_rdv_failures" to
  918. override. Fixes bug 24895; bugfix on 0.0.6.
  919. o Major bugfixes (protocol versions, backport from 0.3.3.2-alpha):
  920. - Add Link protocol version 5 to the supported protocols list. Fixes
  921. bug 25070; bugfix on 0.3.1.1-alpha.
  922. o Major bugfixes (relay, backport from 0.3.3.1-alpha):
  923. - Fix a set of false positives where relays would consider
  924. connections to other relays as being client-only connections (and
  925. thus e.g. deserving different link padding schemes) if those
  926. relays fell out of the consensus briefly. Now we look only at the
  927. initial handshake and whether the connection authenticated as a
  928. relay. Fixes bug 24898; bugfix on 0.3.1.1-alpha.
  929. o Minor features (denial-of-service avoidance, backport from 0.3.3.2-alpha):
  930. - Make our OOM handler aware of the geoip client history cache so it
  931. doesn't fill up the memory. This check is important for IPv6 and
  932. our DoS mitigation subsystem. Closes ticket 25122.
  933. o Minor feature (relay statistics, backport from 0.3.2.6-alpha):
  934. - Change relay bandwidth reporting stats interval from 4 hours to 24
  935. hours in order to reduce the efficiency of guard discovery
  936. attacks. Fixes ticket 23856.
  937. o Minor features (compatibility, OpenSSL, backport from 0.3.3.3-alpha):
  938. - Tor will now support TLS1.3 once OpenSSL 1.1.1 is released.
  939. Previous versions of Tor would not have worked with OpenSSL 1.1.1,
  940. since they neither disabled TLS 1.3 nor enabled any of the
  941. ciphersuites it requires. Now we enable the TLS 1.3 ciphersuites.
  942. Closes ticket 24978.
  943. o Minor features (fallback directory mirrors, backport from 0.3.2.9):
  944. - The fallback directory list has been re-generated based on the
  945. current status of the network. Tor uses fallback directories to
  946. bootstrap when it doesn't yet have up-to-date directory
  947. information. Closes ticket 24801.
  948. - Make the default DirAuthorityFallbackRate 0.1, so that clients
  949. prefer to bootstrap from fallback directory mirrors. This is a
  950. follow-up to 24679, which removed weights from the default
  951. fallbacks. Implements ticket 24681.
  952. o Minor features (geoip):
  953. - Update geoip and geoip6 to the February 7 2018 Maxmind GeoLite2
  954. Country database.
  955. o Minor bugfix (channel connection, backport from 0.3.3.2-alpha):
  956. - Use the actual observed address of an incoming relay connection,
  957. not the canonical address of the relay from its descriptor, when
  958. making decisions about how to handle the incoming connection.
  959. Fixes bug 24952; bugfix on 0.2.4.11-alpha. Patch by "ffmancera".
  960. o Minor bugfix (directory authority, backport from 0.3.3.2-alpha):
  961. - Directory authorities, when refusing a descriptor from a rejected
  962. relay, now explicitly tell the relay (in its logs) to set a valid
  963. ContactInfo address and contact the bad-relays@ mailing list.
  964. Fixes bug 25170; bugfix on 0.2.9.1.
  965. o Minor bugfixes (address selection, backport from 0.3.2.9):
  966. - When the fascist_firewall_choose_address_ functions don't find a
  967. reachable address, set the returned address to the null address
  968. and port. This is a precautionary measure, because some callers do
  969. not check the return value. Fixes bug 24736; bugfix
  970. on 0.2.8.2-alpha.
  971. o Major bugfixes (bootstrapping, backport from 0.3.2.5-alpha):
  972. - Fetch descriptors aggressively whenever we lack enough to build
  973. circuits, regardless of how many descriptors we are missing.
  974. Previously, we would delay launching the fetch when we had fewer
  975. than 15 missing descriptors, even if some of those descriptors
  976. were blocking circuits from building. Fixes bug 23985; bugfix on
  977. 0.1.1.11-alpha. The effects of this bug became worse in
  978. 0.3.0.3-alpha, when we began treating missing descriptors from our
  979. primary guards as a reason to delay circuits.
  980. - Don't try fetching microdescriptors from relays that have failed
  981. to deliver them in the past. Fixes bug 23817; bugfix
  982. on 0.3.0.1-alpha.
  983. o Minor bugfixes (compilation, backport from 0.3.2.7-rc):
  984. - Fix a signed/unsigned comparison warning introduced by our fix to
  985. TROVE-2017-009. Fixes bug 24480; bugfix on 0.2.5.16.
  986. o Minor bugfixes (control port, linux seccomp2 sandbox, backport from 0.3.2.5-alpha):
  987. - Avoid a crash when attempting to use the seccomp2 sandbox together
  988. with the OwningControllerProcess feature. Fixes bug 24198; bugfix
  989. on 0.2.5.1-alpha.
  990. o Minor bugfixes (denial-of-service, backport from 0.3.3.3-alpha):
  991. - Fix a possible crash on malformed consensus. If a consensus had
  992. contained an unparseable protocol line, it could have made clients
  993. and relays crash with a null-pointer exception. To exploit this
  994. issue, however, an attacker would need to be able to subvert the
  995. directory authority system. Fixes bug 25251; bugfix on
  996. 0.2.9.4-alpha. Also tracked as TROVE-2018-004.
  997. o Minor bugfixes (directory cache, backport from 0.3.2.5-alpha):
  998. - Recover better from empty or corrupt files in the consensus cache
  999. directory. Fixes bug 24099; bugfix on 0.3.1.1-alpha.
  1000. - When a consensus diff calculation is only partially successful,
  1001. only record the successful parts as having succeeded. Partial
  1002. success can happen if (for example) one compression method fails
  1003. but the others succeed. Previously we misrecorded all the
  1004. calculations as having succeeded, which would later cause a
  1005. nonfatal assertion failure. Fixes bug 24086; bugfix
  1006. on 0.3.1.1-alpha.
  1007. o Minor bugfixes (entry guards, backport from 0.3.2.3-alpha):
  1008. - Tor now updates its guard state when it reads a consensus
  1009. regardless of whether it's missing descriptors. That makes tor use
  1010. its primary guards to fetch descriptors in some edge cases where
  1011. it would previously have used fallback directories. Fixes bug
  1012. 23862; bugfix on 0.3.0.1-alpha.
  1013. o Minor bugfixes (logging, backport from 0.3.3.2-alpha):
  1014. - Don't treat inability to store a cached consensus object as a bug:
  1015. it can happen normally when we are out of disk space. Fixes bug
  1016. 24859; bugfix on 0.3.1.1-alpha.
  1017. o Minor bugfixes (memory usage, backport from 0.3.2.8-rc):
  1018. - When queuing DESTROY cells on a channel, only queue the circuit-id
  1019. and reason fields: not the entire 514-byte cell. This fix should
  1020. help mitigate any bugs or attacks that fill up these queues, and
  1021. free more RAM for other uses. Fixes bug 24666; bugfix
  1022. on 0.2.5.1-alpha.
  1023. o Minor bugfixes (network layer, backport from 0.3.2.5-alpha):
  1024. - When closing a connection via close_connection_immediately(), we
  1025. mark it as "not blocked on bandwidth", to prevent later calls from
  1026. trying to unblock it, and give it permission to read. This fixes a
  1027. backtrace warning that can happen on relays under various
  1028. circumstances. Fixes bug 24167; bugfix on 0.1.0.1-rc.
  1029. o Minor bugfixes (path selection, backport from 0.3.2.4-alpha):
  1030. - When selecting relays by bandwidth, avoid a rounding error that
  1031. could sometimes cause load to be imbalanced incorrectly.
  1032. Previously, we would always round upwards; now, we round towards
  1033. the nearest integer. This had the biggest effect when a relay's
  1034. weight adjustments should have given it weight 0, but it got
  1035. weight 1 instead. Fixes bug 23318; bugfix on 0.2.4.3-alpha.
  1036. - When calculating the fraction of nodes that have descriptors, and
  1037. all nodes in the network have zero bandwidths, count the number of
  1038. nodes instead. Fixes bug 23318; bugfix on 0.2.4.10-alpha.
  1039. - Actually log the total bandwidth in compute_weighted_bandwidths().
  1040. Fixes bug 24170; bugfix on 0.2.4.3-alpha.
  1041. o Minor bugfixes (performance, fragile-hardening, backport from 0.3.3.1-alpha):
  1042. - Improve the performance of our consensus-diff application code
  1043. when Tor is built with the --enable-fragile-hardening option set.
  1044. Fixes bug 24826; bugfix on 0.3.1.1-alpha.
  1045. o Minor bugfixes (OSX, backport from 0.3.3.1-alpha):
  1046. - Don't exit the Tor process if setrlimit() fails to change the file
  1047. limit (which can happen sometimes on some versions of OSX). Fixes
  1048. bug 21074; bugfix on 0.0.9pre5.
  1049. o Minor bugfixes (portability, msvc, backport from 0.3.2.9):
  1050. - Fix a bug in the bit-counting parts of our timing-wheel code on
  1051. MSVC. (Note that MSVC is still not a supported build platform, due
  1052. to cyptographic timing channel risks.) Fixes bug 24633; bugfix
  1053. on 0.2.9.1-alpha.
  1054. o Minor bugfixes (relay, partial backport):
  1055. - Make the internal channel_is_client() function look at what sort
  1056. of connection handshake the other side used, rather than whether
  1057. the other side ever sent a create_fast cell to us. Backports part
  1058. of the fixes from bugs 22805 and 24898.
  1059. o Minor bugfixes (spec conformance, backport from 0.3.3.3-alpha):
  1060. - Forbid "-0" as a protocol version. Fixes part of bug 25249; bugfix on
  1061. 0.2.9.4-alpha.
  1062. - Forbid UINT32_MAX as a protocol version. Fixes part of bug 25249;
  1063. bugfix on 0.2.9.4-alpha.
  1064. o Code simplification and refactoring (backport from 0.3.3.3-alpha):
  1065. - Update the "rust dependencies" submodule to be a project-level
  1066. repository, rather than a user repository. Closes ticket 25323.
  1067. Changes in version 0.2.9.15 - 2018-03-03
  1068. Tor 0.2.9.15 backports important security and stability bugfixes from
  1069. later Tor releases.
  1070. It includes an important security fix for a remote crash attack
  1071. against directory authorities, tracked as TROVE-2018-001.
  1072. This release also backports our new system for improved resistance to
  1073. denial-of-service attacks against relays.
  1074. This release also fixes several minor bugs and annoyances from
  1075. earlier releases.
  1076. All directory authorities should upgrade to one of the versions
  1077. released today. Relays running 0.2.9.x may wish to update to one of
  1078. the versions released today, for the DoS mitigations.
  1079. o Major bugfixes (denial-of-service, directory authority, backport from 0.3.3.3-alpha):
  1080. - Fix a protocol-list handling bug that could be used to remotely crash
  1081. directory authorities with a null-pointer exception. Fixes bug 25074;
  1082. bugfix on 0.2.9.4-alpha. Also tracked as TROVE-2018-001 and
  1083. CVE-2018-0490.
  1084. o Major features (denial-of-service mitigation):
  1085. - Give relays some defenses against the recent network overload. We
  1086. start with three defenses (default parameters in parentheses).
  1087. First: if a single client address makes too many concurrent
  1088. connections (>100), hang up on further connections. Second: if a
  1089. single client address makes circuits too quickly (more than 3 per
  1090. second, with an allowed burst of 90) while also having too many
  1091. connections open (3), refuse new create cells for the next while
  1092. (1-2 hours). Third: if a client asks to establish a rendezvous
  1093. point to you directly, ignore the request. These defenses can be
  1094. manually controlled by new torrc options, but relays will also
  1095. take guidance from consensus parameters, so there's no need to
  1096. configure anything manually. Implements ticket 24902.
  1097. o Major bugfixes (bootstrapping):
  1098. - Fetch descriptors aggressively whenever we lack enough to build
  1099. circuits, regardless of how many descriptors we are missing.
  1100. Previously, we would delay launching the fetch when we had fewer
  1101. than 15 missing descriptors, even if some of those descriptors
  1102. were blocking circuits from building. Fixes bug 23985; bugfix on
  1103. 0.1.1.11-alpha. The effects of this bug became worse in
  1104. 0.3.0.3-alpha, when we began treating missing descriptors from our
  1105. primary guards as a reason to delay circuits.
  1106. o Major bugfixes (onion services, retry behavior):
  1107. - Fix an "off by 2" error in counting rendezvous failures on the
  1108. onion service side. While we thought we would stop the rendezvous
  1109. attempt after one failed circuit, we were actually making three
  1110. circuit attempts before giving up. Now switch to a default of 2,
  1111. and allow the consensus parameter "hs_service_max_rdv_failures" to
  1112. override. Fixes bug 24895; bugfix on 0.0.6.
  1113. o Minor feature (relay statistics):
  1114. - Change relay bandwidth reporting stats interval from 4 hours to 24
  1115. hours in order to reduce the efficiency of guard discovery
  1116. attacks. Fixes ticket 23856.
  1117. o Minor features (compatibility, OpenSSL):
  1118. - Tor will now support TLS1.3 once OpenSSL 1.1.1 is released.
  1119. Previous versions of Tor would not have worked with OpenSSL 1.1.1,
  1120. since they neither disabled TLS 1.3 nor enabled any of the
  1121. ciphersuites it requires. Now we enable the TLS 1.3 ciphersuites.
  1122. Closes ticket 24978.
  1123. o Minor features (denial-of-service avoidance):
  1124. - Make our OOM handler aware of the geoip client history cache so it
  1125. doesn't fill up the memory. This check is important for IPv6 and
  1126. our DoS mitigation subsystem. Closes ticket 25122.
  1127. o Minor features (fallback directory mirrors):
  1128. - The fallback directory list has been re-generated based on the
  1129. current status of the network. Tor uses fallback directories to
  1130. bootstrap when it doesn't yet have up-to-date directory
  1131. information. Closes ticket 24801.
  1132. - Make the default DirAuthorityFallbackRate 0.1, so that clients
  1133. prefer to bootstrap from fallback directory mirrors. This is a
  1134. follow-up to 24679, which removed weights from the default
  1135. fallbacks. Implements ticket 24681.
  1136. o Minor features (geoip):
  1137. - Update geoip and geoip6 to the February 7 2018 Maxmind GeoLite2
  1138. Country database.
  1139. o Minor features (linux seccomp2 sandbox):
  1140. - Update the sandbox rules so that they should now work correctly
  1141. with Glibc 2.26. Closes ticket 24315.
  1142. o Minor bugfix (channel connection):
  1143. - Use the actual observed address of an incoming relay connection,
  1144. not the canonical address of the relay from its descriptor, when
  1145. making decisions about how to handle the incoming connection.
  1146. Fixes bug 24952; bugfix on 0.2.4.11-alpha. Patch by "ffmancera".
  1147. o Minor bugfix (directory authority):
  1148. - Directory authorities, when refusing a descriptor from a rejected
  1149. relay, now explicitly tell the relay (in its logs) to set a valid
  1150. ContactInfo address and contact the bad-relays@ mailing list.
  1151. Fixes bug 25170; bugfix on 0.2.9.1.
  1152. o Minor bugfixes (address selection):
  1153. - When the fascist_firewall_choose_address_ functions don't find a
  1154. reachable address, set the returned address to the null address
  1155. and port. This is a precautionary measure, because some callers do
  1156. not check the return value. Fixes bug 24736; bugfix
  1157. on 0.2.8.2-alpha.
  1158. o Minor bugfixes (compilation):
  1159. - Fix a signed/unsigned comparison warning introduced by our fix to
  1160. TROVE-2017-009. Fixes bug 24480; bugfix on 0.2.5.16.
  1161. o Minor bugfixes (control port, linux seccomp2 sandbox):
  1162. - Avoid a crash when attempting to use the seccomp2 sandbox together
  1163. with the OwningControllerProcess feature. Fixes bug 24198; bugfix
  1164. on 0.2.5.1-alpha.
  1165. o Minor bugfixes (denial-of-service, backport from 0.3.3.3-alpha):
  1166. - Fix a possible crash on malformed consensus. If a consensus had
  1167. contained an unparseable protocol line, it could have made clients
  1168. and relays crash with a null-pointer exception. To exploit this
  1169. issue, however, an attacker would need to be able to subvert the
  1170. directory authority system. Fixes bug 25251; bugfix on
  1171. 0.2.9.4-alpha. Also tracked as TROVE-2018-004.
  1172. o Minor bugfixes (memory usage):
  1173. - When queuing DESTROY cells on a channel, only queue the circuit-id
  1174. and reason fields: not the entire 514-byte cell. This fix should
  1175. help mitigate any bugs or attacks that fill up these queues, and
  1176. free more RAM for other uses. Fixes bug 24666; bugfix
  1177. on 0.2.5.1-alpha.
  1178. o Minor bugfixes (network layer):
  1179. - When closing a connection via close_connection_immediately(), we
  1180. mark it as "not blocked on bandwidth", to prevent later calls from
  1181. trying to unblock it, and give it permission to read. This fixes a
  1182. backtrace warning that can happen on relays under various
  1183. circumstances. Fixes bug 24167; bugfix on 0.1.0.1-rc.
  1184. o Minor bugfixes (OSX):
  1185. - Don't exit the Tor process if setrlimit() fails to change the file
  1186. limit (which can happen sometimes on some versions of OSX). Fixes
  1187. bug 21074; bugfix on 0.0.9pre5.
  1188. o Minor bugfixes (path selection):
  1189. - When selecting relays by bandwidth, avoid a rounding error that
  1190. could sometimes cause load to be imbalanced incorrectly.
  1191. Previously, we would always round upwards; now, we round towards
  1192. the nearest integer. This had the biggest effect when a relay's
  1193. weight adjustments should have given it weight 0, but it got
  1194. weight 1 instead. Fixes bug 23318; bugfix on 0.2.4.3-alpha.
  1195. - When calculating the fraction of nodes that have descriptors, and
  1196. all nodes in the network have zero bandwidths, count the number of
  1197. nodes instead. Fixes bug 23318; bugfix on 0.2.4.10-alpha.
  1198. - Actually log the total bandwidth in compute_weighted_bandwidths().
  1199. Fixes bug 24170; bugfix on 0.2.4.3-alpha.
  1200. o Minor bugfixes (portability, msvc):
  1201. - Fix a bug in the bit-counting parts of our timing-wheel code on
  1202. MSVC. (Note that MSVC is still not a supported build platform, due
  1203. to cryptographic timing channel risks.) Fixes bug 24633; bugfix
  1204. on 0.2.9.1-alpha.
  1205. o Minor bugfixes (relay):
  1206. - Make the internal channel_is_client() function look at what sort
  1207. of connection handshake the other side used, rather than whether
  1208. the other side ever sent a create_fast cell to us. Backports part
  1209. of the fixes from bugs 22805 and 24898.
  1210. o Minor bugfixes (spec conformance, backport from 0.3.3.3-alpha):
  1211. - Forbid "-0" as a protocol version. Fixes part of bug 25249; bugfix on
  1212. 0.2.9.4-alpha.
  1213. - Forbid UINT32_MAX as a protocol version. Fixes part of bug 25249;
  1214. bugfix on 0.2.9.4-alpha.
  1215. Changes in version 0.3.2.10 - 2018-03-03
  1216. Tor 0.3.2.10 is the second stable release in the 0.3.2 series. It
  1217. backports a number of bugfixes, including important fixes for security
  1218. issues.
  1219. It includes an important security fix for a remote crash attack
  1220. against directory authorities, tracked as TROVE-2018-001.
  1221. Additionally, it backports a fix for a bug whose severity we have
  1222. upgraded: Bug 24700, which was fixed in 0.3.3.2-alpha, can be remotely
  1223. triggered in order to crash relays with a use-after-free pattern. As
  1224. such, we are now tracking that bug as TROVE-2018-002 and
  1225. CVE-2018-0491, and backporting it to earlier releases. This bug
  1226. affected versions 0.3.2.1-alpha through 0.3.2.9, as well as version
  1227. 0.3.3.1-alpha.
  1228. This release also backports our new system for improved resistance to
  1229. denial-of-service attacks against relays.
  1230. This release also fixes several minor bugs and annoyances from
  1231. earlier releases.
  1232. Relays running 0.3.2.x SHOULD upgrade to one of the versions released
  1233. today, for the fix to TROVE-2018-002. Directory authorities should
  1234. also upgrade. (Relays on earlier versions might want to update too for
  1235. the DoS mitigations.)
  1236. o Major bugfixes (denial-of-service, directory authority, backport from 0.3.3.3-alpha):
  1237. - Fix a protocol-list handling bug that could be used to remotely crash
  1238. directory authorities with a null-pointer exception. Fixes bug 25074;
  1239. bugfix on 0.2.9.4-alpha. Also tracked as TROVE-2018-001 and
  1240. CVE-2018-0490.
  1241. o Major bugfixes (scheduler, KIST, denial-of-service, backport from 0.3.3.2-alpha):
  1242. - Avoid adding the same channel twice in the KIST scheduler pending
  1243. list, which could lead to remote denial-of-service use-after-free
  1244. attacks against relays. Fixes bug 24700; bugfix on 0.3.2.1-alpha.
  1245. o Major features (denial-of-service mitigation, backport from 0.3.3.2-alpha):
  1246. - Give relays some defenses against the recent network overload. We
  1247. start with three defenses (default parameters in parentheses).
  1248. First: if a single client address makes too many concurrent
  1249. connections (>100), hang up on further connections. Second: if a
  1250. single client address makes circuits too quickly (more than 3 per
  1251. second, with an allowed burst of 90) while also having too many
  1252. connections open (3), refuse new create cells for the next while
  1253. (1-2 hours). Third: if a client asks to establish a rendezvous
  1254. point to you directly, ignore the request. These defenses can be
  1255. manually controlled by new torrc options, but relays will also
  1256. take guidance from consensus parameters, so there's no need to
  1257. configure anything manually. Implements ticket 24902.
  1258. o Major bugfixes (onion services, retry behavior, backport from 0.3.3.1-alpha):
  1259. - Fix an "off by 2" error in counting rendezvous failures on the
  1260. onion service side. While we thought we would stop the rendezvous
  1261. attempt after one failed circuit, we were actually making three
  1262. circuit attempts before giving up. Now switch to a default of 2,
  1263. and allow the consensus parameter "hs_service_max_rdv_failures" to
  1264. override. Fixes bug 24895; bugfix on 0.0.6.
  1265. - New-style (v3) onion services now obey the "max rendezvous circuit
  1266. attempts" logic. Previously they would make as many rendezvous
  1267. circuit attempts as they could fit in the MAX_REND_TIMEOUT second
  1268. window before giving up. Fixes bug 24894; bugfix on 0.3.2.1-alpha.
  1269. o Major bugfixes (protocol versions, backport from 0.3.3.2-alpha):
  1270. - Add Link protocol version 5 to the supported protocols list. Fixes
  1271. bug 25070; bugfix on 0.3.1.1-alpha.
  1272. o Major bugfixes (relay, backport from 0.3.3.1-alpha):
  1273. - Fix a set of false positives where relays would consider
  1274. connections to other relays as being client-only connections (and
  1275. thus e.g. deserving different link padding schemes) if those
  1276. relays fell out of the consensus briefly. Now we look only at the
  1277. initial handshake and whether the connection authenticated as a
  1278. relay. Fixes bug 24898; bugfix on 0.3.1.1-alpha.
  1279. o Major bugfixes (scheduler, consensus, backport from 0.3.3.2-alpha):
  1280. - The scheduler subsystem was failing to promptly notice changes in
  1281. consensus parameters, making it harder to switch schedulers
  1282. network-wide. Fixes bug 24975; bugfix on 0.3.2.1-alpha.
  1283. o Minor features (denial-of-service avoidance, backport from 0.3.3.2-alpha):
  1284. - Make our OOM handler aware of the geoip client history cache so it
  1285. doesn't fill up the memory. This check is important for IPv6 and
  1286. our DoS mitigation subsystem. Closes ticket 25122.
  1287. o Minor features (compatibility, OpenSSL, backport from 0.3.3.3-alpha):
  1288. - Tor will now support TLS1.3 once OpenSSL 1.1.1 is released.
  1289. Previous versions of Tor would not have worked with OpenSSL 1.1.1,
  1290. since they neither disabled TLS 1.3 nor enabled any of the
  1291. ciphersuites it requires. Now we enable the TLS 1.3 ciphersuites.
  1292. Closes ticket 24978.
  1293. o Minor features (geoip):
  1294. - Update geoip and geoip6 to the February 7 2018 Maxmind GeoLite2
  1295. Country database.
  1296. o Minor features (logging, diagnostic, backport from 0.3.3.2-alpha):
  1297. - When logging a failure to create an onion service's descriptor,
  1298. also log what the problem with the descriptor was. Diagnostic
  1299. for ticket 24972.
  1300. o Minor bugfix (channel connection, backport from 0.3.3.2-alpha):
  1301. - Use the actual observed address of an incoming relay connection,
  1302. not the canonical address of the relay from its descriptor, when
  1303. making decisions about how to handle the incoming connection.
  1304. Fixes bug 24952; bugfix on 0.2.4.11-alpha. Patch by "ffmancera".
  1305. o Minor bugfixes (denial-of-service, backport from 0.3.3.3-alpha):
  1306. - Fix a possible crash on malformed consensus. If a consensus had
  1307. contained an unparseable protocol line, it could have made clients
  1308. and relays crash with a null-pointer exception. To exploit this
  1309. issue, however, an attacker would need to be able to subvert the
  1310. directory authority system. Fixes bug 25251; bugfix on
  1311. 0.2.9.4-alpha. Also tracked as TROVE-2018-004.
  1312. o Minor bugfix (directory authority, backport from 0.3.3.2-alpha):
  1313. - Directory authorities, when refusing a descriptor from a rejected
  1314. relay, now explicitly tell the relay (in its logs) to set a valid
  1315. ContactInfo address and contact the bad-relays@ mailing list.
  1316. Fixes bug 25170; bugfix on 0.2.9.1.
  1317. o Minor bugfixes (build, rust, backport from 0.3.3.1-alpha):
  1318. - When building with Rust on OSX, link against libresolv, to work
  1319. around the issue at https://github.com/rust-lang/rust/issues/46797.
  1320. Fixes bug 24652; bugfix on 0.3.1.1-alpha.
  1321. o Minor bugfixes (onion services, backport from 0.3.3.2-alpha):
  1322. - Remove a BUG() statement when a client fetches an onion descriptor
  1323. that has a lower revision counter than the one in its cache. This
  1324. can happen in normal circumstances due to HSDir desync. Fixes bug
  1325. 24976; bugfix on 0.3.2.1-alpha.
  1326. o Minor bugfixes (logging, backport from 0.3.3.2-alpha):
  1327. - Don't treat inability to store a cached consensus object as a bug:
  1328. it can happen normally when we are out of disk space. Fixes bug
  1329. 24859; bugfix on 0.3.1.1-alpha.
  1330. o Minor bugfixes (performance, fragile-hardening, backport from 0.3.3.1-alpha):
  1331. - Improve the performance of our consensus-diff application code
  1332. when Tor is built with the --enable-fragile-hardening option set.
  1333. Fixes bug 24826; bugfix on 0.3.1.1-alpha.
  1334. o Minor bugfixes (OSX, backport from 0.3.3.1-alpha):
  1335. - Don't exit the Tor process if setrlimit() fails to change the file
  1336. limit (which can happen sometimes on some versions of OSX). Fixes
  1337. bug 21074; bugfix on 0.0.9pre5.
  1338. o Minor bugfixes (spec conformance, backport from 0.3.3.3-alpha):
  1339. - Forbid "-0" as a protocol version. Fixes part of bug 25249; bugfix on
  1340. 0.2.9.4-alpha.
  1341. - Forbid UINT32_MAX as a protocol version. Fixes part of bug 25249;
  1342. bugfix on 0.2.9.4-alpha.
  1343. o Minor bugfixes (testing, backport from 0.3.3.1-alpha):
  1344. - Fix a memory leak in the scheduler/loop_kist unit test. Fixes bug
  1345. 25005; bugfix on 0.3.2.7-rc.
  1346. o Minor bugfixes (v3 onion services, backport from 0.3.3.2-alpha):
  1347. - Look at the "HSRend" protocol version, not the "HSDir" protocol
  1348. version, when deciding whether a consensus entry can support the
  1349. v3 onion service protocol as a rendezvous point. Fixes bug 25105;
  1350. bugfix on 0.3.2.1-alpha.
  1351. o Code simplification and refactoring (backport from 0.3.3.3-alpha):
  1352. - Update the "rust dependencies" submodule to be a project-level
  1353. repository, rather than a user repository. Closes ticket 25323.
  1354. o Documentation (backport from 0.3.3.1-alpha)
  1355. - Document that operators who run more than one relay or bridge are
  1356. expected to set MyFamily and ContactInfo correctly. Closes
  1357. ticket 24526.
  1358. Changes in version 0.3.3.3-alpha - 2018-03-03
  1359. Tor 0.3.3.3-alpha is the third alpha release for the 0.3.3.x series.
  1360. It includes an important security fix for a remote crash attack
  1361. against directory authorities tracked as TROVE-2018-001.
  1362. Additionally, with this release, we are upgrading the severity of a
  1363. bug fixed in 0.3.3.2-alpha. Bug 24700, which was fixed in
  1364. 0.3.3.2-alpha, can be remotely triggered in order to crash relays with
  1365. a use-after-free pattern. As such, we are now tracking that bug as
  1366. TROVE-2018-002 and CVE-2018-0491. This bug affected versions
  1367. 0.3.2.1-alpha through 0.3.2.9, as well as 0.3.3.1-alpha.
  1368. This release also fixes several minor bugs and annoyances from
  1369. earlier releases.
  1370. Relays running 0.3.2.x should upgrade to one of the versions released
  1371. today, for the fix to TROVE-2018-002. Directory authorities should
  1372. also upgrade. (Relays on earlier versions might want to update too for
  1373. the DoS mitigations.)
  1374. o Major bugfixes (denial-of-service, directory authority):
  1375. - Fix a protocol-list handling bug that could be used to remotely crash
  1376. directory authorities with a null-pointer exception. Fixes bug 25074;
  1377. bugfix on 0.2.9.4-alpha. Also tracked as TROVE-2018-001 and
  1378. CVE-2018-0490.
  1379. o Minor features (compatibility, OpenSSL):
  1380. - Tor will now support TLS1.3 once OpenSSL 1.1.1 is released.
  1381. Previous versions of Tor would not have worked with OpenSSL 1.1.1,
  1382. since they neither disabled TLS 1.3 nor enabled any of the
  1383. ciphersuites it requires. Now we enable the TLS 1.3 ciphersuites.
  1384. Closes ticket 24978.
  1385. o Minor features (logging):
  1386. - Clarify the log messages produced when getrandom() or a related
  1387. entropy-generation mechanism gives an error. Closes ticket 25120.
  1388. o Minor features (testing):
  1389. - Add a "make test-rust" target to run the rust tests only. Closes
  1390. ticket 25071.
  1391. o Minor bugfixes (denial-of-service):
  1392. - Fix a possible crash on malformed consensus. If a consensus had
  1393. contained an unparseable protocol line, it could have made clients
  1394. and relays crash with a null-pointer exception. To exploit this
  1395. issue, however, an attacker would need to be able to subvert the
  1396. directory authority system. Fixes bug 25251; bugfix on
  1397. 0.2.9.4-alpha. Also tracked as TROVE-2018-004.
  1398. o Minor bugfixes (DoS mitigation):
  1399. - Add extra safety checks when refilling the circuit creation bucket
  1400. to ensure we never set a value above the allowed maximum burst.
  1401. Fixes bug 25202; bugfix on 0.3.3.2-alpha.
  1402. - When a new consensus arrives, don't update our DoS-mitigation
  1403. parameters if we aren't a public relay. Fixes bug 25223; bugfix
  1404. on 0.3.3.2-alpha.
  1405. o Minor bugfixes (man page, SocksPort):
  1406. - Remove dead code from the old "SocksSocket" option, and rename
  1407. SocksSocketsGroupWritable to UnixSocksGroupWritable. The old option
  1408. still works, but is deprecated. Fixes bug 24343; bugfix on 0.2.6.3.
  1409. o Minor bugfixes (performance):
  1410. - Reduce the number of circuits that will be opened at once during
  1411. the circuit build timeout phase. This is done by increasing the
  1412. idle timeout to 3 minutes, and lowering the maximum number of
  1413. concurrent learning circuits to 10. Fixes bug 24769; bugfix
  1414. on 0.3.1.1-alpha.
  1415. o Minor bugfixes (spec conformance):
  1416. - Forbid "-0" as a protocol version. Fixes part of bug 25249; bugfix on
  1417. 0.2.9.4-alpha.
  1418. - Forbid UINT32_MAX as a protocol version. Fixes part of bug 25249;
  1419. bugfix on 0.2.9.4-alpha.
  1420. o Minor bugfixes (spec conformance, rust):
  1421. - Resolve a denial-of-service issue caused by an infinite loop in
  1422. the rust protover code. Fixes bug 25250, bugfix on 0.3.3.1-alpha.
  1423. Also tracked as TROVE-2018-003.
  1424. o Code simplification and refactoring:
  1425. - Update the "rust dependencies" submodule to be a project-level
  1426. repository, rather than a user repository. Closes ticket 25323.
  1427. Changes in version 0.3.3.2-alpha - 2018-02-10
  1428. Tor 0.3.3.2-alpha is the second alpha in the 0.3.3.x series. It
  1429. introduces a mechanism to handle the high loads that many relay
  1430. operators have been reporting recently. It also fixes several bugs in
  1431. older releases. If this new code proves reliable, we plan to backport
  1432. it to older supported release series.
  1433. o Major features (denial-of-service mitigation):
  1434. - Give relays some defenses against the recent network overload. We
  1435. start with three defenses (default parameters in parentheses).
  1436. First: if a single client address makes too many concurrent
  1437. connections (>100), hang up on further connections. Second: if a
  1438. single client address makes circuits too quickly (more than 3 per
  1439. second, with an allowed burst of 90) while also having too many
  1440. connections open (3), refuse new create cells for the next while
  1441. (1-2 hours). Third: if a client asks to establish a rendezvous
  1442. point to you directly, ignore the request. These defenses can be
  1443. manually controlled by new torrc options, but relays will also
  1444. take guidance from consensus parameters, so there's no need to
  1445. configure anything manually. Implements ticket 24902.
  1446. o Major bugfixes (netflow padding):
  1447. - Stop adding unneeded channel padding right after we finish
  1448. flushing to a connection that has been trying to flush for many
  1449. seconds. Instead, treat all partial or complete flushes as
  1450. activity on the channel, which will defer the time until we need
  1451. to add padding. This fix should resolve confusing and scary log
  1452. messages like "Channel padding timeout scheduled 221453ms in the
  1453. past." Fixes bug 22212; bugfix on 0.3.1.1-alpha.
  1454. o Major bugfixes (protocol versions):
  1455. - Add Link protocol version 5 to the supported protocols list. Fixes
  1456. bug 25070; bugfix on 0.3.1.1-alpha.
  1457. o Major bugfixes (scheduler, consensus):
  1458. - The scheduler subsystem was failing to promptly notice changes in
  1459. consensus parameters, making it harder to switch schedulers
  1460. network-wide. Fixes bug 24975; bugfix on 0.3.2.1-alpha.
  1461. o Minor features (denial-of-service avoidance):
  1462. - Make our OOM handler aware of the geoip client history cache so it
  1463. doesn't fill up the memory. This check is important for IPv6 and
  1464. our DoS mitigation subsystem. Closes ticket 25122.
  1465. o Minor features (directory authority):
  1466. - When directory authorities are unable to add signatures to a
  1467. pending consensus, log the reason why. Closes ticket 24849.
  1468. o Minor features (geoip):
  1469. - Update geoip and geoip6 to the February 7 2018 Maxmind GeoLite2
  1470. Country database.
  1471. o Minor features (logging, diagnostic):
  1472. - When logging a failure to create an onion service's descriptor,
  1473. also log what the problem with the descriptor was. Diagnostic for
  1474. ticket 24972.
  1475. o Minor bugfix (channel connection):
  1476. - Use the actual observed address of an incoming relay connection,
  1477. not the canonical address of the relay from its descriptor, when
  1478. making decisions about how to handle the incoming connection.
  1479. Fixes bug 24952; bugfix on 0.2.4.11-alpha. Patch by "ffmancera".
  1480. o Minor bugfix (directory authority):
  1481. - Directory authorities, when refusing a descriptor from a rejected
  1482. relay, now explicitly tell the relay (in its logs) to set a valid
  1483. ContactInfo address and contact the bad-relays@ mailing list.
  1484. Fixes bug 25170; bugfix on 0.2.9.1.
  1485. o Minor bugfixes (all versions of Tor):
  1486. - Use the "misspell" tool to detect and fix typos throughout the
  1487. source code. Fixes bug 23650; bugfix on various versions of Tor.
  1488. Patch from Deepesh Pathak.
  1489. o Minor bugfixes (circuit, cannibalization):
  1490. - Don't cannibalize preemptively-built circuits if we no longer
  1491. recognize their first hop. This situation can happen if our Guard
  1492. relay went off the consensus after the circuit was created. Fixes
  1493. bug 24469; bugfix on 0.0.6.
  1494. o Minor bugfixes (correctness):
  1495. - Remove a nonworking, unnecessary check to see whether a circuit
  1496. hop's identity digest was set when the circuit failed. Fixes bug
  1497. 24927; bugfix on 0.2.4.4-alpha.
  1498. o Minor bugfixes (logging):
  1499. - Don't treat inability to store a cached consensus object as a bug:
  1500. it can happen normally when we are out of disk space. Fixes bug
  1501. 24859; bugfix on 0.3.1.1-alpha.
  1502. - Fix a (mostly harmless) race condition when invoking
  1503. LOG_PROTOCOL_WARN message from a subthread while the torrc options
  1504. are changing. Fixes bug 23954; bugfix on 0.1.1.9-alpha.
  1505. o Minor bugfixes (onion services):
  1506. - Remove a BUG() statement when a client fetches an onion descriptor
  1507. that has a lower revision counter than the one in its cache. This
  1508. can happen in normal circumstances due to HSDir desync. Fixes bug
  1509. 24976; bugfix on 0.3.2.1-alpha.
  1510. - If we are configured to offer a single onion service, don't log
  1511. long-term established one hop rendezvous points in the heartbeat.
  1512. Fixes bug 25116; bugfix on 0.2.9.6-rc.
  1513. o Minor bugfixes (performance):
  1514. - Avoid calling protocol_list_supports_protocol() from inside tight
  1515. loops when running with cached routerinfo_t objects. Instead,
  1516. summarize the relevant protocols as flags in the routerinfo_t, as
  1517. we do for routerstatus_t objects. This change simplifies our code
  1518. a little, and saves a large amount of short-term memory allocation
  1519. operations. Fixes bug 25008; bugfix on 0.2.9.4-alpha.
  1520. o Minor bugfixes (Rust FFI):
  1521. - Fix a minor memory leak which would happen whenever the C code
  1522. would call the Rust implementation of
  1523. protover_get_supported_protocols(). This was due to the C version
  1524. returning a static string, whereas the Rust version newly allocated
  1525. a CString to pass across the FFI boundary. Consequently, the C
  1526. code was not expecting to need to free() what it was given. Fixes
  1527. bug 25127; bugfix on 0.3.2.1-alpha.
  1528. o Minor bugfixes (scheduler, KIST):
  1529. - Avoid adding the same channel twice in the KIST scheduler pending
  1530. list, which would waste CPU cycles. Fixes bug 24700; bugfix
  1531. on 0.3.2.1-alpha.
  1532. o Minor bugfixes (unit test, monotonic time):
  1533. - Increase a constant (1msec to 10msec) in the monotonic time test
  1534. that makes sure the nsec/usec/msec times read are synchronized.
  1535. This change was needed to accommodate slow systems like armel or
  1536. when the clock_gettime() is not a VDSO on the running kernel.
  1537. Fixes bug 25113; bugfix on 0.2.9.1.
  1538. o Minor bugfixes (v3 onion services):
  1539. - Look at the "HSRend" protocol version, not the "HSDir" protocol
  1540. version, when deciding whether a consensus entry can support the
  1541. v3 onion service protocol as a rendezvous point. Fixes bug 25105;
  1542. bugfix on 0.3.2.1-alpha.
  1543. o Code simplification and refactoring:
  1544. - Remove the unused nodelist_recompute_all_hsdir_indices(). Closes
  1545. ticket 25108.
  1546. - Remove a series of counters used to track circuit extend attempts
  1547. and connection status but that in reality we aren't using for
  1548. anything other than stats logged by a SIGUSR1 signal. Closes
  1549. ticket 25163.
  1550. o Documentation (man page):
  1551. - The HiddenServiceVersion torrc option accepts only one number:
  1552. either version 2 or 3. Closes ticket 25026; bugfix
  1553. on 0.3.2.2-alpha.
  1554. Changes in version 0.3.3.1-alpha - 2018-01-25
  1555. Tor 0.3.3.1-alpha is the first release in the 0.3.3.x series. It adds
  1556. several new features to Tor, including several improvements to
  1557. bootstrapping, and support for an experimental "vanguards" feature to
  1558. resist guard discovery attacks. This series also includes better
  1559. support for applications that need to embed Tor or manage v3
  1560. onion services.
  1561. o Major features (embedding):
  1562. - There is now a documented stable API for programs that need to
  1563. embed Tor. See tor_api.h for full documentation and known bugs.
  1564. Closes ticket 23684.
  1565. - Tor now has support for restarting in the same process.
  1566. Controllers that run Tor using the "tor_api.h" interface can now
  1567. restart Tor after Tor has exited. This support is incomplete,
  1568. however: we fixed crash bugs that prevented it from working at
  1569. all, but many bugs probably remain, including a possibility of
  1570. security issues. Implements ticket 24581.
  1571. o Major features (IPv6, directory documents):
  1572. - Add consensus method 27, which adds IPv6 ORPorts to the microdesc
  1573. consensus. This information makes it easier for IPv6 clients to
  1574. bootstrap and choose reachable entry guards. Implements ticket 23826.
  1575. - Add consensus method 28, which removes IPv6 ORPorts from
  1576. microdescriptors. Now that the consensus contains IPv6 ORPorts, they
  1577. are redundant in microdescs. This change will be used by Tor clients
  1578. on 0.2.8.x and later. (That is to say, with all Tor clients that
  1579. have IPv6 bootstrap and guard support.) Implements ticket 23828.
  1580. - Expand the documentation for AuthDirHasIPv6Connectivity when it is
  1581. set by different numbers of authorities. Fixes 23870
  1582. on 0.2.4.1-alpha.
  1583. o Major features (onion service v3, control port):
  1584. - The control port now supports commands and events for v3 onion
  1585. services. It is now possible to create ephemeral v3 services using
  1586. ADD_ONION. Additionally, several events (HS_DESC, HS_DESC_CONTENT,
  1587. CIRC and CIRC_MINOR) and commands (GETINFO, HSPOST, ADD_ONION and
  1588. DEL_ONION) have been extended to support v3 onion services. Closes
  1589. ticket 20699; implements proposal 284.
  1590. o Major features (onion services):
  1591. - Provide torrc options to pin the second and third hops of onion
  1592. service circuits to a list of nodes. The option HSLayer2Guards
  1593. pins the second hop, and the option HSLayer3Guards pins the third
  1594. hop. These options are for use in conjunction with experiments
  1595. with "vanguards" for preventing guard enumeration attacks. Closes
  1596. ticket 13837.
  1597. o Major features (rust, portability, experimental):
  1598. - Tor now ships with an optional implementation of one of its
  1599. smaller modules (protover.c) in the Rust programming language. To
  1600. try it out, install a Rust build environment, and configure Tor
  1601. with "--enable-rust --enable-cargo-online-mode". This should not
  1602. cause any user-visible changes, but should help us gain more
  1603. experience with Rust, and plan future Rust integration work.
  1604. Implementation by Chelsea Komlo. Closes ticket 22840.
  1605. o Minor features (storage, configuration):
  1606. - Users can store cached directory documents somewhere other than
  1607. the DataDirectory by using the CacheDirectory option. Similarly,
  1608. the storage location for relay's keys can be overridden with the
  1609. KeyDirectory option. Closes ticket 22703.
  1610. o Major features (v3 onion services, ipv6):
  1611. - When v3 onion service clients send introduce cells, they now
  1612. include the IPv6 address of the rendezvous point, if it has one.
  1613. Current v3 onion services running 0.3.2 ignore IPv6 addresses, but
  1614. in future Tor versions, IPv6-only v3 single onion services will be
  1615. able to use IPv6 addresses to connect directly to the rendezvous
  1616. point. Closes ticket 23577. Patch by Neel Chauhan.
  1617. o Major bugfixes (onion services, retry behavior):
  1618. - Fix an "off by 2" error in counting rendezvous failures on the
  1619. onion service side. While we thought we would stop the rendezvous
  1620. attempt after one failed circuit, we were actually making three
  1621. circuit attempts before giving up. Now switch to a default of 2,
  1622. and allow the consensus parameter "hs_service_max_rdv_failures" to
  1623. override. Fixes bug 24895; bugfix on 0.0.6.
  1624. - New-style (v3) onion services now obey the "max rendezvous circuit
  1625. attempts" logic. Previously they would make as many rendezvous
  1626. circuit attempts as they could fit in the MAX_REND_TIMEOUT second
  1627. window before giving up. Fixes bug 24894; bugfix on 0.3.2.1-alpha.
  1628. o Major bugfixes (relays):
  1629. - Fix a set of false positives where relays would consider
  1630. connections to other relays as being client-only connections (and
  1631. thus e.g. deserving different link padding schemes) if those
  1632. relays fell out of the consensus briefly. Now we look only at the
  1633. initial handshake and whether the connection authenticated as a
  1634. relay. Fixes bug 24898; bugfix on 0.3.1.1-alpha.
  1635. o Minor feature (IPv6):
  1636. - Make IPv6-only clients wait for microdescs for relays, even if we
  1637. were previously using descriptors (or were using them as a bridge)
  1638. and have a cached descriptor for them. Implements ticket 23827.
  1639. - When a consensus has IPv6 ORPorts, make IPv6-only clients use
  1640. them, rather than waiting to download microdescriptors.
  1641. Implements ticket 23827.
  1642. o Minor features (cleanup):
  1643. - Tor now deletes the CookieAuthFile and ExtORPortCookieAuthFile
  1644. when it stops. Closes ticket 23271.
  1645. o Minor features (defensive programming):
  1646. - Most of the functions in Tor that free objects have been replaced
  1647. with macros that free the objects and set the corresponding
  1648. pointers to NULL. This change should help prevent a large class of
  1649. dangling pointer bugs. Closes ticket 24337.
  1650. - Where possible, the tor_free() macro now only evaluates its input
  1651. once. Part of ticket 24337.
  1652. - Check that microdesc ed25519 ids are non-zero in
  1653. node_get_ed25519_id() before returning them. Implements ticket
  1654. 24001, patch by "aruna1234".
  1655. o Minor features (embedding):
  1656. - Tor can now start with a preauthenticated control connection
  1657. created by the process that launched it. This feature is meant for
  1658. use by programs that want to launch and manage a Tor process
  1659. without allowing other programs to manage it as well. For more
  1660. information, see the __OwningControllerFD option documented in
  1661. control-spec.txt. Closes ticket 23900.
  1662. - On most errors that would cause Tor to exit, it now tries to
  1663. return from the tor_main() function, rather than calling the
  1664. system exit() function. Most users won't notice a difference here,
  1665. but it should be significant for programs that run Tor inside
  1666. a separate thread: they should now be able to survive Tor's exit
  1667. conditions rather than having Tor shut down the entire process.
  1668. Closes ticket 23848.
  1669. - Applications that want to embed Tor can now tell Tor not to
  1670. register any of its own POSIX signal handlers, using the
  1671. __DisableSignalHandlers option. Closes ticket 24588.
  1672. o Minor features (fallback directory list):
  1673. - Avoid selecting fallbacks that change their IP addresses too
  1674. often. Select more fallbacks by ignoring the Guard flag, and
  1675. allowing lower cutoffs for the Running and V2Dir flags. Also allow
  1676. a lower bandwidth, and a higher number of fallbacks per operator
  1677. (5% of the list). Implements ticket 24785.
  1678. - Update the fallback whitelist and blacklist based on opt-ins and
  1679. relay changes. Closes tickets 22321, 24678, 22527, 24135,
  1680. and 24695.
  1681. o Minor features (fallback directory mirror configuration):
  1682. - Add a nickname to each fallback in a C comment. This makes it
  1683. easier for operators to find their relays, and allows stem to use
  1684. nicknames to identify fallbacks. Implements ticket 24600.
  1685. - Add a type and version header to the fallback directory mirror
  1686. file. Also add a delimiter to the end of each fallback entry. This
  1687. helps external parsers like stem and Relay Search. Implements
  1688. ticket 24725.
  1689. - Add an extrainfo cache flag for each fallback in a C comment. This
  1690. allows stem to use fallbacks to fetch extra-info documents, rather
  1691. than using authorities. Implements ticket 22759.
  1692. - Add the generateFallbackDirLine.py script for automatically
  1693. generating fallback directory mirror lines from relay fingerprints.
  1694. No more typos! Add the lookupFallbackDirContact.py script for
  1695. automatically looking up operator contact info from relay
  1696. fingerprints. Implements ticket 24706, patch by teor and atagar.
  1697. - Reject any fallback directory mirror that serves an expired
  1698. consensus. Implements ticket 20942, patch by "minik".
  1699. - Remove commas and equals signs from external string inputs to the
  1700. fallback list. This avoids format confusion attacks. Implements
  1701. ticket 24726.
  1702. - Remove the "weight=10" line from fallback directory mirror
  1703. entries. Ticket 24681 will maintain the current fallback weights
  1704. by changing Tor's default fallback weight to 10. Implements
  1705. ticket 24679.
  1706. - Stop logging excessive information about fallback netblocks.
  1707. Implements ticket 24791.
  1708. o Minor features (forward-compatibility):
  1709. - If a relay supports some link authentication protocol that we do
  1710. not recognize, then include that relay's ed25519 key when telling
  1711. other relays to extend to it. Previously, we treated future
  1712. versions as if they were too old to support ed25519 link
  1713. authentication. Closes ticket 20895.
  1714. o Minor features (heartbeat):
  1715. - Add onion service information to our heartbeat logs, displaying
  1716. stats about the activity of configured onion services. Closes
  1717. ticket 24896.
  1718. o Minor features (instrumentation, development):
  1719. - Add the MainloopStats option to allow developers to get
  1720. instrumentation information from the main event loop via the
  1721. heartbeat messages. We hope to use this to improve Tor's behavior
  1722. when it's trying to sleep. Closes ticket 24605.
  1723. o Minor features (log messages):
  1724. - Improve a warning message that happens when we fail to re-parse an
  1725. old router because of an expired certificate. Closes ticket 20020.
  1726. - Make the log more quantitative when we hit MaxMemInQueues
  1727. threshold exposing some values. Closes ticket 24501.
  1728. o Minor features (logging, android):
  1729. - Added support for the Android logging subsystem. Closes
  1730. ticket 24362.
  1731. o Minor features (performance):
  1732. - Support predictive circuit building for onion service circuits
  1733. with multiple layers of guards. Closes ticket 23101.
  1734. - Use stdatomic.h where available, rather than mutexes, to implement
  1735. atomic_counter_t. Closes ticket 23953.
  1736. o Minor features (performance, 32-bit):
  1737. - Improve performance on 32-bit systems by avoiding 64-bit division
  1738. when calculating the timestamp in milliseconds for channel padding
  1739. computations. Implements ticket 24613.
  1740. - Improve performance on 32-bit systems by avoiding 64-bit division
  1741. when timestamping cells and buffer chunks for OOM calculations.
  1742. Implements ticket 24374.
  1743. o Minor features (performance, OSX, iOS):
  1744. - Use the mach_approximate_time() function (when available) to
  1745. implement coarse monotonic time. Having a coarse time function
  1746. should avoid a large number of system calls, and improve
  1747. performance slightly, especially under load. Closes ticket 24427.
  1748. o Minor features (performance, windows):
  1749. - Improve performance on Windows Vista and Windows 7 by adjusting
  1750. TCP send window size according to the recommendation from
  1751. SIO_IDEAL_SEND_BACKLOG_QUERY. Closes ticket 22798. Patch
  1752. from Vort.
  1753. o Major features (relay):
  1754. - Implement an option, ReducedExitPolicy, to allow an Tor exit relay
  1755. operator to use a more reasonable ("reduced") exit policy, rather
  1756. than the default one. If you want to run an exit node without
  1757. thinking too hard about which ports to allow, this one is for you.
  1758. Closes ticket 13605. Patch from Neel Chauhan.
  1759. o Minor features (testing, debugging, embedding):
  1760. - For development purposes, Tor now has a mode in which it runs for
  1761. a few seconds, then stops, and starts again without exiting the
  1762. process. This mode is meant to help us debug various issues with
  1763. ticket 23847. To use this feature, compile with
  1764. --enable-restart-debugging, and set the TOR_DEBUG_RESTART
  1765. environment variable. This is expected to crash a lot, and is
  1766. really meant for developers only. It will likely be removed in a
  1767. future release. Implements ticket 24583.
  1768. o Minor bugfix (network IPv6 test):
  1769. - Tor's test scripts now check if "ping -6 ::1" works when the user
  1770. runs "make test-network-all". Fixes bug 24677; bugfix on
  1771. 0.2.9.3-alpha. Patch by "ffmancera".
  1772. o Minor bugfixes (build, rust):
  1773. - Fix output of autoconf checks to display success messages for Rust
  1774. dependencies and a suitable rustc compiler version. Fixes bug
  1775. 24612; bugfix on 0.3.1.3-alpha.
  1776. - When building with Rust on OSX, link against libresolv, to work
  1777. around the issue at https://github.com/rust-lang/rust/issues/46797.
  1778. Fixes bug 24652; bugfix on 0.3.1.1-alpha.
  1779. - Don't pass the --quiet option to cargo: it seems to suppress some
  1780. errors, which is not what we want to do when building. Fixes bug
  1781. 24518; bugfix on 0.3.1.7.
  1782. - Build correctly when building from outside Tor's source tree with
  1783. the TOR_RUST_DEPENDENCIES option set. Fixes bug 22768; bugfix
  1784. on 0.3.1.7.
  1785. o Minor bugfixes (directory authorities, IPv6):
  1786. - When creating a routerstatus (vote) from a routerinfo (descriptor),
  1787. set the IPv6 address to the unspecified IPv6 address, and
  1788. explicitly initialize the port to zero. Fixes bug 24488; bugfix
  1789. on 0.2.4.1-alpha.
  1790. o Minor bugfixes (fallback directory mirrors):
  1791. - Make updateFallbackDirs.py search harder for python. (Some OSs
  1792. don't put it in /usr/bin.) Fixes bug 24708; bugfix
  1793. on 0.2.8.1-alpha.
  1794. o Minor bugfixes (hibernation, bandwidth accounting, shutdown):
  1795. - When hibernating, close connections normally and allow them to
  1796. flush. Fixes bug 23571; bugfix on 0.2.4.7-alpha. Also fixes
  1797. bug 7267.
  1798. - Do not attempt to launch self-reachability tests when entering
  1799. hibernation. Fixes a case of bug 12062; bugfix on 0.0.9pre5.
  1800. - Resolve several bugs related to descriptor fetching on bridge
  1801. clients with bandwidth accounting enabled. (This combination is
  1802. not recommended!) Fixes a case of bug 12062; bugfix
  1803. on 0.2.0.3-alpha.
  1804. - When hibernating, do not attempt to launch DNS checks. Fixes a
  1805. case of bug 12062; bugfix on 0.1.2.2-alpha.
  1806. - When hibernating, do not try to upload or download descriptors.
  1807. Fixes a case of bug 12062; bugfix on 0.0.9pre5.
  1808. o Minor bugfixes (IPv6, bridges):
  1809. - Tor now always sets IPv6 preferences for bridges. Fixes bug 24573;
  1810. bugfix on 0.2.8.2-alpha.
  1811. - Tor now sets IPv6 address in the routerstatus as well as in the
  1812. router descriptors when updating addresses for a bridge. Closes
  1813. ticket 24572; bugfix on 0.2.4.5-alpha. Patch by "ffmancera".
  1814. o Minor bugfixes (linux seccomp2 sandbox):
  1815. - When running with the sandbox enabled, reload configuration files
  1816. correctly even when %include was used. Previously we would crash.
  1817. Fixes bug 22605; bugfix on 0.3.1. Patch from Daniel Pinto.
  1818. o Minor bugfixes (memory leaks):
  1819. - Avoid possible at-exit memory leaks related to use of Libevent's
  1820. event_base_once() function. (This function tends to leak memory if
  1821. the event_base is closed before the event fires.) Fixes bug 24584;
  1822. bugfix on 0.2.8.1-alpha.
  1823. - Fix a harmless memory leak in tor-resolve. Fixes bug 24582; bugfix
  1824. on 0.2.1.1-alpha.
  1825. o Minor bugfixes (OSX):
  1826. - Don't exit the Tor process if setrlimit() fails to change the file
  1827. limit (which can happen sometimes on some versions of OSX). Fixes
  1828. bug 21074; bugfix on 0.0.9pre5.
  1829. o Minor bugfixes (performance, fragile-hardening):
  1830. - Improve the performance of our consensus-diff application code
  1831. when Tor is built with the --enable-fragile-hardening option set.
  1832. Fixes bug 24826; bugfix on 0.3.1.1-alpha.
  1833. o Minor bugfixes (performance, timeouts):
  1834. - Consider circuits for timeout as soon as they complete a hop. This
  1835. is more accurate than applying the timeout in
  1836. circuit_expire_building() because that function is only called
  1837. once per second, which is now too slow for typical timeouts on the
  1838. current network. Fixes bug 23114; bugfix on 0.2.2.2-alpha.
  1839. - Use onion service circuits (and other circuits longer than 3 hops)
  1840. to calculate a circuit build timeout. Previously, Tor only
  1841. calculated its build timeout based on circuits that planned to be
  1842. exactly 3 hops long. With this change, we include measurements
  1843. from all circuits at the point where they complete their third
  1844. hop. Fixes bug 23100; bugfix on 0.2.2.2-alpha.
  1845. o Minor bugfixes (testing):
  1846. - Give out Exit flags in bootstrapping networks. Fixes bug 24137;
  1847. bugfix on 0.2.3.1-alpha.
  1848. - Fix a memory leak in the scheduler/loop_kist unit test. Fixes bug
  1849. 25005; bugfix on 0.3.2.7-rc.
  1850. o Code simplification and refactoring:
  1851. - Remove /usr/athena from search path in configure.ac. Closes
  1852. ticket 24363.
  1853. - Remove duplicate code in node_has_curve25519_onion_key() and
  1854. node_get_curve25519_onion_key(), and add a check for a zero
  1855. microdesc curve25519 onion key. Closes ticket 23966, patch by
  1856. "aruna1234" and teor.
  1857. - Rewrite channel_rsa_id_group_set_badness to reduce temporary
  1858. memory allocations with large numbers of OR connections (e.g.
  1859. relays). Closes ticket 24119.
  1860. - Separate the function that deletes ephemeral files when Tor
  1861. stops gracefully.
  1862. - Small changes to Tor's buf_t API to make it suitable for use as a
  1863. general-purpose safe string constructor. Closes ticket 22342.
  1864. - Switch -Wnormalized=id to -Wnormalized=nfkc in configure.ac to
  1865. avoid source code identifier confusion. Closes ticket 24467.
  1866. - The tor_git_revision[] constant no longer needs to be redeclared
  1867. by everything that links against the rest of Tor. Done as part of
  1868. ticket 23845, to simplify our external API.
  1869. - We make extend_info_from_node() use node_get_curve25519_onion_key()
  1870. introduced in ticket 23577 to access the curve25519 public keys
  1871. rather than accessing it directly. Closes ticket 23760. Patch by
  1872. Neel Chauhan.
  1873. - Add a function to log channels' scheduler state changes to aid
  1874. debugging efforts. Closes ticket 24531.
  1875. o Documentation:
  1876. - Add documentation on how to build tor with Rust dependencies
  1877. without having to be online. Closes ticket 22907; bugfix
  1878. on 0.3.0.3-alpha.
  1879. - Clarify the behavior of RelayBandwidth{Rate,Burst} with client
  1880. traffic. Closes ticket 24318.
  1881. - Document that OutboundBindAddress doesn't apply to DNS requests.
  1882. Closes ticket 22145. Patch from Aruna Maurya.
  1883. - Document that operators who run more than one relay or bridge are
  1884. expected to set MyFamily and ContactInfo correctly. Closes
  1885. ticket 24526.
  1886. o Code simplification and refactoring (channels):
  1887. - Remove the incoming and outgoing channel queues. These were never
  1888. used, but still took up a step in our fast path.
  1889. - The majority of the channel unit tests have been rewritten and the
  1890. code coverage has now been raised to 83.6% for channel.c. Closes
  1891. ticket 23709.
  1892. - Remove other dead code from the channel subsystem: All together,
  1893. this cleanup has removed more than 1500 lines of code overall and
  1894. adding very little except for unit test.
  1895. o Code simplification and refactoring (circuit rendezvous):
  1896. - Split the client-side rendezvous circuit lookup into two
  1897. functions: one that returns only established circuits and another
  1898. that returns all kinds of circuits. Closes ticket 23459.
  1899. o Code simplification and refactoring (controller):
  1900. - Make most of the variables in networkstatus_getinfo_by_purpose()
  1901. const. Implements ticket 24489.
  1902. Changes in version 0.3.2.9 - 2018-01-09
  1903. Tor 0.3.2.9 is the first stable release in the 0.3.2 series.
  1904. The 0.3.2 series includes our long-anticipated new onion service
  1905. design, with numerous security features. (For more information, see
  1906. our blog post at https://blog.torproject.org/fall-harvest.) We also
  1907. have a new circuit scheduler algorithm for improved performance on
  1908. relays everywhere (see https://blog.torproject.org/kist-and-tell),
  1909. along with many smaller features and bugfixes.
  1910. Per our stable release policy, we plan to support each stable release
  1911. series for at least the next nine months, or for three months after
  1912. the first stable release of the next series: whichever is longer. If
  1913. you need a release with long-term support, we recommend that you stay
  1914. with the 0.2.9 series.
  1915. Below is a list of the changes since 0.3.2.8-rc. For a list of all
  1916. changes since 0.3.1, see the ReleaseNotes file.
  1917. o Minor features (fallback directory mirrors):
  1918. - The fallback directory list has been re-generated based on the
  1919. current status of the network. Tor uses fallback directories to
  1920. bootstrap when it doesn't yet have up-to-date directory
  1921. information. Closes ticket 24801.
  1922. - Make the default DirAuthorityFallbackRate 0.1, so that clients
  1923. prefer to bootstrap from fallback directory mirrors. This is a
  1924. follow-up to 24679, which removed weights from the default
  1925. fallbacks. Implements ticket 24681.
  1926. o Minor features (geoip):
  1927. - Update geoip and geoip6 to the January 5 2018 Maxmind GeoLite2
  1928. Country database.
  1929. o Minor bugfixes (address selection):
  1930. - When the fascist_firewall_choose_address_ functions don't find a
  1931. reachable address, set the returned address to the null address
  1932. and port. This is a precautionary measure, because some callers do
  1933. not check the return value. Fixes bug 24736; bugfix
  1934. on 0.2.8.2-alpha.
  1935. o Minor bugfixes (compilation):
  1936. - Resolve a few shadowed-variable warnings in the onion service
  1937. code. Fixes bug 24634; bugfix on 0.3.2.1-alpha.
  1938. o Minor bugfixes (portability, msvc):
  1939. - Fix a bug in the bit-counting parts of our timing-wheel code on
  1940. MSVC. (Note that MSVC is still not a supported build platform, due
  1941. to cryptographic timing channel risks.) Fixes bug 24633; bugfix
  1942. on 0.2.9.1-alpha.
  1943. Changes in version 0.3.2.8-rc - 2017-12-21
  1944. Tor 0.3.2.8-rc fixes a pair of bugs in the KIST and KISTLite
  1945. schedulers that had led servers under heavy load to overload their
  1946. outgoing connections. All relay operators running earlier 0.3.2.x
  1947. versions should upgrade. This version also includes a mitigation for
  1948. over-full DESTROY queues leading to out-of-memory conditions: if it
  1949. works, we will soon backport it to earlier release series.
  1950. This is the second release candidate in the 0.3.2 series. If we find
  1951. no new bugs or regression here, then the first stable 0.3.2 release
  1952. will be nearly identical to this.
  1953. o Major bugfixes (KIST, scheduler):
  1954. - The KIST scheduler did not correctly account for data already
  1955. enqueued in each connection's send socket buffer, particularly in
  1956. cases when the TCP/IP congestion window was reduced between
  1957. scheduler calls. This situation lead to excessive per-connection
  1958. buffering in the kernel, and a potential memory DoS. Fixes bug
  1959. 24665; bugfix on 0.3.2.1-alpha.
  1960. o Minor features (geoip):
  1961. - Update geoip and geoip6 to the December 6 2017 Maxmind GeoLite2
  1962. Country database.
  1963. o Minor bugfixes (hidden service v3):
  1964. - Bump hsdir_spread_store parameter from 3 to 4 in order to increase
  1965. the probability of reaching a service for a client missing
  1966. microdescriptors. Fixes bug 24425; bugfix on 0.3.2.1-alpha.
  1967. o Minor bugfixes (memory usage):
  1968. - When queuing DESTROY cells on a channel, only queue the circuit-id
  1969. and reason fields: not the entire 514-byte cell. This fix should
  1970. help mitigate any bugs or attacks that fill up these queues, and
  1971. free more RAM for other uses. Fixes bug 24666; bugfix
  1972. on 0.2.5.1-alpha.
  1973. o Minor bugfixes (scheduler, KIST):
  1974. - Use a sane write limit for KISTLite when writing onto a connection
  1975. buffer instead of using INT_MAX and shoving as much as it can.
  1976. Because the OOM handler cleans up circuit queues, we are better
  1977. off at keeping them in that queue instead of the connection's
  1978. buffer. Fixes bug 24671; bugfix on 0.3.2.1-alpha.
  1979. Changes in version 0.3.2.7-rc - 2017-12-14
  1980. Tor 0.3.2.7-rc fixes various bugs in earlier versions of Tor,
  1981. including some that could affect reliability or correctness.
  1982. This is the first release candidate in the 0.3.2 series. If we find no
  1983. new bugs or regression here, then the first stable 0.3.2. release will
  1984. be nearly identical to this.
  1985. o Major bugfixes (circuit prediction):
  1986. - Fix circuit prediction logic so that a client doesn't treat a port
  1987. as being "handled" by a circuit if that circuit already has
  1988. isolation settings on it. This change should make Tor clients more
  1989. responsive by improving their chances of having a pre-created
  1990. circuit ready for use when a request arrives. Fixes bug 18859;
  1991. bugfix on 0.2.3.3-alpha.
  1992. o Minor features (logging):
  1993. - Provide better warnings when the getrandom() syscall fails. Closes
  1994. ticket 24500.
  1995. o Minor features (portability):
  1996. - Tor now compiles correctly on arm64 with libseccomp-dev installed.
  1997. (It doesn't yet work with the sandbox enabled.) Closes
  1998. ticket 24424.
  1999. o Minor bugfixes (bridge clients, bootstrap):
  2000. - Retry directory downloads when we get our first bridge descriptor
  2001. during bootstrap or while reconnecting to the network. Keep
  2002. retrying every time we get a bridge descriptor, until we have a
  2003. reachable bridge. Fixes part of bug 24367; bugfix on 0.2.0.3-alpha.
  2004. - Stop delaying bridge descriptor fetches when we have cached bridge
  2005. descriptors. Instead, only delay bridge descriptor fetches when we
  2006. have at least one reachable bridge. Fixes part of bug 24367;
  2007. bugfix on 0.2.0.3-alpha.
  2008. - Stop delaying directory fetches when we have cached bridge