%!PS-Adobe-2.0 %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %%Title: bridgepaper.dvi %%Pages: 11 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips bridgepaper %DVIPSParameters: dpi=600, compressed %DVIPSSource: TeX output 2000.04.21:1440 %%BeginProcSet: texc.pro %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B /chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ /cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 {2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ 1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ /Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet %%BeginProcSet: special.pro %! TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N /vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N /rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N /@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ /hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B /@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ /urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known {userdict/md get type/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale }if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState save N userdict maxlength dict begin/magscale true def normalscale currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts /psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{ psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict begin/SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{ CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR }{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end} repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N /@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X /yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet TeXDict begin 39158280 55380996 1000 600 600 (bridgepaper.dvi) @start %DVIPSBitmapFont: Fa cmti9 9 55 /Fa 55 123 df<047013E09338F801F0A2923901F003E0A2923903E007C0A2923907C00F 80A204801300030F5BA292381F003EA2033E5BA24B5BA24B485AA24A48485AA24A48485A 000FB812F818FCA218F8C7261F003EC7FCA2023E5BA24A5BA202785BECF801A24948485A A24948485AB9128018C0A2188027001F003EC8FCA2013E5BA2495BA249485AA24848485A A201E05B00031307A24848485AA2484848C9FCA2381F003EA2003E5BA2003C1378A20038 1370364377B33F>35 D39 D<1560EC01E0EC03C0EC0700140E5C143C5C 5C495A495A13075C49C7FC5B131E5B137C137813F85B12015B12035B1207A25B120FA290 C8FC5AA2121E123EA3123C127CA31278A212F8A35AAF12701278A21238A2123C121CA27E A27E6C7E12011B4A75B71F>I<14301438A28080A2140F801580A2140315C0A4140115E0 A81403A415C0A31407A31580140FA315005CA3141E143EA2143C147CA25CA25C13015C13 035C13075C130F91C7FC131E133E133C5B5B485AA2485A485A48C8FC121E5A12705A5A1B 4A7EB71F>I44 DI<121C127F12FFA4 12FE12380808778718>I48 DI<150E151FA2153F153EA3157E157CA215FC15F8A2 140115F0A2EC03E0A3EC07C0A2EC0F80A2EC1F00A2143EA25C147814F85C1301903803E0 E0ECC1F0EB0781EB0F83EC03E0131E133CEB7C0701F813C0EA01F0EA03E03807C00FD80F 801380EA1FFC383FFFCF48EBFF82D8F00313FF3860003FC7EA1FF8EC3F00143EA3147E14 7CA314FC5CA4146020417DB127>52 D<010614C090380FC00F91B51280160015FC4913F0 15C0D91CFEC7FC91C8FC133C1338A313781370A313F0EBE0FE9038E3FF809038EF03C039 01FC01E001F87FEBF000497F485A5BC8FCA41401A4003C130300FC5CA34A5A5A00E0495A A24A5A4AC7FC6C137E00705B387801F8383E07F0381FFFC06C90C8FCEA03F8223478B127 >I55 D57 D<1370EA01FC1203A413F8EA 00E01300B0121C127F5AA45A12380E20779F18>I<130EEB3F80137FA41400131C90C7FC B0EA0380EA0FC0487EA45B1207120012015BA2120390C7FC5A1206120E5A5A123012705A 5A112F7A9F18>I<161C163CA2167C16FCA21501821503A2ED077E150F150E151CA21538 A2157015F015E0EC01C0A2913803807F82EC0700A2140E141E141C5CA25CA25C49B6FCA2 5B913880003F49C7EA1F80A2130E131E131C133C13385B13F05B12011203D80FF0EC3FC0 D8FFFE903807FFFEA32F367BB539>65 D<0107B612C04915F017FC903A003F8000FE177F EF3F8092C7121FA24A15C0A2147EA214FE18804A143FA20101ED7F00177E4A5C16010103 EC03F04C5A4AEB1FC091B6C7FC495C9139F0007F804AEB0FC0707E010F6E7E834A1301A2 011F81A25CA2133F5F91C71203A2494A5AA2017E4A5A4C5A01FE4A5A4CC7FC49EB01FE00 01EC07FC007FB612F0B712C04BC8FC32337BB236>II<0107B612C04915F017FC903A003F8001FEEE007FEF1F8092C7EA0FC0EF 07E05CEF03F0147E170102FE15F8A25CA21301A25CA2130317035CA2130718F04A1407A2 130F18E04A140F18C0011F151F18805CEF3F00133F177E91C85AA2494A5A4C5A017E4A5A 4C5A01FE4A5A047EC7FC49495A0001EC0FF8007FB612E0B7C8FC15F835337BB23A>I<01 07B712F05B18E0903A003F80001F1707170392C7FC17015C18C0147EA214FEA24A130EA2 0101EC1E03041C13804A91C7FC163C13035E9138F001F891B5FC5B5EECE0011500130F5E 5C1707011F01015BEEC00E0280141E92C7121C133F173C91C812381778495DA2017E1401 4C5A01FE14074C5A49141F00014AB45A007FB7FCB8FC94C7FC34337CB234>I<0107B712 E05B18C0903A003F80003F170F170792C7FC17035C1880147EA214FEA25C161C0101EC3C 07043813004A91C7FCA20103147816704A13F0150349B5FCA25EECE003130F6F5A14C0A2 011F13035E1480A2013F90C9FCA291CAFCA25BA2137EA213FEA25B1201387FFFFCB5FCA2 33337CB232>I<92391FE001809238FFF8030207EBFE07913A1FF01F0F0091393F80079F 9139FE0003DFD901F86DB4FCD907F05C49481300495A4948147E49C8127C137E13FE485A 48481578A2485AA248481570A2485A94C7FC123F5BA3127F90CBFCA400FE91383FFFFCA2 5F9238003F8094C7FCA2007E5DA2167EA2007F15FE7E5E6C6C1301A26C6C495A6D13076C 6CEB0F786C6C133E3A00FF01FC3090387FFFF0011F01C0C8FCD903FEC9FC313775B43B> I<010FB51280A216009038003FC05DA292C7FCA25CA2147EA214FEA25CA21301A25CA213 03A25CA21307A25CA2130FA25CA2131FA25CA2133FA291C8FCA25BA2137EA213FEA25B12 01B512F8A25C21337BB21E>73 D<0107B590380FFFF05B19E09026003FC0903803FE004B 14F818E092C7485A4DC7FC4A141E177C027E5CEE01E002FE495A4C5A4A011FC8FC163E01 0114785E4A485AED07C00103495A4B7EECF03F157F903907F1FFE0ECF3E79138E787F0EC EF0790380FFE0302FC7FECF80114E0D91FC07F15004A7FA2013F147E167F91C77E835B16 1F017E81160F13FE835B000182267FFFF090B57EB55B95C7FC3C337BB23B>75 D<902607FF8090383FFFC0496D5BA2D9001F913803F8004A6C6D5A6060EC3BF0027B1403 60EC71F8A202F11407DAF0FC91C7FC14E0A20101017E5B170E14C0810103151EEE801CEC 801FA20107ECC03C030F1338140016E049010713781770010E14F01503011E15F0705A01 1C1301A2013C14FD03005B133816FF0178147F5F0170143FA213F070C8FC1201EA07F826 7FFF807FB5140EA23A337BB239>78 DI< 0107B612C04915F883903A003F8001FEEE003FEF1F8092C713C0170F5C18E0147EA214FE EF1FC05CA201011680173F4A1500177E010315FE5F4AEB03F8EE07E00107EC3FC091B6C7 FC16F802E0C9FC130FA25CA2131FA25CA2133FA291CAFCA25BA2137EA213FEA25B120138 7FFFF0B5FCA233337CB234>I<0107B512FE49ECFFC017F0903A003F8007F8EE01FCEE00 7E92C7127F835C1880147EA214FEEF7F005CA2010115FE5F4A13015F01034A5AEE0FC04A 495A04FEC7FC49B512F016C09138E003E0ED01F8010F6D7E167C4A137EA2131FA25CA201 3F14FEA291C7FCA24913015E137EEF01C001FE150318805B00011607277FFFF0001400B5 ECFE0EEE7E1CC9EA1FF8EE07E032357BB238>82 D<913901FC018091380FFF03023F13C7 91387E07EF903A01F801FF0049487E4A7F495A4948133E131F91C7FC5B013E143CA3137E 1638A293C7FC137FA26D7E14E014FE90381FFFC06D13F86D7F01017F6D6C7E020F7F1400 153F6F7E150FA4120EA2001E5D121CA2151F003C92C7FCA2003E143E5D127E007F5C6D48 5A9038C007E039F3F80FC000F0B5C8FC38E03FFC38C00FF029377AB42B>I<0003B812C0 5A1880903AF800FC003F260FC001141F0180150F01005B001EEE07001403121C003C4A5B A200380107140E127800705CA2020F141E00F0161CC74990C7FCA2141FA25DA2143FA292 C9FCA25CA2147EA214FEA25CA21301A25CA21303A25CA21307A25C497E001FB512F05AA2 323374B237>I<3B3FFFF801FFFE485CA2D801FEC7EA1FC049EC0F80170049140EA2161E 120349141CA2163C1207491438A21678120F491470A216F0121F495CA21501123F90C75B A215035A007E5DA2150712FE4892C7FCA25D150E48141E151C153C153815786C5C5D007C 1301007E495A003EEB0F806C011EC8FC380FC0FC6CB45A000113E06C6CC9FC2F3570B239 >I87 D<902607FFFE90387FFFC0A39026001FF090380FF80003C014 C0020F5D6F91C7FC0207141E6F5B5F02035C6F485A02015C6F485A4CC8FC0200130EEDFE 1EED7E3C5EED7FF06F5A5E5E151F82A24B7E157F1577EDE7F0EC01C7EC038302077FEC0F 01021E7F143CEC38004A7F4A137E495A0103147F49487F49C77F131E49141F017C8113FC 00074B7EB5D88003B57EA295C7FC3A337CB239>I97 D<137EEA0FFE121F5B12 00A35BA21201A25BA21203A25BA21207A2EBC3E0EBCFF8380FDC3EEBF81F497E01E01380 EA1FC0138015C013005AA2123EA2007E131F1580127CA2143F00FC14005AA2147EA25CA2 387801F85C495A6C485A495A6C48C7FCEA0FFCEA03F01A3578B323>I<14FCEB07FF9038 1F078090383E03C0EBFC013801F8033803F0073807E00F13C0120F391F80070091C7FC48 C8FCA35A127EA312FE5AA4007C14C0EC01E0A2EC03C06CEB0F80EC1F006C137C380F81F0 3803FFC0C648C7FC1B2278A023>III<151FED7FC0EDF0E0020113F0EC03E3A2EC07C316E0EDC1C091380FC0005DA414 1F92C7FCA45C143E90381FFFFEA3D9007EC7FC147CA414FC5CA513015CA413035CA41307 5CA3130FA25CA3131F91C8FCA35B133E1238EA7E3CA2EAFE7812FC485AEA78E0EA3FC000 0FC9FC244582B418>I<143FECFF80903803E1E6903807C0FF90380F807FEB1F00133E01 7E133F49133EA24848137EA24848137CA215FC12074913F8A21401A2D80FC013F0A21403 120715E01407140F141F3903E03FC00001137FEBF0FF38007FCF90381F0F801300141FA2 1500A25C143E1238007E137E5C00FE5B48485A387803E0387C0F80D81FFFC7FCEA07F820 317CA023>III107 D<133FEA07FF5A13FEEA007EA3137CA2 13FCA213F8A21201A213F0A21203A213E0A21207A213C0A2120FA21380A2121FA21300A2 5AA2123EA2127EA2127C1318EAFC1C133CEAF838A21378137012F013F0EAF8E01279EA3F C0EA0F00103579B314>I<2703C003F8137F3C0FF00FFE01FFC03C1E783C1F07C1E03C1C 7CF00F8F01F03B3C3DE0079E0026383FC001FC7FD97F805B007001005B5E137ED8F0FC90 380FC00100E05FD860F8148012000001021F130360491400A200034A13076049013E130F F081800007027EEC83C0051F138049017C1403A2000F02FC1407053E130049495CEF1E0E 001F01015D183C010049EB0FF0000E6D48EB03E03A227AA03F>I<3903C007F0390FF01F FC391E787C1E391C7CF01F393C3DE00F26383FC01380EB7F8000781300EA707EA2D8F0FC 131F00E01500EA60F8120000015C153E5BA20003147E157C4913FCEDF8180007153C0201 133801C013F0A2000F1578EDE070018014F016E0001FECE1C015E390C7EAFF00000E143E 26227AA02B>I<14FCEB07FF90381F07C090383E03E09038FC01F0EA01F83903F000F848 5A5B120F484813FCA248C7FCA214014814F8127EA2140300FE14F05AA2EC07E0A2007CEB 0FC01580141FEC3F006C137E5C381F01F0380F83E03803FF80D800FCC7FC1E2278A027> I<011E137C90387F81FF9039F3C387C09039E3EF03E03901E1FE01D9C1FC13F0EBC3F800 0313F0018314F814E0EA07871307000313C01200010F130316F01480A2011F130716E014 00A249EB0FC0A2013EEB1F80A2017EEB3F00017F133E5D5D9038FF81F09038FDC3E09038 F8FF80027EC7FC000190C8FCA25BA21203A25BA21207A25BB5FCA325307FA027>I<3903 C00FC0390FF03FF0391E78F078391C7DE03C393C3FC0FC00381380EB7F00007814F8D870 7E13701500EAF0FC12E0EA60F812001201A25BA21203A25BA21207A25BA2120FA25BA212 1FA290C8FC120E1E227AA020>114 DI<1303EB0F80A3131FA21400A25BA2133EA2137EA2137C387FFFF8A2B5FC3800 F800A21201A25BA21203A25BA21207A25BA2120FA25B1460001F13F014E01300130114C0 1303001E1380EB07005BEA0F1EEA07F8EA01E015307AAE19>II< D801F01538D803FC010E13FCD80F1E131E000E143E121C123C0038027E137CD8783E137C 0070163CA2017E13FCD8F07C491338EA60FCC65A0201147800014A137013F0A2020314F0 000316E001E05BA2160117C001C013C00207EB0380A29039E00FE0071700021F130E3A01 F03DF01E3A00F878F83C90393FF03FF090390FC00FC02E227AA033>119 D<13F0D803FC1307D80F1E130F000E141F121C123C0038143FD8783E133E1270A2017E13 7ED8F07C137CEA60FCC65A15FC000114F85BA21401000314F013E0A2140315E0EA07C0A2 0003130715C0EBE00F141F0001133F9038F07F8038007FEFEB1F8FEB001F1500A25C003E 133E007E137E147C5C007C5BEA7001495A38380780D83C1FC7FCEA0FFCEA07F020317AA0 25>121 D<903807801C90381FE03C90383FF038017F13789038FFF8F03901F07CE0EBE0 1F3903C003C09038800780EC0F00C7121E141C143C5C5C495AEB07C0495A011EC7FC5B5B 4913704913F0000114E0485A38078001390FC003C0381FF80790383E0F80393C1FFF0012 7838700FFE38F007F838E001E01E227CA01F>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fb cmr9 9 69 /Fb 69 124 df12 D<14C01301EB0380EB0F00130E5B133C5B5BA2485A485AA21207 5B120F90C7FC5AA2121E123EA3123C127CA55AB0127CA5123C123EA3121E121FA27E7F12 077F1203A26C7E6C7EA213787F131C7F130FEB0380EB01C01300124A79B71E>40 D<12C07E1270123C121C7E120F6C7E6C7EA26C7E6C7EA27F1378137C133C133EA2131E13 1FA37F1480A5EB07C0B0EB0F80A514005BA3131E133EA2133C137C137813F85BA2485A48 5AA2485A48C7FC120E5A123C12705A5A124A7CB71E>I<123C127EB4FCA21380A2127F12 3D1201A412031300A25A1206120E120C121C5A5A126009177A8715>44 DI<123C127E12FFA4127E123C08087A8715>I<1530157815F8A2 15F01401A215E01403A215C01407A21580140FA215005CA2143EA2143C147CA2147814F8 A25C1301A25C1303A25C1307A2495AA291C7FC5BA2131E133EA2133C137CA2137813F8A2 5B1201A25B1203A2485AA25B120FA290C8FC5AA2121E123EA2123C127CA2127812F8A25A 12601D4B7CB726>II<13 075B5B137FEA07FFB5FC13BFEAF83F1200B3B3A2497E007FB51280A319327AB126>IIII<000C14C0380FC00F90B5128015005C5C14F014C0D80C18C7FC90C8FCA9EB0F C0EB7FF8EBF07C380FC03F9038001F80EC0FC0120E000CEB07E0A2C713F01403A215F8A4 1218127E12FEA315F0140712F8006014E01270EC0FC06C131F003C14806CEB7F00380F80 FE3807FFF8000113E038003F801D347CB126>I<14FE903807FF80011F13E090383F00F0 017C13703901F801F8EBF003EA03E01207EA0FC0EC01F04848C7FCA248C8FCA35A127EEB 07F0EB1FFC38FE381F9038700F809038E007C039FFC003E0018013F0EC01F8130015FC14 00A24814FEA5127EA4127F6C14FCA26C1301018013F8000F14F0EBC0030007EB07E03903 E00FC03901F81F806CB51200EB3FFCEB0FE01F347DB126>I<1230123C003FB6FCA34814 FEA215FC0070C7123800601430157015E04814C01401EC0380C7EA07001406140E5C1418 14385CA25CA2495A1303A3495AA2130FA3131F91C7FCA25BA55BA9131C20347CB126>I< EB0FE0EB7FFC90B5FC3903F01F803907C007C0390F0003E0000EEB01F0001E1300001C14 F8003C1478A3123EA2003F14F86D13F0EBC001D81FF013E09038F803C0390FFE07803907 FF0F006C13DE6C13F87EEB3FFE8001F713C0D803E313E0D8078013F0390F007FF8001E13 1F003EEB07FC003C1303481301EC007E12F848143EA2151EA37E153C1278007C14787E6C 14F0390F8003E03907F01FC00001B5120038007FFCEB1FE01F347DB126>II< 123C127E12FFA4127E123C1200B0123C127E12FFA4127E123C08207A9F15>I<15E0A34A 7EA24A7EA34A7EA3EC0DFE140CA2EC187FA34A6C7EA202707FEC601FA202E07FECC00FA2 D901807F1507A249486C7EA301066D7EA2010E80010FB5FCA249800118C77EA24981163F A2496E7EA3496E7EA20001821607487ED81FF04A7ED8FFFE49B512E0A333367DB53A>65 DIIIIII II<017FB5FCA39038003F E0EC1FC0B3B1127EB4FCA4EC3F805A0060140000705B6C13FE6C485A380F03F03803FFC0 C690C7FC20357DB227>III< D8FFFC923801FFF86D5DA20003EFFE00D801BFED06FCA3D99F80140CA2D98FC01418A3D9 87E01430A2D983F01460A3D981F814C0A3D980FCEB0180A2027EEB0300A36E1306A26E6C 5AA36E6C5AA36E6C5AA26E6C5AA36E6C5AA3913800FD80A2037FC7FCA3486C133ED80FF0 4B7EB5011C90387FFFF8A33D337CB246>IIII82 D<90381FE00390387FFC0748B5FC3907F01FCF390F8003FF48C7FC00 3E80814880A200788000F880A46C80A27E92C7FC127F13C0EA3FF013FF6C13F06C13FF6C 14C06C14F0C680013F7F01037F9038003FFF140302001380157F153FED1FC0150F12C0A2 1507A37EA26CEC0F80A26C15006C5C6C143E6C147E01C05B39F1FC03F800E0B512E0011F 138026C003FEC7FC22377CB42B>I<007FB712FEA390398007F001D87C00EC003E007816 1E0070160EA20060160600E01607A3481603A6C71500B3AB4A7E011FB512FCA330337DB2 37>IIII89 D91 D93 D97 DII<153FEC0FFFA3EC007F81AEEB07F0EB3FFCEBFC0F3901F003 BF3907E001FF48487E48487F8148C7FCA25A127E12FEAA127E127FA27E6C6C5BA26C6C5B 6C6C4813803A03F007BFFC3900F81E3FEB3FFCD90FE0130026357DB32B>III<151F90391FC07F809039FFF8E3C03901F07FC73907E03F033A0FC01F 83809039800F8000001F80EB00074880A66C5CEB800F000F5CEBC01F6C6C48C7FCEBF07C 380EFFF8380C1FC0001CC9FCA3121EA2121F380FFFFEECFFC06C14F06C14FC4880381F00 01003EEB007F4880ED1F8048140FA56C141F007C15006C143E6C5C390FC001F83903F007 E0C6B51280D91FFCC7FC22337EA126>III107 DI<2703F01FE013FF00FF 90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F02807F7003F387FD803FE147049 6D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFFF0A33C217EA041>I<3903F0 1FC000FFEB7FF09038F1E0FC9038F3807C3907F7007EEA03FE497FA25BA25BB3486CEB7F 80B538C7FFFCA326217EA02B>II<3903F03F8000FFEBFFE09038F3C0F89038F7007ED807FE7F6C48EB1F804914C049 130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16C06D131F6DEB3F80160001FF13FC 9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB512C0A325307EA02B>I<903807F0 0390383FFC07EBFC0F3901F8038F3807E001000F14DF48486CB4FC497F123F90C77E5AA2 5A5AA9127FA36C6C5B121F6D5B000F5B3907E003BF3903F0073F3800F81EEB3FF8EB0FE0 90C7FCAAED7F8091380FFFFCA326307DA029>I<3803E07C38FFE1FF9038E38F809038E7 1FC0EA07EEEA03ECA29038FC0F8049C7FCA35BB2487EB512E0A31A217FA01E>II<1330A51370A313F0A21201A2120312 07381FFFFEB5FCA23803F000AF1403A814073801F806A23800FC0EEB7E1CEB1FF8EB07E0 182F7FAD1E>IIIII<3A7FFF807FF8A33A07F8001FC00003EC0F8000 01EC070015066C6C5BA26D131C017E1318A26D5BA2EC8070011F1360ECC0E0010F5BA290 3807E180A214F3010390C7FC14FBEB01FEA26D5AA31478A21430A25CA214E05CA2495A12 78D8FC03C8FCA21306130EEA701CEA7838EA1FF0EA0FC025307F9F29>I<003FB512F0A2 EB000F003C14E00038EB1FC00030EB3F800070137F1500006013FE495A13035CC6485A49 5AA2495A495A49C7FC153013FE485A12035B48481370485A001F14604913E0485A387F00 0348130F90B5FCA21C207E9F22>II E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fc cmtt10 10 15 /Fc 15 120 df<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B708A2C>46 D<1507ED0F80151FA2153F16005D157E15FE5D14015D14035DA214075D140F5D141F5D14 3F92C7FC5C147E14FE5CA213015C13035C13075C130F5C131F5CA2133F91C8FC5B137E13 FE5B12015B12035B12075BA2120F5B121F5B123F90C9FC5A127E12FE5AA25A127821417B B92C>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00C7FCAE121FEA3F80EA7FC0 EAFFE0A5EA7FC0EA3F80EA1F000B2470A32C>58 D98 D100 DI103 DI<397FF01FE039FFF87FFC9038F9FFFE01FB7F6CB6FC00019038F03F80ECC0 1F02807FEC000F5B5BA25BB3267FFFE0B5FCB500F11480A36C01E0140029247FA32C> 110 DI<397FF01FE039FFF8FFF801FB13FE90B6FC6C158000019038F07FC0913880 1FE091380007F049EB03F85BED01FC491300A216FE167EA816FE6D14FCA2ED01F86D1303 6DEB07F0150F9138801FE09138E07FC091B51280160001FB5B01F813F8EC3FC091C8FCAD 387FFFE0B57EA36C5B27367FA32C>I114 D<90387FF8700003B512F8120F5A5A387FC00F387E00034813 015AA36CEB00F0007F140013F0383FFFC06C13FE6CEBFF80000314E0C66C13F8010113FC EB0007EC00FE0078147F00FC143F151F7EA26C143F6D133E6D13FE9038F007FC90B5FC15 F815E000F8148039701FFC0020247AA32C>I<131E133FA9007FB6FCB71280A36C1500D8 003FC8FCB1ED03C0ED07E0A5EC800F011FEB1FC0ECE07F6DB51280160001035B6D13F890 38003FE0232E7EAD2C>I119 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fd cmti8 8 3 /Fd 3 111 df99 D101 D<3907801FC0391FE07FF0393DF1E0F83938F3C0783978FF 007CEA70FEA2EAF1FCEAE1F8A25B00C314FC00035C5BA2000713015D13C01403000FECE0 C015E1EB800715C1001F14C3020F13800100138391380787005A158E003EEB03FC001CEB 00F0221F7A9D28>110 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fe cmbx10 10 1 /Fe 1 124 df123 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Ff cmsy10 10 1 /Ff 1 16 df15 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fg cmr8 8 32 /Fg 32 122 df13 D<003C13F0387E01F838FF03FCA2EB83FEA2EA7F81383D80F600011306A30003130EEB00 0CA248131C00061318000E13384813704813E0387001C00060138017157EAD23>34 D<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A5A5A126009157A 8714>44 D<123C127E12FFA4127E123C08087A8714>46 D<4A7E4A7EA34A7EA24A7EA3EC 1BF81419A2EC30FCA2EC70FEEC607EA24A7EA349486C7EA2010380EC000FA201066D7EA3 496D7EA2011FB57EA29038180001496D7EA349147EA201E0147F4980A20001ED1F801203 000716C0D80FF0EC3FE0D8FFFC0103B5FCA2302F7EAE35>65 D73 D80 D<90383F80303901FFF0703807C07C390F000EF0001E13 074813034813011400127000F01470A315307EA26C1400127E127FEA3FE013FE381FFFE0 6C13FC6C13FF00011480D8003F13E013039038003FF0EC07F81401140015FC157C12C015 3CA37EA215787E6C14706C14F06CEB01E039F78003C039E3F00F0038E07FFE38C00FF01E 2F7CAD27>83 D<007FB712F8A29039000FC003007C150000701638A200601618A200E016 1CA248160CA5C71500B3A94A7E011FB512E0A22E2D7EAC33>I<0003130C48131C000E13 384813704813E0003013C0EA700100601380A2EAE00300C01300A300DE137800FF13FCEB 83FEA2EA7F81A2383F00FC001E1378171577AD23>92 D<13FF000713C0380F01F0381C00 F8003F137C80A2143F001E7FC7FCA4EB07FF137F3801FE1FEA07F0EA1FC0EA3F80EA7F00 127E00FE14065AA3143F7E007E137F007FEBEF8C391F83C7FC390FFF03F83901FC01E01F 207D9E23>97 DI I<15F8141FA214011400ACEB0FE0EB7FF83801F81E3803E0073807C003380F8001EA1F00 481300123E127EA25AA9127C127EA2003E13017EEB8003000F13073903E00EFC3A01F03C FFC038007FF090391FC0F800222F7EAD27>II< EB03F0EB0FFCEB3E1EEB7C3F13F8EA01F0A23803E00C1400AAB512E0A23803E000B3A648 7E387FFF80A2182F7FAE16>I<013F13F89038FFC3FE3903E1FF1E3807807C000F140C39 1F003E00A2003E7FA76C133EA26C6C5A00071378380FE1F0380CFFC0D81C3FC7FC90C8FC A3121E121F380FFFF814FF6C14C04814F0391E0007F848130048147C12F848143CA46C14 7C007C14F86CEB01F06CEB03E03907E01F803901FFFE0038003FF01F2D7E9D23>III 107 DI<2607C07FEB07 F03BFFC3FFC03FFC903AC783F0783F3C0FCE01F8E01F803B07DC00F9C00F01F8D9FF8013 C04990387F000749137EA249137CB2486C01FEEB0FE03CFFFE0FFFE0FFFEA2371E7E9D3C >I<3807C0FE39FFC3FF809038C703E0390FDE01F0EA07F8496C7EA25BA25BB2486C487E 3AFFFE1FFFC0A2221E7E9D27>II<3807C0FE39FFC7 FF809038CF03E0390FDC01F03907F800FC49137E49133E49133FED1F80A3ED0FC0A8151F 1680A2ED3F00A26D137E6D137C5D9038FC01F09038CE07E09038C7FF80D9C1FCC7FC01C0 C8FCA9487EEAFFFEA2222B7E9D27>I<380781F838FF87FEEB8E3FEA0F9CEA07B813B0EB F01EEBE000A45BB0487EB5FCA2181E7E9D1C>114 D<3801FE183807FFB8381E01F8EA3C 00481378481338A21418A27E7EB41300EA7FF06CB4FC6C13C06C13F0000113F838001FFC 130138C0007E143EA26C131EA27EA26C133CA26C137838FF01F038E3FFC000C013001720 7E9E1C>I<1360A413E0A312011203A21207121FB512F0A23803E000AF1418A714383801 F03014703800F860EB3FE0EB0F80152A7FA81B>II<3AFFFC01FFC0A23A0FE0007E000007147C15380003143015706C6C1360A26C6C5B A390387C0180A26D48C7FCA2EB3F07EB1F06A2EB0F8CA214DCEB07D8A2EB03F0A36D5AA2 6D5A221E7F9C25>I<3BFFFC3FFE07FFA23B0FE003F001F801C09038E000F00007010114 E0812603E00314C0A2913807F8012701F006781380A29039F80E7C030000D90C3C1300A2 90397C181E06A2151F6D486C5AA2168C90391F600798A216D890390FC003F0A36D486C5A A36DC75A301E7F9C33>I<3AFFFC01FFC0A23A0FE0007E000007147C1538000314306D13 7000011460A26C6C5BA2EBFC01017C5BEB7E03013E90C7FCA2EB1F06A2148EEB0F8CA2EB 07D8A2EB03F0A36D5AA26D5AA2495AA2130391C8FC1278EAFC06A25B131CEA7838EA7070 EA3FE0EA0F80222B7F9C25>121 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fh cmr6 6 2 /Fh 2 51 df<13E01201120712FF12F91201B3A7487EB512C0A212217AA01E>49 DI E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fi cmr7 7 2 /Fi 2 51 df<13381378EA01F8121F12FE12E01200B3AB487EB512F8A215267BA521>49 D<13FF000313E0380E03F0381800F848137C48137E00787F12FC6CEB1F80A4127CC7FC15 005C143E147E147C5C495A495A5C495A010EC7FC5B5B903870018013E0EA018039030003 0012065A001FB5FC5A485BB5FCA219267DA521>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fj cmti10 10 26 /Fj 26 119 df12 D<150C151C153815F0EC01E0EC03C0EC0780EC0F00141E5C147C5C5C495A1303 495A5C130F49C7FCA2133EA25BA25BA2485AA212035B12075BA2120F5BA2121FA290C8FC A25AA2123EA2127EA2127CA412FC5AAD1278A57EA3121C121EA2120E7EA26C7E6C7EA212 001E5274BD22>40 D<140C140E80EC0380A2EC01C015E0A2140015F0A21578A4157C153C AB157CA715FCA215F8A21401A215F0A21403A215E0A21407A215C0140F1580A2141F1500 A2143EA25CA25CA2495AA2495A5C1307495A91C7FC5B133E133C5B5B485A12035B48C8FC 120E5A12785A12C01E527FBD22>I44 D<120EEA3F80127F12FFA31300127E123C0909778819>46 D48 D<16E0ED01F01503A3150716E0A3 150F16C0A2151F1680A2ED3F00A3157EA2157C15FC5D14015D14035D14075D140F5D141F 92C7FC143EA25CECF81C153E903801F07EEB03E014C090380780FE130F49485A133EEB7C 01137801F05BEA01E03803C003EA0FFE391FFFC3F04813FB267C01FF13403AF0003FFFE0 00601307C71400EC0FE05DA3141F5DA3143F92C7FCA4143E141C24487DB72A>52 D<14F8EB07FE90381F871C90383E03FE137CEBF801120148486C5A485A120FEBC001001F 5CA2EA3F801403007F5C1300A21407485C5AA2140F5D48ECC1C0A2141F15831680143F15 87007C017F1300ECFF076C485B9038038F8E391F0F079E3907FE03FC3901F000F0222677 A42A>97 D<133FEA1FFFA3C67E137EA313FE5BA312015BA312035BA31207EBE0F8EBE7FE 9038EF0F80390FFC07C013F89038F003E013E0D81FC013F0A21380A2123F1300A214075A 127EA2140F12FE4814E0A2141F15C05AEC3F80A215005C147E5C387801F8007C5B383C03 E0383E07C0381E1F80D80FFEC7FCEA01F01C3B77B926>I<147F903803FFC090380FC1E0 90381F0070017E13784913383901F801F83803F003120713E0120FD81FC013F091C7FC48 5AA2127F90C8FCA35A5AA45AA3153015381578007C14F0007EEB01E0003EEB03C0EC0F80 6CEB3E00380F81F83803FFE0C690C7FC1D2677A426>II<147F903803FFC090380F C1E090383F00F0017E13785B485A485A485A120F4913F8001F14F0383F8001EC07E0EC1F 80397F81FF00EBFFF891C7FC90C8FC5A5AA55AA21530007C14381578007E14F0003EEB01 E0EC03C06CEB0F806CEB3E00380781F83803FFE0C690C7FC1D2677A426>IIIII107 D109 DI<147F903803FFC090380FC1F090381F 00F8017E137C5B4848137E4848133E0007143F5B120F485AA2485A157F127F90C7FCA215 FF5A4814FEA2140115FC5AEC03F8A2EC07F015E0140F007C14C0007EEB1F80003EEB3F00 147E6C13F8380F83F03803FFC0C648C7FC202677A42A>I<9039078007C090391FE03FF0 90393CF0787C903938F8E03E9038787FC00170497EECFF00D9F0FE148013E05CEA01E113 C15CA2D80003143FA25CA20107147FA24A1400A2010F5C5E5C4B5A131F5EEC80035E013F 495A6E485A5E6E48C7FC017F133EEC70FC90387E3FF0EC0F8001FEC9FCA25BA21201A25B A21203A25B1207B512C0A3293580A42A>I<3903C003F0390FF01FFC391E783C0F381C7C 703A3C3EE03F8038383FC0EB7F800078150000701300151CD8F07E90C7FCEAE0FE5BA212 0012015BA312035BA312075BA3120F5BA3121F5BA3123F90C9FC120E212679A423>114 D<14FE903807FF8090380F83C090383E00E04913F00178137001F813F00001130313F0A2 15E00003EB01C06DC7FC7FEBFFC06C13F814FE6C7F6D13807F010F13C01300143F141F14 0F123E127E00FE1480A348EB1F0012E06C133E00705B6C5B381E03E06CB45AD801FEC7FC 1C267AA422>II<13F8D8 03FEEB01C0D8078FEB03E0390E0F8007121E121C0038140F131F007815C01270013F131F 00F0130000E015805BD8007E133FA201FE14005B5D120149137EA215FE120349EBFC0EA2 0201131E161C15F813E0163CD9F003133814070001ECF07091381EF8F03A00F83C78E090 393FF03FC090390FC00F00272679A42D>I<01F0130ED803FC133FD8071EEB7F80EA0E1F 121C123C0038143F49131F0070140FA25BD8F07E140000E08013FEC6485B150E12015B15 1E0003141C5BA2153C000714385B5DA35DA24A5A140300035C6D48C7FC0001130E3800F8 3CEB7FF8EB0FC0212679A426>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fk cmr10 10 77 /Fk 77 123 df11 DIII<001C131C007F137F39FF80FF80A26D13C0A3007F137F001C 131C00001300A40001130101801380A20003130301001300485B00061306000E130E485B 485B485B006013601A197DB92A>34 D<121C127FEAFF80A213C0A3127F121C1200A41201 1380A2120313005A1206120E5A5A5A12600A1979B917>39 D<146014E0EB01C0EB0380EB 0700130E131E5B5BA25B485AA2485AA212075B120F90C7FCA25A121EA2123EA35AA65AB2 127CA67EA3121EA2121F7EA27F12077F1203A26C7EA26C7E1378A27F7F130E7FEB0380EB 01C0EB00E01460135278BD20>I<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7EA21378 A2137C133C133E131EA2131F7FA21480A3EB07C0A6EB03E0B2EB07C0A6EB0F80A31400A2 5B131EA2133E133C137C1378A25BA2485A485AA2485A48C7FC120E5A5A5A5A5A13527CBD 20>I<121C127FEAFF80A213C0A3127F121C1200A412011380A2120313005A1206120E5A 5A5A12600A19798817>44 DI<121C127FEAFF80A5EA7F00121C 0909798817>I<150C151E153EA2153C157CA2157815F8A215F01401A215E01403A215C0 1407A21580140FA215005CA2141E143EA2143C147CA2147814F8A25C1301A25C1303A249 5AA25C130FA291C7FC5BA2131E133EA2133C137CA2137813F8A25B1201A25B1203A25B12 07A25B120FA290C8FC5AA2121E123EA2123C127CA2127812F8A25A12601F537BBD2A>I< EB03F8EB1FFF90387E0FC09038F803E03901E000F0484813780007147C48487FA248C77E A2481580A3007EEC0FC0A600FE15E0B3007E15C0A4007F141F6C1580A36C15006D5B000F 143EA26C6C5B6C6C5B6C6C485A6C6C485A90387E0FC0D91FFFC7FCEB03F8233A7DB72A> I III<1538A2157815F8 A2140114031407A2140F141F141B14331473146314C313011483EB030313071306130C13 1C131813301370136013C01201EA038013005A120E120C5A123812305A12E0B712F8A3C7 3803F800AB4A7E0103B512F8A325397EB82A>I<0006140CD80780133C9038F003F890B5 FC5D5D158092C7FC14FC38067FE090C9FCABEB07F8EB3FFE9038780F803907E007E09038 8003F0496C7E12066E7EC87EA28181A21680A4123E127F487EA490C71300485C12E00060 5C12700030495A00385C6C1303001E495A6C6C485A3907E03F800001B5C7FC38007FFCEB 1FE0213A7CB72A>II<12301238123E003FB612E0A3 16C05A168016000070C712060060140E5D151800E01438485C5D5DC712014A5A92C7FC5C 140E140C141C5CA25CA214F0495AA21303A25C1307A2130FA3495AA3133FA5137FA96DC8 FC131E233B7BB82A>III<121C12 7FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A5EA7F00121C092479A317>I<121C12 7FEAFF80A5EA7F00121CC7FCB2121C127F5A1380A4127F121D1201A412031300A25A1206 A2120E5A121812385A1260093479A317>I<1538A3157CA315FEA34A7EA34A6C7EA20207 7FEC063FA2020E7FEC0C1FA2021C7FEC180FA202387FEC3007A202707FEC6003A202C07F 1501A2D901807F81A249C77F167FA20106810107B6FCA24981010CC7121FA2496E7EA349 6E7EA3496E7EA213E0707E1201486C81D80FFC02071380B56C90B512FEA3373C7DBB3E> 65 DI<913A01FF800180020FEBE003027F13F8903A01FF807E0790 3A03FC000F0FD90FF0EB039F4948EB01DFD93F80EB00FF49C8127F01FE153F1201484815 1F4848150FA248481507A2485A1703123F5B007F1601A35B00FF93C7FCAD127F6DED0180 A3123F7F001F160318006C7E5F6C7E17066C6C150E6C6C5D00001618017F15386D6C5CD9 1FE05C6D6CEB03C0D903FCEB0F80902701FF803FC7FC9039007FFFFC020F13F002011380 313D7BBA3C>IIII III<013FB512E0A39039001FFC00EC07F8B3B3A3123FEA7F80EAFFC0A44A5A1380D8 7F005B0070131F6C5C6C495A6C49C7FC380781FC3801FFF038007F80233B7DB82B>IIIIIII 82 DI<003FB812E0A3D9C003EB001F273E0001FE130348EE01F00078160000701770A300 601730A400E01738481718A4C71600B3B0913807FF80011FB612E0A335397DB83C>IIII<007FB590383FFFFCA3C601F801071380D97FE0D903FCC7FC013FEC01F06D 6C5C5F6D6C5C6D6C13034CC8FC6D6C1306160E6D6C5B6DEB8018163891387FC0306E6C5A 16E06E6C5A91380FF18015FB6EB4C9FC5D14036E7EA26E7F6F7EA24B7E15DF9138019FF0 9138038FF8150F91380607FC91380E03FE140C4A6C7EEC38000230804A6D7E14E04A6D7E 49486D7E130391C76C7E01066E7E130E010C6E7E011C1401013C8101FE822607FF800107 13E0B500E0013FEBFF80A339397EB83E>II91 D<390180018000031303 3907000700000E130E485B0018131800381338003013300070137000601360A200E013E0 485BA400CE13CE39FF80FF806D13C0A3007F137FA2393F803F80390E000E001A1974B92A >II97 DIIII<147E903803FF8090380FC1E0EB1F8790383F0FF0137EA213 FCA23901F803C091C7FCADB512FCA3D801F8C7FCB3AB487E387FFFF8A31C3B7FBA19>I< ED03F090390FF00FF890393FFC3C3C9039F81F707C3901F00FE03903E007C03A07C003E0 10000FECF000A248486C7EA86C6C485AA200075C6C6C485A6D485A6D48C7FC38073FFC38 060FF0000EC9FCA4120FA213C06CB512C015F86C14FE6CECFF804815C03A0F80007FE048 C7EA0FF0003E140348140116F8481400A56C1401007C15F06CEC03E0003F1407D80F80EB 0F80D807E0EB3F003901FC01FC39007FFFF0010790C7FC26387EA52A>IIIIII<2703F00FF0EB1FE000FFD93FFCEB7FF8913AF03F01E07E903BF1C01F8380 3F3D0FF3800FC7001F802603F70013CE01FE14DC49D907F8EB0FC0A2495CA3495CB3A348 6C496CEB1FE0B500C1B50083B5FCA340257EA445>I<3903F00FF000FFEB3FFCECF03F90 39F1C01F803A0FF3800FC03803F70013FE496D7EA25BA35BB3A3486C497EB500C1B51280 A329257EA42E>II<3903F01FE000FFEB7FF89038F1E07E9039F3801F 803A0FF7000FC0D803FEEB07E049EB03F04914F849130116FC150016FEA3167FAA16FEA3 ED01FCA26DEB03F816F06D13076DEB0FE001F614C09039F7803F009038F1E07E9038F0FF F8EC1FC091C8FCAB487EB512C0A328357EA42E>II<3807E01F00FFEB7FC09038E1E3 E09038E387F0380FE707EA03E613EE9038EC03E09038FC0080491300A45BB3A2487EB512 F0A31C257EA421>II<1318A51338A31378A313F8120112031207001FB5FCB6FCA2D801F8C7FCB215 C0A93800FC011580EB7C03017E13006D5AEB0FFEEB01F81A347FB220>IIIIII<003FB5 12FCA2EB8003D83E0013F8003CEB07F00038EB0FE012300070EB1FC0EC3F800060137F15 0014FE495AA2C6485A495AA2495A495A495AA290387F000613FEA2485A485A0007140E5B 4848130C4848131CA24848133C48C7127C48EB03FC90B5FCA21F247EA325>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fl cmbx10 10.95 41 /Fl 41 123 df45 DI<140F143F5C495A130F48B5FCB6FCA313F7EA FE071200B3B3A8007FB612F0A5243C78BB34>49 D<903803FF80013F13F890B512FE0003 6E7E4881260FF80F7F261FC0037F4848C67F486C6D7E6D6D7E487E6D6D7EA26F1380A46C 5A6C5A6C5A0007C7FCC8FC4B1300A25E153F5E4B5AA24B5A5E4A5B4A5B4A48C7FC5D4A5A EC1FE04A5A4A5A9139FF000F80EB01FC495A4948EB1F00495AEB1F8049C7FC017E5C5B48 B7FC485D5A5A5A5A5AB7FC5EA4293C7BBB34>I<903801FFE0010F13FE013F6D7E90B612 E04801817F3A03FC007FF8D807F06D7E82D80FFC131F6D80121F7FA56C5A5E6C48133FD8 01F05CC8FC4B5A5E4B5A4A5B020F5B902607FFFEC7FC15F815FEEDFFC0D9000113F06E6C 7E6F7E6F7E6F7E1780A26F13C0A217E0EA0FC0487E487E487E487EA317C0A25D49158012 7F49491300D83FC0495A6C6C495A3A0FFE01FFF86CB65A6C5DC61580013F49C7FC010313 E02B3D7CBB34>II<16FC A24B7EA24B7EA34B7FA24B7FA34B7FA24B7FA34B7F157C03FC7FEDF87FA2020180EDF03F 0203804B7E02078115C082020F814B7E021F811500824A81023E7F027E81027C7FA202FC 814A147F49B77EA34982A2D907E0C7001F7F4A80010F835C83011F8391C87E4983133E83 017E83017C81B500FC91B612FCA5463F7CBE4F>65 DI68 DI< B912FEA48426003FFEC77E170F1703170084A284F01F80A3180FA2EE07C0A2F007C0A404 0F90C7FCA2161F163F16FF91B6FCA54AC6FC163F161F160FA21607A693C9FCACB712E0A5 3A3D7DBC42>I72 DI76 D78 DII<903A03FFC001C0011FEBF803017FEBFE 0748B6128F4815DF48010013FFD80FF8130F48481303497F4848EB007F127F49143F161F 12FF160FA27F1607A27F7F01FC91C7FCEBFF806C13F8ECFFC06C14FCEDFF806C15E016F8 6C816C816C816C16806C6C15C07F010715E0EB007F020714F0EC003F1503030013F8167F 163F127800F8151FA2160FA27EA217F07E161F6C16E06D143F01E015C001F8EC7F8001FE EB01FF9026FFE00713004890B55A486C14F8D8F81F5CD8F00314C027E0003FFEC7FC2D40 7ABE3A>83 D<003FB912FCA5903BFE003FFE003FD87FF0EE0FFE01C0160349160190C715 00197E127EA2007C183EA400FC183F48181FA5C81600B3AF010FB712F8A5403D7CBC49> I86 DI<903807FFC0013F13F848B6FC48812607FE037F 260FF8007F6DEB3FF0486C806F7EA36F7EA26C5A6C5AEA01E0C8FC153F91B5FC130F137F 3901FFFE0F4813E0000F1380381FFE00485A5B485A12FF5BA4151F7F007F143F6D90387B FF806C6C01FB13FE391FFF07F36CEBFFE100031480C6EC003FD91FF890C7FC2F2B7DA933 >97 D<13FFB5FCA512077EAFEDFFE0020713FC021FEBFF80027F80DAFF8113F09139FC00 3FF802F06D7E4A6D7E4A13074A80701380A218C082A318E0AA18C0A25E1880A218005E6E 5C6E495A6E495A02FCEB7FF0903AFCFF01FFE0496CB55AD9F01F91C7FCD9E00713FCC700 0113C033407DBE3A>IIIII<903A03FF80 07F0013F9038F83FF8499038FCFFFC48B712FE48018313F93A07FC007FC34848EB3FE100 1FEDF1FC4990381FF0F81700003F81A7001F5DA26D133F000F5D6C6C495A3A03FF83FF80 91B5C7FC4814FC01BF5BD80F03138090CAFCA2487EA27F13F06CB6FC16F016FC6C15FF17 806C16C06C16E01207001F16F0393FE000034848EB003F49EC1FF800FF150F90C81207A5 6C6CEC0FF06D141F003F16E001F0147FD81FFC903801FFC02707FF800F13006C90B55AC6 15F8013F14E0010101FCC7FC2F3D7DA834>I<13FFB5FCA512077EAFED1FF8EDFFFE0203 6D7E4A80DA0FE07F91381F007F023C805C4A6D7E5CA25CA35CB3A4B5D8FE0FB512E0A533 3F7CBE3A>II<13FFB5FCA512077EB3B3AFB512FCA5163F7CBE1D> 108 D<01FFD91FF8ECFFC0B590B5010713F80203DAC01F13FE4A6E487FDA0FE09026F07F 077F91261F003FEBF8010007013EDAF9F0806C0178ECFBC04A6DB4486C7FA24A92C7FC4A 5CA34A5CB3A4B5D8FE07B5D8F03FEBFF80A551297CA858>I<01FFEB1FF8B5EBFFFE0203 6D7E4A80DA0FE07F91381F007F0007013C806C5B4A6D7E5CA25CA35CB3A4B5D8FE0FB512 E0A533297CA83A>II<01FFEBFFE0 B5000713FC021FEBFF80027F80DAFF8113F09139FC007FF8000701F06D7E6C496D7E4A13 0F4A6D7E1880A27013C0A38218E0AA4C13C0A318805E18005E6E5C6E495A6E495A02FCEB FFF0DAFF035B92B55A029F91C7FC028713FC028113C00280C9FCACB512FEA5333B7DA83A >I<3901FE01FE00FF903807FF804A13E04A13F0EC3F1F91387C3FF8000713F8000313F0 EBFFE0A29138C01FF0ED0FE091388007C092C7FCA391C8FCB3A2B6FCA525297DA82B> 114 D<90383FFC1E48B512BE000714FE5A381FF00F383F800148C7FC007E147EA200FE14 3EA27E7F6D90C7FC13F8EBFFE06C13FF15C06C14F06C806C806C806C80C61580131F1300 020713C014000078147F00F8143F151F7EA27E16806C143F6D140001E013FF9038F803FE 90B55A15F0D8F87F13C026E00FFEC7FC222B7DA929>III121 D<003FB612F8A4D9F80113 F001C014E0495A494813C04A1380007E15005C4A5A007C5C147F4A5A495B5DC65A495B49 5BA249EB007C495A5C137F494813FC484913F85C5A48EBC0011480481403481300484813 0749131F007FECFFF0B7FCA426287DA72E>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fm cmtt12 12 14 /Fm 14 116 df<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B6C8A33>46 D64 D97 DI100 DI103 D<1570EC01FCA2EC03FEA3EC01FCA2EC00701500AA90383FFFFC4913 FE90B5FCA27F7F90C7FCB3B3A9140115FCA21218007EEB03F81407B414F0140F9038803F E090B512C06C14806C14006C5B6C13F8000113E01F557BBD33>106 D<383FFFFC487FB5FCA27E7EC7FCB3B3AD003FB612F84815FCB712FEA26C15FC6C15F827 3D7ABC33>108 D<4AB4FC263FFC0713C0267FFE1F13F000FF017F7F91B5FC6CB67E6CEC 07FEC6EBF801ECF0004A7F4A7F5CA291C7FCA35BB3A43B3FFFF80FFFFC486D4813FEB56C 4813FFA26C496C13FE6C496C13FC302C7FAB33>110 DII114 D<90381FFE0F90B5EA8F80000314FF 120F5A5AEBF007387F800190C7FC00FE147F5A153FA37E007FEC1F0001C090C7FCEA3FF8 EBFFC06C13FF6C14E0000314F8C680011F13FF01001480020713C0EC007FED1FE0007C14 0F00FEEC07F01503A27EA27F15076D14E06D130F6DEB3FC09038FE01FF90B61280160000 FD5C00FC14F8D8F83F13E0D8780790C7FC242E79AC33>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fn cmr12 12 39 /Fn 39 122 df<140C141C1438147014E0EB01C01303EB0780EB0F00A2131E5BA25B13F8 5B12015B1203A2485AA3485AA348C7FCA35AA2123EA2127EA4127CA312FCB3A2127CA312 7EA4123EA2123FA27EA36C7EA36C7EA36C7EA212017F12007F13787FA27F7FA2EB0780EB 03C01301EB00E014701438141C140C166476CA26>40 D<12C07E12707E7E7E120F6C7E6C 7EA26C7E6C7EA21378137C133C133E131E131FA2EB0F80A3EB07C0A3EB03E0A314F0A213 01A214F8A41300A314FCB3A214F8A31301A414F0A21303A214E0A3EB07C0A3EB0F80A3EB 1F00A2131E133E133C137C13785BA2485A485AA2485A48C7FC120E5A5A5A5A5A16647BCA 26>I<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313 005A1206120E5A5A5A12600B1D78891B>44 D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00 0A0A78891B>46 D<16C04B7EA34B7EA34B7EA34B7EA3ED19FEA3ED30FFA203707FED607F A203E07FEDC03FA2020180ED801FA2DA03007F160FA20206801607A24A6D7EA34A6D7EA3 4A6D7EA20270810260147FA202E08191B7FCA249820280C7121FA249C87F170FA2010682 1707A2496F7EA3496F7EA3496F7EA201788313F8486C83D80FFF03037FB500E0027FEBFF C0A342477DC649>65 D67 DII73 D<010FB512FEA3D9000313806E130080B3B3 AB123F487E487EA44A5A13801300006C495A00705C6C13076C5C6C495A6CEB1F802603E0 7FC7FC3800FFFCEB1FE027467BC332>III78 D80 D<49B41303010FEBE007013F13F89039FE00FE0FD801F8131FD8 07E0EB079F49EB03DF48486DB4FC48C8FC4881003E81127E82127C00FC81A282A37E82A2 7EA26C6C91C7FC7F7FEA3FF813FE381FFFE06C13FE6CEBFFE06C14FC6C14FF6C15C0013F 14F0010F80010180D9001F7F14019138001FFF03031380816F13C0167F163F161F17E000 C0150FA31607A37EA36C16C0160F7E17806C151F6C16006C5D6D147ED8FBC05CD8F9F049 5AD8F07C495A90393FC00FE0D8E00FB51280010149C7FC39C0003FF02B487BC536>83 D<003FB912F8A3903BF0001FF8001F01806D481303003EC7150048187C0078183CA20070 181CA30060180CA5481806A5C81600B3B3A54B7EED7FFE49B77EA33F447DC346>II87 D97 D II<167FED3FFFA315018182B3EC7F80903803FF F090380FC07C90383F000E017E1307496D5AD803F87F48487F5B000F81485AA2485AA212 7FA290C8FC5AAB7E7FA2123FA26C7EA2000F5D7F6C6C5B00035C6C6C9038077F806C6C01 0E13C0013F011C13FE90380FC0F8903803FFE09026007F0013002F467DC436>IIIIII107 DII<3901FC01FE00FF903807FFC091381E07F091383801 F8000701707F0003EBE0002601FDC07F5C01FF147F91C7FCA25BA35BB3A8486CECFF80B5 D8F83F13FEA32F2C7DAB36>II<3903F803 F000FFEB1FFCEC3C3EEC707F0007EBE0FF3803F9C000015B13FBEC007E153C01FF13005B A45BB3A748B4FCB512FEA3202C7DAB26>114 D<90383FE0183901FFFC383907E01F7839 0F0003F8001E1301481300007C1478127800F81438A21518A27EA27E6C6C13006C7E13FC 383FFFE06C13FC6C13FF6C14C06C14E0C614F0011F13F81300EC0FFC140300C0EB01FE14 00157E7E153EA27EA36C143C6C147C15786C14F86CEB01F039F38003E039F1F00F8039E0 7FFE0038C00FF01F2E7DAC26>I<1306A5130EA4131EA3133E137EA213FE12011207001F B512F0B6FCA2C648C7FCB3A4150CAA017E131C017F1318A26D133890381F8030ECC07090 3807E0E0903801FFC09038007F001E3E7EBC26>IIII< B539F001FFFCA3000790C7EA7FE06C48EC1F8000011600160E0000150C6D141C6D1418A2 6E1338013F1430A26D6C5BA26E13E0010F5CA26D6C485AA2ECF803010391C7FCA2903801 FC06A2ECFE0E0100130CA2EC7F18A215B8EC3FB0A2EC1FE0A36E5AA26E5AA36EC8FCA214 06A35CA25CA2123C007E5BB4FC5CA25CEAFE01387C0380D87007C9FCEA3C1EEA0FFCEA03 F02E3F7EAA33>121 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fo cmbx12 12 42 /Fo 42 122 df49 DII<163FA25E5E 5D5DA25D5D5D5DA25D92B5FCEC01F7EC03E7140715C7EC0F87EC1F07143E147E147C14F8 EB01F0EB03E0130714C0EB0F80EB1F00133E5BA25B485A485A485A120F5B48C7FC123E5A 12FCB91280A5C8000F90C7FCAC027FB61280A531417DC038>I<0007150301E0143F01FF EB07FF91B6FC5E5E5E5E5E16804BC7FC5D15E092C8FC01C0C9FCAAEC3FF001C1B5FC01C7 14C001DF14F09039FFE03FFC9138000FFE01FC6D7E01F06D13804915C0497F6C4815E0C8 FC6F13F0A317F8A4EA0F80EA3FE0487E12FF7FA317F05B5D6C4815E05B007EC74813C012 3E003F4A1380D81FC0491300D80FF0495AD807FEEBFFFC6CB612F0C65D013F1480010F01 FCC7FC010113C02D427BC038>I<4AB47E021F13F0027F13FC49B6FC01079038807F8090 390FFC001FD93FF014C04948137F4948EBFFE048495A5A1400485A120FA248486D13C0EE 7F80EE1E00003F92C7FCA25B127FA2EC07FC91381FFF8000FF017F13E091B512F89039F9 F01FFC9039FBC007FE9039FF8003FF17804A6C13C05B6F13E0A24915F0A317F85BA4127F A5123FA217F07F121FA2000F4A13E0A26C6C15C06D4913806C018014006C6D485A6C9038 E01FFC6DB55A011F5C010714C0010191C7FC9038003FF02D427BC038>I<121E121F13FC 90B712FEA45A17FC17F817F017E017C0A2481680007EC8EA3F00007C157E5E00785D1501 4B5A00F84A5A484A5A5E151FC848C7FC157E5DA24A5A14035D14074A5AA2141F5D143FA2 147F5D14FFA25BA35B92C8FCA35BA55BAA6D5A6D5A6D5A2F447AC238>II65 DII< B9FC18F018FE727E19E026003FFEC7001F13F805017F9438003FFF060F7F727F727F727F 84737E737EA2737EA2737EA21B80A2851BC0A51BE0AD1BC0A51B8061A21B006162193F62 4F5A19FF624E5B06075B4E5B063F90C7FC4DB45A050F13F8BA5A19C04EC8FC18F095C9FC 4B447CC356>III73 D78 D80 D82 DI<003FBA12E0A59026FE000FEB8003D87FE09338003FF049171F 90C71607A2007E1803007C1801A300781800A400F819F8481978A5C81700B3B3A20107B8 FCA545437CC24E>I87 D<903801FFE0011F13FE017F6D7E48B612E03A03FE007FF84848EB1FFC6D6D7E486C6D7E A26F7FA36F7F6C5A6C5AEA00F090C7FCA40203B5FC91B6FC1307013F13F19038FFFC0100 0313E0000F1380381FFE00485A5B127F5B12FF5BA35DA26D5B6C6C5B4B13F0D83FFE013E EBFFC03A1FFF80FC7F0007EBFFF86CECE01FC66CEB8007D90FFCC9FC322F7DAD36>97 DIIIIII<137C 48B4FC4813804813C0A24813E0A56C13C0A26C13806C1300EA007C90C7FCAAEB7FC0EA7F FFA512037EB3AFB6FCA518467CC520>105 D107 DI<90277F8007FEEC0FFCB590263FFFC090387FFF8092B5D8F001B512E002 816E4880913D87F01FFC0FE03FF8913D8FC00FFE1F801FFC0003D99F009026FF3E007F6C 019E6D013C130F02BC5D02F86D496D7EA24A5D4A5DA34A5DB3A7B60081B60003B512FEA5 572D7CAC5E>I<90397F8007FEB590383FFF8092B512E0028114F8913987F03FFC91388F 801F000390399F000FFE6C139E14BC02F86D7E5CA25CA35CB3A7B60083B512FEA5372D7C AC3E>II<90397FC00FF8B5 90B57E02C314E002CF14F89139DFC03FFC9139FF001FFE000301FCEB07FF6C496D13804A 15C04A6D13E05C7013F0A2EF7FF8A4EF3FFCACEF7FF8A318F017FFA24C13E06E15C06E5B 6E4913806E4913006E495A9139DFC07FFC02CFB512F002C314C002C091C7FCED1FF092C9 FCADB67EA536407DAC3E>I<90387F807FB53881FFE0028313F0028F13F8ED8FFC91389F 1FFE000313BE6C13BC14F8A214F0ED0FFC9138E007F8ED01E092C7FCA35CB3A5B612E0A5 272D7DAC2E>114 D<90391FFC038090B51287000314FF120F381FF003383FC00049133F 48C7121F127E00FE140FA215077EA27F01E090C7FC13FE387FFFF014FF6C14C015F06C14 FC6C800003806C15806C7E010F14C0EB003F020313E0140000F0143FA26C141F150FA27E A26C15C06C141FA26DEB3F8001E0EB7F009038F803FE90B55A00FC5CD8F03F13E026E007 FEC7FC232F7CAD2C>IIIII121 D E %EndDVIPSBitmapFont end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%PaperSize: A4 %%EndSetup %%Page: 1 1 1 0 bop 694 282 a Fo(T)-9 b(ransparen)m(t)38 b(Net)m(w)m(ork)e(Securit) m(y)h(P)m(olicy)e(Enforcemen)m(t)1465 523 y Fn(Angelos)d(D.)g(Kerom)m (ytis)806 639 y(Distributed)f(Systems)j(Lab,)e(Univ)m(ersit)m(y)i(of)e (P)m(ennsylv)-5 b(ania)1448 756 y Fm(angelos@openbsd.org)1591 988 y Fn(Jason)32 b(L.)h(W)-8 b(righ)m(t)912 1104 y(Net)m(w)m(ork)34 b(Securit)m(y)f(T)-8 b(ec)m(hnologies,)33 b(Inc.)44 b(\(NETSEC\))1499 1220 y Fm(jason@openbsd.org)0 1546 y Fl(Abstract)0 1913 y Fk(Recen)n(t)23 b(w)n(ork)f(in)i(the)g(area)e(of)h(net)n(w)n(ork)f (securit)n(y)-7 b(,)24 b(suc)n(h)f(as)0 2013 y(IPsec,)31 b(pro)n(vides)f(mec)n(hanisms)g(for)h(securing)f(the)i(tra\016c)0 2112 y(b)r(et)n(w)n(een)d(an)n(y)f(t)n(w)n(o)g(in)n(terconnected)h (hosts.)40 b(Ho)n(w)n(ev)n(er,)28 b(it)0 2212 y(is)34 b(not)g(alw)n(a)n(ys)f(p)r(ossible,)i(economical,)g(or)e(ev)n(en)h (practi-)0 2312 y(cal)24 b(from)g(an)h(administration)f(and)g(op)r (erational)f(p)r(oin)n(t)i(of)0 2411 y(view)34 b(to)h(upgrade)e(the)i (soft)n(w)n(are)e(and)h(con\014guration)f(of)0 2511 y(all)28 b(the)h(no)r(des)f(in)h(a)f(net)n(w)n(ork)f(to)i(supp)r(ort)f(suc)n(h)g (securit)n(y)0 2610 y(proto)r(cols.)0 2810 y(One)f(apparen)n(t)f (solution)h(to)h(this)g(problem)f(is)g(the)h(use)f(of)0 2909 y(securit)n(y)35 b(gatew)n(a)n(ys)f(that)i(apply)f(the)i(relev)-5 b(an)n(t)35 b(securit)n(y)0 3009 y(proto)r(cols)g(on)i(b)r(ehalf)g(of)g (the)g(protected)f(no)r(des,)j(under)0 3109 y(the)27 b(assumption)f(that)h(the)g(\\last)f(hop")g(b)r(et)n(w)n(een)h(the)g (se-)0 3208 y(curit)n(y)41 b(gatew)n(a)n(y)e(and)i(the)g(end)h(no)r(de) f(is)g(safe)g(without)0 3308 y(cryptograph)n(y)-7 b(.)73 b(Suc)n(h)40 b(a)g(gatew)n(a)n(y)e(can)i(b)r(e)h(set)f(to)g(en-)0 3407 y(force)31 b(sp)r(eci\014c)g(securit)n(y)g(p)r(olicies)g(for)f (di\013eren)n(t)i(t)n(yp)r(es)f(of)0 3507 y(tra\016c.)j(While)22 b(this)f(solution)g(is)g(app)r(ealing)f(in)i(static)f(sce-)0 3607 y(narios)31 b(\(suc)n(h)i(as)e(building)i(so-called)e(\\in)n (tranets"\),)i(the)0 3706 y(use)k(of)h(La)n(y)n(er-3)c(\(net)n(w)n (ork\))j(routers)f(as)h(securit)n(y)f(gate-)0 3806 y(w)n(a)n(ys)25 b(presen)n(ts)h(some)g(transparency)f(and)i(con\014guration)0 3906 y(problems)c(with)i(regards)d(to)i(p)r(eer)g(authen)n(tication)g (in)h(the)0 4005 y(automated)i(k)n(ey)g(managemen)n(t)g(proto)r(col.)0 4204 y(This)43 b(pap)r(er)g(describ)r(es)f(the)i(arc)n(hitecture)e(and) h(imple-)0 4304 y(men)n(tation)30 b(of)h(a)f(La)n(y)n(er-2)d(\(link)k (la)n(y)n(er\))e(bridge)h(with)h(ex-)0 4404 y(tensions)j(for)g (o\013ering)g(La)n(y)n(er-3)e(securit)n(y)i(services.)57 b(W)-7 b(e)0 4503 y(extend)42 b(the)g(Op)r(enBSD)h(ethernet)f(bridge)f (to)h(p)r(erform)0 4603 y(simple)33 b(IP)f(pac)n(k)n(et)g(\014ltering)g (and)h(IPsec)e(pro)r(cessing)h(for)0 4703 y(incoming)f(and)h(outgoing)e (pac)n(k)n(ets)h(on)g(b)r(ehalf)h(of)g(a)f(pro-)0 4802 y(tected)k(no)r(de,)i(completely)d(transparen)n(tly)f(to)i(b)r(oth)g (the)0 4902 y(protected)25 b(and)g(the)h(remote)f(comm)n(unication)g (endp)r(oin)n(t.)0 5001 y(The)47 b(same)f(mec)n(hanism)g(ma)n(y)g(b)r (e)h(used)f(to)h(construct)0 5101 y(\\virtual)26 b(lo)r(cal)h(area)e (net)n(w)n(orks,")h(b)n(y)g(establishing)h(IPsec)0 5201 y(tunnels)35 b(b)r(et)n(w)n(een)f(Op)r(enBSD)h(bridges)f(connected)g (geo-)0 5300 y(graphically)f(separated)g(LANs.)59 b(As)35 b(our)f(system)g(op)r(er-)0 5400 y(ates)c(in)h(the)g(link)g(la)n(y)n (er,)f(there)g(is)h(no)f(need)h(for)f(soft)n(w)n(are)2010 1546 y(or)d(con\014guration)f(c)n(hanges)g(in)i(the)g(protected)f(no)r (des.)2010 1987 y Fo(1)112 b(In)m(tro)s(duction)2010 2312 y Fk(Net)n(w)n(ork)34 b(bridges)h(are)f(simple)h(devices)g(that)h (transpar-)2010 2411 y(en)n(tly)d(connect)f(t)n(w)n(o)g(or)g(more)g (LAN)i(segmen)n(ts)e(b)n(y)g(stor-)2010 2511 y(ing)45 b(a)g(frame)g(receiv)n(ed)g(from)g(one)g(segmen)n(t)g(and)g(for-)2010 2610 y(w)n(arding)30 b(it)j(to)f(the)g(other)f(segmen)n(ts.)49 b(More)31 b(in)n(telligen)n(t)2010 2710 y(bridges)37 b(mak)n(e)f(use)i(of)f(a)h(spanning)f(tree)g(algorithm)f(to)2010 2810 y(detect)i(and)g(a)n(v)n(oid)e(lo)r(ops)h(in)h(the)h(top)r(ology) -7 b(.)66 b(W)-7 b(e)38 b(ha)n(v)n(e)2010 2909 y(implemen)n(ted)e(the)h (basic)e(form)g(of)h(an)g(ethernet)g(bridge)2010 3009 y(in)e(Op)r(enBSD)h(that)f(also)f(pro)n(vides)g(an)h(IP)f(\014ltering)h (ca-)2010 3109 y(pabilit)n(y)-7 b(.)59 b(Th)n(us,)37 b(the)e(bridge)f(can)h(b)r(e)g(used)g(to)g(pro)n(vide)2010 3208 y(a)24 b(LAN-transparen)n(t)e(\014rew)n(all)h(b)r(et)n(w)n(een)h (hosts)g(suc)n(h)g(that)2010 3308 y(no)33 b(con\014guration)f(c)n (hanges)g(are)h(needed)h(on)f(clien)n(t)h(ma-)2010 3407 y(c)n(hines,)24 b(and)f(only)g(minor)g(c)n(hanges)g(in)g(net)n(w)n(ork) f(top)r(ology)2010 3507 y(are)27 b(necessary)-7 b(.)2010 3706 y(F)g(or)35 b(this,)k(w)n(e)d(mak)n(e)f(use)h(of)g Fj(ipf,)k Fk(the)c(standard)f(pac)n(k)n(et)2010 3806 y(\014ltering)h(mec)n(hanism)g(a)n(v)-5 b(ailable.)62 b(As)36 b(ethernet)h(frames)2010 3906 y(pass)32 b(through)g(the)g (bridge,)i(they)e(are)g(examined)g(to)g(see)2010 4005 y(if)40 b(they)g(carry)e(IP)h(tra\016c.)72 b(If)40 b(not,)i(the)e (frame)f(is)g(just)2010 4105 y(bridged.)33 b(If)19 b(the)g(frame)f(do)r (es)g(con)n(tain)g(IP)f(tra\016c,)j(the)f(eth-)2010 4204 y(ernet)25 b(header)f(is)h(remo)n(v)n(ed)e(from)i(the)g(frame)g(and)f (copied.)2010 4304 y(The)34 b(resulting)e(IP)i(pac)n(k)n(et)e(is)h (passed)g(on)g(to)h Fj(ipf)p Fk(,)i(whic)n(h)2010 4404 y(noti\014es)31 b(the)g(bridge)f(whether)h(the)g(pac)n(k)n(et)f(is)h (to)g(b)r(e)g(for-)2010 4503 y(w)n(arded)42 b(or)f(dropp)r(ed.)83 b(The)42 b(ethernet)h(header)f(of)h(the)2010 4603 y(frame)29 b(under)g(examination)g(is)g(appropriately)f(mo)r(di\014ed)2010 4703 y(on)42 b(the)h(frame)g(to)f(b)r(e)h(forw)n(arded,)i(and)e(the)g (resulting)2010 4802 y(frame)27 b(is)h(then)g(bridged)f(as)g(normal.) 2010 5001 y(The)k(bridge)f(can)h(also)e(b)r(e)j(used)e(to)h(enforce)f (restrictions)2010 5101 y(on)21 b(whic)n(h)f(addresses)f(can)i(app)r (ear)f(on)g(eac)n(h)g(ethernet)h(seg-)2010 5201 y(men)n(t,)29 b(whic)n(h)g(helps)f(lo)r(calize)g(where)g(ARP)h(sp)r(o)r(o\014ng)f (at-)2010 5300 y(tac)n(ks)h(can)g(o)r(ccur.)42 b(Static)29 b(MA)n(C)h(address)e(cac)n(he)h(en)n(tries)2010 5400 y(are)k(pro)n(vided)h(so)g(hosts)f(can)h(b)r(e)h(limited)g(to)g(a)f (particu-)p eop %%Page: 2 2 2 1 bop 0 83 a Fk(lar)24 b(p)r(ort)g(and)g(malicious)g(users)g(cannot)g (force)g(the)h(bridge)0 183 y(to)g(send)g(tra\016c)g(to)g(the)g(wrong)f (segmen)n(t.)35 b(The)25 b(abilit)n(y)g(to)0 282 y(learn)20 b(MA)n(C)h(addresses)e(dynamically)h(is)h(con\014gurable)e(on)0 382 y(eac)n(h)24 b(p)r(ort)g(of)h(the)f(bridge,)h(and)f(broadcast)f (disco)n(v)n(ery)g(for)0 482 y(mac)n(hines)28 b(unkno)n(wn)f(to)h(the)h (bridge)f(can)f(b)r(e)i(toggled)e(on)0 581 y(a)h(p)r(er)f(p)r(ort)h (basis.)37 b(Additionally)-7 b(,)28 b(a)g(mec)n(hanism)f(is)h(pro-)0 681 y(vided)k(for)g(\014ltering)g(ethernet)h(frames)e(based)h(on)g (source)0 780 y(and/or)26 b(destination)h(MA)n(C)h(address.)0 980 y(This)22 b(functionalit)n(y)-7 b(,)24 b(useful)f(on)f(its)h(o)n (wn,)f(can)g(b)r(e)h(coupled)0 1079 y(with)37 b(the)f(IPsec)f([9])h (supp)r(ort)g(a)n(v)-5 b(ailable)34 b(in)j(Op)r(enBSD,)0 1179 y(to)29 b(allo)n(w)e(creation)h(of)h(virtual)f(LANs.)41 b(This)29 b(is)f(ac)n(hiev)n(ed)0 1279 y(b)n(y)22 b(o)n(v)n(erla)n (ying)e(an)j(IPsec-protected)e(virtual)h(net)n(w)n(ork)f(on)0 1378 y(the)29 b(wide)g(area)e(net)n(w)n(ork)g(\(or)g(ev)n(en)h(the)h (In)n(ternet)g(itself)6 b(\).)0 1478 y(The)24 b(c)n(hanges)e(necessary) g(to)i(the)g(bridge)g(and)f(IPsec)g(co)r(de)0 1577 y(for)38 b(this)h(w)n(ere)e(fairly)h(minimal,)j(due)e(to)f(compatibilit)n(y)0 1677 y(of)25 b(some)g(design)h(decisions)e(made)i(indep)r(enden)n(tly)g (in)g(the)0 1777 y(dev)n(elopmen)n(t)h(of)h(the)g(t)n(w)n(o)e(pac)n(k) -5 b(ages.)0 1976 y(The)38 b(enhanced)f(bridge)g(can)g(also)g(b)r(e)h (used)g(to)f(pro)n(vide)0 2076 y(transparen)n(t)32 b(IPsec)g(gatew)n(a) n(y)f(capabilit)n(y)i(for)f(a)h(host)g(or)0 2175 y(ev)n(en)28 b(a)h(net)n(w)n(ork.)39 b(In)30 b(this)f(mo)r(de,)g(the)h(bridge)e (examines)0 2275 y(transien)n(t)f(IP)h(tra\016c)f(and)h(ma)n(y)-7 b(,)28 b(dep)r(ending)g(on)g(securit)n(y)0 2374 y(p)r(olicy)-7 b(,)43 b(establish)d(IPsec)f(securit)n(y)g(asso)r(ciations)f(\(SAs\))0 2474 y(with)28 b(a)f(remote)g(host)h(pretending)f(to)h(b)r(e)g(the)g (lo)r(cal)f(com-)0 2574 y(m)n(unication)k(endp)r(oin)n(t)g(for)g(an)g (IP)g(session)1399 2544 y Fi(1)1435 2574 y Fk(.)47 b(There)31 b(are)0 2673 y(t)n(w)n(o)d(main)h(b)r(ene\014ts)h(from)f(this.)42 b(First,)29 b(this)g(allo)n(ws)f(pro-)0 2773 y(tection)g(of)f(the)h (comm)n(unications)f(of)g(a)g(host)h(or)e(net)n(w)n(ork)0 2873 y(without)h(c)n(hanges)f(to)h(the)g(protected)f(hosts)h(\(whic)n (h)g(ma)n(y)0 2972 y(not)36 b(ev)n(en)f(b)r(e)h(p)r(ossible,)h(for)e (old,)j(unsupp)r(orted,)g(or)d(ex-)0 3072 y(tremely)d(ligh)n(t)n(w)n (eigh)n(t)e(systems\).)50 b(Second,)33 b(the)f(securit)n(y)0 3171 y(gatew)n(a)n(y)i(can)j(act)f(as)g(a)g(securit)n(y)f(p)r(olicy)i (enforcer,)g(en-)0 3271 y(suring)25 b(that)h(incoming)g(and)g(outgoing) e(pac)n(k)n(ets)h(are)g(ade-)0 3371 y(quately)h(protected,)g(based)g (on)h(system)f(or)f(net)n(w)n(ork)g(p)r(ol-)0 3470 y(icy)-7 b(.)0 3906 y Fl(1.1)105 b(P)m(ap)s(er)35 b(Organization)0 4341 y Fk(Section)29 b(2)h(brie\015y)f(describ)r(es)g(the)h(bridge)e (itself)i(and)g(the)0 4441 y(\014ltering)35 b(of)g(frames)f(con)n (taining)h(IP)f(tra\016c.)59 b(Section)35 b(3)0 4540 y(describ)r(es)f(the)g(use)g(of)h(IPsec)e(in)i(conjunction)f(with)h (the)0 4640 y(bridge)25 b(to)g(build)h(virtual)f(LANs)h(and)f (transparen)n(t)f(IPsec)0 4739 y(gatew)n(a)n(ys.)34 b(Section)27 b(4)g(discusses)f(op)r(en)h(ends)g(and)g(future)0 4839 y(w)n(ork,)f(and)i(Section)f(5)g(concludes)g(the)h(pap)r(er.)p 0 5165 744 4 v 92 5219 a Fh(1)127 5242 y Fg(The)k(term)f(\\IP)i (session")f(is)f(used)i(here)f(lo)r(osely)g(to)g(imply)f(a)0 5321 y(pac)n(k)n(et)25 b(\015o)n(w)f(b)r(et)n(w)n(een)h(t)n(w)n(o)f (hosts,)g(one)g(of)f(whic)n(h)g(is)g(on)h(one)g(of)f(the)0 5400 y(lo)r(cal)h(segmen)n(ts)f(and)i(is)e(\\protected")j(or)d(\\sup)r (ervised".)2010 83 y Fo(2)112 b(Bridge)2010 419 y Fk(Bridges)38 b(are)g(devices)g(that)h(op)r(erate)f(at)h(the)g(data)g(link)2010 518 y(la)n(y)n(er,)49 b(t)n(ying)d(together)g(di\013eren)n(t)g (ethernet)h(\(or)f(other)2010 618 y(LAN\))30 b(segmen)n(ts.)40 b(In)29 b(Op)r(enBSD,)h(the)f(bridge)f(is)h(imple-)2010 718 y(men)n(ted)21 b(as)e(a)h(pseudo-net)n(w)n(ork)e(in)n(terface)h (inside)i(the)f(k)n(er-)2010 817 y(nel.)35 b(Real)21 b(ethernet)g(in)n(terfaces)f(are)g(added)h(to)g(the)h(bridge)2010 917 y(in)n(terface)k(as)g(\\bridge)g(mem)n(b)r(ers,")g(and)g(for)h(the) g(purp)r(ose)2010 1016 y(of)c(using)g(IPsec)f(with)i(the)f(bridge,)h Fj(enc)f Fk(in)n(terfaces)f(can)h(b)r(e)2010 1116 y(added)34 b(on)g(as)f(mem)n(b)r(ers.)56 b(The)34 b Fj(enc)h Fk(in)n(terfaces)e (con)n(tain)2010 1216 y(the)c(securit)n(y)e(asso)r(ciation)g(\(SA\))i (for)f(comm)n(unication)f(to)2010 1315 y(remote)19 b(LANs.)35 b(In)20 b(all)f(ethernet)h(driv)n(ers)e(under)i(BSD,)g(re-)2010 1415 y(ceiv)n(ed)26 b(frames)g(are)f(assem)n(bled)h(in)n(to)g(m)n(bufs) h([11)o(],)g(a)g(data)2010 1515 y(structure)i(that)g(pro)n(vides)f(for) h(easy)f(insertion)h(and)g(dele-)2010 1614 y(tion)40 b(of)f(data)g(with)i(little)f(or)f(no)g(data)g(cop)n(ying.)72 b(The)2010 1714 y(ethernet)24 b(header)g(is)g(remo)n(v)n(ed)f(and)h (passed)g(along)f(with)h(a)2010 1813 y(reference)40 b(to)h(the)g (receiving)e(in)n(terface)i(and)f(the)i(m)n(buf)2010 1913 y(con)n(taining)g(the)h(frame)f(data)g(to)g Fj(ether)p 3341 1913 26 4 v 31 w(input\(\))p Fk(.)82 b(The)2010 2013 y(bridge)36 b(in)n(tercepts)g(the)i(frame)e(early)f(in)i(this)g (function,)2010 2112 y(after)27 b(a)g(small)h(amoun)n(t)f(of)g(b)r(o)r (okk)n(eeping)g(is)g(p)r(erformed.)2010 2312 y(On)c(en)n(try)f(to)h (the)g(bridge)f(co)r(de,)i(the)f(frame)g(is)f(c)n(hec)n(k)n(ed)g(to) 2010 2411 y(see)31 b(if)g(it)h(is)f(a)f(broadcast,)h(m)n(ulticast,)g (or)g(unicast)g(frame)2010 2511 y(\(Figure)45 b(1\).)89 b(Broadcast)43 b(and)i(m)n(ulticast)g(frames)f(are)2010 2610 y(copied)37 b(and)g(queued)g(on)g(the)g(bridge)g(\(so)g(they)g (can)g(b)r(e)2010 2710 y(forw)n(arded)29 b(in)i(all)f(mem)n(b)r(er)h (in)n(terfaces\),)g(and)g(the)g(origi-)2010 2810 y(nal)23 b(frame)f(is)g(returned)h(to)f Fj(ether)p 3065 2810 V 31 w(input\(\),)i Fk(so)e(that)h(it)g(can)2010 2909 y(b)r(e)31 b(pro)r(cessed)f(b)n(y)g(the)i(bridge)e(mac)n(hine)g(itself.)47 b(Unicast)2010 3009 y(frames)24 b(are)f(c)n(hec)n(k)n(ed)g(to)h(see)g (if)h(the)g(destination)f(matc)n(hes)2010 3109 y(an)n(y)h(of)h(the)g (MA)n(C)g(addresses)e(of)i(p)r(orts)f(on)h(the)g(bridge;)g(if)2010 3208 y(so,)34 b(the)g(frame)f(is)g(returned)g(to)g Fj(ether)p 3255 3208 V 31 w(input\(\))g Fk(for)g(lo)r(cal)2010 3308 y(pro)r(cessing.)64 b(If)37 b(the)h(frame)e(is)h(unicast)g(and)g (addressed)2010 3407 y(to)44 b(the)h(bridge)e(mac)n(hine,)48 b(the)c(frame)g(is)g(queued)g(and)2010 3507 y(not)37 b(passed)f(bac)n(k)g(to)g Fj(ether)p 2939 3507 V 31 w(input\(\))p Fk(.)64 b(When)38 b(a)e(pac)n(k)n(et)2010 3607 y(is)28 b(queued,)h(a)f(soft)n(w)n(are)f(in)n(terrupt)h(is)h(sc)n(heduled)f(so) g(that)2010 3706 y(bridge)23 b(pro)r(cessing)g(will)h(o)r(ccur)g (outside)g(of)g(the)g(in)n(terrupt)2010 3806 y(con)n(text)j(of)h(the)g (ethernet)f(card.)2010 4005 y(The)e(bulk)g(of)g(the)g(frame)g(pro)r (cessing)e(o)r(ccurs)h(in)h(the)g(soft-)2010 4105 y(w)n(are)k(in)n (terrupt)g(handler,)h Fj(bridgeintr\(\))h Fk(\(see)f(Figure)f(2\).)2010 4204 y(This)41 b(routine)g(lo)r(ops)g(through)g(eac)n(h)f(bridge)h(in)n (terface,)2010 4304 y(pulling)28 b(frames)f(from)g(their)h(input)h (queues.)37 b(The)27 b(source)2010 4404 y(ethernet)34 b(address)e(and)h(source)f(in)n(terface)h(are)g(recorded)2010 4503 y(in)n(to)24 b(the)g(bridge's)f(address)g(cac)n(he)g(for)g(eac)n (h)h(frame)f(\(after)2010 4603 y(some)j(address)f(sp)r(o)r(of-c)n(hec)n (king\).)35 b(The)26 b(destination)g(eth-)2010 4703 y(ernet)g(address)f (is)h(lo)r(ok)n(ed)f(up)h(in)g(the)h(cac)n(he;)f(if)g(the)h(in)n(ter-) 2010 4802 y(face)22 b(returned)g(b)n(y)g(the)h(lo)r(okup)f(is)g(the)h (same)f(as)g(the)h(in)n(ter-)2010 4902 y(face)h(where)f(the)i(frame)e (originated,)h(no)g(further)g(pro)r(cess-)2010 5001 y(ing)j(is)h(done.) 36 b(If)28 b(the)g(destination)f(in)n(terface)g(di\013ers)g(from)2010 5101 y(the)h(source,)e(the)h(frame)g(m)n(ust)g(b)r(e)h(forw)n(arded)d (\(bridged\).)2010 5201 y(If)37 b(the)g(frame)f(is)g(for)g(a)g(m)n (ulticast)g(or)g(broadcast)e(desti-)2010 5300 y(nation,)26 b(the)h(frame)e(m)n(ust)i(b)r(e)f(forw)n(arded)e(to)i(all)g(mem)n(b)r (er)2010 5400 y(in)n(terfaces)34 b(of)g(the)h(bridge.)56 b(T)-7 b(o)34 b(a)n(v)n(oid)f(o)n(v)n(erloading)f Fj(enc)p eop %%Page: 3 3 3 2 bop 581 1283 a @beginspecial 0 @llx 0 @lly 325 @urx 154 @ury 3250 @rwi @setspecial %%BeginDocument: bridge1.eps %!PS-Adobe-3.0 EPSF-3.0 %%Creator: ImageMark Software Labs %%For: () () %%Title: F:\Bridge-paper\bridge1.eps %%CreationDate: () () %%BoundingBox: 0.0000 0.0000 325.0000 154.0000 %%DocumentProcessColors: Black %%ColorUsage:Color %%DocumentFonts: Helvetica %%+Helvetica-Bold %%+Helvetica-Oblique %%+Helvetica-BoldOblique %%+Times-Roman %%+Times-Bold %%+Times-Italic %%+Times-BoldItalic %%+Courier %%+Courier-Bold %%+Courier-Oblique %%+Courier-BoldOblique %%+Symbol %%DocumentSuppliedResources: procset Adobe_packedarray 2.0 0 %%+ procset Adobe_cmykcolor 1.1 0 %%+ procset Adobe_cshow 1.1 0 %%+ procset Adobe_customcolor 1.0 0 %%+ procset Adobe_typography_AI3 1.0 0 %%+ procset Adobe_Illustrator_AI3 1.0 0 %AI3_ColorUsage: Color %AI3_TemplateBox: 0.0000 0.0000 325.0000 154.0000 %AI3_TileBox: 0.0000 0.0000 325.0000 154.0000 %AI3_DocumentPreview: None %%Template: %%PageOrigin:0.0000 0.0000 %%EndComments %%BeginProlog %%BeginResource: procset Adobe_packedarray 2.0 0 %%Title: (Packed Array Operators) %%Version: 2.0 %%CreationDate: (8/2/90) () %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) userdict /Adobe_packedarray 5 dict dup begin put /initialize { /packedarray where { pop } { Adobe_packedarray begin Adobe_packedarray { dup xcheck { bind } if userdict 3 1 roll put } forall end } ifelse } def /terminate { } def /packedarray { array astore readonly } def /setpacking { pop } def /currentpacking { false } def currentdict readonly pop end %%EndResource Adobe_packedarray /initialize get exec %%Title: (CMYK Color Operators) %%Version: 1.1 %%CreationDate: (1/23/89) () %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_cmykcolor 4 dict dup begin put /initialize { /setcmykcolor where { pop } { userdict /Adobe_cmykcolor_vars 2 dict dup begin put /_setrgbcolor /setrgbcolor load def /_currentrgbcolor /currentrgbcolor load def Adobe_cmykcolor begin Adobe_cmykcolor { dup xcheck { bind } if pop pop } forall end end Adobe_cmykcolor begin } ifelse } def /terminate { currentdict Adobe_cmykcolor eq { end } if } def /setcmykcolor { 1 sub 4 1 roll 3 { 3 index add neg dup 0 lt { pop 0 } if 3 1 roll } repeat Adobe_cmykcolor_vars /_setrgbcolor get exec pop } def /currentcmykcolor { Adobe_cmykcolor_vars /_currentrgbcolor get exec 3 { 1 sub neg 3 1 roll } repeat 0 } def currentdict readonly pop end setpacking %%EndResource %%BeginResource: procset Adobe_cshow 1.1 0 %%Title: (cshow Operator) %%Version: 1.1 %%CreationDate: (1/23/89) () %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_cshow 3 dict dup begin put /initialize { /cshow where { pop } { userdict /Adobe_cshow_vars 1 dict dup begin put /_cshow {} def Adobe_cshow begin Adobe_cshow { dup xcheck { bind } if userdict 3 1 roll put } forall end end } ifelse } def /terminate { } def /cshow { exch Adobe_cshow_vars exch /_cshow exch put { 0 0 Adobe_cshow_vars /_cshow get exec } forall } def currentdict readonly pop end setpacking %%EndResource %%BeginResource: procset Adobe_customcolor 1.0 0 %%Title: (Custom Color Operators) %%Version: 1.0 %%CreationDate: (5/9/88) () %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_customcolor 5 dict dup begin put /initialize { /setcustomcolor where { pop } { Adobe_customcolor begin Adobe_customcolor { dup xcheck { bind } if pop pop } forall end Adobe_customcolor begin } ifelse } def /terminate { currentdict Adobe_customcolor eq { end } if } def /findcmykcustomcolor { 5 packedarray } def /setcustomcolor { exch aload pop pop 4 { 4 index mul 4 1 roll } repeat 5 -1 roll pop setcmykcolor } def /setoverprint { pop } def currentdict readonly pop end setpacking %%EndResource %%BeginResource: procset Adobe_typography_AI3 1.0 0 %%Title: (Typography Operators)%%Version: 1.0 %%CreationDate:(5/31/90) () %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_typography_AI3 46 dict dup begin put /initialize { /TZ where { pop } { Adobe_typography_AI3 begin Adobe_typography_AI3 { dup xcheck { bind } if pop pop } forall end Adobe_typography_AI3 begin } ifelse } def /terminate { currentdict Adobe_typography_AI3 eq { end } if } def /modifyEncoding { /_tempEncode exch ddef /_pntr 0 ddef { counttomark -1 roll dup type dup /marktype eq { pop pop exit } { /nametype eq { _tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll put } { /_pntr exch ddef } ifelse } ifelse } loop _tempEncode } def /TE { StandardEncoding 256 array copy modifyEncoding /_nativeEncoding exch def } def /TZ { /_useNativeEncoding exch def pop pop findfont dup length 2 add dict begin mark exch { 1 index /FID ne { def } if cleartomark mark } forall pop /FontName exch def counttomark 0 eq { Encoding StandardEncoding eq 1 _useNativeEncoding eq and { /Encoding _nativeEncoding def } if cleartomark } { /Encoding load 256 array copy modifyEncoding /Encoding exch def } ifelse FontName currentdict end definefont pop } def /tr { _ax _ay 3 2 roll } def /trj { _cx _cy _sp _ax _ay 6 5 roll } def /a0 { /Tx { dup currentpoint 3 2 roll tr _psf newpath moveto tr _ctm _pss } ddef /Tj { dup currentpoint 3 2 roll trj _pjsf newpath moveto trj _ctm _pjss } ddef } def /a1 { W B } def /e0 { /Tx { tr _psf } ddef /Tj { trj _pjsf } ddef } def /e1 { W F } def /i0 { /Tx { tr sp } ddef /Tj { trj jsp } ddef } def /o0 { /Tx { tr sw rmoveto } ddef /Tj { trj swj rmoveto } ddef } def /r0 { /Tx { tr _ctm _pss } ddef /Tj { trj _ctm _pjss } ddef } def /r1 { W S } def /To { pop _ctm currentmatrix pop } def /TO { Te _ctm setmatrix newpath } def /Tp { pop _tm astore pop _ctm setmatrix 2 dict begin /W {} def /h {} def } def /TP { end iTm 0 0 moveto } def /Tr { Te currentpoint newpath moveto dup 8 eq {pop 0} {dup 9 eq {pop 1} if} ifelse dup /_render exch ddef _renderStart exch get load exec } def /iTm { _ctm setmatrix _tm concat 0 _rise translate _hs 1 scale } def /Te { _render -1 eq {} {_renderEnd _render get dup null ne {load exec} {pop} ifelse} ifelse /_render -1 ddef } def /Tf { dup 1000 div /_fScl exch ddef exch findfont exch scalefont setfont } def /Tl { pop 0 exch _leading astore pop } def /Tt { pop } def /TW { 3 npop } def /Tw { /_cx exch ddef } def /Tc { /_ax exch ddef } def /Ts { /_rise exch ddef currentpoint iTm moveto } def /Ti { 3 npop } def /Tz { 100 div /_hs exch ddef iTm } def /Tq { pop } def /TX {pop} def /Tk { exch pop _fScl mul neg 0 rmoveto } def /T- { _hyphen Tx } def /TS { 0 eq {Tx} {Tj} ifelse } def currentdict readonly pop end setpacking %%EndResource %%BeginResource: procset Adobe_Illustrator_AI3 1.0 0 %%Title: (Adobe Illustrator (R) Version 3.0 Full Prolog) %%Version: 1.0 %%CreationDate: (7/22/89) () %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_Illustrator_AI3 71 dict dup begin put /initialize { userdict /Adobe_Illustrator_AI3_vars 55 dict dup begin put /_lp /none def /_pf {} def /_ps {} def /_psf {} def /_pss {} def /_pjsf {} def /_pjss {} def /_pola 0 def /_doClip 0 def /cf currentflat def /_tm matrix def /_renderStart [/e0 /r0 /a0 /o0 /i0 /i0 /i0 /i0] def /_renderEnd [null null null null /e1 /r1 /a1 /clip] def /_render -1 def /_rise 0 def /_ax 0 def /_ay 0 def /_cx 0 def /_cy 0 def /_leading [0 0] def /_ctm matrix def /_mtx matrix def /_sp 16#020 def /_hyphen (-) def /_fScl 0 def /_cnt 0 def /_hs 1 def /_nativeEncoding 0 def /_useNativeEncoding 0 def /_tempEncode 0 def /_pntr 0 def /Tx {} def /Tj {} def /CRender {} def /_AI3_savepage {} def /_gf null def /_cf 4 array def /_if null def /_of false def /_fc {} def /_gs null def /_cs 4 array def /_is null def /_os false def /_sc {} def /_pd 1 dict def /_ed 15 dict def /_pm matrix def /_fm null def /_fd null def /_fdd null def /_sm null def /_sd null def /_sdd null def /_i null def Adobe_Illustrator_AI3 begin Adobe_Illustrator_AI3 dup /nc get begin { dup xcheck { bind } if pop pop } forall end end end Adobe_Illustrator_AI3 begin Adobe_Illustrator_AI3_vars begin newpath } def /terminate { end end } def /_ null def /ddef { Adobe_Illustrator_AI3_vars 3 1 roll put } def /xput { dup load dup length exch maxlength eq { dup dup load dup length 2 mul dict copy def } if load begin def end } def /npop { { pop } repeat } def /sw { dup length exch stringwidth exch 5 -1 roll 3 index 1 sub mul add 4 1 roll 3 1 roll 1 sub mul add } def /swj { dup 4 1 roll dup length exch stringwidth exch 5 -1 roll 3 index 1 sub mul add 4 1 roll 3 1 roll 1 sub mul add 6 2 roll /_cnt 0 ddef {1 index eq {/_cnt _cnt 1 add ddef} if} forall pop exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop } def /ss { 4 1 roll { 2 npop (0) exch 2 copy 0 exch put pop gsave false charpath currentpoint 4 index setmatrix stroke grestore moveto 2 copy rmoveto } exch cshow 3 npop } def /jss { 4 1 roll { 2 npop (0) exch 2 copy 0 exch put gsave _sp eq { exch 6 index 6 index 6 index 5 -1 roll widthshow currentpoint } { false charpath currentpoint 4 index setmatrix stroke }ifelse grestore moveto 2 copy rmoveto } exch cshow 6 npop } def /sp { { 2 npop (0) exch 2 copy 0 exch put pop false charpath 2 copy rmoveto } exch cshow 2 npop } def /jsp { { 2 npop (0) exch 2 copy 0 exch put _sp eq { exch 5 index 5 index 5 index 5 -1 roll widthshow } { false charpath }ifelse 2 copy rmoveto } exch cshow 5 npop } def /pl { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform } def /setstrokeadjust where {pop true setstrokeadjust /c { curveto } def /C /c load def /v { currentpoint 6 2 roll curveto } def /V /v load def /y { 2 copy curveto } def /Y /y load def /l { lineto } def /L /l load def /m { moveto } def } { /c { pl curveto } def /C /c load def /v { currentpoint 6 2 roll pl curveto } def /V /v load def /y { pl 2 copy curveto } def /Y /y load def /l { pl lineto } def /L /l load def /m { pl moveto } def } ifelse /d { setdash } def /cf {} def /i { dup 0 eq { pop cf } if setflat } def /j { setlinejoin } def /J { setlinecap } def /M { setmiterlimit } def /w { setlinewidth } def /H {} def /h { closepath } def /N { _pola 0 eq { _doClip 1 eq {clip /_doClip 0 ddef} if newpath } { /CRender {N} ddef }ifelse } def /n {N} def /F { _pola 0 eq { _doClip 1 eq { gsave _pf grestore clip newpath /_lp /none ddef _fc /_doClip 0 ddef } { _pf }ifelse } { /CRender {F} ddef }ifelse } def /f { closepath F } def /S { _pola 0 eq { _doClip 1 eq { gsave _ps grestore clip newpath /_lp /none ddef _sc /_doClip 0 ddef } { _ps }ifelse } { /CRender {S} ddef }ifelse } def /s { closepath S } def /B { _pola 0 eq { _doClip 1 eq gsave F grestore { gsave S grestore clip newpath /_lp /none ddef _sc /_doClip 0 ddef } { S }ifelse } { /CRender {B} ddef }ifelse } def /b { closepath B } def /W { /_doClip 1 ddef } def /* { count 0 ne { dup type (stringtype) eq {pop} if } if _pola 0 eq {newpath} if } def /u {} def /U {} def /q {_pola 0 eq {gsave} if } def /Q { _pola 0 eq {grestore} if } def /*u { _pola 1 add /_pola exch ddef } def /*U { _pola 1 sub /_pola exch ddef _pola 0 eq {CRender} if } def /D {pop} def /*w {} def /*W {} def /` { /_i save ddef 6 1 roll 4 npop concat userdict begin /showpage {} def false setoverprint pop } def /~ { end _i restore } def /@ {} def /& {} def /O { 0 ne /_of exch ddef /_lp /none ddef } def /R { 0 ne /_os exch ddef /_lp /none ddef } def /g { /_gf exch ddef /_fc { _lp /fill ne { _of setoverprint _gf setgray /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /G { /_gs exch ddef /_sc { _lp /stroke ne { _os setoverprint _gs setgray /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /k { _cf astore pop /_fc { _lp /fill ne { _of setoverprint _cf aload pop setcmykcolor /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /K { _cs astore pop /_sc { _lp /stroke ne { _os setoverprint _cs aload pop setcmykcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /x { /_gf exch ddef findcmykcustomcolor /_if exch ddef /_fc { _lp /fill ne { _of setoverprint _if _gf 1 exch sub setcustomcolor /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /X { /_gs exch ddef findcmykcustomcolor /_is exch ddef /_sc { _lp /stroke ne { _os setoverprint _is _gs 1 exch sub setcustomcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /dp { dup null eq { pop _dp 0 ne { 0 1 _dp 1 sub _dl mod { _da exch get 3 get } for _dp 1 sub _dl mod 1 add packedarray _da 0 get aload pop 8 -1 roll 5 -1 roll pop 4 1 roll definepattern pop } if } { _dp 0 ne _dp _dl mod 0 eq and { null dp } if 7 packedarray _da exch _dp _dl mod exch put _dp _dl mod _da 0 get 4 get 2 packedarray /_dp _dp 1 add def } ifelse } def /E { _ed begin dup 0 get type /arraytype ne { 0 { dup 1 add index type /arraytype eq { 1 add } { exit } ifelse } loop array astore } if /_dd exch def /_ury exch def /_urx exch def /_lly exch def /_llx exch def /_n exch def /_y 0 def /_dl 4 def /_dp 0 def /_da _dl array def 0 1 _dd length 1 sub { /_d exch _dd exch get def 0 2 _d length 2 sub { /_x exch def /_c _d _x get _ ne def /_r _d _x 1 add get cvlit def _r _ ne { _urx _llx sub _ury _lly sub [1 0 0 1 0 0] [ /save cvx _llx neg _lly neg /translate cvx _c { nc /begin cvx } if _r dup type /stringtype eq { cvx } { {exec} /forall cvx } ifelse _c { /end cvx } if /restore cvx ] cvx /_fn 12 _n length add string def _y _fn cvs pop /_y _y 1 add def _fn 12 _n putinterval _fn _c false dp _d exch _x 1 add exch put } if } for } for null dp _n _dd /_pd end xput } def /fc { _fm dup concatmatrix pop } def /p { /_fm exch ddef 9 -2 roll _pm translate fc 7 -2 roll _pm scale fc 5 -1 roll _pm rotate fc 4 -2 roll exch 0 ne { dup _pm rotate fc 1 -1 _pm scale fc neg _pm rotate fc } { pop } ifelse dup _pm rotate fc exch dup sin exch cos div 1 0 0 1 0 6 2 roll _pm astore fc neg _pm rotate fc _pd exch get /_fdd exch ddef /_pf { save 0 1 _fdd length 1 sub { /_fd exch _fdd exch get ddef _fd 0 2 _fd length 2 sub { gsave 2 copy get dup _ ne { cvx exec _fc } { pop } ifelse 2 copy 1 add get dup _ ne { aload pop findfont _fm patternfill } { pop fill } ifelse grestore pop } for pop } for restore newpath } ddef /_psf { save 0 1 _fdd length 1 sub { /_fd exch _fdd exch get ddef _fd 0 2 _fd length 2 sub { gsave 2 copy get dup _ ne { cvx exec _fc } { pop } ifelse 2 copy 1 add get dup _ ne { aload pop findfont _fm 9 copy 6 npop patternashow } { pop 6 copy 3 npop ashow } ifelse grestore pop } for pop } for restore sw rmoveto } ddef /_pjsf { save 0 1 _fdd length 1 sub { /_fd exch _fdd exch get ddef _fd 0 2 _fd length 2 sub { gsave 2 copy get dup _ ne { cvx exec _fc } { pop } ifelse 2 copy 1 add get dup _ ne { aload pop findfont _fm 12 copy 6 npop patternawidthshow } { pop 9 copy 3 npop awidthshow } ifelse grestore pop } for pop } for restore swj rmoveto } ddef /_lp /none ddef } def /sc { _sm dup concatmatrix pop } def /P { /_sm exch ddef 9 -2 roll _pm translate sc 7 -2 roll _pm scale sc 5 -1 roll _pm rotate sc 4 -2 roll exch 0 ne { dup _pm rotate sc 1 -1 _pm scale sc neg _pm rotate sc } { pop } ifelse dup _pm rotate sc exch dup sin exch cos div 1 0 0 1 0 6 2 roll _pm astore sc neg _pm rotate sc _pd exch get /_sdd exch ddef /_ps { save 0 1 _sdd length 1 sub { /_sd exch _sdd exch get ddef _sd 0 2 _sd length 2 sub { gsave 2 copy get dup _ ne { cvx exec _sc } { pop } ifelse 2 copy 1 add get dup _ ne { aload pop findfont _sm patternstroke } { pop stroke } ifelse grestore pop } for pop } for restore newpath } ddef /_pss { save 0 1 _sdd length 1 sub { /_sd exch _sdd exch get ddef _sd 0 2 _sd length 2 sub { gsave 2 copy get dup _ ne { cvx exec _sc } { pop } ifelse 2 copy 1 add get dup _ ne { aload pop findfont _sm 10 copy 6 npop patternashowstroke } { pop 7 copy 3 npop ss } ifelse grestore pop } for pop } for restore pop sw rmoveto } ddef /_pjss { save 0 1 _sdd length 1 sub { /_sd exch _sdd exch get ddef _sd 0 2 _sd length 2 sub { gsave 2 copy get dup _ ne { cvx exec _sc } { pop } ifelse 2 copy 1 add get dup _ ne { aload pop findfont _sm 13 copy 6 npop patternawidthshowstroke } { pop 10 copy 3 npop jss } ifelse grestore pop } for pop } for restore pop swj rmoveto } ddef /_lp /none ddef } def /A { pop } def /nc 3 dict def nc begin /setgray { pop } bind def /setcmykcolor { 4 npop } bind def /setcustomcolor { 2 npop } bind def currentdict readonly pop end /Z {findfont begin currentdict dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /FontName exch def dup length 0 ne {/Encoding Encoding 256 array copy def 0 exch {dup type /nametype eq {Encoding 2 index 2 index put pop 1 add} {exch pop} ifelse} forall} if pop currentdict dup end end /FontName get exch definefont pop} bind def currentdict readonly pop end setpacking /annotatepage { } def %%EndResource %%EndProlog %%BeginSetup Adobe_cshow /initialize get exec Adobe_customcolor /initialize get exec Adobe_typography_AI3 /initialize get exec Adobe_Illustrator_AI3 /initialize get exec %%BeginEncoding:_Helvetica Helvetica [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Helvetica/Helvetica Z %%EndEncoding %%BeginEncoding:_Helvetica-Bold Helvetica-Bold [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Helvetica-Bold/Helvetica-Bold Z %%EndEncoding %%BeginEncoding:_Helvetica-Oblique Helvetica-Oblique [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Helvetica-Oblique/Helvetica-Oblique Z %%EndEncoding %%BeginEncoding:_Helvetica-BoldOblique Helvetica-BoldOblique [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Helvetica-BoldOblique/Helvetica-BoldOblique Z %%EndEncoding %%BeginEncoding:_Times-Roman Times-Roman [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Times-Roman/Times-Roman Z %%EndEncoding %%BeginEncoding:_Times-Bold Times-Bold [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Times-Bold/Times-Bold Z %%EndEncoding %%BeginEncoding:_Times-Italic Times-Italic [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Times-Italic/Times-Italic Z %%EndEncoding %%BeginEncoding:_Times-BoldItalic Times-BoldItalic [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Times-BoldItalic/Times-BoldItalic Z %%EndEncoding %%BeginEncoding:_Courier Courier [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Courier/Courier Z %%EndEncoding %%BeginEncoding:_Courier-Bold Courier-Bold [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Courier-Bold/Courier-Bold Z %%EndEncoding %%BeginEncoding:_Courier-Oblique Courier-Oblique [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Courier-Oblique/Courier-Oblique Z %%EndEncoding %%BeginEncoding:_Courier-BoldOblique Courier-BoldOblique [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Courier-BoldOblique/Courier-BoldOblique Z %%EndEncoding %%BeginEncoding:_Symbol Symbol [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Symbol/Symbol Z %%EndEncoding %%EndSetup u 0.000 0.000 0.000 0.000 k [] 0 d 0.000 0.000 0.000 1.000 K 1 j 121.6800 90.4800 m 252.2400 90.4800 L 252.2400 153.6000 L 121.6800 153.6000 L 121.6800 90.4800 L F U u [1 2 ] 0 d 0.000 0.000 0.000 1.000 K 1 J 121.6800 90.4800 m 252.2400 90.4800 L 252.2400 153.6000 L 121.6800 153.6000 L 121.6800 90.4800 L S U u 0.000 0.000 0.000 0.000 k [] 0 d 0.2400 95.0400 m 72.2400 95.0400 L 72.2400 113.0400 L 0.2400 113.0400 L 0.2400 95.0400 L B U 0 To 1.0000 0.0000 0.0000 1.0000 7.6800 101.7600 0 Tp TP /_Helvetica 7.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Ethernet Driver\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k 0.000 0.000 0.000 1.000 K 1 j 0.2400 54.4800 m 72.2400 54.4800 L 72.2400 72.4800 L 0.2400 72.4800 L 0.2400 54.4800 L B U 0 To 1.0000 0.0000 0.0000 1.0000 11.7600 61.2000 0 Tp TP /_Helvetica 7.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (ether_input\(\)\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 1.000 K 1 j 36.2400 95.0400 m 36.2400 77.5200 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 39.1200 78.0000 m 36.2400 72.4800 L 33.6000 78.0000 L 39.1200 78.0000 L F U u 0.000 0.000 0.000 1.000 K 72.2400 68.1600 m 121.4400 68.1600 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 120.7200 70.8000 m 126.2400 68.1600 L 120.7200 65.2800 L 120.7200 70.8000 L F U u 0.000 0.000 0.000 0.000 k 0.000 0.000 0.000 1.000 K 82.8000 83.0400 m 82.8000 69.6000 L 115.9200 69.6000 L 115.9200 83.0400 L 82.8000 83.0400 L F U 0 To 1.0000 0.0000 0.0000 1.0000 83.5200 73.4400 0 Tp TP /_Helvetica 6.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (all frames\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 1.000 K 1 j 77.0400 59.0400 m 126.2400 59.0400 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 77.7600 56.4000 m 72.2400 59.0400 L 77.7600 61.9200 L 77.7600 56.4000 L F U u 0.000 0.000 0.000 0.000 k 0.000 0.000 0.000 1.000 K 75.3600 49.9200 m 75.3600 24.4800 L 123.1200 24.4800 L 123.1200 49.9200 L 75.3600 49.9200 L F U 0 To 1.0000 0.0000 0.0000 1.0000 76.0800 40.3200 0 Tp TP /_Helvetica 6.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (broadcast and\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 79.6800 28.3200 0 Tp TP /_Helvetica 6.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (local frames\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k 0.000 0.000 0.000 1.000 K 1 j 126.2400 54.4800 m 198.2400 54.4800 L 198.2400 72.4800 L 126.2400 72.4800 L 126.2400 54.4800 L B U 0 To 1.0000 0.0000 0.0000 1.0000 135.6000 61.2000 0 Tp TP /_Helvetica 7.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (bridge_input\(\)\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k 0.000 0.000 0.000 1.000 K 1 j 315.3600 45.6000 m 318.0000 46.0800 L 320.6400 47.2800 L 322.5600 49.2000 L 323.7600 51.8400 L 324.2400 54.4800 L 324.2400 72.4800 L 323.7600 75.3600 L 322.5600 78.0000 L 320.6400 79.9200 L 318.0000 81.1200 L 315.3600 81.6000 L 261.3600 81.6000 L 258.4800 81.1200 L 255.8400 79.9200 L 253.9200 78.0000 L 252.7200 75.3600 L 252.2400 72.4800 L 252.2400 54.4800 L 252.7200 51.8400 L 253.9200 49.2000 L 255.8400 47.2800 L 258.4800 46.0800 L 261.3600 45.6000 L 315.3600 45.6000 L B U 0 To 1.0000 0.0000 0.0000 1.0000 260.1600 70.8000 0 Tp TP /_Helvetica 7.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Frame queued,\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 263.5200 61.2000 0 Tp TP /_Helvetica 7.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (soft interrupt\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 268.8000 51.6000 0 Tp TP /_Helvetica 7.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (scheduled\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 1.000 K 1 j 198.2400 63.6000 m 247.4400 63.6000 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 246.7200 66.2400 m 252.2400 63.6000 L 246.7200 60.7200 L 246.7200 66.2400 L F U u 0.000 0.000 0.000 0.000 k 0.000 0.000 0.000 1.000 K 196.8000 49.9200 m 196.8000 24.4800 L 253.6800 24.4800 L 253.6800 49.9200 L 196.8000 49.9200 L F U 0 To 1.0000 0.0000 0.0000 1.0000 202.0800 40.3200 0 Tp TP /_Helvetica 6.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (broadcast and\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 197.5200 28.3200 0 Tp TP /_Helvetica 6.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k ( non-local frames\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k 0.000 0.000 0.000 1.000 K 1 j 0.2400 131.0400 m 72.2400 131.0400 L 72.2400 149.0400 L 0.2400 149.0400 L 0.2400 131.0400 L B U 0 To 1.0000 0.0000 0.0000 1.0000 19.9200 137.7600 0 Tp TP /_Helvetica 7.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Ethernet\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 1.000 K 1 j 36.2400 131.0400 m 36.2400 117.8400 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 39.1200 118.5600 m 36.2400 113.0400 L 33.6000 118.5600 L 39.1200 118.5600 L F U u 0.000 0.000 0.000 1.000 K 36.2400 54.4800 m 36.2400 27.8400 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 39.1200 28.5600 m 36.2400 23.0400 L 33.6000 28.5600 L 39.1200 28.5600 L F U u 0.000 0.000 0.000 0.000 k 0.000 0.000 0.000 1.000 K 0.2400 0.4800 m 72.2400 0.4800 L 72.2400 23.0400 L 0.2400 23.0400 L 0.2400 0.4800 L B U 0 To 1.0000 0.0000 0.0000 1.0000 22.0800 14.1600 0 Tp TP /_Helvetica 7.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Layer-3\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 18.2400 4.5600 0 Tp TP /_Helvetica 7.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (Protocols\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k 0.000 0.000 0.000 1.000 K 1 j 126.2400 131.0400 m 198.2400 131.0400 L 198.2400 149.0400 L 126.2400 149.0400 L 126.2400 131.0400 L B U 0 To 1.0000 0.0000 0.0000 1.0000 141.1200 137.7600 0 Tp TP /_Helvetica 7.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (IPsec \(enc\)\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k 0.000 0.000 0.000 1.000 K 1 j 126.2400 95.0400 m 198.2400 95.0400 L 198.2400 113.0400 L 126.2400 113.0400 L 126.2400 95.0400 L B U 0 To 1.0000 0.0000 0.0000 1.0000 134.1600 101.7600 0 Tp TP /_Helvetica 7.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (etherip_input\(\)\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 1.000 K 1 j 162.2400 131.0400 m 162.2400 117.8400 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 165.1200 118.5600 m 162.2400 113.0400 L 159.6000 118.5600 L 165.1200 118.5600 L F U u 0.000 0.000 0.000 1.000 K 162.2400 95.0400 m 162.2400 77.5200 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 165.1200 78.0000 m 162.2400 72.4800 L 159.6000 78.0000 L 165.1200 78.0000 L F U 0 To 1.0000 0.0000 0.0000 1.0000 215.0400 124.5600 0 Tp TP /_Helvetica 7.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (IPsec\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 205.2000 114.9600 0 Tp TP /_Helvetica 7.5000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (extensions\r) Tx TO 0.000 0.000 0.000 1.000 K %%PageTrailer gsave annotatepage grestore showpage %%Trailer Adobe_Illustrator_AI3 /terminate get exec Adobe_typography_AI3 /terminate get exec Adobe_customcolor /terminate get exec Adobe_cshow /terminate get exec Adobe_packedarray /terminate get exec %%EOF %%EndDocument @endspecial 751 1466 a Fk(Figure)27 b(1:)36 b(F)-7 b(rame)27 b(\015o)n(w)g(from)h(driv)n(er)e(to)h(bridge)g(and)h(la)n(y)n(er-3)d (proto)r(cols.)0 1814 y(in)n(terfaces)34 b(with)h(m)n(ulticast)g (tra\016c)f(from)g(fast)h(ethernet)0 1914 y(in)n(terfaces,)24 b(it)g(is)g(p)r(ossible)g(to)f(disallo)n(w)g(m)n(ulticast)h(pac)n(k)n (et)0 2013 y(and/or)19 b(frame)g(forw)n(arding)f(o)n(v)n(er)h(the)h (bridge.)34 b(Curren)n(tly)-7 b(,)0 2113 y(this)28 b(is)f(sp)r (eci\014ed)h(for)f(the)h(whole)f(bridge.)36 b(In)28 b(the)g(future,)0 2213 y(w)n(e)35 b(w)n(ould)g(lik)n(e)g(to)g(b)r(e)h(able)f(to)g(sp)r (ecify)h(this)f(on)h(a)e(p)r(er-)0 2312 y(mem)n(b)r(er)27 b(in)n(terface)g(basis.)0 2810 y Fl(2.1)105 b(La)m(y)m(er-3)35 b(Filtering)0 3308 y Fk(Before)k(frames)g(are)h(forw)n(arded,)h(they)f (are)f(\014ltered)h(b)n(y)0 3407 y(calling)28 b(one)h(of)g(the)h Fj(ipf)g Fk(routines)f(with)g(the)h(frame)f(to)g(b)r(e)0 3507 y(pro)r(cessed.)60 b(This)35 b(allo)n(ws)g(for)g(standard)f (\014ltering)i(rules)0 3607 y(to)e(b)r(e)g(applied)g(to)g(bridge)f(mem) n(b)r(er)h(in)n(terfaces)f(as)g(they)0 3706 y(w)n(ould)d(b)r(e)h(for)f (normal)g(routed)g(\014rew)n(all.)45 b(Rules)31 b(are)f(ap-)0 3806 y(plied)g(to)g(all)g(incoming)g(frames)f(that)i(con)n(tain)e(IP)h (tra\016c)0 3906 y(and)d(are)g(b)r(ound)h(to)f(eac)n(h)g(mem)n(b)r(er)h (in)n(terface.)0 4105 y(The)33 b Fj(ipf)h Fk(routines)e(exp)r(ect)h(an) f(IP)h(pac)n(k)n(et)e(to)i(b)r(e)g(passed)0 4204 y(to)j(them,)j(but)d (the)h(bridge)e(op)r(erates)g(in)h(terms)g(of)g(eth-)0 4304 y(ernet)d(frames.)55 b(The)34 b(ethernet)f(header)g(is)h(examined) f(to)0 4404 y(determine)23 b(whether)g(the)g(frame)f(con)n(tains)g(an)h (IP)f(pac)n(k)n(et.)0 4503 y(Since)27 b(there)f(are)g(t)n(w)n(o)g(p)r (ossible)g(encapsulation)g(metho)r(ds)0 4603 y(for)36 b(IP)f(o)n(v)n(er)g(ethernet,)j(b)r(oth)f(m)n(ust)f(b)r(e)g(examined)g (and)0 4703 y(the)24 b(appropriate)e(amoun)n(t)h(of)h(header)f (information)g(m)n(ust)0 4802 y(b)r(e)29 b(copied)f(and)g(remo)n(v)n (ed)e(from)i(the)h(frame,)f(lea)n(ving)f(the)0 4902 y(IP)21 b(data)f(in)n(tact.)35 b(The)21 b(resulting)g(pac)n(k)n(et)f(is)h (passed)f(to)h Fj(ipf,)0 5001 y Fk(whic)n(h)k(either)f(drops)g(the)h (pac)n(k)n(et)f(or)g(returns)g(it.)36 b(P)n(ac)n(k)n(ets)0 5101 y(that)28 b(are)e(not)h(\014ltered)g(ha)n(v)n(e)f(their)h (ethernet)h(headers)e(re-)0 5201 y(attac)n(hed)21 b(and)h(are)e (\014nally)i(forw)n(arded)e(as)h(determined)g(b)n(y)0 5300 y(the)26 b(bridge.)36 b(Using)26 b(this)g(approac)n(h,)f(w)n(e)h (a)n(v)n(oided)e(ha)n(ving)0 5400 y(to)j(mo)r(dify)i Fj(ipf)g Fk(co)r(de)e(at)g(all.)2010 1814 y Fl(2.2)105 b(La)m(y)m(er-2)35 b(Filtering)2010 2113 y Fk(In)d(addition)g(to)g(pro) n(viding)f(IP)h(\(La)n(y)n(er-3)m(\))h(\014ltering,)g(the)2010 2212 y(bridge)21 b(is)h(capable)e(of)i(\014ltering)f(pac)n(k)n(ets)g (based)g(on)g(source)2010 2312 y(and)30 b(destination)g(ethernet)g(MA)n (C)g(address.)43 b(The)30 b(\014lter-)2010 2412 y(ing)25 b(rules)g(follo)n(w)f(a)h(syn)n(tax)g(m)n(uc)n(h)g(lik)n(e)g(the)h Fj(ipf)g Fk(rules)f(and)2010 2511 y(are)35 b(applied)h(in)g(the)g (order)e(in)j(whic)n(h)e(they)h(are)f(added.)2010 2611 y(Rules)26 b(can)g(b)r(e)h(applied)f(b)r(oth)h(as)e(a)h(frame)g(is)g (receiv)n(ed)f(b)n(y)2010 2711 y(the)f(bridge)e(\(on)i(input\))g(or)f (b)r(efore)g(the)h(frame)f(is)g(sen)n(t)g(out)2010 2810 y(from)k(the)h(bridge)f(\(output\).)2010 3009 y(The)42 b(bridge)g(can)f(also)g(b)r(e)i(used)f(to)g(blo)r(c)n(k)f(all)h(non-IP) 2010 3109 y(tra\016c.)66 b(A)38 b(\015ag)f(on)g(eac)n(h)g(mem)n(b)r(er) g(in)n(terface)g(sp)r(eci\014es)2010 3209 y(whether)29 b(it)h(should)f(allo)n(w)g(non-IP)f(tra\016c)h(to)g(b)r(e)h(passed)2010 3308 y(in)c(or)e(out)i(based)f(on)g(the)h(proto)r(col)e(\014eld)i(in)g (the)g(ethernet)2010 3408 y(header.)35 b(This)23 b(allo)n(ws)e(frames)i (to)g(b)r(e)g(blo)r(c)n(k)n(ed)g(when)g(they)2010 3508 y(cannot)31 b(b)r(e)h(\014ltered)g(b)n(y)f(the)h(La)n(y)n(er-3)d(mec)n (hanisms)i(pro-)2010 3607 y(vided)g(so)f(that)h(tunnels)g(through)f (other)g(proto)r(cols)g(can-)2010 3707 y(not)25 b(b)r(e)h(created.)35 b(The)25 b(only)g(proto)r(cols)e(allo)n(w)n(ed)h(through)2010 3806 y(an)41 b(in)n(terface)g(with)i(this)f(\015ag)e(are)h(the)h(proto) r(cols)e(nec-)2010 3906 y(essary)d(for)i(IP)g(to)g(function:)60 b(IPv4,)41 b(IPv6,)g(ARP)-7 b(,)39 b(and)2010 4006 y(RARP)-7 b(.)2010 4304 y Fl(2.3)105 b(Bridge)36 b(as)f(Normal)f(Host)2010 4603 y Fk(A)e(mac)n(hine)e(acting)h(as)g(a)f(bridge)h(need)g(not)h(ha)n (v)n(e)e(an)h(IP)2010 4703 y(address.)42 b(All)31 b(of)e(the)i (\014ltering)e(pro)n(vided)g(b)n(y)h(the)g(bridge)2010 4802 y(and)f Fj(ipf)h Fk(can)f(b)r(e)g(handled)g(in)g(the)g(absence)g (of)g(an)f(IP)h(ad-)2010 4902 y(dress,)e(and)g(this)h(is)g(actually)f (an)g(easier)f(case)h(to)g(handle.)2010 5101 y(F)-7 b(or)29 b(the)i(bridge)e(mac)n(hine)g(to)h(act)g(as)f(a)h(normal)f(host,)h(in) 2010 5201 y(addition)36 b(to)g(its)g(duties)h(as)e(a)h(bridge,)h(sev)n (eral)d(c)n(hanges)2010 5300 y(w)n(ere)g(necessary)g(to)h(the)h(path)f (a)g(frame)g(tak)n(es)f(through)2010 5400 y(the)27 b(k)n(ernel.)36 b(As)26 b(discussed)g(ab)r(o)n(v)n(e,)g(unicast)g(frames)g(that)p eop %%Page: 4 4 4 3 bop 372 1258 a @beginspecial 0 @llx 0 @lly 375 @urx 151 @ury 3750 @rwi @setspecial %%BeginDocument: bridge2.eps %!PS-Adobe-3.0 EPSF-3.0 %%Creator: ImageMark Software Labs %%For: () () %%Title: F:\Bridge-paper\bridge2.eps %%CreationDate: () () %%BoundingBox: 0.0000 0.0000 375.0000 151.0000 %%DocumentProcessColors: Black %%ColorUsage:Color %%DocumentFonts: Helvetica %%+Helvetica-Bold %%+Helvetica-Oblique %%+Helvetica-BoldOblique %%+Times-Roman %%+Times-Bold %%+Times-Italic %%+Times-BoldItalic %%+Courier %%+Courier-Bold %%+Courier-Oblique %%+Courier-BoldOblique %%+Symbol %%DocumentSuppliedResources: procset Adobe_packedarray 2.0 0 %%+ procset Adobe_cmykcolor 1.1 0 %%+ procset Adobe_cshow 1.1 0 %%+ procset Adobe_customcolor 1.0 0 %%+ procset Adobe_typography_AI3 1.0 0 %%+ procset Adobe_Illustrator_AI3 1.0 0 %AI3_ColorUsage: Color %AI3_TemplateBox: 0.0000 0.0000 375.0000 151.0000 %AI3_TileBox: 0.0000 0.0000 375.0000 151.0000 %AI3_DocumentPreview: None %%Template: %%PageOrigin:0.0000 0.0000 %%EndComments %%BeginProlog %%BeginResource: procset Adobe_packedarray 2.0 0 %%Title: (Packed Array Operators) %%Version: 2.0 %%CreationDate: (8/2/90) () %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) userdict /Adobe_packedarray 5 dict dup begin put /initialize { /packedarray where { pop } { Adobe_packedarray begin Adobe_packedarray { dup xcheck { bind } if userdict 3 1 roll put } forall end } ifelse } def /terminate { } def /packedarray { array astore readonly } def /setpacking { pop } def /currentpacking { false } def currentdict readonly pop end %%EndResource Adobe_packedarray /initialize get exec %%Title: (CMYK Color Operators) %%Version: 1.1 %%CreationDate: (1/23/89) () %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_cmykcolor 4 dict dup begin put /initialize { /setcmykcolor where { pop } { userdict /Adobe_cmykcolor_vars 2 dict dup begin put /_setrgbcolor /setrgbcolor load def /_currentrgbcolor /currentrgbcolor load def Adobe_cmykcolor begin Adobe_cmykcolor { dup xcheck { bind } if pop pop } forall end end Adobe_cmykcolor begin } ifelse } def /terminate { currentdict Adobe_cmykcolor eq { end } if } def /setcmykcolor { 1 sub 4 1 roll 3 { 3 index add neg dup 0 lt { pop 0 } if 3 1 roll } repeat Adobe_cmykcolor_vars /_setrgbcolor get exec pop } def /currentcmykcolor { Adobe_cmykcolor_vars /_currentrgbcolor get exec 3 { 1 sub neg 3 1 roll } repeat 0 } def currentdict readonly pop end setpacking %%EndResource %%BeginResource: procset Adobe_cshow 1.1 0 %%Title: (cshow Operator) %%Version: 1.1 %%CreationDate: (1/23/89) () %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_cshow 3 dict dup begin put /initialize { /cshow where { pop } { userdict /Adobe_cshow_vars 1 dict dup begin put /_cshow {} def Adobe_cshow begin Adobe_cshow { dup xcheck { bind } if userdict 3 1 roll put } forall end end } ifelse } def /terminate { } def /cshow { exch Adobe_cshow_vars exch /_cshow exch put { 0 0 Adobe_cshow_vars /_cshow get exec } forall } def currentdict readonly pop end setpacking %%EndResource %%BeginResource: procset Adobe_customcolor 1.0 0 %%Title: (Custom Color Operators) %%Version: 1.0 %%CreationDate: (5/9/88) () %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_customcolor 5 dict dup begin put /initialize { /setcustomcolor where { pop } { Adobe_customcolor begin Adobe_customcolor { dup xcheck { bind } if pop pop } forall end Adobe_customcolor begin } ifelse } def /terminate { currentdict Adobe_customcolor eq { end } if } def /findcmykcustomcolor { 5 packedarray } def /setcustomcolor { exch aload pop pop 4 { 4 index mul 4 1 roll } repeat 5 -1 roll pop setcmykcolor } def /setoverprint { pop } def currentdict readonly pop end setpacking %%EndResource %%BeginResource: procset Adobe_typography_AI3 1.0 0 %%Title: (Typography Operators)%%Version: 1.0 %%CreationDate:(5/31/90) () %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_typography_AI3 46 dict dup begin put /initialize { /TZ where { pop } { Adobe_typography_AI3 begin Adobe_typography_AI3 { dup xcheck { bind } if pop pop } forall end Adobe_typography_AI3 begin } ifelse } def /terminate { currentdict Adobe_typography_AI3 eq { end } if } def /modifyEncoding { /_tempEncode exch ddef /_pntr 0 ddef { counttomark -1 roll dup type dup /marktype eq { pop pop exit } { /nametype eq { _tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll put } { /_pntr exch ddef } ifelse } ifelse } loop _tempEncode } def /TE { StandardEncoding 256 array copy modifyEncoding /_nativeEncoding exch def } def /TZ { /_useNativeEncoding exch def pop pop findfont dup length 2 add dict begin mark exch { 1 index /FID ne { def } if cleartomark mark } forall pop /FontName exch def counttomark 0 eq { Encoding StandardEncoding eq 1 _useNativeEncoding eq and { /Encoding _nativeEncoding def } if cleartomark } { /Encoding load 256 array copy modifyEncoding /Encoding exch def } ifelse FontName currentdict end definefont pop } def /tr { _ax _ay 3 2 roll } def /trj { _cx _cy _sp _ax _ay 6 5 roll } def /a0 { /Tx { dup currentpoint 3 2 roll tr _psf newpath moveto tr _ctm _pss } ddef /Tj { dup currentpoint 3 2 roll trj _pjsf newpath moveto trj _ctm _pjss } ddef } def /a1 { W B } def /e0 { /Tx { tr _psf } ddef /Tj { trj _pjsf } ddef } def /e1 { W F } def /i0 { /Tx { tr sp } ddef /Tj { trj jsp } ddef } def /o0 { /Tx { tr sw rmoveto } ddef /Tj { trj swj rmoveto } ddef } def /r0 { /Tx { tr _ctm _pss } ddef /Tj { trj _ctm _pjss } ddef } def /r1 { W S } def /To { pop _ctm currentmatrix pop } def /TO { Te _ctm setmatrix newpath } def /Tp { pop _tm astore pop _ctm setmatrix 2 dict begin /W {} def /h {} def } def /TP { end iTm 0 0 moveto } def /Tr { Te currentpoint newpath moveto dup 8 eq {pop 0} {dup 9 eq {pop 1} if} ifelse dup /_render exch ddef _renderStart exch get load exec } def /iTm { _ctm setmatrix _tm concat 0 _rise translate _hs 1 scale } def /Te { _render -1 eq {} {_renderEnd _render get dup null ne {load exec} {pop} ifelse} ifelse /_render -1 ddef } def /Tf { dup 1000 div /_fScl exch ddef exch findfont exch scalefont setfont } def /Tl { pop 0 exch _leading astore pop } def /Tt { pop } def /TW { 3 npop } def /Tw { /_cx exch ddef } def /Tc { /_ax exch ddef } def /Ts { /_rise exch ddef currentpoint iTm moveto } def /Ti { 3 npop } def /Tz { 100 div /_hs exch ddef iTm } def /Tq { pop } def /TX {pop} def /Tk { exch pop _fScl mul neg 0 rmoveto } def /T- { _hyphen Tx } def /TS { 0 eq {Tx} {Tj} ifelse } def currentdict readonly pop end setpacking %%EndResource %%BeginResource: procset Adobe_Illustrator_AI3 1.0 0 %%Title: (Adobe Illustrator (R) Version 3.0 Full Prolog) %%Version: 1.0 %%CreationDate: (7/22/89) () %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_Illustrator_AI3 71 dict dup begin put /initialize { userdict /Adobe_Illustrator_AI3_vars 55 dict dup begin put /_lp /none def /_pf {} def /_ps {} def /_psf {} def /_pss {} def /_pjsf {} def /_pjss {} def /_pola 0 def /_doClip 0 def /cf currentflat def /_tm matrix def /_renderStart [/e0 /r0 /a0 /o0 /i0 /i0 /i0 /i0] def /_renderEnd [null null null null /e1 /r1 /a1 /clip] def /_render -1 def /_rise 0 def /_ax 0 def /_ay 0 def /_cx 0 def /_cy 0 def /_leading [0 0] def /_ctm matrix def /_mtx matrix def /_sp 16#020 def /_hyphen (-) def /_fScl 0 def /_cnt 0 def /_hs 1 def /_nativeEncoding 0 def /_useNativeEncoding 0 def /_tempEncode 0 def /_pntr 0 def /Tx {} def /Tj {} def /CRender {} def /_AI3_savepage {} def /_gf null def /_cf 4 array def /_if null def /_of false def /_fc {} def /_gs null def /_cs 4 array def /_is null def /_os false def /_sc {} def /_pd 1 dict def /_ed 15 dict def /_pm matrix def /_fm null def /_fd null def /_fdd null def /_sm null def /_sd null def /_sdd null def /_i null def Adobe_Illustrator_AI3 begin Adobe_Illustrator_AI3 dup /nc get begin { dup xcheck { bind } if pop pop } forall end end end Adobe_Illustrator_AI3 begin Adobe_Illustrator_AI3_vars begin newpath } def /terminate { end end } def /_ null def /ddef { Adobe_Illustrator_AI3_vars 3 1 roll put } def /xput { dup load dup length exch maxlength eq { dup dup load dup length 2 mul dict copy def } if load begin def end } def /npop { { pop } repeat } def /sw { dup length exch stringwidth exch 5 -1 roll 3 index 1 sub mul add 4 1 roll 3 1 roll 1 sub mul add } def /swj { dup 4 1 roll dup length exch stringwidth exch 5 -1 roll 3 index 1 sub mul add 4 1 roll 3 1 roll 1 sub mul add 6 2 roll /_cnt 0 ddef {1 index eq {/_cnt _cnt 1 add ddef} if} forall pop exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop } def /ss { 4 1 roll { 2 npop (0) exch 2 copy 0 exch put pop gsave false charpath currentpoint 4 index setmatrix stroke grestore moveto 2 copy rmoveto } exch cshow 3 npop } def /jss { 4 1 roll { 2 npop (0) exch 2 copy 0 exch put gsave _sp eq { exch 6 index 6 index 6 index 5 -1 roll widthshow currentpoint } { false charpath currentpoint 4 index setmatrix stroke }ifelse grestore moveto 2 copy rmoveto } exch cshow 6 npop } def /sp { { 2 npop (0) exch 2 copy 0 exch put pop false charpath 2 copy rmoveto } exch cshow 2 npop } def /jsp { { 2 npop (0) exch 2 copy 0 exch put _sp eq { exch 5 index 5 index 5 index 5 -1 roll widthshow } { false charpath }ifelse 2 copy rmoveto } exch cshow 5 npop } def /pl { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform } def /setstrokeadjust where {pop true setstrokeadjust /c { curveto } def /C /c load def /v { currentpoint 6 2 roll curveto } def /V /v load def /y { 2 copy curveto } def /Y /y load def /l { lineto } def /L /l load def /m { moveto } def } { /c { pl curveto } def /C /c load def /v { currentpoint 6 2 roll pl curveto } def /V /v load def /y { pl 2 copy curveto } def /Y /y load def /l { pl lineto } def /L /l load def /m { pl moveto } def } ifelse /d { setdash } def /cf {} def /i { dup 0 eq { pop cf } if setflat } def /j { setlinejoin } def /J { setlinecap } def /M { setmiterlimit } def /w { setlinewidth } def /H {} def /h { closepath } def /N { _pola 0 eq { _doClip 1 eq {clip /_doClip 0 ddef} if newpath } { /CRender {N} ddef }ifelse } def /n {N} def /F { _pola 0 eq { _doClip 1 eq { gsave _pf grestore clip newpath /_lp /none ddef _fc /_doClip 0 ddef } { _pf }ifelse } { /CRender {F} ddef }ifelse } def /f { closepath F } def /S { _pola 0 eq { _doClip 1 eq { gsave _ps grestore clip newpath /_lp /none ddef _sc /_doClip 0 ddef } { _ps }ifelse } { /CRender {S} ddef }ifelse } def /s { closepath S } def /B { _pola 0 eq { _doClip 1 eq gsave F grestore { gsave S grestore clip newpath /_lp /none ddef _sc /_doClip 0 ddef } { S }ifelse } { /CRender {B} ddef }ifelse } def /b { closepath B } def /W { /_doClip 1 ddef } def /* { count 0 ne { dup type (stringtype) eq {pop} if } if _pola 0 eq {newpath} if } def /u {} def /U {} def /q {_pola 0 eq {gsave} if } def /Q { _pola 0 eq {grestore} if } def /*u { _pola 1 add /_pola exch ddef } def /*U { _pola 1 sub /_pola exch ddef _pola 0 eq {CRender} if } def /D {pop} def /*w {} def /*W {} def /` { /_i save ddef 6 1 roll 4 npop concat userdict begin /showpage {} def false setoverprint pop } def /~ { end _i restore } def /@ {} def /& {} def /O { 0 ne /_of exch ddef /_lp /none ddef } def /R { 0 ne /_os exch ddef /_lp /none ddef } def /g { /_gf exch ddef /_fc { _lp /fill ne { _of setoverprint _gf setgray /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /G { /_gs exch ddef /_sc { _lp /stroke ne { _os setoverprint _gs setgray /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /k { _cf astore pop /_fc { _lp /fill ne { _of setoverprint _cf aload pop setcmykcolor /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /K { _cs astore pop /_sc { _lp /stroke ne { _os setoverprint _cs aload pop setcmykcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /x { /_gf exch ddef findcmykcustomcolor /_if exch ddef /_fc { _lp /fill ne { _of setoverprint _if _gf 1 exch sub setcustomcolor /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /X { /_gs exch ddef findcmykcustomcolor /_is exch ddef /_sc { _lp /stroke ne { _os setoverprint _is _gs 1 exch sub setcustomcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /dp { dup null eq { pop _dp 0 ne { 0 1 _dp 1 sub _dl mod { _da exch get 3 get } for _dp 1 sub _dl mod 1 add packedarray _da 0 get aload pop 8 -1 roll 5 -1 roll pop 4 1 roll definepattern pop } if } { _dp 0 ne _dp _dl mod 0 eq and { null dp } if 7 packedarray _da exch _dp _dl mod exch put _dp _dl mod _da 0 get 4 get 2 packedarray /_dp _dp 1 add def } ifelse } def /E { _ed begin dup 0 get type /arraytype ne { 0 { dup 1 add index type /arraytype eq { 1 add } { exit } ifelse } loop array astore } if /_dd exch def /_ury exch def /_urx exch def /_lly exch def /_llx exch def /_n exch def /_y 0 def /_dl 4 def /_dp 0 def /_da _dl array def 0 1 _dd length 1 sub { /_d exch _dd exch get def 0 2 _d length 2 sub { /_x exch def /_c _d _x get _ ne def /_r _d _x 1 add get cvlit def _r _ ne { _urx _llx sub _ury _lly sub [1 0 0 1 0 0] [ /save cvx _llx neg _lly neg /translate cvx _c { nc /begin cvx } if _r dup type /stringtype eq { cvx } { {exec} /forall cvx } ifelse _c { /end cvx } if /restore cvx ] cvx /_fn 12 _n length add string def _y _fn cvs pop /_y _y 1 add def _fn 12 _n putinterval _fn _c false dp _d exch _x 1 add exch put } if } for } for null dp _n _dd /_pd end xput } def /fc { _fm dup concatmatrix pop } def /p { /_fm exch ddef 9 -2 roll _pm translate fc 7 -2 roll _pm scale fc 5 -1 roll _pm rotate fc 4 -2 roll exch 0 ne { dup _pm rotate fc 1 -1 _pm scale fc neg _pm rotate fc } { pop } ifelse dup _pm rotate fc exch dup sin exch cos div 1 0 0 1 0 6 2 roll _pm astore fc neg _pm rotate fc _pd exch get /_fdd exch ddef /_pf { save 0 1 _fdd length 1 sub { /_fd exch _fdd exch get ddef _fd 0 2 _fd length 2 sub { gsave 2 copy get dup _ ne { cvx exec _fc } { pop } ifelse 2 copy 1 add get dup _ ne { aload pop findfont _fm patternfill } { pop fill } ifelse grestore pop } for pop } for restore newpath } ddef /_psf { save 0 1 _fdd length 1 sub { /_fd exch _fdd exch get ddef _fd 0 2 _fd length 2 sub { gsave 2 copy get dup _ ne { cvx exec _fc } { pop } ifelse 2 copy 1 add get dup _ ne { aload pop findfont _fm 9 copy 6 npop patternashow } { pop 6 copy 3 npop ashow } ifelse grestore pop } for pop } for restore sw rmoveto } ddef /_pjsf { save 0 1 _fdd length 1 sub { /_fd exch _fdd exch get ddef _fd 0 2 _fd length 2 sub { gsave 2 copy get dup _ ne { cvx exec _fc } { pop } ifelse 2 copy 1 add get dup _ ne { aload pop findfont _fm 12 copy 6 npop patternawidthshow } { pop 9 copy 3 npop awidthshow } ifelse grestore pop } for pop } for restore swj rmoveto } ddef /_lp /none ddef } def /sc { _sm dup concatmatrix pop } def /P { /_sm exch ddef 9 -2 roll _pm translate sc 7 -2 roll _pm scale sc 5 -1 roll _pm rotate sc 4 -2 roll exch 0 ne { dup _pm rotate sc 1 -1 _pm scale sc neg _pm rotate sc } { pop } ifelse dup _pm rotate sc exch dup sin exch cos div 1 0 0 1 0 6 2 roll _pm astore sc neg _pm rotate sc _pd exch get /_sdd exch ddef /_ps { save 0 1 _sdd length 1 sub { /_sd exch _sdd exch get ddef _sd 0 2 _sd length 2 sub { gsave 2 copy get dup _ ne { cvx exec _sc } { pop } ifelse 2 copy 1 add get dup _ ne { aload pop findfont _sm patternstroke } { pop stroke } ifelse grestore pop } for pop } for restore newpath } ddef /_pss { save 0 1 _sdd length 1 sub { /_sd exch _sdd exch get ddef _sd 0 2 _sd length 2 sub { gsave 2 copy get dup _ ne { cvx exec _sc } { pop } ifelse 2 copy 1 add get dup _ ne { aload pop findfont _sm 10 copy 6 npop patternashowstroke } { pop 7 copy 3 npop ss } ifelse grestore pop } for pop } for restore pop sw rmoveto } ddef /_pjss { save 0 1 _sdd length 1 sub { /_sd exch _sdd exch get ddef _sd 0 2 _sd length 2 sub { gsave 2 copy get dup _ ne { cvx exec _sc } { pop } ifelse 2 copy 1 add get dup _ ne { aload pop findfont _sm 13 copy 6 npop patternawidthshowstroke } { pop 10 copy 3 npop jss } ifelse grestore pop } for pop } for restore pop swj rmoveto } ddef /_lp /none ddef } def /A { pop } def /nc 3 dict def nc begin /setgray { pop } bind def /setcmykcolor { 4 npop } bind def /setcustomcolor { 2 npop } bind def currentdict readonly pop end /Z {findfont begin currentdict dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /FontName exch def dup length 0 ne {/Encoding Encoding 256 array copy def 0 exch {dup type /nametype eq {Encoding 2 index 2 index put pop 1 add} {exch pop} ifelse} forall} if pop currentdict dup end end /FontName get exch definefont pop} bind def currentdict readonly pop end setpacking /annotatepage { } def %%EndResource %%EndProlog %%BeginSetup Adobe_cshow /initialize get exec Adobe_customcolor /initialize get exec Adobe_typography_AI3 /initialize get exec Adobe_Illustrator_AI3 /initialize get exec %%BeginEncoding:_Helvetica Helvetica [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Helvetica/Helvetica Z %%EndEncoding %%BeginEncoding:_Helvetica-Bold Helvetica-Bold [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Helvetica-Bold/Helvetica-Bold Z %%EndEncoding %%BeginEncoding:_Helvetica-Oblique Helvetica-Oblique [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Helvetica-Oblique/Helvetica-Oblique Z %%EndEncoding %%BeginEncoding:_Helvetica-BoldOblique Helvetica-BoldOblique [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Helvetica-BoldOblique/Helvetica-BoldOblique Z %%EndEncoding %%BeginEncoding:_Times-Roman Times-Roman [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Times-Roman/Times-Roman Z %%EndEncoding %%BeginEncoding:_Times-Bold Times-Bold [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Times-Bold/Times-Bold Z %%EndEncoding %%BeginEncoding:_Times-Italic Times-Italic [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Times-Italic/Times-Italic Z %%EndEncoding %%BeginEncoding:_Times-BoldItalic Times-BoldItalic [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Times-BoldItalic/Times-BoldItalic Z %%EndEncoding %%BeginEncoding:_Courier Courier [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Courier/Courier Z %%EndEncoding %%BeginEncoding:_Courier-Bold Courier-Bold [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Courier-Bold/Courier-Bold Z %%EndEncoding %%BeginEncoding:_Courier-Oblique Courier-Oblique [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Courier-Oblique/Courier-Oblique Z %%EndEncoding %%BeginEncoding:_Courier-BoldOblique Courier-BoldOblique [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Courier-BoldOblique/Courier-BoldOblique Z %%EndEncoding %%BeginEncoding:_Symbol Symbol [ 39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis ] /_Symbol/Symbol Z %%EndEncoding %%EndSetup u 0.000 0.000 0.000 0.000 k [] 0 d 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 0.4800 126.4800 m 54.4800 126.4800 L 54.4800 144.4800 L 0.4800 144.4800 L 0.4800 126.4800 L B U 0 To 1.0000 0.0000 0.0000 1.0000 11.2800 133.6800 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (bridgeintr\(\)\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 0.4800 95.0400 m 54.4800 95.0400 L 54.4800 113.0400 L 0.4800 113.0400 L 0.4800 95.0400 L B U 0 To 1.0000 0.0000 0.0000 1.0000 9.8400 105.8400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Record MAC\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 6.0000 98.6400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 K 0.000 0.000 0.000 1.000 k (source address\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 0.4800 63.6000 m 54.4800 63.6000 L 54.4800 81.6000 L 0.4800 81.6000 L 0.4800 63.6000 L B U 0 To 1.0000 0.0000 0.0000 1.0000 12.0000 74.4000 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Drop same\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 4.8000 67.2000 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (segment frames\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 0.4800 0.4800 m 54.4800 0.4800 L 54.4800 18.4800 L 0.4800 18.4800 L 0.4800 0.4800 L B U 0 To 1.0000 0.0000 0.0000 1.0000 17.7600 11.2800 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Non-IP\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 15.1200 4.0800 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (handling\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 0.4800 31.9200 m 54.4800 31.9200 L 54.4800 49.9200 L 0.4800 49.9200 L 0.4800 31.9200 L B U 0 To 1.0000 0.0000 0.0000 1.0000 14.1600 42.7200 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Multicast\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 15.1200 35.5200 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (handling\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 153.6000 0.4800 m 207.6000 0.4800 L 207.6000 18.4800 L 153.6000 18.4800 L 153.6000 0.4800 L B U 0 To 1.0000 0.0000 0.0000 1.0000 158.1600 11.2800 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Layer-2 filtering\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 170.8800 4.0800 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (\(input\)\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 77.0400 0.4800 m 131.0400 0.4800 L 131.0400 18.4800 L 77.0400 18.4800 L 77.0400 0.4800 L B U 0 To 1.0000 0.0000 0.0000 1.0000 87.3600 11.2800 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Layer-3 \(IP\)\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 93.1200 4.0800 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (filtering\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.2500 w 0.000 0.000 0.000 1.000 K 1 J 1 j 27.6000 126.4800 m 27.6000 116.6400 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 29.5200 117.1200 m 27.6000 113.0400 L 25.4400 117.1200 L 29.5200 117.1200 L F U u 0.000 0.000 0.000 1.000 K 27.6000 95.0400 m 27.6000 85.2000 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 29.5200 85.6800 m 27.6000 81.6000 L 25.4400 85.6800 L 29.5200 85.6800 L F U u 0.000 0.000 0.000 1.000 K 27.6000 63.6000 m 27.6000 53.5200 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 29.5200 54.0000 m 27.6000 49.9200 L 25.4400 54.0000 L 29.5200 54.0000 L F U u 0.000 0.000 0.000 1.000 K 27.6000 31.9200 m 27.6000 22.0800 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 29.5200 22.5600 m 27.6000 18.4800 L 25.4400 22.5600 L 29.5200 22.5600 L F U u 0.000 0.000 0.000 1.000 K 54.4800 9.6000 m 73.4400 9.6000 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 72.9600 11.5200 m 77.0400 9.6000 L 72.9600 7.4400 L 72.9600 11.5200 L F U 0 To 1.0000 0.0000 0.0000 1.0000 35.0400 117.8400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Individual Frame\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 131.0400 9.6000 m 150.0000 9.6000 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 149.5200 11.5200 m 153.6000 9.6000 L 149.5200 7.4400 L 149.5200 11.5200 L F U u 0.000 0.000 0.000 0.000 k 0.000 0.000 0.000 1.000 K 108.4800 63.6000 m 162.4800 63.6000 L 162.4800 81.6000 L 108.4800 81.6000 L 108.4800 63.6000 L B U 0 To 1.0000 0.0000 0.0000 1.0000 113.0400 74.4000 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Layer-2 filtering\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 124.0800 67.2000 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (\(output\)\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 153.6000 95.0400 m 156.2400 95.5200 L 158.8800 96.7200 L 160.8000 98.6400 L 162.0000 101.2800 L 162.4800 103.9200 L 162.0000 106.8000 L 160.8000 109.4400 L 158.8800 111.3600 L 156.2400 112.5600 L 153.6000 113.0400 L 117.6000 113.0400 L 114.7200 112.5600 L 112.0800 111.3600 L 110.1600 109.4400 L 108.9600 106.8000 L 108.4800 103.9200 L 108.9600 101.2800 L 110.1600 98.6400 L 112.0800 96.7200 L 114.7200 95.5200 L 117.6000 95.0400 L 153.6000 95.0400 L B U 0 To 1.0000 0.0000 0.0000 1.0000 120.4800 105.8400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Queued on\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 120.4800 98.6400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (interface 1\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 138.0000 60.9600 m 180.4800 18.4800 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 137.0400 59.2800 m 135.6000 63.6000 L 139.9200 62.1600 L 137.0400 59.2800 L F U u 0.000 0.000 0.000 0.000 k 0.000 0.000 0.000 1.000 K 95.0400 135.6000 m 126.4800 135.6000 L 126.4800 144.4800 L 95.0400 144.4800 L 95.0400 135.6000 L B U 0 To 1.0000 0.0000 0.0000 1.0000 99.3600 138.2400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Ethernet\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 131.2800 138.2400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (OR\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 144.4800 135.6000 m 175.9200 135.6000 L 175.9200 144.4800 L 144.4800 144.4800 L 144.4800 135.6000 L B U 0 To 1.0000 0.0000 0.0000 1.0000 152.6400 138.2400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (IPsec\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 113.2800 133.2000 m 135.6000 113.0400 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 112.3200 131.2800 m 110.6400 135.6000 L 115.2000 134.4000 L 112.3200 131.2800 L F U u 0.000 0.000 0.000 1.000 K 157.6800 133.2000 m 135.6000 113.0400 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 158.6400 131.2800 m 160.3200 135.6000 L 155.7600 134.4000 L 158.6400 131.2800 L F U u 0.000 0.000 0.000 0.000 k 0.000 0.000 0.000 1.000 K 198.4800 63.6000 m 252.4800 63.6000 L 252.4800 81.6000 L 198.4800 81.6000 L 198.4800 63.6000 L B U 0 To 1.0000 0.0000 0.0000 1.0000 203.0400 74.4000 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Layer-2 filtering\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 214.0800 67.2000 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (\(output\)\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 243.6000 95.0400 m 246.2400 95.5200 L 248.8800 96.7200 L 250.8000 98.6400 L 252.0000 101.2800 L 252.4800 103.9200 L 252.0000 106.8000 L 250.8000 109.4400 L 248.8800 111.3600 L 246.2400 112.5600 L 243.6000 113.0400 L 207.6000 113.0400 L 204.7200 112.5600 L 202.0800 111.3600 L 200.1600 109.4400 L 198.9600 106.8000 L 198.4800 103.9200 L 198.9600 101.2800 L 200.1600 98.6400 L 202.0800 96.7200 L 204.7200 95.5200 L 207.6000 95.0400 L 243.6000 95.0400 L B U 0 To 1.0000 0.0000 0.0000 1.0000 210.4800 105.8400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Queued on\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 210.4800 98.6400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (interface 2\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 185.0400 135.6000 m 216.4800 135.6000 L 216.4800 144.4800 L 185.0400 144.4800 L 185.0400 135.6000 L B U 0 To 1.0000 0.0000 0.0000 1.0000 189.3600 138.2400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Ethernet\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 221.2800 138.2400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (OR\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 234.4800 135.6000 m 265.9200 135.6000 L 265.9200 144.4800 L 234.4800 144.4800 L 234.4800 135.6000 L B U 0 To 1.0000 0.0000 0.0000 1.0000 242.6400 138.2400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (IPsec\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 203.2800 133.2000 m 225.6000 113.0400 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 202.3200 131.2800 m 200.6400 135.6000 L 205.2000 134.4000 L 202.3200 131.2800 L F U u 0.000 0.000 0.000 1.000 K 247.6800 133.2000 m 225.6000 113.0400 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 248.6400 131.2800 m 250.3200 135.6000 L 245.7600 134.4000 L 248.6400 131.2800 L F U u 0.000 0.000 0.000 1.000 K 222.9600 60.9600 m 180.4800 18.4800 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 223.9200 59.2800 m 225.6000 63.6000 L 221.0400 62.1600 L 223.9200 59.2800 L F U u 0.000 0.000 0.000 1.000 K 135.6000 91.4400 m 135.6000 81.6000 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 137.5200 90.9600 m 135.6000 95.0400 L 133.4400 90.9600 L 137.5200 90.9600 L F U u 0.000 0.000 0.000 1.000 K 225.6000 91.4400 m 225.6000 81.6000 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 227.5200 90.9600 m 225.6000 95.0400 L 223.4400 90.9600 L 227.5200 90.9600 L F U u 0.000 0.000 0.000 0.000 k 0.000 0.000 0.000 1.000 K 306.4800 63.6000 m 360.4800 63.6000 L 360.4800 81.6000 L 306.4800 81.6000 L 306.4800 63.6000 L F U u [1 2 ] 0 d 0.000 0.000 0.000 1.000 K 306.4800 63.6000 m 360.4800 63.6000 L 360.4800 81.6000 L 306.4800 81.6000 L 306.4800 63.6000 L S U 0 To 1.0000 0.0000 0.0000 1.0000 311.0400 74.4000 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr [] 0 d 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Layer-2 filtering\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 322.0800 67.2000 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (\(output\)\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k [1 2 ] 0 d 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 351.6000 95.0400 m 354.2400 95.5200 L 356.8800 96.7200 L 358.8000 98.6400 L 360.0000 101.2800 L 360.4800 103.9200 L 360.0000 106.8000 L 358.8000 109.4400 L 356.8800 111.3600 L 354.2400 112.5600 L 351.6000 113.0400 L 315.6000 113.0400 L 312.7200 112.5600 L 310.0800 111.3600 L 308.1600 109.4400 L 306.9600 106.8000 L 306.4800 103.9200 L 306.9600 101.2800 L 308.1600 98.6400 L 310.0800 96.7200 L 312.7200 95.5200 L 315.6000 95.0400 L 351.6000 95.0400 L F U u 0.000 0.000 0.000 1.000 K 351.6000 95.0400 m 354.2400 95.5200 L 356.8800 96.7200 L 358.8000 98.6400 L 360.0000 101.2800 L 360.4800 103.9200 L 360.0000 106.8000 L 358.8000 109.4400 L 356.8800 111.3600 L 354.2400 112.5600 L 351.6000 113.0400 L 315.6000 113.0400 L 312.7200 112.5600 L 310.0800 111.3600 L 308.1600 109.4400 L 306.9600 106.8000 L 306.4800 103.9200 L 306.9600 101.2800 L 308.1600 98.6400 L 310.0800 96.7200 L 312.7200 95.5200 L 315.6000 95.0400 L 351.6000 95.0400 L S U 0 To 1.0000 0.0000 0.0000 1.0000 318.4800 105.8400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr [] 0 d 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Queued on\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 318.0000 98.6400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (interface N\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k [1 2 ] 0 d 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 293.0400 135.6000 m 324.4800 135.6000 L 324.4800 144.4800 L 293.0400 144.4800 L 293.0400 135.6000 L F U u 0.000 0.000 0.000 1.000 K 293.0400 135.6000 m 324.4800 135.6000 L 324.4800 144.4800 L 293.0400 144.4800 L 293.0400 135.6000 L S U 0 To 1.0000 0.0000 0.0000 1.0000 297.3600 138.2400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr [] 0 d 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (Ethernet\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 329.2800 138.2400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (OR\r) Tx TO 0.000 0.000 0.000 1.000 K u 0.000 0.000 0.000 0.000 k [1 2 ] 0 d 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 342.4800 135.6000 m 373.9200 135.6000 L 373.9200 144.4800 L 342.4800 144.4800 L 342.4800 135.6000 L F U u 0.000 0.000 0.000 1.000 K 342.4800 135.6000 m 373.9200 135.6000 L 373.9200 144.4800 L 342.4800 144.4800 L 342.4800 135.6000 L S U 0 To 1.0000 0.0000 0.0000 1.0000 350.6400 138.2400 0 Tp TP /_Helvetica 6.0000 Tf 0.0000 Tc 0 Tr [] 0 d 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (IPsec\r) Tx TO 0.000 0.000 0.000 1.000 K u [1 2 ] 0 d 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 311.2800 133.2000 m 333.6000 113.0400 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 310.3200 131.2800 m 308.6400 135.6000 L 313.2000 134.4000 L 310.3200 131.2800 L F U u 0.000 0.000 0.000 1.000 K 355.6800 133.2000 m 333.6000 113.0400 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 356.6400 131.2800 m 358.3200 135.6000 L 353.7600 134.4000 L 356.6400 131.2800 L F U 0 To 1.0000 0.0000 0.0000 1.0000 274.5600 138.7200 0 Tp TP /_Helvetica 12.0000 Tf 0.0000 Tc 0 Tr [] 0 d 0.0000 w 0.000 0.000 0.000 1.000 K 0 j 0.000 0.000 0.000 1.000 k (...\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 274.5600 102.7200 0 Tp TP /_Helvetica 12.0000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (...\r) Tx TO 0.000 0.000 0.000 1.000 K 0 To 1.0000 0.0000 0.0000 1.0000 274.5600 71.2800 0 Tp TP /_Helvetica 12.0000 Tf 0.0000 Tc 0 Tr 0.000 0.000 0.000 1.000 k (...\r) Tx TO 0.000 0.000 0.000 1.000 K u [1 2 ] 0 d 0.2500 w 0.000 0.000 0.000 1.000 K 1 j 330.0000 62.6400 m 180.4800 18.4800 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 330.2400 60.4800 m 333.6000 63.6000 L 329.0400 64.3200 L 330.2400 60.4800 L F U u 0.000 0.000 0.000 1.000 K 333.6000 91.4400 m 333.6000 81.6000 L S U u 0.000 0.000 0.000 1.000 k 0.000 0.000 0.000 1.000 K 335.5200 90.9600 m 333.6000 95.0400 L 331.4400 90.9600 L 335.5200 90.9600 L F U %%PageTrailer gsave annotatepage grestore showpage %%Trailer Adobe_Illustrator_AI3 /terminate get exec Adobe_typography_AI3 /terminate get exec Adobe_customcolor /terminate get exec Adobe_cshow /terminate get exec Adobe_packedarray /terminate get exec %%EOF %%EndDocument @endspecial 446 1441 a Fk(Figure)27 b(2:)36 b(F)-7 b(rame)27 b(\015o)n(w)g(from)g(within)i Fj(bridgeintr\(\))f Fk(with)g(La)n(y)n (er-2)d(and)j(La)n(y)n(er-3)d(handling.)0 1794 y(are)c(addressed)f(to)i (an)n(y)f(of)h(the)g(mem)n(b)r(er)g(in)n(terfaces)f(of)h(the)0 1893 y(bridge)j(are)f(simply)i(returned)f(to)g Fj(ether)p 1272 1893 26 4 v 31 w(input\(\))p Fk(.)36 b(Broad-)0 1993 y(cast)21 b(and)g(m)n(ulticast)g(frames)f(m)n(ust)i(b)r(e)f (copied.)35 b(The)21 b(orig-)0 2093 y(inal)g(frame)h(is)f(returned)g (to)h Fj(ether)p 1073 2093 V 31 w(input\(\),)h Fk(and)e(the)h(cop)n(y)0 2192 y(is)27 b(queued)h(on)f(the)h(bridge.)0 2392 y(F)-7 b(or)36 b(frames)h(sen)n(t)f(b)n(y)h(the)g(bridge,)i Fj(ether)p 1368 2392 V 31 w(output\(\))d Fk(w)n(as)0 2491 y(mo)r(di\014ed)49 b(to)g(include)g(a)g(sp)r(ecial)g(case)f(for)g (in)n(terfaces)0 2591 y(that)32 b(are)f(bridge)g(mem)n(b)r(ers)h(and)f (the)i(frame)e(to)h(b)r(e)g(sen)n(t)0 2690 y(is)37 b(passed)e(to)i Fj(bridge)p 697 2690 V 32 w(output\(\))p Fk(.)63 b(This)37 b(function)g(exam-)0 2790 y(ines)32 b(the)g(ethernet)g(destination)g (address)f(of)h(the)g(frame.)0 2890 y(F)-7 b(or)35 b(unicast)g (destinations,)j(the)e(bridge)f(address)f(cac)n(he)0 2989 y(is)i(used)g(to)g(lo)r(cate)f(the)h(recipien)n(t.)62 b(F)-7 b(or)35 b(m)n(ulticast)h(and)0 3089 y(broadcast)e(destinations,) j(as)e(w)n(ell)h(as)f(unicast)h(destina-)0 3189 y(tions)e(not)g(found)h (in)f(the)h(address)e(cac)n(he,)i(the)f(frame)g(is)0 3288 y(forw)n(arded)26 b(to)h(all)h(mem)n(b)r(er)f(in)n(terfaces)g(of)g (the)h(bridge.)0 3487 y(As)39 b(a)g(result)f(of)h(this)g(design,)j(a)c (mac)n(hine)h(acting)f(as)g(a)0 3587 y(bridge)25 b(can)g(also)f (participate)h(on)g(the)h(LAN)f(as)g(a)g(normal)0 3687 y(host.)42 b(When,)30 b(for)f(example,)g(it)h(sends)f(an)g(ARP)g (request)0 3786 y(for)24 b(a)g(host,)g(it)h(will)f(b)r(e)h(forw)n (arded)e(out)h(of)g(ev)n(ery)f(mem)n(b)r(er)0 3886 y(in)n(terface.)66 b(When)38 b(a)f(reply)g(is)g(receiv)n(ed)g(on)g(an)n(y)g(in)n(ter-)0 3986 y(face,)30 b(the)h(source)e(in)n(terface)g(and)h(address)e(are)h (added)h(to)0 4085 y(the)h(bridge)f(address)g(cac)n(he)g(as)g(w)n(ell)g (as)g(its)h(ARP)g(cac)n(he,)0 4185 y(and)f(the)g(frame)g(is)g(pro)r (cessed)f(as)g(normal.)44 b(F)-7 b(rom)29 b(there,)0 4284 y(all)22 b(unicast)h(frames)f(to)g(the)h(remote)f(host)h(will)g (use)f(the)h(in-)0 4384 y(formation)d(from)h(the)g(address)f(cac)n(he)g (for)h(sending)g(frames)0 4484 y(only)27 b(on)g(the)h(correct)f(in)n (terface.)0 4792 y Fl(2.4)105 b(Bridge)36 b(Securit)m(y)0 5101 y Fk(As)26 b(discussed)g(previously)-7 b(,)26 b(the)g(bridge)g (pro)n(vides)f(sev)n(eral)0 5201 y(metho)r(ds)i(for)g(enforcing)f(net)n (w)n(ork)g(securit)n(y)g(p)r(olicy)-7 b(.)36 b(One)0 5300 y(form)28 b(of)h(in)n(ternal)f(attac)n(k)g(is)g(MA)n(C)h(sp)r(o)r (o\014ng)f(where)g(one)0 5400 y(host)23 b(forges)e(pac)n(k)n(ets)h (using)h(the)g(ethernet)g(MA)n(C)g(address)2010 1794 y(of)j(a)g(victim)g(host.)37 b(The)26 b(bridge)f(pro)n(vides)g(t)n(w)n (o)g(measures)2010 1893 y(for)44 b(prev)n(en)n(ting)f(this)h(attac)n(k) f(from)h(b)r(eing)g(completely)2010 1993 y(successful:)34 b(La)n(y)n(er-2)21 b(\014lters)h(and)h(static)g(address)f(en)n(tries.) 2010 2192 y(F)-7 b(or)34 b(the)h(La)n(y)n(er-2)d(\014lters,)37 b(the)e(ethernet)g(MA)n(C)f(address)2010 2292 y(of)j(the)h(p)r(oten)n (tial)g(victim)g(is)f(added)g(to)h(a)f(set)g(of)h(rules.)2010 2392 y(F)-7 b(or)32 b(the)i(bridge)e(in)n(terface)g(on)h(the)g(segmen)n (t)f(where)h(the)2010 2491 y(host)20 b(is)h(supp)r(osed)f(to)h(b)r(e,)h (rules)e(are)g(added)g(to)h(p)r(ermit)g(the)2010 2591 y(address)30 b(to)h(b)r(e)g(the)h(source)e(and)h(destination)g(of)g (frames)2010 2690 y(for)g(input)h(and)f(output.)49 b(On)32 b(the)f(other)g(in)n(terfaces,)h(the)2010 2790 y(address)40 b(is)i(added)f(to)g(rules)g(blo)r(c)n(king)g(it)g(as)g(a)g(source)2010 2890 y(address)23 b(on)i(input)g(and)g(destination)g(address)e(on)i (output)2010 2989 y(from)i(eac)n(h)g(in)n(terface.)2010 3189 y(Additionally)-7 b(,)45 b(adding)c(a)g(static)h(address)e(cac)n (he)h(en)n(try)2010 3288 y(that)28 b(binds)f(the)h(ethernet)f(MA)n(C)g (address)f(of)h(the)h(p)r(oten-)2010 3388 y(tial)g(victim)g(host)g(to)f (the)i(bridge)e(in)n(terface)g(on)g(the)i(same)2010 3487 y(segmen)n(t)d(as)g(the)i(host)e(will)h(prev)n(en)n(t)f(the)h(bridge)f (address)2010 3587 y(cac)n(he)34 b(from)i(b)r(eing)f(p)r(olluted)h (with)g(in)n(v)-5 b(alid)35 b(data.)60 b(The)2010 3687 y(bridge)38 b(cannot)g(prev)n(en)n(t)f(the)i(attac)n(k)f(from)g(b)r (eing)h(suc-)2010 3786 y(cessful)33 b(on)f(individual)h(segmen)n(ts,)g (but)h(it)f(can)f(limit)i(its)2010 3886 y(scop)r(e)27 b(in)h(one)f(segmen)n(t)g(only)-7 b(.)2010 4085 y(Another)28 b(form)g(of)g(in)n(ternal)g(attac)n(k,)f(ARP)h(sp)r(o)r(o\014ng,)g(in-) 2010 4185 y(v)n(olv)n(es)36 b(a)h(host)g(on)g(the)h(net)n(w)n(ork)e (using)h(its)h(o)n(wn)f(MA)n(C)2010 4284 y(address)30 b(and)i(forging)e(ARP)i(resp)r(onses)e(claiming)h(to)h(b)r(e)2010 4384 y(another)24 b(host.)35 b(The)25 b(bridge)f(do)r(es)h(not)f(treat) h(ARP)f(pac)n(k-)2010 4484 y(ets)40 b(di\013eren)n(t)f(from)h(other)f (pac)n(k)n(ets,)i(so)e(this)h(attac)n(k)f(is)2010 4583 y(not)d(directly)f(prev)n(en)n(table.)60 b(The)36 b(attac)n(king)e (host)i(ma)n(y)2010 4683 y(b)r(e)24 b(able)g(to)g(con)n(vince)f(hosts)g (on)g(other)h(segmen)n(ts)f(that)h(its)2010 4783 y(ethernet)39 b(MA)n(C)f(address)g(is)g(the)h(one)f(asso)r(ciated)g(with)2010 4882 y(the)30 b(IP)g(address)e(victim)j(host,)f(but)h(b)n(y)e(using)h (IP)f(\014lters,)2010 4982 y(actual)23 b(IP)g(pac)n(k)n(et)f(comm)n (unication)g(through)h(the)h(bridge)2010 5081 y(can)j(b)r(e)h(prev)n (en)n(ted.)p eop %%Page: 5 5 5 4 bop 0 83 a Fo(3)112 b(Bridging)36 b(and)i(IPsec)0 379 y Fk(The)24 b(\014ltering)g(capabilities)g(o\013ered)g(b)n(y)g(the) h(bridge)e(allo)n(w)0 479 y(its)k(use)h(as)e(a)h(transparen)n(t)f(pac)n (k)n(et)g(\014ltering)h(\014rew)n(all.)36 b(As)0 578 y(w)n(as)30 b(the)h(case)e(with)j(traditional)d(\014rew)n(alls)h(ho)n (w)n(ev)n(er,)f(\014l-)0 678 y(tering)g(b)n(y)g(itself)g(is)h(not)f (su\016cien)n(t)g(in)h(ful\014lling)f(net)n(w)n(ork)0 778 y(securit)n(y)j(concerns.)53 b(Net)n(w)n(ork)32 b(la)n(y)n(er)f (encryption,)j(t)n(ypi-)0 877 y(cally)f(in)h(the)g(form)g(of)g(IPsec,)g (is)g(seeing)f(increasing)f(use)0 977 y(in)38 b(protecting)e(tra\016c)h (b)r(et)n(w)n(een)h(net)n(w)n(orks,)g(hosts,)h(and)0 1076 y(users.)68 b(Th)n(us,)41 b(w)n(e)d(decided)g(to)g(augmen)n(t)g (the)g(\014ltering)0 1176 y(bridge)27 b(with)h(IPsec)f(capabilities.)0 1375 y(This)21 b(section)f(starts)g(with)i(a)e(brief)h(o)n(v)n(erview)e (of)i(the)g(IPsec)0 1475 y(implemen)n(tation)47 b(in)g(Op)r(enBSD,)h (then)f(describ)r(es)g(the)0 1575 y(t)n(w)n(o)38 b(con\014gurations)e (where)i(bridging)g(and)g(IPsec)g(ma)n(y)0 1674 y(b)r(e)28 b(used)g(together.)0 1873 y(The)i(\014rst)f(of)h(these)g (con\014gurations,)f(\\virtual)f(LAN,")i(is)0 1973 y(used)23 b(to)g(transparen)n(tly)f(and)h(securely)f(connect)h(ethernet)0 2073 y(segmen)n(ts)e(o)n(v)n(er)f(a)h(wide)h(area)e(net)n(w)n(ork.)34 b(This)22 b(is)f(ac)n(hiev)n(ed)0 2172 y(b)n(y)j(encapsulating)f (ethernet)h(frames)g(inside)g(IPsec)f(pac)n(k-)0 2272 y(ets)32 b(whic)n(h)h(are)e(then)i(transmitted)g(to)f(a)g(remote)g (bridge)0 2372 y(that)20 b(remo)n(v)n(es)d(the)j(protection)f(and)g (forw)n(ards)f(the)i(frames)0 2471 y(to)27 b(the)h(lo)r(cal)f(LAN.)0 2670 y(The)e(second)f(con\014guration)f(is)i(what)g(the)g(standards)e (call)0 2770 y(a)30 b(\\bump)h(in)h(the)f(wire")f(\(BITW\))h(implemen)n (tation)g([9],)0 2870 y(wherein)37 b(a)f(securit)n(y)h(gatew)n(a)n(y)e (\(the)i(bridge\))g(transpar-)0 2969 y(en)n(tly)j(implemen)n(ts)g (IPsec)f(on)g(b)r(ehalf)i(of)f(one)f(or)g(more)0 3069 y(\\protected")h(hosts.)76 b(This)41 b(allo)n(ws)e(gradual)h(in)n(tro)r (duc-)0 3169 y(tion)23 b(of)h(IPsec)e(in)i(a)f(net)n(w)n(ork)f(without) i(c)n(hanging)e(the)i(end)0 3268 y(host)35 b(con\014guration)e(or)h (soft)n(w)n(are.)58 b(This)35 b(con\014guration)0 3368 y(is)25 b(also)g(a)g(common)g(design)f(feature)i(of)f(net)n(w)n(ork)f (securit)n(y)0 3467 y(systems)j(used)h(b)n(y)f(the)h(military)-7 b(.)0 3667 y(P)n(erhaps)20 b(more)g(imp)r(ortan)n(tly)-7 b(,)22 b(suc)n(h)f(a)g(transparen)n(t)f(IPsec)0 3766 y(gatew)n(a)n(y)29 b(can)i(b)r(e)h(used)g(to)f(enforce)f(securit)n(y)h (prop)r(erties)0 3866 y(for)k(comm)n(unications)g(b)r(et)n(w)n(een)g (the)h(protected)f(\(or)g(su-)0 3966 y(p)r(ervised\))d(hosts)g(and)g (the)h(rest)f(of)g(the)h(w)n(orld.)50 b(P)n(ac)n(k)n(ets)0 4065 y(tra)n(v)n(ersing)36 b(the)j(gatew)n(a)n(y)d(can)i(b)r(e)h (examined)f(and,)j(de-)0 4165 y(p)r(ending)28 b(on)f(system)h(p)r (olicy:)83 4440 y Ff(\017)41 b Fk(They)28 b(ma)n(y)f(b)r(e)h(forw)n (arded)e(or)h(dropp)r(ed,)h(similar)f(to)166 4539 y(a)g(pac)n(k)n(et)g (\014ltering)g(\014rew)n(all.)83 4703 y Ff(\017)41 b Fk(Outgoing)27 b(pac)n(k)n(ets)f(ma)n(y)i(cause)f(the)h(securit)n(y)f (gate-)166 4802 y(w)n(a)n(y)33 b(to)h(attempt)g(to)g(establish)g(a)f (securit)n(y)h(asso)r(ci-)166 4902 y(ation)29 b(\(SA\))i(with)f(the)f (destination)h(host,)f(pretend-)166 5001 y(ing)22 b(to)g(b)r(e)g(the)h (originating)d(host,)j(if)g(the)f(pac)n(k)n(ets)f(are)166 5101 y(unencrypted.)42 b(If)29 b(the)h(pac)n(k)n(ets)e(are)g(already)f (IPsec-)166 5201 y(protected,)44 b(it)e(could)f(simply)g(forw)n(ard)f (them)i(\(or,)166 5300 y(in)29 b(our)e(case,)h(bridge)f(them\).)40 b(Naturally)-7 b(,)28 b(the)h(secu-)166 5400 y(rit)n(y)22 b(gatew)n(a)n(y)e(ma)n(y)h(alw)n(a)n(ys)f(opt)i(to)g(establish)g(an)g (SA)2176 83 y(with)29 b(the)h(destination,)f(regardless)d(of)j(the)g (existing)2176 183 y(securit)n(y)e(prop)r(erties)f(of)i(the)g(pac)n(k)n (et)f(stream.)2093 336 y Ff(\017)41 b Fk(Similarly)-7 b(,)48 b(for)43 b(incoming)h(pac)n(k)n(ets,)j(the)d(gatew)n(a)n(y)2176 436 y(could)31 b(establish)h(a)f(securit)n(y)g(asso)r(ciation)f(with)i (the)2176 536 y(originator)50 b(if)j(the)g(pac)n(k)n(et)f(w)n(as)g (receiv)n(ed)f(unen-)2176 635 y(crypted)j(and/or)e(unauthen)n(ticated,) 60 b(again)53 b(pre-)2176 735 y(tending)28 b(to)f(b)r(e)h(the)g (destination)g(host.)2093 889 y Ff(\017)41 b Fk(Finally)-7 b(,)27 b(the)f(bridge)g(can)f(in)n(tercept)h(incoming)g(IKE)2176 988 y([5])e(pac)n(k)n(ets)e(that)j(request)e(negotiation)g(with)i(one)e (of)2176 1088 y(the)34 b(protected)f(hosts,)h(and)g(p)r(erform)f(the)g (negotia-)2176 1188 y(tion)28 b(as)f(that)h(host.)2010 1439 y(Th)n(us,)33 b(in)g(the)g(last)e(three)i(cases,)f(the)h(securit)n (y)e(gatew)n(a)n(y)2010 1539 y(acts)38 b(as)g(a)h(transparen)n(t)e(net) n(w)n(ork)g(p)r(olicy)i(enforcer.)69 b(A)2010 1639 y(routing)45 b(\014rew)n(all)g(can)h(p)r(erform)f(the)h(same)g(functions,)2010 1738 y(ho)n(w)n(ev)n(er)31 b(it)i(w)n(ould)f(ha)n(v)n(e)g(to)g (establish)h(tunnel)g(SAs)g(b)r(e-)2010 1838 y(t)n(w)n(een)k(itself)h (and)f(the)h(remote)e(host)i(on)f(b)r(ehalf)g(of)h(the)2010 1938 y(protected)i(host.)73 b(It)41 b(w)n(ould)e(do)h(so)f(using)h(its) g(o)n(wn)g(IP)2010 2037 y(address,)e(an)f(so)g(w)n(ould)g(need)g(to)g (\\pro)n(v)n(e")d(its)k(righ)n(t)e(to)2010 2137 y(pro)n(xy-IPsec)31 b(for)i(the)h(end)g(host.)54 b(While)34 b(this)g(is)g(trivial)2010 2236 y(for)39 b(static)g(con\014gurations,)h(where)f(the)h(iden)n (tities)f(and)2010 2336 y(net)n(w)n(ork)23 b(addresses)f(of)i(the)h(t)n (w)n(o)e(p)r(eers)h(are)f(kno)n(wn)g(a)h(pri-)2010 2436 y(ori,)34 b(the)f(situation)g(b)r(ecomes)g(more)f(complicated)h(when) 2010 2535 y(trying)27 b(to)g(do)h(opp)r(ortunistic)f(encryption.)2010 2735 y(The)36 b(t)n(w)n(o)f(primary)f(en)n(visioned)h(metho)r(ds)h(for) f(host)h(au-)2010 2834 y(then)n(tication)29 b(are)f(DNSSEC)i([3)o(])f (and)g(X.509)f([2].)41 b(In)30 b(the)2010 2934 y(former)g(case,)g(the)h (domain)f(name)g(serv)n(ers)f(can)h(securely)2010 3033 y(pro)n(vide)c(the)h(public)h(k)n(ey)e(asso)r(ciated)g(with)h(a)g(host) f(name)2010 3133 y(or)j(address.)41 b(That)30 b(k)n(ey)f(ma)n(y)g(then) h(b)r(e)g(used)g(to)f(authen-)2010 3233 y(ticate)39 b(the)g(IKE)g(p)r (eer.)70 b(In)40 b(the)f(X.509)f(case,)j(a)e(Certi-)2010 3332 y(\014cation)e(Authorit)n(y)h(\(CA\))h(infrastructure)e(is)h (assumed)2010 3432 y(to)i(pro)n(vide)f(the)h(public)h(k)n(ey)e(of)h(an) g(end)g(host)g(or)f(user)2010 3532 y(\(the)30 b(proto)r(cols)e(for)h (doing)g(so)g(in)h(a)f(large-scale)d(net)n(w)n(ork)2010 3631 y(suc)n(h)20 b(as)g(the)h(In)n(ternet)f(are)f(less)h(w)n (ell-de\014ned)g(than)h(DNS\).)2010 3731 y(Here,)33 b(the)g(IP)f (address)f(of)h(the)h(host)f(asso)r(ciated)f(with)h(a)2010 3830 y(k)n(ey)h(is)g(em)n(b)r(edded)h(in)f(an)h(X.509)e(certi\014cate.) 54 b(In)33 b(either)2010 3930 y(case)c(ho)n(w)n(ev)n(er,)g(it)h(is)g (not)g(immediately)h(clear)e(\(and)h(cur-)2010 4030 y(ren)n(tly)c (unde\014ned\))i(ho)n(w)f(to)g(express)f(the)h(righ)n(t)f(of)h(a)g (\014re-)2010 4129 y(w)n(all)38 b(to)g(establish)g(SAs)h(on)f(b)r (ehalf)h(of)f(a)g(host.)70 b(While)2010 4229 y(w)n(ork)31 b(has)g(recen)n(tly)g(started)h(in)g(the)g(IETF)g(IP)g(Securit)n(y)2010 4329 y(P)n(olicy)19 b(\(IPSP\))h(W)-7 b(orking)19 b(Group,)j(dev)n (elopmen)n(t)d(and)h(de-)2010 4428 y(plo)n(ymen)n(t)40 b(of)g(a)g(proto)r(col)g(that)h(w)n(ould)f(allo)n(w)f(securit)n(y)2010 4528 y(gatew)n(a)n(y)26 b(disco)n(v)n(ery)f(is)i(some)h(y)n(ears)d(a)n (w)n(a)n(y)-7 b(.)2010 4814 y Fl(3.1)105 b(Op)s(enBSD)35 b(IPsec)2010 5101 y Fk(IPsec)d(in)i(the)f(Op)r(enBSD)h(k)n(ernel)e(is)h (implemen)n(ted)h(as)e(a)2010 5201 y(pair)j(of)h(transp)r(ort)f(proto)r (cols)f([7,)i(8)o(].)62 b(Incoming)35 b(IPsec)2010 5300 y(pac)n(k)n(ets)30 b(are)h(switc)n(hed)g(to)h(the)g(appropriate)e (IPsec)g(pro-)2010 5400 y(to)r(col)37 b(for)f(pro)r(cessing)g(b)n(y)h Fj(ipv4)p 3048 5400 26 4 v 32 w(input\(\),)j Fk(follo)n(wing)c(the)p eop %%Page: 6 6 6 5 bop 0 83 a Fk(usual)28 b(pac)n(k)n(et)f(pro)r(cessing)f(path)j(in)f (the)g(k)n(ernel)g(\(similar,)0 183 y(for)22 b(example,)h(to)g(TCP)f (or)f(UDP\).)j(Note)e(that)h(only)f(pac)n(k-)0 282 y(ets)j(destined)h (for)e(the)i(lo)r(cal)e(host)h(are)g(handled)g(this)g(w)n(a)n(y;)0 382 y(IPsec)33 b(pac)n(k)n(ets)g(that)h(are)g(passing)f(through)g(are)g (simply)0 482 y(forw)n(arded)19 b(if)i(the)h(host)e(is)h(con\014gured)e (to)i(act)g(as)f(a)g(router,)0 581 y(otherwise)27 b(they)g(are)g(dropp) r(ed\).)0 780 y(Outgoing)48 b(pac)n(k)n(ets)h(are)f(in)n(tercepted)i (at)f Fj(ip)p 1511 780 26 4 v 32 w(output\(\),)0 880 y Fk(where)30 b(a)h(c)n(hec)n(k)f(is)h(made)g(to)g(see)f(if)i(IPsec)e (pro)r(cessing)f(is)0 980 y(necessary)-7 b(.)34 b(If)24 b(so,)f(the)h(appropriate)e(IPsec)g(proto)r(col)g(out-)0 1079 y(put)31 b(routines)e(are)g(called)g(whic)n(h)h(encrypt/authen)n (ticate)0 1179 y(the)21 b(pac)n(k)n(et,)h(and)e(then)i(re-send)e(it)h (via)g Fj(ip)p 1310 1179 V 31 w(output\(\))f Fk(sp)r(eci-)0 1279 y(fying)i(that)h(IPsec)f(pro)r(cessing)f(has)h(already)f(o)r (ccurred)g(\(so)0 1378 y(as)26 b(to)h(a)n(v)n(oid)e(lo)r(ops\).)37 b(Tw)n(o)26 b(metho)r(ds)h(are)f(used)h(to)g(deter-)0 1478 y(mine)e(whether)g(a)f(pac)n(k)n(et)f(needs)i(to)f(b)r(e)h (IPsec-pro)r(cessed:)83 1763 y Ff(\017)41 b Fk(If)j(the)f(pac)n(k)n(et) f(originated)g(from)h(a)g(lo)r(cal)f(so)r(c)n(k)n(et,)166 1863 y(it)36 b(ma)n(y)e(ha)n(v)n(e)g(an)h(attac)n(hed)g(Securit)n(y)g (Asso)r(ciation)166 1962 y(\(SA\).)83 2132 y Ff(\017)41 b Fk(If)34 b(no)f(suc)n(h)g(information)f(is)h(a)n(v)-5 b(ailable,)34 b(the)f(source)166 2232 y(and)j(destination)f(addresses)f (and)i(p)r(orts)f(from)h(the)166 2331 y(pac)n(k)n(et)25 b(are)h(used)g(to)g(mak)n(e)g(a)g(lo)r(okup)g(in)g(the)h(k)n(ernel)166 2431 y(Securit)n(y)d(P)n(olicy)f(Database)h(\(SPD\).)h(In)g(Op)r (enBSD,)166 2531 y(the)d(SPD)g(is)f(implemen)n(ted)h(as)f(a)g(new)h (proto)r(col)e(fam-)166 2630 y(ily)i(in)h(the)g(radix)e(tree,)i(whic)n (h)f(is)h(also)e(used)h(for)g(rout-)166 2730 y(ing)28 b(en)n(tries.)39 b(There)28 b(are)f(sev)n(eral)g(b)r(ene\014ts)i(to)f (using)166 2829 y(the)g(radix)f(tree:)259 3017 y Fe({)42 b Fk(Co)r(de)27 b(reuse)g(\(and,)h(th)n(us,)g(bug)f(a)n(v)n(oidance\).) 259 3152 y Fe({)42 b Fk(The)c(radix)g(tree)g(in)n(ternal)g(represen)n (tation)e(is)349 3251 y(compact,)50 b(allo)n(wing)45 b(for)h(large)f(n)n(um)n(b)r(ers)h(of)349 3351 y(SPD)19 b(en)n(tries)f(without)i(high)f(memory)f(require-)349 3451 y(men)n(ts.)259 3585 y Fe({)42 b Fk(Lo)r(okup)e(cost)h(scales)f(w) n(ell)h(with)g(n)n(um)n(b)r(er)g(of)349 3685 y(en)n(tries)27 b(in)g(the)h(table.)259 3820 y Fe({)42 b Fk(Because)19 b(a)h(lo)r(okup)h(returns)f(the)h(most)f(sp)r(eci\014c)349 3919 y(result,)38 b(it)g(is)e(easy)g(to)g(implemen)n(t)i(\\bac)n(kup") 349 4019 y(en)n(tries)e(for)h(pac)n(k)n(et)f(classes)g(\(or,)j(con)n(v) n(ersely)-7 b(,)349 4119 y(w)n(e)31 b(can)h(ha)n(v)n(e)e(sp)r(ecial)i (case)f(handling)g(of)h(cer-)349 4218 y(tain)27 b(pac)n(k)n(et)g (classes\).)0 4503 y(In)42 b(b)r(oth)g(cases,)j(the)d(lo)r(okup)f(pro)n (vides)g(enough)g(infor-)0 4603 y(mation)33 b(to)g(lo)r(cate)g(the)h (SA.)g(Note)f(that,)i(on)e(input,)j(the)0 4703 y(pac)n(k)n(et)30 b(itself)i(con)n(tains)e(enough)g(information)h(to)g(lo)r(cate)0 4802 y(the)f(SA.)f(The)h(SA)f(itself)h(con)n(tains)e(suc)n(h)h (information)g(as)0 4902 y(the)k(cryptographic)d(algorithms)h(and)h(k)n (eys)g(to)g(b)r(e)h(used,)0 5001 y(what)h(optional)e(features)h(of)h (the)g(proto)r(cols)e(are)g(in)i(use,)0 5101 y(v)-5 b(arious)26 b(expiration)h(timers,)g Fj(etc.)0 5300 y Fk(Both)h(the)h(SA)g(and)g (SPD)g(tables)f(ma)n(y)g(b)r(e)h(p)r(opulated)f(ei-)0 5400 y(ther)41 b(through)f(man)n(ual)g(k)n(eying)g(utilities,)45 b(or)40 b(b)n(y)h(some)2010 83 y(automated)35 b(k)n(ey)g(managemen)n(t) g(daemon)g(\(lik)n(e)h(IKE)e([5])2010 183 y(or)29 b(Photuris)g([6]\).) 45 b(The)30 b(in)n(terface)g(to)g(the)g(k)n(ernel)g(for)f(ei-)2010 282 y(ther)19 b(of)h(these)f(metho)r(ds)h(is)f(via)g(the)h(PF)p 3249 282 25 4 v 30 w(KEY)e(so)r(c)n(k)n(et)h([14)o(],)2010 382 y(whic)n(h)32 b(is)g(in)g(man)n(y)f(w)n(a)n(ys)f(similar)i(to)f (the)i(BSD)f(routing)2010 482 y(so)r(c)n(k)n(et.)2010 681 y(Both)38 b(in)h(input)h(or)d(output,)42 b(if)d(the)g(necessary)e (crypto-)2010 780 y(graphic)31 b(material)h(has)g(not)h(b)r(een)g (negotiated)f(with)h(the)2010 880 y(remote)20 b(IPsec)f(endp)r(oin)n(t) i(\(for)f(example,)h(when)g(doing)f(on-)2010 980 y(demand)31 b(or)f(\\opp)r(ortunistic")f(IPsec\),)i(it)g(is)g(p)r(ossible)f(to)2010 1079 y(notify)35 b(a)f(k)n(ey)g(managemen)n(t)g(daemon)g(whic)n(h)h (will)g(then)2010 1179 y(negotiate)i(and)g(install)g(the)h(prop)r(er)f (SA)g(and)h(SPD)f(en-)2010 1279 y(tries)27 b(in)h(the)g(k)n(ernel.)2010 1478 y(W)-7 b(e)22 b(ha)n(v)n(e)f(also)f(implemen)n(ted)j(the)f Fj(enc)f Fk(pseudo-in)n(terface.)2010 1577 y(Input)27 b(pac)n(k)n(ets)f(that)h(are)e(IPsec-pro)r(cessed)f(are)i(made)g(to) 2010 1677 y(app)r(ear)j(as)h(if)h(they)f(w)n(ere)g(receiv)n(ed)f(from)h (the)g Fj(enc)h Fk(in)n(ter-)2010 1777 y(face,)f(b)n(y)f(c)n(hanging)f (the)h(in)n(terface)g(p)r(oin)n(ter)g(in)h(the)g(m)n(buf)2010 1876 y(header.)j(Th)n(us,)21 b(an)e(administrator)e(can)i(easily)f (\014lter)i(non-)2010 1976 y(IPsec)37 b(protected)g(pac)n(k)n(ets)g (using)g(an)n(y)g(pac)n(k)n(et)f(\014ltering)2010 2076 y(pac)n(k)-5 b(age.)78 b(F)-7 b(urthermore,)45 b(utilities)d(lik)n(e)g Fj(tcp)l(dump)g Fk([13)o(])2010 2175 y(can)37 b(b)r(e)g(used)g(to)g (view)g(the)h(in)n(termediate)e(pro)r(ducts)h(of)2010 2275 y(IPsec)27 b(pro)r(cessing,)f(for)g(debugging)h(purp)r(oses)f (\(this)i(only)2010 2374 y(w)n(orks)38 b(if)i(IPsec)e(pro)r(cessing)g (tak)n(es)g(place)h(in)h(the)g(lo)r(cal)2010 2474 y(host\).)2010 2673 y(A)33 b(more)f(extensiv)n(e)g(\(if)i(somewhat)e(dated\))h(o)n(v)n (erview)e(of)2010 2773 y(the)d(Op)r(enBSD)g(IPsec)f(arc)n(hitecture)f (is)i(giv)n(en)e(in)i([10)o(].)2010 2972 y(This)20 b(is)g(the)g (standard)f(IPsec)g(pro)r(cessing)g(that)h(is)g(more)f(or)2010 3072 y(less)29 b(common)g(across)f(di\013eren)n(t)i(implemen)n(tations) f(\(and)2010 3171 y(ev)n(en)j(op)r(erating)g(systems\).)53 b(Use)33 b(of)g(IPsec)f(in)h(conjunc-)2010 3271 y(tion)25 b(with)h(the)f(bridge,)g(esp)r(ecially)f(in)i(the)f(\\bump)g(in)h(the) 2010 3371 y(wire")c(scenario,)h(requires)f(somewhat)g(di\013eren)n(t)i (pro)r(cess-)2010 3470 y(ing.)60 b(W)-7 b(e)36 b(shall)f(describ)r(e)g (these)g(c)n(hanges)f(and)h(require-)2010 3570 y(men)n(ts)28 b(in)f(the)h(next)g(t)n(w)n(o)f(subsections.)2010 3900 y Fl(3.2)105 b(Virtual)35 b(LANs)2010 4231 y Fk(Giv)n(en)22 b(the)g(w)n(a)n(y)f(the)h(bridging)f(co)r(de)h(op)r(erates,)g(in)g (partic-)2010 4331 y(ular)j(with)h(resp)r(ect)f(to)h(mem)n(b)r(er)f(in) n(terfaces)g(b)r(eing)g(added)2010 4430 y(to)f(and)g(remo)n(v)n(ed)e (from)i(the)g(bridge,)g(it)h(w)n(as)e(a)h(simple)g(ob-)2010 4530 y(serv)-5 b(ation)32 b(that)h(w)n(e)g(could)f(extend)h(the)h(role) e(of)h(the)g Fj(enc)2010 4629 y Fk(in)n(terface)23 b(so)g(that)h(it)g (could)f(b)r(e)h(used)g(b)n(y)f(the)h(bridge.)35 b(Ac-)2010 4729 y(cordingly)-7 b(,)35 b(w)n(e)f(mo)r(di\014ed)h(the)g Fj(enc)g Fk(in)n(terface)f(suc)n(h)g(that)2010 4829 y(an)28 b(incoming)f(and)h(an)g(outgoing)e(SA)j(can)e(b)r(e)h(asso)r(ciated) 2010 4928 y(with)33 b(it,)h(through)e(the)h(standard)f Fj(ifc)l(on\014g)h Fk(command)3810 4898 y Fi(2)3847 4928 y Fk(.)2010 5028 y(Curren)n(tly)-7 b(,)34 b(suc)n(h)e(SAs)h(m)n(ust)h (b)r(e)f(man)n(ually)f(con\014gured,)2010 5128 y(via)27 b(the)h Fj(ipse)l(c)l(adm)h Fk(utilit)n(y)-7 b(.)p 2010 5244 744 4 v 2102 5298 a Fh(2)2137 5321 y Fg(As)19 b(an)h(artifact)f (of)g(our)h(implemen)n(tation,)f(more)f(than)i(one)g(SAs)2010 5400 y(can)k(b)r(e)g(asso)r(ciated)h(with)f(an)g Fd(enc)f Fg(in)n(terface.)p eop %%Page: 7 7 7 6 bop 0 83 a Fk(The)36 b(e\013ect)g(of)g(these)g(c)n(hanges)e(is)i (that)g(lo)r(cal)f(area)f(net-)0 183 y(w)n(orks)j(\(LANs\))j(ma)n(y)e (b)r(e)i(bridged)e(o)n(v)n(er)f(a)i(public)g(net-)0 282 y(w)n(ork.)49 b(All)33 b(that)g(is)f(necessary)e(is)i(that)h(eac)n(h)e (LAN)i(con-)0 382 y(tain)i(an)g(IPsec)f(bridge)g(connecting)g(it)i(to)e (one)h(or)f(more)0 482 y(other)29 b(LANs.)44 b(F)-7 b(rom)29 b(the)h(p)r(oin)n(t)g(of)f(view)h(of)g(the)g(bridge,)0 581 y(the)21 b(IPsec)f(link)h(is)f(iden)n(tical)g(to)h(an)f(ethernet)h (net)n(w)n(ork,)g(al-)0 681 y(lo)n(wing)28 b(for)h(creation)f(of)h (arbitrary)e(top)r(ologies.)40 b(La)n(y)n(er-2)0 780 y(and)25 b(La)n(y)n(er-3)d(\014ltering,)k(spanning)e(tree)h (algorithms,)g Fj(etc.)0 880 y Fk(ma)n(y)30 b(all)g(b)r(e)h(used)g(in)g (the)g(IPsec-bridged)d(net)n(w)n(ork)i(with)0 980 y(literally)d(no)g(c) n(hanges.)0 1179 y(The)h(mo)r(di\014cations)g(needed)g(to)g(the)g Fj(enc)h Fk(and)f Fj(bridge)h Fk(in-)0 1279 y(terface)c(co)r(de)g(w)n (ere)g(minimal.)36 b(F)-7 b(or)25 b(the)h(bridge,)g(the)f(only)0 1378 y(c)n(hanges)g(necessary)f(w)n(ere)i(to)g(allo)n(w)f(non-ethernet) h(in)n(ter-)0 1478 y(faces)c(to)h(b)r(e)g(attac)n(hed)f(and)h (initialized)f(prop)r(erly)g(\(for)h(ex-)0 1577 y(ample,)i(it)h(is)f (not)g(necessary)e(to)i(switc)n(h)g(an)g Fj(enc)g Fk(in)n(terface)0 1677 y(in)n(to)30 b(promiscuous)e(mo)r(de\).)45 b(In)30 b(the)g Fj(enc)g Fk(co)r(de,)h(the)f(rou-)0 1777 y(tine)41 b(that)g(handles)f(transmission)f(w)n(as)g(augmen)n(ted)h(to)0 1876 y(pass)28 b(all)g(enqueued)g(ethernet)h(frames)e(to)i(IPsec)e(for) h(pro-)0 1976 y(cessing)k(and)h(further)h(transmission,)f(after)g (encapsulat-)0 2076 y(ing)22 b(them)h(in)g(IP)f(or)g(IPv6.)34 b(Note)22 b(that)h(no)g(SPD)f(lo)r(okup)g(is)0 2175 y(necessary)d (here,)j(since)f(the)g(output)g(SA)g(to)g(use)g(is)g(already)0 2275 y(kno)n(wn.)0 2474 y(T)-7 b(o)30 b(supp)r(ort)h(m)n(ultiple)g (bridge)g(top)r(ologies)e(on)h(the)i(same)0 2574 y(host,)26 b(a)f(con\014gurable)g(n)n(um)n(b)r(er)g(of)h Fj(enc)g Fk(in)n(terfaces)f(is)h(cre-)0 2673 y(ated.)69 b(This)38 b(n)n(um)n(b)r(er)g(ma)n(y)f(b)r(e)i(set)f(at)g(k)n(ernel)f(compile)0 2773 y(time.)45 b(By)29 b(con)n(v)n(en)n(tion,)g(pac)n(k)n(ets)g (receiv)n(ed)g(on)h(SAs)g(that)0 2873 y(do)f(not)g(ha)n(v)n(e)e(an)i Fj(enc)g Fk(in)n(terface)f(asso)r(ciated)g(with)h(them,)0 2972 y(are)j(made)h(to)f(app)r(ear)h(as)f(if)h(they)g(arriv)n(ed)f(on)g (the)i Fj(enc0)0 3072 y Fk(in)n(terface.)i(F)-7 b(urthermore,)25 b(the)h Fj(enc0)h Fk(in)n(terface)e(is)h(not)g(al-)0 3171 y(lo)n(w)n(ed)d(to)h(ha)n(v)n(e)f(an)n(y)g(SAs)h(asso)r(ciated)f (with)i(it,)g(nor)e(can)h(it)0 3271 y(b)r(e)j(attac)n(hed)e(to)h(a)g (bridge.)36 b(Th)n(us,)26 b(pac)n(k)n(ets)f(on)g(SAs)i(that)0 3371 y(ha)n(v)n(e)33 b(an)g Fj(enc)h Fk(in)n(terface)f(asso)r(ciated)g (ma)n(y)g(b)r(e)h(traced)f(or)0 3470 y(\014ltered)d(using)f(that)i(in)n (terface.)43 b(F)-7 b(or)29 b(all)h(other)f(SAs,)i(the)0 3570 y Fj(enc0)d Fk(in)n(terface)f(ma)n(y)g(b)r(e)h(used.)0 3769 y(Implemen)n(tation)49 b(of)g(the)h(Ethernet-o)n(v)n(er-IP)45 b(proto)r(col)0 3869 y(also)36 b(pro)n(v)n(ed)f(straigh)n(tforw)n(ard,) h(as)f(the)i(output)h(side)e(of)0 3968 y(the)d(proto)r(col)f(and)h(the) g(\014rst)g(half)g(its)g(input)h(pro)r(cessing)0 4068 y(are)28 b(iden)n(tical)h(to)g(IP-in-IP)f(encapsulation.)41 b(A)n(t)29 b(the)h(end)0 4168 y(of)24 b(input)h(pro)r(cessing,)e(if)i (its)f(input)h(in)n(terface)e(is)h(link)n(ed)g(to)0 4267 y(a)35 b(bridge,)h(the)g(pac)n(k)n(et)e(is)h(passed)g(to)g(the)h (bridge)e(input)0 4367 y(routine.)i(If)28 b(a)e(frame)g(is)h(receiv)n (ed)f(o)n(v)n(er)f(an)i(IPsec)f(SA,)h(its)0 4467 y(input)33 b(in)n(terface)f(will)h(b)r(e)f(the)h Fj(enc)g Fk(in)n(terface)e(asso)r (ciated)0 4566 y(with)d(the)g(SA)g(\(see)g(Figures)e(1)i(and)f(2\).)0 4765 y(In)d(all,)g(less)f(than)h(300)e(lines)i(of)f(additional)h(co)r (de)f(in)h(IPsec)0 4865 y(and)32 b(the)h(bridge)f(w)n(ere)g(necessary)e (to)j(implemen)n(ted)g(the)0 4965 y(virtual)27 b(LAN)h(functionalit)n (y)-7 b(.)0 5164 y(When)29 b(it)h(comes)e(to)h(p)r(erformance,)f(the)h (highest)g(cost)f(is,)0 5264 y(as)k(migh)n(t)g(b)r(e)h(exp)r(ected,)h (in)f(the)g(encryption.)51 b(Figure)31 b(3)0 5363 y(sho)n(ws)26 b(the)h(cost)f(of)h(v)-5 b(arious)25 b(algorithms)g(\(and)i(com)n (bina-)2010 83 y(tions)22 b(thereof)6 b(\).)36 b(Note)22 b(that)h(AH)g(only)f(p)r(erforms)g(authen-)2010 183 y(tication)27 b(\(the)i(pac)n(k)n(ets)d(are)h(unencrypted\).)2010 382 y(Note)58 b(ho)n(w)n(ev)n(er)d(that)j(it)g(is)f(usually)g(the)h(case)f (that)2010 482 y(the)c(wide-area)f(net)n(w)n(ork)f(link)i(o)n(v)n(er)f (whic)n(h)h(the)g(vir-)2010 581 y(tual)42 b(LAN)g(is)g(established)f (is)g(m)n(uc)n(h)h(slo)n(w)n(er)e(than)i(the)2010 681 y(mem)n(b)r(er)e(LANs,)j(and)c(slo)n(w)n(er)f(than)i(the)g(times)g(sho) n(wn)2010 780 y(ab)r(o)n(v)n(e.)56 b(Th)n(us,)35 b(realistically)-7 b(,)35 b(the)g(p)r(erformance)e(is)h(lim-)2010 880 y(ited)40 b(mainly)e(b)n(y)h(the)h(in)n(terconnecting)e(infrastructure.)2010 980 y(The)48 b(\014ltering)f(capabilities)g(of)h(the)g(bridge)f(\(blo)r (c)n(king)2010 1079 y(m)n(ulticast/broadcast)27 b(and)i(non-IP)f(pac)n (k)n(ets\))h(can)f(b)r(e)i(of)2010 1179 y(some)j(v)-5 b(alue)33 b(here)g(in)h(managing)e(the)h(v)n(olume)g(of)h(tra\016c)2010 1279 y(sen)n(t)27 b(o)n(v)n(er)f(the)i(encrypted)g(links.)2010 1478 y(Virtual)36 b(LAN)g(\(vLAN\))h(functionalit)n(y)f(is)g(o\013ered) f(b)n(y)g(a)2010 1577 y(n)n(um)n(b)r(er)c(of)g(bridges,)g(alb)r(eit)h (it)g(is)f(used)g(to)g(mean)g(some-)2010 1677 y(thing)g(di\013eren)n(t) h(from)f(what)g(w)n(e)g(ha)n(v)n(e)f(describ)r(ed;)j(more)2010 1777 y(sp)r(eci\014cally)-7 b(,)27 b(vLANs)h(are)f(used)h(to)f (compartmen)n(talize)f(a)2010 1876 y(ph)n(ysical)d(net)n(w)n(ork)e(in)n (to)j(a)f(n)n(um)n(b)r(er)g(of)g(\\isolated")f(LANs.)2010 1976 y(The)33 b(main)f(goal)f(is)i(to)f(decrease)g(the)h(tra\016c)f (\\noise")f(as)2010 2076 y(seen)18 b(b)n(y)h(mac)n(hines)f(that)h(do)f (not)h(need)g(to)f(pro)r(cess)g(it)h(\()p Fj(e.g.,)2010 2175 y Fk(a)j(prin)n(ter)g(do)r(es)g(not)g(need)g(to)h(receiv)n(e)e (NFS)i(pac)n(k)n(ets;)g(lik)n(e-)2010 2275 y(wise,)35 b(normal)e(hosts)h(on)f(the)h(subnet)h(probably)d(do)i(not)2010 2374 y(need)i(to)f(see)h(the)g(AppleT)-7 b(alk)36 b(pac)n(k)n(ets)e (the)i(prin)n(tserv)n(er)2010 2474 y(uses)28 b(to)g(submit)g(jobs)g(to) g(the)g(prin)n(ter\).)38 b(A)29 b(side)f(e\013ect)g(of)2010 2574 y(vLAN)21 b(emplo)n(ymen)n(t)e(is)h(a)g(limited)h(form)f(of)g (securit)n(y)f(from)2010 2673 y(casual)29 b(pac)n(k)n(et)f(sni\016ng.) 44 b(Suc)n(h)29 b(vLANs)h(do)g(not)f(pro)n(vide)2010 2773 y(the)e(same)g(features)f(our)h(encrypting)f(bridge)h(o\013ers)f (\(and)2010 2873 y(vice)h(v)n(ersa\).)2010 3240 y Fl(3.3)105 b(Bump)35 b(In)f(The)h(Wire)2010 3607 y Fk(As)g(men)n(tioned)g(in)g (section)f(3,)i(the)f(bridge)g(can)f(also)g(b)r(e)2010 3706 y(used)42 b(as)f(a)h(transparen)n(t)f(IPsec)g(b)r(o)n(x,)k (sitting)d(in)g(fron)n(t)2010 3806 y(of)35 b(a)f(host)h(or)e(net)n(w)n (ork)h(and)g(IPsec-pro)r(cessing)e(pac)n(k)n(ets)2010 3906 y(tra)n(v)n(ersing)25 b(it.)38 b(This)28 b(con\014guration)e(is)i (called)f(\\bump)h(in)2010 4005 y(the)36 b(wire")f(\(BITW\))i(in)f(the) g(IPsec)f(arc)n(hitecture.)60 b(The)2010 4105 y(encrypting)30 b(bridge)f(as)h(describ)r(ed)g(in)h(the)g(previous)e(sec-)2010 4204 y(tion)38 b(can)f(b)r(e)h(used)f(almost)g(as-is)g(when)g(the)h (protected)2010 4304 y(hosts)25 b(or)f(net)n(w)n(orks)f(are)i (con\014gured)f(to)h(only)f(talk)h(to)g(one)2010 4404 y(remote)d(host)h(\(or)f(securit)n(y)g(gatew)n(a)n(y\):)33 b(an)23 b(incoming)f(and)2010 4503 y(outgoing)k(SA)i(pair)f(can)g(b)r (e)h(asso)r(ciated)e(with)i(an)f Fj(enc)h Fk(in-)2010 4603 y(terface)22 b(as)f(b)r(efore,)i(and)f(IPsec)g(pro)r(cessing)e(is) i(done)g(along)2010 4703 y(the)k(same)g(lines.)36 b(Ho)n(w)n(ev)n(er,) 25 b(rather)g(than)h(encapsulating)2010 4802 y(ethernet)31 b(frames)e(inside)i(IP)f(pac)n(k)n(ets)f(\(and)h(then)h(IPsec-)2010 4902 y(pro)r(cessing)k(these\),)40 b(w)n(e)c(extract)g(the)i(IP)e(pac)n (k)n(ets)f(from)2010 5001 y(the)e(ethernet)f(frames)f(and)h(do)g (IP-in-IP)f(encapsulation)2010 5101 y(instead.)k(The)24 b(administrator)e(can)h(sp)r(ecify)h(whic)n(h)f(of)h(the)2010 5201 y(t)n(w)n(o)36 b(t)n(yp)r(es)h(of)f(encapsulation)g(should)g(b)r (e)h(used)g(simply)2010 5300 y(b)n(y)e(setting)h(the)f(appropriate)f (in)n(terface)h(\015ag)g(using)g(the)2010 5400 y Fj(ifc)l(on\014g)29 b Fk(command.)p eop %%Page: 8 8 8 7 bop 1070 3 1731 4 v 1068 103 4 100 v 1120 73 a Fk(T)-7 b(ransform)p 2240 103 V 795 w(Mbit/second)p 2799 103 V 1070 106 1731 4 v 1068 206 4 100 v 1120 176 a(Soft)n(w)n(are)26 b(AH)i(MD5)p 2240 206 V 769 w(67.87)p 2799 206 V 1070 209 1731 4 v 1068 309 4 100 v 1120 279 a(Soft)n(w)n(are)e(AH)i(SHA1)p 2240 309 V 738 w(47.79)p 2799 309 V 1070 312 1731 4 v 1068 412 4 100 v 1120 382 a(Soft)n(w)n(are)e(ESP)h(DES-MD5)p 2240 412 V 540 w(19.56)p 2799 412 V 1070 415 1731 4 v 1068 515 4 100 v 1120 485 a(Soft)n(w)n(are)f(ESP)h(Blo)n(w\014sh-SHA1)p 2240 515 V 368 w(23.61)p 2799 515 V 1070 518 1731 4 v 1068 618 4 100 v 1120 588 a(Soft)n(w)n(are)f(ESP)h(3DES-SHA1)p 2240 618 V 509 w(9.07)p 2799 618 V 1070 621 1731 4 v 1068 721 4 100 v 1120 691 a(Hardw)n(are)e(ESP)i(DES-MD5)p 2240 721 V 501 w(62.12)p 2799 721 V 1070 724 1731 4 v 1068 824 4 100 v 1120 794 a(Hardw)n(are)e(ESP)i(3DES-SHA1)p 2240 824 V 428 w(63.12)p 2799 824 V 1070 827 1731 4 v 0 1064 a(Figure)32 b(3:)45 b(Throughput)32 b(of)g(a)g(TCP)g(session)f (o)n(v)n(er)f(IPsec)i(b)r(et)n(w)n(een)g(t)n(w)n(o)f(K6-3/550)e(b)r(o)n (xes)j(directly)f(connected)i(with)0 1163 y(100Mbit/s)26 b(ethernet.)37 b(F)-7 b(or)27 b(the)h(hardw)n(are)e(n)n(um)n(b)r(ers,)h (w)n(e)g(used)g(a)h(card)e(with)i(the)g(Hi/Fn)g(7751)e(c)n(hip.)0 1433 y(The)37 b(SAs)g(asso)r(ciated)e(with)i(the)g Fj(enc)g Fk(in)n(terface)f(\(whic)n(h)0 1533 y(m)n(ust)i(b)r(e)g(man)n(ually)e (con\014gured\))h(can)g(use)h(the)g(IP)f(ad-)0 1632 y(dress)f(of)h(the) g(bridge,)i(or)d(the)i(IP)e(address)g(of)h(the)g(pro-)0 1732 y(tected)29 b(host.)38 b(In)28 b(the)h(former)e(case,)h(the)g (bridge)g(exhibits)0 1831 y(the)19 b(exact)f(same)g(c)n(haracteristics) e(as)i(an)g(encrypting)g(gate-)0 1931 y(w)n(a)n(y)k(\(pac)n(k)n(ets)g (sen)n(t)g(to)h(the)g(remote)f(host)h(or)f(gatew)n(a)n(y)f(list)0 2031 y(the)34 b(bridge's)f(IP)g(address)g(as)g(the)h(source\);)h(in)f (con)n(trast)0 2130 y(to)26 b(a)g(gatew)n(a)n(y)e(ho)n(w)n(ev)n(er,)h (no)h(con\014guration)e(c)n(hanges)h(are)0 2230 y(necessary)36 b(in)i(the)h(net)n(w)n(ork)d(or)h(the)h(protected)g(host\(s\))0 2330 y(when)30 b(placing)e(the)i(bridge.)42 b(Since)29 b(SA)h(con\014guration)e(is)0 2429 y(man)n(ual,)21 b(there)g(are)f(no)g (issues)g(with)h(authen)n(tication)g(dur-)0 2529 y(ing)27 b(k)n(ey)g(establishmen)n(t)h(\(as)f(describ)r(ed)g(in)h(section)f (3\).)0 2728 y(When)k(the)h(SAs)f(use)g(the)g(IP)g(address)e(of)i(the)g (protected)0 2828 y(host,)k(the)g(bridge)e(is)h(totally)f(transparen)n (t)g(to)g(b)r(oth)i(the)0 2927 y(protected)25 b(host)g(and)h(the)g (destination)f(host)g(or)g(gatew)n(a)n(y)-7 b(.)0 3027 y(There)33 b(are)g(t)n(w)n(o)g(issues)g(that)h(need)g(to)g(b)r(e)g (addressed)f(in)0 3127 y(this)28 b(con\014guration)e(ho)n(w)n(ev)n(er:) 83 3423 y Ff(\017)41 b Fk(The)25 b(IPsec)f(standard)g(sp)r(eci\014es)h (that)h(IP)e(fragmen)n(ts)166 3522 y(should)51 b(not)g(b)r(e)g(IPsec)f (pro)r(cessed)g(in)h(transp)r(ort)166 3622 y(mo)r(de.)60 b(That)36 b(is,)h(fragmen)n(tation)d(m)n(ust)i(o)r(ccur)e(af-)166 3721 y(ter)28 b(IPsec)f(pro)r(cessing)f(has)h(tak)n(en)h(place,)f(or)g (tunnel)166 3821 y(mo)r(de)39 b(\(IP-in-IP)e(encapsulation\))h(m)n(ust) h(b)r(e)g(used.)166 3921 y(Th)n(us,)g(the)e(bridge)f(m)n(ust)h(either)f (use)h(only)f(tunnel)166 4020 y(mo)r(de)46 b(IPsec,)k(or)45 b(reassem)n(ble)f(all)i(fragmen)n(ts)f(re-)166 4120 y(ceiv)n(ed)37 b(from)g(the)g(protected)g(host,)j(IPsec-pro)r(cess)166 4220 y(the)h(re-constructed)e(pac)n(k)n(et,)j(then)f(fragmen)n(t)f(the) 166 4319 y(resulting)k(pac)n(k)n(et.)88 b(F)-7 b(or)44 b(p)r(erformance)g(and)g(sim-)166 4419 y(plicit)n(y)38 b(reasons,)i(w)n(e)e(decided)g(to)g(use)g(the)h(former)166 4518 y(approac)n(h.)50 b(The)33 b(disadv)-5 b(an)n(tage)31 b(is)h(that)h(all)f(IPsec-)166 4618 y(pro)r(cessed)d(pac)n(k)n(ets)h (are)f(20)h(b)n(ytes)g(larger)f(\(the)i(size)166 4718 y(of)d(the)g(external)e(IP)i(header\).)83 4902 y Ff(\017)41 b Fk(Since)35 b(the)g(remote)e(host)i(is)f(not)h(a)n(w)n(are)d(of)i (the)h(en-)166 5001 y(crypting)f(bridge's)f(existence,)j(IPsec)d(pac)n (k)n(ets)g(will)166 5101 y(b)r(e)27 b(addressed)f(to)g(the)i(protected) e(host)h(or)e(net)n(w)n(ork.)166 5201 y(Th)n(us,)c(w)n(e)e(ha)n(v)n(e)f (to)h(mo)r(dify)h(the)g(bridge)e(to)i(recognize)166 5300 y(these)33 b(addresses)f(and)h(pro)r(cess)e(those)i(IPsec)f(pac)n(k-) 166 5400 y(ets.)k(In)25 b(fact,)g(address)e(recognition)g(is)h (unnecessary)-7 b(.)2176 1433 y(The)35 b(bridge)f(only)g(has)g(to)h(w)n (atc)n(h)e(for)i(IPsec)e(pac)n(k-)2176 1533 y(ets)k(\(transp)r(ort)f (proto)r(col)g(ESP)g(or)g(AH\),)i(and)f(use)2176 1632 y(the)42 b(information)f(in)h(the)f(pac)n(k)n(et)g(to)g(p)r(erform)g (an)2176 1732 y(SA)e(lo)r(okup.)68 b(If)39 b(an)f(SA)h(is)f(found,)j (the)e(pac)n(k)n(et)e(is)2176 1831 y(pro)r(cessed.)e(Otherwise,)24 b(it)g(ma)n(y)f(b)r(e)i(dropp)r(ed)f(or)f(al-)2176 1931 y(lo)n(w)n(ed)32 b(through)g(dep)r(ending)h(on)f(the)h(\014ltering)g (con-)2176 2031 y(\014guration.)2010 2297 y(A)28 b(h)n(ybrid)f(SA)g (con\014guration)f(ma)n(y)h(b)r(e)g(used)h(\(where)f(the)2010 2397 y(bridge)21 b(uses)g(its)h(address)e(in)i(one)f(direction,)i(and)e (the)h(pro-)2010 2496 y(tected)28 b(host's)f(address)g(in)h(the)g (other\).)37 b(Suc)n(h)28 b(a)f(con\014gu-)2010 2596 y(ration)22 b(do)r(es)g(not)h(seem)g(to)g(o\013er)f(an)n(y)g(substan)n (tial)g(b)r(ene\014t)2010 2695 y(ho)n(w)n(ev)n(er)e(\(and)j(ma)n(y)f (in)g(fact)h(result)f(in)h(confusing)f(the)h(ad-)2010 2795 y(ministrator\).)2010 3088 y Fl(3.4)105 b(T)-9 b(ransparen)m(t)35 b(P)m(olicy)h(Enforcemen)m(t)2010 3380 y Fk(While)22 b(the)g(mec)n(hanism)f(describ)r(ed)g(in)h(the)g(previous)e(sub-)2010 3480 y(section)27 b(is)h(useful)g(in)g(its)g(o)n(wn)f(righ)n(t,)h(its)f (usefulness)h(dra-)2010 3579 y(matically)c(expands)h(when)g(the)g (bridge)f(is)h(mo)r(di\014ed)g(suc)n(h)2010 3679 y(that)g(it)h(can)e (automatically)g(establish)h(SAs)g(on)g(b)r(ehalf)g(of)2010 3779 y(the)j(protected)f(hosts.)2010 3978 y(Our)52 b(IPsec)g(implemen)n (tation)g(already)f(supp)r(orts)h(dy-)2010 4077 y(namic)38 b(SA)g(acquisition)f(b)n(y)h(notifying)g(a)f(k)n(ey)h(manage-)2010 4177 y(men)n(t)g(daemon)g(lik)n(e)f Fj(isakmp)l(d)j Fk([4])e(using)g (the)g(PF)p 3662 4177 25 4 v 30 w(KEY)2010 4277 y(in)n(terface.)c(SA)22 b(acquisition)f(o)r(ccurs)f(in)i(the)g(follo)n(wing)e(t)n(w)n(o)2010 4376 y(cases:)2093 4643 y Ff(\017)41 b Fk(An)c(application)g(requests)f (some)g(securit)n(y)g(service)2176 4742 y(on)f(a)g(so)r(c)n(k)n(et,)i (b)n(y)e(using)g(the)h Fj(setso)l(ckopt\(\))g Fk(system)2176 4842 y(call,)24 b(and)f(no)g(SAs)h(appropriate)e(for)h(the)g(tra\016c)g (pat-)2176 4941 y(tern)28 b(or)e(securit)n(y)h(lev)n(el)g(exist.)2093 5101 y Ff(\017)41 b Fk(The)36 b(k)n(ernel)g(decides)g(that)g(a)g(pac)n (k)n(et)f(needs)i(to)f(b)r(e)2176 5201 y(IPsec-pro)r(cessed,)26 b(but)i(no)g(appropriate)e(SAs)i(exist.)2176 5300 y(The)33 b(k)n(ernel)e(reac)n(hes)g(this)i(decision)e(b)n(y)i(consulting)2176 5400 y(the)28 b(SPD)g(\(as)f(describ)r(ed)g(in)h(section)f(3.1\).)p eop %%Page: 9 9 9 8 bop 0 83 a Fk(W)-7 b(e)33 b(can)f(use)g(the)h(same)f(mec)n(hanism)g (inside)g(the)h(bridge)0 183 y(to)j(dynamically)g(establish)g(SAs:)55 b(when)36 b(an)g(IP)g(pac)n(k)n(et)0 282 y(\(rather,)25 b(an)f(ethernet)h(frame)f(con)n(taining)g(an)g(IP)h(pac)n(k)n(et\))0 382 y(reac)n(hes)38 b(the)j(bridge)e(and)g(is)h(ab)r(out)g(to)g(b)r(e)g (\\transmit-)0 482 y(ted")26 b(o)n(v)n(er)f(an)h Fj(enc)h Fk(in)n(terface,)f(an)g(SPD)h(lo)r(okup)f(is)g(made.)0 581 y(If)j(an)g(SA)g(appropriate)e(for)i(this)g(pac)n(k)n(et)f(already) f(exists,)0 681 y(it)39 b(is)f(used.)69 b(Otherwise,)40 b(the)f(pac)n(k)n(et)e(is)h(dropp)r(ed)g(and)0 780 y(a)d (noti\014cation)g(is)g(sen)n(t)h(to)f(the)h(k)n(ey)e(managemen)n(t)h (dae-)0 880 y(mon)41 b(to)f(establish)h(suc)n(h)f(an)h(SA.)g(The)g (gran)n(ularit)n(y)d(of)0 980 y(the)23 b(SA)g(ma)n(y)e(b)r(e)i (con\014gured)f(b)n(y)g(the)g(administrator)f(\(the)0 1079 y(same)g(SA)h(ma)n(y)f(b)r(e)h(used)f(for)g(all)h(tra\016c)f(b)r (et)n(w)n(een)g(the)h(pro-)0 1179 y(tected)h(and)f(the)g(remote)g (host,)h(or)e(just)i(the)f(sp)r(eci\014c)h(TCP)0 1279 y(connection)j(ma)n(y)g(b)r(e)h(protected\).)36 b(F)-7 b(uture)27 b(pac)n(k)n(ets)f(with)0 1378 y(the)32 b(same)g(c)n (haracteristics)e(as)h(the)h(original)f(pac)n(k)n(et)g(will)0 1478 y(mak)n(e)c(use)g(of)h(the)g(newly-established)f(SA.)h(F)-7 b(ortunately)g(,)0 1577 y(no)27 b(c)n(hanges)f(to)i(the)g(SPD)g(are)e (necessary)-7 b(.)0 1777 y(This)25 b(mec)n(hanism)f(ma)n(y)g(b)r(e)i (used)e(to)h(p)r(erform)g(automatic)0 1876 y(re-k)n(eying)h(for)i(the)h (virtual)f(LAN)g(or)g(the)g(simple)h(\\bump)0 1976 y(in)21 b(the)g(wire")f(con\014gurations)f(describ)r(ed)i(in)g(the)g(previous)0 2076 y(t)n(w)n(o)27 b(subsections.)0 2275 y(Ho)n(w)n(ev)n(er,)34 b(left)h(to)f(its)h(o)n(wn)f(devices,)h(k)n(ey)f(managemen)n(t)0 2374 y(will)42 b(establish)g(an)f(SA)i(using)e(the)i(IP)e(address)g(of) h(the)0 2474 y(bridge)34 b(\(and)h(th)n(us)g(end)g(up)h(b)r(eing)f (functionally)g(equiv-)0 2574 y(alen)n(t)26 b(to)h(an)g(encrypting)f (gatew)n(a)n(y\).)35 b(T)-7 b(o)26 b(really)g(hide)h(the)0 2673 y(bridge)j(from)g(the)i(remote)e(host,)h(the)g(source)f(address)f (of)0 2773 y(the)43 b(protected)f(host)h(m)n(ust)g(b)r(e)g(used.)82 b(Th)n(us)43 b(the)g(k)n(ey)0 2873 y(managemen)n(t)c(daemon,)k Fj(isakmp)l(d,)j Fk(has)40 b(to)g(op)r(erate)g(in)0 2972 y(the)g(\\bridge)f(mo)r(de,")j(wherein)e(it)g(asks)f(the)h(k)n(ernel)f (to)0 3072 y(use)34 b(a)f(non-lo)r(cal)g(IP)h(address.)54 b(This)34 b(requires)f(a)h(minor)0 3171 y(c)n(hange)d(in)h(the)g Fj(bind\(\))h Fk(system)f(call)f(co)r(de,)i(to)f(allo)n(w)f(for)0 3271 y(so)r(c)n(k)n(et)j(binding)h(to)g(non-lo)r(cal)f(addresses.)57 b(T)-7 b(o)35 b(capture)0 3371 y(the)27 b(resp)r(onses,)f(all)h(UDP)g (tra\016c)f(to)h(p)r(ort)g(500)f(\(the)h(p)r(ort)0 3470 y(used)g(b)n(y)h(the)f(IKE)g(proto)r(col\))f(is)i(div)n(erted)f(to)g (the)h(bridge)0 3570 y Fj(isakmp)l(d.)46 b Fk(This)30 b(is)g(also)f(necessary)g(when)h(remote)g(hosts)0 3670 y(attempt)41 b(to)e(initiate)i(an)f(IKE)f(exc)n(hange)f(with)j(a)e (pro-)0 3769 y(tected)i(host.)76 b(In)41 b(b)r(oth)h(cases,)h Fj(isakmp)l(d)f Fk(m)n(ust)f(b)r(e)g(in-)0 3869 y(formed)g(of)g(and)g (use)g(the)h(\\lo)r(cal")d(address)h(asso)r(ciated)0 3968 y(with)34 b(the)g(incoming)g(pac)n(k)n(et.)54 b Fj(isakmp)l(d)35 b Fk(also)e(needs)h(the)0 4068 y(\\lo)r(cal")e (address)g(so)h(as)g(to)g(select)g(the)h(appropriate)e(au-)0 4168 y(then)n(tication)38 b(information)g(\()p Fj(e.g.,)43 b Fk(secret)38 b(DSA)h([15)o(])g(or)0 4267 y(RSA)h([12)o(])g(k)n(ey)f (when)h(doing)f(X.509)g(or)g(DNSSEC)h(au-)0 4367 y(then)n(tication\).) 52 b(The)32 b(c)n(hanges)f(to)i(this)f(e\013ect)h(are)f(fairly)0 4467 y(minimal.)0 4666 y(Incoming)g(IPsec)g(pac)n(k)n(ets)g(are)g(pro)r (cessed)f(as)h(describ)r(ed)0 4765 y(in)27 b(the)g(previous)e (subsection.)36 b(Other)26 b(incoming)g(pac)n(k)n(ets)0 4865 y(ma)n(y)18 b(cause)f(an)h(SA)h(acquisition,)h(dep)r(ending)f(on)f (the)h(secu-)0 4965 y(rit)n(y)i(p)r(olicy)g(set)h(b)n(y)f(the)h (administrator.)33 b(Again,)22 b Fj(isakmp)l(d)0 5064 y Fk(needs)31 b(to)h(b)r(e)g(informed)f(of)g(what)h(IP)f(address)f(to)h (use)h(as)0 5164 y(the)c(source)e(address)h(during)g(the)h(exc)n (hange.)0 5363 y(The)d(com)n(bination)g(of)g(pac)n(k)n(et)f (\014ltering)h(through)g Fj(ipf)h Fk(and)2010 83 y(SA-on-demand)43 b(can)g(b)r(e)h(used)f(e\013ectiv)n(ely)g(to)h(enforce)2010 183 y(net)n(w)n(ork)39 b(securit)n(y)h(p)r(olicy)g(for)g(the)h (protected)f(host\(s\).)2010 282 y(One)d(particularly)f(in)n(teresting) g(con\014guration)g(in)n(v)n(olv)n(es)2010 382 y(the)44 b(bridge)g(establishing)f(SAs)h(for)g(unencrypted-only)2010 482 y(tra\016c;)50 b(if)43 b(end-hosts)f(use)g(IPsec)g(or)g(SSL)h(for)f (end-to-)2010 581 y(end)28 b(pac)n(k)n(et)f(securit)n(y)-7 b(,)27 b(the)h(bridge)f(simply)h(forw)n(ards)e(the)2010 681 y(pac)n(k)n(ets.)57 b(In)34 b(another)g(con\014guration,)h(the)g (bridge)e(p)r(er-)2010 780 y(mits)c(all)g(pac)n(k)n(ets)f(through,)h (but)g(attempts)h(to)e(establish)2010 880 y(SAs)j(for)f(suc)n(h)g(comm) n(unications)g(and)g(uses)g(them)i(if)f(the)2010 980 y(remote)h(hosts)g(can)g(do)g(IPsec)g(\(also)f(kno)n(wn)h(as)g(\\opp)r (or-)2010 1079 y(tunistic)c(encryption"\).)2010 1496 y Fo(4)112 b(Implemen)m(tation)32 b(Status)i(and)h(F)-9 b(uture)2178 1612 y(W)g(ork)2010 1913 y Fk(Curren)n(tly)i(,)43 b(the)e(bridge)f(lac)n(ks)f(supp)r(ort)h(for)g(the)h(span-)2010 2013 y(ning)24 b(tree)f(proto)r(col)g(whic)n(h)g(is)h(part)f(of)h(the)g (IEEE)e(802.1D)2010 2112 y(standard[16)n(],)32 b(so)e(care)g(m)n(ust)h (b)r(e)g(tak)n(en)f(to)h(ensure)f(that)2010 2212 y(lo)r(ops)h(are)f (not)h(created)g(in)h(the)g(net)n(w)n(ork.)46 b(The)32 b(La)n(y)n(er-2)2010 2312 y(\014lter)i(rule)g(system)g(should)g(b)r(e)g (extended)h(to)f(pro)n(vide)e(a)2010 2411 y(general)17 b(mec)n(hanism)h(for)g(\014ltering)h(sp)r(eci\014c)f(ethernet)h(pro-) 2010 2511 y(to)r(cols.)35 b(W)-7 b(e)24 b(also)f(in)n(tend)h(to)f (extend)h(the)h(bridge)e(to)g(allo)n(w)2010 2610 y(for)h(other)h(t)n (yp)r(es)f(of)h(LAN)g(bridging)f(\(FDDI,)j(PPP)-7 b(,)23 b Fj(etc.)p Fk(\).)2010 2810 y(With)g(regards)c(to)j(dynamic)f(SA)h (establishmen)n(t,)h(all)f(traf-)2010 2909 y(\014c)28 b(that)g(tra)n(v)n(erses)d(the)j(bridge)g(con\014gured)e(in)i(the)h (man-)2010 3009 y(ner)f(describ)r(ed)g(in)h(section)e(3.4)h(causes)f (SA)i(acquisitions.)2010 3109 y(This)22 b(is)g(b)r(oth)h(undesirable)e (and)h(can)g(ha)n(v)n(e)f(sev)n(ere)g(p)r(erfor-)2010 3208 y(mance)28 b(implications.)39 b(A)29 b(mec)n(hanism)f(for)g(the)h (adminis-)2010 3308 y(trator)h(to)h(sp)r(ecify)g(whic)n(h)g(pac)n(k)n (et)f(\015o)n(ws)g(should)h(require)2010 3407 y(IPsec)22 b(protection)h(\(and)h(th)n(us)f(cause)g(an)g(SA)h(acquisition\))2010 3507 y(is)e(necessary)-7 b(.)33 b(W)-7 b(e)23 b(are)e(curren)n(tly)g(w) n(orking)g(on)h(this)g(issue.)2010 3706 y(More)e(w)n(ork)f(needs)i(to)g (b)r(e)g(done)g(with)g(regards)e(to)h(the)h(p)r(er-)2010 3806 y(formance)h(implications)g(of)h(frequen)n(t)f(IKE)g (negotiations,)2010 3906 y(as)g(migh)n(t)h(b)r(e)g(the)h(case)e(when)h (the)g(bridge)f(is)h(protecting)f(a)2010 4005 y(large)31 b(net)n(w)n(ork.)49 b(Hardening)31 b(against)g(denial)h(of)g(service) 2010 4105 y(attac)n(ks)23 b(\(b)n(y)g(exploiting)h(to)r(o-aggressiv)n (e)c(SA)k(acquisition)2010 4204 y(rules\))j(is)h(also)e(high)i(in)g (our)e(to-do)h(list.)2010 4404 y(The)41 b(\014ltering)f(bridge)g(can)g (also)g(pro)n(vide)f(a)i(transition)2010 4503 y(step)30 b(for)f(a)g(\\distributed)h(\014rew)n(all"-protected)d(net)n(w)n(ork,) 2010 4603 y(as)g(describ)r(ed)h(in)g([1].)38 b(It)28 b(ma)n(y)f(also)g(b)r(e)h(used)g(in)g(conjunc-)2010 4703 y(tion)21 b(with)g(a)f(distributed)h(\014rew)n(all)f(to)g(pro)n(vide)g (protection)2010 4802 y(against)27 b(lo)n(w-lev)n(el)g(net)n(w)n(ork)f (attac)n(ks)h(\(those)h(that)h(a)e(dis-)2010 4902 y(tributed)e(\014rew) n(all)e(is)h(not)g(w)n(ell-suited)g(to)g(coun)n(ter\),)h(or)e(to)2010 5001 y(protect)32 b(legacy)g(systems)g(that)h(cannot)g(b)r(e)g(mo)r (di\014ed)g(to)2010 5101 y(supp)r(ort)28 b(the)h(required)e (functionalit)n(y)-7 b(.)39 b(V)-7 b(ery)27 b(lo)n(w-priced)2010 5201 y(systems)39 b(\(motherb)r(oard,)j(pro)r(cessor,)f(small)f(disk,)j (t)n(w)n(o)2010 5300 y(ethernet)31 b(cards,)g(mo)r(derate)g(amoun)n(t)g (of)g(memory\))g(ma)n(y)2010 5400 y(b)r(e)h(used)f(in)g(suc)n(h)g(a)g (con\014guration;)g(suc)n(h)g(systems)g(ma)n(y)p eop %%Page: 10 10 10 9 bop 0 83 a Fk(also)28 b(b)r(e)i(used)g(as)f(\\p)r(ersonal)f (\014rew)n(alls,")g(similar)h(to)g(v)-5 b(ar-)0 183 y(ious)27 b(commercial)f(pro)r(ducts)h(that)g(ha)n(v)n(e)f(b)r(egun)i(to)f(mak)n (e)0 282 y(their)h(app)r(earance)e(in)i(the)f(mark)n(et)g(recen)n(tly) -7 b(.)0 684 y Fo(5)112 b(Conclusions)0 969 y Fk(W)-7 b(e)28 b(ha)n(v)n(e)d(giv)n(en)i(an)g(o)n(v)n(erview)e(of)i(the)g(Op)r (enBSD)h(bridge)0 1069 y(implemen)n(tation,)21 b(with)e(our)e (extensions)h(for)g(La)n(y)n(er-2)e(and)0 1169 y(La)n(y)n(er-3)31 b(\014ltering)i(\(at)h(the)h(ethernet)e(and)h(IP)f(la)n(y)n(er,)h(re-)0 1268 y(sp)r(ectiv)n(ely\).)h(F)-7 b(or)23 b(the)h(latter,)g(w)n(e)f (used)h(the)f(existing)g(k)n(er-)0 1368 y(nel)38 b(pac)n(k)n(et)f (\014lter)h(mec)n(hanism,)i Fj(ipf.)70 b Fk(W)-7 b(e)38 b(further)g(pre-)0 1467 y(sen)n(ted)46 b(our)f(in)n(tegration)f(of)i (bridging)f(with)h(IPsec)f(to)0 1567 y(pro)n(vide)23 b(\\virtual)h(LAN")g(functionalit)n(y)-7 b(,)25 b(\\bump-in-the-)0 1667 y(wire")d(supp)r(ort,)h(and)g(a)f(transparen)n(t)f(securit)n(y)h (p)r(olicy)g(en-)0 1766 y(forcemen)n(t)34 b(b)r(o)n(x.)59 b(This)35 b(latter)g(con\014guration)e(is)i(sho)n(wn)0 1866 y(to)24 b(o\013er)f(signi\014can)n(t)g(\015exibilit)n(y)g(to)h (net)n(w)n(ork)e(administra-)0 1966 y(tors,)h(as)f(it)i(can)e(b)r(e)i (used)f(in)g(v)-5 b(arious)21 b(mo)r(des)i(of)g(op)r(eration)0 2065 y(to)i(ensure)f(tra\016c)g(as)h(w)n(ell)f(as)g(host)h(and)g(net)n (w)n(ork)e(protec-)0 2165 y(tion.)37 b(Finally)-7 b(,)26 b(w)n(e)g(discussed)g(the)h(curren)n(t)e(implemen)n(ta-)0 2264 y(tion)j(status)f(and)g(our)g(plans)h(for)f(future)h(w)n(ork.)0 2666 y Fo(6)112 b(Ac)m(kno)m(wledgmen)m(ts)0 2952 y Fk(The)38 b(bridge)f(w)n(as)g(originally)f(dev)n(elop)r(ed)h(as)g(an)h(under-)0 3051 y(graduate)43 b(indep)r(enden)n(t)j(study)f(at)g(the)g(Univ)n (ersit)n(y)f(of)0 3151 y(North)32 b(Carolina)f(at)i(Greensb)r(oro)e(b)n (y)h(Jason)g(L.)g(W)-7 b(righ)n(t)0 3250 y(with)41 b(Dr.)76 b(Suzanne)41 b(Lea)f(as)g(an)g(advisor.)75 b(The)40 b(co)r(de)0 3350 y(w)n(as)28 b(con)n(tributed)h(to)f(the)i(Op)r(enBSD)f(pro)5 b(ject)28 b(and)h(in)n(te-)0 3450 y(grated)j(in)n(to)g(the)i(source)d (tree)i(prior)e(to)i(the)g(2.5)f(release)0 3549 y(\(Ma)n(y)27 b(1999\).)0 3749 y(The)21 b(authors)g(w)n(ould)f(also)h(lik)n(e)g(to)g (thank)g(Theo)g(de)g(Raadt)0 3848 y(and)29 b(Jonathan)g(Smith)h(for)f (their)h(suggestions)e(and)h(sup-)0 3948 y(p)r(ort)c(during)g(the)g (course)f(of)h(this)h(w)n(ork.)34 b(Theo)25 b(de)g(Raadt)0 4047 y(suggested)h(man)n(y)g(of)h(the)g(original)f(concepts)g(b)r (ehind)i(the)0 4147 y(\014ltering)c(bridge)f(and)h(the)g(virtual)f (LAN.)i(This)f(w)n(ork)e(w)n(as)0 4247 y(partly)34 b(sp)r(onsored)g(b)n (y)g(D)n(ARP)-7 b(A)35 b(under)g(gran)n(t)f(F39502-)0 4346 y(99-1-0512-MOD)23 b(P0001.)0 4748 y Fo(7)112 b(Av)-6 b(ailabilit)m(y)0 5033 y Fk(All)30 b(the)g(soft)n(w)n(are)f(describ)r (ed)g(in)h(the)g(pap)r(er)g(is)f(a)n(v)-5 b(ailable)0 5133 y(through)27 b(the)h(Op)r(enBSD)g(w)n(eb)f(page)g(at:)429 5382 y Fc(http://www.openb)o(sd)o(.o)o(rg/)2010 83 y Fo(8)112 b(Disclaimer)2010 394 y Fk(Op)r(enBSD)24 b(is)g(based)f(in)h (Calgary)-7 b(,)23 b(Canada.)35 b(All)24 b(individ-)2010 494 y(uals)j(doing)f(cryptograph)n(y-related)e(w)n(ork)h(do)i(so)f (outside)2010 593 y(coun)n(tries)h(that)g(ha)n(v)n(e)g(limiting)h(la)n (ws.)2010 1021 y Fo(References)2048 1247 y Fb([1])43 b(S.)25 b(M.)h(Bello)n(vin.)34 b(Distributed)25 b(Firew)n(alls.)35 b Fa(;lo)l(gin:)f(mag-)2171 1338 y(azine,)27 b(sp)l(e)l(cial)i(issue)f (on)f(se)l(curity)p Fb(,)h(No)n(v)n(em)n(b)r(er)c(1999.)2048 1475 y([2])43 b(Consultation)d(Committee.)74 b Fa(X.509:)60 b(The)40 b(Dir)l(e)l(ctory)2171 1566 y(A)n(uthentic)l(ation)55 b(F)-6 b(r)l(amework)p Fb(.)117 b(In)n(ternational)53 b(T)-6 b(ele-)2171 1658 y(phone)29 b(and)g(T)-6 b(elegraph,)31 b(In)n(ternational)f(T)-6 b(elecomm)n(uni-)2171 1749 y(cations)27 b(Union,)e(Genev)l(a,)h(1989.)2048 1886 y([3])43 b(D.)24 b(Eastlak)n(e)i(and)e(C.)h(Kaufman.)32 b(Dynamic)23 b(Name)h(Ser-)2171 1977 y(vice)40 b(and)g(Securit)n(y)-6 b(.)78 b(In)n(ternet)39 b(RF)n(C)h(2065,)46 b(Jan)n(uary)2171 2068 y(1997.)2048 2205 y([4])d(Niklas)23 b(Hallqvist)f(and)g(Angelos)h (D.)f(Kerom)n(ytis.)28 b(Imple-)2171 2296 y(men)n(ting)21 b(In)n(ternet)f(Key)h(Exc)n(hange)h(\(IKE\).)27 b(In)22 b Fa(Pr)l(o)l(c)l(e)l(e)l(d-)2171 2388 y(ings)28 b(of)e(the)j(A)n (nnual)e(USENIX)g(T)-6 b(e)l(chnic)l(al)28 b(Confer)l(enc)l(e)p Fb(,)2171 2479 y(June)e(2000.)2048 2616 y([5])43 b(D.)36 b(Harkins)f(and)h(D.)g(Carrel.)66 b(The)36 b(in)n(ternet)g(k)n(ey)f (ex-)2171 2707 y(c)n(hange)f(\(IKE\).)58 b(Request)32 b(for)j(Commen)n(ts)d(\(Prop)r(osed)2171 2799 y(Standard\))f(2409,)k (In)n(ternet)c(Engineering)h(T)-6 b(ask)32 b(F)-6 b(orce,)2171 2890 y(No)n(v)n(em)n(b)r(er)24 b(1998.)2048 3027 y([6])43 b(P)-6 b(.)34 b(Karn)g(and)g(W.)g(Simpson.)59 b(Photuris:)52 b(Session-k)n(ey)2171 3118 y(managemen)n(t)20 b(proto)r(col.)29 b(Request)20 b(for)j(Commen)n(ts)d(\(Ex-)2171 3209 y(p)r(erimen)n (tal\))h(2522,)j(In)n(ternet)d(Engineering)h(T)-6 b(ask)22 b(F)-6 b(orce,)2171 3301 y(Marc)n(h)26 b(1999.)2048 3437 y([7])43 b(S.)19 b(Ken)n(t)g(and)g(R.)g(A)n(tkinson.)k(IP)c(authen)n (tication)h(header.)2171 3529 y(Request)25 b(for)i(Commen)n(ts)d (\(Prop)r(osed)j(Standard\))e(2402,)2171 3620 y(In)n(ternet)g (Engineering)h(T)-6 b(ask)26 b(F)-6 b(orce,)26 b(No)n(v)n(em)n(b)r(er)e (1998.)2048 3757 y([8])43 b(S.)20 b(Ken)n(t)g(and)h(R.)f(A)n(tkinson.) 25 b(IP)c(encapsulating)g(securit)n(y)2171 3848 y(pa)n(yload)28 b(\(ESP\).)41 b(Request)28 b(for)g(Commen)n(ts)f(\(Prop)r(osed)2171 3940 y(Standard\))k(2406,)k(In)n(ternet)c(Engineering)h(T)-6 b(ask)32 b(F)-6 b(orce,)2171 4031 y(No)n(v)n(em)n(b)r(er)24 b(1998.)2048 4168 y([9])43 b(S.)25 b(Ken)n(t)f(and)h(R.)f(A)n(tkinson.) 33 b(Securit)n(y)24 b(arc)n(hitecture)h(for)2171 4259 y(the)d(in)n(ternet)g(proto)r(col.)30 b(Request)22 b(for)h(Commen)n(ts) e(\(Pro-)2171 4350 y(p)r(osed)34 b(Standard\))f(2401,)38 b(In)n(ternet)33 b(Engineering)i(T)-6 b(ask)2171 4442 y(F)g(orce,)26 b(No)n(v)n(em)n(b)r(er)e(1998.)2010 4578 y([10])43 b(A.)35 b(D.)g(Kerom)n(ytis,)j(J.)e(Ioannidis,)i(and)d(J.)h (M.)g(Smith.)2171 4670 y(Implemen)n(ting)16 b(IPsec.)23 b(In)18 b Fa(Pr)l(o)l(c)l(e)l(e)l(dings)23 b(of)e(Glob)l(al)g(Inter-) 2171 4761 y(net)28 b(\(Glob)l(eCom\))g('97)p Fb(,)e(pages)g(1948)g({)g (1952,)h(No)n(v)n(em)n(b)r(er)2171 4852 y(1997.)2010 4989 y([11])43 b(Kirk)26 b(McKusic)n(k,)g(et.)g(al.)36 b Fa(The)28 b(Design)h(and)f(Implemen-)2171 5081 y(tation)35 b(of)e(the)i(4.4BSD)e(Op)l(er)l(ation)i(System)p Fb(.)56 b(Addison)2171 5172 y(W)-6 b(esley)g(,)25 b(1996.)2010 5309 y([12])43 b(RSA)36 b(Lab)r(oratories.)72 b Fa(PK)n(CS)38 b(#1:)56 b(RSA)38 b(Encryption)2171 5400 y(Standar)l(d)p Fb(,)28 b(v)n(ersion)e(1.5)g(edition,)h(1993.)36 b(No)n(v)n(em)n(b)r (er.)p eop %%Page: 11 11 11 10 bop 0 83 a Fb([13])43 b(Stev)n(en)19 b(McCanne)j(and)e(V)-6 b(an)20 b(Jacobson.)27 b(A)20 b(BSD)h(pac)n(k)n(et)161 174 y(\014lter:)33 b(A)23 b(new)g(arc)n(hitecture)g(for)h(user-lev)n (el)f(pac)n(k)n(et)f(cap-)161 266 y(ture.)39 b(In)26 b Fa(Pr)l(o)l(c)l(e)l(e)l(dings)32 b(of)c(USENIX)h(Winter)g(T)-6 b(e)l(chnic)l(al)161 357 y(Confer)l(enc)l(e)p Fb(,)31 b(pages)f(259{269,)j(San)28 b(Diego,)j(California,)161 448 y(Jan)n(uary)26 b(1993.)h(Usenix.)0 573 y([14])43 b(D.)18 b(McDonald,)j(C.)e(Metz,)i(and)d(B.)h(Phan.)k(PF)p 1515 573 24 4 v 28 w(KEY)18 b(Key)161 664 y(Managemen)n(t)38 b(API,)f(V)-6 b(ersion)38 b(2.)70 b(Request)37 b(for)i(Com-)161 756 y(men)n(ts)34 b(\(Informational\))h(2367,)k(In)n(ternet)34 b(Engineering)161 847 y(T)-6 b(ask)26 b(F)-6 b(orce,)26 b(July)g(1998.)0 971 y([15])43 b(Digital)27 b(Signature)f(Standard,)f (Ma)n(y)h(1994.)0 1096 y([16])43 b(In)n(ternet)n(w)n(orking)37 b(T)-6 b(ask)38 b(Group)f(of)h(IEEE)g(802.1.)72 b(In-)161 1187 y(formation)27 b(tec)n(hnology)g({)g(telecomm)n(unication)f(and)g (in-)161 1279 y(formation)37 b(exc)n(hange)g(b)r(et)n(w)n(een)g (systems)f({)i(lo)r(cal)g(and)161 1370 y(metrop)r(olitan)j(area)g(net)n (w)n(orks)g({)f(common)f(sp)r(eci\014ca-)161 1461 y(tions)24 b({)g(part)g(3:)34 b(Media)25 b(access)g(con)n(trol)f(\(mac\))f (bridges.)161 1553 y(T)-6 b(ec)n(hnical)54 b(Rep)r(ort)f(ISO/IEC)g (Final)h(DIS)e(15802-3,)161 1644 y(IEEE)33 b(P802.1D/D17,)k(LAN)32 b(MAN)f(Standards)i(Com-)161 1735 y(mittee)25 b(of)h(the)g(IEEE)g (Computer)f(So)r(ciet)n(y)-6 b(,)25 b(Ma)n(y)h(1998.)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF