ISSUE 455

Add Proposal  Add Analysis  Edit Class, Environment, or Release
Number 455
Category enhancement
Synopsis Jeda Verification Enhancements
State open
Class enhancement
Arrival-DateAug 30 2003
Originator atsushi@jedatechnologies.com
Release 2005
Environment

Description

A proposal on extending Verilog to add the verification
layer that contains commands and constructs to be used
for writting test benchs for verification of hardware
designs.

It includes object-oriented programming support for
writing modular and reusable test benches, procedural code
execution with dynamic concurrent programming support,
various synchronization/mutex primitives for multi-threaded
execution, cycle based test bench construction support,
enhanced list and array data types for high level behavior
modeling, and aspect-oriented programming support.

Fix

Audit-Trail

From: Shalom.Bresticker@motorola.com
To: ennis@jedatechnologies.com
Cc: btf-bugs@boyd.com
Subject: Re: enhancement/455: Jeda Verification Enhancements
Date: Sun, 7 Sep 2003 11:24:27 +0300 (IDT)

This proposal has an attachment which I, for one, did not receive.
The attachment is a detailed description of the proposal.
It can be found at http://www.boyd.com/1364_btf/report/full_pr/455.html .

Shalom

> A proposal on extending Verilog to add the verification
> layer that contains commands and constructs to be used
> for writting test benchs for verification of hardware
> designs.
>
> It includes object-oriented programming support for
> writing modular and reusable test benches, procedural code
> execution with dynamic concurrent programming support,
> various synchronization/mutex primitives for multi-threaded
> execution, cycle based test bench construction support,
> enhanced list and array data types for high level behavior
> modeling, and aspect-oriented programming support.

--
Shalom Bresticker Shalom.Bresticker@motorola.com
Design & Reuse Methodology Tel: +972 9 9522268
Motorola Semiconductor Israel, Ltd. Fax: +972 9 9522890
POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 441478


From: Stefen Boyd <stefen@boyd.com>
To: etf-bugs@boyd.com
Cc:
Subject: enhancement/455: Fwd: pdf file attachment for BTF en#455
Date: Wed, 10 Sep 2003 22:32:06 -0700

--=====================_1004346313==_
Content-Type: text/plain; charset="us-ascii"; format=flowed


>From: "Ennis Hawk" <ennis@jedatechnologies.com>
>To: <stefen@boyd.com>
>Subject: pdf file attachment for BTF en#455
>Date: Tue, 9 Sep 2003 19:30:31 -0700
>
>hi ,
>
>Jay lawrenece requested a PDF version of the file that we attached with our
>donation so its more readable and suggested i send it to you so you can
>replace the existing one with this one.
>
>
>regards,
>
>Ennis Hawk
>
>Jeda Technologies
>

--=====================_1004346313==_
Content-Type: application/pdf; name="Jeda_v2005_proposal_1v0.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Jeda_v2005_proposal_1v0.pdf"

