------------8NMe1y7a3JWjW88kpgenSG
Content-Type: text/plain; format=flowed; delsp=yes; charset=iso-2022-jp
Content-Transfer-Encoding: quoted-printable

こんにちは。
LLDN のとき言っていた Yampa を GHC-6.4 で使う時の変更点は、
afrp-0.4 の方を持ってきて、AFRPUtilities の (^>>), (>>^),
(^<<),(<<^) が Control.Arrows にも含まれているのでそれを
削ってやるということだけでした。

ただしサンプルを試してみたい場合は、拡張子が as になって
いるものを hs に変えたり、SpaceInvaders に関しては HGL の
定義が変更されているので import を Graphics.HGL.Utils1B$B$+$i
Graphics.HGL に変えてやる必要があります。
(ただし、Makefile を使わずに --make の方で試しているので
Makefile を使う場合には変更が必要かもしれません。)

wxfruit を試してみたい場合は、Control.Arrow をインポート
するようにして paddle のエラーがでるところの size を sz
に変えてやればコンパイルできます。



Yampa は以下の cabal でビルドしています。

afrp.cabal
-----------------------
Name:               afrp
Version:            0.4
License:            BSD3
License-File:       LICENSE
Copyright:          Henrik Nilsson, Antony Courtney and Yale University,
(c) 2003
Author:             Antony Courtney, Paul Hudak, Henrik Nilsson, John
Peterson
Maintainer:         Antony Courtney	<antony / apocalypse.org>, Paul
Hudak	<paul.hudak / yale.edu>, Henrik Nilsson	<nilsson / cs.yale.edu>, John
Peterson	<peterson-john / cs.yale.edu>
Stability:          provisional
Homepage:           http://www.haskell.org/yampa/
Synopsis:           Arrowised Functional Reactive Programming
Description:
Category:           Arrow
Tested-With:        GHC
hs-source-dir: src
ghc-options: -fglasgow-exts
Build-Depends:      base, lang, haskell98
Exposed-modules:
      AFRP,
      AFRPAffineSpace,
      AFRPDiagnostics,
      AFRPEvent,
      AFRPForceable,
      AFRPGeometry,
      AFRPInternals,
      AFRPMiscellany,
      AFRPMergeableRecord,
      AFRPPoint2,
      AFRPPoint3,
      AFRPTask,
      AFRPUtilities,
      AFRPVector2,
      AFRPVector3,
      AFRPVectorSpace
-----------------------

Setup.hs はいつもの定義で。
-----------------------
module Main (main) where

import Distribution.Simple

main :: IO ()
main = defaultMain
-----------------------


-- 
shelarcy <shelarcy capella.freemail.ne.jp>
http://page.freett.com/shelarcy/

--
ML: haskell-jp / quickml.com
使い方: http://QuickML.com/
------------8NMe1y7a3JWjW88kpgenSG
Content-Disposition: attachment; filename=afrp.diff
Content-Type: application/octet-stream; name=afrp.diff
Content-Transfer-Encoding: Base64

QmluYXJ5IGZpbGVzIGFmcnAtMC40Lm9yaWcvLkRTX1N0b3JlIGFuZCBhZnJwLTAu
NC8uRFNfU3RvcmUgZGlmZmVyCk9ubHkgaW4gYWZycC0wLjQvOiBTZXR1cC5ocwpP
bmx5IGluIGFmcnAtMC40LzogYWZwci5jYWJhbApCaW5hcnkgZmlsZXMgYWZycC0w
LjQub3JpZy9leGFtcGxlcy8uRFNfU3RvcmUgYW5kIGFmcnAtMC40L2V4YW1wbGVz
Ly5EU19TdG9yZSBkaWZmZXIKT25seSBpbiBhZnJwLTAuNC5vcmlnL2V4YW1wbGVz
L1NwYWNlSW52YWRlcnM6IC5EU19TdG9yZQpCaW5hcnkgZmlsZXMgYWZycC0wLjQu
b3JpZy9leGFtcGxlcy9TcGFjZUludmFkZXJzL3NyYy8uRFNfU3RvcmUgYW5kIGFm
cnAtMC40L2V4YW1wbGVzL1NwYWNlSW52YWRlcnMvc3JjLy5EU19TdG9yZSBkaWZm
ZXIKZGlmZiAtY3IgYWZycC0wLjQub3JpZy9leGFtcGxlcy9TcGFjZUludmFkZXJz
L3NyYy9BbmltYXRlLmhzIGFmcnAtMC40L2V4YW1wbGVzL1NwYWNlSW52YWRlcnMv
c3JjL0FuaW1hdGUuaHMKKioqIGFmcnAtMC40Lm9yaWcvZXhhbXBsZXMvU3BhY2VJ
bnZhZGVycy9zcmMvQW5pbWF0ZS5ocwkyMDA0LTAzLTIzIDA3OjQ4OjU1LjAwMDAw
MDAwMCArMDkwMAotLS0gYWZycC0wLjQvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9z
cmMvQW5pbWF0ZS5ocwkyMDA1LTA3LTMxIDEwOjM2OjQ2LjAwMDAwMDAwMCArMDkw
MAoqKioqKioqKioqKioqKioKKioqIDQwLDQ2ICoqKioKICAtLSAgICAgICAgICAg
ICAgIGdldFN5c1ZhciwgZ2V0UHJvY2Vzc1RpbWVzLCBlbGFwc2VkVGltZSkKICAt
LSBpbXBvcnQgQ29uY3VycmVudCAoeWllbGQpCiAgaW1wb3J0IElPRXh0cyAoSU9S
ZWYsIG5ld0lPUmVmLCByZWFkSU9SZWYsIHdyaXRlSU9SZWYpCiEgaW1wb3J0IHF1
YWxpZmllZCBHcmFwaGljcy5IR0wuVXRpbHMgYXMgSEdMCiAgCiAgaW1wb3J0IEFG
UlAKICBpbXBvcnQgQUZSUEludGVybmFscwktLSBCcmVha2luZyB0aGUgRXZlbnQg
YWJzdHJhY3Rpb24gYmFycmllciBoZXJlIQotLS0gNDAsNDYgLS0tLQogIC0tICAg
ICAgICAgICAgICAgZ2V0U3lzVmFyLCBnZXRQcm9jZXNzVGltZXMsIGVsYXBzZWRU
aW1lKQogIC0tIGltcG9ydCBDb25jdXJyZW50ICh5aWVsZCkKICBpbXBvcnQgSU9F
eHRzIChJT1JlZiwgbmV3SU9SZWYsIHJlYWRJT1JlZiwgd3JpdGVJT1JlZikKISBp
bXBvcnQgcXVhbGlmaWVkIEdyYXBoaWNzLkhHTCBhcyBIR0wKICAKICBpbXBvcnQg
QUZSUAogIGltcG9ydCBBRlJQSW50ZXJuYWxzCS0tIEJyZWFraW5nIHRoZSBFdmVu
dCBhYnN0cmFjdGlvbiBiYXJyaWVyIGhlcmUhCmRpZmYgLWNyIGFmcnAtMC40Lm9y
aWcvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9zcmMvQ29sb3JzLmhzIGFmcnAtMC40
L2V4YW1wbGVzL1NwYWNlSW52YWRlcnMvc3JjL0NvbG9ycy5ocwoqKiogYWZycC0w
LjQub3JpZy9leGFtcGxlcy9TcGFjZUludmFkZXJzL3NyYy9Db2xvcnMuaHMJMjAw
NC0wMy0yMyAwNzo0ODo1NS4wMDAwMDAwMDAgKzA5MDAKLS0tIGFmcnAtMC40L2V4
YW1wbGVzL1NwYWNlSW52YWRlcnMvc3JjL0NvbG9ycy5ocwkyMDA1LTA3LTMwIDE4
OjEwOjUwLjAwMDAwMDAwMCArMDkwMAoqKioqKioqKioqKioqKioKKioqIDE0LDIw
ICoqKioKICBtb2R1bGUgQ29sb3JzIChDb2xvciguLiksIFJHQiwgY29sb3JUYWJs
ZSkgd2hlcmUKICAKICBpbXBvcnQgQXJyYXkKISBpbXBvcnQgR3JhcGhpY3MuSEdM
LlV0aWxzIChSR0IoLi4pKQogIAogIAogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotLS0gMTQsMjAgLS0tLQogIG1vZHVsZSBDb2xvcnMgKENvbG9yKC4u
KSwgUkdCLCBjb2xvclRhYmxlKSB3aGVyZQogIAogIGltcG9ydCBBcnJheQohIGlt
cG9ydCBHcmFwaGljcy5IR0wuRHJhdy5UZXh0IChSR0IoLi4pKQogIAogIAogIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPbmx5IGluIGFmcnAtMC40L2V4
YW1wbGVzL1NwYWNlSW52YWRlcnMvc3JjOiBNYWluLmhzCk9ubHkgaW4gYWZycC0w
LjQvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9zcmM6IE9iamVjdEJlaGF2aW9yLmhz
CmRpZmYgLWNyIGFmcnAtMC40Lm9yaWcvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9z
cmMvUGFyc2VyLmhzIGFmcnAtMC40L2V4YW1wbGVzL1NwYWNlSW52YWRlcnMvc3Jj
L1BhcnNlci5ocwoqKiogYWZycC0wLjQub3JpZy9leGFtcGxlcy9TcGFjZUludmFk
ZXJzL3NyYy9QYXJzZXIuaHMJMjAwNC0wMy0yMyAwNzo0ODo1NS4wMDAwMDAwMDAg
KzA5MDAKLS0tIGFmcnAtMC40L2V4YW1wbGVzL1NwYWNlSW52YWRlcnMvc3JjL1Bh
cnNlci5ocwkyMDA1LTA3LTMxIDEwOjM3OjU0LjAwMDAwMDAwMCArMDkwMAoqKioq
KioqKioqKioqKioKKioqIDM1LDQxICoqKioKICApIHdoZXJlCiAgCiAgaW1wb3J0
IE1heWJlIChpc05vdGhpbmcsIGlzSnVzdCkKISBpbXBvcnQgcXVhbGlmaWVkIEdy
YXBoaWNzLkhHTC5VdGlscyBhcyBIR0wgKEV2ZW50KC4uKSkKICBpbXBvcnQgQ2hh
ciAob3JkLCBpc1NwYWNlLCBpc0RpZ2l0KQogIAogIGltcG9ydCBBRlJQCi0tLSAz
NSw0MSAtLS0tCiAgKSB3aGVyZQogIAogIGltcG9ydCBNYXliZSAoaXNOb3RoaW5n
LCBpc0p1c3QpCiEgaW1wb3J0IHF1YWxpZmllZCBHcmFwaGljcy5IR0wgYXMgSEdM
IChFdmVudCguLikpCiAgaW1wb3J0IENoYXIgKG9yZCwgaXNTcGFjZSwgaXNEaWdp
dCkKICAKICBpbXBvcnQgQUZSUApkaWZmIC1jciBhZnJwLTAuNC5vcmlnL2V4YW1w
bGVzL1NwYWNlSW52YWRlcnMvc3JjL1JlbmRlckxhbmRzY2FwZS5ocyBhZnJwLTAu
NC9leGFtcGxlcy9TcGFjZUludmFkZXJzL3NyYy9SZW5kZXJMYW5kc2NhcGUuaHMK
KioqIGFmcnAtMC40Lm9yaWcvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9zcmMvUmVu
ZGVyTGFuZHNjYXBlLmhzCTIwMDQtMDMtMjMgMDc6NDg6NTUuMDAwMDAwMDAwICsw
OTAwCi0tLSBhZnJwLTAuNC9leGFtcGxlcy9TcGFjZUludmFkZXJzL3NyYy9SZW5k
ZXJMYW5kc2NhcGUuaHMJMjAwNS0wNy0zMSAxMDozODo0Ni4wMDAwMDAwMDAgKzA5
MDAKKioqKioqKioqKioqKioqCioqKiAxNiwyMiAqKioqCiAgKSB3aGVyZQogIAog
IGltcG9ydCBBcnJheQohIGltcG9ydCBxdWFsaWZpZWQgR3JhcGhpY3MuSEdMLlV0
aWxzIGFzIEhHTAogIAogIGltcG9ydCBBRlJQUG9pbnQyIChQb2ludDIoLi4pKQog
IAotLS0gMTYsMjIgLS0tLQogICkgd2hlcmUKICAKICBpbXBvcnQgQXJyYXkKISBp
bXBvcnQgcXVhbGlmaWVkIEdyYXBoaWNzLkhHTCBhcyBIR0wKICAKICBpbXBvcnQg
QUZSUFBvaW50MiAoUG9pbnQyKC4uKSkKICAKZGlmZiAtY3IgYWZycC0wLjQub3Jp
Zy9leGFtcGxlcy9TcGFjZUludmFkZXJzL3NyYy9SZW5kZXJPYmplY3QuaHMgYWZy
cC0wLjQvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9zcmMvUmVuZGVyT2JqZWN0Lmhz
CioqKiBhZnJwLTAuNC5vcmlnL2V4YW1wbGVzL1NwYWNlSW52YWRlcnMvc3JjL1Jl
bmRlck9iamVjdC5ocwkyMDA0LTAzLTIzIDA3OjQ4OjU1LjAwMDAwMDAwMCArMDkw
MAotLS0gYWZycC0wLjQvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9zcmMvUmVuZGVy
T2JqZWN0LmhzCTIwMDUtMDctMzEgMTA6Mzg6MjguMDAwMDAwMDAwICswOTAwCioq
KioqKioqKioqKioqKgoqKiogMTYsMjIgKioqKgogICkgd2hlcmUKICAKICBpbXBv
cnQgQXJyYXkKISBpbXBvcnQgcXVhbGlmaWVkIEdyYXBoaWNzLkhHTC5VdGlscyBh
cyBIR0wKICBpbXBvcnQgQUZSUEdlb21ldHJ5CiAgCiAgaW1wb3J0IFBoeXNpY2Fs
RGltZW5zaW9ucwotLS0gMTYsMjIgLS0tLQogICkgd2hlcmUKICAKICBpbXBvcnQg
QXJyYXkKISBpbXBvcnQgcXVhbGlmaWVkIEdyYXBoaWNzLkhHTCBhcyBIR0wKICBp
bXBvcnQgQUZSUEdlb21ldHJ5CiAgCiAgaW1wb3J0IFBoeXNpY2FsRGltZW5zaW9u
cwpPbmx5IGluIGFmcnAtMC40L2V4YW1wbGVzL1NwYWNlSW52YWRlcnMvc3JjOiBT
aW1wbGVHdW4uaHMKZGlmZiAtY3IgYWZycC0wLjQub3JpZy9leGFtcGxlcy9TcGFj
ZUludmFkZXJzL3NyYy9Xb3JsZEdlb21ldHJ5LmhzIGFmcnAtMC40L2V4YW1wbGVz
L1NwYWNlSW52YWRlcnMvc3JjL1dvcmxkR2VvbWV0cnkuaHMKKioqIGFmcnAtMC40
Lm9yaWcvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9zcmMvV29ybGRHZW9tZXRyeS5o
cwkyMDA0LTAzLTIzIDA3OjQ4OjU1LjAwMDAwMDAwMCArMDkwMAotLS0gYWZycC0w
LjQvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9zcmMvV29ybGRHZW9tZXRyeS5ocwky
MDA1LTA3LTMxIDEwOjM3OjI0LjAwMDAwMDAwMCArMDkwMAoqKioqKioqKioqKioq
KioKKioqIDE2LDIyICoqKioKICAKICBpbXBvcnQgQUZSUFBvaW50MiAoUG9pbnQy
KC4uKSkKICBpbXBvcnQgUGh5c2ljYWxEaW1lbnNpb25zCiEgaW1wb3J0IHF1YWxp
ZmllZCBHcmFwaGljcy5IR0wuVXRpbHMgYXMgSEdMIChQb2ludCkKICAKICAKICAt
LSBFdmVyeXRoaW5nIGluIHRoZSB3b3JsZCBpcyBtZWFzdXJlZCBpbiBtZXRlcnMu
Ci0tLSAxNiwyMiAtLS0tCiAgCiAgaW1wb3J0IEFGUlBQb2ludDIgKFBvaW50Migu
LikpCiAgaW1wb3J0IFBoeXNpY2FsRGltZW5zaW9ucwohIGltcG9ydCBxdWFsaWZp
ZWQgR3JhcGhpY3MuSEdMIGFzIEhHTCAoUG9pbnQpCiAgCiAgCiAgLS0gRXZlcnl0
aGluZyBpbiB0aGUgd29ybGQgaXMgbWVhc3VyZWQgaW4gbWV0ZXJzLgpPbmx5IGlu
IGFmcnAtMC40Lm9yaWcvZXhhbXBsZXMvVGFpbGdhdGluZ0RldGVjdG9yOiAuRFNf
U3RvcmUKT25seSBpbiBhZnJwLTAuNC9leGFtcGxlcy9UYWlsZ2F0aW5nRGV0ZWN0
b3I6IFRhaWxnYXRpbmdEZXRlY3Rvci5ocwpPbmx5IGluIGFmcnAtMC40L2V4YW1w
bGVzL1RhaWxnYXRpbmdEZXRlY3RvcjogVGVzdFRHTWFpbi5ocwpPbmx5IGluIGFm
cnAtMC40L3NyYzogLkRTX1N0b3JlCmRpZmYgLWNyIGFmcnAtMC40Lm9yaWcvc3Jj
L0FGUlBVdGlsaXRpZXMuaHMgYWZycC0wLjQvc3JjL0FGUlBVdGlsaXRpZXMuaHMK
KioqIGFmcnAtMC40Lm9yaWcvc3JjL0FGUlBVdGlsaXRpZXMuaHMJMjAwNC0wMy0y
MyAwNzo0ODo1NS4wMDAwMDAwMDAgKzA5MDAKLS0tIGFmcnAtMC40L3NyYy9BRlJQ
VXRpbGl0aWVzLmhzCTIwMDUtMDktMDEgMTQ6NDY6MjcuMDAwMDAwMDAwICswOTAw
CioqKioqKioqKioqKioqKgoqKiogMzIsNDIgKioqKgogIAogIAogIG1vZHVsZSBB
RlJQVXRpbGl0aWVzICgKLSAtLSBHZW5lcmFsIGFycm93IHV0aWxpdGllcwotICAg
ICAoXj4+KSwJCS0tIDo6IEFycm93IGEgPT4gKGIgLT4gYykgLT4gYSBjIGQgLT4g
YSBiIGQKLSAgICAgKD4+XiksCQktLSA6OiBBcnJvdyBhID0+IGEgYiBjIC0+IChj
IC0+IGQpIC0+IGEgYiBkCi0gICAgIChePDwpLAkJLS0gOjogQXJyb3cgYSA9PiAo
YyAtPiBkKSAtPiBhIGIgYyAtPiBhIGIgZCAKLSAgICAgKDw8XiksCQktLSA6OiBB
cnJvdyBhID0+IGEgYyBkIC0+IChiIC0+IGMpIC0+IGEgYiBkCiAgCiAgLS0gTGlm
dGluZ3MKICAgICAgYXJyMiwJCS0tIDo6IEFycm93IGEgPT4gKGItPmMtPmQpIC0+
IGEgKGIsYykgZAotLS0gMzIsMzcgLS0tLQoqKioqKioqKioqKioqKioKKioqIDg5
LDExOCAqKioqCiAgaW1wb3J0IEFGUlBEaWFnbm9zdGljcwogIGltcG9ydCBBRlJQ
CiAgCi0gCi0gaW5maXhyIDEgXjw8LCBePj4KLSBpbmZpeGwgMSA8PF4sID4+Xgog
IGluZml4ciAwIGBmYnlgCiAgCiAgCi0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0gLS0gR2VuZXJhbCBhcnJvdyB1dGlsaXRpZXMKLSAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAKLSAoXj4+KSA6OiBBcnJvdyBhID0+IChi
IC0+IGMpIC0+IGEgYyBkIC0+IGEgYiBkCi0gZiBePj4gYSA9IGFyciBmID4+PiBh
Ci0gCi0gKD4+XikgOjogQXJyb3cgYSA9PiBhIGIgYyAtPiAoYyAtPiBkKSAtPiBh
IGIgZAotIGEgPj5eIGYgPSBhID4+PiBhcnIgZgotIAotIAotIChePDwpIDo6IEFy
cm93IGEgPT4gKGMgLT4gZCkgLT4gYSBiIGMgLT4gYSBiIGQgCi0gZiBePDwgYSA9
IGFyciBmIDw8PCBhCi0gCi0gCi0gKDw8XikgOjogQXJyb3cgYSA9PiBhIGMgZCAt
PiAoYiAtPiBjKSAtPiBhIGIgZAotIGEgPDxeIGYgPSBhIDw8PCBhcnIgZgotIAog
IAogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIC0tIExpZnRpbmdz
Ci0tLSA4NCw5MiAtLS0tCg
------------8NMe1y7a3JWjW88kpgenSG
Content-Disposition: attachment; filename=afrp.diff-complete
Content-Type: application/octet-stream; name=afrp.diff-complete
Content-Transfer-Encoding: Base64

