Professional Documents
Culture Documents
{\fonttbl
{\f0\froman times new roman;}{\f1\fswiss helvetica;}{\f2\ftech symbol;}{\f3\ftec
h wingdings;}}
{\colortbl\red0\green0\blue0;}
{\info{\author }}
\jexpand\viewkind1\viewscale100
\paperw11920\paperh16840\margl666\margr133\margt666\margb213
\cols2\colno1\colw8946\colsr-0\colno2\colw2173\pard\li4960\ri0\sl-213\slmult0 \f
s18\cf0\par\pard\li4960\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li4960\ri0\sl-213\
slmult0 \fs18\cf0\par\pard\li4960\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li4960\r
i0\sl-213\slmult0 \fs18\cf0\par\pard\li4960\ri0\sl-213\slmult0 \fs18\cf0\par\par
d\li4960\ri0\sl-453\slmult0 \fs30\cf0\f0\charscalex100\b {TEMA 2}\b0 \fs30\cf0\f
0\charscalex100\b { }\b0 \par\pard\li3520\ri0\sl-213\slmult0 \fs18\cf0\par\pard\
li3520\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li3520\ri0\sl-413\slmult0 \fs30\cf0
\f0\charscalex100\b {M}\b0 \fs30\cf0\f0\charscalex100\b {TRICAS DEL SOFTWARE}\b0
\fs30\cf0\f0\charscalex100\b { }\b0 \par\pard\li1026\ri0\sl-213\slmult0 \fs18\cf
0\par\pard\li1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\sl-413\slmult
0 \fs26\cf0\f0\charscalex100 {2.1.}\fs26\cf0\f0\charscalex100 {-}\fs26\cf0\f0\ch
arscalex100 { Mtricas del software., }\fs26\cf0\f0\charscalex100 { }\par\pard\li1
746\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {2.1.1.}\fs26\cf0\f0\charscale
x100 {-}\fs26\cf0\f0\charscalex100 { Mtricas de tamao., }\fs26\cf0\f0\charscalex10
0 { }\par\pard\li1746\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {2.1.2.}\fs2
6\cf0\f0\charscalex100 {-}\fs26\cf0\f0\charscalex100 { Mtricas de estr}\fs26\cf0\
f0\charscalex100 {ucturas de control., }\fs26\cf0\f0\charscalex100 { }\par\pard\
li1746\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {2.1.3.}\fs26\cf0\f0\charsc
alex100 {-}\fs26\cf0\f0\charscalex100 { Mtricas compuestas., }\fs26\cf0\f0\charsc
alex100 { }\par\pard\li1746\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {2.1.4
.}\fs26\cf0\f0\charscalex100 {-}\fs26\cf0\f0\charscalex100 { Mtricas de esfuerzo.
, }\fs26\cf0\f0\charscalex100 { }\par\pard\li1746\ri0\sl-480\slmult0 \fs26\cf0\f
0\charscalex100 {2.1.5.}\fs26\cf0\f0\charscalex100 {-}\fs26\cf0\f0\charscalex100
{ Mtricas de calidad y fiabilidad.,}\fs26\cf0\f0\charscalex100 { }\par\pard\li
1746\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {2.1.6.}\fs26\cf0\f0\charscal
ex100 {-}\fs26\cf0\f0\charscalex100 { Mtricas de diseo., }\fs26\cf0\f0\charscalex1
00 { }\par\pard\li1746\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {2.1.7.}\fs
26\cf0\f0\charscalex100 {-}\fs26\cf0\f0\charscalex100 { Otra mtricas del software
., }\fs26\cf0\f0\charscalex100 { }\par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\
par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0
\fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-21
3\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493
\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\p
ard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18
\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slm
ult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\
sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\l
i5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\
par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0
\fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-21
3\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493
\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\p
ard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18
\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slm
ult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\
sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\l
i5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\
par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0
\fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-21
3\slmult0 \fs18\cf0\par\pard\li5493\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5493
\ri0\sl-400\slmult0 \fs24\cf0\f0\charscalex100 {i}\fs24\cf0\f0\charscalex100 { }
\par\column\pard\li0\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li0\ri0\sl-213\slmult
0 \fs18\cf0\par\pard\li0\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li0\ri0\sl-213\sl
mult0 \fs18\cf0\par\pard\li0\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li0\ri0\sl-21
3\slmult0 \fs18\cf0\par\pard\li0\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li0\ri0\s
l-213\slmult0 \fs18\cf0\par\pard\li0\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li0\r
i0\sl-213\slmult0 \fs18\cf0\par\pard\li0\ri0\sl-213\slmult0 \fs18\cf0\par\pard\l
i0\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li0\ri0\sl-213\slmult0 \fs18\cf0\par\pa
rd\li0\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li0\ri0\sl-426\slmult0 \fs26\cf0\f0
\charscalex100 {2 }\fs26\cf0\f0\charscalex100 {-}\fs26\cf0\f0\charscalex100 { 1}
\fs26\cf0\f0\charscalex100 { }\par\pard\li0\ri0\sl-480\slmult0 \fs26\cf0\f0\char
scalex100 {2 }\fs26\cf0\f0\charscalex100 {-}\fs26\cf0\f0\charscalex100 { 3}\fs26
\cf0\f0\charscalex100 { }\par\pard\li0\ri0\sl-480\slmult0 \fs26\cf0\f0\charscale
x100 {2 }\fs26\cf0\f0\charscalex100 {-}\fs26\cf0\f0\charscalex100 { 12}\fs26\cf0
\f0\charscalex100 { }\par\pard\li0\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100
{2 }\fs26\cf0\f0\charscalex100 {-}\fs26\cf0\f0\charscalex100 { 15}\fs26\cf0\f0\
charscalex100 { }\par\pard\li0\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {2
}\fs26\cf0\f0\charscalex100 {-}\fs26\cf0\f0\charscalex100 { 17}\fs26\cf0\f0\char
scalex100 { }\par\pard\li0\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {2 }\fs
26\cf0\f0\charscalex100 {-}\fs26\cf0\f0\charscalex100 { 19}\fs26\cf0\f0\charscal
ex100 { }\par\pard\li0\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {2 }\fs26\c
f0\f0\charscalex100 {-}\fs26\cf0\f0\charscalex100 { 25}\fs26\cf0\f0\charscalex10
0 { }\par\pard\li0\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {2 }\fs26\cf0\f
0\charscalex100 {-}\fs26\cf0\f0\charscalex100 { 27}\fs26\cf0\f0\charscalex100 {
}\par\pard\sect\sectd\sbkpage\pgwsxn11920\pghsxn16840\marglsxn666\margrsxn133\ma
rgtsxn666\margbsxn213\pard\li1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1026\r
i0\sl-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\sl-213\slmult0 \fs18\cf0\par\par
d\li1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\sl-213\slmult0 \fs18\c
f0\par\pard\li1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\sl-453\slmul
t0 \fs26\cf0\f0\charscalex100\b {2.1.}\b0 \fs26\cf0\f0\charscalex100\b {-}\b0 \f
s26\cf0\f0\charscalex100\b { Mtricas del software.}\b0 \fs26\cf0\f0\charscalex100
\b { }\b0 \par\pard\li1746\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl-3
86\slmult0 \fs26\cf0\f0\charscalex100 {Toda magnitud fsica es susceptible de ser
medida. Sin embargo, el}\fs26\cf0\f0\charscalex100 { }\par\pard\li1026\ri0\sl-36
0\slmult0 \fs26\cf0\f0\charscalex100 {software es una actividad fundamentalmente
intelectual, no slo en su origen, sino}\par\pard\li1026\ri0\sl-360\slmult0 \fs26
\cf0\f0\charscalex100 {que su resultado final tambin los es. El software no tiene
}\fs26\cf0\f0\charscalex100 {de entidad fsica ms}\par\pard\li1026\ri0\sl-360\slmu
lt0 \fs26\cf0\f0\charscalex100 {que el soporte que lo registra: el papel, materi
al magntico, los circuitos de la}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0
\charscalex100 {memoria. Las medidas realizadas sobre estos soportes no lo son e
strictamente del}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100
{software, sino que se trata nicamente de referencias indirectas.}\fs26\cf0\f0\ch
arscalex100 { }\par\pard\li1746\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {D
e ah que muchas medidas del software incidan en aspectos abstractos,}\par\pard\li
1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {que resultan difciles de desc
ribir de forma clara. Cuando se miden las magnitudes}\par\pard\li1026\ri0\sl-360
\slmult0 \fs26\cf0\f0\charscalex100 {del software se toman las referencias adecu
adas sobre los soportes del software,}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\
cf0\f0\charscalex100 {generalmente el cdigo f}\fs26\cf0\f0\charscalex100 {uente,
y de ah se obtienen cuantificaciones de conceptos}\par\pard\li1026\ri0\sl-360\slm
ult0 \fs26\cf0\f0\charscalex100 {tales como legibilidad o dificultad, junto con
otras ms accesibles como son el}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\
charscalex100 {propio tamao fsico del cdigo.}\fs26\cf0\f0\charscalex100 { }\par\par
d\li1746\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {Las mtricas del software
responden a dos objetivos:}{ }\fs26\cf0\f0\charscalex100\b {valorar}\b0 \fs26\cf
0\f0\charscalex100 { y}{ }\fs26\cf0\f0\charscalex100\b {estimar}\b0 \fs26\cf0\f0
\charscalex100 {.}\par\pard\li1026\ri0\sl-360\slmult0 \*\tx7013\*\tx8066\*\tx926
6\fs26\cf0\f0\charscalex100 {Las magnitudes objeto de valoracin son tres: la}\fs2
6\cf0\f0\charscalex100 { }\tab \fs26\cf0\f0\charscalex100\b {calidad}\b0 \fs26\c
f0\f0\charscalex100 {,}\tab \fs26\cf0\f0\charscalex100\b {fiabilidad}\b0 \tab \f
s26\cf0\f0\charscalex100 {y}\fs26\cf0\f0\charscalex100 { }\par\pard\li1026\ri0\s
3\margtsxn666\margbsxn213\pard\li1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li10
26\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\sl-213\slmult0 \fs18\cf0\par
\pard\li1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\sl-213\slmult0 \fs
18\cf0\par\pard\li1026\ri0\sl-306\slmult0 \fs26\cf0\f0\charscalex100 {distintos
lenguajes) hacen difcil encontrar una referencia consolidada en la que}\par\pard\
li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {basar las observaciones.}\
fs26\cf0\f0\charscalex100 { }\par\pard\li1746\ri0\sl-480\slmult0 \fs26\cf0\f0\ch
arscalex100 {A continuacin se enumeran algunas de las mtricas del software ms}\par\
pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {comunes ordenadas por
el mbito del software a que se refiere. A cada una de}\par\pard\li1026\ri0\sl-36
0\slmult0 \fs26\cf0\f0\charscalex100 {ellas, podra aadirse una larga serie de vari
aciones segn los distintos autores,}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0
\f0\charscalex100 {pero se pretende dar una visin de conjunto, ms que hac}\fs26\cf
0\f0\charscalex100 {er una enumeracin}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\c
f0\f0\charscalex100 {exhaustiva.}\fs26\cf0\f0\charscalex100 { }\par\pard\li1746\
ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {Hay muchas magnitudes que pueden
ser medidas en el software: el tamao}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf
0\f0\charscalex100 {en lneas de cdigo, el coste monetario del desarrollo, el tiemp
o de desarrollo en}\par\pard\li1026\ri0\sl-360\slmult0 \fs24\cf0\f0\charscalex10
0 {das de trabajo, el tamao de la memoria precisada en bytes, e incluso el nmero}\p
ar\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {de quejas del usua
rio antes de entregar el producto. Diferentes observadores del}\par\pard\li1026\
ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {mismo producto, pueden obtener di
stintas medidas, incluso en una misma}\fs26\cf0\f0\charscalex100 { }\par\pard\li
1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {magnitud.}\fs26\cf0\f0\chars
calex100 { }\par\pard\li1746\ri0\sl-480\slmult0 \fs24\cf0\f0\charscalex100 {Un tp
ico ejemplo de esta circunstancia son las lneas de cdigo. Un}\fs24\cf0\f0\charscal
ex100 { }\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {anlisis
pu}\fs26\cf0\f0\charscalex100 {ede considerar el nmero total de lneas en el listad
o, incluyendo las}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100
{lneas en blanco y las de comentarios. Otro podra ignorarlos dado que no afectan}
\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {al programa. Otr
o ms no considerara como lneas contables aquellas copiadas de}\par\pard\li1026\ri0\
sl-360\slmult0 \fs26\cf0\f0\charscalex100 {algn otro sistema (libreras, generadas
automticamente, ...). La necesidad de una}\par\pard\li1026\ri0\sl-360\slmult0 \fs
26\cf0\f0\charscalex100 {definicin unificada de las lneas de cdigo, o de cualquier
otra medida es una}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex10
0 {exigencia comn de los ingenieros del software.}\fs26\cf0\f0\charscalex100 { }\
par\pard\li1746\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {Una posible clasi
ficacin de las mtricas empleadas para valorar}\fs26\cf0\f0\charscalex100 { el}\fs2
6\cf0\f0\charscalex100 { }\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\chars
calex100 {software aparece en la figura 2.1 y establece dos categoras principales
:}{ }\fs26\cf0\f0\charscalex100\b {mtricas}\b0 \par\pard\li1026\ri0\sl-360\slmult
0 \*\tx3280\fs24\cf0\f0\charscalex100\b {del producto}\b0 \fs24\cf0\f0\charscale
x100 {, y}\fs24\cf0\f0\charscalex100 { }\tab \fs24\cf0\f0\charscalex100\b {mtrica
s del proceso}\b0 \fs24\cf0\f0\charscalex100 {. Las primeras son las que}\fs24\c
f0\f0\charscalex100 { }\par\pard\li1026\ri0\sl-360\slmult0 \fs24\cf0\f0\charscal
ex100 {tradicionalmente se han empleado en la medida del software, y pueden ser}
\fs24\cf0\f0\charscalex100 { }\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\c
harscalex100 {obtenidas automticamente tomando como entrada el cdigo fuente: tamao,
}\fs26\cf0\f0\charscalex100 { }\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\
charscalex100 {estructuras de datos y lgica. Las mtricas del proceso por su parte
dependen}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {esencia
lmente del entorno de desarrollo. Un ejemplo de este tipo de mtricas es}\par\pard
\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {el tiempo empleado para d
esarrollar un elemento software }\fs26\cf0\f0\charscalex100 {q}\fs26\cf0\f0\char
scalex100 {ue depende de}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charsc
alex100 {distintos factores externos (dificultad del problema, capacidad del per
sonal,}\fs26\cf0\f0\charscalex100 { }\par\pard\li1026\ri0\sl-360\slmult0 \fs26\c
f0\f0\charscalex100 {metodologa empleada,...).}\fs26\cf0\f0\charscalex100 { }\par
16840\marglsxn666\margrsxn133\margtsxn666\margbsxn213\pard\li1026\ri0\sl-213\slm
ult0 \fs18\cf0\par\pard\li1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\
sl-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\l
i1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\sl-306\slmult0 \fs26\cf0\
f0\charscalex100 {medida simple qu}\fs26\cf0\f0\charscalex100 {e puede obtenerse
fcilmente no lo es tanto. Para muchos}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\
cf0\f0\charscalex100 {autores, las lneas de cdigo medidas no deben incluir comenta
rios o lneas en}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {b
lanco, dado que su presencia o ausencia no afectar al funcionamiento del}\par\par
d\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {programa. Adems, incluir
comentarios o lneas en blanco no supone el mismo}\par\pard\li1026\ri0\sl-360\slmu
lt0 \fs26\cf0\f0\charscalex100 {nivel de dificultad que desarrollar una lnea de cd
igo. La inclusin de estos}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charsc
alex100 {elementos en la medida de productividad induce a muchos programadores a
}\fs26\cf0\f0\charscalex100 { }\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\
charscalex100 {producirlos artificialmente con objeto de inflar los resultados d
ando luga}\fs26\cf0\f0\charscalex100 {r a}\par\pard\li1026\ri0\sl-360\slmult0 \f
s26\cf0\f0\charscalex100 {elevadas}{ }\fs26\cf0\f0\charscalex100\b {tasas de pro
ductividad}\b0 \fs26\cf0\f0\charscalex100 {, generalmente estimada en}{ }\fs26\c
f0\f0\charscalex100\b {LOC/PM}\b0 \fs26\cf0\f0\charscalex100 { (lneas de}\par\par
d\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {cdigo por Programmer Mont
h, programadores o personas por mes). Por contra,}\par\pard\li1026\ri0\sl-360\sl
mult0 \fs26\cf0\f0\charscalex100 {comentarios y lneas en blanco aumentan la legib
ilidad del cdigo, por lo que}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\cha
rscalex100 {facilitan la depuracin de errores y el mantenimiento, si bien es difci
l cuantificar}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {en
qu grado.}\fs26\cf0\f0\charscalex100 { }\par\pard\li1746\ri0\sl-480\slmult0 \fs2
6\cf0\f0\charscalex100 {Por otra parte, el uso de lenguajes de alto nivel compli
ca la definicin de}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100
{lneas computables: una instruccin puede extenderse a travs de varias lneas, o}\par
\pard\li1026\ri0\sl-360\slmult0 \fs24\cf0\f0\charscalex100 {dos o ms instrucc}\fs
24\cf0\f0\charscalex100 {iones pueden situarse en una nica lnea. Adems, hay}\fs24\c
f0\f0\charscalex100 { }\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscal
ex100 {elementos del programa que tienen un peso desigual en el resultado final:
}\fs26\cf0\f0\charscalex100 { }\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\
charscalex100 {declaraciones de variables, tipo, constantes, cabeceras de funcio
nes, directivas de}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex10
0 {preprocesador. }\fs26\cf0\f0\charscalex100 { }\par\pard\li1746\ri0\sl-480\slm
ult0 \fs26\cf0\f0\charscalex100 {Todo esto contribuye a complicar el uso de las
lneas de cdigo como}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100
{mtrica fiable, ante la falta de definiciones estrictas y nicas de esta medida.}\
fs26\cf0\f0\charscalex100 { }\par\pard\li1746\ri0\sl-480\slmult0 \fs26\cf0\f0\ch
arscalex100 {Una posible solucin a los problemas mencionados anteriormente viene
de}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {la mano de la
medida de tamao como cuenta de los}{ }\fs26\cf0\f0\charscalex100\b {"tokens"}\b0
\fs26\cf0\f0\charscalex100\b { del cdigo fuente}\b0 \fs26\cf0\f0\charscalex100 {
.}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {Un token es un
elemento de lenguaje que tiene significado por s mismo. Los}\par\pard\li1026\ri0
\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {tokens de un programa son las instru
cciones del lenguajes, los identificadores,}\par\pard\li1026\ri0\sl-360\slmult0
\fs24\cf0\f0\charscalex100 {constantes, operadores delimitadores de comentario y
signos especiales del}\fs24\cf0\f0\charscalex100 { }\par\pard\li1026\ri0\sl-360
\slmult0 \fs26\cf0\f0\charscalex100 {mismo. De esta forma se obtiene una medida
ms realista de la cantidad de}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\ch
arscalex100 {informacin contenida en el cdigo fuente. Ver para ello la subrutina F
ORTRAN}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {de la fig
ura adjunta y el anlisis y descomposicin en tokens de la misma en la}\par\pard\li1
026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {figura siguiente.}\fs26\cf0\f
0\charscalex100 { }\par\pard\li5040\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5040
\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li5040\ri0\sl-213\slmult0 \fs18\cf0\par\p
0\f0\charscalex100 { }\par\pard\sect\sectd\sbknone\pgwsxn11920\pghsxn16840\margl
sxn666\margrsxn133\pard\sect\sectd\sbkpage\pgwsxn11920\pghsxn16840\marglsxn666\m
argrsxn133\margtsxn666\margbsxn213\pard\li1746\ri0\sl-213\slmult0 \fs18\cf0\par\
pard\li1746\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl-213\slmult0 \fs1
8\cf0\par\pard\li1746\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl-213\sl
mult0 \fs18\cf0\par\pard\li1746\ri0\sl-306\slmult0 \fs26\cf0\f0\charscalex100 {N
}\fs26\cf0\f0\charscalex100 {1}\fs26\cf0\f0\charscalex100 { : nmero total de oper
adores}\fs26\cf0\f0\charscalex100 { }\par\pard\li1746\ri0\sl-480\slmult0 \fs26\c
f0\f0\charscalex100 {N}\fs26\cf0\f0\charscalex100 {2}\fs26\cf0\f0\charscalex100
{ : nmero total de operandos}\fs26\cf0\f0\charscalex100 { }\par\pard\li1746\ri0\s
l-213\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li
1746\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl-320\slmult0 \fs26\cf0\f
0\charscalex100 {Considerando operadores los smbolos o palabras clave que especif
ican}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {una accin (i
nstrucciones, signos matemticos, de puntuacin), y operandos los}\par\pard\li1026\r
i0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {elementos que representan datos (v
ariables, constantes, etiquetas).}\fs26\cf0\f0\charscalex100 { }\par\pard\li1746
\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {El tam}\fs26\cf0\f0\charscalex10
0 {ao de un programa en trminos de tokens se expresa como:}\fs26\cf0\f0\charscalex
100 { }\par\pard\li4560\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {N = N}\fs
26\cf0\f0\charscalex100 {1}\fs26\cf0\f0\charscalex100 { + N}\fs26\cf0\f0\charsca
lex100 {2}\fs26\cf0\f0\charscalex100 { }\par\pard\li1746\ri0\sl-213\slmult0 \fs1
8\cf0\par\pard\li1746\ri0\sl-386\slmult0 \fs26\cf0\f0\charscalex100 {Los conflic
tos entre medidas de tokens surgen a la hora de considerar}\par\pard\li1026\ri0\
sl-360\slmult0 \fs24\cf0\f0\charscalex100 {como uno solo las instrucciones de en
trada/salida, las declaraciones y las lneas}\par\pard\li1026\ri0\sl-360\slmult0 \
fs26\cf0\f0\charscalex100 {que contienen etiquetas, o por el contrario computar
todos los posibles tokens que}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\c
harscalex100 {puedan aparecer en estas circunstancias. Las reglas usadas para co
ntar tokens}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {depe
nden mucho del lenguaje en que est escrito un programa. Con frecuencia}\par\pard\
li1026\ri0\sl-360\slmult0 \fs24\cf0\f0\charscalex100 {aparecen ambigedades a la h
ora de considerar elem}\fs24\cf0\f0\charscalex100 {entos del cdigo en una de las}
\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {dos categoras de
tokens, e incluso al tratar de computarlos como elementos con}\par\pard\li1026\r
i0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {significado.}\fs26\cf0\f0\charscal
ex100 { }\par\pard\li1746\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {La Cien
cia del Software define algunas otras mtricas adicionales. Por}\par\pard\li1026\r
i0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {ejemplo el}{ }\fs26\cf0\f0\charsca
lex100\b {vocabulario}\b0 \fs26\cf0\f0\charscalex100 { se define como:}\fs26\cf0
\f0\charscalex100 { }\par\pard\li4640\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex
100 {n = n}\fs26\cf0\f0\charscalex100 {1}\fs26\cf0\f0\charscalex100 { + n}\fs26\
cf0\f0\charscalex100 {2}\fs26\cf0\f0\charscalex100 { }\par\pard\li1746\ri0\sl-21
3\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl-386\slmult0 \fs26\cf0\f0\charscalex10
0 {Otra medida basada en las anteriores es el}{ }\fs26\cf0\f0\charscalex100\b {v
olumen de programa}\b0 \fs26\cf0\f0\charscalex100 {:}\fs26\cf0\f0\charscalex100
{ }\par\pard\li4533\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {V = N . log}\
fs26\cf0\f0\charscalex100 {2}\fs26\cf0\f0\charscalex100 {n}\fs26\cf0\f0\charscal
ex100 { }\par\pard\li1746\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl-38
6\slmult0 \fs26\cf0\f0\charscalex100 {La unidad de medida del volumen es el bit.
El volumen mide de esta forma}\par\pard\li1026\ri0\sl-360\slmult0 \fs24\cf0\f0\
charscalex100 {el espacio mnimo requerido en memoria para almacenar el programa (
suponiendo}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {que c
ada elemento del vocabul}\fs26\cf0\f0\charscalex100 {ario va a estar representad
o por un nico nmero}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100
{binario). Estudios realizados sobre mdulos en lenguajes de alto y bajo nivel ha
n}\par\pard\li1026\ri0\sl-360\slmult0 \fs24\cf0\f0\charscalex100 {mostrado que}{
}\fs24\cf0\f0\charscalex100\b {S}\b0 \fs24\cf0\f0\charscalex100\b {s}\b0 \fs24\
cf0\f0\charscalex100 {,}{ }\fs24\cf0\f0\charscalex100\b {N}\b0 \fs24\cf0\f0\char
scalex100 { y}{ }\fs24\cf0\f0\charscalex100\b {V}\b0 \fs24\cf0\f0\charscalex100
t0 \fs18\cf0\par\pard\li0\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li0\ri0\sl-320\s
lmult0 \fs26\cf0\f0\charscalex100 {de un mdulo es el nmero de mdulos que directamen
te o}\par\pard\sect\sectd\sbknone\pgwsxn11920\pghsxn16840\marglsxn666\margrsxn13
3\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {indirectamente le p
asan alguna informacin. De forma similar, es posible definir}\par\pard\sect\sectd
\sbknone\pgwsxn11920\pghsxn16840\marglsxn666\margrsxn133\cols2\colno1\colw2600\c
olsr-0\colno2\colw8520\pard\li1026\ri0\sl-360\slmult0 \*\tx1320\fs26\cf0\f0\char
scalex100 {el}\tab \fs26\cf0\f0\charscalex100\b {fa}\b0 \fs26\cf0\f0\charscalex1
00\b {n}\b0 \fs26\cf0\f0\charscalex100\b {-}\b0 \fs26\cf0\f0\charscalex100\b {ou
t}\b0 \par\column\pard\li0\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {como e
l nmero de mdulos a los que directa o indirectamente pasa}\par\pard\sect\sectd\sbk
none\pgwsxn11920\pghsxn16840\marglsxn666\margrsxn133\pard\li1026\ri0\sl-360\slmu
lt0 \fs26\cf0\f0\charscalex100 {informacin un mdulo determinado.}\fs26\cf0\f0\char
scalex100 { }\par\pard\li1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\s
l-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\sl-413\slmult0 \fs26\cf0\f0\charscal
ex100\b {2.1.2.}\b0 \fs26\cf0\f0\charscalex100\b {-}\b0 \fs26\cf0\f0\charscalex1
00\b { Mtricas de estructuras de control.}\b0 \fs26\cf0\f0\charscalex100\b { }\b0
\par\pard\li1746\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl-386\slmult
0 \fs26\cf0\f0\charscalex100 {La estructura lgica de un programa es el mecanismo
que le permite}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {r
ealizar las distintas funciones para las que fue construido. La estructura lgica
del}\par\pard\li4973\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li4973\ri0\sl-213\slm
ult0 \fs18\cf0\par\pard\li4973\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li4973\ri0\
sl-213\slmult0 \fs18\cf0\par\pard\li4973\ri0\sl-333\slmult0 \fs24\cf0\f0\charsca
lex100 {2 }\fs24\cf0\f0\charscalex100 {-}\fs24\cf0\f0\charscalex100 { }\fs24\cf0
\f0\charscalex100 {11}\fs24\cf0\f0\charscalex100 { }\par\pard\sect\sectd\sbknone
\pgwsxn11920\pghsxn16840\marglsxn666\margrsxn133\pard\sect\sectd\sbkpage\pgwsxn1
1920\pghsxn16840\marglsxn666\margrsxn133\margtsxn666\margbsxn213\pard\li1026\ri0
\sl-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\
li1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\sl-213\slmult0 \fs18\cf0
\par\pard\li1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\sl-306\slmult0
\fs26\cf0\f0\charscalex100 {programa representa los algoritmos empleados en su
diseo y procesa los datos}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charsc
alex100 {(la expresin "Algoritmos + Estructuras de Datos = Programas" WIRT76 es u
na}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {estupenda def
inicin de programa). La estructura d}\fs26\cf0\f0\charscalex100 {e un algoritmo s
e representa}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {per
fectamente con las grficas denominadas diagramas de flujo. Son muchos los}\par\pa
rd\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {mtodos de medicin del sof
tware que se basan en estos diagramas.}\fs26\cf0\f0\charscalex100 { }\par\pard\l
i1746\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {El flujo de control en un p
rograma es habitualmente secuencial, aunque}\par\pard\li1026\ri0\sl-360\slmult0
\fs26\cf0\f0\charscalex100 {puede ser interrumpido en ciertas ocasiones:}\fs26\c
f0\f0\charscalex100 { }\par\pard\li1386\ri0\sl-480\slmult0 \fs18\cf0\f2\charscal
ex100 {\uc1\u61623X}\fs24\cf0\f0\charscalex100 { }\fs24\cf0\f0\charscalex100 {E
n una decisin, se divide en dos nuevas lneas de flujo que responden a la}\par\pard
\li1746\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {evaluacin de una condicin d
eterminada.}\fs26\cf0\f0\charscalex100 { }\par\pard\li1386\ri0\sl-480\slmult0 \f
s18\cf0\f2\charscalex100 {\uc1\u61623X}\fs24\cf0\f0\charscalex100 { }\fs24\cf0\
f0\charscalex100 {Un salto hacia atrs devuelve el}\fs24\cf0\f0\charscalex100 { fl
ujo de control a una instruccin que ya ha}\par\pard\li1746\ri0\sl-360\slmult0 \fs
26\cf0\f0\charscalex100 {sido ejecutada. Normalmente son la base de los bucles.}
\fs26\cf0\f0\charscalex100 { }\par\pard\li1386\ri0\sl-480\slmult0 \fs20\cf0\f2\c
harscalex100 {\uc1\u61623X}\fs26\cf0\f0\charscalex100 { }\fs26\cf0\f0\charscale
x100 {Una transferencia de control a una rutina o procedimiento externo, hace}\p
ar\pard\li1746\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {que el flujo discu
rra por un camino externo al programa.}\fs26\cf0\f0\charscalex100 { }\par\pard\l
i1746\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl-213\slmult0 \fs18\cf0\
par\pard\li1746\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl-320\slmult0
\fs26\cf0\f0\charscalex100 {La mtrica denominada}{ }\fs26\cf0\f0\charscalex100\b
3232323232323232323232323232323232323232323232323232323232323232323232323232FFC0
0011080167026803012200021101031101FFC4001F00000105010101010101000000000000000001
02030405060708090A0BFFC400B5100002010303020403050504040000017D010203000411051221
31410613516107227114328191A1082342B1C11552D1F02433627282090A161718191A2526272829
2A3435363738393A434445464748494A535455565758595A636465666768696A737475767778797A
838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6
C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F010003
0101010101010101010000000000000102030405060708090A0BFFC400B511000201020404030407
05040400010277000102031104052131061241510761711322328108144291A1B1C109233352F015
6272D10A162434E125F11718191A262728292A35363738393A434445464748494A53545556575859
5A636465666768696A737475767778797A82838485868788898A92939495969798999AA2A3A4A5A6
A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EA
F2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F00F42D0B42D45F58F13AAF8B3598CA6A68AC
CB159E643F64B73B9B30119C1038C0C28E3392773FE11ED53FE872D73FEFCD97FF0023D1E1EFF90E
78B3FEC2B1FF00E915AD7414015EC6DE5B4B38E09AF67BD917399E7081DF249E422AAF1D3803A7AF
35628A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A28
00A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A28
00A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A28
00A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2800A28A2802BDBD8DBDA4F773
411EC92EE5134E7713BDC22C60F3D3E5451C7A7AE6AC514500145145001451450014514500145145
00145145001451450014514500145145001451450014514500145145001451450014514500145145
001451450014514500145145001451450014514500145145001451450014514500145158FAFF0088
ECFC39FD97F6C8E77FED2D422D3E1F2541DB2499DA5B246178392327DA803628A28A0028A28A0028
A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028
A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028AE6FC57E
3CF0E7832DCBEB3A8C71CE53747691FCF3C9C363083900952371C2E78245709FF0B6FC51FF0021EF
F840AFBFE111FBBE7F3F69DBF7FCFDBD3CBF2F9E9B73FF002D2803D7E8AE6FC29E3CF0E78CEDC3E8
DA8C724E137496927C93C7C2E7287920160370CAE7804D7494005145140051451400514514005145
140051451400514514005145140051451400514514005145701E23F11F8BFF00E16147E17F0BC7A1
FF00C8286A0F26A6B37FCF531900C67FDDE31EBCD0077F45701FF177FF00EA47FF00C9BA3FE2EFFF
00D48FFF00937401DFD15C07FC5DFF00FA91FF00F26E8FF8BBFF00F523FF00E4DD0077F45701FF00
177FFEA47FFC9BA3FE2EFF00FD48FF00F937401DFD15C07FC5DFFF00A91FFF0026E8FF008BBFFF00
523FFE4DD0077F4572FF000EFC4779E2DF0269BAE5FC70477575E6EF4814841B6574180493D1477A
EA2800AE03E29FFCC95FF63558FF00ECF5DFD701F14FFE64AFFB1AAC7FF67A00EFE8AE1FC6FE23F1
2699E23F0DE87E1A8F4A6BAD5FED597D496428BE522BF54391905BB1EDD2A0FF008BBFFF00523FFE
4DD0077F45701FF177FF00EA47FF00C9BA3FE2EFFF00D48FFF00937401DFD15C07FC5DFF00FA91FF
00F26E8FF8BBFF00F523FF00E4DD0077F45701FF00177FFEA47FFC9BA3FE2EFF00FD48FF00F93740
1DFD15C07FC5DFFF00A91FFF0026EA7F04788FC49A9F88FC49A1F8963D296EB48FB2E1F4D5902379
A8CFD5CE4E005EC3BF5A00EE28A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A00
28A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A2A9EAD6736A1A35F595BD
DC9673DC5BC9147731E7742CCA4071820E4139EA3A75A00C7F15F8F3C39E0CB72FACEA31C7394DD1
DA47F3CF270D8C20E402548DC70B9E0915C27F6F7C45F891F2787ACBFE116F0F4BC7F695D8CDCCD1
9FE28C76CA3AB0DA31953896B97B5F0C6B1F0ABC433EB9AE785E0F15D8995A66D6616792E60F9F79
9191C90194465CB6382D8F37B57B1F853C79E1CF19DB87D1B518E49C26E92D24F9278F85CE50F240
2C06E195CF009A00C7F0A7C26F0E786AE06A370926AFAD33F9B26A17E7CC6F372AC5954F0A772EE0
DCB8C9F98D779451401C1F8AFE137873C4B70751B749348D695FCD8F50B03E5B79B9660CCA3863B9
B716E1CE07CC2B9CFEDEF88BF0DFE4F10D97FC253E1E8B8FED2B418B98631FC520EF844663B8632C
332D7AFD737E2BF1E7873C196E5F59D4638E729BA3B48FE79E4E1B1841C804A91B8E173C122800F0
A78F3C39E33B70FA36A31C9384DD25A49F24F1F0B9CA1E480580DC32B9E0135D257CF175E18D63E2
AF8860D7343F0BC1E14B112ACCBACCCCF1DCCFF3EF122A2100B3090386C72571E6F6AF4483E154CB
6F12DC7C40F1AC938402478F5428ACD8E4852A4819ED938F53401E8745701FF0AB3FEA7CF1C7FE0E
3FFB0A3FE1567FD4F9E38FFC1C7FF61401DFD15C07FC2ACFFA9F3C71FF00838FFEC28FF8559FF53E
78E3FF00071FFD850077F45701FF000AB3FEA7CF1C7FE0E3FF00B0A3FE1567FD4F9E38FF00C1C7FF
0061401DFD15C07FC2ACFF00A9F3C71FF838FF00EC28FF008559FF0053E78E3FF071FF00D850077F
45701FF0AB3FEA7CF1C7FE0E3FFB0A3FE1567FD4F9E38FFC1C7FF61401DFD15C07FC2ACFFA9F3C71
FF00838FFEC28FF8559FF53E78E3FF00071FFD850077F45701FF000AB3FEA7CF1C7FE0E3FF00B0A3
FE1567FD4F9E38FF00C1C7FF0061401DFD15C07FC2ACFF00A9F3C71FF838FF00EC28FF008559FF00
53E78E3FF071FF00D850076F757F6763E47DB2EE0B7F3E55821F3A409E648DF75173D58E0E00E4D7
11FF00370BFF0072AFFEDDD72FE39F83BA8EA5A55A5B69BE23F11EA9235D8DE9AA6A0B3430AF96F8
90A9DBD1B68246582B310AC7831FC3BF0B6A5E0FF8B71E97AA6B126A738F0B875662C5605F3D17CA
4DC49D8A54E385EBF745007B5D1451400514514005145140051451401C07C12FF9243A17FDBC7FE8
F92BBFAE03E097FC921D0BFEDE3FF47C95DFD0015C07C53FF992BFEC6AB1FF00D9EBBFAE03E29FFC
C95FF63558FF00ECF40078B7FE4AF7C3AFFB897FE885AEFEB80F16FF00C95EF875FF00712FFD10B5
DFD0014514500145145001451450015C0784BFE4AF7C45FF00B86FFE886AEFEB80F097FC95EF88BF
F70DFF00D10D401DFD14514005145140051451400514514005145140051451400514514005145140
0514514005145140051451400514514005145140051451400514514005707E2BF84DE1CF12DC1D46
DD24D235A57F363D42C0F96DE6E5983328E18EE6DC5B87381F30AEF28A00F20FEDEF88BF0DFE4F10
D97FC253E1E8B8FED2B418B98631FC520EF844663B8632C332D741FF000BA3C0DFF08F7F6BFF006B
FF00B3F62F2CFDA77ECDDB367E9BF3B33C6EAEFEBCC3FB0B47FF008685FF0090558FFC8BFF006EFF
008F74FF008F8FB5FF00AEE9FEB3FDAEBEF4019FFDBDF117E247C9E1EB2FF845BC3D2F1FDA576337
33467F8A31DB28EAC368C654E25AE8FC29F09BC39E1AB81A8DC249ABEB4CFE6C9A85F9F31BCDCAB1
6553C29DCBB8372E327E635DE5140051451400514514005145140051451400514514005145140051
45140051451400514514005794788FC53A3784BE3A477FAE5E7D92D64F0D0855FCA7932E6E490308
09E8A7F2AF57A280380FF85DBF0F3FE861FF00C92B8FFE3747FC2EDF879FF430FF00E495C7FF001B
AEFE8A00E03FE176FC3CFF00A187FF0024AE3FF8DD1FF0BB7E1E7FD0C3FF0092571FFC6EBBFAE03E
36FF00C921D77FEDDFFF0047C74007FC2EDF879FF430FF00E495C7FF001BA3FE176FC3CFFA187FF2
4AE3FF008DD77F4500701FF0BB7E1E7FD0C3FF0092571FFC6E8FF85DBF0F3FE861FF00C92B8FFE37
5DFD1401C07C12FF009243A17FDBC7FE8F92BBFA28A002B80F8A7FF3257FD8D563FF00B3D77F5C07
C53FF992BFEC6AB1FF00D9E8033FE246B7A77873E23780755D56E3ECF6307F68F992EC67DBBA1451
C2824F240E95A1FF000BB7E1E7FD0C3FF92571FF00C6EBBFA280380FF85DBF0F3FE861FF00C92B8F
FE3747FC2EDF879FF430FF00E495C7FF001BAEFE8A00E03FE176FC3CFF00A187FF0024AE3FF8DD1F
F0BB7E1E7FD0C3FF0092571FFC6EB5FE22DFD9D8FC3DD7FED97705BF9FA7DC410F9D204F324689F6
A2E7AB1C1C01C9AAFF000EB5DD1EFBC1BA069F67AAD8DC5F41A55BF9D6D0DC23C91ED8D15B728391
824039E8680287FC2EDF879FF430FF00E495C7FF001BA3FE176FC3CFFA187FF24AE3FF008DD77F45
00701FF0BB7E1E7FD0C3FF0092571FFC6EB3FE1BEB7A7788FE2378FB55D2AE3ED1633FF677972EC6
4DDB61753C30047208E95E9F45001451450014514500145145001451450014514500145145001451
450014514500145145001451450014514500145145001451450014514500145145001451450015E3
17FF00113C2BA67C74B9BFBCD53CBB5B5D15B4C99FECF29DB72B724B2602E4E003C8E3DEBD5F59D7
34BF0F69CF7FABDFC1656AB91BE67C6E2013B547566C038519271C0AF9E355F12F84B54F8C365E38
7B1D557C3D04B1C32DF7D95CC735E479D8D9DE36A8411BE00DC4260A7CC6803E97A2B3F46D734BF1
0E9C97FA45FC17B6AD81BE17CED2403B587556C119538233C8AD0A0028A28A0028A28A0028A28A00
28A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A002BCC3E3C6B7A758F
C39BBD2AE6E365F6A5B3EC916C63E6797344CFC81818073C919ED5E9F5E21F17FC63E1AF16686DE1
4D17CFD775B69526B51A6A34C913AE093B94E1F31B483E5DD8E73822803D5FC39E29D1BC5BA7497F
A1DE7DAED6394C2CFE53C787001230E01E8C3F3AD8AF38F84FE2DF075CF85F4CF0F687A86CBAB58B
61B5BA1E54D23E599DC29660DB8877C2336D04671D2BD1E800A28A2800A28A2800AE03E29FFCC95F
F63558FF00ECF5DFD701F14FFE64AFFB1AAC7FF67A00EFE8A28A0028AE6FC57E3CF0E7832DCBEB3A
8C71CE53747691FCF3C9C363083900952371C2E78245709FDBDF117E247C9E1EB2FF00845BC3D2F1
FDA57633733467F8A31DB28EAC368C654E25A00D8F8CDA8F85FF00E106BFD2B5CD4208AFA58BCEB1
8461A6F394318D82E0955254A17C0182C32335CBFECF373E1AB3D0EE2DA2D5606F10DF4BBE7B57DC
8E11376C450C71260077257A6FC1E82BB3F0A7C26F0E786AE06A370926AFAD33F9B26A17E7CC6F37
2AC5954F0A772EE0DCB8C9F98D5CF177C32F0BF8D374BA958F957C71FE9D6A44737F0F53821F850B
F303819C62803B0A2BC83FE2E8FC39FF00A9DF445FF796F13FF4263977FF00A69F2A7F00AEBFC23F
137C2FE34DB169B7DE55F1CFFA0DD011CDFC5D06487E14B7CA4E06338A00EC28A28A0028A28A0028
A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028
A28A0028A28A0028A28A0028A2A9EAD1DF4DA35F45A5CD1C1A83DBC8B6B2C832A92953B18F0780D8
3D0FD0D0047ACEB9A5F87B4E7BFD5EFE0B2B55C8DF33E371009DAA3AB3601C28C938E0579A4FF137
C47E33B8974FF871A1492401CC526B77EBB208F9DA4A83C120346E01CB63398CD707F61FF8473C65
F6FF008C1A46ABAA6F9765BEA7E779F64B9932A3CB00617895B667EE9C795CD7D07E1FD5745D5F46
827D02E6D27D3D11638C5AE02C4028210A8FB84295F9480471C0A00E1346F83B6F71A8A6B7E38D4E
7F126AE70DB26622DA2390FB553F89436FC038421B1B057A3FD82CFF00B3BFB3FEC907D87CAF23EC
DE58F2FCBC6DD9B7A6DC718E98AB145007986B3F076DEDF517D6FC0FA9CFE1BD5C65B642C4DB4A72
5F6B27F0A96D99032802E361AA707C4DF11F832E22D3FE23E852470171147ADD82EF824E7682C070
090B239030D8C62315EB7597E20D5745D23469E7D7EE6D20D3DD1A3905D60ACA0A925029FBE4A86F
94024F3C1A009346D734BF10E9C97FA45FC17B6AD81BE17CED2403B587556C119538233C8AD0AF9A
3EC3FF00091F8CBEDFF07F48D574BD92ECB8D4FCEF22C9B1265879641CAF3136CCFDD18F2B8AF548
3C29F125ADE26B8F8971C739406448F4381D55B1C80C7048CF7C0CFA0A00F43A2B80FF00844BE21F
FD14FF00FCA05BFF008D1FF0897C43FF00A29FFF00940B7FF1A00EFE8AE03FE112F887FF00453FFF
002816FF00E347FC225F10FF00E8A7FF00E502DFFC6803BFA2B80FF844BE21FF00D14FFF00CA05BF
F8D1FF000897C43FFA29FF00F940B7FF001A00EFE8AE03FE112F887FF453FF00F2816FFE347FC225
F10FFE8A7FFE502DFF00C6803BFA2BCC2297C65E1CF88DE15D2B55F187F6C58EADF6BF322FECC86D
F6F950EE1CAE49E483D474EF9AF4FA0028A28A0028A28A0028A28A0028A28A002BCE3C43F19742D3
EF0699E1EB79FC4DABBFDCB6D372E870031FDE0073F2963F206C6D20EDAE5FE2EF87BC73A8EAF24F
B2FB56F08F1FF12CD2AE04530F9631F3AF96C5FF0078370F964C007EEF5AEA3E18788FE1D5CD98B0
F08C7069B7527DFB39D765CC982E46589265C0DC7866DA0F38E94018FF00F08278E7E207EF3C7BAD
FF0065698DFF00306D28819FF7DB2CBF7911C64C9D4E3657A3F87BC2BA17852CCDAE87A641651B7D
F28097930491B9CE59B1B8E324E3381C56C51401C7F8BBE19785FC69BA5D4AC7CABE38FF004EB522
39BF87A9C10FC285F981C0CE315C87FC5D1F873FF53BE88BFEF2DE27FE84C72EFF00F4D3E54FE015
EBF450071FE11F89BE17F1A6D8B4DBEF2AF8E7FD06E808E6FE2E83243F0A5BE5270319C57615E11F
13F58F875E24BC36361A4CFE21F12C9F725D0F8738084EE942B093E45207CB26DDAC3E4EB5B1E11F
0A7C5BFEC854D57C6FFD97B73E5C325B457F372CD9DEEDF811F337071C631401EBF45701FF000897
C43FFA29FF00F940B7FF001ACFD7745F887A2787B53D57FE164F9DF61B496E7CAFEC3B75DFB10B6D
CE4E338C6706803D3EB80F8A7FF3257FD8D563FF00B3D74FE13BEB8D4FC1BA1DFDE49E65D5D69F04
D33ED0373B46A58E0703249E95CC7C53FF00992BFEC6AB1FFD9E803BFAF28F8C1ADF8E74BF293438
67B7F0F3440DF6A563009AE61FF59E6606E1B54200DBB0B838F9C57ABD1401E41F0A741F8757DB75
5D3EF7FB6FC427FD22E25D4CE6E6393E4667111E98720EF1B882C46F35EBF5C1F8AFE137873C4B70
751B749348D695FCD8F50B03E5B79B9660CCA3863B9B716E1CE07CC2B9CFEDEF88BF0DFE4F10D97F
C253E1E8B8FED2B418B98631FC520EF844663B8632C332D007AFD15CDF853C79E1CF19DB87D1B518
E49C26E92D24F9278F85CE50F2402C06E195CF009A3C57E3CF0E7832DCBEB3A8C71CE53747691FCF
3C9C363083900952371C2E78245007495E59F1674DF8686DDEE3C54D1DB6A8C9BA37B1205ECBC71F
280430223D81A41B474CAE6A9FF6F7C45F891F2787ACBFE116F0F4BC7F695D8CDCCD19FE28C76CA3
AB0DA31953896BA3F0A7C26F0E786AE06A370926AFAD33F9B26A17E7CC6F372AC5954F0A772EE0DC
B8C9F98D00701F0FF54F8BF736FB34F8A3BED1E473F66BFF0011A1460982EAFF002BF98C1C32F3FB
C03800E01AEF3FE2EFFF00D48FFF009375DFD1401C07FC5DFF00FA91FF00F26E8FF8BBFF00F523FF
00E4DD77F4500701FF00177FFEA47FFC9BA3FE2EFF00FD48FF00F9375DFD1401C07FC5DFFF00A91F
FF0026E8FF008BBFFF00523FFE4DD77F4500701FF177FF00EA47FF00C9BA3FE2EFFF00D48FFF0093
75DFD57BFF00B67F675CFF0067F91F6EF29BECFF0068CF97E660EDDF8E76E719C738A00E5FE1E788
F58F11E9DAC7F6E476297DA6EAB369EDF615711B79613246F249E49E78E31C57615E09F057C4DE29
D43C61AD697369D69059C97B71A96A8D2412AC90CCF85F2979C29DCA3E5619C2BF3915EF74005145
14005145140051451400514514005145140051451400514514005145140051451400514514011CF0
43756F2DBDC451CD04A85248E450CAEA460820F0411C62BCD359F83B6F6FA8BEB7E07D4E7F0DEAE3
2DB21626DA5392FB593F854B6CC81940171B0D7A7D1401E4907C4DF11F832E22D3FE23E852470171
147ADD82EF824E7682C070090B239030D8C62315DDFF00C271E17FF847BFB7BFB7AC7FB33A79FE68
FBDB37F97B7EF799B79D98DDED5B93C10DD5BCB6F711473412A1492391432BA9182083C104718AF1
CFF8575E12FF0085E9FD9FFD8907D87FB17FB4BECDB9FCBFB47DA76EEDB9C6DC71B3EE63B5005C9F
E26F88FC67712E9FF0E34292480398A4D6EFD76411F3B49507824068DC0396C67319AB9A37C1DB7B
8D4535BF1C6A73F89357386D933116D11C87DAA9FC4A1B7E01C210D8D82BD2E0821B5B78ADEDE28E
18224091C71A8554503000038000E3152500470410DADBC56F6F1470C112048E38D42AA28180001C
000718A928A2800A28A2800A28A2800A2BC63C1FF0EFC2BE2DD47C637FAE697F6BBA8FC4B7B0ABFD
A258F080A90308C07563F9D751FF000A4BE1E7FD0BDFF93B71FF00C72803BFA2B80FF8525F0F3FE8
5EFF00C9DB8FFE3947FC292F879FF42F7FE4EDC7FF001CA00F3FF8C371E32D2FE28787AE749BEDDE
7EE8F465F2A11E4CD2058A58F2D9DD9CA1DCFC0DF81F749AF77B086E2DF4EB686F2EBED7751C4A93
5C79623F35C0019F68E17272703A66B88FF8525F0F3FE85EFF00C9DB8FFE3947FC292F879FF42F7F
E4EDC7FF001CA00EFE8AE03FE1497C3CFF00A17BFF00276E3FF8E51FF0A4BE1E7FD0BDFF0093B71F
FC72803BFA2BCA3C59F083C09A678375CBFB3D0BCBBAB5D3E79A17FB5CE76BAC6C54E0BE0E081D6B
B7F027FC93DF0D7FD82AD7FF00452D0074145145001451450015C7F8BBE19785FC69BA5D4AC7CABE
38FF004EB52239BF87A9C10FC285F981C0CE315D851401E41FF1747E1CFF00D4EFA22FFBCB789FFA
131CBBFF00D34F953F80575FE11F89BE17F1A6D8B4DBEF2AF8E7FD06E808E6FE2E83243F0A5BE527
0319C57615E51F1CBC2BA14FE04D53C42FA640357B7F2B65DA028E774B1A1DD8C6FF009781BB38ED
8A00D0F10FC65D0B4FBC1A6787ADE7F136AEFF0072DB4DCBA1C00C7F7801CFCA58FC81B1B483B6B1
FF00E104F1CFC40FDE78F75BFECAD31BFE60DA51033FEFB6597EF2238C993A9C6CAF47F0F785742F
0A599B5D0F4C82CA36FBE5012F260923739CB36371C649C67038AD8A00C7F0F785742F0A599B5D0F
4C82CA36FBE5012F260923739CB36371C649C67038AD8A28A002B9FF001DFF00C93DF12FFD82AEBF
F45357415CFF008EFF00E49EF897FEC1575FFA29A800F027FC93DF0D7FD82AD7FF00452D607C53FF
00992BFEC6AB1FFD9EB7FC09FF0024F7C35FF60AB5FF00D14B581F14FF00E64AFF00B1AAC7FF0067
A00EFE8A28A0028A28A00F34F891F0E7C3975A36A7E27B7B6934ED6B4FB796FA3BBB07F259E58D5E
405801824B725B01F81F351F0DFE1CF872D746D33C4F716D26A3AD6A16F15F49777EFE7324B22A48
4A8230086E4360BF27E6AEAFC77FF24F7C4BFF0060ABAFFD14D47813FE49EF86BFEC156BFF00A296
803A0A28A2800A28A2800A28A2800AE1FE2FDFDE699F0B759BCB0BB9ED2EA3F2364D0486375CCF18
3861C8C8247E35DC5701F1B7FE490EBBFF006EFF00FA3E3A003FE1567FD4F9E38FFC1C7FF6147FC2
ACFF00A9F3C71FF838FF00EC2BBFA280380FF8559FF53E78E3FF00071FFD851FF0AB3FEA7CF1C7FE
0E3FFB0AEFE8A00F34B3F82DA6E9F71757165E2CF175B4F76FBEE24875154699B24E5C84CB1CB139
3EA7D6AE7FC2ACFF00A9F3C71FF838FF00EC2BBFA280380FF8559FF53E78E3FF00071FFD851FF0AB
3FEA7CF1C7FE0E3FFB0AEFE8A00F30F0E69F79E1CF8C92687FF090EB9AA58BF87CDE6CD4EF4CFB64
37013206001C0F4CF279E6BD3EBCA3C47E16D1BC5BF1D23B0D72CFED76B1F8684CA9E6BC78717240
39420F463F9D6C7FC292F879FF0042F7FE4EDC7FF1CA00EFE8AE03FE1497C3CFFA17BFF276E3FF00
8E557F83B636FA669DE2BB0B38FCBB5B5F12DE430A6E276A288C28C9E4E001D6803D1E8A28A0028A
28A0028A28A0028A28A0028A28A0028A28A0028A2BCE2C7E3159EA7671DE587837C63776B26764D0
6982446C120E183E0E0823F0A00F47A2B80FF85A7FF521F8E3FF0004FF00FD9D1FF0B4FF00EA43F1
C7FE09FF00FB3A00EFEBCB27F12E836BF1F25B8B8D6F4D8608BC3A6D64924BA4554985D64C649380
E073B7AD6A7FC2D3FF00A90FC71FF827FF00ECEBC8F5CD2E1D5BE2C5B7890780FC5C345775B8BEB4
6D206E9265CF013054A31085B71C9DCFEA2803E9BA2B80FF0085A7FF00521F8E3FF04FFF00D9D1FF
000B4FFEA43F1C7FE09FFF00B3A00EFE8AE03FE169FF00D487E38FFC13FF00F67447F15ECFFB474F
B3BCF0AF8AB4FF00B7DDC7670CD7DA788A3F31CE14162FF53C64E01E2803BFA28A2800A28A280380
F859FF0033AFFD8D57DFFB2577F5C07C2CFF0099D7FEC6ABEFFD92BBFA0028A28A0028A28A0028A2
8A00E7FC77FF0024F7C4BFF60ABAFF00D14D47813FE49EF86BFEC156BFFA2968F1DFFC93DF12FF00
D82AEBFF0045351E04FF00927BE1AFFB055AFF00E8A5A00E828A28A002B97F11FC44F0AF84B518EC
35CD53EC9752442654FB3CB26509201CA291D54FE55D45701FF370BFF72AFF00EDDD001FF0BB7E1E
7FD0C3FF0092571FFC6E8FF85DBF0F3FE861FF00C92B8FFE375DFD1401C07FC2EDF879FF00430FFE
495C7FF1BAF37F8CBE31F0278DBC2F03E99AD79BABD84BBEDD3ECB3AF988E409132CA147456C9CFD
CC0EB5F43D1401E21F0CBC7DF0F3C17E06B2D365D7B6DF4BFE937BFE87707F7CE0657EE91F280A99
07076E7BD761FF000BB7E1E7FD0C3FF92571FF00C6EBBFA280380FF85DBF0F3FE861FF00C92B8FFE
3747FC2EDF879FF430FF00E495C7FF001BAEFE8A00CFD135BD3BC47A441AAE9571F68B19F77972EC
64DDB58A9E1802390474ACFF001DFF00C93DF12FFD82AEBFF4535607C12FF9243A17FDBC7FE8F92B
7FC77FF24F7C4BFF0060ABAFFD14D4007813FE49EF86BFEC156BFF00A296B03E29FF00CC95FF0063
558FFECF5BFE04FF00927BE1AFFB055AFF00E8A5AC0F8A7FF3257FD8D563FF00B3D0077F45145001
4567EB3AE697E1ED39EFF57BF82CAD57237CCF8DC40276A8EACD8070A324E3815E693FC4DF11F8CE
E25D3FE1C6852490073149ADDFAEC823E7692A0F0480D1B8072D8CE633401B9F19B4DD2F53F86D7E
9A95E4169241FE9164F349B774E8AC4228DC37332EF5039FBD9C122B93FD9D743D36DBC3F7DACADD
5A4FAA5D38478E3915A4B584121430C6E42ECACD8CE182A1ED5B9A37C1DB7B8D4535BF1C6A73F893
57386D933116D11C87DAA9FC4A1B7E01C210D8D82AC7887E0D685A85E0D4FC3D713F867574FB973A
6E51064053FBB0463E50C3E42B9DC49DD401E8F457907FC277E39F87FF00BBF1EE89FDABA62FFCC6
74A00E3FDF5C2AFDE7441911F438DF5E8FE1EF15685E2BB3375A1EA705EC6BF7C2121E3C9206E438
65CED38C819C6471401B145145001451450015C07C6DFF009243AEFF00DBBFFE8F8EBBFAE3FE28E8
9A8F88FE1CEABA56956FF68BE9FC9F2E2DEA9BB6CC8C796200E013D6803B0A2B80FF0084B7E21FFD
130FFCAFDBFF00851FF096FC43FF00A261FF0095FB7FF0A00EFE8AE03FE12DF887FF0044C3FF002B
F6FF00E147FC25BF10FF00E8987FE57EDFFC2803BFA2B80FF84B7E21FF00D130FF00CAFDBFF851FF
00096FC43FFA261FF95FB7FF000A00EFE8AE03FE12DF887FF44C3FF2BF6FFE147FC25BF10FFE8987
FE57EDFF00C2800FF9B85FFB957FF6EEBBFAF38F0E5AF8AB53F8A7278975CF0CFF0062DAAE8A6C14
7DBE2B9DCFE78907DCE46413DBB75E6BD1E800AE03E167FCCEBFF6355F7FEC95DFD701F0B3FE675F
FB1AAFBFF64A00EFE8A28A0028A28A0028A28A0028A28A0028A28A0028A28A002B80F825FF002487
42FF00B78FFD1F2577F5C07C12FF009243A17FDBC7FE8F92803BFA28A2800A28A2800A28A2800AE0
3E29FF00CC95FF0063558FFECF5DFD701F14FF00E64AFF00B1AAC7FF0067A00EFE8A28A0028A28A0
0F30D3FC39F11FC39A8EBBFD8727855EC752D56E3505FB735C1917CC2300EC000E00E39E73CD687F
C5DFFF00A91FFF0026EBBFA280380FF8BBFF00F523FF00E4DD1FF177FF00EA47FF00C9BAEFE8A00F
28D47C47F14F4CF11E8BA1CD1F839AEB57F3FECEE8B74517CA40EDB893919078C03F856C7FC5DFFF
00A91FFF0026EB87F8ABE3FB8F0C7C57D0269F44F323D1E29A680FDAC0FB5A4F188C9E14ECDACAC3
9CE71D8115ED7A4DE4DA868D637B7169259CF716F1CB25B499DD0B328250E403904E3A0E9D28038C
FF008BBFFF00523FFE4DD1FF00177FFEA47FFC9BAEFE8A00F34D5B4DF8B3ACE8D7DA5DC3782960BD
B792DE468CDD060AEA54919046707D0D76FE1AD366D1BC2DA469770D1B4F65650DBC8D19254B2205
2464038C8F415A945001451450015C07FCDC2FFDCABFFB775DFD701FF370BFF72AFF00EDDD0077F4
514500145145001451450014514500701F04BFE490E85FF6F1FF00A3E4ADFF001DFF00C93DF12FFD
82AEBFF4535607C12FF9243A17FDBC7FE8F92B7FC77FF24F7C4BFF0060ABAFFD14D4007813FE49EF
86BFEC156BFF00A296B03E29FF00CC95FF0063558FFECF5BFE04FF00927BE1AFFB055AFF00E8A5AC
0F8A7FF3257FD8D563FF00B3D0077F5E59F167E22EBDE0FB8B5D3F4BD3E3B782ED1036B7751BBC10
33975DA02A91BD4287FE2E33F21AF53A8E7821BAB796DEE228E6825429247228657523041078208E
31401E49E0DF873A178A7CAF157887C45FF0985F3E0E7CC3F66818ED93CBD9D7E52CDF23055C3E0C
62BD6E0821B5B78ADEDE28E18224091C71A8554503000038000E315E69ACFC1DB7B7D45F5BF03EA7
3F86F57196D90B136D29C97DAC9FC2A5B6640CA00B8D86A9C1F137C47E0CB88B4FF88FA1491C05C4
51EB760BBE0939DA0B01C0242C8E40C363188C5007ADD159FA36B9A5F8874E4BFD22FE0BDB56C0DF
0BE769201DAC3AAB608CA9C119E451ACEB9A5F87B4E7BFD5EFE0B2B55C8DF33E371009DAA3AB3601
C28C938E050068579478EBE1B783B4E88F88AD757FF8432FA2C84BCB37F2D09DBCA888119628AE02
C6549C924374A8E7F89BE23F19DC4BA7FC38D0A49200E62935BBF5D9047CED2541E0901A3700E5B1
9CC66AE68DF076DEE3514D6FC71A9CFE24D5CE1B64CC45B44721F6AA7F1286DF80708436360A00E5
FC0DF15BC7BA9F9B64BE1AFF0084A552568A3D4EDB3691B15CB1DEEC9B0654AE0108718C824D771F
F096FC43FF00A261FF0095FB7FF0AEEE0821B5B78ADEDE28E18224091C71A8554503000038000E31
52500701FF00096FC43FFA261FF95FB7FF000A3FE12DF887FF0044C3FF002BF6FF00E15DFD1401C0
7FC25BF10FFE8987FE57EDFF00C28FF84B7E21FF00D130FF00CAFDBFF8577F4500701FF096FC43FF
00A261FF0095FB7FF0A3FE12DF887FF44C3FF2BF6FFE15DFD1401C07FC25BF10FF00E8987FE57EDF
FC28FF0084B7E21FFD130FFCAFDBFF008577F4500701FF00096FC43FFA261FF95FB7FF000A3FE12D
F887FF0044C3FF002BF6FF00E15DFD1401C07FC25BF10FFE8987FE57EDFF00C28FF84B7E21FF00D1
30FF00CAFDBFF8577F4500701FF096FC43FF00A261FF0095FB7FF0A3FE12DF887FF44C3FF2BF6FFE
15DFD1401C7F837C65A8F88F57D6F4AD5740FEC7BED27C8F322FB62DC6EF3559872AA00E003D4F5E
D8AA1F0B3FE675FF00B1AAFBFF0064A3C25FF257BE22FF00DC37FF0044351F0B3FE675FF00B1AAFB
FF0064A00EFE8A28A0028A28A0028A28A0028A28A0028A28A0028A28A002B80F825FF248742FFB78
FF00D1F2577F5C07FC292F879FF42F7FE4EDC7FF001CA00EFE8AE03FE1497C3CFF00A17BFF00276E
3FF8E51FF0A4BE1E7FD0BDFF0093B71FFC72803BFA2B80FF008525F0F3FE85EFFC9DB8FF00E395C7
FF00C2AEF06FFC2E4FEC1FEC6FF8967FC23FF6DF23ED537FAEFB46CDDBB7EEFBBC6338F6A00F6FA2
B80FF8525F0F3FE85EFF00C9DB8FFE3947FC292F879FF42F7FE4EDC7FF001CA00EFEB80F8A7FF325
7FD8D563FF00B3D1FF000A4BE1E7FD0BDFF93B71FF00C72A7B0F841E04D3351B6BFB3D0BCBBAB595
6685FED739DAEA415382F8382075A00EE28A28A0028A28A00F28D1078EFC5BA8F8926B3F1CFF0066
5AD86B575610DBFF0064C13611082BF31C1E8C0739E9D79AD8FF00844BE21FFD14FF00FCA05BFF00
8D1F0B3FE675FF00B1AAFBFF0064AEFE80380FF844BE21FF00D14FFF00CA05BFF8D1FF000897C43F
FA29FF00F940B7FF001AEFE8A00F28D63E14F8AB5ED474CBFD4FE21F9F75A5CBE759BFF62C4BE53E
54E70AE01E517AE7A56C7FC225F10FFE8A7FFE502DFF00C6BBFA280380FF00844BE21FFD14FF00FC
A05BFF008D1FF0897C43FF00A29FFF00940B7FF1AEFE8A00F30D7745F887A2787B53D57FE164F9DF
61B496E7CAFEC3B75DFB10B6DCE4E338C6706BB7F09DF5C6A7E0DD0EFEF24F32EAEB4F82699F681B
9DA352C70381924F4AAFE3BFF927BE25FF00B055D7FE8A6A3C09FF0024F7C35FF60AB5FF00D14B40
1D051451400571FE23F87967E23F10C7AE7F6DEB9A5DF25A0B3DFA65D8837461CBE09DA49E4FAE38
1C715D851401C07FC2ACFF00A9F3C71FF838FF00EC28FF008559FF0053E78E3FF071FF00D8577F45
00701FF0AB3FEA7CF1C7FE0E3FFB0AE5FE22783EF3C25E04D4B5CB0F1C78C64BAB5F2B624FAB1287
74A88720283D18F7AF67AE03E36FFC921D77FEDDFF00F47C74007FC2ACFF00A9F3C71FF838FF00EC
28FF008559FF0053E78E3FF071FF00D8577F4500701FF0AB3FEA7CF1C7FE0E3FFB0A3FE1567FD4F9
E38FFC1C7FF615DFD14018FE16F0E59F84BC3969A1D8493C96B6BBF63CEC0B9DCECE724003AB1ED5
5FC77FF24F7C4BFF0060ABAFFD14D5D0573FE3BFF927BE25FF00B055D7FE8A6A003C09FF0024F7C3
5FF60AB5FF00D14B581F14FF00E64AFF00B1AAC7FF0067ADFF00027FC93DF0D7FD82AD7FF452D607
C53FF992BFEC6AB1FF00D9E803BFA28A2800A8E7821BAB796DEE228E682542924722865752304107
8208E315251401E69A97C1CB187595D67C1FABDDF85F502E0C9F651E640EBB8B106324705B6FCB9D
98503651A6FC1CB19B596D67C61ABDDF8A3500E4C7F6A1E5C08BB83002304F01B77CB9D98623657A
5D14011C10436B6F15BDBC51C304481238E350AA8A06000070001C62A4A28A0028A28A0028A28A00
28A28A0028A28A0028A28A0028A28A0028A28A0028A28A00E03C25FF00257BE22FFDC37FF44351F0
B3FE675FFB1AAFBFF64A3C25FF00257BE22FFDC37FF44351F0B3FE675FFB1AAFBFF64A00EFE8A28A
0028A28A0028A28A0028A28A0028A28A0028A28A002B9FFF0084EFC21FF435E87FF83187FF008AAE
82BCA3E10784FC37A9FC2DD1AF2FFC3FA55DDD49E7EF9A7B38E476C4F2019623270001F850076FFF
0009DF843FE86BD0FF00F0630FFF001547FC277E10FF00A1AF43FF00C18C3FFC551FF0827843FE85
4D0FFF0005D0FF00F1347FC209E10FFA15343FFC1743FF00C4D001FF0009DF843FE86BD0FF00F063
0FFF00155E01E237F3BE38C7F61F1F797A66A1876D4A1D631F66B72C5E483CD1F2A6195B62723E68
F3D4D7BFFF00C209E10FFA15343FFC1743FF00C4D1FF000827843FE854D0FF00F05D0FFF00134007
FC277E10FF00A1AF43FF00C18C3FFC551FF09DF843FE86BD0FFF000630FF00F1547FC209E10FFA15
343FFC1743FF00C4D1FF000827843FE854D0FF00F05D0FFF00134007FC277E10FF00A1AF43FF00C1
8C3FFC5549078CFC2D757115BDBF897469A795C2471C77F1333B1380000D9249E3151FFC209E10FF
00A15343FF00C1743FFC4D719F107C35A0E8D71E0CB8D2F44D36C676F1458A3496B6A91315CB9C12
A01C64038F61401EA7451450014514500701F0B3FE675FFB1AAFBFF64AEFEBC83C35E25BCF076A3E
2AB3BCF07F8AAF3ED5E20BBBC866B1D30C91B46C405218919CED278E304735D07FC2D3FF00A90FC7
1FF827FF00ECE803BFA2B80FF85A7FF521F8E3FF0004FF00FD9D1FF0B4FF00EA43F1C7FE09FF00FB
3A00EFE8AF389BE3159DBDE5B59CDE0DF18C77575BBECF0BE9803CBB465B6A97CB607271D2AC7FC2
D3FF00A90FC71FF827FF00ECE803BFA2B80FF85A7FF521F8E3FF0004FF00FD9D1FF0B4FF00EA43F1
C7FE09FF00FB3A00DFF1DFFC93DF12FF00D82AEBFF0045351E04FF00927BE1AFFB055AFF00E8A5AE
33C4BF1066D67C2DABE976FE05F1AACF7B6535BC6D26904286742A09C3138C9F435DBF83209AD7C0
BE1EB7B88A48678B4CB64923914AB2308941041E41078C5006E51451400565EA5E25D0746B85B7D5
35BD36C67640EB1DD5D244C5724640620E3208CFB1AD4AF34D4B49D3759F8F8B6FAA69F697D02F85
C3AC7750ACAA1BED4464060467048CFB9A00EAFF00E13BF087FD0D7A1FFE0C61FF00E2A8FF0084EF
C21FF435E87FF83187FF008AA3FE104F087FD0A9A1FF00E0BA1FFE268FF8413C21FF0042A687FF00
82E87FF89A003FE13BF087FD0D7A1FFE0C61FF00E2ABCC3E39EAFA3EBDE0B49746F17D8C925ACA3C
EB0B6D4908BA8D8AF58D49DECAC1186780379EB8AF4FFF008413C21FF42A687FF82E87FF0089A3FE
104F087FD0A9A1FF00E0BA1FFE2680390F865E26D1F4BF03597F6F78EAC6F353BAFF004A9BEDBABA
48F0EE036C7F390CB850B953D18B575FFF0009DF843FE86BD0FF00F0630FFF001547FC209E10FF00
A15343FF00C1743FFC4D1FF0827843FE854D0FFF0005D0FF00F134007FC277E10FFA1AF43FFC18C3
FF00C551FF0009DF843FE86BD0FF00F0630FFF001547FC209E10FF00A15343FF00C1743FFC4D1FF0
827843FE854D0FFF0005D0FF00F13401B1637F67A9D9C779617705DDAC99D934120911B0483861C1
C1047E158FE3BFF927BE25FF00B055D7FE8A6AC0F825FF00248742FF00B78FFD1F256FF8EFFE49EF
897FEC1575FF00A29A800F027FC93DF0D7FD82AD7FF452D607C53FF992BFEC6AB1FF00D9EB7FC09F
F24F7C35FF0060AB5FFD14B581F14FFE64AFFB1AAC7FF67A00CFF891A269DE23F88DE01D2B55B7FB
458CFF00DA3E645BD9376D851872A411C807AD687FC292F879FF0042F7FE4EDC7FF1CA3C5BFF0025
7BE1D7FDC4BFF442D77F401C07FC292F879FF42F7FE4EDC7FF001CA3FE1497C3CFFA17BFF276E3FF
008E577F4500701FF0A4BE1E7FD0BDFF0093B71FFC728FF8525F0F3FE85EFF00C9DB8FFE395DFD14
01C07FC292F879FF0042F7FE4EDC7FF1CA3FE1497C3CFF00A17BFF00276E3FF8E577F4500701FF00
0A4BE1E7FD0BDFF93B71FF00C72B3FE1BE89A77873E2378FB4AD2ADFECF6307F6779716F67DBBA17
63CB124F249EB5E9F5C0784BFE4AF7C45FFB86FF00E886A00EFE8A28A0028A28A0028A28A0028A28
A0028A28A0028A28A0028A28A00E03C25FF257BE22FF00DC37FF0044351F0B3FE675FF00B1AAFBFF
0064A3C25FF257BE22FF00DC37FF0044351F0B3FE675FF00B1AAFBFF0064A00EFE8A28A0028A28A0
028A28A0028A28A0028A28A0028A28A002B80F825FF248742FFB78FF00D1F2577F5C07C12FF9243A
17FDBC7FE8F92803BFA28A2800A28A2800A28A2800AE03E29FFCC95FF63558FF00ECF5DFD701F14F
FE64AFFB1AAC7FF67A00EFE8A28A0028A28A0028A28A0028A28A00E03C5BFF00257BE1D7FDC4BFF4
42D77F5C078B7FE4AF7C3AFF00B897FE885AEFE800A28A2800A28A2800A28A2800AE03FE6E17FEE5
5FFDBBAEFEB80FF9B85FFB957FF6EE803BFA28A2800A28A2800A28A2800A28A280380F825FF24874
2FFB78FF00D1F256FF008EFF00E49EF897FEC1575FFA29AB03E097FC921D0BFEDE3FF47C95BFE3BF
F927BE25FF00B055D7FE8A6A003C09FF0024F7C35FF60AB5FF00D14B581F14FF00E64AFF00B1AAC7
FF0067ADFF00027FC93DF0D7FD82AD7FF452D607C53FF992BFEC6AB1FF00D9E800F16FFC95EF875F
F712FF00D10B5DFD701E3DD3FC45FF00097F84B5ED0743FED7FECAFB679D07DAE3B7FF005B1AA2FC
CE7FDE3C03D3B668FF0084B7E21FFD130FFCAFDBFF00850077F45701FF00096FC43FFA261FF95FB7
FF000A3FE12DF887FF0044C3FF002BF6FF00E1401DFD15E717FE3BF1DE99A75CDFDE7C34F2ED6D62
69A67FEDD80ED4504B1C05C9C007A5161E3BF1DEA7A75B5FD9FC34F32D6EA259A17FEDD806E4600A
9C15C8C823AD007A3D15C07FC25BF10FFE8987FE57EDFF00C28FF84B7E21FF00D130FF00CAFDBFF8
50077F5C0784BFE4AF7C45FF00B86FFE886A3FE12DF887FF0044C3FF002BF6FF00E14780B4FF0011
7FC25FE2DD7B5ED0FF00B23FB57EC7E4C1F6B8EE3FD546C8DF321FF74F2075EF8A00EFE8A28A0028
A28A0028A28A0028A28A0028A28A0028A28A0028A28A00E03C25FF00257BE22FFDC37FF44351F0B3
FE675FFB1AAFBFF64A3C25FF00257BE22FFDC37FF44351F0B3FE675FFB1AAFBFF64A00EFE8A28A00
28A28A0028A28A0028A28A0028A28A0028A28A002BCA3C2DE1CF8A7E12F0E5A687612783A4B5B5DF
B1E76BA2E773B39C9000EAC7B57ABD1401C07FC5DFFF00A91FFF0026E8FF008BBFFF00523FFE4DD7
7F4500701FF177FF00EA47FF00C9BAC7FF00848FE29FFC265FF08BF97E0EFB77F67FF68799B6EBCB
F2FCCF2F19CE7767B6318EF5EAF5E01ADFC45D4747F8F73EDF0D79F7CB68BA2416BF6E55F3B7CC24
8E5DFB485DC197E53D33C9E0D007A07FC5DFFF00A91FFF0026E8FF008BBFFF00523FFE4DD77F4500
701FF177FF00EA47FF00C9BACFD43C39F11FC47A8E85FDB9278552C74DD56DF506FB0B5C091BCB27
206F041E09E38E71CD7A7D140051451400514514005145140051451401C078B7FE4AF7C3AFFB897F
E885AEFEB80F16FF00C95EF875FF00712FFD10B5DFD0014514500145145001451450015C0788FC39
E2FF00F85851F8A3C2F2687FF20A1A7BC7A9B4DFF3D4C848118FF779CFAF15DFD1401C07FC5DFF00
FA91FF00F26E8FF8BBFF00F523FF00E4DD77F4500701FF00177FFEA47FFC9BAC7F14F88FE29F84BC
3977AE5FC7E0E92D6D766F4816E8B9DCEA8300903AB0EF5EAF5C07C6DFF9243AEFFDBBFF00E8F8E8
00FF008BBFFF00523FFE4DD1FF00177FFEA47FFC9BAEFE8A00E03FE2EFFF00D48FFF0093747FC5DF
FF00A91FFF0026EBBFA280397F877E1CBCF0978134DD0EFE4824BAB5F377BC0C4A1DD2BB8C1201E8
C3B558F1DFFC93DF12FF00D82AEBFF0045357415CFF8EFFE49EF897FEC1575FF00A29A800F027FC9
3DF0D7FD82AD7FF452D607C53FF992BFEC6AB1FF00D9EB7FC09FF24F7C35FF0060AB5FFD14B581F1
4FFE64AFFB1AAC7FF67A00EFE8A28A0028A28A00E7FC77FF0024F7C4BFF60ABAFF00D14D47813FE4
9EF86BFEC156BFFA296B1FE2E6B371A27C36D5A6834FFB5C771135A4E7CE11F9092A98C49C83BB0C
CA368FEF75001AC8F831E34BCF14F87A2B0FEC5FB2D8E8F69059FDB1AE0B79F22A01855D800E064F
CC48DCBC1CE4007A7D14514005145140051451400514514005145140051451400514514005145140
051451401C0784BFE4AF7C45FF00B86FFE886A3E167FCCEBFF006355F7FEC94784BFE4AF7C45FF00
B86FFE886A3E167FCCEBFF006355F7FEC9401DFD1451400514514005145140051451400514514005
1451400579078260F887E31F0858EBDFF0B0FEC7F6AF33F71FD8B6F26DDB2327DEE339DB9E9DEBD7
EB80F825FF00248742FF00B78FFD1F25001FF0897C43FF00A29FFF00940B7FF1A3FE112F887FF453
FF00F2816FFE35DFD1401C07FC225F10FF00E8A7FF00E502DFFC6B1EE3E14F8AAEFC5169E259FE21
EFD5ED2230C171FD8B10D8843023687DA7EFB751DFE95EAF4500701FF0897C43FF00A29FFF00940B
7FF1A3FE112F887FF453FF00F2816FFE35DFD1401C07FC225F10FF00E8A7FF00E502DFFC6B1F5B1E
3BF096A3E1B9AF3C73FDA76B7FAD5AD84D6FFD9304394724B7CC327A291C63AF5E2BD5EB80F8A7FF
003257FD8D563FFB3D0077F4514500145145001451450014514500701E2DFF0092BDF0EBFEE25FFA
216BBFAE03C5BFF257BE1D7FDC4BFF00442D77F40051451400514514005145140051451400514514
005701F1B7FE490EBBFF006EFF00FA3E3AEFEB80F8DBFF0024875DFF00B77FFD1F1D0077F4514500
1451450015CFF8EFFE49EF897FEC1575FF00A29ABA0AE7FC77FF0024F7C4BFF60ABAFF00D14D4007
813FE49EF86BFEC156BFFA296B03E29FFCC95FF63558FF00ECF5BFE04FF927BE1AFF00B055AFFE8A
5AC0F8A7FF003257FD8D563FFB3D0077F45159FACEB9A5F87B4E7BFD5EFE0B2B55C8DF33E371009D
AA3AB3601C28C938E050068567EB3AE697E1ED39EFF57BF82CAD57237CCF8DC40276A8EACD8070A3
24E3815E693FC4DF11F8CEE25D3FE1C6852490073149ADDFAEC823E7692A0F0480D1B8072D8CE633
57346F83B6F71A8A6B7E38D4E7F126AE70DB26622DA2390FB553F89436FC038421B1B050065EADE3
FD6BE235BDF681E03F0F4971A7DCA496975AC5F831C0A8C0A3ED1C73B5D1C6496C67F7759FA06B3E
23F82DA5AE93E23F0BC775A0A397FED6D23E63B9B9264DD8C9DCD1C60B797C2F1BB02BDBE0821B5B
78ADEDE28E18224091C71A8554503000038000E315250063F87BC55A178AECCDD687A9C17B1AFDF0
84878F2481B90E1973B4E32067191C56C579C7887E0D685A85E0D4FC3D713F867574FB973A6E5106
4053FBB0463E50C3E42B9DC49DD58FFF0009DF8E7E1FFEEFC7BA27F6AE98BFF319D28038FF007D70
ABF79D106447D0E37D007AFD158FE1EF15685E2BB3375A1EA705EC6BF7C2121E3C9206E43865CED3
8C819C64715B140051451400571FF1475BD47C39F0E755D574AB8FB3DF41E4F972EC57DBBA6453C3
020F048E95D857947C4CF15685E2BF82BAF5D687A9C17B1AFD9F784243C79B8403721C32E769C640
CE3238A00D8FF844BE21FF00D14FFF00CA05BFF8D1FF000897C43FFA29FF00F940B7FF001AEFE8A0
0E03FE112F887FF453FF00F2816FFE347FC225F10FFE8A7FFE502DFF00C6BBFA280380FF00844BE2
1FFD14FF00FCA05BFF008D1FF0897C43FF00A29FFF00940B7FF1AEFE8A00E03FE112F887FF00453F
FF002816FF00E347FC225F10FF00E8A7FF00E502DFFC6BBFA2803CE3C3975E2AD33E29C9E1AD73C4
DFDB56ADA29BF53F608ADB6BF9E231F7393800F7EFD38AF47AE03FE6E17FEE55FF00DBBAEFE80380
F097FC95EF88BFF70DFF00D10D47C2CFF99D7FEC6ABEFF00D928F097FC95EF88BFF70DFF00D10D47
C2CFF99D7FEC6ABEFF00D92803BFA28A2800A28A2800A28A2800A28A2800A28A2800A28A2800AE03
E097FC921D0BFEDE3FF47C95DFD78C7C3BF185E784BC09A6E877FE07F18C9756BE6EF78349250EE9
5DC609607A30ED401ECF45701FF0B4FF00EA43F1C7FE09FF00FB3A3FE169FF00D487E38FFC13FF00
F67401DFD15C07FC2D3FFA90FC71FF00827FFECEABFF00C2E2B3FED1FECFFF008437C63F6EF2BCFF
00B37F660F33CBCEDDFB77E76E78CF4CD007A3D15C07FC2D3FFA90FC71FF00827FFECE8FF85A7FF5
21F8E3FF0004FF00FD9D0077F5C07C53FF00992BFEC6AB1FFD9E8FF85A7FF521F8E3FF0004FF00FD
9D73FE25F12DE78C751F0AD9D9F83FC5567F65F105A5E4D35F698638D63524312C09C63703CF1807
9A00F5FA28A2800A28A2800A28A2800A28A280380F16FF00C95EF875FF00712FFD10B5DFD701E2DF
F92BDF0EBFEE25FF00A216BBFA0028A28A0028A28A0028A28A0028A28A0028A28A002B80F8DBFF00
24875DFF00B77FFD1F1D77F5C07C6DFF009243AEFF00DBBFFE8F8E803BFA28A2800A28A2800AE7FC
77FF0024F7C4BFF60ABAFF00D14D5D0573FE3BFF00927BE25FFB055D7FE8A6A003C09FF24F7C35FF
0060AB5FFD14B581F14FFE64AFFB1AAC7FF67ADFF027FC93DF0D7FD82AD7FF00452D607C53FF0099
2BFEC6AB1FFD9E803BFAF38F88FF000A93C6DA8DBEB767A8FD9757B48963852E2159ADA4085DD55D
08EECC324EE1818DA6BD1E8A00F20B0F88DAEF80BECDA3F8FF00C3BF65B18F6DBDBEAFA6460DB151
855CA0E178477C2E1800008C57A7E8DAE697E21D392FF48BF82F6D5B037C2F9DA48076B0EAAD8232
A70467915727821BAB796DEE228E6825429247228657523041078208E315E69ACFC1DB7B7D45F5BF
03EA73F86F57196D90B136D29C97DAC9FC2A5B6640CA00B8D86803D3E8AF2483E26F88FC1971169F
F11F4292380B88A3D6EC177C1273B416038048591C8186C63118A27F89BE23F19DC4BA7FC38D0A49
200E62935BBF5D9047CED2541E0901A3700E5B19CC66803D2F59D734BF0F69CF7FABDFC1656AB91B
E67C6E2013B547566C038519271C0AF349FE26F88FC67712E9FF000E34292480398A4D6EFD76411F
3B49507824068DC0396C67319AB9A37C1DB7B8D4535BF1C6A73F89357386D933116D11C87DAA9FC4
A1B7E01C210D8D82BD2E0821B5B78ADEDE28E18224091C71A8554503000038000E31401E41A07ECF
BA2C4EB7DE26BB9351BC91CC92DBDAA8B6B505979501006C062482A506303681907A4FF8525F0F3F
E85EFF00C9DB8FFE395DFD1401C07FC292F879FF0042F7FE4EDC7FF1CA3FE1497C3CFF00A17BFF00
276E3FF8E577F4500701FF000A4BE1E7FD0BDFF93B71FF00C72BC9FC57F05EDFC27F0D2FF5ABEBBD
FA9DAF92552DDCB2659E38DC33301B9792CA02A15DC4132601AFA5EB87F8BF6179A9FC2DD66CEC2D
27BBBA93C8D90C11991DB13C64E147270013F850077145701FF0B4FF00EA43F1C7FE09FF00FB3A3F
E169FF00D487E38FFC13FF00F67401DFD15C07FC2D3FFA90FC71FF00827FFECE8FF85A7FF521F8E3
FF0004FF00FD9D0077F4579C5AFC62B3BEF3FEC7E0DF18DC7912B413793A607F2E45FBC8D87E1864
641E4558FF0085A7FF00521F8E3FF04FFF00D9D0077F45701FF0B4FF00EA43F1C7FE09FF00FB3A3F
E169FF00D487E38FFC13FF00F674007FCDC2FF00DCABFF00B775DFD798787350BCF11FC64935CFF8
47B5CD2EC53C3E6CF7EA76460DD20B80F807241E0FAE783C715E9F401C0784BFE4AF7C45FF00B86F
FE886A3E167FCCEBFF006355F7FEC94784BFE4AF7C45FF00B86FFE886A3E167FCCEBFF006355F7FE
C9401DFD1451400514514005145140051451400514514005145140051451400514514005701FF370
BFF72AFF00EDDD77F5C07FCDC2FF00DCABFF00B77401DFD145140051451400514514005145140051
45140051451401C078B7FE4AF7C3AFFB897FE885AEFEBC53E24FC40D37C3FF0016BC32F7D63A904D
112E5E66585713ACF0854316586E0181049C60A90338AF63B0BAFB769D6D79F679EDFCF8965F26E1
36491EE00ED75ECC33823B1A00B145145001451450014514500145145001451450015C07C6DFF924
3AEFFDBBFF00E8F8EBBFAE03E36FFC921D77FEDDFF00F47C7401DFD145140051451400573FE3BFF9
27BE25FF00B055D7FE8A6AE82B9FF1DFFC93DF12FF00D82AEBFF004535001E04FF00927BE1AFFB05
5AFF00E8A5AC0F8A7FF3257FD8D563FF00B3D6FF00813FE49EF86BFEC156BFFA296B03E29FFCC95F
F63558FF00ECF401DFD145140051451401CFF8EFFE49EF897FEC1575FF00A29A8F027FC93DF0D7FD
82AD7FF452D65FC56D721D0BE1CEAEF3DADDCE9796F25906B78C3089A48D955DF246D4DD819F5603
073599F08BC7361E27F0F5A68D63657CB268FA7DBC3753CCB188F7840A02E1CB1CEC623E5E839C1C
0201E8F45145001451450014514500145145001451450014514500701F0B3FE675FF00B1AAFBFF00
64AEFEB80F859FF33AFF00D8D57DFF00B2577F4005145140051451401C0784BFE4AF7C45FF00B86F
FE886A3E167FCCEBFF006355F7FEC94784BFE4AF7C45FF00B86FFE886A3E167FCCEBFF006355F7FE
C9401DFD1451400514514005145140051451400514514005145140051451400514514005701FF370
BFF72AFF00EDDD77F5C07FCDC2FF00DCABFF00B77401DFD14514005145140051451400514557FB7D
9FF68FF67FDAE0FB7795E7FD9BCC1E67979DBBF6F5DB9E33D33401E71A7F88FE23F88F51D77FB0E3
F0AA58E9BAADC69EBF6E5B81237964609D8483C11CF1CE78AD0FF8BBFF00F523FF00E4DD1F0B3FE6
75FF00B1AAFBFF0064AEFE80380FF8BBFF00F523FF00E4DD1FF177FF00EA47FF00C9BAEFE8A00F14
F14FC3BF883E30D674AD53548FC1467D39F2AA8B71B675DC1B64BB94964C83C647DF6F5AEB3FE2EF
FF00D48FFF009375DFD1401C07FC5DFF00FA91FF00F26E8FF8BBFF00F523FF00E4DD77F450079A6A
DA97C59D1B46BED52E17C14D0595BC97122C62E8B15452C40C903381EA2BB7F0D6A536B3E16D2354
B858D67BDB286E2458C10A19D03103249C64FA9AA7E3BFF927BE25FF00B055D7FE8A6AF14D63C31F
142EFE1A68E74BD764D4F45974C8246B0B58D6DE78E3309FDD9DA019902E171B896247C8719A00FA
2E8AF2CF0D7843E20AF85B4854F881269E82CA10B6526850B35B8D83F764B1C92BD3279E39AD4FF8
44BE21FF00D14FFF00CA05BFF8D0077F45701FF0897C43FF00A29FFF00940B7FF1A3FE112F887FF4
53FF00F2816FFE3401DFD15C07FC225F10FF00E8A7FF00E502DFFC68FF00844BE21FFD14FF00FCA0
5BFF008D0077F5C07C6DFF009243AEFF00DBBFFE8F8E8FF844BE21FF00D14FFF00CA05BFF8D67EB7
F0DFC65E23D227D2B55F88FF0068B19F6F9917F61C29BB6B061CAB023900F5A00F4FA28A2800A28A
2800AE7FC77FF24F7C4BFF0060ABAFFD14D5D0573FE3BFF927BE25FF00B055D7FE8A6A003C09FF00
24F7C35FF60AB5FF00D14B581F14FF00E64AFF00B1AAC7FF0067ADFF00027FC93DF0D7FD82AD7FF4
52D607C53FF992BFEC6AB1FF00D9E8027F1BF88FC49A6788FC37A1F86A3D29AEB57FB565F52590A2
F948AFD50E46416EC7B74A83FE2EFF00FD48FF00F937478B7FE4AF7C3AFF00B897FE885AEFE80380
FF008BBFFF00523FFE4DD1FF00177FFEA47FFC9BAEFE8A00F30D7346F8A7E21D0EF748BF4F03BDAD
DC4D13E05D12B9E8CB9040607041C7040359FE0EF077C4BF03E87FD93A4FFC21CD0B4AD34924EF76
CF239C0C9C000701470074F5C93EBF4500701FF177FF00EA47FF00C9BA3FE2EFFF00D48FFF009375
DFD1401C07FC5DFF00FA91FF00F26EA7F04788FC49A9F88FC49A1F8963D296EB48FB2E1F4D590237
9A8CFD5CE4E005EC3BF5AEE2BC627D2FC5BA8FC52F1F37847C4106957517F676F8E7B649127CC1C6
58AB14DA0374539CE0E3AD007B3D15F3C7C35F0E78FA4F11F8A6D66F154FA36AF6FF0064FB719EDE
3D41E6DC8E63CBB31C617D09EB8ED5E91FF0897C43FF00A29FFF00940B7FF1A00EFE8AE03FE112F8
87FF00453FFF002816FF00E347FC225F10FF00E8A7FF00E502DFFC6803BFA2B80FF844BE21FF00D1
4FFF00CA05BFF8D1FF000897C43FFA29FF00F940B7FF001A00EFE8AE03FE112F887FF453FF00F281
6FFE347FC225F10FFE8A7FFE502DFF00C6800F859FF33AFF00D8D57DFF00B2577F5CBF81FC2771E1
2D3B5186F355FED3BABFD425BF9AE3ECE21CBB850DF2824755278C75E9C575140051451400514514
01C0784BFE4AF7C45FFB86FF00E886A3E167FCCEBFF6355F7FEC94784BFE4AF7C45FFB86FF00E886
A3E167FCCEBFF6355F7FEC9401DFD145140051451400514514005145140051451400514514005145
140051451400571FE23F87967E23F10C7AE7F6DEB9A5DF25A0B3DFA65D8837461CBE09DA49E4FAE3
81C715D851401C07FC2ACFFA9F3C71FF00838FFEC28FF8559FF53E78E3FF00071FFD8577F4500701
FF000AB3FEA7CF1C7FE0E3FF00B0A3FE1567FD4F9E38FF00C1C7FF00615DFD1401C07FC2ACFF00A9
F3C71FF838FF00EC28FF008559FF0053E78E3FF071FF00D8577F4500701FF0AB3FEA7CF1C7FE0E3F
FB0AE0FC4DF057C47A878EAC26D2F5ED4A4B386DE376D5B55BEF3A78641293B63DB86C80438E8339
F981AF7BA2803CD3E0B59CDA7E8DE27B2B8BB92F27B7F115D4525CC99DD332AC60B9C927248CF53D
7AD7A5D78C783FE227857C25A8F8C6C35CD53EC97527896F6654FB3CB26509500E5148EAA7F2AEA3
FE176FC3CFFA187FF24AE3FF008DD0077F45701FF0BB7E1E7FD0C3FF0092571FFC6E8FF85DBF0F3F
E861FF00C92B8FFE37401DFD15C07FC2EDF879FF00430FFE495C7FF1BA3FE176FC3CFF00A187FF00
24AE3FF8DD0077F45701FF000BB7E1E7FD0C3FF92571FF00C6E8FF0085DBF0F3FE861FFC92B8FF00
E37401BFE3BFF927BE25FF00B055D7FE8A6ACFF0EEB9A5F87BE167872FF57BF82CAD574AB61BE67C
6E220076A8EACD8070A324E3815CC78B3E2FF81353F06EB96167AEF997575A7CF0C29F649C6E768D
828C94C0C923AD7363E04691E24F02E89AA68D75269DAA4FA641348B213241348D16E24E7E642598
7209000E12803DCEC2FADF53D3ADAFECE4F32D6EA259A17DA46E4600A9C1E46411D6AC579A693F03
BC150E8D6316A9A2C73EA096F1ADD4B1DE4E15E50A37B0F9C705B27A0FA0AB9FF0A4BE1E7FD0BDFF
0093B71FFC72803BFA2B80FF008525F0F3FE85EFFC9DB8FF00E3947FC292F879FF0042F7FE4EDC7F
F1CA00EFE8AE03FE1497C3CFFA17BFF276E3FF008E51FF000A4BE1E7FD0BDFF93B71FF00C72803BF
A2B80FF8525F0F3FE85EFF00C9DB8FFE3947FC292F879FF42F7FE4EDC7FF001CA00EFE8AE03FE149
7C3CFF00A17BFF00276E3FF8E51FF0A4BE1E7FD0BDFF0093B71FFC72803BFA2B80FF008525F0F3FE
85EFFC9DB8FF00E3947FC292F879FF0042F7FE4EDC7FF1CA00EFEB9FF1DFFC93DF12FF00D82AEBFF
004535607FC292F879FF0042F7FE4EDC7FF1CA3FE1497C3CFF00A17BFF00276E3FF8E5006FF813FE
49EF86BFEC156BFF00A296B03E29FF00CC95FF0063558FFECF5DBD858DBE99A75B5859C7E5DADAC4
B0C29B89DA8A005193C9C003AD711F14FF00E64AFF00B1AAC7FF0067A003C5BFF257BE1D7FDC4BFF
00442D77F5E61F1235BD3BC39F11BC03AAEAB71F67B183FB47CC97633EDDD0A28E1412792074AD0F
F85DBF0F3FE861FF00C92B8FFE37401DFD15C07FC2EDF879FF00430FFE495C7FF1BA3FE176FC3CFF
00A187FF0024AE3FF8DD0077F45701FF000BB7E1E7FD0C3FF92571FF00C6E8FF0085DBF0F3FE861F
FC92B8FF00E37401DFD15C07FC2EDF879FF430FF00E495C7FF001BA3FE176FC3CFFA187FF24AE3FF
008DD0077F5E313F84EF3C53F14BC7CB61E25D5743BA83FB3B6496331547DD073E62820B6029C7CC
31B89E7A5751FF000BB7E1E7FD0C3FF92571FF00C6EB87D2FC39E12F8BFE3BF1BDFBC93CF6A3EC1F
63BC819E274FDD10F85718E4C78F994FB63AD0063FC27F00FDAF57F12E9FFF00096DF43F61FB2FFA
4F86F52DB0DC6F576E5B6FCDB7A76C1DD5EA1FF0AB3FEA7CF1C7FE0E3FFB0AE5FC27FB3FE93A65E6
A6BE25F2359B56F2BEC322492C0EB80DE66E556C0C92B8F99BA678CE2BA8FF008525F0F3FE85EFFC
9DB8FF00E394007FC2ACFF00A9F3C71FF838FF00EC28FF008559FF0053E78E3FF071FF00D851FF00
0A4BE1E7FD0BDFF93B71FF00C728FF008525F0F3FE85EFFC9DB8FF00E394007FC2ACFF00A9F3C71F
F838FF00EC28FF008559FF0053E78E3FF071FF00D851FF000A4BE1E7FD0BDFF93B71FF00C728FF00
8525F0F3FE85EFFC9DB8FF00E394007FC2ACFF00A9F3C71FF838FF00EC28FF008559FF0053E78E3F
F071FF00D851FF000A4BE1E7FD0BDFF93B71FF00C728FF008525F0F3FE85EFFC9DB8FF00E394007F
C2ACFF00A9F3C71FF838FF00EC28FF008559FF0053E78E3FF071FF00D851FF000A4BE1E7FD0BDFF9
3B71FF00C728FF008525F0F3FE85EFFC9DB8FF00E394007FC2ACFF00A9F3C71FF838FF00EC28FF00
8559FF0053E78E3FF071FF00D851FF000A4BE1E7FD0BDFF93B71FF00C728FF008525F0F3FE85EFFC
9DB8FF00E394007FC2ACFF00A9F3C71FF838FF00EC28FF008559FF0053E78E3FF071FF00D851FF00
0A4BE1E7FD0BDFF93B71FF00C728FF008525F0F3FE85EFFC9DB8FF00E39401AFE13F03D9F84AF353
BC8754D5751BAD47CAFB44DA95C099CF96182FCC141E8D8E73D05647C2CFF99D7FEC6ABEFF00D928
FF008525F0F3FE85EFFC9DB8FF00E395D3F873C2DA3784B4E92C343B3FB25AC9299993CD7932E400
4E5C93D147E5401B1451450014514500145145001451450014514500145145001451450014514500
1451450014514500145145001451450014514500145145001451450073F69E24074CB8D46F619FC9
FED0B8B48A3B3B39AE1D44523C59611862726366CE001B9579232D634ED67EDDAE5ED946F04F6A96
96D7B6D7109C878E6F3140CE486E612C186010E063E5CB73EFE0DB8BFB136F72B625ADF50BD9922D
46D05E5A4C93CC6659045BD4891436C0C48C6650010C1AB43C2DE1EB8D0EF1A391B7DBDB69561A64
529014CC6012969028276A9F340009CE55B8C60B0075145145001451450014514500145145001451
45001451450014514500145145001451450015C07C53FF00992BFEC6AB1FFD9EBBFA2800A28A2800
A28A2800A28A2800A28A2800A28A2800A28A2800A28A28038B8FC6D247ABDBA5DDBC86CEE1F51445
B4B29AE25436D3C700CF9618E1899189DA00CA2F5196DCD3B59FB76B97B651BC13DAA5A5B5EDB5C4
2721E39BCC5033921B984B0618043818F972D8767E1AD6A0BB4BAB4BCB4B3B8B5B8D4941B9B53711
CF15D5C2DC065DB2A152B80A73DC3704618E8787B406D17549D62590585BE9963A6DB34ACA5E4107
9A4B9DBC6312A8E7072ADC01B4900E928A28A0028A28A0028A28A0028A28A0028A28A0028A28A002
8A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A002
8A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A002
8A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A002
8A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A002
8A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A002
8A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A002
8A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A002
8A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A002
8A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A002
8A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A002
8A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A002
8A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A0028A28A00FFFD9}
}}}}\pgwsxn11920\pghsxn16840\marglsxn666\margrsxn133\margtsxn666\margbsxn213\par
d\li1746\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl-213\slmult0 \fs18\c
f0\par\pard\li1746\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl-213\slmul
t0 \fs18\cf0\par\pard\li1746\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl
-306\slmult0 \fs26\cf0\f0\charscalex100 {El nmero de complejidad ciclomtica puede
r-0\colno2\colw9373\pard\li1173\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1173\ri0
\sl-266\slmult0 \fs20\cf0\f2\charscalex100 {\uc1\u61623X}\par\column\pard\li0\ri
0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {La primera instruccin ejecutable rec
ibe el nivel 1.}\fs26\cf0\f0\charscalex100 { }\par\pard\sect\sectd\sbknone\pgwsx
n11920\pghsxn16840\marglsxn666\margrsxn133\cols3\colno1\colw1746\colsr-0\colno2\
colw2680\colsr-0\colno3\colw6693\pard\li1173\ri0\sl-213\slmult0 \fs18\cf0\par\pa
rd\li1173\ri0\sl-266\slmult0 \fs20\cf0\f2\charscalex100 {\uc1\u61623X}\par\colum
n\pard\li0\ri0\sl-480\slmult0 \*\tx2040\fs26\cf0\f0\charscalex100 {Si la instruc
cin}\fs26\cf0\f0\charscalex100 { }\tab \fs26\cf0\f0\charscalex100\b {a}\b0 \par\c
olumn\pard\li0\ri0\sl-480\slmult0 \*\tx2146\*\tx4240\fs26\cf0\f0\charscalex100 {
est en el nivel}\fs26\cf0\f0\charscalex100 { }{ }\fs26\cf0\f0\charscalex100\b {n}
\b0 \tab \fs26\cf0\f0\charscalex100 {y la instruccin}\fs26\cf0\f0\charscalex100 {
}{ }\fs26\cf0\f0\charscalex100\b {b}\b0 \tab \fs26\cf0\f0\charscalex100 {la sig
ue}\fs26\cf0\f0\charscalex100 { }\par\pard\sect\sectd\sbknone\pgwsxn11920\pghsxn
16840\marglsxn666\margrsxn133\pard\li1746\ri0\sl-360\slmult0 \fs26\cf0\f0\charsc
alex100 {secuencialmente, su nivel tambin ser}{ }\fs26\cf0\f0\charscalex100\b {n}\
b0 \fs26\cf0\f0\charscalex100 {.}\fs26\cf0\f0\charscalex100 { }\par\pard\li4973\
ri0\sl-213\slmult0 \fs18\cf0\par\pard\li4973\ri0\sl-213\slmult0 \fs18\cf0\par\pa
rd\li4973\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li4973\ri0\sl-293\slmult0 \fs24\
cf0\f0\charscalex100 {2 }\fs24\cf0\f0\charscalex100 {-}\fs24\cf0\f0\charscalex10
0 { }\fs24\cf0\f0\charscalex100 {14}\fs24\cf0\f0\charscalex100 { }\par\pard\sect
\sectd\sbknone\pgwsxn11920\pghsxn16840\marglsxn666\margrsxn133\pard\sect\sectd\s
bkpage\pgwsxn11920\pghsxn16840\marglsxn666\margrsxn133\margtsxn666\margbsxn213\c
ols2\colno1\colw1746\colsr-0\colno2\colw9373\pard\li1173\ri0\sl-213\slmult0 \fs1
8\cf0\par\pard\li1173\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1173\ri0\sl-213\sl
mult0 \fs18\cf0\par\pard\li1173\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1173\ri0
\sl-213\slmult0 \fs18\cf0\par\pard\li1173\ri0\sl-306\slmult0 \fs20\cf0\f2\charsc
alex100 {\uc1\u61623X}\par\column\pard\li0\ri0\sl-213\slmult0 \fs18\cf0\par\pard
\li0\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li0\ri0\sl-213\slmult0 \fs18\cf0\par\
pard\li0\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li0\ri0\sl-213\slmult0 \fs18\cf0\
par\pard\li0\ri0\sl-306\slmult0 \*\tx1813\*\tx2133\*\tx3720\fs26\cf0\f0\charscal
ex100 {Si la instruccin}\tab \fs26\cf0\f0\charscalex100\b {a}\b0 \tab \fs26\cf0\f
0\charscalex100 {est en el nivel}\tab \fs26\cf0\f0\charscalex100\b {n}\b0 \fs26\c
f0\f0\charscalex100 { y la instruccin}{ }\fs26\cf0\f0\charscalex100\b {b}\b0 \fs2
6\cf0\f0\charscalex100 { est en un bucle o}\par\pard\li0\ri0\sl-360\slmult0 \fs26
\cf0\f0\charscalex100 {pertenece a una condicin definida por}{ }\fs26\cf0\f0\char
scalex100\b {a}\b0 \fs26\cf0\f0\charscalex100 {, el nivel de}{ }\fs26\cf0\f0\cha
rscalex100\b {b}\b0 \fs26\cf0\f0\charscalex100 { ser}{ }\fs26\cf0\f0\charscalex10
0\b {n+1}\b0 \fs26\cf0\f0\charscalex100 {.}\fs26\cf0\f0\charscalex100 { }\par\pa
rd\li0\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li0\ri0\sl-213\slmult0 \fs18\cf0\pa
r\pard\li0\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li0\ri0\sl-320\slmult0 \fs26\cf
0\f0\charscalex100 {Una mtrica}\fs26\cf0\f0\charscalex100 { }\fs26\cf0\f0\charsc
alex100 {ms de complejidad relacionada con la construccin del}\par\pard\sect\sectd
\sbknone\pgwsxn11920\pghsxn16840\marglsxn666\margrsxn133\pard\li1026\ri0\sl-360\
slmult0 \fs26\cf0\f0\charscalex100 {software es la}{ }\fs26\cf0\f0\charscalex100
\b {cuenta de transferencias incondicionales del control.}\b0 \fs26\cf0\f0\chars
calex100 { Dado que}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex1
00 {el seguimiento de las acciones de un programa a la hora de la prueba y el}\p
ar\pard\li1026\ri0\sl-360\slmult0 \fs24\cf0\f0\charscalex100 {mantenimiento debe
hacerse manualmente, y que resulta difcil averiguar que es lo}\par\pard\li1026\r
i0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {que hace un cdigo en el que abundan
los saltos (representados por instrucciones}\par\pard\li1026\ri0\sl-360\slmult0
\fs26\cf0\f0\charscalex100 {GOTO), el nmero absoluto de stos es una medida de com
plejidad. El nmero}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100
{medio de saltos por mdulo, o de instrucciones entre dos saltos sir}\fs26\cf0\f0
\charscalex100 {ve como}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charsca
lex100 {referencias a la hora de comparar cdigo de orgenes diversos.}\fs26\cf0\f0\
charscalex100 { }\par\pard\li1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1026\r
i0\sl-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\sl-413\slmult0 \fs26\cf0\f0\char
scalex100\b {2.1.3.}\b0 \fs26\cf0\f0\charscalex100\b {-}\b0 \fs26\cf0\f0\charsca
r\pard\li4973\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li4973\ri0\sl-213\slmult0 \f
s18\cf0\par\pard\li4973\ri0\sl-453\slmult0 \fs24\cf0\f0\charscalex100 {2 }\fs24\
cf0\f0\charscalex100 {-}\fs24\cf0\f0\charscalex100 { }\fs24\cf0\f0\charscalex100
{15}\fs24\cf0\f0\charscalex100 { }\par\pard\sect\sectd\sbknone\pgwsxn11920\pghs
xn16840\marglsxn666\margrsxn133\pard\sect\sectd\sbkpage\pgwsxn11920\pghsxn16840\
marglsxn666\margrsxn133\margtsxn666\margbsxn213\pard\li3600\ri0\sl-213\slmult0 \
fs18\cf0\par\pard\li3600\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li3600\ri0\sl-213
\slmult0 \fs18\cf0\par\pard\li3600\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li3600\
ri0\sl-213\slmult0 \fs18\cf0\par\pard\li3600\ri0\sl-306\slmult0 \fs26\cf0\f0\cha
rscalex100 {^N = n}\fs26\cf0\f0\charscalex100 {1}\fs26\cf0\f0\charscalex100 { .
log}\fs26\cf0\f0\charscalex100 {2}\fs26\cf0\f0\charscalex100 { n}\fs26\cf0\f0\ch
arscalex100 {1}\fs26\cf0\f0\charscalex100 { + n}\fs26\cf0\f0\charscalex100 {2}\f
s26\cf0\f0\charscalex100 { . log}\fs26\cf0\f0\charscalex100 {2}\fs26\cf0\f0\char
scalex100 { n}\fs26\cf0\f0\charscalex100 {2}\fs26\cf0\f0\charscalex100 { }\par\p
ard\li1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\sl-386\slmult0 \fs26
\cf0\f0\charscalex100 {el}{ }\fs26\cf0\f0\charscalex100\b {volumen de un program
a}\b0 \fs26\cf0\f0\charscalex100 { es definido por Halstead como:}\fs26\cf0\f0\c
harscalex100 { }\par\pard\li4506\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {
V = N . log}\fs26\cf0\f0\charscalex100 {2}\fs26\cf0\f0\charscalex100 { n}\fs26\c
f0\f0\charscalex100 { }\par\pard\li1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li
1026\ri0\sl-386\slmult0 \fs26\cf0\f0\charscalex100 {que se puede interpretar com
o el nmero de "comparaciones mentales" necesarias}\par\pard\li1026\ri0\sl-360\slm
ult0 \fs24\cf0\f0\charscalex100 {para escribir un programa de longitud}\fs24\cf0
\f0\charscalex100 { }\fs24\cf0\f0\charscalex100\b {N}\b0 \fs24\cf0\f0\charscalex
100 {. Esta interpretacin sugiere que la mente}\par\pard\li1026\ri0\sl-360\slmult
0 \fs26\cf0\f0\charscalex100 {humana sigue un proceso de bsqueda binaria para sel
eccionar un token de un}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charsca
lex100 {vocabulario de tamao}{ }\fs26\cf0\f0\charscalex100\b {n}\b0 \fs26\cf0\f0\
charscalex100 {.}\fs26\cf0\f0\charscalex100 { }\par\pard\li1746\ri0\sl-480\slmul
t0 \fs26\cf0\f0\charscalex100 {Un algoritmo puede ser interpretado por varios pr
ogramas equivalentes.}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscale
x100 {Entre otros programas, uno tiene el volumen mnimo, tambin llamado}{ }\fs26\c
f0\f0\charscalex100\b {volumen}\b0 \par\pard\li1026\ri0\sl-360\slmult0 \fs24\cf0
\f0\charscalex100\b {potencial}\b0 { }\fs24\cf0\f0\charscalex100 { (V*). Halstea
d indica que la implementacin mnima de un algoritmo es}\par\pard\li1026\ri0\sl-360
\slmult0 \fs26\cf0\f0\charscalex100 {una llamada a un procedimiento desarrollado
previamente. La implementacin de}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f
0\charscalex100 {este algoritmo requerir tan slo invocar el procedimiento }\fs26\c
f0\f0\charscalex100 {y enviar y recibir los}\par\pard\li1026\ri0\sl-360\slmult0
\fs26\cf0\f0\charscalex100 {parmetros de entrada y salida. El}{ }\fs26\cf0\f0\cha
rscalex100\b {volumen potencial}\b0 { }\fs26\cf0\f0\charscalex100 { se calcula c
omo:}\fs26\cf0\f0\charscalex100 { }\par\pard\li3720\ri0\sl-480\slmult0 \fs26\cf0
\f0\charscalex100 {V* = (2+n}\fs26\cf0\f0\charscalex100 {2}\fs26\cf0\f0\charscal
ex100 {* ) log}\fs26\cf0\f0\charscalex100 {2}\fs26\cf0\f0\charscalex100 { (2 + n
}\fs26\cf0\f0\charscalex100 {2}\fs26\cf0\f0\charscalex100 {*)}\fs26\cf0\f0\chars
calex100 { }\par\pard\li1746\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl
-386\slmult0 \fs26\cf0\f0\charscalex100 {El primer trmino entre parntesis, 2, repr
esenta los dos elementos}\fs26\cf0\f0\charscalex100 { }\par\pard\li1026\ri0\sl-3
60\slmult0 \fs26\cf0\f0\charscalex100 {mnimos de la llamada al procedimiento (el
nombre y el signo que le separa de}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf
0\f0\charscalex100 {sus parmetros).}\fs26\cf0\f0\charscalex100 { }\par\pard\li174
6\ri0\sl-480\slmult0 \*\tx4480\fs26\cf0\f0\charscalex100 {Un programa de volumen
}\tab \fs26\cf0\f0\charscalex100\b {V}\b0 \fs26\cf0\f0\charscalex100 { est implem
entado a un nivel del programa}{ }\fs26\cf0\f0\charscalex100\b {L}\b0 \par\pard\
li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {que se expresa como:}\fs26
\cf0\f0\charscalex100 { }\par\pard\li4693\ri0\sl-480\slmult0 \fs26\cf0\f0\charsc
alex100 {L = V* / V}\fs26\cf0\f0\charscalex100 { }\par\pard\li1746\ri0\sl-480\sl
mult0 \fs26\cf0\f0\charscalex100 {Al inverso del nivel de programa, Halstead le
denomina}{ }\fs26\cf0\f0\charscalex100\b {dificultad D}\b0 \fs26\cf0\f0\charscal
ex100 {. Si el}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {v
sxn133\cols2\colno1\colw3906\colsr-0\colno2\colw7213\pard\li2173\ri0\sl-213\slmu
lt0 \fs18\cf0\par\pard\li2173\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li2173\ri0\s
l-293\slmult0 \fs26\cf0\f0\charscalex100 {Pascal}\fs26\cf0\f0\charscalex100 { }\
par\pard\li2173\ri0\sl-306\slmult0 \fs26\cf0\f0\charscalex100 {Algol }\fs26\cf0\
f0\charscalex100 { }\par\pard\li2173\ri0\sl-293\slmult0 \fs26\cf0\f0\charscalex1
00 {Fortran }\fs26\cf0\f0\charscalex100 { }\par\column\pard\li0\ri0\sl-213\slm
ult0 \fs18\cf0\par\pard\li0\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li0\ri0\sl-293
\slmult0 \fs26\cf0\f0\charscalex100 {: 1.53}\fs26\cf0\f0\charscalex100 { }\par\p
ard\li0\ri0\sl-306\slmult0 \fs26\cf0\f0\charscalex100 {: 1.21}\fs26\cf0\f0\chars
calex100 { }\par\pard\li0\ri0\sl-293\slmult0 \fs26\cf0\f0\charscalex100 {: 1.14}
\fs26\cf0\f0\charscalex100 { }\par\pard\sect\sectd\sbknone\pgwsxn11920\pghsxn168
40\marglsxn666\margrsxn133\pard\li2173\ri0\sl-306\slmult0 \*\tx3906\fs26\cf0\f0\
charscalex100 {Ensamblador }\fs26\cf0\f0\charscalex100 { }\tab \fs26\cf0\f0\char
scalex100 {: 0.88}\fs26\cf0\f0\charscalex100 { }\par\pard\li1746\ri0\sl-213\slmu
lt0 \fs18\cf0\par\pard\li1746\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1746\ri0\s
l-413\slmult0 \fs26\cf0\f0\charscalex100 {Sin embargo, se detecta, segn los estud
ios, variaciones en torno a 1, lo}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f
0\charscalex100 {que da una idea de la fluctuacin de estas "constantes".}\fs26\cf
0\f0\charscalex100 { }\par\pard\li1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1
026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\sl-413\slmult0 \fs26\cf0\f0
\charscalex100\b {2.1.4.}\b0 \fs26\cf0\f0\charscalex100\b {-}\b0 \fs26\cf0\f0\ch
arscalex100\b { Mtricas de esfuerzo.}\b0 \fs26\cf0\f0\charscalex100\b { }\b0 \par
\pard\li1746\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl-386\slmult0 \fs
26\cf0\f0\charscalex100 {El desarrollo del software es una actividad humana que
depende en gran}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {
medida del trabajo personal. A la hora de valorar un sistema software debe}\par\
pard\li1026\ri0\sl-360\slmult0 \fs24\cf0\f0\charscalex100 {considera}\fs24\cf0\f
0\charscalex100 {rse la cantidad de esfuerzo que debe invertir el equipo de desa
rrollo para}\par\pard\li1026\ri0\sl-360\slmult0 \fs24\cf0\f0\charscalex100 {culm
inar su construccin. El coste del desarrollo es prcticamente el del trabajo}\par\p
ard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {empleado, pues la part
e asignada a materiales es de tan poca entidad que resulta}\par\pard\li1026\ri0\
sl-360\slmult0 \fs26\cf0\f0\charscalex100 {despreciable frente a la mano de obra
.}\fs26\cf0\f0\charscalex100 { }\par\pard\li1746\ri0\sl-480\slmult0 \fs26\cf0\f0
\charscalex100 {El esfuerzo requerido para construir un sistema puede ser medido
con}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {muchas unid
ades. Desde las discriminaciones mentales de Halstead, hasta el}\par\pard\li1026
\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {nmero real de horas y minutos que
invierte un programador, la variedad es}\par\pard\li1026\ri0\sl-360\slmult0 \fs
24\cf0\f0\charscalex100 {enorme, sin em}\fs24\cf0\f0\charscalex100 {bargo hay un
a medida que destaca por su universalidad: la}{ }\fs24\cf0\f0\charscalex100\b {p
ersona}\b0 \fs24\cf0\f0\charscalex100\b {-}\b0 \par\pard\li1026\ri0\sl-360\slmul
t0 \fs26\cf0\f0\charscalex100\b {mes}\b0 \fs26\cf0\f0\charscalex100 { o meses }\
fs26\cf0\f0\charscalex100 {-}\fs26\cf0\f0\charscalex100 {hombre. Por otra parte,
aunque el esfuerzo es muy importante, en}\par\pard\li1026\ri0\sl-360\slmult0 \f
s26\cf0\f0\charscalex100 {realidad la ms importante mtrica del esfuerzo es el cost
e.}\fs26\cf0\f0\charscalex100 { }\par\pard\li4973\ri0\sl-213\slmult0 \fs18\cf0\p
ar\pard\li4973\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li4973\ri0\sl-213\slmult0 \
fs18\cf0\par\pard\li4973\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li4973\ri0\sl-386
\slmult0 \fs24\cf0\f0\charscalex100 {2 }\fs24\cf0\f0\charscalex100 {-}\fs24\cf0\
f0\charscalex100 { }\fs24\cf0\f0\charscalex100 {17}\fs24\cf0\f0\charscalex100 {
}\par\pard\sect\sectd\sbknone\pgwsxn11920\pghsxn16840\marglsxn666\margrsxn133\pa
rd\sect\sectd\sbkpage\pgwsxn11920\pghsxn16840\marglsxn666\margrsxn133\margtsxn66
6\margbsxn213\pard\li1746\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl-21
3\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1746
\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1746\ri0\sl-213\slmult0 \fs18\cf0\par\p
ard\li1746\ri0\sl-306\slmult0 \fs26\cf0\f0\charscalex100 {La importancia de la m
edida del esfuerzo y coste responde ms a}\fs26\cf0\f0\charscalex100 { }\par\pard\
li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {necesidades de tipo admini
strativo y de gestin que estrictamente tcnicas. Pero}\par\pard\li1026\ri0\sl-360\s
) = f(}\fs26\cf0\f2\charscalex100 {\uc1\u964X}\fs26\cf0\f0\charscalex100 {) / (
1 }\fs26\cf0\f0\charscalex100 {-}\fs26\cf0\f0\charscalex100 { F(}\fs26\cf0\f2\ch
arscalex100 {\uc1\u964X}\fs26\cf0\f0\charscalex100 {) )}\fs26\cf0\f0\charscalex1
00 { }\par\pard\li1026\ri0\sl-213\slmult0 \fs18\cf0\par\pard\li1026\ri0\sl-386\s
lmult0 \fs26\cf0\f0\charscalex100 {de donde podemos obtener una nueva expresin pa
ra la fiabilid}\fs26\cf0\f0\charscalex100 {ad del software:}\fs26\cf0\f0\charsca
lex100 { }\par\pard\li1986\ri0\sl-480\slmult0 \fs26\cf0\f0\charscalex100 {h(}\fs
26\cf0\f2\charscalex100 {\uc1\u964X}\fs26\cf0\f0\charscalex100 {) = f(}\fs26\cf0
\f2\charscalex100 {\uc1\u964X}\fs26\cf0\f0\charscalex100 {) / ( 1 }\fs26\cf0\f0\
charscalex100 {-}\fs26\cf0\f0\charscalex100 { F(}\fs26\cf0\f2\charscalex100 {\uc
1\u964X}\fs26\cf0\f0\charscalex100 {) )= }\fs26\cf0\f0\charscalex100 {-}\fs26\cf
0\f0\charscalex100 { d( ln (1 }\fs26\cf0\f0\charscalex100 {-}\fs26\cf0\f0\charsc
alex100 { F(}\fs26\cf0\f2\charscalex100 {\uc1\u964X}\fs26\cf0\f0\charscalex100 {
) ) ) / d}\fs26\cf0\f2\charscalex100 {\uc1\u964X}\fs26\cf0\f0\charscalex100 { =
}\fs26\cf0\f0\charscalex100 {-}\fs26\cf0\f0\charscalex100 { d ln R(}\fs26\cf0\f2
\charscalex100 {\uc1\u964X}\fs26\cf0\f0\charscalex100 {) / d}\fs26\cf0\f2\charsc
alex100 {\uc1\u964X}\par\pard\li7733\ri0\sl-266\slmult0 \fs16\cf0\f2\charscalex1
00 {\uc1\u964X}\par\pard\sect\sectd\sbknone\pgwsxn11920\pghsxn16840\marglsxn666\
margrsxn133\cols6\colno1\colw2706\colsr-0\colno2\colw813\colsr-0\colno3\colw986\
colsr-0\colno4\colw2280\colsr-0\colno5\colw840\colsr-0\colno6\colw3493\pard\li20
80\ri0\sl-453\slmult0 \fs28\cf0\f0\charscalex100 {ln}\par\column\pard\li0\ri0\sl
-440\slmult0 \fs28\cf0\f2\charscalex100 {\uc1\u964X}\par\column\pard\li26\ri0\sl
-253\slmult0 \fs22\cf0\f2\charscalex100 {\uc1\u964X}\par\pard\li0\ri0\sl-333\slm
ult0 \fs22\cf0\f0\charscalex100 {0}\par\column\pard\li0\ri0\sl-453\slmult0 \fs28
\cf0\f0\charscalex100 {,}\par\column\pard\li0\ri0\sl-440\slmult0 \fs28\cf0\f2\ch
arscalex100 {\uc1\u964X}\par\column\pard\li253\ri0\sl-173\slmult0 \fs22\cf0\f0\c
harscalex100 {( }\fs22\cf0\f0\charscalex100 {)}\par\pard\li0\ri0\sl-813\slmult0
\fs74\cf0\f1\charscalex100 {z}{\sub \fs16\cf0\f0\charscalex100 {0}}\par\pard\sec
t\sectd\sbknone\pgwsxn11920\pghsxn16840\marglsxn666\margrsxn133\pard\li1746\ri0\
sl-453\slmult0 \*\tx4893\fs26\cf0\f0\charscalex100 {Otra medida de inters es el}\
tab \fs26\cf0\f0\charscalex100\b {tiempo medio entre fallos}\b0 \fs26\cf0\f0\cha
rscalex100 { (}\fs26\cf0\f0\charscalex100\b {MTTF}\b0 \fs26\cf0\f0\charscalex100
{, Mean}\par\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {Time To
Faillure) que se define como:}\fs26\cf0\f0\charscalex100 { }\par\pard\li5800\ri
0\sl-280\slmult0 \fs16\cf0\f0\charscalex100 {n}\par\pard\sect\sectd\sbknone\pgws
xn11920\pghsxn16840\marglsxn666\margrsxn133\cols2\colno1\colw5053\colsr-0\colno2
\colw6066\pard\li4253\ri0\sl-293\slmult0 \fs28\cf0\f0\charscalex100 {MTTF}\par\c
olumn\pard\li0\ri0\sl-480\slmult0 \fs28\cf0\f2\charscalex100 {=}{ }\fs28\cf0\f0\
charscalex100 {1 }\fs28\cf0\f0\charscalex100 { }\fs28\cf0\f0\charscalex100 {t}{
\sub \fs28\cf0\f0\charscalex100 {n}}\fs38\cf0\f2\charscalex100 {\uc1\u8721X}{\su
b \fs16\cf0\f0\charscalex100 {i}}\par\pard\sect\sectd\sbknone\pgwsxn11920\pghsxn
16840\marglsxn666\margrsxn133\pard\li5760\ri0\sl-160\slmult0 \fs16\cf0\f0\charsc
alex100 {i}\fs16\cf0\f0\charscalex100 {=}\fs16\cf0\f0\charscalex100 {1}\par\pard
\li1746\ri0\sl-400\slmult0 \fs26\cf0\f0\charscalex100 {La expresin que relaciona
el tiempo medio entre fallos y la fiabilidad }\fs26\cf0\f0\charscalex100 {de}\pa
r\pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {un programa es:}\fs
26\cf0\f0\charscalex100 { }\par\pard\li4173\ri0\sl-533\slmult0 \*\tx5320\*\tx558
6\fs28\cf0\f0\charscalex100 {MTTF}{ }\fs28\cf0\f2\charscalex100 {=}\tab \fs22\cf
0\f2\charscalex100 {\uc1\u8734X}\tab \fs28\cf0\f0\charscalex100 {R }\fs28\cf0\f0
\charscalex100 {t }\fs28\cf0\f0\charscalex100 {dt}\par\pard\sect\sectd\sbknone\p
gwsxn11920\pghsxn16840\marglsxn666\margrsxn133\pard\li5280\ri0\sl-226\slmult0 \f
s22\cf0\f0\charscalex100 {0}\par\pard\li1746\ri0\sl-373\slmult0 \fs26\cf0\f0\cha
rscalex100 {La figura siguiente muestra tres figuras relacionadas con el estudio
de la}\par\pard\li1026\ri0\sl-360\slmult0 \fs24\cf0\f0\charscalex100 {fiabilida
d del software: en (a) se muestra el historial de errores en la vida de un}\par\
pard\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {programa; (b) muestra
F(}\fs26\cf0\f2\charscalex100 {\uc1\u964X}\fs26\cf0\f0\charscalex100 {), la pro
babilidad de que aparezca un error en un}\fs26\cf0\f0\charscalex100 { }\par\pard
\li1026\ri0\sl-360\slmult0 \fs26\cf0\f0\charscalex100 {programa en un intervalo
de tiempo determinado; por ltimo , en (c) se muestra}\par\pard\li1026\ri0\sl-360\