JVBERi0xLjQNJeLjz9MNCjk0IDAgb2JqDTw8IA0vTGluZWFyaXplZCAxIA0vTyA5OSANL0ggWyAx
Mjc5IDMwOSBdIA0vTCAzOTc3OCANL0UgNDk5MCANL04gMTggDS9UIDM3NzgwIA0+PiANZW5kb2Jq
DSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB4cmVmDTk0IDIxIA0wMDAwMDAwMDE2IDAwMDAwIG4NCjAwMDAwMDA3NjggMDAwMDAgbg0KMDAw
MDAwMDk2MSAwMDAwMCBuDQowMDAwMDAxMTA4IDAwMDAwIG4NCjAwMDAwMDEyMjggMDAwMDAgbg0K
MDAwMDAwMTU4OCAwMDAwMCBuDQowMDAwMDAxOTI2IDAwMDAwIG4NCjAwMDAwMDIwMDkgMDAwMDAg
bg0KMDAwMDAwMjExMiAwMDAwMCBuDQowMDAwMDAyMjYwIDAwMDAwIG4NCjAwMDAwMDI5NjEgMDAw
MDAgbg0KMDAwMDAwMzA2NCAwMDAwMCBuDQowMDAwMDAzMDkzIDAwMDAwIG4NCjAwMDAwMDMyMDAg
MDAwMDAgbg0KMDAwMDAwMzIzMCAwMDAwMCBuDQowMDAwMDA0Mjg1IDAwMDAwIG4NCjAwMDAwMDQz
MDcgMDAwMDAgbg0KMDAwMDAwNDQxMiAwMDAwMCBuDQowMDAwMDA0NjE5IDAwMDAwIG4NCjAwMDAw
MDEyNzkgMDAwMDAgbg0KMDAwMDAwMTU2NiAwMDAwMCBuDQp0cmFpbGVyDTw8DS9TaXplIDExNQ0v
SW5mbyA3NyAwIFIgDS9Sb290IDk1IDAgUiANL1ByZXYgMzc3NzAgDS9JRFs8NjFkY2M5YmQwN2Zk
YzViMDA4ZjY5NzMwZDU0ZDE0YWQ+PGI4MTFhN2ZjNGMwZDFjODQ1NmFlNmU2YjEzY2FhNmM2Pl0N
Pj4Nc3RhcnR4cmVmDTANJSVFT0YNICAgICANOTUgMCBvYmoNPDwgDS9UeXBlIC9DYXRhbG9nIA0v
UGFnZXMgNzYgMCBSIA0vTWV0YWRhdGEgNzggMCBSIA0vT3V0bGluZXMgMTAwIDAgUiANL1N0cnVj
dFRyZWVSb290IDk3IDAgUiANL1NwaWRlckluZm8gODMgMCBSIA0vTmFtZXMgOTggMCBSIA0vUGFn
ZU1vZGUgL1VzZU91dGxpbmVzIA0vQWNyb0Zvcm0gOTYgMCBSIA0+PiANZW5kb2JqDTk2IDAgb2Jq
DTw8IA0vRmllbGRzIFsgXSANL0RSIDw8IC9Gb250IDw8IC9aYURiIDUzIDAgUiAvSGVsdiA1NCAw
IFIgPj4gL0VuY29kaW5nIDw8IC9QREZEb2NFbmNvZGluZyA1NSAwIFIgPj4gPj4gDS9EQSAoL0hl
bHYgMCBUZiAwIGcgKQ0+PiANZW5kb2JqDTk3IDAgb2JqDTw8IA0vVHlwZSAvU3RydWN0VHJlZVJv
b3QgDS9DbGFzc01hcCA1NiAwIFIgDS9LIDEwMyAwIFIgDS9QYXJlbnRUcmVlIDU3IDAgUiANL1Bh
cmVudFRyZWVOZXh0S2V5IDE4IA0+PiANZW5kb2JqDTk4IDAgb2JqDTw8IA0vSURTIDkyIDAgUiAN
L1VSTFMgOTMgMCBSIA0+PiANZW5kb2JqDTExMyAwIG9iag08PCAvUyAyMTMgL08gMjYwIC9WIDI3
NiAvQyAyOTggL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxMTQgMCBSID4+IA1zdHJlYW0N
CkiJYmBgYGZgYPnPwMrAwNrEwM2AANxAGRYg5IhAEjyvXJMlcHGKbIuDu1iLjNvkJTW5zpqKmgkM
t3O33c79dgWopK10D0FUkfr6RHo0BB1P3cPAkEEcMmtgYIOhDJxuAQITBobajUCaD4j5wS4XY+BW
b/ii0f7UT8TBIpRRQIWB1bCIuXEGWDKFgYFtCZBmASJ5IG0K1P6LARw2bDxwz1swMLSwAWkRoIQS
RAggwAAcWEk0DWVuZHN0cmVhbQ1lbmRvYmoNMTE0IDAgb2JqDTE3OSANZW5kb2JqDTk5IDAgb2Jq
DTw8IA0vVHlwZSAvUGFnZSANL01lZGlhQm94IFsgMCAwIDYxMiA3OTIgXSANL1BhcmVudCA4MCAw
IFIgDS9TdHJ1Y3RQYXJlbnRzIDAgDS9Db250ZW50cyAxMDggMCBSIA0vUmVzb3VyY2VzIDw8IC9D
b2xvclNwYWNlIDw8IC9DUzAgMTA1IDAgUiAvQ1MxIDEwNyAwIFIgPj4gL0ZvbnQgPDwgL1QxXzAg
MTA2IDAgUiAvVDFfMSAxMDQgMCBSIC9UMV8yIDExMCAwIFIgPj4gDS9FeHRHU3RhdGUgPDwgL0dT
MCAxMTEgMCBSID4+IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdID4+IA0vSUQgMTEyIDAgUiANL0Ny
b3BCb3ggWyAwIDAgNjEyIDc5MiBdIA0vUm90YXRlIDAgDT4+IA1lbmRvYmoNMTAwIDAgb2JqDTw8
IA0vQ291bnQgMiANL1R5cGUgL091dGxpbmVzIA0vRmlyc3QgMTAxIDAgUiANL0xhc3QgMTAxIDAg
UiANPj4gDWVuZG9iag0xMDEgMCBvYmoNPDwgDS9UaXRsZSAoTG9jYWwgRGlzaykNL1BhcmVudCAx
MDAgMCBSIA0vRmlyc3QgMTAyIDAgUiANL0xhc3QgMTAyIDAgUiANL0NvdW50IDEgDT4+IA1lbmRv
YmoNMTAyIDAgb2JqDTw8IA0vVGl0bGUgKGZpbGU6Ly8vRHwvSkVEQS92MjAwNS9KZWRhX3YyMDA1
LXByb3Bvc2FsXzF2MC50eHQpDS9EZXN0IFsgOTkgMCBSIC9YWVogMCA3OTIgbnVsbCBdIA0vU0Ug
MTAzIDAgUiANL1BhcmVudCAxMDEgMCBSIA0+PiANZW5kb2JqDTEwMyAwIG9iag08PCANL1MgL0Fy
dGljbGUgDS9DIC9TcGRyQXJ0IA0vUCA5NyAwIFIgDS9QZyA5OSAwIFIgDS9LIFsgMCA8PCAvVHlw
ZSAvTUNSIC9QZyAxIDAgUiAvTUNJRCAwID4+IDw8IC9UeXBlIC9NQ1IgL1BnIDQgMCBSIC9NQ0lE
IDAgPj4gDTw8IC9UeXBlIC9NQ1IgL1BnIDcgMCBSIC9NQ0lEIDAgPj4gPDwgL1R5cGUgL01DUiAv
UGcgMTAgMCBSIC9NQ0lEIDAgPj4gDTw8IC9UeXBlIC9NQ1IgL1BnIDEzIDAgUiAvTUNJRCAwID4+
IDw8IC9UeXBlIC9NQ1IgL1BnIDE2IDAgUiAvTUNJRCAwID4+IA08PCAvVHlwZSAvTUNSIC9QZyAx
OSAwIFIgL01DSUQgMCA+PiA8PCAvVHlwZSAvTUNSIC9QZyAyMiAwIFIgL01DSUQgMCA+PiANPDwg
L1R5cGUgL01DUiAvUGcgMjUgMCBSIC9NQ0lEIDAgPj4gPDwgL1R5cGUgL01DUiAvUGcgMjggMCBS
IC9NQ0lEIDAgPj4gDTw8IC9UeXBlIC9NQ1IgL1BnIDMxIDAgUiAvTUNJRCAwID4+IDw8IC9UeXBl
IC9NQ1IgL1BnIDM0IDAgUiAvTUNJRCAwID4+IA08PCAvVHlwZSAvTUNSIC9QZyAzNyAwIFIgL01D
SUQgMCA+PiA8PCAvVHlwZSAvTUNSIC9QZyA0MCAwIFIgL01DSUQgMCA+PiANPDwgL1R5cGUgL01D
UiAvUGcgNDMgMCBSIC9NQ0lEIDAgPj4gPDwgL1R5cGUgL01DUiAvUGcgNDYgMCBSIC9NQ0lEIDAg
Pj4gDTw8IC9UeXBlIC9NQ1IgL1BnIDQ5IDAgUiAvTUNJRCAwID4+IF0gDT4+IA1lbmRvYmoNMTA0
IDAgb2JqDTw8IA0vVHlwZSAvRm9udCANL1N1YnR5cGUgL1R5cGUxIA0vQmFzZUZvbnQgL0NvdXJp
ZXIgDS9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nIA0+PiANZW5kb2JqDTEwNSAwIG9iag0vRGV2
aWNlUkdCIA1lbmRvYmoNMTA2IDAgb2JqDTw8IA0vVHlwZSAvRm9udCANL1N1YnR5cGUgL1R5cGUx
IA0vQmFzZUZvbnQgL1RpbWVzLVJvbWFuIA0vRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZyANPj4g
DWVuZG9iag0xMDcgMCBvYmoNL0RldmljZUdyYXkgDWVuZG9iag0xMDggMCBvYmoNPDwgL0ZpbHRl
ciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxMDkgMCBSID4+IA1zdHJlYW0NCkiJnFZLb9s4EL4L6H+Y
m5yi1cOOI8fbLTZ+HFIgQLcVtgc7ECiKlrmRSS1FOzHa/vcdSnL8ku3tyj7Y0sz3GFKcce+U5jNC
NXz44N5pTeicJTBxQ5nDozsYyBeY+D0Igh60vcDxrrsQ9AJ8FK5zBu5nknJBNJcCPn4cjIaWB+aj
UvzBwXK/sAyfrthQZlLxBdOKU1DcGoSWG/qRBz6EM+u2TLoFQ9TzHD+AcGG1Zjxjfdd1Rz/cT+PR
nbtqe17X/cQSEpU/3+dK5rIgWeSvPEe/6Kvwb2scWuOHoeUaWzRjxtXD8H6E8JW+f1AY0tz4bQi6
N6CY9e0tiItC/UqoX9nzy2/QDZzOTafUOpT5WvF0rmHaotMrrJXXASMVQkbnAkFTzgq4F9SBuyyD
MrZA+oKpFUscI92D922nDeHIaoVzXkAi6XLBhIY5KSBmTECuWE4Urk+8bgaHmVQ1lF9DUSkKnjBV
LRIm6jmD+/F4DH7n5hqepXriIoVUyWUOSERQFJULJE6qlBoyfGu1uKDZsjA3udDyAKnQBFPUkRff
QWVayWRJDd6BPIDS62YpIWEFVTxGOwZds0LHTNA5ZGTNlNFywPoXUxz9w/QNe9FMGHEOvHL4NUd9
bXy0HazcBjnOJH1qULXLXsYA6kTXRc4on60P9D1zPediI6dBwoYb4OtaaPJyxAhbtKji6/d/32aZ
y36NsAHXVOCby7Eq+0HmmmAdZ2SZ6YgapKjSzGm1oo+NGblUOsp4ofG5/Zt9HPIdVkRxEmcskioy
4QXTUcJoRurd9fMwyY4Zng8NWLhZNDObuzhKwY13kGBubZ2fqSyctV2X86DoAA2xDRtol+VX0O0/
9tbqOyQKj5moIIscC2kwqrKdtnQUf4qqjsSQ/fr92P+7A3XB5xbwtL0yxgaWpHXkBOziiT3b5oxg
KVp+PGvvvxizq6DzLOZWwnI9P8e8z72FO8mMp5KJss9W1BZIdzkqlnhmbMLOyNq+iSdlTVvoUpYv
IW4p+93230/z9KqJYp9kE3+KAp8nHFtBubknEHMdKSJShoX+5e3cwL3FPumRi3ypL5RULvXlIC5k
HdPUFHaU7R/6lGC/ZLiZTGfTHA+spDzmsUWadoXuywJigxW1FWyfR1aISssuXjjwbY49XMgakTLT
UGZyKZJ3B82kOv5j04erRriVqHEue81fYFPNmHM49zSMcwOptVzsTnRd6HR6TtfrgX99epz7EzYT
UPt4VHM8/9r/f6Majkk+yBnC4LA0uXVvXZyXOv3pm07Q97vw+eFxx9S/AgwAlELzKQ1lbmRzdHJl
YW0NZW5kb2JqDTEwOSAwIG9iag05NzUgDWVuZG9iag0xMTAgMCBvYmoNPDwgDS9UeXBlIC9Gb250
IA0vU3VidHlwZSAvVHlwZTEgDS9CYXNlRm9udCAvSGVsdmV0aWNhIA0vRW5jb2RpbmcgL1dpbkFu
c2lFbmNvZGluZyANPj4gDWVuZG9iag0xMTEgMCBvYmoNPDwgDS9UeXBlIC9FeHRHU3RhdGUgDS9T
QSBmYWxzZSANL09QIGZhbHNlIA0vb3AgZmFsc2UgDS9PUE0gMCANL0JHMiAvRGVmYXVsdCANL1VD
UjIgL0RlZmF1bHQgDS9UUjIgL0RlZmF1bHQgDS9IVCAvRGVmYXVsdCANL0NBIDEgDS9jYSAxIA0v
U01hc2sgL05vbmUgDS9BSVMgZmFsc2UgDS9CTSAvTm9ybWFsIA0vVEsgdHJ1ZSANPj4gDWVuZG9i
ag0xMTIgMCBvYmoNKADeQjKaGdTu+Tw8Ls1RUecpDWVuZG9iag0xIDAgb2JqDTw8IA0vVHlwZSAv
UGFnZSANL01lZGlhQm94IFsgMCAwIDYxMiA3OTIgXSANL1BhcmVudCA4MCAwIFIgDS9TdHJ1Y3RQ
YXJlbnRzIDEgDS9Db250ZW50cyAyIDAgUiANL1Jlc291cmNlcyA8PCAvQ29sb3JTcGFjZSA8PCAv
Q1MwIDEwNSAwIFIgL0NTMSAxMDcgMCBSID4+IC9Gb250IDw8IC9UMV8wIDEwNiAwIFIgL1QxXzEg
MTA0IDAgUiAvVDFfMiAxMTAgMCBSID4+IA0vRXh0R1N0YXRlIDw8IC9HUzAgMTExIDAgUiA+PiAv
UHJvY1NldCBbIC9QREYgL1RleHQgXSA+PiANL0lEIDExMiAwIFIgDS9Dcm9wQm94IFsgMCAwIDYx
MiA3OTIgXSANL1JvdGF0ZSAwIA0+PiANZW5kb2JqDTIgMCBvYmoNPDwgL0ZpbHRlciAvRmxhdGVE
ZWNvZGUgL0xlbmd0aCAzIDAgUiA+PiANc3RyZWFtDQpIiaRWbXPaRhD+zgz/Yb+RZLBewBiMk0wM
9oek9TRtmeaD8TCHtMDVh06VTthM2//evdMJSYjYnRZjRtrb29vn2bdzrxPFVyxQ8P69e60UCzYY
wr07kzE8uJOJfIZ7fwTD4Qh63tDxzgcwHA1pabaPEdyvbM0jpriM4OPHyc205YH+S9b0wKHl/oKC
Vnc4lUImfIsq4QEkvDWZtdyZv/DAh9mqdWk2XYI+aOQ5/hBm29abFRc4dl335i/3y+3Ntbvred7A
/YIhW5jHsziRsUyZWPg7z1HP6u3s99btrHV7N225GlYgUKO6m36+IfO5f3+QY3TMhd+D4eACEmx9
ewfRq476uaN+Ds833+Fg5PQv+sZXAH24B2e+Q4o3WjDbIKSKKdxipFJ44mrDI1giEeZiFELMeAIk
UaSnMFVLjIINLIUMHklZCFItjfasUXzGIFMUIabMRmMu4tEa5MoIUr7NRB4QlgJfAVfAU+jwiCvO
REdbnL3Tpg6+aScYbGWYCXQaMMoN1xDLRNEJ64iJ73kesAg2bIfE7AoTWkAI9EIXUraNKSDzNovC
Bq4wIe4hjTHgKx4Y/1MHvm1QuxbiimVC5YbqShpbiIFgieZk3jaslC4fedfVbCwxkFtMjfeF5brN
lUyAUQC0hoY8b1dYyOGnkEUCU2I4CvmOhxkx8oJj6mDLCokFrfUS3bfPhrB0XIrKpyo0qlii5RPR
82h5pKrAcE18PuIT9ArmC2mIsdqQuBEEgPkbAhRnmmpNViTp8X4w9h4gZIrB/C1cNTzWn6pjkCfl
Cev649RVGwLMk6MQ0OsBqLXYO1i8hi1ul5jAKosCQ7qBvwgOmUglFFAkKQS0SGA0NJnkwBoO2sRW
0rJIuUIlxPK0c5oFXoddOdqwqCDGhMvQ79qXkF568KEutmW52DGRYZcSTQtD6kV70vQ04Q3UNi/G
JwimqDl1PwZe1/zr7+nwlRh+1flLBFSrvDP98afpDx2dzRlljymNTHHB1d6Wo+1rtuxqDpUpSngw
caglkp2if1iLRHcgM0KtqOtSWLqAKnBgsi8dK6rU+GIKS2PUDW7cpAdytSMefI8YMD81JnL7xi2b
LnKHyVPClSL7y70pWxqOurzruSVEs3ZLMvuOYTHFZpZZuYZBTReDDYt4utU0LLMopDLVR/5GOSLk
+tBsKCskqZOI2ouANfUPmcVOJXiflUFgW07ut+CUv6aZHRnUp/FU0pzAehOft0uLq0Ruq/gLEzQo
UJwoh0oi7SPFnk8laAF+PP5QL/uOXaFMC2kkURulsrZxzzlf1Ntr56pz3En+NOYXOQW51t9Hp1A7
KQ56pZwbpqzLjZbG5cIUzH1B0CIighYxox77ULj5QsMsaNW7wOyyQO2ICmQUYd7dKGpaIpCt6GeH
ZUzSedsEtpoRjUny6iBRdOe7OgmyiFus4NO/HTNGetaz42be7lVLznJnBoym0IwXCDPlmKcTmrp1
mxF3tFaG9P9OpmNlO5uqN8oTF+WJVIoKpXJXHkC/P3IG3gj88+9flH+G4m7Za16CHc8/9//bJZhm
eE9fBv0RNbn7S/fS9frQH8/b/eHYH8DXu4cKqH8EGABkI3fcDWVuZHN0cmVhbQ1lbmRvYmoNMyAw
IG9iag0xMjAxIA1lbmRvYmoNNCAwIG9iag08PCANL1R5cGUgL1BhZ2UgDS9NZWRpYUJveCBbIDAg
MCA2MTIgNzkyIF0gDS9QYXJlbnQgODAgMCBSIA0vU3RydWN0UGFyZW50cyAyIA0vQ29udGVudHMg
NSAwIFIgDS9SZXNvdXJjZXMgPDwgL0NvbG9yU3BhY2UgPDwgL0NTMCAxMDUgMCBSIC9DUzEgMTA3
IDAgUiA+PiAvRm9udCA8PCAvVDFfMCAxMDYgMCBSIC9UMV8xIDEwNCAwIFIgL1QxXzIgMTEwIDAg
UiA+PiANL0V4dEdTdGF0ZSA8PCAvR1MwIDExMSAwIFIgPj4gL1Byb2NTZXQgWyAvUERGIC9UZXh0
IF0gPj4gDS9JRCAxMTIgMCBSIA0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gDS9Sb3RhdGUgMCAN
Pj4gDWVuZG9iag01IDAgb2JqDTw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggNiAwIFIg
Pj4gDXN0cmVhbQ0KSImcVm1v2zYQ/m7A/+HQL0kKRy92HDtZWyBvA1osRbYK64coMGjpbHOjRI2k
nRjYj9+RkmzFUrphcQBR1PF4zz0P7+hfKcMXLDHw4YN/ZQxLVpjCox/JAp7862v5Ao/hFCaTKQyD
iRecjWEyndCnaFsg+A9syXNmuMzh06fr25teAPanljTg0PN/Q0FfN3gjhVQ8Q6N4Aor3rqOeH4Wz
AEKIFr0Lt+gC7EbTwAsnEGW94wUXeOn7/u3f/pe72yt/MwyCsf8FUzZzw9NCyUJqJmbhJvDMizmJ
/ujdRb27+5ueb2ElAi2q+5vPt+S+jO8vCoy2OQ+HMBmfg8Le9/eQ/2ugYRloWMIL3f9kPPZG5yMX
K7g/zFMbQwCnoTeE6Lacp1mD2swxT1a7z+Hus52K3rvxd25WPAezQtitgLmQyZ8DN7mQQshnni+B
oC8Vy7JyzDNuY9fAFELcZxvGBZsLbAdjJCDTeLBFInNt1DqxPHrwgxjPPHiod4OUGQaGZKApMNVw
J9gWVeVluN/7bXQQH7M8hUQwreF5xWn+mQsBcwR8KQTjOWmS+EEVn8T9AXTgOsjOqxgTlltXa42p
1wLXSD+pYVkSCaencHa6YWKNMOcGNpgYqTq45bnBJapyxWhobaup136Z2Pl1LxumeM1QbWVIdjsr
ImolReomD12VhgdGtG/tmqJuLqGA9qiGFao68Pg4x+f4pGlPUrBJLO2rlzreTnu+zEt8NiQiopDW
u7LhMXpRxmsue1P+0cpxpBxfCWExSOvdTIoLp4Gd5GjahlUqJkV6KleFWhTFx9/Q6Rou4hPP7qHw
SIOWlLFCYe3YOSIh07na8JQm5lsHZR/d76i4kEvQW20wI7/VoFppnbckXyXP4tGkH9xnkygYuFOD
LywrqM51EEAP+KlDc3b+I7zLWYbvdgb7TW3CqRLQeSqJKavCWq+ZEFtY0QdB+JiuadKWJ4uVmgDZ
VEDj/hJymaLXPmwV33tUrIvxPaCfD2C+rgq1O0vtzC4tIdW52E9/BC5nTgANg6skQe2kUEXvDGxi
yziARo14qQqkMkeqLmYFR97XI5AFKhb3CceAKg+JA74Ct+lrwa5PjCuWjM6UWTFDR45UpNG9kqJ4
gYIERZIszKpdbP5rVmwhepxcBk8OTzBwj7Chhq7z40wpTbuUeUGHfkpPTSvyC74PNi/J1vZMQrTh
cq1bYUVOJTbjJUBaUx14ynS21sYmWBeY8AUnjdn+jIpER7JYV02HMhT3XY5SyigRlblz6+1hfKs0
VdapnaL8isZdJSKWHJd0UsticOQFFZ/kIe5D1WsELgxpIEWQi1Y2nO61dZ0Rh16HPJvZ/EhtP+hg
oQ5+7MEvnLLQcvP5sO25FjkgmW0bNa1WqCtn5RllIKxDq9dW7Ef200wujvb92/uhvrqbXuVl38po
MHO7dhWf2nrXJGhwaN0lzvKglnQ6c6KvrkmOxg1nkGE2pwgW69yVbH15eKPruKheS2Nk1ryrjmE0
mnrjYArh2dsX1V+hvtsN25dQLwjPwv93CaXOMCKlkZv4BB4v/As/GMHoMu6PJpfhOTzcPzVA/SPA
AFuyXFMNZW5kc3RyZWFtDWVuZG9iag02IDAgb2JqDTExOTAgDWVuZG9iag03IDAgb2JqDTw8IA0v
VHlwZSAvUGFnZSANL01lZGlhQm94IFsgMCAwIDYxMiA3OTIgXSANL1BhcmVudCA4MCAwIFIgDS9T
dHJ1Y3RQYXJlbnRzIDMgDS9Db250ZW50cyA4IDAgUiANL1Jlc291cmNlcyA8PCAvQ29sb3JTcGFj
ZSA8PCAvQ1MwIDEwNSAwIFIgL0NTMSAxMDcgMCBSID4+IC9Gb250IDw8IC9UMV8wIDEwNiAwIFIg
L1QxXzEgMTA0IDAgUiAvVDFfMiAxMTAgMCBSID4+IA0vRXh0R1N0YXRlIDw8IC9HUzAgMTExIDAg
UiA+PiAvUHJvY1NldCBbIC9QREYgL1RleHQgXSA+PiANL0lEIDExMiAwIFIgDS9Dcm9wQm94IFsg
MCAwIDYxMiA3OTIgXSANL1JvdGF0ZSAwIA0+PiANZW5kb2JqDTggMCBvYmoNPDwgL0ZpbHRlciAv
RmxhdGVEZWNvZGUgL0xlbmd0aCA5IDAgUiA+PiANc3RyZWFtDQpIibRXWW/jNhB+N5D/MI9JEOvw
JcfNgcTJwy4QYLsw0KJ2YNASZbOhJC9JX0F/fIeUrcNSnEXRVQJYIGe++eYkZT8IxULiK7i5sR+U
Iv6CBjC2R8kSXu3Hx2QLY7cPnteHluNZTqcLXt/DrdFuScH+RuYsJoolMdzdPT4NGw7oPzHHFwYN
+zvluLumw4QngkVUCeaDYI3HUcMeuVMHXBiFjWujdA3aUN+xXA9GUeM8ZJwObNt++sf++vz0YK9b
jtO1v9KATM1rcymSZSIJn7prx1JbdTH6u/E8ajy/DBu2dsvnVHv1MvzyhPApvx9IDM303BZ43R4I
2vjjEuJPibopUTd1zzX/XrdvtXttwxVAG3eg6Voo+KQXAJYruZicTy7g8Az0mgISA+U0orEClYBa
UPxZQhICZ1JlOK0MZ3YM9CEOjYMizuhyTyRZlnhogDktAYQiieqoHCBmxxgnID5gIXH9GEKSiAKR
eah+K2oI6lPMSa40+BmbwEIU2V1BImBDJmdMwSpWjEMRuvIQCIgiwCRaJcGuKBuvouneYEplgDJq
JWJYJBuIyC5TZbEhU/E8EerI8+8pgJbWu9hzWsk6zTGJ+Q5CdEvQ+RUaU3ROxRVILNYYF5A4r8A8
b0m0xEaq1mfJFIJNjWqaCeiCTgbYtkkNwuNKfbFmEGU8uNWYBjKrHYOHGVQaj8Ca8BX9tGwy3J4F
D0KQYmoKr1/SYCoq1YzG/gI42engYCWk6VF6YGGpbSjn+teUiln0saBmFALqT844ETSo9uBKGsox
EM1A5yDSGGHCebKRg5ruLydynyvYbsfdV4xD/mBEYkTDzJGDc0ftn2vvduOystYmUiY+M8Mrh6ha
fn8ft1/Hrddx5wCButGKKwYBwy6MJQ7xIosqhJTjywr5tPhQJqBbrOJaNuhQK3dotNhvZQ2bJ8CE
H0EGR32gxaYojlRguSzF8CiAJ+boEc6PH6Vo1oWyth7LKEIgGwwqRleDHYLaDNhRTH8C6yjANdGt
9dAteFhA13FOC1RDRDSaYQ7DVeyb4xoDjQEPWYyw2NgY/pXE12SNQirL0HpyRgQjM05LKSn5UBmP
zeZhPuKWNoqE9wJ1WTHOmeGzn5G5vtlKa+TkYASYnGfDsZLFq1IY07XJxeSsBIn3Hv9taiRw/BEx
h7Irrj5W5ogZm0261aRwBOSH0a9mGKAdRY/JRZix/fhUYpdO05oe/v/phBwPhinh/HCyIZ0DH1zN
ODEqfz2rwoTxLDzzloJK3XzVevvonNhgs6wEbol9WxixvH9IEDBl2rngAs0MSd1EfoJHLUsvZKjs
tnudosiJQ8LDtRci37ADhwiCPSfryGNPC0rNqSV1V/mZLBokePOZ4yik8Ke++vyVnq/ZpSRklAfS
qpkaxZw04YbTUN3B7f0t3Ag2X+A73le2V/BubjjGAs4JnNiJWoBkAa2O+Bzm/vYzGC2XwVRp3N5/
om82ywAeMhnu9PX/RCWkAnl6gOp4ESwM09P5+qEQ0dyGocs+T/w38LV6Tpng5SWbFBh9B4jvJyLQ
pbO/NyEengzW8VdKzcfXY6IUNkzh+6sL7Xbf6jp9cDsff3z9DofvlVb1w8py3I773z6ssC07utzc
Pnb6+Nq+tp02tAeTs7Y3cHvw7eW14NS/AgwAXusdNg1lbmRzdHJlYW0NZW5kb2JqDTkgMCBvYmoN
MTI0NyANZW5kb2JqDTEwIDAgb2JqDTw8IA0vVHlwZSAvUGFnZSANL01lZGlhQm94IFsgMCAwIDYx
MiA3OTIgXSANL1BhcmVudCA4MCAwIFIgDS9TdHJ1Y3RQYXJlbnRzIDQgDS9Db250ZW50cyAxMSAw
IFIgDS9SZXNvdXJjZXMgPDwgL0NvbG9yU3BhY2UgPDwgL0NTMCAxMDUgMCBSIC9DUzEgMTA3IDAg
UiA+PiAvRm9udCA8PCAvVDFfMCAxMDYgMCBSIC9UMV8xIDEwNCAwIFIgL1QxXzIgMTEwIDAgUiA+
PiANL0V4dEdTdGF0ZSA8PCAvR1MwIDExMSAwIFIgPj4gL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0g
Pj4gDS9JRCAxMTIgMCBSIA0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gDS9Sb3RhdGUgMCANPj4g
DWVuZG9iag0xMSAwIG9iag08PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDEyIDAgUiA+
PiANc3RyZWFtDQpIiaxW227bRhB9F+B/mDfagcyLZFmy4hq2ZRdIGqNpwyIPliFsyKG0EcVllitZ
QtJ/7+zyIkqi0yao5QeSO5czZ87srnMjFY9YoODy0rlRigUzDOHR8UUKT87trVjDozeAfn8AHbdv
u2c96A/6tORvUgTnPZvyhCkuEri6ur0btVzQPzmlBw4t50+MaXWFIxELyReoJA9A8tat33J8b+KC
B37UujBOF6ATDVzb64O/aB1HPMah4zh335y393c3zqrjuj3nLYZsYh5PUylSkbF44q1cW63Vif+5
de+37h9GLUeXFcSoq3oYvbmj8Dm+LwSM0px7Hej3zkFi6+MrSP4VqJcD9fLyPPPf7/Xt7nnXYAX4
sEkUWw81BhdOPbsD/p3+DhBsCMgE16nELNNMDYe/aDP/Vb5eWcS4wESBNT62oGb+Faz2zoe/yeTE
KjJ1DjMVcYo0e2gArGsLQip3A48m8jNPQvEMT/QaxCKYTzCc4iRLMYCnXZzfdl+t6x+MtAc3d30J
5rbgatmrlutAiqz/Oc4OY3swX+RM94TKqhUEqZBqIuQk49OERLhikrNPu51u7pM/Q8hwwRKSaAYi
AkUfTO/qXWYSzUIk4lhQjdPhIQ91Gk7hOme0XTIyPoZLDfgKLos61+kVjE/qWRqrhWfGFSWWRYsM
trZGkwDtD8HcAKtF+YSBWGAGSi5xVyOERc14YhymNF9JCc7EtOHjbPuJExkLrhSGVQl7g0KzR0bL
DEMbGrpJFPwEB/8PBbyxejWTYjmdiaUy9j9WO7h70b5Tu4lldKSrNDoFo9N64EPIuGLxktHiIQkx
RgRa0CY4nSkb/krJI0SFgSItAjPyh1z7JrDECCUmQQlBRDX02sA4FCUAy7Zo28CSkJYzg3rPIsSI
LWNVi6WtbHgTQSKqmDkw8iqktq2yDaN3v49+K5GWFI6PoGFb2U7UwIYPiojRO+kBNwNyGYkkWEqp
N1pcY7BUhZLKdlXeWTkCJKa581nQU8q4NPOdexLsoIoWb2z4lWSHa7YYH6V0BH4XZ6EMHbtZx8Q9
y+aTgMWxNz4m4b/ec60ZdBoNNOSGYbsJQ24OftKIpW2sNljzhEdomX5aWSpEYkHA9P6Q91SJpvMx
ps4XW52cQ1YSZ1fhnnkcA532AVIMzaaeJz2gpMQ6WD2uOg5NHTIakxKC8a8G2mTiMlOFHZG/IJ51
LXZDnWayDBAgZxOxVFG7iJCZZgb0qHu5TEI0WZpqLSRTItRHwYyjZDKYbfKjwECiBHNMVSnnbJMR
JzQS9Wr1gpA6V3GElOVoHLoYE734uE2CUUSjkpUAy2iSJTR8FMlSKBf6Ulf2MY8wMS2ud6eBq7pv
ZVlNNAmlWgeSWw10lrPWwJjZJfZYa0p9T/OyMy31KTDCavxznJIh72AuXvDaunQOXPItn9ZemrXK
oHnWIBfY4YhWvL02+atXpGkwajNJQZSPnf3LcMMd/1YoJRb1a34Put2B3XMH4J29fMf/A8prcefw
/m673pn3c/d3Oqx7WoHegJh5vHAuHLcL3eH4qNsfeufw/uGpVtQ/AgwAcjqsgg1lbmRzdHJlYW0N
ZW5kb2JqDTEyIDAgb2JqDTExNzUgDWVuZG9iag0xMyAwIG9iag08PCANL1R5cGUgL1BhZ2UgDS9N
ZWRpYUJveCBbIDAgMCA2MTIgNzkyIF0gDS9QYXJlbnQgNzkgMCBSIA0vU3RydWN0UGFyZW50cyA1
IA0vQ29udGVudHMgMTQgMCBSIA0vUmVzb3VyY2VzIDw8IC9Db2xvclNwYWNlIDw8IC9DUzAgMTA1
IDAgUiAvQ1MxIDEwNyAwIFIgPj4gL0ZvbnQgPDwgL1QxXzAgMTA2IDAgUiAvVDFfMSAxMDQgMCBS
IC9UMV8yIDExMCAwIFIgPj4gDS9FeHRHU3RhdGUgPDwgL0dTMCAxMTEgMCBSID4+IC9Qcm9jU2V0
IFsgL1BERiAvVGV4dCBdID4+IA0vSUQgMTEyIDAgUiANL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBd
IA0vUm90YXRlIDAgDT4+IA1lbmRvYmoNMTQgMCBvYmoNPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUg
L0xlbmd0aCAxNSAwIFIgPj4gDXN0cmVhbQ0KSImcVltv2zYUfjfQ/3DenBapLnZ8TVsssQOs3bJ1
q4A+xIFBS0cWG4lUKdqxse2/75CyIlVRMGBKEDDkuXzfuZHuldI8ZqGGd+/cK61ZmGAEd24gc7h3
r6/lAe78KUwmUxh4E8e7GMFkOqGj4JgjuJ/ZlgumuRTw4cP1ctHzwPyoLS049Nw/MaXTPS5kKhXP
UCseguK966DnBv7aAx+CuDezSjMwjqae408gyHpnMU9x7rru8m/3083yyt0PPG/kfsKIre3yba5k
LguWrv295+iDfh18690EvZvbRc81tMIUDavbxcclmS/xfSdg5GbsD2AyGoPC3tc3IP4TqF8C9Ut6
vv2djCbOcDy0WMF+3yQXBoQHbwfOAIJlefCb1Ag6YRrkThc8QoilenCNNOSMK1id6UQhi8BfvYaQ
VhoLYCDwEcqDk1G/YTTFPaagJaQ845rkEDCOkRIpY/ufRpWZ3CAUmv5mKLTTAa5felgbNP1aFB55
msIjI9MEFpg4WvCaiYiL7QlWQf47oG0QQpnlKWoqpZ2IUFlA4U4pY/nENeGomAqTYxeqmwMzBuYd
1sFGDzo/162s+0YzeFOpvKxUqwzaKvSVR/7qjBJzWW+/KDkoJdvnD4LH2N6M5LqQVGkJBbRbrZGa
9mFnqU1ptTiasv9S5bEjgFeUyzrPIROQsD2lxypiWm5TYUXUEseysA4Y7myTb1iBURMJ7dncGmUH
OjL55Sg0O3Qn0mqtayzz+ft2CPo/9U9A7iBMZfiwxmhLOjmGcF/T6HBsvscEFZ70ObWUAC40bqkg
8ZArLAri5DRdBgn+0AM6qek9xca2xqYKC9U4i3VZ4x0stzRUxAnCKUpfEzxFzRACQwgsIYIoqZnJ
5HllrQJWgyKhnClKA8RKZjQHYpstxbeJJoaRIS1oeuRSaSj4VrCUdJq2ImrMsHJCIzCmIImwgnMa
H1adfO2MJ1bUeM+Nk6Y5msGWQks4wpjtUg1qZzh/jEHIJ6MVAkpHm2idmHNY/Pr74peagzX/rMhm
DixSVhTPYj9z/PIElhimTNlrqumqPOQl3AzDhAleZCaY5Qw2/pThwQVBjZhmoM2tZ4JcqmSb1StU
TZuaFQ9uvBOhbRc79DMym+9SZi8BMxqpBIUunoj4hLOqlufwGtirXupqM+qU0Mj3ge4XQVc6TVfo
X/Y7+w7gLwse1XrPFGcb6sKo4eefbg8NNUNzXdHs0K1buI8iKpG16dZyP1MB9s2NV3Az9cHKQ9Mq
nu6DLmCldHZcl4vLTsrU9zS8FA3xTmpPGTNyduha4Reit8EtF+1JBbXe+4arpgj+2Dh2o/LcAauK
XK0zo9Nbm4FWoZkmK9rvn45n3bXUmoZG42U3guFw6oy8KfgXLz/r/oDqJTR4/mRzPP/C/39PNnr6
jM3E8ad0/93N3JnrDWE4X70aTub+GD7f3jdI/SvAALLfCP4NZW5kc3RyZWFtDWVuZG9iag0xNSAw
IG9iag0xMDkxIA1lbmRvYmoNMTYgMCBvYmoNPDwgDS9UeXBlIC9QYWdlIA0vTWVkaWFCb3ggWyAw
IDAgNjEyIDc5MiBdIA0vUGFyZW50IDc5IDAgUiANL1N0cnVjdFBhcmVudHMgNiANL0NvbnRlbnRz
IDE3IDAgUiANL1Jlc291cmNlcyA8PCAvQ29sb3JTcGFjZSA8PCAvQ1MwIDEwNSAwIFIgL0NTMSAx
MDcgMCBSID4+IC9Gb250IDw8IC9UMV8wIDEwNiAwIFIgL1QxXzEgMTA0IDAgUiAvVDFfMiAxMTAg
MCBSID4+IA0vRXh0R1N0YXRlIDw8IC9HUzAgMTExIDAgUiA+PiAvUHJvY1NldCBbIC9QREYgL1Rl
eHQgXSA+PiANL0lEIDExMiAwIFIgDS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSANL1JvdGF0ZSAw
IA0+PiANZW5kb2JqDTE3IDAgb2JqDTw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTgg
MCBSID4+IA1zdHJlYW0NCkiJvFZbj+I2FH5H4j+ct7mIyQWGCczsrsTAPOxKU23btPtARsgkBtx1
bGo7LFT98T12Qrhspt1e1IBQ8OWc73zfOcf2R8qwBUkNvHnjj4wh6YpmMPVjuYYX//FRbmEaDiCK
BtANIi+47UM0iHAq3q0p+B/JkglimBTw7t3jZNwKwH7UEl8YtPwfKMfZDR1LLhXLqVEsBcVaj3HL
j8NZACHEi9bQbRqCdTQIvDCCOG9dLhin977vT373PzxNRv6mGwR9/wPNyMy93qyVXEtN+CzcBJ7Z
mqv4l9ZT3Hp6Hrd8G1bKqY3qefx+guZLfL8iMHRzF3Yh6t+Boq1P1yD+EmhYAg3L8EL3jfqR17vr
OayAz0gti5wKo2EhFZgVhZzmc4qvRH/2F4VIHU8pETCnkNGUE4Vcf2FmBaPvfnx/MwadtM0OUdtI
ArgJvS7Ek9K63glDtl49E9Yzdii+Lt+ftiRfI23Vsu6RAXA4EJtMLoEJA0Qtww5ojFQs7Z8uJFcN
ju0zpyjzsZ/yyeRMS+RqZS08nM9TkZ0O4YCF0IDtJ10QzneA1JCKRWAajCJCL6hliWhg5kLDhvCC
ehBL0Cukz9HMZYraJW0pOk3MXWyIugBiMNB5YajeK1BotCsPHv8rbtHd/8IvOA/wFhPy33D/hPmH
SeqoV2QHmLucaQMGC7zkSq5t4jqBkLY9c6gIEQ3x1AIa6VixyzLYp79G7VAyaxzkwslXb8gLbY5R
58SkK6Bb7E7omglczSwijQnwughzJ4INYYYODkIouoRp/z54cVpMXzpOqLN1Sbs3vX5BoZoS6U+U
8r5h6G9oMjqqgzMFVpJn2DwWpOCmXuRXtO7/N4Cvkl7mzBjbdVYUfdSGXFnZktPUlKZOZ86lQUsE
UpTTEKv0iphDXzNU5Uwgr9hBiXESpzJfM16eEwa76wk3I5d2h1CsJSENrMjmDMZXTA29How50Rp+
JoqRObbOieurpSubeGMLUhUu+Y69fioJSN1uDBwdMUGzTonXjQqS23RH8FgIdhjzXkFGDHH524Gk
bT00kM3wEGCOnJSWxqtmT0pDmz1a1/ztamvwlazOd7MSD7aX00o/jaHBX8fZRp1M1VFpvjY7SC5F
wXly1UGGknbm1G0Kw6rMXXdF6PMdCsO5bUUXgn65qEs6uSSfq2SwPEuVXL0SiQ3gLeDmhjAsLXam
PicRrc2CSpey/PfKZAeROyWqpI24GkKwJjXDvr2rQ3F29mZrNRshO2QnqOos/yZUiAkJxv1NffIY
Tmmgui9YTB2XvMb6t5aqKqopts31mEKsN8MIZ7+h/KYxlNHJ9uMScz8E+6MplCg7M56TZ32nIYBy
3/7S0yh4FdY+gR9eaaq2+c6xGT/A+RWu4Wb6KI2R+fHltA+93sDrBwMIb1+/mX4P+8tc9+tbpxeE
t+E/u3ViNUX2KAsHeGpMh/7QD3rQu8eTJLoP7+Dj88tRUH8IMADQ8E8hDWVuZHN0cmVhbQ1lbmRv
YmoNMTggMCBvYmoNMTEwOSANZW5kb2JqDTE5IDAgb2JqDTw8IA0vVHlwZSAvUGFnZSANL01lZGlh
Qm94IFsgMCAwIDYxMiA3OTIgXSANL1BhcmVudCA3OSAwIFIgDS9TdHJ1Y3RQYXJlbnRzIDcgDS9D
b250ZW50cyAyMCAwIFIgDS9SZXNvdXJjZXMgPDwgL0NvbG9yU3BhY2UgPDwgL0NTMCAxMDUgMCBS
IC9DUzEgMTA3IDAgUiA+PiAvRm9udCA8PCAvVDFfMCAxMDYgMCBSIC9UMV8xIDEwNCAwIFIgL1Qx
XzIgMTEwIDAgUiA+PiANL0V4dEdTdGF0ZSA8PCAvR1MwIDExMSAwIFIgPj4gL1Byb2NTZXQgWyAv
UERGIC9UZXh0IF0gPj4gDS9JRCAxMTIgMCBSIA0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gDS9S
b3RhdGUgMCANPj4gDWVuZG9iag0yMCAwIG9iag08PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVu
Z3RoIDIxIDAgUiA+PiANc3RyZWFtDQpIiaRW227bOBB9N+B/mDcn3VQXX2I7bQrYTh5aIEW7ENCH
qDBoaWxxVya9En0D+vE7JGVZtuUukI0ThOYMZ86cOby4o0zxOYsUfPzojpRiUYIxvLqBXMFPdzyW
O3j1B9DvD6Dt9R2v24P+oE+mYL9CcL+xBRdMcSng06fx06Thgf5kCxpwaLh/YkrWDU5kKjO+RJXx
CDLeGAcNN/CnHvgQzBtDs2gIOtHAc/w+BMvGzZyn+OC67tMv98vz08jdtD2v537BmE3N8P0qkyuZ
s3TqbzxH7dRt8FfjOWg8v0wari4rSlFX9TL5/EThLb5/CBiluffb0O/dQ4aNH+9A/CdQ3wL1bXm+
+e13+07nvmOwQvEzX4vIsCFwG94AFwp2EN7CB43Ng/e+04bg6egPMENiUFuDd9VpMrAMHmn1B7i0
oojPJ2nqkLzI1T7LVWLTqDJk8VSneAOycu2jAfk2gEcTGaKU5XktbIW5mqGIElgyLq6i1SXNapAs
91MTG+ZS1pivlKidH4sWkkh0/+AKqRSDXGmBc2AlvKn6nwO9IIYmjjWWi3y7qOo6MXVwkSsmIgSe
Q8JEnNJuZTkwWEniADNQSSbXi0SuFQ3xyJ8DPxIMm4Jca6CVYcObbcIJCUtTGTFF0XWUmCkGW64S
Q8qtTp4rmWmrBCYk+WRVrBuWcTZL8Q7UVoKJpIWXJyzD3ETM2bIIm6tsHal1hk49x9UW3tUKrmzX
hcWK1PYeXNcA4GJxDcFv+Sf6hJZ+CpFc7YkozRn1HOT8Mm4Z0pIlEGOM74D4J5Q1/BtuD6zRt5Sy
UC6FJqRJSGn0uOyUSpgii1C0LwynYdPkrmI25W1Yusb8CruWIY3KskQk1SQ21FObbQerGb5KVUBR
CRVqFtD/WAoEKVJaTYMUN5g68FkVsbVedcqC/bB5wf8RImncRrV4SONC5aQD0je3jCxxOSPhl+xx
Hd5KRtElRRoMmwme9LJYYnhO2MYWq/8Ou8hwdmeSX9PMKepDZGa3na34gvGh0y328fOOCsnPzsJR
ATtigo4mQO1DurHq+Bv3W5nF0LLTecuBgDJpHqPiaKBdyMOmyvXuraHySFZO8sVdhCsFLb0709bB
QHqdZ3IJnKKsqNdCOTAS++O6ZgGuipsOApxzQUjpiDZ9SngaF7DWIkWNTrVIFkhz+thokbvOWvhT
prBpctWK1AZa7sujoKDgeDb89l6oPfqNBbHGcnJP5uulDX56Q1y9G7X/o0n5x5Xw/+ty7FTq090v
JRKd3g5auMcWnluLFtJc2OQL3bfzp1PNi3AslSJhVB6FPeh0Bk7PG4Dfvf4i/A6HR1T78rXneH7X
f9trjyQ80GeTPyDNvg7doet1oPMQNjv9B/8evr38rBT1rwADAHVzESENZW5kc3RyZWFtDWVuZG9i
ag0yMSAwIG9iag0xMDQ0IA1lbmRvYmoNMjIgMCBvYmoNPDwgDS9UeXBlIC9QYWdlIA0vTWVkaWFC
b3ggWyAwIDAgNjEyIDc5MiBdIA0vUGFyZW50IDc5IDAgUiANL1N0cnVjdFBhcmVudHMgOCANL0Nv
bnRlbnRzIDIzIDAgUiANL1Jlc291cmNlcyA8PCAvQ29sb3JTcGFjZSA8PCAvQ1MwIDEwNSAwIFIg
L0NTMSAxMDcgMCBSID4+IC9Gb250IDw8IC9UMV8wIDEwNiAwIFIgL1QxXzEgMTA0IDAgUiAvVDFf
MiAxMTAgMCBSID4+IA0vRXh0R1N0YXRlIDw8IC9HUzAgMTExIDAgUiA+PiAvUHJvY1NldCBbIC9Q
REYgL1RleHQgXSA+PiANL0lEIDExMiAwIFIgDS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSANL1Jv
dGF0ZSAwIA0+PiANZW5kb2JqDTIzIDAgb2JqDTw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5n
dGggMjQgMCBSID4+IA1zdHJlYW0NCkiJrFbbbts4EH034H+Yt02KRBc7jp30AiSxC7RAgG4hoA9R
ETASFbOlSC1FOzawH79D0pKlSNoWi3UCR+HlzDnDmSP6N0qzjCQa3r3zb7QmyZqm8OBHsoDv/u2t
3MFDuID5fAGTYO4FFzOYL+Y4Fe0LCv4X8swE0UwK+PDhdnk3CsD8qGd8YDDyv1KOs1t6J7lULKda
sQQUG91GIz8KHwMIIcpGV3bTFZhAi8AL5xDlo5OMcXrt+/7yb//zannjbydBMPM/05Q82sfzQslC
loQ/htvA0zt9Gv0YraLR6v5u5BtZCadG1f3dpyXCO35/ITEMcxlOYD67BEVH396A+CXR0BENnbzQ
/s5nc296ObVcAT9MAGV6TRWkTNHEJiU+2RTnCSk1EJFCKl+E/S8+9eCjVMeBM8CNkPB4TMoStMmt
URPAeehNIFq6CIlUBlhQXMNKwKNKfuJpEQ1qIzSyBoIT2swJqRGOEgUss9gFUVTgVDwWpSYicQGi
NwfuJawlT5l4tovpTlORInTCDR9WbZEOK6Wlro4dg5uhJlgi84JxN21YeZWWSUOLWWfBMykf3RO8
7dFsP57XCoAfpGc3/RvyE1EHZKenGet/C6UxF09UJGvYSzkMe4ycmWWvY0CDLD79YsEAAsVe7Ixa
uPcg6MthT1eCo4eLXGTfh6poh9RYCu8PUnB9XcddVpi99hgO1Dk74E8b+N/WVNiKMoyzjXB9ZKqd
cE7TM8A/nfmyqsxyU2D/xWObKFr2CcA+OGC52jVftkhX24HIMs+Z1rieiWabnrU7SP9RYmNkZMN1
GyE++bExBsC5TIimsCWKkSdOy/j0qMuDTxnyrsI3kWuglkZXCqmkrtc1+YndL/Yo73mTY6eXGNc4
jGMUjzEs33SavqS4VdY5rTfHp9aRhGVnXMEG9ZBafOJop1JQYHk8LjhLmOb7FjT6nuDWpvRRI7Zh
vbhK5ZrxFCrYSqmxx55SHSgN0cnKGm2wluKsleUuNCaipyba6gxbeGH4ZTL7RJ1WY+BHysdAmD67
IR6zdvk31L7gewHM6wop1sTwyA11m56SnnWVZVIhXRxumWsjfEJERVG6EvUgamb1iJWbEkwO54yo
Ll0tYAOJNdzadnD3LVV7yJhCDHwTaJrbVwnmXrfXx+MBr39t9UM+2XXfRv2bSPEJxtWwAzynt12z
GzLBAegee3JjVcyOdQ2/CX7jnTPkpz3UWqJ7hA7qbJRyYHIExp+Pp28KFg/09VmitZgtY1v/fbC9
2etJXiN38NvJW+0SWuhOA7iWUDSjeHXB2wd2mrNfk8yc5k9YwbUT4b3GlmPftcluKBNsP5AqxfTA
DQiC1yXrgETZO6/p0drgrb2bjsfbE3ZYy47lRqQHd6w3H3qhYUIewFeK7suEsU9Suz4yaKKRjpE1
G9yakKIFJ0Y+TjrazZS8vvT23OVvpdYyb17nZzCdLrxZsIDwYvgu/ydU199J957uBeFF+N/u6djE
V6biwgUW28OVf+UHU5hex+Pp/Dq8hC/33xui/hFgAGyzpH0NZW5kc3RyZWFtDWVuZG9iag0yNCAw
IG9iag0xMTUzIA1lbmRvYmoNMjUgMCBvYmoNPDwgDS9UeXBlIC9QYWdlIA0vTWVkaWFCb3ggWyAw
IDAgNjEyIDc5MiBdIA0vUGFyZW50IDc5IDAgUiANL1N0cnVjdFBhcmVudHMgOSANL0NvbnRlbnRz
IDI2IDAgUiANL1Jlc291cmNlcyA8PCAvQ29sb3JTcGFjZSA8PCAvQ1MwIDEwNSAwIFIgL0NTMSAx
MDcgMCBSID4+IC9Gb250IDw8IC9UMV8wIDEwNiAwIFIgL1QxXzEgMTA0IDAgUiAvVDFfMiAxMTAg
MCBSID4+IA0vRXh0R1N0YXRlIDw8IC9HUzAgMTExIDAgUiA+PiAvUHJvY1NldCBbIC9QREYgL1Rl
eHQgXSA+PiANL0lEIDExMiAwIFIgDS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSANL1JvdGF0ZSAw
IA0+PiANZW5kb2JqDTI2IDAgb2JqDTw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjcg
MCBSID4+IA1zdHJlYW0NCkiJrFfvb9s2EP1uwP/DoRiQpEj1w47jOC0KxEkKNEC2bjWwD1ER0BIV
s5VEj6StGNgfvztSsiVbabdiSeAIFPnuvePdI+1fKSNSFht4986/MobFC57Agz+TS/jiT6fyGR7C
CxiPL2AQjL3gbATjizG+mm2WHPxP7EkUzAhZwPv305vrXgD0q57wQUDP/4Nn+HbNr2Umlci5USIG
JXrTWc+fhY8BhDBLexO7aAIU6CLwwjHM8t5xKjJ+6fv+zd/+3e3Nlb8eBMHIv+MJe7SPb5ZKLqVm
2WO4DjzzbE5mX3u3s97t/XXPJ1lxxknV/fXHG4R3/P5CYhjmPBzAeHQOivf+fA3FD4mGjmjo5IX2
bzwae8PzoeUK+GMWHHKez7mCUpiFKOxIvBBZAqLQhhUx9+BXaTi+YAY/hAYt8mXGiXkAb0JvALMb
h6Z4wlNRCJvbUmQZFNLg6DJjMbfI6aqI6a3G0ZQrjvBJIzJhzl47ML1aIqs4Y1qDMJpnqQefOYeJ
N4Lf1lyVSiCrDxUgpFJVauIFK4TOm1hGtlhYaIdcE9rx0R5U0gY7aRT0aq6Noqq7ppVN+O2biq0G
Vj0mHP+rSiMcsWriETCDuzVfGX4KrMBcm6gPHRklqCyTJSKghlgWhmGmapgt++hYRydQLkS8cEu0
3IWO+jZ4k3AXEczuCpezXUrylTYw520RcmVsDlnUj82KZS3c7dK5TDZWmJ3qJtqxA0yUg7tblRwl
LepXO1CDzgiinWFbi1U29GE6IDquqVJQTA2SZciqVWAr7bKqlzwWKdIFw7GwGVaVTF0fUDDPEXAa
2gLNIuojkSZoLJXieimLRBO2aXLvSCx2y2EOEFTv5eBj1YvETNttaifEqdtm9RRwR3Ewy0TxBAUv
o+PopKqwGjIRisdGqg3xpCKLmXHtUTc+lRI1cFWBVSLcTJJhJEJaNk3cPWZbMI37gfJkkW0sVVlw
mGPWtRZPBdHcpUBE/WrVXhMLg1u7WqIybaKTrkY9JIBmkOPOve3ortZsw/Q3mDP1Dd629BxOSqVM
DibxIolrXzigVJmBfAL+bDjVxg9YNcjscwHMHh5gh8MAvyRCYwFvomN4NZUllLJ8BVj9h4Is3/1B
HKK4nQqgKf0F0v+S2S0zLhcE9l/41QS/n/nQCxustmLqwYl33nF8dGhu2c72VMENRB22a9lcrm2P
oJGkqwztl7vjc4ktWBh6g9aLYXDHu7zddo51MmEPSfQNXEalsYu7FryknmeguaEHOf+KXYvu8Fni
gY+NktMJ0rag7SGUKc7QpmoOtSc6A9lFoV5GC8pFkbjTqOTY2DnbtGBLhpqwB10FE2d7rHwlL1Oc
YlATU1fXPufBHb5sYtQXBJzIyJZ2lljdPBw4Txq2hnlPMr5/O6CJqsAOIpOrnXYXeIoyRdrcjW1W
alck8+bQeXydVouOcLZM7B5rQ9eZ3Vp0YiXoHpm1NNA5jquaoO561elVH/DOwp8Z3aYu4aB821Xu
+Fdivmsb2FY/7RoVPkGQVv5/9Cfs7KyL18vEnJKO2HXw5sW54/vAVBoj8+ZXghEMz4beCC/S4dnL
3wd+h/oKPTi863tBeBb+3F0fz64woCYOLzCpDxN/4gdDGEb9y+H4MjyHT/dfGqr+EWAAPpnK/Q1l
bmRzdHJlYW0NZW5kb2JqDTI3IDAgb2JqDTEyMzYgDWVuZG9iag0yOCAwIG9iag08PCANL1R5cGUg
L1BhZ2UgDS9NZWRpYUJveCBbIDAgMCA2MTIgNzkyIF0gDS9QYXJlbnQgODEgMCBSIA0vU3RydWN0
UGFyZW50cyAxMCANL0NvbnRlbnRzIDI5IDAgUiANL1Jlc291cmNlcyA8PCAvQ29sb3JTcGFjZSA8
PCAvQ1MwIDEwNSAwIFIgL0NTMSAxMDcgMCBSID4+IC9Gb250IDw8IC9UMV8wIDEwNiAwIFIgL1Qx
XzEgMTA0IDAgUiAvVDFfMiAxMTAgMCBSID4+IA0vRXh0R1N0YXRlIDw8IC9HUzAgMTExIDAgUiA+
PiAvUHJvY1NldCBbIC9QREYgL1RleHQgXSA+PiANL0lEIDExMiAwIFIgDS9Dcm9wQm94IFsgMCAw
IDYxMiA3OTIgXSANL1JvdGF0ZSAwIA0+PiANZW5kb2JqDTI5IDAgb2JqDTw8IC9GaWx0ZXIgL0Zs
YXRlRGVjb2RlIC9MZW5ndGggMzAgMCBSID4+IA1zdHJlYW0NCkiJzFdtb9s2EP5uwP/hUAxwGth6
sZPITooCTpwBLRCgW4X1QxQEtEzb3CTSIyknAfbjd6ReTNtKuxYDtiQfFPL43PPcHe8kfyo1W5JU
w7t3/lRrkq7pAu79WGzgwb++Fs9wH44hisYwDCIvODuHaBzhVvyyoeB/IivGiWaCw/v317ObTgDm
V67wgUHH/5VmuLulNyITkuVUS5aCZJ3ruOPH4WMAIcTLzsQemoBxNA68MII475wsWUYvfd+f/eV/
vJ1N/e0wCM79j3RBHu3jYCPFRiiSPYbbwNPP+m38e+c27tze3XR8IyvNqFF1d/NhhvAlvz+RGLq5
CIcQnV+ApJ0vp8C/STQsiYalvND+ReeRN7oYWa5Q/1C+0ET9YagEMAi9IcSzehv30owoBb5vnkEs
ofx/QyTlGqpDw71DpUW6ZtkC6LPGc439VasXAEMAlkKUBvGpQw/mFBN2vAzw04KpTUZekhN4U3oz
CCnJMrp4A8lbuILjY8jmcNEJwG65Vt6i8MuaciCVQMaVJjyllV/QawrLgqe2wOZE9u1KJd8i9hTy
TLoiOUGKTLVEpIJaSpHb0whjjRtcukUGpf81MXBif1/SRdKl6A0fvL0gVNwbS6aMcWUKT0yvoSe2
VD5JpmkPiMaqmhealjKsy17SVXuY+2BLilLTmj7TvSb5yPSJZpn3zap5JP+0bhqq//8KGjnUP3AM
J0YrJQoj+2RyUgrFYB0l29rtCqKKUJOFg6jU9dh381oXyAHUoSsPPhfpGkjS5bvItmY6L5TG0ttS
WxaK5BSIXBU5SlAmz2a1RmB85YjhSdfsuqildO+oKiZeBL8RyUShYFoXoql2CTe2WGZWn+3lLt60
riWCN5DCfnXb+ymyTDwZXk19q8uDTJ8CmSstzZgBGAyqfFlcfGj2yhWCrTEnL5AKrglmwO4nXWtR
S29jmNN8TiVsUSSZZ/S7KOMFV0ecM4H5Lf+pOdfghrbg2QsUqgJm3FHVesFOAQeWpqnGE62AzXbf
xsDiOy2gynYTOcxc2zV07pa99niy4eSqW+Lg/oq6ctvwKGFMtHaVwAWGzGkYTLe0oYPENGX7PaV0
2B5fyYt7v/+VvLiA/3leXDI/khcXfrd3DO8MgGbMYhNNhZRUbYR1hvDuJXR6cRhgy3tRmuYQY/8u
L/LPle1x6CtTDO6WmWCYnq/8Gru5vTaRBYZLWlLYXPQc474GnDRUekn3qPCQRwh3MUj0j315+SoD
d9jiWDT2OU5HXN8PmqS6kMiICz7gdGXfE42DOQ6cykv7BEfQokS9akccDQdzhkZcsRVHnRXlhmlY
Md2dRnFD+IyXA9O+RuvMHQhflajKQ6qYV084p+u1vuWKs05quO+bZ6ysBzuzD1+qW74VroXWyNr5
XDiH0dnYiy7GEJ69/q3wC9Sv18Pj7wAvCM/CH/sOQGVhaN6uwzEquJ/4Ez8YwSjpXo6iy/ACPt09
OKr+FmAA2Gva7Q1lbmRzdHJlYW0NZW5kb2JqDTMwIDAgb2JqDTExMTMgDWVuZG9iag0zMSAwIG9i
ag08PCANL1R5cGUgL1BhZ2UgDS9NZWRpYUJveCBbIDAgMCA2MTIgNzkyIF0gDS9QYXJlbnQgODEg
MCBSIA0vU3RydWN0UGFyZW50cyAxMSANL0NvbnRlbnRzIDMyIDAgUiANL1Jlc291cmNlcyA8PCAv
Q29sb3JTcGFjZSA8PCAvQ1MwIDEwNSAwIFIgL0NTMSAxMDcgMCBSID4+IC9Gb250IDw8IC9UMV8w
IDEwNiAwIFIgL1QxXzEgMTA0IDAgUiAvVDFfMiAxMTAgMCBSID4+IA0vRXh0R1N0YXRlIDw8IC9H
UzAgMTExIDAgUiA+PiAvUHJvY1NldCBbIC9QREYgL1RleHQgXSA+PiANL0lEIDExMiAwIFIgDS9D
cm9wQm94IFsgMCAwIDYxMiA3OTIgXSANL1JvdGF0ZSAwIA0+PiANZW5kb2JqDTMyIDAgb2JqDTw8
IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMzMgMCBSID4+IA1zdHJlYW0NCkiJnFdtb9tG
DP5uwP+BKDDMCVLJsuPYSV+AxAmGdgvWtQL6oSqCs0TJt0p36t3JiYf9+PFOkl9ip17qxIDto/g8
JB9SlH+pDE9ZbOD1a//SGBbPMYEvfihL+OpfXckH+BJMYDyewKA/9vqnIxhPxnQULksE/wPLuGCG
SwFv315dTzt9sH8qow8cOv5HzOl0gVOZS8ULNIrHoHjnKuz4YXDXhwDCtHPuLjoHCzTpe8EYwqLT
S3mOF77vX//rv7+5vvQXg35/5L/HhN25jy9LJUupWX4XLPqeeTBH4d+dm7Bzczvt+DasOEcb1e30
3TW5r/l9J2IEcxYMYDw6A4Wdz8cgDhINaqJBHV7g/sejsTc8GzquUL8UmkoJDQx0NdPkQ2TARYIP
lNPZErRhygATCSC9S8mF8eDzHIX7zjXIqFtwYzA5AW5ghrEsUIOZozWw4fXhZeANILxeQcrUnddg
1iQ8rs/SSsSuMIRij3MUUa+xAw3REbzaNN9gb/2RdWbm2969J90zI/kB57EUC7TRt1ZG2ksxQwUL
lle417nCDNiMm8GMH2K/BiD7DRD7bYGxkQdx5vjwLByy/ykcGT8vHrJn+QEkEsZgJYyg7w1hurT6
b5H3iGerghmau9hd8YjHpijiSikk49ow6jFNLCthLC/qREwytIqZ/vHn9Hf6QZno6BG3IPDg01Ib
LGCaM61R7xALCcigNjMU8RxytiSBxExApZHCVVxWGnTtggbAgifUW3Hty9vNROAFcBvCR2o6WdR2
e/vIorpTUM70rrA5EagYcYFSY5XI5sixYDPKwIxRzEAZvEWloy4KgRDec+Km4DLPaJCYeeHBdkKj
3idWILAaqTBRj4rf1oI+WiapzHN5b9NaYDEjb+05jRaFUXcV+QWsogmaaFY5CDbHBByv6y3wnrTn
xgIS/zc00Vr97c4X95oSslGVk1zrpplcKxc0vjIaoOLESSXBlFW5RaC8JLVO4Z7nOU01W8rkcVq2
GFpuTbIft0VTLUJbWbd1olYRLrzMjfJ1uQj7IFxVW9tqPAuxEppngkLcQmtyOdzK5c0DK0q6p+2o
tOm0lfAUvV/tELa/vmmKNzo/nYyGrmy7dlgiI1nRGLCFfbKsJc0Tk5Ldi32S/yV5cWIhvXVe1nBb
gqtfmywCC3ZDWjB7wd1J0222sxtFkOoVdTZ1vZKC/1NvFayQdujNFbJEe7A3dXs7xjD9TftbfXOo
a7bVYR0AzdzM3qGebo7f1lJojL1aLO2lrehpx7KivKeZwEU7TqOuG6iaF1VeB2xo+QCdS7OrwqhX
iRwpadz8SpnLkWJKoqMGL6sYlcqgWxgYiQhjJEBFl/GUlo6ou6T6OTY07B2BhuIuEt2mmEocVrMB
SJWQq+YL7TNx5dg2P9T18Z6b1jsaeL0fKHQ3t255+oZY2v2IgiQKtFQZfJRzhQXjUdeWvc66vUnl
9prdWPkqlT/BP01/II2pdbvBncrgKqfRPB+qrHKapf8vWzTRCmf/hCTtpinyJWCaYp0fQ5vnRiVr
BZFZS4rl9uflbvbuGTf1llsrw7V2e4P04J3Th0KKWsjG+clae3RvUJBwzcrSpooXBSacQsiXdYI2
t/k9DylX0hgauRvPKSMYnk688dkEgtOnH1L+gnavH+w+gHj94DT4uQcQajV6rqCeCCbUal/O/XO/
P4Rh1L0Yji+CM/hw+3Ujqv8EGABGI/FiDWVuZHN0cmVhbQ1lbmRvYmoNMzMgMCBvYmoNMTI4NiAN
ZW5kb2JqDTM0IDAgb2JqDTw8IA0vVHlwZSAvUGFnZSANL01lZGlhQm94IFsgMCAwIDYxMiA3OTIg
XSANL1BhcmVudCA4MSAwIFIgDS9TdHJ1Y3RQYXJlbnRzIDEyIA0vQ29udGVudHMgMzUgMCBSIA0v
UmVzb3VyY2VzIDw8IC9Db2xvclNwYWNlIDw8IC9DUzAgMTA1IDAgUiAvQ1MxIDEwNyAwIFIgPj4g
L0ZvbnQgPDwgL1QxXzAgMTA2IDAgUiAvVDFfMSAxMDQgMCBSIC9UMV8yIDExMCAwIFIgPj4gDS9F
eHRHU3RhdGUgPDwgL0dTMCAxMTEgMCBSID4+IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdID4+IA0v
SUQgMTEyIDAgUiANL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIA0vUm90YXRlIDAgDT4+IA1lbmRv
YmoNMzUgMCBvYmoNPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAzNiAwIFIgPj4gDXN0
cmVhbQ0KSImkV9tS20gQfVeV/qHfFlJEFxuwYQlV+JJa2JCwibbygFKuQR7Zs5E0yszIxlv5+O0Z
SbYFghgWeJDlme7Tp09fcC+EYjGJFJyduRdKkWhOp3DrBjyHb+5gwO/h1u9Dr9eHjtdzvMMj6PV7
+FWwyim4N2TGMqIYz+D8fDAaWh7oXzHDBwaW+5km+O2CDnnCBUupEiwCwaxBYLmBP/HAhyC2Tsyl
E9CO+p7j9yBIrb2YJfTUdd3RT/dqPLpwFx3PO3Kv6JRMzOPbXPCcS5JM/IXnqHu1H/xjjQNrfD20
XB1WlFAd1fXwcoTmS3w/EBi6OfY70Ds6BkGtr28g+yVQvwTql+H55q931He6x12DFUA79+Ct7+DB
kX5R/ryBuMgiQxDLFMhVFsHv67OdxlmAJWEKYi6AAAKYzahwIJhTUHNByRSWLEngjiJqWaSYpuWc
ZpujENpMgqToRnG8QoEu8IN2FrzZ9rIggpG7hDpwqdCWKkQmMb4iR5CCRpQtWDYzBtYgtg6Gtlc6
VkgT8EIBj6JCSOcxBQ9dt5AxwSQREe6F+y8i5asGgK8x4IqMA/3RGJPb0BGu1GQQhJklK3xisqbz
MTNl9FQ2gw/0nYgg9xHJNP+FRPKR4wjNKIq45iSbynlok+8UUhrhRybTlxOCtRd9f5YLA2V9x5yX
gM630sjiRvws20ghtDVhWOwY4wFwfC+WTNI2Hkpr3g4xtAaxQ1pfE0sN3sG0XjbSXb5vSen68rKS
zIwq+aS4PeNy4y60M67WTnfhQhH53ZQGVka4VzKyQqCTiBf4vDshkqoSZl1mCUu14st8ZkV6hxB5
DMMPn4Z/QhTa2osDX6hSuny9ip02RratLkhSUKcC1dkC5ftOF62lJJ9zQVtRr79FX0TKRnnogk0L
Re+BpNy0E11z8sBkWFf+XPCMhfa/Znqsue00HOjeF/Mk4UsdEpaWCbqmCNWArnEKLNiUTk+fq66M
LqtkFBmS+A619UwmhmhbiSJSfOPMgWFd7XIdNsNzJIsodmY1N7zO2CK0UWjajQMjGpMiqZxicmuE
/st7A8r2BRE0pUSUommuZc+1nRpoBRNiwVPzrg4MI8CqMLUn6G8SaMaL2bw8/FhPOvZKlWtmDszH
OmxZ3CmBRaS7tE6//q4Gp3tSiv2bIbfYn9e177R42oKky3IbVjsA3bRZLb7Q3kzQvNBXkA4C7y/f
f2rx9aOgBS3FWsicZqgw9KRYYgwL+qNgwrwqQyQLwpJyqOrZhFE1qswMZlVG/9iXPiZgxnHw8DjG
ToWbjxl7iN3MtZf04/aZ8krlVF15k8wHND+USWjXGTloZLkl6FoUv1QjbQ6F0mVoPxKCYeqZWWaE
qpNRMbsTl6ad58Xra08r7UGE1XbWTmJoV/DqLUUHX3HfopwGT2xdqrr7qq3FsTJJqpGCyz2vSCyF
XmarPlb7eXJP2iyiOGN0tyexomIjkzq32539lyy3DM3/Py6J3G1clu7eoUpaBuaUSV3asuHgiZl5
CJ/prEiIgPF9jrup1ODGGf6bRGGop2TTvp5w5fAUdEbvc2CyajClEboxkus2LjJIiYrmGjM1VkO7
3lCNGXy4Mympiu4Rd09YL43BFBfFhOd4/24Ff2coWiGZWmnmAo4TG7WLW529FAzBZPrQHzQTK/iC
LTKioszXJjwzFyVHxm6oSI7QId6SZnaHe3j5AxF4+Su26XD/Ycf/yBUtN/ePnwLQ67eGXtqJcRQX
CN1sALLIcy5wupTtqaZCL4k7bBWvXyq0TE0yULK4L2hjkhciwmqqPlY5Dfef+Z+vKWO8R59UgHF2
0GiHoW22ZFlEEaVTPWC1o3Fgja+HlnshFIt1jz07cy+UItjOp3DrDrhS2GS/uYMBv4dbvw9H0D3s
O73jPviH+D5Y5RTcG4KSMOsZnJ8PRkPrL7AGgeUG/qSDLTCIrROsFw9OAC30HM8/xJeptRfj+Dp1
XXf0070ajy7cRcfzjtwrOiUT8/gW2c25JMnEX3iOuseteM/vaon5faTq9sQ9cb0udEP7tNs79Y/h
5vrbVlT/CTAAQ4v8eQ1lbmRzdHJlYW0NZW5kb2JqDTM2IDAgb2JqDTE1NDYgDWVuZG9iag0zNyAw
IG9iag08PCANL1R5cGUgL1BhZ2UgDS9NZWRpYUJveCBbIDAgMCA2MTIgNzkyIF0gDS9QYXJlbnQg
ODEgMCBSIA0vU3RydWN0UGFyZW50cyAxMyANL0NvbnRlbnRzIDM4IDAgUiANL1Jlc291cmNlcyA8
PCAvQ29sb3JTcGFjZSA8PCAvQ1MwIDEwNSAwIFIgL0NTMSAxMDcgMCBSID4+IC9Gb250IDw8IC9U
MV8wIDEwNiAwIFIgL1QxXzEgMTA0IDAgUiAvVDFfMiA1MiAwIFIgL1QxXzMgMTEwIDAgUiA+PiAN
L0V4dEdTdGF0ZSA8PCAvR1MwIDExMSAwIFIgPj4gL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gPj4g
DS9JRCAxMTIgMCBSIA0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gDS9Sb3RhdGUgMCANPj4gDWVu
ZG9iag0zOCAwIG9iag08PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDM5IDAgUiA+PiAN
c3RyZWFtDQpIiaRX227bRhB9F6B/mIcCllOLF8m6ODVc6OIACeDWSVQEqOkaK3IoMSF3meXSlIt+
fGdJUaIp2nGStR8ocubM2Zmdy5oTqQKfuQrOz82JUsxdowc35kLEcGtOp2IDN/YYRqMx9KyRYZ0O
YDQe0afFQ4xgXrNVwJkKBIeLi+l81rJA/8kVPQTQMj9gSF/vcSZCIYMIlQxckEFrumiZC/vOAhsW
fussVzoDbWhsGfYIFlGr4wchvjZNc/6f+e5yPjHve5Y1MN+hx+7yx24sRSwSFt7Z95ahNup48bl1
uWhdXs1apt6WG6Le1dXs7ZzgC35fiRiZGdo9GA2GILH16RXwbxK1C6J2sT07/x8NRkZ/2M+5wm4J
SQJCrVFmQYIGaFIWdG2DAOZaUL9YvNqrvAI/5W7uwoSs8hXEEiOm3LXTcY7htx1AbwtQrsU6SPa6
ElUqeQJkeQdQAvpSROWH+0CkCUTMaZcWXBaGP8ZTJOoniZYIzzB12uynmSpi8HNMc23KjGc8qpx2
lefWSK9m5JDckrlfJPpOBwKugKcROMc/ypAgClpMIqeHBJMqV6e9Z9vAtV81tyAN5JTeCGQSNwq5
Rw7IAkXREhGC8HPUa5ThgJis0pBJkiOPJIkm56MOXUo/KzGrGfBFGIpMeyGJ0Q1YCO6aSSpHKEm/
0AbaCyRpHAup0Nth1R07Ex5CdV3lIUsabdMyoLYm/KFi3ekE3A1Twjwy+RE5qn7KHIfVAcgBFLzO
EjFuVOA1hT8wg1A7+FBU1kRnTMqArXAb8gYNVdNYsGWDlF+TeiOIso8U2ENZrMleJi6Lm8h6dUeA
F6wCdQIJo3PCErixume3DYrzA0VOBydXbpDODqQzIb19zJwOC+M1owxCqt7OccU+6/7rtCfdv++e
IPKpichj9Mo5GuuqP6/qJ4fU1oHCJGYu7iEqhHI03Vl6RWfpOL1Tq3y37Tb9gTEcUDdZeK2OeoG8
ZYxLcf594vL7xP3Chd3+mHKqSCyv6o2PTd7sNnnkqeR0HKuGwdMwrOk9DuF5QmWEOn5+ei7AFZJq
Ryy4l7eqSj0kgJSK3sOupjdgqUzoTq7WEqnQuYoKU4m7o5BXQl0Bi+/3LEybkmNzLijDNRhhrnHz
DJD++hSMe/6x2N+s1Lugklfdoyu4kqLupIZK+bGspTBJEpS6kyQHFmH/cffmChnXlp7sTgD/PApa
WYKZyve3RGonOcK2d2w74KFtgF+eA6JW1ADRnJyF+5ZPoOU5vhQp95h8yGu3yhD5i9JzaPTKjMiA
ce9FSvssyrY9ontKI+9hGhW8p028ceNirA7pfzPe71PGadwPUDYFfP919+oD4yt8Lt40z1SXpQ96
JKhhKxqim4zQ+vXRL/slKr8fWrFz+ZJbObrYPYMOLs0S6oB08ZpUAyoF5Ay6PqwkiyJ9fJzO5M9r
igdNOgw4tWVKptzHxTy151RVoqLCKJkjA97yfMSEBPO57CQ/maywFyElJKf5k/KcStiSTu/Gacch
o8a/nWYK6Dd5waEChorR1cfbcaCTTuxOqPXTHYXeB9ynrs0KS3GILNFjgY9yj1Xs9Z2m+1mTyHBJ
IxTVX9pplmVGwe2zIeTKOW4Yqf7iYfAFS5gT0nJTqUso+Yi4VDa1HTipsqslcppAQ/ZAByhIDvwv
t1csqrxJEBFv8pui+ZMD8zw9YEpGW6aBS4+ktM0j5t0HLh6BEo9jEAq3uHKSY9h+GNZqJEhZEW3z
pFAsRks61l79gthw750KpWhcvjWnU7GBG7oqDqB/OjZGwzHYp0/fe99DeVXsH95pDcs+tX/sTkue
J7O0UXtMrr85M89Mqw99p/26P3ptD+H66rayq/8FGACvd0sjDWVuZHN0cmVhbQ1lbmRvYmoNMzkg
MCBvYmoNMTM5NiANZW5kb2JqDTQwIDAgb2JqDTw8IA0vVHlwZSAvUGFnZSANL01lZGlhQm94IFsg
MCAwIDYxMiA3OTIgXSANL1BhcmVudCA4MSAwIFIgDS9TdHJ1Y3RQYXJlbnRzIDE0IA0vQ29udGVu
dHMgNDEgMCBSIA0vUmVzb3VyY2VzIDw8IC9Db2xvclNwYWNlIDw8IC9DUzAgMTA1IDAgUiAvQ1Mx
IDEwNyAwIFIgPj4gL0ZvbnQgPDwgL1QxXzAgMTA2IDAgUiAvVDFfMSAxMDQgMCBSIC9UMV8yIDEx
MCAwIFIgPj4gDS9FeHRHU3RhdGUgPDwgL0dTMCAxMTEgMCBSID4+IC9Qcm9jU2V0IFsgL1BERiAv
VGV4dCBdID4+IA0vSUQgMTEyIDAgUiANL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIA0vUm90YXRl
IDAgDT4+IA1lbmRvYmoNNDEgMCBvYmoNPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA0
MiAwIFIgPj4gDXN0cmVhbQ0KSIm0Vl2P4jYUfUfa/3C16gOzYvMBAwFmOhIM87ArTTWtIvVhWCGT
XMDdYFPHsLDqj++149Dwke6oUgHNJP4495zr62P7I6X5giUa7u/9kdYsWWEKr34sN/DFH4/lHl7D
PkRRH9pB5AW3XYj6EXXFhw2C/8KWXDDNpYCHh/HksRGA+aolPXBo+L9hRr07fJSZVHyNWvEEFG+M
44Yfh7MAQogXjYGdNAATqB94YQTxutFc8AyHvu9P/vI/P01G/q4dBF3/M6ZsZh8/bpTcyJxls3AX
eHqvb+I/Gk9x4+n5seEbWUmGRtXz46cJwRf8/iRiFKYXtiHq9kBh4/cPIH5INCyIhoW80P6ibuR1
eh3LFWDDtEYlPIhXPC/fgB4TlmWU0o3kQidbbQYgLLYisVkzvWaUFNkB9Gr6Do2KAD6GXhviiUHW
TC1Rw0IqGoBHoGOMNdPJioul52a2jzPDthfCKN9gYnMTfzCNYAkw2wrzTCZfTXyDvBVcg5aQyBRt
gxtETSbrtt3Sv6AIp3grlkPO1zxjiuuDmW/Qkozl+bSZ4oILSggXkGORhMH0plUlOCd1CRNC0j+F
TBMTSqXINRMJUqqAa8rYN5vsbd6i13L4iu0QbASXyRLSsCcAtU20VB78gjtURCrD3MwXOU9tkEJG
C9a4nqOCHQlgcxp0Qs91lmtIAEykwNIdJ3aJQaE1nRseJFlh6sHFylRSRgsrZ/QMcAdXEms+tOCw
b8GhBd//GdQ+G6RZ/tViGV5wVwNFyUXaslU55WcPP1NZBy7Cee+Betu1vd+pt1PTiyI9b6QmQ7dG
icvkTvK0SE76L3LMBpo2gctZqmj/evbvLGWawfQGiomnfGoT8FPK803GDgT3/hrecTO/N9Bvl+r0
XFVruq9u0PMKtDXmGk3u/IqFCFNtCheokDZICt+4cZJr1XRfBJsJtsYH777Ac2/wSVR3PZvLHV7s
hCrNfRmaJQntIwq8UHINcqvtdpKLE7h8WFO5rv49U3/dixqqyD4qLqt82qR1cByKlRmeL0oJfjKl
UhShITOyC3RhkcWyOXM0KjjLAPdI5mtSUfhlactOJh0eKDSmV3JPx9VSsfXaWLULacCdURqXPNdJ
FmlNkwKwkwIpSGDBrLDlMXlmxYKMGR6zAilXRI5OGLNAVSBJABUn886EuzhkbtqFEim31Gw6FhxP
6n1+OD2h7MmEDvXYSkdEcWOgAOVhUODXM7NCCAiet5nmm6wC55gUmLkrhypSacN2qYw7W3mE9SZX
rnOeN3nypZPt6jz+R052B+D7xXXhKL3G26469P9rbqcdJ6Z2fiPpwIvjf35fu3INHUutyVIqN9Eu
dG77XtTrQ3hbfw39FcqbW/vyiukF4W34366YMG2GXeNsYZ+y9DrwB37Qgc703bATDcMevDx/qaj6
W4ABAOHBQQYNZW5kc3RyZWFtDWVuZG9iag00MiAwIG9iag0xMDczIA1lbmRvYmoNNDMgMCBvYmoN
PDwgDS9UeXBlIC9QYWdlIA0vTWVkaWFCb3ggWyAwIDAgNjEyIDc5MiBdIA0vUGFyZW50IDgxIDAg
UiANL1N0cnVjdFBhcmVudHMgMTUgDS9Db250ZW50cyA0NCAwIFIgDS9SZXNvdXJjZXMgPDwgL0Nv
bG9yU3BhY2UgPDwgL0NTMCAxMDUgMCBSIC9DUzEgMTA3IDAgUiA+PiAvRm9udCA8PCAvVDFfMCAx
MDYgMCBSIC9UMV8xIDEwNCAwIFIgL1QxXzIgMTEwIDAgUiA+PiANL0V4dEdTdGF0ZSA8PCAvR1Mw
IDExMSAwIFIgPj4gL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gPj4gDS9JRCAxMTIgMCBSIA0vQ3Jv
cEJveCBbIDAgMCA2MTIgNzkyIF0gDS9Sb3RhdGUgMCANPj4gDWVuZG9iag00NCAwIG9iag08PCAv
RmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDQ1IDAgUiA+PiANc3RyZWFtDQpIiaxX227bOBB9
N5B/GPTJuUmW7UTOpQGSOAW2QIrsroA+RIXBSGObW0lUKcpOgP34DklZlm0Z6RbrXCWSM+fMmRmS
7q1UfMoiBdfX7q1SLJpjDM9uIHL45t7diVd49kbg+yPo93ynNzwDf+TTUPCWI7hPbMYzprjI4Obm
bnzf6YH+kjP6h0PH/QsTGl3gvUiE5CkqySOQvHMXdNzAm/TAg2DauTCLLkA7GvUcz4cg7XSnPMFL
13XH/7qfH8a37qLf6525nzFmE/PvaS5FLgqWTLxFz1Gv6jD4p/MQdB4e7zuuphUlqFk93v8xJvMW
3w8CRm7OvT74Z+cgsfP1CLJ3gXoWqGfpeebbH/rO4HxgsAJ9gjlCLnimolIBL0DR85K9gRKQ8+i7
eU5EZKPFshgUT3k2o/dM6UENvwenntOHYGxNsnjBI9TG8BXJLMaOdiMRGP2ouUSEFKM5y3iRakcx
RokdMuaCI2unhlXkGPEptyCKS4DKab/hFOAIIpYkYReuc6YUyuwGwsMWePqjZ27QLgtKIIJiXb0Z
2ha95i2m5oUl1oRo6Jo4WJNh9wWnQjbWhodmNSu+u9Myi8yrbkFvdQC3TaVMUSZbESoSTs3WczzL
YXPVEaWDKmX2a8Tt3P+ZemV0KkVqnneJtjPbI6NYoFxKrvDXKNXT/zOrHTo2cVlRscoTRo9VBPZI
2GQWHtTctjWDDdWCdRSAZzYorclOWZUBcpog4YWQ0cMrtb2WSBgYK6wZS9FCLAtdrLSOx5hRz+Rk
KOyiM3OAi0ksqXk45vckZio8YLSkCVRIKKipkIkV3O3FH8yfMFwefSCJnBZJv87RUqwsVeKcUIBn
JdU9UcolFoWmixl1Zmzo18I0RoWRTTxDuoGOiiXs/o1o9SsTkoXCu+unSZFaT6E7FYlt9wRisSFQ
WhZKBz8Wy0xnVDPDTaSb1sLuOmTr9NDLNpaQNCfwQmpb7/qVbq5NSymmLyTWgknOXhKraWHygbBs
Z/cqiSrINoM3eilTc8tgm4IDn4SODUvzBE/skEgSsdQUIhFvmIkaZRy9RTrAq/Kgts7igvYOrvRK
6oJWdExZPqeWuKfcmaagYC6Wk0TQuivYU+ZUHpWTSSRKevhIe9oVbNewnmaQVbPenfajxOubtdv+
ltuqJ+jqN9wmRCjsUplUm81WFdGoM0NFpQBXe4gACUhZvgNJf5oEj49bcBsRVridArOYMJDDiXlp
gGnXLetwM72qV+u+/g73mVhTrzec3yHfFOf4I+zAP23wkxih7i57adUM9slXV50WnBFGreF70rQF
nU8J6Ub+1YFoUnI3prTrh0lR75ltublPK82FK7EFT4fA1FBLBL4IhZf7Cspz4Gm16dSNlDqvyJI3
ahUZmhpeBbAwhz/blFpIradRPzBNDQsHdqj1qdusFNH2KvHKLKZWV7UCfRLMhKo2XakTqn27huYR
EZmM5rpxE4Ml16c7iQva8kj4Kc/06YCSqZQFpdPKa3iga3h3y/L6zhDGTDFQ+rpAzlcHA0Jc6bZg
SUn7j4jrrbqJzmx5derFtSnCVp11Y9ARMGZtzzXjZqvZvhC03HPuhFJ01mpcdc5gMBw5/vkIvOH+
e86fsLoa9HfvME7PG3q/d4ehKvbOdaC8EVXF84V74fYGMAgPLgf+JY08PX5rsPopwABYpRBhDWVu
ZHN0cmVhbQ1lbmRvYmoNNDUgMCBvYmoNMTI2MSANZW5kb2JqDTQ2IDAgb2JqDTw8IA0vVHlwZSAv
UGFnZSANL01lZGlhQm94IFsgMCAwIDYxMiA3OTIgXSANL1BhcmVudCA4MSAwIFIgDS9TdHJ1Y3RQ
YXJlbnRzIDE2IA0vQ29udGVudHMgNDcgMCBSIA0vUmVzb3VyY2VzIDw8IC9Db2xvclNwYWNlIDw8
IC9DUzAgMTA1IDAgUiAvQ1MxIDEwNyAwIFIgPj4gL0ZvbnQgPDwgL1QxXzAgMTA2IDAgUiAvVDFf
MSAxMDQgMCBSIC9UMV8yIDExMCAwIFIgPj4gDS9FeHRHU3RhdGUgPDwgL0dTMCAxMTEgMCBSID4+
IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdID4+IA0vSUQgMTEyIDAgUiANL0Nyb3BCb3ggWyAwIDAg
NjEyIDc5MiBdIA0vUm90YXRlIDAgDT4+IA1lbmRvYmoNNDcgMCBvYmoNPDwgL0ZpbHRlciAvRmxh
dGVEZWNvZGUgL0xlbmd0aCA0OCAwIFIgPj4gDXN0cmVhbQ0KSImcV1tv2zYUfjfg/3De7BSpZDnx
JWkWIIlToAUCdJuGPkSFwciUzVYWNZJyHGA/foekJFOyvHVLgsTh5ZzvfOdK/04olpBYwc2Nf6cU
iTd0Bc9+yHP45t/f8z08B3OYzeYwHs280eUEZvMZboVvOQX/C1mzjCjGM7i9vV889Eagv8UaPzDo
+b/RFHd39IGnXLAtVYLFIFjvPuz5YbAcQQBh0rsyl65AK5qPvGAG4bY3TFhKr33fX/zlf35c3Pm7
8Wg08T/TFVmaj+9zwXMuSboMdiNP7dVZ+L33GPYenx56vjYrTqm26unh0wLFW3x/IjBUMw3GMJtM
QdDe13eQ/SvQwAINrHmB+ZlNZt7F9MJgBfzaEhVvQG0oJEUWa06ioYzOQGmmiDI7OWeZigvlwafE
LOhNjXsE7wNvDOHCylqxFWRcWZnn5iRZ7VhMISZpCq8Mf+n9Fy25dJri+pwWFr6zUiocwISgMqex
thB4AnRHcdEiyMiWWj21jBqmKyxHRVRkHnzd4GUHkbGPSdhxtmpANShfauGusFemNkCyN3sZEVVQ
JTKjpaO8mEhq5QmqCpHBjqSFJiBDy11hqEJSZWQyF5kHJbNjh9mPXMBAkzg4MKr1MCWbepA21w7L
doerSJIgscgdkQ3uDuxXPGit+lyCPDZdGvXT9DRavqPiVTBFW5AbcLeFVBUTL29VJLSx2uuSH/mv
ul4FgnHQqVCoLPMg1N4pMoUZA1QIRFsZu6LK0oJhVipacSqh5bvSBq3J2sEc73twkhN7r0VIIVm2
diNGKqLolmY2OKyGDloM5prl45BLBN/+BBl/5CusISWC2vs7Ihh5SamFkNHXUqhRWugrFKK+K7Gt
3+sgofblIcfRynhDsjVd4uUl3oyGZnEPWISsPFxJOPfWuK9Xoz586KDD5hQWdheU/WIJitjDLda/
kRbbVAi/mPUPeND3YctXLHlzrYn61vS2XJqtmku4YM37rylx5Do3LWyB6DDYLRlYlw+R0Arco2g9
b1fc7lwQNOfCKRG1z04Hebd/t0zqENd8t/xbY3ZcHPXN1ikX67s5OqvtjROuz9G7+47j1tcWWEXQ
jWHn9pB/55aLmBSyXTCasf/P4XDMVDD2JnAn1oXWIg9F2xUQui1J5yAHUt6wsGznNntO0bYdqquK
VurKXsWlDT/ZatS6T2Hg2YJSX8L/SKOAYLHLiZSH7ls3YyJ/+I1ZojtWDg251GHnDiIw7LHps4Sh
sGj4umFopUkIx2CNBhuw9ULL0KNWFp21TUSPJ1U3c7WbRCKNMKo5R4MHWBUHpvMcCSzLBtNpm3C0
AT9Zfho1smxhsSqw7hxqcFeATOF3TQOeo/scByGp5wzdaI5DRZ/2AtOBmiFoOB7o9YHGX8iyR9ZS
zm3bOmgoc0GeaMU6/zA9stiMP2YUxJE7TtHSaqGmv/RiTKyNBgtp4vuOZ+0FGCwEjnnCW+k/NVqL
LxrWvcCWogpEUxoCsEJKQEfTa9jAa0dIW2mbgvQUILYsYxLHce00nf8ljQ5VDSaN9KaYbiak1YkG
iLLBExdQNNT51+JJ4mCfrXUckwzrMSa/NuzYDLMs9QLOL9siVSxPfxJUI+86pzqnvOuhGbsojX8s
jb9stXZfMR2Ps3uuFE4kzvtsAheXc282nUNwefpx9itU75nx8cPLGwWXwf97eCHV+GbDoAnmGF7P
V/6VP7qAi6h/fTG7Dqbw5embY9XfAgwAOP9ttQ1lbmRzdHJlYW0NZW5kb2JqDTQ4IDAgb2JqDTEz
MDMgDWVuZG9iag00OSAwIG9iag08PCANL1R5cGUgL1BhZ2UgDS9NZWRpYUJveCBbIDAgMCA2MTIg
NzkyIF0gDS9QYXJlbnQgODEgMCBSIA0vU3RydWN0UGFyZW50cyAxNyANL0NvbnRlbnRzIDUwIDAg
UiANL1Jlc291cmNlcyA8PCAvQ29sb3JTcGFjZSA8PCAvQ1MwIDEwNSAwIFIgPj4gL0ZvbnQgPDwg
L1QxXzAgMTA2IDAgUiAvVDFfMSAxMDQgMCBSIC9UMV8yIDExMCAwIFIgPj4gDS9FeHRHU3RhdGUg
PDwgL0dTMCAxMTEgMCBSID4+IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdID4+IA0vSUQgMTEyIDAg
UiANL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIA0vUm90YXRlIDAgDT4+IA1lbmRvYmoNNTAgMCBv
YmoNPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA1MSAwIFIgPj4gDXN0cmVhbQ0KSImc
Vttu2zgQfRfgfxgELZCkiS52bDlpUyCOs8AWG6C7ENCHqDBoiXLY0qKWpHwB9uN3KEqKLzKw28RG
FHHmzJnLIek9SM0ykmj49Ml70JokrzSFFy8SBXz3JhOxgZdgDGE4hr4fuv7NEMJxiEvRtqDgfSUL
lhPNRA6fP0+mj44P5lcu8IGB4/1FOa6u6KPgQrIl1ZIlIJkziRwvCmY+BBBlzm3ldAsm0Nh3gxCi
pXOeMU7vPM+b/uN9eZo+eKu+7w+9LzQls+rxupCiEIrwWbDyXb3RF9EP5ylynp4fHc+klXBqsnp+
/H2K8Jbf30gMw4yCPoTDEUjqfLuEvOETWD6BzSKoPuEwdAejQUUJ2p+EcB6fw1RictJNzR+IL8BQ
8OE6cPsQTU/bS5pQfECHj8Yjutw1tTaQCdG1OqdY8ePXUNnfg35lCj42PPpHPGienuCIKyRdsYS+
JRHUBi1a0HoEfXeE/0qqS5l3IkaGiSpowggHuikkVcrMiXVRyJTWz7AivKQgsurdD3GYX4FvNGRl
nphBcy0yfkTOt8aXpbB+pXnlXaegzXQytY9TkckYTa+A5Cm2JLcQcwqlwqlnDTkbMSl1DefCN4sf
9w4xdxJDRg1MLvLrmsmci+TnFTANa8Y5BlAl18aGQCKWBeNxjx5ASilkGxJRT8c4oLuPYwm8hU4I
umJYWeYapdjEibBqKdHE1sw2YR+ojrJPwxRbEYQharfwLZIL3UNY25mOkjSdibyZAlQHjrA7JxIa
XXRMqfGT2PNjaZwQRmV83+RglXFs8eFD51LD8L6OeWRSy2mneYcqesseJRPCg12s9kXs42/1UO9N
FXZEYkHxq9eilZDaKk2XrQxM1YmuhriZ3zXDccHBwk8a90ycu31yl613VcdmbGac5TQ+jy9O1LzS
W+u5q9+klJIikgGAvFzOcd+qZdxKiIu4lxCr3KOdBU4SVHhU5Is3juY0+CWOxhFyM6nHzGpeHYOK
PVC2B6+4V2xBCzMMoATipHReLhaGHcszIZf2/EMdkK6dkJgGaquzTHAu1saTbsiy4LQCpRstia2h
2ZcqwgVmrwWS1GK3RCTf2qWsOlGalpu06mMj4USpbvFZJoBWc4HJdUus2UCJ+tlYzlKmCk62B4fY
mXt55r5r1urD7z8o8t1aMo29hLM/TMrvq93svTq7Oh7Iq+P+x71qe/gfStx9bV5WVTi8K3RcgSZC
a7HcvQUNYXAzdsPRGIKb01egP6G5TvSPrzeuH9wEv3a9gfgcEXCIgzFW4OXWu/X8AQzi3t0gvAtG
8PX5+05W/wowAMT20AMNZW5kc3RyZWFtDWVuZG9iag01MSAwIG9iag05ODYgDWVuZG9iag01MiAw
IG9iag08PCANL1R5cGUgL0ZvbnQgDS9TdWJ0eXBlIC9UeXBlMSANL0Jhc2VGb250IC9TeW1ib2wg
DT4+IA1lbmRvYmoNNTMgMCBvYmoNPDwgDS9UeXBlIC9Gb250IA0vTmFtZSAvWmFEYiANL0Jhc2VG
b250IC9aYXBmRGluZ2JhdHMgDS9TdWJ0eXBlIC9UeXBlMSANPj4gDWVuZG9iag01NCAwIG9iag08
PCANL1R5cGUgL0ZvbnQgDS9OYW1lIC9IZWx2IA0vQmFzZUZvbnQgL0hlbHZldGljYSANL1N1YnR5
cGUgL1R5cGUxIA0vRW5jb2RpbmcgNTUgMCBSIA0+PiANZW5kb2JqDTU1IDAgb2JqDTw8IA0vVHlw
ZSAvRW5jb2RpbmcgDS9EaWZmZXJlbmNlcyBbIDI0IC9icmV2ZSAvY2Fyb24gL2NpcmN1bWZsZXgg
L2RvdGFjY2VudCAvaHVuZ2FydW1sYXV0IC9vZ29uZWsgL3JpbmcgDS90aWxkZSAzOSAvcXVvdGVz
aW5nbGUgOTYgL2dyYXZlIDEyOCAvYnVsbGV0IC9kYWdnZXIgL2RhZ2dlcmRibCANL2VsbGlwc2lz
IC9lbWRhc2ggL2VuZGFzaCAvZmxvcmluIC9mcmFjdGlvbiAvZ3VpbHNpbmdsbGVmdCAvZ3VpbHNp
bmdscmlnaHQgDS9taW51cyAvcGVydGhvdXNhbmQgL3F1b3RlZGJsYmFzZSAvcXVvdGVkYmxsZWZ0
IC9xdW90ZWRibHJpZ2h0IC9xdW90ZWxlZnQgDS9xdW90ZXJpZ2h0IC9xdW90ZXNpbmdsYmFzZSAv
dHJhZGVtYXJrIC9maSAvZmwgL0xzbGFzaCAvT0UgL1NjYXJvbiANL1lkaWVyZXNpcyAvWmNhcm9u
IC9kb3RsZXNzaSAvbHNsYXNoIC9vZSAvc2Nhcm9uIC96Y2Fyb24gMTYwIC9FdXJvIA0xNjQgL2N1
cnJlbmN5IDE2NiAvYnJva2VuYmFyIDE2OCAvZGllcmVzaXMgL2NvcHlyaWdodCAvb3JkZmVtaW5p
bmUgDTE3MiAvbG9naWNhbG5vdCAvLm5vdGRlZiAvcmVnaXN0ZXJlZCAvbWFjcm9uIC9kZWdyZWUg
L3BsdXNtaW51cyANL3R3b3N1cGVyaW9yIC90aHJlZXN1cGVyaW9yIC9hY3V0ZSAvbXUgMTgzIC9w
ZXJpb2RjZW50ZXJlZCAvY2VkaWxsYSANL29uZXN1cGVyaW9yIC9vcmRtYXNjdWxpbmUgMTg4IC9v
bmVxdWFydGVyIC9vbmVoYWxmIC90aHJlZXF1YXJ0ZXJzIA0xOTIgL0FncmF2ZSAvQWFjdXRlIC9B
Y2lyY3VtZmxleCAvQXRpbGRlIC9BZGllcmVzaXMgL0FyaW5nIC9BRSAvQ2NlZGlsbGEgDS9FZ3Jh
dmUgL0VhY3V0ZSAvRWNpcmN1bWZsZXggL0VkaWVyZXNpcyAvSWdyYXZlIC9JYWN1dGUgL0ljaXJj
dW1mbGV4IA0vSWRpZXJlc2lzIC9FdGggL050aWxkZSAvT2dyYXZlIC9PYWN1dGUgL09jaXJjdW1m
bGV4IC9PdGlsZGUgL09kaWVyZXNpcyANL211bHRpcGx5IC9Pc2xhc2ggL1VncmF2ZSAvVWFjdXRl
IC9VY2lyY3VtZmxleCAvVWRpZXJlc2lzIC9ZYWN1dGUgDS9UaG9ybiAvZ2VybWFuZGJscyAvYWdy
YXZlIC9hYWN1dGUgL2FjaXJjdW1mbGV4IC9hdGlsZGUgL2FkaWVyZXNpcyANL2FyaW5nIC9hZSAv
Y2NlZGlsbGEgL2VncmF2ZSAvZWFjdXRlIC9lY2lyY3VtZmxleCAvZWRpZXJlc2lzIC9pZ3JhdmUg
DS9pYWN1dGUgL2ljaXJjdW1mbGV4IC9pZGllcmVzaXMgL2V0aCAvbnRpbGRlIC9vZ3JhdmUgL29h
Y3V0ZSAvb2NpcmN1bWZsZXggDS9vdGlsZGUgL29kaWVyZXNpcyAvZGl2aWRlIC9vc2xhc2ggL3Vn
cmF2ZSAvdWFjdXRlIC91Y2lyY3VtZmxleCANL3VkaWVyZXNpcyAveWFjdXRlIC90aG9ybiAveWRp
ZXJlc2lzIF0gDT4+IA1lbmRvYmoNNTYgMCBvYmoNPDwgDS9TcGRyQXJ0IDw8IC9PIC9XZWJDYXB0
dXJlID4+IA0+PiANZW5kb2JqDTU3IDAgb2JqDTw8IA0vTnVtcyBbIDAgNTggMCBSIDEgNTkgMCBS
IDIgNjAgMCBSIDMgNjEgMCBSIDQgNjIgMCBSIDUgNjMgMCBSIDYgNjQgMCBSIDcgDTY1IDAgUiA4
IDY2IDAgUiA5IDY3IDAgUiAxMCA2OCAwIFIgMTEgNjkgMCBSIDEyIDcwIDAgUiAxMyA3MSAwIFIg
DTE0IDcyIDAgUiAxNSA3MyAwIFIgMTYgNzQgMCBSIDE3IDc1IDAgUiBdIA0+PiANZW5kb2JqDTU4
IDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTU5IDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2Jq
DTYwIDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTYxIDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5k
b2JqDTYyIDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTYzIDAgb2JqDVsgDTEwMyAwIFIgDV0N
ZW5kb2JqDTY0IDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTY1IDAgb2JqDVsgDTEwMyAwIFIg
DV0NZW5kb2JqDTY2IDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTY3IDAgb2JqDVsgDTEwMyAw
IFIgDV0NZW5kb2JqDTY4IDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTY5IDAgb2JqDVsgDTEw
MyAwIFIgDV0NZW5kb2JqDTcwIDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTcxIDAgb2JqDVsg
DTEwMyAwIFIgDV0NZW5kb2JqDTcyIDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTczIDAgb2Jq
DVsgDTEwMyAwIFIgDV0NZW5kb2JqDTc0IDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTc1IDAg
b2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTc2IDAgb2JqDTw8IA0vVHlwZSAvUGFnZXMgDS9LaWRz
IFsgODAgMCBSIDc5IDAgUiA4MSAwIFIgXSANL0NvdW50IDE4IA0+PiANZW5kb2JqDTc3IDAgb2Jq
DTw8IA0vTW9kRGF0ZSAoRDoyMDAzMDkwOTE1MzgzNi0wNicwMCcpDS9DcmVhdGlvbkRhdGUgKEQ6
MjAwMzA5MDkxNTM3MTFaKQ0vUHJvZHVjZXIgKEFjcm9iYXQgV2ViIENhcHR1cmUgNS4wKQ0vVGl0
bGUgKGZpbGU6Ly8vRHwvSkVEQS92MjAwNS9KZWRhX3YyMDA1LXByb3Bvc2FsXzF2MC50eHQpDT4+
IA1lbmRvYmoNNzggMCBvYmoNPDwgL1R5cGUgL01ldGFkYXRhIC9TdWJ0eXBlIC9YTUwgL0xlbmd0
aCAxMjUwID4+IA1zdHJlYW0NCjw/eHBhY2tldCBiZWdpbj0nJyBpZD0nVzVNME1wQ2VoaUh6cmVT
ek5UY3prYzlkJyBieXRlcz0nMTI1MCc/PgoKPHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjJwogeG1sbnM6aVg9J2h0dHA6Ly9ucy5h
ZG9iZS5jb20vaVgvMS4wLyc+CgogPHJkZjpEZXNjcmlwdGlvbiBhYm91dD0nJwogIHhtbG5zPSdo
dHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvJwogIHhtbG5zOnBkZj0naHR0cDovL25zLmFkb2Jl
LmNvbS9wZGYvMS4zLyc+CiAgPHBkZjpNb2REYXRlPjIwMDMtMDktMDlUMTU6Mzg6MzYtMDY6MDA8
L3BkZjpNb2REYXRlPgogIDxwZGY6Q3JlYXRpb25EYXRlPjIwMDMtMDktMDlUMTU6Mzc6MTFaPC9w
ZGY6Q3JlYXRpb25EYXRlPgogIDxwZGY6UHJvZHVjZXI+QWNyb2JhdCBXZWIgQ2FwdHVyZSA1LjA8
L3BkZjpQcm9kdWNlcj4KICA8cGRmOlRpdGxlPmZpbGU6Ly8vRHwvSkVEQS92MjAwNS9KZWRhX3Yy
MDA1LXByb3Bvc2FsXzF2MC50eHQ8L3BkZjpUaXRsZT4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxy
ZGY6RGVzY3JpcHRpb24gYWJvdXQ9JycKICB4bWxucz0naHR0cDovL25zLmFkb2JlLmNvbS94YXAv
MS4wLycKICB4bWxuczp4YXA9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPgogIDx4YXA6
TW9kaWZ5RGF0ZT4yMDAzLTA5LTA5VDE1OjM4OjM2LTA2OjAwPC94YXA6TW9kaWZ5RGF0ZT4KICA8
eGFwOkNyZWF0ZURhdGU+MjAwMy0wOS0wOVQxNTozNzoxMVo8L3hhcDpDcmVhdGVEYXRlPgogIDx4
YXA6TWV0YWRhdGFEYXRlPjIwMDMtMDktMDlUMTU6Mzg6MzYtMDY6MDA8L3hhcDpNZXRhZGF0YURh
dGU+CiAgPHhhcDpUaXRsZT4KICAgPHJkZjpBbHQ+CiAgICA8cmRmOmxpIHhtbDpsYW5nPSd4LWRl
ZmF1bHQnPmZpbGU6Ly8vRHwvSkVEQS92MjAwNS9KZWRhX3YyMDA1LXByb3Bvc2FsXzF2MC50eHQ8
L3JkZjpsaT4KICAgPC9yZGY6QWx0PgogIDwveGFwOlRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+
CgogPHJkZjpEZXNjcmlwdGlvbiBhYm91dD0nJwogIHhtbG5zPSdodHRwOi8vcHVybC5vcmcvZGMv
ZWxlbWVudHMvMS4xLycKICB4bWxuczpkYz0naHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEu
MS8nPgogIDxkYzp0aXRsZT5maWxlOi8vL0R8L0pFREEvdjIwMDUvSmVkYV92MjAwNS1wcm9wb3Nh
bF8xdjAudHh0PC9kYzp0aXRsZT4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKPC9yZGY6UkRGPgo8P3hw
YWNrZXQgZW5kPSdyJz8+DWVuZHN0cmVhbQ1lbmRvYmoNNzkgMCBvYmoNPDwgDS9UeXBlIC9QYWdl
cyANL0tpZHMgWyAxMyAwIFIgMTYgMCBSIDE5IDAgUiAyMiAwIFIgMjUgMCBSIF0gDS9Db3VudCA1
IA0vUGFyZW50IDc2IDAgUiANPj4gDWVuZG9iag04MCAwIG9iag08PCANL1R5cGUgL1BhZ2VzIA0v
S2lkcyBbIDk5IDAgUiAxIDAgUiA0IDAgUiA3IDAgUiAxMCAwIFIgXSANL0NvdW50IDUgDS9QYXJl
bnQgNzYgMCBSIA0+PiANZW5kb2JqDTgxIDAgb2JqDTw8IA0vVHlwZSAvUGFnZXMgDS9LaWRzIFsg
MjggMCBSIDMxIDAgUiAzNCAwIFIgMzcgMCBSIDQwIDAgUiA0MyAwIFIgNDYgMCBSIDQ5IDAgUiBd
IA0vQ291bnQgOCANL1BhcmVudCA3NiAwIFIgDT4+IA1lbmRvYmoNODIgMCBvYmoNKGZpbGU6Ly8v
RHwvSkVEQS92MjAwNS9KZWRhX3YyMDA1LXByb3Bvc2FsXzF2MC50eHQpDWVuZG9iag04MyAwIG9i
ag08PCANL1YgMS4yNSANL0MgODcgMCBSIA0+PiANZW5kb2JqDTg0IDAgb2JqDTw8IA0vVVJMIChm
aWxlOi8vL0R8L0pFREEvdjIwMDUvSmVkYV92MjAwNS1wcm9wb3NhbF8xdjAudHh0KQ0vUyA4NSAw
IFIgDT4+IA1lbmRvYmoNODUgMCBvYmoNPDwgDS9HIDg2IDAgUiANDT4+IA1lbmRvYmoNODYgMCBv
YmoNPDwgDS9DQiAwIA0vQUggMCANL1BPIDAgDS9TIDAgDS9BTCAwIA0vQVQgNzAgDS9BUyAxIA0v
U1UgMSANL1BTIFsgNzkyIDYxMiBdIA0vTSBbIDEwLjA4IDEwLjA4IDI2IDM2IF0gDT4+IA1lbmRv
YmoNODcgMCBvYmoNWyANODQgMCBSIA1dDWVuZG9iag04OCAwIG9iag0oZmlsZTovLy9EfC9KRURB
L3YyMDA1L0plZGFfdjIwMDUtcHJvcG9zYWxfMXYwLnR4dCkNZW5kb2JqDTg5IDAgb2JqDTw8IA0v
UyAvU1BTIA0vSUQgMTEyIDAgUiANL1RJRCA5MSAwIFIgDS9UIDgyIDAgUiANL0NUICh0ZXh0L3Bs
YWluKQ0vVFMgKEQ6MjAwMzA5MDkyMjM3MTYpDS9PIFsgOTkgMCBSIDEgMCBSIDQgMCBSIDcgMCBS
IDEwIDAgUiAxMyAwIFIgMTYgMCBSIDE5IDAgUiAyMiAwIFIgMjUgMCBSIA0yOCAwIFIgMzEgMCBS
IDM0IDAgUiAzNyAwIFIgNDAgMCBSIDQzIDAgUiA0NiAwIFIgNDkgMCBSIF0gDS9TSSA5MCAwIFIg
DT4+IA1lbmRvYmoNOTAgMCBvYmoNPDwgDS9BVSA4OCAwIFIgDS9UUyAoRDoyMDAzMDkwOTIyMzcx
NikNPj4gDWVuZG9iag05MSAwIG9iag0oc5AddNMHXUkB6gBh03G+2SkNZW5kb2JqDTkyIDAgb2Jq
DTw8IA0vTmFtZXMgWyAxMTIgMCBSIDg5IDAgUiBdIA0+PiANZW5kb2JqDTkzIDAgb2JqDTw8IA0v
TmFtZXMgWyA4OCAwIFIgODkgMCBSIF0gDT4+IA1lbmRvYmoNeHJlZg0wIDk0IA0wMDAwMDAwMDAw
IDY1NTM1IGYNCjAwMDAwMDQ2NTUgMDAwMDAgbg0KMDAwMDAwNDk5MCAwMDAwMCBuDQowMDAwMDA2
MjY3IDAwMDAwIG4NCjAwMDAwMDYyODggMDAwMDAgbg0KMDAwMDAwNjYyMyAwMDAwMCBuDQowMDAw
MDA3ODg5IDAwMDAwIG4NCjAwMDAwMDc5MTAgMDAwMDAgbg0KMDAwMDAwODI0NSAwMDAwMCBuDQow
MDAwMDA5NTY4IDAwMDAwIG4NCjAwMDAwMDk1ODkgMDAwMDAgbg0KMDAwMDAwOTkyNiAwMDAwMCBu
DQowMDAwMDExMTc5IDAwMDAwIG4NCjAwMDAwMTEyMDEgMDAwMDAgbg0KMDAwMDAxMTUzOCAwMDAw
MCBuDQowMDAwMDEyNzA3IDAwMDAwIG4NCjAwMDAwMTI3MjkgMDAwMDAgbg0KMDAwMDAxMzA2NiAw
MDAwMCBuDQowMDAwMDE0MjUzIDAwMDAwIG4NCjAwMDAwMTQyNzUgMDAwMDAgbg0KMDAwMDAxNDYx
MiAwMDAwMCBuDQowMDAwMDE1NzM0IDAwMDAwIG4NCjAwMDAwMTU3NTYgMDAwMDAgbg0KMDAwMDAx
NjA5MyAwMDAwMCBuDQowMDAwMDE3MzI0IDAwMDAwIG4NCjAwMDAwMTczNDYgMDAwMDAgbg0KMDAw
MDAxNzY4MyAwMDAwMCBuDQowMDAwMDE4OTk3IDAwMDAwIG4NCjAwMDAwMTkwMTkgMDAwMDAgbg0K
MDAwMDAxOTM1NyAwMDAwMCBuDQowMDAwMDIwNTQ4IDAwMDAwIG4NCjAwMDAwMjA1NzAgMDAwMDAg
bg0KMDAwMDAyMDkwOCAwMDAwMCBuDQowMDAwMDIyMjcyIDAwMDAwIG4NCjAwMDAwMjIyOTQgMDAw
MDAgbg0KMDAwMDAyMjYzMiAwMDAwMCBuDQowMDAwMDI0MjU2IDAwMDAwIG4NCjAwMDAwMjQyNzgg
MDAwMDAgbg0KMDAwMDAyNDYyOSAwMDAwMCBuDQowMDAwMDI2MTAzIDAwMDAwIG4NCjAwMDAwMjYx
MjUgMDAwMDAgbg0KMDAwMDAyNjQ2MyAwMDAwMCBuDQowMDAwMDI3NjE0IDAwMDAwIG4NCjAwMDAw
Mjc2MzYgMDAwMDAgbg0KMDAwMDAyNzk3NCAwMDAwMCBuDQowMDAwMDI5MzEzIDAwMDAwIG4NCjAw
MDAwMjkzMzUgMDAwMDAgbg0KMDAwMDAyOTY3MyAwMDAwMCBuDQowMDAwMDMxMDU0IDAwMDAwIG4N
CjAwMDAwMzEwNzYgMDAwMDAgbg0KMDAwMDAzMTQwMSAwMDAwMCBuDQowMDAwMDMyNDY1IDAwMDAw
IG4NCjAwMDAwMzI0ODYgMDAwMDAgbg0KMDAwMDAzMjU1OSAwMDAwMCBuDQowMDAwMDMyNjUxIDAw
MDAwIG4NCjAwMDAwMzI3NTggMDAwMDAgbg0KMDAwMDAzNDEwNyAwMDAwMCBuDQowMDAwMDM0MTYy
IDAwMDAwIG4NCjAwMDAwMzQzNjkgMDAwMDAgbg0KMDAwMDAzNDM5OSAwMDAwMCBuDQowMDAwMDM0
NDI5IDAwMDAwIG4NCjAwMDAwMzQ0NTkgMDAwMDAgbg0KMDAwMDAzNDQ4OSAwMDAwMCBuDQowMDAw
MDM0NTE5IDAwMDAwIG4NCjAwMDAwMzQ1NDkgMDAwMDAgbg0KMDAwMDAzNDU3OSAwMDAwMCBuDQow
MDAwMDM0NjA5IDAwMDAwIG4NCjAwMDAwMzQ2MzkgMDAwMDAgbg0KMDAwMDAzNDY2OSAwMDAwMCBu
DQowMDAwMDM0Njk5IDAwMDAwIG4NCjAwMDAwMzQ3MjkgMDAwMDAgbg0KMDAwMDAzNDc1OSAwMDAw
MCBuDQowMDAwMDM0Nzg5IDAwMDAwIG4NCjAwMDAwMzQ4MTkgMDAwMDAgbg0KMDAwMDAzNDg0OSAw
MDAwMCBuDQowMDAwMDM0ODc5IDAwMDAwIG4NCjAwMDAwMzQ5MDkgMDAwMDAgbg0KMDAwMDAzNDk5
MCAwMDAwMCBuDQowMDAwMDM1MTc4IDAwMDAwIG4NCjAwMDAwMzY1MTMgMDAwMDAgbg0KMDAwMDAz
NjYyMyAwMDAwMCBuDQowMDAwMDM2NzMwIDAwMDAwIG4NCjAwMDAwMzY4NjEgMDAwMDAgbg0KMDAw
MDAzNjkyOSAwMDAwMCBuDQowMDAwMDM2OTczIDAwMDAwIG4NCjAwMDAwMzcwNjUgMDAwMDAgbg0K
MDAwMDAzNzEwMSAwMDAwMCBuDQowMDAwMDM3MjI0IDAwMDAwIG4NCjAwMDAwMzcyNTMgMDAwMDAg
bg0KMDAwMDAzNzMyMSAwMDAwMCBuDQowMDAwMDM3NTc1IDAwMDAwIG4NCjAwMDAwMzc2MzQgMDAw
MDAgbg0KMDAwMDAzNzY2OSAwMDAwMCBuDQowMDAwMDM3NzIwIDAwMDAwIG4NCnRyYWlsZXINPDwN
L1NpemUgOTQNL0lEWzw2MWRjYzliZDA3ZmRjNWIwMDhmNjk3MzBkNTRkMTRhZD48YjgxMWE3ZmM0
YzBkMWM4NDU2YWU2ZTZiMTNjYWE2YzY+XQ0+Pg1zdGFydHhyZWYNMTczDSUlRU9GDTc3IDAgb2Jq
DTw8IA0vTW9kRGF0ZSAoRDoyMDAzMDkwOTE1MzkwNS0wNicwMCcpDS9DcmVhdGlvbkRhdGUgKEQ6
MjAwMzA5MDkxNTM3MTFaKQ0vUHJvZHVjZXIgKEFjcm9iYXQgV2ViIENhcHR1cmUgNS4wKQ0vVGl0
bGUgKGZpbGU6Ly8vRHwvSkVEQS92MjAwNS9KZWRhX3YyMDA1LXByb3Bvc2FsXzF2MC50eHQpDT4+
IA1lbmRvYmoNOTUgMCBvYmoNPDwgDS9UeXBlIC9DYXRhbG9nIA0vUGFnZXMgNzYgMCBSIA0vTWV0
YWRhdGEgMTc0IDAgUiANL091dGxpbmVzIDEwMCAwIFIgDS9TdHJ1Y3RUcmVlUm9vdCA5NyAwIFIg
DS9TcGlkZXJJbmZvIDgzIDAgUiANL05hbWVzIDk4IDAgUiANL1BhZ2VNb2RlIC9Vc2VPdXRsaW5l
cyANL0Fjcm9Gb3JtIDk2IDAgUiANPj4gDWVuZG9iag05OSAwIG9iag08PCANL1R5cGUgL1BhZ2Ug
DS9NZWRpYUJveCBbIDAgMCA2MTIgNzkyIF0gDS9QYXJlbnQgODAgMCBSIA0vU3RydWN0UGFyZW50
cyAwIA0vQ29udGVudHMgMTcyIDAgUiANL1Jlc291cmNlcyA8PCAvQ29sb3JTcGFjZSA8PCAvQ1M1
NCAxMTYgMCBSIC9DUzU1IDExNyAwIFIgL0NTNTIgMTE2IDAgUiAvQ1M1MyAxMTcgMCBSIC9DUzUw
IDExNiAwIFIgDS9DUzUxIDExNyAwIFIgL0NTNDggMTE2IDAgUiAvQ1M0OSAxMTcgMCBSIC9DUzQ2
IDExNiAwIFIgL0NTNDcgMTE3IDAgUiANL0NTNDQgMTE2IDAgUiAvQ1M0NSAxMTcgMCBSIC9DUzQy
IDExNiAwIFIgL0NTNDMgMTE3IDAgUiAvQ1M0MCAxMTYgMCBSIA0vQ1M0MSAxMTcgMCBSIC9DUzM4
IDExNiAwIFIgL0NTMzkgMTE3IDAgUiAvQ1MzNiAxMTYgMCBSIC9DUzM3IDExNyAwIFIgDS9DUzM0
IDExNiAwIFIgL0NTMzUgMTE3IDAgUiAvQ1MzMiAxMTYgMCBSIC9DUzMzIDExNyAwIFIgL0NTMzAg
MTE2IDAgUiANL0NTMzEgMTE3IDAgUiAvQ1MyOCAxMTYgMCBSIC9DUzI5IDExNyAwIFIgL0NTMjYg
MTE2IDAgUiAvQ1MyNyAxMTcgMCBSIA0vQ1MyNCAxMTYgMCBSIC9DUzI1IDExNyAwIFIgL0NTMjIg
MTE2IDAgUiAvQ1MyMyAxMTcgMCBSIC9DUzIwIDExNiAwIFIgDS9DUzIxIDExNyAwIFIgL0NTMTgg
MTE2IDAgUiAvQ1MxOSAxMTcgMCBSIC9DUzE2IDExNiAwIFIgL0NTMTcgMTE3IDAgUiANL0NTMTQg
MTE2IDAgUiAvQ1MxNSAxMTcgMCBSIC9DUzEyIDExNiAwIFIgL0NTMTMgMTE3IDAgUiAvQ1MxMCAx
MTYgMCBSIA0vQ1MxMSAxMTcgMCBSIC9DUzggMTE2IDAgUiAvQ1M5IDExNyAwIFIgL0NTNiAxMTYg
MCBSIC9DUzcgMTE3IDAgUiANL0NTNCAxMTYgMCBSIC9DUzUgMTE3IDAgUiAvQ1MyIDExNiAwIFIg
L0NTMyAxMTcgMCBSIC9DUzAgMTE2IDAgUiANL0NTMSAxMTcgMCBSID4+IA0vRm9udCA8PCAvVDFf
ODEgMTA2IDAgUiAvVDFfODIgMTA0IDAgUiAvVDFfODMgMTEwIDAgUiA+PiAvRXh0R1N0YXRlIDw8
IC9HUzI3IDExNSAwIFIgPj4gDS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdID4+IA0vSUQgMTEyIDAg
UiANL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIA0vUm90YXRlIDAgDT4+IA1lbmRvYmoNMTE1IDAg
b2JqDTw8IA0vVHlwZSAvRXh0R1N0YXRlIA0vU0EgZmFsc2UgDS9PUCBmYWxzZSANL29wIGZhbHNl
IA0vT1BNIDAgDS9CRzIgL0RlZmF1bHQgDS9VQ1IyIC9EZWZhdWx0IA0vVFIyIC9EZWZhdWx0IA0v
SFQgL0RlZmF1bHQgDS9DQSAxIA0vY2EgMSANL1NNYXNrIC9Ob25lIA0vQUlTIGZhbHNlIA0vQk0g
L05vcm1hbCANL1RLIHRydWUgDT4+IA1lbmRvYmoNMTE2IDAgb2JqDS9EZXZpY2VSR0IgDWVuZG9i
ag0xMTcgMCBvYmoNL0RldmljZUdyYXkgDWVuZG9iag0xMTggMCBvYmoNPDwgL0ZpbHRlciAvRmxh
dGVEZWNvZGUgL0xlbmd0aCAxMTkgMCBSID4+IA1zdHJlYW0NCkiJnFbdc9o4EH/3TP+HfTPptP6A
EBOu17lAeEhnMtNrPdcHyHhkWdi6GMknCxKm7f9+K9uEL0OuZ3gAe/f3sZK1694ozeeEavjwwb3R
mtCMJTB1Q1nAgzsayWeY+gMIggF0vcDxLvsQDAJ8FK4LBu5nknJBNJcCPn4c3Y4tD8xHpfiDg+V+
YTk+XbGxzKXiC6YVp6C4NQotN/QjD3wI59Z1lXQNhmjgOX4A4cLqzHnOhq7r3v5wP01ub9xV1/P6
7ieWkKj6+b5QspAlySN/5Tn6+SL825qE1uR+bLnGFc2ZMXU/vrtF9FreP6gLWa78LgT9K1DM+vYW
xEaOX8vxaxN+9Q36gdO76lWKxrJYK55mGmYdOrvAing9MIIgZDQT6DHlrIQ7QR24yXOoYktkKZla
scQxCj1433W6EN5anTDjJSSSLhdMaMhICTFjAgrFCqJwFeJ1OzjMpWqg/AaKSlHyhKl6KTBRZwzu
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
hBHnwJbDrznqa+Oj7WDlNshxJulTg6p99jIGUCe6LnJG+Wx9pO+Z6zkXGzkNEjbcAP+shSYvJ4yw
Q4sqvn7/j12WuexthA34TAW+iByrchhkrgnWcUaWmY6oQYoqzZxWT/SxMSOXSkcZLzSu2x/s05Bv
sCKKkzhjkVSRCS+YjhJGM1Lvrh/HSXbM8HVvwMLNopnZ3MVJCm68owRza+f8QmXhou26nEdFB2iI
bdhA+yy/g27/efCsvkGi8HiLCrLIsZAGoyrbeUsn8eeo6kgMOazf98O/e1Cv+NwBnrdXxtjAkrSO
nIBdPLFn25wRLEXLjxft/Yoxuwq6zGJuJSzX80vMh9w7uLPMeCqZKPtiRW2BdK9HxRLPjE3YBVm7
N/GsrGkLXcryJcQtZb/b/fthVq+aKA5JNvHnKHA94dgKys09gZjrSBGRMiz0b2/nBu4d9lmPXORL
/UpJ5VK/HsSFrGOamsKessNDnxLslww3k+lsmuOBlZTHPLZI067QfVlAbLCitoLt88QKUWnZxQsH
vs6xhwtZI1JmGspMLkXy7qiZVMd/bPpw1Qh3EjWOWdv8BTbVjDnH803DdDaQWsvF/oDWhU6n53S9
HvjX56ezv2A7AnVOJy/H86/9cv6Z8Yz1XdcdfXc/j0d3bjmEuWfmMUe/mDnJBzlDGJyWJrfurYsD
U6c/fdMJ+n4Xvjw87rn6KcAAYRPi5Q1lbmRzdHJlYW0NZW5kb2JqDTE3MyAwIG9iag05NzUgDWVu
ZG9iag0xNzQgMCBvYmoNPDwgL1R5cGUgL01ldGFkYXRhIC9TdWJ0eXBlIC9YTUwgL0xlbmd0aCAx
MjUwID4+IA1zdHJlYW0NCjw/eHBhY2tldCBiZWdpbj0nJyBpZD0nVzVNME1wQ2VoaUh6cmVTek5U
Y3prYzlkJyBieXRlcz0nMTI1MCc/PgoKPHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjJwogeG1sbnM6aVg9J2h0dHA6Ly9ucy5hZG9i
ZS5jb20vaVgvMS4wLyc+CgogPHJkZjpEZXNjcmlwdGlvbiBhYm91dD0nJwogIHhtbG5zPSdodHRw
Oi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvJwogIHhtbG5zOnBkZj0naHR0cDovL25zLmFkb2JlLmNv
bS9wZGYvMS4zLyc+CiAgPHBkZjpNb2REYXRlPjIwMDMtMDktMDlUMTU6Mzk6MDUtMDY6MDA8L3Bk
ZjpNb2REYXRlPgogIDxwZGY6Q3JlYXRpb25EYXRlPjIwMDMtMDktMDlUMTU6Mzc6MTFaPC9wZGY6
Q3JlYXRpb25EYXRlPgogIDxwZGY6UHJvZHVjZXI+QWNyb2JhdCBXZWIgQ2FwdHVyZSA1LjA8L3Bk
ZjpQcm9kdWNlcj4KICA8cGRmOlRpdGxlPmZpbGU6Ly8vRHwvSkVEQS92MjAwNS9KZWRhX3YyMDA1
LXByb3Bvc2FsXzF2MC50eHQ8L3BkZjpUaXRsZT4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6
RGVzY3JpcHRpb24gYWJvdXQ9JycKICB4bWxucz0naHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4w
LycKICB4bWxuczp4YXA9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPgogIDx4YXA6TW9k
aWZ5RGF0ZT4yMDAzLTA5LTA5VDE1OjM5OjA1LTA2OjAwPC94YXA6TW9kaWZ5RGF0ZT4KICA8eGFw
OkNyZWF0ZURhdGU+MjAwMy0wOS0wOVQxNTozNzoxMVo8L3hhcDpDcmVhdGVEYXRlPgogIDx4YXA6
TWV0YWRhdGFEYXRlPjIwMDMtMDktMDlUMTU6Mzk6MDUtMDY6MDA8L3hhcDpNZXRhZGF0YURhdGU+
CiAgPHhhcDpUaXRsZT4KICAgPHJkZjpBbHQ+CiAgICA8cmRmOmxpIHhtbDpsYW5nPSd4LWRlZmF1
bHQnPmZpbGU6Ly8vRHwvSkVEQS92MjAwNS9KZWRhX3YyMDA1LXByb3Bvc2FsXzF2MC50eHQ8L3Jk
ZjpsaT4KICAgPC9yZGY6QWx0PgogIDwveGFwOlRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+Cgog
PHJkZjpEZXNjcmlwdGlvbiBhYm91dD0nJwogIHhtbG5zPSdodHRwOi8vcHVybC5vcmcvZGMvZWxl
bWVudHMvMS4xLycKICB4bWxuczpkYz0naHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8n
PgogIDxkYzp0aXRsZT5maWxlOi8vL0R8L0pFREEvdjIwMDUvSmVkYV92MjAwNS1wcm9wb3NhbF8x
djAudHh0PC9kYzp0aXRsZT4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKPC9yZGY6UkRGPgo8P3hwYWNr
ZXQgZW5kPSdyJz8+DWVuZHN0cmVhbQ1lbmRvYmoNeHJlZg0wIDEgDTAwMDAwMDAwMDAgNjU1MzUg
Zg0KNzcgMSANMDAwMDAzOTc3OCAwMDAwMCBuDQo5NSAxIA0wMDAwMDM5OTY2IDAwMDAwIG4NCjk5
IDEgDTAwMDAwNDAxNjAgMDAwMDAgbg0KMTE1IDYwIA0wMDAwMDQxMjYyIDAwMDAwIG4NCjAwMDAw
NDE0NjkgMDAwMDAgbg0KMDAwMDA0MTQ5OCAwMDAwMCBuDQowMDAwMDQxNTI4IDAwMDAwIG4NCjAw
MDAwNDI1ODIgMDAwMDAgbg0KMDAwMDA0MjYwNCAwMDAwMCBuDQowMDAwMDQzNjU4IDAwMDAwIG4N
CjAwMDAwNDM2ODAgMDAwMDAgbg0KMDAwMDA0NDczMyAwMDAwMCBuDQowMDAwMDQ0NzU1IDAwMDAw
IG4NCjAwMDAwNDU4MTAgMDAwMDAgbg0KMDAwMDA0NTgzMiAwMDAwMCBuDQowMDAwMDQ2ODg1IDAw
MDAwIG4NCjAwMDAwNDY5MDcgMDAwMDAgbg0KMDAwMDA0Nzk2MSAwMDAwMCBuDQowMDAwMDQ3OTgz
IDAwMDAwIG4NCjAwMDAwNDkwNDAgMDAwMDAgbg0KMDAwMDA0OTA2MiAwMDAwMCBuDQowMDAwMDUw
MTE5IDAwMDAwIG4NCjAwMDAwNTAxNDEgMDAwMDAgbg0KMDAwMDA1MTE5OSAwMDAwMCBuDQowMDAw
MDUxMjIxIDAwMDAwIG4NCjAwMDAwNTIyODAgMDAwMDAgbg0KMDAwMDA1MjMwMiAwMDAwMCBuDQow
MDAwMDUzMzU5IDAwMDAwIG4NCjAwMDAwNTMzODEgMDAwMDAgbg0KMDAwMDA1NDQzNyAwMDAwMCBu
DQowMDAwMDU0NDU5IDAwMDAwIG4NCjAwMDAwNTU1MTYgMDAwMDAgbg0KMDAwMDA1NTUzOCAwMDAw
MCBuDQowMDAwMDU2NTk2IDAwMDAwIG4NCjAwMDAwNTY2MTggMDAwMDAgbg0KMDAwMDA1NzY3NSAw
MDAwMCBuDQowMDAwMDU3Njk3IDAwMDAwIG4NCjAwMDAwNTg3NTMgMDAwMDAgbg0KMDAwMDA1ODc3
NSAwMDAwMCBuDQowMDAwMDU5ODMxIDAwMDAwIG4NCjAwMDAwNTk4NTMgMDAwMDAgbg0KMDAwMDA2
MDkxMCAwMDAwMCBuDQowMDAwMDYwOTMyIDAwMDAwIG4NCjAwMDAwNjE5ODggMDAwMDAgbg0KMDAw
MDA2MjAxMCAwMDAwMCBuDQowMDAwMDYzMDY2IDAwMDAwIG4NCjAwMDAwNjMwODggMDAwMDAgbg0K
MDAwMDA2NDE0MyAwMDAwMCBuDQowMDAwMDY0MTY1IDAwMDAwIG4NCjAwMDAwNjUyMTkgMDAwMDAg
bg0KMDAwMDA2NTI0MSAwMDAwMCBuDQowMDAwMDY2Mjk4IDAwMDAwIG4NCjAwMDAwNjYzMjAgMDAw
MDAgbg0KMDAwMDA2NzM3NyAwMDAwMCBuDQowMDAwMDY3Mzk5IDAwMDAwIG4NCjAwMDAwNjg0NTUg
MDAwMDAgbg0KMDAwMDA2ODQ3NyAwMDAwMCBuDQowMDAwMDY5NTMzIDAwMDAwIG4NCjAwMDAwNjk1
NTUgMDAwMDAgbg0KMDAwMDA3MDYxMiAwMDAwMCBuDQowMDAwMDcwNjM0IDAwMDAwIG4NCjAwMDAw
NzE2ODkgMDAwMDAgbg0KMDAwMDA3MTcxMSAwMDAwMCBuDQp0cmFpbGVyDTw8DS9TaXplIDE3NQ0v
SW5mbyA3NyAwIFIgDS9Sb290IDk1IDAgUiANL1ByZXYgMTczIA0vSURbPDYxZGNjOWJkMDdmZGM1
YjAwOGY2OTczMGQ1NGQxNGFkPjwxY2NmM2ZjYzQ0OTAyZGNhMjJiYTNlOGJjZDBkODI4Mj5dDT4+
DXN0YXJ0eHJlZg03MzA0Nw0lJUVPRg0=
--=====================_1004346313==_--

