diff options
Diffstat (limited to 'doc/history.ps')
-rw-r--r-- | doc/history.ps | 1014 |
1 files changed, 524 insertions, 490 deletions
diff --git a/doc/history.ps b/doc/history.ps index 3776eab..6953c8f 100644 --- a/doc/history.ps +++ b/doc/history.ps @@ -1,7 +1,7 @@ %!PS-Adobe-2.0 -%%Creator: dvips(k) 2022.1 (TeX Live 2022) Copyright 2022 Radical Eye Software +%%Creator: dvips(k) 2023.1 (TeX Live 2023) Copyright 2023 Radical Eye Software %%Title: history.dvi -%%CreationDate: Tue Sep 20 14:17:06 2022 +%%CreationDate: Fri Apr 5 13:11:47 2024 %%Pages: 24 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 @@ -12,7 +12,7 @@ %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -D 600 -t letter -o history.ps history.dvi %DVIPSParameters: dpi=600 -%DVIPSSource: TeX output 2022.09.20:1017 +%DVIPSSource: TeX output 2024.04.05:0911 %%BeginProcSet: tex.pro 0 0 %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S @@ -2659,6 +2659,7 @@ dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put +dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put @@ -2857,284 +2858,294 @@ F44580845F0FA422868CFCC8029513235C0286B76196E350498845EA934DF289 C93ECCD6BBCD792189A12FC9366BA7134EFD67A22B4FD62465250E0BA6B7C627 73E8F50E379328B7FABA341B0D50F9A2CFB055E01DDF6BBCF6FE4114BC36C10B E581D76A84EA12995506C33DAE9035683FBD5F54AA1545992B94B8ED946E5866 -2F2CF263C8B27100503264301A710BAFDABE2BC79B07CFA2FF4628FB593B0C62 -24651DBA0CB2302B18664065F9C6D06EDF4CE96CAB664B99C0B710586D3E3D73 -2357B60C1EC5EC0A5FFFAEBD1FDC2E8607886FD2E971CB2BDE3F3831ACA3C77C -09331BA12ECD9C58934C3C61023C70149AD63B43B158C677FD43830A89DC89D8 -8DBF8D0F98DDA8D06C9D59B5B4255EE05C2FB4C677FAEF12B325F8363F4A9C00 -0FA3A548FF16017CECCD6A1560E11ED9EEFE1BC796D2BD8984FD88F5DD6153BD -3172D56277366465F8AE0AE10E72F38DB57D30F9DC28A4C2AD1063ED7F4BF8A8 -B4D7732E938AC8487739D26FC08BA2DD3927747652FF43107A1F8EC3F11F8E38 -1D7A79B86C69CC188F2FBD0627C7F4C624121B2C3B0DE133930F9D480BB2F6D8 -254B97BF6159DDBD297E8F0DBEF47689E090BAC0209D53234F3A97DFABADE965 -30DA301AFFFEB9BBF566F732FD3BC741A4FD6C6E923C0279DDE108FAB57DFB2E -ACE75598F49515F54CD038003920FFC3F00ADB18020C7E2E008598623A8A11B8 -8CA1EFE31D894F2B86179C7041C0BE2DC7029117D29FF00F8EBF7CADD2246280 -2CEC39A29D82D70413FB6CEFD9B5999414655E1E6FAA31488C3ED458E880A344 -5D6119FD88B3AE9AA81DA4E675F78B570679A50EE64EFF2809E2BA0185EE5B94 -FF3A70DE7E0462E09651C2F4F216479C29D8B753F0936AEAD3EFCC0BA64A72F0 -58770CC3DADFE22FED4BDAF76B9F6D6008A85415D01479746BD03DE32A7D488D -9B1C8F8B6F10A5A8419B8DE651B2B9CF6ACF892BFFDEEB08B780AEB0818539C3 -7DAA805D8F621BD6B3B75123DE511D88604C5EF071514E58962BDDCA03BE02F4 -48A689D7E434347E81077F835F9801B1262494A8A831D803AD6323DD703ED2E5 -A92BDE25BAA62E955AC85FFA599F38A94A4558F83CB6D601D3DFD0EF37610A34 -F3B68AB6ED3BC07AE74331556F2ADECCCBDE091A2571B5AC458415284E0CAC03 -7733EEA500102E39526E921714290B6EF33987E8FDC5D5E2E6304405B32E6F19 -0D34C9995F41248D56A698B7EEB6CF86722751A0D680389F4F7F0D7B0FA89BAC -645836C890A9F3EFCE85CC21699950A00DAC35DE915E2AB54D09ABDF4E9A0A44 -75BC29128EA22CD98ADBB8A5011C734367095FE0B43E205E1E579438ED3CC098 -668D1D533E0686E9F6527AB4EDDDE7BD654793F67BC090DA7083619328B2F6A0 -76F82D5AF56DBD8A80F757748FF98C2A6D5BECFC35464BC557123FFCC5D1447F -D0E47454CBF0564E3449DBD404831D268447DB88DDA42F1239E291FA5B0C2A7F -0D1BC8606E79E388ABC7F2C4E2F9A37BF075D69C59592D2E4B1749969E4BC3F6 -8DB0A31ED1BB0EAF337DE171630F93F08FBA4BD889DDC7069F06711E40565ABA -80EFEA764D8D52A10182F141110ACD55089ED2A1686B0A2966929A690BEB4E1E -F896346DB64B1BD93D2ABA1271303C2051D2065E818FC6F7076D8FFD473FFF7D -5972990679D3A477AEE532EEA8B4ED029FC6CF5E049FDA19BA86B756A8575E2A -1A403D14F491FA424733646614F62E16410A30AEDB48F88182CF81F775869F02 -0F8D8B4130CF6A8C4379475C0E5FE333956A7BEB826146670329ED1E267A1418 -AD742E72E26FF3F53DF9BD0973EC25108298BEC5BC4C8A334AB9E9F179494BC8 -BEF0E05DCF987436DB4417EB49CA8BE14460325ACA66945084953FFAEF84F37E -9881EA4C778636D2EE3E512CE45A4CC31EB52E7BDE60C68F21E90946632A91BA -402C1F82A5E4E7FC60825785331A9DAC906C9574777749A34326B25259E0F31C -EA7C970E5344483055900BD864A29F58085BEB1CB67AFFFBAD6294B69F9F8F2A -36A4B5FC710642A3443674A4D13A89EE56224DB9E402B17A645466E74A293FD9 -A6083DE85E837D034B347A86E6277E4B4DAA3B7D8C15A9BFBC19CB1D0F13595E -D330FC272F0F4E944FD5C61F26C8734051853FBF27BA228AA98352C4127BDEBC -A6DC86850E0F1760472C7E182EC921E446583EE115E544E71D326B3A483AA55F -2624FC99D29A19C03D3420D4B845DA59FAA739F206881580FD36F16514BC3C5A -66C8B6CCC715035C4A355221321D53D0A05A8FF9E4E7E2DE61126AEEC58965BC -464448D3A3DB5CF9CE341520B2D8360AC6D0CD8086E53D5FE0A4E9BC992F1DF9 -7056113D28F191921A49F34271FE816F6A4A3016252279DE9A17A3153617F0DB -B4F5D360243C157FA120CC89F7FE8C2BED8248D1587D2D4DC4F5C90D7D6AC2A1 -329C5536E85BB5ACD3DF5520C4F620782D52F896186453F3206D740B57AB0451 -EE735047AAB4AEF258FB1DD705DAD49F695D5FFE98CC9F73AA59B034D7A6689E -AC3FC0144A791FB04DD0C2718B676B0405BA04CAF72C57DF2EAB282CB9A81A47 -FFA4890EA672F3DC041210C9F9C86F238FED85DA9710C7C6C0364552CAEF927C -D52D5A603D205C1494E39F6A66BD012080A4BD18DEBD96DDCF50CA118A569035 -040AD7B9E925F33391D130C3F274077C475BCAE215C7F3C457AB339647191729 -05F89D2FE3FBDB1DDD7606214B50C3860625F0E34FBB3037668338D70032FD4A -F7602CEF0B62E0D06B5E27F3106894CDC7B249734195A62A5C1BA0CC8F03E3B3 -EFBA46FA153FD44EB55ADE26D38C5B5C1D8C19623208987839093126ED883168 -D4A1D9A5F9C94C71E16FB6BB3504D9E772140F505438A00EAAE79D05C5722442 -EF1244BE875098251BFD488A2E84C2D3F8F70EA07C9805AD823980561A074FAC -523D3143EF274AC1F1872D8C1272495F07DF9B062ECAB0530DF8FA962D33C377 -2449FEC027B79CFC109821620FF67F02AF25F265E9D241F761B1C21DE9AE21BD -A0A7BE667E34578A62259E35CD3503A49015D169BA5131BD1230CC16DDDC9BDA -81FBD19765355B5501FFFCD65438449C36F66ABFA4C6DC52D44706C6E95FA7C5 -E5D69839225C8141E81F67339D6A3F510F1A87980A7FA2CFCF919F83D2758981 -885EF470DC2ECA30F843CC677A3E6083A9639E040DA5FE2AB4173581DA251557 -B631AB6ABB4746A81929310854DC087427DCAA78BE0A14D52CAD85EC12CB5D81 -21F8F7D8ED34E2EF764391DEEA35D03B34F5EEE7E0845939B73683C9A726D269 -6EF42C322E69844F503AB771E7BC722DE5D39ABC79723BA77B0ADA9A27C7E6FD -8F0523F450EE4FF8D985E36CAEBDF1DD6707B61478675CE0ADAD4E67FF4D34A8 -597F98978F414323791B64E84FBBE9D67764C113C6822C20C57BA3425C1B7645 -9AECC2E00CBB6C8CA670A2A5A7AAD80A1E737E77CFF242BE49B872FFB60FB3A7 -FDAB635914C9947859FB5EA665F7432BF5E507C5C95B5BCC14A841A2BBBAB185 -D1576730BDEFA8A5897E476D51EB1BAEAFF9FB6C457E0B7C9CCAA1684DE2C1AC -5E893046D4E6D704528669F08063EF86F99D8ACBFA5027686834E8461792E35A -0CE30ABC123D8C3E22873D65364CE0E5FF75B89D80D6BBF420E5FC5E31CE10EC -073C4064C47A38800034AB2BCE4966C18B1187E5CB1870B30FFFF6B967A54E38 -2A38EE09854E20AFB47C7E2ABB35DA449FDE353FA5A6FE4D7B550018230154EE -E635670AA0FBC05DB432E65F3457ABBAF7FD175D5AB5B386E0CED8D7193BD547 -86ED900579DDCACD269C1F4994F845804AEB40D68457BC8DF062A7F3953A2F07 -E3A24311F563B23859C69C790D218B0AE1B4A3945F46A5FD63BE4029957390B5 -54EA289752B826B24BDB883EDDF6659F26212AFC7CC8ECDFF1E7123A911B0F98 -FD9533D672C0A00C73E0F01719100918F605CFE56D0DAA18F421320FC18B3FBC -78AF72B4093E2D305FB3D8EBE1EA2207D05F5A121BEF677F3DE94ED9F0A7672C -11ADB780122787F68CFC8F59D4F4DDC33E13A13CBE7B3C5D8782F8C9162190C9 -0F49DB134292B4B488315B11A4C3250977E43F0FCC585709C47B96A2FC381035 -61674AC6B51052D77130C37A49CE264C0973D3D75B1AE625A66B56AD41EC0931 -C9765F8DFA5D1587D06A28DA530498CC3BF68C0B0F24F80BE5C1E76F528A1887 -E8A415FEA0519FF3261FD62F2D1E009F97455D5FD3C75B7775FB5104DB7A20B6 -CCC697D5A821F89F69ACF1017C5462D5B828907191B41C0918A8FF44547B7CEB -0F49B625F790A2147B94EAE381164BBE644A3E70DAE8E1F6C97A75E8425CF6AB -6C8073D8E3116D9B5D06C1992CE93024618A5105E7AF32C6BF525C7B5D4AB280 -5D4103479D66C948EC9D153B2737FFD64F95D300B0CB491D97AEE905F3C62E3D -439936E4C70508DEF021EB918AFBCB4A56E8758E13C9490D86A5B732CCD77373 -4EFF0B8CE6819A7AA5BCC01CA85CFC95719A03098F9CA7AAC88DE8B0C09F015C -46901E5D0A49613F544290560871A1D4FE48D7F6214F5AE1362E5D1EA1508FD0 -E57DD35C0993EC0CC5E7BE4CB79256FFA4B5687CDD69750377E48CD6DC808922 -BC1BC7F14A5C664B36259FF9161669AAF0525FC70C6F856CC22A7A938BCBC318 -D01E132682BCA208FE3B0989D714E5BC01BEA2E3E1AD01FB56F4477172766938 -7023741747CA79AEE51D233B0C82103426121821648D4F96C22F040F40A068C6 -DD24A417D17F46999C9BC648C5AFEDBE3C4157E2EAC85D9997DF585D8F686C2B -3365696E492DB619498ED80DBD495BF52AACA15AFA2C7AF60B5697E3E471B80C -D313AFB321295FC989E819E1970F383C94511737E60C92B92D1720A7AAC6F774 -14C51AA35192A28DD4B2D46736A65DC54B2B25B0996CD01D7B388311B37E6318 -C29731128DF495967AD5E6EB6F1D469B5541A41D4280AE5DA85FF96EB4AF1789 -D7C1DC31D52C087DCE9405062806A0B4E68A075CA2C6CFF60F8720E77AB94BB1 -CF15D4AB943E7150B286C5CF6966B1C3C304F96864958030A625C742158EE151 -49451D17894D4390AFBBB830C7739D4DCDDCEF731712034ED0CAE738647D49C4 -D73584E907CBB7D64E5CCE1A42267689F160E43D8771535D9BDA7702D1981687 -107C015208124B4D759DD00397A0B54C83878FEF897F3BEF278BEEA272CF0C82 -88F57EC3DF160D26746D785AD19F9FF3CAA86BE390898C6B797B3ADF01B0989A -95B0FC905F034C14C5F32AA0C97B7120601C7440EB99D5855A61A7039320DCB3 -CA9E49E5FAE282460118757D841DAD5CF14D34E5D108524170B6C8F2F209C4EF -071D1C930A071D0AFEECA65EAD8826E0E54A349F60B54265C62CC70EAD8AE3DB -B113BE98479072046FFE73BACE222033E2C47C7C749D97E7BC932EF60FAE13D4 -0A208321C365A5104F6638D21176ADB80A3B415C20757104D051D967471F687D -E3E7E344F9CCA96E6C235B52138879D72D33CE3EF4183ADC3173AFF0AFF779C7 -78190DD5AEEBEF54DB6F50226B652A496F6899978747E151E6347834F8177F18 -0F14381A7BDF9FF785DBF90498806CF5350C82B89E4BBBD5A4F3B050E10E121C -E71FC9FC055831EEAB6DDEC8F26D102A9250064EDCAE106D53245BF15EBFF4BF -EBD2DA1099A1F0A1F4B6941DACE2BBBF2A38F6D25C1565B6C95CC94DE6C17E2E -AA539FC845F16712A2CDFD39854C63F6B7E7A89F335CA2DC57ED30B92A0E0A34 -A15B59674766AC84417A9042E9C388A906FEEDD189714A087ECADAA080DD178A -70C9D8A1C1B0C9884D02B692483730FD313C4E64190E6684DA24324CF88A8C16 -C04E949E9ACA502B5D5ABA91803992091869C0697422CDB5203057BD85471518 -B86DEE52FAFEA174D86E3DBA6EF3440E3DA943480C88F0886412F4411D0FE7CD -C2794552597E9CD1107AC4AD756C4CC1BAB6EAD6D38559A233852C3C6735A7F5 -EC6D6D99FD510AA4428918E0AED80E0DAD0BE22EE3EA20A309BC7267899D1396 -79458C5DF3CD1C0848B555D2AA48DDDAABB87EFC2B584C48CA8BC0A91867D9BB -25994B16DD7512B4836A691B03BF5767EA105D68B62D3D81F2440EE269750E58 -8091F08CEE3C62D4131C18D575147A112AE01C93773124DA4E2B74D4EEAEB1F2 -C8B0D863EE815D994070ED9DCBEBBB673B2182F190608AE7D97C309028E7C992 -B14BEE67E749D1A875E79934D23E4BD9A3768497518620388D55C076EC42F6A6 -2EA61F2DDAEAD939E921AAAE37D58CE72AFE3B74A8A02F4A1804551117D2922B -80A2750F0A3D9375361BC7AD2E302267A15C675DC20FD858DE9793A080624F29 -8D9106D26F7F5747FB7944BCFEADEEA4C7605DD473432B4EA58ACD471AE3A4E1 -64E4E35DB9D97E2A374DE22A6A9F8B6D7E2D32A0C603BE0A044283621B3D1F0F -1154CA2149ED42E08F08FD85D2CA5DD02DF68E535A25487BDD98964A6C2064B7 -A057D4186F0169777C3BCBB4E397C22F4196E3F5025EF5D59501FEBAC3C44768 -6DBDF3342857931DDC23BA77C22A318CB13C653086032E880E191BDCAA77124D -7238361A68F663A638D0722BB7DC3A37226FE9C5B1C15E0A32B900A335F93AD0 -98D0F22C9092134E37B336750C48B5C30AC8BE183A154ABE2F304915F8FE256B -0221EB3064620A3F87AECF76FA16A7A1BFC67EFB0D27910977DF3C8B1B93F7EC -5C47C8648197E784C084F332FB505DB3A3FBFE6367534AC18D37CFC9D96814B5 -0B568AA24B823D93D58C38FEC655183AAC309FD07CE32353820B5471E345FC29 -51FA9581A7CFEE964B4219E3837A158FD43C9FA8502A566E64DDCAC0ECA874FA -CFC71A0D442E128423D92340E53A76C9CFB6882BCF76A2AC1EB66DF300F6AEB8 -C9A2A9808EA83ACD248A68DB3F78D6CDD9A507785799714214DA4B60EC547FA8 -2967939DBF9A29B73D319810FADF8C44792E1667596261B6E52339736E7F857D -EFC6C4997298BC8ECA834F8BFA5E3786AE80790C50FB1669230ED454DC81CCA7 -7DF4E5AFC2071127D70476AE9B225166EE9C65842EA63B4B309A907A275000E5 -94E0994A08FC58EF0138B557AE8D96842EB50AEAD3F1FF98F454E011CBF4C2E4 -DD531883C44989669A50AD00BAF10A062BEB4B6DC3F790CAAAD0E68686FF3A50 -1009236F70FC80905D8EA2BDA8D2442A006E2B77D9C40A01A106D8BAFE585D2E -CE2FD94F9A628634CD1F829657939751174E8F43F318C47CB894EADAE6C8ACB7 -2AD554E3085ADB6F3443489F3BD33A56CB4AC8CE9E11FA0C83DE9E133C97F69F -4812256B60954CFFCF3E7F439D126F7DACEF1626D83608DB70079F0B2BFA5DB4 -9E2EABE7D23BBA421A88374E77DC5B6E2648AC9B7B1C3569C826A33AA21F71BF -8A5B0B825DB9E00CFEF59403990D57BE4C48953786B76D55D8B665A15AD69709 -A360AA9D8BFCA8E00DBF9AE1D0A40F0B02A652B2B330C689E61C3C5A7EE81172 -E847414CD43E2277F37BDC832104B29C998785022A693389A9FE86EAEC5CCC4D -09A7B9348C80AD3BDE70E7752E44D30113EFA182DD5E47CB21EEA64D9101C657 -2106899AF37365A796ED255FA7F4EE501D8681FE11F92E64149EF8CE9D23F334 -6E2B1E1A67CE7CFDC535319EB61E5089201708A0F4F449F89534FC7BC340948C -6788F3115AE6B80CB6C1956474D2D292B830DC9F8F67E1FF381CD81D788AE222 -1AF6B548B5C7C496BA711F1F8AC21947D2604ACDAAF0C5A68E587FA2109B11BF -24807B7DB0EE845C13E8F693DF8A4969715443E1FA0090C4BF359F4827067C0C -823676958AF915D6D75C767F01C7ACBF06CDF9E9A27B57FD5C2F133DDB091CAC -2B31E9DB522783B69951F2965AFEFE6F454E9A859664A65AF8D087B203924BCF -E4C45AC959352FFFECE860648C6200DF02D650237BDE22AB1ED127EC09B4F3D1 -234BB3F32ED111B8BD481729F4293135EB333723B7990F8B70A211A3ADD67AB2 -8B5A7D6AA9E9B0EBA08F9F2959D13611FB8F29B749686739380BB59E0A93E99A -0B97B297ED8362D421F3AA230DBAC86D200DB0AD6D5F320D1B23F0A570357646 -94DC98B2973F2EADFC8D2AB5DF1038740AA520B7AF4AFB812575C18EBAAB76B6 -EBDF757E1B8264C87A7180C627070C3B95EA0FA431E8360F0DA8A722F0861C9C -BB7DABF781FCDEC603326ADFD0FA3F788A7C695E50F23848CF85CE410DADD5F1 -D7CEDBB484D009FA9BC4E06108CB63056129815A616BBE98C38E6DA6E587C23E -D0F6496CF0FE5F51ECE5FB21779A44163115D2F05541531EEB124695FC34E359 -8E0BE91219FCDDA56C4FE3BCBF6E8F45505ACF974C6F9EF55DDB391BF5606A61 -725BC73D5FAF324A7DFCFAC9C9C2728CD4370A9CC71F645316ECCD8AAD062EBE -9F0763A7F77ACEC296597E0374545BBFBC538525889D39E9153D8FA7C5945F8B -955BC41CF03F7400E4AE3359818A4C1FA2AE66AF9B77F6AEE16FAF82A469F6B7 -46E679B38AC3897D1AF3CB2E0289802E8B449A1FBB084EC5938185AB229211F3 -6D8A9C36134ADAA0498417E2FACE92E753325E0B23BC6330DF323C6DC3C4C41F -25B077754E4724164566626638525F6F49BBDDBB3E8EAEA9ED1C3AB5F8DE8BEB -9432578C9E334AFB9B3B05E4E11D0C17C4A084BC7903ACB1FCB213622CA5A95B -D6EED267C225E42D372F5AB6D45B23DA02D5141E310A4AF395531CF047673DD5 -69FC7C683F52CDFD0BD9598587E1D66BDEAAA467C512AE2BF24ED472527661E2 -CFE5723B43C46C210CF6E76D0A4FD426258688C5A797F1F6ADCBF6174A61C332 -2009A4AC1E90E598359039CD693DBE122E18F574B96FC97BBBCF0C7020EC446E -FA902325670BD42463490952BC7CAFBEF1074FC1A36271F6C6E29DA363A6335F -6223F16AF2A3ED714A8BAA0EC08998F41BC8DFDC7B0007F04642CC489BEB0139 -0A78094BA9D580810CAC4D4FEACE3B67D1F957B180A481BC62BD7836A708A336 -CCCC06B85F07F7CD13104E30FB110F749A966554CF8E507D10572B4BFC0E24AB -AD69A17D1468C4F4EA8E96ACF86192EF402E4F59EF145E0C8B187709E9C64EA9 -C52F7CF2E7CD9F43170430CF6A76CD422648542920F90917C1698803282D5AB5 -5C39F06597D76D52CEB7AFEDBE9C91C90274EE106BC54DEFF89B7E870ABF946B -0C87A133D0CEE117C00ACD3BBD72474D14F14D2A6AAC857254CB409EACDEB6D0 -F22AF9B820FCE6A5DE6DE866CE8BFCB17C1E3C452CA7912BF25D07020E447AE8 -9565BADB3EB531A704AECE4A80024BEC8920543773349987E9F6240514EED4B4 -8D78A234318102A2AF9D6C45D9BFB27AAE43D5ED91483CD1284A6712DF124855 -B64C5E3FF7DDB5DA6735A0C765AE823BA1F14749B6022624EC3170435DD20CBC -018936484A3F93D5BF136281E07A5352F9F1D5772DB0DCEFB57EDFF0DFF1A92E -22D3B7C7DF81B7F9BD970CAEAFE9C01771C4E2DCFF8B97FBF80788DE47C77707 -5F2D211034B5150F0343DD875E6ABAAB8E68999B59738A3999C440EFB67BD76D -90085D1D4254E63EF500D66E4177A18EB2C74B1BC53EBAA89892F680F33F3EC1 -AF438446E2E38CC40F3BD253BE7E37F00F4F6132A5AD13F09A9A19C801694078 -0189410E617ED04990AC4B4AB626BD9A10599193E3B7C7A3BE9AB3DA5F9466A4 -1BC68B6DC033EA0123D1D1DBDD8CD5C86B4C0539E1D79DCF67653DC84C3A8C89 -D250A78AAE935811AFE6F3FBE2E5E452E430E16A20DC563CA577C898E68F2A84 -ABF46FDDA19186DD43A1DFA24C92FC62ABEA7CD85BD68D64CFD1A0C29DBF88B4 -D25D8C0F2A6FBC7A33C4DBFD91D97918748A9E41637820C7CB4FD427825B7FB3 -44DC759B24D98AD1565AC930B89E81D23128723BAB5BE792A6C9112787225241 -575015D00D0691CFC7E29EF61F931599B88E165E8EE75DBEFF5B1A8D4740496E -9F85ED6820722C274DA65F73AED95051BD9FE38AFDE4FBF425FEB6ED07C8A976 -F32A9BC9850E0C7069AF74BFBD5A78765AAB81037075B4CC6F09A95013F4B75E -A86D41C755425B4B00776EAD7F5872622D8BA5F5A2C5187DC8F36F03DF03B168 -6AA1AEBEA0702437D8E546888A00D42EC5D6085945E31BB14AD594BD9BCF97D0 -4B99A50C128B77C75D87CE0BE0C73FF37F2DAD7A5B5A361697627255E6E5797C -FE1E38C38E4359B97D594EBC15E0E10F17F20156E7DC9E33DD8BF8EB016CC9D5 -F496FBDE6E16F0FC9E5EDCF67A39EEF57345C3E6A4E04DFB7EE6AE6E54EBFCEB -1C53ACE652AAFE3425ECBB3E42EBBD51097E06D1C2ACAF97ABF4D875865429B2 -2D9A1E61267AF7E31018C46EAD1839A45032BD9746DA458A2893613BC41D0BEF -F6338BEF85A69A8683E5B3C3D83DC5F651011934745C042E3DDA4DFB7B393C4B -9002B5721DFED701278E9CDEEC9F7B4EF1D326CCEC149E68FEA5D7468F7A091C -00A3FF3AD5446B14FB635771A5138FF8C2B02FE98180C19595BFEFD29B8F1A0E -51CB37E46E06413ACA5D70EA7F4F0039A0F9A4A20BCBE335C82317F6B1CE4E8C -7B06513CBA59EC62CB7563CB4B29ED6BC20BEC14F6D4C192E0261C8A2CFD0968 -BCC64408B19F39F69CBAD5D6E117BFD8470DE959BAA369613057DB1BA3441E27 -EEC436544FCD8B6C50D24548886892C86EA61CD573FCA53F0CFA97D799C25418 -3EBC2302D0B43DC80E08F68C01934958A810C76DB2E23B13FC0BC6CBE37AE842 -8F2452EFE0AD6E97620A070BD93CB99F13E8EA78DA56728314E62FEDABC6A6EA -491EC96A8256AF6C7E8FFA6A04DD6CAF1DB9A45AEF196342D690863F54B3196A -11CB3BD65F022BBB8DD1356F768AD0FBEB817DBA77D2BA4FADD43C8C7682DAFD -EB331954CA9668AACCAAB539AF7BB1F94B6C9C430021D1DF43432F03DAC805B5 -EDD2279D4BB979130BB5B44FC22191C59A849D0DFBA2847D76DEA80E88AC203E -84A8657C760AFCE2E070E16E3AC53B9D2F0AE040AAF7435051B0B36795BA0ABD -AC192D83908FFB421CB493A64F1C3FE99DB9F0B41B5AADAC1D6E0482D6579670 -F5154DCFA00E4E45991B6CB9FBCE7F6A470807193224CE848C379F508C5BF898 -4CA713E40BF4EF1D3EBDE3D1118D838516CC5FA9B3BB84D22408404692E04873 -C7482267713954828DE7C91EA03BACDBD2E53780E260601FD03CB08201C62BBB -B95B268EE00F702907B2F210776046900F80857CF5AB73029584954452E1CFD8 -6AA384D3238AF280DBCC617B8144DE8DF0DB36C18C54CDFB81800ED65DD9EC4B -4ABF20562FE068BEAC88A21059084A3189328AD5CF5AC9015555C896D0D2D096 -B734CE37CAF2ABFCA0504F24869D0004F6976C73D8369DADF0077457A374E601 -7D8120F6918B57F5A3ED0E142835A8FC95CE31A30073D5AF29AECD010D2C80BD -737FFEA417B9CA710CC39B759BFC9129B11544D222C31B165027AA9A981944D8 -E429D11D540538AD0E26B7D6D714A770F8FBB42B969BA55953DE4DC7393051CB -17F74547E2599B43AB9CC178BF0560BD5EF585A67342146D32FBA4B477B6F403 -C97C8CC1DC04B16A21E0CCFEAD2845E4A7943C34378B80201C6033CC8CCFEAF1 -8026EB0AA7F77FC2165E6A2F99BCC0D7D65C4566BFC56B9A1D35B964D6DFCB6F -A2E9FE35915C8AD53861F593589ACB337CAD96DAB5A00F0BF52B7940FCDD915D -03A57E81EAA243C525F5A99B2C9325A65B63937ACE78801D22979306C3927400 -30B3682657443F972DAE9702D1D1709B71622ABEEDEC3EFF4FC3A82B9EC94C5E -6FCD4086A02F8B4A58E00B4B28F054E203734082BD4A7E039CF0403836E439AE -652962FF9907AFBA6C7AC441CD769AC304E243AEE7DBC219C5406320F6D20E6B -B1FFAC7CA30E77A419AD834DDB087C33422C2B1E689794D09CE6FC29204A14F4 -6047A79CBFC04AFD3D68F96C0B8C3A202A304D697FE178F0EDCB34F9B0FE3BB9 -61C2B07A7EE35E8F18071D61F6A98BE7CC573D0135FF9A53560159BBE16F26EB -B171D725905D4A0671FB8BEEBA009B47CA9633362FC0C4553509AAAB43F137C5 -852DCEB47074F71DD6345634065E358CE4EBE88111970F1190CE776EE7709729 -548AF51C38735F6F63BB83E9D91D5A5D2E1F89C7BC8785711452AAC43E77498F -A74D91A1EAA3F29114E49EEABB681B56C5456541F4342D607C477983380FE29B -9A08A61D371950992F17F20D40F8169E3CFB99AE231C40EA020C6C253FAC30C2 -04AAAF5D992E9458877380510AFB91851B289DC03AFA363EC338E21ED01D2186 -C706EAD057ACB2D47CDA1FBDEF9AAF93841C5BAD0668C10541D7B41EB3CB214F -4F214D7ECDD4606A4035795AE25C58C9692845F535762AC3403E2A0CDFE79D27 -B58887D2688C7694D4D271EBE925801E7C1B27C18C8E0BBA3E6F999484033991 -B0F021F1A60419F06CA0758F7C3321D20754888062DB453FC09F3033DAC6BF0D -341BA60AF9A8608E7BDA2DEAE73F83A5DD9FC35BADBEBC2E0C6AB18CBB05FC06 -7B967D6263051E960498B63BEA972BDEEB89650EFA809C88644E8E00ED119DAC -5AD530C519658A82AE9E17EEDE4B91FA83AA1A925F6C7E65119F8A397F11F50B -681E3A69AF664B9B6076E4A9033C3F391BC110289DB31DF9F326826F480B9F4A -D0147924421F1B5528F463E5D97FD84B06C9CC9A35EC2DAFEB9FE70C86C9B843 -6C60F79CA7F7A61B2E58B7C15752AFA82BF0F19F4EB7276D17109D975206FAD3 -A02CB0FE17FAB4AA9F8A649C84F1EE19E2F5026D2CB3847533D7ACA488D5A531 -3C95BC346E9C249E34A4 +2F2CF263C941F6D5BC6524B34672AA2E8F514803C1E8F55F2FCAB120298DC137 +431DFDAF370FBC83A23575A6579B29525D8BF0CC2AE0812E43BD6B5BC69540B2 +5088418937AAC195F0783FFD2BB3CE3C30667D26D416BB3E656EBE8C7F03EBAA +ADE01A21A0CCFA5AB8092737602739EBAA82AFC3506EDAFB0FB23DBF2518FE65 +7A2F3183416F0DADB058DECDC88B67FED4C606DEE67F7B20627A60CEFD6D247C +B45103F2A1F501B0975EAFF78A14AF74706C690795ADD723B440BBBA2BEE3DF6 +F9DB670C8592B2D55B5C9AAD4C98971F0BB8BF23D5EE9C3EA8AF1E1F8B1FE6B7 +5733603870C63C668D33FD66EB454921BD87A36BF21F6EA50F645309598F9A69 +BE403C51346A68C26B7A90533A1B54CB5CA33635308BE80E66DCBF679353C8B7 +B0F1B866D0638FD94EB0AB92020966A51BFC6BFA0FB1C4AEF975E1F034C54D4F +8186D2D6EA376758E3D9D0FBF6467E7D9A8BA2A1B404196514D687268F3EB325 +F223E60F2BB410D7D9A5882CC1ED8E73023426B6D339A174264647887E9FCCFD +44412756145226164EA5ED5B30818F17B7D86D4D6F2D1CFF6746034995DDFA6F +E185C74C4ACDA520446A14207A0334ACAB47E9E630B7F81D1088A502D8DEC537 +96D2902BA91E80C0BF60472411C584229B98CFEEE4747607E329C22E58701441 +186D4A5E5B31E3EC43BEF15137DEC88BD2C72D3AE066988079E9AF997FE66AC5 +DA922ECFFEC6813881363A7C98EA2FDF7DC976E8441A441C27D92EBE8FFBC28E +2AEB583BC4301D237013846FF4F1F6B5EBF72D6C6D889ECE9F55C625EFCEA99D +17290CE3303CC7661C822B972DC863AE61F0B3A73D656235F2B9B370B6FC1CD7 +2C51C8A34746868A81A595D785439151A528790CC6516FCF6C0F792E5CB451C3 +59AC12FF2367F9ABBCF6A0CA61CB50E0BEC451D74FD11A3EB97930B90E45D5D1 +931DB7614A8EC569F988C0F324123A4797646FD995A93CA3724E5A30192DEBD7 +A3F32D71F34DE70DF335EB29962C4E6EB065AC59E265D9198551AB627578A883 +11C644B2F7A4FE253385AE904F36CFAFCC09515E6026695656B097EF53A714CB +6D67ACE27D86EA29528031104BC0C7C657E3A189614C4C71CDB02AF8A3D1EE4A +8A882396A5A84E446BE3092C7C4C56A116A8C31874A63F1CCEB51CE7DB370979 +D18E1F9A8A2D809DA94F9069EFFA8CB9A58D45A6EB0E1C53443EC39A6180813F +DED570D79EE76A45019204250B5C7034A9E35D975DA24A139F190A7293FCDF2B +4262BF157059D1558E3AF6D710AC7121035998B6ECC0363B654422A3A68751BE +BF6862FF1A994A9ADA163D23F4ED2D7461F910F51CFD86FD471C752B686ACCB2 +083A6501514E4A9B7CA9EBDF434B47B8D164AAFEDAAEEDF82D500D41ACF6B47F +BDA773298C9FF511E8DE1A26E92A5607CFDD2A34CEA8551929CB4B6744882B09 +2ED6954069FB831AAA881B03476F369E00D8BC7292FADF493CAC21A878F8C167 +3BCE4BC24DC5C0A2B3213E10854F7D23BD05107C64BDB336F8878A571696FD3C +4A2E5418D59102D6F1D66E2FCD6B157586401D80ADE2CDE0796141C569120A68 +1AE2D0E06EEA6AEBAB56604CE46A5EB52C0B0F34EE7A1BC9E60B9B12071F1CF6 +7A23886A7B1A3933176B6D2F9F96B902DC900DC051B8C02A4C37DD5C2B0D32C7 +6936BD399B33BE511D16ED77CE8A973C0D7D9946F21336167484A7C8990F5AD3 +44E00963A8DDA72A35C4B017ED37A4D874B000649AE2AE9FC4265470A7DAE304 +99DCD05DCC2AB7A35FE07C1B50895028E45EF513CD43694E683827676A561C4A +B40F171DA97B93D735CC57FDFE23672132EFE594FC07968CFFD18056B46D37B3 +ACB4DD63AD987922E0CFAC1D88A283363E394B6F46C4E51BDEC9B55055E2918C +389D5DFA85741E2A1AFB3007DAB4AC711B18BB12E618E62B69F53944E5161864 +7A372245024254EAF66A0D2AB94DF1C7C0DEE22C6FA445085731347E480E7D0E +8D16B37757880E7B23A8F2D8CA3F1AA6D00D733ED5DF19B206C60B7680D2D423 +D445497B5FDDB06511533F88E686FD529A1A454AEF1844D67FCF08B4B1ED07C8 +2043A0D0A6935A232896F11AD08EAAEC6666BB828C6C2C208BE74B95F675A5FB +DF5A5AD3C90F096CEB6BEBAA82D56DB2096F3E3C778F173B19630681CFCE560D +C5AC8B35781D6F6DABD9ED6EF895AAEA7EC81EC327E4CB9E106EE07FFFD59019 +63B50155066DFFB53874D2A60F8F312FD68A43070954ACE11DF3D182D03D6784 +C5055498D670DBBDC35AABE825F605E82918D4992314D6D20E5FFB99A8755BBB +120BC62D8E168A08D79AC6AEABA87FE11DE5A83BD99A077518E6162036FA6381 +251EB7D94A61735DAE349E6363A9C30F2F399097BE0F684E1989333F8C88F304 +967DAACD36E7057FCADF61429C8260868AA786F92250CBE6F3D84766FC590267 +74EBAC7A909ECC8CFF68BE8BB4F697D86AAE5286A04D7B9FEA6812E682DFF090 +D43FC28ACE03B7D62EF750B442687F7F3257AD4CB1CAD613AD3D6A27B6444199 +1BEB37DC535DF91667B47182E0053C6560195D476AA2C370DCD0804EA85C457D +7A640C2E808B327CF62E6BAFB9A39660BE892F43F203331348361632CB0CF363 +16C587FD5F579B2A14A8E5D781DA5146B58E3DB9834EE1E0C172DDC00834C88C +D42F73672E67FC4418526E7430BE92D57F15247446DF6482CF0DAD40485521DF +3A4591743762B6C73051EC17164D0401D3517135E5B5E460F8614A1BD7A1C3E4 +CFCD9694FCFC3968676DEB42EB1987A489C711EA9ED493A20ACC389507F11E81 +FC931D4451EC5F897D159AE4D0E8B26AD1C64DCE2295C44AF44E57DE040D041C +A3D3B438C3C95B9213E1795AE52E605C693581A47D376EA6A0EA50F2B7F8093C +5950A8FF842225350BBAB27EF31AE5355D36DD07ACDC20776F4554A55558B784 +5C610C12055FAF049F8610655F5AC9A4D4E4D8D98F664325D90CB7B45C0C504A +96B1DD5EB57BF2E2CBF59A59145BB2A6CFC10448F98A6E31EFEDA339F125EC3E +05EE01B26AB28CD2096701F95BEEFA94D3C73598FC41A35FDEEC00A61DE9C3CD +B734BB2F977BE1E2A47196DD069A7CFDEE30E257CFCE90E5F31E2ED1AE832060 +B5DDBDD4F326B4498296399BD9504573788CCDA457CA814C026BD201B8FCDF6D +F938D66D68B489EF76B64BA853AC58122A0F1FFB4CBE1C6B30EEF44915B81EB4 +CF8F3B7F8EAC091A3652BD4013CF44AF62F9F5B9012487B4C549AFAF0463DA64 +5E5A2E29D7D2481179FFC83838727E0BF250178BBF8C26C5A6F5DE91CE52E36B +3A962587570EE36995C917287DAB4F10F086117C1A4D86DC83BEE163624EA023 +62E8584A47FB88ED06371F1AA5337BDAB4BD05194CBACE39A55AB4A130057264 +4284CA5CE508835E44D15FC40B551D4CD167A6781A5F5D784DE009C1883C9AF5 +007AFA69D819716C7929FEC1A0EFB64F872F9E683A89B4A7940380333353E36E +6B7CDD54534E034D8E2EE0134B81544892DC1C48001E5DB6CDDD7110B0AEEB90 +C91F1DF2E8C45A24685B6A46F3C61926EC51EBD4722993FC2572DB90CD753CE8 +22E3B93E8DE9FA444D0595180925EF6F4F889F31AF7EDE354AD2699543BBEE71 +797332A7A4F41382043E9FFE8B85998EA8AED71723859AF2970530DA6833159E +031482A238371811854BA394F90DE07241C1BBEBB55DC1441ABBC8524714E401 +49AD1E865799F93F4746A420195F681ABA9C761236C689154EA42F08776787E9 +440DA8E289A5C16DD637A71203E90CCB0A25791BDA7B12F2865AE7F436976550 +094B9D6F28C648041EDC5037840AB9DC00FA8C12000E78F636CC47E9A1AE0A19 +18061B6CF101E61AF8BFE4CB86D2EA0A07F870AA46EE945F814044A7D7AEB845 +BF84AC4712B0AF124730BDA95F46CE5663891C42B8899D4FBCFC1796D37F736E +406D0E27C3F088426FA2345EBFCB40378002D53B72CFE17AF0E3A7525BC89523 +D7106D711A6D2E18377C20FF9E6F4E23044B4CE9AF94B982D920C63D7DB86B09 +CF1AB5A77406A1E1518F40A1ACEFAC974E094B86D0D04FE5D7AD36DB6C42A9F7 +A2FA04B05DA0F2A6F5BC049C86C037C1E3095250F44D7783B11C1CC2D8D0DF15 +9E992B7C54863D709C6C8B4A9EA1E3697FB96FCC3AA52A4725BD821CF64D275F +9513276379CDE3CC80A917B83F955CCAC6B0CFD07534AD1A977AB61578A07BB1 +A0A106DF564A182F2291CE101A62FC5E2E7D94DD1B304909320EB07B30E3133C +3E1273EE0D1DA4F473EF9ECE97EFD485EE71F94A40C1210E8D095DA67D6C41AE +F68D519D151BF2AE17141077EAE0F8D5BCBC8AD1A65AF2204E7A477F5E10C5D0 +4F61F777175EE300340285CBF3FC164121AA430E24AE894B593D82765C33A050 +1C445E58B85BA3627457E3A197E94DC65E4C577B1A4FEFD78E33AA2AE7168C75 +BCA3387C3CDE43475F3F0D0798A543A34F0361B87E439B11E5D32EA52BDAFCE3 +C0AC9117D06AFE15374CB757F4F771336D985CF04BE834BA2E8092CBC640FB4F +78BAF4E81AE90661EACAE45A074F23DDFB3DB3E0D0D8F8D9EA929504193E7ABC +E413731FB7D0AEDCA0ABD5D951F5BEB901DC7F3CCD2D0E61B1D2A07B79071AA1 +61D5728F7865F34D6F30FBD4997A59BF993C8F7F6A4F0C4A515DE06C79425945 +98D7FCF7FE365C5656DF8C5FA1610660FDD6A19CE5982478F5453F1F1E079767 +727FEC7ACDBE50AEA9D05948804BE55FE0FC7F464A0BD1F099940C99E6ADC894 +C21B5672C7E50A440B388D5E4BB4E37976C5A1CA0399802F2EA7DAF60C61A6B8 +E279F842832B285BD0532412D8A1E272C0F64B2AE5D993428E36C4BF6ED24240 +467FF48457766C2F24CCA637C622B84C8B22308D5F4DA3A1C10C905FCB01DA2F +10D61FAA96622F03D5181850C1FD0209C6FA0951CFC38C67700F5AF1BBCAD623 +2E815110143D910C03E13643D9B287685AE13F4CAD0210896EC21F9791B3A313 +62F3A9E5E837D356E03EB26E0B58466760DA9287AFA33581927231965B76543B +BE7CBAE37C49ADD39692EA5A53939199B9ABFFDB0373A7B4D356A759B94C9D19 +9E6DF8AFFFEE69DD41D414DCDBA3C0C1548927C516BF025056930CA1EA7F12A9 +A42ED08324A53DCB96D043D3D6C71E49C140DA3C0EEEDBA89B4D1D20D0D4385F +17BCDE7660700CA6B95A3564A25E4274E59C72CE2CDB90B5306ADEA2768D5439 +52E1099A0957E41FAB5B65D0A70A457672BD7E3C2E00ECDA042D38D2398E3FB3 +66238157D749EFCA6BFAB70B0FFF39517049B3C508F6768F32C03DE2746D20A6 +FB7B039CD461207B1302BD71BD43F53768C564DB3F29A36447BE8F01F48AE503 +A6B9AE1AE673AE34C5A1C0E769495642C7AA2FA673FB741414E01EE2E8EBD04C +C1E0C7A875DE5BCB43A5588C7D4C64AC4EC028685D463A02A9F0606659F71898 +69272F6DAB3FDF573BC9833D055508BA1BEDA4D18452E95F2DC0138E4B96B54D +1892A69B2CBEFA8E3536DA3623FE9D23638CA5D656D007C43DBC3E022582D872 +FAAB422B7E834D0349ADA62E2D02467CCBFECF5B0B567D2610DBAD0E72BC4A9D +FB6B8E8BFDC60AFEB2AAD9D2971568AC5803F5CC487AF1125B9F918FE66B21FA +F20283F5FDA3FBD5C410283212D96BCD32FD6801B199BDDA5284ABA8424F5B71 +B4F48204FEE6E8E7BB1CB3A8901C747B6B7F169DEFF040FDCFF7BD950481EBDD +D26576055339E8E950874E08E49F8770E80B12942ED8B7B749626550C761DF70 +10284DF51E1BD4839A3238D60A4E981B1631F32D178838DEAA63E61BE1AE94DF +2989DB919CA4EE5E2EA5537323FBEC10E9D2E989DDAFECC37CB36B74E0393BAF +07ED8A19140C408BFACF41C0E2EC4982D32BCFB2671D36A1AD823BEF7DA8C97C +F553B680B797069D882AFBD0FDBB1BBC47B684B1582FE0D6C74E17ECCA4425F3 +7272D70973897879B7AD81966CD20BD13811E18F8706EA40E9DCE7D1788E0C16 +B56B72AD90F759AB9AEB4AD949E9588B452FEA29FCA2DA3C13E54EDFA9C6CE8E +65FA26D04133A56E85DC878923734478FFD08115C7061FAA277873DAA4D5026B +7DC761389538666C4ED3405B3FD657B7CE0534BABF6A3282B67B610C7CD46244 +AD3037AC1DEB04318861B64E681F355A123BB0ECD0AC34ABFE77C157354F7E22 +7FB4008BD6CFFC940392BC53FB751EC742A09B575FF0144AA758C29EAD8DF5FE +C14D9F32D0E26098B2268750028A5CB8773021DE6A53A71B1432903CFFF5834A +EA0596E85D11DB5B3581D6E990E2A97D6B5FB6DA2742230925083EA6A1151E6B +54C3A58253C4D27E9EA834F75860714087D03F06D022C1FCEAFEE102D755AB6A +CE0A5B64DD8499B0F8282237B52E2A8D3914EC53D471229C03ABCCF305F94BE7 +4B47DD210FEC8954C423937685B62CD589AFA801ECFACC8A47B46078D3C4CD6C +BF8632B90A006F0936FD942F4C275F5B334241B7949924E07859DB270BAD3BFE +C86FD3C8C157BC1802417EFA5AEC67C67729F460DCF50F40AEFF262C92DD3C46 +D12D08307B95233C096B0ABFCA115414EBE051FEBC3E9CF4A3A6F229C8422B24 +AA3E82DD2DE9E9DAD9858102A52DE68B800169831D87FABEA4351369D5CC78EC +B6E1607416DBACAEADE82819EE220BF346409B73DAAAF345DABB73D4BA008B94 +767DF352C52B7644BBB936B905ABCCFAAA2928DE21518BD973B2CB71408FB7AD +36620ED9D54158B5BD477DCBA04CF0B42A796F879340C4736A6C9912EAAFA9C8 +9F4B4FA517CD67FE0AD33525D6FE14374AA136D9BBF462C65599080220D01935 +DF941F1757AD4EA3F587F84276C2FBC610481A551D5625E2B3422C272C90A0FA +229BC37D06D40A8218CBE487021C74FE8834C0896AAFA3A1095666EA299BBA9A +DE77DF2E1CC2270169479DF9A1DAA5ADABA829261801BCFA556AE13D97D87E29 +39A35956938B17ABC005933AD3FEED156DDBE391935BA54E62B374BA08471153 +6445AF692BDA89EBE9A10609073086DC0CAF5536A273ED6084FFA474A54DBFB8 +BFC7C507A4F5807016E4429C45C2F4B70FD6C099F9844E9642AB1287E499F66E +7DF53620EEA49B83F564BF0B46E53C633A26361D307B040D7B34A7594C12EF8D +D76A4213F29D44AA1F7682F09A924C7722EAB9DD0B7C141BA9B017134A7A9548 +1C5F9C88427389C5FD09ABC2EB06B8A6E030140F3A02B59B6DAF7FD48653BB75 +E16CFFEB450C18029F08014BF0905E4AA76AD913F29C101735C5A5BB2A501181 +7BFEA9A8025ACD6F5EAECD826B4FA3B3A33C44D866AB06C3CF5C82C3D68259C6 +BEFDC662E24D634462654016BAFA72CB74CDA3715FC979BB24A043D6B2707F9F +E040CE5571105F904470360EC37F73541B528EB5BB52BAB9296B5DF1418404F1 +649FBCE2505038BED3C59C2EDD762CB5FBC7FA86E07C529A0B48BF7034860C8C +B5A144BD668E852DE553E989D7B71EF8C53F107F375AA55B61CBC9AF872F8421 +E21ACF007026DBB7F3BB1A5DA00FEDBD9661071DDAAB1D56DC3AD03A35DF9255 +EA2C492AEE4A39A3EFE798EAD76FD29DBFDB088B620BB0401C6B5667FEBBB8C6 +0E9DD8E1DCCBCF346B583A704D166B079140C4E7871449A16F65B8FC21FEC40F +E7BF9D9D0207A2DBB387FD8BD3A7B7246FF612C721CDC52D7D41426F3FB0EDDB +A937C38A339E3E83B2A5F300E4029F4F2845D11BEC33006716FDEFAF356CC981 +1DC615967B2F39FA17E8B632E0D738E869692658A550139B906CD8FF8DAAA906 +BBD7C48B6B9C12B40660248E3ABBE9F651D2E3E8888DC8CA0E706176EA4F63B6 +3EE4C5589C70ED426780F28A94C80EC697D1E082F46F3FF34EB670C2D3347F88 +A4D6399156D9A937B9DBBC40F6BB6B576D13E5D5462CFF7967E10A39FDF4F41E +8845E579AC534DF0764E0F403B28CC95A8DF92DCE1E90F17582377A5E39A5212 +2A0D2FEED125C900AB4ADA0061D874ACC5AE2B275EE15233AD5D8CF63FB3F38A +61C09E3F0AC1D5BF4DDA585FA65B115C01E1BF7EBB1018CA3387C8ACC981067B +83B74721D032340CCCE396B12FF61FB9EB44E3DE962C14659EC2AE7E20333A84 +9C16F2F115A340C9935D42D14A2FFF11B25C46FC93A09C4470A102ABC21DEB32 +280E91A9AEF2627CDFA6B1824F75B87713883D4881D452B5B4A7D0118D4EBD2A +616B8DFDED3047714F179E558F783FF5B190D8CD3ECABD9499BA020F0BCE19AF +8CE61FD7B87578F1FD471D5DFD21A019B0E810BCB90D3EDE346E0AE3E50283EB +BFF5D5B1AA8BD456AC552641D97276E1E7F335FF66372C39D2401D129C5AE204 +0851B5E2F8C322CEB29C19EF05602AD0D5FC2F8FBA0AC7E2B647C088A1F301CE +2B9646EC5E35B496758777972480C9332F36AE3B8AB6286E1414912B7F914932 +E2B5A293BE734C3052BD7BE8C44BF59ACD5D3A550AA70DC610A7BA4C8F210E50 +C257FC5773CF186D18E63F926618763DBA7C24F99B60AFD4D1B0FA6250540FEC +CADED9AFFEEDDCF914456559FFD61E175244606CF311AB9C1547A41B7672596F +960C00B0ACDE1E14B0DF3619A4B49E052EEA1A6E81FC5DCC40D783155FBFCDA1 +CB2D4B5C61E421F77BF0C207B504B9F4AA495409182468598D773D2C04739C8A +72050916EBADAA311CE4C29BB3873C27295A46D7011537576F4EE669541A1C8C +993F8BB33B5E6F16447B76525012F15B49FAE4D3E4999797F7949304F8BD08ED +59995346BCC901EE3FF11C8802A52F28F66F7DC908810B31EA29C26B50A519EA +5084113D938378906DA5989C65ED2572C491C953AE9A36D60C3ACE819C870A70 +56EFF71C92E6B08D5B39BAA48C13C6F68D172BF14E9AC911150272AD517F7547 +92F51675047591D4EAE640CA3FBF009A127722F7FD083D89DE04977CA986886E +83E7F4C2504BFE4A2F2619FAFBC7B849B30A354FC8089926B468501B8E71113F +33CD7791E7AF6885F9F795CD3DEB888940D6CD536BC51418AB1F8EE52FD9A84C +63DFA7DE8EEC74F136130494E6ABF7D1DC9A9E8968622804C39D7FBAE2075C35 +D78FC0E669CFC162975D4B8DFD7481F40BB44BC57B1844D0B59994DCFCAE8F7B +31C88416EE6D3764BBF15FDF39AD40DE82A641D5C8206B403F6C5504DE224341 +E8305367901F0E34CBFCA9948C6A897ED66F3402A988B25D7D5FB949D31B7E68 +19F1D6D4622AEB139BD718E4931BC1A128EFA2477568C5D4EB01C27804CBE74E +2B0D5362499A3B6EF7484A2FEF7479A15E712855BED59E92A62C97C580FE2C1E +7CBD35802A3D8BB170D3C97B46CC632B8EACF44ED53E114D0730038987973776 +37773179395A784B86FE9EDDD38C1009502FB403A6DFF6CEDF5D3BD338C958CF +4B85E3EE63D7233AA1CCEFA4E6F7D6EDA7B18D6242BFD605747BBC10EE0B38B2 +94E4694FEA3DF6B7C5E5B79F3B2D1CAC242842E6F9D33F2610CBED9015F2BD81 +EAE29A9A2904837617A13A16483AA14FBCABD16D469A20CE3D04CDA52B094DDB +D2486B3B2496A84FDCD8E80EC0A8A5641F4B32C4BD8EBB430D2ED927BDAF8017 +34A339CD48B5EDC20CDFF536A149FF65E8E77CB3EE7946A92C53CDC4CE9EA097 +6CC28E1EE2D52C8FDDEE2F02019C522ECB6668C14ACC3E5DF4FABC300526C6DB +0855A79FC44C7DED773D18886CAB73A2F2ACED5223D766612B5D263DD57EEB06 +865324E10AAF90B424A05EC6682FAE8917431E6597B4E1B88D5D131CAA714F2D +16BDC6F72D50C024AC07E5D0A8DB997B437CC47E921146C2233002F7A94BFFE3 +7C912996476D41E4273D266F9BD0D6115EA15C1E1985FB17B4425B7B339EC81F +23A3A66FBBE2DF4CA9CB21916EBA0165FDE10B4D7EA4BB8336EF343CC91D4A8F +7636B292F29DB1B0CE86468C487307785C584BAF4446B14636AE3AD37C67D675 +B6517CBEC34A4B62B2A8B3344221180055717290A8534C72628AD81A3A9D727B +80F52FFFCD2C719002D47499FB9BE38512B37CFE25AA80DBCC05DEDC4EC948DA +1E88CA822FCBAF8980D4BB740373821B2E70A21582A44CD1D543B39C9DD1E037 +DF79B9C17E11972D2676BE689DBC327DE8F579047AC9B721CC1653D912D21D43 +7EB4E52DC5819BD0FD03F864E89237B0D40206F009504831F2F40FBA2C4F4A9E +71B9953A8D6C654B4C3A92F22EB42D6D8E88A604F8DE9EE2ACE678513B8714CE +2A1762708C9EBC9A0B22E159BCFC4F16F72FF3FB41C5724D76AC1AB39F59C1B4 +B3407C681CD1435DA5C4E44700A4B12A247959F57F09DD57D03FEC922EC47272 +10EA80225C369E48586367DA5DB93748920C564F8CF96EF79C2D327B435AB31A +F68AAD8690864979B8224BE14FD84DB532837760AEC3179F423C23A2EBCE6362 +B21638DF9EFD7173C3D78D51EA560864E14F48A248FD5B532BD638BF719496F1 +48AE24A2ACAB2BBA942E2CD266F7FBC0568098C4EDAD62CA09434277F6F4B328 +97D974E4F40335115B70115F589FAFEB02EC71CA5B6B02B64AD906B2F0F691CF +4E3A7D1363AC1E0EE88D2DC700CB7782119D82ADC61222046D73B2A12EF635CF +0E24BABEDAD302D88BA598E8250861C41BCCE21E3A95B08183E56AB6C94AB422 +621DBA42ECF736B96A5EF45C34BC56427B8082FF8EA173BEBE0C348D0A2C1AE1 +4C40D031C30DAAC920937CD8679DCFF60C951E894E32CECDD8252B8259FDCEED +3C7386CCBBFC35568F5495E4CE1182ACAD245E67B1E53EAC8589A9489428CACB +3341F99743C4D81D9550CDCF4E2FB53B475426CC81B68F3D5BCBCF16986302B6 +DE01B3E0E6E1F9A1F605F51E29E0953AE7352964B43EDB112EC4282C8381C212 +02BE2E8EAB757198C146E5D1FF75F727D43AAF41BC6BAC8B9373AEF03996F7DE +6C60429B61B83190298F5E4E0233B33696AC30CC7D4186EC95E5006911C93E17 +A6283A9D76DAE5F32DB37344307EEE29ECC3DCF09E26DD93034CCE4141C1346F +B8686F25E57C67F7B9ACD41757364E8B656B0D2539C2991F2E5CD4913BAF426A +0A8D8602AD092E48764D4337223D5AD4D5EDC4E9474EC4A79E5F8D8D55396EBC +BA4A7317B54F9B9628C1C7A889B359CBB5691948E762FD406558E448F5080089 +8463475FCF5E50A97919AC5EB8A08815EA1FE0FC1A47C545E749DD85C735A0FC +8FEAFFFBDD1F3BA3382010756510EF1A3D310AAA8BE9ECF9B3FA49F0D2B73502 +E8F6D60035DFD9AE3AAD5632E7D4D332B0CF27B2A5051947D62EDD2598E9BDED +FC71D76746B11AD54204119BEECB72500F66ECB7F9EABD3DD88B27476F9FA6F4 +9B4CFED9C1A84681B03B5A3EC2D3098ED38F2EFE93D5172F21888CF7ED9999B0 +65DDB28DE5DB69BFB81881208D951700D029778111884BF70FEBF3A348B4A5DF +D4472C7EA45F027DF31B9923BBCF68FC6D42F89E780B05B8EE384F6FC9FB5EA9 +1C0BF43600E9C51004C58E7C6AFF658270DDD9BB2A6E7BC4AA3EC6D56917B276 +E824238085DB57FF709C890DF1767127A6F38074F955F24EE9824AA56654E0B3 +AC2849D8053DEE50984750B885F376B344170CC3C56B2F146FB0C785B4F4BBB5 +0E324CF3840DB9DE988E5BC5874CE59FDBD0BA494CF9013AE9818F8348723DAF +4A768813E9380447CEC2815A32E2044E7679E9031B489F1FB6935FD9F6B1E235 +5A44AD6D46B88C25BCE2DD1579C5CA7D702487361222DD9D8DD2B96DECC8D1F7 +2DEA85F8606394E9DB1C413B91297EEA29E46C4298FE51221976C5A5B0D9C43F +2C08535C7F49E3225BD89D859FB7FEC4FE29FF531035D7F1BC15928AE535E414 +37EC6A3E2D862A0E819F517A0E7D419679E302D112DF5822402A2DCFABA7BF50 +71D21B15B7E12D543992D1A6C83B76FA19CD64ECAB2704A063D74D9D512B0DC7 +E6B6FBEC7859E283EA3FE396B2BC1A17E8370A65F2A8E1B5DDD96659051A65BE +4517ACDE751CDEA75DFED139F9151DC208487575B83385B1429527703D671144 +156B906DCA4CF416CB592B3187E35DAA04F793BA32045BE0438D687C98EFD5A7 +82A5EE014ECE289BE9CEE29B4A3B7B44F0CD9C64849136705A775FF183B5B6EE +102265FA44CC976155C3A0DBEA416ACE591D86C04D70A2E9EB20A288F93B9E40 +891B6A794C68B0AFB9D34665B51FEB52B6D049C8700E1C622DBC6A20948FB8EF +2C6D8AA266C29802F712172055ABB9C3DBE02CA698FC66E015AAD7FF09C2674D +AD4DE23D1CC794A8052BC235648E0E4D2D23A9A2AA5B36A116FACD1216704855 +D0B004DE763CC85245372C555D14E52CF0F84AFECA601F7071C2A72715B11C1C +18BBBD2679DE8B3D7CC05B7391E22E64EBB20800464D2EACF37FE6ACABEB5CF0 +E0BEEABABAC9EAECED1D0015EC93EC3DA8E55FE35D393E6F98C7EE861AA29E63 +4CD536296EB8EDE8B3981A8C13CF0CF08504FDB38DC00C98D8E70072944E2099 +1A1E7FE0585DF32DD336E57A7CF20F7518A64A408955ED92828CEF3998E91F1B +935FCAF14B2F5E6037E199EE276AECD5E419838E984F98AA715D9CC3AB7CD27D +9875CA787F92E07649FE979F0EF9C111A28660034E5E21DB087A413F97F5F1E4 +B2CD771AD846F134BDB38DAC28DEBFE4947FEEFCEBB87CA5B82C5DEEF49B959A +E6CBE43402847A824D64BB22CA8DFEDFB72F23C55CF7C57D157A6ABBB4211973 +54FEB121E0E0833908959E1D39C7E2A51965081158A4F88936CD27E201BA09EC +B4002C6D246B2BDB14440465A55994330381E3E86CAEB06045B92A12482656D9 +A0287CBF975039E810C1945C5EB1CD9DC31823CA125071CE4C2B7DDC1936C33C +C681A518244F6AAC82BCB22A1F220894EB24E8A974AFF9050EE3F4A1B320523A +7F095B60D2256E4521CF3FC0A4D90F13A376D32216178D98ACAE185F0B0FF401 +BA10DAAA0B6F99F72DDC08D4272C70CFE48ADFD443DA7542FA0782E68D5259A3 +862139A5B4C1E878D8C9F5F200B2F422384056329D8D795163F5EAD318E7C522 +8ECF83FF72776DE6B1EE7095FB101F38E5154BFDDCBEE89CFD1F9A393BBAA13E +20BEA2F8CF709E99D17469D2E6C34187F8403071288243605215E4177AC5AE86 +E336934B8EA1820046 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -5202,8 +5213,8 @@ rf /Fj 133[55 65 65 1[65 68 48 48 50 1[68 61 68 102 34 2[34 68 61 37 56 68 55 68 60 9[127 3[68 5[116 74 2[46 96 1[77 81 94 2[93 9[61 61 61 61 61 61 61 2[34 33[68 12[{}41 109.091 /CMBX12 rf /Fk 134[48 48 66 48 51 35 -36 36 48 51 45 51 76 25 2[25 51 45 28 40 51 40 51 45 -3[25 1[25 40[45 45 6[45 29[51 53 11[{}30 90.9091 /CMSL10 +36 36 48 51 45 51 76 25 48 1[25 51 45 28 40 51 40 51 +45 3[25 1[25 40[45 45 6[45 29[51 53 11[{}31 90.9091 /CMSL10 rf /Fl 138[56 1[42 4[56 4[27 1[58 3[54 1[56 97[{}7 90.9091 /CMCSC10 rf /Fm 134[85 85 117 85 90 63 64 66 1[90 81 90 134 45 2[45 90 81 49 74 90 72 90 78 10[122 124 112 @@ -5240,30 +5251,29 @@ ifelse %%EndSetup %%Page: 1 1 TeXDict begin 1 0 bop 150 1318 a Fr(GNU)65 b(History)h(Library)p -150 1418 3600 34 v 1920 1515 a Fq(Edition)31 b(8.2,)h(for)e -Fp(History)e(Library)h Fq(V)-8 b(ersion)31 b(8.2.)3118 -1623 y(Septem)m(b)s(er)f(2022)150 4927 y Fo(Chet)45 b(Ramey)-11 +150 1418 3600 34 v 1920 1515 a Fq(Edition)31 b(8.3,)h(for)e +Fp(History)e(Library)h Fq(V)-8 b(ersion)31 b(8.3.)3218 +1623 y(Jan)m(uary)f(2024)150 4927 y Fo(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F) -11 b(oundation)p 150 5141 3600 17 v eop end %%Page: 2 2 -TeXDict begin 2 1 bop 150 4413 a Fq(This)43 b(do)s(cumen)m(t)g(describ) -s(es)g(the)h(GNU)g(History)h(library)e(\(v)m(ersion)h(8.2,)49 -b(19)44 b(Septem)m(b)s(er)f(2022\),)50 b(a)150 4523 y(programming)32 -b(to)s(ol)h(that)f(pro)m(vides)g(a)h(consisten)m(t)g(user)e(in)m -(terface)j(for)d(recalling)j(lines)e(of)g(previously)150 -4633 y(t)m(yp)s(ed)e(input.)150 4767 y(Cop)m(yrigh)m(t)602 -4764 y(c)577 4767 y Fn(\015)g Fq(1988{2022)35 b(F)-8 -b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390 -4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8 -b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s(cumen)m(t)f -(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8 -b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26 -b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)390 5121 y(published)43 -b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8 -b(oundation;)53 b(with)44 b(no)g(In)m(v)-5 b(arian)m(t)46 -b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er)31 -b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8 +TeXDict begin 2 1 bop 150 4413 a Fq(This)35 b(do)s(cumen)m(t)h(describ) +s(es)f(the)h(GNU)g(History)h(library)e(\(v)m(ersion)i(8.3,)h(19)f(Jan)m +(uary)e(2024\),)40 b(a)c(pro-)150 4523 y(gramming)23 +b(to)s(ol)g(that)g(pro)m(vides)f(a)h(consisten)m(t)h(user)d(in)m +(terface)j(for)e(recalling)i(lines)f(of)f(previously)g(t)m(yp)s(ed)150 +4633 y(input.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577 +4767 y Fn(\015)30 b Fq(1988{2023)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h +(F)-8 b(oundation,)31 b(Inc.)390 4902 y(P)m(ermission)21 +b(is)f(gran)m(ted)h(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s +(dify)e(this)i(do)s(cumen)m(t)f(under)f(the)390 5011 +y(terms)25 b(of)h(the)f(GNU)h(F)-8 b(ree)27 b(Do)s(cumen)m(tation)g +(License,)g(V)-8 b(ersion)26 b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion) +390 5121 y(published)43 b(b)m(y)h(the)h(F)-8 b(ree)46 +b(Soft)m(w)m(are)g(F)-8 b(oundation;)53 b(with)44 b(no)g(In)m(v)-5 +b(arian)m(t)46 b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er) +31 b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts.)41 b(A)29 b(cop)m(y)h(of)f(the)g(license)h(is)f(included)390 5340 y(in)h(the)h(section)g(en)m(titled)h(\\GNU)f(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License".)p eop end @@ -5272,182 +5282,206 @@ TeXDict begin -1 2 bop 3725 -116 a Fq(i)150 299 y Fm(T)-13 b(able)53 b(of)h(Con)l(ten)l(ts)p eop end %%Page: 1 4 TeXDict begin 1 3 bop 3705 -116 a Fq(1)150 299 y Fm(1)80 -b(Using)53 b(History)g(In)l(teractiv)l(ely)150 502 y +b(Using)53 b(History)g(In)l(teractiv)l(ely)150 539 y Fq(This)42 b(c)m(hapter)h(describ)s(es)f(ho)m(w)g(to)h(use)g(the)f Fl(gnu)h Fq(History)g(Library)e(in)m(teractiv)m(ely)-8 -b(,)50 b(from)42 b(a)h(user's)150 612 y(standp)s(oin)m(t.)76 +b(,)50 b(from)42 b(a)h(user's)150 649 y(standp)s(oin)m(t.)76 b(It)42 b(should)f(b)s(e)h(considered)g(a)g(user's)g(guide.)76 b(F)-8 b(or)43 b(information)f(on)g(using)g(the)g Fl(gnu)150 -721 y Fq(History)36 b(Library)e(in)h(y)m(our)f(o)m(wn)i(programs,)g +758 y Fq(History)36 b(Library)e(in)h(y)m(our)f(o)m(wn)i(programs,)g (see)f(Chapter)g(2)g([Programming)g(with)g(GNU)h(History],)150 -831 y(page)31 b(4.)150 1059 y Fo(1.1)68 b(History)46 -b(Expansion)150 1219 y Fq(The)f(History)h(library)e(pro)m(vides)i(a)f +868 y(page)31 b(4.)150 1111 y Fo(1.1)68 b(History)46 +b(Expansion)150 1271 y Fq(The)f(History)h(library)e(pro)m(vides)i(a)f (history)g(expansion)g(feature)h(that)g(is)f(similar)h(to)g(the)f -(history)150 1328 y(expansion)g(pro)m(vided)f(b)m(y)h +(history)150 1380 y(expansion)g(pro)m(vided)f(b)m(y)h Fp(csh)p Fq(.)83 b(This)44 b(section)i(describ)s(es)e(the)h(syn)m(tax)h -(used)e(to)i(manipulate)f(the)150 1438 y(history)30 b(information.)275 -1566 y(History)h(expansions)f(in)m(tro)s(duce)g(w)m(ords)g(from)g(the)h +(used)e(to)i(manipulate)f(the)150 1490 y(history)30 b(information.)275 +1626 y(History)h(expansions)f(in)m(tro)s(duce)g(w)m(ords)g(from)g(the)h (history)f(list)h(in)m(to)g(the)g(input)f(stream,)h(making)150 -1676 y(it)g(easy)g(to)g(rep)s(eat)g(commands,)f(insert)g(the)h(argumen) +1736 y(it)g(easy)g(to)g(rep)s(eat)g(commands,)f(insert)g(the)h(argumen) m(ts)f(to)h(a)g(previous)f(command)g(in)m(to)i(the)e(curren)m(t)150 -1785 y(input)f(line,)i(or)g(\014x)f(errors)f(in)h(previous)g(commands)g -(quic)m(kly)-8 b(.)275 1914 y(History)37 b(expansion)f(tak)m(es)i +1846 y(input)f(line,)i(or)g(\014x)f(errors)f(in)h(previous)g(commands)g +(quic)m(kly)-8 b(.)275 1982 y(History)37 b(expansion)f(tak)m(es)i (place)g(in)e(t)m(w)m(o)i(parts.)59 b(The)36 b(\014rst)g(is)h(to)g -(determine)g(whic)m(h)f(line)h(from)150 2023 y(the)42 -b(history)f(list)h(should)e(b)s(e)h(used)f(during)g(substitution.)74 -b(The)40 b(second)i(is)f(to)h(select)h(p)s(ortions)e(of)150 -2133 y(that)31 b(line)g(for)f(inclusion)h(in)m(to)g(the)g(curren)m(t)f -(one.)42 b(The)30 b(line)h(selected)h(from)e(the)h(history)f(is)h -(called)h(the)150 2242 y Fk(ev)m(en)m(t)p Fq(,)e(and)c(the)i(p)s -(ortions)e(of)i(that)f(line)h(that)g(are)f(acted)i(up)s(on)c(are)j -(called)g Fk(w)m(ords)p Fq(.)39 b(V)-8 b(arious)28 b -Fk(mo)s(di\014ers)150 2352 y Fq(are)33 b(a)m(v)-5 b(ailable)36 -b(to)d(manipulate)h(the)f(selected)h(w)m(ords.)48 b(The)32 -b(line)i(is)f(brok)m(en)f(in)m(to)i(w)m(ords)f(in)f(the)i(same)150 -2461 y(fashion)23 b(that)g(Bash)g(do)s(es,)h(so)f(that)h(sev)m(eral)g -(w)m(ords)e(surrounded)e(b)m(y)j(quotes)g(are)g(considered)g(one)g(w)m -(ord.)150 2571 y(History)37 b(expansions)g(are)g(in)m(tro)s(duced)f(b)m -(y)h(the)g(app)s(earance)g(of)g(the)g(history)f(expansion)h(c)m -(haracter,)150 2681 y(whic)m(h)30 b(is)h(`)p Fp(!)p Fq(')f(b)m(y)g -(default.)275 2809 y(History)c(expansion)g(implemen)m(ts)h(shell-lik)m +(determine)g(whic)m(h)f(line)h(from)150 2092 y(the)29 +b(history)g(list)g(should)f(b)s(e)g(used)g(during)g(substitution.)40 +b(The)28 b(second)h(is)g(to)h(select)g(p)s(ortions)e(of)h(that)150 +2201 y(line)i(for)f(inclusion)g(in)m(to)h(the)g(curren)m(t)f(one.)275 +2338 y(The)f(line)i(selected)h(from)e(the)h(history)f(is)g(called)i +(the)f Fk(ev)m(en)m(t)p Fq(,)h(and)e(the)g(p)s(ortions)g(of)h(that)g +(line)f(that)150 2447 y(are)37 b(acted)g(up)s(on)e(are)i(called)h +Fk(w)m(ords)p Fq(.)58 b(The)36 b(line)h(is)f(brok)m(en)g(in)m(to)i(w)m +(ords)e(in)g(the)g(same)h(fashion)f(that)150 2557 y(Bash)28 +b(do)s(es,)g(so)g(that)h(sev)m(eral)g(w)m(ords)e(surrounded)e(b)m(y)j +(quotes)h(are)f(considered)f(one)i(w)m(ord.)39 b(The)27 +b Fk(ev)m(en)m(t)150 2667 y(designator)33 b Fq(selects)27 +b(the)e(ev)m(en)m(t,)k(the)c(optional)i Fk(w)m(ord)e(designator)33 +b Fq(selects)27 b(w)m(ords)e(from)g(the)g(ev)m(en)m(t,)k(and)150 +2776 y(v)-5 b(arious)30 b(optional)i Fk(mo)s(di\014ers)h +Fq(are)e(a)m(v)-5 b(ailable)32 b(to)f(manipulate)g(the)g(selected)h(w)m +(ords.)275 2913 y(History)26 b(expansions)f(are)h(in)m(tro)s(duced)f(b) +m(y)g(the)g(app)s(earance)h(of)g(the)f(history)h(expansion)f(c)m +(haracter,)150 3022 y(whic)m(h)31 b(is)g(`)p Fp(!)p Fq(')h(b)m(y)f +(default.)43 b(History)32 b(expansions)f(ma)m(y)g(app)s(ear)g(an)m +(ywhere)g(in)g(the)g(input,)g(but)g(do)g(not)150 3132 +y(nest.)275 3268 y(History)26 b(expansion)g(implemen)m(ts)h(shell-lik)m (e)h(quoting)f(con)m(v)m(en)m(tions:)40 b(a)27 b(bac)m(kslash)g(can)f -(b)s(e)g(used)f(to)150 2919 y(remo)m(v)m(e)h(the)e(sp)s(ecial)g +(b)s(e)g(used)f(to)150 3378 y(remo)m(v)m(e)h(the)e(sp)s(ecial)g (handling)g(for)g(the)g(next)g(c)m(haracter;)k(single)d(quotes)g -(enclose)g(v)m(erbatim)g(sequences)150 3028 y(of)k(c)m(haracters,)i +(enclose)g(v)m(erbatim)g(sequences)150 3487 y(of)k(c)m(haracters,)i (and)e(can)g(b)s(e)g(used)f(to)i(inhibit)f(history)g(expansion;)g(and)g -(c)m(haracters)i(enclosed)e(within)150 3138 y(double)h(quotes)i(ma)m(y) +(c)m(haracters)i(enclosed)e(within)150 3597 y(double)h(quotes)i(ma)m(y) f(b)s(e)f(sub)5 b(ject)31 b(to)h(history)f(expansion,)g(since)g(bac)m -(kslash)g(can)h(escap)s(e)f(the)g(history)150 3247 y(expansion)e(c)m +(kslash)g(can)h(escap)s(e)f(the)g(history)150 3707 y(expansion)e(c)m (haracter,)j(but)d(single)h(quotes)g(ma)m(y)h(not,)f(since)g(they)g -(are)g(not)f(treated)i(sp)s(ecially)f(within)150 3357 -y(double)g(quotes.)150 3544 y Fj(1.1.1)63 b(Ev)m(en)m(t)39 -b(Designators)150 3691 y Fq(An)32 b(ev)m(en)m(t)j(designator)e(is)g(a)g -(reference)g(to)h(a)f(command)f(line)h(en)m(try)g(in)g(the)g(history)g -(list.)48 b(Unless)33 b(the)150 3800 y(reference)e(is)f(absolute,)i(ev) -m(en)m(ts)f(are)g(relativ)m(e)i(to)e(the)f(curren)m(t)g(p)s(osition)h -(in)f(the)h(history)f(list.)150 3947 y Fp(!)432 b Fq(Start)34 -b(a)f(history)h(substitution,)g(except)g(when)f(follo)m(w)m(ed)i(b)m(y) -e(a)h(space,)h(tab,)f(the)g(end)f(of)630 4057 y(the)e(line,)g(or)f(`)p -Fp(=)p Fq('.)150 4204 y Fp(!)p Fi(n)384 b Fq(Refer)30 -b(to)i(command)e(line)g Fk(n)p Fq(.)150 4351 y Fp(!-)p -Fi(n)336 b Fq(Refer)30 b(to)i(the)e(command)g Fk(n)g -Fq(lines)h(bac)m(k.)150 4498 y Fp(!!)384 b Fq(Refer)30 -b(to)i(the)e(previous)g(command.)40 b(This)30 b(is)g(a)h(synon)m(ym)f -(for)g(`)p Fp(!-1)p Fq('.)150 4645 y Fp(!)p Fi(string)144 -b Fq(Refer)25 b(to)h(the)f(most)h(recen)m(t)g(command)f(preceding)g -(the)g(curren)m(t)g(p)s(osition)g(in)g(the)g(history)630 -4755 y(list)31 b(starting)g(with)f Fk(string)p Fq(.)150 -4902 y Fp(!?)p Fi(string)p Fp([?])630 5011 y Fq(Refer)25 -b(to)h(the)f(most)h(recen)m(t)g(command)f(preceding)g(the)g(curren)m(t) -g(p)s(osition)g(in)g(the)g(history)630 5121 y(list)32 -b(con)m(taining)i Fk(string)p Fq(.)45 b(The)31 b(trailing)i(`)p -Fp(?)p Fq(')f(ma)m(y)g(b)s(e)f(omitted)i(if)f(the)g Fk(string)39 -b Fq(is)32 b(follo)m(w)m(ed)630 5230 y(immediately)f(b)m(y)e(a)h -(newline.)40 b(If)29 b Fk(string)38 b Fq(is)29 b(missing,)h(the)g -(string)f(from)g(the)h(most)g(recen)m(t)630 5340 y(searc)m(h)h(is)f -(used;)g(it)h(is)g(an)f(error)g(if)g(there)h(is)f(no)g(previous)g -(searc)m(h)h(string.)p eop end +(are)g(not)f(treated)i(sp)s(ecially)f(within)150 3816 +y(double)g(quotes.)275 3953 y(There)25 b(is)h(a)h(sp)s(ecial)f +(abbreviation)h(for)f(substitution,)g(activ)m(e)j(when)c(the)h +Fk(quic)m(k)h(substitution)e Fq(c)m(har-)150 4062 y(acter)k(\(default)f +(`)p Fp(^)p Fq('\))h(is)f(the)g(\014rst)f(c)m(haracter)i(on)f(the)g +(line.)40 b(It)28 b(selects)h(the)f(previous)g(history)g(list)g(en)m +(try)-8 b(,)150 4172 y(using)34 b(an)g(ev)m(en)m(t)h(designator)g +(equiv)-5 b(alen)m(t)36 b(to)f Fp(!!)p Fq(,)f(and)g(substitutes)g(one)g +(string)g(for)g(another)h(in)e(that)150 4281 y(line.)43 +b(It)31 b(is)g(describ)s(ed)e(b)s(elo)m(w)i(\(see)h(Section)g(1.1.1)h +([Ev)m(en)m(t)f(Designators],)h(page)f(1\).)43 b(This)30 +b(is)h(the)g(only)150 4391 y(history)f(expansion)h(that)g(do)s(es)f +(not)g(b)s(egin)g(with)g(the)h(history)f(expansion)g(c)m(haracter.)150 +4592 y Fj(1.1.1)63 b(Ev)m(en)m(t)39 b(Designators)150 +4739 y Fq(An)32 b(ev)m(en)m(t)j(designator)e(is)g(a)g(reference)g(to)h +(a)f(command)f(line)h(en)m(try)g(in)g(the)g(history)g(list.)48 +b(Unless)33 b(the)150 4849 y(reference)40 b(is)f(absolute,)k(ev)m(en)m +(ts)e(are)f(relativ)m(e)i(to)e(the)g(curren)m(t)f(p)s(osition)g(in)h +(the)f(history)h(list.)68 b(The)150 4958 y(ev)m(en)m(t)35 +b(designator)f(consists)g(of)g(the)g(p)s(ortion)f(of)g(the)h(w)m(ord)f +(b)s(eginning)g(with)g(the)h(history)f(expansion)150 +5068 y(c)m(haracter,)f(and)e(ending)g(with)g(the)h(w)m(ord)f +(designator)h(if)f(one)h(is)f(presen)m(t,)h(or)f(the)h(end)e(of)i(the)g +(w)m(ord.)150 5230 y Fp(!)432 b Fq(Start)34 b(a)f(history)h +(substitution,)g(except)g(when)f(follo)m(w)m(ed)i(b)m(y)e(a)h(space,)h +(tab,)f(the)g(end)f(of)630 5340 y(the)e(line,)g(or)f(`)p +Fp(=)p Fq('.)p eop end %%Page: 2 5 TeXDict begin 2 4 bop 150 -116 a Fq(Chapter)30 b(1:)41 b(Using)30 b(History)h(In)m(teractiv)m(ely)2016 b(2)150 -299 y Fp(^)p Fi(string1)p Fp(^)p Fi(string2)p Fp(^)630 -408 y Fq(Quic)m(k)32 b(Substitution.)44 b(Rep)s(eat)32 -b(the)g(last)h(command,)f(replacing)g Fk(string1)40 b -Fq(with)31 b Fk(string2)p Fq(.)630 518 y(Equiv)-5 b(alen)m(t)31 -b(to)g Fp(!!:s^)p Fi(string1)p Fp(^)p Fi(string2)p Fp(^)p -Fq(.)150 673 y Fp(!#)384 b Fq(The)30 b(en)m(tire)h(command)f(line)h(t)m -(yp)s(ed)f(so)h(far.)150 867 y Fj(1.1.2)63 b(W)-10 b(ord)41 -b(Designators)150 1014 y Fq(W)-8 b(ord)27 b(designators)h(are)g(used)e -(to)i(select)h(desired)d(w)m(ords)h(from)f(the)i(ev)m(en)m(t.)41 -b(A)27 b(`)p Fp(:)p Fq(')g(separates)h(the)f(ev)m(en)m(t)150 -1124 y(sp)s(eci\014cation)38 b(from)e(the)h(w)m(ord)f(designator.)61 -b(It)37 b(ma)m(y)h(b)s(e)e(omitted)i(if)e(the)h(w)m(ord)g(designator)g -(b)s(egins)150 1233 y(with)30 b(a)g(`)p Fp(^)p Fq(',)g(`)p -Fp($)p Fq(',)g(`)p Fp(*)p Fq(',)h(`)p Fp(-)p Fq(',)f(or)g(`)p -Fp(\045)p Fq('.)41 b(W)-8 b(ords)30 b(are)g(n)m(um)m(b)s(ered)e(from)i -(the)g(b)s(eginning)f(of)h(the)g(line,)g(with)g(the)150 -1343 y(\014rst)f(w)m(ord)f(b)s(eing)h(denoted)h(b)m(y)f(0)h(\(zero\).) -41 b(W)-8 b(ords)30 b(are)g(inserted)f(in)m(to)h(the)g(curren)m(t)f -(line)g(separated)h(b)m(y)150 1452 y(single)h(spaces.)275 -1584 y(F)-8 b(or)31 b(example,)150 1739 y Fp(!!)384 b -Fq(designates)37 b(the)f(preceding)g(command.)57 b(When)35 -b(y)m(ou)i(t)m(yp)s(e)f(this,)h(the)f(preceding)g(com-)630 -1849 y(mand)30 b(is)g(rep)s(eated)g(in)g(toto.)150 2003 -y Fp(!!:$)288 b Fq(designates)23 b(the)g(last)g(argumen)m(t)g(of)f(the) -h(preceding)f(command.)38 b(This)22 b(ma)m(y)h(b)s(e)e(shortened)630 -2113 y(to)31 b Fp(!$)p Fq(.)150 2267 y Fp(!fi:2)240 b -Fq(designates)30 b(the)g(second)f(argumen)m(t)h(of)f(the)h(most)f -(recen)m(t)i(command)e(starting)h(with)f(the)630 2377 -y(letters)j Fp(fi)p Fq(.)275 2531 y(Here)e(are)h(the)g(w)m(ord)f -(designators:)150 2686 y Fp(0)g(\(zero\))114 b Fq(The)30 -b Fp(0)p Fq(th)g(w)m(ord.)40 b(F)-8 b(or)31 b(man)m(y)g(applications,)h -(this)e(is)g(the)h(command)f(w)m(ord.)150 2840 y Fi(n)432 -b Fq(The)30 b Fk(n)p Fq(th)g(w)m(ord.)150 2995 y Fp(^)432 -b Fq(The)30 b(\014rst)f(argumen)m(t;)j(that)f(is,)f(w)m(ord)g(1.)150 -3150 y Fp($)432 b Fq(The)30 b(last)h(argumen)m(t.)150 -3304 y Fp(\045)432 b Fq(The)40 b(\014rst)h(w)m(ord)f(matc)m(hed)i(b)m +299 y Fp(!)p Fi(n)384 b Fq(Refer)30 b(to)i(command)e(line)g +Fk(n)p Fq(.)150 452 y Fp(!-)p Fi(n)336 b Fq(Refer)30 +b(to)i(the)e(command)g Fk(n)g Fq(lines)h(bac)m(k.)150 +604 y Fp(!!)384 b Fq(Refer)30 b(to)i(the)e(previous)g(command.)40 +b(This)30 b(is)g(a)h(synon)m(ym)f(for)g(`)p Fp(!-1)p +Fq('.)150 757 y Fp(!)p Fi(string)144 b Fq(Refer)25 b(to)h(the)f(most)h +(recen)m(t)g(command)f(preceding)g(the)g(curren)m(t)g(p)s(osition)g(in) +g(the)g(history)630 867 y(list)31 b(starting)g(with)f +Fk(string)p Fq(.)150 1020 y Fp(!?)p Fi(string)p Fp([?])630 +1129 y Fq(Refer)25 b(to)h(the)f(most)h(recen)m(t)g(command)f(preceding) +g(the)g(curren)m(t)g(p)s(osition)g(in)g(the)g(history)630 +1239 y(list)32 b(con)m(taining)i Fk(string)p Fq(.)45 +b(The)31 b(trailing)i(`)p Fp(?)p Fq(')f(ma)m(y)g(b)s(e)f(omitted)i(if)f +(the)g Fk(string)39 b Fq(is)32 b(follo)m(w)m(ed)630 1348 +y(immediately)f(b)m(y)e(a)h(newline.)40 b(If)29 b Fk(string)38 +b Fq(is)29 b(missing,)h(the)g(string)f(from)g(the)h(most)g(recen)m(t) +630 1458 y(searc)m(h)h(is)f(used;)g(it)h(is)g(an)f(error)g(if)g(there)h +(is)f(no)g(previous)g(searc)m(h)h(string.)150 1611 y +Fp(^)p Fi(string1)p Fp(^)p Fi(string2)p Fp(^)630 1720 +y Fq(Quic)m(k)h(Substitution.)44 b(Rep)s(eat)32 b(the)g(last)h +(command,)f(replacing)g Fk(string1)40 b Fq(with)31 b +Fk(string2)p Fq(.)630 1830 y(Equiv)-5 b(alen)m(t)31 b(to)g +Fp(!!:s^)p Fi(string1)p Fp(^)p Fi(string2)p Fp(^)p Fq(.)150 +1983 y Fp(!#)384 b Fq(The)30 b(en)m(tire)h(command)f(line)h(t)m(yp)s +(ed)f(so)h(far.)150 2175 y Fj(1.1.2)63 b(W)-10 b(ord)41 +b(Designators)150 2322 y Fq(W)-8 b(ord)28 b(designators)h(are)f(used)f +(to)i(select)h(desired)d(w)m(ords)h(from)f(the)h(ev)m(en)m(t.)42 +b(They)27 b(are)i(optional;)h(if)e(the)150 2432 y(w)m(ord)h(designator) +i(isn't)e(supplied,)g(the)h(history)g(expansion)f(uses)g(the)h(en)m +(tire)h(ev)m(en)m(t.)42 b(A)29 b(`)p Fp(:)p Fq(')h(separates)150 +2542 y(the)f(ev)m(en)m(t)i(sp)s(eci\014cation)e(from)g(the)g(w)m(ord)g +(designator.)41 b(It)29 b(ma)m(y)g(b)s(e)g(omitted)h(if)e(the)i(w)m +(ord)e(designator)150 2651 y(b)s(egins)33 b(with)h(a)h(`)p +Fp(^)p Fq(',)g(`)p Fp($)p Fq(',)g(`)p Fp(*)p Fq(',)h(`)p +Fp(-)p Fq(',)f(or)f(`)p Fp(\045)p Fq('.)52 b(W)-8 b(ords)35 +b(are)f(n)m(um)m(b)s(ered)f(from)g(the)i(b)s(eginning)e(of)h(the)g +(line,)150 2761 y(with)39 b(the)h(\014rst)f(w)m(ord)g(b)s(eing)g +(denoted)h(b)m(y)g(0)g(\(zero\).)70 b(W)-8 b(ords)39 +b(are)h(inserted)g(in)m(to)g(the)g(curren)m(t)g(line)150 +2870 y(separated)31 b(b)m(y)f(single)h(spaces.)275 3002 +y(F)-8 b(or)31 b(example,)150 3154 y Fp(!!)384 b Fq(designates)37 +b(the)f(preceding)g(command.)57 b(When)35 b(y)m(ou)i(t)m(yp)s(e)f +(this,)h(the)f(preceding)g(com-)630 3264 y(mand)30 b(is)g(rep)s(eated)g +(in)g(toto.)150 3417 y Fp(!!:$)288 b Fq(designates)23 +b(the)g(last)g(argumen)m(t)g(of)f(the)h(preceding)f(command.)38 +b(This)22 b(ma)m(y)h(b)s(e)e(shortened)630 3526 y(to)31 +b Fp(!$)p Fq(.)150 3679 y Fp(!fi:2)240 b Fq(designates)30 +b(the)g(second)f(argumen)m(t)h(of)f(the)h(most)f(recen)m(t)i(command)e +(starting)h(with)f(the)630 3789 y(letters)j Fp(fi)p Fq(.)275 +3942 y(Here)e(are)h(the)g(w)m(ord)f(designators:)150 +4094 y Fp(0)g(\(zero\))114 b Fq(The)30 b Fp(0)p Fq(th)g(w)m(ord.)40 +b(F)-8 b(or)31 b(man)m(y)g(applications,)h(this)e(is)g(the)h(command)f +(w)m(ord.)150 4247 y Fi(n)432 b Fq(The)30 b Fk(n)p Fq(th)g(w)m(ord.)150 +4400 y Fp(^)432 b Fq(The)30 b(\014rst)f(argumen)m(t;)j(that)f(is,)f(w)m +(ord)g(1.)150 4553 y Fp($)432 b Fq(The)30 b(last)h(argumen)m(t.)150 +4706 y Fp(\045)432 b Fq(The)40 b(\014rst)h(w)m(ord)f(matc)m(hed)i(b)m (y)f(the)g(most)g(recen)m(t)h(`)p Fp(?)p Fi(string)p Fp(?)p Fq(')d(searc)m(h,)44 b(if)d(the)g(searc)m(h)630 -3414 y(string)30 b(b)s(egins)g(with)g(a)h(c)m(haracter)h(that)f(is)f -(part)h(of)f(a)h(w)m(ord.)150 3568 y Fi(x)p Fp(-)p Fi(y)336 +4815 y(string)30 b(b)s(egins)g(with)g(a)h(c)m(haracter)h(that)f(is)f +(part)h(of)f(a)h(w)m(ord.)150 4968 y Fi(x)p Fp(-)p Fi(y)336 b Fq(A)30 b(range)h(of)g(w)m(ords;)f(`)p Fp(-)p Fi(y)p -Fq(')g(abbreviates)h(`)p Fp(0-)p Fi(y)p Fq('.)150 3723 +Fq(')g(abbreviates)h(`)p Fp(0-)p Fi(y)p Fq('.)150 5121 y Fp(*)432 b Fq(All)28 b(of)g(the)g(w)m(ords,)g(except)h(the)e Fp(0)p Fq(th.)40 b(This)27 b(is)g(a)h(synon)m(ym)f(for)h(`)p Fp(1-$)p Fq('.)39 b(It)28 b(is)g(not)g(an)f(error)630 -3832 y(to)j(use)g(`)p Fp(*)p Fq(')f(if)h(there)g(is)g(just)f(one)h(w)m +5230 y(to)j(use)g(`)p Fp(*)p Fq(')f(if)h(there)g(is)g(just)f(one)h(w)m (ord)f(in)g(the)h(ev)m(en)m(t;)i(the)d(empt)m(y)i(string)e(is)h -(returned)e(in)630 3942 y(that)j(case.)150 4097 y Fi(x)p -Fp(*)384 b Fq(Abbreviates)31 b(`)p Fi(x)p Fp(-$)p Fq(')150 -4251 y Fi(x)p Fp(-)384 b Fq(Abbreviates)27 b(`)p Fi(x)p -Fp(-$)p Fq(')g(lik)m(e)h(`)p Fi(x)p Fp(*)p Fq(',)g(but)e(omits)i(the)f -(last)h(w)m(ord.)39 b(If)27 b(`)p Fp(x)p Fq(')g(is)g(missing,)g(it)h -(defaults)630 4361 y(to)j(0.)275 4515 y(If)i(a)h(w)m(ord)g(designator)g -(is)g(supplied)f(without)h(an)g(ev)m(en)m(t)h(sp)s(eci\014cation,)h -(the)e(previous)f(command)150 4625 y(is)d(used)g(as)h(the)f(ev)m(en)m -(t.)150 4819 y Fj(1.1.3)63 b(Mo)s(di\014ers)150 4966 -y Fq(After)29 b(the)g(optional)g(w)m(ord)g(designator,)g(y)m(ou)g(can)g -(add)f(a)h(sequence)g(of)g(one)g(or)f(more)h(of)g(the)f(follo)m(wing) -150 5076 y(mo)s(di\014ers,)33 b(eac)m(h)h(preceded)f(b)m(y)g(a)h(`)p -Fp(:)p Fq('.)50 b(These)33 b(mo)s(dify)-8 b(,)33 b(or)h(edit,)g(the)g -(w)m(ord)f(or)g(w)m(ords)g(selected)h(from)150 5185 y(the)d(history)f -(ev)m(en)m(t.)150 5340 y Fp(h)432 b Fq(Remo)m(v)m(e)32 -b(a)f(trailing)g(pathname)g(comp)s(onen)m(t,)g(lea)m(ving)h(only)e(the) -h(head.)p eop end +(returned)e(in)630 5340 y(that)j(case.)p eop end %%Page: 3 6 TeXDict begin 3 5 bop 150 -116 a Fq(Chapter)30 b(1:)41 b(Using)30 b(History)h(In)m(teractiv)m(ely)2016 b(3)150 -299 y Fp(t)432 b Fq(Remo)m(v)m(e)32 b(all)f(leading)h(pathname)e(comp)s -(onen)m(ts,)h(lea)m(ving)h(the)e(tail.)150 458 y Fp(r)432 -b Fq(Remo)m(v)m(e)32 b(a)f(trailing)g(su\016x)f(of)g(the)h(form)f(`)p -Fp(.)p Fi(suffix)p Fq(',)f(lea)m(ving)j(the)f(basename.)150 -618 y Fp(e)432 b Fq(Remo)m(v)m(e)32 b(all)f(but)f(the)h(trailing)g -(su\016x.)150 777 y Fp(p)432 b Fq(Prin)m(t)30 b(the)h(new)f(command)g -(but)g(do)g(not)g(execute)i(it.)150 936 y Fp(s/)p Fi(old)p -Fp(/)p Fi(new)p Fp(/)630 1046 y Fq(Substitute)f Fk(new)39 -b Fq(for)32 b(the)g(\014rst)f(o)s(ccurrence)h(of)f Fk(old)36 -b Fq(in)31 b(the)h(ev)m(en)m(t)h(line.)46 b(An)m(y)31 -b(c)m(haracter)630 1156 y(ma)m(y)k(b)s(e)e(used)h(as)g(the)h(delimiter) -g(in)f(place)h(of)f(`)p Fp(/)p Fq('.)53 b(The)33 b(delimiter)i(ma)m(y)g -(b)s(e)f(quoted)g(in)630 1265 y Fk(old)40 b Fq(and)c -Fk(new)44 b Fq(with)36 b(a)h(single)g(bac)m(kslash.)60 -b(If)36 b(`)p Fp(&)p Fq(')h(app)s(ears)e(in)i Fk(new)p -Fq(,)g(it)h(is)e(replaced)h(b)m(y)630 1375 y Fk(old)p -Fq(.)k(A)31 b(single)g(bac)m(kslash)g(will)g(quote)g(the)g(`)p +299 y Fi(x)p Fp(*)384 b Fq(Abbreviates)31 b(`)p Fi(x)p +Fp(-$)p Fq(')150 458 y Fi(x)p Fp(-)384 b Fq(Abbreviates)27 +b(`)p Fi(x)p Fp(-$)p Fq(')g(lik)m(e)h(`)p Fi(x)p Fp(*)p +Fq(',)g(but)e(omits)i(the)f(last)h(w)m(ord.)39 b(If)27 +b(`)p Fp(x)p Fq(')g(is)g(missing,)g(it)h(defaults)630 +568 y(to)j(0.)275 727 y(If)i(a)h(w)m(ord)g(designator)g(is)g(supplied)f +(without)h(an)g(ev)m(en)m(t)h(sp)s(eci\014cation,)h(the)e(previous)f +(command)150 837 y(is)d(used)g(as)h(the)f(ev)m(en)m(t.)150 +1036 y Fj(1.1.3)63 b(Mo)s(di\014ers)150 1183 y Fq(After)29 +b(the)g(optional)g(w)m(ord)g(designator,)g(y)m(ou)g(can)g(add)f(a)h +(sequence)g(of)g(one)g(or)f(more)h(of)g(the)f(follo)m(wing)150 +1293 y(mo)s(di\014ers,)33 b(eac)m(h)h(preceded)f(b)m(y)g(a)h(`)p +Fp(:)p Fq('.)50 b(These)33 b(mo)s(dify)-8 b(,)33 b(or)h(edit,)g(the)g +(w)m(ord)f(or)g(w)m(ords)g(selected)h(from)150 1402 y(the)d(history)f +(ev)m(en)m(t.)150 1562 y Fp(h)432 b Fq(Remo)m(v)m(e)32 +b(a)f(trailing)g(pathname)g(comp)s(onen)m(t,)g(lea)m(ving)h(only)e(the) +h(head.)150 1721 y Fp(t)432 b Fq(Remo)m(v)m(e)32 b(all)f(leading)h +(pathname)e(comp)s(onen)m(ts,)h(lea)m(ving)h(the)e(tail.)150 +1880 y Fp(r)432 b Fq(Remo)m(v)m(e)32 b(a)f(trailing)g(su\016x)f(of)g +(the)h(form)f(`)p Fp(.)p Fi(suffix)p Fq(',)f(lea)m(ving)j(the)f +(basename.)150 2040 y Fp(e)432 b Fq(Remo)m(v)m(e)32 b(all)f(but)f(the)h +(trailing)g(su\016x.)150 2199 y Fp(p)432 b Fq(Prin)m(t)30 +b(the)h(new)f(command)g(but)g(do)g(not)g(execute)i(it.)150 +2359 y Fp(s/)p Fi(old)p Fp(/)p Fi(new)p Fp(/)630 2468 +y Fq(Substitute)f Fk(new)39 b Fq(for)32 b(the)g(\014rst)f(o)s +(ccurrence)h(of)f Fk(old)36 b Fq(in)31 b(the)h(ev)m(en)m(t)h(line.)46 +b(An)m(y)31 b(c)m(haracter)630 2578 y(ma)m(y)k(b)s(e)e(used)h(as)g(the) +h(delimiter)g(in)f(place)h(of)f(`)p Fp(/)p Fq('.)53 b(The)33 +b(delimiter)i(ma)m(y)g(b)s(e)f(quoted)g(in)630 2687 y +Fk(old)40 b Fq(and)c Fk(new)44 b Fq(with)36 b(a)h(single)g(bac)m +(kslash.)60 b(If)36 b(`)p Fp(&)p Fq(')h(app)s(ears)e(in)i +Fk(new)p Fq(,)g(it)h(is)e(replaced)h(b)m(y)630 2797 y +Fk(old)p Fq(.)k(A)31 b(single)g(bac)m(kslash)g(will)g(quote)g(the)g(`)p Fp(&)p Fq('.)41 b(If)31 b Fk(old)j Fq(is)c(n)m(ull,)h(it)g(is)g(set)g -(to)g(the)g(last)g Fk(old)630 1484 y Fq(substituted,)j(or,)g(if)f(no)g +(to)g(the)g(last)g Fk(old)630 2907 y Fq(substituted,)j(or,)g(if)f(no)g (previous)g(history)g(substitutions)g(to)s(ok)h(place,)h(the)e(last)h -Fk(string)630 1594 y Fq(in)d(a)g(!?)p Fk(string)8 b Fp([?])30 +Fk(string)630 3016 y Fq(in)d(a)g(!?)p Fk(string)8 b Fp([?])30 b Fq(searc)m(h.)44 b(If)31 b Fk(new)38 b Fq(is)31 b(n)m(ull,)h(eac)m(h) g(matc)m(hing)g Fk(old)j Fq(is)c(deleted.)44 b(The)30 -b(\014nal)630 1704 y(delimiter)h(is)g(optional)g(if)f(it)h(is)g(the)f -(last)h(c)m(haracter)h(on)f(the)f(input)g(line.)150 1863 +b(\014nal)630 3126 y(delimiter)h(is)g(optional)g(if)f(it)h(is)g(the)f +(last)h(c)m(haracter)h(on)f(the)f(input)g(line.)150 3285 y Fp(&)432 b Fq(Rep)s(eat)31 b(the)f(previous)g(substitution.)150 -2022 y Fp(g)150 2132 y(a)432 b Fq(Cause)38 b(c)m(hanges)i(to)f(b)s(e)f +3445 y Fp(g)150 3554 y(a)432 b Fq(Cause)38 b(c)m(hanges)i(to)f(b)s(e)f (applied)h(o)m(v)m(er)h(the)f(en)m(tire)g(ev)m(en)m(t)h(line.)66 -b(Used)39 b(in)f(conjunction)630 2242 y(with)30 b(`)p +b(Used)39 b(in)f(conjunction)630 3664 y(with)30 b(`)p Fp(s)p Fq(',)h(as)f(in)h Fp(gs/)p Fi(old)p Fp(/)p Fi(new)p -Fp(/)p Fq(,)c(or)j(with)h(`)p Fp(&)p Fq('.)150 2401 y +Fp(/)p Fq(,)c(or)j(with)h(`)p Fp(&)p Fq('.)150 3823 y Fp(G)432 b Fq(Apply)30 b(the)g(follo)m(wing)i(`)p Fp(s)p Fq(')f(or)f(`)p Fp(&)p Fq(')h(mo)s(di\014er)e(once)i(to)g(eac)m(h)h(w)m (ord)e(in)g(the)g(ev)m(en)m(t.)p eop end @@ -5773,8 +5807,8 @@ Fq(is)k(truncated.)40 b(Returns)30 b(0)g(on)h(success,)g(or)f Fp(errno)f Fq(on)h(failure.)150 2169 y Fj(2.3.7)63 b(History)41 b(Expansion)150 2316 y Fq(These)30 b(functions)g(implemen)m(t)h (history)f(expansion.)3350 2477 y([F)-8 b(unction])-3599 -b Fh(int)53 b(history_expand)d Fg(\()p Ff(c)m(har)34 -b(*string,)f(c)m(har)h(**output)p Fg(\))390 2586 y Fq(Expand)f +b Fh(int)53 b(history_expand)d Fg(\()p Ff(const)34 b(c)m(har)g +(*string,)e(c)m(har)i(**output)p Fg(\))390 2586 y Fq(Expand)f Fk(string)p Fq(,)j(placing)f(the)f(result)h(in)m(to)g Fk(output)p Fq(,)g(a)g(p)s(oin)m(ter)f(to)h(a)g(string)f(\(see)i (Section)f(1.1)390 2696 y([History)c(In)m(teraction],)i(page)e(1\).)41 @@ -5787,7 +5821,7 @@ b(Returns:)390 2839 y Fp(0)432 b Fq(If)37 b(no)g(expansions)g(to)s(ok)i (expansion;)390 3380 y Fp(2)432 b Fq(if)28 b(the)f(returned)g(line)g (should)g(b)s(e)g(displa)m(y)m(ed,)i(but)e(not)h(executed,)h(as)f(with) f(the)h Fp(:p)870 3489 y Fq(mo)s(di\014er)h(\(see)j(Section)f(1.1.3)h -([Mo)s(di\014ers],)e(page)i(2\).)390 3633 y(If)e(an)g(error)g(o)s +([Mo)s(di\014ers],)e(page)i(3\).)390 3633 y(If)e(an)g(error)g(o)s (ccurred)g(in)g(expansion,)g(then)g Fk(output)i Fq(con)m(tains)g(a)f (descriptiv)m(e)g(error)f(message.)3350 3793 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(get_history_event)f @@ -5929,51 +5963,51 @@ Fp(NULL)p Fq(.)150 2182 y Fo(2.5)68 b(History)46 b(Programming)g (Example)150 2342 y Fq(The)30 b(follo)m(wing)i(program)e(demonstrates)h (simple)f(use)g(of)h(the)f Fl(gnu)g Fq(History)h(Library)-8 b(.)390 2463 y Fe(#include)41 b(<stdio.h>)390 2550 y(#include)g -(<readline/history.h>)390 2725 y(main)f(\(argc,)h(argv\))586 -2812 y(int)f(argc;)586 2899 y(char)g(**argv;)390 2986 -y({)468 3073 y(char)h(line[1024],)g(*t;)468 3161 y(int)f(len,)g(done)h -(=)e(0;)468 3335 y(line[0])i(=)f(0;)468 3509 y(using_history)j(\(\);) -468 3597 y(while)e(\(!done\))547 3684 y({)625 3771 y(printf)g -(\("history$)g("\);)625 3858 y(fflush)g(\(stdout\);)625 -3945 y(t)f(=)f(fgets)i(\(line,)f(sizeof)h(\(line\))f(-)g(1,)g(stdin\);) -625 4032 y(if)g(\(t)g(&&)f(*t\))704 4120 y({)782 4207 -y(len)h(=)g(strlen)g(\(t\);)782 4294 y(if)g(\(t[len)h(-)e(1])h(==)f -('\\n'\))861 4381 y(t[len)h(-)g(1])f(=)h('\\0';)704 4468 -y(})625 4643 y(if)g(\(!t\))704 4730 y(strcpy)g(\(line,)h("quit"\);)625 -4904 y(if)f(\(line[0]\))704 4991 y({)782 5078 y(char)g(*expansion;)782 -5166 y(int)g(result;)782 5340 y(result)h(=)e(history_expand)k(\(line,)d -(&expansion\);)p eop end +(<readline/history.h>)390 2725 y(int)390 2812 y(main)f(\(int)g(argc,)h +(char)f(**argv\))390 2899 y({)468 2986 y(char)h(line[1024],)g(*t;)468 +3073 y(int)f(len,)g(done)h(=)e(0;)468 3248 y(line[0])i(=)f(0;)468 +3422 y(using_history)j(\(\);)468 3509 y(while)e(\(!done\))547 +3597 y({)625 3684 y(printf)g(\("history$)g("\);)625 3771 +y(fflush)g(\(stdout\);)625 3858 y(t)f(=)f(fgets)i(\(line,)f(sizeof)h +(\(line\))f(-)g(1,)g(stdin\);)625 3945 y(if)g(\(t)g(&&)f(*t\))704 +4032 y({)782 4120 y(len)h(=)g(strlen)g(\(t\);)782 4207 +y(if)g(\(t[len)h(-)e(1])h(==)f('\\n'\))861 4294 y(t[len)h(-)g(1])f(=)h +('\\0';)704 4381 y(})625 4555 y(if)g(\(!t\))704 4643 +y(strcpy)g(\(line,)h("quit"\);)625 4817 y(if)f(\(line[0]\))704 +4904 y({)782 4991 y(char)g(*expansion;)782 5078 y(int)g(result;)782 +5253 y(result)h(=)e(history_expand)k(\(line,)d(&expansion\);)782 +5340 y(if)g(\(result\))p eop end %%Page: 11 14 TeXDict begin 11 13 bop 150 -116 a Fq(Chapter)30 b(2:)41 -b(Programming)30 b(with)g(GNU)h(History)1734 b(11)782 -299 y Fe(if)40 b(\(result\))861 386 y(fprintf)h(\(stderr,)g -("\045s\\n",)f(expansion\);)782 560 y(if)g(\(result)h(<)e(0)h(||)f -(result)i(==)f(2\))861 648 y({)939 735 y(free)g(\(expansion\);)939 -822 y(continue;)861 909 y(})782 1083 y(add_history)i(\(expansion\);)782 -1171 y(strncpy)f(\(line,)g(expansion,)g(sizeof)g(\(line\))f(-)g(1\);) -782 1258 y(free)g(\(expansion\);)704 1345 y(})625 1519 -y(if)g(\(strcmp)h(\(line,)f("quit"\))h(==)f(0\))704 1606 -y(done)g(=)f(1;)625 1694 y(else)h(if)g(\(strcmp)h(\(line,)g("save"\))f -(==)g(0\))704 1781 y(write_history)i(\("history_file"\);)625 -1868 y(else)e(if)g(\(strcmp)h(\(line,)g("read"\))f(==)g(0\))704 -1955 y(read_history)i(\("history_file"\);)625 2042 y(else)e(if)g -(\(strcmp)h(\(line,)g("list"\))f(==)g(0\))704 2130 y({)782 -2217 y(register)h(HIST_ENTRY)h(**the_list;)782 2304 y(register)f(int)f -(i;)782 2478 y(the_list)h(=)f(history_list)i(\(\);)782 -2565 y(if)e(\(the_list\))861 2653 y(for)g(\(i)f(=)h(0;)f(the_list[i];)j -(i++\))939 2740 y(printf)f(\("\045d:)f(\045s\\n",)h(i)e(+)h -(history_base,)i(the_list[i]->line\);)704 2827 y(})625 -2914 y(else)e(if)g(\(strncmp)h(\(line,)g("delete",)g(6\))f(==)f(0\))704 -3001 y({)782 3088 y(int)h(which;)782 3176 y(if)g(\(\(sscanf)h(\(line)f -(+)g(6,)g("\045d",)g(&which\)\))h(==)f(1\))861 3263 y({)939 -3350 y(HIST_ENTRY)i(*entry)e(=)g(remove_history)i(\(which\);)939 -3437 y(if)e(\(!entry\))1018 3524 y(fprintf)g(\(stderr,)i("No)d(such)i -(entry)f(\045d\\n",)h(which\);)939 3611 y(else)1018 3699 -y({)1096 3786 y(free)f(\(entry->line\);)1096 3873 y(free)g(\(entry\);) -1018 3960 y(})861 4047 y(})782 4134 y(else)861 4222 y({)939 -4309 y(fprintf)h(\(stderr,)g("non-numeric)h(arg)e(given)g(to)g -(`delete'\\n"\);)861 4396 y(})704 4483 y(})547 4570 y(})390 -4658 y(})p eop end +b(Programming)30 b(with)g(GNU)h(History)1734 b(11)861 +299 y Fe(fprintf)41 b(\(stderr,)g("\045s\\n",)f(expansion\);)782 +473 y(if)g(\(result)h(<)e(0)h(||)f(result)i(==)f(2\))861 +560 y({)939 648 y(free)g(\(expansion\);)939 735 y(continue;)861 +822 y(})782 996 y(add_history)i(\(expansion\);)782 1083 +y(strncpy)f(\(line,)g(expansion,)g(sizeof)g(\(line\))f(-)g(1\);)782 +1171 y(free)g(\(expansion\);)704 1258 y(})625 1432 y(if)g(\(strcmp)h +(\(line,)f("quit"\))h(==)f(0\))704 1519 y(done)g(=)f(1;)625 +1606 y(else)h(if)g(\(strcmp)h(\(line,)g("save"\))f(==)g(0\))704 +1694 y(write_history)i(\("history_file"\);)625 1781 y(else)e(if)g +(\(strcmp)h(\(line,)g("read"\))f(==)g(0\))704 1868 y(read_history)i +(\("history_file"\);)625 1955 y(else)e(if)g(\(strcmp)h(\(line,)g +("list"\))f(==)g(0\))704 2042 y({)782 2130 y(register)h(HIST_ENTRY)h +(**the_list;)782 2217 y(register)f(int)f(i;)782 2391 +y(the_list)h(=)f(history_list)i(\(\);)782 2478 y(if)e(\(the_list\))861 +2565 y(for)g(\(i)f(=)h(0;)f(the_list[i];)j(i++\))939 +2653 y(printf)f(\("\045d:)f(\045s\\n",)h(i)e(+)h(history_base,)i +(the_list[i]->line\);)704 2740 y(})625 2827 y(else)e(if)g(\(strncmp)h +(\(line,)g("delete",)g(6\))f(==)f(0\))704 2914 y({)782 +3001 y(int)h(which;)782 3088 y(if)g(\(\(sscanf)h(\(line)f(+)g(6,)g +("\045d",)g(&which\)\))h(==)f(1\))861 3176 y({)939 3263 +y(HIST_ENTRY)i(*entry)e(=)g(remove_history)i(\(which\);)939 +3350 y(if)e(\(!entry\))1018 3437 y(fprintf)g(\(stderr,)i("No)d(such)i +(entry)f(\045d\\n",)h(which\);)939 3524 y(else)1018 3611 +y({)1096 3699 y(free)f(\(entry->line\);)1096 3786 y(free)g(\(entry\);) +1018 3873 y(})861 3960 y(})782 4047 y(else)861 4134 y({)939 +4222 y(fprintf)h(\(stderr,)g("non-numeric)h(arg)e(given)g(to)g +(`delete'\\n"\);)861 4309 y(})704 4396 y(})547 4483 y(})390 +4570 y(})p eop end %%Page: 12 15 TeXDict begin 12 14 bop 3659 -116 a Fq(12)150 299 y Fm(App)t(endix)52 b(A)81 b(GNU)54 b(F)-13 b(ree)53 b(Do)t(cumen)l(tation)e(License)1359 |