QmluYXJ5IGZpbGVzIGFmcnAtMC40Lm9yaWcvLkRTX1N0b3JlIGFuZCBhZnJwLTAu
NC8uRFNfU3RvcmUgZGlmZmVyCmRpZmYgLWNyTiBhZnJwLTAuNC5vcmlnL1NldHVw
LmhzIGFmcnAtMC40L1NldHVwLmhzCioqKiBhZnJwLTAuNC5vcmlnL1NldHVwLmhz
CTE5NzAtMDEtMDEgMDk6MDA6MDAuMDAwMDAwMDAwICswOTAwCi0tLSBhZnJwLTAu
NC9TZXR1cC5ocwkyMDA1LTAyLTI3IDEwOjE1OjUzLjAwMDAwMDAwMCArMDkwMAoq
KioqKioqKioqKioqKioKKioqIDAgKioqKgotLS0gMSw4IC0tLS0KKyAKKyBtb2R1
bGUgTWFpbiAobWFpbikgd2hlcmUKKyAKKyBpbXBvcnQgRGlzdHJpYnV0aW9uLlNp
bXBsZQorIAorIG1haW4gOjogSU8gKCkKKyBtYWluID0gZGVmYXVsdE1haW4KKyAK
ZGlmZiAtY3JOIGFmcnAtMC40Lm9yaWcvYWZwci5jYWJhbCBhZnJwLTAuNC9hZnBy
LmNhYmFsCioqKiBhZnJwLTAuNC5vcmlnL2FmcHIuY2FiYWwJMTk3MC0wMS0wMSAw
OTowMDowMC4wMDAwMDAwMDAgKzA5MDAKLS0tIGFmcnAtMC40L2FmcHIuY2FiYWwJ
MjAwNS0wNy0xOSAxMjozNzowNy4wMDAwMDAwMDAgKzA5MDAKKioqKioqKioqKioq
KioqCioqKiAwICoqKioKLS0tIDEsMzUgLS0tLQorIE5hbWU6ICAgICAgICAgICAg
ICAgYWZycAorIFZlcnNpb246ICAgICAgICAgICAgMC40CisgTGljZW5zZTogICAg
ICAgICAgICBCU0QzCisgTGljZW5zZS1GaWxlOiAgICAgICBMSUNFTlNFCisgQ29w
eXJpZ2h0OiAgICAgICAgICBIZW5yaWsgTmlsc3NvbiwgQW50b255IENvdXJ0bmV5
IGFuZCBZYWxlIFVuaXZlcnNpdHksIChjKSAyMDAzCisgQXV0aG9yOiAgICAgICAg
ICAgICBBbnRvbnkgQ291cnRuZXksIFBhdWwgSHVkYWssIEhlbnJpayBOaWxzc29u
LCBKb2huIFBldGVyc29uCisgTWFpbnRhaW5lcjogICAgICAgICBBbnRvbnkgQ291
cnRuZXkJPGFudG9ueUBhcG9jYWx5cHNlLm9yZz4sIFBhdWwgSHVkYWsJPHBhdWwu
aHVkYWtAeWFsZS5lZHU+LCBIZW5yaWsgTmlsc3Nvbgk8bmlsc3NvbkBjcy55YWxl
LmVkdT4sIEpvaG4gUGV0ZXJzb24JPHBldGVyc29uLWpvaG5AY3MueWFsZS5lZHU+
CisgU3RhYmlsaXR5OiAgICAgICAgICBwcm92aXNpb25hbAorIEhvbWVwYWdlOiAg
ICAgICAgICAgaHR0cDovL3d3dy5oYXNrZWxsLm9yZy95YW1wYS8KKyBTeW5vcHNp
czogICAgICAgICAgIEFycm93aXNlZCBGdW5jdGlvbmFsIFJlYWN0aXZlIFByb2dy
YW1taW5nCisgRGVzY3JpcHRpb246CisgQ2F0ZWdvcnk6ICAgICAgICAgICBBcnJv
dworIFRlc3RlZC1XaXRoOiAgICAgICAgR0hDCisgaHMtc291cmNlLWRpcjogc3Jj
CisgZ2hjLW9wdGlvbnM6IC1mZ2xhc2dvdy1leHRzCisgQnVpbGQtRGVwZW5kczog
ICAgICBiYXNlLCBsYW5nLCBoYXNrZWxsOTgKKyBFeHBvc2VkLW1vZHVsZXM6Cisg
ICAgIEFGUlAsIAorICAgICBBRlJQQWZmaW5lU3BhY2UsIAorICAgICBBRlJQRGlh
Z25vc3RpY3MsCisgICAgIEFGUlBFdmVudCwKKyAgICAgQUZSUEZvcmNlYWJsZSwK
KyAgICAgQUZSUEdlb21ldHJ5LAorICAgICBBRlJQSW50ZXJuYWxzLAorICAgICBB
RlJQTWlzY2VsbGFueSwKKyAgICAgQUZSUE1lcmdlYWJsZVJlY29yZCwKKyAgICAg
QUZSUFBvaW50MiwKKyAgICAgQUZSUFBvaW50MywKKyAgICAgQUZSUFRhc2ssCisg
ICAgIEFGUlBVdGlsaXRpZXMsCisgICAgIEFGUlBWZWN0b3IyLAorICAgICBBRlJQ
VmVjdG9yMywKKyAgICAgQUZSUFZlY3RvclNwYWNlCisgCisgCkJpbmFyeSBmaWxl
cyBhZnJwLTAuNC5vcmlnL2V4YW1wbGVzLy5EU19TdG9yZSBhbmQgYWZycC0wLjQv
ZXhhbXBsZXMvLkRTX1N0b3JlIGRpZmZlcgpCaW5hcnkgZmlsZXMgYWZycC0wLjQu
b3JpZy9leGFtcGxlcy9TcGFjZUludmFkZXJzLy5EU19TdG9yZSBhbmQgYWZycC0w
LjQvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy8uRFNfU3RvcmUgZGlmZmVyCkJpbmFy
eSBmaWxlcyBhZnJwLTAuNC5vcmlnL2V4YW1wbGVzL1NwYWNlSW52YWRlcnMvc3Jj
Ly5EU19TdG9yZSBhbmQgYWZycC0wLjQvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9z
cmMvLkRTX1N0b3JlIGRpZmZlcgpkaWZmIC1jck4gYWZycC0wLjQub3JpZy9leGFt
cGxlcy9TcGFjZUludmFkZXJzL3NyYy9BbmltYXRlLmhzIGFmcnAtMC40L2V4YW1w
bGVzL1NwYWNlSW52YWRlcnMvc3JjL0FuaW1hdGUuaHMKKioqIGFmcnAtMC40Lm9y
aWcvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9zcmMvQW5pbWF0ZS5ocwkyMDA0LTAz
LTIzIDA3OjQ4OjU1LjAwMDAwMDAwMCArMDkwMAotLS0gYWZycC0wLjQvZXhhbXBs
ZXMvU3BhY2VJbnZhZGVycy9zcmMvQW5pbWF0ZS5ocwkyMDA1LTA3LTMxIDEwOjM2
OjQ2LjAwMDAwMDAwMCArMDkwMAoqKioqKioqKioqKioqKioKKioqIDQwLDQ2ICoq
KioKICAtLSAgICAgICAgICAgICAgIGdldFN5c1ZhciwgZ2V0UHJvY2Vzc1RpbWVz
LCBlbGFwc2VkVGltZSkKICAtLSBpbXBvcnQgQ29uY3VycmVudCAoeWllbGQpCiAg
aW1wb3J0IElPRXh0cyAoSU9SZWYsIG5ld0lPUmVmLCByZWFkSU9SZWYsIHdyaXRl
SU9SZWYpCiEgaW1wb3J0IHF1YWxpZmllZCBHcmFwaGljcy5IR0wuVXRpbHMgYXMg
SEdMCiAgCiAgaW1wb3J0IEFGUlAKICBpbXBvcnQgQUZSUEludGVybmFscwktLSBC
cmVha2luZyB0aGUgRXZlbnQgYWJzdHJhY3Rpb24gYmFycmllciBoZXJlIQotLS0g
NDAsNDYgLS0tLQogIC0tICAgICAgICAgICAgICAgZ2V0U3lzVmFyLCBnZXRQcm9j
ZXNzVGltZXMsIGVsYXBzZWRUaW1lKQogIC0tIGltcG9ydCBDb25jdXJyZW50ICh5
aWVsZCkKICBpbXBvcnQgSU9FeHRzIChJT1JlZiwgbmV3SU9SZWYsIHJlYWRJT1Jl
Ziwgd3JpdGVJT1JlZikKISBpbXBvcnQgcXVhbGlmaWVkIEdyYXBoaWNzLkhHTCBh
cyBIR0wKICAKICBpbXBvcnQgQUZSUAogIGltcG9ydCBBRlJQSW50ZXJuYWxzCS0t
IEJyZWFraW5nIHRoZSBFdmVudCBhYnN0cmFjdGlvbiBiYXJyaWVyIGhlcmUhCmRp
ZmYgLWNyTiBhZnJwLTAuNC5vcmlnL2V4YW1wbGVzL1NwYWNlSW52YWRlcnMvc3Jj
L0NvbG9ycy5ocyBhZnJwLTAuNC9leGFtcGxlcy9TcGFjZUludmFkZXJzL3NyYy9D
b2xvcnMuaHMKKioqIGFmcnAtMC40Lm9yaWcvZXhhbXBsZXMvU3BhY2VJbnZhZGVy
cy9zcmMvQ29sb3JzLmhzCTIwMDQtMDMtMjMgMDc6NDg6NTUuMDAwMDAwMDAwICsw
OTAwCi0tLSBhZnJwLTAuNC9leGFtcGxlcy9TcGFjZUludmFkZXJzL3NyYy9Db2xv
cnMuaHMJMjAwNS0wNy0zMCAxODoxMDo1MC4wMDAwMDAwMDAgKzA5MDAKKioqKioq
KioqKioqKioqCioqKiAxNCwyMCAqKioqCiAgbW9kdWxlIENvbG9ycyAoQ29sb3Io
Li4pLCBSR0IsIGNvbG9yVGFibGUpIHdoZXJlCiAgCiAgaW1wb3J0IEFycmF5CiEg
aW1wb3J0IEdyYXBoaWNzLkhHTC5VdGlscyAoUkdCKC4uKSkKICAKICAKICAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tIDE0LDIwIC0tLS0KICBtb2R1
bGUgQ29sb3JzIChDb2xvciguLiksIFJHQiwgY29sb3JUYWJsZSkgd2hlcmUKICAK
ICBpbXBvcnQgQXJyYXkKISBpbXBvcnQgR3JhcGhpY3MuSEdMLkRyYXcuVGV4dCAo
UkdCKC4uKSkKICAKICAKICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
ZGlmZiAtY3JOIGFmcnAtMC40Lm9yaWcvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9z
cmMvTWFpbi5ocyBhZnJwLTAuNC9leGFtcGxlcy9TcGFjZUludmFkZXJzL3NyYy9N
YWluLmhzCioqKiBhZnJwLTAuNC5vcmlnL2V4YW1wbGVzL1NwYWNlSW52YWRlcnMv
c3JjL01haW4uaHMJMTk3MC0wMS0wMSAwOTowMDowMC4wMDAwMDAwMDAgKzA5MDAK
LS0tIGFmcnAtMC40L2V4YW1wbGVzL1NwYWNlSW52YWRlcnMvc3JjL01haW4uaHMJ
MjAwNS0wNy0zMSAxMDozOTozMy4wMDAwMDAwMDAgKzA5MDAKKioqKioqKioqKioq
KioqCioqKiAwICoqKioKLS0tIDEsMjA3IC0tLS0KKyB7LSAkSWQ6IE1haW4uYXMs
diAxLjMgMjAwMy8xMS8xMyAyMDoxMTowMCBoZW5yaWsgRXhwICQKKyAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgSSBOIFYgQSBEIEUgUiBTICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqICAg
ICAgIE1vZHVsZToJCU1haW4JCQkJCQkgICAgICoKKyAqICAgICAgIFB1cnBvc2U6
CU1haW4gbW9kdWxlLgkJCQkJICAgICAqCisgKiAgICAgICBBdXRob3I6CQlIZW5y
aWsgTmlsc3NvbgkJCQkJICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqCisgKiAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIFlhbGUgVW5pdmVy
c2l0eSwgMjAwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisgLX0KKyAKKyBtb2R1bGUgTWFpbiB3aGVyZQorIAorIGltcG9y
dCBSYW5kb20KKyAKKyBpbXBvcnQgTWF5YmUgKGlzSnVzdCkKKyBpbXBvcnQgQXJy
YXkKKyAKKyBpbXBvcnQgQUZSUAorIGltcG9ydCBBRlJQSW50ZXJuYWxzIChFdmVu
dCguLikpCisgaW1wb3J0IEFGUlBHZW9tZXRyeQorIGltcG9ydCBBRlJQVXRpbGl0
aWVzCisgaW1wb3J0IHF1YWxpZmllZCBHcmFwaGljcy5IR0wgYXMgSEdMCisgCisg
LS0gVGVtcG9yYXJ5LCBqdXN0IHRvIG1ha2Ugc3VyZSBhbGwgbW9kdWxlcyBjb21w
aWxlLgorIGltcG9ydCBBbmltYXRlCisgaW1wb3J0IENvbG9yQmluZGluZ3MKKyBp
bXBvcnQgQ29sb3JzCisgaW1wb3J0IENvbW1hbmQKKyBpbXBvcnQgRGlhZ25vc3Rp
Y3MKKyBpbXBvcnQgSWRlbnRpdHlMaXN0CisgaW1wb3J0IE9iamVjdAorIGltcG9y
dCBPYmplY3RCZWhhdmlvcgorIGltcG9ydCBQYXJzZXIKKyBpbXBvcnQgUGh5c2lj
YWxEaW1lbnNpb25zCisgaW1wb3J0IFJlbmRlckxhbmRzY2FwZQorIGltcG9ydCBS
ZW5kZXJPYmplY3QKKyBpbXBvcnQgV29ybGRHZW9tZXRyeQorIAorIHR5cGUgU2Nv
cmUgPSBJbnQKKyAKKyBtYWluID0gZG8KKyAgICAgZyA8LSBuZXdTdGRHZW4KKyAg
ICAgYW5pbWF0ZSAyMCAiUyBQIEEgQyBFICAgSSBOIFYgQSBEIEUgUiBTIiB3b3Js
ZFNpemVYIHdvcmxkU2l6ZVkKKyAgICAgICAgICAgICAgICAoXChzY29yZSwgb29z
cykgLT4KKyAJCSAgICByZW5kZXJTY29yZSBzY29yZQorIAkJICAgIGBIR0wub3Zl
ckdyYXBoaWNgIHJlbmRlck9iamVjdHMgb29zcworIAkJICAgIGBIR0wub3Zlckdy
YXBoaWNgIGxhbmRzY2FwZSkKKyAgICAgICAgICAgICAgICAoXF8gLT4gW10pCisg
ICAgICAgICAgICAgICAgKHBhcnNlV2luSW5wdXQgPj4+IHJlc3RhcnRpbmdHYW1l
IGcpCisgCisgCisgLS0gQ2hhbmdlIG5hbWUgdG8gImdhbWUiPyBXaGF0J3Mgbm93
ICJnYW1lIiB3b3VsZCBiZWNvbWUgImdhbWVSb3VuZCIuCisgLS0gV2hhdCBhYm91
dCAiZ2FtZSciPworIHJlc3RhcnRpbmdHYW1lIDo6IFJhbmRvbUdlbiBnID0+IGcg
LT4gU0YgR2FtZUlucHV0IChJbnQsIFtPYnNPYmpTdGF0ZV0pCisgcmVzdGFydGlu
Z0dhbWUgZyA9IHJnQXV4IGcgbkFsaWVuczAgdnlkQWxpZW4wIDAKKyAgICAgd2hl
cmUKKyAJbkFsaWVuczAgPSAyCisgCXZ5ZEFsaWVuMCA9IC0xMAorIAorICAgICAg
ICAgcmdBdXggZyBuQWxpZW5zIHZ5ZEFsaWVuIHNjb3JlID0KKyAgICAgICAgICAg
ICBzd2l0Y2ggKGdhbWUgZycgbkFsaWVucyB2eWRBbGllbiBzY29yZSkgJCBcc3Rh
dHVzIC0+CisgICAgICAgICAgICAgY2FzZSBzdGF0dXMgb2YKKyAJCUxlZnQgc2Nv
cmUnIC0+IHJnQXV4IGcnJyAobkFsaWVucyArIDEpICh2eWRBbGllbiAtIDEwKSBz
Y29yZScKKyAgICAgICAgICAgICAgICAgUmlnaHQgZmluYWxTY29yZSAtPiByZ0F1
eCBnJycgbkFsaWVuczAgdnlkQWxpZW4wIDAKKyAJICAgIHdoZXJlCisgCSAgICAg
ICAgKGcnLCBnJycpID0gc3BsaXQgZworIAorIAorIC0tIEhvdyB0byBhcnJhbmdl
IGZvciBzcGxpdHRpbmcgb2YgZyBpbiBnZW5lcmFsIGlmIHdlIGhhdmUgc3Bhd25p
bmcgb2YgYWxpZW5zCisgLS0gImluc2lkZSIgdGhlIGdhbWU/IFRoZSBzcGF3bmVy
IHNob3VsZAorIC0tIGtlZXAgY29udHJvbCBvdmVyIHRoZSBzdXBwbHkgb2YgcmFu
ZG9tIGdlbmVyYXRvcnMuCisgCisgZ2FtZSA6OiBSYW5kb21HZW4gZyA9PiBnIC0+
IEludCAtPiBWZWxvY2l0eSAtPiBTY29yZSAtPgorIAlTRiBHYW1lSW5wdXQgKChJ
bnQsIFtPYnNPYmpTdGF0ZV0pLCBFdmVudCAoRWl0aGVyIFNjb3JlIFNjb3JlKSkK
KyBnYW1lIGcgbkFsaWVucyB2eWRBbGllbiBzY29yZTAgPSBwcm9jIGdpIC0+IGRv
CisgICAgIC0tIE9uZSBjb3VsZCBhcmd1ZSB0aGF0IGZlZWRpbmcgYmFjayBvbmx5
IHRoZSBPYnNPYmpTdGF0ZSBwYXJ0IHdvdWxkCisgICAgIC0tIG1ha2UgdGhpbmdz
IGEgbGl0dGxlIHNtb290aGVyLiBCdXQgcG9zc2libHkgc29tZXdoYXQgbGVzcyBn
ZW5lcmFsLgorICAgICAtLSBpUHJlIG5vdCBuZWVkZWQgaW4gdGhlIGZlZWRiYWNr
IHBhdGggYXMgbG9uZyBhcyBkcFN3aXRjaCBpcyB1c2VkLAorICAgICAtLSBidXQg
dGhlcmUgYXJlIG1hbnkgc2lkZSBjb25kaXRpb25zIHJlbGF0ZWQgdG8gdGhlIGdh
bWUuIEUuZy4KKyAgICAgLS0gdGhlIHBhcnRzIG9mIHRoZSBmZWQtYmFjayBvdXRw
dXQgdXNlZCBmb3IgaGl0IGRldGVjdGlvbiBub3QgZGVwZW5kaW5nCisgICAgIC0t
IG9uIHRoZSByZXN1bHQgb2YgdGhlIGhpdCBkZXRlY3Rpb24gYW5kIHNvIG9uLiBT
byBmb3Igcm9idXN0bmVzcywKKyAgICAgLS0gbWF5YmUgc2FmZXN0IHRvIGxlYXZl
IHRoZSBkZWxheSBpbi4KKyAgICAgLS0KKyAgICAgLS0gQlVUISBXZSBjYW5ub3Qg
aGF2ZSBCT1RIIGRwU3dpdGNoIGFuZCBpUHJlISBUaGF0IHdpbGwgY2F1c2UgZS5n
LgorICAgICAtLSBoaXR0aW5nIHNob3RzIHRvIGJlICJzZWVuIiB0d2ljZSwgZHVl
IHRvIGEgImRvdWJsZSBkZWxheSIsIGFuZAorICAgICAtLSB0aGF0IGluIHR1cm4g
d2lsbCBpbmZsaWN0IGRvdWJsZSBkYW1tYWdlLgorICAgICAtLQorICAgICAtLSBX
ZSBjb3VsZCBkbyBzY29yZSBrZWVwaW5nICppbiB0aGlzIGNhc2UqIGJ5IHNpbXBs
eSAqY29udGludXNvdWx5KgorICAgICAtLSBjb3VudGluZyB0aGUgbnVtYmVyIG9m
IGFsaWVucy4gVGhpcyBjb3VudCBjYW4gYmUgdXNlZCBib3RoIHRvIGRldGVjdAor
ICAgICAtLSBhIG5ldyByb3VuZCwgYW5kIGZvciBjb21wdXRpbmcgdGhlIHNjb3Jl
IGFzIG5BbGllbnMgLSBhbGllbkNvdW50LgorICAgICAtLSBCdXQgdGhpcyBkb2Vz
IG5vdCBleGFjdGx5IGludml0ZSB0byBtb3JlIGVsYWJvcmF0ZSBzY29yaW5nIHNj
aGVtZXMuCisgICAgIC0tIGl0IHdvdWxkIGFsc28gYmUgZGlmZmljdWx0IHRvIGhh
dmUgZGlmZmVyZW50IGtpbmRzIG9mIGFsaWVucyBvZgorICAgICAtLSB2YXJ5aW5n
IHZhbHVlLCBzaW5jZSB0aGUgbmF0dXJhbCB3YXkgdG8gZG8gdGhhdCBpcyB0byBs
b29rIGF0IHRoZQorICAgICAtLSBhY3R1YWwgb2JqZWN0IHRoYXQgaXMgYmVpbmcg
cmVtb3ZlZCBpbiBvcmRlciB0byBmaWd1cmUgb3V0IGl0cyB2YWx1ZSwKKyAgICAg
LS0gcmF0aGVyIHRoYW4gdHJ5aW5ndG8gZmlndXJlIG91dCBhIHNjb3JlIGluZGly
ZWN0bHkgdGhyb3VnaCB0aGUKKyAgICAgLS0gYWJzZW5jZSBvZiBvYmplY3RzIQor
ICAgICByZWMKKyAgICAgICAgIG9vcyAgPC0gZ2FtZScgb2JqczAgIC08IChnaSwg
b29zIHstIG9vc3AgLX0pCisgICAgICAgICB7LSBvb3NwIDwtIGlQcmUgZW1wdHlJ
TCAtPCBvb3MgLX0KKyAgICAgc2NvcmUgICAgPC0gYWNjdW1Ib2xkIHNjb3JlMCAt
PCBhbGllbnNEaWVkIG9vcworICAgICBnYW1lT3ZlciA8LSBlZGdlICAgICAgICAg
ICAgIC08IGFsaWVuTGFuZGVkIG9vcworICAgICBuZXdSb3VuZCA8LSBlZGdlICAg
ICAgICAgICAgIC08IG5vQWxpZW5zTGVmdCBvb3MKKyAgICAgcmV0dXJuQSAtPCAo
KHNjb3JlLCBtYXAgb29PYnNPYmpTdGF0ZSAoZWxlbXNJTCBvb3MpKSwKKyAJCShu
ZXdSb3VuZCBgdGFnYCAoTGVmdCBzY29yZSkpCisgCSAgICAgICAgYGxNZXJnZWAg
KGdhbWVPdmVyIGB0YWdgIChSaWdodCBzY29yZSkpKQorICAgICB3aGVyZQorIAlv
YmpzMCA9IGxpc3RUb0lMIChndW4gKFBvaW50MiAwIDUwKQorIAkJCSAgOiBta0Fs
aWVucyBnICh3b3JsZFhNaW4gKyBkKSA5MDAgbkFsaWVucykKKyAJZCAgICAgPSAo
d29ybGRYTWF4IC0gd29ybGRYTWluKSAvIGZyb21JbnRlZ3JhbCAobkFsaWVucyAr
IDEpCisgCQorIAlta0FsaWVucyBnIHggeSAwICAgICAgICAgPSBbXQorIAlta0Fs
aWVucyBnIHggeSBuIHwgbiA+IDAgPSBhbGllbiBnJyAoUG9pbnQyIHggeSkgdnlk
QWxpZW4KKyAJCQkJICAgOiBta0FsaWVucyBnJycgKHggKyBkKSB5IChuIC0gMSkK
KyAJICAgIHdoZXJlCisgCQkoZycsIGcnJykgPSBzcGxpdCBnCisgCisgCWFsaWVu
c0RpZWQgOjogSUwgT2JqT3V0cHV0IC0+IEV2ZW50IChTY29yZSAtPiBTY29yZSkK
KyAJYWxpZW5zRGllZCBvb3MgPQorIAkgICAgZm1hcCAoXGVzIC0+ICgrbGVuZ3Ro
IGVzKSkKKyAJICAgICAgICAgKGNhdEV2ZW50cyAobWFwIG9vS2lsbFJlcSAoZmlu
ZEFsbElMIGlzQWxpZW4nIG9vcykpKQorIAkgICAgd2hlcmUKKyAJCWlzQWxpZW4n
IChfLCBPYmpPdXRwdXQge29vT2JzT2JqU3RhdGUgPSBvb3N9KSA9IGlzQWxpZW4g
b29zCisgCisgCWFsaWVuTGFuZGVkIDo6IElMIE9iak91dHB1dCAtPiBCb29sCisg
CWFsaWVuTGFuZGVkIG9vcyA9IGlzSnVzdCAoZmluZElMIGlzTGFuZGVkIG9vcykK
KyAJICAgIHdoZXJlCisgCQlpc0xhbmRlZCAoXywgT2JqT3V0cHV0IHtvb09ic09i
alN0YXRlID0gb29zfSkgPQorIAkJICAgIGlzQWxpZW4gb29zICYmIHBvaW50Mlkg
KG9vc1BvcyBvb3MpIDw9IDAKKyAKKyAJbm9BbGllbnNMZWZ0IDo6IElMIE9iak91
dHB1dCAtPiBCb29sCisgCW5vQWxpZW5zTGVmdCBvb3MgPSBudWxsIChmaW5kQWxs
SUwgaXNBbGllbicgb29zKQorIAkgICAgd2hlcmUKKyAJCWlzQWxpZW4nIChfLCBP
YmpPdXRwdXQge29vT2JzT2JqU3RhdGUgPSBvb3N9KSA9IGlzQWxpZW4gb29zCisg
CisgCS0tIGRwU3dpdGNoIGZvciBub3cuIFRoaXMgbWFrZXMga2lsbC9zcGF3biBl
dmVudHMgb2JzZXJ2YWJsZSwKKyAJLS0gYW5kIGFsbG93cyBmZWVkYmFjayB3aXRo
b3V0IGlQcmUgKmluIHRoaXMgY2FzZSosIHNpbmNlIG9ubHkgdGhlCisgCS0tIHN3
aXRjaGluZyBkZXBlbmRzIG9uIHRoZSBmZWVkYmFjaywgYW5kIGhpdCBkZXRlY3Rp
b24gZG9lcyBub3QKKyAJLS0gZGVwZW5kIG9uIGFueSBwYXJ0IG9mIHRoZSBmZWQt
YmFjayBvdXRwdXQgdGhhdCBpbiB0dXJuIGRlcGVuZHMgb24KKyAJLS0gdGhlIGhp
dCBkZXRlY3Rpb24uIEJ1dCB0aGlzIGlzIGEgcmVhbGx5IGZyYWdpbGUgcHJvcGVy
dHkhCisgCS0tIE5vdCB0aGF0IG5vdFlldCBpcyBuZWVkZWQgcmVnYXJkbGVzcyBv
ZiB3aGV0aGVyIHBTd2ljdGNoIG9yCisgCS0tIGRwU3dpdGNoIGlzIHVzZWQuCisg
ey0KKyAJZ2FtZScgOjogSUwgT2JqZWN0IC0+IFNGIChHYW1lSW5wdXQsIElMIE9i
ak91dHB1dCkgKElMIE9iak91dHB1dCkKKyAJZ2FtZScgb2JqcyA9IGRwU3dpdGNo
IHJvdXRlCisgCQkJICAgICAgb2JqcworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChhcnIga2lsbE9yU3Bhd24gPj4+IG5vdFlldCkKKyAJCSAgICAgICAg
ICAgICAgKFxzZnMnIGYgLT4gZ2FtZScgKGYgc2ZzJykpCisgLX0KKyAJLS0gU2xp
Z2h0bHkgbW9yZSBlZmZpY2llbnQsIGFuZCBtYXliZSBjbGVhcmVyPworIAlnYW1l
JyA6OiBJTCBPYmplY3QgLT4gU0YgKEdhbWVJbnB1dCwgSUwgT2JqT3V0cHV0KSAo
SUwgT2JqT3V0cHV0KQorIAlnYW1lJyBvYmpzID0gZHBTd2l0Y2ggcm91dGUKKyAJ
CQkgICAgICBvYmpzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5v
RXZlbnQgLS0+IGFyciBraWxsT3JTcGF3bikKKyAJCSAgICAgICAgICAgICAgKFxz
ZnMnIGYgLT4gZ2FtZScgKGYgc2ZzJykpCisgCisgCisgICAgICAgICByb3V0ZSA6
OiAoR2FtZUlucHV0LCBJTCBPYmpPdXRwdXQpIC0+IElMIHNmIC0+IElMIChPYmpJ
bnB1dCwgc2YpCisgCXJvdXRlIChnaSxvb3MpIG9ianMgPSBtYXBJTCByb3V0ZUF1
eCBvYmpzCisgCQorIAkgICAgd2hlcmUKKyAJCXJvdXRlQXV4IChrLCBvYmopID0K
KyAJCSAgICAoT2JqSW5wdXQge29pSGl0ID0gaWYgayBgZWxlbWAgaHMKKyAJCQkJ
ICAgICAgIHRoZW4gRXZlbnQgKCkKKyAJCQkJICAgICAgIGVsc2Ugbm9FdmVudCwK
KyAJCQkgICAgICAgb2lHYW1lSW5wdXQgPSBnaX0sCisgCQkgICAgIG9iaikKKyAJ
CWhzID0gaGl0cyAoYXNzb2NzSUwgKGZtYXAgb29PYnNPYmpTdGF0ZSBvb3MpKQor
IAorIAorIAktLSBUaGlzIGNvdWxkIGJlIHJlZmluZWQgdG8gZnVsbC1mbGVkZ2Vk
IGNvbGxpc2lvbiBkZXRlY3Rpb24gd2l0aAorIAktLSBjb21wdXRhdGlvbiBvZiBw
cm9wZXIgaW1wdWxzZXMsIGFuZCBtZXJnaW5nIChhZGRpbmcpIG9mIG11bHRpcGxl
CisgCS0tIGltcHVsc2VzIGluZmx1ZW5jaW5nIGEgc2lnbmxlIG9iamVjdC4KKyAJ
aGl0cyA6OiBbKElMS2V5LCBPYnNPYmpTdGF0ZSldIC0+IFtJTEtleV0KKyAJaGl0
cyBrb29zcyA9IGNvbmNhdCAoaGl0c0F1eCBrb29zcykKKyAJICAgIHdoZXJlCisg
CQloaXRzQXV4IFtdID0gW10KKyAJCWhpdHNBdXggKChrLG9vcyk6a29vc3MpID0K
KyAJICAgICAgICAgICAgWyBbaywgayddIHwgKGsnLCBvb3MnKSA8LSBrb29zcywg
b29zIGBoaXRgIG9vcycgXQorIAkJICAgICsrIGhpdHNBdXgga29vc3MKKyAJCisg
CSAgICAgICAgb29zMSBgaGl0YCBvb3MyCisgCQkgICAgfCBpc01pc3NpbGUgb29z
MSAmJiBpc0FsaWVuIG9vczIKKyAJICAgICAgICAgICAgICB8fCBpc0FsaWVuIG9v
czEgJiYgaXNNaXNzaWxlIG9vczIgPSBvb3MxIGBjb2xsaWRpbmdgIG9vczIKKyAJ
CSAgICB8IG90aGVyd2lzZSA9IEZhbHNlCisgCQorIAlraWxsT3JTcGF3biA6OiAo
YSwgSUwgT2JqT3V0cHV0KSAtPiAoRXZlbnQgKElMIE9iamVjdCAtPiBJTCBPYmpl
Y3QpKQorICAgICAgICAga2lsbE9yU3Bhd24gKF8sIG9vcykgPQorICAgICAgICAg
ICAgIGZvbGRsIChtZXJnZUJ5ICguKSkgbm9FdmVudCBlcworICAgICAgICAgICAg
IHdoZXJlCisgCSAgICAgICAgZXMgOjogW0V2ZW50IChJTCBPYmplY3QgLT4gSUwg
T2JqZWN0KV0KKyAgICAgICAgICAgICAgICAgZXMgPSBbIG1lcmdlQnkgKC4pCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvb0tpbGxSZXEgb28gYHRh
Z2AgKGRlbGV0ZUlMIGspKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoZm1hcCAoZm9sZGwgKC4pIGlkIC4gbWFwIGluc2VydElMXykKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9vU3Bhd25SZXEgb28pKQor
ICAgICAgICAgICAgICAgICAgICAgIHwgKGssb28pIDwtIGFzc29jc0lMIG9vcyBd
CisgCisgCisgcmVuZGVyU2NvcmUgOjogU2NvcmUgLT4gSEdMLkdyYXBoaWMKKyBy
ZW5kZXJTY29yZSBzY29yZSA9IAorICAgICBIR0wud2l0aFRleHRDb2xvciAoY29s
b3JUYWJsZSAhIFdoaXRlKSAkCisgICAgIEhHTC53aXRoVGV4dEFsaWdubWVudCAo
SEdMLkxlZnQnLCBIR0wuVG9wKSAkCisgICAgIEhHTC50ZXh0IGdwIChzaG93IHNj
b3JlKQorICAgICB3aGVyZQorIAlncCA9IHBvc2l0aW9uMlRvR1BvaW50IChQb2lu
dDIgd29ybGRYTWluIHdvcmxkWU1heCkKZGlmZiAtY3JOIGFmcnAtMC40Lm9yaWcv
ZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9zcmMvT2JqZWN0QmVoYXZpb3IuaHMgYWZy
cC0wLjQvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9zcmMvT2JqZWN0QmVoYXZpb3Iu
aHMKKioqIGFmcnAtMC40Lm9yaWcvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9zcmMv
T2JqZWN0QmVoYXZpb3IuaHMJMTk3MC0wMS0wMSAwOTowMDowMC4wMDAwMDAwMDAg
KzA5MDAKLS0tIGFmcnAtMC40L2V4YW1wbGVzL1NwYWNlSW52YWRlcnMvc3JjL09i
amVjdEJlaGF2aW9yLmhzCTIwMDQtMDMtMjMgMDc6NDg6NTUuMDAwMDAwMDAwICsw
OTAwCioqKioqKioqKioqKioqKgoqKiogMCAqKioqCi0tLSAxLDI1NCAtLS0tCisg
ey0gJElkOiBPYmplY3RCZWhhdmlvci5hcyx2IDEuMiAyMDAzLzExLzEwIDIxOjI4
OjU4IGFudG9ueSBFeHAgJAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJIE4gViBBIEQgRSBS
IFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKgorICogICAgICAgTW9kdWxlOgkJT2JqZWN0QmVo
YXZpb3IJCQkJCSAgICAgKgorICogICAgICAgUHVycG9zZToJQmVoYXZpb3Igb2Yg
b2JqZWN0cy4JCQkJICAgICAqCisgKiAgICAgICBBdXRob3I6CQlIZW5yaWsgTmls
c3NvbgkJCQkJICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
CisgKiAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIFlhbGUgVW5pdmVyc2l0eSwg
MjAwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisgLX0KKyAKKyBtb2R1bGUgT2JqZWN0QmVoYXZpb3IgKAorICAgICBndW4s
CS0tIDo6IFBvc2l0aW9uMiAtPiBPYmplY3QKKyAgICAgbWlzc2lsZSwgCS0tIDo6
IFBvc2l0aW9uMiAtPiBWZWxvY2l0eTIgLT4gT2JqZWN0CisgICAgIGFsaWVuIAkt
LSA6OiBSYW5kb21HZW4gZyA9PiBnIC0+IFBvc2l0aW9uMiAtPiBPYmplY3QKKyAp
IHdoZXJlCisgCisgaW1wb3J0IHF1YWxpZmllZCBSYW5kb20KKyAKKyBpbXBvcnQg
QUZSUAorIGltcG9ydCBBRlJQVXRpbGl0aWVzCisgaW1wb3J0IEFGUlBHZW9tZXRy
eQorIAorIGltcG9ydCBQaHlzaWNhbERpbWVuc2lvbnMKKyBpbXBvcnQgV29ybGRH
ZW9tZXRyeQorIGltcG9ydCBQYXJzZXIKKyBpbXBvcnQgT2JqZWN0CisgCisgCisg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgLS0gR3VuCisgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisgZ3VuIDo6IFBvc2l0aW9uMiAt
PiBPYmplY3QKKyBndW4gKFBvaW50MiB4MCB5MCkgPSBwcm9jIChPYmpJbnB1dCB7
b2lHYW1lSW5wdXQgPSBnaX0pIC0+IGRvCisgICAgIC0tIFBvc2l0aW9uLgorICAg
ICAoUG9pbnQyIHhkIF8pIDwtIHB0clBvcyAtPCBnaQkJLS0gRGVzaXJlZCBwb3Np
dGlvbgorICAgICByZWMKKyAgICAgICAgIC0tIENvbnRyb2xsZXIuCisgICAgICAg
ICBsZXQgYWQgPSAxMCAqICh4ZCAtIHgpIC0gNSAqIHYJCS0tIERlc2lyZWQgYWNj
ZWxlcmF0aW9uCisgCisgICAgICAgICAtLSBQaHlzaWNzIHdpdGggaGFyZCBsaW1p
dHMgb24gYWNjZWxlcmF0aW9uIGFuZCBzcGVlZC4KKyAgICAgICAgIHYgPC0gaW50
ZWdyYWwgLTwgbGV0IGEgPSBzeW1MaW1pdCBndW5BY2NNYXggYWQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4KKyAJCQkgICAgIGlmICgtZ3VuU3BlZWRNYXgp
IDw9IHYgJiYgdiA8PSBndW5TcGVlZE1heAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfHwgdiA8ICgtZ3VuU3BlZWRNYXgpICYmIGEgPiAwCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCB2ID4gZ3VuU3BlZWRNYXgg
JiYgYSA8IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gYQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAwCisgICAgICAgICB4
IDwtICh4MCspIF48PCBpbnRlZ3JhbCAtPCB2CisgCisgICAgIC0tIEZpcmUgbWVj
aGFuaXNtIGFuZCBhbW11bml0aW9uIGxldmVsLgorICAgICB0cmlnZ2VyICAgICAg
IDwtIGxicCAgICAgICAgICAgICAtPCBnaQorICAgICAobGV2ZWwsIGZpcmUpIDwt
IG1hZ2F6aW5lIDIwIDAuNSAtPCB0cmlnZ2VyCisgCisgICAgIHJldHVybkEgLTwg
T2JqT3V0cHV0IHsKKyAJICAgICAgICAgICBvb09ic09ialN0YXRlID0gb29zR3Vu
IChQb2ludDIgeCB5MCkgKHZlY3RvcjIgdiAwKSBsZXZlbCwKKyAJCSAgIG9vS2ls
bFJlcSAgICAgPSBub0V2ZW50LAorICAgICAgICAgICAgICAgICAgICBvb1NwYXdu
UmVxICAgID0KKyAgICAgICAgICAgICAgICAgICAgICAgIGZpcmUgYHRhZ2AgW21p
c3NpbGUgKFBvaW50MiB4ICh5MCArIChndW5IZWlnaHQvMikpKSAKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvcjIgdiBt
aXNzaWxlSW5pdGlhbFNwZWVkKV0KKyAgICAgICAgICAgICAgICB9CisgCisgCisg
LS0gQW1tdW5pdGlvbiBtYWdhemluZS4gUmVsb2FkZWQgdXAgdG8gbWF4aW1hbAor
IC0tIGNhcGFjaXR5IGF0IGNvbnN0YW50IHJhdGUuCisgLS0gbiAuLi4gTWF4aW1h
bCBhbmQgaW5pdGlhbCBudW1iZXIgb2YgbWlzc2lsZXMuCisgLS0gZiAuLi4uLi4u
Li4uCVJlbG9hZCByYXRlLgorIC0tIGlucHV0IC4uLi4uLglUcmlnZ2VyLgorIC0t
IG91dHB1dCAuLi4uLglUdXBsZToKKyAtLSAgICMxOiBDdXJyZW50IG51bWJlciBv
ZiBtaXNzaWxlcyBpbiBtYWdhemluZS4KKyAtLSAgICMyOiBNaXNzaWxlIGZpcmVk
IGV2ZW50LgorIG1hZ2F6aW5lIDo6IAorICAgSW50IC0+IEZyZXF1ZW5jeSAKKyAg
ICAgICAtPiBTRiAoRXZlbnQgKCkpIChJbnQsIEV2ZW50ICgpKQorIG1hZ2F6aW5l
IG4gZiA9IHByb2MgdHJpZ2dlciAtPiBkbworICAgcmVsb2FkIDwtIHJlcGVhdGVk
bHkgKDEvZikgKCkgLTwgKCkKKyAgIChsZXZlbCxjYW5GaXJlKSAKKyAgICAgICA8
LSBhY2N1bUhvbGQgKG4sVHJ1ZSkgLTwgCisgICAgICAgICAgICAgICh0cmlnZ2Vy
IGB0YWdgIGRlYykKKyAgICAgICAgICAgICAgYGxNZXJnZWAgKHJlbG9hZCBgdGFn
YCBpbmMpCisgICByZXR1cm5BIC08IChsZXZlbCwgCisgCSAgICAgIHRyaWdnZXIg
YGdhdGVgIGNhbkZpcmUpCisgICB3aGVyZQorICAgICBpbmMgOjogKEludCxCb29s
KSAtPiAoSW50LCBCb29sKQorICAgICBpbmMgKGwsXykgfCBsIDwgbiA9IChsICsg
MSwgbCA+IDApCisgICAgICAgICAgICAgICB8IG90aGVyd2lzZSA9IChsLCBUcnVl
KQorICAgICBkZWMgOjogKEludCxCb29sKSAtPiAoSW50LCBCb29sKQorICAgICBk
ZWMgKGwsXykgfCBsID4gMCA9IChsIC0gMSwgVHJ1ZSkKKyAgICAgICAgICAgICAg
IHwgb3RoZXJ3aXNlID0gKGwsIEZhbHNlKQorIAorIC0tIEFtbXVuaXRpb24gbWFn
YXppbmUuIFJlbG9hZGVkIHVwIHRvIG1heGltYWwgY2FwYWNpdHkgYXQgY29uc3Rh
bnQgcmF0ZS4KKyAtLSBuIC4uLi4uLi4uLi4JTWF4aW1hbCBhbmQgaW5pdGlhbCBu
dW1iZXIgb2YgbWlzc2lsZXMuCisgLS0gZiAuLi4uLi4uLi4uCVJlbG9hZCByYXRl
LgorIC0tIGlucHV0IC4uLi4uLglUcmlnZ2VyLgorIC0tIG91dHB1dCAuLi4uLglU
dXBsZToKKyAtLQkJIzEgLi4uLglDdXJyZW50IG51bWJlciBvZiBtaXNzaWxlcyBp
biBtYWdhemluZS4KKyAtLQkJIzIgLi4uLglNaXNzaWxlIGZpcmVkLgorIAorIHst
CisgIEhlbnJpaydzIG9yaWdpbmFsIHZlcnNpb24sIGNvbW1lbnRlZCBvdXQgZm9y
IG5vdzoKKyAKKyBtYWdhemluZSA6OiBJbnQgLT4gRnJlcXVlbmN5IC0+IFNGIChF
dmVudCAoKSkgKEludCwgRXZlbnQgKCkpCisgbWFnYXppbmUgbiBmID0gcHJvYyB0
cmlnZ2VyIC0+IGRvCisgICAgIHJlbG9hZCAgICAgICA8LSByZXBlYXRlZGx5ICgx
L2YpICgpICAgICAgLTwgKCkKKyAgICAgLS0gV2UgaGF2ZSBhIHJldmVyc2UgYXBw
bGljYXRpb24gb3BlcmF0b3IgIywgYnV0IGZvciBzb21lIHJlYXNvbiBhcnJvd3AK
KyAgICAgLS0gY2hva2VzIG9uICgjKS4KKyAgICAgbmV3TGV2ZWxGaXJlIDwtIGFj
Y3VtRmlsdGVyIChmbGlwICgkKSkgbiAtPCAodHJpZ2dlciBgdGFnYCBkZWMpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YGxNZXJnZWAgKHJlbG9hZCBgdGFnYCBpbmMpCisgICAgIGxldmVsICAgICAgICA8
LSBob2xkIG4gICAgICAgICAgICAgIC08IGZtYXAgZnN0IG5ld0xldmVsRmlyZQor
ICAgICByZXR1cm5BIC08IChsZXZlbCwgZmlsdGVyRSBzbmQgbmV3TGV2ZWxGaXJl
IGB0YWdgICgpKQorICAgICB3aGVyZQorIAktLSBpbmMsIGRlYyA6OiBJbnQgLT4g
KEludCwgTWF5YmUgKEludCwgQm9vbCkpCisgCWluYyBsIHwgbCA8IG4gICAgID0g
KGwgKyAxLCBKdXN0IChsICsgMSwgRmFsc2UpKQorICAgICAgICAgICAgICAgfCBv
dGhlcndpc2UgPSAobCwgTm90aGluZykKKyAgICAgICAgIGRlYyBsIHwgbCA+IDAg
ICAgID0gKGwgLSAxLCBKdXN0IChsIC0gMSwgVHJ1ZSkpCisgICAgICAgICAgICAg
ICB8IG90aGVyd2lzZSA9IChsLCBOb3RoaW5nKQorIAorIC19CisgCisgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgLS0gTWlzc2lsZQorIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorIC0tIE9mIGNvdXJzZSwgdGhpcyB3
b3VsZCBiZSBtdWNoIGJldHRlciBpZiB3ZSB1c2VkIHRoZSByZWFsIGltcHVsc2Ug
c3R1ZmY6CisgLS0gTm8gYm9ndXMgaVByZSwgZm9yIGluc3RhbmNlLgorIG1pc3Np
bGUgOjogUG9zaXRpb24yIC0+IFZlbG9jaXR5MiAtPiBPYmplY3QKKyBtaXNzaWxl
IHAwIHYwID0gcHJvYyBvaSAtPiBkbworICAgICByZWMKKyAgICAgICAgIC0tIEJh
c2ljIHBoeXNpY3MKKyAgICAgICAgIHZwICA8LSBpUHJlIHYwICAgICAgICAgICAg
ICAgICAgICAgLTwgdgorICAgICAgICAgZmZpIDwtIGZvcmNlRmllbGQgICAgICAg
ICAgICAgICAgICAtPCAocCwgdnApCisgICAgICAgICB2ICA8LSAodjAgXiteKSBe
PDwgaW1wdWxzZUludGVncmFsIC08IChncmF2aXR5LCBmZmkpCisgCXAgIDwtIChw
MCAuK14pIF48PCBpbnRlZ3JhbCAgICAgICAgLTwgdgorICAgICBkaWUgPC0gYWZ0
ZXIgbWlzc2lsZUxpZmVTcGFuICgpIC08ICgpCisgICAgIHJldHVybkEgLTwgT2Jq
T3V0cHV0IHsKKyAJICAgICAgICAgICBvb09ic09ialN0YXRlID0gb29zTWlzc2ls
ZSBwIHYsCisgCQkgICBvb0tpbGxSZXEgICAgID0gb2lIaXQgb2kgYGxNZXJnZWAg
ZGllLAorICAgICAgICAgICAgICAgICAgICBvb1NwYXduUmVxICAgID0gbm9FdmVu
dAorICAgICAgICAgICAgICAgIH0KKyAKKyAKKyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyAtLSBBbGllbgorIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorIAorIHR5cGUgU2hpZWxkTGV2ZWwgPSBEb3VibGUKKyAKKyAKKyAt
LSBBbGllbiBiZWhhdmlvci4KKyAtLSBnIC4uLi4uLi4uLi4JUmFuZG9tIGdlbmVy
YXRvci4KKyAtLSBwMCAuLi4uLi4uLi4JSW5pdGlhbCBwb3NpdGlvbi4KKyAtLSB2
eWQgLi4uLi4uLi4gRGVzaXJlZCB2ZXJ0aWNhbCBzcGVlZC4KKyAKKyBhbGllbiA6
OiBSYW5kb21HZW4gZyA9PiBnIC0+IFBvc2l0aW9uMiAtPiBWZWxvY2l0eSAtPiBP
YmplY3QKKyBhbGllbiBnIHAwIHZ5ZCA9IHByb2Mgb2kgLT4gZG8KKyAgICAgcmVj
CisgCS0tIFBpY2sgYSBkZXNpcmVkIGhvcml6b250YWwgcG9zaXRpb24uCisgICAg
ICAgICByeCAgICAgPC0gbm9pc2VSICh3b3JsZFhNaW4sIHdvcmxkWE1heCkgZyAt
PCAoKSAKKyAgICAgICAgIHNhbXBsZSA8LSBvY2Nhc2lvbmFsbHkgZyA1ICgpICAg
ICAgICAgICAgIC08ICgpCisgICAgICAgICB4ZCAgICAgPC0gaG9sZCAocG9pbnQy
WCBwMCkgICAgICAgICAgICAgICAtPCBzYW1wbGUgYHRhZ2AgcnggICAgCisgCQor
ICAgICAgICAgLS0gQ29udHJvbGxlci4gQ29udHJvbCBjb25zdGFudHMgbm90IG9w
dGltaXplZC4gV2hvIHNheXMgYWxpZW5zIGtub3cKKyAJLS0gYW55dGhpbmcgYWJv
dXQgY29udHJvbCB0aGVvcnk/CisgICAgICAgICBsZXQgYXhkID0gNSAqICh4ZCAt
IHBvaW50MlggcCkgLSAzICogKHZlY3RvcjJYIHYpCisgCSAgICBheWQgPSAyMCAq
ICh2eWQgLSAodmVjdG9yMlkgdikpCisgCSAgICBhZCAgPSB2ZWN0b3IyIGF4ZCBh
eWQKKyAJICAgIGggICA9IHZlY3RvcjJUaGV0YSBhZAorIAorIAktLSBQaHlzaWNz
CisgCWxldCBhID0gdmVjdG9yMlBvbGFyIChtaW4gYWxpZW5BY2NNYXggKHZlY3Rv
cjJSaG8gYWQpKSBoCisgICAgICAgICB2cCAgPC0gaVByZSB2MCAgICAgICAgICAg
ICAgICAgICAgICAtPCB2CisgICAgICAgICBmZmkgPC0gZm9yY2VGaWVsZCAgICAg
ICAgICAgICAgICAgICAtPCAocCwgdnApCisgICAgICAgICB2ICAgPC0gKHYwIF4r
XikgXjw8IGltcHVsc2VJbnRlZ3JhbCAtPCAoZ3Jhdml0eSBeK14gYSwgZmZpKQor
IAlwICAgPC0gKHAwIC4rXikgXjw8IGludGVncmFsICAgICAgICAtPCB2CisgCisg
CS0tIFNoaWVsZHMKKyAJc2wgIDwtIHNoaWVsZCAtPCBvaUhpdCBvaQorIAlkaWUg
PC0gZWRnZSAgIC08IHNsIDw9IDAKKyAKKyAgICAgcmV0dXJuQSAtPCBPYmpPdXRw
dXQgeworIAkgICAgICAgICAgIG9vT2JzT2JqU3RhdGUgPSBvb3NBbGllbiBwIGgg
diwKKyAJCSAgIG9vS2lsbFJlcSAgICAgPSBkaWUsCisgICAgICAgICAgICAgICAg
ICAgIG9vU3Bhd25SZXEgICAgPSBub0V2ZW50CisgICAgICAgICAgICAgICAgfQor
ICAgICB3aGVyZQorIAl2MCA9IHplcm9WZWN0b3IKKyAKKyAKKyBzaGllbGQgOjog
U0YgKEV2ZW50ICgpKSBTaGllbGRMZXZlbAorIHNoaWVsZCA9IHByb2MgaGl0IC0+
IGRvCisgICAgIHJlYworIAlsZXQgcmVjaGFyZ2VSYXRlID0gaWYgc2wgPCBzbE1h
eCB0aGVuIHNsTWF4IC8gMTAgZWxzZSAwCisgICAgICAgICBzbCA8LSAoc2xNYXgg
KykgXjw8IGltcHVsc2VJbnRlZ3JhbCAtPCAocmVjaGFyZ2VSYXRlLCBoaXQgYHRh
Z2AgZGFtYWdlKQorICAgICByZXR1cm5BIC08IHNsCisgICAgIHdoZXJlCisgICAg
ICAgICBzbE1heCAgPSAxMDAKKyAgICAgICAgIGRhbWFnZSA9IC01MAorIAorIAor
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIC0tIEZvcmNlIGZpZWxk
cyBhY3Rpbmcgb24gb2JqZWN0cworIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorIAorIC0tIE9iamVjdCBhcmUgc3ViamVjdCB0byBncmF2aXR5IGFuZCBh
IHN0cmFuZ2UgcmVwZWxsZW50IGZvcmNlZmllbGQgdGhhdAorIC0tIGRyaXZlcyBv
YmplY3RzIGF3YXkgZnJvbSB0aGUgZWRnZXMsIGVmZmVjdGl2ZWx5IGNyZWF0aW5n
IGEgY29ycmlkb3IuCisgLS0gVGhlIHN0cmFuZ2UgZmllbGQgaXMgaW52ZXJzZWx5
IHByb3BvcnRpb25hbCB0byB0aGUgY3ViZSBvZiB0aGUgZGlzdGFuY2UKKyAtLSBm
cm9tIGVpdGhlciBlZGdlLiBJdCBpcyB0aG91Z2h0IHRoYXQgdGhlIGZpZWxkIGlz
IGEgcmVtbmFudCBvZiBhIGRlZmVuY2UKKyAtLSBzeXN0ZW0gcHV0IGluIHBsYWNl
IGJ5IHRoZSBteXRoaWNhbCBhbmQgdGVjaG5vbG9naWNhbGx5IGFkdmFuY2VkCisg
LS0gIlByZWRlY2Vzc29ycyIgZW9ucyBhZ28uCisgCisgey0KKyBmaWVsZCA6OiBQ
b3NpdGlvbjIgLT4gQWNjZWxlcmF0aW9uMgorIGZpZWxkIChQb2ludDIgeCBfKSA9
IHZlY3RvcjIgKGxlZnRBY2MgLSByaWdodEFjYykgMCBeK14gZ3Jhdml0eQorICAg
ICB3aGVyZQorIAlsZWZ0QWNjICA9IG1pbiAoaWYgeCA+IHdvcmxkWE1pbgorICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoZW4gayAvICh4IC0gd29ybGRYTWluKV4z
CisgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBtYXhBY2MpCisgICAgICAg
ICAgICAgICAgICAgICAgICBtYXhBY2MKKyAJcmlnaHRBY2MgPSBtaW4gKGlmIHgg
PCB3b3JsZFhNYXgKKyAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIGsgLyAo
d29ybGRYTWF4IC0geCleMworICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ug
bWF4QWNjKQorICAgICAgICAgICAgICAgICAgICAgICAgbWF4QWNjCisgICAgICAg
ICBrICAgICAgICA9IDEwMDAwMDAwCisgICAgICAgICBtYXhBY2MgICA9IDEwMDAw
CisgLX0KKyAKKyAtLSBOZXcgYXR0ZW1wdC4gRm9yY2UgZmllbGRzIGFjdCBsaWtl
IGludmlzaWJsZSB3YWxscy4KKyAtLSBUaGUgZmFjdCB0aGF0IHRoaXMgaXMgYSBz
dGF0ZWZ1bCAqc2lnbmFsKiBmdW5jdGlvbiAoRmllbGRzIGhhdmluZyBzdGF0ZT8K
KyAtLSBDb21lIG9uIC4uLiksIGNhbiBiZSBhdHRyaWJ1dGVkIHRvIHRoZSBmYWN0
IHRoYXQgd2UgYXJlIGNoZWF0aW5nIGluIHRoZQorIC0tIGZpcnN0IHBsYWNlIGJ5
IGFic3RyYWN0aW5nIGV2ZW50cyBvZiBzaG9ydCBkdXJhdGlvbiB0byBpbnN0YW50
YW5lb3VzCisgLS0gZXZlbnRzLiAiZmllbGQiIGJlaW5nIGEgc3RhdGVmdWwgc2ln
bmFsIGZ1bmN0aW8gaXMgcGFydCBvZiB0aGUgcHJpY2UKKyAtLSBvbmUgaGF2ZSB0
byBwYXkgZm9yIHRoYXQgdG8gbWFrZSB0aGlzIHdvcmsgaW4gcHJhY3RpY2UuCisg
CisgZm9yY2VGaWVsZCA6OiBTRiAoUG9zaXRpb24yLCBWZWxvY2l0eTIpIChFdmVu
dCBBY2NlbGVyYXRpb24yKQorIGZvcmNlRmllbGQgPSBwcm9jIChwLCB2KSAtPiBk
bworICAgICBsZmkgICAgPC0gZWRnZSAgICAtPCBwb2ludDJYIHAgPCB3b3JsZFhN
aW4gJiYgdmVjdG9yMlggdiA8IDAKKyAgICAgcmZpICAgIDwtIGVkZ2UgICAgLTwg
cG9pbnQyWCBwID4gd29ybGRYTWF4ICYmIHZlY3RvcjJYIHYgPiAwCisgICAgIHJl
dHVybkEgLTwgKG1lcmdlQnkgKF4rXikgKGxmaSBgdGFnYCAodmVjdG9yMiAoLTIg
KiB2ZWN0b3IyWCB2KSAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAocmZpIGB0YWdgICh2ZWN0b3IyICgtMiAqIHZlY3RvcjJYIHYpIDApKSkKKyAK
KyAKKyBncmF2aXR5ID0gdmVjdG9yMiAwICgtMjApCisgCisgCisgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgLS0gU3VwcG9ydAorIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorIAorIGxpbWl0IGxsIHVsIHggPSBpZiB4IDwg
bGwgdGhlbiBsbCBlbHNlIGlmIHggPiB1bCB0aGVuIHVsIGVsc2UgeAorIAorIHN5
bUxpbWl0IGwgPSBsZXQgYWJzbCA9IGFicyBsIGluIGxpbWl0ICgtYWJzbCkgYWJz
bApkaWZmIC1jck4gYWZycC0wLjQub3JpZy9leGFtcGxlcy9TcGFjZUludmFkZXJz
L3NyYy9QYXJzZXIuaHMgYWZycC0wLjQvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9z
cmMvUGFyc2VyLmhzCioqKiBhZnJwLTAuNC5vcmlnL2V4YW1wbGVzL1NwYWNlSW52
YWRlcnMvc3JjL1BhcnNlci5ocwkyMDA0LTAzLTIzIDA3OjQ4OjU1LjAwMDAwMDAw
MCArMDkwMAotLS0gYWZycC0wLjQvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9zcmMv
UGFyc2VyLmhzCTIwMDUtMDctMzEgMTA6Mzc6NTQuMDAwMDAwMDAwICswOTAwCioq
KioqKioqKioqKioqKgoqKiogMzUsNDEgKioqKgogICkgd2hlcmUKICAKICBpbXBv
cnQgTWF5YmUgKGlzTm90aGluZywgaXNKdXN0KQohIGltcG9ydCBxdWFsaWZpZWQg
R3JhcGhpY3MuSEdMLlV0aWxzIGFzIEhHTCAoRXZlbnQoLi4pKQogIGltcG9ydCBD
aGFyIChvcmQsIGlzU3BhY2UsIGlzRGlnaXQpCiAgCiAgaW1wb3J0IEFGUlAKLS0t
IDM1LDQxIC0tLS0KICApIHdoZXJlCiAgCiAgaW1wb3J0IE1heWJlIChpc05vdGhp
bmcsIGlzSnVzdCkKISBpbXBvcnQgcXVhbGlmaWVkIEdyYXBoaWNzLkhHTCBhcyBI
R0wgKEV2ZW50KC4uKSkKICBpbXBvcnQgQ2hhciAob3JkLCBpc1NwYWNlLCBpc0Rp
Z2l0KQogIAogIGltcG9ydCBBRlJQCmRpZmYgLWNyTiBhZnJwLTAuNC5vcmlnL2V4
YW1wbGVzL1NwYWNlSW52YWRlcnMvc3JjL1JlbmRlckxhbmRzY2FwZS5ocyBhZnJw
LTAuNC9leGFtcGxlcy9TcGFjZUludmFkZXJzL3NyYy9SZW5kZXJMYW5kc2NhcGUu
aHMKKioqIGFmcnAtMC40Lm9yaWcvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9zcmMv
UmVuZGVyTGFuZHNjYXBlLmhzCTIwMDQtMDMtMjMgMDc6NDg6NTUuMDAwMDAwMDAw
ICswOTAwCi0tLSBhZnJwLTAuNC9leGFtcGxlcy9TcGFjZUludmFkZXJzL3NyYy9S
ZW5kZXJMYW5kc2NhcGUuaHMJMjAwNS0wNy0zMSAxMDozODo0Ni4wMDAwMDAwMDAg
KzA5MDAKKioqKioqKioqKioqKioqCioqKiAxNiwyMiAqKioqCiAgKSB3aGVyZQog
IAogIGltcG9ydCBBcnJheQohIGltcG9ydCBxdWFsaWZpZWQgR3JhcGhpY3MuSEdM
LlV0aWxzIGFzIEhHTAogIAogIGltcG9ydCBBRlJQUG9pbnQyIChQb2ludDIoLi4p
KQogIAotLS0gMTYsMjIgLS0tLQogICkgd2hlcmUKICAKICBpbXBvcnQgQXJyYXkK
ISBpbXBvcnQgcXVhbGlmaWVkIEdyYXBoaWNzLkhHTCBhcyBIR0wKICAKICBpbXBv
cnQgQUZSUFBvaW50MiAoUG9pbnQyKC4uKSkKICAKZGlmZiAtY3JOIGFmcnAtMC40
Lm9yaWcvZXhhbXBsZXMvU3BhY2VJbnZhZGVycy9zcmMvUmVuZGVyT2JqZWN0Lmhz
IGFmcnAtMC40L2V4YW1wbGVzL1NwYWNlSW52YWRlcnMvc3JjL1JlbmRlck9iamVj
dC5ocwoqKiogYWZycC0wLjQub3JpZy9leGFtcGxlcy9TcGFjZUludmFkZXJzL3Ny
Yy9SZW5kZXJPYmplY3QuaHMJMjAwNC0wMy0yMyAwNzo0ODo1NS4wMDAwMDAwMDAg
KzA5MDAKLS0tIGFmcnAtMC40L2V4YW1wbGVzL1NwYWNlSW52YWRlcnMvc3JjL1Jl
bmRlck9iamVjdC5ocwkyMDA1LTA3LTMxIDEwOjM4OjI4LjAwMDAwMDAwMCArMDkw
MAoqKioqKioqKioqKioqKioKKioqIDE2LDIyICoqKioKICApIHdoZXJlCiAgCiAg
aW1wb3J0IEFycmF5CiEgaW1wb3J0IHF1YWxpZmllZCBHcmFwaGljcy5IR0wuVXRp
bHMgYXMgSEdMCiAgaW1wb3J0IEFGUlBHZW9tZXRyeQogIAogIGltcG9ydCBQaHlz
aWNhbERpbWVuc2lvbnMKLS0tIDE2LDIyIC0tLS0KICApIHdoZXJlCiAgCiAgaW1w
b3J0IEFycmF5CiEgaW1wb3J0IHF1YWxpZmllZCBHcmFwaGljcy5IR0wgYXMgSEdM
CiAgaW1wb3J0IEFGUlBHZW9tZXRyeQogIAogIGltcG9ydCBQaHlzaWNhbERpbWVu
c2lvbnMKZGlmZiAtY3JOIGFmcnAtMC40Lm9yaWcvZXhhbXBsZXMvU3BhY2VJbnZh
ZGVycy9zcmMvU2ltcGxlR3VuLmhzIGFmcnAtMC40L2V4YW1wbGVzL1NwYWNlSW52
YWRlcnMvc3JjL1NpbXBsZUd1bi5ocwoqKiogYWZycC0wLjQub3JpZy9leGFtcGxl
cy9TcGFjZUludmFkZXJzL3NyYy9TaW1wbGVHdW4uaHMJMTk3MC0wMS0wMSAwOTow
MDowMC4wMDAwMDAwMDAgKzA5MDAKLS0tIGFmcnAtMC40L2V4YW1wbGVzL1NwYWNl
SW52YWRlcnMvc3JjL1NpbXBsZUd1bi5ocwkyMDA0LTAzLTIzIDA3OjQ4OjU1LjAw
MDAwMDAwMCArMDkwMAoqKioqKioqKioqKioqKioKKioqIDAgKioqKgotLS0gMSwy
MDggLS0tLQorIHstICRJZDogU2ltcGxlR3VuLmFzLHYgMS4yIDIwMDMvMTEvMTAg
MjE6Mjg6NTggYW50b255IEV4cCAkCisgKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkgTiBWIEEg
RCBFIFIgUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgICBNb2R1bGU6CQlTaW1w
bGVHdW4JCQkJCSAgICAgKgorICogICAgICAgUHVycG9zZToJQSBzaW1wbGUgZ3Vu
IGFzIGEgc2lnbmFsIGZ1bmN0aW9uICAgICAgICAJICAgICAqCisgKiAgICAgICBB
dXRob3I6CQlBbnRvbnkgQ291cnRuZXkJCQkJCSAgICAgKgorICogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgQ29weXJpZ2h0IChj
KSBZYWxlIFVuaXZlcnNpdHksIDIwMDMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorIC19CisgCisgbW9kdWxlIFNpbXBsZUd1
biAoCisgICAgIHNpbXBsZUd1bk9iamVjdCAtLSA6OiBPYmplY3QKKyApIHdoZXJl
CisgCisgaW1wb3J0IHF1YWxpZmllZCBSYW5kb20KKyAKKyBpbXBvcnQgQUZSUAor
IGltcG9ydCBBRlJQVXRpbGl0aWVzCisgaW1wb3J0IEFGUlBHZW9tZXRyeQorIAor
IGltcG9ydCBQaHlzaWNhbERpbWVuc2lvbnMKKyBpbXBvcnQgV29ybGRHZW9tZXRy
eQorIGltcG9ydCBQYXJzZXIKKyBpbXBvcnQgT2JqZWN0CisgCisgCisgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgLS0gR3VuCisgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisgCisgZGF0YSBTaW1wbGVHdW5TdGF0ZSA9IFNp
bXBsZUd1blN0YXRlIHsKKyAgIHNnc1BvcyA6OiBQb3NpdGlvbjIsCisgICBzZ3NW
ZWwgOjogVmVsb2NpdHkyLAorICAgc2dzRmlyZWQgOjogRXZlbnQgKCkKKyB9Cisg
CisgdHlwZSBTaW1wbGVHdW4gPSBTRiBHYW1lSW5wdXQgU2ltcGxlR3VuU3RhdGUK
KyAKKyBzaW1wbGVHdW4gOjogUG9zaXRpb24yIC0+IFNpbXBsZUd1bgorIHNpbXBs
ZUd1biAoUG9pbnQyIHgwIHkwKSA9IHByb2MgZ2kgLT4gZG8KKyAgIC0tIERlc2ly
ZWQgcG9zaXRpb246CisgICAoUG9pbnQyIHhkIF8pIDwtIHB0clBvcyAtPCBnaQor
ICAgcmVjCisgICAgIC0tIENvbnRyb2xsZXIuCisgICAgIC0tIERlc2lyZWQgYWNj
ZWxlcmF0aW9uOgorICAgICBsZXQgYWQgPSAxMCAqICh4ZCAtIHgpIC0gNSAqIHYK
KyAKKyAgICAgLS0gYmFzaWMgcGh5c2ljczoKKyAgICAgdiA8LSBpbnRlZ3JhbCAt
PCBjbGFtcEFjYyB2IGFkCisgICAgIHggPC0gKHgwKykgXjw8IGludGVncmFsIC08
IHYKKyAKKyAgIGZpcmUgPC0gbGJwIC08IGdpCisgICByZXR1cm5BIC08IFNpbXBs
ZUd1blN0YXRlIHsKKyAgICAgICAgICAgICAgICBzZ3NQb3MgPSAoUG9pbnQyIHgg
eTApLAorICAgICAgICAgICAgICAgIHNnc1ZlbCA9ICh2ZWN0b3IyIHYgMCksCisg
ICAgICAgICAgICAgICAgc2dzRmlyZWQgPSBmaXJlCisgICAgICAgICAgICAgIH0g
ICAgICAgICAgICAgICAgIAorIAorIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorIC0tIFN1cHBvcnQKKyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAKKyAtLSBDb21wdXRlIGFjdHVhbCBhY2NlbGVyYXRpb24gZnJvbQorIC0t
IGRlc2lyZWQgYWNjZWxlcmF0aW9uIGJ5IHNldHRpbmcKKyAtLSBoYXJkIGxpbWl0
cyBvbiBhY2NlbGVyYXRpb24gYW5kIHZlbG9jaXR5OgorIGNsYW1wQWNjIHYgYWQg
PSAKKyAgIGxldCBhID0gc3ltTGltaXQgZ3VuQWNjTWF4IGFkCisgICBpbiBpZiAo
LWd1blNwZWVkTWF4KSA8PSB2ICYmIHYgPD0gZ3VuU3BlZWRNYXgKKyAgICAgICAg
IHx8IHYgPCAoLWd1blNwZWVkTWF4KSAmJiBhID4gMAorICAgICAgICAgfHwgdiA+
IGd1blNwZWVkTWF4ICYmIGEgPCAwCisgICAgICB0aGVuIGEKKyAgICAgIGVsc2Ug
MAorIAorIGxpbWl0IGxsIHVsIHggPSBpZiB4IDwgbGwgdGhlbiBsbCBlbHNlIGlm
IHggPiB1bCB0aGVuIHVsIGVsc2UgeAorIAorIHN5bUxpbWl0IGwgPSBsZXQgYWJz
bCA9IGFicyBsIGluIGxpbWl0ICgtYWJzbCkgYWJzbAorIAorIC0tIFdlIHJlYWxs
eSBhdWdodCB0byB0ZXN0IHRoaXMsIGJ1dCB3ZSdsbCBqdXN0IHNldHRsZSBmb3Ig
dHlwZSBjaGVja2luZworIC0tIGZvciBub3csIHNpbmNlIHdlIGtub3cgdGhlIGd1
biB3b3Jrcy4uLgorIHNpbXBsZUd1bk9iamVjdCA6OiBPYmplY3QKKyBzaW1wbGVH
dW5PYmplY3QgPSB1bmRlZmluZWQKKyAKKyAtLSBTaW5jZSB0aGlzIGZpbGUgZG9l
c24ndCBpbXBvcnQgT2JqZWN0QmVoYXZpb3IsIEknbSBnb2luZyB0byBwbGFjZSBh
CisgLS0gY291cGxlIG9mIHZlcnNpb25zIG9mIHRoZSBjb2RlIGZvciBPYmplY3RC
ZWhhdmlvci5ndW4gaGVyZS4gIFRoZXNlCisgLS0gY29ycmVzcG9uZCBleGFjdGx5
IHdpdGggd2hhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIHBhcGVyOyB0aGV5IGFyZQor
IC0tIGNvcGllZCBoZXJlIGp1c3QgdG8gZW5zdXJlIHdlIGRvbid0IG1ha2UgYW55
IG9idmlvdXMgbWlzdGFrZXMKKyAtLSB0aGF0IGNvdWxkIGJlIGNhdWdodCBieSBw
YXJzaW5nIC8gdHlwZWNoZWNraW5nLgorIAorIC0tICpzaWdoKi4gIFNvIG11Y2gg
Zm9yIHR5cGVjaGVja2luZy4uLndlIGhhdmUgdG8gY29tbWVudCB0aGlzIG91dCBh
bnl3YXksCisgLS0gYmVjYXVzZSBvb3NHdW4gaXMgdW5kZWZpbmVkLgorIHstCisg
Z3VuIDo6IFBvc2l0aW9uMiAtPiBPYmplY3QKKyBndW4gKFBvaW50MiB4MCB5MCkg
PSBwcm9jIG9iakluIC0+IGRvCisgICBsZXQgZ2kgPSBvaUdhbWVJbnB1dCBvYmpJ
bgorICAgLS0gRGVzaXJlZCBwb3NpdGlvbjoKKyAgIChQb2ludDIgeGQgXykgPC0g
cHRyUG9zIC08IGdpCisgICByZWMKKyAgICAgLS0gQ29udHJvbGxlci4KKyAgICAg
LS0gRGVzaXJlZCBhY2NlbGVyYXRpb246CisgICAgIGxldCBhZCA9IDEwICogKHhk
IC0geCkgLSA1ICogdgorIAorICAgICAtLSBiYXNpYyBwaHlzaWNzOgorICAgICB2
IDwtIGludGVncmFsIC08IGNsYW1wQWNjIHYgYWQKKyAgICAgeCA8LSAoeDArKSBe
PDwgaW50ZWdyYWwgLTwgdgorIAorICAgZmlyZSA8LSBsYnAgLTwgZ2kKKyAgIHJl
dHVybkEgLTwgCisgICAgIE9iak91dHB1dCB7CisgICAgICAgb29PYnNPYmpTdGF0
ZSA9IG9vc0d1biAoUG9pbnQyIHggeTApIAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHZlY3RvcjIgdiAwKSwKKyAgICAgICBvb0tpbGxSZXEgICAgID0g
bm9FdmVudCwKKyAgICAgICBvb1NwYXduUmVxICAgID0gCisgICAgICAgICBmaXJl
IGB0YWdgIAorICAgICAgICAgICBbbWlzc2lsZSAoUG9pbnQyIHggKHkwICsgKGd1
bkhlaWdodC8yKSkpIAorICAgICAgICAgICAgICAgICAgICAodmVjdG9yMiB2IG1p
c3NpbGVJbml0aWFsU3BlZWQpXQorICAgICB9CisgLX0KKyAKKyAtLSBBbW11bml0
aW9uIG1hZ2F6aW5lLiBSZWxvYWRlZCB1cCB0byBtYXhpbWFsCisgLS0gY2FwYWNp
dHkgYXQgY29uc3RhbnQgcmF0ZS4KKyAtLSBuIC4uLiBNYXhpbWFsIGFuZCBpbml0
aWFsIG51bWJlciBvZiBtaXNzaWxlcy4KKyAtLSBmIC4uLi4uLi4uLi4JUmVsb2Fk
IHJhdGUuCisgLS0gaW5wdXQgLi4uLi4uCVRyaWdnZXIuCisgLS0gb3V0cHV0IC4u
Li4uCVR1cGxlOgorIC0tICAgIzE6IEN1cnJlbnQgbnVtYmVyIG9mIG1pc3NpbGVz
IGluIG1hZ2F6aW5lLgorIC0tICAgIzI6IE1pc3NpbGUgZmlyZWQgZXZlbnQuCisg
bWFnYXppbmUgOjogCisgICBJbnQgLT4gRnJlcXVlbmN5IAorICAgICAgIC0+IFNG
IChFdmVudCAoKSkgKEludCwgRXZlbnQgKCkpCisgbWFnYXppbmUgbiBmID0gcHJv
YyB0cmlnZ2VyIC0+IGRvCisgICByZWxvYWQgPC0gcmVwZWF0ZWRseSAoMS9mKSAo
KSAtPCAoKQorICAgKGxldmVsLGNhbkZpcmUpIAorICAgICAgIDwtIGFjY3VtSG9s
ZCAobixUcnVlKSAtPCAKKyAgICAgICAgICAgICAgKHRyaWdnZXIgYHRhZ2AgZGVj
KQorICAgICAgICAgICAgICBgbE1lcmdlYCAocmVsb2FkIGB0YWdgIGluYykKKyAg
IHJldHVybkEgLTwgKGxldmVsLCAKKyAJICAgICAgdHJpZ2dlciBgZ2F0ZWAgY2Fu
RmlyZSkKKyAgIHdoZXJlCisgICAgIGluYyA6OiAoSW50LEJvb2wpIC0+IChJbnQs
IEJvb2wpCisgICAgIGluYyAobCxfKSB8IGwgPCBuID0gKGwgKyAxLCBsID4gMCkK
KyAgICAgICAgICAgICAgIHwgb3RoZXJ3aXNlID0gKGwsIFRydWUpCisgICAgIGRl
YyA6OiAoSW50LEJvb2wpIC0+IChJbnQsIEJvb2wpCisgICAgIGRlYyAobCxfKSB8
IGwgPiAwID0gKGwgLSAxLCBUcnVlKQorICAgICAgICAgICAgICAgfCBvdGhlcndp
c2UgPSAobCwgRmFsc2UpCisgCisgLS0gT2YgY291cnNlLCB0aGlzIHdvdWxkIGJl
IG11Y2ggYmV0dGVyIGlmIHdlIHVzZWQgdGhlIHJlYWwgaW1wdWxzZSBzdHVmZjoK
KyAtLSBObyBib2d1cyBpUHJlLCBmb3IgaW5zdGFuY2UuCisgbWlzc2lsZSA6OiBQ
b3NpdGlvbjIgLT4gVmVsb2NpdHkyIC0+IE9iamVjdAorIG1pc3NpbGUgcDAgdjAg
PSBwcm9jIG9pIC0+IGRvCisgICAgIHJlYworICAgICAgICAgLS0gQmFzaWMgcGh5
c2ljcworICAgICAgICAgdnAgIDwtIGlQcmUgdjAgICAgICAgICAgICAgICAgICAg
ICAtPCB2CisgICAgICAgICBmZmkgPC0gZm9yY2VGaWVsZCAgICAgICAgICAgICAg
ICAgIC08IChwLCB2cCkKKyAgICAgICAgIHYgIDwtICh2MCBeK14pIF48PCBpbXB1
bHNlSW50ZWdyYWwgLTwgKGdyYXZpdHksIGZmaSkKKyAJcCAgPC0gKHAwIC4rXikg
Xjw8IGludGVncmFsICAgICAgICAtPCB2CisgICAgIGRpZSA8LSBhZnRlciBtaXNz
aWxlTGlmZVNwYW4gKCkgLTwgKCkKKyAgICAgcmV0dXJuQSAtPCBPYmpPdXRwdXQg
eworIAkgICAgICAgICAgIG9vT2JzT2JqU3RhdGUgPSBvb3NNaXNzaWxlIHAgdiwK
KyAJCSAgIG9vS2lsbFJlcSAgICAgPSBvaUhpdCBvaSBgbE1lcmdlYCBkaWUsCisg
ICAgICAgICAgICAgICAgICAgIG9vU3Bhd25SZXEgICAgPSBub0V2ZW50CisgICAg
ICAgICAgICAgICAgfQorIAorIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorIC0tIEZvcmNlIGZpZWxkcyBhY3Rpbmcgb24gb2JqZWN0cworIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorIC0tIE9iamVjdCBhcmUgc3ViamVj
dCB0byBncmF2aXR5IGFuZCBhIHN0cmFuZ2UgcmVwZWxsZW50IGZvcmNlZmllbGQg
dGhhdAorIC0tIGRyaXZlcyBvYmplY3RzIGF3YXkgZnJvbSB0aGUgZWRnZXMsIGVm
ZmVjdGl2ZWx5IGNyZWF0aW5nIGEgY29ycmlkb3IuCisgLS0gVGhlIHN0cmFuZ2Ug
ZmllbGQgaXMgaW52ZXJzZWx5IHByb3BvcnRpb25hbCB0byB0aGUgY3ViZSBvZiB0
aGUgZGlzdGFuY2UKKyAtLSBmcm9tIGVpdGhlciBlZGdlLiBJdCBpcyB0aG91Z2h0
IHRoYXQgdGhlIGZpZWxkIGlzIGEgcmVtbmFudCBvZiBhIGRlZmVuY2UKKyAtLSBz
eXN0ZW0gcHV0IGluIHBsYWNlIGJ5IHRoZSBteXRoaWNhbCBhbmQgdGVjaG5vbG9n
aWNhbGx5IGFkdmFuY2VkCisgLS0gIlByZWRlY2Vzc29ycyIgZW9ucyBhZ28uCisg
Cisgey0KKyBmaWVsZCA6OiBQb3NpdGlvbjIgLT4gQWNjZWxlcmF0aW9uMgorIGZp
ZWxkIChQb2ludDIgeCBfKSA9IHZlY3RvcjIgKGxlZnRBY2MgLSByaWdodEFjYykg
MCBeK14gZ3Jhdml0eQorICAgICB3aGVyZQorIAlsZWZ0QWNjICA9IG1pbiAoaWYg
eCA+IHdvcmxkWE1pbgorICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gayAv
ICh4IC0gd29ybGRYTWluKV4zCisgICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZSBtYXhBY2MpCisgICAgICAgICAgICAgICAgICAgICAgICBtYXhBY2MKKyAJcmln
aHRBY2MgPSBtaW4gKGlmIHggPCB3b3JsZFhNYXgKKyAgICAgICAgICAgICAgICAg
ICAgICAgICB0aGVuIGsgLyAod29ybGRYTWF4IC0geCleMworICAgICAgICAgICAg
ICAgICAgICAgICAgIGVsc2UgbWF4QWNjKQorICAgICAgICAgICAgICAgICAgICAg
ICAgbWF4QWNjCisgICAgICAgICBrICAgICAgICA9IDEwMDAwMDAwCisgICAgICAg
ICBtYXhBY2MgICA9IDEwMDAwCisgLX0KKyAKKyAtLSBOZXcgYXR0ZW1wdC4gRm9y
Y2UgZmllbGRzIGFjdCBsaWtlIGludmlzaWJsZSB3YWxscy4KKyAtLSBUaGUgZmFj
dCB0aGF0IHRoaXMgaXMgYSBzdGF0ZWZ1bCAqc2lnbmFsKiBmdW5jdGlvbiAoRmll
bGRzIGhhdmluZyBzdGF0ZT8KKyAtLSBDb21lIG9uIC4uLiksIGNhbiBiZSBhdHRy
aWJ1dGVkIHRvIHRoZSBmYWN0IHRoYXQgd2UgYXJlIGNoZWF0aW5nIGluIHRoZQor
IC0tIGZpcnN0IHBsYWNlIGJ5IGFic3RyYWN0aW5nIGV2ZW50cyBvZiBzaG9ydCBk
dXJhdGlvbiB0byBpbnN0YW50YW5lb3VzCisgLS0gZXZlbnRzLiAiZmllbGQiIGJl
aW5nIGEgc3RhdGVmdWwgc2lnbmFsIGZ1bmN0aW8gaXMgcGFydCBvZiB0aGUgcHJp
Y2UKKyAtLSBvbmUgaGF2ZSB0byBwYXkgZm9yIHRoYXQgdG8gbWFrZSB0aGlzIHdv
cmsgaW4gcHJhY3RpY2UuCisgCisgZm9yY2VGaWVsZCA6OiBTRiAoUG9zaXRpb24y
LCBWZWxvY2l0eTIpIChFdmVudCBBY2NlbGVyYXRpb24yKQorIGZvcmNlRmllbGQg
PSBwcm9jIChwLCB2KSAtPiBkbworICAgICBsZmkgICAgPC0gZWRnZSAgICAtPCBw
b2ludDJYIHAgPCB3b3JsZFhNaW4gJiYgdmVjdG9yMlggdiA8IDAKKyAgICAgcmZp
ICAgIDwtIGVkZ2UgICAgLTwgcG9pbnQyWCBwID4gd29ybGRYTWF4ICYmIHZlY3Rv
cjJYIHYgPiAwCisgICAgIHJldHVybkEgLTwgKG1lcmdlQnkgKF4rXikgKGxmaSBg
dGFnYCAodmVjdG9yMiAoLTIgKiB2ZWN0b3IyWCB2KSAwKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAocmZpIGB0YWdgICh2ZWN0b3IyICgtMiAqIHZl
Y3RvcjJYIHYpIDApKSkKKyAKKyAKKyBncmF2aXR5ID0gdmVjdG9yMiAwICgtMjAp
CmRpZmYgLWNyTiBhZnJwLTAuNC5vcmlnL2V4YW1wbGVzL1NwYWNlSW52YWRlcnMv
c3JjL1dvcmxkR2VvbWV0cnkuaHMgYWZycC0wLjQvZXhhbXBsZXMvU3BhY2VJbnZh
ZGVycy9zcmMvV29ybGRHZW9tZXRyeS5ocwoqKiogYWZycC0wLjQub3JpZy9leGFt
cGxlcy9TcGFjZUludmFkZXJzL3NyYy9Xb3JsZEdlb21ldHJ5LmhzCTIwMDQtMDMt
MjMgMDc6NDg6NTUuMDAwMDAwMDAwICswOTAwCi0tLSBhZnJwLTAuNC9leGFtcGxl
cy9TcGFjZUludmFkZXJzL3NyYy9Xb3JsZEdlb21ldHJ5LmhzCTIwMDUtMDctMzEg
MTA6Mzc6MjQuMDAwMDAwMDAwICswOTAwCioqKioqKioqKioqKioqKgoqKiogMTYs
MjIgKioqKgogIAogIGltcG9ydCBBRlJQUG9pbnQyIChQb2ludDIoLi4pKQogIGlt
cG9ydCBQaHlzaWNhbERpbWVuc2lvbnMKISBpbXBvcnQgcXVhbGlmaWVkIEdyYXBo
aWNzLkhHTC5VdGlscyBhcyBIR0wgKFBvaW50KQogIAogIAogIC0tIEV2ZXJ5dGhp
bmcgaW4gdGhlIHdvcmxkIGlzIG1lYXN1cmVkIGluIG1ldGVycy4KLS0tIDE2LDIy
IC0tLS0KICAKICBpbXBvcnQgQUZSUFBvaW50MiAoUG9pbnQyKC4uKSkKICBpbXBv
cnQgUGh5c2ljYWxEaW1lbnNpb25zCiEgaW1wb3J0IHF1YWxpZmllZCBHcmFwaGlj
cy5IR0wgYXMgSEdMIChQb2ludCkKICAKICAKICAtLSBFdmVyeXRoaW5nIGluIHRo
ZSB3b3JsZCBpcyBtZWFzdXJlZCBpbiBtZXRlcnMuCkJpbmFyeSBmaWxlcyBhZnJw
LTAuNC5vcmlnL2V4YW1wbGVzL1RhaWxnYXRpbmdEZXRlY3Rvci8uRFNfU3RvcmUg
YW5kIGFmcnAtMC40L2V4YW1wbGVzL1RhaWxnYXRpbmdEZXRlY3Rvci8uRFNfU3Rv
cmUgZGlmZmVyCmRpZmYgLWNyTiBhZnJwLTAuNC5vcmlnL2V4YW1wbGVzL1RhaWxn
YXRpbmdEZXRlY3Rvci9UYWlsZ2F0aW5nRGV0ZWN0b3IuaHMgYWZycC0wLjQvZXhh
bXBsZXMvVGFpbGdhdGluZ0RldGVjdG9yL1RhaWxnYXRpbmdEZXRlY3Rvci5ocwoq
KiogYWZycC0wLjQub3JpZy9leGFtcGxlcy9UYWlsZ2F0aW5nRGV0ZWN0b3IvVGFp
bGdhdGluZ0RldGVjdG9yLmhzCTE5NzAtMDEtMDEgMDk6MDA6MDAuMDAwMDAwMDAw
ICswOTAwCi0tLSBhZnJwLTAuNC9leGFtcGxlcy9UYWlsZ2F0aW5nRGV0ZWN0b3Iv
VGFpbGdhdGluZ0RldGVjdG9yLmhzCTIwMDUtMDctMzAgMTY6NDQ6MDguMDAwMDAw
MDAwICswOTAwCioqKioqKioqKioqKioqKgoqKiogMCAqKioqCi0tLSAxLDMyMiAt
LS0tCisgey0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgRiBSIFAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICoKKyAqICAgICAgIE1vZHVsZTogICAgICAgICBUYWlsZ2F0aW5n
RGV0ZWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAq
ICAgICAgIFB1cnBvc2U6ICAgICAgICBBRlJQIEV4cHJlc3NpdGl2aXR5IFRlc3QJ
CSAgICAgICAgICAgICAqCisgKglBdXRob3JzOglIZW5yaWsgTmlsc3NvbgkJCQkJ
ICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAg
ICAgICAgICBDb3B5cmlnaHQgKGMpIFlhbGUgVW5pdmVyc2l0eSwgMjAwMyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgLX0K
KyAKKyAtLSBDb250ZXh0OiBhbiBhdXRvbm9tb3VzIGZseWluZyB2ZWhpY2xlIGNh
cnJ5aW5nIG91dCB0cmFmZmljIHN1cnZlaWxsYW5jZQorIC0tIHRocm91Z2ggYW4g
b24tYm9hcmQgdmlkZW8gY2FtZXJhLgorIC0tCisgLS0gT2JqZWN0aXZlOiBmaW5k
aW5nIGEgdGFpbGdhdGVyIGFtb25nIGEgZ3JvdXAgb2YgdmVoaWNsZXMgdHJhdmVs
aW5nIGFsb25nCisgLS0gYSBoaWdod2F5IGxhbmUuIFRoZSBncm91cCBpcyBkZWZp
bmVkIGJ5IHRoZSBzZWN0aW9uIG9mIHRoZSBoaWdod2F5IGluCisgLS0gdmlldyBh
bmQgdGh1cyBjaGFuZ2VzIGR5bmFtaWNhbGx5IGFzIGdyb3VuZCB2ZWhpY2xlcyB3
aXRoIG5vbi16ZXJvCisgLS0gcmVsYXRpdmUgc3BlZWQgdG8gdGhlIGZseWluZyB2
ZWhpY2xlcyBlbnRlcnMgb3IgbGVhdmVzIHRoZSBmaWVsZCBvZgorIC0tIHZpc2lv
bi4KKyAtLQorIC0tIFNpbXBsaWZ5aW5nIGFzc3VtcHRpb25zOgorIC0tICogVGhl
IHBvc2l0aXZlIHgtYXhpcyBvZiB0aGUgdmlkZW8gaW1hZ2VzIGlzIHN1cHBvc2Vk
IHRvIGNvcnJlc3BvbmQgdG8gdGhlCisgLS0gICBkaXJlY3Rpb24gb2YgdHJhdmVs
LgorIC0tICogVGhlIGZseWluZyB2ZWhpY2xlIGlzIGFzc3VtZWQgdG8gdHJhdmVs
IGRpcmVjdGx5IG92ZXIgYW5kIGFsb25nIHRoZQorIC0tICAgaGlnaHdheSBsYW5l
IHdoZW4gbG9va2luZyBmb3IgdGFpbGdhdGVycy4gVGhlIHktY29vcmRpbmF0ZSBv
ZiB0aGUKKyAtLSAgIGhpZ2h3YXkgaXMgdGh1cyByb3VnaGx5IDAuCisgLS0gKiBJ
dCBpcyBlbm91Z2ggdG8gY29uc2lkZXIgdGhlIHgtY29vcmRpbmF0ZSBvZiBncm91
bmQgdmVoaWNsZSBwb3NpdGlvbnMuCisgLS0gICBUaHVzIHRoZSBwb3NpdGlvbiBh
bmQgdmVsb2NpdHkgdHlwZXMgYXJlIGJvdGgganVzdCAoc2lnbmVkKSBEb3VibGUK
KyAtLSAgIGZvciBvdXIgcHVycG9zZXMuCisgLS0KKyAtLSBJIGZpbmQgdGhpcyBl
eGFtcGxlIGludGVyZXN0aW5nIGJlY2F1c2UgaXQgbWFrZXMgdXNlIG9mIFRXTyBD
T0xMRUNUSU9OIG9mCisgLS0gc2lnbmFsIGZ1bmN0aW9ucywgdGhlc2UgY29sbGVj
dGlvbnMgSEFWRSBUTyBCRSBEWU5BTUlDIGJ5IHRoZSB2ZXJ5CisgLS0gbmF0dXJl
IG9mIHRoZSBwcm9ibGVtLCBhbmQgaXQgbWFrZXMgdXNlIG9mIHRoZSB0aGUgZmFj
dCB0aGF0IENPTlRJTlVBVElPTlMKKyAtLSBBUkUgRklSU1QgQ0xBU1MgRU5USVRJ
RVMgaW4gYSB3YXkgd2hpY2ggYXJndWFibHkgYWxzbyBpcyBqdXN0aWZpZWQKKyAt
LSBieSB0aGUgbmF0dXJlIG9mIHRoZSBwcm9ibGVtLgorIAorIG1vZHVsZSBUYWls
Z2F0aW5nRGV0ZWN0b3Igd2hlcmUKKyAKKyBpbXBvcnQgTGlzdCAoc29ydEJ5LCAo
XFwpKQorIAorIGltcG9ydCBBRlJQCisgaW1wb3J0IEFGUlBVdGlsaXRpZXMKKyAK
KyAKKyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAtLSBUZXN0aW5n
IGZyYW1ld29yaworIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAor
IHR5cGUgUG9zaXRpb24gPSBEb3VibGUJLS0gW21dCisgdHlwZSBEaXN0YW5jZSA9
IERvdWJsZQktLSBbbV0KKyB0eXBlIFZlbG9jaXR5ID0gRG91YmxlCS0tIFttL3Nd
CisgCisgLS0gV2UnbGwgY2FsbCBhbnkgZ3JvdW5kIHZlaGljbGUgImNhciIuIEZv
ciBvdXIgcHVycG9zZXMsIGEgY2FyIGlzCisgLS0gcmVwcmVzZW50ZWQgYnkgaXRz
IGdyb3VuZCBwb3NpdGlvbiBhbmQgZ3JvdW5kIHZlbG9jaXR5LgorIHR5cGUgQ2Fy
ID0gKFBvc2l0aW9uLCBWZWxvY2l0eSkKKyAKKyAKKyAtLSBBIGhpZ2h3YXkgaXMg
anVzdCBhIGxpc3Qgb2YgY2Fycy4gSW4gdGhpcyBzaW1wbGUgc2V0dGluZywgd2Ug
YXNzdW1lIGFsbAorIC0tIGNhcnMgYXJlIHRoZXJlIGFsbCB0aGUgdGltZSAobm8g
ZW50ZXIgb3IgZXhpdCByYW1wcyBldGMuKQorIHR5cGUgSGlnaHdheSA9IFtDYXJd
CisgCisgCisgLS0gVHlwZSBvZiB0aGUgVmlkZW8gc2lnbmFsLiBIZXJlIGp1c3Qg
YW4gYXNzb2NpYXRpb24gbGlzdCBvZiBjYXJzICppbiB2aWV3KgorIC0tIHdpdGgg
KnJlbGF0aXZlKiBwb3NpdGlvbnMuCisgdHlwZSBWaWRlbyA9IFsoSW50LCBDYXIp
XQorIAorIAorIC0tIFN5c3RlbSBpbmZvLCBzdWNoIGFzIGhlaWdodCBhbmQgZ3Jv
dW5kIHNwZWVkLiBIZXJlLCBqdXN0IHRoZSBwb3NpdGlvbi4KKyB0eXBlIFVBVlN0
YXR1cyA9IFBvc2l0aW9uCisgCisgCisgLS0gVmFyaW91cyB3YXlzIG9mIG1ha2lu
ZyBjYXJzLgorIHN3aXRjaEFmdGVyIDo6IFRpbWUgLT4gU0YgYSBiIC0+IChiIC0+
IFNGIGEgYikgLT4gU0YgYSBiCisgc3dpdGNoQWZ0ZXIgdCBzZiBrID0gc3dpdGNo
IChzZiAmJiYgYWZ0ZXIgdCAoKSA+Pl4gXChiLGUpIC0+IChiLCBlIGB0YWdgIGIp
KSBrCisgCisgCisgbWtDYXIxIDo6IFBvc2l0aW9uIC0+IFZlbG9jaXR5IC0+IFNG
IGEgQ2FyCisgbWtDYXIxIHAwIHYgPSBjb25zdGFudCB2ID4+PiAoaW50ZWdyYWwg
Pj5eICgrcDApKSAmJiYgaWRlbnRpdHkKKyAKKyBta0NhcjIgOjogUG9zaXRpb24g
LT4gVmVsb2NpdHkgLT4gVGltZSAtPiBWZWxvY2l0eSAtPiBTRiBhIENhcgorIG1r
Q2FyMiBwMCB2MCB0MCB2ID0gc3dpdGNoQWZ0ZXIgdDAgKG1rQ2FyMSBwMCB2MCkg
KGZsaXAgbWtDYXIxIHYgLiBmc3QpCisgCisgCisgbWtDYXIzIDo6IFBvc2l0aW9u
LT5WZWxvY2l0eS0+VGltZS0+VmVsb2NpdHktPlRpbWUtPlZlbG9jaXR5LT5TRiBh
IENhcgorIG1rQ2FyMyBwMCB2MCB0MCB2MSB0MSB2ID0gc3dpdGNoQWZ0ZXIgdDAg
KG1rQ2FyMSBwMCB2MCkgJCBcKHAxLCBfKSAtPgorIAkJCSAgc3dpdGNoQWZ0ZXIg
dDEgKG1rQ2FyMSBwMSB2MSkgJCBcKHAyLCBfKSAtPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWtDYXIxIHAyIHYKKyAKKyAKKyBoaWdod2F5IDo6IFNGIGEg
SGlnaHdheQorIGhpZ2h3YXkgPSBwYXJCIFtta0NhcjEgKC02MDApIDMwLjksCisg
ICAgICAgICAgICAgICAgIG1rQ2FyMSAwIDMwLAorICAgICAgICAgICAgICAgICBt
a0NhcjMgKC0xMDAwKSA0MCA5NSAzMCAyMDAgMzAuOSwKKyAJCW1rQ2FyMSAoLTMw
MDApIDQ1LAorICAgICAgICAgICAgICAgICBta0NhcjEgNzAwIDI4LAorICAgICAg
ICAgICAgICAgICBta0NhcjEgODAwIDI5LjFdCisgCisgCisgLS0gVGhlIHN0YXR1
cyBvZiB0aGUgVUFWLiBGb3Igbm93LCBpdCdzIGp1c3QgZmx5aW5nIGF0IGNvbnN0
YW50IHNwZWVkLgorIHVhdlN0YXR1cyA6OiBTRiBhIFVBVlN0YXR1cworIHVhdlN0
YXR1cyA9IGNvbnN0YW50IDMwID4+PiBpbnRlZ3JhbAorIAorIAorIC0tIFRyYWNr
cyBhIGNhciBpbiB0aGUgdmlkZW8gc3RyZWFtLiBBbiBldmVudCBpcyBnZW5lcmF0
ZWQgd2hlbiB0cmFja2luZyBpcworIC0tIGxvc3QsIHdoaWNoIHdlIGFzc3VtZSBv
bmx5IGhhcHBlbnMgaWYgdGhlIGNhciBsZWF2ZXMgdGhlIGZpZWxkIG9mIHZpc2lv
bi4KKyAtLSBXZSBkb24ndCBjb25jZXJuIG91cnNlbHZlcyB3aXRoIHJlYWxpc3Rp
YyBjcmVhdGlvbiBvZiB0cmFja2Vycy4KKyAtLSBUaGUgVUFWU3RhdHVzIHNpZ25h
bCBwcm92aWRlcyB0aGUgY3VycmVudCBmbHlpbmcgaGVpZ2h0IGFuZCBncm91bmQg
c3BlZWQKKyAtLSB3aGljaCBhbGxvd3MgdGhlIHBlcmNlaXZlZCBwb3NpdGlvbiB0
byBiZSBzY2FsZWQgdG8gYSBwb3NpdGlvbiBpbiBtZXRlcnMKKyAtLSByZWxhdGl2
ZSB0byB0aGUgb3JpZ2luIGRpcmVjdGx5IHVuZGVyIHRoZSBmbHlpbmcgdmVoaWNs
ZSwgYW5kIHRoZSBwZXJjZWl2ZWQKKyAtLSB2ZWxvY2l0eSB0byBiZSB0cmFuc2Zv
cm1lZCB0byBncm91bmQgdmVsb2NpdHkuCisgdHlwZSBDYXJUcmFja2VyID0gU0Yg
KFZpZGVvLCBVQVZTdGF0dXMpIChDYXIsIEV2ZW50ICgpKQorIAorIHJhbmdlID0g
NTAwCisgCisgLS0gQ3JlYXRpb24gb2YgdmlkZW8gc3RyZWFtIHN1YmplY3QgdG8g
ZmllbGQgb2YgdmlldyBhbmQgY2FyIHRyYWNrZXJzCisgLS0gYXMgY2FycyBlbnRl
cnMgdGhlIGZpZWxkIG9mIHZpZXcuCisgbWtWaWRlb0FuZFRyYWNrZXJzIDo6IFNG
IChIaWdod2F5LCBVQVZTdGF0dXMpIChWaWRlbywgRXZlbnQgQ2FyVHJhY2tlcikK
KyBta1ZpZGVvQW5kVHJhY2tlcnMgPSBhcnIgbWtWaWRlbyA+Pj4gaWRlbnRpdHkg
JiYmIGNhckVudHJ5CisgICAgIHdoZXJlCisgCW1rVmlkZW8gOjogKEhpZ2h3YXks
IFBvc2l0aW9uKSAtPiBWaWRlbworIAlta1ZpZGVvIChjYXJzLCBwX3VhdikgPQor
ICAgICAgICAgICAgIFsgKGksIChwX3JlbCwgdikpCisgICAgICAgICAgICAgfCAo
aSwgKHAsIHYpKSA8LSB6aXAgWzAuLl0gY2FycywKKyAgICAgICAgICAgICAgIGxl
dCBwX3JlbCA9IHAgLSBwX3VhdiwgYWJzIHBfcmVsIDw9IHJhbmdlXQorIAorIAlj
YXJFbnRyeSA6OiBTRiBWaWRlbyAoRXZlbnQgQ2FyVHJhY2tlcikKKyAJY2FyRW50
cnkgPSBlZGdlQnkgbmV3Q2FyIFtdCisgCSAgICB3aGVyZQorIAkJbmV3Q2FyIHZf
cHJldiB2ID0KKyAJCSAgICBjYXNlIChtYXAgZnN0IHYpIFxcIChtYXAgZnN0IHZf
cHJldikgb2YKKyAJCQlbXSAgICAgIC0+IE5vdGhpbmcKKyAJCQkoaSA6IF8pIC0+
IEp1c3QgKG1rQ2FyVHJhY2tlciBpKQorIAorIAlta0NhclRyYWNrZXIgOjogSW50
IC0+IENhclRyYWNrZXIKKyAJbWtDYXJUcmFja2VyIGkgPSBhcnIgKGxvb2t1cCBp
IC4gZnN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICA+Pj4gdHJhY2tBbmRI
b2xkIHVuZGVmaW5lZAorIAkJCSAgICAgJiYmIGVkZ2VCeSBqdXN0VG9Ob3RoaW5n
IChKdXN0IHVuZGVmaW5lZCkKKyAJICAgIHdoZXJlCisgCQlqdXN0VG9Ob3RoaW5n
IE5vdGhpbmcgIE5vdGhpbmcgID0gTm90aGluZworIAkJanVzdFRvTm90aGluZyBO
b3RoaW5nICAoSnVzdCBfKSA9IE5vdGhpbmcKKyAJCWp1c3RUb05vdGhpbmcgKEp1
c3QgXykgKEp1c3QgXykgPSBOb3RoaW5nCisgCQlqdXN0VG9Ob3RoaW5nIChKdXN0
IF8pIE5vdGhpbmcgID0gSnVzdCAoKQorIAorIAorIHZpZGVvQW5kVHJhY2tlcnMg
OjogU0YgYSAoVmlkZW8sIEV2ZW50IENhclRyYWNrZXIpCisgdmlkZW9BbmRUcmFj
a2VycyA9IGhpZ2h3YXkgJiYmIHVhdlN0YXR1cyA+Pj4gbWtWaWRlb0FuZFRyYWNr
ZXJzCisgCisgCisgc21wbEZyZXEgPSAyLjAKKyBzbXBsUGVyID0gMS9zbXBsRnJl
cQorIAorIAorIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIC0tIFRh
aWxnYXRpbmcgZGV0ZWN0b3IKKyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAKKyAtLSBMb29rcyBhdCB0aGUgcG9zaXRpb25zIG9mIHR3byBjYXJzIGFu
ZCBkZXRlcm1pbmVzIGlmIHRoZSBmaXJzdCBpcworIC0tIHRhaWxnYXRpbmcgdGhl
IHNlY29uZC4gVGFpbGdhdGluZyBpcyBhc3N1bWVkIHRvIGhhdmUgb2NjdXJyZWQg
aWY6CisgLS0gKiB0aGUgZmlyc3QgY2FyIGlzIGJlaGluZCB0aGUgc2Vjb25kOwor
IC0tICogdGhlIGFic29sdXRlIHNwZWVkIG9mIHRoZSBmaXJzdCBjYXIgaXMgZ3Jl
YXRlciB0aGFuIDUgbS9zOworIC0tICogdGhlIHJlbGF0aXZlIHNwZWVkIG9mIHRo
ZSBjYXJzIGlzIHdpdGhpbiAyMCAlIG9mIHRoZSBhYnNvbHV0ZSBzcGVlZDsKKyAt
LSAqIHRoZSBmaXJzdCBjYXIgaXMgbm8gbW9yZSB0aGFuIDUgcyBiZWhpbmQgdGhl
IHNlY29uZDsgYW5kCisgLS0gKiBhZnRlciAzMCBzLCB0aGUgYXZlcmFnZSBkaXN0
YW5jZSBiZXR3ZWVuIHRoZSBjYXJzIG5vcm1hbGl6ZWQgYnkKKyAtLSAgIHRoZSBh
YnNvbHV0ZSBzcGVlZCBpcyBsZXNzIHRoYW4gYSBzZWNvbmQuCisgCisgdGFpbGdh
dGluZyA6OiBTRiAoQ2FyLCBDYXIpIChFdmVudCAoKSkKKyB0YWlsZ2F0aW5nID0g
cHJvdmlkZWQgZm9sbG93IHRvb0Nsb3NlIG5ldmVyCisgICAgIHdoZXJlCisgCWZv
bGxvdyAoKHAxLCB2MSksIChwMiwgdjIpKSA9IHAxIDwgcDIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHYxID4gNS4wCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBhYnMgKCh2MiAtIHYx
KS92MSkgPCAwLjIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICYmIChwMiAtIHAxKSAvIHYxIDwgNS4wCisgCisgCS0tIFVuZGVyIHRoZSBh
c3N1bXB0aW9uIHRoYXQgY2FyIGMxIGlzIGZvbGxvd2luZyBjYXIgYzIsIGdlbmVy
YXRlIGFuCisgICAgICAgICAtLSBldmVudCBpZiBjYXIxIGhhcyBiZWVuIHRvbyBj
bG9zZSB0byBjYXIyIG9uIGF2ZXJhZ2UgZHVyaW5nIHRoZQorIAktLSBsYXN0IDMw
IHMuCisgCXRvb0Nsb3NlIDo6IFNGIChDYXIsIENhcikgKEV2ZW50ICgpKQorIAl0
b29DbG9zZSA9IHByb2MgKGMxLCBjMikgLT4gZG8KKyAJICAgIGVhZCA8LSByZWN1
ciAoc25hcEFmdGVyIDMwIDw8PCBhdmdEaXN0KSAtPCAoYzEsIGMyKQorIAkgICAg
cmV0dXJuQSAtPCAoZmlsdGVyRSAoPDEuMCkgZWFkKSBgdGFnYCAoKQorIAorICAg
ICAgICAgYXZnRGlzdCA9IHByb2MgKChwMSwgdjEpLCAocDIsIHYyKSkgLT4gZG8K
KyAJICAgIGxldCBuZCA9IChwMiAtIHAxKSAvIHYxCisgCSAgICBpbmQgPC0gaW50
ZWdyYWwgIC08IG5kCisgCSAgICB0ICAgPC0gbG9jYWxUaW1lIC08ICgpCisgICAg
ICAgICAgICAgcmV0dXJuQSAtPCBpZiB0ID4gMCB0aGVuIGluZCAvIHQgZWxzZSBu
ZAorIAorIAorIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIC0tIE11
bHRpLUNhciB0cmFja2VyCisgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisgCisgLS0gQXV4aWxpYXJ5IGRlZmluaXRpb25zCisgCisgdHlwZSBJZCA9IElu
dAorIAorIGRhdGEgTUNUQ29sIGEgPSBNQ1RDb2wgSWQgWyhJZCwgYSldCisgCisg
CisgaW5zdGFuY2UgRnVuY3RvciBNQ1RDb2wgd2hlcmUKKyAgICAgZm1hcCBmIChN
Q1RDb2wgbiBpYXMpID0gTUNUQ29sIG4gWyAoaSwgZiBhKSB8IChpLCBhKSA8LSBp
YXMgXQorIAorIAorIC0tIFRyYWNraW5nIG9mIGluZGl2aWR1YWwgY2FycyBpbiBh
IGdyb3VwLiBUaGUgYXJyaXZhbCBvZiBhIG5ldyBjYXIgaXMKKyAtLSBzaWduYWxs
ZWQgYnkgYW4gZXh0ZXJuYWwgZXZlbnQsIHdoaWNoIGNhdXNlcyBhIG5ldyB0cmFj
a2VyIHRvIGJlIGFkZGVkCisgLS0gdG8gaW50ZXJuYWwgY29sbGVjdGlvbiBvZiBj
YXIgdHJhY2tlcnMuIEEgdHJhY2tlciBpcyByZW1vdmVkIGFzIHNvb24KKyAtLSBh
cyBpdCBsb29zZXMgdHJhY2tpbmcuCisgLS0KKyAtLSBUaGUgb3V0cHV0IGNvbnNp
c3RzIG9mIHRoZSBvdXRwdXQgZnJvbSB0aGUgaW5kaXZpZHVhbCB0cmFja2Vycywg
dGFnZ2VkCisgLS0gd2l0aCBhbiBhc3NpZ25lZCBpZGVudGl0eSB1bmlxdWUgdG8g
ZWFjaCB0cmFja2VyLgorIC0tCisgLS0gSSdNIEdJVklORyBVUCBPTiBUSElTIEJJ
VCBGT1IgTk9XCisgLS0gVGhlIGV4dGVybmFsIGlkZW50aXR5IGV2ZW50IHNpZ25h
bHMgdGhhdCB0aGUgY2FyIGJlaW5nIHRyYWNrZWQgYnkgdGhlCisgLS0gdHJhY2tl
ciB0YWdnZWQgYnkgdGhlIGlkZW50aXR5IGNhcnJpZWQgYnkgdGhlIGV2ZW50IGlz
IGd1aWx0eSBvZgorIC0tIHRhaWxnYXRpbmcuIFRoaXMgY2F1c2VzIGFuIGV2ZW50
IGNhcnJ5aW5nIHRoZSAqY29udGludWF0aW9uKiBvZiB0aGUKKyAtLSBjb3JyZXNw
b25kaW5nIHRyYWNrZXIgdG8gYmUgZ2VuZXJhdGVkLCBlLmcuIGFsbG93aW5nIHRo
ZSBvdmVyYWxsCisgLS0gY29udHJvbGwgc3lzdGVtIHRvIGZvY3VzIG9uIGZvbGx3
aW5nIHRoYXQgcGFydGljdWxhciBjYXIgd2l0aG91dCBmaXJzdAorIC0tIGhhdmlu
ZyB0byBzdGFydCBhIG5ldyB0cmFja2VyIChyaXNraW5nIG1pc2lkZW50aWZpY2F0
aW9uKS4KKyAKKyBtY3QgOjogU0YgKFZpZGVvLCBVQVZTdGF0dXMsIEV2ZW50IENh
clRyYWNrZXIpIFsoSWQsIENhcildCisgbWN0ID0gcFN3aXRjaCByb3V0ZSBjdHNf
aW5pdCBhZGRPckRlbENUcyAoXGN0cycgZiAtPiBtY3RBdXggKGYgY3RzJykpCisg
ICAgICAgPj5eIGdldENhcnMKKyAgICAgd2hlcmUKKyAJbWN0QXV4IGN0cyA9IHBT
d2l0Y2ggcm91dGUKKyAJCQkgICAgIGN0cworIAkJCSAgICAgKG5vRXZlbnQgLS0+
IGFkZE9yRGVsQ1RzKQorIAkJCSAgICAgKFxjdHMnIGYgLT4gbWN0QXV4IChmIGN0
cycpKQorIAorIAlyb3V0ZSAodiwgcywgXykgPSBmbWFwIChcY3QgLT4gKCh2LCBz
KSwgY3QpKQorIAorIAktLSBhZGRPckRlbENUcyA6OiBTRiBfIChFdmVudCAoTUNU
Q29sIENhclRyYWNrZXIgLT4gTUNUQ29sIGNhclRyYWNrZXIpKQorIAlhZGRPckRl
bENUcyA9IHByb2MgKChfLCBfLCBlY3QpLCBjZXMpIC0+IGRvCisgCSAgICBsZXQg
ZUFkZCA9IGZtYXAgYWRkQ1QgZWN0CisgICAgICAgICAgICAgbGV0IGVEZWwgPSBm
bWFwIGRlbENUcyAoY2F0RXZlbnRzIChnZXRFdmVudHMgY2VzKSkKKyAgICAgICAg
ICAgICByZXR1cm5BIC08IG1lcmdlQnkgKC4pIGVBZGQgZURlbAorIAorIAljdHNf
aW5pdCA6OiBNQ1RDb2wgQ2FyVHJhY2tlcgorIAljdHNfaW5pdCA9IE1DVENvbCAw
IFtdCisgCisgCWFkZENUIDo6IENhclRyYWNrZXIgLT4gTUNUQ29sIENhclRyYWNr
ZXIgLT4gTUNUQ29sIENhclRyYWNrZXIKKyAJYWRkQ1QgY3QgKE1DVENvbCBuIGlj
dHMpID0gTUNUQ29sIChuKzEpICgobiwgY3QpIDogaWN0cykKKyAKKyAJZGVsQ1Rz
IDo6IFtJZF0gLT4gTUNUQ29sIENhclRyYWNrZXIgLT4gTUNUQ29sIENhclRyYWNr
ZXIKKyAJZGVsQ1RzIGlzIChNQ1RDb2wgbiBpY3RzKSA9CisgICAgICAgICAgICAg
TUNUQ29sIG4gKGZpbHRlciAoZmxpcCBub3RFbGVtIGlzIC4gZnN0KSBpY3RzKQor
IAorIAlnZXRDYXJzIDo6IE1DVENvbCAoQ2FyLCBFdmVudCAoKSkgLT4gWyhJZCwg
Q2FyKV0KKyAJZ2V0Q2FycyAoTUNUQ29sIF8gaWNlcykgPSBbKGksIGMpIHwgKGks
IChjLCBfKSkgPC0gaWNlcyBdCisgCisgCWdldEV2ZW50cyA6OiBNQ1RDb2wgKENh
ciwgRXZlbnQgKCkpIC0+IFtFdmVudCBJZF0KKyAJZ2V0RXZlbnRzIChNQ1RDb2wg
XyBpY2VzKSA9IFtlIGB0YWdgIGkgfCAoaSwoXyxlKSkgPC0gaWNlc10KKyAKKyAK
KyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAtLSBNdWx0aSB0YWls
Z2F0aW5nIGRldGVjdG9yCisgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisgCisgLS0gQXV4aWxpYXJ5IGRlZmluaXRpb25zCisgCisgbmV3dHlwZSBNVEdE
Q29sIGEgPSBNVEdEQ29sIFsoKElkLElkKSwgYSldCisgCisgCisgaW5zdGFuY2Ug
RnVuY3RvciBNVEdEQ29sIHdoZXJlCisgICAgIGZtYXAgZiAoTVRHRENvbCBpaWFz
KSA9IE1UR0RDb2wgWyAoaWksIGYgYSkgfCAoaWksIGEpIDwtIGlpYXMgXQorIAor
IAorIC0tIFJ1biB0YWlsZ2F0aW5nIGFib3ZlIGZvciBlYWNoIHBhaXIgb2YgdHJh
Y2tlZCBjYXJzLiBBIHN0cnVjdHVyYWwgY2hhbmdlCisgLS0gdG8gdGhlIGxpc3Qg
b2YgdHJhY2tlZCBjYXJzIGlzIHNpZ25hbGxlZCBieSBhbiBldmVudCwgYXQgd2hp
Y2ggcG9pbnQKKyAtLSB0aGUgc2lnbmFsIGZ1bmN0aW9uIHdpbGwgZmlndXJlIHdo
aWNoIG9sZCB0YWlsZ2F0aW5nIGRldGVjdG9ycyB0aGF0IGhhdmUKKyAtLSB0byBi
ZSByZW1vdmVkIGFuZCB3aGljaCBuZXcgdGhhdCBoYXZlIHRvIGJlIHN0YXJ0ZWQg
YmFzZWQgb24gYW4gaW5pdGlhbAorIC0tIHNhbXBsZSBvZiB0aGUgbmV3IGNvbmZp
Z3VyYXRpb24uIEFuIGV2ZW50IGNhcnJ5aW5nIHRoZSBpZGVudGl0eSBvZgorIC0t
IGEgdGFpbGdhdGVyIGFuZCB0aGUgb25lIGJlaW5nIHRhaWxnYXRlZCBpcyBnZW5l
cmF0ZWQgd2hlbiBvbmUgb2YgdGhlCisgLS0gdGFpbGdhdGluZyBzaWduYWwgZnVu
Y3Rpb25zIGdlbmVyYXRlcyBhbiBldmVudC4KKyAKKyBtdGdkIDo6IFNGIFsoSWQs
IENhcildIChFdmVudCBbKElkLCBJZCldKQorIG10Z2QgPSBwcm9jIGljcyAtPiBk
bworICAgICBsZXQgaWNzJyA9IHNvcnRCeSByZWxQb3MgaWNzCisgICAgIGVubyAg
PC0gbmV3T3JkZXIgLTwgaWNzJworICAgICBldGdzIDwtIHJwU3dpdGNoIHJvdXRl
IChNVEdEQ29sIFtdKSAtPCAoaWNzJywgZm1hcCB1cGRhdGVUR0RzIGVubykKKyAg
ICAgcmV0dXJuQSAtPCB0YWlsZ2F0ZXJzIGV0Z3MKKyAgICAgd2hlcmUKKyAJcm91
dGUgaWNzIChNVEdEQ29sIGlpdGdzKSA9IE1UR0RDb2wgJAorIAkgICAgbGV0IGNz
ID0gbWFwIHNuZCBpY3MKKyAJICAgIGluCisgCSAgICAgICAgWyAoaWksIChjYywg
dGcpKQorIAkJfCAoY2MsIChpaSwgdGcpKSA8LSB6aXAgKHppcCBjcyAodGFpbCBj
cykpIGlpdGdzIF0KKyAKKyAJcmVsUG9zIChfLCAocDEsIF8pKSAoXywgKHAyLCBf
KSkgPSBjb21wYXJlIHAxIHAyCisgCisgCW5ld09yZGVyIDo6IFNGIFsoSWQsIENh
cildIChFdmVudCBbSWRdKQorIAluZXdPcmRlciA9IGVkZ2VCeSAoXGljcyBpY3Mn
IC0+IGlmIHNhbWVPcmRlciBpY3MgaWNzJyB0aGVuCisgCQkJCQkgICAgTm90aGlu
ZworIAkJCQkJZWxzZQorIAkJCQkJICAgIEp1c3QgKG1hcCBmc3QgaWNzJykpCisg
CQkJICBbXQorIAkgICAgd2hlcmUKKyAJCXNhbWVPcmRlciBbXSBbXSA9IFRydWUK
KyAJCXNhbWVPcmRlciBbXSBfICA9IEZhbHNlCisgCQlzYW1lT3JkZXIgXyAgW10g
PSBGYWxzZQorIAkJc2FtZU9yZGVyICgoaSxfKTppY3MpICgoaScsXyk6aWNzJykK
KyAJCSAgICB8IGkgPT0gaScgICA9IHNhbWVPcmRlciBpY3MgaWNzJyAKKyAJCSAg
ICB8IG90aGVyd2lzZSA9IEZhbHNlCisgCisgCXVwZGF0ZVRHRHMgaXMgKE1UR0RD
b2wgaWl0Z3MpID0gTVRHRENvbCAkCisgCSAgICBbIChpaSwgbWF5YmUgdGFpbGdh
dGluZyBpZCAobG9va3VwIGlpIGlpdGdzKSkKKyAJICAgIHwgaWkgPC0gemlwIGlz
ICh0YWlsIGlzKSBdCisgCisgCXRhaWxnYXRlcnMgOjogTVRHRENvbCAoRXZlbnQg
KCkpIC0+IEV2ZW50IFsoSWQsIElkKV0KKyAJdGFpbGdhdGVycyAoTVRHRENvbCBp
aWVzKSA9IGNhdEV2ZW50cyBbIGUgYHRhZ2AgaWkgfCAoaWksIGUpIDwtIGlpZXMg
XQorIAorIAorIC0tIEZpbmFsbHksIHdlIGNhbiB0aWUgdGhlIGluZGl2aWRhdWwg
cGllY2VzIHRvZ2V0aGVyIGludG8gYSBzaWduYWwKKyAtLSBmdW5jdGlvbiB3aGlj
aCBmaW5kcyB0YWlsZ2F0ZXJzOgorIAorIGZpbmRUYWlsZ2F0ZXJzIDo6CisgICAg
IFNGIChWaWRlbywgVUFWU3RhdHVzLCBFdmVudCBDYXJUcmFja2VyKSAoWyhJZCwg
Q2FyKV0sIEV2ZW50IFsoSWQsIElkKV0pCisgZmluZFRhaWxnYXRlcnMgPSBwcm9j
ICh2LCBzLCBlY3QpIC0+IGRvCisgICAgIGljcyAgPC0gbWN0ICAtPCAodiwgcywg
ZWN0KQorICAgICBldGdzIDwtIG10Z2QgLTwgaWNzCisgICAgIHJldHVybkEgLTwg
KGljcywgZXRncykKZGlmZiAtY3JOIGFmcnAtMC40Lm9yaWcvZXhhbXBsZXMvVGFp
bGdhdGluZ0RldGVjdG9yL1Rlc3RUR01haW4uaHMgYWZycC0wLjQvZXhhbXBsZXMv
VGFpbGdhdGluZ0RldGVjdG9yL1Rlc3RUR01haW4uaHMKKioqIGFmcnAtMC40Lm9y
aWcvZXhhbXBsZXMvVGFpbGdhdGluZ0RldGVjdG9yL1Rlc3RUR01haW4uaHMJMTk3
MC0wMS0wMSAwOTowMDowMC4wMDAwMDAwMDAgKzA5MDAKLS0tIGFmcnAtMC40L2V4
YW1wbGVzL1RhaWxnYXRpbmdEZXRlY3Rvci9UZXN0VEdNYWluLmhzCTIwMDUtMDct
MzAgMTg6MDU6MjcuMDAwMDAwMDAwICswOTAwCioqKioqKioqKioqKioqKgoqKiog
MCAqKioqCi0tLSAxLDEwMiAtLS0tCisgey0KKyAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEEgRiBSIFAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqICAgICAgIEV4YW1wbGU6
ICAgICAgICBUZXN0IFRHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICoKKyAqICAgICAgIFB1cnBvc2U6ICAgICAgICBUZXN0aW5n
IG9mIHRoZSB0YWlsZ2F0aW5nIGRldGVjdG9yLgkgICAgICAgICAgICAgKgorICoJ
QXV0aG9yczoJSGVucmlrIE5pbHNzb24JCQkJCSAgICAgKgorICogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgQ29weXJpZ2h0IChj
KSBZYWxlIFVuaXZlcnNpdHksIDIwMDMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorIC19CisgCisgbW9kdWxlIE1haW4gd2hl
cmUKKyAKKyBpbXBvcnQgTGlzdCAoc29ydEJ5KQorIAorIGltcG9ydCBBRlJQCisg
aW1wb3J0IEFGUlBVdGlsaXRpZXMKKyBpbXBvcnQgQUZSUEludGVybmFscwktLSBK
dXN0IGZvciB0ZXN0aW5nIHB1cnBvc2VzLgorIAorIGltcG9ydCBUYWlsZ2F0aW5n
RGV0ZWN0b3IKKyAKKyAKKyAtLSBMb29rcyBmb3IgaW50ZXJlc3RpbmcgZXZlbnRz
IGluIHRoZSB2aWRlbyBzdHJlYW0gKGNhcnMgZW50ZXJpbmcsCisgLS0gbGVhdmlu
Zywgb3ZlcnRha2luZykgaW4gdGhlIGludGVydmFsIFswLCB0XS4KKyB0ZXN0Vmlk
ZW8gOjogVGltZSAtPiBbKFRpbWUsIEV2ZW50IFZpZGVvKV0KKyB0ZXN0VmlkZW8g
dF9tYXggPSBmaWx0ZXIgKGlzRXZlbnQgLiBzbmQpICQKKyAgICAgICAgICAgICAg
ICAgICB0YWtlV2hpbGUgKFwodCwgXykgLT4gdCA8PSB0X21heCkgJAorICAgICAg
ICAgICAgICAgICAgIGVtYmVkIChsb2NhbFRpbWUgJiYmICh2aWRlb0FuZFRyYWNr
ZXJzID4+XiBmc3QpCisgCQkJID4+PiBmaWx0ZXJWaWRlbykKKyAJICAgICAgICAg
IChkZWx0YUVuY29kZSBzbXBsUGVyIChyZXBlYXQgKCkpKQorICAgICB3aGVyZQor
IAlmaWx0ZXJWaWRlbyA9IHNlY29uZCAoZWRnZUJ5IGNoYW5nZSBbXSkKKyAJICAg
IHdoZXJlCisgCQljaGFuZ2Ugdl9wcmV2IHYgPQorIAkJICAgIGlmIChtYXAgZnN0
IChzb3J0QnkgY29tcGFyZVBvcyB2X3ByZXYpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgLz0gKG1hcCBmc3QgKHNvcnRCeSBjb21wYXJlUG9zIHYpKSB0aGVuCisg
CQkJSnVzdCB2CisgCQkgICAgZWxzZQorIAkJCU5vdGhpbmcgCisgCisgCWNvbXBh
cmVQb3MgKF8sIChwMSwgXykpIChfLCAocDIsIF8pKSA9IGNvbXBhcmUgcDEgcDIK
KyAKKyAKKyBwcFRlc3RWaWRlbyB0ID0gbWFwTV8gKHB1dFN0ckxuIC4gc2hvdykg
KHRlc3RWaWRlbyB0KQorIAorIAorIHRlc3RUYWlsZ2F0aW5nIHRfbWF4ID0gZmls
dGVyIChpc0V2ZW50IC4gc25kKSAkCisgICAgICAgICAgICAgICAgICAgICAgICB0
YWtlV2hpbGUgKFwodCwgXykgLT4gdCA8PSB0X21heCkgJAorICAgICAgICAgICAg
ICAgICAgICAgICAgZW1iZWQgKGxvY2FsVGltZQorIAkJCSAgICAgICYmJiAobWtD
YXIzICgtMTAwMCkgNDAgOTUgMzAgMjAwIDMwLjkKKyAJCQkJICAgJiYmIG1rQ2Fy
MSAwIDMwCisgCQkJCSAgID4+PiB0YWlsZ2F0aW5nKSkKKyAJICAgICAgICAgICAg
ICAgKGRlbHRhRW5jb2RlIHNtcGxQZXIgKHJlcGVhdCAoKSkpCisgCisgCisgdGVz
dE1DVCA6OiBUaW1lIC0+IFsoVGltZSwgRXZlbnQgWyhJZCwgQ2FyKV0pXQorIHRl
c3RNQ1QgdF9tYXggPSBmaWx0ZXIgKGlzRXZlbnQgLiBzbmQpICQKKyAgICAgICAg
ICAgICAgICAgdGFrZVdoaWxlIChcKHQsIF8pIC0+IHQgPD0gdF9tYXgpICQKKyAg
ICAgICAgICAgICAgICAgZW1iZWQgKGxvY2FsVGltZQorICAgICAgICAgICAgICAg
ICAgICAgICAgJiYmICh1YXZTdGF0dXMKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPj4+IChoaWdod2F5ICYmJiBpZGVudGl0eSA+Pj4gbWtWaWRlb0FuZFRy
YWNrZXJzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYmIGlk
ZW50aXR5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4+PiBhcnIgKFwo
KHYsIGVjdCksIHMpIC0+ICh2LCBzLCBlY3QpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA+Pj4gbWN0KQorIAkJICAgICAgID4+PiBmaWx0ZXJNQ1RPdXRw
dXQpCisgCSAgICAgICAgKGRlbHRhRW5jb2RlIHNtcGxQZXIgKHJlcGVhdCAoKSkp
CisgICAgIHdoZXJlCisgCWZpbHRlck1DVE91dHB1dCA9IHNlY29uZCAoZWRnZUJ5
IGNoYW5nZSBbXSkKKyAJICAgIHdoZXJlCisgCQljaGFuZ2Ugdl9wcmV2IHYgPQor
IAkJICAgIGlmIChtYXAgZnN0IChzb3J0QnkgY29tcGFyZVBvcyB2X3ByZXYpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgLz0gKG1hcCBmc3QgKHNvcnRCeSBjb21w
YXJlUG9zIHYpKSB0aGVuCisgCQkJSnVzdCB2CisgCQkgICAgZWxzZQorIAkJCU5v
dGhpbmcgCisgCisgCWNvbXBhcmVQb3MgKF8sIChwMSwgXykpIChfLCAocDIsIF8p
KSA9IGNvbXBhcmUgcDEgcDIKKyAKKyAKKyBwcFRlc3RNQ1QgdCA9IG1hcE1fIChw
dXRTdHJMbiAuIHNob3cpICh0ZXN0TUNUIHQpCisgCisgCisgdGVzdE1UR0QgOjog
VGltZSAtPiBbKFRpbWUsIChFdmVudCBbKElkLElkKV0sIFsoSWQsIENhcildKSld
CisgdGVzdE1UR0QgdF9tYXggPSBmaWx0ZXIgKGlzRXZlbnQgLiBmc3QgLiBzbmQp
ICQKKyAgICAgICAgICAgICAgICAgIHRha2VXaGlsZSAoXCh0LCBfKSAtPiB0IDw9
IHRfbWF4KSAkCisgICAgICAgICAgICAgICAgICBlbWJlZCAobG9jYWxUaW1lCisg
ICAgICAgICAgICAgICAgICAgICAgICAgJiYmIChwcm9jIF8gLT4gZG8KKyAJCQkg
ICAgICAgICBzICAgICAgICAgICA8LSB1YXZTdGF0dXMgICAgICAtPCAoKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGggICAgICAgICAgIDwtIGhp
Z2h3YXkgICAgICAgIC08ICgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHYsIGVjdCkgICAgPC0gbWtWaWRlb0FuZFRyYWNrZXJzIC08IChoLCBz
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpY3MsIGV0Z3Mp
IDwtIGZpbmRUYWlsZ2F0ZXJzIC08ICh2LHMsZWN0KSAKKyAJCQkJIGV0Z3MgICAg
ICAgIDwtIG10Z2QgICAgICAgICAgIC08IGljcworIAkJCSAgICAgICAgIHJldHVy
bkEgLTwgKGV0Z3MsIGljcykpKQorIAkgICAgICAgIChkZWx0YUVuY29kZSBzbXBs
UGVyIChyZXBlYXQgKCkpKQorIAorIHBwVGVzdE1UR0QgdCA9IG1hcE1fIChwdXRT
dHJMbiAuIHNob3cpICh0ZXN0TVRHRCB0KQorIAorIAorIC0tIFdlIGNvdWxkIHJl
YWQgdGhlIGNhciBzcGVjaWZpY2F0aW9uIGZyb20gc3RhbmRhcmQgaW5wdXQuCisg
bWFpbiA9IHBwVGVzdE1UR0QgMjAwMApCaW5hcnkgZmlsZXMgYWZycC0wLjQub3Jp
Zy9zcmMvLkRTX1N0b3JlIGFuZCBhZnJwLTAuNC9zcmMvLkRTX1N0b3JlIGRpZmZl
cgpkaWZmIC1jck4gYWZycC0wLjQub3JpZy9zcmMvQUZSUFV0aWxpdGllcy5ocyBh
ZnJwLTAuNC9zcmMvQUZSUFV0aWxpdGllcy5ocwoqKiogYWZycC0wLjQub3JpZy9z
cmMvQUZSUFV0aWxpdGllcy5ocwkyMDA0LTAzLTIzIDA3OjQ4OjU1LjAwMDAwMDAw
MCArMDkwMAotLS0gYWZycC0wLjQvc3JjL0FGUlBVdGlsaXRpZXMuaHMJMjAwNS0w
OS0wMSAxNDo0NjoyNy4wMDAwMDAwMDAgKzA5MDAKKioqKioqKioqKioqKioqCioq
KiAzMiw0MiAqKioqCiAgCiAgCiAgbW9kdWxlIEFGUlBVdGlsaXRpZXMgKAotIC0t
IEdlbmVyYWwgYXJyb3cgdXRpbGl0aWVzCi0gICAgIChePj4pLAkJLS0gOjogQXJy
b3cgYSA9PiAoYiAtPiBjKSAtPiBhIGMgZCAtPiBhIGIgZAotICAgICAoPj5eKSwJ
CS0tIDo6IEFycm93IGEgPT4gYSBiIGMgLT4gKGMgLT4gZCkgLT4gYSBiIGQKLSAg
ICAgKF48PCksCQktLSA6OiBBcnJvdyBhID0+IChjIC0+IGQpIC0+IGEgYiBjIC0+
IGEgYiBkIAotICAgICAoPDxeKSwJCS0tIDo6IEFycm93IGEgPT4gYSBjIGQgLT4g
KGIgLT4gYykgLT4gYSBiIGQKICAKICAtLSBMaWZ0aW5ncwogICAgICBhcnIyLAkJ
LS0gOjogQXJyb3cgYSA9PiAoYi0+Yy0+ZCkgLT4gYSAoYixjKSBkCi0tLSAzMiwz
NyAtLS0tCioqKioqKioqKioqKioqKgoqKiogODksMTE4ICoqKioKICBpbXBvcnQg
QUZSUERpYWdub3N0aWNzCiAgaW1wb3J0IEFGUlAKICAKLSAKLSBpbmZpeHIgMSBe
PDwsIF4+PgotIGluZml4bCAxIDw8XiwgPj5eCiAgaW5maXhyIDAgYGZieWAKICAK
ICAKLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAtLSBHZW5lcmFs
IGFycm93IHV0aWxpdGllcwotIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotIAotIChePj4pIDo6IEFycm93IGEgPT4gKGIgLT4gYykgLT4gYSBjIGQgLT4g
YSBiIGQKLSBmIF4+PiBhID0gYXJyIGYgPj4+IGEKLSAKLSAoPj5eKSA6OiBBcnJv
dyBhID0+IGEgYiBjIC0+IChjIC0+IGQpIC0+IGEgYiBkCi0gYSA+Pl4gZiA9IGEg
Pj4+IGFyciBmCi0gCi0gCi0gKF48PCkgOjogQXJyb3cgYSA9PiAoYyAtPiBkKSAt
PiBhIGIgYyAtPiBhIGIgZCAKLSBmIF48PCBhID0gYXJyIGYgPDw8IGEKLSAKLSAK
LSAoPDxeKSA6OiBBcnJvdyBhID0+IGEgYyBkIC0+IChiIC0+IGMpIC0+IGEgYiBk
Ci0gYSA8PF4gZiA9IGEgPDw8IGFyciBmCi0gCiAgCiAgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAgLS0gTGlmdGluZ3MKLS0tIDg0LDkyIC0tLS0K
------------8NMe1y7a3JWjW88kpgenSG
Content-Disposition: attachment; filename=wxfruit.diff
Content-Type: application/octet-stream; name=wxfruit.diff
Content-Transfer-Encoding: Base64