Unformatted
----web-attachment----
Jeda_v2005-proposal.txt


Copyright (c) 2003 Jeda Technologies Inc. All rights reserved.

This document has been prepared by Jeda Technologies Inc for
consideration by the IEEE 1364 working group as a recommendation for
inclusion into the IEEE 1364 standard.

1. Introduction
This proposal describes the testbench layer for the IEEE 1364 Verilog extension.

2. Testbench block
The testbench block is to specify the testbench within Verilog.

Syntax
testbench_block ::=
'testbench' identifier
[ default_clock_specification ]
[ port_list ] ';'
{ variable_or_portset_declaration }
'begin'
statements
'end'
'endtestbench'

default_clock_specification ::=
clock_specification

clock_specification ::=
'@' identifier { drive_sample_spec }

drive_sample_spec ::=
drive_spec
|
sample_spec

drive_spec ::=
'drive' edge_spec [ 'skew' integer ]

sample_spec ::=
'sample' edge_spec [ 'skew' integer ] [ 'depth' integer ]

edge_spec ::=
'posedge'
|
'negedge'
|
'bothedge'

port_list ::=
'(' io_port { ',' io_port } ')'

io_port ::=
io_direction [ bit_range ] identifier { drive_sample_spec }

io_direction ::=
'input'
|
'output'
|
'inout'

The testbench can be instantiated with a proper port connection as
arguments. When no instance is found, the testbench block becomes the
top instance module.

The statements within begin/end pair in the testbench block will be
executed at the beginning of the simulation as if it is 'initial'
statement in a module.

A port signal in the testbench block can have reference clock, sample and
drive specifications. When a default clock specification is declared at the
testbench block, it becomes the default specification for all the port
signals unless individual specification is declared at the port declaration.

Examples:

testbench check @ clk drive posedge skew 2 sample posedge depth 2
( input clk, inout [5:0] data ) ;

begin
.
.
end
endtestbench

A member function drive_clock can be called on output or inout
signal to drive it as a clock.

drive_clock( int period1, int pediod2 = period1, int initial_value, int delay = 0 )

Example:
clk.drive_clock( 50, 50, 0, 0 ) ;

Special port signal 'CLOCK' is used for utility clock within the
testbench layer. This signal is used to count timeout, etc. By
default CLOCK is driven as:

CLOCK.drive_clock( 100, 100, 0, 0 ) ;

This can be overwritten by the actual drive_clock call.

3. portset
portset is a mechanism to bundle the Verilog signals into a logical group.
It can declare the alias for a Verilog signal to isolate the testbench
from the actual Verilog model.

Syntax:
portset ::=
'portset' identifier default_clock_specification ';'
{ port_declaration }
'endportset'

