fs/www/class/fall2002/cmsc311-0101/Exam/ 0042775 0000773 0001744 00000000000 07576743276 015345 5 ustar cmsc311 fs/www/class/fall2002/cmsc311-0101/Exam/index.html 0100664 0000773 0001744 00000004241 07561437712 017323 0 ustar cmsc311
CMSC 311 - Main Page
c m s c 311
s p r i n g 2 0 0 2
|
Final Topics
- Some questions from each of the older exams: (number representations,
basic circuit parts, flip flops, state diagrams, etc).
- Cache
- Translation to assembly language of basic constructs (instructions
will be provided, you do the translation).
- Datapath/control (see last semester's final)
- Floating point addition/multiplication (from handout given in
class)
- Maybe a little virtual memory
Exam Schedule
The midterms for the course are scheduled on the same days
as Dr. Hugue's exams. They will be held in class, and last
for the class period. Note: there is only a three week period
between the first and second exams.
- February 28, 2002
- April 18, 2002 (CORRECTED! was March 18)
Web Accessibility
fs/www/class/fall2002/cmsc311-0101/Exam/exam_soln.html 0100664 0000773 0001744 00000003252 07576743276 020215 0 ustar cmsc311
CMSC 311: Computer Organization
c m s c 311
s p r i n g 2 0 0 2
|
Exam Solutions
|
Topic
|
Postscript
|
Posted
|
| Exam 1 Solutions |
[Postscript]
[Solutions]
|
November 4
|
| Exam 2 Solutions |
[Solutions]
|
December 14
|
| Summer 2002 Final |
NOT POSTED YET
|
|
Web Accessibility
fs/www/class/fall2002/cmsc311-0101/Exam/exam1.fall02.ps 0100664 0000773 0001744 00000445507 07561440355 017777 0 ustar cmsc311 %!PS-Adobe-2.0
%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
%%Title: ex1.revised.dvi
%%Pages: 20
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%DocumentFonts: Utopia-Bold Utopia-Regular Utopia-Italic
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips ex1.revised.dvi
%DVIPSParameters: dpi=600, compressed
%DVIPSSource: TeX output 2002.11.04:0441
%%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: 8r.enc
% @@psencodingfile@{
% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
% version = "0.6",
% date = "1 July 1998",
% filename = "8r.enc",
% email = "tex-fonts@@tug.org",
% docstring = "Encoding for TrueType or Type 1 fonts
% to be used with TeX."
% @}
%
% Idea is to have all the characters normally included in Type 1 fonts
% available for typesetting. This is effectively the characters in Adobe
% Standard Encoding + ISO Latin 1 + extra characters from Lucida.
%
% Character code assignments were made as follows:
%
% (1) the Windows ANSI characters are almost all in their Windows ANSI
% positions, because some Windows users cannot easily reencode the
% fonts, and it makes no difference on other systems. The only Windows
% ANSI characters not available are those that make no sense for
% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
% (173). quotesingle and grave are moved just because it's such an
% irritation not having them in TeX positions.
%
% (2) Remaining characters are assigned arbitrarily to the lower part
% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
%
% (3) Y&Y Lucida Bright includes some extra text characters; in the
% hopes that other PostScript fonts, perhaps created for public
% consumption, will include them, they are included starting at 0x12.
%
% (4) Remaining positions left undefined are for use in (hopefully)
% upward-compatible revisions, if someday more characters are generally
% available.
%
% (5) hyphen appears twice for compatibility with both
% ASCII and Windows.
%
/TeXBase1Encoding [
% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
/.notdef /dotaccent /fi /fl
/fraction /hungarumlaut /Lslash /lslash
/ogonek /ring /.notdef
/breve /minus /.notdef
% These are the only two remaining unencoded characters, so may as
% well include them.
/Zcaron /zcaron
% 0x10
/caron /dotlessi
% (unusual TeX characters available in, e.g., Lucida Bright)
/dotlessj /ff /ffi /ffl
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
% very contentious; it's so painful not having quoteleft and quoteright
% at 96 and 145 that we move the things normally found there to here.
/grave /quotesingle
% 0x20 (ASCII begins)
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
% 0x30
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
% 0x40
/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
% 0x50
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
% 0x60
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
% 0x70
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde
/.notdef % rubout; ASCII ends
% 0x80
/.notdef /.notdef /quotesinglbase /florin
/quotedblbase /ellipsis /dagger /daggerdbl
/circumflex /perthousand /Scaron /guilsinglleft
/OE /.notdef /.notdef /.notdef
% 0x90
/.notdef /.notdef /.notdef /quotedblleft
/quotedblright /bullet /endash /emdash
/tilde /trademark /scaron /guilsinglright
/oe /.notdef /.notdef /Ydieresis
% 0xA0
/.notdef % nobreakspace
/exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot
/hyphen % Y&Y (also at 45); Windows' softhyphen
/registered
/macron
% 0xD0
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
% 0xC0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
% 0xD0
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
% 0xE0
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
% 0xF0
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis
] def
%%EndProcSet
%%BeginProcSet: texps.pro
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub
dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict
end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{
dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1
roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def
dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}
if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}
def 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
%%BeginFont: Utopia-Bold
%!PS-AdobeFont-1.0: Utopia-Bold 001.001
%%CreationDate: Wed Oct 2 18:24:56 1991
%%VMusage: 33079 39971
%% Utopia is a registered trademark of Adobe Systems Incorporated.
11 dict begin
/FontInfo 10 dict dup begin
/version (001.001) readonly def
/Notice (Copyright (c) 1989, 1991 Adobe Systems Incorporated. All Rights Reserved.Utopia is a registered trademark of Adobe Systems Incorporated.) readonly def
/FullName (Utopia Bold) readonly def
/FamilyName (Utopia) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
end readonly def
/FontName /Utopia-Bold def
/Encoding StandardEncoding def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/UniqueXX 36543 def
/FontBBox{-155 -250 1249 916}readonly def
currentdict end
currentfile eexec
f9cd86fd4821715265f16a614e3770ef80561e77ba6ecbb4ef4232445eef2839
94e93e3c8c9b09c09d71542241821e07888ceb54e8cacc8a45802f50c0afeeca
5e3d9114c1860bcb2ba5fd2a879a0d79953e30c90d8347513f4ca5f05b2e231b
4973bd1e9db66a39d846a8b3d9e48da72e2de8743ba2e104893167c235719245
87b43ed3b6552cd85e4bbdeb9f46bd813298d531c74be81995a52ceaad4112c7
f65773b088bffbc9874f615371c5e7b50ae99d5b6acf9c80d87057bf3a424377
f4284b7232096b6ea623dacd1c925ce09cfa6515f675aacf815c38e984b4ba40
0d409bb62cd4ebac75201c8e782e68fd73e8622c46b696b1ba37ca9621400041
d95b948a6bbc089fe6b230b39bd358228af9b3e68418166a9adc4e7665341088
c47c074aa4b21b0949fef9929e1a32ffddd2d02145cdb256863cf6067d27ed9a
f0aba85b1e0cfcbab7e74880e9693b5626ad31e6b5c2d208087d86c116513212
710c9d6ca50e1503f8d4c2863fa378f8184189af0cf109f4affe7cb74563d513
2104fb9dc6f3f5992e075633a0baebda8ebe9a07c3ec4b25fef015d9915a26b1
d401a6722015090672714181580350560caf79bccd6040c0c1651d917c73107c
2d46aad5d4a370b55e896ce1eed127b6f0aabaf7c4ca62e89003032abb2c95ba
58c4a0eb0bb1a59a439a6a0c2082e50725b9e8139324af06ff03b4269a697342
8fab0c1fabd320f1452d9c435e48037eb8cf6df4233cd9c05691604146cc813f
7ea131f21e9863b7bd1b087a583af14675b9bd31fd364d5dbddbc9b533a6ac38
c4bdeb28a1ae3d2b374da72405acf67b1b3a83d80726301b3677c067c748d857
ae1da4f723d4365647de10f90e96dd7e9ab9ef5c7e6866a13b807fd3f78136d5
72950a10bb0165e61f12c60a813c7e35eeb9a0500725dd912ca2deebb238538e
790af851b14643f40e5eea13660e57b5c407735079a292a7c162dd11d0a3d342
67290f1c9261fa5de6b92ca1e7daeb7cb970c766b3e0396ec0ce55dffbef0bdc
b437fbb4d63634b9abcf5844e76f9313ab2182e1fb3c47a705a1d97b79e93dbc
5e48ac19b45f9be4b9225e5a7e1d3679dd21001eca3c08d6febd35fa5453290e
1269c1d195e45338c10aa60fb8ab9e5a5aaf08c82e737f082bb6216d7cc1d5d8
8906c8b05c4432d04561377438447eb5fade652af84c1ced99551365cf9e6f99
03d1593de0e450003fb0d5b5588330d6527fdd0c8193fc0cd2293012310a425e
0ea0f8b901b991648ebbc894cfb7d95da6d35fb7c947e887bd3b6599e673b921
c96f2a033e30b341a14066076ff0abd5fe77f393b548a15ea2185f99a3545b01
dada854fce1ddd3448a9aa42ba260a4f85a0d1bdcf08b3de2ff8b6411adff446
4a2929193ade35f4e26006cfdc45929250bb76ef007043d739d798a4973f350f
52fa1690423381539e3a4cc458600fed91fa8e16b5ae0aca710dbf318d16e3d9
16a082a093b59f35ff92a1b235d5621e87ab471310ca26a9a30c2658e23e0f19
43110f9b24e2c8f1d05824c69aa9890c3b0af143da3ff2d3eeb301f7324f2f16
4e47a05f72acc15acea8a91b9d085a7de2e7e45493f53f32b22d365aca7ea6e0
70c6ad4feda1cde417b48fe4a864ac9af989f30632a9cff5545573d9c7d16016
d450f21f22a028d4e5d1d50a0834adb4c7cf0424f686a3678ddcddcb30d96a4e
45b982881b7173c1a3ff8cb839e56c10a3055f1626d8d5662a85edb80ec110ad
8eeadcfe212e10c139c86094ef0c3fd239cee5c9ea9727cfb94e671fedeeaed5
ead00e015f8783a4adfa28b7b2d8982e7c6fcceb028a18bcbb7f83b44ad4a898
c0bcc2aae1f109ea4ab0de19c4163d7c81e9de2fc6d003a29e2d8c83fb852a2f
2adb57a70ba5356470bdee40c3fd1612bd651f77a2a4dfb7e62bfd224eb2e1a9
978bf52b974d81e7d4f6b661885a88d8892c66182d8cfd1950c290d1485a78b5
59f7e546cc648d521d310ea176ab0bf669b60a915837a3b800c5b86b1295193b
161de7a268c3b8a12272e964b88b94cadc0ca8a94781347a8623dd1e4a481a60
2cfa2f764009699d69f4e8fdcaa46c4238b89bec4eb5eb490f15e6be942af742
1a8f2f0f873f5e5e49af9c33992e878dbd5e0d04cb1d086b719226f5836d52de
897147c588ec54bee42e887a2c94a864fe997b82d0045a92c35a7b157a379903
9adf336e3cb280d18f70784afceca4946dfef7f6c2fab3fd9eb4612fb0a6b3fd
17f24aea9bfa21f1cb8a5f93239d7489a183f6f4ab30bb54dda79888b30bd658
116c1efa020d27dc30df7a00265705414017911ee7809a135150a3db3333b694
b49464453dcf18a7eb8712f0bb4c0e7f6988b5a1f4b579b04e985830862df10b
47174a9e28b55bc33045a02e47e0a4c06393714a03bb1636273f4b887792725f
4c4c0ffc26eb191b843ec59c447c35dfd50aa503791d26f10071ceb883abeb37
71b49c6e4fad3ff05a52f7503c1d76f92debf092f358dfdd1f0895f9173d9802
17dc23bbceece6e05468ed1f3f6dbb0f1ee8041a08ab3702629088a4b7e47da1
c3184e7ed3893daf356ad740f6aecda78fe389a11a25c2aea605af5fd0ab46a9
87b00f97b407b6c0702a2ad53bceb4b2a39f3a46ca0464bde9f566478c522e1a
41334db9d41ebab5fcc8d5919770ee894e16e12edc2a15a74776e7fb8badda2d
7a3f1e6d89add8bb1afc6f777fbebcded31c883dd37df4aa4f83d3e585a99fb3
283d6ced2f10c9789a58806ea91a8c2e6a5074e001c1101bb2e906a2882f6ef8
428e27db4ac97fc7959ee4a366c8469d14daa10973191e14c3d49f28ec89d6c8
c461fc00709354a0f75de12403a443514b6d95372d238b41443824816c70cccf
b7c28425a64fbc066840dd30685980607bbb1e94ee6c5871d609d12a2f6319b8
72b6741ddfc31e72e7c647fbf4a18b49b7048164afdbdcb01addcc618385e6b9
92ee423506e9627fb6a7a4b302e7b4c69ca93da517bb915b3b1eddcb64a6018e
5eb59e52eaf76bddf458382bc8fc74c77c98ed17d64f6a342e59d3d47596e196
16b3d5891501ea48b6c01253f7c1da53d799b833fa120ae35420d3961410f4ed
4705ed79831567279367b3729791208b3c8286ab6d7e3a056ab3416fb3fc681d
8b0e346b139a70904541dbdf9bd372c4da5d47cc2e056c1840b4e3b310d92a33
046ef7206d3f2ab07da8ee64d09adde5d6d4e2fa03bbef4ad5da84ad373e7251
c6dcef9b7994aa043b3aa3aa4fe4decff9dd554035e4d864085e186265c83aaf
eca6c0991a5cdc8c37149e935ab2cb026711fa6d4b603a47f2637b12e654c087
a9ec00da104d070b704b0b0889d0f7b4a2a760d8b32e56b4ee722adcfaa2e4aa
45b2d3f4cf68f5e93a0d8a5d72002c37735ff11f59bd544b919f6385588da089
6129d2f7220c2ff4bbdb2f7c41b87f1bb509365fadf1644ae90d6f12b4bd2b88
579e1fcc2b679532bd0d339f6d451a540d8d907617e76c7130a0cffd52d50f66
13a71cf23a8535f1bba0b04a25cff862e8552ce836df43fd0527fe7f349aa51f
35a1c6fd1ca5df0dbb0edd2a5517b57d800af844b9d58c0f5f9d65b911b1d31e
97bec44d8ad51cb98f437571c5dcda8a184bab9a08709139bbc51155c338510e
80b406157e2873267b7529d1cbb370449ea45b1657fd6f3a111ff38f68df5bf8
15473aeb208d3317805a9a69126f9c5d6f88c224bdd8e50942287e5947c3d690
e67beacf1fceb6ed368893dd7cdbee3032ed5175e3fd274604be6103ff17c1ae
b92fde665b98210ac54ea23bd4782e0be98afb6a39fd39dd195f15d8038442a0
2296e0bbb1389c9a38c5cac3d47b1eedab94a10ba10ade6d7127edafc2bc9da8
30feae65c30ae282e1d1db57d56b39835b0eab094b9e0719ba4e14685acd8c42
6dcde122ce4f827ec70a4610e7381a65a8012b69ac5df70057a0261eb63108df
289a0551a2daec616947e60db1aaebb9ee1a6725c1b82f00cd0fe23d7433c7d8
84b8d528bec8520bfb068343d0e4a14cef0510e27b5d07b97ae31adee5a039cd
aa8dcc8f262c4b478c97f5d3229127995a341576e5e6f9ecdd8a1cf02845807c
c2abe37872ff3e7261cf360fafa311a54553bcc0302216a9d0cec5c9434c0c81
026691f4741537610b95bca4cf8479fe52caabeafb0a7b4f9e9b7e30ff8b5d14
ca496b49a2e46d881f77d11a3816c292ebd18ee50cc5c76975df41067b2f6018
254327452822cbe543f70d768e2553e19e69a840052cb1895883799ed2eb7e7f
c2ee7bc2eadebede72dca24d3177f105a504f7fab4e72be2c64fac20ef23d946
9459319c3734b81c20e5aff043672b580ac3de5dd5c53a0628c7bc23ea348664
444637cdcd838858646b8f928c89ee93f38be0e9fdad4ccf556395fc954a5f63
b9459cad1da385c9dfd480060648945f45f4e490e5107197838d9d4bc0a69fd5
7ff840e80064f51c6f0d28e4477ba09f962cea1614a4220cbad5a21c81b7ed40
78aa94b5cd12073149307e8181dba96007fff86abd2530630400c5a88037db8a
cf8c93c25bd283794767b8408e2cf661156f2ede6c91457e9f3c13cb018fb0f6
47eefdb59961e0efef808b619b7acfabb5f1066213bbc9c45fc77bfd275f67ef
29c1b1346cffac0cad1b009448b516d587fe44c32d585a488fcc17214d33fa2c
d916d3c86c4803f8e8051c6e0c1a880b1b9e30c71698801e88d9c996e3fc25af
b51a1b13f514b2f5d048baeb86e4608f095efbe7e0f56a29d28a7e2f2bfb0be1
46ce099b242bc67b68dd30d3c5cfe395b58f9451f251eaabde38510503d20ee8
68cf806f50b29ac0df93e5e28f0ba6976f13cf8bfa9c945787ecee9888549f75
584a7ac42b75869d5926f0ca97d0db8f48760cf6893b49e2f76bd8a62ce3e0f4
255ab05136b45dc2a7cb36565e5b516ffb69aeeda6573bb9c8f058d8e2172806
b8ea1fee53852c25cfb9fa12f9c7fd578990bdb1ee40173aa1d082e7a98a2857
a53405770cc1440c6c0d55fd422784f12ce1f0f940aba75aa9eba24ea852637e
a36198ddaca0a7edd85895b4319d47adc894d8756f89660e4642ed8032130175
d0e59546d04eeeaa14dd23c9b8d4b1f7282eeed55a8817affd29513d9c354948
243ab29da8711f6c475ab50b0f606551eac0da86383fc5ca33cae1bb17cce16d
4a2f7945fd2b5eb77919d09556aa4e202a0dbd8bf38c50ccab6668aeff57fe1f
4afd1f3c57aa392078927ed6dd41e77ff69dbe7c905652cc67946caf6a8d78e7
b7d9b879282d59e85961840d577a4f8a0b23d76072b5e9ce8cae9dafe0f69f29
187b35e994a3f971d2bfea825e810dcdaba251ce02782d33417263385344bfcb
8b1bdab326a74a1356f65205dc557f4e7fc1c86a3a52b79bddbf3b8b77447244
2e7467daa1c3f8d5518ed96ec57e734a10eafd8bc837f969588aa8f05c9082b4
0350fb0e854f0f18ecc78281c30d4303a4f4208cfdc0042c01296851740896a6
b114ad0ec93784b7c3957186c2b2e6f400462a48a2b14990bf1390f0da1129c2
586389efc51d1603ea78f85e7fe14abcb6eeee90c939a9173874f1f02751bd55
927435904eeaf166b714778347fc89839e65910693a324d5bc9497d8c960795b
ad4f4352387ed7bc6658de590a1476df6ab35b4445cb9c354e3cb3a65a729848
311dae7ac5c82b0cc060f721e6e824feb3f4437b6b3622e86bfc6d56f9a3b95c
ed50854dfd65eb4753d7d4194dec4cdbc73bfb161fe6642be83bf73375f7d3c6
f314690497cd18d97d5ed7625c88660a2c7065bbcda12447ec3f2fab3799ac27
5b0c72531080f47fc1bf0df74cf0c04199f22455e66de158daee7d239604b5d2
838943686140155e09e9dc9aad397f4730bce32418952d0175930c5a49437a51
7957e89bd2150baea08ddbc5914d37dbb9435c21886e058a2dcc680a87dc3e9e
ef728f26cd6001a86cca0f882535b2ca7e9e083f4b62bafeda45b98170a0a223
e2ec90398a175b66928e889fe0e2a9b93b040d363af92373923bc94d1834a20f
fb358bfbbf5c55412b8689cef4bfa4e9e8a46db48c48f7a58744991d5bf46378
23567067debe18a03a8d49080fd1683a4e81adcdbfd80a23449c2c03f196a98f
b7e1369c7f008665fdbc658caee1e1c0a68fa2e98cdc83da4810373c3815b527
c264b44d2df0bdb18767f3204d597d0aa23c06502234275a10640c7de47e890f
9ecc406f167148e2f6e8f353fdc45035cbaa256a02760a42ee9d18f3fe1bcd78
99cd1e58e40c38cc12b0ada37f7092e8fb3f348a849471c1ef0d438e1c15460a
c76f3016b2d1b85b20838fff669c5c2a301a0f34886020671763a89b4e985a33
7e108d9e224ec5f2f5acd988c8b1022b151affdbbaafcfd1fdc11e8f117d5da7
cdaf291fcb541ad755c0893372cacd74301c485cb6b8f27a8b2748c178e36ef9
7f030a22037db5b95c0db3b455b2583d5847b3312459eb726a4036f80a0495aa
a127660157edf1293db42600f55f9abfb70e9c3334b60527372cab86812d0ab2
73eae0e4c162e5d76b71cdf03204952b271efbe1cf8dab2132c6f7a20dfa9b98
f52f7b0b29dbf38d1484a5caa644f38769ec6a0090b10f53676dc2f6fd14985a
6185abd41cdd00b970c13c16a8ef61403a7f129ea9ed12193c8789a9669c3be9
6f21729e3655a4daf6679c4318f98f4dd5f5c12934dc5c696eef03dea5d79632
da3946d7acf9917794adfaee7b9977fd6f203c7b70f307677b0ab5fc6fe31ee2
a6122e9925d13990ffcdb4b7af159ab7157e231b8bbb88eeef15d24c0e13484e
9550adcc1e0eebcd077dfbec1a931862100f3ef725de23ff9d974c2d310e7725
ee60ec1e79fb297d436c4bfb8f5bc45ba818e72cca86e068b917a0c88459dc39
fa984179632c1ca4bb7d31efcd46c80df69cce0cd68c53cedaf1ec6ffaf46edc
6a7cca91bb940e8617209bcef9e43cb6874db7819cb2eb5e2eb5629280f1691f
97c612ac54bc6226f69de741814d7bbce3c023537c01b34c3e10aacba92e8a6f
493550bb6a17f414752d07430d20931de6929cde7a32467ca6a9135d7efdf66c
0ddecc3fe8890fa54b3c5f68655ee5fa656b2cad7f722d57bc0fc21418ae2977
a1d7079b271a8d27778b0c0fd6f366fc70fc956abc4842688e4f4cb8872eefc4
dca9dc9c0206cd22e9c240cc5411558c7559f19cf3b13edfa38930894151bf1e
1676dab2bb0e28d2b0f83d9a9beaa34c7a35531e4660d548f6efdbba7233fda0
01742d905f4c75d70e2ea081a23edaae908da319d5a46fa5e55c8bd860379512
1827dc53023a2bb55aca882f4f92b0752532f3fc45b3edea36fa870c5266f8b1
b895b3e999971f044c8b76b8da5abea1c28f363a5cb17ad709354dafd343cd9c
d28853e09d4d2ce52c65334cff35ecbd18e755156c041abebe1f547e77a8b6ba
d8a2302668aa5426c4487e3d0a281ee69ce2c919518af3ec843b26bc2489f0c6
77fd93f46ae94e64905ad274a4c663404b8f18efc9f85dfd380203e5040b708a
6e765fe6b7fe9197c0a337cf1f373c597698ebc39f0f087f680f10cf48a9306b
be1f8bd596fe5ecd45a1e9166b5acd1af42f5c56545f1d967529a4bad58878e9
78d12d2f8d170c1d636703a49c54ee5957848c986dd5e4c637b2910760c686bc
c6c2d5410b901cc6f0f61275109ea7f024d41fdd14a9d4009da0bda63a3106ab
e4c71fcaceac0223d4dacfec187f76235eafd1ecfdfaff385ff85028b30ef8e2
8f7860aacd54054db633eb98ebde5cb3230451bd41e1fff3045abcc8a7cf4b57
b9ab43460604d6a0d1e093f9bdaa606c5e25ecec536ada59c6c72e9b4db6bdfe
e97ab66be0f4e5d52cdb7440a331800e3d08582ab7b298100c2272b8cc4a73f9
434d151282256b9d2aa311f890a49f9b72843d5ac71917774c74994e04964cb4
66b8558b016f94a366f155859418a6a43203ae320039768458c900247f1eabff
befa5112dc426a1d91b1f4244c17e97e3eb1e3aa6db9b0b901cc817e819a559e
707ad15bbddd2934e96cd611cd51c5c7fc50ccd8a8b9f07ee9b4488b685b409a
7189a595b9a81d0f0e5981fb6c2eb9e76e55c682eca70547d07a4699bb052ba6
03e55a266e761dc3090b4942fd798c7f00109fd8e3698a57b55f53daa1f65056
a62319e867a74b2aaa2ec108f38cecd2894608544f33e42dc2bf8d39c97e0de9
b8be6f20b39441cbe548847ac42f97a42070534547a97ace1e40f0000795084c
90f01e7d5dcbea7a9dfae8d78666dbf4750c259d99c54ee1971834914bd21f27
d12b67e9394554d6f9314cfe174acaf1ddce58b02f65e8754b7a510711a2e94d
dc337fd6bcd342f95e86cc1379e882a2cf152b69493f89b1620a44790378b975
e203bf433963ebb49c1e271ea05ffc4c69fb88d7a56d82e27975d5d7542eb408
965464b9d6d7e43269be0e0372164a38b3cce0acd80159b2524ee1e79cfa60fb
082b1d8e6d23549491ccf0de5c13d4e116d16f149220ace1d470b2ef03c04595
90e82875230ffc3a929ef94dfd17de4c891676341865e5e04b33f0e6ba385ccd
3ad5d9a5ddcb6281b49328e3a92e66677c48375d5319dc7cf01a256817d9506f
a20a2b949b410563ac3d1fe8f4295fa45276483189ae73e576c01697b285529a
fd8ed73b010b676be1df8d1f4ca631f51a92a472ae01b519c7fbf9ec579f19c4
ffc6efe1d87e55e5eff78dd3177b97a57fdb524574223a7160b6d5b2bc79743c
0a53e9f275835e8856e8daba448351843542f4fd428051360f7edc91ee17d9a1
1d47fe9fda94629db3f06eec6913447122310162db5988acb608787bce67e102
eba9c51dc93bc429baa2cb1cee5dd5bba0c37da2058d655e7c1ea446e327414b
7b99dcea1b3aa568edf0b6d329dde18e334635b0162ebdd51a5fca04cc5154be
59a444519f1943944661f5180d0c5f9ca462ce2acf4e478889b7264b2befb175
080172918627a9a7c9edd0621965fbf6a3f97a642743c968bed19f8598ad4f77
8d31306ff4f83abaaff5c2553029f981db8df4298a5d9559749ad0da13904ff1
f6cab5ad55e1caabf95d56e6f1ce635d0699dfa53e9dcb30074098ee20817046
da494a7c54e632808c8518ac81f959873bd29acde651f3ce2464d6436271d32c
0cdf7cd7dbdcf10e8b00b5b57c460809f85e7674cff86b434c1fa9aff3a676ce
e74b0f9e6863481d465aaf9de343affe1dab652dca2ea4d8d9734fbbcaf559e5
62ad805afa061dbc056037eec11d5d625a54bcd27d1d75bc5037dd489d925ca3
df62c563a84851450ae2b88d694ba9cab3eafa59ef47f4500f9502e7d307146c
2e134184892ec7d372631e7598b052ab49a5078e1766b0e6b24f24dc094307ca
7dfa7f702fe6131d3676bf6dc0e07a6358492b5c27261e83f794881f64d15cdd
adaed2c7df4c0dc8da708776104a7c718910da68ed50cbccc4401fc69a31c59a
6735a38221506733b5b3412e5f62f0e65d00ba874df456c1c094f968ba1359e7
45b8d520901e8e925361ebe4bee14f3045c6db361892f5d4dff0ee964813c711
0f87dffef9fe14a86c83ffeead544d9c57675571c962621a662bb23f8662d188
ae4187a1ee374682673306e6d1f3d17801782755bc83880b9b27941887de0d6c
cbef3e80c26d45e4a51101e612572be876b9ea470066f36a0b52cae3f1b7f24a
3d9f731b15861508b2e0dbf0786aa60da42c5e456e1bcb1513262d4a35d338d5
7b432f1ef0cb0250ceb5f59d631941e6314db981d9fe6bae478bd20a85c1d33d
ba241ed0428823dfe282e13f89fa6ccf2beccd433782d133dd94c54ef42c1217
5b16e02839955ab1b88f1f628006eea335b5bde2ead7d5f0ac48e315277e8a6c
8a0ffbf937300fa9d7250364c5965baf75dfd03e73fc22fa609e30d94bbcdd30
860d0cc1be6ad2e50cd2ddc76f94b9e7ac2cd29ff6b0e0d6cf00223fb39932e9
a76eb90f760ad01c10397f9061c0f588ba4c5946c6ac9a40c5a2e3ac1e2dbc02
44b07c870977d816ccc791b83f5465b7928d2f6c696c322728e66e88f43e2c8e
5048e19ee14b7c2f07e34681a5c5d245e7b9a493af229268dc5f3b1dc14b158b
e14f44f54904df5c39cc33ff826eb9bd5a62f0be9794be45c456187a6ed1c766
829ab49a470c0aff732fbf31e92cb6866f19ad657228846e173c7b9cd6382e47
44021f0b03d00e60b3e11cee0fbece6f495b38c96e057d7c2576e5da02baec8a
5d4ea920b927e6928eaea493f7b95ff8db71e50fde2bcc7ef71f78245f71e89a
1db796b3c062104fa17f26b61e52cc9294936dee7a7f0c687e2003d74f2a47f7
ba008f0587917d9599520a09159e46ec8bc36bb9035bf0f0c55d11baff020cfc
e6d268e34547e71a75bacab8c5a06c2c96ad808350cd0e8b8334924b7cc84bb4
0d64fac4c8572a5a86dae1c6babda9833ec1c5fcb76d0b8ac8ddf315a323386c
38463c11cfd10526ba3623bcebd7ef8f45def99f2e47d4def37b4215cfa3703c
d10d3cb4d72d03fff0969885cb92ba0d2613c152e0fb987ca65d58d190597426
476b6ad0e5f139054cee912f936e4a3917e57c85802f218157b9a75c4a755b9b
9533600c96682fb0f57662c8576789df89c956008a5e9cf8f867446d8ef6d43c
7e4bc48b05444350e9c4052d6544b2eef92402fd4832c34e0de28af5e66e8ca7
591ff67644bf0e9b25a9559b90c5ee61b05f23e2ab00311a82ce1ce6c8a2034e
9b9ca74793028d1859f56a04f3f2ef933b92ead5f550f6dd20eaa024582ac34b
c37acddde8dd3d89cda7c1e39f73847a04148d509ab5242669f5b691f05d20c6
988b3ed1bbbea2f18fb520d6795e412bac18296ee36caf567022970bff0e212c
aa62cb6874bb4fcac228551a64c0254de6b6cf5288c73a55e49e657a20347da3
b12ef7a6a6f1d18b056b3138511ca1213bfd4d31d5bd69125f395d2a4c49c517
5181e835b7dc8a66026379bbcb9c7b96cc71f4eec5d33afd12ec2205c453447d
c6e1b75f3b0f96222ad5df51da92bb3970502780f329302a5e013f6bfb94becb
c41f4d680adc73decaf4ceed392a0524a05ece2a88f05821f682e8456c81f2b5
7b0ee826be4afd51692b8a4b7f2ad843f8f5b95ce6dc1f7849035bbf170f2988
97ef04b55bf11c542ae6a66b6fac1b4b93ceecfaaa037c1346b95cba1932343d
aff0550f389c263b2253738ed9db256f56d2e9cac8d284b559e736ab0dfb4230
6a5c55f152826d8020b250afd460178484292d93074bb643b667f90977eec8fe
9d0f946689023723b8273c7da471fb29965742afe8d23831bc190e8461e40933
565bbeea7e4436382e2f7b806e4cc0ac30b28f0d555756b7c690441d4d52b3bf
a4ca9f22bc1e99d405bd2b5fdf00f43da0d0618542022c307da75013cf012f44
658b0c5b1c3baf7dddab14e2baf75ca05ddffaaccfb1c552b100a25a3a4db010
fd7bda14419744b898c435b993a0b97478489aa798cc41961fbb7f02ea8e8018
3a898bb5b205dcf11e620e6ae19130aeba36cd541ca7034021fdbd1fe3f88170
f80415d2e2106832b376d0cab2117bf421f0c3998061a48e7ea225c5c751c0db
fc2623362879623d4155c09a8943eeec0db9054cafbc68efb35ae3c0e82b0072
51d6784574fb64da7ad53f1d5e103ad486f8aecec7ebdb853e3981e4e069979a
4e1345462ec67593cf5960086e0dd755a324d936d17f142ccd6a499e81ea910e
39d9d95be5ec28ec5ef733dee478ac8f304cdbbcad2c35a0d44b6d1486d06997
2486de40e7245749d2ce89799c05eaa4f1f49a19e210b536a50b8fad91d83c4e
9d29fa988bce42cd34dfc414d03ccc8626b0df883a3727edd1db3a7b086858b7
580d5584a7778c6cddb35f0dddecdd737f9ee0acf9ee81641c7878e3d6db8bae
a403b2810d80cfdc8bc084bcb9131828fbf94956d842664f387838183ecf6575
9adb5ff557b4e447ef59cf9c1caab4cbf81d2a3abf61e2fe628b422e6f3806f4
09cab52459f918273dbd86af85d01cd447fdaa91d2fb25738a815896217271cd
c8612f8564534041b1275510efc603468ccce9c787136c6336d158ee20ce6272
51eae22130d371e860a59c47ce474914804b9f20869dd38024293449af80ddeb
80b41f7e11a396f52c19bc62561ae8f6ac1015c7688bcb07e3b893f2023d40fe
81f157eb57008829825cbde22d308f76bfb56f2949f68cc1708746e3b7a47070
752f75dbe3bfb602fe73602ef2d78e952ed411ceba5ec341685c3f843ab28ac9
96a0a5b371b407c47a44f0c4ef1a69d265fd15d4d91c39c94f5a0ca6e2d7fd70
99c3199b8a2a9bf4b92aeddaf50437e73ff37187c2b7254f3a8caaaaf3c3366f
b2d7ac4b38508b58add0640017d9d34a4912f2f990102e6f0c6ccebf4ccb6745
6f92d5325f8d37f6309e69ff7d6b826879edecc4e5684cb12886ce2cd3cead35
5473d889ac6167cc6685e02957ab3ad6ce67fb1caac7331ad427d844c165cd50
597372c3e64834cbfb2fb0e5287c4c26afd0abccff6464bf85434eb988a2e235
4319fd80a09f2ed33de241e7f18b2ee4003695edfbf4f8f3b80f23d5ed457071
c9a3965e4ac255a4b5a8e59241f6545bf6c830590b174bedd708d5f46882330e
3fd41bebc72fce0a180f7c382421fac6b85751b67caac4b038235a7b7b92cf26
a1b92481ac373d5cdbe1cbe0f65f19e1a3d886691a1bece3583433b6c385bff9
4e26fd0de9a019f64f97fc06888b52fffa942c40d023ac223ee92a2df3afc867
25708a156d90b87512c1dc6b4f2e1f0ae0450df78b7368328d2fb93f73721326
4debc3e09c6cdc3b2339145a4e0e9fdbbc4110827944a08aa1383a57049cab21
01d5bae06cefd6fe2adcaceab09b0056e9b1cf3ba2446d617603c189beedb37d
68f2ca15164984754fce571b603575b1e4cf4ef37342af735f2156d5af2d085e
d29217e4c663d23e9dd0b10998f68b719ec195860efdc0fb1bd4f5cbc12840fe
0840f8e76f0fbb5f3c34e3d62d4b08e536416928fa0f9cac1b789837b0cbfc05
89fc272117d2a8eac8406a0888ee711e35a173b368faa3725f90a9cc058e4173
2cbedcb5ccaf4ba8029388beaad621bf4d89490a657f7c9027e82537240057b5
c99fc7224a1d09129f2db3547e1bd04f6645df931dd0c0cdd927ef0e3cc26498
de557a7448dfa30f39b389f76dd20a6cf398136b48fb0924f414317f6266a406
ed41bebe78f8defaa017fc22e6ccdd03d4e50ff7db9fd8858e3bfda724e56769
ec01626ddfebf8d212b4320b98f6b2e53ba2525f9ead01c2063de7fd2fbdd863
6aca774290e1ae1ca230e2bc7361645fc9b37039f752080ababdd24ea785e94b
0fe3852278d7a16aca953efef270fa4ff0509075a2eed90dad8b91b0b9d1b0bd
bfeb88ba1de0b7ff48f78fa17c18570f6f03682f5080e34598883268610c75e3
091376dbb1fe9fcb881f4bc1688e14e4ae7ccf0d2d3219a6b91f13499a8ce2cb
f54ce0a6ab64bca8f42b9220e651fc790ace021b243a187e1c3ffdd6a77c94ab
3255efbe0faf59e14739e4c9ff830399be165c16f2c186fa578854ad903e6613
45e7fb9cb9b66c98f124892f7f53afbb7b2c4882903603e6ea94dbae4220ac6c
dde01c4d6315c0ea8eddeb1496f0c2acdb97cf71adb3fdeb8569bb9f5586f98d
b6fcd72c8b207270d92255ce8512583f3911e11dc20a68a0077b3379e3105b0e
be60a60fe5b0af8596c967291874c7360de5e9b80b7f7f854e3186afa1862829
98c586d59df29bfa48a84fe59fae07e19b5ae3e0fcef3970da8a4e124ad26548
6dab54611e09f30774b790a71f096e3849b4f4c8ea63db0bfa1cc07df453feff
fa63f578a4c796ca36cd2d4d03600686d1cef3dfc87e2e18ca69e4c4f2729652
8e93a9597c08110299eaec11447492d9afc22fda312fc3490e41b2483c37d9ec
4472d6edabd05be21ea67be47b85a5d2fe7888d90f862b548d9b67a83e1e8027
72b232ce5f569dfb36b6ba76d0e102a6f7aa97effcb57a723982e6226c8035ac
26c4d2b51f9b829c9cdce731155c15b85dac11301e50f01a70edae090db47a45
5c8dfb98b84cedded9ce1aa84705ee53af62c9ae66818ec86490de44ecf51696
c5b42323aabead2e36758fc723b2e3218150b885aecd66138fa006f0288c874e
8b6390bd70c4c03da4e547afa85897332215953e3804a60d184132e6c83797c6
e3b55fa402a03bfa4178dfc2f3916fdf9b651972887a43e813c40f4cc2b95cf1
ab7089eeae4490a8aca66b5593ce55e4feb8adea67d3966f97df9d824427ae2e
1ffdf2a454ecd1b7ed705768193eba668acda0863a04fea0b5f41660b24c5f49
75ed168c6e4862f31443be672e79718b0664081f60217aac0c8eb88f5235c61d
677080e6d14272ad2bb024634ff71904225858960746e3a6da4ad46846ac88f1
0f3ee2164dfde3153134e81770f733cfae97a76d75ca7148f3fb4a31a26ace19
aaafddc4c1e7d909b0654dbc172ff1d5ac1b7d7158bc0a2e9e810952edf3d8f1
cb1d4e6c8b03ff5ff84951cd7e8c2cad91614a292f4514e2e24f65027b7aa8a1
c31b8ceedb62d703c88a2abb8b6cb85a8f33e8f6cfe6cd737b8eccc98044258c
8f0a0ec75cf429c2fbbe33521c900a296093fa45a705db8e4302f8a2131d163f
d8463675049dc5f101f0c52a225428b6e06d2324acc7ebf45ffb2ad1270b91cf
4c6828e8cd7b68f6811261d48c75edaee55664b27fecddb89c25b6db8bd34233
c9aa134b7a3e7be30f6f96feb221f546978e1b8f7a2830ac29aeb68487dad060
554c5e94244743160c507c82b59d5f33146fa92ee23d6f2e87539a9ee095078d
68b2eaf334fd2ed5dc8ce3baa504b98dba287ac81faa637327a6eb619416b60e
2b7123a1c8439ab093b0dc0531d219bf513bcdd8e39eddccba011eb001273f15
c8786bb1e7e21fb37b69d4731344380697e1fd1efaae459aa6d64d20bcd60b95
55784ad32d417558c1e389e0081a4253ea95adf07a12b50d7709ca4092f9e088
329f5f3b1f4c8d47770d9bcd6dcc26889a03b12a8d6a6f651fd8ea7ebc2e629e
e0b8aa0d4b109e3cb8851d020da8068f53660852efc975b58746220e88b8f524
aa7568615079e3ab9ba2e6567d2ec8fae9b44c40e38475f286f994d12f9fdab9
e3b2402c58784e1a2bf08bb50da752df4da9dbe994863339117f8f4ff7966a40
a5536423cb09758a7e095a32a200f6558b9df921bfb88a89a525a6a4037e4d0e
5012e34fafb11a0530cd78b660f994c5890a1fcaf240d158560b9daff1298577
d96a2e0abecebb2fea683e23d2d55c67d82ca154070f6f8577e3a9b5920f4c78
047a145718f05a4160dc428cd30615811b9f11ec762876522556473cf8e7b4c7
507e1160d74ac3fef0c0324e98d3edc3b1af00a5eb63900c41ed8af3af2e6c9b
64fbe5c8e6cdd3c0788ee4e445de85ce7ab50074c2ef30e09bf3b77ec05beea2
2eab49dec16246e6d469fa3836db7ea9fb1f4552287808d35937cc99ddafaaaa
a4df57ada42a0e7cc17cf7c85d89698d9911cd7a7abd65a52dee847772ef4e3d
c58ae279329bced91592b75d8dbe2f248282ba9d83409c4c01abeafc25488da5
fc912c6a2a6a44ab4e6a31e46e00e64c2ea32f9dd262eb40c4e2fbe0dffea3a8
6bae373a299d733ecb558ee33690cec00836f68c57d3aec0de30908394610afe
d52ecc75da8ff52f12b278c0fedc2fd84f93f1c6146e53c4fa5b04fbcd9a98c0
571c25ea33667b294ff3f7cd39b92507dc688f09675191abf642fbddcf0632e3
5b7c0d21f2a87ecc434b0e727c4e5462e64312470f888bf585157219dbd16c22
6a2e4d2264a3617107e090730b0cdcb23a99399d0dbc9472ec707fdcdfb80f87
50e0475866edfbff4b6940bc4668bfe5f26720e795b4626e6d409036adb84803
0f4bb9dd207ab399dd7359d2da72803581bd31c729d5d56dab1589b5f2224449
fc666090bc5ce4bd34b992b9cc9a139e9503ed2d94e2ede52706c2584d11fdff
06dc0925315b8b54b622403e20518484b4d0d95dca84e8aa61f87b6a38fc727c
a41c09f5d78d69f64655d3d77d3327881cd4b204a2832d7cdf052667e7f78f69
a14fb94c16da67f7a78a1b6c236bf0fcec87dce5c529cd28fe8737d841bd4332
cebfaef3f991b9d96c9aa69fadd3a840c4099e47428bdb90396a6512023c29a5
f80f2915e14de83d27c928cf74c728952d6c95cda6e60a98ee86c82c22076500
642cd51f79358dfa922f6668fe80229aad9614c0069d6dfc3d5858505975070e
5d8566d9b7cb0c6bc11e6aa8a1320cf8aefb3cdb925ba594ba093c2177c2479b
52f9bb08ecd5dbf2dd4abe71bad94539eb42d7000ad831f8d3f2ed05c1c52ab7
c436afe34be572507b29b8aab50d3d9a5abfafe8645ca66b2aaed48f40cbda75
81b777e9cbde2198ae79de9827d94b97ad36917ea46454a2015835ac816c63af
b0246f126244ae28e16a7e283aa5d7af73ab67ac40d6f22f43c4ef8d0ccfb955
c4238f55eda71b20ecc3f582d7ccbc8a32e914f4b85f9870479058e960bffa2f
19f73a6a2440593f8c1d6758b145aa743c5dfa303345172dfaed21b200a4a030
197166a30315d5d53fec36ff28c1a388801e2de8256c144615d5c34235178dfe
f3de041f732b1458e0cdd05fbffbfe7967cf83ff0c1640c28e14dd3617464382
b8d15f705c36e60a70bb4ed56148ce24a3a5a8ec94a154a9215657e4589aa225
47031faa360dee95cca8608f84d3984e668be9fd60a2b2765d53b5ade86d0867
32f2b26f05a7c783af505ecc56cbe9e139fa1792b61fe16f0692e702683d3d2e
083952d014a66ef81314186dbac5cc30ebc608ff211d9220524a039f5859d44e
d75ceea89d2769fd7e108988d1c8395f61cf013a25b08a8982694d9aa3cf30e8
62e04596604b55abe517046bbd8932787bb3da77b4873599bb1a23d6df56d864
1bf53f1539ba70b94b044b542b7cc97dc4fc7db3fd77df5b8e8802d70465b703
faa926228240c594e638a75956e7fc1e1a1a3ea7276e8eae9c51b06c6217777d
fe8542f6bfd636df85ea73037d89de7d452b7f3f6b2d0959deca411588e24f5d
23ee6ab511afb28fdd2986531e68e52f835683c2284633271295014e030de66a
52eb89a1af50c145211848dce5218a61cac2a6d5d4e13b74bfbf6a047c95e499
81e04960e2537a66068255352e113a92a006ca0aafaa74154f262c0a32e6ebc5
6113752db1158178249ddb28b1aca437620ca2dd4d719feae60cbf024ab5cf9a
e3503384228de7e1ebf3d4b66aa1268bf1815b8355ad4afc9f049b4a04f8e9c3
aceaab1e11f69f43c8a58fa501715876378d4db873e443bec94f2e82a7764d43
7d6cb9070991111c47a030397eb6201c54d7eb547c2b533386ebe1f61876ce91
35b5e0457bd5a195c225fe9a5dc082f358c9eaa8c24b5bab5115fb774e255813
352bd109c301ee8888a56df85c2c64f76e34893d16cdd141fd508e9efe8405be
c9d068b55ff3cf240723c176e7be65d7c54d1373c26af2d4f6c5ac54e9c53b0e
cddd82be81edf6b7d31ccb587e74e3b3b04b94a2e268c5d15098dc04ffd1a7e1
39440c7549d2d4919eda76b1150dae6fb23465d08df1adf082f84af41213d5bc
2b170b83f3a50831fb1c6a627fec8406bdcd4ea043cf5a04ece0149edefa6e61
8bf5b57a6999fc6b714adac74bed627a0514ad72a1bbe2d01cd719fd3c144650
ac3c51a9a7541c8cfebf22554d0647aeb5ab039fbcdf0c812f9b2b3a11a816b3
84e6947508e0e306f2c62b7861d2b310e48e36851b655626243f6437e0c84ecc
b6e99a00716dfe7acb936b7909135ab3723ee69cad8724a753644ca6c9b8be2e
a278bdd583a22430838baa9a088f516210467121c238014c903d9a676f5b6219
46c2c0c51b8607b1093b245641dabaeca004ab859e5a880431b772d43771ac15
34f445dde7ee720c1a68401cb9891405d8f43069af9ec8941a6214ebdbc4b91d
fe8769ef597049830286ca0f4d3f6dded593419e4b786844f3312208c3168b13
3b55b013c976a5dc91453f2e79a9bcf3472d831a5606a9f18839c1ff2195adc6
1367209c2a5b865f4ad9f01b1086fd1af14f102a3396d670fba0c8d01bb22d77
e807f7001b0c78674624a6c9b8264015df381109c008d181840ae4dc5e02749f
4c99ead7397fd787016335ca02ca052919a165343c1d519f7f2ee4fef5c9505a
a59f951cc3653f1814adb05b16dff4f642a36e41453037d09976bfe13843f452
f8dbd11d4e937a8737b5754443fee3c04631c1e36da3cdc79622263781f7a380
392d5021c58f50ae454410a52a9dd1c35210d37693bdbc429a86ba1caeb19065
2eb5638d85a60c8ccba68ce2e0f10ef984421a365e666486d4e6d0853c239038
540149acefc285046b1f57284da30dc39dbda4fcad265b3961ce17785d33f004
af897a7ed975aa658ed7043825356dd937ec8bcd672f70cc75ebdd994ded0aaa
a92eb1073d10b99dbc52f099b258de1b485997b25c1323d7e3f973fdeff898f9
d1c018b1da16fed0452b3fd179c155ef6a5e2bcf05e6f717c699f13357521ba2
92f82f4b6fad9e795bedc9ea4985a8acb41b16dd3611e8210deadd6715249241
a40d5d7fd161a5c86f414d7444cc9e3a709a8da98c7d6b7d4f1640f4e37a1674
376e37e188bfc9b9d06393135572e52a6d1cdbfc675deaa2c3c0a2e3149b8ce5
432bedaeacf118fc99e5a567fc82f1a9dd2432660a05bb
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: Utopia-Italic
%!PS-AdobeFont-1.0: Utopia-Italic 001.001
%%CreationDate: Wed Oct 2 18:58:18 1991
%%VMusage: 34122 41014
%% Utopia is a registered trademark of Adobe Systems Incorporated.
11 dict begin
/FontInfo 10 dict dup begin
/version (001.001) readonly def
/Notice (Copyright (c) 1989, 1991 Adobe Systems Incorporated. All Rights Reserved.Utopia is a registered trademark of Adobe Systems Incorporated.) readonly def
/FullName (Utopia Italic) readonly def
/FamilyName (Utopia) readonly def
/Weight (Regular) readonly def
/ItalicAngle -13 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
end readonly def
/FontName /Utopia-Italic def
/Encoding StandardEncoding def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/UniqueXX 36549 def
/FontBBox{-166 -250 1205 890}readonly def
currentdict end
currentfile eexec
a9994c496574b9cb23f8cbcd64a4a16861c70f0f2da82f0c7b06ceacd6521bb0
cc26f1cf47836cbab75757d7a81793f43e56cc8f22f926da04d715ab6ff2e257
5a135dabbaaa58f31f548cbe8a76c69e2402589b9e5e46e757f06bf2eddbbe6e
e48a624cbe1c4840a338e90f7efbe9f2194aee1c869bc4cd76e2f1937d78e207
d8149c05b50ef0bb361f5905977c40be7d4dad07b54e087896acda5aa70ab803
9dfc55a73134c7f1c9be9028d3ec6ccb0fbb8fda52bba4d7551a8124e68481d0
775ed7f8ec68d8073bfdd3b67f72ec68634ffc57727e16b9aba841546ae54d99
b60e227682315510edda09bd6ead4d1652f449d737592c44bb178689a3840169
53d899636686efc6f838b19f966be5f833f5e7d41af38a899df96fdce1ebc116
9b0ec87c930d9fdcbab7e74880e9693a24de9c67dbb0dd75b3dbd113b079c490
60018433ccc06ac1df33fc090c4642fd5225fa0a188c131974ca8820319704dd
14b1719b958779d1475d92e712322eb2e6a79d652c4e3f5833aca3091675fef3
fde103446e565428267b009d87bb7d6bc40f46b498b19bf1223aba33079e41ba
a9561254a9df97a48d71015b6a24cf952539f664f172d565f39a55e063154d80
a960cd56c34011fe26e8849c6677427b2c7e728cd16272363d76661b3ab8bb2c
85c20b747519a4431421d4c83783feb896c45688ff7f824381cff5654a1bfc68
6f4894e1d265455fc00064d08c37dc3a47b59a5b2d14dd893a2b871492b07c4a
591695c8df012ef46a750d6cb7fd86696e7ead280648bd737e9ea490140f3b1b
1dffab2ff8e085a8b1c78e4b9ae9cee277a29233cec5ab2588d1cdaf4bbb6512
e1b1476c68fd3db18ecc2536968ebebf4333c2c3709ca354f21fffc38c3858c0
561378a701158ed0201a3b236ca9cb7f7528d1e5e07a9bfab04f8d0fa3d12405
5ba2fa9dff76f41b980bfb36e8db1300f7172c902dcb9f5f0bba3cb9c212bf31
76cb802ddebe556f4610021fa3700d476a2be2a66ae6c658fd0a95bc1b9629ad
03fe4e775ffdfa9f87a274fd904c0db5beae258f9af213f257db2be0265b964a
681fc4d2855f5356fc87576d847db274fed9ca5bb4961ffcf53f28b673f50e31
c3c634604e718b7666b466557f4f6bb6239339e028de3909dc47cd634205ddd4
69a944f11883dbf89344c43c513c35ae966a37a89795177b9fa95f3713e4d48c
379e33ffebb1bbc92521cefdc36e4cf5265d28522cb874b9e8459abfa31effa0
e0dc4d34692fbeeeecea87355dbde65528d1f76b89c4b5885e3d70b3ed028f5a
0510fa7044cbe74a030a9bf06c592dc447f9ed889988e7ad42cee85d5c3687a2
1d78ff32ab9f4cc829e7119f3d144ab2c78da8230df854cf4a690b27d715174f
dc062ff7b67b5afd628aba30e747a0fa3fe8d06fce5c25d6d409e3609a3f376a
d94099aaaed8041cc77e4a0aa2ea9c475d5c9b4056bc085c855bec2714d55e83
042389cc2a8c81b99c0d5a1c99c5d9675772002e02ccc9ae31cdf0473abe8f14
5769a75f2cb47c3625a4d9c81f6779efab51d02e9c3a3d2e29d16f70989d6340
31ab59e2ccff29ba1524fe8d6a2cc703310d1e11bb26cd09a88c5d9668f6ce9c
5e38a0f6feb7a81236e9870053f7467ee00287b8525fb0fd61b6d57bca6ba778
f81851bdfaee5934041df3c05d462f1f169e7d6d75ad7f1e191fa35c2980535b
cc33dcfb85458e1a06827b966323586090a04ddafcd83edd1405b034d2267ee0
682d2ef322bb374d5e1cc794026381bf47cfe8f1f443ba996d776b5abbc15ff1
91604e078cb930b899548c3e1d3103a6ee973541e4612511bab9e623932f3a12
464b7c4dc2536c8501988483d9d2b43742a84524bc11eded2db364633a191105
65287407234040dc7de0b00acfeec56327dd0b7673c7e1fee0f54eff511c923d
705df0de767c467187408ee4f8293eaff0f42de15fde3afeb79c00d9d4ac55bf
b5312797085b685a8ae8cd8edd16996276bfe837743a26f17bf58e565c9ab056
eab96cc5a55deb341fc14d4c4ddb94ba3575716cd39d041b26e7513a1e9fb1c8
05c510c4098d8ef857016cbb67b001acbda297093bbb0bb972b21ba71375849f
f835681590882884590b1287e7919d7bc0db1b03ab1e9281cf5ae0ecede7987a
850f0b9d04007689968c7dc592b47cbd0bbd09883e3130c65ac806c8036b2419
0fbf6b3d180ddc5377dfa962ac46139625e1e36a85aa31c1b23c5965d8d542ad
e10321433dd22b1968666aedcf515e82238221e8e0e5dd1c2ae637cd19a66330
72bdde186cb65b85e07abbb9e249ce3641595278e7daf760b032ce1e4d206683
48a562bc652d9f05fdc66a4492f480cdd6111709678fbef28ab0cb8ec6a784d3
c239310842e9d3558ef307b5af6ede1bf93eadb34146cae9366f997372a744ac
9581910f122da6344af2c024e203f77585f4a1a9f164004334b4587dc189b246
f173f8f670fbc4644b3c8d143991875477759d0cec9e454e76d2676da271fb33
ce1680cd4f7db9fbe4d5e8a97443e951a1497a89bf79b2f2463914838df38670
883ed09a9b0f35ed7849584de15baa5aeb41f69d431b7cd942f525ace9308fd6
753b82e9a3484f81d9c455e80ff82d233c5cdc5e0a2968e66295669ad0d8d9b3
4b28fb5f6a5636529cb699b58f047e163e7278290bbcd7a8d2f6fae7672f132e
0651a74908970b86c4907da531735075f44a5d78b111be61ca6fcf6ee4e0146b
bec799fe6231d36d7c8a9a8ab2882a1e26f076e85d316904a39fbdf2b79a695e
89befa53c9fb8aad2a83be6dbd7b45d18067d0d5bc8ef4b06a829ecf13e311e5
1abcf99eb1de308acacf7a7e3624a0a5e3049379f24cc153ec41dc018e1c7433
3bd4c9a6cbcc06ec2e4d0125ace10b0204cb7989cc2c5e42955b47e0933fc342
e5c5e74930ed1026459c3999b3d68afa03c19d26f9df5b0487e743d2fea03d4e
0c9764cf2bec8f9c6775963669ff47aa488a45c17dbab55379e348af380cb5e9
ec4bb5ad65b801df3fedfc1022f2d9f05fc48f30389d88dfde8dfe66649365fd
3c819e57f89578fa7c81efb6ebbd8ec984d4746ac925b88e9a5b265c3f3e4b49
d1843ccce3555c2c06aa62ae52a37e6e68ede56d3029b43859c0659d9bd2bd0a
9b6a992fae74c8a6cf51aee78941c358ac522cec5e781e4d434d10421c7e301a
366710c893cdbaadaf985e11cf0f939b616db69d5d24bf9f34237cf9a02ec39e
9c6f12bad393d6d2d696330d42b6e4920ab0994a5f7177ec3126f952a9359c70
11be29fa096193c9ca694768297a39aad39c5f73532faf5c06c8c71cc557f373
8ad6935700700c96c373ca73ad1c33efa6be0b0a42569073e00613995f993eef
ef26736e9f5ccedcf41bf606d4bad0a517320294e71b1b2f8c898a0b47bd8c81
95426e60a892992f3421137445de0123d612601dfdd78c8ebd627afd52338da5
4be224be6dc190051289765851ce3d77792d888bf180303254a0e7328303e3c3
b31ca2449493ae1e8713e9802fd7d6e7e750dbdf5ab8e44a38a8c35e5b6f6afc
ea8d1dc71a2eaa3eb7f46aaaa84609082609a3fd9ddd8b78e5d0a1987f2c0f66
cb5b94e9dfcd26b2025c272f394b125e066419d1cbef6cdc3882ad626b177f1f
4dbc926b924ed956117ce781bcf251d22d1f9983bd8b3a36fdc4a7de2948a3b7
2dcbf28f5f1ddda319c5189aa2c262974e0372d685c4d033068d15c5c7ae319c
3da8e498806dd11bc4596b58fd90dfce52955234c3b66117d4e66ec3aa7aaddd
1eae2bcef21ba7bedf2cdb417c52ed12994e603c0ebf0e17253d0aacd15c29f8
fff8bbdeb43c2592677d41715ff22cbc93263e00f449282391f4d4f79d981504
81ade8be5fe02d95ef9dbe434911d45645ecc6b9f4984e870468503417d275bd
f841787875b544860b667bf373960bff82605ed7fdff5a40bff2b6cb96d3e32c
600d97b2aa99996bbb8bde1ae4f1443d202b1164ce17dfb4c6c320d1e51d8b8a
da5a114a7b87830d5aa3322f60213ae7d7a865f23d3bc6741bffcb629376d54c
101b59e1c54c2092d439f7197094318a91c2bbaae77a48c4a47273e77c476248
0e4a4c4012f0641e85d8e9af1e9b08909daa1930259eb3352112f9cbf16c35c1
da39fb3c7a7c4600bd238183326779dc3eeee3e62dc71ebd76b4a0ee481ab88e
33222f0b301c3bef001ea965133057236ffd26217959b7aabdfffeeedfb57ada
36f409b754c11fe4bf35bab7944ee95307d6780289372cf2bcece24a048dcbc8
357da4524b8f262e07821b97e70351e0d721001d5abd368fb142132683e71c55
a16713105c46d3ce032a4959f23dcd2a27c345a8c05a68b39f72b151e5c02a07
cd0439fb2bbd87d1c09c0001ccc8ff5698897c41bf42392a5a033b728f913695
f1a94961f659eaa75df4e4277eca80a56bf0ada3a9bf4f11504243f74fbcd989
3d9cb975fc09d8a63c384afac5177b5bb2edff19765eef736d14959fd33ccd3a
89279dad9f04dca9416e3ea3ca10d28168c25fdd03c99766d36b8088fe8480f8
cc8e2b404e68fc475eceb71797858e677c5d57580a8cf11837fb9dcb1ef1a442
5f99e843d10973557be9e915f84af4105ffd37e4938858594cf5645a91df315f
23d5a42a8b8897d01b4135fd6f75875ee0b34cc62e4c10333102964e02050c8e
85c57289c89fbaa8693569c4c0d45ae4ec1f59bfd5834b0e2d3ae2386b4e8672
b3f86e1e01a9272845dd93b3bbba0aeae6e8b53ee8c13b7857c432c37f57f401
efcb45c9e19129c8f81b3559594fd0dd09837fc9f943b36ea4076b61b8b056e3
aa2b41e5e780b3fb5e91ce9111b8228732498233256c70aeebc14131607e231b
fb1647d0ad13bb17e4f828b0bc5545bf3dbbacdd038e74e809db9fcc2b37eee9
b675677d8f14a94c4909ca0f2cf773b2fe1ee70e13657b724460a387073a43c4
62883e0a780675ac294246f0bed19b303363c061b0168d6c7a121eed8a0f19d8
192de5b6241c79ee9039a7d7499e6272651da99f9da11f545b9a7e254457b172
0d6b2f6bea6b78823d3a21580f09fde477ed5afac1c2c103ef97e997f1962ff9
5ff359ee91c6dd7f379fd0852632218a3760bca482c720b75b2905967cc58a0c
e61abf14d4570e364c0b6a9cea791ed7c0686069a7cb418ab196917359a53641
bd4d86648a079c9b9a4082f4835a2e39871c9791b40bbe782a86c04073d1389a
1467717f4feff0cb95b6d5c762499ea23b403f17d0bff71fb98d8f5a976035c8
3dc157dc1b88e89f48edfdd16dedd3de04561a9b9c512489727f26cef86f0c93
dce8c70a843c9cc2354c7ac344a9087d3185396e7c5d3d5eb666cce687a14cf9
9748df689b4c9279776876a0834f11a112b73e482e82c0ad3d8cdee3751a6921
2705aa88b73bab569ed1aebfbcd90a5b6437d4f24c7f0bc8db841e8e53d8ac40
beff88785412d9d387e567b96574113c7ba508f0472b951510af2933ebca4937
b4b2b55dc323390a3e2890b751bc896d500c0e7ec04c86112bd2e28b10751759
ba48ef05fdee5a9cc3f3fe6f1f7577d4211e2356e95d426e6b9ca5506c4b2a76
d5a49b288e361b5270f76cc99464cfe869e09e0f7829ad5174b6c56d05011dab
f4c3daa04ae901cf46c6460a27316807bbc3d3b9b56dc85bc50f652b9debebc0
62ad2bbdaa195afb177e50f3de45044e8a7985cb4cfb1c6002def6cd3e4a4ea9
607eda5be8d6533c704f12b0683ee34a05b84b25e964f5ee467fdfb658da2dac
ebfb515d71913f753d02fad4097c1b1fa502d2cb2985041253e5856a2289a55c
57fd3480848bf56f06bb67c77391c86e5a23d9027f4c4ed6f449ef0222e1b2ad
12276902573a66804c7978f4368f30825dd76b34dbb968f131a8f4e8ea8422b6
36d239e8ac75b9c31c5066552ff0b0bd27e5d9fc5e5f40152e5389036e5874f0
6fc41a77ceaaee61d7567c5ec4d1365e70a0dc7900f22109e3dc4776dcc03b77
96179fb8135d25534009516fc94d4e4b825cde09356ff48691c92026c55eef63
4bcebc021fc4c3214d548130235b8b9d914861be463658a6eeca62a4a80df767
5a8281a8500922fafa315feaf1b7b910d52abe7907c3267bb5094ede303e8678
ef1d86000fba5116cd368e1f7c1a6db1e9e92e54527441734d404644c507e32b
e3d184bee7a455b255634515d6c8ddc4df6f8b6accf7466729aaf1d783ce3691
9023f9ae1b8239d3ae3104d2fe96240a12401492990ec856234a586cdeaaacfe
836fd2de56313e703a7a2458452fbaedb7d841fc59ee21c2c28d28214f234ae8
6ed48cc09e2e8fee90ce028726f84a97219f3e0aef52a49a4c787b9ff4f609ea
8181daba354e8bea913000eb841a7e86e53c9c56bd61541c7cf8129315e7b2dc
72f4ec8575bebe01f02c061d8b4ab477ba8bfec3767f12f0c53c5dbfcd726af0
8aeee0cc3b5dd473a53550c4dc90ec0009eab8132f646ad80a6b31feae135b5e
b09207c8614ec6173fb54f9d15e40d91b398c11ccdfa7e977d48aa8d2a57f17e
ad2b3cf8eb132656f330fde6e3580c139568b2ad801bd22e6f93bda567b5ebd2
6d0412a4bd0a17f296d6f02d359238552c456035fed1ec83279572791c7b3503
1bb2ab42b663e92140f76c0b2e72d71839c49d184e475a76edc82e10603c492c
1ffc857bd7bad4e4d88a5ea83e47cfe58c991ef9e050fa98496413e80d340d6a
cf5ca398d96ecab928caf2a5f8f7a8d22a459b530977e1e68cc16899d0b3ef1a
329101a72308a2cffed7ca9ae9020bca4f6ec3e56fd2f9e574109f6d708ed293
7e0ea6944c1c33ca5e3f6b40c106db4b0a1a3763174f5006c41e7a7338e83934
5281f682ef51c7b3ae2372018ef81e1f6697f554d3ea211c7460a13b5ea01064
114afd3b5600f9a95c65113cdeb5df6e61590533798041b1ce2ef6aa9c09da9c
772b2a20f596360b08c46ce2f748ef7a79b735a738877bd1ee6f5986709f3607
5338d3fe12a82d8cc5f084326745e9aba7d6ae6f19d1c8112642ac26396b01a2
0e211ac76eba317f2b7a5f58704d33c6d2efe0ddf9f3c8be6053536bb7f74791
b80fb3c295b06d805e9e8cc1a1f774e8074c5beca03a55cab0b0e35d7b176de0
e3925f6d3e8a07882533fc27847a30d655dc674de606ccb55de49a0e9f770b20
8999c23a022aec51c9002afa2687558b7fb65635e9867da39b9c0855180a6fb0
be00a206cac0f2077034fbc9cf599acce6fb26596a8815a1257dfee86dcf26b8
6c06e1b27c63b45381a079f374770265bd6853c6f436e9d8f906d3c7f26b3cac
147664a8d1e52c1e94494fa724e06c0d49332e3e1fd9a0763d647b00eed84bb1
55fce849e0cbbf794097b5199c3b671f9cc7e8d5cd663818484ebee774ee6197
253293e82e4cc1cdcd192c67dd58a0fb1625ba14323ac10c0862c2c026de28cd
09416d624172a2963b23bae503f8e72cf56ed8fd26e758e48d6afe00a01abd2a
6b290ef7727349f39c4e39a0789d3fd68891d7c742108e5232ce6e22562014dc
45ec1c3611271f9b7c1bfa5a7863b192bf560ef68f6681cd661cf0e662003094
402581fd3fdaa0480471be22c12753337666575d13819cd6afb28d2258291ac3
50b647a8ab329de34982d14db8e88cadd58b59a0e13a19ad6f4dfae4193a0f86
2bade4a093cf6ce4a79309a307a0feb399e8b7d24243dc5ae4ae011a5a56cf42
dbd7a32ec3b91b04535bc694f1dfc22ebb758c7b8be29195386e07c637070708
b8de7858e231dbe6483190c956927f2ad5b7e7495ff6c074a6ef9a5f0374dc94
39319a3f261a118f2cc42155761a238c3cedcc76e51c7dbf749726b6733b058d
3bca996cbbd42ba646f6553c7e5722719ca4ba48360f45e0c784dedd9b92c5e3
002998d48530dfe1f72e6cd10c1efa7dd26de4799d9b9ef82e677e9bfdcc0420
a1d851c1d7f8ae59124150314718107ecad527e7c8b316f41584de18c9797b47
21f7f2249d3491a8746bd880a8317b191d0b010de2988e1597cbe5eaff749b6d
46e928665200620d86904395f69b94acf3b46b0d36d4e1f16152476797cf51bc
9af8b3272c635044882d617aec8df21775c1ee7d69cb027998351b9f67c5e76e
e47812f9df5ec34edf0828e5098bb2c31902596334070da9ac656b6f9487169f
f36096bad690dc25110f3020955dd075a834a54f70644b77287b94244587abb0
991d1c47502d3536de87002d555558e3b9eb02c94083274f2ec32ffc4c9e1555
f283c59f7b01c6aa7e4bcfb83c3572c951a6bdd21126c16a81e83d865c74dd31
9cf724137240879ca22c1a793be396ed5a78447a82260bccc9bafe05b7ca2484
a869170a9019ea4a4b7678f90bdf22f9a46073d22c315a6740f52d5027b23652
65c58b6467baf68609cc8ad96f6266e011f68b6bd84860daafe1d6af8e0b55a4
8d542a47d5800e14d1559bb9e527407fcee1fdb7c05a311ecd316aa306237f56
98d1059746e443a18e24440a156af8fbf75bccdbde2df0e83c6827d56206bb13
f1a0a159008aacec65cf41e724cf8fa759b88421242d50d3fe289eecfbc05c8c
4a3f398568594238b4b2d2705fe655ee04de317a5624170015a6cc88efb82b20
a2273f4097984baf2c1ddcbea759afb6c2cf1c461750bb191af1cfd4701a7720
4ddef724f927e2707d86fae75eda9867299a40b6005727de78a1c639027ec01b
cfbce0fb4a694ffa66bcdfb7a838bfd7a51641e6a2cd44b68bec94f230380553
eda7bb49f3f1f40ce2a697c6cf81c300d4322b24b5b5689fe8ab69a62b77eecd
6d097d6c9163110eeec405e44a6379365239e3f3f1f79b2f21b749966db46203
19cefd61d4428e117a735beff160bae1a1eb6ae0402ae0aff69c6b98da7a2d52
e8121b44df819260a40d24ca7c1235b4456cfb64502efc1f5d5fc09d619b8588
51c8f06f1c0e22138334c3af0ba4cbc0de0ea6e4a72af5a33e4e3d3073c54dc7
ae8c437b44a1e2988057afc7890121428347253ac740a1bb6181bf58d3140c74
df820b835418c4862e32121bc1104199587b3e63b9bfc4f5676b0483e830997e
9c90f74406bd51760a6ff7844b7992b40b93060cd8d42c05a72701d2fb3a0f57
226948c99379c9622f0973837a58cabe06bcf149131a0b1db1bd4d141a10c436
69815b0aacdef17cf7de0544a3b7f6e55ad893ffdbe3a3ed9bb4fc42b39109ce
efdc27687e7a3dbc8ce9d85ca89d1eb0cfc151be0878cce76c6618cc9ce88753
110266a477871d39ee43e4d6640682aff908c7934bb8f5cdaa3e5890c6f0ef54
65d8b68715bbe4360ef7d15d320e5a813c47d3bf7ef04b89946ef824761117b7
a02f83e6c0a3a8c4318ed4c1f715d55b
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: Utopia-Regular
%!PS-AdobeFont-1.0: Utopia-Regular 001.001
%%CreationDate: Wed Oct 2 19:10:38 1991
%%VMusage: 32987 39879
%% Utopia is a registered trademark of Adobe Systems Incorporated.
11 dict begin
/FontInfo 10 dict dup begin
/version (001.001) readonly def
/Notice (Copyright (c) 1989, 1991 Adobe Systems Incorporated. All Rights Reserved.Utopia is a registered trademark of Adobe Systems Incorporated.) readonly def
/FullName (Utopia Regular) readonly def
/FamilyName (Utopia) readonly def
/Weight (Regular) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
end readonly def
/FontName /Utopia-Regular def
/Encoding StandardEncoding def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/UniqueXX 36552 def
/FontBBox{-158 -250 1158 890}readonly def
currentdict end
currentfile eexec
fa444f2716d92b815f58ca9049c815358e22e32e73a3e6a653c538ee56873363
67713b8cab082730570f5b5efcf34c2cdfb6f8dd2b7905a37c1924a2424c16e8
711db76501f564506b0f45fef10d83c3e3c6df2dc0af7802e7f42c81b4243697
ca09088b868d983e79e4b2c3e17321993cc8837921fd4ff7b92a1294c5ba33e6
8fd40e63df624b51865721e034f71bf57bee0e0c2a9c169c7a626496540d45db
585d2bc93f83e6829eacb859a194d7a57904cfae75e6188c7121003ae40153f0
0fe6fb52f339e72d4aef38469328465a3bf0ca1ef58dfb447612eef4ada248e3
ca525b0884971b85099d73538152affcad51d03eb4060a5c580f453ee78e5c4b
991f77c6e9600c135395d56335a7c3a75c0341979d6b404ee496214a5d20ae06
e17d80d37bd3540b8fe913bae1674afe37d0c41e3d9836a7b5147be32f9ba01a
df1a73b89d30bb595a4b279032e37c8230b6d4933065947c3e9150d2c7c4d439
d60197eb69991ef059edf886ec0bdd28158a71a2df96dcb67fc0bf81c34cf27e
12d6ec950a75993af99fbb040af595134198151e7361672d8538cfadb4716785
dbd48da442ccc911ae9157b14e433559dba1a1c5619e99b57274d6998eeca3a4
7e804d8fe3a664f39f33237831385949a230a21e52a2dda733f2f89b02ef4ce2
5d603c9bd2f8e4c0443070940f0380dd1ac60ff462a9a71965a79d787e0711df
0a69bd86a4846965ac6c77f2e1699c4620c1bd9f5b2263e13a2213631c55f7ab
cf60d2e63a7830d5011d9b9934bcee2103f4a5d56942ce0f590a15dab480e5e5
723afc8e1d8d96f3e0d8629b88ee477ea6cb8121b0adddf20405f8a32756004a
8a59b2cf922a6dc0747bc15e99079aa12ac0d9fabf8b47c5a61ca5268e01317e
1f0a38c468ffea597a392ae3399daf7c03126987750258b5e077d703cdbe05b9
a5fc4d80e8551c2c06a2c579272877fd462fac6569a7a9f964797df79628ba7f
f77447fc2aefb25089ce946e0aa5c5ff21370f0cf84d8e2affa8b30891081b16
6fb86fdfe65e7e02ee551c6b3e2e324cf7e18664883dc538018ec8cadf7093f4
a13708013d6ca2afdf644c0155342917c2725598fcafddaf8807200682fcf04a
4efd5919c21ed2ec2f7951c2db953ed292a54783f5c541bca68d305b05df5c5c
f17b9af31035dd8a77ed8b54d4de7d684f54c58a28f0dc55e7c692cfe444216b
18751c24ec1c8a00a5cbd458a0ad54e7c13f26b4c4257fd992fbd1338845fc69
6b97a2ee6a4d4f03fd387e745eeb8e97eb67e40bacbdf1d6c08e9fa2e317d30a
c4234559096affd5b2e65606ff153901a68f158520c5e983513e902aa42d4b6e
0114b6bafff30aa7310184304ed27739882a95d64754c23fb09cbfc1846fe274
96d36a1028bead0bc7ba99891255e592c1ab0cb6c238f91aabe1e5ac1baa7e76
a578a751717c59d17cbcfaf49ce2f5597e41674334c47fbfa4c6156554b8827e
2228e6946ff9f94a50adf69b90be4df5a68056d3b0e239ac902e2001f0be0da8
d7f3f12d3bf591065afe84b6029522302f9810c465daa62ec2d497595ed8db58
8e3751c232e74debde6d460fd0fbd9833435879f69d4015898501b7010067a52
e1e24ab298b036534919d06c603b1059128cf22bdad9dc07ff32c85a0c956da0
df7680321f848c1a517fb7d4b4493719bce7078cbbf6bab0d830402f6910b607
a47015102804bb625349de6851000a0e04a854d96012a38887ac7d7a088cb2af
87b49754dd4d2c25e9ae751a66e8f21417541ea6139096322b06cfc74ee0bcfb
c6e62969fac269db04366e4f88a7209482f15a81b96a24b6eb95c51d09874754
25825e287c10e1d41c348147a810c1a3f0416b6b0226f6cfbf3bf5a4482b7ae6
1490990b349a4a9f2d1969a07f04eec805f835d273b50bc27af8e12bc6cfdc25
a621e37a89744f378378fa4a78f6b4928d70fdab9eb1537b8bca11020683696b
7ca43225d1887ea6950f296c44b846332260a372ce94c755c2bd66a0c6538022
44b82b25d5fa8c7fc42e2cc34261da7af1d49cdfd345f9ed9d4e0f642ba54d80
5f9928d475fda79ba985b307538337732006bac708f5e4451e9a255e3530dfa4
fef40cab8588aee6f0b71d05a9448fc3f9ceb30c71c4452a5dd93f8928b0c37b
007c88426cd1c58bd738a1e722f395e8ea7aa4c036aa8afaadeb04b813f2dff2
cdf94236a00c5c2e94413b3fec178e2e1836962adffc8aa92d0454540d07d239
fd62d483603790dfb1ac55c4a914fbeec22b9ea4d4f91247ba74b456558097e4
5d1d7bf52903755b4e3a2cb972cf8cf91212a2c53340e160182603418894cf58
eceb21520035819639e9cd061518e019471a4205e104c405cef94f96286a7b6c
2d218862205f72e8f70cffd833b9c6b947e38ec1ecb61c91c3be8d60423d4a48
032e6faf3774ffa949f5dec181fba4bdb61ee45f2d8ee18f2e676bef8a6a80c0
64bc6408c61dece2517baefad05201a56997ca139ff35a5b54341165435ff7eb
a056ab6fa7ae0e987dfbf231e8892a23a3d9e74a92132c3bba5ebd1438c9a93e
b94d553d519a46611fc7e90793e5173156e05351dfe09d7250b1e0f806874803
cf1a9ac65724e0e7d12e122862913e62b78f71326d4b56fa1a20a9c6a574b328
f0651a00f69faae313bed805b6f63cf258ad3d785143d89f94878a2d6e825230
516a223e445c597df52d6dfefafc74cd636efa58972ea6d0e661ed02dccd158d
b450344afec68f350f600f506ad26956f7df78af8ed928dcd8f2f2410802835e
2b7883be4e6bf313d1f4bfdb27007905b90a0b60b15dbf04ab82d006cd69c924
542ce048891e905b032ff6b2bb9d20b44304a89475c5bb87471e16d789f1c3d0
ffe121bfe78b0ff4b6d847018ab9195077791396bc41d0b5653373df4387ab61
bef01e6f5481e8cff22de928d5ca084c037aae138288f9eeb15e1393219e760d
86be365085a90adfaa61db8b250bc413382b55ebfe49d4b7bf5036060e4e702d
54356d3018642f07fdeb36075256af9862d675a7c5659b3c74c73ae9cefb88d6
42479487ef008179cb7c5c1b8f72effcd9ccdafe2060674250e732ab2d1b69ec
79e2f70b6c1fdce2e2cc3dadf1c5ff5cb3037cef7f66bea5f2ec11e303f69264
fc8eb7c9653960bc1bb19b95a650c27b9caf579bbd4a8f9227d0be02812e57f4
f2d842d3d87415db22c12a50707a0ded1ea96fa3ad3ce5478fd058bb7f8c9fdc
96111549ed5c04a0c535f172ba3006896ba91ec68f478df96a7262ccc746441a
68ba9d4e13cd948224493ae66a4ab9af8cce770d52e351a05b60c102058c590e
f0432964454aeda4379c2ca54a7e30e55b2f510b2d0003b19cb90ef12134ab3c
a7f0e20a50baab7acd01e4f40093e432beb7fbd6f44808a941b1cd4ca75d32fe
863c49f7d6ed8af7079d54ff82902dc0b01697a9916ee71056009bde8238629d
4b87e237aebc396e3787605abe53155223dc45c12a5f75e88c5875e99d154922
80cce083e6efbc6b249b9e520ceef7deebf2e07c3e1d5ae486492547b1672022
81874ae4a3f559c037d3f9a8c7a6a3206e9c8751a1dcf309b0adf78bc36aa4cc
5c001c3b85d1dfc9e19c676a95be2d6378963b95e5db773d0df63d5e2bdb9d51
5b6178236c4e909079b846706dc0df0e8d61a485195a0790ecbe12c6530f4589
81f236235c1044eab46692966976466cc12a9033ba970621a8ade750363f0535
e0edb289beeaed747409515c556dc7a05ed0fa664043bf0b5b58d944e4c460d6
7649ffebf9a0155946b74a5fc4f4d2fc2ad85bf06d1120686561946143bb14ff
c4ab983e9fdfdf5b9ffa2f95ff90a90ae0557fcb50aff29b81b08d4167d2dd44
09e948c06c3f98d32adefd86503c019cd5acb8f4baadc18f227c36a6f3ad360a
8cc5deadd6f6b30e14434b3d1fe89619585709f56a546c3d75f76ea34e7b27b7
b3742e4c249f029fe4fd8c34b57917d7925dd2e1aec5a432fd0c75f49f162af2
2c7b9bbc08fd1a495cf0da1170fe1a13ae53d45b712a33704f5ef7e4601fae36
5143c17ca952870dd0f6324aecc2510602c7b47fe68eb2c0aedd3f7c3ce8c0c1
d729c6976b8f1d6de38347aed4cf1e882fb8a3efebee0f2128657afc9afc73a4
7dddaf97f33277712394804bda53872097353b7863287b4c5e83cd1f26bd6df6
17e27acb6a8877985ffc96c123f39812dd781fa3ba8b84baac6ca5663fcffe96
0b3d848286fba750c9192452360027d32b13a9f6e3498864e9096c7bb4abef01
b95696a6e620e8d7ed5a1c5b005e42261c8497eb926d8d72a0ee74f0ede9d7aa
3b8ba50c52065b264a92114d8fa5a3314fa2428e865a28b616b9eda1a0b65241
4e679a194815c5d84bda805e9ff427490ac9daff775a90f5b87853a39ddce1e0
91cdf1d5286a137c7e9bf1581a0ab4210c29d00d2402a65db5599e3a3dcc73f3
882ff66653135130e141ab04f63f6588ab031e361300464aac5dec8ff6c8f554
f1c7630a952c43f35cf31ea86dea10421508aee7ce6b755f41b5f4e5d1066065
4e2b5031ff074251236ab5ca377e7e4872766237ecae77aa06b878e7e94d1ce7
8a704907b9d3b27364fd23922bf6c38cf093ba5a6a674e0ef033dbaccd36a963
6a6fc053205c111ac5dc4877a10ba4f0e396d6251110f64bc78d21e1d65eedfc
f2cb66518f978ecf4b91fb6c300ea2beeb37d7b62974f201ef642bae1428f839
4aae8546a7630d187cac0aa26aeec13abc742aa9618035248c28946c757f0b75
9226e4fb4ed97b1b728304f8447e9eaeda6ab51d618224e6decec2b9a0d17b4d
bb3dd0758af8f9d59ed9c47204dc623d5faa282a3735baaee37dde920ffb2d39
2a35a505590a86eb2a985d061e02d3d4f36feb6b7eaf0860fef22d8f8657db55
92298efbdbe0a53fcc0768818f1da8cb741a39e608c31c68a7ae97406451c4a1
2115f9fda77b2e9c21bf2f8b949e675394278f8caf07c4194e6139766ffaf114
4a5f0818149eb474e610596ed8f713ee37dfde0d7aed625f1aec695dab2fcb2e
b93adbf741af0e4885582f58c06b89b6339342d60f86cc7c427fa7c9ee2b1216
a42a07be92d69689e8dd70da1ba0001fcecc80c3a2ce1ec02112e934efff30b1
925f4e8b1238f2197557eb676df87a91fc7b885de36490475371fcb7fcec35b0
1681e268e7e8ac100b5ef88ca93c91fa011fdb30af5f2ec8574c81f16dd69bc8
f62b3d6073b5888bab10d114ed98deb64a8646119e6f57e828892183abbaec08
20bfcf22554631ddd94ddc58ac4bd250bd91e858efd60fec0e4cde07d9250a36
034c1801c54edc9389027fe859a73b1dab959a7da810c1a3f0416b6a56148e83
79b0d7153b3029c97d972c0178a40bf29d5df2cda0365407b5b29dbb0ce2982c
4c384285d73fda5d65feb244eb48845ed9ec42bbe5397a1df052f7c02afbf50c
aeac263283f147b200fdc050b39e068eb4b943092762c586dfa6a9cd79aad4ce
2a3104677cf69565dcb79aacb4a37316908535acd72fa0bc8c1042520a15a7c8
19cc4ce79578bd03cc3a82760565de42903f13b86f58c7a1dd73839ef0dc3a6b
d29ac57c821341328c5a0cf0b1ea3b8da7ce50c06922defb915f49c404636f1e
ae4a5e9de17f481df5b84f6d327fbdde4306b0fe55fa7929f82ef5402cce86e6
8955706275f90daf7efdc635611ace79a37fe59e6d97a192fa0bb90431778179
833e216f9969af24e859ffcb5a2397e831a76f106e667f9de74d362a65b2a69d
bb09f1ace47c98ed70a2b8c77645e8db050c1e41828510372285617fd4f24c3a
9e139c85f818b69e2ded1e19ffd2bd2850bd95acc646a3cdf91b759abc4576f1
bbccdffc6ef57a682a4a80d6e22cbf870dbcaaf949cf89a708bae53aed79601b
33fb21f935deab0d0654178bd0df716f752f8e6e70dec035626dcf1e7da2fc7c
61151674d56192ec6197e2999113d56f9b10ea2eedd17c22bc1d4e2767e531ac
4d892c2e7f0e1e8d467abd278bbde0557c21e1d887b5497883e42ffe890e82b0
e1b38172f65d4c28558ce104e53fa8c85c833bb33267804c0e186f09e4b66258
7dba6d6912fcce2ac70f38c6c1efb13e250423bf86356a0e97da2c4ff7c22748
aa9b0193a82c07f2341a8ea7b4e2819c2793d69c1dedf9f56e03bde15102c01a
ed06b759b8510a5d92d241dd32cdec4781676e2262c7063294fc1807bc6d03d1
ebc7d020ba1f468a1bd97ccbadc093c23b09902b1effe308e0c0f6054be5562d
ee41d2bc929ab7c7cd9922e879b7fcd9f4d1ddc734425358b49a79976011d798
43e6562c5d5b661e2233630e142f6f724b1c64af42c3e400f9605922632b0ce1
3291132aed69a70773f9e1357d423e689f734a80bbf4ac67fed36622c820fef3
deec117b7b970fa5599b2d527254c475b31a302fcca78a4c2061c6cb97dbbb16
e9aa65fe9e381238e32fa6c1daa820a62ceb197f955999ca752ce19f4527e25d
57bdb877fb2c971390ad91d183832fe3932d9acb6c8c652d091e3fa460dfbe66
e1d8bd99073095142b7943831474a00bf441b7982978df73bd8054201f4700e0
fcf7ff5e33bc0597ad4e5187dea35b8c7a9953c7737975d9dbbbb8441ca134a7
9fec90830d716b5ecbb6b5e575e26f8057f5eb96a280f513f5b649608fc16cc9
294fe39ed4c0a0a714d679a2d66ce9fdec1a50a9327ad81f8450f0e29a5c5c02
77a9ff2afb37f41f563a7ce1191eabbc368e553071c669ccc15da416a319d6cf
54c7c4df9bc118d8ac86caecb9d700510dbc26aa5da97b5979fe2b43d63ae912
e31ab343183fcb3a1a12ae1131dc149e1d0c78e742872e6aa786fcea962147bb
5230fb4918ae8c7ce597c99a8ce40d6449be11c7302cf23f629b06ee09153891
d310b8a274fe595bd8018d6db0608c4beb37229d5eda3a68683d07e37fe59f29
a069611391e66dc83e7e001107e8ee106734cda6308d30c4a5c7614df95308af
2fdbfad9fd8e22c8095bdaedbdd20d94f361226cc3386c14f8306d614cf32d21
58e8eec2dc56392563e2b3ece37f2882bdbca5c6685550aa57acef93539dbc9f
81c9678f989ddd93cf463bf5858f211537605f3eb0e93f2e56e5d5a35d4fe2af
241a0c911f1eee66b80c5d59f7a4ba2b8cd0d010bf9a34337153a0b16d1f3bd3
98581e7137627406ea5dd418b022360d42b06f619964f34849b4fb2f4b26d0f5
8617a99ca127fa128de582928607f130f46c97bdc714c4b5b40e73f25773b3cb
69e6de547cc84abdd11ce2641c8300c59703b61a1b1fa2a5fef98ece945e82a7
7d62bf6607839b5fc8960e17538ee23296f33c16ccaec3541646720d3a7e6512
37daa82dd9726a55208f3a4ee0e45d2d485b68bb94f58f425ab46052350ed1e8
733977a9d6463fd600ebc5cde12b6e4d5bee87c5e06d11b97afe463f1bbeda9b
6528ed37f7d1a289c0e58c2930a37b543d6d43ac0062bd36be9be732ffc79567
892ac18500c646ac226cc1bd60473ddf23a85f9c5a61047bd7d4844e9e79a0a2
2395eddd44abfce0aa9c4db2e9523460f1177a51d27a32b258ab1d0692a10c7d
83ec55562fbdbc329fd8c2ed24fc2b04ec62a3a988de00fd3245acc64c445522
ce44153045e22ab2b0107b62af1092833a700ad49dc8482cdc78314f142a4e63
8a753d51a36cbeaaf948e73d1b1b2fdb9a69511eebd13b8198fcf134c4ed5f88
36f5272211e69def427e4bc17544f1e52173736f9cadc75b53a47e998844b763
be6bb437dd1cf783ceb09002edc17de7f79e6c065a668b5db74757c1b10c4cd3
88cf5747e433b6e2f5077fb8dca952c52e555ee03231a1518f81015e3c1453fe
9c8ad04eae447df302fe3eb1e4187b9b96ed20494a5a5637f43b5ab030e8711e
22e2bacede72e280d70e3eaa0edeab0a5ee6fb4e979ec671e16a2936dcaba135
775c31dea0ca1f32694e62b5ede61bf202ef051e0f3ebc2f12d3edd379f495b0
b12eb017b85a687429f5e7811696fb9c91f1da69bdb690f3b88b8c3e1dd8c701
cdbeeb54702bce506f582f60f9afd75442453b01516347af59b7d391c14202c3
81d88948a098b9228673b8ad30f7d17265ee85a2d8eec6e1fb96ded64fd4f4a7
8592aefbf4ba6b041f01f30ab7207f4eba4206bb7a97836ee2a0e39fd8a6b6a8
ade01876a5d0afabc57500b6ea8613007eb5dc8f7dc87cd856cca855abe47491
4442f7f3cc198d58e7cd13700fe8b5b4c97cb8f610dd5f820423ddd67e0a154f
2b400ca3c99a0b753cbef2fde4c6fc8f52df8603bc6c699827074692c6bf335c
8c27f003c5ccf381ca26a4eebffc217bc88cfbd6825e2dc653cccb108b9956d4
afc53080c6eceb0ef808f09d78f8c8ea335607ca4d2cbedfd959742b94bce5b0
56e38d4530796b19286402691b07385d3d28cd81b67fd3cca3b26d400f31ea08
945b4d35a76a0fb48a120173dec8dd0188c87e4022b8a10e87e781507c9b4048
f0a5a5d634552361bd5f0dbf2a9ececa52ac90fb7e96a94d166013c418263a3b
2bb84bf06e801b9c3fcd5a3af38debdc5b9f3603e6ea0b5e5db93cd04df7b447
5f2681475b2f60b3c18bf16662e8bd9458dc172432d33512e426b3923b9032c5
9c45aba29461cb3372b61e4c17146663c5cbd8447e6591c2af4d033008bb5fe7
3702a49c29edbdd2c8142eaa54c63e5cea325204d7eeb82bb9b377639febecb4
df295c3f924fa61d8948553d570313e5a12d9f6ee5af0aabc17d2a067d837df9
43ed58322625d02d782cb3897866fac50c4bf3f63e76be9897bb7e675581dcbd
f8ac57c9db4b3594d1f417b5cdde3d3472e8e096378a5b975ca6d2de2b21eebf
4e551e58b2b8fe3dd1d4aca857388f302622c8bd7487eb1ffa76c4350f086ec5
7cf20f36a03c33ec62203793429418cb6098b0bd07c1abb50bc1ea4b613b6b24
4488634dc81a77c561bbda87d69002af0394a6aad837958806827c9d18468317
e80e007b1533a744ad69330c24a4e16599cff2bbfeddc4ec4ef722d9d1982edf
94addee5afa379d9cef41a72021b0588b5762b0f572b8fd16c690290c87c049d
c042e28a6dfc1587d4a5898c7399f062090afdb218076385f8f168352a78d6f5
af824b22492eab5ee59f8a4dd6930916ce4c0dbad4216362de51b5f73cb2de48
c1b493cc9486881feda8421325124bec4e91b645473a7f50633bda3aadf7bcb3
0c27750657553b950f4a826bdf133887cce0f7b52c6afce2080ffb81f9ca41ba
f982ade0c25cd9c71f310e5d77e979ad36e9f9a5adcbd3f5f529e060e1078103
ceb55e593b575e0106b8ddc45b43fd96e930266427264b8eff06d40aa15853fa
2ac3b44835f7564419f3ccc1e50ff878287b9a8a4e0b58cd5aafd42e2ab4da82
7ce37a581186ca91a8be74a9320b4e5123ff23428d1c87ba426a41043a344e3d
c9f749bd8d126cd127d1b7875e8f942d64b46720bb5be24f1519c1ed2fd41da4
0b24a43b4ed843860bb93bbed1437555dc6bef6496304941c96a9f1b10be8f26
2043bef58c2e5031ee057c744c8693e8e6723619bcba77a192fd2adec865f111
7020a78448071057f202099a7e461befd885319fc0be55b74895c88b774bf75b
2ece2fcbdaa8c3b2735699142b8605b450f0293cfb1e8e924f94d9f38ee514ef
935cf4b5842ca630f7ed0a7fde2f6ecd56c04616cfd4ad6d95b4c56c828f8ec0
0e6adb4d2c311e89df815408f2651c4a984477dcfcf97754d643a8eb4d872379
7293a36fc811c4cbbdeb54932fb20b0ddb3e1f910e63cf66dd8717d02a15ff37
72384468100a02d44eb0c65e76d4a7ab30a32347581b96c471d6c9814dd93783
0811e0337bff3e9d84a56afa0948db48efe51c168a68bd5f274644b0d4a2acb4
9893930ed3f6b80b53657b3fb8490fa5ae0afe0b2bfe83c63092b883926e0d23
ae22d0b5766e9c87caf1f0d6676dcb87a4e3ed3cf7c0a8044e223838dd78ab4e
22e831feaee23f5d699b3e23dfd310dfdf32f21da3f6fff8d51cc6cb97a7cb11
d3e4022bfc7ae9dba76344f6928121521e1b72222b46b3e57b292edc9c69717c
4190822857cd2aa3c50df8d0c2459d0335c3c062e709181ac155b0723ae0e1c2
416876f3534d7b96a73ed79815948d8bb40b4cf93ee129f34a59ab27a7259564
b57dd16a20dac12040cf77a52afd64e263e96a16488f38de5d6994b341d04acc
f1d8af6425935a78254bf1fdcb12783bf1258d06ccea3c5555270345b30899f8
9355f8276c6ef3517b7ae9927c936df51c718e54d02cc613acc76dd3134a8039
3451e346b9a9716c55e097163b4330691a9ef069ab9320010a1363f7243a56fd
19586f20612827ca2076b6996972193472f91cebfcf19c8d55b2aa4389055893
d0da66be3cdf5fda779b943a11f1c8fffa3e7ccfe147fd7299be184f6c7d42c6
caab066c4307d9797a26f56dfe2a200c8864754047266be234caea99c9c82987
ddad25029141d1b5af12271e6e9e654def008ee9121b85d33f465f3fd8fb4180
0d113f75c68c62ec501537f65f5caf4ee1670a21b530c32d33b0ed705f8f8589
fec2e2115789dead2abc39c48357bce33c2e8db6785ea7b378e20d4d97e441e7
98379b1179b667dc680735345999c27aad44f21f6518c7335458f26abd7eb5de
8eb2a09fd98b7c45401d3154da93232aeac702b5e721bf84e7452ca3a7e9194c
6fceb9d84196df5b34ce91eef440b1a16811acfff1bfdf059dce6af8763adfab
55d8b391b549fe7165264e4556691010f44a315a99609face460c6180715f19b
f108ed04132c778d02a6cfdf756d61a10fd30d16863a4dc38fa5bcf0ab92af4e
9adecc6f0a66fa1e1b6a6236b846048b96b1b07610525503d362138e9fde709c
eeb4b15a53efaee88cbff978c4b8a4a60e300b6e9f736d38aa7beba953f7d71f
1b9aebb51f2408c211efd9510a62ef5a4b9827ae3dc5890e2d0d09607b495882
18f85b5cfaea9a12e2d7d77afc7397d53cdfb313ae0a12c30ae82200da14963e
26cbe5656e80ffc0dd2c5753af6cbad826cc81feebb04d727ecc31140720bbb1
93784227e62bd80f1d77f84f8066753a4b539201362f1e3e686ac31f0961cb0d
4bf1496e4c7bea0a4f53e13f858f460a9a11ebdf26d92ba49ea47305ff90cdec
7d24a3f0bfc7d68c9746868b29dc87606eb791911e84ef13511ac7585e0fd2a6
fd49c7408ca160558981daf7bdcfb9f3f7d74b0e8291fb60555c201de66dff2c
957911a0925c5aacc1b50515f45a79718ae6ab8f39da874a4bf9a354dd5380f9
3e3d70367de27e87ad71c384ec31e6b1f44391007f4670c4e1aea7ae8027c101
e8c6bdc8417df438e75cc90c1d447dea93d7cc991168423640c245527967efef
428d42bc36561dcf889f09fcc5992ba02685acfb6daafc342d9717675c787c76
fc4aac311bde24d0b6259828a0ceb919a2a80dd2ce771a005020c564f386bd42
6b25fe2ceaf0dc9207395d9942c994a5666f4c6d94b4d2cc71c409e88e7be0fc
96c94887b28c8411cf21e855d607d68b6c52d809715ff44d7974f1d78890eb4b
2c5fd4b71c6c84bceb5f6ae2b3f6637a151279fa89f7b7cfc8f9e81ea889336f
69e6491413575de40a6be5c33735cca75b9a2cdce22a6eb4045d65070c915c7d
712effe94dabc52f466112830c36d588af7cc6a63fd59bd458f5978d59a26a06
2e3f9c3d74e41cac14f8d78b646ea13db81a5432fd1372cb5e86baaf62e6295b
6362f6e41f7446307019c06ad2a7367187c0f26595b7c2592fe5c085c8ea2a75
ba26492a7cf034b5e1e475da4ac2b593cbdd148a1651f42c506635b2ca66ad26
6f4435ec568ef723c28298dc192231256b8f9b1bf417a1522cc1424a50ef8cea
9cc75de22adb9af9b20f11388f8ed402e2f00c98e42151aa31ce7d4ac786f9f7
8e819a5c6989afeccdd2e6d9419bc0cf82f0cde16a1357a662fc988eec903eb9
2f4d3fe726e16b31ffaec68ad12bb938f30606bdc97578d23ea346a34993ce6a
2eca6aba5d436cfea90d0d987aea79a03dae04a261ee72955842c07b176d4858
40a461f4524ef14ee8fef6a10cb53b66c7528786623863d7797ae2c8961bfaec
bd7388e7dcf65621fe1829e1564e20f58af6ecdb10b7b7cbfa8438c2a9a74280
bf3dbbee0d2ae3891f2545aa8c4bcdd35ab8f805c1b7edf0ee325997b2ccfb18
ccb2715ea4b2c14c0f5e2c6be5da48717579e372d045325d8c8cd874d7e0eefa
683ef3ea0dec92b5d901e2fe77be4e8237e2ce82ac39aeb223fa99d75b186aa5
d51aed8133b76bbd826e7dba56cc10a259016022988230045a2eb7d41ba2cfba
21dd092607969950cf09596757da8c1cfebf6f4a43102d82d9a8a325b2182910
c7ab381ad9ff6bfe620d39afa9d72ef933349256b69df0e5462f42a572fafe08
d5999e8de6ed66f0702d37ed22977394c7f76610d886a42c89346ca7bbfe0440
962fa4bdf94989e8ea05809b992c567f4e509f2528c10dc1819be3020ab9d1ce
030fd777b0a6dea6a56bbafb0a9cbe1623020c7a338606381bb5aa1a9027c311
ee7ffadca7d065cd821cb5b4613f501548a86cde54a9f064409e6b206a022987
f07eeca854efb487ba3d673c2c75b2b78d97e0c8a780403a103e742c81e01c40
5e65a625c1c8f947bd7b0d7c067e2ce1ac2614de11341cf2edb5b00e526aef45
ece498cfa9b4b39ee9d0088963866365a8a383ccbf735eea9fa764098f1449d6
746b50d703712a780c5ba5125c4e0142525685831c7ad03d884a680759f1014c
5b3166b82075a18d3e15037f2c86a2b29b8566b8b156e67873dd63dfec312717
fb9c141cb7cf24115e8d035b080fab494c0cd7d08a1b37bdb65ec432bc8e3db9
459138828ec79cf4a2d339f12273651f6eade9adc2f6df0181b51e0d4ba0ea3e
c46a7ac3c7a7402b15d59ab36dd4da69a3424ee748316a36db5da576181e359a
08120edb8dfb40c209c6dd08959ce59b440ac24ff4ed852b1521b5049980d536
9a7ca16407109dbee3b33b220cd407189ead09d81d1f9de43c76073e9469f3ef
2c6c36f8a1a00d670eb27df9ade39c466b58f8a3c4c5c2c79b7614eadd3e9881
920ce8f0c5a6e4b9714ac63b06ebc725b31c2e252061dc9196d7102dbc72813f
a19bc209b5aa8e56268438fb053e0c9b73321011bdad75018748d9ac56448115
28bdec6cdfe04f98d1e4d632d6678e0ff8fbfcb1c44bc0e23ed87282d6607f81
2014388bedd154b01d17bbf0c839fe50292d3597e87e9e57d3cd69ccb6ba5720
288ad3eb5af52a2697cd9f48c213b4a21cd5ebf0f8b000c2db20771b0d34afd3
753670803aa40d34f45bf7c6843b733f9a0e45ad78622c9dd291bdc22274c2a3
c5a9f9e4aec89412d4a3490fe84e5a12435797d3f8202162e63cc7a78776776a
d676f9072ed9056c17b80b9b35885d75aeab4debfdc5d16588349801596b9787
70dbb817718bffe7c29a0bedc885cd0820ed7560ee2d1cd29d69d6c1d8842e37
f8ebb6212209f6e75243599aa86753282a2f2fd01b3568e0e3ecea80f6ee061d
8d7e7994b9ef9d23fc0344f4077c992b300bb64f16e990cf84332b16d41755fa
bb0d478c2adc203a33f083af1ae4a509af9e8f934d062879b38bc1aa2e12c7ee
cb4b69b5640481452ff6f7aa96133123d81da6dbbe50b91c7e743eaf2a817f16
e2d51ac4d9c7fd9a2422bc8b1e0df8c3a8358188f2ae29a8af593841ef5aa822
df3ecbdf65bcea155f7e054c5b1472c40477515db1b3d4fe26602ffe1fbafc7d
6775477bf1a5a4403b7550ab4a970a60163179945466b0991cabda30a33618ff
31771afb939ae377eaea92528da16393c0cd0ef6e29f64afa04388155ef326b6
94d0688d0b97000e5d8acd4e08a3cd5ab089f3a7e6d86f26a3ee5012e6c5dcf6
54c75676ca3e10082b94c81566386c356b29278b4bcb12ec4a6d9b2062472191
31694b9cd6c86bc4d57a6ffec4a59e7f819d1e88c9e8b20bb09b1d99d9e35ad9
69cd48096921770c564bbcd52bd087ca7bf17322949b4559193df11be1081985
35c593593e7fbb334f0f81f878b2aa0bf9b779f33b02d167c13184832a8c2cc2
bab19cb375d8803e7b365b5a6f101008890990be0476c85e5e87c5792b02e35d
832a0b956ae86a1b8ffe821084dfcfb128a93a61845ad1c0ebb1a1207adbee64
c45aa8891238722854674910d2f5d01c80186e10d6e3953b7850696c8865bb74
ec3e6bb4400bd5fe31e5bb89cb9d0c6ea2a9842bf17c2b465943617e059cf61a
63c1f40981c2a1e19828472dd48d0f799cde77da924c0160d1798c948979959a
2e048eaa12ab1ae174c35f463fb7ddf0fd3c68a1bfc54169b33f918f3806eccd
f02ad4247641a7111037dfc78accf8fb5244f8e164358238310387ad88e1cf30
7e71ebf0c76cc239062ea8f5b8c5b71d442a9d0730f053d2da728036e70e8fff
f4530d3ce572cd6493668cf4d69e895f463c6115b1552723c176e39b2cf42cf0
07d3496f289fe520aa4bda52efaf1a6c0b8d90dae8a59d92a802447f916a5fc5
75ceea07e0927669c8c278fe1d0f82664e923041a65daa360728f7c58fa153a4
c67fa4d07c059540523a6829e3380e08b8f549f636b0878f03940bf53e64c4e4
daa2662b79a36c6f5f4b2eac5a50edc051886eccc8e78e6afc72fa41e0a1b07a
b7aaadb5e6ff587fedb29185f13d28d0a68f61447400515c2a6132aa3e1a7e15
660d0c7dbccc9e1b225317b7e46161603da14d6e420f30a74bb021d88d20b26a
991c262e870662bb000abf37ac39465595a43e778034d4c1b32b15e08e561c11
7f9edc2f0a0b92c952b3e5316d2655c018afe2ce80975d4545c65a637ed09589
160b78d7026536bc06d83498426aa7ce4b45d8a9094e01cd711a0c5f0054b6d1
3a4b2d6a9d34e5dedc8e6768f93f2b794ce361ddbaf2ffea97c7c06731e7d120
937d268177f893ecbdef763aca2ae3bc51b0a919ccea032fc4bdba79cf3d3c09
2ec7d9ec5fa6f73f0cf44f858ca955b40be5d2518153b0a18d2529343923b3e2
68f5109ffb3ec3891cb3e3342facfeac129f097b7e4b7f2bff174f4552426d8c
2c414301e83d1d01e7a0c8a86568712a489ec7509dcc5d4b4e96f4a463cdd82a
bfb60018828301dc2ee168bf13eecbce1bc2cbc11accf6c2cf00623f5a04562d
aab1628cf9ae25da21bfa157a273f2aa5775fb1e2e934bd9e559d922e59f96b4
72e5b77ecac6c2b916eefd6af70d848d06cb57d1e084b95bbb1d3480798010f9
4b033385e39d5cae8580eedb9e18c8dddc97f65dc20991ed9eeabf73493d2b7e
18babff7a77751e03ace9298a4ec277bae9b14820ff9bbeb38802b24a7d8ad14
e060677dd443f3bd248c274f1475a11a0ba0d08f090e2effb8cf030cc96c7a6c
098f4ebd65b2df95f26d2fa2be031f39eb974a84ef56b9b43506fdb7f156388f
e026fb5d414e7109e966df5bb761d2c49ae4810fc039cf82c66835a547e68514
749684059ebdd3ee2364c8bdf42e1f144fdda92eabec813c6d65f7b9ccc1a64c
66694754c8a364f8a4f14545efa2ecc3c0d0c71f97813e0131cae7bbb09f49f2
42ff84d0901f82c2d0ba488f4b299a1b1a247693898b280eb0bafa99288fcc70
3fcbb7a92ca8c7585ef3d7cad7e7d122a2db0ea7bd7acd82ad8754feb0883457
664e9c56ef5f434de3d6a1dca895db062c3b0a97516f4abeebd1082f35a1e067
0b8c8e4533e5cdba3b638841557732904cb38b9cae8327ac4f9c7c2aebee5fc2
052ce9d55d172423ee76bf7f51f88cfb8eedbf052c8c4fe76b1040f897197f06
705178334af9cd9d1743eeb0ac806709b975fd7665429a6663d63d83e3c06e5b
f8f49049e5e42e1385260f8b48468260fe3904d734758f58e0f43d75c981e50f
40cb80efc47b8d0aa69455702595cc5260af40615a464cbfe0ec9bd0fffa8bef
aa62d89dca5d9e88b3ee2939374444838368192b7aeabf9f6c0f2526d7ad11f0
fc914f128c9e563fd799e39ecb81c3b3322599762d0558274896ff1ab9be4f36
f47a39396800db5b6a0a135ed691146c4148d7b6ffaf8d785ed8b98d38c014ed
a02dcf3a79c46a39c554352fd80304899b0f1dac1e1ed4c04ed0a243cb94eb78
bf6566da8c6a80c4db03763a892022eec34e294d7dcef72ef2411784fb657700
014141953e60b7a1e46723574af005e2116d6294831c868d7e763af97b374587
a8ef45c20c9597ff0ed3f118ac4eb9a56ad6c7cba773475868da68e4afb731cb
b6177bf74aca1e0124caeb3b539303ce9582c9b79addf48a7c90fd46db8a470d
8ef8057d6fae8ebe60c4bd2a49582a3851a9c3ce9915168763b263b0b2122840
38d2a14a7d999c0760d803fc0f0f29ae4cebf841f96b90833ee1290f7587d29e
515c1c2ba573c343883c17a345eaf8dd2604e8e24989b77db5b68315f1e9c11f
9e589e767bb30a100011c5ce2ea7148a7fae9690a16d458c4411beb6cdc8e29f
8a15a3ef7c21df0cff3bbc65c297941e17181b3990073e715ea086970bd052e2
c40f97132c79767b79e25fa47f44d4b499e37db4a5b6faa55ff87bd022590bbc
68c29c3c0d44bc3961e4d733bd842165144bfeb5cfe979023cd8b868be95d2cd
4c84910cd576b0a108dcdd2a8aab3011fe758300d15f1b77143233c2ed738ef2
e398072717485ab798278c1e0266ac489e354dfcb87791a1f51b63acc98fef41
b5164e225e7a9a0d7ea444d72982cd5339df1f3886856aee8c2d4e458b33498e
3c5ba200412865bc90b4934103324743d7382418807c752c653de98e24aff8a0
c35933c75e7c9618570971b5c48d4b04c6f7e6409533fe47f0fc9353236d46e7
602beb72b80441548ecca5de11669063ee22a6ab0d12648b11d9e361625f45d2
b53b0644b422771f28dcbd47cd7828c1f65ae2c81d4a8ed768f89c5ce5c5dadb
2b5d8bad785a2db28732c396dd55c20523ffdae071b2d6708b002f1e27fc736e
495c1cbc292f48a05b240788efedbf71e6fbb45a672761335e7f4fd63d8ab9d0
6dae13cfd32188d7f4c6cb4eca727dd35a4fcaea9a1db27d66a0f71694aa309c
4048ff2da4a2d1245c0759491bd7fdf051ebe7a900d7966c0f697db87c02b69e
866ce2862a0e1ea28cd9506b60b6018b8d5a69cfeb49aeed6d82a70a6a6e9fe7
ef3a992ecee8335d500719a6a1c31b8cedbfc52770c0beb06697a933fe5f3786
c2c8c7e3253b45fd97911236e91368843229e3e73958cb4dcd8acbf17e0e7590
6553e2a78f27b6d924b0fb41639b8d5e4f3c4b7b2bc3581dc75a09257018ce59
952ea35db9e1bf8d646335f439ae82071095973edd306f10617d18418e49663a
24f2cb1b21a69586b68b9f65874a39c346a8eb401c0b089cfd1660e95e7afaf1
bd1b97dca6f843c5ba166bb2149ef5808c5bada8cb9beec3848db608e1d35c2b
354cd89a6c6538df300e6a2158b183a07b43446269b449338b48873f9f01858b
2694031eb9352e6953f5b39d93401fd0b21741241035985b755fba60f15e1625
1a6dab089e4ff430bbd3b8618453cb4637da6ba3132c1697cdb76b1f3b10ec5c
0f0ef365ac134902f5aad57e19dece0b1dee1d0b59c251f3fbf6af8dcb8fa136
8d311a1d553483aad707f8a2abee5e9a5e132aab5546d32b3e569022b3e0d128
e0e51220ce64412b2cfa38e2e7ac7ccc766d0f6947d613bb8df48df0869320f1
bd3f23b0011961fc00909aaa32a59999d2e980c0c2e75f4c5b59d9e90e2c6b91
910b82723332d166fca7691f2a6aa78588bc353457d6dbe9c7386005ee3d2fe5
c7279605280e684ac431aeb824fe8574e2bbf8e2c36dadccb4d22837c70ea1ec
a8f65275e4d2baaf4183f0d500259646a96e8eef764248913041b061e36ba633
1347b2891f792aa173aa757f849b53d8c430ea56be9a843ea04b16c7c2a5d9db
b24dba3eacc5f55082b12a8934d834e6c29e4a1009641497c49c744a673d6d61
a171deef5307e92ef87eba6d464eac28bfc60005c9d645c1b05e91370f150cf7
90574801a323498986b6deb7e27b28f97a83480f938c0519add1f22ab4b0c64f
9639fc6c9f4b629c5eb07fe3a59807511daf6c70715cd6e085fe30cf9f9d8fea
7c6af9e9a7079ee6ff5dbd4ad4e76f54e7451e33d2ccd7b42639b53eae5c2f51
6671efd2cbe32a59a425e67c2fe579ac9fe03ec6d517315b9f1df4bdb033f177
aed63d7643e60eae999fa5fd33315282b2323d89b0deaaafb423519e35c55bf9
2856aaf12841385aa8ad46a7cc2a9010397af08b5926e2ba54e83f0ad83a4efa
8af7ed1be48af845a42289de7122a58d27e19ff978711daa671b61069520811a
3a2c5a815a53199aaabf77c8c201ef1f5c7df0a45b5d9e4d16eb5981330d3feb
ad38ce00e19e317b1e151c79deec2673fcf7c1db083a4b081e58a79cb096d611
28777c1360f0915fd3a9426ec8594218d46f70881891a5700473bbea40719a46
d9a45bad42ca68833f4e634dc5a5d52563a25bfbb5e4e1162300dd202335374f
dc8d21d26ed2890edc834c01e4b20941a1bcf6ae8bac1a415f48b0827d297ebe
cfdbe3306b0be8eaa152b436d8323bbc99691f540e30d9f60c6bc499caba86e8
59250b2947de0e39a85a54aaa67a0ac3abbdfb44424cae0090d101051d941b51
3392016dd339b94c82f9a9ed9645f1ccd7735ba00cb7bb84d122a3bdc91fedfe
0029569c38777e66a4b828d0a25e76e67e7c633d319f4e3d0185c07972ae00b6
73510d4e3681dac5fd0c0d2b98a68c61ebed29fa23bfafa141ab5a3931f41deb
5acdff84845244abee406b963ecf1de65ed485c63df8f0fce46920295736e896
cc0ebccbcfcba077fd5a9a2fc32d773d879e726253e030254734fdb76aa6f7b3
aae8238aaef764252a3dac87a41019c34d7d1c3d559e936f20edf3a0d5949874
01b9d3e68f4beb2a482d0c7e83e1abe3027f0d18b9c1eb18b6324d50f3783f0a
f09b7071478be1c58f906a122ac3b7c92eccb53023060be97f9c7bbe14dd46a6
49c8a6057a98dd153c782a00a829bbdebabfc7ac5c374f3490ba20c6dd56640d
b0f646d8940ed243fff2aa7650de3f1a74918367ec16158466301ab3f1d8fbb1
56ae0cff5ad1a144a010a1104bde8dfbe77b187cde51e7515d0a3561e16ecbfb
d1eaec87760541a836098e707212ce9b940fa45e9149c88361cf5db7ab3480c9
33e761aa645c50382ae65b4f3df881f1f0b0be847b1b5dcdca79119f71e96a07
21ae5923a942f5b7bb1004e83ac8b92a46351d0b9d1faaaf5f7c7ecf2681453f
ad06dd2c5960c9eb3073432c46f6c58db7df6b77d95798a6d31d8b1cebfbb283
276f821bb2f05857376060d2a0a1b040818c988e87a810ed2744f87277f452b0
216e1c11a330ddad66c85a8fe8b11d798d2431488c67a4eea63e60986b4ab9a6
778738fad1f53346e65b3861b48e6ca24be0239c08a765a5f478b5ca93ebb700
6c80b9f939a2af58dc0655ba52dd5ab65d5775c24636d5fcecee03e664f9b662
1528a2f5392b60cbccbd93747b7ef9fc4fe6f4fce0bd5939e7b249a94695ebf4
74327b62066fbbe6d30d711edee99c9c708c7f2e379740c0dd0ac614a0d52bdc
8de7fbeb5a2253f777810379217f971ef762d1d6a9a3f1b14f3b4e61b74773d4
9d7a20aec50b3426d3210d815aa404cbfd2590496132a6f9e30fa24c9f59efb7
3bfd238f910a5a70287f6bffe35479e449c375e0d98dc30af297ee6561636ea9
ec8625fb34f2658f330de1fce69fec084aaee16372efdb6678d301978a45083e
997984bddb520e2f00c9adf28a1d58bc1fe1c72b7aa56f09356bffa9f2f52adb
a926ca82ac50fd2f42d60e4220b9aea4e00e5b95096f8568f156b3d35dbfdcbf
88f50678ff25f720cc7598474627423585b91a2c2fde698dccf5b0896ff79692
f46c5eee3b7dd32e2324b136ff002ebfee9fe18421a196369ed8b77b994320be
f186c3f3e5bce035d2f2eb1695f551c0bd23aaf5d272a3e8d72e84f0d2353d57
504029f53c048d4452c62259c3316de492f4d3fda743d40da37fd8b3ad3ea6da
ee10ba320a4b63f803ef1433d77107c9ecedd63ea0624fcebc73d907e409bea3
c17b563d6614ee842bce080059f49ded353cd07d4368ef862b87dcce33e79d21
b56f3f39350cbee9fcc873991646df7fe8c4e469f1acb3915ca1aee218cc386d
1a2d026143138f5e088753848766d7e5635e79203b069408955f5f8a979f25d8
039b06969907936717d6e1c53790c5f1894e62761215b059e688329e354465a6
20b55f840affdfd61beaffda3a7258568ed385cd7c48817071d14590dd25dd06
f4355f61514a01d9110fb490d1647ef35ce6acf5818e049ee1b2478cffe5209f
ae3881e6a6e3cfd32789494b454cf5a357336be6315eef1e607f3a7304c2aa15
5758f619d90574f10ee4710bfcda0bf460270f6f4e530c77ebd4e50a19a2b514
a9592e6ef38712fb0ca43a528263cef956bd72086a27b522d3425485749464bb
09e5290f99f1f09883633ffdc528af46aca30eb0afa04a3960197943b111b491
dbf78066751ef21dda634f63663546dcb68b789169e86b53dc1a53ec37c64db3
93b6153fb06536cc83d165a2af6eb520bb8cc5be621feed41040fe33492fe1e5
9e993fea84b7221b18f8fc9767044305da7ddcfb7c3136ae9412dac357d8af0a
953681bddec20f58eb683ca2ddb26791b7f1115e2c37af00b2ae2c014f6c5e1f
3e7ab822276f3a90b53e23238b7dcaaeed86da5f69420262915d2a0123e7624a
4be16642d14381b17695abb2dcc1f39178ab5ddb0dd124916c48307e96fd6da6
e5b0bd577584203f38bbf17caaf498af2dfde5f9148215b064288b581e41f14b
5d15aa76c68078b187f6d6
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
TeXDict begin 40258431 52099146 1000 600 600 (ex1.revised.dvi)
@start
%DVIPSBitmapFont: Fa cmsy8 8 1
/Fa 1 49 df<137813FE1201A3120313FCA3EA07F8A313F0A2EA0FE0A313C0121F1380A3
EA3F00A3123E127E127CA35AA35A0F227EA413>48 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fb cmr6 6 2
/Fb 2 50 df<13FF000313C0380781E0380F00F0001E137848133CA248131EA400F8131F
AD0078131EA2007C133E003C133CA26C13786C13F0380781E03803FFC0C6130018227DA0
1E>48 D<13E01201120712FF12F91201B3A7487EB512C0A212217AA01E>I
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fc cmtt10 10.95 37
/Fc 37 122 df38 D<141E147F14FF5BEB03FEEB07FCEB0FF0EB1F
E0EB3FC0EB7F80EBFF00485A5B12035B485A120F5BA2485AA2123F5BA2127F90C7FCA412
FEAD127FA47F123FA27F121FA26C7EA27F12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0
EB0FF0EB07FCEB03FEEB01FF7F147F141E184771BE30>40 D<127812FE7E7F6C7E6C7EEA
0FF06C7E6C7E6C7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB03F8A214FC1301A2
14FE1300A4147FAD14FEA4130114FCA2130314F8A2EB07F0A2130F14E0EB1FC0133F1480
137FEBFF00485A485A485A485AEA3FE0485A485A90C7FC5A1278184778BE30>I44 D51 DI59 D<16F01503ED07F8151F157FEDFF
F014034A13C0021F138091383FFE00ECFFF8495B010713C0495BD93FFEC7FC495A3801FF
F0485B000F13804890C8FCEA7FFC5BEAFFE05B7FEA7FF87FEA1FFF6C7F000313E06C7F38
007FFC6D7E90380FFF806D7F010113F06D7FEC3FFE91381FFF80020713C06E13F01400ED
7FF8151F1507ED03F01500252F7BB230>I<007FB7FCA2B81280A36C16006C5DCBFCA700
3FB612FE4881B81280A36C1600A229157DA530>I<1278127EB4FC13C07FEA7FF813FEEA
1FFF6C13C000037F6C13F86C6C7EEB1FFF6D7F010313E06D7F9038007FFC6E7E91380FFF
806E13C0020113F080ED3FF8151F153FEDFFF05C020713C04A138091383FFE004A5A9038
01FFF0495B010F13804990C7FCEB7FFC48485A4813E0000F5B4890C8FCEA7FFE13F8EAFF
E05B90C9FC127E1278252F7BB230>I<007FB512F0B612FE6F7E82826C813A03F8001FF8
15076F7E1501A26F7EA615015EA24B5A1507ED1FF0ED7FE090B65A5E4BC7FC6F7E16E082
9039F8000FF8ED03FC6F7E1500167FA3EE3F80A6167F1700A25E4B5A1503ED1FFC007FB6
FCB75A5E16C05E6C02FCC7FC29387EB730>66 D<003FB57E4814F0B612FC15FF6C816C81
2603F8017F9138003FF0151F6F7E15071503821501A515035E1507150F4B5A153F4AB45A
90B65A5E93C7FC5D8182D9F8007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003
FB4801C0EBFFF8B56C7E17F06C496C13E06C49EB7FC0C9EA1F002E397FB730>82
D<90390FF803C0D97FFF13E048B512C74814F74814FF5A381FF80F383FE001497E484813
7F90C7123F5A48141FA2150FA37EED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C
14E0000114F86C80011F13FF01031480D9003F13C014019138007FE0151FED0FF0A2ED07
F8A2007C140312FEA56C140716F07F6DEB0FE06D131F01F8EB3FC001FF13FF91B5128016
0000FD5CD8FC7F13F8D8F81F5BD878011380253A7BB830>I<007FB612F0A2B712F8A36C
15F0A225077B7D30>95 D97 DII<913801FFE04A7F5CA28080EC0007AAEB03FE90381FFF
874913E790B6FC5A5A481303380FFC00D81FF0133F49131F485A150F4848130790C7FCA2
5AA25AA87E6C140FA27F003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFFC06CB7
12E06C16F06C14F76D01C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4FC0107
13E0011F13F8017F7F90B57E488048018113803A07FC007FC04848133FD81FE0EB1FE015
0F484814F0491307127F90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC01F06D
EB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F14806DEBFE
00010713F8010013C0252A7CA830>IIII<14E0EB03F8A2497EA36D5AA2EB00
E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C15C023
397AB830>III<387FFFF8B57EA47E
EA0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I110 D<49B4FC010F13E0013F13F8497F90B57E0003ECFF8014013A07FC007FC048
48EB3FE0D81FE0EB0FF0A24848EB07F8491303007F15FC90C71201A300FEEC00FEA86C14
016C15FCA26D1303003F15F86D13076D130F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FF
C06C90B512806C15006C6C13FC6D5B010F13E0010190C7FC272A7CA830>II114
D<90381FFC1E48B5129F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E007F
91C7FC13E06CB4FC6C13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF020013
80007C147F00FEEC1FC0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC5D5D
00FC14F0D8F83F13C026780FFEC7FC222A79A830>III<3B3FFFC0
7FFF80486DB512C0B515E0A26C16C06C496C13803B01F80003F000A26D130700005DA26D
130F017E5CA2017F131F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE01075BA2
14F101035BA3903801FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFFE048
6D4813F0B515F8A26C16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE0001
5DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FBA290
393FF07FE0A3ECE03FA2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801C37F
B580A26C5D6C01815BC648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F0
6DB45A6D5B7F6D5B92C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1F890
381F81FC90383F80FE90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500C114
8014E3A214C16C0180140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16
C06C496C13803B01FC0003F000A2000014076D5C137E150F017F5C7F151FD91F805BA214
C0010F49C7FCA214E00107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D147F
A26E5AA36E5AA35DA2143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387EB8F
F0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA630>I E
%EndDVIPSBitmapFont
/Fd 107[47 47 24[48 52 1[77 52 63 37 44 44 1[61 58 64
94 31 1[31 31 63 53 34 52 60 49 60 54 13[56 68 77 1[77
1[91 58 70 38 4[63 77 69 8[28 5[56 56 56 56 56 38 28
39 3[36 36 6[28 33[{TeXBase1Encoding ReEncodeFont}48
99.6264 /Utopia-Bold rf /Fe 153[31 102[{TeXBase1Encoding ReEncodeFont}1
99.6264 /Utopia-Italic rf /Ff 171[62 1[64 1[60 80[{
TeXBase1Encoding ReEncodeFont}3 99.6264 /Utopia-Regular
rf
%DVIPSBitmapFont: Fg cmr10 10.95 10
/Fg 10 62 df<1430147014E0EB01C0EB03801307EB0F00131E133E133C5B13F85B1201
5B1203A2485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C12FCB2127C127EA6123E
123FA37EA27F120FA27F1207A26C7EA212017F12007F13787F133E131E7FEB07801303EB
01C0EB00E014701430145A77C323>40 D<12C07E12707E7E121E7E6C7E7F12036C7E7F12
007F1378137CA27FA2133F7FA21480130FA214C0A3130714E0A6130314F0B214E01307A6
14C0130FA31480A2131F1400A25B133EA25BA2137813F85B12015B485A12075B48C7FC12
1E121C5A5A5A5A145A7BC323>I<1506150FB3A9007FB912E0BA12F0A26C18E0C8000FC9
FCB3A915063C3C7BB447>43 D48
DIII<000614
03D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE90380F
FF8090383E03E090387001F8496C7E49137E497F90C713800006141FC813C0A216E0150F
A316F0A3120C127F7F12FFA416E090C7121F12FC007015C012780038EC3F80123C6CEC7F
00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC2D>53
D56
D<007FB912E0BA12F0A26C18E0CDFCAE007FB912E0BA12F0A26C18E03C167BA147>61
D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fh cmmi8 8 3
/Fh 3 112 df<1307EB0F80EB1FC0A2EB0F80EB070090C7FCA9EA01E0EA07F8EA0E3CEA
1C3E123812301270EA607EEAE07C12C013FC485A120012015B12035BA21207EBC04014C0
120F13801381381F01801303EB0700EA0F06131EEA07F8EA01F0122E7EAC18>105
D<131FEA03FFA2EA003FA2133EA2137EA2137CA213FCA25BA2120115F89038F003FCEC0F
0E0003EB1C1EEC387EEBE07014E03807E1C09038E3803849C7FC13CEEA0FDC13F8A2EBFF
80381F9FE0EB83F0EB01F81300481404150C123EA2007E141C1518007CEBF038ECF83000
FC1470EC78E048EB3FC00070EB0F801F2F7DAD25>107 D111 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fi cmr8 8 5
/Fi 5 55 df48 D<130C133C137CEA03FC12FFEAFC7C1200B3
B113FE387FFFFEA2172C7AAB23>III54 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fj cmmi10 10.95 21
/Fj 21 123 df<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>58
D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A
120E5A1218123812300B1C798919>I<17075F84171FA2173F177FA217FFA25E5EA24C6C
7EA2EE0E3F161E161C1638A21670A216E0ED01C084ED0380171FED07005D150E5DA25D15
7815705D844A5A170F4A5A4AC7FC92B6FC5CA2021CC7120F143C14384A81A24A14071301
5C495AA249C8FC5B130E131E4982137C13FED807FFED1FFEB500F00107B512FCA219F83E
417DC044>65 D<49B712F818FF19E090260001FEC7EA3FF0F007F84B6E7E727E85020381
5D1A80A20207167F4B15FFA3020F17004B5C611803021F5E4B4A5A180FF01FE0023F4B5A
4B4A5ADD01FEC7FCEF07F8027FEC7FE092B6C8FC18E092C7EA07F84AEC01FE4A6E7E727E
727E13014A82181FA213034A82A301075F4A153FA261010F167F4A5E18FF4D90C7FC011F
5E4A14034D5A013FED1FF04D5A4AECFFC0017F020790C8FCB812FC17F094C9FC413E7DBD
45>II<49B712F818FF19C0D900
0190C7EA3FF0F00FF84BEC03FCF000FE197F0203EE3F805DF11FC0A20207EE0FE05D1AF0
A2020F16075DA21AF8141F5DA2190F143F5DA21AF0147F4B151FA302FF17E092C9123FA2
1AC049177F5C1A8019FF010318005C4E5A61010716034A5E4E5A180F010F4C5A4A5E4E5A
4EC7FC011F16FE4A4A5AEF07F8013FED0FE0EF3FC04A49B4C8FC017FEC0FFCB812F017C0
04FCC9FC453E7DBD4B>I<49B912C0A3D9000190C71201F0003F4B151F190F1A80020316
075DA314075D1A00A2140F4B1307A24D5B021F020E130E4B92C7FC171EA2023F5C5D177C
EE01FC4AB55AA3ED800302FF6D5A92C7FCA3495D5C19380401147801034B13704A16F093
C85AA2010716014A5E180361010F16074A4BC7FCA260011F163E4A157E60013F15014D5A
4A140F017F15FFB95AA260423E7DBD43>I<49B9FCA3D9000190C7120718004B157F193F
191E14035DA314075D191CA2140F5D17074D133C021F020E13384B1500A2171E023F141C
4B133C177C17FC027FEB03F892B5FCA39139FF8003F0ED00011600A2495D5CA216010103
5D5CA293C9FC13075CA3130F5CA3131F5CA2133FA25C497EB612F8A3403E7DBD3A>I83 D97 DII<163EEEFFC0923803E1E0923807
C0F0ED0F811687ED1F8F160F153FA217E092387E038093C7FCA45DA514015DA30103B512
FCA390260003F0C7FCA314075DA4140F5DA5141F5DA4143F92C8FCA45C147EA414FE5CA4
13015CA4495AA35CEA1E07127F5C12FF495AA200FE90C9FCEAF81EEA703EEA7878EA1FF0
EA07C02C537CBF2D>102 DI106 DI112
D<013EEE0380D9FF800107EB0FE02601C3E090381F801FD8038117F0380701F0000E153F
001E1600D81C03160F003C170700384BEB03E0D87807147E00705B1801D8F00F14FE4A49
14C01200131FDA800114034C1480133F140003031407494A1400137EA26001FE0107140E
495C60A360150F017C5E017E011F14F0705B6D0139495A6D903970F8038090280FC0E07C
0FC7FC903A03FFC01FFC903A007F0007F03C297EA741>119 DI<137C48
B4EC03802603C7C0EB0FC0EA0703000F7F000E151F001C168013071238163FD8780F1500
00705BA2D8F01F5C4A137E1200133F91C712FE5E5B137E150113FE495CA2150300015D5B
A215075EA2150F151F00005D6D133F017C137F017E13FF90393F03DF8090380FFF1FEB01
FC90C7123F93C7FCA25DD80380137ED80FE013FE001F5C4A5AA24848485A4A5A6CC6485A
001C495A001E49C8FC000E137C380781F03803FFC0C648C9FC2A3B7EA72D>I<02F8130E
D903FE131ED90FFF131C49EB803C49EBC0784914F090397E07F1E09038F800FF49EB1FC0
49EB07800001EC0F006C48131E90C75A5D5D4A5A4A5A4A5A4AC7FC143E14785C495A495A
495A49C8FC011E14E05B5B4913014848EB03C0485AD807F8EB078048B4131F3A1F87E07F
00391E03FFFE486C5B00785CD870005B00F0EB7FC048011FC7FC27297DA72A>I
E
%EndDVIPSBitmapFont
/Fk 133[43 43 47 71 46 56 31 35 37 2[49 56 83 28 2[29
55 45 29 41 53 40 1[51 23[31 26[24 46[{TeXBase1Encoding ReEncodeFont}23
90.9091 /Utopia-Italic rf
%DVIPSBitmapFont: Fl cmsy10 10.95 5
/Fl 5 22 df<007FB812F8B912FCA26C17F83604789847>0 D<0060166000F816F06C15
01007E15036CED07E06C6CEC0FC06C6CEC1F806C6CEC3F006C6C147E6C6C5C6C6C495A01
7E495A6D495A6D6C485A6D6C485A6D6C48C7FC903803F07E6D6C5A903800FDF8EC7FF06E
5A6E5AA24A7E4A7EECFDF8903801F8FC903803F07E49487E49486C7E49486C7E49486C7E
017E6D7E496D7E48486D7E4848147E4848804848EC1F804848EC0FC048C8EA07E0007EED
03F0481501481500006016602C2C73AC47>2 D15 D<1818187CEF01FCEF07F8EF1FF0EF7FC0933801FF00EE
07FCEE1FF0EE7FC04B48C7FCED07FCED1FF0ED7FC04A48C8FCEC07FCEC1FF0EC7FC04948
C9FCEB07FCEB1FF0EB7FC04848CAFCEA07FCEA1FF0EA7FC048CBFC5AEA7F80EA3FE0EA0F
F8EA03FEC66C7EEB3FE0EB0FF8EB03FE903800FF80EC3FE0EC0FF8EC03FE913800FF80ED
3FE0ED0FF8ED03FE923800FF80EE3FE0EE0FF8EE03FE933800FF80EF3FE0EF0FF8EF03FC
170018381800AE007FB812F8B912FCA26C17F8364878B947>20 D<126012F812FEEA7F80
EA3FE0EA0FF8EA03FEC66C7EEB3FE0EB0FF8EB03FE903800FF80EC3FE0EC0FF8EC03FE91
3800FF80ED3FE0ED0FF8ED03FE923800FF80EE3FE0EE0FF8EE03FE933800FF80EF3FE0EF
0FF8EF03FC1701EF07F8EF1FF0EF7FC0933801FF00EE07FCEE1FF0EE7FC04B48C7FCED07
FCED1FF0ED7FC04A48C8FCEC07FCEC1FF0EC7FC04948C9FCEB07FCEB1FF0EB7FC04848CA
FCEA07FCEA1FF0EA7FC048CBFC12FC1270CCFCAE007FB812F8B912FCA26C17F8364878B9
47>I E
%EndDVIPSBitmapFont
/Fm 107[42 42 24[44 46 44 70 46 55 31 40 35 54 55 52
56 84 25 48 25 26 55 47 29 47 54 45 54 48 7[53 57 85
58 72 56 49 59 69 55 69 71 86 52 60 1[32 73 67 53 55
71 62 59 58 1[35 1[52 2[24 48 48 48 48 48 48 48 48 48
48 42 24 36 24 52 1[32 32 25 35[55 55 2[{TeXBase1Encoding ReEncodeFont}
75 90.9091 /Utopia-Regular rf /Fn 105[45 31[47 57 34
41 40 2[53 58 1[28 2[29 2[31 47 55 45 55 49 9[85 1[71
57 51 62 2[70 67 83 53 2[35 73 1[54 57 71 63 62 59 6[25
51 51 51 51 51 51 51 51 51 51 1[25 4[33 33 40[{
TeXBase1Encoding ReEncodeFont}47 90.9091 /Utopia-Bold
rf /Fo 135[108 10[196 11[112 27[130 19[116 49[{
TeXBase1Encoding ReEncodeFont}5 206.559 /Utopia-Bold
rf /Fp 134[60 58 1[60 72 41 52 47 1[73 69 74 1[33 2[35
1[62 1[61 71 59 71 63 17[91 1[113 5[88 69 11[32 2[63
1[63 63 1[63 63 63 1[32 47 32 44[{TeXBase1Encoding ReEncodeFont}32
119.552 /Utopia-Regular rf /Fq 133[58 4[75 44 1[53 1[74
70 76 113 3[38 1[64 1[62 3[65 13[67 3[92 1[110 9[82 8[33
6[67 1[67 49[{TeXBase1Encoding ReEncodeFont}19 119.552
/Utopia-Bold rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%EndSetup
%%Page: 1 1
1 0 bop 982 119 a Fq(CMSC)25 b(311:)32 b(C)o(omputer)25
b(O)o(r)q(ganization)1728 292 y Fp(F)-6 b(all)28 b(2002)1589
610 y Fo(Exam)44 b(1)1074 841 y Fp(G)o(iv)o(en:)34 b(M)l(onday)-10
b(,)27 b(O)o(ctober)h(21,)f(2002)90 1123 y Fn(I)n(nstr)q(uctions:)46
b Fm(This)32 b(is)g(a)f(75)g(minute)i(exam.)57 b(This)32
b(exam)f(is)h(closed)g(book)g(and)f(closed)i(notes)n(.)58
b(N)m(o)90 1236 y(calculators)21 b(ar)n(e)g(per)q(mitted)g(on)g(the)g
(exam.)k(All)c(computations)h(should)f(be)g(done)g(on)g(paper)-5
b(.)90 1396 y(This)21 b(is)g(a)f Fp(140)h Fm(point)h(exam.)j(The)c
(exam)f(consists)h(of)g(4)f(par)q(ts:)226 1590 y Fl(\017)46
b Fm(Q)o(uiz)22 b(1:)j(D)o(ata)20 b(R)n(epr)n(esentation)i(\(40)e
(points\))i(pass:)j(28)226 1761 y Fl(\017)46 b Fm(Q)o(uiz)22
b(2:)j(C)o(ombinational)e(Logic)f(\(40)e(points\))i(pass:)i(28)226
1932 y Fl(\017)46 b Fm(Q)o(uiz)22 b(3:)j(Lo)m(w)c(level)f(C)h
(functions/CPU)g(\(20)g(points\))g(pass:)k(14)226 2104
y Fl(\017)46 b Fm(Challenge)21 b(\(\223)n(D)o(r)o(ool)h(K)q(itty\224\))
f(S)o(ection)g(\(40)g(points\))90 2297 y(SEE)g(P)-5 b(A)n(GE)19
b(2)i(for)g(USEFUL)f(F)-5 b(A)n(CT)o(S)20 b(and)h(C)o(ONVENTIONS.)p
898 2428 2462 4 v 897 2538 4 113 v 3358 2538 V 602 2617
a(N)m(ame)p 897 2651 V 3358 2651 V 897 2763 V 3358 2763
V 898 2767 2462 4 v 898 2870 V 897 2979 4 113 v 3358
2979 V 134 3058 a(SID)f(\(Last)f(6)i(digits\))p 897 3092
V 3358 3092 V 897 3205 V 3358 3205 V 898 3208 2462 4
v 898 3264 V 897 3373 4 113 v 3358 3373 V 610 3452 a(Email)p
897 3486 V 3358 3486 V 897 3599 V 3358 3599 V 898 3603
2462 4 v 90 3719 a Fn(HONOR)e(ST)-5 b(A)g(TEMENT)90 3880
y Fm(The)28 b(follo)m(wing)i(is)e(an)g(honor)h(statement.)47
b(This)28 b(is)g(NO)m(T)h(the)f(same)e(as)h(the)h(\223honor)h(pledge)-5
b(\224)-12 b(.)47 b(I)n(t)28 b(only)90 3992 y(states)c(y)o(our)j
Fk(awar)n(eness)f Fm(of)g(the)f(follo)m(wing)j(statement.)39
b(I)n(t)24 b(is)i(the)f(equiv)o(alent)g(of)h(saying)f(\223)n(I)g(kno)m
(w)g(it)h(is)90 4105 y(against)f(the)h(law)f(to)h(dr)q(ive)f(faster)g
(than)g(the)h(speed)f(limit)n(\224)h(instead)g(of)g(saying)f(\223)n(I)g
(pledge)h(not)g(to)g(dr)q(ive)90 4218 y(faster)20 b(than)h(the)f(speed)
h(limit)n(\224)-12 b(.)317 4412 y Fk(I)18 b(am)f(awar)n(e)g(that)g
(giving)h(or)f(r)n(eceiving)g(unauthoriz)o(ed)h(assistance)h(or)d
(using)i(unauthoriz)o(ed)317 4525 y(aids)j(on)g(this)g(e)o(xam)f(is)h
(consider)n(ed)g(a)f(violation)g(of)g(academic)h(integrity)-6
b(.)90 4719 y Fm(P)o(lease)27 b(sign)i(belo)m(w)g(to)g(indicate)g(that)
f(y)o(ou)h(READ)e(and)i(UNDERST)-6 b(AND)27 b(what)h(the)g(statement)g
(says)n(.)90 4832 y(Y)-8 b(our)22 b(exam)d(will)j(not)f(be)g(r)n(etur)q
(ned)g(to)h(y)o(ou,)f(unless)f(this)h(is)g(signed.)p
898 4912 V 897 5022 4 113 v 3358 5022 V 457 5101 a(S)n(ignatur)n(e)p
897 5135 V 3358 5135 V 897 5248 V 3358 5248 V 898 5251
2462 4 v 1941 5497 a(1)p eop
%%Page: 2 2
2 1 bop 90 -91 a Fn(C)o(onv)o(entions:)226 72 y Fl(\017)46
b Fm(Cir)n(cle)22 b(data/contr)o(ol)h(inputs)e(fr)o(om)h(outside)f
(world.)27 b(SQ)m(U)l(ARE)21 b(outputs)h(to)f(outside)g(world.)226
250 y Fl(\017)46 b Fm(S)o(elect)25 b(\(contr)o(ol\))h(lines)f(ar)n(e)f
(wr)q(itten)h(using)f Fj(c)p Fm(.)37 b(F)m(or)25 b(example)n(,)g(a)e(3)
i(bit)g(contr)o(ol)i(lines)d(ar)n(e)g(wr)q(itten)317
363 y Fj(c)356 377 y Fi(2)396 363 y Fj(c)435 377 y Fi(1)475
363 y Fj(c)514 377 y Fi(0)554 363 y Fm(.)h Fj(c)642 377
y Fi(2)702 363 y Fm(is)c(the)f(most)h(signi\002cant)h(bit)g(and)f
Fj(c)1973 377 y Fi(0)2033 363 y Fm(is)f(the)h(least.)226
542 y Fl(\017)46 b Fm(D)o(ata)20 b(input)h(lines)f(ar)n(e)f(wr)q(itten)
i(using)f Fj(x)p Fm(.)26 b(F)m(or)20 b(example)n(,)f(a)h(3)g(bit)g
(input)h(lines)g(ar)n(e)e(wr)q(itten)i Fj(x)3594 556
y Fi(2)3633 542 y Fj(x)3685 556 y Fi(1)3725 542 y Fj(x)3777
556 y Fi(0)3816 542 y Fm(.)317 655 y Fj(x)369 669 y Fi(2)432
655 y Fm(is)j(the)f(most)h(signi\002cant)h(bit)g(and)f
Fj(x)1734 669 y Fi(0)1796 655 y Fm(is)g(the)g(least.)34
b(\(Assuming)23 b(the)h(input)g(is)g(a)f(binar)r(y)h(num-)317
768 y(ber\).)226 947 y Fl(\017)46 b Fm(D)o(ata)32 b(output)i(lines)e
(ar)n(e)g(wr)q(itten)h(using)g Fj(z)t Fm(.)61 b(F)m(or)32
b(example)n(,)j(a)d(3)g(bit)h(output)h(lines)e(ar)n(e)g(wr)q(itten)317
1060 y Fj(z)359 1074 y Fi(2)399 1060 y Fj(z)441 1074
y Fi(1)481 1060 y Fj(z)523 1074 y Fi(0)562 1060 y Fm(.)26
b Fj(z)654 1074 y Fi(2)713 1060 y Fm(is)20 b(the)g(most)g
(signi\002cant)h(bit)g(and)f Fj(z)1982 1074 y Fi(0)2041
1060 y Fm(is)g(the)g(least.)25 b(\(Assuming)20 b(the)f(output)j(is)d
(binar)r(y\).)226 1238 y Fl(\017)46 b Fm(F)o(ull)25 b(adders)f(will)h
(use)f Fj(A)p Fm(,)h Fj(B)5 b Fm(,)24 b Fj(C)1442 1252
y Fh(i)1471 1238 y Fm(,)h Fj(C)1585 1252 y Fh(o)1623
1238 y Fm(,)g(and)f Fj(S)29 b Fm(inside)c(the)g(chip)g(to)f(r)n(epr)n
(esent)h(the)f(two)h(bits)g(being)317 1351 y(added,)c(the)g(carr)r(y)f
(in,)i(the)e(carr)r(y)h(out,)g(and)g(the)f(sum,)g(r)n(espectively)-9
b(.)226 1530 y Fl(\017)46 b Fm(I)n(nside)25 b(the)f(chip)l(,)i(use)d
(capital)i(letters)n(.)36 b(O)o(utside)25 b(the)f(chip)h(use)e(lo)m(w)o
(er)n(case)h(letters)h(to)f(r)n(epr)n(esent)317 1643
y(inputs)e(coming)g(fr)o(om)f(outside)h(world,)g(and)e(outputs)i(going)
g(to)f(outside)h(world.)90 1876 y Fn(U)l(seful)e(facts:)226
2039 y Fl(\017)46 b Fg(1000)27 b(0000)704 2053 y Fi(2)766
2039 y Fm(=)20 b(128)h(and)g Fg(1111)27 b(1111)1569 2053
y Fi(2)1631 2039 y Fm(=)20 b(255)226 2217 y Fl(\017)46
b Fm(The)27 b(follo)m(wing)i(ar)n(e)d(gates:)37 b(AND)-5
b(,)26 b(OR,)g(NO)m(T)-10 b(,)27 b(X)m(OR,)f(XNOR,)g(NAND)-5
b(,)26 b(and)h(NOR.)f(U)l(nless)g(other)n(-)317 2330
y(wise)20 b(speci\002ed,)i(y)o(ou)f(may)f(assume)f(that)i(each)f(gate)g
(\(ex)o(cept)g(NO)m(T)5 b(\))22 b(can)e(have)f(in\002nite)k(fan-in.)226
2509 y Fl(\017)46 b Fm(The)30 b(follo)m(wing)j(ar)n(e)c(par)q(ts:)44
b(any)30 b(gates)o(,)i(multiplexer)f(\(MUX\),)e(demultiplexer)j
(\(DEMUX\),)c(en-)317 2622 y(coder)-5 b(,)31 b(decoder)-5
b(,)32 b(half)c(adder)h(\(HA\),)f(full)h(adder)g(\(F)-5
b(A\),)27 b Fj(k)s Fm(-bit)j(r)q(ipple)g(carr)r(y)e(adder)-5
b(,)31 b(pr)q(ior)q(ity)f(en-)317 2735 y(coder)-5 b(.)426
2914 y Fn(\226)46 b Fm(HA)20 b(uses)g(inputs:)26 b Fj(A)p
Fm(,)21 b Fj(B)k Fm(and)20 b(outputs:)27 b Fj(C)g Fm(\(carr)r(y)20
b(out\),)h Fj(S)26 b Fm(\(sum\).)426 3051 y Fn(\226)46
b Fm(F)-5 b(A)20 b(uses)f(inputs:)27 b Fj(A)p Fm(,)20
b Fj(B)5 b Fm(,)21 b Fj(C)1454 3065 y Fh(i)1502 3051
y Fm(\(carr)r(y)f(in\))h(and)g(outputs:)27 b Fj(C)2514
3065 y Fh(o)2572 3051 y Fm(\(carr)r(y)21 b(out\),)g Fj(S)k
Fm(\(sum\).)90 3284 y Fp(G)o(r)o(ading)p 1181 3444 1569
4 v 1179 3727 4 283 v 1467 3642 a Fm(P)m(ar)q(t)p 1917
3727 V 571 w(P)m(oints)p 2747 3727 V 1181 3730 1569 4
v 1181 3747 V 1179 4029 4 283 v 1419 3944 a(Q)o(uiz)c(1)p
1917 4029 V 2747 4029 V 1181 4032 1569 4 v 1179 4314
4 283 v 1419 4230 a(Q)o(uiz)g(2)p 1917 4314 V 2747 4314
V 1181 4318 1569 4 v 1179 4600 4 283 v 1419 4515 a(Q)o(uiz)g(3)p
1917 4600 V 2747 4600 V 1181 4603 1569 4 v 1179 4886
4 283 v 1344 4801 a(Challenge)p 1917 4886 V 2747 4886
V 1181 4889 1569 4 v 1179 5171 4 283 v 1448 5087 a(T)-9
b(otal)p 1917 5171 V 2747 5171 V 1181 5175 1569 4 v 1941
5497 a(2)p eop
%%Page: 3 3
3 2 bop 1252 119 a Fm(CMSC)21 b(311)g(C)o(omputer)h(Or)o(ganization)
1785 232 y(F)l(all)e(2002)1849 345 y Ff(R)m(T)p Fe(f)f
Ff(P)p 462 527 3007 4 v 460 810 4 283 v 611 725 a Fm(N)m(ame)p
1005 810 V 3467 810 V 462 813 3007 4 v 460 1095 4 283
v 512 1011 a(S)n(tudent)i(ID)p 1005 1095 V 3467 1095
V 462 1099 3007 4 v 90 1373 a Fd(Q)o(uiz)g(1)g(\(D)o(ata)g(R)n(epr)n
(esentation\):)26 b(\223..)g(and)21 b(the)f(bases)i(ar)n(e)f(loaded)n
(\224)g(\(40)g(points\))90 1590 y Fn(1.1)46 b Fm(\(2)20
b(pts\))h(H)m(er)n(e)-5 b(')-10 b(s)19 b(a)h(declar)o(ation)i(in)g(a)e
(C)g(pr)o(ogr)o(am:)459 1703 y Fc(int)47 b(x)h(;)317
1816 y Fm(What)n(')-10 b(s)21 b(the)g(inter)q(nal)h(data)e(r)n(epr)n
(esentation)i(for)f Fc(x)p Fm(?)90 2712 y Fn(1.2)46 b
Fm(\(2)20 b(pts\))h(H)m(er)n(e)-5 b(')-10 b(s)19 b(a)h(declar)o(ation)i
(in)g(a)e(C)g(pr)o(ogr)o(am:)459 2825 y Fc(float)47 b(y)g(;)317
2938 y Fm(What)n(')-10 b(s)24 b(the)e(inter)q(nal)i(data)e(r)n(epr)n
(esentation)j(for)e Fc(y)p Fm(?)32 b(\(H)n(int:)f(ther)n(e)-5
b(')-10 b(s)22 b(a)h Fc(double)e Fm(type)i(that)g(stor)n(es)f(a)317
3051 y(longer)g(version)f(of)g(a)f Fc(float)p Fm(\))90
3947 y Fn(1.3)46 b Fm(\(2)20 b(pts\))h(H)m(er)n(e)-5
b(')-10 b(s)19 b(a)h(declar)o(ation)i(in)g(a)e(C)g(pr)o(ogr)o(am:)459
4060 y Fc(char)47 b(ch)g(;)317 4173 y Fm(What)n(')-10
b(s)24 b(the)g(inter)q(nal)h(data)e(r)n(epr)n(esentation)i(for)f
Fc(ch)f Fm(on)h(most)g(computers)g(\(e)n(.g.,)h(DC)e(class)g(clus-)317
4286 y(ter\)?)1941 5497 y(3)p eop
%%Page: 4 4
4 3 bop 90 119 a Fn(1.4)46 b Fm(\(3)27 b(pts\))h(G)o(iven)f(a)h
Fj(k)s Fm(-bit)g(bitstr)q(ing)i(\(wher)n(e)e Fj(k)43
b Fl(\025)d Fg(1)p Fm(\),)30 b(ho)m(w)f(many)e(differ)n(ent)i(bit)g
(str)q(ings)g(ar)n(e)e(ther)n(e?)317 232 y(W)l(r)q(ite)22
b(a)e(for)q(mula)h(for)g(this)g(\(hint:)26 b(use)20 b
Fj(k)s Fm(\).)90 1128 y Fn(1.5)46 b Fm(\(3)25 b(pts\))h(S)n(uppose)g(y)
o(ou)g(ar)n(e)g(given)f(a)g(bitstr)q(ing)j(with)e Fk(e)o(xactly)j
Fj(k)g Fm(1')-10 b(s)o(,)27 b(and)f(y)o(ou)m(')-6 b(r)n(e)27
b(told)g(the)e(number)317 1241 y(is)e(an)f Fp(unsigned)i
Fm(integer)-5 b(.)31 b(W)l(r)q(ite)24 b(a)e(for)q(mula)g(for)i(the)e
(base)g(10)g(\(decimal\))h Fp(v)o(alue)h Fm(of)e(this)h(bit-)317
1354 y(str)q(ing.)j(Y)-8 b(ou)18 b(can)f(assume)f Fj(k)29
b Fl(\025)c Fg(2)p Fm(.)g(\(Don)-7 b(')g(t)18 b(use)f(summations)o(,)h
(unless)g(y)o(ou)g(can)-7 b(')g(t)18 b(think)g(of)g(another)317
1467 y(way\).)90 2363 y Fn(1.6)46 b Fm(\(3)25 b(pts\))h(S)n(uppose)g(y)
o(ou)g(ar)n(e)g(given)f(a)g(bitstr)q(ing)j(with)e Fk(e)o(xactly)j
Fj(k)g Fm(1')-10 b(s)o(,)27 b(and)f(y)o(ou)m(')-6 b(r)n(e)27
b(told)g(the)e(number)317 2476 y(is)c(a)g Fp(signed)h
Fm(integer)-5 b(.)28 b(W)l(r)q(ite)22 b(a)e(for)q(mula)i(for)g(the)f
(base)f(10)h(\(decimal\))g Fp(v)o(alue)i Fm(of)e(this)h(bitstr)q(ing.)
317 2589 y(Y)-8 b(ou)22 b(can)e(assume)f Fj(k)28 b Fl(\025)d
Fg(2)p Fm(.)h(S)n(tate)20 b(ANY)h(ASSUMPTIONS)f(needed)h(for)g(the)g
(for)q(mula)g(to)g(be)g(tr)q(ue)n(.)90 3721 y Fn(1.7)46
b Fm(\(4)21 b(pts\))g(W)l(r)q(ite)h Fg(+5)902 3735 y
Fi(10)998 3721 y Fm(in)f(the)g(follo)m(wing)j(r)n(epr)n(esentations)f
Fp(using)28 b(4)g(bits)p Fm(.)f(I)o(f)22 b(it)f(is)g(not)h(possible)g
(to)317 3834 y(wr)q(ite)f(it)g(in)g(the)g(r)n(epr)n(esentation,)h(wr)q
(ite)f(N/A.)1941 5497 y(4)p eop
%%Page: 5 5
5 4 bop 1132 31 1893 4 v 1130 313 4 283 v 1182 229 a
Fm(S)n(igned)22 b(M)o(agnitude)p 1979 313 V 3023 313
V 1132 317 1893 4 v 1130 599 4 283 v 1223 514 a(1')-10
b(s)21 b(C)o(omplement)p 1979 599 V 3023 599 V 1132 602
1893 4 v 1130 884 4 283 v 1223 800 a(2')-10 b(s)21 b(C)o(omplement)p
1979 884 V 3023 884 V 1132 888 1893 4 v 1130 1170 4 283
v 1388 1085 a(E)o(x)o(cess)f(8)p 1979 1170 V 3023 1170
V 1132 1173 1893 4 v 1130 1456 4 283 v 1354 1371 a(E)o(x)o(cess)g
Fl(\000)p Fg(3)p 1979 1456 V 3023 1456 V 1132 1459 1893
4 v 1941 5497 a Fm(5)p eop
%%Page: 6 6
6 5 bop 90 119 a Fn(1.8)46 b Fm(\(4)21 b(pts\))g(W)l(r)q(ite)h
Fl(\000)p Fg(8)902 133 y Fi(10)998 119 y Fm(in)f(the)g(follo)m(wing)j
(r)n(epr)n(esentations)f Fp(using)28 b(4)g(bits)p Fm(.)f(I)o(f)22
b(it)f(is)g(not)h(possible)g(to)317 232 y(wr)q(ite)f(it)g(in)g(the)g(r)
n(epr)n(esentation,)h(wr)q(ite)f(N/A.)p 1132 402 1893
4 v 1130 684 4 283 v 1182 600 a(S)n(igned)h(M)o(agnitude)p
1979 684 V 3023 684 V 1132 688 1893 4 v 1130 970 4 283
v 1223 885 a(1')-10 b(s)21 b(C)o(omplement)p 1979 970
V 3023 970 V 1132 973 1893 4 v 1130 1255 4 283 v 1223
1171 a(2')-10 b(s)21 b(C)o(omplement)p 1979 1255 V 3023
1255 V 1132 1259 1893 4 v 1130 1541 4 283 v 1388 1456
a(E)o(x)o(cess)f(8)p 1979 1541 V 3023 1541 V 1132 1544
1893 4 v 1130 1827 4 283 v 1354 1742 a(E)o(x)o(cess)g
Fl(\000)p Fg(3)p 1979 1827 V 3023 1827 V 1132 1830 1893
4 v 90 2043 a Fn(1.9)46 b Fm(\(3)20 b(pts\))h(D)o(e\002ne)g(o)m(ver)q
(\003o)m(w)-7 b(.)26 b(That)21 b(is)o(,)f(explain)i(what)e(o)m(ver)q
(\003o)m(w)h(MEANS,)f(not)i(ho)m(w)f(to)g(detect)g(it.)1941
5497 y(6)p eop
%%Page: 7 7
7 6 bop 90 119 a Fn(1.10)46 b Fm(\(4)19 b(pts\))g(S)o(omeone)h(pr)o(o)m
(vides)i(y)o(ou)e(the)g(follo)m(wing)i(function)f(which)f(does)g(ar)q
(ithmetic)g(with)g Fc(float)317 232 y Fm(v)o(alues)e(\(32)g(bits\).)25
b(This)18 b(function)i(per)q(for)q(ms)e(add,)g(subtr)o(act,)h(and)f
(multiply)i(oper)o(ations)f(in)f(some)317 345 y(sequence)f(with)h(the)f
(ar)o(guments)o(,)i(though)g(y)o(ou)g(don)-7 b(')g(t)18
b(kno)m(w)g(in)h(which)f(or)n(der)-5 b(.)25 b(I)n(t)17
b(r)n(etur)q(ns)h(a)f Fc(float)317 458 y Fm(v)o(alue)n(.)412
571 y Fc(float)46 b(doStuff\()g(float)g(x,)h(float)g(y)g(\))g(;)317
721 y Fm(W)-6 b(e)19 b(want)f(to)h(use)f(this)h(function)h(with)f
Fc(int)f Fm(v)o(alues)o(,)g(and)h(to)g(do)g(so)g(b)n(y)f(casting)h(fr)o
(om)h Fc(int)d Fm(to)i Fc(float)p Fm(.)317 834 y(F)m(or)i(example)n(,)
508 964 y Fc(int)47 b(j)h(=)f(3,)g(k)h(=)f(4)h(;)508
1077 y(int)f(result)604 1190 y(=)g(static_cast\()c(doStuff\()j
(static_cast\()c(j)48 b(\),)1988 1303 y(static_cast\()42
b(k)48 b(\))f(\))h(\))f(;)317 1433 y Fm(Does)27 b(casting)i(to)f
(\003oat)g(and)g(back)f(to)h(int)h(cause)e(any)g(pr)o(oblems)i(for)g
(any)e(arbitr)o(ar)r(y)-8 b(,)31 b(but)d(v)o(alid,)317
1546 y(v)o(alues)j(of)g Fj(j)37 b Fm(and)31 b Fj(k)j
Fm(\(answ)o(er)d(YES,)h(if)f(it)h(does)o(,)i(and)d(NO)h(if)f(it)h(does)
f(not\).)58 b(Assume)30 b(a)g(wor)o(king)317 1659 y(compiler)22
b(that)f(does)g(casting)g(corr)n(ectly)-9 b(.)27 b(EXPL)q(AIN)19
b(for)j(full)f(cr)n(edit.)1941 5497 y(7)p eop
%%Page: 8 8
8 7 bop 90 119 a Fn(1.11)46 b Fm(\(4)29 b(pts\))h(Which)h(CA)-6
b(TEGOR)l(Y)30 b(\(hint:)45 b(ther)n(e)30 b(ar)n(e)g(5)g(of)g(them\))f
(do)i(the)f(follo)m(wing)i(32)e(bit)h(\003oating)317
232 y(point)22 b(v)o(alues)f(belong?)317 419 y Fn(\(a\))47
b Fm(0)20 b(1111)h(1111)h(0000)f(0000)g(0000)g(0000)g(0000)g(000)317
802 y Fn(\(b\))46 b Fm(0)21 b(1111)g(1111)g(0011)g(0000)g(0000)h(0000)f
(0000)g(000)317 1184 y Fn(\(c\))46 b Fm(0)21 b(0000)g(0001)g(0011)g
(0000)g(0000)h(0000)f(0000)g(000)317 1567 y Fn(\(d\))46
b Fm(0)21 b(1000)g(0000)g(0000)g(0000)g(0000)h(0000)f(0000)g(000)317
1949 y Fn(\(e\))46 b Fm(0)21 b(0000)g(0000)g(1111)g(0000)h(0000)f(0000)
g(0000)g(000)90 2373 y Fn(1.12)46 b Fm(\(3)20 b(pts\))h(C)o(onver)q(t)f
Fp(-17.5)h Fm(to)h(IEEE)e(single)h(pr)n(ecision.)28 b(Label)20
b(bits)h(clearly)g(\(sign)g(bit,)g(etc\).)1941 5497 y(8)p
eop
%%Page: 9 9
9 8 bop 90 119 a Fn(1.13)46 b Fm(\(3)20 b(pts\))h(Assume)e(the)h(follo)
m(wing)k(r)n(epr)n(esentation)e(for)f(\003oating)h(point:)426
307 y Fl(\017)46 b Fm(N)m(o)21 b(sign)g(bit)h(\(numbers)f(ar)n(e)f
(non-negative\))426 453 y Fl(\017)46 b Fm(3)21 b(bits)g(used)f(to)i(r)n
(epr)n(esent)f(the)f(mantissa/signi\002cand)426 599 y
Fl(\017)46 b Fm(N)m(o)21 b(hidden)h(1)426 745 y Fl(\017)46
b Fm(3)21 b(bits)g(used)f(to)i(r)n(epr)n(esent)f(the)f(exponent)i
(\(assume)d(r)n(epr)n(esentation)j(is)f(unsigned\).)317
933 y(Y)-8 b(ou)18 b(want)f(to)h(multiply)h Fg(1)p Fj(:)p
Fg(01)1336 947 y Fi(2)1383 933 y Fl(\002)6 b Fg(2)1505
900 y Fi(2)1540 909 y Fb(10)1627 933 y Fm(b)n(y)18 b
Fg(1)p Fj(:)p Fg(11)1903 947 y Fi(2)1950 933 y Fl(\002)6
b Fg(2)2072 900 y Fi(3)2107 909 y Fb(10)2177 933 y Fm(.)24
b(B)o(oth)19 b(numbers)e(ar)n(e)g(wr)q(itten)h(in)g(the)f(desir)n(ed)
317 1045 y(r)n(epr)n(esentation)h(\(i.e)n(.,)f(use)f(3)g(bits)h(for)f
(number)-5 b(,)18 b(etc\).)23 b(What)17 b(is)f(the)g(answ)o(er)g(in)h
(scienti\002c)g(notation)317 1158 y(using)k(the)f(abo)m(ve)g(constr)o
(aints?)27 b(\(N)m(ote:)f(the)20 b(v)o(alues)g(sho)m(wn)g(earlier)h(ar)
n(e)f(in)h(scienti\002c)g(notation\).)317 1271 y(Assume)e(tr)q
(uncation)k(is)d(used.)90 3821 y Fn(1.14)46 b Fm(\(2)24
b(pts\))h(O)o(ther)h(than)f(ASCII,)f(name)g(another)h(\(common\))h(r)n
(epr)n(esentation)g(for)f(char)o(acters)n(.)38 b(D)o(e-)317
3934 y(scr)q(ibe)21 b(any)f(facts)g(y)o(ou)i(kno)m(w)f(about)g(this)g
(r)n(epr)n(esentation)h(\(one)f(fact)f(is)h(\002ne\).)1941
5497 y(9)p eop
%%Page: 10 10
10 9 bop 90 119 a Fd(Q)o(uiz)21 b(2)g(\(C)o(ombinational)h(Logic\):)27
b(\223C)o(onjunction)21 b(J)l(unction)-6 b(\224)21 b(\(40)g(points\))p
462 268 3007 4 v 460 550 4 283 v 611 466 a Fm(N)m(ame)p
1005 550 V 3467 550 V 462 554 3007 4 v 460 836 4 283
v 512 751 a(S)n(tudent)g(ID)p 1005 836 V 3467 836 V 462
839 3007 4 v 90 1062 a Fn(2.1)46 b Fm(\(3)20 b(pts\))h(C)o
(ombinational)i(logic)f(cir)n(cuits)g(implement)f(what)f(mathematical)h
(abstr)o(action?)90 1958 y Fn(2.2)46 b Fm(\(5)20 b(pts\))h(A)f(NAND)891
1972 y Fi(3)930 1958 y Fm(-gate)g(implements)h(the)f(B)o(oolean)i
(function)g Fj(f)10 b Fg(\()p Fj(w)r(;)15 b(x;)g(y)s
Fg(\))26 b(=)f(\()p Fj(w)r(xy)s Fg(\))3291 1925 y Fa(0)317
2109 y Fm(I)n(mplement)g(this)g(cir)n(cuit)h(using)f(as)e(FE)o(W)i
(NAND)2113 2123 y Fi(2)2176 2109 y Fm(\(2-inputs\))g(gates)f(as)f
(needed.)37 b(Label)24 b(inputs)317 2222 y(as)h Fj(w)r
Fm(,)i Fj(x)p Fm(,)g Fj(y)h Fm(\(dr)o(aw)d(cir)n(cle)i(ar)o(ound)g
(each)d(input)j(v)o(ar)q(iables\))e(and)h(label)f(output)i(as)e
Fj(z)k Fm(\(dr)o(aw)d(a)f(bo)n(x)317 2335 y(ar)o(ound)d(the)f
Fj(z)t Fm(\).)1917 5497 y(10)p eop
%%Page: 11 11
11 10 bop 90 119 a Fn(2.3)46 b Fm(\(5)20 b(pts\))h(I)n(mplement)g(a)f
(NAND)1361 133 y Fi(2)1399 119 y Fm(-gate)g(\(2-input\))i(using)f(as)e
(few)h(NOR)2738 133 y Fi(2)2798 119 y Fm(gates)g(as)g(necessar)r(y)-9
b(.)90 2196 y Fn(2.4)46 b Fm(\(5)25 b(pts\))g(I)n(mplement)h(a)f(cir)n
(cuit)i(which)f(is)g(equiv)o(alent)g(to)g(the)f Fp(carr)r(y)33
b(out)26 b Fm(of)g(a)e(full)j(adder)e(using)317 2309
y(any)c(par)q(t)f Fp(ex)o(cept)h Fm(a)f(full)i(adder)e(or)i(half)e
(adder)-5 b(.)26 b(\(S)o(ee)19 b(back)h(of)h(page)g(1)f(for)i
(de\002nition)h(of)e(par)q(ts\).)1917 5497 y(11)p eop
%%Page: 12 12
12 11 bop 90 119 a Fn(2.5)46 b Fm(\(5)25 b(pts\))g(Y)-8
b(ou)27 b(wish)e(to)h(implement)h(an)e(AND)1866 134 y
Fh(k)1933 119 y Fm(\(i.e)n(.,)i(a)e Fj(k)s Fm(-input)i(AND)e(gate\),)h
(but)g(all)g(y)o(ou)g(have)e(ar)n(e)317 232 y(AND)517
246 y Fi(2)584 232 y Fm(gates)k(\(as)g(many)g(as)f(y)o(ou)i(want\).)49
b(Assume)27 b(the)i(time)f(delay)g(of)h(a)f(gate)g(is)h(1)f(unit.)50
b(W)l(r)q(ite)317 345 y(a)28 b(for)q(mula)g(that)g(expr)n(esses)f(the)g
(MINIMUM)g(delay)h(for)g(an)g(implementation)h(of)f(AND)3545
360 y Fh(k)3615 345 y Fm(using)317 458 y(AND)517 472
y Fi(2)577 458 y Fm(gates)n(.)d(EXPL)q(AIN)19 b(ho)m(w)i(y)o(ou)g(came)
f(up)h(with)g(this)g(for)q(mula.)90 2535 y Fn(2.6)46
b Fm(\(10)26 b(pts\))g(F)o(ill)i(out)f(the)f(follo)m(wing)j(table)n(,)f
(indicating)h(ho)m(w)e(many)f(contr)o(ol,)k(data)c(inputs)o(,)j
(outputs)317 2648 y(each)20 b(has)g(\(in)h(gener)o(al\).)317
2798 y(U)l(se)f(\224k)l(\224)g(in)h(y)o(our)h(expr)n(ession,)g(as)d
(needed.)p 319 2968 3520 4 v 317 3251 4 283 v 768 3251
V 1005 3166 a(C)o(ontr)o(ol)k(I)n(nputs)p 1841 3251 V
472 w(D)o(ata)d(inputs)p 2793 3251 V 590 w(O)o(utputs)p
3837 3251 V 319 3254 3520 4 v 317 3536 4 283 v 437 3451
a(MUX)p 768 3536 V 1841 3536 V 2793 3536 V 3837 3536
V 319 3540 3520 4 v 317 3822 4 283 v 378 3737 a(D)o(eMUX)p
768 3822 V 1841 3822 V 2793 3822 V 3837 3822 V 319 3825
3520 4 v 317 4107 4 283 v 372 4023 a(Encoder)p 768 4107
V 1841 4107 V 2793 4107 V 3837 4107 V 319 4111 3520 4
v 317 4393 4 283 v 369 4308 a(D)o(ecoder)p 768 4393 V
1841 4393 V 2793 4393 V 3837 4393 V 319 4396 3520 4 v
1917 5497 a(12)p eop
%%Page: 13 13
13 12 bop 90 119 a Fn(2.7)46 b Fm(\(6)18 b(pts\))h(S)n(uppose)g(y)o(ou)
h(have)e(a)g(pr)q(ior)q(ity)j(encoder)f(with)f(four)h(inputs:)26
b Fj(x)2802 133 y Fi(3)2841 119 y Fm(,)19 b Fj(x)2936
133 y Fi(2)2976 119 y Fm(,)g Fj(x)3071 133 y Fi(1)3110
119 y Fm(,)g Fj(x)3205 133 y Fi(0)3245 119 y Fm(.)25
b(I)n(n)19 b(lectur)n(e)n(,)h(w)o(e)317 232 y(said)26
b(that)g(higher)h(indexes)f(r)n(epr)n(esent)g(higher)h(pr)q(ior)q
(ities)n(.)43 b(S)n(uppose)26 b(lo)m(w)o(er)h(indexes)f(r)n(epr)n
(esent)317 345 y(higher)c(pr)q(ior)q(ities)g(\(index)g(0)e(has)g
(highest)h(pr)q(ior)q(ity\).)317 495 y(W)l(r)q(ite)e(the)g(B)o(oolean)g
(expr)n(ession)g(for)g(the)g(outputs)g(of)g Fj(z)2292
509 y Fi(1)2349 495 y Fm(and)g Fj(z)2568 509 y Fi(0)2608
495 y Fm(,)f(wher)n(e)h Fj(z)2963 509 y Fi(1)3002 495
y Fj(z)3044 509 y Fi(0)3102 495 y Fm(r)n(epr)n(esent)g(the)g(2)f(bit)
317 608 y(subscr)q(ipt)k(of)f(the)f(input)i(with)f(the)g(highest)g(pr)q
(ior)q(ity)-9 b(.)90 3158 y Fn(2.8)46 b Fm(\(4)20 b(pts\))h(Answ)o(er)f
(the)h(follo)m(wing)i(questions)e(about)g(encoders)n(.)317
3345 y Fn(\(a\))47 b Fm(What)20 b(assumptions)o(,)h(if)g(any)-8
b(,)21 b(ar)n(e)f(made)g(about)h(the)g(inputs)g(of)g(a)f(r)n(egular)i
(encoder?)317 4318 y Fn(\(b\))46 b Fm(What)21 b(assumptions)o(,)g(if)g
(any)-8 b(,)20 b(ar)n(e)h(made)f(about)h(the)f(inputs)i(of)f(a)f(pr)q
(ior)q(ity)i(encoder?)1917 5497 y(13)p eop
%%Page: 14 14
14 13 bop 90 119 a Fd(Q)o(uiz)21 b(3)g(\(Lo)m(w-lev)o(el)f(C)h
(functions/O)o(dds)g(and)g(Ends\):)26 b(\22310)21 b(Little)f(Endians)l
(\224)h(\(20)g(points\))p 462 268 3007 4 v 460 550 4
283 v 611 466 a Fm(N)m(ame)p 1005 550 V 3467 550 V 462
554 3007 4 v 460 836 4 283 v 512 751 a(S)n(tudent)g(ID)p
1005 836 V 3467 836 V 462 839 3007 4 v 90 1062 a Fn(3.1)46
b Fm(\(4)20 b(pts\))h(The)f(follo)m(wing)k(ar)n(e)c(the)h(5)f(steps)g
(to)h(execute)g(an)f(instr)q(uction.)28 b(E)o(xplain)22
b(each)e(step)l(.)317 1250 y Fn(IF)317 1868 y(ID)317
2487 y(AL)m(U)317 3105 y(MEM)317 3724 y(WB)1917 5497
y Fm(14)p eop
%%Page: 15 15
15 14 bop 90 119 a Fn(3.2)46 b Fm(\(5)20 b(pts\))h(H)m(er)n(e)-5
b(')-10 b(s)19 b(a)h(pr)o(ototype)j(for)f(a)e(C++)g(function:)317
232 y Fc(bool)47 b(checkRange\()e(unsigned)g(int)i(x,)g(int)g(low,)g
(int)g(high)f(\))i(;)317 345 y Fm(U)l(sing)27 b(bitwise)f(oper)o
(ations)g(and)g(shifting,)i(deter)q(mine)e(if)g(A)-6
b(T)25 b(LEAST)g(ONE)h(bit)g(betw)o(een)g(index)317 458
y Fc(low)21 b Fm(and)h(index)g Fc(high)p Fm(,)f(inclusive)n(,)h(has)f
(v)o(alue)h(1.)28 b(Assume)21 b(lo)m(w)28 b Fl(\024)f
Fm(high)c(and)e(that)h(the)g(indexes)f(lie)317 571 y(betw)o(een)g(0)g
(and)f(31,)h(inclusive)n(.)26 b(Assume)20 b(index)h(0)g(is)f(the)h(LSB)
f(and)g(index)i(31)f(is)f(the)h(MSB)m(.)90 3593 y Fn(3.3)46
b Fm(\(3)20 b(pts\))h(G)o(iven)f(the)g(follo)m(wing)j(32)e(bit)h(v)o
(alue:)j Fj(AB)5 b(C)i(D)s(E)e(F)13 b Fg(01)2402 3607
y Fi(16)317 3743 y Fm(W)l(r)q(ite)27 b(these)f(v)o(alues)g(in)h(a)f(b)n
(yte-addr)n(essable)f(memor)r(y)h(star)q(ting)h(at)f(addr)n(ess)g(1000)
h(in)g(LIT)q(TLE-)317 3856 y(ENDIAN)20 b(or)n(der)-5
b(.)26 b(M)o(ake)19 b(sur)n(e)i(y)o(ou)g(wr)q(ite)g(ALL)f(addr)n(esses)
f(pr)o(operly)-9 b(.)1917 5497 y(15)p eop
%%Page: 16 16
16 15 bop 90 119 a Fn(3.4)46 b Fm(\(5)20 b(pts\))h(H)m(er)n(e)-5
b(')-10 b(s)19 b(a)h(pr)o(ototype)j(for)f(a)e(C++)g(function:)317
269 y Fc(void)47 b(clearBits\()e(unsigned)g(int)i(&)h(x,)f(int)g(low,)g
(int)f(high)h(\))h(;)317 419 y Fm(Clear)25 b(bits)h(\(i.e)n(,)g(set)e
(it)i(to)f(0\))g(fr)o(om)h(index)g Fc(low)e Fm(to)h(index)h
Fc(high)p Fm(,)f(inclusive)n(,)i(but)e(leave)f(r)n(emaining)317
532 y(bits)d(unchanged.)27 b(U)l(se)20 b(same)f(assumptions)i(as)e
Fc(checkRange)p Fm(.)90 3082 y Fn(3.5)46 b Fm(\(3)17
b(pts\))g(W)o(ithout)j(using)e(a)f(temp)g(v)o(ar)q(iable)h(\(i.e)n(.,)g
(using)g(logical)h(bit)f(oper)o(ators\),)h(wr)q(ite)f(a)e(swap)h(func-)
317 3195 y(tion)365 3345 y Fc(void)47 b(swap\()f(unsigned)g(int)g(&)i
(x,)f(unsigned)f(int)h(&)g(y)g(\))h(;)1917 5497 y Fm(16)p
eop
%%Page: 17 17
17 16 bop 90 119 a Fd(Challenge)19 b(\(\223D)o(r)o(ool)j(K)q
(itty\224\))h(Section:)j(\223M)m(eo)m(w!\224)g(\(40)21
b(points\))90 335 y Fn(C1)45 b Fm(\(10)22 b(pts\))h(C)o(onsider)g(the)g
(follo)m(wing)i(6-1)d(MUX)g(built)i(fr)o(om)f(3-1)g(MUX)o(es)e(and)i
(2-1)f(MUX)o(es)n(.)30 b(The)23 b(3-1)317 448 y(MUX)o(es)d(have)f(the)i
(follo)m(wing)i(oper)o(ation)p 1444 610 1269 4 v 1442
723 4 113 v 1494 689 a Fj(c)1533 703 y Fi(1)p 1621 723
V 1673 689 a Fj(c)1712 703 y Fi(0)p 1800 723 V 2234 689
a Fj(z)p 2711 723 V 1444 726 1269 4 v 1442 839 4 113
v 1510 805 a Fm(0)p 1621 839 V 130 w(0)p 1800 839 V 475
w Fj(x)2263 819 y Fi(0)p 2711 839 V 1442 952 V 1510 918
a Fm(0)p 1621 952 V 130 w(1)p 1800 952 V 475 w Fj(x)2263
932 y Fi(1)p 2711 952 V 1442 1065 V 1510 1031 a Fm(1)p
1621 1065 V 130 w(0)p 1800 1065 V 475 w Fj(x)2263 1045
y Fi(2)p 2711 1065 V 1442 1178 V 1510 1144 a Fm(1)p 1621
1178 V 130 w(1)p 1800 1178 V 115 w(r)o(andom)e(\(don)-7
b(')g(t)22 b(car)n(e\))p 2711 1178 V 1444 1181 1269 4
v 317 1350 a Fn(\(a\))47 b Fm(W)l(r)q(ite)21 b(a)f(table)h(for)g(a)f
(6-1)g(MUX)g(and)h(state)f(assumptions)g(about)i(its)e(oper)o(ations)n
(.)317 2793 y Fn(\(b\))46 b Fm(Clearly)33 b(label)g(inputs)h(and)e
(outputs)n(.)63 b(U)l(se)33 b(conventions)g(for)h(data)e(inputs)i
(using)f Fj(x)f Fm(with)517 2905 y(subscr)q(ipts)21 b(and)g(contr)o(ol)
i(inputs)f(using)f Fj(c)g Fm(with)g(subscr)q(ipts)n(.)784
3320 y
18646798 14730956 0 0 28286156 22365798 startTexFig
784 3320 a
%%BeginDocument: Figs/6_1mux.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: 6_1mux.eps
%%Creator: fig2dev Version 3.2 Patchlevel 3c
%%CreationDate: Mon Oct 21 14:49:38 2002
%%For: clin@chexmix (Charles Lin,1127 AVW,(301) 405-2709,,)
%%BoundingBox: 0 0 430 340
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 340 moveto 0 0 lineto 430 0 lineto 430 340 lineto closepath clip newpath
-93.0 424.0 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/reencdict 12 dict def /ReEncode { reencdict begin
/newcodesandnames exch def /newfontname exch def /basefontname exch def
/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def
basefontdict { exch dup /FID ne { dup /Encoding eq
{ exch dup length array copy newfont 3 1 roll put }
{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall
newfont /FontName newfontname put newcodesandnames aload pop
128 1 255 { newfont /Encoding get exch /.notdef put } for
newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat
newfontname newfont definefont pop end } def
/isovec [
8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde
8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis
8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron
8#220 /dotlessi 8#230 /oe 8#231 /OE
8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling
8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis
8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot
8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus
8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph
8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine
8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf
8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute
8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring
8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute
8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute
8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve
8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply
8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex
8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave
8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring
8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute
8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute
8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve
8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide
8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex
8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def
/Times-Bold /Times-Bold-iso isovec ReEncode
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
%%Page: 1 1
10 setmiterlimit
0.06000 0.06000 sc
%
% Fig objects follow
%
/Times-Bold-iso ff 270.00 scf sf
3825 5175 m
gs 1 -1 sc (0) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
3975 5925 m
gs 1 -1 sc (Z) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2550 5850 m
gs 1 -1 sc (1) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2550 6525 m
gs 1 -1 sc (2) col0 sh gr
% Polyline
7.500 slw
n 8175 4500 m 8700 4500 l 8700 5025 l 8175 5025 l
cp gs col0 s gr
/Times-Bold-iso ff 360.00 scf sf
8325 4875 m
gs 1 -1 sc (Z) col0 sh gr
% Polyline
n 4275 3150 m 5175 3150 l 5175 4425 l
5625 4425 l gs col0 s gr
% Polyline
n 5625 3975 m 7275 3975 l 7275 5775 l 5625 5775 l
cp gs col0 s gr
% Polyline
n 4275 5850 m 5175 5850 l 5175 5100 l
5625 5100 l gs col0 s gr
% Polyline
n 7275 4725 m
8175 4725 l gs col0 s gr
% Polyline
n 1575 1425 m 7725 1425 l 7725 7050 l 1575 7050 l
cp gs col0 s gr
/Times-Bold-iso ff 360.00 scf sf
5700 4575 m
gs 1 -1 sc (0) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
6225 5175 m
gs 1 -1 sc (2-1) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
6075 5550 m
gs 1 -1 sc (MUX) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
5700 5100 m
gs 1 -1 sc (1) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
6375 4350 m
gs 1 -1 sc (C) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
6975 4875 m
gs 1 -1 sc (Z) col0 sh gr
/Times-Bold-iso ff 270.00 scf sf
3150 5175 m
gs 1 -1 sc (1) col0 sh gr
% Polyline
n 2400 2100 m 4275 2100 l 4275 4200 l 2400 4200 l
cp gs col0 s gr
/Times-Bold-iso ff 360.00 scf sf
2550 2700 m
gs 1 -1 sc (0) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2850 2475 m
gs 1 -1 sc (C) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
3525 2475 m
gs 1 -1 sc (C) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
3075 3300 m
gs 1 -1 sc (3-1) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2925 3675 m
gs 1 -1 sc (MUX) col0 sh gr
/Times-Bold-iso ff 270.00 scf sf
3150 2550 m
gs 1 -1 sc (1) col0 sh gr
/Times-Bold-iso ff 270.00 scf sf
3825 2550 m
gs 1 -1 sc (0) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
3975 3300 m
gs 1 -1 sc (Z) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2550 3225 m
gs 1 -1 sc (1) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2550 3900 m
gs 1 -1 sc (2) col0 sh gr
% Polyline
n 2400 4725 m 4275 4725 l 4275 6825 l 2400 6825 l
cp gs col0 s gr
/Times-Bold-iso ff 360.00 scf sf
2550 5325 m
gs 1 -1 sc (0) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2850 5100 m
gs 1 -1 sc (C) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
3525 5100 m
gs 1 -1 sc (C) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
3075 5925 m
gs 1 -1 sc (3-1) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2925 6300 m
gs 1 -1 sc (MUX) col0 sh gr
$F2psEnd
rs
%%EndDocument
endTexFig
1917 5497 a Fm(17)p eop
%%Page: 18 18
18 17 bop 90 119 a Fn(C2)45 b Fm(\(10)26 b(pts\))h(D)o(esign)g(a)e(cir)
n(cuit)k(which)e(implements)f(the)h(follo)m(wing.)46
b(Elegant)27 b(answ)o(ers)e(\(i.e)n(.)44 b(simple)317
232 y(ones\))21 b(r)n(eceive)f(mor)n(e)h(cr)n(edit.)27
b(H)m(o)m(w)o(ever)-5 b(,)20 b(any)g(v)o(alid)i(answ)o(ers)d(will)j
(get)f(some)f(cr)n(edit.)p 1326 402 1507 4 v 1324 515
4 113 v 1375 481 a Fj(x)1427 495 y Fi(3)p 1515 515 V
1566 481 a Fj(x)1618 495 y Fi(2)p 1706 515 V 1757 481
a Fj(x)1809 495 y Fi(1)p 1897 515 V 1948 481 a Fj(x)2000
495 y Fi(0)p 2088 515 V 2105 515 V 2156 481 a Fj(z)2198
495 y Fi(3)p 2286 515 V 2337 481 a Fj(z)2379 495 y Fi(2)p
2467 515 V 2519 481 a Fj(z)2561 495 y Fi(1)p 2649 515
V 2700 481 a Fj(z)2742 495 y Fi(0)p 2830 515 V 1326 518
1507 4 v 1324 631 4 113 v 1397 597 a Fm(0)p 1515 631
V 143 w(0)p 1706 631 V 143 w(0)p 1897 631 V 143 w(0)p
2088 631 V 2105 631 V 155 w(0)p 2286 631 V 133 w(0)p
2467 631 V 134 w(0)p 2649 631 V 133 w(0)p 2830 631 V
1324 744 V 1397 710 a(0)p 1515 744 V 143 w(0)p 1706 744
V 143 w(0)p 1897 744 V 143 w(1)p 2088 744 V 2105 744
V 155 w(1)p 2286 744 V 133 w(0)p 2467 744 V 134 w(0)p
2649 744 V 133 w(0)p 2830 744 V 1324 857 V 1397 823 a(0)p
1515 857 V 143 w(0)p 1706 857 V 143 w(1)p 1897 857 V
143 w(0)p 2088 857 V 2105 857 V 155 w(0)p 2286 857 V
133 w(1)p 2467 857 V 134 w(0)p 2649 857 V 133 w(0)p 2830
857 V 1324 970 V 1397 936 a(0)p 1515 970 V 143 w(0)p
1706 970 V 143 w(1)p 1897 970 V 143 w(1)p 2088 970 V
2105 970 V 155 w(1)p 2286 970 V 133 w(1)p 2467 970 V
134 w(0)p 2649 970 V 133 w(0)p 2830 970 V 1326 973 1507
4 v 1324 1086 4 113 v 1397 1052 a(0)p 1515 1086 V 143
w(1)p 1706 1086 V 143 w(0)p 1897 1086 V 143 w(0)p 2088
1086 V 2105 1086 V 155 w(0)p 2286 1086 V 133 w(0)p 2467
1086 V 134 w(0)p 2649 1086 V 133 w(1)p 2830 1086 V 1324
1199 V 1397 1165 a(0)p 1515 1199 V 143 w(1)p 1706 1199
V 143 w(0)p 1897 1199 V 143 w(1)p 2088 1199 V 2105 1199
V 155 w(1)p 2286 1199 V 133 w(0)p 2467 1199 V 134 w(0)p
2649 1199 V 133 w(1)p 2830 1199 V 1324 1312 V 1397 1278
a(0)p 1515 1312 V 143 w(1)p 1706 1312 V 143 w(1)p 1897
1312 V 143 w(0)p 2088 1312 V 2105 1312 V 155 w(0)p 2286
1312 V 133 w(1)p 2467 1312 V 134 w(0)p 2649 1312 V 133
w(1)p 2830 1312 V 1324 1425 V 1397 1391 a(0)p 1515 1425
V 143 w(1)p 1706 1425 V 143 w(1)p 1897 1425 V 143 w(1)p
2088 1425 V 2105 1425 V 155 w(1)p 2286 1425 V 133 w(1)p
2467 1425 V 134 w(0)p 2649 1425 V 133 w(1)p 2830 1425
V 1326 1428 1507 4 v 1324 1541 4 113 v 1397 1507 a(1)p
1515 1541 V 143 w(0)p 1706 1541 V 143 w(0)p 1897 1541
V 143 w(0)p 2088 1541 V 2105 1541 V 155 w(0)p 2286 1541
V 133 w(0)p 2467 1541 V 134 w(1)p 2649 1541 V 133 w(0)p
2830 1541 V 1324 1654 V 1397 1620 a(1)p 1515 1654 V 143
w(0)p 1706 1654 V 143 w(0)p 1897 1654 V 143 w(1)p 2088
1654 V 2105 1654 V 155 w(1)p 2286 1654 V 133 w(0)p 2467
1654 V 134 w(1)p 2649 1654 V 133 w(0)p 2830 1654 V 1324
1767 V 1397 1733 a(1)p 1515 1767 V 143 w(0)p 1706 1767
V 143 w(1)p 1897 1767 V 143 w(0)p 2088 1767 V 2105 1767
V 155 w(0)p 2286 1767 V 133 w(1)p 2467 1767 V 134 w(1)p
2649 1767 V 133 w(0)p 2830 1767 V 1324 1880 V 1397 1846
a(1)p 1515 1880 V 143 w(0)p 1706 1880 V 143 w(1)p 1897
1880 V 143 w(1)p 2088 1880 V 2105 1880 V 155 w(1)p 2286
1880 V 133 w(1)p 2467 1880 V 134 w(1)p 2649 1880 V 133
w(0)p 2830 1880 V 1326 1883 1507 4 v 1324 1996 4 113
v 1397 1962 a(1)p 1515 1996 V 143 w(1)p 1706 1996 V 143
w(0)p 1897 1996 V 143 w(0)p 2088 1996 V 2105 1996 V 155
w(0)p 2286 1996 V 133 w(0)p 2467 1996 V 134 w(1)p 2649
1996 V 133 w(1)p 2830 1996 V 1324 2109 V 1397 2075 a(1)p
1515 2109 V 143 w(1)p 1706 2109 V 143 w(0)p 1897 2109
V 143 w(1)p 2088 2109 V 2105 2109 V 155 w(1)p 2286 2109
V 133 w(0)p 2467 2109 V 134 w(1)p 2649 2109 V 133 w(1)p
2830 2109 V 1324 2222 V 1397 2188 a(1)p 1515 2222 V 143
w(1)p 1706 2222 V 143 w(1)p 1897 2222 V 143 w(0)p 2088
2222 V 2105 2222 V 155 w(0)p 2286 2222 V 133 w(1)p 2467
2222 V 134 w(1)p 2649 2222 V 133 w(1)p 2830 2222 V 1324
2335 V 1397 2301 a(1)p 1515 2335 V 143 w(1)p 1706 2335
V 143 w(1)p 1897 2335 V 143 w(1)p 2088 2335 V 2105 2335
V 155 w(1)p 2286 2335 V 133 w(1)p 2467 2335 V 134 w(1)p
2649 2335 V 133 w(1)p 2830 2335 V 1326 2338 1507 4 v
317 2551 a(Clearly)c(label)g(inputs)h(\(b)n(y)e(cir)n(cling)j(them\))e
(and)g(outputs)g(\(b)n(y)g(bo)n(xing\).)26 b(Y)-8 b(ou)16
b(can)f(use)g(any)h(par)q(t/gate)317 2664 y(y)o(ou)22
b(wish.)1917 5497 y(18)p eop
%%Page: 19 19
19 18 bop 90 119 a Fn(C3)45 b Fm(\(10)21 b(pts\))f(F)m(or)h(a)f(carr)r
(y)g(lookahead)h(adder)-5 b(,)20 b(what)h(ar)n(e)f(the)h(gener)o(al)f
(for)q(mulas)h(for)q(:)317 331 y Fn(\(a\))47 b Fj(g)522
345 y Fh(i)571 331 y Fm(and)20 b Fj(p)795 345 y Fh(i)317
1186 y Fn(\(b\))46 b Fm(B)o(r)q(ie\003y)21 b(explain)g(what)f
Fj(g)1362 1200 y Fh(i)1411 1186 y Fm(and)h Fj(p)1636
1200 y Fh(i)1684 1186 y Fm(r)n(efer)g(to)g(\(not)h(just)f(the)f(names)o
(,)g(but)h(the)g(purpose\).)317 2750 y Fn(\(c\))46 b
Fm(Assume)19 b(y)o(ou)j(ar)n(e)e(adding)i(two)f(4-bit)g(numbers)1791
2954 y Fj(a)1839 2968 y Fi(3)1879 2954 y Fj(a)1927 2968
y Fi(2)1966 2954 y Fj(a)2014 2968 y Fi(1)2054 2954 y
Fj(a)2102 2968 y Fi(0)2161 2954 y Fg(+)f Fj(b)2291 2968
y Fi(3)2331 2954 y Fj(b)2370 2968 y Fi(2)2409 2954 y
Fj(b)2448 2968 y Fi(1)2488 2954 y Fj(b)2527 2968 y Fi(0)517
3158 y Fm(and)g Fj(c)734 3172 y Fi(0)792 3158 y Fm(is)g(the)f(carr)r(y)
m(-in)h(to)f(the)h(least)e(signi\002cant)j(bit)f(\(nor)q(mally)-8
b(,)21 b(a)d(r)q(ipple-carr)r(y)i(adder)g(has)517 3271
y(no)h(carr)r(y)m(-in)h(to)f(the)f(LSB)n(,)h(but)g(pr)n(etend)g(y)o(ou)
h(have)d(a)h(full)h(adder)g(adding)h(the)f(LSB\).)517
3401 y(W)l(r)q(ite)26 b(a)e(for)q(mula)h(for)h Fj(c)1371
3415 y Fi(2)1436 3401 y Fm(for)f(a)f(carr)r(y)m(-lookahead)h(adder)-5
b(,)26 b(using)g(only)g(the)f(follo)m(wing)i(v)o(ar)q(i-)517
3514 y(ables:)e Fj(c)819 3528 y Fi(0)859 3514 y Fj(;)15
b(a)947 3528 y Fi(3)987 3514 y Fj(;)g(a)1075 3528 y Fi(2)1115
3514 y Fj(;)g(a)1203 3528 y Fi(1)1243 3514 y Fj(;)g(a)1331
3528 y Fi(0)1371 3514 y Fj(;)g(b)1450 3528 y Fi(3)1490
3514 y Fj(;)g(b)1569 3528 y Fi(2)1608 3514 y Fj(;)g(b)1687
3528 y Fi(1)1727 3514 y Fj(;)g(b)1806 3528 y Fi(0)1846
3514 y Fm(.)26 b(N)m(ot)21 b(all)g(v)o(ar)q(iables)f(need)h(to)g
(appear)f(in)h(the)g(for)q(mula.)1917 5497 y(19)p eop
%%Page: 20 20
20 19 bop 90 119 a Fn(C4)45 b Fm(\(10)20 b(pts\))h(D)o(r)o(ool)g(K)q
(itty)g(is)f(a)g(kitty)h(that)f(dr)o(ools)i(so)f(much,)f(that)h(she)e
(needs)h(a)g(to)m(w)o(el)i(to)e(sop)h(it)g(up)l(.)26
b(S)o(he)317 232 y(also)e(lo)m(ves)g(cir)n(cuit)i(pr)o(oblems)n(.)38
b(S)o(he)24 b(ar)o(gues)h(that)f(another)h(way)e(of)i(per)q(for)q(ming)
g(two)-6 b(')c(s)25 b(comple-)317 345 y(ment)k(oper)o(ation)h(is)e(to)h
(subtr)o(act)g(1,)h(and)f(\003ip)g(bits)g(\(the)f(usual)g(way)g(is)g
(to)h(\003ip)g(bits)g(and)g(add)f(1\))317 458 y(wher)n(e)e(subtr)o(act)
h(1)f(may)g(wr)o(ap)g(ar)o(ound)i(\(thus)e(0000)h(-)e(1)i(r)n(esults)f
(in)h(1111,)h(for)f(4)f(bits\).)43 b(I)n(s)26 b(D)o(r)o(ool)317
571 y(K)q(itty)21 b(corr)n(ect?)317 721 y(I)o(f)c(so)l(,)h(pr)o(o)m
(vide)g(a)e(mathematical)h(ar)o(gument.)25 b(T)-9 b(o)17
b(do)g(so)l(,)h(use)e(facts)g(about)h(function)h(composition)317
834 y(and)k(function)i(inverses)o(,)d(and)h(also)g(check)f(boundar)r(y)
i(cases)d(\(what)h(happens)h(near)g(all)f(0')-10 b(s)22
b(or)h(all)317 947 y(1')-10 b(s\).)317 1097 y(I)o(f)22
b(not,)g(der)q(ive)f(a)g(counter)n(example)h(wher)n(e)f(this)h(fails)n
(.)27 b(Y)-8 b(ou)22 b(should)h(assume)c(that)j(the)f(oper)o(ation)317
1210 y(applies)g(to)g Fj(k)j Fm(bit)d(numbers)g(wher)n(e)g
Fj(k)28 b Fl(\025)d Fg(2)p Fm(.)1917 5497 y(20)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF
fs/www/class/fall2002/cmsc311-0101/Exam/ex2.soln.ps 0100664 0000773 0001744 00000440310 07576743023 017344 0 ustar cmsc311 %!PS-Adobe-2.0
%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
%%Title: ex2.soln.dvi
%%Pages: 8
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%DocumentFonts: Utopia-Bold Utopia-Regular Utopia-Italic
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips ex2.soln.dvi
%DVIPSParameters: dpi=600, compressed
%DVIPSSource: TeX output 2002.12.14:1859
%%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: 8r.enc
% @@psencodingfile@{
% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
% version = "0.6",
% date = "1 July 1998",
% filename = "8r.enc",
% email = "tex-fonts@@tug.org",
% docstring = "Encoding for TrueType or Type 1 fonts
% to be used with TeX."
% @}
%
% Idea is to have all the characters normally included in Type 1 fonts
% available for typesetting. This is effectively the characters in Adobe
% Standard Encoding + ISO Latin 1 + extra characters from Lucida.
%
% Character code assignments were made as follows:
%
% (1) the Windows ANSI characters are almost all in their Windows ANSI
% positions, because some Windows users cannot easily reencode the
% fonts, and it makes no difference on other systems. The only Windows
% ANSI characters not available are those that make no sense for
% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
% (173). quotesingle and grave are moved just because it's such an
% irritation not having them in TeX positions.
%
% (2) Remaining characters are assigned arbitrarily to the lower part
% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
%
% (3) Y&Y Lucida Bright includes some extra text characters; in the
% hopes that other PostScript fonts, perhaps created for public
% consumption, will include them, they are included starting at 0x12.
%
% (4) Remaining positions left undefined are for use in (hopefully)
% upward-compatible revisions, if someday more characters are generally
% available.
%
% (5) hyphen appears twice for compatibility with both
% ASCII and Windows.
%
/TeXBase1Encoding [
% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
/.notdef /dotaccent /fi /fl
/fraction /hungarumlaut /Lslash /lslash
/ogonek /ring /.notdef
/breve /minus /.notdef
% These are the only two remaining unencoded characters, so may as
% well include them.
/Zcaron /zcaron
% 0x10
/caron /dotlessi
% (unusual TeX characters available in, e.g., Lucida Bright)
/dotlessj /ff /ffi /ffl
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
% very contentious; it's so painful not having quoteleft and quoteright
% at 96 and 145 that we move the things normally found there to here.
/grave /quotesingle
% 0x20 (ASCII begins)
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
% 0x30
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
% 0x40
/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
% 0x50
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
% 0x60
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
% 0x70
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde
/.notdef % rubout; ASCII ends
% 0x80
/.notdef /.notdef /quotesinglbase /florin
/quotedblbase /ellipsis /dagger /daggerdbl
/circumflex /perthousand /Scaron /guilsinglleft
/OE /.notdef /.notdef /.notdef
% 0x90
/.notdef /.notdef /.notdef /quotedblleft
/quotedblright /bullet /endash /emdash
/tilde /trademark /scaron /guilsinglright
/oe /.notdef /.notdef /Ydieresis
% 0xA0
/.notdef % nobreakspace
/exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot
/hyphen % Y&Y (also at 45); Windows' softhyphen
/registered
/macron
% 0xD0
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
% 0xC0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
% 0xD0
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
% 0xE0
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
% 0xF0
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis
] def
%%EndProcSet
%%BeginProcSet: texps.pro
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub
dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict
end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{
dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1
roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def
dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}
if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}
def 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
%%BeginFont: Utopia-Italic
%!PS-AdobeFont-1.0: Utopia-Italic 001.001
%%CreationDate: Wed Oct 2 18:58:18 1991
%%VMusage: 34122 41014
%% Utopia is a registered trademark of Adobe Systems Incorporated.
11 dict begin
/FontInfo 10 dict dup begin
/version (001.001) readonly def
/Notice (Copyright (c) 1989, 1991 Adobe Systems Incorporated. All Rights Reserved.Utopia is a registered trademark of Adobe Systems Incorporated.) readonly def
/FullName (Utopia Italic) readonly def
/FamilyName (Utopia) readonly def
/Weight (Regular) readonly def
/ItalicAngle -13 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
end readonly def
/FontName /Utopia-Italic def
/Encoding StandardEncoding def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/UniqueXX 36549 def
/FontBBox{-166 -250 1205 890}readonly def
currentdict end
currentfile eexec
a9994c496574b9cb23f8cbcd64a4a16861c70f0f2da82f0c7b06ceacd6521bb0
cc26f1cf47836cbab75757d7a81793f43e56cc8f22f926da04d715ab6ff2e257
5a135dabbaaa58f31f548cbe8a76c69e2402589b9e5e46e757f06bf2eddbbe6e
e48a624cbe1c4840a338e90f7efbe9f2194aee1c869bc4cd76e2f1937d78e207
d8149c05b50ef0bb361f5905977c40be7d4dad07b54e087896acda5aa70ab803
9dfc55a73134c7f1c9be9028d3ec6ccb0fbb8fda52bba4d7551a8124e68481d0
775ed7f8ec68d8073bfdd3b67f72ec68634ffc57727e16b9aba841546ae54d99
b60e227682315510edda09bd6ead4d1652f449d737592c44bb178689a3840169
53d899636686efc6f838b19f966be5f833f5e7d41af38a899df96fdce1ebc116
9b0ec87c930d9fdcbab7e74880e9693a24de9c67dbb0dd75b3dbd113b079c490
60018433ccc06ac1df33fc090c4642fd5225fa0a188c131974ca8820319704dd
14b1719b958779d1475d92e712322eb2e6a79d652c4e3f5833aca3091675fef3
fde103446e565428267b009d87bb7d6bc40f46b498b19bf1223aba33079e41ba
a9561254a9df97a48d71015b6a24cf952539f664f172d565f39a55e063154d80
a960cd56c34011fe26e8849c6677427b2c7e728cd16272363d76661b3ab8bb2c
85c20b747519a4431421d4c83783feb896c45688ff7f824381cff5654a1bfc68
6f4894e1d265455fc00064d08c37dc3a47b59a5b2d14dd893a2b871492b07c4a
591695c8df012ef46a750d6cb7fd86696e7ead280648bd737e9ea490140f3b1b
1dffab2ff8e085a8b1c78e4b9ae9cee277a29233cec5ab2588d1cdaf4bbb6512
e1b1476c68fd3db18ecc2536968ebebf4333c2c3709ca354f21fffc38c3858c0
561378a701158ed0201a3b236ca9cb7f7528d1e5e07a9bfab04f8d0fa3d12405
5ba2fa9dff76f41b980bfb36e8db1300f7172c902dcb9f5f0bba3cb9c212bf31
76cb802ddebe556f4610021fa3700d476a2be2a66ae6c658fd0a95bc1b9629ad
03fe4e775ffdfa9f87a274fd904c0db5beae258f9af213f257db2be0265b964a
681fc4d2855f5356fc87576d847db274fed9ca5bb4961ffcf53f28b673f50e31
c3c634604e718b7666b466557f4f6bb6239339e028de3909dc47cd634205ddd4
69a944f11883dbf89344c43c513c35ae966a37a89795177b9fa95f3713e4d48c
379e33ffebb1bbc92521cefdc36e4cf5265d28522cb874b9e8459abfa31effa0
e0dc4d34692fbeeeecea87355dbde65528d1f76b89c4b5885e3d70b3ed028f5a
0510fa7044cbe74a030a9bf06c592dc447f9ed889988e7ad42cee85d5c3687a2
1d78ff32ab9f4cc829e7119f3d144ab2c78da8230df854cf4a690b27d715174f
dc062ff41776f719877cd8f2d5fa97fe8386526b7c68d2010b18d5601411df5c
6bb2fa4478247d813a7ae7df2ac4f95cfbaa4f11554df62f91bb1eb8b694508a
a468968a2f087829344935a46a60f55b527d2dd1a1a29587729802eb35028b31
b8477855308c3b70d746b55b7fb1c9effbc6a869f27a6ff0a1c7c2f467e04c93
ef72d192f98b065e80530e90124905fc5c4e89e94366f8f89395bb24acdd65ee
069203d5c8459dff96f2e1be24c31ce8632877966398c96694adefbd2dff904c
be1024f5f3a495e37371800db04aa69e051ca111fbcd9d62cdb0e28e804a3387
b3d8c937da320b0848be91cc8f71fc7760acec18ae2a2783a9b5fe80fb87ebea
2571b27ae34b4102008c666a61455dcdb672573cebd92d691ecd038635270b07
c71d0be53defe487b457a2df3496000e9d3fb5ef4d74a4a0aaa0d8013e0ba409
d5d9f03f146676bfc1b254199905d49822f29065f3e78724869b9dae84853e6d
899432d5dab547ef4790203f507bfed6ea55f2d2066402f999d739fcfd87134a
5df0566e52e62704090f9e1acda51325f0b6d807a9419cc1994f455084e350f5
853c0f4f93b72132ae77c8012fa97c918e8adf0d346f8434ec45803be4d824e2
8cb066c83e70f384f4303d0a93aea65004bc9e50101e74c10b2b5b468d082d84
6d8fcc3241bf8be128dee175a3db270994f122a48c573d71691a396c4ec716b8
6b6b5a1ef9e9e7cef0698075a5b6bf65754f2ef115b8b185aa9330973c46c7e6
8e2800b87193fe0f5665729acc0b583baf0c5777a124e0e4ed81e544ecff45db
ce9075b502e24a8a431e5d5e68db5e4b07d018a7bbf2d44673044946e68e3104
98445196abc6da7260b6b71fcce3cd52c11dd59e9ee069c38430e9f5e5256940
0fa41d1a7215a0bd4fc0de045b93cb8534d7de615d1942b4777a0ceaef90ddca
fa8fe3a45b4f90735b5feb5278810fc4dee20a86ad85b58bc49f703b0f4f9b36
f7e02884ca73b55b5d095d7565106c780b79bc7372d1c0a391fdedc8ba24d285
e960d4903b2cdda218a6bd2e4289e782bb4b84660e05a618b6c565fa189f538d
e13074b8bdfbe4dab969d0786ea1c995a57b297f09d19c6459927e9078f59b45
a50095cf665cb550ec9bd0420a1e2bfcca694d08bb2fd96a0fc3e906671c277a
c9854bcb1e57acc0e4b8c9151653c4b584b542983067ef6ee2c2157afc8fd8b1
79a20c22acf63ed93477047cc8f9d12849f988ccd902506d002514671fbe449f
4ebcac340a4cacdc027562af0ffc7da708b15240411b2304528d02b92a735535
9573d48896d3e122ecd06b390c02b36f73499f307f6b1ace990e62666f6491aa
02a9725d40dfbb64e9895dea7d909688394904dfc74a57392f802611b60da3cb
c9f3376070c069780e8491439d213641f93bf9817c5acdd13fef1a2d4860fea8
bad0f29e183c2fec29289886ee01fe5d5d6f706aace6437740e05c4e69de894f
a20905920512f25a1f8185f32b50d69239c9b660518c4eb712d8e55edfdb9163
b2b2dea4f7969e08e7b52681c7ccb9f9f4499a937252abaf27690173cde6b242
767631b8a0cc7f3bcd1ddfd8ae8f680d68ca7127084d024fa6308ed2a433e9e0
6881547064b2857a40cb97b66681596bbbfc65925229f58e8dcdf9e999c81145
2f66d243dc0167b40150c335702c95e065fe3f9fa828f47b9cc92746dbce42df
949a37092ba12599104c6df74637d59126f9ead2550500011890b35ab533fab3
ed8e7fe1c99486ab9f91b1c5ca1c1232850e2e1100316e6e6fbf584d650eb2ca
96f05fecb54cc854510b634ddb5a64539bf3d7bfc5fc1ed2bbfd584e1e8fe7f5
4c1a00ded6dc703a9fade378e37ca2dfa1ad0fd391cc99cb1581ce6a152e9a2d
96030c87e2374b08da1dc5b6e47fa0d73616c81279d2a14324664612d149f4b7
8b884922f1a0566eda521925bd4fdafcd00dced8eccb9224e772f5ccd7d9d755
c8dd53f4f0910953c7049c864aafc0865829ab41c402f8e95001169f254de195
20478cf85f890bc138ab6df8c9d5663d50ecdb32c37a71f3b07aa2e0c9a8e458
5ef10286c4adc4637f79c8a85b0d6967f6608de277be876004424809a9325510
e81de9baf442fe2aaef4df5ff8a3c58818d88283b5349ba5261361a4bd81743c
1a3ca9699b79d5cad864a5c151efde0f4f080ab91817aac00759097fd96c714b
557519d79a2cc313b89e199b7e1abe5588de0c6fdfaa24b2dca722b23339ca98
740a5b8b2f4be4d4e048453c712cc17e764991b59e1e22b91ab1df9f22a384ab
058908f24ac8bac3a902317322bb2ad7035091e075efc78346eec07baaf127a7
07f2167974d9e2895c39e3a5e7950755eed7ab25180e3e34afe3bac77f7d4e43
164c1150f55e03054bc8df1d1a6303624013350eda1a58afdd99fb871c4e5f63
a7629ddfea6aaf0a1a757e8844d144312e1be0fca47928d272674bc346f2a1d5
6aefc482bf8bc199cb01eb0c8e322b00376de5f22724a53272b8d2c829becf05
cdf4220a6d3b31484ad2964eeb1beca229a8ac2e8d441c5a1ba49a6eeab4c2d1
ea126ce805361c03564e125335dcd4843a43a5fa83d5fa6a12cf43350a0a9c2e
b1f6f7781ce58bc0e86aff145fd8ff5b6b524892d7a7125b393c4869bb71b709
4c511e5cbf44856f3d541c0eeace929bf3f6a6ab1c5f5da5c53bd030159f2349
55ce14bb34691751626a4d5ee55b3467298810a33161a33d6e6c200e52c1e83d
2fa04b6b70376530ae4a1f65795a2a3b164746270da0a1336ff841e014f47811
923f9f6bf061ca0ffe2a0e4e18fbd831387223ffb8a65461e2a710f400519490
ac3132f8ff8191b5bc3b7d481c46c6cdc760cfb137c8b6570c957e8ed62090a4
6d3d894746a399c1764837f3c7ea4dd66c7918df9eb5d82b422cf2d41771145c
ee425daf0ff64103f9ac0de4f87dccb9b0474fd11e231dc872d13d5973120c7e
cb431e3d567b7d0eeceb3daa73504d01d5c5cdd64534
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: Utopia-Bold
%!PS-AdobeFont-1.0: Utopia-Bold 001.001
%%CreationDate: Wed Oct 2 18:24:56 1991
%%VMusage: 33079 39971
%% Utopia is a registered trademark of Adobe Systems Incorporated.
11 dict begin
/FontInfo 10 dict dup begin
/version (001.001) readonly def
/Notice (Copyright (c) 1989, 1991 Adobe Systems Incorporated. All Rights Reserved.Utopia is a registered trademark of Adobe Systems Incorporated.) readonly def
/FullName (Utopia Bold) readonly def
/FamilyName (Utopia) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
end readonly def
/FontName /Utopia-Bold def
/Encoding StandardEncoding def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/UniqueXX 36543 def
/FontBBox{-155 -250 1249 916}readonly def
currentdict end
currentfile eexec
f9cd86fd4821715265f16a614e3770ef80561e77ba6ecbb4ef4232445eef2839
94e93e3c8c9b09c09d71542241821e07888ceb54e8cacc8a45802f50c0afeeca
5e3d9114c1860bcb2ba5fd2a879a0d79953e30c90d8347513f4ca5f05b2e231b
4973bd1e9db66a39d846a8b3d9e48da72e2de8743ba2e104893167c235719245
87b43ed3b6552cd85e4bbdeb9f46bd813298d531c74be81995a52ceaad4112c7
f65773b088bffbc9874f615371c5e7b50ae99d5b6acf9c80d87057bf3a424377
f4284b7232096b6ea623dacd1c925ce09cfa6515f675aacf815c38e984b4ba40
0d409bb62cd4ebac75201c8e782e68fd73e8622c46b696b1ba37ca9621400041
d95b948a6bbc089fe6b230b39bd358228af9b3e68418166a9adc4e7665341088
c47c074aa4b21b0949fef9929e1a32ffddd2d02145cdb256863cf6067d27ed9a
f0aba85b1e0cfcbab7e74880e9693b5626ad31e6b5c2d208087d86c116513212
710c9d6ca50e1503f8d4c2863fa378f8184189af0cf109f4affe7cb74563d513
2104fb9dc6f3f5992e075633a0baebda8ebe9a07c3ec4b25fef015d9915a26b1
d401a6722015090672714181580350560caf79bccd6040c0c1651d917c73107c
2d46aad5d4a370b55e896ce1eed127b6f0aabaf7c4ca62e89003032abb2c95ba
58c4a0eb0bb1a59a439a6a0c2082e50725b9e8139324af06ff03b4269a697342
8fab0c1fabd320f1452d9c435e48037eb8cf6df4233cd9c05691604146cc813f
7ea131f21e9863b7bd1b087a583af14675b9bd31fd364d5dbddbc9b533a6ac38
c4bdeb28a1ae3d2b374da72405acf67b1b3a83d80726301b3677c067c748d857
ae1da4f723d4365647de10f90e96dd7e9ab9ef5c7e6866a13b807fd3f78136d5
72950a10bb0165e61f12c60a813c7e35eeb9a0500725dd912ca2deebb238538e
790af851b14643f40e5eea13660e57b5c407735079a292a7c162dd11d0a3d342
67290f1c9261fa5de6b92ca1e7daeb7cb970c766b3e0396ec0ce55dffbef0bdc
b437fbb4d63634b9abcf5844e76f9313ab2182e1fb3c47a705a1d97b79e93dbc
5e48ac19b45f9be4b9225e5a7e1d3679dd21001eca3c08d6febd35fa5453290e
1269c1d195e45338c10aa60fb8ab9e5a5aaf08c82e737f082bb6216d7cc1d5d8
8906c8b05c4432d04561377438447eb5fade652af84c1ced99551365cf9e6f99
03d1593de0e450003fb0d5b5588330d6527fdd0c8193fc0cd2293012310a425e
0ea0f8b901b991648ebbc894cfb7d95da6d35fb7c947e887bd3b6599e673b921
c96f2a033e30b341a14066076ff0abd5fe77f393b548a15ea2185f99a3545b01
dada854fce1ddd3448a9aa42ba260a4f85a0d1bdcf08b3de2ff8b6411adff446
4a2929193ade35f4e26006cfdc45929250bb76ef007043d739d798a4973f350f
52fa1690423381539e3a4cc458600fed91fa8e16b5ae0aca710dbf318d16e3d9
16a082a093b59f35ff92a1b235d5621e87ab471310ca26a9a30c2658e23e0f19
43110f9b24e2c8f1d05824c69aa9890c3b0af143da3ff2d3eeb301f7324f2f16
4e47a05f72acc15acea8a91b9d085a7de2e7e45493f53f32b22d365aca7ea6e0
70c6ad4feda1cde417b48fe4a864ac9af989f30632a9cff5545573d9c7d16016
d450f21f22a028d4e5d1d50a0834adb4c7cf0424f686a3678ddcddcb30d96a4e
45b982881b7173c1a3ff8cb839e56c10a3055f1626d8d5662a85edb80ec110ad
8eeadcfe212e10c139c86094ef0c3fd239cee5c9ea9727cfb94e671fedeeaed5
ead00e015f8783a4adfa28b7b2d8982e7c6fcceb028a18bcbb7f83b44ad4a898
c0bcc2aae1f109ea4ab0de19c4163d7c81e9de2fc6d003a29e2d8c83fb852a2f
2adb57a70ba5356470bdee40c3fd1612bd651f77a2a4dfb7e62bfd224eb2e1a9
978bf52b974d81e7d4f6b661885a88d8892c66182d8cfd1950c290d1485a78b5
59f7e546cc648d521d310ea176ab0bf669b60a915837a3b800c5b86b1295193b
161de7a268c3b8a12272e964b88b94cadc0ca8a94781347a8623dd1e4a481a60
2cfa2f764009699d69f4e8fdcaa46c4238b89bec4eb5eb490f15e6be942af742
1a8f2f0f873f5e5e49af9c33992e878dbd5e0d04cb1d086b719226f5836d52de
897147c588ec54bee42e887a2c94a864fe997b82d0045a92c35a7b157a379903
9adf336e3cb280d18f70784afceca4946dfef7f6c2fab3fd9eb4612fb0a6b3fd
17f24aea9bfa21f1cb8a5f93239d7489a183f6f4ab30bb54dda79888b30bd658
116c1efa020d27dc30df7a00265705414017911ee7809a135150a3db3333b694
b491f9fcf49812eafce4e327cd09e6ac38b554339d7a45d036b35627c8fc2996
dfe38a1cc4f9c9687410127d9f101540b9c3ac1541ac45f9609f1f540bc3aaab
4e11543508fb57856bc7fa12ea7faec327121f905c5dda2cfa2676ce5d0c8202
7361c63083cc9eb79ff4c75b0aafc82417c417830356687088b9e36e6cd12016
975e426cb81bae9d99a0bb01c373b44cd6bc7397b07502da72de33e79351c83b
02cb02a1e207a552ff6801bf8aef428c60a939c188879113f3ff32a05be0e152
6f9d02f277e8648997e867582a1428333976725ca92957ea91a468785a3fb888
ea36ad46c835ce2e38af00d754f949f81619991b74fd6c5b2902391342f9af7b
6bad0458e2756aee5b990521540542e9ab7ac46137214bcf839d0513638c3a81
f34b273524eb751bde576f582f60f9a80253407db13e1edc5cf1b391c9cfede1
5cad407129afc4bfc29fc4915d8c343010faf8e5aff34520c6b9328f06cf0133
e72755b76622b9a7bccfdea77cf885b8d074a7642d5e37cd30dea42e6b8b101a
ee736d19297a9385c75704437142b49ecaf223cea5c7ca7f4a08962f5ccb6a61
0d706025948f83e026509dbb461e5d072e39d4128c54e5043a5fad603c6b755a
b001ac322364fd770e958be6b82932426f0c0d960075b607acc7a1280cc3933a
a11d170c7f5f5ab7ff020eb554e4d05a01e8f85c95571926e6d17ccd059182aa
b2c7565986af227f05997d9432f648b17fc862ce8d89714b02c0f494b3445461
7c289cc5c18f083fb154d872c0aca526c919b4680b488ece138729d235fe8156
c37562c4d6c97e919d70cc66c97b07e3ce46c111d85b2a2224fc3bc63bf9de0b
e92225726e9e4019e1c7b6254132f42e80777ec37c9beb64184a3e8092a0eadf
560354289d32bff146bdd9df2281fa4a0ddceca02de9c518558c4969947e84f8
6c33cfa97b8fb0a3ee9c98ce5d51dce7633393d405b43e9b33ac9e735d2b6e91
6ab218149d0732db5bcfcd29ef7971f60058205576171868c5ed5b32623fc67c
a40e705e8c2d755943b594ff25cdac1fb7eb4bebd86676af19976338e00cab87
f573a662c1c6acc7a53777b6881c56f3e46db908bcf1d8fd89933ebce14018b5
77713dd33f0fff751f53f87c5df854c8f1697361c63083cc9eba23861f99aaab
6333a2e81b454745e003cfa8021258da9762cba939ecd8418f410a6c133dfd86
92b4042e45025f9f9b7c7f0c2d750e2ccb8b3d7575bd954667292328e8c195ab
8729200b78b70a90c1c4f9c0f7d782849cc5bf3bde01269bc9d41488444532ab
246952717689d34070de6ae0ce3a655e8fe20a7e3711ec0d11ce8184747e3074
3692d0d52a27e42bc387628bc6efe8ae01673b14725adad3db820a8fd0ecee05
3e511a62d7bdb1472dafef4412f2b4c47652c8f79c926ad2ff47499ccfa658eb
372ffb7069709bd5c0b7ac2b3a671c8c37c837c0847e82d68359bf8bce500a30
1de183fe07b150d25bfb11308b3a18b08c6c81ae47881a67eae6e9f9ffdea87d
ef6911a944ccdcef246b82a46b483ff79ae514356c6a19eb3f1bafc242d143f7
9cd95bc735a8ac6cc6cd83f690243b5d223dcd18748a0e01de527e0978da7adb
2a7be9033255c5071d3cb3f3117d9e9c0b9825b64ec0e92a0310dd612a2a0f80
ade73ce67048e1928fe05a4269d3f7cf57582dbd74aabf8fc76d2b2ba424f9fc
59588a538109cae93c4dd0494da2cdb6986de98b150937807fb9d4e1436998ac
f6082378c55efbb575fb986c03f30d8dddb1c3a97d85b7b2ceb45f58c60a4085
d1198d605a1846797b440fd0c45ffd36d8e8e5a72120e8b4dfcde7a0bb3f5c33
345babc73feda05c45211f0e565e5761e49ccdf16f90588990eb76171acf0f9f
c1c22092688d0df24c548763710641592871ab1c55c9efbff34685e21f5787e1
77e29598d06cef0753fa7b686e233cf44698ea174b3970f587f7c13b31ff3302
c606dcea7e5403d66877b1ffdcdf303c4a2096fb0b011e2e1da78e07af9734b0
a7d65b55b3491cf5024f86fd3d8209a6e1388e2162cd02ee75e9828e7750ffd4
0c82c6c0c0dffa3e16beb0311922b3aaa455176d85ae04fb970439b20072e114
d2a21e87bcc28ecd33031eb5df889dcb2e4966f2d7a853f6ddb9f0f9c3cdde73
4b8c2175b686923f1cd5c7ace1e4de1b4db648875da008873934025b8dd8346f
db1e99f8771a61d954add5c9e5a1298c3bd0263c6863263e45b1a8b09be299a5
0bf2b327ba8a39da0dea1aa5a534d1641469b141bfda8db9356aacfc1b155652
4c30fe22f94b48cb0606d628761820f4b02bd741b004197575d1051b4bab5eaf
5a20694336f1d076d5a243a0ec747e6995453b1924a69b0f0afa3fbdebfd13e8
ce2ad4d564d12516c1aa9449dfbeb2f2c34df9382fdee72e33fae348b71717ac
eb3015b1efffb3b305700375d7060ae8c3936ca4e514e49730d48c95c2ecbc13
58fb7e08360555ae3a72853c32ae464b04d993f81b3f1e5526884d99180e9827
9d48b65fdcd7cff41f9d46114f4a720b4bfef6721eba207efbe8efee595a77d3
e1ea2650ad33bdcb13dcfd647831c3c0d094fb0c5dc3ecc7785a6394fc1b1350
787f4400271d79ad29745fed8dcc7cbce78095f586a9a1de2c2a609dcf16c794
1618cb3e58e094f19758962c971a9b468c938beca2f777942ce429fb06994859
55c2d2e11054e9ed079605010f7e0a2e330828f785cbf9aeeb449c499fb69a52
bbcaa7cde30f82a452b04068d92071044048950ec8f3202cc0500fad1ae4339d
22538b61afcb8066cd465fd0ba21adeb8ec67c8e38716159be93fe884c505ea5
5006e9b2468083435a75b823d61c66f9a78800fa04e020f577b12873303febc5
27effa6607a0d7dc3d5bbb41ca6c98a1966409eba4f8e10de8589178d18a21f1
e0961b43cc7f5119b4f96e1159e0167bf481a45e05b0137d77d3c9b307a88289
92f5fc6b431eed670bbb972f9832fb40746c128836adc7d41e4315bd9e297ced
43f4f4a2d7c16938f3cc7dfce4d20d38ee95cbcee7b9d7d1d213d88573fc8049
19e0ef7250594c327de079b2d1835d906b3c9bea2819881b8b9b93bce879f7ae
485dbc266d6151c9f5a539bec4ffdf834def3709196fa2dcc246bf61b9f206b7
3eed893792082bdb26102d33751ac2fd706bd0ae01328dbf87f6d63f2e32bf51
53ad6621ef862fbf41bbfff2ea9b578a750b84cd22c79f7ccb61f65738d0415e
be9db4c239380e894a07cd7abdce8f05d8e0770dc22c7971c50f38a5b69fec51
53bf3151a881229736ddc42dda80440502029c50351c8bb991e042f73f7f2428
c48b80f5a99cc91b677de1f6031e500bb58d8958ae39e1f8bf5698ea83ecce06
ff1f1ef01f2a68b268dee18d51f273cce101e2338bde69fee33f7b2ada201abc
f4bf21cae8cfc77fc217d5e8a197af758971a4eb3045796c40f4fb725af04e19
fbae1edf59960ad187c5524fba13ea50b21ade06d0e285c7afe73632972adb50
975e6a823665521401a1afd3e3aee5f89f1bd9a314c95902c038d47ab0001c95
6ed1a9ac8c213266ac7bff3127d06844f78ebeeec079abcd3c91d9b67074e370
d725cff05e1f123c4a876ebcc64a3abe8388c3a87b3ae1cd95c6b61e8e2a6b6f
fde9fb653843839f95d74e29f1c8c209006c099c417d57ab9e97dac50e36222c
3d2c71b7be862289c04472e62905cbcf2673f719095518ad28263677077648ec
784e1c6b448eb4705c5eb2150c47c28a0906100ef06d27b26c143458031338c9
43cdf014f41fc588b316cb38f2b11d127c024841d98fab6ef074be3b06ce802a
311403ce084a1198cf3c9447e8a80004ce6de301b8ebc1b63d7b7a86e50e4c42
66b911060cfad257e62c8d9f2f62f3eaa0b6bd68eaf3e7704f39f656a5da01d0
0d410c8eac8da492dec78e45b9c33bc880e233fcdefcf4d158cc6d5a1dd406e7
bb0c84c59e6b4ca040b7557622f5376eaa65a35321e132e96efa50cf89fb7d7f
c3f7643302a5c2c0165c712fa63beffb56fa585365c658b79f71f348eebf31d4
be56f327f746a5310048c6d0c0f6733d6ced79ae848149311a59f362358be717
86975fa8654c9e0490814b78a78d7e55360b79e0ddbc30f67a7931f4e701825c
e7f6cada6a6b7d2ed845a580cb99932f9f71d65c24caab157f57799771ba63d3
a60ee3a0f0caa25675d0685f3433e3d1e0f6f2977d1799b46eaa124494e69d09
7583c7f285e45a5fc1003de18f86428c24b75c91132223fd13fbd1256c5c0c86
6f12c77b220c436402786dc26eff0c152639a5b2615d3e092862cb50be54c520
f44d3540e7abf8148d62df8af47ff8d66c3e068ec25b04f7db005eaa49fe3fd7
cdd091be2d2db38a4044c311fd82e8e080863ec996d555d843563b35d58e81a9
2f9f8ebf3ea6956c5716d1ed9c65f6e1b8de4a4a854aa0910b97de6d24e22640
0024e13f695cb7e90e097861d10514224164cd889cd65861a68fd6b9ba9abaec
f6b0c4786c4a144b48377373915e4b240256da19d83869efee35606773b6bf7e
23c2be298d528213e28a1408b7f7292c24ec87fb8a49b81f882c7ef104f9391e
51cab75129bfe07369f393a5839307ec60c47d566172663a94ff5486ad8bdd99
f9fada9dca6711fcc38cba25de653c7567885ec2b98d7cd6bff7ce4802c6a032
7d7deea1b492d1ca5379368774f76c6b41eed445653566eff6ded1d04d9fd271
6f791d1478a8018445d18373c549a90b4b126c1463f0bc0affaa3a10ad10d792
2a5285dbfb4879fd4fb42325e8347e90eaf14f9f0da069b55f11bac56d2b9899
50d464ffc7aabfb6382c8bd12f87280cd01fd40f64a26e6e486cafe072d9045f
ae68b472505296ca02143a3e89022306b9bf7000d9f191186242eb25ec7ac9b6
f035c55b21cefe0ff8f8656be8730662f307ed86c0d1d66c38a6dd576c7ae904
0dfdc858d7ff064da94cfdf9252023dda725954503d24b8e8e3803ac226bcb01
46fb11376d3d64d6510f72fef0bf64e6905dbb4c3c6e3b28faf98722bd5bf837
7ee616a45f2450b7b9cbf2cc3fb0de03a9e6baf41b816b29ae523941572c290e
2f8c1d5d598f6c87f7911a7cc03ca211080f9564377bcb8de727485ea970dac2
c44907ec46114194491168b65c6e114259f997b274890fb6442b568a00fb85ff
a9b0511f77b022fd0ae53bc6e841986c67201ac4bc751bb82f7aec217b171559
8c7fb32ff10c7e9c9e3ca2bbda9771b4d3d09386b72f91f8160aee29412b5fcb
35ccf7928d1e4e7184fc34fb51a15e5adc4436eafbf1e2b7a37970749a39cce7
57b49f463816b8dc9b702991f88b11e3e086d44a463171f973379e1e1ad5c4c9
f2de4ba2e2353ba51f4de765672fa091a42c00b3d2af5321888e3c47769efcb5
c9d08c6426b5b7f31ddc16cbaaa0bb6863eb97dad3b8089f01a080d9b3898d7e
cdc460562ab30b820f40247a0347ff213b5c391a83846fb92b496d7ef3750c46
ccbc36ae063f820c47d8a1a7b92e1368b5bdc0e848b78809f30f4ecaf9dc7005
8c9932462ccbd93e5e4ba2f03fa40c4a2eb6f6a1fd15998807d9219a915d2a8f
e89c7530fa7d9ce35213cb5580a9b982ee4abe6e1b7d30fa7a828b2daae2badb
3c2d5df648eeaffceda8956baa20c52a2622e4ee6e41a17b4c70bba2ba8472ea
49af7c2f6acae96bb8a00f051ea76b4d775369b78d50072fb9f7d54cef2c90c6
d9b61a4d881f3c190924fc21f12a01ebfd1bf8e231c0bb178b8eec6ed4123402
59c6ac44fc963f17f949ccbf1bbb627ddfc81bf76c29622f923f8afc4633d783
bcd133e773162601bb9048fc3a38f5cf71682b328703a8a1d2d6fa60e66d4637
08d59072bbf883067e057c3f3c4e21e6ad3df7b7ba6c66c4e1ce382a4e1bc69a
5bac4cad20ebc11fd57fdd194d3f0fae93509dbb3f8d37c19e1794b4edd4d0ea
9bc1e0c79d4e0a5167019fa3a60b39a4ab93afd1d55a7c9bf1dede9306a8e8e0
62d95e28267429f6326c4a75619d8927331e648bdad1b64a6f399a2e47dbf228
5085fcd5b47b535ece9bc77a2650b1086f9a2440201e428c092330487596bdb7
6565b821cac7b66277d8c4a18776d1455d26bd337c5cd5139772f8d2356ebffe
cdacb5e899818536b1be03172d5b4a35df644ca5e956056cf3cda000e1c7a440
523bb30a797f2669c3107d29099066fbaf6f8477c8725ee5a28368458c725d15
ace70dc9562ccc201444d28afd07029826ca2fe8ff731e9d3a812959fd67072e
32456322a94d473acaa95d67b1d69d5ef3357ff32384549adeea0bcf8d0b3eeb
82a7c866f2a8c832eb1dfc2601b356cee2cbb7aba20c26c73462725a9b60e9c4
c49bdd439656c032cd7d3c7c2fe81f03897de99431229cbe70bbfa7a98d44e3f
89f6c74ccc52e0ab134571c84d2a734b44ff2dfb491ea8a5ab881dd69b21c4c0
9b4eb651affdf4c04a1efdcda24140debc44f337d2b570be1b97fafd94681b37
6387bfe69e08c0a5cb8b15c01fff7d75202573a7761bca2f7c5f7ec6059343b9
8ef4cf7b176c109e459f01d3cd324f150e9f24549a7ccc8c2111288c56a4b98a
38ab5395fd8fb0f64592c48ac4ab9fbbcafa807db34c989c1a2b1662ff1e8efd
b35825779ec9868e5e031ee93ded06c7e309bf1c6f5486f57773c204c3dc4fac
bd910c494e0d787ebb992bdf6d3bfc3afcf753794878cca6a672bab0edee41d1
8c3454379962be6c8de632150d8b2b0c63f25858d3d0dd91b778672b60832c71
01ce9bc8ad3778e0702201220da3fd96b0eb4bebd86676af123d4e08965e4762
259feda4dc9213dde8adc04ce368f326bb95e0c51f53069710b3d8f3da24c0eb
98facc715af31c6456440ddb17584ae22bb73c749487135f67e6f01c4c5248bd
c1a3fb70b75d7569eced52197c12ad623c7690664e77b2c378955f06ac182d62
3f0e0da4208fd1484e3a700b3d8f011c19c8e1db2aded175ea9d8e0581c129b2
e663c7fc7c17163928f608ac9b2bf4a530dc11ef55f8c05aac5ca2501a63abfb
7f6c8cfbb4389ebffa1c460d83388aa5b12111568b21b6de287d54aa5a40f0c3
e4136f2a47349e908c94c31c9bd4371c63afb8046820ae1361c5e70549c4d4ce
138e3e7a9102b400ba9466234266440bf7c51ffd7d4da1bca9575aa8e2a8630c
0c7c12e0e1922d455cc2cb434e062ad6c73c0ab099eb919a1d92b46ab211a5c3
0a2a97fac162fd773535ca3b6a0223ca688180a8260444461ab477118f7d5160
60b933f9b00f5b22080fe958877e86252f3476f16d61a538ecc0719b5fc9ca91
e358408ac05b5b95afbeebabe21f0c287f838c1f7e8be5119b8b97717b742ae3
399daf7fa703f2d23f15b4f3b977d462b467b692dd773d5bf598ff737abfed95
9b45a76bc2208a7ce2e41bcbb2b14e35471713f674c97ce8f91ed6de3bc3fef7
988440d457c631a2cbbd29abc75403093dd4d9eb718bb0a91c9023433e3227a8
fd1cb54e93651ca0d1cae9557d144f3b8fe7405ac672a52147703ab883d61d2f
ae82998b630f2392953c5eebf3f3b355b12286d20b12f8fcda90021a241c3696
6d8dafb8d17e7259ec14c7520ffa2f59c56c5f4dcfeecc776546524438b89967
c6b7327777d638900a35864452ecf87bc873c5852b2ddd33baf26a6fac752c0c
0b5adbf7020d4e213a063289f6af4cd6eceb1b55d5530df989162ec0f4aa2a96
b5adf2d78a632c1a7f5ed17cf3fe629829520bafccb23578714fd68841f377ca
3a87a9363a8f8b7a6d42b583fa72508baa20cb92044b57b9ffdf5ee8ab983724
6aa2b9d3bb178537f35abe56eff3b70c008ad5e826b9a7ae469180b4d130f078
78d8e2902d1a56873a410e6485415a5b2aaaa3f50f589447f6414478ccfad06d
5caa9f92c7d2d9d85c39b30ca7ab007416d5225cf8414929f3de031da209a0ce
88d95491a7de41dc7def28cb53bf8351bf0133022474eb89041c9d6b6d345e13
70050c467a73767c3db0bcdcd1ad396da6f72a94e31255cdfc1ef41c8211bb62
1b5fec393b8028a1e62789ac5eb0fd94d54425b3fa784e309e09178c4ff30b3f
9e65a008e7c37dfc167f8498397a0fcedc99668fb19fad85b12cde308bfeb84c
794cb41d427bdb034e40142d41b93bcf140d278b92e9d810045fe9427a5ebc93
d59274edbebf046ba34e2f8aa2709caebb85edfa2a9047fd10b5dc4ed876a417
a2f2c03093ec3428df4da3a4fd5fb0d805700c896c708686db5e600f0399e22b
986dccd968441c57b6bc47dcf4b16efa7b8114034426f0304eedd7d22396b841
f6406570228a21182245c3a8436ce3d006234c7643396c7527a5b92bc28528ad
dd073f07af02152879f8181705a22078b42cca90383e8a389c3b05275755e785
d96fbb1fce462fb0fa9d4ae0aa8eee882825f807b98daf61010c244dd0c447d5
5bf28c118efc0f9e0523f01d554cc1c69f1a303bee3ea20dfe5fd8afdfead671
9d39a510db0500a25782b146a1705b84a4f89fdc25f9146de31e048c92a6bb7c
0c8ffc7ad802e417350a0842d4379cac0ed4a4f545d9ded5fe4cba2d85644317
303b622db1c22dc8b7f38edf42760751ea09bcdaf460128d5ce31e7063069606
069688809e6b204eb4e1bca22535a2a2215593d33e111e8b019e0b670e139788
bb2beb1440094bcc4e9a5cb1f382cdaa2a17919d44cbd51bf614db083f1af85d
e9bf3d6704a0e661cbcb252090fb6e60285040f44d67b8d55207e44f64264794
bd3fd198e3d95745992878e7c1975cac61d3cb3eabee1cab712aac0382641391
0217ed3a4f8248e34efa86de516754be8859216f7c0074adfc35e4d4fa254c93
fc41d5bf4fc2bf6b18c30fbf2c04048cd87ba56626a40ea9ad41e46e13473c99
fbab84e03bd48d6f1bbf82feca047fd80a2e7b3ab480fa6a317e23fe151d7b3c
0113e3db4d1b3dd4545944f7fc71a6830897f15ecbe43ff956b98b6f985a08d9
b74168cd33e72cd2fc11950803e7e96738ae4c661fa65fc7720471f8ffbf4e89
1e3a0c718818ea5201bca7b9dbe041ee0a1cb3f0558b826b10ac8135fa2dd659
600cd841ac7945a7f4b056f95b529c69bc598964979d58aca9974058cee11813
394e0ae6296d2b7a29f44722f48ca1d03d91c2451f1ed453d48e8e0f3b97d710
65b78c0955a79bb1d11460b2be62d7d3ec484c4320c66e1e624037b22381e779
93c6861faba59ba43472a3015175ceae3ff344d7804ddaf91aef524e048205bb
1dc0fcd97a1063e8053da2d364fa962d0558cefce10f1d7e6e9e7af917dac938
dcab49647943eda777394f3363db0df4a15f865d9150cd5cdb9ba3a68acf1d69
1e2d3a6285cfb915022e3d72799b9092df5fa6581a061bcc0d610878d8737478
a1ecd09f8d906b7027ec7c5ddd52e39406b0af903da72c1893c5ca067768bf40
cfea3c5ba12eb20312db23b707be03bd3c7e92bf8099a56b00def1d9362a1c37
cce7a49a4a75c8f8e04038827b7f02ed3746d22c7e879facf46e8e1e07b5dd2e
c4475efd67863dd3a74a98929bcbdb12afd4fb3ef3cc8c5811196ceba01f80a9
582293f19adaf664d1ec155b2b3ab833be9284969389c231481ab2f6189bb5cd
e90ad05bfe574c291d5b1d0e72cc49eed8bedb5f32450653706b4d42dfe07af6
24152ae422e3fe44fc6bba4d7196035a3b76ade64d7614360b1fd8627cae4253
b0705a0548239c5faffa3454986f4816c8cba0015b622649b81ed7e33e0e1471
8a7a4e1e2d0145ea0d30fa028d623f21579f7b17c2106a8e17c6a798c04b6809
9ec6353e9cf3884132fb3c2474af5bfed0c25f53d6acba3a43ea901fd1e67d1b
22475d404b6d97dd0accbae769b350e2f467e9ba267bee17928d039a4803d9f6
40b508ceb587c7d589f28f95790d8f03fdc8d2aa0e4d31764d47d1e375002e64
dc740581fcff2a5b6f93b7365d4c04b1643e55481babad59278b08f4981b6dc6
85ea7c77c82db9ced544aef7f72d078e20b9ade0888ab9d12206cef9b2062905
0be0c6b274e94cfc7b930306d3715abc75ea53488499d8474f5477255ece8a84
e203cc21edce2e8281e6cbb5241b54ee7065384cfa4783d23b05b7e23abf5c34
28f2f9f95bcccf9ba4525eae3fe355fe44a7c31c44e90345dd981e0a79298bd5
3c6483ed350fbdf747f59e7d3b45f06b231d839275aaaefea93be6e50b06ea65
c11e8ba464bd7348ba600e00bf45d54e2ca5b14a2f8bcd92edd9e3ceddf256b4
c1dfe565de6c8989561d1e4122cbff1bd21f84d836eabaa05a22f30e9c018e48
e84b1784356d9da8010414a53c5cf56312961671e9a87f7b0c64bbf9f6b533d5
a26c032133e4b4bad7e39b1d0883eb57991b601bec7e46701456ada9586b6127
7e5de12318996f48d844b1706c1281cc9d90d4872d19d3c3cb7f527a3625b895
201def2151c4958c8f687faf073654e36869130a799c85614fb12867cf2d57a1
9186aa1f48e2b8a3d9379eb4181b3482cef73d4b26191b0c1a433811f19bf4b4
d9d0159bb323c2f4a6307652c2a289bc2766bb0a828fec9b5f2a3c1706ccb478
9976e2e221d96139ac6874f6677860a2ea57359b0a4918a9cb5ecbe68aa2a922
03000406e36897f9b0e37d1054a5b9f4b00234a99d83af687a44a66be24065e7
3b2c2e5f19448d0bf0a01c97ff2578afa63f41c153a4adfe4dd8a1208018dfea
56e59dff3f15d4d0b3552f462c560c4394592e92aea9ef39cca1ea91916771db
42ca6ca7f5a44d531c38231419c0305f24ae42cf79dbe48bcadc5517d28d1a28
ba1e31744c4720ab59a2d39cae45d85ab6243f1bb51e0b1929f5ac6a0c38b6ed
e24587c1a63cdf7173a88311a11a9280de281f57f9a594e4ac984fa03eece213
01af8403613941202dccde716230e66af24b33df916e8d9ff0df2557e635e612
ca79d62c24badfce9167ad388dd9b860e093431cd8b4d27c63527ae812e45e51
d0bef08399922a32f80e062a2d660a118b72cd50432e41927394e2408fc88d66
b8af4a128490a2b8978d06b76d9dbae08a672483c05af63008539014f7ce1812
70d4a20e75eff92b1e0e125c2ca508d9c884d2a67924b85c8c6d3f3fab0d1bf2
09f983e85f0f5207aaf06f9d75b5924c2ef141f657c922205a5d142bd98a2122
f24f7e8ff04bef2886d5c6eaede9008d9321b9d17f44d4c52a83b17f5fed62cd
b76f23c8bb616a47819ca721710c43a52932c04c8d4aece46905eaed25c8e008
53c7ce925e5fdb68ca1fec16604189bdfde591934e259a90a0b7167538d32997
dc6a5eaed83c57fa5fedeb0c930a50c1d424185c89daf34b97b45f7eb199e78f
e44069cfa470b5f7f59d1d011aa3bfad08e98b76b2418b5a0766293799437032
f753c47cd5b0374e9c814d8a1cdbb113bd31e935badd0d51d63a95cd91811064
84abfde6f68f381aab0a1b85de5e3ec3b7dee8b322cab0b215966c347def24c9
97de7c3920ede07cb69ad8bd54f22e617d4770b4d7be787a8cd7ed616f621abe
cc286feb503410114abc5568437071fada02132a1f8780eb1f5ce840d0e76c71
726bb0995ce2c85976e88b19bdeefba38f678770d4d6f8baa86b3bf3816c388a
534047d6f947d9da658a187adabb1e8325cf324c39e8d91006620b9b060dd076
8789ac3f0a1dfcf83b3b3beb37c4b6d60359bbe413075cc4788d0bd3aee31215
67ed1030cd37985854ab9ada2b73762f1b5c07f290b136f9095b22c1f186176d
c03a5839d2c5807c14df02c16df117db821245f09ccaebd8a238509588ea6dac
aec9c72cdc83572cab53a906826be99934b6b6bd509469511e04419d678c2f4f
503c69402363fca6a4885951ac100ee604db24a9087173eb7c0ba1333af996d5
ef3a9d071efc71534007abf13da1ba365b1a4514df3466bcfdb4aea3df2fef14
cd2b7046ccd327f01bcce176b229a83543fe9f4f0509e97e9eb09820447ffc0b
a694f8649e27307bcc72fadb4ba57fb9f3bfc4f2638c47f75bc4a3b1c29d02fb
bbc2443058faa519fea3cfa2cbadcab78f867be308597bceb4859538dce12b41
37ddecde307cb2a1faf5094a0b4407a738d7ea88aa853e466d353b4311ccda52
5a3cfefa5ac276fd1d1b1b02e3e2220041775d479c0aa668026d1880b4deeb13
1fc978752a5eb5e8f334200889a9ce3d5de7b7beb962687ea2ad39f67acd06ed
32d78bee15b737adcefb9988dbd3fff7f7e98a3de046806911ff5c461f0b189f
ab59d8affc7fcb891fb63f93023b50c89767381cdfec45d2eabc0203a0ac4a9c
8cd77b97db19b9f08c3fd8a7634d3071403be045210408af5f704f50258fe03f
230faa5cfc73874eb8cc5027767e61f9b6f1b8e96b0705820637d5409137ad8f
5e1efdb57c6900582c8c050c29ee7942ad47d3ecce494516b31aa166888966c7
f1d9971e1a8410c3a554d4fb536ca32e8431d936ff70fdbc11d045e913700b7d
5e2b8ca850d08363efbf4299acb1ddbfec9e636f56f6dfae9f6509a9aef83be8
64fac0e26009fbc8aa94737f273f5b3116b2f3f923349895d90da01b2d6401ad
323999b7b7b562dcd7fafe8ffcd221b6daea4af59465c6db613d735fb3e86789
6ae671ac639b93f81364d8c165a24a03bf2502dce1ea9f4f701673e044cd5047
a8052c35f6729be8ccc27b63b97a796f20b2512a7322356fd82cb156a2f2aed0
8b347c58633e382857113211178ed6191e612dfcb79902129de48a006fe53574
83b8a6ec76f8099ad083db09b73ab1ffb1f6f1858ee66c5e62cfbaee45276f2a
e5cafaca1dcfe104dbcec61c7ba7286820ff49a3dd6d074a7d6d658c3f1f038b
b587ab703ab66c0026036a2eeef7e301df34c2c7999fcc2cc5f3fc380817c987
9fb350568ea7b3fcaf2f328b9bcba4c1565e12db8069cd0e61cad16226b39b8f
2f3731fe436524f75f67f1595824b4baeae9395784b1c5a57864a3d63e8b9005
417f3d9050a0f404438348b05af0d34dfec0c4e1361350079d7125ba7f5c49c6
bbdd5bb81ce73898f04793b43c0b536b1763b3e22a212e4ed348f7f2a02b84e7
6bfea1525f38acf75391d67b3ecad3dd393ddcf83a829074b58a1110aa30ee0a
0201092a2e0094022a88e36e167309f156822c09925cdb776c971220dd3fe596
b815abd24f86f957721de3abb5411a71641b79a1c682717e75e3491d7b583a63
ef9ba2ce62f4bd44b12e746f17d574d90890d0997e7d266785938609b829369c
2ad4f24d59d7250baf363319949d908f600c7e7cac4d6b5b83c7acdde3e41943
8e816f9807cfcdcfc8b70cbb2b1f7354104a9bac760ee172e6e6c906916f7724
e58577e2c01cdde600aa29885337ace5daa049bf0b8fd514ad586ad6b0c154a6
ca7bfc80a04c38fcbfb243f0572397f55c4d6a5583e6d0da9ad4d515efa65584
c46f9adb1ede4efec1d3b9894784344f0fe9b36bbc199d656eb774c4dd63e74a
c360b898c4c00e466d1d20e75585e525da17a3f765d9b296ae1a3ff3c61f81b9
37d7d00a2a9ff6bebb2037183d0571ff688b9ba8a9212778c5219f9c050705e5
c0a3839f4b84533bd6d7983b84a646cabca7e2bce1c86a5988ec89dfd724cdfe
a833adb53f7e2902e017d6da703cb74165f3005895753fc2228fb2e5b4765df5
c938b10f04e70efb36e3ac0b1c7392090c72bcfab6822b04d8e51e50dd1e8be9
f97d0f31444ae1d5666d1b91bb674879501df3ae9c21771711929e2cf4e6a96d
7ea75ba2768bd64dfbf2805582ef5cd041bdd4983b73c0403106fee93f
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: Utopia-Regular
%!PS-AdobeFont-1.0: Utopia-Regular 001.001
%%CreationDate: Wed Oct 2 19:10:38 1991
%%VMusage: 32987 39879
%% Utopia is a registered trademark of Adobe Systems Incorporated.
11 dict begin
/FontInfo 10 dict dup begin
/version (001.001) readonly def
/Notice (Copyright (c) 1989, 1991 Adobe Systems Incorporated. All Rights Reserved.Utopia is a registered trademark of Adobe Systems Incorporated.) readonly def
/FullName (Utopia Regular) readonly def
/FamilyName (Utopia) readonly def
/Weight (Regular) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
end readonly def
/FontName /Utopia-Regular def
/Encoding StandardEncoding def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/UniqueXX 36552 def
/FontBBox{-158 -250 1158 890}readonly def
currentdict end
currentfile eexec
fa444f2716d92b815f58ca9049c815358e22e32e73a3e6a653c538ee56873363
67713b8cab082730570f5b5efcf34c2cdfb6f8dd2b7905a37c1924a2424c16e8
711db76501f564506b0f45fef10d83c3e3c6df2dc0af7802e7f42c81b4243697
ca09088b868d983e79e4b2c3e17321993cc8837921fd4ff7b92a1294c5ba33e6
8fd40e63df624b51865721e034f71bf57bee0e0c2a9c169c7a626496540d45db
585d2bc93f83e6829eacb859a194d7a57904cfae75e6188c7121003ae40153f0
0fe6fb52f339e72d4aef38469328465a3bf0ca1ef58dfb447612eef4ada248e3
ca525b0884971b85099d73538152affcad51d03eb4060a5c580f453ee78e5c4b
991f77c6e9600c135395d56335a7c3a75c0341979d6b404ee496214a5d20ae06
e17d80d37bd3540b8fe913bae1674afe37d0c41e3d9836a7b5147be32f9ba01a
df1a73b89d30bb595a4b279032e37c8230b6d4933065947c3e9150d2c7c4d439
d60197eb69991ef059edf886ec0bdd28158a71a2df96dcb67fc0bf81c34cf27e
12d6ec950a75993af99fbb040af595134198151e7361672d8538cfadb4716785
dbd48da442ccc911ae9157b14e433559dba1a1c5619e99b57274d6998eeca3a4
7e804d8fe3a664f39f33237831385949a230a21e52a2dda733f2f89b02ef4ce2
5d603c9bd2f8e4c0443070940f0380dd1ac60ff462a9a71965a79d787e0711df
0a69bd86a4846965ac6c77f2e1699c4620c1bd9f5b2263e13a2213631c55f7ab
cf60d2e63a7830d5011d9b9934bcee2103f4a5d56942ce0f590a15dab480e5e5
723afc8e1d8d96f3e0d8629b88ee477ea6cb8121b0adddf20405f8a32756004a
8a59b2cf922a6dc0747bc15e99079aa12ac0d9fabf8b47c5a61ca5268e01317e
1f0a38c468ffea597a392ae3399daf7c03126987750258b5e077d703cdbe05b9
a5fc4d80e8551c2c06a2c579272877fd462fac6569a7a9f964797df79628ba7f
f77447fc2aefb25089ce946e0aa5c5ff21370f0cf84d8e2affa8b30891081b16
6fb86fdfe65e7e02ee551c6b3e2e324cf7e18664883dc538018ec8cadf7093f4
a13708013d6ca2afdf644c0155342917c2725598fcafddaf8807200682fcf04a
4efd5919c21ed2ec2f7951c2db953ed292a54783f5c541bca68d305b05df5c5c
f17b9af31035dd8a77ed8b54d4de7d684f54c58a28f0dc55e7c692cfe444216b
18751c24ec1c8a00a5cbd458a0ad54e7c13f26b4c4257fd992fbd1338845fc69
6b97a2ee6a4d4f03fd387e745eeb8e97eb67e40bacbdf1d6c08e9fa2e317d30a
c4234559096affd5b2e65600d083ceb0bf09f6c2bc3af8cc00ff5e91aeda4c82
320fb38c437df9dfc5e0b2ae2a80c35b1f180872d18617a48b118914a9aa4b53
ff57f329d2a63f1ce7610399e8d65a00b58f4f7d05f7e46270f6572b2601547f
f3414db6bfc5905df0093102be959b4f1928ffe29907c31002ffb9146594a29e
0e16fba9001f0a71d2b85ac48b7ae6e7c736c6b29d3f58d5acc6fb82b1d1b754
ffb26a9642215861570e72f74f17c92641a795ae1918dacd54ecac51f75e060a
7a4cff21863b4524917b756664264b3c74150bc7238b1d5b2261a2ad18262a07
708799d9948d6217bcb423e67b1864381683aa06e35cdc60a57d9b7e9349e2cc
71911a0fa7dd60a2ae8edd0d34a23dde422c4040ffd3bb82a4aef63b9a787cd0
3593ee11bd953888aca122ae5b0aa22aa29cb0b30f7ac7c7cb5d045bc640a82d
baa1b5a2d4b93eaa0de6cb59dc2b327eddca1d059e0bf58efbea7bb5ac26919e
4bc6876bcaed5dcb2ef39f1aa8ee6396fcdeee15f4be56d723abd366444817c6
b0e1c9f7328e41c3fc8af463252d2d2d6f3b85a039b6fc0ffe1e258e60c167b3
4ce9c38201c812b1a690124b8a3d04ab545887fe7a20100a84f9cd1a1784d9e1
30b3dcd4340f32f4578998cdbc99ab89d7cea83c2a2458a250e6d08f6b6594a4
be2e55eafbd3cb9b341cba65104473194a083e58e5a74d1f3fbcdf7dbb3c35b3
7d24cfa170c05d7eafe1125277241875180aa13c3bcd77cc73b6ca3a229697ab
e7dca3350e020e039dc4776133f3593c942539038e5e2b944f785ff63212dcbc
2f848a1382d98afbeaebe0e34b8af842a8aeb2a6c6cf77260ef06a3653fe0a2e
d3642178135b9f5b360154cb54d21e54f1c175d6a9125d9002ff29b64c360d5c
bda4d03b83bc69d694d2c43cb2770d4a391f3de34ece16708f999268f0eae6d3
a02c1467fd3fd20d240627cdc3d6ddeed2d77a5ee050b7f405d7504f626a4ae8
7370bb4d224381b027c1e0ec65cf291222fec2ca3eb2b55f447c7de0bdb181ac
d2da6f0cd797078cabb3e2b0b66233eb2b9500907738b4918bbf88a1631ee3d0
ea7fec8adffbee9c34a5c019cf66f1ade36165f3ab42f123fce462b8073894f4
504adc7e2806822dbe170052d1215969db6fce18d7b1805d7b5b4b244fbbc13b
bafdb31bf67bcb631e20f071d093934a38776752440540326deb1c2d28c29e7f
9f510c8cb146d8bba7cd432bce0046e59512a47168e3bdcb53a0644f736cb777
b71e703d35edf9b5df2d7ae01744b88c6d8b25495272a00ec863cf1759f9828d
89709b6a5a040726e1cec7b0b61dadb958d3acfb9c3e88a7b7403d6f43eae7df
ef2df124fa2dc9942329ed6e6bd88b267b534693892b3360af22dd78132ea3a8
8493304c9c6636257ba74e12115bbcbfabbf97ef750e319c02486b32f1fadd09
8caa2f52b97d989e9b5c28e461c99f8fe2e10c45f01237a5678f09487406e962
6c05d11ba12709d3ce778ea7c548c96c95080d2aadeb9d4348778967a2751632
bcadb5671c2670fd9620dd82365d3bb27cb311d1944c3799af425983d000c8e6
f78708e45ff06e1748fb453492e9a362ee5d5d98d7808fdab21347a96d124f73
ff91cfe4713fdde430602251098a86ec179b4871b9bc33c4810d13fa6cc1b18e
1fc5b5b3685902d2e79f421b08bdff28313ade8556f6ad5c1a1d757a6c3db4d8
41d70c1eb6c2f9f1182686995edca2cd0b8330ab4af9443709071deb6ec76b65
cd6a5ac6af07a94bc7b84c0b4a8233c1547168f6543ed72054464b3466bfdf55
894a4ddf9e8076c9dba89eb8d386545bb39f0446580a1a679a4510d3035bdc03
e8000b2bd41a28d1bfb654fa0b1f4c11315be881020f108c3de13ad25f1ccd7e
56297ace1ffa5d6d3b4c2451aa63ac4a58564b89d652bc7899bbac8ea1aa70aa
46c44c09897ddbb80a81cd06b0f932d90ad2994c79a40b31ee434d73ac85a789
4f5f27cc9a1b9be3ab283f8e04ea1ca54943aa2c3ae49219226be1b0da01038a
ea7378786abd1f5365c26bb813865bf0135a802485e4737190dae0538ba243b1
56e80b67e2baba102e0ffa1d6203537524d73a8beada7801765b66b5c8a07d73
1505a6dadca71c4b9f6985dd4ad86b46ac98a5d88f6fcc99afa05072095b0f60
dd766815f39078cd82576f0041c8b660746e0444b3d364b719550bb7e12d9961
09702900d39beb302fcb6f2e4aba62c7de66a6be66f42fc440f3bcdbc83a08e0
af113d575d02b79ee964c6569778ec373d35bf046417a24d6c40b8d5cc3a4bf4
9895337b3818f678b245609513eddda2d7097aee470ad5f1e30de7a4c956a1bc
29e8c82aae65dc84bd1d529c4dc7a7a579a8dd11728d94d1dda916e4a8a7c2cd
b43261a0008201f4f9450a1dfa221a67f65a303607611b6aca2dffd8fd7e75cd
ef3fbe7fe5588a989cc0db1f320987c25246ce805c7c481b8f590aa5ed7d3c1c
8c86e1299d3060c9b6b38c7a49217fbfe4dd5759a9dc5d9ac91af92611c52a18
ac068167ce1b3f322c574a896266217737103a272f02bde4aaa298d3cc99a375
5a4d59954c1595db9910583873ee1f824ebf206b57a01b04f43339fcf6d00649
d3e7407b64aff4d70fc454cdb9b855cbab764ee2c84a31c68dac4b8d7779f751
3f15630fea9b9e71cf141c5e9264ca6ba79a0975cec7b0b61dadb95b6a915479
de5ee8463fc58da414939ffc37be0f29ae62baeab202e01ce3445669bcb99f25
0f1a801bd25e39d7388a7492062045cbec4858b99f8ef56ed5b87d1f72630a5b
c3aa49dddaba9573d6d0d27bc189a8daf21f2dd97bf158a67b832c1aa4af8824
475e7d925ec52f41657bc022fb47122de11a3ac76f864961153efd9458eb48b1
10b996bc0bfb11b80f0b8701ef07f83662e0e5f78cb2f20f09bd3f652b6150d0
3c338f98b5d75ce1d33b1af9c294c27ed096da3b1f8128acf24719fa8de38f2b
3e7cd80cf099d3d01379f585f83730c148802260b2aef736bdbab459c4672543
dcc130407c638571b76a18bf4b42fface646392bcc3e6c052a59243bce866db1
7d641a0d2289231f07baa9844e43dc71a9260f36d6b9d8f13078b3cbf741daf6
8e4114143e04fdcdecddce533216bb352557f7439139edd80fb165ad50ae31c2
9bf4ccbb422139dd5cb905e04d43b1098794e9166c52bdfde396c123efdfb94b
5eb84855baa0abcc95d70804e30516d88899c3a54021d4989ff3bcbb28366858
34eb80b8b6e875a67095f7e64231e58123abb6d4197710f9cbb88fa3dbb23f5c
3d242695ff070d1be81fb46c94a97992fe8722a0984e286d874e53a01989eca4
d8269eea164c16d34dddf75e4b337a6cfe211d85ab4cb6a4bcde7eea12fba762
7382ce1984b9c7139ffd7321c266f0c8b58f6404f20348c9660ec8d94da8043e
09445f29559c379b970886424e58e51969623f8cf82943872feba0472d9ec49d
6e086c584ffa11b7e5ce36fb29caab3bde0a1f3901369de7a3df55a7b80de8d4
b162c7fd499bcb2548aa3ece8403a60829754d899bd8967256cbaa92e1751845
2a616169fef7f6c2a4c2b46ffbd7e6e6dd1774cde06db377874832aac4206843
0d76d834e8f8677a92392eb9f888d70ee74e4ed11a3d105427b6bfe9311f66f9
fc83b3a505bd2c3a9ee65b3a250d2e75d185da636b144385556f5459587261f4
290b1c35119589407b9d957489ee1cc9fa547be2e9f400107fab860ef31b4b56
31c0b0ac5e57ecf59170bf5b88c9f8dec25d2997771cd4f9f5adfb59b70f0557
02d82795da0adf0653753b0c6927a9d4abd88f27cc5a05ddaab90636a71e51ba
a95be62d5f70110bd45bff39dc1c736866977f7da14915258b4ea76425f63dbc
3c7c17ecd7f7c492ec7d32a4fdfb16c5d2b9e6d5c2d8c503e12659b26b2053e3
484d48d5f7c63013a8bca37d7a44ad8f770d1955a5ed332d5adc97e849113f8e
e3678d101fa8724e8f97509273e4087e9b0081cbf488a71e2b3e88a1995d46c7
2eef942819204b37d927b8235d4530d8e3929530a22ddb5f0ccf6c5294c611ab
190929d8140ad0b93791dc06a6fdb786179a86b38802ca99f0e18e1fd4b60842
1cb03a037899f2e269093bf4239e9282a3bff47625f87cf41067b6ccb6bf0f74
250745acbaf9470d5986cbeb76202907c962c742502252a857716770e15d86b0
9f599614ce5046bf35c7111bba489b78a8214b6f7a27d4d855f248ba56aead53
6ff688f5d4d1100cf7979910a15fd940779e141856b4084917788b57c33553f6
cda316ac147e13ec9853cde9265784aeaa6714eabbd86fbee03ee488d3f47b60
598c3b4f5b0898753067045739a2d58503a59219fa01b48c7e6de93e25372b37
aa66b91459646ee85d903f0c8c03f3e99d4a4adcfc101e90337aed9ce74a1fbc
ba0225518d9ee2fbe5797f3a9c79d76e691eff6958aa4ceb6f0eb2114880207e
115426588a37bd6f20d8ae1fd8ff9f9e7ae6058c5a99c2c39e5de454bff2b1e9
90d07cd32652cd1154c8074ff697cc4c3c809939d97497c2e166ee65bf6aaa26
b8a7db18ffcf32ab9b8e73714691af24e6c51b993187e2c4452d56f069d37662
f1adb61a6cd32cba44e75660d3f5d6277010e9580340b357b9d37557de1ae3b3
4d981394ed4811869f0b566c559675d81b18ab8e8bdf56b704002ec0301b8160
148bffd03a1453b65a080d4a0ef403374f841508d6790299ca0e1f369db58250
90dbed77ee177d56359624564ce6f9c76b8a4e8d174cd982b0908ab3b16fa138
22ecaa97ca287aa284f5c2f54bf0fa1822f1e0856b2430e40b14f1865836360d
0f595a92724a83f02ee3890f39660923a5acd658ffe80505faaf57d2b98ae857
9aa8afc5d64ce31103e3884c2f286997bd56b5e511993cff9f08a2facee264b6
3825a101d905271ac5d5e834e2dcbe79dcc1339765e539afb9078041474f0b65
e239b6bc5ef2cc5bc1e179233a8949091213b41c50d6abbf2fa3ae02468bdb4e
fa435e32675d11b0eb04feb380bb2188e13c7697cb599ffb41c626e814a5054b
2b1c8f18a4ae040b339fda52446869e6da6415f31f380a219aedc74a5cc291e0
a0fd4e9f2dc6a42a57c9721c8cef8521593e2fea090736dbfa3109b83daed6ac
88b377dcdb03017fb88c7f02525676c1bcc504634e7076b8f215536575dc0615
4b8750c0b6d5cea325551f0c2c80f525b1d42fe8512879c5f933e2e750375fde
56d74eca7b412c3e1f7f9119649a69bda5c33c4313fcf9a981c7f70a0fcc165a
b686533f8c46f65f195064876bd2224e29e0318216f7285a6ad28f7dc3cd0f24
e059d177593294c252f5359bd8c17e6f2232bc1306349ad934295dda3385c7c7
84aa04b2822a29e5f6adce824531c3a42d36886304d1472a8cc337251b70dc4a
6800fed434986229ce4eb0d081afca71017a6a9299cffad257faf66403598774
967c9ad71366c9052168831910d81cba3c6d483fcffa5ac4f114139f9ffb9f19
1ca800ef6352210d46106e815e5ec75175c11aede7d142e9c034aa47fd0982f2
6d79209cf1a646daf4c199a9fabc665aa428387acbdf157e32b6e53ef720e937
74a932d227e75213e3b3b4005f9aa856c8c37632e5fe3e93f956c389ea5d4fdf
508078edcbb705b7ca5810cb8bc911360fa788cac410a26a4e0fa0a96f1601ea
64fcee9783c617114354c3a81934f49655e7e6db0dc6af2a30dbf58ba413c3f1
7b966600ef442c4dbf5992f0920bbaaac962c9e143f636197e0f2da6abf804b2
3622a73969826eddcbb77dece0b2b447a53438260326f2438b0ac5d6eb4d6469
2d51353038147fbe8aa71376af13130f9658d78391da0379a58e1ca5c4ce9261
44eec58a00eb27368c81ccd235ac0fd6fd83f3c6bb3a79ec47e2a7e26606f57a
28d18f79986ca2e99f8ada7e8039b5c43ad5a1c8a2f460832254061a2e614535
333ffcbca876273bcd6788d676d39755ee9554e862a42d15ae6d5618371f4b61
3b72d63121133985d4fe346c9661f06b84d52821cf422eab05fdb05798c74c32
4f715d6d5c11afdcb689ccdaf09069282d44b8e06d01a525c287c4759a00d434
61ff3cd207aaac2a78f85dd7eee3f14460b0693af7758fe1de2704f5ebe68622
56294711807784e0d805ad8f751bd7812f22cbb4db6d9c7055162e3fe268b8b5
c3179395cb9977e3329a763914e31e01a50337ad37d3b6d836397d450cca044e
62b8b5b2b6fe129635936b56d9f44019dfecba8c5515bcd8f761cae52cb4a15d
663db5eec54bf2805f529a1536b843f08b8b2f80216b5fc86a3f46225256fa5d
3b4cf7531fbd84d9c324d2dc6dcb3488bceb73e0cc82e241e6faef488882efd9
fd97f2db837b4ad410eb11fbdd40654e2a54db1993d15a2ad4b1712025082d2f
14b492a27ce45501702fbc49af177256c38aa3f6d6460e9c62e68ca7cf4a544e
3678e35518ff35ecb176d426ff76dd3b28c73f8b616b06a58e2353cc4d6467f9
14149a74a9a4352bd886168cfcc7eed2257e649369cec260fa7ebe06ec4639f5
6663cf1248784cc08b86a3021a501230241a067a37ef3c4154bdeed60a8d2003
f7c50649f3397288f9e0583f3b815fb6b2105085d1c90053afa09bb32d447497
86b9fe0535fb1e3d04e239682f78d79d847d360c941fec3b79a2a25ac180c31a
3d2a75ab2dbef26f6f511edd4cd18623fc277578f783fe3e4b342de641b832a1
452b2340dee91d5252bafd27079daa9606be5f4975f7e1b022a468652085c364
a37169f090f3f16a19cd2a532de7947d61ed21b819fd481fb8fe5dc5c2cbee3b
5ce79b3c0a8804a7f563f5ae4d791fa3f72b84736246aa8967c016baaf8c5b46
a2453bba98f7e2e49b91fa1c9a353f69fb0197fd00198962f54702afab93de98
e5d6917b13ffb14e7a93aa015f9609d503dbace4b276965e638dfc4f9a95546f
287db040292c1985af5270ec88a3cc6c642303f1c7ccf78213ceb8f4e4a1fb77
0d87601f07816c326ee8255ea2185f99a3545d8667ff97be576890d00e32cee9
03751d8622537444431d57480776da0b72980e67ca3565450a1b7c8a77e25305
66459e0177adab6c88b67bc401ebefbc00f692c0dfa0182010d1b69b1fb61a08
34131a098f51944940272b5e5f02be32456a63b396da5b6978635f67ebad78d0
9153d54c5901d6cdea9984c0c10a5dd16ecbe305f0cc17918f48e5ba1e844d87
d8b44147658fcc604395d8947b65e0ab90d383769388a1fd1e38f2a82d28ebf7
e28dc0d30deb53bc6ae2ac3fb2265174a649fedeb61a59b8291f1e24d3d9d906
6b7ccc0b5e7104fbce1cf394f0d10c1f0312e9a207101bd3227a3fae18303c79
dc4314314a689b54df4c6c4058d77686b29d8bf1e2a41aa6262007cd6f76a93e
5f831ebc389af59def29d27aa03ed8b5721fcc3e31849ec5a5fe91174b8b0918
1d8c57cc3f2ad21b36367927a7ec54c6e7b93acebeeed16dbc3c25c1592435f0
db87044cb10d4f5e8e6d3d5bb9c571f67602e31f46af9b21508dd521bb74acc4
4751c690cfe91cd315a289151e2185bb43310f5246e98d1ac513f6cb5a50c614
a3cf4648153e2d533a56576005169a0d506ca0f35eb0eeabc675425925983d11
353e4d5f1ca88ccae9d25e3ffc7a80ffe7d7875932bbf6a5c4c13525ab4397fb
67e203875eb17a93c08b5e7f338c4dd0d714e5542fdd128b6b9ceebe7a9756bc
325b73cdcab9a6ede565b852782bde113599834f1340eb08e7c91a1e7d0d2e8d
a2b15079fbf9a9d8884a209c1663a67941d15251aeea82881a959be9b281b389
d07d7b7fb7e87ce654f0f4061b0fffe0e10e6d24d7847786b5f7c12d5f041a2f
a1e861f2214fabc98a98455d1ead5e9cf8859a655bdee62c427c975d5d09bbcd
b6c49fe36ba586c71d74cfdda0974c4d38b61e0dbffff06630432e34e3ffc099
18f07f8716b8cc5d78ff1b96ecd772c7c84972b7378ddbaf15e99c5150838a1e
e9840335a32ffb07acb9aaab91698c280575216d0d01fd81cdfce2b23cfcc896
18a20fe2f824bf598f28a0d01766d697e30b996b1649eb4af0cda161181f19b2
72b8651a85def9588ff2bdbc7b2279e110bc9688ac4eba58c53efda87f0deef2
fc9d2532cba4643dacfac7b2fb46c93175435b046d16891e83682ba37c9b6610
65a17c2d930181fe13ebac6bd4f648475ecc64da55ced31689056f40ac358b43
4c5576fb26d1b964b9a39ebf895f06270f22993ab03e894d04ac4a5bd92d1e07
37b4166ebff04c43b13d861835c7da698b02193e436376db2da0b6ed3f16ca50
dad912aabdb6cd26559c6f6d7ecd06c5c677e969e33f1b28c3009365c51803ef
8eda80de54ce0b13629b9430f92819ec669753d660f8e159c80eedb678156bd5
abc51fcba6005e792dfe0e6db131dc3a6ce88d108700906c4f71096c73cb3ecf
81026add0095e8dbe8a6cc29046eff16ea07961861e7b6f3c073a84838306923
c68be922a85c444411f9aca0c0d8d5fb0e4faa5261169561ad2c3f9ad23771a4
fdf4d62d96aa2a6cd74b6d82c823464fca40163386f49fa31f776d532dab9150
459ea510c75c455193ea20c68915dff08a801302b911792b2a27fb963c47824b
9581e3f29ffe9c692ea5b021db14cc8656eb0e8bc41368fbc2d897e43d63adf9
2a04d749d4124c529ad00df584fa7bf5527c1050dbac7816b58ed0e56292645c
5a7cb1c291e6968cd64b88a82d6d0d3af1113a684cc22a6bb652fd655ae792e6
627f6d40af85343f6c3874b267ec0077a7b5f0c2d047bcdd8b9a4569b3afb67c
2f58de6bea4283c79721dcf908312ad8a690830e0e4c65581668af20527c0757
7f3a480d23115802277ba5b3c21042d64c3f24989af6994bce32995ecdc83c89
ed0cb4c21067ae5787a32be27bfed9b0d398c46c01e903851f015d1d9cc35ee0
e04bf4743c06d8c693797c86e27b95be4a99bd8675630269d7026d66fedc5555
6fc91972c741f526e454ae330bb197865bea99dfb57a3314fa8b88379cc6a560
73febe6e08924b024861066bccfac774ad1fecb732a58d1807f7a48ebf2bd1c8
d35f9dec813383ba18e4f572819dc7e3f6a1f2b4a1ab674c62e4e2455e5382ef
d17beb38f3098c7489d0d3bc15657fce7f5e2dd2d61e7a282869159b8cc78b14
ec05a70eb5e08867c4d0666664a8f571ee23adf0209098477c21914a9205524d
bf7145303c1001229e031faca7cb6b074eff32410763f04f70ff517153928dd5
693adce84387a4311f25981e04dd9ce2e1bbd0c1376774d1acbd9dd4843c31aa
d2dfc3335baf8079eb494e1156887742586cf4216b88535603b2ee6a36175c11
197f835ffd5b48c189f71aa9cc5466f0934845c5a04a80b162e9597d776b579e
b6f740785cca3ff1c8d9ec7619ba3cf9a907a4691ad85931960d69c9ea5de975
60405a3d8d603c2432f423ba5ad9276172d51f7675f9df5f73f2f2626a98f63d
5c1b75c401523b63a393ea6e7f6f51a5bb0c05efd568987bc1b5340fdd237052
e6a0a3da836767653dc1c39c241046d03e60d9b24e140fac141538e324385ccb
e07c2fd3a9f84057908e36ebfb92e2e902df7dafadfca344491051bfa07606d1
f55823cbce3c9eb697ea5f93506e99a905f65b6e1b1c21704fd802cd38cde527
6201ff7f812b7c2e39cefabf1d65a2402e61d3062130764a8931ff71b9418db8
49cb878a859d04b4a3fa9e0faf797ef92aa2b35e8931c0c9c427fe2d6b4349da
5417053a3685136c600ef03c0883dcd34ebc7afabe6e8161acf28346c7dabe17
f3f4769986d9a7f752db52b40748d03574c003b49c46bc1e75b2d2f2113bb211
30eedceab740fc8dd9b298cc6c71f11d0465e09432bbae6f7dbe9a8193e7469d
ac32ddce92e51c5dd51c5a5feb5a1cc4fb60398a7aa1e67ef61a4e75a5df72d7
0ea758aa901064e213d630aef583aa2838ceba0cc92fcbf3917024bd7b6744bd
7cfa3f107959ff732d2263c6e22398dad57caf1b11360af9f1314616df8feb8d
5398348f7662976763e7ee9915f9bda8bd2c4d5df31f297d3a29fecccc91e5c9
c9d5d55a816d4c3ddc521e3b158e9c2febd9153e4d05de3e4331917fa8c20911
37a427551eca16ab5b4cfa522c693da69235a71a4dc1942115af785b0aa11c33
6ef5dddd7ae0bd5029c738963b7bdaefe7789770b7cb088e0f0acb9728df38a0
26a4c2e8de4af8c725961b7b3c71943ec2ab02f991374308fdb8e0653ecb55b4
e28e339e3a6a52e84f33f6347df90f5134f6779e9c08c72b079c0fedf524434f
7f2887fb507f3410dcc3c01e7f7d85873f2896218c522881404f250e47fa5b8f
a3530b7fa9dd00ec58b04645f5b647885a7916bb0ddc2e943e65c4aac8f49a34
3e6806749141db2aaff63ce2baef46465cd4cd078320cae04a2d43e91cd0d1a6
b77c25d4a31e71f6112efc952a5388380906b24083a5250a53aa30566f27792c
b71d1638ffad272cf70b7644ef4d98c86200dd08939bcfeea45f8b994cf61fa3
9220e4adf1b03f2b754535630aee18abf16ddb770c0133b77d7ec2a41b3856df
cce8adfa3233df7faeec8e2d87f65484fc3507c07b5fd278b6c4f4b5d1ca7c9e
e984e6ad285341da9787072119424e9b12dc5712b1564ca51fdcadaf9b43adf4
6264c2c71bd1f16eb2bfafc39525bd6cd37513d11a054c6fda0dd74c4d77b96f
4673115cf8e9ce0613af7507709f46dcc15df317f4a4ea2159129aed671fbfe0
5b2b4cf0574551f30129731a2f534f96524defe8e9a5d8376582d68224cff97e
2c70aa6cf7b4b0ce1a6f2a43d93b803e69a428041b72d5d6a119c5edf48c7f27
f933d50d2cb37b4c2a193d761baccbcd4245d99b6ae63e98364070e49334a015
7b8dffe6dbaaa47c82d4471c0f4ae1e37f571b69500f5b07f495b8cf99624db1
e870d0e1ad6e7d1324121f72130331d9dec2d2b3f591ab571cc3e169ccd7f98f
ce1e045121e128cd0ba835d723180cfd97ada5e9d4c017239548d93d0fad9067
4a29e7bb7ff1ee8d6eed3b985a367f32f1b77f38a187bffb0145d61850021803
307df1b22766f7e639e1b1bf5369831fc4cb1d00e6608bcf9d3bfc7d45a751fe
88204d1efd7b8300c1da1c5d66d7e9aaca459cff199c67386f2bc07b11d80701
ad2fd7bbd26fe3b59f2bd476b14fa8143faeec5b4ec924f6490b52633640710b
1b30e460d465cfbf029e79d286f0369838937e865465b848a96522d730e99f6e
2e704681bbe64012a9f066fc4b89700be570ed10ba59e7ab73daff84804a181c
e078a73ef6edef9a64de161933106c53376c1d8499d0adc23b04bf20d3d6dfd3
f3fca2d20cb4dfe88930697c0e09e15dc2c46bb7dfbd173424f6c04c2ecc92fd
aed85cc388409f427bd7fc689bb565ee9bb84a42395ebcc172ddce566596c1c1
b1f3caa6713fee35e29e45538e1281bd4235a5cd26b29dd266d81679ba85ab4c
09703445b96aed6acc77da9eb05e5d45e94b767df95174702b9e11049fb9073f
9ebe73c455f497a9a8cbbef7c778eab5346983920351cf59f028088e8f6d1456
712149c5f158a3125c1fcafcd4854e65dc4483f758f2e6ce4e4ef6982772ee79
8d1f2ab99d9c64a2ebce6eb5fd9bad0b5e733cc5fd5bda763dca619cb4673f8c
44c3497c9ff5a699630d001a7ef9122c04044d7f8dced7b45986e423a3434e85
180ff6a712aeebcfd6af1060131a436df14b6655f34d15ecf69d3efd43914375
8240b1b5fe526c4fee51ee2dd0ea56e39cfc72d4aab0adf069fb374f12722aaf
0dbad8c444d51be685dd0467958fdaccb6caef1285ed05a744bdbc278a6b293a
e35c155e187721e59a0b8a504142ab778dde4adcc29ab1b3ce5f3a08473abd4d
7ba37df73df0f68aa1d395dd52d34d58901afbc3b6c6821423b455208e62618c
c7bdfd9d7482a0fc398009ec88557c32cb0a094fe2ed519670abb66a09c04e90
017c82128c77359570dee035867cc2b0cdda237db1657899f2b6adce161da423
e775f9b1f4e41e144c51eb149851154e3cfb8c02c01a6b3e057464659bd17966
b6b8ba0db02fb6d0988229f54a5a34f945bb89811b504869cd28c1833e7872a0
9e6ab944616d07bf55a429e8236d95ed5086854b6a31c0383961b4c1a51a8857
8cfa71d197849844ea2d97864cd7362009a5edadc8f1db38f039ecf2be135487
bfeae4f302addce069b242dd3f1b209e30f5f8ce868f4782b8dbc847b9508053
52c4bd7fe59e06b8f18aefbeb83089bfe841fd853ec3cf8cb706c8c053dbfb8c
6d5d96570b294233bec67f97d7d4a72f63cee8c73bfc6d0ad7cde0174f808ce0
f6f7fde423cecd0cf44d5641419222cf978ad1d13d3372c32e26263a9e627261
362110c763293abcb4f6735b2da8eb7e5f7b3f27c1fe44a22cdec6b3119906d3
d1cdfa4d6bc961082494e2dc069b000accd5066d2d7da639cbebf3a28e1e2277
1ddbd5477cf51e4c6cb2f782a25374c1b3a4b6ac10a9cc895d6a63856469ba0d
a27d4c10bc7916b886f26bb1b425cf5b6533d02156ffc42adda19b9fe8d795be
a7a609e64495805fef6f4c5717d66b8fa664ac75d81ae3a9bdf8d45a9a7f04d4
f510bf60399624be1fbd8a616213f7d12e40c0a552b7b477d150ce87b5a151af
29b2359601ec18c60301e7d20c827ce858f3e1ac8abcb5ac2a60cd141af418b6
777fe8dd7a9345cfc1ac7ca7e0ae4830ec047d32378594654930dcbc4394e05d
93d487df567e416528e8fea2ee29cc4faa39729811509b963c43ee23274a739b
6988cc4d9f901cd5d6d4c35f0b1ffe512639093dc837352c65b8b08db64898b6
c25f1f346dabfe3ca2b470ad7db3f7afa2cfb337a91677a9077c437beb2467af
128700f8e063c204afa19a98432ca1eec897bb9266b356694a2bcdb9c1e023df
95ba5c628da655cdafd48c4b7d36ec10fdca5bafd1d45af8960e60ce635793e7
3363c5ca77c9c430b4930c6caf49df3da7e79799c776095700547e81b56b6d81
787c5f968bcfda88fcd523be19e1989b4202b04be9318597f3cdb9ec9f8612c8
2b39d6c0e0a852ab46c6eae1149553403d0efa5d3c8f74a53410064646c19cfe
28fe31ab72382706475a8dc0499d16184177b23fb4fab9dfa8b4e3763f1a2a7a
8673d0b73c39d2d2168f30c7969c3368832689b503fd7ffad3467bd9d041b080
f908bff83b961eb55a5772d00745968da215c98a07028f6dfd61c2be0a7e89cb
2b7a714480fa7dab44f958143a49ed439dfaed73792f2d9a5a021158146e64af
185c75e004fa7d52861945c772094d63a0844e2a0fa96cd2a2aae0d01117c330
583bc790ced0670675fb0afc35b2f8342dabd20e82921d3abf4b864df01d7c81
e284b44c6828954ef05a9f99294d361456b53a616ce60b1f7ed34c103ac9ec1a
f6d7dc9b346cba57df61892724fdff0c42cfd747066f4708dbec0ec7413e0e07
02ecfd5800c859c8fa6defe3824766e4993f654c6b0a849b581e9cd1bf76bac4
1a62c401ad1a5defdb1a5fdbbfde08de4f625ed327140e082589e2e7968024ff
cbb94da7526f76a1bd48701ffafe81162cca1a5af807c8db8e0f8a3063f83ca3
02406b11d9a079583ad076d2b2c4a2c92c46534e66a73bd9560efb3759c0fd6c
9c4954c78480ecca329d7cc342646a173640db167f9729cc8175428df4ba8c9b
0b4a0cd8408fa99e6d2a26d2ae0f97051e328a713b804dbf9567230b8a4d4154
fda3424e9efd33039ff1e8439fedef5de445b4e2e8ce676fd158b2dd8c71b0f5
d68cc533e86e000864d053408e100021267077909730609eb5506d3b14af8d85
9f35b4561183cf27c131e3b82ab701d3a70b3d8f479e6a0b0e7303528894228c
5ae8311eb401cb28552a30e585463b1cec61213a06cd6b8503ce24d1f38e37dc
f2e99c4b46df6204c7fae22751468d24fddbacc455582abea9f29cf54359d765
ce71103cc54d5da9d222e37c4e7f2989059efe384bf01417d21ed8e5f48de9f9
1b93d9223458d397c20936bf359c0b290f92ec7e1efe15edbd3c37691ae5ccfd
74e283cd197b62557cd81c35ec6480e5072c92595ecaf28213ac7cad9945d0e6
4e6742a40b00a1cee3a944dcb17e40a0146021e18bb590450ba4d35da2e9bad0
69d7d32dbba06291cc8d6f32be8be3b50230a65bb84c20c02665dc83a835bd8b
9833c3b2a08c4fe6c46818ad317ba272cafc468bf58a187bd0f371bac50f6b38
b7bc501fb56c863f6a2f3e21e483c9b1754fadbddbaae486f787ef9798d9b064
bd4465abf0bcd00d4207606918b81c276820d699529860544162cb24c6b88f65
87db059cbb2b25ba23e834b73114ad7f924ab5e1f41523892551e89092b7700d
f5281318cb2cecea72503c5561cbcc1dbb388112b0a747ba28f1e6498c708b2c
a4c950b4174670c4e1ae89babe57cf8a7c5b27c4635226992153da22dad40514
ecdad827ab16e828f678d663fdabdad8ba4a502bc1cea86737d8520a446298ed
65261872a40058a2a24d5f666e4dcabc0788fe23d0fe23fdce492a9f3d5c825c
0629c1604ae592377086d689af51dc6d82f1245e7836ed20f9aff1b3a0981f90
737ca190db749e07e5e276671590f00ec8d43a4e1481f0bb00835f5c700e4c78
018420dbb66b7c2035b9537cd0a79ec946f7e93a873d41600f0d4d1e0084911c
f4b316402cb920178afadb3f779a44155de92d369f5cfe4768ecd77eac680748
d8a995563f3729381ff4bd1e6cec7e87846615ff323451ca4c63c0d9c7027e39
0950131704eb5e5c26e86d71eee1c6a69351d4992dec89cb14f52b23d03dae3a
93aca4392a84223da3d7c5f45dad81a9283978ce562954f633eae93eb933aeec
5efcb02bffffcb21c1a4e453fe4c73c7a326a54d195cbe44401e9e53ffaa4895
2bab6d6de80857f2394bebf0a73354d81cf46695e3e39e40497dcf73e2b875d7
f4913d72298bfdca0748c7fe687e9ce3ba17b5b51fdce8b42206fbdf1b2ddef2
d1c772869e72a65271feeff81adb5dd92673de917c963329fe0a76cd223d64b0
ab3d97259a8a8175b73c4f45824546a4e62b3a18172e8a885d28594fd87ab9b9
2adcfbfe0cf440bf6cc79f4c4610f6f41240caf0f3bc0ae2aa8a87160c55ee10
bad22a2bca321707c2010688ccd8db965e6cb30df7b739c5e30bf88bb1ac990f
6eae36d988eed2b5f4500bbce31fe5bbcec8bb507aef4578e0f8f893f288e934
b18b0715bba01354efc73bd07ba051d0998e3a21d0819c1d02fc4c471c3744d2
31a2bbc9888495877ab59a2d544e597e4179fd1a6fe6b61a5914b4c690d81bac
199c532fbd425a5053521bd54e864f0429335db967c5328dcd0cfdf33ffa82c6
d776474024bbc2a154b14c24336dad59804c8038215af756098963371120ef59
4a899f71de96ecc6000d5262e28ca245f30df42e07dddd063f70e5f0d2e20870
badadbe5fb29fad3637c86a51c38c149d1c5688e41e040315536298badf2f468
86b8aa893f7782d06dfcb4f439920178fec9a14be5d3f15d78648480cc31d075
3a88a95aa6e8d2e3cf1a6c8e177aa29084870ef462ea6845582d350687a223a6
cd8c8cd5ee1dde7d0d898ae394e1eb8232e35e888a72491f3588a99951da2815
3e7d2cc972cbde8406c59ff6ed7ace3b64d6826a96cd408c544a9dfc03cacfcd
27a5efeeea1b247f330d69f9833c12d2da7e438eb5509f7277669ff10c737e87
28fdfa5fb44637bc13e1584c07f06caa030c204d99531262714f13f4622093f6
6312e3d506121f0c00936b3255b0a917150bd4ccb3483806edc174886b18a129
d4caab0aba2b309fecec0ca9a9096a57c6e16ee160f5b4eb2937ec6bf8256096
131576117fc1bbf7b612afdbbc4af7f0129b582815d3b7bfc4e107615224bf12
8e59b9bed217542baf8848f70b954ef149788bb994932c9197ad01040b7e0656
15d2a750a81bd361c800b8bfcf5131bf7d4d0e30fcc4494ad97b76551f9fc887
1eb4a06d335cce8e5442ce763dd94600b09309ddcdb881c31f900b37b48664d8
2a5ec5a15fe1cc65941a6662361549a388cc4f642971187e32f7207d62fe3eb7
80fe0dc1e64b6807ca6f43cdf36fbeaefd84b3ae7a5609aa94118f3042848d73
952cbcaa3fd7dd11853162b8978a9277db0b3f76c569d0b7508935bc75683f5b
e63deadaa2b36c51e9fc381a824f2036d69d5cea2971c5e1c3aa2096e03c2f81
5d095f3f8ff5ecca4bfa8c9033a0b74c6da5644024be6810bd84ebe3cfebcb5b
01f46fce4fc8e3386b5b310ac00f375f4972f9890a1c5dc18604e63a823f1d32
f3d956451475113bcfd3df93c7a88a960a8bf78a698d769f3b79e1a95dd1f530
8aec35be08085e21b4a5c8a19e5268d15cf8d577a2658c262db09bfc9a115f13
b12fce0bd75eaba400e72c4099469d38a56a4a4ed0a0e394cec8e17732699437
b48a4b4413faaa25e650ffcff66b8c8f27d8a4fdd2226965b31610364dd1fd8f
2540c65b8a1385ed704c5a1f804eacb62af3822800729c3f7aaa4bca09ba4678
a78a095fdb967776deee9366c12c5d4825431646d49b9e3f5f58c25d06722f45
3281fc35dfe5054f44110fe15d52753e9b94f6c2716327140f4df512faccfa31
77221a0f2b771ea8beba3936c66a2fab04aa823db7f03632b75c7ad0e56d86b5
d34e4431152def1657c5d69b017c3bfc5dad886d806b3339adae4cc7e9c2df3c
08b3c4f7f08d03725b1b1aa4ca587c8cc182778114a24d559cd006373114b8c1
b5290138872280931045e1b45ad64f9c7082641c4dd7c90da5c7d1e1fd48c468
f54e7aca7712358bd59d1927b8d9b846c7a8c4fb735db3f8dc38992a5e6f2a5c
0bfb655ed8366f43a533c29816b77c35bc77590f4d06e712d13e080a76eac491
f1ac8762ad4d607ac7222c5c204d9688d18607ab8c8c39562134b529fafe7b18
0a29d41cf916c933cf5d16d4f5562eadb07fb2f67898c6e538d14004dd73c773
36e271ecc4ce11a7956fadc96a1adac3961ddf7d9d91ec71a7ec0874654130f0
d02dbb4b8039666f90eb0bcdbc077776e849bbe68b82eaa9cf39c8effb6a3dcb
5329e1c3f80362d2aa8de7ad19a990cbb7fde25b5b4bd2b69fd08773f985c78c
7bc5480571adb2dedf9872384efeda233d02f1bc64265a59097640891e141eed
e8ffd8764f3b7094944daf8555839411dbe61514931fe7a05b2f9e9898e0f903
a10f2f268797d6fb46a53e28545895281ec137a2a285d8d6395f16029449151b
204bf7f9d0470e3fc37483fa323f258ffc595ed57705fb8a1afe5963c1bff1bd
6b74d147de736ccee6e258b693a42982d4b7c1116fdd2751d648ea7c00f88365
12655955d59c1a6ca20af5941e2b9b834ef2070e07ebfcdc184a74655c794b6b
9b97a38e648988ed9ff1d2413765186b040520a688ce4075fbf1c83735f191a0
e55d4ed35aa41ad04266bce11b67fa98fb607fd1c3c6bede69fbb9dea37f7568
6c77972f95b911154b3210a72c5ce975acb5c9b30836c7216ef2b61a686fcca9
8b84f5c87f0ba1ecc5a01c71e0f1ea2a12b0d62195bc72320ca62e7033e6ecbd
91920857b038d0f7fa99306dc8fb543eda490f968194bce2aadead3118bc2999
db583d2082aa396526df32d04edb3e0514714af4530d6de8e999333221b6f670
81a75d07314acae039cc44089a41ef18c6e9e8adfd89f305ec9ab9123a2b2f47
f20860e0fb4a45f208fd55dc2a06e9eb395aba1bd9c38139905baeb29aa88425
bca3f07f0f9733743d240c45bcf9b5fbb22532c6f6d48dee9ad160a31e214fb3
18a0d99e7dfc80744910b6d0553ab2fd458b315a836118c7105340885cae2c3a
dccb1052a4fce63b15cf8e5c539e513b72eafcf7d858ff6c5ec739668f1842e1
5cd865cea8c09ba0119db4edbf4ca7f14e88ec92af02600fd68a24838fe68175
45024beb74868d0df5813bf17793adf7507c606e6c81e9e6d837bd0f2aadb615
18f1d7f455db0f80acc837fc69a4f17759b2a91314276c19372c3e9a0ee9bff5
7ca74e9ccf561aee09b7ace5ac5a07740eae5ff9833307bd18cdcb32d62f2d4d
bf3db911ab4872fcb39b22008816f6ee0ef3c0525d44507550b223e6a446b0e9
82d0925fffab83b260a14321119a7fec68a739c9691660d87cd7a04a7909c97c
7310b4707d8479cef68e0b39de4fe4d70101955137d8b7be1fce8f95ec066c47
aeb9b2fe879421142456f3a84fd2c7e05df3863ecf6930ea96ec6a33f07a53bd
4392d0807aaa5b6c8af8dc10a908e4d82f545a2c102f51e15687ef22916debc1
3fe61c549ca92bc85dd129491fed6dc1cc8a0c4b6fbda129625ebba8a9facdad
1abfe92c9d32ee531cec60b9ec4195237972c54b4fac21e76f09951574378680
eb8e93d96babc62627cc9adc0cf5aaa4b5bbc5e13a6c5477c2a0388fd5503944
699874f6d3a7da85575022704669d9506d9133cbe87893142fec39248e3e0bd5
5ae2227a5449333a557be1932f06286d6f4c770e6fd20f6969707aedea070d71
b2c020f9de954cba043e800d0762060e54315733b5bcad2885c081d2ec80376b
82b54a1f991dfd626c333a9a5fdf0df2514836b372f5aea348c8270385bc3086
74748c85210c85e71068c26b021e8c5801e9f7f2a0380ba510cef02c422963df
c45c0ff1ce993200a02b2186a4ec6382ebc0b369741fdf1ca46fbc1729edd540
0b54f113bf895dd757e50557776c3b7da249f58cf649fb66fa088b73d2df7c44
3fceeba9f04e71ef3de0adf4b75d6c7d657c4d983caea7a5fe9b48cd0f07768c
7969142616094f4b90d3c2cff54ebaa591b925022b4a6902cf0d545ab5179e05
4e4a00be84d1e2b34fee383c72fd72609c891e07b3ad0b3eb1c6e1262240853f
2e14a1db509bbb58f7c0203df3800fba7cf83ffca03554e898a5835a324f2395
36d274c9d299463357dcb563ba8f9846f269dd438dc818a7cbf926b3c79e27fa
25d5f2fb81d6b5dde796505d4fd130b4ad8dff3d02d2a5958063a104adbed993
c4a6902791b02cb838eb5b40b993a5ad85974eea755aff63b22043fc81d8b7e5
6002b14f1ce160dad95339735ca8cd159a1cc1caa84546fd30598b653211ef98
54ccf27ec8ee536e4fb5aa459c6aeb0abbc7d017a993f6f48ec54a7a26fc40ed
ed3f70428fee9e9ee6a5d7dbc6fed471823a02577bd650e611e8f6bf1acc1ca6
94c46a1019dabf5589d65f14ac1faf2d99f7d5631a47526532ffae3a9716e7af
ab9a7a98c98563ae2c6600978be9803e560320161c6ae1553315122330a715eb
80b87d4c54f46bbf339adc7fbfb780b8024ca8b2cb9fe8565303e728a5f9d60b
318543be5772aa6908d9ea5ea36e5b824a6567a809f97f3b900aec17497687ef
264cdb7d7018b8cfd723ccb124f3b4581ee8dfca5c4cf6f8a0b7a380ac88e25e
0bc45c53683745fe215fe021a28d5dd98666d3795d3bd63ff1ef1454ac376bbc
56c47e
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
TeXDict begin 40258431 52099146 1000 600 600 (ex2.soln.dvi)
@start
%DVIPSBitmapFont: Fa cmmi8 8 1
/Fa 1 110 df<27078007F0137E3C1FE01FFC03FF803C18F0781F0783E03B3878E00F1E
01263079C001B87F26707F8013B00060010013F001FE14E000E015C0485A491480008102
1F130300015F491400A200034A13076049133E170F0007027EEC8080188149017C131F18
01000F02FCEB3F03053E130049495C180E001F0101EC1E0C183C010049EB0FF0000E6D48
EB03E0391F7E9D3E>109 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fb cmtt10 10.95 61
/Fb 61 125 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF80A3EA7F00
A2121C09396DB830>33 D<903907C007C0A2496C487EA8011F131FA202C05BA3007FB7FC
A2B81280A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F90B512FE4881B812
80A36C1600A22701FC01FCC7FCA300031303A201F85BA76C486C5AA229387DB730>35
D<1438147C14FCA4EB03FF011F13E090B512FC4880000780481580261FFEFD13C09039F0
FC3FE0D83FC0131FD87F80EB0FF001001307007E15F800FE14035A1507A36CEC03F0A200
7F91C7FC138013C0EA3FF0EA1FFE13FF6C13FF6C14E0000114F86C6C7F011F7F01037F01
00148002FD13C09138FC7FE0151FED0FF015070018EC03F8127E1501B4FCA35AA26CEC03
F07E01801307ED0FE0D83FC0131F01F0EB7FC0D81FFEB512806CB612006C5C6C5CC614F0
013F13C0D907FEC7FCEB00FCA5147C143825477BBE30>I<141E147F14FF5BEB03FEEB07
FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B485A120F5BA2485AA2123F5BA212
7F90C7FCA412FEAD127FA47F123FA27F121FA26C7EA27F12076C7E7F12017F6C7EEB7F80
EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E184771BE30>40
D<127812FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C0131FEB0FE014F0
1307A2EB03F8A214FC1301A214FE1300A4147FAD14FEA4130114FCA2130314F8A2EB07F0
A2130F14E0EB1FC0133F1480137FEBFF00485A485A485A485AEA3FE0485A485A90C7FC5A
1278184778BE30>I<143EA2147FAF007FB7FCA2B81280A36C1600A2C76CC8FCAF143EA2
29297DAF30>43 DI<007FB6
12F0A2B712F8A36C15F0A225077B9E30>I<14FE903807FFC0497F013F13F8497F90B57E
48EB83FF4848C6138049137F4848EB3FC04848EB1FE049130F001F15F0491307A24848EB
03F8A290C712014815FCA400FEEC00FEAD6C14016C15FCA36D1303003F15F8A26D130700
1F15F0A26D130F6C6CEB1FE0A26C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE
6D5B6D5B010F13E06D5BD900FEC7FC273A7CB830>48 DIIII54 D<127CB712FC16FEA416FC48C7EA0FF816F0ED1FE0007CEC
3FC0C8EA7F80EDFF00A24A5A4A5A5D14075D140F5D4A5AA24A5AA24AC7FCA25C5C13015C
A213035CA213075CA4495AA6131F5CA96D5A6DC8FC273A7CB830>I<49B4FC010F13E001
3F13F890B57E4880488048010113803A0FFC007FC0D81FF0EB3FE04848131F49EB0FF048
481307A290C7EA03F85A4815FC1501A416FEA37E7E6D1303A26C6C13076C6C130F6D133F
D80FFC13FF6CB6FC7E6C14FE6C14F9013FEBE1FC010F138190380060011400ED03F8A215
0716F0150F000F15E0486C131F486CEB3FC0157FEDFF804A1300EC07FE391FF01FFC90B5
5A6C5C6C5C6C1480C649C7FCEB3FF0273A7CB830>57 D<120FEA3FC0EA7FE0A2EAFFF0A4
EA7FE0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00
0C276EA630>II<16F01503ED07F8151F157FEDFFF014
034A13C0021F138091383FFE00ECFFF8495B010713C0495BD93FFEC7FC495A3801FFF048
5B000F13804890C8FCEA7FFC5BEAFFE05B7FEA7FF87FEA1FFF6C7F000313E06C7F38007F
FC6D7E90380FFF806D7F010113F06D7FEC3FFE91381FFF80020713C06E13F01400ED7FF8
151F1507ED03F01500252F7BB230>I<007FB7FCA2B81280A36C16006C5DCBFCA7003FB6
12FE4881B81280A36C1600A229157DA530>I<147F4A7EA2497FA4497F14F7A401077F14
E3A3010F7FA314C1A2011F7FA490383F80FEA590387F007FA4498049133F90B6FCA34881
A39038FC001F00038149130FA4000781491307A2D87FFFEB7FFFB56CB51280A46C496C13
0029397DB830>65 D<91387F803C903903FFF03E49EBFC7E011F13FE49EBFFFE5B9038FF
E07F48EB801F3903FE000F484813075B48481303A2484813015B123F491300A2127F90C8
FC167C16005A5AAC7E7EA2167C6D14FE123FA27F121F6D13016C6C14FCA26C6CEB03F86D
13076C6CEB0FF03901FF801F6C9038E07FE06DB512C06D14806D1400010713FC6D13F090
38007FC0273A7CB830>67 D<003FB512E04814FCB67E6F7E6C816C813A03F8007FF0ED1F
F8150F6F7E6F7E15016F7EA2EE7F80A2163F17C0161FA4EE0FE0AC161F17C0A3163F1780
A2167F17005E4B5A15034B5A150F4B5AED7FF0003FB65A485DB75A93C7FC6C14FC6C14E0
2B387FB730>I<007FB7FCB81280A47ED803F8C7123FA8EE1F0093C7FCA4157C15FEA490
B5FCA6EBF800A4157C92C8FCA5EE07C0EE0FE0A9007FB7FCB8FCA46C16C02B387EB730>
I<003FB712804816C0B8FCA27E7ED801FCC7121FA8EE0F8093C7FCA5153E157FA490B6FC
A69038FC007FA4153E92C8FCAE383FFFF8487FB5FCA27E6C5B2A387EB730>I<02FF13F0
0103EBC0F8010F13F1013F13FD4913FF90B6FC4813C1EC007F4848133F4848131F49130F
485A491307121F5B123F491303A2127F90C7FC6F5A92C8FC5A5AA892B5FC4A14805CA26C
7F6C6D1400ED03F8A27F003F1407A27F121F6D130F120F7F6C6C131FA2D803FE133F6C6C
137FECC1FF6C90B5FC7F6D13FB010F13F30103EBC1F0010090C8FC293A7DB830>I<007F
B6FCB71280A46C1500260007F0C7FCB3B3A8007FB6FCB71280A46C1500213879B730>73
D<383FFFF8487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003FB7FC5AB8FCA2
7E6C16802A387EB730>76 D78
D<90383FFFE048B512FC000714FF4815804815C04815E0EBF80001E0133FD87F80EB0FF0
A290C71207A44815F8481403B3A96C1407A26C15F0A36D130FA26D131F6C6CEB3FE001F8
13FF90B6FC6C15C06C15806C1500000114FCD8003F13E0253A7BB830>I<007FB512F0B6
12FE6F7E16E0826C813903F8003FED0FFCED03FE15016F7EA2821780163FA6167F17005E
A24B5A1503ED0FFCED3FF890B6FC5E5E16804BC7FC15F001F8C9FCB0387FFFC0B57EA46C
5B29387EB730>I<003FB57E4814F0B612FC15FF6C816C812603F8017F9138003FF0151F
6F7E15071503821501A515035E1507150F4B5A153F4AB45A90B65A5E93C7FC5D8182D9F8
007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003FB4801C0EBFFF8B56C7E17F0
6C496C13E06C49EB7FC0C9EA1F002E397FB730>82 D<90390FF803C0D97FFF13E048B512
C74814F74814FF5A381FF80F383FE001497E4848137F90C7123F5A48141FA2150FA37EED
07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E0000114F86C80011F13FF010314
80D9003F13C014019138007FE0151FED0FF0A2ED07F8A2007C140312FEA56C140716F07F
6DEB0FE06D131F01F8EB3FC001FF13FF91B51280160000FD5CD8FC7F13F8D8F81F5BD878
011380253A7BB830>I<003FB712C04816E0B8FCA43AFE003F800FA8007CED07C0C791C7
FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<007FB612F0A2B712F8A36C15F0A225
077B7D30>95 D97 DII<913801FFE04A7F5CA28080EC0007AAEB03FE90381FFF874913E7
90B6FC5A5A481303380FFC00D81FF0133F49131F485A150F4848130790C7FCA25AA25AA8
7E6C140FA27F003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFFC06CB712E06C16
F06C14F76D01C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4FC010713E0011F
13F8017F7F90B57E488048018113803A07FC007FC04848133FD81FE0EB1FE0150F484814
F0491307127F90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC01F06DEB03F86C
7E6C7E6D1307D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F14806DEBFE00010713
F8010013C0252A7CA830>IIII<14E0EB03F8A2497EA36D5AA2EB00E091C8FC
A9381FFFF8487F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C15C023397AB830
>III<387FFFF8B57EA47EEA0001B3
B3A8007FB612F0B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF01FF80D8FFEF01
877F90B500CF7F15DF92B57E6C010F13872607FE07EB03F801FC13FE9039F803FC01A201
F013F8A301E013F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C01071380322881A7
30>II<49B4FC010F13E0013F13F8497F90B57E0003
ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F8491303007F15FC90
C71201A300FEEC00FEA86C14016C15FCA26D1303003F15F86D13076D130F6C6CEB1FF06C
6CEB3FE06D137F3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F13E0010190C7FC
272A7CA830>II<49B413F8
010FEBC1FC013F13F14913FD48B6FC5A481381390FFC007F49131F4848130F491307485A
491303127F90C7FC15015A5AA77E7E15037FA26C6C1307150F6C6C131F6C6C133F01FC13
7F3907FF01FF6C90B5FC6C14FD6C14F9013F13F1010F13C1903803FE0190C7FCAD92B512
F84A14FCA46E14F82E3C7DA730>II<90381FFC1E48B5129F000714FF5A5A
5A387FF007EB800100FEC7FC4880A46C143E007F91C7FC13E06CB4FC6C13FC6CEBFF806C
14E0000114F86C6C7F01037F9038000FFF02001380007C147F00FEEC1FC0A2150F7EA27F
151F6DEB3F806D137F9039FC03FF0090B6FC5D5D00FC14F0D8F83F13C026780FFEC7FC22
2A79A830>III<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C
496C13803B01F80003F000A26D130700005DA26D130F017E5CA2017F131F6D5CA2EC803F
011F91C7FCA26E5A010F137EA2ECE0FE01075BA214F101035BA3903801FBF0A314FF6D5B
A36E5A6E5A2B277EA630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C16F06C496C13E0
D807E0C7EA3F00A26D5C0003157EA56D14FE00015DEC0F80EC1FC0EC3FE0A33A00FC7FF1
F8A2147DA2ECFDF9017C5C14F8A3017E13FBA290393FF07FE0A3ECE03FA2011F5C90390F
800F802D277FA630>I<3A3FFF81FFFC4801C37FB580A26C5D6C01815BC648C66CC7FC13
7FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F06DB45A6D5B7F6D5B92C8FC147E147F5C
497F81903803F7E0EB07E790380FE3F0ECC1F890381F81FC90383F80FE90387F007E017E
137F01FE6D7E48486D7E267FFF80B5FCB500C1148014E3A214C16C0180140029277DA630
>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01FC0003F000A20000
14076D5C137E150F017F5C7F151FD91F805BA214C0010F49C7FCA214E00107137EA2EB03
F0157C15FCEB01F85DA2EB00F9ECFDF0147D147FA26E5AA36E5AA35DA2143F92C8FCA25C
147EA2000F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFFE06C5B5C6C90C9FC6C5AEA01F0
2B3C7EA630>I<127CA212FEB3B3B3AD127CA207476CBE30>124 D
E
%EndDVIPSBitmapFont
/Fc 145[56 1[28 2[29 55 2[41 1[40 1[51 97[{
TeXBase1Encoding ReEncodeFont}7 90.9091 /Utopia-Italic
rf
%DVIPSBitmapFont: Fd cmsy8 8 1
/Fd 1 1 df0 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fe cmsy10 10.95 3
/Fe 3 7 df<007FB812F8B912FCA26C17F83604789847>0 D<0060166000F816F06C1501
007E15036CED07E06C6CEC0FC06C6CEC1F806C6CEC3F006C6C147E6C6C5C6C6C495A017E
495A6D495A6D6C485A6D6C485A6D6C48C7FC903803F07E6D6C5A903800FDF8EC7FF06E5A
6E5AA24A7E4A7EECFDF8903801F8FC903803F07E49487E49486C7E49486C7E49486C7E01
7E6D7E496D7E48486D7E4848147E4848804848EC1F804848EC0FC048C8EA07E0007EED03
F0481501481500006016602C2C73AC47>2 D<1506150FB3A9007FB912E0BA12F0A26C18
E0C8000FC9FCB3A6007FB912E0BA12F0A26C18E03C3C7BBC47>6
D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Ff cmr10 10.95 12
/Ff 12 109 df<16E04B7EA24B7EA24B7EA24B7EA2ED1DFFA203387FA29238787FC01570
9238F03FE015E002016D7E15C002036D7E158002076D7E15004A6D7E140E021E6D7E141C
023C6D7F143802786E7E147002F06E7E5C01016F7E5C01036F7E5C01076F7E91C8FC496F
7E130E011E6F7E131C013C6F7F13380178707E137001F0707E5B0001717E5B0003717E5B
0007717E90CAFC48717E120E001E717E001FBAFC481980A24819C0A2BB12E0A243417CC0
4C>1 D<1430147014E0EB01C0EB03801307EB0F00131E133E133C5B13F85B12015B1203
A2485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C12FCB2127C127EA6123E123FA3
7EA27F120FA27F1207A26C7EA212017F12007F13787F133E131E7FEB07801303EB01C0EB
00E014701430145A77C323>40 D<12C07E12707E7E121E7E6C7E7F12036C7E7F12007F13
78137CA27FA2133F7FA21480130FA214C0A3130714E0A6130314F0B214E01307A614C013
0FA31480A2131F1400A25B133EA25BA2137813F85B12015B485A12075B48C7FC121E121C
5A5A5A5A145A7BC323>I<1506150FB3A9007FB912E0BA12F0A26C18E0C8000FC9FCB3A9
15063C3C7BB447>43 D48 DIII<150E151E153EA2157EA215FE1401
A21403EC077E1406140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5BA25B
5BA25B5B1201485A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6FCA3
283E7EBD2D>I<007FB912E0BA12F0A26C18E0CDFCAE007FB912E0BA12F0A26C18E03C16
7BA147>61 D<167C903903F801FF903A1FFF078F8090397E0FDE1F9038F803F83803F001
A23B07E000FC0600000F6EC7FC49137E001F147FA8000F147E6D13FE00075C6C6C485AA2
3901F803E03903FE0FC026071FFFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015
FE6C6E7E6C15E06C810003813A0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D
007C153E007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC
010313C0293D7EA82D>103 D108 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fg cmr8 8 8
/Fg 8 58 df48 D<130C133C137CEA03FC12FFEAFC7C1200B3
B113FE387FFFFEA2172C7AAB23>III<140EA2
141E143EA2147E14FEA2EB01BE1303143E1306130E130C131813381330136013E013C0EA
0180120313001206120E120C5A123812305A12E0B612FCA2C7EA3E00A9147F90381FFFFC
A21E2D7EAC23>I<000CEB0180380FC01F90B512005C5C14F014C0D80C7EC7FC90C8FCA8
EB1FC0EB7FF8380DE07C380F801F01001380000E130F000CEB07C0C713E0A2140315F0A4
127812FCA448EB07E012E0006014C00070130F6C14806CEB1F006C133E380780F83801FF
E038007F801C2D7DAB23>I56 DI
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fh cmmi10 10.95 21
/Fh 21 123 df<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A3120113
80120313005A120E5A1218123812300B1C798919>59 D61 D<17075F84171FA2173F
177FA217FFA25E5EA24C6C7EA2EE0E3F161E161C1638A21670A216E0ED01C084ED038017
1FED07005D150E5DA25D157815705D844A5A170F4A5A4AC7FC92B6FC5CA2021CC7120F14
3C14384A81A24A140713015C495AA249C8FC5B130E131E4982137C13FED807FFED1FFEB5
00F00107B512FCA219F83E417DC044>65 D67 D<49B9FCA3D9000190C7120718004B157F193F191E14035DA314075D191CA2
140F5D17074D133C021F020E13384B1500A2171E023F141C4B133C177C17FC027FEB03F8
92B5FCA39139FF8003F0ED00011600A2495D5CA2160101035D5CA293C9FC13075CA3130F
5CA3131F5CA2133FA25C497EB612F8A3403E7DBD3A>70 D<92B612E0A39239003FF00016
1F5FA2163F5FA3167F5FA316FF94C7FCA35D5EA315035EA315075EA3150F5EA3151FA25E
A2153FA25EA2157FA25EA2D80F8013FFEA3FC0486C91C8FCA25CD8FFC05B140301805B49
485A00FC5C0070495A0078495A0038495A001E017EC9FC380F81FC3803FFE0C690CAFC33
407ABD32>74 D<49B600C090387FFFF896B5FC5FD900010180C7000F130093C813F84B16
E01A804FC7FC0203163C4B15F84E5AF003C002074B5A4B021FC8FC183E1878020F5D4BEB
03E0EF07804DC9FC021F143E4B5B17F04C5A023F1307EDC00F4C7E163F027FEBFFF8ED81
EFED83CF92388F87FC9138FF9F0792383C03FE15784B6C7E4913E0158092C77F5C01036F
7E5C717EA213074A6E7EA2717E130F4A6E7EA284011F15035C717E133F855C496C4A13E0
B600E0017F13FFA34D3E7DBD4D>I<49B712F018FF19C0D9000190C76C7EF00FF84BEC03
FC1801020382727E5DA214071A805DA2140F4E13005DA2021F5E18034B5D1807023F5E4E
5A4B4A5A4E5A027F4B5A06FEC7FC4BEB03FCEF3FF091B712C005FCC8FC92CBFCA25BA25C
A21303A25CA21307A25CA2130FA25CA2131FA25CA2133FA25C497EB612E0A3413E7DBD3A
>80 D<48B912FCA25A913A0003FE000F01F84A1301D807E0EE00F8491307491778000F5D
90C7FC001E140FA2001C4B1470123C0038141FA200785D1270033F15F000F018E0485DC8
1600157FA25EA215FFA293C9FCA25CA25DA21403A25DA21407A25DA2140FA25DA2141FA2
5DA2143FA25DA2147FA214FF497F001FB612FCA25E3E3D7FBC35>84
D86 D<027FB5D88007B512C091
B6FCA2020101F8C7EBF8009126007FE0EC7F804C92C7FC033F157C701478616F6C495A4E
5A6F6C495A4EC8FC180E6F6C5B606F6C5B6017016F6C485A4D5A6F018FC9FC179E17BCEE
7FF85F705AA3707EA283163F167FEEF7FCED01E7EEC3FEED0383ED070392380E01FF151E
4B6C7F5D5D4A486D7E4A5A4A486D7E92C7FC140E4A6E7E5C4A6E7E14F0495A49486E7E13
07D91F806E7ED97FC014072603FFE0EC1FFF007F01FC49B512FEB55CA24A3E7EBD4B>88
DI
98 DI<143C14FEA21301A314FCEB00701400AD137E3801
FF803803C7C0EA0703000F13E0120E121C13071238A2EA780F007013C0A2EAF01F148012
00133F14005B137EA213FE5BA212015B0003130E13F0A20007131EEBE01CA2143CEBC038
1478147014E013C13803E3C03801FF00EA007C173E7EBC1F>105
D107
D<01F8D907F0EB07F8D803FED93FFEEB1FFE28078F80F81FEB781F3E0F0F81C00F81E00F
803E0E07C78007C3C007C0001CD9CF00EBC78002FEDAEF007F003C4914FE0038495C4948
5C12780070495CA200F0494948130F011F600000495CA2041F141F013F6091C75B193F04
3F92C7FC5B017E92C75A197E5E01FE9438FE01C049027E14FCA204FE01011303000106F8
1380495CF20700030115F00003190E494A151E1A1C03035E0007943800F8F0494AEC7FE0
D801C0D900E0EC1F804A297EA750>109 D<91381F800C9138FFE01C903903F0707C9039
0FC0387890391F801CF890383F000F137E4914F000011407485A485A16E0485A121F150F
484814C0A3007F141F491480A300FF143F90C71300A35D48147EA315FE007E495A1403A2
6C13074A5A381F801D000F13793807C1F33901FFC3F038007F03130014075DA3140F5DA3
141F5DA2143F147F90381FFFFE5BA2263A7DA729>113 D115 D120 D<02F8130ED903FE131ED90FFF131C49EB803C49
EBC0784914F090397E07F1E09038F800FF49EB1FC049EB07800001EC0F006C48131E90C7
5A5D5D4A5A4A5A4A5A4AC7FC143E14785C495A495A495A49C8FC011E14E05B5B49130148
48EB03C0485AD807F8EB078048B4131F3A1F87E07F00391E03FFFE486C5B00785CD87000
5B00F0EB7FC048011FC7FC27297DA72A>122 D E
%EndDVIPSBitmapFont
/Fi 136[70 3[41 40 3[58 8[47 33[63 1[59 6[25 1[51 51
51 51 51 51 51 51 2[25 46[{TeXBase1Encoding ReEncodeFont}17
90.9091 /Utopia-Bold rf /Fj 107[47 47 24[48 52 1[77 1[63
37 44 44 59 61 58 64 94 31 2[31 63 53 1[52 1[49 60 54
7[61 3[78 1[56 1[77 65 2[91 58 70 1[38 4[77 69 1[64 6[28
3[56 56 56 56 2[56 3[28 2[36 36 6[28 33[{TeXBase1Encoding ReEncodeFont}
44 99.6264 /Utopia-Bold rf /Fk 153[31 102[{
TeXBase1Encoding ReEncodeFont}1 99.6264 /Utopia-Italic
rf /Fl 171[62 1[64 1[60 80[{TeXBase1Encoding ReEncodeFont}3
99.6264 /Utopia-Regular rf /Fm 107[42 42 24[44 46 44
70 46 55 31 40 35 54 55 52 56 84 25 48 25 26 55 47 29
47 54 45 54 48 7[53 57 85 1[72 56 49 59 1[55 69 71 86
52 60 32 32 73 67 53 55 71 62 59 58 1[35 4[24 48 48 48
48 48 48 48 48 48 48 42 24 36 24 52 1[32 32 25 2[48 32[55
55 2[{TeXBase1Encoding ReEncodeFont}74 90.9091 /Utopia-Regular
rf /Fn 135[108 2[130 76 92 3[121 132 196 64 2[65 7[112
13[116 13[130 18[116 50[{TeXBase1Encoding ReEncodeFont}13
206.559 /Utopia-Bold rf /Fo 139[41 7[33 2[35 6[71 63
26[69 18[63 63 1[63 2[47 45[{TeXBase1Encoding ReEncodeFont}10
119.552 /Utopia-Regular rf /Fp 133[58 4[75 44 1[53 1[74
70 76 113 3[38 1[64 1[62 3[65 13[67 3[92 1[110 9[82 8[33
6[67 1[67 49[{TeXBase1Encoding ReEncodeFont}19 119.552
/Utopia-Bold rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%EndSetup
%%Page: 1 1
1 0 bop 982 119 a Fp(CMSC)25 b(311:)32 b(C)o(omputer)25
b(O)o(r)q(ganization)1728 292 y Fo(F)-6 b(all)28 b(2002)1132
620 y Fn(Exam)44 b(2)f(Solutions)1252 880 y Fm(CMSC)21
b(311)g(C)o(omputer)h(Or)o(ganization)1785 993 y(F)l(all)e(2002)1849
1106 y Fl(R)m(T)p Fk(f)f Fl(P)90 1414 y Fj(Q)o(uiz)i(3)g(\(Sequential)f
(Logic\):)28 b(\223S)n(tate)20 b(Y)-9 b(our)21 b(A)q(ssumptions)l(\224)
i(\(40)e(points\))90 1631 y Fi(3.1)46 b Fm(\(2)20 b(pts\))h(H)m(o)m(w)f
(much)h(infor)q(mation)i(does)d(a)g(single)i(\003ip)f(\003op)h(stor)n
(e?)317 1781 y Fi(Answ)o(er)r(:)i Fm(1)d(bit)90 1969
y Fi(3.2)46 b Fm(\(2)20 b(pts\))h(What)g(does)f(sequential)g(logic)j
(pr)o(o)m(vide)f(that)f(combinational)i(logic)f(does)f(not?)317
2119 y Fi(Answ)o(er)r(:)42 b Fm(I)n(t)29 b(has)g(\223)-5
b(state)g(\224)-12 b(,)32 b(i.e)n(.,)h(it)d(has)f(memor)r(y)h(and)g
(can)g(compute)h(output)g(v)o(alues)f(based)f(on)317
2232 y(inputs)22 b(and)e(state)n(.)90 2420 y Fi(3.3)46
b Fm(\(3)20 b(pts\))h(W)l(r)q(ite)g(the)g(ex)o(citation)h(table)e(for)i
(a)e(JK)g(\003ip)h(\003op)l(.)317 2570 y Fi(Answ)o(er)r(:)j
Fm(Done)d(in)g(class)n(.)90 2758 y Fi(3.4)46 b Fm(\(10)24
b(pts\))g(H)m(er)n(e)-5 b(')-10 b(s)23 b(a)g(\002nite)i(state)f
(machine)n(.)36 b(The)24 b(states)f(ar)n(e)h(wr)q(itten)h(\(in)f(the)g
(cir)n(cles\))h(as)e Fh(q)s Fm(/)p Fh(z)t Fm(.)36 b(That)317
2871 y(is)o(,)21 b(the)g(state)f(v)o(alue)g(is)h(wr)q(itten)g(\002rst,)
g(follo)m(w)o(ed)i(b)n(y)d(the)h(output.)27 b Fh(x)20
b Fm(is)h(the)g(inputs)n(.)1233 2992 y
11561009 9826850 0 0 16840130 14406205 startTexFig
1233 2992 a
%%BeginDocument: Figs/fsm.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: fsm.eps
%%Creator: fig2dev Version 3.2 Patchlevel 3c
%%CreationDate: Mon Dec 9 09:07:43 2002
%%For: clin@chexmix (Charles Lin,1127 AVW,(301) 405-2709,,)
%%BoundingBox: 0 0 256 219
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 219 moveto 0 0 lineto 256 0 lineto 256 219 lineto closepath clip newpath
-106.0 263.0 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/DrawEllipse {
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y tr xrad yrad sc 0 0 1 startangle endangle arc
closepath
savematrix setmatrix
} def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
%%Page: 1 1
10 setmiterlimit
0.06000 0.06000 sc
%
% Fig objects follow
%
/Times-Roman ff 360.00 scf sf
4800 3000 m
gs 1 -1 sc (x= 0) col0 sh gr
/Times-Roman ff 360.00 scf sf
4950 2325 m
gs 1 -1 sc (x=1) col0 sh gr
/Times-Roman ff 360.00 scf sf
5100 3975 m
gs 1 -1 sc (11/00) col0 sh gr
/Times-Roman ff 360.00 scf sf
1950 3975 m
gs 1 -1 sc (10/11) col0 sh gr
/Times-Roman ff 360.00 scf sf
5025 1575 m
gs 1 -1 sc (01/10) col0 sh gr
/Times-Roman ff 360.00 scf sf
2025 1575 m
gs 1 -1 sc (00/01) col0 sh gr
/Times-Roman ff 360.00 scf sf
3525 3675 m
gs 1 -1 sc (x= 0) col0 sh gr
/Times-Roman ff 360.00 scf sf
3600 1650 m
gs 1 -1 sc (x= 0) col0 sh gr
/Times-Roman ff 360.00 scf sf
2175 2250 m
gs 1 -1 sc (x= 0) col0 sh gr
/Times-Roman ff 360.00 scf sf
3675 4350 m
gs 1 -1 sc (x=1) col0 sh gr
/Times-Roman ff 360.00 scf sf
3675 975 m
gs 1 -1 sc (x=1) col0 sh gr
/Times-Roman ff 360.00 scf sf
2250 3150 m
gs 1 -1 sc (x=1) col0 sh gr
% Polyline
15.000 slw
gs clippath
2910 1260 m 2910 1440 l 3317 1440 l 2957 1350 l 3317 1260 l cp
eoclip
n 4875 1350 m
2925 1350 l gs col0 s gr gr
% arrowhead
n 3317 1260 m 2957 1350 l 3317 1440 l 3317 1260 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
4965 1215 m 4965 1035 l 4558 1035 l 4918 1125 l 4558 1215 l cp
eoclip
n 4950 1125 m
2850 1125 l gs col0 s gr gr
% arrowhead
n 4558 1215 m 4918 1125 l 4558 1035 l 4558 1215 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
2835 3960 m 2835 4140 l 3242 4140 l 2882 4050 l 3242 3960 l cp
eoclip
n 4950 4050 m
2850 4050 l gs col0 s gr gr
% arrowhead
n 3242 3960 m 2882 4050 l 3242 4140 l 3242 3960 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
4965 3915 m 4965 3735 l 4558 3735 l 4918 3825 l 4558 3915 l cp
eoclip
n 4950 3825 m
2850 3825 l gs col0 s gr gr
% arrowhead
n 4558 3915 m 4918 3825 l 4558 3735 l 4558 3915 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
2782 3614 m 2894 3754 l 3212 3500 l 2875 3655 l 3099 3359 l cp
eoclip
n 5100 1875 m
2850 3675 l gs col0 s gr gr
% arrowhead
n 3099 3359 m 2875 3655 l 3212 3500 l 3099 3359 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
4943 1709 m 4829 1571 l 4515 1831 l 4850 1671 l 4630 1969 l cp
eoclip
n 4875 1650 m
2700 3450 l gs col0 s gr gr
% arrowhead
n 4630 1969 m 4850 1671 l 4515 1831 l 4630 1969 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
2971 1421 m 2855 1559 l 3168 1820 l 2950 1521 l 3284 1682 l cp
eoclip
n 5175 3375 m
2925 1500 l gs col0 s gr gr
% arrowhead
n 3284 1682 m 2950 1521 l 3168 1820 l 3284 1682 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
4904 3678 m 5018 3540 l 4705 3280 l 4925 3579 l 4590 3418 l cp
eoclip
n 2775 1800 m
4950 3600 l gs col0 s gr gr
% arrowhead
n 4590 3418 m 4925 3579 l 4705 3280 l 4590 3418 l cp gs 0.00 setgray ef gr col0 s
% Ellipse
n 5475 3825 541 541 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 2325 3825 541 541 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 5400 1425 541 541 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 2400 1425 541 541 0 360 DrawEllipse gs col0 s gr
$F2psEnd
rs
%%EndDocument
endTexFig
317 4465 a Fm(F)o(ill)29 b(in)f(the)f(follo)m(wing)j(char)q(t.)46
b(S)o(ome)28 b(columns)g(do)g(not)g(have)e(labels)n(.)46
b(Y)-8 b(ou)28 b(should)h(\002ll)f(in)g(their)317 4578
y(names)n(.)d(U)l(se)20 b(a)g(T)h(\003ip)h(\003op)f(to)g(implement)h
Fh(q)1922 4592 y Fg(1)1981 4578 y Fm(and)f(a)f(JK)g(\003ip)i(\003op)f
(to)g(implement)h Fh(q)3303 4592 y Fg(0)3342 4578 y Fm(.)317
4728 y Fi(Answ)o(er)r(:)i Fm(Answ)o(er)c(not)i(curr)n(ently)g(av)o
(ailable)n(.)1941 5497 y(1)p eop
%%Page: 2 2
2 1 bop 500 28 a
23122018 20578588 0 0 23812997 21379072 startTexFig
500 28 a
%%BeginDocument: Figs/chart.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: chart.eps
%%Creator: fig2dev Version 3.2 Patchlevel 3c
%%CreationDate: Mon Dec 9 09:24:15 2002
%%For: clin@chexmix (Charles Lin,1127 AVW,(301) 405-2709,,)
%%BoundingBox: 0 0 362 325
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 325 moveto 0 0 lineto 362 0 lineto 362 325 lineto closepath clip newpath
-71.0 361.0 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
%%Page: 1 1
10 setmiterlimit
0.06000 0.06000 sc
%
% Fig objects follow
%
% Polyline
7.500 slw
n 6600 3600 m 7200 3600 l 7200 4200 l 6600 4200 l
cp gs col0 s gr
% Polyline
n 6600 4200 m 7200 4200 l 7200 4800 l 6600 4800 l
cp gs col0 s gr
% Polyline
n 6600 4800 m 7200 4800 l 7200 5400 l 6600 5400 l
cp gs col0 s gr
% Polyline
n 6600 5400 m 7200 5400 l 7200 6000 l 6600 6000 l
cp gs col0 s gr
% Polyline
n 2400 1200 m 3000 1200 l 3000 1800 l 2400 1800 l
cp gs col0 s gr
/Times-Bold ff 240.00 scf sf
3375 1125 m
gs 1 -1 sc (1) col0 sh gr
/Times-Bold ff 240.00 scf sf
4050 1125 m
gs 1 -1 sc (0) col0 sh gr
/Times-Bold ff 240.00 scf sf
5175 1125 m
gs 1 -1 sc (0) col0 sh gr
/Times-Bold ff 240.00 scf sf
2100 1125 m
gs 1 -1 sc (1) col0 sh gr
/Times-Bold ff 420.00 scf sf
1875 975 m
gs 1 -1 sc (q) col0 sh gr
/Times-Bold ff 420.00 scf sf
2550 975 m
gs 1 -1 sc (q) col0 sh gr
/Times-Bold ff 240.00 scf sf
2775 1125 m
gs 1 -1 sc (0) col0 sh gr
/Times-Bold ff 420.00 scf sf
3150 975 m
gs 1 -1 sc (q) col0 sh gr
/Times-Bold ff 420.00 scf sf
3750 975 m
gs 1 -1 sc (q) col0 sh gr
% Polyline
n 6600 3000 m 7200 3000 l 7200 3600 l 6600 3600 l
cp gs col0 s gr
% Polyline
n 4800 5400 m 5400 5400 l 5400 6000 l 4800 6000 l
cp gs col0 s gr
% Polyline
n 5400 5400 m 6000 5400 l 6000 6000 l 5400 6000 l
cp gs col0 s gr
% Polyline
n 6000 5400 m 6600 5400 l 6600 6000 l 6000 6000 l
cp gs col0 s gr
% Polyline
n 1200 1200 m 1800 1200 l 1800 1800 l 1200 1800 l
cp gs col0 s gr
% Polyline
n 1800 1200 m 2400 1200 l 2400 1800 l 1800 1800 l
cp gs col0 s gr
% Polyline
n 3000 1200 m 3600 1200 l 3600 1800 l 3000 1800 l
cp gs col0 s gr
% Polyline
n 3600 1200 m 4200 1200 l 4200 1800 l 3600 1800 l
cp gs col0 s gr
% Polyline
n 4200 1200 m 4800 1200 l 4800 1800 l 4200 1800 l
cp gs col0 s gr
% Polyline
n 4800 1200 m 5400 1200 l 5400 1800 l 4800 1800 l
cp gs col0 s gr
% Polyline
n 5400 1200 m 6000 1200 l 6000 1800 l 5400 1800 l
cp gs col0 s gr
% Polyline
n 6000 1200 m 6600 1200 l 6600 1800 l 6000 1800 l
cp gs col0 s gr
% Polyline
n 6600 1200 m 7200 1200 l 7200 1800 l 6600 1800 l
cp gs col0 s gr
% Polyline
n 6600 1800 m 7200 1800 l 7200 2400 l 6600 2400 l
cp gs col0 s gr
% Polyline
n 6600 2400 m 7200 2400 l 7200 3000 l 6600 3000 l
cp gs col0 s gr
/Times-Bold ff 420.00 scf sf
4350 975 m
gs 1 -1 sc (z) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
2025 3450 m
gs 1 -1 sc (1) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
2625 3450 m
gs 1 -1 sc (1) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
2025 5250 m
gs 1 -1 sc (1) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
2025 5850 m
gs 1 -1 sc (1) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
2625 5850 m
gs 1 -1 sc (1) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
1425 5850 m
gs 1 -1 sc (1) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
1425 5250 m
gs 1 -1 sc (1) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
1425 4650 m
gs 1 -1 sc (1) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
1425 4050 m
gs 1 -1 sc (1) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
2625 4650 m
gs 1 -1 sc (1) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
2625 2850 m
gs 1 -1 sc (0) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
1425 2850 m
gs 1 -1 sc (0) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
3300 825 m
gs 1 -1 sc (+) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
3900 825 m
gs 1 -1 sc (+) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
2025 2850 m
gs 1 -1 sc (1) col0 sh gr
/Times-Bold ff 240.00 scf sf
4575 1125 m
gs 1 -1 sc (1) col0 sh gr
/Times-Bold ff 420.00 scf sf
4950 975 m
gs 1 -1 sc (z) col0 sh gr
/Times-Bold ff 420.00 scf sf
1425 975 m
gs 1 -1 sc (x) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
1425 1650 m
gs 1 -1 sc (0) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
2025 1650 m
gs 1 -1 sc (0) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
2625 1650 m
gs 1 -1 sc (0) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
1425 2250 m
gs 1 -1 sc (0) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
1425 3450 m
gs 1 -1 sc (0) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
2025 2250 m
gs 1 -1 sc (0) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
2025 4050 m
gs 1 -1 sc (0) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
2025 4650 m
gs 1 -1 sc (0) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
2625 4050 m
gs 1 -1 sc (0) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
2625 5250 m
gs 1 -1 sc (0) col0 sh gr
/NewCenturySchlbk-Bold ff 420.00 scf sf
2625 2250 m
gs 1 -1 sc (1) col0 sh gr
% Polyline
n 4200 5400 m 4800 5400 l 4800 6000 l 4200 6000 l
cp gs col0 s gr
% Polyline
n 4800 2400 m 5400 2400 l 5400 3000 l 4800 3000 l
cp gs col0 s gr
% Polyline
n 5400 2400 m 6000 2400 l 6000 3000 l 5400 3000 l
cp gs col0 s gr
% Polyline
n 6000 2400 m 6600 2400 l 6600 3000 l 6000 3000 l
cp gs col0 s gr
% Polyline
n 1200 3000 m 1800 3000 l 1800 3600 l 1200 3600 l
cp gs col0 s gr
% Polyline
n 1800 3000 m 2400 3000 l 2400 3600 l 1800 3600 l
cp gs col0 s gr
% Polyline
n 2400 3000 m 3000 3000 l 3000 3600 l 2400 3600 l
cp gs col0 s gr
% Polyline
n 3000 3000 m 3600 3000 l 3600 3600 l 3000 3600 l
cp gs col0 s gr
% Polyline
n 3600 3000 m 4200 3000 l 4200 3600 l 3600 3600 l
cp gs col0 s gr
% Polyline
n 4200 3000 m 4800 3000 l 4800 3600 l 4200 3600 l
cp gs col0 s gr
% Polyline
n 4800 3000 m 5400 3000 l 5400 3600 l 4800 3600 l
cp gs col0 s gr
% Polyline
n 5400 3000 m 6000 3000 l 6000 3600 l 5400 3600 l
cp gs col0 s gr
% Polyline
n 6000 3000 m 6600 3000 l 6600 3600 l 6000 3600 l
cp gs col0 s gr
% Polyline
n 1200 3600 m 1800 3600 l 1800 4200 l 1200 4200 l
cp gs col0 s gr
% Polyline
n 1800 3600 m 2400 3600 l 2400 4200 l 1800 4200 l
cp gs col0 s gr
% Polyline
n 4200 2400 m 4800 2400 l 4800 3000 l 4200 3000 l
cp gs col0 s gr
% Polyline
n 1200 1800 m 1800 1800 l 1800 2400 l 1200 2400 l
cp gs col0 s gr
% Polyline
n 1800 1800 m 2400 1800 l 2400 2400 l 1800 2400 l
cp gs col0 s gr
% Polyline
n 2400 1800 m 3000 1800 l 3000 2400 l 2400 2400 l
cp gs col0 s gr
% Polyline
n 3000 1800 m 3600 1800 l 3600 2400 l 3000 2400 l
cp gs col0 s gr
% Polyline
n 3600 1800 m 4200 1800 l 4200 2400 l 3600 2400 l
cp gs col0 s gr
% Polyline
n 4200 1800 m 4800 1800 l 4800 2400 l 4200 2400 l
cp gs col0 s gr
% Polyline
n 4800 1800 m 5400 1800 l 5400 2400 l 4800 2400 l
cp gs col0 s gr
% Polyline
n 5400 1800 m 6000 1800 l 6000 2400 l 5400 2400 l
cp gs col0 s gr
% Polyline
n 6000 1800 m 6600 1800 l 6600 2400 l 6000 2400 l
cp gs col0 s gr
% Polyline
n 1200 2400 m 1800 2400 l 1800 3000 l 1200 3000 l
cp gs col0 s gr
% Polyline
n 1800 2400 m 2400 2400 l 2400 3000 l 1800 3000 l
cp gs col0 s gr
% Polyline
n 2400 2400 m 3000 2400 l 3000 3000 l 2400 3000 l
cp gs col0 s gr
% Polyline
n 3000 2400 m 3600 2400 l 3600 3000 l 3000 3000 l
cp gs col0 s gr
% Polyline
n 3600 2400 m 4200 2400 l 4200 3000 l 3600 3000 l
cp gs col0 s gr
% Polyline
n 2400 3600 m 3000 3600 l 3000 4200 l 2400 4200 l
cp gs col0 s gr
% Polyline
n 1200 4800 m 1800 4800 l 1800 5400 l 1200 5400 l
cp gs col0 s gr
% Polyline
n 1800 4800 m 2400 4800 l 2400 5400 l 1800 5400 l
cp gs col0 s gr
% Polyline
n 2400 4800 m 3000 4800 l 3000 5400 l 2400 5400 l
cp gs col0 s gr
% Polyline
n 3000 4800 m 3600 4800 l 3600 5400 l 3000 5400 l
cp gs col0 s gr
% Polyline
n 3600 4800 m 4200 4800 l 4200 5400 l 3600 5400 l
cp gs col0 s gr
% Polyline
n 4200 4800 m 4800 4800 l 4800 5400 l 4200 5400 l
cp gs col0 s gr
% Polyline
n 4800 4800 m 5400 4800 l 5400 5400 l 4800 5400 l
cp gs col0 s gr
% Polyline
n 5400 4800 m 6000 4800 l 6000 5400 l 5400 5400 l
cp gs col0 s gr
% Polyline
n 6000 4800 m 6600 4800 l 6600 5400 l 6000 5400 l
cp gs col0 s gr
% Polyline
n 1200 5400 m 1800 5400 l 1800 6000 l 1200 6000 l
cp gs col0 s gr
% Polyline
n 1800 5400 m 2400 5400 l 2400 6000 l 1800 6000 l
cp gs col0 s gr
% Polyline
n 2400 5400 m 3000 5400 l 3000 6000 l 2400 6000 l
cp gs col0 s gr
% Polyline
n 3000 5400 m 3600 5400 l 3600 6000 l 3000 6000 l
cp gs col0 s gr
% Polyline
n 3600 5400 m 4200 5400 l 4200 6000 l 3600 6000 l
cp gs col0 s gr
% Polyline
n 6000 4200 m 6600 4200 l 6600 4800 l 6000 4800 l
cp gs col0 s gr
% Polyline
n 3000 3600 m 3600 3600 l 3600 4200 l 3000 4200 l
cp gs col0 s gr
% Polyline
n 3600 3600 m 4200 3600 l 4200 4200 l 3600 4200 l
cp gs col0 s gr
% Polyline
n 4200 3600 m 4800 3600 l 4800 4200 l 4200 4200 l
cp gs col0 s gr
% Polyline
n 4800 3600 m 5400 3600 l 5400 4200 l 4800 4200 l
cp gs col0 s gr
% Polyline
n 5400 3600 m 6000 3600 l 6000 4200 l 5400 4200 l
cp gs col0 s gr
% Polyline
n 6000 3600 m 6600 3600 l 6600 4200 l 6000 4200 l
cp gs col0 s gr
% Polyline
n 1200 4200 m 1800 4200 l 1800 4800 l 1200 4800 l
cp gs col0 s gr
% Polyline
n 1800 4200 m 2400 4200 l 2400 4800 l 1800 4800 l
cp gs col0 s gr
% Polyline
n 2400 4200 m 3000 4200 l 3000 4800 l 2400 4800 l
cp gs col0 s gr
% Polyline
n 3000 4200 m 3600 4200 l 3600 4800 l 3000 4800 l
cp gs col0 s gr
% Polyline
n 3600 4200 m 4200 4200 l 4200 4800 l 3600 4800 l
cp gs col0 s gr
% Polyline
n 4200 4200 m 4800 4200 l 4800 4800 l 4200 4800 l
cp gs col0 s gr
% Polyline
n 4800 4200 m 5400 4200 l 5400 4800 l 4800 4800 l
cp gs col0 s gr
% Polyline
n 5400 4200 m 6000 4200 l 6000 4800 l 5400 4800 l
cp gs col0 s gr
$F2psEnd
rs
%%EndDocument
endTexFig
90 2892 a Fi(3.5)46 b Fm(\(7)30 b(pts\))h(D)o(r)o(aw)f(the)h(cir)n
(cuit)i(fr)o(om)f(pr)o(oblem)g(3.2.)57 b(U)l(se)30 b(a)g(R)n(OM)g(to)i
(implement)f(a)f(cir)n(cuit.)58 b(Label)317 3005 y(CLEARL)-6
b(Y)e(.)20 b(U)l(se)g(\003ip)h(\003ops)h(as)d(descr)q(ibed)i(in)h(3.4.)
317 3155 y Fi(Answ)o(er)r(:)i Fm(Answ)o(er)c(not)i(curr)n(ently)g(av)o
(ailable)n(.)90 3343 y Fi(3.6)46 b Fm(\(10)23 b(pts\))g(D)o(r)o(aw)f(a)
g Fo(3-bit)i Fm(par)o(allel-load)g(r)n(egister)g(with)f(the)g(follo)m
(wing)j(oper)o(ations)n(.)34 b(Clearly)24 b(label)317
3456 y(the)d(inputs)o(,)h(outputs)o(,)f(and)g(par)q(ts)n(.)k(Y)-8
b(ou)22 b(may)e(use)f(logic)k(gates)c(in)j(addition)g(to)f(\003ip)h
(\003ops)n(.)p 1201 3601 1756 4 v 1199 3714 4 113 v 1251
3680 a Fh(c)1290 3694 y Fg(1)1330 3680 y Fh(c)1369 3694
y Fg(0)p 1457 3714 V 1998 3680 a Fm(O)o(per)o(ation)p
2955 3714 V 1201 3717 1756 4 v 1199 3830 4 113 v 1281
3796 a(00)p 1457 3830 V 729 w(H)m(old)p 2955 3830 V 1199
3943 V 1281 3909 a(01)p 1457 3943 V 131 w(P)m(ar)o(allel)e(load)h(\()p
Fh(q)2105 3923 y Fg(3)2144 3909 y Fh(q)2185 3923 y Fg(2)2224
3909 y Fh(q)2265 3923 y Fg(1)2304 3909 y Fh(q)2345 3923
y Fg(0)2409 3909 y Ff(=)k Fh(x)2557 3923 y Fg(3)2597
3909 y Fh(x)2649 3923 y Fg(2)2688 3909 y Fh(x)2740 3923
y Fg(1)2780 3909 y Fh(x)2832 3923 y Fg(0)2871 3909 y
Ff(\))p 2955 3943 V 1199 4056 V 1281 4022 a Fm(10)p 1457
4056 V 270 w(N)m(egate)20 b(\(two)-6 b(')c(s)20 b(complement\))p
2955 4056 V 1199 4169 V 1281 4135 a(11)p 1457 4169 V
665 w(F)o(lip)h(bits)p 2955 4169 V 1201 4172 1756 4 v
317 4360 a Fi(Answ)o(er)r(:)j Fm(Done)d(in)g(class)1941
5497 y(2)p eop
%%Page: 3 3
3 2 bop 90 119 a Fi(3.6)46 b Fm(\(2)20 b(pts\))h(E)o(xplain)h(the)e
(differ)n(ence)i(betw)o(een)f(a)f(M)m(ealy)g(and)g(a)g(M)m(oor)n(e)i
(machine)n(.)317 269 y Fi(Answ)o(er)r(:)32 b Fm(M)m(oor)n(e)26
b(machine)f(has)f(output)j(that)e(depends)g(only)h(on)f(state)g(v)o(ar)
q(iables)n(.)38 b(M)m(ealy)25 b(ma-)317 382 y(chine)c(has)f(output)i
(that)f(depends)g(on)g(state)f(and)g(input)i(v)o(ar)q(iables)n(.)317
532 y(\(B)o(oth)g(machines)e(have)f(basically)i(the)g(same)e(\223)-5
b(po)m(w)o(er)n(\224)-12 b(,)22 b(i.e)n(.,)f(they)g(ar)n(e)f(nearly)h
(equiv)o(alent\).)90 720 y Fi(3.7)46 b Fm(\(4)25 b(pts\))g(The)g
(behavior)h(of)f(a)f(\003ip)j(\003op)f(can)e(be)i(descr)q(ibed)f(b)n(y)
g(a)g(\002nite)h(state)e(machine)n(.)39 b(D)o(r)o(aw)25
b(the)317 833 y(\002nite)g(state)d(machine)h(corr)n(esponding)k(to)d(a)
e(T)i(\003ip)g(\003op)l(.)35 b(I)n(n)24 b(par)q(ticular)-5
b(,)24 b(think)g(about)g(what)f(the)317 946 y(inputs)o(,)f(state)e(and)
g(outputs)i(ar)n(e)e(for)i(a)e(\003ip)h(\003op)l(.)317
1096 y Fi(Answ)o(er)r(:)j Fm(Done)d(in)g(class)90 1404
y Fj(Q)o(uiz)g(5)g(\(C)n(ache\):)26 b(\223C)n(ache)21
b(U)l(s,)h(Clay!\224)j(\(30)c(points\))90 1621 y Fi(4.1)46
b Fm(\(3)19 b(pts\))f(G)o(iven)h Fh(s)f Fm(slots)i(and)f
Fh(b)g Fm(b)n(ytes)f(in)i(a)e(data)h(block)h(and)f Fh(m)f
Fm(slots)i(per)f(set,)g(wr)q(ite)g(a)f(for)q(mula)i(deter)n(-)317
1734 y(mining)j(ho)m(w)e(many)g(bits)h(ar)n(e)e(used)h(for)h(tag,)f
(slot/set)g(and)g(offset)g(for)h(a)e(fully)m(-associative)h(cache)n(.)
317 1847 y(Clearly)i(label)g(which)g(for)q(mula)f(applies)h(to)g(which)
g(par)q(t)f(\(i.e)n(.,)h(tag)g(has)e(X)h(number)h(of)g(bits)g(wher)n(e)
317 1960 y(X)d(is)h(a)f(for)q(mula\).)317 2110 y Fi(Answ)o(er)r(:)k
Fm(Offset)c(has)g Ff(lg)c Fh(b)21 b Fm(bits)n(.)26 b(T)-9
b(ag)21 b(has)e Ff(32)j Fe(\000)e Ff(lg)c Fh(b)k Fm(bits)n(.)26
b(N)m(o)c(bits)f(ar)n(e)f(used)g(for)i(slot/set.)317
2261 y(N)m(ote:)k(I)n(t)n(')-10 b(s)19 b(assumed)f(that)i
Fh(s)f Fm(and)g Fh(b)g Fm(ar)n(e)g(po)m(w)o(ers)i(of)e(2)h(\(other)r
(wise)n(,)g(getting)g(bits)g(fr)o(om)h(the)e(addr)n(ess)317
2374 y(would)j(be)e(much)h(mor)n(e)g(dif\002cult\).)90
2561 y Fi(4.2)46 b Fm(\(3)19 b(pts\))f(G)o(iven)h Fh(s)f
Fm(slots)i(and)f Fh(b)g Fm(b)n(ytes)f(in)i(a)e(data)h(block)h(and)f
Fh(m)f Fm(slots)i(per)f(set,)g(wr)q(ite)g(a)f(for)q(mula)i(deter)n(-)
317 2674 y(mining)i(ho)m(w)g(many)e(bits)h(ar)n(e)f(used)g(for)i(tag,)e
(slot/set)h(and)g(offset)f(for)h(a)f(dir)n(ect-mapped)i(cache)n(.)317
2824 y Fi(Answ)o(er)r(:)i Fm(Offset)c(has)g Ff(lg)c Fh(b)21
b Fm(bits)n(.)26 b(S)n(lot)c(has)e Ff(lg)c Fh(s)k Fm(bits)n(.)26
b(T)-9 b(ag)21 b(has)f Ff(32)h Fe(\000)f Ff(lg)c Fh(b)k
Fe(\000)g Ff(lg)c Fh(s)k Fm(bits)n(.)90 3012 y Fi(4.3)46
b Fm(\(3)19 b(pts\))f(G)o(iven)h Fh(s)f Fm(slots)i(and)f
Fh(b)g Fm(b)n(ytes)f(in)i(a)e(data)h(block)h(and)f Fh(m)f
Fm(slots)i(per)f(set,)g(wr)q(ite)g(a)f(for)q(mula)i(deter)n(-)317
3125 y(mining)i(ho)m(w)g(many)e(bits)h(ar)n(e)f(used)g(for)i(tag,)e
(slot/set)h(and)g(offset)f(for)h(a)f(set-associative)f(cache)n(.)317
3275 y Fi(Answ)o(er)r(:)31 b Fm(Offset)24 b(has)g Ff(lg)16
b Fh(b)25 b Fm(bits)n(.)38 b(S)o(et)24 b(has)g Ff(lg)q(\()p
Fh(s=m)p Ff(\))h Fm(bits)n(.)38 b(T)-9 b(ag)25 b(has)e
Ff(32)i Fe(\000)e Ff(lg)16 b Fh(b)23 b Fe(\000)h Ff(lg)q(\()p
Fh(s=m)p Ff(\))h Fm(bits)n(.)38 b(The)317 3388 y(only)22
b(tr)q(icky)f(par)q(t)f(is)h Fh(s=m)p Fm(.)317 3538 y
Fh(m)g Fm(is)g(not)i(the)e(number)h(of)f(sets)n(.)27
b(The)22 b(number)g(of)f(sets)g(is)g(the)g(total)h(number)g(of)g(slots)
f(divided)i(b)n(y)317 3651 y(slots)e(per)g(set)f(\(use)g(dimensional)i
(analysis)e(to)h(convince)g(y)o(ourself)h(this)f(is)f(tr)q(ue\).)90
3839 y Fi(4.4)46 b Fm(\(4)20 b(pts\))h(E)o(xplain)h(why)e(cache)g(is)h
(used.)317 3989 y Fi(Answ)o(er)r(:)35 b Fm(C)o(ache)26
b(is)g(fast,)i(small)e(memor)r(y)g(that)h(stor)n(es)f(a)g(fr)n
(equently)h(used)g(subset)f(of)g(physical)317 4102 y(memor)r(y)21
b(\(RAM\).)e(I)n(t)n(')-10 b(s)21 b(used)f(to)h(place)f(fr)n(equently)i
(used)e(data)g(in)h(faster)f(memor)r(y)-9 b(.)90 4290
y Fi(4.5)46 b Fm(\(4)20 b(pts\))h(E)o(xplain)h(what)e(spatial)h
(locality)h(is)n(.)j(E)o(xplain)d(what)f(tempor)o(al)g(locality)h(is)n
(.)317 4440 y Fi(Answ)o(er)r(:)27 b Fm(S)n(patial)c(locality)g(is)g
(the)f(idea)g(that)h(if)f(addr)n(ess)g(X)g(is)g(accessed,)g(then)h
(addr)n(esses)e Fh(X)29 b Fe(\006)21 b Ff(\001)317 4553
y Fm(wher)n(e)d Ff(\001)f Fm(is)h(small,)g(ar)n(e)f(likely)h(to)g(be)g
(accessed)e(\(e)n(.g.,)i(accessing)g(nearb)n(y)f(instr)q(uctions)j(or)e
(nearb)n(y)317 4666 y(data)i(in)i(an)e(arr)o(ay\).)317
4816 y(T)-9 b(empor)o(al)24 b(locality)g(is)e(the)h(idea)g(that)f(if)h
(addr)n(ess)g(X)f(is)g(accessed)g(no)m(w)-7 b(,)24 b(it)n(')-10
b(s)23 b(likely)g(to)h(be)e(accessed)317 4929 y(in)f(the)g(near)f
(futur)n(e)n(.)1941 5497 y(3)p eop
%%Page: 4 4
4 3 bop 90 119 a Fi(4.6)46 b Fm(\(4)27 b(pts\))g(S)n(uppose)h(y)o(ou)g
(have)e(16)i(b)n(ytes)f(in)h(a)f(data)g(block,)j(and)d(32)h(slots)n(.)
47 b(Y)-8 b(ou)28 b(ar)n(e)f(given)g(addr)n(ess)317 232
y Fh(A)385 246 y Fg(31)p Fd(\000)p Fg(0)550 232 y Fm(.)51
b(I)n(ndicate)29 b(which)h(bits)g(ar)n(e)e(used)h(for)g(the)g(tag,)i
(slot,)h(and)d(offset)g(\(for)g(a)g(dir)n(ect-mapped)317
345 y(cache\).)317 493 y Fi(Answ)o(er)r(:)24 b Fm(Offset)c(uses)g
Fh(A)1217 507 y Fg(4)p Fd(\000)p Fg(0)1347 493 y Fm(.)25
b(D)o(ata)20 b(uses)g Fh(A)1883 507 y Fg(8)p Fd(\000)p
Fg(5)2012 493 y Fm(.)26 b(T)-9 b(ag)21 b(uses)e Fh(A)2494
507 y Fg(31)p Fd(\000)p Fg(9)2659 493 y Fm(.)90 678 y
Fi(4.7)46 b Fm(\(3)20 b(pts\))h(W)-6 b(or)n(ds)22 b(\(32)e(bit)i
(quantities\))e(ar)n(e)h(accessed)e(at)h(wor)n(d)i(aligned)f(addr)n
(esses)f(\(i.e)n(.,)h(divisible)h(b)n(y)317 791 y(4\).)27
b(S)n(uppose)21 b(this)h(w)o(er)n(e)f(not)h(the)f(case)n(,)f(i.e)n(.,)i
(y)o(ou)g(could)g(access)e(wor)n(ds)h(at)g(any)g(addr)n(ess)n(.)26
b(E)o(xplain)317 904 y(any)21 b(affect)f(this)h(might)g(have)e(on)j
(accessing)e(data)g(stor)n(ed)h(in)h(a)e(cache)n(.)317
1052 y Fi(Answ)o(er)r(:)j Fm(This)e(question)f(pr)o(oduced)h(many)e
(answ)o(ers)g(of)h(the)g(for)q(m)g(\223)m(y)o(ou)g(wouldn)-7
b(')g(t)21 b(kno)m(w)f(wher)n(e)317 1165 y(data)g(star)q(ted)h(and)f
(ended)n(\224)-12 b(.)317 1314 y(H)m(o)m(w)o(ever)-5
b(,)30 b(I)e(had)g(a)g(differ)n(ent)h(answ)o(er)f(in)h(mind.)50
b(When)29 b(getting)g(data)f(fr)o(om)i(RAM)d(to)i(a)e(cache)317
1427 y(block,)i(y)o(ou)f(access)d(a)i(block)g(of)g(data.)44
b(As)26 b(long)i(as)e(the)h(block)g(contains)h(at)e(least)h(4)f(b)n
(ytes)o(,)j(then)317 1540 y(any)e(wor)n(d)i(aligned)f(data)g(always)e
(\002ts)i(in)g(the)f(block)h(being)h(fetched)f(\(this)f(block)i(is)e
(also)h(called)317 1653 y(a)c Fc(cache)g(line)r Fm(\).)35
b(I)o(f)24 b(the)g(wor)n(d)h(is)f(not)h(aligned,)g(it)n(')-10
b(s)25 b(possible)g(that)f(the)g(wor)n(d)h(spans)e(two)i(differ)n(ent)
317 1766 y(cache)20 b(lines)n(.)317 1914 y(F)m(or)i(example)n(,)g
(suppose)g(each)f(cache)h(line)g(stor)n(es)g(16)g(b)n(ytes)n(.)30
b(Thus)o(,)22 b(the)g(last)g(4)g(bits)g(ar)n(e)g(used)f(for)317
2027 y(an)27 b(offset.)44 b(I)o(f)26 b(y)o(ou)i(wanted)f(to)g(access)e
(a)h(wor)n(d)i(whose)f(addr)n(ess)f(ends)h(in)g Ff(1111)p
Fm(,)j(then)d(the)g(wor)n(d)317 2140 y(will)d(have)d(one)i(b)n(yte)f
(in)h(one)g(cache)f(line)n(,)i(and)f(3)f(b)n(ytes)g(in)i(a)e(differ)n
(ent)h(cache)f(line)n(,)i(thus)f(making)317 2253 y(it)e(dif\002cult)i
(to)e(access)n(.)90 2438 y Fi(4.8)46 b Fm(\(6)19 b(pts\))g(S)n(uppose)g
(y)o(ou)h(have)e(a)h(10)g(bit)i(addr)n(ess)d Fh(A)2011
2452 y Fg(9)p Fd(\000)p Fg(0)2141 2438 y Fm(.)25 b(Y)-8
b(ou)20 b(ar)n(e)f(using)h(a)e(fully)m(-associative)h(scheme)n(.)317
2551 y(Assume)i(the)h(slot)g(has)f(256)h(b)n(ytes)n(.)29
b(I)n(mplement)22 b(a)g(cir)n(cuit)h(that)f(deter)q(mines)g(whether)g
(a)f(slot)i(has)317 2663 y(the)e(data)f(block)h(corr)n(esponding)j(to)d
(the)g(addr)n(ess)n(.)317 2812 y(The)28 b(cir)n(cuit)h(should)g
(outputs)f(a)f(1)h(if)f(a)g(speci\002c)h(slot)g(contains)h(the)e(data)g
(and)h(0)f(if)h(it)g(does)g(not.)317 2925 y(Y)-8 b(ou)25
b(can)e(use)g(any)g(logic)i(gates)o(,)f(etc)o(.)35 b(needed.)f(MAKE)23
b(SURE)g(Y)n(OU)i(L)q(ABEL)d(CLEARL)-6 b(Y)22 b(or)j(cr)n(edit)317
3038 y(will)d(not)f(be)g(given.)317 3187 y Fi(Answ)o(er)r(:)30
b Fm(Ther)n(e)25 b(ar)n(e)f(two)g(tag)g(bits)n(.)37 b(C)o(all)24
b(it)h Fh(T)1958 3201 y Fg(1)2022 3187 y Fm(and)f Fh(T)2257
3201 y Fg(0)2296 3187 y Fm(.)36 b(The)24 b(follo)m(wing)j(is)d(a)g
(logical)h(expr)n(ession)317 3300 y(which)c(y)o(ou)h(can)e(make)g(a)g
(cir)n(cuit)i(out)f(of:)1281 3494 y Ff(\()p Fh(T)1369
3508 y Fg(1)1429 3494 y Fm(XNOR)f Fh(A)1773 3508 y Fg(9)1813
3494 y Ff(\))g Fe(\002)g Ff(\()p Fh(T)2047 3508 y Fg(0)2107
3494 y Fm(XNOR)g Fh(A)2451 3508 y Fg(0)2491 3494 y Ff(\))g
Fe(\002)g Fh(V)317 3725 y Fm(XNOR)e(is)h(used)g(to)g(deter)q(mine)g
(when)g(two)g(bits)g(have)f(the)h(same)e(v)o(alue)n(.)25
b Fh(V)39 b Fm(is)19 b(the)g(v)o(alid)h(bit.)25 b(M)o(any)317
3838 y(people)d(for)o(got)g(about)f(the)g(v)o(alid)h(bit.)90
4145 y Fj(Q)o(uiz)f(6)g(\(MIPS)g(assembly\):)28 b(\223M)m(eesh)21
b(I)n(nspir)n(es)h(P)l(opular)g(S)n(uppor)q(t\224)e(\(30)h(points\))90
4360 y Fi(6.1)46 b Fm(\(4)21 b(pts\))f(What)i(ar)n(e)e(the)h(\223)-5
b(special)21 b(r)n(egisters)l(\224)h(in)g(MIPS?)e(\(G)o(ive)g(the)h
(index)h(of)f(each)f(r)n(egister)i(which)g(is)317 4473
y(special,)f(e)n(.g.)26 b($r3\).)g(E)o(xplain)c(what)e(each)g(of)h
(these)f(special)g(r)n(egisters)i(do)l(.)317 4622 y Fi(Answ)o(er)r(:)h
Fm($r0)e(is)e(har)n(dwir)n(ed)i(0.)26 b($r29)20 b(is)f(the)h(stack)f
(pointer)i(\(b)n(y)e(convention\).)27 b($r31)20 b(is)g(the)g(jump-)317
4735 y(and-link)h(r)n(egister)-5 b(.)90 4919 y Fi(6.2)46
b Fm(\(5)23 b(pts\))h(T)-7 b(r)o(anslate)23 b(the)h(follo)m(wing)j(C)c
(code)i(to)f(MIPS)f(assembly)g(language)n(.)35 b(Assume)22
b(that)i($r1)h(is)e(i,)317 5032 y($r2)e(is)g(j)m(,)g($r3)g(is)g(k.)k(C)
o(omment)c(each)f(line)h(of)g(code)n(.)365 5248 y Fb(k)47
b(=)h(9)f(-)h(\(i)f(+)g(j\))1941 5497 y Fm(4)p eop
%%Page: 5 5
5 4 bop 317 119 a Fi(Answ)o(er)r(:)24 b Fm(The)d(MIPS)e(code)317
344 y Fb(add)95 b($t0,)47 b($r1,)f($r2)143 b(#)47 b(t0)g(=)h(i)f(+)h(j)
317 457 y(addi)f($t1,)g($r0,)f(9)239 b(#)47 b(t1)g(=)h(0)f(+)h(9)f(=)g
(9)317 570 y(sub)95 b($r3,)47 b($t1,)f($t0)143 b(#)47
b(r3)g(=)h(t1)f(-)g(t0)g(=)h(9)f(-)h(\(i)f(+)g(j\))90
795 y Fi(6.3)f Fm(\(5)26 b(pts\))g(Y)-8 b(ou)26 b(wish)g(to)h(call)f(a)
g(subr)o(outine)i(named)d(FOO)-5 b(.)26 b(This)h(subr)o(outine)h(will)f
(use)e(r)n(egister)i($r1.)317 908 y(B)o(efor)n(e)d(calling)g(FOO)-5
b(,)23 b(save)e($r1)i(on)h(the)e(stack,)h(then)g(call)g(FOO)-5
b(,)23 b(then)g(once)h(FOO)e(r)n(etur)q(ns)o(,)i(cop)n(y)317
1021 y(the)g(v)o(alue)g(fr)o(om)h($r1)f(to)h($r2,)g(and)f(r)n(estor)n
(e)g(the)g(v)o(alue)g(fr)o(om)h(the)f(stack)f(back)g(to)h($r1.)36
b(\()6 b(This)24 b(is)g(an)317 1133 y(example)17 b(of)h(caller)n
(-saved)e(subr)o(outine\).)27 b(N)m(ote:)d(ther)n(e)18
b(is)g(no)g(push)f(or)h(pop)h(instr)q(uction)h(in)e(MIPS.)317
1284 y Fi(Answ)o(er)r(:)24 b Fm(The)d(MIPS)e(code)317
1509 y Fb(addi)47 b($sp,)g($sp,)f(-4)191 b(#)47 b(Decrease)f(stack)g
(pointer)g(for)h(push)f(operation)317 1622 y(sw)143 b($r1,)47
b(0\($sp\))237 b(#)47 b(Store)f(r1)i(onto)e(stack)317
1735 y(jal)95 b(FOO)620 b(#)47 b(Call)g(FOO)g(subroutine)317
1847 y(addi)g($r2,)g($r1,)f(0)239 b(#)47 b(r2)g(=)h(r1)f(+)g(0)317
1960 y(lw)143 b($r1,)47 b(0\($sp\))237 b(#)47 b(Get)g(old)g(value)f(of)
h(r1)h(from)e(stack)317 2073 y(addi)h($sp,)g($sp,)f(-4)191
b(#)47 b(Increase)f(stack)g(pointer)g(for)h(pop)g(operation)317
2298 y Fm(N)m(ote:)26 b Fb(subi)20 b Fm(is)g(not)i(a)e(MIPS)f(instr)q
(uction.)28 b(U)l(se)20 b Fb(addi)g Fm(with)h(negative)f(immediate)h(v)
o(alues)n(.)90 2486 y Fi(6.4)46 b Fm(\(5)19 b(pts\))h(T)-7
b(r)o(anslate)20 b(the)g(follo)m(wing)i(into)f(MIPS)f(assembly)-9
b(.)24 b(Y)-8 b(ou)21 b(must)f(shor)q(t-cir)n(cuit)i(logical)f(oper)o
(a-)317 2599 y(tions)n(.)27 b(Assume)19 b(that)i($r1)g(is)g(i,)g($r2)g
(is)f(j)m(,)i($r3)f(is)f(k.)317 2849 y Fb(if)47 b(\()h(i)f(==)h(j)f(||)
g(i)h(==)f(7)g(\))460 2962 y(j++)g(;)317 3075 y(else)460
3187 y(k)h(-=)f(7)h(;)317 3300 y(i)g(=)f(j)h(-)f(k)h(;)317
3550 y Fi(Answ)o(er)r(:)24 b Fm(The)d(MIPS)e(code)842
3775 y Fb(beq)95 b($r1,)47 b($r2,)f(IF_PART)189 b(#)48
b(if)f(\()g(i)h(==)f(j)g(\))h(go)f(to)g(if)g(body)842
3888 y(addi)g($t0,)g($r0,)f(7)477 b(#)48 b(t0)f(=)g(7)842
4001 y(bne)95 b($r1,)47 b($t0,)f(ELSE_PART)93 b(#)48
b(if)f(\()g(i)h(!=)f(7)g(\))h(go)f(to)g(else)g(body)317
4114 y(IF_PART:)141 b(addi)47 b($r2,)g($r2,)f(1)477 b(#)48
b(j++)842 4227 y(j)g(END)1001 b(#)48 b(jump)e(over)h(else)317
4340 y(ELSE_PART:)e(addi)i($r3,)g($r3,)f(-7)429 b(#)48
b(k)f(-=)g(7)842 4453 y(sub)95 b($r1,)47 b($r2,)f($r3)381
b(#)48 b(i)f(=)h(j)f(-)g(k)90 4678 y Fi(6.5)f Fm(\(5)25
b(pts\))g(W)l(r)q(ite)h(MIPS)e(assembly)h(to)h(deter)q(mine)f(if)h(bit)
g Fh(i)f Fm(of)h(r)n(egister)g($r1)g(is)f(1)g(\(the)h(other)g(bits)g
(may)317 4791 y(have)21 b(any)h(other)i(v)o(alue\).)30
b(I)o(f)23 b(so)l(,)g(set)f($r2)h(to)g(1,)g(other)r(wise)n(,)g(set)f
(it)h(to)g(0.)31 b($r3)23 b(contains)g(the)f(index)i
Fh(i)p Fm(.)317 4904 y(C)o(omment)d(each)f(line)i(of)f(code)n(.)317
5054 y Fi(Answ)o(er)r(:)j Fm(The)d(MIPS)e(code)1941 5497
y(5)p eop
%%Page: 6 6
6 5 bop 604 119 a Fb(addi)46 b($t0,)h($r0,)g(1)190 b(#)48
b(t0)f(=)g(1)604 232 y(sllv)f($t0,)h($t0,)g($r3)94 b(#)48
b(t0)f(<<)g(r3)604 345 y(and)94 b($t1,)47 b($r1,)g($t0)94
b(#)48 b(Check)e(to)h(see)g(if)g(bit)g(i)h(is)f(set)604
458 y(beq)94 b($t1,)47 b($r0,)g(ELSE)604 571 y(addi)f($r2,)h($r0,)g(1)
190 b(#)48 b(r2)f(=)g(1)604 683 y(j)g(END)715 b(#)48
b(jump)e(over)h(else)317 796 y(ELSE:)g(addi)f($r2,)h($r0,)g(0)190
b(#)48 b(r2)f(=)g(0)317 909 y(END:)317 1109 y(sll)21
b Fm(only)h(shifts)g(left)g(a)f(constant)h(v)o(alue)n(.)29
b(Y)-8 b(ou)22 b(need)f Fb(sllv)g Fm(to)h(shift)g(a)f(v)o(ar)q(iable)h
(amount)g(\(or)g(wr)q(ite)317 1222 y(a)e(loop)i(to)f(shift)g(one)g(bit)
h(at)e(a)g(time\).)317 1368 y(B)o(ecause)j Fb(sllv)f
Fm(wasn)-7 b(')g(t)24 b(co)m(ver)n(ed)g(in)g(class)o(,)g(I)f(accepted)h
Fb(sll)e Fm(with)j(thr)n(ee)f(r)n(egisters)o(,)h(even)e(though)317
1481 y(it)e(is)g(incorr)n(ect)i(to)e(do)g(so)l(.)90 1661
y Fi(6.6)46 b Fm(\(3)22 b(pts\))f(Y)-8 b(ou)23 b(can)-7
b(')g(t)22 b(load)h(a)e(32)h(bit)h(immediate)g(v)o(alue)e(using)i(one)f
(instr)q(uction.)32 b(W)l(r)q(ite)23 b(instr)q(uctions)317
1774 y(to)i(load)g(a)f(32)h(bit)g(immediate)g(v)o(alue)n(.)37
b(Assume)23 b(the)h(v)o(alue)g(y)o(ou)i(wish)e(to)h(load)g(is)f
Ff(0)p Fh(x)p Ff(1111)p Fh(F)13 b(F)g(F)g(F)g Fm(.)317
1887 y(C)o(omment)21 b(each)f(line)i(of)f(code)n(.)317
2033 y Fi(Answ)o(er)r(:)j Fm(The)d(MIPS)e(code)604 2233
y Fb(lui)47 b($r1,)f(0x1111)428 b(#)48 b(Load)e(upper)h(16)g(bits)f
(with)h(0x1111)604 2346 y(ori)g($r1,)f($r1,)h(0xFFFF)189
b(#)48 b(Load)e(lower)h(16)g(bits)f(with)h(0xffff)317
2546 y Fm(N)m(ote:)29 b Fb(addi)21 b Fm(causes)f(sign)j(extension)f(to)
h(occur)-5 b(,)23 b(and)f(pr)o(oduces)h(an)e(incorr)n(ect)j(r)n(esult.)
30 b(H)m(o)m(w)o(ever)-5 b(,)317 2659 y Fb(addiu)19 b
Fm(should)j(wor)o(k)f(since)g(it)g(does)g(not)g(sign-extend)g(\(it)g
(is)g(an)f(unsigned)i(addition\).)90 2838 y Fi(6.7)46
b Fm(\(5)24 b(pts\))h(A)g(br)o(anch)g(instr)q(uction)i(per)q(for)q(ms)e
(a)g(modi\002cation)i(of)e(PC)g(+)f(4)h(\(the)g(next)g(addr)n(ess\))g
(if)g(the)317 2951 y(condition)k(is)c(tr)q(ue)n(.)40
b(The)25 b(maximum)g(r)o(ange)h(of)f(the)h(jump)g(is)f
Ff(\()p Fh(P)13 b(C)31 b Ff(+)24 b(4\))g Fe(\000)g Fh(X)33
b Fm(to)26 b Ff(\()p Fh(P)13 b(C)31 b Ff(+)23 b(4\))i(+)f
Fh(Y)317 3064 y Fm(wher)n(e)d Ff(\()p Fh(P)13 b(C)27
b Ff(+)20 b(4\))h Fe(\000)f Fh(X)27 b Fm(and)21 b Ff(\()p
Fh(P)13 b(C)27 b Ff(+)20 b(4\))h(+)f Fh(Y)40 b Fm(ar)n(e)21
b(addr)n(esses)e(in)i(memor)r(y)-9 b(.)317 3210 y(D)o(eter)q(mine)25
b(what)f(X)g(and)g(Y)g(ar)n(e)g(and)h(EXPL)q(AIN)d(ho)m(w)j(y)o(ou)g
(got)g(those)f(v)o(alues)n(.)37 b(\(I)o(f)24 b(y)o(ou)h(don)-7
b(')g(t)25 b(ex-)317 3323 y(plain,)d(y)o(ou)f(r)n(eceive)f(no)h(cr)n
(edit\).)317 3469 y Fi(Answ)o(er)r(:)j Fm(X)c(is)h Ff(2)891
3436 y Fg(15)986 3469 y Fe(\002)f Ff(4)p Fm(.)26 b(Y)21
b(is)f Ff(\(2)1412 3436 y Fg(15)1508 3469 y Fe(\000)g
Ff(1\))h Fe(\002)f Ff(4)p Fm(.)317 3615 y(B)o(r)o(anch)j(instr)q
(uctions)h(ar)n(e)e(I-type)n(,)g(which)h(has)f(16)g(bits)h(for)g
(immediate)g(v)o(alues)n(.)30 b(F)m(or)23 b(br)o(anch)g(in-)317
3728 y(str)q(uctions)o(,)h(the)f(r)n(epr)n(esentation)g(is)g(signed)f
(two)-6 b(')c(s)23 b(complement.)31 b(Y)-8 b(ou)23 b(multiply)h(b)n(y)e
(4,)h(because)317 3841 y(all)k(instr)q(uctions)i(ar)n(e)e(wor)n
(d-aligned,)k(so)c(it)g(makes)f(sense)g(to)h(jump)h(based)e(on)i(instr)
q(uctions)h(\(4)317 3954 y(b)n(ytes)20 b(each\))g(r)o(ather)h(than)g
(jumping)h(based)e(on)h(addr)n(esses)n(.)90 4258 y Fj(Challenge)e
(\(\223D)o(r)o(ool)j(K)q(itty\224\))h(Section:)j(\223M)m(eo)m(w!\224)g
(\(40)21 b(points\))90 4471 y Fi(C1)45 b Fm(\(5)19 b(pts\))h(Y)-8
b(ou)20 b(ar)n(e)f(given)h Fh(k)i Fm(states)d(and)g Fh(m)g
Fm(bits)h(used)g(for)g(the)f(output.)27 b(Assuming)19
b(y)o(ou)i(have)d(a)h(M)m(oor)n(e)317 4583 y(machine)n(,)i(ho)m(w)g
(many)g(possible)g(differ)n(ent)h(outputs)f(ar)n(e)g(ther)n(e?)26
b(E)o(xplain)c(y)o(our)g(answ)o(er)-5 b(.)317 4730 y
Fi(Answ)o(er)r(:)24 b Fm(min)q Ff(\()p Fh(k)s(;)15 b
Ff(2)1019 4697 y Fa(m)1087 4730 y Ff(\))p Fm(.)317 4876
y(The)23 b(number)g(of)g(output)h(depends)f(on)g Fh(m)f
Fm(and)g Fh(k)s Fm(.)32 b(S)n(ince)23 b(it)n(')-10 b(s)24
b(a)e(M)m(oor)n(e)h(machine)n(,)g(y)o(ou)h(can)e(have)317
4989 y(at)f(most)f Fh(k)k Fm(differ)n(ent)e(outputs)n(.)k(H)m(o)m(w)o
(ever)-5 b(,)21 b(if)f Fh(m)h Fm(is)f(small,)h(ther)n(e)g(ar)n(e)f
Ff(2)2815 4956 y Fa(m)2902 4989 y Fm(differ)n(ent)i(outputs)n(.)317
5135 y(F)m(or)27 b(example)n(,)i(if)e(w)o(e)g(have)f(1024)h(states)o(,)
h(but)g(2)f(bits)g(of)h(output,)i(then)d(ther)n(e)-5
b(')-10 b(s)27 b(only)h(4)f(differ)n(ent)317 5248 y(outputs)o(,)22
b(despite)f(a)f(lar)o(ge)h(number)g(of)g(states)n(.)1941
5497 y(6)p eop
%%Page: 7 7
7 6 bop 90 119 a Fi(C2)45 b Fm(\(10)21 b(pts\))g(Y)-8
b(ou)21 b(ar)n(e)g(given)f(a)h(single)g(D)f(\003ip-\003op)l(,)k(plus)d
(logic)h(gates)n(.)k(D)o(esign)21 b(a)f(JK)h(\003ip)g(\003op)h(fr)o(om)
g(this)n(.)317 232 y(E)o(xplain)g(ho)m(w)g(y)o(ou)f(designed)g(it.)317
382 y Fi(Answ)o(er)r(:)29 b Fm(Y)-8 b(ou)24 b(would)h(dr)o(aw)e(a)g(JK)
g(\003ip)i(\003op)f(as)f(a)g(\002nite)h(state)f(machine)n(,)i(and)e
(implement)h(using)317 495 y(a)c(single)h(D)g(\003ip)g(\003op)l(.)317
645 y(One)f(person)g(used)g(an)f(idea)h(similar)g(to)h(par)o(allel)f
(load)g(r)n(egisters)n(.)26 b(They)20 b(fed)g(in)g(the)g(\223)-5
b(next)n(\224)20 b(v)o(alues)317 758 y(into)i(a)e(4-1)h(MUX)f(and)g
(used)g Fh(J)30 b Fm(and)21 b Fh(K)27 b Fm(as)19 b(contr)o(ol)24
b(inputs)d(to)g(the)g(MUX.)1941 5497 y(7)p eop
%%Page: 8 8
8 7 bop 90 119 a Fi(C3)45 b Fm(\(10)24 b(pts\))f(W)l(r)q(ite)i(a)e(r)n
(ecursive)h(function)h(in)g(MIPS)d(assembly)h(that)h(computes)g(the)g
(sum)f(of)h(an)g(inte-)317 232 y(ger)i(arr)o(ay)-9 b(.)42
b(Assume)24 b(that)i(the)g(addr)n(ess)g(of)g(the)g(z)o(er)o(oth)h
(element)f(of)g(the)g(arr)o(ay)f(is)h(stor)n(ed)h(in)f($r1.)317
345 y(Assume)19 b(that)i(the)f(siz)o(e)g(of)h(the)f(arr)o(ay)g(is)h
(stor)n(ed)g(in)g($r2,)g(and)f(is)g(v)o(alid)i(\(i.e)n(.,)e(gr)n(eater)
h(than)g(or)g(equal)317 458 y(to)g(0\).)26 b(The)21 b(\002nal)g(sum)f
(should)h(be)g(placed)g(in)g($r3.)317 608 y(T)-9 b(o)31
b(solve)e(this)h(pr)o(oblem,)k(y)o(ou)d(should)g(update)f(the)f(stack)g
(in)i(the)e(follo)m(wing)k(way)-9 b(.)53 b(When)30 b(y)o(ou)317
721 y(make)18 b(a)h(r)n(ecursive)h(call,)g(push)f(the)h(addr)n(ess)f
(of)h(the)f(arr)o(ay)h(and)f(the)h(siz)o(e)f(onto)i(the)e(stack)g
(\(instead)317 834 y(of)31 b(passing)e(them)h(via)g(r)n(egisters\).)54
b(When)30 b(the)g(r)n(ecursive)g(call)g(is)g(complete)n(,)j(the)d(addr)
n(ess)g(and)317 947 y(siz)o(e)d(should)g(be)g(popped)h(off,)g(and)f
(the)f(v)o(alue)h(of)g(the)f(sum)g(placed)h(on)h(the)e(stack.)43
b(The)27 b(calling)317 1060 y(function)c(will)e(then)g(pop)g(off)g(the)
g(v)o(alue)f(fr)o(om)i(the)f(stack)e(and)i(use)f(it)h(in)g(the)g
(computations)n(.)317 1210 y(Y)-8 b(ou)28 b(should)f(not)h(modify)g
($r1)f(and)g($r2.)45 b(H)m(o)m(w)o(ever)-5 b(,)28 b(y)o(ou)f(may)g
(modify)g(other)h(r)n(egisters)n(.)45 b(C)o(om-)317 1323
y(ment)21 b(each)f(line)h(of)g(code)n(.)317 1473 y Fi(Answ)o(er)r(:)j
Fm(This)d(is)g(a)f(mess)n(.)k(I)c(may)g(post)h(this)g(up)g(S)n(unday)-9
b(.)90 1661 y Fi(C4)45 b Fm(\(5)27 b(pts\))g(A)g(R)n(OM)f(has)h
Fh(k)s Fm(-bits)g(for)h(contr)o(ol)i(inputs)n(.)47 b(Y)-8
b(ou)27 b(can)g(select)g(the)g(contents)i(of)e(an)g(addr)n(ess)n(.)317
1774 y(Assume)15 b(y)o(ou)i(have)e(a)h(R)n(OM)g(with)h(3-bits)f(of)h
(input,)i(and)d(each)g(addr)n(ess)g(stor)n(es)g(3)h(bits)n(.)24
b(I)n(mplement)317 1886 y(a)e(R)n(OM,)g(using)h(any)f(par)q(ts)g(\(r)n
(ecall)g(exam)g(1,)h(par)q(t)f(means)f(logic)j(gate)n(,)f(or)g
(something)g(like)g(a)e(half-)317 1999 y(adder)-5 b(,)21
b(etc\).)317 2150 y Fi(Answ)o(er)r(:)27 b Fm(U)l(se)21
b(thr)n(ee)i(8-1)e(MUX)o(es)n(.)30 b(Each)21 b(MUX)h(will)h(have)d(one)
j(of)f(the)g(thr)n(ee)h(bits)n(.)30 b(I)n(n)23 b(effect,)f(the)317
2263 y(MUX)e(r)n(epr)n(esents)h(one)g(column)h(of)e(the)h(R)n(OM.)90
2450 y Fi(C5)45 b Fm(\(10)20 b(pts\))f(S)n(uppose)n(,)h(instead)g(of)g
(using)g(\223bits)l(\224)-12 b(,)20 b(y)o(ou)g(use)f(\223)l(tr)q(its)l
(\224)-12 b(.)26 b(T)-7 b(r)q(its)20 b(ar)n(e)f(v)o(alues)g(in)h(base)f
(3,)h(instead)317 2563 y(of)26 b(base)e(2)i(\(0,)g(1,)h(and)e(2)g
(instead)h(of)f(0)h(and)f(1\).)40 b(This)26 b(system)e(not)i(only)g
(affects)f(ho)m(w)h(the)f(data)g(is)317 2676 y(stor)n(ed)d(\(in)f(base)
e(3\),)i(but)g(also)g(affect)f(the)g(addr)n(esses)g(\(also)g(in)h(base)
f(3\).)317 2826 y(E)o(xplain)31 b(what)e(pr)o(oper)q(ty)i(should)f(go)m
(ver)q(n)g(ho)m(w)f(many)g(slots)h(and)f(ho)m(w)h(lar)o(ge)f(the)h
(data)e(blocks)317 2939 y(should)k(be)e(so)h(that)f(y)o(ou)i(can)e
(conveniently)i(use)d(a)h(32-tr)q(it)i(addr)n(ess)e(for)h(caching.)56
b(Assume)29 b(a)317 3052 y(dir)n(ect-mapped)22 b(scheme)n(.)317
3202 y(Then,)28 b(pick)e(a)f(speci\002c)h(number)g(of)g(slots)g(and)f
(number)h(of)g(tr)r(ytes)g(\(b)n(ytes)f(in)h(base)f(3\))g(in)h(a)f
(data)317 3315 y(block)e(and)f(demonstr)o(ate)h(ho)m(w)f(to)h(br)n(eak)
e(up)i(a)e(32-tr)q(it)i(addr)n(ess)f Fh(A)2731 3329 y
Fg(31)p Fd(\000)p Fg(0)2918 3315 y Fm(up)g(to)h(conveniently)g(ac-)317
3428 y(cess)d(the)g(par)q(ts)h(for)g(cache)n(.)317 3578
y Fi(Answ)o(er)r(:)h Fm(Y)-8 b(ou)18 b(should)g(make)d(the)i(number)h
(of)f(slots)g(and)g(the)g(number)h(of)f(tr)r(ytes)g(in)h(a)e(data)g
(blocks)317 3691 y(po)m(w)o(ers)22 b(of)f(3.)317 3842
y(F)m(or)k(example)n(,)h(if)f(y)o(ou)h(have)d(27)i(slots)g(\(which)g
(is)g Ff(3)2132 3809 y Fg(3)2172 3842 y Fm(\))f(and)h(each)f(slot)i
(has)e(9)h(tr)r(ytes)f(\(which)h(is)g Ff(2)3744 3809
y Fg(2)3784 3842 y Fm(\),)317 3955 y(then)c Fh(A)595
3969 y Fg(31)p Fd(\000)p Fg(5)781 3955 y Fm(is)f(the)h(tag,)g
Fh(A)1260 3969 y Fg(4)p Fd(\000)p Fg(2)1410 3955 y Fm(is)f(the)h(slot)g
(number)-5 b(,)21 b(and)g Fh(A)2437 3969 y Fg(1)p Fd(\000)p
Fg(0)2587 3955 y Fm(is)f(the)h(offset.)317 4105 y(The)g(addr)n(esses)f
(stor)n(e)h(base)f(3)g(v)o(alues)n(.)1941 5497 y(8)p
eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF
fs/www/class/fall2002/cmsc311-0101/Exam/exam1.fall02.soln.ps 0100664 0000773 0001744 00000677277 07561440175 020764 0 ustar cmsc311 %!PS-Adobe-2.0
%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
%%Title: ex1.revised.soln.dvi
%%Pages: 20
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%DocumentFonts: Utopia-Bold Utopia-Regular Utopia-Italic
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips ex1.revised.soln.dvi
%DVIPSParameters: dpi=600, compressed
%DVIPSSource: TeX output 2002.11.04:0435
%%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: 8r.enc
% @@psencodingfile@{
% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
% version = "0.6",
% date = "1 July 1998",
% filename = "8r.enc",
% email = "tex-fonts@@tug.org",
% docstring = "Encoding for TrueType or Type 1 fonts
% to be used with TeX."
% @}
%
% Idea is to have all the characters normally included in Type 1 fonts
% available for typesetting. This is effectively the characters in Adobe
% Standard Encoding + ISO Latin 1 + extra characters from Lucida.
%
% Character code assignments were made as follows:
%
% (1) the Windows ANSI characters are almost all in their Windows ANSI
% positions, because some Windows users cannot easily reencode the
% fonts, and it makes no difference on other systems. The only Windows
% ANSI characters not available are those that make no sense for
% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
% (173). quotesingle and grave are moved just because it's such an
% irritation not having them in TeX positions.
%
% (2) Remaining characters are assigned arbitrarily to the lower part
% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
%
% (3) Y&Y Lucida Bright includes some extra text characters; in the
% hopes that other PostScript fonts, perhaps created for public
% consumption, will include them, they are included starting at 0x12.
%
% (4) Remaining positions left undefined are for use in (hopefully)
% upward-compatible revisions, if someday more characters are generally
% available.
%
% (5) hyphen appears twice for compatibility with both
% ASCII and Windows.
%
/TeXBase1Encoding [
% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
/.notdef /dotaccent /fi /fl
/fraction /hungarumlaut /Lslash /lslash
/ogonek /ring /.notdef
/breve /minus /.notdef
% These are the only two remaining unencoded characters, so may as
% well include them.
/Zcaron /zcaron
% 0x10
/caron /dotlessi
% (unusual TeX characters available in, e.g., Lucida Bright)
/dotlessj /ff /ffi /ffl
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
% very contentious; it's so painful not having quoteleft and quoteright
% at 96 and 145 that we move the things normally found there to here.
/grave /quotesingle
% 0x20 (ASCII begins)
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
% 0x30
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
% 0x40
/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
% 0x50
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
% 0x60
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
% 0x70
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde
/.notdef % rubout; ASCII ends
% 0x80
/.notdef /.notdef /quotesinglbase /florin
/quotedblbase /ellipsis /dagger /daggerdbl
/circumflex /perthousand /Scaron /guilsinglleft
/OE /.notdef /.notdef /.notdef
% 0x90
/.notdef /.notdef /.notdef /quotedblleft
/quotedblright /bullet /endash /emdash
/tilde /trademark /scaron /guilsinglright
/oe /.notdef /.notdef /Ydieresis
% 0xA0
/.notdef % nobreakspace
/exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot
/hyphen % Y&Y (also at 45); Windows' softhyphen
/registered
/macron
% 0xD0
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
% 0xC0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
% 0xD0
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
% 0xE0
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
% 0xF0
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis
] def
%%EndProcSet
%%BeginProcSet: texps.pro
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub
dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict
end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{
dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1
roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def
dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}
if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}
def 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
%%BeginFont: Utopia-Bold
%!PS-AdobeFont-1.0: Utopia-Bold 001.001
%%CreationDate: Wed Oct 2 18:24:56 1991
%%VMusage: 33079 39971
%% Utopia is a registered trademark of Adobe Systems Incorporated.
11 dict begin
/FontInfo 10 dict dup begin
/version (001.001) readonly def
/Notice (Copyright (c) 1989, 1991 Adobe Systems Incorporated. All Rights Reserved.Utopia is a registered trademark of Adobe Systems Incorporated.) readonly def
/FullName (Utopia Bold) readonly def
/FamilyName (Utopia) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
end readonly def
/FontName /Utopia-Bold def
/Encoding StandardEncoding def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/UniqueXX 36543 def
/FontBBox{-155 -250 1249 916}readonly def
currentdict end
currentfile eexec
f9cd86fd4821715265f16a614e3770ef80561e77ba6ecbb4ef4232445eef2839
94e93e3c8c9b09c09d71542241821e07888ceb54e8cacc8a45802f50c0afeeca
5e3d9114c1860bcb2ba5fd2a879a0d79953e30c90d8347513f4ca5f05b2e231b
4973bd1e9db66a39d846a8b3d9e48da72e2de8743ba2e104893167c235719245
87b43ed3b6552cd85e4bbdeb9f46bd813298d531c74be81995a52ceaad4112c7
f65773b088bffbc9874f615371c5e7b50ae99d5b6acf9c80d87057bf3a424377
f4284b7232096b6ea623dacd1c925ce09cfa6515f675aacf815c38e984b4ba40
0d409bb62cd4ebac75201c8e782e68fd73e8622c46b696b1ba37ca9621400041
d95b948a6bbc089fe6b230b39bd358228af9b3e68418166a9adc4e7665341088
c47c074aa4b21b0949fef9929e1a32ffddd2d02145cdb256863cf6067d27ed9a
f0aba85b1e0cfcbab7e74880e9693b5626ad31e6b5c2d208087d86c116513212
710c9d6ca50e1503f8d4c2863fa378f8184189af0cf109f4affe7cb74563d513
2104fb9dc6f3f5992e075633a0baebda8ebe9a07c3ec4b25fef015d9915a26b1
d401a6722015090672714181580350560caf79bccd6040c0c1651d917c73107c
2d46aad5d4a370b55e896ce1eed127b6f0aabaf7c4ca62e89003032abb2c95ba
58c4a0eb0bb1a59a439a6a0c2082e50725b9e8139324af06ff03b4269a697342
8fab0c1fabd320f1452d9c435e48037eb8cf6df4233cd9c05691604146cc813f
7ea131f21e9863b7bd1b087a583af14675b9bd31fd364d5dbddbc9b533a6ac38
c4bdeb28a1ae3d2b374da72405acf67b1b3a83d80726301b3677c067c748d857
ae1da4f723d4365647de10f90e96dd7e9ab9ef5c7e6866a13b807fd3f78136d5
72950a10bb0165e61f12c60a813c7e35eeb9a0500725dd912ca2deebb238538e
790af851b14643f40e5eea13660e57b5c407735079a292a7c162dd11d0a3d342
67290f1c9261fa5de6b92ca1e7daeb7cb970c766b3e0396ec0ce55dffbef0bdc
b437fbb4d63634b9abcf5844e76f9313ab2182e1fb3c47a705a1d97b79e93dbc
5e48ac19b45f9be4b9225e5a7e1d3679dd21001eca3c08d6febd35fa5453290e
1269c1d195e45338c10aa60fb8ab9e5a5aaf08c82e737f082bb6216d7cc1d5d8
8906c8b05c4432d04561377438447eb5fade652af84c1ced99551365cf9e6f99
03d1593de0e450003fb0d5b5588330d6527fdd0c8193fc0cd2293012310a425e
0ea0f8b901b991648ebbc894cfb7d95da6d35fb7c947e887bd3b6599e673b921
c96f2a033e30b341a14066076ff0abd5fe77f393b548a15ea2185f99a3545b01
dada854fce1ddd3448a9aa42ba260a4f85a0d1bdcf08b3de2ff8b6411adff446
4a2929193ade35f4e26006cfdc45929250bb76ef007043d739d798a4973f350f
52fa1690423381539e3a4cc458600fed91fa8e16b5ae0aca710dbf318d16e3d9
16a082a093b59f35ff92a1b235d5621e87ab471310ca26a9a30c2658e23e0f19
43110f9b24e2c8f1d05824c69aa9890c3b0af143da3ff2d3eeb301f7324f2f16
4e47a05f72acc15acea8a91b9d085a7de2e7e45493f53f32b22d365aca7ea6e0
70c6ad4feda1cde417b48fe4a864ac9af989f30632a9cff5545573d9c7d16016
d450f21f22a028d4e5d1d50a0834adb4c7cf0424f686a3678ddcddcb30d96a4e
45b982881b7173c1a3ff8cb839e56c10a3055f1626d8d5662a85edb80ec110ad
8eeadcfe212e10c139c86094ef0c3fd239cee5c9ea9727cfb94e671fedeeaed5
ead00e015f8783a4adfa28b7b2d8982e7c6fcceb028a18bcbb7f83b44ad4a898
c0bcc2aae1f109ea4ab0de19c4163d7c81e9de2fc6d003a29e2d8c83fb852a2f
2adb57a70ba5356470bdee40c3fd1612bd651f77a2a4dfb7e62bfd224eb2e1a9
978bf52b974d81e7d4f6b661885a88d8892c66182d8cfd1950c290d1485a78b5
59f7e546cc648d521d310ea176ab0bf669b60a915837a3b800c5b86b1295193b
161de7a268c3b8a12272e964b88b94cadc0ca8a94781347a8623dd1e4a481a60
2cfa2f764009699d69f4e8fdcaa46c4238b89bec4eb5eb490f15e6be942af742
1a8f2f0f873f5e5e49af9c33992e878dbd5e0d04cb1d086b719226f5836d52de
897147c588ec54bee42e887a2c94a864fe997b82d0045a92c35a7b157a379903
9adf336e3cb280d18f70784afceca4946dfef7f6c2fab3fd9eb4612fb0a6b3fd
17f24aea9bfa21f1cb8a5f93239d7489a183f6f4ab30bb54dda79888b30bd658
116c1efa020d27dc30df7a00265705414017911ee7809a135150a3db3333b694
b49464453dcf18a7eb8712f0bb4c0e7f6988b5a1f4b579b04e985830862df10b
47174a9e28b55bc33045a02e47e0a4c06393714a03bb1636273f4b887792725f
4c4c0ffc26eb191b843ec59c447c35dfd50aa503791d26f10071ceb883abeb37
71b49c6e4fad3ff05a52f7503c1d76f92debf092f358dfdd1f0895f9173d9802
17dc23bbceece6e05468ed1f3f6dbb0f1ee8041a08ab3702629088a4b7e47da1
c3184e7ed3893daf356ad740f6aecda78fe389a11a25c2aea605af5fd0ab46a9
87b00f97b407b6c0702a2ad53bceb4b2a39f3a46ca0464bde9f566478c522e1a
41334db9d41ebab5fcc8d5919770ee894e16e12edc2a15a74776e7fb8badda2d
7a3f1e6d89add8bb1afc6f777fbebcded31c883dd37df4aa4f83d3e585a99fb3
283d6ced2f10c9789a58806ea91a8c2e6a5074e001c1101bb2e906a2882f6ef8
428e27db4ac97fc7959ee4a366c8469d14daa10973191e14c3d49f28ec89d6c8
c461fc00709354a0f75de12403a443514b6d95372d238b41443824816c70cccf
b7c28425a64fbc066840dd30685980607bbb1e94ee6c5871d609d12a2f6319b8
72b6741ddfc31e72e7c647fbf4a18b49b7048164afdbdcb01addcc618385e6b9
92ee423506e9627fb6a7a4b302e7b4c69ca93da517bb915b3b1eddcb64a6018e
5eb59e52eaf76bddf458382bc8fc74c77c98ed17d64f6a342e59d3d47596e196
16b3d5891501ea48b6c01253f7c1da53d799b833fa120ae35420d3961410f4ed
4705ed79831567279367b3729791208b3c8286ab6d7e3a056ab3416fb3fc681d
8b0e346b139a70904541dbdf9bd372c4da5d47cc2e056c1840b4e3b310d92a33
046ef7206d3f2ab07da8ee64d09adde5d6d4e2fa03bbef4ad5da84ad373e7251
c6dcef9b7994aa043b3aa3aa4fe4decff9dd554035e4d864085e186265c83aaf
eca6c0991a5cdc8c37149e935ab2cb026711fa6d4b603a47f2637b12e654c087
a9ec00da104d070b704b0b0889d0f7b4a2a760d8b32e56b4ee722adcfaa2e4aa
45b2d3f4cf68f5e93a0d8a5d72002c37735ff11f59bd544b919f6385588da089
6129d2f7220c2ff4bbdb2f7c41b87f1bb509365fadf1644ae90d6f12b4bd2b88
579e1fcc2b679532bd0d339f6d451a540d8d907617e76c7130a0cffd52d50f66
13a71cf23a8535f1bba0b04a25cff862e8552ce836df43fd0527fe7f349aa51f
35a1c6fd1ca5df0dbb0edd2a5517b57d800af844b9d58c0f5f9d65b911b1d31e
97bec44d8ad51cb98f437571c5dcda8a184bab9a08709139bbc51155c338510e
80b406157e2873267b7529d1cbb370449ea45b1657fd6f3a111ff38f68df5bf8
15473aeb208d3317805a9a69126f9c5d6f88c224bdd8e50942287e5947c3d690
e67beacf1fceb6ed368893dd7cdbee3032ed5175e3fd274604be6103ff17c1ae
b92fde665b98210ac54ea23bd4782e0be98afb6a39fd39dd195f15d8038442a0
2296e0bbb1389c9a38c5cac3d47b1eedab94a10ba10ade6d7127edafc2bc9da8
30feae65c30ae282e1d1db57d56b39835b0eab094b9e0719ba4e14685acd8c42
6dcde122ce4f827ec70a4610e7381a65a8012b69ac5df70057a0261eb63108df
289a0551a2daec616947e60db1aaebb9ee1a6725c1b82f00cd0fe23d7433c7d8
84b8d528bec8520bfb068343d0e4a14cef0510e27b5d07b97ae31adee5a039cd
aa8dcc8f262c4b478c97f5d3229127995a341576e5e6f9ecdd8a1cf02845807c
c2abe37872ff3e7261cf360fafa311a54553bcc0302216a9d0cec5c9434c0c81
026691f4741537610b95bca4cf8479fe52caabeafb0a7b4f9e9b7e30ff8b5d14
ca496b49a2e46d881f77d11a3816c292ebd18ee50cc5c76975df41067b2f6018
254327452822cbe543f70d768e2553e19e69a840052cb1895883799ed2eb7e7f
c2ee7bc2eadebede72dca24d3177f105a504f7fab4e72be2c64fac20ef23d946
9459319c3734b81c20e5aff043672b580ac3de5dd5c53a0628c7bc23ea348664
444637cdcd838858646b8f928c89ee93f38be0e9fdad4ccf556395fc954a5f63
b9459cad1da385c9dfd480060648945f45f4e490e5107197838d9d4bc0a69fd5
7ff840e80064f51c6f0d28e4477ba09f962cea1614a4220cbad5a21c81b7ed40
78aa94b5cd12073149307e8181dba96007fff86abd2530630400c5a88037db8a
cf8c93c25bd283794767b8408e2cf661156f2ede6c91457e9f3c13cb018fb0f6
47eefdb59961e0efef808b619b7acfabb5f1066213bbc9c45fc77bfd275f67ef
29c1b1346cffac0cad1b009448b516d587fe44c32d585a488fcc17214d33fa2c
d916d3c86c4803f8e8051c6e0c1a880b1b9e30c71698801e88d9c996e3fc25af
b51a1b13f514b2f5d048baeb86e4608f095efbe7e0f56a29d28a7e2f2bfb0be1
46ce099b242bc67b68dd30d3c5cfe395b58f9451f251eaabde38510503d20ee8
68cf806f50b29ac0df93e5e28f0ba6976f13cf8bfa9c945787ecee9888549f75
584a7ac42b75869d5926f0ca97d0db8f48760cf6893b49e2f76bd8a62ce3e0f4
255ab05136b45dc2a7cb36565e5b516ffb69aeeda6573bb9c8f058d8e2172806
b8ea1fee53852c25cfb9fa12f9c7fd578990bdb1ee40173aa1d082e7a98a2857
a53405770cc1440c6c0d55fd422784f12ce1f0f940aba75aa9eba24ea852637e
a36198ddaca0a7edd85895b4319d47adc894d8756f89660e4642ed8032130175
d0e59546d04eeeaa14dd23c9b8d4b1f7282eeed55a8817affd29513d9c354948
243ab29da8711f6c475ab50b0f606551eac0da86383fc5ca33cae1bb17cce16d
4a2f7945fd2b5eb77919d09556aa4e202a0dbd8bf38c50ccab6668aeff57fe1f
4afd1f3c57aa392078927ed6dd41e77ff69dbe7c905652cc67946caf6a8d78e7
b7d9b879282d59e85961840d577a4f8a0b23d76072b5e9ce8cae9dafe0f69f29
187b35e994a3f971d2bfea825e810dcdaba251ce02782d33417263385344bfcb
8b1bdab326a74a1356f65205dc557f4e7fc1c86a3a52b79bddbf3b8b77447244
2e7467daa1c3f8d5518ed96ec57e734a10eafd8bc837f969588aa8f05c9082b4
0350fb0e854f0f18ecc78281c30d4303a4f4208cfdc0042c01296851740896a6
b114ad0ec93784b7c3957186c2b2e6f400462a48a2b14990bf1390f0da1129c2
586389efc51d1603ea78f85e7fe14abcb6eeee90c939a9173874f1f02751bd55
927435904eeaf166b714778347fc89839e65910693a324d5bc9497d8c960795b
ad4f4352387ed7bc6658de590a1476df6ab35b4445cb9c354e3cb3a65a729848
311dae7ac5c82b0cc060f721e6e824feb3f4437b6b3622e86bfc6d56f9a3b95c
ed50854dfd65eb4753d7d4194dec4cdbc73bfb161fe6642be83bf73375f7d3c6
f314690497cd18d97d5ed7625c88660a2c7065bbcda12447ec3f2fab3799ac27
5b0c72531080f47fc1bf0df74cf0c04199f22455e66de158daee7d239604b5d2
838943686140155e09e9dc9aad397f4730bce32418952d0175930c5a49437a51
7957e89bd2150baea08ddbc5914d37dbb9435c21886e058a2dcc680a87dc3e9e
ef728f26cd6001a86cca0f882535b2ca7e9e083f4b62bafeda45b98170a0a223
e2ec90398a175b66928e889fe0e2a9b93b040d363af92373923bc94d1834a20f
fb358bfbbf5c55412b8689cef4bfa4e9e8a46db48c48f7a58744991d5bf46378
23567067debe18a03a8d49080fd1683a4e81adcdbfd80a23449c2c03f196a98f
b7e1369c7f008665fdbc658caee1e1c0a68fa2e98cdc83da4810373c3815b527
c264b44d2df0bdb18767f3204d597d0aa23c06502234275a10640c7de47e890f
9ecc406f167148e2f6e8f353fdc45035cbaa256a02760a42ee9d18f3fe1bcd78
99cd1e58e40c38cc12b0ada37f7092e8fb3f348a849471c1ef0d438e1c15460a
c76f3016b2d1b85b20838fff669c5c2a301a0f34886020671763a89b4e985a33
7e108d9e224ec5f2f5acd988c8b1022b151affdbbaafcfd1fdc11e8f117d5da7
cdaf291fcb541ad755c0893372cacd74301c485cb6b8f27a8b2748c178e36ef9
7f030a22037db5b95c0db3b455b2583d5847b3312459eb726a4036f80a0495aa
a127660157edf1293db42600f55f9abfb70e9c3334b60527372cab86812d0ab2
73eae0e4c162e5d76b71cdf03204952b271efbe1cf8dab2132c6f7a20dfa9b98
f52f7b0b29dbf38d1484a5caa644f38769ec6a0090b10f53676dc2f6fd14985a
6185abd41cdd00b970c13c16a8ef61403a7f129ea9ed12193c8789a9669c3be9
6f21729e3655a4daf6679c4318f98f4dd5f5c12934dc5c696eef03dea5d79632
da3946d7acf9917794adfaee7b9977fd6f203c7b70f307677b0ab5fc6fe31ee2
a6122e9925d13990ffcdb4b7af159ab7157e231b8bbb88eeef15d24c0e13484e
9550adcc1e0eebcd077dfbec1a931862100f3ef725de23ff9d974c2d310e7725
ee60ec1e79fb297d436c4bfb8f5bc45ba818e72cca86e068b917a0c88459dc39
fa984179632c1ca4bb7d31efcd46c80df69cce0cd68c53cedaf1ec6ffaf46edc
6a7cca91bb940e8617209bcef9e43cb6874db7819cb2eb5e2eb5629280f1691f
97c612ac54bc6226f69de741814d7bbce3c023537c01b34c3e10aacba92e8a6f
493550bb6a17f414752d07430d20931de6929cde7a32467ca6a9135d7efdf66c
0ddecc3fe8890fa54b3c5f68655ee5fa656b2cad7f722d57bc0fc21418ae2977
a1d7079b271a8d27778b0c0fd6f366fc70fc956abc4842688e4f4cb8872eefc4
dca9dc9c0206cd22e9c240cc5411558c7559f19cf3b13edfa38930894151bf1e
1676dab2bb0e28d2b0f83d9a9beaa34c7a35531e4660d548f6efdbba7233fda0
01742d905f4c75d70e2ea081a23edaae908da319d5a46fa5e55c8bd860379512
1827dc53023a2bb55aca882f4f92b0752532f3fc45b3edea36fa870c5266f8b1
b895b3e999971f044c8b76b8da5abea1c28f363a5cb17ad709354dafd343cd9c
d28853e09d4d2ce52c65334cff35ecbd18e755156c041abebe1f547e77a8b6ba
d8a2302668aa5426c4487e3d0a281ee69ce2c919518af3ec843b26bc2489f0c6
77fd93f46ae94e64905ad274a4c663404b8f18efc9f85dfd380203e5040b708a
6e765fe6b7fe9197c0a337cf1f373c597698ebc39f0f087f680f10cf48a9306b
be1f8bd596fe5ecd45a1e9166b5acd1af42f5c56545f1d967529a4bad58878e9
78d12d2f8d170c1d636703a49c54ee5957848c986dd5e4c637b2910760c686bc
c6c2d5410b901cc6f0f61275109ea7f024d41fdd14a9d4009da0bda63a3106ab
e4c71fcaceac0223d4dacfec187f76235eafd1ecfdfaff385ff85028b30ef8e2
8f7860aacd54054db633eb98ebde5cb3230451bd41e1fff3045abcc8a7cf4b57
b9ab43460604d6a0d1e093f9bdaa606c5e25ecec536ada59c6c72e9b4db6bdfe
e97ab66be0f4e5d52cdb7440a331800e3d08582ab7b298100c2272b8cc4a73f9
434d151282256b9d2aa311f890a49f9b72843d5ac71917774c74994e04964cb4
66b8558b016f94a366f155859418a6a43203ae320039768458c900247f1eabff
befa5112dc426a1d91b1f4244c17e97e3eb1e3aa6db9b0b901cc817e819a559e
707ad15bbddd2934e96cd611cd51c5c7fc50ccd8a8b9f07ee9b4488b685b409a
7189a595b9a81d0f0e5981fb6c2eb9e76e55c682eca70547d07a4699bb052ba6
03e55a266e761dc3090b4942fd798c7f00109fd8e3698a57b55f53daa1f65056
a62319e867a74b2aaa2ec108f38cecd2894608544f33e42dc2bf8d39c97e0de9
b8be6f20b39441cbe548847ac42f97a42070534547a97ace1e40f0000795084c
90f01e7d5dcbea7a9dfae8d78666dbf4750c259d99c54ee1971834914bd21f27
d12b67e9394554d6f9314cfe174acaf1ddce58b02f65e8754b7a510711a2e94d
dc337fd6bcd342f95e86cc1379e882a2cf152b69493f89b1620a44790378b975
e203bf433963ebb49c1e271ea05ffc4c69fb88d7a56d82e27975d5d7542eb408
965464b9d6d7e43269be0e0372164a38b3cce0acd80159b2524ee1e79cfa60fb
082b1d8e6d23549491ccf0de5c13d4e116d16f149220ace1d470b2ef03c04595
90e82875230ffc3a929ef94dfd17de4c891676341865e5e04b33f0e6ba385ccd
3ad5d9a5ddcb6281b49328e3a92e66677c48375d5319dc7cf01a256817d9506f
a20a2b949b410563ac3d1fe8f4295fa45276483189ae73e576c01697b285529a
fd8ed73b010b676be1df8d1f4ca631f51a92a472ae01b519c7fbf9ec579f19c4
ffc6efe1d87e55e5eff78dd3177b97a57fdb524574223a7160b6d5b2bc79743c
0a53e9f275835e8856e8daba448351843542f4fd428051360f7edc91ee17d9a1
1d47fe9fda94629db3f06eec6913447122310162db5988acb608787bce67e102
eba9c51dc93bc429baa2cb1cee5dd5bba0c37da2058d655e7c1ea446e327414b
7b99dcea1b3aa568edf0b6d329dde18e334635b0162ebdd51a5fca04cc5154be
59a444519f1943944661f5180d0c5f9ca462ce2acf4e478889b7264b2befb175
080172918627a9a7c9edd0621965fbf6a3f97a642743c968bed19f8598ad4f77
8d31306ff4f83abaaff5c2553029f981db8df4298a5d9559749ad0da13904ff1
f6cab5ad55e1caabf95d56e6f1ce635d0699dfa53e9dcb30074098ee20817046
da494a7c54e632808c8518ac81f959873bd29acde651f3ce2464d6436271d32c
0cdf7cd7dbdcf10e8b00b5b57c460809f85e7674cff86b434c1fa9aff3a676ce
e74b0f9e6863481d465aaf9de343affe1dab652dca2ea4d8d9734fbbcaf559e5
62ad805afa061dbc056037eec11d5d625a54bcd27d1d75bc5037dd489d925ca3
df62c563a84851450ae2b88d694ba9cab3eafa59ef47f4500f9502e7d307146c
2e134184892ec7d372631e7598b052ab49a5078e1766b0e6b24f24dc094307ca
7dfa7f702fe6131d3676bf6dc0e07a6358492b5c27261e83f794881f64d15cdd
adaed2c7df4c0dc8da708776104a7c718910da68ed50cbccc4401fc69a31c59a
6735a38221506733b5b3412e5f62f0e65d00ba874df456c1c094f968ba1359e7
45b8d520901e8e925361ebe4bee14f3045c6db361892f5d4dff0ee964813c711
0f87dffef9fe14a86c83ffeead544d9c57675571c962621a662bb23f8662d188
ae4187a1ee374682673306e6d1f3d17801782755bc83880b9b27941887de0d6c
cbef3e80c26d45e4a51101e612572be876b9ea470066f36a0b52cae3f1b7f24a
3d9f731b15861508b2e0dbf0786aa60da42c5e456e1bcb1513262d4a35d338d5
7b432f1ef0cb0250ceb5f59d631941e6314db981d9fe6bae478bd20a85c1d33d
ba241ed0428823dfe282e13f89fa6ccf2beccd433782d133dd94c54ef42c1217
5b16e02839955ab1b88f1f628006eea335b5bde2ead7d5f0ac48e315277e8a6c
8a0ffbf937300fa9d7250364c5965baf75dfd03e73fc22fa609e30d94bbcdd30
860d0cc1be6ad2e50cd2ddc76f94b9e7ac2cd29ff6b0e0d6cf00223fb39932e9
a76eb90f760ad01c10397f9061c0f588ba4c5946c6ac9a40c5a2e3ac1e2dbc02
44b07c870977d816ccc791b83f5465b7928d2f6c696c322728e66e88f43e2c8e
5048e19ee14b7c2f07e34681a5c5d245e7b9a493af229268dc5f3b1dc14b158b
e14f44f54904df5c39cc33ff826eb9bd5a62f0be9794be45c456187a6ed1c766
829ab49a470c0aff732fbf31e92cb6866f19ad657228846e173c7b9cd6382e47
44021f0b03d00e60b3e11cee0fbece6f495b38c96e057d7c2576e5da02baec8a
5d4ea920b927e6928eaea493f7b95ff8db71e50fde2bcc7ef71f78245f71e89a
1db796b3c062104fa17f26b61e52cc9294936dee7a7f0c687e2003d74f2a47f7
ba008f0587917d9599520a09159e46ec8bc36bb9035bf0f0c55d11baff020cfc
e6d268e34547e71a75bacab8c5a06c2c96ad808350cd0e8b8334924b7cc84bb4
0d64fac4c8572a5a86dae1c6babda9833ec1c5fcb76d0b8ac8ddf315a323386c
38463c11cfd10526ba3623bcebd7ef8f45def99f2e47d4def37b4215cfa3703c
d10d3cb4d72d03fff0969885cb92ba0d2613c152e0fb987ca65d58d190597426
476b6ad0e5f139054cee912f936e4a3917e57c85802f218157b9a75c4a755b9b
9533600c96682fb0f57662c8576789df89c956008a5e9cf8f867446d8ef6d43c
7e4bc48b05444350e9c4052d6544b2eef92402fd4832c34e0de28af5e66e8ca7
591ff67644bf0e9b25a9559b90c5ee61b05f23e2ab00311a82ce1ce6c8a2034e
9b9ca74793028d1859f56a04f3f2ef933b92ead5f550f6dd20eaa024582ac34b
c37acddde8dd3d89cda7c1e39f73847a04148d509ab5242669f5b691f05d20c6
988b3ed1bbbea2f18fb520d6795e412bac18296ee36caf567022970bff0e212c
aa62cb6874bb4fcac228551a64c0254de6b6cf5288c73a55e49e657a20347da3
b12ef7a6a6f1d18b056b3138511ca1213bfd4d31d5bd69125f395d2a4c49c517
5181e835b7dc8a66026379bbcb9c7b96cc71f4eec5d33afd12ec2205c453447d
c6e1b75f3b0f96222ad5df51da92bb3970502780f329302a5e013f6bfb94becb
c41f4d680adc73decaf4ceed392a0524a05ece2a88f05821f682e8456c81f2b5
7b0ee826be4afd51692b8a4b7f2ad843f8f5b95ce6dc1f7849035bbf170f2988
97ef04b55bf11c542ae6a66b6fac1b4b93ceecfaaa037c1346b95cba1932343d
aff0550f389c263b2253738ed9db256f56d2e9cac8d284b559e736ab0dfb4230
6a5c55f152826d8020b250afd460178484292d93074bb643b667f90977eec8fe
9d0f946689023723b8273c7da471fb29965742afe8d23831bc190e8461e40933
565bbeea7e4436382e2f7b806e4cc0ac30b28f0d555756b7c690441d4d52b3bf
a4ca9f22bc1e99d405bd2b5fdf00f43da0d0618542022c307da75013cf012f44
658b0c5b1c3baf7dddab14e2baf75ca05ddffaaccfb1c552b100a25a3a4db010
fd7bda14419744b898c435b993a0b97478489aa798cc41961fbb7f02ea8e8018
3a898bb5b205dcf11e620e6ae19130aeba36cd541ca7034021fdbd1fe3f88170
f80415d2e2106832b376d0cab2117bf421f0c3998061a48e7ea225c5c751c0db
fc2623362879623d4155c09a8943eeec0db9054cafbc68efb35ae3c0e82b0072
51d6784574fb64da7ad53f1d5e103ad486f8aecec7ebdb853e3981e4e069979a
4e1345462ec67593cf5960086e0dd755a324d936d17f142ccd6a499e81ea910e
39d9d95be5ec28ec5ef733dee478ac8f304cdbbcad2c35a0d44b6d1486d06997
2486de40e7245749d2ce89799c05eaa4f1f49a19e210b536a50b8fad91d83c4e
9d29fa988bce42cd34dfc414d03ccc8626b0df883a3727edd1db3a7b086858b7
580d5584a7778c6cddb35f0dddecdd737f9ee0acf9ee81641c7878e3d6db8bae
a403b2810d80cfdc8bc084bcb9131828fbf94956d842664f387838183ecf6575
9adb5ff557b4e447ef59cf9c1caab4cbf81d2a3abf61e2fe628b422e6f3806f4
09cab52459f918273dbd86af85d01cd447fdaa91d2fb25738a815896217271cd
c8612f8564534041b1275510efc603468ccce9c787136c6336d158ee20ce6272
51eae22130d371e860a59c47ce474914804b9f20869dd38024293449af80ddeb
80b41f7e11a396f52c19bc62561ae8f6ac1015c7688bcb07e3b893f2023d40fe
81f157eb57008829825cbde22d308f76bfb56f2949f68cc1708746e3b7a47070
752f75dbe3bfb602fe73602ef2d78e952ed411ceba5ec341685c3f843ab28ac9
96a0a5b371b407c47a44f0c4ef1a69d265fd15d4d91c39c94f5a0ca6e2d7fd70
99c3199b8a2a9bf4b92aeddaf50437e73ff37187c2b7254f3a8caaaaf3c3366f
b2d7ac4b38508b58add0640017d9d34a4912f2f990102e6f0c6ccebf4ccb6745
6f92d5325f8d37f6309e69ff7d6b826879edecc4e5684cb12886ce2cd3cead35
5473d889ac6167cc6685e02957ab3ad6ce67fb1caac7331ad427d844c165cd50
597372c3e64834cbfb2fb0e5287c4c26afd0abccff6464bf85434eb988a2e235
4319fd80a09f2ed33de241e7f18b2ee4003695edfbf4f8f3b80f23d5ed457071
c9a3965e4ac255a4b5a8e59241f6545bf6c830590b174bedd708d5f46882330e
3fd41bebc72fce0a180f7c382421fac6b85751b67caac4b038235a7b7b92cf26
a1b92481ac373d5cdbe1cbe0f65f19e1a3d886691a1bece3583433b6c385bff9
4e26fd0de9a019f64f97fc06888b52fffa942c40d023ac223ee92a2df3afc867
25708a156d90b87512c1dc6b4f2e1f0ae0450df78b7368328d2fb93f73721326
4debc3e09c6cdc3b2339145a4e0e9fdbbc4110827944a08aa1383a57049cab21
01d5bae06cefd6fe2adcaceab09b0056e9b1cf3ba2446d617603c189beedb37d
68f2ca15164984754fce571b603575b1e4cf4ef37342af735f2156d5af2d085e
d29217e4c663d23e9dd0b10998f68b719ec195860efdc0fb1bd4f5cbc12840fe
0840f8e76f0fbb5f3c34e3d62d4b08e536416928fa0f9cac1b789837b0cbfc05
89fc272117d2a8eac8406a0888ee711e35a173b368faa3725f90a9cc058e4173
2cbedcb5ccaf4ba8029388beaad621bf4d89490a657f7c9027e82537240057b5
c99fc7224a1d09129f2db3547e1bd04f6645df931dd0c0cdd927ef0e3cc26498
de557a7448dfa30f39b389f76dd20a6cf398136b48fb0924f414317f6266a406
ed41bebe78f8defaa017fc22e6ccdd03d4e50ff7db9fd8858e3bfda724e56769
ec01626ddfebf8d212b4320b98f6b2e53ba2525f9ead01c2063de7fd2fbdd863
6aca774290e1ae1ca230e2bc7361645fc9b37039f752080ababdd24ea785e94b
0fe3852278d7a16aca953efef270fa4ff0509075a2eed90dad8b91b0b9d1b0bd
bfeb88ba1de0b7ff48f78fa17c18570f6f03682f5080e34598883268610c75e3
091376dbb1fe9fcb881f4bc1688e14e4ae7ccf0d2d3219a6b91f13499a8ce2cb
f54ce0a6ab64bca8f42b9220e651fc790ace021b243a187e1c3ffdd6a77c94ab
3255efbe0faf59e14739e4c9ff830399be165c16f2c186fa578854ad903e6613
45e7fb9cb9b66c98f124892f7f53afbb7b2c4882903603e6ea94dbae4220ac6c
dde01c4d6315c0ea8eddeb1496f0c2acdb97cf71adb3fdeb8569bb9f5586f98d
b6fcd72c8b207270d92255ce8512583f3911e11dc20a68a0077b3379e3105b0e
be60a60fe5b0af8596c967291874c7360de5e9b80b7f7f854e3186afa1862829
98c586d59df29bfa48a84fe59fae07e19b5ae3e0fcef3970da8a4e124ad26548
6dab54611e09f30774b790a71f096e3849b4f4c8ea63db0bfa1cc07df453feff
fa63f578a4c796ca36cd2d4d03600686d1cef3dfc87e2e18ca69e4c4f2729652
8e93a9597c08110299eaec11447492d9afc22fda312fc3490e41b2483c37d9ec
4472d6edabd05be21ea67be47b85a5d2fe7888d90f862b548d9b67a83e1e8027
72b232ce5f569dfb36b6ba76d0e102a6f7aa97effcb57a723982e6226c8035ac
26c4d2b51f9b829c9cdce731155c15b85dac11301e50f01a70edae090db47a45
5c8dfb98b84cedded9ce1aa84705ee53af62c9ae66818ec86490de44ecf51696
c5b42323aabead2e36758fc723b2e3218150b885aecd66138fa006f0288c874e
8b6390bd70c4c03da4e547afa85897332215953e3804a60d184132e6c83797c6
e3b55fa402a03bfa4178dfc2f3916fdf9b651972887a43e813c40f4cc2b95cf1
ab7089eeae4490a8aca66b5593ce55e4feb8adea67d3966f97df9d824427ae2e
1ffdf2a454ecd1b7ed705768193eba668acda0863a04fea0b5f41660b24c5f49
75ed168c6e4862f31443be672e79718b0664081f60217aac0c8eb88f5235c61d
677080e6d14272ad2bb024634ff71904225858960746e3a6da4ad46846ac88f1
0f3ee2164dfde3153134e81770f733cfae97a76d75ca7148f3fb4a31a26ace19
aaafddc4c1e7d909b0654dbc172ff1d5ac1b7d7158bc0a2e9e810952edf3d8f1
cb1d4e6c8b03ff5ff84951cd7e8c2cad91614a292f4514e2e24f65027b7aa8a1
c31b8ceedb62d703c88a2abb8b6cb85a8f33e8f6cfe6cd737b8eccc98044258c
8f0a0ec75cf429c2fbbe33521c900a296093fa45a705db8e4302f8a2131d163f
d8463675049dc5f101f0c52a225428b6e06d2324acc7ebf45ffb2ad1270b91cf
4c6828e8cd7b68f6811261d48c75edaee55664b27fecddb89c25b6db8bd34233
c9aa134b7a3e7be30f6f96feb221f546978e1b8f7a2830ac29aeb68487dad060
554c5e94244743160c507c82b59d5f33146fa92ee23d6f2e87539a9ee095078d
68b2eaf334fd2ed5dc8ce3baa504b98dba287ac81faa637327a6eb619416b60e
2b7123a1c8439ab093b0dc0531d219bf513bcdd8e39eddccba011eb001273f15
c8786bb1e7e21fb37b69d4731344380697e1fd1efaae459aa6d64d20bcd60b95
55784ad32d417558c1e389e0081a4253ea95adf07a12b50d7709ca4092f9e088
329f5f3b1f4c8d47770d9bcd6dcc26889a03b12a8d6a6f651fd8ea7ebc2e629e
e0b8aa0d4b109e3cb8851d020da8068f53660852efc975b58746220e88b8f524
aa7568615079e3ab9ba2e6567d2ec8fae9b44c40e38475f286f994d12f9fdab9
e3b2402c58784e1a2bf08bb50da752df4da9dbe994863339117f8f4ff7966a40
a5536423cb09758a7e095a32a200f6558b9df921bfb88a89a525a6a4037e4d0e
5012e34fafb11a0530cd78b660f994c5890a1fcaf240d158560b9daff1298577
d96a2e0abecebb2fea683e23d2d55c67d82ca154070f6f8577e3a9b5920f4c78
047a145718f05a4160dc428cd30615811b9f11ec762876522556473cf8e7b4c7
507e1160d74ac3fef0c0324e98d3edc3b1af00a5eb63900c41ed8af3af2e6c9b
64fbe5c8e6cdd3c0788ee4e445de85ce7ab50074c2ef30e09bf3b77ec05beea2
2eab49dec16246e6d469fa3836db7ea9fb1f4552287808d35937cc99ddafaaaa
a4df57ada42a0e7cc17cf7c85d89698d9911cd7a7abd65a52dee847772ef4e3d
c58ae279329bced91592b75d8dbe2f248282ba9d83409c4c01abeafc25488da5
fc912c6a2a6a44ab4e6a31e46e00e64c2ea32f9dd262eb40c4e2fbe0dffea3a8
6bae373a299d733ecb558ee33690cec00836f68c57d3aec0de30908394610afe
d52ecc75da8ff52f12b278c0fedc2fd84f93f1c6146e53c4fa5b04fbcd9a98c0
571c25ea33667b294ff3f7cd39b92507dc688f09675191abf642fbddcf0632e3
5b7c0d21f2a87ecc434b0e727c4e5462e64312470f888bf585157219dbd16c22
6a2e4d2264a3617107e090730b0cdcb23a99399d0dbc9472ec707fdcdfb80f87
50e0475866edfbff4b6940bc4668bfe5f26720e795b4626e6d409036adb84803
0f4bb9dd207ab399dd7359d2da72803581bd31c729d5d56dab1589b5f2224449
fc666090bc5ce4bd34b992b9cc9a139e9503ed2d94e2ede52706c2584d11fdff
06dc0925315b8b54b622403e20518484b4d0d95dca84e8aa61f87b6a38fc727c
a41c09f5d78d69f64655d3d77d3327881cd4b204a2832d7cdf052667e7f78f69
a14fb94c16da67f7a78a1b6c236bf0fcec87dce5c529cd28fe8737d841bd4332
cebfaef3f991b9d96c9aa69fadd3a840c4099e47428bdb90396a6512023c29a5
f80f2915e14de83d27c928cf74c728952d6c95cda6e60a98ee86c82c22076500
642cd51f79358dfa922f6668fe80229aad9614c0069d6dfc3d5858505975070e
5d8566d9b7cb0c6bc11e6aa8a1320cf8aefb3cdb925ba594ba093c2177c2479b
52f9bb08ecd5dbf2dd4abe71bad94539eb42d7000ad831f8d3f2ed05c1c52ab7
c436afe34be572507b29b8aab50d3d9a5abfafe8645ca66b2aaed48f40cbda75
81b777e9cbde2198ae79de9827d94b97ad36917ea46454a2015835ac816c63af
b0246f126244ae28e16a7e283aa5d7af73ab67ac40d6f22f43c4ef8d0ccfb955
c4238f55eda71b20ecc3f582d7ccbc8a32e914f4b85f9870479058e960bffa2f
19f73a6a2440593f8c1d6758b145aa743c5dfa303345172dfaed21b200a4a030
197166a30315d5d53fec36ff28c1a388801e2de8256c144615d5c34235178dfe
f3de041f732b1458e0cdd05fbffbfe7967cf83ff0c1640c28e14dd3617464382
b8d15f705c36e60a70bb4ed56148ce24a3a5a8ec94a154a9215657e4589aa225
47031faa360dee95cca8608f84d3984e668be9fd60a2b2765d53b5ade86d0867
32f2b26f05a7c783af505ecc56cbe9e139fa1792b61fe16f0692e702683d3d2e
083952d014a66ef81314186dbac5cc30ebc608ff211d9220524a039f5859d44e
d75ceea89d2769fd7e108988d1c8395f61cf013a25b08a8982694d9aa3cf30e8
62e04596604b55abe517046bbd8932787bb3da77b4873599bb1a23d6df56d864
1bf53f1539ba70b94b044b542b7cc97dc4fc7db3fd77df5b8e8802d70465b703
faa926228240c594e638a75956e7fc1e1a1a3ea7276e8eae9c51b06c6217777d
fe8542f6bfd636df85ea73037d89de7d452b7f3f6b2d0959deca411588e24f5d
23ee6ab511afb28fdd2986531e68e52f835683c2284633271295014e030de66a
52eb89a1af50c145211848dce5218a61cac2a6d5d4e13b74bfbf6a047c95e499
81e04960e2537a66068255352e113a92a006ca0aafaa74154f262c0a32e6ebc5
6113752db1158178249ddb28b1aca437620ca2dd4d719feae60cbf024ab5cf9a
e3503384228de7e1ebf3d4b66aa1268bf1815b8355ad4afc9f049b4a04f8e9c3
aceaab1e11f69f43c8a58fa501715876378d4db873e443bec94f2e82a7764d43
7d6cb9070991111c47a030397eb6201c54d7eb547c2b533386ebe1f61876ce91
35b5e0457bd5a195c225fe9a5dc082f358c9eaa8c24b5bab5115fb774e255813
352bd109c301ee8888a56df85c2c64f76e34893d16cdd141fd508e9efe8405be
c9d068b55ff3cf240723c176e7be65d7c54d1373c26af2d4f6c5ac54e9c53b0e
cddd82be81edf6b7d31ccb587e74e3b3b04b94a2e268c5d15098dc04ffd1a7e1
39440c7549d2d4919eda76b1150dae6fb23465d08df1adf082f84af41213d5bc
2b170b83f3a50831fb1c6a627fec8406bdcd4ea043cf5a04ece0149edefa6e61
8bf5b57a6999fc6b714adac74bed627a0514ad72a1bbe2d01cd719fd3c144650
ac3c51a9a7541c8cfebf22554d0647aeb5ab039fbcdf0c812f9b2b3a11a816b3
84e6947508e0e306f2c62b7861d2b310e48e36851b655626243f6437e0c84ecc
b6e99a00716dfe7acb936b7909135ab3723ee69cad8724a753644ca6c9b8be2e
a278bdd583a22430838baa9a088f516210467121c238014c903d9a676f5b6219
46c2c0c51b8607b1093b245641dabaeca004ab859e5a880431b772d43771ac15
34f445dde7ee720c1a68401cb9891405d8f43069af9ec8941a6214ebdbc4b91d
fe8769ef597049830286ca0f4d3f6dded593419e4b786844f3312208c3168b13
3b55b013c976a5dc91453f2e79a9bcf3472d831a5606a9f18839c1ff2195adc6
1367209c2a5b865f4ad9f01b1086fd1af14f102a3396d670fba0c8d01bb22d77
e807f7001b0c78674624a6c9b8264015df381109c008d181840ae4dc5e02749f
4c99ead7397fd787016335ca02ca052919a165343c1d519f7f2ee4fef5c9505a
a59f951cc3653f1814adb05b16dff4f642a36e41453037d09976bfe13843f452
f8dbd11d4e937a8737b5754443fee3c04631c1e36da3cdc79622263781f7a380
392d5021c58f50ae454410a52a9dd1c35210d37693bdbc429a86ba1caeb19065
2eb5638d85a60c8ccba68ce2e0f10ef984421a365e666486d4e6d0853c239038
540149acefc285046b1f57284da30dc39dbda4fcad265b3961ce17785d33f004
af897a7ed975aa658ed7043825356dd937ec8bcd672f70cc75ebdd994ded0aaa
a92eb1073d10b99dbc52f099b258de1b485997b25c1323d7e3f973fdeff898f9
d1c018b1da16fed0452b3fd179c155ef6a5e2bcf05e6f717c699f13357521ba2
92f82f4b6fad9e795bedc9ea4985a8acb41b16dd3611e8210deadd6715249241
a40d5d7fd161a5c86f414d7444cc9e3a709a8da98c7d6b7d4f1640f4e37a1674
376e37e188bfc9b9d06393135572e52a6d1cdbfc675deaa2c3c0a2e3149b8ce5
432bedaeacf118fc99e5a567fc82f1a9dd2432660a05bb
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: Utopia-Italic
%!PS-AdobeFont-1.0: Utopia-Italic 001.001
%%CreationDate: Wed Oct 2 18:58:18 1991
%%VMusage: 34122 41014
%% Utopia is a registered trademark of Adobe Systems Incorporated.
11 dict begin
/FontInfo 10 dict dup begin
/version (001.001) readonly def
/Notice (Copyright (c) 1989, 1991 Adobe Systems Incorporated. All Rights Reserved.Utopia is a registered trademark of Adobe Systems Incorporated.) readonly def
/FullName (Utopia Italic) readonly def
/FamilyName (Utopia) readonly def
/Weight (Regular) readonly def
/ItalicAngle -13 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
end readonly def
/FontName /Utopia-Italic def
/Encoding StandardEncoding def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/UniqueXX 36549 def
/FontBBox{-166 -250 1205 890}readonly def
currentdict end
currentfile eexec
a9994c496574b9cb23f8cbcd64a4a16861c70f0f2da82f0c7b06ceacd6521bb0
cc26f1cf47836cbab75757d7a81793f43e56cc8f22f926da04d715ab6ff2e257
5a135dabbaaa58f31f548cbe8a76c69e2402589b9e5e46e757f06bf2eddbbe6e
e48a624cbe1c4840a338e90f7efbe9f2194aee1c869bc4cd76e2f1937d78e207
d8149c05b50ef0bb361f5905977c40be7d4dad07b54e087896acda5aa70ab803
9dfc55a73134c7f1c9be9028d3ec6ccb0fbb8fda52bba4d7551a8124e68481d0
775ed7f8ec68d8073bfdd3b67f72ec68634ffc57727e16b9aba841546ae54d99
b60e227682315510edda09bd6ead4d1652f449d737592c44bb178689a3840169
53d899636686efc6f838b19f966be5f833f5e7d41af38a899df96fdce1ebc116
9b0ec87c930d9fdcbab7e74880e9693a24de9c67dbb0dd75b3dbd113b079c490
60018433ccc06ac1df33fc090c4642fd5225fa0a188c131974ca8820319704dd
14b1719b958779d1475d92e712322eb2e6a79d652c4e3f5833aca3091675fef3
fde103446e565428267b009d87bb7d6bc40f46b498b19bf1223aba33079e41ba
a9561254a9df97a48d71015b6a24cf952539f664f172d565f39a55e063154d80
a960cd56c34011fe26e8849c6677427b2c7e728cd16272363d76661b3ab8bb2c
85c20b747519a4431421d4c83783feb896c45688ff7f824381cff5654a1bfc68
6f4894e1d265455fc00064d08c37dc3a47b59a5b2d14dd893a2b871492b07c4a
591695c8df012ef46a750d6cb7fd86696e7ead280648bd737e9ea490140f3b1b
1dffab2ff8e085a8b1c78e4b9ae9cee277a29233cec5ab2588d1cdaf4bbb6512
e1b1476c68fd3db18ecc2536968ebebf4333c2c3709ca354f21fffc38c3858c0
561378a701158ed0201a3b236ca9cb7f7528d1e5e07a9bfab04f8d0fa3d12405
5ba2fa9dff76f41b980bfb36e8db1300f7172c902dcb9f5f0bba3cb9c212bf31
76cb802ddebe556f4610021fa3700d476a2be2a66ae6c658fd0a95bc1b9629ad
03fe4e775ffdfa9f87a274fd904c0db5beae258f9af213f257db2be0265b964a
681fc4d2855f5356fc87576d847db274fed9ca5bb4961ffcf53f28b673f50e31
c3c634604e718b7666b466557f4f6bb6239339e028de3909dc47cd634205ddd4
69a944f11883dbf89344c43c513c35ae966a37a89795177b9fa95f3713e4d48c
379e33ffebb1bbc92521cefdc36e4cf5265d28522cb874b9e8459abfa31effa0
e0dc4d34692fbeeeecea87355dbde65528d1f76b89c4b5885e3d70b3ed028f5a
0510fa7044cbe74a030a9bf06c592dc447f9ed889988e7ad42cee85d5c3687a2
1d78ff32ab9f4cc829e7119f3d144ab2c78da8230df854cf4a690b27d715174f
dc062ff7b8d8ac407db4410a7bbd2c1d2495101298e4090f1f9fa1afafe36904
755a6ad78fa30a59760534e40b3e32b59ebdb0563c0c0e43f4eb6bc32e80b426
09bc1f3b74c0acc8ddedaf5762037aa3e2a2a679e9afe87e32fb1e42eebca249
d8e36fff649f75309bb73b7ee08dad284b17028a880376a67982c07f6d12b4cb
06efada2c371661419b85835a0b20d18fdc162b3f94003cb70b056e077d528eb
c3450f84b5a7c65bc1df5e15613ae03cc89a679460398b7e964b290cc4538463
125e0a6b762ee85d9e9d12992bedc7431245fd92b4cddde62fdfc99a6d3b09a0
1f73328e8139849cbd1fd2cb5fdbcbbb227cacfe99ceaa311982c21f75b7a77c
4347e35a06b8f655aa43f8b52e74f0deac5fafb69e578294fd414884fbaea16c
e307f172156492b08f124a614ce0f1b50b842ec518faf57c94c26121feb1523c
3825d3e67cd11ff1a14e359ebc290a575b9bd45bfd10c2ffe319c55cf31a708d
d8b5e3462b8c46ccc1aeeaaaa2869567fb9538355548b07defcbb15ba4a3249c
67cd7a6e0aae0d0d4b95e9eef6e782a3acdb9eafd6d2c0275addefd1981df830
f93866e9658c1d31aea8a1a87dd51e04c03b35a07f82850bcc3233b5e2d7cd60
0c2c5794e6cf73e3f28b2e4bdab002f67cb88991550f8080a66a51779ebde9a2
ef448cc3acc6e5fcf9b537da8c9335490aa3cf1970bdac6db7cbbf86f6d4fb4c
d2be21fabdafc6ffc5e7353490ebca78ac5fa087b567b6ee01ab727b64d2d561
fcb95239b12ac04cfbb050507e6030229ffc593c9c473878f5e57dc8f688d721
c5d3075bc07cb789b7c39938e0e69044a64bff9118973c66955efd29bf2d6a1a
38cd2bd6a4d96da6e28b564d310cc6587968a767404421e1b566476b351d4e68
a5dc329837ab3d980fad84917765af40d48607e71b9f67e548b05a7d51974180
42b0d573a632898c880da9b8de945b5a67d67bbf1c7ee5d3c37e0852e51f3493
a6cee4554755c72e3e8d2b3b7a69483b217be80cb25db8abb51a81d3c082ef23
92995c5585bf5294420587167bb986b681ca712bc48a9bccefab8ea79d7b33de
f7ab496eb280733c226f4c1708fc9d021784eff892e14b7c2f81b1a9b4e2967e
c8c44ac0dd7c1115032a7464cb460f728577556c778f76b4bdcecd84811ca7aa
bd6c80ecfb042655ac5e6f068cf20e2aa201501aecb98e9bc487681c2ef64820
c60b02e5e9b37f28bcbbe1fff890237d449d555bf6302030c543bd4e15acbcfb
a678ace308caabb224c184339c60e4a18d709a6e0ff12d200839f29d2943d1ec
14acf41f5977460ea23fcbdb66e0b2a85762c8d5a4702d0256420ead7b57c0fa
076cae8fdcf13104ad6682bf279047eb7fbf3fd205a8fedb0bb0eee84b15888e
d4baa94f595bce6923d9a905eaf276e57640cd7054eaaa348900ecafae936514
80c8bb96dd86e62670866b4a35d5f3d2d0740797a248a07fe4cfcd3ed8a1a2fa
24b4669b9bfbf17f3d6f1087ab5dbd92ca85562797d010e0fca4e75256196810
3af5a3d17a779dc2aabdda4789ae48fc91a6abcbe549de048d1ce23a06651e91
2e56d9f23ae35abc0fce4a40e4664318a459c52c1bbbff636a3d3e59b78f3357
0dd073b9e2f47b76a197db59c9631c5647178e451244ed68415b04cc6315a40f
9014b16c4e7379d7d472425a2c8daa7b1b40b206d3a8cc1a09d2652836d18dc1
d14c6d6f4b065cee9e840ab4d5fad72c7765865b7105705f38761d533f2293f9
6ae24d32ecd7e801a02b4dfa721b43ee912b61e91d736a70cc3ac65f83507d79
e27393b96d9d3d036d749513c360ed05fca92ed67624ecd5c33396f32c806b03
8d12d4078eb9e62057f0ab8a0c94a8b7acf79a9ce2ac02e5580e7ca6ddc25b4c
a4e05b38314f6aabdb562aa2c635011f3fb0fa4c33ff7bb3f6e657fb857c3a0e
566404f9f0c7fd65035c2f57d7ad70e0549bc71ce1a296e27d7a66202aea320a
815e64913d076b9861941ca675859d2ba35f93c6b8f37ab69bb52b019f3c1b9f
ec7bc5c20c6c3ab03d39284ad9104c13d5093441992c827e44eec1942a8ed7ab
caec3e4432449895fee9c36ba08ba8f9b7e5ed1ee789f0fe903b7db68fb5ae1c
c42245b26131b5708230489af0d320cc36b4125f6196ddfa16edec8b6a244eda
b83e97016338b6e127480c82775bfec98939c81b05d9da7294c28b57a1769a28
b107adb87c934832474dfe6a531f273e4408d30e4a83479469d8a8f06a96a0b5
891bc0587d26430f067d3424f6f55676e13b9b9b109ef4545808c96626cc87a0
2e96aea5b9e5e86f7fc770a0a085ab910fafc78ffe4114d360e47fd6197241d4
b8370d16fcb1c52d331f54bd386e0538ec3bbafa28d2063f314094ebf25cb966
5c00556dfea0485f6bdd071fecd7c377966806637707dc21c567baec76038833
d5099c6a2a45ada8966798cda1e53f711ac121fbef54337a0547850ee4f6dbbb
eff47aff49a509e3d42d13ef79b4b28b14ead029d286c71d45a7a7e681dc21f5
9d95fb4ea7e10f401ded3c023c4df0c5908935a2538e128003e7d213bcffc5a2
6ddbb3f8ab2cdd7737a63516b53f4c0bc46f83007ae2ec07bf2934f620ee513f
6a2002a7b5868653ba8a0093e313b2109e1e13952aa606daf47eff0db9dab0d1
d025cc652dc518141e6bf54b58e8354a03fe9e3ea74353c109c9ccbe84095e17
51ab0f1dedff540c8b1396ba0a0f30947d6153f843790030355b95f9e7d213ed
545bbd3deceb7d8b5a3a1ce4459cd04ac6e2db28f6c4f2e28640dd04842cf000
64c26d42afcd5dbb1d3ee219d727a19a3e226215437156e36faa2cbffaeab4b6
80b2eea3121e0a1bdb8e86494470e9018a2ae79c37b07f12e3da4193d31a4d4a
7cda98db6094b7f3e2f5d8fbc8d97e4ee89b9b0086f83141ac5df580d28ac39a
452ca17854cc24de67f7b58621f2498fb7affde1c5f10963835cfb92b5e6b50c
ed1df9edc4ab949dce3a86983b792f60c56717f83e0b3b386010a8c7372fdf78
5be21d4e9044c640b948957fb9f6c50e17ce61267f0687702a4024285415708d
b219661e8fe4eb6d51755e90e87d9931dcabd6fcdbae1a777b65c7ffca73829c
d6c09dc5decf1955edd8c029fd0ddc423bb98c5b75f18e426db147b5ad0e8be7
670ae4e2c26790904a6fc8c8c67739de0c477b8b62391ab0eb97602ec9ac4668
8c9c9b9abc897c86e02907bb57a0385b91e4a621cc1f7945fcc2c4e98c8d103f
14487b3c985e972b8ef990ec8bdf4e5a68e469a00bc94631024a47382a79c617
621dfe271c8e3a77c56c79cba33115ea48197ac6d4679dc807e3bb1d12fe4ce0
f86a044f1bb0dfaefb01c4dc0f440aab8b53398577a4ea18ce93a4665f90b982
2833754b45ce922a196f86973e0a510350afe6785fb2f16c14b58547cd1410c6
01c40eb0778cd6d317d17a9fc1abb9f5292bb22e6949969913f9d33598c238c7
778dfe7e9da0fbf4ccd8787eb3298b66357b0dc5ee28083f409731ffdc383db1
3407dbe11884b418ac96eef98b5cb85598e85ae6c1acd605974a0b3704538abb
df577c0ed42807f4eb5406718c3975afeb1da895941645c3e63dc6f2790c7952
4c1a541fb3999b814d50658fc8509097412ac1ca78b95bb9e7602fc1fcae97f7
b0c808f59d42f0afb220fe1c3a3332d1fcbc9e9ddf04fb81f287c17d115cc48a
d2b510bac5f22247a2d9ee444261c614d76ca694c1557fc005ffe2d20a05672b
109afc42d657ab64aa9ae6edbb0bbe5709f33fa1b1576d94a8d7f3e1c5696744
06473189f8072d43e842000adc98d771f1e09dd4b18f755f2bfda553183b89ca
0a90ba46a77afaffc46b8e43911bd163518b524e370ca9347ea431d112e69a8c
2a0e79661542535d9166d60963e59880303d588ee00b88f053d5067919c59429
3bd35eab0ea167295fa3261cfebf4387d4b57a60c1d173328a9da94e754c4563
f504899b1e59b6795621c29a70a7e08065b0ab8c7ad4f4674c40ba73770944f0
6827f870ff902da139243da0f32d0eb0e6eeff21f82083bf7fcbc891c9f86978
77f3ce0e4dda452056795de22267ef877eefe96a150d8162635bc5fae075d176
1fc4e3b58f0aa9a8288cdabcee5c8eaf5ae77acef9eb18c2b93fc88100687ff6
e8fcac6b04db2f1676e4eccbe1b125e0e4a3e2f7093d7c3aeb5605573945c86a
b5e0e26881545670dce8a89cf56efdf5c9e981690c53e8dd69a2ee3b8bda042a
cc135a0141d50fdb6fc395982fd933c85c503fd8acb1e2e4cce30159e5745a2f
3741815a46a98808a86165221f1bb3814637ad069494808f9f1f711bf9c7466f
5dc3e5588b9fc1ee4534f03c7f9ce34addf25e24dd626f965b9a5ab9415dec8b
7e22bc3dd9d065cb20d220fce4187f31323212de203def7b5cc7a4e08c9ce367
6432868471b7fcba5e1473268133a35b3f6a89b1633d7228b181eeda81c8eedb
7887186d300837f93f3a3c17f42ce675c9f6fca3a019b43f531930aaecc08178
8c4c353b208df23dcae57d8143cb71bfbf06c5fc3d7bb0cef7aed669667ea032
40c40baded1196a083a53c9de3d955b6b9e784908d70a3131b479af6b0608153
f5b18a3d3f165f01535c455e9b27ce56376867a7da17d48ec22a3c2b606266a5
291bcdf486b64f24d0e725d63c6ddb0a058030e2b5ab5e6a3ae619efda264466
f83991de19a119c43be5e47bec0241518137ff9898994f27feb1d9fa946ec045
33fcccea4ac038bc3fd1275ead07b09248e438be5d36359d0833e53ddc100cb2
8654e52887cdcaebbf524beed731ffcaa4c6526ae5d8eb65562a09e2d23c09c0
f7fc6085953ccfb047c90b0ec5b2a42c78ee28fd1b2f57bbc1d55d505523b4d3
4174e5622c7f8b366d2e56f6b5457cb040caf1660e9b3980b9950c059d31d9e2
ce39bc79333c9ba0ca8e7a94f0638a90b1bda0f719a3024ebad57b279c6e9ca8
8e74d161753fde94732142b22351996c002e88ef0a1931e4874f529e4af4526c
19cf3a818380c1aa5b559ebb2f93abac03de452b88678ba75586666f4b7ea870
5e0a3a32a63b1ffa9f178dd66c9dd68945cf05be4b18c73fd1f51362a6448131
4526f0fe0819fc86629220b422d020d76b8d580f4c9c0c3b9881db92ae2e68bf
327f5e6dabf44b9c6d74f1685cc4946f6c1fdf53752834d21996f3b95ee879aa
3f10152b76816fa447324713750f75ca0712ca1cd88bdb32ca9017a164315d75
6f80ad2b31e91f09dc211366446840037b3b94af4be7654fe11293c573890eb6
c64eceff6d59313a198bf0c521ee2c2de30621faa6910ef1bbb964ad0c41e4ee
1063f7061a7f2b0a8d0b84f7fd9ae18ea82134854a04ce9eedc3f08bbad4f3cf
0a13db07612e535a957cf82f478f293f1f630fae6b74a477397dbc00284398ac
f82c55615a134ecf85d986b7c107f23c89b52ea946ee7c916cedfd4e7b3032bf
0cf9be9e91eaf64df57e57b5fc5acb3c558e67731373318742d200d0e377fd32
d8a3882a417931e41923ee4051943c9ef378e9ffb06860834ca61bf1de691b31
75ca47022bc39fe5d34ca2ad8dc7eb2ea8cb1bdc87d5da417cb0ee145fb3db0e
889d95adb1418e8c9417cf085c701494479baa7bd9b4fd8ee56555c8e6615867
ba882793b673ac9a487fb46ae1684e144a368d6f9fe2bde2d95cf1ccf45ac04c
0385e5c1273833d4fd7006ea8c28ab2d47fb6b018eea61c44cec3e60facc1f9a
cfffe30c5bb155289ecb25b9baab5c23ccef55b8f13cf22c87c6c853504fb6b3
85ece0429f1412bb95aa05115a0df0638db3eb467e3fd8ced353bea56c179e7e
3588c848935691656a52a3c5c36b0afe862a8b61aa1e17b376eb7b106c71cbcf
8019dcf8981b4736072fdc02790f4a543b6e7b8d2e2df10eea02f46016109650
105a238fb77f195067e7efbbffa2d3d3e019a766c083bede15060378c21f4c6b
ffa2234926897fe49d6198faf82f0241a9d4da1d345be0cfc63e15b055dd8efc
73e5a1936a2cef3da0cc1b3a090d9a9b1d427c16844fc289efea8a2d8ca948b8
59c3bb2b72a98e9110e689214b56995392bf79f4f14ca9d4c2bebd58837b89d7
2ca8e43fab46f1599bd6d79488a57872f4fadb1081d9e8eecfc0e7fc3715a782
2024678c6ab8c19796ce0113e2d65c8377cd4438a15907e7199497e94c014964
9f1317d2f6c14eb4ba77961a259efbcf752b1848caf36efbbe7245170f73bf09
842a353494baf4663f9a96a64f1fdea15103033f731b32e62b446520ddd6675f
8b3f3eacc32ca08e0d1c5b16ba44183c7004e16a60b6366afe6afe0895a4b4dd
ce7548e43f6750351989f9b3b356e780e569ad6296cc1ca63228f6037b2dd920
e7374c83d8b4604bd7e8e9d4d64efd3b030076964801d9f5cd6c1a0b7fbb1f36
27e6b8acf364025eb4e1688884de28de5df5a20026de11e2bdfd7799e75355a3
92a9bf327ce7b83984b575b6fba04f17192de45a473dbdb0425195a70a59bcd4
3f9bcb4e345c3d77cc6f1430bd7af6e52f2647bea193c89d689bd0b6810d7b38
d15cf22bd54bbe3a364b7ff92c2e1e9f5d50caab41b297ad4662b429e30cb85e
8eedec8eebe3764e6b3a1a4209ba4d65149e032502f0d2751bb05e84576d39c4
6d3ad6a88aaa8bc7770e47ab9597c55cb7bddb935135c3b6e8e2453018cca325
a8a5fe0862e9f170ca0704a1c60a464e99d3391e977ba7a1ff3298f9f59e0e75
a258a0cffc7f2e68b3bb3eb86ab5dcda703392f96981f646f8d80cd2ccb7d8df
850b8e5b273212832a8ecc7730d3b50898cffe08788bf4fd8dae7eaa95a5f2e3
5493f60a1f98a69f8e53b47445fdc798261848e288db66abff49488bedff3f90
0c0b02e1811266710e7dc3778c7e7d791313f4e1847cbee01eff40070e0d7ae8
71117112b89c0c14cbeac7cd5ae03970f891e26d130e99b6ab6870cf561c37da
ddf09883be128c8b120130b2f21cc1ef01d805451b7f006875860c7456f099c9
dc06e721ae1421ade56065d6fa1ade700dc922c913de84f5ca1cd5756dbf2d6f
dbab2eb1aac9fcea36e3535ea67dc0208c4b64f06e9faa0bc677ede87ba8d44d
5ed0edbb8f1bb5fb58489a61baed950e4e52776cf2b5fc474b6dd332604a2e63
20084021ae5ca62b21767471a7647d037fc3061b8c44ff64157720ff6f431af2
be0a7b492010c3aa81913cd5762baa39e3d21edff3ee60788b0fb2077991838a
673dcec396f3990d80cfe91954a2cc72e7b5eee37fbbe154eb5f8f2f2c5d9088
62d67c236b6e324d0ff8eb8a0b1fc157d5f78fbf5c12865f12be960feb8ef1b1
9e4abd8eaff7a991fcab958f8c09e5bb9f5e03c719f5f25e528496670fd1d3a9
d9ed79ccf61fe06cde71667d6f52bdf7a8bc5c73a1be610a027b643bbe08bbcd
a838505ca64cd45d549d422b8ed0ee5b713b9838eb4baf301bc19c5a29ba9013
9802591c7b5092c8e43eeda2c7c375b1174434e133d5af1990d1ccf7ba0841a9
ea4ad71b0c0626b5b1bf23cd6fd35909253f8ab545d02f0fd1af379f78c2497d
41c739fe68af1ba4f1d0dc5e8636c723eea2715cf40e89147d03c877be6c53c3
a18d1555b9ef1aa4422831b6b1e23d211f11b6f6a62e55e782aa7ed93fe8cec8
ee3b2fc1fc9733362521c530627db886eb41479cea6da1a17bba3e1efd9f1f5f
5c4805d4bd730a41de953e0a11cdb961ce8eeb8bc43c89ce22966e36273806ab
ffb4958b3d9409fd60d1d08dcfeb0469fd3f97db5288f00a9e5561e70dbb65df
6deaa81bcbc8e46ccb724df1ac5372baef3d23eae94a0192182b3c5c1845513b
1c1532923ceb112c299d65a99a074c753317133d7862ad83e34ed574b8ca7e74
37b3faf68e0fb8be69639997af45b69364f580fe27ca31f9f0800605ad0c4e6a
7a90b674d49af2b8ae5a9317b48f667f5838e39b8908b6bfba4f6d685ca73e02
b526a4a41e8bdac1e1c130ac7100617732f4e99a88997db362bcecb7a87b4707
fce23fc2adcee3f921297263420602fe595574dcbb6ce875f84fba005d673f18
a84e3c204426710b533a09cd25063d5aa703b41b95b7c733340b78149f59182c
7b64bd4cf2f3ecda6660b2b7a943f4de81c37f7e8357499075c9876ed2e40038
959418354919a050549a6947cc2a7317581b087e007acefc21f68454d1c1f13f
b6b581dd370fd06eeb8d35e9a1ae95bfd02bf9622d32c4c2f13c17add690ce54
b6296070ad25c0a497433375358f4feffa3be61b8742fc034952a417fbbde68a
2e969420fd72f7141b32a3fc4ad9f40f6668d38b9de66dcf89d6f5e87c9007d4
ed1ae1d3563f71896dd4b6a4a1caaceaf4eb2f486f02bc008aee36168b13bdc8
f360fe6539f9ca077bb5e58d2361f6b389d86f810c7fb50e24d7fae9d29b876b
c19cdd4f5735ad47b2cb717edff4e194a5c019f17210424f52d2aa33729c941b
ab33a4782543e13003ad66f960d39b07adf94556ff555e08b117952d83288fd7
81d2ce4aabf0f4b2993c5d42587abe00a51d2da71d6318aa8d8da59031d2e03a
31081a89b49ff305a3a1629ed22684675fb4c25d77ead736e0a58b0ed273fabc
5cd506b1da93b1587929dd25d37648350577e35319f244a15a22877eae7cf8cd
cc54e729091c4db8f7b2108e339f1a3d504b653019ee9186a0bfe4cae694ccb3
9cdac76454da6bb23f9100836abe546b1c7894766a0f860039c37ce47f34ae60
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: Utopia-Regular
%!PS-AdobeFont-1.0: Utopia-Regular 001.001
%%CreationDate: Wed Oct 2 19:10:38 1991
%%VMusage: 32987 39879
%% Utopia is a registered trademark of Adobe Systems Incorporated.
11 dict begin
/FontInfo 10 dict dup begin
/version (001.001) readonly def
/Notice (Copyright (c) 1989, 1991 Adobe Systems Incorporated. All Rights Reserved.Utopia is a registered trademark of Adobe Systems Incorporated.) readonly def
/FullName (Utopia Regular) readonly def
/FamilyName (Utopia) readonly def
/Weight (Regular) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
end readonly def
/FontName /Utopia-Regular def
/Encoding StandardEncoding def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/UniqueXX 36552 def
/FontBBox{-158 -250 1158 890}readonly def
currentdict end
currentfile eexec
fa444f2716d92b815f58ca9049c815358e22e32e73a3e6a653c538ee56873363
67713b8cab082730570f5b5efcf34c2cdfb6f8dd2b7905a37c1924a2424c16e8
711db76501f564506b0f45fef10d83c3e3c6df2dc0af7802e7f42c81b4243697
ca09088b868d983e79e4b2c3e17321993cc8837921fd4ff7b92a1294c5ba33e6
8fd40e63df624b51865721e034f71bf57bee0e0c2a9c169c7a626496540d45db
585d2bc93f83e6829eacb859a194d7a57904cfae75e6188c7121003ae40153f0
0fe6fb52f339e72d4aef38469328465a3bf0ca1ef58dfb447612eef4ada248e3
ca525b0884971b85099d73538152affcad51d03eb4060a5c580f453ee78e5c4b
991f77c6e9600c135395d56335a7c3a75c0341979d6b404ee496214a5d20ae06
e17d80d37bd3540b8fe913bae1674afe37d0c41e3d9836a7b5147be32f9ba01a
df1a73b89d30bb595a4b279032e37c8230b6d4933065947c3e9150d2c7c4d439
d60197eb69991ef059edf886ec0bdd28158a71a2df96dcb67fc0bf81c34cf27e
12d6ec950a75993af99fbb040af595134198151e7361672d8538cfadb4716785
dbd48da442ccc911ae9157b14e433559dba1a1c5619e99b57274d6998eeca3a4
7e804d8fe3a664f39f33237831385949a230a21e52a2dda733f2f89b02ef4ce2
5d603c9bd2f8e4c0443070940f0380dd1ac60ff462a9a71965a79d787e0711df
0a69bd86a4846965ac6c77f2e1699c4620c1bd9f5b2263e13a2213631c55f7ab
cf60d2e63a7830d5011d9b9934bcee2103f4a5d56942ce0f590a15dab480e5e5
723afc8e1d8d96f3e0d8629b88ee477ea6cb8121b0adddf20405f8a32756004a
8a59b2cf922a6dc0747bc15e99079aa12ac0d9fabf8b47c5a61ca5268e01317e
1f0a38c468ffea597a392ae3399daf7c03126987750258b5e077d703cdbe05b9
a5fc4d80e8551c2c06a2c579272877fd462fac6569a7a9f964797df79628ba7f
f77447fc2aefb25089ce946e0aa5c5ff21370f0cf84d8e2affa8b30891081b16
6fb86fdfe65e7e02ee551c6b3e2e324cf7e18664883dc538018ec8cadf7093f4
a13708013d6ca2afdf644c0155342917c2725598fcafddaf8807200682fcf04a
4efd5919c21ed2ec2f7951c2db953ed292a54783f5c541bca68d305b05df5c5c
f17b9af31035dd8a77ed8b54d4de7d684f54c58a28f0dc55e7c692cfe444216b
18751c24ec1c8a00a5cbd458a0ad54e7c13f26b4c4257fd992fbd1338845fc69
6b97a2ee6a4d4f03fd387e745eeb8e97eb67e40bacbdf1d6c08e9fa2e317d30a
c4234559096affd5b2e65606ff153901a68f158520c5e983513e902aa42d4b6e
0114b6bafff30aa7310184304ed27739882a95d64754c23fb09cbfc1846fe274
96d36a1028bead0bc7ba99891255e592c1ab0cb6c238f91aabe1e5ac1baa7e76
a578a751717c59d17cbcfaf49ce2f5597e41674334c47fbfa4c6156554b8827e
2228e6946ff9f94a50adf69b90be4df5a68056d3b0e239ac902e2001f0be0da8
d7f3f12d3bf591065afe84b6029522302f9810c465daa62ec2d497595ed8db58
8e3751c232e74debde6d460fd0fbd9833435879f69d4015898501b7010067a52
e1e24ab298b036534919d06c603b1059128cf22bdad9dc07ff32c85a0c956da0
df7680321f848c1a517fb7d4b4493719bce7078cbbf6bab0d830402f6910b607
a47015102804bb625349de6851000a0e04a854d96012a38887ac7d7a088cb2af
87b49754dd4d2c25e9ae751a66e8f21417541ea6139096322b06cfc74ee0bcfb
c6e62969fac269db04366e4f88a7209482f15a81b96a24b6eb95c51d09874754
25825e287c10e1d41c348147a810c1a3f0416b6b0226f6cfbf3bf5a4482b7ae6
1490990b349a4a9f2d1969a07f04eec805f835d273b50bc27af8e12bc6cfdc25
a621e37a89744f378378fa4a78f6b4928d70fdab9eb1537b8bca11020683696b
7ca43225d1887ea6950f296c44b846332260a372ce94c755c2bd66a0c6538022
44b82b25d5fa8c7fc42e2cc34261da7af1d49cdfd345f9ed9d4e0f642ba54d80
5f9928d475fda79ba985b307538337732006bac708f5e4451e9a255e3530dfa4
fef40cab8588aee6f0b71d05a9448fc3f9ceb30c71c4452a5dd93f8928b0c37b
007c88426cd1c58bd738a1e722f395e8ea7aa4c036aa8afaadeb04b813f2dff2
cdf94236a00c5c2e94413b3fec178e2e1836962adffc8aa92d0454540d07d239
fd62d483603790dfb1ac55c4a914fbeec22b9ea4d4f91247ba74b456558097e4
5d1d7bf52903755b4e3a2cb972cf8cf91212a2c53340e160182603418894cf58
eceb21520035819639e9cd061518e019471a4205e104c405cef94f96286a7b6c
2d218862205f72e8f70cffd833b9c6b947e38ec1ecb61c91c3be8d60423d4a48
032e6faf3774ffa949f5dec181fba4bdb61ee45f2d8ee18f2e676bef8a6a80c0
64bc6408c61dece2517baefad05201a56997ca139ff35a5b54341165435ff7eb
a056ab6fa7ae0e987dfbf231e8892a23a3d9e74a92132c3bba5ebd1438c9a93e
b94d553d519a46611fc7e90793e5173156e05351dfe09d7250b1e0f806874803
cf1a9ac65724e0e7d12e122862913e62b78f71326d4b56fa1a20a9c6a574b328
f0651a00f69faae313bed805b6f63cf258ad3d785143d89f94878a2d6e825230
516a223e445c597df52d6dfefafc74cd636efa58972ea6d0e661ed02dccd158d
b450344afec68f350f600f506ad26956f7df78af8ed928dcd8f2f2410802835e
2b7883be4e6bf313d1f4bfdb27007905b90a0b60b15dbf04ab82d006cd69c924
542ce048891e905b032ff6b2bb9d20b44304a89475c5bb87471e16d789f1c3d0
ffe121bfe78b0ff4b6d847018ab9195077791396bc41d0b5653373df4387ab61
bef01e6f5481e8cff22de928d5ca084c037aae138288f9eeb15e1393219e760d
86be365085a90adfaa61db8b250bc413382b55ebfe49d4b7bf5036060e4e702d
54356d3018642f07fdeb36075256af9862d675a7c5659b3c74c73ae9cefb88d6
42479487ef008179cb7c5c1b8f72effcd9ccdafe2060674250e732ab2d1b69ec
79e2f70b6c1fdce2e2cc3dadf1c5ff5cb3037cef7f66bea5f2ec11e303f69264
fc8eb7c9653960bc1bb19b95a650c27b9caf579bbd4a8f9227d0be02812e57f4
f2d842d3d87415db22c12a50707a0ded1ea96fa3ad3ce5478fd058bb7f8c9fdc
96111549ed5c04a0c535f172ba3006896ba91ec68f478df96a7262ccc746441a
68ba9d4e13cd948224493ae66a4ab9af8cce770d52e351a05b60c102058c590e
f0432964454aeda4379c2ca54a7e30e55b2f510b2d0003b19cb90ef12134ab3c
a7f0e20a50baab7acd01e4f40093e432beb7fbd6f44808a941b1cd4ca75d32fe
863c49f7d6ed8af7079d54ff82902dc0b01697a9916ee71056009bde8238629d
4b87e237aebc396e3787605abe53155223dc45c12a5f75e88c5875e99d154922
80cce083e6efbc6b249b9e520ceef7deebf2e07c3e1d5ae486492547b1672022
81874ae4a3f559c037d3f9a8c7a6a3206e9c8751a1dcf309b0adf78bc36aa4cc
5c001c3b85d1dfc9e19c676a95be2d6378963b95e5db773d0df63d5e2bdb9d51
5b6178236c4e909079b846706dc0df0e8d61a485195a0790ecbe12c6530f4589
81f236235c1044eab46692966976466cc12a9033ba970621a8ade750363f0535
e0edb289beeaed747409515c556dc7a05ed0fa664043bf0b5b58d944e4c460d6
7649ffebf9a0155946b74a5fc4f4d2fc2ad85bf06d1120686561946143bb14ff
c4ab983e9fdfdf5b9ffa2f95ff90a90ae0557fcb50aff29b81b08d4167d2dd44
09e948c06c3f98d32adefd86503c019cd5acb8f4baadc18f227c36a6f3ad360a
8cc5deadd6f6b30e14434b3d1fe89619585709f56a546c3d75f76ea34e7b27b7
b3742e4c249f029fe4fd8c34b57917d7925dd2e1aec5a432fd0c75f49f162af2
2c7b9bbc08fd1a495cf0da1170fe1a13ae53d45b712a33704f5ef7e4601fae36
5143c17ca952870dd0f6324aecc2510602c7b47fe68eb2c0aedd3f7c3ce8c0c1
d729c6976b8f1d6de38347aed4cf1e882fb8a3efebee0f2128657afc9afc73a4
7dddaf97f33277712394804bda53872097353b7863287b4c5e83cd1f26bd6df6
17e27acb6a8877985ffc96c123f39812dd781fa3ba8b84baac6ca5663fcffe96
0b3d848286fba750c9192452360027d32b13a9f6e3498864e9096c7bb4abef01
b95696a6e620e8d7ed5a1c5b005e42261c8497eb926d8d72a0ee74f0ede9d7aa
3b8ba50c52065b264a92114d8fa5a3314fa2428e865a28b616b9eda1a0b65241
4e679a194815c5d84bda805e9ff427490ac9daff775a90f5b87853a39ddce1e0
91cdf1d5286a137c7e9bf1581a0ab4210c29d00d2402a65db5599e3a3dcc73f3
882ff66653135130e141ab04f63f6588ab031e361300464aac5dec8ff6c8f554
f1c7630a952c43f35cf31ea86dea10421508aee7ce6b755f41b5f4e5d1066065
4e2b5031ff074251236ab5ca377e7e4872766237ecae77aa06b878e7e94d1ce7
8a704907b9d3b27364fd23922bf6c38cf093ba5a6a674e0ef033dbaccd36a963
6a6fc053205c111ac5dc4877a10ba4f0e396d6251110f64bc78d21e1d65eedfc
f2cb66518f978ecf4b91fb6c300ea2beeb37d7b62974f201ef642bae1428f839
4aae8546a7630d187cac0aa26aeec13abc742aa9618035248c28946c757f0b75
9226e4fb4ed97b1b728304f8447e9eaeda6ab51d618224e6decec2b9a0d17b4d
bb3dd0758af8f9d59ed9c47204dc623d5faa282a3735baaee37dde920ffb2d39
2a35a505590a86eb2a985d061e02d3d4f36feb6b7eaf0860fef22d8f8657db55
92298efbdbe0a53fcc0768818f1da8cb741a39e608c31c68a7ae97406451c4a1
2115f9fda77b2e9c21bf2f8b949e675394278f8caf07c4194e6139766ffaf114
4a5f0818149eb474e610596ed8f713ee37dfde0d7aed625f1aec695dab2fcb2e
b93adbf741af0e4885582f58c06b89b6339342d60f86cc7c427fa7c9ee2b1216
a42a07be92d69689e8dd70da1ba0001fcecc80c3a2ce1ec02112e934efff30b1
925f4e8b1238f2197557eb676df87a91fc7b885de36490475371fcb7fcec35b0
1681e268e7e8ac100b5ef88ca93c91fa011fdb30af5f2ec8574c81f16dd69bc8
f62b3d6073b5888bab10d114ed98deb64a8646119e6f57e828892183abbaec08
20bfcf22554631ddd94ddc58ac4bd250bd91e858efd60fec0e4cde07d9250a36
034c1801c54edc9389027fe859a73b1dab959a7da810c1a3f0416b6a56148e83
79b0d7153b3029c97d972c0178a40bf29d5df2cda0365407b5b29dbb0ce2982c
4c384285d73fda5d65feb244eb48845ed9ec42bbe5397a1df052f7c02afbf50c
aeac263283f147b200fdc050b39e068eb4b943092762c586dfa6a9cd79aad4ce
2a3104677cf69565dcb79aacb4a37316908535acd72fa0bc8c1042520a15a7c8
19cc4ce79578bd03cc3a82760565de42903f13b86f58c7a1dd73839ef0dc3a6b
d29ac57c821341328c5a0cf0b1ea3b8da7ce50c06922defb915f49c404636f1e
ae4a5e9de17f481df5b84f6d327fbdde4306b0fe55fa7929f82ef5402cce86e6
8955706275f90daf7efdc635611ace79a37fe59e6d97a192fa0bb90431778179
833e216f9969af24e859ffcb5a2397e831a76f106e667f9de74d362a65b2a69d
bb09f1ace47c98ed70a2b8c77645e8db050c1e41828510372285617fd4f24c3a
9e139c85f818b69e2ded1e19ffd2bd2850bd95acc646a3cdf91b759abc4576f1
bbccdffc6ef57a682a4a80d6e22cbf870dbcaaf949cf89a708bae53aed79601b
33fb21f935deab0d0654178bd0df716f752f8e6e70dec035626dcf1e7da2fc7c
61151674d56192ec6197e2999113d56f9b10ea2eedd17c22bc1d4e2767e531ac
4d892c2e7f0e1e8d467abd278bbde0557c21e1d887b5497883e42ffe890e82b0
e1b38172f65d4c28558ce104e53fa8c85c833bb33267804c0e186f09e4b66258
7dba6d6912fcce2ac70f38c6c1efb13e250423bf86356a0e97da2c4ff7c22748
aa9b0193a82c07f2341a8ea7b4e2819c2793d69c1dedf9f56e03bde15102c01a
ed06b759b8510a5d92d241dd32cdec4781676e2262c7063294fc1807bc6d03d1
ebc7d020ba1f468a1bd97ccbadc093c23b09902b1effe308e0c0f6054be5562d
ee41d2bc929ab7c7cd9922e879b7fcd9f4d1ddc734425358b49a79976011d798
43e6562c5d5b661e2233630e142f6f724b1c64af42c3e400f9605922632b0ce1
3291132aed69a70773f9e1357d423e689f734a80bbf4ac67fed36622c820fef3
deec117b7b970fa5599b2d527254c475b31a302fcca78a4c2061c6cb97dbbb16
e9aa65fe9e381238e32fa6c1daa820a62ceb197f955999ca752ce19f4527e25d
57bdb877fb2c971390ad91d183832fe3932d9acb6c8c652d091e3fa460dfbe66
e1d8bd99073095142b7943831474a00bf441b7982978df73bd8054201f4700e0
fcf7ff5e33bc0597ad4e5187dea35b8c7a9953c7737975d9dbbbb8441ca134a7
9fec90830d716b5ecbb6b5e575e26f8057f5eb96a280f513f5b649608fc16cc9
294fe39ed4c0a0a714d679a2d66ce9fdec1a50a9327ad81f8450f0e29a5c5c02
77a9ff2afb37f41f563a7ce1191eabbc368e553071c669ccc15da416a319d6cf
54c7c4df9bc118d8ac86caecb9d700510dbc26aa5da97b5979fe2b43d63ae912
e31ab343183fcb3a1a12ae1131dc149e1d0c78e742872e6aa786fcea962147bb
5230fb4918ae8c7ce597c99a8ce40d6449be11c7302cf23f629b06ee09153891
d310b8a274fe595bd8018d6db0608c4beb37229d5eda3a68683d07e37fe59f29
a069611391e66dc83e7e001107e8ee106734cda6308d30c4a5c7614df95308af
2fdbfad9fd8e22c8095bdaedbdd20d94f361226cc3386c14f8306d614cf32d21
58e8eec2dc56392563e2b3ece37f2882bdbca5c6685550aa57acef93539dbc9f
81c9678f989ddd93cf463bf5858f211537605f3eb0e93f2e56e5d5a35d4fe2af
241a0c911f1eee66b80c5d59f7a4ba2b8cd0d010bf9a34337153a0b16d1f3bd3
98581e7137627406ea5dd418b022360d42b06f619964f34849b4fb2f4b26d0f5
8617a99ca127fa128de582928607f130f46c97bdc714c4b5b40e73f25773b3cb
69e6de547cc84abdd11ce2641c8300c59703b61a1b1fa2a5fef98ece945e82a7
7d62bf6607839b5fc8960e17538ee23296f33c16ccaec3541646720d3a7e6512
37daa82dd9726a55208f3a4ee0e45d2d485b68bb94f58f425ab46052350ed1e8
733977a9d6463fd600ebc5cde12b6e4d5bee87c5e06d11b97afe463f1bbeda9b
6528ed37f7d1a289c0e58c2930a37b543d6d43ac0062bd36be9be732ffc79567
892ac18500c646ac226cc1bd60473ddf23a85f9c5a61047bd7d4844e9e79a0a2
2395eddd44abfce0aa9c4db2e9523460f1177a51d27a32b258ab1d0692a10c7d
83ec55562fbdbc329fd8c2ed24fc2b04ec62a3a988de00fd3245acc64c445522
ce44153045e22ab2b0107b62af1092833a700ad49dc8482cdc78314f142a4e63
8a753d51a36cbeaaf948e73d1b1b2fdb9a69511eebd13b8198fcf134c4ed5f88
36f5272211e69def427e4bc17544f1e52173736f9cadc75b53a47e998844b763
be6bb437dd1cf783ceb09002edc17de7f79e6c065a668b5db74757c1b10c4cd3
88cf5747e433b6e2f5077fb8dca952c52e555ee03231a1518f81015e3c1453fe
9c8ad04eae447df302fe3eb1e4187b9b96ed20494a5a5637f43b5ab030e8711e
22e2bacede72e280d70e3eaa0edeab0a5ee6fb4e979ec671e16a2936dcaba135
775c31dea0ca1f32694e62b5ede61bf202ef051e0f3ebc2f12d3edd379f495b0
b12eb017b85a687429f5e7811696fb9c91f1da69bdb690f3b88b8c3e1dd8c701
cdbeeb54702bce506f582f60f9afd75442453b01516347af59b7d391c14202c3
81d88948a098b9228673b8ad30f7d17265ee85a2d8eec6e1fb96ded64fd4f4a7
8592aefbf4ba6b041f01f30ab7207f4eba4206bb7a97836ee2a0e39fd8a6b6a8
ade01876a5d0afabc57500b6ea8613007eb5dc8f7dc87cd856cca855abe47491
4442f7f3cc198d58e7cd13700fe8b5b4c97cb8f610dd5f820423ddd67e0a154f
2b400ca3c99a0b753cbef2fde4c6fc8f52df8603bc6c699827074692c6bf335c
8c27f003c5ccf381ca26a4eebffc217bc88cfbd6825e2dc653cccb108b9956d4
afc53080c6eceb0ef808f09d78f8c8ea335607ca4d2cbedfd959742b94bce5b0
56e38d4530796b19286402691b07385d3d28cd81b67fd3cca3b26d400f31ea08
945b4d35a76a0fb48a120173dec8dd0188c87e4022b8a10e87e781507c9b4048
f0a5a5d634552361bd5f0dbf2a9ececa52ac90fb7e96a94d166013c418263a3b
2bb84bf06e801b9c3fcd5a3af38debdc5b9f3603e6ea0b5e5db93cd04df7b447
5f2681475b2f60b3c18bf16662e8bd9458dc172432d33512e426b3923b9032c5
9c45aba29461cb3372b61e4c17146663c5cbd8447e6591c2af4d033008bb5fe7
3702a49c29edbdd2c8142eaa54c63e5cea325204d7eeb82bb9b377639febecb4
df295c3f924fa61d8948553d570313e5a12d9f6ee5af0aabc17d2a067d837df9
43ed58322625d02d782cb3897866fac50c4bf3f63e76be9897bb7e675581dcbd
f8ac57c9db4b3594d1f417b5cdde3d3472e8e096378a5b975ca6d2de2b21eebf
4e551e58b2b8fe3dd1d4aca857388f302622c8bd7487eb1ffa76c4350f086ec5
7cf20f36a03c33ec62203793429418cb6098b0bd07c1abb50bc1ea4b613b6b24
4488634dc81a77c561bbda87d69002af0394a6aad837958806827c9d18468317
e80e007b1533a744ad69330c24a4e16599cff2bbfeddc4ec4ef722d9d1982edf
94addee5afa379d9cef41a72021b0588b5762b0f572b8fd16c690290c87c049d
c042e28a6dfc1587d4a5898c7399f062090afdb218076385f8f168352a78d6f5
af824b22492eab5ee59f8a4dd6930916ce4c0dbad4216362de51b5f73cb2de48
c1b493cc9486881feda8421325124bec4e91b645473a7f50633bda3aadf7bcb3
0c27750657553b950f4a826bdf133887cce0f7b52c6afce2080ffb81f9ca41ba
f982ade0c25cd9c71f310e5d77e979ad36e9f9a5adcbd3f5f529e060e1078103
ceb55e593b575e0106b8ddc45b43fd96e930266427264b8eff06d40aa15853fa
2ac3b44835f7564419f3ccc1e50ff878287b9a8a4e0b58cd5aafd42e2ab4da82
7ce37a581186ca91a8be74a9320b4e5123ff23428d1c87ba426a41043a344e3d
c9f749bd8d126cd127d1b7875e8f942d64b46720bb5be24f1519c1ed2fd41da4
0b24a43b4ed843860bb93bbed1437555dc6bef6496304941c96a9f1b10be8f26
2043bef58c2e5031ee057c744c8693e8e6723619bcba77a192fd2adec865f111
7020a78448071057f202099a7e461befd885319fc0be55b74895c88b774bf75b
2ece2fcbdaa8c3b2735699142b8605b450f0293cfb1e8e924f94d9f38ee514ef
935cf4b5842ca630f7ed0a7fde2f6ecd56c04616cfd4ad6d95b4c56c828f8ec0
0e6adb4d2c311e89df815408f2651c4a984477dcfcf97754d643a8eb4d872379
7293a36fc811c4cbbdeb54932fb20b0ddb3e1f910e63cf66dd8717d02a15ff37
72384468100a02d44eb0c65e76d4a7ab30a32347581b96c471d6c9814dd93783
0811e0337bff3e9d84a56afa0948db48efe51c168a68bd5f274644b0d4a2acb4
9893930ed3f6b80b53657b3fb8490fa5ae0afe0b2bfe83c63092b883926e0d23
ae22d0b5766e9c87caf1f0d6676dcb87a4e3ed3cf7c0a8044e223838dd78ab4e
22e831feaee23f5d699b3e23dfd310dfdf32f21da3f6fff8d51cc6cb97a7cb11
d3e4022bfc7ae9dba76344f6928121521e1b72222b46b3e57b292edc9c69717c
4190822857cd2aa3c50df8d0c2459d0335c3c062e709181ac155b0723ae0e1c2
416876f3534d7b96a73ed79815948d8bb40b4cf93ee129f34a59ab27a7259564
b57dd16a20dac12040cf77a52afd64e263e96a16488f38de5d6994b341d04acc
f1d8af6425935a78254bf1fdcb12783bf1258d06ccea3c5555270345b30899f8
9355f8276c6ef3517b7ae9927c936df51c718e54d02cc613acc76dd3134a8039
3451e346b9a9716c55e097163b4330691a9ef069ab9320010a1363f7243a56fd
19586f20612827ca2076b6996972193472f91cebfcf19c8d55b2aa4389055893
d0da66be3cdf5fda779b943a11f1c8fffa3e7ccfe147fd7299be184f6c7d42c6
caab066c4307d9797a26f56dfe2a200c8864754047266be234caea99c9c82987
ddad25029141d1b5af12271e6e9e654def008ee9121b85d33f465f3fd8fb4180
0d113f75c68c62ec501537f65f5caf4ee1670a21b530c32d33b0ed705f8f8589
fec2e2115789dead2abc39c48357bce33c2e8db6785ea7b378e20d4d97e441e7
98379b1179b667dc68073534566e472ef5e07482af71a35d6008a849be196794
0430c8311821507a775713e3c9a977d8ccb5122478f15144aea597afac76ea63
1804afe5abe4358b99b7c091c186ac5a38a2c05df5132858783b12a5488ef16d
e0e412ba9aeb0cdd2511813e22010e3ea707f52dbeae6b0e8522659806b0253c
c0642978219337fbb85995798861ffb6ceeea7043fbda2515322b9877b5ed0e9
b4c1f6d8ca8665eadc1bad926ae151c00c3be73d8759fbd17e0ec0388d8f4c31
7c0789d6ebf00603baf15960b6d21f96641a874ea7758550d5ac6b7c1e68814c
f9cdfe7a122fc4f4008d1a889b1f2d3ab9d88f35dc75f1eb5509b99a419cde09
e48a14b5277cced6afa6d1b8eaccaf543a2fd8d184f9e16d7c48fa16c7f29aa5
2e00a9c34e3075cf3533530d5dd74be538dbf49de566d8ef994e007e9c1b8c40
290e0e0a974fb9be42f7dc3a8bb639d84465212a43d011376396d39c33cb52f8
9b645115671c788ecffa10bc5c618b3d03f556458248225c621ff480b55d5916
8d713b09ee34292a4b30d001b0b5f5facc84b8812766efe4cd6e93b5650fea4f
dad41f51f9d5971bcac4c1b90352dd6ed44c9ec93bce169743daae56d8dd8b23
076df26b474d78ce4c933a9cdc4d474a841b53f918b7318de140add4ac25aee0
ed44533fa73ddb506997f5da7ac26a51daf6aa288a185a5f73473c070d85154a
06b4267e01dae83fe40a7fa17436961dd133e27db19099bd1661517c1752f8b3
bb1f72f6bf246266ed727383293cadbdd734630c68a9a348ceba2b678547c268
3b35876fdf74bc9e0e9addbe1208730f8924d6dc551240d4890f21c69a6f9d01
370b288a2a4224bbbcddb64b8fa29db917f24c496d6c5872cc31da6b7a901d5d
0a1664e0b2a9911d5bd5a1edd6619fb6d115f8b1927f966072254b37ec4fad04
5ab9fdd402ee446ae8bb723f5ee90d82d3b61c8a591cb095e9daf2d8e8d9d33d
864601e75abe6cc2bff272e23386c86ab4212d40c0b45c53623ad386ee0b135c
dc98664e12c1597be5c2025317d96553fc5a150b6a6c7680ff761b86e528a7d5
ece1c8780caa9b7803317a12c1ff7e10c012c2705732de118260097810c68ab9
d6089e3f4eb47f158e758323222a8fa2de73fe85d9d207b8c40cea1af8bcf750
489145a45a04d7a42398cd1c7d2f81249a3bd5543d4f6ec5a206561750bf41fe
d3e9927f3ec60a8589c0a1b581444bdea2915a3b3f4776a8b9124ec29deee503
7a2d3e0834b3e04009389e562cdb4b539a4b3276f9e4247f8162251cb4ba8336
e2cbf3f0b88a974f640dd9b8860c1ebf1460505fdd67786e8acc55a27602cf72
f1d61144142aa4b1af22ad115c440e0297be01082df13ed3a2759f003ab79348
711c9178ecf41d964bb2c9372fd051f8f891f3f31627bf65f727e8a093fbb3d5
d5eca4512943f993ab96aab0212d066cbd614d0903165c9881c79a7ef55d9cb7
ea6d8e4573321ed43dfa11066c0d1dc8d80db100c148f5cc8e74655e26b7e435
3f08490cb2e980791b5e7dd628089102faedb46d8d565d1ac6f3a9fc4ce0955a
64e369cc12166e7488ffb9f285665d44aeab6b810c32de9238a37eab2ae075b7
3c16485dda3548dde006563fa6df37c97467a255c5e35d1a32586358b766af8e
bf27d3f3ef9e21be205119cdfea2aa583de0c55643bbc5e7b164c0978bf39ff2
0008700b0c5a7eed535205a93840635034e507a63c3d872b2e290ea5cdfe6da1
ac7536de7ae16a03f8f107e0e975f28e42be4c9f80e75fb54fa58f16e1f36e48
6a5df99f261032c796c1721078f7b0556f34347ade6b42fdd70dde7d6d8ac1f3
a9cbb551ace9feba43f382920d594d4c889eab191f50ff005f4eafd2504a8eb8
8c6b253ac4e6b44dc52dc6ed9429655a3df53ca854350ce3a8c84d1cbad0ac89
12f1ca6628f26908a433daa3488b3c7dd31e0661786196e7433aaa6a6b0228e3
e1f3092f2834488598fd2e10b4d213badfee583e93affbae9bc9c42ab08dc7d0
50ed98fcc49000507f17ce2b31675d02a7a23976e563c143c4affc5d8141197f
415adc90afd00a106e2742b6dca20792f08cb1c0e89dfca685afad76901366e4
0440ee5a5981dd92da06127329af61ba97d4ef67796663f4211315f71a6fc185
e5b8df7500e3a6980354f765186d38463a1ef593879c1e616350e69a2ca546f2
7644e8d9a9f8fb452a72e36ba0cc9e8d0498ebbbc5075c614c4005b6b25bc63f
63de93f9774c6565792bce10035948657c63a6adf24a23ede09845bc341c8ed0
f27253d9199a4a59346d95adef19632472980ed67b229ed373952c1c8705ff39
4df29d3dc0b708d1dc9c37704fa0a6aa5001c996cbf2ff3ba44c027baddc2927
25e677d85f7fbec6bfa0e1b2efeeceabac368d64b4dabb2e37dc1850f4488f3d
df6186b656460858eceecb97002e51f8a4015ba5a816cf2f3be562da5e6c13d8
6aef5d6b50aac85cf1da62f1efcbf8af5c61018fafd02cb8a8b65b4d034539cb
4eb52369cbe406c57a4333605be7fdbb2cd8db58331c2c94baf8df23ea865668
f0d8e0490dc64ac089cfac9eaa9ca4484ae3dbcb35704589e8fba01d5905fa7e
d9a3cec51a0ee24ec3ed5336ede2dcd19fa59d1471b66e61a35a66606f8971c0
76e3526034125d1077239b7207ba6777376d2e7a09cb1d0d17982dd5f069ce5d
f91e630bd13199bdc1078cfb6f79a2422c803db40f02fa753895b70be689e16d
5a07cc8be183a9f9d2ba7c51c48d7a8fc5c6046ed0db73c10d2c7f8f770e4871
dc04d8d4794b95112adfc20e6c6da75c54b19b65aa745a4e9863c10f6c777056
7ab66d808a0f14cf33c21313f3fd9251e867b0a1c1ca7086be03d3020eb99a8f
e10eb5bba9c73818ca1b42edd7283adf513cac0536209afa4e4c2b83a5e76483
c955cec345ea656b704b0f37bd47722334bc58b9aad055797563d9dc2fe8347d
9454e494578d6e3f2cda516da62f8499e49c6edc71720bf7a062de5a9ee51f54
e24e49f95b6067c0e72d214a0f3272fb51966dab68aba079044ffaab480596cd
d0a3a4b751722838e71bbd5752bf66d18885c8b4a0d33f16c9ac451c8581efdf
8704836d35c16f59f0fc66d0b7f788609648087983c8ce4d0ee3b3a5b5cf4cc7
49f092717203acf9057c1bbedb320611f0106e3d9a66f1899ed3cf3a78f1295b
cceebd65abcb01581ddf21d56de6ec858c8c7c0900cdf5d56dd291be6f75a66e
d40df5686c5b8c0c4f3c74aa2dc986080fb61b7c12ef74de763cfa450311d22f
5287e08a86913f85f724205382a32201006acecd8bccba250b0d85c6a6255baa
f455ad43d182648963f55f05095dd8d60d6e1e6749bafc0409f8f696c774f164
74aaa7d0e610802a8116e5e30d69a328545313d33f56830bcea456a283433995
a09c6ba637aa9d919d3eeb61c71df98f9dd27affb02896aa77c04034e3b45958
351d8b9d66268256ea916ebb8ebc75a777fba874901842118392b144cfe3cde7
2cfa3f1c26e79df8ec54d1fbe86e4e2589db74456f47c65a53ca445aae190c98
1aa04f5af128205cf0a3d36aa5809399f6254cb30c8c8a63e1c8372e53902285
ba3ea277701401fb4901a628f40f49a619e475ee47d8bcdb3cb316a16b3cae40
274143afddc14022d243568976259dbafe447ee720fe189ba92ab6afa873836e
fce953a954aacccfbf4356f47de17298a36e78c0a0ec6fa1e36f941d8ef8e8b6
72d88bb67409709168368444974a094ef9d52711e5a5da887321b5d02ba24281
55eb71380d6e1f8c8ff49e28721e9e0cfef335e028f5a9590547bc3b636104ef
1011f3f862b93ca31e0dbe8d885c8d581c95d19cf8e58e2c09305486e75c6ac1
04bf82bcb81a0d6a19b23e00ecd1e5336cc746c412932764132b46f2fffac65d
c314cee5bfb839350be64d419494a493e37a25139d4858460fa40fddae6d2060
d47f1fa9c773e2351cc7ec83ade561711453f2729341ece5047992aac1c75469
f68926997fedafa34107cecb4eb69aed344133c81a61becd7fd502542f55ebbc
a40b75e552820706d1e1d2e8d2d6c6537af2f914da2057f6a3aedba377f920fd
d6784f6eaa12a6d3b52811d2a45b056d3a243eeace253218b9cc362bdc859430
db5f87b87973f8c8500516a58af84a6b41703e0bbdd4b8dcb6873be3d47b8373
f7fefeb05f17cae5cee1d24bce59cdf99f988444560e96af57709680c520d918
fde07e9ab904d22d2b9fb0182f67b91008412ea0c1c7aa744dd276b25e377bac
2564987b1e315cd9873063860e3a27d6f2adaa4d2141ea13a78918fb60d62fe6
c052a08e0fbe2b4dbdc5492a24a9ac515f4ffce11dc890e50ef9479815be4d0a
c848a39e3d1367f76192af8bb16b20207637b2c7dd6ce6c1e2a8f054748dc6a7
43bbcd0b7fde2155cbb01a6be98bdb7808d1380931f5b85bfdfdd86e63870c1e
29b5c255643b12bb9e0172268059476c9c5b72dcad46ed7742782d33d2ce23b8
315f60807743d411ec5e6c5a12ded765a05d7846f4e75b980b67329741a53bb7
e6226908d0af8699ae661bc0ad7b00a7460a0727e4db0531e96921755af8f1bb
0519705a506e52ae589cbd897d7334240a691d181ef73fd991ad776784b30744
67a6ae2d930a6e72160478af6336115ffee6d925628770b0c38d5d0c5bebdd2b
af54e85a5072e6abf76ca9403b2c0beeb9b0753b85af0544d3d2139020224c67
ada089bde765bd3514d9d10a6ad9b5473342f560b2a5a182686be07e18a22ff5
3eb67ca4ca678b8135841a30034c150657ddf514b40c748f6dd27386fbab7883
1c48bb9135d941c82fb233657584c93f383588adbd1eb39e93eaba0ca99687b9
bf5ad0db99854f1d87722dadcc77a87e88abdde3c481fd3fe16ef612ff82caae
65632305bda50324413e689d106ce0b66d5cea56216516a5c91fcbd534094c80
c55cc6b5b4c7382b826620892295631470c7457fe0eed2f67afbf504dfa8f367
48782e1cbf4da8b48e66c44a9cd4ed1e5ad4565ad0b2c30cef1d81ac76a7a399
d063f35751eb0253b29267344887e5edce95b7b2ecc840fa38457aa48ccb4696
186af462d760b5f1e8be51dae6681016676dcece8b10523016df437373151bd3
dd201115675ba12418a0a66fb853f3da1c479c94e5dae185869fe35a0d635477
2fb6c1698b5a32bc569b9307e0365dc34c8c13b97d3a2427c67c8c991968a199
9d8a8d0745a1f1aaf0d07e9ac696340bce310f1e6f0bd3e68ec2924255133f25
8edfc64bc51db4fbb77bed569b8cae38ee0c555eb443f9dfb62c0095b99ff77a
9d4d48eba5e8d9567c5eb6bd54138d899c0968c87fa3041be201fd420754f9d1
82446c01967631837d7dbc634ff0bf6eb5209845710ce8fab97dd7ca91cfa807
48fc73ab0d0712e053f12a0098712792e2079e0c7b9ed954bd29bb518fd1d068
294a1bb7afac4c3c2a1d8eac353802c853d12ef9b1a39ef05c44e37eab259101
d2a469c089935cf4a09a4e47796441ba1643281b2787f30b1550717e2656920a
3cbaf66e1c4ccc5e5ea58b95e7a94b36e61e661c1bfbf74341541c2866b69bcd
3d13e358fee22398dd07de2adc57330ef749c8473a9409cb4beb8413641ca4cb
87cb8f272839ab67cd11341ab789b19302bdd0a36c2d8f4b3a28c4a10ef3c097
b5bfc7438a5dfa6d47d9d8bbb6a1911a0afa0d233897d58bfc0bd9b04b9790c0
631ad27d2bcba6ca60900788c022c8f5bca31d97b6fdfebd7386d88569d6b1dd
3bbcd0c28c89184a0fec32f5265162886eeeebf58b4968e0282be2c11455ee85
99f07a46c2146a00d75f1524e9624fba2ce571839d4499df65da3ddf140511c2
cf0079570853a0a636f74df191dae2392113c84b7be1fd11fdcb121016c111e4
2b9d2adffb9ac5a060e697fd0ba30599134abf99c1da3e253c417e711ee66982
f853e199f997911370ca81f0a175bfefac2f87d6d2f7cf664446a430107a563b
5c489cb9bdd0428b3a7229b17cae0ded29b39b52e12097bb602ed0ba7dba0da9
ce968329150e0a75a20d1ea8e3ee8864d55479f40c388bff389978dd7550a110
e9d2cd5a173f057cbf8666df9dcec7614e353df654eb5e6c8cab519bc3656e95
09cf837cbee69c9a51521aeaffc37243c445c980694253511c99e1296eff45ad
c24b37b570309be42a76f11617d33ce1c813d2399fe83246b8ca7933aff6dd7b
95fff731902337dffd4e82d704137a477ed2bf767119e6769c743c6ef3974bcd
a074fcd2d408527757f153d87002fa5beef274477359514f3db77dda8d1653e4
c5ff3c4238733644bfd9f5e6854712f775d10a69042e2c7beec2cb4be3a8d421
2a2d063b90a39d82daad6fd10721a52d8d6a3f428faae04fc5e0bc35456db070
7fead7ecefaf1645a9555db7723a47a63d10298d85532900161fbd310fa02cc8
a45395080dbe76176cd024f9c0248a5902739d8577d9c7d8cb33c87bb3e6aad4
fb082b011d8eed88e74f0ae3003616c22b075bd45c90ca361b65750c81259d93
7617f957fcfaf173bd1f3a51375b1f26f30d7e999edb2c0bf60759d2e7ed226d
901198e225bacee4cbdb3ba64ffc2a17572b0370a05826281fede46ab12303fc
bb1720013270a702bbdc764db69a5019331fcd6ad8fa0c768e4161aab602219b
ca0239f56bc1b2357422d4bad14046bb3735e0037295e58f4fd5a5815fc322a5
2680e98bc05ca99061ef88f997f0716c219424f3dbad7d9741533d88166cc457
c9098afd562ce852010ad52f88052f8ba751c2dc0acd2e120451e9c3a04396d1
23913621e353502de2d50125534cfd83011cf8601419c2b017f9b573bc405013
aa1a80fca49c9f91e47b31b9aff9de00268c0f8dcdfe63accfa27d1f91bd18a0
3fc7dcba657437e7d7084e2cbb2a33db1272b719c205e3e12c8e0026de96837b
30b7e1b399c129496d164b14212114e2632917c00c5cbf248bc4d6ec631effb5
daba8dcf46bb57ad95131c8e9350d3c13965faf9d92413e573867ddea0040bd7
ed782d0a71afc3ff7d1030600e1649cacc54c22a4d0996a38e0a5f9cd231e10a
2506358ec06199dcfb623057ada1c8e239e64d544d1727d78476a345266037aa
7fbd6144bf1d650c45603f798703cb6d3c4b1acb43d07b5e60cabb3f2e21ef5b
3ab88aeef2a6a0b0d6664104694b4524f35f62c841f24e3e23d0ef2ac91675ff
03a9f68915f3d57682b0ae4afcb76ae5068e728f45b9b827a9c0808913a9c3b2
483b874aa239c676a6607b77203e103813854f05ee8b718fab61951caff5c8ca
b910ce04780014ebaccce0e6b81f85d0adb77b137c176b472e8b9bc558d94460
692c67666c2bca55bf9d580bcd853c6ab8765d63587a10d0a1e2a6faa7098ec1
800927ab3caee49419be91813a53b93dc48f1bc701779e5e55ec958cdc39f50a
50650df9cc05a110bd5b797a94bf95257064fd9bb64bc4b4cdbaff120b5f7bfa
72e85e6058e93bd4a3ca80c7bea6d1e1370db49acc17cc37c30ba60d763a4241
3f0684f8f9618d8bb5d1fa3547ae78ed5b9476205c3fc23f00fb0cad825d0bf9
dfab3d77cda23fb1d19222df57ecc1d49ff08d0424e15eb1dc8ac66fe0f0966f
6d8ca1518c200655cf46a4bd0fa9bb1e58e74c1bac13ff3f651fb98f31bf362c
7bf27515f2a05921eb858296e222b2381c8f9c56f151c9b43c08514253f457fc
903ec28c906f7a3386ba2a8efddc8359cbfbb79eac5c5bec7a3301132d524fa2
ffe07797cd91a02568f34cabd29b16bb22d8d19997e60f79f18397db8f043c2c
e697e71d08a7f7b072867e5149565e1795b96d879422ed208bbf5f635caca60c
d8296955093ec44014bdc9ac1a7330e26ded532b2b1e65a8aa554e504d8ff241
1331614b1cc700c218c150e0388180971f0b3d37c92237db3950589916561238
e0d38976fef6c307d0894cc106549113fb5a0173d9e6bf80b3b4b8f315428092
765dcb1d012a620b3adb6ff16efdfb65b5df5c4afd0d08df59701be0dd28c7fb
8387a0c8ff348fed30ef38599db2f76927a84567a4046a6a1269304afecc33ac
d6acb73fdfd7ed37c4521330d14e1b049136fde5a06500269ec718b6fdefa687
4d35be0fb138061da23ee25aa52525a9d261ae7f9c184d4a16a26c13d6172d06
66bf145c59d3312944b5e6ab677c2cb5f3b5eab36bf0f1cd0f9597999f238821
35f52e5bb4efa728cc41868ecdded8033ba71482e35b9ea86dff4636dfc77188
22185eca160bea4987ef6ed065abb88c6787388269f6d667b27eb27bfcf3f2d1
6deedf0035ec8d9f8f3493b1154f468fd4eedc6bf96bd518d7628f831d7d9f82
bf129fc71d66e0648a54454c95a209df63087dba6c691263bb9c9eb45a99677c
43410d7c467f14cbb5356365aafbac3b7bdc2c65d2e4255458c8058548f63f5a
da963fb6a8d901e37b2d0b231d628a92f732a5e7f96d970b91583fb06da779b8
7b56ba3bff3ec07737c8c9e79bfa88426e0eefbf4f103ce25817ee6995ce2074
278c79e4d04c07d1def468a452db4009a593db2e60c22e8dced1d41086e05dcb
bf7998bb15ce9e8f9326f9b42a3535ed45b4da628539f77fd9e93374b4daea56
2569dd7d452d1d8c69bbb35fd9364a1cbaf206b85c6c89521456f2c4d4dfd976
7a4ede808dbfc79aab020412043d0aeaa1a99e185c3c0ab15f8fb4dc908c157c
05178bf02a6620f12f7779bd56c8062998a2bad2aad19166c7e41429f62c96fb
ac16a2c691023d6d37c842bd75b8c94a12046ca696ee0af3af0a1060c8efa92d
16cc6da075fda3eeeabbcdb520630c762f4c3d861f3035756a5487b0fb453b68
0636ae38236f8fc6b7bfc6a67eaef44e2485950d337672df16cc87bfd8c3c12d
2d22efa9368bb61dd92e20414c4a70a3ff6b566a156510fe4da176ff2168bdbf
ae4a5991615390ef8b332843d80cd1ae90e1ff4416f4ef123126f66837876fc1
877cd136a2075721f8237bef96fb55cd568fa3d5a1ee2743af62c18168b34dc2
e6f2fc62e32806d6fc3f44f1d598c4a3a188656d64849bb65581e35446308953
57d16b8945c373a3cc69f2f23ed240c70d7233e4760435ebd30d3c1ff2e0d59a
1c3d9b18541335e581e99de94c5516d5dbf5cac9c1cfc1d7be12c094a28ecdf5
0441dbc04ebde6853627be71424ac5cad6dc8d7c17937d5db1ef765842ebb6a0
d86252c502ff3004ad4f3d951596360b48dc04c2eac49804dde0b34639e1c6b1
e7bf2446a033aa360dfcc8d6cbe2d724b89a7f4f7bac0d2e9ed54de93d007cca
2c4c6088fc590e27289ffc91577d7b6e05870d0594c04bfd606ca0341c1d5abc
775f9e9c68f55b608279cc78050d0dd9cb5f27db052405b7bf244cefa62155c9
46bf1e29509ea598ce2b1dcfa4fd13da7e1741bce39fa7b51215ae6d75fb21c9
e42371b072fdfbadcada12259e6326d80748ab8927e5f9987fa9f75fb7ea5a0b
b75b3b064cf215e8f46679081c4a81c2afac835a100cc70f75f5014073c3edff
9300dbaf8b2f71f94752f725603158f968d91b2937c8fdf2acbc09ddfa312a24
ee4e1d99e2fb6dff5f62ac2dc5236adcc17d532db2aa15b55956b5bc71125c82
b69e1f4115780be726ab73c6f6ee3bbfb37162c77a1f561037de43d9b6384f49
091af788380ecfe661d0ce4606582c572dc81be51bfa1faf82d42c1a794e28ed
12930c3a9b0fd1c0baa6357afb0b09826863ef851f8e6d3619db50501eadcf39
f4bf53125e4b482cac311de607dd888eaef9b911450db48712903ee29c0d0f68
f85f47bb1a0dd38ccaffd2bb636187cb2732ef9e8def96caa01ba9aa727b8521
4cb7701a41ba3794e39c119fc6b6ab5db9bda5b0cef6b455b84999978e2fc97b
fbf1d2e13b40e0c13215f02dfc27335d375c4b8bf9d18397e1b4740289b39534
8671181e80716ee844dd406c73506a122e7a2c0378b47123b64fe5ffe62d60f1
dcdd92dee46fe01f971c34f046351be81fd5d9f10cd7cb45201dc0cc266f6b8d
30b41e08173368e6ce7772162c163fc745252810bcff2c53931cc1cd69b9a754
2096cc59f2ff7cb480baa22ff4883301eb5b0b7d9caa95ee2b36be3e63b45063
f706569d8413becf87370064c1e7e312052e1d32778da05b851a42ebb9b77cfd
35e277f0f926a29e6ae712654cf364cf8cceb511b34688d990e67bea909e0675
b0698486fbf9462fc07bd05144d90865221695d79fa1850f8dc50e8deb215e01
2a1139d3a1dd404748421814188670ad7e9c73cd549b9c7fea9e7f09897b5afa
6a189af91850f4f730d6e07a205bd3aefddef4de99f3f3b6d8c0a2056e0f2c77
4b4d9c27e6ea88dae17bf99a39c6ee0bcf84edbd1f2d63d62f9e0d76fa2f02d3
628ab32a0037c8a14aa313018352ced3d177966cdfaf14446fda218d72f97781
a5dfcdc667922492a51c92c7d298abcad50a5eaa1034e544379e6d7ef855d9e9
ac2d0eeff3935820e2d83a451345a4cfac6d554970f87daaf9833e9843a098e5
b931cd240492ecb15e4405498e7871aa41a98d682ecbbfaae793c47d3c84b941
53dc72d470207ac1b606b6fc7a1dfed6
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
TeXDict begin 40258431 52099146 1000 600 600 (ex1.revised.soln.dvi)
@start
%DVIPSBitmapFont: Fa cmr6 6 2
/Fa 2 50 df<13FF000313C0380781E0380F00F0001E137848133CA248131EA400F8131F
AD0078131EA2007C133E003C133CA26C13786C13F0380781E03803FFC0C6130018227DA0
1E>48 D<13E01201120712FF12F91201B3A7487EB512C0A212217AA01E>I
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fb cmsy8 8 2
/Fb 2 49 df0 D<137813FE1201A3120313FCA3EA07F8A313F0
A2EA0FE0A313C0121F1380A3EA3F00A3123E127E127CA35AA35A0F227EA413>48
D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fc cmtt10 10.95 60
/Fc 60 127 df38 DI<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00
485A5B12035B485A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127FA47F123FA27F
121FA26C7EA27F12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB
01FF7F147F141E184771BE30>I<127812FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB
7F80133F14C0131FEB0FE014F01307A2EB03F8A214FC1301A214FE1300A4147FAD14FEA4
130114FCA2130314F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF00485A485A485A
485AEA3FE0485A485A90C7FC5A1278184778BE30>I<143EA2147FAF007FB7FCA2B81280
A36C1600A2C76CC8FCAF143EA229297DAF30>43 DI<007FB612F0A2B712F8A36C15F0A225077B9E30>I<120FEA3FC0EA
7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B30>I<16F01501ED03F8A21507A2ED
0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5AA25D1403A24A5AA24A5AA24A5AA24A
5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495AA2495AA2495AA2495AA249C8FCA248
5AA25B1203A2485AA2485AA2485AA2485AA2485AA248C9FCA25AA2127CA225477BBE30>
I<14FE903807FFC0497F013F13F8497F90B57E48EB83FF4848C6138049137F4848EB3FC0
4848EB1FE049130F001F15F0491307A24848EB03F8A290C712014815FCA400FEEC00FEAD
6C14016C15FCA36D1303003F15F8A26D1307001F15F0A26D130F6C6CEB1FE0A26C6CEB3F
C06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5BD900FEC7FC273A
7CB830>II51 DI59
D<16F01503ED07F8151F157FEDFFF014034A13C0021F138091383FFE00ECFFF8495B0107
13C0495BD93FFEC7FC495A3801FFF0485B000F13804890C8FCEA7FFC5BEAFFE05B7FEA7F
F87FEA1FFF6C7F000313E06C7F38007FFC6D7E90380FFF806D7F010113F06D7FEC3FFE91
381FFF80020713C06E13F01400ED7FF8151F1507ED03F01500252F7BB230>I<007FB7FC
A2B81280A36C16006C5DCBFCA7003FB612FE4881B81280A36C1600A229157DA530>I<12
78127EB4FC13C07FEA7FF813FEEA1FFF6C13C000037F6C13F86C6C7EEB1FFF6D7F010313
E06D7F9038007FFC6E7E91380FFF806E13C0020113F080ED3FF8151F153FEDFFF05C0207
13C04A138091383FFE004A5A903801FFF0495B010F13804990C7FCEB7FFC48485A4813E0
000F5B4890C8FCEA7FFE13F8EAFFE05B90C9FC127E1278252F7BB230>I<147F4A7EA249
7FA4497F14F7A401077F14E3A3010F7FA314C1A2011F7FA490383F80FEA590387F007FA4
498049133F90B6FCA34881A39038FC001F00038149130FA4000781491307A2D87FFFEB7F
FFB56CB51280A46C496C130029397DB830>65 D<007FB512F0B612FE6F7E82826C813A03
F8001FF815076F7E1501A26F7EA615015EA24B5A1507ED1FF0ED7FE090B65A5E4BC7FC6F
7E16E0829039F8000FF8ED03FC6F7E1500167FA3EE3F80A6167F1700A25E4B5A1503ED1F
FC007FB6FCB75A5E16C05E6C02FCC7FC29387EB730>I<02FF13F00103EBC0F8010F13F1
013F13FD4913FF90B6FC4813C1EC007F4848133F4848131F49130F485A491307121F5B12
3F491303A2127F90C7FC6F5A92C8FC5A5AA892B5FC4A14805CA26C7F6C6D1400ED03F8A2
7F003F1407A27F121F6D130F120F7F6C6C131FA2D803FE133F6C6C137FECC1FF6C90B5FC
7F6D13FB010F13F30103EBC1F0010090C8FC293A7DB830>71 D<007FB6FCB71280A46C15
00260007F0C7FCB3B3A8007FB6FCB71280A46C1500213879B730>73
D<383FFFF8487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003FB7FC5AB8FCA2
7E6C16802A387EB730>76 D78
D<90383FFFE048B512FC000714FF4815804815C04815E0EBF80001E0133FD87F80EB0FF0
A290C71207A44815F8481403B3A96C1407A26C15F0A36D130FA26D131F6C6CEB3FE001F8
13FF90B6FC6C15C06C15806C1500000114FCD8003F13E0253A7BB830>I<003FB57E4814
F0B612FC15FF6C816C812603F8017F9138003FF0151F6F7E15071503821501A515035E15
07150F4B5A153F4AB45A90B65A5E93C7FC5D8182D9F8007FED3FE0151F150F821507A817
F8EEF1FCA53A3FFF8003FB4801C0EBFFF8B56C7E17F06C496C13E06C49EB7FC0C9EA1F00
2E397FB730>82 D<90390FF803C0D97FFF13E048B512C74814F74814FF5A381FF80F383F
E001497E4848137F90C7123F5A48141FA2150FA37EED07C06C91C7FC7F7FEA3FF0EA1FFE
EBFFF06C13FF6C14E0000114F86C80011F13FF01031480D9003F13C014019138007FE015
1FED0FF0A2ED07F8A2007C140312FEA56C140716F07F6DEB0FE06D131F01F8EB3FC001FF
13FF91B51280160000FD5CD8FC7F13F8D8F81F5BD878011380253A7BB830>I<003FB712
C04816E0B8FCA43AFE003F800FA8007CED07C0C791C7FCB3B1011FB5FC4980A46D91C7FC
2B387EB730>I<3A3FFF01FFF84801837F02C77FA202835B6C01015B3A01FC007F806D91
C7FC00005C6D5BEB7F01EC81FCEB3F8314C3011F5B14E7010F5B14FF6D5BA26D5BA26D5B
A26D90C8FCA4497FA2497FA2815B81EB0FE781EB1FC381EB3F8181EB7F0081497F498000
01143F49800003141F49800007140FD87FFEEB7FFFB590B5128080A25C6C486D13002938
7DB730>88 D<001FB612FC4815FE5AA490C7EA03FCED07F816F0150FED1FE016C0153FED
7F80003E1500C85A4A5A5D14034A5A5D140F4A5A5D143F4A5A92C7FC5C495A5C1303495A
5C130F495A5C133F495A91C8FC5B4848147C4914FE1203485A5B120F485A5B123F485A90
B6FCB7FCA46C15FC27387CB730>90 D<127CA212FEA27EA26C7EA26C7EA26C7EA26C7EA2
6C7EA26C7EA212017FA26C7EA26D7EA26D7EA26D7EA26D7EA26D7EA26D7EA2130180A26D
7EA26E7EA26E7EA26E7EA26E7EA26E7EA26E7EA2140181A26E7EA2ED7F80A2ED3FC0A2ED
1FE0A2ED0FF0A2ED07F8A21503A2ED01F0150025477BBE30>92 D<1307EB1FC0EB7FF049
7E000313FE000FEBFF80003F14E0D87FFD13F039FFF07FF8EBC01FEB800F38FE0003007C
EB01F00010EB00401D0E77B730>94 D<007FB612F0A2B712F8A36C15F0A225077B7D30>
I97 DII<913801FFE04A7F5CA28080EC0007AAEB03FE90381FFF874913E790B6FC5A5A48
1303380FFC00D81FF0133F49131F485A150F4848130790C7FCA25AA25AA87E6C140FA27F
003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFFC06CB712E06C16F06C14F76D01
C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4FC010713E0011F13F8017F7F90
B57E488048018113803A07FC007FC04848133FD81FE0EB1FE0150F484814F0491307127F
90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D1307
D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F14806DEBFE00010713F8010013C025
2A7CA830>IIII<14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF848
7F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C15C023397AB830>III<387FFFF8B57EA47EEA0001B3B3A8007FB612
F0B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF01FF80D8FFEF01877F90B500CF
7F15DF92B57E6C010F13872607FE07EB03F801FC13FE9039F803FC01A201F013F8A301E0
13F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C01071380322881A730>II<49B4FC010F13E0013F13F8497F90B57E0003ECFF8014013A
07FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F8491303007F15FC90C71201A300FE
EC00FEA86C14016C15FCA26D1303003F15F86D13076D130F6C6CEB1FF06C6CEB3FE06D13
7F3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F13E0010190C7FC272A7CA830>
II114
D<90381FFC1E48B5129F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E007F
91C7FC13E06CB4FC6C13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF020013
80007C147F00FEEC1FC0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC5D5D
00FC14F0D8F83F13C026780FFEC7FC222A79A830>III<3B3FFFC0
7FFF80486DB512C0B515E0A26C16C06C496C13803B01F80003F000A26D130700005DA26D
130F017E5CA2017F131F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE01075BA2
14F101035BA3903801FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFFE048
6D4813F0B515F8A26C16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE0001
5DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FBA290
393FF07FE0A3ECE03FA2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801C37F
B580A26C5D6C01815BC648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F0
6DB45A6D5B7F6D5B92C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1F890
381F81FC90383F80FE90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500C114
8014E3A214C16C0180140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16
C06C496C13803B01FC0003F000A2000014076D5C137E150F017F5C7F151FD91F805BA214
C0010F49C7FCA214E00107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D147F
A26E5AA36E5AA35DA2143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387EB8F
F0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815FE5AA316FC90
C7EA0FF8ED1FF0ED3FE0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A4A5A4A5A4A5A
4990C7FC495A495A495A495A495A495A4948133E4890C7127F485A485A485A485A485A48
B7FCB8FCA46C15FE28277DA630>II125 D<017C133848B4137C48EB80FE4813C14813C348EBEFFC
397FEFFFF0D8FF8713E0010713C0486C1380D87C0113003838007C1F0C78B730>I
E
%EndDVIPSBitmapFont
/Fd 107[47 47 24[48 52 1[77 52 63 37 44 44 1[61 58 64
94 31 1[31 31 63 53 34 52 60 49 60 54 13[56 68 77 1[77
1[91 58 70 38 4[63 77 69 8[28 5[56 56 56 56 56 38 28
39 3[36 36 6[28 33[{TeXBase1Encoding ReEncodeFont}48
99.6264 /Utopia-Bold rf /Fe 153[31 102[{TeXBase1Encoding ReEncodeFont}1
99.6264 /Utopia-Italic rf /Ff 171[62 1[64 1[60 80[{
TeXBase1Encoding ReEncodeFont}3 99.6264 /Utopia-Regular
rf
%DVIPSBitmapFont: Fg cmr10 10.95 12
/Fg 12 109 df<1430147014E0EB01C0EB03801307EB0F00131E133E133C5B13F85B1201
5B1203A2485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C12FCB2127C127EA6123E
123FA37EA27F120FA27F1207A26C7EA212017F12007F13787F133E131E7FEB07801303EB
01C0EB00E014701430145A77C323>40 D<12C07E12707E7E121E7E6C7E7F12036C7E7F12
007F1378137CA27FA2133F7FA21480130FA214C0A3130714E0A6130314F0B214E01307A6
14C0130FA31480A2131F1400A25B133EA25BA2137813F85B12015B485A12075B48C7FC12
1E121C5A5A5A5A145A7BC323>I<1506150FB3A9007FB912E0BA12F0A26C18E0C8000FC9
FCB3A915063C3C7BB447>43 D48
DIII<000614
03D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE90380F
FF8090383E03E090387001F8496C7E49137E497F90C713800006141FC813C0A216E0150F
A316F0A3120C127F7F12FFA416E090C7121F12FC007015C012780038EC3F80123C6CEC7F
00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC2D>53
D56
D<007FB912E0BA12F0A26C18E0CDFCAE007FB912E0BA12F0A26C18E03C167BA147>61
D<167C903903F801FF903A1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E000
FC0600000F6EC7FC49137E001F147FA8000F147E6D13FE00075C6C6C485AA23901F803E0
3903FE0FC026071FFFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E6C
15E06C810003813A0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D007C153E00
7E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C029
3D7EA82D>103 D108
D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fh cmmi8 8 5
/Fh 5 112 df<13F8121FA21201A25BA21203A25BA21207A25BA2120FEBC7E0EB9FF8EB
B83C381FF01EEBE01F13C09038800F80EA3F00A2123EA2007E131FA2127CA2143F00FC14
005AA2147EA2147C14FC5C387801F01303495A383C0F806C48C7FCEA0FFCEA03F0192F7D
AD1E>98 DI<1307EB0F80EB1FC0A2EB0F80EB070090
C7FCA9EA01E0EA07F8EA0E3CEA1C3E123812301270EA607EEAE07C12C013FC485A120012
015B12035BA21207EBC04014C0120F13801381381F01801303EB0700EA0F06131EEA07F8
EA01F0122E7EAC18>105 D<131FEA03FFA2EA003FA2133EA2137EA2137CA213FCA25BA2
120115F89038F003FCEC0F0E0003EB1C1EEC387EEBE07014E03807E1C09038E3803849C7
FC13CEEA0FDC13F8A2EBFF80381F9FE0EB83F0EB01F81300481404150C123EA2007E141C
1518007CEBF038ECF83000FC1470EC78E048EB3FC00070EB0F801F2F7DAD25>107
D111
D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fi cmr8 8 8
/Fi 8 55 df43
D48 D<130C133C137CEA03FC12FFEAFC7C1200B3B113FE387F
FFFEA2172C7AAB23>III<140EA2141E143EA2
147E14FEA2EB01BE1303143E1306130E130C131813381330136013E013C0EA0180120313
001206120E120C5A123812305A12E0B612FCA2C7EA3E00A9147F90381FFFFCA21E2D7EAC
23>I<000CEB0180380FC01F90B512005C5C14F014C0D80C7EC7FC90C8FCA8EB1FC0EB7F
F8380DE07C380F801F01001380000E130F000CEB07C0C713E0A2140315F0A4127812FCA4
48EB07E012E0006014C00070130F6C14806CEB1F006C133E380780F83801FFE038007F80
1C2D7DAB23>II
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fj cmmi10 10.95 25
/Fj 25 123 df<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>58
D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A
120E5A1218123812300B1C798919>I<183818FC1703EF0FF8EF3FE0EFFF80933803FE00
EE0FF8EE3FE0EEFF80DB03FEC7FCED0FF8ED3FE0EDFF80DA03FEC8FCEC0FF8EC3FE0ECFF
80D903FEC9FCEB0FF8EB3FE0EBFF80D803FECAFCEA0FF8EA3FE0EA7F8000FECBFCA2EA7F
80EA3FE0EA0FF8EA03FEC66C7EEB3FE0EB0FF8EB03FE903800FF80EC3FE0EC0FF8EC03FE
913800FF80ED3FE0ED0FF8ED03FE923800FF80EE3FE0EE0FF8EE03FE933800FF80EF3FE0
EF0FF8EF03FC17001838363678B147>I<17075F84171FA2173F177FA217FFA25E5EA24C
6C7EA2EE0E3F161E161C1638A21670A216E0ED01C084ED0380171FED07005D150E5DA25D
157815705D844A5A170F4A5A4AC7FC92B6FC5CA2021CC7120F143C14384A81A24A140713
015C495AA249C8FC5B130E131E4982137C13FED807FFED1FFEB500F00107B512FCA219F8
3E417DC044>65 D<49B712F818FF19E090260001FEC7EA3FF0F007F84B6E7E727E850203
815D1A80A20207167F4B15FFA3020F17004B5C611803021F5E4B4A5A180FF01FE0023F4B
5A4B4A5ADD01FEC7FCEF07F8027FEC7FE092B6C8FC18E092C7EA07F84AEC01FE4A6E7E72
7E727E13014A82181FA213034A82A301075F4A153FA261010F167F4A5E18FF4D90C7FC01
1F5E4A14034D5A013FED1FF04D5A4AECFFC0017F020790C8FCB812FC17F094C9FC413E7D
BD45>II<49B712F818FF19C0D9
000190C7EA3FF0F00FF84BEC03FCF000FE197F0203EE3F805DF11FC0A20207EE0FE05D1A
F0A2020F16075DA21AF8141F5DA2190F143F5DA21AF0147F4B151FA302FF17E092C9123F
A21AC049177F5C1A8019FF010318005C4E5A61010716034A5E4E5A180F010F4C5A4A5E4E
5A4EC7FC011F16FE4A4A5AEF07F8013FED0FE0EF3FC04A49B4C8FC017FEC0FFCB812F017
C004FCC9FC453E7DBD4B>I<49B912C0A3D9000190C71201F0003F4B151F190F1A800203
16075DA314075D1A00A2140F4B1307A24D5B021F020E130E4B92C7FC171EA2023F5C5D17
7CEE01FC4AB55AA3ED800302FF6D5A92C7FCA3495D5C19380401147801034B13704A16F0
93C85AA2010716014A5E180361010F16074A4BC7FCA260011F163E4A157E60013F15014D
5A4A140F017F15FFB95AA260423E7DBD43>I<49B9FCA3D9000190C7120718004B157F19
3F191E14035DA314075D191CA2140F5D17074D133C021F020E13384B1500A2171E023F14
1C4B133C177C17FC027FEB03F892B5FCA39139FF8003F0ED00011600A2495D5CA2160101
035D5CA293C9FC13075CA3130F5CA3131F5CA2133FA25C497EB612F8A3403E7DBD3A>I<
49B56C49B512F81BF0A290C76D9039000FFE004AEE03F0705D735A03DF150302037F038F
5E82190791380787FC030793C7FC1503705C140F91260E01FF140EA26F151E021E80021C
017F141C83193C023C6D7E02381638161F711378147802706D6C1370A2040714F002F080
4A01035C8318010101EC01FF4A5E82188313034A91387FC380A2EF3FC7010716E791C800
1F90C8FC18F718FF4981010E5E1707A2131E011C6F5AA2013C1501137C01FE6F5AEA03FF
B512FC187818704D3E7DBD49>78 DI83 D97 DII<163EEEFFC0923803E1E0
923807C0F0ED0F811687ED1F8F160F153FA217E092387E038093C7FCA45DA514015DA301
03B512FCA390260003F0C7FCA314075DA4140F5DA5141F5DA4143F92C8FCA45C147EA414
FE5CA413015CA4495AA35CEA1E07127F5C12FF495AA200FE90C9FCEAF81EEA703EEA7878
EA1FF0EA07C02C537CBF2D>102 DI106 DI<01F8EB0FF0D803FEEB3FFC3A078F80F03E3A0F0F83C01F3B0E07C7800F
80001CEBCF0002FE80003C5B00385B495A127800705BA200F049131F011F5D00005BA216
3F013F92C7FC91C7FC5E167E5B017E14FE5EA201FE0101EB03804914F8A2030313070001
03F013005B170E16E000035E49153C17385F0007913801F1E0496DB45AD801C0023FC7FC
31297EA737>110 D112 D<013EEE0380D9FF800107EB0FE02601C3E090381F801FD8038117F0380701F0
000E153F001E1600D81C03160F003C170700384BEB03E0D87807147E00705B1801D8F00F
14FE4A4914C01200131FDA800114034C1480133F140003031407494A1400137EA26001FE
0107140E495C60A360150F017C5E017E011F14F0705B6D0139495A6D903970F803809028
0FC0E07C0FC7FC903A03FFC01FFC903A007F0007F03C297EA741>119
DI<137C48B4EC03802603C7C0EB0FC0EA0703000F7F000E151F001C1680
13071238163FD8780F150000705BA2D8F01F5C4A137E1200133F91C712FE5E5B137E1501
13FE495CA2150300015D5BA215075EA2150F151F00005D6D133F017C137F017E13FF9039
3F03DF8090380FFF1FEB01FC90C7123F93C7FCA25DD80380137ED80FE013FE001F5C4A5A
A24848485A4A5A6CC6485A001C495A001E49C8FC000E137C380781F03803FFC0C648C9FC
2A3B7EA72D>I<02F8130ED903FE131ED90FFF131C49EB803C49EBC0784914F090397E07
F1E09038F800FF49EB1FC049EB07800001EC0F006C48131E90C75A5D5D4A5A4A5A4A5A4A
C7FC143E14785C495A495A495A49C8FC011E14E05B5B4913014848EB03C0485AD807F8EB
078048B4131F3A1F87E07F00391E03FFFE486C5B00785CD870005B00F0EB7FC048011FC7
FC27297DA72A>I E
%EndDVIPSBitmapFont
/Fk 133[43 43 47 71 46 56 31 35 37 1[54 49 56 83 28 2[29
55 45 29 41 53 40 51 51 23[31 26[24 36 45[{
TeXBase1Encoding ReEncodeFont}26 90.9091 /Utopia-Italic
rf
%DVIPSBitmapFont: Fl cmsy10 10.95 9
/Fl 9 102 df<007FB812F8B912FCA26C17F83604789847>0 D<121EEA7F80A2EAFFC0A4
EA7F80A2EA1E000A0A799B19>I<0060166000F816F06C1501007E15036CED07E06C6CEC
0FC06C6CEC1F806C6CEC3F006C6C147E6C6C5C6C6C495A017E495A6D495A6D6C485A6D6C
485A6D6C48C7FC903803F07E6D6C5A903800FDF8EC7FF06E5A6E5AA24A7E4A7EECFDF890
3801F8FC903803F07E49487E49486C7E49486C7E49486C7E017E6D7E496D7E48486D7E48
48147E4848804848EC1F804848EC0FC048C8EA07E0007EED03F048150148150000601660
2C2C73AC47>I14 D
I<1818187CEF01FCEF07F8EF1FF0EF7FC0933801FF00EE07FCEE1FF0EE7FC04B48C7FCED
07FCED1FF0ED7FC04A48C8FCEC07FCEC1FF0EC7FC04948C9FCEB07FCEB1FF0EB7FC04848
CAFCEA07FCEA1FF0EA7FC048CBFC5AEA7F80EA3FE0EA0FF8EA03FEC66C7EEB3FE0EB0FF8
EB03FE903800FF80EC3FE0EC0FF8EC03FE913800FF80ED3FE0ED0FF8ED03FE923800FF80
EE3FE0EE0FF8EE03FE933800FF80EF3FE0EF0FF8EF03FC170018381800AE007FB812F8B9
12FCA26C17F8364878B947>20 D<126012F812FEEA7F80EA3FE0EA0FF8EA03FEC66C7EEB
3FE0EB0FF8EB03FE903800FF80EC3FE0EC0FF8EC03FE913800FF80ED3FE0ED0FF8ED03FE
923800FF80EE3FE0EE0FF8EE03FE933800FF80EF3FE0EF0FF8EF03FC1701EF07F8EF1FF0
EF7FC0933801FF00EE07FCEE1FF0EE7FC04B48C7FCED07FCED1FF0ED7FC04A48C8FCEC07
FCEC1FF0EC7FC04948C9FCEB07FCEB1FF0EB7FC04848CAFCEA07FCEA1FF0EA7FC048CBFC
12FC1270CCFCAE007FB812F8B912FCA26C17F8364878B947>I<387FFFFCB5FCA300F0C7
FCB3B3B3B3AD1260165A71C328>100 DI E
%EndDVIPSBitmapFont
/Fm 107[42 42 24[44 46 44 70 46 55 31 40 35 54 55 52
56 84 25 48 25 26 55 47 29 47 54 45 54 48 3[30 1[30 1[53
57 85 58 72 56 49 59 69 55 69 71 86 52 60 32 32 73 67
53 55 71 62 59 58 1[35 1[52 2[24 48 48 48 48 48 48 48
48 48 48 42 24 36 24 52 1[32 32 25 35[55 55 2[{
TeXBase1Encoding ReEncodeFont}78 90.9091 /Utopia-Regular
rf /Fn 105[45 30[70 47 57 34 41 40 2[53 58 1[28 2[29
2[31 47 55 45 55 49 9[85 1[71 57 51 62 2[70 67 83 53
2[35 73 1[54 57 71 63 62 59 6[25 51 51 51 51 51 51 51
51 51 51 1[25 4[33 33 40[{TeXBase1Encoding ReEncodeFont}48
90.9091 /Utopia-Bold rf /Fo 135[108 2[130 76 92 3[121
132 196 64 2[65 7[112 13[116 13[130 19[116 49[{
TeXBase1Encoding ReEncodeFont}13 206.559 /Utopia-Bold
rf /Fp 134[60 58 1[60 72 41 52 47 1[73 69 74 110 33 2[35
1[62 1[61 71 59 71 63 17[91 1[113 5[88 69 72 10[32 2[63
1[63 63 1[63 63 63 1[32 47 32 44[{TeXBase1Encoding ReEncodeFont}34
119.552 /Utopia-Regular rf /Fq 133[58 4[75 44 1[53 1[74
70 76 113 3[38 1[64 1[62 3[65 13[67 3[92 1[110 9[82 8[33
6[67 1[67 49[{TeXBase1Encoding ReEncodeFont}19 119.552
/Utopia-Bold rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%EndSetup
%%Page: 1 1
1 0 bop 982 119 a Fq(CMSC)25 b(311:)32 b(C)o(omputer)25
b(O)o(r)q(ganization)1728 292 y Fp(F)-6 b(all)28 b(2002)1109
620 y Fo(Exam)43 b(1)g(Solutions)910 780 y Fp(E)o(xam)27
b(G)o(iv)o(en:)33 b(M)l(onday)-10 b(,)28 b(O)o(ctober)g(21,)f(2002)90
1073 y Fn(I)n(nstr)q(uctions:)46 b Fm(This)32 b(is)g(a)f(75)g(minute)i
(exam.)57 b(This)32 b(exam)f(is)h(closed)g(book)g(and)f(closed)i(notes)
n(.)58 b(N)m(o)90 1186 y(calculators)21 b(ar)n(e)g(per)q(mitted)g(on)g
(the)g(exam.)k(All)c(computations)h(should)f(be)g(done)g(on)g(paper)-5
b(.)90 1346 y(This)21 b(is)g(a)f Fp(140)h Fm(point)h(exam.)j(The)c
(exam)f(consists)h(of)g(4)f(par)q(ts:)226 1550 y Fl(\017)46
b Fm(Q)o(uiz)22 b(1:)j(D)o(ata)20 b(R)n(epr)n(esentation)i(\(40)e
(points\))i(pass:)j(28)226 1725 y Fl(\017)46 b Fm(Q)o(uiz)22
b(2:)j(C)o(ombinational)e(Logic)f(\(40)e(points\))i(pass:)i(28)226
1900 y Fl(\017)46 b Fm(Q)o(uiz)22 b(3:)j(Lo)m(w)c(level)f(C)h
(functions/CPU)g(\(20)g(points\))g(pass:)k(14)226 2075
y Fl(\017)46 b Fm(Challenge)21 b(\(\223)n(D)o(r)o(ool)h(K)q(itty\224\))
f(S)o(ection)g(\(40)g(points\))90 2278 y(SEE)g(P)-5 b(A)n(GE)19
b(2)i(for)g(USEFUL)f(F)-5 b(A)n(CT)o(S)20 b(and)h(C)o(ONVENTIONS.)p
898 2409 2462 4 v 897 2519 4 113 v 3358 2519 V 602 2598
a(N)m(ame)p 897 2631 V 3358 2631 V 897 2744 V 3358 2744
V 898 2748 2462 4 v 898 2850 V 897 2960 4 113 v 3358
2960 V 134 3039 a(SID)f(\(Last)f(6)i(digits\))p 897 3073
V 3358 3073 V 897 3186 V 3358 3186 V 898 3189 2462 4
v 898 3245 V 897 3354 4 113 v 3358 3354 V 610 3433 a(Email)p
897 3467 V 3358 3467 V 897 3580 V 3358 3580 V 898 3583
2462 4 v 90 3700 a Fn(HONOR)e(ST)-5 b(A)g(TEMENT)90 3861
y Fm(The)28 b(follo)m(wing)i(is)e(an)g(honor)h(statement.)47
b(This)28 b(is)g(NO)m(T)h(the)f(same)e(as)h(the)h(\223honor)h(pledge)-5
b(\224)-12 b(.)47 b(I)n(t)28 b(only)90 3973 y(states)c(y)o(our)j
Fk(awar)n(eness)f Fm(of)g(the)f(follo)m(wing)j(statement.)39
b(I)n(t)24 b(is)i(the)f(equiv)o(alent)g(of)h(saying)f(\223)n(I)g(kno)m
(w)g(it)h(is)90 4086 y(against)f(the)h(law)f(to)h(dr)q(ive)f(faster)g
(than)g(the)h(speed)f(limit)n(\224)h(instead)g(of)g(saying)f(\223)n(I)g
(pledge)h(not)g(to)g(dr)q(ive)90 4199 y(faster)20 b(than)h(the)f(speed)
h(limit)n(\224)-12 b(.)317 4403 y Fk(I)18 b(am)f(awar)n(e)g(that)g
(giving)h(or)f(r)n(eceiving)g(unauthoriz)o(ed)h(assistance)h(or)d
(using)i(unauthoriz)o(ed)317 4516 y(aids)j(on)g(this)g(e)o(xam)f(is)h
(consider)n(ed)g(a)f(violation)g(of)g(academic)h(integrity)-6
b(.)90 4719 y Fm(P)o(lease)27 b(sign)i(belo)m(w)g(to)g(indicate)g(that)
f(y)o(ou)h(READ)e(and)i(UNDERST)-6 b(AND)27 b(what)h(the)g(statement)g
(says)n(.)90 4832 y(Y)-8 b(our)22 b(exam)d(will)j(not)f(be)g(r)n(etur)q
(ned)g(to)h(y)o(ou,)f(unless)f(this)h(is)g(signed.)p
898 4912 V 897 5022 4 113 v 3358 5022 V 457 5101 a(S)n(ignatur)n(e)p
897 5135 V 3358 5135 V 897 5248 V 3358 5248 V 898 5251
2462 4 v 1941 5497 a(1)p eop
%%Page: 2 2
2 1 bop 90 -91 a Fn(C)o(onv)o(entions:)226 72 y Fl(\017)46
b Fm(Cir)n(cle)22 b(data/contr)o(ol)h(inputs)e(fr)o(om)h(outside)f
(world.)27 b(SQ)m(U)l(ARE)21 b(outputs)h(to)f(outside)g(world.)226
250 y Fl(\017)46 b Fm(S)o(elect)25 b(\(contr)o(ol\))h(lines)f(ar)n(e)f
(wr)q(itten)h(using)f Fj(c)p Fm(.)37 b(F)m(or)25 b(example)n(,)g(a)e(3)
i(bit)g(contr)o(ol)i(lines)d(ar)n(e)g(wr)q(itten)317
363 y Fj(c)356 377 y Fi(2)396 363 y Fj(c)435 377 y Fi(1)475
363 y Fj(c)514 377 y Fi(0)554 363 y Fm(.)h Fj(c)642 377
y Fi(2)702 363 y Fm(is)c(the)f(most)h(signi\002cant)h(bit)g(and)f
Fj(c)1973 377 y Fi(0)2033 363 y Fm(is)f(the)h(least.)226
542 y Fl(\017)46 b Fm(D)o(ata)20 b(input)h(lines)f(ar)n(e)f(wr)q(itten)
i(using)f Fj(x)p Fm(.)26 b(F)m(or)20 b(example)n(,)f(a)h(3)g(bit)g
(input)h(lines)g(ar)n(e)e(wr)q(itten)i Fj(x)3594 556
y Fi(2)3633 542 y Fj(x)3685 556 y Fi(1)3725 542 y Fj(x)3777
556 y Fi(0)3816 542 y Fm(.)317 655 y Fj(x)369 669 y Fi(2)432
655 y Fm(is)j(the)f(most)h(signi\002cant)h(bit)g(and)f
Fj(x)1734 669 y Fi(0)1796 655 y Fm(is)g(the)g(least.)34
b(\(Assuming)23 b(the)h(input)g(is)g(a)f(binar)r(y)h(num-)317
768 y(ber\).)226 947 y Fl(\017)46 b Fm(D)o(ata)32 b(output)i(lines)e
(ar)n(e)g(wr)q(itten)h(using)g Fj(z)t Fm(.)61 b(F)m(or)32
b(example)n(,)j(a)d(3)g(bit)h(output)h(lines)e(ar)n(e)g(wr)q(itten)317
1060 y Fj(z)359 1074 y Fi(2)399 1060 y Fj(z)441 1074
y Fi(1)481 1060 y Fj(z)523 1074 y Fi(0)562 1060 y Fm(.)26
b Fj(z)654 1074 y Fi(2)713 1060 y Fm(is)20 b(the)g(most)g
(signi\002cant)h(bit)g(and)f Fj(z)1982 1074 y Fi(0)2041
1060 y Fm(is)g(the)g(least.)25 b(\(Assuming)20 b(the)f(output)j(is)d
(binar)r(y\).)226 1238 y Fl(\017)46 b Fm(F)o(ull)25 b(adders)f(will)h
(use)f Fj(A)p Fm(,)h Fj(B)5 b Fm(,)24 b Fj(C)1442 1252
y Fh(i)1471 1238 y Fm(,)h Fj(C)1585 1252 y Fh(o)1623
1238 y Fm(,)g(and)f Fj(S)29 b Fm(inside)c(the)g(chip)g(to)f(r)n(epr)n
(esent)h(the)f(two)h(bits)g(being)317 1351 y(added,)c(the)g(carr)r(y)f
(in,)i(the)e(carr)r(y)h(out,)g(and)g(the)f(sum,)g(r)n(espectively)-9
b(.)226 1530 y Fl(\017)46 b Fm(I)n(nside)25 b(the)f(chip)l(,)i(use)d
(capital)i(letters)n(.)36 b(O)o(utside)25 b(the)f(chip)h(use)e(lo)m(w)o
(er)n(case)h(letters)h(to)f(r)n(epr)n(esent)317 1643
y(inputs)e(coming)g(fr)o(om)f(outside)h(world,)g(and)e(outputs)i(going)
g(to)f(outside)h(world.)90 1876 y Fn(U)l(seful)e(facts:)226
2039 y Fl(\017)46 b Fg(1000)27 b(0000)704 2053 y Fi(2)766
2039 y Fm(=)20 b(128)h(and)g Fg(1111)27 b(1111)1569 2053
y Fi(2)1631 2039 y Fm(=)20 b(255)226 2217 y Fl(\017)46
b Fm(The)27 b(follo)m(wing)i(ar)n(e)d(gates:)37 b(AND)-5
b(,)26 b(OR,)g(NO)m(T)-10 b(,)27 b(X)m(OR,)f(XNOR,)g(NAND)-5
b(,)26 b(and)h(NOR.)f(U)l(nless)g(other)n(-)317 2330
y(wise)20 b(speci\002ed,)i(y)o(ou)f(may)f(assume)f(that)i(each)f(gate)g
(\(ex)o(cept)g(NO)m(T)5 b(\))22 b(can)e(have)f(in\002nite)k(fan-in.)226
2509 y Fl(\017)46 b Fm(The)30 b(follo)m(wing)j(ar)n(e)c(par)q(ts:)44
b(any)30 b(gates)o(,)i(multiplexer)f(\(MUX\),)e(demultiplexer)j
(\(DEMUX\),)c(en-)317 2622 y(coder)-5 b(,)31 b(decoder)-5
b(,)32 b(half)c(adder)h(\(HA\),)f(full)h(adder)g(\(F)-5
b(A\),)27 b Fj(k)s Fm(-bit)j(r)q(ipple)g(carr)r(y)e(adder)-5
b(,)31 b(pr)q(ior)q(ity)f(en-)317 2735 y(coder)-5 b(.)426
2914 y Fn(\226)46 b Fm(HA)20 b(uses)g(inputs:)26 b Fj(A)p
Fm(,)21 b Fj(B)k Fm(and)20 b(outputs:)27 b Fj(C)g Fm(\(carr)r(y)20
b(out\),)h Fj(S)26 b Fm(\(sum\).)426 3051 y Fn(\226)46
b Fm(F)-5 b(A)20 b(uses)f(inputs:)27 b Fj(A)p Fm(,)20
b Fj(B)5 b Fm(,)21 b Fj(C)1454 3065 y Fh(i)1502 3051
y Fm(\(carr)r(y)f(in\))h(and)g(outputs:)27 b Fj(C)2514
3065 y Fh(o)2572 3051 y Fm(\(carr)r(y)21 b(out\),)g Fj(S)k
Fm(\(sum\).)90 3284 y Fp(G)o(r)o(ading)p 1181 3444 1569
4 v 1179 3727 4 283 v 1467 3642 a Fm(P)m(ar)q(t)p 1917
3727 V 571 w(P)m(oints)p 2747 3727 V 1181 3730 1569 4
v 1181 3747 V 1179 4029 4 283 v 1419 3944 a(Q)o(uiz)c(1)p
1917 4029 V 2747 4029 V 1181 4032 1569 4 v 1179 4314
4 283 v 1419 4230 a(Q)o(uiz)g(2)p 1917 4314 V 2747 4314
V 1181 4318 1569 4 v 1179 4600 4 283 v 1419 4515 a(Q)o(uiz)g(3)p
1917 4600 V 2747 4600 V 1181 4603 1569 4 v 1179 4886
4 283 v 1344 4801 a(Challenge)p 1917 4886 V 2747 4886
V 1181 4889 1569 4 v 1179 5171 4 283 v 1448 5087 a(T)-9
b(otal)p 1917 5171 V 2747 5171 V 1181 5175 1569 4 v 1941
5497 a(2)p eop
%%Page: 3 3
3 2 bop 1252 119 a Fm(CMSC)21 b(311)g(C)o(omputer)h(Or)o(ganization)
1785 232 y(F)l(all)e(2002)1849 345 y Ff(R)m(T)p Fe(f)f
Ff(P)p 462 527 3007 4 v 460 810 4 283 v 611 725 a Fm(N)m(ame)p
1005 810 V 3467 810 V 462 813 3007 4 v 460 1095 4 283
v 512 1011 a(S)n(tudent)i(ID)p 1005 1095 V 3467 1095
V 462 1099 3007 4 v 90 1373 a Fd(Q)o(uiz)g(1)g(\(D)o(ata)g(R)n(epr)n
(esentation\):)26 b(\223..)g(and)21 b(the)f(bases)i(ar)n(e)f(loaded)n
(\224)g(\(40)g(points\))90 1590 y Fn(1.1)46 b Fm(\(2)20
b(pts\))h(H)m(er)n(e)-5 b(')-10 b(s)19 b(a)h(declar)o(ation)i(in)g(a)e
(C)g(pr)o(ogr)o(am:)459 1703 y Fc(int)47 b(x)h(;)317
1816 y Fm(What)n(')-10 b(s)21 b(the)g(inter)q(nal)h(data)e(r)n(epr)n
(esentation)i(for)f Fc(x)p Fm(?)317 1966 y Fn(Answ)o(er)r(:)j
Fm(32)d(bit)g(two)-6 b(')c(s)21 b(complement.)90 2154
y Fn(1.2)46 b Fm(\(2)20 b(pts\))h(H)m(er)n(e)-5 b(')-10
b(s)19 b(a)h(declar)o(ation)i(in)g(a)e(C)g(pr)o(ogr)o(am:)459
2267 y Fc(float)47 b(y)g(;)317 2380 y Fm(What)n(')-10
b(s)24 b(the)e(inter)q(nal)i(data)e(r)n(epr)n(esentation)j(for)e
Fc(y)p Fm(?)32 b(\(H)n(int:)f(ther)n(e)-5 b(')-10 b(s)22
b(a)h Fc(double)e Fm(type)i(that)g(stor)n(es)f(a)317
2493 y(longer)g(version)f(of)g(a)f Fc(float)p Fm(\))317
2643 y Fn(Answ)o(er)r(:)k Fm(IEEE)c(754)h(single)h(pr)n(ecision)g
(\003oating)g(point.)90 2830 y Fn(1.3)46 b Fm(\(2)20
b(pts\))h(H)m(er)n(e)-5 b(')-10 b(s)19 b(a)h(declar)o(ation)i(in)g(a)e
(C)g(pr)o(ogr)o(am:)459 2943 y Fc(char)47 b(ch)g(;)317
3056 y Fm(What)n(')-10 b(s)24 b(the)g(inter)q(nal)h(data)e(r)n(epr)n
(esentation)i(for)f Fc(ch)f Fm(on)h(most)g(computers)g(\(e)n(.g.,)h(DC)
e(class)g(clus-)317 3169 y(ter\)?)317 3319 y Fn(Answ)o(er)r(:)h
Fm(ASCII.)1941 5497 y(3)p eop
%%Page: 4 4
4 3 bop 90 119 a Fn(1.4)46 b Fm(\(3)27 b(pts\))h(G)o(iven)f(a)h
Fj(k)s Fm(-bit)g(bitstr)q(ing)i(\(wher)n(e)e Fj(k)43
b Fl(\025)d Fg(1)p Fm(\),)30 b(ho)m(w)f(many)e(differ)n(ent)i(bit)g
(str)q(ings)g(ar)n(e)e(ther)n(e?)317 232 y(W)l(r)q(ite)22
b(a)e(for)q(mula)h(for)g(this)g(\(hint:)26 b(use)20 b
Fj(k)s Fm(\).)317 382 y Fn(Answ)o(er)r(:)k Fg(2)727 349
y Fh(k)790 382 y Fm(differ)n(ent)e(bitstr)q(ing)h(patter)q(ns)n(.)90
570 y Fn(1.5)46 b Fm(\(3)25 b(pts\))h(S)n(uppose)g(y)o(ou)g(ar)n(e)g
(given)f(a)g(bitstr)q(ing)j(with)e Fk(e)o(xactly)j Fj(k)g
Fm(1')-10 b(s)o(,)27 b(and)f(y)o(ou)m(')-6 b(r)n(e)27
b(told)g(the)e(number)317 683 y(is)e(an)f Fp(unsigned)i
Fm(integer)-5 b(.)31 b(W)l(r)q(ite)24 b(a)e(for)q(mula)g(for)i(the)e
(base)g(10)g(\(decimal\))h Fp(v)o(alue)h Fm(of)e(this)h(bit-)317
796 y(str)q(ing.)j(Y)-8 b(ou)18 b(can)f(assume)f Fj(k)29
b Fl(\025)c Fg(2)p Fm(.)g(\(Don)-7 b(')g(t)18 b(use)f(summations)o(,)h
(unless)g(y)o(ou)g(can)-7 b(')g(t)18 b(think)g(of)g(another)317
908 y(way\).)317 1059 y Fn(Answ)o(er)r(:)24 b Fg(2)727
1026 y Fh(k)790 1059 y Fl(\000)c Fg(1)317 1209 y Fm(R)n(ecall)28
b Fg(2)637 1176 y Fh(k)708 1209 y Fm(is)g(1,)i(follo)m(w)o(ed)g(b)n(y)e
Fj(k)j Fm(z)o(er)o(oes)n(.)48 b(I)o(f)29 b(y)o(ou)f(subtr)o(act)h(1,)h
(y)o(ou)f(get)f Fj(k)j Fm(1')-10 b(s)n(.)48 b(This)29
b(is)f(similar)g(to)317 1322 y(having)21 b(an)g(odometer)g(that)n(')-10
b(s)21 b(1)g(follo)m(w)o(ed)i(b)n(y)d Fj(k)k Fm(z)o(er)o(oes)n(.)i(I)o
(f)21 b(y)o(ou)g(subtr)o(act)g(1,)g(y)o(ou)g(get)g Fj(k)j
Fm(9')-10 b(s)n(.)90 1510 y Fn(1.6)46 b Fm(\(3)25 b(pts\))h(S)n(uppose)
g(y)o(ou)g(ar)n(e)g(given)f(a)g(bitstr)q(ing)j(with)e
Fk(e)o(xactly)j Fj(k)g Fm(1')-10 b(s)o(,)27 b(and)f(y)o(ou)m(')-6
b(r)n(e)27 b(told)g(the)e(number)317 1622 y(is)c(a)g
Fp(signed)h Fm(integer)-5 b(.)28 b(W)l(r)q(ite)22 b(a)e(for)q(mula)i
(for)g(the)f(base)f(10)h(\(decimal\))g Fp(v)o(alue)i
Fm(of)e(this)h(bitstr)q(ing.)317 1735 y(Y)-8 b(ou)22
b(can)e(assume)f Fj(k)28 b Fl(\025)d Fg(2)p Fm(.)h(S)n(tate)20
b(ANY)h(ASSUMPTIONS)f(needed)h(for)g(the)g(for)q(mula)g(to)g(be)g(tr)q
(ue)n(.)317 1886 y Fn(Answ)o(er)r(:)j Fm(-1,)c(assuming)h(the)f(r)n
(epr)n(esentation)i(is)f(two)-6 b(')c(s)20 b(complement.)317
2036 y(\(C)o(ould)i(also)e(say)-8 b(,)20 b(0,)h(if)g(it)n(')-10
b(s)21 b(one)-5 b(')-10 b(s)21 b(complement,)g(or)h Fl(\000)p
Fg(\(2)2330 2003 y Fh(k)r Fb(\000)p Fi(1)2483 2036 y
Fl(\000)e Fg(1\))h Fm(if)g(it)n(')-10 b(s)22 b(signed)f(magnitude\).)
317 2186 y(M)o(ake)e(sur)n(e)i(to)g(state)f(which)h(signed)g(number)g
(r)n(epr)n(esentation)i(y)o(ou)e(ar)n(e)f(using.)90 2374
y Fn(1.7)46 b Fm(\(4)21 b(pts\))g(W)l(r)q(ite)h Fg(+5)902
2388 y Fi(10)998 2374 y Fm(in)f(the)g(follo)m(wing)j(r)n(epr)n
(esentations)f Fp(using)28 b(4)g(bits)p Fm(.)f(I)o(f)22
b(it)f(is)g(not)h(possible)g(to)317 2487 y(wr)q(ite)f(it)g(in)g(the)g
(r)n(epr)n(esentation,)h(wr)q(ite)f(N/A.)317 2637 y Fn(Answ)o(er)r(:)27
b Fm(T)-9 b(o)24 b(conver)q(t)e(a)g(v)o(alue)g(fr)o(om)i(base)e(10)g
(to)h(ex)o(cess)f(r)n(epr)n(esentation,)i(add)f(the)f(ex)o(cess)g
(\(i.e)n(.,)317 2750 y(the)27 b(bias\))g(to)g(the)g(v)o(alue)n(,)h(and)
f(conver)q(t)g(it)h(to)f(an)g(unsigned)g(binar)r(y)h(number)-5
b(.)44 b(F)m(or)27 b(example)n(,)h(to)317 2863 y(conver)q(t)23
b(5)g(to)g(ex)o(cess)e(8,)i(add)g(8)g(to)g(5)g(to)g(get)g(13,)g(and)g
(conver)q(t)f(13)h(to)g(unsigned)h(binar)r(y)f(\(which)g(is)317
2976 y(1101\).)317 3126 y(The)f(most)g(common)g(err)o(or)h(is)f(to)g
(\003ip)h(bits)f(for)g(one)-5 b(')-10 b(s)21 b(complement)i(and)e
(\003ip)i(bits)f(and)g(add)g(1)f(for)317 3239 y(two)-6
b(')c(s)24 b(complement.)38 b(Y)-8 b(ou)24 b(only)i(\003ip)f(bits)o(,)h
(etc)o(.)36 b(if)25 b(the)f(number)h(is)f(negative)n(.)36
b(5)24 b(is)g(not)h(negative)n(,)317 3352 y(so)c(y)o(ou)g(just)g(wr)q
(ite)g(it)g(as)f(if)h(it)g(w)o(er)n(e)g(unsigned.)p 1157
3522 1843 4 v 1155 3804 4 283 v 1207 3719 a(S)n(igned)h(M)o(agnitude)p
2004 3804 V 451 w(0101)p 2998 3804 V 1157 3807 1843 4
v 1155 4090 4 283 v 1248 4005 a(1')-10 b(s)21 b(C)o(omplement)p
2004 4090 V 492 w(0101)p 2998 4090 V 1157 4093 1843 4
v 1155 4375 4 283 v 1248 4291 a(2')-10 b(s)21 b(C)o(omplement)p
2004 4375 V 492 w(0101)p 2998 4375 V 1157 4379 1843 4
v 1155 4661 4 283 v 1413 4576 a(E)o(x)o(cess)f(8)p 2004
4661 V 656 w(1101)p 2998 4661 V 1157 4664 1843 4 v 1155
4947 4 283 v 1379 4862 a(E)o(x)o(cess)g Fl(\000)p Fg(3)p
2004 4947 V 622 w Fm(0010)p 2998 4947 V 1157 4950 1843
4 v 1941 5497 a(4)p eop
%%Page: 5 5
5 4 bop 90 119 a Fn(1.8)46 b Fm(\(4)21 b(pts\))g(W)l(r)q(ite)h
Fl(\000)p Fg(8)902 133 y Fi(10)998 119 y Fm(in)f(the)g(follo)m(wing)j
(r)n(epr)n(esentations)f Fp(using)28 b(4)g(bits)p Fm(.)f(I)o(f)22
b(it)f(is)g(not)h(possible)g(to)317 232 y(wr)q(ite)f(it)g(in)g(the)g(r)
n(epr)n(esentation,)h(wr)q(ite)f(N/A.)317 382 y Fn(Answ)o(er)r(:)29
b Fm(N)m(otice)24 b(it)n(')-10 b(s)24 b(not)f(possible)h(to)g(r)n(epr)n
(esent)g(-8)e(in)i(all)f(the)g(r)n(epr)n(esentations)i(\(using)e(4)g
(bits)o(,)317 495 y(that)d(is\))f(ex)o(cept)g(in)h(2')-10
b(s)20 b(complement)g(and)f(ex)o(cess)f(8.)25 b(F)m(or)20
b(one)-5 b(')-10 b(s)19 b(complement)h(and)g(signed)g(mag-)317
608 y(nitude)n(,)i(the)f(r)o(ange)g(of)f(v)o(alues)h(is)f(betw)o(een)h
(-7)f(and)h(7,)g(inclusive)n(.)317 758 y(F)m(or)i(ex)o(cess)d(8,)j
(adding)g(8)g(to)f(-8)g(r)n(esults)g(in)h(0.)30 b(C)o(onver)q(t)23
b(0,)f(as)g(if)g(it)h(w)o(er)n(e)f(unsigned)h(binar)r(y)g(r)n(esults)
317 871 y(in)e(0000.)317 1021 y(F)m(or)h(ex)o(cess)f(-3,)h(add)g(-3)g
(to)g(-8)g(to)h(get)f(-11.)29 b(S)n(ince)23 b(the)f(number)h(is)e
(negative)n(,)i(y)o(ou)f(ar)n(e)g(outside)h(the)317 1134
y(r)o(ange)17 b(of)h(v)o(alid)g(v)o(alues)e(for)i(ex)o(cess)d(-3)i
(\(after)g(adding,)i(the)e(ex)o(cess)o(,)f(the)h(v)o(alue)g(should)h
(lie)g(betw)o(een)317 1247 y(0000)j(and)g(1111,)g(or)h(0)e(and)h(15,)g
(and)f(-11)h(is)f(outside)i(that)f(r)o(ange\).)p 1168
1417 1821 4 v 1166 1700 4 283 v 1218 1615 a(S)n(igned)h(M)o(agnitude)p
2015 1700 V 452 w(N/A)p 2987 1700 V 1168 1703 1821 4
v 1166 1985 4 283 v 1259 1900 a(1')-10 b(s)21 b(C)o(omplement)p
2015 1985 V 493 w(N/A)p 2987 1985 V 1168 1988 1821 4
v 1166 2271 4 283 v 1259 2186 a(2')-10 b(s)21 b(C)o(omplement)p
2015 2271 V 481 w(1000)p 2987 2271 V 1168 2274 1821 4
v 1166 2556 4 283 v 1424 2472 a(E)o(x)o(cess)f(8)p 2015
2556 V 645 w(0000)p 2987 2556 V 1168 2560 1821 4 v 1166
2842 4 283 v 1390 2757 a(E)o(x)o(cess)g Fl(\000)p Fg(3)p
2015 2842 V 623 w Fm(N/A)p 2987 2842 V 1168 2845 1821
4 v 90 3058 a Fn(1.9)46 b Fm(\(3)20 b(pts\))h(D)o(e\002ne)g(o)m(ver)q
(\003o)m(w)-7 b(.)26 b(That)21 b(is)o(,)f(explain)i(what)e(o)m(ver)q
(\003o)m(w)h(MEANS,)f(not)i(ho)m(w)f(to)g(detect)g(it.)317
3208 y Fn(Answ)o(er)r(:)k Fm(Over)q(\003o)m(w)d(occurs)f(when)g(the)h
(r)n(esult)f(of)h(an)f(oper)o(ation)i(pr)o(oduces)f(a)f(v)o(alue)g
(that)g(is)h(out-)317 3321 y(side)f(the)g(r)o(ange)f(of)h(the)g(r)n
(epr)n(esentation.)317 3472 y(F)m(or)31 b(example)n(,)h(a)e(carr)r(y)g
(out)h(of)g(1)f(does)g(not)i(de\002ne)e(o)m(ver)q(\003o)m(w)-7
b(.)55 b(I)n(t)30 b(is)h(used)f(to)g(detect)h(o)m(ver)q(\003o)m(w)317
3585 y Fk(when)21 b(adding)g(two)f Fj(k)s Fk(-bit)f(integer)i(v)o
(alues)g(in)f(unsigned)h(r)n(epr)n(esentation)p Fm(.)j(This)d(is)f(a)f
(way)h(to)g Fk(detect)317 3697 y Fm(o)m(ver)q(\003o)m(w)i(\(for)f(the)f
(r)n(epr)n(esentation\),)i(but)g(is)e(not)i(a)e(de\002nition)j(what)d
(o)m(ver)q(\003o)m(w)h(is)n(.)1941 5497 y(5)p eop
%%Page: 6 6
6 5 bop 90 119 a Fn(1.10)46 b Fm(\(4)19 b(pts\))g(S)o(omeone)h(pr)o(o)m
(vides)i(y)o(ou)e(the)g(follo)m(wing)i(function)f(which)f(does)g(ar)q
(ithmetic)g(with)g Fc(float)317 232 y Fm(v)o(alues)e(\(32)g(bits\).)25
b(This)18 b(function)i(per)q(for)q(ms)e(add,)g(subtr)o(act,)h(and)f
(multiply)i(oper)o(ations)f(in)f(some)317 345 y(sequence)f(with)h(the)f
(ar)o(guments)o(,)i(though)g(y)o(ou)g(don)-7 b(')g(t)18
b(kno)m(w)g(in)h(which)f(or)n(der)-5 b(.)25 b(I)n(t)17
b(r)n(etur)q(ns)h(a)f Fc(float)317 458 y Fm(v)o(alue)n(.)412
571 y Fc(float)46 b(doStuff\()g(float)g(x,)h(float)g(y)g(\))g(;)317
721 y Fm(W)-6 b(e)19 b(want)f(to)h(use)f(this)h(function)h(with)f
Fc(int)f Fm(v)o(alues)o(,)g(and)h(to)g(do)g(so)g(b)n(y)f(casting)h(fr)o
(om)h Fc(int)d Fm(to)i Fc(float)p Fm(.)317 834 y(F)m(or)i(example)n(,)
508 964 y Fc(int)47 b(j)h(=)f(3,)g(k)h(=)f(4)h(;)508
1077 y(int)f(result)604 1190 y(=)g(static_cast\()c(doStuff\()j
(static_cast\()c(j)48 b(\),)1988 1303 y(static_cast\()42
b(k)48 b(\))f(\))h(\))f(;)317 1433 y Fm(Does)27 b(casting)i(to)f
(\003oat)g(and)g(back)f(to)h(int)h(cause)e(any)g(pr)o(oblems)i(for)g
(any)e(arbitr)o(ar)r(y)-8 b(,)31 b(but)d(v)o(alid,)317
1546 y(v)o(alues)j(of)g Fj(j)37 b Fm(and)31 b Fj(k)j
Fm(\(answ)o(er)d(YES,)h(if)f(it)h(does)o(,)i(and)d(NO)h(if)f(it)h(does)
f(not\).)58 b(Assume)30 b(a)g(wor)o(king)317 1659 y(compiler)22
b(that)f(does)g(casting)g(corr)n(ectly)-9 b(.)27 b(EXPL)q(AIN)19
b(for)j(full)f(cr)n(edit.)317 1810 y Fn(Answ)o(er)r(:)27
b Fm(N)m(o)l(.)32 b(32)23 b(bits)g(ar)n(e)f(used)g(to)h(r)n(epr)n
(esent)g(two)-6 b(')c(s)22 b(complement)i(signed)f(int)g(and)g(32)f
(bits)h(ar)n(e)317 1922 y(also)31 b(used)g(to)h(r)n(epr)n(esent)f(a)g
(\003oat)g(\(using)h(IEEE)f(754)g(single)h(pr)n(ecision\).)58
b(F)o(loat)32 b(v)o(alues)e(can)h(be)317 2035 y(much)25
b(lar)o(ger)h(than)f(int)h(v)o(alues)n(.)38 b(H)m(o)m(w)o(ever)-5
b(,)25 b(since)g(ther)n(e)g(ar)n(e)f(exactly)h(as)f(many)h(\003oat)g(r)
n(epr)n(esen-)317 2148 y(tations)c(as)f(int)h(r)n(epr)n(esentations)g
(\()p Fg(2)1604 2115 y Fi(32)1700 2148 y Fm(v)o(alues\),)e(ther)n(e)i
(ar)n(e)f(int)h(v)o(alues)f(that)g(can)-7 b(')g(t)21
b(be)f(r)n(epr)n(esented)317 2261 y(as)26 b(\003oats)n(.)45
b(\(C)o(er)q(tainly)-8 b(,)29 b(\003oat)f(v)o(alues)e(with)i(fr)o
(actions)g(can)-7 b(')g(t)27 b(be)g(r)n(epr)n(esented)g(as)f(ints)o(,)j
(but)f(since)317 2374 y(w)o(e)22 b(ar)n(e)g(consider)q(ing)i(int)f(v)o
(alues)e(conver)q(ted)h(to)h(\003oats)f(and)g(using)h(add,)g(subtr)o
(act)f(and)g(multiply)317 2487 y(oper)o(ations)o(,)g(w)o(e)f(don)-7
b(')g(t)22 b(have)d(deal)i(with)g(that)g(case\).)317
2637 y(I)n(n)f(par)q(ticular)-5 b(,)21 b(if)f(an)g(int)h(has)e(mor)n(e)
h(than)g(24)h(signi\002cant)g(bits)g(\(23)f(bits)g(for)h(the)f(fr)o
(action,)h(1)f(bit)h(for)317 2750 y(the)k(hidden)h(bit\),)h(it)e(can)-7
b(')g(t)26 b(be)e(r)n(epr)n(esented)i(in)f(IEEE)g(754)g(single)h(pr)n
(ecision,)h(since)e(not)h(enough)317 2863 y(bits)c(ar)n(e)e(av)o
(ailable)h(in)g(the)g(mantissa,)e(thus)i(some)f(err)o(or)j(is)d(intr)o
(oduced)k(when)c(conver)q(ting)i(such)317 2976 y(an)f(int)g(to)g(a)f
(\003oat,)h(and)g(that)g(err)o(or)h(would)g(continue)g(as)d(y)o(ou)j
(conver)q(t)e(the)h(\003oat)g(back)f(to)i(an)e(int.)1941
5497 y(6)p eop
%%Page: 7 7
7 6 bop 90 119 a Fn(1.11)46 b Fm(\(4)29 b(pts\))h(Which)h(CA)-6
b(TEGOR)l(Y)30 b(\(hint:)45 b(ther)n(e)30 b(ar)n(e)g(5)g(of)g(them\))f
(do)i(the)f(follo)m(wing)i(32)e(bit)h(\003oating)317
232 y(point)22 b(v)o(alues)f(belong?)317 419 y Fn(\(a\))47
b Fm(0)20 b(1111)h(1111)h(0000)f(0000)g(0000)g(0000)g(0000)g(000)517
549 y Fn(Answ)o(er)r(:)j Fm(\(P)m(ositive\))c(in\002nity)-9
b(.)28 b(\(E)o(xponent)22 b(is)f(all)g(1')-10 b(s)o(,)20
b(sign)i(bit)f(is)g(0,)f(and)h(fr)o(action)h(is)f(all)f(0')-10
b(s\).)317 695 y Fn(\(b\))46 b Fm(0)21 b(1111)g(1111)g(0011)g(0000)g
(0000)h(0000)f(0000)g(000)517 825 y Fn(Answ)o(er)r(:)i
Fm(N)m(aN)18 b(\(not)i(a)e(number\).)25 b(\(E)o(xponent)20
b(is)f(all)g(1')-10 b(s)o(,)19 b(sign)g(bit)h(is)e(0,)i(and)e(fr)o
(action)i(is)f(NO)m(T)517 938 y(all)i(0')-10 b(s\).)317
1084 y Fn(\(c\))46 b Fm(0)21 b(0000)g(0001)g(0011)g(0000)g(0000)h(0000)
f(0000)g(000)517 1213 y Fn(Answ)o(er)r(:)j Fm(N)m(or)q(maliz)o(ed.)j
(\(E)o(xponent)22 b(is)e(not)i(all)f(1')-10 b(s)o(,)20
b(nor)i(all)f(0')-10 b(s\))317 1359 y Fn(\(d\))46 b Fm(0)21
b(1000)g(0000)g(0000)g(0000)g(0000)h(0000)f(0000)g(000)517
1489 y Fn(Answ)o(er)r(:)j Fm(N)m(or)q(maliz)o(ed.)j(\(E)o(xponent)22
b(is)e(not)i(all)f(1')-10 b(s)o(,)20 b(nor)i(all)f(0')-10
b(s\))317 1635 y Fn(\(e\))46 b Fm(0)21 b(0000)g(0000)g(1111)g(0000)h
(0000)f(0000)g(0000)g(000)517 1764 y Fn(Answ)o(er)r(:)j
Fm(D)o(enor)q(maliz)o(ed.)j(\(E)o(xponent)22 b(is)e(all)h(0')-10
b(s)o(,)21 b(but)g(fr)o(action)h(is)f(NO)m(T)g(all)g(0')-10
b(s\))90 1952 y Fn(1.12)46 b Fm(\(3)20 b(pts\))h(C)o(onver)q(t)f
Fp(-17.5)h Fm(to)h(IEEE)e(single)h(pr)n(ecision.)28 b(Label)20
b(bits)h(clearly)g(\(sign)g(bit,)g(etc\).)317 2102 y
Fn(Answ)o(er)r(:)k Fm(T)-9 b(o)21 b(conver)q(t,)h(y)o(ou)f(conver)q(t)g
(the)h(integer)f(par)q(t)g(\002rst)h(\(to)f(10001\),)h(then)f(the)g(fr)
o(action)i(par)q(t)317 2215 y(\(to)e(0.1\),)g(and)g(add)f(to)i(get)e
Fg(10001)p Fj(:)p Fg(1)p Fm(.)317 2366 y(Then,)33 b(wr)q(ite)d(this)h
(in)f(scienti\002c)h(notation)h(\(which)e(means)f(y)o(ou)i(need)f(a)f
(single)i(bit)f(left)h(of)f(the)317 2478 y(r)o(adix)22
b(point\):)27 b Fg(1)p Fj(:)p Fg(00011)c Fl(\002)d Fg(2)1302
2445 y Fi(4)1337 2454 y Fa(10)1407 2478 y Fm(.)317 2629
y(The)26 b(exponent)g(needs)e(to)i(be)f(conver)q(ted)g(to)h(ex)o(cess)e
(127,)i(so)g(y)o(ou)f(add)h(127)f(to)h(4)f(to)h(get)f(131.)39
b(T)-9 b(o)317 2742 y(conver)q(t)18 b(131,)h(it)n(')-10
b(s)19 b(easiest)d(to)j(see)d(this)j(as)d Fg(131)27 b(=)e(128)9
b(+)g(3)p Fm(.)25 b(128)19 b(in)f(binar)r(y)g(is)g Fg(10000000)p
Fm(.)28 b(3)18 b(in)g(binar)r(y)317 2855 y(is)j Fg(00000011)p
Fm(.)29 b(A)o(dd)21 b(the)f(two)h(to)h(get)e Fg(10000011)p
Fm(.)317 3005 y(S)o(o)l(,)e(the)e(sign)g(bit)g(is)g(0,)h(the)e
(exponent)i(is)f(1000)g(0011)g(and)g(the)g(fr)o(action)h(is)f
Fg(0001100000000000)q(00)q(00)q(00)q(0)p Fm(.)317 3155
y(The)21 b(\002nal)g(answ)o(er)f(\(wr)q(itten)i(as)d(sign)i(bit,)h
(exponent,)g(fr)o(action\))g(is)e(wr)q(itten)h(as:)317
3305 y(0)g(1000)g(0011)g(0001)g(1000)h(0000)f(0000)g(0000)g(000)317
3456 y(N)m(otice)h(that)f(the)f(hidden)i(1)f(is)f(not)i(r)n(epr)n
(esented.)1941 5497 y(7)p eop
%%Page: 8 8
8 7 bop 90 119 a Fn(1.13)46 b Fm(\(3)20 b(pts\))h(Assume)e(the)h(follo)
m(wing)k(r)n(epr)n(esentation)e(for)f(\003oating)h(point:)426
307 y Fl(\017)46 b Fm(N)m(o)21 b(sign)g(bit)h(\(numbers)f(ar)n(e)f
(non-negative\))426 453 y Fl(\017)46 b Fm(3)21 b(bits)g(used)f(to)i(r)n
(epr)n(esent)f(the)f(mantissa/signi\002cand)426 599 y
Fl(\017)46 b Fm(N)m(o)21 b(hidden)h(1)426 745 y Fl(\017)46
b Fm(3)21 b(bits)g(used)f(to)i(r)n(epr)n(esent)f(the)f(exponent)i
(\(assume)d(r)n(epr)n(esentation)j(is)f(unsigned\).)317
933 y(Y)-8 b(ou)18 b(want)f(to)h(multiply)h Fg(1)p Fj(:)p
Fg(01)1336 947 y Fi(2)1383 933 y Fl(\002)6 b Fg(2)1505
900 y Fi(2)1540 909 y Fa(10)1627 933 y Fm(b)n(y)18 b
Fg(1)p Fj(:)p Fg(11)1903 947 y Fi(2)1950 933 y Fl(\002)6
b Fg(2)2072 900 y Fi(3)2107 909 y Fa(10)2177 933 y Fm(.)24
b(B)o(oth)19 b(numbers)e(ar)n(e)g(wr)q(itten)h(in)g(the)f(desir)n(ed)
317 1045 y(r)n(epr)n(esentation)h(\(i.e)n(.,)f(use)f(3)g(bits)h(for)f
(number)-5 b(,)18 b(etc\).)23 b(What)17 b(is)f(the)g(answ)o(er)g(in)h
(scienti\002c)g(notation)317 1158 y(using)k(the)f(abo)m(ve)g(constr)o
(aints?)27 b(\(N)m(ote:)f(the)20 b(v)o(alues)g(sho)m(wn)g(earlier)h(ar)
n(e)f(in)h(scienti\002c)g(notation\).)317 1271 y(Assume)e(tr)q
(uncation)k(is)d(used.)317 1422 y Fn(Answ)o(er)r(:)30
b Fm(This)24 b(is)g(mer)n(ely)g(multiplication.)39 b(All)24
b(the)g(infor)q(mation)h(pr)o(o)m(vided)i(is)c(something)i(of)f(a)317
1534 y(smoke)c(scr)n(een.)317 1685 y(I)n(n)26 b(or)n(der)h(to)f
(multiply)h(\003oating)h(point)f(numbers)o(,)g(multiply)g(the)f
(mantissa)f(\002rst)h(\(i.e)n(.,)h(multiply)317 1798
y Fg(1)p Fj(:)p Fg(01)477 1812 y Fi(2)539 1798 y Fm(to)21
b Fg(1)p Fj(:)p Fg(11)p Fm(\).)27 b(The)21 b(r)n(esult)g(is:)k
Fg(10)p Fj(:)p Fg(0011)p Fm(.)317 1948 y(Then,)k(add)e(the)f(exponents)
i(\(r)n(ecall)f(that)f(multiplying)j Fj(a)2408 1915 y
Fh(b)2469 1948 y Fm(to)e Fj(a)2627 1915 y Fh(c)2689 1948
y Fm(r)n(esults)f(in)i Fj(a)3144 1915 y Fh(b)p Fi(+)p
Fh(c)3264 1948 y Fm(.)43 b(The)27 b(r)n(esult)g(is)317
2061 y Fg(2)362 2028 y Fi(5)397 2037 y Fa(10)467 2061
y Fm(.)317 2211 y(S)o(o)21 b(far)-5 b(,)20 b(the)h(number)g(is:)26
b Fg(10)p Fj(:)p Fg(0011)d Fl(\002)d Fg(2)1665 2178 y
Fi(5)1700 2187 y Fa(10)1770 2211 y Fm(.)317 2361 y(This)30
b(is)f(not)h(y)o(et)g(nor)q(maliz)o(ed.)52 b(Y)-8 b(ou)30
b(need)f(to)h(mo)m(ve)f(the)g(r)o(adix)h(point)h(so)e(that)g(only)h(a)f
(single)h(1)317 2474 y(appears)22 b(left)h(of)f(the)h(r)o(adix)g
(point.)33 b(This)23 b(r)n(equir)n(es)g(mo)m(ving)h(the)e(r)o(adix)h
(point)h(left)f(b)n(y)f(1)h(bit.)32 b(S)n(ince)317 2587
y(the)27 b(mantissa)f(\(or)h(signi\002cand\))h(has)e(decr)n(eased,)i(y)
o(ou)g(must)e(incr)n(ease)h(the)f(exponent)i(b)n(y)f(1,)h(to)317
2700 y(get:)e Fg(1)p Fj(:)p Fg(00011)d Fl(\002)d Fg(2)946
2667 y Fi(6)981 2676 y Fa(10)1051 2700 y Fm(.)317 2850
y(F)o(inally)-8 b(,)22 b(since)f(only)g(3)g(bits)g(ar)n(e)f(used)g(in)i
(the)e(r)n(epr)n(esentation,)j(w)o(e)d(tr)q(uncate)h(the)f(r)n(esult)h
(to)h(3)e(bits)n(.)317 3001 y(The)h(\002nal)g(answ)o(er)f(is:)26
b Fg(1)p Fj(:)p Fg(00)c Fl(\002)e Fg(2)1450 2968 y Fi(6)1485
2977 y Fa(10)1555 3001 y Fm(.)90 3188 y Fn(1.14)46 b
Fm(\(2)24 b(pts\))h(O)o(ther)h(than)f(ASCII,)f(name)g(another)h
(\(common\))h(r)n(epr)n(esentation)g(for)f(char)o(acters)n(.)38
b(D)o(e-)317 3301 y(scr)q(ibe)21 b(any)f(facts)g(y)o(ou)i(kno)m(w)f
(about)g(this)g(r)n(epr)n(esentation)h(\(one)f(fact)f(is)h(\002ne\).)
317 3451 y Fn(Answ)o(er)r(:)j Fm(U)l(nicode)n(.)j(I)n(t)20
b(uses)g(16)h(bits)g(to)g(r)n(epr)n(esent)g(a)f(char)o(acter)-5
b(.)25 b(\(Also)c(used)f(to)h(r)n(epr)n(esent)g(char)n(-)317
3564 y(acters)f(in)i(J)m(av)o(a\).)317 3715 y(O)o(ther)h(answ)o(ers)d
(include)i(EBCDIC)f(and)g(v)o(ar)q(ious)h(UTF)f(r)n(epr)n(esentations)n
(.)29 b(U)l(nicode)22 b(is)g(the)f(most)317 3828 y(common.)1941
5497 y(8)p eop
%%Page: 9 9
9 8 bop 90 119 a Fd(Q)o(uiz)21 b(2)g(\(C)o(ombinational)h(Logic\):)27
b(\223C)o(onjunction)21 b(J)l(unction)-6 b(\224)21 b(\(40)g(points\))p
462 268 3007 4 v 460 550 4 283 v 611 466 a Fm(N)m(ame)p
1005 550 V 3467 550 V 462 554 3007 4 v 460 836 4 283
v 512 751 a(S)n(tudent)g(ID)p 1005 836 V 3467 836 V 462
839 3007 4 v 90 1062 a Fn(2.1)46 b Fm(\(3)20 b(pts\))h(C)o
(ombinational)i(logic)f(cir)n(cuits)g(implement)f(what)f(mathematical)h
(abstr)o(action?)317 1212 y Fn(Answ)o(er)r(:)40 b Fm(B)o(oolean)29
b(functions)i(\(see)d(next)h(question,)j(wher)n(e)c(it)i(tells)f(y)o
(ou)h(the)f(answ)o(er\).)50 b(T)-7 b(r)q(uth)317 1325
y(tables)21 b(also)f(acceptable)n(.)90 1513 y Fn(2.2)46
b Fm(\(5)20 b(pts\))h(A)f(NAND)891 1527 y Fi(3)930 1513
y Fm(-gate)g(implements)h(the)f(B)o(oolean)i(function)g
Fj(f)10 b Fg(\()p Fj(w)r(;)15 b(x;)g(y)s Fg(\))26 b(=)f(\()p
Fj(w)r(xy)s Fg(\))3291 1480 y Fb(0)317 1663 y Fm(I)n(mplement)g(this)g
(cir)n(cuit)h(using)f(as)e(FE)o(W)i(NAND)2113 1677 y
Fi(2)2176 1663 y Fm(\(2-inputs\))g(gates)f(as)f(needed.)37
b(Label)24 b(inputs)317 1776 y(as)h Fj(w)r Fm(,)i Fj(x)p
Fm(,)g Fj(y)h Fm(\(dr)o(aw)d(cir)n(cle)i(ar)o(ound)g(each)d(input)j(v)o
(ar)q(iables\))e(and)h(label)f(output)i(as)e Fj(z)k Fm(\(dr)o(aw)d(a)f
(bo)n(x)317 1889 y(ar)o(ound)d(the)f Fj(z)t Fm(\).)317
2039 y Fn(Answ)o(er)r(:)48 b Fm(The)34 b(key)f(to)h(this)g(is)g(to)g(r)
n(ealiz)o(e)g(that)g(NAND)f(is)g(not)i(associative)n(.)64
b(Y)-8 b(ou)34 b(can)-7 b(')g(t)34 b(put)g(2)317 2152
y(NAND)588 2166 y Fi(2)648 2152 y Fm(gates)19 b(together)j(\(like)f(y)o
(ou)g(can)f(with)i(two)f(AND)2366 2166 y Fi(2)2425 2152
y Fm(gates\))f(to)h(get)g(a)f(NAND)3279 2166 y Fi(3)3338
2152 y Fm(gate)n(.)317 2303 y(H)m(er)n(e)-5 b(')-10 b(s)20
b(the)h(cir)n(cuit:)311 2403 y
26105517 8875873 0 0 37561384 12893224 startTexFig
311 2403 a
%%BeginDocument: Figs2/nand3.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: nand3.eps
%%Creator: fig2dev Version 3.2 Patchlevel 3c
%%CreationDate: Sun Nov 3 17:18:38 2002
%%For: clin@chexmix (Charles Lin,1127 AVW,(301) 405-2709,,)
%%BoundingBox: 0 0 571 196
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 196 moveto 0 0 lineto 571 0 lineto 571 196 lineto closepath clip newpath
-10.0 226.0 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/DrawEllipse {
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y tr xrad yrad sc 0 0 1 startangle endangle arc
closepath
savematrix setmatrix
} def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
%%Page: 1 1
10 setmiterlimit
0.06000 0.06000 sc
%
% Fig objects follow
%
/Times-Roman ff 480.00 scf sf
7575 2850 m
gs 1 -1 sc (z = \(wxy\)') col0 sh gr
/Times-Roman ff 480.00 scf sf
4500 1575 m
gs 1 -1 sc (wx) col0 sh gr
/Times-Roman ff 480.00 scf sf
2325 1125 m
gs 1 -1 sc (\(wx\)') col0 sh gr
/Times-Roman ff 480.00 scf sf
375 2175 m
gs 1 -1 sc (x) col0 sh gr
/Times-Roman ff 480.00 scf sf
375 3150 m
gs 1 -1 sc (y) col0 sh gr
/Times-Roman ff 480.00 scf sf
375 1500 m
gs 1 -1 sc (w) col0 sh gr
% Polyline
7.500 slw
n 7350 2400 m 7875 2400 l 7875 3000 l 7350 3000 l
cp gs col0 s gr
% Polyline
n 1200 525 m 6825 525 l 6825 3750 l 1200 3750 l
cp gs col0 s gr
% Polyline
n 3075 1800 m
2700 1800 l gs col0 s gr
% Polyline
n 3300 1425 m 3075 1425 l 3075 2250 l
3300 2250 l gs col0 s gr
% Polyline
n 6600 2700 m
7350 2700 l gs col0 s gr
% Polyline
n 5400 3000 m
750 3000 l gs col0 s gr
% Polyline
n 4500 1800 m 4800 1800 l 4800 2400 l
5400 2400 l gs col0 s gr
% Polyline
n 750 2100 m
1500 2100 l gs col0 s gr
% Polyline
n 750 1500 m
1500 1500 l gs col0 s gr
% Ellipse
n 450 3000 270 270 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 450 2100 270 270 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 525 1350 270 270 0 360 DrawEllipse gs col0 s gr
% Polyline
n 3900 1200 m 3300 1200 l 3300 2400 l
3900 2400 l gs col0 s gr
% Ellipse
n 4425 1800 106 106 0 360 DrawEllipse gs col0 s gr
% Arc
n 3607.5 1800.0 667.5 -64.0 64.0 arc
gs col0 s gr
% Polyline
n 6000 2100 m 5400 2100 l 5400 3300 l
6000 3300 l gs col0 s gr
% Ellipse
n 6525 2700 106 106 0 360 DrawEllipse gs col0 s gr
% Arc
n 5707.5 2700.0 667.5 -64.0 64.0 arc
gs col0 s gr
% Polyline
n 2100 1200 m 1500 1200 l 1500 2400 l
2100 2400 l gs col0 s gr
% Ellipse
n 2625 1800 106 106 0 360 DrawEllipse gs col0 s gr
% Arc
n 1807.5 1800.0 667.5 -64.0 64.0 arc
gs col0 s gr
$F2psEnd
rs
%%EndDocument
endTexFig
1941 5497 a Fm(9)p eop
%%Page: 10 10
10 9 bop 90 119 a Fn(2.3)46 b Fm(\(5)20 b(pts\))h(I)n(mplement)g(a)f
(NAND)1361 133 y Fi(2)1399 119 y Fm(-gate)g(\(2-input\))i(using)f(as)e
(few)h(NOR)2738 133 y Fi(2)2798 119 y Fm(gates)g(as)g(necessar)r(y)-9
b(.)784 240 y
18646798 5780504 0 0 37627166 12038062 startTexFig
784 240 a
%%BeginDocument: Figs2/nor2.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: nor2.eps
%%Creator: fig2dev Version 3.2 Patchlevel 3c
%%CreationDate: Mon Nov 4 02:02:35 2002
%%For: clin@chexmix (Charles Lin,1127 AVW,(301) 405-2709,,)
%%BoundingBox: 0 0 572 183
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 183 moveto 0 0 lineto 572 0 lineto 572 183 lineto closepath clip newpath
-28.0 258.0 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/DrawEllipse {
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y tr xrad yrad sc 0 0 1 startangle endangle arc
closepath
savematrix setmatrix
} def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
%%Page: 1 1
10 setmiterlimit
0.06000 0.06000 sc
%
% Fig objects follow
%
% Polyline
7.500 slw
n 2250 1500 m 1650 1500 l 1650 2175 l
2250 2175 l gs col0 s gr
% Polyline
n 2250 3300 m 1650 3300 l 1650 3975 l
2250 3975 l gs col0 s gr
% Polyline
n 1650 1800 m
1125 1800 l gs col0 s gr
% Polyline
n 1650 3600 m
1125 3600 l gs col0 s gr
% Polyline
n 3900 1875 m 4200 1875 l 4200 2400 l
4875 2400 l gs col0 s gr
% Polyline
n 4950 3000 m 4200 3000 l 4200 3675 l
3900 3675 l gs col0 s gr
% Polyline
n 6600 2775 m
6825 2775 l gs col0 s gr
% Polyline
n 7425 2475 m 6825 2475 l 6825 3150 l
7425 3150 l gs col0 s gr
% Polyline
n 9075 2850 m
9375 2850 l gs col0 s gr
% Polyline
n 9450 2550 m 9975 2550 l 9975 3150 l 9450 3150 l
cp gs col0 s gr
/Times-Roman ff 480.00 scf sf
675 1950 m
gs 1 -1 sc (x) col0 sh gr
/Times-Roman ff 480.00 scf sf
675 3750 m
gs 1 -1 sc (y) col0 sh gr
/Times-Roman ff 480.00 scf sf
4200 1725 m
gs 1 -1 sc (x') col0 sh gr
/Times-Roman ff 480.00 scf sf
4275 4050 m
gs 1 -1 sc (y') col0 sh gr
/Times-Roman ff 480.00 scf sf
6075 1950 m
gs 1 -1 sc (\(x'+y'\)' = xy) col0 sh gr
/Times-Roman ff 480.00 scf sf
8925 3825 m
gs 1 -1 sc (\(xy\)') col0 sh gr
/Times-Roman ff 480.00 scf sf
9600 3000 m
gs 1 -1 sc (z) col0 sh gr
% Ellipse
n 750 3630 270 270 0 360 DrawEllipse gs col0 s gr
% Arc
n 2315.0 2912.5 1651.6 -97.5 -38.9 arc
gs col0 s gr
% Arc
n 2156.2 440.6 2035.2 44.8 91.6 arc
gs col0 s gr
% Arc
n 975.0 1875.0 1275.0 -28.1 28.1 arc
gs col0 s gr
% Ellipse
n 3750 1875 150 150 0 360 DrawEllipse gs col0 s gr
% Arc
n 2315.0 4712.5 1651.6 -97.5 -38.9 arc
gs col0 s gr
% Arc
n 2156.2 2240.6 2035.2 44.8 91.6 arc
gs col0 s gr
% Arc
n 975.0 3675.0 1275.0 -28.1 28.1 arc
gs col0 s gr
% Ellipse
n 3750 3675 150 150 0 360 DrawEllipse gs col0 s gr
% Arc
n 5015.0 3812.5 1651.6 -97.5 -38.9 arc
gs col0 s gr
% Arc
n 4856.2 1340.6 2035.2 44.8 91.6 arc
gs col0 s gr
% Arc
n 3675.0 2775.0 1275.0 -28.1 28.1 arc
gs col0 s gr
% Ellipse
n 6450 2775 150 150 0 360 DrawEllipse gs col0 s gr
% Arc
n 7490.0 3887.5 1651.6 -97.5 -38.9 arc
gs col0 s gr
% Arc
n 7331.2 1415.6 2035.2 44.8 91.6 arc
gs col0 s gr
% Arc
n 6150.0 2850.0 1275.0 -28.1 28.1 arc
gs col0 s gr
% Ellipse
n 8925 2850 150 150 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 750 1875 270 270 0 360 DrawEllipse gs col0 s gr
$F2psEnd
rs
%%EndDocument
endTexFig
317 1163 a Fm(C)o(onver)q(ting)21 b(NAND)e(to)i(NOR)e(\(or)i(OR\))e
(usually)h(involves)f(negating)i(the)f(input)h(v)o(ar)q(iables)f(so)g
(that)317 1276 y(y)o(ou)i(can)e(take)g(adv)o(antage)g(of)h(D)o(eM)m(or)
o(gan)-7 b(')d(s)21 b(Law)-7 b(.)90 1464 y Fn(2.4)46
b Fm(\(5)25 b(pts\))g(I)n(mplement)h(a)f(cir)n(cuit)i(which)f(is)g
(equiv)o(alent)g(to)g(the)f Fp(carr)r(y)33 b(out)26 b
Fm(of)g(a)e(full)j(adder)e(using)317 1577 y(any)c(par)q(t)f
Fp(ex)o(cept)h Fm(a)f(full)i(adder)e(or)i(half)e(adder)-5
b(.)26 b(\(S)o(ee)19 b(back)h(of)h(page)g(1)f(for)i(de\002nition)h(of)e
(par)q(ts\).)317 1727 y Fn(Answ)o(er)r(:)i Fm(Any)18
b(cir)n(cuit)i(will)g(do)l(,)g(but)f(the)f(quick)g(and)h(dir)q(ty)g
(way)f(is)g(to)h(use)f(the)g(MUX)g(method.)26 b(The)317
1840 y(tr)q(uth)c(table)e(for)i(the)e(carr)r(y)h(out)g(looks)g(like:)p
1687 1985 784 4 v 1685 2098 4 113 v 1737 2064 a Fj(a)1785
2078 y Fh(i)p 1861 2098 V 1912 2064 a Fj(b)1951 2078
y Fh(i)p 2028 2098 V 2079 2064 a Fj(c)2118 2078 y Fh(i)p
2195 2098 V 2212 2098 V 2263 2064 a Fj(c)2302 2078 y
Fh(i)p Fi(+1)p 2469 2098 V 1687 2101 784 4 v 1685 2214
4 113 v 1751 2180 a Fm(0)p 1861 2214 V 123 w(0)p 2028
2214 V 119 w(0)p 2195 2214 V 2212 2214 V 181 w(0)p 2469
2214 V 1685 2327 V 1751 2293 a(0)p 1861 2327 V 123 w(0)p
2028 2327 V 119 w(1)p 2195 2327 V 2212 2327 V 181 w(0)p
2469 2327 V 1685 2440 V 1751 2406 a(0)p 1861 2440 V 123
w(1)p 2028 2440 V 119 w(0)p 2195 2440 V 2212 2440 V 181
w(0)p 2469 2440 V 1685 2553 V 1751 2519 a(0)p 1861 2553
V 123 w(1)p 2028 2553 V 119 w(1)p 2195 2553 V 2212 2553
V 181 w(1)p 2469 2553 V 1687 2556 784 4 v 1685 2669 4
113 v 1751 2635 a(1)p 1861 2669 V 123 w(0)p 2028 2669
V 119 w(0)p 2195 2669 V 2212 2669 V 181 w(0)p 2469 2669
V 1685 2782 V 1751 2748 a(1)p 1861 2782 V 123 w(0)p 2028
2782 V 119 w(1)p 2195 2782 V 2212 2782 V 181 w(1)p 2469
2782 V 1685 2895 V 1751 2861 a(1)p 1861 2895 V 123 w(1)p
2028 2895 V 119 w(0)p 2195 2895 V 2212 2895 V 181 w(1)p
2469 2895 V 1685 3008 V 1751 2974 a(1)p 1861 3008 V 123
w(1)p 2028 3008 V 119 w(1)p 2195 3008 V 2212 3008 V 181
w(1)p 2469 3008 V 1687 3011 784 4 v 317 3199 a(The)g(actual)f(cir)n
(cuit)j(is)1351 3300 y
9696335 10278113 0 0 20523909 21905326 startTexFig
1351 3300 a
%%BeginDocument: Figs2/carry_mux.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: carry_mux.eps
%%Creator: fig2dev Version 3.2 Patchlevel 3c
%%CreationDate: Mon Nov 4 02:46:57 2002
%%For: clin@chexmix (Charles Lin,1127 AVW,(301) 405-2709,,)
%%BoundingBox: 0 0 312 333
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 333 moveto 0 0 lineto 312 0 lineto 312 333 lineto closepath clip newpath
-85.0 361.0 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/reencdict 12 dict def /ReEncode { reencdict begin
/newcodesandnames exch def /newfontname exch def /basefontname exch def
/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def
basefontdict { exch dup /FID ne { dup /Encoding eq
{ exch dup length array copy newfont 3 1 roll put }
{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall
newfont /FontName newfontname put newcodesandnames aload pop
128 1 255 { newfont /Encoding get exch /.notdef put } for
newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat
newfontname newfont definefont pop end } def
/isovec [
8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde
8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis
8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron
8#220 /dotlessi 8#230 /oe 8#231 /OE
8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling
8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis
8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot
8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus
8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph
8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine
8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf
8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute
8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring
8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute
8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute
8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve
8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply
8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex
8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave
8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring
8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute
8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute
8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve
8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide
8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex
8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def
/Times-Roman /Times-Roman-iso isovec ReEncode
/DrawEllipse {
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y tr xrad yrad sc 0 0 1 startangle endangle arc
closepath
savematrix setmatrix
} def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
%%Page: 1 1
10 setmiterlimit
0.06000 0.06000 sc
%
% Fig objects follow
%
/Times-Roman-iso ff 420.00 scf sf
1425 2400 m
gs 1 -1 sc (0) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
1425 2925 m
gs 1 -1 sc (0) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
1425 3975 m
gs 1 -1 sc (0) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
1425 3450 m
gs 1 -1 sc (1) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
1425 4500 m
gs 1 -1 sc (1) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
1425 5100 m
gs 1 -1 sc (1) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
1425 5700 m
gs 1 -1 sc (1) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
3300 2625 m
gs 1 -1 sc (8-1) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
3300 3090 m
gs 1 -1 sc (MUX) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
4725 3900 m
gs 1 -1 sc (Z) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
3375 1650 m
gs 1 -1 sc (C) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
3975 1650 m
gs 1 -1 sc (C) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
4575 1650 m
gs 1 -1 sc (C) col0 sh gr
/Times-Roman-iso ff 300.00 scf sf
3675 1725 m
gs 1 -1 sc (2) col0 sh gr
/Times-Roman-iso ff 300.00 scf sf
4275 1725 m
gs 1 -1 sc (1) col0 sh gr
/Times-Roman-iso ff 300.00 scf sf
4875 1725 m
gs 1 -1 sc (0) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
3375 825 m
gs 1 -1 sc (a) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
3975 825 m
gs 1 -1 sc (b) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
4650 825 m
gs 1 -1 sc (c) col0 sh gr
/Times-Roman-iso ff 300.00 scf sf
3600 975 m
gs 1 -1 sc (i) col0 sh gr
/Times-Roman-iso ff 300.00 scf sf
4875 975 m
gs 1 -1 sc (i) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
5850 3825 m
gs 1 -1 sc (c) col0 sh gr
/Times-Roman-iso ff 300.00 scf sf
6075 3975 m
gs 1 -1 sc (i+1) col0 sh gr
/Times-Roman-iso ff 300.00 scf sf
4200 975 m
gs 1 -1 sc (i) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
1425 1725 m
gs 1 -1 sc (0) col0 sh gr
7.500 slw
% Ellipse
n 3525 750 270 270 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 4875 750 270 270 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 4125 750 270 270 0 360 DrawEllipse gs col0 s gr
% Polyline
n 2400 1200 m 5100 1200 l 5100 6000 l 2400 6000 l
cp gs col0 s gr
% Polyline
n 2400 1575 m
1800 1575 l gs col0 s gr
% Polyline
n 2400 2250 m
1800 2250 l gs col0 s gr
% Polyline
n 2400 2775 m
1800 2775 l gs col0 s gr
% Polyline
n 2400 3300 m
1800 3300 l gs col0 s gr
% Polyline
n 2400 3825 m
1800 3825 l gs col0 s gr
% Polyline
n 2400 4425 m
1800 4425 l gs col0 s gr
% Polyline
n 2400 5025 m
1800 5025 l gs col0 s gr
% Polyline
n 2400 5625 m
1800 5625 l gs col0 s gr
% Polyline
n 5100 3750 m
5700 3750 l gs col0 s gr
% Polyline
n 3525 975 m
3525 1200 l gs col0 s gr
% Polyline
n 4875 975 m
4875 1200 l gs col0 s gr
% Polyline
n 4125 975 m
4125 1200 l gs col0 s gr
% Polyline
n 5700 3450 m 6600 3450 l 6600 4125 l 5700 4125 l
cp gs col0 s gr
/Times-Roman-iso ff 420.00 scf sf
2625 1725 m
gs 1 -1 sc (0) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
2625 5775 m
gs 1 -1 sc (7) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
2625 5175 m
gs 1 -1 sc (6) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
2625 4575 m
gs 1 -1 sc (5) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
2625 2325 m
gs 1 -1 sc (1) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
2625 2925 m
gs 1 -1 sc (2) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
2625 3450 m
gs 1 -1 sc (3) col0 sh gr
/Times-Roman-iso ff 420.00 scf sf
2625 3975 m
gs 1 -1 sc (4) col0 sh gr
$F2psEnd
rs
%%EndDocument
endTexFig
317 4814 a Fm(Although)32 b(y)o(ou)g(could)g(have)d(wr)q(itten)j(a)e
(sum-of-pr)o(oducts)i(expr)n(ession)g(for)f Fj(c)3194
4828 y Fh(i)p Fi(+1)3313 4814 y Fm(,)i(in)e(an)g(exam)317
4927 y(such)21 b(as)e(this)o(,)j(quick)e(answ)o(ers)g(ar)n(e)g(usually)
h(what)f(y)o(ou)h(want.)26 b(Ther)n(e)21 b(w)o(er)n(e)f(no)i(r)n(estr)q
(ictions)g(such)317 5039 y(as)g(\223)-5 b(make)21 b(it)i(with)g(few)f
(gates)l(\224)g(or)h(\223)-5 b(make)21 b(it)i(elegant)n(\224)-12
b(.)32 b(S)o(o)22 b(this)h(is)g(an)f(ideal)h(question)g(for)g(a)f(MUX)
317 5152 y(tr)q(ick.)1917 5497 y(10)p eop
%%Page: 11 11
11 10 bop 90 119 a Fn(2.5)46 b Fm(\(5)25 b(pts\))g(Y)-8
b(ou)27 b(wish)e(to)h(implement)h(an)e(AND)1866 134 y
Fh(k)1933 119 y Fm(\(i.e)n(.,)i(a)e Fj(k)s Fm(-input)i(AND)e(gate\),)h
(but)g(all)g(y)o(ou)g(have)e(ar)n(e)317 232 y(AND)517
246 y Fi(2)584 232 y Fm(gates)k(\(as)g(many)g(as)f(y)o(ou)i(want\).)49
b(Assume)27 b(the)i(time)f(delay)g(of)h(a)f(gate)g(is)h(1)f(unit.)50
b(W)l(r)q(ite)317 345 y(a)28 b(for)q(mula)g(that)g(expr)n(esses)f(the)g
(MINIMUM)g(delay)h(for)g(an)g(implementation)h(of)f(AND)3545
360 y Fh(k)3615 345 y Fm(using)317 458 y(AND)517 472
y Fi(2)577 458 y Fm(gates)n(.)d(EXPL)q(AIN)19 b(ho)m(w)i(y)o(ou)g(came)
f(up)h(with)g(this)g(for)q(mula.)317 608 y Fn(Answ)o(er)r(:)j
Fl(d)p Fj(O)s Fg(\(lg)17 b Fj(n)p Fg(\))p Fl(e)j Fm(units)n(.)317
758 y(Essentially)-8 b(,)28 b(cr)n(eate)d(a)g(complete)i(binar)r(y)f
(tr)n(ee)g(of)g Fj(AN)10 b(D)2372 772 y Fi(2)2437 758
y Fm(gates)n(.)41 b(A)25 b(complete)h(tr)n(ee)g(is)g(made)f(b)n(y)317
871 y(star)q(ting)30 b(at)f(the)g(r)o(oot)i(and)e(\002lling)j(out)d
(the)h(AND)e(gates)g(r)o(o)m(w)j(b)n(y)e(r)o(o)m(w)-7
b(,)33 b(until)d(y)o(ou)g(have)e(enough)317 984 y(inputs)n(.)51
b(Each)28 b(additional)j(AND)1535 998 y Fi(2)1602 984
y Fm(gate)e(gives)f(y)o(ou)h(an)f(additional)j(input,)h(so)d(y)o(ou)g
(need)g Fj(n)d Fl(\000)h Fg(1)317 1097 y Fm(AND)517 1111
y Fi(2)577 1097 y Fm(gates)20 b(for)h Fj(n)f Fm(inputs)h(\(wher)n(e)g
Fj(n)j Fl(\025)h Fg(2)p Fm(\).)317 1247 y(This)c(is)g(the)g(best)f(y)o
(ou)i(can)e(do)h(since)g(y)o(ou)g(ar)n(e)g(maximally)f(using)h(all)g
(inputs)h(near)e(the)h(r)o(oot.)90 1435 y Fn(2.6)46 b
Fm(\(10)26 b(pts\))g(F)o(ill)i(out)f(the)f(follo)m(wing)j(table)n(,)f
(indicating)h(ho)m(w)e(many)f(contr)o(ol,)k(data)c(inputs)o(,)j
(outputs)317 1548 y(each)20 b(has)g(\(in)h(gener)o(al\).)317
1698 y(U)l(se)f(\224k)l(\224)g(in)h(y)o(our)h(expr)n(ession,)g(as)d
(needed.)317 1848 y Fn(Answ)o(er)r(:)27 b Fm(This)c(is)f(a)g(useful)g
(exer)n(cise)g(to)h(help)g(y)o(ou)g(lear)q(n)f(ho)m(w)h(many)f(inputs)h
(and)g(outputs)g(v)o(ar)q(i-)317 1961 y(ous)e(devices)f(have)n(.)p
319 2111 3520 4 v 317 2393 4 283 v 768 2393 V 1005 2308
a(C)o(ontr)o(ol)j(I)n(nputs)p 1841 2393 V 472 w(D)o(ata)d(inputs)p
2793 2393 V 590 w(O)o(utputs)p 3837 2393 V 319 2396 3520
4 v 317 2679 4 283 v 437 2594 a(MUX)p 768 2679 V 629
w Fj(k)p 1841 2679 V 946 w Fg(2)2319 2561 y Fh(k)p 2793
2679 V 3293 2594 a Fm(1)p 3837 2679 V 319 2682 3520 4
v 317 2964 4 283 v 378 2880 a(D)o(eMUX)p 768 2964 V 571
w Fj(k)p 1841 2964 V 966 w Fm(1)p 2793 2964 V 931 w Fg(2)3318
2847 y Fh(k)p 3837 2964 V 319 2968 3520 4 v 317 3250
4 283 v 372 3165 a Fm(Encoder)p 768 3250 V 567 w Fg(0)p
1841 3250 V 946 w(2)2319 3132 y Fh(k)p 2793 3250 V 3292
3165 a Fj(k)p 3837 3250 V 319 3253 3520 4 v 317 3535
4 283 v 369 3451 a Fm(D)o(ecoder)p 768 3535 V 564 w Fg(0)p
1841 3535 V 965 w Fj(k)p 2793 3535 V 933 w Fg(2)3318
3418 y Fh(k)p 3837 3535 V 319 3539 3520 4 v 317 3752
a Fm(This)32 b(table)f(was)f(pr)n(esented)h(in)g(class)n(.)56
b(This)32 b(assumes)d(a)h(few)h(things)n(.)57 b(F)o(irst,)34
b(it)e(assumes)d(that)317 3865 y(inputs)23 b(or)g(outputs)g(ar)n(e)f
(po)m(w)o(ers)h(of)f(2.)31 b(This)22 b(assumption)h(can)f(be)g(r)n
(elaxed)g(somewhat,)g(.)30 b(I)n(n)22 b(this)317 3977
y(case)n(,)32 b(y)o(ou)f(might)h(pr)n(efer)f(to)g(r)n(eplace)f
(quantities)h(like)f Fg(2)2396 3944 y Fh(k)2470 3977
y Fm(with)h Fj(n)e Fm(and)i(quantities)f(like)h Fj(k)i
Fm(with)317 4090 y Fl(d)p Fg(lg)17 b Fj(n)p Fl(e)p Fm(.)28
b(That)n(')-10 b(s)22 b(a)f(better)h(answ)o(er)g(\(of)f(course)n(,)i(y)
o(ou)m(')-11 b(d)23 b(wr)q(ite)f(it)g(with)g Fj(k)j Fm(since)d(y)o(ou)g
(w)o(er)n(e)g(instr)q(ucted)317 4203 y(to)f(do)h(so)l(,)f(but)g(I)f
(picked)h Fj(n)f Fm(so)h(y)o(ou)g(could)h(see)d(the)i(r)n(elationship)i
(betw)o(een)e Fj(n)f Fm(and)g Fj(k)s Fm(\).)1917 5497
y(11)p eop
%%Page: 12 12
12 11 bop 90 119 a Fn(2.7)46 b Fm(\(6)18 b(pts\))h(S)n(uppose)g(y)o(ou)
h(have)e(a)g(pr)q(ior)q(ity)j(encoder)f(with)f(four)h(inputs:)26
b Fj(x)2802 133 y Fi(3)2841 119 y Fm(,)19 b Fj(x)2936
133 y Fi(2)2976 119 y Fm(,)g Fj(x)3071 133 y Fi(1)3110
119 y Fm(,)g Fj(x)3205 133 y Fi(0)3245 119 y Fm(.)25
b(I)n(n)19 b(lectur)n(e)n(,)h(w)o(e)317 232 y(said)26
b(that)g(higher)h(indexes)f(r)n(epr)n(esent)g(higher)h(pr)q(ior)q
(ities)n(.)43 b(S)n(uppose)26 b(lo)m(w)o(er)h(indexes)f(r)n(epr)n
(esent)317 345 y(higher)c(pr)q(ior)q(ities)g(\(index)g(0)e(has)g
(highest)h(pr)q(ior)q(ity\).)317 495 y(W)l(r)q(ite)e(the)g(B)o(oolean)g
(expr)n(ession)g(for)g(the)g(outputs)g(of)g Fj(z)2292
509 y Fi(1)2349 495 y Fm(and)g Fj(z)2568 509 y Fi(0)2608
495 y Fm(,)f(wher)n(e)h Fj(z)2963 509 y Fi(1)3002 495
y Fj(z)3044 509 y Fi(0)3102 495 y Fm(r)n(epr)n(esent)g(the)g(2)f(bit)
317 608 y(subscr)q(ipt)k(of)f(the)f(input)i(with)f(the)g(highest)g(pr)q
(ior)q(ity)-9 b(.)317 758 y Fn(Answ)o(er)r(:)34 b Fm(This)26
b(is)g(per)q(haps)f(the)h(toughest)h(question)f(in)h(this)f(par)q(t)g
(of)g(the)g(exam.)40 b(H)m(o)m(w)o(ever)-5 b(,)27 b(w)o(e)317
871 y(did)20 b(do)g(an)e(example)h(in)g(class)f(of)h(this)n(.)26
b(B)o(asically)-8 b(,)19 b(this)g(is)g(what)f(y)o(ou)i(do)l(.)26
b(W)l(r)q(ite)19 b(the)g(equations)g(for)317 984 y(a)j(r)n(egular)i
(encoder)-5 b(.)32 b(Then,)24 b(modify)f(it)g(so)g(that)g(y)o(ou)g
(negate)g(liter)o(als)g(that)g(have)e(higher)j(pr)q(ior)q(ity)-8
b(,)317 1097 y(unless)20 b(that)h(liter)o(al)h(sho)m(ws)e(up)h(in)g
(the)g(expr)n(ession.)317 1247 y(F)m(or)28 b(example)n(,)g(suppose)f(y)
o(ou)h(have)e Fj(x)1707 1261 y Fi(3)1747 1247 y Fm(.)45
b(That)27 b(has)g(the)g(lo)m(w)o(est)h(pr)q(ior)q(ity)-9
b(.)48 b(S)o(o)l(,)29 b(y)o(ou)f(modify)h(it)e(to)317
1360 y Fj(x)369 1374 y Fi(3)409 1360 y Fj(x)461 1327
y Fb(0)461 1383 y Fi(2)500 1360 y Fj(x)552 1327 y Fb(0)552
1383 y Fi(1)591 1360 y Fj(x)643 1327 y Fb(0)643 1383
y Fi(0)699 1360 y Fm(which)18 b(is)e(an)h(expr)n(ession)g(that)g(is)g
(tr)q(ue)g(if)g Fj(x)2203 1374 y Fi(3)2259 1360 y Fm(has)f(the)g
(highest)i(pr)q(ior)q(ity)g(\(since)f Fj(x)3527 1374
y Fi(3)3583 1360 y Fm(would)317 1473 y(have)25 b(to)i(be)f(1,)h(and)g
Fj(x)1111 1487 y Fi(2)1150 1473 y Fm(,)g Fj(x)1253 1487
y Fi(1)1293 1473 y Fm(,)g Fj(x)1396 1487 y Fi(0)1462
1473 y Fm(would)g(have)e(to)h(be)g(0\).)42 b(H)m(o)m(w)o(ever)-5
b(,)27 b(suppose)f Fj(x)3179 1487 y Fi(1)3245 1473 y
Fm(appears)f(in)i(the)317 1586 y(expr)n(ession.)35 b(Then,)25
b(ther)n(e)-5 b(')-10 b(s)23 b(no)h(need)g(to)g(have)e
Fj(x)2102 1553 y Fb(0)2102 1609 y Fi(1)2141 1586 y Fm(.)34
b(S)o(o)l(,)25 b(y)o(ou)g(can)e(simplify)h(to)g Fj(x)3207
1600 y Fi(3)3247 1586 y Fj(x)3299 1553 y Fb(0)3299 1609
y Fi(2)3338 1586 y Fj(x)3390 1553 y Fb(0)3390 1609 y
Fi(0)3429 1586 y Fm(.)34 b(C)o(oncep-)317 1699 y(tually)-8
b(,)32 b(r)n(emo)m(ving)e(the)f(ter)q(ms)f(is)h(the)g(har)n(dest)g(par)
q(t)g(of)g(wr)q(iting)h(an)f(ef\002cient)g(pr)q(ior)q(ity)i(encoder)317
1812 y(for)q(mula.)26 b(I)o(f)21 b(y)o(ou)g(understand)h(this)o(,)f(y)o
(ou)g(ar)n(e)g(in)g(pr)n(ety)g(good)h(shape)n(.)317 1962
y(H)m(er)n(e)-5 b(')-10 b(s)20 b(a)g(table)h(for)g(a)f(r)n(egular)h
(encoder)-5 b(.)p 1507 2107 1144 4 v 1505 2220 4 113
v 1557 2186 a Fj(x)1609 2200 y Fi(3)p 1696 2220 V 1748
2186 a Fj(x)1800 2200 y Fi(2)p 1887 2220 V 1939 2186
a Fj(x)1991 2200 y Fi(1)p 2078 2220 V 2130 2186 a Fj(x)2182
2200 y Fi(0)p 2269 2220 V 2286 2220 V 2337 2186 a Fj(z)2379
2200 y Fi(1)p 2467 2220 V 2519 2186 a Fj(z)2561 2200
y Fi(0)p 2649 2220 V 1507 2223 1144 4 v 1505 2336 4 113
v 1578 2302 a Fm(0)p 1696 2336 V 143 w(0)p 1887 2336
V 143 w(0)p 2078 2336 V 143 w(1)p 2269 2336 V 2286 2336
V 155 w(0)p 2467 2336 V 134 w(0)p 2649 2336 V 1505 2449
V 1578 2415 a(0)p 1696 2449 V 143 w(0)p 1887 2449 V 143
w(1)p 2078 2449 V 143 w(0)p 2269 2449 V 2286 2449 V 155
w(0)p 2467 2449 V 134 w(1)p 2649 2449 V 1505 2562 V 1578
2528 a(0)p 1696 2562 V 143 w(1)p 1887 2562 V 143 w(0)p
2078 2562 V 143 w(0)p 2269 2562 V 2286 2562 V 155 w(1)p
2467 2562 V 134 w(0)p 2649 2562 V 1505 2675 V 1578 2641
a(1)p 1696 2675 V 143 w(0)p 1887 2675 V 143 w(0)p 2078
2675 V 143 w(0)p 2269 2675 V 2286 2675 V 155 w(1)p 2467
2675 V 134 w(1)p 2649 2675 V 1507 2678 1144 4 v 317 2866
a(N)m(otice)20 b(that)e(this)h(tr)q(uth)g(table)g(only)g(has)f(4)h(r)o
(o)m(ws)n(.)26 b(The)18 b(assumption)h(of)g(a)f(r)n(egular)h(encoder)g
(is)g(that)317 2979 y(y)o(ou)e(can)e(have)n(,)h(at)f(most,)i(one)f
(input)h(that)f(is)f(1.)24 b(Ther)n(efor)n(e)n(,)19 b(the)c(B)o(oolean)
i(equations/expr)n(essions/for)q(mula)317 3092 y(for)23
b(this)g(table)g(is)f(gener)o(ated)h(b)n(y)f(cr)n(eating)h(a)f
(simpli\002ed)i(sum-of-pr)o(oducts)g(expr)n(ession.)32
b(Again,)317 3205 y(the)24 b(sum-of-pr)o(oducts)h(can)f(be)f
(simpli\002ed)j(because)c(the)i(exactly)g(one)g(input)h(can)f(be)g(1)f
(\(other)n(-)317 3318 y(wise)n(,)e(y)o(ou)g(would)h(need)e(minter)q
(ms\).)1772 3522 y Fj(z)1814 3536 y Fi(1)1937 3522 y
Fg(=)83 b Fj(x)2143 3536 y Fi(2)2203 3522 y Fg(+)19 b
Fj(x)2345 3536 y Fi(3)1772 3660 y Fj(z)1814 3674 y Fi(0)1937
3660 y Fg(=)83 b Fj(x)2143 3674 y Fi(1)2203 3660 y Fg(+)19
b Fj(x)2345 3674 y Fi(3)317 3864 y Fm(F)n(r)o(om)25 b(this)o(,)g(y)o
(ou)g(can)f(cr)n(eate)g(the)g(pr)q(ior)q(ity)h(encoder)g(equations)f(b)
n(y)g(adding)h(negated)f(liter)o(als)h(of)317 3977 y(higher)d(pr)q(ior)
q(ity)g(to)g(each.)1590 4182 y Fj(z)1632 4196 y Fi(1)1754
4182 y Fg(=)83 b Fj(x)1960 4196 y Fi(2)2000 4182 y Fj(x)2052
4144 y Fb(0)2052 4204 y Fi(1)2091 4182 y Fj(x)2143 4144
y Fb(0)2143 4204 y Fi(0)2203 4182 y Fg(+)19 b Fj(x)2345
4196 y Fi(3)2385 4182 y Fj(x)2437 4144 y Fb(0)2437 4204
y Fi(1)2476 4182 y Fj(x)2528 4144 y Fb(0)2528 4204 y
Fi(0)1590 4319 y Fj(z)1632 4333 y Fi(0)1754 4319 y Fg(=)83
b Fj(x)1960 4333 y Fi(1)2000 4319 y Fj(x)2052 4282 y
Fb(0)2052 4342 y Fi(0)2111 4319 y Fg(+)20 b Fj(x)2254
4333 y Fi(3)2293 4319 y Fj(x)2345 4282 y Fb(0)2345 4342
y Fi(2)2385 4319 y Fj(x)2437 4282 y Fb(0)2437 4342 y
Fi(0)317 4524 y Fm(N)m(otice)33 b(that)e(in)i Fj(z)972
4538 y Fi(1)1011 4524 y Fm(,)h(ther)n(e)e(is)g(a)f(ter)q(m)g
Fj(x)1772 4538 y Fi(3)1811 4524 y Fj(x)1863 4491 y Fb(0)1863
4547 y Fi(1)1903 4524 y Fj(x)1955 4491 y Fb(0)1955 4547
y Fi(0)1994 4524 y Fm(.)58 b(The)32 b(negated)g(liter)o(al)g
Fj(x)2948 4491 y Fb(0)2948 4547 y Fi(2)3019 4524 y Fm(does)f(not)i
(appear)-5 b(.)57 b(I)n(t)317 4636 y(doesn)-7 b(')g(t)23
b(have)e(to)h(since)g Fj(x)1241 4650 y Fi(2)1302 4636
y Fm(appears)f(as)g Fj(x)1812 4650 y Fi(2)1852 4636 y
Fj(x)1904 4603 y Fb(0)1904 4660 y Fi(1)1943 4636 y Fj(x)1995
4603 y Fb(0)1995 4660 y Fi(0)2034 4636 y Fm(.)30 b(Thus)o(,)22
b(if)h Fj(x)2469 4650 y Fi(2)2530 4636 y Fm(w)o(er)n(e)f(1,)g(then)g
(that)g(ter)q(m)g(would)h(be)317 4749 y(1,)e(and)g Fj(z)631
4763 y Fi(1)691 4749 y Fm(would)g(be)g(1,)g(so)f(that)n(')-10
b(s)21 b(\002ne)n(.)317 4900 y(Again,)34 b(if)e(y)o(ou)g(follo)m(w)g
(this)o(,)i(y)o(ou)m(')-6 b(r)n(e)33 b(in)e(gr)n(eat)h(shape)n(.)56
b(This)32 b(is)f(the)g(kind)h(of)f(cir)n(cuit)i(that)e(sepa-)317
5013 y(r)o(ates)21 b(those)g(who)g(can)f(follo)m(w)j(equations)e(fr)o
(om)g(those)g(who)h(can)-7 b(')g(t.)26 b(W)o(ith)c(enough)g(time)f
(\(and)g(T)-6 b(A)317 5125 y(assistance\),)19 b(ever)r(y)o(one)i(can)f
(do)h(this)n(.)1917 5497 y(12)p eop
%%Page: 13 13
13 12 bop 90 119 a Fn(2.8)46 b Fm(\(4)20 b(pts\))h(Answ)o(er)f(the)h
(follo)m(wing)i(questions)e(about)g(encoders)n(.)317
307 y Fn(\(a\))47 b Fm(What)20 b(assumptions)o(,)h(if)g(any)-8
b(,)21 b(ar)n(e)f(made)g(about)h(the)g(inputs)g(of)g(a)f(r)n(egular)i
(encoder?)517 436 y Fn(Answ)o(er)r(:)i Fm(E)o(xactly)d(one)g(input)h
(has)e(v)o(alue)g(1)h(\(the)f(r)n(est)h(have)e(0\).)317
582 y Fn(\(b\))46 b Fm(What)21 b(assumptions)o(,)g(if)g(any)-8
b(,)20 b(ar)n(e)h(made)f(about)h(the)f(inputs)i(of)f(a)f(pr)q(ior)q
(ity)i(encoder?)517 712 y Fn(Answ)o(er)r(:)h Fm(A)o(t)17
b(least)h(one)g(input)h(has)f(v)o(alue)f(1)h(\(the)g(r)n(est)g(have)f
(0\).)24 b(N)m(ote:)h(the)18 b(r)n(eason)g(y)o(ou)h(must)517
825 y(have)29 b(at)h(least)f(one)h(input)h(with)g(v)o(alue)f(1)g(is)g
(because)f(if)h(all)g(inputs)h(w)o(er)n(e)f(0,)i(what)e(would)517
938 y(the)j(encoder)g(pr)o(oduce)h(as)d(output?)62 b(F)m(or)33
b(each)f(possible)h(input,)j(ther)n(e)d(is)f(an)g(encoding)517
1050 y(\(including)e(0\).)47 b(Thus)o(,)30 b(having)e(all)g(0')-10
b(s)27 b(would)i(have)d(the)i(same)e(pr)q(ior)q(ity)k(as)c(have)h
Fj(x)3581 1064 y Fi(0)3660 1050 y Fg(=)39 b(1)p Fm(,)517
1163 y(and)21 b(ther)n(e)g(would)g(be)g(con\003ict)h(as)e(to)h(whether)
g Fj(x)2286 1177 y Fi(0)2346 1163 y Fm(was)e(1)i(or)g(all)g(inputs)g(w)
o(er)n(e)g(0.)90 1472 y Fd(Q)o(uiz)g(3)g(\(Lo)m(w-lev)o(el)f(C)h
(functions/O)o(dds)g(and)g(Ends\):)26 b(\22310)21 b(Little)f(Endians)l
(\224)h(\(20)g(points\))p 462 1621 3007 4 v 460 1903
4 283 v 611 1818 a Fm(N)m(ame)p 1005 1903 V 3467 1903
V 462 1906 3007 4 v 460 2189 4 283 v 512 2104 a(S)n(tudent)g(ID)p
1005 2189 V 3467 2189 V 462 2192 3007 4 v 90 2415 a Fn(3.1)46
b Fm(\(4)20 b(pts\))h(The)f(follo)m(wing)k(ar)n(e)c(the)h(5)f(steps)g
(to)h(execute)g(an)f(instr)q(uction.)28 b(E)o(xplain)22
b(each)e(step)l(.)317 2565 y Fn(Answ)o(er)r(:)36 b Fm(N)m(otice)27
b(that)g(these)g(steps)f(ar)n(e)g(NO)m(T)i(the)f(same)e(as)h(the)h
(ones)g(in)g(the)g(pr)n(evious)h(exam.)317 2678 y(H)m(o)m(w)o(ever)-5
b(,)22 b(I)f(did)i(mention)g(this)f(in)g(class)f(\(which)h(is)g(why)f
(r)n(eviewing)i(class)e(notes)h(is)g(impor)q(tant\).)317
2791 y(The)f(or)n(der)h(of)f(the)g(execution)g(comes)g(fr)o(om)g(the)g
(textbook.)317 3003 y Fn(IF)46 b Fm(I)n(nstr)q(uction)22
b(fetch.)k(F)m(etch)20 b(instr)q(uction)j(fr)o(om)e(memor)r(y)-9
b(.)317 3150 y Fn(ID)45 b Fm(I)n(nstr)q(uction)23 b(D)o(ecode)n(.)j(D)o
(ecode)21 b(instr)q(uction)i(and)e(fetch)g(r)n(egister)g(oper)o(ands)g
(\(since)g(this)g(is)f(a)517 3262 y(RISC)g(ar)n(chitecutur)n(e)n(,)j
(both)e(can)g(be)f(done)i(simulateneously\).)317 3409
y Fn(AL)m(U)46 b Fm(AL)n(U)20 b(oper)o(ation.)27 b(P)m(er)q(for)q(m)20
b(the)h(oper)o(ation)h(fr)o(om)g(the)f(instr)q(uction.)317
3555 y Fn(MEM)47 b Fm(M)m(emor)r(y)23 b(oper)o(ation.)37
b(R)n(ead)23 b(data)g(fr)o(om)i(memor)r(y)-8 b(,)24 b(or)h(wr)q(ite)e
(data)h(to)g(memor)r(y)-9 b(.)35 b(U)l(sed)23 b(in)517
3668 y(load/stor)n(e)f(instr)q(uctions)g(\(any)e(mention)i(of)f(memor)r
(y)g(was)e(\002ne\).)317 3814 y Fn(WB)46 b Fm(W)l(r)q(ite)21
b(back.)k(W)l(r)q(ite)c(back)g(the)f(r)n(esult)h(of)g(the)g(AL)n(U)e
(oper)o(ation)k(to)e(the)g(r)n(egister)g(\002le)n(.)1917
5497 y(13)p eop
%%Page: 14 14
14 13 bop 90 119 a Fn(3.2)46 b Fm(\(5)20 b(pts\))h(H)m(er)n(e)-5
b(')-10 b(s)19 b(a)h(pr)o(ototype)j(for)f(a)e(C++)g(function:)317
232 y Fc(bool)47 b(checkRange\()e(unsigned)g(int)i(x,)g(int)g(low,)g
(int)g(high)f(\))i(;)317 345 y Fm(U)l(sing)27 b(bitwise)f(oper)o
(ations)g(and)g(shifting,)i(deter)q(mine)e(if)g(A)-6
b(T)25 b(LEAST)g(ONE)h(bit)g(betw)o(een)g(index)317 458
y Fc(low)21 b Fm(and)h(index)g Fc(high)p Fm(,)f(inclusive)n(,)h(has)f
(v)o(alue)h(1.)28 b(Assume)21 b(lo)m(w)28 b Fl(\024)f
Fm(high)c(and)e(that)h(the)g(indexes)f(lie)317 571 y(betw)o(een)g(0)g
(and)f(31,)h(inclusive)n(.)26 b(Assume)20 b(index)h(0)g(is)f(the)h(LSB)
f(and)g(index)i(31)f(is)f(the)h(MSB)m(.)317 820 y Fc(bool)47
b(checkRange\()e(unsigned)g(int)i(x,)g(int)g(low,)g(int)g(high)f(\))317
933 y({)413 1046 y(int)h(mask)f(=)i(~0)f(;)g(//)h(create)e(all)h(1's)
413 1159 y(mask)f(<<=)h(\()h(high)e(-)i(low)f(\))g(+)h(1)f(;)h(//)f
(1's)g(followed)e(by)i(\(high)g(-)g(low\))g(+)g(1)h(zeroes)413
1272 y(mask)e(=)i(~mask)e(;)i(//)f(0's)g(followed)e(by)i(\(high)g(-)g
(low\))g(+)g(1)h(ones)413 1385 y(mask)e(<<=)h(low)g(;)95
b(//)48 b(shift)e(left)h(low)f(bits)h(\(creates)f(1's)h(between)e
(index)i(low)g(and)1176 1498 y(//)h(high)e(and)h(0's)g(elsewhere\))413
1611 y(return)f(x)h(&)h(mask)e(;)317 1724 y(})317 1974
y Fm(S)o(ome)31 b(students)f(used)g(loops)h(and)g(had)f(a)g(single)g(1)
h(star)q(ting)g(at)f(index)h(lo)m(w)-7 b(,)34 b(and)c(mo)m(ving)i
(left.)317 2087 y(They)21 b(AND)o(ed)g(the)f(1)h(with)g
Fj(x)f Fm(and)h(if)g(this)g(w)o(er)n(e)g(ever)e(tr)q(ue)n(,)i(they)g(r)
n(etur)q(ned)g(tr)q(ue)n(.)317 2237 y(A)32 b(few)f(students)i(made)e
(the)h(mistake)f(of)h(tr)r(ying)i(to)e(index)h(individual)h(bits)n(.)61
b(Y)-8 b(ou)33 b(can)-7 b(')g(t)32 b(index)317 2350 y(individual)25
b(bits)e(in)h(C/C++.)32 b(Thus)o(,)23 b(x[1])g(does)g(not)h(r)n(epr)n
(esent)f(bit)h(1)f(of)g Fj(x)p Fm(.)32 b(I)n(t)22 b(is)h(a)f(compiler)i
(err)o(or)317 2463 y(in)d(C)g(to)g(do)h(index)f(in)g(this)g(manner)-5
b(.)317 2613 y(Another)18 b(common)f(err)o(or)h(was)d(not)i(r)n
(ealizing)h(that)e(shift)h(oper)o(ators)h(do)f(NO)m(T)g(modify)g(the)g
(object.)317 2726 y(Thus)o(,)23 b Fj(x)28 b(<<)f Fg(3)c
Fm(pr)o(oduces)g(a)e(V)-5 b(AL)n(UE)21 b(that)h(is)g
Fj(x)f Fm(shifted)i(left)f(b)n(y)g(3,)g(but)h(does)f(not)h(modify)g
Fj(x)e Fm(itself.)317 2839 y(This)g(is)g(why)f(y)o(ou)i(see)d
(assignments)i(like)f Fj(x)25 b(<<)p Fg(=)g(3)c Fm(which)g(is)f(the)h
(same)e(as)h Fj(x)25 b Fg(=)g(\()p Fj(x)h(<<)e Fg(3\))p
Fm(.)317 2989 y(Another)h(\223)-7 b(err)o(or)n(\224)25
b(was)e(not)j(using)e(bitshift)i(oper)o(ations)n(.)38
b(I)24 b(had)g(sever)o(al)f(answ)o(ers)h(that)g(used)g(the)317
3102 y(po)m(w)o(er)j(function)g(to)e(do)h(what)f(could)i(be)e(done)h
(with)f(bitshifts)n(.)41 b(I)n(t)n(')-10 b(s)25 b(not)h(so)g(much)f
(that)g(the)h(an-)317 3215 y(sw)o(ers)20 b(ar)n(e)h(\223)n(wr)o(ong)n
(\224)-12 b(,)22 b(but)f(that)g(they)f(could)i(be)f(done)g(without)h
(using)f(a)f(po)m(w)o(er)i(function.)90 3402 y Fn(3.3)46
b Fm(\(3)20 b(pts\))h(G)o(iven)f(the)g(follo)m(wing)j(32)e(bit)h(v)o
(alue:)j Fj(AB)5 b(C)i(D)s(E)e(F)13 b Fg(01)2402 3416
y Fi(16)317 3553 y Fm(W)l(r)q(ite)27 b(these)f(v)o(alues)g(in)h(a)f(b)n
(yte-addr)n(essable)f(memor)r(y)h(star)q(ting)h(at)f(addr)n(ess)g(1000)
h(in)g(LIT)q(TLE-)317 3666 y(ENDIAN)20 b(or)n(der)-5
b(.)26 b(M)o(ake)19 b(sur)n(e)i(y)o(ou)g(wr)q(ite)g(ALL)f(addr)n(esses)
f(pr)o(operly)-9 b(.)317 3816 y Fn(Answ)o(er)r(:)30 b
Fm(F)m(or)23 b(some)h(r)n(eason)f(this)h(question)g(gener)o(ated)g(a)f
(L)o(O)m(T)h(of)g(err)o(ors)n(.)36 b(I)n(n)24 b(par)q(ticular)-5
b(,)25 b(\223b)n(yte)317 3929 y(addr)n(essable)-5 b(\224)29
b(means)h(that)g(each)g(addr)n(ess)g(stor)n(es)g(one)h(b)n(yte)n(.)55
b(Each)30 b(hex)g(digit)i(is)e(only)i(4)e(bits)n(.)317
4042 y(S)o(o)l(,)j(y)o(ou)d(need)f(two)h(hex)f(digits)i(to)f(r)n(epr)n
(esent)g(a)f(b)n(yte)n(.)52 b(\(I)n(n)29 b(an)g(older)i(exam,)f(I)f
(did)i(do)f(\223)-5 b(nybble)317 4155 y(addr)n(essable)g(\224)27
b(in)i(which)f(each)g(memor)r(y)g(addr)n(ess)f(holds)i(one)f(nybble)n
(,)j(which)e(is)f(4)g(bits)n(.)49 b(That)317 4268 y(was)20
b(the)g(most)h(common)h(answ)o(er)e(I)g(got)i(for)f(this)g(question\).)
p 1718 4438 721 4 v 1716 4551 4 113 v 1768 4517 a(A)o(ddr)n(ess)p
2141 4551 V 100 w(D)o(ata)p 2437 4551 V 1718 4554 721
4 v 1716 4667 4 113 v 1834 4633 a(1000)p 2141 4667 V
217 w(01)p 2437 4667 V 1716 4780 V 1834 4746 a(1001)p
2141 4780 V 211 w(EF)p 2437 4780 V 1716 4893 V 1834 4859
a(1002)p 2141 4893 V 198 w(CD)p 2437 4893 V 1716 5005
V 1834 4972 a(1003)p 2141 5005 V 207 w(AB)p 2437 5005
V 1718 5009 721 4 v 1917 5497 a(14)p eop
%%Page: 15 15
15 14 bop 90 119 a Fn(3.4)46 b Fm(\(5)20 b(pts\))h(H)m(er)n(e)-5
b(')-10 b(s)19 b(a)h(pr)o(ototype)j(for)f(a)e(C++)g(function:)317
269 y Fc(void)47 b(clearBits\()e(unsigned)g(int)i(&)h(x,)f(int)g(low,)g
(int)f(high)h(\))h(;)317 419 y Fm(Clear)25 b(bits)h(\(i.e)n(,)g(set)e
(it)i(to)f(0\))g(fr)o(om)h(index)g Fc(low)e Fm(to)h(index)h
Fc(high)p Fm(,)f(inclusive)n(,)i(but)e(leave)f(r)n(emaining)317
532 y(bits)d(unchanged.)27 b(U)l(se)20 b(same)f(assumptions)i(as)e
Fc(checkRange)p Fm(.)317 683 y Fn(Answ)o(er)r(:)24 b
Fm(This)d(function)h(is)f(ver)r(y)f(similar)h(to)g Fc(checkRange)d
Fm(ex)o(cept)i(the)h(mask)e(is)i(\003ipped.)317 933 y
Fc(void)47 b(clearBits\()e(unsigned)g(int)i(&)h(x,)f(int)g(low,)g(int)f
(high)h(\))317 1045 y({)413 1158 y(int)g(mask)f(=)i(~0)f(;)g(//)h
(create)e(all)h(1's)413 1271 y(mask)f(<<=)h(\()h(high)e(-)i(low)f(\))g
(+)h(1)f(;)h(//)f(1's)g(followed)e(by)i(\(high)g(-)g(low\))g(+)g(1)h
(zeroes)413 1384 y(mask)e(=)i(~mask)e(;)i(//)f(0's)g(followed)e(by)i
(\(high)g(-)g(low\))g(+)g(1)h(ones)413 1497 y(mask)e(<<=)h(low)g(;)95
b(//)48 b(shift)e(left)h(low)f(bits)h(\(creates)f(1's)h(between)e
(index)i(low)g(and)1176 1610 y(//)h(high)e(and)h(0's)g(elsewhere\))413
1723 y(mask)f(=)i(~mask)e(;)95 b(//)48 b(create)e(0's)h(between)e(low)i
(and)g(high,)g(and)f(1's)h(elsewhere)413 1836 y(x)g(&=)g(mask)g(;)238
b(//)48 b(Zero)e(out)h(the)g(masked)f(area)317 1949 y(})90
2199 y Fn(3.5)g Fm(\(3)17 b(pts\))g(W)o(ithout)j(using)e(a)f(temp)g(v)o
(ar)q(iable)h(\(i.e)n(.,)g(using)g(logical)h(bit)f(oper)o(ators\),)h
(wr)q(ite)f(a)e(swap)h(func-)317 2312 y(tion)365 2462
y Fc(void)47 b(swap\()f(unsigned)g(int)g(&)i(x,)f(unsigned)f(int)h(&)g
(y)g(\))h(;)317 2612 y Fn(Answ)o(er)r(:)24 b Fm(This)d(was)f(done)h
(ver)r(y)e(br)q(ie\003y)j(in)f(class)n(.)k(Again,)c(it)g(helps)g(to)g
(r)n(eview)f(notes)h(thor)o(oughly)-9 b(.)317 2862 y
Fc(void)47 b(swap\()f(unsigned)g(int)h(\\&)g(x,)g(unsigned)f(int)h(\\&)
g(y)g(\))317 2975 y({)413 3088 y(//)g(Let)g(x')g(and)g(y')g(be)g(the)g
(ORIGINAL)f(values)g(of)h(x)g(and)g(y,)h(when)e(passed)413
3201 y(//)h(in)413 3427 y(x)g(=)h(x^y)f(;)g(//)g(x)h(now)f(holds)f(x')h
(XOR)g(y')413 3539 y(y)g(=)h(x^y)f(;)g(//)g(y)h(now)f(holds)f(\(x')h
(XOR)g(y'\))g(XOR)g(y')g(=)g(x'.)g(Thus,)f(y)i(holds)e(x's)h(old)g
(value)413 3652 y(x)g(=)h(x^y)f(;)g(//)g(x)h(now)f(holds)f(\(x')h(XOR)g
(y'\))g(XOR)g(x')g(=)g(y'.)g(Thus,)f(x)i(holds)e(y's)h(old)g(value)317
3765 y(})1917 5497 y Fm(15)p eop
%%Page: 16 16
16 15 bop 90 119 a Fd(Challenge)19 b(\(\223D)o(r)o(ool)j(K)q
(itty\224\))h(Section:)j(\223M)m(eo)m(w!\224)g(\(40)21
b(points\))90 336 y Fn(C1)45 b Fm(\(10)22 b(pts\))h(C)o(onsider)g(the)g
(follo)m(wing)i(6-1)d(MUX)g(built)i(fr)o(om)f(3-1)g(MUX)o(es)e(and)i
(2-1)f(MUX)o(es)n(.)30 b(The)23 b(3-1)317 449 y(MUX)o(es)d(have)f(the)i
(follo)m(wing)i(oper)o(ation)p 1444 619 1269 4 v 1442
732 4 113 v 1494 698 a Fj(c)1533 712 y Fi(1)p 1621 732
V 1673 698 a Fj(c)1712 712 y Fi(0)p 1800 732 V 2234 698
a Fj(z)p 2711 732 V 1444 735 1269 4 v 1442 848 4 113
v 1510 814 a Fm(0)p 1621 848 V 130 w(0)p 1800 848 V 475
w Fj(x)2263 828 y Fi(0)p 2711 848 V 1442 961 V 1510 927
a Fm(0)p 1621 961 V 130 w(1)p 1800 961 V 475 w Fj(x)2263
941 y Fi(1)p 2711 961 V 1442 1074 V 1510 1040 a Fm(1)p
1621 1074 V 130 w(0)p 1800 1074 V 475 w Fj(x)2263 1054
y Fi(2)p 2711 1074 V 1442 1187 V 1510 1153 a Fm(1)p 1621
1187 V 130 w(1)p 1800 1187 V 115 w(r)o(andom)e(\(don)-7
b(')g(t)22 b(car)n(e\))p 2711 1187 V 1444 1190 1269 4
v 317 1366 a Fn(\(a\))47 b Fm(W)l(r)q(ite)21 b(a)f(table)h(for)g(a)f
(6-1)g(MUX)g(and)h(state)f(assumptions)g(about)i(its)e(oper)o(ations)n
(.)517 1495 y Fn(Answ)o(er)r(:)45 b Fm(A)32 b(table)g(r)n(efers)g(to)h
(a)e(tr)q(uth)i(table)n(,)j(similar)c(to)h(the)f(one)g(sho)m(wn)h(abo)m
(ve)n(.)60 b(A)31 b(few)517 1608 y(students)21 b(didn)-7
b(')g(t)22 b(understand)g(what)e(was)f(meant)i(b)n(y)f(this)n(.)p
1455 1720 1447 4 v 1453 1833 4 113 v 1505 1799 a Fj(c)1544
1813 y Fi(2)p 1632 1833 V 1683 1799 a Fj(c)1722 1813
y Fi(1)p 1810 1833 V 1862 1799 a Fj(c)1901 1813 y Fi(0)p
1989 1833 V 2423 1799 a Fj(z)p 2900 1833 V 1455 1836
1447 4 v 1453 1949 4 113 v 1520 1915 a Fm(0)p 1632 1949
V 131 w(0)p 1810 1949 V 130 w(0)p 1989 1949 V 476 w Fj(x)2453
1929 y Fi(0)p 2900 1949 V 1453 2062 V 1520 2028 a Fm(0)p
1632 2062 V 131 w(0)p 1810 2062 V 130 w(1)p 1989 2062
V 476 w Fj(x)2453 2042 y Fi(1)p 2900 2062 V 1453 2175
V 1520 2141 a Fm(0)p 1632 2175 V 131 w(1)p 1810 2175
V 130 w(0)p 1989 2175 V 476 w Fj(x)2453 2155 y Fi(2)p
2900 2175 V 1453 2288 V 1520 2254 a Fm(0)p 1632 2288
V 131 w(1)p 1810 2288 V 130 w(1)p 1989 2288 V 115 w(r)o(andom)i(\(don)
-7 b(')g(t)22 b(car)n(e\))p 2900 2288 V 1455 2291 1447
4 v 1453 2404 4 113 v 1520 2370 a(1)p 1632 2404 V 131
w(0)p 1810 2404 V 130 w(0)p 1989 2404 V 476 w Fj(x)2453
2384 y Fi(4)p 2900 2404 V 1453 2517 V 1520 2483 a Fm(1)p
1632 2517 V 131 w(0)p 1810 2517 V 130 w(1)p 1989 2517
V 476 w Fj(x)2453 2497 y Fi(5)p 2900 2517 V 1453 2630
V 1520 2596 a Fm(1)p 1632 2630 V 131 w(1)p 1810 2630
V 130 w(0)p 1989 2630 V 476 w Fj(x)2453 2610 y Fi(6)p
2900 2630 V 1453 2743 V 1520 2709 a Fm(1)p 1632 2743
V 131 w(1)p 1810 2743 V 130 w(1)p 1989 2743 V 115 w(r)o(andom)g(\(don)
-7 b(')g(t)22 b(car)n(e\))p 2900 2743 V 1455 2746 1447
4 v 517 2901 a(I)n(t)n(')-10 b(s)24 b(impor)q(tant)h(that)f(the)f(don)
-7 b(')g(t)25 b(car)n(es)f(appear)f(wher)n(e)g(they)h(do)l(.)36
b(W)-6 b(e)24 b(want)f(to)h(encode)g(000,)517 3014 y(001,)g(010)f(and)f
(100,)i(101,)g(110,)f(since)g(the)f(differ)n(ence)i(betw)o(een)f(the)f
(\002rst)h(3)g(v)o(alues)f(and)h(the)517 3127 y(last)17
b(3)h(v)o(alues)e(is)i(the)f(most)h(signi\002cant)h(bit.)25
b(The)18 b(most)f(common)h(mistake)f(was)f(to)i(have)e(the)517
3240 y(v)o(alues)25 b(contiguous)i(\(i.e)n(.)40 b(de\002ne)25
b(it)h(for)g(000)g(up)f(to)h(101,)h(and)e(have)f(110)h(and)h(111)f(as)f
(don)-7 b(')g(t)517 3353 y(car)n(es\).)25 b(Y)-8 b(ou)21
b(will)h(\002nd)f(this)g(doesn)-7 b(')g(t)22 b(wor)o(k)f(if)g(y)o(ou)g
(tr)o(ace)g(the)f(inputs)i(of)f(the)f(cir)n(cuits)n(.)517
3482 y(One)g(student)g(had)g(a)f(solution)j(wher)n(e)d(even)g(inputs)i
(w)o(er)n(e)f(placed)g(in)g(one)g(MUX,)f(and)h(odds)517
3595 y(in)25 b(another)g(MUX.)e(S)n(moe)i(students)f(wanted)g(the)g
(inputs)h(to)g(be)f(contiguous)i(\(notice)f(that)517
3708 y Fj(x)569 3722 y Fi(3)627 3708 y Fm(is)19 b(skipped)f(o)m(ver)h
(in)g(the)g(table)g(abo)m(ve\),)f(but)h(had)g(the)f(don)-7
b(')g(t)20 b(car)n(e)-5 b(')-10 b(s)18 b(in)h(the)g(corr)n(ect)h
(places)n(.)517 3821 y(The)f(r)n(eason)f Fj(x)1040 3835
y Fi(3)1097 3821 y Fm(is)h(skipped)f(is)g(because)f(w)o(e)h(assume)f
(the)h(user)g(inputs)h(the)f(subscr)q(ipt)h(of)g(the)517
3934 y(input)i(used.)j(H)m(o)m(w)o(ever)-5 b(,)19 b(no)h(cr)n(edit)h
(was)d(taken)g(off)i(for)f(those)h(who)f(wr)o(ote)h(contiguous)h(sub-)
517 4047 y(scr)q(ipts)i(\(fr)o(om)h Fj(x)1120 4061 y
Fi(0)1182 4047 y Fm(to)g Fj(x)1341 4061 y Fi(5)1380 4047
y Fm(\))f(pr)o(o)m(vided)i(the)e(don)-7 b(')g(t)24 b(car)n(es)e(appear)
n(ed)h(in)g(the)g(four)q(th)h(and)f(eighth)517 4160 y(r)o(o)m(w)-7
b(.)1917 5497 y(16)p eop
%%Page: 17 17
17 16 bop 317 119 a Fn(\(b\))46 b Fm(Clearly)33 b(label)g(inputs)h(and)
e(outputs)n(.)63 b(U)l(se)33 b(conventions)g(for)h(data)e(inputs)i
(using)f Fj(x)f Fm(with)517 232 y(subscr)q(ipts)21 b(and)g(contr)o(ol)i
(inputs)f(using)f Fj(c)g Fm(with)g(subscr)q(ipts)n(.)784
415 y
18646798 15290366 0 0 32759316 27167866 startTexFig
784 415 a
%%BeginDocument: Figs2/6_1mux.soln.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: 6_1mux.soln.eps
%%Creator: fig2dev Version 3.2 Patchlevel 3c
%%CreationDate: Mon Nov 4 04:00:13 2002
%%For: clin@chexmix (Charles Lin,1127 AVW,(301) 405-2709,,)
%%BoundingBox: 0 0 498 413
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 413 moveto 0 0 lineto 498 0 lineto 498 413 lineto closepath clip newpath
-25.0 424.0 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/reencdict 12 dict def /ReEncode { reencdict begin
/newcodesandnames exch def /newfontname exch def /basefontname exch def
/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def
basefontdict { exch dup /FID ne { dup /Encoding eq
{ exch dup length array copy newfont 3 1 roll put }
{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall
newfont /FontName newfontname put newcodesandnames aload pop
128 1 255 { newfont /Encoding get exch /.notdef put } for
newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat
newfontname newfont definefont pop end } def
/isovec [
8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde
8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis
8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron
8#220 /dotlessi 8#230 /oe 8#231 /OE
8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling
8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis
8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot
8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus
8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph
8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine
8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf
8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute
8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring
8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute
8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute
8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve
8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply
8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex
8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave
8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring
8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute
8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute
8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve
8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide
8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex
8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def
/Times-Bold /Times-Bold-iso isovec ReEncode
/Times-Roman /Times-Roman-iso isovec ReEncode
/DrawEllipse {
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y tr xrad yrad sc 0 0 1 startangle endangle arc
closepath
savematrix setmatrix
} def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
%%Page: 1 1
10 setmiterlimit
0.06000 0.06000 sc
%
% Fig objects follow
%
/Times-Bold-iso ff 360.00 scf sf
3525 2475 m
gs 1 -1 sc (C) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2850 2475 m
gs 1 -1 sc (C) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2550 2700 m
gs 1 -1 sc (0) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
6975 4875 m
gs 1 -1 sc (Z) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
6375 4350 m
gs 1 -1 sc (C) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
5700 5100 m
gs 1 -1 sc (1) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
6075 5550 m
gs 1 -1 sc (MUX) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
6225 5175 m
gs 1 -1 sc (2-1) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
5700 4575 m
gs 1 -1 sc (0) col0 sh gr
% Polyline
7.500 slw
n 1050 6450 m
2400 6450 l gs col0 s gr
% Polyline
n 1050 5775 m
2400 5775 l gs col0 s gr
% Polyline
n 1050 5175 m
2400 5175 l gs col0 s gr
% Polyline
n 1050 3825 m
2400 3825 l gs col0 s gr
% Polyline
n 1050 3225 m
2400 3225 l gs col0 s gr
% Polyline
n 1050 2625 m
2400 2625 l gs col0 s gr
% Polyline
n 2325 825 m 2325 1125 l 6525 1125 l
6525 3975 l gs col0 s gr
% Polyline
n 3600 1875 m 4575 1875 l 4575 4425 l 3675 4425 l
3675 4725 l gs col0 s gr
% Polyline
n 2925 1875 m 2250 1875 l 2250 4425 l 3000 4425 l
3000 4725 l gs col0 s gr
/Times-Bold-iso ff 360.00 scf sf
3075 3300 m
gs 1 -1 sc (3-1) col0 sh gr
/Times-Roman-iso ff 300.00 scf sf
825 2850 m
gs 1 -1 sc (0) col0 sh gr
/Times-Roman-iso ff 300.00 scf sf
825 3375 m
gs 1 -1 sc (1) col0 sh gr
/Times-Roman-iso ff 300.00 scf sf
825 5400 m
gs 1 -1 sc (4) col0 sh gr
/Times-Roman-iso ff 300.00 scf sf
825 6600 m
gs 1 -1 sc (6) col0 sh gr
/Times-Roman-iso ff 300.00 scf sf
825 5925 m
gs 1 -1 sc (5) col0 sh gr
/Times-Roman-iso ff 300.00 scf sf
825 3975 m
gs 1 -1 sc (2) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
525 2700 m
gs 1 -1 sc (X) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
525 6525 m
gs 1 -1 sc (X) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
525 5850 m
gs 1 -1 sc (X) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
525 5325 m
gs 1 -1 sc (X) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
525 3900 m
gs 1 -1 sc (X) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
525 3300 m
gs 1 -1 sc (X) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2550 3900 m
gs 1 -1 sc (2) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2550 3225 m
gs 1 -1 sc (1) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
3975 3300 m
gs 1 -1 sc (Z) col0 sh gr
/Times-Bold-iso ff 270.00 scf sf
3825 2550 m
gs 1 -1 sc (0) col0 sh gr
/Times-Bold-iso ff 270.00 scf sf
3150 2550 m
gs 1 -1 sc (1) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2925 3675 m
gs 1 -1 sc (MUX) col0 sh gr
% Polyline
n 3825 825 m 3825 1200 l 3600 1200 l
3600 2100 l gs col0 s gr
/Times-Bold-iso ff 360.00 scf sf
2850 675 m
gs 1 -1 sc (C) col0 sh gr
/Times-Bold-iso ff 270.00 scf sf
2400 750 m
gs 1 -1 sc (2) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2175 675 m
gs 1 -1 sc (C) col0 sh gr
/Times-Bold-iso ff 270.00 scf sf
3825 750 m
gs 1 -1 sc (0) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
3600 675 m
gs 1 -1 sc (C) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
8325 4875 m
gs 1 -1 sc (Z) col0 sh gr
% Polyline
n 8175 4500 m 8700 4500 l 8700 5025 l 8175 5025 l
cp gs col0 s gr
/Times-Bold-iso ff 360.00 scf sf
2550 6525 m
gs 1 -1 sc (2) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2550 5850 m
gs 1 -1 sc (1) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
3975 5925 m
gs 1 -1 sc (Z) col0 sh gr
/Times-Bold-iso ff 270.00 scf sf
3825 5175 m
gs 1 -1 sc (0) col0 sh gr
/Times-Bold-iso ff 270.00 scf sf
3150 5175 m
gs 1 -1 sc (1) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2925 6300 m
gs 1 -1 sc (MUX) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
3075 5925 m
gs 1 -1 sc (3-1) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
3525 5100 m
gs 1 -1 sc (C) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2850 5100 m
gs 1 -1 sc (C) col0 sh gr
/Times-Bold-iso ff 360.00 scf sf
2550 5325 m
gs 1 -1 sc (0) col0 sh gr
% Polyline
n 2400 4725 m 4275 4725 l 4275 6825 l 2400 6825 l
cp gs col0 s gr
/Times-Bold-iso ff 270.00 scf sf
3075 750 m
gs 1 -1 sc (1) col0 sh gr
% Polyline
n 3075 825 m 3075 1200 l 2925 1200 l
2925 2100 l gs col0 s gr
% Polyline
n 2400 2100 m 4275 2100 l 4275 4200 l 2400 4200 l
cp gs col0 s gr
% Polyline
n 1575 1425 m 7725 1425 l 7725 7050 l 1575 7050 l
cp gs col0 s gr
% Polyline
n 7275 4725 m
8175 4725 l gs col0 s gr
% Polyline
n 4275 5850 m 5175 5850 l 5175 5100 l
5625 5100 l gs col0 s gr
% Polyline
n 5625 3975 m 7275 3975 l 7275 5775 l 5625 5775 l
cp gs col0 s gr
% Polyline
n 4275 3150 m 5175 3150 l 5175 4425 l
5625 4425 l gs col0 s gr
% Ellipse
n 750 6450 270 270 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 750 5775 270 270 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 750 5175 270 270 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 750 3225 318 318 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 750 3825 270 270 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 750 2625 318 318 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 3600 1875 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
% Ellipse
n 2925 1875 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
% Ellipse
n 3827 516 318 318 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 3077 516 318 318 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 2325 525 318 318 0 360 DrawEllipse gs col0 s gr
$F2psEnd
rs
%%EndDocument
endTexFig
90 2581 a Fn(C2)45 b Fm(\(10)26 b(pts\))h(D)o(esign)g(a)e(cir)n(cuit)k
(which)e(implements)f(the)h(follo)m(wing.)46 b(Elegant)27
b(answ)o(ers)e(\(i.e)n(.)44 b(simple)317 2694 y(ones\))21
b(r)n(eceive)f(mor)n(e)h(cr)n(edit.)27 b(H)m(o)m(w)o(ever)-5
b(,)20 b(any)g(v)o(alid)i(answ)o(ers)d(will)j(get)f(some)f(cr)n(edit.)p
1326 2864 1507 4 v 1324 2977 4 113 v 1375 2943 a Fj(x)1427
2957 y Fi(3)p 1515 2977 V 1566 2943 a Fj(x)1618 2957
y Fi(2)p 1706 2977 V 1757 2943 a Fj(x)1809 2957 y Fi(1)p
1897 2977 V 1948 2943 a Fj(x)2000 2957 y Fi(0)p 2088
2977 V 2105 2977 V 2156 2943 a Fj(z)2198 2957 y Fi(3)p
2286 2977 V 2337 2943 a Fj(z)2379 2957 y Fi(2)p 2467
2977 V 2519 2943 a Fj(z)2561 2957 y Fi(1)p 2649 2977
V 2700 2943 a Fj(z)2742 2957 y Fi(0)p 2830 2977 V 1326
2980 1507 4 v 1324 3093 4 113 v 1397 3059 a Fm(0)p 1515
3093 V 143 w(0)p 1706 3093 V 143 w(0)p 1897 3093 V 143
w(0)p 2088 3093 V 2105 3093 V 155 w(0)p 2286 3093 V 133
w(0)p 2467 3093 V 134 w(0)p 2649 3093 V 133 w(0)p 2830
3093 V 1324 3206 V 1397 3172 a(0)p 1515 3206 V 143 w(0)p
1706 3206 V 143 w(0)p 1897 3206 V 143 w(1)p 2088 3206
V 2105 3206 V 155 w(1)p 2286 3206 V 133 w(0)p 2467 3206
V 134 w(0)p 2649 3206 V 133 w(0)p 2830 3206 V 1324 3319
V 1397 3285 a(0)p 1515 3319 V 143 w(0)p 1706 3319 V 143
w(1)p 1897 3319 V 143 w(0)p 2088 3319 V 2105 3319 V 155
w(0)p 2286 3319 V 133 w(1)p 2467 3319 V 134 w(0)p 2649
3319 V 133 w(0)p 2830 3319 V 1324 3431 V 1397 3398 a(0)p
1515 3431 V 143 w(0)p 1706 3431 V 143 w(1)p 1897 3431
V 143 w(1)p 2088 3431 V 2105 3431 V 155 w(1)p 2286 3431
V 133 w(1)p 2467 3431 V 134 w(0)p 2649 3431 V 133 w(0)p
2830 3431 V 1326 3435 1507 4 v 1324 3548 4 113 v 1397
3514 a(0)p 1515 3548 V 143 w(1)p 1706 3548 V 143 w(0)p
1897 3548 V 143 w(0)p 2088 3548 V 2105 3548 V 155 w(0)p
2286 3548 V 133 w(0)p 2467 3548 V 134 w(0)p 2649 3548
V 133 w(1)p 2830 3548 V 1324 3661 V 1397 3627 a(0)p 1515
3661 V 143 w(1)p 1706 3661 V 143 w(0)p 1897 3661 V 143
w(1)p 2088 3661 V 2105 3661 V 155 w(1)p 2286 3661 V 133
w(0)p 2467 3661 V 134 w(0)p 2649 3661 V 133 w(1)p 2830
3661 V 1324 3774 V 1397 3740 a(0)p 1515 3774 V 143 w(1)p
1706 3774 V 143 w(1)p 1897 3774 V 143 w(0)p 2088 3774
V 2105 3774 V 155 w(0)p 2286 3774 V 133 w(1)p 2467 3774
V 134 w(0)p 2649 3774 V 133 w(1)p 2830 3774 V 1324 3886
V 1397 3853 a(0)p 1515 3886 V 143 w(1)p 1706 3886 V 143
w(1)p 1897 3886 V 143 w(1)p 2088 3886 V 2105 3886 V 155
w(1)p 2286 3886 V 133 w(1)p 2467 3886 V 134 w(0)p 2649
3886 V 133 w(1)p 2830 3886 V 1326 3890 1507 4 v 1324
4003 4 113 v 1397 3969 a(1)p 1515 4003 V 143 w(0)p 1706
4003 V 143 w(0)p 1897 4003 V 143 w(0)p 2088 4003 V 2105
4003 V 155 w(0)p 2286 4003 V 133 w(0)p 2467 4003 V 134
w(1)p 2649 4003 V 133 w(0)p 2830 4003 V 1324 4116 V 1397
4082 a(1)p 1515 4116 V 143 w(0)p 1706 4116 V 143 w(0)p
1897 4116 V 143 w(1)p 2088 4116 V 2105 4116 V 155 w(1)p
2286 4116 V 133 w(0)p 2467 4116 V 134 w(1)p 2649 4116
V 133 w(0)p 2830 4116 V 1324 4229 V 1397 4195 a(1)p 1515
4229 V 143 w(0)p 1706 4229 V 143 w(1)p 1897 4229 V 143
w(0)p 2088 4229 V 2105 4229 V 155 w(0)p 2286 4229 V 133
w(1)p 2467 4229 V 134 w(1)p 2649 4229 V 133 w(0)p 2830
4229 V 1324 4341 V 1397 4308 a(1)p 1515 4341 V 143 w(0)p
1706 4341 V 143 w(1)p 1897 4341 V 143 w(1)p 2088 4341
V 2105 4341 V 155 w(1)p 2286 4341 V 133 w(1)p 2467 4341
V 134 w(1)p 2649 4341 V 133 w(0)p 2830 4341 V 1326 4345
1507 4 v 1324 4458 4 113 v 1397 4424 a(1)p 1515 4458
V 143 w(1)p 1706 4458 V 143 w(0)p 1897 4458 V 143 w(0)p
2088 4458 V 2105 4458 V 155 w(0)p 2286 4458 V 133 w(0)p
2467 4458 V 134 w(1)p 2649 4458 V 133 w(1)p 2830 4458
V 1324 4571 V 1397 4537 a(1)p 1515 4571 V 143 w(1)p 1706
4571 V 143 w(0)p 1897 4571 V 143 w(1)p 2088 4571 V 2105
4571 V 155 w(1)p 2286 4571 V 133 w(0)p 2467 4571 V 134
w(1)p 2649 4571 V 133 w(1)p 2830 4571 V 1324 4683 V 1397
4650 a(1)p 1515 4683 V 143 w(1)p 1706 4683 V 143 w(1)p
1897 4683 V 143 w(0)p 2088 4683 V 2105 4683 V 155 w(0)p
2286 4683 V 133 w(1)p 2467 4683 V 134 w(1)p 2649 4683
V 133 w(1)p 2830 4683 V 1324 4796 V 1397 4763 a(1)p 1515
4796 V 143 w(1)p 1706 4796 V 143 w(1)p 1897 4796 V 143
w(1)p 2088 4796 V 2105 4796 V 155 w(1)p 2286 4796 V 133
w(1)p 2467 4796 V 134 w(1)p 2649 4796 V 133 w(1)p 2830
4796 V 1326 4800 1507 4 v 1917 5497 a(17)p eop
%%Page: 18 18
18 17 bop 317 119 a Fm(Clearly)16 b(label)g(inputs)h(\(b)n(y)e(cir)n
(cling)j(them\))e(and)g(outputs)g(\(b)n(y)g(bo)n(xing\).)26
b(Y)-8 b(ou)16 b(can)f(use)g(any)h(par)q(t/gate)317 232
y(y)o(ou)22 b(wish.)317 382 y Fn(Answ)o(er)r(:)h Fm(S)o(ome)18
b(people)g(tr)q(ied)h(to)g(wr)q(ite)f(sum-of-pr)o(oducts)n(.)26
b(I)n(t)18 b(wor)o(ks)o(,)h(but)f(it)n(')-10 b(s)19 b(slo)m(w)-7
b(.)25 b(S)o(ome)18 b(tr)q(ied)317 495 y(encoder)n(-decoder)-5
b(.)39 b(Also)25 b(wor)o(ks)n(.)38 b(Also)24 b(slo)m(w)h(\(but)g(mor)n
(e)g(cr)n(eative\).)37 b(This)26 b(one)e(only)i(r)n(equir)n(es)f(4)317
608 y(wir)n(es)n(.)h(M)o(any)-8 b(,)20 b(many)h(students)f(got)i(this)f
(corr)n(ect,)h(so)e(I)h(was)e(r)o(ather)i(happ)n(y)-9
b(.)317 758 y(The)21 b(cir)n(cuit)i(looks)e(like:)1611
859 y
5594039 6153442 0 0 9406791 10393518 startTexFig
1611 859 a
%%BeginDocument: Figs2/simp.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: simp.eps
%%Creator: fig2dev Version 3.2 Patchlevel 3c
%%CreationDate: Mon Nov 4 04:09:20 2002
%%For: clin@chexmix (Charles Lin,1127 AVW,(301) 405-2709,,)
%%BoundingBox: 0 0 143 158
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 158 moveto 0 0 lineto 143 0 lineto 143 158 lineto closepath clip newpath
-106.0 216.0 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/DrawEllipse {
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y tr xrad yrad sc 0 0 1 startangle endangle arc
closepath
savematrix setmatrix
} def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
%%Page: 1 1
10 setmiterlimit
0.06000 0.06000 sc
%
% Fig objects follow
%
/Times-Roman ff 360.00 scf sf
3900 3450 m
gs 1 -1 sc (3) col0 sh gr
/Times-Roman ff 360.00 scf sf
3900 2850 m
gs 1 -1 sc (2) col0 sh gr
/Times-Roman ff 360.00 scf sf
3900 2250 m
gs 1 -1 sc (1) col0 sh gr
/Times-Roman ff 360.00 scf sf
3900 1575 m
gs 1 -1 sc (0) col0 sh gr
/Times-Roman ff 360.00 scf sf
2250 3450 m
gs 1 -1 sc (3) col0 sh gr
/Times-Roman ff 360.00 scf sf
2250 2250 m
gs 1 -1 sc (1) col0 sh gr
/Times-Roman ff 360.00 scf sf
2250 2850 m
gs 1 -1 sc (2) col0 sh gr
/Times-Roman ff 360.00 scf sf
2250 1575 m
gs 1 -1 sc (0) col0 sh gr
/Times-Roman ff 600.00 scf sf
3600 3300 m
gs 1 -1 sc (z) col0 sh gr
/Times-Roman ff 600.00 scf sf
3600 2700 m
gs 1 -1 sc (z) col0 sh gr
/Times-Roman ff 600.00 scf sf
3600 2100 m
gs 1 -1 sc (z) col0 sh gr
/Times-Roman ff 600.00 scf sf
3600 1425 m
gs 1 -1 sc (z) col0 sh gr
/Times-Roman ff 600.00 scf sf
1950 3300 m
gs 1 -1 sc (x) col0 sh gr
/Times-Roman ff 600.00 scf sf
1950 2700 m
gs 1 -1 sc (x) col0 sh gr
7.500 slw
% Ellipse
n 2175 1987 321 321 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 2175 2662 321 321 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 2100 3262 321 321 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 2175 1312 321 321 0 360 DrawEllipse gs col0 s gr
% Polyline
n 3525 1050 m 4125 1050 l 4125 1575 l 3525 1575 l
cp gs col0 s gr
% Polyline
n 3525 1725 m 4125 1725 l 4125 2250 l 3525 2250 l
cp gs col0 s gr
% Polyline
n 3525 2325 m 4125 2325 l 4125 2850 l 3525 2850 l
cp gs col0 s gr
% Polyline
n 3525 2925 m 4125 2925 l 4125 3450 l 3525 3450 l
cp gs col0 s gr
% Polyline
n 2400 3300 m
3525 1950 l gs col0 s gr
% Polyline
n 2475 2625 m
3525 1350 l gs col0 s gr
% Polyline
n 2475 1275 m
3525 3225 l gs col0 s gr
% Polyline
n 2475 2025 m
3525 2700 l gs col0 s gr
/Times-Roman ff 600.00 scf sf
1950 1425 m
gs 1 -1 sc (x) col0 sh gr
/Times-Roman ff 600.00 scf sf
1950 2100 m
gs 1 -1 sc (x) col0 sh gr
$F2psEnd
rs
%%EndDocument
endTexFig
90 1887 a Fn(C3)45 b Fm(\(10)21 b(pts\))f(F)m(or)h(a)f(carr)r(y)g
(lookahead)h(adder)-5 b(,)20 b(what)h(ar)n(e)f(the)h(gener)o(al)f(for)q
(mulas)h(for)q(:)317 2100 y Fn(\(a\))47 b Fj(g)522 2114
y Fh(i)571 2100 y Fm(and)20 b Fj(p)795 2114 y Fh(i)517
2229 y Fn(Answ)o(er)r(:)k Fm(The)d(for)q(mulas)f(ar)n(e:)1898
2434 y Fj(g)1941 2448 y Fh(i)2053 2434 y Fg(=)83 b Fj(a)2255
2448 y Fh(i)2303 2434 y Fl(\001)21 b Fj(b)2388 2448 y
Fh(i)1896 2571 y Fj(p)1942 2585 y Fh(i)2053 2571 y Fg(=)83
b Fj(a)2255 2585 y Fh(i)2303 2571 y Fg(+)20 b Fj(b)2433
2585 y Fh(i)317 2792 y Fn(\(b\))46 b Fm(B)o(r)q(ie\003y)21
b(explain)g(what)f Fj(g)1362 2806 y Fh(i)1411 2792 y
Fm(and)h Fj(p)1636 2806 y Fh(i)1684 2792 y Fm(r)n(efer)g(to)g(\(not)h
(just)f(the)f(names)o(,)g(but)h(the)g(purpose\).)517
2922 y Fn(Answ)o(er)r(:)26 b Fj(g)927 2936 y Fh(i)977
2922 y Fm(is)21 b(the)h(\223)-6 b(gener)o(ate)h(\224)19
b(par)q(t.)29 b(I)o(f)21 b(this)h(v)o(alue)g(is)f(1,)h(this)g(means)e
(the)i(sum)f(of)h Fj(a)3544 2936 y Fh(i)3593 2922 y Fm(and)g
Fj(b)3812 2936 y Fh(i)517 3035 y Fm(gener)o(ates)e(a)g(1)h(r)n(egar)n
(dless)g(of)g(the)f(v)o(alue)h(of)g(the)f(carr)r(y)h(in)g
Fj(c)2631 3049 y Fh(i)2659 3035 y Fm(.)517 3164 y Fj(p)563
3178 y Fh(i)611 3164 y Fm(is)e(the)h(\223)-5 b(pr)o(opagate)g(\224)20
b(par)q(t.)25 b(I)o(f)20 b(this)g(v)o(alue)f(is)h(1,)g(this)g(means)e
(that)i(the)g(carr)r(y)m(-in)g Fj(c)3436 3178 y Fh(i)3464
3164 y Fm(,)g(if)g(1,)g(gets)517 3277 y(pr)o(opagated)k(to)f(the)g
(carr)r(y)m(-out)g Fj(c)1718 3291 y Fh(i)p Fi(+1)1837
3277 y Fm(.)31 b(I)o(f)22 b(the)h(carr)r(y)m(-in)g(is)g(0,)g(this)g
(gets)f(pr)o(opagated)i(too)l(,)g(but)517 3390 y(only)e(if)f
Fj(g)837 3404 y Fh(i)886 3390 y Fm(is)f(not)i(1.)317
3536 y Fn(\(c\))46 b Fm(Assume)19 b(y)o(ou)j(ar)n(e)e(adding)i(two)f
(4-bit)g(numbers)1791 3740 y Fj(a)1839 3754 y Fi(3)1879
3740 y Fj(a)1927 3754 y Fi(2)1966 3740 y Fj(a)2014 3754
y Fi(1)2054 3740 y Fj(a)2102 3754 y Fi(0)2161 3740 y
Fg(+)f Fj(b)2291 3754 y Fi(3)2331 3740 y Fj(b)2370 3754
y Fi(2)2409 3740 y Fj(b)2448 3754 y Fi(1)2488 3740 y
Fj(b)2527 3754 y Fi(0)517 3945 y Fm(and)g Fj(c)734 3959
y Fi(0)792 3945 y Fm(is)g(the)f(carr)r(y)m(-in)h(to)f(the)h(least)e
(signi\002cant)j(bit)f(\(nor)q(mally)-8 b(,)21 b(a)d(r)q(ipple-carr)r
(y)i(adder)g(has)517 4057 y(no)h(carr)r(y)m(-in)h(to)f(the)f(LSB)n(,)h
(but)g(pr)n(etend)g(y)o(ou)h(have)d(a)h(full)h(adder)g(adding)h(the)f
(LSB\).)517 4187 y(W)l(r)q(ite)26 b(a)e(for)q(mula)h(for)h
Fj(c)1371 4201 y Fi(2)1436 4187 y Fm(for)f(a)f(carr)r(y)m(-lookahead)h
(adder)-5 b(,)26 b(using)g(only)g(the)f(follo)m(wing)i(v)o(ar)q(i-)517
4300 y(ables:)e Fj(c)819 4314 y Fi(0)859 4300 y Fj(;)15
b(a)947 4314 y Fi(3)987 4300 y Fj(;)g(a)1075 4314 y Fi(2)1115
4300 y Fj(;)g(a)1203 4314 y Fi(1)1243 4300 y Fj(;)g(a)1331
4314 y Fi(0)1371 4300 y Fj(;)g(b)1450 4314 y Fi(3)1490
4300 y Fj(;)g(b)1569 4314 y Fi(2)1608 4300 y Fj(;)g(b)1687
4314 y Fi(1)1727 4300 y Fj(;)g(b)1806 4314 y Fi(0)1846
4300 y Fm(.)26 b(N)m(ot)21 b(all)g(v)o(ar)q(iables)f(need)h(to)g
(appear)f(in)h(the)g(for)q(mula.)517 4429 y Fn(Answ)o(er)r(:)j
Fm(The)d(gener)o(al)g(carr)r(y)f(for)q(mula)h(is)f Fj(c)2092
4443 y Fh(i)p Fi(+1)2236 4429 y Fg(=)25 b Fj(g)2375 4443
y Fh(i)2424 4429 y Fg(+)20 b Fj(p)2561 4443 y Fh(i)2589
4429 y Fj(c)2628 4443 y Fh(i)2656 4429 y Fm(.)517 4559
y(U)l(sing)i(this)o(,)f(w)o(e)f(can)h(see)e(that)i Fj(c)1656
4573 y Fi(2)1721 4559 y Fg(=)k Fj(g)1860 4573 y Fi(1)1920
4559 y Fg(+)20 b Fj(p)2057 4573 y Fi(1)2096 4559 y Fj(c)2135
4573 y Fi(1)2175 4559 y Fm(.)517 4688 y(U)l(sing)i(the)e(same)g(for)q
(mula,)h Fj(c)1581 4702 y Fi(1)1646 4688 y Fg(=)k Fj(g)1785
4702 y Fi(0)1845 4688 y Fg(+)19 b Fj(p)1981 4702 y Fi(0)2021
4688 y Fj(c)2060 4702 y Fi(0)2099 4688 y Fm(.)517 4818
y(P)o(lug)i(in)h(the)e(expr)n(ession)i(for)f Fj(c)1614
4832 y Fi(1)1674 4818 y Fm(into)h(the)f Fj(c)2054 4832
y Fi(2)2114 4818 y Fm(for)q(mula)g(to)g(get:)26 b Fj(c)2782
4832 y Fi(2)2847 4818 y Fg(=)f Fj(g)2986 4832 y Fi(1)3046
4818 y Fg(+)20 b Fj(p)3183 4832 y Fi(1)3222 4818 y Fg(\()p
Fj(g)3300 4832 y Fi(0)3360 4818 y Fg(+)g Fj(p)3497 4832
y Fi(0)3536 4818 y Fj(c)3575 4832 y Fi(0)3615 4818 y
Fg(\))p Fm(.)517 4947 y(M)m(ultiply)i(and)f(r)n(ewr)q(ite)g(as:)j
Fj(c)1550 4961 y Fi(2)1615 4947 y Fg(=)h Fj(g)1754 4961
y Fi(1)1814 4947 y Fg(+)20 b Fj(g)1948 4961 y Fi(0)1988
4947 y Fj(p)2034 4961 y Fi(1)2094 4947 y Fg(+)f Fj(p)2230
4961 y Fi(1)2270 4947 y Fj(p)2316 4961 y Fi(0)2355 4947
y Fj(c)2394 4961 y Fi(0)2434 4947 y Fm(.)517 5077 y(P)o(lug)i(in)h(for)
f Fj(g)1003 5091 y Fi(1)1043 5077 y Fm(,)f Fj(g)1130
5091 y Fi(0)1170 5077 y Fm(,)h Fj(p)1261 5091 y Fi(1)1300
5077 y Fm(,)f Fj(p)1390 5091 y Fi(0)1429 5077 y Fm(.)517
5206 y Fj(c)556 5220 y Fi(2)621 5206 y Fg(=)25 b(\()p
Fj(a)800 5220 y Fi(1)840 5206 y Fj(b)879 5220 y Fi(1)919
5206 y Fg(\))20 b(+)g(\()p Fj(a)1148 5220 y Fi(0)1188
5206 y Fj(b)1227 5220 y Fi(0)1266 5206 y Fg(\)\()p Fj(a)1384
5220 y Fi(1)1445 5206 y Fg(+)g Fj(b)1575 5220 y Fi(1)1614
5206 y Fg(\))h(+)f(\()p Fj(a)1844 5220 y Fi(1)1904 5206
y Fg(+)f Fj(b)2033 5220 y Fi(1)2073 5206 y Fg(\)\()p
Fj(a)2191 5220 y Fi(0)2251 5206 y Fg(+)h Fj(b)2381 5220
y Fi(0)2421 5206 y Fg(\))p Fj(c)2495 5220 y Fi(0)2535
5206 y Fm(.)1917 5497 y(18)p eop
%%Page: 19 19
19 18 bop 517 119 a Fm(I)20 b(like)g(this)g(kind)h(of)f(pr)o(oblem)i
(because)d(it)h(has)g(enough)g(for)q(mulas)g(that)g(y)o(ou)h(need)f(to)
h(spend)517 232 y(time)j(\002gur)q(ing)h(it)e(out,)i(and)e(I)g(didn)-7
b(')g(t)25 b(co)m(ver)e(it)h(in)g(class)o(,)f(so)g(y)o(ou)h(had)g(to)f
(r)n(ead)h(the)f(book)h(and)517 345 y(wor)o(k)32 b(it)g(out)h(y)o
(ourself)f(or)g(with)g(fr)q(iends)n(.)59 b(This)32 b(kind)h(of)e
(question)h(is)g(mor)n(e)g(common)g(in)517 458 y(engineer)q(ing)d
(courses)e(\(wher)n(e)g(y)o(ou)g(must)g(lear)q(n)g(to)h(der)q(ive)f
(for)q(mulas)g(and)g(\002gur)n(e)h(things)517 571 y(out)22
b(fr)o(om)f(books\).)26 b(R)n(eading)21 b(and)f(lear)q(ning)i(fr)o(om)g
(books)f(is)f(an)g(inv)o(aluable)i(skill)f(to)g(lear)q(n.)517
700 y(Lear)q(ning)h(fr)o(om)g(class)e(is)h(gr)n(eat,)h(but)g(y)o(ou)g
(will)g(\002nd)g(many)f(mor)n(e)h(occasions)g(wher)n(e)f(all)g(y)o(ou)
517 813 y(have)e(is)g(book,)i(and)f(y)o(our)h(ability)g(to)f(sit)g(and)
f(think)i(about)f(what)f(it)i(says)o(,)d(r)o(ather)j(than)e(hear)n(-)
517 926 y(ing)j(an)e(explanation)i(and)e(asking)h(questions)f(when)h(y)
o(ou)g(ar)n(e)g(stuck.)90 1138 y Fn(C4)45 b Fm(\(10)20
b(pts\))h(D)o(r)o(ool)g(K)q(itty)g(is)f(a)g(kitty)h(that)f(dr)o(ools)i
(so)f(much,)f(that)h(she)e(needs)h(a)g(to)m(w)o(el)i(to)e(sop)h(it)g
(up)l(.)26 b(S)o(he)317 1251 y(also)e(lo)m(ves)g(cir)n(cuit)i(pr)o
(oblems)n(.)38 b(S)o(he)24 b(ar)o(gues)h(that)f(another)h(way)e(of)i
(per)q(for)q(ming)g(two)-6 b(')c(s)25 b(comple-)317 1364
y(ment)k(oper)o(ation)h(is)e(to)h(subtr)o(act)g(1,)h(and)f(\003ip)g
(bits)g(\(the)f(usual)g(way)g(is)g(to)h(\003ip)g(bits)g(and)g(add)f
(1\))317 1477 y(wher)n(e)e(subtr)o(act)h(1)f(may)g(wr)o(ap)g(ar)o(ound)
i(\(thus)e(0000)h(-)e(1)i(r)n(esults)f(in)h(1111,)h(for)f(4)f(bits\).)
43 b(I)n(s)26 b(D)o(r)o(ool)317 1590 y(K)q(itty)21 b(corr)n(ect?)317
1740 y(I)o(f)c(so)l(,)h(pr)o(o)m(vide)g(a)e(mathematical)h(ar)o
(gument.)25 b(T)-9 b(o)17 b(do)g(so)l(,)h(use)e(facts)g(about)h
(function)h(composition)317 1853 y(and)k(function)i(inverses)o(,)d(and)
h(also)g(check)f(boundar)r(y)i(cases)d(\(what)h(happens)h(near)g(all)f
(0')-10 b(s)22 b(or)h(all)317 1966 y(1')-10 b(s\).)317
2116 y(I)o(f)22 b(not,)g(der)q(ive)f(a)g(counter)n(example)h(wher)n(e)f
(this)h(fails)n(.)27 b(Y)-8 b(ou)22 b(should)h(assume)c(that)j(the)f
(oper)o(ation)317 2229 y(applies)g(to)g Fj(k)j Fm(bit)d(numbers)g(wher)
n(e)g Fj(k)28 b Fl(\025)d Fg(2)p Fm(.)317 2380 y Fn(Answ)o(er)r(:)g
Fm(This)c(question)h(is)f(\223)-7 b(easy\224)19 b(pr)o(o)m(vided)k(y)o
(ou)f(r)n(emember)f(y)o(our)h(250)g(ver)r(y)e(w)o(ell.)27
b(The)21 b(ques-)317 2493 y(tion)f(was)d(\223inspir)n(ed)n(\224)h(b)n
(y)g(a)g(student,)h(and)f(the)g(answ)o(er)g(was)f(pr)o(o)m(vided)k(b)n
(y)d(D)o(r)-5 b(.)24 b(Kr)q(uskal.)g(I)n(ts)17 b(inclu-)317
2605 y(sion)24 b(in)g(the)f(exam)g(is)g(mostly)h(to)g(illustr)o(ate)g
(the)f(follo)m(wing)j(point:)33 b(y)o(ou)24 b(sometimes)f(need)g(math)
317 2718 y(to)e(ver)q(ify)g(an)f(idea)g(y)o(ou)i(believe)e(is)h
(intuitively)h(tr)q(ue)n(.)317 2869 y(A)c(lot)i(of)f(people)g(feel)g
(discr)n(ete)g(math)f(or)i(any)e(math)g(is)h(useless)n(.)24
b(P)m(ar)q(t)17 b(of)i(this)g(feeling)h(comes)e(fr)o(om)317
2982 y(\002nding)k(the)d(mater)q(ial)g(dif\002cult.)28
b(I)o(f)19 b(it)h(w)o(er)n(e)g(easy)-8 b(,)19 b(then)g(y)o(ou)i(wouldn)
-7 b(')g(t)21 b(car)n(e)e(whether)h(it)n(')-10 b(s)20
b(useless)317 3094 y(or)26 b(not.)41 b(H)m(o)m(w)o(ever)-5
b(,)26 b(a)f(good)i(gr)o(ounding)h(in)e(math)f(allo)m(ws)h(y)o(ou)g(to)
g(see)f(a)f(pr)o(oblem)k(like)d(this)h(and)317 3207 y(convince)c(y)o
(ourself)f(\(in)g(a)f(mathematical)h(way\))e(that)i(the)g(answ)o(er)f
(is)h(tr)q(ue)n(.)317 3358 y(I)n(n)30 b(CMSC)f(250,)j(y)o(ou)e(studied)
g(functions)n(.)53 b(F)o(unctions)31 b(can)e(have)f(inverses)g(pr)o(o)m
(vided)j(that)f(the)317 3471 y(function)23 b(is)e(1-1)g(and)g(onto)l(.)
29 b(The)21 b(two)h(oper)o(ations)g(used)f(in)h(two)-6
b(')c(s)21 b(complement)h(is)f(\003ipping)i(bits)317
3583 y(\(call)e(this)g(function)h(\003ip)q Fg(\()p Fj(x)p
Fg(\))p Fm(\))f(and)g(adding)h(1)e(\(call)h(this)g(function)h(add1)q
Fg(\()p Fj(x)p Fg(\))p Fm(\).)317 3734 y(B)o(oth)g(these)e(functions)i
(ar)n(e)f(1-1)f(and)h(onto)l(.)28 b(That)21 b(is)o(,)g(given)f(the)h(v)
o(alue)g Fj(f)10 b Fg(\()p Fj(x)p Fg(\))p Fm(,)20 b(ther)n(e)h(is)g(a)f
(unique)h Fj(x)317 3847 y Fm(that)d(it)h(is)e(mapped)h(fr)o(om)h
(\(that)n(')-10 b(s)18 b(1-1\).)24 b(Also)l(,)19 b(ever)r(y)e(v)o(alue)
g(is)h(mapped)g(to)g(\(that)n(')-10 b(s)18 b(onto\).)26
b(F)o(lipping)317 3960 y(bits)21 b(is)g(mor)n(e)g(ob)m(vious)n(.)27
b(A)o(dding)22 b(1)e(is)h(adding)h(1)e(modulo)i Fg(2)2419
3927 y Fh(k)2483 3960 y Fm(for)f(some)f(v)o(alue)h(of)g
Fj(k)s Fm(.)317 4110 y(Thus)o(,)35 b(if)d(a)f(function)i(is)f(1-1)g
(and)f(onto)i(\(i.e)n(.,)i(it)n(')-10 b(s)32 b(a)f(bijectin\))j(then)e
(the)f(functions)i(both)g(have)317 4223 y(inverses)n(.)43
b(The)27 b(inverse)f(of)g(\003ip)r Fg(\()p Fj(x)p Fg(\))h
Fm(is)f(\003ip)q Fg(\()p Fj(x)p Fg(\))p Fm(.)44 b(That)27
b(is)o(,)h(\003ipping)h(bits)e(is)g(its)f(o)m(wn)i(inverse)n(.)43
b(The)317 4336 y(inverse)20 b(of)h(add1)q Fg(\()p Fj(x)p
Fg(\))g Fm(is)f(sub1)q Fg(\()p Fj(x)p Fg(\))p Fm(,)h(i.e)n(.,)g(subtr)o
(acting)h(1)f(modulo)h Fg(2)2646 4303 y Fh(k)2689 4336
y Fm(.)317 4486 y(I)o(f)c(two)h(functions)g(ar)n(e)e(1-1)h(and)g(onto)l
(,)i(then)f(their)f(composition)j(is)d(also)g(1-1)f(and)h(onto)i(\(pr)o
(o)m(vided)317 4599 y(the)26 b(domains)g(and)g(codomains)g(ar)n(e)f
(the)h(same)e(in)j(both)f(functions\).)42 b(Thus)o(,)27
b(add1)e Fl(\016)g Fm(\003ip)h(is)g(1-1)317 4712 y(and)21
b(onto)l(.)317 4862 y(This)g(means)d(the)i(function)h(has)e(an)g
(inverse)n(.)25 b(The)20 b(inverse)f(of)h(a)f(composition)k(is)c(the)h
(inverses)f(of)317 4975 y(each)d(function)h(in)g(r)n(everse)e(or)n(der)
-5 b(.)25 b(Thus)o(,)17 b Fg(\()p Fm(add1)q Fl(\016)q
Fm(\003ip)r Fg(\))2274 4942 y Fb(\000)p Fi(1)2385 4975
y Fm(is)e(\003ip)2604 4934 y Fb(\000)p Fi(1)2699 4975
y Fl(\016)q Fm(add1)2950 4934 y Fb(\000)p Fi(1)3044 4975
y Fm(,)i(which)f(is)g(\003ip)r Fl(\016)q Fm(sub1)q(,)317
5088 y(which)21 b(is)g(just)g(subtr)o(acting)h(1)f(and)f(\003ipping)j
(bits)n(.)1917 5497 y(19)p eop
%%Page: 20 20
20 19 bop 317 119 a Fm(F)o(inally)-8 b(,)20 b(since)e(add1)9
b Fl(\016)g Fm(\003ip)20 b(is)e(its)g(o)m(wn)h(inverse)e(\(that)h(is)o
(,)h(\003ipping)h(bits)e(and)g(adding)h(1,)g(then)f(doing)317
232 y(it)f(again,)g(pr)o(oduces)h(back)e(the)g(same)f(number\),)j(then)
f(add1)s Fl(\016)s Fm(\003ip)27 b Fg(=)e(\()p Fm(add1)s
Fl(\016)s Fm(\003ip)r Fg(\))3239 199 y Fb(\000)p Fi(1)3359
232 y Fg(=)g Fm(\003ip)s Fl(\016)s Fm(sub1)317 382 y(The)e(only)g(par)q
(t)g(of)g(the)f(\223)-5 b(pr)o(oof)6 b(\224)24 b(that)n(')-10
b(s)23 b(somewhat)f(w)o(eak)f(is)i(that)f(two)-6 b(')c(s)23
b(complement)g(is)f(its)h(o)m(wn)317 495 y(inverse)17
b(\(which)g(was)f(assume)n(,)h(r)o(ather)g(than)g(pr)o(o)m(ven\).)26
b(H)m(o)m(w)o(ever)-5 b(,)17 b(anything)h(even)e(par)q(tly)i(r)n(esem-)
317 608 y(bling)k(this)f(got)h(full)f(cr)n(edit.)317
758 y(S)o(ome)h(people)h(tr)q(ied)f(\223induction)-7
b(\224)-12 b(,)24 b(but)f(only)f(sho)m(w)o(ed)h(a)e(base)g(case)n(,)h
(and)f(no)i(indication)h(of)e(ho)m(w)317 871 y(they)27
b(might)h(tr)r(y)g(to)f(sho)m(w)g(an)g(inductive)h(hypothesis)g(or)g
(pr)o(o)m(ve)g(an)e(inductive)i(case)n(.)44 b(S)n(uch)28
b(an-)317 984 y(sw)o(ers)20 b(r)n(eceived)h(minimal)g(cr)n(edit.)1917
5497 y(20)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF
fs/www/class/fall2002/cmsc311-0101/Exam/exam_soln.html~ 0100664 0000773 0001744 00000003237 07576743073 020411 0 ustar cmsc311
CMSC 311: Computer Organization
c m s c 311
s p r i n g 2 0 0 2
|
Exam Solutions
Web Accessibility
fs/www/class/fall2002/cmsc311-0101/graphics/ 0042775 0000773 0001744 00000000000 07541173433 016233 5 ustar cmsc311 fs/www/class/fall2002/cmsc311-0101/graphics/buttons/ 0042755 0000773 0001744 00000000000 07541173433 017727 5 ustar cmsc311 fs/www/class/fall2002/cmsc311-0101/graphics/buttons/Build.gif 0100644 0000773 0001744 00000001763 07541173433 021457 0 ustar cmsc311 GIF89a Æ ÿÿÿÿÿÌÿÌÿÿÌÌÿÌ™ÿÌfÿ™Ìÿ™™ÿffÿ ÌÿÌÌÿ™ÌÌÌÌ̙̙™Ì™fÌffÌ3fÌ ™ÿ™™Ì̙̙™™™™™f™f™™ff™f3™33™ fÿffÿ3fÌff™™f™ff™3fffff3f3™f3ff33f3 3Ìf3Ì33™f3™33ff3f33f 33f33333 3 ™ f3 f 33 3 f 3» U D " w U D " " îîîÝÝÝ»»»ªªªˆˆˆwwwUUUDDD""" ÈÈÈ ÿÿ 00È °@È 'pp Èp
Pÿ$ ÿ dÿ € à € ÈÈ €€ H
H <
Ò ð " íœ È ° ÈÈ °°
!ù R , þ€R‚ƒ„…†‡ˆ‰ƒQЉQQ>Ž“‹OKQ?‚I;™”…QOQ3R Ÿ„¡LGKQ='#‚Q1K J´QŒQMÆ´Q Ž‹P´Q$QQ2QJJQÒŽB¼QIQ'1OO'2K˜Ž+?¡õ ÒNÜQP¢;I9„8¸àBQŒÍˆ! “lŠˆ!â$ØÁB†HaI©S‡¢¨°ñ¡B°?DŽDŒÁfÉ\)(¢„‘‘2ƒùi±JAP:àh¶RÀfP£B%äá#†D2±Å21N