QmluYXJ5IGZpbGVzIHd4ZnJ1aXQtMC4xLm9yaWcvLkRTX1N0b3JlIGFuZCB3eGZy
dWl0LTAuMS8uRFNfU3RvcmUgZGlmZmVyCmRpZmYgLWNyIHd4ZnJ1aXQtMC4xLm9y
aWcvV1hGcnVpdC5ocyB3eGZydWl0LTAuMS9XWEZydWl0LmhzCioqKiB3eGZydWl0
LTAuMS5vcmlnL1dYRnJ1aXQuaHMJMjAwNC0wNC0zMCAxNTozMTo1Ni4wMDAwMDAw
MDAgKzA5MDAKLS0tIHd4ZnJ1aXQtMC4xL1dYRnJ1aXQuaHMJMjAwNS0wNy0xOSAx
Mjo0NTowMi4wMDAwMDAwMDAgKzA5MDAKKioqKioqKioqKioqKioqCioqKiAxMywy
MCAqKioqCiAgaW1wb3J0IHF1YWxpZmllZCBHcmFwaGljcy5VSS5XWENvcmUgYXMg
V1hDb3JlDQogIGltcG9ydCBBRlJQDQogIGltcG9ydCBBRlJQVXRpbGl0aWVzDQog
IA0KISBpbXBvcnQgSU9SZWYNCiAgaW1wb3J0IFN5c3RlbS5UaW1lDQogIA0KICAN
Ci0tLSAxMywyMSAtLS0tCiAgaW1wb3J0IHF1YWxpZmllZCBHcmFwaGljcy5VSS5X
WENvcmUgYXMgV1hDb3JlDQogIGltcG9ydCBBRlJQDQogIGltcG9ydCBBRlJQVXRp
bGl0aWVzDQorIGltcG9ydCBDb250cm9sLkFycm93DQogIA0KISBpbXBvcnQgRGF0
YS5JT1JlZg0KICBpbXBvcnQgU3lzdGVtLlRpbWUNCiAgDQogIA0KZGlmZiAtY3Ig
d3hmcnVpdC0wLjEub3JpZy9wYWRkbGUuaHMgd3hmcnVpdC0wLjEvcGFkZGxlLmhz
CioqKiB3eGZydWl0LTAuMS5vcmlnL3BhZGRsZS5ocwkyMDA0LTA0LTMwIDE1OjMx
OjU2LjAwMDAwMDAwMCArMDkwMAotLS0gd3hmcnVpdC0wLjEvcGFkZGxlLmhzCTIw
MDUtMDEtMjAgMTM6NTM6MDcuMDAwMDAwMDAwICswOTAwCioqKioqKioqKioqKioq
KgoqKiogMTksMzMgKioqKgogIGJnID0gd3hXaXRoQ29sb3IgV1gud2hpdGUgd3hm
aWxsDQogIA0KICB3YWxscyA6OiBXWFBpY3R1cmUNCiEgd2FsbHMgPSBsZXQgdXBw
ZXIgPSB3eFBpY0ZpbGwgKHd4cmVjdCAoV1gucmVjdCAoV1gucG9pbnQgMTAgMTAp
IChXWC5zaXplIDIwMCAxMCkpKQ0KISAgICAgICAgICAgICBsZWZ0ID0gd3hQaWNG
aWxsICh3eHJlY3QgKFdYLnJlY3QgKFdYLnBvaW50IDEwIDEwKSAoV1guc2l6ZSAx
MCAyMDApKSkNCiEgICAgICAgICAgICAgcmlnaHQgPSB3eFBpY0ZpbGwgKHd4cmVj
dCAoV1gucmVjdCAoV1gucG9pbnQgMjAwIDEwKSAoV1guc2l6ZSAxMCAyMDApKSkN
CiAgICAgICAgICBpbiB3eFdpdGhDb2xvciBXWC5yZWQgKHVwcGVyIGB3eFBpY092
ZXJgIGxlZnQgYHd4UGljT3ZlcmAgcmlnaHQpDQogIA0KICBwYWRkbGUgOjogSW50
IC0+IFdYLlJlY3QNCiEgcGFkZGxlIHhwb3MgPSBXWC5yZWN0IChXWC5Qb2ludCAo
eHBvcyAtIDI1KSAyMDApIChXWC5zaXplIDUwIDEwKQ0KICANCiEgZ2FtZUJveCA9
IFdYLnNpemUgMjE1IDIxNQ0KICANCiAgLS0gVGhlIGdhbWUgc2NyZWVuOiB0YWtl
cyBzaWduYWxzIGZvciB0aGUgdmVsb2NpdHkgb2YgdGhlDQogIC0tIGJhbGwgYW5k
IHRoZSBjdXJyZW50IG1vdXNlIHBvc2l0aW9uOyBvdXRwdXRzIGEgcGljdHVyZQ0K
LS0tIDE5LDMzIC0tLS0KICBiZyA9IHd4V2l0aENvbG9yIFdYLndoaXRlIHd4Zmls
bA0KICANCiAgd2FsbHMgOjogV1hQaWN0dXJlDQohIHdhbGxzID0gbGV0IHVwcGVy
ID0gd3hQaWNGaWxsICh3eHJlY3QgKFdYLnJlY3QgKFdYLnBvaW50IDEwIDEwKSAo
V1guc3ogMjAwIDEwKSkpDQohICAgICAgICAgICAgIGxlZnQgPSB3eFBpY0ZpbGwg
KHd4cmVjdCAoV1gucmVjdCAoV1gucG9pbnQgMTAgMTApIChXWC5zeiAxMCAyMDAp
KSkNCiEgICAgICAgICAgICAgcmlnaHQgPSB3eFBpY0ZpbGwgKHd4cmVjdCAoV1gu
cmVjdCAoV1gucG9pbnQgMjAwIDEwKSAoV1guc3ogMTAgMjAwKSkpDQogICAgICAg
ICAgaW4gd3hXaXRoQ29sb3IgV1gucmVkICh1cHBlciBgd3hQaWNPdmVyYCBsZWZ0
IGB3eFBpY092ZXJgIHJpZ2h0KQ0KICANCiAgcGFkZGxlIDo6IEludCAtPiBXWC5S
ZWN0DQohIHBhZGRsZSB4cG9zID0gV1gucmVjdCAoV1guUG9pbnQgKHhwb3MgLSAy
NSkgMjAwKSAoV1guc3ogNTAgMTApDQogIA0KISBnYW1lQm94ID0gV1guc3ogMjE1
IDIxNQ0KICANCiAgLS0gVGhlIGdhbWUgc2NyZWVuOiB0YWtlcyBzaWduYWxzIGZv
ciB0aGUgdmVsb2NpdHkgb2YgdGhlDQogIC0tIGJhbGwgYW5kIHRoZSBjdXJyZW50
IG1vdXNlIHBvc2l0aW9uOyBvdXRwdXRzIGEgcGljdHVyZQ0KKioqKioqKioqKioq
KioqCioqKiAzOSw0NSAqKioqCiAgICAgICAgbGV0IHhwb3MgPSAzMCArIHhpDQog
ICAgICAgIGxldCB5cG9zID0gMzAgKyB5aQ0KICAgICAgICBsZXQgYmFsbFMgPSBX
WC5yZWN0IChXWC5wb2ludCAocm91bmQgKHhwb3MgLSAxMi41KSkgKHJvdW5kICh5
cG9zIC0gMTIuNSkpKQ0KISAgICAgICAgICAgICAgICAgICAgICAgICAgIChXWC5z
aXplIDI1IDI1KQ0KICAgICAgICBsZXQgYmFsbFBpY1MgPSB3eFdpdGhDb2xvciBX
WC55ZWxsb3cgJCB3eFBpY0ZpbGwgJCB3eGVsbGlwc2UgYmFsbFMNCiAgICAgICAg
eGJvdW5jZSA8LSBlZGdlIC08ICgoeHBvcyA+IDE3NSkgfHwgKHhwb3MgPCA0NSkp
DQogICAgICAgIHlib3VuY2UgPC0gZWRnZSAtPCAoKHlwb3MgPCA0NSkgfHwgaGl0
UGFkZGxlKQ0KLS0tIDM5LDQ1IC0tLS0KICAgICAgICBsZXQgeHBvcyA9IDMwICsg
eGkNCiAgICAgICAgbGV0IHlwb3MgPSAzMCArIHlpDQogICAgICAgIGxldCBiYWxs
UyA9IFdYLnJlY3QgKFdYLnBvaW50IChyb3VuZCAoeHBvcyAtIDEyLjUpKSAocm91
bmQgKHlwb3MgLSAxMi41KSkpDQohICAgICAgICAgICAgICAgICAgICAgICAgICAg
KFdYLnN6IDI1IDI1KQ0KICAgICAgICBsZXQgYmFsbFBpY1MgPSB3eFdpdGhDb2xv
ciBXWC55ZWxsb3cgJCB3eFBpY0ZpbGwgJCB3eGVsbGlwc2UgYmFsbFMNCiAgICAg
ICAgeGJvdW5jZSA8LSBlZGdlIC08ICgoeHBvcyA+IDE3NSkgfHwgKHhwb3MgPCA0
NSkpDQogICAgICAgIHlib3VuY2UgPC0gZWRnZSAtPCAoKHlwb3MgPCA0NSkgfHwg
aGl0UGFkZGxlKQ0K
------------8NMe1y7a3JWjW88kpgenSG--