port_declaration ::=
io_port [ Verilog_node_path ] ';'

Verilog node path specifies the connection to the leaf level Verilog signal.

Example:

testbench top ;
portset pt @clk drive posedge skew 2 sample posedge skew -2 depth 2 ;
inout io_data dut.data ;
input clk ;
endportset

begin
.
.
end
endtestbench

Within the testbench block, the following programming primitives are available
to ease the testbench construction.

4. Primitive data types for testbench layer

Within the testbench block (and class which will be explained later),
the following primitive data can be used.

reg -- 4-value bit vector
integer -- 32bit integer
real -- real variable
time -- to hold time
realtime -- to hold time in real value
int -- 2-value integer (new)
string -- string variable (new)
signal -- the pointer to a port. (new)

The user can create a user defined data type using class declaration
(Section 9). There's some predefined classes provided by the
Verilog system (system classes).

string can store string value, for example:

string str ;
str = "name" ;

ports and signals are usually handled as pointers to the actual Verilog node.
signal can store a pointer to a port.
For example:

signal data_port ;

data_port = io_data ;

Accessing actual data for a port or signal can be done with '.N' operator, where N is an
integer constant that represent the pipeline depth.

For example:

reg [7:0] data0, data1 ;

data0 = data_port.0 ;
data1 = data_port.1 ; // one cycle previous

