diff --git a/Makefile b/Makefile index 3d7293d85..2a5587309 100644 --- a/Makefile +++ b/Makefile @@ -46,6 +46,12 @@ $(CCAN_OBJS) $(HELPER_OBJS) $(PROGRAM_OBJS) $(BITCOIN_OBJS): ccan/config.h ccan/config.h: ccan/tools/configurator/configurator $< > $@ +doc/deployable-lightning.pdf: doc/deployable-lightning.lyx doc/bitcoin.bib + lyx -E pdf $@ $< + +doc/deployable-lightning.tex: doc/deployable-lightning.lyx + lyx -E latex $@ $< + update-ccan: mv ccan ccan.old DIR=$$(pwd)/ccan; cd ../ccan && ./tools/create-ccan-tree -a $$DIR `cd $$DIR.old/ccan && find * -name _info | sed s,/_info,, | sort` $(CCAN_NEW) @@ -58,10 +64,12 @@ update-ccan: distclean: clean $(RM) lightning.pb-c.c lightning.pb-c.h ccan/config.h + $(RM) doc/deployable-lightning.pdf clean: $(RM) $(PROGRAMS) test-cli/leak-anchor-sigs $(RM) bitcoin/*.o *.o $(CCAN_OBJS) + $(RM) doc/deployable-lightning.{aux,bbl,blg,dvi,log,out,tex} ccan-tal.o: $(CCANDIR)/ccan/tal/tal.c $(CC) $(CFLAGS) -c -o $@ $< diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 000000000..4a4d6a756 --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1,7 @@ +*.aux +*.bbl +*.blg +*.dvi +*.log +*.out +*.tex diff --git a/doc/bitcoin.bib b/doc/bitcoin.bib new file mode 100644 index 000000000..57bb67b02 --- /dev/null +++ b/doc/bitcoin.bib @@ -0,0 +1,64 @@ +@InProceedings{Decker2015Making, + author = {Christian Decker and James Guthrie and Jochen Seidel and Roger Wattenhofer}, + note = {\tt decker@ethz.ch and wattenhofer@ethz.ch}, + title = {{Making Bitcoin Exchanges Transparent}}, + booktitle = {{20th European Symposium on Research in Computer Security (ESORICS), Vienna, Austria}}, + month = {September}, + year = {2015} +} +@misc{Poon2015Lightning, + author = {Joseph Poon and Thaddeus Dryja}, + title = {The Bitcoin Lightning Network DRAFT Version 0.5}, + note = {\url{http://lightning.network/lightning-network-paper-DRAFT-0.5.pdf}}, + year = {2015}, + urldate = {2015-02-28} +} +@misc{nakamoto2008bitcoin, + title={{Bitcoin: A peer-to-peer electronic cash system}}, + author={Nakamoto, Satoshi}, + year={2008} +} +@misc{BitcoinChannels, + title = {{Rapidly-adjusted (micro)payments to a pre-determined party}}, + urldate = {2015-07-13}, + note = {\url{https://en.bitcoin.it/wiki/Contract#Example_7:_Rapidly-adjusted_.28micro.29payments_to_a_pre-determined_party}} + } +@article{DBLP:journals/corr/DeckerW14, + author = {Christian Decker and + Roger Wattenhofer}, + title = {Bitcoin Transaction Malleability and MtGox}, + journal = {CoRR}, + volume = {abs/1403.6676}, + year = {2014}, + url = {http://arxiv.org/abs/1403.6676}, + timestamp = {Tue, 01 Apr 2014 11:56:46 +0200}, + biburl = {http://dblp.uni-trier.de/rec/bib/journals/corr/DeckerW14}, + bibsource = {dblp computer science bibliography, http://dblp.org} +} +@misc{BIP62, + author = { Pieter Wuille }, + title = { Dealing with malleability }, + urldate = {2015-07-13}, + note = {\url{https://github.com/bitcoin/bips/blob/master/bip-0062.mediawiki}} +} +@misc{BIP65, + author = { Peter Todd }, + title = {{OP\_CHECKLOCKTIMEVERIFY}}, + urldate = {2015-07-13}, + note = {\url{https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki}} +} +@misc{friedenbach_bitcoin-development_2015, + title = {[Bitcoin-development] [{BIP} draft] Consensus-enforced transaction replacement signalled via sequence numbers}, + note = {\url{http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-June/008452.html}}, + type = {E-mail}, + author = {Friedenbach, Mark}, + urldate = {2015-07-13}, + date = {2015-06-02} +} +@misc{nolan_alt, + title = {Alt chains and atomic transfers}, + note = {\url{https://bitcointalk.org/index.php?topic=193281.msg2224949#msg2224949}}, + author = {Nolan, Tier}, + urldate = {2015-07-14}, + file = {Alt chains and atomic transfers:/home/rusty/.mozilla/firefox/vfn6if9k.default/zotero/storage/PEHK469N/index.html:text/html} +} diff --git a/doc/commit-tx.eps b/doc/commit-tx.eps new file mode 100644 index 000000000..1e00f4e1b --- /dev/null +++ b/doc/commit-tx.eps @@ -0,0 +1,581 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: cairo 1.14.2 (http://cairographics.org) +%%CreationDate: Fri Jul 17 17:03:11 2015 +%%Pages: 1 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%BoundingBox: 75 179 475 425 +%%EndComments +%%BeginProlog +save +50 dict begin +/q { gsave } bind def +/Q { grestore } bind def +/cm { 6 array astore concat } bind def +/w { setlinewidth } bind def +/J { setlinecap } bind def +/j { setlinejoin } bind def +/M { setmiterlimit } bind def +/d { setdash } bind def +/m { moveto } bind def +/l { lineto } bind def +/c { curveto } bind def +/h { closepath } bind def +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto + 0 exch rlineto 0 rlineto closepath } bind def +/S { stroke } bind def +/f { fill } bind def +/f* { eofill } bind def +/n { newpath } bind def +/W { clip } bind def +/W* { eoclip } bind def +/BT { } bind def +/ET { } bind def +/pdfmark where { pop globaldict /?pdfmark /exec load put } + { globaldict begin /?pdfmark /pop load def /pdfmark + /cleartomark load def end } ifelse +/BDC { mark 3 1 roll /BDC pdfmark } bind def +/EMC { mark /EMC pdfmark } bind def +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def +/Tj { show currentpoint cairo_store_point } bind def +/TJ { + { + dup + type /stringtype eq + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse + } forall + currentpoint cairo_store_point +} bind def +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def +/Tf { pop /cairo_font exch def /cairo_font_matrix where + { pop cairo_selectfont } if } bind def +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point + /cairo_font where { pop cairo_selectfont } if } bind def +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def +/g { setgray } bind def +/rg { setrgbcolor } bind def +/d1 { setcachedevice } bind def +%%EndProlog +%%BeginSetup +%%BeginResource: font DejaVuSans +11 dict begin +/FontType 42 def +/FontName /DejaVuSans def +/PaintType 0 def +/FontMatrix [ 1 0 0 1 0 0 ] def +/FontBBox [ 0 0 0 0 ] def +/Encoding 256 array def +0 1 255 { Encoding exch /.notdef put } for +Encoding 32 /space put +Encoding 38 /ampersand put +Encoding 45 /hyphen put +Encoding 65 /A put +Encoding 66 /B put +Encoding 67 /C put +Encoding 69 /E put +Encoding 71 /G put +Encoding 73 /I put +Encoding 78 /N put +Encoding 79 /O put +Encoding 80 /P put +Encoding 82 /R put +Encoding 83 /S put +Encoding 84 /T put +Encoding 86 /V put +Encoding 95 /underscore put +Encoding 105 /i put +Encoding 109 /m put +Encoding 111 /o put +Encoding 116 /t put +Encoding 120 /x put +/CharStrings 23 dict dup begin +/.notdef 0 def +/C 1 def +/o 2 def +/m 3 def +/i 4 def +/t 5 def +/T 6 def +/x 7 def +/space 8 def +/A 9 def +/B 10 def +/S 11 def +/I 12 def +/G 13 def +/ampersand 14 def +/R 15 def +/E 16 def +/V 17 def +/O 18 def +/N 19 def +/hyphen 20 def +/P 21 def +/underscore 22 def +end readonly def +/sfnts [ +<0001000000090080000300106376742000691d3900000ffc000001fe6670676d7134766a0000 +11fc000000ab676c7966476f57940000009c00000f6068656164026638f7000012a800000036 +686865610cb80668000012e000000024686d74786f850a45000013040000005c6c6f63610000 +b77c00001360000000606d61787004840671000013c000000020707265703b07f100000013e0 +0000056800020066fe96046605a400030007001a400c04fb0006fb0108057f0204002fc4d4ec +310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f272062900010073 +ffe3052705f000190036401a0da10eae0a951101a100ae04951791118c1a07190d003014101a +10fcec32ec310010e4f4ecf4ec10eef6ee30b40f1b1f1b02015d01152e012320001110002132 +3637150e01232000111000213216052766e782ff00fef00110010082e7666aed84feadfe7a01 +86015386ed0562d55f5efec7fed8fed9fec75e5fd34848019f01670168019f47000000020071 +ffe30475047b000b0017004a401306b91200b90cb8128c1809120f51031215451810fcecf4ec +310010e4f4ec10ee3040233f197b007b067f077f087f097f0a7f0b7b0c7f0d7f0e7f0f7f107f +117b12a019f01911015d012206151416333236353426273200111000232200111000027394ac +ab9593acac93f00112feeef0f1feef011103dfe7c9c9e7e8c8c7e99cfec8feecfeedfec70139 +0113011401380000000100ba0000071d047b0022005a4026061209180f00061d07150c871d20 +03b81bbc19100700110f0808065011080f501c18081a462310fcec32fcfcfcec11123931002f +3c3ce4f43cc4ec32111217393040133024502470249024a024a024bf24df24ff2409015d013e +013332161511231134262322061511231134262322061511231133153e01333216042945c082 +afbeb972758fa6b972778da6b9b93fb0797aab03897c76f5e2fd5c029ea19cbea4fd87029ea2 +9bbfa3fd870460ae67627c000000000200c100000179061400030007002b400e06be04b100bc +020501080400460810fc3cec3231002fe4fcec30400b1009400950096009700905015d133311 +2311331523c1b8b8b8b80460fba00614e90000010037000002f2059e0013003840190e05080f +03a9001101bc08870a0b08090204000810120e461410fc3cc4fc3cc432393931002fecf43cc4 +ec3211393930b2af1501015d01112115211114163b01152322263511233533110177017bfe85 +4b73bdbdd5a28787059efec28ffda0894e9a9fd202608f013e0000000001fffa000004e905d5 +0007004a400e0602950081040140031c0040050810d4e4fce431002ff4ec3230014bb00a5458 +bd00080040000100080008ffc03811373859401300091f00100110021f071009400970099f09 +095d03211521112311210604effdeecbfdee05d5aafad5052b000001003b000004790460000b +014340460511060706041103040707060411050401020103110202010b110001000a11090a01 +01000a110b0a0708070911080807420a070401040800bf05020a0704010408000208060c10d4 +4bb00a544bb00f545b4bb010545b4bb011545b58b90006004038594bb0145458b90006ffc038 +59c4d4c411173931002f3cec321739304b5358071005ed071008ed071008ed071005ed071005 +ed071008ed071008ed071005ed59220140980a04040a1a04150a260a3d04310a55045707580a +660a76017a047607740a8d04820a99049f049707920a900aa601a904af04a507a30aa00a1c0a +03040505090a0b1a03150515091a0b2903260525092a0b200d3a013903370534073609390b30 +0d4903460545094a0b400d590056015902590357055606590756085609590b500d6f0d78017f +0d9b019407ab01a407b00dcf0ddf0dff0d2f5d005d09022309012309013309010464fe6b01aa +d9febafebad901b3fe72d9012901290460fddffdc101b8fe48024a0216fe71018f0000020010 +0000056805d50002000a00c2404100110100040504021105050401110a030a0011020003030a +0711050406110505040911030a08110a030a4200030795010381090509080706040302010009 +050a0b10d4c4173931002f3ce4d4ec1239304b5358071005ed0705ed071005ed0705ed071008 +ed071005ed071005ed071008ed5922b2200c01015d40420f010f020f070f080f005800760070 +008c000907010802060309041601190256015802500c67016802780176027c03720477077808 +87018802800c980299039604175d005d090121013301230321032302bcfeee0225fe7be50239 +d288fd5f88d5050efd1903aefa2b017ffe810000000300c9000004ec05d50008001100200043 +40231900950a0995128101950aad1f110b080213191f05000e1c1605191c2e09001c12042110 +fcec32fcecd4ec111739393931002fececf4ec10ee3930b20f2201015d011121323635342623 +01112132363534262325213216151406071e01151404232101930144a39d9da3febc012b9491 +9194fe0b0204e7fa807c95a5fef0fbfde802c9fddd878b8c850266fe3e6f727170a6c0b189a2 +1420cb98c8da00010087ffe304a205f00027007e403c0d0c020e0b021e1f1e080902070a021f +1f1e420a0b1e1f0415010015a11494189511049500942591118c281e0a0b1f1b0700221b190e +2d071914222810dcc4ecfcece4111239393939310010e4f4e4ec10eef6ee10c6111739304b53 +5807100eed11173907100eed1117395922b20f2901015db61f292f294f29035d01152e012322 +061514161f011e0115140421222627351e013332363534262f012e01353424333216044873cc +5fa5b377a67ae2d7feddfee76aef807bec72adbc879a7be2ca0117f569da05a4c53736807663 +651f192bd9b6d9e0302fd04546887e6e7c1f182dc0abc6e42600000100c90000019305d50003 +002eb700af02011c00040410fc4bb0105458b9000000403859ec31002fec3001400d30054005 +500560058f059f05065d13331123c9caca05d5fa2b0000010073ffe3058b05f0001d00394020 +00051b0195031b950812a111ae15950e91088c1e02001c1134043318190b101e10fcecfce4fc +c4310010e4f4ecf4ec10fed4ee11393930251121352111060423200011100021320417152e01 +23200011100021323604c3feb6021275fee6a0fea2fe75018b015e9201076f70fc8bfeeefeed +011301126ba8d50191a6fd7f53550199016d016e01994846d75f60fecefed1fed2fece250000 +00020081ffe305fe05f00009003001cd40960d010e0c861112110b860a0b1212110986000915 +1615070106088616161502010301861d1e1d008609001e1e1d201f02211e110a130a17161503 +181411130a07080206091113130a0201020300110a130a171602181511130a141113130a4212 +0b090306000a1e0328150e0628270695182b9527942491188c0e130a2e0b0e09002e1215270e +1e032e1227210e110f132103121b103110fcecc4d4d4ec10c6ee113911123939113939113911 +3931002fc6e4f6e6ee10ee10c6111239111739111739304b5358071005ed0705ed1117390710 +05ed111739071005ed1117390705ed111739071005ed111739071008ed07100eed1117390710 +0eed111739071008ed071008ed07100eed1117395922b20f3201015d40b2070b052209291c00 +1c011f02170b2a002a0126123a003412440b5e0059015a0a55125a1a5a1f5930671e7b009b00 +9a0199029708950b931595169522992d1f090b090c08110c270c2818021b09190b190c19111c +141c15161d1f3227002701290923122a132a1428152f323b09341239133f324a094c144b1546 +194f3256015a09590c551259135c1f5f326a0c691160327501790c7a1193009301970295059c +079c089f089a099b0b9a0c9032a032b032395d005d010e011514163332363709013e01373306 +02070123270e01232200353436372e0135343633321617152e0123220615141601f25b55d4a0 +5fa649fe7b01fc3b4206ba0c685d0117fc8f68e483f1fece86863032deb853a555579e446983 +3b032351a15892c23f40028ffdf859cb7284fefe7efee39359570113d780e1633f7d3ca2c524 +24b62f316f583367000200c90000055405d50013001c00b14035090807030a06110304030511 +0404034206040015030415950914950d810b040506031109001c160e050a191904113f140a1c +0c041d10fcec32fcc4ec1117391139393931002f3cf4ecd4ec123912391239304b5358071005 +ed071005ed1117395922b2401e01015d40427a13010500050105020603070415001501140216 +03170425002501250226032706260726082609201e3601360246014602680575047505771388 +068807980698071f5d005d011e01171323032e012b0111231121201615140601113332363534 +2623038d417b3ecdd9bf4a8b78dcca01c80100fc83fd89fe9295959202bc16907efe68017f96 +62fd8905d5d6d88dba024ffdee8783838500000100c90000048b05d5000b002e401506950402 +950081089504ad0a05010907031c00040c10fcec32d4c4c431002fececf4ec10ee30b21f0d01 +015d132115211121152111211521c903b0fd1a02c7fd3902f8fc3e05d5aafe46aafde3aa0000 +000100100000056805d5000600b7402704110506050311020306060503110403000100021101 +010042030401af0006040302000505010710d4c4173931002fec3239304b5358071005ed0710 +08ed071008ed071005ed5922b2500801015d406200032a03470447055a037d03830307060007 +0208040906150114021a041a052a002601260229042905250620083800330133023c043c0537 +06480045014502490449054706590056066602690469057a0076017602790479057506800898 +009706295d005d21013309013301024afdc6d301d901dad2fdc705d5fb1704e9fa2b00020073 +ffe305d905f0000b00170023401306951200950c91128c1809190f33031915101810fcecfcec +310010e4f4ec10ee300122001110003332001110002720001110002120001110000327dcfefd +0103dcdc0101feffdc013a0178fe88fec6fec5fe870179054cfeb8fee5fee6feb80148011a01 +1b0148a4fe5bfe9efe9ffe5b01a40162016201a50000000100c90000053305d500090079401e +071101020102110607064207020300af0805060107021c0436071c00040a10fcecfcec113939 +31002f3cec323939304b5358071004ed071004ed5922b21f0b01015d40303602380748024707 +690266078002070601090615011a06460149065701580665016906790685018a0695019a069f +0b105d005d13210111331121011123c901100296c4fef0fd6ac405d5fb1f04e1fa2b04e1fb1f +0001006401df027f028300030011b6009c020401000410dccc310010d4ec301321152164021b +fde50283a400000200c90000048d05d500080013003a40180195100095098112100a08020400 +05190d3f11001c09041410fcec32fcec11173931002ff4ecd4ec30400b0f151f153f155f15af +1505015d011133323635342623252132041514042b0111230193fe8d9a9a8dfe3801c8fb0101 +fefffbfeca052ffdcf92878692a6e3dbdde2fda80001ffecfe1d0414feac0003000fb500a901 +00020410c4c43100d4ec30011521350414fbd8feac8f8f000000013500b800cb00cb00c100aa +009c01a600b800660000007100cb00a002b20085007500b800c301cb0189022d00cb00a600f0 +00d300aa008700cb03aa0400014a003300cb000000d9050200f4015400b4009c013901140139 +07060400044e04b4045204b804e704cd0037047304cd04600473013303a2055605a605560539 +03c5021200c9001f00b801df007300ba03e9033303bc0444040e00df03cd03aa00e503aa0404 +000000cb008f00a4007b00b80014016f007f027b0252008f00c705cd009a009a006f00cb00cd +019e01d300f000ba018300d5009803040248009e01d500c100cb00f600830354027f00000333 +026600d300c700a400cd008f009a0073040005d5010a00fe022b00a400b4009c00000062009c +0000001d032d05d505d505d505f0007f007b005400a406b80614072301d300b800cb00a601c3 +01ec069300a000d3035c037103db0185042304a80448008f0139011401390360008f05d5019a +0614072306660179046004600460047b009c00000277046001aa00e904600762007b00c5007f +027b000000b4025205cd006600bc00660077061000cd013b01850389008f007b0000001d00cd +074a042f009c009c0000077d006f0000006f0335006a006f007b00ae00b2002d0396008f027b +00f600830354063705f6008f009c04e10266008f018d02f600cd03440029006604ee00730000 +140000960000b707060504030201002c2010b002254964b040515820c859212d2cb002254964 +b040515820c859212d2c20100720b00050b00d7920b8ffff5058041b0559b0051cb0032508b0 +042523e120b00050b00d7920b8ffff5058041b0559b0051cb0032508e12d2c4b505820b0fd45 +4459212d2cb002254560442d2c4b5358b00225b0022545445921212d2c45442d2cb00225b002 +2549b00525b005254960b0206368208a108a233a8a10653a2d00000100000002570a0e576762 +5f0f3cf5001f080000000000cef5cb7600000000cef5cb76f7d6fcae0d720955000000080000 +00010000000000010000076dfe1d00000de2f7d6fa510d720001000000000000000000000000 +0000001704cd00660596007304e5007107cb00ba023900c10323003704e3fffa04bc003b028b +000005790010057d00c905140087025c00c906330073063d0081058f00c9050e00c905790010 +064c007305fc00c902e3006404d300c90400ffec0000000000000044000000dc000001800000 +0244000002940000031000000380000005040000050400000600000006b0000007a8000007f0 +0000089800000b0000000c1400000c7400000d5400000de000000e8800000eb400000f340000 +0f600001000000170354002b0068000c000200100099000800000415021600080004b8028040 +fffbfe03fa1403f92503f83203f79603f60e03f5fe03f4fe03f32503f20e03f19603f02503ef +8a4105effe03ee9603ed9603ecfa03ebfa03eafe03e93a03e84203e7fe03e63203e5e45305e5 +9603e48a4105e45303e3e22f05e3fa03e22f03e1fe03e0fe03df3203de1403dd9603dcfe03db +1203da7d03d9bb03d8fe03d68a4105d67d03d5d44705d57d03d44703d3d21b05d3fe03d21b03 +d1fe03d0fe03cffe03cefe03cd9603cccb1e05ccfe03cb1e03ca3203c9fe03c6851105c61c03 +c51603c4fe03c3fe03c2fe03c1fe03c0fe03bffe03befe03bdfe03bcfe03bbfe03ba1103b986 +2505b9fe03b8b7bb05b8fe03b7b65d05b7bb03b78004b6b52505b65d40ff03b64004b52503b4 +fe03b39603b2fe03b1fe03b0fe03affe03ae6403ad0e03acab2505ac6403abaa1205ab2503aa +1203a98a4105a9fa03a8fe03a7fe03a6fe03a51203a4fe03a3a20e05a33203a20e03a16403a0 +8a4105a096039ffe039e9d0c059efe039d0c039c9b19059c64039b9a10059b19039a1003990a +0398fe0397960d0597fe03960d03958a410595960394930e05942803930e0392fa039190bb05 +91fe03908f5d0590bb039080048f8e25058f5d038f40048e25038dfe038c8b2e058cfe038b2e +038a8625058a410389880b05891403880b03878625058764038685110586250385110384fe03 +8382110583fe0382110381fe0380fe037ffe0340ff7e7d7d057efe037d7d037c64037b541505 +7b25037afe0379fe03780e03770c03760a0375fe0374fa0373fa0372fa0371fa0370fe036ffe +036efe036c21036bfe036a1142056a530369fe03687d036711420566fe0365fe0364fe0363fe +0362fe03613a0360fa035e0c035dfe035bfe035afe0359580a0559fa03580a03571619055732 +0356fe035554150555420354150353011005531803521403514a130551fe03500b034ffe034e +4d10054efe034d10034cfe034b4a13054bfe034a4910054a1303491d0d05491003480d0347fe +0346960345960344fe0343022d0543fa0342bb03414b0340fe033ffe033e3d12053e14033d3c +0f053d12033c3b0d053c40ff0f033b0d033afe0339fe033837140538fa033736100537140336 +350b05361003350b03341e03330d0332310b0532fe03310b03302f0b05300d032f0b032e2d09 +052e10032d09032c32032b2a25052b64032a2912052a25032912032827250528410327250326 +250b05260f03250b0324fe0323fe03220f03210110052112032064031ffa031e1d0d051e6403 +1d0d031c1142051cfe031bfa031a42031911420519fe031864031716190517fe031601100516 +190315fe0314fe0313fe031211420512fe0311022d05114203107d030f64030efe030d0c1605 +0dfe030c0110050c16030bfe030a100309fe0308022d0508fe030714030664030401100504fe +03401503022d0503fe0302011005022d0301100300fe0301b80164858d012b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b1d00> +] def +/f-0-0 currentdict end definefont pop +%%EndResource +%%BeginResource: font DejaVuSans-Bold +11 dict begin +/FontType 42 def +/FontName /DejaVuSans-Bold def +/PaintType 0 def +/FontMatrix [ 1 0 0 1 0 0 ] def +/FontBBox [ 0 0 0 0 ] def +/Encoding 256 array def +0 1 255 { Encoding exch /.notdef put } for +Encoding 79 /O put +Encoding 82 /R put +/CharStrings 3 dict dup begin +/.notdef 0 def +/O 1 def +/R 2 def +end readonly def +/sfnts [ +<000100000009008000030010637674203eb9310800000268000002546670676d5b026bf00000 +04bc000000ac676c7966581f41560000009c000001cc68656164045e38fb0000056800000036 +686865610eaf0774000005a000000024686d747811c30188000005c40000000c6c6f63610000 +02f8000005d0000000106d6178700648062d000005e000000020707265707c61a2e700000600 +000007a700020066fe96046605a400030007001fbc00040126000000060126b6010805890204 +002fc4d4ec310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f27206 +2900000000020066ffe3066605f0000b00170032401306ae1200ae0c9c129818092d0f37032d +152b1810fcecfcec310010e4f4ec10ee30400b0019171310192f193f1905015d012202151412 +3332123534020320001110002120001110000366b0c2c2b0b1c2c2b101680198fe68fe98fe99 +fe67019904d9fefcecebfefc0104ebec01040117fe64fe95fe96fe64019c016a016b019c0000 +000200bc0000060005d50008001c008740321b1a021c191d161716181d1717162519160a1300 +ae0906ae0c8d170a16131803101c190600040d07031617100907160b031d10fcec32d4c4ec11 +39173911173931002f3cf4ecd4ec39123939304b5358071005ed071005ed1117395922b2181c +01015d401f1b181b191a1a1b1b1a1c361536164515451656155616501e65156516601e0f5d01 +32363534262b0119022111212004151406071e01171321032e012302df79696979a2fe7f024c +012701138f904f7d40d1fe66b637715e033f5a676658fe81fef6fdcb05d5c6d694be2d127f81 +fe5801737052000001660133016600bc00e90000013d00a200fa031f00020002006601660002 +000200ac015400ec00bc006201660181048501540166016d04a400020166007f04cd00000002 +0133006200710000002504a401bc00ba00e500660181018d0548055a0166016d000000000002 +000200f605c301f0053902390058046d043d04b2048104b2016601750466048100b004660439 +02d1049c047b04cf047b005801330166014c0166014c000200ac009a014a0123009a029a0144 +0119014402cd00c100000166013f019a013b05cb05cb00d500d5015000ac00ac0077020a01c7 +01f2012f015801b2012300f600f6011f012f0135023501ee01e70133009800d10358050a009a +008f0112009800bc00cd00e500e500f2007304000166008f05d5022b05d500c300e100d700e5 +0000006a01020000001d032d05d505d505f000a8006a00ec00e1010205d506140721046602f8 +00ec018302a602f80123010201020112011f031f005e03cd046004c7048900ec01bc00ba0102 +0333031f03420333035c0112011f05d5019a009a00e106660179046004600460047b000000ec +02c302b802cd00be00dd00d50000006a025c027b029a00dd01ae01ba01120000008501ae0460 +0762041b009a069a045800ee009a029a00d102cd019a015005cb05cb008b008b063100f60406 +00f0034c016004a800c10000002505c101000121074a06120096014a078300a800000337007b +0014000000c9010005c105c105c105c101000108061d00960427039e00ec0102027d01330098 +00d10358017900cd02390362009c009c009c009301b8009300b80073000014000326b7070605 +04030201002c2010b002254964b040515820c859212d2cb002254964b040515820c859212d2c +20100720b00050b00d7920b8ffff5058041b0559b0051cb0032508b0042523e120b00050b00d +7920b8ffff5058041b0559b0051cb0032508e12d2c4b505820b80128454459212d2cb0022545 +60442d2c4b5358b00225b0022545445921212d2c45442d2cb00225b0022549b00525b0052549 +60b0206368208a108a233a8a10653a2d000100000002570aca280dd25f0f3cf5001f08000000 +0000cef5cb7000000000cef5cb70f772fcae0fcd096500010008000000010000000000010000 +076dfe1d00001021f772f9320fcd00010000000000000000000000000000000304cd006606cd +0066062900bc000000000000004c000000e0000001cc000100000003034e002b0078000c0002 +001000400008000005ed02210008000441840280012600fe000301250011000301240121003a +0005012400fa000301230016000301220121003a0005012200fe00030121003a0003012000fa +0003011f00bb0003011e00640003011d00fe0003011c00190003011b001e0003011a00fe0003 +011900fe0003011800fe0003011700fe0003011600fe000301150114000e0005011500fe0003 +0114000e0003011300fe0003011200fe0003010f010e007d0005010f00fe0003010e007d0003 +010d010c008c0005010d00fe0003010d00c00004010c010b00590005010c008c0003010c0080 +0004010b010a00260005010b00590003010b00400004010a00260003010900fe0003010800fe +00030107000c00030107008000040106b2972e054113010600fa0003010500fa0003010400fe +0003010300190003010200fa0003010100fa0003010040ff7d03ff3e03fefe03fcfb2c05fcfe +03fb2c03fafe03f9f84705f97d03f84703f7fa03f6fe03f5fe03f4fe03f3bb03f2fe03f1fe03 +f0fe03ef1e03eefe03edec0a05edfe03ec0a03ec4004ebea0a05eb3203ea0a03e9fa03e89116 +05e8fe03e7fa03e6fa03e5911605e5fe03e4fe03e3fe03e2fe03e1fe03e0fe03dffe03defa03 +dddc1805dd6403dc1803dba01e05db6403dad92505dafa03d92503d8d12505d8fa03d7d61405 +d71603d6d51005d61403d51003d4d30b05d42003d30b03d2d12505d2fa03d1911605d12503d0 +940c05d02303cfce1405cf2603cecd1205ce1403cd1203cc911605cc1d03cb1403cac9bb05ca +fe03c9c85d05c9bb03c98004c840ffc72505c85d03c84004c72503c6fe03c56403c4901005c4 +fe03c31c03c2fe03c1fe03c0bf3a05c0fa03bfad1b05bf3a03bebd1a05be3203bdbc1105bd1a +03bcbb0f05bc1103bbba0c05bb0f03ba0c03b9911605b9fe03b8fe03b71503b61203b5fe03b4 +fe03b3fe03b21703b11903b01603afad1b05affa03aead1b05aefa03ad911605ad1b03ac9116 +05ac7d03abfe03aa2603a9fe03a8fe03a7fe03a6fe03a50a03a4fe03a3a20e05a3fe03a20e03 +a24004a1a01e05a1fa03a0911605a01e039f9116059ffa039e940c059e1c039dfe039c9bbb05 +9cfe039b9a5d059bbb039b80049a8f25059a5d039a400499fe0398972e0598fe03972e039691 +1605961e40ff0395940c05952003940c0393911605934b039291160592fe0391901005911603 +9010038f25038efe038dfe038cfe038bfe038afe0389fe038887250588fe0387250386fe0385 +fe0384320383960382fe0381fe038019037f0a037efe037dfe037cfe037bfa037afa0379fe03 +7776a60577fe0376a60375741b0575fa03741b0373fa03727d0371fe03706f2c056f2c036efa +036dfa036cfa036bfe036afe0369fe0368630c0568320367fe0366320365640a0565fe03640a +0364400463620a05630c03620a0361601505619603600111056015035f0a035efe035dfe035c +0111055cfe035b5a1b055bfe035a0111055a1b0359fe0358fa0357fe035601110540ff56fe03 +55fe03541e035314035251190552fa0351011105511903504f190550fa034f4e11054f19034e +11034d1e034c4b14054c15034b4a11054b14034a490e054a1103490e0348fa03474614054715 +0346140345fa0344430e05440f03430e034241250542fa0341011105412503403f0f0540fe03 +3f3e0e053f0f033e0e033d3c0d053d16033c0d033b64033afe0339140338fe0337130336351a +0536250335341405351a0335c004340a0d0534140334800433320c05331403334004320c0331 +30a60531fe033001110530a6032f0c032e13032d2c3a052dfa032c1525052c3a032b64032a64 +0329fe0328150327171105271e03262003251e0324231105402b241e0323110322000d0522fa +03210f032140042014031f0a031e1e031d1c19051d25031c0f13051c19031cb801004091041b +0d031a194b051a7d0319011105194b0318fe031711031615250516fa03150111051525031464 +0313110312fe031101110511fe031064030f0e10050f13030fc0040e10030e80040d0111050d +fa030c32030b0a0d050b16030b80040a0d030a400409fe0308fe0307fe0306050a0506fe0305 +0a0305400404fa030364030201110502fe0301000d05011103000d0301b80164858d012b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d0000> +] def +/f-1-0 currentdict end definefont pop +%%EndResource +%%EndSetup +%%Page: 1 1 +%%BeginPageSetup +%%PageBoundingBox: 75 179 475 425 +%%EndPageSetup +q 75 179 400 246 rectclip q +0 g +2.4 w +1 J +1 j +[] 0.0 d +4 M q 1 0 0 -1 0 433.896301 cm +137.555 66.457 96 80 re S Q +BT +17.6 0 0 17.6 150.69448 331.751667 Tm +/f-0-0 1 Tf +[(Commit)]TJ +0.862305 -1.25 Td +(Tx A)Tj +ET +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +250.605 25.652 m 178.293 25.078 l 178.293 65.078 l S Q +178.293 376.818 m 175.094 380.017 l 178.293 368.818 l 181.492 380.017 l + h +178.293 376.818 m f* +0.8 w +q 0.0000002 1 1 -0.0000002 0 433.896301 cm +-57.078 178.293 m -53.879 175.094 l -65.078 178.293 l -53.879 181.492 l + h +-57.078 178.293 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +315.172 67.43 96 80 re S Q +BT +17.6 0 0 17.6 328.310715 330.78111 Tm +/f-0-0 1 Tf +[(Commit)]TJ +0.861328 -1.25 Td +(Tx B)Tj +ET +q 1 0 0 -1 0 433.896301 cm +297.879 34.363 m 297.879 47.617 287.133 58.363 273.879 58.363 c 260.621 + 58.363 249.879 47.617 249.879 34.363 c 249.879 21.109 260.621 10.363 273.879 + 10.363 c 287.133 10.363 297.879 21.109 297.879 34.363 c h +297.879 34.363 m S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +273.879 10.363 m 273.879 58.363 l S Q +q 1 0 0 -1 0 433.896301 cm +249.879 34.363 m 297.879 34.363 l S Q +q 1 0 0 -1 0 433.896301 cm +250.605 41.652 m 194.293 41.652 l 194.293 65.078 l S Q +194.293 376.818 m 191.094 380.017 l 194.293 368.818 l 197.492 380.017 l + h +194.293 376.818 m f* +0.8 w +q 0.000000341463 1 1 -0.000000341463 0 433.896301 cm +-57.078 194.293 m -53.879 191.094 l -65.078 194.293 l -53.879 197.492 l + h +-57.078 194.293 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +296.574 25.652 m 368.883 25.078 l 368.887 65.078 l S Q +368.887 376.818 m 365.684 380.017 l 368.887 368.818 l 372.086 380.017 l + h +368.887 376.818 m f* +0.8 w +q -0.0000002 1 1 0.0000002 0 433.896301 cm +-57.078 368.887 m -53.879 365.684 l -65.078 368.887 l -53.879 372.086 l + h +-57.078 368.887 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +296.574 41.652 m 352.883 41.652 l 352.887 65.078 l S Q +352.887 376.818 m 349.684 380.017 l 352.887 368.818 l 356.086 380.017 l + h +352.887 376.818 m f* +0.8 w +q -0.000000341463 1 1 0.000000341463 0 433.896301 cm +-57.078 352.887 m -53.879 349.684 l -65.078 352.887 l -53.879 356.086 l + h +-57.078 352.887 m S Q +BT +12 0 0 12 154.199851 353.916559 Tm +/f-0-0 1 Tf +(SIG A & B)Tj +14.845178 -0.134686 Td +[(SIG A &)-319(B)]TJ +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +154.352 146.453 m 154.48 162.617 l 98.852 162.617 l 98.852 186.047 l S Q +98.852 255.849 m 95.648 259.053 l 98.852 247.849 l 102.051 259.053 l h +98.852 255.849 m f* +0.8 w +q 0.000000341463 1 1 -0.000000341463 0 433.896301 cm +-178.047 98.852 m -174.844 95.648 l -186.047 98.852 l -174.844 102.051 +l h +-178.047 98.852 m S Q +BT +12 0 0 12 74.360245 239.841376 Tm +/f-0-0 1 Tf +(SIG B)Tj +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +186.359 146.055 m 186.359 202.055 l S Q +186.359 239.842 m 183.16 243.041 l 186.359 231.842 l 189.559 243.041 l +h +186.359 239.842 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-194.055 186.359 m -190.855 183.16 l -202.055 186.359 l -190.855 189.559 + l h +-194.055 186.359 m S Q +BT +12 0 0 12 98.003489 217.457611 Tm +/f-0-0 1 Tf +[(REV)17(OCA)77(TION-)21(A & SIG B)]TJ +/f-1-0 1 Tf +5.02832 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-3.206055 -1.25 Td +[(OP_CSV & SIG A)]TJ +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +403.176 146.453 m 403.047 162.617 l 458.676 162.617 l 458.676 186.047 l + S Q +458.676 255.849 m 455.477 259.053 l 458.676 247.849 l 461.879 259.053 l + h +458.676 255.849 m f* +0.8 w +q -0.000000341463 1 1 0.000000341463 0 433.896301 cm +-178.047 458.676 m -174.844 455.477 l -186.047 458.676 l -174.844 461.879 + l h +-178.047 458.676 m S Q +BT +12 0 0 12 441.962302 234.992646 Tm +/f-0-0 1 Tf +(SIG A)Tj +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +361.629 149.289 m 361.629 205.289 l S Q +361.629 236.607 m 358.43 239.81 l 361.629 228.607 l 364.828 239.81 l h +361.629 236.607 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-197.289 361.629 m -194.086 358.43 l -205.289 361.629 l -194.086 364.828 + l h +-197.289 361.629 m S Q +BT +12 0 0 12 331.539304 213.416986 Tm +/f-0-0 1 Tf +[(REV)17(OCA)77(TION-)34(B & SIG A)]TJ +/f-1-0 1 Tf +5.021484 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-3.207031 -1.25 Td +[(OP_CSV & SIG B)]TJ +ET +Q Q +showpage +%%Trailer +end restore +%%EOF diff --git a/doc/commit-tx.svg b/doc/commit-tx.svg new file mode 100644 index 000000000..a3152ae8d --- /dev/null +++ b/doc/commit-tx.svg @@ -0,0 +1,494 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + CommitTx A + + + CommitTx B + + + + + + + SIG A & B + SIG A & B + + SIG B + + REVOCATION-A & SIG BOROP_CSV & SIG A + + SIG A + + REVOCATION-B & SIG AOROP_CSV & SIG B + + diff --git a/doc/deployable-lightning.lyx b/doc/deployable-lightning.lyx new file mode 100644 index 000000000..ede692ef1 --- /dev/null +++ b/doc/deployable-lightning.lyx @@ -0,0 +1,1963 @@ +#LyX 2.1 created this file. For more info see http://www.lyx.org/ +\lyxformat 474 +\begin_document +\begin_header +\textclass article +\begin_preamble +% for subfigures/subtables +\usepackage[caption=false,font=footnotesize]{subfig} +\end_preamble +\options journal +\use_default_options false +\maintain_unincluded_children false +\language english +\language_package none +\inputencoding default +\fontencoding global +\font_roman default +\font_sans default +\font_typewriter default +\font_math auto +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 +\font_tt_scale 100 +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command bibtex +\index_command default +\float_placement H +\paperfontsize default +\spacing single +\use_hyperref true +\pdf_title "Your Title" +\pdf_author "Your Name" +\pdf_bookmarks true +\pdf_bookmarksnumbered true +\pdf_bookmarksopen true +\pdf_bookmarksopenlevel 1 +\pdf_breaklinks false +\pdf_pdfborder true +\pdf_colorlinks false +\pdf_backref false +\pdf_pdfusetitle false +\pdf_quoted_options "pdfpagelayout=OneColumn, pdfnewwindow=true, pdfstartview=XYZ, plainpages=false" +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 0 +\use_package esint 0 +\use_package mathdots 1 +\use_package mathtools 0 +\use_package mhchem 1 +\use_package stackrel 0 +\use_package stmaryrd 0 +\use_package undertilde 0 +\cite_engine basic +\cite_engine_type default +\biblio_style ieeetr +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\quotes_language english +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Title +Reaching The Ground With Lightning (draft 0.1) +\end_layout + +\begin_layout Author +Rusty Russell +\end_layout + +\begin_layout Abstract +The Lightning Network (as proposed by Joseph Poon and Thaddeus Dryja +\begin_inset CommandInset citation +LatexCommand cite +key "Poon2015Lightning" + +\end_inset + +) requires some new sighash modes in order to work with Bitcoin. + This paper proposes a simplified variant which requires only modifications + which are already proposed for bitcoin, and slightly simplifies the revocation + of existing contracts. +\end_layout + +\begin_layout Abstract +Keywords: bitcoin, lightning, revocation hash, HTLC +\end_layout + +\begin_layout Section +Introduction +\end_layout + +\begin_layout Standard +The Bitcoin network +\begin_inset CommandInset citation +LatexCommand cite +key "nakamoto2008bitcoin" + +\end_inset + + allows the transfer of value between peers using +\emph on +transactions. + +\emph default + Each bitcoin transaction consists of one or more +\emph on +outputs +\emph default + (typically specifying the hash of the recipient's key), and one or more + +\emph on +inputs +\emph default + (typically containing the recipient's key and a signature of the transaction). + Thus one transfers value to another peer by creating a transaction which + +\emph on +spends +\emph default + one or more outputs and creates an output which the recipient can spent + using their private key. +\end_layout + +\begin_layout Standard +While such cryptographic transfer of value is near-instantaneous, ensuring + that the transaction has been included in the consensus of the shared ledger + (aka. + +\emph on +blockchain +\emph default +) creates delays ranging from a few minutes to hours, depending on the level + of reliability required. + Inclusion in the blockchain is performed by miners, who preferentially + include transactions paying greatest fee per byte. +\end_layout + +\begin_layout Standard +Thus using the blockchain directly is slow, and too expensive for genuinely + small transfers (typical fees are a few cents). +\end_layout + +\begin_layout Section +Previous Work +\end_layout + +\begin_layout Standard +To work around the bitcoin network's delays and fees, several forms of +\emph on +off-chain +\emph default + transaction patterns have been developed, where series of transactions + are sent directly between two parties, with only the initial opening transactio +n and final redemption transaction being included in the bitcoin blockchain. +\end_layout + +\begin_layout Standard +The Lightning Network paper proposed a solution, but at the cost of introducing + new signature variants (sighash ops). + Adding a new signature opcode would allow many other improvements +\begin_inset Foot +status collapsed + +\begin_layout Plain Layout +Schnorr signatures offer faster batch validation, according to https://github.com +/ElementsProject/elementsproject.github.io#schnorr-signature-validation +\end_layout + +\end_inset + + +\begin_inset Foot +status collapsed + +\begin_layout Plain Layout +DER encoding adds unnecessary bytes and is a cause of malleability +\end_layout + +\end_inset + + but that is precisely why it's a matter for longer term research and unlikely + to be deployed in Bitcoin in the immediate future. +\end_layout + +\begin_layout Subsection +Payment Channels +\end_layout + +\begin_layout Standard +The concept of +\emph on +payment channels +\emph default + (sometimes called micropayment channels) has existed in various forms for + several years +\begin_inset CommandInset citation +LatexCommand cite +key "BitcoinChannels" + +\end_inset + +. + The simplest form is as follows, and allows A to quickly and cheaply pay + B a stream of slightly increasing amounts: +\end_layout + +\begin_layout Enumerate +A creates an +\emph on +anchor +\emph default + transaction to +\emph on +open the channel +\emph default + which: +\end_layout + +\begin_deeper +\begin_layout Enumerate +Outputs $1, +\end_layout + +\begin_layout Enumerate +Requires the signatures of both A and B to redeem. +\end_layout + +\end_deeper +\begin_layout Enumerate +A sends the transaction ID of the anchor, which output to spend, and the + amount of that output to B. +\end_layout + +\begin_layout Enumerate +B signs a +\begin_inset Quotes eld +\end_inset + +refund +\begin_inset Quotes erd +\end_inset + + transaction which: +\end_layout + +\begin_deeper +\begin_layout Enumerate +spends that anchor output, +\end_layout + +\begin_layout Enumerate +outputs the $1 to an address controlled by A, and +\end_layout + +\begin_layout Enumerate +can only be spent in 24 hours (using the +\emph on +locktime +\emph default + field) +\end_layout + +\end_deeper +\begin_layout Enumerate +B sends A the refund transaction. +\end_layout + +\begin_layout Enumerate +A broadcasts the anchor transaction, knowing she can get the funds back + in 24 hours using the refund if B vanishes. +\end_layout + +\begin_layout Standard +A can now pay B 1 cent by signing a new +\emph on +commitment +\emph default +transaction to send to B, which spends the anchor output and has two outputs: + one pays A 99c, and the other pays B 1 cent. + A can later pay B another cent by signing another transaction ( +\begin_inset Quotes eld +\end_inset + +updating the commitment +\begin_inset Quotes erd +\end_inset + +) for B which pays A 98c and B 2c, etc. +\end_layout + +\begin_layout Standard +At any point, B can +\begin_inset Quotes eld +\end_inset + +close the channel +\begin_inset Quotes erd +\end_inset + + by signing and broadcasting the latest commitment transaction to collect + the money. + B should do this before 24 hours pass, otherwise A can use the refund transacti +on. +\end_layout + +\begin_layout Subsubsection +Limitations Of Simple Payment Channels +\end_layout + +\begin_layout Standard +Simple channels have several limitations: +\end_layout + +\begin_layout Description +Single +\begin_inset space ~ +\end_inset + +recipient. + A new recipient requires a new channel, which must wait for consensus on + the anchor transaction. +\end_layout + +\begin_layout Description +One +\begin_inset space ~ +\end_inset + +way. + They cannot be reversed: A can sign a transaction which pays B less money + than the last, but B could still broadcast the older transaction. +\end_layout + +\begin_layout Description +Vulnerable +\begin_inset space ~ +\end_inset + +to +\begin_inset space ~ +\end_inset + +malleability. + The anchor transaction could be altered in several ways (without invaliding + it completely) before inclusion in the blockchain: this alters its transaction + id and thus makes the refund transaction unusable. +\end_layout + +\begin_layout Standard +This last issue is a common one with complex bitcoin transactions, and BIP62 +\begin_inset CommandInset citation +LatexCommand cite +key "BIP62" + +\end_inset + + is proposed to prevent non-signing parties from being able to malleate + transactions. + +\end_layout + +\begin_layout Subsection +Generalized Payment Channels Using Revocable Transactions +\end_layout + +\begin_layout Standard +The Lightning network introduced generalized, bi-directional payment channels, + referred to here as +\emph on +Poon-Dryja channels +\emph default +. + These use a mutual anchor, which both create to provide the channel funding, + and a symmetrical +\emph on +pair +\emph default + of updatable commitment +\emph on + +\emph default +transactions rather than the single transaction used in the one-way channel + case. +\end_layout + +\begin_layout Standard +[FIXME: Insert Figure 1 from LN draft 0.5] +\end_layout + +\begin_layout Standard +To update the commitment, A sends B a signature for B's new commitment transacti +on, and B sends A a signature for A's new commitment transaction. +\end_layout + +\begin_layout Standard +As before, each commitment transaction contains two outputs, one for A and + one for B; but A's commitment transaction output to itself is encumbered + by an additional restriction (as is B's output to itself). + Instead of paying A directly, needs both A and B's signature. + B provides such a signature, but on a +\begin_inset Quotes eld +\end_inset + +commitment refund +\begin_inset Quotes erd +\end_inset + + transaction which can only be spent after a delay (40 days in the paper). + Thus if A closes the channel by signing and broadcasting its commitment + transaction, B can collect its output immediately, but A must wait 40 days. +\end_layout + +\begin_layout Standard +This delay encumbering the output is what makes the commitment transaction + +\emph on +revocable; +\emph default + once an updated commitment transaction is agreed upon, the previous commitment + transaction pair is revoked by sharing the private keys needed to redeem + those encumbered outputs. + Thus, A shares its (throwaway) private key, and B shares its throwaway + private key. + If A were to sign and broadcast a revoked commitment transaction, B could + not only immediately spend its own output, but it has both A's key and + its own to generate a transaction which can spend the output which would + normally go to A after a delay. +\end_layout + +\begin_layout Subsection +Hashed Timelock Contracts (HTLCs) +\end_layout + +\begin_layout Standard +The Lightning Network paper used a set of 4 transactions to implement a +\emph on + hashed timelock contract, +\emph default +which guarantees payment of a given amount on presentation of a secret value + +\emph on +R +\emph default + within a certain timespan. + Any number of these could be active within a generalized channel, and this + is what allows a network to form: Node A offers node B $1 for the secret + within 2 days, node B offers node C 99c for the secret within 1 day, etc. +\end_layout + +\begin_layout Standard +[ FIXME: Insert figure 2 from LN Draft 0.5 ] +\end_layout + +\begin_layout Section +Enhancements To Lightning +\end_layout + +\begin_layout Standard +This paper proposes various modifications. +\end_layout + +\begin_layout Subsection +Poon-Dryja Generalized Payment Channel Modifications +\end_layout + +\begin_layout Standard +This paper proposes three of these. +\end_layout + +\begin_layout Subsubsection +Placing Timeout in Output Script +\end_layout + +\begin_layout Standard +Rather than using a separate transaction to enforce the delay, BIP65 +\begin_inset CommandInset citation +LatexCommand cite +key "BIP65" + +\end_inset + + proposes an OP_CHECKLOCKTIMEVERIFY which allows an output to specify the + minimum time at which it can be spent. + With this enhancement, we no longer need a separate +\begin_inset Quotes eld +\end_inset + +commitment refund +\begin_inset Quotes erd +\end_inset + + transaction. + The commitment transaction to-self output script would be a little more + complex: +\end_layout + +\begin_layout Itemize +A and B's signature, OR +\end_layout + +\begin_layout Itemize +A's signature and OP_CHECKLOCKTIMEVERIFY <40 days> +\end_layout + +\begin_layout Subsubsection +Using Relative Locktime +\end_layout + +\begin_layout Standard +The Poon-Dryja channel uses a 40 day locktime, because transaction locktime + is absolute. + Before 40 days the channel must be closed otherwise spending a revoked + transaction and immediately following it with the commit refund transaction + is possible. +\end_layout + +\begin_layout Standard +A proposal to extend output scripts to specify a minimum +\emph on +relative +\emph default + time before they can be spent +\begin_inset CommandInset citation +LatexCommand cite +key "friedenbach_bitcoin-development_2015" + +\end_inset + + can reduce this timeout (say, to 1 day) and avoid placing a lifetime limit + on the channel, like so: +\end_layout + +\begin_layout Itemize +A and B's signature, OR +\end_layout + +\begin_layout Itemize +A's signature and OP_CHECKSEQUENCEVERIFY <1 day> +\end_layout + +\begin_layout Subsubsection +Using Revocation Preimages Instead of Private Keys +\end_layout + +\begin_layout Standard +There's a slightly more intuitive and more efficient method than exchanging + private keys, which is to reuse a technique of hash preimages which is + already needed for HTLCs (as we see later). +\end_layout + +\begin_layout Standard +Instead of using a private keys, B uses knowledge of a hash preimage as + well as its signature to steal funds from a revoked commitment transaction. + Thus, to create a commitment transaction each side provides a hash value; + to revoke a commitment transaction it provides the prehash image. +\end_layout + +\begin_layout Standard +The resulting commitment transaction to-self output now looks like: +\end_layout + +\begin_layout Itemize +B's signature and a preimage which hashes to , OR +\end_layout + +\begin_layout Itemize +A's signature and OP_CHECKSEQUENCEVERIFY <1 day> +\end_layout + +\begin_layout Standard +This can be expressed fairly easily in bitcoin's script-based scripting + language, as annotated in +\begin_inset CommandInset ref +LatexCommand ref +reference "sub:Commitment-Outputs-For" + +\end_inset + +. + The final pair of commitment transaction outputs is shown in Figure +\begin_inset CommandInset ref +LatexCommand ref +reference "fig:Commitment-Transaction-Outputs" + +\end_inset + +. +\end_layout + +\begin_layout Standard +\begin_inset Float figure +wide false +sideways false +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename commit-tx.eps + scale 50 + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +Commitment Transaction Outputs +\begin_inset CommandInset label +LatexCommand label +name "fig:Commitment-Transaction-Outputs" + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Subsection +Channel Opening Modifications +\end_layout + +\begin_layout Standard +The method of creating the first commitment transaction before signing the + anchor transaction (as proposed in the paper) presents two problems in + practice: +\end_layout + +\begin_layout Enumerate +The anchor transaction id required for the commitment input will only be + known one the anchor is signed, and +\end_layout + +\begin_layout Enumerate +The anchor transaction can be malleated by either party before entering + the blockchain, rendering the commitment input unusable. +\end_layout + +\begin_layout Standard +The last of these is particularly pernicious, as BIP62 doesn't solve it: + signatories can always re-sign a transaction, hence altering its transaction + ID. + The paper proposes new SIGHASH flags which mitigate this problem, but we + are attempting to avoid that. +\end_layout + +\begin_layout Standard +For ease of understanding, we develop the protocol in stages. + Please note that the intermediary proposals are insecure! +\end_layout + +\begin_layout Subsubsection +Separate Anchor Transactions +\end_layout + +\begin_layout Standard +To avoid the problem of needing all anchor signatures to derive the anchor + transaction ID to create the commitment transaction input, we split the + anchor into two transactions; thus A knows its anchor transaction ID, and + B knows its anchor transaction ID as shown in Figure +\begin_inset CommandInset ref +LatexCommand ref +reference "fig:Simplistic-Dual-Anchor" + +\end_inset + +. +\end_layout + +\begin_layout Standard +\align center +\begin_inset Float figure +wide false +sideways false +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename dual-anchor-diag1.eps + scale 50 + +\end_inset + + +\begin_inset Caption Standard + +\begin_layout Plain Layout +Simplistic Dual Anchor Design +\begin_inset CommandInset label +LatexCommand label +name "fig:Simplistic-Dual-Anchor" + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +This form allows A and B to create commitment transactions which spends + the anchors outputs by exchanging anchor transaction IDs. + It has the problem that if the other party does not then broadcast its + anchor transaction, we cannot spend the commitment transaction, and our + own anchor funds are stuck. +\end_layout + +\begin_layout Standard +This we introduce an +\emph on +escape +\emph default + transaction, which lets us regain our anchor funds in that case, as shown + in Figure +\begin_inset CommandInset ref +LatexCommand ref +reference "fig:Dual-Anchor2" + +\end_inset + +. +\end_layout + +\begin_layout Standard +\begin_inset Float figure +wide false +sideways false +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename dual-anchor-diag2.eps + scale 50 + +\end_inset + + +\begin_inset Caption Standard + +\begin_layout Plain Layout +Dual Anchor With Simple Escape Transactions +\begin_inset CommandInset label +LatexCommand label +name "fig:Dual-Anchor2" + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +However, this escape transaction would let either side remove its funds + from the channel at any time, which would make the channel insecure. + Thus, after the commitment transactions have been established, we want + to revoke the escape transactions. + We can do the same way we did for the commitment transaction revocation; + by placing restrictions on the +\begin_inset Quotes eld +\end_inset + +to-me +\begin_inset Quotes erd +\end_inset + + output. + In particular, adding a delay if paying back to the anchor owner, and allowing + it to be spent by the other party immediately if they possess the revocation + preimage, as shown in Figure +\begin_inset CommandInset ref +LatexCommand ref +reference "fig:Anchor-revoc-escape" + +\end_inset + +. +\end_layout + +\begin_layout Standard +\begin_inset Float figure +wide false +sideways false +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename dual-anchor-diag3.eps + scale 50 + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +Dual Anchors With Revocable Escape Transactions +\begin_inset CommandInset label +LatexCommand label +name "fig:Anchor-revoc-escape" + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Unfortunately, this revocation is not a complete solution; if B uses its + escape transaction, A can collect B's anchor funds, but it has no way of + collecting its own! The commitment transaction cannot be used, as one of + its inputs has been spent by B's escape transaction. + A's own escape transaction has been revoked, so B would simply steal the + funds. +\end_layout + +\begin_layout Standard +Thus we need an additional construction, such that using one escape transaction + immediately unlocks the other anchor funds for its owner. + To do this, we ensure that the escape transaction is forced to reveal a + secret, which is a fairly well-established technique +\begin_inset CommandInset citation +LatexCommand cite +key "nolan_alt" + +\end_inset + +. + The anchor transaction is modified to either require both signatures (for + the commitment transaction), or both signatures and the secret (for the + escape transaction), as shown in Figure +\begin_inset CommandInset ref +LatexCommand ref +reference "fig:Secret-Revelation-by" + +\end_inset + +. +\end_layout + +\begin_layout Standard +\begin_inset Float figure +wide false +sideways false +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename dual-anchor-diag4.eps + scale 50 + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +Secret Revelation by Escape Transactions +\begin_inset CommandInset label +LatexCommand label +name "fig:Secret-Revelation-by" + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +That revealed secret can be used with the other alternative: the +\emph on +fast escape transaction. + +\emph default + This reveals the secret just like the escape transaction, but its output + is immediately usable if one knows the other side's secret. + This is shown in Figure +\begin_inset CommandInset ref +LatexCommand ref +reference "fig:Final-Dual-Anchor" + +\end_inset + +. + Thus, if the B broadcasts its escape transaction after it has been revoked, + A can (after ensuring escape B is sufficiently deep in the block chain) + broadcast its fast escape transaction and use B's secret to immediately + spend the output. +\end_layout + +\begin_layout Standard +On the other hand, if B broadcasts its fast escape transaction without knowing + A's secret, A can simply wait for the timeout and spend the fast escape + output, then use its own fast escape transaction and B's secret to recover + its own anchor funds as well. +\end_layout + +\begin_layout Standard +\begin_inset Float figure +wide false +sideways false +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename dual-anchor-final.eps + scale 50 + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +Final Dual Anchor Design +\begin_inset CommandInset label +LatexCommand label +name "fig:Final-Dual-Anchor" + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +The final scripts are shown in +\begin_inset CommandInset ref +LatexCommand ref +reference "sec:Appendix-A:-Scripts" + +\end_inset + +. +\end_layout + +\begin_layout Subsubsection +Disadvantages of The Dual Anchor Approach +\end_layout + +\begin_layout Standard +Unlike the mutual anchor approach, use of escape transactions is not outsourcabl +e: you cannot have an untrusted third party which can monitor the network + for the other sides' revoked escape transaction and respond with your own + escape transaction. + If you were to provide a third party with your fast escape transaction, + you would necessarily provide it with the secret, which it could give to + B. +\end_layout + +\begin_layout Subsection +Hashed Timelock Contract (HTLC) Modification +\end_layout + +\begin_layout Standard +Using the same techniques used above, we can condense each HTLC into a single + output script on the commitment transaction. + This output is spendable under three conditions: +\end_layout + +\begin_layout Enumerate +Recipient knows the R value (funds go to recipient), or +\end_layout + +\begin_layout Enumerate +The HTLC has timed out (funds return to sender), or +\end_layout + +\begin_layout Enumerate +The Commit transaction has been revoked (funds to go other side). +\end_layout + +\begin_layout Standard +Unlike the original paper, we use revocation preimages instead of sharing + temporary private keys. + If we also use OP_CHECKLOCKTIMEVERIFY and OP_CHECKSEQUENCEVERIFY it is + fairly simple to express these conditions in a single output script. +\end_layout + +\begin_layout Standard +For each direction the HTLC could transfer funds, there are two scripts + required; one for A's commitment transaction and one for B's commitment + transaction. + It's also a requirement that the conditions which allow payment to oneself + be delayed, to give the other side an opportunity to take the funds in + case of revocation. + This is shown in figure +\begin_inset CommandInset ref +LatexCommand ref +reference "fig:HTLC-Using-Revocation" + +\end_inset + +. +\end_layout + +\begin_layout Standard +\begin_inset Float figure +wide false +sideways false +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename htlc.eps + scale 50 + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +HTLC Using Revocation Preimages, OP_CLV and OP_CSV +\begin_inset CommandInset label +LatexCommand label +name "fig:HTLC-Using-Revocation" + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +The scripts for this can be found in +\begin_inset CommandInset ref +LatexCommand ref +reference "sec:Appendix-A:-Scripts" + +\end_inset + +. +\end_layout + +\begin_layout Section +Conclusions +\end_layout + +\begin_layout Standard +Secret preimages can replace exposure of temporary private keys in the Lightning + Network constructs with no loss of generality, and a slight gain in simplicity. +\end_layout + +\begin_layout Standard +The use of script conditionals to enforce timeouts instead of using separate + pre-signed transactions reduces an HTLC from a set of four dual-signed + transactions to a single (more complex) output script, and additionally + avoids any requirement for new CHECKSIG flags for HTLCs. +\end_layout + +\begin_layout Standard +By using a dual anchor and escape transactions, channel establishment can + also avoid new CHECKSIG flags, though it loses the important ability to + outsource the enforcement of channel contract terms. +\end_layout + +\begin_layout Section* +Acknowlegments +\end_layout + +\begin_layout Standard +Thanks to Joseph Poon for designing the escape/fast-escape dual-anchor method, + as well as finding a flaw in my original formulation of the dual anchor + construct and reviewing an earlier draft of this paper. + Also thanks to him and Thaddeus Dryja for the initial eye-opening Lightning + Network paper. +\end_layout + +\begin_layout Standard +\begin_inset CommandInset bibtex +LatexCommand bibtex +bibfiles "bitcoin" +options "plain" + +\end_inset + + +\end_layout + +\begin_layout Section* +Appendix A: Transaction Scripts +\begin_inset CommandInset label +LatexCommand label +name "sec:Appendix-A:-Scripts" + +\end_inset + + +\end_layout + +\begin_layout Standard +All outputs are expressed as pay-to-scripthash outputs, where the redeeming + input provides the redeemscript. + Where a redeem-hash value is optional, it is generally supplied: for example, + if we want to pay to A if a preimage is supplied and B if no preimage is + supplied, we expect the input scriptsig to provide two arguments in both + cases (generally a zero in the second case). + This saves an extra test (of form +\begin_inset Quotes eld +\end_inset + +OP_DEPTH OP_EQUAL +\begin_inset Quotes erd +\end_inset + +), at cost of a single byte in the input script. +\end_layout + +\begin_layout Subsection* +Anchor Transaction +\end_layout + +\begin_layout Standard +The anchor inputs are whatever the node chooses. +\end_layout + +\begin_layout Subsubsection* +Anchor Output Redeemscript +\end_layout + +\begin_layout Standard +The anchor output is a pay to script hash, with a redeemscript as follows: +\end_layout + +\begin_layout Description +OP_IF They put a non-zero here if they're supplying the secret +\end_layout + +\begin_deeper +\begin_layout Description +OP_HASH +\begin_inset space ~ +\end_inset + + +\begin_inset space ~ +\end_inset + +OP_EQUALVERIFY Check secret is correct. +\end_layout + +\end_deeper +\begin_layout Description +OP_ENDIF +\end_layout + +\begin_layout Description +2 +\begin_inset space ~ +\end_inset + + +\begin_inset space ~ +\end_inset + + +\begin_inset space ~ +\end_inset + +2 +\begin_inset space ~ +\end_inset + +OP_CHECKMULTISIG Make sure A and B have signed. +\end_layout + +\begin_layout Subsection* +Escape Transaction +\end_layout + +\begin_layout Standard +The escape transaction for A spends A's anchor output and reveals A's secret. + Similarly for B. +\end_layout + +\begin_layout Subsubsection* +Escape Input Script +\end_layout + +\begin_layout Description + +\begin_inset space ~ +\end_inset + + +\begin_inset space ~ +\end_inset + +SECRET +\begin_inset space ~ +\end_inset + +1 +\begin_inset space ~ +\end_inset + +{} +\end_layout + +\begin_layout Subsubsection* +Escape Output Redeemscript +\end_layout + +\begin_layout Standard +This allows two paths: one for the other side to use the revocation image, + and one for this side to get their funds back after a delay. + This show's A's script, but B's is the same with A and B exchanged. +\end_layout + +\begin_layout Description +OP_HASH160 +\begin_inset space ~ +\end_inset + + +\begin_inset space ~ +\end_inset + +OP_EQUAL Check if the top of stack is the revocation image. +\end_layout + +\begin_layout Description +OP_IF +\end_layout + +\begin_deeper +\begin_layout Description + Funds for B. +\end_layout + +\end_deeper +\begin_layout Description +OP_ELSE It's A getting their funds back +\end_layout + +\begin_deeper +\begin_layout Description + +\begin_inset space ~ +\end_inset + +OP_CHECKSEQUENCEVERIFY +\begin_inset space ~ +\end_inset + +OP_DROP Ensure delay. +\end_layout + +\begin_layout Description + Needs to be signed by A. +\end_layout + +\end_deeper +\begin_layout Description +OP_ENDIF +\end_layout + +\begin_layout Description +OP_CHECKSIG Make sure it's signed correctly. +\end_layout + +\begin_layout Subsubsection* +Spending The Escape Output +\end_layout + +\begin_layout Standard +Either B using a revocation preimage: +\end_layout + +\begin_layout Description + +\begin_inset space ~ +\end_inset + + +\begin_inset space ~ +\end_inset + +{} +\end_layout + +\begin_layout Standard +Or A using after a timeout: +\end_layout + +\begin_layout Description + +\begin_inset space ~ +\end_inset + +0 +\begin_inset space ~ +\end_inset + +{} +\end_layout + +\begin_layout Subsection* +Fast-Escape Transaction +\end_layout + +\begin_layout Subsubsection* +Fast-Escape Input Script +\end_layout + +\begin_layout Standard +This is identical to the normal escape input script. +\end_layout + +\begin_layout Description + +\begin_inset space ~ +\end_inset + + +\begin_inset space ~ +\end_inset + +SECRET +\begin_inset space ~ +\end_inset + +1 +\begin_inset space ~ +\end_inset + +{} +\end_layout + +\begin_layout Subsubsection* +Fast-Escape Output Redeemscript +\end_layout + +\begin_layout Standard +This allows two paths: one for this side to use the other side's secret + (revealed by them using an escape transaction), and one for the other side + to claim this side's anchor funds after a delay. + This show's A's script, but B's is the same with A and B exchanged. +\end_layout + +\begin_layout Description +OP_HASH +\begin_inset space ~ +\end_inset + + +\begin_inset space ~ +\end_inset + +OP_EQUAL If top argument is B's secret +\end_layout + +\begin_layout Description +OP_IF +\end_layout + +\begin_deeper +\begin_layout Description + For A +\end_layout + +\end_deeper +\begin_layout Description +OP_ELSE B gets it if A doesn't know the secret. +\end_layout + +\begin_deeper +\begin_layout Description + +\begin_inset space ~ +\end_inset + +OP_CHECKSEQUENCEVERIFY +\begin_inset space ~ +\end_inset + +OP_DROP Ensure delay. +\end_layout + +\begin_layout Description + Needs to be signed by B. +\end_layout + +\end_deeper +\begin_layout Description +OP_ENDIF +\end_layout + +\begin_layout Description +OP_CHECKSIG Make sure it's signed correctly. +\end_layout + +\begin_layout Subsubsection* +Spending The Fast-Escape Output +\end_layout + +\begin_layout Standard +Either A using a B's secret revealed by B using its own escape transaction: +\end_layout + +\begin_layout Description + +\begin_inset space ~ +\end_inset + + +\begin_inset space ~ +\end_inset + +{} +\end_layout + +\begin_layout Standard +Or B using after a timeout: +\end_layout + +\begin_layout Description + +\begin_inset space ~ +\end_inset + +0 +\begin_inset space ~ +\end_inset + +{} +\end_layout + +\begin_layout Subsection* +Commitment Transactions For Generalized Channels +\begin_inset CommandInset label +LatexCommand label +name "sub:Commitment-Outputs-For" + +\end_inset + + +\end_layout + +\begin_layout Standard +These examples are for A's Commitment Transaction; switch A and B to get + B's commitment transaction. +\end_layout + +\begin_layout Subsubsection* +Commitment Input Script +\end_layout + +\begin_layout Standard +The commitment transaction has two inputs; one which spends each anchor + output. + The two zeroes indicate it is not revealing the secret: +\end_layout + +\begin_layout Description + +\begin_inset space ~ +\end_inset + + +\begin_inset space ~ +\end_inset + +0 +\begin_inset space ~ +\end_inset + +0 +\begin_inset space ~ +\end_inset + +{} +\end_layout + +\begin_layout Subsubsection* +Commitment Transaction Output Redeemscripts +\end_layout + +\begin_layout Standard +One output pays B's funds to B as normal (eg. + pay to scripthash +\begin_inset Quotes eld +\end_inset + + OP_CHECKSIG +\begin_inset Quotes erd +\end_inset + +). + The other output pays A's funds: either to B if they supply the revocation + preimage, or to A after a delay. + This is the redeemscript: +\end_layout + +\begin_layout Description +OP_HASH160 +\begin_inset space ~ +\end_inset + + +\begin_inset space ~ +\end_inset + +OP_EQUAL Did they supply revocation preimage? +\end_layout + +\begin_layout Description +OP_IF +\end_layout + +\begin_deeper +\begin_layout Description + To B. +\end_layout + +\end_deeper +\begin_layout Description +OP_ELSE +\end_layout + +\begin_deeper +\begin_layout Description + +\begin_inset space ~ +\end_inset + +OP_CHECKSEQUENCEVERIFY +\begin_inset space ~ +\end_inset + +OP_DROP Spending transaction must be after timeout +\end_layout + +\begin_layout Description + To A. +\end_layout + +\end_deeper +\begin_layout Description +OP_ENDIF +\end_layout + +\begin_layout Description +OP_CHECKSIG Signature must be correct. +\end_layout + +\begin_layout Subsubsection* +Spending Commitment Output +\end_layout + +\begin_layout Standard +Either B using a revocation preimage: +\end_layout + +\begin_layout Description + +\begin_inset space ~ +\end_inset + + +\begin_inset space ~ +\end_inset + +{} +\end_layout + +\begin_layout Standard +Or A using after a timeout: +\end_layout + +\begin_layout Description + +\begin_inset space ~ +\end_inset + +0 +\begin_inset space ~ +\end_inset + +{} +\end_layout + +\begin_layout Subsection* +Hash Locked Transaction Commitments +\end_layout + +\begin_layout Standard +There are two styles of commitment transaction outputs for HTLCs: a +\begin_inset Quotes eld +\end_inset + +sender +\begin_inset Quotes erd +\end_inset + + and +\begin_inset Quotes eld +\end_inset + +receiver +\begin_inset Quotes erd +\end_inset + + case. + The output is a pay-to-script-hash, so the redeemscripts are shown below. +\end_layout + +\begin_layout Standard +These scripts show A as the sender, and B as the receiver: exchange A and + B for the reverse. +\end_layout + +\begin_layout Subsubsection* +HTLC Sender Redeemscript +\end_layout + +\begin_layout Description +OP_HASH160 +\begin_inset space ~ +\end_inset + +OP_DUP Replace top element with two copies of its hash +\end_layout + +\begin_layout Description + +\begin_inset space ~ +\end_inset + +OP_EQUAL Test if they supplied the HTLC R value +\end_layout + +\begin_layout Description +OP_SWAP +\begin_inset space ~ +\end_inset + + +\begin_inset space ~ +\end_inset + +OP_EQUAL +\begin_inset space ~ +\end_inset + +OP_ADD Or the commitment revocation hash +\end_layout + +\begin_layout Description +OP_IF If any hash matched. +\end_layout + +\begin_deeper +\begin_layout Description + Pay to B. +\end_layout + +\end_deeper +\begin_layout Description +OP_ELSE Must be A, after HTLC has timed out. +\end_layout + +\begin_deeper +\begin_layout Description + +\begin_inset space ~ +\end_inset + +OP_CHECKLOCKTIMEVERIFY +\begin_inset space ~ +\end_inset + +OP_DROP Ensure (absolute) time has passed. +\end_layout + +\begin_layout Description + +\begin_inset space ~ +\end_inset + +OP_CHECKSEQUENCEVERIFY +\begin_inset space ~ +\end_inset + +OP_DROP Delay gives B enough time to use revocation if it has it. +\end_layout + +\begin_layout Description + Pay to A. +\end_layout + +\end_deeper +\begin_layout Description +OP_ENDIF +\end_layout + +\begin_layout Description +OP_CHECKSIG Verify A or B's signature is correct. +\end_layout + +\begin_layout Subsubsection* +HTLC Receiver Redeemscript +\end_layout + +\begin_layout Description +OP_HASH160 +\begin_inset space ~ +\end_inset + +OP_DUP Replace top element with two copies of its hash +\end_layout + +\begin_layout Description + +\begin_inset space ~ +\end_inset + +OP_EQUAL B redeeming the contract, using R preimage? +\end_layout + +\begin_layout Description +OP_IF +\end_layout + +\begin_deeper +\begin_layout Description +OP_DROP Remove extra hash +\end_layout + +\begin_layout Description + Pay to B +\end_layout + +\end_deeper +\begin_layout Description +OP_ELSE +\end_layout + +\begin_deeper +\begin_layout Description + +\begin_inset space ~ +\end_inset + +OP_EQUAL If the commit has been revoked. +\end_layout + +\begin_layout Description +OP_NOTIF If not, you need to wait for timeout. +\end_layout + +\begin_deeper +\begin_layout Description + +\begin_inset space ~ +\end_inset + +OP_CHECKLOCKTIMEVERIFY +\begin_inset space ~ +\end_inset + +OP_DROP Ensure (absolute) time has passed. +\end_layout + +\end_deeper +\begin_layout Description +OP_ENDIF +\end_layout + +\begin_layout Description + Pay to A +\end_layout + +\end_deeper +\begin_layout Description +OP_ENDIF +\end_layout + +\begin_layout Description +OP_CHECKSIG Verify A or B's signature is correct. +\end_layout + +\begin_layout Subsubsection* +Redeeming A HTLC Output +\end_layout + +\begin_layout Standard +To redeem an HTLC, the recipient one provides the preimage R, and their + signature. + In our example above, B can redeem the HTLC: +\end_layout + +\begin_layout Description + +\begin_inset space ~ +\end_inset + + +\begin_inset space ~ +\end_inset + +{} +\end_layout + +\begin_layout Subsubsection* +Claiming a Timed-out HTLC +\end_layout + +\begin_layout Standard +To claim a timed-out HTLC, the sender supplies a zero value (which is nice + and short, but fails to hash to any of the revocation hashes), and their + signature. + In our example above, A can claim the timed-out HTLC: +\end_layout + +\begin_layout Description + +\begin_inset space ~ +\end_inset + +0 +\begin_inset space ~ +\end_inset + +{} +\end_layout + +\begin_layout Subsubsection* +Claiming A HTLC Output For A Revoked Commitment Transaction +\end_layout + +\begin_layout Standard +If either side publishes a commitment transaction which has been revoked, + we can use the revocation preimage they supplied to spend all the outputs. + This example shows A claiming the HTLC output if B broadcasts a revoked + commitment transaction: +\end_layout + +\begin_layout Description + +\begin_inset space ~ +\end_inset + + +\begin_inset space ~ +\end_inset + +{} +\end_layout + +\end_body +\end_document diff --git a/doc/deployable-lightning.pdf b/doc/deployable-lightning.pdf new file mode 100644 index 000000000..ca2b075b2 Binary files /dev/null and b/doc/deployable-lightning.pdf differ diff --git a/doc/dual-anchor-diag1.eps b/doc/dual-anchor-diag1.eps new file mode 100644 index 000000000..5d80aa445 --- /dev/null +++ b/doc/dual-anchor-diag1.eps @@ -0,0 +1,466 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: cairo 1.14.2 (http://cairographics.org) +%%CreationDate: Tue Jul 14 10:01:07 2015 +%%Pages: 1 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%BoundingBox: 103 375 472 811 +%%EndComments +%%BeginProlog +save +50 dict begin +/q { gsave } bind def +/Q { grestore } bind def +/cm { 6 array astore concat } bind def +/w { setlinewidth } bind def +/J { setlinecap } bind def +/j { setlinejoin } bind def +/M { setmiterlimit } bind def +/d { setdash } bind def +/m { moveto } bind def +/l { lineto } bind def +/c { curveto } bind def +/h { closepath } bind def +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto + 0 exch rlineto 0 rlineto closepath } bind def +/S { stroke } bind def +/f { fill } bind def +/f* { eofill } bind def +/n { newpath } bind def +/W { clip } bind def +/W* { eoclip } bind def +/BT { } bind def +/ET { } bind def +/pdfmark where { pop globaldict /?pdfmark /exec load put } + { globaldict begin /?pdfmark /pop load def /pdfmark + /cleartomark load def end } ifelse +/BDC { mark 3 1 roll /BDC pdfmark } bind def +/EMC { mark /EMC pdfmark } bind def +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def +/Tj { show currentpoint cairo_store_point } bind def +/TJ { + { + dup + type /stringtype eq + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse + } forall + currentpoint cairo_store_point +} bind def +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def +/Tf { pop /cairo_font exch def /cairo_font_matrix where + { pop cairo_selectfont } if } bind def +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point + /cairo_font where { pop cairo_selectfont } if } bind def +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def +/g { setgray } bind def +/rg { setrgbcolor } bind def +/d1 { setcachedevice } bind def +%%EndProlog +%%BeginSetup +%%BeginResource: font DejaVuSans +11 dict begin +/FontType 42 def +/FontName /DejaVuSans def +/PaintType 0 def +/FontMatrix [ 1 0 0 1 0 0 ] def +/FontBBox [ 0 0 0 0 ] def +/Encoding 256 array def +0 1 255 { Encoding exch /.notdef put } for +Encoding 32 /space put +Encoding 38 /ampersand put +Encoding 65 /A put +Encoding 66 /B put +Encoding 67 /C put +Encoding 71 /G put +Encoding 73 /I put +Encoding 83 /S put +Encoding 84 /T put +Encoding 99 /c put +Encoding 104 /h put +Encoding 105 /i put +Encoding 109 /m put +Encoding 110 /n put +Encoding 111 /o put +Encoding 114 /r put +Encoding 116 /t put +Encoding 120 /x put +/CharStrings 19 dict dup begin +/.notdef 0 def +/A 1 def +/n 2 def +/c 3 def +/h 4 def +/o 5 def +/r 6 def +/space 7 def +/B 8 def +/C 9 def +/m 10 def +/i 11 def +/t 12 def +/T 13 def +/x 14 def +/S 15 def +/I 16 def +/G 17 def +/ampersand 18 def +end readonly def +/sfnts [ +<0001000000090080000300106376742000691d3900000d94000001fe6670676d7134766a0000 +0f94000000ab676c796615929d9f0000009c00000cf868656164026638f70000104000000036 +686865610cb806640000107800000024686d7478594408ed0000109c0000004c6c6f63610000 +6ad8000010e8000000506d617870048006710000113800000020707265703b07f10000001158 +0000056800020066fe96046605a400030007001a400c04fb0006fb0108057f0204002fc4d4ec +310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f272062900020010 +0000056805d50002000a00c2404100110100040504021105050401110a030a0011020003030a +0711050406110505040911030a08110a030a4200030795010381090509080706040302010009 +050a0b10d4c4173931002f3ce4d4ec1239304b5358071005ed0705ed071005ed0705ed071008 +ed071005ed071005ed071008ed5922b2200c01015d40420f010f020f070f080f005800760070 +008c000907010802060309041601190256015802500c67016802780176027c03720477077808 +87018802800c980299039604175d005d090121013301230321032302bcfeee0225fe7be50239 +d288fd5f88d5050efd1903aefa2b017ffe810000000100ba00000464047b0013003640190309 +00030e0106870e11b80cbc0a010208004e0d09080b461410fcec32f4ec31002f3ce4f4c4ec11 +12173930b46015cf1502015d0111231134262322061511231133153e013332160464b87c7c95 +acb9b942b375c1c602a4fd5c029e9f9ebea4fd870460ae6564ef00010071ffe303e7047b0019 +003f401b00860188040e860d880ab91104b917b8118c1a07120d004814451a10fce432ec3100 +10e4f4ec10fef4ee10f5ee30400b0f1b101b801b901ba01b05015d01152e0123220615141633 +323637150e0123220011100021321603e74e9d50b3c6c6b3509d4e4da55dfdfed6012d010655 +a20435ac2b2be3cdcde32b2baa2424013e010e0112013a230000000100ba0000046406140013 +00344019030900030e0106870e11b80c970a010208004e0d09080b461410fcec32f4ec31002f +3cecf4c4ec1112173930b2601501015d0111231134262322061511231133113e013332160464 +b87c7c95acb9b942b375c1c602a4fd5c029e9f9ebea4fd870614fd9e6564ef0000020071ffe3 +0475047b000b0017004a401306b91200b90cb8128c1809120f51031215451810fcecf4ec3100 +10e4f4ec10ee3040233f197b007b067f077f087f097f0a7f0b7b0c7f0d7f0e7f0f7f107f117b +12a019f01911015d012206151416333236353426273200111000232200111000027394acab95 +93acac93f00112feeef0f1feef011103dfe7c9c9e7e8c8c7e99cfec8feecfeedfec701390113 +011401380000000100ba0000034a047b001100304014060b0700110b03870eb809bc070a0608 +0008461210fcc4ec3231002fe4f4ecc4d4cc11123930b450139f1302015d012e012322061511 +231133153e0133321617034a1f492c9ca7b9b93aba85132e1c03b41211cbbefdb20460ae6663 +05050000000300c9000004ec05d5000800110020004340231900950a0995128101950aad1f11 +0b080213191f05000e1c1605191c2e09001c12042110fcec32fcecd4ec111739393931002fec +ecf4ec10ee3930b20f2201015d01112132363534262301112132363534262325213216151406 +071e01151404232101930144a39d9da3febc012b94919194fe0b0204e7fa807c95a5fef0fbfd +e802c9fddd878b8c850266fe3e6f727170a6c0b189a21420cb98c8da00010073ffe3052705f0 +00190036401a0da10eae0a951101a100ae04951791118c1a07190d003014101a10fcec32ec31 +0010e4f4ecf4ec10eef6ee30b40f1b1f1b02015d01152e0123200011100021323637150e0123 +2000111000213216052766e782ff00fef00110010082e7666aed84feadfe7a0186015386ed05 +62d55f5efec7fed8fed9fec75e5fd34848019f01670168019f470000000100ba0000071d047b +0022005a4026061209180f00061d07150c871d2003b81bbc19100700110f0808065011080f50 +1c18081a462310fcec32fcfcfcec11123931002f3c3ce4f43cc4ec3211121739304013302450 +2470249024a024a024bf24df24ff2409015d013e013332161511231134262322061511231134 +262322061511231133153e01333216042945c082afbeb972758fa6b972778da6b9b93fb0797a +ab03897c76f5e2fd5c029ea19cbea4fd87029ea29bbfa3fd870460ae67627c000000000200c1 +00000179061400030007002b400e06be04b100bc020501080400460810fc3cec3231002fe4fc +ec30400b1009400950096009700905015d1333112311331523c1b8b8b8b80460fba00614e900 +00010037000002f2059e0013003840190e05080f03a9001101bc08870a0b0809020400081012 +0e461410fc3cc4fc3cc432393931002fecf43cc4ec3211393930b2af1501015d011121152111 +14163b01152322263511233533110177017bfe854b73bdbdd5a28787059efec28ffda0894e9a +9fd202608f013e0000000001fffa000004e905d50007004a400e0602950081040140031c0040 +050810d4e4fce431002ff4ec3230014bb00a5458bd00080040000100080008ffc03811373859 +401300091f00100110021f071009400970099f09095d03211521112311210604effdeecbfdee +05d5aafad5052b000001003b000004790460000b014340460511060706041103040707060411 +050401020103110202010b110001000a11090a0101000a110b0a0708070911080807420a0704 +01040800bf05020a0704010408000208060c10d44bb00a544bb00f545b4bb010545b4bb01154 +5b58b90006004038594bb0145458b90006ffc03859c4d4c411173931002f3cec321739304b53 +58071005ed071008ed071008ed071005ed071005ed071008ed071008ed071005ed5922014098 +0a04040a1a04150a260a3d04310a55045707580a660a76017a047607740a8d04820a99049f04 +9707920a900aa601a904af04a507a30aa00a1c0a03040505090a0b1a03150515091a0b290326 +0525092a0b200d3a013903370534073609390b300d4903460545094a0b400d59005601590259 +0357055606590756085609590b500d6f0d78017f0d9b019407ab01a407b00dcf0ddf0dff0d2f +5d005d09022309012309013309010464fe6b01aad9febafebad901b3fe72d9012901290460fd +dffdc101b8fe48024a0216fe71018f0000010087ffe304a205f00027007e403c0d0c020e0b02 +1e1f1e080902070a021f1f1e420a0b1e1f0415010015a11494189511049500942591118c281e +0a0b1f1b0700221b190e2d071914222810dcc4ecfcece4111239393939310010e4f4e4ec10ee +f6ee10c6111739304b535807100eed11173907100eed1117395922b20f2901015db61f292f29 +4f29035d01152e012322061514161f011e0115140421222627351e013332363534262f012e01 +353424333216044873cc5fa5b377a67ae2d7feddfee76aef807bec72adbc879a7be2ca0117f5 +69da05a4c53736807663651f192bd9b6d9e0302fd04546887e6e7c1f182dc0abc6e426000001 +00c90000019305d50003002eb700af02011c00040410fc4bb0105458b9000000403859ec3100 +2fec3001400d30054005500560058f059f05065d13331123c9caca05d5fa2b0000010073ffe3 +058b05f0001d0039402000051b0195031b950812a111ae15950e91088c1e02001c1134043318 +190b101e10fcecfce4fcc4310010e4f4ecf4ec10fed4ee113939302511213521110604232000 +11100021320417152e0123200011100021323604c3feb6021275fee6a0fea2fe75018b015e92 +01076f70fc8bfeeefeed011301126ba8d50191a6fd7f53550199016d016e01994846d75f60fe +cefed1fed2fece25000000020081ffe305fe05f00009003001cd40960d010e0c861112110b86 +0a0b12121109860009151615070106088616161502010301861d1e1d008609001e1e1d201f02 +211e110a130a17161503181411130a07080206091113130a0201020300110a130a1716021815 +11130a141113130a42120b090306000a1e0328150e0628270695182b9527942491188c0e130a +2e0b0e09002e1215270e1e032e1227210e110f132103121b103110fcecc4d4d4ec10c6ee1139 +111239391139391139113931002fc6e4f6e6ee10ee10c6111239111739111739304b53580710 +05ed0705ed111739071005ed111739071005ed1117390705ed111739071005ed111739071008 +ed07100eed11173907100eed111739071008ed071008ed07100eed1117395922b20f3201015d +40b2070b052209291c001c011f02170b2a002a0126123a003412440b5e0059015a0a55125a1a +5a1f5930671e7b009b009a0199029708950b931595169522992d1f090b090c08110c270c2818 +021b09190b190c19111c141c15161d1f3227002701290923122a132a1428152f323b09341239 +133f324a094c144b1546194f3256015a09590c551259135c1f5f326a0c691160327501790c7a +1193009301970295059c079c089f089a099b0b9a0c9032a032b032395d005d010e0115141633 +32363709013e0137330602070123270e01232200353436372e0135343633321617152e012322 +0615141601f25b55d4a05fa649fe7b01fc3b4206ba0c685d0117fc8f68e483f1fece86863032 +deb853a555579e4469833b032351a15892c23f40028ffdf859cb7284fefe7efee39359570113 +d780e1633f7d3ca2c52424b62f316f583367013500b800cb00cb00c100aa009c01a600b80066 +0000007100cb00a002b20085007500b800c301cb0189022d00cb00a600f000d300aa008700cb +03aa0400014a003300cb000000d9050200f4015400b4009c01390114013907060400044e04b4 +045204b804e704cd0037047304cd04600473013303a2055605a60556053903c5021200c9001f +00b801df007300ba03e9033303bc0444040e00df03cd03aa00e503aa0404000000cb008f00a4 +007b00b80014016f007f027b0252008f00c705cd009a009a006f00cb00cd019e01d300f000ba +018300d5009803040248009e01d500c100cb00f600830354027f00000333026600d300c700a4 +00cd008f009a0073040005d5010a00fe022b00a400b4009c00000062009c0000001d032d05d5 +05d505d505f0007f007b005400a406b80614072301d300b800cb00a601c301ec069300a000d3 +035c037103db0185042304a80448008f0139011401390360008f05d5019a0614072306660179 +046004600460047b009c00000277046001aa00e904600762007b00c5007f027b000000b40252 +05cd006600bc00660077061000cd013b01850389008f007b0000001d00cd074a042f009c009c +0000077d006f0000006f0335006a006f007b00ae00b2002d0396008f027b00f6008303540637 +05f6008f009c04e10266008f018d02f600cd03440029006604ee00730000140000960000b707 +060504030201002c2010b002254964b040515820c859212d2cb002254964b040515820c85921 +2d2c20100720b00050b00d7920b8ffff5058041b0559b0051cb0032508b0042523e120b00050 +b00d7920b8ffff5058041b0559b0051cb0032508e12d2c4b505820b0fd454459212d2cb00225 +4560442d2c4b5358b00225b0022545445921212d2c45442d2cb00225b0022549b00525b00525 +4960b0206368208a108a233a8a10653a2d00000100000002570a9e9b8d645f0f3cf5001f0800 +00000000cef5cb7600000000cef5cb76f7d6fcae0d7209550000000800000001000000000001 +0000076dfe1d00000de2f7d6fa510d7200010000000000000000000000000000001304cd0066 +05790010051200ba04660071051200ba04e50071034a00ba028b0000057d00c90596007307cb +00ba023900c10323003704e3fffa04bc003b05140087025c00c906330073063d008100000000 +0000004400000140000001b800000250000002c80000036c000003dc000003dc0000048c0000 +0524000005e800000638000006b400000724000008a8000009a0000009e800000a9000000cf8 +0001000000130354002b0068000c000200100099000800000415021600080004b8028040fffb +fe03fa1403f92503f83203f79603f60e03f5fe03f4fe03f32503f20e03f19603f02503ef8a41 +05effe03ee9603ed9603ecfa03ebfa03eafe03e93a03e84203e7fe03e63203e5e45305e59603 +e48a4105e45303e3e22f05e3fa03e22f03e1fe03e0fe03df3203de1403dd9603dcfe03db1203 +da7d03d9bb03d8fe03d68a4105d67d03d5d44705d57d03d44703d3d21b05d3fe03d21b03d1fe +03d0fe03cffe03cefe03cd9603cccb1e05ccfe03cb1e03ca3203c9fe03c6851105c61c03c516 +03c4fe03c3fe03c2fe03c1fe03c0fe03bffe03befe03bdfe03bcfe03bbfe03ba1103b9862505 +b9fe03b8b7bb05b8fe03b7b65d05b7bb03b78004b6b52505b65d40ff03b64004b52503b4fe03 +b39603b2fe03b1fe03b0fe03affe03ae6403ad0e03acab2505ac6403abaa1205ab2503aa1203 +a98a4105a9fa03a8fe03a7fe03a6fe03a51203a4fe03a3a20e05a33203a20e03a16403a08a41 +05a096039ffe039e9d0c059efe039d0c039c9b19059c64039b9a10059b19039a1003990a0398 +fe0397960d0597fe03960d03958a410595960394930e05942803930e0392fa039190bb0591fe +03908f5d0590bb039080048f8e25058f5d038f40048e25038dfe038c8b2e058cfe038b2e038a +8625058a410389880b05891403880b03878625058764038685110586250385110384fe038382 +110583fe0382110381fe0380fe037ffe0340ff7e7d7d057efe037d7d037c64037b5415057b25 +037afe0379fe03780e03770c03760a0375fe0374fa0373fa0372fa0371fa0370fe036ffe036e +fe036c21036bfe036a1142056a530369fe03687d036711420566fe0365fe0364fe0363fe0362 +fe03613a0360fa035e0c035dfe035bfe035afe0359580a0559fa03580a035716190557320356 +fe035554150555420354150353011005531803521403514a130551fe03500b034ffe034e4d10 +054efe034d10034cfe034b4a13054bfe034a4910054a1303491d0d05491003480d0347fe0346 +960345960344fe0343022d0543fa0342bb03414b0340fe033ffe033e3d12053e14033d3c0f05 +3d12033c3b0d053c40ff0f033b0d033afe0339fe033837140538fa033736100537140336350b +05361003350b03341e03330d0332310b0532fe03310b03302f0b05300d032f0b032e2d09052e +10032d09032c32032b2a25052b64032a2912052a25032912032827250528410327250326250b +05260f03250b0324fe0323fe03220f03210110052112032064031ffa031e1d0d051e64031d0d +031c1142051cfe031bfa031a42031911420519fe031864031716190517fe0316011005161903 +15fe0314fe0313fe031211420512fe0311022d05114203107d030f64030efe030d0c16050dfe +030c0110050c16030bfe030a100309fe0308022d0508fe030714030664030401100504fe0340 +1503022d0503fe0302011005022d0301100300fe0301b80164858d012b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b1d00> +] def +/f-0-0 currentdict end definefont pop +%%EndResource +%%EndSetup +%%Page: 1 1 +%%BeginPageSetup +%%PageBoundingBox: 103 375 472 811 +%%EndPageSetup +q 103 375 369 436 rectclip q +0 g +BT +17.6 0 0 17.6 144.230383 731.577319 Tm +/f-0-0 1 Tf +[(Anchor)-3( A)]TJ +11.78352 -0.0324679 Td +[(Anchor)-3( B)]TJ +ET +2.4 w +1 J +1 j +[] 0.0 d +4 M q 1 0 0 -1 0 841.889771 cm +136.09 87.465 96 32.57 re S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 841.889771 cm +184.09 118.895 m 183.887 226.375 l 271.77 225.562 l 273.789 329 l S Q +273.633 520.886 m 270.371 524.023 l 273.789 512.89 l 276.77 524.148 l h +273.633 520.886 m f* +0.799847 w +q -0.0195316 1 1 0.0195316 0 841.889771 cm +-326.224 267.261 m -323.025 264.062 l -334.22 267.261 l -323.025 270.46 + l h +-326.224 267.261 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 841.889771 cm +342.945 87.465 96 33.715 re S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 841.889771 cm +390.945 120.035 m 391.754 227.113 l 300.438 226.707 l 300.438 328.527 l + S Q +300.438 521.362 m 297.234 524.562 l 300.438 513.362 l 303.637 524.562 l + h +300.438 521.362 m f* +0.8 w +q 0.000000078569 1 1 -0.000000078569 0 841.889771 cm +-320.527 300.438 m -317.328 297.234 l -328.527 300.438 l -317.328 303.637 + l h +-320.527 300.438 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 841.889771 cm +151.195 383.562 96 80 re S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 841.889771 cm +103.516 47.465 m 152.09 84.609 l S Q +145.734 762.14 m 141.246 761.542 l 152.09 757.28 l 145.137 766.628 l h +145.734 762.14 m f* +0.635486 w +q -1 0.764706 0.764706 1 0 841.889771 cm +-130.441 19.999 m -127.897 17.456 l -136.796 19.999 l -127.898 22.543 l + h +-130.441 19.999 m S Q +0.8 w +q 1 0 0 -1 0 841.889771 cm +215.516 40.609 m 208.09 85.75 l S Q +209.387 764.034 m 206.75 767.71 l 208.09 756.14 l 213.062 766.671 l h +209.387 764.034 m f* +0.789384 w +q 0.164557 1 1 -0.164557 0 841.889771 cm +-42.255 216.34 m -39.099 213.184 l -50.149 216.342 l -39.099 219.497 l +h +-42.255 216.34 m S Q +0.8 w +q 1 0 0 -1 0 841.889771 cm +311.516 47.465 m 360.09 84.609 l S Q +353.734 762.14 m 349.246 761.542 l 360.09 757.28 l 353.137 766.628 l h +353.734 762.14 m f* +0.635486 w +q -1 0.764706 0.764706 1 0 841.889771 cm +-261.69 120.366 m -259.146 117.823 l -268.045 120.366 l -259.147 122.91 + l h +-261.69 120.366 m S Q +0.8 w +q 1 0 0 -1 0 841.889771 cm +470.945 48.035 m 422.945 86.324 l S Q +429.199 760.554 m 429.707 765.054 l 422.945 755.566 l 433.695 760.05 l +h +429.199 760.554 m f* +0.625421 w +q 1 0.797619 0.797619 -1 0 841.889771 cm +222.665 258.938 m 225.169 256.435 l 216.411 258.938 l 225.168 261.438 l + h +222.665 258.938 m S Q +0.8 w +q 1 0 0 -1 0 841.889771 cm +432.09 32.035 m 400.66 85.75 l S Q +404.699 763.042 m 403.555 767.421 l 400.66 756.14 l 409.078 764.191 l h +404.699 763.042 m f* +0.69049 w +q 0.585107 1 1 -0.585107 0 841.889771 cm +117.663 335.854 m 120.426 333.093 l 110.76 335.854 l 120.427 338.616 l +h +117.663 335.854 m S Q +BT +17.6 0 0 17.6 164.334229 422.643237 Tm +/f-0-0 1 Tf +[(Commit)]TJ +0.862305 -1.25 Td +(Tx A)Tj +ET +0.8 w +q 1 0 0 -1 0 841.889771 cm +264.246 342.754 m 191.934 342.18 l 191.934 382.18 l S Q +191.934 467.71 m 188.734 470.909 l 191.934 459.71 l 195.133 470.909 l h +191.934 467.71 m f* +0.8 w +q 0.0000002 1 1 -0.0000002 0 841.889771 cm +-374.18 191.934 m -370.98 188.734 l -382.18 191.934 l -370.98 195.133 l + h +-374.18 191.934 m S Q +BT +12 0 0 12 155.950134 708.444678 Tm +/f-0-0 1 Tf +(SIGA & SIGB)Tj +ET +2.4 w +1 J +1 j +q 1 0 0 -1 0 841.889771 cm +328.812 384.531 96 80 re S Q +BT +17.6 0 0 17.6 341.950464 421.672681 Tm +/f-0-0 1 Tf +[(Commit)]TJ +0.861328 -1.25 Td +(Tx B)Tj +ET +q 1 0 0 -1 0 841.889771 cm +311.516 351.465 m 311.516 364.719 300.773 375.465 287.516 375.465 c 274.262 + 375.465 263.516 364.719 263.516 351.465 c 263.516 338.211 274.262 327.465 + 287.516 327.465 c 300.773 327.465 311.516 338.211 311.516 351.465 c h +311.516 351.465 m S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 841.889771 cm +287.516 327.465 m 287.516 375.465 l S Q +q 1 0 0 -1 0 841.889771 cm +263.516 351.465 m 311.516 351.465 l S Q +q 1 0 0 -1 0 841.889771 cm +264.246 358.754 m 207.934 358.754 l 207.934 382.18 l S Q +207.934 467.71 m 204.734 470.909 l 207.934 459.71 l 211.133 470.909 l h +207.934 467.71 m f* +0.8 w +q 0.000000341463 1 1 -0.000000341463 0 841.889771 cm +-374.18 207.934 m -370.98 204.735 l -382.18 207.934 l -370.98 211.133 l + h +-374.18 207.934 m S Q +0.8 w +q 1 0 0 -1 0 841.889771 cm +310.215 342.754 m 382.523 342.18 l 382.523 382.18 l S Q +382.523 467.71 m 379.324 470.909 l 382.523 459.71 l 385.723 470.909 l h +382.523 467.71 m f* +0.8 w +q -0.0000002 1 1 0.0000002 0 841.889771 cm +-374.18 382.523 m -370.981 379.324 l -382.18 382.523 l -370.981 385.723 + l h +-374.18 382.523 m S Q +0.8 w +q 1 0 0 -1 0 841.889771 cm +310.215 358.754 m 366.523 358.754 l 366.523 382.18 l S Q +366.523 467.71 m 363.324 470.909 l 366.523 459.71 l 369.723 470.909 l h +366.523 467.71 m f* +0.8 w +q -0.000000341463 1 1 0.000000341463 0 841.889771 cm +-374.18 366.523 m -370.981 363.324 l -382.18 366.523 l -370.981 369.723 + l h +-374.18 366.523 m S Q +BT +12 0 0 12 167.8396 444.80813 Tm +/f-0-0 1 Tf +(SIG A & B)Tj +14.845178 -0.134686 Td +(SIG A & B)Tj +1.258278 22.063959 Td +(SIGA & SIGB)Tj +ET +Q Q +showpage +%%Trailer +end restore +%%EOF diff --git a/doc/dual-anchor-diag1.svg b/doc/dual-anchor-diag1.svg new file mode 100644 index 000000000..f3bee7c5c --- /dev/null +++ b/doc/dual-anchor-diag1.svg @@ -0,0 +1,527 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + Anchor A + Anchor B + + + + + + + + + + + CommitTx A + + SIGA & SIGB + + CommitTx B + + + + + + + SIG A & B + SIG A & B + SIGA & SIGB + + diff --git a/doc/dual-anchor-diag2.eps b/doc/dual-anchor-diag2.eps new file mode 100644 index 000000000..995989fc2 --- /dev/null +++ b/doc/dual-anchor-diag2.eps @@ -0,0 +1,637 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: cairo 1.14.2 (http://cairographics.org) +%%CreationDate: Tue Jul 14 10:40:39 2015 +%%Pages: 1 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%BoundingBox: 26 -1 525 434 +%%EndComments +%%BeginProlog +save +50 dict begin +/q { gsave } bind def +/Q { grestore } bind def +/cm { 6 array astore concat } bind def +/w { setlinewidth } bind def +/J { setlinecap } bind def +/j { setlinejoin } bind def +/M { setmiterlimit } bind def +/d { setdash } bind def +/m { moveto } bind def +/l { lineto } bind def +/c { curveto } bind def +/h { closepath } bind def +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto + 0 exch rlineto 0 rlineto closepath } bind def +/S { stroke } bind def +/f { fill } bind def +/f* { eofill } bind def +/n { newpath } bind def +/W { clip } bind def +/W* { eoclip } bind def +/BT { } bind def +/ET { } bind def +/pdfmark where { pop globaldict /?pdfmark /exec load put } + { globaldict begin /?pdfmark /pop load def /pdfmark + /cleartomark load def end } ifelse +/BDC { mark 3 1 roll /BDC pdfmark } bind def +/EMC { mark /EMC pdfmark } bind def +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def +/Tj { show currentpoint cairo_store_point } bind def +/TJ { + { + dup + type /stringtype eq + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse + } forall + currentpoint cairo_store_point +} bind def +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def +/Tf { pop /cairo_font exch def /cairo_font_matrix where + { pop cairo_selectfont } if } bind def +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point + /cairo_font where { pop cairo_selectfont } if } bind def +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def +/g { setgray } bind def +/rg { setrgbcolor } bind def +/d1 { setcachedevice } bind def +%%EndProlog +%%BeginSetup +%%BeginResource: font DejaVuSans +11 dict begin +/FontType 42 def +/FontName /DejaVuSans def +/PaintType 0 def +/FontMatrix [ 1 0 0 1 0 0 ] def +/FontBBox [ 0 0 0 0 ] def +/Encoding 256 array def +0 1 255 { Encoding exch /.notdef put } for +Encoding 32 /space put +Encoding 38 /ampersand put +Encoding 65 /A put +Encoding 66 /B put +Encoding 67 /C put +Encoding 69 /E put +Encoding 71 /G put +Encoding 73 /I put +Encoding 83 /S put +Encoding 84 /T put +Encoding 97 /a put +Encoding 99 /c put +Encoding 101 /e put +Encoding 104 /h put +Encoding 105 /i put +Encoding 109 /m put +Encoding 110 /n put +Encoding 111 /o put +Encoding 112 /p put +Encoding 114 /r put +Encoding 115 /s put +Encoding 116 /t put +Encoding 120 /x put +/CharStrings 24 dict dup begin +/.notdef 0 def +/A 1 def +/n 2 def +/c 3 def +/h 4 def +/o 5 def +/r 6 def +/space 7 def +/B 8 def +/C 9 def +/m 10 def +/i 11 def +/t 12 def +/T 13 def +/x 14 def +/E 15 def +/s 16 def +/a 17 def +/p 18 def +/e 19 def +/S 20 def +/I 21 def +/G 22 def +/ampersand 23 def +end readonly def +/sfnts [ +<0001000000090080000300106376742000691d39000011f4000001fe6670676d7134766a0000 +13f4000000ab676c79668c28776e0000009c0000115868656164026638f7000014a000000036 +686865610cb80669000014d800000024686d747871640bcb000014fc000000606c6f63610000 +b4980000155c000000646d61787004850671000015c000000020707265703b07f100000015e0 +0000056800020066fe96046605a400030007001a400c04fb0006fb0108057f0204002fc4d4ec +310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f272062900020010 +0000056805d50002000a00c2404100110100040504021105050401110a030a0011020003030a +0711050406110505040911030a08110a030a4200030795010381090509080706040302010009 +050a0b10d4c4173931002f3ce4d4ec1239304b5358071005ed0705ed071005ed0705ed071008 +ed071005ed071005ed071008ed5922b2200c01015d40420f010f020f070f080f005800760070 +008c000907010802060309041601190256015802500c67016802780176027c03720477077808 +87018802800c980299039604175d005d090121013301230321032302bcfeee0225fe7be50239 +d288fd5f88d5050efd1903aefa2b017ffe810000000100ba00000464047b0013003640190309 +00030e0106870e11b80cbc0a010208004e0d09080b461410fcec32f4ec31002f3ce4f4c4ec11 +12173930b46015cf1502015d0111231134262322061511231133153e013332160464b87c7c95 +acb9b942b375c1c602a4fd5c029e9f9ebea4fd870460ae6564ef00010071ffe303e7047b0019 +003f401b00860188040e860d880ab91104b917b8118c1a07120d004814451a10fce432ec3100 +10e4f4ec10fef4ee10f5ee30400b0f1b101b801b901ba01b05015d01152e0123220615141633 +323637150e0123220011100021321603e74e9d50b3c6c6b3509d4e4da55dfdfed6012d010655 +a20435ac2b2be3cdcde32b2baa2424013e010e0112013a230000000100ba0000046406140013 +00344019030900030e0106870e11b80c970a010208004e0d09080b461410fcec32f4ec31002f +3cecf4c4ec1112173930b2601501015d0111231134262322061511231133113e013332160464 +b87c7c95acb9b942b375c1c602a4fd5c029e9f9ebea4fd870614fd9e6564ef0000020071ffe3 +0475047b000b0017004a401306b91200b90cb8128c1809120f51031215451810fcecf4ec3100 +10e4f4ec10ee3040233f197b007b067f077f087f097f0a7f0b7b0c7f0d7f0e7f0f7f107f117b +12a019f01911015d012206151416333236353426273200111000232200111000027394acab95 +93acac93f00112feeef0f1feef011103dfe7c9c9e7e8c8c7e99cfec8feecfeedfec701390113 +011401380000000100ba0000034a047b001100304014060b0700110b03870eb809bc070a0608 +0008461210fcc4ec3231002fe4f4ecc4d4cc11123930b450139f1302015d012e012322061511 +231133153e0133321617034a1f492c9ca7b9b93aba85132e1c03b41211cbbefdb20460ae6663 +05050000000300c9000004ec05d5000800110020004340231900950a0995128101950aad1f11 +0b080213191f05000e1c1605191c2e09001c12042110fcec32fcecd4ec111739393931002fec +ecf4ec10ee3930b20f2201015d01112132363534262301112132363534262325213216151406 +071e01151404232101930144a39d9da3febc012b94919194fe0b0204e7fa807c95a5fef0fbfd +e802c9fddd878b8c850266fe3e6f727170a6c0b189a21420cb98c8da00010073ffe3052705f0 +00190036401a0da10eae0a951101a100ae04951791118c1a07190d003014101a10fcec32ec31 +0010e4f4ecf4ec10eef6ee30b40f1b1f1b02015d01152e0123200011100021323637150e0123 +2000111000213216052766e782ff00fef00110010082e7666aed84feadfe7a0186015386ed05 +62d55f5efec7fed8fed9fec75e5fd34848019f01670168019f470000000100ba0000071d047b +0022005a4026061209180f00061d07150c871d2003b81bbc19100700110f0808065011080f50 +1c18081a462310fcec32fcfcfcec11123931002f3c3ce4f43cc4ec3211121739304013302450 +2470249024a024a024bf24df24ff2409015d013e013332161511231134262322061511231134 +262322061511231133153e01333216042945c082afbeb972758fa6b972778da6b9b93fb0797a +ab03897c76f5e2fd5c029ea19cbea4fd87029ea29bbfa3fd870460ae67627c000000000200c1 +00000179061400030007002b400e06be04b100bc020501080400460810fc3cec3231002fe4fc +ec30400b1009400950096009700905015d1333112311331523c1b8b8b8b80460fba00614e900 +00010037000002f2059e0013003840190e05080f03a9001101bc08870a0b0809020400081012 +0e461410fc3cc4fc3cc432393931002fecf43cc4ec3211393930b2af1501015d011121152111 +14163b01152322263511233533110177017bfe854b73bdbdd5a28787059efec28ffda0894e9a +9fd202608f013e0000000001fffa000004e905d50007004a400e0602950081040140031c0040 +050810d4e4fce431002ff4ec3230014bb00a5458bd00080040000100080008ffc03811373859 +401300091f00100110021f071009400970099f09095d03211521112311210604effdeecbfdee +05d5aafad5052b000001003b000004790460000b014340460511060706041103040707060411 +050401020103110202010b110001000a11090a0101000a110b0a0708070911080807420a0704 +01040800bf05020a0704010408000208060c10d44bb00a544bb00f545b4bb010545b4bb01154 +5b58b90006004038594bb0145458b90006ffc03859c4d4c411173931002f3cec321739304b53 +58071005ed071008ed071008ed071005ed071005ed071008ed071008ed071005ed5922014098 +0a04040a1a04150a260a3d04310a55045707580a660a76017a047607740a8d04820a99049f04 +9707920a900aa601a904af04a507a30aa00a1c0a03040505090a0b1a03150515091a0b290326 +0525092a0b200d3a013903370534073609390b300d4903460545094a0b400d59005601590259 +0357055606590756085609590b500d6f0d78017f0d9b019407ab01a407b00dcf0ddf0dff0d2f +5d005d09022309012309013309010464fe6b01aad9febafebad901b3fe72d9012901290460fd +dffdc101b8fe48024a0216fe71018f00000100c90000048b05d5000b002e4015069504029500 +81089504ad0a05010907031c00040c10fcec32d4c4c431002fececf4ec10ee30b21f0d01015d +132115211121152111211521c903b0fd1a02c7fd3902f8fc3e05d5aafe46aafde3aa00000001 +006fffe303c7047b002700e7403c0d0c020e0b531f1e080902070a531f1f1e420a0b1e1f0415 +00860189041486158918b91104b925b8118c281e0a0b1f1b0700521b080e07081422452810fc +c4ecd4ece4111239393939310010e4f4ec10fef5ee10f5ee121739304b535807100eed111739 +070eed1117395922b2002701015d406d1c0a1c0b1c0c2e092c0a2c0b2c0c3b093b0a3b0b3b0c +0b200020012402280a280b2a132f142f152a16281e281f292029212427860a860b860c860d12 +000000010202060a060b030c030d030e030f03100319031a031b031c041d09272f293f295f29 +7f2980299029a029f029185d005d7101152e012322061514161f011e0115140623222627351e +013332363534262f012e01353436333216038b4ea85a898962943fc4a5f7d85ac36c66c66182 +8c65ab40ab98e0ce66b4043fae282854544049210e2a99899cb62323be353559514b50250f24 +95829eac1e0000000002007bffe3042d047b000a002500bc4027191f0b17090e00a91706b90e +1120861fba1cb923b8118c170c001703180d09080b1f030814452610fcecccd4ec3232113939 +31002fc4e4f4fcf4ec10c6ee10ee11391139123930406e301d301e301f3020302130223f2740 +1d401e401f402040214022501d501e501f50205021502250277027851d871e871f8720872185 +229027a027f0271e301e301f30203021401e401f40204021501e501f50205021601e601f6020 +6021701e701f70207021801e801f80208021185d015d0122061514163332363d01371123350e +01232226353436332135342623220607353e0133321602bedfac816f99b9b8b83fbc88accbfd +fb0102a79760b65465be5af3f00233667b6273d9b4294cfd81aa6661c1a2bdc0127f8b2e2eaa +2727fc00000200bafe5604a4047b0010001c003e401b1ab9000e14b90508b80e8c01bd03bc1d +11120b471704000802461d10fcec3232f4ec310010e4e4e4f4c4ec10c4ee304009601e801ea0 +1ee01e04015d2511231133153e013332001110022322260134262322061514163332360173b9 +b93ab17bcc00ffffcc7bb10238a79292a7a79292a7a8fdae060aaa6461febcfef8fef8febc61 +01ebcbe7e7cbcbe7e700000000020071ffe3047f047b0014001b007040240015010986088805 +15a90105b90c01bb18b912b80c8c1c1b1502081508004b02120f451c10fcecf4ecc411123931 +0010e4f4ece410ee10ee10f4ee1112393040293f1d701da01dd01df01d053f003f013f023f15 +3f1b052c072f082f092c0a6f006f016f026f156f1b095d71015d0115211e0133323637150e01 +232000111000333200072e0123220607047ffcb20ccdb76ac76263d06bfef4fec70129fce201 +07b802a5889ab90e025e5abec73434ae2a2c0138010a01130143feddc497b4ae9e0000010087 +ffe304a205f00027007e403c0d0c020e0b021e1f1e080902070a021f1f1e420a0b1e1f041501 +0015a11494189511049500942591118c281e0a0b1f1b0700221b190e2d071914222810dcc4ec +fcece4111239393939310010e4f4e4ec10eef6ee10c6111739304b535807100eed1117390710 +0eed1117395922b20f2901015db61f292f294f29035d01152e012322061514161f011e011514 +0421222627351e013332363534262f012e01353424333216044873cc5fa5b377a67ae2d7fedd +fee76aef807bec72adbc879a7be2ca0117f569da05a4c53736807663651f192bd9b6d9e0302f +d04546887e6e7c1f182dc0abc6e42600000100c90000019305d50003002eb700af02011c0004 +0410fc4bb0105458b9000000403859ec31002fec3001400d30054005500560058f059f05065d +13331123c9caca05d5fa2b0000010073ffe3058b05f0001d0039402000051b0195031b950812 +a111ae15950e91088c1e02001c1134043318190b101e10fcecfce4fcc4310010e4f4ecf4ec10 +fed4ee11393930251121352111060423200011100021320417152e0123200011100021323604 +c3feb6021275fee6a0fea2fe75018b015e9201076f70fc8bfeeefeed011301126ba8d50191a6 +fd7f53550199016d016e01994846d75f60fecefed1fed2fece25000000020081ffe305fe05f0 +0009003001cd40960d010e0c861112110b860a0b121211098600091516150701060886161615 +02010301861d1e1d008609001e1e1d201f02211e110a130a17161503181411130a0708020609 +1113130a0201020300110a130a171602181511130a141113130a42120b090306000a1e032815 +0e0628270695182b9527942491188c0e130a2e0b0e09002e1215270e1e032e1227210e110f13 +2103121b103110fcecc4d4d4ec10c6ee1139111239391139391139113931002fc6e4f6e6ee10 +ee10c6111239111739111739304b5358071005ed0705ed111739071005ed111739071005ed11 +17390705ed111739071005ed111739071008ed07100eed11173907100eed111739071008ed07 +1008ed07100eed1117395922b20f3201015d40b2070b052209291c001c011f02170b2a002a01 +26123a003412440b5e0059015a0a55125a1a5a1f5930671e7b009b009a0199029708950b9315 +95169522992d1f090b090c08110c270c2818021b09190b190c19111c141c15161d1f32270027 +01290923122a132a1428152f323b09341239133f324a094c144b1546194f3256015a09590c55 +1259135c1f5f326a0c691160327501790c7a1193009301970295059c079c089f089a099b0b9a +0c9032a032b032395d005d010e011514163332363709013e0137330602070123270e01232200 +353436372e0135343633321617152e0123220615141601f25b55d4a05fa649fe7b01fc3b4206 +ba0c685d0117fc8f68e483f1fece86863032deb853a555579e4469833b032351a15892c23f40 +028ffdf859cb7284fefe7efee39359570113d780e1633f7d3ca2c52424b62f316f5833670135 +00b800cb00cb00c100aa009c01a600b800660000007100cb00a002b20085007500b800c301cb +0189022d00cb00a600f000d300aa008700cb03aa0400014a003300cb000000d9050200f40154 +00b4009c01390114013907060400044e04b4045204b804e704cd0037047304cd046004730133 +03a2055605a60556053903c5021200c9001f00b801df007300ba03e9033303bc0444040e00df +03cd03aa00e503aa0404000000cb008f00a4007b00b80014016f007f027b0252008f00c705cd +009a009a006f00cb00cd019e01d300f000ba018300d5009803040248009e01d500c100cb00f6 +00830354027f00000333026600d300c700a400cd008f009a0073040005d5010a00fe022b00a4 +00b4009c00000062009c0000001d032d05d505d505d505f0007f007b005400a406b806140723 +01d300b800cb00a601c301ec069300a000d3035c037103db0185042304a80448008f01390114 +01390360008f05d5019a0614072306660179046004600460047b009c00000277046001aa00e9 +04600762007b00c5007f027b000000b4025205cd006600bc00660077061000cd013b01850389 +008f007b0000001d00cd074a042f009c009c0000077d006f0000006f0335006a006f007b00ae +00b2002d0396008f027b00f600830354063705f6008f009c04e10266008f018d02f600cd0344 +0029006604ee00730000140000960000b707060504030201002c2010b002254964b040515820 +c859212d2cb002254964b040515820c859212d2c20100720b00050b00d7920b8ffff5058041b +0559b0051cb0032508b0042523e120b00050b00d7920b8ffff5058041b0559b0051cb0032508 +e12d2c4b505820b0fd454459212d2cb002254560442d2c4b5358b00225b0022545445921212d +2c45442d2cb00225b0022549b00525b005254960b0206368208a108a233a8a10653a2d000001 +00000002570a812518945f0f3cf5001f080000000000cef5cb7600000000cef5cb76f7d6fcae +0d72095500000008000000010000000000010000076dfe1d00000de2f7d6fa510d7200010000 +000000000000000000000000001804cd006605790010051200ba04660071051200ba04e50071 +034a00ba028b0000057d00c90596007307cb00ba023900c10323003704e3fffa04bc003b050e +00c9042b006f04e7007b051400ba04ec007105140087025c00c906330073063d008100000000 +0000004400000140000001b800000250000002c80000036c000003dc000003dc0000048c0000 +0524000005e800000638000006b400000724000008a80000090800000a6800000b9400000c34 +00000d0800000e0000000e4800000ef0000011580001000000180354002b0068000c00020010 +0099000800000415021600080004b8028040fffbfe03fa1403f92503f83203f79603f60e03f5 +fe03f4fe03f32503f20e03f19603f02503ef8a4105effe03ee9603ed9603ecfa03ebfa03eafe +03e93a03e84203e7fe03e63203e5e45305e59603e48a4105e45303e3e22f05e3fa03e22f03e1 +fe03e0fe03df3203de1403dd9603dcfe03db1203da7d03d9bb03d8fe03d68a4105d67d03d5d4 +4705d57d03d44703d3d21b05d3fe03d21b03d1fe03d0fe03cffe03cefe03cd9603cccb1e05cc +fe03cb1e03ca3203c9fe03c6851105c61c03c51603c4fe03c3fe03c2fe03c1fe03c0fe03bffe +03befe03bdfe03bcfe03bbfe03ba1103b9862505b9fe03b8b7bb05b8fe03b7b65d05b7bb03b7 +8004b6b52505b65d40ff03b64004b52503b4fe03b39603b2fe03b1fe03b0fe03affe03ae6403 +ad0e03acab2505ac6403abaa1205ab2503aa1203a98a4105a9fa03a8fe03a7fe03a6fe03a512 +03a4fe03a3a20e05a33203a20e03a16403a08a4105a096039ffe039e9d0c059efe039d0c039c +9b19059c64039b9a10059b19039a1003990a0398fe0397960d0597fe03960d03958a41059596 +0394930e05942803930e0392fa039190bb0591fe03908f5d0590bb039080048f8e25058f5d03 +8f40048e25038dfe038c8b2e058cfe038b2e038a8625058a410389880b05891403880b038786 +25058764038685110586250385110384fe038382110583fe0382110381fe0380fe037ffe0340 +ff7e7d7d057efe037d7d037c64037b5415057b25037afe0379fe03780e03770c03760a0375fe +0374fa0373fa0372fa0371fa0370fe036ffe036efe036c21036bfe036a1142056a530369fe03 +687d036711420566fe0365fe0364fe0363fe0362fe03613a0360fa035e0c035dfe035bfe035a +fe0359580a0559fa03580a035716190557320356fe0355541505554203541503530110055318 +03521403514a130551fe03500b034ffe034e4d10054efe034d10034cfe034b4a13054bfe034a +4910054a1303491d0d05491003480d0347fe0346960345960344fe0343022d0543fa0342bb03 +414b0340fe033ffe033e3d12053e14033d3c0f053d12033c3b0d053c40ff0f033b0d033afe03 +39fe033837140538fa033736100537140336350b05361003350b03341e03330d0332310b0532 +fe03310b03302f0b05300d032f0b032e2d09052e10032d09032c32032b2a25052b64032a2912 +052a25032912032827250528410327250326250b05260f03250b0324fe0323fe03220f032101 +10052112032064031ffa031e1d0d051e64031d0d031c1142051cfe031bfa031a420319114205 +19fe031864031716190517fe031601100516190315fe0314fe0313fe031211420512fe031102 +2d05114203107d030f64030efe030d0c16050dfe030c0110050c16030bfe030a100309fe0308 +022d0508fe030714030664030401100504fe03401503022d0503fe0302011005022d03011003 +00fe0301b80164858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d00> +] def +/f-0-0 currentdict end definefont pop +%%EndResource +%%EndSetup +%%Page: 1 1 +%%BeginPageSetup +%%PageBoundingBox: 26 -1 525 434 +%%EndPageSetup +q 26 -1 499 435 rectclip q +0 g +BT +17.6 0 0 17.6 130.590635 355.418671 Tm +/f-0-0 1 Tf +[(Anchor)-3( A)]TJ +11.78352 -0.0324679 Td +[(Anchor)-3( B)]TJ +ET +2.4 w +1 J +1 j +[] 0.0 d +4 M q 1 0 0 -1 0 433.896301 cm +122.449 55.629 96 32.574 re S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +170.449 87.059 m 170.449 167.059 l S Q +170.449 274.838 m 167.25 278.037 l 170.449 266.838 l 173.648 278.037 l +h +170.449 274.838 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-159.059 170.449 m -155.859 167.25 l -167.059 170.449 l -155.859 173.648 + l h +-159.059 170.449 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +329.305 55.629 96 33.715 re S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +377.305 88.203 m 377.305 168.203 l S Q +377.305 273.693 m 374.105 276.892 l 377.305 265.693 l 380.504 276.892 l + h +377.305 273.693 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-160.203 377.305 m -157.004 374.105 l -168.203 377.305 l -157.004 380.504 + l h +-160.203 377.305 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +170.164 216.844 m 170.449 256.203 l 265.957 256.105 l 265.387 297.246 l + S Q +265.496 144.65 m 262.344 147.892 l 265.387 136.65 l 268.742 147.803 l h +265.496 144.65 m f* +0.799923 w +q 0.0138888 1 1 -0.0138888 0 433.896301 cm +-285.504 269.461 m -282.306 266.265 l -293.504 269.463 l -282.307 272.663 + l h +-285.504 269.461 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +137.555 351.727 96 80 re S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +89.879 15.629 m 138.449 52.773 l S Q +132.094 385.982 m 127.609 385.385 l 138.449 381.123 l 131.496 390.467 l + h +132.094 385.982 m f* +0.635486 w +q -1 0.764706 0.764706 1 0 433.896301 cm +-106.472 33.506 m -103.931 30.965 l -112.827 33.506 l -103.931 36.047 l + h +-106.472 33.506 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +201.879 8.773 m 194.449 53.918 l S Q +195.746 387.873 m 193.109 391.553 l 194.449 379.978 l 199.426 390.513 l + h +195.746 387.873 m f* +0.789384 w +q 0.164557 1 1 -0.164557 0 433.896301 cm +-13.448 197.959 m -10.288 194.802 l -21.342 197.961 l -10.287 201.119 l + h +-13.448 197.959 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +297.879 15.629 m 346.449 52.773 l S Q +340.094 385.982 m 335.609 385.385 l 346.449 381.123 l 339.496 390.467 l + h +340.094 385.982 m f* +0.635486 w +q -1 0.764706 0.764706 1 0 433.896301 cm +-237.721 133.872 m -235.179 131.331 l -244.076 133.873 l -235.18 136.414 + l h +-237.721 133.872 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +457.305 16.203 m 409.305 54.488 l S Q +415.559 384.396 m 416.066 388.892 l 409.305 379.408 l 420.059 383.892 l + h +415.559 384.396 m f* +0.625421 w +q 1 0.797619 0.797619 -1 0 433.896301 cm +229.848 232.831 m 232.35 230.331 l 223.594 232.831 l 232.353 235.333 l +h +229.848 232.831 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +418.449 0.203 m 387.02 53.918 l S Q +391.059 386.885 m 389.914 391.263 l 387.02 379.978 l 395.438 388.029 l +h +391.059 386.885 m f* +0.69049 w +q 0.585107 1 1 -0.585107 0 433.896301 cm +135.434 311.816 m 138.197 309.054 l 128.528 311.817 l 138.195 314.579 l + h +135.434 311.816 m S Q +BT +17.6 0 0 17.6 150.69448 46.484589 Tm +/f-0-0 1 Tf +[(Commit)]TJ +0.862305 -1.25 Td +(Tx A)Tj +ET +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +27.348 174.184 96 32.574 re S Q +BT +17.6 0 0 17.6 34.346965 238.578938 Tm +/f-0-0 1 Tf +[(Esca)-3(pe A)]TJ +ET +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +250.605 310.918 m 178.293 310.348 l 178.293 350.348 l S Q +178.293 91.549 m 175.094 94.752 l 178.293 83.549 l 181.492 94.752 l h +178.293 91.549 m f* +0.8 w +q 0.0000002 1 1 -0.0000002 0 433.896301 cm +-342.348 178.293 m -339.144 175.094 l -350.348 178.293 l -339.144 181.492 + l h +-342.348 178.293 m S Q +BT +12 0 0 12 142.310385 332.286029 Tm +/f-0-0 1 Tf +(SIGA & SIGB)Tj +ET +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +427.684 171.355 96 32.57 re S Q +BT +17.6 0 0 17.6 434.682052 241.407364 Tm +/f-0-0 1 Tf +[(Esca)-3(pe B)]TJ +ET +q 1 0 0 -1 0 433.896301 cm +315.172 352.695 96 80 re S Q +BT +17.6 0 0 17.6 328.310715 45.514032 Tm +/f-0-0 1 Tf +[(Commit)]TJ +0.861328 -1.25 Td +(Tx B)Tj +ET +q 1 0 0 -1 0 433.896301 cm +297.879 319.629 m 297.879 332.887 287.133 343.629 273.879 343.629 c 260.621 + 343.629 249.879 332.887 249.879 319.629 c 249.879 306.375 260.621 295.629 + 273.879 295.629 c 287.133 295.629 297.879 306.375 297.879 319.629 c h +297.879 319.629 m S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +273.879 295.629 m 273.879 343.629 l S Q +q 1 0 0 -1 0 433.896301 cm +249.879 319.629 m 297.879 319.629 l S Q +q 1 0 0 -1 0 433.896301 cm +250.605 326.918 m 194.293 326.918 l 194.293 350.348 l S Q +194.293 91.549 m 191.094 94.752 l 194.293 83.549 l 197.492 94.752 l h +194.293 91.549 m f* +0.8 w +q 0.000000341463 1 1 -0.000000341463 0 433.896301 cm +-342.348 194.293 m -339.144 191.094 l -350.348 194.293 l -339.144 197.492 + l h +-342.348 194.293 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +296.574 310.918 m 368.883 310.348 l 368.887 350.348 l S Q +368.887 91.549 m 365.684 94.752 l 368.887 83.549 l 372.086 94.752 l h +368.887 91.549 m f* +0.8 w +q -0.0000002 1 1 0.0000002 0 433.896301 cm +-342.348 368.887 m -339.145 365.684 l -350.348 368.887 l -339.145 372.086 + l h +-342.348 368.887 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +296.574 326.918 m 352.883 326.918 l 352.887 350.348 l S Q +352.887 91.549 m 349.684 94.752 l 352.887 83.549 l 356.086 94.752 l h +352.887 91.549 m f* +0.8 w +q -0.000000341463 1 1 0.000000341463 0 433.896301 cm +-342.348 352.887 m -339.145 349.683 l -350.348 352.887 l -339.145 356.086 + l h +-342.348 352.887 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +377.742 218.223 m 377.789 256.203 l 281.711 255.531 l 281.711 297.816 l + S Q +281.711 144.08 m 278.508 147.279 l 281.711 136.08 l 284.91 147.279 l h +281.711 144.08 m f* +0.8 w +q 0.000000189189 1 1 -0.000000189189 0 433.896301 cm +-289.816 281.711 m -286.617 278.508 l -297.816 281.711 l -286.617 284.91 + l h +-289.816 281.711 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +193.879 191.387 m 193.879 204.641 183.133 215.387 169.879 215.387 c 156.621 + 215.387 145.879 204.641 145.879 191.387 c 145.879 178.133 156.621 167.387 + 169.879 167.387 c 183.133 167.387 193.879 178.133 193.879 191.387 c h +193.879 191.387 m S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +169.879 167.387 m 169.879 215.387 l S Q +q 1 0 0 -1 0 433.896301 cm +145.879 191.387 m 193.879 191.387 l S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +402.199 193.73 m 402.199 206.988 391.453 217.73 378.199 217.73 c 364.945 + 217.73 354.199 206.988 354.199 193.73 c 354.199 180.477 364.945 169.73 +378.199 169.73 c 391.453 169.73 402.199 180.477 402.199 193.73 c h +402.199 193.73 m S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +378.199 169.73 m 378.199 217.73 l S Q +q 1 0 0 -1 0 433.896301 cm +354.199 193.73 m 402.199 193.73 l S Q +BT +12 0 0 12 154.199851 68.649481 Tm +/f-0-0 1 Tf +(SIG A & B)Tj +14.845178 -0.134686 Td +[(SIG A &)-319(B)]TJ +ET +q 1 0 0 -1 0 433.896301 cm +145.879 191.629 m 125.879 191.629 l S Q +133.879 242.267 m 137.078 245.467 l 125.879 242.267 l 137.078 239.064 l + h +133.879 242.267 m f* +0.8 w +q 1 0 0 -1 0 433.896301 cm +133.879 191.629 m 137.078 188.43 l 125.879 191.629 l 137.078 194.832 l +h +133.879 191.629 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +403.652 190.984 m 423.652 190.984 l S Q +415.652 242.912 m 412.453 239.713 l 423.652 242.912 l 412.453 246.115 l + h +415.652 242.912 m f* +0.8 w +q -1 0 0 1 0 433.896301 cm +-415.652 -190.984 m -412.453 -194.184 l -423.652 -190.984 l -412.453 -187.781 + l h +-415.652 -190.984 m S Q +BT +12 0 0 12 78.878745 206.540155 Tm +/f-0-0 1 Tf +(SIGA)Tj +-0.712919 5.044474 Td +(SIGA & SIGB)Tj +27.716749 0.235534 Td +(SIGA & SIGB)Tj +-4.384188 5.279695 Td +(SIGA & SIGB)Tj +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +73.477 207.059 m 73.477 252.309 l S Q +73.477 189.588 m 70.277 192.787 l 73.477 181.588 l 76.68 192.787 l h +73.477 189.588 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-244.309 73.477 m -241.109 70.277 l -252.309 73.477 l -241.109 76.68 l +h +-244.309 73.477 m S Q +BT +12 0 0 12 479.918845 208.481293 Tm +/f-0-0 1 Tf +(SIGB)Tj +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +474.531 205.117 m 474.531 250.367 l S Q +474.531 191.529 m 471.328 194.728 l 474.531 183.529 l 477.73 194.728 l +h +474.531 191.529 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-242.367 474.531 m -239.168 471.328 l -250.367 474.531 l -239.168 477.73 + l h +-242.367 474.531 m S Q +Q Q +showpage +%%Trailer +end restore +%%EOF diff --git a/doc/dual-anchor-diag2.svg b/doc/dual-anchor-diag2.svg new file mode 100644 index 000000000..55683994b --- /dev/null +++ b/doc/dual-anchor-diag2.svg @@ -0,0 +1,795 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + Anchor A + Anchor B + + + + + + + + + + + + CommitTx A + + + Escape A + + + SIGA & SIGB + + + Escape B + + + CommitTx B + + + + + + + + + + + + + + + + + + SIG A & B + SIG A & B + + + SIGA + SIGA & SIGB + SIGA & SIGB + SIGA & SIGB + + SIGB + + + diff --git a/doc/dual-anchor-diag3.eps b/doc/dual-anchor-diag3.eps new file mode 100644 index 000000000..456429ecc --- /dev/null +++ b/doc/dual-anchor-diag3.eps @@ -0,0 +1,806 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: cairo 1.14.2 (http://cairographics.org) +%%CreationDate: Tue Jul 14 10:46:42 2015 +%%Pages: 1 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%BoundingBox: 26 -1 547 434 +%%EndComments +%%BeginProlog +save +50 dict begin +/q { gsave } bind def +/Q { grestore } bind def +/cm { 6 array astore concat } bind def +/w { setlinewidth } bind def +/J { setlinecap } bind def +/j { setlinejoin } bind def +/M { setmiterlimit } bind def +/d { setdash } bind def +/m { moveto } bind def +/l { lineto } bind def +/c { curveto } bind def +/h { closepath } bind def +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto + 0 exch rlineto 0 rlineto closepath } bind def +/S { stroke } bind def +/f { fill } bind def +/f* { eofill } bind def +/n { newpath } bind def +/W { clip } bind def +/W* { eoclip } bind def +/BT { } bind def +/ET { } bind def +/pdfmark where { pop globaldict /?pdfmark /exec load put } + { globaldict begin /?pdfmark /pop load def /pdfmark + /cleartomark load def end } ifelse +/BDC { mark 3 1 roll /BDC pdfmark } bind def +/EMC { mark /EMC pdfmark } bind def +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def +/Tj { show currentpoint cairo_store_point } bind def +/TJ { + { + dup + type /stringtype eq + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse + } forall + currentpoint cairo_store_point +} bind def +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def +/Tf { pop /cairo_font exch def /cairo_font_matrix where + { pop cairo_selectfont } if } bind def +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point + /cairo_font where { pop cairo_selectfont } if } bind def +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def +/g { setgray } bind def +/rg { setrgbcolor } bind def +/d1 { setcachedevice } bind def +%%EndProlog +%%BeginSetup +%%BeginResource: font DejaVuSans +11 dict begin +/FontType 42 def +/FontName /DejaVuSans def +/PaintType 0 def +/FontMatrix [ 1 0 0 1 0 0 ] def +/FontBBox [ 0 0 0 0 ] def +/Encoding 256 array def +0 1 255 { Encoding exch /.notdef put } for +Encoding 32 /space put +Encoding 38 /ampersand put +Encoding 45 /hyphen put +Encoding 65 /A put +Encoding 66 /B put +Encoding 67 /C put +Encoding 69 /E put +Encoding 71 /G put +Encoding 73 /I put +Encoding 77 /M put +Encoding 79 /O put +Encoding 80 /P put +Encoding 82 /R put +Encoding 83 /S put +Encoding 84 /T put +Encoding 86 /V put +Encoding 95 /underscore put +Encoding 97 /a put +Encoding 99 /c put +Encoding 101 /e put +Encoding 104 /h put +Encoding 105 /i put +Encoding 109 /m put +Encoding 110 /n put +Encoding 111 /o put +Encoding 112 /p put +Encoding 114 /r put +Encoding 115 /s put +Encoding 116 /t put +Encoding 120 /x put +/CharStrings 31 dict dup begin +/.notdef 0 def +/A 1 def +/n 2 def +/c 3 def +/h 4 def +/o 5 def +/r 6 def +/space 7 def +/B 8 def +/C 9 def +/m 10 def +/i 11 def +/t 12 def +/T 13 def +/x 14 def +/E 15 def +/s 16 def +/a 17 def +/p 18 def +/e 19 def +/S 20 def +/I 21 def +/G 22 def +/ampersand 23 def +/O 24 def +/P 25 def +/underscore 26 def +/V 27 def +/R 28 def +/M 29 def +/hyphen 30 def +end readonly def +/sfnts [ +<0001000000090080000300106376742000691d3900001648000001fe6670676d7134766a0000 +1848000000ab676c7966ab10bf5d0000009c000015ac68656164026638f7000018f400000036 +686865610cb806700000192c00000024686d747895560ef9000019500000007c6c6f63610001 +3e90000019cc000000806d617870048c067100001a4c00000020707265703b07f10000001a6c +0000056800020066fe96046605a400030007001a400c04fb0006fb0108057f0204002fc4d4ec +310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f272062900020010 +0000056805d50002000a00c2404100110100040504021105050401110a030a0011020003030a +0711050406110505040911030a08110a030a4200030795010381090509080706040302010009 +050a0b10d4c4173931002f3ce4d4ec1239304b5358071005ed0705ed071005ed0705ed071008 +ed071005ed071005ed071008ed5922b2200c01015d40420f010f020f070f080f005800760070 +008c000907010802060309041601190256015802500c67016802780176027c03720477077808 +87018802800c980299039604175d005d090121013301230321032302bcfeee0225fe7be50239 +d288fd5f88d5050efd1903aefa2b017ffe810000000100ba00000464047b0013003640190309 +00030e0106870e11b80cbc0a010208004e0d09080b461410fcec32f4ec31002f3ce4f4c4ec11 +12173930b46015cf1502015d0111231134262322061511231133153e013332160464b87c7c95 +acb9b942b375c1c602a4fd5c029e9f9ebea4fd870460ae6564ef00010071ffe303e7047b0019 +003f401b00860188040e860d880ab91104b917b8118c1a07120d004814451a10fce432ec3100 +10e4f4ec10fef4ee10f5ee30400b0f1b101b801b901ba01b05015d01152e0123220615141633 +323637150e0123220011100021321603e74e9d50b3c6c6b3509d4e4da55dfdfed6012d010655 +a20435ac2b2be3cdcde32b2baa2424013e010e0112013a230000000100ba0000046406140013 +00344019030900030e0106870e11b80c970a010208004e0d09080b461410fcec32f4ec31002f +3cecf4c4ec1112173930b2601501015d0111231134262322061511231133113e013332160464 +b87c7c95acb9b942b375c1c602a4fd5c029e9f9ebea4fd870614fd9e6564ef0000020071ffe3 +0475047b000b0017004a401306b91200b90cb8128c1809120f51031215451810fcecf4ec3100 +10e4f4ec10ee3040233f197b007b067f077f087f097f0a7f0b7b0c7f0d7f0e7f0f7f107f117b +12a019f01911015d012206151416333236353426273200111000232200111000027394acab95 +93acac93f00112feeef0f1feef011103dfe7c9c9e7e8c8c7e99cfec8feecfeedfec701390113 +011401380000000100ba0000034a047b001100304014060b0700110b03870eb809bc070a0608 +0008461210fcc4ec3231002fe4f4ecc4d4cc11123930b450139f1302015d012e012322061511 +231133153e0133321617034a1f492c9ca7b9b93aba85132e1c03b41211cbbefdb20460ae6663 +05050000000300c9000004ec05d5000800110020004340231900950a0995128101950aad1f11 +0b080213191f05000e1c1605191c2e09001c12042110fcec32fcecd4ec111739393931002fec +ecf4ec10ee3930b20f2201015d01112132363534262301112132363534262325213216151406 +071e01151404232101930144a39d9da3febc012b94919194fe0b0204e7fa807c95a5fef0fbfd +e802c9fddd878b8c850266fe3e6f727170a6c0b189a21420cb98c8da00010073ffe3052705f0 +00190036401a0da10eae0a951101a100ae04951791118c1a07190d003014101a10fcec32ec31 +0010e4f4ecf4ec10eef6ee30b40f1b1f1b02015d01152e0123200011100021323637150e0123 +2000111000213216052766e782ff00fef00110010082e7666aed84feadfe7a0186015386ed05 +62d55f5efec7fed8fed9fec75e5fd34848019f01670168019f470000000100ba0000071d047b +0022005a4026061209180f00061d07150c871d2003b81bbc19100700110f0808065011080f50 +1c18081a462310fcec32fcfcfcec11123931002f3c3ce4f43cc4ec3211121739304013302450 +2470249024a024a024bf24df24ff2409015d013e013332161511231134262322061511231134 +262322061511231133153e01333216042945c082afbeb972758fa6b972778da6b9b93fb0797a +ab03897c76f5e2fd5c029ea19cbea4fd87029ea29bbfa3fd870460ae67627c000000000200c1 +00000179061400030007002b400e06be04b100bc020501080400460810fc3cec3231002fe4fc +ec30400b1009400950096009700905015d1333112311331523c1b8b8b8b80460fba00614e900 +00010037000002f2059e0013003840190e05080f03a9001101bc08870a0b0809020400081012 +0e461410fc3cc4fc3cc432393931002fecf43cc4ec3211393930b2af1501015d011121152111 +14163b01152322263511233533110177017bfe854b73bdbdd5a28787059efec28ffda0894e9a +9fd202608f013e0000000001fffa000004e905d50007004a400e0602950081040140031c0040 +050810d4e4fce431002ff4ec3230014bb00a5458bd00080040000100080008ffc03811373859 +401300091f00100110021f071009400970099f09095d03211521112311210604effdeecbfdee +05d5aafad5052b000001003b000004790460000b014340460511060706041103040707060411 +050401020103110202010b110001000a11090a0101000a110b0a0708070911080807420a0704 +01040800bf05020a0704010408000208060c10d44bb00a544bb00f545b4bb010545b4bb01154 +5b58b90006004038594bb0145458b90006ffc03859c4d4c411173931002f3cec321739304b53 +58071005ed071008ed071008ed071005ed071005ed071008ed071008ed071005ed5922014098 +0a04040a1a04150a260a3d04310a55045707580a660a76017a047607740a8d04820a99049f04 +9707920a900aa601a904af04a507a30aa00a1c0a03040505090a0b1a03150515091a0b290326 +0525092a0b200d3a013903370534073609390b300d4903460545094a0b400d59005601590259 +0357055606590756085609590b500d6f0d78017f0d9b019407ab01a407b00dcf0ddf0dff0d2f +5d005d09022309012309013309010464fe6b01aad9febafebad901b3fe72d9012901290460fd +dffdc101b8fe48024a0216fe71018f00000100c90000048b05d5000b002e4015069504029500 +81089504ad0a05010907031c00040c10fcec32d4c4c431002fececf4ec10ee30b21f0d01015d +132115211121152111211521c903b0fd1a02c7fd3902f8fc3e05d5aafe46aafde3aa00000001 +006fffe303c7047b002700e7403c0d0c020e0b531f1e080902070a531f1f1e420a0b1e1f0415 +00860189041486158918b91104b925b8118c281e0a0b1f1b0700521b080e07081422452810fc +c4ecd4ece4111239393939310010e4f4ec10fef5ee10f5ee121739304b535807100eed111739 +070eed1117395922b2002701015d406d1c0a1c0b1c0c2e092c0a2c0b2c0c3b093b0a3b0b3b0c +0b200020012402280a280b2a132f142f152a16281e281f292029212427860a860b860c860d12 +000000010202060a060b030c030d030e030f03100319031a031b031c041d09272f293f295f29 +7f2980299029a029f029185d005d7101152e012322061514161f011e0115140623222627351e +013332363534262f012e01353436333216038b4ea85a898962943fc4a5f7d85ac36c66c66182 +8c65ab40ab98e0ce66b4043fae282854544049210e2a99899cb62323be353559514b50250f24 +95829eac1e0000000002007bffe3042d047b000a002500bc4027191f0b17090e00a91706b90e +1120861fba1cb923b8118c170c001703180d09080b1f030814452610fcecccd4ec3232113939 +31002fc4e4f4fcf4ec10c6ee10ee11391139123930406e301d301e301f3020302130223f2740 +1d401e401f402040214022501d501e501f50205021502250277027851d871e871f8720872185 +229027a027f0271e301e301f30203021401e401f40204021501e501f50205021601e601f6020 +6021701e701f70207021801e801f80208021185d015d0122061514163332363d01371123350e +01232226353436332135342623220607353e0133321602bedfac816f99b9b8b83fbc88accbfd +fb0102a79760b65465be5af3f00233667b6273d9b4294cfd81aa6661c1a2bdc0127f8b2e2eaa +2727fc00000200bafe5604a4047b0010001c003e401b1ab9000e14b90508b80e8c01bd03bc1d +11120b471704000802461d10fcec3232f4ec310010e4e4e4f4c4ec10c4ee304009601e801ea0 +1ee01e04015d2511231133153e013332001110022322260134262322061514163332360173b9 +b93ab17bcc00ffffcc7bb10238a79292a7a79292a7a8fdae060aaa6461febcfef8fef8febc61 +01ebcbe7e7cbcbe7e700000000020071ffe3047f047b0014001b007040240015010986088805 +15a90105b90c01bb18b912b80c8c1c1b1502081508004b02120f451c10fcecf4ecc411123931 +0010e4f4ece410ee10ee10f4ee1112393040293f1d701da01dd01df01d053f003f013f023f15 +3f1b052c072f082f092c0a6f006f016f026f156f1b095d71015d0115211e0133323637150e01 +232000111000333200072e0123220607047ffcb20ccdb76ac76263d06bfef4fec70129fce201 +07b802a5889ab90e025e5abec73434ae2a2c0138010a01130143feddc497b4ae9e0000010087 +ffe304a205f00027007e403c0d0c020e0b021e1f1e080902070a021f1f1e420a0b1e1f041501 +0015a11494189511049500942591118c281e0a0b1f1b0700221b190e2d071914222810dcc4ec +fcece4111239393939310010e4f4e4ec10eef6ee10c6111739304b535807100eed1117390710 +0eed1117395922b20f2901015db61f292f294f29035d01152e012322061514161f011e011514 +0421222627351e013332363534262f012e01353424333216044873cc5fa5b377a67ae2d7fedd +fee76aef807bec72adbc879a7be2ca0117f569da05a4c53736807663651f192bd9b6d9e0302f +d04546887e6e7c1f182dc0abc6e42600000100c90000019305d50003002eb700af02011c0004 +0410fc4bb0105458b9000000403859ec31002fec3001400d30054005500560058f059f05065d +13331123c9caca05d5fa2b0000010073ffe3058b05f0001d0039402000051b0195031b950812 +a111ae15950e91088c1e02001c1134043318190b101e10fcecfce4fcc4310010e4f4ecf4ec10 +fed4ee11393930251121352111060423200011100021320417152e0123200011100021323604 +c3feb6021275fee6a0fea2fe75018b015e9201076f70fc8bfeeefeed011301126ba8d50191a6 +fd7f53550199016d016e01994846d75f60fecefed1fed2fece25000000020081ffe305fe05f0 +0009003001cd40960d010e0c861112110b860a0b121211098600091516150701060886161615 +02010301861d1e1d008609001e1e1d201f02211e110a130a17161503181411130a0708020609 +1113130a0201020300110a130a171602181511130a141113130a42120b090306000a1e032815 +0e0628270695182b9527942491188c0e130a2e0b0e09002e1215270e1e032e1227210e110f13 +2103121b103110fcecc4d4d4ec10c6ee1139111239391139391139113931002fc6e4f6e6ee10 +ee10c6111239111739111739304b5358071005ed0705ed111739071005ed111739071005ed11 +17390705ed111739071005ed111739071008ed07100eed11173907100eed111739071008ed07 +1008ed07100eed1117395922b20f3201015d40b2070b052209291c001c011f02170b2a002a01 +26123a003412440b5e0059015a0a55125a1a5a1f5930671e7b009b009a0199029708950b9315 +95169522992d1f090b090c08110c270c2818021b09190b190c19111c141c15161d1f32270027 +01290923122a132a1428152f323b09341239133f324a094c144b1546194f3256015a09590c55 +1259135c1f5f326a0c691160327501790c7a1193009301970295059c079c089f089a099b0b9a +0c9032a032b032395d005d010e011514163332363709013e0137330602070123270e01232200 +353436372e0135343633321617152e0123220615141601f25b55d4a05fa649fe7b01fc3b4206 +ba0c685d0117fc8f68e483f1fece86863032deb853a555579e4469833b032351a15892c23f40 +028ffdf859cb7284fefe7efee39359570113d780e1633f7d3ca2c52424b62f316f5833670002 +0073ffe305d905f0000b00170023401306951200950c91128c1809190f33031915101810fcec +fcec310010e4f4ec10ee300122001110003332001110002720001110002120001110000327dc +fefd0103dcdc0101feffdc013a0178fe88fec6fec5fe870179054cfeb8fee5fee6feb8014801 +1a011b0148a4fe5bfe9efe9ffe5b01a40162016201a50000000200c90000048d05d500080013 +003a40180195100095098112100a0802040005190d3f11001c09041410fcec32fcec11173931 +002ff4ecd4ec30400b0f151f153f155f15af1505015d01113332363534262325213204151404 +2b0111230193fe8d9a9a8dfe3801c8fb0101fefffbfeca052ffdcf92878692a6e3dbdde2fda8 +0001ffecfe1d0414feac0003000fb500a90100020410c4c43100d4ec30011521350414fbd8fe +ac8f8f000000000100100000056805d5000600b7402704110506050311020306060503110403 +000100021101010042030401af0006040302000505010710d4c4173931002fec3239304b5358 +071005ed071008ed071008ed071005ed5922b2500801015d406200032a03470447055a037d03 +8303070600070208040906150114021a041a052a002601260229042905250620083800330133 +023c043c053706480045014502490449054706590056066602690469057a0076017602790479 +057506800898009706295d005d21013309013301024afdc6d301d901dad2fdc705d5fb1704e9 +fa2b000200c90000055405d50013001c00b14035090807030a06110304030511040403420604 +0015030415950914950d810b040506031109001c160e050a191904113f140a1c0c041d10fcec +32fcc4ec1117391139393931002f3cf4ecd4ec123912391239304b5358071005ed071005ed11 +17395922b2401e01015d40427a13010500050105020603070415001501140216031704250025 +01250226032706260726082609201e3601360246014602680575047505771388068807980698 +071f5d005d011e01171323032e012b01112311212016151406011133323635342623038d417b +3ecdd9bf4a8b78dcca01c80100fc83fd89fe9295959202bc16907efe68017f9662fd8905d5d6 +d88dba024ffdee8783838500000100c90000061f05d5000c00bf403403110708070211010208 +080702110302090a0901110a0a09420a070203080300af080b050908030201050a061c043e0a +1c00040d10fcecfcec11173931002f3cc4ec32111739304b5358071005ed071008ed071008ed +071005ed5922b2700e01015d405603070f080f09020a15021407130a260226072007260a200a +3407350a69027c027b07790a80028207820a90021604010b0313011b0323012c032708280934 +013c035608590965086a097608790981018d0395019b03145d005d1321090121112311012301 +1123c9012d017d017f012dc5fe7fcbfe7fc405d5fc0803f8fa2b051ffc000400fae100000001 +006401df027f028300030011b6009c020401000410dccc310010d4ec301321152164021bfde5 +0283a400013500b800cb00cb00c100aa009c01a600b800660000007100cb00a002b200850075 +00b800c301cb0189022d00cb00a600f000d300aa008700cb03aa0400014a003300cb000000d9 +050200f4015400b4009c01390114013907060400044e04b4045204b804e704cd0037047304cd +04600473013303a2055605a60556053903c5021200c9001f00b801df007300ba03e9033303bc +0444040e00df03cd03aa00e503aa0404000000cb008f00a4007b00b80014016f007f027b0252 +008f00c705cd009a009a006f00cb00cd019e01d300f000ba018300d5009803040248009e01d5 +00c100cb00f600830354027f00000333026600d300c700a400cd008f009a0073040005d5010a +00fe022b00a400b4009c00000062009c0000001d032d05d505d505d505f0007f007b005400a4 +06b80614072301d300b800cb00a601c301ec069300a000d3035c037103db0185042304a80448 +008f0139011401390360008f05d5019a0614072306660179046004600460047b009c00000277 +046001aa00e904600762007b00c5007f027b000000b4025205cd006600bc00660077061000cd +013b01850389008f007b0000001d00cd074a042f009c009c0000077d006f0000006f0335006a +006f007b00ae00b2002d0396008f027b00f600830354063705f6008f009c04e10266008f018d +02f600cd03440029006604ee00730000140000960000b707060504030201002c2010b0022549 +64b040515820c859212d2cb002254964b040515820c859212d2c20100720b00050b00d7920b8 +ffff5058041b0559b0051cb0032508b0042523e120b00050b00d7920b8ffff5058041b0559b0 +051cb0032508e12d2c4b505820b0fd454459212d2cb002254560442d2c4b5358b00225b00225 +45445921212d2c45442d2cb00225b0022549b00525b005254960b0206368208a108a233a8a10 +653a2d00000100000002570afb6146a45f0f3cf5001f080000000000cef5cb7600000000cef5 +cb76f7d6fcae0d72095500000008000000010000000000010000076dfe1d00000de2f7d6fa51 +0d7200010000000000000000000000000000001f04cd006605790010051200ba046600710512 +00ba04e50071034a00ba028b0000057d00c90596007307cb00ba023900c10323003704e3fffa +04bc003b050e00c9042b006f04e7007b051400ba04ec007105140087025c00c906330073063d +0081064c007304d300c90400ffec05790010058f00c906e700c902e300640000000000000044 +00000140000001b800000250000002c80000036c000003dc000003dc0000048c000005240000 +05e800000638000006b400000724000008a80000090800000a6800000b9400000c3400000d08 +00000e0000000e4800000ef000001158000011e4000012640000129000001370000014840000 +1580000015ac00010000001f0354002b0068000c000200100099000800000415021600080004 +b8028040fffbfe03fa1403f92503f83203f79603f60e03f5fe03f4fe03f32503f20e03f19603 +f02503ef8a4105effe03ee9603ed9603ecfa03ebfa03eafe03e93a03e84203e7fe03e63203e5 +e45305e59603e48a4105e45303e3e22f05e3fa03e22f03e1fe03e0fe03df3203de1403dd9603 +dcfe03db1203da7d03d9bb03d8fe03d68a4105d67d03d5d44705d57d03d44703d3d21b05d3fe +03d21b03d1fe03d0fe03cffe03cefe03cd9603cccb1e05ccfe03cb1e03ca3203c9fe03c68511 +05c61c03c51603c4fe03c3fe03c2fe03c1fe03c0fe03bffe03befe03bdfe03bcfe03bbfe03ba +1103b9862505b9fe03b8b7bb05b8fe03b7b65d05b7bb03b78004b6b52505b65d40ff03b64004 +b52503b4fe03b39603b2fe03b1fe03b0fe03affe03ae6403ad0e03acab2505ac6403abaa1205 +ab2503aa1203a98a4105a9fa03a8fe03a7fe03a6fe03a51203a4fe03a3a20e05a33203a20e03 +a16403a08a4105a096039ffe039e9d0c059efe039d0c039c9b19059c64039b9a10059b19039a +1003990a0398fe0397960d0597fe03960d03958a410595960394930e05942803930e0392fa03 +9190bb0591fe03908f5d0590bb039080048f8e25058f5d038f40048e25038dfe038c8b2e058c +fe038b2e038a8625058a410389880b05891403880b0387862505876403868511058625038511 +0384fe038382110583fe0382110381fe0380fe037ffe0340ff7e7d7d057efe037d7d037c6403 +7b5415057b25037afe0379fe03780e03770c03760a0375fe0374fa0373fa0372fa0371fa0370 +fe036ffe036efe036c21036bfe036a1142056a530369fe03687d036711420566fe0365fe0364 +fe0363fe0362fe03613a0360fa035e0c035dfe035bfe035afe0359580a0559fa03580a035716 +190557320356fe035554150555420354150353011005531803521403514a130551fe03500b03 +4ffe034e4d10054efe034d10034cfe034b4a13054bfe034a4910054a1303491d0d0549100348 +0d0347fe0346960345960344fe0343022d0543fa0342bb03414b0340fe033ffe033e3d12053e +14033d3c0f053d12033c3b0d053c40ff0f033b0d033afe0339fe033837140538fa0337361005 +37140336350b05361003350b03341e03330d0332310b0532fe03310b03302f0b05300d032f0b +032e2d09052e10032d09032c32032b2a25052b64032a2912052a250329120328272505284103 +27250326250b05260f03250b0324fe0323fe03220f03210110052112032064031ffa031e1d0d +051e64031d0d031c1142051cfe031bfa031a42031911420519fe031864031716190517fe0316 +01100516190315fe0314fe0313fe031211420512fe0311022d05114203107d030f64030efe03 +0d0c16050dfe030c0110050c16030bfe030a100309fe0308022d0508fe030714030664030401 +100504fe03401503022d0503fe0302011005022d0301100300fe0301b80164858d012b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d00> +] def +/f-0-0 currentdict end definefont pop +%%EndResource +%%BeginResource: font DejaVuSans-Bold +11 dict begin +/FontType 42 def +/FontName /DejaVuSans-Bold def +/PaintType 0 def +/FontMatrix [ 1 0 0 1 0 0 ] def +/FontBBox [ 0 0 0 0 ] def +/Encoding 256 array def +0 1 255 { Encoding exch /.notdef put } for +Encoding 79 /O put +Encoding 82 /R put +/CharStrings 3 dict dup begin +/.notdef 0 def +/O 1 def +/R 2 def +end readonly def +/sfnts [ +<000100000009008000030010637674203eb9310800000268000002546670676d5b026bf00000 +04bc000000ac676c7966581f41560000009c000001cc68656164045e38fb0000056800000036 +686865610eaf0774000005a000000024686d747811c30188000005c40000000c6c6f63610000 +02f8000005d0000000106d6178700648062d000005e000000020707265707c61a2e700000600 +000007a700020066fe96046605a400030007001fbc00040126000000060126b6010805890204 +002fc4d4ec310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f27206 +2900000000020066ffe3066605f0000b00170032401306ae1200ae0c9c129818092d0f37032d +152b1810fcecfcec310010e4f4ec10ee30400b0019171310192f193f1905015d012202151412 +3332123534020320001110002120001110000366b0c2c2b0b1c2c2b101680198fe68fe98fe99 +fe67019904d9fefcecebfefc0104ebec01040117fe64fe95fe96fe64019c016a016b019c0000 +000200bc0000060005d50008001c008740321b1a021c191d161716181d1717162519160a1300 +ae0906ae0c8d170a16131803101c190600040d07031617100907160b031d10fcec32d4c4ec11 +39173911173931002f3cf4ecd4ec39123939304b5358071005ed071005ed1117395922b2181c +01015d401f1b181b191a1a1b1b1a1c361536164515451656155616501e65156516601e0f5d01 +32363534262b0119022111212004151406071e01171321032e012302df79696979a2fe7f024c +012701138f904f7d40d1fe66b637715e033f5a676658fe81fef6fdcb05d5c6d694be2d127f81 +fe5801737052000001660133016600bc00e90000013d00a200fa031f00020002006601660002 +000200ac015400ec00bc006201660181048501540166016d04a400020166007f04cd00000002 +0133006200710000002504a401bc00ba00e500660181018d0548055a0166016d000000000002 +000200f605c301f0053902390058046d043d04b2048104b2016601750466048100b004660439 +02d1049c047b04cf047b005801330166014c0166014c000200ac009a014a0123009a029a0144 +0119014402cd00c100000166013f019a013b05cb05cb00d500d5015000ac00ac0077020a01c7 +01f2012f015801b2012300f600f6011f012f0135023501ee01e70133009800d10358050a009a +008f0112009800bc00cd00e500e500f2007304000166008f05d5022b05d500c300e100d700e5 +0000006a01020000001d032d05d505d505f000a8006a00ec00e1010205d506140721046602f8 +00ec018302a602f80123010201020112011f031f005e03cd046004c7048900ec01bc00ba0102 +0333031f03420333035c0112011f05d5019a009a00e106660179046004600460047b000000ec +02c302b802cd00be00dd00d50000006a025c027b029a00dd01ae01ba01120000008501ae0460 +0762041b009a069a045800ee009a029a00d102cd019a015005cb05cb008b008b063100f60406 +00f0034c016004a800c10000002505c101000121074a06120096014a078300a800000337007b +0014000000c9010005c105c105c105c101000108061d00960427039e00ec0102027d01330098 +00d10358017900cd02390362009c009c009c009301b8009300b80073000014000326b7070605 +04030201002c2010b002254964b040515820c859212d2cb002254964b040515820c859212d2c +20100720b00050b00d7920b8ffff5058041b0559b0051cb0032508b0042523e120b00050b00d +7920b8ffff5058041b0559b0051cb0032508e12d2c4b505820b80128454459212d2cb0022545 +60442d2c4b5358b00225b0022545445921212d2c45442d2cb00225b0022549b00525b0052549 +60b0206368208a108a233a8a10653a2d000100000002570aca280dd25f0f3cf5001f08000000 +0000cef5cb7000000000cef5cb70f772fcae0fcd096500010008000000010000000000010000 +076dfe1d00001021f772f9320fcd00010000000000000000000000000000000304cd006606cd +0066062900bc000000000000004c000000e0000001cc000100000003034e002b0078000c0002 +001000400008000005ed02210008000441840280012600fe000301250011000301240121003a +0005012400fa000301230016000301220121003a0005012200fe00030121003a0003012000fa +0003011f00bb0003011e00640003011d00fe0003011c00190003011b001e0003011a00fe0003 +011900fe0003011800fe0003011700fe0003011600fe000301150114000e0005011500fe0003 +0114000e0003011300fe0003011200fe0003010f010e007d0005010f00fe0003010e007d0003 +010d010c008c0005010d00fe0003010d00c00004010c010b00590005010c008c0003010c0080 +0004010b010a00260005010b00590003010b00400004010a00260003010900fe0003010800fe +00030107000c00030107008000040106b2972e054113010600fa0003010500fa0003010400fe +0003010300190003010200fa0003010100fa0003010040ff7d03ff3e03fefe03fcfb2c05fcfe +03fb2c03fafe03f9f84705f97d03f84703f7fa03f6fe03f5fe03f4fe03f3bb03f2fe03f1fe03 +f0fe03ef1e03eefe03edec0a05edfe03ec0a03ec4004ebea0a05eb3203ea0a03e9fa03e89116 +05e8fe03e7fa03e6fa03e5911605e5fe03e4fe03e3fe03e2fe03e1fe03e0fe03dffe03defa03 +dddc1805dd6403dc1803dba01e05db6403dad92505dafa03d92503d8d12505d8fa03d7d61405 +d71603d6d51005d61403d51003d4d30b05d42003d30b03d2d12505d2fa03d1911605d12503d0 +940c05d02303cfce1405cf2603cecd1205ce1403cd1203cc911605cc1d03cb1403cac9bb05ca +fe03c9c85d05c9bb03c98004c840ffc72505c85d03c84004c72503c6fe03c56403c4901005c4 +fe03c31c03c2fe03c1fe03c0bf3a05c0fa03bfad1b05bf3a03bebd1a05be3203bdbc1105bd1a +03bcbb0f05bc1103bbba0c05bb0f03ba0c03b9911605b9fe03b8fe03b71503b61203b5fe03b4 +fe03b3fe03b21703b11903b01603afad1b05affa03aead1b05aefa03ad911605ad1b03ac9116 +05ac7d03abfe03aa2603a9fe03a8fe03a7fe03a6fe03a50a03a4fe03a3a20e05a3fe03a20e03 +a24004a1a01e05a1fa03a0911605a01e039f9116059ffa039e940c059e1c039dfe039c9bbb05 +9cfe039b9a5d059bbb039b80049a8f25059a5d039a400499fe0398972e0598fe03972e039691 +1605961e40ff0395940c05952003940c0393911605934b039291160592fe0391901005911603 +9010038f25038efe038dfe038cfe038bfe038afe0389fe038887250588fe0387250386fe0385 +fe0384320383960382fe0381fe038019037f0a037efe037dfe037cfe037bfa037afa0379fe03 +7776a60577fe0376a60375741b0575fa03741b0373fa03727d0371fe03706f2c056f2c036efa +036dfa036cfa036bfe036afe0369fe0368630c0568320367fe0366320365640a0565fe03640a +0364400463620a05630c03620a0361601505619603600111056015035f0a035efe035dfe035c +0111055cfe035b5a1b055bfe035a0111055a1b0359fe0358fa0357fe035601110540ff56fe03 +55fe03541e035314035251190552fa0351011105511903504f190550fa034f4e11054f19034e +11034d1e034c4b14054c15034b4a11054b14034a490e054a1103490e0348fa03474614054715 +0346140345fa0344430e05440f03430e034241250542fa0341011105412503403f0f0540fe03 +3f3e0e053f0f033e0e033d3c0d053d16033c0d033b64033afe0339140338fe0337130336351a +0536250335341405351a0335c004340a0d0534140334800433320c05331403334004320c0331 +30a60531fe033001110530a6032f0c032e13032d2c3a052dfa032c1525052c3a032b64032a64 +0329fe0328150327171105271e03262003251e0324231105402b241e0323110322000d0522fa +03210f032140042014031f0a031e1e031d1c19051d25031c0f13051c19031cb801004091041b +0d031a194b051a7d0319011105194b0318fe031711031615250516fa03150111051525031464 +0313110312fe031101110511fe031064030f0e10050f13030fc0040e10030e80040d0111050d +fa030c32030b0a0d050b16030b80040a0d030a400409fe0308fe0307fe0306050a0506fe0305 +0a0305400404fa030364030201110502fe0301000d05011103000d0301b80164858d012b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d0000> +] def +/f-1-0 currentdict end definefont pop +%%EndResource +%%EndSetup +%%Page: 1 1 +%%BeginPageSetup +%%PageBoundingBox: 26 -1 547 434 +%%EndPageSetup +q 26 -1 521 435 rectclip q +0 g +BT +17.6 0 0 17.6 130.590635 355.418671 Tm +/f-0-0 1 Tf +[(Anchor)-3( A)]TJ +11.78352 -0.0324679 Td +[(Anchor)-3( B)]TJ +ET +2.4 w +1 J +1 j +[] 0.0 d +4 M q 1 0 0 -1 0 433.896301 cm +122.449 55.629 96 32.574 re S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +170.449 87.059 m 170.449 167.059 l S Q +170.449 274.838 m 167.25 278.037 l 170.449 266.838 l 173.648 278.037 l +h +170.449 274.838 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-159.059 170.449 m -155.859 167.25 l -167.059 170.449 l -155.859 173.648 + l h +-159.059 170.449 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +329.305 55.629 96 33.715 re S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +377.305 88.203 m 377.305 168.203 l S Q +377.305 273.693 m 374.105 276.892 l 377.305 265.693 l 380.504 276.892 l + h +377.305 273.693 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-160.203 377.305 m -157.004 374.105 l -168.203 377.305 l -157.004 380.504 + l h +-160.203 377.305 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +170.164 216.844 m 170.449 256.203 l 265.957 256.105 l 265.387 297.246 l + S Q +265.496 144.65 m 262.344 147.892 l 265.387 136.65 l 268.742 147.803 l h +265.496 144.65 m f* +0.799923 w +q 0.0138888 1 1 -0.0138888 0 433.896301 cm +-285.504 269.461 m -282.306 266.265 l -293.504 269.463 l -282.307 272.663 + l h +-285.504 269.461 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +137.555 351.727 96 80 re S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +89.879 15.629 m 138.449 52.773 l S Q +132.094 385.982 m 127.609 385.385 l 138.449 381.123 l 131.496 390.467 l + h +132.094 385.982 m f* +0.635486 w +q -1 0.764706 0.764706 1 0 433.896301 cm +-106.472 33.506 m -103.931 30.965 l -112.827 33.506 l -103.931 36.047 l + h +-106.472 33.506 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +201.879 8.773 m 194.449 53.918 l S Q +195.746 387.873 m 193.109 391.553 l 194.449 379.978 l 199.426 390.513 l + h +195.746 387.873 m f* +0.789384 w +q 0.164557 1 1 -0.164557 0 433.896301 cm +-13.448 197.959 m -10.288 194.802 l -21.342 197.961 l -10.287 201.119 l + h +-13.448 197.959 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +297.879 15.629 m 346.449 52.773 l S Q +340.094 385.982 m 335.609 385.385 l 346.449 381.123 l 339.496 390.467 l + h +340.094 385.982 m f* +0.635486 w +q -1 0.764706 0.764706 1 0 433.896301 cm +-237.721 133.872 m -235.179 131.331 l -244.076 133.873 l -235.18 136.414 + l h +-237.721 133.872 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +457.305 16.203 m 409.305 54.488 l S Q +415.559 384.396 m 416.066 388.892 l 409.305 379.408 l 420.059 383.892 l + h +415.559 384.396 m f* +0.625421 w +q 1 0.797619 0.797619 -1 0 433.896301 cm +229.848 232.831 m 232.35 230.331 l 223.594 232.831 l 232.353 235.333 l +h +229.848 232.831 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +418.449 0.203 m 387.02 53.918 l S Q +391.059 386.885 m 389.914 391.263 l 387.02 379.978 l 395.438 388.029 l +h +391.059 386.885 m f* +0.69049 w +q 0.585107 1 1 -0.585107 0 433.896301 cm +135.434 311.816 m 138.197 309.054 l 128.528 311.817 l 138.195 314.579 l + h +135.434 311.816 m S Q +BT +17.6 0 0 17.6 150.69448 46.484589 Tm +/f-0-0 1 Tf +[(Commit)]TJ +0.862305 -1.25 Td +(Tx A)Tj +ET +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +27.348 174.184 96 32.574 re S Q +BT +17.6 0 0 17.6 34.346965 238.578938 Tm +/f-0-0 1 Tf +[(Esca)-3(pe A)]TJ +ET +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +250.605 310.918 m 178.293 310.348 l 178.293 350.348 l S Q +178.293 91.549 m 175.094 94.752 l 178.293 83.549 l 181.492 94.752 l h +178.293 91.549 m f* +0.8 w +q 0.0000002 1 1 -0.0000002 0 433.896301 cm +-342.348 178.293 m -339.144 175.094 l -350.348 178.293 l -339.144 181.492 + l h +-342.348 178.293 m S Q +BT +12 0 0 12 142.310385 332.286029 Tm +/f-0-0 1 Tf +(SIGA & SIGB)Tj +ET +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +427.684 171.355 96 32.57 re S Q +BT +17.6 0 0 17.6 434.682052 241.407364 Tm +/f-0-0 1 Tf +[(Esca)-3(pe B)]TJ +ET +q 1 0 0 -1 0 433.896301 cm +315.172 352.695 96 80 re S Q +BT +17.6 0 0 17.6 328.310715 45.514032 Tm +/f-0-0 1 Tf +[(Commit)]TJ +0.861328 -1.25 Td +(Tx B)Tj +ET +q 1 0 0 -1 0 433.896301 cm +297.879 319.629 m 297.879 332.887 287.133 343.629 273.879 343.629 c 260.621 + 343.629 249.879 332.887 249.879 319.629 c 249.879 306.375 260.621 295.629 + 273.879 295.629 c 287.133 295.629 297.879 306.375 297.879 319.629 c h +297.879 319.629 m S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +273.879 295.629 m 273.879 343.629 l S Q +q 1 0 0 -1 0 433.896301 cm +249.879 319.629 m 297.879 319.629 l S Q +q 1 0 0 -1 0 433.896301 cm +250.605 326.918 m 194.293 326.918 l 194.293 350.348 l S Q +194.293 91.549 m 191.094 94.752 l 194.293 83.549 l 197.492 94.752 l h +194.293 91.549 m f* +0.8 w +q 0.000000341463 1 1 -0.000000341463 0 433.896301 cm +-342.348 194.293 m -339.144 191.094 l -350.348 194.293 l -339.144 197.492 + l h +-342.348 194.293 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +296.574 310.918 m 368.883 310.348 l 368.887 350.348 l S Q +368.887 91.549 m 365.684 94.752 l 368.887 83.549 l 372.086 94.752 l h +368.887 91.549 m f* +0.8 w +q -0.0000002 1 1 0.0000002 0 433.896301 cm +-342.348 368.887 m -339.145 365.684 l -350.348 368.887 l -339.145 372.086 + l h +-342.348 368.887 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +296.574 326.918 m 352.883 326.918 l 352.887 350.348 l S Q +352.887 91.549 m 349.684 94.752 l 352.887 83.549 l 356.086 94.752 l h +352.887 91.549 m f* +0.8 w +q -0.000000341463 1 1 0.000000341463 0 433.896301 cm +-342.348 352.887 m -339.145 349.683 l -350.348 352.887 l -339.145 356.086 + l h +-342.348 352.887 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +377.742 218.223 m 377.789 256.203 l 281.711 255.531 l 281.711 297.816 l + S Q +281.711 144.08 m 278.508 147.279 l 281.711 136.08 l 284.91 147.279 l h +281.711 144.08 m f* +0.8 w +q 0.000000189189 1 1 -0.000000189189 0 433.896301 cm +-289.816 281.711 m -286.617 278.508 l -297.816 281.711 l -286.617 284.91 + l h +-289.816 281.711 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +193.879 191.387 m 193.879 204.641 183.133 215.387 169.879 215.387 c 156.621 + 215.387 145.879 204.641 145.879 191.387 c 145.879 178.133 156.621 167.387 + 169.879 167.387 c 183.133 167.387 193.879 178.133 193.879 191.387 c h +193.879 191.387 m S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +169.879 167.387 m 169.879 215.387 l S Q +q 1 0 0 -1 0 433.896301 cm +145.879 191.387 m 193.879 191.387 l S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +402.199 193.73 m 402.199 206.988 391.453 217.73 378.199 217.73 c 364.945 + 217.73 354.199 206.988 354.199 193.73 c 354.199 180.477 364.945 169.73 +378.199 169.73 c 391.453 169.73 402.199 180.477 402.199 193.73 c h +402.199 193.73 m S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +378.199 169.73 m 378.199 217.73 l S Q +q 1 0 0 -1 0 433.896301 cm +354.199 193.73 m 402.199 193.73 l S Q +BT +12 0 0 12 154.199851 68.649481 Tm +/f-0-0 1 Tf +(SIG A & B)Tj +14.845178 -0.134686 Td +[(SIG A &)-319(B)]TJ +ET +q 1 0 0 -1 0 433.896301 cm +145.879 191.629 m 125.879 191.629 l S Q +133.879 242.267 m 137.078 245.467 l 125.879 242.267 l 137.078 239.064 l + h +133.879 242.267 m f* +0.8 w +q 1 0 0 -1 0 433.896301 cm +133.879 191.629 m 137.078 188.43 l 125.879 191.629 l 137.078 194.832 l +h +133.879 191.629 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +403.652 190.984 m 423.652 190.984 l S Q +415.652 242.912 m 412.453 239.713 l 423.652 242.912 l 412.453 246.115 l + h +415.652 242.912 m f* +0.8 w +q -1 0 0 1 0 433.896301 cm +-415.652 -190.984 m -412.453 -194.184 l -423.652 -190.984 l -412.453 -187.781 + l h +-415.652 -190.984 m S Q +BT +12 0 0 12 46.933432 206.540155 Tm +/f-0-0 1 Tf +[(OP_CSV & SIGA)]TJ +/f-1-0 1 Tf +3.046875 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-3.569336 -1.25 Td +[(RIMA)17(GE-)20(A & SIGB)]TJ +2.471652 7.544474 Td +(SIGA & SIGB)Tj +27.716749 0.235534 Td +(SIGA & SIGB)Tj +-4.384188 5.279695 Td +(SIGA & SIGB)Tj +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +73.477 207.059 m 73.477 252.309 l S Q +73.477 189.588 m 70.277 192.787 l 73.477 181.588 l 76.68 192.787 l h +73.477 189.588 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-244.309 73.477 m -241.109 70.277 l -252.309 73.477 l -241.109 76.68 l +h +-244.309 73.477 m S Q +BT +12 0 0 12 447.973532 208.481293 Tm +/f-0-0 1 Tf +[(OP_CSV & SIGB)]TJ +/f-1-0 1 Tf +3.047852 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-3.5625 -1.25 Td +[(RIMA)17(GE-)33(B & SIGA)]TJ +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +474.531 205.117 m 474.531 250.367 l S Q +474.531 191.529 m 471.328 194.728 l 474.531 183.529 l 477.73 194.728 l +h +474.531 191.529 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-242.367 474.531 m -239.168 471.328 l -250.367 474.531 l -239.168 477.73 + l h +-242.367 474.531 m S Q +Q Q +showpage +%%Trailer +end restore +%%EOF diff --git a/doc/dual-anchor-diag3.svg b/doc/dual-anchor-diag3.svg new file mode 100644 index 000000000..169644de2 --- /dev/null +++ b/doc/dual-anchor-diag3.svg @@ -0,0 +1,813 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + Anchor A + Anchor B + + + + + + + + + + + + CommitTx A + + + Escape A + + + SIGA & SIGB + + + Escape B + + + CommitTx B + + + + + + + + + + + + + + + + + + SIG A & B + SIG A & B + + + OP_CSV & SIGAORRIMAGE-A & SIGB + SIGA & SIGB + SIGA & SIGB + SIGA & SIGB + + OP_CSV & SIGBORRIMAGE-B & SIGA + + + diff --git a/doc/dual-anchor-diag4.eps b/doc/dual-anchor-diag4.eps new file mode 100644 index 000000000..7162fdb4a --- /dev/null +++ b/doc/dual-anchor-diag4.eps @@ -0,0 +1,818 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: cairo 1.14.2 (http://cairographics.org) +%%CreationDate: Tue Jul 14 15:49:50 2015 +%%Pages: 1 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%BoundingBox: 12 -1 552 434 +%%EndComments +%%BeginProlog +save +50 dict begin +/q { gsave } bind def +/Q { grestore } bind def +/cm { 6 array astore concat } bind def +/w { setlinewidth } bind def +/J { setlinecap } bind def +/j { setlinejoin } bind def +/M { setmiterlimit } bind def +/d { setdash } bind def +/m { moveto } bind def +/l { lineto } bind def +/c { curveto } bind def +/h { closepath } bind def +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto + 0 exch rlineto 0 rlineto closepath } bind def +/S { stroke } bind def +/f { fill } bind def +/f* { eofill } bind def +/n { newpath } bind def +/W { clip } bind def +/W* { eoclip } bind def +/BT { } bind def +/ET { } bind def +/pdfmark where { pop globaldict /?pdfmark /exec load put } + { globaldict begin /?pdfmark /pop load def /pdfmark + /cleartomark load def end } ifelse +/BDC { mark 3 1 roll /BDC pdfmark } bind def +/EMC { mark /EMC pdfmark } bind def +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def +/Tj { show currentpoint cairo_store_point } bind def +/TJ { + { + dup + type /stringtype eq + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse + } forall + currentpoint cairo_store_point +} bind def +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def +/Tf { pop /cairo_font exch def /cairo_font_matrix where + { pop cairo_selectfont } if } bind def +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point + /cairo_font where { pop cairo_selectfont } if } bind def +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def +/g { setgray } bind def +/rg { setrgbcolor } bind def +/d1 { setcachedevice } bind def +%%EndProlog +%%BeginSetup +%%BeginResource: font DejaVuSans +11 dict begin +/FontType 42 def +/FontName /DejaVuSans def +/PaintType 0 def +/FontMatrix [ 1 0 0 1 0 0 ] def +/FontBBox [ 0 0 0 0 ] def +/Encoding 256 array def +0 1 255 { Encoding exch /.notdef put } for +Encoding 32 /space put +Encoding 38 /ampersand put +Encoding 45 /hyphen put +Encoding 65 /A put +Encoding 66 /B put +Encoding 67 /C put +Encoding 69 /E put +Encoding 71 /G put +Encoding 73 /I put +Encoding 77 /M put +Encoding 79 /O put +Encoding 80 /P put +Encoding 82 /R put +Encoding 83 /S put +Encoding 84 /T put +Encoding 86 /V put +Encoding 95 /underscore put +Encoding 97 /a put +Encoding 99 /c put +Encoding 101 /e put +Encoding 104 /h put +Encoding 105 /i put +Encoding 109 /m put +Encoding 110 /n put +Encoding 111 /o put +Encoding 112 /p put +Encoding 114 /r put +Encoding 115 /s put +Encoding 116 /t put +Encoding 120 /x put +/CharStrings 31 dict dup begin +/.notdef 0 def +/A 1 def +/n 2 def +/c 3 def +/h 4 def +/o 5 def +/r 6 def +/space 7 def +/B 8 def +/C 9 def +/m 10 def +/i 11 def +/t 12 def +/T 13 def +/x 14 def +/E 15 def +/s 16 def +/a 17 def +/p 18 def +/e 19 def +/S 20 def +/I 21 def +/G 22 def +/ampersand 23 def +/R 24 def +/hyphen 25 def +/O 26 def +/P 27 def +/underscore 28 def +/V 29 def +/M 30 def +end readonly def +/sfnts [ +<0001000000090080000300106376742000691d3900001648000001fe6670676d7134766a0000 +1848000000ab676c7966ab10bf5d0000009c000015ac68656164026638f7000018f400000036 +686865610cb806700000192c00000024686d747895560ef9000019500000007c6c6f63610001 +3e90000019cc000000806d617870048c067100001a4c00000020707265703b07f10000001a6c +0000056800020066fe96046605a400030007001a400c04fb0006fb0108057f0204002fc4d4ec +310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f272062900020010 +0000056805d50002000a00c2404100110100040504021105050401110a030a0011020003030a +0711050406110505040911030a08110a030a4200030795010381090509080706040302010009 +050a0b10d4c4173931002f3ce4d4ec1239304b5358071005ed0705ed071005ed0705ed071008 +ed071005ed071005ed071008ed5922b2200c01015d40420f010f020f070f080f005800760070 +008c000907010802060309041601190256015802500c67016802780176027c03720477077808 +87018802800c980299039604175d005d090121013301230321032302bcfeee0225fe7be50239 +d288fd5f88d5050efd1903aefa2b017ffe810000000100ba00000464047b0013003640190309 +00030e0106870e11b80cbc0a010208004e0d09080b461410fcec32f4ec31002f3ce4f4c4ec11 +12173930b46015cf1502015d0111231134262322061511231133153e013332160464b87c7c95 +acb9b942b375c1c602a4fd5c029e9f9ebea4fd870460ae6564ef00010071ffe303e7047b0019 +003f401b00860188040e860d880ab91104b917b8118c1a07120d004814451a10fce432ec3100 +10e4f4ec10fef4ee10f5ee30400b0f1b101b801b901ba01b05015d01152e0123220615141633 +323637150e0123220011100021321603e74e9d50b3c6c6b3509d4e4da55dfdfed6012d010655 +a20435ac2b2be3cdcde32b2baa2424013e010e0112013a230000000100ba0000046406140013 +00344019030900030e0106870e11b80c970a010208004e0d09080b461410fcec32f4ec31002f +3cecf4c4ec1112173930b2601501015d0111231134262322061511231133113e013332160464 +b87c7c95acb9b942b375c1c602a4fd5c029e9f9ebea4fd870614fd9e6564ef0000020071ffe3 +0475047b000b0017004a401306b91200b90cb8128c1809120f51031215451810fcecf4ec3100 +10e4f4ec10ee3040233f197b007b067f077f087f097f0a7f0b7b0c7f0d7f0e7f0f7f107f117b +12a019f01911015d012206151416333236353426273200111000232200111000027394acab95 +93acac93f00112feeef0f1feef011103dfe7c9c9e7e8c8c7e99cfec8feecfeedfec701390113 +011401380000000100ba0000034a047b001100304014060b0700110b03870eb809bc070a0608 +0008461210fcc4ec3231002fe4f4ecc4d4cc11123930b450139f1302015d012e012322061511 +231133153e0133321617034a1f492c9ca7b9b93aba85132e1c03b41211cbbefdb20460ae6663 +05050000000300c9000004ec05d5000800110020004340231900950a0995128101950aad1f11 +0b080213191f05000e1c1605191c2e09001c12042110fcec32fcecd4ec111739393931002fec +ecf4ec10ee3930b20f2201015d01112132363534262301112132363534262325213216151406 +071e01151404232101930144a39d9da3febc012b94919194fe0b0204e7fa807c95a5fef0fbfd +e802c9fddd878b8c850266fe3e6f727170a6c0b189a21420cb98c8da00010073ffe3052705f0 +00190036401a0da10eae0a951101a100ae04951791118c1a07190d003014101a10fcec32ec31 +0010e4f4ecf4ec10eef6ee30b40f1b1f1b02015d01152e0123200011100021323637150e0123 +2000111000213216052766e782ff00fef00110010082e7666aed84feadfe7a0186015386ed05 +62d55f5efec7fed8fed9fec75e5fd34848019f01670168019f470000000100ba0000071d047b +0022005a4026061209180f00061d07150c871d2003b81bbc19100700110f0808065011080f50 +1c18081a462310fcec32fcfcfcec11123931002f3c3ce4f43cc4ec3211121739304013302450 +2470249024a024a024bf24df24ff2409015d013e013332161511231134262322061511231134 +262322061511231133153e01333216042945c082afbeb972758fa6b972778da6b9b93fb0797a +ab03897c76f5e2fd5c029ea19cbea4fd87029ea29bbfa3fd870460ae67627c000000000200c1 +00000179061400030007002b400e06be04b100bc020501080400460810fc3cec3231002fe4fc +ec30400b1009400950096009700905015d1333112311331523c1b8b8b8b80460fba00614e900 +00010037000002f2059e0013003840190e05080f03a9001101bc08870a0b0809020400081012 +0e461410fc3cc4fc3cc432393931002fecf43cc4ec3211393930b2af1501015d011121152111 +14163b01152322263511233533110177017bfe854b73bdbdd5a28787059efec28ffda0894e9a +9fd202608f013e0000000001fffa000004e905d50007004a400e0602950081040140031c0040 +050810d4e4fce431002ff4ec3230014bb00a5458bd00080040000100080008ffc03811373859 +401300091f00100110021f071009400970099f09095d03211521112311210604effdeecbfdee +05d5aafad5052b000001003b000004790460000b014340460511060706041103040707060411 +050401020103110202010b110001000a11090a0101000a110b0a0708070911080807420a0704 +01040800bf05020a0704010408000208060c10d44bb00a544bb00f545b4bb010545b4bb01154 +5b58b90006004038594bb0145458b90006ffc03859c4d4c411173931002f3cec321739304b53 +58071005ed071008ed071008ed071005ed071005ed071008ed071008ed071005ed5922014098 +0a04040a1a04150a260a3d04310a55045707580a660a76017a047607740a8d04820a99049f04 +9707920a900aa601a904af04a507a30aa00a1c0a03040505090a0b1a03150515091a0b290326 +0525092a0b200d3a013903370534073609390b300d4903460545094a0b400d59005601590259 +0357055606590756085609590b500d6f0d78017f0d9b019407ab01a407b00dcf0ddf0dff0d2f +5d005d09022309012309013309010464fe6b01aad9febafebad901b3fe72d9012901290460fd +dffdc101b8fe48024a0216fe71018f00000100c90000048b05d5000b002e4015069504029500 +81089504ad0a05010907031c00040c10fcec32d4c4c431002fececf4ec10ee30b21f0d01015d +132115211121152111211521c903b0fd1a02c7fd3902f8fc3e05d5aafe46aafde3aa00000001 +006fffe303c7047b002700e7403c0d0c020e0b531f1e080902070a531f1f1e420a0b1e1f0415 +00860189041486158918b91104b925b8118c281e0a0b1f1b0700521b080e07081422452810fc +c4ecd4ece4111239393939310010e4f4ec10fef5ee10f5ee121739304b535807100eed111739 +070eed1117395922b2002701015d406d1c0a1c0b1c0c2e092c0a2c0b2c0c3b093b0a3b0b3b0c +0b200020012402280a280b2a132f142f152a16281e281f292029212427860a860b860c860d12 +000000010202060a060b030c030d030e030f03100319031a031b031c041d09272f293f295f29 +7f2980299029a029f029185d005d7101152e012322061514161f011e0115140623222627351e +013332363534262f012e01353436333216038b4ea85a898962943fc4a5f7d85ac36c66c66182 +8c65ab40ab98e0ce66b4043fae282854544049210e2a99899cb62323be353559514b50250f24 +95829eac1e0000000002007bffe3042d047b000a002500bc4027191f0b17090e00a91706b90e +1120861fba1cb923b8118c170c001703180d09080b1f030814452610fcecccd4ec3232113939 +31002fc4e4f4fcf4ec10c6ee10ee11391139123930406e301d301e301f3020302130223f2740 +1d401e401f402040214022501d501e501f50205021502250277027851d871e871f8720872185 +229027a027f0271e301e301f30203021401e401f40204021501e501f50205021601e601f6020 +6021701e701f70207021801e801f80208021185d015d0122061514163332363d01371123350e +01232226353436332135342623220607353e0133321602bedfac816f99b9b8b83fbc88accbfd +fb0102a79760b65465be5af3f00233667b6273d9b4294cfd81aa6661c1a2bdc0127f8b2e2eaa +2727fc00000200bafe5604a4047b0010001c003e401b1ab9000e14b90508b80e8c01bd03bc1d +11120b471704000802461d10fcec3232f4ec310010e4e4e4f4c4ec10c4ee304009601e801ea0 +1ee01e04015d2511231133153e013332001110022322260134262322061514163332360173b9 +b93ab17bcc00ffffcc7bb10238a79292a7a79292a7a8fdae060aaa6461febcfef8fef8febc61 +01ebcbe7e7cbcbe7e700000000020071ffe3047f047b0014001b007040240015010986088805 +15a90105b90c01bb18b912b80c8c1c1b1502081508004b02120f451c10fcecf4ecc411123931 +0010e4f4ece410ee10ee10f4ee1112393040293f1d701da01dd01df01d053f003f013f023f15 +3f1b052c072f082f092c0a6f006f016f026f156f1b095d71015d0115211e0133323637150e01 +232000111000333200072e0123220607047ffcb20ccdb76ac76263d06bfef4fec70129fce201 +07b802a5889ab90e025e5abec73434ae2a2c0138010a01130143feddc497b4ae9e0000010087 +ffe304a205f00027007e403c0d0c020e0b021e1f1e080902070a021f1f1e420a0b1e1f041501 +0015a11494189511049500942591118c281e0a0b1f1b0700221b190e2d071914222810dcc4ec +fcece4111239393939310010e4f4e4ec10eef6ee10c6111739304b535807100eed1117390710 +0eed1117395922b20f2901015db61f292f294f29035d01152e012322061514161f011e011514 +0421222627351e013332363534262f012e01353424333216044873cc5fa5b377a67ae2d7fedd +fee76aef807bec72adbc879a7be2ca0117f569da05a4c53736807663651f192bd9b6d9e0302f +d04546887e6e7c1f182dc0abc6e42600000100c90000019305d50003002eb700af02011c0004 +0410fc4bb0105458b9000000403859ec31002fec3001400d30054005500560058f059f05065d +13331123c9caca05d5fa2b0000010073ffe3058b05f0001d0039402000051b0195031b950812 +a111ae15950e91088c1e02001c1134043318190b101e10fcecfce4fcc4310010e4f4ecf4ec10 +fed4ee11393930251121352111060423200011100021320417152e0123200011100021323604 +c3feb6021275fee6a0fea2fe75018b015e9201076f70fc8bfeeefeed011301126ba8d50191a6 +fd7f53550199016d016e01994846d75f60fecefed1fed2fece25000000020081ffe305fe05f0 +0009003001cd40960d010e0c861112110b860a0b121211098600091516150701060886161615 +02010301861d1e1d008609001e1e1d201f02211e110a130a17161503181411130a0708020609 +1113130a0201020300110a130a171602181511130a141113130a42120b090306000a1e032815 +0e0628270695182b9527942491188c0e130a2e0b0e09002e1215270e1e032e1227210e110f13 +2103121b103110fcecc4d4d4ec10c6ee1139111239391139391139113931002fc6e4f6e6ee10 +ee10c6111239111739111739304b5358071005ed0705ed111739071005ed111739071005ed11 +17390705ed111739071005ed111739071008ed07100eed11173907100eed111739071008ed07 +1008ed07100eed1117395922b20f3201015d40b2070b052209291c001c011f02170b2a002a01 +26123a003412440b5e0059015a0a55125a1a5a1f5930671e7b009b009a0199029708950b9315 +95169522992d1f090b090c08110c270c2818021b09190b190c19111c141c15161d1f32270027 +01290923122a132a1428152f323b09341239133f324a094c144b1546194f3256015a09590c55 +1259135c1f5f326a0c691160327501790c7a1193009301970295059c079c089f089a099b0b9a +0c9032a032b032395d005d010e011514163332363709013e0137330602070123270e01232200 +353436372e0135343633321617152e0123220615141601f25b55d4a05fa649fe7b01fc3b4206 +ba0c685d0117fc8f68e483f1fece86863032deb853a555579e4469833b032351a15892c23f40 +028ffdf859cb7284fefe7efee39359570113d780e1633f7d3ca2c52424b62f316f5833670002 +00c90000055405d50013001c00b14035090807030a0611030403051104040342060400150304 +15950914950d810b040506031109001c160e050a191904113f140a1c0c041d10fcec32fcc4ec +1117391139393931002f3cf4ecd4ec123912391239304b5358071005ed071005ed1117395922 +b2401e01015d40427a1301050005010502060307041500150114021603170425002501250226 +032706260726082609201e3601360246014602680575047505771388068807980698071f5d00 +5d011e01171323032e012b01112311212016151406011133323635342623038d417b3ecdd9bf +4a8b78dcca01c80100fc83fd89fe9295959202bc16907efe68017f9662fd8905d5d6d88dba02 +4ffdee87838385000001006401df027f028300030011b6009c020401000410dccc310010d4ec +301321152164021bfde50283a40000020073ffe305d905f0000b00170023401306951200950c +91128c1809190f33031915101810fcecfcec310010e4f4ec10ee300122001110003332001110 +002720001110002120001110000327dcfefd0103dcdc0101feffdc013a0178fe88fec6fec5fe +870179054cfeb8fee5fee6feb80148011a011b0148a4fe5bfe9efe9ffe5b01a40162016201a5 +0000000200c90000048d05d500080013003a40180195100095098112100a0802040005190d3f +11001c09041410fcec32fcec11173931002ff4ecd4ec30400b0f151f153f155f15af1505015d +011133323635342623252132041514042b0111230193fe8d9a9a8dfe3801c8fb0101fefffbfe +ca052ffdcf92878692a6e3dbdde2fda80001ffecfe1d0414feac0003000fb500a90100020410 +c4c43100d4ec30011521350414fbd8feac8f8f000000000100100000056805d5000600b74027 +04110506050311020306060503110403000100021101010042030401af000604030200050501 +0710d4c4173931002fec3239304b5358071005ed071008ed071008ed071005ed5922b2500801 +015d406200032a03470447055a037d038303070600070208040906150114021a041a052a0026 +01260229042905250620083800330133023c043c053706480045014502490449054706590056 +066602690469057a0076017602790479057506800898009706295d005d21013309013301024a +fdc6d301d901dad2fdc705d5fb1704e9fa2b000100c90000061f05d5000c00bf403403110708 +070211010208080702110302090a0901110a0a09420a070203080300af080b05090803020105 +0a061c043e0a1c00040d10fcecfcec11173931002f3cc4ec32111739304b5358071005ed0710 +08ed071008ed071005ed5922b2700e01015d405603070f080f09020a15021407130a26022607 +2007260a200a3407350a69027c027b07790a80028207820a90021604010b0313011b0323012c +032708280934013c035608590965086a097608790981018d0395019b03145d005d1321090121 +1123110123011123c9012d017d017f012dc5fe7fcbfe7fc405d5fc0803f8fa2b051ffc000400 +fae10000013500b800cb00cb00c100aa009c01a600b800660000007100cb00a002b200850075 +00b800c301cb0189022d00cb00a600f000d300aa008700cb03aa0400014a003300cb000000d9 +050200f4015400b4009c01390114013907060400044e04b4045204b804e704cd0037047304cd +04600473013303a2055605a60556053903c5021200c9001f00b801df007300ba03e9033303bc +0444040e00df03cd03aa00e503aa0404000000cb008f00a4007b00b80014016f007f027b0252 +008f00c705cd009a009a006f00cb00cd019e01d300f000ba018300d5009803040248009e01d5 +00c100cb00f600830354027f00000333026600d300c700a400cd008f009a0073040005d5010a +00fe022b00a400b4009c00000062009c0000001d032d05d505d505d505f0007f007b005400a4 +06b80614072301d300b800cb00a601c301ec069300a000d3035c037103db0185042304a80448 +008f0139011401390360008f05d5019a0614072306660179046004600460047b009c00000277 +046001aa00e904600762007b00c5007f027b000000b4025205cd006600bc00660077061000cd +013b01850389008f007b0000001d00cd074a042f009c009c0000077d006f0000006f0335006a +006f007b00ae00b2002d0396008f027b00f600830354063705f6008f009c04e10266008f018d +02f600cd03440029006604ee00730000140000960000b707060504030201002c2010b0022549 +64b040515820c859212d2cb002254964b040515820c859212d2c20100720b00050b00d7920b8 +ffff5058041b0559b0051cb0032508b0042523e120b00050b00d7920b8ffff5058041b0559b0 +051cb0032508e12d2c4b505820b0fd454459212d2cb002254560442d2c4b5358b00225b00225 +45445921212d2c45442d2cb00225b0022549b00525b005254960b0206368208a108a233a8a10 +653a2d00000100000002570afb6146a45f0f3cf5001f080000000000cef5cb7600000000cef5 +cb76f7d6fcae0d72095500000008000000010000000000010000076dfe1d00000de2f7d6fa51 +0d7200010000000000000000000000000000001f04cd006605790010051200ba046600710512 +00ba04e50071034a00ba028b0000057d00c90596007307cb00ba023900c10323003704e3fffa +04bc003b050e00c9042b006f04e7007b051400ba04ec007105140087025c00c906330073063d +0081058f00c902e30064064c007304d300c90400ffec0579001006e700c90000000000000044 +00000140000001b800000250000002c80000036c000003dc000003dc0000048c000005240000 +05e800000638000006b400000724000008a80000090800000a6800000b9400000c3400000d08 +00000e0000000e4800000ef0000011580000126c0000129800001324000013a4000013d00000 +14b0000015ac00010000001f0354002b0068000c000200100099000800000415021600080004 +b8028040fffbfe03fa1403f92503f83203f79603f60e03f5fe03f4fe03f32503f20e03f19603 +f02503ef8a4105effe03ee9603ed9603ecfa03ebfa03eafe03e93a03e84203e7fe03e63203e5 +e45305e59603e48a4105e45303e3e22f05e3fa03e22f03e1fe03e0fe03df3203de1403dd9603 +dcfe03db1203da7d03d9bb03d8fe03d68a4105d67d03d5d44705d57d03d44703d3d21b05d3fe +03d21b03d1fe03d0fe03cffe03cefe03cd9603cccb1e05ccfe03cb1e03ca3203c9fe03c68511 +05c61c03c51603c4fe03c3fe03c2fe03c1fe03c0fe03bffe03befe03bdfe03bcfe03bbfe03ba +1103b9862505b9fe03b8b7bb05b8fe03b7b65d05b7bb03b78004b6b52505b65d40ff03b64004 +b52503b4fe03b39603b2fe03b1fe03b0fe03affe03ae6403ad0e03acab2505ac6403abaa1205 +ab2503aa1203a98a4105a9fa03a8fe03a7fe03a6fe03a51203a4fe03a3a20e05a33203a20e03 +a16403a08a4105a096039ffe039e9d0c059efe039d0c039c9b19059c64039b9a10059b19039a +1003990a0398fe0397960d0597fe03960d03958a410595960394930e05942803930e0392fa03 +9190bb0591fe03908f5d0590bb039080048f8e25058f5d038f40048e25038dfe038c8b2e058c +fe038b2e038a8625058a410389880b05891403880b0387862505876403868511058625038511 +0384fe038382110583fe0382110381fe0380fe037ffe0340ff7e7d7d057efe037d7d037c6403 +7b5415057b25037afe0379fe03780e03770c03760a0375fe0374fa0373fa0372fa0371fa0370 +fe036ffe036efe036c21036bfe036a1142056a530369fe03687d036711420566fe0365fe0364 +fe0363fe0362fe03613a0360fa035e0c035dfe035bfe035afe0359580a0559fa03580a035716 +190557320356fe035554150555420354150353011005531803521403514a130551fe03500b03 +4ffe034e4d10054efe034d10034cfe034b4a13054bfe034a4910054a1303491d0d0549100348 +0d0347fe0346960345960344fe0343022d0543fa0342bb03414b0340fe033ffe033e3d12053e +14033d3c0f053d12033c3b0d053c40ff0f033b0d033afe0339fe033837140538fa0337361005 +37140336350b05361003350b03341e03330d0332310b0532fe03310b03302f0b05300d032f0b +032e2d09052e10032d09032c32032b2a25052b64032a2912052a250329120328272505284103 +27250326250b05260f03250b0324fe0323fe03220f03210110052112032064031ffa031e1d0d +051e64031d0d031c1142051cfe031bfa031a42031911420519fe031864031716190517fe0316 +01100516190315fe0314fe0313fe031211420512fe0311022d05114203107d030f64030efe03 +0d0c16050dfe030c0110050c16030bfe030a100309fe0308022d0508fe030714030664030401 +100504fe03401503022d0503fe0302011005022d0301100300fe0301b80164858d012b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d00> +] def +/f-0-0 currentdict end definefont pop +%%EndResource +%%BeginResource: font DejaVuSans-Bold +11 dict begin +/FontType 42 def +/FontName /DejaVuSans-Bold def +/PaintType 0 def +/FontMatrix [ 1 0 0 1 0 0 ] def +/FontBBox [ 0 0 0 0 ] def +/Encoding 256 array def +0 1 255 { Encoding exch /.notdef put } for +Encoding 79 /O put +Encoding 82 /R put +/CharStrings 3 dict dup begin +/.notdef 0 def +/O 1 def +/R 2 def +end readonly def +/sfnts [ +<000100000009008000030010637674203eb9310800000268000002546670676d5b026bf00000 +04bc000000ac676c7966581f41560000009c000001cc68656164045e38fb0000056800000036 +686865610eaf0774000005a000000024686d747811c30188000005c40000000c6c6f63610000 +02f8000005d0000000106d6178700648062d000005e000000020707265707c61a2e700000600 +000007a700020066fe96046605a400030007001fbc00040126000000060126b6010805890204 +002fc4d4ec310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f27206 +2900000000020066ffe3066605f0000b00170032401306ae1200ae0c9c129818092d0f37032d +152b1810fcecfcec310010e4f4ec10ee30400b0019171310192f193f1905015d012202151412 +3332123534020320001110002120001110000366b0c2c2b0b1c2c2b101680198fe68fe98fe99 +fe67019904d9fefcecebfefc0104ebec01040117fe64fe95fe96fe64019c016a016b019c0000 +000200bc0000060005d50008001c008740321b1a021c191d161716181d1717162519160a1300 +ae0906ae0c8d170a16131803101c190600040d07031617100907160b031d10fcec32d4c4ec11 +39173911173931002f3cf4ecd4ec39123939304b5358071005ed071005ed1117395922b2181c +01015d401f1b181b191a1a1b1b1a1c361536164515451656155616501e65156516601e0f5d01 +32363534262b0119022111212004151406071e01171321032e012302df79696979a2fe7f024c +012701138f904f7d40d1fe66b637715e033f5a676658fe81fef6fdcb05d5c6d694be2d127f81 +fe5801737052000001660133016600bc00e90000013d00a200fa031f00020002006601660002 +000200ac015400ec00bc006201660181048501540166016d04a400020166007f04cd00000002 +0133006200710000002504a401bc00ba00e500660181018d0548055a0166016d000000000002 +000200f605c301f0053902390058046d043d04b2048104b2016601750466048100b004660439 +02d1049c047b04cf047b005801330166014c0166014c000200ac009a014a0123009a029a0144 +0119014402cd00c100000166013f019a013b05cb05cb00d500d5015000ac00ac0077020a01c7 +01f2012f015801b2012300f600f6011f012f0135023501ee01e70133009800d10358050a009a +008f0112009800bc00cd00e500e500f2007304000166008f05d5022b05d500c300e100d700e5 +0000006a01020000001d032d05d505d505f000a8006a00ec00e1010205d506140721046602f8 +00ec018302a602f80123010201020112011f031f005e03cd046004c7048900ec01bc00ba0102 +0333031f03420333035c0112011f05d5019a009a00e106660179046004600460047b000000ec +02c302b802cd00be00dd00d50000006a025c027b029a00dd01ae01ba01120000008501ae0460 +0762041b009a069a045800ee009a029a00d102cd019a015005cb05cb008b008b063100f60406 +00f0034c016004a800c10000002505c101000121074a06120096014a078300a800000337007b +0014000000c9010005c105c105c105c101000108061d00960427039e00ec0102027d01330098 +00d10358017900cd02390362009c009c009c009301b8009300b80073000014000326b7070605 +04030201002c2010b002254964b040515820c859212d2cb002254964b040515820c859212d2c +20100720b00050b00d7920b8ffff5058041b0559b0051cb0032508b0042523e120b00050b00d +7920b8ffff5058041b0559b0051cb0032508e12d2c4b505820b80128454459212d2cb0022545 +60442d2c4b5358b00225b0022545445921212d2c45442d2cb00225b0022549b00525b0052549 +60b0206368208a108a233a8a10653a2d000100000002570aca280dd25f0f3cf5001f08000000 +0000cef5cb7000000000cef5cb70f772fcae0fcd096500010008000000010000000000010000 +076dfe1d00001021f772f9320fcd00010000000000000000000000000000000304cd006606cd +0066062900bc000000000000004c000000e0000001cc000100000003034e002b0078000c0002 +001000400008000005ed02210008000441840280012600fe000301250011000301240121003a +0005012400fa000301230016000301220121003a0005012200fe00030121003a0003012000fa +0003011f00bb0003011e00640003011d00fe0003011c00190003011b001e0003011a00fe0003 +011900fe0003011800fe0003011700fe0003011600fe000301150114000e0005011500fe0003 +0114000e0003011300fe0003011200fe0003010f010e007d0005010f00fe0003010e007d0003 +010d010c008c0005010d00fe0003010d00c00004010c010b00590005010c008c0003010c0080 +0004010b010a00260005010b00590003010b00400004010a00260003010900fe0003010800fe +00030107000c00030107008000040106b2972e054113010600fa0003010500fa0003010400fe +0003010300190003010200fa0003010100fa0003010040ff7d03ff3e03fefe03fcfb2c05fcfe +03fb2c03fafe03f9f84705f97d03f84703f7fa03f6fe03f5fe03f4fe03f3bb03f2fe03f1fe03 +f0fe03ef1e03eefe03edec0a05edfe03ec0a03ec4004ebea0a05eb3203ea0a03e9fa03e89116 +05e8fe03e7fa03e6fa03e5911605e5fe03e4fe03e3fe03e2fe03e1fe03e0fe03dffe03defa03 +dddc1805dd6403dc1803dba01e05db6403dad92505dafa03d92503d8d12505d8fa03d7d61405 +d71603d6d51005d61403d51003d4d30b05d42003d30b03d2d12505d2fa03d1911605d12503d0 +940c05d02303cfce1405cf2603cecd1205ce1403cd1203cc911605cc1d03cb1403cac9bb05ca +fe03c9c85d05c9bb03c98004c840ffc72505c85d03c84004c72503c6fe03c56403c4901005c4 +fe03c31c03c2fe03c1fe03c0bf3a05c0fa03bfad1b05bf3a03bebd1a05be3203bdbc1105bd1a +03bcbb0f05bc1103bbba0c05bb0f03ba0c03b9911605b9fe03b8fe03b71503b61203b5fe03b4 +fe03b3fe03b21703b11903b01603afad1b05affa03aead1b05aefa03ad911605ad1b03ac9116 +05ac7d03abfe03aa2603a9fe03a8fe03a7fe03a6fe03a50a03a4fe03a3a20e05a3fe03a20e03 +a24004a1a01e05a1fa03a0911605a01e039f9116059ffa039e940c059e1c039dfe039c9bbb05 +9cfe039b9a5d059bbb039b80049a8f25059a5d039a400499fe0398972e0598fe03972e039691 +1605961e40ff0395940c05952003940c0393911605934b039291160592fe0391901005911603 +9010038f25038efe038dfe038cfe038bfe038afe0389fe038887250588fe0387250386fe0385 +fe0384320383960382fe0381fe038019037f0a037efe037dfe037cfe037bfa037afa0379fe03 +7776a60577fe0376a60375741b0575fa03741b0373fa03727d0371fe03706f2c056f2c036efa +036dfa036cfa036bfe036afe0369fe0368630c0568320367fe0366320365640a0565fe03640a +0364400463620a05630c03620a0361601505619603600111056015035f0a035efe035dfe035c +0111055cfe035b5a1b055bfe035a0111055a1b0359fe0358fa0357fe035601110540ff56fe03 +55fe03541e035314035251190552fa0351011105511903504f190550fa034f4e11054f19034e +11034d1e034c4b14054c15034b4a11054b14034a490e054a1103490e0348fa03474614054715 +0346140345fa0344430e05440f03430e034241250542fa0341011105412503403f0f0540fe03 +3f3e0e053f0f033e0e033d3c0d053d16033c0d033b64033afe0339140338fe0337130336351a +0536250335341405351a0335c004340a0d0534140334800433320c05331403334004320c0331 +30a60531fe033001110530a6032f0c032e13032d2c3a052dfa032c1525052c3a032b64032a64 +0329fe0328150327171105271e03262003251e0324231105402b241e0323110322000d0522fa +03210f032140042014031f0a031e1e031d1c19051d25031c0f13051c19031cb801004091041b +0d031a194b051a7d0319011105194b0318fe031711031615250516fa03150111051525031464 +0313110312fe031101110511fe031064030f0e10050f13030fc0040e10030e80040d0111050d +fa030c32030b0a0d050b16030b80040a0d030a400409fe0308fe0307fe0306050a0506fe0305 +0a0305400404fa030364030201110502fe0301000d05011103000d0301b80164858d012b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d0000> +] def +/f-1-0 currentdict end definefont pop +%%EndResource +%%EndSetup +%%Page: 1 1 +%%BeginPageSetup +%%PageBoundingBox: 12 -1 552 434 +%%EndPageSetup +q 12 -1 540 435 rectclip q +0 g +BT +17.6 0 0 17.6 130.590635 355.418671 Tm +/f-0-0 1 Tf +[(Anchor)-3( A)]TJ +11.78352 -0.0324679 Td +[(Anchor)-3( B)]TJ +ET +2.4 w +1 J +1 j +[] 0.0 d +4 M q 1 0 0 -1 0 433.896301 cm +122.449 55.629 96 32.574 re S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +170.449 87.059 m 170.449 167.059 l S Q +170.449 274.838 m 167.25 278.037 l 170.449 266.838 l 173.648 278.037 l +h +170.449 274.838 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-159.059 170.449 m -155.859 167.25 l -167.059 170.449 l -155.859 173.648 + l h +-159.059 170.449 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +329.305 55.629 96 33.715 re S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +377.305 88.203 m 377.305 168.203 l S Q +377.305 273.693 m 374.105 276.892 l 377.305 265.693 l 380.504 276.892 l + h +377.305 273.693 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-160.203 377.305 m -157.004 374.105 l -168.203 377.305 l -157.004 380.504 + l h +-160.203 377.305 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +170.164 216.844 m 170.449 256.203 l 265.957 256.105 l 265.387 297.246 l + S Q +265.496 144.65 m 262.344 147.892 l 265.387 136.65 l 268.742 147.803 l h +265.496 144.65 m f* +0.799923 w +q 0.0138888 1 1 -0.0138888 0 433.896301 cm +-285.504 269.461 m -282.306 266.265 l -293.504 269.463 l -282.307 272.663 + l h +-285.504 269.461 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +137.555 351.727 96 80 re S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +89.879 15.629 m 138.449 52.773 l S Q +132.094 385.982 m 127.609 385.385 l 138.449 381.123 l 131.496 390.467 l + h +132.094 385.982 m f* +0.635486 w +q -1 0.764706 0.764706 1 0 433.896301 cm +-106.472 33.506 m -103.931 30.965 l -112.827 33.506 l -103.931 36.047 l + h +-106.472 33.506 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +201.879 8.773 m 194.449 53.918 l S Q +195.746 387.873 m 193.109 391.553 l 194.449 379.978 l 199.426 390.513 l + h +195.746 387.873 m f* +0.789384 w +q 0.164557 1 1 -0.164557 0 433.896301 cm +-13.448 197.959 m -10.288 194.802 l -21.342 197.961 l -10.287 201.119 l + h +-13.448 197.959 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +297.879 15.629 m 346.449 52.773 l S Q +340.094 385.982 m 335.609 385.385 l 346.449 381.123 l 339.496 390.467 l + h +340.094 385.982 m f* +0.635486 w +q -1 0.764706 0.764706 1 0 433.896301 cm +-237.721 133.872 m -235.179 131.331 l -244.076 133.873 l -235.18 136.414 + l h +-237.721 133.872 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +457.305 16.203 m 409.305 54.488 l S Q +415.559 384.396 m 416.066 388.892 l 409.305 379.408 l 420.059 383.892 l + h +415.559 384.396 m f* +0.625421 w +q 1 0.797619 0.797619 -1 0 433.896301 cm +229.848 232.831 m 232.35 230.331 l 223.594 232.831 l 232.353 235.333 l +h +229.848 232.831 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +418.449 0.203 m 387.02 53.918 l S Q +391.059 386.885 m 389.914 391.263 l 387.02 379.978 l 395.438 388.029 l +h +391.059 386.885 m f* +0.69049 w +q 0.585107 1 1 -0.585107 0 433.896301 cm +135.434 311.816 m 138.197 309.054 l 128.528 311.817 l 138.195 314.579 l + h +135.434 311.816 m S Q +BT +17.6 0 0 17.6 150.69448 46.484589 Tm +/f-0-0 1 Tf +[(Commit)]TJ +0.862305 -1.25 Td +(Tx A)Tj +ET +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +27.348 174.184 96 32.574 re S Q +BT +17.6 0 0 17.6 34.346965 238.578938 Tm +/f-0-0 1 Tf +[(Esca)-3(pe A)]TJ +ET +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +250.605 310.918 m 178.293 310.348 l 178.293 350.348 l S Q +178.293 91.549 m 175.094 94.752 l 178.293 83.549 l 181.492 94.752 l h +178.293 91.549 m f* +0.8 w +q 0.0000002 1 1 -0.0000002 0 433.896301 cm +-342.348 178.293 m -339.144 175.094 l -350.348 178.293 l -339.144 181.492 + l h +-342.348 178.293 m S Q +BT +12 0 0 12 142.310385 332.286029 Tm +/f-0-0 1 Tf +(SIGA & SIGB)Tj +/f-1-0 1 Tf +2.288086 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-5.415039 -1.25 Td +[(SIGA & SIGB & SEC)-3(RET)90(-)21(A)]TJ +ET +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +427.684 171.355 96 32.57 re S Q +BT +17.6 0 0 17.6 434.682052 241.407364 Tm +/f-0-0 1 Tf +[(Esca)-3(pe B)]TJ +ET +q 1 0 0 -1 0 433.896301 cm +315.172 352.695 96 80 re S Q +BT +17.6 0 0 17.6 328.310715 45.514032 Tm +/f-0-0 1 Tf +[(Commit)]TJ +0.861328 -1.25 Td +(Tx B)Tj +ET +q 1 0 0 -1 0 433.896301 cm +297.879 319.629 m 297.879 332.887 287.133 343.629 273.879 343.629 c 260.621 + 343.629 249.879 332.887 249.879 319.629 c 249.879 306.375 260.621 295.629 + 273.879 295.629 c 287.133 295.629 297.879 306.375 297.879 319.629 c h +297.879 319.629 m S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +273.879 295.629 m 273.879 343.629 l S Q +q 1 0 0 -1 0 433.896301 cm +249.879 319.629 m 297.879 319.629 l S Q +q 1 0 0 -1 0 433.896301 cm +250.605 326.918 m 194.293 326.918 l 194.293 350.348 l S Q +194.293 91.549 m 191.094 94.752 l 194.293 83.549 l 197.492 94.752 l h +194.293 91.549 m f* +0.8 w +q 0.000000341463 1 1 -0.000000341463 0 433.896301 cm +-342.348 194.293 m -339.144 191.094 l -350.348 194.293 l -339.144 197.492 + l h +-342.348 194.293 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +296.574 310.918 m 368.883 310.348 l 368.887 350.348 l S Q +368.887 91.549 m 365.684 94.752 l 368.887 83.549 l 372.086 94.752 l h +368.887 91.549 m f* +0.8 w +q -0.0000002 1 1 0.0000002 0 433.896301 cm +-342.348 368.887 m -339.145 365.684 l -350.348 368.887 l -339.145 372.086 + l h +-342.348 368.887 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +296.574 326.918 m 352.883 326.918 l 352.887 350.348 l S Q +352.887 91.549 m 349.684 94.752 l 352.887 83.549 l 356.086 94.752 l h +352.887 91.549 m f* +0.8 w +q -0.000000341463 1 1 0.000000341463 0 433.896301 cm +-342.348 352.887 m -339.145 349.683 l -350.348 352.887 l -339.145 356.086 + l h +-342.348 352.887 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +377.742 218.223 m 377.789 256.203 l 281.711 255.531 l 281.711 297.816 l + S Q +281.711 144.08 m 278.508 147.279 l 281.711 136.08 l 284.91 147.279 l h +281.711 144.08 m f* +0.8 w +q 0.000000189189 1 1 -0.000000189189 0 433.896301 cm +-289.816 281.711 m -286.617 278.508 l -297.816 281.711 l -286.617 284.91 + l h +-289.816 281.711 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +193.879 191.387 m 193.879 204.641 183.133 215.387 169.879 215.387 c 156.621 + 215.387 145.879 204.641 145.879 191.387 c 145.879 178.133 156.621 167.387 + 169.879 167.387 c 183.133 167.387 193.879 178.133 193.879 191.387 c h +193.879 191.387 m S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +169.879 167.387 m 169.879 215.387 l S Q +q 1 0 0 -1 0 433.896301 cm +145.879 191.387 m 193.879 191.387 l S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +402.199 193.73 m 402.199 206.988 391.453 217.73 378.199 217.73 c 364.945 + 217.73 354.199 206.988 354.199 193.73 c 354.199 180.477 364.945 169.73 +378.199 169.73 c 391.453 169.73 402.199 180.477 402.199 193.73 c h +402.199 193.73 m S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +378.199 169.73 m 378.199 217.73 l S Q +q 1 0 0 -1 0 433.896301 cm +354.199 193.73 m 402.199 193.73 l S Q +BT +12 0 0 12 154.199851 68.649481 Tm +/f-0-0 1 Tf +(SIG A & B)Tj +14.845178 -0.134686 Td +[(SIG A &)-319(B)]TJ +ET +q 1 0 0 -1 0 433.896301 cm +145.879 191.629 m 125.879 191.629 l S Q +133.879 242.267 m 137.078 245.467 l 125.879 242.267 l 137.078 239.064 l + h +133.879 242.267 m f* +0.8 w +q 1 0 0 -1 0 433.896301 cm +133.879 191.629 m 137.078 188.43 l 125.879 191.629 l 137.078 194.832 l +h +133.879 191.629 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +403.652 190.984 m 423.652 190.984 l S Q +415.652 242.912 m 412.453 239.713 l 423.652 242.912 l 412.453 246.115 l + h +415.652 242.912 m f* +0.8 w +q -1 0 0 1 0 433.896301 cm +-415.652 -190.984 m -412.453 -194.184 l -423.652 -190.984 l -412.453 -187.781 + l h +-415.652 -190.984 m S Q +BT +12 0 0 12 46.933432 206.540155 Tm +/f-0-0 1 Tf +[(OP_CSV & SIGA)]TJ +/f-1-0 1 Tf +3.046875 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-3.569336 -1.25 Td +[(RIMA)17(GE-)20(A & SIGB)]TJ +-2.377081 7.679162 Td +[(SIGA & SIGB & SEC)-3(RET)90(-)21(A)]TJ +32.565481 0.100846 Td +[(SIGA & SIGB & SEC)-3(RET)90(-)35(B)]TJ +-4.384188 5.279695 Td +(SIGA & SIGB)Tj +/f-1-0 1 Tf +2.288086 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-5.40918 -1.25 Td +[(SIGA & SIGB & SEC)-3(RET)90(-)35(B)]TJ +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +73.477 207.059 m 73.477 252.309 l S Q +73.477 189.588 m 70.277 192.787 l 73.477 181.588 l 76.68 192.787 l h +73.477 189.588 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-244.309 73.477 m -241.109 70.277 l -252.309 73.477 l -241.109 76.68 l +h +-244.309 73.477 m S Q +BT +12 0 0 12 447.973532 208.481293 Tm +/f-0-0 1 Tf +[(OP_CSV & SIGB)]TJ +/f-1-0 1 Tf +3.047852 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-3.5625 -1.25 Td +[(RIMA)17(GE-)33(B & SIGA)]TJ +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +474.531 205.117 m 474.531 250.367 l S Q +474.531 191.529 m 471.328 194.728 l 474.531 183.529 l 477.73 194.728 l +h +474.531 191.529 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-242.367 474.531 m -239.168 471.328 l -250.367 474.531 l -239.168 477.73 + l h +-242.367 474.531 m S Q +Q Q +showpage +%%Trailer +end restore +%%EOF diff --git a/doc/dual-anchor-diag4.svg b/doc/dual-anchor-diag4.svg new file mode 100644 index 000000000..8ff60a227 --- /dev/null +++ b/doc/dual-anchor-diag4.svg @@ -0,0 +1,823 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + Anchor A + Anchor B + + + + + + + + + + + + CommitTx A + + + Escape A + + + SIGA & SIGBORSIGA & SIGB & SECRET-A + + + Escape B + + + CommitTx B + + + + + + + + + + + + + + + + + + SIG A & B + SIG A & B + + + OP_CSV & SIGAORRIMAGE-A & SIGB + SIGA & SIGB & SECRET-A + SIGA & SIGB & SECRET-B + SIGA & SIGBORSIGA & SIGB & SECRET-B + + OP_CSV & SIGBORRIMAGE-B & SIGA + + + diff --git a/doc/dual-anchor-final.eps b/doc/dual-anchor-final.eps new file mode 100644 index 000000000..f7665f005 --- /dev/null +++ b/doc/dual-anchor-final.eps @@ -0,0 +1,911 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: cairo 1.14.2 (http://cairographics.org) +%%CreationDate: Tue Jul 14 16:07:01 2015 +%%Pages: 1 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%BoundingBox: 7 -1 559 434 +%%EndComments +%%BeginProlog +save +50 dict begin +/q { gsave } bind def +/Q { grestore } bind def +/cm { 6 array astore concat } bind def +/w { setlinewidth } bind def +/J { setlinecap } bind def +/j { setlinejoin } bind def +/M { setmiterlimit } bind def +/d { setdash } bind def +/m { moveto } bind def +/l { lineto } bind def +/c { curveto } bind def +/h { closepath } bind def +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto + 0 exch rlineto 0 rlineto closepath } bind def +/S { stroke } bind def +/f { fill } bind def +/f* { eofill } bind def +/n { newpath } bind def +/W { clip } bind def +/W* { eoclip } bind def +/BT { } bind def +/ET { } bind def +/pdfmark where { pop globaldict /?pdfmark /exec load put } + { globaldict begin /?pdfmark /pop load def /pdfmark + /cleartomark load def end } ifelse +/BDC { mark 3 1 roll /BDC pdfmark } bind def +/EMC { mark /EMC pdfmark } bind def +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def +/Tj { show currentpoint cairo_store_point } bind def +/TJ { + { + dup + type /stringtype eq + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse + } forall + currentpoint cairo_store_point +} bind def +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def +/Tf { pop /cairo_font exch def /cairo_font_matrix where + { pop cairo_selectfont } if } bind def +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point + /cairo_font where { pop cairo_selectfont } if } bind def +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def +/g { setgray } bind def +/rg { setrgbcolor } bind def +/d1 { setcachedevice } bind def +%%EndProlog +%%BeginSetup +%%BeginResource: font DejaVuSans +11 dict begin +/FontType 42 def +/FontName /DejaVuSans def +/PaintType 0 def +/FontMatrix [ 1 0 0 1 0 0 ] def +/FontBBox [ 0 0 0 0 ] def +/Encoding 256 array def +0 1 255 { Encoding exch /.notdef put } for +Encoding 32 /space put +Encoding 38 /ampersand put +Encoding 45 /hyphen put +Encoding 65 /A put +Encoding 66 /B put +Encoding 67 /C put +Encoding 69 /E put +Encoding 70 /F put +Encoding 71 /G put +Encoding 73 /I put +Encoding 77 /M put +Encoding 79 /O put +Encoding 80 /P put +Encoding 82 /R put +Encoding 83 /S put +Encoding 84 /T put +Encoding 86 /V put +Encoding 95 /underscore put +Encoding 97 /a put +Encoding 99 /c put +Encoding 101 /e put +Encoding 104 /h put +Encoding 105 /i put +Encoding 109 /m put +Encoding 110 /n put +Encoding 111 /o put +Encoding 112 /p put +Encoding 114 /r put +Encoding 115 /s put +Encoding 116 /t put +Encoding 120 /x put +/CharStrings 32 dict dup begin +/.notdef 0 def +/A 1 def +/n 2 def +/c 3 def +/h 4 def +/o 5 def +/r 6 def +/space 7 def +/B 8 def +/C 9 def +/m 10 def +/i 11 def +/t 12 def +/T 13 def +/x 14 def +/E 15 def +/s 16 def +/a 17 def +/p 18 def +/e 19 def +/S 20 def +/I 21 def +/G 22 def +/ampersand 23 def +/R 24 def +/hyphen 25 def +/O 26 def +/P 27 def +/underscore 28 def +/V 29 def +/M 30 def +/F 31 def +end readonly def +/sfnts [ +<0001000000090080000300106376742000691d390000169c000001fe6670676d7134766a0000 +189c000000ab676c79662a49843c0000009c0000160068656164026638f70000194800000036 +686865610cb806710000198000000024686d747899f00fc2000019a4000000806c6f63610001 +549000001a24000000846d617870048d067100001aa800000020707265703b07f10000001ac8 +0000056800020066fe96046605a400030007001a400c04fb0006fb0108057f0204002fc4d4ec +310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f272062900020010 +0000056805d50002000a00c2404100110100040504021105050401110a030a0011020003030a +0711050406110505040911030a08110a030a4200030795010381090509080706040302010009 +050a0b10d4c4173931002f3ce4d4ec1239304b5358071005ed0705ed071005ed0705ed071008 +ed071005ed071005ed071008ed5922b2200c01015d40420f010f020f070f080f005800760070 +008c000907010802060309041601190256015802500c67016802780176027c03720477077808 +87018802800c980299039604175d005d090121013301230321032302bcfeee0225fe7be50239 +d288fd5f88d5050efd1903aefa2b017ffe810000000100ba00000464047b0013003640190309 +00030e0106870e11b80cbc0a010208004e0d09080b461410fcec32f4ec31002f3ce4f4c4ec11 +12173930b46015cf1502015d0111231134262322061511231133153e013332160464b87c7c95 +acb9b942b375c1c602a4fd5c029e9f9ebea4fd870460ae6564ef00010071ffe303e7047b0019 +003f401b00860188040e860d880ab91104b917b8118c1a07120d004814451a10fce432ec3100 +10e4f4ec10fef4ee10f5ee30400b0f1b101b801b901ba01b05015d01152e0123220615141633 +323637150e0123220011100021321603e74e9d50b3c6c6b3509d4e4da55dfdfed6012d010655 +a20435ac2b2be3cdcde32b2baa2424013e010e0112013a230000000100ba0000046406140013 +00344019030900030e0106870e11b80c970a010208004e0d09080b461410fcec32f4ec31002f +3cecf4c4ec1112173930b2601501015d0111231134262322061511231133113e013332160464 +b87c7c95acb9b942b375c1c602a4fd5c029e9f9ebea4fd870614fd9e6564ef0000020071ffe3 +0475047b000b0017004a401306b91200b90cb8128c1809120f51031215451810fcecf4ec3100 +10e4f4ec10ee3040233f197b007b067f077f087f097f0a7f0b7b0c7f0d7f0e7f0f7f107f117b +12a019f01911015d012206151416333236353426273200111000232200111000027394acab95 +93acac93f00112feeef0f1feef011103dfe7c9c9e7e8c8c7e99cfec8feecfeedfec701390113 +011401380000000100ba0000034a047b001100304014060b0700110b03870eb809bc070a0608 +0008461210fcc4ec3231002fe4f4ecc4d4cc11123930b450139f1302015d012e012322061511 +231133153e0133321617034a1f492c9ca7b9b93aba85132e1c03b41211cbbefdb20460ae6663 +05050000000300c9000004ec05d5000800110020004340231900950a0995128101950aad1f11 +0b080213191f05000e1c1605191c2e09001c12042110fcec32fcecd4ec111739393931002fec +ecf4ec10ee3930b20f2201015d01112132363534262301112132363534262325213216151406 +071e01151404232101930144a39d9da3febc012b94919194fe0b0204e7fa807c95a5fef0fbfd +e802c9fddd878b8c850266fe3e6f727170a6c0b189a21420cb98c8da00010073ffe3052705f0 +00190036401a0da10eae0a951101a100ae04951791118c1a07190d003014101a10fcec32ec31 +0010e4f4ecf4ec10eef6ee30b40f1b1f1b02015d01152e0123200011100021323637150e0123 +2000111000213216052766e782ff00fef00110010082e7666aed84feadfe7a0186015386ed05 +62d55f5efec7fed8fed9fec75e5fd34848019f01670168019f470000000100ba0000071d047b +0022005a4026061209180f00061d07150c871d2003b81bbc19100700110f0808065011080f50 +1c18081a462310fcec32fcfcfcec11123931002f3c3ce4f43cc4ec3211121739304013302450 +2470249024a024a024bf24df24ff2409015d013e013332161511231134262322061511231134 +262322061511231133153e01333216042945c082afbeb972758fa6b972778da6b9b93fb0797a +ab03897c76f5e2fd5c029ea19cbea4fd87029ea29bbfa3fd870460ae67627c000000000200c1 +00000179061400030007002b400e06be04b100bc020501080400460810fc3cec3231002fe4fc +ec30400b1009400950096009700905015d1333112311331523c1b8b8b8b80460fba00614e900 +00010037000002f2059e0013003840190e05080f03a9001101bc08870a0b0809020400081012 +0e461410fc3cc4fc3cc432393931002fecf43cc4ec3211393930b2af1501015d011121152111 +14163b01152322263511233533110177017bfe854b73bdbdd5a28787059efec28ffda0894e9a +9fd202608f013e0000000001fffa000004e905d50007004a400e0602950081040140031c0040 +050810d4e4fce431002ff4ec3230014bb00a5458bd00080040000100080008ffc03811373859 +401300091f00100110021f071009400970099f09095d03211521112311210604effdeecbfdee +05d5aafad5052b000001003b000004790460000b014340460511060706041103040707060411 +050401020103110202010b110001000a11090a0101000a110b0a0708070911080807420a0704 +01040800bf05020a0704010408000208060c10d44bb00a544bb00f545b4bb010545b4bb01154 +5b58b90006004038594bb0145458b90006ffc03859c4d4c411173931002f3cec321739304b53 +58071005ed071008ed071008ed071005ed071005ed071008ed071008ed071005ed5922014098 +0a04040a1a04150a260a3d04310a55045707580a660a76017a047607740a8d04820a99049f04 +9707920a900aa601a904af04a507a30aa00a1c0a03040505090a0b1a03150515091a0b290326 +0525092a0b200d3a013903370534073609390b300d4903460545094a0b400d59005601590259 +0357055606590756085609590b500d6f0d78017f0d9b019407ab01a407b00dcf0ddf0dff0d2f +5d005d09022309012309013309010464fe6b01aad9febafebad901b3fe72d9012901290460fd +dffdc101b8fe48024a0216fe71018f00000100c90000048b05d5000b002e4015069504029500 +81089504ad0a05010907031c00040c10fcec32d4c4c431002fececf4ec10ee30b21f0d01015d +132115211121152111211521c903b0fd1a02c7fd3902f8fc3e05d5aafe46aafde3aa00000001 +006fffe303c7047b002700e7403c0d0c020e0b531f1e080902070a531f1f1e420a0b1e1f0415 +00860189041486158918b91104b925b8118c281e0a0b1f1b0700521b080e07081422452810fc +c4ecd4ece4111239393939310010e4f4ec10fef5ee10f5ee121739304b535807100eed111739 +070eed1117395922b2002701015d406d1c0a1c0b1c0c2e092c0a2c0b2c0c3b093b0a3b0b3b0c +0b200020012402280a280b2a132f142f152a16281e281f292029212427860a860b860c860d12 +000000010202060a060b030c030d030e030f03100319031a031b031c041d09272f293f295f29 +7f2980299029a029f029185d005d7101152e012322061514161f011e0115140623222627351e +013332363534262f012e01353436333216038b4ea85a898962943fc4a5f7d85ac36c66c66182 +8c65ab40ab98e0ce66b4043fae282854544049210e2a99899cb62323be353559514b50250f24 +95829eac1e0000000002007bffe3042d047b000a002500bc4027191f0b17090e00a91706b90e +1120861fba1cb923b8118c170c001703180d09080b1f030814452610fcecccd4ec3232113939 +31002fc4e4f4fcf4ec10c6ee10ee11391139123930406e301d301e301f3020302130223f2740 +1d401e401f402040214022501d501e501f50205021502250277027851d871e871f8720872185 +229027a027f0271e301e301f30203021401e401f40204021501e501f50205021601e601f6020 +6021701e701f70207021801e801f80208021185d015d0122061514163332363d01371123350e +01232226353436332135342623220607353e0133321602bedfac816f99b9b8b83fbc88accbfd +fb0102a79760b65465be5af3f00233667b6273d9b4294cfd81aa6661c1a2bdc0127f8b2e2eaa +2727fc00000200bafe5604a4047b0010001c003e401b1ab9000e14b90508b80e8c01bd03bc1d +11120b471704000802461d10fcec3232f4ec310010e4e4e4f4c4ec10c4ee304009601e801ea0 +1ee01e04015d2511231133153e013332001110022322260134262322061514163332360173b9 +b93ab17bcc00ffffcc7bb10238a79292a7a79292a7a8fdae060aaa6461febcfef8fef8febc61 +01ebcbe7e7cbcbe7e700000000020071ffe3047f047b0014001b007040240015010986088805 +15a90105b90c01bb18b912b80c8c1c1b1502081508004b02120f451c10fcecf4ecc411123931 +0010e4f4ece410ee10ee10f4ee1112393040293f1d701da01dd01df01d053f003f013f023f15 +3f1b052c072f082f092c0a6f006f016f026f156f1b095d71015d0115211e0133323637150e01 +232000111000333200072e0123220607047ffcb20ccdb76ac76263d06bfef4fec70129fce201 +07b802a5889ab90e025e5abec73434ae2a2c0138010a01130143feddc497b4ae9e0000010087 +ffe304a205f00027007e403c0d0c020e0b021e1f1e080902070a021f1f1e420a0b1e1f041501 +0015a11494189511049500942591118c281e0a0b1f1b0700221b190e2d071914222810dcc4ec +fcece4111239393939310010e4f4e4ec10eef6ee10c6111739304b535807100eed1117390710 +0eed1117395922b20f2901015db61f292f294f29035d01152e012322061514161f011e011514 +0421222627351e013332363534262f012e01353424333216044873cc5fa5b377a67ae2d7fedd +fee76aef807bec72adbc879a7be2ca0117f569da05a4c53736807663651f192bd9b6d9e0302f +d04546887e6e7c1f182dc0abc6e42600000100c90000019305d50003002eb700af02011c0004 +0410fc4bb0105458b9000000403859ec31002fec3001400d30054005500560058f059f05065d +13331123c9caca05d5fa2b0000010073ffe3058b05f0001d0039402000051b0195031b950812 +a111ae15950e91088c1e02001c1134043318190b101e10fcecfce4fcc4310010e4f4ecf4ec10 +fed4ee11393930251121352111060423200011100021320417152e0123200011100021323604 +c3feb6021275fee6a0fea2fe75018b015e9201076f70fc8bfeeefeed011301126ba8d50191a6 +fd7f53550199016d016e01994846d75f60fecefed1fed2fece25000000020081ffe305fe05f0 +0009003001cd40960d010e0c861112110b860a0b121211098600091516150701060886161615 +02010301861d1e1d008609001e1e1d201f02211e110a130a17161503181411130a0708020609 +1113130a0201020300110a130a171602181511130a141113130a42120b090306000a1e032815 +0e0628270695182b9527942491188c0e130a2e0b0e09002e1215270e1e032e1227210e110f13 +2103121b103110fcecc4d4d4ec10c6ee1139111239391139391139113931002fc6e4f6e6ee10 +ee10c6111239111739111739304b5358071005ed0705ed111739071005ed111739071005ed11 +17390705ed111739071005ed111739071008ed07100eed11173907100eed111739071008ed07 +1008ed07100eed1117395922b20f3201015d40b2070b052209291c001c011f02170b2a002a01 +26123a003412440b5e0059015a0a55125a1a5a1f5930671e7b009b009a0199029708950b9315 +95169522992d1f090b090c08110c270c2818021b09190b190c19111c141c15161d1f32270027 +01290923122a132a1428152f323b09341239133f324a094c144b1546194f3256015a09590c55 +1259135c1f5f326a0c691160327501790c7a1193009301970295059c079c089f089a099b0b9a +0c9032a032b032395d005d010e011514163332363709013e0137330602070123270e01232200 +353436372e0135343633321617152e0123220615141601f25b55d4a05fa649fe7b01fc3b4206 +ba0c685d0117fc8f68e483f1fece86863032deb853a555579e4469833b032351a15892c23f40 +028ffdf859cb7284fefe7efee39359570113d780e1633f7d3ca2c52424b62f316f5833670002 +00c90000055405d50013001c00b14035090807030a0611030403051104040342060400150304 +15950914950d810b040506031109001c160e050a191904113f140a1c0c041d10fcec32fcc4ec +1117391139393931002f3cf4ecd4ec123912391239304b5358071005ed071005ed1117395922 +b2401e01015d40427a1301050005010502060307041500150114021603170425002501250226 +032706260726082609201e3601360246014602680575047505771388068807980698071f5d00 +5d011e01171323032e012b01112311212016151406011133323635342623038d417b3ecdd9bf +4a8b78dcca01c80100fc83fd89fe9295959202bc16907efe68017f9662fd8905d5d6d88dba02 +4ffdee87838385000001006401df027f028300030011b6009c020401000410dccc310010d4ec +301321152164021bfde50283a40000020073ffe305d905f0000b00170023401306951200950c +91128c1809190f33031915101810fcecfcec310010e4f4ec10ee300122001110003332001110 +002720001110002120001110000327dcfefd0103dcdc0101feffdc013a0178fe88fec6fec5fe +870179054cfeb8fee5fee6feb80148011a011b0148a4fe5bfe9efe9ffe5b01a40162016201a5 +0000000200c90000048d05d500080013003a40180195100095098112100a0802040005190d3f +11001c09041410fcec32fcec11173931002ff4ecd4ec30400b0f151f153f155f15af1505015d +011133323635342623252132041514042b0111230193fe8d9a9a8dfe3801c8fb0101fefffbfe +ca052ffdcf92878692a6e3dbdde2fda80001ffecfe1d0414feac0003000fb500a90100020410 +c4c43100d4ec30011521350414fbd8feac8f8f000000000100100000056805d5000600b74027 +04110506050311020306060503110403000100021101010042030401af000604030200050501 +0710d4c4173931002fec3239304b5358071005ed071008ed071008ed071005ed5922b2500801 +015d406200032a03470447055a037d038303070600070208040906150114021a041a052a0026 +01260229042905250620083800330133023c043c053706480045014502490449054706590056 +066602690469057a0076017602790479057506800898009706295d005d21013309013301024a +fdc6d301d901dad2fdc705d5fb1704e9fa2b000100c90000061f05d5000c00bf403403110708 +070211010208080702110302090a0901110a0a09420a070203080300af080b05090803020105 +0a061c043e0a1c00040d10fcecfcec11173931002f3cc4ec32111739304b5358071005ed0710 +08ed071008ed071005ed5922b2700e01015d405603070f080f09020a15021407130a26022607 +2007260a200a3407350a69027c027b07790a80028207820a90021604010b0313011b0323012c +032708280934013c035608590965086a097608790981018d0395019b03145d005d1321090121 +1123110123011123c9012d017d017f012dc5fe7fcbfe7fc405d5fc0803f8fa2b051ffc000400 +fae10000000100c90000042305d50009002940120695040295008104ad08050107031c00040a +10fcec32d4c431002fecf4ec10ee30b20f0b01015d13211521112115211123c9035afd700250 +fdb0ca05d5aafe48aafd3700013500b800cb00cb00c100aa009c01a600b800660000007100cb +00a002b20085007500b800c301cb0189022d00cb00a600f000d300aa008700cb03aa0400014a +003300cb000000d9050200f4015400b4009c01390114013907060400044e04b4045204b804e7 +04cd0037047304cd04600473013303a2055605a60556053903c5021200c9001f00b801df0073 +00ba03e9033303bc0444040e00df03cd03aa00e503aa0404000000cb008f00a4007b00b80014 +016f007f027b0252008f00c705cd009a009a006f00cb00cd019e01d300f000ba018300d50098 +03040248009e01d500c100cb00f600830354027f00000333026600d300c700a400cd008f009a +0073040005d5010a00fe022b00a400b4009c00000062009c0000001d032d05d505d505d505f0 +007f007b005400a406b80614072301d300b800cb00a601c301ec069300a000d3035c037103db +0185042304a80448008f0139011401390360008f05d5019a0614072306660179046004600460 +047b009c00000277046001aa00e904600762007b00c5007f027b000000b4025205cd006600bc +00660077061000cd013b01850389008f007b0000001d00cd074a042f009c009c0000077d006f +0000006f0335006a006f007b00ae00b2002d0396008f027b00f600830354063705f6008f009c +04e10266008f018d02f600cd03440029006604ee00730000140000960000b707060504030201 +002c2010b002254964b040515820c859212d2cb002254964b040515820c859212d2c20100720 +b00050b00d7920b8ffff5058041b0559b0051cb0032508b0042523e120b00050b00d7920b8ff +ff5058041b0559b0051cb0032508e12d2c4b505820b0fd454459212d2cb002254560442d2c4b +5358b00225b0022545445921212d2c45442d2cb00225b0022549b00525b005254960b0206368 +208a108a233a8a10653a2d00000100000002570af3b98c425f0f3cf5001f080000000000cef5 +cb7600000000cef5cb76f7d6fcae0d72095500000008000000010000000000010000076dfe1d +00000de2f7d6fa510d7200010000000000000000000000000000002004cd0066057900100512 +00ba04660071051200ba04e50071034a00ba028b0000057d00c90596007307cb00ba023900c1 +0323003704e3fffa04bc003b050e00c9042b006f04e7007b051400ba04ec007105140087025c +00c906330073063d0081058f00c902e30064064c007304d300c90400ffec0579001006e700c9 +049a00c9000000000000004400000140000001b800000250000002c80000036c000003dc0000 +03dc0000048c00000524000005e800000638000006b400000724000008a80000090800000a68 +00000b9400000c3400000d0800000e0000000e4800000ef0000011580000126c000012980000 +1324000013a4000013d0000014b0000015ac000016000001000000200354002b0068000c0002 +00100099000800000415021600080004b8028040fffbfe03fa1403f92503f83203f79603f60e +03f5fe03f4fe03f32503f20e03f19603f02503ef8a4105effe03ee9603ed9603ecfa03ebfa03 +eafe03e93a03e84203e7fe03e63203e5e45305e59603e48a4105e45303e3e22f05e3fa03e22f +03e1fe03e0fe03df3203de1403dd9603dcfe03db1203da7d03d9bb03d8fe03d68a4105d67d03 +d5d44705d57d03d44703d3d21b05d3fe03d21b03d1fe03d0fe03cffe03cefe03cd9603cccb1e +05ccfe03cb1e03ca3203c9fe03c6851105c61c03c51603c4fe03c3fe03c2fe03c1fe03c0fe03 +bffe03befe03bdfe03bcfe03bbfe03ba1103b9862505b9fe03b8b7bb05b8fe03b7b65d05b7bb +03b78004b6b52505b65d40ff03b64004b52503b4fe03b39603b2fe03b1fe03b0fe03affe03ae +6403ad0e03acab2505ac6403abaa1205ab2503aa1203a98a4105a9fa03a8fe03a7fe03a6fe03 +a51203a4fe03a3a20e05a33203a20e03a16403a08a4105a096039ffe039e9d0c059efe039d0c +039c9b19059c64039b9a10059b19039a1003990a0398fe0397960d0597fe03960d03958a4105 +95960394930e05942803930e0392fa039190bb0591fe03908f5d0590bb039080048f8e25058f +5d038f40048e25038dfe038c8b2e058cfe038b2e038a8625058a410389880b05891403880b03 +878625058764038685110586250385110384fe038382110583fe0382110381fe0380fe037ffe +0340ff7e7d7d057efe037d7d037c64037b5415057b25037afe0379fe03780e03770c03760a03 +75fe0374fa0373fa0372fa0371fa0370fe036ffe036efe036c21036bfe036a1142056a530369 +fe03687d036711420566fe0365fe0364fe0363fe0362fe03613a0360fa035e0c035dfe035bfe +035afe0359580a0559fa03580a035716190557320356fe035554150555420354150353011005 +531803521403514a130551fe03500b034ffe034e4d10054efe034d10034cfe034b4a13054bfe +034a4910054a1303491d0d05491003480d0347fe0346960345960344fe0343022d0543fa0342 +bb03414b0340fe033ffe033e3d12053e14033d3c0f053d12033c3b0d053c40ff0f033b0d033a +fe0339fe033837140538fa033736100537140336350b05361003350b03341e03330d0332310b +0532fe03310b03302f0b05300d032f0b032e2d09052e10032d09032c32032b2a25052b64032a +2912052a25032912032827250528410327250326250b05260f03250b0324fe0323fe03220f03 +210110052112032064031ffa031e1d0d051e64031d0d031c1142051cfe031bfa031a42031911 +420519fe031864031716190517fe031601100516190315fe0314fe0313fe031211420512fe03 +11022d05114203107d030f64030efe030d0c16050dfe030c0110050c16030bfe030a100309fe +0308022d0508fe030714030664030401100504fe03401503022d0503fe0302011005022d0301 +100300fe0301b80164858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d00> +] def +/f-0-0 currentdict end definefont pop +%%EndResource +%%BeginResource: font DejaVuSans-Bold +11 dict begin +/FontType 42 def +/FontName /DejaVuSans-Bold def +/PaintType 0 def +/FontMatrix [ 1 0 0 1 0 0 ] def +/FontBBox [ 0 0 0 0 ] def +/Encoding 256 array def +0 1 255 { Encoding exch /.notdef put } for +Encoding 79 /O put +Encoding 82 /R put +/CharStrings 3 dict dup begin +/.notdef 0 def +/O 1 def +/R 2 def +end readonly def +/sfnts [ +<000100000009008000030010637674203eb9310800000268000002546670676d5b026bf00000 +04bc000000ac676c7966581f41560000009c000001cc68656164045e38fb0000056800000036 +686865610eaf0774000005a000000024686d747811c30188000005c40000000c6c6f63610000 +02f8000005d0000000106d6178700648062d000005e000000020707265707c61a2e700000600 +000007a700020066fe96046605a400030007001fbc00040126000000060126b6010805890204 +002fc4d4ec310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f27206 +2900000000020066ffe3066605f0000b00170032401306ae1200ae0c9c129818092d0f37032d +152b1810fcecfcec310010e4f4ec10ee30400b0019171310192f193f1905015d012202151412 +3332123534020320001110002120001110000366b0c2c2b0b1c2c2b101680198fe68fe98fe99 +fe67019904d9fefcecebfefc0104ebec01040117fe64fe95fe96fe64019c016a016b019c0000 +000200bc0000060005d50008001c008740321b1a021c191d161716181d1717162519160a1300 +ae0906ae0c8d170a16131803101c190600040d07031617100907160b031d10fcec32d4c4ec11 +39173911173931002f3cf4ecd4ec39123939304b5358071005ed071005ed1117395922b2181c +01015d401f1b181b191a1a1b1b1a1c361536164515451656155616501e65156516601e0f5d01 +32363534262b0119022111212004151406071e01171321032e012302df79696979a2fe7f024c +012701138f904f7d40d1fe66b637715e033f5a676658fe81fef6fdcb05d5c6d694be2d127f81 +fe5801737052000001660133016600bc00e90000013d00a200fa031f00020002006601660002 +000200ac015400ec00bc006201660181048501540166016d04a400020166007f04cd00000002 +0133006200710000002504a401bc00ba00e500660181018d0548055a0166016d000000000002 +000200f605c301f0053902390058046d043d04b2048104b2016601750466048100b004660439 +02d1049c047b04cf047b005801330166014c0166014c000200ac009a014a0123009a029a0144 +0119014402cd00c100000166013f019a013b05cb05cb00d500d5015000ac00ac0077020a01c7 +01f2012f015801b2012300f600f6011f012f0135023501ee01e70133009800d10358050a009a +008f0112009800bc00cd00e500e500f2007304000166008f05d5022b05d500c300e100d700e5 +0000006a01020000001d032d05d505d505f000a8006a00ec00e1010205d506140721046602f8 +00ec018302a602f80123010201020112011f031f005e03cd046004c7048900ec01bc00ba0102 +0333031f03420333035c0112011f05d5019a009a00e106660179046004600460047b000000ec +02c302b802cd00be00dd00d50000006a025c027b029a00dd01ae01ba01120000008501ae0460 +0762041b009a069a045800ee009a029a00d102cd019a015005cb05cb008b008b063100f60406 +00f0034c016004a800c10000002505c101000121074a06120096014a078300a800000337007b +0014000000c9010005c105c105c105c101000108061d00960427039e00ec0102027d01330098 +00d10358017900cd02390362009c009c009c009301b8009300b80073000014000326b7070605 +04030201002c2010b002254964b040515820c859212d2cb002254964b040515820c859212d2c +20100720b00050b00d7920b8ffff5058041b0559b0051cb0032508b0042523e120b00050b00d +7920b8ffff5058041b0559b0051cb0032508e12d2c4b505820b80128454459212d2cb0022545 +60442d2c4b5358b00225b0022545445921212d2c45442d2cb00225b0022549b00525b0052549 +60b0206368208a108a233a8a10653a2d000100000002570aca280dd25f0f3cf5001f08000000 +0000cef5cb7000000000cef5cb70f772fcae0fcd096500010008000000010000000000010000 +076dfe1d00001021f772f9320fcd00010000000000000000000000000000000304cd006606cd +0066062900bc000000000000004c000000e0000001cc000100000003034e002b0078000c0002 +001000400008000005ed02210008000441840280012600fe000301250011000301240121003a +0005012400fa000301230016000301220121003a0005012200fe00030121003a0003012000fa +0003011f00bb0003011e00640003011d00fe0003011c00190003011b001e0003011a00fe0003 +011900fe0003011800fe0003011700fe0003011600fe000301150114000e0005011500fe0003 +0114000e0003011300fe0003011200fe0003010f010e007d0005010f00fe0003010e007d0003 +010d010c008c0005010d00fe0003010d00c00004010c010b00590005010c008c0003010c0080 +0004010b010a00260005010b00590003010b00400004010a00260003010900fe0003010800fe +00030107000c00030107008000040106b2972e054113010600fa0003010500fa0003010400fe +0003010300190003010200fa0003010100fa0003010040ff7d03ff3e03fefe03fcfb2c05fcfe +03fb2c03fafe03f9f84705f97d03f84703f7fa03f6fe03f5fe03f4fe03f3bb03f2fe03f1fe03 +f0fe03ef1e03eefe03edec0a05edfe03ec0a03ec4004ebea0a05eb3203ea0a03e9fa03e89116 +05e8fe03e7fa03e6fa03e5911605e5fe03e4fe03e3fe03e2fe03e1fe03e0fe03dffe03defa03 +dddc1805dd6403dc1803dba01e05db6403dad92505dafa03d92503d8d12505d8fa03d7d61405 +d71603d6d51005d61403d51003d4d30b05d42003d30b03d2d12505d2fa03d1911605d12503d0 +940c05d02303cfce1405cf2603cecd1205ce1403cd1203cc911605cc1d03cb1403cac9bb05ca +fe03c9c85d05c9bb03c98004c840ffc72505c85d03c84004c72503c6fe03c56403c4901005c4 +fe03c31c03c2fe03c1fe03c0bf3a05c0fa03bfad1b05bf3a03bebd1a05be3203bdbc1105bd1a +03bcbb0f05bc1103bbba0c05bb0f03ba0c03b9911605b9fe03b8fe03b71503b61203b5fe03b4 +fe03b3fe03b21703b11903b01603afad1b05affa03aead1b05aefa03ad911605ad1b03ac9116 +05ac7d03abfe03aa2603a9fe03a8fe03a7fe03a6fe03a50a03a4fe03a3a20e05a3fe03a20e03 +a24004a1a01e05a1fa03a0911605a01e039f9116059ffa039e940c059e1c039dfe039c9bbb05 +9cfe039b9a5d059bbb039b80049a8f25059a5d039a400499fe0398972e0598fe03972e039691 +1605961e40ff0395940c05952003940c0393911605934b039291160592fe0391901005911603 +9010038f25038efe038dfe038cfe038bfe038afe0389fe038887250588fe0387250386fe0385 +fe0384320383960382fe0381fe038019037f0a037efe037dfe037cfe037bfa037afa0379fe03 +7776a60577fe0376a60375741b0575fa03741b0373fa03727d0371fe03706f2c056f2c036efa +036dfa036cfa036bfe036afe0369fe0368630c0568320367fe0366320365640a0565fe03640a +0364400463620a05630c03620a0361601505619603600111056015035f0a035efe035dfe035c +0111055cfe035b5a1b055bfe035a0111055a1b0359fe0358fa0357fe035601110540ff56fe03 +55fe03541e035314035251190552fa0351011105511903504f190550fa034f4e11054f19034e +11034d1e034c4b14054c15034b4a11054b14034a490e054a1103490e0348fa03474614054715 +0346140345fa0344430e05440f03430e034241250542fa0341011105412503403f0f0540fe03 +3f3e0e053f0f033e0e033d3c0d053d16033c0d033b64033afe0339140338fe0337130336351a +0536250335341405351a0335c004340a0d0534140334800433320c05331403334004320c0331 +30a60531fe033001110530a6032f0c032e13032d2c3a052dfa032c1525052c3a032b64032a64 +0329fe0328150327171105271e03262003251e0324231105402b241e0323110322000d0522fa +03210f032140042014031f0a031e1e031d1c19051d25031c0f13051c19031cb801004091041b +0d031a194b051a7d0319011105194b0318fe031711031615250516fa03150111051525031464 +0313110312fe031101110511fe031064030f0e10050f13030fc0040e10030e80040d0111050d +fa030c32030b0a0d050b16030b80040a0d030a400409fe0308fe0307fe0306050a0506fe0305 +0a0305400404fa030364030201110502fe0301000d05011103000d0301b80164858d012b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d0000> +] def +/f-1-0 currentdict end definefont pop +%%EndResource +%%EndSetup +%%Page: 1 1 +%%BeginPageSetup +%%PageBoundingBox: 7 -1 559 434 +%%EndPageSetup +q 7 -1 552 435 rectclip q +0 g +BT +17.6 0 0 17.6 130.590635 355.418671 Tm +/f-0-0 1 Tf +[(Anchor)-3( A)]TJ +11.78352 -0.0324679 Td +[(Anchor)-3( B)]TJ +ET +2.4 w +1 J +1 j +[] 0.0 d +4 M q 1 0 0 -1 0 433.896301 cm +122.449 55.629 96 32.574 re S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +170.449 87.059 m 170.449 167.059 l S Q +170.449 274.838 m 167.25 278.037 l 170.449 266.838 l 173.648 278.037 l +h +170.449 274.838 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-159.059 170.449 m -155.859 167.25 l -167.059 170.449 l -155.859 173.648 + l h +-159.059 170.449 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +329.305 55.629 96 33.715 re S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +377.305 88.203 m 377.305 168.203 l S Q +377.305 273.693 m 374.105 276.892 l 377.305 265.693 l 380.504 276.892 l + h +377.305 273.693 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-160.203 377.305 m -157.004 374.105 l -168.203 377.305 l -157.004 380.504 + l h +-160.203 377.305 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +170.164 216.844 m 170.449 256.203 l 265.957 256.105 l 265.387 297.246 l + S Q +265.496 144.65 m 262.344 147.892 l 265.387 136.65 l 268.742 147.803 l h +265.496 144.65 m f* +0.799923 w +q 0.0138888 1 1 -0.0138888 0 433.896301 cm +-285.504 269.461 m -282.306 266.265 l -293.504 269.463 l -282.307 272.663 + l h +-285.504 269.461 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +137.555 351.727 96 80 re S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +89.879 15.629 m 138.449 52.773 l S Q +132.094 385.982 m 127.609 385.385 l 138.449 381.123 l 131.496 390.467 l + h +132.094 385.982 m f* +0.635486 w +q -1 0.764706 0.764706 1 0 433.896301 cm +-106.472 33.506 m -103.931 30.965 l -112.827 33.506 l -103.931 36.047 l + h +-106.472 33.506 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +201.879 8.773 m 194.449 53.918 l S Q +195.746 387.873 m 193.109 391.553 l 194.449 379.978 l 199.426 390.513 l + h +195.746 387.873 m f* +0.789384 w +q 0.164557 1 1 -0.164557 0 433.896301 cm +-13.448 197.959 m -10.288 194.802 l -21.342 197.961 l -10.287 201.119 l + h +-13.448 197.959 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +297.879 15.629 m 346.449 52.773 l S Q +340.094 385.982 m 335.609 385.385 l 346.449 381.123 l 339.496 390.467 l + h +340.094 385.982 m f* +0.635486 w +q -1 0.764706 0.764706 1 0 433.896301 cm +-237.721 133.872 m -235.179 131.331 l -244.076 133.873 l -235.18 136.414 + l h +-237.721 133.872 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +457.305 16.203 m 409.305 54.488 l S Q +415.559 384.396 m 416.066 388.892 l 409.305 379.408 l 420.059 383.892 l + h +415.559 384.396 m f* +0.625421 w +q 1 0.797619 0.797619 -1 0 433.896301 cm +229.848 232.831 m 232.35 230.331 l 223.594 232.831 l 232.353 235.333 l +h +229.848 232.831 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +418.449 0.203 m 387.02 53.918 l S Q +391.059 386.885 m 389.914 391.263 l 387.02 379.978 l 395.438 388.029 l +h +391.059 386.885 m f* +0.69049 w +q 0.585107 1 1 -0.585107 0 433.896301 cm +135.434 311.816 m 138.197 309.054 l 128.528 311.817 l 138.195 314.579 l + h +135.434 311.816 m S Q +BT +17.6 0 0 17.6 150.69448 46.484589 Tm +/f-0-0 1 Tf +[(Commit)]TJ +0.862305 -1.25 Td +(Tx A)Tj +ET +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +27.348 174.184 96 32.574 re S Q +BT +17.6 0 0 17.6 34.346965 238.578938 Tm +/f-0-0 1 Tf +[(Esca)-3(pe A)]TJ +ET +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +250.605 310.918 m 178.293 310.348 l 178.293 350.348 l S Q +178.293 91.549 m 175.094 94.752 l 178.293 83.549 l 181.492 94.752 l h +178.293 91.549 m f* +0.8 w +q 0.0000002 1 1 -0.0000002 0 433.896301 cm +-342.348 178.293 m -339.144 175.094 l -350.348 178.293 l -339.144 181.492 + l h +-342.348 178.293 m S Q +BT +12 0 0 12 142.310385 332.286029 Tm +/f-0-0 1 Tf +(SIGA & SIGB)Tj +/f-1-0 1 Tf +2.288086 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-5.415039 -1.25 Td +[(SIGA & SIGB & SEC)-3(RET)90(-)21(A)]TJ +ET +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +427.684 171.355 96 32.57 re S Q +BT +17.6 0 0 17.6 434.682052 241.407364 Tm +/f-0-0 1 Tf +[(Esca)-3(pe B)]TJ +ET +q 1 0 0 -1 0 433.896301 cm +315.172 352.695 96 80 re S Q +BT +17.6 0 0 17.6 328.310715 45.514032 Tm +/f-0-0 1 Tf +[(Commit)]TJ +0.861328 -1.25 Td +(Tx B)Tj +ET +q 1 0 0 -1 0 433.896301 cm +297.879 319.629 m 297.879 332.887 287.133 343.629 273.879 343.629 c 260.621 + 343.629 249.879 332.887 249.879 319.629 c 249.879 306.375 260.621 295.629 + 273.879 295.629 c 287.133 295.629 297.879 306.375 297.879 319.629 c h +297.879 319.629 m S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +273.879 295.629 m 273.879 343.629 l S Q +q 1 0 0 -1 0 433.896301 cm +249.879 319.629 m 297.879 319.629 l S Q +q 1 0 0 -1 0 433.896301 cm +250.605 326.918 m 194.293 326.918 l 194.293 350.348 l S Q +194.293 91.549 m 191.094 94.752 l 194.293 83.549 l 197.492 94.752 l h +194.293 91.549 m f* +0.8 w +q 0.000000341463 1 1 -0.000000341463 0 433.896301 cm +-342.348 194.293 m -339.144 191.094 l -350.348 194.293 l -339.144 197.492 + l h +-342.348 194.293 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +296.574 310.918 m 368.883 310.348 l 368.887 350.348 l S Q +368.887 91.549 m 365.684 94.752 l 368.887 83.549 l 372.086 94.752 l h +368.887 91.549 m f* +0.8 w +q -0.0000002 1 1 0.0000002 0 433.896301 cm +-342.348 368.887 m -339.145 365.684 l -350.348 368.887 l -339.145 372.086 + l h +-342.348 368.887 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +296.574 326.918 m 352.883 326.918 l 352.887 350.348 l S Q +352.887 91.549 m 349.684 94.752 l 352.887 83.549 l 356.086 94.752 l h +352.887 91.549 m f* +0.8 w +q -0.000000341463 1 1 0.000000341463 0 433.896301 cm +-342.348 352.887 m -339.145 349.683 l -350.348 352.887 l -339.145 356.086 + l h +-342.348 352.887 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +377.742 218.223 m 377.789 256.203 l 281.711 255.531 l 281.711 297.816 l + S Q +281.711 144.08 m 278.508 147.279 l 281.711 136.08 l 284.91 147.279 l h +281.711 144.08 m f* +0.8 w +q 0.000000189189 1 1 -0.000000189189 0 433.896301 cm +-289.816 281.711 m -286.617 278.508 l -297.816 281.711 l -286.617 284.91 + l h +-289.816 281.711 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +193.879 191.387 m 193.879 204.641 183.133 215.387 169.879 215.387 c 156.621 + 215.387 145.879 204.641 145.879 191.387 c 145.879 178.133 156.621 167.387 + 169.879 167.387 c 183.133 167.387 193.879 178.133 193.879 191.387 c h +193.879 191.387 m S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +169.879 167.387 m 169.879 215.387 l S Q +q 1 0 0 -1 0 433.896301 cm +145.879 191.387 m 193.879 191.387 l S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +402.199 193.73 m 402.199 206.988 391.453 217.73 378.199 217.73 c 364.945 + 217.73 354.199 206.988 354.199 193.73 c 354.199 180.477 364.945 169.73 +378.199 169.73 c 391.453 169.73 402.199 180.477 402.199 193.73 c h +402.199 193.73 m S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +378.199 169.73 m 378.199 217.73 l S Q +q 1 0 0 -1 0 433.896301 cm +354.199 193.73 m 402.199 193.73 l S Q +BT +12 0 0 12 154.199851 68.649481 Tm +/f-0-0 1 Tf +(SIG A & B)Tj +14.845178 -0.134686 Td +[(SIG A &)-319(B)]TJ +ET +q 1 0 0 -1 0 433.896301 cm +145.879 191.629 m 125.879 191.629 l S Q +133.879 242.267 m 137.078 245.467 l 125.879 242.267 l 137.078 239.064 l + h +133.879 242.267 m f* +0.8 w +q 1 0 0 -1 0 433.896301 cm +133.879 191.629 m 137.078 188.43 l 125.879 191.629 l 137.078 194.832 l +h +133.879 191.629 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +403.652 190.984 m 423.652 190.984 l S Q +415.652 242.912 m 412.453 239.713 l 423.652 242.912 l 412.453 246.115 l + h +415.652 242.912 m f* +0.8 w +q -1 0 0 1 0 433.896301 cm +-415.652 -190.984 m -412.453 -194.184 l -423.652 -190.984 l -412.453 -187.781 + l h +-415.652 -190.984 m S Q +BT +12 0 0 12 46.933432 206.540155 Tm +/f-0-0 1 Tf +[(OP_CSV & SIGA)]TJ +/f-1-0 1 Tf +3.046875 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-3.569336 -1.25 Td +[(RIMA)17(GE-)20(A & SIGB)]TJ +-2.377081 7.679162 Td +[(SIGA & SIGB & SEC)-3(RET)90(-)21(A)]TJ +32.565481 0.100846 Td +[(SIGA & SIGB & SEC)-3(RET)90(-)35(B)]TJ +-4.384188 5.279695 Td +(SIGA & SIGB)Tj +/f-1-0 1 Tf +2.288086 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-5.40918 -1.25 Td +[(SIGA & SIGB & SEC)-3(RET)90(-)35(B)]TJ +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +73.477 207.059 m 73.477 252.309 l S Q +73.477 189.588 m 70.277 192.787 l 73.477 181.588 l 76.68 192.787 l h +73.477 189.588 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-244.309 73.477 m -241.109 70.277 l -252.309 73.477 l -241.109 76.68 l +h +-244.309 73.477 m S Q +BT +12 0 0 12 447.973532 208.481293 Tm +/f-0-0 1 Tf +[(OP_CSV & SIGB)]TJ +/f-1-0 1 Tf +3.047852 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-3.5625 -1.25 Td +[(RIMA)17(GE-)33(B & SIGA)]TJ +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +474.531 205.117 m 474.531 250.367 l S Q +474.531 191.529 m 471.328 194.728 l 474.531 183.529 l 477.73 194.728 l +h +474.531 191.529 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-242.367 474.531 m -239.168 471.328 l -250.367 474.531 l -239.168 477.73 + l h +-242.367 474.531 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +21.852 300.488 96 32.57 re S Q +BT +17.6 0 0 17.6 26.110689 110.562123 Tm +/f-0-0 1 Tf +[(F)91(ast E)-3(sc A)]TJ +ET +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +153.312 208.836 m 153.012 311.469 l 120.383 311.469 l S Q +128.383 122.428 m 131.582 125.627 l 120.383 122.428 l 131.582 119.228 l + h +128.383 122.428 m f* +0.8 w +q 1 0 0 -1 0 433.896301 cm +128.383 311.469 m 131.582 308.27 l 120.383 311.469 l 131.582 314.668 l +h +128.383 311.469 m S Q +BT +12 0 0 12 29.305466 79.429511 Tm +/f-0-0 1 Tf +[(OP_CSV & SIGB)]TJ +/f-1-0 1 Tf +3.047852 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-3.505859 -1.25 Td +[(SECRE)-3(T)91(-)35(B & SIGA)]TJ +-1.430404 7.746507 Td +[(SIGA & SIGB & SEC)-3(RET)90(-)21(A)]TJ +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +67.984 333.363 m 67.984 378.613 l S Q +67.984 63.283 m 64.785 66.482 l 67.984 55.283 l 71.184 66.482 l h +67.984 63.283 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-370.613 67.984 m -367.414 64.785 l -378.613 67.984 l -367.414 71.184 l + h +-370.613 67.984 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +394.812 209 m 395.113 311.629 l 427.742 311.629 l S Q +419.742 122.267 m 416.539 119.064 l 427.742 122.267 l 416.539 125.467 l + h +419.742 122.267 m f* +0.8 w +q -1 0 0 1 0 433.896301 cm +-419.742 -311.629 m -416.539 -314.832 l -427.742 -311.629 l -416.539 -308.43 + l h +-419.742 -311.629 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +428.723 295.395 96 32.57 re S Q +BT +17.6 0 0 17.6 432.135626 115.925215 Tm +/f-0-0 1 Tf +[(F)91(ast E)-3(sc B)]TJ +12 0 0 12 436.188279 84.521894 Tm +[(OP_CSV & SIGA)]TJ +/f-1-0 1 Tf +3.046875 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-3.512695 -1.25 Td +[(SECRE)-3(T)91(-)21(A & SIGB)]TJ +-1.69294 7.746507 Td +[(SIGA & SIGB & SEC)-3(RET)90(-)35(B)]TJ +ET +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +474.855 328.27 m 474.855 373.52 l S Q +474.855 68.377 m 471.656 71.576 l 474.855 60.377 l 478.055 71.576 l h +474.855 68.377 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-365.52 474.855 m -362.32 471.656 l -373.52 474.855 l -362.32 478.055 l + h +-365.52 474.855 m S Q +Q Q +showpage +%%Trailer +end restore +%%EOF diff --git a/doc/dual-anchor-final.svg b/doc/dual-anchor-final.svg new file mode 100644 index 000000000..94e23cb8e --- /dev/null +++ b/doc/dual-anchor-final.svg @@ -0,0 +1,1027 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + Anchor A + Anchor B + + + + + + + + + + + + CommitTx A + + + Escape A + + + SIGA & SIGBORSIGA & SIGB & SECRET-A + + + Escape B + + + CommitTx B + + + + + + + + + + + + + + + + + + SIG A & B + SIG A & B + + + OP_CSV & SIGAORRIMAGE-A & SIGB + SIGA & SIGB & SECRET-A + SIGA & SIGB & SECRET-B + SIGA & SIGBORSIGA & SIGB & SECRET-B + + OP_CSV & SIGBORRIMAGE-B & SIGA + + + + Fast Esc A + + + OP_CSV & SIGBORSECRET-B & SIGA + SIGA & SIGB & SECRET-A + + + + + Fast Esc B + + OP_CSV & SIGAORSECRET-A & SIGB + SIGA & SIGB & SECRET-B + + + diff --git a/doc/dual-anchor-take2.svg b/doc/dual-anchor-take2.svg new file mode 100644 index 000000000..4a43738d5 --- /dev/null +++ b/doc/dual-anchor-take2.svg @@ -0,0 +1,847 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + Anchor A + Anchor B + + + + + + + + + + + + CommitTx A + + + Escape A + + + SIGA & SIGBOR + + + Escape B + + + CommitTx B + + + + + + + + + + + + + + + + + + SIG A & B + SIG A & B + + + OP_CSV * 2 & SIGAOR + SIGA & SIGB & SECRET-A + SIGA & SIGB & SECRET-B + OP_CSV & RIMAGE-A & SIGB + ORSECRET-B & SIGA + SIGA & SIGB & H(SECRET-A) + SIGA & SIGBOR + SIGA & SIGB & H(SECRET-A) + OP_CSV * 2 & SIGBOR + OP_CSV & RIMAGE-B & SIGA + ORSECRET-A & SIGB + + diff --git a/doc/dual-anchor.svg b/doc/dual-anchor.svg new file mode 100644 index 000000000..1786f28c4 --- /dev/null +++ b/doc/dual-anchor.svg @@ -0,0 +1,592 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + Anchor A + Anchor B + + + + + + + + + + + + CommitTx A + + + Escape A + + SIGA & SIGBOROP_CSV & SIGA + + SIGA & SIGB + + + Escape B + + SIGA & SIGB + SIGA & SIGBOROP_CSV & SIGB + + CommitTx B + + + + + + + + + diff --git a/doc/htlc.eps b/doc/htlc.eps new file mode 100644 index 000000000..26be05fa8 --- /dev/null +++ b/doc/htlc.eps @@ -0,0 +1,667 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: cairo 1.14.2 (http://cairographics.org) +%%CreationDate: Fri Jul 17 17:07:14 2015 +%%Pages: 1 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%BoundingBox: 75 69 475 425 +%%EndComments +%%BeginProlog +save +50 dict begin +/q { gsave } bind def +/Q { grestore } bind def +/cm { 6 array astore concat } bind def +/w { setlinewidth } bind def +/J { setlinecap } bind def +/j { setlinejoin } bind def +/M { setmiterlimit } bind def +/d { setdash } bind def +/m { moveto } bind def +/l { lineto } bind def +/c { curveto } bind def +/h { closepath } bind def +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto + 0 exch rlineto 0 rlineto closepath } bind def +/S { stroke } bind def +/f { fill } bind def +/f* { eofill } bind def +/n { newpath } bind def +/W { clip } bind def +/W* { eoclip } bind def +/BT { } bind def +/ET { } bind def +/pdfmark where { pop globaldict /?pdfmark /exec load put } + { globaldict begin /?pdfmark /pop load def /pdfmark + /cleartomark load def end } ifelse +/BDC { mark 3 1 roll /BDC pdfmark } bind def +/EMC { mark /EMC pdfmark } bind def +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def +/Tj { show currentpoint cairo_store_point } bind def +/TJ { + { + dup + type /stringtype eq + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse + } forall + currentpoint cairo_store_point +} bind def +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def +/Tf { pop /cairo_font exch def /cairo_font_matrix where + { pop cairo_selectfont } if } bind def +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point + /cairo_font where { pop cairo_selectfont } if } bind def +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def +/g { setgray } bind def +/rg { setrgbcolor } bind def +/d1 { setcachedevice } bind def +%%EndProlog +%%BeginSetup +%%BeginResource: font DejaVuSans +11 dict begin +/FontType 42 def +/FontName /DejaVuSans def +/PaintType 0 def +/FontMatrix [ 1 0 0 1 0 0 ] def +/FontBBox [ 0 0 0 0 ] def +/Encoding 256 array def +0 1 255 { Encoding exch /.notdef put } for +Encoding 32 /space put +Encoding 38 /ampersand put +Encoding 45 /hyphen put +Encoding 65 /A put +Encoding 66 /B put +Encoding 67 /C put +Encoding 69 /E put +Encoding 71 /G put +Encoding 72 /H put +Encoding 73 /I put +Encoding 76 /L put +Encoding 77 /M put +Encoding 78 /N put +Encoding 79 /O put +Encoding 80 /P put +Encoding 82 /R put +Encoding 83 /S put +Encoding 84 /T put +Encoding 85 /U put +Encoding 86 /V put +Encoding 89 /Y put +Encoding 95 /underscore put +Encoding 105 /i put +Encoding 109 /m put +Encoding 111 /o put +Encoding 116 /t put +Encoding 120 /x put +/CharStrings 28 dict dup begin +/.notdef 0 def +/C 1 def +/o 2 def +/m 3 def +/i 4 def +/t 5 def +/T 6 def +/x 7 def +/space 8 def +/A 9 def +/B 10 def +/S 11 def +/I 12 def +/G 13 def +/ampersand 14 def +/R 15 def +/E 16 def +/V 17 def +/O 18 def +/N 19 def +/hyphen 20 def +/P 21 def +/underscore 22 def +/L 23 def +/U 24 def +/Y 25 def +/H 26 def +/M 27 def +end readonly def +/sfnts [ +<0001000000090080000300106376742000691d39000012e0000001fe6670676d7134766a0000 +14e0000000ab676c7966144ea5060000009c0000124468656164026638f70000158c00000036 +686865610cb8066d000015c400000024686d74788ba40d4e000015e8000000706c6f63610001 +0bc000001658000000746d61787004890671000016cc00000020707265703b07f100000016ec +0000056800020066fe96046605a400030007001a400c04fb0006fb0108057f0204002fc4d4ec +310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f272062900010073 +ffe3052705f000190036401a0da10eae0a951101a100ae04951791118c1a07190d003014101a +10fcec32ec310010e4f4ecf4ec10eef6ee30b40f1b1f1b02015d01152e012320001110002132 +3637150e01232000111000213216052766e782ff00fef00110010082e7666aed84feadfe7a01 +86015386ed0562d55f5efec7fed8fed9fec75e5fd34848019f01670168019f47000000020071 +ffe30475047b000b0017004a401306b91200b90cb8128c1809120f51031215451810fcecf4ec +310010e4f4ec10ee3040233f197b007b067f077f087f097f0a7f0b7b0c7f0d7f0e7f0f7f107f +117b12a019f01911015d012206151416333236353426273200111000232200111000027394ac +ab9593acac93f00112feeef0f1feef011103dfe7c9c9e7e8c8c7e99cfec8feecfeedfec70139 +0113011401380000000100ba0000071d047b0022005a4026061209180f00061d07150c871d20 +03b81bbc19100700110f0808065011080f501c18081a462310fcec32fcfcfcec11123931002f +3c3ce4f43cc4ec32111217393040133024502470249024a024a024bf24df24ff2409015d013e +013332161511231134262322061511231134262322061511231133153e01333216042945c082 +afbeb972758fa6b972778da6b9b93fb0797aab03897c76f5e2fd5c029ea19cbea4fd87029ea2 +9bbfa3fd870460ae67627c000000000200c100000179061400030007002b400e06be04b100bc +020501080400460810fc3cec3231002fe4fcec30400b1009400950096009700905015d133311 +2311331523c1b8b8b8b80460fba00614e90000010037000002f2059e0013003840190e05080f +03a9001101bc08870a0b08090204000810120e461410fc3cc4fc3cc432393931002fecf43cc4 +ec3211393930b2af1501015d01112115211114163b01152322263511233533110177017bfe85 +4b73bdbdd5a28787059efec28ffda0894e9a9fd202608f013e0000000001fffa000004e905d5 +0007004a400e0602950081040140031c0040050810d4e4fce431002ff4ec3230014bb00a5458 +bd00080040000100080008ffc03811373859401300091f00100110021f071009400970099f09 +095d03211521112311210604effdeecbfdee05d5aafad5052b000001003b000004790460000b +014340460511060706041103040707060411050401020103110202010b110001000a11090a01 +01000a110b0a0708070911080807420a070401040800bf05020a0704010408000208060c10d4 +4bb00a544bb00f545b4bb010545b4bb011545b58b90006004038594bb0145458b90006ffc038 +59c4d4c411173931002f3cec321739304b5358071005ed071008ed071008ed071005ed071005 +ed071008ed071008ed071005ed59220140980a04040a1a04150a260a3d04310a55045707580a +660a76017a047607740a8d04820a99049f049707920a900aa601a904af04a507a30aa00a1c0a +03040505090a0b1a03150515091a0b2903260525092a0b200d3a013903370534073609390b30 +0d4903460545094a0b400d590056015902590357055606590756085609590b500d6f0d78017f +0d9b019407ab01a407b00dcf0ddf0dff0d2f5d005d09022309012309013309010464fe6b01aa +d9febafebad901b3fe72d9012901290460fddffdc101b8fe48024a0216fe71018f0000020010 +0000056805d50002000a00c2404100110100040504021105050401110a030a0011020003030a +0711050406110505040911030a08110a030a4200030795010381090509080706040302010009 +050a0b10d4c4173931002f3ce4d4ec1239304b5358071005ed0705ed071005ed0705ed071008 +ed071005ed071005ed071008ed5922b2200c01015d40420f010f020f070f080f005800760070 +008c000907010802060309041601190256015802500c67016802780176027c03720477077808 +87018802800c980299039604175d005d090121013301230321032302bcfeee0225fe7be50239 +d288fd5f88d5050efd1903aefa2b017ffe810000000300c9000004ec05d50008001100200043 +40231900950a0995128101950aad1f110b080213191f05000e1c1605191c2e09001c12042110 +fcec32fcecd4ec111739393931002fececf4ec10ee3930b20f2201015d011121323635342623 +01112132363534262325213216151406071e01151404232101930144a39d9da3febc012b9491 +9194fe0b0204e7fa807c95a5fef0fbfde802c9fddd878b8c850266fe3e6f727170a6c0b189a2 +1420cb98c8da00010087ffe304a205f00027007e403c0d0c020e0b021e1f1e080902070a021f +1f1e420a0b1e1f0415010015a11494189511049500942591118c281e0a0b1f1b0700221b190e +2d071914222810dcc4ecfcece4111239393939310010e4f4e4ec10eef6ee10c6111739304b53 +5807100eed11173907100eed1117395922b20f2901015db61f292f294f29035d01152e012322 +061514161f011e0115140421222627351e013332363534262f012e01353424333216044873cc +5fa5b377a67ae2d7feddfee76aef807bec72adbc879a7be2ca0117f569da05a4c53736807663 +651f192bd9b6d9e0302fd04546887e6e7c1f182dc0abc6e42600000100c90000019305d50003 +002eb700af02011c00040410fc4bb0105458b9000000403859ec31002fec3001400d30054005 +500560058f059f05065d13331123c9caca05d5fa2b0000010073ffe3058b05f0001d00394020 +00051b0195031b950812a111ae15950e91088c1e02001c1134043318190b101e10fcecfce4fc +c4310010e4f4ecf4ec10fed4ee11393930251121352111060423200011100021320417152e01 +23200011100021323604c3feb6021275fee6a0fea2fe75018b015e9201076f70fc8bfeeefeed +011301126ba8d50191a6fd7f53550199016d016e01994846d75f60fecefed1fed2fece250000 +00020081ffe305fe05f00009003001cd40960d010e0c861112110b860a0b1212110986000915 +1615070106088616161502010301861d1e1d008609001e1e1d201f02211e110a130a17161503 +181411130a07080206091113130a0201020300110a130a171602181511130a141113130a4212 +0b090306000a1e0328150e0628270695182b9527942491188c0e130a2e0b0e09002e1215270e +1e032e1227210e110f132103121b103110fcecc4d4d4ec10c6ee113911123939113939113911 +3931002fc6e4f6e6ee10ee10c6111239111739111739304b5358071005ed0705ed1117390710 +05ed111739071005ed1117390705ed111739071005ed111739071008ed07100eed1117390710 +0eed111739071008ed071008ed07100eed1117395922b20f3201015d40b2070b052209291c00 +1c011f02170b2a002a0126123a003412440b5e0059015a0a55125a1a5a1f5930671e7b009b00 +9a0199029708950b931595169522992d1f090b090c08110c270c2818021b09190b190c19111c +141c15161d1f3227002701290923122a132a1428152f323b09341239133f324a094c144b1546 +194f3256015a09590c551259135c1f5f326a0c691160327501790c7a1193009301970295059c +079c089f089a099b0b9a0c9032a032b032395d005d010e011514163332363709013e01373306 +02070123270e01232200353436372e0135343633321617152e0123220615141601f25b55d4a0 +5fa649fe7b01fc3b4206ba0c685d0117fc8f68e483f1fece86863032deb853a555579e446983 +3b032351a15892c23f40028ffdf859cb7284fefe7efee39359570113d780e1633f7d3ca2c524 +24b62f316f583367000200c90000055405d50013001c00b14035090807030a06110304030511 +0404034206040015030415950914950d810b040506031109001c160e050a191904113f140a1c +0c041d10fcec32fcc4ec1117391139393931002f3cf4ecd4ec123912391239304b5358071005 +ed071005ed1117395922b2401e01015d40427a13010500050105020603070415001501140216 +03170425002501250226032706260726082609201e3601360246014602680575047505771388 +068807980698071f5d005d011e01171323032e012b0111231121201615140601113332363534 +2623038d417b3ecdd9bf4a8b78dcca01c80100fc83fd89fe9295959202bc16907efe68017f96 +62fd8905d5d6d88dba024ffdee8783838500000100c90000048b05d5000b002e401506950402 +950081089504ad0a05010907031c00040c10fcec32d4c4c431002fececf4ec10ee30b21f0d01 +015d132115211121152111211521c903b0fd1a02c7fd3902f8fc3e05d5aafe46aafde3aa0000 +000100100000056805d5000600b7402704110506050311020306060503110403000100021101 +010042030401af0006040302000505010710d4c4173931002fec3239304b5358071005ed0710 +08ed071008ed071005ed5922b2500801015d406200032a03470447055a037d03830307060007 +0208040906150114021a041a052a002601260229042905250620083800330133023c043c0537 +06480045014502490449054706590056066602690469057a0076017602790479057506800898 +009706295d005d21013309013301024afdc6d301d901dad2fdc705d5fb1704e9fa2b00020073 +ffe305d905f0000b00170023401306951200950c91128c1809190f33031915101810fcecfcec +310010e4f4ec10ee300122001110003332001110002720001110002120001110000327dcfefd +0103dcdc0101feffdc013a0178fe88fec6fec5fe870179054cfeb8fee5fee6feb80148011a01 +1b0148a4fe5bfe9efe9ffe5b01a40162016201a50000000100c90000053305d500090079401e +071101020102110607064207020300af0805060107021c0436071c00040a10fcecfcec113939 +31002f3cec323939304b5358071004ed071004ed5922b21f0b01015d40303602380748024707 +690266078002070601090615011a06460149065701580665016906790685018a0695019a069f +0b105d005d13210111331121011123c901100296c4fef0fd6ac405d5fb1f04e1fa2b04e1fb1f +0001006401df027f028300030011b6009c020401000410dccc310010d4ec301321152164021b +fde50283a400000200c90000048d05d500080013003a40180195100095098112100a08020400 +05190d3f11001c09041410fcec32fcec11173931002ff4ecd4ec30400b0f151f153f155f15af +1505015d011133323635342623252132041514042b0111230193fe8d9a9a8dfe3801c8fb0101 +fefffbfeca052ffdcf92878692a6e3dbdde2fda80001ffecfe1d0414feac0003000fb500a901 +00020410c4c43100d4ec30011521350414fbd8feac8f8f000000000100c90000046a05d50005 +0025400c0295008104011c033a00040610fcecec31002fe4ec30400930075007800380040401 +5d133311211521c9ca02d7fc5f05d5fad5aa000100b2ffe3052905d50011004040160802110b +0005950e8c09008112081c0a38011c00411210fc4bb0105458b90000ffc03859ecfcec310010 +e432f4ec11393939393001b61f138f139f13035d133311141633323635113311100021200011 +b2cbaec3c2aecbfedffee6fee5fedf05d5fc75f0d3d3f0038bfc5cfedcfed6012a0124000001 +fffc000004e705d5000800944028031104050402110102050504021103020800080111000008 +42020300af0602070440051c0040070910d4e4fce4123931002fec3239304b5358071005ed07 +1008ed071008ed071005ed5922b2000a01015d403c0502140235023002300530084602400240 +0540085102510551086502840293021016011a031f0a2601290337013803400a670168037803 +700a9f0a0d5d005d03330901330111231104d9019e019bd9fdf0cb05d5fd9a0266fcf2fd3902 +c7000000000100c90000053b05d5000b002c4014089502ad0400810a0607031c053809011c00 +040c10fcec32fcec3231002f3ce432fcec30b2500d01015d133311211133112311211123c9ca +02decacafd22ca05d5fd9c0264fa2b02c7fd3900000100c90000061f05d5000c00bf40340311 +0708070211010208080702110302090a0901110a0a09420a070203080300af080b0509080302 +01050a061c043e0a1c00040d10fcecfcec11173931002f3cc4ec32111739304b5358071005ed +071008ed071008ed071005ed5922b2700e01015d405603070f080f09020a15021407130a2602 +26072007260a200a3407350a69027c027b07790a80028207820a90021604010b0313011b0323 +012c032708280934013c035608590965086a097608790981018d0395019b03145d005d132109 +01211123110123011123c9012d017d017f012dc5fe7fcbfe7fc405d5fc0803f8fa2b051ffc00 +0400fae10000013500b800cb00cb00c100aa009c01a600b800660000007100cb00a002b20085 +007500b800c301cb0189022d00cb00a600f000d300aa008700cb03aa0400014a003300cb0000 +00d9050200f4015400b4009c01390114013907060400044e04b4045204b804e704cd00370473 +04cd04600473013303a2055605a60556053903c5021200c9001f00b801df007300ba03e90333 +03bc0444040e00df03cd03aa00e503aa0404000000cb008f00a4007b00b80014016f007f027b +0252008f00c705cd009a009a006f00cb00cd019e01d300f000ba018300d5009803040248009e +01d500c100cb00f600830354027f00000333026600d300c700a400cd008f009a0073040005d5 +010a00fe022b00a400b4009c00000062009c0000001d032d05d505d505d505f0007f007b0054 +00a406b80614072301d300b800cb00a601c301ec069300a000d3035c037103db0185042304a8 +0448008f0139011401390360008f05d5019a0614072306660179046004600460047b009c0000 +0277046001aa00e904600762007b00c5007f027b000000b4025205cd006600bc006600770610 +00cd013b01850389008f007b0000001d00cd074a042f009c009c0000077d006f0000006f0335 +006a006f007b00ae00b2002d0396008f027b00f600830354063705f6008f009c04e10266008f +018d02f600cd03440029006604ee00730000140000960000b707060504030201002c2010b002 +254964b040515820c859212d2cb002254964b040515820c859212d2c20100720b00050b00d79 +20b8ffff5058041b0559b0051cb0032508b0042523e120b00050b00d7920b8ffff5058041b05 +59b0051cb0032508e12d2c4b505820b0fd454459212d2cb002254560442d2c4b5358b00225b0 +022545445921212d2c45442d2cb00225b0022549b00525b005254960b0206368208a108a233a +8a10653a2d00000100000002570a3c50034a5f0f3cf5001f080000000000cef5cb7600000000 +cef5cb76f7d6fcae0d72095500000008000000010000000000010000076dfe1d00000de2f7d6 +fa510d7200010000000000000000000000000000001c04cd00660596007304e5007107cb00ba +023900c10323003704e3fffa04bc003b028b000005790010057d00c905140087025c00c90633 +0073063d0081058f00c9050e00c905790010064c007305fc00c902e3006404d300c90400ffec +047500c905db00b204e3fffc060400c906e700c90000000000000044000000dc000001800000 +0244000002940000031000000380000005040000050400000600000006b0000007a8000007f0 +0000089800000b0000000c1400000c7400000d5400000de000000e8800000eb400000f340000 +0f6000000fa400001028000010ec000011480000124400010000001c0354002b0068000c0002 +00100099000800000415021600080004b8028040fffbfe03fa1403f92503f83203f79603f60e +03f5fe03f4fe03f32503f20e03f19603f02503ef8a4105effe03ee9603ed9603ecfa03ebfa03 +eafe03e93a03e84203e7fe03e63203e5e45305e59603e48a4105e45303e3e22f05e3fa03e22f +03e1fe03e0fe03df3203de1403dd9603dcfe03db1203da7d03d9bb03d8fe03d68a4105d67d03 +d5d44705d57d03d44703d3d21b05d3fe03d21b03d1fe03d0fe03cffe03cefe03cd9603cccb1e +05ccfe03cb1e03ca3203c9fe03c6851105c61c03c51603c4fe03c3fe03c2fe03c1fe03c0fe03 +bffe03befe03bdfe03bcfe03bbfe03ba1103b9862505b9fe03b8b7bb05b8fe03b7b65d05b7bb +03b78004b6b52505b65d40ff03b64004b52503b4fe03b39603b2fe03b1fe03b0fe03affe03ae +6403ad0e03acab2505ac6403abaa1205ab2503aa1203a98a4105a9fa03a8fe03a7fe03a6fe03 +a51203a4fe03a3a20e05a33203a20e03a16403a08a4105a096039ffe039e9d0c059efe039d0c +039c9b19059c64039b9a10059b19039a1003990a0398fe0397960d0597fe03960d03958a4105 +95960394930e05942803930e0392fa039190bb0591fe03908f5d0590bb039080048f8e25058f +5d038f40048e25038dfe038c8b2e058cfe038b2e038a8625058a410389880b05891403880b03 +878625058764038685110586250385110384fe038382110583fe0382110381fe0380fe037ffe +0340ff7e7d7d057efe037d7d037c64037b5415057b25037afe0379fe03780e03770c03760a03 +75fe0374fa0373fa0372fa0371fa0370fe036ffe036efe036c21036bfe036a1142056a530369 +fe03687d036711420566fe0365fe0364fe0363fe0362fe03613a0360fa035e0c035dfe035bfe +035afe0359580a0559fa03580a035716190557320356fe035554150555420354150353011005 +531803521403514a130551fe03500b034ffe034e4d10054efe034d10034cfe034b4a13054bfe +034a4910054a1303491d0d05491003480d0347fe0346960345960344fe0343022d0543fa0342 +bb03414b0340fe033ffe033e3d12053e14033d3c0f053d12033c3b0d053c40ff0f033b0d033a +fe0339fe033837140538fa033736100537140336350b05361003350b03341e03330d0332310b +0532fe03310b03302f0b05300d032f0b032e2d09052e10032d09032c32032b2a25052b64032a +2912052a25032912032827250528410327250326250b05260f03250b0324fe0323fe03220f03 +210110052112032064031ffa031e1d0d051e64031d0d031c1142051cfe031bfa031a42031911 +420519fe031864031716190517fe031601100516190315fe0314fe0313fe031211420512fe03 +11022d05114203107d030f64030efe030d0c16050dfe030c0110050c16030bfe030a100309fe +0308022d0508fe030714030664030401100504fe03401503022d0503fe0302011005022d0301 +100300fe0301b80164858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d00> +] def +/f-0-0 currentdict end definefont pop +%%EndResource +%%BeginResource: font DejaVuSans-Bold +11 dict begin +/FontType 42 def +/FontName /DejaVuSans-Bold def +/PaintType 0 def +/FontMatrix [ 1 0 0 1 0 0 ] def +/FontBBox [ 0 0 0 0 ] def +/Encoding 256 array def +0 1 255 { Encoding exch /.notdef put } for +Encoding 79 /O put +Encoding 82 /R put +/CharStrings 3 dict dup begin +/.notdef 0 def +/O 1 def +/R 2 def +end readonly def +/sfnts [ +<000100000009008000030010637674203eb9310800000268000002546670676d5b026bf00000 +04bc000000ac676c7966581f41560000009c000001cc68656164045e38fb0000056800000036 +686865610eaf0774000005a000000024686d747811c30188000005c40000000c6c6f63610000 +02f8000005d0000000106d6178700648062d000005e000000020707265707c61a2e700000600 +000007a700020066fe96046605a400030007001fbc00040126000000060126b6010805890204 +002fc4d4ec310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f27206 +2900000000020066ffe3066605f0000b00170032401306ae1200ae0c9c129818092d0f37032d +152b1810fcecfcec310010e4f4ec10ee30400b0019171310192f193f1905015d012202151412 +3332123534020320001110002120001110000366b0c2c2b0b1c2c2b101680198fe68fe98fe99 +fe67019904d9fefcecebfefc0104ebec01040117fe64fe95fe96fe64019c016a016b019c0000 +000200bc0000060005d50008001c008740321b1a021c191d161716181d1717162519160a1300 +ae0906ae0c8d170a16131803101c190600040d07031617100907160b031d10fcec32d4c4ec11 +39173911173931002f3cf4ecd4ec39123939304b5358071005ed071005ed1117395922b2181c +01015d401f1b181b191a1a1b1b1a1c361536164515451656155616501e65156516601e0f5d01 +32363534262b0119022111212004151406071e01171321032e012302df79696979a2fe7f024c +012701138f904f7d40d1fe66b637715e033f5a676658fe81fef6fdcb05d5c6d694be2d127f81 +fe5801737052000001660133016600bc00e90000013d00a200fa031f00020002006601660002 +000200ac015400ec00bc006201660181048501540166016d04a400020166007f04cd00000002 +0133006200710000002504a401bc00ba00e500660181018d0548055a0166016d000000000002 +000200f605c301f0053902390058046d043d04b2048104b2016601750466048100b004660439 +02d1049c047b04cf047b005801330166014c0166014c000200ac009a014a0123009a029a0144 +0119014402cd00c100000166013f019a013b05cb05cb00d500d5015000ac00ac0077020a01c7 +01f2012f015801b2012300f600f6011f012f0135023501ee01e70133009800d10358050a009a +008f0112009800bc00cd00e500e500f2007304000166008f05d5022b05d500c300e100d700e5 +0000006a01020000001d032d05d505d505f000a8006a00ec00e1010205d506140721046602f8 +00ec018302a602f80123010201020112011f031f005e03cd046004c7048900ec01bc00ba0102 +0333031f03420333035c0112011f05d5019a009a00e106660179046004600460047b000000ec +02c302b802cd00be00dd00d50000006a025c027b029a00dd01ae01ba01120000008501ae0460 +0762041b009a069a045800ee009a029a00d102cd019a015005cb05cb008b008b063100f60406 +00f0034c016004a800c10000002505c101000121074a06120096014a078300a800000337007b +0014000000c9010005c105c105c105c101000108061d00960427039e00ec0102027d01330098 +00d10358017900cd02390362009c009c009c009301b8009300b80073000014000326b7070605 +04030201002c2010b002254964b040515820c859212d2cb002254964b040515820c859212d2c +20100720b00050b00d7920b8ffff5058041b0559b0051cb0032508b0042523e120b00050b00d +7920b8ffff5058041b0559b0051cb0032508e12d2c4b505820b80128454459212d2cb0022545 +60442d2c4b5358b00225b0022545445921212d2c45442d2cb00225b0022549b00525b0052549 +60b0206368208a108a233a8a10653a2d000100000002570aca280dd25f0f3cf5001f08000000 +0000cef5cb7000000000cef5cb70f772fcae0fcd096500010008000000010000000000010000 +076dfe1d00001021f772f9320fcd00010000000000000000000000000000000304cd006606cd +0066062900bc000000000000004c000000e0000001cc000100000003034e002b0078000c0002 +001000400008000005ed02210008000441840280012600fe000301250011000301240121003a +0005012400fa000301230016000301220121003a0005012200fe00030121003a0003012000fa +0003011f00bb0003011e00640003011d00fe0003011c00190003011b001e0003011a00fe0003 +011900fe0003011800fe0003011700fe0003011600fe000301150114000e0005011500fe0003 +0114000e0003011300fe0003011200fe0003010f010e007d0005010f00fe0003010e007d0003 +010d010c008c0005010d00fe0003010d00c00004010c010b00590005010c008c0003010c0080 +0004010b010a00260005010b00590003010b00400004010a00260003010900fe0003010800fe +00030107000c00030107008000040106b2972e054113010600fa0003010500fa0003010400fe +0003010300190003010200fa0003010100fa0003010040ff7d03ff3e03fefe03fcfb2c05fcfe +03fb2c03fafe03f9f84705f97d03f84703f7fa03f6fe03f5fe03f4fe03f3bb03f2fe03f1fe03 +f0fe03ef1e03eefe03edec0a05edfe03ec0a03ec4004ebea0a05eb3203ea0a03e9fa03e89116 +05e8fe03e7fa03e6fa03e5911605e5fe03e4fe03e3fe03e2fe03e1fe03e0fe03dffe03defa03 +dddc1805dd6403dc1803dba01e05db6403dad92505dafa03d92503d8d12505d8fa03d7d61405 +d71603d6d51005d61403d51003d4d30b05d42003d30b03d2d12505d2fa03d1911605d12503d0 +940c05d02303cfce1405cf2603cecd1205ce1403cd1203cc911605cc1d03cb1403cac9bb05ca +fe03c9c85d05c9bb03c98004c840ffc72505c85d03c84004c72503c6fe03c56403c4901005c4 +fe03c31c03c2fe03c1fe03c0bf3a05c0fa03bfad1b05bf3a03bebd1a05be3203bdbc1105bd1a +03bcbb0f05bc1103bbba0c05bb0f03ba0c03b9911605b9fe03b8fe03b71503b61203b5fe03b4 +fe03b3fe03b21703b11903b01603afad1b05affa03aead1b05aefa03ad911605ad1b03ac9116 +05ac7d03abfe03aa2603a9fe03a8fe03a7fe03a6fe03a50a03a4fe03a3a20e05a3fe03a20e03 +a24004a1a01e05a1fa03a0911605a01e039f9116059ffa039e940c059e1c039dfe039c9bbb05 +9cfe039b9a5d059bbb039b80049a8f25059a5d039a400499fe0398972e0598fe03972e039691 +1605961e40ff0395940c05952003940c0393911605934b039291160592fe0391901005911603 +9010038f25038efe038dfe038cfe038bfe038afe0389fe038887250588fe0387250386fe0385 +fe0384320383960382fe0381fe038019037f0a037efe037dfe037cfe037bfa037afa0379fe03 +7776a60577fe0376a60375741b0575fa03741b0373fa03727d0371fe03706f2c056f2c036efa +036dfa036cfa036bfe036afe0369fe0368630c0568320367fe0366320365640a0565fe03640a +0364400463620a05630c03620a0361601505619603600111056015035f0a035efe035dfe035c +0111055cfe035b5a1b055bfe035a0111055a1b0359fe0358fa0357fe035601110540ff56fe03 +55fe03541e035314035251190552fa0351011105511903504f190550fa034f4e11054f19034e +11034d1e034c4b14054c15034b4a11054b14034a490e054a1103490e0348fa03474614054715 +0346140345fa0344430e05440f03430e034241250542fa0341011105412503403f0f0540fe03 +3f3e0e053f0f033e0e033d3c0d053d16033c0d033b64033afe0339140338fe0337130336351a +0536250335341405351a0335c004340a0d0534140334800433320c05331403334004320c0331 +30a60531fe033001110530a6032f0c032e13032d2c3a052dfa032c1525052c3a032b64032a64 +0329fe0328150327171105271e03262003251e0324231105402b241e0323110322000d0522fa +03210f032140042014031f0a031e1e031d1c19051d25031c0f13051c19031cb801004091041b +0d031a194b051a7d0319011105194b0318fe031711031615250516fa03150111051525031464 +0313110312fe031101110511fe031064030f0e10050f13030fc0040e10030e80040d0111050d +fa030c32030b0a0d050b16030b80040a0d030a400409fe0308fe0307fe0306050a0506fe0305 +0a0305400404fa030364030201110502fe0301000d05011103000d0301b80164858d012b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d0000> +] def +/f-1-0 currentdict end definefont pop +%%EndResource +%%EndSetup +%%Page: 1 1 +%%BeginPageSetup +%%PageBoundingBox: 75 69 475 425 +%%EndPageSetup +q 75 69 400 356 rectclip q +0 g +2.4 w +1 J +1 j +[] 0.0 d +4 M q 1 0 0 -1 0 433.896301 cm +137.555 66.457 96 80 re S Q +BT +17.6 0 0 17.6 150.69448 331.751667 Tm +/f-0-0 1 Tf +[(Commit)]TJ +0.862305 -1.25 Td +(Tx A)Tj +ET +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +250.605 25.652 m 178.293 25.078 l 178.293 65.078 l S Q +178.293 376.818 m 175.094 380.017 l 178.293 368.818 l 181.492 380.017 l + h +178.293 376.818 m f* +0.8 w +q 0.0000002 1 1 -0.0000002 0 433.896301 cm +-57.078 178.293 m -53.879 175.094 l -65.078 178.293 l -53.879 181.492 l + h +-57.078 178.293 m S Q +2.4 w +1 J +1 j +q 1 0 0 -1 0 433.896301 cm +315.172 67.43 96 80 re S Q +BT +17.6 0 0 17.6 328.310715 330.78111 Tm +/f-0-0 1 Tf +[(Commit)]TJ +0.861328 -1.25 Td +(Tx B)Tj +ET +q 1 0 0 -1 0 433.896301 cm +297.879 34.363 m 297.879 47.617 287.133 58.363 273.879 58.363 c 260.621 + 58.363 249.879 47.617 249.879 34.363 c 249.879 21.109 260.621 10.363 273.879 + 10.363 c 287.133 10.363 297.879 21.109 297.879 34.363 c h +297.879 34.363 m S Q +0.8 w +0 J +0 j +q 1 0 0 -1 0 433.896301 cm +273.879 10.363 m 273.879 58.363 l S Q +q 1 0 0 -1 0 433.896301 cm +249.879 34.363 m 297.879 34.363 l S Q +q 1 0 0 -1 0 433.896301 cm +250.605 41.652 m 194.293 41.652 l 194.293 65.078 l S Q +194.293 376.818 m 191.094 380.017 l 194.293 368.818 l 197.492 380.017 l + h +194.293 376.818 m f* +0.8 w +q 0.000000341463 1 1 -0.000000341463 0 433.896301 cm +-57.078 194.293 m -53.879 191.094 l -65.078 194.293 l -53.879 197.492 l + h +-57.078 194.293 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +296.574 25.652 m 368.883 25.078 l 368.887 65.078 l S Q +368.887 376.818 m 365.684 380.017 l 368.887 368.818 l 372.086 380.017 l + h +368.887 376.818 m f* +0.8 w +q -0.0000002 1 1 0.0000002 0 433.896301 cm +-57.078 368.887 m -53.879 365.684 l -65.078 368.887 l -53.879 372.086 l + h +-57.078 368.887 m S Q +0.8 w +q 1 0 0 -1 0 433.896301 cm +296.574 41.652 m 352.883 41.652 l 352.887 65.078 l S Q +352.887 376.818 m 349.684 380.017 l 352.887 368.818 l 356.086 380.017 l + h +352.887 376.818 m f* +0.8 w +q -0.000000341463 1 1 0.000000341463 0 433.896301 cm +-57.078 352.887 m -53.879 349.684 l -65.078 352.887 l -53.879 356.086 l + h +-57.078 352.887 m S Q +BT +12 0 0 12 154.199851 353.916559 Tm +/f-0-0 1 Tf +(SIG A & B)Tj +14.845178 -0.134686 Td +[(SIG A &)-319(B)]TJ +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +154.352 146.453 m 154.48 162.617 l 98.852 162.617 l 98.852 186.047 l S Q +98.852 255.849 m 95.648 259.053 l 98.852 247.849 l 102.051 259.053 l h +98.852 255.849 m f* +0.8 w +q 0.000000341463 1 1 -0.000000341463 0 433.896301 cm +-178.047 98.852 m -174.844 95.648 l -186.047 98.852 l -174.844 102.051 +l h +-178.047 98.852 m S Q +BT +12 0 0 12 74.360245 239.841376 Tm +/f-0-0 1 Tf +(SIG B)Tj +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +186.359 146.055 m 186.359 202.055 l S Q +186.359 239.842 m 183.16 243.041 l 186.359 231.842 l 189.559 243.041 l +h +186.359 239.842 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-194.055 186.359 m -190.855 183.16 l -202.055 186.359 l -190.855 189.559 + l h +-194.055 186.359 m S Q +BT +12 0 0 12 98.003489 217.457611 Tm +/f-0-0 1 Tf +[(REV)17(OCA)77(TION-)21(A & SIG B)]TJ +/f-1-0 1 Tf +5.02832 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-3.206055 -1.25 Td +[(OP_CSV & SIG A)]TJ +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +403.176 146.453 m 403.047 162.617 l 458.676 162.617 l 458.676 186.047 l + S Q +458.676 255.849 m 455.477 259.053 l 458.676 247.849 l 461.879 259.053 l + h +458.676 255.849 m f* +0.8 w +q -0.000000341463 1 1 0.000000341463 0 433.896301 cm +-178.047 458.676 m -174.844 455.477 l -186.047 458.676 l -174.844 461.879 + l h +-178.047 458.676 m S Q +BT +12 0 0 12 441.962302 234.992646 Tm +/f-0-0 1 Tf +(SIG A)Tj +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +361.629 149.289 m 361.629 205.289 l S Q +361.629 236.607 m 358.43 239.81 l 361.629 228.607 l 364.828 239.81 l h +361.629 236.607 m f* +0.8 w +q 0 1 1 0 0 433.896301 cm +-197.289 361.629 m -194.086 358.43 l -205.289 361.629 l -194.086 364.828 + l h +-197.289 361.629 m S Q +BT +12 0 0 12 331.539304 213.416986 Tm +/f-0-0 1 Tf +[(REV)17(OCA)77(TION-)34(B & SIG A)]TJ +/f-1-0 1 Tf +5.021484 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-3.207031 -1.25 Td +[(OP_CSV & SIG B)]TJ +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +210.527 148.152 m 210.398 164.316 l 240.98 164.316 l 240.98 287.949 l S Q +240.98 153.947 m 237.781 157.146 l 240.98 145.947 l 244.18 157.146 l h +240.98 153.947 m f* +0.8 w +q -0.0000000647062 1 1 0.0000000647062 0 433.896301 cm +-279.949 240.98 m -276.75 237.781 l -287.949 240.98 l -276.75 244.18 l +h +-279.949 240.98 m S Q +BT +12 0 0 12 130.27529 130.667768 Tm +/f-0-0 1 Tf +[(R)41(-)58(V)65(AL)49(UE & SIG-)-3(P)64(A)79(YEE)]TJ +/f-1-0 1 Tf +4.508789 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-6.18457 -1.25 Td +[(HTLC-)90(TIMEOUT)-3( & SIG-P)63(A)79(YER)]TJ +/f-1-0 1 Tf +6.18457 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-5.02832 -1.25 Td +[(REV)17(OCA)77(TION-)21(A & SIG B)]TJ +ET +0.8 w +q 1 0 0 -1 0 433.896301 cm +345.309 147.668 m 345.438 163.832 l 314.859 163.832 l 314.859 287.469 l + S Q +314.859 154.428 m 311.656 157.631 l 314.859 146.428 l 318.059 157.631 l + h +314.859 154.428 m f* +0.8 w +q 0.0000000647062 1 1 -0.0000000647062 0 433.896301 cm +-279.469 314.859 m -276.266 311.656 l -287.469 314.859 l -276.266 318.059 + l h +-279.469 314.859 m S Q +BT +12 0 0 12 320.821482 132.279926 Tm +/f-0-0 1 Tf +[(R)41(-)58(V)65(AL)49(UE & SIG-)-3(P)64(A)79(YEE)]TJ +/f-1-0 1 Tf +4.508789 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-6.18457 -1.25 Td +[(HTLC-)90(TIMEOUT)-3( & SIG-P)63(A)79(YER)]TJ +/f-1-0 1 Tf +6.18457 -1.25 Td +(OR)Tj +/f-0-0 1 Tf +-5.021484 -1.25 Td +[(REV)17(OCA)77(TION-)34(B & SIG A)]TJ +ET +Q Q +showpage +%%Trailer +end restore +%%EOF diff --git a/doc/htlc.svg b/doc/htlc.svg new file mode 100644 index 000000000..a77ee6f91 --- /dev/null +++ b/doc/htlc.svg @@ -0,0 +1,596 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + CommitTx A + + + CommitTx B + + + + + + + SIG A & B + SIG A & B + + SIG B + + REVOCATION-A & SIG BOROP_CSV & SIG A + + SIG A + + REVOCATION-B & SIG AOROP_CSV & SIG B + + R-VALUE & SIG-PAYEEORHTLC-TIMEOUT & SIG-PAYERORREVOCATION-A & SIG B + + R-VALUE & SIG-PAYEEORHTLC-TIMEOUT & SIG-PAYERORREVOCATION-B & SIG A + +