The access depth on the port must be specified properly to use the pipelined information.

Store a value to a port/signal variable is done by using '.0' operator in the left side of
the assignment.

data_port.0 = 100 ;

5. List

In the testbench layer, any data type can be declared as a list with
'list_of' construct.
For example:

list_of integer int_list ;
list_of string str_list ;

Access to a list is usually done via member functions:

push() : put an element to the top of list
bpush() : put an element to the end of list
pop() : get an element from the top of list
bpop() : get an element from the end of list
send() : same as push() ;
receive() : get an element from the end of list if any, or wait until
a data is ready
num_element() : return how may data is in the list
sort() : Return the sorted list.
only for reg, integer, string, real list.
Example:

int_list.push( 5 ) ; // pushing 5 to the top of list

i = intlist.bpop() ; // getting a value from the end of list

6. Array

In the testbench layer, any data type as well as list type can be declared
using an array form as follows:

integer xx[5] ; // normal array
integer yy[] ; // associative array
integer zz[3][2][4] ; // multi diamensional array
integer ss[*] ; // string indexed associative array

The array of list can be declared as:

list_of int pp[5] ; // normal array of list
list_of int qq[] ; // associative array of list
list_of int rr[5][4][3] ; // multi-dimensional array of list
list_of int ss[*] ; // string indexed array of list

The following member function are defined to be used over the array variables:

num_element() -- return number of element
index_list() -- return index list
(only for associative array, string index array)
check_index( arg ) -- return 1 if given arg exist as an element
(only for associative array, string index array)
delete( arg ) -- remove the entry from array
(only for associative array, string index array)
flush_all() -- remove all the entries from array
(only for associative array, string index array)

7. Expression
In the testbench layer, we further define the following additional
expressions to compliment the 1364 expressions

7.1 Masked Comparison
Three types of comparison that ignore X or Z values in the fields.

- <left> =?= <right> : x, z is ignored on both side

- <left> ?== <right> : x, z is ignored on left side

- <left> ==? <right> : x, z is ignored on right side

7.2 Cycle Expression
Cycle expression evaluates an expression associated with clock cycle
and return 1 or 0 according to the result.

Syntax:
cycle_expression ::=
cycle_element '(' expression { ',' expression } ')'

cycle_element ::=
'@' delay [ ',' window ] [ clock_edge_spec ]
|
'@@' delay [ ',' window ] [ clock_edge_spec ]

delay ::=
expression

window ::=
expression

clock_edge_spec ::=
'(' [ edge_spec ] port_or_signal_variable_expression ')'

The semantics of the cycle expression are the following:

- @ delay, window ( <edge> <clock_exp> ) expression
wait for delay cycle, then check the expression becomes true
within the given window cycle. When window is omitted, window =
0 is used.

- @@ delay, window ( <edge> <clock_exp> ) expression
wait for delay cycle, then check the expression is true
throughout the window cycle. When window is omitted, window = 0
is used.

When the clock edge spec is omitted, the expression is evaluated
left to right. Upon detecting a port signal the reference clock of
the port is used as the clock, and posedge is used as the default
edge. If no port is detected in the expression, CLOCK signal is used.

8. Statement
8.1 Concurrent execution
Statements within fork/join pair are executed concurrently. For example:

fork
task_call1() ;
task_call2() ;
join

Addition to 'join', 'knife' and 'spoon' can be used to
close the fork statement. 'knife' will proceed without waiting
for the thread. 'spoon' will wait for the first thread completion.

When knife or spoon is used, threads are created under the
current thread. The hierarchy of thread is kept in the system as
the order of the thread creation. The thread hierarchy effects the
range of 'terminate' and 'thread_join' statement.

'terminate' statement is used to terminate all the threads under
the current thread.

Example:
fork // thread 1
fork // thread 2
thread1() ;
thread2() ;
spoon
terminate ; // terminate either thread1 or thread2
join

Note that outside fork/join pair (thread 1) creates a new thread
level to limit the effect of the terminate statement.

'thread_join' statement will wait for any outstanding threads to
be completed under the current thread hierarchy.

Example:
fork // thread 1
fork // thread 2
thread1() ;
thread2() ;
knife
do_something() ;
thread_join ;
join

8.2 Cycle Statement
Any statement can have cycle element to delay the execution based
on the cycle.

Syntax:
cycle_statement ::=
'@' delay [ clock_edge_spec ] statement

where delay is an integer expression.

The statement with the cycle element will be executed after the
given delay cycle. When the clock edge spec is omitted, the
statement is parsed from left to right and when a port signal is
detected, the reference clock of the port is used as the clock, and
posedge is used as the default rule. If no port is detected in the
expression, CLOCK signal is used.

9. Class
9.1 Class Declaration
Class is the mechanism to create user defined data type and the member
task/function that manipulate the contents.

Class Declaration Syntax:

'class' identifier ';'
{ member_variable_declaration }

{ member_task_function_declaration }

'endclass'

Here's a simple class declaration example:

class my_class ;
int bar ;

function int read_bar ;
begin
read_bar = bar ;
end
endfunction

endclass

9.2 Member task/function rules
Arguments for the member task/function can be declared with ANSI-C style
syntax.

Example:

task foo( int arg1, string arg2 )
begin
do_something ;
end
endtask

Usually an argument is transfered as it's value. To share the location,
'var' attributes can be used on argument.

Example:

task foo( var int arg1, string arg2 )
begin
do_something ;
arg1 = 0 ;
end
endtask

Either an array or list types can optionally be be used as an
argument to tasks and functions. The type of the argument must
match exactly in this case.

task boo( list_of int arg1, reg [5:0] arg2[], var list_of int arg3[*] )
begin
.
.
end
endtask

An argument can optionally hold default argument/s. The argument
can be omitted when a default value is set. The default value must
be a constant that can be deterministic at the compilation time.
Array argument/s cannot have default value

9.3 Class Variable Declaration and Construction

When a class is defined, the class name becomes the user data type, and
its instance is declared as the variable with its type.

my_class foo ;

When a class instance is declared, its content is empty (null), and must
be allocated by calling 'new' function(aka constructor).

foo = new ;

When the new function is not defined in the class declaration, calling
new simply allocate the defined data type.

When new function can be defined in the class declaration, calling new
allocate the class member data, and then call the constructor to
initialize it.

A constructor cannot have have a return type but can optionally
have arguments

class my_class ;
int bar ;

function new( int x ) ;
begin
bar = x ;
end
endfunction

function int read_bar ;
begin
read_bar = bar ;
end
endfunction
endclass

testbench main ;
int b ;
my_class foo ;
begin
foo = new( 56 ) ;

b = foo.read_bar() ;
end
endtestbench

Class instance is handled as a pointer throughout the testbench. When a
instance (which allocated the data with new) is stored to another
variable, two location shares the same data structure.

my_class foo, bar ;

foo = new ;

bar = foo ; // sharing the same data structure

When real copy (instead of sharing the same structure) is needed, new
with variable will create the copy of the instance that contains the same
data values.

bar = new foo ; // create the copy of foo, not share

Note that this copy is done only one level. It creates a new data structure
and copy the contents, but if the member variable is a class type, the
member will have the the pointer value, and sharing the same data structure
at the level.

9.4 Class Extension

A class can be extended with keyword 'extends'. The new class inherits all
the members (except 'local' members) from its parent. Any members can be
redefined in the child class unless it's declared 'final' in the parent.

class mymy_class extends my_class ;
int boo ;
int bee ;
function int sum ;
begin
sum = boo + bee ;
end
endfunction
endclass


The extended class instance and its parent class instance can be assigned
in either direction (up-cast and down-cast). For down-cast, the class type
correctness is checked at runtime as it is not clear if the parent instance
is holding the extended class instance of the destination at the
compilation time.

class foo_class ;
..
endclass

class bar_class extends foo_class ;
..
endclass

testbench yoo ;
foo_class foo ;
bar_class bar ;
bar_class boo ;
begin
bar = new ;

foo = bar ; // up-cast
boo = foo ; // down-cast
end
endtestbench


When the new function is called, all the new functions of the super classes
are called at that time. Even the new function is ommitted in the class,
it's default new function (just allocate variables) is called. If the new
function of the super class does not take any arguments (or default value
is set to all the arguments), then calling super.new() is done implicitly
(unless it is called explicitly in the child new() function).

When the new function in the super class has arguments, the implicit
super.new() call will not be done and the child class has to call it
explicitly with proper arguments. In this case, the new function for the
child class can not be omitted. The child new function must call the super
class's new function at the very first statement in its new function.

class foo_class ;
..
function new ( int x ) ;
begin
..
end
endfunction
endclass

class bar_class extends foo_class ;
..
function new ;
begin
super.new(0) ; // must call as the first statement of new()
..
end
endfunction
endclass

Except the new function, the reference to the class member is done in its
class scope order. A name is searched within the class, and if not
found, then searched in its super class. Redefining a variable or
a function in the child class will replace the name reference to
the member within the child instance. Note that this simple
redefinition will not replace the functions referenced within the
super class itself. See 9.5 Overwrite Function for the mechanism
to replace the superclass function references.

9.5 Abstract Class

Abstract class is a class declared with 'abstract' attribute, and it
is allowed to contain abstract function(s) which is also declared with
'abstract' attribute. Such a function must be declared without the actual
function body and the actual body must be declared in its child class.
The abstract class that contains abstract function (without body) can be
used to specify a template of the class. The actual function body that
corresponds to the abstract function must be defined in its child class.
Instance of such abstract class can be declared, but calling new()
directory to allocate the instance is not allowed. The allocation to such
abstract class instance should only be done by assigning its child instance
to it (up cast).

abstract class animal ;
abstract task bark ;
abstract task food ;
endclass

class dog extends animal ;
task bark ;
begin
$display( "Bow wow€n" ) ;
end
endtask

task food ;
begin
$display( "Eats dog food€n" ) ;
end
endtask
endclass


9.6 Overwrite Function

The abstract mechanism explained above is useful when the parent is written
such that it represents an abstract view of a set of objects. Sometime, a
class is already written without such an abstraction in mind, and we may
want to extend it with just rewriting one function. Just
redefining a new function in the extended class can handle the
external call to the function. But if the parent class is calling the
function, parent's code is still calling the original function in it's
member.

For example:

class parent ;
task foo ;
begin
$display( "parent foo called€n" ) ;
end
endtask
task bar ;
begin
foo ;
end
endtask
endclass // end of class parent

class child extends parent ;
task foo ;
begin
$display( "child foo called€n" ) ;
end
endtask
endclass

When a child instance called the function bar, the parent class's foo() is
called from the bar() function even child has foo() function redeclared.
When a function is redeclared with 'overwrite' attribute, the child's
function is referenced from it's parent as well.

class child_a extends parent ;
overwrite task foo ;
begin
$display( "child foo called€n" ) ;
end
endtask
endclass


In this case, when parent's bar() function is called from child_a's
instance, redeclared foo() is called from bar() function. Such an overwrite
function must have the same arguments as the overwriting function in the
parent.

9.7 Various Attributes for Class Declaration

A class can be declared with the following attributes:

* abstract -- this class is abstract class and may contains abstract function

A class member variables can be declared with the following attributes

* local -- this variable is only used within this class
* protected -- this variable is protected, and only referenced in this class or
extended class
* final -- this variable is final and extending class can not overwrite it

A class member function can be declared with the following attributes

* local -- this function is only used within this class
* protected -- this function is protected, and only referenced in this class or
extended class
* final -- this function is final and extending class can not overwrite it
* overwrite -- this function overwrite the parent's corresponding function


10. System Tasks and Functions
System provided tasks/functions can be used under the testbench layer.

10.1 MT random functions
function int randmt ;
returns non-negative MT base random
function int urandmt;
returns 32-bit unsigned random

10.2 String handling functions
function string substring ( string s, int start [,int end] ) ;
returns a substring indexed by start and end point. When end is omitted, it becomes the end
of the string
function int strlen( string s ) ;
returns the length of the string.
function int atoi( string s ) ;
convert a string to integer value
function reg abit2bin( string s ) ;
convert a bit string to bit vector value
function reg ahex2bin( string s ) ;
convert a hex string to bit vector value
function reg aoct2bin( string s ) ;
convert a octal string to bit vector value

10.3 Cycle function
function int get_cycle ;
returns the current cycle (as counting posedge of CLOCK port)

11. System Classes
The testbench layer can use various system provided classes.

11.1 MT Random class
The class random_mt generates pseudo random variable based on Mersenne Twister Algorithm.
(Same as randmt() function) The following member functions are provided:


* function new( int seed = 0 ) ;
Constructor function. When seed = 0 is given, the default seed value will be used.
* function int random ;
This function generate a non negative random value.
* function int urandom()
This function generate a unsigned random value.


Example:

random_mt rmt ;

rmt = new( 594853 ) ;

repeat( 100 )
printf( "random_mt generates %d€n", rmt.random() ) ;

11.2 Event
Event class can be used for synchronization among threads.

The following member tasks/functions are provided:

* task trigger ;
Generate a trigger. This trigger will be active within the current simulation time slot
(unless it's cleared). This guarantees that receiver (if any) will get the trigger
regardless of the order of the execution of the thread.

* task trigger_on()
Generate a trigger and keep it at on state. This trigger remains active until it
is cleared.

* task trigger_off ;
Clear a trigger if it's set.

* task trigger_pulse()
Generate an impulse trigger. This trigger is only effective to the thread that is already
waiting in the event variable. If there's no thread, the trigger disappear immediately.

* function int sync ;
wait for a trigger. The thread will be resumed when a trigger is sent to the event
variable. It returns 1 upon receiving the trigger. It returns 0 when time out occurs.

* function int sync_clear()
wait for a trigger. When it is resumed, it clears the trigger so that only this thread
receives the trigger. This call can be used to create a handshake mechanism.

* function int check()
This function checks and returns 1 if the trigger in the event is active, otherwise
returns 0.

* function int check_clear()
This function checks and returns 1 if the trigger is active. It clears the active
trigger when it gets the trigger. It returns 0 if trigger is not active.

* task timeout( int cycle_count )
This function set the time out limit in the number of CLOCK cycle. Setting 0 clears
the time out value.

11.3 Semaphore
Semaphore class can be used for mutex among threads, and synchronization.

The following member functions are provided:

* function new( int unit = 1 )
Constructor function. Create a semaphore instance with the given unit. Default unit is 1.

* function int get( int unit = 1 )
This function attempts to get the given unit from the semaphore. If there's enough unit
within the semaphore, the unit is subtracted, and the function immediately returns 1.
If there's not enough unit in the semaphore, the calling thread will be put into a FIFO
queue and suspended until the required unit is available. When the time out is set, and
timer goes off while waiting, it returns 0.

* function int check( int unit = 1 )
This function checks the unit in the semaphore. If there's enough unit, the function
subtract the given unit from the semaphore and returns 1. If there's not enough, it
returns 0 without waiting.

* task put( int unit = 1 )
This function put the given unit to the semaphore. If there's waiting thread and unit in
the semaphore is enough for the thread waiting at the top of the queue, the waiting thread
will be released after the unit subtraction.

* task timeout( int cycle )
This function set the time out limit as the number of CLOCK cycle. Setting cycle = 0
disables the time out.

11.4 Regular Expression Engine Class

The class regexp is the regular expression pattern matching engine. This class is based on
the regular expression engine developed by University of Toronto (written by Henry Spencer)
with some Perl5 extensions (by Larry Wall).
Note that NOT all the Perl5 features are supported in this class.

The following member functions are provided:

* function int match( string source, string regexp ) ;
This function tries the regular expression match, and returns 1 if succeeded,
or 0 otherwise.

* function string prematch() ;
This function returns the prematch string from the previous match() call.

* function string postmatch() ;
This function returns the postmatch string from the previous match() call.

* function string thismatch() ;
This function returns the matched string from the previous match() call.

* function string backref( int num )
This function returns the match in the parentheses from the previous match() call.


The engine is extended with some of the Perl5 regular expression features.
The following special character features are supported.

Code Matches
. Any character (include '/n')
\a Alarm (beep)
\n New line
\r Carriage return
\t Tab
\f Form feed
\e Escape
\d A digit, same as [0-9]
\D A non digit
\w A word character(alphanumeric), same as [a-zA-Z_0-9]
\W A nonword character
\s A whitespace character, same as [ €t€n€r€f]
\S A non-whitespace character
\0 null character
\<single digit> corresponding parentheses actually matched
\<two or three octal digit> character with the octal value
\x<one or two hex digit> character with the hex value
\c<Single Character> Corresponding control character

Supported Assertions

Assertion Meaning
^ Matches at the beginning of the string
$ Matches at the end of the string
\b Matches at word boundary (between €w and €w)
\B Matches except at word boundary

Supported Quantifiers

Quantifier Range
* 0 or more times
+ 1 or more times
? 0 or 1 time


12. Aspect
Aspect oriented programming (AOP) is a new concept in the
programming paradigm. In this section, the aspect mechanism will be explained.
For the detailed concept of AOP, related information, please refer
AspectJ project web suite (www.aspectj.org).

Unlike AspectJ, (current) AOP mechanism in the testbench layer is
relatively simple. It can add extra code called 'advice' to the
location of a function call that matches to the specified
pattern. This pattern is called pointcut. The function call is only the
target for the pointcut pattern matching.

12.1 Aspect

The aspect block is the unit to code the aspect to Jeda code. The
aspect block has similarity to the class(defined in section 9),
but cannot create an instance on its own. Thus, it cannot have define
a constructor. Nevertheless, inside an aspect, member variables,
member functions, and advice can all be declared.

aspect foo_asp ;
int x, y, z ;

task foo_func ;
begin
x = 100 ;
y = 200 ;
z = 300 ;
end
endtask

advice void foo_ad ;
call( io_drive.drive_data ) ;
begin
$display( "io_drive.drive_data is called€n" ) ;
end
endadvice

endaspect

The member variables and member task/function can be referenced with
<aspect_name>.<member_name>. In the aspect above, member variable
x can be accessed from outside of the aspect as:

foo_asp.x = 500 ;

and member function foo_func() can be called:

foo_asp.foo_func() ;

12.2 Advice

The advice is the special executable unit for the aspect oriented
programming. Advice is similar to member function in class that
executes the code. But advice can not be called directly from
other functions. The advice is executed at the condition specified
by the pointcut matches. The pointcut location is defined at the
other function calls. Multiple pointcut specifications can be
declared for an advice.

aspect foo_asp ;
int x, y, z ;

advice void foo_adv
call( io_drive.drive_data ) ; // call pointcut
begin
$display( "io_drive.drive_data is called€n" ) ;
end
endadvice
endaspect

12.3 Pointcut

The pointcut is the way to pick the location and timing that the
advice is executed. There are three mechanism to declare the
pointcut specifications:

* call( <pattern> )
call pointcut is used to specify the execution of the advice
at the call (before execution) of task/function(s) that
matches the pattern.

* return( <pattern> )
return pointcut is used to specify the execution of the advice
at the return from the function(s) that matches the pattern.

* overwrite( <pattern> )
overwrite pointcut is used to specify the execution of the
advice as the replace of the task/function(s) that matches the pattern.

The pattern in the pointcut specification can either be an exact
match of the name(s) using an identifier (e.g. io_drive.drive_data)
or string pattern (e.g. io_drive."drive\w*" ).

When the string is used, regular expression engine is used to
detect the matching pattern. (See the rules in regular expression
class explanation). The pattern must be down to the function name
(or string that match to function names), but class name and
member variable names can be used to specify in the pattern as the
path down to the function. For example, the following code
catches the cycles of the threads waiting for the semaphore.

aspect how_long ;
int thread_count = 0 ;
int cycle_count = 0 ;
int cycle_que<> ;

advice task wait_sem() call( io_drive.drive_sem.get ) ;
begin
thread_count++ ;
cycle_que.send( get_cycle() ) ;
end
endadvice

advice task got_sem() return( io_drive.drive_sem.get ) ;
cycle_count += ( get_cycle() - cycle_que.receive() ) ;
endadvice

function int ave_wait ;
begin
if( thread_count ) return cycle_count/thread_count ;
else return 0 ;
end
endfunciton
endaspect

Note:
1. Pointcut matching is only done for functions and member
functions of classes.
2. Function and advice under aspect are not the target of the
pointcut search. This will prevent infinite recursive advice call.

12.4 Data type of advice and return value modification

When function data type is declared on advice, the type must
match the function(s) type at the pointcut. If the type
did not match, the advice call will not be attached to the
function irrespective of even if the name matched to the pointcut
pattern. When the advice type is void, the advice will be matched
with any type of functions. In this case, the return value cannot
be set within the advice.

For 'call' advice case, its return value on advice will not be
affected as the pointcut function will be called after the advice call.

For 'overwrite' advice case, return value must be set by the
advice so the advice type must be matched with the pointcut
function. The runtime error will be detected if advice does not
return the value in this case.

For 'return' advice case, using the return statement with value
will overwrite the return value from the pointcut
function. Updating the function variable with new value will update
the return value.

advice function int change_ret_val( int x ) return( foo.get_x ) ;
begin
if( x > 100 ) change_ret_val = 100 ; // modify the return value
end
endadvice

For 'overwrite' advice case, the return value must be set within
the advice. If overwrite advice does not return the value, the
runtime error will be reported as the function case.

advice function int missing_retval( int x ) overwrite( foo.get_x ) ;
int p ;
begin
p = x ;
// missing return <value> statement, will cause runtime error
end
endadvice

12.5 Arguments on advice

The advice with no argument will match with function with any
arguments. In those cases, the advice cannot see the arguments that
is passed to the matched task/function(s).

When the argument(s) are specified (which must match with that of
pointcut function), the advice can refer the argument(s). If an
argument is 'var' type, the advice can modify it before it passed
to the actual function.

12.6 Special expressions in advice

12.6.1 this

When 'this' is used within advice, this expression returns the
instance of the top class of the pointcut specification. When a
join point 'Driver.drive' is used, this() returns the instance
of Driver class at the pointcut. The top class name must be
deterministic to use 'this' expression within advice. The
pointcut specifications must start with a class name (not a
string), and all the class name must be the same if multiple
pointcut specifications are specified.

advice void check_drive ;
call( Driver.drive )
call( Driver.receive) ;
Driver foo ;
begin
foo = this ;

end
endadvice


12.6.1 return
This special expression returns the return value of the join
point function. This is only valid when the advice type is
specified, and can only be used in return pointcut advice. When this
expression is used in non-advice block, it will result in a compile
error. When this expression is used in non-return pointcut
advice, it will cause a runtime error. The data type of the
return expression is the same as the advice data type.

advice int add_one return( foo.bar ) ;
int rval ;
begin
rval = return ;
rval++ ;
add_one = rval ;
end
endadvice

12.7 Advice Related Functions

There are two special system functions that can be used within an advice:

* function int pointcut_line()
This function returns the current line number of the pointcut location.

* function string pointcut_file()
This function returns the file name of the pointcut location.

These are handy to add some debugging information as an
aspect. The following example add extra line and file printout to
any printf call within the Driver class.

aspect verbose ;
advice task verbose_display call( Driver.".*".$display )
begin
$write( "Line %d in %s", pointcut_line(), pointcut_file() ) ;
end
endadvice
endaspect




Hosted by Boyd Technology